Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Klipper3d/klipper.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevinOConnor <KevinOConnor@users.noreply.github.com>2022-11-03 03:04:58 +0300
committerKevinOConnor <KevinOConnor@users.noreply.github.com>2022-11-03 03:04:58 +0300
commit4f6924e8ca5a687d562367f60af41484dac47235 (patch)
treeb90b360b6f428639aaac3586c3fd36d843dd8158
parent77845c3201826936038feff631d8496222a5c657 (diff)
Deploying to gh-pages from @ Klipper3d/klipper@762e2c49c71b7e83a333c7e0181a0c43a4ec8b64 🚀
-rw-r--r--_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pycbin983 -> 983 bytes
-rw-r--r--hu/API_Server.html2
-rw-r--r--hu/BLTouch.html12
-rw-r--r--hu/Beaglebone.html2
-rw-r--r--hu/Bed_Level.html2
-rw-r--r--hu/Bed_Mesh.html8
-rw-r--r--hu/Bootloaders.html6
-rw-r--r--hu/CANBUS_protocol.html2
-rw-r--r--hu/CONTRIBUTING.html14
-rw-r--r--hu/Code_Overview.html2
-rw-r--r--hu/Command_Templates.html2
-rw-r--r--hu/Config_Changes.html2
-rw-r--r--hu/Config_Reference.html20
-rw-r--r--hu/Config_checks.html6
-rw-r--r--hu/Contact.html8
-rw-r--r--hu/Debugging.html2
-rw-r--r--hu/Delta_Calibrate.html2
-rw-r--r--hu/Endstop_Phase.html4
-rw-r--r--hu/Example_Configs.html4
-rw-r--r--hu/Exclude_Object.html2
-rw-r--r--hu/FAQ.html14
-rw-r--r--hu/Features.html2
-rw-r--r--hu/G-Codes.html10
-rw-r--r--hu/Hall_Filament_Width_Sensor.html4
-rw-r--r--hu/Installation.html2
-rw-r--r--hu/Manual_Level.html2
-rw-r--r--hu/Measuring_Resonances.html6
-rw-r--r--hu/Multi_MCU_Homing.html2
-rw-r--r--hu/Overview.html2
-rw-r--r--hu/Pressure_Advance.html6
-rw-r--r--hu/Probe_Calibrate.html4
-rw-r--r--hu/Protocol.html2
-rw-r--r--hu/RPi_microcontroller.html4
-rw-r--r--hu/Resonance_Compensation.html4
-rw-r--r--hu/Rotation_Distance.html6
-rw-r--r--hu/SDCard_Updates.html2
-rw-r--r--hu/Skew_Correction.html2
-rw-r--r--hu/Slicers.html10
-rw-r--r--hu/Sponsors.html4
-rw-r--r--hu/Status_Reference.html2
-rw-r--r--hu/TMC_Drivers.html10
-rw-r--r--hu/TSL1401CL_Filament_Width_Sensor.html2
-rw-r--r--hu/Using_PWM_Tools.html6
-rw-r--r--hu/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pycbin983 -> 983 bytes
-rw-r--r--hu/search/search_index.json2
-rw-r--r--hu/sitemap.xml100
-rw-r--r--hu/sitemap.xml.gzbin225 -> 225 bytes
-rw-r--r--it/Benchmarks.html14
-rw-r--r--it/CANBUS.html2
-rw-r--r--it/CONTRIBUTING.html2
-rw-r--r--it/G-Codes.html8
-rw-r--r--it/Status_Reference.html4
-rw-r--r--it/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pycbin983 -> 983 bytes
-rw-r--r--it/search/search_index.json2
-rw-r--r--it/sitemap.xml100
-rw-r--r--it/sitemap.xml.gzbin225 -> 225 bytes
-rw-r--r--sitemap.xml98
-rw-r--r--sitemap.xml.gzbin224 -> 224 bytes
-rw-r--r--zh-Hant/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pycbin983 -> 983 bytes
-rw-r--r--zh-Hant/sitemap.xml100
-rw-r--r--zh-Hant/sitemap.xml.gzbin225 -> 225 bytes
-rw-r--r--zh/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pycbin983 -> 983 bytes
-rw-r--r--zh/sitemap.xml100
-rw-r--r--zh/sitemap.xml.gzbin225 -> 225 bytes
64 files changed, 371 insertions, 371 deletions
diff --git a/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc b/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc
index 5d8531f53..4d33b0a3d 100644
--- a/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc
+++ b/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc
Binary files differ
diff --git a/hu/API_Server.html b/hu/API_Server.html
index c7207b261..83a40ca31 100644
--- a/hu/API_Server.html
+++ b/hu/API_Server.html
@@ -1626,7 +1626,7 @@
<div class="highlight"><pre><span></span><code>~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer.cfg -a /tmp/klippy_uds -l /tmp/klippy.log
</code></pre></div>
-<p>Ennek hatására a gazdaszoftver létrehoz egy Unix Domain Socketet. Az ügyfél ezután kapcsolatot nyithat ezen keresztül, és parancsokat küldhet a Klippernek.</p>
+<p>Ennek hatására a gazdaszoftver létrehoz egy Unix Domain Socket-et. Az ügyfél ezután kapcsolatot nyithat ezen keresztül, és parancsokat küldhet a Klippernek.</p>
<p>Lásd a <a href="https://github.com/Arksine/moonraker">Moonraker</a> projektet egy népszerű eszközért, amely képes továbbítani a HTTP-kéréseket a Klipper's API Server Unix Domain Socket-hez.</p>
<h2 id="kerelem-formatuma">Kérelem formátuma<a class="headerlink" href="#kerelem-formatuma" title="Permanent link">&para;</a></h2>
<p>A socket-en küldött és fogadott üzenetek JSON kódolású karakterláncok, amelyeket egy ASCII 0x03 karakter zár le:</p>
diff --git a/hu/BLTouch.html b/hu/BLTouch.html
index 0a9991943..64dbe36d5 100644
--- a/hu/BLTouch.html
+++ b/hu/BLTouch.html
@@ -1387,8 +1387,8 @@
<h1 id="bl-touch">BL-Touch<a class="headerlink" href="#bl-touch" title="Permanent link">&para;</a></h1>
<h2 id="bl-touch-csatlakoztatasa">BL-Touch csatlakoztatása<a class="headerlink" href="#bl-touch-csatlakoztatasa" title="Permanent link">&para;</a></h2>
-<p>Egy <strong>figyelmeztetés</strong> mielőtt elkezdené: Kerülje a BL-Touch tűjének puszta ujjal való érintését, mivel meglehetősen érzékeny az zsírra. Ha pedig mégis hozzáér, legyen nagyon óvatos, hogy ne hajlítsa vagy nyomja meg a tüskét.</p>
-<p>Csatlakoztassa a BL-Touch "servo" csatlakozót a <code>control_pin</code> csatlakozóhoz a BL-Touch dokumentáció vagy az MCU dokumentációja szerint. Az eredeti kábelezést használva a hármasból a sárga vezeték a <code>control_pin</code> és a vezetékpárból a fehér lesz a <code>sensor_pin</code>. Ezeket a tűket a kábelezésnek megfelelően kell konfigurálnia. A legtöbb BL-Touch pullup jelet igényel a tűbeállításnál (ezért a csatlakozás nevének előtagja "^"). Például:</p>
+<p>Egy <strong>figyelmeztetés</strong> mielőtt elkezdenéd: Kerüld a BL-Touch tűjének puszta ujjal való érintését, mivel meglehetősen érzékeny az zsírra. Ha pedig mégis hozzáérsz, legyél nagyon óvatos, hogy ne hajlítsd vagy nyomd meg a tüskét.</p>
+<p>Csatlakoztasd a BL-Touch "servo" csatlakozót a <code>control_pin</code> csatlakozóhoz a BL-Touch dokumentáció vagy az MCU dokumentációja szerint. Az eredeti kábelezést használva a hármasból a sárga vezeték a <code>control_pin</code> és a vezetékpárból a fehér lesz a <code>sensor_pin</code>. Ezeket a tűket a kábelezésnek megfelelően kell konfigurálnia. A legtöbb BL-Touch pullup jelet igényel a tűbeállításnál (ezért a csatlakozás nevének előtagja "^"). Például:</p>
<div class="highlight"><pre><span></span><code>[bltouch]
sensor_pin: ^P1.24
control_pin: P1.26
@@ -1404,11 +1404,11 @@ z_hop_speed: 5
<p>Fontos, hogy a z_hop mozgás a safe_z_home-ban elég nagy legyen ahhoz, hogy a mérőcsúcs ne ütközzön semmibe, még akkor sem, ha a BL-Touch mérőtüskéje a legalacsonyabb állásban van.</p>
<h2 id="kezdeti-tesztek">Kezdeti tesztek<a class="headerlink" href="#kezdeti-tesztek" title="Permanent link">&para;</a></h2>
-<p>Mielőtt továbblépne, ellenőrizd, hogy a BL-Touch a megfelelő magasságban van-e felszerelve. A mérőtüskének behúzott állapotban nagyjából 2 mm-rel a fúvóka fölött kell lennie</p>
-<p>Amikor bekapcsolja a nyomtatót, a BL-Touch szondának önellenőrzést kell végeznie, és néhányszor fel-le kell mozgatnia a mérőtüskét. Az önellenőrzés befejezése után a mérőtüskének vissza kell húzódnia, és a szondán lévő piros LED-nek világítania kell. Ha bármilyen hibát észlelsz, például a szonda pirosan villog, vagy a mérőtüske lefelé van, nem pedig behúzva, kérjük kapcsolja ki a nyomtatót, és ellenőrizd a kábelezést és a konfigurációt.</p>
+<p>Mielőtt továbblépnél, ellenőrizd, hogy a BL-Touch a megfelelő magasságban van-e felszerelve. A mérőtüskének behúzott állapotban nagyjából 2 mm-rel a fúvóka fölött kell lennie</p>
+<p>Amikor bekapcsolod a nyomtatót, a BL-Touch szondának önellenőrzést kell végeznie, és néhányszor fel-le kell mozgatnia a mérőtüskét. Az önellenőrzés befejezése után a mérőtüskének vissza kell húzódnia, és a szondán lévő piros LED-nek világítania kell. Ha bármilyen hibát észlelsz, például a szonda pirosan villog, vagy a mérőtüske lefelé van, nem pedig behúzva, kérjük kapcsold ki a nyomtatót, és ellenőrizd a kábelezést és a konfigurációt.</p>
<p>Ha a fentiek rendben vannak, itt az ideje tesztelni, hogy a vezérlés megfelelően működik-e. Először futtassuk le a <code>BLTOUCH_DEBUG COMMAND=pin_down</code> parancsot a konzolban. Ellenőrizd, hogy a mérőtüske lefelé mozog-e, és hogy a BL-Touchon lévő piros LED kialszik-e. Ha nem, ellenőrizd újra a kábelezést és a konfigurációt. Ezután adj ki egy <code>BLTOUCH_DEBUG COMMAND=pin_up</code> parancsot. Ellenőrizd, hogy a mérőtüske felfelé mozdul-e, és hogy a piros LED ismét világít-e. Ha villog, akkor valamilyen probléma van.</p>
<p>A következő lépés annak megerősítése, hogy a mérőtüske megfelelően működik. Futtassa a <code>BLTOUCH_DEBUG COMMAND=pin_down</code> parancsot, és ellenőrizd, hogy a mérőtüske lefelé mozdul-e. Majd futtassa a <code>BLTOUCH_DEBUG COMMAND=touch_mode</code> parancsot. Futtassa a <code>QUERY_PROBE</code> parancsot, és ellenőrizd, hogy az üzenet "probe: OPEN". Ezután, miközben a körmével finoman felfelé nyomja a mérőtüskét, futtassa le újra a <code>QUERY_PROBE</code> parancsot. Ellenőrizd, hogy az üzenet a "probe: TRIGGERED". Ha bármelyik lekérdezés nem a megfelelő üzenetet írja, akkor az általában hibás bekötést vagy konfigurációt jelez (bár egyes <a href="#bl-touch-clones">klónok</a> speciális kezelést igényelhetnek). A teszt befejezésekor futtassuk le a <code>BLTOUCH_DEBUG COMMAND=pin_up</code> parancsot, és ellenőrizzük, hogy a mérőtüske felfelé mozdul.</p>
-<p>A BL-Touch vezérlő és érzékelőtüskék tesztelésének befejezése után itt az ideje a szintezés tesztelésének, de egy kis csavarral. Ahelyett, hogy a mérőtüske a tárgyasztalt érintené, a körmünkel fogjuk megérinteni. Helyezze a nyomtatófejet messze a tárgyasztaltól, adj ki egy <code>G28</code> (vagy <code>PROBE</code>, ha nem használod a probe:z_virtual_endstopot) parancsot, várjon míg a nyomtatófej elkezd lefelé mozogni, és állítsd meg a mozgást úgy, hogy nagyon óvatosan megérinti a mérőtüskét a körmével. Lehet, hogy ezt kétszer kell megtennie, mivel az alapértelmezett kezdőpont konfiguráció kétszer mér. Készüljön fel arra is, hogy kikapcsolja a nyomtatót, ha az nem áll meg, amikor megérinti a mérőtüskét.</p>
+<p>A BL-Touch vezérlő és érzékelőtüskék tesztelésének befejezése után itt az ideje a szintezés tesztelésének, de egy kis csavarral. Ahelyett, hogy a mérőtüske a tárgyasztalt érintené, a körmünkel fogjuk megérinteni. Helyezd a nyomtatófejet messze a tárgyasztaltól, adj ki egy <code>G28</code> (vagy <code>PROBE</code>, ha nem használod a probe:z_virtual_endstopot) parancsot, várj míg a nyomtatófej elkezd lefelé mozogni, és állítsd meg a mozgást úgy, hogy nagyon óvatosan megérinti a mérőtüskét a körmével. Lehet, hogy ezt kétszer kell megtennie, mivel az alapértelmezett kezdőpont konfiguráció kétszer mér. Készülj fel arra is, hogy kikapcsold a nyomtatót, ha az nem áll meg, amikor megérinti a mérőtüskét.</p>
<p>Ha ez sikerült, kezd újra <code>G28</code> (vagy <code>PROBE</code>) parancsal, de ezúttal hagyja, hogy a mérőtüske megérintse a tárgyasztalt.</p>
<h2 id="a-bl-touch-elromlott">A BL-Touch elromlott<a class="headerlink" href="#a-bl-touch-elromlott" title="Permanent link">&para;</a></h2>
<p>Amint a BL-Touch inkonzisztens állapotba kerül, pirosan villogni kezd. Az állapotból való kilépést a következő parancs kiadásával lehet kényszeríteni:</p>
@@ -1433,7 +1433,7 @@ z_hop_speed: 5
<p>Vedd figyelembe azonban, hogy néhány "klón" eszköz és a BL-Touch v2.0 (és korábbi) csökkentett pontosságú lehet, ha a <code>probe_with_touch_mode</code> értéke True. Ezeken az eszközökön érdemes tesztelni a szonda pontosságát a <code>probe_with_touch_mode</code> beállítása előtt és után (a teszteléshez használd a <code>PROBE_ACCURACY</code> parancsot).</p>
<h2 id="a-bl-touch-eltolasok-kalibralasa">A BL-Touch eltolások kalibrálása<a class="headerlink" href="#a-bl-touch-eltolasok-kalibralasa" title="Permanent link">&para;</a></h2>
<p>Az x_offset, y_offset és z_offset konfigurációs paraméterek beállításához kövesse a <a href="Probe_Calibrate.html">Szintező Kalibrálása</a> útmutatóban található utasításokat.</p>
-<p>Jó ötlet ellenőrizni, hogy a Z eltolás közel 1 mm. Ha nem, akkor valószínűleg felfelé vagy lefelé kell mozgatni a szondát, hogy ezt kijavítsa. Azt szeretné, hogy aktiválódjon, mielőtt a fúvóka a tárgyasztalhoz ér, hogy a fúvókához ragadt nyomtatószál vagy a meggörbült tárgyasztal ne befolyásolja a mérési műveletet. Ugyanakkor azonban azt szeretné, ha a visszahúzott pozíció a lehető legmesszebb lenne a fúvóka felett, hogy elkerülje a nyomtatott tárgyak érintkezését. Ha a szonda pozíciójáballítása megtörtént, akkor ismételje meg a kalibrálás lépéseit.</p>
+<p>Jó ötlet ellenőrizni, hogy a Z eltolás közel 1 mm. Ha nem, akkor valószínűleg felfelé vagy lefelé kell mozgatni a szondát, hogy ezt kijavítsa. Azt szeretnéd, hogy aktiválódjon, mielőtt a fúvóka a tárgyasztalhoz ér, hogy a fúvókához ragadt nyomtatószál vagy a meggörbült tárgyasztal ne befolyásolja a mérési műveletet. Ugyanakkor azonban azt szeretnéd, ha a visszahúzott pozíció a lehető legmesszebb lenne a fúvóka felett, hogy elkerülje a nyomtatott tárgyak érintkezését. Ha a szonda pozíciójáballítása megtörtént, akkor ismételje meg a kalibrálás lépéseit.</p>
<h2 id="bl-touch-kimeneti-mod">BL-Touch kimeneti mód<a class="headerlink" href="#bl-touch-kimeneti-mod" title="Permanent link">&para;</a></h2>
<ul>
<li>
diff --git a/hu/Beaglebone.html b/hu/Beaglebone.html
index 9dafad8e7..8482949a5 100644
--- a/hu/Beaglebone.html
+++ b/hu/Beaglebone.html
@@ -1399,7 +1399,7 @@ sudo service klipper start
<h2 id="hatralevo-konfiguracio">Hátralevő konfiguráció<a class="headerlink" href="#hatralevo-konfiguracio" title="Permanent link">&para;</a></h2>
<p>Fejezze be a telepítést a Klipper és az Octoprint konfigurálásával a <a href="Installation.html#configuring-klipper">Telepítés</a> fődokumentumban található utasítások szerint.</p>
<h2 id="nyomtatas-a-beaglebone-on">Nyomtatás a Beaglebone-on<a class="headerlink" href="#nyomtatas-a-beaglebone-on" title="Permanent link">&para;</a></h2>
-<p>Sajnos a Beaglebone processzor néha nehezen tudja jól futtatni az OctoPrintet. Előfordult már, hogy összetett nyomtatásoknál a nyomtatás akadozott (a nyomtató gyorsabban mozog, mint ahogy az OctoPrint mozgatási parancsokat tud küldeni). Ha ez előfordul, fontolja meg a "virtual_sdcard" funkció használatát (a részletekért lásd a <a href="Config_Reference.html#virtual_sdcard">konfigurációs hivatkozást</a>), hogy közvetlenül a Klipperből nyomtass.</p>
+<p>Sajnos a Beaglebone processzor néha nehezen tudja jól futtatni az OctoPrintet. Előfordult már, hogy összetett nyomtatásoknál a nyomtatás akadozott (a nyomtató gyorsabban mozog, mint ahogy az OctoPrint mozgatási parancsokat tud küldeni). Ha ez előfordul, fontold meg a "virtual_sdcard" funkció használatát (a részletekért lásd a <a href="Config_Reference.html#virtual_sdcard">konfigurációs hivatkozást</a>), hogy közvetlenül a Klipperből nyomtass.</p>
</article>
diff --git a/hu/Bed_Level.html b/hu/Bed_Level.html
index af89ff61b..59e960468 100644
--- a/hu/Bed_Level.html
+++ b/hu/Bed_Level.html
@@ -1344,7 +1344,7 @@ Recv: // Z position: ?????? --&gt; 5.000 &lt;-- ??????
</code></pre></div>
<p>A fúvóka aktuális magassága (ahogyan azt a nyomtató jelenleg értelmezi) a "--&gt; &lt;--" között jelenik meg. A jobb oldali szám a legutóbbi mérés magassága, amely éppen nagyobb, mint az aktuális magasság, a bal oldali pedig a legutóbbi mérés magassága, amely kisebb, mint az aktuális magasság (vagy ??????, ha nem történt kísérlet).</p>
-<p>Helyezze a papírt a fúvóka és a tárgyasztal közé. Hasznos lehet a papír egyik sarkát behajtani, hogy könnyebb legyen megfogni. (Próbálja úgy, hogy ne nyomja le a tárgyasztalt, amikor a papírt előre-hátra mozgatja).</p>
+<p>Helyezd a papírt a fúvóka és a tárgyasztal közé. Hasznos lehet a papír egyik sarkát behajtani, hogy könnyebb legyen megfogni. (Próbálja úgy, hogy ne nyomja le a tárgyasztalt, amikor a papírt előre-hátra mozgatja).</p>
<p><img alt="paper-test" src="img/paper-test.jpg" /></p>
<p>A TESTZ paranccsal kérheti, hogy a fúvóka közelebb menjen a papírhoz. Például:</p>
<div class="highlight"><pre><span></span><code>TESTZ Z=-.1
diff --git a/hu/Bed_Mesh.html b/hu/Bed_Mesh.html
index 209319793..37aa4e201 100644
--- a/hu/Bed_Mesh.html
+++ b/hu/Bed_Mesh.html
@@ -1520,11 +1520,11 @@
<h1 id="targyasztal-halo">Tárgyasztal háló<a class="headerlink" href="#targyasztal-halo" title="Permanent link">&para;</a></h1>
-<p>A tárgyasztal háló modul használható a tárgyasztal felület egyenetlenségeinek kiegyenlítésére, hogy jobb első réteget érj el az egész tárgyasztalon. Meg kell jegyezni, hogy a szoftveralapú korrekció nem fog tökéletes eredményt elérni, csak megközelítő értékekkel tudatja a tárgyasztal alakját. A tárgyasztal háló szintén nem tudja kompenzálni a mechanikai és elektromos problémákat. Ha egy tengely ferde vagy egy szonda nem pontos, akkor a bed_mesh modul nem fog pontos eredményeket kapni a szintezésről.</p>
+<p>A tárgyasztal háló modul használható a tárgyasztal felület egyenetlenségeinek kiegyenlítésére, hogy jobb első réteget kapj az egész tárgyasztalon. Meg kell jegyezni, hogy a szoftveralapú korrekció nem fog tökéletes eredményt elérni, csak megközelítő értékekkel tudatja a tárgyasztal alakját. A tárgyasztal háló szintén nem tudja kompenzálni a mechanikai és elektromos problémákat. Ha egy tengely ferde vagy egy szonda nem pontos, akkor a bed_mesh modul nem fog pontos eredményeket kapni a szintezésről.</p>
<p>A hálókalibrálás előtt meg kell győződnie arról, hogy a szonda Z-eltolása kalibrálva van. Ha végállást használ a Z-kezdőponthoz, akkor azt is kalibrálni kell. További információkért lásd a <a href="Probe_Calibrate.html">Szonda Kalibrálás</a> és a Z_ENDSTOP_CALIBRATE című fejezetben <a href="Manual_Level.html">Kézi Szintezést</a>.</p>
<h2 id="alapveto-konfiguracio">Alapvető konfiguráció<a class="headerlink" href="#alapveto-konfiguracio" title="Permanent link">&para;</a></h2>
<h3 id="teglalap-alaku-targyasztalok">Téglalap alakú tárgyasztalok<a class="headerlink" href="#teglalap-alaku-targyasztalok" title="Permanent link">&para;</a></h3>
-<p>Ez a példa egy 250 mm x 220 mm-es téglalap alakú tárgyasztalu nyomtatót és egy 24 mm-es x-eltolású és 5 mm-es y-eltolású szondát mutat.</p>
+<p>Ez a példa egy 250 mm x 220 mm-es téglalap alakú tárgyasztalú nyomtatót és egy 24 mm-es x-eltolású és 5 mm-es y-eltolású szondát mutat.</p>
<div class="highlight"><pre><span></span><code>[bed_mesh]
speed: 120
horizontal_move_z: 5
@@ -1538,7 +1538,7 @@ probe_count: 5, 3
<li><code>horizontal_move_z: 5</code> <em>Alapértelmezett érték: 5</em> A Z koordináta, amelyre a szonda a mérőpontok közötti utazás előtt emelkedik.</li>
<li><code>mesh_min: 35, 6</code> <em>Ajánlott</em> Az első, az origóhoz legközelebbi koordináta. Ez a koordináta a szonda helyéhez képest relatív.</li>
<li><code>mesh_max: 240, 198</code> <em>Ajánlott</em> Az origótól legtávolabb eső mért koordináta. Ez nem feltétlenül az utolsó mért pont, mivel a mérés cikcakkos módon történik. A <code>mesh_min</code> koordinátához hasonlóan ez a koordináta is a szonda helyéhez van viszonyítva.</li>
-<li><code>probe_count: 5, 3</code> <em>Alapértelmezett érték: 3,3</em> Az egyes tengelyeken mérendő pontok száma, X, Y egész értékben megadva. Ebben a példában az X tengely mentén 5 pont lesz mérve, az Y tengely mentén 3 pont, összesen 15 mért pont. Vedd figyelembe, hogy ha négyzetrácsot szeretne, például 3x3, akkor ezt egyetlen egész számértékként is megadhatja, amelyet mindkét tengelyre használ, azaz <code>probe_count: 3</code>. Vedd figyelembe, hogy egy hálóhoz mindkét tengely mentén legalább 3 darab mérési számra van szükség.</li>
+<li><code>probe_count: 5, 3</code> <em>Alapértelmezett érték: 3,3</em> Az egyes tengelyeken mérendő pontok száma, X, Y egész értékben megadva. Ebben a példában az X tengely mentén 5 pont lesz mérve, az Y tengely mentén 3 pont, összesen 15 mért pont. Vedd figyelembe, hogy ha négyzetrácsot szeretnél, például 3x3, akkor ezt egyetlen egész számértékként is megadhatod, amelyet mindkét tengelyre használ, azaz <code>probe_count: 3</code>. Vedd figyelembe, hogy egy hálóhoz mindkét tengely mentén legalább 3 darab mérési számra van szükség.</li>
</ul>
<p>Az alábbi ábra azt mutatja, hogy a <code>mesh_min</code>, <code>mesh_max</code> és <code>probe_count</code> opciók hogyan használhatók a mérőpontok létrehozására. A nyilak jelzik a mérési eljárás irányát, kezdve a <code>mesh_min</code> ponttól. Hivatkozásképpen, amikor a szonda a <code>mesh_min</code> pontnál van, a fúvóka a (11, 1) pontnál lesz, és amikor a szonda a <code>mesh_max</code> pontnál van, a fúvóka a (206, 193) pontnál lesz.</p>
<p><img alt="bedmesh_rect_basic" src="img/bedmesh_rect_basic.svg" /></p>
@@ -1554,7 +1554,7 @@ round_probe_count: 5
<ul>
<li><code>mesh_radius: 75</code> <em>Required</em> A vizsgált háló sugara mm-ben, a <code>mesh_origin</code>-hez képest. Vedd figyelembe, hogy a szonda eltolásai korlátozzák a háló sugarának méretét. Ebben a példában a 76-nál nagyobb sugár a szerszámot a nyomtató hatótávolságán kívülre helyezné.</li>
-<li><code>mesh_origin: 0, 0</code> <em>Alapértelmezett érték: 0, 0</em> A háló középpontja. Ez a koordináta a szonda helyéhez képest relatív. Bár az alapértelmezett érték 0, 0 hasznos lehet az origó beállítása, ha a tárgyasztal nagyobb részét szeretné megmérni. Lásd az alábbi ábrát.</li>
+<li><code>mesh_origin: 0, 0</code> <em>Alapértelmezett érték: 0, 0</em> A háló középpontja. Ez a koordináta a szonda helyéhez képest relatív. Bár az alapértelmezett érték 0, 0 hasznos lehet az origó beállítása, ha a tárgyasztal nagyobb részét szeretnéd megmérni. Lásd az alábbi ábrát.</li>
<li><code>round_probe_count: 5</code> <em>Alapértelmezett érték: 5</em> Ez egy egész szám, amely meghatározza az X és Y tengely mentén mért pontok maximális számát. A "maximális" alatt a háló origója mentén mért pontok számát értjük. Ennek az értéknek páratlan számnak kell lennie, mivel a háló középpontját kell megvizsgálni.</li>
</ul>
<p>Az alábbi ábra mutatja, hogyan generálódnak a mért pontok. Mint látható, a <code>mesh_origin</code> (-10, 0) értékre állítása lehetővé teszi, hogy nagyobb, 85-ös hálósugarat adjunk meg.</p>
diff --git a/hu/Bootloaders.html b/hu/Bootloaders.html
index 6a2d538f1..4af45b6c0 100644
--- a/hu/Bootloaders.html
+++ b/hu/Bootloaders.html
@@ -1775,7 +1775,7 @@ stm32flash -w generic_boot20_pc13.bin -v -g 0 /dev/ttyAMA0
<div class="highlight"><pre><span></span><code>forrás [find target/stm32f1x.cfg]
</code></pre></div>
-<p>Ha szeretné, a következő paranccsal készíthet biztonsági másolatot az aktuális flash memóriáról. Vedd figyelembe, hogy ez némi időt vehet igénybe:</p>
+<p>Ha szeretnéd, a következő paranccsal készíthet biztonsági másolatot az aktuális flash memóriáról. Vedd figyelembe, hogy ez némi időt vehet igénybe:</p>
<div class="highlight"><pre><span></span><code>flash read_bank 0 btt_skr_mini_e3_backup.bin
</code></pre></div>
@@ -1908,9 +1908,9 @@ reset halt
</code></pre></div>
<h3 id="a-raspberry-pi-es-a-celchip-osszekotese">A Raspberry Pi és a célchip összekötése<a class="headerlink" href="#a-raspberry-pi-es-a-celchip-osszekotese" title="Permanent link">&para;</a></h3>
-<p>Kapcsolja ki mind a Raspberry Pi-t, mind a célchipet a kábelezés előtt! Ellenőrizd, hogy a célchip 3,3V-ot használ-e a Raspberry Pi csatlakoztatása előtt!</p>
+<p>Kapcsold ki mind a Raspberry Pi-t, mind a célchipet a kábelezés előtt! Ellenőrizd, hogy a célchip 3,3V-ot használ-e a Raspberry Pi csatlakoztatása előtt!</p>
<p>Csatlakoztassa a célchip GND, SWDCLK, SWDIO és RST értékeit a Raspberry Pi GND, GPIO25, GPIO24 és GPIO18 értékéhez.</p>
-<p>Ezután kapcsolja be a Raspberry Pi-t, és táplálja a célchipet.</p>
+<p>Ezután kapcsold be a Raspberry Pi-t, és táplálja a célchipet.</p>
<h3 id="openocd-futtatasa">OpenOCD futtatása<a class="headerlink" href="#openocd-futtatasa" title="Permanent link">&para;</a></h3>
<p>Futtassa az OpenOCD-t:</p>
<div class="highlight"><pre><span></span><code>cd ~/openocd/
diff --git a/hu/CANBUS_protocol.html b/hu/CANBUS_protocol.html
index c7dbab45e..6ae8247e3 100644
--- a/hu/CANBUS_protocol.html
+++ b/hu/CANBUS_protocol.html
@@ -1370,7 +1370,7 @@
<h1 id="canbus-protokoll">CANBUS protokoll<a class="headerlink" href="#canbus-protokoll" title="Permanent link">&para;</a></h1>
<p>Ez a dokumentum a Klipper által a <a href="https://hu.wikipedia.org/wiki/CAN-busz">CAN-buszon</a> keresztül történő kommunikációhoz használt protokollt írja le. A Klipper CAN-busszal való konfigurálásával kapcsolatos információkért lásd a <CANBUS.md> című dokumentumot.</p>
<h2 id="mikrokontroller-azonosito-hozzarendelese">Mikrokontroller azonosító hozzárendelése<a class="headerlink" href="#mikrokontroller-azonosito-hozzarendelese" title="Permanent link">&para;</a></h2>
-<p>A Klipper csak a CAN 2.0A szabványos méretű CAN-busz csomagokat használja, amelyek 8 adatbájtra és egy 11 bites CAN-busz azonosítóra korlátozódnak. A hatékony kommunikáció támogatása érdekében minden mikrokontrollerhez futáskor egy egyedi, 1 bájtos CAN-busz nodeid (<code>canbus_nodeid</code>) van rendelve az általános Klipper parancs- és válaszforgalomhoz. A gazdagépről a mikrokontroller felé irányuló Klipper-parancsüzenetek a <code>canbus_nodeid * 2 + 256</code> CAN-busz azonosítót használják, míg a mikrokontrollerről a gazdagép felé irányuló Klipper-válaszüzenetek a <code>canbus_nodeid * 2 + 256 + 1</code> azonosítót.</p>
+<p>A Klipper csak a CAN 2.0A szabványos méretű CAN-busz csomagokat használja, amelyek 8 adatbájtra és egy 11 bites CAN-busz azonosítóra korlátozódnak. A hatékony kommunikáció támogatása érdekében minden mikrokontrollerhez futáskor egy egyedi, 1 bájtos CAN-busz nodeid (<code>canbus_nodeid</code>) van rendelve az általános Klipper parancs és válaszforgalomhoz. A gazdagépről a mikrokontroller felé irányuló Klipper-parancsüzenetek a <code>canbus_nodeid * 2 + 256</code> CAN-busz azonosítót használják, míg a mikrokontrollerről a gazdagép felé irányuló Klipper-válaszüzenetek a <code>canbus_nodeid * 2 + 256 + 1</code> azonosítót.</p>
<p>Minden mikrokontroller rendelkezik egy gyárilag hozzárendelt egyedi chipazonosítóval, amelyet az azonosító hozzárendelése során használnak. Ez az azonosító meghaladhatja egy CAN csomag hosszát, ezért egy hash függvényt használunk arra, hogy a gyári azonosítóból egy egyedi 6 bájtos azonosítót (<code>canbus_uuid</code>) generáljunk.</p>
<h2 id="rendszergazdai-uzenetek">Rendszergazdai üzenetek<a class="headerlink" href="#rendszergazdai-uzenetek" title="Permanent link">&para;</a></h2>
<p>Az rendszergazdai üzeneteket az azonosító hozzárendeléséhez használják. A gazdatesttől a mikrokontrollerhez küldött admin üzenetek a CAN-buszon a <code>0x3f0</code>, a mikrokontrollerről a gazdatesthez küldött üzenetek pedig a CAN-buszon a <code>0x3f1</code> azonosítót használják. Minden mikrovezérlő a <code>0x3f0</code> azonosítón fogadja az üzeneteket; ez az azonosító egy "broadcast cím" -nek tekinthető.</p>
diff --git a/hu/CONTRIBUTING.html b/hu/CONTRIBUTING.html
index 4f9f12d14..ed586bd84 100644
--- a/hu/CONTRIBUTING.html
+++ b/hu/CONTRIBUTING.html
@@ -1381,7 +1381,7 @@
<h2 id="mire-szamithatunk-egy-felulvizsgalat-soran">Mire számíthatunk egy felülvizsgálat során<a class="headerlink" href="#mire-szamithatunk-egy-felulvizsgalat-soran" title="Permanent link">&para;</a></h2>
<p>A Klipperhez való hozzájárulásokat az egyesítés előtt felülvizsgálják. A felülvizsgálati folyamat elsődleges célja a hibák ellenőrzése, valamint annak ellenőrzése, hogy a beadvány megfelel-e a Klipper dokumentációjában meghatározott irányelveknek.</p>
<p>Természetesen egy feladatot sokféleképpen lehet elvégezni; a felülvizsgálat célja nem az, hogy megvitassa a "legjobb" végrehajtást. Ahol lehetséges, a felülvizsgálati megbeszélések inkább a tényekre és a mérésekre összpontosítanak.</p>
-<p>A beadványok többsége visszajelzést eredményez egy felülvizsgálatról. Készüljön fel a visszajelzések beszerzésére, további részletek megadására és szükség esetén a beadvány frissítésére.</p>
+<p>A beadványok többsége visszajelzést eredményez egy felülvizsgálatról. Készülj fel a visszajelzések beszerzésére, további részletek megadására és szükség esetén a beadvány frissítésére.</p>
<p>Gyakori dolgok, amiket a bíráló keres:</p>
<ol>
<li>
@@ -1492,11 +1492,11 @@
<div class="highlight"><pre><span></span><code>modul: Nagybetűs, rövid (legfeljebb 50 karakteres) összefoglaló.
Szükség esetén részletesebb magyarázó szöveg. Körülbelül 75
-karakter. Bizonyos kontextusokban az első sort úgy kezelik, mint a
-az e-mail tárgya, a szöveg többi részét pedig szövegtestként. Az üres
-sor, amely elválasztja az összefoglalót a szövegtesttől, kritikus (kivéve, ha kihagyja a
-a törzsszöveget teljesen); az olyan eszközök, mint a rebase, összezavarodhatnak, ha a
-a kettőt együtt futtatják.
+karakter. Bizonyos kontextusokban az első sort úgy kezelik,
+mint a az e-mail tárgya, a szöveg többi részét pedig szövegtestként.
+Az üres sor, amely elválasztja az összefoglalót a szövegtesttől, kritikus
+(kivéve, ha kihagyod a törzsszöveget teljesen); az olyan eszközök,
+mint a rebase, összezavarodhatnak, ha a kettőt együtt futtatják.
Az üres sorok után további bekezdések következnek..
@@ -1504,7 +1504,7 @@ Aláírás: Név &lt;myemail@example.org&gt;
</code></pre></div>
<p>A fenti példában <code>module</code> egy fájl vagy könyvtár neve kell, hogy legyen a tárolóban (fájlkiterjesztés nélkül). Például <code>clocksync: Javítsuk ki a pause() hívásban lévő elírást a csatlakozás idején</code>. A modulnév megadásának célja a kérelmi üzenetben az, hogy segítsen kontextust biztosítani a kérelmi megjegyzésekhez.</p>
-<p>Fontos, hogy minden kérésnél legyen egy "Signed-off-by" sor. Ez igazolja, hogy egyetértesz a <a href="developer-certificate-of-origin">fejlesztői eredetigazolással</a>. Tartalmaznia kell a valódi nevét (sajnálom, nincs álnév vagy névtelen hozzájárulás), és tartalmaznia kell egy aktuális e-mail címet.</p>
+<p>Fontos, hogy minden kérésnél legyen egy "Signed-off-by" sor. Ez igazolja, hogy egyetértesz a <a href="developer-certificate-of-origin">fejlesztői eredetigazolással</a>. Tartalmaznia kell a valódi nevet (sajnálom, nincs álnév vagy névtelen hozzájárulás), és tartalmaznia kell egy aktuális e-mail címet.</p>
<h2 id="hozzajarulas-a-klipper-forditasokhoz">Hozzájárulás a Klipper Fordításokhoz<a class="headerlink" href="#hozzajarulas-a-klipper-forditasokhoz" title="Permanent link">&para;</a></h2>
<p><a href="https://github.com/Klipper3d/klipper-translations">Klipper-fordítási Projekt</a> egy olyan projekt, amely a Klipper különböző nyelvekre való fordítását tűzte ki célul. A <a href="https://hosted.weblate.org/projects/klipper/">Weblate</a> az összes Gettext stringet tárolja a fordításhoz és felülvizsgálathoz. A <a href="https://www.klipper3d.org">klipper3d.org</a> oldalon megjeleníthetők a helyi nyelvek, ha megfelelnek a következő követelményeknek:</p>
<ul>
diff --git a/hu/Code_Overview.html b/hu/Code_Overview.html
index 3af0b948b..5c410b410 100644
--- a/hu/Code_Overview.html
+++ b/hu/Code_Overview.html
@@ -1484,7 +1484,7 @@
<li>Alapvető GPIO bemeneti és kimeneti támogatás megjelenítése. Lásd a Klipper <a href="https://github.com/Klipper3d/klipper/commit/c78b90767f19c9e8510c3155b89fb7ad64ca3c54">commit c78b9076</a> példáját erre.</li>
<li>További perifériák felhozása. Lásd például a Klipper megbízásokat <a href="https://github.com/Klipper3d/klipper/commit/65613aeddfb9ef86905cb1dade9e773a02ef3c27">65613aed</a>, <a href="https://github.com/Klipper3d/klipper/commit/c812a40a3782415e454b04bf7bd2158a6f0ec8b5">c812a40a</a> és <a href="https://github.com/Klipper3d/klipper/commit/c381d03aad5c3ee761169b7c7bced519cc14da29">c381d03a</a>.</li>
<li>Hozzon létre egy minta Klipper konfigurációs fájlt a config/ könyvtárban. Teszteljük a mikrokontrollert a klippy.py főprogrammal.</li>
-<li>Fontolja meg a test/ könyvtárban lévő build tesztesetek hozzáadását.</li>
+<li>Fontold meg a test/ könyvtárban lévő build tesztesetek hozzáadását.</li>
</ol>
<p>További kódolási tippek:</p>
<ol>
diff --git a/hu/Command_Templates.html b/hu/Command_Templates.html
index 3d7bdf9c7..6e0a3f826 100644
--- a/hu/Command_Templates.html
+++ b/hu/Command_Templates.html
@@ -1470,7 +1470,7 @@
<h1 id="parancssablonok">Parancssablonok<a class="headerlink" href="#parancssablonok" title="Permanent link">&para;</a></h1>
<p>Ez a dokumentum a G-kód parancssorozatok gcode_macro (és hasonló) konfigurációs szakaszokban történő implementálásáról nyújt információt.</p>
<h2 id="g-kod-makro-elnevezese">G-kód makró elnevezése<a class="headerlink" href="#g-kod-makro-elnevezese" title="Permanent link">&para;</a></h2>
-<p>A G-kódos makronév esetében a nagy- és kisbetűs írásmód nem fontos - a MY_MACRO és a my_macro ugyanúgy kiértékelődik, és kicsi vagy nagybetűvel is meghívható. Ha a makronévben számokat használunk, akkor azoknak a név végén kell állniuk (pl. a TEST_MACRO25 érvényes, de a MACRO25_TEST3 nem).</p>
+<p>A G-kódos makronév esetében a nagy és kisbetűs írásmód nem fontos - a MY_MACRO és a my_macro ugyanúgy kiértékelődik, és kicsi vagy nagybetűvel is meghívható. Ha a makronévben számokat használunk, akkor azoknak a név végén kell állniuk (pl. a TEST_MACRO25 érvényes, de a MACRO25_TEST3 nem).</p>
<h2 id="a-g-kod-formazasa-a-konfiguracioban">A G-kód formázása a konfigurációban<a class="headerlink" href="#a-g-kod-formazasa-a-konfiguracioban" title="Permanent link">&para;</a></h2>
<p>A behúzás fontos, amikor makrót definiál a konfigurációs fájlban. Többsoros G-kód szekvencia megadásához fontos, hogy minden sorban megfelelő behúzás legyen. Például:</p>
<div class="highlight"><pre><span></span><code>[gcode_macro blink_led]
diff --git a/hu/Config_Changes.html b/hu/Config_Changes.html
index 597ea0368..c95f20967 100644
--- a/hu/Config_Changes.html
+++ b/hu/Config_Changes.html
@@ -1297,7 +1297,7 @@
<p>20220210: A <code>SYNC_STEPPER_TO_EXTRUDER</code> parancs elavult; a <code>SET_EXTRUDER_STEP_DISTANCE</code> parancs elavult; az <a href="Config_Reference.html#extruder">extruder</a> <code>shared_heater</code> config opció elavult. Ezek a funkciók a közeljövőben eltávolításra kerülnek. A <code>SET_EXTRUDER_STEP_DISTANCE</code> helyett <code>SET_EXTRUDER_ROTATION_DISTANCE</code>. Cserélje ki a <code>SYNC_STEPPER_TO_EXTRUDER</code> értéket a <code>SYNC_EXTRUDER_MOTION</code> értékre. Cserélje ki a <code>shared_heater</code> extruder konfigurációs szakaszokat <a href="Config_Reference.html#extruder_stepper">extruder_stepper</a> konfigurációs szakaszokra, és frissítse az aktiválási makrókat a <a href="G-Codes.html#sync_extruder_motion">SYNC_EXTRUDER_MOTION</a> használatára.</p>
<p>20220116: A tmc2130, tmc2208, tmc2209 és tmc2660 <code>run_current</code> számítási kód megváltozott. Egyes <code>run_current</code> beállításoknál az illesztőprogramok most másképp konfigurálhatók. Ennek az új konfigurációnak pontosabbnak kell lennie, de érvénytelenítheti a korábbi TMC illesztőprogram-hangolást.</p>
<p>20211230: A bemeneti alakító hangolására szolgáló szkriptek (<code>scripts/calibrate_shaper.py</code> és <code>scripts/graph_accelerometer.py</code>) alapértelmezés szerint Python3-at használnak. Ennek eredményeképpen a felhasználóknak telepíteniük kell bizonyos csomagok Python3 verzióit (pl. <code>sudo apt install python3-numpy python3-matplotlib</code>), hogy továbbra is használni tudják ezeket a szkripteket. További részletekért lásd a <a href="Measuring_Resonances.html#software-installation">Szoftvertelepítés</a> című részt. Alternatívaként a felhasználók ideiglenesen kikényszeríthetik ezeknek a szkripteknek a Python 2 alatti végrehajtását a Python2 interpretor explicit meghívásával a konzolon: <code>python2 ~/klipper/scripts/calibrate_shaper.py ...</code></p>
-<p>20211110: Az "NTC 100K beta 3950" hőmérséklet-érzékelő elavult. Ez az érzékelő a közeljövőben eltávolításra kerül. A legtöbb felhasználó a "Generic 3950" hőmérséklet-érzékelőt pontosabbnak fogja találni. Ha továbbra is a régebbi (jellemzően kevésbé pontos) definíciót szeretné használni, definiáljon egy egyéni <a href="Config_Reference.html#thermistor">termisztort</a> a <code>temperature1: 25</code>, <code>resistance1: 100000</code>, és <code>beta: 3950</code> értékeken.</p>
+<p>20211110: Az "NTC 100K beta 3950" hőmérséklet-érzékelő elavult. Ez az érzékelő a közeljövőben eltávolításra kerül. A legtöbb felhasználó a "Generic 3950" hőmérséklet-érzékelőt pontosabbnak fogja találni. Ha továbbra is a régebbi (jellemzően kevésbé pontos) definíciót szeretnéd használni, definiáljon egy egyéni <a href="Config_Reference.html#thermistor">termisztort</a> a <code>temperature1: 25</code>, <code>resistance1: 100000</code>, és <code>beta: 3950</code> értékeken.</p>
<p>20211104: A "step pulse duration" opció a "make menuconfig" menüből eltávolításra került. Az UART vagy SPI módban konfigurált TMC-meghajtók alapértelmezett lépésimpulzus időtartama mostantól 100ns. Egy új <code>step_pulse_duration</code> beállítást kell megadni a <a href="Config_Reference.html#stepper">stepper config szakaszban</a> minden olyan stepper esetében, amely egyéni impulzus időtartamot igényel.</p>
<p>20211102: Számos elavult funkciót eltávolítottunk. A léptető <code>step_distance</code> opciót eltávolítottuk (20201222-től elavult). Az <code>rpi_temperature</code> érzékelő álnév eltávolításra került (elavult 20210219). Az MCU <code>pin_map</code> opció eltávolításra került (elavult 20210325). A gcode_macro <code>default_parameter_&lt;name&gt;</code> és a parancsparaméterekhez való, <code>params</code> pszeudováltozótól eltérő makróhoz való hozzáférés eltávolításra került (elavult 20210503). A fűtés <code>pid_integral_max</code> opciót eltávolítottuk (elavult 20210612).</p>
<p>20210929: Klipper v0.10.0 megjelent.</p>
diff --git a/hu/Config_Reference.html b/hu/Config_Reference.html
index 830773c58..7e04ed2ba 100644
--- a/hu/Config_Reference.html
+++ b/hu/Config_Reference.html
@@ -3670,7 +3670,7 @@ microsteps:
# Az alapértelmezett érték 200.
#gear_ratio:
# Az áttétel, ha a léptetőmotor egy sebességváltón keresztül csatlakozik a
-# tengelyhez. Például megadhatja az &quot;5:1&quot; értéket, ha 5:1 sebességváltót
+# tengelyhez. Például megadhatod az &quot;5:1&quot; értéket, ha 5:1 sebességváltót
# használnak. Ha a tengely több sebességváltóval rendelkezik, megadhat
# egy vesszővel elválasztott áttételi listát (például &quot;57:11, 2:1&quot;). Ha a
# gear_ratio meg van adva, akkor a rotation_distance azt a távolságot
@@ -4220,7 +4220,7 @@ pid_Kd:
# általános képlettel értékeli ki: heater_pwm = (Kp*error+ Ki*integral(error) vagy
# Kd*derivative(error)) / 255 Ahol az „error” a „requested_temperature és
# measured_temperature” és a „heater_pwm” a kért fűtési sebesség 0,0 teljes
-# kikapcsolt és 1,0 teljes bekapcsolva. Fontolja meg a PID_CALIBRATE parancs
+# kikapcsolt és 1,0 teljes bekapcsolva. Fontold meg a PID_CALIBRATE parancs
# használatát a paraméterek lekéréséhez. A pid_Kp, pid_Ki és pid_Kd
# paramétereket meg kell adni a PID fűtőberendezésekhez.
#max_delta: 2.0
@@ -5313,7 +5313,7 @@ extruder:
</code></pre></div>
<h3 id="thermistor">[thermistor]<a class="headerlink" href="#thermistor" title="Permanent link">&para;</a></h3>
-<p>Egyéni termisztorok (tetszőleges számú szakasz definiálható "termisztor" előtaggal). Egyéni termisztor használható a fűtőberendezés konfigurációs szakaszának sensor_type mezőjében. (Ha például egy "[thermistor my_thermistor]" szekciót definiálunk, akkor a fűtőelem definiálásakor használhatjuk a "sensor_type: my_thermistor" mezőt.). Ügyelj arra, hogy a termisztor szekciót a konfigurációs fájlban az első fűtőszekcióban való használata fölé helyezze.</p>
+<p>Egyéni termisztorok (tetszőleges számú szakasz definiálható "termisztor" előtaggal). Egyéni termisztor használható a fűtőberendezés konfigurációs szakaszának sensor_type mezőjében. (Ha például egy "[thermistor my_thermistor]" szekciót definiálunk, akkor a fűtőelem definiálásakor használhatjuk a "sensor_type: my_thermistor" mezőt.). Ügyelj arra, hogy a termisztor szekciót a konfigurációs fájlban az első fűtőszekcióban való használata fölé helyezd.</p>
<div class="highlight"><pre><span></span><code>[thermistor my_thermistor]
#temperature1:
#resistance1:
@@ -5333,7 +5333,7 @@ extruder:
</code></pre></div>
<h3 id="adc_temperature">[adc_temperature]<a class="headerlink" href="#adc_temperature" title="Permanent link">&para;</a></h3>
-<p>Egyedi ADC hőmérséklet-érzékelők (tetszőleges számú szekciót lehet definiálni "adc_temperature" előtaggal). Ez lehetővé teszi egy olyan egyéni hőmérséklet-érzékelő definiálását, amely egy feszültséget mér egy analóg-digitális átalakító (ADC) tűn, és lineáris interpolációt használ a konfigurált hőmérséklet/feszültség (vagy hőmérséklet/ellenállás) mérések között a hőmérséklet meghatározásához. Az így kapott érzékelő sensor_type-ként használható egy fűtőszekcióban. (Ha például egy "[adc_temperature my_sensor]" szekciót definiálunk, akkor egy fűtőelem definiálásakor használhatjuk a "sensor_type: my_sensor" szekciót). Ügyelj arra, hogy a szenzor szekciót a config fájlban az első felhasználása fölé helyezze a fűtőszekcióban.</p>
+<p>Egyedi ADC hőmérséklet-érzékelők (tetszőleges számú szekciót lehet definiálni "adc_temperature" előtaggal). Ez lehetővé teszi egy olyan egyéni hőmérséklet-érzékelő definiálását, amely egy feszültséget mér egy analóg-digitális átalakító (ADC) tűn, és lineáris interpolációt használ a konfigurált hőmérséklet/feszültség (vagy hőmérséklet/ellenállás) mérések között a hőmérséklet meghatározásához. Az így kapott érzékelő sensor_type-ként használható egy fűtőszekcióban. (Ha például egy "[adc_temperature my_sensor]" szekciót definiálunk, akkor egy fűtőelem definiálásakor használhatjuk a "sensor_type: my_sensor" szekciót). Ügyelj arra, hogy a szenzor szekciót a config fájlban az első felhasználása fölé helyezd a fűtőszekcióban.</p>
<div class="highlight"><pre><span></span><code>[adc_temperature my_sensor]
#temperature1:
#voltage1:
@@ -5892,7 +5892,7 @@ clock_pin:
#scl_pin:
#sda_pin:
# Alternatív megoldásként, ha a pca9632 nincs hardveres I2C
-# buszhoz csatlakoztatva, akkor megadhatja az &quot;óra&quot; (scl_pin)
+# buszhoz csatlakoztatva, akkor megadhatod az &quot;óra&quot; (scl_pin)
# és &quot;data&quot; (sda_pin) érintkezőket.
# Az alapértelmezés a hardveres I2C használata.
#color_order: RGBW
@@ -6735,7 +6735,7 @@ text:
# (pixelenként 1), ahol a &#39;.&#39; egy üres pixel, a &#39;*&#39; pedig egy bekapcsolt
# képpont (pl. &quot;****************&quot; folyamatos vízszintes vonal
# megjelenítéséhez). Alternatív megoldásként használhatunk „0”-t
-# üres pixelekhez és „1”-et a bekapcsolt pixelekhez. Helyezzen minden
+# üres pixelekhez és „1”-et a bekapcsolt pixelekhez. Helyezz minden
# megjelenítési sort egy külön konfigurációs sorba. A karakterjelnek
# pontosan 16, egyenként 16 bites sorból kell állnia.
# Ez a paraméter nem kötelező.
@@ -6968,12 +6968,12 @@ i2c_address:
# részben.
#i2c_bus:
# Ha a mikrovezérlő I2C megvalósítása több I2C buszt is támogat,
-# itt megadhatja a busz nevét.
+# itt megadhatod a busz nevét.
# Az alapértelmezett a mikrovezérlő I2C busz használata.
</code></pre></div>
<h3 id="samd_sercom">[samd_sercom]<a class="headerlink" href="#samd_sercom" title="Permanent link">&para;</a></h3>
-<p>SAMD SERCOM konfiguráció annak megadására, hogy mely tűket kell használni egy adott SERCOM-on. A "samd_sercom" előtaggal tetszőleges számú szekciót definiálhatunk. Minden SERCOM-ot konfigurálni kell, mielőtt SPI vagy I2C perifériaként használnánk. Helyezze ezt a konfigurációs szekciót minden más, SPI vagy I2C buszokat használó szekció fölé.</p>
+<p>SAMD SERCOM konfiguráció annak megadására, hogy mely tűket kell használni egy adott SERCOM-on. A "samd_sercom" előtaggal tetszőleges számú szekciót definiálhatunk. Minden SERCOM-ot konfigurálni kell, mielőtt SPI vagy I2C perifériaként használnánk. Helyezd ezt a konfigurációs szekciót minden más, SPI vagy I2C buszokat használó szekció fölé.</p>
<div class="highlight"><pre><span></span><code>[samd_sercom my_sercom]
sercom:
# A mikrovezérlőben konfigurálandó sercom busz neve.
@@ -7131,7 +7131,7 @@ cs_pin:
# SPI-sebesség (hz-ben).
# Az alapértelmezett érték az eszköz típusától függ.
#spi_bus:
-# Ha a mikrovezérlő több SPI buszt támogat, akkor itt megadhatja a
+# Ha a mikrovezérlő több SPI buszt támogat, akkor itt megadhatod a
# mikrovezérlő busz nevét. Az alapértelmezett érték a mikrovezérlő
# típusától függ.
#spi_software_sclk_pin:
@@ -7155,7 +7155,7 @@ cs_pin:
# Annak a mikrovezérlőnek a neve, amelyhez a chip csatlakozik.
# Az alapértelmezett az &quot;mcu&quot;.
#i2c_bus:
-# Ha a mikrovezérlő több I2C buszt támogat, akkor itt megadhatja a
+# Ha a mikrovezérlő több I2C buszt támogat, akkor itt megadhatod a
# mikrovezérlő busz nevét.
# Az alapértelmezett érték a mikrovezérlő típusától függ.
#i2c_speed:
diff --git a/hu/Config_checks.html b/hu/Config_checks.html
index febaf5f4a..4fbc29c4d 100644
--- a/hu/Config_checks.html
+++ b/hu/Config_checks.html
@@ -1403,9 +1403,9 @@
<h2 id="ellenorizd-a-homersekletet">Ellenőrizd a hőmérsékletet<a class="headerlink" href="#ellenorizd-a-homersekletet" title="Permanent link">&para;</a></h2>
<p>Kezd azzal, hogy ellenőrzöd, a hőmérséklet megfelelően van-e jelentve. Lépj az Octoprint hőmérséklet lapjára.</p>
<p><img alt="octoprint-temperature" src="img/octoprint-temperature.png" /></p>
-<p>Ellenőrizd, hogy a fúvóka és a tárgyasztal hőmérséklete (ha van) jelen van-e, és nem emelkedik. Ha növekszik, kapcsolja ki a nyomtatót. Ha a hőmérsékletek nem pontosak, tekintsd át a fúvóka és/vagy tárgyasztal "sensor_type" és "sensor_pin" beállításait.</p>
+<p>Ellenőrizd, hogy a fúvóka és a tárgyasztal hőmérséklete (ha van) jelen van-e, és nem emelkedik. Ha növekszik, kapcsold ki a nyomtatót. Ha a hőmérsékletek nem pontosak, tekintsd át a fúvóka és/vagy tárgyasztal "sensor_type" és "sensor_pin" beállításait.</p>
<h2 id="ellenorzes-m112">Ellenőrzés M112<a class="headerlink" href="#ellenorzes-m112" title="Permanent link">&para;</a></h2>
-<p>Navigálj az Octoprint terminál fülre, és adj ki egy M112 parancsot a terminálmezőben. Ez a parancs arra kéri a Klippert, hogy lépjen "leállási" állapotba. Ennek hatására az Octoprint megszakítja a kapcsolatot a Klipperrel. Navigálj a Connection (Kapcsolat) területre, és kattints a "Kapcsolódás" gombra, hogy az Octoprint újra csatlakozzon. Ezután navigálj az Octoprint hőmérséklet fülre, és ellenőrizd, hogy a hőmérsékletek továbbra is frissülnek-e, és a hőmérsékletek nem emelkednek-e. Ha a hőmérsékletek emelkednek, kapcsolja le a nyomtatót a hálózatról.</p>
+<p>Navigálj az Octoprint terminál fülre, és adj ki egy M112 parancsot a terminálmezőben. Ez a parancs arra kéri a Klippert, hogy lépjen "leállási" állapotba. Ennek hatására az Octoprint megszakítja a kapcsolatot a Klipperrel. Navigálj a Connection (Kapcsolat) területre, és kattints a "Kapcsolódás" gombra, hogy az Octoprint újra csatlakozzon. Ezután navigálj az Octoprint hőmérséklet fülre, és ellenőrizd, hogy a hőmérsékletek továbbra is frissülnek-e, és a hőmérsékletek nem emelkednek-e. Ha a hőmérsékletek emelkednek, kapcsold le a nyomtatót a hálózatról.</p>
<p>Az M112 parancs hatására a Klipper "leállítás" állapotba kerül. Ennek az állapotnak a törléséhez adj ki egy FIRMWARE_RESTART parancsot az Octoprint terminál lapon.</p>
<h2 id="ellenorizd-a-futotesteket">Ellenőrizd a fűtőtesteket<a class="headerlink" href="#ellenorizd-a-futotesteket" title="Permanent link">&para;</a></h2>
<p>Navigálj az Octoprint hőmérséklet fülre, és írd be az 50-et, majd nyomj Entert az "Eszköz" hőmérséklet mezőbe. Az extruder hőmérsékletének a grafikonon növekednie kell (körülbelül 30 másodpercen belül). Ezután lépj az "Eszköz" hőmérséklet legördülő mezőbe, és válaszd az "Off" lehetőséget. Néhány perc múlva a hőmérsékletnek el kell kezdenie visszaesni a kezdeti hőmérséklet felé. Ha a hőmérséklet nem emelkedik, akkor ellenőrizd a "heater_pin" beállítását a konfigurációs fájban.</p>
@@ -1420,7 +1420,7 @@
<p>A STEPPER_BUZZ parancs segítségével ellenőrizd az egyes léptetőmotorok csatlakozását. Kezd az adott tengely kézi pozicionálásával egy középső pontra, majd futtassa a <code>STEPPER_BUZZ STEPPER=stepper_x</code> parancsot. A STEPPER_BUZZ parancs hatására az adott stepper egy millimétert mozdul pozitív irányba, majd visszatér a kiindulási helyzetébe. (Ha a végállást a position_endstop=0 értéken definiáljuk, akkor minden egyes mozgás kezdetén a léptető a végállástól távolodik). Ezt a mozgást tízszer fogja végrehajtani.</p>
<p>Ha a léptető egyáltalán nem mozog, akkor ellenőrizd az "enable_pin" és "step_pin" beállításokat a léptetőnél. Ha a léptetőmotor mozog, de nem tér vissza az eredeti helyzetébe, akkor ellenőrizd a "dir_pin" beállítást. Ha a léptetőmotor helytelen irányban mozog, akkor ez általában azt jelzi, hogy a tengely "dir_pin" beállítását meg kell fordítani. Ezt úgy lehet megtenni, hogy a nyomtató konfigurációs fájlban a "dir_pin" értékhez hozzáadunk egy '!' jelet (vagy eltávolítjuk, ha már van ilyen). Ha a motor egy milliméternél lényegesen többet vagy lényegesen kevesebbet mozog, akkor ellenőrizd a "rotation_distance" beállítást.</p>
<p>Futtassa a fenti tesztet a konfigurációs fájlban definiált minden egyes léptetőmotorra. (Állítsd a STEPPER_BUZZ parancs STEPPER paraméterét a tesztelendő konfigurációs szakasz nevére). Ha nincs nyomtatószál az extruderben, akkor a STEPPER_BUZZ paranccsal ellenőrizheti az extruder motor csatlakozását (használd a STEPPER=extruder parancsot). Ellenkező esetben a legjobb ha az extruder motort külön teszteljük (lásd a következő szakaszt).</p>
-<p>Az összes végállás és léptetőmotor ellenőrzése után a célba állítási mechanizmust tesztelni kell. Adj ki egy G28 parancsot az összes tengely alaphelyzetbe állításához. Ha a nyomtató nem állítható be megfelelően, kapcsolja ki a nyomtatót. Ha szükséges, ismételje meg a végállás és a léptetőmotorok ellenőrzését.</p>
+<p>Az összes végállás és léptetőmotor ellenőrzése után a célba állítási mechanizmust tesztelni kell. Adj ki egy G28 parancsot az összes tengely alaphelyzetbe állításához. Ha a nyomtató nem állítható be megfelelően, kapcsold ki a nyomtatót. Ha szükséges, ismételje meg a végállás és a léptetőmotorok ellenőrzését.</p>
<h2 id="extruder-motor-ellenorzese">Extruder motor ellenőrzése<a class="headerlink" href="#extruder-motor-ellenorzese" title="Permanent link">&para;</a></h2>
<p>Az extruder motor teszteléséhez a nyomtatófejet nyomtatási hőmérsékletre kell melegíteni. Navigálj az Octoprint hőmérséklet fülre, és válasszon ki egy célhőmérsékletet a hőmérséklet legördülő menüből (vagy add meg manuálisan a megfelelő hőmérsékletet). Várja meg, amíg a nyomtató eléri a kívánt hőmérsékletet. Ezután navigálj az Octoprint vezérlő lapra, és kattints az "Extrudálás" gombra. Ellenőrizd, hogy az extruder motorja a megfelelő irányba forog-e. Ha nem, akkor az előző szakaszban található hibaelhárítási tippek alapján ellenőrizd az extruder "enable_pin", "step_pin" és "dir_pin" beállításait.</p>
<h2 id="pid-beallitasok-kalibralasa">PID beállítások kalibrálása<a class="headerlink" href="#pid-beallitasok-kalibralasa" title="Permanent link">&para;</a></h2>
diff --git a/hu/Contact.html b/hu/Contact.html
index 3490d2172..b64b9d745 100644
--- a/hu/Contact.html
+++ b/hu/Contact.html
@@ -1388,10 +1388,10 @@
<p>Lehetőség van hasonló kérdések keresésére a <a href="#kozossegi-forum">Klipper Közösségi Fórum</a> oldalon is.</p>
<p>Ha szeretnéd megosztani tudásodat és tapasztalataidat más Klipper felhasználókkal, akkor csatlakozhatsz a <a href="#kozossegi-forum">Klipper Közösségi Fórum</a> vagy a <a href="#discord-cseveges">Discord Csevegés</a>-hez. Mindkettő olyan közösség, ahol a Klipper felhasználók megvitathatják a Klippert más felhasználókkal.</p>
<p>Sok kérdés, amit kapunk, általános 3D-nyomtatással kapcsolatos, amely nem kifejezetten a Klipperre vonatkozik. Ha általános kérdése van, vagy általános nyomtatási problémákkal küzd, akkor valószínűleg jobb választ kap, ha egy általános 3D-nyomtatási fórumon vagy a nyomtató hardverével foglalkozó fórumon teszi fel a kérdést.</p>
-<p>Ne nyisson GitHub-on a Klippernél problémajelentést-t, ha kérdést szeretne feltenni.</p>
+<p>Ne nyiss GitHub-on a Klippernél problémajelentést-t, ha kérdést szeretnél feltenni.</p>
<h2 id="van-egy-funkciokerelmem">Van egy funkciókérelmem<a class="headerlink" href="#van-egy-funkciokerelmem" title="Permanent link">&para;</a></h2>
<p>Minden új funkcióhoz szükség van valakire, akit érdekel és képes az adott funkció megvalósítására. Ha szeretnél segíteni egy új funkció megvalósításában vagy tesztelésében, akkor a <a href="#kozossegi-forum">Klipper Közösségi Fórum</a> oldalon keresheted a folyamatban lévő fejlesztéseket. A <a href="#discord-cseveges">Discord Csevegés</a> is rendelkezésre áll a munkatársak közötti megbeszélésekhez.</p>
-<p>Ne nyisson GitHub-on a Klippernél problémajelentést, hogy funkciót kérj.</p>
+<p>Ne nyiss GitHub-on a Klippernél problémajelentést, hogy funkciót kérj.</p>
<h2 id="segitseg-nem-mukodik">Segítség! Nem működik!<a class="headerlink" href="#segitseg-nem-mukodik" title="Permanent link">&para;</a></h2>
<p>Sajnos sokkal több segítségkérés érkezik hozzánk, mint amennyit meg tudnánk válaszolni. A legtöbb problémás bejelentés, amit látunk végül a következőkre vezethető vissza:</p>
<ol>
@@ -1402,7 +1402,7 @@
<p>Ha nyomtatási problémát tapasztalsz, akkor javasoljuk, hogy alaposan vizsgáld meg a nyomtató hardverét (minden illesztést, vezetéket, csavart stb.), és győződj meg arról, hogy semmi rendellenes nincs. Úgy találjuk, hogy a legtöbb nyomtatási probléma nem a Klipper szoftverrel kapcsolatos. Ha a nyomtató hardverével kapcsolatos problémát talál, akkor valószínűleg jobb választ kap, ha egy általános 3D-nyomtatási fórumon vagy egy, a nyomtató hardverével foglalkozó fórumon keres.</p>
<p>A <a href="#kozossegi-forum">Klipper Közösségi Fórumban</a> is kereshetsz hasonló kérdéseket.</p>
<p>Ha szeretnéd megosztani tudásodat és tapasztalataidat más Klipper felhasználókkal, akkor csatlakozhatsz a <a href="#kozossegi-forum">Klipper Közösségi Fórum</a> vagy a <a href="#discord-cseveges">Discord Csevegés</a>-hez. Mindkettő olyan közösség, ahol a Klipper felhasználók megvitathatják a Klippert más felhasználókkal.</p>
-<p>Ne nyisson GitHub-on a Klippernél problémajelentést, hogy segítséget kérj.</p>
+<p>Ne nyiss GitHub-on a Klippernél problémajelentést, hogy segítséget kérj.</p>
<h2 id="hibat-diagnosztizaltam-a-klipper-szoftverben">Hibát diagnosztizáltam a Klipper szoftverben<a class="headerlink" href="#hibat-diagnosztizaltam-a-klipper-szoftverben" title="Permanent link">&para;</a></h2>
<p>A Klipper egy nyílt forráskódú projekt, és nagyra értékeljük, ha a munkatársak diagnosztizálják a szoftver hibáit.</p>
<p>Fontos információkra lesz szükség a hiba kijavításához. Kérjük, kövesse az alábbi lépéseket:</p>
@@ -1429,7 +1429,7 @@
<h2 id="valtoztatasokat-vegzek-amelyeket-szeretnek-a-klipperbe-beepiteni">Változtatásokat végzek, amelyeket szeretnék a Klipperbe beépíteni<a class="headerlink" href="#valtoztatasokat-vegzek-amelyeket-szeretnek-a-klipperbe-beepiteni" title="Permanent link">&para;</a></h2>
<p>A Klipper nyílt forráskódú szoftver, és örömmel fogadjuk az új hozzájárulásokat.</p>
<p>Az új hozzájárulásokat (mind a kódot, mind a dokumentációt illetően) a GitHub Pull Requests-en keresztül küldheted be. Lásd a <a href="CONTRIBUTING.html">CONTRIBUTING dokumentumot</a> a fontos információkért.</p>
-<p>Számos <a href="Overview.html#developer-documentation">Fejlesztői dokumentum</a> van fejlesztőknek. Ha kérdése van a kóddal kapcsolatban, akkor a <a href="#kozossegi-forum">Klipper Közösségi Fórum</a> vagy a <a href="#discord-cseveges">Discord Csevegés</a> oldalon is felteheti a kérdést. Ha frissíteni szeretné az aktuális fejlesztést, akkor megnyithat egy GitHub-problémát a kód helyével, a módosítások áttekintésével és az aktuális állapot leírásával.</p>
+<p>Számos <a href="Overview.html#developer-documentation">Fejlesztői dokumentum</a> van fejlesztőknek. Ha kérdése van a kóddal kapcsolatban, akkor a <a href="#kozossegi-forum">Klipper Közösségi Fórum</a> vagy a <a href="#discord-cseveges">Discord Csevegés</a> oldalon is felteheti a kérdést. Ha frissíteni szeretnéd az aktuális fejlesztést, akkor megnyithat egy GitHub-problémát a kód helyével, a módosítások áttekintésével és az aktuális állapot leírásával.</p>
</article>
diff --git a/hu/Debugging.html b/hu/Debugging.html
index 2ac96fd84..86468acb3 100644
--- a/hu/Debugging.html
+++ b/hu/Debugging.html
@@ -1417,7 +1417,7 @@
<p>Néhány parancssori opció is rendelkezésre áll. További információkért futtassa a: <code>~/klippy-env/bin/python ./klippy/console.py --help</code> parancsot</p>
<h2 id="a-g-kod-fajlok-leforditasa-mikrokontroller-parancsokra">A G-kód fájlok lefordítása mikrokontroller-parancsokra<a class="headerlink" href="#a-g-kod-fajlok-leforditasa-mikrokontroller-parancsokra" title="Permanent link">&para;</a></h2>
<p>A Klippy gazdagép kódja futhat kötegelt üzemmódban, hogy előállítsa a G-kód fájlhoz tartozó alacsony szintű mikrokontroller-parancsokat. Ezeknek az alacsony szintű parancsoknak a vizsgálata hasznos, amikor megpróbálod megérteni az alacsony szintű hardver műveleteit. Az is hasznos lehet, hogy összehasonlítsuk a mikrokontroller-parancsok közötti különbséget egy kódváltás után.</p>
-<p>A Klippy futtatásához ebben a kötegelt üzemmódban egy egyszeri lépés szükséges a mikrokontroller "adatszótár" létrehozásához. Ez a mikrokontroller kódjának lefordításával történik, hogy megkapjuk a <strong>out/klipper.dict</strong> fájlt:</p>
+<p>A Klippy futtatásához ebben a kötegelt üzemmódban egy egyszeri lépés szükséges a mikrokontroller "adatszótár" létrehozásához. Ez a mikrokontroller kódjának lefordításával történik, hogy megkapjuk az <strong>out/klipper.dict</strong> fájlt:</p>
<div class="highlight"><pre><span></span><code>make menuconfig
make
</code></pre></div>
diff --git a/hu/Delta_Calibrate.html b/hu/Delta_Calibrate.html
index 4f3c3885f..2d0fc5c40 100644
--- a/hu/Delta_Calibrate.html
+++ b/hu/Delta_Calibrate.html
@@ -1358,7 +1358,7 @@
<h1 id="delta-kalibralas">Delta kalibrálás<a class="headerlink" href="#delta-kalibralas" title="Permanent link">&para;</a></h1>
<p>Ez a dokumentum a Klipper "delta" stílusú nyomtatók automatikus kalibrációs rendszerét írja le.</p>
<p>A deltakalibrálás magában foglalja a torony végállásának, a torony szögének, a deltasugárnak és a deltakarok hosszának meghatározását. Ezek a beállítások szabályozzák a nyomtató mozgását a delta nyomtatónál. E paraméterek mindegyike nem nyilvánvaló és nem lineáris hatással bír, és manuálisan nehéz kalibrálni őket. Ezzel szemben a szoftver kalibrációs kódja néhány perc ráfordítással kiváló eredményt adhat. Nincs szükség speciális szintező hardverre.</p>
-<p>A delta-kalibrálás végső soron a torony végálláskapcsolóinak pontosságától függ. Ha valaki Trinamic léptetőmotor-meghajtókat használ, akkor fontolja meg a <a href="Endstop_Phase.html">végállási fázis</a> érzékelés engedélyezését, hogy javítsa e kapcsolók pontosságát.</p>
+<p>A delta-kalibrálás végső soron a torony végálláskapcsolóinak pontosságától függ. Ha valaki Trinamic léptetőmotor-meghajtókat használ, akkor fontolja meg a <a href="Endstop_Phase.html">végállási fázis</a> érzékelés engedélyezését, hogy javítsa a kapcsolók pontosságát.</p>
<h2 id="automatikus-vagy-kezi-szintezes">Automatikus vagy kézi szintezés<a class="headerlink" href="#automatikus-vagy-kezi-szintezes" title="Permanent link">&para;</a></h2>
<p>A Klipper támogatja a delta paraméterek kalibrálását kézi szintezéssel vagy automatikus Z-szondával.</p>
<p>Számos delta nyomtató készlethez automatikus Z-szondák tartoznak, amelyek nem elég pontosak (különösen a karok hosszának kis különbségei okozhatnak effektor dőlést, ami elferdítheti az automatikus szondát). Ha automatikus szondát használ, akkor először <a href="Probe_Calibrate.html">kalibrálja a szondát</a>, majd ellenőrizd a <a href="Probe_Calibrate.html#location-bias-check">szonda helyének torzítását</a>. Ha az automatikus szonda torzítása több mint 25 mikron (0.025mm), akkor helyette használj kézi szintezést. A kézi szintezés csak néhány percet vesz igénybe, és kiküszöböli a szonda által okozott hibát.</p>
diff --git a/hu/Endstop_Phase.html b/hu/Endstop_Phase.html
index c21e09fc0..3148697c9 100644
--- a/hu/Endstop_Phase.html
+++ b/hu/Endstop_Phase.html
@@ -1316,8 +1316,8 @@
<h1 id="vegallas-fazis">Végállás fázis<a class="headerlink" href="#vegallas-fazis" title="Permanent link">&para;</a></h1>
<p>Ez a dokumentum a Klipper léptetőfázis-beállított végütköző rendszerét írja le. Ez a funkció javíthatja a hagyományos végálláskapcsolók pontosságát. Ez a leghasznosabb olyan Trinamic léptetőmotor-illesztőprogram használatakor, amely futásidejű konfigurációval rendelkezik.</p>
<p>Egy tipikus végálláskapcsoló pontossága körülbelül 100 mikron. (A tengely minden egyes indításakor a kapcsoló valamivel korábban vagy valamivel később léphet működésbe). Bár ez viszonylag kis hiba, nem kívánt nyomtatványokat eredményezhet. Különösen a tárgy első rétegének nyomtatásakor lehet észrevehető ez a pozícióeltérés. Ezzel szemben a tipikus léptetőmotorokkal lényegesen nagyobb pontosság érhető el.</p>
-<p>A lépcsős fázisú végállás mechanizmus a lépcsős motorok pontosságát használhatja a végálláskapcsolók pontosságának javítására. A léptetőmotor egy sor fázison keresztül ciklikusan mozog, amíg négy "teljes lépést" nem teljesít. Tehát egy 16 mikrolépést használó léptetőmotornak 64 fázisa lenne, és pozitív irányba történő mozgáskor a fázisok között ciklikusan haladna: 0, 1, 2, ... 61, 62, 63, 0, 1, 2, stb. Lényeges, hogy amikor a léptetőmotor egy adott pozícióban van a lineáris sínen, mindig ugyanabban a léptetőfázisban kell lennie. Így amikor egy kocsi a végálláskapcsolót aktiválja, az adott kocsit vezérlő léptetőnek mindig ugyanabban a léptetőmotor fázisban kell lennie. A Klipper'végállás fázis rendszere a végállás pontosságának javítása érdekében kombinálja a léptető fázist a végállás kioldójával.</p>
-<p>Ahhoz, hogy ezt a funkciót használni lehessen, azonosítani kell a léptetőmotor fázisát. Ha a Trinamic TMC2130, TMC2208, TMC2224 vagy TMC2660 meghajtókat futásidejű konfigurációs módban használod (azaz nem önálló módban), akkor a Klipper le tudja kérdezni a léptetőmotor fázisát a meghajtóból. (Ez a rendszer hagyományos léptető meghajtókon is használható, ha megbízhatóan vissza lehet állítani a léptető meghajtókat - a részleteket lásd alább.)</p>
+<p>A léptető fázisú végállás mechanizmus a léptetőmotorok pontosságát használhatja a végálláskapcsolók pontosságának javítására. A léptetőmotor egy sor fázison keresztül ciklikusan mozog, amíg négy "teljes lépést" nem teljesít. Tehát egy 16 mikrolépést használó léptetőmotornak 64 fázisa lenne, és pozitív irányba történő mozgáskor a fázisok között ciklikusan haladna: 0, 1, 2, ... 61, 62, 63, 0, 1, 2, stb. Lényeges, hogy amikor a léptetőmotor egy adott pozícióban van a lineáris sínen, mindig ugyanabban a léptetőfázisban kell lennie. Így amikor egy kocsi a végálláskapcsolót aktiválja, az adott kocsit vezérlő léptetőnek mindig ugyanabban a léptetőmotor fázisban kell lennie. A Klipper végállás fázis rendszere a végállás pontosságának javítása érdekében kombinálja a léptető fázist a végállás kioldójával.</p>
+<p>Ahhoz, hogy ezt a funkciót használni lehessen, azonosítani kell a léptetőmotor fázisát. Ha a Trinamic TMC2130, TMC2208, TMC2224 vagy TMC2660 meghajtókat futásidejű konfigurációs módban használod (azaz nem önálló módban), akkor a Klipper le tudja kérdezni a léptetőmotor fázisát a meghajtóból. (Ez a rendszer hagyományos léptető meghajtókon is használható, ha megbízhatóan vissza lehet állítani a léptető meghajtókat - részleteket lásd alább.)</p>
<h2 id="vegallasi-fazisok-kalibralasa">Végállási fázisok kalibrálása<a class="headerlink" href="#vegallasi-fazisok-kalibralasa" title="Permanent link">&para;</a></h2>
<p>Ha Trinamic léptetőmotor-meghajtókat használunk futásidejű konfigurációval, akkor az ENDSTOP_PHASE_CALIBRATE paranccsal kalibrálhatjuk a végállási fázisokat. Kezd a következők hozzáadásával a konfigurációs fájlhoz:</p>
<div class="highlight"><pre><span></span><code>[endstop_phase]
diff --git a/hu/Example_Configs.html b/hu/Example_Configs.html
index 32d5fba6f..5023fd94b 100644
--- a/hu/Example_Configs.html
+++ b/hu/Example_Configs.html
@@ -1301,7 +1301,7 @@
<li>Minden konfigurációs fájlnak <code>.cfg</code> végződéssel kell végződnie. A <code>printer</code> konfigurációs fájloknak egy évszámmal kell végződniük, amelyet a <code>.cfg</code> végződés követ (pl. <code>-2019.cfg</code>). Ebben az esetben az évszám az adott nyomtató eladásának hozzávetőleges éve.</li>
<li>Ne használj szóközöket vagy speciális karaktereket a konfigurációs fájlnévben. A fájlnév csak a <code>A-Z</code>, <code>a-z</code>, <code>0-9</code>, <code>-</code> és <code>karaktereket tartalmazhatja.</code>.</li>
<li>A Klippernek hiba nélkül el kell tudnia indítani a <code>printer</code>, <code>generic</code> és <code>kit</code> példa konfigurációs fájlt. Ezeket a konfigurációs fájlokat hozzá kell adni a <a href="https://github.com/Klipper3d/klipper/blob/master/test/klippy/printers.test">test/klippy/printers.test</a> regressziós tesztesethez. Add hozzá az új konfigurációs fájlokat ehhez a tesztesethez a megfelelő szakaszban és a szakaszon belül ábécé sorrendben.</li>
-<li>A példakonfigurációnak a nyomtató "stock" konfigurációjára kell vonatkoznia. (Túl sok "testreszabott" konfiguráció van ahhoz, hogy a Klipper fő tárolójában nyomon lehessen követni.) Hasonlóképpen, csak olyan nyomtatók, készletek és kártyák példakonfigurációs fájljait adjuk hozzá, amelyek népszerűek (pl. legalább 100 darabnak kell lennie belőlük aktív használatban). Fontolja meg a <a href="https://community.klipper3d.org">Klipper Community Discourse szerver</a> használatát más konfigurációkhoz.</li>
+<li>A példakonfigurációnak a nyomtató "stock" konfigurációjára kell vonatkoznia. (Túl sok "testreszabott" konfiguráció van ahhoz, hogy a Klipper fő tárolójában nyomon lehessen követni.) Hasonlóképpen, csak olyan nyomtatók, készletek és kártyák példakonfigurációs fájljait adjuk hozzá, amelyek népszerűek (pl. legalább 100 darabnak kell lennie belőlük aktív használatban). Fontold meg a <a href="https://community.klipper3d.org">Klipper Community Discourse szerver</a> használatát más konfigurációkhoz.</li>
<li>Only specify those devices present on the given printer or board. Do not specify settings specific to your particular setup.<ol>
<li>For <code>generic</code> config files, only those devices on the mainboard should be described. For example, it would not make sense to add a display config section to a "generic" config as there is no way to know if the board will be attached to that type of display. If the board has a specific hardware port to facilitate an optional peripheral (eg, a bltouch port) then one can add a "commented out" config section for the given device.</li>
<li>Ne add meg a <code>pressure_advance</code> értéket egy példakonfigurációban, mivel ez az érték a szálra, nem pedig a nyomtató hardverére jellemző. Hasonlóképpen ne adj meg <code>max_extrude_only_velocity</code> és <code>max_extrude_only_accel</code> beállításokat.</li>
@@ -1317,7 +1317,7 @@
<li>Extruder <code>rotation_distance</code> hozzáadásakor célszerű megadni a <code>gear_ratio</code> értéket, ha az extruder fogaskerékkel rendelkezik. A példakonfigurációkban szereplő rotation_distance értéktől azt várjuk, hogy korreláljon az extruderben lévő fogaskerék kerületével. Ez általában 20 és 35 mm közötti tartományban van. A <code>gear_ratio</code> megadásakor előnyösebb a mechanizmuson lévő tényleges fogaskerekek fogszámának megadása (pl. inkább <code>gear_ratio: 80:20</code>, mint <code>gear_ratio: 4:1</code>). További információkért lásd a <a href="Rotation_Distance.html#using-a-gear_ratio">forgatási távolság dokumentumot</a>.</li>
<li>Kerülje az alapértelmezett értékre beállított mezőértékek meghatározását. Például nem szabad megadni <code>min_extrude_temp: 170</code>, mivel ez már az alapértelmezett érték.</li>
<li>Ahol lehetséges, a sorok száma nem haladhatja meg a 80 oszlopot.</li>
-<li>Kerülje el az attribúciós vagy revíziós üzenetek hozzáadását a konfigurációs fájlokhoz. (Például kerülje az olyan sorok hozzáadását, mint a "this file was created by ..."). Helyezze el az attribúciót és a változtatási előzményeket a git commit üzenetben.</li>
+<li>Kerülje el az attribúciós vagy revíziós üzenetek hozzáadását a konfigurációs fájlokhoz. (Például kerülje az olyan sorok hozzáadását, mint a "this file was created by ..."). Helyezd el az attribúciót és a változtatási előzményeket a git commit üzenetben.</li>
</ol>
</li>
<li>Ne használj semmilyen elavult funkciót a példakonfigurációs fájlban.</li>
diff --git a/hu/Exclude_Object.html b/hu/Exclude_Object.html
index 87e45c6e3..bf3a7b2c9 100644
--- a/hu/Exclude_Object.html
+++ b/hu/Exclude_Object.html
@@ -1343,7 +1343,7 @@
<p>The <code>[exclude_object]</code> module allows Klipper to exclude objects while a print is in progress. To enable this feature include an <a href="Config_Reference.html#exclude_object">exclude_object config
section</a> (also see the <a href="G-Codes.html#exclude-object">command
reference</a> and <a href="https://github.com/Klipper3d/klipper/blob/master/config/sample-macros.cfg">sample-macros.cfg</a> file for a Marlin/RepRapFirmware compatible M486 G-Code macro.)</p>
-<p>Más 3D nyomtatók firmware opcióitól eltérően a Klippert futtató nyomtató komponenscsomagot használ, és a felhasználók számos lehetőség közül választhatnak. Ezért az egységes felhasználói élmény biztosítása érdekében az <code>[exclude_object]</code> modul egyfajta szerződést vagy API-t hoz létre. A szerződés tartalmazza a gcode fájl tartalmát, a modul belső állapotának vezérlését, és azt, hogy ez az állapot hogyan kerül a kliensek rendelkezésre bocsátásra.</p>
+<p>Más 3D nyomtatók firmware opcióitól eltérően a Klippert futtató nyomtató komponenscsomagot használ, és a felhasználók számos lehetőség közül választhatnak. Ezért az egységes felhasználói élmény biztosítása érdekében az <code>[exclude_object]</code> modul egyfajta szerződést vagy API-t hoz létre. A szerződés tartalmazza a G-kód fájl tartalmát, a modul belső állapotának vezérlését és azt, hogy ez az állapot hogyan kerül a kliensek rendelkezésre bocsátásra.</p>
<h2 id="munkafolyamat-attekintese">Munkafolyamat áttekintése<a class="headerlink" href="#munkafolyamat-attekintese" title="Permanent link">&para;</a></h2>
<p>Egy tipikus munkafolyamat egy fájl nyomtatásához így nézhet ki:</p>
<ol>
diff --git a/hu/FAQ.html b/hu/FAQ.html
index d775b4a71..81516dae1 100644
--- a/hu/FAQ.html
+++ b/hu/FAQ.html
@@ -1645,11 +1645,11 @@ baud: 250000
<p>A Klipper mikrovezérlő átviteli sebessége nem függ a mikrovezérlő bootloader átviteli sebességétől. A <a href="Bootloaders.html">bootloader dokumentum</a> további információkat tartalmaz a bootloaderekkel kapcsolatban.</p>
<h2 id="futtathatom-a-klippert-a-raspberry-pi-3-on-kivul-mason-is">Futtathatom a Klippert a Raspberry Pi 3-on kívül máson is?<a class="headerlink" href="#futtathatom-a-klippert-a-raspberry-pi-3-on-kivul-mason-is" title="Permanent link">&para;</a></h2>
<p>Az ajánlott hardver egy Raspberry Pi 2, Raspberry Pi 3 vagy Raspberry Pi 4.</p>
-<p>A Klipper fut a Raspberry Pi 1-en és a Raspberry Pi Zero-n, de ezek a lapok nem tartalmaznak elegendő feldolgozási teljesítményt az OctoPrint jó futtatásához. Gyakori, hogy ezeken a lassabb gépeken a nyomtatás akadozik, amikor közvetlenül az OctoPrintből nyomtat. (Előfordulhat, hogy a nyomtató gyorsabban mozog, mint ahogy az OctoPrint a mozgásparancsokat el tudja küldeni.) Ha mindenképpen ezek közül a lassabb lapok közül valamelyiken szeretne futni, fontolja meg a "virtual_sdcard" funkció használatát nyomtatáskor (a részletekért lásd a <a href="Config_Reference.html#virtual_sdcard">konfigurációs hivatkozást</a>).</p>
+<p>A Klipper fut a Raspberry Pi 1-en és a Raspberry Pi Zero-n, de ezek a lapok nem tartalmaznak elegendő feldolgozási teljesítményt az OctoPrint jó futtatásához. Gyakori, hogy ezeken a lassabb gépeken a nyomtatás akadozik, amikor közvetlenül az OctoPrintből nyomtat. (Előfordulhat, hogy a nyomtató gyorsabban mozog, mint ahogy az OctoPrint a mozgásparancsokat el tudja küldeni.) Ha mindenképpen ezek közül a lassabb lapok közül valamelyiket szeretnéd használni, fontold meg a "virtual_sdcard" funkció használatát nyomtatáskor (a részletekért lásd a <a href="Config_Reference.html#virtual_sdcard">konfigurációs hivatkozást</a>).</p>
<p>A Beaglebone-on való futtatáshoz lásd a <a href="Beaglebone.html">Beaglebone-specifikus telepítési utasításokat</a>.</p>
-<p>A Klipper más gépeken is futott. A Klipper gazdagép szoftverhez csak Python szükséges, amely Linux (vagy hasonló) számítógépen fut. Ha azonban más gépen szeretné futtatni, akkor Linux adminisztrátori ismeretekre lesz szüksége az adott gép rendszerkövetelményeinek telepítéséhez. A szükséges Linux-adminisztrátori lépésekről további információt az <a href="https://github.com/Klipper3d/klipper/blob/master/scripts/install-octopi.sh">install-octopi.sh</a> szkriptben talál.</p>
-<p>Ha a Klipper gazdagép szoftvert egy low-end chipen szeretné futtatni, akkor vedd figyelembe, hogy legalább egy "dupla pontosságú lebegőpontos" hardverrel rendelkező gépre van szükség.</p>
-<p>Ha a Klipper gazdagép szoftvert egy megosztott általános célú asztali vagy szerver osztályú gépen szeretné futtatni, akkor vedd figyelembe, hogy a Klippernek vannak bizonyos valós idejű ütemezési követelményei. Ha a nyomtatás során a gazdaszámítógép egyidejűleg intenzív általános célú számítási feladatot is végez (például merevlemez defragmentálása, 3D renderelés, nagymértékű swapolás stb.), akkor a Klipper nyomtatási hibákat jelenthet.</p>
+<p>A Klipper más gépeken is futott. A Klipper gazdagép szoftverhez csak Python szükséges, amely Linux (vagy hasonló) számítógépen fut. Ha azonban más gépen szeretnéd futtatni, akkor Linux adminisztrátori ismeretekre lesz szüksége az adott gép rendszerkövetelményeinek telepítéséhez. A szükséges Linux-adminisztrátori lépésekről további információt az <a href="https://github.com/Klipper3d/klipper/blob/master/scripts/install-octopi.sh">install-octopi.sh</a> szkriptben talál.</p>
+<p>Ha a Klipper gazdagép szoftvert egy low-end chipen szeretnéd futtatni, akkor vedd figyelembe, hogy legalább egy "dupla pontosságú lebegőpontos" hardverrel rendelkező gépre van szükség.</p>
+<p>Ha a Klipper gazdagép szoftvert egy megosztott általános célú asztali vagy szerver osztályú gépen szeretnéd futtatni, akkor vedd figyelembe, hogy a Klippernek vannak bizonyos valós idejű ütemezési követelményei. Ha a nyomtatás során a gazdaszámítógép egyidejűleg intenzív általános célú számítási feladatot is végez (például merevlemez defragmentálása, 3D renderelés, nagymértékű swapolás stb.), akkor a Klipper nyomtatási hibákat jelenthet.</p>
<p>Megjegyzés: Ha nem OctoPi-képet használsz, vedd figyelembe, hogy számos Linux-disztribúció engedélyez egy "ModemManager" (vagy hasonló) csomagot, amely megzavarhatja a soros kommunikációt. (Ami miatt a Klipper véletlenszerűnek tűnő "Elveszett a kommunikáció az MCU-val" hibákat jelenthet.) Ha a Klippert ilyen disztribúcióra telepíti, akkor lehet, hogy le kell tiltania ezt a csomagot.</p>
<h2 id="futtathatom-a-klipper-tobb-peldanyat-ugyanazon-a-gepen">Futtathatom a Klipper több példányát ugyanazon a gépen?<a class="headerlink" href="#futtathatom-a-klipper-tobb-peldanyat-ugyanazon-a-gepen" title="Permanent link">&para;</a></h2>
<p>Lehetséges a Klipper gazdagép szoftver több példányának futtatása, de ehhez Linux adminisztrátori ismeretekre van szükség. A Klipper telepítési szkriptek végül a következő Unix parancs futtatását eredményezik:</p>
@@ -1666,9 +1666,9 @@ baud: 250000
<p>A Klipper létrehoz egy "virtuális soros portot" a "/tmp/printer" fájlon keresztül, és ezen keresztül emulál egy klasszikus 3D nyomtató soros interfészt. Általánosságban elmondható, hogy alternatív szoftverek is működhetnek a Klipperrel, amennyiben konfigurálhatóak úgy, hogy a "/tmp/printer" -t használják a nyomtató soros portjaként.</p>
<h2 id="miert-nem-tudom-mozgatni-a-leptetomotort-a-nyomtato-kezdopont-felvetele-elott">Miért nem tudom mozgatni a léptetőmotort a nyomtató kezdőpont felvétele előtt?<a class="headerlink" href="#miert-nem-tudom-mozgatni-a-leptetomotort-a-nyomtato-kezdopont-felvetele-elott" title="Permanent link">&para;</a></h2>
<p>A kód ezt azért teszi, hogy csökkentse annak esélyét, hogy a fejet véletlenül a tárgyasztalba vagy a falba ütköztesse. Miután a nyomtató kezdőponthoz ért, a szoftver megpróbálja ellenőrizni, hogy minden egyes mozgás a konfigurációs fájlban meghatározott position_min/max értéken belül van-e. Ha a motorok ki vannak kapcsolva (M84 vagy M18 parancs segítségével), akkor a motorokat a mozgás előtt újra be kell állítani.</p>
-<p>Ha a fejet az OctoPrint segítségével történő nyomtatás törlése után szeretné elmozdítani, fontolja meg az OctoPrint törlési sorrendjének módosítását, hogy ezt megtegye Ön helyett. Ez az OctoPrintben a webböngészőn keresztül konfigurálható a következő menüpont alatt: Beállítások-&gt;GCODE szkriptek</p>
-<p>Ha a nyomtatás befejezése után szeretné mozgatni a fejet, fontolja meg a kívánt mozgás hozzáadását a szeletelő "custom g-code" szakaszához.</p>
-<p>Ha a nyomtatónak szüksége van további mozgatásra a kezdőpont felvételi folyamat részeként (vagy alapvetően nincs kezdőpont felvételi folyamat), akkor fontolja meg a safe_z_home vagy homing_override szakasz használatát a konfigurációs fájlban. Ha diagnosztikai vagy hibakeresési célokra kell mozgatni egy léptetőmotort, akkor fontolja meg egy force_move szakasz hozzáadását a konfigurációs fájlhoz. Lásd a <a href="Config_Reference.html#testreszabott-kezdopont-felvetel">konfigurációs hivatkozást</a> az ezen opciókkal kapcsolatos további részletekért.</p>
+<p>Ha a fejet az OctoPrint segítségével történő nyomtatás törlése után szeretnéd elmozdítani, fontold meg az OctoPrint törlési sorrendjének módosítását, hogy ezt megtegye helyetted. Ez az OctoPrintben a webböngészőn keresztül konfigurálható a következő menüpont alatt: Beállítások-&gt;GCODE szkriptek</p>
+<p>Ha a nyomtatás befejezése után szeretnéd mozgatni a fejet, fontold meg a kívánt mozgás hozzáadását a szeletelő "custom g-code" szakaszához.</p>
+<p>Ha a nyomtatónak szüksége van további mozgatásra a kezdőpont felvételi folyamat részeként (vagy alapvetően nincs kezdőpont felvételi folyamat), akkor fontold meg a safe_z_home vagy homing_override szakasz használatát a konfigurációs fájlban. Ha diagnosztikai vagy hibakeresési célokra kell mozgatni egy léptetőmotort, akkor fontold meg egy force_move szakasz hozzáadását a konfigurációs fájlhoz. Lásd a <a href="Config_Reference.html#testreszabott-kezdopont-felvetel">konfigurációs hivatkozást</a> az ezen opciókkal kapcsolatos további részletekért.</p>
<h2 id="miert-van-a-z-position_endstop-05-re-allitva-az-alapertelmezett-konfiguracioban">Miért van a Z position_endstop 0,5-re állítva az alapértelmezett konfigurációban?<a class="headerlink" href="#miert-van-a-z-position_endstop-05-re-allitva-az-alapertelmezett-konfiguracioban" title="Permanent link">&para;</a></h2>
<p>A cartesian stílusú nyomtatók esetében a Z position_endstop megadja, hogy a fúvóka milyen messze van a tárgyasztaltól, amikor a végállás működésbe lép. Ha lehetséges, ajánlott Z-max végállást használni, és a tárgyasztaltól távolabb elhelyezni (mivel ez csökkenti a tárgyasztal ütközés lehetőségét). Ha azonban a tárgyasztal felé kell elindulni, akkor a végállást úgy kell beállítani, hogy akkor lépjen működésbe, amikor a fúvóka még mindig kis távolságra van a tárgyasztaltól. Így a tengely homingolásakor a fúvóka még azelőtt megáll, hogy a fúvóka hozzáérne a tárgyasztalhoz. További információért lásd a <a href="Bed_Level.html">tárgyasztal szintezés dokumentumot</a>.</p>
<h2 id="atkonvertaltam-a-konfiguraciomat-marlinbol-es-az-xy-tengelyek-jol-mukodnek-de-a-z-tengely-kezdopont-felvetelekor-csak-egy-csikorgo-zajt-hallok">Átkonvertáltam a konfigurációmat Marlinból, és az X/Y tengelyek jól működnek, de a Z tengely kezdőpont felvételekor csak egy csikorgó zajt hallok<a class="headerlink" href="#atkonvertaltam-a-konfiguraciomat-marlinbol-es-az-xy-tengelyek-jol-mukodnek-de-a-z-tengely-kezdopont-felvetelekor-csak-egy-csikorgo-zajt-hallok" title="Permanent link">&para;</a></h2>
diff --git a/hu/Features.html b/hu/Features.html
index 16d310df7..fd51632e0 100644
--- a/hu/Features.html
+++ b/hu/Features.html
@@ -1302,7 +1302,7 @@
<ul>
<li>Nagy pontosságú léptető mozgás. A Klipper egy alkalmazásprocesszort (például egy olcsó Raspberry Pi-t) használ a nyomtató mozgásának kiszámításához. Az alkalmazásprocesszor határozza meg, hogy mikor lépjenek az egyes léptetőmotorok, tömöríti ezeket az eseményeket, továbbítja őket a mikrokontrollerhez, majd a mikrokontroller végrehajtja az eseményeket a kért időpontban. Minden egyes léptetőmozgást 25 mikroszekundumos vagy annál jobb pontossággal ütemezünk. A szoftver nem használ kinematikai becsléseket (mint például a Bresenham-algoritmus). Ehelyett a gyorsulás fizikája és a gép kinematikájának fizikája alapján számítja ki a pontos lépésidőket. A pontosabb léptetőmozgás a nyomtató csendesebb és stabilabb működését eredményezi.</li>
<li>Kategóriájában legjobb teljesítmény. A Klipper képes magas léptetési sebességet elérni mind az új, mind a régi mikrokontrollereken. Még a régi 8 bites mikrovezérlők is képesek 175 000 lépés/másodperc feletti sebességet elérni. Az újabb mikrokontrollereken másodpercenként több millió lépés is lehetséges. A nagyobb léptetési sebesség nagyobb nyomtatási sebességet tesz lehetővé. A léptetések időzítése még nagy sebességnél is pontos marad, ami javítja az általános stabilitást.</li>
-<li>A Klipper támogatja a több mikrovezérlővel rendelkező nyomtatókat. Például egy mikrokontroller használható az extruder vezérlésére, míg egy másik a nyomtató fűtőberendezését, míg egy harmadik a nyomtató többi részét vezérli. A Klipper gazdaszoftver órajel-szinkronizációt valósít meg a mikrovezérlők közötti órajel-eltolódás figyelembevétele érdekében. A több mikrovezérlő engedélyezéséhez nincs szükség külön kódra - csak néhány extra sorra a konfigurációs fájlban.</li>
+<li>A Klipper támogatja a több mikrovezérlővel rendelkező nyomtatókat. Például egy mikrokontroller használható az extruder vezérlésére, míg egy másik a nyomtató fűtőberendezését, míg egy harmadik a nyomtató többi részét vezérli. A Klipper gazdaszoftver órajel-szinkronizációt valósít meg a mikrovezérlők közötti órajel-eltolódás figyelembevétele érdekében. A több mikrovezérlő engedélyezéséhez nincs szükség külön kódra, csak néhány extra sorra a konfigurációs fájlban.</li>
<li>Konfiguráció egyszerű konfigurációs fájlon keresztül. Nincs szükség a mikrokontroller újrafrissítésére a beállítások megváltoztatásához. Az összes Klipper konfiguráció egy szabványos konfigurációs fájlban van tárolva, amely könnyen szerkeszthető. Ez megkönnyíti a hardver beállítását és karbantartását.</li>
<li>A Klipper támogatja a "Smooth Pressure Advance" - egy olyan mechanizmust, amely figyelembe veszi a nyomást az extruderben. Ez csökkenti az extruder "szivárgását" és javítja a nyomtatási sarkok minőségét. A Klipper beavatkozása nem vezet be pillanatnyi extruder sebességváltozást, ami javítja az általános stabilitást és robusztusságot.</li>
<li>A Klipper támogatja az "Input Shaping" funkciót a rezgések nyomtatási minőségre gyakorolt hatásának csökkentése érdekében. Ez csökkentheti vagy kiküszöbölheti a "gyűrődést" (más néven "szellemkép", "visszhang" vagy "hullámzás") a nyomatokon. Lehetővé teheti a gyorsabb nyomtatási sebesség elérését is, miközben a nyomtatás minősége továbbra is magas marad.</li>
diff --git a/hu/G-Codes.html b/hu/G-Codes.html
index 3a53e4b73..2d29d610e 100644
--- a/hu/G-Codes.html
+++ b/hu/G-Codes.html
@@ -4363,7 +4363,7 @@
<li>Move (G0 or G1): <code>G1 [X&lt;pos&gt;] [Y&lt;pos&gt;] [Z&lt;pos&gt;] [E&lt;pos&gt;] [F&lt;speed&gt;]</code></li>
<li>Tartózkodás: <code>G4 P&lt;milliszekundum&gt;</code></li>
<li>Ugrás a forrásra: <code>G28 [X] [Y] [Z]</code></li>
-<li>Kapcsolja ki a motorokat: <code>M18</code> vagy <code>M84</code></li>
+<li>Kapcsold ki a motorokat: <code>M18</code> vagy <code>M84</code></li>
<li>Várja meg, amíg az aktuális mozdulat befejeződik: <code>M400</code></li>
<li>Használj abszolút/relatív távolságokat az extrudáláshoz: <code>M82</code>, <code>M83</code></li>
<li>Abszolút/relatív koordináták használata: <code>G90</code>, <code>G91</code></li>
@@ -4579,9 +4579,9 @@
<h4 id="reset_filament_width_sensor">RESET_FILAMENT_WIDTH_SENSOR<a class="headerlink" href="#reset_filament_width_sensor" title="Permanent link">&para;</a></h4>
<p><code>RESET_FILAMENT_WIDTH_SENSOR</code>: Törli az összes érzékelő leolvasását. Hasznos nyomtatószál csere után.</p>
<h4 id="disable_filament_width_sensor">DISABLE_FILAMENT_WIDTH_SENSOR<a class="headerlink" href="#disable_filament_width_sensor" title="Permanent link">&para;</a></h4>
-<p><code>DISABLE_FILAMENT_WIDTH_SENSOR</code>: Kapcsolja ki a szálszélesség érzékelőt, és ne használd áramlásszabályozáshoz.</p>
+<p><code>DISABLE_FILAMENT_WIDTH_SENSOR</code>: Kapcsold ki a szálszélesség érzékelőt, és ne használd áramlásszabályozáshoz.</p>
<h4 id="enable_filament_width_sensor">ENABLE_FILAMENT_WIDTH_SENSOR<a class="headerlink" href="#enable_filament_width_sensor" title="Permanent link">&para;</a></h4>
-<p><code>ENABLE_FILAMENT_WIDTH_SENSOR</code>: Kapcsolja be a szálszélesség érzékelőt, és kezd el használni az áramlásszabályozáshoz.</p>
+<p><code>ENABLE_FILAMENT_WIDTH_SENSOR</code>: Kapcsold be a szálszélesség érzékelőt, és kezd el használni az áramlásszabályozáshoz.</p>
<h4 id="query_raw_filament_width">QUERY_RAW_FILAMENT_WIDTH<a class="headerlink" href="#query_raw_filament_width" title="Permanent link">&para;</a></h4>
<p><code>QUERY_RAW_FILAMENT_WIDTH</code>: Visszaadja az ADC-csatorna aktuális leolvasását és a RAW-érzékelő értékét a kalibrációs pontokhoz.</p>
<h4 id="enable_filament_width_log">ENABLE_FILAMENT_WIDTH_LOG<a class="headerlink" href="#enable_filament_width_log" title="Permanent link">&para;</a></h4>
@@ -4591,9 +4591,9 @@
<h3 id="heaters">[heaters]<a class="headerlink" href="#heaters" title="Permanent link">&para;</a></h3>
<p>A fűtőmodul automatikusan betöltődik, ha a konfigurációs fájlban van fűtőelem definiálva.</p>
<h4 id="turn_off_heaters">TURN_OFF_HEATERS<a class="headerlink" href="#turn_off_heaters" title="Permanent link">&para;</a></h4>
-<p><code>TURN_OFF_HEATERS</code>: Kapcsolja ki az összes fűtőberendezést.</p>
+<p><code>TURN_OFF_HEATERS</code>: Kapcsold ki az összes fűtőberendezést.</p>
<h4 id="temperature_wait">TEMPERATURE_WAIT<a class="headerlink" href="#temperature_wait" title="Permanent link">&para;</a></h4>
-<p><code>TEMPERATURE_WAIT SENSOR=&lt;config_name&gt; [MINIMUM=&lt;target&gt;] [MAXIMUM=&lt;target&gt;]</code>: Várjon, amíg az adott hőmérséklet-érzékelő a megadott MINIMUM értéken vagy a megadott MINIMUM érték felett és/vagy a megadott MAXIMUM értéken vagy az alatt van.</p>
+<p><code>TEMPERATURE_WAIT SENSOR=&lt;config_name&gt; [MINIMUM=&lt;target&gt;] [MAXIMUM=&lt;target&gt;]</code>: Várj, amíg az adott hőmérséklet-érzékelő a megadott MINIMUM értéken vagy a megadott MINIMUM érték felett és/vagy a megadott MAXIMUM értéken vagy az alatt van.</p>
<h4 id="set_heater_temperature">SET_HEATER_TEMPERATURE<a class="headerlink" href="#set_heater_temperature" title="Permanent link">&para;</a></h4>
<p><code>SET_HEATER_TEMPERATURE HEATER=&lt;heater_name&gt; [TARGET=&lt;target_temperature&gt;]</code>: A fűtőtest célhőmérsékletének beállítása. Ha nincs megadva célhőmérséklet, akkor az érték 0.</p>
<h3 id="idle_timeout">[idle_timeout]<a class="headerlink" href="#idle_timeout" title="Permanent link">&para;</a></h3>
diff --git a/hu/Hall_Filament_Width_Sensor.html b/hu/Hall_Filament_Width_Sensor.html
index bcb1d5027..6feb66209 100644
--- a/hu/Hall_Filament_Width_Sensor.html
+++ b/hu/Hall_Filament_Width_Sensor.html
@@ -1364,8 +1364,8 @@ index: 1
<h2 id="kalibralasi-eljaras">Kalibrálási eljárás<a class="headerlink" href="#kalibralasi-eljaras" title="Permanent link">&para;</a></h2>
<p>Az érzékelő nyers értékének meghatározásához használhatod a menüelemet vagy a <strong>QUERY_RAW_FILAMENT_WIDTH</strong> parancsot a terminálban.</p>
<ol>
-<li>Helyezze be az első kalibráló rudat (1,5 mm-es méret), hogy megkapja az első nyers szenzorértéket</li>
-<li>Helyezze be a második kalibráló rudat (2,0 mm-es méret), hogy megkapja a második nyers szenzorértékét</li>
+<li>Helyezd be az első kalibráló rudat (1,5 mm-es méret), hogy megkapja az első nyers szenzorértéket</li>
+<li>Helyezd be a második kalibráló rudat (2,0 mm-es méret), hogy megkapja a második nyers szenzorértékét</li>
<li>Mentsd a nyers szenzorértékeket a <code>Raw_dia1</code> és a <code>Raw_dia2</code> konfigurációs paraméterekbe</li>
</ol>
<h2 id="az-erzekelo-engedelyezese">Az érzékelő engedélyezése<a class="headerlink" href="#az-erzekelo-engedelyezese" title="Permanent link">&para;</a></h2>
diff --git a/hu/Installation.html b/hu/Installation.html
index 133b6eff1..74dc3aae8 100644
--- a/hu/Installation.html
+++ b/hu/Installation.html
@@ -1350,7 +1350,7 @@
<p>Lehetőség van új nyomtatókonfiguráció nulláról történő meghatározására is. Ehhez azonban jelentős műszaki ismeretekre van szükség a nyomtatóval és annak elektronikájával kapcsolatban. A legtöbb felhasználónak ajánlott, hogy egy megfelelő konfigurációs fájllal kezd. Ha új, egyéni nyomtató konfigurációs fájlt hoz létre, akkor a legközelebbi példával <a href="https://github.com/Klipper3d/klipper/blob/master/config/">config fájl</a> kezd, és további információkért használd a Klipper <a href="Config_Reference.html">konfigurációs hivatkozás</a> című dokumentumot.</p>
<h2 id="os-kepfajl-elokeszitese">OS képfájl előkészítése<a class="headerlink" href="#os-kepfajl-elokeszitese" title="Permanent link">&para;</a></h2>
<p>Kezd az <a href="https://github.com/guysoft/OctoPi">OctoPi</a> telepítésével a Raspberry Pi számítógépére. Használd az OctoPi v0.17.0-s vagy újabb verzióját. A kiadásokkal kapcsolatos információkért tekintsd meg az <a href="https://github.com/guysoft/OctoPi/releases">OctoPi-kiadásokat</a>. Ellenőrizni kell, hogy az OctoPi elindul-e, és hogy az OctoPrint webszerver működik-e. Miután csatlakozott az OctoPrint weboldalhoz, kövesse az utasításokat az OctoPrint 1.4.2-es vagy újabb verziójára való frissítéséhez.</p>
-<p>Az OctoPi telepítése és az OctoPrint frissítése után néhány rendszerparancs futtatásához szükség lesz az "SSH" kapcsolatra a célgéphez. Ha Linux vagy MacOS asztali számítógépet használ, akkor az "SSH" szoftvernek már telepítve kell lennie a gépen. Vannak ingyenes ssh-kliensek más asztali számítógépekhez (pl. <a href="https://www.chiark.greenend.org.uk/~sgtatham/putty/">PuTTY</a>). Az SSH segédprogrammal csatlakozzon a Raspberry Pi-hez (ssh pi@octopi -- a jelszó "raspberry"), és futtassa a következő parancsokat:</p>
+<p>Az OctoPi telepítése és az OctoPrint frissítése után néhány rendszerparancs futtatásához szükség lesz az "SSH" kapcsolatra a célgéphez. Ha Linux vagy MacOS asztali számítógépet használsz, akkor az "SSH" szoftvernek már telepítve kell lennie a gépen. Vannak ingyenes ssh-kliensek más asztali számítógépekhez (pl. <a href="https://www.chiark.greenend.org.uk/~sgtatham/putty/">PuTTY</a>). Az SSH segédprogrammal csatlakozz a Raspberry Pi-hez (ssh pi@octopi -- a jelszó "raspberry"), és futtasd a következő parancsokat:</p>
<div class="highlight"><pre><span></span><code>git clone https://github.com/Klipper3d/klipper
./klipper/scripts/install-octopi.sh
</code></pre></div>
diff --git a/hu/Manual_Level.html b/hu/Manual_Level.html
index a2d4b75b6..5cf9756cf 100644
--- a/hu/Manual_Level.html
+++ b/hu/Manual_Level.html
@@ -1346,7 +1346,7 @@
<h2 id="z-vegallas-kalibralasa">Z végállás kalibrálása<a class="headerlink" href="#z-vegallas-kalibralasa" title="Permanent link">&para;</a></h2>
<p>A pontos Z végállás pozíciója kritikus fontosságú a jó minőségű nyomatok elkészítéséhez.</p>
<p>Vedd figyelembe azonban, hogy maga a Z végálláskapcsoló pontossága korlátozó tényező lehet. Ha Trinamic léptetőmotor-meghajtókat használunk, akkor fontoljuk meg a <a href="Endstop_Phase.html">végstop fázis</a> érzékelés engedélyezését a kapcsoló pontosságának javítása érdekében.</p>
-<p>A Z végpont kalibrálásának végrehajtásához kapcsolja be a nyomtatót, utasítsa a fejet, hogy mozogjon egy Z pozícióba, amely legalább öt milliméterrel a tárgyasztal felett van (ha még nincs), utasítsa a fejet, hogy mozogjon egy X-Y pozícióba, közel a nyomtató közepéhez a tárgyasztalra, majd navigálj az OctoPrint terminál fülre, és futtassa:</p>
+<p>A Z végpont kalibrálásának végrehajtásához kapcsold be a nyomtatót, utasítsa a fejet, hogy mozogjon egy Z pozícióba, amely legalább öt milliméterrel a tárgyasztal felett van (ha még nincs), utasítsa a fejet, hogy mozogjon egy X-Y pozícióba, közel a nyomtató közepéhez a tárgyasztalra, majd navigálj az OctoPrint terminál fülre, és futtassa:</p>
<div class="highlight"><pre><span></span><code>Z_ENDSTOP_CALIBRATE
</code></pre></div>
diff --git a/hu/Measuring_Resonances.html b/hu/Measuring_Resonances.html
index 273974b05..f15c70484 100644
--- a/hu/Measuring_Resonances.html
+++ b/hu/Measuring_Resonances.html
@@ -1510,7 +1510,7 @@
<p>Az ADXL345 beszerzésekor vedd figyelembe, hogy számos különböző NYÁK lapkakialakítás és különböző klónok léteznek. Győződj meg róla, hogy a kártya támogatja az SPI módot (kis számú kártya úgy tűnik, hogy szorosan konfigurálva van az I2C-re az SDO GND-re húzásával), és ha 5V-os nyomtató MCU-hoz csatlakozik ellenőrizd,hogy rendelkezik feszültségszabályozóval és szintválasztóval.</p>
<h2 id="telepitesi-utasitasok">Telepítési utasítások<a class="headerlink" href="#telepitesi-utasitasok" title="Permanent link">&para;</a></h2>
<h3 id="vezetekek">Vezetékek<a class="headerlink" href="#vezetekek" title="Permanent link">&para;</a></h3>
-<p>Az ADXL345-öt SPI-n keresztül kell csatlakoztatnia a Raspberry Pi-hez. Vedd figyelembe, hogy az ADXL345 dokumentációja által javasolt I2C kapcsolatnak túl alacsony az adatforgalmi képessége, és <strong>nem fog működni</strong>. Az ajánlott kapcsolási séma:</p>
+<p>Az ADXL345-öt SPI-n keresztül kell csatlakoztatnod a Raspberry Pi-hez. Vedd figyelembe, hogy az ADXL345 dokumentációja által javasolt I2C kapcsolatnak túl alacsony az adatforgalmi képessége, és <strong>nem fog működni</strong>. Az ajánlott kapcsolási séma:</p>
<table>
<thead>
<tr>
@@ -1735,7 +1735,7 @@ Az ajánlott alakító 2hump_ei @ 45,2 Hz.
</code></pre></div>
<p>Vedd figyelembe, hogy a bejelentett <code>simítás</code> értékek absztrakt vetített értékek. Ezek az értékek különböző konfigurációk összehasonlítására használhatók: minél magasabb az érték, annál nagyobb simítást hoz létre a formázó. Ezek a simítási értékek azonban nem jelentik a simítás valódi mértékét, mivel a tényleges simítás a <a href="#a-max_accel-kivalasztasa"><code>max_accel</code></a> és <code>square_corner_velocity</code> paraméterektől függ. Ezért érdemes néhány tesztnyomatot nyomtatni, hogy lássuk, pontosan mekkora simítást hoz létre a kiválasztott konfiguráció.</p>
-<p>A fenti példában a javasolt alakító paraméterek nem rosszak, de mi van akkor, ha az X tengelyen kevesebb simítást szeretne elérni? Megpróbálhatod korlátozni a maximális alakító simítást a következő paranccsal:</p>
+<p>A fenti példában a javasolt alakító paraméterek nem rosszak, de mi van akkor, ha az X tengelyen kevesebb simítást szeretnél elérni? Megpróbálhatod korlátozni a maximális alakító simítást a következő paranccsal:</p>
<div class="highlight"><pre><span></span><code>~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png --max_smoothing=0.2
</code></pre></div>
@@ -1813,7 +1813,7 @@ Ajánlott shaper_type_y = mzv, shaper_freq_y = 36,8 Hz
</code></pre></div>
<p>Ha egyetért a javasolt paraméterekkel, akkor a <code>SAVE_CONFIG</code> parancsot most végre lehet hajtani a paraméterek mentéséhez és a Klipper újraindításához. Vedd figyelembe, hogy ez nem frissíti a <code>max_accel</code> értéket a <code>[printer]</code> szakaszban. Ezt manuálisan kell frissítenie a <a href="#a-max_accel-kivalasztasa">max_accel kiválasztása</a> szakaszban leírtak szerint.</p>
-<p>Ha a nyomtatója Y tengelyén van a tárgyasztal akkor megadhatja, hogy melyik tengelyt kívánja tesztelni, így a tesztek között megváltoztathatja a gyorsulásmérő rögzítési pontját (alapértelmezés szerint a teszt mindkét tengelyen végrehajtásra kerül):</p>
+<p>Ha a nyomtatója Y tengelyén van a tárgyasztal akkor megadhatod, hogy melyik tengelyt kívánod tesztelni, így a tesztek között megváltoztathatja a gyorsulásmérő rögzítési pontját (alapértelmezés szerint a teszt mindkét tengelyen végrehajtásra kerül):</p>
<div class="highlight"><pre><span></span><code>SHAPER_CALIBRATE AXIS=Y
</code></pre></div>
diff --git a/hu/Multi_MCU_Homing.html b/hu/Multi_MCU_Homing.html
index d92c1af75..e663d6227 100644
--- a/hu/Multi_MCU_Homing.html
+++ b/hu/Multi_MCU_Homing.html
@@ -1241,7 +1241,7 @@
<h1 id="tobb-mikrovezelos-kezdopont-es-szondazas">Több mikrovezélős kezdőpont és szondázás<a class="headerlink" href="#tobb-mikrovezelos-kezdopont-es-szondazas" title="Permanent link">&para;</a></h1>
<p>A Klipper támogatja a kezdőpont mechanizmusát egy végállással, amely egy mikrokontrollerhez van csatlakoztatva, míg a léptetőmotorok egy másik mikrokontrollerhez vannak csatlakoztatva. Ezt a támogatást nevezik "multi-mcu homing" -nak. Ez a funkció akkor is használatos, ha a Z-érzékelő más mikrokontrollerre van kötve, mint a Z léptetőmotorok.</p>
-<p>Ez a funkció hasznos lehet a vezetékezés egyszerűsítése érdekében, mivel kényelmesebb lehet egy végálláskapcsolót vagy szondát egy közelebbi mikrokontrollerhez csatlakoztatni. Ennek a funkciónak a használata azonban a léptetőmotorok "túllendülését" eredményezheti a kezdőpont és a mérési műveletek során.</p>
+<p>Ez a funkció hasznos lehet a vezetékezés egyszerűsítése érdekében, mivel kényelmesebb lehet egy végálláskapcsolót vagy szondát egy közelebbi mikrokontrollerhez csatlakoztatni. Ennek a funkciónak a használata azonban a léptetőmotorok "túllendülését" eredményezheti a kezdőpontfelvételi és mérési műveletek során.</p>
<p>A túllendülés a végállást figyelő mikrovezérlő és a léptetőmotorokat mozgató mikrovezérlők közötti esetleges üzenetátviteli késések miatt következik be. A Klipper kódot úgy tervezték, hogy ezt a késleltetést legfeljebb 25 ms-ra korlátozza. (Ha a multi-mcu homing aktiválva van, a mikrovezérlők időszakos állapotüzeneteket küldenek, és ellenőrzik, hogy a megfelelő állapotüzenetek 25 ms-on belül érkeznek-e meg.)</p>
<p>Így például, ha 10 mm/sec sebességgel történik a kezdőpont felvétele, akkor akár 0,250 mm-es túllendülés is lehetséges (10 mm/sec * .025mp == 0,250 mm). A multi-mcu homing konfigurálásakor gondosan kell eljárni, hogy az ilyen típusú túllendülésnél figyelembe vegyük. Lassabb kezdőpont felvétel vagy tapintási sebességek használata csökkentheti a túllendülést.</p>
<p>A léptetőmotor túllendülése nem befolyásolhatja hátrányosan az alaphelyzetbe állítási és tapintási eljárás pontosságát. A Klipper kód észleli a túllendülést, és számításai során figyelembe veszi azt. Fontos azonban, hogy a hardvertervezés képes legyen kezelni a túllendülést anélkül, hogy a gépben kárt okozna.</p>
diff --git a/hu/Overview.html b/hu/Overview.html
index 94077a3c6..2d878fe6e 100644
--- a/hu/Overview.html
+++ b/hu/Overview.html
@@ -1326,7 +1326,7 @@
<h1 id="attekintes">Áttekintés<a class="headerlink" href="#attekintes" title="Permanent link">&para;</a></h1>
-<p>Üdvözöljük a Klipper dokumentációjában. Ha még nem ismered a Klippert, kezd a <a href="Features.html">funkciók</a> és <a href="Installation.html">telepítés</a> dokumentumokkal.</p>
+<p>Üdvözlünk a Klipper dokumentációjában. Ha még nem ismered a Klippert, kezd a <a href="Features.html">funkciók</a> és <a href="Installation.html">telepítés</a> dokumentumokkal.</p>
<h2 id="attekinto-informaciok">Áttekintő információk<a class="headerlink" href="#attekinto-informaciok" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="Features.html">Funkciók</a>: A Klipper funkcióinak magas szintű listája.</li>
diff --git a/hu/Pressure_Advance.html b/hu/Pressure_Advance.html
index 6748028e5..93b66dd44 100644
--- a/hu/Pressure_Advance.html
+++ b/hu/Pressure_Advance.html
@@ -1300,12 +1300,12 @@
<h1 id="nyomas-elotolas">Nyomás előtolás<a class="headerlink" href="#nyomas-elotolas" title="Permanent link">&para;</a></h1>
-<p>Ez a dokumentum a "nyomás előtolás" konfigurációs változó adott fúvókához és nyomtatószálhoz való beállításával kapcsolatos információkat tartalmaz. A nyomás előtolás funkció hasznos lehet a szálazás csökkentésében. A nyomás előtolás megvalósításáról további információkat a <a href="Kinematics.html">kinematika</a> dokumentumban talál.</p>
+<p>Ez a dokumentum a "nyomás előtolás" konfigurációs változó adott fúvókához és nyomtatószálhoz való beállításával kapcsolatos információkat tartalmaz. A nyomás előtolás funkció hasznos lehet a szálazás csökkentésében. A nyomás előtolás megvalósításáról további információkat a <a href="Kinematics.html">kinematika</a> dokumentumban találsz.</p>
<h2 id="nyomas-elotolas-hangolasa">Nyomás előtolás hangolása<a class="headerlink" href="#nyomas-elotolas-hangolasa" title="Permanent link">&para;</a></h2>
-<p>A nyomás előtolás két hasznos dolgot tesz. Csökkenti a nem extrudált mozgások során fellépő szálazás, és csökkenti a kanyarodás során fellépő puffadást. Ez az útmutató a második funkciót (kanyarodás közbeni puffadás csökkentése) használja a hangolás mechanizmusaként.</p>
+<p>A nyomás előtolás két hasznos dolgot tesz. Csökkenti a nem extrudált mozgások során fellépő szálazást, és csökkenti a kanyarodás során fellépő puffadást. Ez az útmutató a második funkciót (kanyarodás közbeni puffadás csökkentése) használja a hangolás mechanizmusaként.</p>
<p>A nyomás előtolás kalibrálásához a nyomtatónak konfiguráltnak és működőképesnek kell lennie, mivel a hangolási teszt egy tesztobjektum nyomtatásával és vizsgálatával jár. A teszt lefuttatása előtt érdemes ezt a dokumentumot teljes egészében elolvasni.</p>
<p>A <a href="prints/square_tower.stl">docs/prints/square_tower.stl</a> fájlban található nagy üreges négyzet G-kódjának létrehozásához használj egy szeletelőt. Használj nagy sebességet (pl. 100 mm/s), nulla kitöltést és durva rétegmagasságot (a rétegmagasságnak a fúvóka átmérőjének 75%-a körül kell lennie). Győződj meg róla, hogy a szeletelőben minden "dinamikus gyorsításvezérlés" ki van kapcsolva.</p>
-<p>Készüljön fel a tesztre a következő G-kód parancs kiadásával:</p>
+<p>Készülj fel a tesztre a következő G-kód parancs kiadásával:</p>
<div class="highlight"><pre><span></span><code>SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500
</code></pre></div>
diff --git a/hu/Probe_Calibrate.html b/hu/Probe_Calibrate.html
index 46430380b..082e57e0c 100644
--- a/hu/Probe_Calibrate.html
+++ b/hu/Probe_Calibrate.html
@@ -1347,11 +1347,11 @@
<p>Ez a dokumentum a Klipperben található "automatikus z szonda" X, Y és Z eltolásának kalibrálási módszerét írja le. Ez azon felhasználók számára hasznos, akiknek van egy <code>[probe]</code> vagy <code>[bltouch]</code> szakasz a konfigurációs fájljukban.</p>
<h2 id="a-szonda-x-es-y-eltolasanak-kalibralasa">A szonda X és Y eltolásának kalibrálása<a class="headerlink" href="#a-szonda-x-es-y-eltolasanak-kalibralasa" title="Permanent link">&para;</a></h2>
<p>Az X és Y eltolás kalibrálásához navigálj az OctoPrint "Control" fülre, állítsd be a nyomtatót, majd az OctoPrint léptető gombjaival mozgasd a fejet a tárgyasztal közepéhez közeli pozícióba.</p>
-<p>Helyezzen egy darab kék festőszalagot (vagy hasonlót) a tárgyasztalra a szonda alá. Navigálj az OctoPrint "Terminal" fülre, és adj ki egy PROBE parancsot:</p>
+<p>Helyezz egy darab kék festőszalagot (vagy hasonlót) a tárgyasztalra a szonda alá. Navigálj az OctoPrint "Terminal" fülre, és adj ki egy PROBE parancsot:</p>
<div class="highlight"><pre><span></span><code>PROBE
</code></pre></div>
-<p>Helyezzen egy jelet a szalagra közvetlenül a szonda alatt (vagy hasonló módszerrel jegyezze fel a helyet a tárgyasztalon).</p>
+<p>Tegyél egy jelet a szalagra közvetlenül a szonda alatt (vagy hasonló módszerrel jelöld fel a helyet a tárgyasztalon).</p>
<p>Adj ki egy <code>GET_POSITION</code> parancsot, és rögzítsd a parancs által jelentett nyomtatófej X-Y pozícióját. Például, ha a következőket látjuk:</p>
<div class="highlight"><pre><span></span><code>Recv: // toolhead: X:46.500000 Y:27.000000 Z:15.000000 E:0.000000
</code></pre></div>
diff --git a/hu/Protocol.html b/hu/Protocol.html
index 6a7786620..d2c471407 100644
--- a/hu/Protocol.html
+++ b/hu/Protocol.html
@@ -1510,7 +1510,7 @@ queue_step oid=7 interval=7458 count=10 add=331
queue_step oid=7 interval=11717 count=4 add=1281
</code></pre></div>
-<p>Az elérhető parancsokról az <a href="MCU_Commands.html">mcu parancsok</a> dokumentumban olvashat bővebben. Tekintsd meg a <a href="Debugging.html">hibakeresés</a> dokumentumot a G-kód fájl megfelelő, ember által olvasható mikrovezérlő parancsaira történő lefordításával kapcsolatban.</p>
+<p>Az elérhető parancsokról az <a href="MCU_Commands.html">mcu parancsok</a> dokumentumban olvashatsz bővebben. Tekintsd meg a <a href="Debugging.html">hibakeresés</a> dokumentumot a G-kód fájl megfelelő, ember által olvasható mikrovezérlő parancsaira történő lefordításával kapcsolatban.</p>
<p>Ez az oldal magának a Klipper üzenetküldő protokollnak a magas szintű leírását tartalmazza. Leírja az üzenetek deklarálását, bináris formátumú kódolását (a séma "tömörítését") és továbbítását.</p>
<p>A protokoll célja, hogy hibamentes kommunikációs csatornát tegyen lehetővé a gazdagép és a mikrovezérlő között, amely alacsony késleltetésű, alacsony sávszélességű és alacsony bonyolultságú a mikrovezérlő számára.</p>
<h2 id="mikrovezerlo-interfesz">Mikrovezérlő interfész<a class="headerlink" href="#mikrovezerlo-interfesz" title="Permanent link">&para;</a></h2>
diff --git a/hu/RPi_microcontroller.html b/hu/RPi_microcontroller.html
index df921f377..709f03167 100644
--- a/hu/RPi_microcontroller.html
+++ b/hu/RPi_microcontroller.html
@@ -1387,9 +1387,9 @@
<p>Ez a dokumentum leírja a Klipper futtatásának folyamatát egy RPi-n, és ugyanazt az RPi-t használja másodlagos MCU-ként.</p>
<h2 id="miert-erdemes-az-rpi-t-masodlagos-mcu-kent-hasznalni">Miért érdemes az RPi-t másodlagos MCU-ként használni?<a class="headerlink" href="#miert-erdemes-az-rpi-t-masodlagos-mcu-kent-hasznalni" title="Permanent link">&para;</a></h2>
<p>A 3D nyomtatók vezérlésére szolgáló MCU-k gyakran korlátozott és előre konfigurált számú szabad kimenettel rendelkeznek a fő nyomtatási funkciók (hőellenállások, extruderek, léptetők stb.) kezelésére. Az RPi használata, ahol a Klipper másodlagos MCU-ként van telepítve, lehetővé teszi a GPIO-k és az RPi kimeneteinek (I2C, SPI) közvetlen használatát a klipperben anélkül, hogy Octoprint bővítményeket (ha van ilyen) vagy külső programokat használva, amelyek lehetővé teszik, hogy mindent vezéreljen a Klipper-en belül a nyomtatási G-kód.</p>
-<p><strong>Figyelmeztetés</strong>: Ha a te platformod egy <em>Beaglebone</em>, és helyesen követted a telepítés lépéseit, a Linux MCU már telepítve és konfigurálva van a rendszeredhez.</p>
+<p><strong>Figyelmeztetés</strong>: Ha a platformod egy <em>Beaglebone</em>, és helyesen követted a telepítés lépéseit, a Linux MCU már telepítve és konfigurálva van a rendszeredhez.</p>
<h2 id="az-rc-szkript-telepitese">Az rc szkript telepítése<a class="headerlink" href="#az-rc-szkript-telepitese" title="Permanent link">&para;</a></h2>
-<p>Ha a gazdagépet másodlagos MCU-ként szeretné használni, a klipper_mcu folyamatnak a klippy folyamat előtt kell futnia.</p>
+<p>Ha a gazdagépet másodlagos MCU-ként szeretnéd használni, a klipper_mcu folyamatnak a klippy folyamat előtt kell futnia.</p>
<p>A Klipper telepítése után telepítse a szkriptet. run:</p>
<div class="highlight"><pre><span></span><code>cd ~/klipper/
sudo cp &quot;./scripts/klipper-mcu-start.sh&quot; /etc/init.d/klipper_mcu
diff --git a/hu/Resonance_Compensation.html b/hu/Resonance_Compensation.html
index 5803ed8ef..5e3834390 100644
--- a/hu/Resonance_Compensation.html
+++ b/hu/Resonance_Compensation.html
@@ -1595,7 +1595,7 @@ shaper_freq_y: ... # a tesztmodell Y jelének frekvenciája
<p>Nyomtasd ki a gyűrődési tesztmodellt az alábbiak szerint:</p>
<ol>
<li>Indítsa újra a firmware-t: <code>RESTART</code></li>
-<li>Készüljön fel a tesztre: <code>SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000</code></li>
+<li>Készülj fel a tesztre: <code>SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000</code></li>
<li>Nyomás előtolás kikapcsolása: <code>SET_PRESSURE_ADVANCE ADVANCE=0</code></li>
<li>Add ki a parancsot: <code>SET_INPUT_SHAPER SHAPER_TYPE=MZV</code></li>
<li>Add ki a parancsot: <code>TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5</code></li>
@@ -1633,7 +1633,7 @@ shaper_type: mzv
<p>Megjegyzendő, hogy a rezonanciafrekvenciák mérésének pontossága a gyűrődési tesztmodell segítségével a legtöbb célra elegendő, így további hangolás nem javasolt. Ha mégis meg akarja próbálni kétszeresen ellenőrizni az eredményeit (például ha még mindig lát némi gyűrődést, miután kinyomtatott egy tesztmodellt egy tetszőleges bemeneti alakítóval, ugyanazokkal a frekvenciákkal, mint amiket korábban mért), akkor kövesse az ebben a szakaszban leírt lépéseket. Vedd figyelembe, hogy ha az [input_shaper] engedélyezése után különböző frekvenciákon lát gyűrődést, ez a szakasz nem fog segíteni.</p>
<p>Feltételezve, hogy felszeletelte a gyűrődési modellt a javasolt paraméterekkel, hajtsd végre a következő lépéseket az X és Y tengelyek mindegyikén:</p>
<ol>
-<li>Készüljön fel a tesztre: <code>SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000</code></li>
+<li>Készülj fel a tesztre: <code>SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000</code></li>
<li>Győződj meg róla, hogy a Pressure Advance ki van kapcsolva: <code>SET_PRESSURE_ADVANCE ADVANCE=0</code></li>
<li>Add ki a parancsot: <code>SET_INPUT_SHAPER SHAPER_TYPE=ZV</code></li>
<li>A meglévő gyűrődési tesztmodellből a kiválasztott bemeneti alakítóval válaszd ki azt a gyorsulást, amely kellően jól mutatja a gyűrődést, és állítsd be a következővel: <code>SET_VELOCITY_LIMIT ACCEL=...</code></li>
diff --git a/hu/Rotation_Distance.html b/hu/Rotation_Distance.html
index 75d2f2cf8..0781d1868 100644
--- a/hu/Rotation_Distance.html
+++ b/hu/Rotation_Distance.html
@@ -1386,15 +1386,15 @@
<h1 id="forgatasi-tavolsag">Forgatási távolság<a class="headerlink" href="#forgatasi-tavolsag" title="Permanent link">&para;</a></h1>
<p>A Klipper léptetőmotor meghajtók minden <a href="Config_Reference.html#stepper">léptető konfigurációs szakaszban</a> megkövetelnek egy <code>rotation_distance</code> paramétert. A <code>rotation_distance</code> az a távolság, amelyet a tengely a léptetőmotor egy teljes fordulatával elmozdít. Ez a dokumentum leírja, hogyan lehet ezt az értéket beállítani.</p>
<h2 id="a-rotation_distance-kinyerese-a-steps_per_mm-vagy-step_distance-ertekbol">A rotation_distance kinyerése a steps_per_mm (vagy step_distance) értékből<a class="headerlink" href="#a-rotation_distance-kinyerese-a-steps_per_mm-vagy-step_distance-ertekbol" title="Permanent link">&para;</a></h2>
-<p>A 3D nyomtató tervezői eredetileg <code>steps_per_mm</code> forgatási távolságból számították ki. Ha ismered a steps_per_mm értéket, akkor ezzel az általános képlettel megkaphatja ezt az eredeti forgatási távolságot:</p>
+<p>A 3D nyomtató tervezői eredetileg <code>steps_per_mm</code> forgatási távolságból számították ki. Ha ismered a steps_per_mm értéket, akkor ezzel az általános képlettel megkaphatod az eredeti forgatási távolságot:</p>
<div class="highlight"><pre><span></span><code>rotation_distance = &lt;full_steps_per_rotation&gt; * &lt;microsteps&gt; / &lt;steps_per_mm&gt;
</code></pre></div>
-<p>Vagy ha régebbi Klipper konfigurációval rendelkezik, és ismered a <code>step_distance</code> paramétert, akkor használhatod ezt a képletet:</p>
+<p>Vagy ha régebbi Klipper konfigurációval rendelkezel, és ismered a <code>step_distance</code> paramétert, akkor használhatod ezt a képletet:</p>
<div class="highlight"><pre><span></span><code>rotation_distance = &lt;full_steps_per_rotation&gt; * &lt;microsteps&gt; * &lt;step_distance&gt;
</code></pre></div>
-<p>A <code>&lt;full_steps_per_rotation&gt;</code> beállítást a léptetőmotor típusa határozza meg. A legtöbb léptetőmotor "1,8 fokos lépésszögű" és ezért 200 teljes lépés/fordulat (360 osztva 1,8-al 200). Egyes léptetőmotorok "0,9 fokos lépésszögűek" és így 400 teljes lépést tesznek meg fordulatonként. Más léptetőmotorok ritkábbak. Ha bizonytalan vagy, ne állítsd be a full_steps_per_rotation értéket a konfigurációs fájlban, és használd a 200-at a fenti képletben.</p>
+<p>A <code>&lt;full_steps_per_rotation&gt;</code> beállítást a léptetőmotor típusa határozza meg. A legtöbb léptetőmotor "1,8 fokos lépésszögű" és ezért 200 teljes lépés/fordulat (360 osztva 1,8-al az a 200). Egyes léptetőmotorok "0,9 fokos lépésszögűek" és így 400 teljes lépést tesznek meg fordulatonként. Más léptetőmotorok ritkábbak. Ha bizonytalan vagy, ne állítsd be a full_steps_per_rotation értéket a konfigurációs fájlban, és használd a 200-at a fenti képletben.</p>
<p>A <code>&lt;mikrolépések&gt;</code> beállítást a léptetőmotor-meghajtó határozza meg. A legtöbb meghajtó 16 mikrolépést használ. Ha bizonytalan vagy, állítsd be a <code>microsteps: 16</code> a konfigurációban, és használd a 16-ot a fenti képletben.</p>
<p>Szinte minden nyomtatónak egész számot kell megadnia a <code>rotation_distance</code> X, Y és Z típusú tengelyeknél. Ha a fenti képlet olyan rotation_distance-ot eredményez, amely 0,01 egész számon belül van, akkor kerekítse a végső értéket erre az egész számra.</p>
<h2 id="a-rotation_distance-kalibralasa-extrudereken">A rotation_distance kalibrálása extrudereken<a class="headerlink" href="#a-rotation_distance-kalibralasa-extrudereken" title="Permanent link">&para;</a></h2>
diff --git a/hu/SDCard_Updates.html b/hu/SDCard_Updates.html
index 445eb54aa..74ffee277 100644
--- a/hu/SDCard_Updates.html
+++ b/hu/SDCard_Updates.html
@@ -1439,7 +1439,7 @@ opcionális argumentumok:
<div class="highlight"><pre><span></span><code>./scripts/flash-sdcard.sh -b 115200 /dev/ttyAMA0 btt-skr-v1.3
</code></pre></div>
-<p>Ha a Klipper egy, az alapértelmezett helytől eltérő helyen található készletét szeretné égetni, akkor ezt a <code>-f</code> opció megadásával teheti meg:</p>
+<p>Ha a Klipper egy, az alapértelmezett helytől eltérő helyen található készletét szeretnéd égetni, akkor ezt a <code>-f</code> opció megadásával teheti meg:</p>
<div class="highlight"><pre><span></span><code>./scripts/flash-sdcard.sh -f ~/downloads/klipper.bin /dev/ttyAMA0 btt-skr-v1.3
</code></pre></div>
diff --git a/hu/Skew_Correction.html b/hu/Skew_Correction.html
index df34d6375..0528751bb 100644
--- a/hu/Skew_Correction.html
+++ b/hu/Skew_Correction.html
@@ -1342,7 +1342,7 @@
<h1 id="ferdeseg-korrekcio">Ferdeség korrekció<a class="headerlink" href="#ferdeseg-korrekcio" title="Permanent link">&para;</a></h1>
-<p>A szoftveralapú ferdeség korrekció segíthet a nem tökéletesen szögletes nyomtatóegységből eredő méretpontatlanságok feloldásában. Vedd figyelembe, hogy ha a nyomtatója jelentősen ferde, erősen ajánlott először mechanikai eszközökkel a nyomtatót a lehető legegyenletesebbre állítani, mielőtt a szoftveralapú korrekciót alkalmazná.</p>
+<p>A szoftveralapú ferdeség korrekció segíthet a nem tökéletesen szögletes nyomtatóegységből eredő méretpontatlanságok feloldásában. Vedd figyelembe, hogy ha a nyomtatód jelentősen ferde, erősen ajánlott először mechanikai eszközökkel a nyomtatót a lehető legegyenletesebbre állítani, mielőtt a szoftveralapú korrekciót alkalmaznád.</p>
<h2 id="kalibracios-objektum-nyomtatasa">Kalibrációs objektum nyomtatása<a class="headerlink" href="#kalibracios-objektum-nyomtatasa" title="Permanent link">&para;</a></h2>
<p>A ferdeség korrekciójának első lépése egy <a href="https://www.thingiverse.com/thing:2563185/files">kalibrációs objektum</a> nyomtatása a korrigálni kívánt sík mentén. Létezik egy másik <a href="https://www.thingiverse.com/thing:2972743">kalibrációs objektum</a> is, amely egy modell összes síkját tartalmazza. Az objektumot úgy kell tájolni, hogy az A sarok a sík origója felé legyen.</p>
<p>Győződj meg róla, hogy a nyomtatás során nem alkalmaz ferdeségkorrekciót. Ezt úgy teheti meg, hogy vagy eltávolítja a <code>[skew_correction]</code> modult a printer.cfg fájlból, vagy kiadsz egy <code>SET_SKEW CLEAR=1</code> parancsot.</p>
diff --git a/hu/Slicers.html b/hu/Slicers.html
index f75f31652..116822d04 100644
--- a/hu/Slicers.html
+++ b/hu/Slicers.html
@@ -1379,17 +1379,17 @@
<p>A gcode_macro definiálásának részleteiért lásd a <a href="Config_Reference.html#gcode_macro">konfigurációs hivatkozást</a>.</p>
<h2 id="nagy-visszahuzasi-ertekek-beallitasa-szuksegesse-tehetik-a-klipper-hangolasat">Nagy visszahúzási értékek beállítása szükségessé tehetik a Klipper hangolását<a class="headerlink" href="#nagy-visszahuzasi-ertekek-beallitasa-szuksegesse-tehetik-a-klipper-hangolasat" title="Permanent link">&para;</a></h2>
<p>A behúzási mozgások maximális sebességét és gyorsulását a Klipperben a <code>max_extrude_only_velocity</code> és <code>max_extrude_only_accel</code> konfigurációs beállítások szabályozzák. Ezeknek a beállításoknak van egy alapértelmezett értéke, amely sok nyomtatónál jól fog működni. Ha azonban valaki nagy behúzást állított be a szeletelőben (pl. 5 mm vagy nagyobb), akkor előfordulhat, hogy ezek korlátozzák a kívánt behúzási sebességet.</p>
-<p>Ha nagy visszahúzást használ, fontolja meg a Klipper <a href="Pressure_Advance.html">nyomás előtolás</a> beállítását. Ellenkező esetben, ha úgy találjuk, hogy a nyomtatófej úgy tűnik, hogy "szünetel" a behúzás és az alapozás során, akkor fontolja meg a <code>max_extrude_only_velocity</code> és <code>max_extrude_only_accel</code> kifejezett meghatározását a Klipper konfigurációs fájlban.</p>
+<p>Ha nagy visszahúzást használ, fontold meg a Klipper <a href="Pressure_Advance.html">nyomás előtolás</a> beállítását. Ellenkező esetben, ha úgy találjuk, hogy a nyomtatófej úgy tűnik, hogy "szünetel" a behúzás és az alapozás során, akkor fontold meg a <code>max_extrude_only_velocity</code> és <code>max_extrude_only_accel</code> kifejezett meghatározását a Klipper konfigurációs fájlban.</p>
<h2 id="ne-engedelyezd-a-coasting-ot">Ne engedélyezd a "coasting-ot"<a class="headerlink" href="#ne-engedelyezd-a-coasting-ot" title="Permanent link">&para;</a></h2>
-<p>A "coasting" funkció valószínűleg rossz minőségű nyomatokat eredményez a Klipperrel. Fontolja meg helyette a Klipper <a href="Pressure_Advance.html">pressure advance</a> használatát.</p>
+<p>A "coasting" funkció valószínűleg rossz minőségű nyomatokat eredményez a Klipperrel. Fontold meg helyette a Klipper <a href="Pressure_Advance.html">pressure advance</a> használatát.</p>
<p>Konkrétan, ha a szeletelő drasztikusan megváltoztatja az extrudálási sebességet a mozgások között, akkor a Klipper lassítást és gyorsítást hajt végre a mozgások között. Ez valószínűleg rontja a blobbingot, nem pedig javítja.</p>
<p>Ezzel szemben a szeletelőgép "visszahúzás" beállítása, "törlés" beállítása és/vagy "törlés visszahúzáskor" beállítása rendben van (és gyakran hasznos).</p>
<h2 id="ne-hasznald-az-extra-ujrainditasi-tavolsagot-a-simplify3d-nel">Ne használd az "extra újraindítási távolságot" a Simplify3d-nél<a class="headerlink" href="#ne-hasznald-az-extra-ujrainditasi-tavolsagot-a-simplify3d-nel" title="Permanent link">&para;</a></h2>
-<p>Ez a beállítás drámai változásokat okozhat az extrudálási sebességben, ami kiválthatja a Klipper maximális extrudálási keresztmetszet ellenőrzését. Fontolja meg a Klipper <a href="Pressure_Advance.html">nyomás előtolás</a> vagy a normál Simplify3d visszahúzási beállítás használatát helyette.</p>
+<p>Ez a beállítás drámai változásokat okozhat az extrudálási sebességben, ami kiválthatja a Klipper maximális extrudálási keresztmetszet ellenőrzését. Fontold meg a Klipper <a href="Pressure_Advance.html">nyomás előtolás</a> vagy a normál Simplify3d visszahúzási beállítás használatát helyette.</p>
<h2 id="a-preloadve-letiltasa-a-kisslicer-en">A "PreloadVE" letiltása a KISSlicer-en<a class="headerlink" href="#a-preloadve-letiltasa-a-kisslicer-en" title="Permanent link">&para;</a></h2>
-<p>Ha a KISSlicer szeletelőszoftvert használod, akkor állítsd a "PreloadVE" értéket nullára. Fontolja meg helyette a Klipper <a href="Pressure_Advance.html">nyomás előtolás</a> használatát.</p>
+<p>Ha a KISSlicer szeletelőszoftvert használod, akkor állítsd a "PreloadVE" értéket nullára. Fontold meg helyette a Klipper <a href="Pressure_Advance.html">nyomás előtolás</a> használatát.</p>
<h2 id="tiltja-a-fejlett-nyomas-elotolas-beallitasokat">Tiltja a "fejlett nyomás előtolás" beállításokat<a class="headerlink" href="#tiltja-a-fejlett-nyomas-elotolas-beallitasokat" title="Permanent link">&para;</a></h2>
-<p>Néhány szeletelőgép "fejlett nyomás előtolás" képességet hirdet. A Klipper használata esetén ajánlott ezeket az opciókat kikapcsolva tartani, mivel valószínűleg rossz minőségű nyomatokat eredményeznek. Fontolja meg ehelyett a Klipper <a href="Pressure_Advance.html">nyomás előtolás</a> használatát.</p>
+<p>Néhány szeletelőgép "fejlett nyomás előtolás" képességet hirdet. A Klipper használata esetén ajánlott ezeket az opciókat kikapcsolva tartani, mivel valószínűleg rossz minőségű nyomatokat eredményeznek. Fontold meg ehelyett a Klipper <a href="Pressure_Advance.html">nyomás előtolás</a> használatát.</p>
<p>Konkrétan ezek a szeletelő beállítások utasíthatják a firmware-t, hogy vad változtatásokat végezzen az extrudálási sebességben, abban a reményben, hogy a firmware közelíteni fogja ezeket a kéréseket, és a nyomtató nagyjából a kívánt extrudernyomást fogja elérni. A Klipper azonban pontos kinematikai számításokat és időzítést használ. Amikor a Klipper parancsot kap az extrudálási sebesség jelentős változtatására, megtervezi a sebesség, a gyorsulás és az extruder mozgásának megfelelő változásait - ami nem a szeletelő szándékában áll. A szeletelő akár túlzott extrudálási sebességet is parancsolhat, olyannyira, hogy az kiváltja a Klipper maximális extrudálási keresztmetszet ellenőrzését.</p>
<p>Ezzel szemben a szeletelőgép "visszahúzás" beállítása, "törlés" beállítása és/vagy "törlés visszahúzáskor" beállítása rendben van (és gyakran hasznos).</p>
diff --git a/hu/Sponsors.html b/hu/Sponsors.html
index e845e35fb..2b9a15431 100644
--- a/hu/Sponsors.html
+++ b/hu/Sponsors.html
@@ -1352,7 +1352,7 @@
<h1 id="szponzorok">Szponzorok<a class="headerlink" href="#szponzorok" title="Permanent link">&para;</a></h1>
-<p>A Klipper szabad szoftver. A szponzorok nagylelkű támogatásától függünk. Kérjük, fontolja meg a Klipper szponzorálását vagy szponzoraink támogatását.</p>
+<p>A Klipper szabad szoftver. A szponzorok nagylelkű támogatásától függünk. Kérjük, fontold meg a Klipper szponzorálását vagy szponzoraink támogatását.</p>
<h2 id="bigtreetech">BIGTREETECH<a class="headerlink" href="#bigtreetech" title="Permanent link">&para;</a></h2>
<p>[<img src="./img/sponsors/BTT_BTT.png" width="200" /></p>
<p>A BIGTREETECH a Klipper hivatalos alaplapszponzora. A BIGTREETECH elkötelezett az innovatív és versenyképes termékek fejlesztése mellett, hogy a 3D nyomtatási közösséget jobban szolgálják. Kövesse őket a <a href="https://www.facebook.com/BIGTREETECH">Facebookon</a> vagy a <a href="https://twitter.com/BigTreeTech">Twitteren</a>.</p>
@@ -1362,7 +1362,7 @@
<h3 id="eric-callahan">Eric Callahan<a class="headerlink" href="#eric-callahan" title="Permanent link">&para;</a></h3>
<p>Eric a bed_mesh, spi_flash és számos más Klipper modul szerzője. Ericnek van egy adományozási oldala a következő címen: <a href="https://ko-fi.com/arksine">https://ko-fi.com/arksine</a></p>
<h2 id="kapcsolodo-klipper-projektek">Kapcsolódó Klipper projektek<a class="headerlink" href="#kapcsolodo-klipper-projektek" title="Permanent link">&para;</a></h2>
-<p>A Klippert gyakran használják más szabad szoftverekkel együtt. Fontolja meg ezeknek a projekteknek a használatát vagy támogatását.</p>
+<p>A Klippert gyakran használják más szabad szoftverekkel együtt. Fontold meg ezeknek a projekteknek a használatát vagy támogatását.</p>
<ul>
<li><a href="https://github.com/Arksine/moonraker">Moonraker</a></li>
<li><a href="https://github.com/mainsail-crew/mainsail">Mainsail</a></li>
diff --git a/hu/Status_Reference.html b/hu/Status_Reference.html
index dac09cabd..c82465e8f 100644
--- a/hu/Status_Reference.html
+++ b/hu/Status_Reference.html
@@ -1849,7 +1849,7 @@
<h1 id="allapot-referencia">Állapot referencia<a class="headerlink" href="#allapot-referencia" title="Permanent link">&para;</a></h1>
<p>Ez a dokumentum a Klipper <a href="Command_Templates.html">makrók</a>, <a href="Config_Reference.html#display">megjelenítési mezők</a> és az <a href="API_Server.html">API Szerver</a> segítségével elérhető nyomtató állapotinformációk referenciája.</p>
-<p>Az ebben a dokumentumban szereplő mezők változhatnak. Ha egy attribútumot használ, a Klipper szoftver frissítésekor mindenképpen nézze át a <a href="Config_Changes.html">Konfigurációs változások dokumentumot</a>.</p>
+<p>Az ebben a dokumentumban szereplő mezők változhatnak. Ha egy attribútumot használsz, a Klipper szoftver frissítésekor mindenképpen nézd át a <a href="Config_Changes.html">Konfigurációs változások dokumentumot</a>.</p>
<h2 id="angle">angle<a class="headerlink" href="#angle" title="Permanent link">&para;</a></h2>
<p>A következő információk az <a href="Config_Reference.html#angle">angle some_name</a> objektumban érhetők el:</p>
<ul>
diff --git a/hu/TMC_Drivers.html b/hu/TMC_Drivers.html
index 92d330d07..a46dea402 100644
--- a/hu/TMC_Drivers.html
+++ b/hu/TMC_Drivers.html
@@ -1707,7 +1707,7 @@
<h2 id="inkabb-ne-adj-meg-hold_current-erteket">Inkább ne adj meg hold_current értéket<a class="headerlink" href="#inkabb-ne-adj-meg-hold_current-erteket" title="Permanent link">&para;</a></h2>
<p>Ha beállítunk egy <code>hold_current</code> é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.</p>
<p>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 <code>hold_current</code> 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.</p>
-<p>Ha csökkenteni szeretné a motorok áramát a nyomtatási indítási rutinok során, akkor fontolja meg a <a href="G-Codes.html#set_tmc_current">SET_TMC_CURRENT</a> parancsok kiadását egy <a href="Slicers.html#klipper-gcode_macro">START_PRINT makróban</a>, hogy beállítsd az áramot a normál nyomtatási mozgások előtt és után.</p>
+<p>Ha csökkenteni szeretnéd a motorok áramát a nyomtatási indítási rutinok során, akkor fontold meg a <a href="G-Codes.html#set_tmc_current">SET_TMC_CURRENT</a> parancsok kiadását egy <a href="Slicers.html#klipper-gcode_macro">START_PRINT makróban</a>, hogy beállítsd az áramot a normál nyomtatási mozgások előtt és után.</p>
<p>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 tapasztalhatja, hogy a Z motorok hűvösebbek a <code>hold_current</code> 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 <code>driver_TPOWERDOWN</code> és <code>driver_IHOLDDELAY</code> értékeket is ennek megfelelően kell kalibrálni. Ha bizonytalan vagy, inkább ne add meg a <code>hold_current</code> értéket.</p>
<h2 id="spreadcycle-vs-stealthchop-mod-beallitasa">"SpreadCycle" vs "StealthChop" mód beállítása<a class="headerlink" href="#spreadcycle-vs-stealthchop-mod-beallitasa" title="Permanent link">&para;</a></h2>
<p>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 <code>stealthchop_threshold hozzáadásával lehet engedélyezni: 999999</code> a TMC konfigurációs szakaszához.</p>
@@ -1716,7 +1716,7 @@
<p>Javasoljuk, hogy mindig a "SpreadCycle" módot használd (nem megadva a <code>stealthchop_threshold</code> értéket) vagy mindig a "StealthChop" módot (a <code>stealthchop_threshold</code> 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.</p>
<h2 id="a-tmc-interpolacios-beallitasa-kis-pozicioelterest-eredmenyez">A TMC interpolációs beállítása kis pozícióeltérést eredményez<a class="headerlink" href="#a-tmc-interpolacios-beallitasa-kis-pozicioelterest-eredmenyez" title="Permanent link">&para;</a></h2>
<p>A TMC motorvezérlő <code>interpolate</code> 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.</p>
-<p>A legjobb helymeghatározási pontosság érdekében fontolja meg a SpreadCycle mód használatát és az interpoláció kikapcsolását (állítsd be az <code>interpolate: False</code> értéket a TMC motorvezérlő konfigurációjában). Ilyen konfiguráció esetén növelhetjük a <code>microstep</code> beállítást a léptető mozgása közbeni hallható zajok csökkentése érdekében. Általában a <code>64</code> vagy <code>128</code> 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.</p>
+<p>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 <code>interpolate: False</code> értéket a TMC motorvezérlő konfigurációjában). Ilyen konfiguráció esetén növelhetjük a <code>microstep</code> beállítást a léptető mozgása közbeni hallható zajok csökkentése érdekében. Általában a <code>64</code> vagy <code>128</code> 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.</p>
<p>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ó.</p>
<h2 id="erzekelo-nelkuli-kezdopont">Érzékelő nélküli kezdőpont<a class="headerlink" href="#erzekelo-nelkuli-kezdopont" title="Permanent link">&para;</a></h2>
<p>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.</p>
@@ -1793,7 +1793,7 @@ homing_retract_dist: 0
<p>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 <a href="Config_Reference.html#tmc-motorvezerlo-konfiguracioja">konfigurációs referencia</a> dokumentumot.</p>
<h4 id="keresse-meg-a-legmagasabb-erzekenyseget-amely-sikeresen-jelzi-a-kezdopontot">Keresse meg a legmagasabb érzékenységet, amely sikeresen jelzi a kezdőpontot<a class="headerlink" href="#keresse-meg-a-legmagasabb-erzekenyseget-amely-sikeresen-jelzi-a-kezdopontot" title="Permanent link">&para;</a></h4>
-<p>Helyezze 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:</p>
+<p>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:</p>
<div class="highlight"><pre><span></span><code>SET_TMC_FIELD STEPPER=stepper_x FIELD=SGTHRS VALUE=255
</code></pre></div>
@@ -1804,7 +1804,7 @@ homing_retract_dist: 0
<p>Ezután adj ki egy <code>G28 X0</code> 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 <code>M112</code> 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.</p>
<p>Ezután folyamatosan csökkentse a <code>VALUE</code> beállítás érzékenységét, és futtassa le újra a <code>SET_TMC_FIELD</code> <code>G28 X0</code> parancsokat, hogy megtalálja 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 <code>M84</code> 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). Jegyezze fel a kapott értéket <em>maximum_sensitivity</em> 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.)</p>
<p>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 <code>M112</code> 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.</p>
-<p>Ügyelj arra, hogy várjon 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.</p>
+<p>Ü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.</p>
<p>Ha a hangolási tesztek során a <code>G28 X0</code> parancs nem mozdul el egészen a tengelyhatárig, akkor óvatosan kell eljárni a szabályos mozgatási parancsok kiadásával (pl. <code>G1</code>). A Klipper nem fogja helyesen értelmezni a kocsi helyzetét, és a mozgatási parancs nemkívánatos és zavaros eredményeket okozhat.</p>
<h4 id="keresse-meg-a-legalacsonyabb-erzekenyseget-amely-egyetlen-erintessel-kezdoponton-van">Keresse meg a legalacsonyabb érzékenységet, amely egyetlen érintéssel kezdőponton van<a class="headerlink" href="#keresse-meg-a-legalacsonyabb-erzekenyseget-amely-egyetlen-erintessel-kezdoponton-van" title="Permanent link">&para;</a></h4>
<p>Ha a kapott <em>maximum_sensitivity</em> értékkel állítja be a tengelyt a sín végére, és egy "egyszeri érintéssel" áll meg, azaz nem szabad, hogy "kattogó" vagy "csattanó" hangot halljon. (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.)</p>
@@ -1893,7 +1893,7 @@ gcode:
<p>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.</p>
<h4 id="a-tmc-hibat-jelent-shorttognd-vagy-lowsideshort">A TMC hibát jelent: <code>... ShortToGND</code> VAGY <code>LowSideShort</code><a class="headerlink" href="#a-tmc-hibat-jelent-shorttognd-vagy-lowsideshort" title="Permanent link">&para;</a></h4>
<p>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.</p>
-<p>Ez a hiba akkor is előfordulhat, ha StealthChop üzemmódot használ, é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 kapcsolja ki a StealthChop üzemmódot, és ellenőrizd, hogy a hibák továbbra is előfordulnak-e.</p>
+<p>Ez a hiba akkor is előfordulhat, ha StealthChop üzemmódot használ, é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.</p>
<h4 id="a-tmc-hibat-jelent-reset1reset-vagy-cs_actual0reset-vagy-se0reset">A TMC hibát jelent: <code>... reset=1(Reset)</code> VAGY <code>CS_ACTUAL=0(Reset?)</code> VAGY <code>SE=0(Reset?)</code><a class="headerlink" href="#a-tmc-hibat-jelent-reset1reset-vagy-cs_actual0reset-vagy-se0reset" title="Permanent link">&para;</a></h4>
<p>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.</p>
<h4 id="a-tmc-hibat-jelent-uv_cp1undervoltage">A TMC hibát jelent: <code>... uv_cp=1(Undervoltage!)</code><a class="headerlink" href="#a-tmc-hibat-jelent-uv_cp1undervoltage" title="Permanent link">&para;</a></h4>
diff --git a/hu/TSL1401CL_Filament_Width_Sensor.html b/hu/TSL1401CL_Filament_Width_Sensor.html
index 8f4549540..127203d86 100644
--- a/hu/TSL1401CL_Filament_Width_Sensor.html
+++ b/hu/TSL1401CL_Filament_Width_Sensor.html
@@ -1305,7 +1305,7 @@
<h2 id="hogyan-mukodik">Hogyan működik?<a class="headerlink" href="#hogyan-mukodik" title="Permanent link">&para;</a></h2>
<p>Az érzékelő analóg kimenetet generál a számított nyomtatószál szélessége alapján. A kimeneti feszültség mindig megegyezik a nyomtatószál érzékelt szélességével (pl. 1,65 V, 1,70 V, 3,0 V). A gazdamodul figyeli a feszültségváltozásokat és beállítja az extrudálási szorzót.</p>
<h2 id="jegyzet">Jegyzet:<a class="headerlink" href="#jegyzet" title="Permanent link">&para;</a></h2>
-<p>Az érzékelő leolvasása alapértelmezés szerint 10 mm-es időközönként történik. Ha szükséges, szabadon módosíthatja ezt a beállítást a <strong><em>MEASUREMENT_INTERVAL_MM</em></strong> paraméter szerkesztésével a <strong>filament_width_sensor.py</strong> fájlban.</p>
+<p>Az érzékelő leolvasása alapértelmezés szerint 10 mm-es időközönként történik. Ha szükséges, szabadon módosíthatod ezt a beállítást a <strong><em>MEASUREMENT_INTERVAL_MM</em></strong> paraméter szerkesztésével a <strong>filament_width_sensor.py</strong> fájlban.</p>
</article>
diff --git a/hu/Using_PWM_Tools.html b/hu/Using_PWM_Tools.html
index db943f091..97260b401 100644
--- a/hu/Using_PWM_Tools.html
+++ b/hu/Using_PWM_Tools.html
@@ -1328,10 +1328,10 @@
<h1 id="pwm-eszkozok-hasznalata">PWM eszközök használata<a class="headerlink" href="#pwm-eszkozok-hasznalata" title="Permanent link">&para;</a></h1>
-<p>Ez a dokumentum leírja, hogyan állíthat be egy PWM-vezérelt lézert vagy orsót az <code>output_pin</code> és néhány makró segítségével.</p>
+<p>Ez a dokumentum leírja, hogyan állíthatsz be egy PWM-vezérelt lézert vagy orsót az <code>output_pin</code> és néhány makró segítségével.</p>
<h2 id="hogyan-mukodik">Hogyan működik?<a class="headerlink" href="#hogyan-mukodik" title="Permanent link">&para;</a></h2>
-<p>A nyomtatófej ventilátor PWM kimenetének felhasználásával lézereket vagy orsókat vezérelhet. Ez akkor hasznos, ha kapcsolható nyomtatófejeket használ, például az E3D szerszámváltó vagy egy barkácsmegoldás. Általában az olyan cam-tool, mint a LaserWeb, úgy konfigurálhatók, hogy <code>M3-M5</code> parancsokat használjanak, amelyek <em>spindle speed CW</em> (<code>M3 S[0-255]</code>), <em>orsó fordulatszám * (<code>M4 S[0-255]</code>) és </em>orsóstop* (<code>M5</code>).</p>
-<p><strong>Figyelmeztetés:</strong> A lézer használatakor tartson be minden biztonsági óvintézkedést, amit csak lehet! A diódalézerek általában invertáltak. Ez azt jelenti, hogy amikor az MCU újraindul, a lézer <em>teljesen be lesz kapcsolva</em> arra az időre. A biztonság kedvéért ajánlott <em>mindig</em> megfelelő hullámhosszúságú lézerszemüveget viselni, ha a lézer be van kapcsolva, és a lézert le kell kapcsolni, ha nincs rá szükség. Emellett be kell állítania egy biztonsági időkorlátot, hogy ha a gazdagép vagy az MCU hibát észlel, a szerszám leálljon.</p>
+<p>A nyomtatófej ventilátor PWM kimenetének felhasználásával lézereket vagy orsókat vezérelhetsz. Ez akkor hasznos, ha kapcsolható nyomtatófejeket használsz, például az E3D szerszámváltó vagy egy barkácsmegoldás. Általában az olyan cam-tool, mint a LaserWeb, úgy konfigurálhatók, hogy <code>M3-M5</code> parancsokat használjanak, amelyek <em>spindle speed CW</em> (<code>M3 S[0-255]</code>), <em>spindle speed CCW</em> (<code>M4 S[0-255]</code>) és <em>spindle stop</em> (<code>M5</code>).</p>
+<p><strong>Figyelmeztetés:</strong> A lézer használatakor tarts be minden biztonsági óvintézkedést, amit csak lehet! A diódalézerek általában invertáltak. Ez azt jelenti, hogy amikor az MCU újraindul, a lézer <em>teljesen be lesz kapcsolva</em> arra az időre. A biztonság kedvéért ajánlott <em>mindig</em> megfelelő hullámhosszúságú lézerszemüveget viselni, ha a lézer be van kapcsolva, és a lézert le kell kapcsolni, ha nincs rá szükség. Emellett be kell állítani egy biztonsági időkorlátot, hogy ha a gazdagép vagy az MCU hibát észlel, a szerszám leálljon.</p>
<p>Egy példakonfigurációért lásd <a href="/config/sample-pwm-tool.cfg">config/sample-pwm-tool.cfg</a>.</p>
<h2 id="jelenlegi-korlatozasok">Jelenlegi korlátozások<a class="headerlink" href="#jelenlegi-korlatozasok" title="Permanent link">&para;</a></h2>
<p>Korlátozott, hogy milyen gyakoriak lehetnek a PWM-frissítések. Bár nagyon pontos, a PWM frissítés csak 0,1 másodpercenként fordulhat elő, így szinte használhatatlanná válik a rasztergravírozáshoz. Létezik azonban egy <a href="https://github.com/Cirromulus/klipper/tree/laser_tool">kísérleti ág</a>, amelynek saját kompromisszumai vannak. Hosszú távon azt tervezik, hogy ezt a funkciót hozzáadják a fővonali klipperhez.</p>
diff --git a/hu/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc b/hu/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc
index 5d8531f53..4d33b0a3d 100644
--- a/hu/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc
+++ b/hu/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc
Binary files differ
diff --git a/hu/search/search_index.json b/hu/search/search_index.json
index aca50ca1b..ab19f8503 100644
--- a/hu/search/search_index.json
+++ b/hu/search/search_index.json
@@ -1 +1 @@
-{"config":{"indexing":"full","lang":["hu"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"index.html","text":"A Klipper egy 3D nyomtat\u00f3 firmware. Egyes\u00edti egy \u00e1ltal\u00e1nos c\u00e9l\u00fa sz\u00e1m\u00edt\u00f3g\u00e9p \u00e9s egy vagy t\u00f6bb mikrokontroller teljes\u00edtm\u00e9ny\u00e9t. A jellemz\u0151k dokumentumban tal\u00e1lsz tov\u00e1bbi inform\u00e1ci\u00f3kat arr\u00f3l, hogy mi\u00e9rt \u00e9rdemes a Klippert haszn\u00e1lni. A Klipper haszn\u00e1lat\u00e1nak megkezd\u00e9s\u00e9hez kezdje a telep\u00edt\u00e9st . A Klipper szabad szoftver. Olvassa el a dokument\u00e1ci\u00f3t vagy tekintse meg a Klipper k\u00f3dj\u00e1t a githubon .","title":"\u00dcdv\u00f6zl\u00fcnk"},{"location":"API_Server.html","text":"API szerver \u00b6 Ez a dokumentum le\u00edrja a Klipper Alkalmaz\u00e1s Programoz\u00f3i Interf\u00e9szt (API). Ez az interf\u00e9sz lehet\u0151v\u00e9 teszi k\u00fcls\u0151 alkalmaz\u00e1sok sz\u00e1m\u00e1ra a Klipper gazdaszoftver lek\u00e9rdez\u00e9s\u00e9t \u00e9s vez\u00e9rl\u00e9s\u00e9t. Az API foglalat enged\u00e9lyez\u00e9se \u00b6 Az API-kiszolg\u00e1l\u00f3 haszn\u00e1lat\u00e1hoz a klippy.py host szoftvert a -a param\u00e9terrel kell elind\u00edtani. P\u00e9ld\u00e1ul: ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer.cfg -a /tmp/klippy_uds -l /tmp/klippy.log Ennek hat\u00e1s\u00e1ra a gazdaszoftver l\u00e9trehoz egy Unix Domain Socketet. Az \u00fcgyf\u00e9l ezut\u00e1n kapcsolatot nyithat ezen kereszt\u00fcl, \u00e9s parancsokat k\u00fcldhet a Klippernek. L\u00e1sd a Moonraker projektet egy n\u00e9pszer\u0171 eszk\u00f6z\u00e9rt, amely k\u00e9pes tov\u00e1bb\u00edtani a HTTP-k\u00e9r\u00e9seket a Klipper's API Server Unix Domain Socket-hez. K\u00e9relem form\u00e1tuma \u00b6 A socket-en k\u00fcld\u00f6tt \u00e9s fogadott \u00fczenetek JSON k\u00f3dol\u00e1s\u00fa karakterl\u00e1ncok, amelyeket egy ASCII 0x03 karakter z\u00e1r le: <json_object_1><0x03><json_object_2><0x03>... A Klipper tartalmaz egy scripts/whconsole.py eszk\u00f6zt, amely k\u00e9pes a fenti \u00fczenetkeretez\u00e9st elv\u00e9gezni. P\u00e9ld\u00e1ul: ~/klipper/scripts/whconsole.py /tmp/klippy_uds Ez az eszk\u00f6z k\u00e9pes beolvasni egy sor JSON parancsot az stdin-b\u0151l, elk\u00fcldeni \u0151ket a Klippernek, \u00e9s jelenteni az eredm\u00e9nyeket. Az eszk\u00f6z elv\u00e1rja, hogy minden JSON parancs egyetlen sorban legyen, \u00e9s a k\u00e9r\u00e9s elk\u00fcld\u00e9sekor automatikusan hozz\u00e1adja a 0x03 v\u00e9grehajt\u00f3t. (A Klipper API szervernek nincs \u00faj sor k\u00f6vetelm\u00e9nye.) API Protokoll \u00b6 A kommunik\u00e1ci\u00f3s foglalat \u00e1ltal haszn\u00e1lt parancsprotokollt a json-rpc ihlette. Egy k\u00e9r\u00e9s \u00edgy n\u00e9zhet ki: {\"id\": 123, \"method\": \"info\", \"params\": {}} \u00e9s a v\u00e1lasz \u00edgy n\u00e9zhet ki: {\"id\": 123, \"result\": {\"state_message\": \"Printer is ready\", \"klipper_path\": \"/home/pi/klipper\", \"config_file\": \"/home/pi/printer.cfg\", \"software_version\": \"v0.8.0-823-g883b1cb6\", \"hostname\": \"octopi\", \"cpu_info\": \"4 core ARMv7 Processor rev 4 (v7l)\", \"state\": \"ready\", \"python_path\": \"/home/pi/klippy-env/bin/python\", \"log_file\": \"/tmp/klippy.log\"}} Minden egyes k\u00e9r\u00e9snek egy JSON sz\u00f3t\u00e1rnak kell lennie. (Ez a dokumentum a Pythonban a \"sz\u00f3t\u00e1r\" kifejez\u00e9st haszn\u00e1lja a \"JSON objektum\" - a </x>{} -ban tal\u00e1lhat\u00f3 kulcs/\u00e9rt\u00e9k p\u00e1rok lek\u00e9pez\u00e9se, le\u00edr\u00e1s\u00e1ra.) A k\u00e9r\u00e9si sz\u00f3t\u00e1rnak tartalmaznia kell egy \"method\" param\u00e9tert, amely egy el\u00e9rhet\u0151 Klipper \"v\u00e9gpont\" h\u00far neve. A k\u00e9r\u00e9si sz\u00f3t\u00e1r tartalmazhat egy \"params\" param\u00e9tert, amelynek sz\u00f3t\u00e1r t\u00edpus\u00fanak kell lennie. A \"params\" tov\u00e1bbi param\u00e9terinform\u00e1ci\u00f3kat biztos\u00edt a k\u00e9r\u00e9st kezel\u0151 Klipper \"v\u00e9gpont\" sz\u00e1m\u00e1ra. Tartalma a \"v\u00e9gpontra\" jellemz\u0151. A k\u00e9r\u00e9si sz\u00f3t\u00e1r tartalmazhat egy \"id\" param\u00e9tert, amely b\u00e1rmilyen JSON t\u00edpus\u00fa lehet. Ha az \"id\" param\u00e9ter jelen van, akkor a Klipper egy v\u00e1lasz\u00fczenettel v\u00e1laszol a k\u00e9r\u00e9sre, amely tartalmazza ezt az \"id\" param\u00e9tert. Ha az \"id\" nincs megadva (vagy egy JSON \"null\" \u00e9rt\u00e9kre van be\u00e1ll\u00edtva), akkor a Klipper nem ad v\u00e1laszt a k\u00e9r\u00e9sre. A v\u00e1lasz\u00fczenet egy JSON sz\u00f3t\u00e1r, amely tartalmazza az \"id\" \u00e9s az \"eredm\u00e9ny\" \u00e9rt\u00e9keket. A \"result\" mindig egy sz\u00f3t\u00e1r melynek tartalma a k\u00e9r\u00e9st kezel\u0151 \"v\u00e9gpontra\" jellemz\u0151. Ha egy k\u00e9r\u00e9s feldolgoz\u00e1sa hib\u00e1t eredm\u00e9nyez, akkor a v\u00e1lasz\u00fczenet egy \"hiba\" mez\u0151t fog tartalmazni az \"eredm\u00e9ny\" mez\u0151 helyett. P\u00e9ld\u00e1ul a k\u00e9r\u00e9s: {\"id\": 123, \"method\": \"gcode/script\", \"params\": {\"script\": \"G1 X200\"}}} egy olyan hib\u00e1s v\u00e1laszt eredm\u00e9nyezhet, mint p\u00e9ld\u00e1ul: {\"id\": 123, \"error\": {\"message\": \"Must home axis first: 200.000 0.000 0.000 0.000 [0.000]\", \"error\": \"WebRequestError\"}} A Klipper mindig a be\u00e9rkez\u00e9s\u00fck sorrendj\u00e9ben kezdi meg a k\u00e9r\u00e9sek feldolgoz\u00e1s\u00e1t. El\u0151fordulhat azonban, hogy egyes k\u00e9r\u00e9sek nem fejez\u0151dnek be azonnal, ami azt eredm\u00e9nyezheti, hogy a kapcsol\u00f3d\u00f3 v\u00e1lasz m\u00e1s k\u00e9r\u00e9sek v\u00e1laszaihoz k\u00e9pest nem a megfelel\u0151 sorrendben ker\u00fcl elk\u00fcld\u00e9sre. Egy JSON-k\u00e9r\u00e9s soha nem fogja sz\u00fcneteltetni a j\u00f6v\u0151beli JSON-k\u00e9r\u00e9sek feldolgoz\u00e1s\u00e1t. Feliratkoz\u00e1sok \u00b6 N\u00e9h\u00e1ny Klipper \"v\u00e9gpont\" k\u00e9r\u00e9s lehet\u0151v\u00e9 teszi a \"feliratkoz\u00e1st\" a j\u00f6v\u0151beli aszinkron friss\u00edt\u00e9si \u00fczenetekre. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"gcode/subscribe_output\", \"params\": {\"response_template\":{\"key\": 345}}} kezdetben v\u00e1laszolhat: {\"id\": 123, \"result\": {}} \u00e9s a Klipper a k\u00f6vetkez\u0151h\u00f6z hasonl\u00f3 \u00fczeneteket fog k\u00fcldeni a j\u00f6v\u0151ben: {\"params\": {\"response\": \"ok B:22.8 /0.0 T0:22.4 /0.0\"}, \"key\": 345} Az el\u0151fizet\u00e9si k\u00e9r\u00e9s elfogad egy \"response_template\" sz\u00f3t\u00e1rat a k\u00e9r\u00e9s \"params\" mez\u0151j\u00e9ben. Ez a \"response_template\" sz\u00f3t\u00e1r sablonk\u00e9nt szolg\u00e1l a j\u00f6v\u0151beli aszinkron \u00fczenetekhez. Tetsz\u0151leges kulcs/\u00e9rt\u00e9k p\u00e1rokat tartalmazhat. Ezen j\u00f6v\u0151beli aszinkron \u00fczenetek k\u00fcld\u00e9sekor a Klipper hozz\u00e1ad egy \"params\" mez\u0151t, amely egy \"endpoint\" specifikus tartalm\u00fa sz\u00f3t\u00e1rat tartalmaz a v\u00e1laszsablonnak, majd elk\u00fcldi ezt a sablont. Ha nem adunk meg egy \"response_template\" mez\u0151t, akkor az alap\u00e9rtelmez\u00e9s szerint egy \u00fcres sz\u00f3t\u00e1r lesz ( {} ). El\u00e9rhet\u0151 \"v\u00e9gpontok\" \u00b6 A Klipper \"v\u00e9gpontok\" a konvenci\u00f3 szerint a <module_name>/<some_name> form\u00e1j\u00faak. Ha egy \"v\u00e9gponthoz\" int\u00e9z\u00fcnk k\u00e9r\u00e9st, a teljes nevet a k\u00e9r\u00e9si sz\u00f3t\u00e1r \"method\" param\u00e9ter\u00e9ben kell megadni (pl. {\"method\"=\"gcode/restart\"} ). inf\u00f3 \u00b6 Az \"info\" v\u00e9gpontot a Klipper rendszert \u00e9s verzi\u00f3inform\u00e1ci\u00f3inak lek\u00e9rdez\u00e9s\u00e9re haszn\u00e1ljuk. Arra is szolg\u00e1l, hogy a kliens verzi\u00f3t a Klipper sz\u00e1m\u00e1ra megadd. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"info\", \"params\": { \"client_info\": { \"version\": \"v1\"}}}} Ha jelen van a \"client_info\" param\u00e9ter egy sz\u00f3t\u00e1rnak kell lennie, de a sz\u00f3t\u00e1r tetsz\u0151leges tartalm\u00fa lehet. A felhaszn\u00e1l\u00f3knak aj\u00e1nlott megadniuk az \u00fcgyf\u00e9l nev\u00e9t \u00e9s a szoftver verzi\u00f3j\u00e1t, amikor el\u0151sz\u00f6r csatlakoznak a Klipper API kiszolg\u00e1l\u00f3hoz. emergency_stop \u00b6 Az \"emergency_stop\" v\u00e9gpont arra szolg\u00e1l, hogy utas\u00edtsa a Klippert a \"shutdown\" \u00e1llapotba val\u00f3 \u00e1tmenetre. Hasonl\u00f3an viselkedik, mint a G-k\u00f3d M112 parancs. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"emergency_stop\"} register_remote_method \u00b6 Ez a v\u00e9gpont lehet\u0151v\u00e9 teszi az \u00fcgyfelek sz\u00e1m\u00e1ra, hogy regisztr\u00e1lj\u00e1k a klipperb\u0151l h\u00edvhat\u00f3 met\u00f3dusokat. Siker eset\u00e9n egy \u00fcres objektumot ad vissza. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"register_remote_method\", \"params\": {\"response_template\": {\"action\": \"run_paneldue_beep\"}, \"remote_method\": \"paneldue_beep\"}}} fog visszat\u00e9rni: {\"id\": 123, \"result\": {}} A t\u00e1voli paneldue_beep met\u00f3dus mostant\u00f3l h\u00edvhat\u00f3 a Klipperb\u0151l. Vegy\u00fck figyelembe, hogy ha a met\u00f3dus param\u00e9tereket vesz fel, akkor azokat kulcsszavas argumentumk\u00e9nt kell megadni. Az al\u00e1bbiakban egy p\u00e9lda l\u00e1that\u00f3 arra, hogyan h\u00edvhat\u00f3 meg egy gcode_macro-b\u00f3l: [gcode_macro PANELDUE_BEEP] gcode: {action_call_remote_method(\"paneldue_beep\", frequency=300, duration=1.0)} Amikor a PANELDUE_BEEP G-k\u00f3d makr\u00f3 v\u00e9grehajt\u00f3dik, a Klipper valami ilyesmit k\u00fcld a kapcsolaton kereszt\u00fcl: {\"action\": \"run_paneldue_beep\", \"params\": {\"frequency\": 300, \"duration\": 1.0}} objects/list \u00b6 Ez a v\u00e9gpont lek\u00e9rdezi az el\u00e9rhet\u0151 nyomtat\u00f3 objektumok list\u00e1j\u00e1t, amelyeket lek\u00e9rdezhet\u00fcnk (az \"objects/query\" v\u00e9gponton kereszt\u00fcl). P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"objects/list\"} visszat\u00e9rhet: {\"id\": 123, \"result\": {\"objects\": [\"webhooks\", \"configfile\", \"heaters\", \"gcode_move\", \"query_endstops\", \"idle_timeout\", \"toolhead\", \"extruder\"]}} objects/query \u00b6 Ez a v\u00e9gpont lehet\u0151v\u00e9 teszi a nyomtat\u00f3 objektumokb\u00f3l sz\u00e1rmaz\u00f3 inform\u00e1ci\u00f3k lek\u00e9rdez\u00e9s\u00e9t. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"objects/query\", \"params\": {\"objects\": {\"toolhead\": [\"position\"], \"webhooks\": null}}}} might return: {\"id\": 123, \"result\": {\"status\": {\"webhooks\": {\"state\": \"ready\", \"state_message\": \"Printer is ready\"}, \"toolhead\": {\"position\": [0.0, 0.0, 0.0, 0.0, 0.0]}}, \"eventtime\": 3051555.377933684}} A k\u00e9r\u00e9s \"objects\" param\u00e9ter\u00e9nek egy sz\u00f3t\u00e1rnak kell lennie, amely a lek\u00e9rdezend\u0151 nyomtat\u00f3 objektumokat tartalmazza. A kulcs a nyomtat\u00f3 objektum nev\u00e9t tartalmazza, az \u00e9rt\u00e9k pedig vagy \"null\" (az \u00f6sszes mez\u0151 lek\u00e9rdez\u00e9se), vagy a mez\u0151nevek list\u00e1ja. A v\u00e1lasz\u00fczenet tartalmaz egy \"status\" mez\u0151t, amely egy sz\u00f3t\u00e1rat tartalmaz a lek\u00e9rdezett inform\u00e1ci\u00f3kkal. A kulcs a nyomtat\u00f3 objektum nev\u00e9t tartalmazza, az \u00e9rt\u00e9k pedig a mez\u0151it tartalmaz\u00f3 sz\u00f3t\u00e1r. A v\u00e1lasz\u00fczenet tartalmaz egy \"eventtime\" mez\u0151t is, amely a lek\u00e9rdez\u00e9s id\u0151pontj\u00e1nak id\u0151b\u00e9lyeg\u00e9t tartalmazza. A rendelkez\u00e9sre \u00e1ll\u00f3 mez\u0151k a \u00c1llapothivatkoz\u00e1s dokumentumban vannak dokument\u00e1lva. objects/subscribe \u00b6 Ez a v\u00e9gpont lehet\u0151v\u00e9 teszi a nyomtat\u00f3 objektumokb\u00f3l sz\u00e1rmaz\u00f3 inform\u00e1ci\u00f3k lek\u00e9rdez\u00e9s\u00e9t, majd el\u0151jegyz\u00e9s\u00e9t. A v\u00e9gpont k\u00e9r\u00e9se \u00e9s v\u00e1lasza megegyezik a \"objects/query\" v\u00e9gponttal. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"objects/subscribe\", \"params\": {\"objects\":{\"toolhead\": [\"position\"], \"webhooks\": [\"state\"]}, \"response_template\":{}}} might return: {\"id\": 123, \"result\": {\"status\": {\"webhooks\": {\"state\": \"ready\"}, \"toolhead\": {\"position\": [0.0, 0.0, 0.0, 0.0, 0.0]}}, \"eventtime\": 3052153.382083195}} \u00e9s az ezt k\u00f6vet\u0151 aszinkron \u00fczeneteket eredm\u00e9nyez, mint p\u00e9ld\u00e1ul: {\"params\": {\"status\": {\"webhooks\": {\"state\": \"shutdown\"}}, \"eventtime\": 3052165.418815847}} gcode/help \u00b6 Ez a v\u00e9gpont lehet\u0151v\u00e9 teszi a rendelkez\u00e9sre \u00e1ll\u00f3 G-k\u00f3d parancsok lek\u00e9rdez\u00e9s\u00e9t, amelyekhez s\u00fag\u00f3sz\u00f6veg van defini\u00e1lva. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"gcode/help\"} visszat\u00e9rhet: {\"id\": 123, \"result\": {\"RESTORE_GCODE_STATE\": \"Egy kor\u00e1bban elmentett G-k\u00f3d \u00e1llapot vissza\u00e1ll\u00edt\u00e1sa\", \"PID_CALIBRATE\": \"PID kalibr\u00e1ci\u00f3s teszt futtat\u00e1sa\", \"QUERY_ADC\": \"Egy anal\u00f3g t\u0171 utols\u00f3 \u00e9rt\u00e9k\u00e9nek jelent\u00e9se\", ...}} gcode/script \u00b6 Ez a v\u00e9gpont lehet\u0151v\u00e9 teszi egy sor G-k\u00f3d parancs futtat\u00e1s\u00e1t. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"gcode/script\", \"params\": {\"script\": \"G90\"}}} Ha a megadott G-k\u00f3d szkript hib\u00e1t okoz, akkor a rendszer hibav\u00e1laszt gener\u00e1l. Ha azonban a G-k\u00f3d parancs termin\u00e1l kimenetet eredm\u00e9nyez, a termin\u00e1l kimenete nem szerepel a v\u00e1laszban. (A \"gcode/subscribe_output\" v\u00e9gpontot haszn\u00e1ld a G-k\u00f3d termin\u00e1lkimenethez.) Ha a k\u00e9r\u00e9s be\u00e9rkez\u00e9sekor \u00e9ppen egy G-k\u00f3d parancsot dolgoznak fel, akkor a megadott szkript sorba ker\u00fcl. Ez a k\u00e9sedelem jelent\u0151s lehet (pl. ha egy G-k\u00f3dos h\u0151m\u00e9rs\u00e9kleti v\u00e1rakoz\u00e1s parancs fut). A JSON v\u00e1lasz\u00fczenet akkor ker\u00fcl elk\u00fcld\u00e9sre, amikor a parancsf\u00e1jl feldolgoz\u00e1sa teljesen befejez\u0151d\u00f6tt. gcode/restart \u00b6 Ez a v\u00e9gpont lehet\u0151v\u00e9 teszi az \u00fajraind\u00edt\u00e1s k\u00e9r\u00e9s\u00e9t, hasonl\u00f3an a G-k\u00f3d \"RESTART\" parancs futtat\u00e1s\u00e1hoz. P\u00e9ld\u00e1ul: {\"id\": } <x id=\"123, \"method\": \"gcode/restart\"}` A \"gcode/script\" v\u00e9gponthoz hasonl\u00f3an ez a v\u00e9gpont is csak a f\u00fcgg\u0151ben l\u00e9v\u0151 G-k\u00f3d parancsok befejez\u00e9se ut\u00e1n fejez\u0151dik be. gcode/firmware_restart \u00b6 Ez hasonl\u00f3 a \"gcode/restart\" v\u00e9gponthoz. A G-k\u00f3d \"FIRMWARE_RESTART\" parancsot val\u00f3s\u00edtja meg. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"gcode/firmware_restart\"} A \"gcode/script\" v\u00e9gponthoz hasonl\u00f3an ez a v\u00e9gpont is csak a f\u00fcgg\u0151ben l\u00e9v\u0151 G-k\u00f3d parancsok befejez\u00e9se ut\u00e1n fejez\u0151dik be. gcode/subscribe_output \u00b6 Ez a v\u00e9gpont a Klipper \u00e1ltal gener\u00e1lt G-k\u00f3dos termin\u00e1l\u00fczenetekre val\u00f3 feliratkoz\u00e1sra szolg\u00e1l. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"gcode/subscribe_output\", \"params\": {\"response_template\":{}}}} k\u00e9s\u0151bb olyan aszinkron \u00fczeneteket eredm\u00e9nyezhet, mint p\u00e9ld\u00e1ul: {\"params\": {\"response\": \"// Klipper state: Shutdown\"}} Ez a v\u00e9gpont az emberi interakci\u00f3t hivatott t\u00e1mogatni egy \"termin\u00e1lablak\" interf\u00e9szen kereszt\u00fcl. A G-k\u00f3d termin\u00e1l kimenet\u00e9b\u0151l sz\u00e1rmaz\u00f3 tartalom elemz\u00e9se nem javasolt. A Klipper \u00e1llapot\u00e1nak friss\u00edt\u00e9s\u00e9hez haszn\u00e1ld az \"objects/subscribe\" v\u00e9gpontot. motion_report/dump_stepper \u00b6 Ez a v\u00e9gpont a Klipper bels\u0151 l\u00e9ptet\u0151 queue_step parancsfolyamra val\u00f3 feliratkoz\u00e1sra szolg\u00e1l egy l\u00e9ptet\u0151 sz\u00e1m\u00e1ra. Ezeknek az alacsony szint\u0171 mozg\u00e1sfriss\u00edt\u00e9seknek a lek\u00e9r\u00e9se hasznos lehet diagnosztikai \u00e9s hibakeres\u00e9si c\u00e9lokra. Ennek a v\u00e9gpontnak a haszn\u00e1lata n\u00f6velheti a Klipper rendszer terhel\u00e9s\u00e9t. Egy k\u00e9r\u00e9s \u00edgy n\u00e9zhet ki: {\"id\": 123, \"method\":\"motion_report/dump_stepper\", \"params\": {\"name\": \"stepper_x\", \"response_template\": {}}} \u00e9s esetleg visszat\u00e9r: {\"id\": 123, \"result\": {\"header\": }}} , \u00e9s k\u00e9s\u0151bb aszinkron \u00fczeneteket produk\u00e1lhat, mint p\u00e9ld\u00e1ul: [\"intervallum\", \"count\", \"add\"]}} : }` A kezdeti lek\u00e9rdez\u00e9si v\u00e1lasz \"header\" mez\u0151je a k\u00e9s\u0151bbi \"data\" v\u00e1laszokban tal\u00e1lhat\u00f3 mez\u0151k le\u00edr\u00e1s\u00e1ra szolg\u00e1l. motion_report/dump_trapq \u00b6 Ezt a v\u00e9gpontot a Klipper bels\u0151 \"trap\u00e9zmozg\u00e1s v\u00e1r\u00f3list\u00e1ra\" val\u00f3 feliratkoz\u00e1sra haszn\u00e1lj\u00e1k. Ezeknek az alacsony szint\u0171 mozg\u00e1sfriss\u00edt\u00e9seknek a lek\u00e9r\u00e9se hasznos lehet diagnosztikai \u00e9s hibakeres\u00e9si c\u00e9lokra. Ennek a v\u00e9gpontnak a haszn\u00e1lata n\u00f6velheti a Klipper rendszer terhel\u00e9s\u00e9t. Egy k\u00e9r\u00e9s \u00edgy n\u00e9zhet ki: {\"id\": 123, \"method\": \"motion_report/dump_trapq\", \"params\": {\"name\": \"toolhead\", \"response_template\":{}}} \u00e9s esetleg visszat\u00e9r: {\"id\": 1, \"result\": {\"header\": [\"time\", \"duration\", \"start_velocity\", \"acceleration\", \"start_position\", \"direction\"]}}} \u00e9s k\u00e9s\u0151bb aszinkron \u00fczeneteket produk\u00e1lhat, mint p\u00e9ld\u00e1ul: {\"params\": {\"data\": [[4.05, 1.0, 0.0, 0.0, 0.0, [300.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0]], [5.054, 0.001, 0.0, 3000.0, [300.0, 0.0, 0.0, 0.0], [-1.0, 0.0, 0.0, 0.0]]}} A kezdeti lek\u00e9rdez\u00e9si v\u00e1lasz \"header\" mez\u0151je a k\u00e9s\u0151bbi \"data\" v\u00e1laszokban tal\u00e1lhat\u00f3 mez\u0151k le\u00edr\u00e1s\u00e1ra szolg\u00e1l. adxl345/dump_adxl345 \u00b6 Ez a v\u00e9gpont az ADXL345 gyorsul\u00e1sm\u00e9r\u0151 adataira val\u00f3 feliratkoz\u00e1sra szolg\u00e1l. Ezeknek az alacsony szint\u0171 mozg\u00e1sfriss\u00edt\u00e9seknek a lek\u00e9r\u00e9se hasznos lehet diagnosztikai \u00e9s hibakeres\u00e9si c\u00e9lokra. Ennek a v\u00e9gpontnak a haszn\u00e1lata n\u00f6velheti a Klipper rendszer terhel\u00e9s\u00e9t. Egy k\u00e9r\u00e9s \u00edgy n\u00e9zhet ki: {\"id\": 123, \"method\":\"adxl345/dump_adxl345\", \"params\": {\"sensor\": \"adxl345\", \"response_template\": {}}} \u00e9s esetleg visszat\u00e9r: {\"id\": 123,\"result\":{\"header\":[\"time\",\"x_acceleration\",\"y_acceleration\", \"z_acceleration\"]}}} \u00e9s k\u00e9s\u0151bb olyan aszinkron \u00fczeneteket produk\u00e1lhat, mint p\u00e9ld\u00e1ul: {\"params\":{\"overflows\":0,\"data\":[[3292.432935,-535.44309,-1529.8374,9561.4], [3292.433256,-382.45935,-1606.32927,9561.48375]]}} A kezdeti lek\u00e9rdez\u00e9si v\u00e1lasz \"header\" mez\u0151je a k\u00e9s\u0151bbi \"data\" v\u00e1laszokban tal\u00e1lhat\u00f3 mez\u0151k le\u00edr\u00e1s\u00e1ra szolg\u00e1l. angle/dump_angle \u00b6 Ez a v\u00e9gpont a sz\u00f6g\u00e9rz\u00e9kel\u0151 adatainak feliratkoz\u00e1s\u00e1ra szolg\u00e1l. Ezeknek az alacsony szint\u0171 mozg\u00e1sfriss\u00edt\u00e9seknek a lek\u00e9r\u00e9se hasznos lehet diagnosztikai \u00e9s hibakeres\u00e9si c\u00e9lokra. Ennek a v\u00e9gpontnak a haszn\u00e1lata n\u00f6velheti a Klipper rendszer terhel\u00e9s\u00e9t. Egy k\u00e9r\u00e9s \u00edgy n\u00e9zhet ki: {\"id\": 123, \"method\":\"angle/dump_angle\", \"params\": {\"sensor\": \"my_angle_sensor\", \"response_template\": {}}} \u00e9s esetleg visszat\u00e9r: {\"id\": 123,\"result\":{\"header\":[\"time\",\"angle\"]}}} \u00e9s k\u00e9s\u0151bb olyan aszinkron \u00fczeneteket produk\u00e1lhat, mint p\u00e9ld\u00e1ul: {\"params\":{\"position_offset\":3.151562,\"errors\":0, \"data\":[[1290.951905,-5063],[1290.952321,-5065]]}} A kezdeti lek\u00e9rdez\u00e9si v\u00e1lasz \"header\" mez\u0151je a k\u00e9s\u0151bbi \"data\" v\u00e1laszokban tal\u00e1lhat\u00f3 mez\u0151k le\u00edr\u00e1s\u00e1ra szolg\u00e1l. pause_resume/cancel \u00b6 Ez a v\u00e9gpont hasonl\u00f3 a \"PRINT_CANCEL\" G-k\u00f3d parancs futtat\u00e1s\u00e1hoz. P\u00e9ld\u00e1ul: {\"id\": } A \"gcode/script\" v\u00e9gponthoz hasonl\u00f3an ez a v\u00e9gpont is csak a f\u00fcgg\u0151ben l\u00e9v\u0151 G-k\u00f3d parancsok befejez\u00e9se ut\u00e1n fejez\u0151dik be. pause_resume/pause \u00b6 Ez a v\u00e9gpont hasonl\u00f3 a \"PAUSE\" G-k\u00f3d parancs futtat\u00e1s\u00e1hoz. P\u00e9ld\u00e1ul: {\"id\": } A \"gcode/script\" v\u00e9gponthoz hasonl\u00f3an ez a v\u00e9gpont is csak a f\u00fcgg\u0151ben l\u00e9v\u0151 G-k\u00f3d parancsok befejez\u00e9se ut\u00e1n fejez\u0151dik be. pause_resume/resume \u00b6 Ez a v\u00e9gpont hasonl\u00f3 a \"RESUME\" G-k\u00f3d parancs futtat\u00e1s\u00e1hoz. P\u00e9ld\u00e1ul: {\"id\": } A \"gcode/script\" v\u00e9gponthoz hasonl\u00f3an ez a v\u00e9gpont is csak a f\u00fcgg\u0151ben l\u00e9v\u0151 G-k\u00f3d parancsok befejez\u00e9se ut\u00e1n fejez\u0151dik be. query_endstops/status \u00b6 Ez a v\u00e9gpont lek\u00e9rdezi az akt\u00edv v\u00e9gpontokat \u00e9s visszaadja azok \u00e1llapot\u00e1t. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"query_endstops/status\"} visszat\u00e9rhet: {\"id\": 123, \"result\": {\"y\": \"open\", \"x\": \"open\", \"z\": \"TRIGGERED\"}} A \"gcode/script\" v\u00e9gponthoz hasonl\u00f3an ez a v\u00e9gpont is csak a f\u00fcgg\u0151ben l\u00e9v\u0151 G-k\u00f3d parancsok befejez\u00e9se ut\u00e1n fejez\u0151dik be.","title":"API szerver"},{"location":"API_Server.html#api-szerver","text":"Ez a dokumentum le\u00edrja a Klipper Alkalmaz\u00e1s Programoz\u00f3i Interf\u00e9szt (API). Ez az interf\u00e9sz lehet\u0151v\u00e9 teszi k\u00fcls\u0151 alkalmaz\u00e1sok sz\u00e1m\u00e1ra a Klipper gazdaszoftver lek\u00e9rdez\u00e9s\u00e9t \u00e9s vez\u00e9rl\u00e9s\u00e9t.","title":"API szerver"},{"location":"API_Server.html#az-api-foglalat-engedelyezese","text":"Az API-kiszolg\u00e1l\u00f3 haszn\u00e1lat\u00e1hoz a klippy.py host szoftvert a -a param\u00e9terrel kell elind\u00edtani. P\u00e9ld\u00e1ul: ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer.cfg -a /tmp/klippy_uds -l /tmp/klippy.log Ennek hat\u00e1s\u00e1ra a gazdaszoftver l\u00e9trehoz egy Unix Domain Socketet. Az \u00fcgyf\u00e9l ezut\u00e1n kapcsolatot nyithat ezen kereszt\u00fcl, \u00e9s parancsokat k\u00fcldhet a Klippernek. L\u00e1sd a Moonraker projektet egy n\u00e9pszer\u0171 eszk\u00f6z\u00e9rt, amely k\u00e9pes tov\u00e1bb\u00edtani a HTTP-k\u00e9r\u00e9seket a Klipper's API Server Unix Domain Socket-hez.","title":"Az API foglalat enged\u00e9lyez\u00e9se"},{"location":"API_Server.html#kerelem-formatuma","text":"A socket-en k\u00fcld\u00f6tt \u00e9s fogadott \u00fczenetek JSON k\u00f3dol\u00e1s\u00fa karakterl\u00e1ncok, amelyeket egy ASCII 0x03 karakter z\u00e1r le: <json_object_1><0x03><json_object_2><0x03>... A Klipper tartalmaz egy scripts/whconsole.py eszk\u00f6zt, amely k\u00e9pes a fenti \u00fczenetkeretez\u00e9st elv\u00e9gezni. P\u00e9ld\u00e1ul: ~/klipper/scripts/whconsole.py /tmp/klippy_uds Ez az eszk\u00f6z k\u00e9pes beolvasni egy sor JSON parancsot az stdin-b\u0151l, elk\u00fcldeni \u0151ket a Klippernek, \u00e9s jelenteni az eredm\u00e9nyeket. Az eszk\u00f6z elv\u00e1rja, hogy minden JSON parancs egyetlen sorban legyen, \u00e9s a k\u00e9r\u00e9s elk\u00fcld\u00e9sekor automatikusan hozz\u00e1adja a 0x03 v\u00e9grehajt\u00f3t. (A Klipper API szervernek nincs \u00faj sor k\u00f6vetelm\u00e9nye.)","title":"K\u00e9relem form\u00e1tuma"},{"location":"API_Server.html#api-protokoll","text":"A kommunik\u00e1ci\u00f3s foglalat \u00e1ltal haszn\u00e1lt parancsprotokollt a json-rpc ihlette. Egy k\u00e9r\u00e9s \u00edgy n\u00e9zhet ki: {\"id\": 123, \"method\": \"info\", \"params\": {}} \u00e9s a v\u00e1lasz \u00edgy n\u00e9zhet ki: {\"id\": 123, \"result\": {\"state_message\": \"Printer is ready\", \"klipper_path\": \"/home/pi/klipper\", \"config_file\": \"/home/pi/printer.cfg\", \"software_version\": \"v0.8.0-823-g883b1cb6\", \"hostname\": \"octopi\", \"cpu_info\": \"4 core ARMv7 Processor rev 4 (v7l)\", \"state\": \"ready\", \"python_path\": \"/home/pi/klippy-env/bin/python\", \"log_file\": \"/tmp/klippy.log\"}} Minden egyes k\u00e9r\u00e9snek egy JSON sz\u00f3t\u00e1rnak kell lennie. (Ez a dokumentum a Pythonban a \"sz\u00f3t\u00e1r\" kifejez\u00e9st haszn\u00e1lja a \"JSON objektum\" - a </x>{} -ban tal\u00e1lhat\u00f3 kulcs/\u00e9rt\u00e9k p\u00e1rok lek\u00e9pez\u00e9se, le\u00edr\u00e1s\u00e1ra.) A k\u00e9r\u00e9si sz\u00f3t\u00e1rnak tartalmaznia kell egy \"method\" param\u00e9tert, amely egy el\u00e9rhet\u0151 Klipper \"v\u00e9gpont\" h\u00far neve. A k\u00e9r\u00e9si sz\u00f3t\u00e1r tartalmazhat egy \"params\" param\u00e9tert, amelynek sz\u00f3t\u00e1r t\u00edpus\u00fanak kell lennie. A \"params\" tov\u00e1bbi param\u00e9terinform\u00e1ci\u00f3kat biztos\u00edt a k\u00e9r\u00e9st kezel\u0151 Klipper \"v\u00e9gpont\" sz\u00e1m\u00e1ra. Tartalma a \"v\u00e9gpontra\" jellemz\u0151. A k\u00e9r\u00e9si sz\u00f3t\u00e1r tartalmazhat egy \"id\" param\u00e9tert, amely b\u00e1rmilyen JSON t\u00edpus\u00fa lehet. Ha az \"id\" param\u00e9ter jelen van, akkor a Klipper egy v\u00e1lasz\u00fczenettel v\u00e1laszol a k\u00e9r\u00e9sre, amely tartalmazza ezt az \"id\" param\u00e9tert. Ha az \"id\" nincs megadva (vagy egy JSON \"null\" \u00e9rt\u00e9kre van be\u00e1ll\u00edtva), akkor a Klipper nem ad v\u00e1laszt a k\u00e9r\u00e9sre. A v\u00e1lasz\u00fczenet egy JSON sz\u00f3t\u00e1r, amely tartalmazza az \"id\" \u00e9s az \"eredm\u00e9ny\" \u00e9rt\u00e9keket. A \"result\" mindig egy sz\u00f3t\u00e1r melynek tartalma a k\u00e9r\u00e9st kezel\u0151 \"v\u00e9gpontra\" jellemz\u0151. Ha egy k\u00e9r\u00e9s feldolgoz\u00e1sa hib\u00e1t eredm\u00e9nyez, akkor a v\u00e1lasz\u00fczenet egy \"hiba\" mez\u0151t fog tartalmazni az \"eredm\u00e9ny\" mez\u0151 helyett. P\u00e9ld\u00e1ul a k\u00e9r\u00e9s: {\"id\": 123, \"method\": \"gcode/script\", \"params\": {\"script\": \"G1 X200\"}}} egy olyan hib\u00e1s v\u00e1laszt eredm\u00e9nyezhet, mint p\u00e9ld\u00e1ul: {\"id\": 123, \"error\": {\"message\": \"Must home axis first: 200.000 0.000 0.000 0.000 [0.000]\", \"error\": \"WebRequestError\"}} A Klipper mindig a be\u00e9rkez\u00e9s\u00fck sorrendj\u00e9ben kezdi meg a k\u00e9r\u00e9sek feldolgoz\u00e1s\u00e1t. El\u0151fordulhat azonban, hogy egyes k\u00e9r\u00e9sek nem fejez\u0151dnek be azonnal, ami azt eredm\u00e9nyezheti, hogy a kapcsol\u00f3d\u00f3 v\u00e1lasz m\u00e1s k\u00e9r\u00e9sek v\u00e1laszaihoz k\u00e9pest nem a megfelel\u0151 sorrendben ker\u00fcl elk\u00fcld\u00e9sre. Egy JSON-k\u00e9r\u00e9s soha nem fogja sz\u00fcneteltetni a j\u00f6v\u0151beli JSON-k\u00e9r\u00e9sek feldolgoz\u00e1s\u00e1t.","title":"API Protokoll"},{"location":"API_Server.html#feliratkozasok","text":"N\u00e9h\u00e1ny Klipper \"v\u00e9gpont\" k\u00e9r\u00e9s lehet\u0151v\u00e9 teszi a \"feliratkoz\u00e1st\" a j\u00f6v\u0151beli aszinkron friss\u00edt\u00e9si \u00fczenetekre. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"gcode/subscribe_output\", \"params\": {\"response_template\":{\"key\": 345}}} kezdetben v\u00e1laszolhat: {\"id\": 123, \"result\": {}} \u00e9s a Klipper a k\u00f6vetkez\u0151h\u00f6z hasonl\u00f3 \u00fczeneteket fog k\u00fcldeni a j\u00f6v\u0151ben: {\"params\": {\"response\": \"ok B:22.8 /0.0 T0:22.4 /0.0\"}, \"key\": 345} Az el\u0151fizet\u00e9si k\u00e9r\u00e9s elfogad egy \"response_template\" sz\u00f3t\u00e1rat a k\u00e9r\u00e9s \"params\" mez\u0151j\u00e9ben. Ez a \"response_template\" sz\u00f3t\u00e1r sablonk\u00e9nt szolg\u00e1l a j\u00f6v\u0151beli aszinkron \u00fczenetekhez. Tetsz\u0151leges kulcs/\u00e9rt\u00e9k p\u00e1rokat tartalmazhat. Ezen j\u00f6v\u0151beli aszinkron \u00fczenetek k\u00fcld\u00e9sekor a Klipper hozz\u00e1ad egy \"params\" mez\u0151t, amely egy \"endpoint\" specifikus tartalm\u00fa sz\u00f3t\u00e1rat tartalmaz a v\u00e1laszsablonnak, majd elk\u00fcldi ezt a sablont. Ha nem adunk meg egy \"response_template\" mez\u0151t, akkor az alap\u00e9rtelmez\u00e9s szerint egy \u00fcres sz\u00f3t\u00e1r lesz ( {} ).","title":"Feliratkoz\u00e1sok"},{"location":"API_Server.html#elerheto-vegpontok","text":"A Klipper \"v\u00e9gpontok\" a konvenci\u00f3 szerint a <module_name>/<some_name> form\u00e1j\u00faak. Ha egy \"v\u00e9gponthoz\" int\u00e9z\u00fcnk k\u00e9r\u00e9st, a teljes nevet a k\u00e9r\u00e9si sz\u00f3t\u00e1r \"method\" param\u00e9ter\u00e9ben kell megadni (pl. {\"method\"=\"gcode/restart\"} ).","title":"El\u00e9rhet\u0151 \"v\u00e9gpontok\""},{"location":"API_Server.html#info","text":"Az \"info\" v\u00e9gpontot a Klipper rendszert \u00e9s verzi\u00f3inform\u00e1ci\u00f3inak lek\u00e9rdez\u00e9s\u00e9re haszn\u00e1ljuk. Arra is szolg\u00e1l, hogy a kliens verzi\u00f3t a Klipper sz\u00e1m\u00e1ra megadd. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"info\", \"params\": { \"client_info\": { \"version\": \"v1\"}}}} Ha jelen van a \"client_info\" param\u00e9ter egy sz\u00f3t\u00e1rnak kell lennie, de a sz\u00f3t\u00e1r tetsz\u0151leges tartalm\u00fa lehet. A felhaszn\u00e1l\u00f3knak aj\u00e1nlott megadniuk az \u00fcgyf\u00e9l nev\u00e9t \u00e9s a szoftver verzi\u00f3j\u00e1t, amikor el\u0151sz\u00f6r csatlakoznak a Klipper API kiszolg\u00e1l\u00f3hoz.","title":"inf\u00f3"},{"location":"API_Server.html#emergency_stop","text":"Az \"emergency_stop\" v\u00e9gpont arra szolg\u00e1l, hogy utas\u00edtsa a Klippert a \"shutdown\" \u00e1llapotba val\u00f3 \u00e1tmenetre. Hasonl\u00f3an viselkedik, mint a G-k\u00f3d M112 parancs. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"emergency_stop\"}","title":"emergency_stop"},{"location":"API_Server.html#register_remote_method","text":"Ez a v\u00e9gpont lehet\u0151v\u00e9 teszi az \u00fcgyfelek sz\u00e1m\u00e1ra, hogy regisztr\u00e1lj\u00e1k a klipperb\u0151l h\u00edvhat\u00f3 met\u00f3dusokat. Siker eset\u00e9n egy \u00fcres objektumot ad vissza. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"register_remote_method\", \"params\": {\"response_template\": {\"action\": \"run_paneldue_beep\"}, \"remote_method\": \"paneldue_beep\"}}} fog visszat\u00e9rni: {\"id\": 123, \"result\": {}} A t\u00e1voli paneldue_beep met\u00f3dus mostant\u00f3l h\u00edvhat\u00f3 a Klipperb\u0151l. Vegy\u00fck figyelembe, hogy ha a met\u00f3dus param\u00e9tereket vesz fel, akkor azokat kulcsszavas argumentumk\u00e9nt kell megadni. Az al\u00e1bbiakban egy p\u00e9lda l\u00e1that\u00f3 arra, hogyan h\u00edvhat\u00f3 meg egy gcode_macro-b\u00f3l: [gcode_macro PANELDUE_BEEP] gcode: {action_call_remote_method(\"paneldue_beep\", frequency=300, duration=1.0)} Amikor a PANELDUE_BEEP G-k\u00f3d makr\u00f3 v\u00e9grehajt\u00f3dik, a Klipper valami ilyesmit k\u00fcld a kapcsolaton kereszt\u00fcl: {\"action\": \"run_paneldue_beep\", \"params\": {\"frequency\": 300, \"duration\": 1.0}}","title":"register_remote_method"},{"location":"API_Server.html#objectslist","text":"Ez a v\u00e9gpont lek\u00e9rdezi az el\u00e9rhet\u0151 nyomtat\u00f3 objektumok list\u00e1j\u00e1t, amelyeket lek\u00e9rdezhet\u00fcnk (az \"objects/query\" v\u00e9gponton kereszt\u00fcl). P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"objects/list\"} visszat\u00e9rhet: {\"id\": 123, \"result\": {\"objects\": [\"webhooks\", \"configfile\", \"heaters\", \"gcode_move\", \"query_endstops\", \"idle_timeout\", \"toolhead\", \"extruder\"]}}","title":"objects/list"},{"location":"API_Server.html#objectsquery","text":"Ez a v\u00e9gpont lehet\u0151v\u00e9 teszi a nyomtat\u00f3 objektumokb\u00f3l sz\u00e1rmaz\u00f3 inform\u00e1ci\u00f3k lek\u00e9rdez\u00e9s\u00e9t. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"objects/query\", \"params\": {\"objects\": {\"toolhead\": [\"position\"], \"webhooks\": null}}}} might return: {\"id\": 123, \"result\": {\"status\": {\"webhooks\": {\"state\": \"ready\", \"state_message\": \"Printer is ready\"}, \"toolhead\": {\"position\": [0.0, 0.0, 0.0, 0.0, 0.0]}}, \"eventtime\": 3051555.377933684}} A k\u00e9r\u00e9s \"objects\" param\u00e9ter\u00e9nek egy sz\u00f3t\u00e1rnak kell lennie, amely a lek\u00e9rdezend\u0151 nyomtat\u00f3 objektumokat tartalmazza. A kulcs a nyomtat\u00f3 objektum nev\u00e9t tartalmazza, az \u00e9rt\u00e9k pedig vagy \"null\" (az \u00f6sszes mez\u0151 lek\u00e9rdez\u00e9se), vagy a mez\u0151nevek list\u00e1ja. A v\u00e1lasz\u00fczenet tartalmaz egy \"status\" mez\u0151t, amely egy sz\u00f3t\u00e1rat tartalmaz a lek\u00e9rdezett inform\u00e1ci\u00f3kkal. A kulcs a nyomtat\u00f3 objektum nev\u00e9t tartalmazza, az \u00e9rt\u00e9k pedig a mez\u0151it tartalmaz\u00f3 sz\u00f3t\u00e1r. A v\u00e1lasz\u00fczenet tartalmaz egy \"eventtime\" mez\u0151t is, amely a lek\u00e9rdez\u00e9s id\u0151pontj\u00e1nak id\u0151b\u00e9lyeg\u00e9t tartalmazza. A rendelkez\u00e9sre \u00e1ll\u00f3 mez\u0151k a \u00c1llapothivatkoz\u00e1s dokumentumban vannak dokument\u00e1lva.","title":"objects/query"},{"location":"API_Server.html#objectssubscribe","text":"Ez a v\u00e9gpont lehet\u0151v\u00e9 teszi a nyomtat\u00f3 objektumokb\u00f3l sz\u00e1rmaz\u00f3 inform\u00e1ci\u00f3k lek\u00e9rdez\u00e9s\u00e9t, majd el\u0151jegyz\u00e9s\u00e9t. A v\u00e9gpont k\u00e9r\u00e9se \u00e9s v\u00e1lasza megegyezik a \"objects/query\" v\u00e9gponttal. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"objects/subscribe\", \"params\": {\"objects\":{\"toolhead\": [\"position\"], \"webhooks\": [\"state\"]}, \"response_template\":{}}} might return: {\"id\": 123, \"result\": {\"status\": {\"webhooks\": {\"state\": \"ready\"}, \"toolhead\": {\"position\": [0.0, 0.0, 0.0, 0.0, 0.0]}}, \"eventtime\": 3052153.382083195}} \u00e9s az ezt k\u00f6vet\u0151 aszinkron \u00fczeneteket eredm\u00e9nyez, mint p\u00e9ld\u00e1ul: {\"params\": {\"status\": {\"webhooks\": {\"state\": \"shutdown\"}}, \"eventtime\": 3052165.418815847}}","title":"objects/subscribe"},{"location":"API_Server.html#gcodehelp","text":"Ez a v\u00e9gpont lehet\u0151v\u00e9 teszi a rendelkez\u00e9sre \u00e1ll\u00f3 G-k\u00f3d parancsok lek\u00e9rdez\u00e9s\u00e9t, amelyekhez s\u00fag\u00f3sz\u00f6veg van defini\u00e1lva. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"gcode/help\"} visszat\u00e9rhet: {\"id\": 123, \"result\": {\"RESTORE_GCODE_STATE\": \"Egy kor\u00e1bban elmentett G-k\u00f3d \u00e1llapot vissza\u00e1ll\u00edt\u00e1sa\", \"PID_CALIBRATE\": \"PID kalibr\u00e1ci\u00f3s teszt futtat\u00e1sa\", \"QUERY_ADC\": \"Egy anal\u00f3g t\u0171 utols\u00f3 \u00e9rt\u00e9k\u00e9nek jelent\u00e9se\", ...}}","title":"gcode/help"},{"location":"API_Server.html#gcodescript","text":"Ez a v\u00e9gpont lehet\u0151v\u00e9 teszi egy sor G-k\u00f3d parancs futtat\u00e1s\u00e1t. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"gcode/script\", \"params\": {\"script\": \"G90\"}}} Ha a megadott G-k\u00f3d szkript hib\u00e1t okoz, akkor a rendszer hibav\u00e1laszt gener\u00e1l. Ha azonban a G-k\u00f3d parancs termin\u00e1l kimenetet eredm\u00e9nyez, a termin\u00e1l kimenete nem szerepel a v\u00e1laszban. (A \"gcode/subscribe_output\" v\u00e9gpontot haszn\u00e1ld a G-k\u00f3d termin\u00e1lkimenethez.) Ha a k\u00e9r\u00e9s be\u00e9rkez\u00e9sekor \u00e9ppen egy G-k\u00f3d parancsot dolgoznak fel, akkor a megadott szkript sorba ker\u00fcl. Ez a k\u00e9sedelem jelent\u0151s lehet (pl. ha egy G-k\u00f3dos h\u0151m\u00e9rs\u00e9kleti v\u00e1rakoz\u00e1s parancs fut). A JSON v\u00e1lasz\u00fczenet akkor ker\u00fcl elk\u00fcld\u00e9sre, amikor a parancsf\u00e1jl feldolgoz\u00e1sa teljesen befejez\u0151d\u00f6tt.","title":"gcode/script"},{"location":"API_Server.html#gcoderestart","text":"Ez a v\u00e9gpont lehet\u0151v\u00e9 teszi az \u00fajraind\u00edt\u00e1s k\u00e9r\u00e9s\u00e9t, hasonl\u00f3an a G-k\u00f3d \"RESTART\" parancs futtat\u00e1s\u00e1hoz. P\u00e9ld\u00e1ul: {\"id\": } <x id=\"123, \"method\": \"gcode/restart\"}` A \"gcode/script\" v\u00e9gponthoz hasonl\u00f3an ez a v\u00e9gpont is csak a f\u00fcgg\u0151ben l\u00e9v\u0151 G-k\u00f3d parancsok befejez\u00e9se ut\u00e1n fejez\u0151dik be.","title":"gcode/restart"},{"location":"API_Server.html#gcodefirmware_restart","text":"Ez hasonl\u00f3 a \"gcode/restart\" v\u00e9gponthoz. A G-k\u00f3d \"FIRMWARE_RESTART\" parancsot val\u00f3s\u00edtja meg. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"gcode/firmware_restart\"} A \"gcode/script\" v\u00e9gponthoz hasonl\u00f3an ez a v\u00e9gpont is csak a f\u00fcgg\u0151ben l\u00e9v\u0151 G-k\u00f3d parancsok befejez\u00e9se ut\u00e1n fejez\u0151dik be.","title":"gcode/firmware_restart"},{"location":"API_Server.html#gcodesubscribe_output","text":"Ez a v\u00e9gpont a Klipper \u00e1ltal gener\u00e1lt G-k\u00f3dos termin\u00e1l\u00fczenetekre val\u00f3 feliratkoz\u00e1sra szolg\u00e1l. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"gcode/subscribe_output\", \"params\": {\"response_template\":{}}}} k\u00e9s\u0151bb olyan aszinkron \u00fczeneteket eredm\u00e9nyezhet, mint p\u00e9ld\u00e1ul: {\"params\": {\"response\": \"// Klipper state: Shutdown\"}} Ez a v\u00e9gpont az emberi interakci\u00f3t hivatott t\u00e1mogatni egy \"termin\u00e1lablak\" interf\u00e9szen kereszt\u00fcl. A G-k\u00f3d termin\u00e1l kimenet\u00e9b\u0151l sz\u00e1rmaz\u00f3 tartalom elemz\u00e9se nem javasolt. A Klipper \u00e1llapot\u00e1nak friss\u00edt\u00e9s\u00e9hez haszn\u00e1ld az \"objects/subscribe\" v\u00e9gpontot.","title":"gcode/subscribe_output"},{"location":"API_Server.html#motion_reportdump_stepper","text":"Ez a v\u00e9gpont a Klipper bels\u0151 l\u00e9ptet\u0151 queue_step parancsfolyamra val\u00f3 feliratkoz\u00e1sra szolg\u00e1l egy l\u00e9ptet\u0151 sz\u00e1m\u00e1ra. Ezeknek az alacsony szint\u0171 mozg\u00e1sfriss\u00edt\u00e9seknek a lek\u00e9r\u00e9se hasznos lehet diagnosztikai \u00e9s hibakeres\u00e9si c\u00e9lokra. Ennek a v\u00e9gpontnak a haszn\u00e1lata n\u00f6velheti a Klipper rendszer terhel\u00e9s\u00e9t. Egy k\u00e9r\u00e9s \u00edgy n\u00e9zhet ki: {\"id\": 123, \"method\":\"motion_report/dump_stepper\", \"params\": {\"name\": \"stepper_x\", \"response_template\": {}}} \u00e9s esetleg visszat\u00e9r: {\"id\": 123, \"result\": {\"header\": }}} , \u00e9s k\u00e9s\u0151bb aszinkron \u00fczeneteket produk\u00e1lhat, mint p\u00e9ld\u00e1ul: [\"intervallum\", \"count\", \"add\"]}} : }` A kezdeti lek\u00e9rdez\u00e9si v\u00e1lasz \"header\" mez\u0151je a k\u00e9s\u0151bbi \"data\" v\u00e1laszokban tal\u00e1lhat\u00f3 mez\u0151k le\u00edr\u00e1s\u00e1ra szolg\u00e1l.","title":"motion_report/dump_stepper"},{"location":"API_Server.html#motion_reportdump_trapq","text":"Ezt a v\u00e9gpontot a Klipper bels\u0151 \"trap\u00e9zmozg\u00e1s v\u00e1r\u00f3list\u00e1ra\" val\u00f3 feliratkoz\u00e1sra haszn\u00e1lj\u00e1k. Ezeknek az alacsony szint\u0171 mozg\u00e1sfriss\u00edt\u00e9seknek a lek\u00e9r\u00e9se hasznos lehet diagnosztikai \u00e9s hibakeres\u00e9si c\u00e9lokra. Ennek a v\u00e9gpontnak a haszn\u00e1lata n\u00f6velheti a Klipper rendszer terhel\u00e9s\u00e9t. Egy k\u00e9r\u00e9s \u00edgy n\u00e9zhet ki: {\"id\": 123, \"method\": \"motion_report/dump_trapq\", \"params\": {\"name\": \"toolhead\", \"response_template\":{}}} \u00e9s esetleg visszat\u00e9r: {\"id\": 1, \"result\": {\"header\": [\"time\", \"duration\", \"start_velocity\", \"acceleration\", \"start_position\", \"direction\"]}}} \u00e9s k\u00e9s\u0151bb aszinkron \u00fczeneteket produk\u00e1lhat, mint p\u00e9ld\u00e1ul: {\"params\": {\"data\": [[4.05, 1.0, 0.0, 0.0, 0.0, [300.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0]], [5.054, 0.001, 0.0, 3000.0, [300.0, 0.0, 0.0, 0.0], [-1.0, 0.0, 0.0, 0.0]]}} A kezdeti lek\u00e9rdez\u00e9si v\u00e1lasz \"header\" mez\u0151je a k\u00e9s\u0151bbi \"data\" v\u00e1laszokban tal\u00e1lhat\u00f3 mez\u0151k le\u00edr\u00e1s\u00e1ra szolg\u00e1l.","title":"motion_report/dump_trapq"},{"location":"API_Server.html#adxl345dump_adxl345","text":"Ez a v\u00e9gpont az ADXL345 gyorsul\u00e1sm\u00e9r\u0151 adataira val\u00f3 feliratkoz\u00e1sra szolg\u00e1l. Ezeknek az alacsony szint\u0171 mozg\u00e1sfriss\u00edt\u00e9seknek a lek\u00e9r\u00e9se hasznos lehet diagnosztikai \u00e9s hibakeres\u00e9si c\u00e9lokra. Ennek a v\u00e9gpontnak a haszn\u00e1lata n\u00f6velheti a Klipper rendszer terhel\u00e9s\u00e9t. Egy k\u00e9r\u00e9s \u00edgy n\u00e9zhet ki: {\"id\": 123, \"method\":\"adxl345/dump_adxl345\", \"params\": {\"sensor\": \"adxl345\", \"response_template\": {}}} \u00e9s esetleg visszat\u00e9r: {\"id\": 123,\"result\":{\"header\":[\"time\",\"x_acceleration\",\"y_acceleration\", \"z_acceleration\"]}}} \u00e9s k\u00e9s\u0151bb olyan aszinkron \u00fczeneteket produk\u00e1lhat, mint p\u00e9ld\u00e1ul: {\"params\":{\"overflows\":0,\"data\":[[3292.432935,-535.44309,-1529.8374,9561.4], [3292.433256,-382.45935,-1606.32927,9561.48375]]}} A kezdeti lek\u00e9rdez\u00e9si v\u00e1lasz \"header\" mez\u0151je a k\u00e9s\u0151bbi \"data\" v\u00e1laszokban tal\u00e1lhat\u00f3 mez\u0151k le\u00edr\u00e1s\u00e1ra szolg\u00e1l.","title":"adxl345/dump_adxl345"},{"location":"API_Server.html#angledump_angle","text":"Ez a v\u00e9gpont a sz\u00f6g\u00e9rz\u00e9kel\u0151 adatainak feliratkoz\u00e1s\u00e1ra szolg\u00e1l. Ezeknek az alacsony szint\u0171 mozg\u00e1sfriss\u00edt\u00e9seknek a lek\u00e9r\u00e9se hasznos lehet diagnosztikai \u00e9s hibakeres\u00e9si c\u00e9lokra. Ennek a v\u00e9gpontnak a haszn\u00e1lata n\u00f6velheti a Klipper rendszer terhel\u00e9s\u00e9t. Egy k\u00e9r\u00e9s \u00edgy n\u00e9zhet ki: {\"id\": 123, \"method\":\"angle/dump_angle\", \"params\": {\"sensor\": \"my_angle_sensor\", \"response_template\": {}}} \u00e9s esetleg visszat\u00e9r: {\"id\": 123,\"result\":{\"header\":[\"time\",\"angle\"]}}} \u00e9s k\u00e9s\u0151bb olyan aszinkron \u00fczeneteket produk\u00e1lhat, mint p\u00e9ld\u00e1ul: {\"params\":{\"position_offset\":3.151562,\"errors\":0, \"data\":[[1290.951905,-5063],[1290.952321,-5065]]}} A kezdeti lek\u00e9rdez\u00e9si v\u00e1lasz \"header\" mez\u0151je a k\u00e9s\u0151bbi \"data\" v\u00e1laszokban tal\u00e1lhat\u00f3 mez\u0151k le\u00edr\u00e1s\u00e1ra szolg\u00e1l.","title":"angle/dump_angle"},{"location":"API_Server.html#pause_resumecancel","text":"Ez a v\u00e9gpont hasonl\u00f3 a \"PRINT_CANCEL\" G-k\u00f3d parancs futtat\u00e1s\u00e1hoz. P\u00e9ld\u00e1ul: {\"id\": } A \"gcode/script\" v\u00e9gponthoz hasonl\u00f3an ez a v\u00e9gpont is csak a f\u00fcgg\u0151ben l\u00e9v\u0151 G-k\u00f3d parancsok befejez\u00e9se ut\u00e1n fejez\u0151dik be.","title":"pause_resume/cancel"},{"location":"API_Server.html#pause_resumepause","text":"Ez a v\u00e9gpont hasonl\u00f3 a \"PAUSE\" G-k\u00f3d parancs futtat\u00e1s\u00e1hoz. P\u00e9ld\u00e1ul: {\"id\": } A \"gcode/script\" v\u00e9gponthoz hasonl\u00f3an ez a v\u00e9gpont is csak a f\u00fcgg\u0151ben l\u00e9v\u0151 G-k\u00f3d parancsok befejez\u00e9se ut\u00e1n fejez\u0151dik be.","title":"pause_resume/pause"},{"location":"API_Server.html#pause_resumeresume","text":"Ez a v\u00e9gpont hasonl\u00f3 a \"RESUME\" G-k\u00f3d parancs futtat\u00e1s\u00e1hoz. P\u00e9ld\u00e1ul: {\"id\": } A \"gcode/script\" v\u00e9gponthoz hasonl\u00f3an ez a v\u00e9gpont is csak a f\u00fcgg\u0151ben l\u00e9v\u0151 G-k\u00f3d parancsok befejez\u00e9se ut\u00e1n fejez\u0151dik be.","title":"pause_resume/resume"},{"location":"API_Server.html#query_endstopsstatus","text":"Ez a v\u00e9gpont lek\u00e9rdezi az akt\u00edv v\u00e9gpontokat \u00e9s visszaadja azok \u00e1llapot\u00e1t. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"query_endstops/status\"} visszat\u00e9rhet: {\"id\": 123, \"result\": {\"y\": \"open\", \"x\": \"open\", \"z\": \"TRIGGERED\"}} A \"gcode/script\" v\u00e9gponthoz hasonl\u00f3an ez a v\u00e9gpont is csak a f\u00fcgg\u0151ben l\u00e9v\u0151 G-k\u00f3d parancsok befejez\u00e9se ut\u00e1n fejez\u0151dik be.","title":"query_endstops/status"},{"location":"BLTouch.html","text":"BL-Touch \u00b6 BL-Touch csatlakoztat\u00e1sa \u00b6 Egy figyelmeztet\u00e9s miel\u0151tt elkezden\u00e9: Ker\u00fclje a BL-Touch t\u0171j\u00e9nek puszta ujjal val\u00f3 \u00e9rint\u00e9s\u00e9t, mivel meglehet\u0151sen \u00e9rz\u00e9keny az zs\u00edrra. Ha pedig m\u00e9gis hozz\u00e1\u00e9r, legyen nagyon \u00f3vatos, hogy ne hajl\u00edtsa vagy nyomja meg a t\u00fcsk\u00e9t. Csatlakoztassa a BL-Touch \"servo\" csatlakoz\u00f3t a control_pin csatlakoz\u00f3hoz a BL-Touch dokument\u00e1ci\u00f3 vagy az MCU dokument\u00e1ci\u00f3ja szerint. Az eredeti k\u00e1belez\u00e9st haszn\u00e1lva a h\u00e1rmasb\u00f3l a s\u00e1rga vezet\u00e9k a control_pin \u00e9s a vezet\u00e9kp\u00e1rb\u00f3l a feh\u00e9r lesz a sensor_pin . Ezeket a t\u0171ket a k\u00e1belez\u00e9snek megfelel\u0151en kell konfigur\u00e1lnia. A legt\u00f6bb BL-Touch pullup jelet ig\u00e9nyel a t\u0171be\u00e1ll\u00edt\u00e1sn\u00e1l (ez\u00e9rt a csatlakoz\u00e1s nev\u00e9nek el\u0151tagja \"^\"). P\u00e9ld\u00e1ul: [bltouch] sensor_pin: ^P1.24 control_pin: P1.26 Ha a BL-Touch-ot a Z tengely alaphelyzetbe \u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1ljuk, akkor \u00e1ll\u00edtsuk be az endstop_pin:probe:z_virtual_endstop -ra \u00e9s t\u00e1vol\u00edtsa el a position_endstop \u00e9s a [stepper_z] -t a config szakaszban, majd adjuk hozz\u00e1 a [safe_z_home] config szakaszt a Z tengely megemel\u00e9s\u00e9hez, az X,Y tengelyek kezd\u0151pont felv\u00e9tel\u00e9re a t\u00e1rgyasztal k\u00f6zep\u00e9re val\u00f3 elmozdul\u00e1shoz \u00e9s a Z tengely kezd\u0151pont felv\u00e9tel\u00e9re. P\u00e9ld\u00e1ul: [safe_z_home] home_xy_position: 100, 100 # A koordin\u00e1t\u00e1kat a t\u00e1rgyasztal k\u00f6zep\u00e9re m\u00f3dos\u00edtjuk. speed: 50 z_hop: 10 # Mozg\u00e1s felfel\u00e9 10mm z_hop_speed: 5 Fontos, hogy a z_hop mozg\u00e1s a safe_z_home-ban el\u00e9g nagy legyen ahhoz, hogy a m\u00e9r\u0151cs\u00facs ne \u00fctk\u00f6zz\u00f6n semmibe, m\u00e9g akkor sem, ha a BL-Touch m\u00e9r\u0151t\u00fcsk\u00e9je a legalacsonyabb \u00e1ll\u00e1sban van. Kezdeti tesztek \u00b6 Miel\u0151tt tov\u00e1bbl\u00e9pne, ellen\u0151rizd, hogy a BL-Touch a megfelel\u0151 magass\u00e1gban van-e felszerelve. A m\u00e9r\u0151t\u00fcsk\u00e9nek beh\u00fazott \u00e1llapotban nagyj\u00e1b\u00f3l 2 mm-rel a f\u00fav\u00f3ka f\u00f6l\u00f6tt kell lennie Amikor bekapcsolja a nyomtat\u00f3t, a BL-Touch szond\u00e1nak \u00f6nellen\u0151rz\u00e9st kell v\u00e9geznie, \u00e9s n\u00e9h\u00e1nyszor fel-le kell mozgatnia a m\u00e9r\u0151t\u00fcsk\u00e9t. Az \u00f6nellen\u0151rz\u00e9s befejez\u00e9se ut\u00e1n a m\u00e9r\u0151t\u00fcsk\u00e9nek vissza kell h\u00faz\u00f3dnia, \u00e9s a szond\u00e1n l\u00e9v\u0151 piros LED-nek vil\u00e1g\u00edtania kell. Ha b\u00e1rmilyen hib\u00e1t \u00e9szlelsz, p\u00e9ld\u00e1ul a szonda pirosan villog, vagy a m\u00e9r\u0151t\u00fcske lefel\u00e9 van, nem pedig beh\u00fazva, k\u00e9rj\u00fck kapcsolja ki a nyomtat\u00f3t, \u00e9s ellen\u0151rizd a k\u00e1belez\u00e9st \u00e9s a konfigur\u00e1ci\u00f3t. Ha a fentiek rendben vannak, itt az ideje tesztelni, hogy a vez\u00e9rl\u00e9s megfelel\u0151en m\u0171k\u00f6dik-e. El\u0151sz\u00f6r futtassuk le a BLTOUCH_DEBUG COMMAND=pin_down parancsot a konzolban. Ellen\u0151rizd, hogy a m\u00e9r\u0151t\u00fcske lefel\u00e9 mozog-e, \u00e9s hogy a BL-Touchon l\u00e9v\u0151 piros LED kialszik-e. Ha nem, ellen\u0151rizd \u00fajra a k\u00e1belez\u00e9st \u00e9s a konfigur\u00e1ci\u00f3t. Ezut\u00e1n adj ki egy BLTOUCH_DEBUG COMMAND=pin_up parancsot. Ellen\u0151rizd, hogy a m\u00e9r\u0151t\u00fcske felfel\u00e9 mozdul-e, \u00e9s hogy a piros LED ism\u00e9t vil\u00e1g\u00edt-e. Ha villog, akkor valamilyen probl\u00e9ma van. A k\u00f6vetkez\u0151 l\u00e9p\u00e9s annak meger\u0151s\u00edt\u00e9se, hogy a m\u00e9r\u0151t\u00fcske megfelel\u0151en m\u0171k\u00f6dik. Futtassa a BLTOUCH_DEBUG COMMAND=pin_down parancsot, \u00e9s ellen\u0151rizd, hogy a m\u00e9r\u0151t\u00fcske lefel\u00e9 mozdul-e. Majd futtassa a BLTOUCH_DEBUG COMMAND=touch_mode parancsot. Futtassa a QUERY_PROBE parancsot, \u00e9s ellen\u0151rizd, hogy az \u00fczenet \"probe: OPEN\". Ezut\u00e1n, mik\u00f6zben a k\u00f6rm\u00e9vel finoman felfel\u00e9 nyomja a m\u00e9r\u0151t\u00fcsk\u00e9t, futtassa le \u00fajra a QUERY_PROBE parancsot. Ellen\u0151rizd, hogy az \u00fczenet a \"probe: TRIGGERED\". Ha b\u00e1rmelyik lek\u00e9rdez\u00e9s nem a megfelel\u0151 \u00fczenetet \u00edrja, akkor az \u00e1ltal\u00e1ban hib\u00e1s bek\u00f6t\u00e9st vagy konfigur\u00e1ci\u00f3t jelez (b\u00e1r egyes kl\u00f3nok speci\u00e1lis kezel\u00e9st ig\u00e9nyelhetnek). A teszt befejez\u00e9sekor futtassuk le a BLTOUCH_DEBUG COMMAND=pin_up parancsot, \u00e9s ellen\u0151rizz\u00fck, hogy a m\u00e9r\u0151t\u00fcske felfel\u00e9 mozdul. A BL-Touch vez\u00e9rl\u0151 \u00e9s \u00e9rz\u00e9kel\u0151t\u00fcsk\u00e9k tesztel\u00e9s\u00e9nek befejez\u00e9se ut\u00e1n itt az ideje a szintez\u00e9s tesztel\u00e9s\u00e9nek, de egy kis csavarral. Ahelyett, hogy a m\u00e9r\u0151t\u00fcske a t\u00e1rgyasztalt \u00e9rinten\u00e9, a k\u00f6rm\u00fcnkel fogjuk meg\u00e9rinteni. Helyezze a nyomtat\u00f3fejet messze a t\u00e1rgyasztalt\u00f3l, adj ki egy G28 (vagy PROBE , ha nem haszn\u00e1lod a probe:z_virtual_endstopot) parancsot, v\u00e1rjon m\u00edg a nyomtat\u00f3fej elkezd lefel\u00e9 mozogni, \u00e9s \u00e1ll\u00edtsd meg a mozg\u00e1st \u00fagy, hogy nagyon \u00f3vatosan meg\u00e9rinti a m\u00e9r\u0151t\u00fcsk\u00e9t a k\u00f6rm\u00e9vel. Lehet, hogy ezt k\u00e9tszer kell megtennie, mivel az alap\u00e9rtelmezett kezd\u0151pont konfigur\u00e1ci\u00f3 k\u00e9tszer m\u00e9r. K\u00e9sz\u00fclj\u00f6n fel arra is, hogy kikapcsolja a nyomtat\u00f3t, ha az nem \u00e1ll meg, amikor meg\u00e9rinti a m\u00e9r\u0151t\u00fcsk\u00e9t. Ha ez siker\u00fclt, kezd \u00fajra G28 (vagy PROBE ) parancsal, de ez\u00fattal hagyja, hogy a m\u00e9r\u0151t\u00fcske meg\u00e9rintse a t\u00e1rgyasztalt. A BL-Touch elromlott \u00b6 Amint a BL-Touch inkonzisztens \u00e1llapotba ker\u00fcl, pirosan villogni kezd. Az \u00e1llapotb\u00f3l val\u00f3 kil\u00e9p\u00e9st a k\u00f6vetkez\u0151 parancs kiad\u00e1s\u00e1val lehet k\u00e9nyszer\u00edteni: BLTOUCH_DEBUG COMMAND=reset Ez akkor fordulhat el\u0151, ha a kalibr\u00e1l\u00e1s megszakad, mert a m\u00e9r\u0151t\u00fcske nem j\u00f6n ki a hely\u00e9r\u0151l. El\u0151fordulhat azonban az is, hogy a BL-Touch m\u00e1r nem tudja mag\u00e1t kalibr\u00e1lni. Ez akkor fordulhat el\u0151, ha a tetej\u00e9n l\u00e9v\u0151 csavar rossz helyzetben van, vagy ha a m\u00e9r\u0151t\u00fcsk\u00e9ben l\u00e9v\u0151 m\u00e1gneses mag elmozdult. Ha \u00fagy mozdult felfel\u00e9, hogy a csavarhoz tapad, el\u0151fordulhat, hogy m\u00e1r nem tudja leengedni a t\u00fcsk\u00e9t. Ilyen esetben ki kell venni a csavart, \u00e9s a m\u00e9r\u0151t\u00fcsk\u00e9t \u00f3vatosan visszatolni a hely\u00e9re. Helyezd vissza a t\u00fcsk\u00e9t a BL-Touch-ba \u00fagy, hogy az a kih\u00fazott helyzetbe essen. \u00d3vatosan tedd vissza a herny\u00f3csavart a hely\u00e9re. Meg kell tal\u00e1lni a megfelel\u0151 poz\u00edci\u00f3t, hogy k\u00e9pes legyen leengedni \u00e9s felemelni a t\u00fcsk\u00e9t, hogy a piros LED be \u00e9s kikapcsoljon. Ehhez haszn\u00e1ld a reset , pin_up \u00e9s pin_down parancsokat. BL-Touch \"kl\u00f3nok\" \u00b6 Sok BL-Touch \"kl\u00f3n\" m\u0171k\u00f6dik megfelel\u0151en a Klipperrel az alap\u00e9rtelmezett konfigur\u00e1ci\u00f3val. N\u00e9h\u00e1ny \"kl\u00f3n\" azonban nem t\u00e1mogatja a QUERY_PROBE parancsot, \u00e9s n\u00e9h\u00e1ny \"kl\u00f3n\" k\u00e9sz\u00fcl\u00e9kek a pin_up_reports_not_triggered vagy a pin_up_touch_mode_reports_triggered parancsok haszn\u00e1lat\u00e1t k\u00f6vetelik meg. Fontos! Ne \u00e1ll\u00edtsd a pin_up_reports_not_triggered vagy a pin_up_touch_mode_reports_triggered \u00e9rt\u00e9k\u00e9t False \u00e9rt\u00e9kre an\u00e9lk\u00fcl, hogy el\u0151bb ne k\u00f6vetn\u00e9 ezeket az utas\u00edt\u00e1sokat. Ne \u00e1ll\u00edtsd egyiket sem False \u00e9rt\u00e9kre egy val\u00f3di BL-Touch eset\u00e9ben. Ezek helytelen be\u00e1ll\u00edt\u00e1sa hamis \u00e9rt\u00e9kre n\u00f6velheti a m\u00e9r\u00e9si id\u0151t, \u00e9s n\u00f6velheti a nyomtat\u00f3 k\u00e1rosod\u00e1s\u00e1nak kock\u00e1zat\u00e1t. N\u00e9h\u00e1ny \"kl\u00f3n\" nem t\u00e1mogatja a touch_mode parancsot, \u00e9s ennek eredm\u00e9nyek\u00e9nt a QUERY_PROBE parancs sem m\u0171k\u00f6dik. Ennek ellen\u00e9re lehets\u00e9ges, hogy ezekkel az eszk\u00f6z\u00f6kkel m\u00e9g mindig lehet m\u00e9r\u00e9st \u00e9s kezd\u0151pont felv\u00e9telt v\u00e9gezni. Ezeken az eszk\u00f6z\u00f6k\u00f6n a kezdeti tesztek sor\u00e1n a QUERY_PROBE parancs nem lesz sikeres, azonban az ezt k\u00f6vet\u0151 G28 (vagy PROBE ) teszt siker\u00fcl. Lehets\u00e9ges, hogy ezeket a \"kl\u00f3nokat\" Klipperrel lehet haszn\u00e1lni, ha nem haszn\u00e1ljuk a QUERY_PROBE parancsot, \u00e9s nem enged\u00e9lyezz\u00fck a probe_with_touch_mode funkci\u00f3t. N\u00e9h\u00e1ny \"kl\u00f3n\" eszk\u00f6z nem k\u00e9pes elv\u00e9gezni a Klipper bels\u0151 \u00e9rz\u00e9kel\u0151 ellen\u0151rz\u0151 tesztj\u00e9t. Ezeken az eszk\u00f6z\u00f6k\u00f6n a kezd\u0151pont vagy a szonda pr\u00f3b\u00e1lkoz\u00e1sai a Klipper \"BLTouch failed to verify sensor state\" hib\u00e1t jelentenek. Ha ez bek\u00f6vetkezik, akkor k\u00e9zzel futtassa le a kezdeti tesztek szakaszban le\u00edrt l\u00e9p\u00e9seket az \u00e9rz\u00e9kel\u0151t\u00fcske m\u0171k\u00f6d\u00e9s\u00e9nek meger\u0151s\u00edt\u00e9s\u00e9re. Ha a QUERY_PROBE parancsok ebben a tesztben mindig a v\u00e1rt eredm\u00e9nyt adj\u00e1k, \u00e9s a \"BLTouch failed to verify sensor state\" hiba tov\u00e1bbra is el\u0151fordul, akkor sz\u00fcks\u00e9ges lehet a Klipper konfigur\u00e1ci\u00f3s f\u00e1jlban a pin_up_touch_mode_reports_triggered \u00e9rt\u00e9k\u00e9t False-ra \u00e1ll\u00edtani. N\u00e9h\u00e1ny r\u00e9gi \"kl\u00f3n\" k\u00e9sz\u00fcl\u00e9k nem k\u00e9pes jelenteni, ha sikeresen felemelte a szond\u00e1t. Ezeken az eszk\u00f6z\u00f6k\u00f6n a Klipper minden egyes kezd\u0151pont vagy m\u00e9r\u00e9si k\u00eds\u00e9rlet ut\u00e1n egy \"BLTouch failed to raise probe\" hib\u00e1t jelent. Ezeket az eszk\u00f6z\u00f6ket tesztelhetj\u00fck. T\u00e1vol\u00edtsuk el a fejet a t\u00e1rgyasztalt\u00f3l, futtassuk a BLTOUCH_DEBUG COMMAND=pin_down parancsot, ellen\u0151rizz\u00fck, hogy a m\u00e9r\u0151t\u00fcske lefel\u00e9 mozdult-e, futtassuk a QUERY_PROBE parancsot, ellen\u0151rizz\u00fck, hogy a \"probe: OPEN\" \u00e9rt\u00e9ket kapjuk, futtassuk a BLTOUCH_DEBUG COMMAND=pin_up , ellen\u0151rizz\u00fck, hogy a m\u00e9r\u0151t\u00fcske felfel\u00e9 mozdult-e, \u00e9s futtassuk a QUERY_PROBE . Ha a m\u00e9r\u0151t\u00fcske tov\u00e1bbra is fent marad, az eszk\u00f6z nem l\u00e9p hiba\u00e1llapotba, \u00e9s az els\u0151 lek\u00e9rdez\u00e9s a \"probe: OPEN\", m\u00edg a m\u00e1sodik lek\u00e9rdez\u00e9s a \"probe: TRIGGERED\", akkor ez azt jelzi, hogy a Klipper konfigur\u00e1ci\u00f3s f\u00e1jlban a pin_up_reports_not_triggered \u00e9rt\u00e9k\u00e9t False-ra kell \u00e1ll\u00edtani. BL-Touch v3 \u00b6 Egyes BL-Touch v3.0 \u00e9s BL-Touch 3.1 eszk\u00f6z\u00f6k eset\u00e9ben el\u0151fordulhat, hogy a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1ban a probe_with_touch_mode be\u00e1ll\u00edt\u00e1sa sz\u00fcks\u00e9ges. Ha a BL-Touch v3.0 jelk\u00e1bel\u00e9t egy (zajsz\u0171r\u0151 kondenz\u00e1torral ell\u00e1tott) v\u00e9g\u00e1ll\u00e1s csatlakoz\u00f3hoz csatlakoztatja, akkor el\u0151fordulhat, hogy a BL-Touch v3.0 nem tud k\u00f6vetkezetesen jelet k\u00fcldeni a kezd\u0151pont felv\u00e9tel \u00e9s a m\u00e9r\u00e9s sor\u00e1n. Ha a kezdeti tesztek szakaszban tal\u00e1lhat\u00f3 QUERY_PROBE parancsok mindig a v\u00e1rt eredm\u00e9nyt adj\u00e1k, de a nyomtat\u00f3fej nem mindig \u00e1ll meg a G28/PROBE parancsok alatt, akkor ez erre a probl\u00e9m\u00e1ra utal. A megold\u00e1s a probe_with_touch_mode: True be\u00e1ll\u00edt\u00e1sa a konfigur\u00e1ci\u00f3s f\u00e1jlban. El\u0151fordulhat, hogy a BL-Touch v3.1 egy sikeres m\u00e9r\u00e9si k\u00eds\u00e9rlet ut\u00e1n hiba\u00e1llapotba ker\u00fcl. Ennek t\u00fcnete a BL-Touch v3.1 id\u0151nk\u00e9nt villog\u00f3 f\u00e9nye, amely n\u00e9h\u00e1ny m\u00e1sodpercig tart, miut\u00e1n sikeresen \u00e9rintkezik az \u00e1ggyal. A Klippernek ezt a hib\u00e1t automatikusan t\u00f6r\u00f6lnie kell, \u00e9s \u00e1ltal\u00e1ban \u00e1rtalmatlan. A konfigur\u00e1ci\u00f3s f\u00e1jlban azonban be\u00e1ll\u00edthatjuk a probe_with_touch_mode \u00e9rt\u00e9ket, hogy elker\u00fclj\u00fck ezt a probl\u00e9m\u00e1t. Fontos! N\u00e9h\u00e1ny \"kl\u00f3n\" eszk\u00f6z \u00e9s a BL-Touch v2.0 (\u00e9s kor\u00e1bbi) cs\u00f6kkent pontoss\u00e1g\u00fa lehet, ha a probe_with_touch_mode \u00e9rt\u00e9ke True. Ennek True \u00e9rt\u00e9kre \u00e1ll\u00edt\u00e1sa a szonda telep\u00edt\u00e9s\u00e9nek idej\u00e9t is megn\u00f6veli. Ha ezt az \u00e9rt\u00e9ket egy \"kl\u00f3n\" vagy r\u00e9gebbi BL-Touch eszk\u00f6z\u00f6n konfigur\u00e1lod, mindenk\u00e9ppen teszteld a szonda pontoss\u00e1g\u00e1t az \u00e9rt\u00e9k be\u00e1ll\u00edt\u00e1sa el\u0151tt \u00e9s ut\u00e1n (a tesztel\u00e9shez haszn\u00e1ld a PROBE_ACCURACY parancsot). T\u00f6bbsz\u00f6ri sz\u00far\u00f3pr\u00f3baszer\u0171 m\u00e9r\u00e9s \u00b6 Alap\u00e9rtelmez\u00e9s szerint a Klipper minden egyes m\u00e9r\u00e9sk\u00eds\u00e9rlet kezdet\u00e9n kitelep\u00edti a m\u00e9r\u0151t\u00fcsk\u00e9t, majd ut\u00e1na elrakja. A szonda ism\u00e9telt be \u00e9s kitelep\u00edt\u00e9se megn\u00f6velheti a sok m\u00e9r\u00e9st tartalmaz\u00f3 kalibr\u00e1l\u00e1si folyamatok teljes id\u0151tartam\u00e1t. A Klipper t\u00e1mogatja, hogy a m\u00e9r\u0151t\u00fcsk\u00e9t az egym\u00e1st k\u00f6vet\u0151 m\u00e9r\u00e9sek k\u00f6z\u00f6tt is kihelyezve hagyja, ami cs\u00f6kkentheti a m\u00e9r\u00e9sek teljes idej\u00e9t. Ez az \u00fczemm\u00f3d a stow_on_each_sample False \u00e9rt\u00e9kre val\u00f3 be\u00e1ll\u00edt\u00e1s\u00e1val enged\u00e9lyezhet\u0151 a konfigur\u00e1ci\u00f3s f\u00e1jlban. Fontos! A stow_on_each_sample False (Hamis) be\u00e1ll\u00edt\u00e1sa ahhoz vezethet, hogy a Klipper v\u00edzszintes nyomtat\u00f3fej mozg\u00e1sokat v\u00e9gez, mik\u00f6zben a szonda ki van helyezve. Gy\u0151z\u0151dj meg r\u00f3la, hogy minden szond\u00e1z\u00e1si m\u0171veletn\u00e9l elegend\u0151 Z-t\u00e1vols\u00e1g van, miel\u0151tt ezt az \u00e9rt\u00e9ket False \u00e9rt\u00e9kre \u00e1ll\u00edtan\u00e1. Ha nincs elegend\u0151 szabad t\u00e9r, akkor a v\u00edzszintes mozg\u00e1sok sor\u00e1n a m\u00e9r\u0151t\u00fcske beleakadhat egy akad\u00e1lyba, ami a nyomtat\u00f3 vagy m\u00e9r\u0151eszk\u00f6z k\u00e1rosod\u00e1s\u00e1t eredm\u00e9nyezheti. Fontos! Aj\u00e1nlott a True \u00e9rt\u00e9kre konfigur\u00e1lt probe_with_touch_mode haszn\u00e1lata, ha a False \u00e9rt\u00e9kre konfigur\u00e1lt stow_on_each_sample \u00e9rt\u00e9ket haszn\u00e1lod. N\u00e9h\u00e1ny \"kl\u00f3n\" eszk\u00f6z nem \u00e9rz\u00e9keli a t\u00e1rgyasztal k\u00e9s\u0151bbi \u00e9rint\u00e9s\u00e9t, ha a probe_with_touch_mode nincs be\u00e1ll\u00edtva. Minden eszk\u00f6z\u00f6n e k\u00e9t be\u00e1ll\u00edt\u00e1s kombin\u00e1ci\u00f3j\u00e1nak haszn\u00e1lata egyszer\u0171s\u00edti az eszk\u00f6z jelz\u00e9s\u00e9t, ami jav\u00edthatja az \u00e1ltal\u00e1nos stabilit\u00e1st. Vedd figyelembe azonban, hogy n\u00e9h\u00e1ny \"kl\u00f3n\" eszk\u00f6z \u00e9s a BL-Touch v2.0 (\u00e9s kor\u00e1bbi) cs\u00f6kkentett pontoss\u00e1g\u00fa lehet, ha a probe_with_touch_mode \u00e9rt\u00e9ke True. Ezeken az eszk\u00f6z\u00f6k\u00f6n \u00e9rdemes tesztelni a szonda pontoss\u00e1g\u00e1t a probe_with_touch_mode be\u00e1ll\u00edt\u00e1sa el\u0151tt \u00e9s ut\u00e1n (a tesztel\u00e9shez haszn\u00e1ld a PROBE_ACCURACY parancsot). A BL-Touch eltol\u00e1sok kalibr\u00e1l\u00e1sa \u00b6 Az x_offset, y_offset \u00e9s z_offset konfigur\u00e1ci\u00f3s param\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1hoz k\u00f6vesse a Szintez\u0151 Kalibr\u00e1l\u00e1sa \u00fatmutat\u00f3ban tal\u00e1lhat\u00f3 utas\u00edt\u00e1sokat. J\u00f3 \u00f6tlet ellen\u0151rizni, hogy a Z eltol\u00e1s k\u00f6zel 1 mm. Ha nem, akkor val\u00f3sz\u00edn\u0171leg felfel\u00e9 vagy lefel\u00e9 kell mozgatni a szond\u00e1t, hogy ezt kijav\u00edtsa. Azt szeretn\u00e9, hogy aktiv\u00e1l\u00f3djon, miel\u0151tt a f\u00fav\u00f3ka a t\u00e1rgyasztalhoz \u00e9r, hogy a f\u00fav\u00f3k\u00e1hoz ragadt nyomtat\u00f3sz\u00e1l vagy a megg\u00f6rb\u00fclt t\u00e1rgyasztal ne befoly\u00e1solja a m\u00e9r\u00e9si m\u0171veletet. Ugyanakkor azonban azt szeretn\u00e9, ha a visszah\u00fazott poz\u00edci\u00f3 a lehet\u0151 legmesszebb lenne a f\u00fav\u00f3ka felett, hogy elker\u00fclje a nyomtatott t\u00e1rgyak \u00e9rintkez\u00e9s\u00e9t. Ha a szonda poz\u00edci\u00f3j\u00e1ball\u00edt\u00e1sa megt\u00f6rt\u00e9nt, akkor ism\u00e9telje meg a kalibr\u00e1l\u00e1s l\u00e9p\u00e9seit. BL-Touch kimeneti m\u00f3d \u00b6 A BL-Touch V3.0 t\u00e1mogatja az 5V vagy OPEN-DRAIN kimeneti m\u00f3d be\u00e1ll\u00edt\u00e1s\u00e1t, a BL-Touch V3.1 szint\u00e9n t\u00e1mogatja ezt, de ezt a bels\u0151 EEPROM-j\u00e1ban is el tudja t\u00e1rolni. Ha az alaplapj\u00e1nak sz\u00fcks\u00e9ge van az 5V-os \u00fczemm\u00f3d fix 5V magas logikai szintj\u00e9re, akkor a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jl [bltouch] szakasz\u00e1ban a 'set_output_mode' param\u00e9tert \"5V\" \u00e9rt\u00e9kre \u00e1ll\u00edthatja. Csak akkor haszn\u00e1ld az 5V-os \u00fczemm\u00f3dot, ha az alaplapnak a bemeneti vonala 5V-os toler\u00e1ns. Ez\u00e9rt ezeknek a BL-Touch verzi\u00f3knak az alap\u00e9rtelmezett konfigur\u00e1ci\u00f3ja a OPEN-DRAIN \u00fczemm\u00f3d. Ezzel potenci\u00e1lisan k\u00e1ros\u00edthatod az alaplap CPU-j\u00e1t Ez\u00e9rt teh\u00e1t: Ha egy alaplapnak 5V-os \u00fczemm\u00f3dra van sz\u00fcks\u00e9ge \u00c9S 5V-os toler\u00e1ns a bemeneti jelvonalon \u00c9S ha ha neked BL-Touch Smart V3.0 van, akkor a 'set_output_mode-ot: 5V' param\u00e9tert kell megadni, hogy minden egyes ind\u00edt\u00e1skor biztos\u00edtsd ezt a be\u00e1ll\u00edt\u00e1st, mivel a szonda nem tudja megjegyezni a sz\u00fcks\u00e9ges be\u00e1ll\u00edt\u00e1st. ha neked BL-Touch Smart V3.1 van, akkor v\u00e1laszthatsz a 'set_output_mode: 5V' vagy az \u00fczemm\u00f3d egyszeri t\u00e1rol\u00e1sa a 'BLTOUCH_STORE MODE=5V' parancsok k\u00f6z\u00fcl, k\u00e9zzel \u00e9s NEM a 'set_output_mode:' param\u00e9ter haszn\u00e1lat\u00e1val. ha van m\u00e1s szond\u00e1ja is: A kimeneti \u00fczemm\u00f3d (v\u00e9gleges) be\u00e1ll\u00edt\u00e1s\u00e1hoz n\u00e9h\u00e1ny szond\u00e1nak van egy bek\u00f6t\u00e9se az alaplapon, amelyet el kell v\u00e1gni, vagy egy jumperrel kell be\u00e1ll\u00edtani. Ebben az esetben hagyja ki teljesen a 'set_output_mode' param\u00e9tert. Ha V3.1 szond\u00e1val rendelkezik, ne automatiz\u00e1lja vagy ism\u00e9telje a kimeneti \u00fczemm\u00f3d t\u00e1rol\u00e1s\u00e1t, hogy elker\u00fclje a szonda EEPROM-j\u00e1nak elhaszn\u00e1l\u00f3d\u00e1s\u00e1t. A BLTouch EEPROM k\u00f6r\u00fclbel\u00fcl 100.000 friss\u00edt\u00e9sre alkalmas. A napi 100 t\u00e1rol\u00e1s k\u00f6r\u00fclbel\u00fcl 3 \u00e9vnyi m\u0171k\u00f6d\u00e9st jelentene, miel\u0151tt elhaszn\u00e1l\u00f3dna. \u00cdgy a kimeneti \u00fczemm\u00f3d t\u00e1rol\u00e1s\u00e1t a V3.1-ben a gy\u00e1rt\u00f3 bonyolult m\u0171veletnek tervezte (a gy\u00e1ri alap\u00e9rtelmezett egy biztons\u00e1gos OPEN DRAIN \u00fczemm\u00f3d), \u00e9s nem alkalmas arra, hogy b\u00e1rmilyen szeletel\u0151, makr\u00f3 vagy b\u00e1rmi m\u00e1s \u00e1ltal ism\u00e9telten kiadja, lehet\u0151leg csak akkor haszn\u00e1lhat\u00f3, amikor el\u0151sz\u00f6r integr\u00e1lj\u00e1k a szond\u00e1t egy nyomtat\u00f3 alaplapj\u00e1ra.","title":"BL-Touch"},{"location":"BLTouch.html#bl-touch","text":"","title":"BL-Touch"},{"location":"BLTouch.html#bl-touch-csatlakoztatasa","text":"Egy figyelmeztet\u00e9s miel\u0151tt elkezden\u00e9: Ker\u00fclje a BL-Touch t\u0171j\u00e9nek puszta ujjal val\u00f3 \u00e9rint\u00e9s\u00e9t, mivel meglehet\u0151sen \u00e9rz\u00e9keny az zs\u00edrra. Ha pedig m\u00e9gis hozz\u00e1\u00e9r, legyen nagyon \u00f3vatos, hogy ne hajl\u00edtsa vagy nyomja meg a t\u00fcsk\u00e9t. Csatlakoztassa a BL-Touch \"servo\" csatlakoz\u00f3t a control_pin csatlakoz\u00f3hoz a BL-Touch dokument\u00e1ci\u00f3 vagy az MCU dokument\u00e1ci\u00f3ja szerint. Az eredeti k\u00e1belez\u00e9st haszn\u00e1lva a h\u00e1rmasb\u00f3l a s\u00e1rga vezet\u00e9k a control_pin \u00e9s a vezet\u00e9kp\u00e1rb\u00f3l a feh\u00e9r lesz a sensor_pin . Ezeket a t\u0171ket a k\u00e1belez\u00e9snek megfelel\u0151en kell konfigur\u00e1lnia. A legt\u00f6bb BL-Touch pullup jelet ig\u00e9nyel a t\u0171be\u00e1ll\u00edt\u00e1sn\u00e1l (ez\u00e9rt a csatlakoz\u00e1s nev\u00e9nek el\u0151tagja \"^\"). P\u00e9ld\u00e1ul: [bltouch] sensor_pin: ^P1.24 control_pin: P1.26 Ha a BL-Touch-ot a Z tengely alaphelyzetbe \u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1ljuk, akkor \u00e1ll\u00edtsuk be az endstop_pin:probe:z_virtual_endstop -ra \u00e9s t\u00e1vol\u00edtsa el a position_endstop \u00e9s a [stepper_z] -t a config szakaszban, majd adjuk hozz\u00e1 a [safe_z_home] config szakaszt a Z tengely megemel\u00e9s\u00e9hez, az X,Y tengelyek kezd\u0151pont felv\u00e9tel\u00e9re a t\u00e1rgyasztal k\u00f6zep\u00e9re val\u00f3 elmozdul\u00e1shoz \u00e9s a Z tengely kezd\u0151pont felv\u00e9tel\u00e9re. P\u00e9ld\u00e1ul: [safe_z_home] home_xy_position: 100, 100 # A koordin\u00e1t\u00e1kat a t\u00e1rgyasztal k\u00f6zep\u00e9re m\u00f3dos\u00edtjuk. speed: 50 z_hop: 10 # Mozg\u00e1s felfel\u00e9 10mm z_hop_speed: 5 Fontos, hogy a z_hop mozg\u00e1s a safe_z_home-ban el\u00e9g nagy legyen ahhoz, hogy a m\u00e9r\u0151cs\u00facs ne \u00fctk\u00f6zz\u00f6n semmibe, m\u00e9g akkor sem, ha a BL-Touch m\u00e9r\u0151t\u00fcsk\u00e9je a legalacsonyabb \u00e1ll\u00e1sban van.","title":"BL-Touch csatlakoztat\u00e1sa"},{"location":"BLTouch.html#kezdeti-tesztek","text":"Miel\u0151tt tov\u00e1bbl\u00e9pne, ellen\u0151rizd, hogy a BL-Touch a megfelel\u0151 magass\u00e1gban van-e felszerelve. A m\u00e9r\u0151t\u00fcsk\u00e9nek beh\u00fazott \u00e1llapotban nagyj\u00e1b\u00f3l 2 mm-rel a f\u00fav\u00f3ka f\u00f6l\u00f6tt kell lennie Amikor bekapcsolja a nyomtat\u00f3t, a BL-Touch szond\u00e1nak \u00f6nellen\u0151rz\u00e9st kell v\u00e9geznie, \u00e9s n\u00e9h\u00e1nyszor fel-le kell mozgatnia a m\u00e9r\u0151t\u00fcsk\u00e9t. Az \u00f6nellen\u0151rz\u00e9s befejez\u00e9se ut\u00e1n a m\u00e9r\u0151t\u00fcsk\u00e9nek vissza kell h\u00faz\u00f3dnia, \u00e9s a szond\u00e1n l\u00e9v\u0151 piros LED-nek vil\u00e1g\u00edtania kell. Ha b\u00e1rmilyen hib\u00e1t \u00e9szlelsz, p\u00e9ld\u00e1ul a szonda pirosan villog, vagy a m\u00e9r\u0151t\u00fcske lefel\u00e9 van, nem pedig beh\u00fazva, k\u00e9rj\u00fck kapcsolja ki a nyomtat\u00f3t, \u00e9s ellen\u0151rizd a k\u00e1belez\u00e9st \u00e9s a konfigur\u00e1ci\u00f3t. Ha a fentiek rendben vannak, itt az ideje tesztelni, hogy a vez\u00e9rl\u00e9s megfelel\u0151en m\u0171k\u00f6dik-e. El\u0151sz\u00f6r futtassuk le a BLTOUCH_DEBUG COMMAND=pin_down parancsot a konzolban. Ellen\u0151rizd, hogy a m\u00e9r\u0151t\u00fcske lefel\u00e9 mozog-e, \u00e9s hogy a BL-Touchon l\u00e9v\u0151 piros LED kialszik-e. Ha nem, ellen\u0151rizd \u00fajra a k\u00e1belez\u00e9st \u00e9s a konfigur\u00e1ci\u00f3t. Ezut\u00e1n adj ki egy BLTOUCH_DEBUG COMMAND=pin_up parancsot. Ellen\u0151rizd, hogy a m\u00e9r\u0151t\u00fcske felfel\u00e9 mozdul-e, \u00e9s hogy a piros LED ism\u00e9t vil\u00e1g\u00edt-e. Ha villog, akkor valamilyen probl\u00e9ma van. A k\u00f6vetkez\u0151 l\u00e9p\u00e9s annak meger\u0151s\u00edt\u00e9se, hogy a m\u00e9r\u0151t\u00fcske megfelel\u0151en m\u0171k\u00f6dik. Futtassa a BLTOUCH_DEBUG COMMAND=pin_down parancsot, \u00e9s ellen\u0151rizd, hogy a m\u00e9r\u0151t\u00fcske lefel\u00e9 mozdul-e. Majd futtassa a BLTOUCH_DEBUG COMMAND=touch_mode parancsot. Futtassa a QUERY_PROBE parancsot, \u00e9s ellen\u0151rizd, hogy az \u00fczenet \"probe: OPEN\". Ezut\u00e1n, mik\u00f6zben a k\u00f6rm\u00e9vel finoman felfel\u00e9 nyomja a m\u00e9r\u0151t\u00fcsk\u00e9t, futtassa le \u00fajra a QUERY_PROBE parancsot. Ellen\u0151rizd, hogy az \u00fczenet a \"probe: TRIGGERED\". Ha b\u00e1rmelyik lek\u00e9rdez\u00e9s nem a megfelel\u0151 \u00fczenetet \u00edrja, akkor az \u00e1ltal\u00e1ban hib\u00e1s bek\u00f6t\u00e9st vagy konfigur\u00e1ci\u00f3t jelez (b\u00e1r egyes kl\u00f3nok speci\u00e1lis kezel\u00e9st ig\u00e9nyelhetnek). A teszt befejez\u00e9sekor futtassuk le a BLTOUCH_DEBUG COMMAND=pin_up parancsot, \u00e9s ellen\u0151rizz\u00fck, hogy a m\u00e9r\u0151t\u00fcske felfel\u00e9 mozdul. A BL-Touch vez\u00e9rl\u0151 \u00e9s \u00e9rz\u00e9kel\u0151t\u00fcsk\u00e9k tesztel\u00e9s\u00e9nek befejez\u00e9se ut\u00e1n itt az ideje a szintez\u00e9s tesztel\u00e9s\u00e9nek, de egy kis csavarral. Ahelyett, hogy a m\u00e9r\u0151t\u00fcske a t\u00e1rgyasztalt \u00e9rinten\u00e9, a k\u00f6rm\u00fcnkel fogjuk meg\u00e9rinteni. Helyezze a nyomtat\u00f3fejet messze a t\u00e1rgyasztalt\u00f3l, adj ki egy G28 (vagy PROBE , ha nem haszn\u00e1lod a probe:z_virtual_endstopot) parancsot, v\u00e1rjon m\u00edg a nyomtat\u00f3fej elkezd lefel\u00e9 mozogni, \u00e9s \u00e1ll\u00edtsd meg a mozg\u00e1st \u00fagy, hogy nagyon \u00f3vatosan meg\u00e9rinti a m\u00e9r\u0151t\u00fcsk\u00e9t a k\u00f6rm\u00e9vel. Lehet, hogy ezt k\u00e9tszer kell megtennie, mivel az alap\u00e9rtelmezett kezd\u0151pont konfigur\u00e1ci\u00f3 k\u00e9tszer m\u00e9r. K\u00e9sz\u00fclj\u00f6n fel arra is, hogy kikapcsolja a nyomtat\u00f3t, ha az nem \u00e1ll meg, amikor meg\u00e9rinti a m\u00e9r\u0151t\u00fcsk\u00e9t. Ha ez siker\u00fclt, kezd \u00fajra G28 (vagy PROBE ) parancsal, de ez\u00fattal hagyja, hogy a m\u00e9r\u0151t\u00fcske meg\u00e9rintse a t\u00e1rgyasztalt.","title":"Kezdeti tesztek"},{"location":"BLTouch.html#a-bl-touch-elromlott","text":"Amint a BL-Touch inkonzisztens \u00e1llapotba ker\u00fcl, pirosan villogni kezd. Az \u00e1llapotb\u00f3l val\u00f3 kil\u00e9p\u00e9st a k\u00f6vetkez\u0151 parancs kiad\u00e1s\u00e1val lehet k\u00e9nyszer\u00edteni: BLTOUCH_DEBUG COMMAND=reset Ez akkor fordulhat el\u0151, ha a kalibr\u00e1l\u00e1s megszakad, mert a m\u00e9r\u0151t\u00fcske nem j\u00f6n ki a hely\u00e9r\u0151l. El\u0151fordulhat azonban az is, hogy a BL-Touch m\u00e1r nem tudja mag\u00e1t kalibr\u00e1lni. Ez akkor fordulhat el\u0151, ha a tetej\u00e9n l\u00e9v\u0151 csavar rossz helyzetben van, vagy ha a m\u00e9r\u0151t\u00fcsk\u00e9ben l\u00e9v\u0151 m\u00e1gneses mag elmozdult. Ha \u00fagy mozdult felfel\u00e9, hogy a csavarhoz tapad, el\u0151fordulhat, hogy m\u00e1r nem tudja leengedni a t\u00fcsk\u00e9t. Ilyen esetben ki kell venni a csavart, \u00e9s a m\u00e9r\u0151t\u00fcsk\u00e9t \u00f3vatosan visszatolni a hely\u00e9re. Helyezd vissza a t\u00fcsk\u00e9t a BL-Touch-ba \u00fagy, hogy az a kih\u00fazott helyzetbe essen. \u00d3vatosan tedd vissza a herny\u00f3csavart a hely\u00e9re. Meg kell tal\u00e1lni a megfelel\u0151 poz\u00edci\u00f3t, hogy k\u00e9pes legyen leengedni \u00e9s felemelni a t\u00fcsk\u00e9t, hogy a piros LED be \u00e9s kikapcsoljon. Ehhez haszn\u00e1ld a reset , pin_up \u00e9s pin_down parancsokat.","title":"A BL-Touch elromlott"},{"location":"BLTouch.html#bl-touch-klonok","text":"Sok BL-Touch \"kl\u00f3n\" m\u0171k\u00f6dik megfelel\u0151en a Klipperrel az alap\u00e9rtelmezett konfigur\u00e1ci\u00f3val. N\u00e9h\u00e1ny \"kl\u00f3n\" azonban nem t\u00e1mogatja a QUERY_PROBE parancsot, \u00e9s n\u00e9h\u00e1ny \"kl\u00f3n\" k\u00e9sz\u00fcl\u00e9kek a pin_up_reports_not_triggered vagy a pin_up_touch_mode_reports_triggered parancsok haszn\u00e1lat\u00e1t k\u00f6vetelik meg. Fontos! Ne \u00e1ll\u00edtsd a pin_up_reports_not_triggered vagy a pin_up_touch_mode_reports_triggered \u00e9rt\u00e9k\u00e9t False \u00e9rt\u00e9kre an\u00e9lk\u00fcl, hogy el\u0151bb ne k\u00f6vetn\u00e9 ezeket az utas\u00edt\u00e1sokat. Ne \u00e1ll\u00edtsd egyiket sem False \u00e9rt\u00e9kre egy val\u00f3di BL-Touch eset\u00e9ben. Ezek helytelen be\u00e1ll\u00edt\u00e1sa hamis \u00e9rt\u00e9kre n\u00f6velheti a m\u00e9r\u00e9si id\u0151t, \u00e9s n\u00f6velheti a nyomtat\u00f3 k\u00e1rosod\u00e1s\u00e1nak kock\u00e1zat\u00e1t. N\u00e9h\u00e1ny \"kl\u00f3n\" nem t\u00e1mogatja a touch_mode parancsot, \u00e9s ennek eredm\u00e9nyek\u00e9nt a QUERY_PROBE parancs sem m\u0171k\u00f6dik. Ennek ellen\u00e9re lehets\u00e9ges, hogy ezekkel az eszk\u00f6z\u00f6kkel m\u00e9g mindig lehet m\u00e9r\u00e9st \u00e9s kezd\u0151pont felv\u00e9telt v\u00e9gezni. Ezeken az eszk\u00f6z\u00f6k\u00f6n a kezdeti tesztek sor\u00e1n a QUERY_PROBE parancs nem lesz sikeres, azonban az ezt k\u00f6vet\u0151 G28 (vagy PROBE ) teszt siker\u00fcl. Lehets\u00e9ges, hogy ezeket a \"kl\u00f3nokat\" Klipperrel lehet haszn\u00e1lni, ha nem haszn\u00e1ljuk a QUERY_PROBE parancsot, \u00e9s nem enged\u00e9lyezz\u00fck a probe_with_touch_mode funkci\u00f3t. N\u00e9h\u00e1ny \"kl\u00f3n\" eszk\u00f6z nem k\u00e9pes elv\u00e9gezni a Klipper bels\u0151 \u00e9rz\u00e9kel\u0151 ellen\u0151rz\u0151 tesztj\u00e9t. Ezeken az eszk\u00f6z\u00f6k\u00f6n a kezd\u0151pont vagy a szonda pr\u00f3b\u00e1lkoz\u00e1sai a Klipper \"BLTouch failed to verify sensor state\" hib\u00e1t jelentenek. Ha ez bek\u00f6vetkezik, akkor k\u00e9zzel futtassa le a kezdeti tesztek szakaszban le\u00edrt l\u00e9p\u00e9seket az \u00e9rz\u00e9kel\u0151t\u00fcske m\u0171k\u00f6d\u00e9s\u00e9nek meger\u0151s\u00edt\u00e9s\u00e9re. Ha a QUERY_PROBE parancsok ebben a tesztben mindig a v\u00e1rt eredm\u00e9nyt adj\u00e1k, \u00e9s a \"BLTouch failed to verify sensor state\" hiba tov\u00e1bbra is el\u0151fordul, akkor sz\u00fcks\u00e9ges lehet a Klipper konfigur\u00e1ci\u00f3s f\u00e1jlban a pin_up_touch_mode_reports_triggered \u00e9rt\u00e9k\u00e9t False-ra \u00e1ll\u00edtani. N\u00e9h\u00e1ny r\u00e9gi \"kl\u00f3n\" k\u00e9sz\u00fcl\u00e9k nem k\u00e9pes jelenteni, ha sikeresen felemelte a szond\u00e1t. Ezeken az eszk\u00f6z\u00f6k\u00f6n a Klipper minden egyes kezd\u0151pont vagy m\u00e9r\u00e9si k\u00eds\u00e9rlet ut\u00e1n egy \"BLTouch failed to raise probe\" hib\u00e1t jelent. Ezeket az eszk\u00f6z\u00f6ket tesztelhetj\u00fck. T\u00e1vol\u00edtsuk el a fejet a t\u00e1rgyasztalt\u00f3l, futtassuk a BLTOUCH_DEBUG COMMAND=pin_down parancsot, ellen\u0151rizz\u00fck, hogy a m\u00e9r\u0151t\u00fcske lefel\u00e9 mozdult-e, futtassuk a QUERY_PROBE parancsot, ellen\u0151rizz\u00fck, hogy a \"probe: OPEN\" \u00e9rt\u00e9ket kapjuk, futtassuk a BLTOUCH_DEBUG COMMAND=pin_up , ellen\u0151rizz\u00fck, hogy a m\u00e9r\u0151t\u00fcske felfel\u00e9 mozdult-e, \u00e9s futtassuk a QUERY_PROBE . Ha a m\u00e9r\u0151t\u00fcske tov\u00e1bbra is fent marad, az eszk\u00f6z nem l\u00e9p hiba\u00e1llapotba, \u00e9s az els\u0151 lek\u00e9rdez\u00e9s a \"probe: OPEN\", m\u00edg a m\u00e1sodik lek\u00e9rdez\u00e9s a \"probe: TRIGGERED\", akkor ez azt jelzi, hogy a Klipper konfigur\u00e1ci\u00f3s f\u00e1jlban a pin_up_reports_not_triggered \u00e9rt\u00e9k\u00e9t False-ra kell \u00e1ll\u00edtani.","title":"BL-Touch \"kl\u00f3nok\""},{"location":"BLTouch.html#bl-touch-v3","text":"Egyes BL-Touch v3.0 \u00e9s BL-Touch 3.1 eszk\u00f6z\u00f6k eset\u00e9ben el\u0151fordulhat, hogy a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1ban a probe_with_touch_mode be\u00e1ll\u00edt\u00e1sa sz\u00fcks\u00e9ges. Ha a BL-Touch v3.0 jelk\u00e1bel\u00e9t egy (zajsz\u0171r\u0151 kondenz\u00e1torral ell\u00e1tott) v\u00e9g\u00e1ll\u00e1s csatlakoz\u00f3hoz csatlakoztatja, akkor el\u0151fordulhat, hogy a BL-Touch v3.0 nem tud k\u00f6vetkezetesen jelet k\u00fcldeni a kezd\u0151pont felv\u00e9tel \u00e9s a m\u00e9r\u00e9s sor\u00e1n. Ha a kezdeti tesztek szakaszban tal\u00e1lhat\u00f3 QUERY_PROBE parancsok mindig a v\u00e1rt eredm\u00e9nyt adj\u00e1k, de a nyomtat\u00f3fej nem mindig \u00e1ll meg a G28/PROBE parancsok alatt, akkor ez erre a probl\u00e9m\u00e1ra utal. A megold\u00e1s a probe_with_touch_mode: True be\u00e1ll\u00edt\u00e1sa a konfigur\u00e1ci\u00f3s f\u00e1jlban. El\u0151fordulhat, hogy a BL-Touch v3.1 egy sikeres m\u00e9r\u00e9si k\u00eds\u00e9rlet ut\u00e1n hiba\u00e1llapotba ker\u00fcl. Ennek t\u00fcnete a BL-Touch v3.1 id\u0151nk\u00e9nt villog\u00f3 f\u00e9nye, amely n\u00e9h\u00e1ny m\u00e1sodpercig tart, miut\u00e1n sikeresen \u00e9rintkezik az \u00e1ggyal. A Klippernek ezt a hib\u00e1t automatikusan t\u00f6r\u00f6lnie kell, \u00e9s \u00e1ltal\u00e1ban \u00e1rtalmatlan. A konfigur\u00e1ci\u00f3s f\u00e1jlban azonban be\u00e1ll\u00edthatjuk a probe_with_touch_mode \u00e9rt\u00e9ket, hogy elker\u00fclj\u00fck ezt a probl\u00e9m\u00e1t. Fontos! N\u00e9h\u00e1ny \"kl\u00f3n\" eszk\u00f6z \u00e9s a BL-Touch v2.0 (\u00e9s kor\u00e1bbi) cs\u00f6kkent pontoss\u00e1g\u00fa lehet, ha a probe_with_touch_mode \u00e9rt\u00e9ke True. Ennek True \u00e9rt\u00e9kre \u00e1ll\u00edt\u00e1sa a szonda telep\u00edt\u00e9s\u00e9nek idej\u00e9t is megn\u00f6veli. Ha ezt az \u00e9rt\u00e9ket egy \"kl\u00f3n\" vagy r\u00e9gebbi BL-Touch eszk\u00f6z\u00f6n konfigur\u00e1lod, mindenk\u00e9ppen teszteld a szonda pontoss\u00e1g\u00e1t az \u00e9rt\u00e9k be\u00e1ll\u00edt\u00e1sa el\u0151tt \u00e9s ut\u00e1n (a tesztel\u00e9shez haszn\u00e1ld a PROBE_ACCURACY parancsot).","title":"BL-Touch v3"},{"location":"BLTouch.html#tobbszori-szuroprobaszeru-meres","text":"Alap\u00e9rtelmez\u00e9s szerint a Klipper minden egyes m\u00e9r\u00e9sk\u00eds\u00e9rlet kezdet\u00e9n kitelep\u00edti a m\u00e9r\u0151t\u00fcsk\u00e9t, majd ut\u00e1na elrakja. A szonda ism\u00e9telt be \u00e9s kitelep\u00edt\u00e9se megn\u00f6velheti a sok m\u00e9r\u00e9st tartalmaz\u00f3 kalibr\u00e1l\u00e1si folyamatok teljes id\u0151tartam\u00e1t. A Klipper t\u00e1mogatja, hogy a m\u00e9r\u0151t\u00fcsk\u00e9t az egym\u00e1st k\u00f6vet\u0151 m\u00e9r\u00e9sek k\u00f6z\u00f6tt is kihelyezve hagyja, ami cs\u00f6kkentheti a m\u00e9r\u00e9sek teljes idej\u00e9t. Ez az \u00fczemm\u00f3d a stow_on_each_sample False \u00e9rt\u00e9kre val\u00f3 be\u00e1ll\u00edt\u00e1s\u00e1val enged\u00e9lyezhet\u0151 a konfigur\u00e1ci\u00f3s f\u00e1jlban. Fontos! A stow_on_each_sample False (Hamis) be\u00e1ll\u00edt\u00e1sa ahhoz vezethet, hogy a Klipper v\u00edzszintes nyomtat\u00f3fej mozg\u00e1sokat v\u00e9gez, mik\u00f6zben a szonda ki van helyezve. Gy\u0151z\u0151dj meg r\u00f3la, hogy minden szond\u00e1z\u00e1si m\u0171veletn\u00e9l elegend\u0151 Z-t\u00e1vols\u00e1g van, miel\u0151tt ezt az \u00e9rt\u00e9ket False \u00e9rt\u00e9kre \u00e1ll\u00edtan\u00e1. Ha nincs elegend\u0151 szabad t\u00e9r, akkor a v\u00edzszintes mozg\u00e1sok sor\u00e1n a m\u00e9r\u0151t\u00fcske beleakadhat egy akad\u00e1lyba, ami a nyomtat\u00f3 vagy m\u00e9r\u0151eszk\u00f6z k\u00e1rosod\u00e1s\u00e1t eredm\u00e9nyezheti. Fontos! Aj\u00e1nlott a True \u00e9rt\u00e9kre konfigur\u00e1lt probe_with_touch_mode haszn\u00e1lata, ha a False \u00e9rt\u00e9kre konfigur\u00e1lt stow_on_each_sample \u00e9rt\u00e9ket haszn\u00e1lod. N\u00e9h\u00e1ny \"kl\u00f3n\" eszk\u00f6z nem \u00e9rz\u00e9keli a t\u00e1rgyasztal k\u00e9s\u0151bbi \u00e9rint\u00e9s\u00e9t, ha a probe_with_touch_mode nincs be\u00e1ll\u00edtva. Minden eszk\u00f6z\u00f6n e k\u00e9t be\u00e1ll\u00edt\u00e1s kombin\u00e1ci\u00f3j\u00e1nak haszn\u00e1lata egyszer\u0171s\u00edti az eszk\u00f6z jelz\u00e9s\u00e9t, ami jav\u00edthatja az \u00e1ltal\u00e1nos stabilit\u00e1st. Vedd figyelembe azonban, hogy n\u00e9h\u00e1ny \"kl\u00f3n\" eszk\u00f6z \u00e9s a BL-Touch v2.0 (\u00e9s kor\u00e1bbi) cs\u00f6kkentett pontoss\u00e1g\u00fa lehet, ha a probe_with_touch_mode \u00e9rt\u00e9ke True. Ezeken az eszk\u00f6z\u00f6k\u00f6n \u00e9rdemes tesztelni a szonda pontoss\u00e1g\u00e1t a probe_with_touch_mode be\u00e1ll\u00edt\u00e1sa el\u0151tt \u00e9s ut\u00e1n (a tesztel\u00e9shez haszn\u00e1ld a PROBE_ACCURACY parancsot).","title":"T\u00f6bbsz\u00f6ri sz\u00far\u00f3pr\u00f3baszer\u0171 m\u00e9r\u00e9s"},{"location":"BLTouch.html#a-bl-touch-eltolasok-kalibralasa","text":"Az x_offset, y_offset \u00e9s z_offset konfigur\u00e1ci\u00f3s param\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1hoz k\u00f6vesse a Szintez\u0151 Kalibr\u00e1l\u00e1sa \u00fatmutat\u00f3ban tal\u00e1lhat\u00f3 utas\u00edt\u00e1sokat. J\u00f3 \u00f6tlet ellen\u0151rizni, hogy a Z eltol\u00e1s k\u00f6zel 1 mm. Ha nem, akkor val\u00f3sz\u00edn\u0171leg felfel\u00e9 vagy lefel\u00e9 kell mozgatni a szond\u00e1t, hogy ezt kijav\u00edtsa. Azt szeretn\u00e9, hogy aktiv\u00e1l\u00f3djon, miel\u0151tt a f\u00fav\u00f3ka a t\u00e1rgyasztalhoz \u00e9r, hogy a f\u00fav\u00f3k\u00e1hoz ragadt nyomtat\u00f3sz\u00e1l vagy a megg\u00f6rb\u00fclt t\u00e1rgyasztal ne befoly\u00e1solja a m\u00e9r\u00e9si m\u0171veletet. Ugyanakkor azonban azt szeretn\u00e9, ha a visszah\u00fazott poz\u00edci\u00f3 a lehet\u0151 legmesszebb lenne a f\u00fav\u00f3ka felett, hogy elker\u00fclje a nyomtatott t\u00e1rgyak \u00e9rintkez\u00e9s\u00e9t. Ha a szonda poz\u00edci\u00f3j\u00e1ball\u00edt\u00e1sa megt\u00f6rt\u00e9nt, akkor ism\u00e9telje meg a kalibr\u00e1l\u00e1s l\u00e9p\u00e9seit.","title":"A BL-Touch eltol\u00e1sok kalibr\u00e1l\u00e1sa"},{"location":"BLTouch.html#bl-touch-kimeneti-mod","text":"A BL-Touch V3.0 t\u00e1mogatja az 5V vagy OPEN-DRAIN kimeneti m\u00f3d be\u00e1ll\u00edt\u00e1s\u00e1t, a BL-Touch V3.1 szint\u00e9n t\u00e1mogatja ezt, de ezt a bels\u0151 EEPROM-j\u00e1ban is el tudja t\u00e1rolni. Ha az alaplapj\u00e1nak sz\u00fcks\u00e9ge van az 5V-os \u00fczemm\u00f3d fix 5V magas logikai szintj\u00e9re, akkor a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jl [bltouch] szakasz\u00e1ban a 'set_output_mode' param\u00e9tert \"5V\" \u00e9rt\u00e9kre \u00e1ll\u00edthatja. Csak akkor haszn\u00e1ld az 5V-os \u00fczemm\u00f3dot, ha az alaplapnak a bemeneti vonala 5V-os toler\u00e1ns. Ez\u00e9rt ezeknek a BL-Touch verzi\u00f3knak az alap\u00e9rtelmezett konfigur\u00e1ci\u00f3ja a OPEN-DRAIN \u00fczemm\u00f3d. Ezzel potenci\u00e1lisan k\u00e1ros\u00edthatod az alaplap CPU-j\u00e1t Ez\u00e9rt teh\u00e1t: Ha egy alaplapnak 5V-os \u00fczemm\u00f3dra van sz\u00fcks\u00e9ge \u00c9S 5V-os toler\u00e1ns a bemeneti jelvonalon \u00c9S ha ha neked BL-Touch Smart V3.0 van, akkor a 'set_output_mode-ot: 5V' param\u00e9tert kell megadni, hogy minden egyes ind\u00edt\u00e1skor biztos\u00edtsd ezt a be\u00e1ll\u00edt\u00e1st, mivel a szonda nem tudja megjegyezni a sz\u00fcks\u00e9ges be\u00e1ll\u00edt\u00e1st. ha neked BL-Touch Smart V3.1 van, akkor v\u00e1laszthatsz a 'set_output_mode: 5V' vagy az \u00fczemm\u00f3d egyszeri t\u00e1rol\u00e1sa a 'BLTOUCH_STORE MODE=5V' parancsok k\u00f6z\u00fcl, k\u00e9zzel \u00e9s NEM a 'set_output_mode:' param\u00e9ter haszn\u00e1lat\u00e1val. ha van m\u00e1s szond\u00e1ja is: A kimeneti \u00fczemm\u00f3d (v\u00e9gleges) be\u00e1ll\u00edt\u00e1s\u00e1hoz n\u00e9h\u00e1ny szond\u00e1nak van egy bek\u00f6t\u00e9se az alaplapon, amelyet el kell v\u00e1gni, vagy egy jumperrel kell be\u00e1ll\u00edtani. Ebben az esetben hagyja ki teljesen a 'set_output_mode' param\u00e9tert. Ha V3.1 szond\u00e1val rendelkezik, ne automatiz\u00e1lja vagy ism\u00e9telje a kimeneti \u00fczemm\u00f3d t\u00e1rol\u00e1s\u00e1t, hogy elker\u00fclje a szonda EEPROM-j\u00e1nak elhaszn\u00e1l\u00f3d\u00e1s\u00e1t. A BLTouch EEPROM k\u00f6r\u00fclbel\u00fcl 100.000 friss\u00edt\u00e9sre alkalmas. A napi 100 t\u00e1rol\u00e1s k\u00f6r\u00fclbel\u00fcl 3 \u00e9vnyi m\u0171k\u00f6d\u00e9st jelentene, miel\u0151tt elhaszn\u00e1l\u00f3dna. \u00cdgy a kimeneti \u00fczemm\u00f3d t\u00e1rol\u00e1s\u00e1t a V3.1-ben a gy\u00e1rt\u00f3 bonyolult m\u0171veletnek tervezte (a gy\u00e1ri alap\u00e9rtelmezett egy biztons\u00e1gos OPEN DRAIN \u00fczemm\u00f3d), \u00e9s nem alkalmas arra, hogy b\u00e1rmilyen szeletel\u0151, makr\u00f3 vagy b\u00e1rmi m\u00e1s \u00e1ltal ism\u00e9telten kiadja, lehet\u0151leg csak akkor haszn\u00e1lhat\u00f3, amikor el\u0151sz\u00f6r integr\u00e1lj\u00e1k a szond\u00e1t egy nyomtat\u00f3 alaplapj\u00e1ra.","title":"BL-Touch kimeneti m\u00f3d"},{"location":"Beaglebone.html","text":"Beaglebone \u00b6 Ez a dokumentum a Klipper futtat\u00e1s\u00e1nak folyamat\u00e1t \u00edrja le egy Beaglebone PRU-n. OS-k\u00e9pf\u00e1jl k\u00e9sz\u00edt\u00e9se \u00b6 Kezdd a Debian 9.9 2019-08-03 4GB SD IoT lemezk\u00e9p telep\u00edt\u00e9s\u00e9vel. A lemezk\u00e9pet futtathatjuk micro-SD k\u00e1rty\u00e1r\u00f3l vagy be\u00e9p\u00edtett eMMC-r\u0151l is. Ha az eMMC-t haszn\u00e1ljuk, akkor most telep\u00edts\u00fck az eMMC-re a fenti link utas\u00edt\u00e1sait k\u00f6vetve. Ezut\u00e1n l\u00e9pj be SSH-n a Beaglebone g\u00e9pre ( ssh debian@beaglebone -- a jelsz\u00f3 temppwd ) \u00e9s telep\u00edtsd a Klippert a k\u00f6vetkez\u0151 parancsok futtat\u00e1s\u00e1val: git clone https://github.com/Klipper3d/klipper ./klipper/scripts/install-beaglebone.sh Octoprint telep\u00edt\u00e9se \u00b6 Ezut\u00e1n telep\u00edthetj\u00fck az Octoprintet: git clone https://github.com/foosel/OctoPrint.git cd OctoPrint/ virtualenv venv ./venv/bin/python setup.py install \u00c9s \u00e1ll\u00edtsd be az OctoPrintet \u00fagy, hogy az ind\u00edt\u00e1skor elinduljon: sudo cp ~/OctoPrint/scripts/octoprint.init /etc/init.d/octoprint sudo chmod +x /etc/init.d/octoprint sudo cp ~/OctoPrint/scripts/octoprint.default /etc/default/octoprint sudo update-rc.d octoprint defaults M\u00f3dos\u00edtani kell az OctoPrint /etc/default/octoprint konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1t. Meg kell v\u00e1ltoztatni a OCTOPRINT_USER felhaszn\u00e1l\u00f3t debian -ra, v\u00e1ltoztassuk meg a NICELEVEL -t 0 -ra, vegy\u00fck ki a BASEDIR megjegyz\u00e9st, CONFIGFILE , \u00e9s DAEMON be\u00e1ll\u00edt\u00e1sokat, \u00e9s m\u00f3dos\u00edtsd a hivatkoz\u00e1sokat /home/pi/ -r\u0151l /home/debian/ -re: sudo nano /etc/default/octoprint Ezut\u00e1n ind\u00edtsa el az Octoprint szolg\u00e1ltat\u00e1st: sudo systemctl start octoprint Gy\u0151z\u0151dj meg r\u00f3la, hogy az OctoPrint webszerver el\u00e9rhet\u0151 - a k\u00f6vetkez\u0151 c\u00edmen kell lennie: http://beaglebone:5000/ A mikrokontroller k\u00f3dj\u00e1nak elk\u00e9sz\u00edt\u00e9se \u00b6 A Klipper mikrokontroller k\u00f3dj\u00e1nak leford\u00edt\u00e1s\u00e1hoz kezdj\u00fck a \"Beaglebone PRU\" konfigur\u00e1l\u00e1s\u00e1val: cd ~/klipper/ make menuconfig Az \u00faj mikrokontroller k\u00f3dj\u00e1nak elk\u00e9sz\u00edt\u00e9s\u00e9hez \u00e9s telep\u00edt\u00e9s\u00e9hez futtassa a k\u00f6vetkez\u0151t: sudo service klipper stop make flash sudo service klipper start Sz\u00fcks\u00e9ges tov\u00e1bb\u00e1 a mikrokontroller k\u00f3dj\u00e1nak leford\u00edt\u00e1sa \u00e9s telep\u00edt\u00e9se egy Linux gazdafolyamathoz. Konfigur\u00e1ld m\u00e1sodszor is egy \"Linux folyamat\" sz\u00e1m\u00e1ra: make menuconfig Ezut\u00e1n telep\u00edtse ezt a mikrokontroller k\u00f3dot is: sudo service klipper stop make flash sudo service klipper start H\u00e1tralev\u0151 konfigur\u00e1ci\u00f3 \u00b6 Fejezze be a telep\u00edt\u00e9st a Klipper \u00e9s az Octoprint konfigur\u00e1l\u00e1s\u00e1val a Telep\u00edt\u00e9s f\u0151dokumentumban tal\u00e1lhat\u00f3 utas\u00edt\u00e1sok szerint. Nyomtat\u00e1s a Beaglebone-on \u00b6 Sajnos a Beaglebone processzor n\u00e9ha nehezen tudja j\u00f3l futtatni az OctoPrintet. El\u0151fordult m\u00e1r, hogy \u00f6sszetett nyomtat\u00e1sokn\u00e1l a nyomtat\u00e1s akadozott (a nyomtat\u00f3 gyorsabban mozog, mint ahogy az OctoPrint mozgat\u00e1si parancsokat tud k\u00fcldeni). Ha ez el\u0151fordul, fontolja meg a \"virtual_sdcard\" funkci\u00f3 haszn\u00e1lat\u00e1t (a r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st ), hogy k\u00f6zvetlen\u00fcl a Klipperb\u0151l nyomtass.","title":"Beaglebone"},{"location":"Beaglebone.html#beaglebone","text":"Ez a dokumentum a Klipper futtat\u00e1s\u00e1nak folyamat\u00e1t \u00edrja le egy Beaglebone PRU-n.","title":"Beaglebone"},{"location":"Beaglebone.html#os-kepfajl-keszitese","text":"Kezdd a Debian 9.9 2019-08-03 4GB SD IoT lemezk\u00e9p telep\u00edt\u00e9s\u00e9vel. A lemezk\u00e9pet futtathatjuk micro-SD k\u00e1rty\u00e1r\u00f3l vagy be\u00e9p\u00edtett eMMC-r\u0151l is. Ha az eMMC-t haszn\u00e1ljuk, akkor most telep\u00edts\u00fck az eMMC-re a fenti link utas\u00edt\u00e1sait k\u00f6vetve. Ezut\u00e1n l\u00e9pj be SSH-n a Beaglebone g\u00e9pre ( ssh debian@beaglebone -- a jelsz\u00f3 temppwd ) \u00e9s telep\u00edtsd a Klippert a k\u00f6vetkez\u0151 parancsok futtat\u00e1s\u00e1val: git clone https://github.com/Klipper3d/klipper ./klipper/scripts/install-beaglebone.sh","title":"OS-k\u00e9pf\u00e1jl k\u00e9sz\u00edt\u00e9se"},{"location":"Beaglebone.html#octoprint-telepitese","text":"Ezut\u00e1n telep\u00edthetj\u00fck az Octoprintet: git clone https://github.com/foosel/OctoPrint.git cd OctoPrint/ virtualenv venv ./venv/bin/python setup.py install \u00c9s \u00e1ll\u00edtsd be az OctoPrintet \u00fagy, hogy az ind\u00edt\u00e1skor elinduljon: sudo cp ~/OctoPrint/scripts/octoprint.init /etc/init.d/octoprint sudo chmod +x /etc/init.d/octoprint sudo cp ~/OctoPrint/scripts/octoprint.default /etc/default/octoprint sudo update-rc.d octoprint defaults M\u00f3dos\u00edtani kell az OctoPrint /etc/default/octoprint konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1t. Meg kell v\u00e1ltoztatni a OCTOPRINT_USER felhaszn\u00e1l\u00f3t debian -ra, v\u00e1ltoztassuk meg a NICELEVEL -t 0 -ra, vegy\u00fck ki a BASEDIR megjegyz\u00e9st, CONFIGFILE , \u00e9s DAEMON be\u00e1ll\u00edt\u00e1sokat, \u00e9s m\u00f3dos\u00edtsd a hivatkoz\u00e1sokat /home/pi/ -r\u0151l /home/debian/ -re: sudo nano /etc/default/octoprint Ezut\u00e1n ind\u00edtsa el az Octoprint szolg\u00e1ltat\u00e1st: sudo systemctl start octoprint Gy\u0151z\u0151dj meg r\u00f3la, hogy az OctoPrint webszerver el\u00e9rhet\u0151 - a k\u00f6vetkez\u0151 c\u00edmen kell lennie: http://beaglebone:5000/","title":"Octoprint telep\u00edt\u00e9se"},{"location":"Beaglebone.html#a-mikrokontroller-kodjanak-elkeszitese","text":"A Klipper mikrokontroller k\u00f3dj\u00e1nak leford\u00edt\u00e1s\u00e1hoz kezdj\u00fck a \"Beaglebone PRU\" konfigur\u00e1l\u00e1s\u00e1val: cd ~/klipper/ make menuconfig Az \u00faj mikrokontroller k\u00f3dj\u00e1nak elk\u00e9sz\u00edt\u00e9s\u00e9hez \u00e9s telep\u00edt\u00e9s\u00e9hez futtassa a k\u00f6vetkez\u0151t: sudo service klipper stop make flash sudo service klipper start Sz\u00fcks\u00e9ges tov\u00e1bb\u00e1 a mikrokontroller k\u00f3dj\u00e1nak leford\u00edt\u00e1sa \u00e9s telep\u00edt\u00e9se egy Linux gazdafolyamathoz. Konfigur\u00e1ld m\u00e1sodszor is egy \"Linux folyamat\" sz\u00e1m\u00e1ra: make menuconfig Ezut\u00e1n telep\u00edtse ezt a mikrokontroller k\u00f3dot is: sudo service klipper stop make flash sudo service klipper start","title":"A mikrokontroller k\u00f3dj\u00e1nak elk\u00e9sz\u00edt\u00e9se"},{"location":"Beaglebone.html#hatralevo-konfiguracio","text":"Fejezze be a telep\u00edt\u00e9st a Klipper \u00e9s az Octoprint konfigur\u00e1l\u00e1s\u00e1val a Telep\u00edt\u00e9s f\u0151dokumentumban tal\u00e1lhat\u00f3 utas\u00edt\u00e1sok szerint.","title":"H\u00e1tralev\u0151 konfigur\u00e1ci\u00f3"},{"location":"Beaglebone.html#nyomtatas-a-beaglebone-on","text":"Sajnos a Beaglebone processzor n\u00e9ha nehezen tudja j\u00f3l futtatni az OctoPrintet. El\u0151fordult m\u00e1r, hogy \u00f6sszetett nyomtat\u00e1sokn\u00e1l a nyomtat\u00e1s akadozott (a nyomtat\u00f3 gyorsabban mozog, mint ahogy az OctoPrint mozgat\u00e1si parancsokat tud k\u00fcldeni). Ha ez el\u0151fordul, fontolja meg a \"virtual_sdcard\" funkci\u00f3 haszn\u00e1lat\u00e1t (a r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st ), hogy k\u00f6zvetlen\u00fcl a Klipperb\u0151l nyomtass.","title":"Nyomtat\u00e1s a Beaglebone-on"},{"location":"Bed_Level.html","text":"T\u00e1rgyasztal szintez\u00e9se \u00b6 A t\u00e1rgyasztal szintez\u00e9se (n\u00e9ha m\u00e1s n\u00e9ven \"bed tramming\") kritikus fontoss\u00e1g\u00fa a j\u00f3 min\u0151s\u00e9g\u0171 nyomatok el\u0151\u00e1ll\u00edt\u00e1s\u00e1hoz. Ha a t\u00e1rgyasztal nem megfelel\u0151en van \"szintezve\", az rossz tapad\u00e1shoz, \"vetemed\u00e9shez\" \u00e9s finom probl\u00e9m\u00e1khoz vezethet a nyomtat\u00e1s sor\u00e1n. Ez a dokumentum \u00fatmutat\u00f3k\u00e9nt szolg\u00e1l a t\u00e1rgyasztal szintez\u00e9s Klipperben t\u00f6rt\u00e9n\u0151 elv\u00e9gz\u00e9s\u00e9hez. Fontos meg\u00e9rteni a t\u00e1rgyasztal szintez\u00e9s\u00e9nek c\u00e9lj\u00e1t. Ha a nyomtat\u00f3t egy X0 Y0 Z10 poz\u00edci\u00f3ba ir\u00e1ny\u00edtjuk a nyomtat\u00e1s sor\u00e1n, akkor a c\u00e9l az, hogy a nyomtat\u00f3 f\u00fav\u00f3k\u00e1ja pontosan 10 mm-re legyen a nyomtat\u00f3 t\u00e1rgyasztal\u00e1t\u00f3l. Tov\u00e1bb\u00e1, ha a nyomtat\u00f3t ezut\u00e1n a X50 Z10 poz\u00edci\u00f3ba ir\u00e1ny\u00edtjuk, a c\u00e9l az, hogy a f\u00fav\u00f3ka pontosan 10 mm t\u00e1vols\u00e1got tartson a t\u00e1rgyasztalt\u00f3l a teljes v\u00edzszintes mozg\u00e1s sor\u00e1n. A j\u00f3 min\u0151s\u00e9g\u0171 nyomatok \u00e9rdek\u00e9ben a nyomtat\u00f3t \u00fagy kell kalibr\u00e1lni, hogy a Z t\u00e1vols\u00e1gok k\u00f6r\u00fclbel\u00fcl 25 mikron (.025 mm) pontoss\u00e1g\u00faak legyenek. Ez egy kis t\u00e1vols\u00e1g - l\u00e9nyegesen kisebb, mint egy \u00e1tlagos emberi hajsz\u00e1l sz\u00e9less\u00e9ge. Ez a m\u00e9retar\u00e1ny nem m\u00e9rhet\u0151 \"szemmel\". Finom hat\u00e1sok (mint p\u00e9ld\u00e1ul a h\u0151t\u00e1gul\u00e1s) befoly\u00e1solj\u00e1k az ilyen sk\u00e1l\u00e1n v\u00e9gzett m\u00e9r\u00e9seket. A nagy pontoss\u00e1g el\u00e9r\u00e9s\u00e9nek titka az ism\u00e9telhet\u0151 folyamat \u00e9s a nyomtat\u00f3 saj\u00e1t mozg\u00e1srendszer\u00e9nek nagy pontoss\u00e1g\u00e1t kihaszn\u00e1l\u00f3 szintez\u00e9si m\u00f3dszer alkalmaz\u00e1sa. V\u00e1laszd ki a megfelel\u0151 kalibr\u00e1ci\u00f3s mechanizmust \u00b6 A k\u00fcl\u00f6nb\u00f6z\u0151 t\u00edpus\u00fa nyomtat\u00f3k k\u00fcl\u00f6nb\u00f6z\u0151 m\u00f3dszereket haszn\u00e1lnak a t\u00e1rgyasztal szintez\u00e9s\u00e9nek elv\u00e9gz\u00e9s\u00e9re. Ezek mindegyike v\u00e9gs\u0151 soron a \"pap\u00edrteszt\" (l\u00e1sd al\u00e1bb) f\u00fcggv\u00e9nye. Az adott nyomtat\u00f3t\u00edpusra vonatkoz\u00f3 t\u00e9nyleges elj\u00e1r\u00e1st azonban m\u00e1s dokumentumok \u00edrj\u00e1k le. A kalibr\u00e1ci\u00f3s eszk\u00f6z\u00f6k futtat\u00e1sa el\u0151tt felt\u00e9tlen\u00fcl futtassa le a Konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9sek dokumentumban le\u00edrt ellen\u0151rz\u00e9seket. A nyomtat\u00f3 alapvet\u0151 mozg\u00e1s\u00e1nak ellen\u0151rz\u00e9se sz\u00fcks\u00e9ges a t\u00e1rgyasztal szintez\u00e9s\u00e9nek elv\u00e9gz\u00e9se el\u0151tt. A \"automatikus Z-szond\u00e1val\" rendelkez\u0151 nyomtat\u00f3k eset\u00e9ben a szond\u00e1t mindenk\u00e9ppen kalibr\u00e1lja a Probe Calibrate dokumentumban tal\u00e1lhat\u00f3 utas\u00edt\u00e1sok szerint. Delta nyomtat\u00f3k eset\u00e9ben l\u00e1sd a Delta Calibrate dokumentumot. Szintez\u0151csavarokkal \u00e9s hagyom\u00e1nyos Z v\u00e9g\u00e1ll\u00e1ssal rendelkez\u0151 nyomtat\u00f3k eset\u00e9ben l\u00e1sd a Manual Level dokumentumot. A kalibr\u00e1l\u00e1s sor\u00e1n sz\u00fcks\u00e9g lehet arra, hogy a nyomtat\u00f3 Z position_min \u00e9rt\u00e9k\u00e9t negat\u00edv sz\u00e1mra \u00e1ll\u00edtsd be (pl. position_min = -2 ). A nyomtat\u00f3 a kalibr\u00e1ci\u00f3s rutinok sor\u00e1n is v\u00e9grehajtja a hat\u00e1r\u00e9rt\u00e9k-ellen\u0151rz\u00e9st. A negat\u00edv sz\u00e1m be\u00e1ll\u00edt\u00e1sa lehet\u0151v\u00e9 teszi, hogy a nyomtat\u00f3 a t\u00e1rgyasztal n\u00e9vleges poz\u00edci\u00f3ja al\u00e1 mozogjon, ami seg\u00edthet a t\u00e1rgyasztal t\u00e9nyleges poz\u00edci\u00f3j\u00e1nak meghat\u00e1roz\u00e1sakor. A \"pap\u00edrteszt\" \u00b6 A t\u00e1rgyasztal szintez\u00e9s\u00e9nek els\u0151dleges mechanizmusa a \"pap\u00edrteszt\". Ennek sor\u00e1n egy norm\u00e1l \"f\u00e9nym\u00e1sol\u00f3pap\u00edrt\" helyez\u00fcnk a nyomtat\u00f3 t\u00e1rgyasztala \u00e9s a f\u00fav\u00f3ka k\u00f6z\u00e9, majd a f\u00fav\u00f3k\u00e1t k\u00fcl\u00f6nb\u00f6z\u0151 Z magass\u00e1gba \u00e1ll\u00edtjuk, am\u00edg a pap\u00edr el\u0151re-h\u00e1tra tol\u00e1sa k\u00f6zben egy kis s\u00farl\u00f3d\u00e1st nem \u00e9rz\u00fcnk. Fontos meg\u00e9rteni a \"pap\u00edrtesztet\" m\u00e9g akkor is, ha valakinek van \"automatikus szintez\u0151je\". Mag\u00e1t a szond\u00e1t gyakran kalibr\u00e1lni kell a j\u00f3 eredm\u00e9nyek el\u00e9r\u00e9s\u00e9hez. A szonda kalibr\u00e1l\u00e1sa a \"pap\u00edrteszt\" seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nik. A pap\u00edrteszt elv\u00e9gz\u00e9s\u00e9hez v\u00e1gjon ki egy kis t\u00e9glalap alak\u00fa pap\u00edrdarabot egy oll\u00f3val (pl. 5x3 cm). A pap\u00edr vastags\u00e1ga \u00e1ltal\u00e1ban k\u00f6r\u00fclbel\u00fcl 100 mikron (0,100 mm). (A pap\u00edr pontos vastags\u00e1ga nem d\u00f6nt\u0151 fontoss\u00e1g\u00fa.) A pap\u00edrteszt els\u0151 l\u00e9p\u00e9se a nyomtat\u00f3 f\u00fav\u00f3k\u00e1j\u00e1nak \u00e9s t\u00e1rgyasztal\u00e1nak ellen\u0151rz\u00e9se. Gy\u0151z\u0151dj meg r\u00f3la, hogy nincs m\u0171anyag (vagy m\u00e1s t\u00f6rmel\u00e9k) a f\u00fav\u00f3k\u00e1n vagy a t\u00e1rgyasztalon. Ellen\u0151rizd a f\u00fav\u00f3k\u00e1t \u00e9s a t\u00e1rgyasztalt, hogy nincs-e benne/rajta m\u0171anyag! Ha valaki mindig egy adott lapra vagy fel\u00fcletre nyomtat, akkor a pap\u00edrtesztet az adott lappal/fel\u00fclettel a hely\u00e9n v\u00e9gezheti el. Vedd azonban figyelembe, hogy maga a lap vastags\u00e1ggal rendelkezik, \u00e9s a k\u00fcl\u00f6nb\u00f6z\u0151 lapok (vagy b\u00e1rmely m\u00e1s nyomtat\u00e1si fel\u00fclet) hat\u00e1ssal lesznek a Z m\u00e9r\u00e9sekre. Mindenk\u00e9ppen v\u00e9gezd el \u00fajra a pap\u00edrtesztet, hogy minden egyes haszn\u00e1lt fel\u00fclett\u00edpust megm\u00e9rj. Ha m\u0171anyag van a f\u00fav\u00f3k\u00e1n, akkor meleg\u00edtse fel az extrudert, \u00e9s egy f\u00e9m csipesszel t\u00e1vol\u00edtsa el a m\u0171anyagot. V\u00e1rja meg, am\u00edg az extruder teljesen leh\u0171l szobah\u0151m\u00e9rs\u00e9klet\u0171re, miel\u0151tt folytatja a pap\u00edrtesztet. Am\u00edg a f\u00fav\u00f3ka h\u0171l, a f\u00e9mcsipesszel t\u00e1vol\u00edtsa el az esetlegesen kisziv\u00e1rg\u00f3 m\u0171anyagot. A pap\u00edrtesztet mindig akkor v\u00e9gezd el, amikor a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal szobah\u0151m\u00e9rs\u00e9kleten van! A f\u00fav\u00f3ka meleg\u00edt\u00e9sekor a h\u0151t\u00e1gul\u00e1s miatt megv\u00e1ltozik a helyzete (a t\u00e1rgyasztalhoz k\u00e9pest). Ez a h\u0151t\u00e1gul\u00e1s jellemz\u0151en 100 mikron k\u00f6r\u00fcli, ami k\u00f6r\u00fclbel\u00fcl ugyanolyan m\u00e9ret, mint egy tipikus nyomtat\u00f3pap\u00edr. A h\u0151t\u00e1gul\u00e1s pontos m\u00e9rt\u00e9ke nem d\u00f6nt\u0151, ahogyan a pap\u00edr pontos vastags\u00e1ga sem d\u00f6nt\u0151. Induljunk ki abb\u00f3l a felt\u00e9telez\u00e9sb\u0151l, hogy a kett\u0151 egyenl\u0151 (a k\u00e9t t\u00e1vols\u00e1g k\u00f6z\u00f6tti k\u00fcl\u00f6nbs\u00e9g meghat\u00e1roz\u00e1s\u00e1nak m\u00f3dszer\u00e9t l\u00e1sd al\u00e1bb). Furcs\u00e1nak t\u0171nhet, hogy a t\u00e1vols\u00e1got szobah\u0151m\u00e9rs\u00e9kleten kalibr\u00e1ljuk, amikor a c\u00e9l az, hogy meleg\u00edt\u00e9skor egyenletes t\u00e1vols\u00e1got \u00e9rj\u00fcnk el. Ha azonban a f\u00fav\u00f3k\u00e1t meleg\u00edtve kalibr\u00e1ljuk, akkor hajlamos kis mennyis\u00e9g\u0171 olvadt m\u0171anyagot juttatni a pap\u00edrra, ami megv\u00e1ltoztatja az \u00e9rz\u00e9kelt s\u00farl\u00f3d\u00e1s m\u00e9rt\u00e9k\u00e9t. Ez megnehez\u00edti a j\u00f3 kalibr\u00e1ci\u00f3t. Ha a szintez\u00e9s felf\u0171t\u00f6tt \u00e1llapotban t\u00f6rt\u00e9nik, akkor nagym\u00e9rt\u00e9kben megn\u0151 a meg\u00e9g\u00e9s vesz\u00e9lye is. A h\u0151t\u00e1gul\u00e1s m\u00e9rt\u00e9ke stabil, \u00edgy a kalibr\u00e1l\u00e1s sor\u00e1n k\u00e9s\u0151bb k\u00f6nnyen figyelembe vehet\u0151. Automatiz\u00e1lt eszk\u00f6zzel hat\u00e1rozza meg a pontos Z magass\u00e1got! A Klipperben sz\u00e1mos seg\u00e9dszkript \u00e1ll rendelkez\u00e9sre (pl. MANUAL_PROBE, Z_ENDSTOP_CALIBRATE, PROBE_CALIBRATE, DELTA_CALIBRATE). L\u00e1sd a documentumokat fentebb le\u00edrva , hogy v\u00e1lassz k\u00f6z\u00fcl\u00fck egyet. Futtassa a megfelel\u0151 parancsot az OctoPrint konzolj\u00e1ban. A szkript az OctoPrint termin\u00e1l kimenet\u00e9n k\u00e9ri a felhaszn\u00e1l\u00f3 beavatkoz\u00e1s\u00e1t. Valahogy \u00edgy fog kin\u00e9zni: Recv: // Starting manual Z probe. Use TESTZ to adjust position. Recv: // Finish with ACCEPT or ABORT command. Recv: // Z position: ?????? --> 5.000 <-- ?????? A f\u00fav\u00f3ka aktu\u00e1lis magass\u00e1ga (ahogyan azt a nyomtat\u00f3 jelenleg \u00e9rtelmezi) a \"--> <--\" k\u00f6z\u00f6tt jelenik meg. A jobb oldali sz\u00e1m a legut\u00f3bbi m\u00e9r\u00e9s magass\u00e1ga, amely \u00e9ppen nagyobb, mint az aktu\u00e1lis magass\u00e1g, a bal oldali pedig a legut\u00f3bbi m\u00e9r\u00e9s magass\u00e1ga, amely kisebb, mint az aktu\u00e1lis magass\u00e1g (vagy ??????, ha nem t\u00f6rt\u00e9nt k\u00eds\u00e9rlet). Helyezze a pap\u00edrt a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00e9. Hasznos lehet a pap\u00edr egyik sark\u00e1t behajtani, hogy k\u00f6nnyebb legyen megfogni. (Pr\u00f3b\u00e1lja \u00fagy, hogy ne nyomja le a t\u00e1rgyasztalt, amikor a pap\u00edrt el\u0151re-h\u00e1tra mozgatja). A TESTZ paranccsal k\u00e9rheti, hogy a f\u00fav\u00f3ka k\u00f6zelebb menjen a pap\u00edrhoz. P\u00e9ld\u00e1ul: TESTZ Z=-.1 A TESTZ parancs a f\u00fav\u00f3k\u00e1t az aktu\u00e1lis poz\u00edci\u00f3j\u00e1t\u00f3l relat\u00edv t\u00e1vols\u00e1gra mozgatja. (Teh\u00e1t a Z=-.1 azt k\u00e9ri, hogy a f\u00fav\u00f3ka 0,1 mm-rel k\u00f6zelebb ker\u00fclj\u00f6n a t\u00e1rgyasztalhoz). Miut\u00e1n a f\u00fav\u00f3ka meg\u00e1llt, tolja el\u0151re-h\u00e1tra a pap\u00edrt, hogy ellen\u0151rizd, hogy a f\u00fav\u00f3ka \u00e9rintkezik-e a pap\u00edrral, \u00e9s hogy \u00e9rezze a s\u00farl\u00f3d\u00e1s m\u00e9rt\u00e9k\u00e9t. Folytassa a TESTZ parancsok kiad\u00e1s\u00e1t mindaddig, am\u00edg a pap\u00edrral val\u00f3 tesztel\u00e9sekkor nem \u00e9rez egy kis s\u00farl\u00f3d\u00e1st. Ha t\u00fal nagy a s\u00farl\u00f3d\u00e1s, akkor egy pozit\u00edv Z \u00e9rt\u00e9ket haszn\u00e1lhatunk a f\u00fav\u00f3ka felfel\u00e9 mozgat\u00e1s\u00e1ra. Lehet\u0151s\u00e9g van a TESTZ Z=+ vagy a TESTZ Z=- haszn\u00e1lat\u00e1ra is, hogy \"felezz\u00fck\" az utols\u00f3 poz\u00edci\u00f3t - azaz k\u00e9t poz\u00edci\u00f3 k\u00f6z\u00f6tt f\u00e9l\u00faton l\u00e9v\u0151 poz\u00edci\u00f3ba l\u00e9pj\u00fcnk. P\u00e9ld\u00e1ul, ha a TESTZ parancs a k\u00f6vetkez\u0151 felsz\u00f3l\u00edt\u00e1st adn\u00e1: Recv: // Z position: 0.130 --> 0.230 <-- 0.280 Ezut\u00e1n egy TESTZ Z=- a f\u00fav\u00f3k\u00e1t 0,180 Z poz\u00edci\u00f3ba (a 0,130 \u00e9s 0,230 k\u00f6z\u00f6tti f\u00e9l\u00fatra) mozgatja. Ezt a funkci\u00f3t arra lehet haszn\u00e1lni, hogy seg\u00edtsen gyorsan lesz\u0171k\u00edteni egy konzisztens s\u00farl\u00f3d\u00e1st. A Z=++ \u00e9s Z=-- parancsok haszn\u00e1lat\u00e1val k\u00f6zvetlen\u00fcl visszat\u00e9rhet\u00fcnk egy kor\u00e1bbi m\u00e9r\u00e9shez - p\u00e9ld\u00e1ul a fenti felsz\u00f3l\u00edt\u00e1s ut\u00e1n a TESTZ Z=-- parancs a f\u00fav\u00f3k\u00e1t a 0,130-as Z poz\u00edci\u00f3ba mozgatn\u00e1. Miut\u00e1n \u00e9rz\u00e9kelhet\u0151 egy kis s\u00farl\u00f3d\u00e1s, add ki az ACCEPT parancsot: ACCEPT Ez elfogadja a megadott Z magass\u00e1got, \u00e9s az adott kalibr\u00e1ci\u00f3s eszk\u00f6zzel folytatja a munk\u00e1t. Az \u00e9rz\u00e9kelt s\u00farl\u00f3d\u00e1s pontos m\u00e9rt\u00e9ke nem d\u00f6nt\u0151 fontoss\u00e1g\u00fa, ahogyan a h\u0151t\u00e1gul\u00e1s m\u00e9rt\u00e9ke \u00e9s a pap\u00edr pontos sz\u00e9less\u00e9ge sem d\u00f6nt\u0151 fontoss\u00e1g\u00fa. Csak pr\u00f3b\u00e1ljon meg minden egyes alkalommal ugyanannyi s\u00farl\u00f3d\u00e1st el\u00e9rni, amikor a tesztet lefuttatja. Ha a teszt sor\u00e1n valami rosszul megy, az ABORT paranccsal kil\u00e9phet\u00fcnk a kalibr\u00e1ci\u00f3s eszk\u00f6zb\u0151l. A h\u0151t\u00e1gul\u00e1s meghat\u00e1roz\u00e1sa \u00b6 Miut\u00e1n sikeresen elv\u00e9gezte a t\u00e1rgyasztal szintez\u00e9s\u00e9t, pontosabb \u00e9rt\u00e9ket lehet kisz\u00e1m\u00edtani a \"h\u0151t\u00e1gul\u00e1s\", \"a pap\u00edr vastags\u00e1ga\" \u00e9s \"a pap\u00edrteszt sor\u00e1n \u00e9rz\u00e9kelhet\u0151 s\u00farl\u00f3d\u00e1s\" egy\u00fcttes hat\u00e1s\u00e1ra. Ilyen t\u00edpus\u00fa sz\u00e1m\u00edt\u00e1sokra \u00e1ltal\u00e1ban nincs sz\u00fcks\u00e9g, mivel a legt\u00f6bb felhaszn\u00e1l\u00f3 szerint az egyszer\u0171 \"pap\u00edrteszt\" j\u00f3 eredm\u00e9nyeket ad. A sz\u00e1m\u00edt\u00e1s legegyszer\u0171bben \u00fagy v\u00e9gezhet\u0151 el, ha kinyomtatunk egy olyan tesztobjektumot, amelynek minden oldal\u00e1n egyenes falak vannak. Ehhez a docs/prints/square.stl f\u00e1jlban tal\u00e1lhat\u00f3 nagy, \u00fcreges n\u00e9gyzetet haszn\u00e1lhatjuk. Az objektum szeletel\u00e9sekor gy\u0151z\u0151dj meg r\u00f3la, hogy a szeletel\u0151 az els\u0151 szinthez ugyanazt a r\u00e9tegmagass\u00e1got \u00e9s extrud\u00e1l\u00e1si sz\u00e9less\u00e9get haszn\u00e1lja, mint az \u00f6sszes tov\u00e1bbi r\u00e9teghez. Haszn\u00e1lj durva r\u00e9tegmagass\u00e1got (a r\u00e9tegmagass\u00e1gnak a f\u00fav\u00f3ka \u00e1tm\u00e9r\u0151j\u00e9nek k\u00f6r\u00fclbel\u00fcl 75%-\u00e1nak kell lennie), \u00e9s ne haszn\u00e1lj peremet vagy szokny\u00e1t. Nyomtasd ki a tesztobjektumot, v\u00e1rja meg, am\u00edg leh\u0171l, \u00e9s vedd le a t\u00e1rgyasztalr\u00f3l. Ellen\u0151rizd a t\u00e1rgy legals\u00f3 r\u00e9teg\u00e9t. (Az is hasznos lehet, ha ujj\u00e1t vagy k\u00f6rm\u00e9t v\u00e9gigh\u00fazza az als\u00f3 sz\u00e9l\u00e9n.) Ha azt tapasztaljuk, hogy az als\u00f3 r\u00e9teg a t\u00e1rgy minden oldala ment\u00e9n kiss\u00e9 kidudorodik, akkor ez azt jelzi, hogy a f\u00fav\u00f3ka kiss\u00e9 k\u00f6zelebb volt a t\u00e1rgyasztalhoz, mint kellett volna. A magass\u00e1g n\u00f6vel\u00e9s\u00e9hez kiadhatunk egy SET_GCODE_OFFSET Z=+.010 parancsot. A k\u00e9s\u0151bbi nyomtat\u00e1sokban ellen\u0151rizhetj\u00fck ezt a viselked\u00e9st, \u00e9s sz\u00fcks\u00e9g szerint tov\u00e1bbi kiigaz\u00edt\u00e1sokat v\u00e9gezhet\u00fcnk. Az ilyen t\u00edpus\u00fa be\u00e1ll\u00edt\u00e1sok jellemz\u0151en 10 mikronokban (.010mm) t\u00f6rt\u00e9nnek. Ha az als\u00f3 r\u00e9teg keskenyebbnek t\u0171nik, mint a k\u00f6vetkez\u0151 r\u00e9tegek, akkor a SET_GCODE_OFFSET paranccsal negat\u00edv Z-be\u00e1ll\u00edt\u00e1st v\u00e9gezhet\u00fcnk. Ha bizonytalanok vagyunk, akkor a Z-be\u00e1ll\u00edt\u00e1st addig cs\u00f6kkenthetj\u00fck, am\u00edg a nyomatok als\u00f3 r\u00e9tege egy kis dudort nem mutat, majd addig cs\u00f6kkenthetj\u00fck, am\u00edg az el nem t\u0171nik. A legegyszer\u0171bb m\u00f3dja a k\u00edv\u00e1nt Z-korrig\u00e1l\u00e1snak, ha l\u00e9trehoz egy START_PRINT G-k\u00f3d makr\u00f3t. A szeletel\u0151 \u00fagy int\u00e9zi, hogy a makr\u00f3 minden nyomtat\u00e1s kezdetekor megh\u00edvja ezt a parancsot, \u00e9s hozz\u00e1ad egy SET_GCODE_OFFSET parancsot. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a szeletel\u0151k dokumentumot.","title":"T\u00e1rgyasztal szintez\u00e9se"},{"location":"Bed_Level.html#targyasztal-szintezese","text":"A t\u00e1rgyasztal szintez\u00e9se (n\u00e9ha m\u00e1s n\u00e9ven \"bed tramming\") kritikus fontoss\u00e1g\u00fa a j\u00f3 min\u0151s\u00e9g\u0171 nyomatok el\u0151\u00e1ll\u00edt\u00e1s\u00e1hoz. Ha a t\u00e1rgyasztal nem megfelel\u0151en van \"szintezve\", az rossz tapad\u00e1shoz, \"vetemed\u00e9shez\" \u00e9s finom probl\u00e9m\u00e1khoz vezethet a nyomtat\u00e1s sor\u00e1n. Ez a dokumentum \u00fatmutat\u00f3k\u00e9nt szolg\u00e1l a t\u00e1rgyasztal szintez\u00e9s Klipperben t\u00f6rt\u00e9n\u0151 elv\u00e9gz\u00e9s\u00e9hez. Fontos meg\u00e9rteni a t\u00e1rgyasztal szintez\u00e9s\u00e9nek c\u00e9lj\u00e1t. Ha a nyomtat\u00f3t egy X0 Y0 Z10 poz\u00edci\u00f3ba ir\u00e1ny\u00edtjuk a nyomtat\u00e1s sor\u00e1n, akkor a c\u00e9l az, hogy a nyomtat\u00f3 f\u00fav\u00f3k\u00e1ja pontosan 10 mm-re legyen a nyomtat\u00f3 t\u00e1rgyasztal\u00e1t\u00f3l. Tov\u00e1bb\u00e1, ha a nyomtat\u00f3t ezut\u00e1n a X50 Z10 poz\u00edci\u00f3ba ir\u00e1ny\u00edtjuk, a c\u00e9l az, hogy a f\u00fav\u00f3ka pontosan 10 mm t\u00e1vols\u00e1got tartson a t\u00e1rgyasztalt\u00f3l a teljes v\u00edzszintes mozg\u00e1s sor\u00e1n. A j\u00f3 min\u0151s\u00e9g\u0171 nyomatok \u00e9rdek\u00e9ben a nyomtat\u00f3t \u00fagy kell kalibr\u00e1lni, hogy a Z t\u00e1vols\u00e1gok k\u00f6r\u00fclbel\u00fcl 25 mikron (.025 mm) pontoss\u00e1g\u00faak legyenek. Ez egy kis t\u00e1vols\u00e1g - l\u00e9nyegesen kisebb, mint egy \u00e1tlagos emberi hajsz\u00e1l sz\u00e9less\u00e9ge. Ez a m\u00e9retar\u00e1ny nem m\u00e9rhet\u0151 \"szemmel\". Finom hat\u00e1sok (mint p\u00e9ld\u00e1ul a h\u0151t\u00e1gul\u00e1s) befoly\u00e1solj\u00e1k az ilyen sk\u00e1l\u00e1n v\u00e9gzett m\u00e9r\u00e9seket. A nagy pontoss\u00e1g el\u00e9r\u00e9s\u00e9nek titka az ism\u00e9telhet\u0151 folyamat \u00e9s a nyomtat\u00f3 saj\u00e1t mozg\u00e1srendszer\u00e9nek nagy pontoss\u00e1g\u00e1t kihaszn\u00e1l\u00f3 szintez\u00e9si m\u00f3dszer alkalmaz\u00e1sa.","title":"T\u00e1rgyasztal szintez\u00e9se"},{"location":"Bed_Level.html#valaszd-ki-a-megfelelo-kalibracios-mechanizmust","text":"A k\u00fcl\u00f6nb\u00f6z\u0151 t\u00edpus\u00fa nyomtat\u00f3k k\u00fcl\u00f6nb\u00f6z\u0151 m\u00f3dszereket haszn\u00e1lnak a t\u00e1rgyasztal szintez\u00e9s\u00e9nek elv\u00e9gz\u00e9s\u00e9re. Ezek mindegyike v\u00e9gs\u0151 soron a \"pap\u00edrteszt\" (l\u00e1sd al\u00e1bb) f\u00fcggv\u00e9nye. Az adott nyomtat\u00f3t\u00edpusra vonatkoz\u00f3 t\u00e9nyleges elj\u00e1r\u00e1st azonban m\u00e1s dokumentumok \u00edrj\u00e1k le. A kalibr\u00e1ci\u00f3s eszk\u00f6z\u00f6k futtat\u00e1sa el\u0151tt felt\u00e9tlen\u00fcl futtassa le a Konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9sek dokumentumban le\u00edrt ellen\u0151rz\u00e9seket. A nyomtat\u00f3 alapvet\u0151 mozg\u00e1s\u00e1nak ellen\u0151rz\u00e9se sz\u00fcks\u00e9ges a t\u00e1rgyasztal szintez\u00e9s\u00e9nek elv\u00e9gz\u00e9se el\u0151tt. A \"automatikus Z-szond\u00e1val\" rendelkez\u0151 nyomtat\u00f3k eset\u00e9ben a szond\u00e1t mindenk\u00e9ppen kalibr\u00e1lja a Probe Calibrate dokumentumban tal\u00e1lhat\u00f3 utas\u00edt\u00e1sok szerint. Delta nyomtat\u00f3k eset\u00e9ben l\u00e1sd a Delta Calibrate dokumentumot. Szintez\u0151csavarokkal \u00e9s hagyom\u00e1nyos Z v\u00e9g\u00e1ll\u00e1ssal rendelkez\u0151 nyomtat\u00f3k eset\u00e9ben l\u00e1sd a Manual Level dokumentumot. A kalibr\u00e1l\u00e1s sor\u00e1n sz\u00fcks\u00e9g lehet arra, hogy a nyomtat\u00f3 Z position_min \u00e9rt\u00e9k\u00e9t negat\u00edv sz\u00e1mra \u00e1ll\u00edtsd be (pl. position_min = -2 ). A nyomtat\u00f3 a kalibr\u00e1ci\u00f3s rutinok sor\u00e1n is v\u00e9grehajtja a hat\u00e1r\u00e9rt\u00e9k-ellen\u0151rz\u00e9st. A negat\u00edv sz\u00e1m be\u00e1ll\u00edt\u00e1sa lehet\u0151v\u00e9 teszi, hogy a nyomtat\u00f3 a t\u00e1rgyasztal n\u00e9vleges poz\u00edci\u00f3ja al\u00e1 mozogjon, ami seg\u00edthet a t\u00e1rgyasztal t\u00e9nyleges poz\u00edci\u00f3j\u00e1nak meghat\u00e1roz\u00e1sakor.","title":"V\u00e1laszd ki a megfelel\u0151 kalibr\u00e1ci\u00f3s mechanizmust"},{"location":"Bed_Level.html#a-papirteszt","text":"A t\u00e1rgyasztal szintez\u00e9s\u00e9nek els\u0151dleges mechanizmusa a \"pap\u00edrteszt\". Ennek sor\u00e1n egy norm\u00e1l \"f\u00e9nym\u00e1sol\u00f3pap\u00edrt\" helyez\u00fcnk a nyomtat\u00f3 t\u00e1rgyasztala \u00e9s a f\u00fav\u00f3ka k\u00f6z\u00e9, majd a f\u00fav\u00f3k\u00e1t k\u00fcl\u00f6nb\u00f6z\u0151 Z magass\u00e1gba \u00e1ll\u00edtjuk, am\u00edg a pap\u00edr el\u0151re-h\u00e1tra tol\u00e1sa k\u00f6zben egy kis s\u00farl\u00f3d\u00e1st nem \u00e9rz\u00fcnk. Fontos meg\u00e9rteni a \"pap\u00edrtesztet\" m\u00e9g akkor is, ha valakinek van \"automatikus szintez\u0151je\". Mag\u00e1t a szond\u00e1t gyakran kalibr\u00e1lni kell a j\u00f3 eredm\u00e9nyek el\u00e9r\u00e9s\u00e9hez. A szonda kalibr\u00e1l\u00e1sa a \"pap\u00edrteszt\" seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nik. A pap\u00edrteszt elv\u00e9gz\u00e9s\u00e9hez v\u00e1gjon ki egy kis t\u00e9glalap alak\u00fa pap\u00edrdarabot egy oll\u00f3val (pl. 5x3 cm). A pap\u00edr vastags\u00e1ga \u00e1ltal\u00e1ban k\u00f6r\u00fclbel\u00fcl 100 mikron (0,100 mm). (A pap\u00edr pontos vastags\u00e1ga nem d\u00f6nt\u0151 fontoss\u00e1g\u00fa.) A pap\u00edrteszt els\u0151 l\u00e9p\u00e9se a nyomtat\u00f3 f\u00fav\u00f3k\u00e1j\u00e1nak \u00e9s t\u00e1rgyasztal\u00e1nak ellen\u0151rz\u00e9se. Gy\u0151z\u0151dj meg r\u00f3la, hogy nincs m\u0171anyag (vagy m\u00e1s t\u00f6rmel\u00e9k) a f\u00fav\u00f3k\u00e1n vagy a t\u00e1rgyasztalon. Ellen\u0151rizd a f\u00fav\u00f3k\u00e1t \u00e9s a t\u00e1rgyasztalt, hogy nincs-e benne/rajta m\u0171anyag! Ha valaki mindig egy adott lapra vagy fel\u00fcletre nyomtat, akkor a pap\u00edrtesztet az adott lappal/fel\u00fclettel a hely\u00e9n v\u00e9gezheti el. Vedd azonban figyelembe, hogy maga a lap vastags\u00e1ggal rendelkezik, \u00e9s a k\u00fcl\u00f6nb\u00f6z\u0151 lapok (vagy b\u00e1rmely m\u00e1s nyomtat\u00e1si fel\u00fclet) hat\u00e1ssal lesznek a Z m\u00e9r\u00e9sekre. Mindenk\u00e9ppen v\u00e9gezd el \u00fajra a pap\u00edrtesztet, hogy minden egyes haszn\u00e1lt fel\u00fclett\u00edpust megm\u00e9rj. Ha m\u0171anyag van a f\u00fav\u00f3k\u00e1n, akkor meleg\u00edtse fel az extrudert, \u00e9s egy f\u00e9m csipesszel t\u00e1vol\u00edtsa el a m\u0171anyagot. V\u00e1rja meg, am\u00edg az extruder teljesen leh\u0171l szobah\u0151m\u00e9rs\u00e9klet\u0171re, miel\u0151tt folytatja a pap\u00edrtesztet. Am\u00edg a f\u00fav\u00f3ka h\u0171l, a f\u00e9mcsipesszel t\u00e1vol\u00edtsa el az esetlegesen kisziv\u00e1rg\u00f3 m\u0171anyagot. A pap\u00edrtesztet mindig akkor v\u00e9gezd el, amikor a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal szobah\u0151m\u00e9rs\u00e9kleten van! A f\u00fav\u00f3ka meleg\u00edt\u00e9sekor a h\u0151t\u00e1gul\u00e1s miatt megv\u00e1ltozik a helyzete (a t\u00e1rgyasztalhoz k\u00e9pest). Ez a h\u0151t\u00e1gul\u00e1s jellemz\u0151en 100 mikron k\u00f6r\u00fcli, ami k\u00f6r\u00fclbel\u00fcl ugyanolyan m\u00e9ret, mint egy tipikus nyomtat\u00f3pap\u00edr. A h\u0151t\u00e1gul\u00e1s pontos m\u00e9rt\u00e9ke nem d\u00f6nt\u0151, ahogyan a pap\u00edr pontos vastags\u00e1ga sem d\u00f6nt\u0151. Induljunk ki abb\u00f3l a felt\u00e9telez\u00e9sb\u0151l, hogy a kett\u0151 egyenl\u0151 (a k\u00e9t t\u00e1vols\u00e1g k\u00f6z\u00f6tti k\u00fcl\u00f6nbs\u00e9g meghat\u00e1roz\u00e1s\u00e1nak m\u00f3dszer\u00e9t l\u00e1sd al\u00e1bb). Furcs\u00e1nak t\u0171nhet, hogy a t\u00e1vols\u00e1got szobah\u0151m\u00e9rs\u00e9kleten kalibr\u00e1ljuk, amikor a c\u00e9l az, hogy meleg\u00edt\u00e9skor egyenletes t\u00e1vols\u00e1got \u00e9rj\u00fcnk el. Ha azonban a f\u00fav\u00f3k\u00e1t meleg\u00edtve kalibr\u00e1ljuk, akkor hajlamos kis mennyis\u00e9g\u0171 olvadt m\u0171anyagot juttatni a pap\u00edrra, ami megv\u00e1ltoztatja az \u00e9rz\u00e9kelt s\u00farl\u00f3d\u00e1s m\u00e9rt\u00e9k\u00e9t. Ez megnehez\u00edti a j\u00f3 kalibr\u00e1ci\u00f3t. Ha a szintez\u00e9s felf\u0171t\u00f6tt \u00e1llapotban t\u00f6rt\u00e9nik, akkor nagym\u00e9rt\u00e9kben megn\u0151 a meg\u00e9g\u00e9s vesz\u00e9lye is. A h\u0151t\u00e1gul\u00e1s m\u00e9rt\u00e9ke stabil, \u00edgy a kalibr\u00e1l\u00e1s sor\u00e1n k\u00e9s\u0151bb k\u00f6nnyen figyelembe vehet\u0151. Automatiz\u00e1lt eszk\u00f6zzel hat\u00e1rozza meg a pontos Z magass\u00e1got! A Klipperben sz\u00e1mos seg\u00e9dszkript \u00e1ll rendelkez\u00e9sre (pl. MANUAL_PROBE, Z_ENDSTOP_CALIBRATE, PROBE_CALIBRATE, DELTA_CALIBRATE). L\u00e1sd a documentumokat fentebb le\u00edrva , hogy v\u00e1lassz k\u00f6z\u00fcl\u00fck egyet. Futtassa a megfelel\u0151 parancsot az OctoPrint konzolj\u00e1ban. A szkript az OctoPrint termin\u00e1l kimenet\u00e9n k\u00e9ri a felhaszn\u00e1l\u00f3 beavatkoz\u00e1s\u00e1t. Valahogy \u00edgy fog kin\u00e9zni: Recv: // Starting manual Z probe. Use TESTZ to adjust position. Recv: // Finish with ACCEPT or ABORT command. Recv: // Z position: ?????? --> 5.000 <-- ?????? A f\u00fav\u00f3ka aktu\u00e1lis magass\u00e1ga (ahogyan azt a nyomtat\u00f3 jelenleg \u00e9rtelmezi) a \"--> <--\" k\u00f6z\u00f6tt jelenik meg. A jobb oldali sz\u00e1m a legut\u00f3bbi m\u00e9r\u00e9s magass\u00e1ga, amely \u00e9ppen nagyobb, mint az aktu\u00e1lis magass\u00e1g, a bal oldali pedig a legut\u00f3bbi m\u00e9r\u00e9s magass\u00e1ga, amely kisebb, mint az aktu\u00e1lis magass\u00e1g (vagy ??????, ha nem t\u00f6rt\u00e9nt k\u00eds\u00e9rlet). Helyezze a pap\u00edrt a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00e9. Hasznos lehet a pap\u00edr egyik sark\u00e1t behajtani, hogy k\u00f6nnyebb legyen megfogni. (Pr\u00f3b\u00e1lja \u00fagy, hogy ne nyomja le a t\u00e1rgyasztalt, amikor a pap\u00edrt el\u0151re-h\u00e1tra mozgatja). A TESTZ paranccsal k\u00e9rheti, hogy a f\u00fav\u00f3ka k\u00f6zelebb menjen a pap\u00edrhoz. P\u00e9ld\u00e1ul: TESTZ Z=-.1 A TESTZ parancs a f\u00fav\u00f3k\u00e1t az aktu\u00e1lis poz\u00edci\u00f3j\u00e1t\u00f3l relat\u00edv t\u00e1vols\u00e1gra mozgatja. (Teh\u00e1t a Z=-.1 azt k\u00e9ri, hogy a f\u00fav\u00f3ka 0,1 mm-rel k\u00f6zelebb ker\u00fclj\u00f6n a t\u00e1rgyasztalhoz). Miut\u00e1n a f\u00fav\u00f3ka meg\u00e1llt, tolja el\u0151re-h\u00e1tra a pap\u00edrt, hogy ellen\u0151rizd, hogy a f\u00fav\u00f3ka \u00e9rintkezik-e a pap\u00edrral, \u00e9s hogy \u00e9rezze a s\u00farl\u00f3d\u00e1s m\u00e9rt\u00e9k\u00e9t. Folytassa a TESTZ parancsok kiad\u00e1s\u00e1t mindaddig, am\u00edg a pap\u00edrral val\u00f3 tesztel\u00e9sekkor nem \u00e9rez egy kis s\u00farl\u00f3d\u00e1st. Ha t\u00fal nagy a s\u00farl\u00f3d\u00e1s, akkor egy pozit\u00edv Z \u00e9rt\u00e9ket haszn\u00e1lhatunk a f\u00fav\u00f3ka felfel\u00e9 mozgat\u00e1s\u00e1ra. Lehet\u0151s\u00e9g van a TESTZ Z=+ vagy a TESTZ Z=- haszn\u00e1lat\u00e1ra is, hogy \"felezz\u00fck\" az utols\u00f3 poz\u00edci\u00f3t - azaz k\u00e9t poz\u00edci\u00f3 k\u00f6z\u00f6tt f\u00e9l\u00faton l\u00e9v\u0151 poz\u00edci\u00f3ba l\u00e9pj\u00fcnk. P\u00e9ld\u00e1ul, ha a TESTZ parancs a k\u00f6vetkez\u0151 felsz\u00f3l\u00edt\u00e1st adn\u00e1: Recv: // Z position: 0.130 --> 0.230 <-- 0.280 Ezut\u00e1n egy TESTZ Z=- a f\u00fav\u00f3k\u00e1t 0,180 Z poz\u00edci\u00f3ba (a 0,130 \u00e9s 0,230 k\u00f6z\u00f6tti f\u00e9l\u00fatra) mozgatja. Ezt a funkci\u00f3t arra lehet haszn\u00e1lni, hogy seg\u00edtsen gyorsan lesz\u0171k\u00edteni egy konzisztens s\u00farl\u00f3d\u00e1st. A Z=++ \u00e9s Z=-- parancsok haszn\u00e1lat\u00e1val k\u00f6zvetlen\u00fcl visszat\u00e9rhet\u00fcnk egy kor\u00e1bbi m\u00e9r\u00e9shez - p\u00e9ld\u00e1ul a fenti felsz\u00f3l\u00edt\u00e1s ut\u00e1n a TESTZ Z=-- parancs a f\u00fav\u00f3k\u00e1t a 0,130-as Z poz\u00edci\u00f3ba mozgatn\u00e1. Miut\u00e1n \u00e9rz\u00e9kelhet\u0151 egy kis s\u00farl\u00f3d\u00e1s, add ki az ACCEPT parancsot: ACCEPT Ez elfogadja a megadott Z magass\u00e1got, \u00e9s az adott kalibr\u00e1ci\u00f3s eszk\u00f6zzel folytatja a munk\u00e1t. Az \u00e9rz\u00e9kelt s\u00farl\u00f3d\u00e1s pontos m\u00e9rt\u00e9ke nem d\u00f6nt\u0151 fontoss\u00e1g\u00fa, ahogyan a h\u0151t\u00e1gul\u00e1s m\u00e9rt\u00e9ke \u00e9s a pap\u00edr pontos sz\u00e9less\u00e9ge sem d\u00f6nt\u0151 fontoss\u00e1g\u00fa. Csak pr\u00f3b\u00e1ljon meg minden egyes alkalommal ugyanannyi s\u00farl\u00f3d\u00e1st el\u00e9rni, amikor a tesztet lefuttatja. Ha a teszt sor\u00e1n valami rosszul megy, az ABORT paranccsal kil\u00e9phet\u00fcnk a kalibr\u00e1ci\u00f3s eszk\u00f6zb\u0151l.","title":"A \"pap\u00edrteszt\""},{"location":"Bed_Level.html#a-hotagulas-meghatarozasa","text":"Miut\u00e1n sikeresen elv\u00e9gezte a t\u00e1rgyasztal szintez\u00e9s\u00e9t, pontosabb \u00e9rt\u00e9ket lehet kisz\u00e1m\u00edtani a \"h\u0151t\u00e1gul\u00e1s\", \"a pap\u00edr vastags\u00e1ga\" \u00e9s \"a pap\u00edrteszt sor\u00e1n \u00e9rz\u00e9kelhet\u0151 s\u00farl\u00f3d\u00e1s\" egy\u00fcttes hat\u00e1s\u00e1ra. Ilyen t\u00edpus\u00fa sz\u00e1m\u00edt\u00e1sokra \u00e1ltal\u00e1ban nincs sz\u00fcks\u00e9g, mivel a legt\u00f6bb felhaszn\u00e1l\u00f3 szerint az egyszer\u0171 \"pap\u00edrteszt\" j\u00f3 eredm\u00e9nyeket ad. A sz\u00e1m\u00edt\u00e1s legegyszer\u0171bben \u00fagy v\u00e9gezhet\u0151 el, ha kinyomtatunk egy olyan tesztobjektumot, amelynek minden oldal\u00e1n egyenes falak vannak. Ehhez a docs/prints/square.stl f\u00e1jlban tal\u00e1lhat\u00f3 nagy, \u00fcreges n\u00e9gyzetet haszn\u00e1lhatjuk. Az objektum szeletel\u00e9sekor gy\u0151z\u0151dj meg r\u00f3la, hogy a szeletel\u0151 az els\u0151 szinthez ugyanazt a r\u00e9tegmagass\u00e1got \u00e9s extrud\u00e1l\u00e1si sz\u00e9less\u00e9get haszn\u00e1lja, mint az \u00f6sszes tov\u00e1bbi r\u00e9teghez. Haszn\u00e1lj durva r\u00e9tegmagass\u00e1got (a r\u00e9tegmagass\u00e1gnak a f\u00fav\u00f3ka \u00e1tm\u00e9r\u0151j\u00e9nek k\u00f6r\u00fclbel\u00fcl 75%-\u00e1nak kell lennie), \u00e9s ne haszn\u00e1lj peremet vagy szokny\u00e1t. Nyomtasd ki a tesztobjektumot, v\u00e1rja meg, am\u00edg leh\u0171l, \u00e9s vedd le a t\u00e1rgyasztalr\u00f3l. Ellen\u0151rizd a t\u00e1rgy legals\u00f3 r\u00e9teg\u00e9t. (Az is hasznos lehet, ha ujj\u00e1t vagy k\u00f6rm\u00e9t v\u00e9gigh\u00fazza az als\u00f3 sz\u00e9l\u00e9n.) Ha azt tapasztaljuk, hogy az als\u00f3 r\u00e9teg a t\u00e1rgy minden oldala ment\u00e9n kiss\u00e9 kidudorodik, akkor ez azt jelzi, hogy a f\u00fav\u00f3ka kiss\u00e9 k\u00f6zelebb volt a t\u00e1rgyasztalhoz, mint kellett volna. A magass\u00e1g n\u00f6vel\u00e9s\u00e9hez kiadhatunk egy SET_GCODE_OFFSET Z=+.010 parancsot. A k\u00e9s\u0151bbi nyomtat\u00e1sokban ellen\u0151rizhetj\u00fck ezt a viselked\u00e9st, \u00e9s sz\u00fcks\u00e9g szerint tov\u00e1bbi kiigaz\u00edt\u00e1sokat v\u00e9gezhet\u00fcnk. Az ilyen t\u00edpus\u00fa be\u00e1ll\u00edt\u00e1sok jellemz\u0151en 10 mikronokban (.010mm) t\u00f6rt\u00e9nnek. Ha az als\u00f3 r\u00e9teg keskenyebbnek t\u0171nik, mint a k\u00f6vetkez\u0151 r\u00e9tegek, akkor a SET_GCODE_OFFSET paranccsal negat\u00edv Z-be\u00e1ll\u00edt\u00e1st v\u00e9gezhet\u00fcnk. Ha bizonytalanok vagyunk, akkor a Z-be\u00e1ll\u00edt\u00e1st addig cs\u00f6kkenthetj\u00fck, am\u00edg a nyomatok als\u00f3 r\u00e9tege egy kis dudort nem mutat, majd addig cs\u00f6kkenthetj\u00fck, am\u00edg az el nem t\u0171nik. A legegyszer\u0171bb m\u00f3dja a k\u00edv\u00e1nt Z-korrig\u00e1l\u00e1snak, ha l\u00e9trehoz egy START_PRINT G-k\u00f3d makr\u00f3t. A szeletel\u0151 \u00fagy int\u00e9zi, hogy a makr\u00f3 minden nyomtat\u00e1s kezdetekor megh\u00edvja ezt a parancsot, \u00e9s hozz\u00e1ad egy SET_GCODE_OFFSET parancsot. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a szeletel\u0151k dokumentumot.","title":"A h\u0151t\u00e1gul\u00e1s meghat\u00e1roz\u00e1sa"},{"location":"Bed_Mesh.html","text":"T\u00e1rgyasztal h\u00e1l\u00f3 \u00b6 A t\u00e1rgyasztal h\u00e1l\u00f3 modul haszn\u00e1lhat\u00f3 a t\u00e1rgyasztal fel\u00fclet egyenetlens\u00e9geinek kiegyenl\u00edt\u00e9s\u00e9re, hogy jobb els\u0151 r\u00e9teget \u00e9rj el az eg\u00e9sz t\u00e1rgyasztalon. Meg kell jegyezni, hogy a szoftveralap\u00fa korrekci\u00f3 nem fog t\u00f6k\u00e9letes eredm\u00e9nyt el\u00e9rni, csak megk\u00f6zel\u00edt\u0151 \u00e9rt\u00e9kekkel tudatja a t\u00e1rgyasztal alakj\u00e1t. A t\u00e1rgyasztal h\u00e1l\u00f3 szint\u00e9n nem tudja kompenz\u00e1lni a mechanikai \u00e9s elektromos probl\u00e9m\u00e1kat. Ha egy tengely ferde vagy egy szonda nem pontos, akkor a bed_mesh modul nem fog pontos eredm\u00e9nyeket kapni a szintez\u00e9sr\u0151l. A h\u00e1l\u00f3kalibr\u00e1l\u00e1s el\u0151tt meg kell gy\u0151z\u0151dnie arr\u00f3l, hogy a szonda Z-eltol\u00e1sa kalibr\u00e1lva van. Ha v\u00e9g\u00e1ll\u00e1st haszn\u00e1l a Z-kezd\u0151ponthoz, akkor azt is kalibr\u00e1lni kell. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a Szonda Kalibr\u00e1l\u00e1s \u00e9s a Z_ENDSTOP_CALIBRATE c\u00edm\u0171 fejezetben K\u00e9zi Szintez\u00e9st . Alapvet\u0151 konfigur\u00e1ci\u00f3 \u00b6 T\u00e9glalap alak\u00fa t\u00e1rgyasztalok \u00b6 Ez a p\u00e9lda egy 250 mm x 220 mm-es t\u00e9glalap alak\u00fa t\u00e1rgyasztalu nyomtat\u00f3t \u00e9s egy 24 mm-es x-eltol\u00e1s\u00fa \u00e9s 5 mm-es y-eltol\u00e1s\u00fa szond\u00e1t mutat. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 sebess\u00e9g: 120 * Alap\u00e9rtelmezett \u00e9rt\u00e9k: 50* A sebess\u00e9g, amellyel a fej a pontok k\u00f6z\u00f6tt mozog. horizontal_move_z: 5 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 5 A Z koordin\u00e1ta, amelyre a szonda a m\u00e9r\u0151pontok k\u00f6z\u00f6tti utaz\u00e1s el\u0151tt emelkedik. mesh_min: 35, 6 Aj\u00e1nlott Az els\u0151, az orig\u00f3hoz legk\u00f6zelebbi koordin\u00e1ta. Ez a koordin\u00e1ta a szonda hely\u00e9hez k\u00e9pest relat\u00edv. mesh_max: 240, 198 Aj\u00e1nlott Az orig\u00f3t\u00f3l legt\u00e1volabb es\u0151 m\u00e9rt koordin\u00e1ta. Ez nem felt\u00e9tlen\u00fcl az utols\u00f3 m\u00e9rt pont, mivel a m\u00e9r\u00e9s cikcakkos m\u00f3don t\u00f6rt\u00e9nik. A mesh_min koordin\u00e1t\u00e1hoz hasonl\u00f3an ez a koordin\u00e1ta is a szonda hely\u00e9hez van viszony\u00edtva. probe_count: 5, 3 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 3,3 Az egyes tengelyeken m\u00e9rend\u0151 pontok sz\u00e1ma, X, Y eg\u00e9sz \u00e9rt\u00e9kben megadva. Ebben a p\u00e9ld\u00e1ban az X tengely ment\u00e9n 5 pont lesz m\u00e9rve, az Y tengely ment\u00e9n 3 pont, \u00f6sszesen 15 m\u00e9rt pont. Vedd figyelembe, hogy ha n\u00e9gyzetr\u00e1csot szeretne, p\u00e9ld\u00e1ul 3x3, akkor ezt egyetlen eg\u00e9sz sz\u00e1m\u00e9rt\u00e9kk\u00e9nt is megadhatja, amelyet mindk\u00e9t tengelyre haszn\u00e1l, azaz probe_count: 3 . Vedd figyelembe, hogy egy h\u00e1l\u00f3hoz mindk\u00e9t tengely ment\u00e9n legal\u00e1bb 3 darab m\u00e9r\u00e9si sz\u00e1mra van sz\u00fcks\u00e9g. Az al\u00e1bbi \u00e1bra azt mutatja, hogy a mesh_min , mesh_max \u00e9s probe_count opci\u00f3k hogyan haszn\u00e1lhat\u00f3k a m\u00e9r\u0151pontok l\u00e9trehoz\u00e1s\u00e1ra. A nyilak jelzik a m\u00e9r\u00e9si elj\u00e1r\u00e1s ir\u00e1ny\u00e1t, kezdve a mesh_min pontt\u00f3l. Hivatkoz\u00e1sk\u00e9ppen, amikor a szonda a mesh_min pontn\u00e1l van, a f\u00fav\u00f3ka a (11, 1) pontn\u00e1l lesz, \u00e9s amikor a szonda a mesh_max pontn\u00e1l van, a f\u00fav\u00f3ka a (206, 193) pontn\u00e1l lesz. Kerek t\u00e1rgyasztalok \u00b6 Ez a p\u00e9lda egy 100 mm-es kerek t\u00e1rgyasztallal felszerelt nyomtat\u00f3t felt\u00e9telez. Ugyanazokat a szondaeltol\u00e1sokat fogjuk haszn\u00e1lni, mint a t\u00e9glalap alak\u00fa p\u00e9ld\u00e1n\u00e1l, 24 mm-t X-en \u00e9s 5 mm-t Y-on. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_radius: 75 mesh_origin: 0, 0 round_probe_count: 5 mesh_radius: 75 Required A vizsg\u00e1lt h\u00e1l\u00f3 sugara mm-ben, a mesh_origin -hez k\u00e9pest. Vedd figyelembe, hogy a szonda eltol\u00e1sai korl\u00e1tozz\u00e1k a h\u00e1l\u00f3 sugar\u00e1nak m\u00e9ret\u00e9t. Ebben a p\u00e9ld\u00e1ban a 76-n\u00e1l nagyobb sug\u00e1r a szersz\u00e1mot a nyomtat\u00f3 hat\u00f3t\u00e1vols\u00e1g\u00e1n k\u00edv\u00fclre helyezn\u00e9. mesh_origin: 0, 0 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 0, 0 A h\u00e1l\u00f3 k\u00f6z\u00e9ppontja. Ez a koordin\u00e1ta a szonda hely\u00e9hez k\u00e9pest relat\u00edv. B\u00e1r az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, 0 hasznos lehet az orig\u00f3 be\u00e1ll\u00edt\u00e1sa, ha a t\u00e1rgyasztal nagyobb r\u00e9sz\u00e9t szeretn\u00e9 megm\u00e9rni. L\u00e1sd az al\u00e1bbi \u00e1br\u00e1t. round_probe_count: 5 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 5 Ez egy eg\u00e9sz sz\u00e1m, amely meghat\u00e1rozza az X \u00e9s Y tengely ment\u00e9n m\u00e9rt pontok maxim\u00e1lis sz\u00e1m\u00e1t. A \"maxim\u00e1lis\" alatt a h\u00e1l\u00f3 orig\u00f3ja ment\u00e9n m\u00e9rt pontok sz\u00e1m\u00e1t \u00e9rtj\u00fck. Ennek az \u00e9rt\u00e9knek p\u00e1ratlan sz\u00e1mnak kell lennie, mivel a h\u00e1l\u00f3 k\u00f6z\u00e9ppontj\u00e1t kell megvizsg\u00e1lni. Az al\u00e1bbi \u00e1bra mutatja, hogyan gener\u00e1l\u00f3dnak a m\u00e9rt pontok. Mint l\u00e1that\u00f3, a mesh_origin (-10, 0) \u00e9rt\u00e9kre \u00e1ll\u00edt\u00e1sa lehet\u0151v\u00e9 teszi, hogy nagyobb, 85-\u00f6s h\u00e1l\u00f3sugarat adjunk meg. Speci\u00e1lis konfigur\u00e1ci\u00f3 \u00b6 Az al\u00e1bbiakban r\u00e9szletesen ismertetj\u00fck a fejlettebb konfigur\u00e1ci\u00f3s lehet\u0151s\u00e9geket. Minden p\u00e9lda a fent bemutatott t\u00e9glalap alak\u00fa alapkonfigur\u00e1ci\u00f3ra \u00e9p\u00fcl. A speci\u00e1lis lehet\u0151s\u00e9gek mindegyike ugyan\u00fagy alkalmazhat\u00f3 a kerek t\u00e1rgyasztalokra is. H\u00e1l\u00f3 interpol\u00e1ci\u00f3 \u00b6 B\u00e1r a m\u00e9rt m\u00e1trixot k\u00f6zvetlen\u00fcl egyszer\u0171 biline\u00e1ris interpol\u00e1ci\u00f3val lehet mintav\u00e9telezni a m\u00e9rt pontok k\u00f6z\u00f6tti Z-\u00e9rt\u00e9kek meghat\u00e1roz\u00e1s\u00e1hoz, a h\u00e1l\u00f3 s\u0171r\u0171s\u00e9g\u00e9nek n\u00f6vel\u00e9se \u00e9rdek\u00e9ben gyakran hasznos a tov\u00e1bbi pontok interpol\u00e1l\u00e1sa fejlettebb interpol\u00e1ci\u00f3s algoritmusok seg\u00edts\u00e9g\u00e9vel. Ezek az algoritmusok g\u00f6rb\u00fcletet adnak a h\u00e1l\u00f3hoz, megk\u00eds\u00e9relve szimul\u00e1lni a meder anyagi tulajdons\u00e1gait. A Bed Mesh ehhez Lagrange \u00e9s bikubik interpol\u00e1ci\u00f3t k\u00edn\u00e1l. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 mesh_pps: 2, 3 algorithm: bicubic bicubic_tension: 0.2 mesh_pps: 2, 3 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 2, 2 A mesh_pps opci\u00f3 a H\u00e1l\u00f3pontok szegmensenk\u00e9nti r\u00f6vid\u00edt\u00e9se. Ez az opci\u00f3 azt adja meg, hogy h\u00e1ny pontot interpol\u00e1ljon minden egyes szegmenshez az X \u00e9s Y tengely ment\u00e9n. Tekints\u00fck egy 'szegmensnek' az egyes m\u00e9rt pontok k\u00f6z\u00f6tti teret. A probe_count -hoz hasonl\u00f3an a mesh_pps is X, Y eg\u00e9sz sz\u00e1mp\u00e1rk\u00e9nt adhat\u00f3 meg, de megadhat\u00f3 egyetlen eg\u00e9sz sz\u00e1m is, amely mindk\u00e9t tengelyre vonatkozik. Ebben a p\u00e9ld\u00e1ban 4 szegmens van az X tengely ment\u00e9n \u00e9s 2 szegmens az Y tengely ment\u00e9n. Ez 8 interpol\u00e1lt pontot jelent az X ment\u00e9n, 6 interpol\u00e1lt pontot az Y ment\u00e9n, ami egy 13x8-as h\u00e1l\u00f3t eredm\u00e9nyez. Vedd figyelembe, hogy ha a mesh_pps \u00e9rt\u00e9ke 0, akkor a h\u00e1l\u00f3interpol\u00e1ci\u00f3 le van tiltva, \u00e9s a m\u00e9rt m\u00e1trixot k\u00f6zvetlen\u00fcl mintav\u00e9telezi a rendszer. algorithm: lagrange * Alap\u00e9rtelmezett \u00e9rt\u00e9k: lagrange* A h\u00e1l\u00f3 interpol\u00e1l\u00e1s\u00e1hoz haszn\u00e1lt algoritmus. Lehet lagrange vagy bicubic . A Lagrange-interpol\u00e1ci\u00f3 6 szond\u00e1zott pontn\u00e1l van korl\u00e1tozva, mivel nagyobb sz\u00e1m\u00fa minta eset\u00e9n oszcill\u00e1ci\u00f3 l\u00e9p fel. A bikubik interpol\u00e1ci\u00f3hoz mindk\u00e9t tengely ment\u00e9n legal\u00e1bb 4 szond\u00e1zott pont sz\u00fcks\u00e9ges, ha 4 pontn\u00e1l kevesebb van megadva, akkor a Lagrange mintav\u00e9telez\u00e9s kik\u00e9nyszer\u00fcl. Ha a mesh_pps 0-ra van \u00e1ll\u00edtva, akkor ez az \u00e9rt\u00e9k figyelmen k\u00edv\u00fcl marad, mivel nem t\u00f6rt\u00e9nik h\u00e1l\u00f3interpol\u00e1ci\u00f3. bicubic_tension: 0.2 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 0.2 Ha az algorithm opci\u00f3 bikubikra van \u00e1ll\u00edtva, akkor lehet megadni a fesz\u00fclts\u00e9g \u00e9rt\u00e9k\u00e9t. Min\u00e9l nagyobb a fesz\u00fclts\u00e9g, ann\u00e1l nagyobb meredeks\u00e9get interpol\u00e1l. Legyen \u00f3vatos ennek be\u00e1ll\u00edt\u00e1sakor, mivel a magasabb \u00e9rt\u00e9kek t\u00f6bb t\u00falh\u00faz\u00e1st is eredm\u00e9nyeznek, ami a m\u00e9rt pontokn\u00e1l magasabb vagy alacsonyabb interpol\u00e1lt \u00e9rt\u00e9keket eredm\u00e9nyez. Az al\u00e1bbi \u00e1bra azt mutatja, hogy a fenti opci\u00f3kat hogyan haszn\u00e1ljuk egy interpol\u00e1lt h\u00e1l\u00f3 l\u00e9trehoz\u00e1s\u00e1hoz. Mozg\u00e1s feloszt\u00e1s \u00b6 A t\u00e1rgyasztal h\u00e1l\u00f3 \u00fagy m\u0171k\u00f6dik, hogy megkapja a G-k\u00f3d mozgat\u00e1si parancsokat \u00e9s transzform\u00e1ci\u00f3t alkalmaz a Z koordin\u00e1t\u00e1jukra. A hossz\u00fa mozg\u00e1sokat kisebb mozg\u00e1sokra kell bontani, hogy helyesen k\u00f6vess\u00e9k a t\u00e1rgyasztal alakj\u00e1t. Az al\u00e1bbi opci\u00f3k a feloszt\u00e1si viselked\u00e9st szab\u00e1lyozz\u00e1k. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 move_check_distance: 5 split_delta_z: .025 move_check_distance: 5 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 5 A minim\u00e1lis t\u00e1vols\u00e1g, amellyel a k\u00edv\u00e1nt Z-v\u00e1ltoz\u00e1st ellen\u0151rizni kell a feloszt\u00e1s v\u00e9grehajt\u00e1sa el\u0151tt. Ebben a p\u00e9ld\u00e1ban az 5 mm-n\u00e9l hosszabb mozg\u00e1st fog az algoritmus v\u00e9gigj\u00e1rni. Minden 5 mm-enk\u00e9nt egy h\u00e1l\u00f3 Z m\u00e9r\u00e9s t\u00f6rt\u00e9nik, \u00f6sszehasonl\u00edtva azt az el\u0151z\u0151 l\u00e9p\u00e9s Z \u00e9rt\u00e9k\u00e9vel. Ha a delta el\u00e9ri a split_delta_z \u00e1ltal be\u00e1ll\u00edtott k\u00fcsz\u00f6b\u00e9rt\u00e9ket, akkor a mozg\u00e1s feloszt\u00e1sra ker\u00fcl, \u00e9s a bej\u00e1r\u00e1s folytat\u00f3dik. Ez a folyamat addig ism\u00e9tl\u0151dik, am\u00edg a l\u00e9p\u00e9s v\u00e9g\u00e9re nem \u00e9r\u00fcnk, ahol egy v\u00e9gs\u0151 kiigaz\u00edt\u00e1s t\u00f6rt\u00e9nik. A move_check_distance \u00e9rt\u00e9kn\u00e9l r\u00f6videbb mozg\u00e1sokn\u00e1l a helyes Z kiigaz\u00edt\u00e1st k\u00f6zvetlen\u00fcl a mozg\u00e1sra alkalmazz\u00e1k, \u00e1thalad\u00e1s vagy feloszt\u00e1s n\u00e9lk\u00fcl. split_delta_z: .025 Alap\u00e9rtelmezett \u00e9rt\u00e9k: .025 Mint fentebb eml\u00edtett\u00fck, ez a minim\u00e1lis elt\u00e9r\u00e9s sz\u00fcks\u00e9ges a mozg\u00e1s feloszt\u00e1s\u00e1nak elind\u00edt\u00e1s\u00e1hoz. Ebben a p\u00e9ld\u00e1ban b\u00e1rmely Z-\u00e9rt\u00e9k +/- .025 mm elt\u00e9r\u00e9s kiv\u00e1ltja a feloszt\u00e1st. \u00c1ltal\u00e1ban az alap\u00e9rtelmezett \u00e9rt\u00e9kek elegend\u0151ek ezekhez az opci\u00f3khoz, s\u0151t, a move_check_distance alap\u00e9rtelmezett 5 mm-es \u00e9rt\u00e9ke t\u00falz\u00e1s lehet. Egy halad\u00f3 felhaszn\u00e1l\u00f3 azonban k\u00eds\u00e9rletezhet ezekkel az opci\u00f3kkal, hogy megpr\u00f3b\u00e1lja kiszor\u00edtani az optim\u00e1lis els\u0151 r\u00e9teget. H\u00e1l\u00f3 elhalv\u00e1nyul\u00e1s \u00b6 Ha a \"fade\" enged\u00e9lyezve van, a Z-be\u00e1ll\u00edt\u00e1s a konfigur\u00e1ci\u00f3 \u00e1ltal meghat\u00e1rozott t\u00e1vols\u00e1gon bel\u00fcl fokozatosan megsz\u0171nik. Ez a r\u00e9tegmagass\u00e1g kis kiigaz\u00edt\u00e1s\u00e1val \u00e9rhet\u0151 el, a t\u00e1rgyasztal alakj\u00e1t\u00f3l f\u00fcgg\u0151en n\u00f6velve vagy cs\u00f6kkentve. Ha a fade befejez\u0151d\u00f6tt, a Z-be\u00e1ll\u00edt\u00e1s m\u00e1r nem ker\u00fcl alkalmaz\u00e1sra, \u00edgy a nyomtat\u00e1s teteje s\u00edk lesz, nem pedig a t\u00e1rgyasztal alakj\u00e1t t\u00fckr\u00f6zi. A fak\u00edt\u00e1snak lehetnek nemk\u00edv\u00e1natos tulajdons\u00e1gai is, ha t\u00fal gyorsan fak\u00edt, akkor l\u00e1that\u00f3 leleteket eredm\u00e9nyezhet a nyomaton. Tov\u00e1bb\u00e1, ha a t\u00e1rgyasztal jelent\u0151sen megvetemedett, a fade zsugor\u00edthatja vagy megny\u00fajthatja a nyomat Z magass\u00e1g\u00e1t. Ez\u00e9rt a fade alap\u00e9rtelmez\u00e9s szerint ki van kapcsolva. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 fade_start: 1 fade_end: 10 fade_target: 0 fade_start: 1 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 1 A Z magass\u00e1g, amelyben a fokozatos kiigaz\u00edt\u00e1st el kell kezdeni. J\u00f3 \u00f6tlet, ha a fade folyamat megkezd\u00e9se el\u0151tt n\u00e9h\u00e1ny r\u00e9teggel lejjebb ker\u00fcl. fade_end: 10 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 0 A Z magass\u00e1g, amelyben a fade-nek be kell fejez\u0151dnie. Ha ez az \u00e9rt\u00e9k kisebb, mint fade_start akkor a fade le van tiltva. Ezt az \u00e9rt\u00e9ket a nyomtat\u00e1si fel\u00fclet torzul\u00e1s\u00e1t\u00f3l f\u00fcgg\u0151en lehet m\u00f3dos\u00edtani. Egy jelent\u0151sen g\u00f6rb\u00fclt fel\u00fcletnek hosszabb t\u00e1von kell elhalv\u00e1nyulnia. Egy k\u00f6zel s\u00edk fel\u00fclet eset\u00e9ben ez az \u00e9rt\u00e9k cs\u00f6kkenthet\u0151, hogy gyorsabban fakuljon ki. A 10 mm egy \u00e9sszer\u0171 \u00e9rt\u00e9k, ha a fade_start alap\u00e9rtelmezett 1 \u00e9rt\u00e9k\u00e9t haszn\u00e1ljuk. fade_target: 0 Alap\u00e9rtelmezett \u00e9rt\u00e9k: A h\u00e1l\u00f3 \u00e1tlagos Z \u00e9rt\u00e9ke A fade_target \u00fagy k\u00e9pzelhet\u0151 el, mint egy tov\u00e1bbi Z eltol\u00e1s, amelyet a fade befejez\u00e9se ut\u00e1n a teljes t\u00e1rgyasztalra alkalmaznak. \u00c1ltal\u00e1noss\u00e1gban azt szeretn\u00e9nk, ha ez az \u00e9rt\u00e9k 0 lenne, azonban vannak olyan k\u00f6r\u00fclm\u00e9nyek, amikor nem kell, hogy \u00edgy legyen. Tegy\u00fck fel p\u00e9ld\u00e1ul, hogy a t\u00e1rgyasztalon a kezd\u0151pont poz\u00edci\u00f3ja egy kiugr\u00f3 \u00e9rt\u00e9k, amely 0,2 mm-rel alacsonyabb, mint a t\u00e1rgyasztal \u00e1tlagos m\u00e9rt magass\u00e1ga. Ha a fade_target \u00e9rt\u00e9ke 0, akkor a fade \u00e1tlagosan 0,2 mm-rel zsugor\u00edtja a nyomtat\u00e1st a t\u00e1rgyasztalon. Ha a fade_target \u00e9rt\u00e9k\u00e9t .2-re \u00e1ll\u00edtja, akkor a kezd\u0151ponti ter\u00fclet .2 mm-rel fog t\u00e1gulni, azonban a t\u00e1rgyasztal t\u00f6bbi r\u00e9sze pontosan m\u00e9retezett lesz. \u00c1ltal\u00e1ban j\u00f3 \u00f6tlet a fade_target elhagy\u00e1sa a konfigur\u00e1ci\u00f3b\u00f3l, \u00edgy a h\u00e1l\u00f3 \u00e1tlagos magass\u00e1ga ker\u00fcl felhaszn\u00e1l\u00e1sra, azonban k\u00edv\u00e1natos lehet a fade target k\u00e9zi be\u00e1ll\u00edt\u00e1sa, ha a t\u00e1rgyasztal egy adott r\u00e9sz\u00e9re szeretn\u00e9nk nyomtatni. A relat\u00edv referenciaindex \u00b6 A legt\u00f6bb szonda hajlamos a driftre, azaz: a h\u0151 vagy interferencia \u00e1ltal okozott pontatlans\u00e1gokra. Ez kih\u00edv\u00e1ss\u00e1 teheti a szonda Z-eltol\u00e1s\u00e1nak kisz\u00e1m\u00edt\u00e1s\u00e1t, k\u00fcl\u00f6n\u00f6sen k\u00fcl\u00f6nb\u00f6z\u0151 t\u00e1rgyasztal h\u0151m\u00e9rs\u00e9kleteken. Ez\u00e9rt egyes nyomtat\u00f3k a Z tengely be\u00e1ll\u00edt\u00e1s\u00e1hoz v\u00e9g\u00e1ll\u00e1st, a h\u00e1l\u00f3 kalibr\u00e1l\u00e1s\u00e1hoz pedig szond\u00e1t haszn\u00e1lnak. Ezeknek a nyomtat\u00f3knak el\u0151ny\u00f6s lehet a relat\u00edv referenciaindex konfigur\u00e1l\u00e1sa. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 relative_reference_index: 7 relative_reference_index: 7 Alap\u00e9rtelmezett \u00e9rt\u00e9k: Nincs (letiltva) A m\u00e9rt pontok l\u00e9trehoz\u00e1sakor mindegyikhez indexet rendel\u00fcnk. Ezt az indexet a klippy.log f\u00e1jlban vagy a BED_MESH_OUTPUT seg\u00edts\u00e9g\u00e9vel kereshetj\u00fck meg (tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd az al\u00e1bbi, Bed Mesh GCodes c\u00edm\u0171 r\u00e9szt). Ha indexet rendel a relative_reference_index opci\u00f3hoz, akkor az ezen a koordin\u00e1t\u00e1n m\u00e9rt \u00e9rt\u00e9k fogja helyettes\u00edteni a szonda z_offset-\u00e9t. Ez\u00e1ltal ez a koordin\u00e1ta gyakorlatilag a h\u00e1l\u00f3 \"nulla\" referenci\u00e1j\u00e1v\u00e1 v\u00e1lik. A relat\u00edv referenciaindex haszn\u00e1latakor azt az indexet kell v\u00e1lasztania, amelyik a legk\u00f6zelebb van ahhoz a ponthoz a t\u00e1rgyasztalon, ahol a Z v\u00e9g\u00e1ll\u00e1s kalibr\u00e1l\u00e1sa t\u00f6rt\u00e9nt. Vedd figyelembe, hogy ha az indexet a napl\u00f3 vagy a BED_MESH_OUTPUT seg\u00edts\u00e9g\u00e9vel keresi meg, akkor a \"Probe\" fejl\u00e9c alatt felsorolt koordin\u00e1t\u00e1kat kell haszn\u00e1lnia a helyes index megtal\u00e1l\u00e1s\u00e1hoz. Hib\u00e1s r\u00e9gi\u00f3k \u00b6 El\u0151fordulhat, hogy a t\u00e1rgyasztal egyes ter\u00fcletei pontatlan eredm\u00e9nyeket jeleznek a m\u00e9r\u00e9s sor\u00e1n, mivel bizonyos helyeken \"hiba\" van. Erre a legjobb p\u00e9lda a levehet\u0151 ac\u00e9llemezek r\u00f6gz\u00edt\u00e9s\u00e9re haszn\u00e1lt integr\u00e1lt m\u00e1gnesek sorozat\u00e1val ell\u00e1tott t\u00e1rgyasztalok. Ezekn\u00e9l a m\u00e1gnesekn\u00e9l \u00e9s k\u00f6r\u00fcl\u00f6tt\u00fck l\u00e9v\u0151 m\u00e1gneses mez\u0151 hat\u00e1s\u00e1ra az indukt\u00edv szonda magasabb vagy alacsonyabb t\u00e1vols\u00e1gban m\u00e9rhet, mint egy\u00e9bk\u00e9nt tenn\u00e9, ami azt eredm\u00e9nyezi, hogy a h\u00e1l\u00f3 nem pontosan reprezent\u00e1lja a fel\u00fcletet ezeken a helyeken. Figyelem: Ez nem t\u00e9vesztend\u0151 \u00f6ssze a szonda hely\u00e9nek torz\u00edt\u00e1s\u00e1val, amely pontatlan eredm\u00e9nyeket eredm\u00e9nyez az eg\u00e9sz t\u00e1rgyasztalon. A faulty_region opci\u00f3kat \u00fagy lehet be\u00e1ll\u00edtani, hogy kompenz\u00e1lj\u00e1k ezt a hat\u00e1st. Ha egy gener\u00e1lt pont egy hib\u00e1s r\u00e9gi\u00f3ba esik, akkor a bed mesh megpr\u00f3b\u00e1l ak\u00e1r 4 pontot is megvizsg\u00e1lni a r\u00e9gi\u00f3 hat\u00e1rain\u00e1l. Ezeket a m\u00e9rt \u00e9rt\u00e9keket \u00e1tlagolja \u00e9s beilleszti a h\u00e1l\u00f3ba Z \u00e9rt\u00e9kben a gener\u00e1lt (X, Y) koordin\u00e1t\u00e1n. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 faulty_region_1_min: 130.0, 0.0 faulty_region_1_max: 145.0, 40.0 faulty_region_2_min: 225.0, 0.0 faulty_region_2_max: 250.0, 25.0 faulty_region_3_min: 165.0, 95.0 faulty_region_3_max: 205.0, 110.0 faulty_region_4_min: 30.0, 170.0 faulty_region_4_max: 45.0, 210.0 faulty_region_{1...99}_min faulty_region_{1...99}_max Alap\u00e9rtelmezett \u00e9rt\u00e9k: Nincs (letiltva) A hib\u00e1s r\u00e9gi\u00f3k meghat\u00e1roz\u00e1sa hasonl\u00f3an t\u00f6rt\u00e9nik, mint mag\u00e1nak a h\u00e1l\u00f3nak a meghat\u00e1roz\u00e1sa, ahol minden egyes r\u00e9gi\u00f3hoz meg kell adni a minim\u00e1lis \u00e9s maxim\u00e1lis (X, Y) koordin\u00e1t\u00e1kat. Egy hib\u00e1s r\u00e9gi\u00f3 a h\u00e1l\u00f3n k\u00edv\u00fclre is kiterjedhet, azonban a gener\u00e1lt v\u00e1ltakoz\u00f3 pontok mindig a h\u00e1l\u00f3 hat\u00e1r\u00e1n bel\u00fcl lesznek. K\u00e9t r\u00e9gi\u00f3 nem fedheti egym\u00e1st. Az al\u00e1bbi k\u00e9p azt szeml\u00e9lteti, hogyan gener\u00e1l\u00f3dnak a cserepontok, ha egy gener\u00e1lt pont egy hib\u00e1s ter\u00fcleten bel\u00fcl van. Az \u00e1br\u00e1zolt r\u00e9gi\u00f3k megegyeznek a fenti mintakonfigur\u00e1ci\u00f3ban szerepl\u0151 r\u00e9gi\u00f3kkal. A cserepontok \u00e9s koordin\u00e1t\u00e1ik z\u00f6ld sz\u00ednnel vannak jel\u00f6lve. T\u00e1rgyasztal h\u00e1l\u00f3 G-k\u00f3dok \u00b6 Kalibr\u00e1ci\u00f3 \u00b6 BED_MESH_CALIBRATE PROFILE=<name> METHOD=[manual | automatic] [<probe_parameter>=<value>] [<mesh_parameter>=<value>] * Alap\u00e9rtelmezett profil: alap\u00e9rtelmezett Alap\u00e9rtelmezett m\u00f3dszer: automatikus, ha \u00e9rz\u00e9kel\u0151t \u00e9szlel, egy\u00e9bk\u00e9nt manu\u00e1lis* Elind\u00edtja a m\u00e9r\u00e9si elj\u00e1r\u00e1st a t\u00e1rgyasztal h\u00e1l\u00f3 kalibr\u00e1l\u00e1s\u00e1hoz. A h\u00e1l\u00f3 a PROFILE param\u00e9ter \u00e1ltal megadott profilba ker\u00fcl ment\u00e9sre, vagy default , ha nincs megadva. Ha a METHOD=manual param\u00e9tert v\u00e1lasztjuk, akkor k\u00e9zi m\u00e9r\u00e9s t\u00f6rt\u00e9nik. Az automatikus \u00e9s a k\u00e9zi m\u00e9r\u00e9s k\u00f6z\u00f6tti v\u00e1lt\u00e1skor a gener\u00e1lt h\u00e1l\u00f3pontok automatikusan kiigaz\u00edt\u00e1sra ker\u00fclnek. Lehet\u0151s\u00e9g van h\u00e1l\u00f3param\u00e9terek megad\u00e1s\u00e1ra a m\u00e9rt ter\u00fclet m\u00f3dos\u00edt\u00e1s\u00e1ra. A k\u00f6vetkez\u0151 param\u00e9terek \u00e1llnak rendelkez\u00e9sre: T\u00e9glalap alak\u00fa t\u00e1rgyasztalok (cartesian): MESH_MIN MESH_MAX PROBE_COUNT Kerek t\u00e1rgyasztalok (delta): MESH_RADIUS MESH_ORIGIN ROUND_PROBE_COUNT Minden t\u00e1rgyasztal: RELATIVE_REFERNCE_INDEX ALGORITHM Az egyes param\u00e9terek h\u00e1l\u00f3ra val\u00f3 alkalmaz\u00e1s\u00e1nak r\u00e9szleteit l\u00e1sd a fenti konfigur\u00e1ci\u00f3s dokument\u00e1ci\u00f3ban. Profilok \u00b6 BED_MESH_PROFILE SAVE=<name> LOAD=<name> REMOVE=<name> A BED_MESH_CALIBRATE elv\u00e9gz\u00e9se ut\u00e1n lehet\u0151s\u00e9g van a h\u00e1l\u00f3 aktu\u00e1lis \u00e1llapot\u00e1nak elment\u00e9s\u00e9re egy megnevezett profilba. Ez lehet\u0151v\u00e9 teszi a h\u00e1l\u00f3 bet\u00f6lt\u00e9s\u00e9t a t\u00e1rgyasztal \u00fajb\u00f3li m\u00e9r\u00e9se n\u00e9lk\u00fcl. Miut\u00e1n egy profilt a BED_MESH_PROFILE SAVE=<name> seg\u00edts\u00e9g\u00e9vel elmentett\u00fcnk, a SAVE_CONFIG G-k\u00f3d v\u00e9grehajthat\u00f3 a profil printer.cfg f\u00e1jlba val\u00f3 \u00edr\u00e1s\u00e1hoz. A profilok a BED_MESH_PROFILE LOAD=<name> parancs v\u00e9grehajt\u00e1s\u00e1val t\u00f6lthet\u0151k be. Meg kell jegyezni, hogy minden alkalommal, amikor a BED_MESH_CALIBRATE haszn\u00e1latba ker\u00fcl, az aktu\u00e1lis \u00e1llapot automatikusan az alap\u00e9rtelmezett profilba ker\u00fcl ment\u00e9sre. Ha ez a profil l\u00e9tezik, akkor a Klipper ind\u00edt\u00e1sakor automatikusan bet\u00f6lt\u0151dik. Ha ez a viselked\u00e9s nem k\u00edv\u00e1natos, a default profil a k\u00f6vetkez\u0151k\u00e9ppen t\u00e1vol\u00edthat\u00f3 el: BED_MESH_PROFILE REMOVE=default B\u00e1rmely m\u00e1s elmentett profil ugyan\u00edgy elt\u00e1vol\u00edthat\u00f3, a default helyettes\u00edtve az elt\u00e1vol\u00edtani k\u00edv\u00e1nt n\u00e9vvel. Kimenet \u00b6 BED_MESH_OUTPUT PGP=[0 | 1] Az aktu\u00e1lis h\u00e1l\u00f3\u00e1llapotot adja ki a termin\u00e1lra. Vegy\u00fck \u00e9szre, hogy maga a h\u00e1l\u00f3 is kimenetre ker\u00fcl A PGP param\u00e9ter a \"Print Generated Points\" r\u00f6vid\u00edt\u00e9se. Ha PGP=1 van be\u00e1ll\u00edtva, a gener\u00e1lt m\u00e9rt pontok a termin\u00e1lra ker\u00fclnek: // bed_mesh: generated points // Index | Tool Adjusted | Probe // 0 | (11.0, 1.0) | (35.0, 6.0) // 1 | (62.2, 1.0) | (86.2, 6.0) // 2 | (113.5, 1.0) | (137.5, 6.0) // 3 | (164.8, 1.0) | (188.8, 6.0) // 4 | (216.0, 1.0) | (240.0, 6.0) // 5 | (216.0, 97.0) | (240.0, 102.0) // 6 | (164.8, 97.0) | (188.8, 102.0) // 7 | (113.5, 97.0) | (137.5, 102.0) // 8 | (62.2, 97.0) | (86.2, 102.0) // 9 | (11.0, 97.0) | (35.0, 102.0) // 10 | (11.0, 193.0) | (35.0, 198.0) // 11 | (62.2, 193.0) | (86.2, 198.0) // 12 | (113.5, 193.0) | (137.5, 198.0) // 13 | (164.8, 193.0) | (188.8, 198.0) // 14 | (216.0, 193.0) | (240.0, 198.0) A \"Tool Adjusted\" pontok az egyes pontok f\u00fav\u00f3k\u00e1j\u00e1nak hely\u00e9re, a \"Probe\" pontok pedig a szonda hely\u00e9re utalnak. Vedd figyelembe, hogy k\u00e9zi m\u00e9r\u00e9s eset\u00e9n a \"Probe\" pontok mind a szersz\u00e1m, mind a f\u00fav\u00f3ka hely\u00e9re vonatkoznak. Tiszta h\u00e1l\u00f3s \u00e1llapot \u00b6 BED_MESH_CLEAR Ez a G-k\u00f3d haszn\u00e1lhat\u00f3 a bels\u0151 h\u00e1l\u00f3 \u00e1llapot\u00e1nak t\u00f6rl\u00e9s\u00e9re. X/Y eltol\u00e1sok alkalmaz\u00e1sa \u00b6 BED_MESH_OFFSET [X=<value>] [Y=<value>] Ez t\u00f6bb f\u00fcggetlen extruderrel rendelkez\u0151 nyomtat\u00f3kn\u00e1l hasznos, mivel a szersz\u00e1mcsere ut\u00e1ni helyes Z-be\u00e1ll\u00edt\u00e1shoz sz\u00fcks\u00e9g van egy eltol\u00e1sra. Az eltol\u00e1sokat az els\u0151dleges extruderhez k\u00e9pest kell megadni. Vagyis pozit\u00edv X eltol\u00e1st kell megadni, ha a m\u00e1sodlagos extruder az els\u0151dleges extrudert\u0151l jobbra van felszerelve, \u00e9s pozit\u00edv Y eltol\u00e1st kell megadni, ha a m\u00e1sodlagos extruder az els\u0151dleges extruder m\u00f6g\u00f6tt van felszerelve.","title":"T\u00e1rgyasztal h\u00e1l\u00f3"},{"location":"Bed_Mesh.html#targyasztal-halo","text":"A t\u00e1rgyasztal h\u00e1l\u00f3 modul haszn\u00e1lhat\u00f3 a t\u00e1rgyasztal fel\u00fclet egyenetlens\u00e9geinek kiegyenl\u00edt\u00e9s\u00e9re, hogy jobb els\u0151 r\u00e9teget \u00e9rj el az eg\u00e9sz t\u00e1rgyasztalon. Meg kell jegyezni, hogy a szoftveralap\u00fa korrekci\u00f3 nem fog t\u00f6k\u00e9letes eredm\u00e9nyt el\u00e9rni, csak megk\u00f6zel\u00edt\u0151 \u00e9rt\u00e9kekkel tudatja a t\u00e1rgyasztal alakj\u00e1t. A t\u00e1rgyasztal h\u00e1l\u00f3 szint\u00e9n nem tudja kompenz\u00e1lni a mechanikai \u00e9s elektromos probl\u00e9m\u00e1kat. Ha egy tengely ferde vagy egy szonda nem pontos, akkor a bed_mesh modul nem fog pontos eredm\u00e9nyeket kapni a szintez\u00e9sr\u0151l. A h\u00e1l\u00f3kalibr\u00e1l\u00e1s el\u0151tt meg kell gy\u0151z\u0151dnie arr\u00f3l, hogy a szonda Z-eltol\u00e1sa kalibr\u00e1lva van. Ha v\u00e9g\u00e1ll\u00e1st haszn\u00e1l a Z-kezd\u0151ponthoz, akkor azt is kalibr\u00e1lni kell. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a Szonda Kalibr\u00e1l\u00e1s \u00e9s a Z_ENDSTOP_CALIBRATE c\u00edm\u0171 fejezetben K\u00e9zi Szintez\u00e9st .","title":"T\u00e1rgyasztal h\u00e1l\u00f3"},{"location":"Bed_Mesh.html#alapveto-konfiguracio","text":"","title":"Alapvet\u0151 konfigur\u00e1ci\u00f3"},{"location":"Bed_Mesh.html#teglalap-alaku-targyasztalok","text":"Ez a p\u00e9lda egy 250 mm x 220 mm-es t\u00e9glalap alak\u00fa t\u00e1rgyasztalu nyomtat\u00f3t \u00e9s egy 24 mm-es x-eltol\u00e1s\u00fa \u00e9s 5 mm-es y-eltol\u00e1s\u00fa szond\u00e1t mutat. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 sebess\u00e9g: 120 * Alap\u00e9rtelmezett \u00e9rt\u00e9k: 50* A sebess\u00e9g, amellyel a fej a pontok k\u00f6z\u00f6tt mozog. horizontal_move_z: 5 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 5 A Z koordin\u00e1ta, amelyre a szonda a m\u00e9r\u0151pontok k\u00f6z\u00f6tti utaz\u00e1s el\u0151tt emelkedik. mesh_min: 35, 6 Aj\u00e1nlott Az els\u0151, az orig\u00f3hoz legk\u00f6zelebbi koordin\u00e1ta. Ez a koordin\u00e1ta a szonda hely\u00e9hez k\u00e9pest relat\u00edv. mesh_max: 240, 198 Aj\u00e1nlott Az orig\u00f3t\u00f3l legt\u00e1volabb es\u0151 m\u00e9rt koordin\u00e1ta. Ez nem felt\u00e9tlen\u00fcl az utols\u00f3 m\u00e9rt pont, mivel a m\u00e9r\u00e9s cikcakkos m\u00f3don t\u00f6rt\u00e9nik. A mesh_min koordin\u00e1t\u00e1hoz hasonl\u00f3an ez a koordin\u00e1ta is a szonda hely\u00e9hez van viszony\u00edtva. probe_count: 5, 3 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 3,3 Az egyes tengelyeken m\u00e9rend\u0151 pontok sz\u00e1ma, X, Y eg\u00e9sz \u00e9rt\u00e9kben megadva. Ebben a p\u00e9ld\u00e1ban az X tengely ment\u00e9n 5 pont lesz m\u00e9rve, az Y tengely ment\u00e9n 3 pont, \u00f6sszesen 15 m\u00e9rt pont. Vedd figyelembe, hogy ha n\u00e9gyzetr\u00e1csot szeretne, p\u00e9ld\u00e1ul 3x3, akkor ezt egyetlen eg\u00e9sz sz\u00e1m\u00e9rt\u00e9kk\u00e9nt is megadhatja, amelyet mindk\u00e9t tengelyre haszn\u00e1l, azaz probe_count: 3 . Vedd figyelembe, hogy egy h\u00e1l\u00f3hoz mindk\u00e9t tengely ment\u00e9n legal\u00e1bb 3 darab m\u00e9r\u00e9si sz\u00e1mra van sz\u00fcks\u00e9g. Az al\u00e1bbi \u00e1bra azt mutatja, hogy a mesh_min , mesh_max \u00e9s probe_count opci\u00f3k hogyan haszn\u00e1lhat\u00f3k a m\u00e9r\u0151pontok l\u00e9trehoz\u00e1s\u00e1ra. A nyilak jelzik a m\u00e9r\u00e9si elj\u00e1r\u00e1s ir\u00e1ny\u00e1t, kezdve a mesh_min pontt\u00f3l. Hivatkoz\u00e1sk\u00e9ppen, amikor a szonda a mesh_min pontn\u00e1l van, a f\u00fav\u00f3ka a (11, 1) pontn\u00e1l lesz, \u00e9s amikor a szonda a mesh_max pontn\u00e1l van, a f\u00fav\u00f3ka a (206, 193) pontn\u00e1l lesz.","title":"T\u00e9glalap alak\u00fa t\u00e1rgyasztalok"},{"location":"Bed_Mesh.html#kerek-targyasztalok","text":"Ez a p\u00e9lda egy 100 mm-es kerek t\u00e1rgyasztallal felszerelt nyomtat\u00f3t felt\u00e9telez. Ugyanazokat a szondaeltol\u00e1sokat fogjuk haszn\u00e1lni, mint a t\u00e9glalap alak\u00fa p\u00e9ld\u00e1n\u00e1l, 24 mm-t X-en \u00e9s 5 mm-t Y-on. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_radius: 75 mesh_origin: 0, 0 round_probe_count: 5 mesh_radius: 75 Required A vizsg\u00e1lt h\u00e1l\u00f3 sugara mm-ben, a mesh_origin -hez k\u00e9pest. Vedd figyelembe, hogy a szonda eltol\u00e1sai korl\u00e1tozz\u00e1k a h\u00e1l\u00f3 sugar\u00e1nak m\u00e9ret\u00e9t. Ebben a p\u00e9ld\u00e1ban a 76-n\u00e1l nagyobb sug\u00e1r a szersz\u00e1mot a nyomtat\u00f3 hat\u00f3t\u00e1vols\u00e1g\u00e1n k\u00edv\u00fclre helyezn\u00e9. mesh_origin: 0, 0 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 0, 0 A h\u00e1l\u00f3 k\u00f6z\u00e9ppontja. Ez a koordin\u00e1ta a szonda hely\u00e9hez k\u00e9pest relat\u00edv. B\u00e1r az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, 0 hasznos lehet az orig\u00f3 be\u00e1ll\u00edt\u00e1sa, ha a t\u00e1rgyasztal nagyobb r\u00e9sz\u00e9t szeretn\u00e9 megm\u00e9rni. L\u00e1sd az al\u00e1bbi \u00e1br\u00e1t. round_probe_count: 5 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 5 Ez egy eg\u00e9sz sz\u00e1m, amely meghat\u00e1rozza az X \u00e9s Y tengely ment\u00e9n m\u00e9rt pontok maxim\u00e1lis sz\u00e1m\u00e1t. A \"maxim\u00e1lis\" alatt a h\u00e1l\u00f3 orig\u00f3ja ment\u00e9n m\u00e9rt pontok sz\u00e1m\u00e1t \u00e9rtj\u00fck. Ennek az \u00e9rt\u00e9knek p\u00e1ratlan sz\u00e1mnak kell lennie, mivel a h\u00e1l\u00f3 k\u00f6z\u00e9ppontj\u00e1t kell megvizsg\u00e1lni. Az al\u00e1bbi \u00e1bra mutatja, hogyan gener\u00e1l\u00f3dnak a m\u00e9rt pontok. Mint l\u00e1that\u00f3, a mesh_origin (-10, 0) \u00e9rt\u00e9kre \u00e1ll\u00edt\u00e1sa lehet\u0151v\u00e9 teszi, hogy nagyobb, 85-\u00f6s h\u00e1l\u00f3sugarat adjunk meg.","title":"Kerek t\u00e1rgyasztalok"},{"location":"Bed_Mesh.html#specialis-konfiguracio","text":"Az al\u00e1bbiakban r\u00e9szletesen ismertetj\u00fck a fejlettebb konfigur\u00e1ci\u00f3s lehet\u0151s\u00e9geket. Minden p\u00e9lda a fent bemutatott t\u00e9glalap alak\u00fa alapkonfigur\u00e1ci\u00f3ra \u00e9p\u00fcl. A speci\u00e1lis lehet\u0151s\u00e9gek mindegyike ugyan\u00fagy alkalmazhat\u00f3 a kerek t\u00e1rgyasztalokra is.","title":"Speci\u00e1lis konfigur\u00e1ci\u00f3"},{"location":"Bed_Mesh.html#halo-interpolacio","text":"B\u00e1r a m\u00e9rt m\u00e1trixot k\u00f6zvetlen\u00fcl egyszer\u0171 biline\u00e1ris interpol\u00e1ci\u00f3val lehet mintav\u00e9telezni a m\u00e9rt pontok k\u00f6z\u00f6tti Z-\u00e9rt\u00e9kek meghat\u00e1roz\u00e1s\u00e1hoz, a h\u00e1l\u00f3 s\u0171r\u0171s\u00e9g\u00e9nek n\u00f6vel\u00e9se \u00e9rdek\u00e9ben gyakran hasznos a tov\u00e1bbi pontok interpol\u00e1l\u00e1sa fejlettebb interpol\u00e1ci\u00f3s algoritmusok seg\u00edts\u00e9g\u00e9vel. Ezek az algoritmusok g\u00f6rb\u00fcletet adnak a h\u00e1l\u00f3hoz, megk\u00eds\u00e9relve szimul\u00e1lni a meder anyagi tulajdons\u00e1gait. A Bed Mesh ehhez Lagrange \u00e9s bikubik interpol\u00e1ci\u00f3t k\u00edn\u00e1l. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 mesh_pps: 2, 3 algorithm: bicubic bicubic_tension: 0.2 mesh_pps: 2, 3 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 2, 2 A mesh_pps opci\u00f3 a H\u00e1l\u00f3pontok szegmensenk\u00e9nti r\u00f6vid\u00edt\u00e9se. Ez az opci\u00f3 azt adja meg, hogy h\u00e1ny pontot interpol\u00e1ljon minden egyes szegmenshez az X \u00e9s Y tengely ment\u00e9n. Tekints\u00fck egy 'szegmensnek' az egyes m\u00e9rt pontok k\u00f6z\u00f6tti teret. A probe_count -hoz hasonl\u00f3an a mesh_pps is X, Y eg\u00e9sz sz\u00e1mp\u00e1rk\u00e9nt adhat\u00f3 meg, de megadhat\u00f3 egyetlen eg\u00e9sz sz\u00e1m is, amely mindk\u00e9t tengelyre vonatkozik. Ebben a p\u00e9ld\u00e1ban 4 szegmens van az X tengely ment\u00e9n \u00e9s 2 szegmens az Y tengely ment\u00e9n. Ez 8 interpol\u00e1lt pontot jelent az X ment\u00e9n, 6 interpol\u00e1lt pontot az Y ment\u00e9n, ami egy 13x8-as h\u00e1l\u00f3t eredm\u00e9nyez. Vedd figyelembe, hogy ha a mesh_pps \u00e9rt\u00e9ke 0, akkor a h\u00e1l\u00f3interpol\u00e1ci\u00f3 le van tiltva, \u00e9s a m\u00e9rt m\u00e1trixot k\u00f6zvetlen\u00fcl mintav\u00e9telezi a rendszer. algorithm: lagrange * Alap\u00e9rtelmezett \u00e9rt\u00e9k: lagrange* A h\u00e1l\u00f3 interpol\u00e1l\u00e1s\u00e1hoz haszn\u00e1lt algoritmus. Lehet lagrange vagy bicubic . A Lagrange-interpol\u00e1ci\u00f3 6 szond\u00e1zott pontn\u00e1l van korl\u00e1tozva, mivel nagyobb sz\u00e1m\u00fa minta eset\u00e9n oszcill\u00e1ci\u00f3 l\u00e9p fel. A bikubik interpol\u00e1ci\u00f3hoz mindk\u00e9t tengely ment\u00e9n legal\u00e1bb 4 szond\u00e1zott pont sz\u00fcks\u00e9ges, ha 4 pontn\u00e1l kevesebb van megadva, akkor a Lagrange mintav\u00e9telez\u00e9s kik\u00e9nyszer\u00fcl. Ha a mesh_pps 0-ra van \u00e1ll\u00edtva, akkor ez az \u00e9rt\u00e9k figyelmen k\u00edv\u00fcl marad, mivel nem t\u00f6rt\u00e9nik h\u00e1l\u00f3interpol\u00e1ci\u00f3. bicubic_tension: 0.2 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 0.2 Ha az algorithm opci\u00f3 bikubikra van \u00e1ll\u00edtva, akkor lehet megadni a fesz\u00fclts\u00e9g \u00e9rt\u00e9k\u00e9t. Min\u00e9l nagyobb a fesz\u00fclts\u00e9g, ann\u00e1l nagyobb meredeks\u00e9get interpol\u00e1l. Legyen \u00f3vatos ennek be\u00e1ll\u00edt\u00e1sakor, mivel a magasabb \u00e9rt\u00e9kek t\u00f6bb t\u00falh\u00faz\u00e1st is eredm\u00e9nyeznek, ami a m\u00e9rt pontokn\u00e1l magasabb vagy alacsonyabb interpol\u00e1lt \u00e9rt\u00e9keket eredm\u00e9nyez. Az al\u00e1bbi \u00e1bra azt mutatja, hogy a fenti opci\u00f3kat hogyan haszn\u00e1ljuk egy interpol\u00e1lt h\u00e1l\u00f3 l\u00e9trehoz\u00e1s\u00e1hoz.","title":"H\u00e1l\u00f3 interpol\u00e1ci\u00f3"},{"location":"Bed_Mesh.html#mozgas-felosztas","text":"A t\u00e1rgyasztal h\u00e1l\u00f3 \u00fagy m\u0171k\u00f6dik, hogy megkapja a G-k\u00f3d mozgat\u00e1si parancsokat \u00e9s transzform\u00e1ci\u00f3t alkalmaz a Z koordin\u00e1t\u00e1jukra. A hossz\u00fa mozg\u00e1sokat kisebb mozg\u00e1sokra kell bontani, hogy helyesen k\u00f6vess\u00e9k a t\u00e1rgyasztal alakj\u00e1t. Az al\u00e1bbi opci\u00f3k a feloszt\u00e1si viselked\u00e9st szab\u00e1lyozz\u00e1k. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 move_check_distance: 5 split_delta_z: .025 move_check_distance: 5 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 5 A minim\u00e1lis t\u00e1vols\u00e1g, amellyel a k\u00edv\u00e1nt Z-v\u00e1ltoz\u00e1st ellen\u0151rizni kell a feloszt\u00e1s v\u00e9grehajt\u00e1sa el\u0151tt. Ebben a p\u00e9ld\u00e1ban az 5 mm-n\u00e9l hosszabb mozg\u00e1st fog az algoritmus v\u00e9gigj\u00e1rni. Minden 5 mm-enk\u00e9nt egy h\u00e1l\u00f3 Z m\u00e9r\u00e9s t\u00f6rt\u00e9nik, \u00f6sszehasonl\u00edtva azt az el\u0151z\u0151 l\u00e9p\u00e9s Z \u00e9rt\u00e9k\u00e9vel. Ha a delta el\u00e9ri a split_delta_z \u00e1ltal be\u00e1ll\u00edtott k\u00fcsz\u00f6b\u00e9rt\u00e9ket, akkor a mozg\u00e1s feloszt\u00e1sra ker\u00fcl, \u00e9s a bej\u00e1r\u00e1s folytat\u00f3dik. Ez a folyamat addig ism\u00e9tl\u0151dik, am\u00edg a l\u00e9p\u00e9s v\u00e9g\u00e9re nem \u00e9r\u00fcnk, ahol egy v\u00e9gs\u0151 kiigaz\u00edt\u00e1s t\u00f6rt\u00e9nik. A move_check_distance \u00e9rt\u00e9kn\u00e9l r\u00f6videbb mozg\u00e1sokn\u00e1l a helyes Z kiigaz\u00edt\u00e1st k\u00f6zvetlen\u00fcl a mozg\u00e1sra alkalmazz\u00e1k, \u00e1thalad\u00e1s vagy feloszt\u00e1s n\u00e9lk\u00fcl. split_delta_z: .025 Alap\u00e9rtelmezett \u00e9rt\u00e9k: .025 Mint fentebb eml\u00edtett\u00fck, ez a minim\u00e1lis elt\u00e9r\u00e9s sz\u00fcks\u00e9ges a mozg\u00e1s feloszt\u00e1s\u00e1nak elind\u00edt\u00e1s\u00e1hoz. Ebben a p\u00e9ld\u00e1ban b\u00e1rmely Z-\u00e9rt\u00e9k +/- .025 mm elt\u00e9r\u00e9s kiv\u00e1ltja a feloszt\u00e1st. \u00c1ltal\u00e1ban az alap\u00e9rtelmezett \u00e9rt\u00e9kek elegend\u0151ek ezekhez az opci\u00f3khoz, s\u0151t, a move_check_distance alap\u00e9rtelmezett 5 mm-es \u00e9rt\u00e9ke t\u00falz\u00e1s lehet. Egy halad\u00f3 felhaszn\u00e1l\u00f3 azonban k\u00eds\u00e9rletezhet ezekkel az opci\u00f3kkal, hogy megpr\u00f3b\u00e1lja kiszor\u00edtani az optim\u00e1lis els\u0151 r\u00e9teget.","title":"Mozg\u00e1s feloszt\u00e1s"},{"location":"Bed_Mesh.html#halo-elhalvanyulas","text":"Ha a \"fade\" enged\u00e9lyezve van, a Z-be\u00e1ll\u00edt\u00e1s a konfigur\u00e1ci\u00f3 \u00e1ltal meghat\u00e1rozott t\u00e1vols\u00e1gon bel\u00fcl fokozatosan megsz\u0171nik. Ez a r\u00e9tegmagass\u00e1g kis kiigaz\u00edt\u00e1s\u00e1val \u00e9rhet\u0151 el, a t\u00e1rgyasztal alakj\u00e1t\u00f3l f\u00fcgg\u0151en n\u00f6velve vagy cs\u00f6kkentve. Ha a fade befejez\u0151d\u00f6tt, a Z-be\u00e1ll\u00edt\u00e1s m\u00e1r nem ker\u00fcl alkalmaz\u00e1sra, \u00edgy a nyomtat\u00e1s teteje s\u00edk lesz, nem pedig a t\u00e1rgyasztal alakj\u00e1t t\u00fckr\u00f6zi. A fak\u00edt\u00e1snak lehetnek nemk\u00edv\u00e1natos tulajdons\u00e1gai is, ha t\u00fal gyorsan fak\u00edt, akkor l\u00e1that\u00f3 leleteket eredm\u00e9nyezhet a nyomaton. Tov\u00e1bb\u00e1, ha a t\u00e1rgyasztal jelent\u0151sen megvetemedett, a fade zsugor\u00edthatja vagy megny\u00fajthatja a nyomat Z magass\u00e1g\u00e1t. Ez\u00e9rt a fade alap\u00e9rtelmez\u00e9s szerint ki van kapcsolva. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 fade_start: 1 fade_end: 10 fade_target: 0 fade_start: 1 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 1 A Z magass\u00e1g, amelyben a fokozatos kiigaz\u00edt\u00e1st el kell kezdeni. J\u00f3 \u00f6tlet, ha a fade folyamat megkezd\u00e9se el\u0151tt n\u00e9h\u00e1ny r\u00e9teggel lejjebb ker\u00fcl. fade_end: 10 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 0 A Z magass\u00e1g, amelyben a fade-nek be kell fejez\u0151dnie. Ha ez az \u00e9rt\u00e9k kisebb, mint fade_start akkor a fade le van tiltva. Ezt az \u00e9rt\u00e9ket a nyomtat\u00e1si fel\u00fclet torzul\u00e1s\u00e1t\u00f3l f\u00fcgg\u0151en lehet m\u00f3dos\u00edtani. Egy jelent\u0151sen g\u00f6rb\u00fclt fel\u00fcletnek hosszabb t\u00e1von kell elhalv\u00e1nyulnia. Egy k\u00f6zel s\u00edk fel\u00fclet eset\u00e9ben ez az \u00e9rt\u00e9k cs\u00f6kkenthet\u0151, hogy gyorsabban fakuljon ki. A 10 mm egy \u00e9sszer\u0171 \u00e9rt\u00e9k, ha a fade_start alap\u00e9rtelmezett 1 \u00e9rt\u00e9k\u00e9t haszn\u00e1ljuk. fade_target: 0 Alap\u00e9rtelmezett \u00e9rt\u00e9k: A h\u00e1l\u00f3 \u00e1tlagos Z \u00e9rt\u00e9ke A fade_target \u00fagy k\u00e9pzelhet\u0151 el, mint egy tov\u00e1bbi Z eltol\u00e1s, amelyet a fade befejez\u00e9se ut\u00e1n a teljes t\u00e1rgyasztalra alkalmaznak. \u00c1ltal\u00e1noss\u00e1gban azt szeretn\u00e9nk, ha ez az \u00e9rt\u00e9k 0 lenne, azonban vannak olyan k\u00f6r\u00fclm\u00e9nyek, amikor nem kell, hogy \u00edgy legyen. Tegy\u00fck fel p\u00e9ld\u00e1ul, hogy a t\u00e1rgyasztalon a kezd\u0151pont poz\u00edci\u00f3ja egy kiugr\u00f3 \u00e9rt\u00e9k, amely 0,2 mm-rel alacsonyabb, mint a t\u00e1rgyasztal \u00e1tlagos m\u00e9rt magass\u00e1ga. Ha a fade_target \u00e9rt\u00e9ke 0, akkor a fade \u00e1tlagosan 0,2 mm-rel zsugor\u00edtja a nyomtat\u00e1st a t\u00e1rgyasztalon. Ha a fade_target \u00e9rt\u00e9k\u00e9t .2-re \u00e1ll\u00edtja, akkor a kezd\u0151ponti ter\u00fclet .2 mm-rel fog t\u00e1gulni, azonban a t\u00e1rgyasztal t\u00f6bbi r\u00e9sze pontosan m\u00e9retezett lesz. \u00c1ltal\u00e1ban j\u00f3 \u00f6tlet a fade_target elhagy\u00e1sa a konfigur\u00e1ci\u00f3b\u00f3l, \u00edgy a h\u00e1l\u00f3 \u00e1tlagos magass\u00e1ga ker\u00fcl felhaszn\u00e1l\u00e1sra, azonban k\u00edv\u00e1natos lehet a fade target k\u00e9zi be\u00e1ll\u00edt\u00e1sa, ha a t\u00e1rgyasztal egy adott r\u00e9sz\u00e9re szeretn\u00e9nk nyomtatni.","title":"H\u00e1l\u00f3 elhalv\u00e1nyul\u00e1s"},{"location":"Bed_Mesh.html#a-relativ-referenciaindex","text":"A legt\u00f6bb szonda hajlamos a driftre, azaz: a h\u0151 vagy interferencia \u00e1ltal okozott pontatlans\u00e1gokra. Ez kih\u00edv\u00e1ss\u00e1 teheti a szonda Z-eltol\u00e1s\u00e1nak kisz\u00e1m\u00edt\u00e1s\u00e1t, k\u00fcl\u00f6n\u00f6sen k\u00fcl\u00f6nb\u00f6z\u0151 t\u00e1rgyasztal h\u0151m\u00e9rs\u00e9kleteken. Ez\u00e9rt egyes nyomtat\u00f3k a Z tengely be\u00e1ll\u00edt\u00e1s\u00e1hoz v\u00e9g\u00e1ll\u00e1st, a h\u00e1l\u00f3 kalibr\u00e1l\u00e1s\u00e1hoz pedig szond\u00e1t haszn\u00e1lnak. Ezeknek a nyomtat\u00f3knak el\u0151ny\u00f6s lehet a relat\u00edv referenciaindex konfigur\u00e1l\u00e1sa. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 relative_reference_index: 7 relative_reference_index: 7 Alap\u00e9rtelmezett \u00e9rt\u00e9k: Nincs (letiltva) A m\u00e9rt pontok l\u00e9trehoz\u00e1sakor mindegyikhez indexet rendel\u00fcnk. Ezt az indexet a klippy.log f\u00e1jlban vagy a BED_MESH_OUTPUT seg\u00edts\u00e9g\u00e9vel kereshetj\u00fck meg (tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd az al\u00e1bbi, Bed Mesh GCodes c\u00edm\u0171 r\u00e9szt). Ha indexet rendel a relative_reference_index opci\u00f3hoz, akkor az ezen a koordin\u00e1t\u00e1n m\u00e9rt \u00e9rt\u00e9k fogja helyettes\u00edteni a szonda z_offset-\u00e9t. Ez\u00e1ltal ez a koordin\u00e1ta gyakorlatilag a h\u00e1l\u00f3 \"nulla\" referenci\u00e1j\u00e1v\u00e1 v\u00e1lik. A relat\u00edv referenciaindex haszn\u00e1latakor azt az indexet kell v\u00e1lasztania, amelyik a legk\u00f6zelebb van ahhoz a ponthoz a t\u00e1rgyasztalon, ahol a Z v\u00e9g\u00e1ll\u00e1s kalibr\u00e1l\u00e1sa t\u00f6rt\u00e9nt. Vedd figyelembe, hogy ha az indexet a napl\u00f3 vagy a BED_MESH_OUTPUT seg\u00edts\u00e9g\u00e9vel keresi meg, akkor a \"Probe\" fejl\u00e9c alatt felsorolt koordin\u00e1t\u00e1kat kell haszn\u00e1lnia a helyes index megtal\u00e1l\u00e1s\u00e1hoz.","title":"A relat\u00edv referenciaindex"},{"location":"Bed_Mesh.html#hibas-regiok","text":"El\u0151fordulhat, hogy a t\u00e1rgyasztal egyes ter\u00fcletei pontatlan eredm\u00e9nyeket jeleznek a m\u00e9r\u00e9s sor\u00e1n, mivel bizonyos helyeken \"hiba\" van. Erre a legjobb p\u00e9lda a levehet\u0151 ac\u00e9llemezek r\u00f6gz\u00edt\u00e9s\u00e9re haszn\u00e1lt integr\u00e1lt m\u00e1gnesek sorozat\u00e1val ell\u00e1tott t\u00e1rgyasztalok. Ezekn\u00e9l a m\u00e1gnesekn\u00e9l \u00e9s k\u00f6r\u00fcl\u00f6tt\u00fck l\u00e9v\u0151 m\u00e1gneses mez\u0151 hat\u00e1s\u00e1ra az indukt\u00edv szonda magasabb vagy alacsonyabb t\u00e1vols\u00e1gban m\u00e9rhet, mint egy\u00e9bk\u00e9nt tenn\u00e9, ami azt eredm\u00e9nyezi, hogy a h\u00e1l\u00f3 nem pontosan reprezent\u00e1lja a fel\u00fcletet ezeken a helyeken. Figyelem: Ez nem t\u00e9vesztend\u0151 \u00f6ssze a szonda hely\u00e9nek torz\u00edt\u00e1s\u00e1val, amely pontatlan eredm\u00e9nyeket eredm\u00e9nyez az eg\u00e9sz t\u00e1rgyasztalon. A faulty_region opci\u00f3kat \u00fagy lehet be\u00e1ll\u00edtani, hogy kompenz\u00e1lj\u00e1k ezt a hat\u00e1st. Ha egy gener\u00e1lt pont egy hib\u00e1s r\u00e9gi\u00f3ba esik, akkor a bed mesh megpr\u00f3b\u00e1l ak\u00e1r 4 pontot is megvizsg\u00e1lni a r\u00e9gi\u00f3 hat\u00e1rain\u00e1l. Ezeket a m\u00e9rt \u00e9rt\u00e9keket \u00e1tlagolja \u00e9s beilleszti a h\u00e1l\u00f3ba Z \u00e9rt\u00e9kben a gener\u00e1lt (X, Y) koordin\u00e1t\u00e1n. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 faulty_region_1_min: 130.0, 0.0 faulty_region_1_max: 145.0, 40.0 faulty_region_2_min: 225.0, 0.0 faulty_region_2_max: 250.0, 25.0 faulty_region_3_min: 165.0, 95.0 faulty_region_3_max: 205.0, 110.0 faulty_region_4_min: 30.0, 170.0 faulty_region_4_max: 45.0, 210.0 faulty_region_{1...99}_min faulty_region_{1...99}_max Alap\u00e9rtelmezett \u00e9rt\u00e9k: Nincs (letiltva) A hib\u00e1s r\u00e9gi\u00f3k meghat\u00e1roz\u00e1sa hasonl\u00f3an t\u00f6rt\u00e9nik, mint mag\u00e1nak a h\u00e1l\u00f3nak a meghat\u00e1roz\u00e1sa, ahol minden egyes r\u00e9gi\u00f3hoz meg kell adni a minim\u00e1lis \u00e9s maxim\u00e1lis (X, Y) koordin\u00e1t\u00e1kat. Egy hib\u00e1s r\u00e9gi\u00f3 a h\u00e1l\u00f3n k\u00edv\u00fclre is kiterjedhet, azonban a gener\u00e1lt v\u00e1ltakoz\u00f3 pontok mindig a h\u00e1l\u00f3 hat\u00e1r\u00e1n bel\u00fcl lesznek. K\u00e9t r\u00e9gi\u00f3 nem fedheti egym\u00e1st. Az al\u00e1bbi k\u00e9p azt szeml\u00e9lteti, hogyan gener\u00e1l\u00f3dnak a cserepontok, ha egy gener\u00e1lt pont egy hib\u00e1s ter\u00fcleten bel\u00fcl van. Az \u00e1br\u00e1zolt r\u00e9gi\u00f3k megegyeznek a fenti mintakonfigur\u00e1ci\u00f3ban szerepl\u0151 r\u00e9gi\u00f3kkal. A cserepontok \u00e9s koordin\u00e1t\u00e1ik z\u00f6ld sz\u00ednnel vannak jel\u00f6lve.","title":"Hib\u00e1s r\u00e9gi\u00f3k"},{"location":"Bed_Mesh.html#targyasztal-halo-g-kodok","text":"","title":"T\u00e1rgyasztal h\u00e1l\u00f3 G-k\u00f3dok"},{"location":"Bed_Mesh.html#kalibracio","text":"BED_MESH_CALIBRATE PROFILE=<name> METHOD=[manual | automatic] [<probe_parameter>=<value>] [<mesh_parameter>=<value>] * Alap\u00e9rtelmezett profil: alap\u00e9rtelmezett Alap\u00e9rtelmezett m\u00f3dszer: automatikus, ha \u00e9rz\u00e9kel\u0151t \u00e9szlel, egy\u00e9bk\u00e9nt manu\u00e1lis* Elind\u00edtja a m\u00e9r\u00e9si elj\u00e1r\u00e1st a t\u00e1rgyasztal h\u00e1l\u00f3 kalibr\u00e1l\u00e1s\u00e1hoz. A h\u00e1l\u00f3 a PROFILE param\u00e9ter \u00e1ltal megadott profilba ker\u00fcl ment\u00e9sre, vagy default , ha nincs megadva. Ha a METHOD=manual param\u00e9tert v\u00e1lasztjuk, akkor k\u00e9zi m\u00e9r\u00e9s t\u00f6rt\u00e9nik. Az automatikus \u00e9s a k\u00e9zi m\u00e9r\u00e9s k\u00f6z\u00f6tti v\u00e1lt\u00e1skor a gener\u00e1lt h\u00e1l\u00f3pontok automatikusan kiigaz\u00edt\u00e1sra ker\u00fclnek. Lehet\u0151s\u00e9g van h\u00e1l\u00f3param\u00e9terek megad\u00e1s\u00e1ra a m\u00e9rt ter\u00fclet m\u00f3dos\u00edt\u00e1s\u00e1ra. A k\u00f6vetkez\u0151 param\u00e9terek \u00e1llnak rendelkez\u00e9sre: T\u00e9glalap alak\u00fa t\u00e1rgyasztalok (cartesian): MESH_MIN MESH_MAX PROBE_COUNT Kerek t\u00e1rgyasztalok (delta): MESH_RADIUS MESH_ORIGIN ROUND_PROBE_COUNT Minden t\u00e1rgyasztal: RELATIVE_REFERNCE_INDEX ALGORITHM Az egyes param\u00e9terek h\u00e1l\u00f3ra val\u00f3 alkalmaz\u00e1s\u00e1nak r\u00e9szleteit l\u00e1sd a fenti konfigur\u00e1ci\u00f3s dokument\u00e1ci\u00f3ban.","title":"Kalibr\u00e1ci\u00f3"},{"location":"Bed_Mesh.html#profilok","text":"BED_MESH_PROFILE SAVE=<name> LOAD=<name> REMOVE=<name> A BED_MESH_CALIBRATE elv\u00e9gz\u00e9se ut\u00e1n lehet\u0151s\u00e9g van a h\u00e1l\u00f3 aktu\u00e1lis \u00e1llapot\u00e1nak elment\u00e9s\u00e9re egy megnevezett profilba. Ez lehet\u0151v\u00e9 teszi a h\u00e1l\u00f3 bet\u00f6lt\u00e9s\u00e9t a t\u00e1rgyasztal \u00fajb\u00f3li m\u00e9r\u00e9se n\u00e9lk\u00fcl. Miut\u00e1n egy profilt a BED_MESH_PROFILE SAVE=<name> seg\u00edts\u00e9g\u00e9vel elmentett\u00fcnk, a SAVE_CONFIG G-k\u00f3d v\u00e9grehajthat\u00f3 a profil printer.cfg f\u00e1jlba val\u00f3 \u00edr\u00e1s\u00e1hoz. A profilok a BED_MESH_PROFILE LOAD=<name> parancs v\u00e9grehajt\u00e1s\u00e1val t\u00f6lthet\u0151k be. Meg kell jegyezni, hogy minden alkalommal, amikor a BED_MESH_CALIBRATE haszn\u00e1latba ker\u00fcl, az aktu\u00e1lis \u00e1llapot automatikusan az alap\u00e9rtelmezett profilba ker\u00fcl ment\u00e9sre. Ha ez a profil l\u00e9tezik, akkor a Klipper ind\u00edt\u00e1sakor automatikusan bet\u00f6lt\u0151dik. Ha ez a viselked\u00e9s nem k\u00edv\u00e1natos, a default profil a k\u00f6vetkez\u0151k\u00e9ppen t\u00e1vol\u00edthat\u00f3 el: BED_MESH_PROFILE REMOVE=default B\u00e1rmely m\u00e1s elmentett profil ugyan\u00edgy elt\u00e1vol\u00edthat\u00f3, a default helyettes\u00edtve az elt\u00e1vol\u00edtani k\u00edv\u00e1nt n\u00e9vvel.","title":"Profilok"},{"location":"Bed_Mesh.html#kimenet","text":"BED_MESH_OUTPUT PGP=[0 | 1] Az aktu\u00e1lis h\u00e1l\u00f3\u00e1llapotot adja ki a termin\u00e1lra. Vegy\u00fck \u00e9szre, hogy maga a h\u00e1l\u00f3 is kimenetre ker\u00fcl A PGP param\u00e9ter a \"Print Generated Points\" r\u00f6vid\u00edt\u00e9se. Ha PGP=1 van be\u00e1ll\u00edtva, a gener\u00e1lt m\u00e9rt pontok a termin\u00e1lra ker\u00fclnek: // bed_mesh: generated points // Index | Tool Adjusted | Probe // 0 | (11.0, 1.0) | (35.0, 6.0) // 1 | (62.2, 1.0) | (86.2, 6.0) // 2 | (113.5, 1.0) | (137.5, 6.0) // 3 | (164.8, 1.0) | (188.8, 6.0) // 4 | (216.0, 1.0) | (240.0, 6.0) // 5 | (216.0, 97.0) | (240.0, 102.0) // 6 | (164.8, 97.0) | (188.8, 102.0) // 7 | (113.5, 97.0) | (137.5, 102.0) // 8 | (62.2, 97.0) | (86.2, 102.0) // 9 | (11.0, 97.0) | (35.0, 102.0) // 10 | (11.0, 193.0) | (35.0, 198.0) // 11 | (62.2, 193.0) | (86.2, 198.0) // 12 | (113.5, 193.0) | (137.5, 198.0) // 13 | (164.8, 193.0) | (188.8, 198.0) // 14 | (216.0, 193.0) | (240.0, 198.0) A \"Tool Adjusted\" pontok az egyes pontok f\u00fav\u00f3k\u00e1j\u00e1nak hely\u00e9re, a \"Probe\" pontok pedig a szonda hely\u00e9re utalnak. Vedd figyelembe, hogy k\u00e9zi m\u00e9r\u00e9s eset\u00e9n a \"Probe\" pontok mind a szersz\u00e1m, mind a f\u00fav\u00f3ka hely\u00e9re vonatkoznak.","title":"Kimenet"},{"location":"Bed_Mesh.html#tiszta-halos-allapot","text":"BED_MESH_CLEAR Ez a G-k\u00f3d haszn\u00e1lhat\u00f3 a bels\u0151 h\u00e1l\u00f3 \u00e1llapot\u00e1nak t\u00f6rl\u00e9s\u00e9re.","title":"Tiszta h\u00e1l\u00f3s \u00e1llapot"},{"location":"Bed_Mesh.html#xy-eltolasok-alkalmazasa","text":"BED_MESH_OFFSET [X=<value>] [Y=<value>] Ez t\u00f6bb f\u00fcggetlen extruderrel rendelkez\u0151 nyomtat\u00f3kn\u00e1l hasznos, mivel a szersz\u00e1mcsere ut\u00e1ni helyes Z-be\u00e1ll\u00edt\u00e1shoz sz\u00fcks\u00e9g van egy eltol\u00e1sra. Az eltol\u00e1sokat az els\u0151dleges extruderhez k\u00e9pest kell megadni. Vagyis pozit\u00edv X eltol\u00e1st kell megadni, ha a m\u00e1sodlagos extruder az els\u0151dleges extrudert\u0151l jobbra van felszerelve, \u00e9s pozit\u00edv Y eltol\u00e1st kell megadni, ha a m\u00e1sodlagos extruder az els\u0151dleges extruder m\u00f6g\u00f6tt van felszerelve.","title":"X/Y eltol\u00e1sok alkalmaz\u00e1sa"},{"location":"Benchmarks.html","text":"Referencia\u00e9rt\u00e9kek \u00b6 Ez a dokumentum a Klipper referencia\u00e9rt\u00e9keit ismerteti. Mikrokontroller referencia\u00e9rt\u00e9kek \u00b6 Ez a szakasz ismerteti a Klipper mikrokontroller l\u00e9p\u00e9si sebess\u00e9greferencia l\u00e9trehoz\u00e1s\u00e1ra haszn\u00e1lt mechanizmust. A referenciamutat\u00f3k els\u0151dleges c\u00e9lja, hogy k\u00f6vetkezetes mechanizmust biztos\u00edtsanak a szoftveren bel\u00fcli k\u00f3dol\u00e1si v\u00e1ltoztat\u00e1sok hat\u00e1s\u00e1nak m\u00e9r\u00e9s\u00e9re. M\u00e1sodlagos c\u00e9l, hogy magas szint\u0171 m\u00e9r\u0151sz\u00e1mokat biztos\u00edtson a chipek \u00e9s a szoftverplatformok teljes\u00edtm\u00e9ny\u00e9nek \u00f6sszehasonl\u00edt\u00e1s\u00e1hoz. A l\u00e9p\u00e9ssz\u00e1m-\u00f6sszehasonl\u00edt\u00e1s c\u00e9lja a hardver \u00e9s a szoftver \u00e1ltal el\u00e9rhet\u0151 maxim\u00e1lis l\u00e9p\u00e9ssz\u00e1m meghat\u00e1roz\u00e1sa. Ez az \u00f6sszehasonl\u00edt\u00f3 l\u00e9p\u00e9si sebess\u00e9g a mindennapi haszn\u00e1lat sor\u00e1n nem \u00e9rhet\u0151 el, mivel a Klippernek m\u00e1s feladatokat is el kell l\u00e1tnia (pl. mcu/host kommunik\u00e1ci\u00f3, h\u0151m\u00e9rs\u00e9klet leolvas\u00e1s, v\u00e9g\u00e1ll\u00e1s ellen\u0151rz\u00e9s) minden val\u00f3s haszn\u00e1lat sor\u00e1n. \u00c1ltal\u00e1ban a referencia-tesztekhez haszn\u00e1lt t\u0171ket \u00fagy v\u00e1lasztj\u00e1k ki, hogy LED-eket vagy m\u00e1s \u00e1rtalmatlan eszk\u00f6z\u00f6ket m\u0171k\u00f6dtessen. A referencia futtat\u00e1sa el\u0151tt mindig ellen\u0151rizd, hogy a konfigur\u00e1lt t\u0171k meghajt\u00e1sa biztons\u00e1gos-e. Nem aj\u00e1nlott a t\u00e9nyleges l\u00e9ptet\u0151k haszn\u00e1lata a referencia sor\u00e1n. L\u00e9ptet\u0151ar\u00e1nyos referencia\u00e9rt\u00e9k teszt \u00b6 A teszt a console.py eszk\u00f6zzel t\u00f6rt\u00e9nik (a c\u00edm\u0171 fejezetben le\u00edrtak szerint). A mikrokontrollert az adott hardverplatformhoz konfigur\u00e1ljuk (l\u00e1sd al\u00e1bb), majd a k\u00f6vetkez\u0151ket v\u00e1gjuk ki \u00e9s illessz\u00fck be a console.py termin\u00e1lablakba: SET start_clock {clock+freq} SET ticks 1000 reset_step_clock oid=0 clock={start_clock} set_next_step_dir oid=0 dir=0 queue_step oid=0 interval={ticks} count=60000 add=0 set_next_step_dir oid=0 dir=1 queue_step oid=0 interval=3000 count=1 add=0 reset_step_clock oid=1 clock={start_clock} set_next_step_dir oid=1 dir=0 queue_step oid=1 interval={ticks} count=60000 add=0 set_next_step_dir oid=1 dir=1 queue_step oid=1 interval=3000 count=1 add=0 reset_step_clock oid=2 clock={start_clock} set_next_step_dir oid=2 dir=0 queue_step oid=2 interval={ticks} count=60000 add=0 set_next_step_dir oid=2 dir=1 queue_step oid=2 interval=3000 count=1 add=0 A fentiekben h\u00e1rom l\u00e9ptet\u0151 egyidej\u0171 l\u00e9ptet\u00e9s\u00e9t tesztelj\u00fck. Ha a fentiek futtat\u00e1sa egy \"Rescheduled timer in the past\" a \"Stepper too far in pas\" hib\u00e1t eredm\u00e9nyez, akkor ez azt jelzi, hogy a ticks param\u00e9ter t\u00fal alacsony (t\u00fal gyors l\u00e9ptet\u00e9si sebess\u00e9get eredm\u00e9nyez). A c\u00e9l az, hogy megtal\u00e1ljuk a ticks param\u00e9ter legalacsonyabb be\u00e1ll\u00edt\u00e1s\u00e1t, amely megb\u00edzhat\u00f3an eredm\u00e9nyezi a teszt sikeres befejez\u00e9s\u00e9t. A ticks param\u00e9tert addig kell felezni, am\u00edg stabil \u00e9rt\u00e9ket nem tal\u00e1lunk. Sikertelens\u00e9g eset\u00e9n az al\u00e1bbiakat m\u00e1solva \u00e9s beillesztve t\u00f6r\u00f6lheti a hib\u00e1t a k\u00f6vetkez\u0151 tesztre val\u00f3 felk\u00e9sz\u00fcl\u00e9shez: clear_shutdown Az egyl\u00e9pcs\u0151s referencia\u00e9rt\u00e9kek el\u00e9r\u00e9s\u00e9hez ugyanazt a konfigur\u00e1ci\u00f3s sorrendet kell haszn\u00e1lni, de a fenti tesztnek csak az els\u0151 blokkja a m\u00e1sol\u00e1s \u00e9s beilleszt\u00e9s a console.py ablakba. A Funkci\u00f3k dokumentumban tal\u00e1lhat\u00f3 referenciatesztek el\u0151\u00e1ll\u00edt\u00e1s\u00e1hoz a m\u00e1sodpercenk\u00e9nti l\u00e9p\u00e9sek teljes sz\u00e1m\u00e1t \u00fagy kell kisz\u00e1m\u00edtani, hogy az akt\u00edv l\u00e9ptet\u0151k sz\u00e1m\u00e1t megszorozzuk a n\u00e9vleges MCU frekvenci\u00e1val, \u00e9s elosztjuk a v\u00e9gs\u0151 \"ticks\" param\u00e9terrel. Az eredm\u00e9nyeket a legk\u00f6zelebbi K-ra kerek\u00edtj\u00fck. P\u00e9ld\u00e1ul h\u00e1rom akt\u00edv l\u00e9ptet\u0151vel: ECHO A teszt eredm\u00e9nye: {\"%.0fK\" % (3. * freq / ticks / 1000.)} A referencia\u00e9rt\u00e9keket a TMC vez\u00e9rl\u0151k sz\u00e1m\u00e1ra megfelel\u0151 param\u00e9terekkel futtatjuk. Az olyan mikrovez\u00e9rl\u0151k eset\u00e9ben, amelyek t\u00e1mogatj\u00e1k a STEPPER_BOTH_EDGE=1 (amint azt az MCU config sorban a konzoln\u00e1l console.py els\u0151 ind\u00edt\u00e1sakor) a step_pulse_duration=0 \u00e9s invert_step=-1 haszn\u00e1lat\u00e1val enged\u00e9lyezz\u00fck az optimaliz\u00e1lt l\u00e9p\u00e9st a l\u00e9p\u00e9simpulzus mindk\u00e9t \u00e9l\u00e9re. M\u00e1s mikrovez\u00e9rl\u0151k eset\u00e9ben haszn\u00e1ld a 100ns-nak megfelel\u0151 step_pulse_duration \u00e9rt\u00e9ket. AVR l\u00e9p\u00e9si sebess\u00e9g referencia\u00e9rt\u00e9k \u00b6 Az AVR chipekn\u00e9l a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrend haszn\u00e1latos: allocate_oids count=3 config_stepper oid=0 step_pin=PA5 dir_pin=PA4 invert_step=0 step_pulse_ticks=32 config_stepper oid=1 step_pin=PA3 dir_pin=PA2 invert_step=0 step_pulse_ticks=32 config_stepper oid=2 step_pin=PC7 dir_pin=PC6 invert_step=0 step_pulse_ticks=32 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1son futtattuk, a gcc avr-gcc (GCC) 5.4.0 verzi\u00f3j\u00e1val. Mind a 16Mhz-es, mind a 20Mhz-es teszteket egy atmega644p-re konfigur\u00e1lt simulavr seg\u00edts\u00e9g\u00e9vel futtattuk (kor\u00e1bbi tesztek meger\u0151s\u00edtett\u00e9k, hogy a simulavr eredm\u00e9nyei egyeznek a 16Mhz-es at90usb \u00e9s a 16Mhz-es atmega2560-as tesztekkel). avr tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 102 3 l\u00e9ptet\u0151 486 Arduino Due l\u00e9p\u00e9ssz\u00e1m referencia \u00b6 A k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk a Due-n: allocate_oids count=3 config_stepper oid=0 step_pin=PB27 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB26 dir_pin=PC30 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA21 dir_pin=PC30 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. sam3x8e tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 66 3 l\u00e9ptet\u0151 257 Duet Maestro l\u00e9p\u00e9ssz\u00e1m referencia \u00b6 A Duet Maestro a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1lja: allocate_oids count=3 config_stepper oid=0 step_pin=PC26 dir_pin=PC18 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PC26 dir_pin=PA8 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PC26 dir_pin=PB4 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. sam4s8c tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 71 3 l\u00e9ptet\u0151 260 Duet WiFi l\u00e9p\u00e9ssz\u00e1m referencia \u00b6 A Duet WiFi eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=PD6 dir_pin=PD11 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PD7 dir_pin=PD12 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PD8 dir_pin=PD13 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val gcc 10.3.1 20210621 (release) (GNU Arm Embedded Toolchain 10.3-2021.07) futtatta. sam4e8e tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 48 3 l\u00e9ptet\u0151 215 Beaglebone PRU l\u00e9p\u00e9ssz\u00e1m referencia \u00b6 A PRU-n a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet kell alkalmazni: allocate_oids count=3 config_stepper oid=0 step_pin=gpio0_23 dir_pin=gpio1_12 invert_step=0 step_pulse_ticks=20 config_stepper oid=1 step_pin=gpio1_15 dir_pin=gpio0_26 invert_step=0 step_pulse_ticks=20 config_stepper oid=2 step_pin=gpio0_22 dir_pin=gpio2_1 invert_step=0 step_pulse_ticks=20 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val pru-gcc (GCC) 8.0.0 20170530 (experimental) futtatta. pru tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 231 3 l\u00e9ptet\u0151 847 STM32F042 l\u00e9p\u00e9ssz\u00e1m referencia \u00b6 Az STM32F042-n\u00e9l a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=PA1 dir_pin=PA2 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PA3 dir_pin=PA2 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PB8 dir_pin=PA2 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. stm32f042 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 59 3 l\u00e9ptet\u0151 249 STM32F103 l\u00e9p\u00e9ssz\u00e1m referencia \u00b6 Az STM32F103 eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=PC13 dir_pin=PB5 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB3 dir_pin=PB6 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA4 dir_pin=PB7 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. stm32f103 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 61 3 l\u00e9ptet\u0151 264 STM32F4 l\u00e9p\u00e9ssz\u00e1m referencia \u00b6 Az STM32F4 eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=PA5 dir_pin=PB5 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB2 dir_pin=PB6 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PB3 dir_pin=PB7 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. Az STM32F407-es eredm\u00e9nyeket \u00fagy kaptuk, hogy egy STM32F407-es bin\u00e1ris programot futtattunk egy STM32F446-oson (\u00e9s \u00edgy 168 MHz-es \u00f3rajelet haszn\u00e1ltunk). stm32f446 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 46 3 l\u00e9ptet\u0151 205 stm32f407 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 46 3 l\u00e9ptet\u0151 205 STM32H7 l\u00e9p\u00e9ssz\u00e1m referencia \u00b6 A k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet egy STM32H743VIT6 eset\u00e9ben haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=PD4 dir_pin=PD3 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PA15 dir_pin=PA8 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PE2 dir_pin=PE3 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A teszt utolj\u00e1ra 00191b5c v\u00e9gleges\u00edt\u00e9ssel futott a gcc arm-none-eabi-gcc (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] v\u00e9gleges\u00edt\u00e9ssel. stm32h7 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 44 3 l\u00e9ptet\u0151 198 STM32G0B1 l\u00e9p\u00e9ssz\u00e1m referencia \u00b6 Az STM32G0B1 eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=PB13 dir_pin=PB12 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB10 dir_pin=PB2 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PB0 dir_pin=PC5 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 247cd753 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. stm32g0b1 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 58 3 l\u00e9ptet\u0151 243 LPC176x l\u00e9p\u00e9ssz\u00e1m referencia \u00b6 Az LPC176x eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=P1.20 dir_pin=P1.18 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=P1.21 dir_pin=P1.18 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=P1.23 dir_pin=P1.18 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. A 120Mhz-es LPC1769-es eredm\u00e9nyeket egy LPC1768-as 120Mhz-re val\u00f3 t\u00falhajt\u00e1s\u00e1val kaptuk. lpc1768 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 52 3 l\u00e9ptet\u0151 222 lpc1769 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 51 3 l\u00e9ptet\u0151 222 SAMD21 l\u00e9p\u00e9si sebess\u00e9g referencia \u00b6 A SAMD21 eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet kell alkalmazni: allocate_oids count=3 config_stepper oid=0 step_pin=PA27 dir_pin=PA20 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB3 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA17 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet legut\u00f3bb a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta egy SAMD21G18 mikrokontrollerrel. samd21 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 70 3 l\u00e9ptet\u0151 306 SAMD51 l\u00e9p\u00e9si sebess\u00e9g referencia \u00b6 A SAMD51 eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet kell alkalmazni: allocate_oids count=3 config_stepper oid=0 step_pin=PA22 dir_pin=PA20 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PA22 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA22 dir_pin=PA19 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet legut\u00f3bb a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta egy SAMD51J19A mikrokontrollerrel. samd51 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 39 3 l\u00e9ptet\u0151 191 1 l\u00e9p\u00e9s (200Mhz) 39 3 l\u00e9p\u00e9s (200Mhz) 181 RP2040 l\u00e9ptet\u00e9si referencia \u00b6 Az RP2040 eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet kell alkalmazni: allocate_oids count=3 config_stepper oid=0 step_pin=gpio25 dir_pin=gpio3 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=gpio26 dir_pin=gpio4 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=gpio27 dir_pin=gpio5 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet legut\u00f3bb a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 Raspberry Pi Pico k\u00e1rty\u00e1n futtattuk. rp2040 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 5 3 l\u00e9ptet\u0151 22 Linux MCU l\u00e9p\u00e9ssz\u00e1m referencia \u00b6 A k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet egy Raspberry Pi eset\u00e9ben haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=gpio2 dir_pin=gpio3 invert_step=0 step_pulse_ticks=5 config_stepper oid=1 step_pin=gpio4 dir_pin=gpio5 invert_step=0 step_pulse_ticks=5 config_stepper oid=2 step_pin=gpio6 dir_pin=gpio17 invert_step=0 step_pulse_ticks=5 finalize_config crc=0 A tesztet legut\u00f3bb a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val gcc (Raspbian 8.3.0-6+rpi1) 8.3.0 Raspberry Pi 3-on (revision a02082) futtatt\u00e1k. Ebben a referenciatesztben neh\u00e9z volt stabil eredm\u00e9nyeket el\u00e9rni. Linux (RPi3) tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 160 3 l\u00e9ptet\u0151 380 Parancsk\u00fcld\u00e9si referencia \u00b6 A parancskiad\u00e1si referenciateszt azt teszteli, hogy a mikrokontroller h\u00e1ny \"dummy\" parancsot k\u00e9pes feldolgozni. Ez els\u0151sorban a hardveres kommunik\u00e1ci\u00f3s mechanizmus tesztje. A tesztet a console.py eszk\u00f6zzel futtatjuk (a c\u00edm\u0171 fejezetben le\u00edrtak szerint). Az al\u00e1bbiakat m\u00e1soljuk ki \u00e9s illessz\u00fck be a console.py termin\u00e1lablakba: DELAY {clock + 2*freq} get_uptime FLOOD 100000 0.0 debug_nop get_uptime A teszt befejez\u00e9sekor hat\u00e1rozza meg a k\u00e9t \"\u00fczemid\u0151\" v\u00e1lasz\u00fczenetben jelentett \u00f3r\u00e1k k\u00f6z\u00f6tti k\u00fcl\u00f6nbs\u00e9get. A m\u00e1sodpercenk\u00e9nti parancsok teljes sz\u00e1ma ekkor 100000 * mcu_frequency / clock_diff . Vedd figyelembe, hogy ez a teszt tel\u00edtheti a Raspberry Pi USB/CPU kapacit\u00e1s\u00e1t. Ha Raspberry Pi, Beaglebone vagy hasonl\u00f3 gazdag\u00e9pen fut, akkor n\u00f6velje a k\u00e9sleltet\u00e9st (pl. DELAY {clock + 20*freq} get_uptime ). Ahol alkalmazhat\u00f3, az al\u00e1bbi referenci\u00e1k a console.py futtat\u00e1s\u00e1val k\u00e9sz\u00fcltek egy asztali sz\u00e1m\u00edt\u00f3g\u00e9pen, ahol az eszk\u00f6z egy nagy sebess\u00e9g\u0171 HUB-on kereszt\u00fcl van csatlakoztatva. MCU Ar\u00e1ny Gy\u00e1ri sz\u00e1m Ford\u00edt\u00f3 program stm32f042 (CAN) 18K c105adc8 arm-none-eabi-gcc (GNU Tools 7-2018-q3-update) 7.3.1 atmega2560 (serial) 23K b161a69e avr-gcc (GCC) 4.8.1 sam3x8e (serial) 23K b161a69e arm-none-eabi-gcc (Fedora 7.1.0-5.fc27) 7.1.0 at90usb1286 (USB) 75K 01d2183f avr-gcc (GCC) 5.4.0 samd21 (USB) 223K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 pru (megosztott mem\u00f3ria) 260K c5968a08 pru-gcc (GCC) 8.0.0 20170530 (k\u00eds\u00e9rleti) stm32f103 (USB) 355K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 sam3x8e (USB) 418K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 lpc1768 (USB) 534K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 lpc1769 (USB) 628K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 sam4s8c (USB) 650K 8d4a5c16 arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 samd51 (USB) 864K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 stm32f446 (USB) 870K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 rp2040 (USB) 873K c5667193 arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 Gazdag\u00e9p referencia\u00e9rt\u00e9kei \u00b6 Lehet\u0151s\u00e9g van id\u0151z\u00edt\u00e9si tesztek futtat\u00e1s\u00e1ra a gazdag\u00e9pen a \"batch mode\" feldolgoz\u00e1si mechanizmus haszn\u00e1lat\u00e1val (a c\u00edm\u0171 fejezetben le\u00edrtak szerint). Ez \u00e1ltal\u00e1ban \u00fagy t\u00f6rt\u00e9nik, hogy kiv\u00e1lasztunk egy nagy \u00e9s \u00f6sszetett G-k\u00f3d f\u00e1jlt, \u00e9s megm\u00e9rj\u00fck, hogy mennyi id\u0151 alatt dolgozza fel a gazdaszoftver. P\u00e9ld\u00e1ul: time ~/klippy-env/bin/python ./klippy/klippy.py config/example-cartesian.cfg -i something_complex.gcode -o /dev/null -d out/klipper.dict","title":"Referencia\u00e9rt\u00e9kek"},{"location":"Benchmarks.html#referenciaertekek","text":"Ez a dokumentum a Klipper referencia\u00e9rt\u00e9keit ismerteti.","title":"Referencia\u00e9rt\u00e9kek"},{"location":"Benchmarks.html#mikrokontroller-referenciaertekek","text":"Ez a szakasz ismerteti a Klipper mikrokontroller l\u00e9p\u00e9si sebess\u00e9greferencia l\u00e9trehoz\u00e1s\u00e1ra haszn\u00e1lt mechanizmust. A referenciamutat\u00f3k els\u0151dleges c\u00e9lja, hogy k\u00f6vetkezetes mechanizmust biztos\u00edtsanak a szoftveren bel\u00fcli k\u00f3dol\u00e1si v\u00e1ltoztat\u00e1sok hat\u00e1s\u00e1nak m\u00e9r\u00e9s\u00e9re. M\u00e1sodlagos c\u00e9l, hogy magas szint\u0171 m\u00e9r\u0151sz\u00e1mokat biztos\u00edtson a chipek \u00e9s a szoftverplatformok teljes\u00edtm\u00e9ny\u00e9nek \u00f6sszehasonl\u00edt\u00e1s\u00e1hoz. A l\u00e9p\u00e9ssz\u00e1m-\u00f6sszehasonl\u00edt\u00e1s c\u00e9lja a hardver \u00e9s a szoftver \u00e1ltal el\u00e9rhet\u0151 maxim\u00e1lis l\u00e9p\u00e9ssz\u00e1m meghat\u00e1roz\u00e1sa. Ez az \u00f6sszehasonl\u00edt\u00f3 l\u00e9p\u00e9si sebess\u00e9g a mindennapi haszn\u00e1lat sor\u00e1n nem \u00e9rhet\u0151 el, mivel a Klippernek m\u00e1s feladatokat is el kell l\u00e1tnia (pl. mcu/host kommunik\u00e1ci\u00f3, h\u0151m\u00e9rs\u00e9klet leolvas\u00e1s, v\u00e9g\u00e1ll\u00e1s ellen\u0151rz\u00e9s) minden val\u00f3s haszn\u00e1lat sor\u00e1n. \u00c1ltal\u00e1ban a referencia-tesztekhez haszn\u00e1lt t\u0171ket \u00fagy v\u00e1lasztj\u00e1k ki, hogy LED-eket vagy m\u00e1s \u00e1rtalmatlan eszk\u00f6z\u00f6ket m\u0171k\u00f6dtessen. A referencia futtat\u00e1sa el\u0151tt mindig ellen\u0151rizd, hogy a konfigur\u00e1lt t\u0171k meghajt\u00e1sa biztons\u00e1gos-e. Nem aj\u00e1nlott a t\u00e9nyleges l\u00e9ptet\u0151k haszn\u00e1lata a referencia sor\u00e1n.","title":"Mikrokontroller referencia\u00e9rt\u00e9kek"},{"location":"Benchmarks.html#leptetoaranyos-referenciaertek-teszt","text":"A teszt a console.py eszk\u00f6zzel t\u00f6rt\u00e9nik (a c\u00edm\u0171 fejezetben le\u00edrtak szerint). A mikrokontrollert az adott hardverplatformhoz konfigur\u00e1ljuk (l\u00e1sd al\u00e1bb), majd a k\u00f6vetkez\u0151ket v\u00e1gjuk ki \u00e9s illessz\u00fck be a console.py termin\u00e1lablakba: SET start_clock {clock+freq} SET ticks 1000 reset_step_clock oid=0 clock={start_clock} set_next_step_dir oid=0 dir=0 queue_step oid=0 interval={ticks} count=60000 add=0 set_next_step_dir oid=0 dir=1 queue_step oid=0 interval=3000 count=1 add=0 reset_step_clock oid=1 clock={start_clock} set_next_step_dir oid=1 dir=0 queue_step oid=1 interval={ticks} count=60000 add=0 set_next_step_dir oid=1 dir=1 queue_step oid=1 interval=3000 count=1 add=0 reset_step_clock oid=2 clock={start_clock} set_next_step_dir oid=2 dir=0 queue_step oid=2 interval={ticks} count=60000 add=0 set_next_step_dir oid=2 dir=1 queue_step oid=2 interval=3000 count=1 add=0 A fentiekben h\u00e1rom l\u00e9ptet\u0151 egyidej\u0171 l\u00e9ptet\u00e9s\u00e9t tesztelj\u00fck. Ha a fentiek futtat\u00e1sa egy \"Rescheduled timer in the past\" a \"Stepper too far in pas\" hib\u00e1t eredm\u00e9nyez, akkor ez azt jelzi, hogy a ticks param\u00e9ter t\u00fal alacsony (t\u00fal gyors l\u00e9ptet\u00e9si sebess\u00e9get eredm\u00e9nyez). A c\u00e9l az, hogy megtal\u00e1ljuk a ticks param\u00e9ter legalacsonyabb be\u00e1ll\u00edt\u00e1s\u00e1t, amely megb\u00edzhat\u00f3an eredm\u00e9nyezi a teszt sikeres befejez\u00e9s\u00e9t. A ticks param\u00e9tert addig kell felezni, am\u00edg stabil \u00e9rt\u00e9ket nem tal\u00e1lunk. Sikertelens\u00e9g eset\u00e9n az al\u00e1bbiakat m\u00e1solva \u00e9s beillesztve t\u00f6r\u00f6lheti a hib\u00e1t a k\u00f6vetkez\u0151 tesztre val\u00f3 felk\u00e9sz\u00fcl\u00e9shez: clear_shutdown Az egyl\u00e9pcs\u0151s referencia\u00e9rt\u00e9kek el\u00e9r\u00e9s\u00e9hez ugyanazt a konfigur\u00e1ci\u00f3s sorrendet kell haszn\u00e1lni, de a fenti tesztnek csak az els\u0151 blokkja a m\u00e1sol\u00e1s \u00e9s beilleszt\u00e9s a console.py ablakba. A Funkci\u00f3k dokumentumban tal\u00e1lhat\u00f3 referenciatesztek el\u0151\u00e1ll\u00edt\u00e1s\u00e1hoz a m\u00e1sodpercenk\u00e9nti l\u00e9p\u00e9sek teljes sz\u00e1m\u00e1t \u00fagy kell kisz\u00e1m\u00edtani, hogy az akt\u00edv l\u00e9ptet\u0151k sz\u00e1m\u00e1t megszorozzuk a n\u00e9vleges MCU frekvenci\u00e1val, \u00e9s elosztjuk a v\u00e9gs\u0151 \"ticks\" param\u00e9terrel. Az eredm\u00e9nyeket a legk\u00f6zelebbi K-ra kerek\u00edtj\u00fck. P\u00e9ld\u00e1ul h\u00e1rom akt\u00edv l\u00e9ptet\u0151vel: ECHO A teszt eredm\u00e9nye: {\"%.0fK\" % (3. * freq / ticks / 1000.)} A referencia\u00e9rt\u00e9keket a TMC vez\u00e9rl\u0151k sz\u00e1m\u00e1ra megfelel\u0151 param\u00e9terekkel futtatjuk. Az olyan mikrovez\u00e9rl\u0151k eset\u00e9ben, amelyek t\u00e1mogatj\u00e1k a STEPPER_BOTH_EDGE=1 (amint azt az MCU config sorban a konzoln\u00e1l console.py els\u0151 ind\u00edt\u00e1sakor) a step_pulse_duration=0 \u00e9s invert_step=-1 haszn\u00e1lat\u00e1val enged\u00e9lyezz\u00fck az optimaliz\u00e1lt l\u00e9p\u00e9st a l\u00e9p\u00e9simpulzus mindk\u00e9t \u00e9l\u00e9re. M\u00e1s mikrovez\u00e9rl\u0151k eset\u00e9ben haszn\u00e1ld a 100ns-nak megfelel\u0151 step_pulse_duration \u00e9rt\u00e9ket.","title":"L\u00e9ptet\u0151ar\u00e1nyos referencia\u00e9rt\u00e9k teszt"},{"location":"Benchmarks.html#avr-lepesi-sebesseg-referenciaertek","text":"Az AVR chipekn\u00e9l a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrend haszn\u00e1latos: allocate_oids count=3 config_stepper oid=0 step_pin=PA5 dir_pin=PA4 invert_step=0 step_pulse_ticks=32 config_stepper oid=1 step_pin=PA3 dir_pin=PA2 invert_step=0 step_pulse_ticks=32 config_stepper oid=2 step_pin=PC7 dir_pin=PC6 invert_step=0 step_pulse_ticks=32 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1son futtattuk, a gcc avr-gcc (GCC) 5.4.0 verzi\u00f3j\u00e1val. Mind a 16Mhz-es, mind a 20Mhz-es teszteket egy atmega644p-re konfigur\u00e1lt simulavr seg\u00edts\u00e9g\u00e9vel futtattuk (kor\u00e1bbi tesztek meger\u0151s\u00edtett\u00e9k, hogy a simulavr eredm\u00e9nyei egyeznek a 16Mhz-es at90usb \u00e9s a 16Mhz-es atmega2560-as tesztekkel). avr tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 102 3 l\u00e9ptet\u0151 486","title":"AVR l\u00e9p\u00e9si sebess\u00e9g referencia\u00e9rt\u00e9k"},{"location":"Benchmarks.html#arduino-due-lepesszam-referencia","text":"A k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk a Due-n: allocate_oids count=3 config_stepper oid=0 step_pin=PB27 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB26 dir_pin=PC30 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA21 dir_pin=PC30 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. sam3x8e tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 66 3 l\u00e9ptet\u0151 257","title":"Arduino Due l\u00e9p\u00e9ssz\u00e1m referencia"},{"location":"Benchmarks.html#duet-maestro-lepesszam-referencia","text":"A Duet Maestro a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1lja: allocate_oids count=3 config_stepper oid=0 step_pin=PC26 dir_pin=PC18 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PC26 dir_pin=PA8 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PC26 dir_pin=PB4 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. sam4s8c tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 71 3 l\u00e9ptet\u0151 260","title":"Duet Maestro l\u00e9p\u00e9ssz\u00e1m referencia"},{"location":"Benchmarks.html#duet-wifi-lepesszam-referencia","text":"A Duet WiFi eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=PD6 dir_pin=PD11 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PD7 dir_pin=PD12 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PD8 dir_pin=PD13 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val gcc 10.3.1 20210621 (release) (GNU Arm Embedded Toolchain 10.3-2021.07) futtatta. sam4e8e tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 48 3 l\u00e9ptet\u0151 215","title":"Duet WiFi l\u00e9p\u00e9ssz\u00e1m referencia"},{"location":"Benchmarks.html#beaglebone-pru-lepesszam-referencia","text":"A PRU-n a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet kell alkalmazni: allocate_oids count=3 config_stepper oid=0 step_pin=gpio0_23 dir_pin=gpio1_12 invert_step=0 step_pulse_ticks=20 config_stepper oid=1 step_pin=gpio1_15 dir_pin=gpio0_26 invert_step=0 step_pulse_ticks=20 config_stepper oid=2 step_pin=gpio0_22 dir_pin=gpio2_1 invert_step=0 step_pulse_ticks=20 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val pru-gcc (GCC) 8.0.0 20170530 (experimental) futtatta. pru tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 231 3 l\u00e9ptet\u0151 847","title":"Beaglebone PRU l\u00e9p\u00e9ssz\u00e1m referencia"},{"location":"Benchmarks.html#stm32f042-lepesszam-referencia","text":"Az STM32F042-n\u00e9l a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=PA1 dir_pin=PA2 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PA3 dir_pin=PA2 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PB8 dir_pin=PA2 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. stm32f042 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 59 3 l\u00e9ptet\u0151 249","title":"STM32F042 l\u00e9p\u00e9ssz\u00e1m referencia"},{"location":"Benchmarks.html#stm32f103-lepesszam-referencia","text":"Az STM32F103 eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=PC13 dir_pin=PB5 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB3 dir_pin=PB6 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA4 dir_pin=PB7 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. stm32f103 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 61 3 l\u00e9ptet\u0151 264","title":"STM32F103 l\u00e9p\u00e9ssz\u00e1m referencia"},{"location":"Benchmarks.html#stm32f4-lepesszam-referencia","text":"Az STM32F4 eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=PA5 dir_pin=PB5 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB2 dir_pin=PB6 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PB3 dir_pin=PB7 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. Az STM32F407-es eredm\u00e9nyeket \u00fagy kaptuk, hogy egy STM32F407-es bin\u00e1ris programot futtattunk egy STM32F446-oson (\u00e9s \u00edgy 168 MHz-es \u00f3rajelet haszn\u00e1ltunk). stm32f446 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 46 3 l\u00e9ptet\u0151 205 stm32f407 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 46 3 l\u00e9ptet\u0151 205","title":"STM32F4 l\u00e9p\u00e9ssz\u00e1m referencia"},{"location":"Benchmarks.html#stm32h7-lepesszam-referencia","text":"A k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet egy STM32H743VIT6 eset\u00e9ben haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=PD4 dir_pin=PD3 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PA15 dir_pin=PA8 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PE2 dir_pin=PE3 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A teszt utolj\u00e1ra 00191b5c v\u00e9gleges\u00edt\u00e9ssel futott a gcc arm-none-eabi-gcc (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] v\u00e9gleges\u00edt\u00e9ssel. stm32h7 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 44 3 l\u00e9ptet\u0151 198","title":"STM32H7 l\u00e9p\u00e9ssz\u00e1m referencia"},{"location":"Benchmarks.html#stm32g0b1-lepesszam-referencia","text":"Az STM32G0B1 eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=PB13 dir_pin=PB12 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB10 dir_pin=PB2 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PB0 dir_pin=PC5 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 247cd753 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. stm32g0b1 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 58 3 l\u00e9ptet\u0151 243","title":"STM32G0B1 l\u00e9p\u00e9ssz\u00e1m referencia"},{"location":"Benchmarks.html#lpc176x-lepesszam-referencia","text":"Az LPC176x eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=P1.20 dir_pin=P1.18 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=P1.21 dir_pin=P1.18 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=P1.23 dir_pin=P1.18 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. A 120Mhz-es LPC1769-es eredm\u00e9nyeket egy LPC1768-as 120Mhz-re val\u00f3 t\u00falhajt\u00e1s\u00e1val kaptuk. lpc1768 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 52 3 l\u00e9ptet\u0151 222 lpc1769 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 51 3 l\u00e9ptet\u0151 222","title":"LPC176x l\u00e9p\u00e9ssz\u00e1m referencia"},{"location":"Benchmarks.html#samd21-lepesi-sebesseg-referencia","text":"A SAMD21 eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet kell alkalmazni: allocate_oids count=3 config_stepper oid=0 step_pin=PA27 dir_pin=PA20 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB3 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA17 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet legut\u00f3bb a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta egy SAMD21G18 mikrokontrollerrel. samd21 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 70 3 l\u00e9ptet\u0151 306","title":"SAMD21 l\u00e9p\u00e9si sebess\u00e9g referencia"},{"location":"Benchmarks.html#samd51-lepesi-sebesseg-referencia","text":"A SAMD51 eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet kell alkalmazni: allocate_oids count=3 config_stepper oid=0 step_pin=PA22 dir_pin=PA20 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PA22 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA22 dir_pin=PA19 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet legut\u00f3bb a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta egy SAMD51J19A mikrokontrollerrel. samd51 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 39 3 l\u00e9ptet\u0151 191 1 l\u00e9p\u00e9s (200Mhz) 39 3 l\u00e9p\u00e9s (200Mhz) 181","title":"SAMD51 l\u00e9p\u00e9si sebess\u00e9g referencia"},{"location":"Benchmarks.html#rp2040-leptetesi-referencia","text":"Az RP2040 eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet kell alkalmazni: allocate_oids count=3 config_stepper oid=0 step_pin=gpio25 dir_pin=gpio3 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=gpio26 dir_pin=gpio4 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=gpio27 dir_pin=gpio5 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet legut\u00f3bb a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 Raspberry Pi Pico k\u00e1rty\u00e1n futtattuk. rp2040 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 5 3 l\u00e9ptet\u0151 22","title":"RP2040 l\u00e9ptet\u00e9si referencia"},{"location":"Benchmarks.html#linux-mcu-lepesszam-referencia","text":"A k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet egy Raspberry Pi eset\u00e9ben haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=gpio2 dir_pin=gpio3 invert_step=0 step_pulse_ticks=5 config_stepper oid=1 step_pin=gpio4 dir_pin=gpio5 invert_step=0 step_pulse_ticks=5 config_stepper oid=2 step_pin=gpio6 dir_pin=gpio17 invert_step=0 step_pulse_ticks=5 finalize_config crc=0 A tesztet legut\u00f3bb a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val gcc (Raspbian 8.3.0-6+rpi1) 8.3.0 Raspberry Pi 3-on (revision a02082) futtatt\u00e1k. Ebben a referenciatesztben neh\u00e9z volt stabil eredm\u00e9nyeket el\u00e9rni. Linux (RPi3) tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 160 3 l\u00e9ptet\u0151 380","title":"Linux MCU l\u00e9p\u00e9ssz\u00e1m referencia"},{"location":"Benchmarks.html#parancskuldesi-referencia","text":"A parancskiad\u00e1si referenciateszt azt teszteli, hogy a mikrokontroller h\u00e1ny \"dummy\" parancsot k\u00e9pes feldolgozni. Ez els\u0151sorban a hardveres kommunik\u00e1ci\u00f3s mechanizmus tesztje. A tesztet a console.py eszk\u00f6zzel futtatjuk (a c\u00edm\u0171 fejezetben le\u00edrtak szerint). Az al\u00e1bbiakat m\u00e1soljuk ki \u00e9s illessz\u00fck be a console.py termin\u00e1lablakba: DELAY {clock + 2*freq} get_uptime FLOOD 100000 0.0 debug_nop get_uptime A teszt befejez\u00e9sekor hat\u00e1rozza meg a k\u00e9t \"\u00fczemid\u0151\" v\u00e1lasz\u00fczenetben jelentett \u00f3r\u00e1k k\u00f6z\u00f6tti k\u00fcl\u00f6nbs\u00e9get. A m\u00e1sodpercenk\u00e9nti parancsok teljes sz\u00e1ma ekkor 100000 * mcu_frequency / clock_diff . Vedd figyelembe, hogy ez a teszt tel\u00edtheti a Raspberry Pi USB/CPU kapacit\u00e1s\u00e1t. Ha Raspberry Pi, Beaglebone vagy hasonl\u00f3 gazdag\u00e9pen fut, akkor n\u00f6velje a k\u00e9sleltet\u00e9st (pl. DELAY {clock + 20*freq} get_uptime ). Ahol alkalmazhat\u00f3, az al\u00e1bbi referenci\u00e1k a console.py futtat\u00e1s\u00e1val k\u00e9sz\u00fcltek egy asztali sz\u00e1m\u00edt\u00f3g\u00e9pen, ahol az eszk\u00f6z egy nagy sebess\u00e9g\u0171 HUB-on kereszt\u00fcl van csatlakoztatva. MCU Ar\u00e1ny Gy\u00e1ri sz\u00e1m Ford\u00edt\u00f3 program stm32f042 (CAN) 18K c105adc8 arm-none-eabi-gcc (GNU Tools 7-2018-q3-update) 7.3.1 atmega2560 (serial) 23K b161a69e avr-gcc (GCC) 4.8.1 sam3x8e (serial) 23K b161a69e arm-none-eabi-gcc (Fedora 7.1.0-5.fc27) 7.1.0 at90usb1286 (USB) 75K 01d2183f avr-gcc (GCC) 5.4.0 samd21 (USB) 223K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 pru (megosztott mem\u00f3ria) 260K c5968a08 pru-gcc (GCC) 8.0.0 20170530 (k\u00eds\u00e9rleti) stm32f103 (USB) 355K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 sam3x8e (USB) 418K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 lpc1768 (USB) 534K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 lpc1769 (USB) 628K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 sam4s8c (USB) 650K 8d4a5c16 arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 samd51 (USB) 864K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 stm32f446 (USB) 870K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 rp2040 (USB) 873K c5667193 arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0","title":"Parancsk\u00fcld\u00e9si referencia"},{"location":"Benchmarks.html#gazdagep-referenciaertekei","text":"Lehet\u0151s\u00e9g van id\u0151z\u00edt\u00e9si tesztek futtat\u00e1s\u00e1ra a gazdag\u00e9pen a \"batch mode\" feldolgoz\u00e1si mechanizmus haszn\u00e1lat\u00e1val (a c\u00edm\u0171 fejezetben le\u00edrtak szerint). Ez \u00e1ltal\u00e1ban \u00fagy t\u00f6rt\u00e9nik, hogy kiv\u00e1lasztunk egy nagy \u00e9s \u00f6sszetett G-k\u00f3d f\u00e1jlt, \u00e9s megm\u00e9rj\u00fck, hogy mennyi id\u0151 alatt dolgozza fel a gazdaszoftver. P\u00e9ld\u00e1ul: time ~/klippy-env/bin/python ./klippy/klippy.py config/example-cartesian.cfg -i something_complex.gcode -o /dev/null -d out/klipper.dict","title":"Gazdag\u00e9p referencia\u00e9rt\u00e9kei"},{"location":"Bootloaders.html","text":"Bootloaderek \u00b6 Ez a dokumentum a Klipper \u00e1ltal t\u00e1mogatott mikrovez\u00e9rl\u0151k\u00f6n tal\u00e1lhat\u00f3 gyakori bootloaderekkel kapcsolatos inform\u00e1ci\u00f3kat tartalmazza. A bootloader egy harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 szoftver, amely a mikrovez\u00e9rl\u0151n fut, amikor az el\u0151sz\u00f6r bekapcsol. \u00c1ltal\u00e1ban egy \u00faj alkalmaz\u00e1s (pl. Klipper) \u00e9get\u00e9s\u00e9re haszn\u00e1lj\u00e1k a mikrokontrollerre an\u00e9lk\u00fcl, hogy speci\u00e1lis hardverre lenne sz\u00fcks\u00e9g. Sajnos a mikrokontrollerek \u00e9get\u00e9s\u00e9re nincs ipar\u00e1gi szabv\u00e1ny, \u00e9s nincs olyan szabv\u00e1nyos bootloader sem, amely minden mikrokontrolleren m\u0171k\u00f6dik. Ami m\u00e9g rosszabb, hogy minden egyes bootloader m\u00e1s \u00e9s m\u00e1s l\u00e9p\u00e9seket ig\u00e9nyel az alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez. Ha egy mikrokontrollerre tudunk bootloadert \u00e9getni, akkor \u00e1ltal\u00e1ban ezt a mechanizmust haszn\u00e1lhatjuk egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9re is, de \u00f3vatosan kell elj\u00e1rni, mert v\u00e9letlen\u00fcl elt\u00e1vol\u00edthatjuk a bootloadert. Ezzel szemben a bootloader \u00e1ltal\u00e1ban csak egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9t teszi lehet\u0151v\u00e9. Ez\u00e9rt aj\u00e1nlott, ha lehets\u00e9ges, bootloadert haszn\u00e1lni egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9re. Ez a dokumentum megpr\u00f3b\u00e1lja le\u00edrni a gyakori bootloadereket, a bootloader \u00e9get\u00e9s\u00e9hez sz\u00fcks\u00e9ges l\u00e9p\u00e9seket \u00e9s az alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez sz\u00fcks\u00e9ges l\u00e9p\u00e9seket. Ez a dokumentum nem tekint\u00e9lyes hivatkoz\u00e1s. A Klipper fejleszt\u0151i \u00e1ltal \u00f6sszegy\u0171jt\u00f6tt hasznos inform\u00e1ci\u00f3k gy\u0171jtem\u00e9ny\u00e9nek sz\u00e1njuk. AVR mikrovez\u00e9rl\u0151k \u00b6 \u00c1ltal\u00e1noss\u00e1gban az Arduino projekt j\u00f3 referencia a 8 bites Atmel Atmega mikrovez\u00e9rl\u0151k bootloadereir\u0151l \u00e9s a \u00e9get\u00e9si elj\u00e1r\u00e1sokr\u00f3l. K\u00fcl\u00f6n\u00f6sen a \"boards.txt\" f\u00e1jl: https://github.com/arduino/Arduino/blob/1.8.5/hardware/arduino/avr/boards.txt hasznos referencia. A bootloader \u00e9get\u00e9s\u00e9hez az AVR chipekhez k\u00fcls\u0151 hardveres \u00e9get\u0151 eszk\u00f6zre van sz\u00fcks\u00e9g (amely SPI seg\u00edts\u00e9g\u00e9vel kommunik\u00e1l a chippel). Ez az eszk\u00f6z megv\u00e1s\u00e1rolhat\u00f3 (p\u00e9ld\u00e1ul keressen r\u00e1 az interneten az \"avr isp\", \"arduino isp\" vagy \"usb tiny isp\" szavakra). Az is lehets\u00e9ges, hogy egy m\u00e1sik Arduino vagy Raspberry Pi seg\u00edts\u00e9g\u00e9vel \u00e9gess egy AVR bootloadert (p\u00e9ld\u00e1ul keressen r\u00e1 az interneten a \"program an avr using raspberry pi\" kifejez\u00e9sre). Az al\u00e1bbi p\u00e9ld\u00e1kat egy \"AVR ISP Mk2\" t\u00edpus\u00fa eszk\u00f6z haszn\u00e1lat\u00e1t felt\u00e9telezve \u00edrtuk. Az \"avrdude\" program a leggyakrabban haszn\u00e1lt eszk\u00f6z az atmega chipek \u00e9get\u00e9s\u00e9re (mind a bootloader, mind az alkalmaz\u00e1sok \u00e9get\u00e9s\u00e9re). Atmega2560 \u00b6 Ez a chip jellemz\u0151en az \"Arduino Mega\" chipben tal\u00e1lhat\u00f3, \u00e9s nagyon gyakori a 3D nyomtat\u00f3 lapokban. Mag\u00e1nak a bootloadernek az \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: wget 'https://github.com/arduino/Arduino/raw/1.8.5/hardware/arduino/avr/bootloaders/stk500v2/stk500boot_v2_mega2560.hex' avrdude -cavrispv2 -patmega2560 -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0xFD:m -U hfuse:w:0xD8:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega2560 -P/dev/ttyACM0 -b115200 -U flash:w:stk500boot_v2_mega2560.hex avrdude -cavrispv2 -patmega2560 -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: avrdude -cwiring -patmega2560 -P/dev/ttyACM0 -b115200 -D -Uflash:w:out/klipper.elf.hex:i Atmega1280 \u00b6 Ez a chip jellemz\u0151en az \"Arduino Mega\" kor\u00e1bbi verzi\u00f3iban tal\u00e1lhat\u00f3. Mag\u00e1nak a bootloadernek az \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: wget 'https://github.com/arduino/Arduino/raw/1.8.5/hardware/arduino/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1280.hex' avrdude -cavrispv2 -patmega1280 -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0xF5:m -U hfuse:w:0xDA:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega1280 -P/dev/ttyACM0 -b115200 -U flash:w:ATmegaBOOT_168_atmega1280.hex avrdude -cavrispv2 -patmega1280 -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: avrdude -carduino -patmega1280 -P/dev/ttyACM0 -b57600 -D -Uflash:w:out/klipper.elf.hex:i Atmega1284p \u00b6 Ez a chip gyakran megtal\u00e1lhat\u00f3 a \"Melzi\" st\u00edlus\u00fa 3D nyomtat\u00f3 alaplapokban. Mag\u00e1nak a bootloadernek az \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: wget 'https://github.com/Lauszus/Sanguino/raw/1.0.2/bootloaders/optiboot/optiboot_atmega1284p.hex' avrdude -cavrispv2 -patmega1284p -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0xFD:m -U hfuse:w:0xDE:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega1284p -P/dev/ttyACM0 -b115200 -U flash:w:optiboot_atmega1284p.hex avrdude -cavrispv2 -patmega1284p -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: avrdude -carduino -patmega1284p -P/dev/ttyACM0 -b115200 -D -Uflash:w:out/klipper.elf.hex:i Megjegyzend\u0151, hogy sz\u00e1mos \"Melzi\" st\u00edlus\u00fa alaplap el\u0151re bet\u00f6lt\u00f6tt bootloaderrel \u00e9rkezik, amely 57600-as \u00e1tviteli sebess\u00e9g haszn\u00e1lat\u00e1val m\u0171k\u00f6dik. Ebben az esetben egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj helyette valami ilyesmit: avrdude -carduino -patmega1284p -P/dev/ttyACM0 -b57600 -D -Uflash:w:out/klipper.elf.hex:i At90usb1286 \u00b6 Ez a dokumentum nem foglalkozik az At90usb1286 bootloader \u00e9get\u00e9si m\u00f3dszer\u00e9vel, \u00e9s nem foglalkozik az \u00e1ltal\u00e1nos alkalmaz\u00e1s \u00e9get\u00e9s\u00e9vel sem. A pjrc.com Teensy++ eszk\u00f6ze saj\u00e1t bootloaderrel rendelkezik. Ehhez egy egyedi \u00e9get\u0151 eszk\u00f6zre van sz\u00fcks\u00e9g a https://github.com/PaulStoffregen/teensy_loader_cli oldalr\u00f3l. Egy alkalmaz\u00e1st lehet vele \u00e9getni valami ilyesmivel: teensy_loader_cli --mcu=at90usb1286 out/klipper.elf.hex -v Atmega168 \u00b6 Az atmega168 korl\u00e1tozott flash-t\u00e1rhellyel rendelkezik. Ha bootloadert haszn\u00e1l, aj\u00e1nlott az Optiboot bootloadert haszn\u00e1lni. A bootloader \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami hasonl\u00f3t: wget 'https://github.com/arduino/Arduino/raw/1.8.5/hardware/arduino/avr/bootloaders/optiboot/optiboot_atmega168.hex' avrdude -cavrispv2 -patmega168 -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0x04:m -U hfuse:w:0xDD:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega168 -P/dev/ttyACM0 -b115200 -U flash:w:optiboot_atmega168.hex avrdude -cavrispv2 -patmega168 -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Az Optiboot bootloaderrel t\u00f6rt\u00e9n\u0151 alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami hasonl\u00f3t: avrdude -carduino -patmega168 -P/dev/ttyACM0 -b115200 -D -Uflash:w:out/klipper.elf.hex:i SAM3 mikrovez\u00e9rl\u0151k (Arduino Due) \u00b6 A SAM3 MCU-val nem szok\u00e1s bootloadert haszn\u00e1lni. Maga a chip rendelkezik egy ROM-mal, amely lehet\u0151v\u00e9 teszi a flash programoz\u00e1s\u00e1t 3,3V-os soros portr\u00f3l vagy USB-r\u0151l. A ROM enged\u00e9lyez\u00e9s\u00e9hez az \"erase\" csapot magasan kell tartani a vissza\u00e1ll\u00edt\u00e1s sor\u00e1n, ami t\u00f6rli a flash tartalm\u00e1t, \u00e9s a ROM-ot elind\u00edtja. Egy Arduino Due-n ez a szekvencia \u00fagy val\u00f3s\u00edthat\u00f3 meg, hogy a \"programoz\u00f3 usb port\" (a t\u00e1pegys\u00e9ghez legk\u00f6zelebbi USB port) 1200-as baud sebess\u00e9get \u00e1ll\u00edt be. A https://github.com/shumatech/BOSSA alatti k\u00f3d haszn\u00e1lhat\u00f3 a SAM3 programoz\u00e1s\u00e1hoz. Az 1.9-es vagy \u00fajabb verzi\u00f3 haszn\u00e1lata aj\u00e1nlott. Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: bossac -U -p /dev/ttyACM0 -a -e -w out/klipper.bin -v -b bossac -U -p /dev/ttyACM0 -R SAM4 mikrovez\u00e9rl\u0151k (Duet Wifi) \u00b6 A SAM4 MCU-val nem szok\u00e1s bootloadert haszn\u00e1lni. Maga a chip rendelkezik egy ROM-mal, amely lehet\u0151v\u00e9 teszi a flash programoz\u00e1s\u00e1t 3,3V-os soros portr\u00f3l vagy USB-r\u0151l. A ROM enged\u00e9lyez\u00e9s\u00e9hez az \"erase\" csapot magasan kell tartani a vissza\u00e1ll\u00edt\u00e1s sor\u00e1n, ami t\u00f6rli a flash tartalm\u00e1t, \u00e9s a ROM-ot elind\u00edtja. A https://github.com/shumatech/BOSSA k\u00f3d haszn\u00e1lhat\u00f3 a SAM4 programoz\u00e1s\u00e1hoz. Sz\u00fcks\u00e9ges az 1.8.0 vagy magasabb verzi\u00f3 haszn\u00e1lata. Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: bossac --port=/dev/ttyACM0 -b -U -e -w -v -R out/klipper.bin SAMD21 mikrovez\u00e9rl\u0151k (Arduino Zero) \u00b6 A SAMD21 bootloader az ARM Serial Wire Debug (SWD) interf\u00e9szen kereszt\u00fcl t\u00f6lt\u0151dik fel. Ez \u00e1ltal\u00e1ban egy dedik\u00e1lt SWD hardver dongle seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nik. Alternat\u00edvak\u00e9nt haszn\u00e1lhatunk egy OpenOCD futtat\u00e1st a Raspberry PI-n . A bootloader OpenOCD-vel t\u00f6rt\u00e9n\u0151 \u00e9get\u00e9s\u00e9hez haszn\u00e1ld a k\u00f6vetkez\u0151 chipkonfigur\u00e1ci\u00f3t: forr\u00e1s [find target/at91samdXX.cfg] Szerezz be egy bootloadert - p\u00e9ld\u00e1ul: wget 'https://github.com/arduino/ArduinoCore-samd/raw/1.8.3/bootloaders/zero/samd21_sam_ba.bin' \u00c9get\u00e9s az OpenOCD parancsokhoz hasonl\u00f3 parancsokkal: at91samd bootloader 0 program samd21_sam_ba.bin verify A SAMD21 leggyakoribb bootloadere az \"Arduino Zero\" -ban tal\u00e1lhat\u00f3. Ez egy 8KiB-es bootloadert haszn\u00e1l (az alkalmaz\u00e1st 8KiB kezd\u0151c\u00edmmel kell leford\u00edtani). Ebbe a bootloaderbe a reset gombra val\u00f3 dupla kattint\u00e1ssal lehet bel\u00e9pni. Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami hasonl\u00f3t: bossac -U -p /dev/ttyACM0 --offset=0x2000 -w out/klipper.bin -v -b -R Ezzel szemben az \"Arduino M0\" 16KiB bootloadert haszn\u00e1l (az alkalmaz\u00e1st 16KiB kezd\u0151c\u00edmmel kell leford\u00edtani). Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez ezen a bootloaderen, \u00e1ll\u00edtsd vissza a mikrokontrollert, \u00e9s futtassa a flash parancsot a bootol\u00e1s els\u0151 n\u00e9h\u00e1ny m\u00e1sodperc\u00e9ben. Valami ilyesmi: avrdude -c stk500v2 -p atmega2560 -P /dev/ttyACM0 -u -Uflash:w:out/klipper.elf.hex:i SAMD51 mikrovez\u00e9rl\u0151k (Adafruit Metro-M4 \u00e9s hasonl\u00f3) \u00b6 A SAMD21-hez hasonl\u00f3an a SAMD51 bootloader is az ARM Serial Wire Debug (SWD) interf\u00e9szen kereszt\u00fcl t\u00f6lt\u0151dik fel. Az OpenOCD futtat\u00e1sa a Raspberry PI-n bootloader \u00e9get\u00e9s\u00e9hez haszn\u00e1ld a k\u00f6vetkez\u0151 chipkonfigur\u00e1ci\u00f3t: forr\u00e1s [find target/atsame5x.cfg] Szerezz be egy bootloadert. Sz\u00e1mos bootloader el\u00e9rhet\u0151 a https://github.com/adafruit/uf2-samdx1/releases/latest oldalon. P\u00e9ld\u00e1ul: wget 'https://github.com/adafruit/uf2-samdx1/releases/download/v3.7.0/bootloader-itsybitsy_m4-v3.7.0.bin' \u00c9get\u00e9s az OpenOCD parancsokhoz hasonl\u00f3 parancsokkal: at91samd bootloader 0 program bootloader-itsybitsy_m4-v3.7.0.bin verify at91samd bootloader 16384 A SAMD51 16KiB-es bootloadert haszn\u00e1l (az alkalmaz\u00e1st 16KiB kezd\u0151c\u00edmmel kell leford\u00edtani). Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami hasonl\u00f3t: bossac -U -p /dev/ttyACM0 --offset=0x4000 -w out/klipper.bin -v -b -R STM32F103 mikrovez\u00e9rl\u0151k (Blue Pill eszk\u00f6z\u00f6k) \u00b6 Az STM32F103 eszk\u00f6z\u00f6k rendelkeznek egy ROM-mal, amely 3,3 V-os soros kapcsolaton kereszt\u00fcl k\u00e9pes bootloadert vagy alkalmaz\u00e1st \u00e9getni. \u00c1ltal\u00e1ban a PA10 (MCU Rx) \u00e9s PA9 (MCU Tx) t\u0171ket egy 3,3V-os UART adapterhez kell csatlakoztatni. A ROM el\u00e9r\u00e9s\u00e9hez a \"boot 0\" t\u0171t magasra, a \"boot 1\" t\u0171t pedig alacsonyra kell kapcsolni, majd vissza kell \u00e1ll\u00edtani az eszk\u00f6zt. Az \"stm32flash\" csomagot ezut\u00e1n haszn\u00e1lhatjuk az eszk\u00f6z \u00e9get\u00e9s\u00e9re, p\u00e9ld\u00e1ul a k\u00f6vetkez\u0151kkel: stm32flash -w out/klipper.bin -v -g 0 /dev/ttyAMA0 Vedd figyelembe, hogy ha Raspberry Pi-t haszn\u00e1l a 3,3V-os soros kapcsolathoz, az stm32flash protokoll olyan soros parit\u00e1sm\u00f3dot haszn\u00e1l, amelyet a Raspberry Pi \"mini UART\" nem t\u00e1mogat. L\u00e1sd https://www.raspberrypi.com/documentation/computers/configuration.html#configuring-uarts a teljes uart enged\u00e9lyez\u00e9s\u00e9r\u0151l a Raspberry Pi GPIO t\u0171in. Az \u00e9get\u00e9s ut\u00e1n \u00e1ll\u00edtsd vissza a \"boot 0\" \u00e9s a \"boot 1\" \u00e9rt\u00e9ket alacsonyra, hogy a j\u00f6v\u0151ben az \u00e9get\u00e9sr\u0151l indul\u00f3 rendszer \u00fajrainduljon. STM32F103 stm32duino bootloaderrel \u00b6 Az \"stm32duino\" projekt rendelkezik USB-k\u00e9pes bootloaderrel. L\u00e1sd: https://github.com/rogerclarkmelbourne/STM32duino-bootloader Ez a bootloader 3,3V-os soros kapcsolaton kereszt\u00fcl \u00e9gethet\u0151 valami hasonl\u00f3val: wget 'https://github.com/rogerclarkmelbourne/STM32duino-bootloader/raw/master/binaries/generic_boot20_pc13.bin' stm32flash -w generic_boot20_pc13.bin -v -g 0 /dev/ttyAMA0 Ez a bootloader 8KiB-es flash mem\u00f3ri\u00e1t haszn\u00e1l (az alkalmaz\u00e1st 8KiB kezd\u0151c\u00edmmel kell leford\u00edtani). \u00c9gess egy alkalmaz\u00e1st valami ilyesmivel: dfu-util -d 1eaf:0003 -a 2 -R -D out/klipper.bin A bootloader \u00e1ltal\u00e1ban csak r\u00f6vid ideig fut a rendszerind\u00edt\u00e1s ut\u00e1n. Sz\u00fcks\u00e9g lehet arra, hogy a fenti parancsot \u00fagy id\u0151z\u00edts\u00fck, hogy az akkor fusson le, amikor a bootloader m\u00e9g akt\u00edv (a bootloader \u00fczem k\u00f6zben villogtat egy a lapon l\u00e9v\u0151 ledet). Alternat\u00edv megold\u00e1sk\u00e9nt a \"boot 0\" csapot \u00e1ll\u00edtsd alacsonyra, a \"boot 1\" csapot pedig magasra, hogy a bootloaderben maradj a reset ut\u00e1n. STM32F103 HID bootloaderrel \u00b6 A HID bootloader egy kompakt, driver n\u00e9lk\u00fcli bootloader, amely k\u00e9pes USB-n kereszt\u00fcl \u00e9getni. Szint\u00e9n el\u00e9rhet\u0151 egy fork az SKR Mini E3 1.2 specifikus buildekkel . Az \u00e1ltal\u00e1nos STM32F103 alaplapok, mint p\u00e9ld\u00e1ul a blue pill eset\u00e9ben a bootloader 3,3V-os soros \u00e9get\u00e9se lehets\u00e9ges az stm32flash haszn\u00e1lat\u00e1val, amint azt a fenti stm32duino szakaszban eml\u00edtett\u00fck, a k\u00edv\u00e1nt hid bootloader bin\u00e1ris f\u00e1jlnev\u00e9nek behelyettes\u00edt\u00e9s\u00e9vel (azaz: hid_generic_pc13.bin a blue pillhez). Az SKR Mini E3 eset\u00e9ben nem lehet stm32flash-t haszn\u00e1lni, mivel a boot0 l\u00e1b k\u00f6zvetlen\u00fcl a f\u00f6ldre van k\u00f6tve, \u00e9s nincs alaplapi t\u0171ki\u00e1ll\u00e1sa. A bootloader \u00e9get\u00e9s\u00e9hez aj\u00e1nlott STLink V2-t haszn\u00e1lni STM32Cube programoz\u00f3val. Ha nincs vagy nem f\u00e9r hozz\u00e1 egy STLinkhez, akkor lehets\u00e9ges egy OpenOCD futtat\u00e1sa a Raspberry PI-n haszn\u00e1lata is a k\u00f6vetkez\u0151 chipkonfigur\u00e1ci\u00f3val: forr\u00e1s [find target/stm32f1x.cfg] Ha szeretn\u00e9, a k\u00f6vetkez\u0151 paranccsal k\u00e9sz\u00edthet biztons\u00e1gi m\u00e1solatot az aktu\u00e1lis flash mem\u00f3ri\u00e1r\u00f3l. Vedd figyelembe, hogy ez n\u00e9mi id\u0151t vehet ig\u00e9nybe: flash read_bank 0 btt_skr_mini_e3_backup.bin v\u00e9g\u00fcl, a k\u00f6vetkez\u0151 parancsokhoz hasonl\u00f3 parancsokkal \u00e9gethet: stm32f1x mass_erase 0 program hid_btt_skr_mini_e3.bin verify 0x08000000 MEGJEGYZ\u00c9SEK: A fenti p\u00e9lda t\u00f6rli a chipet, majd beprogramozza a bootloadert. Az \u00e9get\u00e9shez v\u00e1lasztott m\u00f3dszert\u0151l f\u00fcggetlen\u00fcl aj\u00e1nlott a chipet az \u00e9get\u00e9s el\u0151tt t\u00f6r\u00f6lni. Miel\u0151tt az SKR Mini E3-at ezzel a bootloaderrel \u00e9getn\u00e9d, tudnod kell, hogy a firmware friss\u00edt\u00e9se m\u00e1r nem lesz lehets\u00e9ges az SD-k\u00e1rty\u00e1n kereszt\u00fcl. You may need to hold down the reset button on the board while launching OpenOCD. It should display something like: Open On-Chip Debugger 0.10.0+dev-01204-gc60252ac-dirty (2020-04-27-16:00) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html DEPRECATED! use 'adapter speed' not 'adapter_khz' Info : BCM2835 GPIO JTAG/SWD bitbang driver Info : JTAG and SWD modes enabled Info : clock speed 40 kHz Info : SWD DPIDR 0x1ba01477 Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints Info : stm32f1x.cpu: external reset detected Info : starting gdb server for stm32f1x.cpu on 3333 Info : Listening on port 3333 for gdb connections Ezt k\u00f6vet\u0151en elengedheti a reset gombot. Ez a bootloader 2KiB-os flash mem\u00f3ri\u00e1t ig\u00e9nyel (az alkalmaz\u00e1st 2KiB kezd\u0151c\u00edmmel kell leford\u00edtani). A hid-flash program egy bin\u00e1ris f\u00e1jl felt\u00f6lt\u00e9s\u00e9re szolg\u00e1l a bootloaderre. Ezt a szoftvert a k\u00f6vetkez\u0151 parancsokkal telep\u00edtheti: sudo apt install libusb-1.0 cd ~/klipper/lib/hidflash make Ha a bootloader fut, akkor \u00e9gethetsz valami olyasmivel, mint: ~/klipper/lib/hidflash/hid-flash ~/klipper/out/klipper.bin alternat\u00edvak\u00e9nt haszn\u00e1lhatod a make flash parancsot a klipper k\u00f6zvetlen \u00e9get\u00e9s\u00e9hez: make flash FLASH_DEVICE=1209:BEBA VAGY ha a klippert kor\u00e1bban m\u00e1r \u00e9gett\u00e9k: make flash FLASH_DEVICE=/dev/ttyACM0 Sz\u00fcks\u00e9g lehet a bootloader manu\u00e1lis bel\u00e9p\u00e9s\u00e9re, ezt a \"boot 0\" alacsony \u00e9s \"boot 1\" magas \u00e9rt\u00e9kek be\u00e1ll\u00edt\u00e1s\u00e1val lehet megtenni. Az SKR Mini E3 eset\u00e9ben a \"Boot 1\" nem \u00e1ll rendelkez\u00e9sre, ez\u00e9rt a PA2 t\u0171 alacsonyra \u00e1ll\u00edt\u00e1s\u00e1val lehet elv\u00e9gezni, ha a \"hid_btt_skr_mini_e3.bin\" f\u00e1jlt \u00e9getj\u00fck. Ez a t\u0171 az SKR Mini E3 \"PIN\" dokumentumban \"TX0\"-k\u00e9nt van jel\u00f6lve a TFT fejl\u00e9cen. A PA2 mellett van egy f\u00f6ldelt t\u0171, amellyel a PA2-t alacsonyra h\u00fazhatja. STM32F103/STM32F072 MSC bootloaderrel \u00b6 Az MSC bootloader egy USB-n kereszt\u00fcl \u00e9gethet\u0151, driver n\u00e9lk\u00fcli bootloader. Lehet\u0151s\u00e9g van a bootloader 3,3V-os soros \u00e9get\u00e9s\u00e9re az stm32flash haszn\u00e1lat\u00e1val, ahogyan azt a fenti stm32duino szakaszban eml\u00edtett\u00fck, a k\u00edv\u00e1nt MSC bootloader bin\u00e1ris f\u00e1jlnev\u00e9nek behelyettes\u00edt\u00e9s\u00e9vel (azaz: MSCboot-Bluepill.bin a Bluepill-hez). Az STM32F072 lapok eset\u00e9ben a bootloader USB-n kereszt\u00fcl (DFU-n kereszt\u00fcl) is \u00e9gethet\u0151, p\u00e9ld\u00e1ul a k\u00f6vetkez\u0151kkel: dfu-util -d 0483:df11 -a 0 -R -D MSCboot-STM32F072.bin -s0x08000000:leave Ez a bootloader 8KiB vagy 16KiB flash helyet haszn\u00e1l, l\u00e1sd a bootloader le\u00edr\u00e1s\u00e1t (az alkalmaz\u00e1st a megfelel\u0151 kezd\u0151c\u00edmmel kell leford\u00edtani). A bootloader a k\u00e1rtya reset gombj\u00e1nak k\u00e9tszeri megnyom\u00e1s\u00e1val aktiv\u00e1lhat\u00f3. Amint a bootloader aktiv\u00e1l\u00f3dik, a k\u00e1rtya USB flash meghajt\u00f3k\u00e9nt jelenik meg, amelyre a klipper.bin f\u00e1jl m\u00e1solhat\u00f3. STM32F103/STM32F0x2 CanBoot bootloaderrel \u00b6 A CanBoot bootloader lehet\u0151s\u00e9get biztos\u00edt a Klipper firmware felt\u00f6lt\u00e9s\u00e9re CANBUS-on kereszt\u00fcl. Maga a bootloader a Klipper forr\u00e1sk\u00f3dj\u00e1b\u00f3l sz\u00e1rmazik. A CanBoot jelenleg az STM32F103, STM32F042 \u00e9s STM32F072 modelleket t\u00e1mogatja. A CanBoot \u00e9get\u00e9s\u00e9hez aj\u00e1nlott ST-Link programoz\u00f3t haszn\u00e1lni, azonban STM32F103 eszk\u00f6z\u00f6k\u00f6n az stm32flash , STM32F103 eszk\u00f6z\u00f6k\u00f6n pedig a dfu-util haszn\u00e1lat\u00e1val is lehet \u00e9getni. A dokumentum kor\u00e1bbi szakaszaiban tal\u00e1lhat\u00f3k az utas\u00edt\u00e1sok ezekre az \u00e9get\u00e9si m\u00f3dszerekre vonatkoz\u00f3an, adott esetben a f\u00e1jlnevet canboot.bin -el helyettes\u00edtve. A fentebb linkelt CanBoot repo tartalmaz utas\u00edt\u00e1sokat a bootloader elk\u00e9sz\u00edt\u00e9s\u00e9hez. A CanBoot els\u0151 \u00e9get\u00e9s\u00e9n\u00e9l \u00e9szlelned kell, hogy nincs jelen alkalmaz\u00e1s, \u00e9s be kell l\u00e9pned a bootloaderbe. Ha ez nem t\u00f6rt\u00e9nik meg, akkor a reset gomb k\u00e9tszer egym\u00e1s ut\u00e1ni megnyom\u00e1s\u00e1val lehet bel\u00e9pni a bootloaderbe. A Klipper firmware felt\u00f6lt\u00e9s\u00e9hez a flash_can.py seg\u00e9dprogram haszn\u00e1lhat\u00f3, amely a lib/canboot mapp\u00e1ban tal\u00e1lhat\u00f3. Az \u00e9get\u00e9shez sz\u00fcks\u00e9ges az eszk\u00f6z UUID azonos\u00edt\u00f3ja. Ha nincs meg az UUID, akkor a bootloadert jelenleg futtat\u00f3 csom\u00f3pontok lek\u00e9rdez\u00e9se lehets\u00e9ges: python3 flash_can.py -q Ez visszaadja az \u00f6sszes olyan csatlakoztatott csom\u00f3pont UUID-j\u00e9t, amelyhez jelenleg nem tartozik UUID. Ennek tartalmaznia kell a jelenlegi bootloaderben l\u00e9v\u0151 \u00f6sszes csom\u00f3pontot. Ha megvan az UUID, a k\u00f6vetkez\u0151 paranccsal t\u00f6lthet fel firmware-t: python3 flash_can.py -i can0 -f ~/klipper/out/klipper.bin -u aabbccddeeff Ahol aabbccddeeff hely\u00e9be az \u00d6n UUID-je l\u00e9p. Vedd figyelembe, hogy a -i \u00e9s -f opci\u00f3k elhagyhat\u00f3k, ezek alap\u00e9rtelmezett \u00e9rt\u00e9ke can0 \u00e9s ~/klipper/out/klipper.bin . Amikor a Klippert a CanBoot-al val\u00f3 haszn\u00e1latra k\u00e9sz\u00edted, v\u00e1laszd a 8 KiB-os bootloader opci\u00f3t. STM32F4 mikrovez\u00e9rl\u0151k (SKR Pro 1.1) \u00b6 Az STM32F4 mikrokontrollerek be\u00e9p\u00edtett rendszerbet\u00f6lt\u0151vel rendelkeznek, amely k\u00e9pes USB-n kereszt\u00fcl (DFU-n kereszt\u00fcl), 3,3V-os soros \u00e9s k\u00fcl\u00f6nb\u00f6z\u0151 m\u00e1s m\u00f3dszerekkel is \u00e9getni (tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd az STM AN2606 dokumentum\u00e1t). Egyes STM32F4 lapok, mint p\u00e9ld\u00e1ul az SKR Pro 1.1, nem k\u00e9pesek bel\u00e9pni a DFU bootloaderbe. A HID bootloader el\u00e9rhet\u0151 az STM32F405/407 alap\u00fa lapokhoz, amennyiben a felhaszn\u00e1l\u00f3 az USB-n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 \u00e9get\u00e9st r\u00e9szes\u00edti el\u0151nyben az SD-k\u00e1rtya haszn\u00e1lat\u00e1val szemben. Ne feledd, hogy sz\u00fcks\u00e9g lehet egy, az alaplapodnak specifikus verzi\u00f3 konfigur\u00e1l\u00e1s\u00e1ra \u00e9s szerkeszt\u00e9s\u00e9re, egy az SKR Pro 1.1-es lapra vonatkoz\u00f3 verzi\u00f3 el\u00e9rhet\u0151 itt . Hacsak a lapod nem DFU-k\u00e9pes, a legk\u00f6nnyebben el\u00e9rhet\u0151 \u00e9get\u00e9si m\u00f3dszer val\u00f3sz\u00edn\u0171leg a 3,3V-os soros, amely ugyanazt az elj\u00e1r\u00e1st k\u00f6veti, mint [az STM32F103 \u00e9get\u00e9se az stm32flash seg\u00edts\u00e9g\u00e9vel](#stm32f103-mikrovezerlok-(blue-pill-eszkozok). P\u00e9ld\u00e1ul: wget https://github.com/Arksine/STM32_HID_Bootloader/releases/download/v0.5-beta/hid_bootloader_SKR_PRO.bin stm32flash -w hid_bootloader_SKR_PRO.bin -v -g 0 /dev/ttyAMA0 Ez a bootloader 16Kib-es flash mem\u00f3ri\u00e1t ig\u00e9nyel az STM32F4-en (az alkalmaz\u00e1st 16KiB kezd\u0151c\u00edmmel kell leford\u00edtani). Az STM32F1-hez hasonl\u00f3an az STM32F4 is a hid-flash eszk\u00f6zt haszn\u00e1lja a bin\u00e1risok MCU-ra t\u00f6rt\u00e9n\u0151 felt\u00f6lt\u00e9s\u00e9hez. A hid-flash elk\u00e9sz\u00edt\u00e9s\u00e9nek \u00e9s haszn\u00e1lat\u00e1nak r\u00e9szletei a fenti utas\u00edt\u00e1sokban tal\u00e1lhat\u00f3k. Sz\u00fcks\u00e9g lehet a bootloader manu\u00e1lis bel\u00e9p\u00e9s\u00e9re, ez a \"boot 0\" alacsony, \"boot 1\" magas \u00e9rt\u00e9k be\u00e1ll\u00edt\u00e1s\u00e1val \u00e9s az eszk\u00f6z csatlakoztat\u00e1s\u00e1val t\u00f6rt\u00e9nhet. A programoz\u00e1s befejez\u00e9se ut\u00e1n h\u00fazza ki az eszk\u00f6zt, \u00e9s \u00e1ll\u00edtsd vissza a \"boot 1\" \u00e9rt\u00e9ket alacsonyra, hogy az alkalmaz\u00e1s bet\u00f6lt\u0151dj\u00f6n. LPC176x mikrovez\u00e9rl\u0151k (Smoothieboards) \u00b6 Ez a dokumentum nem \u00edrja le a bootloader \u00e9get\u00e9s\u00e9nek m\u00f3dszer\u00e9t. L\u00e1sd: http://smoothieware.org/flashing-the-bootloader a t\u00e9m\u00e1val kapcsolatos tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt. A Smoothieboardok \u00e1ltal\u00e1ban a k\u00f6vetkez\u0151 bootloaderrel \u00e9rkeznek: https://github.com/triffid/LPC17xx-DFU-Bootloader . Ha ezt a bootloadert haszn\u00e1ljuk, az alkalmaz\u00e1st 16KiB kezd\u0151c\u00edmmel kell leford\u00edtani. Az alkalmaz\u00e1s \u00e9get\u00e9s\u00e9nek legegyszer\u0171bb m\u00f3dja ezzel a bootloaderrel az alkalmaz\u00e1sf\u00e1jl (pl. out/klipper.bin ) m\u00e1sol\u00e1sa egy SD-k\u00e1rty\u00e1n l\u00e9v\u0151 firmware.bin nev\u0171 f\u00e1jlra, majd a mikrokontroller \u00fajraind\u00edt\u00e1sa ezzel az SD-k\u00e1rty\u00e1val. Az OpenOCD futtat\u00e1sa a Raspberry PI-n \u00b6 Az OpenOCD egy olyan szoftvercsomag, amely k\u00e9pes alacsony szint\u0171 \u00e9get\u00e9sekre \u00e9s hibakeres\u00e9sre. A Raspberry Pi GPIO-t\u0171it haszn\u00e1lhatod a k\u00fcl\u00f6nb\u00f6z\u0151 ARM-chipekkel val\u00f3 kommunik\u00e1ci\u00f3ra. Ez a szakasz le\u00edrja, hogyan lehet telep\u00edteni \u00e9s elind\u00edtani az OpenOCD-t. A k\u00f6vetkez\u0151 oldalon tal\u00e1lhat\u00f3 utas\u00edt\u00e1sokb\u00f3l sz\u00e1rmazik: https://learn.adafruit.com/programming-microcontrollers-using-openocd-on-raspberry-pi Kezd a szoftver let\u00f6lt\u00e9s\u00e9vel \u00e9s ford\u00edt\u00e1s\u00e1val (minden l\u00e9p\u00e9s t\u00f6bb percet vehet ig\u00e9nybe, \u00e9s a \"make\" l\u00e9p\u00e9s t\u00f6bb mint 30 percet is ig\u00e9nybe vehet): sudo apt-get update sudo apt-get install autoconf libtool telnet mkdir ~/openocd cd ~/openocd/ git clone http://openocd.zylin.com/openocd cd openocd ./bootstrap ./configure --enable-sysfsgpio --enable-bcm2835gpio --prefix=/home/pi/openocd/install make make install Az OpenOCD konfigur\u00e1l\u00e1sa \u00b6 OpenOCD konfigur\u00e1ci\u00f3s f\u00e1jl l\u00e9trehoz\u00e1sa: nano ~/openocd/openocd.cfg Haszn\u00e1lj a k\u00f6vetkez\u0151h\u00f6z hasonl\u00f3 konfigur\u00e1ci\u00f3t: # RPi t\u0171ket haszn\u00e1l: GPIO25 az SWDCLK-hoz, GPIO24 az SWDIO-hoz, GPIO18 az nRST-hez. forr\u00e1s [find interface/raspberrypi2-native.cfg] bcm2835gpio_swd_nums 25 24 bcm2835gpio_srst_num 18 sz\u00e1ll\u00edt\u00e1s kiv\u00e1laszt\u00e1sa swd # Hardveres reset vezet\u00e9k haszn\u00e1lata a chip resetel\u00e9s\u00e9hez reset_config srst_only adapter_nsrst_delay 100 adapter_nsrst_assert_width 100 # A chip t\u00edpus\u00e1nak megad\u00e1sa source [find target/atsame5x.cfg] # Add meg az adapter sebess\u00e9g\u00e9t adapter_khz 40 # Csatlakoz\u00e1s a chiphez init targets reset halt A Raspberry Pi \u00e9s a c\u00e9lchip \u00f6sszek\u00f6t\u00e9se \u00b6 Kapcsolja ki mind a Raspberry Pi-t, mind a c\u00e9lchipet a k\u00e1belez\u00e9s el\u0151tt! Ellen\u0151rizd, hogy a c\u00e9lchip 3,3V-ot haszn\u00e1l-e a Raspberry Pi csatlakoztat\u00e1sa el\u0151tt! Csatlakoztassa a c\u00e9lchip GND, SWDCLK, SWDIO \u00e9s RST \u00e9rt\u00e9keit a Raspberry Pi GND, GPIO25, GPIO24 \u00e9s GPIO18 \u00e9rt\u00e9k\u00e9hez. Ezut\u00e1n kapcsolja be a Raspberry Pi-t, \u00e9s t\u00e1pl\u00e1lja a c\u00e9lchipet. OpenOCD futtat\u00e1sa \u00b6 Futtassa az OpenOCD-t: cd ~/openocd/ sudo ~/openocd/install/bin/openocd -f ~/openocd/openocd.cfg A fentieknek hat\u00e1s\u00e1ra az OpenOCD-nek ki kell adnia n\u00e9h\u00e1ny sz\u00f6veges \u00fczenetet, majd v\u00e1rnia kell (nem szabad azonnal visszat\u00e9rnie az Unix shell prompthoz). Ha az OpenOCD mag\u00e1t\u00f3l kil\u00e9p, vagy ha tov\u00e1bbra is sz\u00f6veges \u00fczeneteket ad ki, akkor ellen\u0151rizd k\u00e9tszer a k\u00e1belez\u00e9st. Ha az OpenOCD fut \u00e9s stabilan m\u0171k\u00f6dik, akkor telneten kereszt\u00fcl parancsokat k\u00fcldhet\u00fcnk neki. Nyissunk egy m\u00e1sik SSH munkamenetet, \u00e9s futtassuk a k\u00f6vetkez\u0151ket: telnet 127.0.0.1 4444 (A telnetb\u0151l a ctrl+] billenty\u0171kombin\u00e1ci\u00f3val, majd a \"quit\" parancs futtat\u00e1s\u00e1val lehet kil\u00e9pni.) OpenOCD \u00e9s gdb \u00b6 Lehet\u0151s\u00e9g van az OpenOCD \u00e9s a gdb haszn\u00e1lat\u00e1ra a Klipper hibakeres\u00e9s\u00e9re. A k\u00f6vetkez\u0151 parancsok felt\u00e9telezik, hogy a gdb egy asztali g\u00e9pen fut. Add hozz\u00e1 a k\u00f6vetkez\u0151ket az OpenOCD konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1hoz: bindto 0.0.0.0 gdb_port 44444 Ind\u00edtsa \u00fajra az OpenOCD-t a Raspberry Pi-n, majd futtassa a k\u00f6vetkez\u0151 Unix parancsot az asztali g\u00e9pen: cd /path/to/klipper/ gdb out/klipper.elf A gdb futtat\u00e1sa: target remote octopi:44444 (Cser\u00e9lje ki a \"octopi\" -t a Raspberry Pi gazdag\u00e9p nev\u00e9re.) Ha a gdb fut, lehet\u0151s\u00e9g van t\u00f6r\u00e9spontok be\u00e1ll\u00edt\u00e1s\u00e1ra \u00e9s a regiszterek vizsg\u00e1lat\u00e1ra.","title":"Bootloaderek"},{"location":"Bootloaders.html#bootloaderek","text":"Ez a dokumentum a Klipper \u00e1ltal t\u00e1mogatott mikrovez\u00e9rl\u0151k\u00f6n tal\u00e1lhat\u00f3 gyakori bootloaderekkel kapcsolatos inform\u00e1ci\u00f3kat tartalmazza. A bootloader egy harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 szoftver, amely a mikrovez\u00e9rl\u0151n fut, amikor az el\u0151sz\u00f6r bekapcsol. \u00c1ltal\u00e1ban egy \u00faj alkalmaz\u00e1s (pl. Klipper) \u00e9get\u00e9s\u00e9re haszn\u00e1lj\u00e1k a mikrokontrollerre an\u00e9lk\u00fcl, hogy speci\u00e1lis hardverre lenne sz\u00fcks\u00e9g. Sajnos a mikrokontrollerek \u00e9get\u00e9s\u00e9re nincs ipar\u00e1gi szabv\u00e1ny, \u00e9s nincs olyan szabv\u00e1nyos bootloader sem, amely minden mikrokontrolleren m\u0171k\u00f6dik. Ami m\u00e9g rosszabb, hogy minden egyes bootloader m\u00e1s \u00e9s m\u00e1s l\u00e9p\u00e9seket ig\u00e9nyel az alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez. Ha egy mikrokontrollerre tudunk bootloadert \u00e9getni, akkor \u00e1ltal\u00e1ban ezt a mechanizmust haszn\u00e1lhatjuk egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9re is, de \u00f3vatosan kell elj\u00e1rni, mert v\u00e9letlen\u00fcl elt\u00e1vol\u00edthatjuk a bootloadert. Ezzel szemben a bootloader \u00e1ltal\u00e1ban csak egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9t teszi lehet\u0151v\u00e9. Ez\u00e9rt aj\u00e1nlott, ha lehets\u00e9ges, bootloadert haszn\u00e1lni egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9re. Ez a dokumentum megpr\u00f3b\u00e1lja le\u00edrni a gyakori bootloadereket, a bootloader \u00e9get\u00e9s\u00e9hez sz\u00fcks\u00e9ges l\u00e9p\u00e9seket \u00e9s az alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez sz\u00fcks\u00e9ges l\u00e9p\u00e9seket. Ez a dokumentum nem tekint\u00e9lyes hivatkoz\u00e1s. A Klipper fejleszt\u0151i \u00e1ltal \u00f6sszegy\u0171jt\u00f6tt hasznos inform\u00e1ci\u00f3k gy\u0171jtem\u00e9ny\u00e9nek sz\u00e1njuk.","title":"Bootloaderek"},{"location":"Bootloaders.html#avr-mikrovezerlok","text":"\u00c1ltal\u00e1noss\u00e1gban az Arduino projekt j\u00f3 referencia a 8 bites Atmel Atmega mikrovez\u00e9rl\u0151k bootloadereir\u0151l \u00e9s a \u00e9get\u00e9si elj\u00e1r\u00e1sokr\u00f3l. K\u00fcl\u00f6n\u00f6sen a \"boards.txt\" f\u00e1jl: https://github.com/arduino/Arduino/blob/1.8.5/hardware/arduino/avr/boards.txt hasznos referencia. A bootloader \u00e9get\u00e9s\u00e9hez az AVR chipekhez k\u00fcls\u0151 hardveres \u00e9get\u0151 eszk\u00f6zre van sz\u00fcks\u00e9g (amely SPI seg\u00edts\u00e9g\u00e9vel kommunik\u00e1l a chippel). Ez az eszk\u00f6z megv\u00e1s\u00e1rolhat\u00f3 (p\u00e9ld\u00e1ul keressen r\u00e1 az interneten az \"avr isp\", \"arduino isp\" vagy \"usb tiny isp\" szavakra). Az is lehets\u00e9ges, hogy egy m\u00e1sik Arduino vagy Raspberry Pi seg\u00edts\u00e9g\u00e9vel \u00e9gess egy AVR bootloadert (p\u00e9ld\u00e1ul keressen r\u00e1 az interneten a \"program an avr using raspberry pi\" kifejez\u00e9sre). Az al\u00e1bbi p\u00e9ld\u00e1kat egy \"AVR ISP Mk2\" t\u00edpus\u00fa eszk\u00f6z haszn\u00e1lat\u00e1t felt\u00e9telezve \u00edrtuk. Az \"avrdude\" program a leggyakrabban haszn\u00e1lt eszk\u00f6z az atmega chipek \u00e9get\u00e9s\u00e9re (mind a bootloader, mind az alkalmaz\u00e1sok \u00e9get\u00e9s\u00e9re).","title":"AVR mikrovez\u00e9rl\u0151k"},{"location":"Bootloaders.html#atmega2560","text":"Ez a chip jellemz\u0151en az \"Arduino Mega\" chipben tal\u00e1lhat\u00f3, \u00e9s nagyon gyakori a 3D nyomtat\u00f3 lapokban. Mag\u00e1nak a bootloadernek az \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: wget 'https://github.com/arduino/Arduino/raw/1.8.5/hardware/arduino/avr/bootloaders/stk500v2/stk500boot_v2_mega2560.hex' avrdude -cavrispv2 -patmega2560 -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0xFD:m -U hfuse:w:0xD8:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega2560 -P/dev/ttyACM0 -b115200 -U flash:w:stk500boot_v2_mega2560.hex avrdude -cavrispv2 -patmega2560 -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: avrdude -cwiring -patmega2560 -P/dev/ttyACM0 -b115200 -D -Uflash:w:out/klipper.elf.hex:i","title":"Atmega2560"},{"location":"Bootloaders.html#atmega1280","text":"Ez a chip jellemz\u0151en az \"Arduino Mega\" kor\u00e1bbi verzi\u00f3iban tal\u00e1lhat\u00f3. Mag\u00e1nak a bootloadernek az \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: wget 'https://github.com/arduino/Arduino/raw/1.8.5/hardware/arduino/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1280.hex' avrdude -cavrispv2 -patmega1280 -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0xF5:m -U hfuse:w:0xDA:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega1280 -P/dev/ttyACM0 -b115200 -U flash:w:ATmegaBOOT_168_atmega1280.hex avrdude -cavrispv2 -patmega1280 -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: avrdude -carduino -patmega1280 -P/dev/ttyACM0 -b57600 -D -Uflash:w:out/klipper.elf.hex:i","title":"Atmega1280"},{"location":"Bootloaders.html#atmega1284p","text":"Ez a chip gyakran megtal\u00e1lhat\u00f3 a \"Melzi\" st\u00edlus\u00fa 3D nyomtat\u00f3 alaplapokban. Mag\u00e1nak a bootloadernek az \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: wget 'https://github.com/Lauszus/Sanguino/raw/1.0.2/bootloaders/optiboot/optiboot_atmega1284p.hex' avrdude -cavrispv2 -patmega1284p -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0xFD:m -U hfuse:w:0xDE:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega1284p -P/dev/ttyACM0 -b115200 -U flash:w:optiboot_atmega1284p.hex avrdude -cavrispv2 -patmega1284p -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: avrdude -carduino -patmega1284p -P/dev/ttyACM0 -b115200 -D -Uflash:w:out/klipper.elf.hex:i Megjegyzend\u0151, hogy sz\u00e1mos \"Melzi\" st\u00edlus\u00fa alaplap el\u0151re bet\u00f6lt\u00f6tt bootloaderrel \u00e9rkezik, amely 57600-as \u00e1tviteli sebess\u00e9g haszn\u00e1lat\u00e1val m\u0171k\u00f6dik. Ebben az esetben egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj helyette valami ilyesmit: avrdude -carduino -patmega1284p -P/dev/ttyACM0 -b57600 -D -Uflash:w:out/klipper.elf.hex:i","title":"Atmega1284p"},{"location":"Bootloaders.html#at90usb1286","text":"Ez a dokumentum nem foglalkozik az At90usb1286 bootloader \u00e9get\u00e9si m\u00f3dszer\u00e9vel, \u00e9s nem foglalkozik az \u00e1ltal\u00e1nos alkalmaz\u00e1s \u00e9get\u00e9s\u00e9vel sem. A pjrc.com Teensy++ eszk\u00f6ze saj\u00e1t bootloaderrel rendelkezik. Ehhez egy egyedi \u00e9get\u0151 eszk\u00f6zre van sz\u00fcks\u00e9g a https://github.com/PaulStoffregen/teensy_loader_cli oldalr\u00f3l. Egy alkalmaz\u00e1st lehet vele \u00e9getni valami ilyesmivel: teensy_loader_cli --mcu=at90usb1286 out/klipper.elf.hex -v","title":"At90usb1286"},{"location":"Bootloaders.html#atmega168","text":"Az atmega168 korl\u00e1tozott flash-t\u00e1rhellyel rendelkezik. Ha bootloadert haszn\u00e1l, aj\u00e1nlott az Optiboot bootloadert haszn\u00e1lni. A bootloader \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami hasonl\u00f3t: wget 'https://github.com/arduino/Arduino/raw/1.8.5/hardware/arduino/avr/bootloaders/optiboot/optiboot_atmega168.hex' avrdude -cavrispv2 -patmega168 -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0x04:m -U hfuse:w:0xDD:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega168 -P/dev/ttyACM0 -b115200 -U flash:w:optiboot_atmega168.hex avrdude -cavrispv2 -patmega168 -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Az Optiboot bootloaderrel t\u00f6rt\u00e9n\u0151 alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami hasonl\u00f3t: avrdude -carduino -patmega168 -P/dev/ttyACM0 -b115200 -D -Uflash:w:out/klipper.elf.hex:i","title":"Atmega168"},{"location":"Bootloaders.html#sam3-mikrovezerlok-arduino-due","text":"A SAM3 MCU-val nem szok\u00e1s bootloadert haszn\u00e1lni. Maga a chip rendelkezik egy ROM-mal, amely lehet\u0151v\u00e9 teszi a flash programoz\u00e1s\u00e1t 3,3V-os soros portr\u00f3l vagy USB-r\u0151l. A ROM enged\u00e9lyez\u00e9s\u00e9hez az \"erase\" csapot magasan kell tartani a vissza\u00e1ll\u00edt\u00e1s sor\u00e1n, ami t\u00f6rli a flash tartalm\u00e1t, \u00e9s a ROM-ot elind\u00edtja. Egy Arduino Due-n ez a szekvencia \u00fagy val\u00f3s\u00edthat\u00f3 meg, hogy a \"programoz\u00f3 usb port\" (a t\u00e1pegys\u00e9ghez legk\u00f6zelebbi USB port) 1200-as baud sebess\u00e9get \u00e1ll\u00edt be. A https://github.com/shumatech/BOSSA alatti k\u00f3d haszn\u00e1lhat\u00f3 a SAM3 programoz\u00e1s\u00e1hoz. Az 1.9-es vagy \u00fajabb verzi\u00f3 haszn\u00e1lata aj\u00e1nlott. Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: bossac -U -p /dev/ttyACM0 -a -e -w out/klipper.bin -v -b bossac -U -p /dev/ttyACM0 -R","title":"SAM3 mikrovez\u00e9rl\u0151k (Arduino Due)"},{"location":"Bootloaders.html#sam4-mikrovezerlok-duet-wifi","text":"A SAM4 MCU-val nem szok\u00e1s bootloadert haszn\u00e1lni. Maga a chip rendelkezik egy ROM-mal, amely lehet\u0151v\u00e9 teszi a flash programoz\u00e1s\u00e1t 3,3V-os soros portr\u00f3l vagy USB-r\u0151l. A ROM enged\u00e9lyez\u00e9s\u00e9hez az \"erase\" csapot magasan kell tartani a vissza\u00e1ll\u00edt\u00e1s sor\u00e1n, ami t\u00f6rli a flash tartalm\u00e1t, \u00e9s a ROM-ot elind\u00edtja. A https://github.com/shumatech/BOSSA k\u00f3d haszn\u00e1lhat\u00f3 a SAM4 programoz\u00e1s\u00e1hoz. Sz\u00fcks\u00e9ges az 1.8.0 vagy magasabb verzi\u00f3 haszn\u00e1lata. Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: bossac --port=/dev/ttyACM0 -b -U -e -w -v -R out/klipper.bin","title":"SAM4 mikrovez\u00e9rl\u0151k (Duet Wifi)"},{"location":"Bootloaders.html#samd21-mikrovezerlok-arduino-zero","text":"A SAMD21 bootloader az ARM Serial Wire Debug (SWD) interf\u00e9szen kereszt\u00fcl t\u00f6lt\u0151dik fel. Ez \u00e1ltal\u00e1ban egy dedik\u00e1lt SWD hardver dongle seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nik. Alternat\u00edvak\u00e9nt haszn\u00e1lhatunk egy OpenOCD futtat\u00e1st a Raspberry PI-n . A bootloader OpenOCD-vel t\u00f6rt\u00e9n\u0151 \u00e9get\u00e9s\u00e9hez haszn\u00e1ld a k\u00f6vetkez\u0151 chipkonfigur\u00e1ci\u00f3t: forr\u00e1s [find target/at91samdXX.cfg] Szerezz be egy bootloadert - p\u00e9ld\u00e1ul: wget 'https://github.com/arduino/ArduinoCore-samd/raw/1.8.3/bootloaders/zero/samd21_sam_ba.bin' \u00c9get\u00e9s az OpenOCD parancsokhoz hasonl\u00f3 parancsokkal: at91samd bootloader 0 program samd21_sam_ba.bin verify A SAMD21 leggyakoribb bootloadere az \"Arduino Zero\" -ban tal\u00e1lhat\u00f3. Ez egy 8KiB-es bootloadert haszn\u00e1l (az alkalmaz\u00e1st 8KiB kezd\u0151c\u00edmmel kell leford\u00edtani). Ebbe a bootloaderbe a reset gombra val\u00f3 dupla kattint\u00e1ssal lehet bel\u00e9pni. Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami hasonl\u00f3t: bossac -U -p /dev/ttyACM0 --offset=0x2000 -w out/klipper.bin -v -b -R Ezzel szemben az \"Arduino M0\" 16KiB bootloadert haszn\u00e1l (az alkalmaz\u00e1st 16KiB kezd\u0151c\u00edmmel kell leford\u00edtani). Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez ezen a bootloaderen, \u00e1ll\u00edtsd vissza a mikrokontrollert, \u00e9s futtassa a flash parancsot a bootol\u00e1s els\u0151 n\u00e9h\u00e1ny m\u00e1sodperc\u00e9ben. Valami ilyesmi: avrdude -c stk500v2 -p atmega2560 -P /dev/ttyACM0 -u -Uflash:w:out/klipper.elf.hex:i","title":"SAMD21 mikrovez\u00e9rl\u0151k (Arduino Zero)"},{"location":"Bootloaders.html#samd51-mikrovezerlok-adafruit-metro-m4-es-hasonlo","text":"A SAMD21-hez hasonl\u00f3an a SAMD51 bootloader is az ARM Serial Wire Debug (SWD) interf\u00e9szen kereszt\u00fcl t\u00f6lt\u0151dik fel. Az OpenOCD futtat\u00e1sa a Raspberry PI-n bootloader \u00e9get\u00e9s\u00e9hez haszn\u00e1ld a k\u00f6vetkez\u0151 chipkonfigur\u00e1ci\u00f3t: forr\u00e1s [find target/atsame5x.cfg] Szerezz be egy bootloadert. Sz\u00e1mos bootloader el\u00e9rhet\u0151 a https://github.com/adafruit/uf2-samdx1/releases/latest oldalon. P\u00e9ld\u00e1ul: wget 'https://github.com/adafruit/uf2-samdx1/releases/download/v3.7.0/bootloader-itsybitsy_m4-v3.7.0.bin' \u00c9get\u00e9s az OpenOCD parancsokhoz hasonl\u00f3 parancsokkal: at91samd bootloader 0 program bootloader-itsybitsy_m4-v3.7.0.bin verify at91samd bootloader 16384 A SAMD51 16KiB-es bootloadert haszn\u00e1l (az alkalmaz\u00e1st 16KiB kezd\u0151c\u00edmmel kell leford\u00edtani). Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami hasonl\u00f3t: bossac -U -p /dev/ttyACM0 --offset=0x4000 -w out/klipper.bin -v -b -R","title":"SAMD51 mikrovez\u00e9rl\u0151k (Adafruit Metro-M4 \u00e9s hasonl\u00f3)"},{"location":"Bootloaders.html#stm32f103-mikrovezerlok-blue-pill-eszkozok","text":"Az STM32F103 eszk\u00f6z\u00f6k rendelkeznek egy ROM-mal, amely 3,3 V-os soros kapcsolaton kereszt\u00fcl k\u00e9pes bootloadert vagy alkalmaz\u00e1st \u00e9getni. \u00c1ltal\u00e1ban a PA10 (MCU Rx) \u00e9s PA9 (MCU Tx) t\u0171ket egy 3,3V-os UART adapterhez kell csatlakoztatni. A ROM el\u00e9r\u00e9s\u00e9hez a \"boot 0\" t\u0171t magasra, a \"boot 1\" t\u0171t pedig alacsonyra kell kapcsolni, majd vissza kell \u00e1ll\u00edtani az eszk\u00f6zt. Az \"stm32flash\" csomagot ezut\u00e1n haszn\u00e1lhatjuk az eszk\u00f6z \u00e9get\u00e9s\u00e9re, p\u00e9ld\u00e1ul a k\u00f6vetkez\u0151kkel: stm32flash -w out/klipper.bin -v -g 0 /dev/ttyAMA0 Vedd figyelembe, hogy ha Raspberry Pi-t haszn\u00e1l a 3,3V-os soros kapcsolathoz, az stm32flash protokoll olyan soros parit\u00e1sm\u00f3dot haszn\u00e1l, amelyet a Raspberry Pi \"mini UART\" nem t\u00e1mogat. L\u00e1sd https://www.raspberrypi.com/documentation/computers/configuration.html#configuring-uarts a teljes uart enged\u00e9lyez\u00e9s\u00e9r\u0151l a Raspberry Pi GPIO t\u0171in. Az \u00e9get\u00e9s ut\u00e1n \u00e1ll\u00edtsd vissza a \"boot 0\" \u00e9s a \"boot 1\" \u00e9rt\u00e9ket alacsonyra, hogy a j\u00f6v\u0151ben az \u00e9get\u00e9sr\u0151l indul\u00f3 rendszer \u00fajrainduljon.","title":"STM32F103 mikrovez\u00e9rl\u0151k (Blue Pill eszk\u00f6z\u00f6k)"},{"location":"Bootloaders.html#stm32f103-stm32duino-bootloaderrel","text":"Az \"stm32duino\" projekt rendelkezik USB-k\u00e9pes bootloaderrel. L\u00e1sd: https://github.com/rogerclarkmelbourne/STM32duino-bootloader Ez a bootloader 3,3V-os soros kapcsolaton kereszt\u00fcl \u00e9gethet\u0151 valami hasonl\u00f3val: wget 'https://github.com/rogerclarkmelbourne/STM32duino-bootloader/raw/master/binaries/generic_boot20_pc13.bin' stm32flash -w generic_boot20_pc13.bin -v -g 0 /dev/ttyAMA0 Ez a bootloader 8KiB-es flash mem\u00f3ri\u00e1t haszn\u00e1l (az alkalmaz\u00e1st 8KiB kezd\u0151c\u00edmmel kell leford\u00edtani). \u00c9gess egy alkalmaz\u00e1st valami ilyesmivel: dfu-util -d 1eaf:0003 -a 2 -R -D out/klipper.bin A bootloader \u00e1ltal\u00e1ban csak r\u00f6vid ideig fut a rendszerind\u00edt\u00e1s ut\u00e1n. Sz\u00fcks\u00e9g lehet arra, hogy a fenti parancsot \u00fagy id\u0151z\u00edts\u00fck, hogy az akkor fusson le, amikor a bootloader m\u00e9g akt\u00edv (a bootloader \u00fczem k\u00f6zben villogtat egy a lapon l\u00e9v\u0151 ledet). Alternat\u00edv megold\u00e1sk\u00e9nt a \"boot 0\" csapot \u00e1ll\u00edtsd alacsonyra, a \"boot 1\" csapot pedig magasra, hogy a bootloaderben maradj a reset ut\u00e1n.","title":"STM32F103 stm32duino bootloaderrel"},{"location":"Bootloaders.html#stm32f103-hid-bootloaderrel","text":"A HID bootloader egy kompakt, driver n\u00e9lk\u00fcli bootloader, amely k\u00e9pes USB-n kereszt\u00fcl \u00e9getni. Szint\u00e9n el\u00e9rhet\u0151 egy fork az SKR Mini E3 1.2 specifikus buildekkel . Az \u00e1ltal\u00e1nos STM32F103 alaplapok, mint p\u00e9ld\u00e1ul a blue pill eset\u00e9ben a bootloader 3,3V-os soros \u00e9get\u00e9se lehets\u00e9ges az stm32flash haszn\u00e1lat\u00e1val, amint azt a fenti stm32duino szakaszban eml\u00edtett\u00fck, a k\u00edv\u00e1nt hid bootloader bin\u00e1ris f\u00e1jlnev\u00e9nek behelyettes\u00edt\u00e9s\u00e9vel (azaz: hid_generic_pc13.bin a blue pillhez). Az SKR Mini E3 eset\u00e9ben nem lehet stm32flash-t haszn\u00e1lni, mivel a boot0 l\u00e1b k\u00f6zvetlen\u00fcl a f\u00f6ldre van k\u00f6tve, \u00e9s nincs alaplapi t\u0171ki\u00e1ll\u00e1sa. A bootloader \u00e9get\u00e9s\u00e9hez aj\u00e1nlott STLink V2-t haszn\u00e1lni STM32Cube programoz\u00f3val. Ha nincs vagy nem f\u00e9r hozz\u00e1 egy STLinkhez, akkor lehets\u00e9ges egy OpenOCD futtat\u00e1sa a Raspberry PI-n haszn\u00e1lata is a k\u00f6vetkez\u0151 chipkonfigur\u00e1ci\u00f3val: forr\u00e1s [find target/stm32f1x.cfg] Ha szeretn\u00e9, a k\u00f6vetkez\u0151 paranccsal k\u00e9sz\u00edthet biztons\u00e1gi m\u00e1solatot az aktu\u00e1lis flash mem\u00f3ri\u00e1r\u00f3l. Vedd figyelembe, hogy ez n\u00e9mi id\u0151t vehet ig\u00e9nybe: flash read_bank 0 btt_skr_mini_e3_backup.bin v\u00e9g\u00fcl, a k\u00f6vetkez\u0151 parancsokhoz hasonl\u00f3 parancsokkal \u00e9gethet: stm32f1x mass_erase 0 program hid_btt_skr_mini_e3.bin verify 0x08000000 MEGJEGYZ\u00c9SEK: A fenti p\u00e9lda t\u00f6rli a chipet, majd beprogramozza a bootloadert. Az \u00e9get\u00e9shez v\u00e1lasztott m\u00f3dszert\u0151l f\u00fcggetlen\u00fcl aj\u00e1nlott a chipet az \u00e9get\u00e9s el\u0151tt t\u00f6r\u00f6lni. Miel\u0151tt az SKR Mini E3-at ezzel a bootloaderrel \u00e9getn\u00e9d, tudnod kell, hogy a firmware friss\u00edt\u00e9se m\u00e1r nem lesz lehets\u00e9ges az SD-k\u00e1rty\u00e1n kereszt\u00fcl. You may need to hold down the reset button on the board while launching OpenOCD. It should display something like: Open On-Chip Debugger 0.10.0+dev-01204-gc60252ac-dirty (2020-04-27-16:00) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html DEPRECATED! use 'adapter speed' not 'adapter_khz' Info : BCM2835 GPIO JTAG/SWD bitbang driver Info : JTAG and SWD modes enabled Info : clock speed 40 kHz Info : SWD DPIDR 0x1ba01477 Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints Info : stm32f1x.cpu: external reset detected Info : starting gdb server for stm32f1x.cpu on 3333 Info : Listening on port 3333 for gdb connections Ezt k\u00f6vet\u0151en elengedheti a reset gombot. Ez a bootloader 2KiB-os flash mem\u00f3ri\u00e1t ig\u00e9nyel (az alkalmaz\u00e1st 2KiB kezd\u0151c\u00edmmel kell leford\u00edtani). A hid-flash program egy bin\u00e1ris f\u00e1jl felt\u00f6lt\u00e9s\u00e9re szolg\u00e1l a bootloaderre. Ezt a szoftvert a k\u00f6vetkez\u0151 parancsokkal telep\u00edtheti: sudo apt install libusb-1.0 cd ~/klipper/lib/hidflash make Ha a bootloader fut, akkor \u00e9gethetsz valami olyasmivel, mint: ~/klipper/lib/hidflash/hid-flash ~/klipper/out/klipper.bin alternat\u00edvak\u00e9nt haszn\u00e1lhatod a make flash parancsot a klipper k\u00f6zvetlen \u00e9get\u00e9s\u00e9hez: make flash FLASH_DEVICE=1209:BEBA VAGY ha a klippert kor\u00e1bban m\u00e1r \u00e9gett\u00e9k: make flash FLASH_DEVICE=/dev/ttyACM0 Sz\u00fcks\u00e9g lehet a bootloader manu\u00e1lis bel\u00e9p\u00e9s\u00e9re, ezt a \"boot 0\" alacsony \u00e9s \"boot 1\" magas \u00e9rt\u00e9kek be\u00e1ll\u00edt\u00e1s\u00e1val lehet megtenni. Az SKR Mini E3 eset\u00e9ben a \"Boot 1\" nem \u00e1ll rendelkez\u00e9sre, ez\u00e9rt a PA2 t\u0171 alacsonyra \u00e1ll\u00edt\u00e1s\u00e1val lehet elv\u00e9gezni, ha a \"hid_btt_skr_mini_e3.bin\" f\u00e1jlt \u00e9getj\u00fck. Ez a t\u0171 az SKR Mini E3 \"PIN\" dokumentumban \"TX0\"-k\u00e9nt van jel\u00f6lve a TFT fejl\u00e9cen. A PA2 mellett van egy f\u00f6ldelt t\u0171, amellyel a PA2-t alacsonyra h\u00fazhatja.","title":"STM32F103 HID bootloaderrel"},{"location":"Bootloaders.html#stm32f103stm32f072-msc-bootloaderrel","text":"Az MSC bootloader egy USB-n kereszt\u00fcl \u00e9gethet\u0151, driver n\u00e9lk\u00fcli bootloader. Lehet\u0151s\u00e9g van a bootloader 3,3V-os soros \u00e9get\u00e9s\u00e9re az stm32flash haszn\u00e1lat\u00e1val, ahogyan azt a fenti stm32duino szakaszban eml\u00edtett\u00fck, a k\u00edv\u00e1nt MSC bootloader bin\u00e1ris f\u00e1jlnev\u00e9nek behelyettes\u00edt\u00e9s\u00e9vel (azaz: MSCboot-Bluepill.bin a Bluepill-hez). Az STM32F072 lapok eset\u00e9ben a bootloader USB-n kereszt\u00fcl (DFU-n kereszt\u00fcl) is \u00e9gethet\u0151, p\u00e9ld\u00e1ul a k\u00f6vetkez\u0151kkel: dfu-util -d 0483:df11 -a 0 -R -D MSCboot-STM32F072.bin -s0x08000000:leave Ez a bootloader 8KiB vagy 16KiB flash helyet haszn\u00e1l, l\u00e1sd a bootloader le\u00edr\u00e1s\u00e1t (az alkalmaz\u00e1st a megfelel\u0151 kezd\u0151c\u00edmmel kell leford\u00edtani). A bootloader a k\u00e1rtya reset gombj\u00e1nak k\u00e9tszeri megnyom\u00e1s\u00e1val aktiv\u00e1lhat\u00f3. Amint a bootloader aktiv\u00e1l\u00f3dik, a k\u00e1rtya USB flash meghajt\u00f3k\u00e9nt jelenik meg, amelyre a klipper.bin f\u00e1jl m\u00e1solhat\u00f3.","title":"STM32F103/STM32F072 MSC bootloaderrel"},{"location":"Bootloaders.html#stm32f103stm32f0x2-canboot-bootloaderrel","text":"A CanBoot bootloader lehet\u0151s\u00e9get biztos\u00edt a Klipper firmware felt\u00f6lt\u00e9s\u00e9re CANBUS-on kereszt\u00fcl. Maga a bootloader a Klipper forr\u00e1sk\u00f3dj\u00e1b\u00f3l sz\u00e1rmazik. A CanBoot jelenleg az STM32F103, STM32F042 \u00e9s STM32F072 modelleket t\u00e1mogatja. A CanBoot \u00e9get\u00e9s\u00e9hez aj\u00e1nlott ST-Link programoz\u00f3t haszn\u00e1lni, azonban STM32F103 eszk\u00f6z\u00f6k\u00f6n az stm32flash , STM32F103 eszk\u00f6z\u00f6k\u00f6n pedig a dfu-util haszn\u00e1lat\u00e1val is lehet \u00e9getni. A dokumentum kor\u00e1bbi szakaszaiban tal\u00e1lhat\u00f3k az utas\u00edt\u00e1sok ezekre az \u00e9get\u00e9si m\u00f3dszerekre vonatkoz\u00f3an, adott esetben a f\u00e1jlnevet canboot.bin -el helyettes\u00edtve. A fentebb linkelt CanBoot repo tartalmaz utas\u00edt\u00e1sokat a bootloader elk\u00e9sz\u00edt\u00e9s\u00e9hez. A CanBoot els\u0151 \u00e9get\u00e9s\u00e9n\u00e9l \u00e9szlelned kell, hogy nincs jelen alkalmaz\u00e1s, \u00e9s be kell l\u00e9pned a bootloaderbe. Ha ez nem t\u00f6rt\u00e9nik meg, akkor a reset gomb k\u00e9tszer egym\u00e1s ut\u00e1ni megnyom\u00e1s\u00e1val lehet bel\u00e9pni a bootloaderbe. A Klipper firmware felt\u00f6lt\u00e9s\u00e9hez a flash_can.py seg\u00e9dprogram haszn\u00e1lhat\u00f3, amely a lib/canboot mapp\u00e1ban tal\u00e1lhat\u00f3. Az \u00e9get\u00e9shez sz\u00fcks\u00e9ges az eszk\u00f6z UUID azonos\u00edt\u00f3ja. Ha nincs meg az UUID, akkor a bootloadert jelenleg futtat\u00f3 csom\u00f3pontok lek\u00e9rdez\u00e9se lehets\u00e9ges: python3 flash_can.py -q Ez visszaadja az \u00f6sszes olyan csatlakoztatott csom\u00f3pont UUID-j\u00e9t, amelyhez jelenleg nem tartozik UUID. Ennek tartalmaznia kell a jelenlegi bootloaderben l\u00e9v\u0151 \u00f6sszes csom\u00f3pontot. Ha megvan az UUID, a k\u00f6vetkez\u0151 paranccsal t\u00f6lthet fel firmware-t: python3 flash_can.py -i can0 -f ~/klipper/out/klipper.bin -u aabbccddeeff Ahol aabbccddeeff hely\u00e9be az \u00d6n UUID-je l\u00e9p. Vedd figyelembe, hogy a -i \u00e9s -f opci\u00f3k elhagyhat\u00f3k, ezek alap\u00e9rtelmezett \u00e9rt\u00e9ke can0 \u00e9s ~/klipper/out/klipper.bin . Amikor a Klippert a CanBoot-al val\u00f3 haszn\u00e1latra k\u00e9sz\u00edted, v\u00e1laszd a 8 KiB-os bootloader opci\u00f3t.","title":"STM32F103/STM32F0x2 CanBoot bootloaderrel"},{"location":"Bootloaders.html#stm32f4-mikrovezerlok-skr-pro-11","text":"Az STM32F4 mikrokontrollerek be\u00e9p\u00edtett rendszerbet\u00f6lt\u0151vel rendelkeznek, amely k\u00e9pes USB-n kereszt\u00fcl (DFU-n kereszt\u00fcl), 3,3V-os soros \u00e9s k\u00fcl\u00f6nb\u00f6z\u0151 m\u00e1s m\u00f3dszerekkel is \u00e9getni (tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd az STM AN2606 dokumentum\u00e1t). Egyes STM32F4 lapok, mint p\u00e9ld\u00e1ul az SKR Pro 1.1, nem k\u00e9pesek bel\u00e9pni a DFU bootloaderbe. A HID bootloader el\u00e9rhet\u0151 az STM32F405/407 alap\u00fa lapokhoz, amennyiben a felhaszn\u00e1l\u00f3 az USB-n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 \u00e9get\u00e9st r\u00e9szes\u00edti el\u0151nyben az SD-k\u00e1rtya haszn\u00e1lat\u00e1val szemben. Ne feledd, hogy sz\u00fcks\u00e9g lehet egy, az alaplapodnak specifikus verzi\u00f3 konfigur\u00e1l\u00e1s\u00e1ra \u00e9s szerkeszt\u00e9s\u00e9re, egy az SKR Pro 1.1-es lapra vonatkoz\u00f3 verzi\u00f3 el\u00e9rhet\u0151 itt . Hacsak a lapod nem DFU-k\u00e9pes, a legk\u00f6nnyebben el\u00e9rhet\u0151 \u00e9get\u00e9si m\u00f3dszer val\u00f3sz\u00edn\u0171leg a 3,3V-os soros, amely ugyanazt az elj\u00e1r\u00e1st k\u00f6veti, mint [az STM32F103 \u00e9get\u00e9se az stm32flash seg\u00edts\u00e9g\u00e9vel](#stm32f103-mikrovezerlok-(blue-pill-eszkozok). P\u00e9ld\u00e1ul: wget https://github.com/Arksine/STM32_HID_Bootloader/releases/download/v0.5-beta/hid_bootloader_SKR_PRO.bin stm32flash -w hid_bootloader_SKR_PRO.bin -v -g 0 /dev/ttyAMA0 Ez a bootloader 16Kib-es flash mem\u00f3ri\u00e1t ig\u00e9nyel az STM32F4-en (az alkalmaz\u00e1st 16KiB kezd\u0151c\u00edmmel kell leford\u00edtani). Az STM32F1-hez hasonl\u00f3an az STM32F4 is a hid-flash eszk\u00f6zt haszn\u00e1lja a bin\u00e1risok MCU-ra t\u00f6rt\u00e9n\u0151 felt\u00f6lt\u00e9s\u00e9hez. A hid-flash elk\u00e9sz\u00edt\u00e9s\u00e9nek \u00e9s haszn\u00e1lat\u00e1nak r\u00e9szletei a fenti utas\u00edt\u00e1sokban tal\u00e1lhat\u00f3k. Sz\u00fcks\u00e9g lehet a bootloader manu\u00e1lis bel\u00e9p\u00e9s\u00e9re, ez a \"boot 0\" alacsony, \"boot 1\" magas \u00e9rt\u00e9k be\u00e1ll\u00edt\u00e1s\u00e1val \u00e9s az eszk\u00f6z csatlakoztat\u00e1s\u00e1val t\u00f6rt\u00e9nhet. A programoz\u00e1s befejez\u00e9se ut\u00e1n h\u00fazza ki az eszk\u00f6zt, \u00e9s \u00e1ll\u00edtsd vissza a \"boot 1\" \u00e9rt\u00e9ket alacsonyra, hogy az alkalmaz\u00e1s bet\u00f6lt\u0151dj\u00f6n.","title":"STM32F4 mikrovez\u00e9rl\u0151k (SKR Pro 1.1)"},{"location":"Bootloaders.html#lpc176x-mikrovezerlok-smoothieboards","text":"Ez a dokumentum nem \u00edrja le a bootloader \u00e9get\u00e9s\u00e9nek m\u00f3dszer\u00e9t. L\u00e1sd: http://smoothieware.org/flashing-the-bootloader a t\u00e9m\u00e1val kapcsolatos tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt. A Smoothieboardok \u00e1ltal\u00e1ban a k\u00f6vetkez\u0151 bootloaderrel \u00e9rkeznek: https://github.com/triffid/LPC17xx-DFU-Bootloader . Ha ezt a bootloadert haszn\u00e1ljuk, az alkalmaz\u00e1st 16KiB kezd\u0151c\u00edmmel kell leford\u00edtani. Az alkalmaz\u00e1s \u00e9get\u00e9s\u00e9nek legegyszer\u0171bb m\u00f3dja ezzel a bootloaderrel az alkalmaz\u00e1sf\u00e1jl (pl. out/klipper.bin ) m\u00e1sol\u00e1sa egy SD-k\u00e1rty\u00e1n l\u00e9v\u0151 firmware.bin nev\u0171 f\u00e1jlra, majd a mikrokontroller \u00fajraind\u00edt\u00e1sa ezzel az SD-k\u00e1rty\u00e1val.","title":"LPC176x mikrovez\u00e9rl\u0151k (Smoothieboards)"},{"location":"Bootloaders.html#az-openocd-futtatasa-a-raspberry-pi-n","text":"Az OpenOCD egy olyan szoftvercsomag, amely k\u00e9pes alacsony szint\u0171 \u00e9get\u00e9sekre \u00e9s hibakeres\u00e9sre. A Raspberry Pi GPIO-t\u0171it haszn\u00e1lhatod a k\u00fcl\u00f6nb\u00f6z\u0151 ARM-chipekkel val\u00f3 kommunik\u00e1ci\u00f3ra. Ez a szakasz le\u00edrja, hogyan lehet telep\u00edteni \u00e9s elind\u00edtani az OpenOCD-t. A k\u00f6vetkez\u0151 oldalon tal\u00e1lhat\u00f3 utas\u00edt\u00e1sokb\u00f3l sz\u00e1rmazik: https://learn.adafruit.com/programming-microcontrollers-using-openocd-on-raspberry-pi Kezd a szoftver let\u00f6lt\u00e9s\u00e9vel \u00e9s ford\u00edt\u00e1s\u00e1val (minden l\u00e9p\u00e9s t\u00f6bb percet vehet ig\u00e9nybe, \u00e9s a \"make\" l\u00e9p\u00e9s t\u00f6bb mint 30 percet is ig\u00e9nybe vehet): sudo apt-get update sudo apt-get install autoconf libtool telnet mkdir ~/openocd cd ~/openocd/ git clone http://openocd.zylin.com/openocd cd openocd ./bootstrap ./configure --enable-sysfsgpio --enable-bcm2835gpio --prefix=/home/pi/openocd/install make make install","title":"Az OpenOCD futtat\u00e1sa a Raspberry PI-n"},{"location":"Bootloaders.html#az-openocd-konfiguralasa","text":"OpenOCD konfigur\u00e1ci\u00f3s f\u00e1jl l\u00e9trehoz\u00e1sa: nano ~/openocd/openocd.cfg Haszn\u00e1lj a k\u00f6vetkez\u0151h\u00f6z hasonl\u00f3 konfigur\u00e1ci\u00f3t: # RPi t\u0171ket haszn\u00e1l: GPIO25 az SWDCLK-hoz, GPIO24 az SWDIO-hoz, GPIO18 az nRST-hez. forr\u00e1s [find interface/raspberrypi2-native.cfg] bcm2835gpio_swd_nums 25 24 bcm2835gpio_srst_num 18 sz\u00e1ll\u00edt\u00e1s kiv\u00e1laszt\u00e1sa swd # Hardveres reset vezet\u00e9k haszn\u00e1lata a chip resetel\u00e9s\u00e9hez reset_config srst_only adapter_nsrst_delay 100 adapter_nsrst_assert_width 100 # A chip t\u00edpus\u00e1nak megad\u00e1sa source [find target/atsame5x.cfg] # Add meg az adapter sebess\u00e9g\u00e9t adapter_khz 40 # Csatlakoz\u00e1s a chiphez init targets reset halt","title":"Az OpenOCD konfigur\u00e1l\u00e1sa"},{"location":"Bootloaders.html#a-raspberry-pi-es-a-celchip-osszekotese","text":"Kapcsolja ki mind a Raspberry Pi-t, mind a c\u00e9lchipet a k\u00e1belez\u00e9s el\u0151tt! Ellen\u0151rizd, hogy a c\u00e9lchip 3,3V-ot haszn\u00e1l-e a Raspberry Pi csatlakoztat\u00e1sa el\u0151tt! Csatlakoztassa a c\u00e9lchip GND, SWDCLK, SWDIO \u00e9s RST \u00e9rt\u00e9keit a Raspberry Pi GND, GPIO25, GPIO24 \u00e9s GPIO18 \u00e9rt\u00e9k\u00e9hez. Ezut\u00e1n kapcsolja be a Raspberry Pi-t, \u00e9s t\u00e1pl\u00e1lja a c\u00e9lchipet.","title":"A Raspberry Pi \u00e9s a c\u00e9lchip \u00f6sszek\u00f6t\u00e9se"},{"location":"Bootloaders.html#openocd-futtatasa","text":"Futtassa az OpenOCD-t: cd ~/openocd/ sudo ~/openocd/install/bin/openocd -f ~/openocd/openocd.cfg A fentieknek hat\u00e1s\u00e1ra az OpenOCD-nek ki kell adnia n\u00e9h\u00e1ny sz\u00f6veges \u00fczenetet, majd v\u00e1rnia kell (nem szabad azonnal visszat\u00e9rnie az Unix shell prompthoz). Ha az OpenOCD mag\u00e1t\u00f3l kil\u00e9p, vagy ha tov\u00e1bbra is sz\u00f6veges \u00fczeneteket ad ki, akkor ellen\u0151rizd k\u00e9tszer a k\u00e1belez\u00e9st. Ha az OpenOCD fut \u00e9s stabilan m\u0171k\u00f6dik, akkor telneten kereszt\u00fcl parancsokat k\u00fcldhet\u00fcnk neki. Nyissunk egy m\u00e1sik SSH munkamenetet, \u00e9s futtassuk a k\u00f6vetkez\u0151ket: telnet 127.0.0.1 4444 (A telnetb\u0151l a ctrl+] billenty\u0171kombin\u00e1ci\u00f3val, majd a \"quit\" parancs futtat\u00e1s\u00e1val lehet kil\u00e9pni.)","title":"OpenOCD futtat\u00e1sa"},{"location":"Bootloaders.html#openocd-es-gdb","text":"Lehet\u0151s\u00e9g van az OpenOCD \u00e9s a gdb haszn\u00e1lat\u00e1ra a Klipper hibakeres\u00e9s\u00e9re. A k\u00f6vetkez\u0151 parancsok felt\u00e9telezik, hogy a gdb egy asztali g\u00e9pen fut. Add hozz\u00e1 a k\u00f6vetkez\u0151ket az OpenOCD konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1hoz: bindto 0.0.0.0 gdb_port 44444 Ind\u00edtsa \u00fajra az OpenOCD-t a Raspberry Pi-n, majd futtassa a k\u00f6vetkez\u0151 Unix parancsot az asztali g\u00e9pen: cd /path/to/klipper/ gdb out/klipper.elf A gdb futtat\u00e1sa: target remote octopi:44444 (Cser\u00e9lje ki a \"octopi\" -t a Raspberry Pi gazdag\u00e9p nev\u00e9re.) Ha a gdb fut, lehet\u0151s\u00e9g van t\u00f6r\u00e9spontok be\u00e1ll\u00edt\u00e1s\u00e1ra \u00e9s a regiszterek vizsg\u00e1lat\u00e1ra.","title":"OpenOCD \u00e9s gdb"},{"location":"CANBUS.html","text":"CANBUS \u00b6 Ez a dokumentum a Klipper CAN busz t\u00e1mogat\u00e1s\u00e1t \u00edrja le. Eszk\u00f6z Hardver \u00b6 A Klipper jelenleg t\u00e1mogatja a CAN-t az stm32, same5x \u00e9s rp2040 chipeken. Ezenk\u00edv\u00fcl a mikrokontroller chipnek olyan lapk\u00e1n kell lennie, amely rendelkezik CAN csatlakoz\u00e1ssal. A CAN-hez val\u00f3 ford\u00edt\u00e1shoz futtassa a make menuconfig parancsot, \u00e9s v\u00e1laszd a \"CAN busz\" kommunik\u00e1ci\u00f3s interf\u00e9szt. V\u00e9g\u00fcl ford\u00edtsd le a mikrokontroller k\u00f3dj\u00e1t, \u00e9s \u00e9gesd a c\u00e9llapra. Gazdag\u00e9p Hardver \u00b6 A CAN-busz haszn\u00e1lat\u00e1hoz sz\u00fcks\u00e9g van egy host-adapterre. Jelenleg k\u00e9t elterjedt lehet\u0151s\u00e9g van: Haszn\u00e1lj egy Waveshare Raspberry Pi CAN sapk\u00e1t vagy annak sz\u00e1mos kl\u00f3nja k\u00f6z\u00fcl egyet. Haszn\u00e1lj USB CAN-adaptert (p\u00e9ld\u00e1ul https://hacker-gadgets.com/product/cantact-usb-can-adapter/ ). Sz\u00e1mos k\u00fcl\u00f6nb\u00f6z\u0151 USB-CAN adapter \u00e1ll rendelkez\u00e9sre - az adapter kiv\u00e1laszt\u00e1sakor javasoljuk, hogy ellen\u0151rizd, hogy k\u00e9pes-e a candlelight firmware futtat\u00e1s\u00e1ra. (Sajnos azt tapasztaltuk, hogy n\u00e9h\u00e1ny USB-adapter hib\u00e1s firmware-t futtat, \u00e9s le van z\u00e1rva, ez\u00e9rt v\u00e1s\u00e1rl\u00e1s el\u0151tt ellen\u0151rizd.) Az adapter haszn\u00e1lat\u00e1hoz a gazdag\u00e9p oper\u00e1ci\u00f3s rendszert is konfigur\u00e1lni kell. Ez \u00e1ltal\u00e1ban \u00fagy t\u00f6rt\u00e9nik, hogy l\u00e9trehozunk egy \u00faj /etc/network/interfaces.d/can0 nev\u0171 f\u00e1jlt a k\u00f6vetkez\u0151 tartalommal: auto can0 iface can0 can static bitrate 500000 up ifconfig $IFACE txqueuelen 128 Ne feledd, hogy a \"Raspberry Pi CAN sapka\" is megk\u00f6veteli a config.txt m\u00f3dos\u00edt\u00e1s\u00e1t . Az ellen\u00e1ll\u00e1sok megsz\u00fcntet\u00e9se \u00b6 A CAN-buszon k\u00e9t 120 ohmos ellen\u00e1ll\u00e1snak kell lennie a CANH \u00e9s CANL vezet\u00e9kek k\u00f6z\u00f6tt. Ide\u00e1lis esetben egy-egy ellen\u00e1ll\u00e1s a busz mindk\u00e9t v\u00e9g\u00e9n tal\u00e1lhat\u00f3. Vedd figyelembe, hogy egyes eszk\u00f6z\u00f6k be\u00e9p\u00edtett 120 ohmos ellen\u00e1ll\u00e1ssal rendelkeznek (p\u00e9ld\u00e1ul a \"Waveshare Raspberry Pi CAN sapka\" egy beforrasztott ellen\u00e1ll\u00e1ssal rendelkezik, amelyet nem lehet k\u00f6nnyen elt\u00e1vol\u00edtani). Egyes eszk\u00f6z\u00f6k egy\u00e1ltal\u00e1n nem tartalmaznak ellen\u00e1ll\u00e1st. M\u00e1s eszk\u00f6z\u00f6k rendelkeznek egy mechanizmussal az ellen\u00e1ll\u00e1s kiv\u00e1laszt\u00e1s\u00e1ra (\u00e1ltal\u00e1ban egy \"pin jumper\" csatlakoztat\u00e1s\u00e1val). Mindenk\u00e9ppen ellen\u0151rizd a CAN-buszon l\u00e9v\u0151 \u00f6sszes eszk\u00f6z kapcsol\u00e1si rajz\u00e1t, hogy a buszon k\u00e9t \u00e9s csak k\u00e9t 120 Ohm-os ellen\u00e1ll\u00e1s van-e. Az ellen\u00e1ll\u00e1sok \u00e9rt\u00e9k\u00e9nek tesztel\u00e9s\u00e9hez a nyomtat\u00f3t \u00e1ramtalan\u00edthatja, \u00e9s egy multi-m\u00e9terrel ellen\u0151rizheti a CANH \u00e9s CANL vezet\u00e9kek k\u00f6z\u00f6tti ellen\u00e1ll\u00e1st. Egy helyesen bek\u00f6t\u00f6tt CAN-buszon ~60 ohmot kell m\u00e9rnie. A canbus_uuid keres\u00e9se \u00faj mikrovez\u00e9rl\u0151kh\u00f6z \u00b6 A CAN-buszon l\u00e9v\u0151 minden mikrovez\u00e9rl\u0151h\u00f6z egyedi azonos\u00edt\u00f3t rendelnek a gy\u00e1ri chipazonos\u00edt\u00f3 alapj\u00e1n, amely minden mikrovez\u00e9rl\u0151be k\u00f3dolva van. Az egyes mikrokontrollerek eszk\u00f6zazonos\u00edt\u00f3j\u00e1nak megtal\u00e1l\u00e1s\u00e1hoz gy\u0151z\u0151dj meg arr\u00f3l, hogy a hardver megfelel\u0151en van bekapcsolva \u00e9s bek\u00f6tve, majd futtassa le: ~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0 Ha nem inicializ\u00e1lt CAN-eszk\u00f6z\u00f6ket \u00e9szlelsz, a fenti parancs a k\u00f6vetkez\u0151 sorokat fogja jelenteni: Tal\u00e1lt canbus_uuid=11aa22bb33cc, Alkalmaz\u00e1s: Klipper Minden eszk\u00f6z egyedi azonos\u00edt\u00f3val rendelkezik. A fenti p\u00e9ld\u00e1ban 11aa22bb33cc a mikrokontroller \"canbus_uuid\" azonos\u00edt\u00f3ja. Vedd figyelembe, hogy a canbus_query.py eszk\u00f6z csak az inicializ\u00e1latlan eszk\u00f6z\u00f6ket jelzi. Ha a Klipper (vagy egy hasonl\u00f3 eszk\u00f6z) konfigur\u00e1lja az eszk\u00f6zt, akkor az m\u00e1r nem jelenik meg a list\u00e1ban. A Klipper be\u00e1ll\u00edt\u00e1sa \u00b6 Friss\u00edtse a Klipper mcu konfigur\u00e1ci\u00f3t , hogy a CAN-buszon kereszt\u00fcl kommunik\u00e1ljon az eszk\u00f6zzel - p\u00e9ld\u00e1ul: [mcu my_can_mcu] canbus_uuid: 11aa22bb33cc USB \u00e9s CAN-busz k\u00f6z\u00f6tti h\u00edd \u00fczemm\u00f3d \u00b6 Egyes mikrovez\u00e9rl\u0151k t\u00e1mogatj\u00e1k az \"USB to CAN bus bridge\" \u00fczemm\u00f3d kiv\u00e1laszt\u00e1s\u00e1t a \"make menuconfig\" sor\u00e1n. Ez az \u00fczemm\u00f3d lehet\u0151v\u00e9 teheti, hogy egy mikrokontrollert \"USB CAN busz adapterk\u00e9nt\" \u00e9s Klipper csom\u00f3pontk\u00e9nt is haszn\u00e1ljunk. Amikor a Klipper ezt az \u00fczemm\u00f3dot haszn\u00e1lja, a mikrokontroller \"USB CAN busz adapterk\u00e9nt\" jelenik meg Linux alatt. Maga a \"Klipper bridge mcu\" \u00fagy jelenik meg, mintha ezen a CAN buszon lenne. A canbus_query.py seg\u00edts\u00e9g\u00e9vel azonos\u00edthat\u00f3 \u00e9s konfigur\u00e1lhat\u00f3, mint a t\u00f6bbi CAN buszos Klipper csom\u00f3pont. A t\u00f6bbi, t\u00e9nylegesen a CAN-buszon l\u00e9v\u0151 eszk\u00f6z mellett fog megjelenni. N\u00e9h\u00e1ny fontos megjegyz\u00e9s ennek az \u00fczemm\u00f3dnak a haszn\u00e1lat\u00e1hoz: A \"bridge mcu\" val\u00f3j\u00e1ban nem a CAN-buszon van. A hozz\u00e1 \u00e9rkez\u0151 \u00e9s t\u0151le \u00e9rkez\u0151 \u00fczenetek nem fogyasztanak s\u00e1vsz\u00e9less\u00e9get a CAN-buszon. Az MCU-t nem l\u00e1thatj\u00e1k m\u00e1s adapterek, amelyek esetleg a CAN-buszon vannak. A busszal val\u00f3 kommunik\u00e1ci\u00f3hoz sz\u00fcks\u00e9ges a can0 (vagy hasonl\u00f3) interf\u00e9sz konfigur\u00e1l\u00e1sa Linuxban. A Linux CAN-busz sebess\u00e9g\u00e9t \u00e9s a CAN-busz bit-id\u0151z\u00edt\u00e9si be\u00e1ll\u00edt\u00e1sait azonban a Klipper figyelmen k\u00edv\u00fcl hagyja. Jelenleg a CAN-busz frekvenci\u00e1j\u00e1t a \"make menuconfig\" futtat\u00e1sa sor\u00e1n kell megadni, \u00e9s a Linuxban megadott buszsebess\u00e9get figyelmen k\u00edv\u00fcl hagyjuk. Amikor a \"bridge mcu\" vissza\u00e1ll, a Linux letiltja a megfelel\u0151 can0 interf\u00e9szt. A FIRMWARE_RESTART \u00e9s a RESTART parancsok megfelel\u0151 kezel\u00e9se \u00e9rdek\u00e9ben aj\u00e1nlott az /etc/network/interfaces.d/can0 f\u00e1jlban az auto helyett az allow-hotplug parancsot haszn\u00e1lni. P\u00e9ld\u00e1ul: allow-hotplug can0 iface can0 can static bitrate 500000 up ifconfig $IFACE txqueuelen 128","title":"CANBUS"},{"location":"CANBUS.html#canbus","text":"Ez a dokumentum a Klipper CAN busz t\u00e1mogat\u00e1s\u00e1t \u00edrja le.","title":"CANBUS"},{"location":"CANBUS.html#eszkoz-hardver","text":"A Klipper jelenleg t\u00e1mogatja a CAN-t az stm32, same5x \u00e9s rp2040 chipeken. Ezenk\u00edv\u00fcl a mikrokontroller chipnek olyan lapk\u00e1n kell lennie, amely rendelkezik CAN csatlakoz\u00e1ssal. A CAN-hez val\u00f3 ford\u00edt\u00e1shoz futtassa a make menuconfig parancsot, \u00e9s v\u00e1laszd a \"CAN busz\" kommunik\u00e1ci\u00f3s interf\u00e9szt. V\u00e9g\u00fcl ford\u00edtsd le a mikrokontroller k\u00f3dj\u00e1t, \u00e9s \u00e9gesd a c\u00e9llapra.","title":"Eszk\u00f6z Hardver"},{"location":"CANBUS.html#gazdagep-hardver","text":"A CAN-busz haszn\u00e1lat\u00e1hoz sz\u00fcks\u00e9g van egy host-adapterre. Jelenleg k\u00e9t elterjedt lehet\u0151s\u00e9g van: Haszn\u00e1lj egy Waveshare Raspberry Pi CAN sapk\u00e1t vagy annak sz\u00e1mos kl\u00f3nja k\u00f6z\u00fcl egyet. Haszn\u00e1lj USB CAN-adaptert (p\u00e9ld\u00e1ul https://hacker-gadgets.com/product/cantact-usb-can-adapter/ ). Sz\u00e1mos k\u00fcl\u00f6nb\u00f6z\u0151 USB-CAN adapter \u00e1ll rendelkez\u00e9sre - az adapter kiv\u00e1laszt\u00e1sakor javasoljuk, hogy ellen\u0151rizd, hogy k\u00e9pes-e a candlelight firmware futtat\u00e1s\u00e1ra. (Sajnos azt tapasztaltuk, hogy n\u00e9h\u00e1ny USB-adapter hib\u00e1s firmware-t futtat, \u00e9s le van z\u00e1rva, ez\u00e9rt v\u00e1s\u00e1rl\u00e1s el\u0151tt ellen\u0151rizd.) Az adapter haszn\u00e1lat\u00e1hoz a gazdag\u00e9p oper\u00e1ci\u00f3s rendszert is konfigur\u00e1lni kell. Ez \u00e1ltal\u00e1ban \u00fagy t\u00f6rt\u00e9nik, hogy l\u00e9trehozunk egy \u00faj /etc/network/interfaces.d/can0 nev\u0171 f\u00e1jlt a k\u00f6vetkez\u0151 tartalommal: auto can0 iface can0 can static bitrate 500000 up ifconfig $IFACE txqueuelen 128 Ne feledd, hogy a \"Raspberry Pi CAN sapka\" is megk\u00f6veteli a config.txt m\u00f3dos\u00edt\u00e1s\u00e1t .","title":"Gazdag\u00e9p Hardver"},{"location":"CANBUS.html#az-ellenallasok-megszuntetese","text":"A CAN-buszon k\u00e9t 120 ohmos ellen\u00e1ll\u00e1snak kell lennie a CANH \u00e9s CANL vezet\u00e9kek k\u00f6z\u00f6tt. Ide\u00e1lis esetben egy-egy ellen\u00e1ll\u00e1s a busz mindk\u00e9t v\u00e9g\u00e9n tal\u00e1lhat\u00f3. Vedd figyelembe, hogy egyes eszk\u00f6z\u00f6k be\u00e9p\u00edtett 120 ohmos ellen\u00e1ll\u00e1ssal rendelkeznek (p\u00e9ld\u00e1ul a \"Waveshare Raspberry Pi CAN sapka\" egy beforrasztott ellen\u00e1ll\u00e1ssal rendelkezik, amelyet nem lehet k\u00f6nnyen elt\u00e1vol\u00edtani). Egyes eszk\u00f6z\u00f6k egy\u00e1ltal\u00e1n nem tartalmaznak ellen\u00e1ll\u00e1st. M\u00e1s eszk\u00f6z\u00f6k rendelkeznek egy mechanizmussal az ellen\u00e1ll\u00e1s kiv\u00e1laszt\u00e1s\u00e1ra (\u00e1ltal\u00e1ban egy \"pin jumper\" csatlakoztat\u00e1s\u00e1val). Mindenk\u00e9ppen ellen\u0151rizd a CAN-buszon l\u00e9v\u0151 \u00f6sszes eszk\u00f6z kapcsol\u00e1si rajz\u00e1t, hogy a buszon k\u00e9t \u00e9s csak k\u00e9t 120 Ohm-os ellen\u00e1ll\u00e1s van-e. Az ellen\u00e1ll\u00e1sok \u00e9rt\u00e9k\u00e9nek tesztel\u00e9s\u00e9hez a nyomtat\u00f3t \u00e1ramtalan\u00edthatja, \u00e9s egy multi-m\u00e9terrel ellen\u0151rizheti a CANH \u00e9s CANL vezet\u00e9kek k\u00f6z\u00f6tti ellen\u00e1ll\u00e1st. Egy helyesen bek\u00f6t\u00f6tt CAN-buszon ~60 ohmot kell m\u00e9rnie.","title":"Az ellen\u00e1ll\u00e1sok megsz\u00fcntet\u00e9se"},{"location":"CANBUS.html#a-canbus_uuid-keresese-uj-mikrovezerlokhoz","text":"A CAN-buszon l\u00e9v\u0151 minden mikrovez\u00e9rl\u0151h\u00f6z egyedi azonos\u00edt\u00f3t rendelnek a gy\u00e1ri chipazonos\u00edt\u00f3 alapj\u00e1n, amely minden mikrovez\u00e9rl\u0151be k\u00f3dolva van. Az egyes mikrokontrollerek eszk\u00f6zazonos\u00edt\u00f3j\u00e1nak megtal\u00e1l\u00e1s\u00e1hoz gy\u0151z\u0151dj meg arr\u00f3l, hogy a hardver megfelel\u0151en van bekapcsolva \u00e9s bek\u00f6tve, majd futtassa le: ~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0 Ha nem inicializ\u00e1lt CAN-eszk\u00f6z\u00f6ket \u00e9szlelsz, a fenti parancs a k\u00f6vetkez\u0151 sorokat fogja jelenteni: Tal\u00e1lt canbus_uuid=11aa22bb33cc, Alkalmaz\u00e1s: Klipper Minden eszk\u00f6z egyedi azonos\u00edt\u00f3val rendelkezik. A fenti p\u00e9ld\u00e1ban 11aa22bb33cc a mikrokontroller \"canbus_uuid\" azonos\u00edt\u00f3ja. Vedd figyelembe, hogy a canbus_query.py eszk\u00f6z csak az inicializ\u00e1latlan eszk\u00f6z\u00f6ket jelzi. Ha a Klipper (vagy egy hasonl\u00f3 eszk\u00f6z) konfigur\u00e1lja az eszk\u00f6zt, akkor az m\u00e1r nem jelenik meg a list\u00e1ban.","title":"A canbus_uuid keres\u00e9se \u00faj mikrovez\u00e9rl\u0151kh\u00f6z"},{"location":"CANBUS.html#a-klipper-beallitasa","text":"Friss\u00edtse a Klipper mcu konfigur\u00e1ci\u00f3t , hogy a CAN-buszon kereszt\u00fcl kommunik\u00e1ljon az eszk\u00f6zzel - p\u00e9ld\u00e1ul: [mcu my_can_mcu] canbus_uuid: 11aa22bb33cc","title":"A Klipper be\u00e1ll\u00edt\u00e1sa"},{"location":"CANBUS.html#usb-es-can-busz-kozotti-hid-uzemmod","text":"Egyes mikrovez\u00e9rl\u0151k t\u00e1mogatj\u00e1k az \"USB to CAN bus bridge\" \u00fczemm\u00f3d kiv\u00e1laszt\u00e1s\u00e1t a \"make menuconfig\" sor\u00e1n. Ez az \u00fczemm\u00f3d lehet\u0151v\u00e9 teheti, hogy egy mikrokontrollert \"USB CAN busz adapterk\u00e9nt\" \u00e9s Klipper csom\u00f3pontk\u00e9nt is haszn\u00e1ljunk. Amikor a Klipper ezt az \u00fczemm\u00f3dot haszn\u00e1lja, a mikrokontroller \"USB CAN busz adapterk\u00e9nt\" jelenik meg Linux alatt. Maga a \"Klipper bridge mcu\" \u00fagy jelenik meg, mintha ezen a CAN buszon lenne. A canbus_query.py seg\u00edts\u00e9g\u00e9vel azonos\u00edthat\u00f3 \u00e9s konfigur\u00e1lhat\u00f3, mint a t\u00f6bbi CAN buszos Klipper csom\u00f3pont. A t\u00f6bbi, t\u00e9nylegesen a CAN-buszon l\u00e9v\u0151 eszk\u00f6z mellett fog megjelenni. N\u00e9h\u00e1ny fontos megjegyz\u00e9s ennek az \u00fczemm\u00f3dnak a haszn\u00e1lat\u00e1hoz: A \"bridge mcu\" val\u00f3j\u00e1ban nem a CAN-buszon van. A hozz\u00e1 \u00e9rkez\u0151 \u00e9s t\u0151le \u00e9rkez\u0151 \u00fczenetek nem fogyasztanak s\u00e1vsz\u00e9less\u00e9get a CAN-buszon. Az MCU-t nem l\u00e1thatj\u00e1k m\u00e1s adapterek, amelyek esetleg a CAN-buszon vannak. A busszal val\u00f3 kommunik\u00e1ci\u00f3hoz sz\u00fcks\u00e9ges a can0 (vagy hasonl\u00f3) interf\u00e9sz konfigur\u00e1l\u00e1sa Linuxban. A Linux CAN-busz sebess\u00e9g\u00e9t \u00e9s a CAN-busz bit-id\u0151z\u00edt\u00e9si be\u00e1ll\u00edt\u00e1sait azonban a Klipper figyelmen k\u00edv\u00fcl hagyja. Jelenleg a CAN-busz frekvenci\u00e1j\u00e1t a \"make menuconfig\" futtat\u00e1sa sor\u00e1n kell megadni, \u00e9s a Linuxban megadott buszsebess\u00e9get figyelmen k\u00edv\u00fcl hagyjuk. Amikor a \"bridge mcu\" vissza\u00e1ll, a Linux letiltja a megfelel\u0151 can0 interf\u00e9szt. A FIRMWARE_RESTART \u00e9s a RESTART parancsok megfelel\u0151 kezel\u00e9se \u00e9rdek\u00e9ben aj\u00e1nlott az /etc/network/interfaces.d/can0 f\u00e1jlban az auto helyett az allow-hotplug parancsot haszn\u00e1lni. P\u00e9ld\u00e1ul: allow-hotplug can0 iface can0 can static bitrate 500000 up ifconfig $IFACE txqueuelen 128","title":"USB \u00e9s CAN-busz k\u00f6z\u00f6tti h\u00edd \u00fczemm\u00f3d"},{"location":"CANBUS_protocol.html","text":"CANBUS protokoll \u00b6 Ez a dokumentum a Klipper \u00e1ltal a CAN-buszon kereszt\u00fcl t\u00f6rt\u00e9n\u0151 kommunik\u00e1ci\u00f3hoz haszn\u00e1lt protokollt \u00edrja le. A Klipper CAN-busszal val\u00f3 konfigur\u00e1l\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a c\u00edm\u0171 dokumentumot. Mikrokontroller azonos\u00edt\u00f3 hozz\u00e1rendel\u00e9se \u00b6 A Klipper csak a CAN 2.0A szabv\u00e1nyos m\u00e9ret\u0171 CAN-busz csomagokat haszn\u00e1lja, amelyek 8 adatb\u00e1jtra \u00e9s egy 11 bites CAN-busz azonos\u00edt\u00f3ra korl\u00e1toz\u00f3dnak. A hat\u00e9kony kommunik\u00e1ci\u00f3 t\u00e1mogat\u00e1sa \u00e9rdek\u00e9ben minden mikrokontrollerhez fut\u00e1skor egy egyedi, 1 b\u00e1jtos CAN-busz nodeid ( canbus_nodeid ) van rendelve az \u00e1ltal\u00e1nos Klipper parancs- \u00e9s v\u00e1laszforgalomhoz. A gazdag\u00e9pr\u0151l a mikrokontroller fel\u00e9 ir\u00e1nyul\u00f3 Klipper-parancs\u00fczenetek a canbus_nodeid * 2 + 256 CAN-busz azonos\u00edt\u00f3t haszn\u00e1lj\u00e1k, m\u00edg a mikrokontrollerr\u0151l a gazdag\u00e9p fel\u00e9 ir\u00e1nyul\u00f3 Klipper-v\u00e1lasz\u00fczenetek a canbus_nodeid * 2 + 256 + 1 azonos\u00edt\u00f3t. Minden mikrokontroller rendelkezik egy gy\u00e1rilag hozz\u00e1rendelt egyedi chipazonos\u00edt\u00f3val, amelyet az azonos\u00edt\u00f3 hozz\u00e1rendel\u00e9se sor\u00e1n haszn\u00e1lnak. Ez az azonos\u00edt\u00f3 meghaladhatja egy CAN csomag hossz\u00e1t, ez\u00e9rt egy hash f\u00fcggv\u00e9nyt haszn\u00e1lunk arra, hogy a gy\u00e1ri azonos\u00edt\u00f3b\u00f3l egy egyedi 6 b\u00e1jtos azonos\u00edt\u00f3t ( canbus_uuid ) gener\u00e1ljunk. Rendszergazdai \u00fczenetek \u00b6 Az rendszergazdai \u00fczeneteket az azonos\u00edt\u00f3 hozz\u00e1rendel\u00e9s\u00e9hez haszn\u00e1lj\u00e1k. A gazdatestt\u0151l a mikrokontrollerhez k\u00fcld\u00f6tt admin \u00fczenetek a CAN-buszon a 0x3f0 , a mikrokontrollerr\u0151l a gazdatesthez k\u00fcld\u00f6tt \u00fczenetek pedig a CAN-buszon a 0x3f1 azonos\u00edt\u00f3t haszn\u00e1lj\u00e1k. Minden mikrovez\u00e9rl\u0151 a 0x3f0 azonos\u00edt\u00f3n fogadja az \u00fczeneteket; ez az azonos\u00edt\u00f3 egy \"broadcast c\u00edm\" -nek tekinthet\u0151. CMD_QUERY_UNASSIGNED \u00fczenet \u00b6 Ez a parancs lek\u00e9rdezi az \u00f6sszes olyan mikrovez\u00e9rl\u0151t, amely m\u00e9g nem kapott canbus_nodeid azonos\u00edt\u00f3t. A nem hozz\u00e1rendelt mikrovez\u00e9rl\u0151k RESP_NEED_NODEID v\u00e1lasz\u00fczenettel v\u00e1laszolnak. A CMD_QUERY_UNASSIGNED \u00fczenet form\u00e1tuma: <1-byte message_id = 0x00> CMD_SET_KLIPPER_NODEID \u00fczenet \u00b6 Ez a parancs hozz\u00e1rendel egy canbus_nodeid mikrokontrollert egy adott canbus_uuid mikrokontrollerhez. A CMD_SET_KLIPPER_NODEID \u00fczenet form\u00e1tuma: <1-byte message_id = 0x01><6-byte canbus_uuid><1-byte canbus_nodeid>. RESP_NEED_NODEID \u00fczenet \u00b6 A RESP_NEED_NODEID \u00fczenet form\u00e1tuma: <1-byte message_id = 0x20><6-byte canbus_uuid><1-byte set_klipper_nodeid = 0x01>. Adatcsomagok \u00b6 A CMD_SET_KLIPPER_NODEID paranccsal nodeid-ot kapott mikrokontroller adatcsomagokat k\u00fcldhet \u00e9s fogadhat. A csom\u00f3pontot haszn\u00e1l\u00f3 \u00fczenetek csomagadatai ( canbus_nodeid * 2 + 256 ) egyszer\u0171en egy pufferbe ker\u00fclnek, \u00e9s amikor egy teljes mcu protokoll \u00fczenet tal\u00e1lhat\u00f3, annak tartalm\u00e1t elemezz\u00fck \u00e9s feldolgozzuk. Az adatokat b\u00e1jtfolyamk\u00e9nt kezelik. Nem k\u00f6vetelm\u00e9ny, hogy a Klipper \u00fczenetblokk kezdete egyezzen a CAN-buszcsomag kezdet\u00e9vel. Hasonl\u00f3k\u00e9ppen, az MCU protokoll \u00fczenetv\u00e1laszok a mikrokontrollerr\u0151l a gazdag\u00e9phez \u00fagy ker\u00fclnek elk\u00fcld\u00e9sre, hogy az \u00fczenetadatokat egy vagy t\u00f6bb csomagba m\u00e1solj\u00e1k a csom\u00f3pontnak a CAN-buszon val\u00f3 \u00e1tvitel\u00e9re vonatkoz\u00f3 azonos\u00edt\u00f3j\u00e1val ( canbus_nodeid * 2 + 256 + 1 ).","title":"CANBUS protokoll"},{"location":"CANBUS_protocol.html#canbus-protokoll","text":"Ez a dokumentum a Klipper \u00e1ltal a CAN-buszon kereszt\u00fcl t\u00f6rt\u00e9n\u0151 kommunik\u00e1ci\u00f3hoz haszn\u00e1lt protokollt \u00edrja le. A Klipper CAN-busszal val\u00f3 konfigur\u00e1l\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a c\u00edm\u0171 dokumentumot.","title":"CANBUS protokoll"},{"location":"CANBUS_protocol.html#mikrokontroller-azonosito-hozzarendelese","text":"A Klipper csak a CAN 2.0A szabv\u00e1nyos m\u00e9ret\u0171 CAN-busz csomagokat haszn\u00e1lja, amelyek 8 adatb\u00e1jtra \u00e9s egy 11 bites CAN-busz azonos\u00edt\u00f3ra korl\u00e1toz\u00f3dnak. A hat\u00e9kony kommunik\u00e1ci\u00f3 t\u00e1mogat\u00e1sa \u00e9rdek\u00e9ben minden mikrokontrollerhez fut\u00e1skor egy egyedi, 1 b\u00e1jtos CAN-busz nodeid ( canbus_nodeid ) van rendelve az \u00e1ltal\u00e1nos Klipper parancs- \u00e9s v\u00e1laszforgalomhoz. A gazdag\u00e9pr\u0151l a mikrokontroller fel\u00e9 ir\u00e1nyul\u00f3 Klipper-parancs\u00fczenetek a canbus_nodeid * 2 + 256 CAN-busz azonos\u00edt\u00f3t haszn\u00e1lj\u00e1k, m\u00edg a mikrokontrollerr\u0151l a gazdag\u00e9p fel\u00e9 ir\u00e1nyul\u00f3 Klipper-v\u00e1lasz\u00fczenetek a canbus_nodeid * 2 + 256 + 1 azonos\u00edt\u00f3t. Minden mikrokontroller rendelkezik egy gy\u00e1rilag hozz\u00e1rendelt egyedi chipazonos\u00edt\u00f3val, amelyet az azonos\u00edt\u00f3 hozz\u00e1rendel\u00e9se sor\u00e1n haszn\u00e1lnak. Ez az azonos\u00edt\u00f3 meghaladhatja egy CAN csomag hossz\u00e1t, ez\u00e9rt egy hash f\u00fcggv\u00e9nyt haszn\u00e1lunk arra, hogy a gy\u00e1ri azonos\u00edt\u00f3b\u00f3l egy egyedi 6 b\u00e1jtos azonos\u00edt\u00f3t ( canbus_uuid ) gener\u00e1ljunk.","title":"Mikrokontroller azonos\u00edt\u00f3 hozz\u00e1rendel\u00e9se"},{"location":"CANBUS_protocol.html#rendszergazdai-uzenetek","text":"Az rendszergazdai \u00fczeneteket az azonos\u00edt\u00f3 hozz\u00e1rendel\u00e9s\u00e9hez haszn\u00e1lj\u00e1k. A gazdatestt\u0151l a mikrokontrollerhez k\u00fcld\u00f6tt admin \u00fczenetek a CAN-buszon a 0x3f0 , a mikrokontrollerr\u0151l a gazdatesthez k\u00fcld\u00f6tt \u00fczenetek pedig a CAN-buszon a 0x3f1 azonos\u00edt\u00f3t haszn\u00e1lj\u00e1k. Minden mikrovez\u00e9rl\u0151 a 0x3f0 azonos\u00edt\u00f3n fogadja az \u00fczeneteket; ez az azonos\u00edt\u00f3 egy \"broadcast c\u00edm\" -nek tekinthet\u0151.","title":"Rendszergazdai \u00fczenetek"},{"location":"CANBUS_protocol.html#cmd_query_unassigned-uzenet","text":"Ez a parancs lek\u00e9rdezi az \u00f6sszes olyan mikrovez\u00e9rl\u0151t, amely m\u00e9g nem kapott canbus_nodeid azonos\u00edt\u00f3t. A nem hozz\u00e1rendelt mikrovez\u00e9rl\u0151k RESP_NEED_NODEID v\u00e1lasz\u00fczenettel v\u00e1laszolnak. A CMD_QUERY_UNASSIGNED \u00fczenet form\u00e1tuma: <1-byte message_id = 0x00>","title":"CMD_QUERY_UNASSIGNED \u00fczenet"},{"location":"CANBUS_protocol.html#cmd_set_klipper_nodeid-uzenet","text":"Ez a parancs hozz\u00e1rendel egy canbus_nodeid mikrokontrollert egy adott canbus_uuid mikrokontrollerhez. A CMD_SET_KLIPPER_NODEID \u00fczenet form\u00e1tuma: <1-byte message_id = 0x01><6-byte canbus_uuid><1-byte canbus_nodeid>.","title":"CMD_SET_KLIPPER_NODEID \u00fczenet"},{"location":"CANBUS_protocol.html#resp_need_nodeid-uzenet","text":"A RESP_NEED_NODEID \u00fczenet form\u00e1tuma: <1-byte message_id = 0x20><6-byte canbus_uuid><1-byte set_klipper_nodeid = 0x01>.","title":"RESP_NEED_NODEID \u00fczenet"},{"location":"CANBUS_protocol.html#adatcsomagok","text":"A CMD_SET_KLIPPER_NODEID paranccsal nodeid-ot kapott mikrokontroller adatcsomagokat k\u00fcldhet \u00e9s fogadhat. A csom\u00f3pontot haszn\u00e1l\u00f3 \u00fczenetek csomagadatai ( canbus_nodeid * 2 + 256 ) egyszer\u0171en egy pufferbe ker\u00fclnek, \u00e9s amikor egy teljes mcu protokoll \u00fczenet tal\u00e1lhat\u00f3, annak tartalm\u00e1t elemezz\u00fck \u00e9s feldolgozzuk. Az adatokat b\u00e1jtfolyamk\u00e9nt kezelik. Nem k\u00f6vetelm\u00e9ny, hogy a Klipper \u00fczenetblokk kezdete egyezzen a CAN-buszcsomag kezdet\u00e9vel. Hasonl\u00f3k\u00e9ppen, az MCU protokoll \u00fczenetv\u00e1laszok a mikrokontrollerr\u0151l a gazdag\u00e9phez \u00fagy ker\u00fclnek elk\u00fcld\u00e9sre, hogy az \u00fczenetadatokat egy vagy t\u00f6bb csomagba m\u00e1solj\u00e1k a csom\u00f3pontnak a CAN-buszon val\u00f3 \u00e1tvitel\u00e9re vonatkoz\u00f3 azonos\u00edt\u00f3j\u00e1val ( canbus_nodeid * 2 + 256 + 1 ).","title":"Adatcsomagok"},{"location":"CONTRIBUTING.html","text":"Hozz\u00e1j\u00e1rul\u00e1s a Klipperhez \u00b6 K\u00f6sz\u00f6nj\u00fck, hogy hozz\u00e1j\u00e1rult a Klipperhez! Ez a dokumentum le\u00edrja a Klipper v\u00e1ltoztat\u00e1sokhoz val\u00f3 hozz\u00e1j\u00e1rul\u00e1s folyamat\u00e1t. K\u00e9rj\u00fck, tekintsd meg a kapcsolat oldalt a probl\u00e9ma bejelent\u00e9s\u00e9vel kapcsolatos inform\u00e1ci\u00f3k\u00e9rt vagy a fejleszt\u0151kkel val\u00f3 kapcsolatfelv\u00e9telre vonatkoz\u00f3 r\u00e9szletek\u00e9rt. A hozz\u00e1j\u00e1rul\u00e1si folyamat \u00e1ttekint\u00e9se \u00b6 A Klipperhez val\u00f3 hozz\u00e1j\u00e1rul\u00e1s \u00e1ltal\u00e1ban egy magas szint\u0171 folyamatot k\u00f6vet: A beny\u00fajt\u00f3 egy GitHub Pull Request l\u00e9trehoz\u00e1s\u00e1val kezdi, amikor egy beadv\u00e1ny k\u00e9szen \u00e1ll a sz\u00e9les k\u00f6r\u0171 telep\u00edt\u00e9sre. Amikor egy b\u00edr\u00e1l\u00f3 el\u00e9rhet\u0151 a review beny\u00fajt\u00e1s\u00e1hoz, akkor hozz\u00e1rendeli mag\u00e1t a Pull Requesthez a GitHubon. A fel\u00fclvizsg\u00e1lat c\u00e9lja a hib\u00e1k keres\u00e9se \u00e9s annak ellen\u0151rz\u00e9se, hogy a beadv\u00e1ny k\u00f6veti-e a dokument\u00e1lt ir\u00e1nyelveket. Sikeres fel\u00fclvizsg\u00e1lat ut\u00e1n a fel\u00fclvizsg\u00e1l\u00f3 \"j\u00f3v\u00e1hagyja a fel\u00fclvizsg\u00e1latot\" a GitHubon, \u00e9s egy karbantart\u00f3 \u00e1tvezeti a m\u00f3dos\u00edt\u00e1st a Klipper master \u00e1g\u00e1ba. Ha fejleszt\u00e9seken dolgozol, fontold meg egy t\u00e9ma ind\u00edt\u00e1s\u00e1t (vagy a t\u00e9m\u00e1hoz val\u00f3 hozz\u00e1j\u00e1rul\u00e1st) a Klipper Discourse oldalon. A f\u00f3rumon foly\u00f3 vita jav\u00edthatja a fejleszt\u00e9si munka l\u00e1that\u00f3s\u00e1g\u00e1t, \u00e9s vonzhat m\u00e1sokat is, akik \u00e9rdekl\u0151dnek az \u00faj munka tesztel\u00e9se ir\u00e1nt. Mire sz\u00e1m\u00edthatunk egy fel\u00fclvizsg\u00e1lat sor\u00e1n \u00b6 A Klipperhez val\u00f3 hozz\u00e1j\u00e1rul\u00e1sokat az egyes\u00edt\u00e9s el\u0151tt fel\u00fclvizsg\u00e1lj\u00e1k. A fel\u00fclvizsg\u00e1lati folyamat els\u0151dleges c\u00e9lja a hib\u00e1k ellen\u0151rz\u00e9se, valamint annak ellen\u0151rz\u00e9se, hogy a beadv\u00e1ny megfelel-e a Klipper dokument\u00e1ci\u00f3j\u00e1ban meghat\u00e1rozott ir\u00e1nyelveknek. Term\u00e9szetesen egy feladatot sokf\u00e9lek\u00e9ppen lehet elv\u00e9gezni; a fel\u00fclvizsg\u00e1lat c\u00e9lja nem az, hogy megvitassa a \"legjobb\" v\u00e9grehajt\u00e1st. Ahol lehets\u00e9ges, a fel\u00fclvizsg\u00e1lati megbesz\u00e9l\u00e9sek ink\u00e1bb a t\u00e9nyekre \u00e9s a m\u00e9r\u00e9sekre \u00f6sszpontos\u00edtanak. A beadv\u00e1nyok t\u00f6bbs\u00e9ge visszajelz\u00e9st eredm\u00e9nyez egy fel\u00fclvizsg\u00e1latr\u00f3l. K\u00e9sz\u00fclj\u00f6n fel a visszajelz\u00e9sek beszerz\u00e9s\u00e9re, tov\u00e1bbi r\u00e9szletek megad\u00e1s\u00e1ra \u00e9s sz\u00fcks\u00e9g eset\u00e9n a beadv\u00e1ny friss\u00edt\u00e9s\u00e9re. Gyakori dolgok, amiket a b\u00edr\u00e1l\u00f3 keres: Hib\u00e1tlan-e a beadv\u00e1ny, \u00e9s k\u00e9szen \u00e1ll-e a sz\u00e9les k\u00f6r\u0171 bevezet\u00e9sre?A beny\u00fajt\u00f3knak a beny\u00fajt\u00e1s el\u0151tt tesztelni\u00fck kell a v\u00e1ltoztat\u00e1sokat. A b\u00edr\u00e1l\u00f3k keresik a hib\u00e1kat, de \u00e1ltal\u00e1ban nem tesztelik a bek\u00fcld\u00f6tt anyagokat. Egy elfogadott beadv\u00e1nyt gyakran az elfogad\u00e1st k\u00f6vet\u0151 n\u00e9h\u00e1ny h\u00e9ten bel\u00fcl t\u00f6bb ezer nyomtat\u00f3hoz juttatnak el. A beadv\u00e1nyok min\u0151s\u00e9g\u00e9t ez\u00e9rt priorit\u00e1snak tekintik. A f\u0151 Klipper3d/klipper GitHub t\u00e1rol\u00f3 nem fogad el k\u00eds\u00e9rleti munk\u00e1t. A bek\u00fcld\u0151knek a k\u00eds\u00e9rletez\u00e9st, hibakeres\u00e9st \u00e9s tesztel\u00e9st a saj\u00e1t t\u00e1rol\u00f3jukban kell elv\u00e9gezni\u00fck. A Klipper Discourse szerver j\u00f3 hely arra, hogy felh\u00edvjuk a figyelmet az \u00faj munk\u00e1ra, \u00e9s megtal\u00e1ljuk azokat a felhaszn\u00e1l\u00f3kat, akiket \u00e9rdekel a val\u00f3s visszajelz\u00e9s. A beadv\u00e1nyoknak \u00e1t kell menni\u00fck az \u00f6sszes regresszi\u00f3s teszteseten . A k\u00f3dban l\u00e9v\u0151 hiba jav\u00edt\u00e1sakor a beny\u00fajt\u00f3knak \u00e1ltal\u00e1ban v\u00e9ve tiszt\u00e1ban kell lenni\u00fck a hiba kiv\u00e1lt\u00f3 ok\u00e1val, \u00e9s a jav\u00edt\u00e1snak ezt a kiv\u00e1lt\u00f3 okot kell megc\u00e9loznia. A bek\u00fcld\u00f6tt k\u00f3dok nem tartalmazhatnak t\u00falzottan sok hibakeres\u00e9si k\u00f3dot, hibakeres\u00e9si opci\u00f3t vagy fut\u00e1sidej\u0171 hibakeres\u00e9si napl\u00f3z\u00e1st. A k\u00f3dbeadv\u00e1nyokhoz f\u0171z\u00f6tt megjegyz\u00e9seknek a k\u00f3d karbantart\u00e1s\u00e1nak jav\u00edt\u00e1s\u00e1ra kell \u00f6sszpontos\u00edtaniuk. A beadv\u00e1nyok nem tartalmazhatnak \"kikomment\u00e1lt k\u00f3dot\" vagy t\u00falzottan sok, kor\u00e1bbi megval\u00f3s\u00edt\u00e1sokat le\u00edr\u00f3 megjegyz\u00e9st. Nem lehetnek t\u00falzott m\u00e9rt\u00e9k\u0171 \"todo\" megjegyz\u00e9sek. A dokument\u00e1ci\u00f3 friss\u00edt\u00e9sei nem jelenthetik ki, hogy azok \"folyamatban l\u00e9v\u0151 munk\u00e1k\". A beadott p\u00e1ly\u00e1zat \"nagy hat\u00e1s\u00fa\" el\u0151nyt jelent-e a val\u00f3s felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra, akik val\u00f3s feladatokat l\u00e1tnak el?A b\u00edr\u00e1l\u00f3knak - legal\u00e1bbis a saj\u00e1t fej\u00fckben - nagyj\u00e1b\u00f3l meg kell hat\u00e1rozniuk, hogy \"ki a c\u00e9lk\u00f6z\u00f6ns\u00e9g\", hogy \"mekkora a c\u00e9lk\u00f6z\u00f6ns\u00e9g\", hogy \"milyen el\u0151ny\u00f6kh\u00f6z\" jutnak, hogy \"az el\u0151ny\u00f6ket hogyan m\u00e9rik\", \u00e9s hogy \"milyen eredm\u00e9nyeket hoznak ezek a m\u00e9r\u00e9si tesztek\". A legt\u00f6bb esetben ez mind a beny\u00fajt\u00f3, mind a b\u00edr\u00e1l\u00f3 sz\u00e1m\u00e1ra nyilv\u00e1nval\u00f3, \u00e9s a b\u00edr\u00e1lat sor\u00e1n nem ker\u00fcl kifejezett kijelent\u00e9sre. A mester Klipper \u00e1gba k\u00fcld\u00f6tt beadv\u00e1nyok v\u00e1rhat\u00f3an figyelemre m\u00e9lt\u00f3 c\u00e9lk\u00f6z\u00f6ns\u00e9ggel rendelkeznek. \u00c1ltal\u00e1nos \"\u00f6k\u00f6lszab\u00e1lyk\u00e9nt\" a beadv\u00e1nyoknak legal\u00e1bb 100 val\u00f3s felhaszn\u00e1l\u00f3b\u00f3l \u00e1ll\u00f3 felhaszn\u00e1l\u00f3i b\u00e1zist kell megc\u00e9lozniuk. Ha egy b\u00edr\u00e1l\u00f3 r\u00e9szleteket k\u00e9r egy beadv\u00e1ny \"haszn\u00e1r\u00f3l\", k\u00e9rj\u00fck, ne tekintsd ezt kritik\u00e1nak. Az, hogy k\u00e9pesek legy\u00fcnk meg\u00e9rteni egy v\u00e1ltoztat\u00e1s val\u00f3s el\u0151nyeit, a fel\u00fclvizsg\u00e1lat term\u00e9szetes r\u00e9sze. Az el\u0151ny\u00f6k megvitat\u00e1sakor el\u0151ny\u00f6sebb a \"t\u00e9nyek \u00e9s m\u00e9r\u00e9sek\" megvitat\u00e1sa. \u00c1ltal\u00e1ban v\u00e9ve a b\u00edr\u00e1l\u00f3k nem a \"valaki hasznosnak tal\u00e1lhatja az X opci\u00f3t\", sem pedig a \"ez a beadv\u00e1ny olyan funkci\u00f3t ad hozz\u00e1, amelyet az X firmware val\u00f3s\u00edt meg\" form\u00e1j\u00fa v\u00e1laszokat keresik. Ehelyett \u00e1ltal\u00e1ban el\u0151ny\u00f6sebb, ha r\u00e9szletesen t\u00e1rgyalj\u00e1k, hogy a min\u0151s\u00e9gjavul\u00e1st hogyan m\u00e9rt\u00e9k, \u00e9s milyen eredm\u00e9nyeket hoztak ezek a m\u00e9r\u00e9sek - p\u00e9ld\u00e1ul: \"az Acme X1000 nyomtat\u00f3kon v\u00e9gzett tesztek a ...k\u00e9pen l\u00e1that\u00f3 javul\u00f3 sarkokat mutatnak \", vagy p\u00e9ld\u00e1ul \"az X val\u00f3s t\u00e1rgy nyomtat\u00e1si ideje egy Foomatic X900 nyomtat\u00f3n 4 \u00f3r\u00e1r\u00f3l 3,5 \u00f3r\u00e1ra cs\u00f6kkent\". Mag\u00e1t\u00f3l \u00e9rtet\u0151dik, hogy az ilyen t\u00edpus\u00fa tesztel\u00e9s jelent\u0151s id\u0151t \u00e9s er\u0151fesz\u00edt\u00e9st ig\u00e9nyel. A Klipper legjelent\u0151sebb funkci\u00f3inak n\u00e9melyike h\u00f3napokig tartott a megbesz\u00e9l\u00e9sek, \u00e1tdolgoz\u00e1sok, tesztel\u00e9sek \u00e9s dokument\u00e1ci\u00f3k sor\u00e1n, miel\u0151tt beolvadt a master \u00e1gba. Minden \u00faj modulnak, konfigur\u00e1ci\u00f3s opci\u00f3nak, parancsnak, parancsparam\u00e9ternek \u00e9s dokumentumnak \"nagy hat\u00e1ssal\" kell rendelkeznie. Nem akarjuk a felhaszn\u00e1l\u00f3kat olyan opci\u00f3kkal terhelni, amelyeket nem tudnak \u00e9sszer\u0171en konfigur\u00e1lni, \u00e9s nem akarjuk \u0151ket olyan opci\u00f3kkal terhelni, amelyek nem ny\u00fajtanak sz\u00e1mottev\u0151 el\u0151nyt. A b\u00edr\u00e1l\u00f3 k\u00e9rhet pontos\u00edt\u00e1st arr\u00f3l, hogy a felhaszn\u00e1l\u00f3nak hogyan kell be\u00e1ll\u00edtania egy opci\u00f3t - az ide\u00e1lis v\u00e1lasz tartalmazza a folyamat r\u00e9szleteit - p\u00e9ld\u00e1ul: \"a MegaX500 felhaszn\u00e1l\u00f3inak az X opci\u00f3t 99,3-ra kell be\u00e1ll\u00edtaniuk, m\u00edg az Elite100Y felhaszn\u00e1l\u00f3inak az X opci\u00f3t a ...\" elj\u00e1r\u00e1ssal kell kalibr\u00e1lniuk...\". Ha az opci\u00f3 c\u00e9lja, hogy a k\u00f3dot modul\u00e1risabb\u00e1 tegye, akkor ink\u00e1bb haszn\u00e1lj k\u00f3dkonstansokat a felhaszn\u00e1l\u00f3val szemben\u00e9z\u0151 konfigur\u00e1ci\u00f3s opci\u00f3k helyett. Az \u00faj modulok, \u00faj opci\u00f3k \u00e9s \u00faj param\u00e9terek nem biztos\u00edthatnak hasonl\u00f3 funkci\u00f3kat a megl\u00e9v\u0151 modulokhoz - ha a k\u00fcl\u00f6nbs\u00e9gek \u00f6nk\u00e9nyesek, akkor ink\u00e1bb a megl\u00e9v\u0151 rendszert kell haszn\u00e1lni, vagy a megl\u00e9v\u0151 k\u00f3dot kell \u00e1talak\u00edtani. A beadv\u00e1ny szerz\u0151i joga egy\u00e9rtelm\u0171, nem h\u00e1lap\u00e9nz \u00e9s \u00f6sszeegyeztethet\u0151?Az \u00faj C \u00e9s Python f\u00e1jloknak egy\u00e9rtelm\u0171 szerz\u0151i jogi nyilatkozatot kell tartalmazniuk. Az el\u0151nyben r\u00e9szes\u00edtett form\u00e1tumot l\u00e1sd a megl\u00e9v\u0151 f\u00e1jlokban. A megl\u00e9v\u0151 f\u00e1jl szerz\u0151i jog\u00e1nak deklar\u00e1l\u00e1sa a f\u00e1jl kisebb m\u00f3dos\u00edt\u00e1sai eset\u00e9n elhanyagolhat\u00f3. A harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 k\u00f3dnak kompatibilisnek kell lennie a Klipper licenszel (GNU GPLv3). A nagyobb, harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 k\u00f3dkieg\u00e9sz\u00edt\u00e9seket a lib/ k\u00f6nyvt\u00e1rba kell helyezni (\u00e9s a lib/README k\u00f6nyvt\u00e1rban le\u00edrt form\u00e1tumot kell k\u00f6vetni). A bek\u00fcld\u0151knek meg kell adniuk egy Signed-off-by line sort a teljes val\u00f3di nev\u00fckkel. Ez azt jelzi, hogy a beny\u00fajt\u00f3 egyet\u00e9rt a fejleszt\u0151i sz\u00e1rmaz\u00e1si igazol\u00e1ssal . A beny\u00fajt\u00e1s k\u00f6veti a Klipper dokument\u00e1ci\u00f3ban meghat\u00e1rozott ir\u00e1nyelveket?K\u00fcl\u00f6n\u00f6sen a k\u00f3dnak a , a konfigur\u00e1ci\u00f3s f\u00e1jloknak pedig a c\u00edm\u0171 dokumentumban tal\u00e1lhat\u00f3 ir\u00e1nyelveket kell k\u00f6vetni\u00fck. A Klipper dokument\u00e1ci\u00f3 friss\u00edtve van az \u00faj v\u00e1ltoz\u00e1soknak megfelel\u0151en?Legal\u00e1bb a referenciadokument\u00e1ci\u00f3t kell friss\u00edteni a k\u00f3d megfelel\u0151 v\u00e1ltoztat\u00e1saival: Minden parancsot \u00e9s parancsparam\u00e9tert a dokumentumban kell dokument\u00e1lni. Minden felhaszn\u00e1l\u00f3 el\u0151tt \u00e1ll\u00f3 modult \u00e9s azok konfigur\u00e1ci\u00f3s param\u00e9tereit dokument\u00e1lni kell a f\u00e1jlban. Minden export\u00e1lt \"\u00e1llapotv\u00e1ltoz\u00f3t\" dokument\u00e1lni kell . Minden \u00faj \"webhooks\" \u00e9s param\u00e9tereiket dokument\u00e1lni kell . Minden olyan m\u00f3dos\u00edt\u00e1s, amely nem visszafel\u00e9 kompatibilis m\u00f3dos\u00edt\u00e1st hajt v\u00e9gre egy parancs vagy konfigur\u00e1ci\u00f3s f\u00e1jl be\u00e1ll\u00edt\u00e1s\u00e1n, dokument\u00e1lni kell a dokumentumban. Az \u00faj dokumentumokat hozz\u00e1 kell adni az f\u00e1jlhoz, \u00e9s hozz\u00e1 kell adni a weboldal index\u00e9hez docs/_klipper3d/mkdocs.yml . A v\u00e9gleges\u00edt\u00e9sek j\u00f3l megform\u00e1ltak, v\u00e9gleges\u00edt\u00e9sk\u00e9nt egyetlen t\u00e9m\u00e1val foglalkoznak, \u00e9s f\u00fcggetlenek?A k\u00e9relmi \u00fczeneteknek a prefer\u00e1lt form\u00e1tumot kell k\u00f6vetni\u00fck. A k\u00e9relmeknek nem lehet \u00f6sszeolvad\u00e1si konfliktusuk. A Klipper master \u00e1g\u00e1hoz val\u00f3 \u00faj hozz\u00e1ad\u00e1sok mindig egy \"rebase\" vagy \"squash and rebase\" seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nnek. A beny\u00fajt\u00f3knak \u00e1ltal\u00e1ban nem sz\u00fcks\u00e9ges a Klipper f\u0151adatt\u00e1r minden egyes friss\u00edt\u00e9s\u00e9n\u00e9l \u00fajra egyes\u00edteni\u00fck a beadv\u00e1nyukat. Ha azonban \u00f6sszeolvaszt\u00e1si konfliktus van, akkor a beny\u00fajt\u00f3knak aj\u00e1nlott a git rebase haszn\u00e1lata a konfliktus megold\u00e1s\u00e1ra. Minden egyes k\u00e9relemnek egyetlen magas szint\u0171 v\u00e1ltoztat\u00e1ssal kell foglalkoznia. A nagyobb v\u00e1ltoztat\u00e1sokat t\u00f6bb f\u00fcggetlen k\u00e9relemre kell bontani. Minden commitnak \"\u00f6n\u00e1ll\u00f3an kell \u00e1llnia\", hogy az olyan eszk\u00f6z\u00f6k, mint a git bisect \u00e9s git revert megb\u00edzhat\u00f3an m\u0171k\u00f6djenek. A feh\u00e9rter\u00fcleti v\u00e1ltoztat\u00e1sokat nem szabad \u00f6sszekeverni a funkcion\u00e1lis v\u00e1ltoztat\u00e1sokkal. \u00c1ltal\u00e1noss\u00e1gban elmondhat\u00f3, hogy az indokolatlan sz\u00f3k\u00f6z m\u00f3dos\u00edt\u00e1sokat nem fogadjuk el, kiv\u00e9ve, ha azok a m\u00f3dos\u00edtand\u00f3 k\u00f3d meg\u00e1llap\u00edtott \"tulajdonos\u00e1t\u00f3l\" sz\u00e1rmaznak. A Klipper nem alkalmaz szigor\u00fa \"k\u00f3dol\u00e1si st\u00edlus \u00fatmutat\u00f3t\", de a megl\u00e9v\u0151 k\u00f3d m\u00f3dos\u00edt\u00e1sainak k\u00f6vetni\u00fck kell a megl\u00e9v\u0151 k\u00f3d magas szint\u0171 k\u00f3d\u00e1raml\u00e1s\u00e1t, k\u00f3dbeh\u00faz\u00e1si st\u00edlus\u00e1t \u00e9s form\u00e1tum\u00e1t. Az \u00faj modulok \u00e9s rendszerek beny\u00fajt\u00e1sa eset\u00e9n a k\u00f3dol\u00e1si st\u00edlus rugalmasabb, de el\u0151ny\u00f6sebb, ha az \u00faj k\u00f3d bels\u0151leg konzisztens st\u00edlust k\u00f6vet, \u00e9s \u00e1ltal\u00e1ban az ipar\u00e1gi k\u00f3dol\u00e1si norm\u00e1kat k\u00f6veti. A fel\u00fclvizsg\u00e1lat c\u00e9lja nem a \"jobb megval\u00f3s\u00edt\u00e1sok\" megvitat\u00e1sa. Ha azonban egy b\u00edr\u00e1l\u00f3nak neh\u00e9zs\u00e9get okoz egy beadott p\u00e1ly\u00e1zat megval\u00f3s\u00edt\u00e1s\u00e1nak meg\u00e9rt\u00e9se, akkor k\u00e9rhet v\u00e1ltoztat\u00e1sokat a megval\u00f3s\u00edt\u00e1s \u00e1tl\u00e1that\u00f3bb\u00e1 t\u00e9tele \u00e9rdek\u00e9ben. K\u00fcl\u00f6n\u00f6sen, ha a b\u00edr\u00e1l\u00f3k nem tudj\u00e1k meggy\u0151zni magukat arr\u00f3l, hogy egy beadott p\u00e1ly\u00e1zat hib\u00e1tlan, akkor v\u00e1ltoztat\u00e1sokra lehet sz\u00fcks\u00e9g. A fel\u00fclvizsg\u00e1lat r\u00e9szek\u00e9nt egy fel\u00fclvizsg\u00e1l\u00f3 l\u00e9trehozhat egy alternat\u00edv k\u00e9r\u00e9st egy t\u00e9m\u00e1hoz. Ezt az\u00e9rt lehet megtenni, hogy elker\u00fclhet\u0151 legyen a t\u00falzott \"oda-vissza\" a kisebb elj\u00e1r\u00e1si k\u00e9rd\u00e9sekben, \u00e9s \u00edgy egyszer\u0171s\u00f6dj\u00f6n a beny\u00fajt\u00e1si folyamat. Ez az\u00e9rt is megt\u00f6rt\u00e9nhet, mert a vita arra \u00f6szt\u00f6nzi a b\u00edr\u00e1l\u00f3t, hogy egy alternat\u00edv implement\u00e1ci\u00f3t k\u00e9sz\u00edtsen. Mindk\u00e9t helyzet a fel\u00fclvizsg\u00e1lat norm\u00e1lis eredm\u00e9nye, \u00e9s nem tekinthet\u0151 az eredeti beadv\u00e1ny kritik\u00e1j\u00e1nak. Seg\u00edts\u00e9g a fel\u00fclvizsg\u00e1latokban \u00b6 Nagyra \u00e9rt\u00e9kelj\u00fck a seg\u00edts\u00e9get a v\u00e9lem\u00e9nyekkel kapcsolatban! Nem sz\u00fcks\u00e9ges list\u00e1zott \u00e9rt\u00e9kel\u0151nek lenni az \u00e9rt\u00e9kel\u00e9s elv\u00e9gz\u00e9s\u00e9hez. A GitHub k\u00e9relmek beny\u00fajt\u00f3it is arra \u00f6szt\u00f6n\u00f6zz\u00fck, hogy saj\u00e1t beadv\u00e1nyaikat vizsg\u00e1lj\u00e1k fel\u00fcl. A fel\u00fclvizsg\u00e1lat sor\u00e1n seg\u00edtsen, k\u00f6vesse a mire sz\u00e1m\u00edthat egy fel\u00fclvizsg\u00e1lat sor\u00e1n pontban le\u00edrt l\u00e9p\u00e9seket a bek\u00fcld\u00e9s ellen\u0151rz\u00e9s\u00e9hez. A fel\u00fclvizsg\u00e1lat befejez\u00e9se ut\u00e1n adj hozz\u00e1 egy megjegyz\u00e9st a GitHub k\u00e9r\u00e9sekhez a meg\u00e1llap\u00edt\u00e1sokkal. Ha a beny\u00fajt\u00e1s \u00e1tmegy az ellen\u0151rz\u00e9sen, akkor k\u00e9rj\u00fck, ezt kifejezetten jelezze a megjegyz\u00e9sben. P\u00e9ld\u00e1ul valami olyasmit, hogy \"\u00c1tn\u00e9ztem ezt a m\u00f3dos\u00edt\u00e1st a CONTRIBUTING dokumentumban le\u00edrtak szerint, \u00e9s minden j\u00f3nak t\u0171nik sz\u00e1momra\". Ha nem tudta elv\u00e9gezni a fel\u00fclvizsg\u00e1lat egyes l\u00e9p\u00e9seit, akkor k\u00e9rj\u00fck, kifejezetten jelezze, hogy mely l\u00e9p\u00e9seket vizsg\u00e1lta fel\u00fcl, \u00e9s melyeket nem. P\u00e9ld\u00e1ul valami olyasmit, mint: \"Nem ellen\u0151riztem a k\u00f3dot hib\u00e1k szempontj\u00e1b\u00f3l, de minden m\u00e1st \u00e1tn\u00e9ztem a CONTRIBUTING dokumentumban, \u00e9s \u00fagy t\u0171nik, hogy minden rendben van\". A beadv\u00e1nyok tesztel\u00e9s\u00e9t is \u00e9rt\u00e9kelj\u00fck. Ha a k\u00f3dot tesztelt\u00fck, k\u00e9rj\u00fck \u00edrjon egy megjegyz\u00e9st a GitHub k\u00e9r\u00e9sekhez a tesztel\u00e9s eredm\u00e9ny\u00e9vel - sikerrel vagy sikertelens\u00e9ggel. K\u00e9rj\u00fck, kifejezetten jelezze, hogy a k\u00f3dot tesztelt\u00e9k, \u00e9s az eredm\u00e9nyeket - p\u00e9ld\u00e1ul valami olyasmit, mint: \"Leteszteltem ezt a k\u00f3dot az Acme900Z nyomtat\u00f3mon egy v\u00e1za nyomtat\u00e1s\u00e1val, \u00e9s az eredm\u00e9nyek j\u00f3k voltak\". \u00c9rt\u00e9kel\u0151k \u00b6 A Klipper \"\u00e9rt\u00e9kel\u0151k\" a k\u00f6vetkez\u0151k: N\u00e9v GitHub azonos\u00edt\u00f3 \u00c9rdekl\u0151d\u00e9si k\u00f6r\u00f6k Dmitry Butyugin @dmbutyugin Bemenetform\u00e1l\u00e1s, rezonancia vizsg\u00e1lat, kinematika Eric Callahan @Arksine T\u00e1rgyasztal szintez\u00e9se, MCU \u00e9get\u00e9s Kevin O'Connor @KevinOConnor Mag mozg\u00e1si rendszer, mikrokontroller k\u00f3d Paul McGowan @mental405 Konfigur\u00e1ci\u00f3s f\u00e1jlok, dokument\u00e1ci\u00f3 K\u00e9rj\u00fck, ne \"pingelje\" a b\u00edr\u00e1l\u00f3kat, \u00e9s ne k\u00fcldj\u00f6n beadv\u00e1nyokat nekik. Az \u00f6sszes b\u00edr\u00e1l\u00f3 figyelemmel k\u00eds\u00e9ri a f\u00f3rumokat \u00e9s a PR-eket, \u00e9s ha van idej\u00fck, akkor v\u00e1llalj\u00e1k a b\u00edr\u00e1latokat. A Klipper \"karbantart\u00f3k\" a k\u00f6vetkez\u0151k: N\u00e9v GitHub n\u00e9v Kevin O'Connor @KevinOConnor A megb\u00edz\u00e1si \u00fczenetek form\u00e1tuma \u00b6 Minden megb\u00edz\u00e1snak a k\u00f6vetkez\u0151h\u00f6z hasonl\u00f3an form\u00e1zott \u00fczenetet kell tartalmaznia: modul: Nagybet\u0171s, r\u00f6vid (legfeljebb 50 karakteres) \u00f6sszefoglal\u00f3. Sz\u00fcks\u00e9g eset\u00e9n r\u00e9szletesebb magyar\u00e1z\u00f3 sz\u00f6veg. K\u00f6r\u00fclbel\u00fcl 75 karakter. Bizonyos kontextusokban az els\u0151 sort \u00fagy kezelik, mint a az e-mail t\u00e1rgya, a sz\u00f6veg t\u00f6bbi r\u00e9sz\u00e9t pedig sz\u00f6vegtestk\u00e9nt. Az \u00fcres sor, amely elv\u00e1lasztja az \u00f6sszefoglal\u00f3t a sz\u00f6vegtestt\u0151l, kritikus (kiv\u00e9ve, ha kihagyja a a t\u00f6rzssz\u00f6veget teljesen); az olyan eszk\u00f6z\u00f6k, mint a rebase, \u00f6sszezavarodhatnak, ha a a kett\u0151t egy\u00fctt futtatj\u00e1k. Az \u00fcres sorok ut\u00e1n tov\u00e1bbi bekezd\u00e9sek k\u00f6vetkeznek.. Al\u00e1\u00edr\u00e1s: N\u00e9v <myemail@example.org> A fenti p\u00e9ld\u00e1ban module egy f\u00e1jl vagy k\u00f6nyvt\u00e1r neve kell, hogy legyen a t\u00e1rol\u00f3ban (f\u00e1jlkiterjeszt\u00e9s n\u00e9lk\u00fcl). P\u00e9ld\u00e1ul clocksync: Jav\u00edtsuk ki a pause() h\u00edv\u00e1sban l\u00e9v\u0151 el\u00edr\u00e1st a csatlakoz\u00e1s idej\u00e9n . A moduln\u00e9v megad\u00e1s\u00e1nak c\u00e9lja a k\u00e9relmi \u00fczenetben az, hogy seg\u00edtsen kontextust biztos\u00edtani a k\u00e9relmi megjegyz\u00e9sekhez. Fontos, hogy minden k\u00e9r\u00e9sn\u00e9l legyen egy \"Signed-off-by\" sor. Ez igazolja, hogy egyet\u00e9rtesz a fejleszt\u0151i eredetigazol\u00e1ssal . Tartalmaznia kell a val\u00f3di nev\u00e9t (sajn\u00e1lom, nincs \u00e1ln\u00e9v vagy n\u00e9vtelen hozz\u00e1j\u00e1rul\u00e1s), \u00e9s tartalmaznia kell egy aktu\u00e1lis e-mail c\u00edmet. Hozz\u00e1j\u00e1rul\u00e1s a Klipper Ford\u00edt\u00e1sokhoz \u00b6 Klipper-ford\u00edt\u00e1si Projekt egy olyan projekt, amely a Klipper k\u00fcl\u00f6nb\u00f6z\u0151 nyelvekre val\u00f3 ford\u00edt\u00e1s\u00e1t t\u0171zte ki c\u00e9lul. A Weblate az \u00f6sszes Gettext stringet t\u00e1rolja a ford\u00edt\u00e1shoz \u00e9s fel\u00fclvizsg\u00e1lathoz. A klipper3d.org oldalon megjelen\u00edthet\u0151k a helyi nyelvek, ha megfelelnek a k\u00f6vetkez\u0151 k\u00f6vetelm\u00e9nyeknek: 75% Teljes lefedetts\u00e9g Minden c\u00edm (H1) le van ford\u00edtva Egy friss\u00edtett navig\u00e1ci\u00f3s hierarchia PR a klipper-ford\u00edt\u00e1sokban. A domain-specifikus kifejez\u00e9sek ford\u00edt\u00e1s\u00e1val j\u00e1r\u00f3 frusztr\u00e1ci\u00f3 cs\u00f6kkent\u00e9se \u00e9s a folyamatban l\u00e9v\u0151 ford\u00edt\u00e1sok megismer\u00e9se \u00e9rdek\u00e9ben k\u00fcldhet PR-t, amely m\u00f3dos\u00edtja a Klipper-ford\u00edt\u00e1si Projekt readme.md f\u00e1jlt. Amint a ford\u00edt\u00e1s elk\u00e9sz\u00fclt, a Klipper-projekt megfelel\u0151 m\u00f3dos\u00edt\u00e1sa elv\u00e9gezhet\u0151. Ha egy ford\u00edt\u00e1s m\u00e1r l\u00e9tezik a Klipper adatt\u00e1rban, \u00e9s m\u00e1r nem felel meg a fenti ellen\u0151rz\u0151 list\u00e1nak, akkor egy h\u00f3nap ut\u00e1n friss\u00edt\u00e9s n\u00e9lk\u00fcl elavultnak lesz jel\u00f6lve. Ha a k\u00f6vetelm\u00e9nyek teljes\u00fclnek, akkor: klipper-ford\u00edt\u00e1si adatt\u00e1r friss\u00edt\u00e9se active_translations Opcion\u00e1lis: adjunk hozz\u00e1 egy manual-index.md f\u00e1jlt a klipper-translations repository's docs\\locals\\<lang> mapp\u00e1ba a nyelvspecifikus index.md helyett (a gener\u00e1lt index.md nem renderelhet\u0151 helyesen). Ismert probl\u00e9m\u00e1k: Jelenleg a dokument\u00e1ci\u00f3ban nincs m\u00f3dszer a k\u00e9pek helyes ford\u00edt\u00e1s\u00e1ra Az mkdocs.yml-ben nem lehet c\u00edmeket ford\u00edtani.","title":"Hozz\u00e1j\u00e1rul\u00e1s a Klipperhez"},{"location":"CONTRIBUTING.html#hozzajarulas-a-klipperhez","text":"K\u00f6sz\u00f6nj\u00fck, hogy hozz\u00e1j\u00e1rult a Klipperhez! Ez a dokumentum le\u00edrja a Klipper v\u00e1ltoztat\u00e1sokhoz val\u00f3 hozz\u00e1j\u00e1rul\u00e1s folyamat\u00e1t. K\u00e9rj\u00fck, tekintsd meg a kapcsolat oldalt a probl\u00e9ma bejelent\u00e9s\u00e9vel kapcsolatos inform\u00e1ci\u00f3k\u00e9rt vagy a fejleszt\u0151kkel val\u00f3 kapcsolatfelv\u00e9telre vonatkoz\u00f3 r\u00e9szletek\u00e9rt.","title":"Hozz\u00e1j\u00e1rul\u00e1s a Klipperhez"},{"location":"CONTRIBUTING.html#a-hozzajarulasi-folyamat-attekintese","text":"A Klipperhez val\u00f3 hozz\u00e1j\u00e1rul\u00e1s \u00e1ltal\u00e1ban egy magas szint\u0171 folyamatot k\u00f6vet: A beny\u00fajt\u00f3 egy GitHub Pull Request l\u00e9trehoz\u00e1s\u00e1val kezdi, amikor egy beadv\u00e1ny k\u00e9szen \u00e1ll a sz\u00e9les k\u00f6r\u0171 telep\u00edt\u00e9sre. Amikor egy b\u00edr\u00e1l\u00f3 el\u00e9rhet\u0151 a review beny\u00fajt\u00e1s\u00e1hoz, akkor hozz\u00e1rendeli mag\u00e1t a Pull Requesthez a GitHubon. A fel\u00fclvizsg\u00e1lat c\u00e9lja a hib\u00e1k keres\u00e9se \u00e9s annak ellen\u0151rz\u00e9se, hogy a beadv\u00e1ny k\u00f6veti-e a dokument\u00e1lt ir\u00e1nyelveket. Sikeres fel\u00fclvizsg\u00e1lat ut\u00e1n a fel\u00fclvizsg\u00e1l\u00f3 \"j\u00f3v\u00e1hagyja a fel\u00fclvizsg\u00e1latot\" a GitHubon, \u00e9s egy karbantart\u00f3 \u00e1tvezeti a m\u00f3dos\u00edt\u00e1st a Klipper master \u00e1g\u00e1ba. Ha fejleszt\u00e9seken dolgozol, fontold meg egy t\u00e9ma ind\u00edt\u00e1s\u00e1t (vagy a t\u00e9m\u00e1hoz val\u00f3 hozz\u00e1j\u00e1rul\u00e1st) a Klipper Discourse oldalon. A f\u00f3rumon foly\u00f3 vita jav\u00edthatja a fejleszt\u00e9si munka l\u00e1that\u00f3s\u00e1g\u00e1t, \u00e9s vonzhat m\u00e1sokat is, akik \u00e9rdekl\u0151dnek az \u00faj munka tesztel\u00e9se ir\u00e1nt.","title":"A hozz\u00e1j\u00e1rul\u00e1si folyamat \u00e1ttekint\u00e9se"},{"location":"CONTRIBUTING.html#mire-szamithatunk-egy-felulvizsgalat-soran","text":"A Klipperhez val\u00f3 hozz\u00e1j\u00e1rul\u00e1sokat az egyes\u00edt\u00e9s el\u0151tt fel\u00fclvizsg\u00e1lj\u00e1k. A fel\u00fclvizsg\u00e1lati folyamat els\u0151dleges c\u00e9lja a hib\u00e1k ellen\u0151rz\u00e9se, valamint annak ellen\u0151rz\u00e9se, hogy a beadv\u00e1ny megfelel-e a Klipper dokument\u00e1ci\u00f3j\u00e1ban meghat\u00e1rozott ir\u00e1nyelveknek. Term\u00e9szetesen egy feladatot sokf\u00e9lek\u00e9ppen lehet elv\u00e9gezni; a fel\u00fclvizsg\u00e1lat c\u00e9lja nem az, hogy megvitassa a \"legjobb\" v\u00e9grehajt\u00e1st. Ahol lehets\u00e9ges, a fel\u00fclvizsg\u00e1lati megbesz\u00e9l\u00e9sek ink\u00e1bb a t\u00e9nyekre \u00e9s a m\u00e9r\u00e9sekre \u00f6sszpontos\u00edtanak. A beadv\u00e1nyok t\u00f6bbs\u00e9ge visszajelz\u00e9st eredm\u00e9nyez egy fel\u00fclvizsg\u00e1latr\u00f3l. K\u00e9sz\u00fclj\u00f6n fel a visszajelz\u00e9sek beszerz\u00e9s\u00e9re, tov\u00e1bbi r\u00e9szletek megad\u00e1s\u00e1ra \u00e9s sz\u00fcks\u00e9g eset\u00e9n a beadv\u00e1ny friss\u00edt\u00e9s\u00e9re. Gyakori dolgok, amiket a b\u00edr\u00e1l\u00f3 keres: Hib\u00e1tlan-e a beadv\u00e1ny, \u00e9s k\u00e9szen \u00e1ll-e a sz\u00e9les k\u00f6r\u0171 bevezet\u00e9sre?A beny\u00fajt\u00f3knak a beny\u00fajt\u00e1s el\u0151tt tesztelni\u00fck kell a v\u00e1ltoztat\u00e1sokat. A b\u00edr\u00e1l\u00f3k keresik a hib\u00e1kat, de \u00e1ltal\u00e1ban nem tesztelik a bek\u00fcld\u00f6tt anyagokat. Egy elfogadott beadv\u00e1nyt gyakran az elfogad\u00e1st k\u00f6vet\u0151 n\u00e9h\u00e1ny h\u00e9ten bel\u00fcl t\u00f6bb ezer nyomtat\u00f3hoz juttatnak el. A beadv\u00e1nyok min\u0151s\u00e9g\u00e9t ez\u00e9rt priorit\u00e1snak tekintik. A f\u0151 Klipper3d/klipper GitHub t\u00e1rol\u00f3 nem fogad el k\u00eds\u00e9rleti munk\u00e1t. A bek\u00fcld\u0151knek a k\u00eds\u00e9rletez\u00e9st, hibakeres\u00e9st \u00e9s tesztel\u00e9st a saj\u00e1t t\u00e1rol\u00f3jukban kell elv\u00e9gezni\u00fck. A Klipper Discourse szerver j\u00f3 hely arra, hogy felh\u00edvjuk a figyelmet az \u00faj munk\u00e1ra, \u00e9s megtal\u00e1ljuk azokat a felhaszn\u00e1l\u00f3kat, akiket \u00e9rdekel a val\u00f3s visszajelz\u00e9s. A beadv\u00e1nyoknak \u00e1t kell menni\u00fck az \u00f6sszes regresszi\u00f3s teszteseten . A k\u00f3dban l\u00e9v\u0151 hiba jav\u00edt\u00e1sakor a beny\u00fajt\u00f3knak \u00e1ltal\u00e1ban v\u00e9ve tiszt\u00e1ban kell lenni\u00fck a hiba kiv\u00e1lt\u00f3 ok\u00e1val, \u00e9s a jav\u00edt\u00e1snak ezt a kiv\u00e1lt\u00f3 okot kell megc\u00e9loznia. A bek\u00fcld\u00f6tt k\u00f3dok nem tartalmazhatnak t\u00falzottan sok hibakeres\u00e9si k\u00f3dot, hibakeres\u00e9si opci\u00f3t vagy fut\u00e1sidej\u0171 hibakeres\u00e9si napl\u00f3z\u00e1st. A k\u00f3dbeadv\u00e1nyokhoz f\u0171z\u00f6tt megjegyz\u00e9seknek a k\u00f3d karbantart\u00e1s\u00e1nak jav\u00edt\u00e1s\u00e1ra kell \u00f6sszpontos\u00edtaniuk. A beadv\u00e1nyok nem tartalmazhatnak \"kikomment\u00e1lt k\u00f3dot\" vagy t\u00falzottan sok, kor\u00e1bbi megval\u00f3s\u00edt\u00e1sokat le\u00edr\u00f3 megjegyz\u00e9st. Nem lehetnek t\u00falzott m\u00e9rt\u00e9k\u0171 \"todo\" megjegyz\u00e9sek. A dokument\u00e1ci\u00f3 friss\u00edt\u00e9sei nem jelenthetik ki, hogy azok \"folyamatban l\u00e9v\u0151 munk\u00e1k\". A beadott p\u00e1ly\u00e1zat \"nagy hat\u00e1s\u00fa\" el\u0151nyt jelent-e a val\u00f3s felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra, akik val\u00f3s feladatokat l\u00e1tnak el?A b\u00edr\u00e1l\u00f3knak - legal\u00e1bbis a saj\u00e1t fej\u00fckben - nagyj\u00e1b\u00f3l meg kell hat\u00e1rozniuk, hogy \"ki a c\u00e9lk\u00f6z\u00f6ns\u00e9g\", hogy \"mekkora a c\u00e9lk\u00f6z\u00f6ns\u00e9g\", hogy \"milyen el\u0151ny\u00f6kh\u00f6z\" jutnak, hogy \"az el\u0151ny\u00f6ket hogyan m\u00e9rik\", \u00e9s hogy \"milyen eredm\u00e9nyeket hoznak ezek a m\u00e9r\u00e9si tesztek\". A legt\u00f6bb esetben ez mind a beny\u00fajt\u00f3, mind a b\u00edr\u00e1l\u00f3 sz\u00e1m\u00e1ra nyilv\u00e1nval\u00f3, \u00e9s a b\u00edr\u00e1lat sor\u00e1n nem ker\u00fcl kifejezett kijelent\u00e9sre. A mester Klipper \u00e1gba k\u00fcld\u00f6tt beadv\u00e1nyok v\u00e1rhat\u00f3an figyelemre m\u00e9lt\u00f3 c\u00e9lk\u00f6z\u00f6ns\u00e9ggel rendelkeznek. \u00c1ltal\u00e1nos \"\u00f6k\u00f6lszab\u00e1lyk\u00e9nt\" a beadv\u00e1nyoknak legal\u00e1bb 100 val\u00f3s felhaszn\u00e1l\u00f3b\u00f3l \u00e1ll\u00f3 felhaszn\u00e1l\u00f3i b\u00e1zist kell megc\u00e9lozniuk. Ha egy b\u00edr\u00e1l\u00f3 r\u00e9szleteket k\u00e9r egy beadv\u00e1ny \"haszn\u00e1r\u00f3l\", k\u00e9rj\u00fck, ne tekintsd ezt kritik\u00e1nak. Az, hogy k\u00e9pesek legy\u00fcnk meg\u00e9rteni egy v\u00e1ltoztat\u00e1s val\u00f3s el\u0151nyeit, a fel\u00fclvizsg\u00e1lat term\u00e9szetes r\u00e9sze. Az el\u0151ny\u00f6k megvitat\u00e1sakor el\u0151ny\u00f6sebb a \"t\u00e9nyek \u00e9s m\u00e9r\u00e9sek\" megvitat\u00e1sa. \u00c1ltal\u00e1ban v\u00e9ve a b\u00edr\u00e1l\u00f3k nem a \"valaki hasznosnak tal\u00e1lhatja az X opci\u00f3t\", sem pedig a \"ez a beadv\u00e1ny olyan funkci\u00f3t ad hozz\u00e1, amelyet az X firmware val\u00f3s\u00edt meg\" form\u00e1j\u00fa v\u00e1laszokat keresik. Ehelyett \u00e1ltal\u00e1ban el\u0151ny\u00f6sebb, ha r\u00e9szletesen t\u00e1rgyalj\u00e1k, hogy a min\u0151s\u00e9gjavul\u00e1st hogyan m\u00e9rt\u00e9k, \u00e9s milyen eredm\u00e9nyeket hoztak ezek a m\u00e9r\u00e9sek - p\u00e9ld\u00e1ul: \"az Acme X1000 nyomtat\u00f3kon v\u00e9gzett tesztek a ...k\u00e9pen l\u00e1that\u00f3 javul\u00f3 sarkokat mutatnak \", vagy p\u00e9ld\u00e1ul \"az X val\u00f3s t\u00e1rgy nyomtat\u00e1si ideje egy Foomatic X900 nyomtat\u00f3n 4 \u00f3r\u00e1r\u00f3l 3,5 \u00f3r\u00e1ra cs\u00f6kkent\". Mag\u00e1t\u00f3l \u00e9rtet\u0151dik, hogy az ilyen t\u00edpus\u00fa tesztel\u00e9s jelent\u0151s id\u0151t \u00e9s er\u0151fesz\u00edt\u00e9st ig\u00e9nyel. A Klipper legjelent\u0151sebb funkci\u00f3inak n\u00e9melyike h\u00f3napokig tartott a megbesz\u00e9l\u00e9sek, \u00e1tdolgoz\u00e1sok, tesztel\u00e9sek \u00e9s dokument\u00e1ci\u00f3k sor\u00e1n, miel\u0151tt beolvadt a master \u00e1gba. Minden \u00faj modulnak, konfigur\u00e1ci\u00f3s opci\u00f3nak, parancsnak, parancsparam\u00e9ternek \u00e9s dokumentumnak \"nagy hat\u00e1ssal\" kell rendelkeznie. Nem akarjuk a felhaszn\u00e1l\u00f3kat olyan opci\u00f3kkal terhelni, amelyeket nem tudnak \u00e9sszer\u0171en konfigur\u00e1lni, \u00e9s nem akarjuk \u0151ket olyan opci\u00f3kkal terhelni, amelyek nem ny\u00fajtanak sz\u00e1mottev\u0151 el\u0151nyt. A b\u00edr\u00e1l\u00f3 k\u00e9rhet pontos\u00edt\u00e1st arr\u00f3l, hogy a felhaszn\u00e1l\u00f3nak hogyan kell be\u00e1ll\u00edtania egy opci\u00f3t - az ide\u00e1lis v\u00e1lasz tartalmazza a folyamat r\u00e9szleteit - p\u00e9ld\u00e1ul: \"a MegaX500 felhaszn\u00e1l\u00f3inak az X opci\u00f3t 99,3-ra kell be\u00e1ll\u00edtaniuk, m\u00edg az Elite100Y felhaszn\u00e1l\u00f3inak az X opci\u00f3t a ...\" elj\u00e1r\u00e1ssal kell kalibr\u00e1lniuk...\". Ha az opci\u00f3 c\u00e9lja, hogy a k\u00f3dot modul\u00e1risabb\u00e1 tegye, akkor ink\u00e1bb haszn\u00e1lj k\u00f3dkonstansokat a felhaszn\u00e1l\u00f3val szemben\u00e9z\u0151 konfigur\u00e1ci\u00f3s opci\u00f3k helyett. Az \u00faj modulok, \u00faj opci\u00f3k \u00e9s \u00faj param\u00e9terek nem biztos\u00edthatnak hasonl\u00f3 funkci\u00f3kat a megl\u00e9v\u0151 modulokhoz - ha a k\u00fcl\u00f6nbs\u00e9gek \u00f6nk\u00e9nyesek, akkor ink\u00e1bb a megl\u00e9v\u0151 rendszert kell haszn\u00e1lni, vagy a megl\u00e9v\u0151 k\u00f3dot kell \u00e1talak\u00edtani. A beadv\u00e1ny szerz\u0151i joga egy\u00e9rtelm\u0171, nem h\u00e1lap\u00e9nz \u00e9s \u00f6sszeegyeztethet\u0151?Az \u00faj C \u00e9s Python f\u00e1jloknak egy\u00e9rtelm\u0171 szerz\u0151i jogi nyilatkozatot kell tartalmazniuk. Az el\u0151nyben r\u00e9szes\u00edtett form\u00e1tumot l\u00e1sd a megl\u00e9v\u0151 f\u00e1jlokban. A megl\u00e9v\u0151 f\u00e1jl szerz\u0151i jog\u00e1nak deklar\u00e1l\u00e1sa a f\u00e1jl kisebb m\u00f3dos\u00edt\u00e1sai eset\u00e9n elhanyagolhat\u00f3. A harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 k\u00f3dnak kompatibilisnek kell lennie a Klipper licenszel (GNU GPLv3). A nagyobb, harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 k\u00f3dkieg\u00e9sz\u00edt\u00e9seket a lib/ k\u00f6nyvt\u00e1rba kell helyezni (\u00e9s a lib/README k\u00f6nyvt\u00e1rban le\u00edrt form\u00e1tumot kell k\u00f6vetni). A bek\u00fcld\u0151knek meg kell adniuk egy Signed-off-by line sort a teljes val\u00f3di nev\u00fckkel. Ez azt jelzi, hogy a beny\u00fajt\u00f3 egyet\u00e9rt a fejleszt\u0151i sz\u00e1rmaz\u00e1si igazol\u00e1ssal . A beny\u00fajt\u00e1s k\u00f6veti a Klipper dokument\u00e1ci\u00f3ban meghat\u00e1rozott ir\u00e1nyelveket?K\u00fcl\u00f6n\u00f6sen a k\u00f3dnak a , a konfigur\u00e1ci\u00f3s f\u00e1jloknak pedig a c\u00edm\u0171 dokumentumban tal\u00e1lhat\u00f3 ir\u00e1nyelveket kell k\u00f6vetni\u00fck. A Klipper dokument\u00e1ci\u00f3 friss\u00edtve van az \u00faj v\u00e1ltoz\u00e1soknak megfelel\u0151en?Legal\u00e1bb a referenciadokument\u00e1ci\u00f3t kell friss\u00edteni a k\u00f3d megfelel\u0151 v\u00e1ltoztat\u00e1saival: Minden parancsot \u00e9s parancsparam\u00e9tert a dokumentumban kell dokument\u00e1lni. Minden felhaszn\u00e1l\u00f3 el\u0151tt \u00e1ll\u00f3 modult \u00e9s azok konfigur\u00e1ci\u00f3s param\u00e9tereit dokument\u00e1lni kell a f\u00e1jlban. Minden export\u00e1lt \"\u00e1llapotv\u00e1ltoz\u00f3t\" dokument\u00e1lni kell . Minden \u00faj \"webhooks\" \u00e9s param\u00e9tereiket dokument\u00e1lni kell . Minden olyan m\u00f3dos\u00edt\u00e1s, amely nem visszafel\u00e9 kompatibilis m\u00f3dos\u00edt\u00e1st hajt v\u00e9gre egy parancs vagy konfigur\u00e1ci\u00f3s f\u00e1jl be\u00e1ll\u00edt\u00e1s\u00e1n, dokument\u00e1lni kell a dokumentumban. Az \u00faj dokumentumokat hozz\u00e1 kell adni az f\u00e1jlhoz, \u00e9s hozz\u00e1 kell adni a weboldal index\u00e9hez docs/_klipper3d/mkdocs.yml . A v\u00e9gleges\u00edt\u00e9sek j\u00f3l megform\u00e1ltak, v\u00e9gleges\u00edt\u00e9sk\u00e9nt egyetlen t\u00e9m\u00e1val foglalkoznak, \u00e9s f\u00fcggetlenek?A k\u00e9relmi \u00fczeneteknek a prefer\u00e1lt form\u00e1tumot kell k\u00f6vetni\u00fck. A k\u00e9relmeknek nem lehet \u00f6sszeolvad\u00e1si konfliktusuk. A Klipper master \u00e1g\u00e1hoz val\u00f3 \u00faj hozz\u00e1ad\u00e1sok mindig egy \"rebase\" vagy \"squash and rebase\" seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nnek. A beny\u00fajt\u00f3knak \u00e1ltal\u00e1ban nem sz\u00fcks\u00e9ges a Klipper f\u0151adatt\u00e1r minden egyes friss\u00edt\u00e9s\u00e9n\u00e9l \u00fajra egyes\u00edteni\u00fck a beadv\u00e1nyukat. Ha azonban \u00f6sszeolvaszt\u00e1si konfliktus van, akkor a beny\u00fajt\u00f3knak aj\u00e1nlott a git rebase haszn\u00e1lata a konfliktus megold\u00e1s\u00e1ra. Minden egyes k\u00e9relemnek egyetlen magas szint\u0171 v\u00e1ltoztat\u00e1ssal kell foglalkoznia. A nagyobb v\u00e1ltoztat\u00e1sokat t\u00f6bb f\u00fcggetlen k\u00e9relemre kell bontani. Minden commitnak \"\u00f6n\u00e1ll\u00f3an kell \u00e1llnia\", hogy az olyan eszk\u00f6z\u00f6k, mint a git bisect \u00e9s git revert megb\u00edzhat\u00f3an m\u0171k\u00f6djenek. A feh\u00e9rter\u00fcleti v\u00e1ltoztat\u00e1sokat nem szabad \u00f6sszekeverni a funkcion\u00e1lis v\u00e1ltoztat\u00e1sokkal. \u00c1ltal\u00e1noss\u00e1gban elmondhat\u00f3, hogy az indokolatlan sz\u00f3k\u00f6z m\u00f3dos\u00edt\u00e1sokat nem fogadjuk el, kiv\u00e9ve, ha azok a m\u00f3dos\u00edtand\u00f3 k\u00f3d meg\u00e1llap\u00edtott \"tulajdonos\u00e1t\u00f3l\" sz\u00e1rmaznak. A Klipper nem alkalmaz szigor\u00fa \"k\u00f3dol\u00e1si st\u00edlus \u00fatmutat\u00f3t\", de a megl\u00e9v\u0151 k\u00f3d m\u00f3dos\u00edt\u00e1sainak k\u00f6vetni\u00fck kell a megl\u00e9v\u0151 k\u00f3d magas szint\u0171 k\u00f3d\u00e1raml\u00e1s\u00e1t, k\u00f3dbeh\u00faz\u00e1si st\u00edlus\u00e1t \u00e9s form\u00e1tum\u00e1t. Az \u00faj modulok \u00e9s rendszerek beny\u00fajt\u00e1sa eset\u00e9n a k\u00f3dol\u00e1si st\u00edlus rugalmasabb, de el\u0151ny\u00f6sebb, ha az \u00faj k\u00f3d bels\u0151leg konzisztens st\u00edlust k\u00f6vet, \u00e9s \u00e1ltal\u00e1ban az ipar\u00e1gi k\u00f3dol\u00e1si norm\u00e1kat k\u00f6veti. A fel\u00fclvizsg\u00e1lat c\u00e9lja nem a \"jobb megval\u00f3s\u00edt\u00e1sok\" megvitat\u00e1sa. Ha azonban egy b\u00edr\u00e1l\u00f3nak neh\u00e9zs\u00e9get okoz egy beadott p\u00e1ly\u00e1zat megval\u00f3s\u00edt\u00e1s\u00e1nak meg\u00e9rt\u00e9se, akkor k\u00e9rhet v\u00e1ltoztat\u00e1sokat a megval\u00f3s\u00edt\u00e1s \u00e1tl\u00e1that\u00f3bb\u00e1 t\u00e9tele \u00e9rdek\u00e9ben. K\u00fcl\u00f6n\u00f6sen, ha a b\u00edr\u00e1l\u00f3k nem tudj\u00e1k meggy\u0151zni magukat arr\u00f3l, hogy egy beadott p\u00e1ly\u00e1zat hib\u00e1tlan, akkor v\u00e1ltoztat\u00e1sokra lehet sz\u00fcks\u00e9g. A fel\u00fclvizsg\u00e1lat r\u00e9szek\u00e9nt egy fel\u00fclvizsg\u00e1l\u00f3 l\u00e9trehozhat egy alternat\u00edv k\u00e9r\u00e9st egy t\u00e9m\u00e1hoz. Ezt az\u00e9rt lehet megtenni, hogy elker\u00fclhet\u0151 legyen a t\u00falzott \"oda-vissza\" a kisebb elj\u00e1r\u00e1si k\u00e9rd\u00e9sekben, \u00e9s \u00edgy egyszer\u0171s\u00f6dj\u00f6n a beny\u00fajt\u00e1si folyamat. Ez az\u00e9rt is megt\u00f6rt\u00e9nhet, mert a vita arra \u00f6szt\u00f6nzi a b\u00edr\u00e1l\u00f3t, hogy egy alternat\u00edv implement\u00e1ci\u00f3t k\u00e9sz\u00edtsen. Mindk\u00e9t helyzet a fel\u00fclvizsg\u00e1lat norm\u00e1lis eredm\u00e9nye, \u00e9s nem tekinthet\u0151 az eredeti beadv\u00e1ny kritik\u00e1j\u00e1nak.","title":"Mire sz\u00e1m\u00edthatunk egy fel\u00fclvizsg\u00e1lat sor\u00e1n"},{"location":"CONTRIBUTING.html#segitseg-a-felulvizsgalatokban","text":"Nagyra \u00e9rt\u00e9kelj\u00fck a seg\u00edts\u00e9get a v\u00e9lem\u00e9nyekkel kapcsolatban! Nem sz\u00fcks\u00e9ges list\u00e1zott \u00e9rt\u00e9kel\u0151nek lenni az \u00e9rt\u00e9kel\u00e9s elv\u00e9gz\u00e9s\u00e9hez. A GitHub k\u00e9relmek beny\u00fajt\u00f3it is arra \u00f6szt\u00f6n\u00f6zz\u00fck, hogy saj\u00e1t beadv\u00e1nyaikat vizsg\u00e1lj\u00e1k fel\u00fcl. A fel\u00fclvizsg\u00e1lat sor\u00e1n seg\u00edtsen, k\u00f6vesse a mire sz\u00e1m\u00edthat egy fel\u00fclvizsg\u00e1lat sor\u00e1n pontban le\u00edrt l\u00e9p\u00e9seket a bek\u00fcld\u00e9s ellen\u0151rz\u00e9s\u00e9hez. A fel\u00fclvizsg\u00e1lat befejez\u00e9se ut\u00e1n adj hozz\u00e1 egy megjegyz\u00e9st a GitHub k\u00e9r\u00e9sekhez a meg\u00e1llap\u00edt\u00e1sokkal. Ha a beny\u00fajt\u00e1s \u00e1tmegy az ellen\u0151rz\u00e9sen, akkor k\u00e9rj\u00fck, ezt kifejezetten jelezze a megjegyz\u00e9sben. P\u00e9ld\u00e1ul valami olyasmit, hogy \"\u00c1tn\u00e9ztem ezt a m\u00f3dos\u00edt\u00e1st a CONTRIBUTING dokumentumban le\u00edrtak szerint, \u00e9s minden j\u00f3nak t\u0171nik sz\u00e1momra\". Ha nem tudta elv\u00e9gezni a fel\u00fclvizsg\u00e1lat egyes l\u00e9p\u00e9seit, akkor k\u00e9rj\u00fck, kifejezetten jelezze, hogy mely l\u00e9p\u00e9seket vizsg\u00e1lta fel\u00fcl, \u00e9s melyeket nem. P\u00e9ld\u00e1ul valami olyasmit, mint: \"Nem ellen\u0151riztem a k\u00f3dot hib\u00e1k szempontj\u00e1b\u00f3l, de minden m\u00e1st \u00e1tn\u00e9ztem a CONTRIBUTING dokumentumban, \u00e9s \u00fagy t\u0171nik, hogy minden rendben van\". A beadv\u00e1nyok tesztel\u00e9s\u00e9t is \u00e9rt\u00e9kelj\u00fck. Ha a k\u00f3dot tesztelt\u00fck, k\u00e9rj\u00fck \u00edrjon egy megjegyz\u00e9st a GitHub k\u00e9r\u00e9sekhez a tesztel\u00e9s eredm\u00e9ny\u00e9vel - sikerrel vagy sikertelens\u00e9ggel. K\u00e9rj\u00fck, kifejezetten jelezze, hogy a k\u00f3dot tesztelt\u00e9k, \u00e9s az eredm\u00e9nyeket - p\u00e9ld\u00e1ul valami olyasmit, mint: \"Leteszteltem ezt a k\u00f3dot az Acme900Z nyomtat\u00f3mon egy v\u00e1za nyomtat\u00e1s\u00e1val, \u00e9s az eredm\u00e9nyek j\u00f3k voltak\".","title":"Seg\u00edts\u00e9g a fel\u00fclvizsg\u00e1latokban"},{"location":"CONTRIBUTING.html#ertekelok","text":"A Klipper \"\u00e9rt\u00e9kel\u0151k\" a k\u00f6vetkez\u0151k: N\u00e9v GitHub azonos\u00edt\u00f3 \u00c9rdekl\u0151d\u00e9si k\u00f6r\u00f6k Dmitry Butyugin @dmbutyugin Bemenetform\u00e1l\u00e1s, rezonancia vizsg\u00e1lat, kinematika Eric Callahan @Arksine T\u00e1rgyasztal szintez\u00e9se, MCU \u00e9get\u00e9s Kevin O'Connor @KevinOConnor Mag mozg\u00e1si rendszer, mikrokontroller k\u00f3d Paul McGowan @mental405 Konfigur\u00e1ci\u00f3s f\u00e1jlok, dokument\u00e1ci\u00f3 K\u00e9rj\u00fck, ne \"pingelje\" a b\u00edr\u00e1l\u00f3kat, \u00e9s ne k\u00fcldj\u00f6n beadv\u00e1nyokat nekik. Az \u00f6sszes b\u00edr\u00e1l\u00f3 figyelemmel k\u00eds\u00e9ri a f\u00f3rumokat \u00e9s a PR-eket, \u00e9s ha van idej\u00fck, akkor v\u00e1llalj\u00e1k a b\u00edr\u00e1latokat. A Klipper \"karbantart\u00f3k\" a k\u00f6vetkez\u0151k: N\u00e9v GitHub n\u00e9v Kevin O'Connor @KevinOConnor","title":"\u00c9rt\u00e9kel\u0151k"},{"location":"CONTRIBUTING.html#a-megbizasi-uzenetek-formatuma","text":"Minden megb\u00edz\u00e1snak a k\u00f6vetkez\u0151h\u00f6z hasonl\u00f3an form\u00e1zott \u00fczenetet kell tartalmaznia: modul: Nagybet\u0171s, r\u00f6vid (legfeljebb 50 karakteres) \u00f6sszefoglal\u00f3. Sz\u00fcks\u00e9g eset\u00e9n r\u00e9szletesebb magyar\u00e1z\u00f3 sz\u00f6veg. K\u00f6r\u00fclbel\u00fcl 75 karakter. Bizonyos kontextusokban az els\u0151 sort \u00fagy kezelik, mint a az e-mail t\u00e1rgya, a sz\u00f6veg t\u00f6bbi r\u00e9sz\u00e9t pedig sz\u00f6vegtestk\u00e9nt. Az \u00fcres sor, amely elv\u00e1lasztja az \u00f6sszefoglal\u00f3t a sz\u00f6vegtestt\u0151l, kritikus (kiv\u00e9ve, ha kihagyja a a t\u00f6rzssz\u00f6veget teljesen); az olyan eszk\u00f6z\u00f6k, mint a rebase, \u00f6sszezavarodhatnak, ha a a kett\u0151t egy\u00fctt futtatj\u00e1k. Az \u00fcres sorok ut\u00e1n tov\u00e1bbi bekezd\u00e9sek k\u00f6vetkeznek.. Al\u00e1\u00edr\u00e1s: N\u00e9v <myemail@example.org> A fenti p\u00e9ld\u00e1ban module egy f\u00e1jl vagy k\u00f6nyvt\u00e1r neve kell, hogy legyen a t\u00e1rol\u00f3ban (f\u00e1jlkiterjeszt\u00e9s n\u00e9lk\u00fcl). P\u00e9ld\u00e1ul clocksync: Jav\u00edtsuk ki a pause() h\u00edv\u00e1sban l\u00e9v\u0151 el\u00edr\u00e1st a csatlakoz\u00e1s idej\u00e9n . A moduln\u00e9v megad\u00e1s\u00e1nak c\u00e9lja a k\u00e9relmi \u00fczenetben az, hogy seg\u00edtsen kontextust biztos\u00edtani a k\u00e9relmi megjegyz\u00e9sekhez. Fontos, hogy minden k\u00e9r\u00e9sn\u00e9l legyen egy \"Signed-off-by\" sor. Ez igazolja, hogy egyet\u00e9rtesz a fejleszt\u0151i eredetigazol\u00e1ssal . Tartalmaznia kell a val\u00f3di nev\u00e9t (sajn\u00e1lom, nincs \u00e1ln\u00e9v vagy n\u00e9vtelen hozz\u00e1j\u00e1rul\u00e1s), \u00e9s tartalmaznia kell egy aktu\u00e1lis e-mail c\u00edmet.","title":"A megb\u00edz\u00e1si \u00fczenetek form\u00e1tuma"},{"location":"CONTRIBUTING.html#hozzajarulas-a-klipper-forditasokhoz","text":"Klipper-ford\u00edt\u00e1si Projekt egy olyan projekt, amely a Klipper k\u00fcl\u00f6nb\u00f6z\u0151 nyelvekre val\u00f3 ford\u00edt\u00e1s\u00e1t t\u0171zte ki c\u00e9lul. A Weblate az \u00f6sszes Gettext stringet t\u00e1rolja a ford\u00edt\u00e1shoz \u00e9s fel\u00fclvizsg\u00e1lathoz. A klipper3d.org oldalon megjelen\u00edthet\u0151k a helyi nyelvek, ha megfelelnek a k\u00f6vetkez\u0151 k\u00f6vetelm\u00e9nyeknek: 75% Teljes lefedetts\u00e9g Minden c\u00edm (H1) le van ford\u00edtva Egy friss\u00edtett navig\u00e1ci\u00f3s hierarchia PR a klipper-ford\u00edt\u00e1sokban. A domain-specifikus kifejez\u00e9sek ford\u00edt\u00e1s\u00e1val j\u00e1r\u00f3 frusztr\u00e1ci\u00f3 cs\u00f6kkent\u00e9se \u00e9s a folyamatban l\u00e9v\u0151 ford\u00edt\u00e1sok megismer\u00e9se \u00e9rdek\u00e9ben k\u00fcldhet PR-t, amely m\u00f3dos\u00edtja a Klipper-ford\u00edt\u00e1si Projekt readme.md f\u00e1jlt. Amint a ford\u00edt\u00e1s elk\u00e9sz\u00fclt, a Klipper-projekt megfelel\u0151 m\u00f3dos\u00edt\u00e1sa elv\u00e9gezhet\u0151. Ha egy ford\u00edt\u00e1s m\u00e1r l\u00e9tezik a Klipper adatt\u00e1rban, \u00e9s m\u00e1r nem felel meg a fenti ellen\u0151rz\u0151 list\u00e1nak, akkor egy h\u00f3nap ut\u00e1n friss\u00edt\u00e9s n\u00e9lk\u00fcl elavultnak lesz jel\u00f6lve. Ha a k\u00f6vetelm\u00e9nyek teljes\u00fclnek, akkor: klipper-ford\u00edt\u00e1si adatt\u00e1r friss\u00edt\u00e9se active_translations Opcion\u00e1lis: adjunk hozz\u00e1 egy manual-index.md f\u00e1jlt a klipper-translations repository's docs\\locals\\<lang> mapp\u00e1ba a nyelvspecifikus index.md helyett (a gener\u00e1lt index.md nem renderelhet\u0151 helyesen). Ismert probl\u00e9m\u00e1k: Jelenleg a dokument\u00e1ci\u00f3ban nincs m\u00f3dszer a k\u00e9pek helyes ford\u00edt\u00e1s\u00e1ra Az mkdocs.yml-ben nem lehet c\u00edmeket ford\u00edtani.","title":"Hozz\u00e1j\u00e1rul\u00e1s a Klipper Ford\u00edt\u00e1sokhoz"},{"location":"Code_Overview.html","text":"K\u00f3d \u00e1ttekint\u00e9se \u00b6 Ez a dokumentum a Klipper \u00e1ltal\u00e1nos k\u00f3delrendez\u00e9s\u00e9t \u00e9s f\u0151bb k\u00f3dfolyam\u00e1t \u00edrja le. K\u00f6nyvt\u00e1r elrendez\u00e9se \u00b6 Az src/ k\u00f6nyvt\u00e1r tartalmazza a mikrovez\u00e9rl\u0151 k\u00f3dj\u00e1nak C forr\u00e1s\u00e1t. Az src/atsam/ , src/atsamd/ , src/avr/ , src/linux/ , src/lpc176x/ , src/ A pru/ \u00e9s src/stm32/ k\u00f6nyvt\u00e1rak architekt\u00fara specifikus mikrovez\u00e9rl\u0151 k\u00f3dot tartalmaznak. Az src/simulator/ k\u00f3dcsonkokat tartalmaz, amelyek lehet\u0151v\u00e9 teszik a mikrokontroller tesztel\u00e9s\u00e9t m\u00e1s architekt\u00far\u00e1kon. Az src/generic/ k\u00f6nyvt\u00e1r seg\u00e9dk\u00f3dot tartalmaz, amely hasznos lehet a k\u00fcl\u00f6nb\u00f6z\u0151 architekt\u00far\u00e1kban. A build gondoskodik arr\u00f3l, hogy az include \"board/somefile.h\" el\u0151sz\u00f6r az aktu\u00e1lis architekt\u00fara k\u00f6nyvt\u00e1rban (pl. src/avr/somefile.h), majd az \u00e1ltal\u00e1nos k\u00f6nyvt\u00e1rban (pl. src/generic/somefile.h) keressen. A klippy/ k\u00f6nyvt\u00e1r tartalmazza a gazdaszoftvert. A gazdaszoftver nagy r\u00e9sze Python nyelven \u00edr\u00f3dott, azonban a klippy/chelper/ k\u00f6nyvt\u00e1r tartalmaz n\u00e9h\u00e1ny C k\u00f3d\u00fa seg\u00e9dprogramot. A klippy/kinematics/ k\u00f6nyvt\u00e1r tartalmazza a g\u00e9p kinematikai k\u00f3dj\u00e1t. A klippy/extras/ k\u00f6nyvt\u00e1r tartalmazza a gazdak\u00f3d b\u0151v\u00edthet\u0151 \"moduljait\". A lib/ k\u00f6nyvt\u00e1r k\u00fcls\u0151, harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 k\u00f6nyvt\u00e1ri k\u00f3dot tartalmaz, amely n\u00e9h\u00e1ny c\u00e9lprogram elk\u00e9sz\u00edt\u00e9s\u00e9hez sz\u00fcks\u00e9ges. A config/ k\u00f6nyvt\u00e1r a nyomtat\u00f3 konfigur\u00e1ci\u00f3s p\u00e9ldaf\u00e1jljait tartalmazza. A scripts/ k\u00f6nyvt\u00e1r a mikrokontroller k\u00f3dj\u00e1nak ford\u00edt\u00e1s\u00e1hoz hasznos, \u00e9p\u00edt\u00e9si-idej\u0171 szkripteket tartalmaz. A test/ k\u00f6nyvt\u00e1r automatikus teszteseteket tartalmaz. Ford\u00edt\u00e1s sor\u00e1n a build l\u00e9trehozhat egy out/ k\u00f6nyvt\u00e1rat. Ez ideiglenes elk\u00e9sz\u00edt\u00e9s\u0171 objektumokat tartalmaz. A v\u00e9gs\u0151 mikrokontroller objektum, amely elk\u00e9sz\u00fcl, AVR eset\u00e9n out/klipper.elf.hex , ARM eset\u00e9n out/klipper.bin . Mikrokontroller k\u00f3dfolyamat \u00b6 A mikrokontroller k\u00f3dj\u00e1nak v\u00e9grehajt\u00e1sa az architekt\u00fara specifikus k\u00f3dban kezd\u0151dik (pl. src/avr/main.c ), amely v\u00e9g\u00fcl a src/sched.c -ban tal\u00e1lhat\u00f3 sched_main() parancsot h\u00edvja meg. A sched_main() k\u00f3d a DECL_INIT() makr\u00f3val jel\u00f6lt \u00f6sszes f\u00fcggv\u00e9ny futtat\u00e1s\u00e1val kezd\u0151dik. Ezut\u00e1n a DECL_TASK() makr\u00f3val megjel\u00f6lt f\u00fcggv\u00e9nyek ism\u00e9telt futtat\u00e1s\u00e1ra ker\u00fcl sor. Az egyik f\u0151 feladatf\u00fcggv\u00e9ny a command_dispatch(), amely a src/command.c f\u00e1jlban tal\u00e1lhat\u00f3. Ezt a f\u00fcggv\u00e9nyt a k\u00e1rtyaspecifikus bemeneti/kimeneti k\u00f3db\u00f3l (pl. src/avr/serial.c , src/generic/serial_irq.c ) h\u00edvjuk meg, \u00e9s a bemeneti folyamban tal\u00e1lhat\u00f3 parancsokhoz tartoz\u00f3 parancsf\u00fcggv\u00e9nyeket futtatja. A parancsf\u00fcggv\u00e9nyek deklar\u00e1l\u00e1sa a DECL_COMMAND() makr\u00f3val t\u00f6rt\u00e9nik (tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a protokol dokumentumot). A feladat-, init- \u00e9s parancsf\u00fcggv\u00e9nyek mindig enged\u00e9lyezett megszak\u00edt\u00e1sokkal futnak (sz\u00fcks\u00e9g eset\u00e9n azonban ideiglenesen letilthatj\u00e1k a megszak\u00edt\u00e1sokat). Ezeknek a f\u00fcggv\u00e9nyeknek ker\u00fclni\u00fck kell a hossz\u00fa sz\u00fcneteket, k\u00e9sleltet\u00e9seket, vagy olyan munk\u00e1t kell v\u00e9gezni\u00fck, amely jelent\u0151s ideig tart. (A hossz\u00fa k\u00e9sleltet\u00e9sek ezekben a \"task\" f\u00fcggv\u00e9nyekben m\u00e1s \"taskok\" \u00fctemez\u00e9si zavar\u00e1t eredm\u00e9nyezik. A 100us-n\u00e1l hosszabb k\u00e9sleltet\u00e9sek \u00e9szrevehet\u0151v\u00e9 v\u00e1lhatnak, az 500us-n\u00e1l hosszabb k\u00e9sleltet\u00e9s\u0171 parancsok \u00fajrak\u00fcld\u00e9se, a 100ms-n\u00e1l hosszabb k\u00e9sleltet\u00e9sek pedig watchdog \u00fajraind\u00edt\u00e1sokat eredm\u00e9nyezhetnek.) Ezek a funkci\u00f3k id\u0151z\u00edt\u0151kkel \u00fctemezik a munk\u00e1t meghat\u00e1rozott id\u0151pontokra. Az id\u0151z\u00edt\u0151 f\u00fcggv\u00e9nyek \u00fctemez\u00e9se a sched_add_timer() megh\u00edv\u00e1s\u00e1val t\u00f6rt\u00e9nik (a src/sched.c f\u00e1jlban tal\u00e1lhat\u00f3). Az \u00fctemez\u0151 k\u00f3d gondoskodik arr\u00f3l, hogy az adott f\u00fcggv\u00e9nyt a k\u00e9rt id\u0151ben h\u00edvja meg. Az id\u0151z\u00edt\u0151 megszak\u00edt\u00e1sok kezel\u00e9se kezdetben egy architekt\u00fara-specifikus megszak\u00edt\u00e1skezel\u0151ben t\u00f6rt\u00e9nik (pl. src/avr/timer.c ), amely a src/sched.c -ban tal\u00e1lhat\u00f3 sched_timer_dispatch() funkci\u00f3t h\u00edvja. Az id\u0151z\u00edt\u0151 megszak\u00edt\u00e1sa az \u00fctemez\u0151 id\u0151z\u00edt\u0151 f\u00fcggv\u00e9nyek v\u00e9grehajt\u00e1s\u00e1hoz vezet. Az id\u0151z\u00edt\u0151 f\u00fcggv\u00e9nyek mindig megszak\u00edt\u00e1sok kikapcsol\u00e1s\u00e1val futnak. Az id\u0151z\u00edt\u0151f\u00fcggv\u00e9nyeknek mindig n\u00e9h\u00e1ny mikroszekundumon bel\u00fcl kell befejez\u0151dni\u00fck. Az id\u0151z\u00edt\u0151 esem\u00e9ny befejez\u00e9sekor a f\u00fcggv\u00e9ny d\u00f6nthet \u00fagy, hogy \u00e1t\u00fctemezi mag\u00e1t. Hiba \u00e9szlel\u00e9se eset\u00e9n a k\u00f3d megh\u00edvhatja a shutdown() funkci\u00f3t (egy makr\u00f3, amely a src/sched.c -ben tal\u00e1lhat\u00f3 sched_shutdown() funkci\u00f3t h\u00edvja). A shutdown() megh\u00edv\u00e1sa a DECL_SHUTDOWN() makr\u00f3val jel\u00f6lt \u00f6sszes f\u00fcggv\u00e9ny futtat\u00e1s\u00e1t eredm\u00e9nyezi. A le\u00e1ll\u00edt\u00e1si f\u00fcggv\u00e9nyek mindig megszak\u00edt\u00e1sok letilt\u00e1s\u00e1val futnak. A mikrokontroller funkci\u00f3inak nagy r\u00e9sze az \u00e1ltal\u00e1nos c\u00e9l\u00fa bemeneti/kimeneti \u00e9rintkez\u0151kkel (GPIO) val\u00f3 munk\u00e1t foglalja mag\u00e1ban. Annak \u00e9rdek\u00e9ben, hogy az alacsony szint\u0171 architekt\u00fara specifikus k\u00f3dot elvonatkoztassuk a magas szint\u0171 feladatk\u00f3dt\u00f3l, minden GPIO esem\u00e9nyt architekt\u00fara specifikus burkolatokban val\u00f3s\u00edtunk meg (pl. src/avr/gpio.c ). A k\u00f3dot a gcc's \"-flto -fwhole-program\" optimaliz\u00e1l\u00e1ssal ford\u00edtottuk, amely kiv\u00e1l\u00f3 munk\u00e1t v\u00e9gez a f\u00fcggv\u00e9nyek sorol\u00e1s\u00e1ban a ford\u00edt\u00e1si egys\u00e9geken kereszt\u00fcl, \u00edgy a legt\u00f6bb ilyen apr\u00f3 GPIO f\u00fcggv\u00e9ny sorolva van a h\u00edv\u00f3ikban, \u00e9s nincs fut\u00e1sidej\u0171 k\u00f6lts\u00e9ge a haszn\u00e1latuknak. Klippy k\u00f3d \u00e1ttekint\u00e9se \u00b6 A gazdak\u00f3dot (Klippy) egy olcs\u00f3 sz\u00e1m\u00edt\u00f3g\u00e9pen (p\u00e9ld\u00e1ul egy Raspberry Pi) kell futtatni a mikrokontrollerrel p\u00e1ros\u00edtva. A k\u00f3d els\u0151sorban Pythonban \u00edr\u00f3dott, azonban a CFFI-t haszn\u00e1lja n\u00e9h\u00e1ny funkci\u00f3 C k\u00f3dban t\u00f6rt\u00e9n\u0151 megval\u00f3s\u00edt\u00e1s\u00e1hoz. A kezdeti v\u00e9grehajt\u00e1s a klippy/klippy.py f\u00e1jlban kezd\u0151dik. Ez beolvassa a parancssori argumentumokat, megnyitja a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1t, p\u00e9ld\u00e1nyos\u00edtja a f\u0151 nyomtat\u00f3objektumokat, \u00e9s elind\u00edtja a soros kapcsolatot. A G-k\u00f3d parancsok f\u0151 v\u00e9grehajt\u00e1sa a process_commands() met\u00f3dusban t\u00f6rt\u00e9nik az klippy/gcode.py f\u00e1jlban. Ez a k\u00f3d a G-k\u00f3d parancsokat nyomtat\u00f3objektum h\u00edv\u00e1sokk\u00e1 ford\u00edtja le, amelyek gyakran a m\u0171veleteket a mikrovez\u00e9rl\u0151n v\u00e9grehajtand\u00f3 parancsokk\u00e1 alak\u00edtj\u00e1k (a mikrovez\u00e9rl\u0151 k\u00f3dj\u00e1ban a DECL_COMMAND makr\u00f3n kereszt\u00fcl). A Klippy gazdag\u00e9p k\u00f3dj\u00e1ban n\u00e9gy sz\u00e1l van. A f\u0151 sz\u00e1l kezeli a bej\u00f6v\u0151 G-k\u00f3d parancsokat. Egy m\u00e1sodik sz\u00e1l (amely teljes eg\u00e9sz\u00e9ben a klippy/chelper/serialqueue.c C k\u00f3dban tal\u00e1lhat\u00f3) az alacsony szint\u0171 IO-t kezeli a soros portal. A harmadik sz\u00e1l a Python k\u00f3dban (l\u00e1sd klippy/serialhdl.py ) a mikrokontroller v\u00e1lasz\u00fczeneteinek feldolgoz\u00e1s\u00e1ra szolg\u00e1l. A negyedik sz\u00e1l hibakeres\u00e9si \u00fczeneteket \u00edr a napl\u00f3ba (l\u00e1sd klippy/queuelogger.py ), hogy a t\u00f6bbi sz\u00e1l soha ne blokkoljon a napl\u00f3\u00edr\u00e1skor. Mozg\u00e1sparancs k\u00f3dfolyama \u00b6 Egy tipikus nyomtat\u00f3mozg\u00e1s akkor kezd\u0151dik, amikor egy \"G1\" parancsot k\u00fcld\u00fcnk a Klippy gazdag\u00e9pnek, \u00e9s akkor fejez\u0151dik be, amikor a megfelel\u0151 l\u00e9p\u00e9simpulzusok megjelennek a mikrokontrolleren. Ez a szakasz egy tipikus mozgat\u00e1si parancs k\u00f3dfolyamat\u00e1t v\u00e1zolja fel. A kinematika dokumentum tov\u00e1bbi inform\u00e1ci\u00f3kat tartalmaz a mozg\u00e1sok mechanik\u00e1j\u00e1r\u00f3l. A mozg\u00e1s parancs feldolgoz\u00e1sa a gcode.py f\u00e1jlban kezd\u0151dik. A gcode.py c\u00e9lja a G-k\u00f3d leford\u00edt\u00e1sa bels\u0151 h\u00edv\u00e1sokk\u00e1. Egy G1 parancs a klippy/extras/gcode_move.py \u00e1llom\u00e1nyban l\u00e9v\u0151 cmd_G1() parancsot h\u00edvja meg. A gcode_move.py k\u00f3d kezeli az eredetv\u00e1ltoz\u00e1sokat (pl. G92), a relat\u00edv \u00e9s abszol\u00fat poz\u00edci\u00f3k k\u00f6z\u00f6tti v\u00e1ltoz\u00e1sokat (pl. G90) \u00e9s az egys\u00e9gv\u00e1ltoz\u00e1sokat (pl. F6000=100mm/s). A k\u00f3d \u00fatvonala a mozgat\u00e1shoz a k\u00f6vetkez\u0151: _process_data() -> _process_commands() -> cmd_G1() . V\u00e9g\u00fcl a ToolHead oszt\u00e1lyt h\u00edvjuk meg a t\u00e9nyleges k\u00e9r\u00e9s v\u00e9grehajt\u00e1s\u00e1hoz: cmd_G1() -> ToolHead.move() A ToolHead oszt\u00e1ly (a toolhead.py \u00e1llom\u00e1nyban) kezeli a \"look-ahead\" \u00e9s k\u00f6veti a nyomtat\u00e1si m\u0171veletek id\u0151z\u00edt\u00e9s\u00e9t. A f\u0151 k\u00f3d\u00fatvonal egy mozdulathoz a k\u00f6vetkez\u0151: ToolHead.move() -> MoveQueue.add_move() -> MoveQueue.flush() -> Move.set_junction() -> ToolHead._process_moves() . A ToolHead.move() l\u00e9trehoz egy Move() objektumot a mozg\u00e1s param\u00e9tereivel (cartesian t\u00e9rben, m\u00e1sodperc \u00e9s millim\u00e9ter egys\u00e9gekben). A kinematikai oszt\u00e1ly lehet\u0151s\u00e9get kap az egyes mozg\u00e1sok ellen\u0151rz\u00e9s\u00e9re ( ToolHead.move() -> kin.check_move() ). A kinematikai oszt\u00e1lyok a klippy/kinematics/ k\u00f6nyvt\u00e1rban tal\u00e1lhat\u00f3k. A check_move() k\u00f3d hib\u00e1t adhat ki, ha a mozg\u00e1s nem \u00e9rv\u00e9nyes. Ha a check_move() sikeresen befejez\u0151dik, akkor az alapul szolg\u00e1l\u00f3 kinematik\u00e1nak k\u00e9pesnek kell lennie a mozg\u00e1s kezel\u00e9s\u00e9re. A MoveQueue.add_move() elhelyezi a move objektumot a \"look-ahead\" v\u00e1r\u00f3list\u00e1n. A MoveQueue.flush() meghat\u00e1rozza az egyes mozg\u00e1sok kezd\u0151 \u00e9s v\u00e9gsebess\u00e9g\u00e9t. A Move.set_junction() a \"trap\u00e9zgener\u00e1tort\" val\u00f3s\u00edtja meg egy mozg\u00e1sban. A \"trap\u00e9zgener\u00e1tor\" minden mozg\u00e1st h\u00e1rom r\u00e9szre bont: egy \u00e1lland\u00f3 gyorsul\u00e1si f\u00e1zisra, majd egy \u00e1lland\u00f3 sebess\u00e9g f\u00e1zisra, majd egy \u00e1lland\u00f3 lassul\u00e1si f\u00e1zisra. Minden mozg\u00e1s ebben a sorrendben tartalmazza ezt a h\u00e1rom f\u00e1zist, de egyes f\u00e1zisok id\u0151tartama lehet nulla is. Amikor a ToolHead._process_moves() megh\u00edv\u00e1sra ker\u00fcl, a mozg\u00e1ssal kapcsolatban minden ismert a kezd\u0151helye, a v\u00e9ghelye, a gyorsul\u00e1sa, a kezd\u0151/k\u00f6r\u00f6z\u00e9si/v\u00e9gsebess\u00e9ge \u00e9s a gyorsul\u00e1s/k\u00f6r\u00f6z\u00e9si/v\u00e9gsebess\u00e9g alatt megtett t\u00e1vols\u00e1g. Minden inform\u00e1ci\u00f3 a Move() oszt\u00e1lyban t\u00e1rol\u00f3dik, \u00e9s cartesian t\u00e9rben, millim\u00e9ter \u00e9s m\u00e1sodperc egys\u00e9gekben van megadva. A Klipper egy iterat\u00edv megold\u00f3t haszn\u00e1l az egyes l\u00e9ptet\u0151k l\u00e9p\u00e9sidej\u00e9nek l\u00e9trehoz\u00e1s\u00e1hoz. Hat\u00e9konys\u00e1gi okokb\u00f3l a l\u00e9ptet\u0151 impulzusid\u0151ket C k\u00f3dban gener\u00e1lja. A mozg\u00e1sokat el\u0151sz\u00f6r egy \"trap\u00e9zmozg\u00e1s v\u00e1r\u00f3list\u00e1ra\" helyezz\u00fck: ToolHead._process_moves() -> trapq_append() (a klippy/chelper/trapq.c-ben). A l\u00e9p\u00e9sid\u0151k ezut\u00e1n gener\u00e1l\u00f3dnak: ToolHead._process_moves() -> ToolHead._update_move_time() -> MCU_Stepper.generate_steps() -> itersolve_generate_steps() -> itersolve_gen_steps_range() (a klippy/chelper/itersolve.c-ben). Az iterat\u00edv megold\u00f3 c\u00e9lja, hogy l\u00e9p\u00e9sid\u0151ket tal\u00e1ljon egy olyan f\u00fcggv\u00e9nyt adva, amely egy id\u0151b\u0151l kisz\u00e1m\u00edtja a l\u00e9p\u00e9shelyzetet. Ez \u00fagy t\u00f6rt\u00e9nik, hogy t\u00f6bbsz\u00f6r \"tal\u00e1lgatja\" a k\u00fcl\u00f6nb\u00f6z\u0151 id\u0151ket, am\u00edg a l\u00e9ptet\u0151 poz\u00edci\u00f3 k\u00e9plet vissza nem adja a l\u00e9ptet\u0151 k\u00f6vetkez\u0151 l\u00e9p\u00e9s\u00e9nek k\u00edv\u00e1nt poz\u00edci\u00f3j\u00e1t. Az egyes tal\u00e1lgat\u00e1sokb\u00f3l sz\u00e1rmaz\u00f3 visszajelz\u00e9seket a j\u00f6v\u0151beli tal\u00e1lgat\u00e1sok jav\u00edt\u00e1s\u00e1ra haszn\u00e1ld, hogy a folyamat gyorsan konverg\u00e1ljon a k\u00edv\u00e1nt id\u0151h\u00f6z. A kinematikus l\u00e9ptet\u0151 poz\u00edci\u00f3 k\u00e9pletek a klippy/chelper/ k\u00f6nyvt\u00e1rban tal\u00e1lhat\u00f3k (pl. kin_cart.c, kin_corexy.c, kin_delta.c, kin_extruder.c). Vedd figyelembe, hogy az extruder saj\u00e1t kinematikai oszt\u00e1lyban van kezelve: ToolHead._process_moves() -> PrinterExtruder.move() . Mivel a Move() oszt\u00e1ly pontosan megadja a mozg\u00e1s idej\u00e9t, \u00e9s mivel a l\u00e9p\u00e9simpulzusokat meghat\u00e1rozott id\u0151z\u00edt\u00e9ssel k\u00fcldi a mikrokontrollerhez, az extruder oszt\u00e1ly \u00e1ltal el\u0151\u00e1ll\u00edtott l\u00e9ptet\u0151mozg\u00e1sok szinkronban lesznek a fejmozg\u00e1ssal, annak ellen\u00e9re, hogy a k\u00f3dot elk\u00fcl\u00f6n\u00edtve tartjuk. Miut\u00e1n az iterat\u00edv megold\u00f3 kisz\u00e1m\u00edtja a l\u00e9p\u00e9sid\u0151ket, azok egy t\u00f6mbh\u00f6z ker\u00fclnek hozz\u00e1ad\u00e1sra: itersolve_gen_steps_range() -> stepcompress_append() (in klippy/chelper/stepcompress.c). A t\u00f6mb (struct stepcompress.queue) minden l\u00e9p\u00e9shez t\u00e1rolja a mikrokontroller megfelel\u0151 \u00f3rasz\u00e1ml\u00e1l\u00f3 idej\u00e9t. Itt a \"mikrokontroller \u00f3rasz\u00e1ml\u00e1l\u00f3\" \u00e9rt\u00e9ke k\u00f6zvetlen\u00fcl megfelel a mikrokontroller hardveres sz\u00e1ml\u00e1l\u00f3j\u00e1nak, a mikrokontroller utols\u00f3 bekapcsol\u00e1s\u00e1nak id\u0151pontj\u00e1hoz viszony\u00edtva. A k\u00f6vetkez\u0151 fontos l\u00e9p\u00e9s a l\u00e9p\u00e9sek t\u00f6m\u00f6r\u00edt\u00e9se: stepcompress_flush() -> compress_bisect_add() (in klippy/chelper/stepcompress.c). Ez a k\u00f3d gener\u00e1lja \u00e9s k\u00f3dolja a mikrokontroller \"queue_step\" parancsainak sorozat\u00e1t, amelyek megfelelnek az el\u0151z\u0151 szakaszban fel\u00e9p\u00edtett l\u00e9ptet\u0151 l\u00e9p\u00e9sid\u0151k list\u00e1j\u00e1nak. Ezek a \"queue_step\" parancsok ezut\u00e1n sorba ker\u00fclnek, priorit\u00e1st kapnak, \u00e9s elk\u00fcld\u00e9sre ker\u00fclnek a mikrokontrollernek (a stepcompress.c:steppersync \u00e9s a serialqueue.c:serialqueue k\u00f3dokon kereszt\u00fcl). A queue_step parancsok feldolgoz\u00e1sa a mikrokontrollerben az src/command.c \u00e1llom\u00e1nyban kezd\u0151dik, amely elemzi a parancsot \u00e9s megh\u00edvja a command_queue_step() parancsot. A command_queue_step() k\u00f3d (az src/stepper.c-ben) csak az egyes queue_step parancsok param\u00e9tereit csatolja egy-egy stepper sorba. Norm\u00e1l m\u0171k\u00f6d\u00e9s eset\u00e9n a queue_step parancsot legal\u00e1bb 100ms-mal az els\u0151 l\u00e9p\u00e9s id\u0151pontja el\u0151tt elemzi \u00e9s be\u00e1ll\u00edtja a sorba. V\u00e9g\u00fcl a l\u00e9ptet\u0151 esem\u00e9nyek gener\u00e1l\u00e1sa a stepper_event() -ban t\u00f6rt\u00e9nik. Ezt a hardveres id\u0151z\u00edt\u0151 megszak\u00edt\u00e1s\u00e1b\u00f3l h\u00edvjuk meg az els\u0151 l\u00e9p\u00e9s tervezett id\u0151pontj\u00e1ban. A stepper_event() k\u00f3d gener\u00e1l egy l\u00e9p\u00e9simpulzust, majd \u00e1t\u00fctemezi mag\u00e1t a k\u00f6vetkez\u0151 l\u00e9p\u00e9simpulzus idej\u00e9re a megadott queue_step param\u00e9terekhez. Az egyes queue_step parancsok param\u00e9terei a k\u00f6vetkez\u0151k: \"interval\", \"count\" \u00e9s \"add\". Magas szinten a stepper_event() a k\u00f6vetkez\u0151ket hajtja v\u00e9gre, 'count' times: do_step(); next_wake_time = last_wake_time + interval; interval += add; A fentiek soknak t\u0171nhetnek egy mozdulat v\u00e9grehajt\u00e1s\u00e1hoz. Az egyetlen igaz\u00e1n \u00e9rdekes r\u00e9sz azonban a ToolHead \u00e9s a kinematikai oszt\u00e1lyokban tal\u00e1lhat\u00f3. Ez a k\u00f3dnak azon r\u00e9sze, amely meghat\u00e1rozza a mozg\u00e1sokat \u00e9s azok id\u0151z\u00edt\u00e9s\u00e9t. A feldolgoz\u00e1s t\u00f6bbi r\u00e9sze t\u00f6bbnyire csak kommunik\u00e1ci\u00f3 \u00e9s munka. Gazdamodul hozz\u00e1ad\u00e1sa \u00b6 A Klippy host k\u00f3dja dinamikus modulbet\u00f6lt\u00e9si k\u00e9pess\u00e9ggel rendelkezik. Ha a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1ban tal\u00e1lhat\u00f3 egy \"[my_module]\" nev\u0171 konfigur\u00e1ci\u00f3s szakasz, akkor a szoftver automatikusan megpr\u00f3b\u00e1lja bet\u00f6lteni a klippy/extras/my_module.py modult. Ez a modulrendszer a Klipper \u00faj funkci\u00f3k hozz\u00e1ad\u00e1s\u00e1nak el\u0151nyben r\u00e9szes\u00edtett m\u00f3dszere. Egy \u00faj modul hozz\u00e1ad\u00e1s\u00e1nak legegyszer\u0171bb m\u00f3dja, ha egy megl\u00e9v\u0151 modult haszn\u00e1lunk hivatkoz\u00e1sk\u00e9nt. L\u00e1sd klippy/extras/servo.py p\u00e9ldak\u00e9nt. A k\u00f6vetkez\u0151k is hasznosak lehetnek: A modul v\u00e9grehajt\u00e1sa a modulszint\u0171 load_config() f\u00fcggv\u00e9nyben kezd\u0151dik (a [my_module] form\u00e1j\u00fa config szakaszok eset\u00e9n) vagy a load_config_prefix() f\u00fcggv\u00e9nyben (a [my_module my_name] form\u00e1j\u00fa config szakaszok eset\u00e9n). Ennek a f\u00fcggv\u00e9nynek egy \"config\" objektumot kell \u00e1tadni, \u00e9s egy \u00faj \"printer objektumot\" kell visszaadnia, amely az adott config szakaszhoz kapcsol\u00f3dik. Egy \u00faj nyomtat\u00f3objektum p\u00e9ld\u00e1nyos\u00edt\u00e1sa sor\u00e1n a config objektum seg\u00edts\u00e9g\u00e9vel param\u00e9tereket olvashat be az adott config szakaszb\u00f3l. Erre a config.get() , config.getfloat() , config.getint() stb. met\u00f3dusok szolg\u00e1lnak. \u00dcgyelj arra, hogy a nyomtat\u00f3 objektum fel\u00e9p\u00edt\u00e9se sor\u00e1n minden \u00e9rt\u00e9ket beolvasson a config-b\u00f3l. Ha a felhaszn\u00e1l\u00f3 olyan config param\u00e9tert ad meg, amelyet ebben a f\u00e1zisban nem olvas be, akkor azt felt\u00e9telezi, hogy el\u00edr\u00e1s t\u00f6rt\u00e9nt a config-ban, \u00e9s hiba\u00fczenetet ad. A config.get_printer() met\u00f3dus seg\u00edts\u00e9g\u00e9vel megkapjuk a f\u0151 \"printer\" oszt\u00e1lyra val\u00f3 hivatkoz\u00e1st. Ez a \"printer\" oszt\u00e1ly t\u00e1rolja a hivatkoz\u00e1sokat az \u00f6sszes \"nyomtat\u00f3 objektumra\", amelyet m\u00e1r p\u00e9ld\u00e1nyos\u00edtottak. A printer.lookup_object() met\u00f3dus seg\u00edts\u00e9g\u00e9vel megkereshetj\u00fck a t\u00f6bbi nyomtat\u00f3 objektumra mutat\u00f3 hivatkoz\u00e1sokat. Szinte minden funkci\u00f3 (m\u00e9g az alapvet\u0151 kinematikai modulok is) egy ilyen nyomtat\u00f3 objektumba vannak kapszul\u00e1zva. Vegy\u00fck azonban figyelembe, hogy egy \u00faj modul p\u00e9ld\u00e1nyos\u00edt\u00e1sakor nem minden m\u00e1s nyomtat\u00f3 objektumot p\u00e9ld\u00e1nyos\u00edtottunk. A \"gcode\" \u00e9s a \"pins\" modulok mindig el\u00e9rhet\u0151ek lesznek, de a t\u00f6bbi modul eset\u00e9ben \u00e9rdemes elhalasztani a keres\u00e9st. Az esem\u00e9nykezel\u0151ket a printer.register_event_handler() m\u00f3dszerrel regisztr\u00e1lhatja, ha a k\u00f3dot m\u00e1s nyomtat\u00f3 objektumok \u00e1ltal kiv\u00e1ltott \"events\" sor\u00e1n kell megh\u00edvni. Minden esem\u00e9ny neve egy karakterl\u00e1nc, \u00e9s a konvenci\u00f3 szerint az esem\u00e9nyt kiv\u00e1lt\u00f3 f\u0151 forr\u00e1smodul neve, valamint az esem\u00e9nyt kiv\u00e1lt\u00f3 m\u0171velet r\u00f6vid neve (pl. \"klippy:connect\"). Az egyes esem\u00e9nykezel\u0151knek \u00e1tadott param\u00e9terek az adott esem\u00e9nyre jellemz\u0151ek (ahogy a kiv\u00e9telkezel\u00e9s \u00e9s a v\u00e9grehajt\u00e1si kontextus is). K\u00e9t gyakori ind\u00edt\u00e1si esem\u00e9ny a k\u00f6vetkez\u0151: klippy:connect - Ez az esem\u00e9ny az \u00f6sszes nyomtat\u00f3 objektum p\u00e9ld\u00e1nyos\u00edt\u00e1sa ut\u00e1n gener\u00e1l\u00f3dik. \u00c1ltal\u00e1ban m\u00e1s nyomtat\u00f3 objektumok keres\u00e9s\u00e9re, a konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sok ellen\u0151rz\u00e9s\u00e9re \u00e9s a kezdeti \"handshake\" v\u00e9grehajt\u00e1s\u00e1ra haszn\u00e1lj\u00e1k a nyomtat\u00f3 hardver\u00e9vel. klippy:ready - Ez az esem\u00e9ny az \u00f6sszes csatlakoz\u00e1si kezel\u0151 sikeres befejez\u00e9se ut\u00e1n gener\u00e1l\u00f3dik. Jelzi, hogy a nyomtat\u00f3 \u00e1tv\u00e1lt a norm\u00e1l m\u0171veletek kezel\u00e9s\u00e9re k\u00e9sz \u00e1llapotba. Ebben a visszah\u00edv\u00e1sban ne jelezzen hib\u00e1t. Ha hiba van a felhaszn\u00e1l\u00f3 konfigur\u00e1ci\u00f3j\u00e1ban, mindenk\u00e9ppen h\u00edvja fel a figyelmet a load_config() vagy a \"connect event\" f\u00e1zisokban. Haszn\u00e1ld a raise config.error(\"my error\") vagy raise printer.config_error(\"my error\") hibajelz\u00e9st. A \"pins\" modul seg\u00edts\u00e9g\u00e9vel konfigur\u00e1lhat egy t\u0171t a mikrokontrollerben. Ez \u00e1ltal\u00e1ban a printer.lookup_object(\"pins\").setup_pin(\"pwm\", config.get(\"my_pin\")) -hoz hasonl\u00f3 m\u00f3don t\u00f6rt\u00e9nik. A visszakapott objektumot ezut\u00e1n fut\u00e1sid\u0151ben lehet utas\u00edtani. Ha a nyomtat\u00f3 objektum defini\u00e1l egy get_status() met\u00f3dust, akkor a modul \u00e1llapotinform\u00e1ci\u00f3t export\u00e1lhat a makr\u00f3kon \u00e9s az API Szerveren kereszt\u00fcl. A get_status() met\u00f3dusnak egy Python sz\u00f3t\u00e1rat kell visszaadnia, amelynek kulcsai karakterl\u00e1ncok, \u00e9rt\u00e9kei pedig eg\u00e9sz sz\u00e1mok, lebeg\u0151 sz\u00e1mok, karakterl\u00e1ncok, list\u00e1k, sz\u00f3t\u00e1rak, True, False vagy None. Haszn\u00e1lhat\u00f3k tuplik (\u00e9s neves\u00edtett tuplik) is (ezek az API-kiszolg\u00e1l\u00f3n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 el\u00e9r\u00e9skor listak\u00e9nt jelennek meg). Az export\u00e1lt \"immutable\" list\u00e1kat \u00e9s sz\u00f3t\u00e1rakat. Ha tartalmuk megv\u00e1ltozik, akkor egy \u00faj objektumot kell visszak\u00fcldeni a get_status() parancsb\u00f3l, k\u00fcl\u00f6nben az API-kiszolg\u00e1l\u00f3 nem fogja \u00e9szlelni a v\u00e1ltoz\u00e1sokat. Ha a modulnak hozz\u00e1f\u00e9r\u00e9sre van sz\u00fcks\u00e9ge a rendszer id\u0151z\u00edt\u00e9s\u00e9hez vagy k\u00fcls\u0151 f\u00e1jlle\u00edr\u00f3khoz, akkor a printer.get_reactor() seg\u00edts\u00e9g\u00e9vel hozz\u00e1f\u00e9rhet\u00fcnk a glob\u00e1lis \"event reactor\" oszt\u00e1lyhoz. Ez a reactor oszt\u00e1ly lehet\u0151v\u00e9 teszi az id\u0151z\u00edt\u0151k \u00fctemez\u00e9s\u00e9t, a f\u00e1jlle\u00edr\u00f3k bemenet\u00e9nek v\u00e1rakoz\u00e1s\u00e1t, valamint a gazdak\u00f3d \"sleep\" haszn\u00e1lat\u00e1t. Ne haszn\u00e1lj glob\u00e1lis v\u00e1ltoz\u00f3kat. Minden \u00e1llapotot a load_config() f\u00fcggv\u00e9ny \u00e1ltal visszaadott nyomtat\u00f3 objektumban kell t\u00e1rolni. Ez az\u00e9rt fontos, mert ellenkez\u0151 esetben a RESTART parancs nem az elv\u00e1rtaknak megfelel\u0151en fog m\u0171k\u00f6dni. Szint\u00e9n hasonl\u00f3 okokb\u00f3l, ha b\u00e1rmilyen k\u00fcls\u0151 f\u00e1jl (vagy foglalat) megny\u00edlt, akkor mindenk\u00e9ppen regisztr\u00e1ljunk egy \"klippy:disconnect\" esem\u00e9nykezel\u0151t, \u00e9s z\u00e1rjuk be \u0151ket ebb\u0151l a visszah\u00edv\u00e1sb\u00f3l. Ker\u00fclje a m\u00e1s nyomtat\u00f3 objektumok bels\u0151 tagv\u00e1ltoz\u00f3inak el\u00e9r\u00e9s\u00e9t (vagy az al\u00e1h\u00faz\u00e1ssal kezd\u0151d\u0151 met\u00f3dusok h\u00edv\u00e1s\u00e1t). Ennek a konvenci\u00f3nak a betart\u00e1sa megk\u00f6nny\u00edti a j\u00f6v\u0151beli v\u00e1ltoz\u00e1sok kezel\u00e9s\u00e9t. Javasoljuk, hogy a Python oszt\u00e1lyok Python konstruktor\u00e1ban minden tagv\u00e1ltoz\u00f3hoz \u00e9rt\u00e9ket rendeljen. (\u00c9s ez\u00e9rt ker\u00fclje a Python azon k\u00e9pess\u00e9g\u00e9nek kihaszn\u00e1l\u00e1s\u00e1t, hogy dinamikusan hozzon l\u00e9tre \u00faj tagv\u00e1ltoz\u00f3kat.) Ha egy Python v\u00e1ltoz\u00f3nak lebeg\u0151pontos \u00e9rt\u00e9ket kell t\u00e1rolnia, akkor aj\u00e1nlott mindig lebeg\u0151pontos konstansokkal hozz\u00e1rendelni \u00e9s kezelni a v\u00e1ltoz\u00f3t (\u00e9s soha ne haszn\u00e1ljunk eg\u00e9sz\u00e9rt\u00e9k\u0171 konstansokat). P\u00e9ld\u00e1ul r\u00e9szes\u00edts\u00fck el\u0151nyben a self.speed = 1. \u00e9rt\u00e9ket a self.speed = 1 \u00e9rt\u00e9kkel szemben, \u00e9s r\u00e9szes\u00edts\u00fck el\u0151nyben a self.speed = 2 \u00e9rt\u00e9ket. * x a self.speed = 2 * x helyett. A lebeg\u0151pontos \u00e9rt\u00e9kek k\u00f6vetkezetes haszn\u00e1lat\u00e1val elker\u00fclhet\u0151k a Python-t\u00edpuskonverzi\u00f3k nehezen hibakereshet\u0151 furcsas\u00e1gai. Ha a modult a Klipper f\u0151k\u00f3dj\u00e1ba val\u00f3 be\u00e9p\u00edt\u00e9sre k\u00fcld\u00f6d, mindenk\u00e9ppen helyezz el egy szerz\u0151i jogi megjegyz\u00e9st a modul tetej\u00e9n. Az el\u0151nyben r\u00e9szes\u00edtett form\u00e1tumot l\u00e1sd a megl\u00e9v\u0151 modulokn\u00e1l. \u00daj kinematika hozz\u00e1ad\u00e1sa \u00b6 Ez a szakasz n\u00e9h\u00e1ny tippet ad a Klipper tov\u00e1bbi nyomtat\u00f3 kinematikai t\u00edpusok t\u00e1mogat\u00e1s\u00e1nak hozz\u00e1ad\u00e1s\u00e1hoz. Az ilyen t\u00edpus\u00fa tev\u00e9kenys\u00e9ghez a c\u00e9l kinematik\u00e1hoz tartoz\u00f3 matematikai k\u00e9pletek kiv\u00e1l\u00f3 ismerete sz\u00fcks\u00e9ges. Szoftverfejleszt\u00e9si ismereteket is ig\u00e9nyel, b\u00e1r csak a gazdaszoftvert kell friss\u00edteni. Hasznos l\u00e9p\u00e9sek: Kezdd \" Egy mozg\u00e1s k\u00f3dfolyamata \" szakasz \u00e9s a Kinematika dokumentum tanulm\u00e1nyoz\u00e1s\u00e1val. Tekintsd \u00e1t a klippy/kinematics/ k\u00f6nyvt\u00e1rban tal\u00e1lhat\u00f3 kinematikai oszt\u00e1lyokat. A kinematikai oszt\u00e1lyok feladata egy cartesian koordin\u00e1t\u00e1kban megadott mozg\u00e1s \u00e1talak\u00edt\u00e1sa az egyes l\u00e9ptet\u0151k\u00f6n t\u00f6rt\u00e9n\u0151 mozg\u00e1ss\u00e1. Kiindul\u00f3pontk\u00e9nt le kell tudni m\u00e1solni az egyik ilyen f\u00e1jlt. Implement\u00e1ljuk a C l\u00e9ptet\u0151ket kinematikai poz\u00edci\u00f3f\u00fcggv\u00e9nyeit minden l\u00e9ptet\u0151h\u00f6z, ha azok m\u00e9g nem \u00e1llnak rendelkez\u00e9sre (l\u00e1sd a kin_cart.c, kin_corexy.c \u00e9s kin_delta.c f\u00e1jlokat a klippy/chelper/ \u00e1llom\u00e1nyban). A f\u00fcggv\u00e9nynek meg kell h\u00edvnia move_get_coord() , hogy egy adott mozg\u00e1sid\u0151t (m\u00e1sodpercben) cartesian koordin\u00e1t\u00e1v\u00e1 (millim\u00e9terben) konvert\u00e1ljon, majd ebb\u0151l a cartesian koordin\u00e1t\u00e1b\u00f3l kisz\u00e1m\u00edtsa a k\u00edv\u00e1nt l\u00e9ptet\u0151 poz\u00edci\u00f3t (millim\u00e9terben). Az \u00faj kinematikai oszt\u00e1lyban implement\u00e1ljuk a calc_position() m\u00f3dszert. Ez a met\u00f3dus kisz\u00e1m\u00edtja a nyomtat\u00f3fej poz\u00edci\u00f3j\u00e1t cartesian koordin\u00e1t\u00e1kban az egyes l\u00e9ptet\u0151motorok poz\u00edci\u00f3j\u00e1b\u00f3l. Nem kell, hogy hat\u00e9kony legyen, mivel jellemz\u0151en csak a kezd\u0151pont \u00e9s az \u00e9rint\u00e9si m\u0171veletek sor\u00e1n h\u00edvjuk meg. Egy\u00e9b m\u00f3dszerek. Implement\u00e1lja a check_move() , get_status() met\u00f3dusokat, get_steppers() , home() \u00e9s set_position() m\u00f3dszereket. Ezeket a f\u00fcggv\u00e9nyeket \u00e1ltal\u00e1ban kinematikai specifikus ellen\u0151rz\u00e9sek biztos\u00edt\u00e1s\u00e1ra haszn\u00e1lj\u00e1k. A fejleszt\u00e9s kezdet\u00e9n azonban haszn\u00e1lhatunk itt kaz\u00e1n-lemez szer\u0171 k\u00f3dot. Tesztel\u00e9si esetek v\u00e9grehajt\u00e1sa. K\u00e9sz\u00edtsen egy G-k\u00f3d f\u00e1jlt egy sor olyan mozg\u00e1ssal, amelyekkel az adott kinematika fontos eseteit tesztelheti. K\u00f6vesse a Hibakeres\u00e9si dokument\u00e1ci\u00f3t , hogy ezt a G-k\u00f3d f\u00e1jlt mikrokontroller parancsokk\u00e1 alak\u00edtsa \u00e1t. Ez hasznos a sarokesetek gyakorl\u00e1s\u00e1ra \u00e9s a regresszi\u00f3k ellen\u0151rz\u00e9s\u00e9re. Portol\u00e1s \u00faj mikrokontrollerre \u00b6 Ez a szakasz n\u00e9h\u00e1ny tippet ad a Klipper mikrokontroller k\u00f3dj\u00e1nak \u00faj architekt\u00far\u00e1ra t\u00f6rt\u00e9n\u0151 \u00e1tvitel\u00e9hez. Ez a fajta tev\u00e9kenys\u00e9g j\u00f3 be\u00e1gyazott fejleszt\u00e9si ismereteket \u00e9s gyakorlati hozz\u00e1f\u00e9r\u00e9st ig\u00e9nyel a c\u00e9lmikrokontrollerhez. Hasznos l\u00e9p\u00e9sek: Kezd a portol\u00e1s sor\u00e1n haszn\u00e1lni k\u00edv\u00e1nt harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 k\u00f6nyvt\u00e1rak azonos\u00edt\u00e1s\u00e1val. Gyakori p\u00e9lda erre a \"CMSIS\" csomagol\u00e1sok \u00e9s a gy\u00e1rt\u00f3 \"HAL\" k\u00f6nyvt\u00e1rak. Minden harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 k\u00f3dnak GNU GPLv3 kompatibilisnek kell lennie. A harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 k\u00f3dot a Klipper lib/ k\u00f6nyvt\u00e1rba kell \u00e1tvinni. Friss\u00edtse a lib/README f\u00e1jlt azzal az inform\u00e1ci\u00f3val, hogy hol \u00e9s mikor szerezte meg a k\u00f6nyvt\u00e1rat. A k\u00f3dot lehet\u0151leg v\u00e1ltozatlanul m\u00e1sold be a Klipper t\u00e1rol\u00f3ba, de ha b\u00e1rmilyen v\u00e1ltoztat\u00e1sra van sz\u00fcks\u00e9g, akkor ezeket a v\u00e1ltoztat\u00e1sokat kifejezetten fel kell t\u00fcntetni a lib/README f\u00e1jlban. Hozzon l\u00e9tre egy \u00faj architekt\u00fara alk\u00f6nyvt\u00e1rat az src/ k\u00f6nyvt\u00e1rban, \u00e9s adj hozz\u00e1 kezdeti Config \u00e9s Makefile t\u00e1mogat\u00e1st. Haszn\u00e1ld a megl\u00e9v\u0151 architekt\u00far\u00e1kat \u00fatmutat\u00f3k\u00e9nt. Az src/simulator egy alapvet\u0151 p\u00e9ld\u00e1t ny\u00fajt egy minim\u00e1lis kiindul\u00e1si pontra. Az els\u0151 f\u0151 k\u00f3dol\u00e1si feladat a kommunik\u00e1ci\u00f3s t\u00e1mogat\u00e1s fel\u00e1ll\u00edt\u00e1sa az alaplapnak. Ez a legnehezebb l\u00e9p\u00e9s egy \u00faj port eset\u00e9ben. Ha az alapvet\u0151 kommunik\u00e1ci\u00f3 m\u00e1r m\u0171k\u00f6dik, a tov\u00e1bbi l\u00e9p\u00e9sek \u00e1ltal\u00e1ban sokkal k\u00f6nnyebbek. A kezdeti fejleszt\u00e9s sor\u00e1n jellemz\u0151en UART t\u00edpus\u00fa soros eszk\u00f6zt haszn\u00e1lunk, mivel az ilyen t\u00edpus\u00fa hardvereszk\u00f6z\u00f6ket \u00e1ltal\u00e1ban k\u00f6nnyebb enged\u00e9lyezni \u00e9s vez\u00e9relni. Ebben a f\u00e1zisban b\u0151kez\u0171en haszn\u00e1ld az src/generic/ k\u00f6nyvt\u00e1rban tal\u00e1lhat\u00f3 seg\u00e9dk\u00f3dot (ellen\u0151rizd, hogy az src/simulator/Makefile hogyan tartalmazza a generikus C k\u00f3dot a fel\u00e9p\u00edt\u00e9sben). Ebben a f\u00e1zisban sz\u00fcks\u00e9ges defini\u00e1lni a timer_read_time() funkci\u00f3t is (amely visszaadja az aktu\u00e1lis rendszer\u00f3r\u00e1t), de nem sz\u00fcks\u00e9ges a timer irq kezel\u00e9s\u00e9nek teljes t\u00e1mogat\u00e1sa. Ismerkedjen meg a console.py eszk\u00f6zzel (a Hibakeres\u00e9si dokumentumban le\u00edrtak szerint), \u00e9s ellen\u0151rizd vele a mikrokontrollerrel val\u00f3 kapcsolatot. Ez az eszk\u00f6z leford\u00edtja az alacsony szint\u0171 mikrokontroller kommunik\u00e1ci\u00f3s protokollt ember \u00e1ltal olvashat\u00f3 form\u00e1ra. A hardveres megszak\u00edt\u00e1sokb\u00f3l t\u00f6rt\u00e9n\u0151 id\u0151z\u00edt\u0151 k\u00fcld\u00e9s t\u00e1mogat\u00e1s\u00e1nak hozz\u00e1ad\u00e1sa. L\u00e1sd a Klipper commit 970831ee p\u00e9ld\u00e1j\u00e1t az LPC176x architekt\u00fara 1-5. l\u00e9p\u00e9seivel. Alapvet\u0151 GPIO bemeneti \u00e9s kimeneti t\u00e1mogat\u00e1s megjelen\u00edt\u00e9se. L\u00e1sd a Klipper commit c78b9076 p\u00e9ld\u00e1j\u00e1t erre. Tov\u00e1bbi perif\u00e9ri\u00e1k felhoz\u00e1sa. L\u00e1sd p\u00e9ld\u00e1ul a Klipper megb\u00edz\u00e1sokat 65613aed , c812a40a \u00e9s c381d03a . Hozzon l\u00e9tre egy minta Klipper konfigur\u00e1ci\u00f3s f\u00e1jlt a config/ k\u00f6nyvt\u00e1rban. Tesztelj\u00fck a mikrokontrollert a klippy.py f\u0151programmal. Fontolja meg a test/ k\u00f6nyvt\u00e1rban l\u00e9v\u0151 build tesztesetek hozz\u00e1ad\u00e1s\u00e1t. Tov\u00e1bbi k\u00f3dol\u00e1si tippek: Ker\u00fclje a \"C bitfields\" haszn\u00e1lat\u00e1t az IO regiszterek el\u00e9r\u00e9s\u00e9hez; r\u00e9szes\u00edtse el\u0151nyben a 32 bites, 16 bites vagy 8 bites eg\u00e9sz sz\u00e1mok k\u00f6zvetlen olvas\u00e1si \u00e9s \u00edr\u00e1si m\u0171veleteit. A C nyelvi specifik\u00e1ci\u00f3k nem hat\u00e1rozz\u00e1k meg egy\u00e9rtelm\u0171en, hogy a ford\u00edt\u00f3nak hogyan kell megval\u00f3s\u00edtania a C bitmez\u0151ket (pl. endianness \u00e9s bitkioszt\u00e1s), \u00e9s neh\u00e9z meghat\u00e1rozni, hogy milyen IO m\u0171veletek t\u00f6rt\u00e9nnek egy C bitmez\u0151 olvas\u00e1sakor vagy \u00edr\u00e1sakor. Ink\u00e1bb \u00edrjon explicit \u00e9rt\u00e9keket az IO regiszterekbe, minthogy olvas\u00e1s-m\u00f3dos\u00edt\u00e1s-\u00edr\u00e1s m\u0171veleteket haszn\u00e1lj. Azaz, ha egy olyan IO-regiszterben friss\u00edt\u00fcnk egy mez\u0151t, ahol a t\u00f6bbi mez\u0151 \u00e9rt\u00e9kei ismertek, akkor el\u0151ny\u00f6sebb a regiszter teljes tartalm\u00e1t explicit m\u00f3don ki\u00edrni. Az explicit \u00edr\u00e1sok kisebb, gyorsabb \u00e9s k\u00f6nnyebben hibakereshet\u0151 k\u00f3dot eredm\u00e9nyeznek. Koordin\u00e1ta rendszerek \u00b6 A Klipper bels\u0151leg els\u0151sorban a nyomtat\u00f3fej helyzet\u00e9t k\u00f6veti cartesian koordin\u00e1t\u00e1kban, amelyek a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1ta rendszerhez viszony\u00edtva vannak. Ez azt jelenti, hogy a Klipper k\u00f3d nagy r\u00e9sze soha nem tapasztal koordin\u00e1ta rendszer v\u00e1ltoz\u00e1st. Ha a felhaszn\u00e1l\u00f3 az orig\u00f3 megv\u00e1ltoztat\u00e1s\u00e1t k\u00e9ri (pl. egy G92 parancsal), akkor ezt a hat\u00e1st a j\u00f6v\u0151beli parancsok els\u0151dleges koordin\u00e1ta rendszerre t\u00f6rt\u00e9n\u0151 \u00e1tv\u00e1lt\u00e1s\u00e1val \u00e9rj\u00fck el. Bizonyos esetekben azonban hasznos, ha a nyomtat\u00f3fej helyzet\u00e9t m\u00e1s koordin\u00e1ta rendszerben szeretn\u00e9nk megkapni, \u00e9s a Klipper t\u00f6bb eszk\u00f6zzel is megk\u00f6nny\u00edti ezt. Ez a GET_POSITION parancs futtat\u00e1s\u00e1val l\u00e1that\u00f3. P\u00e9ld\u00e1ul: Send: GET_POSITION Recv: // mcu: stepper_a:-2060 stepper_b:-1169 stepper_c:-1613 Recv: // stepper: stepper_a:457.254159 stepper_b:466.085669 stepper_c:465.382132 Recv: // kinematic: X:8.339144 Y:-3.131558 Z:233.347121 Recv: // toolhead: X:8.338078 Y:-3.123175 Z:233.347878 E:0.000000 Recv: // gcode: X:8.338078 Y:-3.123175 Z:233.347878 E:0.000000 Recv: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000 Recv: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000 Az \"MCU\" poz\u00edci\u00f3 ( stepper.get_mcu_position() a k\u00f3dban) a mikrokontroller \u00e1ltal pozit\u00edv ir\u00e1nyban kiadott l\u00e9p\u00e9sek sz\u00e1ma m\u00ednusz a mikrokontroller utols\u00f3 resetel\u00e9se \u00f3ta negat\u00edv ir\u00e1nyban kiadott l\u00e9p\u00e9sek sz\u00e1ma. Ha a g\u00e9p a lek\u00e9rdez\u00e9skor mozg\u00e1sban van, akkor a jelentett \u00e9rt\u00e9k tartalmazza a mikrokontrollerben pufferelt l\u00e9p\u00e9seket, de nem tartalmazza a look-ahead sorban l\u00e9v\u0151 l\u00e9p\u00e9seket. A \"stepper\" poz\u00edci\u00f3 ( stepper.get_commanded_position() ) az adott l\u00e9ptet\u0151 poz\u00edci\u00f3ja, ahogyan azt a kinematikai k\u00f3d k\u00f6veti. Ez \u00e1ltal\u00e1ban megfelel a kocsinak a s\u00edn ment\u00e9n a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott position_endstop-hoz viszony\u00edtott poz\u00edci\u00f3j\u00e1nak (mm-ben). (Egyes kinematik\u00e1k a l\u00e9ptet\u0151k poz\u00edci\u00f3j\u00e1t millim\u00e9ter helyett radi\u00e1nban k\u00f6vetik.) Ha a g\u00e9p a lek\u00e9rdez\u00e9skor mozg\u00e1sban van, akkor a jelentett \u00e9rt\u00e9k tartalmazza a mikrokontrollerben pufferelt mozg\u00e1sokat, de nem tartalmazza a look-ahead sorban l\u00e9v\u0151 mozg\u00e1sokat. Haszn\u00e1lhatjuk a toolhead.flush_step_generation() vagy toolhead.wait_moves() h\u00edv\u00e1sokat a look-ahead \u00e9s a l\u00e9p\u00e9sgener\u00e1l\u00f3 k\u00f3d teljes ki\u00fcr\u00edt\u00e9s\u00e9hez. A \"kinematic\" poz\u00edci\u00f3 ( kin.calc_position() ) a nyomtat\u00f3fej \"stepper\" poz\u00edci\u00f3kb\u00f3l sz\u00e1rmaztatott cartesian poz\u00edci\u00f3ja, \u00e9s a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1tarendszerhez k\u00e9pest relat\u00edv. Ez elt\u00e9rhet a k\u00e9rt cartesian poz\u00edci\u00f3t\u00f3l a l\u00e9ptet\u0151motorok szaggatotts\u00e1ga miatt. Ha a g\u00e9p a \"stepper\" poz\u00edci\u00f3k felv\u00e9telekor mozg\u00e1sban van, akkor a jelentett \u00e9rt\u00e9k tartalmazza a mikrokontrollerben pufferelt mozg\u00e1sokat, de nem tartalmazza a look-ahead v\u00e1r\u00f3list\u00e1n l\u00e9v\u0151 mozg\u00e1sokat. Haszn\u00e1lhatjuk a toolhead.flush_step_generation() vagy toolhead.wait_moves() h\u00edv\u00e1sokat a look-ahead \u00e9s a l\u00e9p\u00e9sgener\u00e1l\u00f3 k\u00f3d teljes ki\u00fcr\u00edt\u00e9s\u00e9hez. A \"toolhead\" poz\u00edci\u00f3 ( toolhead.get_position() ) a nyomtat\u00f3fej utols\u00f3 k\u00e9rt poz\u00edci\u00f3ja cartesian koordin\u00e1t\u00e1kban a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1tarendszerhez k\u00e9pest. Ha a g\u00e9p a lek\u00e9rdez\u00e9s kiad\u00e1sakor mozg\u00e1sban van, akkor a jelentett \u00e9rt\u00e9k tartalmazza az \u00f6sszes k\u00e9rt mozg\u00e1st (m\u00e9g azokat is, amelyek a pufferben vannak \u00e9s a motorvez\u00e9rl\u0151knek val\u00f3 kiad\u00e1sra v\u00e1rnak). A \"gcode\" poz\u00edci\u00f3 a G1 (vagy G0 ) parancs utols\u00f3 k\u00e9rt poz\u00edci\u00f3ja cartesian koordin\u00e1t\u00e1kban, a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1tarendszerhez k\u00e9pest. Ez elt\u00e9rhet a \"toolhead\" poz\u00edci\u00f3t\u00f3l, ha egy G-k\u00f3d transzform\u00e1ci\u00f3 (pl. bed_mesh, bed_tilt, skew_correction) van \u00e9rv\u00e9nyben. Ez elt\u00e9rhet az utols\u00f3 G1 parancsban megadott t\u00e9nyleges koordin\u00e1t\u00e1kt\u00f3l, ha a G-k\u00f3d orig\u00f3ja megv\u00e1ltozott (pl, G92 , SET_GCODE_OFFSET , M221 ). A M114 parancs ( gcode_move.get_status()['gcode_position'] ) az aktu\u00e1lis G-k\u00f3d koordin\u00e1tarendszerhez viszony\u00edtott utols\u00f3 G-k\u00f3d poz\u00edci\u00f3t jelenti. A \"gcode base\" a G-k\u00f3d orig\u00f3j\u00e1nak helye cartesian koordin\u00e1t\u00e1kban a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1tarendszerhez k\u00e9pest. Az olyan parancsok, mint a G92 , SET_GCODE_OFFSET \u00e9s M221 m\u00f3dos\u00edtj\u00e1k ezt az \u00e9rt\u00e9ket. A \"gcode homing\" az a hely, amelyet a G-k\u00f3d orig\u00f3jak\u00e9nt (a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1tarendszerhez viszony\u00edtott cartesian koordin\u00e1t\u00e1kban) a G28 home parancs ut\u00e1n haszn\u00e1lni kell. A SET_GCODE_OFFSET parancs megv\u00e1ltoztathatja ezt az \u00e9rt\u00e9ket. Id\u0151 \u00b6 A Klipper m\u0171k\u00f6d\u00e9s\u00e9nek alapvet\u0151 eleme az \u00f3r\u00e1k, id\u0151pontok \u00e9s id\u0151b\u00e9lyegek kezel\u00e9se. A Klipper a nyomtat\u00f3n v\u00e9grehajtott m\u0171veleteket a k\u00f6zelj\u00f6v\u0151ben bek\u00f6vetkez\u0151 esem\u00e9nyek \u00fctemez\u00e9s\u00e9vel hajtja v\u00e9gre. P\u00e9ld\u00e1ul egy ventil\u00e1tor bekapcsol\u00e1s\u00e1hoz a k\u00f3d \u00fctemezheti egy GPIO-t\u0171 v\u00e1ltoz\u00e1s\u00e1t 100ms alatt. Ritk\u00e1n fordul el\u0151, hogy a k\u00f3d azonnali m\u0171veletet pr\u00f3b\u00e1l v\u00e9grehajtani. Ez\u00e9rt az id\u0151 kezel\u00e9se a Klipperben kritikus fontoss\u00e1g\u00fa a helyes m\u0171k\u00f6d\u00e9s szempontj\u00e1b\u00f3l. A Klipper gazdaszoftverben h\u00e1romf\u00e9le id\u0151t\u00edpust k\u00f6vethet\u00fcnk nyomon: Rendszerid\u0151. A rendszerid\u0151 a rendszer monoton \u00f3r\u00e1j\u00e1t haszn\u00e1lja. Ez egy lebeg\u0151pontos sz\u00e1m, amelyet m\u00e1sodperck\u00e9nt t\u00e1rolnak, \u00e9s (\u00e1ltal\u00e1ban) a gazdasz\u00e1m\u00edt\u00f3g\u00e9p utols\u00f3 ind\u00edt\u00e1sakor. A rendszerid\u0151k korl\u00e1tozottan haszn\u00e1lhat\u00f3k a szoftverben. Els\u0151sorban az oper\u00e1ci\u00f3s rendszerrel val\u00f3 interakci\u00f3 sor\u00e1n haszn\u00e1lj\u00e1k \u0151ket. Az \u00e1llom\u00e1sk\u00f3don bel\u00fcl a rendszerid\u0151ket gyakran az eventtime vagy curtime nev\u0171 v\u00e1ltoz\u00f3k t\u00e1rolj\u00e1k. Nyomtat\u00e1si id\u0151. A nyomtat\u00e1si id\u0151 a mikrokontroller f\u0151 \u00f3r\u00e1j\u00e1hoz szinkroniz\u00e1l\u00f3dik az (\"[mcu]\" config) szakaszban meghat\u00e1rozott mikrokontrollerhez. Ez egy m\u00e1sodpercben t\u00e1rolt lebeg\u0151pontos sz\u00e1m, \u00e9s a f\u0151 MCU utols\u00f3 \u00fajraind\u00edt\u00e1s\u00e1nak id\u0151pontj\u00e1hoz viszony\u00edtva van. Lehet\u0151s\u00e9g van a \"nyomtat\u00e1si id\u0151\"-r\u0151l a f\u0151 mikrokontroller hardveres \u00f3r\u00e1j\u00e1ra val\u00f3 \u00e1tv\u00e1lt\u00e1sra. A nyomtat\u00e1si id\u0151nek az MCU-val val\u00f3 megszorz\u00e1s\u00e1val a statikusan konfigur\u00e1lt frekvenci\u00e1val. A magas szint\u0171 gazdak\u00f3d szinte minden fizikai m\u0171velet (pl. fejmozg\u00e1s, f\u0171t\u00e9sv\u00e1lt\u00e1s stb.) kisz\u00e1m\u00edt\u00e1s\u00e1hoz nyomtat\u00e1si id\u0151t haszn\u00e1l. A gazdak\u00f3don bel\u00fcl a nyomtat\u00e1si id\u0151ket \u00e1ltal\u00e1ban a print_time vagy move_time nev\u0171 v\u00e1ltoz\u00f3kban t\u00e1rolj\u00e1k. MCU \u00f3ra. Ez az egyes mikrovez\u00e9rl\u0151k hardveres \u00f3rasz\u00e1ml\u00e1l\u00f3ja. Eg\u00e9sz sz\u00e1mk\u00e9nt van t\u00e1rolva, friss\u00edt\u00e9si gyakoris\u00e1ga az adott mikrovez\u00e9rl\u0151 frekvenci\u00e1j\u00e1hoz viszony\u00edtott. A gazdaszoftver bels\u0151 idej\u00e9t leford\u00edtja \u00f3r\u00e1kra, miel\u0151tt tov\u00e1bb\u00edtan\u00e1 az MCU-nak. Az MCU k\u00f3d mindig csak az \u00f3ra ketyeg\u00e9s\u00e9ben k\u00f6veti az id\u0151t. A gazdag\u00e9p k\u00f3don bel\u00fcl az \u00f3ra\u00e9rt\u00e9keket 64 bites eg\u00e9sz sz\u00e1mk\u00e9nt k\u00f6veti nyomon, m\u00edg az MCU k\u00f3d 32 bites eg\u00e9sz sz\u00e1mokat haszn\u00e1l. A gazdag\u00e9p k\u00f3don bel\u00fcl az \u00f3r\u00e1k \u00e1ltal\u00e1ban clock vagy tick nevet tartalmaz\u00f3 v\u00e1ltoz\u00f3kban t\u00e1rol\u00f3dnak. A k\u00fcl\u00f6nb\u00f6z\u0151 id\u0151form\u00e1tumok k\u00f6z\u00f6tti konverzi\u00f3 els\u0151sorban a klippy/clocksync.py k\u00f3dban val\u00f3sul meg. N\u00e9h\u00e1ny dolog, amire figyelni kell a k\u00f3d \u00e1ttekint\u00e9sekor: 32 bites \u00e9s 64 bites \u00f3rajelek: A s\u00e1vsz\u00e9less\u00e9g cs\u00f6kkent\u00e9se \u00e9s a mikrokontroller hat\u00e9konys\u00e1g\u00e1nak jav\u00edt\u00e1sa \u00e9rdek\u00e9ben a mikrokontroller \u00f3rajeleit 32 bites eg\u00e9sz sz\u00e1mokk\u00e9nt k\u00f6vetik. K\u00e9t \u00f3rajel \u00f6sszehasonl\u00edt\u00e1sakor az MCU k\u00f3dban mindig a timer_is_before() f\u00fcggv\u00e9nyt kell haszn\u00e1lni, hogy az eg\u00e9sz sz\u00e1mok \u00e1tford\u00edt\u00e1s\u00e1t megfelel\u0151en kezelj\u00fck. A gazdaszoftver a 32 bites \u00f3rajeleket 64 bites \u00f3rajelekk\u00e9 alak\u00edtja \u00e1t az\u00e1ltal, hogy hozz\u00e1adja az utols\u00f3 kapott MCU id\u0151b\u00e9lyegz\u0151 magasrend\u0171 bitjeit. Egyetlen MCU-t\u00f3l \u00e9rkez\u0151 \u00fczenet sem lehet 2^31 \u00f3rajeln\u00e9l t\u00f6bb a j\u00f6v\u0151ben vagy a m\u00faltban, \u00edgy ez az \u00e1talak\u00edt\u00e1s soha nem f\u00e9lre\u00e9rthet\u0151. A gazdag\u00e9p a 64 bites \u00f3rajelekr\u0151l 32 bites \u00f3rajelekre konvert\u00e1l a magasrend\u0171 bitek egyszer\u0171 lefarag\u00e1s\u00e1val. Annak \u00e9rdek\u00e9ben, hogy ez az \u00e1talak\u00edt\u00e1s ne legyen k\u00e9t\u00e9rtelm\u0171, a klippy/chelper/serialqueue.c k\u00f3d addig puffereli az \u00fczeneteket, am\u00edg azok 2^31 \u00f3rajelen bel\u00fcl vannak a c\u00e9lid\u0151h\u00f6z k\u00e9pest. T\u00f6bb mikrovez\u00e9rl\u0151: A gazdaszoftver t\u00e1mogatja t\u00f6bb mikrovez\u00e9rl\u0151 haszn\u00e1lat\u00e1t egyetlen nyomtat\u00f3n. Ebben az esetben minden mikrokontroller \"MCU \u00f3rajel\u00e9t\" k\u00fcl\u00f6n-k\u00fcl\u00f6n k\u00f6veti. A clocksync.py k\u00f3d kezeli a mikrovez\u00e9rl\u0151k k\u00f6z\u00f6tti \u00f3raeltol\u00f3d\u00e1st a \"nyomtat\u00e1si id\u0151r\u0151l\" az \"MCU \u00f3r\u00e1ra\" t\u00f6rt\u00e9n\u0151 \u00e1talak\u00edt\u00e1s m\u00f3dj\u00e1nak m\u00f3dos\u00edt\u00e1s\u00e1val. A m\u00e1sodlagos MCU-n\u00e1l az ebben az \u00e1talak\u00edt\u00e1sban haszn\u00e1lt MCU frekvencia rendszeresen friss\u00fcl, hogy figyelembe vedd a m\u00e9rt cs\u00fasz\u00e1st.","title":"K\u00f3d \u00e1ttekint\u00e9se"},{"location":"Code_Overview.html#kod-attekintese","text":"Ez a dokumentum a Klipper \u00e1ltal\u00e1nos k\u00f3delrendez\u00e9s\u00e9t \u00e9s f\u0151bb k\u00f3dfolyam\u00e1t \u00edrja le.","title":"K\u00f3d \u00e1ttekint\u00e9se"},{"location":"Code_Overview.html#konyvtar-elrendezese","text":"Az src/ k\u00f6nyvt\u00e1r tartalmazza a mikrovez\u00e9rl\u0151 k\u00f3dj\u00e1nak C forr\u00e1s\u00e1t. Az src/atsam/ , src/atsamd/ , src/avr/ , src/linux/ , src/lpc176x/ , src/ A pru/ \u00e9s src/stm32/ k\u00f6nyvt\u00e1rak architekt\u00fara specifikus mikrovez\u00e9rl\u0151 k\u00f3dot tartalmaznak. Az src/simulator/ k\u00f3dcsonkokat tartalmaz, amelyek lehet\u0151v\u00e9 teszik a mikrokontroller tesztel\u00e9s\u00e9t m\u00e1s architekt\u00far\u00e1kon. Az src/generic/ k\u00f6nyvt\u00e1r seg\u00e9dk\u00f3dot tartalmaz, amely hasznos lehet a k\u00fcl\u00f6nb\u00f6z\u0151 architekt\u00far\u00e1kban. A build gondoskodik arr\u00f3l, hogy az include \"board/somefile.h\" el\u0151sz\u00f6r az aktu\u00e1lis architekt\u00fara k\u00f6nyvt\u00e1rban (pl. src/avr/somefile.h), majd az \u00e1ltal\u00e1nos k\u00f6nyvt\u00e1rban (pl. src/generic/somefile.h) keressen. A klippy/ k\u00f6nyvt\u00e1r tartalmazza a gazdaszoftvert. A gazdaszoftver nagy r\u00e9sze Python nyelven \u00edr\u00f3dott, azonban a klippy/chelper/ k\u00f6nyvt\u00e1r tartalmaz n\u00e9h\u00e1ny C k\u00f3d\u00fa seg\u00e9dprogramot. A klippy/kinematics/ k\u00f6nyvt\u00e1r tartalmazza a g\u00e9p kinematikai k\u00f3dj\u00e1t. A klippy/extras/ k\u00f6nyvt\u00e1r tartalmazza a gazdak\u00f3d b\u0151v\u00edthet\u0151 \"moduljait\". A lib/ k\u00f6nyvt\u00e1r k\u00fcls\u0151, harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 k\u00f6nyvt\u00e1ri k\u00f3dot tartalmaz, amely n\u00e9h\u00e1ny c\u00e9lprogram elk\u00e9sz\u00edt\u00e9s\u00e9hez sz\u00fcks\u00e9ges. A config/ k\u00f6nyvt\u00e1r a nyomtat\u00f3 konfigur\u00e1ci\u00f3s p\u00e9ldaf\u00e1jljait tartalmazza. A scripts/ k\u00f6nyvt\u00e1r a mikrokontroller k\u00f3dj\u00e1nak ford\u00edt\u00e1s\u00e1hoz hasznos, \u00e9p\u00edt\u00e9si-idej\u0171 szkripteket tartalmaz. A test/ k\u00f6nyvt\u00e1r automatikus teszteseteket tartalmaz. Ford\u00edt\u00e1s sor\u00e1n a build l\u00e9trehozhat egy out/ k\u00f6nyvt\u00e1rat. Ez ideiglenes elk\u00e9sz\u00edt\u00e9s\u0171 objektumokat tartalmaz. A v\u00e9gs\u0151 mikrokontroller objektum, amely elk\u00e9sz\u00fcl, AVR eset\u00e9n out/klipper.elf.hex , ARM eset\u00e9n out/klipper.bin .","title":"K\u00f6nyvt\u00e1r elrendez\u00e9se"},{"location":"Code_Overview.html#mikrokontroller-kodfolyamat","text":"A mikrokontroller k\u00f3dj\u00e1nak v\u00e9grehajt\u00e1sa az architekt\u00fara specifikus k\u00f3dban kezd\u0151dik (pl. src/avr/main.c ), amely v\u00e9g\u00fcl a src/sched.c -ban tal\u00e1lhat\u00f3 sched_main() parancsot h\u00edvja meg. A sched_main() k\u00f3d a DECL_INIT() makr\u00f3val jel\u00f6lt \u00f6sszes f\u00fcggv\u00e9ny futtat\u00e1s\u00e1val kezd\u0151dik. Ezut\u00e1n a DECL_TASK() makr\u00f3val megjel\u00f6lt f\u00fcggv\u00e9nyek ism\u00e9telt futtat\u00e1s\u00e1ra ker\u00fcl sor. Az egyik f\u0151 feladatf\u00fcggv\u00e9ny a command_dispatch(), amely a src/command.c f\u00e1jlban tal\u00e1lhat\u00f3. Ezt a f\u00fcggv\u00e9nyt a k\u00e1rtyaspecifikus bemeneti/kimeneti k\u00f3db\u00f3l (pl. src/avr/serial.c , src/generic/serial_irq.c ) h\u00edvjuk meg, \u00e9s a bemeneti folyamban tal\u00e1lhat\u00f3 parancsokhoz tartoz\u00f3 parancsf\u00fcggv\u00e9nyeket futtatja. A parancsf\u00fcggv\u00e9nyek deklar\u00e1l\u00e1sa a DECL_COMMAND() makr\u00f3val t\u00f6rt\u00e9nik (tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a protokol dokumentumot). A feladat-, init- \u00e9s parancsf\u00fcggv\u00e9nyek mindig enged\u00e9lyezett megszak\u00edt\u00e1sokkal futnak (sz\u00fcks\u00e9g eset\u00e9n azonban ideiglenesen letilthatj\u00e1k a megszak\u00edt\u00e1sokat). Ezeknek a f\u00fcggv\u00e9nyeknek ker\u00fclni\u00fck kell a hossz\u00fa sz\u00fcneteket, k\u00e9sleltet\u00e9seket, vagy olyan munk\u00e1t kell v\u00e9gezni\u00fck, amely jelent\u0151s ideig tart. (A hossz\u00fa k\u00e9sleltet\u00e9sek ezekben a \"task\" f\u00fcggv\u00e9nyekben m\u00e1s \"taskok\" \u00fctemez\u00e9si zavar\u00e1t eredm\u00e9nyezik. A 100us-n\u00e1l hosszabb k\u00e9sleltet\u00e9sek \u00e9szrevehet\u0151v\u00e9 v\u00e1lhatnak, az 500us-n\u00e1l hosszabb k\u00e9sleltet\u00e9s\u0171 parancsok \u00fajrak\u00fcld\u00e9se, a 100ms-n\u00e1l hosszabb k\u00e9sleltet\u00e9sek pedig watchdog \u00fajraind\u00edt\u00e1sokat eredm\u00e9nyezhetnek.) Ezek a funkci\u00f3k id\u0151z\u00edt\u0151kkel \u00fctemezik a munk\u00e1t meghat\u00e1rozott id\u0151pontokra. Az id\u0151z\u00edt\u0151 f\u00fcggv\u00e9nyek \u00fctemez\u00e9se a sched_add_timer() megh\u00edv\u00e1s\u00e1val t\u00f6rt\u00e9nik (a src/sched.c f\u00e1jlban tal\u00e1lhat\u00f3). Az \u00fctemez\u0151 k\u00f3d gondoskodik arr\u00f3l, hogy az adott f\u00fcggv\u00e9nyt a k\u00e9rt id\u0151ben h\u00edvja meg. Az id\u0151z\u00edt\u0151 megszak\u00edt\u00e1sok kezel\u00e9se kezdetben egy architekt\u00fara-specifikus megszak\u00edt\u00e1skezel\u0151ben t\u00f6rt\u00e9nik (pl. src/avr/timer.c ), amely a src/sched.c -ban tal\u00e1lhat\u00f3 sched_timer_dispatch() funkci\u00f3t h\u00edvja. Az id\u0151z\u00edt\u0151 megszak\u00edt\u00e1sa az \u00fctemez\u0151 id\u0151z\u00edt\u0151 f\u00fcggv\u00e9nyek v\u00e9grehajt\u00e1s\u00e1hoz vezet. Az id\u0151z\u00edt\u0151 f\u00fcggv\u00e9nyek mindig megszak\u00edt\u00e1sok kikapcsol\u00e1s\u00e1val futnak. Az id\u0151z\u00edt\u0151f\u00fcggv\u00e9nyeknek mindig n\u00e9h\u00e1ny mikroszekundumon bel\u00fcl kell befejez\u0151dni\u00fck. Az id\u0151z\u00edt\u0151 esem\u00e9ny befejez\u00e9sekor a f\u00fcggv\u00e9ny d\u00f6nthet \u00fagy, hogy \u00e1t\u00fctemezi mag\u00e1t. Hiba \u00e9szlel\u00e9se eset\u00e9n a k\u00f3d megh\u00edvhatja a shutdown() funkci\u00f3t (egy makr\u00f3, amely a src/sched.c -ben tal\u00e1lhat\u00f3 sched_shutdown() funkci\u00f3t h\u00edvja). A shutdown() megh\u00edv\u00e1sa a DECL_SHUTDOWN() makr\u00f3val jel\u00f6lt \u00f6sszes f\u00fcggv\u00e9ny futtat\u00e1s\u00e1t eredm\u00e9nyezi. A le\u00e1ll\u00edt\u00e1si f\u00fcggv\u00e9nyek mindig megszak\u00edt\u00e1sok letilt\u00e1s\u00e1val futnak. A mikrokontroller funkci\u00f3inak nagy r\u00e9sze az \u00e1ltal\u00e1nos c\u00e9l\u00fa bemeneti/kimeneti \u00e9rintkez\u0151kkel (GPIO) val\u00f3 munk\u00e1t foglalja mag\u00e1ban. Annak \u00e9rdek\u00e9ben, hogy az alacsony szint\u0171 architekt\u00fara specifikus k\u00f3dot elvonatkoztassuk a magas szint\u0171 feladatk\u00f3dt\u00f3l, minden GPIO esem\u00e9nyt architekt\u00fara specifikus burkolatokban val\u00f3s\u00edtunk meg (pl. src/avr/gpio.c ). A k\u00f3dot a gcc's \"-flto -fwhole-program\" optimaliz\u00e1l\u00e1ssal ford\u00edtottuk, amely kiv\u00e1l\u00f3 munk\u00e1t v\u00e9gez a f\u00fcggv\u00e9nyek sorol\u00e1s\u00e1ban a ford\u00edt\u00e1si egys\u00e9geken kereszt\u00fcl, \u00edgy a legt\u00f6bb ilyen apr\u00f3 GPIO f\u00fcggv\u00e9ny sorolva van a h\u00edv\u00f3ikban, \u00e9s nincs fut\u00e1sidej\u0171 k\u00f6lts\u00e9ge a haszn\u00e1latuknak.","title":"Mikrokontroller k\u00f3dfolyamat"},{"location":"Code_Overview.html#klippy-kod-attekintese","text":"A gazdak\u00f3dot (Klippy) egy olcs\u00f3 sz\u00e1m\u00edt\u00f3g\u00e9pen (p\u00e9ld\u00e1ul egy Raspberry Pi) kell futtatni a mikrokontrollerrel p\u00e1ros\u00edtva. A k\u00f3d els\u0151sorban Pythonban \u00edr\u00f3dott, azonban a CFFI-t haszn\u00e1lja n\u00e9h\u00e1ny funkci\u00f3 C k\u00f3dban t\u00f6rt\u00e9n\u0151 megval\u00f3s\u00edt\u00e1s\u00e1hoz. A kezdeti v\u00e9grehajt\u00e1s a klippy/klippy.py f\u00e1jlban kezd\u0151dik. Ez beolvassa a parancssori argumentumokat, megnyitja a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1t, p\u00e9ld\u00e1nyos\u00edtja a f\u0151 nyomtat\u00f3objektumokat, \u00e9s elind\u00edtja a soros kapcsolatot. A G-k\u00f3d parancsok f\u0151 v\u00e9grehajt\u00e1sa a process_commands() met\u00f3dusban t\u00f6rt\u00e9nik az klippy/gcode.py f\u00e1jlban. Ez a k\u00f3d a G-k\u00f3d parancsokat nyomtat\u00f3objektum h\u00edv\u00e1sokk\u00e1 ford\u00edtja le, amelyek gyakran a m\u0171veleteket a mikrovez\u00e9rl\u0151n v\u00e9grehajtand\u00f3 parancsokk\u00e1 alak\u00edtj\u00e1k (a mikrovez\u00e9rl\u0151 k\u00f3dj\u00e1ban a DECL_COMMAND makr\u00f3n kereszt\u00fcl). A Klippy gazdag\u00e9p k\u00f3dj\u00e1ban n\u00e9gy sz\u00e1l van. A f\u0151 sz\u00e1l kezeli a bej\u00f6v\u0151 G-k\u00f3d parancsokat. Egy m\u00e1sodik sz\u00e1l (amely teljes eg\u00e9sz\u00e9ben a klippy/chelper/serialqueue.c C k\u00f3dban tal\u00e1lhat\u00f3) az alacsony szint\u0171 IO-t kezeli a soros portal. A harmadik sz\u00e1l a Python k\u00f3dban (l\u00e1sd klippy/serialhdl.py ) a mikrokontroller v\u00e1lasz\u00fczeneteinek feldolgoz\u00e1s\u00e1ra szolg\u00e1l. A negyedik sz\u00e1l hibakeres\u00e9si \u00fczeneteket \u00edr a napl\u00f3ba (l\u00e1sd klippy/queuelogger.py ), hogy a t\u00f6bbi sz\u00e1l soha ne blokkoljon a napl\u00f3\u00edr\u00e1skor.","title":"Klippy k\u00f3d \u00e1ttekint\u00e9se"},{"location":"Code_Overview.html#mozgasparancs-kodfolyama","text":"Egy tipikus nyomtat\u00f3mozg\u00e1s akkor kezd\u0151dik, amikor egy \"G1\" parancsot k\u00fcld\u00fcnk a Klippy gazdag\u00e9pnek, \u00e9s akkor fejez\u0151dik be, amikor a megfelel\u0151 l\u00e9p\u00e9simpulzusok megjelennek a mikrokontrolleren. Ez a szakasz egy tipikus mozgat\u00e1si parancs k\u00f3dfolyamat\u00e1t v\u00e1zolja fel. A kinematika dokumentum tov\u00e1bbi inform\u00e1ci\u00f3kat tartalmaz a mozg\u00e1sok mechanik\u00e1j\u00e1r\u00f3l. A mozg\u00e1s parancs feldolgoz\u00e1sa a gcode.py f\u00e1jlban kezd\u0151dik. A gcode.py c\u00e9lja a G-k\u00f3d leford\u00edt\u00e1sa bels\u0151 h\u00edv\u00e1sokk\u00e1. Egy G1 parancs a klippy/extras/gcode_move.py \u00e1llom\u00e1nyban l\u00e9v\u0151 cmd_G1() parancsot h\u00edvja meg. A gcode_move.py k\u00f3d kezeli az eredetv\u00e1ltoz\u00e1sokat (pl. G92), a relat\u00edv \u00e9s abszol\u00fat poz\u00edci\u00f3k k\u00f6z\u00f6tti v\u00e1ltoz\u00e1sokat (pl. G90) \u00e9s az egys\u00e9gv\u00e1ltoz\u00e1sokat (pl. F6000=100mm/s). A k\u00f3d \u00fatvonala a mozgat\u00e1shoz a k\u00f6vetkez\u0151: _process_data() -> _process_commands() -> cmd_G1() . V\u00e9g\u00fcl a ToolHead oszt\u00e1lyt h\u00edvjuk meg a t\u00e9nyleges k\u00e9r\u00e9s v\u00e9grehajt\u00e1s\u00e1hoz: cmd_G1() -> ToolHead.move() A ToolHead oszt\u00e1ly (a toolhead.py \u00e1llom\u00e1nyban) kezeli a \"look-ahead\" \u00e9s k\u00f6veti a nyomtat\u00e1si m\u0171veletek id\u0151z\u00edt\u00e9s\u00e9t. A f\u0151 k\u00f3d\u00fatvonal egy mozdulathoz a k\u00f6vetkez\u0151: ToolHead.move() -> MoveQueue.add_move() -> MoveQueue.flush() -> Move.set_junction() -> ToolHead._process_moves() . A ToolHead.move() l\u00e9trehoz egy Move() objektumot a mozg\u00e1s param\u00e9tereivel (cartesian t\u00e9rben, m\u00e1sodperc \u00e9s millim\u00e9ter egys\u00e9gekben). A kinematikai oszt\u00e1ly lehet\u0151s\u00e9get kap az egyes mozg\u00e1sok ellen\u0151rz\u00e9s\u00e9re ( ToolHead.move() -> kin.check_move() ). A kinematikai oszt\u00e1lyok a klippy/kinematics/ k\u00f6nyvt\u00e1rban tal\u00e1lhat\u00f3k. A check_move() k\u00f3d hib\u00e1t adhat ki, ha a mozg\u00e1s nem \u00e9rv\u00e9nyes. Ha a check_move() sikeresen befejez\u0151dik, akkor az alapul szolg\u00e1l\u00f3 kinematik\u00e1nak k\u00e9pesnek kell lennie a mozg\u00e1s kezel\u00e9s\u00e9re. A MoveQueue.add_move() elhelyezi a move objektumot a \"look-ahead\" v\u00e1r\u00f3list\u00e1n. A MoveQueue.flush() meghat\u00e1rozza az egyes mozg\u00e1sok kezd\u0151 \u00e9s v\u00e9gsebess\u00e9g\u00e9t. A Move.set_junction() a \"trap\u00e9zgener\u00e1tort\" val\u00f3s\u00edtja meg egy mozg\u00e1sban. A \"trap\u00e9zgener\u00e1tor\" minden mozg\u00e1st h\u00e1rom r\u00e9szre bont: egy \u00e1lland\u00f3 gyorsul\u00e1si f\u00e1zisra, majd egy \u00e1lland\u00f3 sebess\u00e9g f\u00e1zisra, majd egy \u00e1lland\u00f3 lassul\u00e1si f\u00e1zisra. Minden mozg\u00e1s ebben a sorrendben tartalmazza ezt a h\u00e1rom f\u00e1zist, de egyes f\u00e1zisok id\u0151tartama lehet nulla is. Amikor a ToolHead._process_moves() megh\u00edv\u00e1sra ker\u00fcl, a mozg\u00e1ssal kapcsolatban minden ismert a kezd\u0151helye, a v\u00e9ghelye, a gyorsul\u00e1sa, a kezd\u0151/k\u00f6r\u00f6z\u00e9si/v\u00e9gsebess\u00e9ge \u00e9s a gyorsul\u00e1s/k\u00f6r\u00f6z\u00e9si/v\u00e9gsebess\u00e9g alatt megtett t\u00e1vols\u00e1g. Minden inform\u00e1ci\u00f3 a Move() oszt\u00e1lyban t\u00e1rol\u00f3dik, \u00e9s cartesian t\u00e9rben, millim\u00e9ter \u00e9s m\u00e1sodperc egys\u00e9gekben van megadva. A Klipper egy iterat\u00edv megold\u00f3t haszn\u00e1l az egyes l\u00e9ptet\u0151k l\u00e9p\u00e9sidej\u00e9nek l\u00e9trehoz\u00e1s\u00e1hoz. Hat\u00e9konys\u00e1gi okokb\u00f3l a l\u00e9ptet\u0151 impulzusid\u0151ket C k\u00f3dban gener\u00e1lja. A mozg\u00e1sokat el\u0151sz\u00f6r egy \"trap\u00e9zmozg\u00e1s v\u00e1r\u00f3list\u00e1ra\" helyezz\u00fck: ToolHead._process_moves() -> trapq_append() (a klippy/chelper/trapq.c-ben). A l\u00e9p\u00e9sid\u0151k ezut\u00e1n gener\u00e1l\u00f3dnak: ToolHead._process_moves() -> ToolHead._update_move_time() -> MCU_Stepper.generate_steps() -> itersolve_generate_steps() -> itersolve_gen_steps_range() (a klippy/chelper/itersolve.c-ben). Az iterat\u00edv megold\u00f3 c\u00e9lja, hogy l\u00e9p\u00e9sid\u0151ket tal\u00e1ljon egy olyan f\u00fcggv\u00e9nyt adva, amely egy id\u0151b\u0151l kisz\u00e1m\u00edtja a l\u00e9p\u00e9shelyzetet. Ez \u00fagy t\u00f6rt\u00e9nik, hogy t\u00f6bbsz\u00f6r \"tal\u00e1lgatja\" a k\u00fcl\u00f6nb\u00f6z\u0151 id\u0151ket, am\u00edg a l\u00e9ptet\u0151 poz\u00edci\u00f3 k\u00e9plet vissza nem adja a l\u00e9ptet\u0151 k\u00f6vetkez\u0151 l\u00e9p\u00e9s\u00e9nek k\u00edv\u00e1nt poz\u00edci\u00f3j\u00e1t. Az egyes tal\u00e1lgat\u00e1sokb\u00f3l sz\u00e1rmaz\u00f3 visszajelz\u00e9seket a j\u00f6v\u0151beli tal\u00e1lgat\u00e1sok jav\u00edt\u00e1s\u00e1ra haszn\u00e1ld, hogy a folyamat gyorsan konverg\u00e1ljon a k\u00edv\u00e1nt id\u0151h\u00f6z. A kinematikus l\u00e9ptet\u0151 poz\u00edci\u00f3 k\u00e9pletek a klippy/chelper/ k\u00f6nyvt\u00e1rban tal\u00e1lhat\u00f3k (pl. kin_cart.c, kin_corexy.c, kin_delta.c, kin_extruder.c). Vedd figyelembe, hogy az extruder saj\u00e1t kinematikai oszt\u00e1lyban van kezelve: ToolHead._process_moves() -> PrinterExtruder.move() . Mivel a Move() oszt\u00e1ly pontosan megadja a mozg\u00e1s idej\u00e9t, \u00e9s mivel a l\u00e9p\u00e9simpulzusokat meghat\u00e1rozott id\u0151z\u00edt\u00e9ssel k\u00fcldi a mikrokontrollerhez, az extruder oszt\u00e1ly \u00e1ltal el\u0151\u00e1ll\u00edtott l\u00e9ptet\u0151mozg\u00e1sok szinkronban lesznek a fejmozg\u00e1ssal, annak ellen\u00e9re, hogy a k\u00f3dot elk\u00fcl\u00f6n\u00edtve tartjuk. Miut\u00e1n az iterat\u00edv megold\u00f3 kisz\u00e1m\u00edtja a l\u00e9p\u00e9sid\u0151ket, azok egy t\u00f6mbh\u00f6z ker\u00fclnek hozz\u00e1ad\u00e1sra: itersolve_gen_steps_range() -> stepcompress_append() (in klippy/chelper/stepcompress.c). A t\u00f6mb (struct stepcompress.queue) minden l\u00e9p\u00e9shez t\u00e1rolja a mikrokontroller megfelel\u0151 \u00f3rasz\u00e1ml\u00e1l\u00f3 idej\u00e9t. Itt a \"mikrokontroller \u00f3rasz\u00e1ml\u00e1l\u00f3\" \u00e9rt\u00e9ke k\u00f6zvetlen\u00fcl megfelel a mikrokontroller hardveres sz\u00e1ml\u00e1l\u00f3j\u00e1nak, a mikrokontroller utols\u00f3 bekapcsol\u00e1s\u00e1nak id\u0151pontj\u00e1hoz viszony\u00edtva. A k\u00f6vetkez\u0151 fontos l\u00e9p\u00e9s a l\u00e9p\u00e9sek t\u00f6m\u00f6r\u00edt\u00e9se: stepcompress_flush() -> compress_bisect_add() (in klippy/chelper/stepcompress.c). Ez a k\u00f3d gener\u00e1lja \u00e9s k\u00f3dolja a mikrokontroller \"queue_step\" parancsainak sorozat\u00e1t, amelyek megfelelnek az el\u0151z\u0151 szakaszban fel\u00e9p\u00edtett l\u00e9ptet\u0151 l\u00e9p\u00e9sid\u0151k list\u00e1j\u00e1nak. Ezek a \"queue_step\" parancsok ezut\u00e1n sorba ker\u00fclnek, priorit\u00e1st kapnak, \u00e9s elk\u00fcld\u00e9sre ker\u00fclnek a mikrokontrollernek (a stepcompress.c:steppersync \u00e9s a serialqueue.c:serialqueue k\u00f3dokon kereszt\u00fcl). A queue_step parancsok feldolgoz\u00e1sa a mikrokontrollerben az src/command.c \u00e1llom\u00e1nyban kezd\u0151dik, amely elemzi a parancsot \u00e9s megh\u00edvja a command_queue_step() parancsot. A command_queue_step() k\u00f3d (az src/stepper.c-ben) csak az egyes queue_step parancsok param\u00e9tereit csatolja egy-egy stepper sorba. Norm\u00e1l m\u0171k\u00f6d\u00e9s eset\u00e9n a queue_step parancsot legal\u00e1bb 100ms-mal az els\u0151 l\u00e9p\u00e9s id\u0151pontja el\u0151tt elemzi \u00e9s be\u00e1ll\u00edtja a sorba. V\u00e9g\u00fcl a l\u00e9ptet\u0151 esem\u00e9nyek gener\u00e1l\u00e1sa a stepper_event() -ban t\u00f6rt\u00e9nik. Ezt a hardveres id\u0151z\u00edt\u0151 megszak\u00edt\u00e1s\u00e1b\u00f3l h\u00edvjuk meg az els\u0151 l\u00e9p\u00e9s tervezett id\u0151pontj\u00e1ban. A stepper_event() k\u00f3d gener\u00e1l egy l\u00e9p\u00e9simpulzust, majd \u00e1t\u00fctemezi mag\u00e1t a k\u00f6vetkez\u0151 l\u00e9p\u00e9simpulzus idej\u00e9re a megadott queue_step param\u00e9terekhez. Az egyes queue_step parancsok param\u00e9terei a k\u00f6vetkez\u0151k: \"interval\", \"count\" \u00e9s \"add\". Magas szinten a stepper_event() a k\u00f6vetkez\u0151ket hajtja v\u00e9gre, 'count' times: do_step(); next_wake_time = last_wake_time + interval; interval += add; A fentiek soknak t\u0171nhetnek egy mozdulat v\u00e9grehajt\u00e1s\u00e1hoz. Az egyetlen igaz\u00e1n \u00e9rdekes r\u00e9sz azonban a ToolHead \u00e9s a kinematikai oszt\u00e1lyokban tal\u00e1lhat\u00f3. Ez a k\u00f3dnak azon r\u00e9sze, amely meghat\u00e1rozza a mozg\u00e1sokat \u00e9s azok id\u0151z\u00edt\u00e9s\u00e9t. A feldolgoz\u00e1s t\u00f6bbi r\u00e9sze t\u00f6bbnyire csak kommunik\u00e1ci\u00f3 \u00e9s munka.","title":"Mozg\u00e1sparancs k\u00f3dfolyama"},{"location":"Code_Overview.html#gazdamodul-hozzaadasa","text":"A Klippy host k\u00f3dja dinamikus modulbet\u00f6lt\u00e9si k\u00e9pess\u00e9ggel rendelkezik. Ha a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1ban tal\u00e1lhat\u00f3 egy \"[my_module]\" nev\u0171 konfigur\u00e1ci\u00f3s szakasz, akkor a szoftver automatikusan megpr\u00f3b\u00e1lja bet\u00f6lteni a klippy/extras/my_module.py modult. Ez a modulrendszer a Klipper \u00faj funkci\u00f3k hozz\u00e1ad\u00e1s\u00e1nak el\u0151nyben r\u00e9szes\u00edtett m\u00f3dszere. Egy \u00faj modul hozz\u00e1ad\u00e1s\u00e1nak legegyszer\u0171bb m\u00f3dja, ha egy megl\u00e9v\u0151 modult haszn\u00e1lunk hivatkoz\u00e1sk\u00e9nt. L\u00e1sd klippy/extras/servo.py p\u00e9ldak\u00e9nt. A k\u00f6vetkez\u0151k is hasznosak lehetnek: A modul v\u00e9grehajt\u00e1sa a modulszint\u0171 load_config() f\u00fcggv\u00e9nyben kezd\u0151dik (a [my_module] form\u00e1j\u00fa config szakaszok eset\u00e9n) vagy a load_config_prefix() f\u00fcggv\u00e9nyben (a [my_module my_name] form\u00e1j\u00fa config szakaszok eset\u00e9n). Ennek a f\u00fcggv\u00e9nynek egy \"config\" objektumot kell \u00e1tadni, \u00e9s egy \u00faj \"printer objektumot\" kell visszaadnia, amely az adott config szakaszhoz kapcsol\u00f3dik. Egy \u00faj nyomtat\u00f3objektum p\u00e9ld\u00e1nyos\u00edt\u00e1sa sor\u00e1n a config objektum seg\u00edts\u00e9g\u00e9vel param\u00e9tereket olvashat be az adott config szakaszb\u00f3l. Erre a config.get() , config.getfloat() , config.getint() stb. met\u00f3dusok szolg\u00e1lnak. \u00dcgyelj arra, hogy a nyomtat\u00f3 objektum fel\u00e9p\u00edt\u00e9se sor\u00e1n minden \u00e9rt\u00e9ket beolvasson a config-b\u00f3l. Ha a felhaszn\u00e1l\u00f3 olyan config param\u00e9tert ad meg, amelyet ebben a f\u00e1zisban nem olvas be, akkor azt felt\u00e9telezi, hogy el\u00edr\u00e1s t\u00f6rt\u00e9nt a config-ban, \u00e9s hiba\u00fczenetet ad. A config.get_printer() met\u00f3dus seg\u00edts\u00e9g\u00e9vel megkapjuk a f\u0151 \"printer\" oszt\u00e1lyra val\u00f3 hivatkoz\u00e1st. Ez a \"printer\" oszt\u00e1ly t\u00e1rolja a hivatkoz\u00e1sokat az \u00f6sszes \"nyomtat\u00f3 objektumra\", amelyet m\u00e1r p\u00e9ld\u00e1nyos\u00edtottak. A printer.lookup_object() met\u00f3dus seg\u00edts\u00e9g\u00e9vel megkereshetj\u00fck a t\u00f6bbi nyomtat\u00f3 objektumra mutat\u00f3 hivatkoz\u00e1sokat. Szinte minden funkci\u00f3 (m\u00e9g az alapvet\u0151 kinematikai modulok is) egy ilyen nyomtat\u00f3 objektumba vannak kapszul\u00e1zva. Vegy\u00fck azonban figyelembe, hogy egy \u00faj modul p\u00e9ld\u00e1nyos\u00edt\u00e1sakor nem minden m\u00e1s nyomtat\u00f3 objektumot p\u00e9ld\u00e1nyos\u00edtottunk. A \"gcode\" \u00e9s a \"pins\" modulok mindig el\u00e9rhet\u0151ek lesznek, de a t\u00f6bbi modul eset\u00e9ben \u00e9rdemes elhalasztani a keres\u00e9st. Az esem\u00e9nykezel\u0151ket a printer.register_event_handler() m\u00f3dszerrel regisztr\u00e1lhatja, ha a k\u00f3dot m\u00e1s nyomtat\u00f3 objektumok \u00e1ltal kiv\u00e1ltott \"events\" sor\u00e1n kell megh\u00edvni. Minden esem\u00e9ny neve egy karakterl\u00e1nc, \u00e9s a konvenci\u00f3 szerint az esem\u00e9nyt kiv\u00e1lt\u00f3 f\u0151 forr\u00e1smodul neve, valamint az esem\u00e9nyt kiv\u00e1lt\u00f3 m\u0171velet r\u00f6vid neve (pl. \"klippy:connect\"). Az egyes esem\u00e9nykezel\u0151knek \u00e1tadott param\u00e9terek az adott esem\u00e9nyre jellemz\u0151ek (ahogy a kiv\u00e9telkezel\u00e9s \u00e9s a v\u00e9grehajt\u00e1si kontextus is). K\u00e9t gyakori ind\u00edt\u00e1si esem\u00e9ny a k\u00f6vetkez\u0151: klippy:connect - Ez az esem\u00e9ny az \u00f6sszes nyomtat\u00f3 objektum p\u00e9ld\u00e1nyos\u00edt\u00e1sa ut\u00e1n gener\u00e1l\u00f3dik. \u00c1ltal\u00e1ban m\u00e1s nyomtat\u00f3 objektumok keres\u00e9s\u00e9re, a konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sok ellen\u0151rz\u00e9s\u00e9re \u00e9s a kezdeti \"handshake\" v\u00e9grehajt\u00e1s\u00e1ra haszn\u00e1lj\u00e1k a nyomtat\u00f3 hardver\u00e9vel. klippy:ready - Ez az esem\u00e9ny az \u00f6sszes csatlakoz\u00e1si kezel\u0151 sikeres befejez\u00e9se ut\u00e1n gener\u00e1l\u00f3dik. Jelzi, hogy a nyomtat\u00f3 \u00e1tv\u00e1lt a norm\u00e1l m\u0171veletek kezel\u00e9s\u00e9re k\u00e9sz \u00e1llapotba. Ebben a visszah\u00edv\u00e1sban ne jelezzen hib\u00e1t. Ha hiba van a felhaszn\u00e1l\u00f3 konfigur\u00e1ci\u00f3j\u00e1ban, mindenk\u00e9ppen h\u00edvja fel a figyelmet a load_config() vagy a \"connect event\" f\u00e1zisokban. Haszn\u00e1ld a raise config.error(\"my error\") vagy raise printer.config_error(\"my error\") hibajelz\u00e9st. A \"pins\" modul seg\u00edts\u00e9g\u00e9vel konfigur\u00e1lhat egy t\u0171t a mikrokontrollerben. Ez \u00e1ltal\u00e1ban a printer.lookup_object(\"pins\").setup_pin(\"pwm\", config.get(\"my_pin\")) -hoz hasonl\u00f3 m\u00f3don t\u00f6rt\u00e9nik. A visszakapott objektumot ezut\u00e1n fut\u00e1sid\u0151ben lehet utas\u00edtani. Ha a nyomtat\u00f3 objektum defini\u00e1l egy get_status() met\u00f3dust, akkor a modul \u00e1llapotinform\u00e1ci\u00f3t export\u00e1lhat a makr\u00f3kon \u00e9s az API Szerveren kereszt\u00fcl. A get_status() met\u00f3dusnak egy Python sz\u00f3t\u00e1rat kell visszaadnia, amelynek kulcsai karakterl\u00e1ncok, \u00e9rt\u00e9kei pedig eg\u00e9sz sz\u00e1mok, lebeg\u0151 sz\u00e1mok, karakterl\u00e1ncok, list\u00e1k, sz\u00f3t\u00e1rak, True, False vagy None. Haszn\u00e1lhat\u00f3k tuplik (\u00e9s neves\u00edtett tuplik) is (ezek az API-kiszolg\u00e1l\u00f3n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 el\u00e9r\u00e9skor listak\u00e9nt jelennek meg). Az export\u00e1lt \"immutable\" list\u00e1kat \u00e9s sz\u00f3t\u00e1rakat. Ha tartalmuk megv\u00e1ltozik, akkor egy \u00faj objektumot kell visszak\u00fcldeni a get_status() parancsb\u00f3l, k\u00fcl\u00f6nben az API-kiszolg\u00e1l\u00f3 nem fogja \u00e9szlelni a v\u00e1ltoz\u00e1sokat. Ha a modulnak hozz\u00e1f\u00e9r\u00e9sre van sz\u00fcks\u00e9ge a rendszer id\u0151z\u00edt\u00e9s\u00e9hez vagy k\u00fcls\u0151 f\u00e1jlle\u00edr\u00f3khoz, akkor a printer.get_reactor() seg\u00edts\u00e9g\u00e9vel hozz\u00e1f\u00e9rhet\u00fcnk a glob\u00e1lis \"event reactor\" oszt\u00e1lyhoz. Ez a reactor oszt\u00e1ly lehet\u0151v\u00e9 teszi az id\u0151z\u00edt\u0151k \u00fctemez\u00e9s\u00e9t, a f\u00e1jlle\u00edr\u00f3k bemenet\u00e9nek v\u00e1rakoz\u00e1s\u00e1t, valamint a gazdak\u00f3d \"sleep\" haszn\u00e1lat\u00e1t. Ne haszn\u00e1lj glob\u00e1lis v\u00e1ltoz\u00f3kat. Minden \u00e1llapotot a load_config() f\u00fcggv\u00e9ny \u00e1ltal visszaadott nyomtat\u00f3 objektumban kell t\u00e1rolni. Ez az\u00e9rt fontos, mert ellenkez\u0151 esetben a RESTART parancs nem az elv\u00e1rtaknak megfelel\u0151en fog m\u0171k\u00f6dni. Szint\u00e9n hasonl\u00f3 okokb\u00f3l, ha b\u00e1rmilyen k\u00fcls\u0151 f\u00e1jl (vagy foglalat) megny\u00edlt, akkor mindenk\u00e9ppen regisztr\u00e1ljunk egy \"klippy:disconnect\" esem\u00e9nykezel\u0151t, \u00e9s z\u00e1rjuk be \u0151ket ebb\u0151l a visszah\u00edv\u00e1sb\u00f3l. Ker\u00fclje a m\u00e1s nyomtat\u00f3 objektumok bels\u0151 tagv\u00e1ltoz\u00f3inak el\u00e9r\u00e9s\u00e9t (vagy az al\u00e1h\u00faz\u00e1ssal kezd\u0151d\u0151 met\u00f3dusok h\u00edv\u00e1s\u00e1t). Ennek a konvenci\u00f3nak a betart\u00e1sa megk\u00f6nny\u00edti a j\u00f6v\u0151beli v\u00e1ltoz\u00e1sok kezel\u00e9s\u00e9t. Javasoljuk, hogy a Python oszt\u00e1lyok Python konstruktor\u00e1ban minden tagv\u00e1ltoz\u00f3hoz \u00e9rt\u00e9ket rendeljen. (\u00c9s ez\u00e9rt ker\u00fclje a Python azon k\u00e9pess\u00e9g\u00e9nek kihaszn\u00e1l\u00e1s\u00e1t, hogy dinamikusan hozzon l\u00e9tre \u00faj tagv\u00e1ltoz\u00f3kat.) Ha egy Python v\u00e1ltoz\u00f3nak lebeg\u0151pontos \u00e9rt\u00e9ket kell t\u00e1rolnia, akkor aj\u00e1nlott mindig lebeg\u0151pontos konstansokkal hozz\u00e1rendelni \u00e9s kezelni a v\u00e1ltoz\u00f3t (\u00e9s soha ne haszn\u00e1ljunk eg\u00e9sz\u00e9rt\u00e9k\u0171 konstansokat). P\u00e9ld\u00e1ul r\u00e9szes\u00edts\u00fck el\u0151nyben a self.speed = 1. \u00e9rt\u00e9ket a self.speed = 1 \u00e9rt\u00e9kkel szemben, \u00e9s r\u00e9szes\u00edts\u00fck el\u0151nyben a self.speed = 2 \u00e9rt\u00e9ket. * x a self.speed = 2 * x helyett. A lebeg\u0151pontos \u00e9rt\u00e9kek k\u00f6vetkezetes haszn\u00e1lat\u00e1val elker\u00fclhet\u0151k a Python-t\u00edpuskonverzi\u00f3k nehezen hibakereshet\u0151 furcsas\u00e1gai. Ha a modult a Klipper f\u0151k\u00f3dj\u00e1ba val\u00f3 be\u00e9p\u00edt\u00e9sre k\u00fcld\u00f6d, mindenk\u00e9ppen helyezz el egy szerz\u0151i jogi megjegyz\u00e9st a modul tetej\u00e9n. Az el\u0151nyben r\u00e9szes\u00edtett form\u00e1tumot l\u00e1sd a megl\u00e9v\u0151 modulokn\u00e1l.","title":"Gazdamodul hozz\u00e1ad\u00e1sa"},{"location":"Code_Overview.html#uj-kinematika-hozzaadasa","text":"Ez a szakasz n\u00e9h\u00e1ny tippet ad a Klipper tov\u00e1bbi nyomtat\u00f3 kinematikai t\u00edpusok t\u00e1mogat\u00e1s\u00e1nak hozz\u00e1ad\u00e1s\u00e1hoz. Az ilyen t\u00edpus\u00fa tev\u00e9kenys\u00e9ghez a c\u00e9l kinematik\u00e1hoz tartoz\u00f3 matematikai k\u00e9pletek kiv\u00e1l\u00f3 ismerete sz\u00fcks\u00e9ges. Szoftverfejleszt\u00e9si ismereteket is ig\u00e9nyel, b\u00e1r csak a gazdaszoftvert kell friss\u00edteni. Hasznos l\u00e9p\u00e9sek: Kezdd \" Egy mozg\u00e1s k\u00f3dfolyamata \" szakasz \u00e9s a Kinematika dokumentum tanulm\u00e1nyoz\u00e1s\u00e1val. Tekintsd \u00e1t a klippy/kinematics/ k\u00f6nyvt\u00e1rban tal\u00e1lhat\u00f3 kinematikai oszt\u00e1lyokat. A kinematikai oszt\u00e1lyok feladata egy cartesian koordin\u00e1t\u00e1kban megadott mozg\u00e1s \u00e1talak\u00edt\u00e1sa az egyes l\u00e9ptet\u0151k\u00f6n t\u00f6rt\u00e9n\u0151 mozg\u00e1ss\u00e1. Kiindul\u00f3pontk\u00e9nt le kell tudni m\u00e1solni az egyik ilyen f\u00e1jlt. Implement\u00e1ljuk a C l\u00e9ptet\u0151ket kinematikai poz\u00edci\u00f3f\u00fcggv\u00e9nyeit minden l\u00e9ptet\u0151h\u00f6z, ha azok m\u00e9g nem \u00e1llnak rendelkez\u00e9sre (l\u00e1sd a kin_cart.c, kin_corexy.c \u00e9s kin_delta.c f\u00e1jlokat a klippy/chelper/ \u00e1llom\u00e1nyban). A f\u00fcggv\u00e9nynek meg kell h\u00edvnia move_get_coord() , hogy egy adott mozg\u00e1sid\u0151t (m\u00e1sodpercben) cartesian koordin\u00e1t\u00e1v\u00e1 (millim\u00e9terben) konvert\u00e1ljon, majd ebb\u0151l a cartesian koordin\u00e1t\u00e1b\u00f3l kisz\u00e1m\u00edtsa a k\u00edv\u00e1nt l\u00e9ptet\u0151 poz\u00edci\u00f3t (millim\u00e9terben). Az \u00faj kinematikai oszt\u00e1lyban implement\u00e1ljuk a calc_position() m\u00f3dszert. Ez a met\u00f3dus kisz\u00e1m\u00edtja a nyomtat\u00f3fej poz\u00edci\u00f3j\u00e1t cartesian koordin\u00e1t\u00e1kban az egyes l\u00e9ptet\u0151motorok poz\u00edci\u00f3j\u00e1b\u00f3l. Nem kell, hogy hat\u00e9kony legyen, mivel jellemz\u0151en csak a kezd\u0151pont \u00e9s az \u00e9rint\u00e9si m\u0171veletek sor\u00e1n h\u00edvjuk meg. Egy\u00e9b m\u00f3dszerek. Implement\u00e1lja a check_move() , get_status() met\u00f3dusokat, get_steppers() , home() \u00e9s set_position() m\u00f3dszereket. Ezeket a f\u00fcggv\u00e9nyeket \u00e1ltal\u00e1ban kinematikai specifikus ellen\u0151rz\u00e9sek biztos\u00edt\u00e1s\u00e1ra haszn\u00e1lj\u00e1k. A fejleszt\u00e9s kezdet\u00e9n azonban haszn\u00e1lhatunk itt kaz\u00e1n-lemez szer\u0171 k\u00f3dot. Tesztel\u00e9si esetek v\u00e9grehajt\u00e1sa. K\u00e9sz\u00edtsen egy G-k\u00f3d f\u00e1jlt egy sor olyan mozg\u00e1ssal, amelyekkel az adott kinematika fontos eseteit tesztelheti. K\u00f6vesse a Hibakeres\u00e9si dokument\u00e1ci\u00f3t , hogy ezt a G-k\u00f3d f\u00e1jlt mikrokontroller parancsokk\u00e1 alak\u00edtsa \u00e1t. Ez hasznos a sarokesetek gyakorl\u00e1s\u00e1ra \u00e9s a regresszi\u00f3k ellen\u0151rz\u00e9s\u00e9re.","title":"\u00daj kinematika hozz\u00e1ad\u00e1sa"},{"location":"Code_Overview.html#portolas-uj-mikrokontrollerre","text":"Ez a szakasz n\u00e9h\u00e1ny tippet ad a Klipper mikrokontroller k\u00f3dj\u00e1nak \u00faj architekt\u00far\u00e1ra t\u00f6rt\u00e9n\u0151 \u00e1tvitel\u00e9hez. Ez a fajta tev\u00e9kenys\u00e9g j\u00f3 be\u00e1gyazott fejleszt\u00e9si ismereteket \u00e9s gyakorlati hozz\u00e1f\u00e9r\u00e9st ig\u00e9nyel a c\u00e9lmikrokontrollerhez. Hasznos l\u00e9p\u00e9sek: Kezd a portol\u00e1s sor\u00e1n haszn\u00e1lni k\u00edv\u00e1nt harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 k\u00f6nyvt\u00e1rak azonos\u00edt\u00e1s\u00e1val. Gyakori p\u00e9lda erre a \"CMSIS\" csomagol\u00e1sok \u00e9s a gy\u00e1rt\u00f3 \"HAL\" k\u00f6nyvt\u00e1rak. Minden harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 k\u00f3dnak GNU GPLv3 kompatibilisnek kell lennie. A harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 k\u00f3dot a Klipper lib/ k\u00f6nyvt\u00e1rba kell \u00e1tvinni. Friss\u00edtse a lib/README f\u00e1jlt azzal az inform\u00e1ci\u00f3val, hogy hol \u00e9s mikor szerezte meg a k\u00f6nyvt\u00e1rat. A k\u00f3dot lehet\u0151leg v\u00e1ltozatlanul m\u00e1sold be a Klipper t\u00e1rol\u00f3ba, de ha b\u00e1rmilyen v\u00e1ltoztat\u00e1sra van sz\u00fcks\u00e9g, akkor ezeket a v\u00e1ltoztat\u00e1sokat kifejezetten fel kell t\u00fcntetni a lib/README f\u00e1jlban. Hozzon l\u00e9tre egy \u00faj architekt\u00fara alk\u00f6nyvt\u00e1rat az src/ k\u00f6nyvt\u00e1rban, \u00e9s adj hozz\u00e1 kezdeti Config \u00e9s Makefile t\u00e1mogat\u00e1st. Haszn\u00e1ld a megl\u00e9v\u0151 architekt\u00far\u00e1kat \u00fatmutat\u00f3k\u00e9nt. Az src/simulator egy alapvet\u0151 p\u00e9ld\u00e1t ny\u00fajt egy minim\u00e1lis kiindul\u00e1si pontra. Az els\u0151 f\u0151 k\u00f3dol\u00e1si feladat a kommunik\u00e1ci\u00f3s t\u00e1mogat\u00e1s fel\u00e1ll\u00edt\u00e1sa az alaplapnak. Ez a legnehezebb l\u00e9p\u00e9s egy \u00faj port eset\u00e9ben. Ha az alapvet\u0151 kommunik\u00e1ci\u00f3 m\u00e1r m\u0171k\u00f6dik, a tov\u00e1bbi l\u00e9p\u00e9sek \u00e1ltal\u00e1ban sokkal k\u00f6nnyebbek. A kezdeti fejleszt\u00e9s sor\u00e1n jellemz\u0151en UART t\u00edpus\u00fa soros eszk\u00f6zt haszn\u00e1lunk, mivel az ilyen t\u00edpus\u00fa hardvereszk\u00f6z\u00f6ket \u00e1ltal\u00e1ban k\u00f6nnyebb enged\u00e9lyezni \u00e9s vez\u00e9relni. Ebben a f\u00e1zisban b\u0151kez\u0171en haszn\u00e1ld az src/generic/ k\u00f6nyvt\u00e1rban tal\u00e1lhat\u00f3 seg\u00e9dk\u00f3dot (ellen\u0151rizd, hogy az src/simulator/Makefile hogyan tartalmazza a generikus C k\u00f3dot a fel\u00e9p\u00edt\u00e9sben). Ebben a f\u00e1zisban sz\u00fcks\u00e9ges defini\u00e1lni a timer_read_time() funkci\u00f3t is (amely visszaadja az aktu\u00e1lis rendszer\u00f3r\u00e1t), de nem sz\u00fcks\u00e9ges a timer irq kezel\u00e9s\u00e9nek teljes t\u00e1mogat\u00e1sa. Ismerkedjen meg a console.py eszk\u00f6zzel (a Hibakeres\u00e9si dokumentumban le\u00edrtak szerint), \u00e9s ellen\u0151rizd vele a mikrokontrollerrel val\u00f3 kapcsolatot. Ez az eszk\u00f6z leford\u00edtja az alacsony szint\u0171 mikrokontroller kommunik\u00e1ci\u00f3s protokollt ember \u00e1ltal olvashat\u00f3 form\u00e1ra. A hardveres megszak\u00edt\u00e1sokb\u00f3l t\u00f6rt\u00e9n\u0151 id\u0151z\u00edt\u0151 k\u00fcld\u00e9s t\u00e1mogat\u00e1s\u00e1nak hozz\u00e1ad\u00e1sa. L\u00e1sd a Klipper commit 970831ee p\u00e9ld\u00e1j\u00e1t az LPC176x architekt\u00fara 1-5. l\u00e9p\u00e9seivel. Alapvet\u0151 GPIO bemeneti \u00e9s kimeneti t\u00e1mogat\u00e1s megjelen\u00edt\u00e9se. L\u00e1sd a Klipper commit c78b9076 p\u00e9ld\u00e1j\u00e1t erre. Tov\u00e1bbi perif\u00e9ri\u00e1k felhoz\u00e1sa. L\u00e1sd p\u00e9ld\u00e1ul a Klipper megb\u00edz\u00e1sokat 65613aed , c812a40a \u00e9s c381d03a . Hozzon l\u00e9tre egy minta Klipper konfigur\u00e1ci\u00f3s f\u00e1jlt a config/ k\u00f6nyvt\u00e1rban. Tesztelj\u00fck a mikrokontrollert a klippy.py f\u0151programmal. Fontolja meg a test/ k\u00f6nyvt\u00e1rban l\u00e9v\u0151 build tesztesetek hozz\u00e1ad\u00e1s\u00e1t. Tov\u00e1bbi k\u00f3dol\u00e1si tippek: Ker\u00fclje a \"C bitfields\" haszn\u00e1lat\u00e1t az IO regiszterek el\u00e9r\u00e9s\u00e9hez; r\u00e9szes\u00edtse el\u0151nyben a 32 bites, 16 bites vagy 8 bites eg\u00e9sz sz\u00e1mok k\u00f6zvetlen olvas\u00e1si \u00e9s \u00edr\u00e1si m\u0171veleteit. A C nyelvi specifik\u00e1ci\u00f3k nem hat\u00e1rozz\u00e1k meg egy\u00e9rtelm\u0171en, hogy a ford\u00edt\u00f3nak hogyan kell megval\u00f3s\u00edtania a C bitmez\u0151ket (pl. endianness \u00e9s bitkioszt\u00e1s), \u00e9s neh\u00e9z meghat\u00e1rozni, hogy milyen IO m\u0171veletek t\u00f6rt\u00e9nnek egy C bitmez\u0151 olvas\u00e1sakor vagy \u00edr\u00e1sakor. Ink\u00e1bb \u00edrjon explicit \u00e9rt\u00e9keket az IO regiszterekbe, minthogy olvas\u00e1s-m\u00f3dos\u00edt\u00e1s-\u00edr\u00e1s m\u0171veleteket haszn\u00e1lj. Azaz, ha egy olyan IO-regiszterben friss\u00edt\u00fcnk egy mez\u0151t, ahol a t\u00f6bbi mez\u0151 \u00e9rt\u00e9kei ismertek, akkor el\u0151ny\u00f6sebb a regiszter teljes tartalm\u00e1t explicit m\u00f3don ki\u00edrni. Az explicit \u00edr\u00e1sok kisebb, gyorsabb \u00e9s k\u00f6nnyebben hibakereshet\u0151 k\u00f3dot eredm\u00e9nyeznek.","title":"Portol\u00e1s \u00faj mikrokontrollerre"},{"location":"Code_Overview.html#koordinata-rendszerek","text":"A Klipper bels\u0151leg els\u0151sorban a nyomtat\u00f3fej helyzet\u00e9t k\u00f6veti cartesian koordin\u00e1t\u00e1kban, amelyek a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1ta rendszerhez viszony\u00edtva vannak. Ez azt jelenti, hogy a Klipper k\u00f3d nagy r\u00e9sze soha nem tapasztal koordin\u00e1ta rendszer v\u00e1ltoz\u00e1st. Ha a felhaszn\u00e1l\u00f3 az orig\u00f3 megv\u00e1ltoztat\u00e1s\u00e1t k\u00e9ri (pl. egy G92 parancsal), akkor ezt a hat\u00e1st a j\u00f6v\u0151beli parancsok els\u0151dleges koordin\u00e1ta rendszerre t\u00f6rt\u00e9n\u0151 \u00e1tv\u00e1lt\u00e1s\u00e1val \u00e9rj\u00fck el. Bizonyos esetekben azonban hasznos, ha a nyomtat\u00f3fej helyzet\u00e9t m\u00e1s koordin\u00e1ta rendszerben szeretn\u00e9nk megkapni, \u00e9s a Klipper t\u00f6bb eszk\u00f6zzel is megk\u00f6nny\u00edti ezt. Ez a GET_POSITION parancs futtat\u00e1s\u00e1val l\u00e1that\u00f3. P\u00e9ld\u00e1ul: Send: GET_POSITION Recv: // mcu: stepper_a:-2060 stepper_b:-1169 stepper_c:-1613 Recv: // stepper: stepper_a:457.254159 stepper_b:466.085669 stepper_c:465.382132 Recv: // kinematic: X:8.339144 Y:-3.131558 Z:233.347121 Recv: // toolhead: X:8.338078 Y:-3.123175 Z:233.347878 E:0.000000 Recv: // gcode: X:8.338078 Y:-3.123175 Z:233.347878 E:0.000000 Recv: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000 Recv: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000 Az \"MCU\" poz\u00edci\u00f3 ( stepper.get_mcu_position() a k\u00f3dban) a mikrokontroller \u00e1ltal pozit\u00edv ir\u00e1nyban kiadott l\u00e9p\u00e9sek sz\u00e1ma m\u00ednusz a mikrokontroller utols\u00f3 resetel\u00e9se \u00f3ta negat\u00edv ir\u00e1nyban kiadott l\u00e9p\u00e9sek sz\u00e1ma. Ha a g\u00e9p a lek\u00e9rdez\u00e9skor mozg\u00e1sban van, akkor a jelentett \u00e9rt\u00e9k tartalmazza a mikrokontrollerben pufferelt l\u00e9p\u00e9seket, de nem tartalmazza a look-ahead sorban l\u00e9v\u0151 l\u00e9p\u00e9seket. A \"stepper\" poz\u00edci\u00f3 ( stepper.get_commanded_position() ) az adott l\u00e9ptet\u0151 poz\u00edci\u00f3ja, ahogyan azt a kinematikai k\u00f3d k\u00f6veti. Ez \u00e1ltal\u00e1ban megfelel a kocsinak a s\u00edn ment\u00e9n a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott position_endstop-hoz viszony\u00edtott poz\u00edci\u00f3j\u00e1nak (mm-ben). (Egyes kinematik\u00e1k a l\u00e9ptet\u0151k poz\u00edci\u00f3j\u00e1t millim\u00e9ter helyett radi\u00e1nban k\u00f6vetik.) Ha a g\u00e9p a lek\u00e9rdez\u00e9skor mozg\u00e1sban van, akkor a jelentett \u00e9rt\u00e9k tartalmazza a mikrokontrollerben pufferelt mozg\u00e1sokat, de nem tartalmazza a look-ahead sorban l\u00e9v\u0151 mozg\u00e1sokat. Haszn\u00e1lhatjuk a toolhead.flush_step_generation() vagy toolhead.wait_moves() h\u00edv\u00e1sokat a look-ahead \u00e9s a l\u00e9p\u00e9sgener\u00e1l\u00f3 k\u00f3d teljes ki\u00fcr\u00edt\u00e9s\u00e9hez. A \"kinematic\" poz\u00edci\u00f3 ( kin.calc_position() ) a nyomtat\u00f3fej \"stepper\" poz\u00edci\u00f3kb\u00f3l sz\u00e1rmaztatott cartesian poz\u00edci\u00f3ja, \u00e9s a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1tarendszerhez k\u00e9pest relat\u00edv. Ez elt\u00e9rhet a k\u00e9rt cartesian poz\u00edci\u00f3t\u00f3l a l\u00e9ptet\u0151motorok szaggatotts\u00e1ga miatt. Ha a g\u00e9p a \"stepper\" poz\u00edci\u00f3k felv\u00e9telekor mozg\u00e1sban van, akkor a jelentett \u00e9rt\u00e9k tartalmazza a mikrokontrollerben pufferelt mozg\u00e1sokat, de nem tartalmazza a look-ahead v\u00e1r\u00f3list\u00e1n l\u00e9v\u0151 mozg\u00e1sokat. Haszn\u00e1lhatjuk a toolhead.flush_step_generation() vagy toolhead.wait_moves() h\u00edv\u00e1sokat a look-ahead \u00e9s a l\u00e9p\u00e9sgener\u00e1l\u00f3 k\u00f3d teljes ki\u00fcr\u00edt\u00e9s\u00e9hez. A \"toolhead\" poz\u00edci\u00f3 ( toolhead.get_position() ) a nyomtat\u00f3fej utols\u00f3 k\u00e9rt poz\u00edci\u00f3ja cartesian koordin\u00e1t\u00e1kban a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1tarendszerhez k\u00e9pest. Ha a g\u00e9p a lek\u00e9rdez\u00e9s kiad\u00e1sakor mozg\u00e1sban van, akkor a jelentett \u00e9rt\u00e9k tartalmazza az \u00f6sszes k\u00e9rt mozg\u00e1st (m\u00e9g azokat is, amelyek a pufferben vannak \u00e9s a motorvez\u00e9rl\u0151knek val\u00f3 kiad\u00e1sra v\u00e1rnak). A \"gcode\" poz\u00edci\u00f3 a G1 (vagy G0 ) parancs utols\u00f3 k\u00e9rt poz\u00edci\u00f3ja cartesian koordin\u00e1t\u00e1kban, a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1tarendszerhez k\u00e9pest. Ez elt\u00e9rhet a \"toolhead\" poz\u00edci\u00f3t\u00f3l, ha egy G-k\u00f3d transzform\u00e1ci\u00f3 (pl. bed_mesh, bed_tilt, skew_correction) van \u00e9rv\u00e9nyben. Ez elt\u00e9rhet az utols\u00f3 G1 parancsban megadott t\u00e9nyleges koordin\u00e1t\u00e1kt\u00f3l, ha a G-k\u00f3d orig\u00f3ja megv\u00e1ltozott (pl, G92 , SET_GCODE_OFFSET , M221 ). A M114 parancs ( gcode_move.get_status()['gcode_position'] ) az aktu\u00e1lis G-k\u00f3d koordin\u00e1tarendszerhez viszony\u00edtott utols\u00f3 G-k\u00f3d poz\u00edci\u00f3t jelenti. A \"gcode base\" a G-k\u00f3d orig\u00f3j\u00e1nak helye cartesian koordin\u00e1t\u00e1kban a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1tarendszerhez k\u00e9pest. Az olyan parancsok, mint a G92 , SET_GCODE_OFFSET \u00e9s M221 m\u00f3dos\u00edtj\u00e1k ezt az \u00e9rt\u00e9ket. A \"gcode homing\" az a hely, amelyet a G-k\u00f3d orig\u00f3jak\u00e9nt (a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1tarendszerhez viszony\u00edtott cartesian koordin\u00e1t\u00e1kban) a G28 home parancs ut\u00e1n haszn\u00e1lni kell. A SET_GCODE_OFFSET parancs megv\u00e1ltoztathatja ezt az \u00e9rt\u00e9ket.","title":"Koordin\u00e1ta rendszerek"},{"location":"Code_Overview.html#ido","text":"A Klipper m\u0171k\u00f6d\u00e9s\u00e9nek alapvet\u0151 eleme az \u00f3r\u00e1k, id\u0151pontok \u00e9s id\u0151b\u00e9lyegek kezel\u00e9se. A Klipper a nyomtat\u00f3n v\u00e9grehajtott m\u0171veleteket a k\u00f6zelj\u00f6v\u0151ben bek\u00f6vetkez\u0151 esem\u00e9nyek \u00fctemez\u00e9s\u00e9vel hajtja v\u00e9gre. P\u00e9ld\u00e1ul egy ventil\u00e1tor bekapcsol\u00e1s\u00e1hoz a k\u00f3d \u00fctemezheti egy GPIO-t\u0171 v\u00e1ltoz\u00e1s\u00e1t 100ms alatt. Ritk\u00e1n fordul el\u0151, hogy a k\u00f3d azonnali m\u0171veletet pr\u00f3b\u00e1l v\u00e9grehajtani. Ez\u00e9rt az id\u0151 kezel\u00e9se a Klipperben kritikus fontoss\u00e1g\u00fa a helyes m\u0171k\u00f6d\u00e9s szempontj\u00e1b\u00f3l. A Klipper gazdaszoftverben h\u00e1romf\u00e9le id\u0151t\u00edpust k\u00f6vethet\u00fcnk nyomon: Rendszerid\u0151. A rendszerid\u0151 a rendszer monoton \u00f3r\u00e1j\u00e1t haszn\u00e1lja. Ez egy lebeg\u0151pontos sz\u00e1m, amelyet m\u00e1sodperck\u00e9nt t\u00e1rolnak, \u00e9s (\u00e1ltal\u00e1ban) a gazdasz\u00e1m\u00edt\u00f3g\u00e9p utols\u00f3 ind\u00edt\u00e1sakor. A rendszerid\u0151k korl\u00e1tozottan haszn\u00e1lhat\u00f3k a szoftverben. Els\u0151sorban az oper\u00e1ci\u00f3s rendszerrel val\u00f3 interakci\u00f3 sor\u00e1n haszn\u00e1lj\u00e1k \u0151ket. Az \u00e1llom\u00e1sk\u00f3don bel\u00fcl a rendszerid\u0151ket gyakran az eventtime vagy curtime nev\u0171 v\u00e1ltoz\u00f3k t\u00e1rolj\u00e1k. Nyomtat\u00e1si id\u0151. A nyomtat\u00e1si id\u0151 a mikrokontroller f\u0151 \u00f3r\u00e1j\u00e1hoz szinkroniz\u00e1l\u00f3dik az (\"[mcu]\" config) szakaszban meghat\u00e1rozott mikrokontrollerhez. Ez egy m\u00e1sodpercben t\u00e1rolt lebeg\u0151pontos sz\u00e1m, \u00e9s a f\u0151 MCU utols\u00f3 \u00fajraind\u00edt\u00e1s\u00e1nak id\u0151pontj\u00e1hoz viszony\u00edtva van. Lehet\u0151s\u00e9g van a \"nyomtat\u00e1si id\u0151\"-r\u0151l a f\u0151 mikrokontroller hardveres \u00f3r\u00e1j\u00e1ra val\u00f3 \u00e1tv\u00e1lt\u00e1sra. A nyomtat\u00e1si id\u0151nek az MCU-val val\u00f3 megszorz\u00e1s\u00e1val a statikusan konfigur\u00e1lt frekvenci\u00e1val. A magas szint\u0171 gazdak\u00f3d szinte minden fizikai m\u0171velet (pl. fejmozg\u00e1s, f\u0171t\u00e9sv\u00e1lt\u00e1s stb.) kisz\u00e1m\u00edt\u00e1s\u00e1hoz nyomtat\u00e1si id\u0151t haszn\u00e1l. A gazdak\u00f3don bel\u00fcl a nyomtat\u00e1si id\u0151ket \u00e1ltal\u00e1ban a print_time vagy move_time nev\u0171 v\u00e1ltoz\u00f3kban t\u00e1rolj\u00e1k. MCU \u00f3ra. Ez az egyes mikrovez\u00e9rl\u0151k hardveres \u00f3rasz\u00e1ml\u00e1l\u00f3ja. Eg\u00e9sz sz\u00e1mk\u00e9nt van t\u00e1rolva, friss\u00edt\u00e9si gyakoris\u00e1ga az adott mikrovez\u00e9rl\u0151 frekvenci\u00e1j\u00e1hoz viszony\u00edtott. A gazdaszoftver bels\u0151 idej\u00e9t leford\u00edtja \u00f3r\u00e1kra, miel\u0151tt tov\u00e1bb\u00edtan\u00e1 az MCU-nak. Az MCU k\u00f3d mindig csak az \u00f3ra ketyeg\u00e9s\u00e9ben k\u00f6veti az id\u0151t. A gazdag\u00e9p k\u00f3don bel\u00fcl az \u00f3ra\u00e9rt\u00e9keket 64 bites eg\u00e9sz sz\u00e1mk\u00e9nt k\u00f6veti nyomon, m\u00edg az MCU k\u00f3d 32 bites eg\u00e9sz sz\u00e1mokat haszn\u00e1l. A gazdag\u00e9p k\u00f3don bel\u00fcl az \u00f3r\u00e1k \u00e1ltal\u00e1ban clock vagy tick nevet tartalmaz\u00f3 v\u00e1ltoz\u00f3kban t\u00e1rol\u00f3dnak. A k\u00fcl\u00f6nb\u00f6z\u0151 id\u0151form\u00e1tumok k\u00f6z\u00f6tti konverzi\u00f3 els\u0151sorban a klippy/clocksync.py k\u00f3dban val\u00f3sul meg. N\u00e9h\u00e1ny dolog, amire figyelni kell a k\u00f3d \u00e1ttekint\u00e9sekor: 32 bites \u00e9s 64 bites \u00f3rajelek: A s\u00e1vsz\u00e9less\u00e9g cs\u00f6kkent\u00e9se \u00e9s a mikrokontroller hat\u00e9konys\u00e1g\u00e1nak jav\u00edt\u00e1sa \u00e9rdek\u00e9ben a mikrokontroller \u00f3rajeleit 32 bites eg\u00e9sz sz\u00e1mokk\u00e9nt k\u00f6vetik. K\u00e9t \u00f3rajel \u00f6sszehasonl\u00edt\u00e1sakor az MCU k\u00f3dban mindig a timer_is_before() f\u00fcggv\u00e9nyt kell haszn\u00e1lni, hogy az eg\u00e9sz sz\u00e1mok \u00e1tford\u00edt\u00e1s\u00e1t megfelel\u0151en kezelj\u00fck. A gazdaszoftver a 32 bites \u00f3rajeleket 64 bites \u00f3rajelekk\u00e9 alak\u00edtja \u00e1t az\u00e1ltal, hogy hozz\u00e1adja az utols\u00f3 kapott MCU id\u0151b\u00e9lyegz\u0151 magasrend\u0171 bitjeit. Egyetlen MCU-t\u00f3l \u00e9rkez\u0151 \u00fczenet sem lehet 2^31 \u00f3rajeln\u00e9l t\u00f6bb a j\u00f6v\u0151ben vagy a m\u00faltban, \u00edgy ez az \u00e1talak\u00edt\u00e1s soha nem f\u00e9lre\u00e9rthet\u0151. A gazdag\u00e9p a 64 bites \u00f3rajelekr\u0151l 32 bites \u00f3rajelekre konvert\u00e1l a magasrend\u0171 bitek egyszer\u0171 lefarag\u00e1s\u00e1val. Annak \u00e9rdek\u00e9ben, hogy ez az \u00e1talak\u00edt\u00e1s ne legyen k\u00e9t\u00e9rtelm\u0171, a klippy/chelper/serialqueue.c k\u00f3d addig puffereli az \u00fczeneteket, am\u00edg azok 2^31 \u00f3rajelen bel\u00fcl vannak a c\u00e9lid\u0151h\u00f6z k\u00e9pest. T\u00f6bb mikrovez\u00e9rl\u0151: A gazdaszoftver t\u00e1mogatja t\u00f6bb mikrovez\u00e9rl\u0151 haszn\u00e1lat\u00e1t egyetlen nyomtat\u00f3n. Ebben az esetben minden mikrokontroller \"MCU \u00f3rajel\u00e9t\" k\u00fcl\u00f6n-k\u00fcl\u00f6n k\u00f6veti. A clocksync.py k\u00f3d kezeli a mikrovez\u00e9rl\u0151k k\u00f6z\u00f6tti \u00f3raeltol\u00f3d\u00e1st a \"nyomtat\u00e1si id\u0151r\u0151l\" az \"MCU \u00f3r\u00e1ra\" t\u00f6rt\u00e9n\u0151 \u00e1talak\u00edt\u00e1s m\u00f3dj\u00e1nak m\u00f3dos\u00edt\u00e1s\u00e1val. A m\u00e1sodlagos MCU-n\u00e1l az ebben az \u00e1talak\u00edt\u00e1sban haszn\u00e1lt MCU frekvencia rendszeresen friss\u00fcl, hogy figyelembe vedd a m\u00e9rt cs\u00fasz\u00e1st.","title":"Id\u0151"},{"location":"Command_Templates.html","text":"Parancssablonok \u00b6 Ez a dokumentum a G-k\u00f3d parancssorozatok gcode_macro (\u00e9s hasonl\u00f3) konfigur\u00e1ci\u00f3s szakaszokban t\u00f6rt\u00e9n\u0151 implement\u00e1l\u00e1s\u00e1r\u00f3l ny\u00fajt inform\u00e1ci\u00f3t. G-k\u00f3d makr\u00f3 elnevez\u00e9se \u00b6 A G-k\u00f3dos makron\u00e9v eset\u00e9ben a nagy- \u00e9s kisbet\u0171s \u00edr\u00e1sm\u00f3d nem fontos - a MY_MACRO \u00e9s a my_macro ugyan\u00fagy ki\u00e9rt\u00e9kel\u0151dik, \u00e9s kicsi vagy nagybet\u0171vel is megh\u00edvhat\u00f3. Ha a makron\u00e9vben sz\u00e1mokat haszn\u00e1lunk, akkor azoknak a n\u00e9v v\u00e9g\u00e9n kell \u00e1llniuk (pl. a TEST_MACRO25 \u00e9rv\u00e9nyes, de a MACRO25_TEST3 nem). A G-k\u00f3d form\u00e1z\u00e1sa a konfigur\u00e1ci\u00f3ban \u00b6 A beh\u00faz\u00e1s fontos, amikor makr\u00f3t defini\u00e1l a konfigur\u00e1ci\u00f3s f\u00e1jlban. T\u00f6bbsoros G-k\u00f3d szekvencia megad\u00e1s\u00e1hoz fontos, hogy minden sorban megfelel\u0151 beh\u00faz\u00e1s legyen. P\u00e9ld\u00e1ul: [gcode_macro blink_led] gcode: SET_PIN PIN=my_led VALUE=1 G4 P2000 SET_PIN PIN=my_led VALUE=0 Figyelj\u00fck meg, hogy a gcode: config opci\u00f3 mindig a sor elej\u00e9n kezd\u0151dik, valamint a G-k\u00f3d makr\u00f3 tov\u00e1bbi sorai soha nem kezd\u0151dnek a sor elej\u00e9n. Le\u00edr\u00e1s hozz\u00e1ad\u00e1sa a makr\u00f3hoz \u00b6 A funkci\u00f3 azonos\u00edt\u00e1s\u00e1nak megk\u00f6nny\u00edt\u00e9se \u00e9rdek\u00e9ben r\u00f6vid le\u00edr\u00e1s adhat\u00f3 hozz\u00e1. Adjunk hozz\u00e1 description: egy r\u00f6vid sz\u00f6veget a funkci\u00f3 le\u00edr\u00e1s\u00e1ra. Ha nincs megadva, az alap\u00e9rtelmezett \u00e9rt\u00e9k \"G-k\u00f3d makr\u00f3\". P\u00e9ld\u00e1ul: [gcode_macro blink_led] description: Blink my_led one time gcode: SET_PIN PIN=my_led VALUE=1 G4 P2000 SET_PIN PIN=my_led VALUE=0 A termin\u00e1l megjelen\u00edti a le\u00edr\u00e1st, ha a HELP parancsot vagy az automatikus kit\u00f6lt\u00e9s funkci\u00f3t haszn\u00e1lod. \u00c1llapot ment\u00e9se/vissza\u00e1ll\u00edt\u00e1sa G-k\u00f3dos mozg\u00e1sokhoz \u00b6 Sajnos a G-k\u00f3d parancsnyelv haszn\u00e1lata kih\u00edv\u00e1st jelenthet. A nyomtat\u00f3fej mozgat\u00e1s\u00e1nak szabv\u00e1nyos mechanizmusa a G1 parancson kereszt\u00fcl t\u00f6rt\u00e9nik (a G0 parancs a G1 parancs \u00e1lnev\u00e9nek tekinthet\u0151, \u00e9s felcser\u00e9lhet\u0151 vele). Ez a parancs azonban a \"G-k\u00f3d elemz\u00e9si \u00e1llapot\u00e1ra\" t\u00e1maszkodik: M82 , M83 , G90 \u00e1ltali be\u00e1ll\u00edt\u00e1sra, G91 , G92 \u00e9s a kor\u00e1bbi G1 parancsok is. Egy G-k\u00f3d makr\u00f3 l\u00e9trehoz\u00e1sakor c\u00e9lszer\u0171 mindig kifejezetten be\u00e1ll\u00edtani a G-k\u00f3d elemz\u00e9si \u00e1llapot\u00e1t a G1 parancs kiad\u00e1sa el\u0151tt. (Ellenkez\u0151 esetben fenn\u00e1ll annak a vesz\u00e9lye, hogy a G1 parancs nemk\u00edv\u00e1natos k\u00e9r\u00e9st fog v\u00e9grehajtani.) Ennek egyik gyakori m\u00f3dja, hogy a G1 mozdulatokat SAVE_GCODE_STATE -be csomagoljuk, G91 , \u00e9s RESTORE_GCODE_STATE -ba. P\u00e9ld\u00e1ul: [gcode_macro MOVE_UP] gcode: SAVE_GCODE_STATE NAME=my_move_up_state G91 G1 Z10 F300 RESTORE_GCODE_STATE NAME=my_move_up_state A G91 parancs a G-k\u00f3d elemz\u00e9si \u00e1llapotot \"relat\u00edv mozgat\u00e1si m\u00f3dba\" helyezi, a RESTORE_GCODE_STATE parancs pedig vissza\u00e1ll\u00edtja a makr\u00f3 bel\u00e9p\u00e9se el\u0151tti \u00e1llapotot. \u00dcgyelj arra, hogy az els\u0151 G1 parancsn\u00e1l adj meg explicit sebess\u00e9get (az F param\u00e9terrel). Sablon b\u0151v\u00edt\u00e9s \u00b6 A gcode_macro gcode: konfigur\u00e1ci\u00f3s szakasz ki\u00e9rt\u00e9kel\u00e9se a Jinja2 sablonnyelv haszn\u00e1lat\u00e1val t\u00f6rt\u00e9nik. A kifejez\u00e9seket ki\u00e9rt\u00e9kelhetj\u00fck fut\u00e1sid\u0151ben { } karakterekbe csomagolva, vagy haszn\u00e1lhatunk felt\u00e9teles utas\u00edt\u00e1sokat {% %} karakterekbe csomagolva. A szintaxissal kapcsolatos tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a Jinja2 dokument\u00e1ci\u00f3 . P\u00e9lda egy \u00f6sszetett makr\u00f3ra: [gcode_macro clean_nozzle] gcode: {% set wipe_count = 8 %} SAVE_GCODE_STATE NAME=clean_nozzle_state G90 G0 Z15 F300 {% for wipe in range(wipe_count) %} {% for coordinate in [(275, 4),(235, 4)] %} G0 X{coordinate[0]} Y{coordinate[1] + 0.25 * wipe} Z9.7 F12000 {% endfor %} {% endfor %} RESTORE_GCODE_STATE NAME=clean_nozzle_state Makr\u00f3 param\u00e9terek \u00b6 Gyakran hasznos a makr\u00f3nak a megh\u00edv\u00e1sakor \u00e1tadott param\u00e9terek vizsg\u00e1lata. Ezek a param\u00e9terek a params \u00e1lv\u00e1ltoz\u00f3val \u00e9rhet\u0151k el. P\u00e9ld\u00e1ul, ha a makr\u00f3: [gcode_macro SET_PERCENT] gcode: M117 Now at { params.VALUE|float * 100 }% SET_PERCENT VALUE=.2 \u00e9rt\u00e9ket adna, akkor M117 Most 20%-os \u00e9rt\u00e9ken . Vedd figyelembe, hogy a param\u00e9ternevek a makr\u00f3ban t\u00f6rt\u00e9n\u0151 ki\u00e9rt\u00e9kel\u00e9skor mindig nagybet\u0171sek, \u00e9s mindig karakterl\u00e1nck\u00e9nt ker\u00fclnek \u00e1tad\u00e1sra. Ha matematikai m\u0171veletet hajtunk v\u00e9gre, akkor azokat explicit m\u00f3don eg\u00e9sz sz\u00e1mokk\u00e1 vagy lebeg\u0151sz\u00e1mokk\u00e1 kell konvert\u00e1lni. Gyakori a Jinja2 set direkt\u00edva haszn\u00e1lata egy alap\u00e9rtelmezett param\u00e9ter haszn\u00e1lat\u00e1hoz \u00e9s az eredm\u00e9ny hozz\u00e1rendel\u00e9se egy helyi n\u00e9vhez. P\u00e9ld\u00e1ul: [gcode_macro SET_BED_TEMPERATURE] gcode: {% set bed_temp = params.TEMPERATURE|default(40)|float %} M140 S{bed_temp} A \"rawparams\" v\u00e1ltoz\u00f3 \u00b6 A fut\u00f3 makr\u00f3 teljes, be nem elemzett param\u00e9terei a rawparams pszeudov\u00e1ltoz\u00f3val \u00e9rhet\u0151k el. Vedd figyelembe, hogy ez mag\u00e1ban foglalja az eredeti parancs r\u00e9sz\u00e9t k\u00e9pez\u0151 megjegyz\u00e9seket is. A sample-macros.cfg f\u00e1jlban tal\u00e1lhat\u00f3 egy p\u00e9lda arra, hogyan lehet fel\u00fcl\u00edrni az M117 parancsot a rawparams haszn\u00e1lat\u00e1val. A \"nyomtat\u00f3\" v\u00e1ltoz\u00f3 \u00b6 A nyomtat\u00f3 aktu\u00e1lis \u00e1llapot\u00e1t a printer \u00e1lv\u00e1ltoz\u00f3val lehet ellen\u0151rizni (\u00e9s megv\u00e1ltoztatni). P\u00e9ld\u00e1ul: [gcode_macro slow_fan] gcode: M106 S{ printer.fan.speed * 0.9 * 255} A rendelkez\u00e9sre \u00e1ll\u00f3 mez\u0151k a Referencia \u00e1llapot dokumentumban vannak meghat\u00e1rozva. Fontos! A makr\u00f3k el\u0151sz\u00f6r teljes eg\u00e9sz\u00e9ben ki\u00e9rt\u00e9kel\u00e9sre ker\u00fclnek, \u00e9s csak ezut\u00e1n ker\u00fclnek v\u00e9grehajt\u00e1sra a kapott parancsok. Ha egy makr\u00f3 olyan parancsot ad ki, amely megv\u00e1ltoztatja a nyomtat\u00f3 \u00e1llapot\u00e1t, az \u00e1llapotv\u00e1ltoz\u00e1s eredm\u00e9nyei nem lesznek l\u00e1that\u00f3ak a makr\u00f3 ki\u00e9rt\u00e9kel\u00e9se sor\u00e1n. Ez akkor is furcsa viselked\u00e9st eredm\u00e9nyezhet, ha egy makr\u00f3 m\u00e1s makr\u00f3kat, h\u00edv\u00f3 parancsokat gener\u00e1l, mivel a megh\u00edvott makr\u00f3 a megh\u00edv\u00e1skor ker\u00fcl ki\u00e9rt\u00e9kel\u00e9sre (ami a h\u00edv\u00f3 makr\u00f3 teljes ki\u00e9rt\u00e9kel\u00e9se ut\u00e1n t\u00f6rt\u00e9nik). A konvenci\u00f3 szerint a printer ut\u00e1n k\u00f6zvetlen\u00fcl k\u00f6vetkez\u0151 n\u00e9v a config szakasz neve. \u00cdgy p\u00e9ld\u00e1ul a printer.fan a [fan] config szakasz \u00e1ltal l\u00e9trehozott ventil\u00e1tor objektumra utal. Van n\u00e9h\u00e1ny kiv\u00e9tel ez al\u00f3l a szab\u00e1ly al\u00f3l. Nevezetesen a gcode_move \u00e9s a toolhead objektumok. Ha a config szakasz sz\u00f3k\u00f6z\u00f6ket tartalmaz, akkor a [ ] jellel lehet el\u00e9rni. P\u00e9ld\u00e1ul: printer[\"generic_heater my_chamber_heater\"].temperature . Vegy\u00fck \u00e9szre, hogy a Jinja2 set direkt\u00edva a printer hierarchi\u00e1ban l\u00e9v\u0151 objektumhoz rendelhet helyi nevet. Ez olvashat\u00f3bb\u00e1 teheti a makr\u00f3kat \u00e9s cs\u00f6kkentheti a g\u00e9pel\u00e9st. P\u00e9ld\u00e1ul: [gcode_macro QUERY_HTU21D] gcode: {% set sensor = printer[\"htu21d my_sensor\"] %} M117 Temp:{sensor.temperature} Humidity:{sensor.humidity} Tev\u00e9kenys\u00e9gek \u00b6 A nyomtat\u00f3 \u00e1llapot\u00e1nak megv\u00e1ltoztat\u00e1s\u00e1ra n\u00e9h\u00e1ny parancs \u00e1ll rendelkez\u00e9sre. P\u00e9ld\u00e1ul az { action_emergency_stop() } a nyomtat\u00f3t le\u00e1ll\u00edt\u00e1si \u00e1llapotba helyezi. Vedd figyelembe, hogy ezek a m\u0171veletek a makr\u00f3 ki\u00e9rt\u00e9kel\u00e9s\u00e9nek id\u0151pontj\u00e1ban t\u00f6rt\u00e9nnek, ami jelent\u0151s id\u0151vel a gener\u00e1lt G-k\u00f3d parancsok v\u00e9grehajt\u00e1sa el\u0151tt t\u00f6rt\u00e9nhet. El\u00e9rhet\u0151 \"m\u0171velet\" parancsok: action_respond_info(msg) : A megadott msg ki\u00edr\u00e1sa a /tmp/printer \u00e1ltermin\u00e1lra. Az msg minden egyes sora \"// \" el\u0151taggal lesz elk\u00fcldve. action_raise_error(msg) : Megszak\u00edtja az aktu\u00e1lis makr\u00f3t (\u00e9s minden h\u00edv\u00f3 makr\u00f3t), \u00e9s a megadott msg \u00fczenetet ki\u00edrja a /tmp/printer pseudo-termin\u00e1lra. Az msg els\u0151 sora \"!! \" el\u0151taggal, a tov\u00e1bbi sorok pedig \"// \" el\u0151taggal lesznek elk\u00fcldve. action_emergency_stop(msg) : A nyomtat\u00f3t le\u00e1ll\u00edt\u00e1si \u00e1llapotba helyezi. Az msg param\u00e9ter opcion\u00e1lis, hasznos lehet a le\u00e1ll\u00edt\u00e1s ok\u00e1nak le\u00edr\u00e1sa. action_call_remote_method(method_name) : Egy t\u00e1voli \u00fcgyf\u00e9l \u00e1ltal regisztr\u00e1lt met\u00f3dus h\u00edv\u00e1sa. Ha a met\u00f3dus param\u00e9tereket fogad el, akkor azokat kulcsszavas argumentumokkal kell megadni, azaz: action_call_remote_method(\"print_stuff\", my_arg=\"hello_world\") V\u00e1ltoz\u00f3k \u00b6 A SET_GCODE_VARIABLE parancs hasznos lehet a makr\u00f3h\u00edv\u00e1sok k\u00f6z\u00f6tti \u00e1llapotment\u00e9shez. A v\u00e1ltoz\u00f3k nevei nem tartalmazhatnak nagybet\u0171ket. P\u00e9ld\u00e1ul: [gcode_macro start_probe] variable_bed_temp: 0 gcode: # Save target temperature to bed_temp variable SET_GCODE_VARIABLE MACRO=start_probe VARIABLE=bed_temp VALUE={printer.heater_bed.target} # Disable bed heater M140 # Perform probe PROBE # Call finish_probe macro at completion of probe finish_probe [gcode_macro finish_probe] gcode: # Restore temperature M140 S{printer[\"gcode_macro start_probe\"].bed_temp} A SET_GCODE_VARIABLE haszn\u00e1latakor mindenk\u00e9ppen vedd figyelembe a makr\u00f3 ki\u00e9rt\u00e9kel\u00e9s\u00e9nek \u00e9s a parancs v\u00e9grehajt\u00e1s\u00e1nak id\u0151z\u00edt\u00e9s\u00e9t. K\u00e9sleltetett G-k\u00f3dok \u00b6 A [delayed_gcode] konfigur\u00e1ci\u00f3s opci\u00f3 k\u00e9sleltetett G-k\u00f3d szekvencia v\u00e9grehajt\u00e1s\u00e1hoz haszn\u00e1lhat\u00f3: [delayed_gcode clear_display] gcode: M117 [gcode_macro load_filament] gcode: G91 G1 E50 G90 M400 M117 Load Complete! UPDATE_DELAYED_GCODE ID=clear_display DURATION=10 Amikor a fenti load_filament makr\u00f3 v\u00e9grehajt\u00f3dik, az extrud\u00e1l\u00e1s befejez\u00e9se ut\u00e1n megjelenik egy \"Load Complete!\" \u00fczenet. A G-k\u00f3d utols\u00f3 sora enged\u00e9lyezi a \"clear_display\" delayed_gcode-ot, amely 10 m\u00e1sodperc m\u00falva v\u00e9grehajt\u00e1sra van be\u00e1ll\u00edtva. Az initial_duration konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1s be\u00e1ll\u00edthat\u00f3 \u00fagy, hogy a nyomtat\u00f3 ind\u00edt\u00e1sakor v\u00e9grehajtsa a delayed_gcode parancsot. A visszasz\u00e1ml\u00e1l\u00e1s akkor kezd\u0151dik, amikor a nyomtat\u00f3 a \"ready\" \u00e1llapotba l\u00e9p. Az al\u00e1bbi delayed_gcode p\u00e9ld\u00e1ul a nyomtat\u00f3 elk\u00e9sz\u00fclte ut\u00e1n 5 m\u00e1sodperccel v\u00e9grehajtja a m\u0171veletet, \u00e9s a kijelz\u0151t \"\u00dcdv\u00f6zl\u00e9s!\" \u00fczenettel inicializ\u00e1lja: [delayed_gcode welcome] initial_duration: 5. gcode: M117 Welcome! Lehets\u00e9ges, hogy egy k\u00e9sleltetett G-k\u00f3d megism\u00e9tl\u0151dik a G-k\u00f3d opci\u00f3ban t\u00f6rt\u00e9n\u0151 friss\u00edt\u00e9ssel: [delayed_gcode report_temp] initial_duration: 2. gcode: {action_respond_info(\"Extruder Temp: %.1f\" % (printer.extruder0.temperature))} UPDATE_DELAYED_GCODE ID=report_temp DURATION=2 A fenti delayed_gcode 2 m\u00e1sodpercenk\u00e9nt elk\u00fcldi az \"// Extruder Temp: [ex0_temp]\" k\u00f3dot az Octoprintnek. Ez a k\u00f6vetkez\u0151 G-k\u00f3ddal t\u00f6r\u00f6lhet\u0151: UPDATE_DELAYED_GCODE ID=report_temp DURATION=0 Men\u00fcsablonok \u00b6 Ha a display config section enged\u00e9lyezve van, akkor lehet\u0151s\u00e9g van a men\u00fc testreszab\u00e1s\u00e1ra a menu konfigur\u00e1ci\u00f3s szakaszokkal. A men\u00fcsablonokban a k\u00f6vetkez\u0151 csak olvashat\u00f3 attrib\u00fatumok \u00e1llnak rendelkez\u00e9sre: menu.width - az elem sz\u00e9less\u00e9ge (a megjelen\u00edtett oszlopok sz\u00e1ma) menu.ns - elem n\u00e9vtere menu.event - a szkriptet kiv\u00e1lt\u00f3 esem\u00e9ny neve menu.input - beviteli \u00e9rt\u00e9k, csak input script kontextusban \u00e9rhet\u0151 el A men\u00fcsablonokban a k\u00f6vetkez\u0151 m\u0171veletek \u00e9rhet\u0151k el: menu.back(force, update) : v\u00e9grehajtja a men\u00fc vissza parancs\u00e1t, az opcion\u00e1lis logikai param\u00e9tereket <force> \u00e9s <update> . Ha a <force> \u00e9rt\u00e9ke True, akkor a szerkeszt\u00e9s is le\u00e1ll. Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. Ha az <update> \u00e9rt\u00e9ke False, akkor a fels\u0151bb t\u00e1rol\u00f3elemek nem friss\u00fclnek. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. menu.exit(force) - v\u00e9grehajtja a men\u00fcb\u0151l val\u00f3 kil\u00e9p\u00e9s parancs\u00e1t, opcion\u00e1lis boolean param\u00e9ter <force> alap\u00e9rtelmezett \u00e9rt\u00e9ke False. Ha a <force> \u00e9rt\u00e9ke True, akkor a szerkeszt\u00e9s is le\u00e1ll. Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. V\u00e1ltoz\u00f3k ment\u00e9se lemezre \u00b6 Ha a save_variables config section enged\u00e9lyezve van, a SAVE_VARIABLE VARIABLE=<name> VALUE=<value> haszn\u00e1lhat\u00f3 a v\u00e1ltoz\u00f3 lemezre ment\u00e9s\u00e9re, hogy az \u00fajraind\u00edt\u00e1sok sor\u00e1n is haszn\u00e1lhat\u00f3 legyen. Minden t\u00e1rolt v\u00e1ltoz\u00f3 bet\u00f6lt\u0151dik a printer.save_variables.variables dict-be ind\u00edt\u00e1skor, \u00e9s felhaszn\u00e1lhat\u00f3 a G-k\u00f3d makr\u00f3kban. A t\u00fal hossz\u00fa sorok elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a makr\u00f3 elej\u00e9re a k\u00f6vetkez\u0151ket \u00edrhatjuk: {% set svv = printer.save_variables.variables %} P\u00e9ldak\u00e9nt a 2 az 1-ben nyomtat\u00f3fej \u00e1llapot\u00e1nak ment\u00e9s\u00e9re haszn\u00e1lhat\u00f3, \u00e9s nyomtat\u00e1s ind\u00edt\u00e1sakor gy\u0151z\u0151dj meg arr\u00f3l, hogy az akt\u00edv fejet haszn\u00e1ld a T0 helyett: [gcode_macro T1] gcode: ACTIVATE_EXTRUDER extruder=extruder1 SAVE_VARIABLE VARIABLE=currentextruder VALUE='\"extruder1\"' [gcode_macro T0] gcode: ACTIVATE_EXTRUDER extruder=extruder SAVE_VARIABLE VARIABLE=currentextruder VALUE='\"extruder\"' [gcode_macro START_GCODE] gcode: {% set svv = printer.save_variables.variables %} ACTIVATE_EXTRUDER extruder={svv.currentextruder}","title":"Parancssablonok"},{"location":"Command_Templates.html#parancssablonok","text":"Ez a dokumentum a G-k\u00f3d parancssorozatok gcode_macro (\u00e9s hasonl\u00f3) konfigur\u00e1ci\u00f3s szakaszokban t\u00f6rt\u00e9n\u0151 implement\u00e1l\u00e1s\u00e1r\u00f3l ny\u00fajt inform\u00e1ci\u00f3t.","title":"Parancssablonok"},{"location":"Command_Templates.html#g-kod-makro-elnevezese","text":"A G-k\u00f3dos makron\u00e9v eset\u00e9ben a nagy- \u00e9s kisbet\u0171s \u00edr\u00e1sm\u00f3d nem fontos - a MY_MACRO \u00e9s a my_macro ugyan\u00fagy ki\u00e9rt\u00e9kel\u0151dik, \u00e9s kicsi vagy nagybet\u0171vel is megh\u00edvhat\u00f3. Ha a makron\u00e9vben sz\u00e1mokat haszn\u00e1lunk, akkor azoknak a n\u00e9v v\u00e9g\u00e9n kell \u00e1llniuk (pl. a TEST_MACRO25 \u00e9rv\u00e9nyes, de a MACRO25_TEST3 nem).","title":"G-k\u00f3d makr\u00f3 elnevez\u00e9se"},{"location":"Command_Templates.html#a-g-kod-formazasa-a-konfiguracioban","text":"A beh\u00faz\u00e1s fontos, amikor makr\u00f3t defini\u00e1l a konfigur\u00e1ci\u00f3s f\u00e1jlban. T\u00f6bbsoros G-k\u00f3d szekvencia megad\u00e1s\u00e1hoz fontos, hogy minden sorban megfelel\u0151 beh\u00faz\u00e1s legyen. P\u00e9ld\u00e1ul: [gcode_macro blink_led] gcode: SET_PIN PIN=my_led VALUE=1 G4 P2000 SET_PIN PIN=my_led VALUE=0 Figyelj\u00fck meg, hogy a gcode: config opci\u00f3 mindig a sor elej\u00e9n kezd\u0151dik, valamint a G-k\u00f3d makr\u00f3 tov\u00e1bbi sorai soha nem kezd\u0151dnek a sor elej\u00e9n.","title":"A G-k\u00f3d form\u00e1z\u00e1sa a konfigur\u00e1ci\u00f3ban"},{"location":"Command_Templates.html#leiras-hozzaadasa-a-makrohoz","text":"A funkci\u00f3 azonos\u00edt\u00e1s\u00e1nak megk\u00f6nny\u00edt\u00e9se \u00e9rdek\u00e9ben r\u00f6vid le\u00edr\u00e1s adhat\u00f3 hozz\u00e1. Adjunk hozz\u00e1 description: egy r\u00f6vid sz\u00f6veget a funkci\u00f3 le\u00edr\u00e1s\u00e1ra. Ha nincs megadva, az alap\u00e9rtelmezett \u00e9rt\u00e9k \"G-k\u00f3d makr\u00f3\". P\u00e9ld\u00e1ul: [gcode_macro blink_led] description: Blink my_led one time gcode: SET_PIN PIN=my_led VALUE=1 G4 P2000 SET_PIN PIN=my_led VALUE=0 A termin\u00e1l megjelen\u00edti a le\u00edr\u00e1st, ha a HELP parancsot vagy az automatikus kit\u00f6lt\u00e9s funkci\u00f3t haszn\u00e1lod.","title":"Le\u00edr\u00e1s hozz\u00e1ad\u00e1sa a makr\u00f3hoz"},{"location":"Command_Templates.html#allapot-mentesevisszaallitasa-g-kodos-mozgasokhoz","text":"Sajnos a G-k\u00f3d parancsnyelv haszn\u00e1lata kih\u00edv\u00e1st jelenthet. A nyomtat\u00f3fej mozgat\u00e1s\u00e1nak szabv\u00e1nyos mechanizmusa a G1 parancson kereszt\u00fcl t\u00f6rt\u00e9nik (a G0 parancs a G1 parancs \u00e1lnev\u00e9nek tekinthet\u0151, \u00e9s felcser\u00e9lhet\u0151 vele). Ez a parancs azonban a \"G-k\u00f3d elemz\u00e9si \u00e1llapot\u00e1ra\" t\u00e1maszkodik: M82 , M83 , G90 \u00e1ltali be\u00e1ll\u00edt\u00e1sra, G91 , G92 \u00e9s a kor\u00e1bbi G1 parancsok is. Egy G-k\u00f3d makr\u00f3 l\u00e9trehoz\u00e1sakor c\u00e9lszer\u0171 mindig kifejezetten be\u00e1ll\u00edtani a G-k\u00f3d elemz\u00e9si \u00e1llapot\u00e1t a G1 parancs kiad\u00e1sa el\u0151tt. (Ellenkez\u0151 esetben fenn\u00e1ll annak a vesz\u00e9lye, hogy a G1 parancs nemk\u00edv\u00e1natos k\u00e9r\u00e9st fog v\u00e9grehajtani.) Ennek egyik gyakori m\u00f3dja, hogy a G1 mozdulatokat SAVE_GCODE_STATE -be csomagoljuk, G91 , \u00e9s RESTORE_GCODE_STATE -ba. P\u00e9ld\u00e1ul: [gcode_macro MOVE_UP] gcode: SAVE_GCODE_STATE NAME=my_move_up_state G91 G1 Z10 F300 RESTORE_GCODE_STATE NAME=my_move_up_state A G91 parancs a G-k\u00f3d elemz\u00e9si \u00e1llapotot \"relat\u00edv mozgat\u00e1si m\u00f3dba\" helyezi, a RESTORE_GCODE_STATE parancs pedig vissza\u00e1ll\u00edtja a makr\u00f3 bel\u00e9p\u00e9se el\u0151tti \u00e1llapotot. \u00dcgyelj arra, hogy az els\u0151 G1 parancsn\u00e1l adj meg explicit sebess\u00e9get (az F param\u00e9terrel).","title":"\u00c1llapot ment\u00e9se/vissza\u00e1ll\u00edt\u00e1sa G-k\u00f3dos mozg\u00e1sokhoz"},{"location":"Command_Templates.html#sablon-bovites","text":"A gcode_macro gcode: konfigur\u00e1ci\u00f3s szakasz ki\u00e9rt\u00e9kel\u00e9se a Jinja2 sablonnyelv haszn\u00e1lat\u00e1val t\u00f6rt\u00e9nik. A kifejez\u00e9seket ki\u00e9rt\u00e9kelhetj\u00fck fut\u00e1sid\u0151ben { } karakterekbe csomagolva, vagy haszn\u00e1lhatunk felt\u00e9teles utas\u00edt\u00e1sokat {% %} karakterekbe csomagolva. A szintaxissal kapcsolatos tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a Jinja2 dokument\u00e1ci\u00f3 . P\u00e9lda egy \u00f6sszetett makr\u00f3ra: [gcode_macro clean_nozzle] gcode: {% set wipe_count = 8 %} SAVE_GCODE_STATE NAME=clean_nozzle_state G90 G0 Z15 F300 {% for wipe in range(wipe_count) %} {% for coordinate in [(275, 4),(235, 4)] %} G0 X{coordinate[0]} Y{coordinate[1] + 0.25 * wipe} Z9.7 F12000 {% endfor %} {% endfor %} RESTORE_GCODE_STATE NAME=clean_nozzle_state","title":"Sablon b\u0151v\u00edt\u00e9s"},{"location":"Command_Templates.html#makro-parameterek","text":"Gyakran hasznos a makr\u00f3nak a megh\u00edv\u00e1sakor \u00e1tadott param\u00e9terek vizsg\u00e1lata. Ezek a param\u00e9terek a params \u00e1lv\u00e1ltoz\u00f3val \u00e9rhet\u0151k el. P\u00e9ld\u00e1ul, ha a makr\u00f3: [gcode_macro SET_PERCENT] gcode: M117 Now at { params.VALUE|float * 100 }% SET_PERCENT VALUE=.2 \u00e9rt\u00e9ket adna, akkor M117 Most 20%-os \u00e9rt\u00e9ken . Vedd figyelembe, hogy a param\u00e9ternevek a makr\u00f3ban t\u00f6rt\u00e9n\u0151 ki\u00e9rt\u00e9kel\u00e9skor mindig nagybet\u0171sek, \u00e9s mindig karakterl\u00e1nck\u00e9nt ker\u00fclnek \u00e1tad\u00e1sra. Ha matematikai m\u0171veletet hajtunk v\u00e9gre, akkor azokat explicit m\u00f3don eg\u00e9sz sz\u00e1mokk\u00e1 vagy lebeg\u0151sz\u00e1mokk\u00e1 kell konvert\u00e1lni. Gyakori a Jinja2 set direkt\u00edva haszn\u00e1lata egy alap\u00e9rtelmezett param\u00e9ter haszn\u00e1lat\u00e1hoz \u00e9s az eredm\u00e9ny hozz\u00e1rendel\u00e9se egy helyi n\u00e9vhez. P\u00e9ld\u00e1ul: [gcode_macro SET_BED_TEMPERATURE] gcode: {% set bed_temp = params.TEMPERATURE|default(40)|float %} M140 S{bed_temp}","title":"Makr\u00f3 param\u00e9terek"},{"location":"Command_Templates.html#a-rawparams-valtozo","text":"A fut\u00f3 makr\u00f3 teljes, be nem elemzett param\u00e9terei a rawparams pszeudov\u00e1ltoz\u00f3val \u00e9rhet\u0151k el. Vedd figyelembe, hogy ez mag\u00e1ban foglalja az eredeti parancs r\u00e9sz\u00e9t k\u00e9pez\u0151 megjegyz\u00e9seket is. A sample-macros.cfg f\u00e1jlban tal\u00e1lhat\u00f3 egy p\u00e9lda arra, hogyan lehet fel\u00fcl\u00edrni az M117 parancsot a rawparams haszn\u00e1lat\u00e1val.","title":"A \"rawparams\" v\u00e1ltoz\u00f3"},{"location":"Command_Templates.html#a-nyomtato-valtozo","text":"A nyomtat\u00f3 aktu\u00e1lis \u00e1llapot\u00e1t a printer \u00e1lv\u00e1ltoz\u00f3val lehet ellen\u0151rizni (\u00e9s megv\u00e1ltoztatni). P\u00e9ld\u00e1ul: [gcode_macro slow_fan] gcode: M106 S{ printer.fan.speed * 0.9 * 255} A rendelkez\u00e9sre \u00e1ll\u00f3 mez\u0151k a Referencia \u00e1llapot dokumentumban vannak meghat\u00e1rozva. Fontos! A makr\u00f3k el\u0151sz\u00f6r teljes eg\u00e9sz\u00e9ben ki\u00e9rt\u00e9kel\u00e9sre ker\u00fclnek, \u00e9s csak ezut\u00e1n ker\u00fclnek v\u00e9grehajt\u00e1sra a kapott parancsok. Ha egy makr\u00f3 olyan parancsot ad ki, amely megv\u00e1ltoztatja a nyomtat\u00f3 \u00e1llapot\u00e1t, az \u00e1llapotv\u00e1ltoz\u00e1s eredm\u00e9nyei nem lesznek l\u00e1that\u00f3ak a makr\u00f3 ki\u00e9rt\u00e9kel\u00e9se sor\u00e1n. Ez akkor is furcsa viselked\u00e9st eredm\u00e9nyezhet, ha egy makr\u00f3 m\u00e1s makr\u00f3kat, h\u00edv\u00f3 parancsokat gener\u00e1l, mivel a megh\u00edvott makr\u00f3 a megh\u00edv\u00e1skor ker\u00fcl ki\u00e9rt\u00e9kel\u00e9sre (ami a h\u00edv\u00f3 makr\u00f3 teljes ki\u00e9rt\u00e9kel\u00e9se ut\u00e1n t\u00f6rt\u00e9nik). A konvenci\u00f3 szerint a printer ut\u00e1n k\u00f6zvetlen\u00fcl k\u00f6vetkez\u0151 n\u00e9v a config szakasz neve. \u00cdgy p\u00e9ld\u00e1ul a printer.fan a [fan] config szakasz \u00e1ltal l\u00e9trehozott ventil\u00e1tor objektumra utal. Van n\u00e9h\u00e1ny kiv\u00e9tel ez al\u00f3l a szab\u00e1ly al\u00f3l. Nevezetesen a gcode_move \u00e9s a toolhead objektumok. Ha a config szakasz sz\u00f3k\u00f6z\u00f6ket tartalmaz, akkor a [ ] jellel lehet el\u00e9rni. P\u00e9ld\u00e1ul: printer[\"generic_heater my_chamber_heater\"].temperature . Vegy\u00fck \u00e9szre, hogy a Jinja2 set direkt\u00edva a printer hierarchi\u00e1ban l\u00e9v\u0151 objektumhoz rendelhet helyi nevet. Ez olvashat\u00f3bb\u00e1 teheti a makr\u00f3kat \u00e9s cs\u00f6kkentheti a g\u00e9pel\u00e9st. P\u00e9ld\u00e1ul: [gcode_macro QUERY_HTU21D] gcode: {% set sensor = printer[\"htu21d my_sensor\"] %} M117 Temp:{sensor.temperature} Humidity:{sensor.humidity}","title":"A \"nyomtat\u00f3\" v\u00e1ltoz\u00f3"},{"location":"Command_Templates.html#tevekenysegek","text":"A nyomtat\u00f3 \u00e1llapot\u00e1nak megv\u00e1ltoztat\u00e1s\u00e1ra n\u00e9h\u00e1ny parancs \u00e1ll rendelkez\u00e9sre. P\u00e9ld\u00e1ul az { action_emergency_stop() } a nyomtat\u00f3t le\u00e1ll\u00edt\u00e1si \u00e1llapotba helyezi. Vedd figyelembe, hogy ezek a m\u0171veletek a makr\u00f3 ki\u00e9rt\u00e9kel\u00e9s\u00e9nek id\u0151pontj\u00e1ban t\u00f6rt\u00e9nnek, ami jelent\u0151s id\u0151vel a gener\u00e1lt G-k\u00f3d parancsok v\u00e9grehajt\u00e1sa el\u0151tt t\u00f6rt\u00e9nhet. El\u00e9rhet\u0151 \"m\u0171velet\" parancsok: action_respond_info(msg) : A megadott msg ki\u00edr\u00e1sa a /tmp/printer \u00e1ltermin\u00e1lra. Az msg minden egyes sora \"// \" el\u0151taggal lesz elk\u00fcldve. action_raise_error(msg) : Megszak\u00edtja az aktu\u00e1lis makr\u00f3t (\u00e9s minden h\u00edv\u00f3 makr\u00f3t), \u00e9s a megadott msg \u00fczenetet ki\u00edrja a /tmp/printer pseudo-termin\u00e1lra. Az msg els\u0151 sora \"!! \" el\u0151taggal, a tov\u00e1bbi sorok pedig \"// \" el\u0151taggal lesznek elk\u00fcldve. action_emergency_stop(msg) : A nyomtat\u00f3t le\u00e1ll\u00edt\u00e1si \u00e1llapotba helyezi. Az msg param\u00e9ter opcion\u00e1lis, hasznos lehet a le\u00e1ll\u00edt\u00e1s ok\u00e1nak le\u00edr\u00e1sa. action_call_remote_method(method_name) : Egy t\u00e1voli \u00fcgyf\u00e9l \u00e1ltal regisztr\u00e1lt met\u00f3dus h\u00edv\u00e1sa. Ha a met\u00f3dus param\u00e9tereket fogad el, akkor azokat kulcsszavas argumentumokkal kell megadni, azaz: action_call_remote_method(\"print_stuff\", my_arg=\"hello_world\")","title":"Tev\u00e9kenys\u00e9gek"},{"location":"Command_Templates.html#valtozok","text":"A SET_GCODE_VARIABLE parancs hasznos lehet a makr\u00f3h\u00edv\u00e1sok k\u00f6z\u00f6tti \u00e1llapotment\u00e9shez. A v\u00e1ltoz\u00f3k nevei nem tartalmazhatnak nagybet\u0171ket. P\u00e9ld\u00e1ul: [gcode_macro start_probe] variable_bed_temp: 0 gcode: # Save target temperature to bed_temp variable SET_GCODE_VARIABLE MACRO=start_probe VARIABLE=bed_temp VALUE={printer.heater_bed.target} # Disable bed heater M140 # Perform probe PROBE # Call finish_probe macro at completion of probe finish_probe [gcode_macro finish_probe] gcode: # Restore temperature M140 S{printer[\"gcode_macro start_probe\"].bed_temp} A SET_GCODE_VARIABLE haszn\u00e1latakor mindenk\u00e9ppen vedd figyelembe a makr\u00f3 ki\u00e9rt\u00e9kel\u00e9s\u00e9nek \u00e9s a parancs v\u00e9grehajt\u00e1s\u00e1nak id\u0151z\u00edt\u00e9s\u00e9t.","title":"V\u00e1ltoz\u00f3k"},{"location":"Command_Templates.html#kesleltetett-g-kodok","text":"A [delayed_gcode] konfigur\u00e1ci\u00f3s opci\u00f3 k\u00e9sleltetett G-k\u00f3d szekvencia v\u00e9grehajt\u00e1s\u00e1hoz haszn\u00e1lhat\u00f3: [delayed_gcode clear_display] gcode: M117 [gcode_macro load_filament] gcode: G91 G1 E50 G90 M400 M117 Load Complete! UPDATE_DELAYED_GCODE ID=clear_display DURATION=10 Amikor a fenti load_filament makr\u00f3 v\u00e9grehajt\u00f3dik, az extrud\u00e1l\u00e1s befejez\u00e9se ut\u00e1n megjelenik egy \"Load Complete!\" \u00fczenet. A G-k\u00f3d utols\u00f3 sora enged\u00e9lyezi a \"clear_display\" delayed_gcode-ot, amely 10 m\u00e1sodperc m\u00falva v\u00e9grehajt\u00e1sra van be\u00e1ll\u00edtva. Az initial_duration konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1s be\u00e1ll\u00edthat\u00f3 \u00fagy, hogy a nyomtat\u00f3 ind\u00edt\u00e1sakor v\u00e9grehajtsa a delayed_gcode parancsot. A visszasz\u00e1ml\u00e1l\u00e1s akkor kezd\u0151dik, amikor a nyomtat\u00f3 a \"ready\" \u00e1llapotba l\u00e9p. Az al\u00e1bbi delayed_gcode p\u00e9ld\u00e1ul a nyomtat\u00f3 elk\u00e9sz\u00fclte ut\u00e1n 5 m\u00e1sodperccel v\u00e9grehajtja a m\u0171veletet, \u00e9s a kijelz\u0151t \"\u00dcdv\u00f6zl\u00e9s!\" \u00fczenettel inicializ\u00e1lja: [delayed_gcode welcome] initial_duration: 5. gcode: M117 Welcome! Lehets\u00e9ges, hogy egy k\u00e9sleltetett G-k\u00f3d megism\u00e9tl\u0151dik a G-k\u00f3d opci\u00f3ban t\u00f6rt\u00e9n\u0151 friss\u00edt\u00e9ssel: [delayed_gcode report_temp] initial_duration: 2. gcode: {action_respond_info(\"Extruder Temp: %.1f\" % (printer.extruder0.temperature))} UPDATE_DELAYED_GCODE ID=report_temp DURATION=2 A fenti delayed_gcode 2 m\u00e1sodpercenk\u00e9nt elk\u00fcldi az \"// Extruder Temp: [ex0_temp]\" k\u00f3dot az Octoprintnek. Ez a k\u00f6vetkez\u0151 G-k\u00f3ddal t\u00f6r\u00f6lhet\u0151: UPDATE_DELAYED_GCODE ID=report_temp DURATION=0","title":"K\u00e9sleltetett G-k\u00f3dok"},{"location":"Command_Templates.html#menusablonok","text":"Ha a display config section enged\u00e9lyezve van, akkor lehet\u0151s\u00e9g van a men\u00fc testreszab\u00e1s\u00e1ra a menu konfigur\u00e1ci\u00f3s szakaszokkal. A men\u00fcsablonokban a k\u00f6vetkez\u0151 csak olvashat\u00f3 attrib\u00fatumok \u00e1llnak rendelkez\u00e9sre: menu.width - az elem sz\u00e9less\u00e9ge (a megjelen\u00edtett oszlopok sz\u00e1ma) menu.ns - elem n\u00e9vtere menu.event - a szkriptet kiv\u00e1lt\u00f3 esem\u00e9ny neve menu.input - beviteli \u00e9rt\u00e9k, csak input script kontextusban \u00e9rhet\u0151 el A men\u00fcsablonokban a k\u00f6vetkez\u0151 m\u0171veletek \u00e9rhet\u0151k el: menu.back(force, update) : v\u00e9grehajtja a men\u00fc vissza parancs\u00e1t, az opcion\u00e1lis logikai param\u00e9tereket <force> \u00e9s <update> . Ha a <force> \u00e9rt\u00e9ke True, akkor a szerkeszt\u00e9s is le\u00e1ll. Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. Ha az <update> \u00e9rt\u00e9ke False, akkor a fels\u0151bb t\u00e1rol\u00f3elemek nem friss\u00fclnek. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. menu.exit(force) - v\u00e9grehajtja a men\u00fcb\u0151l val\u00f3 kil\u00e9p\u00e9s parancs\u00e1t, opcion\u00e1lis boolean param\u00e9ter <force> alap\u00e9rtelmezett \u00e9rt\u00e9ke False. Ha a <force> \u00e9rt\u00e9ke True, akkor a szerkeszt\u00e9s is le\u00e1ll. Az alap\u00e9rtelmezett \u00e9rt\u00e9k False.","title":"Men\u00fcsablonok"},{"location":"Command_Templates.html#valtozok-mentese-lemezre","text":"Ha a save_variables config section enged\u00e9lyezve van, a SAVE_VARIABLE VARIABLE=<name> VALUE=<value> haszn\u00e1lhat\u00f3 a v\u00e1ltoz\u00f3 lemezre ment\u00e9s\u00e9re, hogy az \u00fajraind\u00edt\u00e1sok sor\u00e1n is haszn\u00e1lhat\u00f3 legyen. Minden t\u00e1rolt v\u00e1ltoz\u00f3 bet\u00f6lt\u0151dik a printer.save_variables.variables dict-be ind\u00edt\u00e1skor, \u00e9s felhaszn\u00e1lhat\u00f3 a G-k\u00f3d makr\u00f3kban. A t\u00fal hossz\u00fa sorok elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a makr\u00f3 elej\u00e9re a k\u00f6vetkez\u0151ket \u00edrhatjuk: {% set svv = printer.save_variables.variables %} P\u00e9ldak\u00e9nt a 2 az 1-ben nyomtat\u00f3fej \u00e1llapot\u00e1nak ment\u00e9s\u00e9re haszn\u00e1lhat\u00f3, \u00e9s nyomtat\u00e1s ind\u00edt\u00e1sakor gy\u0151z\u0151dj meg arr\u00f3l, hogy az akt\u00edv fejet haszn\u00e1ld a T0 helyett: [gcode_macro T1] gcode: ACTIVATE_EXTRUDER extruder=extruder1 SAVE_VARIABLE VARIABLE=currentextruder VALUE='\"extruder1\"' [gcode_macro T0] gcode: ACTIVATE_EXTRUDER extruder=extruder SAVE_VARIABLE VARIABLE=currentextruder VALUE='\"extruder\"' [gcode_macro START_GCODE] gcode: {% set svv = printer.save_variables.variables %} ACTIVATE_EXTRUDER extruder={svv.currentextruder}","title":"V\u00e1ltoz\u00f3k ment\u00e9se lemezre"},{"location":"Config_Changes.html","text":"Konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00e1sok \u00b6 Ez a dokumentum a konfigur\u00e1ci\u00f3s f\u00e1jl leg\u00fajabb szoftveres v\u00e1ltoztat\u00e1sait tartalmazza, amelyek nem kompatibilisek visszafel\u00e9. A Klipper szoftver friss\u00edt\u00e9sekor \u00e9rdemes \u00e1ttanulm\u00e1nyozni ezt a dokumentumot. A dokumentumban szerepl\u0151 valamennyi d\u00e1tum hozz\u00e1vet\u0151leges. V\u00e1ltoz\u00e1sok \u00b6 20220616: Kor\u00e1bban egy rp2040-et bootloader m\u00f3dban lehetett \u00e9getni a make flash FLASH_DEVICE=first futtat\u00e1s\u00e1val. Az ezzel egyen\u00e9rt\u00e9k\u0171 parancs mostant\u00f3l make flash FLASH_DEVICE=2e8a:0003 . 20220612: Az rp2040 mikrokontroller mostant\u00f3l rendelkezik a \"rp2040-e5\" USB hiba elh\u00e1r\u00edt\u00e1s\u00e1val. Ez megb\u00edzhat\u00f3bb\u00e1 teszi a kezdeti USB-kapcsolatokat. Ez azonban a GPIO15 t\u0171 viselked\u00e9s\u00e9nek megv\u00e1ltoz\u00e1s\u00e1t eredm\u00e9nyezheti. Nem val\u00f3sz\u00edn\u0171, hogy a GPIO15 viselked\u00e9s\u00e9nek v\u00e1ltoz\u00e1sa \u00e9szrevehet\u0151 lesz. 20220407: A temperature_fan pid_integral_max konfigur\u00e1ci\u00f3s opci\u00f3t elt\u00e1vol\u00edtottuk (a 20210612-es verzi\u00f3val elavult). 20220407: A pca9632 LED-ek alap\u00e9rtelmezett sz\u00ednsorrendje mostant\u00f3l \"RGBW\". Adjunk hozz\u00e1 egy explicit color_ordert: RBGW be\u00e1ll\u00edt\u00e1st a pca9632 konfigur\u00e1ci\u00f3s szakasz\u00e1ba a kor\u00e1bbi m\u0171k\u00f6d\u00e9s vissza\u00e1ll\u00edt\u00e1s\u00e1hoz. 20220330: A printer.neopixel.color_data \u00e1llapotinform\u00e1ci\u00f3 form\u00e1tuma megv\u00e1ltozott a neopixel \u00e9s dotstar modulok eset\u00e9ben. Az inform\u00e1ci\u00f3 mostant\u00f3l sz\u00ednlist\u00e1k list\u00e1jak\u00e9nt t\u00e1rol\u00f3dik (sz\u00f3t\u00e1rak list\u00e1ja helyett). A r\u00e9szletek\u00e9rt l\u00e1sd az \u00e1llapot hivatkoz\u00e1s c\u00edm\u0171 dokumentumot. 20220307: M73 m\u00e1r nem \u00e1ll\u00edtja 0-ra a nyomtat\u00e1s el\u0151rehalad\u00e1s\u00e1t, ha P hi\u00e1nyzik. 20220304: Az extruder_stepper konfigur\u00e1ci\u00f3s szakaszok extruder param\u00e9tere m\u00e1r nem alap\u00e9rtelmezett. Ha sz\u00fcks\u00e9ges, add meg kifejezetten az extruder: extruder param\u00e9tert, hogy a l\u00e9ptet\u0151motort ind\u00edt\u00e1skor az \"extruder\" mozg\u00e1ssorhoz t\u00e1rs\u00edtsa. 20220210: A SYNC_STEPPER_TO_EXTRUDER parancs elavult; a SET_EXTRUDER_STEP_DISTANCE parancs elavult; az extruder shared_heater config opci\u00f3 elavult. Ezek a funkci\u00f3k a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fclnek. A SET_EXTRUDER_STEP_DISTANCE helyett SET_EXTRUDER_ROTATION_DISTANCE . Cser\u00e9lje ki a SYNC_STEPPER_TO_EXTRUDER \u00e9rt\u00e9ket a SYNC_EXTRUDER_MOTION \u00e9rt\u00e9kre. Cser\u00e9lje ki a shared_heater extruder konfigur\u00e1ci\u00f3s szakaszokat extruder_stepper konfigur\u00e1ci\u00f3s szakaszokra, \u00e9s friss\u00edtse az aktiv\u00e1l\u00e1si makr\u00f3kat a SYNC_EXTRUDER_MOTION haszn\u00e1lat\u00e1ra. 20220116: A tmc2130, tmc2208, tmc2209 \u00e9s tmc2660 run_current sz\u00e1m\u00edt\u00e1si k\u00f3d megv\u00e1ltozott. Egyes run_current be\u00e1ll\u00edt\u00e1sokn\u00e1l az illeszt\u0151programok most m\u00e1sk\u00e9pp konfigur\u00e1lhat\u00f3k. Ennek az \u00faj konfigur\u00e1ci\u00f3nak pontosabbnak kell lennie, de \u00e9rv\u00e9nytelen\u00edtheti a kor\u00e1bbi TMC illeszt\u0151program-hangol\u00e1st. 20211230: A bemeneti alak\u00edt\u00f3 hangol\u00e1s\u00e1ra szolg\u00e1l\u00f3 szkriptek ( scripts/calibrate_shaper.py \u00e9s scripts/graph_accelerometer.py ) alap\u00e9rtelmez\u00e9s szerint Python3-at haszn\u00e1lnak. Ennek eredm\u00e9nyek\u00e9ppen a felhaszn\u00e1l\u00f3knak telep\u00edteni\u00fck kell bizonyos csomagok Python3 verzi\u00f3it (pl. sudo apt install python3-numpy python3-matplotlib ), hogy tov\u00e1bbra is haszn\u00e1lni tudj\u00e1k ezeket a szkripteket. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a Szoftvertelep\u00edt\u00e9s c\u00edm\u0171 r\u00e9szt. Alternat\u00edvak\u00e9nt a felhaszn\u00e1l\u00f3k ideiglenesen kik\u00e9nyszer\u00edthetik ezeknek a szkripteknek a Python 2 alatti v\u00e9grehajt\u00e1s\u00e1t a Python2 interpretor explicit megh\u00edv\u00e1s\u00e1val a konzolon: python2 ~/klipper/scripts/calibrate_shaper.py ... 20211110: Az \"NTC 100K beta 3950\" h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 elavult. Ez az \u00e9rz\u00e9kel\u0151 a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fcl. A legt\u00f6bb felhaszn\u00e1l\u00f3 a \"Generic 3950\" h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151t pontosabbnak fogja tal\u00e1lni. Ha tov\u00e1bbra is a r\u00e9gebbi (jellemz\u0151en kev\u00e9sb\u00e9 pontos) defin\u00edci\u00f3t szeretn\u00e9 haszn\u00e1lni, defini\u00e1ljon egy egy\u00e9ni termisztort a temperature1: 25 , resistance1: 100000 , \u00e9s beta: 3950 \u00e9rt\u00e9keken. 20211104: A \"step pulse duration\" opci\u00f3 a \"make menuconfig\" men\u00fcb\u0151l elt\u00e1vol\u00edt\u00e1sra ker\u00fclt. Az UART vagy SPI m\u00f3dban konfigur\u00e1lt TMC-meghajt\u00f3k alap\u00e9rtelmezett l\u00e9p\u00e9simpulzus id\u0151tartama mostant\u00f3l 100ns. Egy \u00faj step_pulse_duration be\u00e1ll\u00edt\u00e1st kell megadni a stepper config szakaszban minden olyan stepper eset\u00e9ben, amely egy\u00e9ni impulzus id\u0151tartamot ig\u00e9nyel. 20211102: Sz\u00e1mos elavult funkci\u00f3t elt\u00e1vol\u00edtottunk. A l\u00e9ptet\u0151 step_distance opci\u00f3t elt\u00e1vol\u00edtottuk (20201222-t\u0151l elavult). Az rpi_temperature \u00e9rz\u00e9kel\u0151 \u00e1ln\u00e9v elt\u00e1vol\u00edt\u00e1sra ker\u00fclt (elavult 20210219). Az MCU pin_map opci\u00f3 elt\u00e1vol\u00edt\u00e1sra ker\u00fclt (elavult 20210325). A gcode_macro default_parameter_<name> \u00e9s a parancsparam\u00e9terekhez val\u00f3, params pszeudov\u00e1ltoz\u00f3t\u00f3l elt\u00e9r\u0151 makr\u00f3hoz val\u00f3 hozz\u00e1f\u00e9r\u00e9s elt\u00e1vol\u00edt\u00e1sra ker\u00fclt (elavult 20210503). A f\u0171t\u00e9s pid_integral_max opci\u00f3t elt\u00e1vol\u00edtottuk (elavult 20210612). 20210929: Klipper v0.10.0 megjelent. 20210903: Az alap\u00e9rtelmezett smooth_time a f\u0171t\u0151berendez\u00e9sekhez 1 m\u00e1sodpercre v\u00e1ltozott (2 m\u00e1sodpercr\u0151l). A legt\u00f6bb nyomtat\u00f3n\u00e1l ez stabilabb h\u0151m\u00e9rs\u00e9klet-szab\u00e1lyoz\u00e1st eredm\u00e9nyez. 20210830: Az alap\u00e9rtelmezett adxl345 n\u00e9v mostant\u00f3l \"adxl345\". Az ACCELEROMETER_MEASURE \u00e9s ACCELEROMETER_QUERY alap\u00e9rtelmezett CHIP param\u00e9tere mostant\u00f3l szint\u00e9n \"adxl345\". 20210830: Az adxl345 ACCELEROMETER_MEASURE parancs m\u00e1r nem t\u00e1mogatja a RATE param\u00e9tert. A lek\u00e9rdez\u00e9si sebess\u00e9g m\u00f3dos\u00edt\u00e1s\u00e1hoz friss\u00edtse a printer.cfg f\u00e1jlt, \u00e9s adj ki egy RESTART parancsot. 20210821: A printer.configfile.settings t\u00f6bb konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sa mostant\u00f3l listak\u00e9nt lesz jelentve a nyers karakterl\u00e1ncok helyett. Ha a t\u00e9nyleges nyers karakterl\u00e1ncra van sz\u00fcks\u00e9g, haszn\u00e1ld helyette a printer.configfile.config -t. 20210819: Bizonyos esetekben egy G28 c\u00e9lba\u00e9r\u00e9si mozg\u00e1s olyan poz\u00edci\u00f3ban v\u00e9gz\u0151dhet, amely n\u00e9vlegesen az \u00e9rv\u00e9nyes mozg\u00e1si tartom\u00e1nyon k\u00edv\u00fcl esik. Ritka helyzetekben ez zavar\u00f3 \"Move out of range\" hib\u00e1kat eredm\u00e9nyezhet a kezd\u0151pont felv\u00e9tele ut\u00e1n. Ha ez el\u0151fordul, m\u00f3dos\u00edtsd az ind\u00edt\u00e1si szkripteket \u00fagy, hogy a nyomtat\u00f3fej a kezd\u0151pont felv\u00e9tel ut\u00e1n azonnal \u00e9rv\u00e9nyes poz\u00edci\u00f3ba ker\u00fclj\u00f6n. 20210814: Az atmega168 \u00e9s atmega328 csak anal\u00f3g pszeudo-t\u00fcsk\u00e9i PE0/PE1-r\u0151l PE2/PE3-ra lettek \u00e1tnevezve. 20210720: A controller_fan szakasz most m\u00e1r alap\u00e9rtelmez\u00e9s szerint az \u00f6sszes l\u00e9ptet\u0151motort figyeli (nem csak a kinematikus l\u00e9ptet\u0151motorokat). Ha a kor\u00e1bbi m\u0171k\u00f6d\u00e9st szeretn\u00e9nk, l\u00e1sd a konfigur\u00e1ci\u00f3s referencia -ban a stepper config opci\u00f3t. 20210703: A samd_sercom konfigur\u00e1ci\u00f3s szakasznak mostant\u00f3l meg kell adnia az \u00e1ltala konfigur\u00e1lt sercom buszt a sercom opci\u00f3val. 20210612: A pid_integral_max konfigur\u00e1ci\u00f3s opci\u00f3 a f\u0171t\u00e9s \u00e9s a temperature_fan szakaszokban elavult. Az opci\u00f3 a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fcl. 20210503: The gcode_macro default_parameter_<name> config option is deprecated. Use the params pseudo-variable to access macro parameters. Other methods for accessing macro parameters will be removed in the near future. Most users can replace a default_parameter_NAME: VALUE config option with a line like the following in the start of the macro: {% set NAME = params.NAME|default(VALUE)|float %} . See the Command Templates document for examples. 20210430: A SET_VELOCITY_LIMIT (\u00e9s az M204) parancs mostant\u00f3l a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott \u00e9rt\u00e9kekn\u00e9l nagyobb sebess\u00e9get, gyorsul\u00e1st \u00e9s square_corner_velocity-t is be\u00e1ll\u00edthat. 20210325: A pin_map config opci\u00f3 t\u00e1mogat\u00e1sa elavult. Haszn\u00e1ld a sample-aliases.cfg f\u00e1jlt a t\u00e9nyleges mikrokontroller t\u0171 nevekre val\u00f3 ford\u00edt\u00e1shoz. A pin_map config opci\u00f3 a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fcl. 20210313: A Klipper CAN-busszal kommunik\u00e1l\u00f3 mikrovez\u00e9rl\u0151k t\u00e1mogat\u00e1sa megv\u00e1ltozott. Ha CAN-buszt haszn\u00e1l, akkor az \u00f6sszes mikrokontrollert \u00fajra kell \u00e9getni \u00e9s a Klipper konfigur\u00e1ci\u00f3t friss\u00edteni kell . 20210310: A TMC2660 alap\u00e9rtelmezett driver_SFILT \u00e9rt\u00e9ke 1-r\u0151l 0-ra v\u00e1ltozott. 20210227: Az UART vagy SPI m\u00f3dban l\u00e9v\u0151 TMC l\u00e9ptet\u0151motor-meghajt\u00f3k mostant\u00f3l m\u00e1sodpercenk\u00e9nt egyszer lek\u00e9rdez\u00e9sre ker\u00fclnek, amikor enged\u00e9lyezve vannak. Ha a meghajt\u00f3val nem lehet kapcsolatba l\u00e9pni, vagy ha a meghajt\u00f3 hib\u00e1t jelent, akkor a Klipper le\u00e1ll\u00e1si \u00e1llapotba l\u00e9p. 20210219: Az rpi_temperature modult \u00e1tnevezt\u00fck temperature_host -ra. A sensor_type: rpi_temperature minden el\u0151fordul\u00e1s\u00e1t cser\u00e9lje ki sensor_type: temperature_host -ra. A h\u0151m\u00e9rs\u00e9kleti f\u00e1jl el\u00e9r\u00e9si \u00fatvonal\u00e1t a sensor_path config v\u00e1ltoz\u00f3ban lehet megadni. Az rpi_temperature n\u00e9v elavult, \u00e9s a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fcl. 20210201: A TEST_RESONANCES parancs mostant\u00f3l letiltja a bemeneti alak\u00edt\u00e1st, ha az kor\u00e1bban enged\u00e9lyezve volt (\u00e9s a teszt ut\u00e1n \u00fajra enged\u00e9lyezi). Ennek a viselked\u00e9snek a fel\u00fcl\u00edr\u00e1sa \u00e9s a bemeneti alak\u00edt\u00e1s enged\u00e9lyezve tart\u00e1sa \u00e9rdek\u00e9ben egy tov\u00e1bbi INPUT_SHAPING=1 param\u00e9tert adhatunk \u00e1t a parancsnak. 20210201: Az ACCELEROMETER_MEASURE parancs mostant\u00f3l a kimeneti f\u00e1jl nev\u00e9hez hozz\u00e1adja a gyorsul\u00e1sm\u00e9r\u0151 chip nev\u00e9t, ha a chipnek a printer.cfg megfelel\u0151 adxl345 szakasz\u00e1ban adtak nevet. 20201222: A step_distance be\u00e1ll\u00edt\u00e1s a stepper config szakaszokban elavult. Javasoljuk, hogy friss\u00edtse a konfigur\u00e1ci\u00f3t a rotation_distance be\u00e1ll\u00edt\u00e1s haszn\u00e1lat\u00e1ra. A step_distance t\u00e1mogat\u00e1sa a k\u00f6zelj\u00f6v\u0151ben megsz\u0171nik. 20201218: Az endstop_phase modulban az endstop_phase be\u00e1ll\u00edt\u00e1s hely\u00e9be a trigger_phase be\u00e1ll\u00edt\u00e1s l\u00e9pett. Ha az endstop phase modult haszn\u00e1lod, akkor \u00e1t kell konvert\u00e1lni a rotation_distance \u00e9rt\u00e9kre, \u00e9s az ENDSTOP_PHASE_CALIBRATE parancs futtat\u00e1s\u00e1val \u00fajra kell kalibr\u00e1lni az esetleges endstop f\u00e1zisokat. 20201218: A forg\u00f3 delta- \u00e9s pol\u00e1rnyomtat\u00f3knak mostant\u00f3l meg kell adniuk egy gear_ratio param\u00e9tert a forg\u00f3 l\u00e9ptet\u0151ikhez, \u00e9s t\u00f6bb\u00e9 nem adhatnak meg step_distance param\u00e9tert. Az \u00faj gear_ratio param\u00e9ter form\u00e1tum\u00e1t l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1s dokumentumban. 20201213: A \"probe:z_virtual_endstop\" haszn\u00e1latakor nem \u00e9rv\u00e9nyes a Z \"position_endstop\" megad\u00e1sa. Mostant\u00f3l hiba\u00fczenet jelenik meg, ha Z \"position_endstop\" van megadva a \"probe:z_virtual_endstop\" haszn\u00e1lat\u00e1val. A hiba kijav\u00edt\u00e1s\u00e1hoz t\u00e1vol\u00edtsa el a Z \"position_endstop\" meghat\u00e1roz\u00e1st. 20201120: A [board_pins] config szakasz most m\u00e1r explicit mcu: param\u00e9terben add meg az MCU nev\u00e9t. Ha board_pins-t haszn\u00e1lunk egy m\u00e1sodlagos MCU-hoz, akkor a configot friss\u00edteni kell, hogy megadd ezt a nevet. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s referenci\u00e1t . 20201112: A print_stats.print_duration \u00e1ltal bejelentett id\u0151 megv\u00e1ltozott. Az els\u0151 \u00e9szlelt extrud\u00e1l\u00e1s el\u0151tti id\u0151tartamot mostant\u00f3l nem veszi figyelembe. 20201029: A neopixel color_order_GRB config opci\u00f3t elt\u00e1vol\u00edtottuk. Sz\u00fcks\u00e9g eset\u00e9n friss\u00edtse a configot, hogy az \u00faj color_order opci\u00f3t RGB, GRB, RGBW vagy GRBW \u00e9rt\u00e9kre \u00e1ll\u00edtsd be. 20201029: A serial opci\u00f3 az mcu config szakaszban m\u00e1r nem /dev/ttyS0 az alap\u00e9rtelmezett \u00e9rt\u00e9k. Abban a ritka helyzetben, amikor a /dev/ttyS0 a k\u00edv\u00e1nt soros port, azt kifejezetten meg kell adni. 20201020: Klipper v0.9.0 megjelent. 20200902: A MAX31865 \u00e1talak\u00edt\u00f3k RTD ellen\u00e1ll\u00e1s-h\u0151m\u00e9rs\u00e9klet sz\u00e1m\u00edt\u00e1sa jav\u00edt\u00e1sra ker\u00fclt, hogy ne legyen alacsony. Ha ilyen eszk\u00f6zt haszn\u00e1l, akkor kalibr\u00e1lja \u00fajra a nyomtat\u00e1si h\u0151m\u00e9rs\u00e9kletet \u00e9s a PID-be\u00e1ll\u00edt\u00e1sokat. 20200816: A G-k\u00f3d makr\u00f3 printer.gcode objektumot \u00e1tnevezt\u00fck printer.gcode_move objektumra. A printer.toolhead \u00e9s printer.gcode objektumokb\u00f3l t\u00f6bb nem dokument\u00e1lt v\u00e1ltoz\u00f3t elt\u00e1vol\u00edtottunk. A rendelkez\u00e9sre \u00e1ll\u00f3 sablonv\u00e1ltoz\u00f3k list\u00e1j\u00e1t l\u00e1sd a docs/Command_Templates.md f\u00e1jlban. 20200816: A G-k\u00f3d makr\u00f3 \"action_\" rendszere megv\u00e1ltozott. Cser\u00e9lje ki a printer.gcode.action_emergency_stop() h\u00edv\u00e1sokat action_emergency_stop() , printer.gcode.action_respond_info() a action_respond_info() , \u00e9s printer.gcode.action_respond_error() a action_raise_error() -el. 20200809: A men\u00fcrendszer \u00e1t\u00edr\u00e1sra ker\u00fclt. Ha a men\u00fct testre szabt\u00e1k, akkor friss\u00edteni kell az \u00faj konfigur\u00e1ci\u00f3ra. A konfigur\u00e1ci\u00f3 r\u00e9szletei\u00e9rt l\u00e1sd a config/example-menu.cfg f\u00e1jlt, a p\u00e9ld\u00e1k\u00e9rt pedig a klippy/extras/display/menu.cfg f\u00e1jlt. 20200731: A progress attrib\u00fatum viselked\u00e9se megv\u00e1ltozott, amelyet a virtual_sdcard nyomtat\u00f3objektum jelentett. A nyomtat\u00e1s sz\u00fcneteltet\u00e9sekor a Progress m\u00e1r nem \u00e1ll vissza 0-ra. Mostant\u00f3l mindig a bels\u0151 f\u00e1jl poz\u00edci\u00f3ja alapj\u00e1n jelenti a halad\u00e1st. Vagy 0, ha nincs bet\u00f6ltve f\u00e1jl. 20200725: A szervo enable konfigur\u00e1ci\u00f3s param\u00e9ter \u00e9s a SET_SERVO ENABLE param\u00e9ter elt\u00e1vol\u00edt\u00e1sra ker\u00fclt. Friss\u00edts minden makr\u00f3t, hogy a SET_SERVO SERVO=my_servo WIDTH=0 param\u00e9tert haszn\u00e1ld a szerv\u00f3 letilt\u00e1s\u00e1hoz. 20200608: Az LCD-kijelz\u0151 t\u00e1mogat\u00e1sa megv\u00e1ltoztatta n\u00e9h\u00e1ny bels\u0151 \"\u00edr\u00e1sjel\" nev\u00e9t. Ha egy\u00e9ni kijelz\u0151 elrendez\u00e9s ker\u00fclt implement\u00e1l\u00e1sra, akkor sz\u00fcks\u00e9ges lehet friss\u00edteni a leg\u00fajabb gliph nevekre (l\u00e1sd klippy/extras/display/display.cfg az el\u00e9rhet\u0151 gliph-ek list\u00e1j\u00e1t). 20200606: A linux MCU t\u0171 nevei megv\u00e1ltoztak. A t\u0171nevek mostant\u00f3l a gpiochip<chipid>/gpio<gpio> form\u00e1j\u00faak. A gpiochip0 eset\u00e9ben egy r\u00f6vid gpio<gpio> is haszn\u00e1lhat\u00f3. P\u00e9ld\u00e1ul, amire kor\u00e1bban P20 n\u00e9ven hivatkoztunk, az most gpio20 vagy gpiochip0/gpio20 lesz. 20200603: Az alap\u00e9rtelmezett 16x4-es LCD kijelz\u0151n m\u00e1r nem jelenik meg a nyomtat\u00e1sb\u00f3l h\u00e1tral\u00e9v\u0151 becs\u00fclt id\u0151. (Csak az eltelt id\u0151 jelenik meg.) Ha a r\u00e9gi m\u0171k\u00f6d\u00e9st szeretn\u00e9nk, akkor a men\u00fc kijelz\u0151j\u00e9t testre lehet szabni ezzel az inform\u00e1ci\u00f3val (a r\u00e9szletek\u00e9rt l\u00e1sd a config/example-extras.cfg f\u00e1jlban a display_data le\u00edr\u00e1s\u00e1t). 20200531: Az alap\u00e9rtelmezett USB gy\u00e1rt\u00f3/term\u00e9k azonos\u00edt\u00f3 mostant\u00f3l 0x1d50/0x614e. Ezek az \u00faj azonos\u00edt\u00f3k a Klipper sz\u00e1m\u00e1ra vannak fenntartva (k\u00f6sz\u00f6net az openmoko projektnek). Ez a v\u00e1ltoz\u00e1s nem ig\u00e9nyel semmilyen konfigur\u00e1ci\u00f3s m\u00f3dos\u00edt\u00e1st, de az \u00faj azonos\u00edt\u00f3k megjelenhetnek a rendszer napl\u00f3iban. 20200524: A TMC5160 pwm_freq mez\u0151 alap\u00e9rtelmezett \u00e9rt\u00e9ke mostant\u00f3l nulla (egy helyett). 20200425: A gcode_macro parancs sablonv\u00e1ltoz\u00f3ja printer.heater \u00e1t lett nevezve printer.heaters -re. 20200313: A 16x4-es k\u00e9perny\u0151vel \u00e9s a t\u00f6bb extruderrel rendelkez\u0151 nyomtat\u00f3k alap\u00e9rtelmezett LCD-kioszt\u00e1sa megv\u00e1ltozott. Mostant\u00f3l az egy extruderrel rendelkez\u0151 k\u00e9perny\u0151 elrendez\u00e9se az alap\u00e9rtelmezett, \u00e9s az aktu\u00e1lisan akt\u00edv extrudert mutatja. A kor\u00e1bbi kijelz\u0151 elrendez\u00e9s haszn\u00e1lat\u00e1hoz \u00e1ll\u00edtsd be a \"display_group: _multiextruder_16x4\" a printer.cfg f\u00e1jl [display] szakasz\u00e1ban. 20200308: Az alap\u00e9rtelmezett __test men\u00fcpont elt\u00e1vol\u00edt\u00e1sra ker\u00fclt. Ha a konfigur\u00e1ci\u00f3s f\u00e1jlban egy\u00e9ni men\u00fc van, akkor mindenk\u00e9ppen t\u00e1vol\u00edtson el minden hivatkoz\u00e1st erre a __test men\u00fcpontra. 20200308: A \"pakli\" \u00e9s \"k\u00e1rtya\" men\u00fcpontok elt\u00e1vol\u00edt\u00e1sra ker\u00fcltek. Az LCD k\u00e9perny\u0151 elrendez\u00e9s\u00e9nek testreszab\u00e1s\u00e1hoz haszn\u00e1ld az \u00faj display_data config szakaszokat (a r\u00e9szletek\u00e9rt l\u00e1sd a config/example-extras.cfg f\u00e1jlt). 20200109: A bed_mesh modul most m\u00e1r hivatkozik a szonda hely\u00e9re a h\u00e1l\u00f3konfigur\u00e1ci\u00f3ban. Ennek megfelel\u0151en n\u00e9h\u00e1ny konfigur\u00e1ci\u00f3s opci\u00f3t \u00e1tneveztek, hogy pontosabban t\u00fckr\u00f6zze a tervezett funkci\u00f3jukat. T\u00e9glalap alak\u00fa t\u00e1rgyasztalok eset\u00e9ben a min_point \u00e9s max_point \u00e1tnevez\u00e9sre ker\u00fclt mesh_min \u00e9s mesh_max -ra. A kerek t\u00e1rgyasztalok eset\u00e9ben a bed_radius \u00e1t lett nevezve mesh_radius -ra. A kerek t\u00e1rgyasztalokhoz egy \u00faj mesh_origin opci\u00f3 is hozz\u00e1 lett adva. Vedd figyelembe, hogy ezek a v\u00e1ltoz\u00e1sok a kor\u00e1bban elmentett h\u00e1l\u00f3profilokkal is inkompatibilisek. Ha egy inkompatibilis profilt \u00e9szlel\u00fcnk, azt figyelmen k\u00edv\u00fcl hagyjuk \u00e9s elt\u00e1vol\u00edt\u00e1sra \u00fctemezz\u00fck. Az elt\u00e1vol\u00edt\u00e1si folyamat a SAVE_CONFIG parancs kiad\u00e1s\u00e1val fejezhet\u0151 be. A felhaszn\u00e1l\u00f3nak minden egyes profilt \u00fajra kell kalibr\u00e1lnia. 20191218: A display config szakasz m\u00e1r nem t\u00e1mogatja az \"lcd_type: st7567\". Haszn\u00e1ld helyette az \"uc1701\" kijelz\u0151t\u00edpust. \u00c1ll\u00edtsd be az \"lcd_type: uc1701\" \u00e9rt\u00e9ket, \u00e9s m\u00f3dos\u00edtsd az \"rs_pin: some_pin\" \u00e9rt\u00e9ket \"rst_pin: some_pin\" \u00e9rt\u00e9kre. Sz\u00fcks\u00e9g lehet m\u00e9g egy \"contrast: 60\" konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1s hozz\u00e1ad\u00e1s\u00e1ra. 20191210: A be\u00e9p\u00edtett T0, T1, T2, ... parancsok elt\u00e1vol\u00edt\u00e1sra ker\u00fcltek. Az extruder activate_gcode \u00e9s deactivate_gcode konfigur\u00e1ci\u00f3s opci\u00f3k elt\u00e1vol\u00edt\u00e1sra ker\u00fcltek. Ha sz\u00fcks\u00e9g van ezekre a parancsokra (\u00e9s szkriptekre), akkor defini\u00e1ljon egyedi [gcode_macro T0] st\u00edlus\u00fa makr\u00f3kat, amelyek megh\u00edvj\u00e1k az ACTIVATE_EXTRUDER parancsot. P\u00e9ld\u00e1k\u00e9rt l\u00e1sd a config/sample-idex.cfg \u00e9s sample-multi-extruder.cfg f\u00e1jlokat. 20191210: Az M206 parancs t\u00e1mogat\u00e1sa megsz\u0171nt. A SET_GCODE_OFFSET h\u00edv\u00e1s\u00e1val helyettes\u00edtj\u00fck. Ha sz\u00fcks\u00e9g van az M206 t\u00e1mogat\u00e1s\u00e1ra, adjunk hozz\u00e1 egy [gcode_macro M206] config szakaszt, amely megh\u00edvja a SET_GCODE_OFFSET-et. (P\u00e9ld\u00e1ul \"SET_GCODE_OFFSET Z=-{params.Z}\".) 20191202: A \"G4\" parancs nem dokument\u00e1lt \"S\" param\u00e9ter\u00e9nek t\u00e1mogat\u00e1sa megsz\u0171nt. Az S minden el\u0151fordul\u00e1s\u00e1t a szabv\u00e1nyos \"P\" param\u00e9terrel helyettes\u00edti (a milliszekundumokban megadott k\u00e9sleltet\u00e9s). 20191126: Az USB nevek megv\u00e1ltoztak a nat\u00edv USB-t\u00e1mogat\u00e1ssal rendelkez\u0151 mikrovez\u00e9rl\u0151k\u00f6n. Mostant\u00f3l alap\u00e9rtelmez\u00e9s szerint egyedi chip-azonos\u00edt\u00f3t haszn\u00e1lnak (ahol van ilyen). Ha egy \"MCU\" config szakasz olyan \"serial\" be\u00e1ll\u00edt\u00e1st haszn\u00e1l, amely \"/dev/serial/by-id/\" kezdet\u0171, akkor sz\u00fcks\u00e9g lehet a config friss\u00edt\u00e9s\u00e9re. Futtassa a \"ls /dev/serial/by-id/*\" parancsot egy SSH termin\u00e1lban az \u00faj azonos\u00edt\u00f3 meghat\u00e1roz\u00e1s\u00e1hoz. 20191121: A pressure_advance_lookahead_time param\u00e9tert elt\u00e1vol\u00edtottuk. Az alternat\u00edv konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sokat l\u00e1sd a example.cfg f\u00e1jlban. 20191112: A TMC l\u00e9ptet\u0151 vez\u00e9rl\u0151 virtu\u00e1lis enged\u00e9lyez\u00e9si k\u00e9pess\u00e9ge mostant\u00f3l automatikusan enged\u00e9lyezve van, ha a l\u00e9ptet\u0151 nem rendelkezik dedik\u00e1lt l\u00e9ptet\u0151 enged\u00e9lyez\u0151 t\u0171vel. A tmcXXXX:virtual_enable-re val\u00f3 hivatkoz\u00e1sok elt\u00e1vol\u00edt\u00e1sa a konfigur\u00e1ci\u00f3b\u00f3l. A stepper enable_pin konfigur\u00e1ci\u00f3ban t\u00f6bb t\u0171 vez\u00e9rl\u00e9s\u00e9nek lehet\u0151s\u00e9ge megsz\u0171nt. Ha t\u00f6bb t\u0171re van sz\u00fcks\u00e9g, akkor haszn\u00e1lj egy multi_pin config szekci\u00f3t. 20191107: Az els\u0151dleges extruder konfigur\u00e1ci\u00f3s szakasz\u00e1t \"extruder\" n\u00e9ven kell megadni, \u00e9s m\u00e1r nem lehet \"extruder0\" n\u00e9ven megadni. Az extruder \u00e1llapot\u00e1t lek\u00e9rdez\u0151 G-k\u00f3d parancssablonokat mostant\u00f3l a \"{printer.extruder}\" seg\u00edts\u00e9g\u00e9vel lehet el\u00e9rni. 20191021: Klipper v0.8.0 megjelent 20191003: A move_to_previous opci\u00f3 a [safe_z_homing]-ban mostant\u00f3l alap\u00e9rtelmez\u00e9s szerint False. (A 20190918 el\u0151tt t\u00e9nylegesen False volt.) 20190918: A z-hop opci\u00f3 a [safe_z_homing]-ban mindig \u00fajra alkalmaz\u00e1sra ker\u00fcl, miut\u00e1n a Z tengelyre t\u00f6rt\u00e9n\u0151 homing befejez\u0151d\u00f6tt. Ez sz\u00fcks\u00e9gess\u00e9 teheti a felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra, hogy friss\u00edts\u00e9k az ezen a modulon alapul\u00f3 egy\u00e9ni szkripteket. 20190806: A SET_NEOPIXEL parancsot \u00e1tnevezt\u00e9k SET_LED-re. 20190726: Az mcp4728 digit\u00e1lis-anal\u00f3g k\u00f3dja megv\u00e1ltozott. Az alap\u00e9rtelmezett i2c_address most 0x60, \u00e9s a fesz\u00fclts\u00e9greferencia most az mcp4728's bels\u0151 2,048 voltos referenci\u00e1hoz viszony\u00edtva van. 20190710: A [firmware_retract] konfigur\u00e1ci\u00f3s szakaszb\u00f3l elt\u00e1vol\u00edtott\u00e1k a z_hop opci\u00f3t. A z_hop t\u00e1mogat\u00e1sa hi\u00e1nyos volt, \u00e9s t\u00f6bb gyakori szeletel\u0151vel hib\u00e1s viselked\u00e9st okozott. 20190710: A PROBE_ACCURACY parancs opcion\u00e1lis param\u00e9terei megv\u00e1ltoztak. Sz\u00fcks\u00e9g lehet a parancsot haszn\u00e1l\u00f3 makr\u00f3k vagy szkriptek friss\u00edt\u00e9s\u00e9re. 20190628: A [skew_correction] szakaszb\u00f3l elt\u00e1vol\u00edtottuk az \u00f6sszes konfigur\u00e1ci\u00f3s opci\u00f3t. A skew_correction konfigur\u00e1l\u00e1sa mostant\u00f3l a SET_SKEW G-k\u00f3don kereszt\u00fcl t\u00f6rt\u00e9nik. L\u00e1sd a Ferdes\u00e9g Korrekci\u00f3 aj\u00e1nlott haszn\u00e1lat\u00e1t. 20190607: A gcode_macro \"variable_X\" param\u00e9terei (a SET_GCODE_VARIABLE VALUE param\u00e9ter\u00e9vel egy\u00fctt) mostant\u00f3l Python liter\u00e1lokk\u00e9nt ker\u00fclnek \u00e9rtelmez\u00e9sre. Ha egy \u00e9rt\u00e9khez karakterl\u00e1ncot kell rendelni, akkor csomagolja az \u00e9rt\u00e9ket id\u00e9z\u0151jelekbe, hogy karakterl\u00e1nck\u00e9nt ker\u00fclj\u00f6n ki\u00e9rt\u00e9kel\u00e9sre. 20190606: A \"samples\", \"samples_result\" \u00e9s \"sample_retract_dist\" konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sok \u00e1tker\u00fcltek a \"probe\" konfigur\u00e1ci\u00f3s szakaszba. Ezek az opci\u00f3k m\u00e1r nem t\u00e1mogatottak a \"delta_calibrate\", \"bed_tilt\", \"bed_mesh\", \"screws_tilt_adjust\", \"z_tilt\", vagy \"quad_gantry_level\" config szakaszokban. 20190528: A gcode_macro sablon ki\u00e9rt\u00e9kel\u00e9s\u00e9ben a m\u00e1gikus \"status\" v\u00e1ltoz\u00f3t \u00e1tnevezt\u00fck \"printer\" -re. 20190520: A SET_GCODE_OFFSET parancs megv\u00e1ltozott; ennek megfelel\u0151en friss\u00edtse a G-k\u00f3d makr\u00f3kat. A parancs m\u00e1r nem alkalmazza a k\u00e9rt eltol\u00e1st a k\u00f6vetkez\u0151 G1 parancsra. A r\u00e9gi viselked\u00e9s megk\u00f6zel\u00edthet\u0151 az \u00faj \"MOVE=1\" param\u00e9ter haszn\u00e1lat\u00e1val. 20190404: A Python gazda szoftvercsomagok friss\u00edt\u00e9sre ker\u00fcltek. A felhaszn\u00e1l\u00f3knak \u00fajra kell futtatniuk a ~/klipper/scripts/install-octopi.sh szkriptet (vagy m\u00e1s m\u00f3don friss\u00edteni\u00fck kell a python f\u00fcgg\u0151s\u00e9geket, ha nem standard OctoPi telep\u00edt\u00e9st haszn\u00e1lnak). 20190404: Az i2c_bus \u00e9s spi_bus param\u00e9terek (a k\u00fcl\u00f6nb\u00f6z\u0151 konfigur\u00e1ci\u00f3s szakaszokban) mostant\u00f3l sz\u00e1m helyett busznevet fogadnak el. 20190404: Az sx1509 konfigur\u00e1ci\u00f3s param\u00e9terei megv\u00e1ltoztak. Az 'address' param\u00e9ter mostant\u00f3l 'i2c_address', \u00e9s decim\u00e1lis sz\u00e1mk\u00e9nt kell megadni. A kor\u00e1bban haszn\u00e1lt 0x3E helyett 62-t kell megadni. 20190328: A [temperature_fan] konfigur\u00e1ci\u00f3ban megadott min_speed \u00e9rt\u00e9ket mostant\u00f3l tiszteletben tartjuk, \u00e9s a ventil\u00e1tor PID \u00fczemm\u00f3dban mindig ezen vagy ann\u00e1l magasabb fordulatsz\u00e1mon fog m\u0171k\u00f6dni. 20190322: A \"driver_HEND\" alap\u00e9rtelmezett \u00e9rt\u00e9ke a [tmc2660] konfigur\u00e1ci\u00f3s szakaszokban 6-r\u00f3l 3-ra v\u00e1ltozott. A \"driver_VSENSE\" mez\u0151t elt\u00e1vol\u00edtottuk (mostant\u00f3l automatikusan a run_current-b\u0151l sz\u00e1m\u00edtj\u00e1k ki). 20190310: A [controller_fan] config szakasz mostant\u00f3l mindig kap egy nevet (p\u00e9ld\u00e1ul [controller_fan my_controller_fan]). 20190308: A [tmc2130] \u00e9s [tmc2208] konfigur\u00e1ci\u00f3s szakaszok \"driver_BLANK_TIME_SELECT\" mez\u0151je \u00e1t lett nevezve \"driver_TBL\" -re. 20190308: A [tmc2660] config szakasz megv\u00e1ltozott. Mostant\u00f3l egy \u00faj sense_resistor config param\u00e9tert kell megadni. A driver_XXX param\u00e9terek k\u00f6z\u00fcl t\u00f6bbnek a jelent\u00e9se is megv\u00e1ltozott. 20190228: A SAMD21 k\u00e1rty\u00e1kon SPI vagy I2C-t haszn\u00e1l\u00f3knak mostant\u00f3l a [samd_sercom] config szakaszban kell megadniuk a BUSZ csatlakoz\u00e1sait. 20190224: A bed_shape opci\u00f3t elt\u00e1vol\u00edtottuk a bed_mesh-b\u0151l. A radius opci\u00f3t \u00e1tnevezt\u00fck bed_radiusra. A kerek t\u00e1rgyasztalokkal rendelkez\u0151 felhaszn\u00e1l\u00f3knak a bed_radius \u00e9s a round_probe_count opci\u00f3kat kell megadniuk. 20190107: Az i2c_address param\u00e9ter az mcp4451 config szakaszban megv\u00e1ltozott. Ez egy gyakori be\u00e1ll\u00edt\u00e1s a Smoothie alaplapokon. Az \u00faj \u00e9rt\u00e9k a r\u00e9gi \u00e9rt\u00e9k fele (a 88-as \u00e9rt\u00e9ket 44-re, a 90-es \u00e9rt\u00e9ket pedig 45-re kell m\u00f3dos\u00edtani). 20181220: Klipper v0.7.0 megjelent","title":"Konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00e1sok"},{"location":"Config_Changes.html#konfiguracios-valtozasok","text":"Ez a dokumentum a konfigur\u00e1ci\u00f3s f\u00e1jl leg\u00fajabb szoftveres v\u00e1ltoztat\u00e1sait tartalmazza, amelyek nem kompatibilisek visszafel\u00e9. A Klipper szoftver friss\u00edt\u00e9sekor \u00e9rdemes \u00e1ttanulm\u00e1nyozni ezt a dokumentumot. A dokumentumban szerepl\u0151 valamennyi d\u00e1tum hozz\u00e1vet\u0151leges.","title":"Konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00e1sok"},{"location":"Config_Changes.html#valtozasok","text":"20220616: Kor\u00e1bban egy rp2040-et bootloader m\u00f3dban lehetett \u00e9getni a make flash FLASH_DEVICE=first futtat\u00e1s\u00e1val. Az ezzel egyen\u00e9rt\u00e9k\u0171 parancs mostant\u00f3l make flash FLASH_DEVICE=2e8a:0003 . 20220612: Az rp2040 mikrokontroller mostant\u00f3l rendelkezik a \"rp2040-e5\" USB hiba elh\u00e1r\u00edt\u00e1s\u00e1val. Ez megb\u00edzhat\u00f3bb\u00e1 teszi a kezdeti USB-kapcsolatokat. Ez azonban a GPIO15 t\u0171 viselked\u00e9s\u00e9nek megv\u00e1ltoz\u00e1s\u00e1t eredm\u00e9nyezheti. Nem val\u00f3sz\u00edn\u0171, hogy a GPIO15 viselked\u00e9s\u00e9nek v\u00e1ltoz\u00e1sa \u00e9szrevehet\u0151 lesz. 20220407: A temperature_fan pid_integral_max konfigur\u00e1ci\u00f3s opci\u00f3t elt\u00e1vol\u00edtottuk (a 20210612-es verzi\u00f3val elavult). 20220407: A pca9632 LED-ek alap\u00e9rtelmezett sz\u00ednsorrendje mostant\u00f3l \"RGBW\". Adjunk hozz\u00e1 egy explicit color_ordert: RBGW be\u00e1ll\u00edt\u00e1st a pca9632 konfigur\u00e1ci\u00f3s szakasz\u00e1ba a kor\u00e1bbi m\u0171k\u00f6d\u00e9s vissza\u00e1ll\u00edt\u00e1s\u00e1hoz. 20220330: A printer.neopixel.color_data \u00e1llapotinform\u00e1ci\u00f3 form\u00e1tuma megv\u00e1ltozott a neopixel \u00e9s dotstar modulok eset\u00e9ben. Az inform\u00e1ci\u00f3 mostant\u00f3l sz\u00ednlist\u00e1k list\u00e1jak\u00e9nt t\u00e1rol\u00f3dik (sz\u00f3t\u00e1rak list\u00e1ja helyett). A r\u00e9szletek\u00e9rt l\u00e1sd az \u00e1llapot hivatkoz\u00e1s c\u00edm\u0171 dokumentumot. 20220307: M73 m\u00e1r nem \u00e1ll\u00edtja 0-ra a nyomtat\u00e1s el\u0151rehalad\u00e1s\u00e1t, ha P hi\u00e1nyzik. 20220304: Az extruder_stepper konfigur\u00e1ci\u00f3s szakaszok extruder param\u00e9tere m\u00e1r nem alap\u00e9rtelmezett. Ha sz\u00fcks\u00e9ges, add meg kifejezetten az extruder: extruder param\u00e9tert, hogy a l\u00e9ptet\u0151motort ind\u00edt\u00e1skor az \"extruder\" mozg\u00e1ssorhoz t\u00e1rs\u00edtsa. 20220210: A SYNC_STEPPER_TO_EXTRUDER parancs elavult; a SET_EXTRUDER_STEP_DISTANCE parancs elavult; az extruder shared_heater config opci\u00f3 elavult. Ezek a funkci\u00f3k a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fclnek. A SET_EXTRUDER_STEP_DISTANCE helyett SET_EXTRUDER_ROTATION_DISTANCE . Cser\u00e9lje ki a SYNC_STEPPER_TO_EXTRUDER \u00e9rt\u00e9ket a SYNC_EXTRUDER_MOTION \u00e9rt\u00e9kre. Cser\u00e9lje ki a shared_heater extruder konfigur\u00e1ci\u00f3s szakaszokat extruder_stepper konfigur\u00e1ci\u00f3s szakaszokra, \u00e9s friss\u00edtse az aktiv\u00e1l\u00e1si makr\u00f3kat a SYNC_EXTRUDER_MOTION haszn\u00e1lat\u00e1ra. 20220116: A tmc2130, tmc2208, tmc2209 \u00e9s tmc2660 run_current sz\u00e1m\u00edt\u00e1si k\u00f3d megv\u00e1ltozott. Egyes run_current be\u00e1ll\u00edt\u00e1sokn\u00e1l az illeszt\u0151programok most m\u00e1sk\u00e9pp konfigur\u00e1lhat\u00f3k. Ennek az \u00faj konfigur\u00e1ci\u00f3nak pontosabbnak kell lennie, de \u00e9rv\u00e9nytelen\u00edtheti a kor\u00e1bbi TMC illeszt\u0151program-hangol\u00e1st. 20211230: A bemeneti alak\u00edt\u00f3 hangol\u00e1s\u00e1ra szolg\u00e1l\u00f3 szkriptek ( scripts/calibrate_shaper.py \u00e9s scripts/graph_accelerometer.py ) alap\u00e9rtelmez\u00e9s szerint Python3-at haszn\u00e1lnak. Ennek eredm\u00e9nyek\u00e9ppen a felhaszn\u00e1l\u00f3knak telep\u00edteni\u00fck kell bizonyos csomagok Python3 verzi\u00f3it (pl. sudo apt install python3-numpy python3-matplotlib ), hogy tov\u00e1bbra is haszn\u00e1lni tudj\u00e1k ezeket a szkripteket. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a Szoftvertelep\u00edt\u00e9s c\u00edm\u0171 r\u00e9szt. Alternat\u00edvak\u00e9nt a felhaszn\u00e1l\u00f3k ideiglenesen kik\u00e9nyszer\u00edthetik ezeknek a szkripteknek a Python 2 alatti v\u00e9grehajt\u00e1s\u00e1t a Python2 interpretor explicit megh\u00edv\u00e1s\u00e1val a konzolon: python2 ~/klipper/scripts/calibrate_shaper.py ... 20211110: Az \"NTC 100K beta 3950\" h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 elavult. Ez az \u00e9rz\u00e9kel\u0151 a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fcl. A legt\u00f6bb felhaszn\u00e1l\u00f3 a \"Generic 3950\" h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151t pontosabbnak fogja tal\u00e1lni. Ha tov\u00e1bbra is a r\u00e9gebbi (jellemz\u0151en kev\u00e9sb\u00e9 pontos) defin\u00edci\u00f3t szeretn\u00e9 haszn\u00e1lni, defini\u00e1ljon egy egy\u00e9ni termisztort a temperature1: 25 , resistance1: 100000 , \u00e9s beta: 3950 \u00e9rt\u00e9keken. 20211104: A \"step pulse duration\" opci\u00f3 a \"make menuconfig\" men\u00fcb\u0151l elt\u00e1vol\u00edt\u00e1sra ker\u00fclt. Az UART vagy SPI m\u00f3dban konfigur\u00e1lt TMC-meghajt\u00f3k alap\u00e9rtelmezett l\u00e9p\u00e9simpulzus id\u0151tartama mostant\u00f3l 100ns. Egy \u00faj step_pulse_duration be\u00e1ll\u00edt\u00e1st kell megadni a stepper config szakaszban minden olyan stepper eset\u00e9ben, amely egy\u00e9ni impulzus id\u0151tartamot ig\u00e9nyel. 20211102: Sz\u00e1mos elavult funkci\u00f3t elt\u00e1vol\u00edtottunk. A l\u00e9ptet\u0151 step_distance opci\u00f3t elt\u00e1vol\u00edtottuk (20201222-t\u0151l elavult). Az rpi_temperature \u00e9rz\u00e9kel\u0151 \u00e1ln\u00e9v elt\u00e1vol\u00edt\u00e1sra ker\u00fclt (elavult 20210219). Az MCU pin_map opci\u00f3 elt\u00e1vol\u00edt\u00e1sra ker\u00fclt (elavult 20210325). A gcode_macro default_parameter_<name> \u00e9s a parancsparam\u00e9terekhez val\u00f3, params pszeudov\u00e1ltoz\u00f3t\u00f3l elt\u00e9r\u0151 makr\u00f3hoz val\u00f3 hozz\u00e1f\u00e9r\u00e9s elt\u00e1vol\u00edt\u00e1sra ker\u00fclt (elavult 20210503). A f\u0171t\u00e9s pid_integral_max opci\u00f3t elt\u00e1vol\u00edtottuk (elavult 20210612). 20210929: Klipper v0.10.0 megjelent. 20210903: Az alap\u00e9rtelmezett smooth_time a f\u0171t\u0151berendez\u00e9sekhez 1 m\u00e1sodpercre v\u00e1ltozott (2 m\u00e1sodpercr\u0151l). A legt\u00f6bb nyomtat\u00f3n\u00e1l ez stabilabb h\u0151m\u00e9rs\u00e9klet-szab\u00e1lyoz\u00e1st eredm\u00e9nyez. 20210830: Az alap\u00e9rtelmezett adxl345 n\u00e9v mostant\u00f3l \"adxl345\". Az ACCELEROMETER_MEASURE \u00e9s ACCELEROMETER_QUERY alap\u00e9rtelmezett CHIP param\u00e9tere mostant\u00f3l szint\u00e9n \"adxl345\". 20210830: Az adxl345 ACCELEROMETER_MEASURE parancs m\u00e1r nem t\u00e1mogatja a RATE param\u00e9tert. A lek\u00e9rdez\u00e9si sebess\u00e9g m\u00f3dos\u00edt\u00e1s\u00e1hoz friss\u00edtse a printer.cfg f\u00e1jlt, \u00e9s adj ki egy RESTART parancsot. 20210821: A printer.configfile.settings t\u00f6bb konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sa mostant\u00f3l listak\u00e9nt lesz jelentve a nyers karakterl\u00e1ncok helyett. Ha a t\u00e9nyleges nyers karakterl\u00e1ncra van sz\u00fcks\u00e9g, haszn\u00e1ld helyette a printer.configfile.config -t. 20210819: Bizonyos esetekben egy G28 c\u00e9lba\u00e9r\u00e9si mozg\u00e1s olyan poz\u00edci\u00f3ban v\u00e9gz\u0151dhet, amely n\u00e9vlegesen az \u00e9rv\u00e9nyes mozg\u00e1si tartom\u00e1nyon k\u00edv\u00fcl esik. Ritka helyzetekben ez zavar\u00f3 \"Move out of range\" hib\u00e1kat eredm\u00e9nyezhet a kezd\u0151pont felv\u00e9tele ut\u00e1n. Ha ez el\u0151fordul, m\u00f3dos\u00edtsd az ind\u00edt\u00e1si szkripteket \u00fagy, hogy a nyomtat\u00f3fej a kezd\u0151pont felv\u00e9tel ut\u00e1n azonnal \u00e9rv\u00e9nyes poz\u00edci\u00f3ba ker\u00fclj\u00f6n. 20210814: Az atmega168 \u00e9s atmega328 csak anal\u00f3g pszeudo-t\u00fcsk\u00e9i PE0/PE1-r\u0151l PE2/PE3-ra lettek \u00e1tnevezve. 20210720: A controller_fan szakasz most m\u00e1r alap\u00e9rtelmez\u00e9s szerint az \u00f6sszes l\u00e9ptet\u0151motort figyeli (nem csak a kinematikus l\u00e9ptet\u0151motorokat). Ha a kor\u00e1bbi m\u0171k\u00f6d\u00e9st szeretn\u00e9nk, l\u00e1sd a konfigur\u00e1ci\u00f3s referencia -ban a stepper config opci\u00f3t. 20210703: A samd_sercom konfigur\u00e1ci\u00f3s szakasznak mostant\u00f3l meg kell adnia az \u00e1ltala konfigur\u00e1lt sercom buszt a sercom opci\u00f3val. 20210612: A pid_integral_max konfigur\u00e1ci\u00f3s opci\u00f3 a f\u0171t\u00e9s \u00e9s a temperature_fan szakaszokban elavult. Az opci\u00f3 a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fcl. 20210503: The gcode_macro default_parameter_<name> config option is deprecated. Use the params pseudo-variable to access macro parameters. Other methods for accessing macro parameters will be removed in the near future. Most users can replace a default_parameter_NAME: VALUE config option with a line like the following in the start of the macro: {% set NAME = params.NAME|default(VALUE)|float %} . See the Command Templates document for examples. 20210430: A SET_VELOCITY_LIMIT (\u00e9s az M204) parancs mostant\u00f3l a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott \u00e9rt\u00e9kekn\u00e9l nagyobb sebess\u00e9get, gyorsul\u00e1st \u00e9s square_corner_velocity-t is be\u00e1ll\u00edthat. 20210325: A pin_map config opci\u00f3 t\u00e1mogat\u00e1sa elavult. Haszn\u00e1ld a sample-aliases.cfg f\u00e1jlt a t\u00e9nyleges mikrokontroller t\u0171 nevekre val\u00f3 ford\u00edt\u00e1shoz. A pin_map config opci\u00f3 a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fcl. 20210313: A Klipper CAN-busszal kommunik\u00e1l\u00f3 mikrovez\u00e9rl\u0151k t\u00e1mogat\u00e1sa megv\u00e1ltozott. Ha CAN-buszt haszn\u00e1l, akkor az \u00f6sszes mikrokontrollert \u00fajra kell \u00e9getni \u00e9s a Klipper konfigur\u00e1ci\u00f3t friss\u00edteni kell . 20210310: A TMC2660 alap\u00e9rtelmezett driver_SFILT \u00e9rt\u00e9ke 1-r\u0151l 0-ra v\u00e1ltozott. 20210227: Az UART vagy SPI m\u00f3dban l\u00e9v\u0151 TMC l\u00e9ptet\u0151motor-meghajt\u00f3k mostant\u00f3l m\u00e1sodpercenk\u00e9nt egyszer lek\u00e9rdez\u00e9sre ker\u00fclnek, amikor enged\u00e9lyezve vannak. Ha a meghajt\u00f3val nem lehet kapcsolatba l\u00e9pni, vagy ha a meghajt\u00f3 hib\u00e1t jelent, akkor a Klipper le\u00e1ll\u00e1si \u00e1llapotba l\u00e9p. 20210219: Az rpi_temperature modult \u00e1tnevezt\u00fck temperature_host -ra. A sensor_type: rpi_temperature minden el\u0151fordul\u00e1s\u00e1t cser\u00e9lje ki sensor_type: temperature_host -ra. A h\u0151m\u00e9rs\u00e9kleti f\u00e1jl el\u00e9r\u00e9si \u00fatvonal\u00e1t a sensor_path config v\u00e1ltoz\u00f3ban lehet megadni. Az rpi_temperature n\u00e9v elavult, \u00e9s a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fcl. 20210201: A TEST_RESONANCES parancs mostant\u00f3l letiltja a bemeneti alak\u00edt\u00e1st, ha az kor\u00e1bban enged\u00e9lyezve volt (\u00e9s a teszt ut\u00e1n \u00fajra enged\u00e9lyezi). Ennek a viselked\u00e9snek a fel\u00fcl\u00edr\u00e1sa \u00e9s a bemeneti alak\u00edt\u00e1s enged\u00e9lyezve tart\u00e1sa \u00e9rdek\u00e9ben egy tov\u00e1bbi INPUT_SHAPING=1 param\u00e9tert adhatunk \u00e1t a parancsnak. 20210201: Az ACCELEROMETER_MEASURE parancs mostant\u00f3l a kimeneti f\u00e1jl nev\u00e9hez hozz\u00e1adja a gyorsul\u00e1sm\u00e9r\u0151 chip nev\u00e9t, ha a chipnek a printer.cfg megfelel\u0151 adxl345 szakasz\u00e1ban adtak nevet. 20201222: A step_distance be\u00e1ll\u00edt\u00e1s a stepper config szakaszokban elavult. Javasoljuk, hogy friss\u00edtse a konfigur\u00e1ci\u00f3t a rotation_distance be\u00e1ll\u00edt\u00e1s haszn\u00e1lat\u00e1ra. A step_distance t\u00e1mogat\u00e1sa a k\u00f6zelj\u00f6v\u0151ben megsz\u0171nik. 20201218: Az endstop_phase modulban az endstop_phase be\u00e1ll\u00edt\u00e1s hely\u00e9be a trigger_phase be\u00e1ll\u00edt\u00e1s l\u00e9pett. Ha az endstop phase modult haszn\u00e1lod, akkor \u00e1t kell konvert\u00e1lni a rotation_distance \u00e9rt\u00e9kre, \u00e9s az ENDSTOP_PHASE_CALIBRATE parancs futtat\u00e1s\u00e1val \u00fajra kell kalibr\u00e1lni az esetleges endstop f\u00e1zisokat. 20201218: A forg\u00f3 delta- \u00e9s pol\u00e1rnyomtat\u00f3knak mostant\u00f3l meg kell adniuk egy gear_ratio param\u00e9tert a forg\u00f3 l\u00e9ptet\u0151ikhez, \u00e9s t\u00f6bb\u00e9 nem adhatnak meg step_distance param\u00e9tert. Az \u00faj gear_ratio param\u00e9ter form\u00e1tum\u00e1t l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1s dokumentumban. 20201213: A \"probe:z_virtual_endstop\" haszn\u00e1latakor nem \u00e9rv\u00e9nyes a Z \"position_endstop\" megad\u00e1sa. Mostant\u00f3l hiba\u00fczenet jelenik meg, ha Z \"position_endstop\" van megadva a \"probe:z_virtual_endstop\" haszn\u00e1lat\u00e1val. A hiba kijav\u00edt\u00e1s\u00e1hoz t\u00e1vol\u00edtsa el a Z \"position_endstop\" meghat\u00e1roz\u00e1st. 20201120: A [board_pins] config szakasz most m\u00e1r explicit mcu: param\u00e9terben add meg az MCU nev\u00e9t. Ha board_pins-t haszn\u00e1lunk egy m\u00e1sodlagos MCU-hoz, akkor a configot friss\u00edteni kell, hogy megadd ezt a nevet. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s referenci\u00e1t . 20201112: A print_stats.print_duration \u00e1ltal bejelentett id\u0151 megv\u00e1ltozott. Az els\u0151 \u00e9szlelt extrud\u00e1l\u00e1s el\u0151tti id\u0151tartamot mostant\u00f3l nem veszi figyelembe. 20201029: A neopixel color_order_GRB config opci\u00f3t elt\u00e1vol\u00edtottuk. Sz\u00fcks\u00e9g eset\u00e9n friss\u00edtse a configot, hogy az \u00faj color_order opci\u00f3t RGB, GRB, RGBW vagy GRBW \u00e9rt\u00e9kre \u00e1ll\u00edtsd be. 20201029: A serial opci\u00f3 az mcu config szakaszban m\u00e1r nem /dev/ttyS0 az alap\u00e9rtelmezett \u00e9rt\u00e9k. Abban a ritka helyzetben, amikor a /dev/ttyS0 a k\u00edv\u00e1nt soros port, azt kifejezetten meg kell adni. 20201020: Klipper v0.9.0 megjelent. 20200902: A MAX31865 \u00e1talak\u00edt\u00f3k RTD ellen\u00e1ll\u00e1s-h\u0151m\u00e9rs\u00e9klet sz\u00e1m\u00edt\u00e1sa jav\u00edt\u00e1sra ker\u00fclt, hogy ne legyen alacsony. Ha ilyen eszk\u00f6zt haszn\u00e1l, akkor kalibr\u00e1lja \u00fajra a nyomtat\u00e1si h\u0151m\u00e9rs\u00e9kletet \u00e9s a PID-be\u00e1ll\u00edt\u00e1sokat. 20200816: A G-k\u00f3d makr\u00f3 printer.gcode objektumot \u00e1tnevezt\u00fck printer.gcode_move objektumra. A printer.toolhead \u00e9s printer.gcode objektumokb\u00f3l t\u00f6bb nem dokument\u00e1lt v\u00e1ltoz\u00f3t elt\u00e1vol\u00edtottunk. A rendelkez\u00e9sre \u00e1ll\u00f3 sablonv\u00e1ltoz\u00f3k list\u00e1j\u00e1t l\u00e1sd a docs/Command_Templates.md f\u00e1jlban. 20200816: A G-k\u00f3d makr\u00f3 \"action_\" rendszere megv\u00e1ltozott. Cser\u00e9lje ki a printer.gcode.action_emergency_stop() h\u00edv\u00e1sokat action_emergency_stop() , printer.gcode.action_respond_info() a action_respond_info() , \u00e9s printer.gcode.action_respond_error() a action_raise_error() -el. 20200809: A men\u00fcrendszer \u00e1t\u00edr\u00e1sra ker\u00fclt. Ha a men\u00fct testre szabt\u00e1k, akkor friss\u00edteni kell az \u00faj konfigur\u00e1ci\u00f3ra. A konfigur\u00e1ci\u00f3 r\u00e9szletei\u00e9rt l\u00e1sd a config/example-menu.cfg f\u00e1jlt, a p\u00e9ld\u00e1k\u00e9rt pedig a klippy/extras/display/menu.cfg f\u00e1jlt. 20200731: A progress attrib\u00fatum viselked\u00e9se megv\u00e1ltozott, amelyet a virtual_sdcard nyomtat\u00f3objektum jelentett. A nyomtat\u00e1s sz\u00fcneteltet\u00e9sekor a Progress m\u00e1r nem \u00e1ll vissza 0-ra. Mostant\u00f3l mindig a bels\u0151 f\u00e1jl poz\u00edci\u00f3ja alapj\u00e1n jelenti a halad\u00e1st. Vagy 0, ha nincs bet\u00f6ltve f\u00e1jl. 20200725: A szervo enable konfigur\u00e1ci\u00f3s param\u00e9ter \u00e9s a SET_SERVO ENABLE param\u00e9ter elt\u00e1vol\u00edt\u00e1sra ker\u00fclt. Friss\u00edts minden makr\u00f3t, hogy a SET_SERVO SERVO=my_servo WIDTH=0 param\u00e9tert haszn\u00e1ld a szerv\u00f3 letilt\u00e1s\u00e1hoz. 20200608: Az LCD-kijelz\u0151 t\u00e1mogat\u00e1sa megv\u00e1ltoztatta n\u00e9h\u00e1ny bels\u0151 \"\u00edr\u00e1sjel\" nev\u00e9t. Ha egy\u00e9ni kijelz\u0151 elrendez\u00e9s ker\u00fclt implement\u00e1l\u00e1sra, akkor sz\u00fcks\u00e9ges lehet friss\u00edteni a leg\u00fajabb gliph nevekre (l\u00e1sd klippy/extras/display/display.cfg az el\u00e9rhet\u0151 gliph-ek list\u00e1j\u00e1t). 20200606: A linux MCU t\u0171 nevei megv\u00e1ltoztak. A t\u0171nevek mostant\u00f3l a gpiochip<chipid>/gpio<gpio> form\u00e1j\u00faak. A gpiochip0 eset\u00e9ben egy r\u00f6vid gpio<gpio> is haszn\u00e1lhat\u00f3. P\u00e9ld\u00e1ul, amire kor\u00e1bban P20 n\u00e9ven hivatkoztunk, az most gpio20 vagy gpiochip0/gpio20 lesz. 20200603: Az alap\u00e9rtelmezett 16x4-es LCD kijelz\u0151n m\u00e1r nem jelenik meg a nyomtat\u00e1sb\u00f3l h\u00e1tral\u00e9v\u0151 becs\u00fclt id\u0151. (Csak az eltelt id\u0151 jelenik meg.) Ha a r\u00e9gi m\u0171k\u00f6d\u00e9st szeretn\u00e9nk, akkor a men\u00fc kijelz\u0151j\u00e9t testre lehet szabni ezzel az inform\u00e1ci\u00f3val (a r\u00e9szletek\u00e9rt l\u00e1sd a config/example-extras.cfg f\u00e1jlban a display_data le\u00edr\u00e1s\u00e1t). 20200531: Az alap\u00e9rtelmezett USB gy\u00e1rt\u00f3/term\u00e9k azonos\u00edt\u00f3 mostant\u00f3l 0x1d50/0x614e. Ezek az \u00faj azonos\u00edt\u00f3k a Klipper sz\u00e1m\u00e1ra vannak fenntartva (k\u00f6sz\u00f6net az openmoko projektnek). Ez a v\u00e1ltoz\u00e1s nem ig\u00e9nyel semmilyen konfigur\u00e1ci\u00f3s m\u00f3dos\u00edt\u00e1st, de az \u00faj azonos\u00edt\u00f3k megjelenhetnek a rendszer napl\u00f3iban. 20200524: A TMC5160 pwm_freq mez\u0151 alap\u00e9rtelmezett \u00e9rt\u00e9ke mostant\u00f3l nulla (egy helyett). 20200425: A gcode_macro parancs sablonv\u00e1ltoz\u00f3ja printer.heater \u00e1t lett nevezve printer.heaters -re. 20200313: A 16x4-es k\u00e9perny\u0151vel \u00e9s a t\u00f6bb extruderrel rendelkez\u0151 nyomtat\u00f3k alap\u00e9rtelmezett LCD-kioszt\u00e1sa megv\u00e1ltozott. Mostant\u00f3l az egy extruderrel rendelkez\u0151 k\u00e9perny\u0151 elrendez\u00e9se az alap\u00e9rtelmezett, \u00e9s az aktu\u00e1lisan akt\u00edv extrudert mutatja. A kor\u00e1bbi kijelz\u0151 elrendez\u00e9s haszn\u00e1lat\u00e1hoz \u00e1ll\u00edtsd be a \"display_group: _multiextruder_16x4\" a printer.cfg f\u00e1jl [display] szakasz\u00e1ban. 20200308: Az alap\u00e9rtelmezett __test men\u00fcpont elt\u00e1vol\u00edt\u00e1sra ker\u00fclt. Ha a konfigur\u00e1ci\u00f3s f\u00e1jlban egy\u00e9ni men\u00fc van, akkor mindenk\u00e9ppen t\u00e1vol\u00edtson el minden hivatkoz\u00e1st erre a __test men\u00fcpontra. 20200308: A \"pakli\" \u00e9s \"k\u00e1rtya\" men\u00fcpontok elt\u00e1vol\u00edt\u00e1sra ker\u00fcltek. Az LCD k\u00e9perny\u0151 elrendez\u00e9s\u00e9nek testreszab\u00e1s\u00e1hoz haszn\u00e1ld az \u00faj display_data config szakaszokat (a r\u00e9szletek\u00e9rt l\u00e1sd a config/example-extras.cfg f\u00e1jlt). 20200109: A bed_mesh modul most m\u00e1r hivatkozik a szonda hely\u00e9re a h\u00e1l\u00f3konfigur\u00e1ci\u00f3ban. Ennek megfelel\u0151en n\u00e9h\u00e1ny konfigur\u00e1ci\u00f3s opci\u00f3t \u00e1tneveztek, hogy pontosabban t\u00fckr\u00f6zze a tervezett funkci\u00f3jukat. T\u00e9glalap alak\u00fa t\u00e1rgyasztalok eset\u00e9ben a min_point \u00e9s max_point \u00e1tnevez\u00e9sre ker\u00fclt mesh_min \u00e9s mesh_max -ra. A kerek t\u00e1rgyasztalok eset\u00e9ben a bed_radius \u00e1t lett nevezve mesh_radius -ra. A kerek t\u00e1rgyasztalokhoz egy \u00faj mesh_origin opci\u00f3 is hozz\u00e1 lett adva. Vedd figyelembe, hogy ezek a v\u00e1ltoz\u00e1sok a kor\u00e1bban elmentett h\u00e1l\u00f3profilokkal is inkompatibilisek. Ha egy inkompatibilis profilt \u00e9szlel\u00fcnk, azt figyelmen k\u00edv\u00fcl hagyjuk \u00e9s elt\u00e1vol\u00edt\u00e1sra \u00fctemezz\u00fck. Az elt\u00e1vol\u00edt\u00e1si folyamat a SAVE_CONFIG parancs kiad\u00e1s\u00e1val fejezhet\u0151 be. A felhaszn\u00e1l\u00f3nak minden egyes profilt \u00fajra kell kalibr\u00e1lnia. 20191218: A display config szakasz m\u00e1r nem t\u00e1mogatja az \"lcd_type: st7567\". Haszn\u00e1ld helyette az \"uc1701\" kijelz\u0151t\u00edpust. \u00c1ll\u00edtsd be az \"lcd_type: uc1701\" \u00e9rt\u00e9ket, \u00e9s m\u00f3dos\u00edtsd az \"rs_pin: some_pin\" \u00e9rt\u00e9ket \"rst_pin: some_pin\" \u00e9rt\u00e9kre. Sz\u00fcks\u00e9g lehet m\u00e9g egy \"contrast: 60\" konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1s hozz\u00e1ad\u00e1s\u00e1ra. 20191210: A be\u00e9p\u00edtett T0, T1, T2, ... parancsok elt\u00e1vol\u00edt\u00e1sra ker\u00fcltek. Az extruder activate_gcode \u00e9s deactivate_gcode konfigur\u00e1ci\u00f3s opci\u00f3k elt\u00e1vol\u00edt\u00e1sra ker\u00fcltek. Ha sz\u00fcks\u00e9g van ezekre a parancsokra (\u00e9s szkriptekre), akkor defini\u00e1ljon egyedi [gcode_macro T0] st\u00edlus\u00fa makr\u00f3kat, amelyek megh\u00edvj\u00e1k az ACTIVATE_EXTRUDER parancsot. P\u00e9ld\u00e1k\u00e9rt l\u00e1sd a config/sample-idex.cfg \u00e9s sample-multi-extruder.cfg f\u00e1jlokat. 20191210: Az M206 parancs t\u00e1mogat\u00e1sa megsz\u0171nt. A SET_GCODE_OFFSET h\u00edv\u00e1s\u00e1val helyettes\u00edtj\u00fck. Ha sz\u00fcks\u00e9g van az M206 t\u00e1mogat\u00e1s\u00e1ra, adjunk hozz\u00e1 egy [gcode_macro M206] config szakaszt, amely megh\u00edvja a SET_GCODE_OFFSET-et. (P\u00e9ld\u00e1ul \"SET_GCODE_OFFSET Z=-{params.Z}\".) 20191202: A \"G4\" parancs nem dokument\u00e1lt \"S\" param\u00e9ter\u00e9nek t\u00e1mogat\u00e1sa megsz\u0171nt. Az S minden el\u0151fordul\u00e1s\u00e1t a szabv\u00e1nyos \"P\" param\u00e9terrel helyettes\u00edti (a milliszekundumokban megadott k\u00e9sleltet\u00e9s). 20191126: Az USB nevek megv\u00e1ltoztak a nat\u00edv USB-t\u00e1mogat\u00e1ssal rendelkez\u0151 mikrovez\u00e9rl\u0151k\u00f6n. Mostant\u00f3l alap\u00e9rtelmez\u00e9s szerint egyedi chip-azonos\u00edt\u00f3t haszn\u00e1lnak (ahol van ilyen). Ha egy \"MCU\" config szakasz olyan \"serial\" be\u00e1ll\u00edt\u00e1st haszn\u00e1l, amely \"/dev/serial/by-id/\" kezdet\u0171, akkor sz\u00fcks\u00e9g lehet a config friss\u00edt\u00e9s\u00e9re. Futtassa a \"ls /dev/serial/by-id/*\" parancsot egy SSH termin\u00e1lban az \u00faj azonos\u00edt\u00f3 meghat\u00e1roz\u00e1s\u00e1hoz. 20191121: A pressure_advance_lookahead_time param\u00e9tert elt\u00e1vol\u00edtottuk. Az alternat\u00edv konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sokat l\u00e1sd a example.cfg f\u00e1jlban. 20191112: A TMC l\u00e9ptet\u0151 vez\u00e9rl\u0151 virtu\u00e1lis enged\u00e9lyez\u00e9si k\u00e9pess\u00e9ge mostant\u00f3l automatikusan enged\u00e9lyezve van, ha a l\u00e9ptet\u0151 nem rendelkezik dedik\u00e1lt l\u00e9ptet\u0151 enged\u00e9lyez\u0151 t\u0171vel. A tmcXXXX:virtual_enable-re val\u00f3 hivatkoz\u00e1sok elt\u00e1vol\u00edt\u00e1sa a konfigur\u00e1ci\u00f3b\u00f3l. A stepper enable_pin konfigur\u00e1ci\u00f3ban t\u00f6bb t\u0171 vez\u00e9rl\u00e9s\u00e9nek lehet\u0151s\u00e9ge megsz\u0171nt. Ha t\u00f6bb t\u0171re van sz\u00fcks\u00e9g, akkor haszn\u00e1lj egy multi_pin config szekci\u00f3t. 20191107: Az els\u0151dleges extruder konfigur\u00e1ci\u00f3s szakasz\u00e1t \"extruder\" n\u00e9ven kell megadni, \u00e9s m\u00e1r nem lehet \"extruder0\" n\u00e9ven megadni. Az extruder \u00e1llapot\u00e1t lek\u00e9rdez\u0151 G-k\u00f3d parancssablonokat mostant\u00f3l a \"{printer.extruder}\" seg\u00edts\u00e9g\u00e9vel lehet el\u00e9rni. 20191021: Klipper v0.8.0 megjelent 20191003: A move_to_previous opci\u00f3 a [safe_z_homing]-ban mostant\u00f3l alap\u00e9rtelmez\u00e9s szerint False. (A 20190918 el\u0151tt t\u00e9nylegesen False volt.) 20190918: A z-hop opci\u00f3 a [safe_z_homing]-ban mindig \u00fajra alkalmaz\u00e1sra ker\u00fcl, miut\u00e1n a Z tengelyre t\u00f6rt\u00e9n\u0151 homing befejez\u0151d\u00f6tt. Ez sz\u00fcks\u00e9gess\u00e9 teheti a felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra, hogy friss\u00edts\u00e9k az ezen a modulon alapul\u00f3 egy\u00e9ni szkripteket. 20190806: A SET_NEOPIXEL parancsot \u00e1tnevezt\u00e9k SET_LED-re. 20190726: Az mcp4728 digit\u00e1lis-anal\u00f3g k\u00f3dja megv\u00e1ltozott. Az alap\u00e9rtelmezett i2c_address most 0x60, \u00e9s a fesz\u00fclts\u00e9greferencia most az mcp4728's bels\u0151 2,048 voltos referenci\u00e1hoz viszony\u00edtva van. 20190710: A [firmware_retract] konfigur\u00e1ci\u00f3s szakaszb\u00f3l elt\u00e1vol\u00edtott\u00e1k a z_hop opci\u00f3t. A z_hop t\u00e1mogat\u00e1sa hi\u00e1nyos volt, \u00e9s t\u00f6bb gyakori szeletel\u0151vel hib\u00e1s viselked\u00e9st okozott. 20190710: A PROBE_ACCURACY parancs opcion\u00e1lis param\u00e9terei megv\u00e1ltoztak. Sz\u00fcks\u00e9g lehet a parancsot haszn\u00e1l\u00f3 makr\u00f3k vagy szkriptek friss\u00edt\u00e9s\u00e9re. 20190628: A [skew_correction] szakaszb\u00f3l elt\u00e1vol\u00edtottuk az \u00f6sszes konfigur\u00e1ci\u00f3s opci\u00f3t. A skew_correction konfigur\u00e1l\u00e1sa mostant\u00f3l a SET_SKEW G-k\u00f3don kereszt\u00fcl t\u00f6rt\u00e9nik. L\u00e1sd a Ferdes\u00e9g Korrekci\u00f3 aj\u00e1nlott haszn\u00e1lat\u00e1t. 20190607: A gcode_macro \"variable_X\" param\u00e9terei (a SET_GCODE_VARIABLE VALUE param\u00e9ter\u00e9vel egy\u00fctt) mostant\u00f3l Python liter\u00e1lokk\u00e9nt ker\u00fclnek \u00e9rtelmez\u00e9sre. Ha egy \u00e9rt\u00e9khez karakterl\u00e1ncot kell rendelni, akkor csomagolja az \u00e9rt\u00e9ket id\u00e9z\u0151jelekbe, hogy karakterl\u00e1nck\u00e9nt ker\u00fclj\u00f6n ki\u00e9rt\u00e9kel\u00e9sre. 20190606: A \"samples\", \"samples_result\" \u00e9s \"sample_retract_dist\" konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sok \u00e1tker\u00fcltek a \"probe\" konfigur\u00e1ci\u00f3s szakaszba. Ezek az opci\u00f3k m\u00e1r nem t\u00e1mogatottak a \"delta_calibrate\", \"bed_tilt\", \"bed_mesh\", \"screws_tilt_adjust\", \"z_tilt\", vagy \"quad_gantry_level\" config szakaszokban. 20190528: A gcode_macro sablon ki\u00e9rt\u00e9kel\u00e9s\u00e9ben a m\u00e1gikus \"status\" v\u00e1ltoz\u00f3t \u00e1tnevezt\u00fck \"printer\" -re. 20190520: A SET_GCODE_OFFSET parancs megv\u00e1ltozott; ennek megfelel\u0151en friss\u00edtse a G-k\u00f3d makr\u00f3kat. A parancs m\u00e1r nem alkalmazza a k\u00e9rt eltol\u00e1st a k\u00f6vetkez\u0151 G1 parancsra. A r\u00e9gi viselked\u00e9s megk\u00f6zel\u00edthet\u0151 az \u00faj \"MOVE=1\" param\u00e9ter haszn\u00e1lat\u00e1val. 20190404: A Python gazda szoftvercsomagok friss\u00edt\u00e9sre ker\u00fcltek. A felhaszn\u00e1l\u00f3knak \u00fajra kell futtatniuk a ~/klipper/scripts/install-octopi.sh szkriptet (vagy m\u00e1s m\u00f3don friss\u00edteni\u00fck kell a python f\u00fcgg\u0151s\u00e9geket, ha nem standard OctoPi telep\u00edt\u00e9st haszn\u00e1lnak). 20190404: Az i2c_bus \u00e9s spi_bus param\u00e9terek (a k\u00fcl\u00f6nb\u00f6z\u0151 konfigur\u00e1ci\u00f3s szakaszokban) mostant\u00f3l sz\u00e1m helyett busznevet fogadnak el. 20190404: Az sx1509 konfigur\u00e1ci\u00f3s param\u00e9terei megv\u00e1ltoztak. Az 'address' param\u00e9ter mostant\u00f3l 'i2c_address', \u00e9s decim\u00e1lis sz\u00e1mk\u00e9nt kell megadni. A kor\u00e1bban haszn\u00e1lt 0x3E helyett 62-t kell megadni. 20190328: A [temperature_fan] konfigur\u00e1ci\u00f3ban megadott min_speed \u00e9rt\u00e9ket mostant\u00f3l tiszteletben tartjuk, \u00e9s a ventil\u00e1tor PID \u00fczemm\u00f3dban mindig ezen vagy ann\u00e1l magasabb fordulatsz\u00e1mon fog m\u0171k\u00f6dni. 20190322: A \"driver_HEND\" alap\u00e9rtelmezett \u00e9rt\u00e9ke a [tmc2660] konfigur\u00e1ci\u00f3s szakaszokban 6-r\u00f3l 3-ra v\u00e1ltozott. A \"driver_VSENSE\" mez\u0151t elt\u00e1vol\u00edtottuk (mostant\u00f3l automatikusan a run_current-b\u0151l sz\u00e1m\u00edtj\u00e1k ki). 20190310: A [controller_fan] config szakasz mostant\u00f3l mindig kap egy nevet (p\u00e9ld\u00e1ul [controller_fan my_controller_fan]). 20190308: A [tmc2130] \u00e9s [tmc2208] konfigur\u00e1ci\u00f3s szakaszok \"driver_BLANK_TIME_SELECT\" mez\u0151je \u00e1t lett nevezve \"driver_TBL\" -re. 20190308: A [tmc2660] config szakasz megv\u00e1ltozott. Mostant\u00f3l egy \u00faj sense_resistor config param\u00e9tert kell megadni. A driver_XXX param\u00e9terek k\u00f6z\u00fcl t\u00f6bbnek a jelent\u00e9se is megv\u00e1ltozott. 20190228: A SAMD21 k\u00e1rty\u00e1kon SPI vagy I2C-t haszn\u00e1l\u00f3knak mostant\u00f3l a [samd_sercom] config szakaszban kell megadniuk a BUSZ csatlakoz\u00e1sait. 20190224: A bed_shape opci\u00f3t elt\u00e1vol\u00edtottuk a bed_mesh-b\u0151l. A radius opci\u00f3t \u00e1tnevezt\u00fck bed_radiusra. A kerek t\u00e1rgyasztalokkal rendelkez\u0151 felhaszn\u00e1l\u00f3knak a bed_radius \u00e9s a round_probe_count opci\u00f3kat kell megadniuk. 20190107: Az i2c_address param\u00e9ter az mcp4451 config szakaszban megv\u00e1ltozott. Ez egy gyakori be\u00e1ll\u00edt\u00e1s a Smoothie alaplapokon. Az \u00faj \u00e9rt\u00e9k a r\u00e9gi \u00e9rt\u00e9k fele (a 88-as \u00e9rt\u00e9ket 44-re, a 90-es \u00e9rt\u00e9ket pedig 45-re kell m\u00f3dos\u00edtani). 20181220: Klipper v0.7.0 megjelent","title":"V\u00e1ltoz\u00e1sok"},{"location":"Config_Reference.html","text":"Konfigur\u00e1ci\u00f3s hivatkoz\u00e1s \u00b6 Ez a dokumentum a Klipper konfigur\u00e1ci\u00f3s f\u00e1jlban el\u00e9rhet\u0151 be\u00e1ll\u00edt\u00e1sok referenci\u00e1ja. Az ebben a dokumentumban tal\u00e1lhat\u00f3 le\u00edr\u00e1sok \u00fagy vannak form\u00e1zva, hogy kiv\u00e1ghat\u00f3ak \u00e9s beilleszthet\u0151ek legyenek egy nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1ba. A Klipper be\u00e1ll\u00edt\u00e1s\u00e1val \u00e9s a kezdeti konfigur\u00e1ci\u00f3s f\u00e1jl kiv\u00e1laszt\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a telep\u00edt\u00e9si dokumentumot . Mikrokontroller konfigur\u00e1ci\u00f3 \u00b6 A mikrokontroller t\u0171 neveinek form\u00e1tuma \u00b6 Sz\u00e1mos konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1shoz egy mikrokontroller-t\u0171 nev\u00e9re van sz\u00fcks\u00e9g. A Klipper a hardveres neveket haszn\u00e1lja ezekhez a t\u0171kh\u00f6z - p\u00e9ld\u00e1ul PA4 . A t\u0171 nevek el\u0151tt ! \u00e1llhat, hogy jelezze ilyenkor ford\u00edtott polarit\u00e1st haszn\u00e1l (pl. magas helyett alacsony \u00e9rt\u00e9ken t\u00f6rt\u00e9n\u0151 trigger). A bemeneti t\u0171k el\u0151tt ^ jelezheti, hogy a t\u0171h\u00f6z hardveres pull-up ellen\u00e1ll\u00e1st kell enged\u00e9lyezni. Ha a mikrokontroller t\u00e1mogatja a pull-down ellen\u00e1ll\u00e1sokat, akkor egy bemeneti t\u0171 el\u0151tt ~ \u00e1llhat. Megjegyz\u00e9s: egyes konfigur\u00e1ci\u00f3s szakaszok tov\u00e1bbi t\u0171ket hozhatnak l\u00e9tre. Ahol ez el\u0151fordul, ott a t\u0171ket defini\u00e1l\u00f3 konfigur\u00e1ci\u00f3s szekci\u00f3t a konfigur\u00e1ci\u00f3s f\u00e1jlban az ezeket a t\u0171ket haszn\u00e1l\u00f3 szekci\u00f3k el\u0151tt kell felsorolni. [mcu] \u00b6 Az els\u0151dleges mikrokontroller konfigur\u00e1l\u00e1sa. [mcu] serial: # Az MCU-hoz csatlakoztatand\u00f3 soros port. Ha bizonytalan (vagy a # v\u00e1ltoztat\u00e1sban), l\u00e1sd a GYIK \"Hol van a soros port?\" r\u00e9sz\u00e9t. # Ezt a param\u00e9tert soros port haszn\u00e1lata eset\u00e9n meg kell adni. #baud: 250000 # A haszn\u00e1land\u00f3 \u00e1tviteli sebess\u00e9g. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 250000. #canbus_uuid: # Ha CAN-buszra csatlakoztatott eszk\u00f6zt haszn\u00e1lunk, akkor ez \u00e1ll\u00edtja # be az egyedi chip azonos\u00edt\u00f3j\u00e1t, amelyhez csatlakozni kell. # Ezt az \u00e9rt\u00e9ket meg kell adni, a CAN busz haszn\u00e1lata eset\u00e9n. #canbus_interface: # Ha CAN-buszra csatlakoztatott eszk\u00f6zt haszn\u00e1lunk, akkor ez \u00e1ll\u00edtja # be a CAN h\u00e1l\u00f3zati interf\u00e9szt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 'can0'. #restart_method: # Ez szab\u00e1lyozza azt a mechanizmust, amelyet a gazdag\u00e9p haszn\u00e1ljon a # mikrokontroller \u00fajraind\u00edt\u00e1s\u00e1hoz. A v\u00e1laszthat\u00f3 lehet\u0151s\u00e9gek: 'arduino', # 'cheetah', 'rpi_usb', \u00e9s 'command'. Az 'arduino' m\u00f3dszer # (DTR kapcsol\u00e1sa) a k\u00f6vetkez\u0151 eszk\u00f6z\u00f6k\u00f6n gyakori. Arduino k\u00e1rty\u00e1k # \u00e9s kl\u00f3nok. A 'cheetah' m\u00f3dszer egy speci\u00e1lis m\u00f3dszer, amely n\u00e9h\u00e1ny # Fysetc Cheetah k\u00e1rty\u00e1hoz sz\u00fcks\u00e9ges. Az 'rpi_usb' m\u00f3dszer hasznos # a Raspberry Pi lapokon, amelyek mikrovez\u00e9rl\u0151kkel vannak ell\u00e1tva. # USB-n kereszt\u00fcl r\u00f6vid id\u0151re kikapcsolja az \u00f6sszes USB port # \u00e1ramell\u00e1t\u00e1s\u00e1t, hogy a mikrokontroller \u00fajrainduljon. A 'command' # m\u00f3dszer a k\u00f6vetkez\u0151ket foglalja mag\u00e1ban. Klipper parancsot k\u00fcld # a mikrokontrollernek, hogy az k\u00e9pes legyen \u00fajraind\u00edtani mag\u00e1t. # Az alap\u00e9rtelmezett be\u00e1ll\u00edt\u00e1s az 'arduino' ha a mikrokontroller # soros porton kereszt\u00fcl kommunik\u00e1l, egy\u00e9bk\u00e9nt 'command'. [mcu my_extra_mcu] \u00b6 Tov\u00e1bbi mikrovez\u00e9rl\u0151k (az \"mcu\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni). A tov\u00e1bbi mikrovez\u00e9rl\u0151k tov\u00e1bbi t\u0171ket vezetnek be, amelyek f\u0171t\u0151berendez\u00e9sk\u00e9nt, l\u00e9ptet\u0151berendez\u00e9sk\u00e9nt, ventil\u00e1tork\u00e9nt stb. konfigur\u00e1lhat\u00f3k. P\u00e9ld\u00e1ul, ha egy \"[mcu extra_mcu]\" szekci\u00f3t vezet\u00fcnk be, akkor az olyan t\u0171ket, mint az \"extra_mcu:ar9\" a konfigur\u00e1ci\u00f3ban m\u00e1shol is haszn\u00e1lhat\u00f3k (ahol \"ar9\" az adott mcu hardveres t\u0171 neve vagy \u00e1lneve). [mcu my_extra_mcu] # A konfigur\u00e1ci\u00f3s param\u00e9tereket l\u00e1sd az \"mcu\" szakaszban. K\u00f6z\u00f6s kinematikai be\u00e1ll\u00edt\u00e1sok \u00b6 [printer] \u00b6 A nyomtat\u00f3 szakasz a nyomtat\u00f3 magas szint\u0171 be\u00e1ll\u00edt\u00e1sait vez\u00e9rli. [printer] kinematics: # A haszn\u00e1lt nyomtat\u00f3 t\u00edpusa. Ez az opci\u00f3 a k\u00f6vetkez\u0151k egyike lehet: # cartesian, corexy, corexz, hybrid_corexy, hybrid_corexz, rotary_delta, # delta, delta, polar, cs\u00f6rl\u0151, vagy egyik sem. # Ezt a param\u00e9tert meg kell adni. max_velocity: # A nyomtat\u00f3fej maxim\u00e1lis sebess\u00e9ge (mm/s-ban) # (a nyomathoz viszony\u00edtva). Ezt a param\u00e9tert meg kell adni. max_accel: # A nyomtat\u00f3fej maxim\u00e1lis gyorsul\u00e1sa (mm/s^2-ben) # (a nyomtat\u00f3hoz viszony\u00edtva). Ezt a param\u00e9tert meg kell adni. #max_accel_to_decel: # \u00c1lgyorsul\u00e1s (mm/s^2-ben), amely azt szab\u00e1lyozza, hogy a nyomtat\u00f3fej # milyen gyorsan haladjon gyorsul\u00e1sr\u00f3l a lass\u00edt\u00e1sra. A r\u00f6vid cikk-cakk # mozg\u00e1sok maxim\u00e1lis sebess\u00e9g\u00e9nek cs\u00f6kkent\u00e9s\u00e9re szolg\u00e1l # (\u00e9s ez\u00e1ltal cs\u00f6kkenti a nyomtat\u00f3 rezg\u00e9s\u00e9t ezekb\u0151l a l\u00e9p\u00e9sekb\u0151l). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a max_accel fele. #square_corner_velocity: 5.0 # Az a maxim\u00e1lis sebess\u00e9g (mm/s-ban), amellyel a nyomtat\u00f3fej egy # 90 fokos sarokban haladhat. A null\u00e1t\u00f3l elt\u00e9r\u0151 \u00e9rt\u00e9k cs\u00f6kkentheti az # extruder \u00e1raml\u00e1si sebess\u00e9g\u00e9nek v\u00e1ltoz\u00e1sait az\u00e1ltal, hogy lehet\u0151v\u00e9 teszi # a nyomtat\u00f3fej azonnali sebess\u00e9gv\u00e1ltoz\u00e1s\u00e1t kanyarod\u00e1s k\u00f6zben. # Ez az \u00e9rt\u00e9k konfigur\u00e1lja a bels\u0151 centripet\u00e1lis sebess\u00e9g # kanyarod\u00e1si algoritmus\u00e1t; a 90 fokn\u00e1l nagyobb sz\u00f6g\u0171 sarkok # kanyarod\u00e1si sebess\u00e9ge nagyobb, m\u00edg a 90 fokn\u00e1l kisebb sz\u00f6g\u0171 sarkok # kanyarsebess\u00e9ge kisebb. Ha ez null\u00e1ra van \u00e1ll\u00edtva, akkor a nyomtat\u00f3fej # minden sark\u00e1n\u00e1l null\u00e1ra lassul. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5 mm/s. [stepper] \u00b6 L\u00e9ptet\u0151motor meghat\u00e1roz\u00e1sok. A k\u00fcl\u00f6nb\u00f6z\u0151 nyomtat\u00f3t\u00edpusok (a [printer] config szakasz \"kinematika\" opci\u00f3ja \u00e1ltal meghat\u00e1rozottak szerint) elt\u00e9r\u0151 neveket ig\u00e9nyelnek a l\u00e9ptet\u0151 sz\u00e1m\u00e1ra (pl. stepper_x vs stepper_a ). Az al\u00e1bbiakban a stepperek \u00e1ltal\u00e1nos defin\u00edci\u00f3i k\u00f6vetkeznek. A rotation_distance param\u00e9ter kisz\u00e1m\u00edt\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a forgat\u00e1si t\u00e1vols\u00e1g dokumentumot . A t\u00f6bb mikrovez\u00e9rl\u0151vel t\u00f6rt\u00e9n\u0151 kezd\u0151pont felv\u00e9tellel kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a Multi-MCU kezd\u0151pont dokumentumot. [stepper_x] step_pin: # L\u00e9p\u00e9s GPIO t\u0171 (magasan aktiv\u00e1lva). Ezt a param\u00e9tert meg kell adni. dir_pin: # Ir\u00e1ny GPIO t\u0171 (magas pozit\u00edv ir\u00e1nyt jelez). Ezt a param\u00e9tert meg kell adni. enable_pin: # Enged\u00e9lyezett t\u0171 (az alap\u00e9rtelmezett enged\u00e9lyez\u00e9s magas; haszn\u00e1ld a # \"!\" jelet az enged\u00e9lyez\u00e9s alacsony szintj\u00e9nek jelz\u00e9s\u00e9re). Ha ez a # param\u00e9ter nincs megadva, akkor a l\u00e9ptet\u0151motor meghajt\u00f3t mindig # enged\u00e9lyezni kell. rotation_distance: # Az a t\u00e1vols\u00e1g (mm-ben), amelyet a tengely megtesz a l\u00e9ptet\u0151motor egy # teljes fordulat\u00e1val (vagy v\u00e9gs\u0151 sebess\u00e9gfokozattal, ha a gear_ratio meg # van adva). Ezt a param\u00e9tert meg kell adni. microsteps: # A l\u00e9ptet\u0151motor-vez\u00e9rl\u0151 \u00e1ltal haszn\u00e1lt mikrol\u00e9p\u00e9sek sz\u00e1ma. # Ezt a param\u00e9tert meg kell adni. #full_steps_per_rotation: 200 # A l\u00e9ptet\u0151motor egy fordulat\u00e1hoz tartoz\u00f3 teljes l\u00e9p\u00e9sek sz\u00e1ma. \u00c1ll\u00edtsd ezt # 200-ra 1,8 fokos l\u00e9ptet\u0151motor eset\u00e9n, vagy 400-ra 0,9 fokos motor eset\u00e9n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 200. #gear_ratio: # Az \u00e1tt\u00e9tel, ha a l\u00e9ptet\u0151motor egy sebess\u00e9gv\u00e1lt\u00f3n kereszt\u00fcl csatlakozik a # tengelyhez. P\u00e9ld\u00e1ul megadhatja az \"5:1\" \u00e9rt\u00e9ket, ha 5:1 sebess\u00e9gv\u00e1lt\u00f3t # haszn\u00e1lnak. Ha a tengely t\u00f6bb sebess\u00e9gv\u00e1lt\u00f3val rendelkezik, megadhat # egy vessz\u0151vel elv\u00e1lasztott \u00e1tt\u00e9teli list\u00e1t (p\u00e9ld\u00e1ul \"57:11, 2:1\"). Ha a # gear_ratio meg van adva, akkor a rotation_distance azt a t\u00e1vols\u00e1got # hat\u00e1rozza meg, amelyet a tengely megtesz a v\u00e9gs\u0151 fogasker\u00e9k egy teljes # fordulat\u00e1n\u00e1l. Az alap\u00e9rtelmez\u00e9s szerint nem haszn\u00e1l \u00e1tt\u00e9teli ar\u00e1nyt. #step_pulse_duration: # A minim\u00e1lis id\u0151 a l\u00e9ptet\u0151 impulzus jel \u00e9le \u00e9s a k\u00f6vetkez\u0151 \"l\u00e9p\u00e9sk\u00f6z\" jel # \u00e9le k\u00f6z\u00f6tt. Ez a l\u00e9p\u00e9s impulzus \u00e9s az ir\u00e1nyv\u00e1lt\u00f3 jel k\u00f6z\u00f6tti minim\u00e1lis id\u0151 # be\u00e1ll\u00edt\u00e1s\u00e1ra is haszn\u00e1lhat\u00f3. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,000000100 (100 ns) # az UART vagy SPI m\u00f3dban konfigur\u00e1lt TMC l\u00e9ptet\u0151k eset\u00e9ben, \u00e9s az # alap\u00e9rtelmezett 0,000002 (ami 2us) az \u00f6sszes t\u00f6bbi l\u00e9ptet\u0151 eset\u00e9ben. endstop_pin: # V\u00e9g\u00e1ll\u00e1skapcsol\u00f3 \u00e9rz\u00e9kel\u00e9si t\u0171. Ha ez a v\u00e9g\u00fctk\u00f6z\u0151 t\u0171 m\u00e1s MCU-n van, # mint a l\u00e9ptet\u0151motor, akkor enged\u00e9lyezi a \"multi-mcu homing\"-ot. # Ezt a param\u00e9tert meg kell adni a der\u00e9ksz\u00f6g\u0171 nyomtat\u00f3k X, Y \u00e9s Z # l\u00e9ptet\u0151ihez. #position_min: 0 # Minim\u00e1lis \u00e9rv\u00e9nyes t\u00e1vols\u00e1g (mm-ben), amelyre a felhaszn\u00e1l\u00f3 utas\u00edthatja # a l\u00e9ptet\u0151t, hogy mozogjon. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0 mm. position_endstop: # A v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 helye (mm-ben). # Ezt a param\u00e9tert meg kell adni a der\u00e9ksz\u00f6g\u0171 nyomtat\u00f3k X, Y \u00e9s Z # l\u00e9ptet\u0151ihez. position_max: # Maxim\u00e1lis \u00e9rv\u00e9nyes t\u00e1vols\u00e1g (mm-ben), amelyre a felhaszn\u00e1l\u00f3 utas\u00edthatja # a l\u00e9ptet\u0151t, hogy mozogjon. Ezt a param\u00e9tert meg kell adni a der\u00e9ksz\u00f6g\u0171 # nyomtat\u00f3k X, Y \u00e9s Z l\u00e9ptet\u0151ihez. #homing_speed: 5.0 # A l\u00e9ptet\u0151 maxim\u00e1lis sebess\u00e9ge (mm/sec-ben) kezd\u0151pont felv\u00e9telkor. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5 mm/sec. #homing_retract_dist: 5.0 # T\u00e1vols\u00e1g a visszal\u00e9p\u00e9sig (mm-ben), miel\u0151tt m\u00e1sodszor is be\u00e1ll\u00edtan\u00e1. # \u00c1ll\u00edtsd ezt null\u00e1ra a m\u00e1sodik kezd\u0151pont felv\u00e9tel letilt\u00e1s\u00e1hoz. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5 mm. #homing_retract_speed: # Sebess\u00e9g, amelyet a visszah\u00faz\u00e1sn\u00e1l kell haszn\u00e1lni a kezd\u0151pont felv\u00e9tel # ut\u00e1n arra az esetre, ha ez elt\u00e9rne a be\u00e1ll\u00edt\u00e1si sebess\u00e9gt\u0151l, amely ehhez a # param\u00e9terhez az alap\u00e9rtelmezett. #second_homing_speed: # A l\u00e9ptet\u0151 sebess\u00e9ge (mm/sec-ben) a m\u00e1sodik kezd\u0151pont felv\u00e9tel # v\u00e9grehajt\u00e1sakor. Az alap\u00e9rtelmez\u00e9s a homing_speed/2. #homing_positive_dir: # Ha ez True, a kezd\u0151pont felv\u00e9tel hat\u00e1s\u00e1ra a l\u00e9ptet\u0151 pozit\u00edv ir\u00e1nyba mozdul # el (el a null\u00e1t\u00f3l) ha False, akkor kezd\u0151pontra a nulla fel\u00e9. Jobb az # alap\u00e9rtelmezettet haszn\u00e1lni, mint ezt a param\u00e9tert megadni. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k True, ha a position_endstop a position_max # k\u00f6zel\u00e9ben van, \u00e9s False, ha a position_min k\u00f6zel\u00e9ben van. Cartesian Kinematika \u00b6 L\u00e1sd example-cartesian.cfg egy p\u00e9lda cartesian kinematika konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Itt csak a cartesian nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd a \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: cartesian max_z_velocity: # Ez \u00e1ll\u00edtja be a Z ir\u00e1ny\u00fa mozg\u00e1s maxim\u00e1lis sebess\u00e9g\u00e9t (mm/sec-ben). # Ez a be\u00e1ll\u00edt\u00e1s haszn\u00e1lhat\u00f3 a maxim\u00e1lis sebess\u00e9g korl\u00e1toz\u00e1s\u00e1ra a # a Z l\u00e9ptet\u0151motor eset\u00e9ben. Az alap\u00e9rtelmez\u00e9s szerint a max_velocity a k\u00f6vetkez\u0151 \u00e9rt\u00e9kekre vonatkozik # max_z_velocity. max_z_accel: # Ez \u00e1ll\u00edtja be a mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t (mm/sec^2-ben) # a Z tengely ment\u00e9n. Korl\u00e1tozza a Z l\u00e9ptet\u0151motor gyorsul\u00e1s\u00e1t. Az # alap\u00e9rtelmezett a max_accel haszn\u00e1lata a max_z_accel eset\u00e9ben. # A stepper_x szakasz a l\u00e9ptet\u0151motor vez\u00e9rl\u00e9s\u00e9re szolg\u00e1l. # X tengely egy cartesian g\u00e9pen. [stepper_x] # A stepper_y szakasz a l\u00e9ptet\u0151motor vez\u00e9rl\u00e9s\u00e9re szolg\u00e1l. # Y t\u00edngely egy cartesian g\u00e9pen. [stepper_y] # A stepper_z szakasz a l\u00e9ptet\u0151motor vez\u00e9rl\u00e9s\u00e9re szolg\u00e1l. # Z tengely egy cartesian g\u00e9pen. [stepper_z] Line\u00e1ris delta kinematika \u00b6 L\u00e1sd az example-delta.cfg p\u00e9ld\u00e1t a line\u00e1ris delta kinematika konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1hoz. A kalibr\u00e1l\u00e1ssal kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a delta kalibr\u00e1ci\u00f3s \u00fatmutat\u00f3 dokumentumot. Itt csak a line\u00e1ris delta nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: delta max_z_velocity: # A delta nyomtat\u00f3kn\u00e1l ez korl\u00e1tozza a Z tengely mozg\u00e1s\u00e1nak maxim\u00e1lis # sebess\u00e9g\u00e9t (mm/sec-ben). Ezzel a be\u00e1ll\u00edt\u00e1ssal cs\u00f6kkenthet\u0151 a fel/le # mozg\u00e1sok maxim\u00e1lis sebess\u00e9ge (amely nagyobb l\u00e9p\u00e9ssz\u00e1mot ig\u00e9nyel, # mint a deltanyomtat\u00f3k egy\u00e9b mozg\u00e1sai). Az alap\u00e9rtelmezett \u00e9rt\u00e9k a # max_velocity haszn\u00e1lata a max_z_velocity \u00e9rt\u00e9khez. #max_z_accel: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t # (mm/sec^2-en). Ennek be\u00e1ll\u00edt\u00e1sa akkor lehet hasznos, ha a nyomtat\u00f3 # nagyobb gyorsul\u00e1st tud el\u00e9rni XY mozg\u00e1sn\u00e1l, mint Z mozg\u00e1sn\u00e1l (pl. # bemeneti alakform\u00e1l\u00f3 haszn\u00e1latakor). # Az alap\u00e9rtelmez\u00e9s szerinti \u00e9rt\u00e9ke a max_accel a max_z_accel \u00e9rt\u00e9khez. #minimum_z_position: 0 # Az a minim\u00e1lis Z poz\u00edci\u00f3, amelybe a felhaszn\u00e1l\u00f3 utas\u00edthatja a fejet, # hogy mozogjon. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. delta_radius: # A h\u00e1rom line\u00e1ris tengely torony \u00e1ltal alkotott v\u00edzszintes k\u00f6r sugara # (mm-ben). Ez a param\u00e9ter a k\u00f6vetkez\u0151k\u00e9ppen is kisz\u00e1m\u00edthat\u00f3: # delta_radius = smooth_rod_offset - effector_offset - carriage_offset. # Ezt a param\u00e9tert meg kell adni. #print_radius: # Az \u00e9rv\u00e9nyes XY nyomtat\u00f3fej koordin\u00e1t\u00e1k sugara (mm-ben). Ezzel a # be\u00e1ll\u00edt\u00e1ssal testreszabhat\u00f3 a nyomtat\u00f3fej mozg\u00e1sok tartom\u00e1ny # ellen\u0151rz\u00e9se. Ha itt nagy \u00e9rt\u00e9ket adunk meg, akkor lehets\u00e9ges lehet # a nyomtat\u00f3fejet toronnyal val\u00f3 \u00fctk\u00f6z\u00e9sre utas\u00edtani. # Az alap\u00e9rtelmezett a delta_radius a print_radius \u00e9rt\u00e9khez (ami # \u00e1ltal\u00e1ban megakad\u00e1lyozza a torony \u00fctk\u00f6z\u00e9s\u00e9t). # A stepper_a szakasz a bal els\u0151 tornyot vez\u00e9rl\u0151 l\u00e9ptet\u0151t \u00edrja le # (210 fokban). Ez a szakasz az \u00f6sszes toronyhoz tartoz\u00f3 kezd\u0151pont # param\u00e9tereket (homing_speed, homing_retract_dist) is szab\u00e1lyozza. [stepper_a] position_endstop: # T\u00e1vols\u00e1g (mm-ben) a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tt, ha a f\u00fav\u00f3ka az \u00e9p\u00edt\u00e9si # ter\u00fclet k\u00f6zep\u00e9n van, \u00e9s a v\u00e9g\u00fctk\u00f6z\u0151 kiold. Ezt a param\u00e9tert meg kell # adni a stepper_a; a stepper_b \u00e9s a stepper_c eset\u00e9n ez a param\u00e9ter # alap\u00e9rtelmezett \u00e9rt\u00e9ke a stepper_a param\u00e9terben megadott \u00e9rt\u00e9k. arm_length: # A tornyot a nyomtat\u00f3fejjel \u00f6sszek\u00f6t\u0151 \u00e1tl\u00f3s r\u00fad hossza (mm-ben). # Ezt a param\u00e9tert meg kell adni a stepper_a; a stepper_b \u00e9s a stepper_c # eset\u00e9n ez a param\u00e9ter alap\u00e9rtelmezett \u00e9rt\u00e9ke a stepper_a # param\u00e9terben megadott \u00e9rt\u00e9k. #angle: # Ez az opci\u00f3 azt a sz\u00f6get adja meg (fokban), amelyben a torony \u00e1ll. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 210 a stepper_a, 330 a stepper_b \u00e9s # 90 a stepper_c. # A stepper_b szakasz a jobb els\u0151 tornyot vez\u00e9rl\u0151 l\u00e9ptet\u0151t \u00edrja le # (330 fokban). [stepper_b] # A stepper_c szakasz a h\u00e1ts\u00f3 tornyot vez\u00e9rl\u0151 l\u00e9ptet\u0151t \u00edrja le (90 fokban). [stepper_c] # A delta_calibrate szakasz lehet\u0151v\u00e9 teszi a DELTA_CALIBRATE # kiterjesztett G-k\u00f3d parancsot, amely k\u00e9pes kalibr\u00e1lni a torony # v\u00e9g\u00e1ll\u00e1s\u00e1nak poz\u00edci\u00f3it \u00e9s sz\u00f6geit. [delta_calibrate] radius: # A vizsg\u00e1lhat\u00f3 ter\u00fclet sugara (mm-ben). Ez a vizsg\u00e1land\u00f3 # f\u00fav\u00f3kakoordin\u00e1t\u00e1k sugara; Ha XY eltol\u00e1s\u00fa automata szond\u00e1t haszn\u00e1l, # akkor v\u00e1lasszon el\u00e9g kicsi sugarat, hogy a szonda mindig a t\u00e1rgyasztal f\u00f6l\u00e9 # f\u00e9rjen. Ezt a param\u00e9tert meg kell adni. #speed: 50 # A nem szond\u00e1z\u00e1s sebess\u00e9ge (mm/sec-ben) mozog a kalibr\u00e1l\u00e1s sor\u00e1n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), ameddig a fejnek el kell mozdulnia # k\u00f6zvetlen\u00fcl a szondam\u0171velet megkezd\u00e9se el\u0151tt. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. Deltesian Kinematika \u00b6 L\u00e1sd example-deltesian.cfg egy p\u00e9lda deltesian kinematika konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Itt csak a deltesian nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd a \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: deltesian max_z_velocity: # Deltesian nyomtat\u00f3kn\u00e1l ez korl\u00e1tozza a Z tengely mozg\u00e1s\u00e1nak maxim\u00e1lis # sebess\u00e9g\u00e9t (mm/s-ban). Ezzel a be\u00e1ll\u00edt\u00e1ssal cs\u00f6kkenthet\u0151 a fel/le # mozg\u00e1sok maxim\u00e1lis sebess\u00e9ge (amelyek nagyobb l\u00e9p\u00e9ssz\u00e1mot # ig\u00e9nyelnek, mint egy deltesian nyomtat\u00f3 egy\u00e9b l\u00e9p\u00e9sei). # Az alap\u00e9rtelmezett a max_velocity a max_z_velocity \u00e9rt\u00e9khez. #max_z_accel: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t # (mm/s^2-ben). Ennek be\u00e1ll\u00edt\u00e1sa akkor lehet hasznos, ha a nyomtat\u00f3 # nagyobb gyorsul\u00e1st tud el\u00e9rni XY mozg\u00e1sn\u00e1l, mint Z mozg\u00e1sn\u00e1l # (pl. bemeneti alakform\u00e1l\u00f3 haszn\u00e1latakor). # Az alap\u00e9rtelmezett a max_accel a max_z_accel \u00e9rt\u00e9khez. #minim\u00e1lis_z_poz\u00edci\u00f3: 0 # Az a minim\u00e1lis Z poz\u00edci\u00f3, amelybe a felhaszn\u00e1l\u00f3 utas\u00edthatja a fejet, hogy # mozogjon. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #min_angle: 5 # Ez azt a minim\u00e1lis sz\u00f6get (fokban) jelenti a v\u00edzszinteshez k\u00e9pest, amelyet # a deltesian karok el\u00e9rhetnek. Ennek a param\u00e9ternek az a c\u00e9lja, hogy # megakad\u00e1lyozza, a karok teljesen v\u00edzszintesbe mozgat\u00e1s\u00e1t, ami az XZ # tengely v\u00e9letlen megfordul\u00e1s\u00e1t kock\u00e1ztatn\u00e1. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #print_width: # Az \u00e9rv\u00e9nyes nyomtat\u00f3fej X koordin\u00e1t\u00e1k t\u00e1vols\u00e1ga (mm-ben). Ezzel a # be\u00e1ll\u00edt\u00e1ssal testreszabhat\u00f3 a nyomtat\u00f3fej mozg\u00e1sok tartom\u00e1nyellen\u0151rz\u00e9se. # Ha itt nagy \u00e9rt\u00e9ket adunk meg, akkor el\u0151fordulhat, hogy a nyomtat\u00f3fejet a # toronnyal val\u00f3 \u00fctk\u00f6z\u00e9sre utas\u00edthatjuk. # Ez a be\u00e1ll\u00edt\u00e1s \u00e1ltal\u00e1ban a t\u00e1rgyasztal sz\u00e9less\u00e9gnek felel meg (mm-ben). #slow_ratio: 3 # Az az ar\u00e1ny, amely korl\u00e1tozza a sebess\u00e9get \u00e9s a gyorsul\u00e1st az X tengely # sz\u00e9ls\u0151 pontjaihoz k\u00f6zeli mozg\u00e1sokn\u00e1l. Ha a f\u00fcgg\u0151leges t\u00e1vols\u00e1g osztva a # v\u00edzszintes t\u00e1vols\u00e1ggal meghaladja a slow_ratio \u00e9rt\u00e9k\u00e9t, akkor a sebess\u00e9g \u00e9s # a gyorsul\u00e1s a n\u00e9vleges \u00e9rt\u00e9k\u00fck fel\u00e9re korl\u00e1toz\u00f3dik. Ha a f\u00fcgg\u0151leges t\u00e1vols\u00e1g # osztva a v\u00edzszintes t\u00e1vols\u00e1ggal meghaladja a slow_ratio \u00e9rt\u00e9k\u00e9nek # k\u00e9tszeres\u00e9t, akkor a sebess\u00e9g \u00e9s a gyorsul\u00e1s a n\u00e9vleges \u00e9rt\u00e9k\u00fck # egynegyed\u00e9re korl\u00e1toz\u00f3dik. Az alap\u00e9rtelmezett \u00e9rt\u00e9k a 3. # A stepper_left szakasz a bal tornyot vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. # Ez a szakasz az \u00f6sszes toronyhoz tartoz\u00f3 homing param\u00e9tereket # (homing_speed, homing_retract_dist) is szab\u00e1lyozza. [stepper_left] position_endstop: # T\u00e1vols\u00e1g (mm-ben) a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tt, ha a f\u00fav\u00f3ka az \u00e9p\u00edt\u00e9si ter\u00fclet # k\u00f6zep\u00e9n van, \u00e9s a v\u00e9g\u00fctk\u00f6z\u0151k kiold\u00f3dnak. Ezt a param\u00e9tert meg kell adni a # stepper_left; a stepper_right eset\u00e9n ez a param\u00e9ter alap\u00e9rtelmezett \u00e9rt\u00e9ke # a stepper_left param\u00e9terben megadott \u00e9rt\u00e9k. arm_length: # A toronykocsit a nyomtat\u00f3fejjel \u00f6sszek\u00f6t\u0151 \u00e1tl\u00f3s r\u00fad hossza (mm-ben). # Ezt a param\u00e9tert meg kell adni a stepper_left; a stepper_right eset\u00e9n ez a # param\u00e9ter alap\u00e9rtelmezett \u00e9rt\u00e9ke a stepper_left param\u00e9ter megadott \u00e9rt\u00e9ke. arm_x_length: # V\u00edzszintes t\u00e1vols\u00e1g a nyomtat\u00f3fej \u00e9s a torony k\u00f6z\u00f6tt, ha minden # kezd\u0151ponton van. Ezt a param\u00e9tert meg kell adni a stepper_left; a # stepper_right eset\u00e9n ez a param\u00e9ter alap\u00e9rtelmezett \u00e9rt\u00e9ke a # stepper_left param\u00e9terben megadott \u00e9rt\u00e9k. # A stepper_right szekci\u00f3 a jobb oldali tornyot vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_right] # A stepper_y szakasz az Y tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l # egy deltesian g\u00e9pen. [stepper_y] CoreXY Kinematika \u00b6 L\u00e1sd example-corexy.cfg egy p\u00e9lda corexy (\u00e9s h-bot) kinematikai f\u00e1jlt. Itt csak a CoreXY nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: corexy max_z_velocity: # Ez \u00e1ll\u00edtja be a Z ir\u00e1ny\u00fa mozg\u00e1s maxim\u00e1lis sebess\u00e9g\u00e9t (mm/sec-ben). # Ez a be\u00e1ll\u00edt\u00e1s haszn\u00e1lhat\u00f3 a Z l\u00e9ptet\u0151motor maxim\u00e1lis sebess\u00e9gkorl\u00e1toz\u00e1s\u00e1ra. # Az alap\u00e9rtelmez\u00e9s szerint a max_velocity a k\u00f6vetkez\u0151 \u00e9rt\u00e9kekre vonatkozik # amely a max_z_velocity. max_z_accel: # Ez \u00e1ll\u00edtja be a mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t (mm/sec^2 -ben) # a Z tengely ment\u00e9n. Korl\u00e1tozza a Z l\u00e9ptet\u0151motor gyorsul\u00e1s\u00e1t. # Az alap\u00e9rtelmezett max_accel haszn\u00e1lata a max_z_accel paranccsal t\u00f6rt\u00e9nik. # A stepper_x szakasz az X tengely, valamint az X+Y mozg\u00e1st vez\u00e9rl\u0151 # l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_x] # A stepper_y szakasz az Y tengely, valamint az X+Y mozg\u00e1st vez\u00e9rl\u0151 # l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_y] # A stepper_z szakasz a Z tengely, mozg\u00e1st vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_z] CoreXZ Kinematika \u00b6 L\u00e1sd example-corexz.cfg egy p\u00e9lda CoreXZ kinematikai konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Itt csak a CoreXZ nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: corexz max_z_velocity: # Ez \u00e1ll\u00edtja be a Z ir\u00e1ny\u00fa mozg\u00e1s maxim\u00e1lis sebess\u00e9g\u00e9t (mm/sec-ben). # Ez a be\u00e1ll\u00edt\u00e1s haszn\u00e1lhat\u00f3 a Z l\u00e9ptet\u0151motor maxim\u00e1lis sebess\u00e9gkorl\u00e1toz\u00e1s\u00e1ra. # Az alap\u00e9rtelmez\u00e9s szerint a max_velocity a k\u00f6vetkez\u0151 \u00e9rt\u00e9kekre vonatkozik # amely a max_z_velocity. max_z_accel: # Ez \u00e1ll\u00edtja be a mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t (mm/sec^2 -ben) # a Z tengely ment\u00e9n. Korl\u00e1tozza a Z l\u00e9ptet\u0151motor gyorsul\u00e1s\u00e1t. # Az alap\u00e9rtelmezett max_accel haszn\u00e1lata a max_z_accel paranccsal t\u00f6rt\u00e9nik. # A stepper_x szakasz az X tengely, valamint az X+Z mozg\u00e1st vez\u00e9rl\u0151 # l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_x] # A stepper_y szakasz az Y tengely l\u00e9ptet\u0151 vez\u00e9rl\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_y] # A stepper_z szakasz a Z tengely le\u00edr\u00e1s\u00e1ra szolg\u00e1l, valamint a # l\u00e9ptet\u0151, amely az X-Z mozg\u00e1st vez\u00e9rli. [stepper_z] Hybrid-CoreXY Kinematika \u00b6 L\u00e1sd az example-hybrid-corexy.cfg p\u00e9ld\u00e1t egy hibrid CoreXY kinematikai konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Ez a kinematika Markforged kinematikak\u00e9nt is ismert. Itt csak a hibrid CoreXY nyomtat\u00f3kra jellemz\u0151 param\u00e9tereket \u00edrjuk le, a rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: hybrid_corexy max_z_velocity: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis sebess\u00e9g\u00e9t (mm/sec-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a max_velocity haszn\u00e1lata a max_z_velocity \u00e9rt\u00e9khez. max_z_accel: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t (mm/sec^2-en). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a max_accel haszn\u00e1lata a max_z_accel \u00e9rt\u00e9khez. # A stepper_x szakasz az X tengely, valamint az X-Y mozg\u00e1st vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [l\u00e9pcs\u0151_x] # A stepper_y szakasz az Y tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [l\u00e9p\u00e9s_y] # A stepper_z szakasz a Z tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_z] Hybrid-CoreXZ Kinematika \u00b6 L\u00e1sd az example-hybrid-corexz.cfg p\u00e9ld\u00e1t egy hibrid CoreXZ kinematikai konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Ez a kinematika Markforged kinematikak\u00e9nt is ismert. Itt csak a hibrid CoreXY nyomtat\u00f3kra jellemz\u0151 param\u00e9tereket \u00edrjuk le, a rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: hybrid_corexz max_z_velocity: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis sebess\u00e9g\u00e9t (mm/sec-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a max_velocity haszn\u00e1lata a max_z_velocity \u00e9rt\u00e9khez. max_z_accel: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t (mm/sec^2-en). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a max_accel haszn\u00e1lata a max_z_accel \u00e9rt\u00e9khez. # A stepper_x szakasz az X tengely, valamint az X-Z mozg\u00e1st vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [l\u00e9pcs\u0151_x] # A stepper_y szakasz az Y tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [l\u00e9p\u00e9s_y] # A stepper_z szakasz a Z tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_z] Polar Kinematika \u00b6 L\u00e1sd az example-polar.cfg egy p\u00e9lda a Polar kinematika konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1hoz. Itt csak a Polar nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. A POL\u00c1RIS KINEMATIKA M\u00c9G FOLYAMATBAN VAN. A 0, 0 poz\u00edci\u00f3 k\u00f6r\u00fcli mozg\u00e1sokr\u00f3l ismert, hogy nem m\u0171k\u00f6dnek megfelel\u0151en. [printer] kinematics: polar max_z_velocity: # Ez be\u00e1ll\u00edtja a maxim\u00e1lis mozg\u00e1si sebess\u00e9get (mm/sec-ben) a Z tengely # ment\u00e9n. Ezzel a be\u00e1ll\u00edt\u00e1ssal korl\u00e1tozhat\u00f3 a Z l\u00e9ptet\u0151motor maxim\u00e1lis # sebess\u00e9ge. Az alap\u00e9rtelmezett \u00e9rt\u00e9k a max_velocity haszn\u00e1lata a # max_z_velocity \u00e9rt\u00e9khez. max_z_accel: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t # (mm/sec^2-en). Korl\u00e1tozza a Z l\u00e9ptet\u0151motor gyorsul\u00e1s\u00e1t. # Az alap\u00e9rtelmez\u00e9s szerint a max_accel \u00e9rt\u00e9ke a max_z_accel. # A stepper_bed szakasz a t\u00e1rgyasztalt vez\u00e9rl\u0151 stepper le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_bed] gear_ratio: # Meg kell adni a gear_ratio \u00e9rt\u00e9ket, \u00e9s a rotation_distance nem adhat\u00f3 # meg. P\u00e9ld\u00e1ul, ha a t\u00e1rgyasztal egy 80 fogas ker\u00e9kkel rendelkezik, amelyet # egy l\u00e9ptet\u0151motor hajt meg egy 16 fogas ker\u00e9kkel, akkor a \u201e80:16\u201d # \u00e1tt\u00e9teli ar\u00e1nyt kell megadni. Ezt a param\u00e9tert meg kell adni. # A stepper_arm szakasz a karon l\u00e9v\u0151 kocsit vez\u00e9rl\u0151 l\u00e9ptet\u0151 # le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_arm] # A stepper_z szakasz a Z tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_z] Forg\u00f3 delta Kinematika \u00b6 L\u00e1sd az example-rotary-delta.cfg egy p\u00e9lda a forg\u00f3 delta kinematika konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1hoz. Itt csak a forg\u00f3 delta nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. A FORG\u00d3 DELTA KINEMATIKA M\u00c9G FOLYAMATBAN VAN. A c\u00e9lk\u00f6vet\u0151 mozg\u00e1sok id\u0151z\u00edtettek lehetnek, \u00e9s n\u00e9h\u00e1ny hat\u00e1rellen\u0151rz\u00e9s nincs implement\u00e1lva. [printer] kinematics: rotary_delta max_z_velocity: # Delta nyomtat\u00f3kn\u00e1l ez korl\u00e1tozza a Z tengely mozg\u00e1s\u00e1nak maxim\u00e1lis # sebess\u00e9g\u00e9t (mm/sec-ben). Ezzel a be\u00e1ll\u00edt\u00e1ssal cs\u00f6kkenthet\u0151 a fel/le # mozg\u00e1sok maxim\u00e1lis sebess\u00e9ge (amely nagyobb l\u00e9p\u00e9ssz\u00e1mot ig\u00e9nyel, # mint a deltanyomtat\u00f3k egy\u00e9b mozg\u00e1sai). Az alap\u00e9rtelmezett \u00e9rt\u00e9k a # max_velocity haszn\u00e1lata a max_z_velocity \u00e9rt\u00e9khez. #minimum_z_position: 0 # A minim\u00e1lis Z poz\u00edci\u00f3, amelybe a felhaszn\u00e1l\u00f3 utas\u00edthatja a fejet, hogy # mozduljon el. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. shoulder_radius: # A h\u00e1rom g\u00f6mbcsukl\u00f3 \u00e1ltal alkotott v\u00edzszintes k\u00f6r sugara (mm-ben), # m\u00ednusz az effektor csukl\u00f3k \u00e1ltal alkotott k\u00f6r sugara. Ez a param\u00e9ter a # k\u00f6vetkez\u0151k\u00e9ppen is kisz\u00e1m\u00edthat\u00f3: # shoulder_radius = (delta_f - delta_e) / sqrt(12) # Ezt a param\u00e9tert meg kell adni. shoulder_height: # A g\u00f6mbcsukl\u00f3k t\u00e1vols\u00e1ga (mm-ben) a t\u00e1rgyasztalt\u00f3l, m\u00ednusz az effektor # nyomtat\u00f3fej magass\u00e1ga. Ezt a param\u00e9tert meg kell adni. # A stepper_a szakasz a jobb h\u00e1ts\u00f3 kart vez\u00e9rl\u0151 l\u00e9ptet\u0151t \u00edrja le (30 fokban). # Ez a szakasz szab\u00e1lyozza az \u00f6sszes karhoz tartoz\u00f3 kezd\u0151pont felv\u00e9teli # param\u00e9tereket (homing_speed, homing_retract_dist). [stepper_a] gear_ratio: # Meg kell adni a gear_ratio \u00e9rt\u00e9ket, \u00e9s nem lehet megadni a rotation_distance # \u00e9rt\u00e9ket. P\u00e9ld\u00e1ul, ha a karban van egy 80 fog\u00fa ker\u00e9k, amelyet egy 16 fog\u00fa # ker\u00e9k hajt meg, \u00e9s amely egy 60 fog\u00fa sz\u00edjt\u00e1rcs\u00e1val van \u00f6sszek\u00f6tve, amelyet # egy 16 fog\u00fa fogasker\u00e9kkel ell\u00e1tott l\u00e9ptet\u0151motor hajt meg, akkor a \"80-as\" # \u00e1tt\u00e9teli ar\u00e1nyt kell megadni: 16, 60:16\". Ezt a param\u00e9tert meg kell adni. position_endstop: # T\u00e1vols\u00e1g (mm-ben) a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tt, ha a f\u00fav\u00f3ka az \u00e9p\u00edt\u00e9si ter\u00fclet # k\u00f6zep\u00e9n van, \u00e9s a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 kiold. Ezt a param\u00e9tert meg kell adni a # stepper_a; a stepper_b \u00e9s stepper_c eset\u00e9n ez a param\u00e9ter alap\u00e9rtelmezett # \u00e9rt\u00e9ke a stepper_a param\u00e9terben megadott \u00e9rt\u00e9k. upper_arm_length: # A \u201efels\u0151 g\u00f6mbcsukl\u00f3t\u201d az \u201eals\u00f3 g\u00f6mbcsukl\u00f3val\u201d \u00f6sszek\u00f6t\u0151 kar hossza (mm-ben). # Ezt a param\u00e9tert meg kell adni a stepper_a; a stepper_b \u00e9s stepper_c eset\u00e9n ez # a param\u00e9ter alap\u00e9rtelmezett \u00e9rt\u00e9ke a stepper_a param\u00e9terben megadott \u00e9rt\u00e9k. lower_arm_length: # A \u201efels\u0151 g\u00f6mbcsukl\u00f3\u201d az \u201eeffekt\u00edv csukl\u00f3val\u201d \u00f6sszek\u00f6t\u0151 kar hossza (mm-ben). # Ezt a param\u00e9tert meg kell adni a stepper_a; a stepper_b \u00e9s stepper_c eset\u00e9n # ez a param\u00e9ter alap\u00e9rtelmezett \u00e9rt\u00e9ke a stepper_a param\u00e9terben megadott \u00e9rt\u00e9k. #angle: # Ez az opci\u00f3 azt a sz\u00f6get adja meg (fokban), amelyben a kar \u00e1ll. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 30 a stepper_a, 150 a stepper_b \u00e9s 270 a stepper_c. # A stepper_b szakasz a bal h\u00e1ts\u00f3 kart vez\u00e9rl\u0151 l\u00e9ptet\u0151t \u00edrja le (150 fokban). [stepper_b] # A stepper_c szakasz az els\u0151 kart vez\u00e9rl\u0151 l\u00e9ptet\u0151t \u00edrja le (270 fokban). [stepper_c] # A delta_calibrate szakasz lehet\u0151v\u00e9 teszi a DELTA_CALIBRATE kiterjesztett G-k\u00f3d # parancsot, amely k\u00e9pes kalibr\u00e1lni a fels\u0151 g\u00f6mbcsukl\u00f3k v\u00e9g\u00e1ll\u00e1s poz\u00edci\u00f3it. [delta_calibrate] radius: # A vizsg\u00e1lhat\u00f3 ter\u00fclet sugara (mm-ben). Ez a vizsg\u00e1land\u00f3 f\u00fav\u00f3kakoordin\u00e1t\u00e1k # sugara; Ha X-Y eltol\u00e1s\u00fa automata szond\u00e1t haszn\u00e1l, akkor v\u00e1lasszon el\u00e9g kicsi # sugarat, hogy a szonda mindig a t\u00e1rgyasztal f\u00f6l\u00e9 f\u00e9rjen. Ezt a param\u00e9tert meg kell adni. #speed: 50 # A nem tapint\u00f3 mozg\u00e1s sebess\u00e9ge (mm/sec-ben) a kalibr\u00e1l\u00e1s sor\u00e1n. # Az alap\u00e9rtelmezett 50. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), ameddig a fejet utas\u00edtani kell, hogy mozduljon el # k\u00f6zvetlen\u00fcl a m\u00e9r\u0151m\u0171velet megkezd\u00e9se el\u0151tt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. K\u00e1belcs\u00f6rl\u0151s Kinematika \u00b6 L\u00e1sd az example-winch.cfg egy p\u00e9ld\u00e1t a k\u00e1belcs\u00f6rl\u0151s kinematika konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1hoz. Itt csak a k\u00e1belcs\u00f6rl\u0151s nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. A K\u00c1BELCS\u00d6RL\u0150 T\u00c1MOGAT\u00c1SA K\u00cdS\u00c9RLETI JELLEG\u0170. A helymeghat\u00e1roz\u00e1s nem val\u00f3sul meg a k\u00e1belcs\u00f6rl\u0151 kinematik\u00e1j\u00e1n. A nyomtat\u00f3 kezd\u0151pont felv\u00e9tel\u00e9hez manu\u00e1lisan k\u00fcldj\u00f6n mozgat\u00e1si parancsokat, am\u00edg a nyomtat\u00f3fej a 0, 0, 0, 0 ponton van, majd adj ki egy G28 parancsot. [printer] kinematics: winch (cs\u00f6rl\u0151s) # A stepper_a szakasz az els\u0151 k\u00e1belcs\u00f6rl\u0151h\u00f6z csatlakoztatott l\u00e9ptet\u0151t \u00edrja le. # Legal\u00e1bb 3 \u00e9s legfeljebb 26 k\u00e1belcs\u00f6rl\u0151 defini\u00e1lhat\u00f3 (stepper_a-t\u00f3l # stepper_z-ig), b\u00e1r \u00e1ltal\u00e1ban 4-et defini\u00e1lnak. [stepper_a] rotation_distance: # A rotation_distance az a n\u00e9vleges t\u00e1vols\u00e1g (mm-ben), amellyel a # nyomtat\u00f3fej elmozdul a k\u00e1belcs\u00f6rl\u0151 fel\u00e9 a l\u00e9ptet\u0151motor minden egyes # teljes fordulat\u00e1n\u00e1l. Ezt a param\u00e9tert meg kell adni. anchor_x: anchor_y: anchor_z: # A k\u00e1belcs\u00f6rl\u0151 X, Y \u00e9s Z helyzete der\u00e9ksz\u00f6g\u0171 t\u00e9rben. # Ezeket a param\u00e9tereket meg kell adni. Nincs Kinematika \u00b6 Lehet\u0151s\u00e9g van egy speci\u00e1lis \"none\" kinematika defini\u00e1l\u00e1s\u00e1ra a Klipper kinematikai t\u00e1mogat\u00e1s\u00e1nak kikapcsol\u00e1s\u00e1hoz. Ez hasznos lehet olyan eszk\u00f6z\u00f6k vez\u00e9rl\u00e9s\u00e9hez, amelyek nem tipikus 3D nyomtat\u00f3k, vagy hibakeres\u00e9si c\u00e9lok. [printer] kinematics: none max_velocity: 1 max_accel: 1 # A max_velocity \u00e9s max_accel param\u00e9tereket meg kell hat\u00e1rozni. # Az \u00e9rt\u00e9keket nem haszn\u00e1ljuk a \"none\" kinematika eset\u00e9n. K\u00f6z\u00f6s extruder \u00e9s f\u0171t\u00f6tt t\u00e1rgyasztal t\u00e1mogat\u00e1s \u00b6 [extruder] \u00b6 Az extruder szakasz a f\u00fav\u00f3ka f\u0171t\u0151berendez\u00e9s param\u00e9tereinek le\u00edr\u00e1s\u00e1ra szolg\u00e1l, az extruder vez\u00e9rl\u00e9s\u00e9t v\u00e9gz\u0151 l\u00e9ptet\u0151vel egy\u00fctt. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1s c\u00edm\u0171 r\u00e9szt. A nyom\u00e1s el\u0151tol\u00e1s hangol\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a nyom\u00e1s el\u0151tol\u00e1si \u00fatmutat\u00f3t . [extruder] step_pin: dir_pin: enable_pin: microsteps: rotation_distance: #full_steps_per_rotation: #gear_ratio: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"l\u00e9ptet\u0151\" r\u00e9szben. Ha a fenti param\u00e9terek # egyike sincs megadva, akkor nem lesz l\u00e9ptet\u0151motor t\u00e1rs\u00edtva a nyomtat\u00f3fejhez # (b\u00e1r a SYNC_EXTRUDER_MOTION parancs fut\u00e1s k\u00f6zben t\u00e1rs\u00edthat egyet). nozzle_diameter: # A f\u00fav\u00f3ka ny\u00edl\u00e1s\u00e1nak \u00e1tm\u00e9r\u0151je (mm-ben). Ezt a param\u00e9tert meg kell adni. filament_diameter: # A nyers sz\u00e1l n\u00e9vleges \u00e1tm\u00e9r\u0151je (mm-ben), amikor az extruderbe ker\u00fcl. # Ezt a param\u00e9tert meg kell adni. #max_extrude_cross_section: # Az extrud\u00e1l\u00e1si keresztmetszet maxim\u00e1lis ter\u00fclete (mm^2-ben) (pl. az # extrud\u00e1l\u00e1si sz\u00e9less\u00e9g szorozva a r\u00e9teg magass\u00e1g\u00e1val). Ez a be\u00e1ll\u00edt\u00e1s # megakad\u00e1lyozza a t\u00falzott m\u00e9rt\u00e9k\u0171 extrud\u00e1l\u00e1st viszonylag kis XY mozg\u00e1sok # sor\u00e1n. Ha egy \u00e1thelyez\u00e9s olyan kih\u00faz\u00e1si sebess\u00e9get k\u00e9r, amely meghaladja # ezt az \u00e9rt\u00e9ket, akkor hiba\u00fczenet jelenik meg. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k: 4.0 * nozzle_diameter^2 #instantaneous_corner_velocity: 1.000 # Az extruder maxim\u00e1lis pillanatnyi sebess\u00e9gv\u00e1ltoz\u00e1sa (mm/sec-ben) # k\u00e9t mozg\u00e1s tal\u00e1lkoz\u00e1s\u00e1n\u00e1l. Az alap\u00e9rtelmezett 1 mm/sec. #max_extrude_only_distance: 50.0 # Maxim\u00e1lis hossza (a nyers nyomtat\u00f3sz\u00e1lnak mm-ben), amely egy # visszah\u00faz\u00e1s vagy csak extrud\u00e1l\u00e1s eset\u00e9n lehets\u00e9ges. Ha egy visszah\u00faz\u00e1s # vagy csak extrud\u00e1l\u00e1si mozg\u00e1s enn\u00e9l az \u00e9rt\u00e9kn\u00e9l nagyobb t\u00e1vols\u00e1got k\u00e9r, # hiba\u00fczenetet ad vissza. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50 mm. #max_extrude_only_velocity: #max_extrude_only_accel: # Az extrudermotor maxim\u00e1lis sebess\u00e9ge (mm/sec-ben) \u00e9s gyorsul\u00e1sa # (mm/sec^2-en) a visszah\u00faz\u00e1sokhoz \u00e9s a csak extrud\u00e1lt mozg\u00e1sokhoz. # Ezek a be\u00e1ll\u00edt\u00e1sok nincsenek hat\u00e1ssal a norm\u00e1l nyomtat\u00e1si sebess\u00e9gekre. # Ha nincs megadva, akkor a sz\u00e1m\u00edt\u00e1sok megfelelnek a 4.0*nozzle_diameter^2 # keresztmetszet\u0171 XY nyomtat\u00e1si mozg\u00e1s hat\u00e1r\u00e1nak. #pressure_advance: 0.0 # Az extruder gyors\u00edt\u00e1sa sor\u00e1n a nyomtat\u00f3fejbe nyomand\u00f3 nyers sz\u00e1l # mennyis\u00e9ge. A lass\u00edt\u00e1s sor\u00e1n azonos mennyis\u00e9g\u0171 izz\u00f3sz\u00e1l h\u00faz\u00f3dik vissza. # M\u00e9rete millim\u00e9ter per millim\u00e9ter/m\u00e1sodperc. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, ami letiltja a nyom\u00e1sn\u00f6vel\u00e9st. #pressure_advance_smooth_time: 0.040 # Id\u0151tartom\u00e1ny (m\u00e1sodpercben), amelyet az extruder \u00e1tlagos sebess\u00e9g\u00e9nek # kisz\u00e1m\u00edt\u00e1s\u00e1hoz haszn\u00e1lnak a nyom\u00e1s el\u0151tol\u00e1shoz. A nagyobb \u00e9rt\u00e9k sim\u00e1bb # extrudermozg\u00e1sokat eredm\u00e9nyez. Ez a param\u00e9ter nem haladhatja meg a # 200 ezredm\u00e1sodpercet. Ez a be\u00e1ll\u00edt\u00e1s csak akkor \u00e9rv\u00e9nyes, ha a # pressure_advance \u00e9rt\u00e9ke nem nulla. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,040 (40 ezredm\u00e1sodperc). # # A fennmarad\u00f3 v\u00e1ltoz\u00f3k az extruder f\u0171t\u00e9s\u00e9t \u00edrj\u00e1k le. heater_pin: # PWM kimeneti \u00e9rintkez\u0151, amely a f\u0171t\u00e9st vez\u00e9rli. # Ezt a param\u00e9tert meg kell adni. #max_power: 1.0 # Az a maxim\u00e1lis teljes\u00edtm\u00e9ny (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), amelyre a # heater_pin be\u00e1ll\u00edthat\u00f3. Az 1,0 \u00e9rt\u00e9k lehet\u0151v\u00e9 teszi, hogy a t\u0171t hosszabb ideig # teljesen enged\u00e9lyezettre lehessen \u00e1ll\u00edtani, m\u00edg a 0,5 \u00e9rt\u00e9k legfeljebb a fele # ideig enged\u00e9lyezi a t\u0171t. Ezzel a be\u00e1ll\u00edt\u00e1ssal korl\u00e1tozhat\u00f3 a f\u0171t\u0151k\u00e9sz\u00fcl\u00e9k teljes # kimen\u0151 teljes\u00edtm\u00e9nye (hosszabb ideig). Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0. sensor_type: # \u00c9rz\u00e9kel\u0151 t\u00edpusa. \u00c1ltal\u00e1nos termisztorok: \u201eEPCOS 100K B57560G104F\u201d, # \u201eATC Semitec 104GT-2\u201d, \u201eATC Semitec 104NT-4-R025H42G\u201d, \u201eGeneric 3950\u201d, # \u201eHoneywell 100K 135-JGBC10K135-1010LAG18 -104F39050L32\", # \"SliceEngineering 450\" \u00e9s \"TDK NTCG104LH104JT1\". Tov\u00e1bbi \u00e9rz\u00e9kel\u0151k\u00e9rt # l\u00e1sd a \"H\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k\" r\u00e9szt. Ezt a param\u00e9tert meg kell adni. sensor_pin: # Anal\u00f3g bemeneti \u00e9rintkez\u0151 csatlakozik az \u00e9rz\u00e9kel\u0151h\u00f6z. # Ezt a param\u00e9tert meg kell adni. #pullup_resistor: 4700 # A termisztorhoz csatlakoztatott felh\u00faz\u00f3 ellen\u00e1ll\u00e1sa (ohmban). # Ez a param\u00e9ter csak akkor \u00e9rv\u00e9nyes, ha az \u00e9rz\u00e9kel\u0151 termisztor. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 4700 ohm. #smooth_time: 1.0 # Egy id\u0151\u00e9rt\u00e9k (m\u00e1sodpercben), amely alatt a h\u0151m\u00e9rs\u00e9kletm\u00e9r\u00e9s sim\u00edt\u00e1sra ker\u00fcl # a m\u00e9r\u00e9si zaj hat\u00e1s\u00e1nak cs\u00f6kkent\u00e9se \u00e9rdek\u00e9ben. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1 m\u00e1sodperc. control: # Vez\u00e9rl\u00e9si algoritmus (pid vagy watermark). Ezt a param\u00e9tert meg kell adni. pid_Kp: pid_Ki: pid_Kd: # Az ar\u00e1nyos (pid_Kp), az integr\u00e1l (pid_Ki) \u00e9s a deriv\u00e1lt (pid_Kd) be\u00e1ll\u00edt\u00e1sai a PID # visszacsatol\u00e1s vez\u00e9rl\u0151 rendszerhez. A Klipper a PID be\u00e1ll\u00edt\u00e1sokat a k\u00f6vetkez\u0151 # \u00e1ltal\u00e1nos k\u00e9plettel \u00e9rt\u00e9keli ki: heater_pwm = (Kp*error+ Ki*integral(error) vagy # Kd*derivative(error)) / 255 Ahol az \u201eerror\u201d a \u201erequested_temperature \u00e9s # measured_temperature\u201d \u00e9s a \u201eheater_pwm\u201d a k\u00e9rt f\u0171t\u00e9si sebess\u00e9g 0,0 teljes # kikapcsolt \u00e9s 1,0 teljes bekapcsolva. Fontolja meg a PID_CALIBRATE parancs # haszn\u00e1lat\u00e1t a param\u00e9terek lek\u00e9r\u00e9s\u00e9hez. A pid_Kp, pid_Ki \u00e9s pid_Kd # param\u00e9tereket meg kell adni a PID f\u0171t\u0151berendez\u00e9sekhez. #max_delta: 2.0 # A \u201ewatermark\u201d vez\u00e9rl\u00e9s\u0171 f\u0171t\u0151berendez\u00e9seken ez a f\u0171t\u0151elem kikapcsol\u00e1sa # el\u0151tti c\u00e9lh\u0151m\u00e9rs\u00e9klet feletti Celsius-fokkal, valamint a f\u0171t\u0151elem \u00fajb\u00f3li # bekapcsol\u00e1sa el\u0151tti c\u00e9lh\u0151m\u00e9rs\u00e9klet alatti fokok sz\u00e1ma. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 2 Celsius-fok. #pwm_cycle_time: 0.100 # Id\u0151 m\u00e1sodpercben a f\u0171t\u0151elem minden szoftveres PWM-ciklus\u00e1hoz. # Nem aj\u00e1nlott ezt be\u00e1ll\u00edtani, hacsak nincs elektromos k\u00f6vetelm\u00e9ny # a f\u0171t\u0151elem m\u00e1sodpercenk\u00e9nti 10-n\u00e9l gyorsabb kapcsol\u00e1s\u00e1ra. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,100 m\u00e1sodperc. #min_extrude_temp: 170 # Az a minim\u00e1lis h\u0151m\u00e9rs\u00e9klet (Celsiusban), amelyen az extruder mozgat\u00e1si # parancsai kiadhat\u00f3k. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 170 Celsius. min_temp: max_temp: # Az \u00e9rv\u00e9nyes h\u0151m\u00e9rs\u00e9kletek maxim\u00e1lis tartom\u00e1nya (Celsiusban), amelyen # bel\u00fcl a f\u0171t\u0151elemnek maradnia kell. Ez egy, a mikrovez\u00e9rl\u0151 k\u00f3dj\u00e1ban # be\u00e9p\u00edtett biztons\u00e1gi funkci\u00f3t vez\u00e9rel. Ha a m\u00e9rt h\u0151m\u00e9rs\u00e9klet ezen a # tartom\u00e1nyon k\u00edv\u00fcl esik, akkor a mikrovez\u00e9rl\u0151 le\u00e1ll\u00e1si \u00e1llapotba ker\u00fcl. # Ez az ellen\u0151rz\u00e9s seg\u00edthet bizonyos f\u0171t\u0151 \u00e9s \u00e9rz\u00e9kel\u0151 hardverhib\u00e1k \u00e9szlel\u00e9s\u00e9ben. # \u00c1ll\u00edtsd be ezt a tartom\u00e1nyt el\u00e9g sz\u00e9lesre, hogy a norm\u00e1lis h\u0151m\u00e9rs\u00e9klet ne # okozzon hib\u00e1t. Ezeket a param\u00e9tereket meg kell adni. [heater_bed] \u00b6 A heater_bed szakasz egy f\u0171t\u00f6tt t\u00e1rgyasztalt \u00edr le. Ugyanazokat a f\u0171t\u00e9si be\u00e1ll\u00edt\u00e1sokat haszn\u00e1lja, amelyeket az \"extruder\" szakaszban le\u00edrtunk. [heater_bed] heater_pin: sensor_type: sensor_pin: control: min_temp: max_temp: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"extruder\" szakaszban. T\u00e1rgyasztal szint t\u00e1mogat\u00e1s \u00b6 [bed_mesh] \u00b6 T\u00e1rgyasztal H\u00e1l\u00f3 Kiegyenl\u00edt\u00e9s. Defini\u00e1lhatunk egy bed_mesh konfigur\u00e1ci\u00f3s szakaszt, hogy enged\u00e9lyezz\u00fck a Z tengelyt eltol\u00f3 mozgat\u00e1si transzform\u00e1ci\u00f3kat a m\u00e9rt pontokb\u00f3l gener\u00e1lt h\u00e1l\u00f3 alapj\u00e1n. Ha szond\u00e1t haszn\u00e1lunk a Z-tengely alaphelyzetbe \u00e1ll\u00edt\u00e1s\u00e1ra, aj\u00e1nlott a printer.cfg f\u00e1jlban egy safe_z_home szakaszt defini\u00e1lni a nyomtat\u00e1si ter\u00fclet k\u00f6zep\u00e9re t\u00f6rt\u00e9n\u0151 alaphelyzetbe \u00e1ll\u00edt\u00e1shoz. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd az t\u00e1rgyasztal h\u00e1l\u00f3 \u00fatmutat\u00f3 \u00e9s a parancsreferencia dokumentumokat. Vizu\u00e1lis p\u00e9ld\u00e1k: t\u00e9glalap alak\u00fa t\u00e1rgyasztal, probe_count = 3, 3: x---x---x (max_point) | x---x---x | (min_point) x---x---x kerek t\u00e1rgyasztal, round_probe_count = 5, bed_radius = r: x (0, r) end / x---x---x \\ (-r, 0) x---x---x---x---x (r, 0) \\ x---x---x / x (0, -r) start [bed_mesh] #speed: 50 # A kalibr\u00e1l\u00e1s sor\u00e1n a nem pr\u00f3bamozg\u00e1sok sebess\u00e9ge (mm/sec-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), amelyre a fejnek parancsot kell adni a # mozg\u00e1sra k\u00f6zvetlen\u00fcl a szondam\u0171velet megkezd\u00e9se el\u0151tt. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #mesh_radius: # Meghat\u00e1rozza a h\u00e1l\u00f3 sugar\u00e1t a kerek t\u00e1rgyasztalokhoz. Ne feledd, hogy a # sug\u00e1r a mesh_origin param\u00e9ter \u00e1ltal megadott koordin\u00e1t\u00e1hoz # viszony\u00edtott. Ezt a param\u00e9tert a kerek t\u00e1rgyasztalokn\u00e1l meg kell adni, # a t\u00e9glalap alak\u00fa t\u00e1rgyasztalokn\u00e1l pedig ki kell hagyni. # mesh_origin # Az opci\u00f3 \u00e1ltal meghat\u00e1rozott koordin\u00e1ta. # Ezt a param\u00e9tert kerek t\u00e1rgyasztalok eset\u00e9ben meg kell adni. # De elhagyhat\u00f3 a t\u00e9glalap alak\u00fa t\u00e1rgyasztalok eset\u00e9ben. #mesh_origin: # Meghat\u00e1rozza a h\u00e1l\u00f3 k\u00f6z\u00e9ppontj\u00e1nak X, Y koordin\u00e1t\u00e1j\u00e1t kerek t\u00e1rgyasztalok # eset\u00e9n. Ez a koordin\u00e1ta a szonda hely\u00e9hez k\u00e9pest relat\u00edv. Hasznos # lehet a mesh_origin be\u00e1ll\u00edt\u00e1sa, hogy maximaliz\u00e1ljuk a h\u00e1l\u00f3 m\u00e9ret\u00e9t. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, 0. Ezt a param\u00e9tert el kell hagyni # t\u00e9glalap alak\u00fa t\u00e1rgyasztalok eset\u00e9n. #mesh_min: # Meghat\u00e1rozza a h\u00e1l\u00f3 minim\u00e1lis X, Y koordin\u00e1t\u00e1j\u00e1t t\u00e9glalap alak\u00fa # t\u00e1rgyasztalok eset\u00e9n. Ez a koordin\u00e1ta a szonda hely\u00e9hez k\u00e9pest relat\u00edv. # Ez lesz az els\u0151 szond\u00e1zott pont, amely a legk\u00f6zelebb van az orig\u00f3hoz. # Ezt a param\u00e9tert t\u00e9glalap alak\u00fa t\u00e1rgyasztalok eset\u00e9n meg kell adni. #mesh_max: # Meghat\u00e1rozza a h\u00e1l\u00f3 maxim\u00e1lis X, Y koordin\u00e1t\u00e1j\u00e1t t\u00e9glalap alak\u00fa # t\u00e1rgyasztalok eset\u00e9n. Ugyanazon az elven m\u0171k\u00f6dik, mint a mesh_min, # azonban ez a param\u00e9ter a legt\u00e1volabbi pont lesz, amelyet a t\u00e1rgyasztal # orig\u00f3j\u00e1t\u00f3l vizsg\u00e1lunk. Ezt a param\u00e9tert t\u00e9glalap alak\u00fa t\u00e1rgyasztalok # eset\u00e9n meg kell adni. #probe_count: 3, 3 # T\u00e9glalap alak\u00fa t\u00e1rgyasztalok eset\u00e9n ez egy vessz\u0151vel elv\u00e1lasztott eg\u00e9sz # sz\u00e1mp\u00e1r. X, Y \u00e9rt\u00e9kek, amelyek meghat\u00e1rozz\u00e1k a m\u00e9rni k\u00edv\u00e1nt # pontok sz\u00e1m\u00e1t az egyes tengelyek ment\u00e9n. Egyetlen \u00e9rt\u00e9k is # \u00e9rv\u00e9nyes, ebben az esetben ez az \u00e9rt\u00e9k mindk\u00e9t tengelyre vonatkozik. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 3, 3. #round_probe_count: 5 # A kerek t\u00e1rgyasztalok eset\u00e9ben ez az eg\u00e9sz \u00e9rt\u00e9k hat\u00e1rozza meg a # maxim\u00e1lis sz\u00e1m\u00fa pontok sz\u00e1m\u00e1t, amelyeket minden tengely ment\u00e9n # meg kell vizsg\u00e1lni. Ennek az \u00e9rt\u00e9knek p\u00e1ratlan sz\u00e1mnak kell lennie. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #fade_start: 1.0 # A G-k\u00f3d Z poz\u00edci\u00f3ja, ahol a Z-korrekci\u00f3 fokozatos megsz\u00fcntet\u00e9se # elkezd\u0151dik amikor a fade enged\u00e9lyezve van. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0. #fade_end: 0.0 # A G-k\u00f3d Z poz\u00edci\u00f3ja, amelyben a fading out befejez\u0151dik. Ha be van # \u00e1ll\u00edtva egy fade_start alatti \u00e9rt\u00e9kre a fade ki van kapcsolva. # Meg kell jegyezni, hogy a fade nem k\u00edv\u00e1nt sk\u00e1l\u00e1z\u00e1st adhat a # nyomtat\u00e1s Z tengelye ment\u00e9n. Ha egy felhaszn\u00e1l\u00f3 enged\u00e9lyezni # k\u00edv\u00e1nja a fade-et, a 10.0 \u00e9rt\u00e9k aj\u00e1nlott. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0.0, amely kikapcsolja a fade-et. #fade_target: # A Z poz\u00edci\u00f3, amelyben a fade-nek konverg\u00e1lnia kell. Ha ez az \u00e9rt\u00e9k # nem nulla \u00e9rt\u00e9kre van be\u00e1ll\u00edtva, akkor annak a Z-\u00e9rt\u00e9kek tartom\u00e1ny\u00e1n # bel\u00fcl kell lennie a h\u00e1l\u00f3ban. Azok a felhaszn\u00e1l\u00f3k, akik a Z kezd\u0151ponthoz # k\u00edv\u00e1nnak konverg\u00e1lni, 0-ra kell \u00e1ll\u00edtaniuk. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a h\u00e1l\u00f3 \u00e1tlagos Z \u00e9rt\u00e9ke. #split_delta_z: .025 # A Z k\u00fcl\u00f6nbs\u00e9g m\u00e9rt\u00e9ke (mm-ben) a mozg\u00e1s ment\u00e9n, amely kiv\u00e1lt # egy oszt\u00e1st. Az alap\u00e9rtelmezett \u00e9rt\u00e9k .025. #move_check_distance: 5.0 # A t\u00e1vols\u00e1g (mm-ben) a mozg\u00e1s ment\u00e9n, amelyn\u00e9l a split_delta_z-t # ellen\u0151rizni kell. Ez egyben a minim\u00e1lis hossz, ameddig egy mozg\u00e1st # fel lehet osztani. Alap\u00e9rtelmezett \u00e9rt\u00e9k 5.0. #mesh_pps: 2, 2 # Egy vessz\u0151vel elv\u00e1lasztott eg\u00e9sz sz\u00e1mp\u00e1r X, Y, amely meghat\u00e1rozza a # k\u00f6vetkez\u0151 pontok sz\u00e1m\u00e1t szegmensenk\u00e9nt, amelyeket interpol\u00e1lni kell # a h\u00e1l\u00f3ban az egyes tengelyek ment\u00e9n. A \"szegmens\" \u00fagy defini\u00e1lhat\u00f3, # mint az egyes m\u00e9rt pontok k\u00f6z\u00f6tti t\u00e9r. A felhaszn\u00e1l\u00f3 egyetlen \u00e9rt\u00e9ket # adhat meg, amely mindk\u00e9t tengelyre vonatkozik. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 2, 2. #algoritmus: lagrange # Az alkalmazand\u00f3 interpol\u00e1ci\u00f3s algoritmus. Lehet ak\u00e1r \"lagrange\" vagy # \"bicubic\". Ez az opci\u00f3 nem \u00e9rinti a 3x3-as r\u00e1csokat, amelyek k\u00e9nyszer\u00edtett # lagrange mintav\u00e9telt haszn\u00e1lnak. Az alap\u00e9rtelmezett lagrange. #bicubic_tension: .2 # A bikubik algoritmus haszn\u00e1latakor a fenti fesz\u00fclts\u00e9g param\u00e9ter # alkalmazhat\u00f3 az interpol\u00e1lt meredeks\u00e9g m\u00e9rt\u00e9k\u00e9nek megv\u00e1ltoztat\u00e1s\u00e1ra. # Nagyobb sz\u00e1mok n\u00f6velik a meredeks\u00e9g m\u00e9rt\u00e9k\u00e9t, ami nagyobb # g\u00f6rb\u00fcletet eredm\u00e9nyez a h\u00e1l\u00f3ban. Az alap\u00e9rtelmezett \u00e9rt\u00e9k .2. #relative_reference_index: # Egy pontindex a h\u00e1l\u00f3ban, amelyre minden Z \u00e9rt\u00e9ket hivatkozni kell. # Az enged\u00e9lyez\u00e9se ennek a param\u00e9ternek a bekapcsol\u00e1sa a vizsg\u00e1lt # Z poz\u00edci\u00f3hoz viszony\u00edtott h\u00e1l\u00f3t eredm\u00e9nyez a megadott indexhez k\u00e9pest. #faulty_region_1_min: #faulty_region_1_max: # A hib\u00e1s r\u00e9gi\u00f3t meghat\u00e1roz\u00f3 opcion\u00e1lis pontok. L\u00e1sd docs/Bed_Mesh.md # A hib\u00e1s r\u00e9gi\u00f3kkal kapcsolatos r\u00e9szletek\u00e9rt. Legfeljebb 99 hib\u00e1s r\u00e9gi\u00f3 # adhat\u00f3 hozz\u00e1. Alap\u00e9rtelmez\u00e9s szerint nincsenek hib\u00e1s r\u00e9gi\u00f3k be\u00e1ll\u00edtva. [bed_tilt] \u00b6 T\u00e1rgyasztal d\u0151l\u00e9s kompenz\u00e1ci\u00f3. Defini\u00e1lhatunk egy bed_tilt config szekci\u00f3t, hogy lehet\u0151v\u00e9 tegy\u00fck a ferde t\u00e1rgyasztalt figyelembe vev\u0151 mozg\u00e1stranszform\u00e1ci\u00f3kat. Vedd figyelembe, hogy a bed_mesh \u00e9s a bed_tilt nem kompatibilisek. Mindkett\u0151 nem defini\u00e1lhat\u00f3. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancsreferencia dokumentumot. [bed_tilt] #x_adjust: 0 # Az az \u00e9rt\u00e9k, amit hozz\u00e1 kell adni az egyes mozg\u00e1sok Z # magass\u00e1g\u00e1hoz az X tengely minden mm-\u00e9n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #y_adjust: 0 # Az az \u00e9rt\u00e9k, amit hozz\u00e1 kell adni az egyes mozg\u00e1sok Z # magass\u00e1g\u00e1hoz az Y tengely minden mm-\u00e9n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #z_adjust: 0 # A Z magass\u00e1ghoz hozz\u00e1adand\u00f3 \u00e9rt\u00e9k, amikor a f\u00fav\u00f3ka n\u00e9vlegesen 0, 0. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. # A t\u00f6bbi param\u00e9ter egy BED_TILT_CALIBRATE kiterjesztett G-k\u00f3d # parancsot vez\u00e9rel, amely a megfelel\u0151 X \u00e9s Y be\u00e1ll\u00edt\u00e1si param\u00e9terek # kalibr\u00e1l\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. #points: # Az X, Y koordin\u00e1t\u00e1k list\u00e1ja (soronk\u00e9nt egy a k\u00f6vetkez\u0151 sorokat beh\u00fazva), # amelyeket a BED_TILT_CALIBRATE parancs sor\u00e1n meg kell vizsg\u00e1lni. # Add meg a f\u00fav\u00f3ka koordin\u00e1t\u00e1it, \u00e9s gy\u0151z\u0151dj meg arr\u00f3l, hogy a szonda # a t\u00e1rgyasztal felett van a megadott f\u00fav\u00f3kakoordin\u00e1t\u00e1kon. # Az alap\u00e9rtelmezett az, hogy nem enged\u00e9lyezi a parancsot. #speed: 50 # A nem szond\u00e1z\u00e1s sebess\u00e9ge (mm/sec-ben) mozog a kalibr\u00e1l\u00e1s sor\u00e1n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), ameddig a fejnek el kell mozdulnia # k\u00f6zvetlen\u00fcl a szondam\u0171velet megkezd\u00e9se el\u0151tt. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. [bed_screws] \u00b6 Szersz\u00e1m a t\u00e1rgyasztal szintbe\u00e1ll\u00edt\u00f3 csavarok be\u00e1ll\u00edt\u00e1s\u00e1hoz. Meghat\u00e1rozhat\u00f3 egy [bed_screws] config szakasz a BED_SCREWS_ADJUST G-k\u00f3d parancs enged\u00e9lyez\u00e9s\u00e9hez. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a szintez\u00e9si \u00fatmutat\u00f3 \u00e9s a parancs hivatkoz\u00e1s dokumentumot. [bed_screws] #screw1: # Az els\u0151 t\u00e1rgyasztal kiegyenl\u00edt\u0151 csavar X, Y koordin\u00e1t\u00e1ja. Ez egy # olyan poz\u00edci\u00f3, ahov\u00e1 a f\u00fav\u00f3k\u00e1t kell ir\u00e1ny\u00edtani, mely k\u00f6zvetlen\u00fcl a t\u00e1rgyasztal felett van # (vagy a lehet\u0151 legk\u00f6zelebb, de m\u00e9g mindig a t\u00e1rgyasztal felett). # Ezt a param\u00e9tert meg kell adni. #screw1_name: # Az adott csavar tetsz\u0151leges neve. Ez a n\u00e9v jelenik meg, amikor a seg\u00e9dszkript fut. # Az alap\u00e9rtelmez\u00e9s szerint a n\u00e9v alapja a csavar XY helye. #screw1_fine_adjust: # Egy X, Y koordin\u00e1ta, amelyre a f\u00fav\u00f3k\u00e1t ir\u00e1ny\u00edtani # kell, hogy finom\u00edtani lehessen a t\u00e1rgyasztal szintez\u0151 csavart. # Az alap\u00e9rtelmez\u00e9s szerint a finombe\u00e1ll\u00edt\u00e1s nem t\u00f6rt\u00e9nik meg a t\u00e1rgyasztal csavarj\u00e1n. #screw2: #screw2_name: #screw2_fine_adjust: #... # Tov\u00e1bbi t\u00e1rgyasztal szint\u00e1ll\u00edt\u00f3 csavarok. Legal\u00e1bb h\u00e1rom csavarnak kell lennie. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), ahov\u00e1 a fejnek parancsot kell adni a mozg\u00e1sra amikor az egyik # csavar hely\u00e9r\u0151l a m\u00e1sikra mozog. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #probe_height: 0 # A szonda magass\u00e1ga (mm-ben) a h\u0151fokszab\u00e1lyoz\u00e1s ut\u00e1n. # A t\u00e1rgyasztal \u00e9s a f\u00fav\u00f3ka h\u0151t\u00e1gul\u00e1sa ut\u00e1n. Az alap\u00e9rtelmezett \u00e9rt\u00e9k nulla. #speed: 50 # A kalibr\u00e1l\u00e1s sor\u00e1n a nem m\u00e9r\u00e9si mozg\u00e1sok sebess\u00e9ge (mm/sec-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #probe_speed: 5 # A sebess\u00e9g (mm/sec-ben) a horizont\u00e1lis_move_z poz\u00edci\u00f3b\u00f3l t\u00f6rt\u00e9n\u0151 mozg\u00e1skor. # A probe_height poz\u00edci\u00f3ja. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. [screws_tilt_adjust] \u00b6 Eszk\u00f6z a t\u00e1rgyasztal csavarok d\u0151l\u00e9ssz\u00f6g\u00e9nek be\u00e1ll\u00edt\u00e1s\u00e1hoz Z-szond\u00e1val. Meghat\u00e1rozhat\u00f3 egy screws_tilt_adjust konfigur\u00e1ci\u00f3s szakasz a SCREWS_TILT_CALCULATE G-k\u00f3d parancsal. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a szintez\u00e9si \u00fatmutat\u00f3 \u00e9s a parancs hivatkoz\u00e1s dokumentumot. [screws_tilt_adjust] #screw1: # Az els\u0151 t\u00e1rgyasztal kiegyenl\u00edt\u0151 csavar (X, Y) koordin\u00e1t\u00e1ja. Ez a helyzet a f\u00fav\u00f3ka # utas\u00edt\u00e1s\u00e1hoz \u00fagy, hogy a szonda k\u00f6zvetlen\u00fcl a t\u00e1rgyasztal csavar felett # legyen (vagy a lehet\u0151 legk\u00f6zelebb, mik\u00f6zben tov\u00e1bbra is a t\u00e1rgyasztal felett # van). Ez a sz\u00e1m\u00edt\u00e1sokn\u00e1l haszn\u00e1lt alapcsavar. # Ezt a param\u00e9tert meg kell adni. #screw1_name: # Az adott csavar tetsz\u0151leges neve. Ez a n\u00e9v jelenik meg a seg\u00e9dszkript # futtat\u00e1sakor. Az alap\u00e9rtelmez\u00e9s szerint a n\u00e9v a a csavar X-Y # hely\u00e9re \u00e9p\u00fcl. #screw2: #screw2_name: #... # Tov\u00e1bbi t\u00e1rgyasztal kiegyenl\u00edt\u0151 csavarok. # Legal\u00e1bb k\u00e9t csavart kell meghat\u00e1rozott. #speed: 50 # A kalibr\u00e1l\u00e1s sor\u00e1n a nem m\u00e9r\u0151 mozg\u00e1sok sebess\u00e9ge (mm/sec-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #horizontal_move_z: 5 # A magass\u00e1g (mm-ben), ahov\u00e1 a fejnek el kell mozdulnia. # K\u00f6zvetlen\u00fcl a szondam\u0171velet megkezd\u00e9se el\u0151tt. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #screw_thread: CW-M3 # A t\u00e1rgyasztal szintj\u00e9hez haszn\u00e1lt csavar t\u00edpusa, M3, M4 vagy M5, valamint a # t\u00e1rgyasztal szintbe\u00e1ll\u00edt\u00e1s\u00e1hoz haszn\u00e1lt gomb ir\u00e1nya, az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val # megegyez\u0151 ir\u00e1ny\u00fa cs\u00f6kken\u00e9s az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1ny\u00fa # cs\u00f6kken\u00e9s. Elfogadott \u00e9rt\u00e9kek: CW-M3, CCW-M3, CW-M4, CCW-M4, # CW-M5, CCW-M5. Az alap\u00e9rtelmezett \u00e9rt\u00e9k CW-M3, a legt\u00f6bb nyomtat\u00f3 # M3-as csavart \u00e9s a gombot az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val megegyez\u0151 ir\u00e1nyba # forgatva cs\u00f6kken a t\u00e1vols\u00e1g. [z_tilt] \u00b6 T\u00f6bbsz\u00f6r\u00f6s Z l\u00e9ptet\u0151 d\u0151l\u00e9ssz\u00f6g be\u00e1ll\u00edt\u00e1sa. Ez a funkci\u00f3 lehet\u0151v\u00e9 teszi t\u00f6bb Z l\u00e9ptet\u0151 f\u00fcggetlen be\u00e1ll\u00edt\u00e1s\u00e1t (l\u00e1sd a \"stepper_z1\" szakaszt) a d\u0151l\u00e9s be\u00e1ll\u00edt\u00e1s\u00e1hoz. Ha ez a szakasz jelen van, akkor el\u00e9rhet\u0151v\u00e9 v\u00e1lik a Z_TILT_ADJUST kiterjesztett G-k\u00f3d parancs . [z_tilt] #z_positions: # Az X, Y koordin\u00e1t\u00e1k list\u00e1ja (soronk\u00e9nt egy a k\u00f6vetkez\u0151 sorokat beh\u00fazva), # amelyek le\u00edrj\u00e1k az egyes t\u00e1rgyasztalok \"forg\u00e1spontjainak\" hely\u00e9t. # A \"forg\u00e1spont\" az a pont, ahol a t\u00e1rgyasztal az adott Z l\u00e9ptet\u0151h\u00f6z # kapcsol\u00f3dik. Ezt a f\u00fav\u00f3ka koordin\u00e1t\u00e1ival \u00edrj\u00e1k le (a f\u00fav\u00f3ka X, Y # poz\u00edci\u00f3ja, ha k\u00f6zvetlen\u00fcl a pont felett mozoghat). Az els\u0151 bejegyz\u00e9s a # stepper_z, a m\u00e1sodik a stepper_z1, a harmadik a stepper_z2 stb. # \u00e9rt\u00e9knek felel meg. Ezt a param\u00e9tert meg kell adni. #points: # Az X, Y koordin\u00e1t\u00e1k list\u00e1ja (soronk\u00e9nt egy a k\u00f6vetkez\u0151 sorokat beh\u00fazva), # amelyeket a Z_TILT_ADJUST parancs sor\u00e1n meg kell vizsg\u00e1lni. Add meg # a f\u00fav\u00f3ka koordin\u00e1t\u00e1it, \u00e9s gy\u0151z\u0151dj meg arr\u00f3l, hogy a szonda a t\u00e1rgyasztal # felett van a megadott f\u00fav\u00f3kakoordin\u00e1t\u00e1kon. # Ezt a param\u00e9tert meg kell adni. #speed: 50 # A nem m\u00e9r\u00e9si mozg\u00e1s sebess\u00e9ge (mm/sec-ben) mozog a kalibr\u00e1l\u00e1skor. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), ameddig a fejnek el kell mozdulnia # k\u00f6zvetlen\u00fcl a m\u00e9r\u00e9sek megkezd\u00e9se el\u0151tt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #retries: 0 # Az \u00fajrapr\u00f3b\u00e1lkoz\u00e1sok sz\u00e1ma, ha a vizsg\u00e1lt pontok nincsenek a # t\u0171r\u00e9shat\u00e1ron bel\u00fcl. #retry_tolerance: 0 # Ha az \u00fajrapr\u00f3b\u00e1lkoz\u00e1s enged\u00e9lyezve van, pr\u00f3b\u00e1lkozzon \u00fajra, ha a # legnagyobb \u00e9s a legkisebb vizsg\u00e1lt pont jobban elt\u00e9r, mint a # retry_tolerance. Vedd figyelembe, hogy a v\u00e1ltoz\u00e1s legkisebb egys\u00e9ge # itt egyetlen l\u00e9p\u00e9s lenne. Ha azonban t\u00f6bb pontot vizsg\u00e1l, mint l\u00e9ptet\u0151t, # akkor val\u00f3sz\u00edn\u0171leg lesz egy r\u00f6gz\u00edtett minim\u00e1lis \u00e9rt\u00e9ke a vizsg\u00e1lt pontok # tartom\u00e1ny\u00e1hoz, amelyet a parancs kimenet\u00e9nek megfigyel\u00e9s\u00e9vel # tanulhat meg. [quad_gantry_level] \u00b6 Mozg\u00f3 \u00e1llv\u00e1ny szintez\u00e9se 4 egym\u00e1st\u00f3l f\u00fcggetlen\u00fcl vez\u00e9relt Z-motorral. Korrig\u00e1lja a hiperbolikus parabola hat\u00e1s\u00e1t (krumplichip) a mozg\u00f3 port\u00e1lon, amely rugalmasabb. FIGYELMEZTET\u00c9S: Mozg\u00f3 t\u00e1rgyasztalon t\u00f6rt\u00e9n\u0151 haszn\u00e1lata nemk\u00edv\u00e1natos eredm\u00e9nyekhez vezethet. Ha ez a szakasz jelen van, akkor el\u00e9rhet\u0151v\u00e9 v\u00e1lik a QUAD_GANTRY_LEVEL kiterjesztett G-k\u00f3d parancs. Ez a rutin a k\u00f6vetkez\u0151 Z motor konfigur\u00e1ci\u00f3t felt\u00e9telezi: ---------------- |Z1 Z2| | --------- | | | | | | | | | | x-------- | |Z Z3| ---------------- Ahol X a t\u00e1rgyasztal 0, 0 pontja [quad_gantry_level] #gantry_corners: # Az X, Y koordin\u00e1t\u00e1k \u00faj sorral elv\u00e1lasztott list\u00e1ja, amely le\u00edrja a port\u00e1l # k\u00e9t ellent\u00e9tes sark\u00e1t. Az els\u0151 bejegyz\u00e9s a Z-nek, a m\u00e1sodik a Z2-nek # felel meg. Ezt a param\u00e9tert meg kell adni. #points: # Egy \u00faj sorral elv\u00e1lasztott lista n\u00e9gy X, Y pontb\u00f3l, amelyeket meg kell # vizsg\u00e1lni a QUAD_GANTRY_LEVEL parancs sor\u00e1n. A helyek sorrendje # fontos, \u00e9s sorrendben meg kell egyeznie a Z, Z1, Z2 \u00e9s Z3 helyekkel. # Ezt a param\u00e9tert meg kell adni. A maxim\u00e1lis pontoss\u00e1g \u00e9rdek\u00e9ben # gy\u0151z\u0151dj meg arr\u00f3l, hogy a szonda eltol\u00e1sa be van \u00e1ll\u00edtva. #speed: 50 # A nem m\u00e9r\u00e9si mozg\u00e1sok sebess\u00e9ge (mm/sec-ben) mozog a kalibr\u00e1l\u00e1skor. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), ameddig a fejnek el kell mozdulnia k\u00f6zvetlen\u00fcl # a m\u00e9r\u00e9s megkezd\u00e9se el\u0151tt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #max_adjust: 4 # Biztons\u00e1gi korl\u00e1t, ha enn\u00e9l az \u00e9rt\u00e9kn\u00e9l nagyobb korrekci\u00f3t k\u00e9rnek, # a quad_gantry_level megszakad. #retries: 0 # Az \u00fajrapr\u00f3b\u00e1lkoz\u00e1sok sz\u00e1ma, ha a vizsg\u00e1lt pontok nincsenek a # t\u0171r\u00e9shat\u00e1ron bel\u00fcl. #retry_tolerance: 0 # Ha az \u00fajrapr\u00f3b\u00e1lkoz\u00e1s enged\u00e9lyezve van, pr\u00f3b\u00e1lkozzon \u00fajra, ha a # legnagyobb \u00e9s a legkisebb vizsg\u00e1lt pont jobban elt\u00e9r, # mint a retry_tolerance \u00e9rt\u00e9ke. [skew_correction] \u00b6 Nyomtat\u00f3 ferdes\u00e9gkorrekci\u00f3. Lehet\u0151s\u00e9g van a nyomtat\u00f3 ferdes\u00e9g\u00e9nek szoftveres korrekci\u00f3j\u00e1ra 3 s\u00edkban: XY, XZ, YZ. Ez \u00fagy t\u00f6rt\u00e9nik, hogy egy kalibr\u00e1ci\u00f3s modellt nyomtatunk egy s\u00edk ment\u00e9n, \u00e9s h\u00e1rom hossz\u00fas\u00e1got m\u00e9r\u00fcnk. A ferdes\u00e9gkorrekci\u00f3 jelleg\u00e9b\u0151l ad\u00f3d\u00f3an ezeket a hosszokat G-k\u00f3dal kell be\u00e1ll\u00edtani. L\u00e1sd a Ferdes\u00e9g korrekci\u00f3 \u00e9s a Parancs hivatkoz\u00e1s c\u00edm\u0171 fejezetekben tal\u00e1lhat\u00f3 r\u00e9szleteket. [skew_correction] [z_thermal_adjust] \u00b6 H\u0151m\u00e9rs\u00e9kletf\u00fcgg\u0151 nyomtat\u00f3fej Z poz\u00edci\u00f3 be\u00e1ll\u00edt\u00e1sa. Kompenz\u00e1lja a nyomtat\u00f3 keret\u00e9nek h\u0151t\u00e1gul\u00e1sa \u00e1ltal okozott f\u00fcgg\u0151leges nyomtat\u00f3fej elmozdul\u00e1st val\u00f3s id\u0151ben egy h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 seg\u00edts\u00e9g\u00e9vel (jellemz\u0151en a keret f\u00fcgg\u0151leges szakasz\u00e1hoz csatlakoztatva). L\u00e1sd m\u00e9g: b\u0151v\u00edtett G-k\u00f3d parancsok . [z_thermal_adjust] #temp_coeff: # A h\u0151m\u00e9rs\u00e9kleti t\u00e1gul\u00e1si egy\u00fctthat\u00f3, mm/\u00b0C-ban. P\u00e9ld\u00e1ul a 0,01 mm/\u00b0C # temp_coeff a Z tengelyt 0,01 mm-rel lefel\u00e9 mozgatja minden Celsius-fok # ut\u00e1n, amelyet a h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 n\u00f6vel. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,0 mm/\u00b0C, amely nem alkalmaz be\u00e1ll\u00edt\u00e1st. #smooth_time: # Sim\u00edt\u00e1si ablak a h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151re, m\u00e1sodpercek alatt. # Cs\u00f6kkentheti a motorzajt a t\u00falzottan kis korrekci\u00f3kb\u00f3l # az \u00e9rz\u00e9kel\u0151 zaj\u00e1ra reag\u00e1lva. # Az alap\u00e9rtelmezett 2,0 m\u00e1sodperc. #z_adjust_off_above: # Letiltja a Z magass\u00e1g [mm] feletti be\u00e1ll\u00edt\u00e1sokat. # Az utolj\u00e1ra sz\u00e1m\u00edtott korrekci\u00f3 mindaddig \u00e9rv\u00e9nyes marad, am\u00edg a # nyomtat\u00f3fej ism\u00e9t a megadott Z magass\u00e1g al\u00e1 nem ker\u00fcl. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 99999999,0 mm (mindig bekapcsolva). #max_z_adjustment: # A Z tengelyre alkalmazhat\u00f3 maxim\u00e1lis abszol\u00fat be\u00e1ll\u00edt\u00e1s [mm]. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 99999999,0 mm (korl\u00e1tlan). #sensor_type: #sensor_pin: #min_temp: #max_temp: # H\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 konfigur\u00e1ci\u00f3ja. # A fenti param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd az \"extruder\" r\u00e9szt. #gcode_id: # L\u00e1sd a \"heater_generic\" r\u00e9szt a param\u00e9ter meghat\u00e1roz\u00e1s\u00e1hoz. Testreszabott kezd\u0151pont felv\u00e9tel \u00b6 [safe_z_home] \u00b6 Biztons\u00e1gos Z kezd\u0151pont felv\u00e9tel. Ezzel a mechanizmussal a Z tengelyt egy adott X, Y koordin\u00e1t\u00e1ra lehet \u00e1ll\u00edtani. Ez akkor hasznos, ha p\u00e9ld\u00e1ul a nyomtat\u00f3fejnek a t\u00e1rgyasztal k\u00f6zep\u00e9re kell mozognia, miel\u0151tt a Z-tengelyt kezd\u0151pontpba ir\u00e1ny\u00edtan\u00e1. [safe_z_home] home_xy_position: # Egy X, Y koordin\u00e1ta (pl. 100, 100), ahol a Z homingot v\u00e9gre kell hajtani. # Ezt a param\u00e9tert meg kell adni. #speed: 50.0 # Az a sebess\u00e9g, amellyel a nyomtat\u00f3fej a biztons\u00e1gos Z # kezd\u0151koordin\u00e1t\u00e1ra ker\u00fcl. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50 mm/sec #z_hop: # T\u00e1vols\u00e1g (mm-ben) a Z tengely felemel\u00e9s\u00e9hez a be\u00e1ll\u00edt\u00e1s el\u0151tt. # Ez minden ir\u00e1nyad\u00f3 parancsra vonatkozik, m\u00e9g akkor is, ha nem # a Z tengelyre ir\u00e1nyul. # Ha a Z tengely m\u00e1r be van \u00e1ll\u00edtva, \u00e9s az aktu\u00e1lis Z poz\u00edci\u00f3 kisebb, # mint z_hop, akkor ez a fejet z_hop magass\u00e1gba emeli. # Ha a Z tengely m\u00e9g nincs behelyezve, a fejet a z_hop felemeli. # Az alap\u00e9rtelmezett az, hogy nem val\u00f3s\u00edtja meg a Z ugr\u00e1st. #z_hop_speed: 15.0 # Sebess\u00e9g (mm/sec-ben), amellyel a Z tengely megemelkedik # a homing el\u0151tt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 15mm/sec. #move_to_previous: False # Ha True \u00e9rt\u00e9kre van \u00e1ll\u00edtva, az X \u00e9s Y tengelyek vissza\u00e1llnak # az el\u0151z\u0151 poz\u00edci\u00f3jukra a Z tengely kezd\u0151pont felv\u00e9tele ut\u00e1n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. [homing_override] \u00b6 Kezd\u0151pont felv\u00e9tel fel\u00fclb\u00edr\u00e1l\u00e1sa. Ezt a mechanizmust arra lehet haszn\u00e1lni, hogy a norm\u00e1l G-k\u00f3d bemenetben tal\u00e1lhat\u00f3 G28 helyett egy sor G-k\u00f3d parancsot futtassunk. Ez olyan nyomtat\u00f3kn\u00e1l lehet hasznos, amelyekn\u00e9l a g\u00e9p beind\u00edt\u00e1s\u00e1hoz speci\u00e1lis elj\u00e1r\u00e1sra van sz\u00fcks\u00e9g. [homing_override] gcode: # A norm\u00e1l G-k\u00f3d bemenetben tal\u00e1lhat\u00f3 G28 parancsok helyett # v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. L\u00e1sd a # docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d form\u00e1tumokhoz. # Ha a parancsok list\u00e1ja G28-at tartalmaz, akkor az a nyomtat\u00f3fej norm\u00e1l # elhelyez\u00e9si elj\u00e1r\u00e1s\u00e1t ind\u00edtja el. Az itt felsorolt parancsoknak minden # tengelyt kezd\u0151ponthoz kell ir\u00e1ny\u00edtaniuk. Ezt a param\u00e9tert meg kell adni. #axes: xyz # A fel\u00fcl\u00edrand\u00f3 tengelyek. P\u00e9ld\u00e1ul, ha ez \"Z\"-re van \u00e1ll\u00edtva, akkor a # fel\u00fcl\u00edr\u00e1si parancsf\u00e1jl csak akkor fut le, ha a Z tengely be van \u00e1ll\u00edtva # (pl. \"G28\" vagy \"G28 Z0\" paranccsal). Ne feledd, hogy a fel\u00fcl\u00edr\u00e1si # szkriptnek tov\u00e1bbra is minden tengelyt kell tartalmaznia. # Az alap\u00e9rtelmez\u00e9s az \"xyz\", ami azt eredm\u00e9nyezi, hogy a fel\u00fclb\u00edr\u00e1l\u00f3 # szkript fut minden G28 parancs helyett. #set_position_x: #set_position_y: #set_position_z: # Ha meg van adva, a nyomtat\u00f3 felt\u00e9telezi, hogy a tengely a megadott # poz\u00edci\u00f3ban van a fenti G-k\u00f3d parancsok futtat\u00e1sa el\u0151tt. Ennek a # be\u00e1ll\u00edt\u00e1s\u00e1val letiltja az adott tengelyre vonatkoz\u00f3 kezd\u0151pont # ellen\u0151rz\u00e9seket. Ez akkor lehet hasznos, ha a nyomtat\u00f3fejnek el kell # mozdulnia, miel\u0151tt a norm\u00e1l G28 parancsot megh\u00edvn\u00e1 egy tengelyre. # Az alap\u00e9rtelmez\u00e9s az, hogy nem er\u0151ltetik a tengely poz\u00edci\u00f3j\u00e1t. [endstop_phase] \u00b6 L\u00e9ptet\u0151 f\u00e1zissal be\u00e1ll\u00edtott v\u00e9g\u00e1ll\u00e1sok. A funkci\u00f3 haszn\u00e1lat\u00e1hoz defini\u00e1ljon egy konfigur\u00e1ci\u00f3s r\u00e9szt egy \"endstop_phase\" el\u0151taggal, amelyet a megfelel\u0151 stepper konfigur\u00e1ci\u00f3s r\u00e9sz neve k\u00f6vet (p\u00e9ld\u00e1ul \"[endstop_phase stepper_z]\"). Ez a funkci\u00f3 jav\u00edthatja a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3k pontoss\u00e1g\u00e1t. Adj hozz\u00e1 egy csupasz \"[endstop_phase]\" deklar\u00e1ci\u00f3t az ENDSTOP_PHASE_CALIBRATE parancs enged\u00e9lyez\u00e9s\u00e9hez. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a v\u00e9g\u00e1ll\u00e1si f\u00e1zisok \u00fatmutat\u00f3 \u00e9s a Parancs hivatkoz\u00e1s dokumentumot. [endstop_phase stepper_z] #endstop_accuracy: # Be\u00e1ll\u00edtja a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 v\u00e1rhat\u00f3 pontoss\u00e1g\u00e1t (mm-ben). Ez azt a # maxim\u00e1lis hibat\u00e1vols\u00e1got jel\u00f6li, amelyet a v\u00e9g\u00e1ll\u00e1s kiv\u00e1lthat (pl. ha # egy v\u00e9g\u00e1ll\u00e1s id\u0151nk\u00e9nt 100 um kor\u00e1n vagy legfeljebb 100 um k\u00e9s\u00e9ssel # v\u00e1lthat ki, akkor \u00e1ll\u00edtsd ezt 0,200-ra 200 um eset\u00e9n). Az alap\u00e9rtelmezett # 4*rotation_distance/full_steps_per_rotation. #trigger_phase: # Ez hat\u00e1rozza meg a l\u00e9ptet\u0151motor meghajt\u00f3j\u00e1nak azt az \u00e1ramot, # amelyre sz\u00e1m\u00edtani kell, amikor meg\u00fcti a v\u00e9g\u00e1ll\u00e1st. K\u00e9t sz\u00e1mb\u00f3l \u00e1ll, # amelyeket egy perjel v\u00e1laszt el. Az \u00e1ramb\u00f3l \u00e9s \u00e1ramok teljes sz\u00e1m\u00e1b\u00f3l # (pl. \"7/64\"). Csak akkor \u00e1ll\u00edtsd be ezt az \u00e9rt\u00e9ket, ha biztos abban, hogy a # motorvez\u00e9rl\u0151 minden alkalommal alaphelyzetbe \u00e1ll az MCU # alaphelyzetbe \u00e1ll\u00edt\u00e1sakor. Ha ez nincs be\u00e1ll\u00edtva, akkor a l\u00e9ptet\u0151 f\u00e1zist a # rendszer az els\u0151 kezd\u0151pontban \u00e9rz\u00e9keli, \u00e9s ezt az \u00e1ramot haszn\u00e1lja az # \u00f6sszes k\u00f6vetkez\u0151 kezd\u0151pontfelv\u00e9telkor. #endstop_align_zero: False # Ha True, akkor a tengely position_endstop \u00e9rt\u00e9ke t\u00e9nylegesen m\u00f3dosul, # \u00edgy a tengely nulla poz\u00edci\u00f3ja a l\u00e9ptet\u0151motor teljes l\u00e9p\u00e9s\u00e9n\u00e9l megjelenik. # (Ha a Z tengelyen haszn\u00e1ljuk, \u00e9s a nyomtat\u00e1si r\u00e9teg magass\u00e1ga a teljes # l\u00e9p\u00e9st\u00e1vols\u00e1g t\u00f6bbsz\u00f6r\u00f6se, akkor minden r\u00e9teg egy teljes l\u00e9p\u00e9sben # jelenik meg.) Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. G-k\u00f3d makr\u00f3k \u00e9s esem\u00e9nyek \u00b6 [gcode_macro] \u00b6 G-k\u00f3d makr\u00f3k (a \"gcode_macro\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3). Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancssablonok \u00fatmutat\u00f3j\u00e1t . [gcode_macro my_cmd] #gcode: # A \"my_cmd\" helyett v\u00e9grehajtand\u00f3 G-k\u00f3d-parancsok list\u00e1ja. L\u00e1sd a # docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d form\u00e1tumhoz. # Ezt a param\u00e9tert meg kell adni. #variable_<name>: # B\u00e1rmilyen sz\u00e1m\u00fa be\u00e1ll\u00edt\u00e1s megadhat\u00f3 a \"v\u00e1ltoz\u00f3_\" el\u0151taggal. # Az adott v\u00e1ltoz\u00f3n\u00e9vhez a rendszer hozz\u00e1rendeli az adott \u00e9rt\u00e9ket # (Python liter\u00e1lk\u00e9nt \u00e9rtelmezi), \u00e9s el\u00e9rhet\u0151 lesz a makr\u00f3b\u0151v\u00edt\u00e9s # sor\u00e1n. P\u00e9ld\u00e1ul egy \"variable_fan_speed = 75\" konfigur\u00e1ci\u00f3j\u00fa G-k\u00f3d # parancsok tartalmazhatj\u00e1k az \"M106 S{ fan_speed * 255 }\" \u00e9rt\u00e9ket. # A v\u00e1ltoz\u00f3k fut\u00e1s k\u00f6zben m\u00f3dos\u00edthat\u00f3k a SET_GCODE_VARIABLE # paranccsal (a r\u00e9szletek\u00e9rt l\u00e1sd a docs/Command_Templates.md f\u00e1jlt). # A v\u00e1ltoz\u00f3nevek nem tartalmazhatnak nagybet\u0171ket. #rename_existing: # Ezzel az opci\u00f3val a makr\u00f3 fel\u00fcl\u00edr egy megl\u00e9v\u0151 G-k\u00f3d parancsot, \u00e9s # megadja a parancs kor\u00e1bbi defin\u00edci\u00f3j\u00e1t az itt megadott n\u00e9ven. Ez # haszn\u00e1lhat\u00f3 a be\u00e9p\u00edtett G-k\u00f3d parancsok fel\u00fclb\u00edr\u00e1l\u00e1s\u00e1ra. \u00d3vatosan # kell elj\u00e1rni a parancsok fel\u00fclb\u00edr\u00e1l\u00e1sakor, mivel az \u00f6sszetett \u00e9s v\u00e1ratlan # eredm\u00e9nyeket okozhat. Az alap\u00e9rtelmez\u00e9s szerint nem \u00edrnak fel\u00fcl # megl\u00e9v\u0151 G-k\u00f3d parancsot. #description: G-Code macro # Ez hozz\u00e1ad egy r\u00f6vid le\u00edr\u00e1st, amelyet a HELP parancsn\u00e1l vagy az # automatikus kieg\u00e9sz\u00edt\u00e9s funkci\u00f3 haszn\u00e1latakor haszn\u00e1lnak. # Alap\u00e9rtelmezett a \"G-Code macro\" [delayed_gcode] \u00b6 Egy G-k\u00f3d v\u00e9grehajt\u00e1sa be\u00e1ll\u00edtott k\u00e9sleltet\u00e9ssel. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancssablon \u00fatmutat\u00f3 \u00e9s a Parancs hivatkoz\u00e1s dokumentumot. [delayed_gcode my_delayed_gcode] gcode: # A k\u00e9sleltet\u00e9si id\u0151 letelte ut\u00e1n v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. # A G-Code sablonok t\u00e1mogatottak. Ezt a param\u00e9tert meg kell adni. #initial_duration: 0.0 # A kezdeti k\u00e9sleltet\u00e9s id\u0151tartama (m\u00e1sodpercben). Ha null\u00e1t\u00f3l elt\u00e9r\u0151 # \u00e9rt\u00e9kre van \u00e1ll\u00edtva, a delayed_gcode a megadott sz\u00e1m\u00fa m\u00e1sodpercet # hajtja v\u00e9gre, miut\u00e1n a nyomtat\u00f3 \u201ek\u00e9sz\u201d \u00e1llapotba l\u00e9p. Ez hasznos lehet # inicializ\u00e1l\u00e1si elj\u00e1r\u00e1sok vagy ism\u00e9tl\u0151d\u0151 delayed_gcode eset\u00e9n. Ha 0-ra # van \u00e1ll\u00edtva, a delayed_gcode nem fut le az ind\u00edt\u00e1skor. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. [save_variables] \u00b6 A v\u00e1ltoz\u00f3k lemezre ment\u00e9s\u00e9nek t\u00e1mogat\u00e1sa, hogy azok az \u00fajraind\u00edt\u00e1sok sor\u00e1n is megmaradjanak. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd Parancs hivatkoz\u00e1s \u00e9s a G-k\u00f3d hivatkoz\u00e1s dokumentumot. [save_variables] filename: # K\u00f6telez\u0151 - adj meg egy f\u00e1jlnevet, amelyet a v\u00e1ltoz\u00f3k # lemezre ment\u00e9s\u00e9hez haszn\u00e1lna, pl. ~/variables.cfg [idle_timeout] \u00b6 \u00dcresj\u00e1rati id\u0151t\u00fall\u00e9p\u00e9s. Az \u00fcresj\u00e1rati id\u0151t\u00fall\u00e9p\u00e9s automatikusan enged\u00e9lyezve van. Az alap\u00e9rtelmezett be\u00e1ll\u00edt\u00e1sok m\u00f3dos\u00edt\u00e1s\u00e1hoz adj hozz\u00e1 egy explicit idle_timeout konfigur\u00e1ci\u00f3s szakaszt. [idle_timeout] #gcode: # Az \u00fcresj\u00e1rati id\u0151t\u00fall\u00e9p\u00e9skor v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. # L\u00e1sd a docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d form\u00e1tumhoz. # Az alap\u00e9rtelmezett a \u201eTURN_OFF_HEATERS\u201d \u00e9s \u201eM84\u201d futtat\u00e1sa. #timeout: 600 # A fenti G-k\u00f3d parancsok futtat\u00e1sa el\u0151tti v\u00e1rakoz\u00e1si id\u0151 (m\u00e1sodpercben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a 600 m\u00e1sodperc. V\u00e1laszthat\u00f3 G-k\u00f3d funkci\u00f3k \u00b6 [virtual_sdcard] \u00b6 A virtu\u00e1lis sdcard hasznos lehet, ha a gazdasz\u00e1m\u00edt\u00f3g\u00e9p nem el\u00e9g gyors az OctoPrint megfelel\u0151 futtat\u00e1s\u00e1hoz. Ez lehet\u0151v\u00e9 teszi a Klipper gazdag\u00e9p szoftver sz\u00e1m\u00e1ra, hogy k\u00f6zvetlen\u00fcl kinyomtasd a G-k\u00f3d f\u00e1jlokat, amelyeket a gazdag\u00e9pen l\u00e9v\u0151 k\u00f6nyvt\u00e1rban t\u00e1rolnak a szabv\u00e1nyos sdcard G-k\u00f3d parancsok (pl. M24) haszn\u00e1lat\u00e1val. [virtual_sdcard] path: # A gazdag\u00e9p helyi k\u00f6nyvt\u00e1r\u00e1nak el\u00e9r\u00e9si \u00fatja a G-k\u00f3d f\u00e1jlok keres\u00e9s\u00e9hez. # Ez egy csak olvashat\u00f3 k\u00f6nyvt\u00e1r (az sdcard f\u00e1jl \u00edr\u00e1sa nem t\u00e1mogatott). # Ezt r\u00e1mutathatjuk az OctoPrint felt\u00f6lt\u00e9si k\u00f6nyvt\u00e1r\u00e1ra # (\u00e1ltal\u00e1ban ~/.octoprint/uploads/ ). Ezt a param\u00e9tert meg kell adni. #on_error_gcode: # A hibajelent\u00e9skor v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. [sdcard_loop] \u00b6 N\u00e9h\u00e1ny szakaszok t\u00f6rl\u00e9s\u00e9vel rendelkez\u0151 nyomtat\u00f3, p\u00e9ld\u00e1ul alkatr\u00e9sz-kidob\u00f3 vagy szalagnyomtat\u00f3, haszn\u00e1t veheti az SD-k\u00e1rtya f\u00e1jl hurkolt szakaszainak. (P\u00e9ld\u00e1ul ugyanazon alkatr\u00e9sz \u00fajra \u00e9s \u00fajra t\u00f6rt\u00e9n\u0151 kinyomtat\u00e1s\u00e1hoz, vagy egy alkatr\u00e9sz egy szakasz\u00e1nak megism\u00e9tl\u00e9s\u00e9hez egy l\u00e1nc vagy m\u00e1s ism\u00e9tl\u0151d\u0151 mint\u00e1hoz). A t\u00e1mogatott parancsokat l\u00e1sd a Parancs hivatkoz\u00e1sban . Vagy l\u00e1sd a sample-macros.cfg f\u00e1jlt egy Marlin kompatibilis M808 G-k\u00f3d makr\u00f3\u00e9rt. [sdcard_loop] [force_move] \u00b6 T\u00e1mogatja a l\u00e9peget\u0151motorok k\u00e9zi mozgat\u00e1s\u00e1t diagnosztikai c\u00e9lokra. Figyelem, ennek a funkci\u00f3nak a haszn\u00e1lata a nyomtat\u00f3t \u00e9rv\u00e9nytelen \u00e1llapotba hozhatja. A fontos r\u00e9szletek\u00e9rt l\u00e1sd a Parancs hivatkoz\u00e1s dokumentumot. [force_move] #enable_force_move: False # A FORCE_MOVE \u00e9s a SET_KINEMATIC_POSITION enged\u00e9lyez\u00e9s\u00e9hez # \u00e1ll\u00edtsuk True-ra a kiterjesztett G-k\u00f3d parancsot. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. [pause_resume] \u00b6 Sz\u00fcneteltet\u00e9si/folytat\u00e1si funkci\u00f3 a poz\u00edci\u00f3 r\u00f6gz\u00edt\u00e9s\u00e9nek \u00e9s vissza\u00e1ll\u00edt\u00e1s\u00e1nak t\u00e1mogat\u00e1s\u00e1val. Tov\u00e1bbi inform\u00e1ci\u00f3\u00e9rt l\u00e1sd a Parancs hivatkoz\u00e1s dokumentumot. [pause_resume] #recover_velocity: 50. # Ha a r\u00f6gz\u00edt\u00e9s/vissza\u00e1ll\u00edt\u00e1s enged\u00e9lyezve van, akkor a megadott # sebess\u00e9ggel, t\u00e9r vissza a r\u00f6gz\u00edtett poz\u00edci\u00f3hoz (mm/sec-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50,0 mm/sec. [firmware_retraction] \u00b6 Firmware sz\u00e1l visszah\u00faz\u00e1s. Ez lehet\u0151v\u00e9 teszi a G10 (visszah\u00faz\u00e1s) \u00e9s G11 (visszah\u00faz\u00e1s megsz\u00fcntet\u00e9se) G-k\u00f3d parancsokat, amelyeket sok szeletel\u0151 program haszn\u00e1l. Az al\u00e1bbi param\u00e9terek az ind\u00edt\u00e1si alap\u00e9rtelmezett \u00e9rt\u00e9keket adj\u00e1k meg, b\u00e1r az \u00e9rt\u00e9kek a SET_RETRACTION parancs ) seg\u00edts\u00e9g\u00e9vel m\u00f3dos\u00edthat\u00f3k, lehet\u0151v\u00e9 t\u00e9ve a sz\u00e1lank\u00e9nti be\u00e1ll\u00edt\u00e1sokat \u00e9s a fut\u00e1sidej\u0171 hangol\u00e1st. [firmware_retraction] #retract_length: 0 # A G10 aktiv\u00e1l\u00e1sakor visszah\u00fazand\u00f3 sz\u00e1l hossza (mm-ben), # \u00e9s a G11 aktiv\u00e1l\u00e1sakor visszah\u00fazand\u00f3 (de l\u00e1sd: G11). # unretract_extra_length al\u00e1bb). Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0 mm. #retract_speed: 20 # A beh\u00faz\u00e1s sebess\u00e9ge mm/sec-ben. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 20 mm/sec. #unretract_extra_length: 0 # Az *additional* sz\u00e1l hossza (mm-ben), amelyet hozz\u00e1adunk, # a visszah\u00faz\u00e1s felold\u00e1sakor. #unretract_speed: 10 # A visszah\u00faz\u00e1s felold\u00e1s\u00e1nak sebess\u00e9ge mm/sec-ben. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 10 mm/sec. [gcode_arcs] \u00b6 A G-k\u00f3d \u00edv (G2/G3) parancsok t\u00e1mogat\u00e1sa. [gcode_arcs] #resolution: 1.0 # Egy \u00edv szegmensekre lesz felosztva. Minden szegmens hossza # megegyezik a fent be\u00e1ll\u00edtott felbont\u00e1ssal, mm-ben. Az alacsonyabb # \u00e9rt\u00e9kek finomabb \u00edvet eredm\u00e9nyeznek, de t\u00f6bb munk\u00e1t is v\u00e9geznek # a g\u00e9pen. A be\u00e1ll\u00edtott \u00e9rt\u00e9kn\u00e9l kisebb \u00edvek egyenesekk\u00e9 v\u00e1lnak. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1 mm. [respond] \u00b6 Enged\u00e9lyezd az \"M118\" \u00e9s \"RESPOND\" kiterjesztett parancsokat . [respond] #default_type: echo # Be\u00e1ll\u00edtja az \"M118\" \u00e9s a \"RESPOND\" kimenet alap\u00e9rtelmezett el\u0151tagj\u00e1t # a k\u00f6vetkez\u0151k egyik\u00e9re: # echo: \"echo: \" (Ez az alap\u00e9rtelmezett) # command: \"// \" # error: \"!! \" #default_prefix: echo: # K\u00f6zvetlen\u00fcl be\u00e1ll\u00edtja az alap\u00e9rtelmezett el\u0151tagot. Ha jelen van, ez az # \u00e9rt\u00e9k fel\u00fcl\u00edrja a \u201edefault_type\u201d \u00e9rt\u00e9ket. [exclude_object] \u00b6 Lehet\u0151v\u00e9 teszi az egyes objektumok kiz\u00e1r\u00e1s\u00e1nak vagy t\u00f6rl\u00e9s\u00e9nek t\u00e1mogat\u00e1s\u00e1t a nyomtat\u00e1si folyamat sor\u00e1n. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a kiz\u00e1rand\u00f3 objektumok \u00fatmutat\u00f3t \u00e9s a parancsreferenci\u00e1t . L\u00e1sd a sample-macros.cfg f\u00e1jlt egy Marlin/RepRapFirmware kompatibilis M486 G-k\u00f3d makr\u00f3hoz. [exclude_object] Rezonancia kompenz\u00e1ci\u00f3 \u00b6 [input_shaper] \u00b6 Enged\u00e9lyezi a rezonancia kompenz\u00e1ci\u00f3t . L\u00e1sd m\u00e9g a parancsreferencia dokumentumot. [input_shaper] #shaper_freq_x: 0 # A bemeneti v\u00e1ltoz\u00f3 frekvenci\u00e1ja (Hz-ben) az X tengelyhez. Ez \u00e1ltal\u00e1ban # az X tengely rezonanciafrekvenci\u00e1ja, amelyet a bemeneti v\u00e1ltoz\u00f3knak # el kell nyomnia. Bonyolultabb v\u00e1ltoz\u00f3k, p\u00e9ld\u00e1ul 2- \u00e9s 3-hull\u00e1mos EI # bemeneti v\u00e1ltoz\u00f3k eset\u00e9n ez a param\u00e9ter k\u00fcl\u00f6nb\u00f6z\u0151 szempontok # alapj\u00e1n \u00e1ll\u00edthat\u00f3 be. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, ami letiltja az X # tengely bemeneti v\u00e1ltoz\u00e1s\u00e1t. #shaper_freq_y: 0 # Az Y tengely bemeneti v\u00e1ltoz\u00f3j\u00e1nak frekvenci\u00e1ja (Hz-ben). Ez \u00e1ltal\u00e1ban # az Y tengely rezonanciafrekvenci\u00e1ja, amelyet a bemeneti v\u00e1ltoz\u00f3knak # el kell nyomnia. Bonyolultabb v\u00e1ltoz\u00f3k, p\u00e9ld\u00e1ul 2- \u00e9s 3-hull\u00e1mos EI # bemeneti v\u00e1ltoz\u00f3k eset\u00e9n ez a param\u00e9ter k\u00fcl\u00f6nb\u00f6z\u0151 szempontok # alapj\u00e1n \u00e1ll\u00edthat\u00f3 be. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, ami letiltja az Y # tengely bemeneti v\u00e1ltoz\u00e1s\u00e1t. #shaper_type: mzv # A bemeneti v\u00e1ltoz\u00f3k t\u00edpusa az X \u00e9s az Y tengelyekhez. A t\u00e1mogatott # v\u00e1ltoz\u00f3k a zv, mzv, zvd, ei, 2hump_ei \u00e9s 3hump_ei. Az alap\u00e9rtelmezett # bemeneti v\u00e1ltoz\u00f3 az mzv. #shaper_type_x: #shaper_type_y: # Ha a shaper_type nincs be\u00e1ll\u00edtva, akkor ez a k\u00e9t param\u00e9ter haszn\u00e1lhat\u00f3 # k\u00fcl\u00f6nb\u00f6z\u0151 bemeneti v\u00e1ltoz\u00f3k konfigur\u00e1l\u00e1s\u00e1ra az X \u00e9s Y tengelyekhez. # Ugyanazok az \u00e9rt\u00e9kek t\u00e1mogatottak, mint a shaper_type param\u00e9tern\u00e9l. #damping_ratio_x: 0,1 #damping_ratio_y: 0,1 # Az X \u00e9s Y tengely rezg\u00e9s\u00e9nek csillap\u00edt\u00e1si ar\u00e1nyai, amelyeket a bemeneti # v\u00e1ltoz\u00f3k haszn\u00e1lnak a rezg\u00e9selnyom\u00e1s jav\u00edt\u00e1s\u00e1ra. Az alap\u00e9rtelmezett # \u00e9rt\u00e9k 0,1, ami a legt\u00f6bb nyomtat\u00f3 sz\u00e1m\u00e1ra j\u00f3 \u00e1ltal\u00e1nos \u00e9rt\u00e9k. A legt\u00f6bb # esetben ez a param\u00e9ter nem ig\u00e9nyel hangol\u00e1st, \u00e9s nem szabad # megv\u00e1ltoztatni. [adxl345] \u00b6 ADXL345 gyorsul\u00e1sm\u00e9r\u0151k t\u00e1mogat\u00e1sa. Ez a t\u00e1mogat\u00e1s lehet\u0151v\u00e9 teszi a gyorsul\u00e1sm\u00e9r\u0151 m\u00e9r\u00e9seinek lek\u00e9rdez\u00e9s\u00e9t az \u00e9rz\u00e9kel\u0151t\u0151l. Ez lehet\u0151v\u00e9 teszi az ACCELEROMETER_MEASURE parancsot (tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a G-k\u00f3dok dokumentumot). Az alap\u00e9rtelmezett chipn\u00e9v \"default\", de megadhatunk egy explicit nevet (pl. [adxl345 my_chip_name]). [adxl345] cs_pin: # Az \u00e9rz\u00e9kel\u0151 SPI enged\u00e9lyez\u0151 t\u0171je. Ezt a param\u00e9tert meg kell adni. #spi_speed: 5000000 # A chippel val\u00f3 kommunik\u00e1ci\u00f3 sor\u00e1n haszn\u00e1land\u00f3 SPI sebess\u00e9g (hz-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5000000. #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # L\u00e1sd az \"\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\" c\u00edm\u0171 szakaszt a # fenti param\u00e9terek le\u00edr\u00e1s\u00e1hoz. #axes_map: x, y, z # A gyorsul\u00e1sm\u00e9r\u0151 a nyomtat\u00f3 X, Y \u00e9s Z tengelyeihez kell. # Ez akkor lehet hasznos, ha a gyorsul\u00e1sm\u00e9r\u0151 olyan # orient\u00e1ci\u00f3ban van beszerelve, amely nem egyezik a nyomtat\u00f3\u00e9val. # Ebben az eset\u00e9ben p\u00e9ld\u00e1ul be\u00e1ll\u00edthatjuk ezt az \"Y, X, Z\" \u00e9rt\u00e9kre, # hogy felcser\u00e9lj\u00fck az X \u00e9s Y tengelyeket. Lehet\u0151s\u00e9g van arra is, hogy # neg\u00e1ljunk egy tengelyt, ha a gyorsul\u00e1sm\u00e9r\u0151 ir\u00e1nya ford\u00edtott # (pl. \"X, Z, -Y\"). Az alap\u00e9rtelmezett \u00e9rt\u00e9k \"X, Y, Z\",. #rate: 3200 # Kimeneti adat\u00e1tviteli sebess\u00e9g az ADXL345 eset\u00e9ben. Az ADXL345 # a k\u00f6vetkez\u0151 sebess\u00e9geket t\u00e1mogatja: 3200, 1600, 800, 400, 200, # 100, 50 \u00e9s 25. Vedd figyelembe, hogy nem aj\u00e1nlott megv\u00e1ltoztatni # ezt a sebess\u00e9get az alap\u00e9rtelmezett 3200-r\u00f3l, \u00e9s a 800 alatti # sebess\u00e9gek jelent\u0151sen befoly\u00e1solj\u00e1k a rezonancia m\u00e9r\u00e9s # eredm\u00e9nyeinek min\u0151s\u00e9g\u00e9t. [mpu9250] \u00b6 Az mpu9250 \u00e9s mpu6050 gyorsul\u00e1sm\u00e9r\u0151k t\u00e1mogat\u00e1sa (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"mpu9250\" el\u0151taggal). [mpu9250 my_accelerometer] #i2c_address: # Az alap\u00e9rtelmezett 104 (0x68). #i2c_mcu: #i2c_bus: #i2c_speed: 400000 # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az # \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" r\u00e9szben. # Az alap\u00e9rtelmezett \"i2c_speed\" 400000. #axes_map: x, y, z # Err\u0151l a param\u00e9terr\u0151l az \"adxl345\" szakaszban olvashat b\u0151vebben. [resonance_tester] \u00b6 A rezonancia tesztel\u00e9s \u00e9s az automatikus bemeneti alak\u00edt\u00f3 kalibr\u00e1ci\u00f3 t\u00e1mogat\u00e1sa. A modul legt\u00f6bb funkci\u00f3j\u00e1nak haszn\u00e1lat\u00e1hoz tov\u00e1bbi szoftverf\u00fcgg\u0151s\u00e9geket kell telep\u00edteni; tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt olvasd el a Rezonanci\u00e1k m\u00e9r\u00e9se \u00e9s a parancs hivatkoz\u00e1s c\u00edm\u0171 dokumentumot. A rezonanci\u00e1k m\u00e9r\u00e9se c\u00edm\u0171 \u00fatmutat\u00f3 Max sim\u00edt\u00e1s szakasz\u00e1ban tov\u00e1bbi inform\u00e1ci\u00f3kat tal\u00e1l a max_smoothing param\u00e9terr\u0151l \u00e9s annak haszn\u00e1lat\u00e1r\u00f3l. [resonance_tester] #probe_points: # A rezonanci\u00e1k tesztel\u00e9s\u00e9hez sz\u00fcks\u00e9ges pontok X, Y, Z koordin\u00e1t\u00e1inak # list\u00e1ja (soronk\u00e9nt egy pont). Legal\u00e1bb egy pont sz\u00fcks\u00e9ges. # Gy\u0151z\u0151dj meg r\u00f3la, hogy minden pont az X-Y s\u00edkban n\u00e9mi # biztons\u00e1gi tartal\u00e9kkal rendelkezik \u00e9s (~ n\u00e9h\u00e1ny centim\u00e9ter) # el\u00e9rhet\u0151ek a nyomtat\u00f3fejjel. #accel_chip: # A m\u00e9r\u00e9sekhez haszn\u00e1lt gyorsul\u00e1sm\u00e9r\u0151 chip neve. Ha adxl345 chipet # explicit n\u00e9v n\u00e9lk\u00fcl defini\u00e1lt\u00e1k, ez a param\u00e9ter egyszer\u0171en # hivatkozhat r\u00e1 \"accel_chip: adxl345\"-k\u00e9nt, ellenkez\u0151 esetben egy # \"accel_chip: adxl345\" param\u00e9tert kell megadni. Explicit nevet is meg # kell adni, pl. \"accel_chip: adxl345\" my_chip_n\u00e9v\". # Vagy ezt, vagy a k\u00f6vetkez\u0151 k\u00e9t param\u00e9tert kell be\u00e1ll\u00edtani. #accel_chip_x: #accel_chip_y: # Az egyes tengelyek m\u00e9r\u00e9s\u00e9hez haszn\u00e1land\u00f3 gyorsul\u00e1sm\u00e9r\u0151 chipek # neve. Hasznos lehet p\u00e9ld\u00e1ul a t\u00e1rgyasztal cs\u00fasztat\u00f3s nyomtat\u00f3n\u00e1l, ha k\u00e9t # k\u00fcl\u00f6n gyorsul\u00e1sm\u00e9r\u0151 van felszerelve a t\u00e1rgyasztalra (az Y tengelyhez) \u00e9s a # nyomtat\u00f3fejre (az X tengelyhez). Ezek a param\u00e9terek ugyanolyan # form\u00e1tum\u00faak, mint az \"accel_chip\" param\u00e9ter. Csak az 'accel_chip' # vagy ez a k\u00e9t param\u00e9tert kell megadni. #max_smoothing: # Az egyes tengelyek maxim\u00e1lis bemeneti alak\u00edt\u00f3 sim\u00edt\u00e1sa az alak\u00edt\u00f3 # automatikus kalibr\u00e1l\u00e1sa sor\u00e1n (a 'SHAPER_CALIBRATE' paranccsal). # Alap\u00e9rtelmez\u00e9s szerint nincs megadva maxim\u00e1lis sim\u00edt\u00e1s. # L\u00e1sd a Measuring_Resonances \u00fatmutat\u00f3t. a funkci\u00f3 haszn\u00e1lat\u00e1nak # tov\u00e1bbi r\u00e9szletei\u00e9rt. #min_freq: 5 # Minim\u00e1lis frekvencia a rezonancia vizsg\u00e1lat\u00e1hoz. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5 Hz. #max_freq: 133.33 # Maxim\u00e1lis frekvencia a rezonancia vizsg\u00e1lat\u00e1hoz. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 133,33 Hz. #accel_per_hz: 75 # Ez a param\u00e9ter annak meghat\u00e1roz\u00e1s\u00e1ra szolg\u00e1l, hogy egy adott # frekvencia tesztel\u00e9s\u00e9hez milyen gyorsul\u00e1st haszn\u00e1ljunk: # accel = accel_per_hz * freq. Min\u00e9l nagyobb az \u00e9rt\u00e9k, ann\u00e1l nagyobb # a rezg\u00e9sek energi\u00e1ja. Az alap\u00e9rtelmezett \u00e9rt\u00e9kn\u00e9l alacsonyabbra is # be\u00e1ll\u00edthat\u00f3, ha a rezonanci\u00e1k t\u00fal er\u0151sek lesznek a nyomtat\u00f3n. # Az alacsonyabb \u00e9rt\u00e9kek azonban a nagyfrekvenci\u00e1s rezonanci\u00e1k # m\u00e9r\u00e9s\u00e9t pontatlanabb\u00e1 teszik. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 75 (mm/sec). #hz_per_sec: 1 # Meghat\u00e1rozza a teszt sebess\u00e9g\u00e9t. A [min_freq, max_freq] # tartom\u00e1nyban l\u00e9v\u0151 \u00f6sszes frekvencia tesztel\u00e9sekor a frekvencia # minden m\u00e1sodpercben hz_per_sec \u00e9rt\u00e9kkel n\u0151. A kis \u00e9rt\u00e9kek # lass\u00fav\u00e1 teszik a tesztet, a nagy \u00e9rt\u00e9kek pedig cs\u00f6kkentik a teszt # pontoss\u00e1g\u00e1t. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0 (Hz/sec == sec^-2). Konfigur\u00e1ci\u00f3s f\u00e1jl seg\u00e9dletek \u00b6 [board_pins] \u00b6 Alaplap t\u0171 \u00e1lnevek (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t defini\u00e1lhatunk \"board_pins\" el\u0151taggal). Ezzel defini\u00e1lhat \u00e1lneveket a mikrokontroller t\u0171ihez. [board_pins my_aliases] mcu: mcu # Az \u00e1lneveket haszn\u00e1l\u00f3 mikrovez\u00e9rl\u0151k vessz\u0151vel elv\u00e1lasztott list\u00e1ja. # Az alap\u00e9rtelmez\u00e9s szerint az \u00e1lneveket a f\u0151 \"mcu\"-ra kell alkalmazni. aliases: aliases_<name>: # A \"name=value\" \u00e1lnevek vessz\u0151vel elv\u00e1lasztott list\u00e1ja, amelyet az # adott mikrovez\u00e9rl\u0151h\u00f6z kell l\u00e9trehozni. P\u00e9ld\u00e1ul az \"EXP1_1=PE6\" # egy \"EXP1_1\" \u00e1lnevet hoz l\u00e9tre a \"PE6\" t\u0171h\u00f6z. Ha azonban a \"value\" # a \"<>\" k\u00f6z\u00e9 van z\u00e1rva, akkor a \"name\" lefoglalt t\u0171k\u00e9nt j\u00f6n l\u00e9tre # (p\u00e9ld\u00e1ul az \"EXP1_9=<GND>\" az \"EXP1_9\"-et foglaln\u00e1 le). B\u00e1rmilyen # sz\u00e1m\u00fa \"aliases_\" karakterrel kezd\u0151d\u0151 opci\u00f3 megadhat\u00f3. [include] \u00b6 Include f\u00e1jl t\u00e1mogat\u00e1s. A nyomtat\u00f3 f\u0151 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1hoz tov\u00e1bbi konfigur\u00e1ci\u00f3s f\u00e1jlokat lehet csatolni. Helyettes\u00edt\u0151 karakterek is haszn\u00e1lhat\u00f3k (pl. \"configs/*.cfg\"). [include my_other_config.cfg] [duplicate_pin_override] \u00b6 Ez az eszk\u00f6z lehet\u0151v\u00e9 teszi, hogy egyetlen mikrokontroller-t\u0171t t\u00f6bbsz\u00f6r defini\u00e1ljon egy konfigur\u00e1ci\u00f3s f\u00e1jlban a szok\u00e1sos hibajelent\u00e9s n\u00e9lk\u00fcl. Ez diagnosztikai \u00e9s hibakeres\u00e9si c\u00e9lokra szolg\u00e1l. Erre a szakaszra nincs sz\u00fcks\u00e9g ott, ahol a Klipper t\u00e1mogatja ugyanazon t\u0171 t\u00f6bbsz\u00f6ri haszn\u00e1lat\u00e1t, \u00e9s ennek a fel\u00fclb\u00edr\u00e1latnak a haszn\u00e1lata zavaros \u00e9s v\u00e1ratlan eredm\u00e9nyeket okozhat. [duplicate_pin_override] pins: # Azok a t\u0171k vessz\u0151vel elv\u00e1lasztott list\u00e1ja, amelyek t\u00f6bbsz\u00f6r # haszn\u00e1lhat\u00f3k egy konfigur\u00e1ci\u00f3s f\u00e1jlban norm\u00e1l hibajelent\u00e9s # n\u00e9lk\u00fcl. Ezt a param\u00e9tert meg kell adni. T\u00e1rgyasztal szintez\u0151 hardver \u00b6 [probe] \u00b6 Z magass\u00e1gm\u00e9r\u0151 szonda. Ezt a szakaszt a Z magass\u00e1gm\u00e9r\u0151 hardver enged\u00e9lyez\u00e9s\u00e9hez lehet defini\u00e1lni. Ha ez a szakasz enged\u00e9lyezve van, a PROBE \u00e9s a QUERY_PROBE kiterjesztett G-k\u00f3d parancsok el\u00e9rhet\u0151v\u00e9 v\u00e1lnak. L\u00e1sd m\u00e9g a szonda kalibr\u00e1l\u00e1si \u00fatmutat\u00f3t . A szondaszekci\u00f3 l\u00e9trehoz egy virtu\u00e1lis \"probe:z_virtual_endstop\" t\u0171t is. A stepper_z endstop_pin-t erre a virtu\u00e1lis t\u0171re \u00e1ll\u00edthatjuk a cartesian st\u00edlus\u00fa nyomtat\u00f3kon, amelyek a szond\u00e1t haszn\u00e1lj\u00e1k a Z v\u00e9g\u00e1ll\u00e1s helyett. Ha a \"probe:z_virtual_endstop\" t\u00edpust haszn\u00e1ljuk, akkor ne defini\u00e1ljunk position_endsto-pot a stepper_z konfigur\u00e1ci\u00f3s szakaszban. [probe] pin: # Szonda \u00e9rz\u00e9kel\u00e9si t\u0171. Ha a t\u0171 m\u00e1s mikrokontrolleren van, mint a Z # l\u00e9ptet\u0151k\u00f6n, akkor enged\u00e9lyezi a \"multi-mcu homing\"-ot. # Ezt a param\u00e9tert meg kell adni. #deactivate_on_each_sample: True # Ez hat\u00e1rozza meg, hogy a Klippernek v\u00e9gre kell-e hajtania a deaktiv\u00e1l\u00f3 # G-k\u00f3dot minden egyes vizsg\u00e1lati k\u00eds\u00e9rlet k\u00f6z\u00f6tt, amikor t\u00f6bb vizsg\u00e1lati # sorozatot hajt v\u00e9gre. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #x_offset: 0.0 # A t\u00e1vols\u00e1g (mm-ben) a szonda \u00e9s a f\u00fav\u00f3ka k\u00f6z\u00f6tt az X tengely ment\u00e9n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #y_offset: 0.0 # A szonda \u00e9s a f\u00fav\u00f3ka k\u00f6z\u00f6tti t\u00e1vols\u00e1g (mm-ben) az Y tengely ment\u00e9n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. z_offset: # A t\u00e1rgyasztal \u00e9s a f\u00fav\u00f3ka k\u00f6z\u00f6tti t\u00e1vols\u00e1g (mm-ben), amikor a szonda kiold. # Ezt a param\u00e9tert meg kell adni. #speed: 5.0 # A Z tengely sebess\u00e9ge (mm/sec-ben) tapint\u00e1skor. # Az alap\u00e9rtelmezett 5 mm/sec. #samples: 1 # Az egyes pontok m\u00e9r\u00e9s\u00e9nek sz\u00e1ma. # A vizsg\u00e1lt Z-\u00e9rt\u00e9kek \u00e1tlagol\u00e1sra ker\u00fclnek. # Az alap\u00e9rtelmezett az 1-szeri m\u00e9r\u00e9s. #sample_retract_dist: 2.0 # A nyomtat\u00f3fej felemel\u00e9s\u00e9nek t\u00e1vols\u00e1ga (mm-ben) az egyes m\u00e9r\u00e9sek # k\u00f6z\u00f6tt (egyn\u00e9l t\u00f6bbsz\u00f6ri m\u00e9r\u00e9s eset\u00e9n). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 2 mm. #lift_speed: # A Z tengely sebess\u00e9ge (mm/sec-ben) a szonda felemel\u00e9sekor a m\u00e9r\u00e9sek # k\u00f6z\u00f6tt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k ugyanaz, mint a \u201espeed\u201d param\u00e9tern\u00e9l. #samples_result: average # A sz\u00e1m\u00edt\u00e1si m\u00f3dszer t\u00f6bbsz\u00f6ri m\u00e9r\u00e9s eset\u00e9n \u201emedian\u201d vagy \u201eaverage\u201d. # Az alap\u00e9rtelmezett az average. #samples_tolerance: 0.100 # Az a maxim\u00e1lis Z t\u00e1vols\u00e1g (mm-ben), amellyel egy minta elt\u00e9rhet m\u00e1s # mint\u00e1kt\u00f3l. Ha ezt a t\u0171r\u00e9shat\u00e1rt t\u00fall\u00e9pik, akkor vagy hib\u00e1t jelez, vagy a # k\u00eds\u00e9rlet \u00fajraindul (l\u00e1sd: samples_tolerance_retries). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a 0,100 mm. #samples_tolerance_retries: 0 # Az \u00fajrapr\u00f3b\u00e1lkoz\u00e1sok sz\u00e1ma, ha olyan m\u00e9r\u00e9st csin\u00e1l, amely meghaladja a # samples_tolerance \u00e9rt\u00e9ket. \u00dajrapr\u00f3b\u00e1lkoz\u00e1skor az \u00f6sszes jelenlegi m\u00e9r\u00e9st # eldobja, \u00e9s a m\u00e9r\u00e9si k\u00eds\u00e9rlet \u00fajraindul. Ha a megadott sz\u00e1m\u00fa # \u00fajrapr\u00f3b\u00e1lkoz\u00e1s sor\u00e1n nem \u00e9rkezik \u00e9rv\u00e9nyes m\u00e9r\u00e9sk\u00e9szlet, akkor # hiba\u00fczenet jelenik meg. Az alap\u00e9rtelmezett nulla, ami hib\u00e1t okoz az els\u0151 # m\u00e9r\u00e9sen, amely meghaladja a samples_tolerance \u00e9rt\u00e9ket. #activate_gcode: # Az egyes m\u00e9r\u00e9si k\u00eds\u00e9rletek el\u0151tt v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. # L\u00e1sd a docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d form\u00e1tumhoz. Ez # akkor lehet hasznos, ha a szond\u00e1t valamilyen m\u00f3don aktiv\u00e1lni kell. Ne # adj ki itt olyan parancsot, amely mozgatja a nyomtat\u00f3fejet (pl. G1). # Az alap\u00e9rtelmez\u00e9s szerint nem fut semmilyen speci\u00e1lis G-k\u00f3d parancs # aktiv\u00e1l\u00e1skor. #deactivate_gcode: # Az egyes m\u00e9r\u00e9si k\u00eds\u00e9rletek befejez\u00e9se ut\u00e1n v\u00e9grehajtand\u00f3 G-k\u00f3d # parancsok list\u00e1ja. L\u00e1sd a docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d # form\u00e1tumhoz. Ne adj ki itt olyan parancsot, amely mozgatja a # nyomtat\u00f3fejet. Az alap\u00e9rtelmez\u00e9s az, hogy deaktiv\u00e1l\u00e1skor ne futtassunk # semmilyen speci\u00e1lis G-k\u00f3d parancsot. [bltouch] \u00b6 BLTouch szonda. Ezt a szakaszt (a szondaszakasz helyett) a BLTouch szonda enged\u00e9lyez\u00e9s\u00e9hez lehet defini\u00e1lni. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a BL-Touch \u00fatmutat\u00f3 \u00e9s a parancsreferencia c\u00edm\u0171 dokumentumot. Egy virtu\u00e1lis \"probe:z_virtual_endstop\" t\u0171 is l\u00e9trej\u00f6n (a r\u00e9szleteket l\u00e1sd a \"probe\" szakaszban). [bltouch] sensor_pin: # A BLTouch \u00e9rz\u00e9kel\u0151 \u00e9rintkez\u0151j\u00e9hez csatlakoztatott t\u0171. A legt\u00f6bb # BLTouch eszk\u00f6z megk\u00f6veteli az \u00e9rz\u00e9kel\u0151 \u00e9rintkez\u0151j\u00e9nek felh\u00faz\u00e1s\u00e1t # (a t\u0171n\u00e9v el\u00e9 illessze be a \"^\" karaktert). # Ezt a param\u00e9tert meg kell adni. control_pin: # A BLTouch vez\u00e9rl\u0151t\u0171j\u00e9hez csatlakoztatott t\u0171. # Ezt a param\u00e9tert meg kell adni. #pin_move_time: 0.680 # Az az id\u0151 (m\u00e1sodpercben), ameddig v\u00e1rni kell, am\u00edg a BLTouch t\u0171 # felfel\u00e9 vagy lefel\u00e9 mozog. Az alap\u00e9rtelmezett 0,680 m\u00e1sodperc. #stow_on_each_sample: True # Ez hat\u00e1rozza meg, hogy a Klippernek utas\u00edtania kell-e a t\u0171t, hogy # mozogjon felfel\u00e9 az egyes m\u00e9r\u00e9si k\u00eds\u00e9rletek k\u00f6z\u00f6tt, amikor t\u00f6bb # m\u00e9r\u00e9si sorozatot hajt v\u00e9gre. Miel\u0151tt False \u00e9rt\u00e9kre \u00e1ll\u00edtan\u00e1, olvasd # el a docs/BLTouch.md utas\u00edt\u00e1sait. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #probe_with_touch_mode: False # Ha ez True \u00e9rt\u00e9kre van \u00e1ll\u00edtva, akkor a Klipper \"touch_mode\" # m\u00f3dban vizsg\u00e1lja az eszk\u00f6zt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k False # (tapint\u00e1s \"pin_down\" m\u00f3dban). #pin_up_reports_not_triggered: True # \u00c1ll\u00edtsd be, hogy a BLTouch k\u00f6vetkezetesen \u201enot triggered\u201d # \u00e1llapotban jelentse-e a m\u00e9r\u00e9st a sikeres \u201epin_up\u201d parancs ut\u00e1n. # Ennek True-nak kell lennie minden eredeti BLTouch eszk\u00f6zn\u00e9l. # Miel\u0151tt False \u00e9rt\u00e9kre \u00e1ll\u00edtan\u00e1, olvasd el a docs/BLTouch.md # utas\u00edt\u00e1sait. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #pin_up_touch_mode_reports_triggered: True # \u00c1ll\u00edtsd be, hogy a BLTouch k\u00f6vetkezetesen \"triggered\" \u00e1llapotot # jelentse-e a \"pin_up\" parancs k\u00f6vesse a \"touch_mode\" parancsot. # Ennek True-nak kell lennie minden eredeti BLTouch eszk\u00f6zn\u00e9l. # Miel\u0151tt False \u00e9rt\u00e9kre \u00e1ll\u00edtan\u00e1, olvasd el a docs/BLTouch.md # utas\u00edt\u00e1sait. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #set_output_mode: # K\u00e9rj egy adott \u00e9rz\u00e9kel\u0151t\u0171s kimeneti m\u00f3dot a BLTouch V3.0 # (\u00e9s \u00fajabb) k\u00e9sz\u00fcl\u00e9ken. Ezt a be\u00e1ll\u00edt\u00e1st nem szabad m\u00e1s t\u00edpus\u00fa # szond\u00e1kon haszn\u00e1lni. \u00c1ll\u00edtsd \"5V\"-ra, ha 5 V-os \u00e9rz\u00e9kel\u0151t\u0171s # kimenetet k\u00edv\u00e1n k\u00e9rni (csak akkor haszn\u00e1ld, ha a vez\u00e9rl\u0151k\u00e1rty\u00e1nak # 5 V-os \u00fczemm\u00f3dra van sz\u00fcks\u00e9ge, \u00e9s 5 V-ot toler\u00e1l a bemeneti # jelvezet\u00e9k\u00e9n). \u00c1ll\u00edtsd \u201eOD\u201d \u00e9rt\u00e9kre, hogy az \u00e9rz\u00e9kel\u0151 \u00e9rintkez\u0151j\u00e9nek # kimenete nyitott leereszt\u00e9si m\u00f3dot haszn\u00e1ljon. # Az alap\u00e9rtelmezett az, hogy nem k\u00e9r kimeneti m\u00f3dot. #x_offset: #y_offset: #z_offset: #speed: #lift_speed: #samples: #sample_retract_dist: #samples_result: #samples_tolerance: #samples_tolerance_retries: # A param\u00e9terekkel kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a \"szonda\" r\u00e9szt. [smart_effector] \u00b6 A \"Smart Effector\" a Duet3d-t\u0151l egy Z-szond\u00e1t val\u00f3s\u00edt meg egy er\u0151\u00e9rz\u00e9kel\u0151 seg\u00edts\u00e9g\u00e9vel. Ezt a r\u00e9szt a [probe] helyett defini\u00e1lhatjuk a Smart Effector specifikus funkci\u00f3inak enged\u00e9lyez\u00e9s\u00e9hez. Ez lehet\u0151v\u00e9 teszi a fut\u00e1sidej\u0171 parancsok haszn\u00e1lat\u00e1t is a Smart Effector param\u00e9tereinek fut\u00e1sidej\u0171 be\u00e1ll\u00edt\u00e1s\u00e1hoz. [smart_effector] pin: # A Smart Effector Z Probe kimeneti t\u0171j\u00e9hez (5. csap) csatlakoztatott t\u0171. Vedd # figyelembe, hogy a lapon l\u00e9v\u0151 pullup ellen\u00e1ll\u00e1s \u00e1ltal\u00e1ban nem sz\u00fcks\u00e9ges. # Ha azonban a kimeneti t\u0171n pullup ellen\u00e1ll\u00e1ssal csatlakoztatj\u00e1k a lapon # l\u00e9v\u0151 t\u0171h\u00f6z, akkor ennek az ellen\u00e1ll\u00e1snak nagy \u00e9rt\u00e9k\u0171nek kell lennie # (pl. 10K Ohm vagy t\u00f6bb). N\u00e9h\u00e1ny lapon alacsony \u00e9rt\u00e9k\u0171 pullup ellen\u00e1ll\u00e1s # van a Z szonda bemenet\u00e9n, ami val\u00f3sz\u00edn\u0171leg egy mindig kioldott szonda # \u00e1llapotot fog eredm\u00e9nyezni. Ebben az esetben csatlakoztassa a # Smart Effector-t a k\u00f6vetkez\u0151h\u00f6z a k\u00e1rtya egy m\u00e1sik t\u0171j\u00e9hez. # Ez a param\u00e9ter sz\u00fcks\u00e9ges. #control_pin: # A Smart Effector vez\u00e9rl\u0151 bemeneti pinj\u00e9hez (7-es pin) csatlakoztatott pin. # Ha van, a Smart Effector \u00e9rz\u00e9kenys\u00e9g programoz\u00e1si parancsai v\u00e1lnak # el\u00e9rhet\u0151v\u00e9. #probe_accel: # Ha be van \u00e1ll\u00edtva, korl\u00e1tozza a tapogat\u00f3 mozg\u00e1sok gyorsul\u00e1s\u00e1t # (mm/sec^2-ben). A hirtelen nagy gyorsul\u00e1s a tapogat\u00f3 mozg\u00e1s kezdet\u00e9n # t\u00e9ves tapint\u00e1sind\u00edt\u00e1st okozhat, k\u00fcl\u00f6n\u00f6sen, ha a hotend neh\u00e9z. Ennek # megakad\u00e1lyoz\u00e1s\u00e1ra sz\u00fcks\u00e9g lehet a gyorsul\u00e1s cs\u00f6kkent\u00e9s\u00e9re a # szond\u00e1z\u00f3 mozg\u00e1sok gyorsul\u00e1s\u00e1val ezzel a param\u00e9terrel. #recovery_time: 0.4 # Az utaz\u00e1si mozg\u00e1sok \u00e9s a tapogat\u00f3 mozg\u00e1sok k\u00f6z\u00f6tti k\u00e9sleltet\u00e9s # m\u00e1sodpercben. A szond\u00e1z\u00e1s el\u0151tti gyors mozgat\u00e1s t\u00e9ves # szondakapcsol\u00e1st eredm\u00e9nyezhet. Ez \"A szonda a mozg\u00e1st megel\u0151z\u0151en # kioldott\" hib\u00e1t okozhat, ha nincs k\u00e9sleltet\u00e9s be\u00e1ll\u00edtva. # A 0 \u00e9rt\u00e9k kikapcsolja a helyre\u00e1ll\u00edt\u00e1si k\u00e9sleltet\u00e9st. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,4. #x_offset: #y_offset: # Nem kell be\u00e1ll\u00edtani (vagy 0-ra kell \u00e1ll\u00edtani). z_offset: # A szonda kiold\u00e1si magass\u00e1ga. Kezd -0,1 (mm) \u00e9rt\u00e9kkel, \u00e9s k\u00e9s\u0151bb # \u00e1ll\u00edtsd be a k\u00f6vetkez\u0151vel `PROBE_CALIBRATE` paranccsal. # Ezt a param\u00e9tert meg kell adni. #speed: # A Z tengely sebess\u00e9ge (mm/sec-ben) tapogat\u00e1skor. Javasoljuk, hogy a # tapint\u00e1si sebess\u00e9get 20 mm/sec sebess\u00e9ggel kezdj\u00fck, \u00e9s sz\u00fcks\u00e9g # szerint \u00e1ll\u00edtsuk be, hogy jav\u00edtsuk a a tapint\u00e1s kiold\u00e1s\u00e1nak pontoss\u00e1g\u00e1t # \u00e9s megism\u00e9telhet\u0151s\u00e9g\u00e9t. #samples: #sample_retract_dist: #samples_result: #samples_tolerance: #samples_tolerance_retries: #activate_gcode: #deactivate_gcode: #deactivate_on_each_sample: # A fenti param\u00e9terekkel kapcsolatos tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt # l\u00e1sd a \"szonda\" r\u00e9szt. Tov\u00e1bbi l\u00e9ptet\u0151motorok \u00e9s extruderek \u00b6 [stepper_z1] \u00b6 T\u00f6bb l\u00e9ptet\u0151motoros tengelyek. Egy cartesian st\u00edlus\u00fa nyomtat\u00f3n\u00e1l az adott tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 tov\u00e1bbi konfigur\u00e1ci\u00f3s blokkokkal rendelkezhet, amelyek olyan l\u00e9ptet\u0151ket hat\u00e1roznak meg, amelyeket az els\u0151dleges l\u00e9ptet\u0151vel egy\u00fctt kell l\u00e9ptetni. B\u00e1rmennyi szakasz defini\u00e1lhat\u00f3 1-t\u0151l kezd\u0151d\u0151 numerikus ut\u00f3taggal (p\u00e9ld\u00e1ul \"stepper_z1\", \"stepper_z2\" stb.). [stepper_z1] #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: # A fenti param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd a \"l\u00e9ptet\u0151\" r\u00e9szt. #endstop_pin: # Ha egy endstop_pin defini\u00e1lva van a kieg\u00e9sz\u00edt\u0151 l\u00e9ptet\u0151h\u00f6z, akkor # a l\u00e9ptet\u0151 visszat\u00e9r, am\u00edg az v\u00e9g\u00e1ll\u00e1s ki nem v\u00e1lt. Ellenkez\u0151 esetben # a l\u00e9ptet\u0151 mindaddig visszat\u00e9r, am\u00edg a tengely els\u0151dleges # l\u00e9ptet\u0151j\u00e9nek v\u00e9g\u00e1ll\u00e1skapcsol\u00f3ja ki nem v\u00e1lt. [extruder1] \u00b6 T\u00f6bb extruderes nyomtat\u00f3 eset\u00e9n minden tov\u00e1bbi extruder ut\u00e1n adj hozz\u00e1 egy \u00faj extruder szakaszt. A tov\u00e1bbi extruder szakaszok neve legyen \"extruder1\", \"extruder2\", \"extruder3\", \u00e9s \u00edgy tov\u00e1bb. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"extruder\" szakaszban. L\u00e1sd a sample-multi-extruder.cfg p\u00e9ldakonfigur\u00e1ci\u00f3t. [extruder1] #step_pin: #dir_pin: #... # Tekintsd meg az \"extruder\" r\u00e9szt az el\u00e9rhet\u0151 l\u00e9ptet\u0151 \u00e9s # f\u0171t\u0151param\u00e9terek\u00e9rt. #shared_heater: # Ez az opci\u00f3 elavult, \u00e9s t\u00f6bb\u00e9 nem kell megadni. [dual_carriage] \u00b6 Az egy tengelyen k\u00e9t kocsival rendelkez\u0151 cartesian nyomtat\u00f3k t\u00e1mogat\u00e1sa. Az akt\u00edv kocsit a SET_DUAL_CARRIAGE kiterjesztett G-k\u00f3d parancs seg\u00edts\u00e9g\u00e9vel \u00e1ll\u00edthatjuk be. A \"SET_DUAL_CARRIAGE CARRIAGE=1\" parancs az ebben a szakaszban meghat\u00e1rozott kocsit aktiv\u00e1lja (a CARRIAGE=0 az els\u0151dleges kocsi aktiv\u00e1l\u00e1s\u00e1t \u00e1ll\u00edtja vissza). A kett\u0151s kocsit\u00e1mogat\u00e1st \u00e1ltal\u00e1ban extra extruderekkel kombin\u00e1lj\u00e1k. A SET_DUAL_CARRIAGE parancsot gyakran az ACTIVATE_EXTRUDER paranccsal egyidej\u0171leg h\u00edvj\u00e1k meg. \u00dcgyelj arra, hogy a kocsikat a deaktiv\u00e1l\u00e1s sor\u00e1n parkol\u00f3 \u00e1ll\u00e1sba k\u00fcldje. L\u00e1sd a sample-idex.cfg p\u00e9ldakonfigur\u00e1ci\u00f3t. [dual_carriage] axis: # Azon a tengelyen, amelyen ez az extra kocsi van (X vagy Y). # Ezt a param\u00e9tert meg kell adni. #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: #endstop_pin: #position_endstop: #position_min: #position_max: # A fenti param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd a \"l\u00e9ptet\u0151\" r\u00e9szt. [extruder_stepper] \u00b6 Az extruder mozg\u00e1s\u00e1hoz szinkroniz\u00e1lt tov\u00e1bbi l\u00e9ptet\u0151k t\u00e1mogat\u00e1sa (tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3 \"extruder_stepper\" el\u0151taggal). Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancshivatkoz\u00e1s dokumentumot. [extruder_stepper my_extra_stepper] extruder: # Az extruder, amelyhez ez a l\u00e9ptet\u0151 szinkroniz\u00e1lva van. Ha ez # \u00fcres karakterl\u00e1ncra van \u00e1ll\u00edtva, akkor a l\u00e9ptet\u0151 nem lesz # szinkroniz\u00e1lva az extruderrel. Ezt a param\u00e9tert meg kell adni. #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: # A fenti param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd a \"l\u00e9ptet\u0151\" r\u00e9szt. [manual_stepper] \u00b6 K\u00e9zi l\u00e9ptet\u0151k (tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3 \"manual_stepper\" el\u0151taggal). Ezeket a l\u00e9ptet\u0151ket a MANUAL_STEPPER G-k\u00f3d parancs vez\u00e9rli. P\u00e9ld\u00e1ul: \"MANUAL_STEPPER STEPPER=my_stepper MOVE=10 SPEED=5\". A MANUAL_STEPPER parancs le\u00edr\u00e1s\u00e1t l\u00e1sd a G-k\u00f3dok f\u00e1jlban. A l\u00e9ptet\u0151k nem kapcsol\u00f3dnak a nyomtat\u00f3 norm\u00e1l kinematik\u00e1j\u00e1hoz. [manual_stepper my_stepper] #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: # A param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"l\u00e9ptet\u0151\" r\u00e9szben. #velocity: # \u00c1ll\u00edtsd be a l\u00e9ptet\u0151 alap\u00e9rtelmezett sebess\u00e9g\u00e9t (mm/sec-ben). # Ezt az \u00e9rt\u00e9ket haszn\u00e1lja a rendszer, ha a MANUAL_STEPPER parancs nem # ad meg SPEED param\u00e9tert. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5 mm/sec. #accel: # \u00c1ll\u00edtsd be a l\u00e9ptet\u0151 alap\u00e9rtelmezett gyorsul\u00e1s\u00e1t (mm/sec^2-en). A nulla # gyorsul\u00e1s nem eredm\u00e9nyez gyorsul\u00e1st. Ezt az \u00e9rt\u00e9ket haszn\u00e1lja a rendszer, # ha a MANUAL_STEPPER parancs nem ad meg ACCEL param\u00e9tert. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #endstop_pin: # V\u00e9g\u00e1ll\u00e1skapcsol\u00f3 csatlakoz\u00e1si t\u0171. Ha meg van adva, akkor egy # STOP_ON_ENDSTOP param\u00e9ter hozz\u00e1ad\u00e1s\u00e1val a MANUAL_STEPPER # mozg\u00e1sparancsokhoz \"kezd\u0151pont felv\u00e9teli mozg\u00e1sok\" hajthat\u00f3k v\u00e9gre. Egyedi f\u0171t\u0151testek \u00e9s \u00e9rz\u00e9kel\u0151k \u00b6 [verify_heater] \u00b6 A f\u0171t\u00e9s \u00e9s a h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 ellen\u0151rz\u00e9se. A f\u0171t\u0151elemek ellen\u0151rz\u00e9se automatikusan enged\u00e9lyezve van minden olyan f\u0171t\u0151elemhez, amely a nyomtat\u00f3n be van \u00e1ll\u00edtva. Az alap\u00e9rtelmezett be\u00e1ll\u00edt\u00e1sok m\u00f3dos\u00edt\u00e1s\u00e1hoz haszn\u00e1ld a verify_heater szakaszokat. [verify_heater heater_config_name] #max_error: 120 # A maxim\u00e1lis \u201ehalmozott h\u0151m\u00e9rs\u00e9kleti hiba\u201d a hiba emel\u00e9se el\u0151tt. # A kisebb \u00e9rt\u00e9kek szigor\u00fabb ellen\u0151rz\u00e9st eredm\u00e9nyeznek, a nagyobb # \u00e9rt\u00e9kek pedig t\u00f6bb id\u0151t biztos\u00edtanak a hibajelent\u00e9s el\u0151tt. # Pontosabban, a h\u0151m\u00e9rs\u00e9kletet m\u00e1sodpercenk\u00e9nt egyszer ellen\u0151rzik, # \u00e9s ha k\u00f6zel van a c\u00e9lh\u0151m\u00e9rs\u00e9klethez, akkor a bels\u0151 \"hibasz\u00e1ml\u00e1l\u00f3\" # null\u00e1z\u00f3dik. Ellenkez\u0151 esetben, ha a h\u0151m\u00e9rs\u00e9klet a c\u00e9ltartom\u00e1ny alatt # van, akkor a sz\u00e1ml\u00e1l\u00f3t annyival n\u00f6velj\u00fck, amennyivel a jelentett # h\u0151m\u00e9rs\u00e9klet elt\u00e9r ett\u0151l a tartom\u00e1nyt\u00f3l. Ha a sz\u00e1ml\u00e1l\u00f3 meghaladja ezt # a \"max_error\" \u00e9rt\u00e9ket, hiba\u00fczenet jelenik meg. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 120. #check_gain_time: # Ez szab\u00e1lyozza a f\u0171t\u0151elem ellen\u0151rz\u00e9s\u00e9t a kezdeti f\u0171t\u00e9s sor\u00e1n. # A kisebb \u00e9rt\u00e9kek szigor\u00fabb ellen\u0151rz\u00e9st eredm\u00e9nyeznek, a nagyobb # \u00e9rt\u00e9kek pedig t\u00f6bb id\u0151t biztos\u00edtanak a hibajelent\u00e9s el\u0151tt. # Pontosabban, a kezdeti f\u0171t\u00e9s sor\u00e1n, am\u00edg a f\u0171t\u0151elem h\u0151m\u00e9rs\u00e9klete # ezen id\u0151kereten bel\u00fcl (m\u00e1sodpercben van megadva) megemelkedik, # a bels\u0151 \"hibasz\u00e1ml\u00e1l\u00f3\" null\u00e1z\u00f3dik. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 20 # m\u00e1sodperc az extruder-ekn\u00e9l \u00e9s 60 m\u00e1sodperc a heater_bed # eset\u00e9ben. #hysteresis: 5 # A maxim\u00e1lis h\u0151m\u00e9rs\u00e9klet-k\u00fcl\u00f6nbs\u00e9g (Celsius fokban) a # c\u00e9lh\u0151m\u00e9rs\u00e9klethez k\u00e9pest, amely a c\u00e9l tartom\u00e1ny\u00e1ban van. Ez # szab\u00e1lyozza a max_error tartom\u00e1ny ellen\u0151rz\u00e9s\u00e9t. Ritka az \u00e9rt\u00e9k # testreszab\u00e1sa. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #heating_gain: 2 # Az a minim\u00e1lis h\u0151m\u00e9rs\u00e9klet (Celsiusban), amellyel a f\u0171t\u00e9snek # n\u00f6velnie kell a check_gain_time ellen\u0151rz\u00e9s sor\u00e1n. # Ritka az \u00e9rt\u00e9k testreszab\u00e1sa. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 2. [homing_heaters] \u00b6 Eszk\u00f6z a f\u0171t\u0151berendez\u00e9sek letilt\u00e1s\u00e1ra, amikor egy tengely kezd\u0151pont felv\u00e9telt vagy szintez\u00e9st csin\u00e1l. [homing_heaters] #steppers: # A f\u0171t\u0151elemek vessz\u0151vel elv\u00e1lasztott list\u00e1ja, amelyek miatt le kell # tiltani a f\u0171t\u00e9st. Az alap\u00e9rtelmez\u00e9s az, hogy letiltja a f\u0171t\u0151elemeket # minden ind\u00edt\u00e1si/m\u00e9r\u00e9si l\u00e9p\u00e9shez. # Tipikus p\u00e9lda: stepper_z #heaters: # A f\u0171t\u0151testek vessz\u0151vel elv\u00e1lasztott list\u00e1ja, amelyet le kell tiltani # az elhelyez\u00e9si/m\u00e9r\u00e9si l\u00e9p\u00e9sek sor\u00e1n. Az alap\u00e9rtelmezett az \u00f6sszes # f\u0171t\u0151elem letilt\u00e1sa. Tipikus p\u00e9lda: extruder, heater_bed [thermistor] \u00b6 Egy\u00e9ni termisztorok (tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3 \"termisztor\" el\u0151taggal). Egy\u00e9ni termisztor haszn\u00e1lhat\u00f3 a f\u0171t\u0151berendez\u00e9s konfigur\u00e1ci\u00f3s szakasz\u00e1nak sensor_type mez\u0151j\u00e9ben. (Ha p\u00e9ld\u00e1ul egy \"[thermistor my_thermistor]\" szekci\u00f3t defini\u00e1lunk, akkor a f\u0171t\u0151elem defini\u00e1l\u00e1sakor haszn\u00e1lhatjuk a \"sensor_type: my_thermistor\" mez\u0151t.). \u00dcgyelj arra, hogy a termisztor szekci\u00f3t a konfigur\u00e1ci\u00f3s f\u00e1jlban az els\u0151 f\u0171t\u0151szekci\u00f3ban val\u00f3 haszn\u00e1lata f\u00f6l\u00e9 helyezze. [thermistor my_thermistor] #temperature1: #resistance1: #temperature2: #resistance2: #temperature3: #resistance3: # H\u00e1rom ellen\u00e1ll\u00e1sm\u00e9r\u00e9s (ohmban) adott h\u0151m\u00e9rs\u00e9kleten (Celsiusban). # A h\u00e1rom m\u00e9r\u00e9st a termisztor Steinhart-Hart egy\u00fctthat\u00f3inak # kisz\u00e1m\u00edt\u00e1s\u00e1hoz haszn\u00e1ljuk fel. Ezeket a param\u00e9tereket meg kell adni, # ha Steinhart-Hartot haszn\u00e1lunk a termisztor meghat\u00e1roz\u00e1s\u00e1hoz. #beta: # Alternat\u00edv megold\u00e1sk\u00e9nt a temperature1, resistance1, \u00e9s beta # megadhat\u00f3 a termisztor param\u00e9tereinek meghat\u00e1roz\u00e1s\u00e1hoz. Ezt a # param\u00e9tert akkor kell megadni, ha \"beta\"-t haszn\u00e1l a termisztor # meghat\u00e1roz\u00e1s\u00e1hoz. [adc_temperature] \u00b6 Egyedi ADC h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"adc_temperature\" el\u0151taggal). Ez lehet\u0151v\u00e9 teszi egy olyan egy\u00e9ni h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 defini\u00e1l\u00e1s\u00e1t, amely egy fesz\u00fclts\u00e9get m\u00e9r egy anal\u00f3g-digit\u00e1lis \u00e1talak\u00edt\u00f3 (ADC) t\u0171n, \u00e9s line\u00e1ris interpol\u00e1ci\u00f3t haszn\u00e1l a konfigur\u00e1lt h\u0151m\u00e9rs\u00e9klet/fesz\u00fclts\u00e9g (vagy h\u0151m\u00e9rs\u00e9klet/ellen\u00e1ll\u00e1s) m\u00e9r\u00e9sek k\u00f6z\u00f6tt a h\u0151m\u00e9rs\u00e9klet meghat\u00e1roz\u00e1s\u00e1hoz. Az \u00edgy kapott \u00e9rz\u00e9kel\u0151 sensor_type-k\u00e9nt haszn\u00e1lhat\u00f3 egy f\u0171t\u0151szekci\u00f3ban. (Ha p\u00e9ld\u00e1ul egy \"[adc_temperature my_sensor]\" szekci\u00f3t defini\u00e1lunk, akkor egy f\u0171t\u0151elem defini\u00e1l\u00e1sakor haszn\u00e1lhatjuk a \"sensor_type: my_sensor\" szekci\u00f3t). \u00dcgyelj arra, hogy a szenzor szekci\u00f3t a config f\u00e1jlban az els\u0151 felhaszn\u00e1l\u00e1sa f\u00f6l\u00e9 helyezze a f\u0171t\u0151szekci\u00f3ban. [adc_temperature my_sensor] #temperature1: #voltage1: #temperature2: #voltage2: #... # H\u0151m\u00e9rs\u00e9kletek (Celsiusban) \u00e9s fesz\u00fclts\u00e9gek (V-ban) k\u00e9szlete referenciak\u00e9nt # a h\u0151m\u00e9rs\u00e9klet konvert\u00e1l\u00e1sakor. Az \u00e9rz\u00e9kel\u0151t haszn\u00e1l\u00f3 f\u0171t\u0151r\u00e9sz az adc_voltage # \u00e9s a voltage_offset param\u00e9tereket is megadhatja az ADC fesz\u00fclts\u00e9g meghat\u00e1roz\u00e1s\u00e1hoz # (a r\u00e9szletek\u00e9rt l\u00e1sd a \"\u00c1ltal\u00e1nos h\u0151m\u00e9rs\u00e9kleter\u0151s\u00edt\u0151k\" r\u00e9szt). # Legal\u00e1bb k\u00e9t m\u00e9r\u00e9st kell megadni. #temperature1: #resistance1: #temperature2: #resistance2: #... # Alternat\u00edvak\u00e9nt megadhatunk egy sorban h\u0151m\u00e9rs\u00e9kletet (Celsiusban) is # \u00e9s ellen\u00e1ll\u00e1st (Ohmban), hogy referenciak\u00e9nt haszn\u00e1lhassuk, amikor \u00e1talak\u00edtunk egy # h\u0151m\u00e9rs\u00e9kletet. Ezt az \u00e9rz\u00e9kel\u0151t haszn\u00e1l\u00f3 f\u0171t\u0151szekci\u00f3ban megadhatunk egy # pullup_resistor param\u00e9tert (a r\u00e9szleteket l\u00e1sd az \"extruder\" szakaszban). # A c\u00edmen legal\u00e1bb k\u00e9t m\u00e9r\u00e9st kell megadni. [heater_generic] \u00b6 \u00c1ltal\u00e1nos f\u0171t\u0151testek (tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3 a \"heater_generic\" el\u0151taggal). Ezek a f\u0171t\u0151berendez\u00e9sek a standard f\u0171t\u0151berendez\u00e9sekhez (extruderek, f\u0171t\u00f6tt t\u00e1rgyasztal) hasonl\u00f3an viselkednek. A SET_HEATER_TEMPERATURE paranccsal (l\u00e1sd a G-k\u00f3dok dokumentumban) \u00e1ll\u00edthatjuk be a c\u00e9lh\u0151m\u00e9rs\u00e9kletet. [heater_generic my_generic_heater] #gcode_id: # A h\u0151m\u00e9rs\u00e9klet jelent\u00e9s\u00e9n\u00e9l az M105 parancsban # haszn\u00e1land\u00f3 azonos\u00edt\u00f3. # Ezt a param\u00e9tert meg kell adni. #heater_pin: #max_power: #sensor_type: #sensor_pin: #smooth_time: #control: #pid_Kp: #pid_Ki: #pid_Kd: #pwm_cycle_time: #min_temp: #max_temp: # A fenti param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz # l\u00e1sd az \"extruder\" r\u00e9szt. [temperature_sensor] \u00b6 \u00c1ltal\u00e1nos h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k. Tetsz\u0151leges sz\u00e1m\u00fa tov\u00e1bbi h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151t lehet defini\u00e1lni, amelyek az M105 parancson kereszt\u00fcl jelentenek. [temperature_sensor my_sensor] #sensor_type: #sensor_pin: #min_temp: #max_temp: # A fenti param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd az # \"extruder\" r\u00e9szt. #gcode_id: # L\u00e1sd a \"heater_generic\" r\u00e9szt a param\u00e9ter # meghat\u00e1roz\u00e1s\u00e1hoz. H\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k \u00b6 A Klipper sz\u00e1mos t\u00edpus\u00fa h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 defin\u00edci\u00f3j\u00e1t tartalmazza. Ezek az \u00e9rz\u00e9kel\u0151k b\u00e1rmely olyan konfigur\u00e1ci\u00f3s szakaszban haszn\u00e1lhat\u00f3k, amely h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151t ig\u00e9nyel (p\u00e9ld\u00e1ul az [extruder] vagy a [heater_bed] szakaszban). K\u00f6z\u00f6s termisztorok \u00b6 K\u00f6z\u00f6ns\u00e9ges termisztorok. A k\u00f6vetkez\u0151 param\u00e9terek \u00e1llnak rendelkez\u00e9sre azokban a f\u0171t\u0151szakaszban, amelyek ezen \u00e9rz\u00e9kel\u0151k valamelyik\u00e9t haszn\u00e1lj\u00e1k. sensor_type: # Az egyik \"EPCOS 100K B57560G104F\", \"ATC Semitec 104GT-2\", # \"ATC Semitec 104NT-4-R025H42G\", \"Generic 3950\", # \"Honeywell 100K 135-104LAG-J01\", \"NTC 100K MGB18-104F39050L32\", # \"SliceEngineering 450\", vagy \"TDK NTCG104LH104JT1\" sensor_pin: # Anal\u00f3g bemeneti \u00e9rintkez\u0151 csatlakozik a termisztorhoz. # Ezt a param\u00e9tert meg kell adni. #pullup_resistor: 4700 # A termisztorhoz csatlakoztatott felh\u00faz\u00f3 ellen\u00e1ll\u00e1sa (ohmban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 4700 ohm. #inline_resistor: 0 # A termisztorral egy vonalban elhelyezett extra (nem h\u0151v\u00e1ltoz\u00f3) # ellen\u00e1ll\u00e1s ellen\u00e1ll\u00e1sa (ohmban). Ritka az ilyen be\u00e1ll\u00edt\u00e1s. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0 ohm. K\u00f6z\u00f6s h\u0151m\u00e9rs\u00e9klet er\u0151s\u00edt\u0151k \u00b6 K\u00f6z\u00f6s h\u0151m\u00e9rs\u00e9klet\u0171 er\u0151s\u00edt\u0151k. A k\u00f6vetkez\u0151 param\u00e9terek \u00e1llnak rendelkez\u00e9sre azokban a f\u0171t\u0151szakaszokban, amelyek ezen \u00e9rz\u00e9kel\u0151k valamelyik\u00e9t haszn\u00e1lj\u00e1k. sensor_type: # A \u201ePT100 INA826\u201d, \u201eAD595\u201d, \u201eAD597\u201d, \u201eAD8494\u201d, \u201eAD8495\u201d, # \u201eAD8496\u201d vagy \u201eAD8497\u201d k\u00f6z\u00fcl az egyik. sensor_pin: # Anal\u00f3g bemeneti \u00e9rintkez\u0151 csatlakozik az \u00e9rz\u00e9kel\u0151h\u00f6z. # Ezt a param\u00e9tert meg kell adni. #adc_voltage: 5.0 # Az ADC \u00f6sszehasonl\u00edt\u00f3 fesz\u00fclts\u00e9ge (V-ban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #voltage_offset: 0 # Az ADC fesz\u00fclts\u00e9g eltol\u00e1sa (V-ban). Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. K\u00f6zvetlen\u00fcl csatlakoztatott PT1000 \u00e9rz\u00e9kel\u0151 \u00b6 K\u00f6zvetlen\u00fcl csatlakoztatott PT1000 \u00e9rz\u00e9kel\u0151. A k\u00f6vetkez\u0151 param\u00e9terek \u00e1llnak rendelkez\u00e9sre azokban a f\u0171t\u00e9si szakaszokban, amelyek valamelyik \u00e9rz\u00e9kel\u0151t haszn\u00e1lj\u00e1k. sensor_type: PT1000 sensor_pin: # Anal\u00f3g bemeneti \u00e9rintkez\u0151 csatlakozik az \u00e9rz\u00e9kel\u0151h\u00f6z. # Ezt a param\u00e9tert meg kell adni. #pullup_resistor: 4700 # Az \u00e9rz\u00e9kel\u0151h\u00f6z csatlakoztatott felh\u00faz\u00f3 ellen\u00e1ll\u00e1s (ohmban). # Az alap\u00e9rtelmezett 4700 ohm. MAXxxxxx h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k \u00b6 MAXxxxxx soros perif\u00e9ri\u00e1s interf\u00e9sz (SPI) h\u0151m\u00e9rs\u00e9klet-alap\u00fa \u00e9rz\u00e9kel\u0151k. A k\u00f6vetkez\u0151 param\u00e9terek \u00e1llnak rendelkez\u00e9sre azokban a f\u0171t\u00e9si szakaszokban, amelyek ezen \u00e9rz\u00e9kel\u0151t\u00edpusok valamelyik\u00e9t haszn\u00e1lj\u00e1k. sensor_type: # A \u201eMAX6675\u201d, \u201eMAX31855\u201d, \u201eMAX31856\u201d vagy \u201eMAX31865\u201d egyike. sensor_pin: # Az \u00e9rz\u00e9kel\u0151 chip kiv\u00e1laszt\u00e1si sora. Ezt a param\u00e9tert meg kell adni. #spi_speed: 4000000 # A chippel val\u00f3 kommunik\u00e1ci\u00f3 sor\u00e1n haszn\u00e1land\u00f3 SPI-sebess\u00e9g # (hz-ben). Az alap\u00e9rtelmezett \u00e9rt\u00e9k 4000000. #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t az \"\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben tal\u00e1lja. #tc_type: K #tc_use_50Hz_filter: False #tc_averaging_count: 1 # A fenti param\u00e9terek a MAX31856 chipek \u00e9rz\u00e9kel\u0151param\u00e9tereit # szab\u00e1lyozz\u00e1k. Az egyes param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a # param\u00e9ter neve mellett tal\u00e1lhat\u00f3k a fenti list\u00e1ban. #rtd_nominal_r: 100 #rtd_reference_r: 430 #rtd_num_of_wires: 2 #rtd_use_50Hz_filter: False # A fenti param\u00e9terek a MAX31865 chipek \u00e9rz\u00e9kel\u0151param\u00e9tereit # szab\u00e1lyozz\u00e1k. Az egyes param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a # param\u00e9ter neve mellett tal\u00e1lhat\u00f3k a fenti list\u00e1ban. BMP280/BME280/BME680 h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 \u00b6 BMP280/BME280/BME680 k\u00e9tvezet\u00e9kes interf\u00e9sz (I2C) k\u00f6rnyezeti \u00e9rz\u00e9kel\u0151k. Vedd figyelembe, hogy ezeket az \u00e9rz\u00e9kel\u0151ket nem extruderekkel \u00e9s f\u0171t\u00f6tt t\u00e1rgyasztalokkal val\u00f3 haszn\u00e1latra sz\u00e1nj\u00e1k, hanem a k\u00f6rnyezeti h\u0151m\u00e9rs\u00e9klet (C), a nyom\u00e1s (hPa), a relat\u00edv p\u00e1ratartalom \u00e9s a BME680 eset\u00e9ben a g\u00e1zszint ellen\u0151rz\u00e9s\u00e9re. L\u00e1sd sample-macros.cfg egy gcode_macro-t, amely a h\u0151m\u00e9rs\u00e9klet mellett a nyom\u00e1s \u00e9s a p\u00e1ratartalom m\u00e9r\u00e9s\u00e9re is haszn\u00e1lhat\u00f3. sensor_type: BME280 #i2c_address: # Az alap\u00e9rtelmezett 118 (0x76). Egyes BME280 \u00e9rz\u00e9kel\u0151k c\u00edme 119 # (0x77). #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. HTU21D \u00e9rz\u00e9kel\u0151 \u00b6 HTU21D k\u00e9tvezet\u00e9kes interf\u00e9sz (I2C) k\u00f6rnyezeti \u00e9rz\u00e9kel\u0151. Vedd figyelembe, hogy ezt az \u00e9rz\u00e9kel\u0151t nem extruderekkel \u00e9s f\u0171t\u00f6tt t\u00e1rgyasztalokkal val\u00f3 haszn\u00e1latra sz\u00e1nj\u00e1k, hanem a k\u00f6rnyezeti h\u0151m\u00e9rs\u00e9klet (C) \u00e9s a relat\u00edv p\u00e1ratartalom ellen\u0151rz\u00e9s\u00e9re. L\u00e1sd sample-macros.cfg egy gcode_macro-t, amely a h\u0151m\u00e9rs\u00e9klet mellett a p\u00e1ratartalom jelent\u00e9s\u00e9re is haszn\u00e1lhat\u00f3. sensor_type: # A k\u00f6vetkez\u0151nek kell lennie: \"HTU21D\", \"SI7013\", \"SI7020\", # \"SI7021\" vagy \"SHT21\" #i2c_address: # Az alap\u00e9rtelmezett 64 (0x40). #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #htu21d_hold_master: # Ha az \u00e9rz\u00e9kel\u0151 k\u00e9pes megtartani az I2C buffot olvas\u00e1s k\u00f6zben. # Ha True, az olvas\u00e1s k\u00f6zben m\u00e1s buszkommunik\u00e1ci\u00f3 nem # hajthat\u00f3 v\u00e9gre. Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #htu21d_resolution: # A h\u0151m\u00e9rs\u00e9klet \u00e9s a p\u00e1ratartalom leolvas\u00e1s\u00e1nak felbont\u00e1sa. # Az \u00e9rv\u00e9nyes \u00e9rt\u00e9kek a k\u00f6vetkez\u0151k: # 'TEMP14_HUM12' -> 14 bit a h\u0151m\u00e9rs\u00e9klethez \u00e9s 12 bit a p\u00e1ratartalomhoz # 'TEMP13_HUM10' -> 13 bit a h\u0151m\u00e9rs\u00e9klethez \u00e9s 10 bit a p\u00e1ratartalomhoz # 'TEMP12_HUM08' -> 12 bit a h\u0151m\u00e9rs\u00e9klethez \u00e9s 08 bit a p\u00e1ratartalomhoz # 'TEMP11_HUM11' -> 11 bit a h\u0151m\u00e9rs\u00e9klethez \u00e9s 11 bit a p\u00e1ratartalomhoz # Az alap\u00e9rtelmezett \u00e9rt\u00e9k: \"TEMP11_HUM11\" #htu21d_report_time: # A leolvas\u00e1sok k\u00f6z\u00f6tti intervallum m\u00e1sodpercben. # Az alap\u00e9rtelmezett a 30 LM75 h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 \u00b6 LM75/LM75A k\u00e9tvezet\u00e9kes (I2C) csatlakoz\u00e1s\u00fa h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151k. Ezek az \u00e9rz\u00e9kel\u0151k -55~125 C tartom\u00e1nyban m\u0171k\u00f6dnek, \u00edgy pl. kamrah\u0151m\u00e9rs\u00e9klet ellen\u0151rz\u00e9sre haszn\u00e1lhat\u00f3k. Egyszer\u0171 ventil\u00e1tor/f\u0171t\u00e9svez\u00e9rl\u0151k\u00e9nt is m\u0171k\u00f6dhetnek. sensor_type: LM75 #i2c_address: # Az alap\u00e9rtelmezett 72 (0x48). A norm\u00e1l tartom\u00e1ny 72-79 (0x48-0x4F), # \u00e9s a c\u00edm 3 alacsony bitje a chipen tal\u00e1lhat\u00f3 \u00e9rintkez\u0151k\u00f6n kereszt\u00fcl # van konfigur\u00e1lva (\u00e1ltal\u00e1ban jumperekkel vagy \u00e1thidal\u00f3 vezet\u00e9kekkel). #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #lm75_report_time: # A leolvas\u00e1sok k\u00f6z\u00f6tti intervallum m\u00e1sodpercben. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,8 de a minimum \u00e9rt\u00e9k 0,5. Be\u00e9p\u00edtett mikrokontroller h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 \u00b6 Az atsam, atsamd \u00e9s stm32 mikrovez\u00e9rl\u0151k bels\u0151 h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151t tartalmaznak. A \"temperature_mcu\" parancsot haszn\u00e1lhatjuk e h\u0151m\u00e9rs\u00e9kletek megjelen\u00edt\u00e9s\u00e9re. sensor_type: temperature_mcu #sensor_mcu: mcu # A mikrokontroller, amelyb\u0151l olvasni lehet. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k az \"mcu\". #sensor_temperature1: #sensor_adc1: # Add meg a fenti k\u00e9t param\u00e9tert (a h\u0151m\u00e9rs\u00e9kletet Celsiusban \u00e9s egy # ADC-\u00e9rt\u00e9ket \u00fasz\u00f3k\u00e9nt 0,0 \u00e9s 1,0 k\u00f6z\u00f6tt) a mikrovez\u00e9rl\u0151 # h\u0151m\u00e9rs\u00e9klet\u00e9nek kalibr\u00e1l\u00e1s\u00e1hoz. Ez egyes chipekn\u00e9l jav\u00edthatja a # jelentett h\u0151m\u00e9rs\u00e9kleti pontoss\u00e1got. A kalibr\u00e1ci\u00f3s adatok # megszerz\u00e9s\u00e9nek tipikus m\u00f3dja az, hogy n\u00e9h\u00e1ny \u00f3r\u00e1ra teljesen # \u00e1ramtalan\u00edtja a nyomtat\u00f3t (hogy megbizonyosodj arr\u00f3l, hogy az # k\u00f6rnyezeti h\u0151m\u00e9rs\u00e9kleten van), majd bekapcsolja, \u00e9s a QUERY_ADC # paranccsal megkapja az ADC m\u00e9r\u00e9st. Haszn\u00e1lj m\u00e1s h\u0151m\u00e9rs\u00e9klet # \u00e9rz\u00e9kel\u0151t a nyomtat\u00f3n a megfelel\u0151 k\u00f6rnyezeti h\u0151m\u00e9rs\u00e9klet # meghat\u00e1roz\u00e1s\u00e1hoz. Alap\u00e9rtelmez\u00e9s szerint a mikrokontroller gy\u00e1ri # kalibr\u00e1l\u00e1si adatait (ha van) vagy a mikrovez\u00e9rl\u0151 specifik\u00e1ci\u00f3j\u00e1b\u00f3l # sz\u00e1rmaz\u00f3 n\u00e9vleges \u00e9rt\u00e9keket kell haszn\u00e1lni. #sensor_temperature2: #sensor_adc2: # Ha a sensor_temperature1/sensor_adc1 meg van adva, akkor # megadhat\u00f3k a sensor_temperature2/sensor_adc2 kalibr\u00e1ci\u00f3s adatai # is. Ezzel kalibr\u00e1lt \"temperature slope\" inform\u00e1ci\u00f3t kaphat. # Alap\u00e9rtelmez\u00e9s szerint a mikrokontroller gy\u00e1ri kalibr\u00e1l\u00e1si adatait # (ha van) vagy a mikrovez\u00e9rl\u0151 specifik\u00e1ci\u00f3j\u00e1b\u00f3l sz\u00e1rmaz\u00f3 n\u00e9vleges # \u00e9rt\u00e9keket kell haszn\u00e1lni. Gazdag\u00e9p h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151 \u00b6 Gazdag\u00e9p h\u0151m\u00e9rs\u00e9klet (pl. Raspberry Pi), amelyen a gazdaszoftver fut. sensor_type: temperature_host #sensor_path: # A h\u0151m\u00e9rs\u00e9kleti rendszerf\u00e1jl el\u00e9r\u00e9si \u00fatja. Az alap\u00e9rtelmez\u00e9s # a \"/sys/class/thermal/thermal_zone0/temp\", amely a Raspberry Pi # sz\u00e1m\u00edt\u00f3g\u00e9p h\u0151m\u00e9rs\u00e9kleti rendszerf\u00e1jlja. DS18B20 h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151 \u00b6 A DS18B20 egy 1 vezet\u00e9kes (w1) digit\u00e1lis h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151. Vedd figyelembe, hogy ezt az \u00e9rz\u00e9kel\u0151t nem extruderekkel \u00e9s f\u0171t\u00f6tt t\u00e1rgyasztalokkal val\u00f3 haszn\u00e1latra sz\u00e1nj\u00e1k, hanem ink\u00e1bb a k\u00f6rnyezeti h\u0151m\u00e9rs\u00e9klet (C) ellen\u0151rz\u00e9s\u00e9re. Ezek az \u00e9rz\u00e9kel\u0151k 125 C-ig terjed\u0151 tartom\u00e1nyban m\u0171k\u00f6dnek, \u00edgy pl. kamrah\u0151m\u00e9rs\u00e9klet ellen\u0151rz\u00e9sre haszn\u00e1lhat\u00f3k. Egyszer\u0171 ventil\u00e1tor/f\u0171t\u0151berendez\u00e9s szab\u00e1lyoz\u00f3k\u00e9nt is m\u0171k\u00f6dhetnek. A DS18B20 \u00e9rz\u00e9kel\u0151ket csak a \"host mcu\", pl. a Raspberry Pi t\u00e1mogatja. A w1-gpio Linux kernel modult kell telep\u00edteni hozz\u00e1. sensor_type: DS18B20 serial_no: # Minden 1 vezet\u00e9kes eszk\u00f6z egyedi sorozatsz\u00e1mmal rendelkezik, amely az # eszk\u00f6z azonos\u00edt\u00e1s\u00e1ra szolg\u00e1l, \u00e1ltal\u00e1ban 28-031674b175ff form\u00e1tumban. # Ezt a param\u00e9tert meg kell adni. A csatlakoztatott egyvezet\u00e9kes eszk\u00f6z\u00f6k a # k\u00f6vetkez\u0151 Linux-paranccsal list\u00e1zhat\u00f3k: # ls /sys/bus/w1/devices/ #ds18_report_time: # A leolvas\u00e1sok k\u00f6z\u00f6tti intervallum m\u00e1sodpercben. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 3.0, a minimum 1.0 #sensor_mcu: # A mikrokontroller, amelyb\u0151l olvasni lehet. A host_mcu legyen H\u0171t\u0151ventil\u00e1torok \u00b6 [fan] \u00b6 Nyomtat\u00e1s h\u0171t\u0151ventil\u00e1tor. [fan] pin: # A ventil\u00e1tort vez\u00e9rl\u0151 kimeneti \u00e9rintkez\u0151. Ezt a param\u00e9tert meg kell adni. #max_power: 1.0 # Az a maxim\u00e1lis teljes\u00edtm\u00e9ny (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), # amelyre a t\u0171 be\u00e1ll\u00edthat\u00f3. Az 1,0 \u00e9rt\u00e9k lehet\u0151v\u00e9 teszi, hogy a t\u0171t hosszabb # ideig teljesen enged\u00e9lyezettre lehessen \u00e1ll\u00edtani, m\u00edg a 0,5 \u00e9rt\u00e9k legfeljebb # a fele ideig enged\u00e9lyezi a t\u0171t. Ez a be\u00e1ll\u00edt\u00e1s haszn\u00e1lhat\u00f3 a ventil\u00e1tor # teljes kimeneti teljes\u00edtm\u00e9ny\u00e9nek korl\u00e1toz\u00e1s\u00e1ra (hosszabb ideig). Ha ez az # \u00e9rt\u00e9k kisebb, mint 1,0, akkor a ventil\u00e1torsebess\u00e9g-k\u00e9relmek nulla \u00e9s # max_power k\u00f6z\u00f6tt lesznek sk\u00e1l\u00e1zva (p\u00e9ld\u00e1ul ha a max_power \u00e9rt\u00e9ke 0,9, # \u00e9s 80%-os ventil\u00e1torsebess\u00e9gre van sz\u00fcks\u00e9g, akkor a ventil\u00e1tor # teljes\u00edtm\u00e9nye 72%-ra lesz \u00e1ll\u00edtva). Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0. #shutdown_speed: 0 # A k\u00edv\u00e1nt ventil\u00e1torsebess\u00e9g (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), ha a # mikrovez\u00e9rl\u0151 szoftvere hiba\u00e1llapotba ker\u00fcl. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #cycle_time: 0,010 # Az id\u0151 (m\u00e1sodpercben) minden egyes PWM t\u00e1pciklushoz a ventil\u00e1tornak. # Szoftver alap\u00fa PWM haszn\u00e1latakor aj\u00e1nlott 10 ezredm\u00e1sodperc vagy t\u00f6bb. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,010 m\u00e1sodperc. #hardware_pwm: False # Enged\u00e9lyezd ezt hardveres PWM haszn\u00e1lat\u00e1hoz a szoftveres PWM helyett. # A legt\u00f6bb ventil\u00e1tor nem m\u0171k\u00f6dik j\u00f3l a hardveres PWM-mel, ez\u00e9rt nem # aj\u00e1nlott ezt enged\u00e9lyezni, hacsak nincs elektromos k\u00f6vetelm\u00e9ny a nagyon # nagy sebess\u00e9g\u0171 kapcsol\u00e1shoz. Hardveres PWM haszn\u00e1latakor a t\u00e9nyleges # ciklusid\u0151t a megval\u00f3s\u00edt\u00e1s korl\u00e1tozza, \u00e9s jelent\u0151sen elt\u00e9rhet a k\u00e9rt ciklusid\u0151t\u0151l. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #kick_start_time: 0,100 # Az id\u0151 (m\u00e1sodpercben), hogy a ventil\u00e1tor teljes fordulatsz\u00e1mon m\u0171k\u00f6dj\u00f6n, # amikor el\u0151sz\u00f6r enged\u00e9lyezi, vagy 50%-n\u00e1l nagyobb m\u00e9rt\u00e9kben n\u00f6veli # (seg\u00edti a ventil\u00e1tor p\u00f6rg\u00e9s\u00e9t). Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,100 m\u00e1sodperc. #off_below: 0,0 # A minim\u00e1lis bemeneti sebess\u00e9g, amely a ventil\u00e1tort t\u00e1pl\u00e1lja # (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve). Ha az off_below-n\u00e1l alacsonyabb # sebess\u00e9get k\u00e9rnek, a ventil\u00e1tor ehelyett kikapcsol. Ez a be\u00e1ll\u00edt\u00e1s haszn\u00e1lhat\u00f3 # a ventil\u00e1tor le\u00e1ll\u00e1s\u00e1nak megel\u0151z\u00e9s\u00e9re \u00e9s annak biztos\u00edt\u00e1s\u00e1ra, hogy az ind\u00edt\u00e1sok # hat\u00e9konyak legyenek. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0.0. # # Ezt a be\u00e1ll\u00edt\u00e1st \u00fajra kell kalibr\u00e1lni a max_power be\u00e1ll\u00edt\u00e1sakor. A be\u00e1ll\u00edt\u00e1s # kalibr\u00e1l\u00e1s\u00e1hoz kezd az off_below \u00e9rt\u00e9k\u00e9t 0,0-ra \u00e1ll\u00edtva, \u00e9s a ventil\u00e1tor forog. # Fokozatosan cs\u00f6kkentse a ventil\u00e1tor fordulatsz\u00e1m\u00e1t, hogy meghat\u00e1rozza a # legalacsonyabb bemeneti sebess\u00e9get, amely megb\u00edzhat\u00f3an hajtja a ventil\u00e1tort # le\u00e1ll\u00e1s n\u00e9lk\u00fcl. \u00c1ll\u00edtsd az off_below-ot az ennek az \u00e9rt\u00e9knek megfelel\u0151 # (p\u00e9ld\u00e1ul 12% -> 0,12) vagy valamivel magasabb munkaciklusra. #tachometer_pin: # Fordulatsz\u00e1mm\u00e9r\u0151 bemeneti \u00e9rintkez\u0151je a ventil\u00e1tor fordulatsz\u00e1m\u00e1nak # figyel\u00e9s\u00e9hez. \u00c1ltal\u00e1ban felh\u00faz\u00e1sra van sz\u00fcks\u00e9g. Ez a param\u00e9ter nem k\u00f6telez\u0151. #tachometer_ppr: 2 # Ha a tachometer_pin meg van adva, ez a fordulatsz\u00e1mm\u00e9r\u0151 jel\u00e9nek # fordulatonk\u00e9nti impulzusainak sz\u00e1ma. Egy BLDC ventil\u00e1tor eset\u00e9ben ez \u00e1ltal\u00e1ban # fele a p\u00f3lusok sz\u00e1m\u00e1nak. Az alap\u00e9rtelmezett \u00e9rt\u00e9k a 2. #tachometer_poll_interval: 0,0015 # Ha a tachometer_pin meg van adva, ez a fordulatsz\u00e1mm\u00e9r\u0151 t\u0171j\u00e9nek lek\u00e9rdez\u00e9si # peri\u00f3dusa, m\u00e1sodpercben. Az alap\u00e9rtelmezett 0,0015, ami el\u00e9g gyors a # 10000 RPM alatti ventil\u00e1torok sz\u00e1m\u00e1ra 2 PPR mellett. Ennek kisebbnek kell lennie, # mint 30/(tachometer_ppr*rpm), n\u00e9mi r\u00e1hagy\u00e1ssal, ahol az rpm a ventil\u00e1tor # maxim\u00e1lis fordulatsz\u00e1ma (rpm-ben). #enable_pin: # Opcion\u00e1lis t\u0171 a ventil\u00e1tor t\u00e1pell\u00e1t\u00e1s\u00e1nak biztos\u00edt\u00e1s\u00e1hoz. Ez hasznos lehet a # dedik\u00e1lt PWM bemenettel rendelkez\u0151 ventil\u00e1torok sz\u00e1m\u00e1ra. N\u00e9h\u00e1ny ilyen # ventil\u00e1tor m\u00e9g 0%-os PWM bemenetn\u00e9l is bekapcsolva marad. Ilyenkor a PWM t\u0171 # norm\u00e1lisan haszn\u00e1lhat\u00f3, \u00e9s pl. f\u00f6ldkapcsolt FET (norm\u00e1l ventil\u00e1torcsap) # haszn\u00e1lhat\u00f3 a ventil\u00e1tor t\u00e1pell\u00e1t\u00e1s\u00e1nak szab\u00e1lyoz\u00e1s\u00e1ra. [heater_fan] \u00b6 Fejh\u0171t\u0151 ventil\u00e1torok (a \"heater_fan\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3). A \"fejh\u0171t\u0151 ventil\u00e1tor\" egy olyan ventil\u00e1tor, amely akkor lesz enged\u00e9lyezve, amikor a hozz\u00e1 tartoz\u00f3 f\u0171t\u0151berendez\u00e9s akt\u00edv. Alap\u00e9rtelmez\u00e9s szerint a heater_fan alap\u00e9rtelmez\u00e9s szerint a shutdown_speed a max_power \u00e9rt\u00e9kkel egyenl\u0151. [heater_fan my_nozzle_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"ventil\u00e1tor\" szakaszban. #heater: extruder # A ventil\u00e1torhoz t\u00e1rs\u00edtott f\u0171t\u00e9st meghat\u00e1roz\u00f3 konfigur\u00e1ci\u00f3s szakasz neve. # Ha itt megadod a f\u0171t\u0151elemek vessz\u0151vel elv\u00e1lasztott nev\u00e9t, # akkor a ventil\u00e1tor enged\u00e9lyezve lesz, ha valamelyik adott f\u0171t\u0151test enged\u00e9lyezve van. # Az alap\u00e9rtelmezett az \"extruder\". #heater_temp: 50.0 # A h\u0151m\u00e9rs\u00e9klet (Celsiusban), amely al\u00e1 a f\u0171t\u0151elemnek cs\u00f6kkennie kell, miel\u0151tt # a ventil\u00e1tor kikapcsolna. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50 Celsius fok. #fan_speed: 1.0 # A ventil\u00e1tor sebess\u00e9ge (0.0 \u00e9s 1.0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), amelyet a ventil\u00e1tor # alkalmaz, amikor a hozz\u00e1 tartoz\u00f3 f\u0171t\u0151elem be van kapcsolva. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0 [controller_fan] \u00b6 Vez\u00e9rl\u0151 h\u0171t\u0151ventil\u00e1tor (a \"controller_fan\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3). A \"vez\u00e9rl\u0151 h\u0171t\u0151ventil\u00e1tor\" egy olyan ventil\u00e1tor, amely akkor lesz enged\u00e9lyezve, amikor a hozz\u00e1 tartoz\u00f3 f\u0171t\u0151berendez\u00e9s vagy a hozz\u00e1 tartoz\u00f3 l\u00e9ptet\u0151 meghajt\u00f3 akt\u00edv. A ventil\u00e1tor le\u00e1ll, amikor el\u00e9r egy idle_timeout \u00e9rt\u00e9ket, hogy biztos\u00edtsa, hogy a fel\u00fcgyelt komponens kikapcsol\u00e1sa ut\u00e1n ne k\u00f6vetkezzen be t\u00falmeleged\u00e9s. [controller_fan my_controller_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"ventil\u00e1tor\" szakaszban. #fan_speed: 1.0 # A ventil\u00e1tor fordulatsz\u00e1ma (0.0 \u00e9s 1.0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), # amelyre a ventil\u00e1tor lesz be\u00e1ll\u00edtva, amikor egy f\u0171t\u0151elem vagy # l\u00e9ptet\u0151 vez\u00e9rl\u0151 akt\u00edv. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0 #idle_timeout: # Az az id\u0151 (m\u00e1sodpercben), miut\u00e1n a l\u00e9ptet\u0151-meghajt\u00f3 vagy a f\u0171t\u0151elem # akt\u00edv volt, \u00e9s a ventil\u00e1tort m\u0171k\u00f6dtetni kell m\u00e9g. # Az alap\u00e9rtelmezett 30 m\u00e1sodperc. #idle_speed: # A ventil\u00e1tor sebess\u00e9ge (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), # amelyre a ventil\u00e1tor be lesz \u00e1ll\u00edtva, amikor egy f\u0171t\u0151elem vagy # l\u00e9ptet\u0151-meghajt\u00f3 akt\u00edv volt, az idle_timeout el\u00e9r\u00e9se el\u0151tt. # Alap\u00e9rtelmezett a fan_speed. #heater: #stepper: # A ventil\u00e1torhoz t\u00e1rs\u00edtott f\u0171t\u00e9st/l\u00e9ptet\u0151t meghat\u00e1roz\u00f3 konfigur\u00e1ci\u00f3s # szakasz neve. Ha itt megadod a f\u0171t\u0151elemek/l\u00e9ptet\u0151k vessz\u0151vel # elv\u00e1lasztott nev\u00e9t, akkor a ventil\u00e1tor enged\u00e9lyezve lesz, ha az adott # f\u0171t\u0151testek/l\u00e9ptet\u0151k b\u00e1rmelyike enged\u00e9lyezett. Az alap\u00e9rtelmezett f\u0171t\u0151elem # az \"extruder\", az alap\u00e9rtelmezett l\u00e9ptet\u0151 pedig mindegyik. [temperature_fan] \u00b6 H\u0151m\u00e9rs\u00e9klet vez\u00e9relt h\u0171t\u0151ventil\u00e1torok (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni a \"temperature_fan\" el\u0151taggal). A \"h\u0151m\u00e9rs\u00e9kleti ventil\u00e1tor\" olyan ventil\u00e1tor, amely akkor kapcsol be, amikor a hozz\u00e1 tartoz\u00f3 \u00e9rz\u00e9kel\u0151 egy be\u00e1ll\u00edtott h\u0151m\u00e9rs\u00e9klet felett van. Alap\u00e9rtelmez\u00e9s szerint a temperature_fan kikapcsol\u00e1si sebess\u00e9ge egyenl\u0151 a max_power \u00e9rt\u00e9kkel. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1st . [temperature_fan my_temp_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"ventil\u00e1tor\" r\u00e9szben. #sensor_type: #sensor_pin: #control: #max_delta: #min_temp: #max_temp: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"extruder\" r\u00e9szben. #pid_Kp: #pid_Ki: #pid_Kd: # Az ar\u00e1nyos (pid_Kp), az integr\u00e1l (pid_Ki) \u00e9s a deriv\u00e1lt (pid_Kd) be\u00e1ll\u00edt\u00e1sai # a PID visszacsatol\u00e1svez\u00e9rl\u0151 rendszerhez. A Klipper a PID be\u00e1ll\u00edt\u00e1sokat a # k\u00f6vetkez\u0151 \u00e1ltal\u00e1nos k\u00e9plettel \u00e9rt\u00e9keli ki: ventil\u00e1tor_pwm = max_power # - (Kp*e + Ki*integr\u00e1l(e) - Kd*deriv\u00e1lt(e)) / 255 ahol \"e\" a # \"target_temperature - measured_temperature\" \u00e9s \"fan_pwm\" a k\u00e9rt # ventil\u00e1torsebess\u00e9g, ahol a 0.0 tele van, az 1.0 pedig teljesen be van # kapcsolva. A pid_Kp, pid_Ki \u00e9s pid_Kd param\u00e9tereket akkor kell megadni, # ha a PID vez\u00e9rl\u0151 algoritmus enged\u00e9lyezve van. #pid_deriv_time: 2.0 # Az az id\u0151\u00e9rt\u00e9k (m\u00e1sodpercben), amelyen kereszt\u00fcl a h\u0151m\u00e9rs\u00e9kletm\u00e9r\u00e9s # sim\u00edt\u00e1sra ker\u00fcl a PID szab\u00e1lyoz\u00e1si algoritmus haszn\u00e1latakor. # Ez cs\u00f6kkentheti a m\u00e9r\u00e9si zaj hat\u00e1s\u00e1t. Az alap\u00e9rtelmezett a 2 m\u00e1sodperc. #target_temp: 40.0 # Egy h\u0151m\u00e9rs\u00e9klet (Celsiusban), amely a c\u00e9lh\u0151m\u00e9rs\u00e9klet lesz. # Az alap\u00e9rtelmezett a 40 fok. #max_speed: 1.0 # A ventil\u00e1tor sebess\u00e9ge (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), amelyre a # ventil\u00e1tor be lesz \u00e1ll\u00edtva, ha az \u00e9rz\u00e9kel\u0151 h\u0151m\u00e9rs\u00e9klete meghaladja a # be\u00e1ll\u00edtott \u00e9rt\u00e9ket. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0. #min_speed: 0,3 # Az a minim\u00e1lis ventil\u00e1tor fordulatsz\u00e1m (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben # kifejezve), amelyre a ventil\u00e1tor be lesz \u00e1ll\u00edtva a PID h\u0151m\u00e9rs\u00e9klet\u0171 # ventil\u00e1torokhoz. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0.3. #gcode_id: # Ha be van \u00e1ll\u00edtva, a h\u0151m\u00e9rs\u00e9kletet az M105 lek\u00e9rdez\u00e9sekben jelenti a # megadott azonos\u00edt\u00f3val. Az alap\u00e9rtelmez\u00e9s szerint nem jelenti a # h\u0151m\u00e9rs\u00e9kletet az M105-\u00f6n kereszt\u00fcl. [fan_generic] \u00b6 K\u00e9zi vez\u00e9rl\u00e9s\u0171 ventil\u00e1tor (a \"fan_generic\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni). A k\u00e9zi vez\u00e9rl\u00e9s\u0171 ventil\u00e1tor fordulatsz\u00e1m\u00e1t a SET_FAN_SPEED G-k\u00f3d paranccsal lehet be\u00e1ll\u00edtani. [fan_generic extruder_partfan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"ventil\u00e1tor\" r\u00e9szben. LED-ek \u00b6 [led] \u00b6 A mikrokontroller PWM t\u0171in kereszt\u00fcl vez\u00e9relt LED-ek (\u00e9s LED-cs\u00edkok) t\u00e1mogat\u00e1sa (a \"led\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t defini\u00e1lhatunk). Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1st . [led my_led] #red_pin: #green_pin: #blue_pin: #white_pin: # Az adott LED sz\u00ednt vez\u00e9rl\u0151 t\u0171. A fenti param\u00e9terek k\u00f6z\u00fcl legal\u00e1bb # egyet meg kell adni. #cycle_time: 0.010 # Az id\u0151 (m\u00e1sodpercben) PWM ciklusonk\u00e9nt. Szoftver alap\u00fa PWM # haszn\u00e1lata eset\u00e9n aj\u00e1nlott ez 10 ezredm\u00e1sodperc vagy t\u00f6bb. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,010 m\u00e1sodperc. #hardware_pwm: False # Enged\u00e9lyezd ezt a hardveres PWM haszn\u00e1lat\u00e1hoz a szoftveres # PWM helyett. Hardveres PWM haszn\u00e1latakor a t\u00e9nyleges ciklusid\u0151t # a megval\u00f3s\u00edt\u00e1s korl\u00e1tozza, \u00e9s jelent\u0151sen elt\u00e9rhet a k\u00e9rt ciklusid\u0151t\u0151l. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Be\u00e1ll\u00edtja a LED kezdeti sz\u00edn\u00e9t. Mindegyik \u00e9rt\u00e9knek 0,0 \u00e9s 1,0 k\u00f6z\u00f6tt # kell lennie. Minden sz\u00edn alap\u00e9rtelmezett \u00e9rt\u00e9ke 0. [neopixel] \u00b6 Neopixel (m\u00e1s n\u00e9ven WS2812) LED t\u00e1mogat\u00e1s (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t defini\u00e1lhatunk \"neopixel\" el\u0151taggal). Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1st . Vedd figyelembe, hogy a linux mcu implement\u00e1ci\u00f3 jelenleg nem t\u00e1mogatja a k\u00f6zvetlen\u00fcl csatlakoztatott neopixeleket. A Linux kernel interf\u00e9szt haszn\u00e1l\u00f3 jelenlegi tervezet nem teszi lehet\u0151v\u00e9 ezt a forgat\u00f3k\u00f6nyvet, mivel a kernel GPIO interf\u00e9sze nem el\u00e9g gyors a sz\u00fcks\u00e9ges impulzussz\u00e1mok biztos\u00edt\u00e1s\u00e1hoz. [neopixel my_neopixel] pin: # A neopixelhez csatlakoztatott t\u0171. # Ennek a param\u00e9ternek a k\u00f6vetkez\u0151nek kell lennie. #chain_count: # A megadott t\u0171h\u00f6z \"l\u00e1ncolt\" Neopixel chipek sz\u00e1ma. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1 (ami azt jelenti, hogy csak egy # Neopixel csatlakozik a t\u0171h\u00f6z). #color_order: GRB # \u00c1ll\u00edtsd be a LED hardver \u00e1ltal megk\u00f6vetelt pixelsorrendj\u00e9t # (az R, G, B, W bet\u0171ket tartalmaz\u00f3 karakterl\u00e1ncot haszn\u00e1lva, a # W opcion\u00e1lis). Alternat\u00edvak\u00e9nt ez lehet a pixelsorrendek vessz\u0151vel # elv\u00e1lasztott list\u00e1ja is - egy minden egyes pixelhez LED-hez a l\u00e1ncban. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k GRB. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Ezekr\u0151l a param\u00e9terekr\u0151l l\u00e1sd a \"LED\" r\u00e9szt. [dotstar] \u00b6 Dotstar (m\u00e1s n\u00e9ven APA102) LED-t\u00e1mogat\u00e1s (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"dotstar\" el\u0151taggal). Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1st . [dotstar my_dotstar] data_pin: # A pont a dotstar adatvonal\u00e1hoz csatlakozik. # Ezt a param\u00e9tert meg kell adni. clock_pin: # A dotstar id\u0151jel vonal\u00e1hoz csatlakoztatott t\u0171. # Ezt a param\u00e9tert meg kell adni. #chain_count: # A param\u00e9terrel kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a \"neopixel\" r\u00e9szt. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 # Ezen param\u00e9terek le\u00edr\u00e1s\u00e1r\u00f3l n\u00e9zd meg a \"LED\" r\u00e9szt. [pca9533] \u00b6 PCA9533 LED-t\u00e1mogat\u00e1s. A PCA9533 a mightyboardon haszn\u00e1latos. [pca9533 my_pca9533] #i2c_address: 98 # Az I2C c\u00edm, amelyet a chip az I2C buszon haszn\u00e1l. # Haszn\u00e1ld a 98-at a PCA9533/1-hez, a 99-et a PCA9533/2-hez. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 98. #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Ezen param\u00e9terek le\u00edr\u00e1s\u00e1r\u00f3l n\u00e9zd meg a \"LED\" r\u00e9szt. [pca9632] \u00b6 PCA9632 LED t\u00e1mogat\u00e1s. A PCA9632-t a FlashForge Dreamer-ben haszn\u00e1lj\u00e1k. [pca9632 my_pca9632] #i2c_address: 98 # Az I2C c\u00edm, amelyet a chip az I2C buszon haszn\u00e1l. # Ez lehet 96, 97, 98 vagy 99. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 98. #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #scl_pin: #sda_pin: # Alternat\u00edv megold\u00e1sk\u00e9nt, ha a pca9632 nincs hardveres I2C # buszhoz csatlakoztatva, akkor megadhatja az \"\u00f3ra\" (scl_pin) # \u00e9s \"data\" (sda_pin) \u00e9rintkez\u0151ket. # Az alap\u00e9rtelmez\u00e9s a hardveres I2C haszn\u00e1lata. #color_order: RGBW # \u00c1ll\u00edtsd be a LED pixelsorrendj\u00e9t (egy R, G, B, W bet\u0171ket # tartalmaz\u00f3 sztring seg\u00edts\u00e9g\u00e9vel). Az alap\u00e9rtelmezett az RGBW. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Ezen param\u00e9terek le\u00edr\u00e1s\u00e1r\u00f3l n\u00e9zd meg a \"LED\" r\u00e9szt. Tov\u00e1bbi szerv\u00f3k, gombok \u00e9s egy\u00e9b t\u0171k \u00b6 [servo] \u00b6 Szerv\u00f3k (a \"servo\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni). A szerv\u00f3k a SET_SERVO G-k\u00f3d parancs seg\u00edts\u00e9g\u00e9vel vez\u00e9relhet\u0151k. P\u00e9ld\u00e1ul: SET_SERVO SERVO=my_servo ANGLE=180 [servo my_servo] pin: # PWM kimeneti \u00e9rintkez\u0151, amely a szerv\u00f3t vez\u00e9rli. # Ezt a param\u00e9tert meg kell adni. #maximum_servo_angle: 180 # A maxim\u00e1lis sz\u00f6g (fokban), amelyre ez a szerv\u00f3 be\u00e1ll\u00edthat\u00f3. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 180 fok. #minimum_pulse_width: 0.001 # A minim\u00e1lis impulzussz\u00e9less\u00e9g ideje (m\u00e1sodpercben). # Ennek 0 fokos sz\u00f6gnek kell megfelelnie. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,001 m\u00e1sodperc. #maximum_pulse_width: 0.002 # A maxim\u00e1lis impulzussz\u00e9less\u00e9g ideje (m\u00e1sodpercben). # Ennek meg kell felelnie a maximum_servo_angle sz\u00f6gnek. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,002 m\u00e1sodperc. #initial_angle: # Kezdeti sz\u00f6g (fokban) a szerv\u00f3 be\u00e1ll\u00edt\u00e1s\u00e1hoz. # Az alap\u00e9rtelmezett az, hogy ind\u00edt\u00e1skor nem k\u00fcld jelet. #initial_pulse_width: # A kezdeti impulzussz\u00e9less\u00e9g (m\u00e1sodpercben) a szerv\u00f3 be\u00e1ll\u00edt\u00e1s\u00e1hoz. # (Ez csak akkor \u00e9rv\u00e9nyes, ha a initial_angle nincs be\u00e1ll\u00edtva.) # Az alap\u00e9rtelmez\u00e9s az, hogy ind\u00edt\u00e1skor nem k\u00fcld jelet. [gcode_button] \u00b6 A G-k\u00f3d v\u00e9grehajt\u00e1sa, amikor egy gombot megnyomnak vagy elengednek (vagy amikor egy t\u0171 \u00e1llapota megv\u00e1ltozik). A gomb \u00e1llapot\u00e1t a QUERY_BUTTON button=my_gcode_button seg\u00edts\u00e9g\u00e9vel ellen\u0151rizhetj\u00fck. [gcode_button my_gcode_button] pin: # Az a t\u0171, amelyre a gomb csatlakozik. Ezt a param\u00e9tert meg kell adni. #analog_range: # K\u00e9t vessz\u0151vel elv\u00e1lasztott ellen\u00e1ll\u00e1s (ohmban), amely meghat\u00e1rozza # a gomb minim\u00e1lis \u00e9s maxim\u00e1lis ellen\u00e1ll\u00e1si tartom\u00e1ny\u00e1t. Ha meg van # adva az analog_range, akkor a l\u00e1bnak anal\u00f3g-k\u00e9pes t\u0171nek kell lennie. # Az alap\u00e9rtelmezett a digit\u00e1lis GPIO haszn\u00e1lata a gombhoz. #analog_pullup_resistor: # A felh\u00faz\u00e1si ellen\u00e1ll\u00e1s (ohmban), ha az analog_range meg van adva. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 4700 ohm. #press_gcode: # A gomb megnyom\u00e1sakor v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. # A G-k\u00f3d sablonok t\u00e1mogatottak. Ezt a param\u00e9tert meg kell adni. #release_gcode: # A gomb elenged\u00e9sekor v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. # A G-k\u00f3d sablonok t\u00e1mogatottak. Az alap\u00e9rtelmez\u00e9s szerint nem # futnak le parancsok a gombok felenged\u00e9sekor. [output_pin] \u00b6 Futtat\u00e1si id\u0151ben konfigur\u00e1lhat\u00f3 kimeneti t\u0171k (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"output_pin\" el\u0151taggal). Az itt konfigur\u00e1lt t\u0171k kimeneti t\u0171kk\u00e9nt lesznek be\u00e1ll\u00edtva, \u00e9s futtat\u00e1si id\u0151ben a \"SET_PIN PIN=my_pin VALUE=.1\" t\u00edpus\u00fa kiterjesztett G-k\u00f3d parancsok seg\u00edts\u00e9g\u00e9vel m\u00f3dos\u00edthatjuk \u0151ket. [output_pin my_pin] pin: # A kimenetk\u00e9nt konfigur\u00e1land\u00f3 t\u0171. Ezt a param\u00e9tert meg kell adni. #pwm: False # \u00c1ll\u00edtsd be, hogy a kimeneti l\u00e1bnak k\u00e9pesnek kell lennie # impulzussz\u00e9less\u00e9g-modul\u00e1ci\u00f3ra. Ha ez True, az \u00e9rt\u00e9kmez\u0151knek 0 \u00e9s 1 # k\u00f6z\u00f6tt kell lenni\u00fck. Ha False, az \u00e9rt\u00e9kmez\u0151k \u00e9rt\u00e9ke 0 vagy 1 legyen. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #static_value: # Ha ez be van \u00e1ll\u00edtva, akkor a t\u0171 ehhez az \u00e9rt\u00e9khez lesz rendelve ind\u00edt\u00e1skor, # \u00e9s a t\u0171 nem m\u00f3dos\u00edthat\u00f3 m\u0171k\u00f6d\u00e9s k\u00f6zben. Egy statikus t\u0171 valamivel # kevesebb RAM-ot haszn\u00e1l a mikrokontrollerben. # Az alap\u00e9rtelmezett a l\u00e1bak fut\u00e1sidej\u0171 konfigur\u00e1ci\u00f3ja. #value: # Az az \u00e9rt\u00e9k, amelyre az MCU konfigur\u00e1l\u00e1sa sor\u00e1n el\u0151sz\u00f6r be kell \u00e1ll\u00edtani a t\u0171t. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0 (alacsony fesz\u00fclts\u00e9g eset\u00e9n). #shutdown_value: # Az az \u00e9rt\u00e9k, amelyre a t\u0171t be kell \u00e1ll\u00edtani egy MCU le\u00e1ll\u00e1si esem\u00e9nyn\u00e9l. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0 (alacsony fesz\u00fclts\u00e9g eset\u00e9n). #maximum_mcu_duration: # A nem-le\u00e1ll\u00edt\u00e1si \u00e9rt\u00e9k maxim\u00e1lis id\u0151tartama az MCU \u00e1ltal a gazdag\u00e9pt\u0151l # \u00e9rkez\u0151 nyugt\u00e1z\u00e1s n\u00e9lk\u00fcl hajthat\u00f3 v\u00e9gre. Ha a gazdag\u00e9p nem tud l\u00e9p\u00e9st # tartani a friss\u00edt\u00e9ssel, az MCU le\u00e1ll, \u00e9s az \u00f6sszes \u00e9rintkez\u0151t a megfelel\u0151 # le\u00e1ll\u00edt\u00e1si \u00e9rt\u00e9kre \u00e1ll\u00edtja. Az alap\u00e9rtelmezett \u00e9rt\u00e9k: 0 (letiltva) # A szok\u00e1sos \u00e9rt\u00e9kek 5 m\u00e1sodperc k\u00f6r\u00fcliek. #cycle_time: 0.100 # Az id\u0151 (m\u00e1sodpercben) PWM ciklusonk\u00e9nt. Szoftver alap\u00fa PWM haszn\u00e1lata # eset\u00e9n aj\u00e1nlott 10 ezredm\u00e1sodperc vagy t\u00f6bb. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,100 m\u00e1sodperc a PWM l\u00e1bak eset\u00e9n. #hardware_pwm: False # Enged\u00e9lyezd ezt a hardveres PWM haszn\u00e1lat\u00e1hoz a szoftveres PWM helyett. # Hardveres PWM haszn\u00e1latakor a t\u00e9nyleges ciklusid\u0151t a megval\u00f3s\u00edt\u00e1s # korl\u00e1tozza, \u00e9s jelent\u0151sen elt\u00e9rhet a k\u00e9rt ciklusid\u0151t\u0151l. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #scale: # Ezzel a param\u00e9terrel m\u00f3dos\u00edthat\u00f3 a 'value' \u00e9s 'shutdown_value' param\u00e9terek # \u00e9rtelmez\u00e9se a PWM l\u00e1bak eset\u00e9ben. Ha meg van adva, akkor az 'value' # param\u00e9ternek 0,0 \u00e9s 'scale' k\u00f6z\u00f6tt kell lennie. Ez hasznos lehet olyan PWM # l\u00e1b konfigur\u00e1l\u00e1sakor, amely a l\u00e9ptet\u0151 fesz\u00fclts\u00e9g referencia\u00e9rt\u00e9k\u00e9t vez\u00e9rli. # A 'scale' be\u00e1ll\u00edthat\u00f3 az egyen\u00e9rt\u00e9k\u0171 l\u00e9ptet\u0151 \u00e1ramer\u0151ss\u00e9gre, ha a PWM teljesen # enged\u00e9lyezett volt, majd az 'value' param\u00e9ter megadhat\u00f3 a l\u00e9ptet\u0151 k\u00edv\u00e1nt # \u00e1ramer\u0151ss\u00e9g\u00e9vel. # Az alap\u00e9rtelmez\u00e9s szerint nem sk\u00e1l\u00e1zzuk a 'value' param\u00e9tert. [static_digital_output] \u00b6 Statikusan konfigur\u00e1lt digit\u00e1lis kimeneti t\u0171k (tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3 \"static_digital_output\" el\u0151taggal). Az itt konfigur\u00e1lt t\u0171k az MCU konfigur\u00e1l\u00e1sa sor\u00e1n GPIO kimenetk\u00e9nt lesznek be\u00e1ll\u00edtva. \u00dczem k\u00f6zben nem m\u00f3dos\u00edthat\u00f3k. [static_digital_output my_output_pins] pins: # A GPIO kimeneti t\u0171k\u00e9nt be\u00e1ll\u00edtand\u00f3 t\u0171k vessz\u0151vel elv\u00e1lasztott # list\u00e1ja. A gomb t\u0171je magas szintre lesz \u00e1ll\u00edtva, hacsak a t\u0171 neve # el\u0151tt nem szerepel \"!\". Ezt a param\u00e9tert meg kell adni. [multi_pin] \u00b6 T\u00f6bb t\u0171s kimenetek (a \"multi_pin\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3). A multi_pin kimenet egy bels\u0151 t\u0171 \u00e1lnevet hoz l\u00e9tre, amely t\u00f6bb kimeneti t\u0171t is m\u00f3dos\u00edthat minden alkalommal, amikor az \u00e1ln\u00e9v t\u0171 be van \u00e1ll\u00edtva. P\u00e9ld\u00e1ul defini\u00e1lhatunk egy \"[multi_pin my_fan]\" objektumot, amely k\u00e9t t\u0171t tartalmaz, majd be\u00e1ll\u00edthatjuk a \"pin=multi_pin:my_fan\" \u00e9rt\u00e9ket a \"[fan]\" szakaszban. Minden egyes ventil\u00e1torv\u00e1lt\u00e1skor mindk\u00e9t kimeneti t\u0171 friss\u00fcl. Ezek az \u00e1lnevek nem haszn\u00e1lhat\u00f3k l\u00e9ptet\u0151motoros t\u0171kkel. [multi_pin my_multi_pin] pins: # Az ehhez az \u00e1ln\u00e9vhez t\u00e1rs\u00edtott t\u0171k vessz\u0151vel elv\u00e1lasztott list\u00e1ja. # Ezt a param\u00e9tert meg kell adni. TMC motorvez\u00e9rl\u0151 konfigur\u00e1ci\u00f3ja \u00b6 Trinamic l\u00e9ptet\u0151motor meghajt\u00f3k konfigur\u00e1l\u00e1sa UART/SPI \u00fczemm\u00f3dban. Tov\u00e1bbi inform\u00e1ci\u00f3k a TMC Drivers \u00fatmutat\u00f3ban \u00e9s a parancsreferenci\u00e1ban is tal\u00e1lhat\u00f3ak. [tmc2130] \u00b6 TMC2130 motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1sa SPI-buszon kereszt\u00fcl. A funkci\u00f3 haszn\u00e1lat\u00e1hoz defini\u00e1ljon egy konfigur\u00e1ci\u00f3s szekci\u00f3t \"tmc2130\" el\u0151taggal, amelyet a megfelel\u0151 l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3s szekci\u00f3 neve k\u00f6vet (p\u00e9ld\u00e1ul \"[tmc2130 stepper_x]\"). [tmc2130 stepper_x] cs_pin: # A TMC2130 chip kiv\u00e1laszt\u00e1si vonal\u00e1nak megfelel\u0151 t\u0171. Ez a t\u0171 alacsony # \u00e9rt\u00e9kre lesz \u00e1ll\u00edtva az SPI-\u00fczenetek elej\u00e9n, \u00e9s az \u00fczenet befejez\u00e9se # ut\u00e1n magasra lesz h\u00fazva. Ezt a param\u00e9tert meg kell adni. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t az \u201e\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\u201d r\u00e9szben # tal\u00e1lja. #chain_position: #chain_length: # Ezek a param\u00e9terek egy SPI-l\u00e1ncot konfigur\u00e1lnak. A k\u00e9t param\u00e9ter # hat\u00e1rozza meg a l\u00e9ptet\u0151 poz\u00edci\u00f3j\u00e1t a l\u00e1ncban \u00e9s a teljes l\u00e1nchosszt. # Az 1. poz\u00edci\u00f3 a MOSI jelhez csatlakoz\u00f3 l\u00e9ptet\u0151nek felel meg. # Az alap\u00e9rtelmez\u00e9s szerint nem haszn\u00e1l SPI-l\u00e1ncot. #interpolate: True # Ha True, enged\u00e9lyezd a l\u00e9p\u00e9sinterpol\u00e1ci\u00f3t (az illeszt\u0151program # bels\u0151leg 256 mikrol\u00e9p\u00e9ses sebess\u00e9ggel l\u00e9ptet). Ez az interpol\u00e1ci\u00f3 egy # kis sziszt\u00e9m\u00e1s poz\u00edci\u00f3elt\u00e9r\u00e9st vezet be. A r\u00e9szletek\u00e9rt l\u00e1sd: # TMC_Drivers.md. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. run_current: # Az \u00e1ramer\u0151ss\u00e9g (amper RMS-ben) a motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1s\u00e1hoz a # l\u00e9ptet\u0151motor mozg\u00e1sa sor\u00e1n. Ezt a param\u00e9tert meg kell adni. #hold_current: # Az az \u00e1ramer\u0151ss\u00e9g (amper RMS-ben), amelyet a motorvez\u00e9rl\u0151nek akkor # kell leadni, amikor a l\u00e9ptet\u0151motor nem mozog. A hold_current be\u00e1ll\u00edt\u00e1sa # nem aj\u00e1nlott (a r\u00e9szletek\u00e9rt l\u00e1sd: TMC_Drivers.md). Az alap\u00e9rtelmezett # az, hogy nem cs\u00f6kkenti az \u00e1ramer\u0151ss\u00e9get. #sense_resistor: 0.110 # A motor \u00e9rz\u00e9kel\u0151 ellen\u00e1ll\u00e1s\u00e1nak ellen\u00e1ll\u00e1sa (ohmban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,110 ohm. #stealthchop_threshold: 0 # A \u201eStealthChop\u201d k\u00fcsz\u00f6b\u00e9rt\u00e9k be\u00e1ll\u00edt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges sebess\u00e9g # (mm/sec-ben). Ha be van \u00e1ll\u00edtva, a \"StealthChop\" m\u00f3d enged\u00e9lyezve # lesz, ha a l\u00e9ptet\u0151motor sebess\u00e9ge ez alatt az \u00e9rt\u00e9k alatt van. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, ami letiltja a \"StealthChop\" m\u00f3dot. #driver_IHOLDDELAY: 8 #driver_TPOWERDOWN: 0 #driver_TBL: 1 #driver_TOFF: 4 #driver_HEND: 7 #driver_HSTRT: 0 #driver_PWM_AUTOSCALE: True #driver_PWM_FREQ: 1 #driver_PWM_GRAD: 4 #driver_PWM_AMPL: 128 #driver_SGT: 0 # \u00c1ll\u00edtsd be a megadott regisztert a TMC2130 chip konfigur\u00e1ci\u00f3ja sor\u00e1n. # Ez egy\u00e9ni motorparam\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. # Az egyes param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a param\u00e9ter neve mellett # tal\u00e1lhat\u00f3k a fenti list\u00e1ban. #diag0_pin: #diag1_pin: # A mikrovez\u00e9rl\u0151 t\u0171je a TMC2130 chip egyik DIAG t\u0171j\u00e9hez csatlakozik. # Csak egyetlen DIAG t\u0171t kell megadni. A t\u0171 \"active low\", ez\u00e9rt # \u00e1ltal\u00e1ban \"^!\" el\u0151tagja van. Ennek be\u00e1ll\u00edt\u00e1sa egy # \u201etmc2130_stepper_x:virtual_endstop\u201d virtu\u00e1lis t\u0171t hoz l\u00e9tre, amely a # l\u00e9ptet\u0151 endstop_pin-jek\u00e9nt haszn\u00e1lhat\u00f3. Ez lehet\u0151v\u00e9 teszi az # \u201e\u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel\u201d funkci\u00f3t. (Gy\u0151z\u0151dj meg arr\u00f3l, # hogy a driver_SGT-t is megfelel\u0151 \u00e9rz\u00e9kenys\u00e9gi \u00e9rt\u00e9kre \u00e1ll\u00edtja be.) # Az alap\u00e9rtelmez\u00e9s az, hogy nem enged\u00e9lyezi az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli # kezd\u0151pont felv\u00e9telt. [tmc2208] \u00b6 TMC2208 (vagy TMC2224) motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1sa egyvezet\u00e9kes UART-on kereszt\u00fcl. A funkci\u00f3 haszn\u00e1lat\u00e1hoz defini\u00e1ljon egy konfigur\u00e1ci\u00f3s r\u00e9szt \"tmc2208\" el\u0151taggal, amelyet a megfelel\u0151 l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3s r\u00e9sz neve k\u00f6vet (p\u00e9ld\u00e1ul \"[tmc2208 stepper_x]\"). [tmc2208 stepper_x] uart_pin: # A TMC2208 PDN_UART vonalhoz csatlakoztatott t\u0171. # Ezt a param\u00e9tert meg kell adni. #tx_pin: # Ha k\u00fcl\u00f6n v\u00e9teli \u00e9s ad\u00e1si vonalat haszn\u00e1l a meghajt\u00f3val val\u00f3 # kommunik\u00e1ci\u00f3hoz, akkor \u00e1ll\u00edtsd be az uart_pin param\u00e9tert a v\u00e9teli # l\u00e1bra, \u00e9s a tx_pin \u00e9rt\u00e9ket az \u00e1tviteli l\u00e1bra. Az alap\u00e9rtelmezett az # uart_pin haszn\u00e1lata mind olvas\u00e1shoz, mind \u00edr\u00e1shoz. #select_pins: # A tmc2208 UART el\u00e9r\u00e9se el\u0151tt be\u00e1ll\u00edtand\u00f3 t\u0171k vessz\u0151vel elv\u00e1lasztott # list\u00e1ja. Ez hasznos lehet egy anal\u00f3g mux konfigur\u00e1l\u00e1sakor az UART # kommunik\u00e1ci\u00f3hoz. Az alap\u00e9rtelmezett az, hogy nem konfigur\u00e1l # semmilyen \u00e9rintkez\u0151t. #interpolate: True # Ha True, enged\u00e9lyezd a l\u00e9p\u00e9sinterpol\u00e1ci\u00f3t (a motorvez\u00e9rl\u0151 bels\u0151leg # 256 mikrol\u00e9p\u00e9ses sebess\u00e9ggel l\u00e9ptet). Ez az interpol\u00e1ci\u00f3 egy kis # sziszt\u00e9m\u00e1s poz\u00edci\u00f3elt\u00e9r\u00e9st vezet be. A r\u00e9szletek\u00e9rt l\u00e1sd: # TMC_Drivers.md. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. run_current: # Az \u00e1ramer\u0151ss\u00e9g (amper RMS-ben) a meghajt\u00f3 konfigur\u00e1l\u00e1s\u00e1hoz a # l\u00e9ptet\u0151motor mozg\u00e1sa sor\u00e1n. Ezt a param\u00e9tert meg kell adni. #hold_current: # Az az \u00e1ramer\u0151ss\u00e9g (amper RMS-ben), amelyet a motorvez\u00e9rl\u0151 akkor # ad le, amikor a l\u00e9ptet\u0151 nem mozog. A hold_current be\u00e1ll\u00edt\u00e1sa nem # aj\u00e1nlott (a r\u00e9szletek\u00e9rt l\u00e1sd: TMC_Drivers.md). # Az alap\u00e9rtelmezett az, hogy nem cs\u00f6kkenti az \u00e1ramer\u0151ss\u00e9get. #sense_resistor: 0.110 # A motor \u00e9rz\u00e9kel\u0151 ellen\u00e1ll\u00e1s\u00e1nak ellen\u00e1ll\u00e1sa (ohmban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,110 ohm. #stealthchop_threshold: 0 # A \u201eStealthChop\u201d k\u00fcsz\u00f6b\u00e9rt\u00e9k be\u00e1ll\u00edt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges sebess\u00e9g # (mm/sec-ben). Ha be van \u00e1ll\u00edtva, a \"StealthChop\" m\u00f3d enged\u00e9lyezve # lesz, ha a l\u00e9ptet\u0151motor sebess\u00e9ge ez alatt az \u00e9rt\u00e9k alatt van. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, ami letiltja a \"StealthChop\" m\u00f3dot. #driver_IHOLDDELAY: 8 #driver_TPOWERDOWN: 20 #driver_TBL: 2 #driver_TOFF: 3 #driver_HEND: 0 #driver_HSTRT: 5 #driver_PWM_AUTOGRAD: True #driver_PWM_AUTOSCALE: True #driver_PWM_LIM: 12 #driver_PWM_REG: 8 #driver_PWM_FREQ: 1 #driver_PWM_GRAD: 14 #driver_PWM_OFS: 36 # \u00c1ll\u00edtsd be a megadott regisztert a TMC2208 chip konfigur\u00e1ci\u00f3ja sor\u00e1n. # Ez egy\u00e9ni motorparam\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. Az egyes # param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a param\u00e9ter neve mellett # tal\u00e1lhat\u00f3k a fenti list\u00e1ban. [tmc2209] \u00b6 TMC2209 motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1sa egyvezet\u00e9kes UART-on kereszt\u00fcl. A funkci\u00f3 haszn\u00e1lat\u00e1hoz defini\u00e1ljon egy konfigur\u00e1ci\u00f3s szekci\u00f3t \"tmc2209\" el\u0151taggal, amelyet a megfelel\u0151 l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3s szekci\u00f3 neve k\u00f6vet (p\u00e9ld\u00e1ul \"[tmc2209 stepper_x]\"). [tmc2209 stepper_x] uart_pin: #tx_pin: #select_pins: #interpolate: True run_current: #hold_current: #sense_resistor: 0.110 #stealthchop_threshold: 0 # A param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd a \"TMC2208\" r\u00e9szt. #uart_address: # A TMC2209 chip c\u00edme UART \u00fczenetekhez (0 \u00e9s 3 k\u00f6z\u00f6tti eg\u00e9sz sz\u00e1m). # Ezt \u00e1ltal\u00e1ban akkor haszn\u00e1lj\u00e1k, ha t\u00f6bb TMC2209 chip csatlakozik # ugyanahhoz az UART \u00e9rintkez\u0151h\u00f6z. Az alap\u00e9rtelmezett \u00e9rt\u00e9k nulla. #driver_IHOLDDELAY: 8 #driver_TPOWERDOWN: 20 #driver_TBL: 2 #driver_TOFF: 3 #driver_HEND: 0 #driver_HSTRT: 5 #driver_PWM_AUTOGRAD: True #driver_PWM_AUTOSCALE: True #driver_PWM_LIM: 12 #driver_PWM_REG: 8 #driver_PWM_FREQ: 1 #driver_PWM_GRAD: 14 #driver_PWM_OFS: 36 #driver_SGTHRS: 0 # \u00c1ll\u00edtsd be a megadott regisztert a TMC2209 chip konfigur\u00e1ci\u00f3ja sor\u00e1n. # Ez egy\u00e9ni motorparam\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. # Az egyes param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a param\u00e9ter neve # mellett tal\u00e1lhat\u00f3k a fenti list\u00e1ban. #diag_pin: # A TMC2209 chip DIAG t\u0171j\u00e9hez csatlakoztatott mikrovez\u00e9rl\u0151 t\u0171je. # A t\u0171 el\u0151tagja \u00e1ltal\u00e1ban \"^\"-vel t\u00f6rt\u00e9nik, hogy lehet\u0151v\u00e9 tegye a # felh\u00faz\u00e1st. Ennek be\u00e1ll\u00edt\u00e1sa egy # \"tmc2209_stepper_x:virtual_endstop\" virtu\u00e1lis t\u0171t hoz l\u00e9tre, # amely a l\u00e9ptet\u0151 endstop_pin-jek\u00e9nt haszn\u00e1lhat\u00f3. Ez lehet\u0151v\u00e9 teszi a # \"v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telt\". (Gy\u0151z\u0151dj meg arr\u00f3l, # hogy a driver_SGTHRS-t is megfelel\u0151 \u00e9rz\u00e9kenys\u00e9gi \u00e9rt\u00e9kre \u00e1ll\u00edtja be.) # Alap\u00e9rtelmez\u00e9s szerint nincs enged\u00e9lyezve a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 n\u00e9lk\u00fcli # kezd\u0151pont felv\u00e9telt. [tmc2660] \u00b6 TMC2660 motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1sa SPI-buszon kereszt\u00fcl. A funkci\u00f3 haszn\u00e1lat\u00e1hoz defini\u00e1ljon egy konfigur\u00e1ci\u00f3s szekci\u00f3t tmc2660 el\u0151taggal, amelyet a megfelel\u0151 l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3s szekci\u00f3 neve k\u00f6vet (p\u00e9ld\u00e1ul \"[tmc2660 stepper_x]\"). [tmc2660 stepper_x] cs_pin: # A TMC2660 chip kiv\u00e1laszt\u00e1si vonal\u00e1nak megfelel\u0151 t\u0171. Ez a t\u0171 # alacsonyra lesz \u00e1ll\u00edtva az SPI-\u00fczenetek elej\u00e9n, \u00e9s magasra az # \u00fczenet\u00e1tvitel befejez\u00e9se ut\u00e1n. Ezt a param\u00e9tert meg kell adni. #spi_speed: 4000000 # A TMC2660 l\u00e9ptet\u0151 meghajt\u00f3val val\u00f3 kommunik\u00e1ci\u00f3hoz haszn\u00e1lt # SPI-busz-frekvencia. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 4000000. #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t a \u201e\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\u201d # r\u00e9szben tal\u00e1lja. #interpolate: True # Ha True, enged\u00e9lyezd a l\u00e9p\u00e9sinterpol\u00e1ci\u00f3t (az illeszt\u0151program # bels\u0151leg 256 mikrol\u00e9p\u00e9ses sebess\u00e9ggel l\u00e9ptet). Ez csak akkor # m\u0171k\u00f6dik, ha a mikrol\u00e9p\u00e9sek 16-ra vannak \u00e1ll\u00edtva. Az interpol\u00e1ci\u00f3 # egy kis sziszt\u00e9m\u00e1s poz\u00edci\u00f3elt\u00e9r\u00e9st vezet be. A r\u00e9szletek\u00e9rt l\u00e1sd a # TMC_Drivers.md f\u00e1jlt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. run_current: # A motorvez\u00e9rl\u0151 \u00e1ltal a l\u00e9ptet\u0151 mozg\u00e1sa sor\u00e1n leadott \u00e1ram er\u0151ss\u00e9ge # (amper RMS-ben). Ezt a param\u00e9tert meg kell adni. #sense_resistor: # A motor \u00e9rz\u00e9kel\u0151 ellen\u00e1ll\u00e1s\u00e1nak ellen\u00e1ll\u00e1sa (ohmban). # Ezt a param\u00e9tert meg kell adni. #idle_current_percent: 100 # A motorvez\u00e9rl\u0151 run_current sz\u00e1zal\u00e9kos ar\u00e1nya lecs\u00f6kken, amikor az # \u00fcresj\u00e1rati id\u0151t\u00fall\u00e9p\u00e9s lej\u00e1r (az id\u0151t\u00fall\u00e9p\u00e9st az [idle_timeout] # konfigur\u00e1ci\u00f3s szakaszban kell be\u00e1ll\u00edtani). Az \u00e1ramer\u0151ss\u00e9g ism\u00e9t # megemelkedik, ha a l\u00e9ptet\u0151nek ism\u00e9t mozognia kell. \u00dcgyelj arra, # hogy ezt el\u00e9g magas \u00e9rt\u00e9kre \u00e1ll\u00edtsd be, hogy a l\u00e9ptet\u0151k ne vesz\u00edts\u00e9k el # poz\u00edci\u00f3jukat. Van egy kis k\u00e9sleltet\u00e9s is, am\u00edg az \u00e1ram ism\u00e9t # megemelkedik, ez\u00e9rt ezt vedd figyelembe, amikor a l\u00e9ptet\u0151 # alapj\u00e1rata k\u00f6zben gyors mozdulatokat ad parancsba. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 100 (nincs cs\u00f6kkent\u00e9s). #driver_TBL: 2 #driver_RNDTF: 0 #driver_HDEC: 0 #driver_CHM: 0 #driver_HEND: 3 #driver_HSTRT: 3 #driver_TOFF: 4 #driver_SEIMIN: 0 #driver_SEDN: 0 #driver_SEMAX: 0 #driver_SEUP: 0 #driver_SEMIN: 0 #driver_SFILT: 0 #driver_SGT: 0 #driver_SLPH: 0 #driver_SLPL: 0 #driver_DISS2G: 0 #driver_TS2G: 3 # \u00c1ll\u00edtsd be a megadott param\u00e9tert a TMC2660 chip konfigur\u00e1ci\u00f3ja sor\u00e1n. # Ez egy\u00e9ni motorvez\u00e9rl\u0151 param\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. # Az egyes param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a param\u00e9ter neve # mellett tal\u00e1lhat\u00f3k a fenti list\u00e1ban. Tekintsd meg a TMC2660 adatlapj\u00e1t # az egyes param\u00e9terek m\u0171k\u00f6d\u00e9s\u00e9r\u0151l \u00e9s a param\u00e9ter kombin\u00e1ci\u00f3k # korl\u00e1toz\u00e1sair\u00f3l. K\u00fcl\u00f6n\u00f6s figyelmet kell ford\u00edtani a CHOPCONF # regiszterre, ahol a CHM null\u00e1ra vagy egyesre \u00e1ll\u00edt\u00e1sa # elrendez\u00e9sm\u00f3dos\u00edt\u00e1sokhoz vezet (a HDEC els\u0151 bitje) ebben az esetben # a HSTRT MSB-jek\u00e9nt \u00e9rtelmez\u0151dik). [tmc5160] \u00b6 TMC5160 motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1sa SPI-buszon kereszt\u00fcl. A funkci\u00f3 haszn\u00e1lat\u00e1hoz defini\u00e1ljon egy konfigur\u00e1ci\u00f3s szekci\u00f3t \"tmc5160\" el\u0151taggal, amelyet a megfelel\u0151 l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3s szekci\u00f3 neve k\u00f6vet (p\u00e9ld\u00e1ul \"[tmc5160 stepper_x]\"). [tmc5160 stepper_x] cs_pin: # A TMC5160 chip kiv\u00e1laszt\u00e1si vonal\u00e1nak megfelel\u0151 t\u0171. Ez a t\u0171 alacsony # \u00e9rt\u00e9kre lesz \u00e1ll\u00edtva az SPI-\u00fczenetek elej\u00e9n, \u00e9s az \u00fczenet befejez\u00e9se ut\u00e1n # magasra v\u00e1ltozik. Ezt a param\u00e9tert meg kell adni. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t az \u201e\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\u201d # r\u00e9szben tal\u00e1lja. #chain_position: #chain_length: # Ezek a param\u00e9terek egy SPI-l\u00e1ncot konfigur\u00e1lnak. A k\u00e9t param\u00e9ter # hat\u00e1rozza meg a l\u00e9ptet\u0151 poz\u00edci\u00f3j\u00e1t a l\u00e1ncban \u00e9s a teljes l\u00e1nchosszt. # Az 1. poz\u00edci\u00f3 a MOSI jelhez csatlakoz\u00f3 l\u00e9ptet\u0151nek felel meg. # Az alap\u00e9rtelmez\u00e9s szerint nem haszn\u00e1l SPI-l\u00e1ncot. #interpolate: True # Ha True, enged\u00e9lyezd a l\u00e9p\u00e9sinterpol\u00e1ci\u00f3t (a motorvez\u00e9rl\u0151 bels\u0151leg # 256 mikrol\u00e9p\u00e9ses sebess\u00e9ggel l\u00e9ptet). Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. run_current: # Az \u00e1ramer\u0151ss\u00e9g (amper RMS-ben) a meghajt\u00f3 konfigur\u00e1l\u00e1s\u00e1hoz a # l\u00e9ptet\u0151 mozg\u00e1sa sor\u00e1n. Ezt a param\u00e9tert meg kell adni. #hold_current: # Az az \u00e1ramer\u0151ss\u00e9g (amper RMS-ben), amelyet a motorvez\u00e9rl\u0151 akkor # ad le, amikor a l\u00e9ptet\u0151 nem mozog. A hold_current be\u00e1ll\u00edt\u00e1sa nem # aj\u00e1nlott (a r\u00e9szletek\u00e9rt l\u00e1sd: TMC_Drivers.md). # Az alap\u00e9rtelmezett az, hogy nem cs\u00f6kkenti az \u00e1ramer\u0151ss\u00e9get. #sense_resistor: 0.075 # A motor \u00e9rz\u00e9kel\u0151 ellen\u00e1ll\u00e1s\u00e1nak ellen\u00e1ll\u00e1sa (ohmban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,075 ohm. #stealthchop_threshold: 0 # A \u201eStealthChop\u201d k\u00fcsz\u00f6b\u00e9rt\u00e9k be\u00e1ll\u00edt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges sebess\u00e9g # (mm/sec-ben). Ha be van \u00e1ll\u00edtva, a \"StealthChop\" m\u00f3d enged\u00e9lyezve # lesz, ha a l\u00e9ptet\u0151motor sebess\u00e9ge ez alatt az \u00e9rt\u00e9k alatt van. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, ami letiltja a \"StealthChop\" m\u00f3dot. #driver_IHOLDDELAY: 6 #driver_TPOWERDOWN: 10 #driver_TBL: 2 #driver_TOFF: 3 #driver_HEND: 2 #driver_HSTRT: 5 #driver_FD3: 0 #driver_TPFD: 4 #driver_CHM: 0 #driver_VHIGHFS: 0 #driver_VHIGHCHM: 0 #driver_DISS2G: 0 #driver_DISS2VS: 0 #driver_PWM_AUTOSCALE: True #driver_PWM_AUTOGRAD: True #driver_PWM_FREQ: 0 #driver_FREEWHEEL: 0 #driver_PWM_GRAD: 0 #driver_PWM_OFS: 30 #driver_PWM_REG: 4 #driver_PWM_LIM: 12 #driver_SGT: 0 #driver_SEMIN: 0 #driver_SEUP: 0 #driver_SEMAX: 0 #driver_SEDN: 0 #driver_SEIMIN: 0 #driver_SFILT: 0 # \u00c1ll\u00edtsd be a megadott regisztert a TMC5160 chip konfigur\u00e1ci\u00f3ja sor\u00e1n. # Ez egy\u00e9ni motorparam\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. Az egyes # param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a param\u00e9ter neve mellett # tal\u00e1lhat\u00f3k a fenti list\u00e1ban. #diag0_pin: #diag1_pin: # A mikrovez\u00e9rl\u0151 t\u0171je a TMC5160 chip egyik DIAG vonal\u00e1hoz csatlakozik. # Csak egyetlen DIAG t\u0171t kell megadni. A t\u0171 \"active low\", ez\u00e9rt \u00e1ltal\u00e1ban # \"^!\" el\u0151tagja van. Ennek be\u00e1ll\u00edt\u00e1sa egy # \u201etmc5160_stepper_x:virtual_endstop\u201d virtu\u00e1lis t\u0171t hoz l\u00e9tre, amely a # l\u00e9ptet\u0151 endstop_pin-jek\u00e9nt haszn\u00e1lhat\u00f3. Ez lehet\u0151v\u00e9 teszi az \u201e\u00e9rz\u00e9kel\u0151 # n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel\u201d funkci\u00f3t. (Gy\u0151z\u0151dj meg arr\u00f3l, hogy a # driver_SGT-t is megfelel\u0151 \u00e9rz\u00e9kenys\u00e9gi \u00e9rt\u00e9kre \u00e1ll\u00edtja be.) # Az alap\u00e9rtelmez\u00e9s az, hogy nem enged\u00e9lyezi az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli # kezd\u0151pont felv\u00e9telt. Fut\u00e1s-idej\u0171 l\u00e9ptet\u0151motor \u00e1ram konfigur\u00e1ci\u00f3 \u00b6 [ad5206] \u00b6 Statikusan konfigur\u00e1lt AD5206 digipotok, amelyek SPI-buszon kereszt\u00fcl csatlakoznak (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"ad5206\" el\u0151taggal). [ad5206 my_digipot] enable_pin: # Az AD5206 chip kiv\u00e1laszt\u00e1si vonal\u00e1nak megfelel\u0151 pin. Ez a pin # az SPI-\u00fczenetek elej\u00e9n alacsonyra lesz \u00e1ll\u00edtva, \u00e9s magasra emelkedik # az \u00fczenet befejez\u00e9se ut\u00e1n. Ezt a param\u00e9tert meg kell adni. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # L\u00e1sd az \"\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\" c\u00edm\u0171 le\u00edr\u00e1st a # fenti param\u00e9terek megad\u00e1s\u00e1hoz. #channel_1: #channel_2: #channel_3: #channel_4: #channel_5: #channel_6: # Az adott AD5206 csatorna statikus be\u00e1ll\u00edt\u00e1s\u00e1ra szolg\u00e1l\u00f3 \u00e9rt\u00e9k. Ez # \u00e1ltal\u00e1ban 0,0 \u00e9s 1,0 k\u00f6z\u00f6tti sz\u00e1mra van \u00e1ll\u00edtva, ahol az 1,0 a # legnagyobb ellen\u00e1ll\u00e1s \u00e9s 0,0 a legkisebb ellen\u00e1ll\u00e1s. Azonban, # a tartom\u00e1ny megv\u00e1ltoztathat\u00f3 a 'scale' param\u00e9terrel (l\u00e1sd al\u00e1bb). # Ha egy csatorna nincs megadva, akkor konfigur\u00e1latlanul marad. #scale: # Ezzel a param\u00e9terrel m\u00f3dos\u00edthat\u00f3 a 'channel_x' param\u00e9ter # \u00e9rtelmez\u00e9se. Ha megadod, akkor a 'channel_x' param\u00e9tereknek # 0,0 \u00e9s 'scale' k\u00f6z\u00f6tt kell lennie. Ez akkor lehet hasznos, ha az # AD5206 a l\u00e9ptet\u0151 fesz\u00fclts\u00e9g referenci\u00e1k be\u00e1ll\u00edt\u00e1s\u00e1ra szolg\u00e1l. A \u201em\u00e9rleg\u201d tud # egyen\u00e9rt\u00e9k\u0171 l\u00e9ptet\u0151 \u00e1ramer\u0151ss\u00e9get \u00e1ll\u00edtani, ha az AD5206 \u00e9rt\u00e9ken lenne # a legnagyobb ellen\u00e1ll\u00e1sa, majd a 'channel_x' param\u00e9terek lehetnek # megadva a l\u00e9ptet\u0151 k\u00edv\u00e1nt amper\u00e9rt\u00e9k\u00e9vel. Az # alap\u00e9rtelmez\u00e9s szerint nem sk\u00e1l\u00e1zza a 'channel_x' param\u00e9tereket. [mcp4451] \u00b6 Statikusan konfigur\u00e1lt MCP4451 digipot, amely I2C buszon kereszt\u00fcl csatlakozik (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"mcp4451\" el\u0151taggal). [mcp4451 my_digipot] i2c_address: # Az I2C c\u00edm, amelyet a chip az I2C buszon haszn\u00e1l. # Ezt a param\u00e9tert meg kell adni. #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #wiper_0: #wiper_1: #wiper_2: #wiper_3: # Az az \u00e9rt\u00e9k, amelyre az adott MCP4451 \"wiper\" statikusan be\u00e1ll\u00edthat\u00f3. # Ez \u00e1ltal\u00e1ban 0,0 \u00e9s 1,0 k\u00f6z\u00f6tti sz\u00e1mra van be\u00e1ll\u00edtva, ahol az 1,0 a # legnagyobb ellen\u00e1ll\u00e1s, a 0,0 pedig a legkisebb ellen\u00e1ll\u00e1s. # A tartom\u00e1ny azonban m\u00f3dos\u00edthat\u00f3 a 'scale' param\u00e9terrel (l\u00e1sd al\u00e1bb). # Ha nincs megadva 'wiper', akkor az konfigur\u00e1latlanul marad. #scale: # Ezzel a param\u00e9terrel m\u00f3dos\u00edthat\u00f3 a 'wiper_x' param\u00e9terek \u00e9rtelmez\u00e9se. # Ha meg van adva, akkor a 'wiper_x' param\u00e9ternek 0,0 \u00e9s 'scale' k\u00f6z\u00f6tt # kell lennie. Ez akkor lehet hasznos, ha az MCP4451-et a l\u00e9ptet\u0151 # fesz\u00fclts\u00e9greferenci\u00e1k be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lj\u00e1k. A 'scale' be\u00e1ll\u00edthat\u00f3 az # egyen\u00e9rt\u00e9k\u0171 l\u00e9ptet\u0151 \u00e1ramer\u0151ss\u00e9gre, ha az MCP4451 a legnagyobb # ellen\u00e1ll\u00e1son volt, majd a 'wiper_x' param\u00e9terek megadhat\u00f3k a # l\u00e9ptet\u0151 k\u00edv\u00e1nt \u00e1ramer\u0151ss\u00e9ge seg\u00edts\u00e9g\u00e9vel. # Az alap\u00e9rtelmez\u00e9s az, hogy a 'wiper_x' param\u00e9tereket nem sk\u00e1l\u00e1zzuk. [mcp4728] \u00b6 Statikusan konfigur\u00e1lt MCP4728 digit\u00e1lis-anal\u00f3g \u00e1talak\u00edt\u00f3, amely I2C buszon kereszt\u00fcl csatlakozik (az \"mcp4728\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni). [mcp4728 my_dac] #i2c_address: 96 # Az I2C c\u00edm, amelyet a chip az I2C buszon haszn\u00e1l. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 96. #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #channel_a: #channel_b: #channel_c: #channel_d: # Az adott MCP4728 csatorna statikus be\u00e1ll\u00edt\u00e1s\u00e1ra szolg\u00e1l\u00f3 \u00e9rt\u00e9k. # Ez \u00e1ltal\u00e1ban 0,0 \u00e9s 1,0 k\u00f6z\u00f6tti sz\u00e1mra van be\u00e1ll\u00edtva, ahol az 1,0 a # legmagasabb fesz\u00fclts\u00e9g (2,048 V), a 0,0 pedig a legalacsonyabb # fesz\u00fclts\u00e9g. A tartom\u00e1ny azonban m\u00f3dos\u00edthat\u00f3 a 'scale' # param\u00e9terrel (l\u00e1sd al\u00e1bb). # Ha egy csatorna nincs megadva, akkor az konfigur\u00e1latlanul marad. #scale: # Ez a param\u00e9ter haszn\u00e1lhat\u00f3 a 'channel_x' param\u00e9terek # \u00e9rtelmez\u00e9s\u00e9nek megv\u00e1ltoztat\u00e1s\u00e1ra. Ha meg van adva, akkor a # 'channel_x' param\u00e9ternek 0,0 \u00e9s 'scale' k\u00f6z\u00f6tt kell lennie. Ez akkor # lehet hasznos, ha az MCP4728-at a l\u00e9ptet\u0151 fesz\u00fclts\u00e9greferenci\u00e1k # be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lj\u00e1k. A 'scale' be\u00e1ll\u00edthat\u00f3 az egyen\u00e9rt\u00e9k\u0171 l\u00e9ptet\u0151 # \u00e1ramer\u0151ss\u00e9g\u00e9re, ha az MCP4728 a legmagasabb fesz\u00fclts\u00e9gen volt # (2,048 V), majd a 'channel_x' param\u00e9terek megadhat\u00f3k a l\u00e9ptet\u0151 # k\u00edv\u00e1nt amper\u00e9rt\u00e9k\u00e9vel. Az alap\u00e9rtelmezett az, hogy nem # m\u00e9retezi a 'channel_x' param\u00e9tereket. [mcp4018] \u00b6 Statikusan konfigur\u00e1lt MCP4018 digipot, amely k\u00e9t GPIO \"bit banging\" t\u0171n kereszt\u00fcl csatlakozik (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"mcp4018\" el\u0151taggal). [mcp4018 my_digipot] scl_pin: # Az SCL \"\u00f3ra\" t\u0171je. Ezt a param\u00e9tert meg kell adni. sda_pin: # Az SDA \"adat\" t\u0171je. Ezt a param\u00e9tert meg kell adni. wiper: # Az az \u00e9rt\u00e9k, amelyre az adott MCP4018 \"wiper\" statikusan be\u00e1ll\u00edthat\u00f3. # Ez \u00e1ltal\u00e1ban 0,0 \u00e9s 1,0 k\u00f6z\u00f6tti sz\u00e1mra van be\u00e1ll\u00edtva, ahol az 1,0 a # legnagyobb ellen\u00e1ll\u00e1s, a 0,0 pedig a legkisebb ellen\u00e1ll\u00e1s. # A tartom\u00e1ny azonban m\u00f3dos\u00edthat\u00f3 a 'scale' param\u00e9terrel (l\u00e1sd al\u00e1bb). # Ezt a param\u00e9tert meg kell adni. #scale: # Ezzel a param\u00e9terrel m\u00f3dos\u00edthat\u00f3 a 'wiper' param\u00e9ter \u00e9rtelmez\u00e9se. # Ha van, akkor az 'wiper' param\u00e9ternek 0,0 \u00e9s 'scale' k\u00f6z\u00f6tt kell lennie. # Ez akkor lehet hasznos, ha az MCP4018-at a l\u00e9ptet\u0151 fesz\u00fclts\u00e9greferenci\u00e1k # be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lj\u00e1k. A 'scale' be\u00e1ll\u00edthat\u00f3 az egyen\u00e9rt\u00e9k\u0171 l\u00e9ptet\u0151 # \u00e1ramer\u0151ss\u00e9g\u00e9re, ha az MCP4018 a legnagyobb ellen\u00e1ll\u00e1son van, # majd a 'wiper' param\u00e9ter megadhat\u00f3 a l\u00e9ptet\u0151 k\u00edv\u00e1nt amper\u00e9rt\u00e9k\u00e9vel. # Az alap\u00e9rtelmezett be\u00e1ll\u00edt\u00e1s az, hogy nem sk\u00e1l\u00e1zza a 'wiper' param\u00e9tert. Kijelz\u0151t\u00e1mogat\u00e1s \u00b6 [display] \u00b6 A mikrokontrollerhez csatlakoztatott kijelz\u0151 t\u00e1mogat\u00e1sa. [display] lcd_type: # A haszn\u00e1lt LCD chip t\u00edpusa. Ez lehet \"hd44780\", \"hd44780_spi\", \"st7920\", # \"emulated_st7920\", \"uc1701\", \"ssd1306\" vagy \"sh1106\". Az egyes # t\u00edpusokr\u00f3l \u00e9s az \u00e1ltaluk biztos\u00edtott tov\u00e1bbi param\u00e9terekr\u0151l az al\u00e1bbi # k\u00e9perny\u0151szakaszokban tal\u00e1l inform\u00e1ci\u00f3kat. # Ezt a param\u00e9tert meg kell adni. #display_group: # A kijelz\u0151n megjelen\u00edtend\u0151 display_data csoport neve. Ez szab\u00e1lyozza a # k\u00e9perny\u0151 tartalm\u00e1t (tov\u00e1bbi inform\u00e1ci\u00f3\u00e9rt l\u00e1sd a \u201edisplay_data\u201d r\u00e9szt). # Az alap\u00e9rtelmezett _default_20x4 a hd44780-as kijelz\u0151kn\u00e9l \u00e9s a # _default_16x4 a t\u00f6bbi k\u00e9perny\u0151n\u00e9l. #menu_timeout: # Id\u0151korl\u00e1t a men\u00fch\u00f6z. Ha ennyi m\u00e1sodpercig inakt\u00edv, az automatikusan # kil\u00e9p a men\u00fcb\u0151l, vagy visszat\u00e9r a f\u0151men\u00fcbe, ha az automatikus ind\u00edt\u00e1s # enged\u00e9lyezve van. Az alap\u00e9rtelmezett 0 m\u00e1sodperc (letiltva) #menu_root: # A f\u0151men\u00fc r\u00e9sz neve, amely akkor jelenik meg, amikor a k\u00f3dol\u00f3ra kattint # a kezd\u0151k\u00e9perny\u0151n. Az alap\u00e9rtelmezett \u00e9rt\u00e9k a __main, \u00e9s ez a # klippy/extras/display/menu.cfg f\u00e1jlban meghat\u00e1rozott alap\u00e9rtelmezett # men\u00fcket mutatja. #menu_reverse_navigation: # Ha enged\u00e9lyezve van, a list\u00e1ban t\u00f6rt\u00e9n\u0151 navig\u00e1ci\u00f3 fel \u00e9s lefel\u00e9 ir\u00e1ny\u00e1t # v\u00e1ltja. Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. Ez a param\u00e9ter nem k\u00f6telez\u0151. #encoder_pins: # A k\u00f3dol\u00f3hoz csatlakoztatott \u00e9rintkez\u0151k. A k\u00f3dol\u00f3 haszn\u00e1latakor 2 # \u00e9rintkez\u0151t kell biztos\u00edtani. Ezt a param\u00e9tert a men\u00fc haszn\u00e1latakor kell # megadni. #encoder_steps_per_detent: # H\u00e1ny l\u00e9p\u00e9st ad ki a k\u00f3dol\u00f3 reteszel\u00e9senk\u00e9nt (\"kattint\u00e1s\"). Ha a # k\u00f3dol\u00f3nak k\u00e9t reteszre van sz\u00fcks\u00e9ge a bejegyz\u00e9sek k\u00f6z\u00f6tti mozg\u00e1shoz, # vagy k\u00e9t bejegyz\u00e9st mozgat meg egy r\u00f6gz\u00edt\u00e9sb\u0151l, pr\u00f3b\u00e1ld meg ezt # megv\u00e1ltoztatni. A megengedett \u00e9rt\u00e9kek 2 (f\u00e9ll\u00e9pcs\u0151s) vagy # 4 (teljes l\u00e9p\u00e9s). Az alap\u00e9rtelmezett \u00e9rt\u00e9k a 4. #click_pin: # Az \u201eEnter\u201d gombhoz vagy a k\u00f3dol\u00f3 \u201ekattint\u00e1s\u00e1hoz\u201d csatlakoztatott t\u0171. # Ezt a param\u00e9tert a men\u00fc haszn\u00e1latakor kell megadni. # Az \u201eanalog_range_click_pin\u201d konfigur\u00e1ci\u00f3s param\u00e9ter jelenl\u00e9te ezt a # param\u00e9tert digit\u00e1lisr\u00f3l anal\u00f3gra v\u00e1ltoztatja. #back_pin: # A \u201evissza\u201d gombhoz csatlakoztatott t\u0171. Ez a param\u00e9ter nem k\u00f6telez\u0151, # a men\u00fc en\u00e9lk\u00fcl is haszn\u00e1lhat\u00f3. Az \u201eanalog_range_back_pin\u201d # konfigur\u00e1ci\u00f3s param\u00e9ter jelenl\u00e9te ezt a param\u00e9tert digit\u00e1lisr\u00f3l # anal\u00f3gra v\u00e1ltoztatja. #up_pin: # A t\u0171 a \u201efel\u201d gombhoz csatlakozik. Ezt a param\u00e9tert k\u00f3dol\u00f3 n\u00e9lk\u00fcli men\u00fc # haszn\u00e1latakor kell megadni. Az \u201eanalog_range_up_pin\u201d konfigur\u00e1ci\u00f3s # param\u00e9ter jelenl\u00e9te ezt a param\u00e9tert digit\u00e1lisr\u00f3l anal\u00f3gra v\u00e1ltoztatja. #down_pin: # A t\u0171 a \u201ele\u201d gombhoz csatlakozik. Ezt a param\u00e9tert k\u00f3dol\u00f3 n\u00e9lk\u00fcli men\u00fc # haszn\u00e1latakor kell megadni. Az \u201eanalog_range_down_pin\u201d konfigur\u00e1ci\u00f3s # param\u00e9ter jelenl\u00e9te ezt a param\u00e9tert digit\u00e1lisr\u00f3l anal\u00f3gra v\u00e1ltoztatja. #kill_pin: # A t\u0171 a \u201ekill\u201d gombhoz csatlakozik. Ez a gomb v\u00e9szle\u00e1ll\u00edt\u00e1st h\u00edv. # Az \u201eanalog_range_kill_pin\u201d konfigur\u00e1ci\u00f3s param\u00e9ter jelenl\u00e9te ezt a # param\u00e9tert digit\u00e1lisr\u00f3l anal\u00f3gra v\u00e1ltoztatja. #analog_pullup_resistor: 4700 # Az anal\u00f3g gombhoz csatlakoztatott felh\u00faz\u00f3 ellen\u00e1ll\u00e1sa (ohmban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 4700 ohm. #analog_range_click_pin: # Az \u201eEnter\u201d gomb ellen\u00e1ll\u00e1si tartom\u00e1nya. # Anal\u00f3g gomb haszn\u00e1lata eset\u00e9n a tartom\u00e1ny minim\u00e1lis \u00e9s # maxim\u00e1lis \u00e9rt\u00e9keit vessz\u0151vel elv\u00e1lasztva kell megadni. #analog_range_back_pin: # A \u201evissza\u201d gomb ellen\u00e1ll\u00e1si tartom\u00e1nya. # Anal\u00f3g gomb haszn\u00e1lata eset\u00e9n a tartom\u00e1ny minim\u00e1lis \u00e9s # maxim\u00e1lis \u00e9rt\u00e9keit vessz\u0151vel elv\u00e1lasztva kell megadni. #analog_range_up_pin: # A \u201efel\u201d gomb ellen\u00e1ll\u00e1si tartom\u00e1nya. # Anal\u00f3g gomb haszn\u00e1lata eset\u00e9n a tartom\u00e1ny minim\u00e1lis \u00e9s # maxim\u00e1lis \u00e9rt\u00e9keit vessz\u0151vel elv\u00e1lasztva kell megadni. #analog_range_down_pin: # A \u201ele\u201d gomb ellen\u00e1ll\u00e1si tartom\u00e1nya. # Anal\u00f3g gomb haszn\u00e1lata eset\u00e9n a tartom\u00e1ny minim\u00e1lis \u00e9s # maxim\u00e1lis \u00e9rt\u00e9keit vessz\u0151vel elv\u00e1lasztva kell megadni. #analog_range_kill_pin: # A \u201ekill\u201d gomb ellen\u00e1ll\u00e1si tartom\u00e1nya. # Anal\u00f3g gomb haszn\u00e1lata eset\u00e9n a tartom\u00e1ny minim\u00e1lis \u00e9s # maxim\u00e1lis \u00e9rt\u00e9keit vessz\u0151vel elv\u00e1lasztva kell megadni. hd44780 kijelz\u0151 \u00b6 Inform\u00e1ci\u00f3k a HD44780 kijelz\u0151k konfigur\u00e1l\u00e1s\u00e1r\u00f3l (amelyet a \"RepRapDiscount 2004 Smart Controller\" t\u00edpus\u00fa kijelz\u0151kben haszn\u00e1lnak). [display] lcd_type: hd44780 # \u00c1ll\u00edtsd \"hd44780\" \u00e9rt\u00e9kre a hd44780 kijelz\u0151kh\u00f6z. rs_pin: e_pin: d4_pin: d5_pin: d6_pin: d7_pin: # A t\u0171k egy hd44780 t\u00edpus\u00fa LCD-hez csatlakoznak. # Ezeket a param\u00e9tereket meg kell adni. #hd44780_protocol_init: True # V\u00e9gezz 8 bites/4 bites protokoll inicializ\u00e1l\u00e1st hd44780 kijelz\u0151n. # Ez sz\u00fcks\u00e9ges a val\u00f3di hd44780-as eszk\u00f6z\u00f6k\u00f6n. El\u0151fordulhat # azonban, hogy ezt bizonyos \"kl\u00f3noz\u00f3\" eszk\u00f6z\u00f6k\u00f6n le kell tiltani. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #line_length: # \u00c1ll\u00edtsd be a soronk\u00e9nti karakterek sz\u00e1m\u00e1t egy hd44780 t\u00edpus\u00fa # LCD-n. A lehets\u00e9ges \u00e9rt\u00e9kek: 20 (alap\u00e9rtelmezett) \u00e9s 16. # A sorok sz\u00e1ma 4-re van r\u00f6gz\u00edtve. ... hd44780_spi kijelz\u0151 \u00b6 Inform\u00e1ci\u00f3 a HD44780_spi kijelz\u0151 konfigur\u00e1l\u00e1s\u00e1r\u00f3l egy 20x04-es kijelz\u0151, egy hardveres \"shift register\" (amelyet a mightyboard alap\u00fa nyomtat\u00f3kban haszn\u00e1lnak). [display] lcd_type: hd44780_spi # \u00c1ll\u00edtsd be a \"hd44780_spi\" \u00e9rt\u00e9ket a hd44780_spi kijelz\u0151kh\u00f6z. latch_pin: spi_software_sclk_pin: spi_software_mosi_pin: spi_software_miso_pin: # A kijelz\u0151t vez\u00e9rl\u0151 m\u0171szakregiszterhez csatlakoztatott t\u0171k. # Az spi_software_miso_pin-t a nyomtat\u00f3 alaplapj\u00e1nak haszn\u00e1laton # k\u00edv\u00fcli t\u0171j\u00e9re kell \u00e1ll\u00edtani, mivel a shift regiszternek nincs MISO t\u0171je, # de a szoftver SPI megval\u00f3s\u00edt\u00e1s\u00e1hoz ezt a t\u0171t be kell \u00e1ll\u00edtani. #hd44780_protocol_init: True # V\u00e9gezz 8 bites/4 bites protokoll inicializ\u00e1l\u00e1st hd44780 kijelz\u0151n. # Ez sz\u00fcks\u00e9ges a val\u00f3di hd44780-as eszk\u00f6z\u00f6k\u00f6n. El\u0151fordulhat # azonban, hogy ezt bizonyos \"kl\u00f3noz\u00f3\" eszk\u00f6z\u00f6k\u00f6n le kell tiltani. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #line_length: # \u00c1ll\u00edtsd be a soronk\u00e9nti karakterek sz\u00e1m\u00e1t egy hd44780 t\u00edpus\u00fa LCD-n. # A lehets\u00e9ges \u00e9rt\u00e9kek: 20 (alap\u00e9rtelmezett) \u00e9s 16. # A sorok sz\u00e1ma 4-re van r\u00f6gz\u00edtve. ... st7920 kijelz\u0151 \u00b6 Inform\u00e1ci\u00f3k az ST7920 kijelz\u0151k konfigur\u00e1l\u00e1s\u00e1r\u00f3l (amelyet a \"RepRapDiscount 12864 Full Graphic Smart Controller\" t\u00edpus\u00fa kijelz\u0151kn\u00e9l haszn\u00e1lnak). [display] lcd_type: st7920 # \u00c1ll\u00edtsd az \"st7920\"-ra az st7920-as kijelz\u0151kh\u00f6z. cs_pin: sclk_pin: sid_pin: # A t\u0171k egy st7920 t\u00edpus\u00fa LCD-hez csatlakoznak. # Ezeket a param\u00e9tereket meg kell adni. ... emulated_st7920 kijelz\u0151 \u00b6 Inform\u00e1ci\u00f3 az emul\u00e1lt ST7920 kijelz\u0151 konfigur\u00e1l\u00e1s\u00e1r\u00f3l. Megtal\u00e1lhat\u00f3 n\u00e9h\u00e1ny \"2,4 h\u00fcvelykes \u00e9rint\u0151k\u00e9perny\u0151s eszk\u00f6zben\" \u00e9s hasonl\u00f3kban. [display] lcd_type: emulated_st7920 # \u00c1ll\u00edtsd az \"emulated_st7920\" \u00e9rt\u00e9kre az emulated_st7920 kijelz\u0151kh\u00f6z. en_pin: spi_software_sclk_pin: spi_software_mosi_pin: spi_software_miso_pin: # Az emul\u00e1lt_st7920 t\u00edpus\u00fa LCD-hez csatlakoztatott \u00e9rintkez\u0151k. # Az en_pin az st7920 t\u00edpus\u00fa LCD cs_pin-j\u00e9nek, az spi_software_sclk_pin # az sclk_pin-nek, az spi_software_mosi_pin pedig a sid_pin-nek felel meg. # A spi_software_miso_pin-t a nyomtat\u00f3 alaplapj\u00e1nak egy haszn\u00e1laton # k\u00edv\u00fcli t\u0171j\u00e9re kell be\u00e1ll\u00edtani, mint az st7920-at, mivel nincs MISO-t\u0171, de a # szoftveres SPI-megval\u00f3s\u00edt\u00e1shoz ezt a t\u0171t kell konfigur\u00e1lni. ... uc1701 kijelz\u0151 \u00b6 Inform\u00e1ci\u00f3k az UC1701 kijelz\u0151k konfigur\u00e1l\u00e1s\u00e1r\u00f3l (amelyet az \"MKS Mini 12864\" t\u00edpus\u00fa kijelz\u0151kn\u00e9l haszn\u00e1lnak). [display] lcd_type: uc1701 # \u00c1ll\u00edtsd \"uc1701\" \u00e9rt\u00e9kre az uc1701 kijelz\u0151kh\u00f6z. cs_pin: a0_pin: # Az uc1701 t\u00edpus\u00fa LCD-hez csatlakoztatott t\u0171k. # Ezeket a param\u00e9tereket meg kell adni. #rst_pin: # Az LCD \"els\u0151\" \u00e9rintkez\u0151j\u00e9hez csatlakoztatott t\u0171. Ha nincs megadva, # akkor a hardvernek rendelkeznie kell egy felh\u00faz\u00e1ssal a # megfelel\u0151 LCD soron. #contrast: # A be\u00e1ll\u00edtand\u00f3 kontraszt. Az \u00e9rt\u00e9k 0 \u00e9s 63 k\u00f6z\u00f6tt v\u00e1ltozhat, az # alap\u00e9rtelmezett \u00e9rt\u00e9k pedig 40. ... ssd1306 \u00e9s sh1106 kijelz\u0151k \u00b6 Az SSD1306 \u00e9s SH1106 kijelz\u0151k konfigur\u00e1l\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k. [display] lcd_type: # \u00c1ll\u00edtsd be az \"ssd1306\" vagy az \"sh1106\" \u00e9rt\u00e9ket az adott # megjelen\u00edt\u00e9si t\u00edpushoz. #i2c_mcu: #i2c_bus: #i2c_speed: # Opcion\u00e1lis param\u00e9terek \u00e1llnak rendelkez\u00e9sre az I2C buszon # kereszt\u00fcl csatlakoztatott kijelz\u0151kh\u00f6z. A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t # l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" r\u00e9szben. #cs_pin: #dc_pin: #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Az LCD-hez csatlakoztatott \u00e9rintkez\u0151k \u201e4 vezet\u00e9kes\u201d SPI m\u00f3dban. # Az \u201espi_\u201d karakterrel kezd\u0151d\u0151 param\u00e9terek le\u00edr\u00e1s\u00e1t a \u201e\u00e1ltal\u00e1nos # SPI-be\u00e1ll\u00edt\u00e1sok\u201d r\u00e9szben tal\u00e1lja. Az alap\u00e9rtelmezett az I2C m\u00f3d # haszn\u00e1lata a kijelz\u0151h\u00f6z. #reset_pin: # A kijelz\u0151n megadhat\u00f3 egy reset t\u0171. Ha nincs megadva, akkor a # hardvernek rendelkeznie kell egy felh\u00faz\u00e1ssal a megfelel\u0151 LCD # soron. #contrast: # A be\u00e1ll\u00edtand\u00f3 kontraszt. Az \u00e9rt\u00e9k 0 \u00e9s 256 k\u00f6z\u00f6tt v\u00e1ltozhat, \u00e9s az # alap\u00e9rtelmezett a 239. #vcomh: 0 # \u00c1ll\u00edtsd be a Vcomh \u00e9rt\u00e9ket a kijelz\u0151n. Ez az \u00e9rt\u00e9k egyes # OLED-kijelz\u0151k \"elken\u0151d\u00e9si\" hat\u00e1s\u00e1val j\u00e1r. Az \u00e9rt\u00e9k 0 \u00e9s 63 k\u00f6z\u00f6tt # v\u00e1ltozhat. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #invert: False # A TRUE megford\u00edtja a k\u00e9ppontokat bizonyos OLED-kijelz\u0151k\u00f6n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #x_offset: 0 # \u00c1ll\u00edtsd be a v\u00edzszintes eltol\u00e1s \u00e9rt\u00e9k\u00e9t az SH1106 kijelz\u0151k\u00f6n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. ... [display_data] \u00b6 Egy\u00e9ni adatok megjelen\u00edt\u00e9s\u00e9nek t\u00e1mogat\u00e1sa LCD-kijelz\u0151n. Tetsz\u0151leges sz\u00e1m\u00fa megjelen\u00edt\u00e9si csoportot \u00e9s ezek alatt tetsz\u0151leges sz\u00e1m\u00fa adatelemet lehet l\u00e9trehozni. A kijelz\u0151 egy adott csoport \u00f6sszes adatelem\u00e9t megjelen\u00edti, ha a [display] szakaszban a display_group opci\u00f3t az adott csoport nev\u00e9re \u00e1ll\u00edtjuk. Az alap\u00e9rtelmezett kijelz\u0151csoportok automatikusan l\u00e9trej\u00f6nnek. Ezeket a display_data elemeket a printer.cfg konfigur\u00e1ci\u00f3s f\u00e1jlban l\u00e9v\u0151 alap\u00e9rtelmezett \u00e9rt\u00e9kek fel\u00fcl\u00edr\u00e1s\u00e1val lehet helyettes\u00edteni vagy b\u0151v\u00edteni. [display_data my_group_name my_data_name] position: # A megjelen\u00edt\u00e9si poz\u00edci\u00f3 vessz\u0151vel elv\u00e1lasztott sora \u00e9s oszlopa, amelyet # az inform\u00e1ci\u00f3 megjelen\u00edt\u00e9s\u00e9hez kell haszn\u00e1lni. # Ezt a param\u00e9tert meg kell adni. text: # Az adott helyen megjelen\u00edtend\u0151 sz\u00f6veg. Ennek a mez\u0151nek a # ki\u00e9rt\u00e9kel\u00e9se parancssablonok seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nik # (l\u00e1sd: docs/Command_Templates.md). Ezt a param\u00e9tert meg kell adni. [display_template] \u00b6 Megjelen\u00edtett adatok sz\u00f6vege \"makr\u00f3k\" (tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3 display_template el\u0151taggal). A sablonok ki\u00e9rt\u00e9kel\u00e9s\u00e9vel kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancssablonok dokumentumot. Ez a funkci\u00f3 lehet\u0151v\u00e9 teszi az ism\u00e9tl\u0151d\u0151 defin\u00edci\u00f3k cs\u00f6kkent\u00e9s\u00e9t a display_data szakaszokban. A sablon ki\u00e9rt\u00e9kel\u00e9s\u00e9re a be\u00e9p\u00edtett render() f\u00fcggv\u00e9nyt haszn\u00e1lhatjuk a display_data szakaszokban. Ha p\u00e9ld\u00e1ul defini\u00e1ln\u00e1nk [display_template my_template] , akkor haszn\u00e1lhatn\u00e1nk a { render('my_template') } f\u00fcggv\u00e9nyt a display_data szakaszban. Ez a funkci\u00f3 a SET_LED_TEMPLATE parancs seg\u00edts\u00e9g\u00e9vel folyamatos LED-friss\u00edt\u00e9sre is haszn\u00e1lhat\u00f3. [display_template my_template_name] #param_<name>: # A \"param_\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa be\u00e1ll\u00edt\u00e1s megadhat\u00f3. A megadott # n\u00e9vhez a rendszer hozz\u00e1rendeli a megadott \u00e9rt\u00e9ket (Python liter\u00e1lk\u00e9nt # elemzi), \u00e9s a makr\u00f3b\u0151v\u00edt\u00e9s sor\u00e1n el\u00e9rhet\u0151 lesz. Ha a param\u00e9ter \u00e1tad\u00e1sra # ker\u00fcl a render() h\u00edv\u00e1sban, akkor ez az \u00e9rt\u00e9k lesz felhaszn\u00e1lva a # makr\u00f3b\u0151v\u00edt\u00e9s sor\u00e1n. P\u00e9ld\u00e1ul egy \"param_speed = 75\" konfigur\u00e1ci\u00f3ban # el\u0151fordulhat, hogy a h\u00edv\u00f3 \"render('my_template_name', param_speed=80)\". # A param\u00e9ternevek nem tartalmazhatnak nagybet\u0171ket. text: # A sablon megjelen\u00edt\u00e9sekor visszaadand\u00f3 sz\u00f6veg. Ennek a mez\u0151nek a # ki\u00e9rt\u00e9kel\u00e9se parancssablonok seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nik (l\u00e1sd: # docs/Command_Templates.md). Ezt a param\u00e9tert meg kell adni. [display_glyph] \u00b6 Egy egy\u00e9ni \u00edr\u00e1sjel megjelen\u00edt\u00e9se az azt t\u00e1mogat\u00f3 kijelz\u0151k\u00f6n. A megadott n\u00e9vhez hozz\u00e1rendeli a megadott megjelen\u00edt\u00e9si adatokat, amelyekre azt\u00e1n a megjelen\u00edt\u00e9si sablonokban a k\u00e9t \"tilde\" szimb\u00f3lummal k\u00f6r\u00fclvett nev\u00fckkel lehet hivatkozni, pl. ~my_display_glyph~ L\u00e1sd a sample-glyphs.cfg n\u00e9h\u00e1ny p\u00e9ld\u00e1j\u00e1t. [display_glyph my_display_glyph] #data: # A megjelen\u00edt\u00e9si adatok 16 sork\u00e9nt t\u00e1rolva, amelyek 16 bitb\u0151l \u00e1llnak # (pixelenk\u00e9nt 1), ahol a '.' egy \u00fcres pixel, a '*' pedig egy bekapcsolt # k\u00e9ppont (pl. \"****************\" folyamatos v\u00edzszintes vonal # megjelen\u00edt\u00e9s\u00e9hez). Alternat\u00edv megold\u00e1sk\u00e9nt haszn\u00e1lhatunk \u201e0\u201d-t # \u00fcres pixelekhez \u00e9s \u201e1\u201d-et a bekapcsolt pixelekhez. Helyezzen minden # megjelen\u00edt\u00e9si sort egy k\u00fcl\u00f6n konfigur\u00e1ci\u00f3s sorba. A karakterjelnek # pontosan 16, egyenk\u00e9nt 16 bites sorb\u00f3l kell \u00e1llnia. # Ez a param\u00e9ter nem k\u00f6telez\u0151. #hd44780_data: # Glyph haszn\u00e1lhat\u00f3 20x4 hd44780 kijelz\u0151k\u00f6n. A karakterjelnek pontosan # 8, egyenk\u00e9nt 5 bites sorb\u00f3l kell \u00e1llnia. Ez a param\u00e9ter nem k\u00f6telez\u0151. #hd44780_slot: # A hd44780 hardver indexe (0..7) a karakterjel t\u00e1rol\u00e1s\u00e1ra. Ha t\u00f6bb # k\u00fcl\u00f6n\u00e1ll\u00f3 k\u00e9p haszn\u00e1lja ugyanazt a t\u00e1rat, \u00fcgyelj arra, hogy ezek # k\u00f6z\u00fcl csak egyet haszn\u00e1lj az adott k\u00e9perny\u0151n. Ez a param\u00e9ter akkor # sz\u00fcks\u00e9ges, ha a hd44780_data meg van adva. [display my_extra_display] \u00b6 Ha a printer.cfg f\u00e1jlban a fentiek szerint egy els\u0151dleges [display] szakasz ker\u00fclt meghat\u00e1roz\u00e1sra, akkor t\u00f6bb kieg\u00e9sz\u00edt\u0151 kijelz\u0151t is lehet defini\u00e1lni. Vedd figyelembe, hogy a kieg\u00e9sz\u00edt\u0151 kijelz\u0151k jelenleg nem t\u00e1mogatj\u00e1k a men\u00fcfunkci\u00f3kat, \u00edgy nem t\u00e1mogatj\u00e1k a \"menu\" opci\u00f3kat vagy a gombok konfigur\u00e1l\u00e1s\u00e1t. [display my_extra_display] # A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd a \"kijelz\u0151\" szakaszban. [menu] \u00b6 Testreszabhat\u00f3 LCD kijelz\u0151 men\u00fck. Egy alap\u00e9rtelmezett men\u00fck\u00e9szlet automatikusan l\u00e9trej\u00f6n. A men\u00fct a f\u0151 printer.cfg konfigur\u00e1ci\u00f3s f\u00e1jlban l\u00e9v\u0151 alap\u00e9rtelmezett \u00e9rt\u00e9kek fel\u00fclb\u00edr\u00e1l\u00e1s\u00e1val lehet helyettes\u00edteni vagy b\u0151v\u00edteni. A sablonok renderel\u00e9se sor\u00e1n el\u00e9rhet\u0151 men\u00fcattrib\u00fatumokr\u00f3l a parancssablon dokumentumban tal\u00e1lhat\u00f3 inform\u00e1ci\u00f3. # Az \u00f6sszes men\u00fc konfigur\u00e1ci\u00f3s szakaszhoz el\u00e9rhet\u0151 k\u00f6z\u00f6s param\u00e9terek. #[menu __some_list __some_name] #type: disabled # A men\u00fcelem v\u00e9gleg letiltva, csak a k\u00f6telez\u0151 attrib\u00fatum a 'type'. # Lehet\u0151v\u00e9 teszi a megl\u00e9v\u0151 men\u00fcpontok egyszer\u0171 letilt\u00e1s\u00e1t/elrejt\u00e9s\u00e9t. #[menu some_name] #type: # Az egyik parancs, input, list, text: # command - alapvet\u0151 men\u00fcelem k\u00fcl\u00f6nf\u00e9le script triggerekkel # input - ugyanaz, mint a \u201ecommand\u201d, de \u00e9rt\u00e9kv\u00e1ltoztat\u00f3 # k\u00e9pess\u00e9gekkel rendelkezik. # Nyomja meg a szerkeszt\u00e9si m\u00f3d # elind\u00edt\u00e1s\u00e1hoz/le\u00e1ll\u00edt\u00e1s\u00e1hoz. # list - lehet\u0151v\u00e9 teszi a men\u00fcelemek egy g\u00f6rgethet\u0151 list\u00e1ba # t\u00f6rt\u00e9n\u0151 csoportos\u00edt\u00e1s\u00e1t. # Adj hozz\u00e1 a list\u00e1hoz men\u00fckonfigur\u00e1ci\u00f3k l\u00e9trehoz\u00e1s\u00e1val # a \u201esome_list\u201d el\u0151tagk\u00e9nt \u2013 # p\u00e9ld\u00e1ul: [menu some_list some_item_in_the_list] # vsdlist - ugyanaz, mint a \"list\", de hozz\u00e1f\u0171zi a virtu\u00e1lis # sdcard f\u00e1jlokat (a j\u00f6v\u0151ben elt\u00e1vol\u00edtjuk) #name: # A men\u00fcpont neve - sablonk\u00e9nt \u00e9rt\u00e9kelve. #enable: # Sablon, amely igazra vagy hamisra \u00e9rt\u00e9keli. #index: # Poz\u00edci\u00f3, ahol egy elemet be kell illeszteni a list\u00e1ba. Alap\u00e9rtelmez\u00e9s # szerint az elem a v\u00e9g\u00e9re ker\u00fcl hozz\u00e1ad\u00e1sra. #[menu some_list] #type: list #name: #enable: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd fent. #[menu some_list some_command] #type: command #name: #enable: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd fent. #gcode: # Gombkattint\u00e1ssal vagy hossz\u00fa kattint\u00e1ssal futtathat\u00f3 szkript. # Sablonk\u00e9nt \u00e9rt\u00e9kelve. #[menu some_list some_input] #type: input #name: #enable: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd fent. #input: # Szerkeszt\u00e9skor haszn\u00e1land\u00f3 kezdeti \u00e9rt\u00e9k \u2013 sablonk\u00e9nt \u00e9rt\u00e9kelve. # Az eredm\u00e9nynek lebeg\u0151\u00e9rt\u00e9knek kell lennie. #input_min: # Tartom\u00e1ny minim\u00e1lis \u00e9rt\u00e9ke \u2013 sablonk\u00e9nt \u00e9rt\u00e9kelve. # Alap\u00e9rtelmezett -99999. #input_max: # Tartom\u00e1ny maxim\u00e1lis \u00e9rt\u00e9ke \u2013 sablonk\u00e9nt \u00e9rt\u00e9kelve. # Alap\u00e9rtelmezett 99999. #input_step: # Szerkeszt\u00e9si l\u00e9p\u00e9s \u2013 pozit\u00edv eg\u00e9sz sz\u00e1mnak vagy lebeg\u0151\u00e9rt\u00e9knek # kell lennie. Bels\u0151 gyorsl\u00e9p\u00e9ssel rendelkezik. # Ha \"(input_max - input_min) / input_step > 100\", akkor a gyors # sebess\u00e9g l\u00e9p\u00e9se 10 * input_step, k\u00fcl\u00f6nben a gyors \u00fctem ugyanaz # a bemeneti_l\u00e9p\u00e9s. #realtime: # Ez az attrib\u00fatum statikus logikai \u00e9rt\u00e9ket fogad el. Ha enged\u00e9lyezve # van, akkor a G-k\u00f3d szkript minden \u00e9rt\u00e9kv\u00e1ltoz\u00e1s ut\u00e1n lefut. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #gcode: # Gombkattint\u00e1ssal, hossz\u00fa kattint\u00e1ssal vagy \u00e9rt\u00e9km\u00f3dos\u00edt\u00e1ssal # futtathat\u00f3 szkript. Sablonk\u00e9nt \u00e9rt\u00e9kelve. A gomb kattint\u00e1sa elind\u00edtja # a szerkeszt\u00e9si m\u00f3d kezdet\u00e9t vagy befejez\u00e9s\u00e9t. Nyomtat\u00f3sz\u00e1l \u00e9rz\u00e9kel\u0151k \u00b6 [filament_switch_sensor] \u00b6 Nyomtat\u00f3sz\u00e1l \u00e9rz\u00e9kel\u0151. T\u00e1mogat\u00e1s a nyomtat\u00f3sz\u00e1l behelyez\u00e9s\u00e9nek \u00e9s kifut\u00e1s\u00e1nak \u00e9rz\u00e9kel\u00e9s\u00e9re kapcsol\u00f3\u00e9rz\u00e9kel\u0151, p\u00e9ld\u00e1ul v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 seg\u00edts\u00e9g\u00e9vel. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1st . [filament_switch_sensor my_sensor] #pause_on_runout: True # Ha True \u00e9rt\u00e9kre van \u00e1ll\u00edtva, a PAUSE azonnal v\u00e9grehajt\u00f3dik, miut\u00e1n a # rendszer sz\u00e1lkifut\u00e1st \u00e9szlel. Ne feledd, hogy ha a pause_on_runout # \u00e9rt\u00e9ke False, \u00e9s a runout_gcode kimarad, akkor a kifut\u00e1s \u00e9szlel\u00e9se le # van tiltva. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #runout_gcode: # A nyomtat\u00f3sz\u00e1l kifut\u00e1s\u00e1t k\u00f6vet\u0151en v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. # L\u00e1sd a docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d form\u00e1tumhoz. Ha a # pause_on_runout \u00e9rt\u00e9ke True, ez a G-k\u00f3d a PAUSE befejez\u00e9se ut\u00e1n fog # futni. Az alap\u00e9rtelmez\u00e9s szerint nem fut semmilyen G-k\u00f3d parancs. #insert_gcode: # A nyomtat\u00f3sz\u00e1l-beilleszt\u00e9s \u00e9szlel\u00e9se ut\u00e1n v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok # list\u00e1ja. L\u00e1sd a docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d form\u00e1tumhoz. # Az alap\u00e9rtelmez\u00e9s szerint nem fut semmilyen G-k\u00f3d parancs, ami letiltja # a besz\u00far\u00e1s \u00e9szlel\u00e9s\u00e9t. #event_delay: 3.0 # Az esem\u00e9nyek k\u00f6z\u00f6tti k\u00e9sleltet\u00e9s minim\u00e1lis id\u0151tartama m\u00e1sodpercben. # Az ebben az id\u0151szakban elind\u00edtott esem\u00e9nyeket a rendszer csendben # figyelmen k\u00edv\u00fcl hagyja. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 3 m\u00e1sodperc. #pause_delay: 0.5 # A sz\u00fcneteltet\u00e9si parancs kik\u00fcld\u00e9se \u00e9s a runout_gcode v\u00e9grehajt\u00e1sa # k\u00f6z\u00f6tt eltelt id\u0151 m\u00e1sodpercben. Hasznos lehet n\u00f6velni ezt a k\u00e9sleltet\u00e9st, # ha az OctoPrint furcsa sz\u00fcneteltet\u00e9st mutat. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,5 m\u00e1sodperc. #switch_pin: # Az a t\u0171, amelyre a kapcsol\u00f3 csatlakoztatva van. # Ezt a param\u00e9tert meg kell adni. [filament_motion_sensor] \u00b6 Nyomtat\u00f3sz\u00e1l mozg\u00e1s\u00e9rz\u00e9kel\u0151. T\u00e1mogatja a nyomtat\u00f3sz\u00e1l behelyez\u00e9s\u00e9nek \u00e9s kifut\u00e1s\u00e1nak \u00e9rz\u00e9kel\u00e9s\u00e9t egy olyan k\u00f3dol\u00f3 seg\u00edts\u00e9g\u00e9vel, amely az \u00e9rz\u00e9kel\u0151n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 mozg\u00e1s k\u00f6zben v\u00e1ltogatja a kimeneti jelet. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1st . [filament_motion_sensor my_sensor] detection_length: 7.0 # Az \u00e9rz\u00e9kel\u0151n \u00e1th\u00fazott nyomtat\u00f3sz\u00e1l minim\u00e1lis hossza, amely # \u00e1llapotv\u00e1ltoz\u00e1st v\u00e1lt ki a switch_pin t\u0171n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 7mm. extruder: # Az extruderr\u00e9sz neve, amelyhez ez az \u00e9rz\u00e9kel\u0151 kapcsol\u00f3dik. # Ezt a param\u00e9tert meg kell adni. switch_pin: #pause_on_runout: #runout_gcode: #insert_gcode: #event_delay: #pause_delay: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t a \"filament_switch_sensor\" # r\u00e9szben tal\u00e1lja. [tsl1401cl_filament_width_sensor] \u00b6 TSLl401CL alap\u00fa sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd az \u00fatmutat\u00f3t . [tsl1401cl_filament_width_sensor] #pin: #default_nominal_filament_diameter: 1.75 # (mm) # A nyomtat\u00f3sz\u00e1l \u00e1tm\u00e9r\u0151j\u00e9nek megengedett legnagyobb # elt\u00e9r\u00e9se mm-ben. #max_difference: 0.2 # Az \u00e9rz\u00e9kel\u0151 \u00e9s a f\u00fav\u00f3ka k\u00f6z\u00f6tti t\u00e1vols\u00e1g mm-ben. #measurement_delay: 100 [hall_filament_width_sensor] \u00b6 Hall sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 (l\u00e1sd Hall sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 ). [hall_filament_width_sensor] adc1: adc2: # Az \u00e9rz\u00e9kel\u0151h\u00f6z csatlakoztatott anal\u00f3g bemeneti \u00e9rintkez\u0151k. Ezeket a # param\u00e9tereket meg kell adni. #cal_dia1: 1.50 #cal_dia2: 2.00 # Az \u00e9rz\u00e9kel\u0151k kalibr\u00e1ci\u00f3s \u00e9rt\u00e9kei (mm-ben). Az alap\u00e9rtelmezett \u00e9rt\u00e9k # 1,50 a cal_dia1 \u00e9s 2,00 a cal_dia2 eset\u00e9n. #raw_dia1: 9500 #raw_dia2: 10500 # Az \u00e9rz\u00e9kel\u0151k nyers kalibr\u00e1ci\u00f3s \u00e9rt\u00e9kei. Az alap\u00e9rtelmezett \u00e9rt\u00e9k # 9500 a raw_dia1 \u00e9s 10500 a raw_dia2 eset\u00e9n. #default_nominal_filament_diameter: 1.75 # A nyomtat\u00f3sz\u00e1l n\u00e9vleges \u00e1tm\u00e9r\u0151je. Ezt a param\u00e9tert meg kell adni. #max_difference: 0.200 # Az izz\u00f3sz\u00e1l \u00e1tm\u00e9r\u0151j\u00e9nek megengedett legnagyobb elt\u00e9r\u00e9se # millim\u00e9terben (mm). # Ha az izz\u00f3sz\u00e1l n\u00e9vleges \u00e1tm\u00e9r\u0151je \u00e9s az \u00e9rz\u00e9kel\u0151 kimenete k\u00f6z\u00f6tti # k\u00fcl\u00f6nbs\u00e9g nagyobb, mint +- max_difference, az extrud\u00e1l\u00e1si szorz\u00f3 # vissza\u00e1ll %100-ra. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,200. #measurement_delay: 70 # Az \u00e9rz\u00e9kel\u0151 \u00e9s a nyomtat\u00f3fej/forr\u00f3 v\u00e9ge (nozzle) k\u00f6z\u00f6tti t\u00e1vols\u00e1g # millim\u00e9terben (mm). Az \u00e9rz\u00e9kel\u0151 \u00e9s a nyomtat\u00f3fej k\u00f6z\u00f6tti # nyomtat\u00f3sz\u00e1l default_nominal_filament_diameter-k\u00e9nt lesz kezelve. # A gazdag\u00e9p modul FIFO logik\u00e1val m\u0171k\u00f6dik. Minden szenzor\u00e9rt\u00e9ket # \u00e9s poz\u00edci\u00f3t egy t\u00f6mbben tart, \u00e9s vissza\u00e1ll\u00edtja \u0151ket a megfelel\u0151 poz\u00edci\u00f3ba. # Ezt a param\u00e9tert meg kell adni. #enable: False # Az \u00e9rz\u00e9kel\u0151 enged\u00e9lyezve vagy letiltva a bekapcsol\u00e1s ut\u00e1n. # Az alap\u00e9rtelmezett a letilt\u00e1sa. #measurement_interval: 10 # Hozz\u00e1vet\u0151leges t\u00e1vols\u00e1g (mm-ben) az \u00e9rz\u00e9kel\u0151 leolvas\u00e1sai k\u00f6z\u00f6tt. # Az alap\u00e9rtelmezett 10 mm. #logging: False # Kimeneti \u00e1tm\u00e9r\u0151 a termin\u00e1lhoz \u00e9s a klipper.log-hoz k\u00fcld, amit ki # lehet kapcsolni. #min_diameter: 1.0 # A virtu\u00e1lis trigger minim\u00e1lis \u00e1tm\u00e9r\u0151je filament_switch_sensor. #use_current_dia_while_delay: False # Haszn\u00e1ld az aktu\u00e1lis \u00e1tm\u00e9r\u0151t a n\u00e9vleges \u00e1tm\u00e9r\u0151 helyett, am\u00edg a # m\u00e9r\u00e9si k\u00e9sleltet\u00e9s nem futott \u00e1t. #pause_on_runout: #runout_gcode: #insert_gcode: #event_delay: #pause_delay: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"filament_switch_sensor\" r\u00e9szben. Alaplap specifikus hardvert\u00e1mogat\u00e1s \u00b6 [sx1509] \u00b6 Konfigur\u00e1ljon egy SX1509 I2C-GPIO b\u0151v\u00edt\u0151t. Az I2C-kommunik\u00e1ci\u00f3 \u00e1ltal okozott k\u00e9sleltet\u00e9s miatt NEM szabad az SX1509 t\u0171it motorvez\u00e9rl\u0151 enged\u00e9lyez\u0151, STEP vagy DIR t\u0171k\u00e9nt vagy b\u00e1rmilyen m\u00e1s olyan t\u0171k\u00e9nt haszn\u00e1lni, amely gyors bit-impulzust ig\u00e9nyel. Legjobban statikus vagy G-k\u00f3d vez\u00e9relt digit\u00e1lis kimenetekk\u00e9nt vagy hardveres PWM t\u0171k\u00e9nt haszn\u00e1lhat\u00f3k pl. ventil\u00e1torokhoz. B\u00e1rmennyi szekci\u00f3t defini\u00e1lhatunk \"sx1509\" el\u0151taggal. Minden egyes b\u0151v\u00edt\u0151 egy 16 t\u0171b\u0151l \u00e1ll\u00f3 k\u00e9szletet biztos\u00edt (sx1509_my_sx1509:PIN_0-t\u00f3l sx1509_my_sx1509:PIN_15-ig), amelyek a nyomtat\u00f3 konfigur\u00e1ci\u00f3j\u00e1ban haszn\u00e1lhat\u00f3k. L\u00e1sd a generic-duet2-duex.cfg f\u00e1jlt egy p\u00e9ld\u00e1\u00e9rt. [sx1509 my_sx1509] i2c_address: # A b\u0151v\u00edt\u0151 \u00e1ltal haszn\u00e1lt I2C c\u00edm. A hardveres jumperekt\u0151l # f\u00fcgg\u0151en ez a k\u00f6vetkez\u0151 c\u00edmek egyike: 62 63 112 113. # Ezt a param\u00e9tert meg kell adni. #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #i2c_bus: # Ha a mikrovez\u00e9rl\u0151 I2C megval\u00f3s\u00edt\u00e1sa t\u00f6bb I2C buszt is t\u00e1mogat, # itt megadhatja a busz nev\u00e9t. # Az alap\u00e9rtelmezett a mikrovez\u00e9rl\u0151 I2C busz haszn\u00e1lata. [samd_sercom] \u00b6 SAMD SERCOM konfigur\u00e1ci\u00f3 annak megad\u00e1s\u00e1ra, hogy mely t\u0171ket kell haszn\u00e1lni egy adott SERCOM-on. A \"samd_sercom\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t defini\u00e1lhatunk. Minden SERCOM-ot konfigur\u00e1lni kell, miel\u0151tt SPI vagy I2C perif\u00e9riak\u00e9nt haszn\u00e1ln\u00e1nk. Helyezze ezt a konfigur\u00e1ci\u00f3s szekci\u00f3t minden m\u00e1s, SPI vagy I2C buszokat haszn\u00e1l\u00f3 szekci\u00f3 f\u00f6l\u00e9. [samd_sercom my_sercom] sercom: # A mikrovez\u00e9rl\u0151ben konfigur\u00e1land\u00f3 sercom busz neve. # A rendelkez\u00e9sre \u00e1ll\u00f3 nevek \"sercom0\", \"sercom1\" stb. # Ezt a param\u00e9tert meg kell adni. tx_pin: # MOSI \u00e9rintkez\u0151 SPI kommunik\u00e1ci\u00f3hoz, vagy SDA (adat) \u00e9rintkez\u0151 # I2C kommunik\u00e1ci\u00f3hoz. A l\u00e1bnak \u00e9rv\u00e9nyes pinmux konfigur\u00e1ci\u00f3val # kell rendelkeznie az adott SERCOM perif\u00e9ri\u00e1hoz. # Ezt a param\u00e9tert meg kell adni. #rx_pin: # MISO t\u0171 az SPI kommunik\u00e1ci\u00f3hoz. Ezt a t\u0171t nem haszn\u00e1lj\u00e1k I2C # kommunik\u00e1ci\u00f3hoz (az I2C a tx_pin k\u00f3dot haszn\u00e1lja mind a # k\u00fcld\u00e9shez, mind a fogad\u00e1shoz). A l\u00e1bnak \u00e9rv\u00e9nyes pinmux # konfigur\u00e1ci\u00f3val kell rendelkeznie az adott SERCOM perif\u00e9ri\u00e1hoz. # Ez a param\u00e9ter nem k\u00f6telez\u0151. clk_pin: # CLK \u00e9rintkez\u0151 az SPI kommunik\u00e1ci\u00f3hoz, vagy SCL (\u00f3ra) \u00e9rintkez\u0151 # az I2C kommunik\u00e1ci\u00f3hoz. A l\u00e1bnak \u00e9rv\u00e9nyes pinmux # konfigur\u00e1ci\u00f3val kell rendelkeznie az adott SERCOM perif\u00e9ri\u00e1hoz. # Ezt a param\u00e9tert meg kell adni. [adc_scaled] \u00b6 Duet2 Maestro anal\u00f3g sk\u00e1l\u00e1z\u00e1s vref \u00e9s vssa leolvas\u00e1sok alapj\u00e1n. Az adc_scaled szakasz defini\u00e1l\u00e1sa virtu\u00e1lis adc-t\u0171k\u00e9nt (p\u00e9ld\u00e1ul \"my_name:PB0\") tesz lehet\u0151v\u00e9, amelyeket automatikusan a k\u00e1rtya vref \u00e9s vssa figyel\u0151t\u0171i \u00e1ll\u00edtanak be. \u00dcgyelj arra, hogy ezt a konfigur\u00e1ci\u00f3s szakaszt minden olyan konfigur\u00e1ci\u00f3s szakasz felett defini\u00e1ld, amely ezeket a virtu\u00e1lis t\u0171ket haszn\u00e1lja. L\u00e1sd a generic-duet2-maestro.cfg f\u00e1jlt egy p\u00e9ld\u00e1\u00e9rt. [adc_scaled my_name] vref_pin: # A VREF monitoroz\u00e1s\u00e1hoz haszn\u00e1lt ADC t\u0171. Ezt a param\u00e9tert meg kell adni. vssa_pin: # A VSSA monitoroz\u00e1s\u00e1hoz haszn\u00e1land\u00f3 ADC t\u0171. Ezt a param\u00e9tert meg kell adni. #smooth_time: 2.0 # Egy id\u0151\u00e9rt\u00e9k (m\u00e1sodpercben), amely alatt a vref \u00e9s a vssa # m\u00e9r\u00e9sek sim\u00edt\u00e1sra ker\u00fclnek, hogy cs\u00f6kkents\u00e9k a m\u00e9r\u00e9s hat\u00e1s\u00e1t # zaj cs\u00f6kkent\u00e9se \u00e9rdek\u00e9ben. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 2 m\u00e1sodperc. [replicape] \u00b6 Replicape t\u00e1mogat\u00e1s. L\u00e1sd a beaglebone \u00fatmutat\u00f3t \u00e9s a generic-replicape.cfg f\u00e1jlt egy p\u00e9ld\u00e1\u00e9rt. # A \"replicape\" konfigur\u00e1ci\u00f3s r\u00e9sz hozz\u00e1adja a # \"replicape:stepper_x_enable\" virtu\u00e1lis l\u00e9ptet\u0151t enged\u00e9lyez\u0151 t\u0171ket # (X, Y, Z, E \u00e9s H l\u00e9ptet\u0151kh\u00f6z) \u00e9s a \"replicape:power_x\" PWM kimeneti # t\u0171ket (hotbed, e, h, fan0, fan1 sz\u00e1m\u00e1ra , fan2 \u00e9s fan3), a # konfigur\u00e1ci\u00f3s f\u00e1jlhoz amelyet ezut\u00e1n m\u00e1shol is haszn\u00e1lhatunk. [replicape] revision: # A replik\u00e1lt hardververzi\u00f3. Jelenleg csak a \"B3\" verzi\u00f3 t\u00e1mogatott. # Ezt a param\u00e9tert meg kell adni. #enable_pin: !gpio0_20 # A glob\u00e1lis enged\u00e9lyez\u00e9si PIN replik\u00e1ja. # Az alap\u00e9rtelmezett !gpio0_20 (m\u00e1s n\u00e9ven P9_41). host_mcu: # Az MCU konfigur\u00e1ci\u00f3s szakasz neve, amely kommunik\u00e1l a Klipper # \"linux folyamat\" MCU p\u00e9ld\u00e1ny\u00e1val. Ezt a param\u00e9tert meg kell adni. #standstill_power_down: False # Ez a param\u00e9ter vez\u00e9rli a CFG6_ENN vonalat az \u00f6sszes # l\u00e9ptet\u0151motoron. A True az enged\u00e9lyez\u00e9si sorokat \"nyit\u00e1sra\" \u00e1ll\u00edtja. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #stepper_x_microstep_mode: #stepper_y_microstep_mode: #stepper_z_microstep_mode: #stepper_e_microstep_mode: #stepper_h_microstep_mode: # Ez a param\u00e9ter az adott l\u00e9ptet\u0151motor meghajt\u00f3 CFG1 \u00e9s CFG2 # \u00e9rintkez\u0151it vez\u00e9rli. A v\u00e1laszthat\u00f3 lehet\u0151s\u00e9gek a k\u00f6vetkez\u0151k: # disable, 1, 2, spread2, 4, 16, spread4, spread16, stealth4 \u00e9s # stealth16. Az alap\u00e9rtelmezett \u00e9rt\u00e9k a disable. #stepper_x_current: #stepper_y_current: #stepper_z_current: #stepper_e_current: #stepper_h_current: # A l\u00e9ptet\u0151motor meghajt\u00f3j\u00e1nak konfigur\u00e1lt maxim\u00e1lis \u00e1rama # (amperben). Ezt a param\u00e9tert akkor kell megadni, ha a l\u00e9ptet\u0151 # nincs letilt\u00e1si m\u00f3dban. #stepper_x_chopper_off_time_high: #stepper_y_chopper_off_time_high: #stepper_z_chopper_off_time_high: #stepper_e_chopper_off_time_high: #stepper_h_chopper_off_time_high: # Ez a param\u00e9ter a l\u00e9ptet\u0151motor meghajt\u00f3 CFG0 l\u00e1b\u00e1t vez\u00e9rli # (a True a CFG0 \u00e9rt\u00e9ket magasra, a False pedig alacsonyra \u00e1ll\u00edtja). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #stepper_x_chopper_hysteresis_high: #stepper_y_chopper_hysteresis_high: #stepper_z_chopper_hysteresis_high: #stepper_e_chopper_hysteresis_high: #stepper_h_chopper_hysteresis_high: # Ez a param\u00e9ter a l\u00e9ptet\u0151motor meghajt\u00f3 CFG4 l\u00e1b\u00e1t vez\u00e9rli # (a True a CFG4 \u00e9rt\u00e9ket magasra, a False pedig alacsonyra \u00e1ll\u00edtja). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #stepper_x_chopper_blank_time_high: #stepper_y_chopper_blank_time_high: #stepper_z_chopper_blank_time_high: #stepper_e_chopper_blank_time_high: #stepper_h_chopper_blank_time_high: # Ez a param\u00e9ter a l\u00e9ptet\u0151motor meghajt\u00f3 CFG5 l\u00e1b\u00e1t vez\u00e9rli # (a True a CFG5 \u00e9rt\u00e9ket magasra, a False pedig alacsonyra \u00e1ll\u00edtja). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. Egy\u00e9b egyedi modulok \u00b6 [palette2] \u00b6 Palette 2 multimaterial t\u00e1mogat\u00e1s szorosabb integr\u00e1ci\u00f3t biztos\u00edt, amely t\u00e1mogatja a Palette 2 eszk\u00f6z\u00f6ket csatlakoztatott m\u00f3dban. Ez a modul a teljes funkcionalit\u00e1shoz a [virtual_sdcard] \u00e9s [pause_resume] modulokat is ig\u00e9nyli. Ha ezt a modult haszn\u00e1lod, ne haszn\u00e1ld a Palette 2 plugint az Octoprinthez, mivel ezek \u00fctk\u00f6zni fognak, \u00e9s az egyik nem fog megfelel\u0151en inicializ\u00e1l\u00f3dni, ami val\u00f3sz\u00edn\u0171leg megszak\u00edtja a nyomtat\u00e1st. Ha az Octoprintet haszn\u00e1lod \u00e9s a G-k\u00f3dot a soros porton kereszt\u00fcl streameli a virtual_sd-r\u0151l val\u00f3 nyomtat\u00e1s helyett, akkor a M1 \u00e9s M0 parancsok Pausing parancsok a Settings >. alatt remo; Serial Connection > Firmware & protocol megakad\u00e1lyozz\u00e1k, hogy a nyomtat\u00e1s megkezd\u00e9s\u00e9hez a Paletta 2-n el kelljen ind\u00edtani a nyomtat\u00e1st, \u00e9s az Octoprintben fel kelljen oldani a sz\u00fcnetet. [paletta2] serial: # A soros port, amelyhez a Palette 2 csatlakozik. #baud: 115200 # A haszn\u00e1land\u00f3 baud-r\u00e1ta. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 115200. #feedrate_splice: 0.8 # A told\u00e1skor haszn\u00e1land\u00f3 feedrate, alap\u00e9rtelmezett 0.8. #feedrate_normal: 1.0 # A told\u00e1s ut\u00e1n haszn\u00e1land\u00f3 feedrate, alap\u00e9rtelmezett \u00e9rt\u00e9ke 1.0. #auto_load_speed: 2 # Extrud\u00e1l\u00e1si el\u0151tol\u00e1si sebess\u00e9g automatikus bet\u00f6lt\u00e9skor, alap\u00e9rtelmezett 2 (mm/sec) #auto_cancel_variation: 0.1 # Automatikusan t\u00f6rli a nyomtat\u00e1st, ha a ping meghaladja ezt a k\u00fcsz\u00f6b\u00e9rt\u00e9ket. [angle] \u00b6 M\u00e1gneses Hall-sz\u00f6g\u00e9rz\u00e9kel\u0151 t\u00e1mogat\u00e1sa A1333, AS5047D vagy TLE5012B SPI-chipek haszn\u00e1lat\u00e1val a l\u00e9ptet\u0151motorok sz\u00f6gtengely\u00e9nek m\u00e9r\u00e9seinek leolvas\u00e1s\u00e1hoz. A m\u00e9r\u00e9sek az API Szerver \u00e9s a mozg\u00e1selemz\u0151 eszk\u00f6z seg\u00edts\u00e9g\u00e9vel \u00e9rhet\u0151k el. A rendelkez\u00e9sre \u00e1ll\u00f3 parancsokat l\u00e1sd a G-k\u00f3d hivatkoz\u00e1sban . [angle my_angle_sensor] sensor_type: # A m\u00e1gneses Hall \u00e9rz\u00e9kel\u0151 chip t\u00edpusa. A v\u00e1laszthat\u00f3 lehet\u0151s\u00e9gek: # \u201ea1333\u201d, \u201eas5047d\u201d \u00e9s \u201etle5012b\u201d. Ezt a param\u00e9tert meg kell adni. #sample_period: 0.000400 # A m\u00e9r\u00e9sek sor\u00e1n haszn\u00e1land\u00f3 lek\u00e9rdez\u00e9si id\u0151szak (m\u00e1sodpercben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,000400 (ami m\u00e1sodpercenk\u00e9nt # 2500 minta). #stepper: # Annak a l\u00e9ptet\u0151nek a neve, amelyhez a sz\u00f6g\u00e9rz\u00e9kel\u0151 csatlakoztatva # van (pl. \"stepper_x\"). Ennek az \u00e9rt\u00e9knek a be\u00e1ll\u00edt\u00e1sa enged\u00e9lyezi a # sz\u00f6gkalibr\u00e1l\u00f3 eszk\u00f6zt. A funkci\u00f3 haszn\u00e1lat\u00e1hoz telep\u00edteni kell a # Python \"numpy\" csomagot. Az alap\u00e9rtelmezett be\u00e1ll\u00edt\u00e1s nem # enged\u00e9lyezi a sz\u00f6g\u00e9rz\u00e9kel\u0151 sz\u00f6gkalibr\u00e1l\u00e1s\u00e1t. cs_pin: # Az \u00e9rz\u00e9kel\u0151 SPI enged\u00e9lyez\u0151 t\u0171je. Ezt a param\u00e9tert meg kell adni. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t az \u201e\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\u201d # r\u00e9szben tal\u00e1lja. Gyakori buszparam\u00e9terek \u00b6 Gyakori SPI be\u00e1ll\u00edt\u00e1sok \u00b6 Az SPI-buszt haszn\u00e1l\u00f3 eszk\u00f6z\u00f6k eset\u00e9ben \u00e1ltal\u00e1ban a k\u00f6vetkez\u0151 param\u00e9terek \u00e1llnak rendelkez\u00e9sre. #spi_speed: # Az eszk\u00f6zzel val\u00f3 kommunik\u00e1ci\u00f3 sor\u00e1n haszn\u00e1land\u00f3 # SPI-sebess\u00e9g (hz-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k az eszk\u00f6z t\u00edpus\u00e1t\u00f3l f\u00fcgg. #spi_bus: # Ha a mikrovez\u00e9rl\u0151 t\u00f6bb SPI buszt t\u00e1mogat, akkor itt megadhatja a # mikrovez\u00e9rl\u0151 busz nev\u00e9t. Az alap\u00e9rtelmezett \u00e9rt\u00e9k a mikrovez\u00e9rl\u0151 # t\u00edpus\u00e1t\u00f3l f\u00fcgg. #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Add meg a fenti param\u00e9tereket a \"szoftver alap\u00fa SPI\" haszn\u00e1lat\u00e1hoz. # Ez a m\u00f3d nem ig\u00e9nyel mikrovez\u00e9rl\u0151 hardver t\u00e1mogat\u00e1st (\u00e1ltal\u00e1ban # b\u00e1rmilyen \u00e1ltal\u00e1nos c\u00e9l\u00fa \u00e9rintkez\u0151 haszn\u00e1lhat\u00f3). Az alap\u00e9rtelmez\u00e9s # szerint nem haszn\u00e1lja a \"software SPI\"-t. Gyakori I2C be\u00e1ll\u00edt\u00e1sok \u00b6 A k\u00f6vetkez\u0151 param\u00e9terek \u00e1ltal\u00e1ban az I2C-buszt haszn\u00e1l\u00f3 eszk\u00f6z\u00f6kh\u00f6z \u00e1llnak rendelkez\u00e9sre. Vedd figyelembe, hogy a Klipper jelenlegi mikrokontrollerek i2c t\u00e1mogat\u00e1sa nem toler\u00e1lja a h\u00e1l\u00f3zati zajt. Az i2c vezet\u00e9kek nem v\u00e1rt hib\u00e1i a Klipper fut\u00e1sidej\u0171 hiba\u00fczenet\u00e9t eredm\u00e9nyezhetik. A Klipper hibaelh\u00e1r\u00edt\u00e1s t\u00e1mogat\u00e1sa az egyes mikrokontroller-t\u00edpusok k\u00f6z\u00f6tt v\u00e1ltozik. \u00c1ltal\u00e1ban csak olyan i2c eszk\u00f6z\u00f6k haszn\u00e1lata aj\u00e1nlott, amelyek ugyanazon a nyomtatott \u00e1ramk\u00f6ri lapon vannak, mint a mikrokontroller. A legt\u00f6bb Klipper mikrokontroller implement\u00e1ci\u00f3 csak 100000 i2c_speed \u00e9rt\u00e9ket t\u00e1mogat. A Klipper \"linux\" mikrokontroller t\u00e1mogatja a 400000-es sebess\u00e9get, de ezt az oper\u00e1ci\u00f3s rendszerben kell be\u00e1ll\u00edtani , \u00e9s az i2c_speed param\u00e9tert egy\u00e9bk\u00e9nt figyelmen k\u00edv\u00fcl hagyja. A Klipper \"rp2040\" mikrokontroller az i2c_speed param\u00e9teren kereszt\u00fcl 400000-es sebess\u00e9get t\u00e1mogat. Az \u00f6sszes t\u00f6bbi Klipper mikrovez\u00e9rl\u0151 100000-es sebess\u00e9get haszn\u00e1l, \u00e9s figyelmen k\u00edv\u00fcl hagyja az i2c_speed param\u00e9tert. #i2c_address: # Az eszk\u00f6z i2c c\u00edme. Ezt decim\u00e1lis sz\u00e1mk\u00e9nt kell megadni # (nem hexadecim\u00e1lis form\u00e1ban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k az eszk\u00f6z t\u00edpus\u00e1t\u00f3l f\u00fcgg. #i2c_mcu: # Annak a mikrovez\u00e9rl\u0151nek a neve, amelyhez a chip csatlakozik. # Az alap\u00e9rtelmezett az \"mcu\". #i2c_bus: # Ha a mikrovez\u00e9rl\u0151 t\u00f6bb I2C buszt t\u00e1mogat, akkor itt megadhatja a # mikrovez\u00e9rl\u0151 busz nev\u00e9t. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a mikrovez\u00e9rl\u0151 t\u00edpus\u00e1t\u00f3l f\u00fcgg. #i2c_speed: # Az eszk\u00f6zzel val\u00f3 kommunik\u00e1ci\u00f3 sor\u00e1n haszn\u00e1land\u00f3 I2C sebess\u00e9g # (Hz-ben). A Klipper implement\u00e1ci\u00f3ja a legt\u00f6bb mikrovez\u00e9rl\u0151n k\u00f3dolt # \u00e9rt\u00e9ke 100000, \u00e9s ennek az \u00e9rt\u00e9knek nincs hat\u00e1sa. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 100 000.","title":"Konfigur\u00e1ci\u00f3s hivatkoz\u00e1s"},{"location":"Config_Reference.html#konfiguracios-hivatkozas","text":"Ez a dokumentum a Klipper konfigur\u00e1ci\u00f3s f\u00e1jlban el\u00e9rhet\u0151 be\u00e1ll\u00edt\u00e1sok referenci\u00e1ja. Az ebben a dokumentumban tal\u00e1lhat\u00f3 le\u00edr\u00e1sok \u00fagy vannak form\u00e1zva, hogy kiv\u00e1ghat\u00f3ak \u00e9s beilleszthet\u0151ek legyenek egy nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1ba. A Klipper be\u00e1ll\u00edt\u00e1s\u00e1val \u00e9s a kezdeti konfigur\u00e1ci\u00f3s f\u00e1jl kiv\u00e1laszt\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a telep\u00edt\u00e9si dokumentumot .","title":"Konfigur\u00e1ci\u00f3s hivatkoz\u00e1s"},{"location":"Config_Reference.html#mikrokontroller-konfiguracio","text":"","title":"Mikrokontroller konfigur\u00e1ci\u00f3"},{"location":"Config_Reference.html#a-mikrokontroller-tu-neveinek-formatuma","text":"Sz\u00e1mos konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1shoz egy mikrokontroller-t\u0171 nev\u00e9re van sz\u00fcks\u00e9g. A Klipper a hardveres neveket haszn\u00e1lja ezekhez a t\u0171kh\u00f6z - p\u00e9ld\u00e1ul PA4 . A t\u0171 nevek el\u0151tt ! \u00e1llhat, hogy jelezze ilyenkor ford\u00edtott polarit\u00e1st haszn\u00e1l (pl. magas helyett alacsony \u00e9rt\u00e9ken t\u00f6rt\u00e9n\u0151 trigger). A bemeneti t\u0171k el\u0151tt ^ jelezheti, hogy a t\u0171h\u00f6z hardveres pull-up ellen\u00e1ll\u00e1st kell enged\u00e9lyezni. Ha a mikrokontroller t\u00e1mogatja a pull-down ellen\u00e1ll\u00e1sokat, akkor egy bemeneti t\u0171 el\u0151tt ~ \u00e1llhat. Megjegyz\u00e9s: egyes konfigur\u00e1ci\u00f3s szakaszok tov\u00e1bbi t\u0171ket hozhatnak l\u00e9tre. Ahol ez el\u0151fordul, ott a t\u0171ket defini\u00e1l\u00f3 konfigur\u00e1ci\u00f3s szekci\u00f3t a konfigur\u00e1ci\u00f3s f\u00e1jlban az ezeket a t\u0171ket haszn\u00e1l\u00f3 szekci\u00f3k el\u0151tt kell felsorolni.","title":"A mikrokontroller t\u0171 neveinek form\u00e1tuma"},{"location":"Config_Reference.html#mcu","text":"Az els\u0151dleges mikrokontroller konfigur\u00e1l\u00e1sa. [mcu] serial: # Az MCU-hoz csatlakoztatand\u00f3 soros port. Ha bizonytalan (vagy a # v\u00e1ltoztat\u00e1sban), l\u00e1sd a GYIK \"Hol van a soros port?\" r\u00e9sz\u00e9t. # Ezt a param\u00e9tert soros port haszn\u00e1lata eset\u00e9n meg kell adni. #baud: 250000 # A haszn\u00e1land\u00f3 \u00e1tviteli sebess\u00e9g. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 250000. #canbus_uuid: # Ha CAN-buszra csatlakoztatott eszk\u00f6zt haszn\u00e1lunk, akkor ez \u00e1ll\u00edtja # be az egyedi chip azonos\u00edt\u00f3j\u00e1t, amelyhez csatlakozni kell. # Ezt az \u00e9rt\u00e9ket meg kell adni, a CAN busz haszn\u00e1lata eset\u00e9n. #canbus_interface: # Ha CAN-buszra csatlakoztatott eszk\u00f6zt haszn\u00e1lunk, akkor ez \u00e1ll\u00edtja # be a CAN h\u00e1l\u00f3zati interf\u00e9szt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 'can0'. #restart_method: # Ez szab\u00e1lyozza azt a mechanizmust, amelyet a gazdag\u00e9p haszn\u00e1ljon a # mikrokontroller \u00fajraind\u00edt\u00e1s\u00e1hoz. A v\u00e1laszthat\u00f3 lehet\u0151s\u00e9gek: 'arduino', # 'cheetah', 'rpi_usb', \u00e9s 'command'. Az 'arduino' m\u00f3dszer # (DTR kapcsol\u00e1sa) a k\u00f6vetkez\u0151 eszk\u00f6z\u00f6k\u00f6n gyakori. Arduino k\u00e1rty\u00e1k # \u00e9s kl\u00f3nok. A 'cheetah' m\u00f3dszer egy speci\u00e1lis m\u00f3dszer, amely n\u00e9h\u00e1ny # Fysetc Cheetah k\u00e1rty\u00e1hoz sz\u00fcks\u00e9ges. Az 'rpi_usb' m\u00f3dszer hasznos # a Raspberry Pi lapokon, amelyek mikrovez\u00e9rl\u0151kkel vannak ell\u00e1tva. # USB-n kereszt\u00fcl r\u00f6vid id\u0151re kikapcsolja az \u00f6sszes USB port # \u00e1ramell\u00e1t\u00e1s\u00e1t, hogy a mikrokontroller \u00fajrainduljon. A 'command' # m\u00f3dszer a k\u00f6vetkez\u0151ket foglalja mag\u00e1ban. Klipper parancsot k\u00fcld # a mikrokontrollernek, hogy az k\u00e9pes legyen \u00fajraind\u00edtani mag\u00e1t. # Az alap\u00e9rtelmezett be\u00e1ll\u00edt\u00e1s az 'arduino' ha a mikrokontroller # soros porton kereszt\u00fcl kommunik\u00e1l, egy\u00e9bk\u00e9nt 'command'.","title":"[mcu]"},{"location":"Config_Reference.html#mcu-my_extra_mcu","text":"Tov\u00e1bbi mikrovez\u00e9rl\u0151k (az \"mcu\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni). A tov\u00e1bbi mikrovez\u00e9rl\u0151k tov\u00e1bbi t\u0171ket vezetnek be, amelyek f\u0171t\u0151berendez\u00e9sk\u00e9nt, l\u00e9ptet\u0151berendez\u00e9sk\u00e9nt, ventil\u00e1tork\u00e9nt stb. konfigur\u00e1lhat\u00f3k. P\u00e9ld\u00e1ul, ha egy \"[mcu extra_mcu]\" szekci\u00f3t vezet\u00fcnk be, akkor az olyan t\u0171ket, mint az \"extra_mcu:ar9\" a konfigur\u00e1ci\u00f3ban m\u00e1shol is haszn\u00e1lhat\u00f3k (ahol \"ar9\" az adott mcu hardveres t\u0171 neve vagy \u00e1lneve). [mcu my_extra_mcu] # A konfigur\u00e1ci\u00f3s param\u00e9tereket l\u00e1sd az \"mcu\" szakaszban.","title":"[mcu my_extra_mcu]"},{"location":"Config_Reference.html#kozos-kinematikai-beallitasok","text":"","title":"K\u00f6z\u00f6s kinematikai be\u00e1ll\u00edt\u00e1sok"},{"location":"Config_Reference.html#printer","text":"A nyomtat\u00f3 szakasz a nyomtat\u00f3 magas szint\u0171 be\u00e1ll\u00edt\u00e1sait vez\u00e9rli. [printer] kinematics: # A haszn\u00e1lt nyomtat\u00f3 t\u00edpusa. Ez az opci\u00f3 a k\u00f6vetkez\u0151k egyike lehet: # cartesian, corexy, corexz, hybrid_corexy, hybrid_corexz, rotary_delta, # delta, delta, polar, cs\u00f6rl\u0151, vagy egyik sem. # Ezt a param\u00e9tert meg kell adni. max_velocity: # A nyomtat\u00f3fej maxim\u00e1lis sebess\u00e9ge (mm/s-ban) # (a nyomathoz viszony\u00edtva). Ezt a param\u00e9tert meg kell adni. max_accel: # A nyomtat\u00f3fej maxim\u00e1lis gyorsul\u00e1sa (mm/s^2-ben) # (a nyomtat\u00f3hoz viszony\u00edtva). Ezt a param\u00e9tert meg kell adni. #max_accel_to_decel: # \u00c1lgyorsul\u00e1s (mm/s^2-ben), amely azt szab\u00e1lyozza, hogy a nyomtat\u00f3fej # milyen gyorsan haladjon gyorsul\u00e1sr\u00f3l a lass\u00edt\u00e1sra. A r\u00f6vid cikk-cakk # mozg\u00e1sok maxim\u00e1lis sebess\u00e9g\u00e9nek cs\u00f6kkent\u00e9s\u00e9re szolg\u00e1l # (\u00e9s ez\u00e1ltal cs\u00f6kkenti a nyomtat\u00f3 rezg\u00e9s\u00e9t ezekb\u0151l a l\u00e9p\u00e9sekb\u0151l). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a max_accel fele. #square_corner_velocity: 5.0 # Az a maxim\u00e1lis sebess\u00e9g (mm/s-ban), amellyel a nyomtat\u00f3fej egy # 90 fokos sarokban haladhat. A null\u00e1t\u00f3l elt\u00e9r\u0151 \u00e9rt\u00e9k cs\u00f6kkentheti az # extruder \u00e1raml\u00e1si sebess\u00e9g\u00e9nek v\u00e1ltoz\u00e1sait az\u00e1ltal, hogy lehet\u0151v\u00e9 teszi # a nyomtat\u00f3fej azonnali sebess\u00e9gv\u00e1ltoz\u00e1s\u00e1t kanyarod\u00e1s k\u00f6zben. # Ez az \u00e9rt\u00e9k konfigur\u00e1lja a bels\u0151 centripet\u00e1lis sebess\u00e9g # kanyarod\u00e1si algoritmus\u00e1t; a 90 fokn\u00e1l nagyobb sz\u00f6g\u0171 sarkok # kanyarod\u00e1si sebess\u00e9ge nagyobb, m\u00edg a 90 fokn\u00e1l kisebb sz\u00f6g\u0171 sarkok # kanyarsebess\u00e9ge kisebb. Ha ez null\u00e1ra van \u00e1ll\u00edtva, akkor a nyomtat\u00f3fej # minden sark\u00e1n\u00e1l null\u00e1ra lassul. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5 mm/s.","title":"[printer]"},{"location":"Config_Reference.html#stepper","text":"L\u00e9ptet\u0151motor meghat\u00e1roz\u00e1sok. A k\u00fcl\u00f6nb\u00f6z\u0151 nyomtat\u00f3t\u00edpusok (a [printer] config szakasz \"kinematika\" opci\u00f3ja \u00e1ltal meghat\u00e1rozottak szerint) elt\u00e9r\u0151 neveket ig\u00e9nyelnek a l\u00e9ptet\u0151 sz\u00e1m\u00e1ra (pl. stepper_x vs stepper_a ). Az al\u00e1bbiakban a stepperek \u00e1ltal\u00e1nos defin\u00edci\u00f3i k\u00f6vetkeznek. A rotation_distance param\u00e9ter kisz\u00e1m\u00edt\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a forgat\u00e1si t\u00e1vols\u00e1g dokumentumot . A t\u00f6bb mikrovez\u00e9rl\u0151vel t\u00f6rt\u00e9n\u0151 kezd\u0151pont felv\u00e9tellel kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a Multi-MCU kezd\u0151pont dokumentumot. [stepper_x] step_pin: # L\u00e9p\u00e9s GPIO t\u0171 (magasan aktiv\u00e1lva). Ezt a param\u00e9tert meg kell adni. dir_pin: # Ir\u00e1ny GPIO t\u0171 (magas pozit\u00edv ir\u00e1nyt jelez). Ezt a param\u00e9tert meg kell adni. enable_pin: # Enged\u00e9lyezett t\u0171 (az alap\u00e9rtelmezett enged\u00e9lyez\u00e9s magas; haszn\u00e1ld a # \"!\" jelet az enged\u00e9lyez\u00e9s alacsony szintj\u00e9nek jelz\u00e9s\u00e9re). Ha ez a # param\u00e9ter nincs megadva, akkor a l\u00e9ptet\u0151motor meghajt\u00f3t mindig # enged\u00e9lyezni kell. rotation_distance: # Az a t\u00e1vols\u00e1g (mm-ben), amelyet a tengely megtesz a l\u00e9ptet\u0151motor egy # teljes fordulat\u00e1val (vagy v\u00e9gs\u0151 sebess\u00e9gfokozattal, ha a gear_ratio meg # van adva). Ezt a param\u00e9tert meg kell adni. microsteps: # A l\u00e9ptet\u0151motor-vez\u00e9rl\u0151 \u00e1ltal haszn\u00e1lt mikrol\u00e9p\u00e9sek sz\u00e1ma. # Ezt a param\u00e9tert meg kell adni. #full_steps_per_rotation: 200 # A l\u00e9ptet\u0151motor egy fordulat\u00e1hoz tartoz\u00f3 teljes l\u00e9p\u00e9sek sz\u00e1ma. \u00c1ll\u00edtsd ezt # 200-ra 1,8 fokos l\u00e9ptet\u0151motor eset\u00e9n, vagy 400-ra 0,9 fokos motor eset\u00e9n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 200. #gear_ratio: # Az \u00e1tt\u00e9tel, ha a l\u00e9ptet\u0151motor egy sebess\u00e9gv\u00e1lt\u00f3n kereszt\u00fcl csatlakozik a # tengelyhez. P\u00e9ld\u00e1ul megadhatja az \"5:1\" \u00e9rt\u00e9ket, ha 5:1 sebess\u00e9gv\u00e1lt\u00f3t # haszn\u00e1lnak. Ha a tengely t\u00f6bb sebess\u00e9gv\u00e1lt\u00f3val rendelkezik, megadhat # egy vessz\u0151vel elv\u00e1lasztott \u00e1tt\u00e9teli list\u00e1t (p\u00e9ld\u00e1ul \"57:11, 2:1\"). Ha a # gear_ratio meg van adva, akkor a rotation_distance azt a t\u00e1vols\u00e1got # hat\u00e1rozza meg, amelyet a tengely megtesz a v\u00e9gs\u0151 fogasker\u00e9k egy teljes # fordulat\u00e1n\u00e1l. Az alap\u00e9rtelmez\u00e9s szerint nem haszn\u00e1l \u00e1tt\u00e9teli ar\u00e1nyt. #step_pulse_duration: # A minim\u00e1lis id\u0151 a l\u00e9ptet\u0151 impulzus jel \u00e9le \u00e9s a k\u00f6vetkez\u0151 \"l\u00e9p\u00e9sk\u00f6z\" jel # \u00e9le k\u00f6z\u00f6tt. Ez a l\u00e9p\u00e9s impulzus \u00e9s az ir\u00e1nyv\u00e1lt\u00f3 jel k\u00f6z\u00f6tti minim\u00e1lis id\u0151 # be\u00e1ll\u00edt\u00e1s\u00e1ra is haszn\u00e1lhat\u00f3. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,000000100 (100 ns) # az UART vagy SPI m\u00f3dban konfigur\u00e1lt TMC l\u00e9ptet\u0151k eset\u00e9ben, \u00e9s az # alap\u00e9rtelmezett 0,000002 (ami 2us) az \u00f6sszes t\u00f6bbi l\u00e9ptet\u0151 eset\u00e9ben. endstop_pin: # V\u00e9g\u00e1ll\u00e1skapcsol\u00f3 \u00e9rz\u00e9kel\u00e9si t\u0171. Ha ez a v\u00e9g\u00fctk\u00f6z\u0151 t\u0171 m\u00e1s MCU-n van, # mint a l\u00e9ptet\u0151motor, akkor enged\u00e9lyezi a \"multi-mcu homing\"-ot. # Ezt a param\u00e9tert meg kell adni a der\u00e9ksz\u00f6g\u0171 nyomtat\u00f3k X, Y \u00e9s Z # l\u00e9ptet\u0151ihez. #position_min: 0 # Minim\u00e1lis \u00e9rv\u00e9nyes t\u00e1vols\u00e1g (mm-ben), amelyre a felhaszn\u00e1l\u00f3 utas\u00edthatja # a l\u00e9ptet\u0151t, hogy mozogjon. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0 mm. position_endstop: # A v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 helye (mm-ben). # Ezt a param\u00e9tert meg kell adni a der\u00e9ksz\u00f6g\u0171 nyomtat\u00f3k X, Y \u00e9s Z # l\u00e9ptet\u0151ihez. position_max: # Maxim\u00e1lis \u00e9rv\u00e9nyes t\u00e1vols\u00e1g (mm-ben), amelyre a felhaszn\u00e1l\u00f3 utas\u00edthatja # a l\u00e9ptet\u0151t, hogy mozogjon. Ezt a param\u00e9tert meg kell adni a der\u00e9ksz\u00f6g\u0171 # nyomtat\u00f3k X, Y \u00e9s Z l\u00e9ptet\u0151ihez. #homing_speed: 5.0 # A l\u00e9ptet\u0151 maxim\u00e1lis sebess\u00e9ge (mm/sec-ben) kezd\u0151pont felv\u00e9telkor. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5 mm/sec. #homing_retract_dist: 5.0 # T\u00e1vols\u00e1g a visszal\u00e9p\u00e9sig (mm-ben), miel\u0151tt m\u00e1sodszor is be\u00e1ll\u00edtan\u00e1. # \u00c1ll\u00edtsd ezt null\u00e1ra a m\u00e1sodik kezd\u0151pont felv\u00e9tel letilt\u00e1s\u00e1hoz. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5 mm. #homing_retract_speed: # Sebess\u00e9g, amelyet a visszah\u00faz\u00e1sn\u00e1l kell haszn\u00e1lni a kezd\u0151pont felv\u00e9tel # ut\u00e1n arra az esetre, ha ez elt\u00e9rne a be\u00e1ll\u00edt\u00e1si sebess\u00e9gt\u0151l, amely ehhez a # param\u00e9terhez az alap\u00e9rtelmezett. #second_homing_speed: # A l\u00e9ptet\u0151 sebess\u00e9ge (mm/sec-ben) a m\u00e1sodik kezd\u0151pont felv\u00e9tel # v\u00e9grehajt\u00e1sakor. Az alap\u00e9rtelmez\u00e9s a homing_speed/2. #homing_positive_dir: # Ha ez True, a kezd\u0151pont felv\u00e9tel hat\u00e1s\u00e1ra a l\u00e9ptet\u0151 pozit\u00edv ir\u00e1nyba mozdul # el (el a null\u00e1t\u00f3l) ha False, akkor kezd\u0151pontra a nulla fel\u00e9. Jobb az # alap\u00e9rtelmezettet haszn\u00e1lni, mint ezt a param\u00e9tert megadni. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k True, ha a position_endstop a position_max # k\u00f6zel\u00e9ben van, \u00e9s False, ha a position_min k\u00f6zel\u00e9ben van.","title":"[stepper]"},{"location":"Config_Reference.html#cartesian-kinematika","text":"L\u00e1sd example-cartesian.cfg egy p\u00e9lda cartesian kinematika konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Itt csak a cartesian nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd a \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: cartesian max_z_velocity: # Ez \u00e1ll\u00edtja be a Z ir\u00e1ny\u00fa mozg\u00e1s maxim\u00e1lis sebess\u00e9g\u00e9t (mm/sec-ben). # Ez a be\u00e1ll\u00edt\u00e1s haszn\u00e1lhat\u00f3 a maxim\u00e1lis sebess\u00e9g korl\u00e1toz\u00e1s\u00e1ra a # a Z l\u00e9ptet\u0151motor eset\u00e9ben. Az alap\u00e9rtelmez\u00e9s szerint a max_velocity a k\u00f6vetkez\u0151 \u00e9rt\u00e9kekre vonatkozik # max_z_velocity. max_z_accel: # Ez \u00e1ll\u00edtja be a mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t (mm/sec^2-ben) # a Z tengely ment\u00e9n. Korl\u00e1tozza a Z l\u00e9ptet\u0151motor gyorsul\u00e1s\u00e1t. Az # alap\u00e9rtelmezett a max_accel haszn\u00e1lata a max_z_accel eset\u00e9ben. # A stepper_x szakasz a l\u00e9ptet\u0151motor vez\u00e9rl\u00e9s\u00e9re szolg\u00e1l. # X tengely egy cartesian g\u00e9pen. [stepper_x] # A stepper_y szakasz a l\u00e9ptet\u0151motor vez\u00e9rl\u00e9s\u00e9re szolg\u00e1l. # Y t\u00edngely egy cartesian g\u00e9pen. [stepper_y] # A stepper_z szakasz a l\u00e9ptet\u0151motor vez\u00e9rl\u00e9s\u00e9re szolg\u00e1l. # Z tengely egy cartesian g\u00e9pen. [stepper_z]","title":"Cartesian Kinematika"},{"location":"Config_Reference.html#linearis-delta-kinematika","text":"L\u00e1sd az example-delta.cfg p\u00e9ld\u00e1t a line\u00e1ris delta kinematika konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1hoz. A kalibr\u00e1l\u00e1ssal kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a delta kalibr\u00e1ci\u00f3s \u00fatmutat\u00f3 dokumentumot. Itt csak a line\u00e1ris delta nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: delta max_z_velocity: # A delta nyomtat\u00f3kn\u00e1l ez korl\u00e1tozza a Z tengely mozg\u00e1s\u00e1nak maxim\u00e1lis # sebess\u00e9g\u00e9t (mm/sec-ben). Ezzel a be\u00e1ll\u00edt\u00e1ssal cs\u00f6kkenthet\u0151 a fel/le # mozg\u00e1sok maxim\u00e1lis sebess\u00e9ge (amely nagyobb l\u00e9p\u00e9ssz\u00e1mot ig\u00e9nyel, # mint a deltanyomtat\u00f3k egy\u00e9b mozg\u00e1sai). Az alap\u00e9rtelmezett \u00e9rt\u00e9k a # max_velocity haszn\u00e1lata a max_z_velocity \u00e9rt\u00e9khez. #max_z_accel: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t # (mm/sec^2-en). Ennek be\u00e1ll\u00edt\u00e1sa akkor lehet hasznos, ha a nyomtat\u00f3 # nagyobb gyorsul\u00e1st tud el\u00e9rni XY mozg\u00e1sn\u00e1l, mint Z mozg\u00e1sn\u00e1l (pl. # bemeneti alakform\u00e1l\u00f3 haszn\u00e1latakor). # Az alap\u00e9rtelmez\u00e9s szerinti \u00e9rt\u00e9ke a max_accel a max_z_accel \u00e9rt\u00e9khez. #minimum_z_position: 0 # Az a minim\u00e1lis Z poz\u00edci\u00f3, amelybe a felhaszn\u00e1l\u00f3 utas\u00edthatja a fejet, # hogy mozogjon. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. delta_radius: # A h\u00e1rom line\u00e1ris tengely torony \u00e1ltal alkotott v\u00edzszintes k\u00f6r sugara # (mm-ben). Ez a param\u00e9ter a k\u00f6vetkez\u0151k\u00e9ppen is kisz\u00e1m\u00edthat\u00f3: # delta_radius = smooth_rod_offset - effector_offset - carriage_offset. # Ezt a param\u00e9tert meg kell adni. #print_radius: # Az \u00e9rv\u00e9nyes XY nyomtat\u00f3fej koordin\u00e1t\u00e1k sugara (mm-ben). Ezzel a # be\u00e1ll\u00edt\u00e1ssal testreszabhat\u00f3 a nyomtat\u00f3fej mozg\u00e1sok tartom\u00e1ny # ellen\u0151rz\u00e9se. Ha itt nagy \u00e9rt\u00e9ket adunk meg, akkor lehets\u00e9ges lehet # a nyomtat\u00f3fejet toronnyal val\u00f3 \u00fctk\u00f6z\u00e9sre utas\u00edtani. # Az alap\u00e9rtelmezett a delta_radius a print_radius \u00e9rt\u00e9khez (ami # \u00e1ltal\u00e1ban megakad\u00e1lyozza a torony \u00fctk\u00f6z\u00e9s\u00e9t). # A stepper_a szakasz a bal els\u0151 tornyot vez\u00e9rl\u0151 l\u00e9ptet\u0151t \u00edrja le # (210 fokban). Ez a szakasz az \u00f6sszes toronyhoz tartoz\u00f3 kezd\u0151pont # param\u00e9tereket (homing_speed, homing_retract_dist) is szab\u00e1lyozza. [stepper_a] position_endstop: # T\u00e1vols\u00e1g (mm-ben) a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tt, ha a f\u00fav\u00f3ka az \u00e9p\u00edt\u00e9si # ter\u00fclet k\u00f6zep\u00e9n van, \u00e9s a v\u00e9g\u00fctk\u00f6z\u0151 kiold. Ezt a param\u00e9tert meg kell # adni a stepper_a; a stepper_b \u00e9s a stepper_c eset\u00e9n ez a param\u00e9ter # alap\u00e9rtelmezett \u00e9rt\u00e9ke a stepper_a param\u00e9terben megadott \u00e9rt\u00e9k. arm_length: # A tornyot a nyomtat\u00f3fejjel \u00f6sszek\u00f6t\u0151 \u00e1tl\u00f3s r\u00fad hossza (mm-ben). # Ezt a param\u00e9tert meg kell adni a stepper_a; a stepper_b \u00e9s a stepper_c # eset\u00e9n ez a param\u00e9ter alap\u00e9rtelmezett \u00e9rt\u00e9ke a stepper_a # param\u00e9terben megadott \u00e9rt\u00e9k. #angle: # Ez az opci\u00f3 azt a sz\u00f6get adja meg (fokban), amelyben a torony \u00e1ll. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 210 a stepper_a, 330 a stepper_b \u00e9s # 90 a stepper_c. # A stepper_b szakasz a jobb els\u0151 tornyot vez\u00e9rl\u0151 l\u00e9ptet\u0151t \u00edrja le # (330 fokban). [stepper_b] # A stepper_c szakasz a h\u00e1ts\u00f3 tornyot vez\u00e9rl\u0151 l\u00e9ptet\u0151t \u00edrja le (90 fokban). [stepper_c] # A delta_calibrate szakasz lehet\u0151v\u00e9 teszi a DELTA_CALIBRATE # kiterjesztett G-k\u00f3d parancsot, amely k\u00e9pes kalibr\u00e1lni a torony # v\u00e9g\u00e1ll\u00e1s\u00e1nak poz\u00edci\u00f3it \u00e9s sz\u00f6geit. [delta_calibrate] radius: # A vizsg\u00e1lhat\u00f3 ter\u00fclet sugara (mm-ben). Ez a vizsg\u00e1land\u00f3 # f\u00fav\u00f3kakoordin\u00e1t\u00e1k sugara; Ha XY eltol\u00e1s\u00fa automata szond\u00e1t haszn\u00e1l, # akkor v\u00e1lasszon el\u00e9g kicsi sugarat, hogy a szonda mindig a t\u00e1rgyasztal f\u00f6l\u00e9 # f\u00e9rjen. Ezt a param\u00e9tert meg kell adni. #speed: 50 # A nem szond\u00e1z\u00e1s sebess\u00e9ge (mm/sec-ben) mozog a kalibr\u00e1l\u00e1s sor\u00e1n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), ameddig a fejnek el kell mozdulnia # k\u00f6zvetlen\u00fcl a szondam\u0171velet megkezd\u00e9se el\u0151tt. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5.","title":"Line\u00e1ris delta kinematika"},{"location":"Config_Reference.html#deltesian-kinematika","text":"L\u00e1sd example-deltesian.cfg egy p\u00e9lda deltesian kinematika konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Itt csak a deltesian nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd a \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: deltesian max_z_velocity: # Deltesian nyomtat\u00f3kn\u00e1l ez korl\u00e1tozza a Z tengely mozg\u00e1s\u00e1nak maxim\u00e1lis # sebess\u00e9g\u00e9t (mm/s-ban). Ezzel a be\u00e1ll\u00edt\u00e1ssal cs\u00f6kkenthet\u0151 a fel/le # mozg\u00e1sok maxim\u00e1lis sebess\u00e9ge (amelyek nagyobb l\u00e9p\u00e9ssz\u00e1mot # ig\u00e9nyelnek, mint egy deltesian nyomtat\u00f3 egy\u00e9b l\u00e9p\u00e9sei). # Az alap\u00e9rtelmezett a max_velocity a max_z_velocity \u00e9rt\u00e9khez. #max_z_accel: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t # (mm/s^2-ben). Ennek be\u00e1ll\u00edt\u00e1sa akkor lehet hasznos, ha a nyomtat\u00f3 # nagyobb gyorsul\u00e1st tud el\u00e9rni XY mozg\u00e1sn\u00e1l, mint Z mozg\u00e1sn\u00e1l # (pl. bemeneti alakform\u00e1l\u00f3 haszn\u00e1latakor). # Az alap\u00e9rtelmezett a max_accel a max_z_accel \u00e9rt\u00e9khez. #minim\u00e1lis_z_poz\u00edci\u00f3: 0 # Az a minim\u00e1lis Z poz\u00edci\u00f3, amelybe a felhaszn\u00e1l\u00f3 utas\u00edthatja a fejet, hogy # mozogjon. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #min_angle: 5 # Ez azt a minim\u00e1lis sz\u00f6get (fokban) jelenti a v\u00edzszinteshez k\u00e9pest, amelyet # a deltesian karok el\u00e9rhetnek. Ennek a param\u00e9ternek az a c\u00e9lja, hogy # megakad\u00e1lyozza, a karok teljesen v\u00edzszintesbe mozgat\u00e1s\u00e1t, ami az XZ # tengely v\u00e9letlen megfordul\u00e1s\u00e1t kock\u00e1ztatn\u00e1. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #print_width: # Az \u00e9rv\u00e9nyes nyomtat\u00f3fej X koordin\u00e1t\u00e1k t\u00e1vols\u00e1ga (mm-ben). Ezzel a # be\u00e1ll\u00edt\u00e1ssal testreszabhat\u00f3 a nyomtat\u00f3fej mozg\u00e1sok tartom\u00e1nyellen\u0151rz\u00e9se. # Ha itt nagy \u00e9rt\u00e9ket adunk meg, akkor el\u0151fordulhat, hogy a nyomtat\u00f3fejet a # toronnyal val\u00f3 \u00fctk\u00f6z\u00e9sre utas\u00edthatjuk. # Ez a be\u00e1ll\u00edt\u00e1s \u00e1ltal\u00e1ban a t\u00e1rgyasztal sz\u00e9less\u00e9gnek felel meg (mm-ben). #slow_ratio: 3 # Az az ar\u00e1ny, amely korl\u00e1tozza a sebess\u00e9get \u00e9s a gyorsul\u00e1st az X tengely # sz\u00e9ls\u0151 pontjaihoz k\u00f6zeli mozg\u00e1sokn\u00e1l. Ha a f\u00fcgg\u0151leges t\u00e1vols\u00e1g osztva a # v\u00edzszintes t\u00e1vols\u00e1ggal meghaladja a slow_ratio \u00e9rt\u00e9k\u00e9t, akkor a sebess\u00e9g \u00e9s # a gyorsul\u00e1s a n\u00e9vleges \u00e9rt\u00e9k\u00fck fel\u00e9re korl\u00e1toz\u00f3dik. Ha a f\u00fcgg\u0151leges t\u00e1vols\u00e1g # osztva a v\u00edzszintes t\u00e1vols\u00e1ggal meghaladja a slow_ratio \u00e9rt\u00e9k\u00e9nek # k\u00e9tszeres\u00e9t, akkor a sebess\u00e9g \u00e9s a gyorsul\u00e1s a n\u00e9vleges \u00e9rt\u00e9k\u00fck # egynegyed\u00e9re korl\u00e1toz\u00f3dik. Az alap\u00e9rtelmezett \u00e9rt\u00e9k a 3. # A stepper_left szakasz a bal tornyot vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. # Ez a szakasz az \u00f6sszes toronyhoz tartoz\u00f3 homing param\u00e9tereket # (homing_speed, homing_retract_dist) is szab\u00e1lyozza. [stepper_left] position_endstop: # T\u00e1vols\u00e1g (mm-ben) a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tt, ha a f\u00fav\u00f3ka az \u00e9p\u00edt\u00e9si ter\u00fclet # k\u00f6zep\u00e9n van, \u00e9s a v\u00e9g\u00fctk\u00f6z\u0151k kiold\u00f3dnak. Ezt a param\u00e9tert meg kell adni a # stepper_left; a stepper_right eset\u00e9n ez a param\u00e9ter alap\u00e9rtelmezett \u00e9rt\u00e9ke # a stepper_left param\u00e9terben megadott \u00e9rt\u00e9k. arm_length: # A toronykocsit a nyomtat\u00f3fejjel \u00f6sszek\u00f6t\u0151 \u00e1tl\u00f3s r\u00fad hossza (mm-ben). # Ezt a param\u00e9tert meg kell adni a stepper_left; a stepper_right eset\u00e9n ez a # param\u00e9ter alap\u00e9rtelmezett \u00e9rt\u00e9ke a stepper_left param\u00e9ter megadott \u00e9rt\u00e9ke. arm_x_length: # V\u00edzszintes t\u00e1vols\u00e1g a nyomtat\u00f3fej \u00e9s a torony k\u00f6z\u00f6tt, ha minden # kezd\u0151ponton van. Ezt a param\u00e9tert meg kell adni a stepper_left; a # stepper_right eset\u00e9n ez a param\u00e9ter alap\u00e9rtelmezett \u00e9rt\u00e9ke a # stepper_left param\u00e9terben megadott \u00e9rt\u00e9k. # A stepper_right szekci\u00f3 a jobb oldali tornyot vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_right] # A stepper_y szakasz az Y tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l # egy deltesian g\u00e9pen. [stepper_y]","title":"Deltesian Kinematika"},{"location":"Config_Reference.html#corexy-kinematika","text":"L\u00e1sd example-corexy.cfg egy p\u00e9lda corexy (\u00e9s h-bot) kinematikai f\u00e1jlt. Itt csak a CoreXY nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: corexy max_z_velocity: # Ez \u00e1ll\u00edtja be a Z ir\u00e1ny\u00fa mozg\u00e1s maxim\u00e1lis sebess\u00e9g\u00e9t (mm/sec-ben). # Ez a be\u00e1ll\u00edt\u00e1s haszn\u00e1lhat\u00f3 a Z l\u00e9ptet\u0151motor maxim\u00e1lis sebess\u00e9gkorl\u00e1toz\u00e1s\u00e1ra. # Az alap\u00e9rtelmez\u00e9s szerint a max_velocity a k\u00f6vetkez\u0151 \u00e9rt\u00e9kekre vonatkozik # amely a max_z_velocity. max_z_accel: # Ez \u00e1ll\u00edtja be a mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t (mm/sec^2 -ben) # a Z tengely ment\u00e9n. Korl\u00e1tozza a Z l\u00e9ptet\u0151motor gyorsul\u00e1s\u00e1t. # Az alap\u00e9rtelmezett max_accel haszn\u00e1lata a max_z_accel paranccsal t\u00f6rt\u00e9nik. # A stepper_x szakasz az X tengely, valamint az X+Y mozg\u00e1st vez\u00e9rl\u0151 # l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_x] # A stepper_y szakasz az Y tengely, valamint az X+Y mozg\u00e1st vez\u00e9rl\u0151 # l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_y] # A stepper_z szakasz a Z tengely, mozg\u00e1st vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_z]","title":"CoreXY Kinematika"},{"location":"Config_Reference.html#corexz-kinematika","text":"L\u00e1sd example-corexz.cfg egy p\u00e9lda CoreXZ kinematikai konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Itt csak a CoreXZ nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: corexz max_z_velocity: # Ez \u00e1ll\u00edtja be a Z ir\u00e1ny\u00fa mozg\u00e1s maxim\u00e1lis sebess\u00e9g\u00e9t (mm/sec-ben). # Ez a be\u00e1ll\u00edt\u00e1s haszn\u00e1lhat\u00f3 a Z l\u00e9ptet\u0151motor maxim\u00e1lis sebess\u00e9gkorl\u00e1toz\u00e1s\u00e1ra. # Az alap\u00e9rtelmez\u00e9s szerint a max_velocity a k\u00f6vetkez\u0151 \u00e9rt\u00e9kekre vonatkozik # amely a max_z_velocity. max_z_accel: # Ez \u00e1ll\u00edtja be a mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t (mm/sec^2 -ben) # a Z tengely ment\u00e9n. Korl\u00e1tozza a Z l\u00e9ptet\u0151motor gyorsul\u00e1s\u00e1t. # Az alap\u00e9rtelmezett max_accel haszn\u00e1lata a max_z_accel paranccsal t\u00f6rt\u00e9nik. # A stepper_x szakasz az X tengely, valamint az X+Z mozg\u00e1st vez\u00e9rl\u0151 # l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_x] # A stepper_y szakasz az Y tengely l\u00e9ptet\u0151 vez\u00e9rl\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_y] # A stepper_z szakasz a Z tengely le\u00edr\u00e1s\u00e1ra szolg\u00e1l, valamint a # l\u00e9ptet\u0151, amely az X-Z mozg\u00e1st vez\u00e9rli. [stepper_z]","title":"CoreXZ Kinematika"},{"location":"Config_Reference.html#hybrid-corexy-kinematika","text":"L\u00e1sd az example-hybrid-corexy.cfg p\u00e9ld\u00e1t egy hibrid CoreXY kinematikai konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Ez a kinematika Markforged kinematikak\u00e9nt is ismert. Itt csak a hibrid CoreXY nyomtat\u00f3kra jellemz\u0151 param\u00e9tereket \u00edrjuk le, a rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: hybrid_corexy max_z_velocity: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis sebess\u00e9g\u00e9t (mm/sec-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a max_velocity haszn\u00e1lata a max_z_velocity \u00e9rt\u00e9khez. max_z_accel: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t (mm/sec^2-en). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a max_accel haszn\u00e1lata a max_z_accel \u00e9rt\u00e9khez. # A stepper_x szakasz az X tengely, valamint az X-Y mozg\u00e1st vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [l\u00e9pcs\u0151_x] # A stepper_y szakasz az Y tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [l\u00e9p\u00e9s_y] # A stepper_z szakasz a Z tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_z]","title":"Hybrid-CoreXY Kinematika"},{"location":"Config_Reference.html#hybrid-corexz-kinematika","text":"L\u00e1sd az example-hybrid-corexz.cfg p\u00e9ld\u00e1t egy hibrid CoreXZ kinematikai konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Ez a kinematika Markforged kinematikak\u00e9nt is ismert. Itt csak a hibrid CoreXY nyomtat\u00f3kra jellemz\u0151 param\u00e9tereket \u00edrjuk le, a rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: hybrid_corexz max_z_velocity: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis sebess\u00e9g\u00e9t (mm/sec-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a max_velocity haszn\u00e1lata a max_z_velocity \u00e9rt\u00e9khez. max_z_accel: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t (mm/sec^2-en). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a max_accel haszn\u00e1lata a max_z_accel \u00e9rt\u00e9khez. # A stepper_x szakasz az X tengely, valamint az X-Z mozg\u00e1st vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [l\u00e9pcs\u0151_x] # A stepper_y szakasz az Y tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [l\u00e9p\u00e9s_y] # A stepper_z szakasz a Z tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_z]","title":"Hybrid-CoreXZ Kinematika"},{"location":"Config_Reference.html#polar-kinematika","text":"L\u00e1sd az example-polar.cfg egy p\u00e9lda a Polar kinematika konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1hoz. Itt csak a Polar nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. A POL\u00c1RIS KINEMATIKA M\u00c9G FOLYAMATBAN VAN. A 0, 0 poz\u00edci\u00f3 k\u00f6r\u00fcli mozg\u00e1sokr\u00f3l ismert, hogy nem m\u0171k\u00f6dnek megfelel\u0151en. [printer] kinematics: polar max_z_velocity: # Ez be\u00e1ll\u00edtja a maxim\u00e1lis mozg\u00e1si sebess\u00e9get (mm/sec-ben) a Z tengely # ment\u00e9n. Ezzel a be\u00e1ll\u00edt\u00e1ssal korl\u00e1tozhat\u00f3 a Z l\u00e9ptet\u0151motor maxim\u00e1lis # sebess\u00e9ge. Az alap\u00e9rtelmezett \u00e9rt\u00e9k a max_velocity haszn\u00e1lata a # max_z_velocity \u00e9rt\u00e9khez. max_z_accel: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t # (mm/sec^2-en). Korl\u00e1tozza a Z l\u00e9ptet\u0151motor gyorsul\u00e1s\u00e1t. # Az alap\u00e9rtelmez\u00e9s szerint a max_accel \u00e9rt\u00e9ke a max_z_accel. # A stepper_bed szakasz a t\u00e1rgyasztalt vez\u00e9rl\u0151 stepper le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_bed] gear_ratio: # Meg kell adni a gear_ratio \u00e9rt\u00e9ket, \u00e9s a rotation_distance nem adhat\u00f3 # meg. P\u00e9ld\u00e1ul, ha a t\u00e1rgyasztal egy 80 fogas ker\u00e9kkel rendelkezik, amelyet # egy l\u00e9ptet\u0151motor hajt meg egy 16 fogas ker\u00e9kkel, akkor a \u201e80:16\u201d # \u00e1tt\u00e9teli ar\u00e1nyt kell megadni. Ezt a param\u00e9tert meg kell adni. # A stepper_arm szakasz a karon l\u00e9v\u0151 kocsit vez\u00e9rl\u0151 l\u00e9ptet\u0151 # le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_arm] # A stepper_z szakasz a Z tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_z]","title":"Polar Kinematika"},{"location":"Config_Reference.html#forgo-delta-kinematika","text":"L\u00e1sd az example-rotary-delta.cfg egy p\u00e9lda a forg\u00f3 delta kinematika konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1hoz. Itt csak a forg\u00f3 delta nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. A FORG\u00d3 DELTA KINEMATIKA M\u00c9G FOLYAMATBAN VAN. A c\u00e9lk\u00f6vet\u0151 mozg\u00e1sok id\u0151z\u00edtettek lehetnek, \u00e9s n\u00e9h\u00e1ny hat\u00e1rellen\u0151rz\u00e9s nincs implement\u00e1lva. [printer] kinematics: rotary_delta max_z_velocity: # Delta nyomtat\u00f3kn\u00e1l ez korl\u00e1tozza a Z tengely mozg\u00e1s\u00e1nak maxim\u00e1lis # sebess\u00e9g\u00e9t (mm/sec-ben). Ezzel a be\u00e1ll\u00edt\u00e1ssal cs\u00f6kkenthet\u0151 a fel/le # mozg\u00e1sok maxim\u00e1lis sebess\u00e9ge (amely nagyobb l\u00e9p\u00e9ssz\u00e1mot ig\u00e9nyel, # mint a deltanyomtat\u00f3k egy\u00e9b mozg\u00e1sai). Az alap\u00e9rtelmezett \u00e9rt\u00e9k a # max_velocity haszn\u00e1lata a max_z_velocity \u00e9rt\u00e9khez. #minimum_z_position: 0 # A minim\u00e1lis Z poz\u00edci\u00f3, amelybe a felhaszn\u00e1l\u00f3 utas\u00edthatja a fejet, hogy # mozduljon el. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. shoulder_radius: # A h\u00e1rom g\u00f6mbcsukl\u00f3 \u00e1ltal alkotott v\u00edzszintes k\u00f6r sugara (mm-ben), # m\u00ednusz az effektor csukl\u00f3k \u00e1ltal alkotott k\u00f6r sugara. Ez a param\u00e9ter a # k\u00f6vetkez\u0151k\u00e9ppen is kisz\u00e1m\u00edthat\u00f3: # shoulder_radius = (delta_f - delta_e) / sqrt(12) # Ezt a param\u00e9tert meg kell adni. shoulder_height: # A g\u00f6mbcsukl\u00f3k t\u00e1vols\u00e1ga (mm-ben) a t\u00e1rgyasztalt\u00f3l, m\u00ednusz az effektor # nyomtat\u00f3fej magass\u00e1ga. Ezt a param\u00e9tert meg kell adni. # A stepper_a szakasz a jobb h\u00e1ts\u00f3 kart vez\u00e9rl\u0151 l\u00e9ptet\u0151t \u00edrja le (30 fokban). # Ez a szakasz szab\u00e1lyozza az \u00f6sszes karhoz tartoz\u00f3 kezd\u0151pont felv\u00e9teli # param\u00e9tereket (homing_speed, homing_retract_dist). [stepper_a] gear_ratio: # Meg kell adni a gear_ratio \u00e9rt\u00e9ket, \u00e9s nem lehet megadni a rotation_distance # \u00e9rt\u00e9ket. P\u00e9ld\u00e1ul, ha a karban van egy 80 fog\u00fa ker\u00e9k, amelyet egy 16 fog\u00fa # ker\u00e9k hajt meg, \u00e9s amely egy 60 fog\u00fa sz\u00edjt\u00e1rcs\u00e1val van \u00f6sszek\u00f6tve, amelyet # egy 16 fog\u00fa fogasker\u00e9kkel ell\u00e1tott l\u00e9ptet\u0151motor hajt meg, akkor a \"80-as\" # \u00e1tt\u00e9teli ar\u00e1nyt kell megadni: 16, 60:16\". Ezt a param\u00e9tert meg kell adni. position_endstop: # T\u00e1vols\u00e1g (mm-ben) a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tt, ha a f\u00fav\u00f3ka az \u00e9p\u00edt\u00e9si ter\u00fclet # k\u00f6zep\u00e9n van, \u00e9s a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 kiold. Ezt a param\u00e9tert meg kell adni a # stepper_a; a stepper_b \u00e9s stepper_c eset\u00e9n ez a param\u00e9ter alap\u00e9rtelmezett # \u00e9rt\u00e9ke a stepper_a param\u00e9terben megadott \u00e9rt\u00e9k. upper_arm_length: # A \u201efels\u0151 g\u00f6mbcsukl\u00f3t\u201d az \u201eals\u00f3 g\u00f6mbcsukl\u00f3val\u201d \u00f6sszek\u00f6t\u0151 kar hossza (mm-ben). # Ezt a param\u00e9tert meg kell adni a stepper_a; a stepper_b \u00e9s stepper_c eset\u00e9n ez # a param\u00e9ter alap\u00e9rtelmezett \u00e9rt\u00e9ke a stepper_a param\u00e9terben megadott \u00e9rt\u00e9k. lower_arm_length: # A \u201efels\u0151 g\u00f6mbcsukl\u00f3\u201d az \u201eeffekt\u00edv csukl\u00f3val\u201d \u00f6sszek\u00f6t\u0151 kar hossza (mm-ben). # Ezt a param\u00e9tert meg kell adni a stepper_a; a stepper_b \u00e9s stepper_c eset\u00e9n # ez a param\u00e9ter alap\u00e9rtelmezett \u00e9rt\u00e9ke a stepper_a param\u00e9terben megadott \u00e9rt\u00e9k. #angle: # Ez az opci\u00f3 azt a sz\u00f6get adja meg (fokban), amelyben a kar \u00e1ll. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 30 a stepper_a, 150 a stepper_b \u00e9s 270 a stepper_c. # A stepper_b szakasz a bal h\u00e1ts\u00f3 kart vez\u00e9rl\u0151 l\u00e9ptet\u0151t \u00edrja le (150 fokban). [stepper_b] # A stepper_c szakasz az els\u0151 kart vez\u00e9rl\u0151 l\u00e9ptet\u0151t \u00edrja le (270 fokban). [stepper_c] # A delta_calibrate szakasz lehet\u0151v\u00e9 teszi a DELTA_CALIBRATE kiterjesztett G-k\u00f3d # parancsot, amely k\u00e9pes kalibr\u00e1lni a fels\u0151 g\u00f6mbcsukl\u00f3k v\u00e9g\u00e1ll\u00e1s poz\u00edci\u00f3it. [delta_calibrate] radius: # A vizsg\u00e1lhat\u00f3 ter\u00fclet sugara (mm-ben). Ez a vizsg\u00e1land\u00f3 f\u00fav\u00f3kakoordin\u00e1t\u00e1k # sugara; Ha X-Y eltol\u00e1s\u00fa automata szond\u00e1t haszn\u00e1l, akkor v\u00e1lasszon el\u00e9g kicsi # sugarat, hogy a szonda mindig a t\u00e1rgyasztal f\u00f6l\u00e9 f\u00e9rjen. Ezt a param\u00e9tert meg kell adni. #speed: 50 # A nem tapint\u00f3 mozg\u00e1s sebess\u00e9ge (mm/sec-ben) a kalibr\u00e1l\u00e1s sor\u00e1n. # Az alap\u00e9rtelmezett 50. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), ameddig a fejet utas\u00edtani kell, hogy mozduljon el # k\u00f6zvetlen\u00fcl a m\u00e9r\u0151m\u0171velet megkezd\u00e9se el\u0151tt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5.","title":"Forg\u00f3 delta Kinematika"},{"location":"Config_Reference.html#kabelcsorlos-kinematika","text":"L\u00e1sd az example-winch.cfg egy p\u00e9ld\u00e1t a k\u00e1belcs\u00f6rl\u0151s kinematika konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1hoz. Itt csak a k\u00e1belcs\u00f6rl\u0151s nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. A K\u00c1BELCS\u00d6RL\u0150 T\u00c1MOGAT\u00c1SA K\u00cdS\u00c9RLETI JELLEG\u0170. A helymeghat\u00e1roz\u00e1s nem val\u00f3sul meg a k\u00e1belcs\u00f6rl\u0151 kinematik\u00e1j\u00e1n. A nyomtat\u00f3 kezd\u0151pont felv\u00e9tel\u00e9hez manu\u00e1lisan k\u00fcldj\u00f6n mozgat\u00e1si parancsokat, am\u00edg a nyomtat\u00f3fej a 0, 0, 0, 0 ponton van, majd adj ki egy G28 parancsot. [printer] kinematics: winch (cs\u00f6rl\u0151s) # A stepper_a szakasz az els\u0151 k\u00e1belcs\u00f6rl\u0151h\u00f6z csatlakoztatott l\u00e9ptet\u0151t \u00edrja le. # Legal\u00e1bb 3 \u00e9s legfeljebb 26 k\u00e1belcs\u00f6rl\u0151 defini\u00e1lhat\u00f3 (stepper_a-t\u00f3l # stepper_z-ig), b\u00e1r \u00e1ltal\u00e1ban 4-et defini\u00e1lnak. [stepper_a] rotation_distance: # A rotation_distance az a n\u00e9vleges t\u00e1vols\u00e1g (mm-ben), amellyel a # nyomtat\u00f3fej elmozdul a k\u00e1belcs\u00f6rl\u0151 fel\u00e9 a l\u00e9ptet\u0151motor minden egyes # teljes fordulat\u00e1n\u00e1l. Ezt a param\u00e9tert meg kell adni. anchor_x: anchor_y: anchor_z: # A k\u00e1belcs\u00f6rl\u0151 X, Y \u00e9s Z helyzete der\u00e9ksz\u00f6g\u0171 t\u00e9rben. # Ezeket a param\u00e9tereket meg kell adni.","title":"K\u00e1belcs\u00f6rl\u0151s Kinematika"},{"location":"Config_Reference.html#nincs-kinematika","text":"Lehet\u0151s\u00e9g van egy speci\u00e1lis \"none\" kinematika defini\u00e1l\u00e1s\u00e1ra a Klipper kinematikai t\u00e1mogat\u00e1s\u00e1nak kikapcsol\u00e1s\u00e1hoz. Ez hasznos lehet olyan eszk\u00f6z\u00f6k vez\u00e9rl\u00e9s\u00e9hez, amelyek nem tipikus 3D nyomtat\u00f3k, vagy hibakeres\u00e9si c\u00e9lok. [printer] kinematics: none max_velocity: 1 max_accel: 1 # A max_velocity \u00e9s max_accel param\u00e9tereket meg kell hat\u00e1rozni. # Az \u00e9rt\u00e9keket nem haszn\u00e1ljuk a \"none\" kinematika eset\u00e9n.","title":"Nincs Kinematika"},{"location":"Config_Reference.html#kozos-extruder-es-futott-targyasztal-tamogatas","text":"","title":"K\u00f6z\u00f6s extruder \u00e9s f\u0171t\u00f6tt t\u00e1rgyasztal t\u00e1mogat\u00e1s"},{"location":"Config_Reference.html#extruder","text":"Az extruder szakasz a f\u00fav\u00f3ka f\u0171t\u0151berendez\u00e9s param\u00e9tereinek le\u00edr\u00e1s\u00e1ra szolg\u00e1l, az extruder vez\u00e9rl\u00e9s\u00e9t v\u00e9gz\u0151 l\u00e9ptet\u0151vel egy\u00fctt. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1s c\u00edm\u0171 r\u00e9szt. A nyom\u00e1s el\u0151tol\u00e1s hangol\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a nyom\u00e1s el\u0151tol\u00e1si \u00fatmutat\u00f3t . [extruder] step_pin: dir_pin: enable_pin: microsteps: rotation_distance: #full_steps_per_rotation: #gear_ratio: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"l\u00e9ptet\u0151\" r\u00e9szben. Ha a fenti param\u00e9terek # egyike sincs megadva, akkor nem lesz l\u00e9ptet\u0151motor t\u00e1rs\u00edtva a nyomtat\u00f3fejhez # (b\u00e1r a SYNC_EXTRUDER_MOTION parancs fut\u00e1s k\u00f6zben t\u00e1rs\u00edthat egyet). nozzle_diameter: # A f\u00fav\u00f3ka ny\u00edl\u00e1s\u00e1nak \u00e1tm\u00e9r\u0151je (mm-ben). Ezt a param\u00e9tert meg kell adni. filament_diameter: # A nyers sz\u00e1l n\u00e9vleges \u00e1tm\u00e9r\u0151je (mm-ben), amikor az extruderbe ker\u00fcl. # Ezt a param\u00e9tert meg kell adni. #max_extrude_cross_section: # Az extrud\u00e1l\u00e1si keresztmetszet maxim\u00e1lis ter\u00fclete (mm^2-ben) (pl. az # extrud\u00e1l\u00e1si sz\u00e9less\u00e9g szorozva a r\u00e9teg magass\u00e1g\u00e1val). Ez a be\u00e1ll\u00edt\u00e1s # megakad\u00e1lyozza a t\u00falzott m\u00e9rt\u00e9k\u0171 extrud\u00e1l\u00e1st viszonylag kis XY mozg\u00e1sok # sor\u00e1n. Ha egy \u00e1thelyez\u00e9s olyan kih\u00faz\u00e1si sebess\u00e9get k\u00e9r, amely meghaladja # ezt az \u00e9rt\u00e9ket, akkor hiba\u00fczenet jelenik meg. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k: 4.0 * nozzle_diameter^2 #instantaneous_corner_velocity: 1.000 # Az extruder maxim\u00e1lis pillanatnyi sebess\u00e9gv\u00e1ltoz\u00e1sa (mm/sec-ben) # k\u00e9t mozg\u00e1s tal\u00e1lkoz\u00e1s\u00e1n\u00e1l. Az alap\u00e9rtelmezett 1 mm/sec. #max_extrude_only_distance: 50.0 # Maxim\u00e1lis hossza (a nyers nyomtat\u00f3sz\u00e1lnak mm-ben), amely egy # visszah\u00faz\u00e1s vagy csak extrud\u00e1l\u00e1s eset\u00e9n lehets\u00e9ges. Ha egy visszah\u00faz\u00e1s # vagy csak extrud\u00e1l\u00e1si mozg\u00e1s enn\u00e9l az \u00e9rt\u00e9kn\u00e9l nagyobb t\u00e1vols\u00e1got k\u00e9r, # hiba\u00fczenetet ad vissza. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50 mm. #max_extrude_only_velocity: #max_extrude_only_accel: # Az extrudermotor maxim\u00e1lis sebess\u00e9ge (mm/sec-ben) \u00e9s gyorsul\u00e1sa # (mm/sec^2-en) a visszah\u00faz\u00e1sokhoz \u00e9s a csak extrud\u00e1lt mozg\u00e1sokhoz. # Ezek a be\u00e1ll\u00edt\u00e1sok nincsenek hat\u00e1ssal a norm\u00e1l nyomtat\u00e1si sebess\u00e9gekre. # Ha nincs megadva, akkor a sz\u00e1m\u00edt\u00e1sok megfelelnek a 4.0*nozzle_diameter^2 # keresztmetszet\u0171 XY nyomtat\u00e1si mozg\u00e1s hat\u00e1r\u00e1nak. #pressure_advance: 0.0 # Az extruder gyors\u00edt\u00e1sa sor\u00e1n a nyomtat\u00f3fejbe nyomand\u00f3 nyers sz\u00e1l # mennyis\u00e9ge. A lass\u00edt\u00e1s sor\u00e1n azonos mennyis\u00e9g\u0171 izz\u00f3sz\u00e1l h\u00faz\u00f3dik vissza. # M\u00e9rete millim\u00e9ter per millim\u00e9ter/m\u00e1sodperc. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, ami letiltja a nyom\u00e1sn\u00f6vel\u00e9st. #pressure_advance_smooth_time: 0.040 # Id\u0151tartom\u00e1ny (m\u00e1sodpercben), amelyet az extruder \u00e1tlagos sebess\u00e9g\u00e9nek # kisz\u00e1m\u00edt\u00e1s\u00e1hoz haszn\u00e1lnak a nyom\u00e1s el\u0151tol\u00e1shoz. A nagyobb \u00e9rt\u00e9k sim\u00e1bb # extrudermozg\u00e1sokat eredm\u00e9nyez. Ez a param\u00e9ter nem haladhatja meg a # 200 ezredm\u00e1sodpercet. Ez a be\u00e1ll\u00edt\u00e1s csak akkor \u00e9rv\u00e9nyes, ha a # pressure_advance \u00e9rt\u00e9ke nem nulla. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,040 (40 ezredm\u00e1sodperc). # # A fennmarad\u00f3 v\u00e1ltoz\u00f3k az extruder f\u0171t\u00e9s\u00e9t \u00edrj\u00e1k le. heater_pin: # PWM kimeneti \u00e9rintkez\u0151, amely a f\u0171t\u00e9st vez\u00e9rli. # Ezt a param\u00e9tert meg kell adni. #max_power: 1.0 # Az a maxim\u00e1lis teljes\u00edtm\u00e9ny (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), amelyre a # heater_pin be\u00e1ll\u00edthat\u00f3. Az 1,0 \u00e9rt\u00e9k lehet\u0151v\u00e9 teszi, hogy a t\u0171t hosszabb ideig # teljesen enged\u00e9lyezettre lehessen \u00e1ll\u00edtani, m\u00edg a 0,5 \u00e9rt\u00e9k legfeljebb a fele # ideig enged\u00e9lyezi a t\u0171t. Ezzel a be\u00e1ll\u00edt\u00e1ssal korl\u00e1tozhat\u00f3 a f\u0171t\u0151k\u00e9sz\u00fcl\u00e9k teljes # kimen\u0151 teljes\u00edtm\u00e9nye (hosszabb ideig). Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0. sensor_type: # \u00c9rz\u00e9kel\u0151 t\u00edpusa. \u00c1ltal\u00e1nos termisztorok: \u201eEPCOS 100K B57560G104F\u201d, # \u201eATC Semitec 104GT-2\u201d, \u201eATC Semitec 104NT-4-R025H42G\u201d, \u201eGeneric 3950\u201d, # \u201eHoneywell 100K 135-JGBC10K135-1010LAG18 -104F39050L32\", # \"SliceEngineering 450\" \u00e9s \"TDK NTCG104LH104JT1\". Tov\u00e1bbi \u00e9rz\u00e9kel\u0151k\u00e9rt # l\u00e1sd a \"H\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k\" r\u00e9szt. Ezt a param\u00e9tert meg kell adni. sensor_pin: # Anal\u00f3g bemeneti \u00e9rintkez\u0151 csatlakozik az \u00e9rz\u00e9kel\u0151h\u00f6z. # Ezt a param\u00e9tert meg kell adni. #pullup_resistor: 4700 # A termisztorhoz csatlakoztatott felh\u00faz\u00f3 ellen\u00e1ll\u00e1sa (ohmban). # Ez a param\u00e9ter csak akkor \u00e9rv\u00e9nyes, ha az \u00e9rz\u00e9kel\u0151 termisztor. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 4700 ohm. #smooth_time: 1.0 # Egy id\u0151\u00e9rt\u00e9k (m\u00e1sodpercben), amely alatt a h\u0151m\u00e9rs\u00e9kletm\u00e9r\u00e9s sim\u00edt\u00e1sra ker\u00fcl # a m\u00e9r\u00e9si zaj hat\u00e1s\u00e1nak cs\u00f6kkent\u00e9se \u00e9rdek\u00e9ben. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1 m\u00e1sodperc. control: # Vez\u00e9rl\u00e9si algoritmus (pid vagy watermark). Ezt a param\u00e9tert meg kell adni. pid_Kp: pid_Ki: pid_Kd: # Az ar\u00e1nyos (pid_Kp), az integr\u00e1l (pid_Ki) \u00e9s a deriv\u00e1lt (pid_Kd) be\u00e1ll\u00edt\u00e1sai a PID # visszacsatol\u00e1s vez\u00e9rl\u0151 rendszerhez. A Klipper a PID be\u00e1ll\u00edt\u00e1sokat a k\u00f6vetkez\u0151 # \u00e1ltal\u00e1nos k\u00e9plettel \u00e9rt\u00e9keli ki: heater_pwm = (Kp*error+ Ki*integral(error) vagy # Kd*derivative(error)) / 255 Ahol az \u201eerror\u201d a \u201erequested_temperature \u00e9s # measured_temperature\u201d \u00e9s a \u201eheater_pwm\u201d a k\u00e9rt f\u0171t\u00e9si sebess\u00e9g 0,0 teljes # kikapcsolt \u00e9s 1,0 teljes bekapcsolva. Fontolja meg a PID_CALIBRATE parancs # haszn\u00e1lat\u00e1t a param\u00e9terek lek\u00e9r\u00e9s\u00e9hez. A pid_Kp, pid_Ki \u00e9s pid_Kd # param\u00e9tereket meg kell adni a PID f\u0171t\u0151berendez\u00e9sekhez. #max_delta: 2.0 # A \u201ewatermark\u201d vez\u00e9rl\u00e9s\u0171 f\u0171t\u0151berendez\u00e9seken ez a f\u0171t\u0151elem kikapcsol\u00e1sa # el\u0151tti c\u00e9lh\u0151m\u00e9rs\u00e9klet feletti Celsius-fokkal, valamint a f\u0171t\u0151elem \u00fajb\u00f3li # bekapcsol\u00e1sa el\u0151tti c\u00e9lh\u0151m\u00e9rs\u00e9klet alatti fokok sz\u00e1ma. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 2 Celsius-fok. #pwm_cycle_time: 0.100 # Id\u0151 m\u00e1sodpercben a f\u0171t\u0151elem minden szoftveres PWM-ciklus\u00e1hoz. # Nem aj\u00e1nlott ezt be\u00e1ll\u00edtani, hacsak nincs elektromos k\u00f6vetelm\u00e9ny # a f\u0171t\u0151elem m\u00e1sodpercenk\u00e9nti 10-n\u00e9l gyorsabb kapcsol\u00e1s\u00e1ra. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,100 m\u00e1sodperc. #min_extrude_temp: 170 # Az a minim\u00e1lis h\u0151m\u00e9rs\u00e9klet (Celsiusban), amelyen az extruder mozgat\u00e1si # parancsai kiadhat\u00f3k. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 170 Celsius. min_temp: max_temp: # Az \u00e9rv\u00e9nyes h\u0151m\u00e9rs\u00e9kletek maxim\u00e1lis tartom\u00e1nya (Celsiusban), amelyen # bel\u00fcl a f\u0171t\u0151elemnek maradnia kell. Ez egy, a mikrovez\u00e9rl\u0151 k\u00f3dj\u00e1ban # be\u00e9p\u00edtett biztons\u00e1gi funkci\u00f3t vez\u00e9rel. Ha a m\u00e9rt h\u0151m\u00e9rs\u00e9klet ezen a # tartom\u00e1nyon k\u00edv\u00fcl esik, akkor a mikrovez\u00e9rl\u0151 le\u00e1ll\u00e1si \u00e1llapotba ker\u00fcl. # Ez az ellen\u0151rz\u00e9s seg\u00edthet bizonyos f\u0171t\u0151 \u00e9s \u00e9rz\u00e9kel\u0151 hardverhib\u00e1k \u00e9szlel\u00e9s\u00e9ben. # \u00c1ll\u00edtsd be ezt a tartom\u00e1nyt el\u00e9g sz\u00e9lesre, hogy a norm\u00e1lis h\u0151m\u00e9rs\u00e9klet ne # okozzon hib\u00e1t. Ezeket a param\u00e9tereket meg kell adni.","title":"[extruder]"},{"location":"Config_Reference.html#heater_bed","text":"A heater_bed szakasz egy f\u0171t\u00f6tt t\u00e1rgyasztalt \u00edr le. Ugyanazokat a f\u0171t\u00e9si be\u00e1ll\u00edt\u00e1sokat haszn\u00e1lja, amelyeket az \"extruder\" szakaszban le\u00edrtunk. [heater_bed] heater_pin: sensor_type: sensor_pin: control: min_temp: max_temp: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"extruder\" szakaszban.","title":"[heater_bed]"},{"location":"Config_Reference.html#targyasztal-szint-tamogatas","text":"","title":"T\u00e1rgyasztal szint t\u00e1mogat\u00e1s"},{"location":"Config_Reference.html#bed_mesh","text":"T\u00e1rgyasztal H\u00e1l\u00f3 Kiegyenl\u00edt\u00e9s. Defini\u00e1lhatunk egy bed_mesh konfigur\u00e1ci\u00f3s szakaszt, hogy enged\u00e9lyezz\u00fck a Z tengelyt eltol\u00f3 mozgat\u00e1si transzform\u00e1ci\u00f3kat a m\u00e9rt pontokb\u00f3l gener\u00e1lt h\u00e1l\u00f3 alapj\u00e1n. Ha szond\u00e1t haszn\u00e1lunk a Z-tengely alaphelyzetbe \u00e1ll\u00edt\u00e1s\u00e1ra, aj\u00e1nlott a printer.cfg f\u00e1jlban egy safe_z_home szakaszt defini\u00e1lni a nyomtat\u00e1si ter\u00fclet k\u00f6zep\u00e9re t\u00f6rt\u00e9n\u0151 alaphelyzetbe \u00e1ll\u00edt\u00e1shoz. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd az t\u00e1rgyasztal h\u00e1l\u00f3 \u00fatmutat\u00f3 \u00e9s a parancsreferencia dokumentumokat. Vizu\u00e1lis p\u00e9ld\u00e1k: t\u00e9glalap alak\u00fa t\u00e1rgyasztal, probe_count = 3, 3: x---x---x (max_point) | x---x---x | (min_point) x---x---x kerek t\u00e1rgyasztal, round_probe_count = 5, bed_radius = r: x (0, r) end / x---x---x \\ (-r, 0) x---x---x---x---x (r, 0) \\ x---x---x / x (0, -r) start [bed_mesh] #speed: 50 # A kalibr\u00e1l\u00e1s sor\u00e1n a nem pr\u00f3bamozg\u00e1sok sebess\u00e9ge (mm/sec-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), amelyre a fejnek parancsot kell adni a # mozg\u00e1sra k\u00f6zvetlen\u00fcl a szondam\u0171velet megkezd\u00e9se el\u0151tt. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #mesh_radius: # Meghat\u00e1rozza a h\u00e1l\u00f3 sugar\u00e1t a kerek t\u00e1rgyasztalokhoz. Ne feledd, hogy a # sug\u00e1r a mesh_origin param\u00e9ter \u00e1ltal megadott koordin\u00e1t\u00e1hoz # viszony\u00edtott. Ezt a param\u00e9tert a kerek t\u00e1rgyasztalokn\u00e1l meg kell adni, # a t\u00e9glalap alak\u00fa t\u00e1rgyasztalokn\u00e1l pedig ki kell hagyni. # mesh_origin # Az opci\u00f3 \u00e1ltal meghat\u00e1rozott koordin\u00e1ta. # Ezt a param\u00e9tert kerek t\u00e1rgyasztalok eset\u00e9ben meg kell adni. # De elhagyhat\u00f3 a t\u00e9glalap alak\u00fa t\u00e1rgyasztalok eset\u00e9ben. #mesh_origin: # Meghat\u00e1rozza a h\u00e1l\u00f3 k\u00f6z\u00e9ppontj\u00e1nak X, Y koordin\u00e1t\u00e1j\u00e1t kerek t\u00e1rgyasztalok # eset\u00e9n. Ez a koordin\u00e1ta a szonda hely\u00e9hez k\u00e9pest relat\u00edv. Hasznos # lehet a mesh_origin be\u00e1ll\u00edt\u00e1sa, hogy maximaliz\u00e1ljuk a h\u00e1l\u00f3 m\u00e9ret\u00e9t. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, 0. Ezt a param\u00e9tert el kell hagyni # t\u00e9glalap alak\u00fa t\u00e1rgyasztalok eset\u00e9n. #mesh_min: # Meghat\u00e1rozza a h\u00e1l\u00f3 minim\u00e1lis X, Y koordin\u00e1t\u00e1j\u00e1t t\u00e9glalap alak\u00fa # t\u00e1rgyasztalok eset\u00e9n. Ez a koordin\u00e1ta a szonda hely\u00e9hez k\u00e9pest relat\u00edv. # Ez lesz az els\u0151 szond\u00e1zott pont, amely a legk\u00f6zelebb van az orig\u00f3hoz. # Ezt a param\u00e9tert t\u00e9glalap alak\u00fa t\u00e1rgyasztalok eset\u00e9n meg kell adni. #mesh_max: # Meghat\u00e1rozza a h\u00e1l\u00f3 maxim\u00e1lis X, Y koordin\u00e1t\u00e1j\u00e1t t\u00e9glalap alak\u00fa # t\u00e1rgyasztalok eset\u00e9n. Ugyanazon az elven m\u0171k\u00f6dik, mint a mesh_min, # azonban ez a param\u00e9ter a legt\u00e1volabbi pont lesz, amelyet a t\u00e1rgyasztal # orig\u00f3j\u00e1t\u00f3l vizsg\u00e1lunk. Ezt a param\u00e9tert t\u00e9glalap alak\u00fa t\u00e1rgyasztalok # eset\u00e9n meg kell adni. #probe_count: 3, 3 # T\u00e9glalap alak\u00fa t\u00e1rgyasztalok eset\u00e9n ez egy vessz\u0151vel elv\u00e1lasztott eg\u00e9sz # sz\u00e1mp\u00e1r. X, Y \u00e9rt\u00e9kek, amelyek meghat\u00e1rozz\u00e1k a m\u00e9rni k\u00edv\u00e1nt # pontok sz\u00e1m\u00e1t az egyes tengelyek ment\u00e9n. Egyetlen \u00e9rt\u00e9k is # \u00e9rv\u00e9nyes, ebben az esetben ez az \u00e9rt\u00e9k mindk\u00e9t tengelyre vonatkozik. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 3, 3. #round_probe_count: 5 # A kerek t\u00e1rgyasztalok eset\u00e9ben ez az eg\u00e9sz \u00e9rt\u00e9k hat\u00e1rozza meg a # maxim\u00e1lis sz\u00e1m\u00fa pontok sz\u00e1m\u00e1t, amelyeket minden tengely ment\u00e9n # meg kell vizsg\u00e1lni. Ennek az \u00e9rt\u00e9knek p\u00e1ratlan sz\u00e1mnak kell lennie. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #fade_start: 1.0 # A G-k\u00f3d Z poz\u00edci\u00f3ja, ahol a Z-korrekci\u00f3 fokozatos megsz\u00fcntet\u00e9se # elkezd\u0151dik amikor a fade enged\u00e9lyezve van. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0. #fade_end: 0.0 # A G-k\u00f3d Z poz\u00edci\u00f3ja, amelyben a fading out befejez\u0151dik. Ha be van # \u00e1ll\u00edtva egy fade_start alatti \u00e9rt\u00e9kre a fade ki van kapcsolva. # Meg kell jegyezni, hogy a fade nem k\u00edv\u00e1nt sk\u00e1l\u00e1z\u00e1st adhat a # nyomtat\u00e1s Z tengelye ment\u00e9n. Ha egy felhaszn\u00e1l\u00f3 enged\u00e9lyezni # k\u00edv\u00e1nja a fade-et, a 10.0 \u00e9rt\u00e9k aj\u00e1nlott. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0.0, amely kikapcsolja a fade-et. #fade_target: # A Z poz\u00edci\u00f3, amelyben a fade-nek konverg\u00e1lnia kell. Ha ez az \u00e9rt\u00e9k # nem nulla \u00e9rt\u00e9kre van be\u00e1ll\u00edtva, akkor annak a Z-\u00e9rt\u00e9kek tartom\u00e1ny\u00e1n # bel\u00fcl kell lennie a h\u00e1l\u00f3ban. Azok a felhaszn\u00e1l\u00f3k, akik a Z kezd\u0151ponthoz # k\u00edv\u00e1nnak konverg\u00e1lni, 0-ra kell \u00e1ll\u00edtaniuk. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a h\u00e1l\u00f3 \u00e1tlagos Z \u00e9rt\u00e9ke. #split_delta_z: .025 # A Z k\u00fcl\u00f6nbs\u00e9g m\u00e9rt\u00e9ke (mm-ben) a mozg\u00e1s ment\u00e9n, amely kiv\u00e1lt # egy oszt\u00e1st. Az alap\u00e9rtelmezett \u00e9rt\u00e9k .025. #move_check_distance: 5.0 # A t\u00e1vols\u00e1g (mm-ben) a mozg\u00e1s ment\u00e9n, amelyn\u00e9l a split_delta_z-t # ellen\u0151rizni kell. Ez egyben a minim\u00e1lis hossz, ameddig egy mozg\u00e1st # fel lehet osztani. Alap\u00e9rtelmezett \u00e9rt\u00e9k 5.0. #mesh_pps: 2, 2 # Egy vessz\u0151vel elv\u00e1lasztott eg\u00e9sz sz\u00e1mp\u00e1r X, Y, amely meghat\u00e1rozza a # k\u00f6vetkez\u0151 pontok sz\u00e1m\u00e1t szegmensenk\u00e9nt, amelyeket interpol\u00e1lni kell # a h\u00e1l\u00f3ban az egyes tengelyek ment\u00e9n. A \"szegmens\" \u00fagy defini\u00e1lhat\u00f3, # mint az egyes m\u00e9rt pontok k\u00f6z\u00f6tti t\u00e9r. A felhaszn\u00e1l\u00f3 egyetlen \u00e9rt\u00e9ket # adhat meg, amely mindk\u00e9t tengelyre vonatkozik. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 2, 2. #algoritmus: lagrange # Az alkalmazand\u00f3 interpol\u00e1ci\u00f3s algoritmus. Lehet ak\u00e1r \"lagrange\" vagy # \"bicubic\". Ez az opci\u00f3 nem \u00e9rinti a 3x3-as r\u00e1csokat, amelyek k\u00e9nyszer\u00edtett # lagrange mintav\u00e9telt haszn\u00e1lnak. Az alap\u00e9rtelmezett lagrange. #bicubic_tension: .2 # A bikubik algoritmus haszn\u00e1latakor a fenti fesz\u00fclts\u00e9g param\u00e9ter # alkalmazhat\u00f3 az interpol\u00e1lt meredeks\u00e9g m\u00e9rt\u00e9k\u00e9nek megv\u00e1ltoztat\u00e1s\u00e1ra. # Nagyobb sz\u00e1mok n\u00f6velik a meredeks\u00e9g m\u00e9rt\u00e9k\u00e9t, ami nagyobb # g\u00f6rb\u00fcletet eredm\u00e9nyez a h\u00e1l\u00f3ban. Az alap\u00e9rtelmezett \u00e9rt\u00e9k .2. #relative_reference_index: # Egy pontindex a h\u00e1l\u00f3ban, amelyre minden Z \u00e9rt\u00e9ket hivatkozni kell. # Az enged\u00e9lyez\u00e9se ennek a param\u00e9ternek a bekapcsol\u00e1sa a vizsg\u00e1lt # Z poz\u00edci\u00f3hoz viszony\u00edtott h\u00e1l\u00f3t eredm\u00e9nyez a megadott indexhez k\u00e9pest. #faulty_region_1_min: #faulty_region_1_max: # A hib\u00e1s r\u00e9gi\u00f3t meghat\u00e1roz\u00f3 opcion\u00e1lis pontok. L\u00e1sd docs/Bed_Mesh.md # A hib\u00e1s r\u00e9gi\u00f3kkal kapcsolatos r\u00e9szletek\u00e9rt. Legfeljebb 99 hib\u00e1s r\u00e9gi\u00f3 # adhat\u00f3 hozz\u00e1. Alap\u00e9rtelmez\u00e9s szerint nincsenek hib\u00e1s r\u00e9gi\u00f3k be\u00e1ll\u00edtva.","title":"[bed_mesh]"},{"location":"Config_Reference.html#bed_tilt","text":"T\u00e1rgyasztal d\u0151l\u00e9s kompenz\u00e1ci\u00f3. Defini\u00e1lhatunk egy bed_tilt config szekci\u00f3t, hogy lehet\u0151v\u00e9 tegy\u00fck a ferde t\u00e1rgyasztalt figyelembe vev\u0151 mozg\u00e1stranszform\u00e1ci\u00f3kat. Vedd figyelembe, hogy a bed_mesh \u00e9s a bed_tilt nem kompatibilisek. Mindkett\u0151 nem defini\u00e1lhat\u00f3. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancsreferencia dokumentumot. [bed_tilt] #x_adjust: 0 # Az az \u00e9rt\u00e9k, amit hozz\u00e1 kell adni az egyes mozg\u00e1sok Z # magass\u00e1g\u00e1hoz az X tengely minden mm-\u00e9n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #y_adjust: 0 # Az az \u00e9rt\u00e9k, amit hozz\u00e1 kell adni az egyes mozg\u00e1sok Z # magass\u00e1g\u00e1hoz az Y tengely minden mm-\u00e9n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #z_adjust: 0 # A Z magass\u00e1ghoz hozz\u00e1adand\u00f3 \u00e9rt\u00e9k, amikor a f\u00fav\u00f3ka n\u00e9vlegesen 0, 0. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. # A t\u00f6bbi param\u00e9ter egy BED_TILT_CALIBRATE kiterjesztett G-k\u00f3d # parancsot vez\u00e9rel, amely a megfelel\u0151 X \u00e9s Y be\u00e1ll\u00edt\u00e1si param\u00e9terek # kalibr\u00e1l\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. #points: # Az X, Y koordin\u00e1t\u00e1k list\u00e1ja (soronk\u00e9nt egy a k\u00f6vetkez\u0151 sorokat beh\u00fazva), # amelyeket a BED_TILT_CALIBRATE parancs sor\u00e1n meg kell vizsg\u00e1lni. # Add meg a f\u00fav\u00f3ka koordin\u00e1t\u00e1it, \u00e9s gy\u0151z\u0151dj meg arr\u00f3l, hogy a szonda # a t\u00e1rgyasztal felett van a megadott f\u00fav\u00f3kakoordin\u00e1t\u00e1kon. # Az alap\u00e9rtelmezett az, hogy nem enged\u00e9lyezi a parancsot. #speed: 50 # A nem szond\u00e1z\u00e1s sebess\u00e9ge (mm/sec-ben) mozog a kalibr\u00e1l\u00e1s sor\u00e1n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), ameddig a fejnek el kell mozdulnia # k\u00f6zvetlen\u00fcl a szondam\u0171velet megkezd\u00e9se el\u0151tt. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5.","title":"[bed_tilt]"},{"location":"Config_Reference.html#bed_screws","text":"Szersz\u00e1m a t\u00e1rgyasztal szintbe\u00e1ll\u00edt\u00f3 csavarok be\u00e1ll\u00edt\u00e1s\u00e1hoz. Meghat\u00e1rozhat\u00f3 egy [bed_screws] config szakasz a BED_SCREWS_ADJUST G-k\u00f3d parancs enged\u00e9lyez\u00e9s\u00e9hez. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a szintez\u00e9si \u00fatmutat\u00f3 \u00e9s a parancs hivatkoz\u00e1s dokumentumot. [bed_screws] #screw1: # Az els\u0151 t\u00e1rgyasztal kiegyenl\u00edt\u0151 csavar X, Y koordin\u00e1t\u00e1ja. Ez egy # olyan poz\u00edci\u00f3, ahov\u00e1 a f\u00fav\u00f3k\u00e1t kell ir\u00e1ny\u00edtani, mely k\u00f6zvetlen\u00fcl a t\u00e1rgyasztal felett van # (vagy a lehet\u0151 legk\u00f6zelebb, de m\u00e9g mindig a t\u00e1rgyasztal felett). # Ezt a param\u00e9tert meg kell adni. #screw1_name: # Az adott csavar tetsz\u0151leges neve. Ez a n\u00e9v jelenik meg, amikor a seg\u00e9dszkript fut. # Az alap\u00e9rtelmez\u00e9s szerint a n\u00e9v alapja a csavar XY helye. #screw1_fine_adjust: # Egy X, Y koordin\u00e1ta, amelyre a f\u00fav\u00f3k\u00e1t ir\u00e1ny\u00edtani # kell, hogy finom\u00edtani lehessen a t\u00e1rgyasztal szintez\u0151 csavart. # Az alap\u00e9rtelmez\u00e9s szerint a finombe\u00e1ll\u00edt\u00e1s nem t\u00f6rt\u00e9nik meg a t\u00e1rgyasztal csavarj\u00e1n. #screw2: #screw2_name: #screw2_fine_adjust: #... # Tov\u00e1bbi t\u00e1rgyasztal szint\u00e1ll\u00edt\u00f3 csavarok. Legal\u00e1bb h\u00e1rom csavarnak kell lennie. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), ahov\u00e1 a fejnek parancsot kell adni a mozg\u00e1sra amikor az egyik # csavar hely\u00e9r\u0151l a m\u00e1sikra mozog. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #probe_height: 0 # A szonda magass\u00e1ga (mm-ben) a h\u0151fokszab\u00e1lyoz\u00e1s ut\u00e1n. # A t\u00e1rgyasztal \u00e9s a f\u00fav\u00f3ka h\u0151t\u00e1gul\u00e1sa ut\u00e1n. Az alap\u00e9rtelmezett \u00e9rt\u00e9k nulla. #speed: 50 # A kalibr\u00e1l\u00e1s sor\u00e1n a nem m\u00e9r\u00e9si mozg\u00e1sok sebess\u00e9ge (mm/sec-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #probe_speed: 5 # A sebess\u00e9g (mm/sec-ben) a horizont\u00e1lis_move_z poz\u00edci\u00f3b\u00f3l t\u00f6rt\u00e9n\u0151 mozg\u00e1skor. # A probe_height poz\u00edci\u00f3ja. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5.","title":"[bed_screws]"},{"location":"Config_Reference.html#screws_tilt_adjust","text":"Eszk\u00f6z a t\u00e1rgyasztal csavarok d\u0151l\u00e9ssz\u00f6g\u00e9nek be\u00e1ll\u00edt\u00e1s\u00e1hoz Z-szond\u00e1val. Meghat\u00e1rozhat\u00f3 egy screws_tilt_adjust konfigur\u00e1ci\u00f3s szakasz a SCREWS_TILT_CALCULATE G-k\u00f3d parancsal. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a szintez\u00e9si \u00fatmutat\u00f3 \u00e9s a parancs hivatkoz\u00e1s dokumentumot. [screws_tilt_adjust] #screw1: # Az els\u0151 t\u00e1rgyasztal kiegyenl\u00edt\u0151 csavar (X, Y) koordin\u00e1t\u00e1ja. Ez a helyzet a f\u00fav\u00f3ka # utas\u00edt\u00e1s\u00e1hoz \u00fagy, hogy a szonda k\u00f6zvetlen\u00fcl a t\u00e1rgyasztal csavar felett # legyen (vagy a lehet\u0151 legk\u00f6zelebb, mik\u00f6zben tov\u00e1bbra is a t\u00e1rgyasztal felett # van). Ez a sz\u00e1m\u00edt\u00e1sokn\u00e1l haszn\u00e1lt alapcsavar. # Ezt a param\u00e9tert meg kell adni. #screw1_name: # Az adott csavar tetsz\u0151leges neve. Ez a n\u00e9v jelenik meg a seg\u00e9dszkript # futtat\u00e1sakor. Az alap\u00e9rtelmez\u00e9s szerint a n\u00e9v a a csavar X-Y # hely\u00e9re \u00e9p\u00fcl. #screw2: #screw2_name: #... # Tov\u00e1bbi t\u00e1rgyasztal kiegyenl\u00edt\u0151 csavarok. # Legal\u00e1bb k\u00e9t csavart kell meghat\u00e1rozott. #speed: 50 # A kalibr\u00e1l\u00e1s sor\u00e1n a nem m\u00e9r\u0151 mozg\u00e1sok sebess\u00e9ge (mm/sec-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #horizontal_move_z: 5 # A magass\u00e1g (mm-ben), ahov\u00e1 a fejnek el kell mozdulnia. # K\u00f6zvetlen\u00fcl a szondam\u0171velet megkezd\u00e9se el\u0151tt. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #screw_thread: CW-M3 # A t\u00e1rgyasztal szintj\u00e9hez haszn\u00e1lt csavar t\u00edpusa, M3, M4 vagy M5, valamint a # t\u00e1rgyasztal szintbe\u00e1ll\u00edt\u00e1s\u00e1hoz haszn\u00e1lt gomb ir\u00e1nya, az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val # megegyez\u0151 ir\u00e1ny\u00fa cs\u00f6kken\u00e9s az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1ny\u00fa # cs\u00f6kken\u00e9s. Elfogadott \u00e9rt\u00e9kek: CW-M3, CCW-M3, CW-M4, CCW-M4, # CW-M5, CCW-M5. Az alap\u00e9rtelmezett \u00e9rt\u00e9k CW-M3, a legt\u00f6bb nyomtat\u00f3 # M3-as csavart \u00e9s a gombot az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val megegyez\u0151 ir\u00e1nyba # forgatva cs\u00f6kken a t\u00e1vols\u00e1g.","title":"[screws_tilt_adjust]"},{"location":"Config_Reference.html#z_tilt","text":"T\u00f6bbsz\u00f6r\u00f6s Z l\u00e9ptet\u0151 d\u0151l\u00e9ssz\u00f6g be\u00e1ll\u00edt\u00e1sa. Ez a funkci\u00f3 lehet\u0151v\u00e9 teszi t\u00f6bb Z l\u00e9ptet\u0151 f\u00fcggetlen be\u00e1ll\u00edt\u00e1s\u00e1t (l\u00e1sd a \"stepper_z1\" szakaszt) a d\u0151l\u00e9s be\u00e1ll\u00edt\u00e1s\u00e1hoz. Ha ez a szakasz jelen van, akkor el\u00e9rhet\u0151v\u00e9 v\u00e1lik a Z_TILT_ADJUST kiterjesztett G-k\u00f3d parancs . [z_tilt] #z_positions: # Az X, Y koordin\u00e1t\u00e1k list\u00e1ja (soronk\u00e9nt egy a k\u00f6vetkez\u0151 sorokat beh\u00fazva), # amelyek le\u00edrj\u00e1k az egyes t\u00e1rgyasztalok \"forg\u00e1spontjainak\" hely\u00e9t. # A \"forg\u00e1spont\" az a pont, ahol a t\u00e1rgyasztal az adott Z l\u00e9ptet\u0151h\u00f6z # kapcsol\u00f3dik. Ezt a f\u00fav\u00f3ka koordin\u00e1t\u00e1ival \u00edrj\u00e1k le (a f\u00fav\u00f3ka X, Y # poz\u00edci\u00f3ja, ha k\u00f6zvetlen\u00fcl a pont felett mozoghat). Az els\u0151 bejegyz\u00e9s a # stepper_z, a m\u00e1sodik a stepper_z1, a harmadik a stepper_z2 stb. # \u00e9rt\u00e9knek felel meg. Ezt a param\u00e9tert meg kell adni. #points: # Az X, Y koordin\u00e1t\u00e1k list\u00e1ja (soronk\u00e9nt egy a k\u00f6vetkez\u0151 sorokat beh\u00fazva), # amelyeket a Z_TILT_ADJUST parancs sor\u00e1n meg kell vizsg\u00e1lni. Add meg # a f\u00fav\u00f3ka koordin\u00e1t\u00e1it, \u00e9s gy\u0151z\u0151dj meg arr\u00f3l, hogy a szonda a t\u00e1rgyasztal # felett van a megadott f\u00fav\u00f3kakoordin\u00e1t\u00e1kon. # Ezt a param\u00e9tert meg kell adni. #speed: 50 # A nem m\u00e9r\u00e9si mozg\u00e1s sebess\u00e9ge (mm/sec-ben) mozog a kalibr\u00e1l\u00e1skor. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), ameddig a fejnek el kell mozdulnia # k\u00f6zvetlen\u00fcl a m\u00e9r\u00e9sek megkezd\u00e9se el\u0151tt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #retries: 0 # Az \u00fajrapr\u00f3b\u00e1lkoz\u00e1sok sz\u00e1ma, ha a vizsg\u00e1lt pontok nincsenek a # t\u0171r\u00e9shat\u00e1ron bel\u00fcl. #retry_tolerance: 0 # Ha az \u00fajrapr\u00f3b\u00e1lkoz\u00e1s enged\u00e9lyezve van, pr\u00f3b\u00e1lkozzon \u00fajra, ha a # legnagyobb \u00e9s a legkisebb vizsg\u00e1lt pont jobban elt\u00e9r, mint a # retry_tolerance. Vedd figyelembe, hogy a v\u00e1ltoz\u00e1s legkisebb egys\u00e9ge # itt egyetlen l\u00e9p\u00e9s lenne. Ha azonban t\u00f6bb pontot vizsg\u00e1l, mint l\u00e9ptet\u0151t, # akkor val\u00f3sz\u00edn\u0171leg lesz egy r\u00f6gz\u00edtett minim\u00e1lis \u00e9rt\u00e9ke a vizsg\u00e1lt pontok # tartom\u00e1ny\u00e1hoz, amelyet a parancs kimenet\u00e9nek megfigyel\u00e9s\u00e9vel # tanulhat meg.","title":"[z_tilt]"},{"location":"Config_Reference.html#quad_gantry_level","text":"Mozg\u00f3 \u00e1llv\u00e1ny szintez\u00e9se 4 egym\u00e1st\u00f3l f\u00fcggetlen\u00fcl vez\u00e9relt Z-motorral. Korrig\u00e1lja a hiperbolikus parabola hat\u00e1s\u00e1t (krumplichip) a mozg\u00f3 port\u00e1lon, amely rugalmasabb. FIGYELMEZTET\u00c9S: Mozg\u00f3 t\u00e1rgyasztalon t\u00f6rt\u00e9n\u0151 haszn\u00e1lata nemk\u00edv\u00e1natos eredm\u00e9nyekhez vezethet. Ha ez a szakasz jelen van, akkor el\u00e9rhet\u0151v\u00e9 v\u00e1lik a QUAD_GANTRY_LEVEL kiterjesztett G-k\u00f3d parancs. Ez a rutin a k\u00f6vetkez\u0151 Z motor konfigur\u00e1ci\u00f3t felt\u00e9telezi: ---------------- |Z1 Z2| | --------- | | | | | | | | | | x-------- | |Z Z3| ---------------- Ahol X a t\u00e1rgyasztal 0, 0 pontja [quad_gantry_level] #gantry_corners: # Az X, Y koordin\u00e1t\u00e1k \u00faj sorral elv\u00e1lasztott list\u00e1ja, amely le\u00edrja a port\u00e1l # k\u00e9t ellent\u00e9tes sark\u00e1t. Az els\u0151 bejegyz\u00e9s a Z-nek, a m\u00e1sodik a Z2-nek # felel meg. Ezt a param\u00e9tert meg kell adni. #points: # Egy \u00faj sorral elv\u00e1lasztott lista n\u00e9gy X, Y pontb\u00f3l, amelyeket meg kell # vizsg\u00e1lni a QUAD_GANTRY_LEVEL parancs sor\u00e1n. A helyek sorrendje # fontos, \u00e9s sorrendben meg kell egyeznie a Z, Z1, Z2 \u00e9s Z3 helyekkel. # Ezt a param\u00e9tert meg kell adni. A maxim\u00e1lis pontoss\u00e1g \u00e9rdek\u00e9ben # gy\u0151z\u0151dj meg arr\u00f3l, hogy a szonda eltol\u00e1sa be van \u00e1ll\u00edtva. #speed: 50 # A nem m\u00e9r\u00e9si mozg\u00e1sok sebess\u00e9ge (mm/sec-ben) mozog a kalibr\u00e1l\u00e1skor. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), ameddig a fejnek el kell mozdulnia k\u00f6zvetlen\u00fcl # a m\u00e9r\u00e9s megkezd\u00e9se el\u0151tt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #max_adjust: 4 # Biztons\u00e1gi korl\u00e1t, ha enn\u00e9l az \u00e9rt\u00e9kn\u00e9l nagyobb korrekci\u00f3t k\u00e9rnek, # a quad_gantry_level megszakad. #retries: 0 # Az \u00fajrapr\u00f3b\u00e1lkoz\u00e1sok sz\u00e1ma, ha a vizsg\u00e1lt pontok nincsenek a # t\u0171r\u00e9shat\u00e1ron bel\u00fcl. #retry_tolerance: 0 # Ha az \u00fajrapr\u00f3b\u00e1lkoz\u00e1s enged\u00e9lyezve van, pr\u00f3b\u00e1lkozzon \u00fajra, ha a # legnagyobb \u00e9s a legkisebb vizsg\u00e1lt pont jobban elt\u00e9r, # mint a retry_tolerance \u00e9rt\u00e9ke.","title":"[quad_gantry_level]"},{"location":"Config_Reference.html#skew_correction","text":"Nyomtat\u00f3 ferdes\u00e9gkorrekci\u00f3. Lehet\u0151s\u00e9g van a nyomtat\u00f3 ferdes\u00e9g\u00e9nek szoftveres korrekci\u00f3j\u00e1ra 3 s\u00edkban: XY, XZ, YZ. Ez \u00fagy t\u00f6rt\u00e9nik, hogy egy kalibr\u00e1ci\u00f3s modellt nyomtatunk egy s\u00edk ment\u00e9n, \u00e9s h\u00e1rom hossz\u00fas\u00e1got m\u00e9r\u00fcnk. A ferdes\u00e9gkorrekci\u00f3 jelleg\u00e9b\u0151l ad\u00f3d\u00f3an ezeket a hosszokat G-k\u00f3dal kell be\u00e1ll\u00edtani. L\u00e1sd a Ferdes\u00e9g korrekci\u00f3 \u00e9s a Parancs hivatkoz\u00e1s c\u00edm\u0171 fejezetekben tal\u00e1lhat\u00f3 r\u00e9szleteket. [skew_correction]","title":"[skew_correction]"},{"location":"Config_Reference.html#z_thermal_adjust","text":"H\u0151m\u00e9rs\u00e9kletf\u00fcgg\u0151 nyomtat\u00f3fej Z poz\u00edci\u00f3 be\u00e1ll\u00edt\u00e1sa. Kompenz\u00e1lja a nyomtat\u00f3 keret\u00e9nek h\u0151t\u00e1gul\u00e1sa \u00e1ltal okozott f\u00fcgg\u0151leges nyomtat\u00f3fej elmozdul\u00e1st val\u00f3s id\u0151ben egy h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 seg\u00edts\u00e9g\u00e9vel (jellemz\u0151en a keret f\u00fcgg\u0151leges szakasz\u00e1hoz csatlakoztatva). L\u00e1sd m\u00e9g: b\u0151v\u00edtett G-k\u00f3d parancsok . [z_thermal_adjust] #temp_coeff: # A h\u0151m\u00e9rs\u00e9kleti t\u00e1gul\u00e1si egy\u00fctthat\u00f3, mm/\u00b0C-ban. P\u00e9ld\u00e1ul a 0,01 mm/\u00b0C # temp_coeff a Z tengelyt 0,01 mm-rel lefel\u00e9 mozgatja minden Celsius-fok # ut\u00e1n, amelyet a h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 n\u00f6vel. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,0 mm/\u00b0C, amely nem alkalmaz be\u00e1ll\u00edt\u00e1st. #smooth_time: # Sim\u00edt\u00e1si ablak a h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151re, m\u00e1sodpercek alatt. # Cs\u00f6kkentheti a motorzajt a t\u00falzottan kis korrekci\u00f3kb\u00f3l # az \u00e9rz\u00e9kel\u0151 zaj\u00e1ra reag\u00e1lva. # Az alap\u00e9rtelmezett 2,0 m\u00e1sodperc. #z_adjust_off_above: # Letiltja a Z magass\u00e1g [mm] feletti be\u00e1ll\u00edt\u00e1sokat. # Az utolj\u00e1ra sz\u00e1m\u00edtott korrekci\u00f3 mindaddig \u00e9rv\u00e9nyes marad, am\u00edg a # nyomtat\u00f3fej ism\u00e9t a megadott Z magass\u00e1g al\u00e1 nem ker\u00fcl. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 99999999,0 mm (mindig bekapcsolva). #max_z_adjustment: # A Z tengelyre alkalmazhat\u00f3 maxim\u00e1lis abszol\u00fat be\u00e1ll\u00edt\u00e1s [mm]. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 99999999,0 mm (korl\u00e1tlan). #sensor_type: #sensor_pin: #min_temp: #max_temp: # H\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 konfigur\u00e1ci\u00f3ja. # A fenti param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd az \"extruder\" r\u00e9szt. #gcode_id: # L\u00e1sd a \"heater_generic\" r\u00e9szt a param\u00e9ter meghat\u00e1roz\u00e1s\u00e1hoz.","title":"[z_thermal_adjust]"},{"location":"Config_Reference.html#testreszabott-kezdopont-felvetel","text":"","title":"Testreszabott kezd\u0151pont felv\u00e9tel"},{"location":"Config_Reference.html#safe_z_home","text":"Biztons\u00e1gos Z kezd\u0151pont felv\u00e9tel. Ezzel a mechanizmussal a Z tengelyt egy adott X, Y koordin\u00e1t\u00e1ra lehet \u00e1ll\u00edtani. Ez akkor hasznos, ha p\u00e9ld\u00e1ul a nyomtat\u00f3fejnek a t\u00e1rgyasztal k\u00f6zep\u00e9re kell mozognia, miel\u0151tt a Z-tengelyt kezd\u0151pontpba ir\u00e1ny\u00edtan\u00e1. [safe_z_home] home_xy_position: # Egy X, Y koordin\u00e1ta (pl. 100, 100), ahol a Z homingot v\u00e9gre kell hajtani. # Ezt a param\u00e9tert meg kell adni. #speed: 50.0 # Az a sebess\u00e9g, amellyel a nyomtat\u00f3fej a biztons\u00e1gos Z # kezd\u0151koordin\u00e1t\u00e1ra ker\u00fcl. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50 mm/sec #z_hop: # T\u00e1vols\u00e1g (mm-ben) a Z tengely felemel\u00e9s\u00e9hez a be\u00e1ll\u00edt\u00e1s el\u0151tt. # Ez minden ir\u00e1nyad\u00f3 parancsra vonatkozik, m\u00e9g akkor is, ha nem # a Z tengelyre ir\u00e1nyul. # Ha a Z tengely m\u00e1r be van \u00e1ll\u00edtva, \u00e9s az aktu\u00e1lis Z poz\u00edci\u00f3 kisebb, # mint z_hop, akkor ez a fejet z_hop magass\u00e1gba emeli. # Ha a Z tengely m\u00e9g nincs behelyezve, a fejet a z_hop felemeli. # Az alap\u00e9rtelmezett az, hogy nem val\u00f3s\u00edtja meg a Z ugr\u00e1st. #z_hop_speed: 15.0 # Sebess\u00e9g (mm/sec-ben), amellyel a Z tengely megemelkedik # a homing el\u0151tt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 15mm/sec. #move_to_previous: False # Ha True \u00e9rt\u00e9kre van \u00e1ll\u00edtva, az X \u00e9s Y tengelyek vissza\u00e1llnak # az el\u0151z\u0151 poz\u00edci\u00f3jukra a Z tengely kezd\u0151pont felv\u00e9tele ut\u00e1n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False.","title":"[safe_z_home]"},{"location":"Config_Reference.html#homing_override","text":"Kezd\u0151pont felv\u00e9tel fel\u00fclb\u00edr\u00e1l\u00e1sa. Ezt a mechanizmust arra lehet haszn\u00e1lni, hogy a norm\u00e1l G-k\u00f3d bemenetben tal\u00e1lhat\u00f3 G28 helyett egy sor G-k\u00f3d parancsot futtassunk. Ez olyan nyomtat\u00f3kn\u00e1l lehet hasznos, amelyekn\u00e9l a g\u00e9p beind\u00edt\u00e1s\u00e1hoz speci\u00e1lis elj\u00e1r\u00e1sra van sz\u00fcks\u00e9g. [homing_override] gcode: # A norm\u00e1l G-k\u00f3d bemenetben tal\u00e1lhat\u00f3 G28 parancsok helyett # v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. L\u00e1sd a # docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d form\u00e1tumokhoz. # Ha a parancsok list\u00e1ja G28-at tartalmaz, akkor az a nyomtat\u00f3fej norm\u00e1l # elhelyez\u00e9si elj\u00e1r\u00e1s\u00e1t ind\u00edtja el. Az itt felsorolt parancsoknak minden # tengelyt kezd\u0151ponthoz kell ir\u00e1ny\u00edtaniuk. Ezt a param\u00e9tert meg kell adni. #axes: xyz # A fel\u00fcl\u00edrand\u00f3 tengelyek. P\u00e9ld\u00e1ul, ha ez \"Z\"-re van \u00e1ll\u00edtva, akkor a # fel\u00fcl\u00edr\u00e1si parancsf\u00e1jl csak akkor fut le, ha a Z tengely be van \u00e1ll\u00edtva # (pl. \"G28\" vagy \"G28 Z0\" paranccsal). Ne feledd, hogy a fel\u00fcl\u00edr\u00e1si # szkriptnek tov\u00e1bbra is minden tengelyt kell tartalmaznia. # Az alap\u00e9rtelmez\u00e9s az \"xyz\", ami azt eredm\u00e9nyezi, hogy a fel\u00fclb\u00edr\u00e1l\u00f3 # szkript fut minden G28 parancs helyett. #set_position_x: #set_position_y: #set_position_z: # Ha meg van adva, a nyomtat\u00f3 felt\u00e9telezi, hogy a tengely a megadott # poz\u00edci\u00f3ban van a fenti G-k\u00f3d parancsok futtat\u00e1sa el\u0151tt. Ennek a # be\u00e1ll\u00edt\u00e1s\u00e1val letiltja az adott tengelyre vonatkoz\u00f3 kezd\u0151pont # ellen\u0151rz\u00e9seket. Ez akkor lehet hasznos, ha a nyomtat\u00f3fejnek el kell # mozdulnia, miel\u0151tt a norm\u00e1l G28 parancsot megh\u00edvn\u00e1 egy tengelyre. # Az alap\u00e9rtelmez\u00e9s az, hogy nem er\u0151ltetik a tengely poz\u00edci\u00f3j\u00e1t.","title":"[homing_override]"},{"location":"Config_Reference.html#endstop_phase","text":"L\u00e9ptet\u0151 f\u00e1zissal be\u00e1ll\u00edtott v\u00e9g\u00e1ll\u00e1sok. A funkci\u00f3 haszn\u00e1lat\u00e1hoz defini\u00e1ljon egy konfigur\u00e1ci\u00f3s r\u00e9szt egy \"endstop_phase\" el\u0151taggal, amelyet a megfelel\u0151 stepper konfigur\u00e1ci\u00f3s r\u00e9sz neve k\u00f6vet (p\u00e9ld\u00e1ul \"[endstop_phase stepper_z]\"). Ez a funkci\u00f3 jav\u00edthatja a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3k pontoss\u00e1g\u00e1t. Adj hozz\u00e1 egy csupasz \"[endstop_phase]\" deklar\u00e1ci\u00f3t az ENDSTOP_PHASE_CALIBRATE parancs enged\u00e9lyez\u00e9s\u00e9hez. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a v\u00e9g\u00e1ll\u00e1si f\u00e1zisok \u00fatmutat\u00f3 \u00e9s a Parancs hivatkoz\u00e1s dokumentumot. [endstop_phase stepper_z] #endstop_accuracy: # Be\u00e1ll\u00edtja a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 v\u00e1rhat\u00f3 pontoss\u00e1g\u00e1t (mm-ben). Ez azt a # maxim\u00e1lis hibat\u00e1vols\u00e1got jel\u00f6li, amelyet a v\u00e9g\u00e1ll\u00e1s kiv\u00e1lthat (pl. ha # egy v\u00e9g\u00e1ll\u00e1s id\u0151nk\u00e9nt 100 um kor\u00e1n vagy legfeljebb 100 um k\u00e9s\u00e9ssel # v\u00e1lthat ki, akkor \u00e1ll\u00edtsd ezt 0,200-ra 200 um eset\u00e9n). Az alap\u00e9rtelmezett # 4*rotation_distance/full_steps_per_rotation. #trigger_phase: # Ez hat\u00e1rozza meg a l\u00e9ptet\u0151motor meghajt\u00f3j\u00e1nak azt az \u00e1ramot, # amelyre sz\u00e1m\u00edtani kell, amikor meg\u00fcti a v\u00e9g\u00e1ll\u00e1st. K\u00e9t sz\u00e1mb\u00f3l \u00e1ll, # amelyeket egy perjel v\u00e1laszt el. Az \u00e1ramb\u00f3l \u00e9s \u00e1ramok teljes sz\u00e1m\u00e1b\u00f3l # (pl. \"7/64\"). Csak akkor \u00e1ll\u00edtsd be ezt az \u00e9rt\u00e9ket, ha biztos abban, hogy a # motorvez\u00e9rl\u0151 minden alkalommal alaphelyzetbe \u00e1ll az MCU # alaphelyzetbe \u00e1ll\u00edt\u00e1sakor. Ha ez nincs be\u00e1ll\u00edtva, akkor a l\u00e9ptet\u0151 f\u00e1zist a # rendszer az els\u0151 kezd\u0151pontban \u00e9rz\u00e9keli, \u00e9s ezt az \u00e1ramot haszn\u00e1lja az # \u00f6sszes k\u00f6vetkez\u0151 kezd\u0151pontfelv\u00e9telkor. #endstop_align_zero: False # Ha True, akkor a tengely position_endstop \u00e9rt\u00e9ke t\u00e9nylegesen m\u00f3dosul, # \u00edgy a tengely nulla poz\u00edci\u00f3ja a l\u00e9ptet\u0151motor teljes l\u00e9p\u00e9s\u00e9n\u00e9l megjelenik. # (Ha a Z tengelyen haszn\u00e1ljuk, \u00e9s a nyomtat\u00e1si r\u00e9teg magass\u00e1ga a teljes # l\u00e9p\u00e9st\u00e1vols\u00e1g t\u00f6bbsz\u00f6r\u00f6se, akkor minden r\u00e9teg egy teljes l\u00e9p\u00e9sben # jelenik meg.) Az alap\u00e9rtelmezett \u00e9rt\u00e9k False.","title":"[endstop_phase]"},{"location":"Config_Reference.html#g-kod-makrok-es-esemenyek","text":"","title":"G-k\u00f3d makr\u00f3k \u00e9s esem\u00e9nyek"},{"location":"Config_Reference.html#gcode_macro","text":"G-k\u00f3d makr\u00f3k (a \"gcode_macro\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3). Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancssablonok \u00fatmutat\u00f3j\u00e1t . [gcode_macro my_cmd] #gcode: # A \"my_cmd\" helyett v\u00e9grehajtand\u00f3 G-k\u00f3d-parancsok list\u00e1ja. L\u00e1sd a # docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d form\u00e1tumhoz. # Ezt a param\u00e9tert meg kell adni. #variable_<name>: # B\u00e1rmilyen sz\u00e1m\u00fa be\u00e1ll\u00edt\u00e1s megadhat\u00f3 a \"v\u00e1ltoz\u00f3_\" el\u0151taggal. # Az adott v\u00e1ltoz\u00f3n\u00e9vhez a rendszer hozz\u00e1rendeli az adott \u00e9rt\u00e9ket # (Python liter\u00e1lk\u00e9nt \u00e9rtelmezi), \u00e9s el\u00e9rhet\u0151 lesz a makr\u00f3b\u0151v\u00edt\u00e9s # sor\u00e1n. P\u00e9ld\u00e1ul egy \"variable_fan_speed = 75\" konfigur\u00e1ci\u00f3j\u00fa G-k\u00f3d # parancsok tartalmazhatj\u00e1k az \"M106 S{ fan_speed * 255 }\" \u00e9rt\u00e9ket. # A v\u00e1ltoz\u00f3k fut\u00e1s k\u00f6zben m\u00f3dos\u00edthat\u00f3k a SET_GCODE_VARIABLE # paranccsal (a r\u00e9szletek\u00e9rt l\u00e1sd a docs/Command_Templates.md f\u00e1jlt). # A v\u00e1ltoz\u00f3nevek nem tartalmazhatnak nagybet\u0171ket. #rename_existing: # Ezzel az opci\u00f3val a makr\u00f3 fel\u00fcl\u00edr egy megl\u00e9v\u0151 G-k\u00f3d parancsot, \u00e9s # megadja a parancs kor\u00e1bbi defin\u00edci\u00f3j\u00e1t az itt megadott n\u00e9ven. Ez # haszn\u00e1lhat\u00f3 a be\u00e9p\u00edtett G-k\u00f3d parancsok fel\u00fclb\u00edr\u00e1l\u00e1s\u00e1ra. \u00d3vatosan # kell elj\u00e1rni a parancsok fel\u00fclb\u00edr\u00e1l\u00e1sakor, mivel az \u00f6sszetett \u00e9s v\u00e1ratlan # eredm\u00e9nyeket okozhat. Az alap\u00e9rtelmez\u00e9s szerint nem \u00edrnak fel\u00fcl # megl\u00e9v\u0151 G-k\u00f3d parancsot. #description: G-Code macro # Ez hozz\u00e1ad egy r\u00f6vid le\u00edr\u00e1st, amelyet a HELP parancsn\u00e1l vagy az # automatikus kieg\u00e9sz\u00edt\u00e9s funkci\u00f3 haszn\u00e1latakor haszn\u00e1lnak. # Alap\u00e9rtelmezett a \"G-Code macro\"","title":"[gcode_macro]"},{"location":"Config_Reference.html#delayed_gcode","text":"Egy G-k\u00f3d v\u00e9grehajt\u00e1sa be\u00e1ll\u00edtott k\u00e9sleltet\u00e9ssel. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancssablon \u00fatmutat\u00f3 \u00e9s a Parancs hivatkoz\u00e1s dokumentumot. [delayed_gcode my_delayed_gcode] gcode: # A k\u00e9sleltet\u00e9si id\u0151 letelte ut\u00e1n v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. # A G-Code sablonok t\u00e1mogatottak. Ezt a param\u00e9tert meg kell adni. #initial_duration: 0.0 # A kezdeti k\u00e9sleltet\u00e9s id\u0151tartama (m\u00e1sodpercben). Ha null\u00e1t\u00f3l elt\u00e9r\u0151 # \u00e9rt\u00e9kre van \u00e1ll\u00edtva, a delayed_gcode a megadott sz\u00e1m\u00fa m\u00e1sodpercet # hajtja v\u00e9gre, miut\u00e1n a nyomtat\u00f3 \u201ek\u00e9sz\u201d \u00e1llapotba l\u00e9p. Ez hasznos lehet # inicializ\u00e1l\u00e1si elj\u00e1r\u00e1sok vagy ism\u00e9tl\u0151d\u0151 delayed_gcode eset\u00e9n. Ha 0-ra # van \u00e1ll\u00edtva, a delayed_gcode nem fut le az ind\u00edt\u00e1skor. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0.","title":"[delayed_gcode]"},{"location":"Config_Reference.html#save_variables","text":"A v\u00e1ltoz\u00f3k lemezre ment\u00e9s\u00e9nek t\u00e1mogat\u00e1sa, hogy azok az \u00fajraind\u00edt\u00e1sok sor\u00e1n is megmaradjanak. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd Parancs hivatkoz\u00e1s \u00e9s a G-k\u00f3d hivatkoz\u00e1s dokumentumot. [save_variables] filename: # K\u00f6telez\u0151 - adj meg egy f\u00e1jlnevet, amelyet a v\u00e1ltoz\u00f3k # lemezre ment\u00e9s\u00e9hez haszn\u00e1lna, pl. ~/variables.cfg","title":"[save_variables]"},{"location":"Config_Reference.html#idle_timeout","text":"\u00dcresj\u00e1rati id\u0151t\u00fall\u00e9p\u00e9s. Az \u00fcresj\u00e1rati id\u0151t\u00fall\u00e9p\u00e9s automatikusan enged\u00e9lyezve van. Az alap\u00e9rtelmezett be\u00e1ll\u00edt\u00e1sok m\u00f3dos\u00edt\u00e1s\u00e1hoz adj hozz\u00e1 egy explicit idle_timeout konfigur\u00e1ci\u00f3s szakaszt. [idle_timeout] #gcode: # Az \u00fcresj\u00e1rati id\u0151t\u00fall\u00e9p\u00e9skor v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. # L\u00e1sd a docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d form\u00e1tumhoz. # Az alap\u00e9rtelmezett a \u201eTURN_OFF_HEATERS\u201d \u00e9s \u201eM84\u201d futtat\u00e1sa. #timeout: 600 # A fenti G-k\u00f3d parancsok futtat\u00e1sa el\u0151tti v\u00e1rakoz\u00e1si id\u0151 (m\u00e1sodpercben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a 600 m\u00e1sodperc.","title":"[idle_timeout]"},{"location":"Config_Reference.html#valaszthato-g-kod-funkciok","text":"","title":"V\u00e1laszthat\u00f3 G-k\u00f3d funkci\u00f3k"},{"location":"Config_Reference.html#virtual_sdcard","text":"A virtu\u00e1lis sdcard hasznos lehet, ha a gazdasz\u00e1m\u00edt\u00f3g\u00e9p nem el\u00e9g gyors az OctoPrint megfelel\u0151 futtat\u00e1s\u00e1hoz. Ez lehet\u0151v\u00e9 teszi a Klipper gazdag\u00e9p szoftver sz\u00e1m\u00e1ra, hogy k\u00f6zvetlen\u00fcl kinyomtasd a G-k\u00f3d f\u00e1jlokat, amelyeket a gazdag\u00e9pen l\u00e9v\u0151 k\u00f6nyvt\u00e1rban t\u00e1rolnak a szabv\u00e1nyos sdcard G-k\u00f3d parancsok (pl. M24) haszn\u00e1lat\u00e1val. [virtual_sdcard] path: # A gazdag\u00e9p helyi k\u00f6nyvt\u00e1r\u00e1nak el\u00e9r\u00e9si \u00fatja a G-k\u00f3d f\u00e1jlok keres\u00e9s\u00e9hez. # Ez egy csak olvashat\u00f3 k\u00f6nyvt\u00e1r (az sdcard f\u00e1jl \u00edr\u00e1sa nem t\u00e1mogatott). # Ezt r\u00e1mutathatjuk az OctoPrint felt\u00f6lt\u00e9si k\u00f6nyvt\u00e1r\u00e1ra # (\u00e1ltal\u00e1ban ~/.octoprint/uploads/ ). Ezt a param\u00e9tert meg kell adni. #on_error_gcode: # A hibajelent\u00e9skor v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja.","title":"[virtual_sdcard]"},{"location":"Config_Reference.html#sdcard_loop","text":"N\u00e9h\u00e1ny szakaszok t\u00f6rl\u00e9s\u00e9vel rendelkez\u0151 nyomtat\u00f3, p\u00e9ld\u00e1ul alkatr\u00e9sz-kidob\u00f3 vagy szalagnyomtat\u00f3, haszn\u00e1t veheti az SD-k\u00e1rtya f\u00e1jl hurkolt szakaszainak. (P\u00e9ld\u00e1ul ugyanazon alkatr\u00e9sz \u00fajra \u00e9s \u00fajra t\u00f6rt\u00e9n\u0151 kinyomtat\u00e1s\u00e1hoz, vagy egy alkatr\u00e9sz egy szakasz\u00e1nak megism\u00e9tl\u00e9s\u00e9hez egy l\u00e1nc vagy m\u00e1s ism\u00e9tl\u0151d\u0151 mint\u00e1hoz). A t\u00e1mogatott parancsokat l\u00e1sd a Parancs hivatkoz\u00e1sban . Vagy l\u00e1sd a sample-macros.cfg f\u00e1jlt egy Marlin kompatibilis M808 G-k\u00f3d makr\u00f3\u00e9rt. [sdcard_loop]","title":"[sdcard_loop]"},{"location":"Config_Reference.html#force_move","text":"T\u00e1mogatja a l\u00e9peget\u0151motorok k\u00e9zi mozgat\u00e1s\u00e1t diagnosztikai c\u00e9lokra. Figyelem, ennek a funkci\u00f3nak a haszn\u00e1lata a nyomtat\u00f3t \u00e9rv\u00e9nytelen \u00e1llapotba hozhatja. A fontos r\u00e9szletek\u00e9rt l\u00e1sd a Parancs hivatkoz\u00e1s dokumentumot. [force_move] #enable_force_move: False # A FORCE_MOVE \u00e9s a SET_KINEMATIC_POSITION enged\u00e9lyez\u00e9s\u00e9hez # \u00e1ll\u00edtsuk True-ra a kiterjesztett G-k\u00f3d parancsot. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False.","title":"[force_move]"},{"location":"Config_Reference.html#pause_resume","text":"Sz\u00fcneteltet\u00e9si/folytat\u00e1si funkci\u00f3 a poz\u00edci\u00f3 r\u00f6gz\u00edt\u00e9s\u00e9nek \u00e9s vissza\u00e1ll\u00edt\u00e1s\u00e1nak t\u00e1mogat\u00e1s\u00e1val. Tov\u00e1bbi inform\u00e1ci\u00f3\u00e9rt l\u00e1sd a Parancs hivatkoz\u00e1s dokumentumot. [pause_resume] #recover_velocity: 50. # Ha a r\u00f6gz\u00edt\u00e9s/vissza\u00e1ll\u00edt\u00e1s enged\u00e9lyezve van, akkor a megadott # sebess\u00e9ggel, t\u00e9r vissza a r\u00f6gz\u00edtett poz\u00edci\u00f3hoz (mm/sec-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50,0 mm/sec.","title":"[pause_resume]"},{"location":"Config_Reference.html#firmware_retraction","text":"Firmware sz\u00e1l visszah\u00faz\u00e1s. Ez lehet\u0151v\u00e9 teszi a G10 (visszah\u00faz\u00e1s) \u00e9s G11 (visszah\u00faz\u00e1s megsz\u00fcntet\u00e9se) G-k\u00f3d parancsokat, amelyeket sok szeletel\u0151 program haszn\u00e1l. Az al\u00e1bbi param\u00e9terek az ind\u00edt\u00e1si alap\u00e9rtelmezett \u00e9rt\u00e9keket adj\u00e1k meg, b\u00e1r az \u00e9rt\u00e9kek a SET_RETRACTION parancs ) seg\u00edts\u00e9g\u00e9vel m\u00f3dos\u00edthat\u00f3k, lehet\u0151v\u00e9 t\u00e9ve a sz\u00e1lank\u00e9nti be\u00e1ll\u00edt\u00e1sokat \u00e9s a fut\u00e1sidej\u0171 hangol\u00e1st. [firmware_retraction] #retract_length: 0 # A G10 aktiv\u00e1l\u00e1sakor visszah\u00fazand\u00f3 sz\u00e1l hossza (mm-ben), # \u00e9s a G11 aktiv\u00e1l\u00e1sakor visszah\u00fazand\u00f3 (de l\u00e1sd: G11). # unretract_extra_length al\u00e1bb). Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0 mm. #retract_speed: 20 # A beh\u00faz\u00e1s sebess\u00e9ge mm/sec-ben. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 20 mm/sec. #unretract_extra_length: 0 # Az *additional* sz\u00e1l hossza (mm-ben), amelyet hozz\u00e1adunk, # a visszah\u00faz\u00e1s felold\u00e1sakor. #unretract_speed: 10 # A visszah\u00faz\u00e1s felold\u00e1s\u00e1nak sebess\u00e9ge mm/sec-ben. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 10 mm/sec.","title":"[firmware_retraction]"},{"location":"Config_Reference.html#gcode_arcs","text":"A G-k\u00f3d \u00edv (G2/G3) parancsok t\u00e1mogat\u00e1sa. [gcode_arcs] #resolution: 1.0 # Egy \u00edv szegmensekre lesz felosztva. Minden szegmens hossza # megegyezik a fent be\u00e1ll\u00edtott felbont\u00e1ssal, mm-ben. Az alacsonyabb # \u00e9rt\u00e9kek finomabb \u00edvet eredm\u00e9nyeznek, de t\u00f6bb munk\u00e1t is v\u00e9geznek # a g\u00e9pen. A be\u00e1ll\u00edtott \u00e9rt\u00e9kn\u00e9l kisebb \u00edvek egyenesekk\u00e9 v\u00e1lnak. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1 mm.","title":"[gcode_arcs]"},{"location":"Config_Reference.html#respond","text":"Enged\u00e9lyezd az \"M118\" \u00e9s \"RESPOND\" kiterjesztett parancsokat . [respond] #default_type: echo # Be\u00e1ll\u00edtja az \"M118\" \u00e9s a \"RESPOND\" kimenet alap\u00e9rtelmezett el\u0151tagj\u00e1t # a k\u00f6vetkez\u0151k egyik\u00e9re: # echo: \"echo: \" (Ez az alap\u00e9rtelmezett) # command: \"// \" # error: \"!! \" #default_prefix: echo: # K\u00f6zvetlen\u00fcl be\u00e1ll\u00edtja az alap\u00e9rtelmezett el\u0151tagot. Ha jelen van, ez az # \u00e9rt\u00e9k fel\u00fcl\u00edrja a \u201edefault_type\u201d \u00e9rt\u00e9ket.","title":"[respond]"},{"location":"Config_Reference.html#exclude_object","text":"Lehet\u0151v\u00e9 teszi az egyes objektumok kiz\u00e1r\u00e1s\u00e1nak vagy t\u00f6rl\u00e9s\u00e9nek t\u00e1mogat\u00e1s\u00e1t a nyomtat\u00e1si folyamat sor\u00e1n. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a kiz\u00e1rand\u00f3 objektumok \u00fatmutat\u00f3t \u00e9s a parancsreferenci\u00e1t . L\u00e1sd a sample-macros.cfg f\u00e1jlt egy Marlin/RepRapFirmware kompatibilis M486 G-k\u00f3d makr\u00f3hoz. [exclude_object]","title":"[exclude_object]"},{"location":"Config_Reference.html#rezonancia-kompenzacio","text":"","title":"Rezonancia kompenz\u00e1ci\u00f3"},{"location":"Config_Reference.html#input_shaper","text":"Enged\u00e9lyezi a rezonancia kompenz\u00e1ci\u00f3t . L\u00e1sd m\u00e9g a parancsreferencia dokumentumot. [input_shaper] #shaper_freq_x: 0 # A bemeneti v\u00e1ltoz\u00f3 frekvenci\u00e1ja (Hz-ben) az X tengelyhez. Ez \u00e1ltal\u00e1ban # az X tengely rezonanciafrekvenci\u00e1ja, amelyet a bemeneti v\u00e1ltoz\u00f3knak # el kell nyomnia. Bonyolultabb v\u00e1ltoz\u00f3k, p\u00e9ld\u00e1ul 2- \u00e9s 3-hull\u00e1mos EI # bemeneti v\u00e1ltoz\u00f3k eset\u00e9n ez a param\u00e9ter k\u00fcl\u00f6nb\u00f6z\u0151 szempontok # alapj\u00e1n \u00e1ll\u00edthat\u00f3 be. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, ami letiltja az X # tengely bemeneti v\u00e1ltoz\u00e1s\u00e1t. #shaper_freq_y: 0 # Az Y tengely bemeneti v\u00e1ltoz\u00f3j\u00e1nak frekvenci\u00e1ja (Hz-ben). Ez \u00e1ltal\u00e1ban # az Y tengely rezonanciafrekvenci\u00e1ja, amelyet a bemeneti v\u00e1ltoz\u00f3knak # el kell nyomnia. Bonyolultabb v\u00e1ltoz\u00f3k, p\u00e9ld\u00e1ul 2- \u00e9s 3-hull\u00e1mos EI # bemeneti v\u00e1ltoz\u00f3k eset\u00e9n ez a param\u00e9ter k\u00fcl\u00f6nb\u00f6z\u0151 szempontok # alapj\u00e1n \u00e1ll\u00edthat\u00f3 be. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, ami letiltja az Y # tengely bemeneti v\u00e1ltoz\u00e1s\u00e1t. #shaper_type: mzv # A bemeneti v\u00e1ltoz\u00f3k t\u00edpusa az X \u00e9s az Y tengelyekhez. A t\u00e1mogatott # v\u00e1ltoz\u00f3k a zv, mzv, zvd, ei, 2hump_ei \u00e9s 3hump_ei. Az alap\u00e9rtelmezett # bemeneti v\u00e1ltoz\u00f3 az mzv. #shaper_type_x: #shaper_type_y: # Ha a shaper_type nincs be\u00e1ll\u00edtva, akkor ez a k\u00e9t param\u00e9ter haszn\u00e1lhat\u00f3 # k\u00fcl\u00f6nb\u00f6z\u0151 bemeneti v\u00e1ltoz\u00f3k konfigur\u00e1l\u00e1s\u00e1ra az X \u00e9s Y tengelyekhez. # Ugyanazok az \u00e9rt\u00e9kek t\u00e1mogatottak, mint a shaper_type param\u00e9tern\u00e9l. #damping_ratio_x: 0,1 #damping_ratio_y: 0,1 # Az X \u00e9s Y tengely rezg\u00e9s\u00e9nek csillap\u00edt\u00e1si ar\u00e1nyai, amelyeket a bemeneti # v\u00e1ltoz\u00f3k haszn\u00e1lnak a rezg\u00e9selnyom\u00e1s jav\u00edt\u00e1s\u00e1ra. Az alap\u00e9rtelmezett # \u00e9rt\u00e9k 0,1, ami a legt\u00f6bb nyomtat\u00f3 sz\u00e1m\u00e1ra j\u00f3 \u00e1ltal\u00e1nos \u00e9rt\u00e9k. A legt\u00f6bb # esetben ez a param\u00e9ter nem ig\u00e9nyel hangol\u00e1st, \u00e9s nem szabad # megv\u00e1ltoztatni.","title":"[input_shaper]"},{"location":"Config_Reference.html#adxl345","text":"ADXL345 gyorsul\u00e1sm\u00e9r\u0151k t\u00e1mogat\u00e1sa. Ez a t\u00e1mogat\u00e1s lehet\u0151v\u00e9 teszi a gyorsul\u00e1sm\u00e9r\u0151 m\u00e9r\u00e9seinek lek\u00e9rdez\u00e9s\u00e9t az \u00e9rz\u00e9kel\u0151t\u0151l. Ez lehet\u0151v\u00e9 teszi az ACCELEROMETER_MEASURE parancsot (tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a G-k\u00f3dok dokumentumot). Az alap\u00e9rtelmezett chipn\u00e9v \"default\", de megadhatunk egy explicit nevet (pl. [adxl345 my_chip_name]). [adxl345] cs_pin: # Az \u00e9rz\u00e9kel\u0151 SPI enged\u00e9lyez\u0151 t\u0171je. Ezt a param\u00e9tert meg kell adni. #spi_speed: 5000000 # A chippel val\u00f3 kommunik\u00e1ci\u00f3 sor\u00e1n haszn\u00e1land\u00f3 SPI sebess\u00e9g (hz-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5000000. #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # L\u00e1sd az \"\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\" c\u00edm\u0171 szakaszt a # fenti param\u00e9terek le\u00edr\u00e1s\u00e1hoz. #axes_map: x, y, z # A gyorsul\u00e1sm\u00e9r\u0151 a nyomtat\u00f3 X, Y \u00e9s Z tengelyeihez kell. # Ez akkor lehet hasznos, ha a gyorsul\u00e1sm\u00e9r\u0151 olyan # orient\u00e1ci\u00f3ban van beszerelve, amely nem egyezik a nyomtat\u00f3\u00e9val. # Ebben az eset\u00e9ben p\u00e9ld\u00e1ul be\u00e1ll\u00edthatjuk ezt az \"Y, X, Z\" \u00e9rt\u00e9kre, # hogy felcser\u00e9lj\u00fck az X \u00e9s Y tengelyeket. Lehet\u0151s\u00e9g van arra is, hogy # neg\u00e1ljunk egy tengelyt, ha a gyorsul\u00e1sm\u00e9r\u0151 ir\u00e1nya ford\u00edtott # (pl. \"X, Z, -Y\"). Az alap\u00e9rtelmezett \u00e9rt\u00e9k \"X, Y, Z\",. #rate: 3200 # Kimeneti adat\u00e1tviteli sebess\u00e9g az ADXL345 eset\u00e9ben. Az ADXL345 # a k\u00f6vetkez\u0151 sebess\u00e9geket t\u00e1mogatja: 3200, 1600, 800, 400, 200, # 100, 50 \u00e9s 25. Vedd figyelembe, hogy nem aj\u00e1nlott megv\u00e1ltoztatni # ezt a sebess\u00e9get az alap\u00e9rtelmezett 3200-r\u00f3l, \u00e9s a 800 alatti # sebess\u00e9gek jelent\u0151sen befoly\u00e1solj\u00e1k a rezonancia m\u00e9r\u00e9s # eredm\u00e9nyeinek min\u0151s\u00e9g\u00e9t.","title":"[adxl345]"},{"location":"Config_Reference.html#mpu9250","text":"Az mpu9250 \u00e9s mpu6050 gyorsul\u00e1sm\u00e9r\u0151k t\u00e1mogat\u00e1sa (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"mpu9250\" el\u0151taggal). [mpu9250 my_accelerometer] #i2c_address: # Az alap\u00e9rtelmezett 104 (0x68). #i2c_mcu: #i2c_bus: #i2c_speed: 400000 # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az # \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" r\u00e9szben. # Az alap\u00e9rtelmezett \"i2c_speed\" 400000. #axes_map: x, y, z # Err\u0151l a param\u00e9terr\u0151l az \"adxl345\" szakaszban olvashat b\u0151vebben.","title":"[mpu9250]"},{"location":"Config_Reference.html#resonance_tester","text":"A rezonancia tesztel\u00e9s \u00e9s az automatikus bemeneti alak\u00edt\u00f3 kalibr\u00e1ci\u00f3 t\u00e1mogat\u00e1sa. A modul legt\u00f6bb funkci\u00f3j\u00e1nak haszn\u00e1lat\u00e1hoz tov\u00e1bbi szoftverf\u00fcgg\u0151s\u00e9geket kell telep\u00edteni; tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt olvasd el a Rezonanci\u00e1k m\u00e9r\u00e9se \u00e9s a parancs hivatkoz\u00e1s c\u00edm\u0171 dokumentumot. A rezonanci\u00e1k m\u00e9r\u00e9se c\u00edm\u0171 \u00fatmutat\u00f3 Max sim\u00edt\u00e1s szakasz\u00e1ban tov\u00e1bbi inform\u00e1ci\u00f3kat tal\u00e1l a max_smoothing param\u00e9terr\u0151l \u00e9s annak haszn\u00e1lat\u00e1r\u00f3l. [resonance_tester] #probe_points: # A rezonanci\u00e1k tesztel\u00e9s\u00e9hez sz\u00fcks\u00e9ges pontok X, Y, Z koordin\u00e1t\u00e1inak # list\u00e1ja (soronk\u00e9nt egy pont). Legal\u00e1bb egy pont sz\u00fcks\u00e9ges. # Gy\u0151z\u0151dj meg r\u00f3la, hogy minden pont az X-Y s\u00edkban n\u00e9mi # biztons\u00e1gi tartal\u00e9kkal rendelkezik \u00e9s (~ n\u00e9h\u00e1ny centim\u00e9ter) # el\u00e9rhet\u0151ek a nyomtat\u00f3fejjel. #accel_chip: # A m\u00e9r\u00e9sekhez haszn\u00e1lt gyorsul\u00e1sm\u00e9r\u0151 chip neve. Ha adxl345 chipet # explicit n\u00e9v n\u00e9lk\u00fcl defini\u00e1lt\u00e1k, ez a param\u00e9ter egyszer\u0171en # hivatkozhat r\u00e1 \"accel_chip: adxl345\"-k\u00e9nt, ellenkez\u0151 esetben egy # \"accel_chip: adxl345\" param\u00e9tert kell megadni. Explicit nevet is meg # kell adni, pl. \"accel_chip: adxl345\" my_chip_n\u00e9v\". # Vagy ezt, vagy a k\u00f6vetkez\u0151 k\u00e9t param\u00e9tert kell be\u00e1ll\u00edtani. #accel_chip_x: #accel_chip_y: # Az egyes tengelyek m\u00e9r\u00e9s\u00e9hez haszn\u00e1land\u00f3 gyorsul\u00e1sm\u00e9r\u0151 chipek # neve. Hasznos lehet p\u00e9ld\u00e1ul a t\u00e1rgyasztal cs\u00fasztat\u00f3s nyomtat\u00f3n\u00e1l, ha k\u00e9t # k\u00fcl\u00f6n gyorsul\u00e1sm\u00e9r\u0151 van felszerelve a t\u00e1rgyasztalra (az Y tengelyhez) \u00e9s a # nyomtat\u00f3fejre (az X tengelyhez). Ezek a param\u00e9terek ugyanolyan # form\u00e1tum\u00faak, mint az \"accel_chip\" param\u00e9ter. Csak az 'accel_chip' # vagy ez a k\u00e9t param\u00e9tert kell megadni. #max_smoothing: # Az egyes tengelyek maxim\u00e1lis bemeneti alak\u00edt\u00f3 sim\u00edt\u00e1sa az alak\u00edt\u00f3 # automatikus kalibr\u00e1l\u00e1sa sor\u00e1n (a 'SHAPER_CALIBRATE' paranccsal). # Alap\u00e9rtelmez\u00e9s szerint nincs megadva maxim\u00e1lis sim\u00edt\u00e1s. # L\u00e1sd a Measuring_Resonances \u00fatmutat\u00f3t. a funkci\u00f3 haszn\u00e1lat\u00e1nak # tov\u00e1bbi r\u00e9szletei\u00e9rt. #min_freq: 5 # Minim\u00e1lis frekvencia a rezonancia vizsg\u00e1lat\u00e1hoz. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5 Hz. #max_freq: 133.33 # Maxim\u00e1lis frekvencia a rezonancia vizsg\u00e1lat\u00e1hoz. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 133,33 Hz. #accel_per_hz: 75 # Ez a param\u00e9ter annak meghat\u00e1roz\u00e1s\u00e1ra szolg\u00e1l, hogy egy adott # frekvencia tesztel\u00e9s\u00e9hez milyen gyorsul\u00e1st haszn\u00e1ljunk: # accel = accel_per_hz * freq. Min\u00e9l nagyobb az \u00e9rt\u00e9k, ann\u00e1l nagyobb # a rezg\u00e9sek energi\u00e1ja. Az alap\u00e9rtelmezett \u00e9rt\u00e9kn\u00e9l alacsonyabbra is # be\u00e1ll\u00edthat\u00f3, ha a rezonanci\u00e1k t\u00fal er\u0151sek lesznek a nyomtat\u00f3n. # Az alacsonyabb \u00e9rt\u00e9kek azonban a nagyfrekvenci\u00e1s rezonanci\u00e1k # m\u00e9r\u00e9s\u00e9t pontatlanabb\u00e1 teszik. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 75 (mm/sec). #hz_per_sec: 1 # Meghat\u00e1rozza a teszt sebess\u00e9g\u00e9t. A [min_freq, max_freq] # tartom\u00e1nyban l\u00e9v\u0151 \u00f6sszes frekvencia tesztel\u00e9sekor a frekvencia # minden m\u00e1sodpercben hz_per_sec \u00e9rt\u00e9kkel n\u0151. A kis \u00e9rt\u00e9kek # lass\u00fav\u00e1 teszik a tesztet, a nagy \u00e9rt\u00e9kek pedig cs\u00f6kkentik a teszt # pontoss\u00e1g\u00e1t. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0 (Hz/sec == sec^-2).","title":"[resonance_tester]"},{"location":"Config_Reference.html#konfiguracios-fajl-segedletek","text":"","title":"Konfigur\u00e1ci\u00f3s f\u00e1jl seg\u00e9dletek"},{"location":"Config_Reference.html#board_pins","text":"Alaplap t\u0171 \u00e1lnevek (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t defini\u00e1lhatunk \"board_pins\" el\u0151taggal). Ezzel defini\u00e1lhat \u00e1lneveket a mikrokontroller t\u0171ihez. [board_pins my_aliases] mcu: mcu # Az \u00e1lneveket haszn\u00e1l\u00f3 mikrovez\u00e9rl\u0151k vessz\u0151vel elv\u00e1lasztott list\u00e1ja. # Az alap\u00e9rtelmez\u00e9s szerint az \u00e1lneveket a f\u0151 \"mcu\"-ra kell alkalmazni. aliases: aliases_<name>: # A \"name=value\" \u00e1lnevek vessz\u0151vel elv\u00e1lasztott list\u00e1ja, amelyet az # adott mikrovez\u00e9rl\u0151h\u00f6z kell l\u00e9trehozni. P\u00e9ld\u00e1ul az \"EXP1_1=PE6\" # egy \"EXP1_1\" \u00e1lnevet hoz l\u00e9tre a \"PE6\" t\u0171h\u00f6z. Ha azonban a \"value\" # a \"<>\" k\u00f6z\u00e9 van z\u00e1rva, akkor a \"name\" lefoglalt t\u0171k\u00e9nt j\u00f6n l\u00e9tre # (p\u00e9ld\u00e1ul az \"EXP1_9=<GND>\" az \"EXP1_9\"-et foglaln\u00e1 le). B\u00e1rmilyen # sz\u00e1m\u00fa \"aliases_\" karakterrel kezd\u0151d\u0151 opci\u00f3 megadhat\u00f3.","title":"[board_pins]"},{"location":"Config_Reference.html#include","text":"Include f\u00e1jl t\u00e1mogat\u00e1s. A nyomtat\u00f3 f\u0151 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1hoz tov\u00e1bbi konfigur\u00e1ci\u00f3s f\u00e1jlokat lehet csatolni. Helyettes\u00edt\u0151 karakterek is haszn\u00e1lhat\u00f3k (pl. \"configs/*.cfg\"). [include my_other_config.cfg]","title":"[include]"},{"location":"Config_Reference.html#duplicate_pin_override","text":"Ez az eszk\u00f6z lehet\u0151v\u00e9 teszi, hogy egyetlen mikrokontroller-t\u0171t t\u00f6bbsz\u00f6r defini\u00e1ljon egy konfigur\u00e1ci\u00f3s f\u00e1jlban a szok\u00e1sos hibajelent\u00e9s n\u00e9lk\u00fcl. Ez diagnosztikai \u00e9s hibakeres\u00e9si c\u00e9lokra szolg\u00e1l. Erre a szakaszra nincs sz\u00fcks\u00e9g ott, ahol a Klipper t\u00e1mogatja ugyanazon t\u0171 t\u00f6bbsz\u00f6ri haszn\u00e1lat\u00e1t, \u00e9s ennek a fel\u00fclb\u00edr\u00e1latnak a haszn\u00e1lata zavaros \u00e9s v\u00e1ratlan eredm\u00e9nyeket okozhat. [duplicate_pin_override] pins: # Azok a t\u0171k vessz\u0151vel elv\u00e1lasztott list\u00e1ja, amelyek t\u00f6bbsz\u00f6r # haszn\u00e1lhat\u00f3k egy konfigur\u00e1ci\u00f3s f\u00e1jlban norm\u00e1l hibajelent\u00e9s # n\u00e9lk\u00fcl. Ezt a param\u00e9tert meg kell adni.","title":"[duplicate_pin_override]"},{"location":"Config_Reference.html#targyasztal-szintezo-hardver","text":"","title":"T\u00e1rgyasztal szintez\u0151 hardver"},{"location":"Config_Reference.html#probe","text":"Z magass\u00e1gm\u00e9r\u0151 szonda. Ezt a szakaszt a Z magass\u00e1gm\u00e9r\u0151 hardver enged\u00e9lyez\u00e9s\u00e9hez lehet defini\u00e1lni. Ha ez a szakasz enged\u00e9lyezve van, a PROBE \u00e9s a QUERY_PROBE kiterjesztett G-k\u00f3d parancsok el\u00e9rhet\u0151v\u00e9 v\u00e1lnak. L\u00e1sd m\u00e9g a szonda kalibr\u00e1l\u00e1si \u00fatmutat\u00f3t . A szondaszekci\u00f3 l\u00e9trehoz egy virtu\u00e1lis \"probe:z_virtual_endstop\" t\u0171t is. A stepper_z endstop_pin-t erre a virtu\u00e1lis t\u0171re \u00e1ll\u00edthatjuk a cartesian st\u00edlus\u00fa nyomtat\u00f3kon, amelyek a szond\u00e1t haszn\u00e1lj\u00e1k a Z v\u00e9g\u00e1ll\u00e1s helyett. Ha a \"probe:z_virtual_endstop\" t\u00edpust haszn\u00e1ljuk, akkor ne defini\u00e1ljunk position_endsto-pot a stepper_z konfigur\u00e1ci\u00f3s szakaszban. [probe] pin: # Szonda \u00e9rz\u00e9kel\u00e9si t\u0171. Ha a t\u0171 m\u00e1s mikrokontrolleren van, mint a Z # l\u00e9ptet\u0151k\u00f6n, akkor enged\u00e9lyezi a \"multi-mcu homing\"-ot. # Ezt a param\u00e9tert meg kell adni. #deactivate_on_each_sample: True # Ez hat\u00e1rozza meg, hogy a Klippernek v\u00e9gre kell-e hajtania a deaktiv\u00e1l\u00f3 # G-k\u00f3dot minden egyes vizsg\u00e1lati k\u00eds\u00e9rlet k\u00f6z\u00f6tt, amikor t\u00f6bb vizsg\u00e1lati # sorozatot hajt v\u00e9gre. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #x_offset: 0.0 # A t\u00e1vols\u00e1g (mm-ben) a szonda \u00e9s a f\u00fav\u00f3ka k\u00f6z\u00f6tt az X tengely ment\u00e9n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #y_offset: 0.0 # A szonda \u00e9s a f\u00fav\u00f3ka k\u00f6z\u00f6tti t\u00e1vols\u00e1g (mm-ben) az Y tengely ment\u00e9n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. z_offset: # A t\u00e1rgyasztal \u00e9s a f\u00fav\u00f3ka k\u00f6z\u00f6tti t\u00e1vols\u00e1g (mm-ben), amikor a szonda kiold. # Ezt a param\u00e9tert meg kell adni. #speed: 5.0 # A Z tengely sebess\u00e9ge (mm/sec-ben) tapint\u00e1skor. # Az alap\u00e9rtelmezett 5 mm/sec. #samples: 1 # Az egyes pontok m\u00e9r\u00e9s\u00e9nek sz\u00e1ma. # A vizsg\u00e1lt Z-\u00e9rt\u00e9kek \u00e1tlagol\u00e1sra ker\u00fclnek. # Az alap\u00e9rtelmezett az 1-szeri m\u00e9r\u00e9s. #sample_retract_dist: 2.0 # A nyomtat\u00f3fej felemel\u00e9s\u00e9nek t\u00e1vols\u00e1ga (mm-ben) az egyes m\u00e9r\u00e9sek # k\u00f6z\u00f6tt (egyn\u00e9l t\u00f6bbsz\u00f6ri m\u00e9r\u00e9s eset\u00e9n). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 2 mm. #lift_speed: # A Z tengely sebess\u00e9ge (mm/sec-ben) a szonda felemel\u00e9sekor a m\u00e9r\u00e9sek # k\u00f6z\u00f6tt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k ugyanaz, mint a \u201espeed\u201d param\u00e9tern\u00e9l. #samples_result: average # A sz\u00e1m\u00edt\u00e1si m\u00f3dszer t\u00f6bbsz\u00f6ri m\u00e9r\u00e9s eset\u00e9n \u201emedian\u201d vagy \u201eaverage\u201d. # Az alap\u00e9rtelmezett az average. #samples_tolerance: 0.100 # Az a maxim\u00e1lis Z t\u00e1vols\u00e1g (mm-ben), amellyel egy minta elt\u00e9rhet m\u00e1s # mint\u00e1kt\u00f3l. Ha ezt a t\u0171r\u00e9shat\u00e1rt t\u00fall\u00e9pik, akkor vagy hib\u00e1t jelez, vagy a # k\u00eds\u00e9rlet \u00fajraindul (l\u00e1sd: samples_tolerance_retries). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a 0,100 mm. #samples_tolerance_retries: 0 # Az \u00fajrapr\u00f3b\u00e1lkoz\u00e1sok sz\u00e1ma, ha olyan m\u00e9r\u00e9st csin\u00e1l, amely meghaladja a # samples_tolerance \u00e9rt\u00e9ket. \u00dajrapr\u00f3b\u00e1lkoz\u00e1skor az \u00f6sszes jelenlegi m\u00e9r\u00e9st # eldobja, \u00e9s a m\u00e9r\u00e9si k\u00eds\u00e9rlet \u00fajraindul. Ha a megadott sz\u00e1m\u00fa # \u00fajrapr\u00f3b\u00e1lkoz\u00e1s sor\u00e1n nem \u00e9rkezik \u00e9rv\u00e9nyes m\u00e9r\u00e9sk\u00e9szlet, akkor # hiba\u00fczenet jelenik meg. Az alap\u00e9rtelmezett nulla, ami hib\u00e1t okoz az els\u0151 # m\u00e9r\u00e9sen, amely meghaladja a samples_tolerance \u00e9rt\u00e9ket. #activate_gcode: # Az egyes m\u00e9r\u00e9si k\u00eds\u00e9rletek el\u0151tt v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. # L\u00e1sd a docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d form\u00e1tumhoz. Ez # akkor lehet hasznos, ha a szond\u00e1t valamilyen m\u00f3don aktiv\u00e1lni kell. Ne # adj ki itt olyan parancsot, amely mozgatja a nyomtat\u00f3fejet (pl. G1). # Az alap\u00e9rtelmez\u00e9s szerint nem fut semmilyen speci\u00e1lis G-k\u00f3d parancs # aktiv\u00e1l\u00e1skor. #deactivate_gcode: # Az egyes m\u00e9r\u00e9si k\u00eds\u00e9rletek befejez\u00e9se ut\u00e1n v\u00e9grehajtand\u00f3 G-k\u00f3d # parancsok list\u00e1ja. L\u00e1sd a docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d # form\u00e1tumhoz. Ne adj ki itt olyan parancsot, amely mozgatja a # nyomtat\u00f3fejet. Az alap\u00e9rtelmez\u00e9s az, hogy deaktiv\u00e1l\u00e1skor ne futtassunk # semmilyen speci\u00e1lis G-k\u00f3d parancsot.","title":"[probe]"},{"location":"Config_Reference.html#bltouch","text":"BLTouch szonda. Ezt a szakaszt (a szondaszakasz helyett) a BLTouch szonda enged\u00e9lyez\u00e9s\u00e9hez lehet defini\u00e1lni. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a BL-Touch \u00fatmutat\u00f3 \u00e9s a parancsreferencia c\u00edm\u0171 dokumentumot. Egy virtu\u00e1lis \"probe:z_virtual_endstop\" t\u0171 is l\u00e9trej\u00f6n (a r\u00e9szleteket l\u00e1sd a \"probe\" szakaszban). [bltouch] sensor_pin: # A BLTouch \u00e9rz\u00e9kel\u0151 \u00e9rintkez\u0151j\u00e9hez csatlakoztatott t\u0171. A legt\u00f6bb # BLTouch eszk\u00f6z megk\u00f6veteli az \u00e9rz\u00e9kel\u0151 \u00e9rintkez\u0151j\u00e9nek felh\u00faz\u00e1s\u00e1t # (a t\u0171n\u00e9v el\u00e9 illessze be a \"^\" karaktert). # Ezt a param\u00e9tert meg kell adni. control_pin: # A BLTouch vez\u00e9rl\u0151t\u0171j\u00e9hez csatlakoztatott t\u0171. # Ezt a param\u00e9tert meg kell adni. #pin_move_time: 0.680 # Az az id\u0151 (m\u00e1sodpercben), ameddig v\u00e1rni kell, am\u00edg a BLTouch t\u0171 # felfel\u00e9 vagy lefel\u00e9 mozog. Az alap\u00e9rtelmezett 0,680 m\u00e1sodperc. #stow_on_each_sample: True # Ez hat\u00e1rozza meg, hogy a Klippernek utas\u00edtania kell-e a t\u0171t, hogy # mozogjon felfel\u00e9 az egyes m\u00e9r\u00e9si k\u00eds\u00e9rletek k\u00f6z\u00f6tt, amikor t\u00f6bb # m\u00e9r\u00e9si sorozatot hajt v\u00e9gre. Miel\u0151tt False \u00e9rt\u00e9kre \u00e1ll\u00edtan\u00e1, olvasd # el a docs/BLTouch.md utas\u00edt\u00e1sait. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #probe_with_touch_mode: False # Ha ez True \u00e9rt\u00e9kre van \u00e1ll\u00edtva, akkor a Klipper \"touch_mode\" # m\u00f3dban vizsg\u00e1lja az eszk\u00f6zt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k False # (tapint\u00e1s \"pin_down\" m\u00f3dban). #pin_up_reports_not_triggered: True # \u00c1ll\u00edtsd be, hogy a BLTouch k\u00f6vetkezetesen \u201enot triggered\u201d # \u00e1llapotban jelentse-e a m\u00e9r\u00e9st a sikeres \u201epin_up\u201d parancs ut\u00e1n. # Ennek True-nak kell lennie minden eredeti BLTouch eszk\u00f6zn\u00e9l. # Miel\u0151tt False \u00e9rt\u00e9kre \u00e1ll\u00edtan\u00e1, olvasd el a docs/BLTouch.md # utas\u00edt\u00e1sait. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #pin_up_touch_mode_reports_triggered: True # \u00c1ll\u00edtsd be, hogy a BLTouch k\u00f6vetkezetesen \"triggered\" \u00e1llapotot # jelentse-e a \"pin_up\" parancs k\u00f6vesse a \"touch_mode\" parancsot. # Ennek True-nak kell lennie minden eredeti BLTouch eszk\u00f6zn\u00e9l. # Miel\u0151tt False \u00e9rt\u00e9kre \u00e1ll\u00edtan\u00e1, olvasd el a docs/BLTouch.md # utas\u00edt\u00e1sait. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #set_output_mode: # K\u00e9rj egy adott \u00e9rz\u00e9kel\u0151t\u0171s kimeneti m\u00f3dot a BLTouch V3.0 # (\u00e9s \u00fajabb) k\u00e9sz\u00fcl\u00e9ken. Ezt a be\u00e1ll\u00edt\u00e1st nem szabad m\u00e1s t\u00edpus\u00fa # szond\u00e1kon haszn\u00e1lni. \u00c1ll\u00edtsd \"5V\"-ra, ha 5 V-os \u00e9rz\u00e9kel\u0151t\u0171s # kimenetet k\u00edv\u00e1n k\u00e9rni (csak akkor haszn\u00e1ld, ha a vez\u00e9rl\u0151k\u00e1rty\u00e1nak # 5 V-os \u00fczemm\u00f3dra van sz\u00fcks\u00e9ge, \u00e9s 5 V-ot toler\u00e1l a bemeneti # jelvezet\u00e9k\u00e9n). \u00c1ll\u00edtsd \u201eOD\u201d \u00e9rt\u00e9kre, hogy az \u00e9rz\u00e9kel\u0151 \u00e9rintkez\u0151j\u00e9nek # kimenete nyitott leereszt\u00e9si m\u00f3dot haszn\u00e1ljon. # Az alap\u00e9rtelmezett az, hogy nem k\u00e9r kimeneti m\u00f3dot. #x_offset: #y_offset: #z_offset: #speed: #lift_speed: #samples: #sample_retract_dist: #samples_result: #samples_tolerance: #samples_tolerance_retries: # A param\u00e9terekkel kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a \"szonda\" r\u00e9szt.","title":"[bltouch]"},{"location":"Config_Reference.html#smart_effector","text":"A \"Smart Effector\" a Duet3d-t\u0151l egy Z-szond\u00e1t val\u00f3s\u00edt meg egy er\u0151\u00e9rz\u00e9kel\u0151 seg\u00edts\u00e9g\u00e9vel. Ezt a r\u00e9szt a [probe] helyett defini\u00e1lhatjuk a Smart Effector specifikus funkci\u00f3inak enged\u00e9lyez\u00e9s\u00e9hez. Ez lehet\u0151v\u00e9 teszi a fut\u00e1sidej\u0171 parancsok haszn\u00e1lat\u00e1t is a Smart Effector param\u00e9tereinek fut\u00e1sidej\u0171 be\u00e1ll\u00edt\u00e1s\u00e1hoz. [smart_effector] pin: # A Smart Effector Z Probe kimeneti t\u0171j\u00e9hez (5. csap) csatlakoztatott t\u0171. Vedd # figyelembe, hogy a lapon l\u00e9v\u0151 pullup ellen\u00e1ll\u00e1s \u00e1ltal\u00e1ban nem sz\u00fcks\u00e9ges. # Ha azonban a kimeneti t\u0171n pullup ellen\u00e1ll\u00e1ssal csatlakoztatj\u00e1k a lapon # l\u00e9v\u0151 t\u0171h\u00f6z, akkor ennek az ellen\u00e1ll\u00e1snak nagy \u00e9rt\u00e9k\u0171nek kell lennie # (pl. 10K Ohm vagy t\u00f6bb). N\u00e9h\u00e1ny lapon alacsony \u00e9rt\u00e9k\u0171 pullup ellen\u00e1ll\u00e1s # van a Z szonda bemenet\u00e9n, ami val\u00f3sz\u00edn\u0171leg egy mindig kioldott szonda # \u00e1llapotot fog eredm\u00e9nyezni. Ebben az esetben csatlakoztassa a # Smart Effector-t a k\u00f6vetkez\u0151h\u00f6z a k\u00e1rtya egy m\u00e1sik t\u0171j\u00e9hez. # Ez a param\u00e9ter sz\u00fcks\u00e9ges. #control_pin: # A Smart Effector vez\u00e9rl\u0151 bemeneti pinj\u00e9hez (7-es pin) csatlakoztatott pin. # Ha van, a Smart Effector \u00e9rz\u00e9kenys\u00e9g programoz\u00e1si parancsai v\u00e1lnak # el\u00e9rhet\u0151v\u00e9. #probe_accel: # Ha be van \u00e1ll\u00edtva, korl\u00e1tozza a tapogat\u00f3 mozg\u00e1sok gyorsul\u00e1s\u00e1t # (mm/sec^2-ben). A hirtelen nagy gyorsul\u00e1s a tapogat\u00f3 mozg\u00e1s kezdet\u00e9n # t\u00e9ves tapint\u00e1sind\u00edt\u00e1st okozhat, k\u00fcl\u00f6n\u00f6sen, ha a hotend neh\u00e9z. Ennek # megakad\u00e1lyoz\u00e1s\u00e1ra sz\u00fcks\u00e9g lehet a gyorsul\u00e1s cs\u00f6kkent\u00e9s\u00e9re a # szond\u00e1z\u00f3 mozg\u00e1sok gyorsul\u00e1s\u00e1val ezzel a param\u00e9terrel. #recovery_time: 0.4 # Az utaz\u00e1si mozg\u00e1sok \u00e9s a tapogat\u00f3 mozg\u00e1sok k\u00f6z\u00f6tti k\u00e9sleltet\u00e9s # m\u00e1sodpercben. A szond\u00e1z\u00e1s el\u0151tti gyors mozgat\u00e1s t\u00e9ves # szondakapcsol\u00e1st eredm\u00e9nyezhet. Ez \"A szonda a mozg\u00e1st megel\u0151z\u0151en # kioldott\" hib\u00e1t okozhat, ha nincs k\u00e9sleltet\u00e9s be\u00e1ll\u00edtva. # A 0 \u00e9rt\u00e9k kikapcsolja a helyre\u00e1ll\u00edt\u00e1si k\u00e9sleltet\u00e9st. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,4. #x_offset: #y_offset: # Nem kell be\u00e1ll\u00edtani (vagy 0-ra kell \u00e1ll\u00edtani). z_offset: # A szonda kiold\u00e1si magass\u00e1ga. Kezd -0,1 (mm) \u00e9rt\u00e9kkel, \u00e9s k\u00e9s\u0151bb # \u00e1ll\u00edtsd be a k\u00f6vetkez\u0151vel `PROBE_CALIBRATE` paranccsal. # Ezt a param\u00e9tert meg kell adni. #speed: # A Z tengely sebess\u00e9ge (mm/sec-ben) tapogat\u00e1skor. Javasoljuk, hogy a # tapint\u00e1si sebess\u00e9get 20 mm/sec sebess\u00e9ggel kezdj\u00fck, \u00e9s sz\u00fcks\u00e9g # szerint \u00e1ll\u00edtsuk be, hogy jav\u00edtsuk a a tapint\u00e1s kiold\u00e1s\u00e1nak pontoss\u00e1g\u00e1t # \u00e9s megism\u00e9telhet\u0151s\u00e9g\u00e9t. #samples: #sample_retract_dist: #samples_result: #samples_tolerance: #samples_tolerance_retries: #activate_gcode: #deactivate_gcode: #deactivate_on_each_sample: # A fenti param\u00e9terekkel kapcsolatos tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt # l\u00e1sd a \"szonda\" r\u00e9szt.","title":"[smart_effector]"},{"location":"Config_Reference.html#tovabbi-leptetomotorok-es-extruderek","text":"","title":"Tov\u00e1bbi l\u00e9ptet\u0151motorok \u00e9s extruderek"},{"location":"Config_Reference.html#stepper_z1","text":"T\u00f6bb l\u00e9ptet\u0151motoros tengelyek. Egy cartesian st\u00edlus\u00fa nyomtat\u00f3n\u00e1l az adott tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 tov\u00e1bbi konfigur\u00e1ci\u00f3s blokkokkal rendelkezhet, amelyek olyan l\u00e9ptet\u0151ket hat\u00e1roznak meg, amelyeket az els\u0151dleges l\u00e9ptet\u0151vel egy\u00fctt kell l\u00e9ptetni. B\u00e1rmennyi szakasz defini\u00e1lhat\u00f3 1-t\u0151l kezd\u0151d\u0151 numerikus ut\u00f3taggal (p\u00e9ld\u00e1ul \"stepper_z1\", \"stepper_z2\" stb.). [stepper_z1] #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: # A fenti param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd a \"l\u00e9ptet\u0151\" r\u00e9szt. #endstop_pin: # Ha egy endstop_pin defini\u00e1lva van a kieg\u00e9sz\u00edt\u0151 l\u00e9ptet\u0151h\u00f6z, akkor # a l\u00e9ptet\u0151 visszat\u00e9r, am\u00edg az v\u00e9g\u00e1ll\u00e1s ki nem v\u00e1lt. Ellenkez\u0151 esetben # a l\u00e9ptet\u0151 mindaddig visszat\u00e9r, am\u00edg a tengely els\u0151dleges # l\u00e9ptet\u0151j\u00e9nek v\u00e9g\u00e1ll\u00e1skapcsol\u00f3ja ki nem v\u00e1lt.","title":"[stepper_z1]"},{"location":"Config_Reference.html#extruder1","text":"T\u00f6bb extruderes nyomtat\u00f3 eset\u00e9n minden tov\u00e1bbi extruder ut\u00e1n adj hozz\u00e1 egy \u00faj extruder szakaszt. A tov\u00e1bbi extruder szakaszok neve legyen \"extruder1\", \"extruder2\", \"extruder3\", \u00e9s \u00edgy tov\u00e1bb. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"extruder\" szakaszban. L\u00e1sd a sample-multi-extruder.cfg p\u00e9ldakonfigur\u00e1ci\u00f3t. [extruder1] #step_pin: #dir_pin: #... # Tekintsd meg az \"extruder\" r\u00e9szt az el\u00e9rhet\u0151 l\u00e9ptet\u0151 \u00e9s # f\u0171t\u0151param\u00e9terek\u00e9rt. #shared_heater: # Ez az opci\u00f3 elavult, \u00e9s t\u00f6bb\u00e9 nem kell megadni.","title":"[extruder1]"},{"location":"Config_Reference.html#dual_carriage","text":"Az egy tengelyen k\u00e9t kocsival rendelkez\u0151 cartesian nyomtat\u00f3k t\u00e1mogat\u00e1sa. Az akt\u00edv kocsit a SET_DUAL_CARRIAGE kiterjesztett G-k\u00f3d parancs seg\u00edts\u00e9g\u00e9vel \u00e1ll\u00edthatjuk be. A \"SET_DUAL_CARRIAGE CARRIAGE=1\" parancs az ebben a szakaszban meghat\u00e1rozott kocsit aktiv\u00e1lja (a CARRIAGE=0 az els\u0151dleges kocsi aktiv\u00e1l\u00e1s\u00e1t \u00e1ll\u00edtja vissza). A kett\u0151s kocsit\u00e1mogat\u00e1st \u00e1ltal\u00e1ban extra extruderekkel kombin\u00e1lj\u00e1k. A SET_DUAL_CARRIAGE parancsot gyakran az ACTIVATE_EXTRUDER paranccsal egyidej\u0171leg h\u00edvj\u00e1k meg. \u00dcgyelj arra, hogy a kocsikat a deaktiv\u00e1l\u00e1s sor\u00e1n parkol\u00f3 \u00e1ll\u00e1sba k\u00fcldje. L\u00e1sd a sample-idex.cfg p\u00e9ldakonfigur\u00e1ci\u00f3t. [dual_carriage] axis: # Azon a tengelyen, amelyen ez az extra kocsi van (X vagy Y). # Ezt a param\u00e9tert meg kell adni. #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: #endstop_pin: #position_endstop: #position_min: #position_max: # A fenti param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd a \"l\u00e9ptet\u0151\" r\u00e9szt.","title":"[dual_carriage]"},{"location":"Config_Reference.html#extruder_stepper","text":"Az extruder mozg\u00e1s\u00e1hoz szinkroniz\u00e1lt tov\u00e1bbi l\u00e9ptet\u0151k t\u00e1mogat\u00e1sa (tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3 \"extruder_stepper\" el\u0151taggal). Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancshivatkoz\u00e1s dokumentumot. [extruder_stepper my_extra_stepper] extruder: # Az extruder, amelyhez ez a l\u00e9ptet\u0151 szinkroniz\u00e1lva van. Ha ez # \u00fcres karakterl\u00e1ncra van \u00e1ll\u00edtva, akkor a l\u00e9ptet\u0151 nem lesz # szinkroniz\u00e1lva az extruderrel. Ezt a param\u00e9tert meg kell adni. #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: # A fenti param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd a \"l\u00e9ptet\u0151\" r\u00e9szt.","title":"[extruder_stepper]"},{"location":"Config_Reference.html#manual_stepper","text":"K\u00e9zi l\u00e9ptet\u0151k (tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3 \"manual_stepper\" el\u0151taggal). Ezeket a l\u00e9ptet\u0151ket a MANUAL_STEPPER G-k\u00f3d parancs vez\u00e9rli. P\u00e9ld\u00e1ul: \"MANUAL_STEPPER STEPPER=my_stepper MOVE=10 SPEED=5\". A MANUAL_STEPPER parancs le\u00edr\u00e1s\u00e1t l\u00e1sd a G-k\u00f3dok f\u00e1jlban. A l\u00e9ptet\u0151k nem kapcsol\u00f3dnak a nyomtat\u00f3 norm\u00e1l kinematik\u00e1j\u00e1hoz. [manual_stepper my_stepper] #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: # A param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"l\u00e9ptet\u0151\" r\u00e9szben. #velocity: # \u00c1ll\u00edtsd be a l\u00e9ptet\u0151 alap\u00e9rtelmezett sebess\u00e9g\u00e9t (mm/sec-ben). # Ezt az \u00e9rt\u00e9ket haszn\u00e1lja a rendszer, ha a MANUAL_STEPPER parancs nem # ad meg SPEED param\u00e9tert. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5 mm/sec. #accel: # \u00c1ll\u00edtsd be a l\u00e9ptet\u0151 alap\u00e9rtelmezett gyorsul\u00e1s\u00e1t (mm/sec^2-en). A nulla # gyorsul\u00e1s nem eredm\u00e9nyez gyorsul\u00e1st. Ezt az \u00e9rt\u00e9ket haszn\u00e1lja a rendszer, # ha a MANUAL_STEPPER parancs nem ad meg ACCEL param\u00e9tert. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #endstop_pin: # V\u00e9g\u00e1ll\u00e1skapcsol\u00f3 csatlakoz\u00e1si t\u0171. Ha meg van adva, akkor egy # STOP_ON_ENDSTOP param\u00e9ter hozz\u00e1ad\u00e1s\u00e1val a MANUAL_STEPPER # mozg\u00e1sparancsokhoz \"kezd\u0151pont felv\u00e9teli mozg\u00e1sok\" hajthat\u00f3k v\u00e9gre.","title":"[manual_stepper]"},{"location":"Config_Reference.html#egyedi-futotestek-es-erzekelok","text":"","title":"Egyedi f\u0171t\u0151testek \u00e9s \u00e9rz\u00e9kel\u0151k"},{"location":"Config_Reference.html#verify_heater","text":"A f\u0171t\u00e9s \u00e9s a h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 ellen\u0151rz\u00e9se. A f\u0171t\u0151elemek ellen\u0151rz\u00e9se automatikusan enged\u00e9lyezve van minden olyan f\u0171t\u0151elemhez, amely a nyomtat\u00f3n be van \u00e1ll\u00edtva. Az alap\u00e9rtelmezett be\u00e1ll\u00edt\u00e1sok m\u00f3dos\u00edt\u00e1s\u00e1hoz haszn\u00e1ld a verify_heater szakaszokat. [verify_heater heater_config_name] #max_error: 120 # A maxim\u00e1lis \u201ehalmozott h\u0151m\u00e9rs\u00e9kleti hiba\u201d a hiba emel\u00e9se el\u0151tt. # A kisebb \u00e9rt\u00e9kek szigor\u00fabb ellen\u0151rz\u00e9st eredm\u00e9nyeznek, a nagyobb # \u00e9rt\u00e9kek pedig t\u00f6bb id\u0151t biztos\u00edtanak a hibajelent\u00e9s el\u0151tt. # Pontosabban, a h\u0151m\u00e9rs\u00e9kletet m\u00e1sodpercenk\u00e9nt egyszer ellen\u0151rzik, # \u00e9s ha k\u00f6zel van a c\u00e9lh\u0151m\u00e9rs\u00e9klethez, akkor a bels\u0151 \"hibasz\u00e1ml\u00e1l\u00f3\" # null\u00e1z\u00f3dik. Ellenkez\u0151 esetben, ha a h\u0151m\u00e9rs\u00e9klet a c\u00e9ltartom\u00e1ny alatt # van, akkor a sz\u00e1ml\u00e1l\u00f3t annyival n\u00f6velj\u00fck, amennyivel a jelentett # h\u0151m\u00e9rs\u00e9klet elt\u00e9r ett\u0151l a tartom\u00e1nyt\u00f3l. Ha a sz\u00e1ml\u00e1l\u00f3 meghaladja ezt # a \"max_error\" \u00e9rt\u00e9ket, hiba\u00fczenet jelenik meg. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 120. #check_gain_time: # Ez szab\u00e1lyozza a f\u0171t\u0151elem ellen\u0151rz\u00e9s\u00e9t a kezdeti f\u0171t\u00e9s sor\u00e1n. # A kisebb \u00e9rt\u00e9kek szigor\u00fabb ellen\u0151rz\u00e9st eredm\u00e9nyeznek, a nagyobb # \u00e9rt\u00e9kek pedig t\u00f6bb id\u0151t biztos\u00edtanak a hibajelent\u00e9s el\u0151tt. # Pontosabban, a kezdeti f\u0171t\u00e9s sor\u00e1n, am\u00edg a f\u0171t\u0151elem h\u0151m\u00e9rs\u00e9klete # ezen id\u0151kereten bel\u00fcl (m\u00e1sodpercben van megadva) megemelkedik, # a bels\u0151 \"hibasz\u00e1ml\u00e1l\u00f3\" null\u00e1z\u00f3dik. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 20 # m\u00e1sodperc az extruder-ekn\u00e9l \u00e9s 60 m\u00e1sodperc a heater_bed # eset\u00e9ben. #hysteresis: 5 # A maxim\u00e1lis h\u0151m\u00e9rs\u00e9klet-k\u00fcl\u00f6nbs\u00e9g (Celsius fokban) a # c\u00e9lh\u0151m\u00e9rs\u00e9klethez k\u00e9pest, amely a c\u00e9l tartom\u00e1ny\u00e1ban van. Ez # szab\u00e1lyozza a max_error tartom\u00e1ny ellen\u0151rz\u00e9s\u00e9t. Ritka az \u00e9rt\u00e9k # testreszab\u00e1sa. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #heating_gain: 2 # Az a minim\u00e1lis h\u0151m\u00e9rs\u00e9klet (Celsiusban), amellyel a f\u0171t\u00e9snek # n\u00f6velnie kell a check_gain_time ellen\u0151rz\u00e9s sor\u00e1n. # Ritka az \u00e9rt\u00e9k testreszab\u00e1sa. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 2.","title":"[verify_heater]"},{"location":"Config_Reference.html#homing_heaters","text":"Eszk\u00f6z a f\u0171t\u0151berendez\u00e9sek letilt\u00e1s\u00e1ra, amikor egy tengely kezd\u0151pont felv\u00e9telt vagy szintez\u00e9st csin\u00e1l. [homing_heaters] #steppers: # A f\u0171t\u0151elemek vessz\u0151vel elv\u00e1lasztott list\u00e1ja, amelyek miatt le kell # tiltani a f\u0171t\u00e9st. Az alap\u00e9rtelmez\u00e9s az, hogy letiltja a f\u0171t\u0151elemeket # minden ind\u00edt\u00e1si/m\u00e9r\u00e9si l\u00e9p\u00e9shez. # Tipikus p\u00e9lda: stepper_z #heaters: # A f\u0171t\u0151testek vessz\u0151vel elv\u00e1lasztott list\u00e1ja, amelyet le kell tiltani # az elhelyez\u00e9si/m\u00e9r\u00e9si l\u00e9p\u00e9sek sor\u00e1n. Az alap\u00e9rtelmezett az \u00f6sszes # f\u0171t\u0151elem letilt\u00e1sa. Tipikus p\u00e9lda: extruder, heater_bed","title":"[homing_heaters]"},{"location":"Config_Reference.html#thermistor","text":"Egy\u00e9ni termisztorok (tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3 \"termisztor\" el\u0151taggal). Egy\u00e9ni termisztor haszn\u00e1lhat\u00f3 a f\u0171t\u0151berendez\u00e9s konfigur\u00e1ci\u00f3s szakasz\u00e1nak sensor_type mez\u0151j\u00e9ben. (Ha p\u00e9ld\u00e1ul egy \"[thermistor my_thermistor]\" szekci\u00f3t defini\u00e1lunk, akkor a f\u0171t\u0151elem defini\u00e1l\u00e1sakor haszn\u00e1lhatjuk a \"sensor_type: my_thermistor\" mez\u0151t.). \u00dcgyelj arra, hogy a termisztor szekci\u00f3t a konfigur\u00e1ci\u00f3s f\u00e1jlban az els\u0151 f\u0171t\u0151szekci\u00f3ban val\u00f3 haszn\u00e1lata f\u00f6l\u00e9 helyezze. [thermistor my_thermistor] #temperature1: #resistance1: #temperature2: #resistance2: #temperature3: #resistance3: # H\u00e1rom ellen\u00e1ll\u00e1sm\u00e9r\u00e9s (ohmban) adott h\u0151m\u00e9rs\u00e9kleten (Celsiusban). # A h\u00e1rom m\u00e9r\u00e9st a termisztor Steinhart-Hart egy\u00fctthat\u00f3inak # kisz\u00e1m\u00edt\u00e1s\u00e1hoz haszn\u00e1ljuk fel. Ezeket a param\u00e9tereket meg kell adni, # ha Steinhart-Hartot haszn\u00e1lunk a termisztor meghat\u00e1roz\u00e1s\u00e1hoz. #beta: # Alternat\u00edv megold\u00e1sk\u00e9nt a temperature1, resistance1, \u00e9s beta # megadhat\u00f3 a termisztor param\u00e9tereinek meghat\u00e1roz\u00e1s\u00e1hoz. Ezt a # param\u00e9tert akkor kell megadni, ha \"beta\"-t haszn\u00e1l a termisztor # meghat\u00e1roz\u00e1s\u00e1hoz.","title":"[thermistor]"},{"location":"Config_Reference.html#adc_temperature","text":"Egyedi ADC h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"adc_temperature\" el\u0151taggal). Ez lehet\u0151v\u00e9 teszi egy olyan egy\u00e9ni h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 defini\u00e1l\u00e1s\u00e1t, amely egy fesz\u00fclts\u00e9get m\u00e9r egy anal\u00f3g-digit\u00e1lis \u00e1talak\u00edt\u00f3 (ADC) t\u0171n, \u00e9s line\u00e1ris interpol\u00e1ci\u00f3t haszn\u00e1l a konfigur\u00e1lt h\u0151m\u00e9rs\u00e9klet/fesz\u00fclts\u00e9g (vagy h\u0151m\u00e9rs\u00e9klet/ellen\u00e1ll\u00e1s) m\u00e9r\u00e9sek k\u00f6z\u00f6tt a h\u0151m\u00e9rs\u00e9klet meghat\u00e1roz\u00e1s\u00e1hoz. Az \u00edgy kapott \u00e9rz\u00e9kel\u0151 sensor_type-k\u00e9nt haszn\u00e1lhat\u00f3 egy f\u0171t\u0151szekci\u00f3ban. (Ha p\u00e9ld\u00e1ul egy \"[adc_temperature my_sensor]\" szekci\u00f3t defini\u00e1lunk, akkor egy f\u0171t\u0151elem defini\u00e1l\u00e1sakor haszn\u00e1lhatjuk a \"sensor_type: my_sensor\" szekci\u00f3t). \u00dcgyelj arra, hogy a szenzor szekci\u00f3t a config f\u00e1jlban az els\u0151 felhaszn\u00e1l\u00e1sa f\u00f6l\u00e9 helyezze a f\u0171t\u0151szekci\u00f3ban. [adc_temperature my_sensor] #temperature1: #voltage1: #temperature2: #voltage2: #... # H\u0151m\u00e9rs\u00e9kletek (Celsiusban) \u00e9s fesz\u00fclts\u00e9gek (V-ban) k\u00e9szlete referenciak\u00e9nt # a h\u0151m\u00e9rs\u00e9klet konvert\u00e1l\u00e1sakor. Az \u00e9rz\u00e9kel\u0151t haszn\u00e1l\u00f3 f\u0171t\u0151r\u00e9sz az adc_voltage # \u00e9s a voltage_offset param\u00e9tereket is megadhatja az ADC fesz\u00fclts\u00e9g meghat\u00e1roz\u00e1s\u00e1hoz # (a r\u00e9szletek\u00e9rt l\u00e1sd a \"\u00c1ltal\u00e1nos h\u0151m\u00e9rs\u00e9kleter\u0151s\u00edt\u0151k\" r\u00e9szt). # Legal\u00e1bb k\u00e9t m\u00e9r\u00e9st kell megadni. #temperature1: #resistance1: #temperature2: #resistance2: #... # Alternat\u00edvak\u00e9nt megadhatunk egy sorban h\u0151m\u00e9rs\u00e9kletet (Celsiusban) is # \u00e9s ellen\u00e1ll\u00e1st (Ohmban), hogy referenciak\u00e9nt haszn\u00e1lhassuk, amikor \u00e1talak\u00edtunk egy # h\u0151m\u00e9rs\u00e9kletet. Ezt az \u00e9rz\u00e9kel\u0151t haszn\u00e1l\u00f3 f\u0171t\u0151szekci\u00f3ban megadhatunk egy # pullup_resistor param\u00e9tert (a r\u00e9szleteket l\u00e1sd az \"extruder\" szakaszban). # A c\u00edmen legal\u00e1bb k\u00e9t m\u00e9r\u00e9st kell megadni.","title":"[adc_temperature]"},{"location":"Config_Reference.html#heater_generic","text":"\u00c1ltal\u00e1nos f\u0171t\u0151testek (tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3 a \"heater_generic\" el\u0151taggal). Ezek a f\u0171t\u0151berendez\u00e9sek a standard f\u0171t\u0151berendez\u00e9sekhez (extruderek, f\u0171t\u00f6tt t\u00e1rgyasztal) hasonl\u00f3an viselkednek. A SET_HEATER_TEMPERATURE paranccsal (l\u00e1sd a G-k\u00f3dok dokumentumban) \u00e1ll\u00edthatjuk be a c\u00e9lh\u0151m\u00e9rs\u00e9kletet. [heater_generic my_generic_heater] #gcode_id: # A h\u0151m\u00e9rs\u00e9klet jelent\u00e9s\u00e9n\u00e9l az M105 parancsban # haszn\u00e1land\u00f3 azonos\u00edt\u00f3. # Ezt a param\u00e9tert meg kell adni. #heater_pin: #max_power: #sensor_type: #sensor_pin: #smooth_time: #control: #pid_Kp: #pid_Ki: #pid_Kd: #pwm_cycle_time: #min_temp: #max_temp: # A fenti param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz # l\u00e1sd az \"extruder\" r\u00e9szt.","title":"[heater_generic]"},{"location":"Config_Reference.html#temperature_sensor","text":"\u00c1ltal\u00e1nos h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k. Tetsz\u0151leges sz\u00e1m\u00fa tov\u00e1bbi h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151t lehet defini\u00e1lni, amelyek az M105 parancson kereszt\u00fcl jelentenek. [temperature_sensor my_sensor] #sensor_type: #sensor_pin: #min_temp: #max_temp: # A fenti param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd az # \"extruder\" r\u00e9szt. #gcode_id: # L\u00e1sd a \"heater_generic\" r\u00e9szt a param\u00e9ter # meghat\u00e1roz\u00e1s\u00e1hoz.","title":"[temperature_sensor]"},{"location":"Config_Reference.html#homerseklet-erzekelok","text":"A Klipper sz\u00e1mos t\u00edpus\u00fa h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 defin\u00edci\u00f3j\u00e1t tartalmazza. Ezek az \u00e9rz\u00e9kel\u0151k b\u00e1rmely olyan konfigur\u00e1ci\u00f3s szakaszban haszn\u00e1lhat\u00f3k, amely h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151t ig\u00e9nyel (p\u00e9ld\u00e1ul az [extruder] vagy a [heater_bed] szakaszban).","title":"H\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k"},{"location":"Config_Reference.html#kozos-termisztorok","text":"K\u00f6z\u00f6ns\u00e9ges termisztorok. A k\u00f6vetkez\u0151 param\u00e9terek \u00e1llnak rendelkez\u00e9sre azokban a f\u0171t\u0151szakaszban, amelyek ezen \u00e9rz\u00e9kel\u0151k valamelyik\u00e9t haszn\u00e1lj\u00e1k. sensor_type: # Az egyik \"EPCOS 100K B57560G104F\", \"ATC Semitec 104GT-2\", # \"ATC Semitec 104NT-4-R025H42G\", \"Generic 3950\", # \"Honeywell 100K 135-104LAG-J01\", \"NTC 100K MGB18-104F39050L32\", # \"SliceEngineering 450\", vagy \"TDK NTCG104LH104JT1\" sensor_pin: # Anal\u00f3g bemeneti \u00e9rintkez\u0151 csatlakozik a termisztorhoz. # Ezt a param\u00e9tert meg kell adni. #pullup_resistor: 4700 # A termisztorhoz csatlakoztatott felh\u00faz\u00f3 ellen\u00e1ll\u00e1sa (ohmban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 4700 ohm. #inline_resistor: 0 # A termisztorral egy vonalban elhelyezett extra (nem h\u0151v\u00e1ltoz\u00f3) # ellen\u00e1ll\u00e1s ellen\u00e1ll\u00e1sa (ohmban). Ritka az ilyen be\u00e1ll\u00edt\u00e1s. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0 ohm.","title":"K\u00f6z\u00f6s termisztorok"},{"location":"Config_Reference.html#kozos-homerseklet-erositok","text":"K\u00f6z\u00f6s h\u0151m\u00e9rs\u00e9klet\u0171 er\u0151s\u00edt\u0151k. A k\u00f6vetkez\u0151 param\u00e9terek \u00e1llnak rendelkez\u00e9sre azokban a f\u0171t\u0151szakaszokban, amelyek ezen \u00e9rz\u00e9kel\u0151k valamelyik\u00e9t haszn\u00e1lj\u00e1k. sensor_type: # A \u201ePT100 INA826\u201d, \u201eAD595\u201d, \u201eAD597\u201d, \u201eAD8494\u201d, \u201eAD8495\u201d, # \u201eAD8496\u201d vagy \u201eAD8497\u201d k\u00f6z\u00fcl az egyik. sensor_pin: # Anal\u00f3g bemeneti \u00e9rintkez\u0151 csatlakozik az \u00e9rz\u00e9kel\u0151h\u00f6z. # Ezt a param\u00e9tert meg kell adni. #adc_voltage: 5.0 # Az ADC \u00f6sszehasonl\u00edt\u00f3 fesz\u00fclts\u00e9ge (V-ban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #voltage_offset: 0 # Az ADC fesz\u00fclts\u00e9g eltol\u00e1sa (V-ban). Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0.","title":"K\u00f6z\u00f6s h\u0151m\u00e9rs\u00e9klet er\u0151s\u00edt\u0151k"},{"location":"Config_Reference.html#kozvetlenul-csatlakoztatott-pt1000-erzekelo","text":"K\u00f6zvetlen\u00fcl csatlakoztatott PT1000 \u00e9rz\u00e9kel\u0151. A k\u00f6vetkez\u0151 param\u00e9terek \u00e1llnak rendelkez\u00e9sre azokban a f\u0171t\u00e9si szakaszokban, amelyek valamelyik \u00e9rz\u00e9kel\u0151t haszn\u00e1lj\u00e1k. sensor_type: PT1000 sensor_pin: # Anal\u00f3g bemeneti \u00e9rintkez\u0151 csatlakozik az \u00e9rz\u00e9kel\u0151h\u00f6z. # Ezt a param\u00e9tert meg kell adni. #pullup_resistor: 4700 # Az \u00e9rz\u00e9kel\u0151h\u00f6z csatlakoztatott felh\u00faz\u00f3 ellen\u00e1ll\u00e1s (ohmban). # Az alap\u00e9rtelmezett 4700 ohm.","title":"K\u00f6zvetlen\u00fcl csatlakoztatott PT1000 \u00e9rz\u00e9kel\u0151"},{"location":"Config_Reference.html#maxxxxxx-homerseklet-erzekelok","text":"MAXxxxxx soros perif\u00e9ri\u00e1s interf\u00e9sz (SPI) h\u0151m\u00e9rs\u00e9klet-alap\u00fa \u00e9rz\u00e9kel\u0151k. A k\u00f6vetkez\u0151 param\u00e9terek \u00e1llnak rendelkez\u00e9sre azokban a f\u0171t\u00e9si szakaszokban, amelyek ezen \u00e9rz\u00e9kel\u0151t\u00edpusok valamelyik\u00e9t haszn\u00e1lj\u00e1k. sensor_type: # A \u201eMAX6675\u201d, \u201eMAX31855\u201d, \u201eMAX31856\u201d vagy \u201eMAX31865\u201d egyike. sensor_pin: # Az \u00e9rz\u00e9kel\u0151 chip kiv\u00e1laszt\u00e1si sora. Ezt a param\u00e9tert meg kell adni. #spi_speed: 4000000 # A chippel val\u00f3 kommunik\u00e1ci\u00f3 sor\u00e1n haszn\u00e1land\u00f3 SPI-sebess\u00e9g # (hz-ben). Az alap\u00e9rtelmezett \u00e9rt\u00e9k 4000000. #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t az \"\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben tal\u00e1lja. #tc_type: K #tc_use_50Hz_filter: False #tc_averaging_count: 1 # A fenti param\u00e9terek a MAX31856 chipek \u00e9rz\u00e9kel\u0151param\u00e9tereit # szab\u00e1lyozz\u00e1k. Az egyes param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a # param\u00e9ter neve mellett tal\u00e1lhat\u00f3k a fenti list\u00e1ban. #rtd_nominal_r: 100 #rtd_reference_r: 430 #rtd_num_of_wires: 2 #rtd_use_50Hz_filter: False # A fenti param\u00e9terek a MAX31865 chipek \u00e9rz\u00e9kel\u0151param\u00e9tereit # szab\u00e1lyozz\u00e1k. Az egyes param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a # param\u00e9ter neve mellett tal\u00e1lhat\u00f3k a fenti list\u00e1ban.","title":"MAXxxxxx h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k"},{"location":"Config_Reference.html#bmp280bme280bme680-homerseklet-erzekelo","text":"BMP280/BME280/BME680 k\u00e9tvezet\u00e9kes interf\u00e9sz (I2C) k\u00f6rnyezeti \u00e9rz\u00e9kel\u0151k. Vedd figyelembe, hogy ezeket az \u00e9rz\u00e9kel\u0151ket nem extruderekkel \u00e9s f\u0171t\u00f6tt t\u00e1rgyasztalokkal val\u00f3 haszn\u00e1latra sz\u00e1nj\u00e1k, hanem a k\u00f6rnyezeti h\u0151m\u00e9rs\u00e9klet (C), a nyom\u00e1s (hPa), a relat\u00edv p\u00e1ratartalom \u00e9s a BME680 eset\u00e9ben a g\u00e1zszint ellen\u0151rz\u00e9s\u00e9re. L\u00e1sd sample-macros.cfg egy gcode_macro-t, amely a h\u0151m\u00e9rs\u00e9klet mellett a nyom\u00e1s \u00e9s a p\u00e1ratartalom m\u00e9r\u00e9s\u00e9re is haszn\u00e1lhat\u00f3. sensor_type: BME280 #i2c_address: # Az alap\u00e9rtelmezett 118 (0x76). Egyes BME280 \u00e9rz\u00e9kel\u0151k c\u00edme 119 # (0x77). #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben.","title":"BMP280/BME280/BME680 h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151"},{"location":"Config_Reference.html#htu21d-erzekelo","text":"HTU21D k\u00e9tvezet\u00e9kes interf\u00e9sz (I2C) k\u00f6rnyezeti \u00e9rz\u00e9kel\u0151. Vedd figyelembe, hogy ezt az \u00e9rz\u00e9kel\u0151t nem extruderekkel \u00e9s f\u0171t\u00f6tt t\u00e1rgyasztalokkal val\u00f3 haszn\u00e1latra sz\u00e1nj\u00e1k, hanem a k\u00f6rnyezeti h\u0151m\u00e9rs\u00e9klet (C) \u00e9s a relat\u00edv p\u00e1ratartalom ellen\u0151rz\u00e9s\u00e9re. L\u00e1sd sample-macros.cfg egy gcode_macro-t, amely a h\u0151m\u00e9rs\u00e9klet mellett a p\u00e1ratartalom jelent\u00e9s\u00e9re is haszn\u00e1lhat\u00f3. sensor_type: # A k\u00f6vetkez\u0151nek kell lennie: \"HTU21D\", \"SI7013\", \"SI7020\", # \"SI7021\" vagy \"SHT21\" #i2c_address: # Az alap\u00e9rtelmezett 64 (0x40). #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #htu21d_hold_master: # Ha az \u00e9rz\u00e9kel\u0151 k\u00e9pes megtartani az I2C buffot olvas\u00e1s k\u00f6zben. # Ha True, az olvas\u00e1s k\u00f6zben m\u00e1s buszkommunik\u00e1ci\u00f3 nem # hajthat\u00f3 v\u00e9gre. Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #htu21d_resolution: # A h\u0151m\u00e9rs\u00e9klet \u00e9s a p\u00e1ratartalom leolvas\u00e1s\u00e1nak felbont\u00e1sa. # Az \u00e9rv\u00e9nyes \u00e9rt\u00e9kek a k\u00f6vetkez\u0151k: # 'TEMP14_HUM12' -> 14 bit a h\u0151m\u00e9rs\u00e9klethez \u00e9s 12 bit a p\u00e1ratartalomhoz # 'TEMP13_HUM10' -> 13 bit a h\u0151m\u00e9rs\u00e9klethez \u00e9s 10 bit a p\u00e1ratartalomhoz # 'TEMP12_HUM08' -> 12 bit a h\u0151m\u00e9rs\u00e9klethez \u00e9s 08 bit a p\u00e1ratartalomhoz # 'TEMP11_HUM11' -> 11 bit a h\u0151m\u00e9rs\u00e9klethez \u00e9s 11 bit a p\u00e1ratartalomhoz # Az alap\u00e9rtelmezett \u00e9rt\u00e9k: \"TEMP11_HUM11\" #htu21d_report_time: # A leolvas\u00e1sok k\u00f6z\u00f6tti intervallum m\u00e1sodpercben. # Az alap\u00e9rtelmezett a 30","title":"HTU21D \u00e9rz\u00e9kel\u0151"},{"location":"Config_Reference.html#lm75-homerseklet-erzekelo","text":"LM75/LM75A k\u00e9tvezet\u00e9kes (I2C) csatlakoz\u00e1s\u00fa h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151k. Ezek az \u00e9rz\u00e9kel\u0151k -55~125 C tartom\u00e1nyban m\u0171k\u00f6dnek, \u00edgy pl. kamrah\u0151m\u00e9rs\u00e9klet ellen\u0151rz\u00e9sre haszn\u00e1lhat\u00f3k. Egyszer\u0171 ventil\u00e1tor/f\u0171t\u00e9svez\u00e9rl\u0151k\u00e9nt is m\u0171k\u00f6dhetnek. sensor_type: LM75 #i2c_address: # Az alap\u00e9rtelmezett 72 (0x48). A norm\u00e1l tartom\u00e1ny 72-79 (0x48-0x4F), # \u00e9s a c\u00edm 3 alacsony bitje a chipen tal\u00e1lhat\u00f3 \u00e9rintkez\u0151k\u00f6n kereszt\u00fcl # van konfigur\u00e1lva (\u00e1ltal\u00e1ban jumperekkel vagy \u00e1thidal\u00f3 vezet\u00e9kekkel). #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #lm75_report_time: # A leolvas\u00e1sok k\u00f6z\u00f6tti intervallum m\u00e1sodpercben. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,8 de a minimum \u00e9rt\u00e9k 0,5.","title":"LM75 h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151"},{"location":"Config_Reference.html#beepitett-mikrokontroller-homerseklet-erzekelo","text":"Az atsam, atsamd \u00e9s stm32 mikrovez\u00e9rl\u0151k bels\u0151 h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151t tartalmaznak. A \"temperature_mcu\" parancsot haszn\u00e1lhatjuk e h\u0151m\u00e9rs\u00e9kletek megjelen\u00edt\u00e9s\u00e9re. sensor_type: temperature_mcu #sensor_mcu: mcu # A mikrokontroller, amelyb\u0151l olvasni lehet. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k az \"mcu\". #sensor_temperature1: #sensor_adc1: # Add meg a fenti k\u00e9t param\u00e9tert (a h\u0151m\u00e9rs\u00e9kletet Celsiusban \u00e9s egy # ADC-\u00e9rt\u00e9ket \u00fasz\u00f3k\u00e9nt 0,0 \u00e9s 1,0 k\u00f6z\u00f6tt) a mikrovez\u00e9rl\u0151 # h\u0151m\u00e9rs\u00e9klet\u00e9nek kalibr\u00e1l\u00e1s\u00e1hoz. Ez egyes chipekn\u00e9l jav\u00edthatja a # jelentett h\u0151m\u00e9rs\u00e9kleti pontoss\u00e1got. A kalibr\u00e1ci\u00f3s adatok # megszerz\u00e9s\u00e9nek tipikus m\u00f3dja az, hogy n\u00e9h\u00e1ny \u00f3r\u00e1ra teljesen # \u00e1ramtalan\u00edtja a nyomtat\u00f3t (hogy megbizonyosodj arr\u00f3l, hogy az # k\u00f6rnyezeti h\u0151m\u00e9rs\u00e9kleten van), majd bekapcsolja, \u00e9s a QUERY_ADC # paranccsal megkapja az ADC m\u00e9r\u00e9st. Haszn\u00e1lj m\u00e1s h\u0151m\u00e9rs\u00e9klet # \u00e9rz\u00e9kel\u0151t a nyomtat\u00f3n a megfelel\u0151 k\u00f6rnyezeti h\u0151m\u00e9rs\u00e9klet # meghat\u00e1roz\u00e1s\u00e1hoz. Alap\u00e9rtelmez\u00e9s szerint a mikrokontroller gy\u00e1ri # kalibr\u00e1l\u00e1si adatait (ha van) vagy a mikrovez\u00e9rl\u0151 specifik\u00e1ci\u00f3j\u00e1b\u00f3l # sz\u00e1rmaz\u00f3 n\u00e9vleges \u00e9rt\u00e9keket kell haszn\u00e1lni. #sensor_temperature2: #sensor_adc2: # Ha a sensor_temperature1/sensor_adc1 meg van adva, akkor # megadhat\u00f3k a sensor_temperature2/sensor_adc2 kalibr\u00e1ci\u00f3s adatai # is. Ezzel kalibr\u00e1lt \"temperature slope\" inform\u00e1ci\u00f3t kaphat. # Alap\u00e9rtelmez\u00e9s szerint a mikrokontroller gy\u00e1ri kalibr\u00e1l\u00e1si adatait # (ha van) vagy a mikrovez\u00e9rl\u0151 specifik\u00e1ci\u00f3j\u00e1b\u00f3l sz\u00e1rmaz\u00f3 n\u00e9vleges # \u00e9rt\u00e9keket kell haszn\u00e1lni.","title":"Be\u00e9p\u00edtett mikrokontroller h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151"},{"location":"Config_Reference.html#gazdagep-homerseklet-erzekelo","text":"Gazdag\u00e9p h\u0151m\u00e9rs\u00e9klet (pl. Raspberry Pi), amelyen a gazdaszoftver fut. sensor_type: temperature_host #sensor_path: # A h\u0151m\u00e9rs\u00e9kleti rendszerf\u00e1jl el\u00e9r\u00e9si \u00fatja. Az alap\u00e9rtelmez\u00e9s # a \"/sys/class/thermal/thermal_zone0/temp\", amely a Raspberry Pi # sz\u00e1m\u00edt\u00f3g\u00e9p h\u0151m\u00e9rs\u00e9kleti rendszerf\u00e1jlja.","title":"Gazdag\u00e9p h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151"},{"location":"Config_Reference.html#ds18b20-homerseklet-erzekelo","text":"A DS18B20 egy 1 vezet\u00e9kes (w1) digit\u00e1lis h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151. Vedd figyelembe, hogy ezt az \u00e9rz\u00e9kel\u0151t nem extruderekkel \u00e9s f\u0171t\u00f6tt t\u00e1rgyasztalokkal val\u00f3 haszn\u00e1latra sz\u00e1nj\u00e1k, hanem ink\u00e1bb a k\u00f6rnyezeti h\u0151m\u00e9rs\u00e9klet (C) ellen\u0151rz\u00e9s\u00e9re. Ezek az \u00e9rz\u00e9kel\u0151k 125 C-ig terjed\u0151 tartom\u00e1nyban m\u0171k\u00f6dnek, \u00edgy pl. kamrah\u0151m\u00e9rs\u00e9klet ellen\u0151rz\u00e9sre haszn\u00e1lhat\u00f3k. Egyszer\u0171 ventil\u00e1tor/f\u0171t\u0151berendez\u00e9s szab\u00e1lyoz\u00f3k\u00e9nt is m\u0171k\u00f6dhetnek. A DS18B20 \u00e9rz\u00e9kel\u0151ket csak a \"host mcu\", pl. a Raspberry Pi t\u00e1mogatja. A w1-gpio Linux kernel modult kell telep\u00edteni hozz\u00e1. sensor_type: DS18B20 serial_no: # Minden 1 vezet\u00e9kes eszk\u00f6z egyedi sorozatsz\u00e1mmal rendelkezik, amely az # eszk\u00f6z azonos\u00edt\u00e1s\u00e1ra szolg\u00e1l, \u00e1ltal\u00e1ban 28-031674b175ff form\u00e1tumban. # Ezt a param\u00e9tert meg kell adni. A csatlakoztatott egyvezet\u00e9kes eszk\u00f6z\u00f6k a # k\u00f6vetkez\u0151 Linux-paranccsal list\u00e1zhat\u00f3k: # ls /sys/bus/w1/devices/ #ds18_report_time: # A leolvas\u00e1sok k\u00f6z\u00f6tti intervallum m\u00e1sodpercben. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 3.0, a minimum 1.0 #sensor_mcu: # A mikrokontroller, amelyb\u0151l olvasni lehet. A host_mcu legyen","title":"DS18B20 h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151"},{"location":"Config_Reference.html#hutoventilatorok","text":"","title":"H\u0171t\u0151ventil\u00e1torok"},{"location":"Config_Reference.html#fan","text":"Nyomtat\u00e1s h\u0171t\u0151ventil\u00e1tor. [fan] pin: # A ventil\u00e1tort vez\u00e9rl\u0151 kimeneti \u00e9rintkez\u0151. Ezt a param\u00e9tert meg kell adni. #max_power: 1.0 # Az a maxim\u00e1lis teljes\u00edtm\u00e9ny (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), # amelyre a t\u0171 be\u00e1ll\u00edthat\u00f3. Az 1,0 \u00e9rt\u00e9k lehet\u0151v\u00e9 teszi, hogy a t\u0171t hosszabb # ideig teljesen enged\u00e9lyezettre lehessen \u00e1ll\u00edtani, m\u00edg a 0,5 \u00e9rt\u00e9k legfeljebb # a fele ideig enged\u00e9lyezi a t\u0171t. Ez a be\u00e1ll\u00edt\u00e1s haszn\u00e1lhat\u00f3 a ventil\u00e1tor # teljes kimeneti teljes\u00edtm\u00e9ny\u00e9nek korl\u00e1toz\u00e1s\u00e1ra (hosszabb ideig). Ha ez az # \u00e9rt\u00e9k kisebb, mint 1,0, akkor a ventil\u00e1torsebess\u00e9g-k\u00e9relmek nulla \u00e9s # max_power k\u00f6z\u00f6tt lesznek sk\u00e1l\u00e1zva (p\u00e9ld\u00e1ul ha a max_power \u00e9rt\u00e9ke 0,9, # \u00e9s 80%-os ventil\u00e1torsebess\u00e9gre van sz\u00fcks\u00e9g, akkor a ventil\u00e1tor # teljes\u00edtm\u00e9nye 72%-ra lesz \u00e1ll\u00edtva). Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0. #shutdown_speed: 0 # A k\u00edv\u00e1nt ventil\u00e1torsebess\u00e9g (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), ha a # mikrovez\u00e9rl\u0151 szoftvere hiba\u00e1llapotba ker\u00fcl. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #cycle_time: 0,010 # Az id\u0151 (m\u00e1sodpercben) minden egyes PWM t\u00e1pciklushoz a ventil\u00e1tornak. # Szoftver alap\u00fa PWM haszn\u00e1latakor aj\u00e1nlott 10 ezredm\u00e1sodperc vagy t\u00f6bb. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,010 m\u00e1sodperc. #hardware_pwm: False # Enged\u00e9lyezd ezt hardveres PWM haszn\u00e1lat\u00e1hoz a szoftveres PWM helyett. # A legt\u00f6bb ventil\u00e1tor nem m\u0171k\u00f6dik j\u00f3l a hardveres PWM-mel, ez\u00e9rt nem # aj\u00e1nlott ezt enged\u00e9lyezni, hacsak nincs elektromos k\u00f6vetelm\u00e9ny a nagyon # nagy sebess\u00e9g\u0171 kapcsol\u00e1shoz. Hardveres PWM haszn\u00e1latakor a t\u00e9nyleges # ciklusid\u0151t a megval\u00f3s\u00edt\u00e1s korl\u00e1tozza, \u00e9s jelent\u0151sen elt\u00e9rhet a k\u00e9rt ciklusid\u0151t\u0151l. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #kick_start_time: 0,100 # Az id\u0151 (m\u00e1sodpercben), hogy a ventil\u00e1tor teljes fordulatsz\u00e1mon m\u0171k\u00f6dj\u00f6n, # amikor el\u0151sz\u00f6r enged\u00e9lyezi, vagy 50%-n\u00e1l nagyobb m\u00e9rt\u00e9kben n\u00f6veli # (seg\u00edti a ventil\u00e1tor p\u00f6rg\u00e9s\u00e9t). Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,100 m\u00e1sodperc. #off_below: 0,0 # A minim\u00e1lis bemeneti sebess\u00e9g, amely a ventil\u00e1tort t\u00e1pl\u00e1lja # (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve). Ha az off_below-n\u00e1l alacsonyabb # sebess\u00e9get k\u00e9rnek, a ventil\u00e1tor ehelyett kikapcsol. Ez a be\u00e1ll\u00edt\u00e1s haszn\u00e1lhat\u00f3 # a ventil\u00e1tor le\u00e1ll\u00e1s\u00e1nak megel\u0151z\u00e9s\u00e9re \u00e9s annak biztos\u00edt\u00e1s\u00e1ra, hogy az ind\u00edt\u00e1sok # hat\u00e9konyak legyenek. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0.0. # # Ezt a be\u00e1ll\u00edt\u00e1st \u00fajra kell kalibr\u00e1lni a max_power be\u00e1ll\u00edt\u00e1sakor. A be\u00e1ll\u00edt\u00e1s # kalibr\u00e1l\u00e1s\u00e1hoz kezd az off_below \u00e9rt\u00e9k\u00e9t 0,0-ra \u00e1ll\u00edtva, \u00e9s a ventil\u00e1tor forog. # Fokozatosan cs\u00f6kkentse a ventil\u00e1tor fordulatsz\u00e1m\u00e1t, hogy meghat\u00e1rozza a # legalacsonyabb bemeneti sebess\u00e9get, amely megb\u00edzhat\u00f3an hajtja a ventil\u00e1tort # le\u00e1ll\u00e1s n\u00e9lk\u00fcl. \u00c1ll\u00edtsd az off_below-ot az ennek az \u00e9rt\u00e9knek megfelel\u0151 # (p\u00e9ld\u00e1ul 12% -> 0,12) vagy valamivel magasabb munkaciklusra. #tachometer_pin: # Fordulatsz\u00e1mm\u00e9r\u0151 bemeneti \u00e9rintkez\u0151je a ventil\u00e1tor fordulatsz\u00e1m\u00e1nak # figyel\u00e9s\u00e9hez. \u00c1ltal\u00e1ban felh\u00faz\u00e1sra van sz\u00fcks\u00e9g. Ez a param\u00e9ter nem k\u00f6telez\u0151. #tachometer_ppr: 2 # Ha a tachometer_pin meg van adva, ez a fordulatsz\u00e1mm\u00e9r\u0151 jel\u00e9nek # fordulatonk\u00e9nti impulzusainak sz\u00e1ma. Egy BLDC ventil\u00e1tor eset\u00e9ben ez \u00e1ltal\u00e1ban # fele a p\u00f3lusok sz\u00e1m\u00e1nak. Az alap\u00e9rtelmezett \u00e9rt\u00e9k a 2. #tachometer_poll_interval: 0,0015 # Ha a tachometer_pin meg van adva, ez a fordulatsz\u00e1mm\u00e9r\u0151 t\u0171j\u00e9nek lek\u00e9rdez\u00e9si # peri\u00f3dusa, m\u00e1sodpercben. Az alap\u00e9rtelmezett 0,0015, ami el\u00e9g gyors a # 10000 RPM alatti ventil\u00e1torok sz\u00e1m\u00e1ra 2 PPR mellett. Ennek kisebbnek kell lennie, # mint 30/(tachometer_ppr*rpm), n\u00e9mi r\u00e1hagy\u00e1ssal, ahol az rpm a ventil\u00e1tor # maxim\u00e1lis fordulatsz\u00e1ma (rpm-ben). #enable_pin: # Opcion\u00e1lis t\u0171 a ventil\u00e1tor t\u00e1pell\u00e1t\u00e1s\u00e1nak biztos\u00edt\u00e1s\u00e1hoz. Ez hasznos lehet a # dedik\u00e1lt PWM bemenettel rendelkez\u0151 ventil\u00e1torok sz\u00e1m\u00e1ra. N\u00e9h\u00e1ny ilyen # ventil\u00e1tor m\u00e9g 0%-os PWM bemenetn\u00e9l is bekapcsolva marad. Ilyenkor a PWM t\u0171 # norm\u00e1lisan haszn\u00e1lhat\u00f3, \u00e9s pl. f\u00f6ldkapcsolt FET (norm\u00e1l ventil\u00e1torcsap) # haszn\u00e1lhat\u00f3 a ventil\u00e1tor t\u00e1pell\u00e1t\u00e1s\u00e1nak szab\u00e1lyoz\u00e1s\u00e1ra.","title":"[fan]"},{"location":"Config_Reference.html#heater_fan","text":"Fejh\u0171t\u0151 ventil\u00e1torok (a \"heater_fan\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3). A \"fejh\u0171t\u0151 ventil\u00e1tor\" egy olyan ventil\u00e1tor, amely akkor lesz enged\u00e9lyezve, amikor a hozz\u00e1 tartoz\u00f3 f\u0171t\u0151berendez\u00e9s akt\u00edv. Alap\u00e9rtelmez\u00e9s szerint a heater_fan alap\u00e9rtelmez\u00e9s szerint a shutdown_speed a max_power \u00e9rt\u00e9kkel egyenl\u0151. [heater_fan my_nozzle_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"ventil\u00e1tor\" szakaszban. #heater: extruder # A ventil\u00e1torhoz t\u00e1rs\u00edtott f\u0171t\u00e9st meghat\u00e1roz\u00f3 konfigur\u00e1ci\u00f3s szakasz neve. # Ha itt megadod a f\u0171t\u0151elemek vessz\u0151vel elv\u00e1lasztott nev\u00e9t, # akkor a ventil\u00e1tor enged\u00e9lyezve lesz, ha valamelyik adott f\u0171t\u0151test enged\u00e9lyezve van. # Az alap\u00e9rtelmezett az \"extruder\". #heater_temp: 50.0 # A h\u0151m\u00e9rs\u00e9klet (Celsiusban), amely al\u00e1 a f\u0171t\u0151elemnek cs\u00f6kkennie kell, miel\u0151tt # a ventil\u00e1tor kikapcsolna. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50 Celsius fok. #fan_speed: 1.0 # A ventil\u00e1tor sebess\u00e9ge (0.0 \u00e9s 1.0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), amelyet a ventil\u00e1tor # alkalmaz, amikor a hozz\u00e1 tartoz\u00f3 f\u0171t\u0151elem be van kapcsolva. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0","title":"[heater_fan]"},{"location":"Config_Reference.html#controller_fan","text":"Vez\u00e9rl\u0151 h\u0171t\u0151ventil\u00e1tor (a \"controller_fan\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3). A \"vez\u00e9rl\u0151 h\u0171t\u0151ventil\u00e1tor\" egy olyan ventil\u00e1tor, amely akkor lesz enged\u00e9lyezve, amikor a hozz\u00e1 tartoz\u00f3 f\u0171t\u0151berendez\u00e9s vagy a hozz\u00e1 tartoz\u00f3 l\u00e9ptet\u0151 meghajt\u00f3 akt\u00edv. A ventil\u00e1tor le\u00e1ll, amikor el\u00e9r egy idle_timeout \u00e9rt\u00e9ket, hogy biztos\u00edtsa, hogy a fel\u00fcgyelt komponens kikapcsol\u00e1sa ut\u00e1n ne k\u00f6vetkezzen be t\u00falmeleged\u00e9s. [controller_fan my_controller_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"ventil\u00e1tor\" szakaszban. #fan_speed: 1.0 # A ventil\u00e1tor fordulatsz\u00e1ma (0.0 \u00e9s 1.0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), # amelyre a ventil\u00e1tor lesz be\u00e1ll\u00edtva, amikor egy f\u0171t\u0151elem vagy # l\u00e9ptet\u0151 vez\u00e9rl\u0151 akt\u00edv. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0 #idle_timeout: # Az az id\u0151 (m\u00e1sodpercben), miut\u00e1n a l\u00e9ptet\u0151-meghajt\u00f3 vagy a f\u0171t\u0151elem # akt\u00edv volt, \u00e9s a ventil\u00e1tort m\u0171k\u00f6dtetni kell m\u00e9g. # Az alap\u00e9rtelmezett 30 m\u00e1sodperc. #idle_speed: # A ventil\u00e1tor sebess\u00e9ge (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), # amelyre a ventil\u00e1tor be lesz \u00e1ll\u00edtva, amikor egy f\u0171t\u0151elem vagy # l\u00e9ptet\u0151-meghajt\u00f3 akt\u00edv volt, az idle_timeout el\u00e9r\u00e9se el\u0151tt. # Alap\u00e9rtelmezett a fan_speed. #heater: #stepper: # A ventil\u00e1torhoz t\u00e1rs\u00edtott f\u0171t\u00e9st/l\u00e9ptet\u0151t meghat\u00e1roz\u00f3 konfigur\u00e1ci\u00f3s # szakasz neve. Ha itt megadod a f\u0171t\u0151elemek/l\u00e9ptet\u0151k vessz\u0151vel # elv\u00e1lasztott nev\u00e9t, akkor a ventil\u00e1tor enged\u00e9lyezve lesz, ha az adott # f\u0171t\u0151testek/l\u00e9ptet\u0151k b\u00e1rmelyike enged\u00e9lyezett. Az alap\u00e9rtelmezett f\u0171t\u0151elem # az \"extruder\", az alap\u00e9rtelmezett l\u00e9ptet\u0151 pedig mindegyik.","title":"[controller_fan]"},{"location":"Config_Reference.html#temperature_fan","text":"H\u0151m\u00e9rs\u00e9klet vez\u00e9relt h\u0171t\u0151ventil\u00e1torok (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni a \"temperature_fan\" el\u0151taggal). A \"h\u0151m\u00e9rs\u00e9kleti ventil\u00e1tor\" olyan ventil\u00e1tor, amely akkor kapcsol be, amikor a hozz\u00e1 tartoz\u00f3 \u00e9rz\u00e9kel\u0151 egy be\u00e1ll\u00edtott h\u0151m\u00e9rs\u00e9klet felett van. Alap\u00e9rtelmez\u00e9s szerint a temperature_fan kikapcsol\u00e1si sebess\u00e9ge egyenl\u0151 a max_power \u00e9rt\u00e9kkel. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1st . [temperature_fan my_temp_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"ventil\u00e1tor\" r\u00e9szben. #sensor_type: #sensor_pin: #control: #max_delta: #min_temp: #max_temp: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"extruder\" r\u00e9szben. #pid_Kp: #pid_Ki: #pid_Kd: # Az ar\u00e1nyos (pid_Kp), az integr\u00e1l (pid_Ki) \u00e9s a deriv\u00e1lt (pid_Kd) be\u00e1ll\u00edt\u00e1sai # a PID visszacsatol\u00e1svez\u00e9rl\u0151 rendszerhez. A Klipper a PID be\u00e1ll\u00edt\u00e1sokat a # k\u00f6vetkez\u0151 \u00e1ltal\u00e1nos k\u00e9plettel \u00e9rt\u00e9keli ki: ventil\u00e1tor_pwm = max_power # - (Kp*e + Ki*integr\u00e1l(e) - Kd*deriv\u00e1lt(e)) / 255 ahol \"e\" a # \"target_temperature - measured_temperature\" \u00e9s \"fan_pwm\" a k\u00e9rt # ventil\u00e1torsebess\u00e9g, ahol a 0.0 tele van, az 1.0 pedig teljesen be van # kapcsolva. A pid_Kp, pid_Ki \u00e9s pid_Kd param\u00e9tereket akkor kell megadni, # ha a PID vez\u00e9rl\u0151 algoritmus enged\u00e9lyezve van. #pid_deriv_time: 2.0 # Az az id\u0151\u00e9rt\u00e9k (m\u00e1sodpercben), amelyen kereszt\u00fcl a h\u0151m\u00e9rs\u00e9kletm\u00e9r\u00e9s # sim\u00edt\u00e1sra ker\u00fcl a PID szab\u00e1lyoz\u00e1si algoritmus haszn\u00e1latakor. # Ez cs\u00f6kkentheti a m\u00e9r\u00e9si zaj hat\u00e1s\u00e1t. Az alap\u00e9rtelmezett a 2 m\u00e1sodperc. #target_temp: 40.0 # Egy h\u0151m\u00e9rs\u00e9klet (Celsiusban), amely a c\u00e9lh\u0151m\u00e9rs\u00e9klet lesz. # Az alap\u00e9rtelmezett a 40 fok. #max_speed: 1.0 # A ventil\u00e1tor sebess\u00e9ge (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), amelyre a # ventil\u00e1tor be lesz \u00e1ll\u00edtva, ha az \u00e9rz\u00e9kel\u0151 h\u0151m\u00e9rs\u00e9klete meghaladja a # be\u00e1ll\u00edtott \u00e9rt\u00e9ket. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0. #min_speed: 0,3 # Az a minim\u00e1lis ventil\u00e1tor fordulatsz\u00e1m (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben # kifejezve), amelyre a ventil\u00e1tor be lesz \u00e1ll\u00edtva a PID h\u0151m\u00e9rs\u00e9klet\u0171 # ventil\u00e1torokhoz. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0.3. #gcode_id: # Ha be van \u00e1ll\u00edtva, a h\u0151m\u00e9rs\u00e9kletet az M105 lek\u00e9rdez\u00e9sekben jelenti a # megadott azonos\u00edt\u00f3val. Az alap\u00e9rtelmez\u00e9s szerint nem jelenti a # h\u0151m\u00e9rs\u00e9kletet az M105-\u00f6n kereszt\u00fcl.","title":"[temperature_fan]"},{"location":"Config_Reference.html#fan_generic","text":"K\u00e9zi vez\u00e9rl\u00e9s\u0171 ventil\u00e1tor (a \"fan_generic\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni). A k\u00e9zi vez\u00e9rl\u00e9s\u0171 ventil\u00e1tor fordulatsz\u00e1m\u00e1t a SET_FAN_SPEED G-k\u00f3d paranccsal lehet be\u00e1ll\u00edtani. [fan_generic extruder_partfan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"ventil\u00e1tor\" r\u00e9szben.","title":"[fan_generic]"},{"location":"Config_Reference.html#led-ek","text":"","title":"LED-ek"},{"location":"Config_Reference.html#led","text":"A mikrokontroller PWM t\u0171in kereszt\u00fcl vez\u00e9relt LED-ek (\u00e9s LED-cs\u00edkok) t\u00e1mogat\u00e1sa (a \"led\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t defini\u00e1lhatunk). Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1st . [led my_led] #red_pin: #green_pin: #blue_pin: #white_pin: # Az adott LED sz\u00ednt vez\u00e9rl\u0151 t\u0171. A fenti param\u00e9terek k\u00f6z\u00fcl legal\u00e1bb # egyet meg kell adni. #cycle_time: 0.010 # Az id\u0151 (m\u00e1sodpercben) PWM ciklusonk\u00e9nt. Szoftver alap\u00fa PWM # haszn\u00e1lata eset\u00e9n aj\u00e1nlott ez 10 ezredm\u00e1sodperc vagy t\u00f6bb. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,010 m\u00e1sodperc. #hardware_pwm: False # Enged\u00e9lyezd ezt a hardveres PWM haszn\u00e1lat\u00e1hoz a szoftveres # PWM helyett. Hardveres PWM haszn\u00e1latakor a t\u00e9nyleges ciklusid\u0151t # a megval\u00f3s\u00edt\u00e1s korl\u00e1tozza, \u00e9s jelent\u0151sen elt\u00e9rhet a k\u00e9rt ciklusid\u0151t\u0151l. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Be\u00e1ll\u00edtja a LED kezdeti sz\u00edn\u00e9t. Mindegyik \u00e9rt\u00e9knek 0,0 \u00e9s 1,0 k\u00f6z\u00f6tt # kell lennie. Minden sz\u00edn alap\u00e9rtelmezett \u00e9rt\u00e9ke 0.","title":"[led]"},{"location":"Config_Reference.html#neopixel","text":"Neopixel (m\u00e1s n\u00e9ven WS2812) LED t\u00e1mogat\u00e1s (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t defini\u00e1lhatunk \"neopixel\" el\u0151taggal). Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1st . Vedd figyelembe, hogy a linux mcu implement\u00e1ci\u00f3 jelenleg nem t\u00e1mogatja a k\u00f6zvetlen\u00fcl csatlakoztatott neopixeleket. A Linux kernel interf\u00e9szt haszn\u00e1l\u00f3 jelenlegi tervezet nem teszi lehet\u0151v\u00e9 ezt a forgat\u00f3k\u00f6nyvet, mivel a kernel GPIO interf\u00e9sze nem el\u00e9g gyors a sz\u00fcks\u00e9ges impulzussz\u00e1mok biztos\u00edt\u00e1s\u00e1hoz. [neopixel my_neopixel] pin: # A neopixelhez csatlakoztatott t\u0171. # Ennek a param\u00e9ternek a k\u00f6vetkez\u0151nek kell lennie. #chain_count: # A megadott t\u0171h\u00f6z \"l\u00e1ncolt\" Neopixel chipek sz\u00e1ma. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1 (ami azt jelenti, hogy csak egy # Neopixel csatlakozik a t\u0171h\u00f6z). #color_order: GRB # \u00c1ll\u00edtsd be a LED hardver \u00e1ltal megk\u00f6vetelt pixelsorrendj\u00e9t # (az R, G, B, W bet\u0171ket tartalmaz\u00f3 karakterl\u00e1ncot haszn\u00e1lva, a # W opcion\u00e1lis). Alternat\u00edvak\u00e9nt ez lehet a pixelsorrendek vessz\u0151vel # elv\u00e1lasztott list\u00e1ja is - egy minden egyes pixelhez LED-hez a l\u00e1ncban. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k GRB. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Ezekr\u0151l a param\u00e9terekr\u0151l l\u00e1sd a \"LED\" r\u00e9szt.","title":"[neopixel]"},{"location":"Config_Reference.html#dotstar","text":"Dotstar (m\u00e1s n\u00e9ven APA102) LED-t\u00e1mogat\u00e1s (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"dotstar\" el\u0151taggal). Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1st . [dotstar my_dotstar] data_pin: # A pont a dotstar adatvonal\u00e1hoz csatlakozik. # Ezt a param\u00e9tert meg kell adni. clock_pin: # A dotstar id\u0151jel vonal\u00e1hoz csatlakoztatott t\u0171. # Ezt a param\u00e9tert meg kell adni. #chain_count: # A param\u00e9terrel kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a \"neopixel\" r\u00e9szt. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 # Ezen param\u00e9terek le\u00edr\u00e1s\u00e1r\u00f3l n\u00e9zd meg a \"LED\" r\u00e9szt.","title":"[dotstar]"},{"location":"Config_Reference.html#pca9533","text":"PCA9533 LED-t\u00e1mogat\u00e1s. A PCA9533 a mightyboardon haszn\u00e1latos. [pca9533 my_pca9533] #i2c_address: 98 # Az I2C c\u00edm, amelyet a chip az I2C buszon haszn\u00e1l. # Haszn\u00e1ld a 98-at a PCA9533/1-hez, a 99-et a PCA9533/2-hez. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 98. #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Ezen param\u00e9terek le\u00edr\u00e1s\u00e1r\u00f3l n\u00e9zd meg a \"LED\" r\u00e9szt.","title":"[pca9533]"},{"location":"Config_Reference.html#pca9632","text":"PCA9632 LED t\u00e1mogat\u00e1s. A PCA9632-t a FlashForge Dreamer-ben haszn\u00e1lj\u00e1k. [pca9632 my_pca9632] #i2c_address: 98 # Az I2C c\u00edm, amelyet a chip az I2C buszon haszn\u00e1l. # Ez lehet 96, 97, 98 vagy 99. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 98. #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #scl_pin: #sda_pin: # Alternat\u00edv megold\u00e1sk\u00e9nt, ha a pca9632 nincs hardveres I2C # buszhoz csatlakoztatva, akkor megadhatja az \"\u00f3ra\" (scl_pin) # \u00e9s \"data\" (sda_pin) \u00e9rintkez\u0151ket. # Az alap\u00e9rtelmez\u00e9s a hardveres I2C haszn\u00e1lata. #color_order: RGBW # \u00c1ll\u00edtsd be a LED pixelsorrendj\u00e9t (egy R, G, B, W bet\u0171ket # tartalmaz\u00f3 sztring seg\u00edts\u00e9g\u00e9vel). Az alap\u00e9rtelmezett az RGBW. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Ezen param\u00e9terek le\u00edr\u00e1s\u00e1r\u00f3l n\u00e9zd meg a \"LED\" r\u00e9szt.","title":"[pca9632]"},{"location":"Config_Reference.html#tovabbi-szervok-gombok-es-egyeb-tuk","text":"","title":"Tov\u00e1bbi szerv\u00f3k, gombok \u00e9s egy\u00e9b t\u0171k"},{"location":"Config_Reference.html#servo","text":"Szerv\u00f3k (a \"servo\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni). A szerv\u00f3k a SET_SERVO G-k\u00f3d parancs seg\u00edts\u00e9g\u00e9vel vez\u00e9relhet\u0151k. P\u00e9ld\u00e1ul: SET_SERVO SERVO=my_servo ANGLE=180 [servo my_servo] pin: # PWM kimeneti \u00e9rintkez\u0151, amely a szerv\u00f3t vez\u00e9rli. # Ezt a param\u00e9tert meg kell adni. #maximum_servo_angle: 180 # A maxim\u00e1lis sz\u00f6g (fokban), amelyre ez a szerv\u00f3 be\u00e1ll\u00edthat\u00f3. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 180 fok. #minimum_pulse_width: 0.001 # A minim\u00e1lis impulzussz\u00e9less\u00e9g ideje (m\u00e1sodpercben). # Ennek 0 fokos sz\u00f6gnek kell megfelelnie. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,001 m\u00e1sodperc. #maximum_pulse_width: 0.002 # A maxim\u00e1lis impulzussz\u00e9less\u00e9g ideje (m\u00e1sodpercben). # Ennek meg kell felelnie a maximum_servo_angle sz\u00f6gnek. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,002 m\u00e1sodperc. #initial_angle: # Kezdeti sz\u00f6g (fokban) a szerv\u00f3 be\u00e1ll\u00edt\u00e1s\u00e1hoz. # Az alap\u00e9rtelmezett az, hogy ind\u00edt\u00e1skor nem k\u00fcld jelet. #initial_pulse_width: # A kezdeti impulzussz\u00e9less\u00e9g (m\u00e1sodpercben) a szerv\u00f3 be\u00e1ll\u00edt\u00e1s\u00e1hoz. # (Ez csak akkor \u00e9rv\u00e9nyes, ha a initial_angle nincs be\u00e1ll\u00edtva.) # Az alap\u00e9rtelmez\u00e9s az, hogy ind\u00edt\u00e1skor nem k\u00fcld jelet.","title":"[servo]"},{"location":"Config_Reference.html#gcode_button","text":"A G-k\u00f3d v\u00e9grehajt\u00e1sa, amikor egy gombot megnyomnak vagy elengednek (vagy amikor egy t\u0171 \u00e1llapota megv\u00e1ltozik). A gomb \u00e1llapot\u00e1t a QUERY_BUTTON button=my_gcode_button seg\u00edts\u00e9g\u00e9vel ellen\u0151rizhetj\u00fck. [gcode_button my_gcode_button] pin: # Az a t\u0171, amelyre a gomb csatlakozik. Ezt a param\u00e9tert meg kell adni. #analog_range: # K\u00e9t vessz\u0151vel elv\u00e1lasztott ellen\u00e1ll\u00e1s (ohmban), amely meghat\u00e1rozza # a gomb minim\u00e1lis \u00e9s maxim\u00e1lis ellen\u00e1ll\u00e1si tartom\u00e1ny\u00e1t. Ha meg van # adva az analog_range, akkor a l\u00e1bnak anal\u00f3g-k\u00e9pes t\u0171nek kell lennie. # Az alap\u00e9rtelmezett a digit\u00e1lis GPIO haszn\u00e1lata a gombhoz. #analog_pullup_resistor: # A felh\u00faz\u00e1si ellen\u00e1ll\u00e1s (ohmban), ha az analog_range meg van adva. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 4700 ohm. #press_gcode: # A gomb megnyom\u00e1sakor v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. # A G-k\u00f3d sablonok t\u00e1mogatottak. Ezt a param\u00e9tert meg kell adni. #release_gcode: # A gomb elenged\u00e9sekor v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. # A G-k\u00f3d sablonok t\u00e1mogatottak. Az alap\u00e9rtelmez\u00e9s szerint nem # futnak le parancsok a gombok felenged\u00e9sekor.","title":"[gcode_button]"},{"location":"Config_Reference.html#output_pin","text":"Futtat\u00e1si id\u0151ben konfigur\u00e1lhat\u00f3 kimeneti t\u0171k (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"output_pin\" el\u0151taggal). Az itt konfigur\u00e1lt t\u0171k kimeneti t\u0171kk\u00e9nt lesznek be\u00e1ll\u00edtva, \u00e9s futtat\u00e1si id\u0151ben a \"SET_PIN PIN=my_pin VALUE=.1\" t\u00edpus\u00fa kiterjesztett G-k\u00f3d parancsok seg\u00edts\u00e9g\u00e9vel m\u00f3dos\u00edthatjuk \u0151ket. [output_pin my_pin] pin: # A kimenetk\u00e9nt konfigur\u00e1land\u00f3 t\u0171. Ezt a param\u00e9tert meg kell adni. #pwm: False # \u00c1ll\u00edtsd be, hogy a kimeneti l\u00e1bnak k\u00e9pesnek kell lennie # impulzussz\u00e9less\u00e9g-modul\u00e1ci\u00f3ra. Ha ez True, az \u00e9rt\u00e9kmez\u0151knek 0 \u00e9s 1 # k\u00f6z\u00f6tt kell lenni\u00fck. Ha False, az \u00e9rt\u00e9kmez\u0151k \u00e9rt\u00e9ke 0 vagy 1 legyen. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #static_value: # Ha ez be van \u00e1ll\u00edtva, akkor a t\u0171 ehhez az \u00e9rt\u00e9khez lesz rendelve ind\u00edt\u00e1skor, # \u00e9s a t\u0171 nem m\u00f3dos\u00edthat\u00f3 m\u0171k\u00f6d\u00e9s k\u00f6zben. Egy statikus t\u0171 valamivel # kevesebb RAM-ot haszn\u00e1l a mikrokontrollerben. # Az alap\u00e9rtelmezett a l\u00e1bak fut\u00e1sidej\u0171 konfigur\u00e1ci\u00f3ja. #value: # Az az \u00e9rt\u00e9k, amelyre az MCU konfigur\u00e1l\u00e1sa sor\u00e1n el\u0151sz\u00f6r be kell \u00e1ll\u00edtani a t\u0171t. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0 (alacsony fesz\u00fclts\u00e9g eset\u00e9n). #shutdown_value: # Az az \u00e9rt\u00e9k, amelyre a t\u0171t be kell \u00e1ll\u00edtani egy MCU le\u00e1ll\u00e1si esem\u00e9nyn\u00e9l. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0 (alacsony fesz\u00fclts\u00e9g eset\u00e9n). #maximum_mcu_duration: # A nem-le\u00e1ll\u00edt\u00e1si \u00e9rt\u00e9k maxim\u00e1lis id\u0151tartama az MCU \u00e1ltal a gazdag\u00e9pt\u0151l # \u00e9rkez\u0151 nyugt\u00e1z\u00e1s n\u00e9lk\u00fcl hajthat\u00f3 v\u00e9gre. Ha a gazdag\u00e9p nem tud l\u00e9p\u00e9st # tartani a friss\u00edt\u00e9ssel, az MCU le\u00e1ll, \u00e9s az \u00f6sszes \u00e9rintkez\u0151t a megfelel\u0151 # le\u00e1ll\u00edt\u00e1si \u00e9rt\u00e9kre \u00e1ll\u00edtja. Az alap\u00e9rtelmezett \u00e9rt\u00e9k: 0 (letiltva) # A szok\u00e1sos \u00e9rt\u00e9kek 5 m\u00e1sodperc k\u00f6r\u00fcliek. #cycle_time: 0.100 # Az id\u0151 (m\u00e1sodpercben) PWM ciklusonk\u00e9nt. Szoftver alap\u00fa PWM haszn\u00e1lata # eset\u00e9n aj\u00e1nlott 10 ezredm\u00e1sodperc vagy t\u00f6bb. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,100 m\u00e1sodperc a PWM l\u00e1bak eset\u00e9n. #hardware_pwm: False # Enged\u00e9lyezd ezt a hardveres PWM haszn\u00e1lat\u00e1hoz a szoftveres PWM helyett. # Hardveres PWM haszn\u00e1latakor a t\u00e9nyleges ciklusid\u0151t a megval\u00f3s\u00edt\u00e1s # korl\u00e1tozza, \u00e9s jelent\u0151sen elt\u00e9rhet a k\u00e9rt ciklusid\u0151t\u0151l. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #scale: # Ezzel a param\u00e9terrel m\u00f3dos\u00edthat\u00f3 a 'value' \u00e9s 'shutdown_value' param\u00e9terek # \u00e9rtelmez\u00e9se a PWM l\u00e1bak eset\u00e9ben. Ha meg van adva, akkor az 'value' # param\u00e9ternek 0,0 \u00e9s 'scale' k\u00f6z\u00f6tt kell lennie. Ez hasznos lehet olyan PWM # l\u00e1b konfigur\u00e1l\u00e1sakor, amely a l\u00e9ptet\u0151 fesz\u00fclts\u00e9g referencia\u00e9rt\u00e9k\u00e9t vez\u00e9rli. # A 'scale' be\u00e1ll\u00edthat\u00f3 az egyen\u00e9rt\u00e9k\u0171 l\u00e9ptet\u0151 \u00e1ramer\u0151ss\u00e9gre, ha a PWM teljesen # enged\u00e9lyezett volt, majd az 'value' param\u00e9ter megadhat\u00f3 a l\u00e9ptet\u0151 k\u00edv\u00e1nt # \u00e1ramer\u0151ss\u00e9g\u00e9vel. # Az alap\u00e9rtelmez\u00e9s szerint nem sk\u00e1l\u00e1zzuk a 'value' param\u00e9tert.","title":"[output_pin]"},{"location":"Config_Reference.html#static_digital_output","text":"Statikusan konfigur\u00e1lt digit\u00e1lis kimeneti t\u0171k (tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3 \"static_digital_output\" el\u0151taggal). Az itt konfigur\u00e1lt t\u0171k az MCU konfigur\u00e1l\u00e1sa sor\u00e1n GPIO kimenetk\u00e9nt lesznek be\u00e1ll\u00edtva. \u00dczem k\u00f6zben nem m\u00f3dos\u00edthat\u00f3k. [static_digital_output my_output_pins] pins: # A GPIO kimeneti t\u0171k\u00e9nt be\u00e1ll\u00edtand\u00f3 t\u0171k vessz\u0151vel elv\u00e1lasztott # list\u00e1ja. A gomb t\u0171je magas szintre lesz \u00e1ll\u00edtva, hacsak a t\u0171 neve # el\u0151tt nem szerepel \"!\". Ezt a param\u00e9tert meg kell adni.","title":"[static_digital_output]"},{"location":"Config_Reference.html#multi_pin","text":"T\u00f6bb t\u0171s kimenetek (a \"multi_pin\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3). A multi_pin kimenet egy bels\u0151 t\u0171 \u00e1lnevet hoz l\u00e9tre, amely t\u00f6bb kimeneti t\u0171t is m\u00f3dos\u00edthat minden alkalommal, amikor az \u00e1ln\u00e9v t\u0171 be van \u00e1ll\u00edtva. P\u00e9ld\u00e1ul defini\u00e1lhatunk egy \"[multi_pin my_fan]\" objektumot, amely k\u00e9t t\u0171t tartalmaz, majd be\u00e1ll\u00edthatjuk a \"pin=multi_pin:my_fan\" \u00e9rt\u00e9ket a \"[fan]\" szakaszban. Minden egyes ventil\u00e1torv\u00e1lt\u00e1skor mindk\u00e9t kimeneti t\u0171 friss\u00fcl. Ezek az \u00e1lnevek nem haszn\u00e1lhat\u00f3k l\u00e9ptet\u0151motoros t\u0171kkel. [multi_pin my_multi_pin] pins: # Az ehhez az \u00e1ln\u00e9vhez t\u00e1rs\u00edtott t\u0171k vessz\u0151vel elv\u00e1lasztott list\u00e1ja. # Ezt a param\u00e9tert meg kell adni.","title":"[multi_pin]"},{"location":"Config_Reference.html#tmc-motorvezerlo-konfiguracioja","text":"Trinamic l\u00e9ptet\u0151motor meghajt\u00f3k konfigur\u00e1l\u00e1sa UART/SPI \u00fczemm\u00f3dban. Tov\u00e1bbi inform\u00e1ci\u00f3k a TMC Drivers \u00fatmutat\u00f3ban \u00e9s a parancsreferenci\u00e1ban is tal\u00e1lhat\u00f3ak.","title":"TMC motorvez\u00e9rl\u0151 konfigur\u00e1ci\u00f3ja"},{"location":"Config_Reference.html#tmc2130","text":"TMC2130 motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1sa SPI-buszon kereszt\u00fcl. A funkci\u00f3 haszn\u00e1lat\u00e1hoz defini\u00e1ljon egy konfigur\u00e1ci\u00f3s szekci\u00f3t \"tmc2130\" el\u0151taggal, amelyet a megfelel\u0151 l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3s szekci\u00f3 neve k\u00f6vet (p\u00e9ld\u00e1ul \"[tmc2130 stepper_x]\"). [tmc2130 stepper_x] cs_pin: # A TMC2130 chip kiv\u00e1laszt\u00e1si vonal\u00e1nak megfelel\u0151 t\u0171. Ez a t\u0171 alacsony # \u00e9rt\u00e9kre lesz \u00e1ll\u00edtva az SPI-\u00fczenetek elej\u00e9n, \u00e9s az \u00fczenet befejez\u00e9se # ut\u00e1n magasra lesz h\u00fazva. Ezt a param\u00e9tert meg kell adni. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t az \u201e\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\u201d r\u00e9szben # tal\u00e1lja. #chain_position: #chain_length: # Ezek a param\u00e9terek egy SPI-l\u00e1ncot konfigur\u00e1lnak. A k\u00e9t param\u00e9ter # hat\u00e1rozza meg a l\u00e9ptet\u0151 poz\u00edci\u00f3j\u00e1t a l\u00e1ncban \u00e9s a teljes l\u00e1nchosszt. # Az 1. poz\u00edci\u00f3 a MOSI jelhez csatlakoz\u00f3 l\u00e9ptet\u0151nek felel meg. # Az alap\u00e9rtelmez\u00e9s szerint nem haszn\u00e1l SPI-l\u00e1ncot. #interpolate: True # Ha True, enged\u00e9lyezd a l\u00e9p\u00e9sinterpol\u00e1ci\u00f3t (az illeszt\u0151program # bels\u0151leg 256 mikrol\u00e9p\u00e9ses sebess\u00e9ggel l\u00e9ptet). Ez az interpol\u00e1ci\u00f3 egy # kis sziszt\u00e9m\u00e1s poz\u00edci\u00f3elt\u00e9r\u00e9st vezet be. A r\u00e9szletek\u00e9rt l\u00e1sd: # TMC_Drivers.md. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. run_current: # Az \u00e1ramer\u0151ss\u00e9g (amper RMS-ben) a motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1s\u00e1hoz a # l\u00e9ptet\u0151motor mozg\u00e1sa sor\u00e1n. Ezt a param\u00e9tert meg kell adni. #hold_current: # Az az \u00e1ramer\u0151ss\u00e9g (amper RMS-ben), amelyet a motorvez\u00e9rl\u0151nek akkor # kell leadni, amikor a l\u00e9ptet\u0151motor nem mozog. A hold_current be\u00e1ll\u00edt\u00e1sa # nem aj\u00e1nlott (a r\u00e9szletek\u00e9rt l\u00e1sd: TMC_Drivers.md). Az alap\u00e9rtelmezett # az, hogy nem cs\u00f6kkenti az \u00e1ramer\u0151ss\u00e9get. #sense_resistor: 0.110 # A motor \u00e9rz\u00e9kel\u0151 ellen\u00e1ll\u00e1s\u00e1nak ellen\u00e1ll\u00e1sa (ohmban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,110 ohm. #stealthchop_threshold: 0 # A \u201eStealthChop\u201d k\u00fcsz\u00f6b\u00e9rt\u00e9k be\u00e1ll\u00edt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges sebess\u00e9g # (mm/sec-ben). Ha be van \u00e1ll\u00edtva, a \"StealthChop\" m\u00f3d enged\u00e9lyezve # lesz, ha a l\u00e9ptet\u0151motor sebess\u00e9ge ez alatt az \u00e9rt\u00e9k alatt van. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, ami letiltja a \"StealthChop\" m\u00f3dot. #driver_IHOLDDELAY: 8 #driver_TPOWERDOWN: 0 #driver_TBL: 1 #driver_TOFF: 4 #driver_HEND: 7 #driver_HSTRT: 0 #driver_PWM_AUTOSCALE: True #driver_PWM_FREQ: 1 #driver_PWM_GRAD: 4 #driver_PWM_AMPL: 128 #driver_SGT: 0 # \u00c1ll\u00edtsd be a megadott regisztert a TMC2130 chip konfigur\u00e1ci\u00f3ja sor\u00e1n. # Ez egy\u00e9ni motorparam\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. # Az egyes param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a param\u00e9ter neve mellett # tal\u00e1lhat\u00f3k a fenti list\u00e1ban. #diag0_pin: #diag1_pin: # A mikrovez\u00e9rl\u0151 t\u0171je a TMC2130 chip egyik DIAG t\u0171j\u00e9hez csatlakozik. # Csak egyetlen DIAG t\u0171t kell megadni. A t\u0171 \"active low\", ez\u00e9rt # \u00e1ltal\u00e1ban \"^!\" el\u0151tagja van. Ennek be\u00e1ll\u00edt\u00e1sa egy # \u201etmc2130_stepper_x:virtual_endstop\u201d virtu\u00e1lis t\u0171t hoz l\u00e9tre, amely a # l\u00e9ptet\u0151 endstop_pin-jek\u00e9nt haszn\u00e1lhat\u00f3. Ez lehet\u0151v\u00e9 teszi az # \u201e\u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel\u201d funkci\u00f3t. (Gy\u0151z\u0151dj meg arr\u00f3l, # hogy a driver_SGT-t is megfelel\u0151 \u00e9rz\u00e9kenys\u00e9gi \u00e9rt\u00e9kre \u00e1ll\u00edtja be.) # Az alap\u00e9rtelmez\u00e9s az, hogy nem enged\u00e9lyezi az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli # kezd\u0151pont felv\u00e9telt.","title":"[tmc2130]"},{"location":"Config_Reference.html#tmc2208","text":"TMC2208 (vagy TMC2224) motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1sa egyvezet\u00e9kes UART-on kereszt\u00fcl. A funkci\u00f3 haszn\u00e1lat\u00e1hoz defini\u00e1ljon egy konfigur\u00e1ci\u00f3s r\u00e9szt \"tmc2208\" el\u0151taggal, amelyet a megfelel\u0151 l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3s r\u00e9sz neve k\u00f6vet (p\u00e9ld\u00e1ul \"[tmc2208 stepper_x]\"). [tmc2208 stepper_x] uart_pin: # A TMC2208 PDN_UART vonalhoz csatlakoztatott t\u0171. # Ezt a param\u00e9tert meg kell adni. #tx_pin: # Ha k\u00fcl\u00f6n v\u00e9teli \u00e9s ad\u00e1si vonalat haszn\u00e1l a meghajt\u00f3val val\u00f3 # kommunik\u00e1ci\u00f3hoz, akkor \u00e1ll\u00edtsd be az uart_pin param\u00e9tert a v\u00e9teli # l\u00e1bra, \u00e9s a tx_pin \u00e9rt\u00e9ket az \u00e1tviteli l\u00e1bra. Az alap\u00e9rtelmezett az # uart_pin haszn\u00e1lata mind olvas\u00e1shoz, mind \u00edr\u00e1shoz. #select_pins: # A tmc2208 UART el\u00e9r\u00e9se el\u0151tt be\u00e1ll\u00edtand\u00f3 t\u0171k vessz\u0151vel elv\u00e1lasztott # list\u00e1ja. Ez hasznos lehet egy anal\u00f3g mux konfigur\u00e1l\u00e1sakor az UART # kommunik\u00e1ci\u00f3hoz. Az alap\u00e9rtelmezett az, hogy nem konfigur\u00e1l # semmilyen \u00e9rintkez\u0151t. #interpolate: True # Ha True, enged\u00e9lyezd a l\u00e9p\u00e9sinterpol\u00e1ci\u00f3t (a motorvez\u00e9rl\u0151 bels\u0151leg # 256 mikrol\u00e9p\u00e9ses sebess\u00e9ggel l\u00e9ptet). Ez az interpol\u00e1ci\u00f3 egy kis # sziszt\u00e9m\u00e1s poz\u00edci\u00f3elt\u00e9r\u00e9st vezet be. A r\u00e9szletek\u00e9rt l\u00e1sd: # TMC_Drivers.md. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. run_current: # Az \u00e1ramer\u0151ss\u00e9g (amper RMS-ben) a meghajt\u00f3 konfigur\u00e1l\u00e1s\u00e1hoz a # l\u00e9ptet\u0151motor mozg\u00e1sa sor\u00e1n. Ezt a param\u00e9tert meg kell adni. #hold_current: # Az az \u00e1ramer\u0151ss\u00e9g (amper RMS-ben), amelyet a motorvez\u00e9rl\u0151 akkor # ad le, amikor a l\u00e9ptet\u0151 nem mozog. A hold_current be\u00e1ll\u00edt\u00e1sa nem # aj\u00e1nlott (a r\u00e9szletek\u00e9rt l\u00e1sd: TMC_Drivers.md). # Az alap\u00e9rtelmezett az, hogy nem cs\u00f6kkenti az \u00e1ramer\u0151ss\u00e9get. #sense_resistor: 0.110 # A motor \u00e9rz\u00e9kel\u0151 ellen\u00e1ll\u00e1s\u00e1nak ellen\u00e1ll\u00e1sa (ohmban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,110 ohm. #stealthchop_threshold: 0 # A \u201eStealthChop\u201d k\u00fcsz\u00f6b\u00e9rt\u00e9k be\u00e1ll\u00edt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges sebess\u00e9g # (mm/sec-ben). Ha be van \u00e1ll\u00edtva, a \"StealthChop\" m\u00f3d enged\u00e9lyezve # lesz, ha a l\u00e9ptet\u0151motor sebess\u00e9ge ez alatt az \u00e9rt\u00e9k alatt van. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, ami letiltja a \"StealthChop\" m\u00f3dot. #driver_IHOLDDELAY: 8 #driver_TPOWERDOWN: 20 #driver_TBL: 2 #driver_TOFF: 3 #driver_HEND: 0 #driver_HSTRT: 5 #driver_PWM_AUTOGRAD: True #driver_PWM_AUTOSCALE: True #driver_PWM_LIM: 12 #driver_PWM_REG: 8 #driver_PWM_FREQ: 1 #driver_PWM_GRAD: 14 #driver_PWM_OFS: 36 # \u00c1ll\u00edtsd be a megadott regisztert a TMC2208 chip konfigur\u00e1ci\u00f3ja sor\u00e1n. # Ez egy\u00e9ni motorparam\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. Az egyes # param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a param\u00e9ter neve mellett # tal\u00e1lhat\u00f3k a fenti list\u00e1ban.","title":"[tmc2208]"},{"location":"Config_Reference.html#tmc2209","text":"TMC2209 motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1sa egyvezet\u00e9kes UART-on kereszt\u00fcl. A funkci\u00f3 haszn\u00e1lat\u00e1hoz defini\u00e1ljon egy konfigur\u00e1ci\u00f3s szekci\u00f3t \"tmc2209\" el\u0151taggal, amelyet a megfelel\u0151 l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3s szekci\u00f3 neve k\u00f6vet (p\u00e9ld\u00e1ul \"[tmc2209 stepper_x]\"). [tmc2209 stepper_x] uart_pin: #tx_pin: #select_pins: #interpolate: True run_current: #hold_current: #sense_resistor: 0.110 #stealthchop_threshold: 0 # A param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd a \"TMC2208\" r\u00e9szt. #uart_address: # A TMC2209 chip c\u00edme UART \u00fczenetekhez (0 \u00e9s 3 k\u00f6z\u00f6tti eg\u00e9sz sz\u00e1m). # Ezt \u00e1ltal\u00e1ban akkor haszn\u00e1lj\u00e1k, ha t\u00f6bb TMC2209 chip csatlakozik # ugyanahhoz az UART \u00e9rintkez\u0151h\u00f6z. Az alap\u00e9rtelmezett \u00e9rt\u00e9k nulla. #driver_IHOLDDELAY: 8 #driver_TPOWERDOWN: 20 #driver_TBL: 2 #driver_TOFF: 3 #driver_HEND: 0 #driver_HSTRT: 5 #driver_PWM_AUTOGRAD: True #driver_PWM_AUTOSCALE: True #driver_PWM_LIM: 12 #driver_PWM_REG: 8 #driver_PWM_FREQ: 1 #driver_PWM_GRAD: 14 #driver_PWM_OFS: 36 #driver_SGTHRS: 0 # \u00c1ll\u00edtsd be a megadott regisztert a TMC2209 chip konfigur\u00e1ci\u00f3ja sor\u00e1n. # Ez egy\u00e9ni motorparam\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. # Az egyes param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a param\u00e9ter neve # mellett tal\u00e1lhat\u00f3k a fenti list\u00e1ban. #diag_pin: # A TMC2209 chip DIAG t\u0171j\u00e9hez csatlakoztatott mikrovez\u00e9rl\u0151 t\u0171je. # A t\u0171 el\u0151tagja \u00e1ltal\u00e1ban \"^\"-vel t\u00f6rt\u00e9nik, hogy lehet\u0151v\u00e9 tegye a # felh\u00faz\u00e1st. Ennek be\u00e1ll\u00edt\u00e1sa egy # \"tmc2209_stepper_x:virtual_endstop\" virtu\u00e1lis t\u0171t hoz l\u00e9tre, # amely a l\u00e9ptet\u0151 endstop_pin-jek\u00e9nt haszn\u00e1lhat\u00f3. Ez lehet\u0151v\u00e9 teszi a # \"v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telt\". (Gy\u0151z\u0151dj meg arr\u00f3l, # hogy a driver_SGTHRS-t is megfelel\u0151 \u00e9rz\u00e9kenys\u00e9gi \u00e9rt\u00e9kre \u00e1ll\u00edtja be.) # Alap\u00e9rtelmez\u00e9s szerint nincs enged\u00e9lyezve a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 n\u00e9lk\u00fcli # kezd\u0151pont felv\u00e9telt.","title":"[tmc2209]"},{"location":"Config_Reference.html#tmc2660","text":"TMC2660 motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1sa SPI-buszon kereszt\u00fcl. A funkci\u00f3 haszn\u00e1lat\u00e1hoz defini\u00e1ljon egy konfigur\u00e1ci\u00f3s szekci\u00f3t tmc2660 el\u0151taggal, amelyet a megfelel\u0151 l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3s szekci\u00f3 neve k\u00f6vet (p\u00e9ld\u00e1ul \"[tmc2660 stepper_x]\"). [tmc2660 stepper_x] cs_pin: # A TMC2660 chip kiv\u00e1laszt\u00e1si vonal\u00e1nak megfelel\u0151 t\u0171. Ez a t\u0171 # alacsonyra lesz \u00e1ll\u00edtva az SPI-\u00fczenetek elej\u00e9n, \u00e9s magasra az # \u00fczenet\u00e1tvitel befejez\u00e9se ut\u00e1n. Ezt a param\u00e9tert meg kell adni. #spi_speed: 4000000 # A TMC2660 l\u00e9ptet\u0151 meghajt\u00f3val val\u00f3 kommunik\u00e1ci\u00f3hoz haszn\u00e1lt # SPI-busz-frekvencia. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 4000000. #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t a \u201e\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\u201d # r\u00e9szben tal\u00e1lja. #interpolate: True # Ha True, enged\u00e9lyezd a l\u00e9p\u00e9sinterpol\u00e1ci\u00f3t (az illeszt\u0151program # bels\u0151leg 256 mikrol\u00e9p\u00e9ses sebess\u00e9ggel l\u00e9ptet). Ez csak akkor # m\u0171k\u00f6dik, ha a mikrol\u00e9p\u00e9sek 16-ra vannak \u00e1ll\u00edtva. Az interpol\u00e1ci\u00f3 # egy kis sziszt\u00e9m\u00e1s poz\u00edci\u00f3elt\u00e9r\u00e9st vezet be. A r\u00e9szletek\u00e9rt l\u00e1sd a # TMC_Drivers.md f\u00e1jlt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. run_current: # A motorvez\u00e9rl\u0151 \u00e1ltal a l\u00e9ptet\u0151 mozg\u00e1sa sor\u00e1n leadott \u00e1ram er\u0151ss\u00e9ge # (amper RMS-ben). Ezt a param\u00e9tert meg kell adni. #sense_resistor: # A motor \u00e9rz\u00e9kel\u0151 ellen\u00e1ll\u00e1s\u00e1nak ellen\u00e1ll\u00e1sa (ohmban). # Ezt a param\u00e9tert meg kell adni. #idle_current_percent: 100 # A motorvez\u00e9rl\u0151 run_current sz\u00e1zal\u00e9kos ar\u00e1nya lecs\u00f6kken, amikor az # \u00fcresj\u00e1rati id\u0151t\u00fall\u00e9p\u00e9s lej\u00e1r (az id\u0151t\u00fall\u00e9p\u00e9st az [idle_timeout] # konfigur\u00e1ci\u00f3s szakaszban kell be\u00e1ll\u00edtani). Az \u00e1ramer\u0151ss\u00e9g ism\u00e9t # megemelkedik, ha a l\u00e9ptet\u0151nek ism\u00e9t mozognia kell. \u00dcgyelj arra, # hogy ezt el\u00e9g magas \u00e9rt\u00e9kre \u00e1ll\u00edtsd be, hogy a l\u00e9ptet\u0151k ne vesz\u00edts\u00e9k el # poz\u00edci\u00f3jukat. Van egy kis k\u00e9sleltet\u00e9s is, am\u00edg az \u00e1ram ism\u00e9t # megemelkedik, ez\u00e9rt ezt vedd figyelembe, amikor a l\u00e9ptet\u0151 # alapj\u00e1rata k\u00f6zben gyors mozdulatokat ad parancsba. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 100 (nincs cs\u00f6kkent\u00e9s). #driver_TBL: 2 #driver_RNDTF: 0 #driver_HDEC: 0 #driver_CHM: 0 #driver_HEND: 3 #driver_HSTRT: 3 #driver_TOFF: 4 #driver_SEIMIN: 0 #driver_SEDN: 0 #driver_SEMAX: 0 #driver_SEUP: 0 #driver_SEMIN: 0 #driver_SFILT: 0 #driver_SGT: 0 #driver_SLPH: 0 #driver_SLPL: 0 #driver_DISS2G: 0 #driver_TS2G: 3 # \u00c1ll\u00edtsd be a megadott param\u00e9tert a TMC2660 chip konfigur\u00e1ci\u00f3ja sor\u00e1n. # Ez egy\u00e9ni motorvez\u00e9rl\u0151 param\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. # Az egyes param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a param\u00e9ter neve # mellett tal\u00e1lhat\u00f3k a fenti list\u00e1ban. Tekintsd meg a TMC2660 adatlapj\u00e1t # az egyes param\u00e9terek m\u0171k\u00f6d\u00e9s\u00e9r\u0151l \u00e9s a param\u00e9ter kombin\u00e1ci\u00f3k # korl\u00e1toz\u00e1sair\u00f3l. K\u00fcl\u00f6n\u00f6s figyelmet kell ford\u00edtani a CHOPCONF # regiszterre, ahol a CHM null\u00e1ra vagy egyesre \u00e1ll\u00edt\u00e1sa # elrendez\u00e9sm\u00f3dos\u00edt\u00e1sokhoz vezet (a HDEC els\u0151 bitje) ebben az esetben # a HSTRT MSB-jek\u00e9nt \u00e9rtelmez\u0151dik).","title":"[tmc2660]"},{"location":"Config_Reference.html#tmc5160","text":"TMC5160 motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1sa SPI-buszon kereszt\u00fcl. A funkci\u00f3 haszn\u00e1lat\u00e1hoz defini\u00e1ljon egy konfigur\u00e1ci\u00f3s szekci\u00f3t \"tmc5160\" el\u0151taggal, amelyet a megfelel\u0151 l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3s szekci\u00f3 neve k\u00f6vet (p\u00e9ld\u00e1ul \"[tmc5160 stepper_x]\"). [tmc5160 stepper_x] cs_pin: # A TMC5160 chip kiv\u00e1laszt\u00e1si vonal\u00e1nak megfelel\u0151 t\u0171. Ez a t\u0171 alacsony # \u00e9rt\u00e9kre lesz \u00e1ll\u00edtva az SPI-\u00fczenetek elej\u00e9n, \u00e9s az \u00fczenet befejez\u00e9se ut\u00e1n # magasra v\u00e1ltozik. Ezt a param\u00e9tert meg kell adni. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t az \u201e\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\u201d # r\u00e9szben tal\u00e1lja. #chain_position: #chain_length: # Ezek a param\u00e9terek egy SPI-l\u00e1ncot konfigur\u00e1lnak. A k\u00e9t param\u00e9ter # hat\u00e1rozza meg a l\u00e9ptet\u0151 poz\u00edci\u00f3j\u00e1t a l\u00e1ncban \u00e9s a teljes l\u00e1nchosszt. # Az 1. poz\u00edci\u00f3 a MOSI jelhez csatlakoz\u00f3 l\u00e9ptet\u0151nek felel meg. # Az alap\u00e9rtelmez\u00e9s szerint nem haszn\u00e1l SPI-l\u00e1ncot. #interpolate: True # Ha True, enged\u00e9lyezd a l\u00e9p\u00e9sinterpol\u00e1ci\u00f3t (a motorvez\u00e9rl\u0151 bels\u0151leg # 256 mikrol\u00e9p\u00e9ses sebess\u00e9ggel l\u00e9ptet). Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. run_current: # Az \u00e1ramer\u0151ss\u00e9g (amper RMS-ben) a meghajt\u00f3 konfigur\u00e1l\u00e1s\u00e1hoz a # l\u00e9ptet\u0151 mozg\u00e1sa sor\u00e1n. Ezt a param\u00e9tert meg kell adni. #hold_current: # Az az \u00e1ramer\u0151ss\u00e9g (amper RMS-ben), amelyet a motorvez\u00e9rl\u0151 akkor # ad le, amikor a l\u00e9ptet\u0151 nem mozog. A hold_current be\u00e1ll\u00edt\u00e1sa nem # aj\u00e1nlott (a r\u00e9szletek\u00e9rt l\u00e1sd: TMC_Drivers.md). # Az alap\u00e9rtelmezett az, hogy nem cs\u00f6kkenti az \u00e1ramer\u0151ss\u00e9get. #sense_resistor: 0.075 # A motor \u00e9rz\u00e9kel\u0151 ellen\u00e1ll\u00e1s\u00e1nak ellen\u00e1ll\u00e1sa (ohmban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,075 ohm. #stealthchop_threshold: 0 # A \u201eStealthChop\u201d k\u00fcsz\u00f6b\u00e9rt\u00e9k be\u00e1ll\u00edt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges sebess\u00e9g # (mm/sec-ben). Ha be van \u00e1ll\u00edtva, a \"StealthChop\" m\u00f3d enged\u00e9lyezve # lesz, ha a l\u00e9ptet\u0151motor sebess\u00e9ge ez alatt az \u00e9rt\u00e9k alatt van. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, ami letiltja a \"StealthChop\" m\u00f3dot. #driver_IHOLDDELAY: 6 #driver_TPOWERDOWN: 10 #driver_TBL: 2 #driver_TOFF: 3 #driver_HEND: 2 #driver_HSTRT: 5 #driver_FD3: 0 #driver_TPFD: 4 #driver_CHM: 0 #driver_VHIGHFS: 0 #driver_VHIGHCHM: 0 #driver_DISS2G: 0 #driver_DISS2VS: 0 #driver_PWM_AUTOSCALE: True #driver_PWM_AUTOGRAD: True #driver_PWM_FREQ: 0 #driver_FREEWHEEL: 0 #driver_PWM_GRAD: 0 #driver_PWM_OFS: 30 #driver_PWM_REG: 4 #driver_PWM_LIM: 12 #driver_SGT: 0 #driver_SEMIN: 0 #driver_SEUP: 0 #driver_SEMAX: 0 #driver_SEDN: 0 #driver_SEIMIN: 0 #driver_SFILT: 0 # \u00c1ll\u00edtsd be a megadott regisztert a TMC5160 chip konfigur\u00e1ci\u00f3ja sor\u00e1n. # Ez egy\u00e9ni motorparam\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. Az egyes # param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a param\u00e9ter neve mellett # tal\u00e1lhat\u00f3k a fenti list\u00e1ban. #diag0_pin: #diag1_pin: # A mikrovez\u00e9rl\u0151 t\u0171je a TMC5160 chip egyik DIAG vonal\u00e1hoz csatlakozik. # Csak egyetlen DIAG t\u0171t kell megadni. A t\u0171 \"active low\", ez\u00e9rt \u00e1ltal\u00e1ban # \"^!\" el\u0151tagja van. Ennek be\u00e1ll\u00edt\u00e1sa egy # \u201etmc5160_stepper_x:virtual_endstop\u201d virtu\u00e1lis t\u0171t hoz l\u00e9tre, amely a # l\u00e9ptet\u0151 endstop_pin-jek\u00e9nt haszn\u00e1lhat\u00f3. Ez lehet\u0151v\u00e9 teszi az \u201e\u00e9rz\u00e9kel\u0151 # n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel\u201d funkci\u00f3t. (Gy\u0151z\u0151dj meg arr\u00f3l, hogy a # driver_SGT-t is megfelel\u0151 \u00e9rz\u00e9kenys\u00e9gi \u00e9rt\u00e9kre \u00e1ll\u00edtja be.) # Az alap\u00e9rtelmez\u00e9s az, hogy nem enged\u00e9lyezi az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli # kezd\u0151pont felv\u00e9telt.","title":"[tmc5160]"},{"location":"Config_Reference.html#futas-ideju-leptetomotor-aram-konfiguracio","text":"","title":"Fut\u00e1s-idej\u0171 l\u00e9ptet\u0151motor \u00e1ram konfigur\u00e1ci\u00f3"},{"location":"Config_Reference.html#ad5206","text":"Statikusan konfigur\u00e1lt AD5206 digipotok, amelyek SPI-buszon kereszt\u00fcl csatlakoznak (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"ad5206\" el\u0151taggal). [ad5206 my_digipot] enable_pin: # Az AD5206 chip kiv\u00e1laszt\u00e1si vonal\u00e1nak megfelel\u0151 pin. Ez a pin # az SPI-\u00fczenetek elej\u00e9n alacsonyra lesz \u00e1ll\u00edtva, \u00e9s magasra emelkedik # az \u00fczenet befejez\u00e9se ut\u00e1n. Ezt a param\u00e9tert meg kell adni. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # L\u00e1sd az \"\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\" c\u00edm\u0171 le\u00edr\u00e1st a # fenti param\u00e9terek megad\u00e1s\u00e1hoz. #channel_1: #channel_2: #channel_3: #channel_4: #channel_5: #channel_6: # Az adott AD5206 csatorna statikus be\u00e1ll\u00edt\u00e1s\u00e1ra szolg\u00e1l\u00f3 \u00e9rt\u00e9k. Ez # \u00e1ltal\u00e1ban 0,0 \u00e9s 1,0 k\u00f6z\u00f6tti sz\u00e1mra van \u00e1ll\u00edtva, ahol az 1,0 a # legnagyobb ellen\u00e1ll\u00e1s \u00e9s 0,0 a legkisebb ellen\u00e1ll\u00e1s. Azonban, # a tartom\u00e1ny megv\u00e1ltoztathat\u00f3 a 'scale' param\u00e9terrel (l\u00e1sd al\u00e1bb). # Ha egy csatorna nincs megadva, akkor konfigur\u00e1latlanul marad. #scale: # Ezzel a param\u00e9terrel m\u00f3dos\u00edthat\u00f3 a 'channel_x' param\u00e9ter # \u00e9rtelmez\u00e9se. Ha megadod, akkor a 'channel_x' param\u00e9tereknek # 0,0 \u00e9s 'scale' k\u00f6z\u00f6tt kell lennie. Ez akkor lehet hasznos, ha az # AD5206 a l\u00e9ptet\u0151 fesz\u00fclts\u00e9g referenci\u00e1k be\u00e1ll\u00edt\u00e1s\u00e1ra szolg\u00e1l. A \u201em\u00e9rleg\u201d tud # egyen\u00e9rt\u00e9k\u0171 l\u00e9ptet\u0151 \u00e1ramer\u0151ss\u00e9get \u00e1ll\u00edtani, ha az AD5206 \u00e9rt\u00e9ken lenne # a legnagyobb ellen\u00e1ll\u00e1sa, majd a 'channel_x' param\u00e9terek lehetnek # megadva a l\u00e9ptet\u0151 k\u00edv\u00e1nt amper\u00e9rt\u00e9k\u00e9vel. Az # alap\u00e9rtelmez\u00e9s szerint nem sk\u00e1l\u00e1zza a 'channel_x' param\u00e9tereket.","title":"[ad5206]"},{"location":"Config_Reference.html#mcp4451","text":"Statikusan konfigur\u00e1lt MCP4451 digipot, amely I2C buszon kereszt\u00fcl csatlakozik (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"mcp4451\" el\u0151taggal). [mcp4451 my_digipot] i2c_address: # Az I2C c\u00edm, amelyet a chip az I2C buszon haszn\u00e1l. # Ezt a param\u00e9tert meg kell adni. #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #wiper_0: #wiper_1: #wiper_2: #wiper_3: # Az az \u00e9rt\u00e9k, amelyre az adott MCP4451 \"wiper\" statikusan be\u00e1ll\u00edthat\u00f3. # Ez \u00e1ltal\u00e1ban 0,0 \u00e9s 1,0 k\u00f6z\u00f6tti sz\u00e1mra van be\u00e1ll\u00edtva, ahol az 1,0 a # legnagyobb ellen\u00e1ll\u00e1s, a 0,0 pedig a legkisebb ellen\u00e1ll\u00e1s. # A tartom\u00e1ny azonban m\u00f3dos\u00edthat\u00f3 a 'scale' param\u00e9terrel (l\u00e1sd al\u00e1bb). # Ha nincs megadva 'wiper', akkor az konfigur\u00e1latlanul marad. #scale: # Ezzel a param\u00e9terrel m\u00f3dos\u00edthat\u00f3 a 'wiper_x' param\u00e9terek \u00e9rtelmez\u00e9se. # Ha meg van adva, akkor a 'wiper_x' param\u00e9ternek 0,0 \u00e9s 'scale' k\u00f6z\u00f6tt # kell lennie. Ez akkor lehet hasznos, ha az MCP4451-et a l\u00e9ptet\u0151 # fesz\u00fclts\u00e9greferenci\u00e1k be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lj\u00e1k. A 'scale' be\u00e1ll\u00edthat\u00f3 az # egyen\u00e9rt\u00e9k\u0171 l\u00e9ptet\u0151 \u00e1ramer\u0151ss\u00e9gre, ha az MCP4451 a legnagyobb # ellen\u00e1ll\u00e1son volt, majd a 'wiper_x' param\u00e9terek megadhat\u00f3k a # l\u00e9ptet\u0151 k\u00edv\u00e1nt \u00e1ramer\u0151ss\u00e9ge seg\u00edts\u00e9g\u00e9vel. # Az alap\u00e9rtelmez\u00e9s az, hogy a 'wiper_x' param\u00e9tereket nem sk\u00e1l\u00e1zzuk.","title":"[mcp4451]"},{"location":"Config_Reference.html#mcp4728","text":"Statikusan konfigur\u00e1lt MCP4728 digit\u00e1lis-anal\u00f3g \u00e1talak\u00edt\u00f3, amely I2C buszon kereszt\u00fcl csatlakozik (az \"mcp4728\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni). [mcp4728 my_dac] #i2c_address: 96 # Az I2C c\u00edm, amelyet a chip az I2C buszon haszn\u00e1l. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 96. #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #channel_a: #channel_b: #channel_c: #channel_d: # Az adott MCP4728 csatorna statikus be\u00e1ll\u00edt\u00e1s\u00e1ra szolg\u00e1l\u00f3 \u00e9rt\u00e9k. # Ez \u00e1ltal\u00e1ban 0,0 \u00e9s 1,0 k\u00f6z\u00f6tti sz\u00e1mra van be\u00e1ll\u00edtva, ahol az 1,0 a # legmagasabb fesz\u00fclts\u00e9g (2,048 V), a 0,0 pedig a legalacsonyabb # fesz\u00fclts\u00e9g. A tartom\u00e1ny azonban m\u00f3dos\u00edthat\u00f3 a 'scale' # param\u00e9terrel (l\u00e1sd al\u00e1bb). # Ha egy csatorna nincs megadva, akkor az konfigur\u00e1latlanul marad. #scale: # Ez a param\u00e9ter haszn\u00e1lhat\u00f3 a 'channel_x' param\u00e9terek # \u00e9rtelmez\u00e9s\u00e9nek megv\u00e1ltoztat\u00e1s\u00e1ra. Ha meg van adva, akkor a # 'channel_x' param\u00e9ternek 0,0 \u00e9s 'scale' k\u00f6z\u00f6tt kell lennie. Ez akkor # lehet hasznos, ha az MCP4728-at a l\u00e9ptet\u0151 fesz\u00fclts\u00e9greferenci\u00e1k # be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lj\u00e1k. A 'scale' be\u00e1ll\u00edthat\u00f3 az egyen\u00e9rt\u00e9k\u0171 l\u00e9ptet\u0151 # \u00e1ramer\u0151ss\u00e9g\u00e9re, ha az MCP4728 a legmagasabb fesz\u00fclts\u00e9gen volt # (2,048 V), majd a 'channel_x' param\u00e9terek megadhat\u00f3k a l\u00e9ptet\u0151 # k\u00edv\u00e1nt amper\u00e9rt\u00e9k\u00e9vel. Az alap\u00e9rtelmezett az, hogy nem # m\u00e9retezi a 'channel_x' param\u00e9tereket.","title":"[mcp4728]"},{"location":"Config_Reference.html#mcp4018","text":"Statikusan konfigur\u00e1lt MCP4018 digipot, amely k\u00e9t GPIO \"bit banging\" t\u0171n kereszt\u00fcl csatlakozik (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"mcp4018\" el\u0151taggal). [mcp4018 my_digipot] scl_pin: # Az SCL \"\u00f3ra\" t\u0171je. Ezt a param\u00e9tert meg kell adni. sda_pin: # Az SDA \"adat\" t\u0171je. Ezt a param\u00e9tert meg kell adni. wiper: # Az az \u00e9rt\u00e9k, amelyre az adott MCP4018 \"wiper\" statikusan be\u00e1ll\u00edthat\u00f3. # Ez \u00e1ltal\u00e1ban 0,0 \u00e9s 1,0 k\u00f6z\u00f6tti sz\u00e1mra van be\u00e1ll\u00edtva, ahol az 1,0 a # legnagyobb ellen\u00e1ll\u00e1s, a 0,0 pedig a legkisebb ellen\u00e1ll\u00e1s. # A tartom\u00e1ny azonban m\u00f3dos\u00edthat\u00f3 a 'scale' param\u00e9terrel (l\u00e1sd al\u00e1bb). # Ezt a param\u00e9tert meg kell adni. #scale: # Ezzel a param\u00e9terrel m\u00f3dos\u00edthat\u00f3 a 'wiper' param\u00e9ter \u00e9rtelmez\u00e9se. # Ha van, akkor az 'wiper' param\u00e9ternek 0,0 \u00e9s 'scale' k\u00f6z\u00f6tt kell lennie. # Ez akkor lehet hasznos, ha az MCP4018-at a l\u00e9ptet\u0151 fesz\u00fclts\u00e9greferenci\u00e1k # be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lj\u00e1k. A 'scale' be\u00e1ll\u00edthat\u00f3 az egyen\u00e9rt\u00e9k\u0171 l\u00e9ptet\u0151 # \u00e1ramer\u0151ss\u00e9g\u00e9re, ha az MCP4018 a legnagyobb ellen\u00e1ll\u00e1son van, # majd a 'wiper' param\u00e9ter megadhat\u00f3 a l\u00e9ptet\u0151 k\u00edv\u00e1nt amper\u00e9rt\u00e9k\u00e9vel. # Az alap\u00e9rtelmezett be\u00e1ll\u00edt\u00e1s az, hogy nem sk\u00e1l\u00e1zza a 'wiper' param\u00e9tert.","title":"[mcp4018]"},{"location":"Config_Reference.html#kijelzotamogatas","text":"","title":"Kijelz\u0151t\u00e1mogat\u00e1s"},{"location":"Config_Reference.html#display","text":"A mikrokontrollerhez csatlakoztatott kijelz\u0151 t\u00e1mogat\u00e1sa. [display] lcd_type: # A haszn\u00e1lt LCD chip t\u00edpusa. Ez lehet \"hd44780\", \"hd44780_spi\", \"st7920\", # \"emulated_st7920\", \"uc1701\", \"ssd1306\" vagy \"sh1106\". Az egyes # t\u00edpusokr\u00f3l \u00e9s az \u00e1ltaluk biztos\u00edtott tov\u00e1bbi param\u00e9terekr\u0151l az al\u00e1bbi # k\u00e9perny\u0151szakaszokban tal\u00e1l inform\u00e1ci\u00f3kat. # Ezt a param\u00e9tert meg kell adni. #display_group: # A kijelz\u0151n megjelen\u00edtend\u0151 display_data csoport neve. Ez szab\u00e1lyozza a # k\u00e9perny\u0151 tartalm\u00e1t (tov\u00e1bbi inform\u00e1ci\u00f3\u00e9rt l\u00e1sd a \u201edisplay_data\u201d r\u00e9szt). # Az alap\u00e9rtelmezett _default_20x4 a hd44780-as kijelz\u0151kn\u00e9l \u00e9s a # _default_16x4 a t\u00f6bbi k\u00e9perny\u0151n\u00e9l. #menu_timeout: # Id\u0151korl\u00e1t a men\u00fch\u00f6z. Ha ennyi m\u00e1sodpercig inakt\u00edv, az automatikusan # kil\u00e9p a men\u00fcb\u0151l, vagy visszat\u00e9r a f\u0151men\u00fcbe, ha az automatikus ind\u00edt\u00e1s # enged\u00e9lyezve van. Az alap\u00e9rtelmezett 0 m\u00e1sodperc (letiltva) #menu_root: # A f\u0151men\u00fc r\u00e9sz neve, amely akkor jelenik meg, amikor a k\u00f3dol\u00f3ra kattint # a kezd\u0151k\u00e9perny\u0151n. Az alap\u00e9rtelmezett \u00e9rt\u00e9k a __main, \u00e9s ez a # klippy/extras/display/menu.cfg f\u00e1jlban meghat\u00e1rozott alap\u00e9rtelmezett # men\u00fcket mutatja. #menu_reverse_navigation: # Ha enged\u00e9lyezve van, a list\u00e1ban t\u00f6rt\u00e9n\u0151 navig\u00e1ci\u00f3 fel \u00e9s lefel\u00e9 ir\u00e1ny\u00e1t # v\u00e1ltja. Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. Ez a param\u00e9ter nem k\u00f6telez\u0151. #encoder_pins: # A k\u00f3dol\u00f3hoz csatlakoztatott \u00e9rintkez\u0151k. A k\u00f3dol\u00f3 haszn\u00e1latakor 2 # \u00e9rintkez\u0151t kell biztos\u00edtani. Ezt a param\u00e9tert a men\u00fc haszn\u00e1latakor kell # megadni. #encoder_steps_per_detent: # H\u00e1ny l\u00e9p\u00e9st ad ki a k\u00f3dol\u00f3 reteszel\u00e9senk\u00e9nt (\"kattint\u00e1s\"). Ha a # k\u00f3dol\u00f3nak k\u00e9t reteszre van sz\u00fcks\u00e9ge a bejegyz\u00e9sek k\u00f6z\u00f6tti mozg\u00e1shoz, # vagy k\u00e9t bejegyz\u00e9st mozgat meg egy r\u00f6gz\u00edt\u00e9sb\u0151l, pr\u00f3b\u00e1ld meg ezt # megv\u00e1ltoztatni. A megengedett \u00e9rt\u00e9kek 2 (f\u00e9ll\u00e9pcs\u0151s) vagy # 4 (teljes l\u00e9p\u00e9s). Az alap\u00e9rtelmezett \u00e9rt\u00e9k a 4. #click_pin: # Az \u201eEnter\u201d gombhoz vagy a k\u00f3dol\u00f3 \u201ekattint\u00e1s\u00e1hoz\u201d csatlakoztatott t\u0171. # Ezt a param\u00e9tert a men\u00fc haszn\u00e1latakor kell megadni. # Az \u201eanalog_range_click_pin\u201d konfigur\u00e1ci\u00f3s param\u00e9ter jelenl\u00e9te ezt a # param\u00e9tert digit\u00e1lisr\u00f3l anal\u00f3gra v\u00e1ltoztatja. #back_pin: # A \u201evissza\u201d gombhoz csatlakoztatott t\u0171. Ez a param\u00e9ter nem k\u00f6telez\u0151, # a men\u00fc en\u00e9lk\u00fcl is haszn\u00e1lhat\u00f3. Az \u201eanalog_range_back_pin\u201d # konfigur\u00e1ci\u00f3s param\u00e9ter jelenl\u00e9te ezt a param\u00e9tert digit\u00e1lisr\u00f3l # anal\u00f3gra v\u00e1ltoztatja. #up_pin: # A t\u0171 a \u201efel\u201d gombhoz csatlakozik. Ezt a param\u00e9tert k\u00f3dol\u00f3 n\u00e9lk\u00fcli men\u00fc # haszn\u00e1latakor kell megadni. Az \u201eanalog_range_up_pin\u201d konfigur\u00e1ci\u00f3s # param\u00e9ter jelenl\u00e9te ezt a param\u00e9tert digit\u00e1lisr\u00f3l anal\u00f3gra v\u00e1ltoztatja. #down_pin: # A t\u0171 a \u201ele\u201d gombhoz csatlakozik. Ezt a param\u00e9tert k\u00f3dol\u00f3 n\u00e9lk\u00fcli men\u00fc # haszn\u00e1latakor kell megadni. Az \u201eanalog_range_down_pin\u201d konfigur\u00e1ci\u00f3s # param\u00e9ter jelenl\u00e9te ezt a param\u00e9tert digit\u00e1lisr\u00f3l anal\u00f3gra v\u00e1ltoztatja. #kill_pin: # A t\u0171 a \u201ekill\u201d gombhoz csatlakozik. Ez a gomb v\u00e9szle\u00e1ll\u00edt\u00e1st h\u00edv. # Az \u201eanalog_range_kill_pin\u201d konfigur\u00e1ci\u00f3s param\u00e9ter jelenl\u00e9te ezt a # param\u00e9tert digit\u00e1lisr\u00f3l anal\u00f3gra v\u00e1ltoztatja. #analog_pullup_resistor: 4700 # Az anal\u00f3g gombhoz csatlakoztatott felh\u00faz\u00f3 ellen\u00e1ll\u00e1sa (ohmban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 4700 ohm. #analog_range_click_pin: # Az \u201eEnter\u201d gomb ellen\u00e1ll\u00e1si tartom\u00e1nya. # Anal\u00f3g gomb haszn\u00e1lata eset\u00e9n a tartom\u00e1ny minim\u00e1lis \u00e9s # maxim\u00e1lis \u00e9rt\u00e9keit vessz\u0151vel elv\u00e1lasztva kell megadni. #analog_range_back_pin: # A \u201evissza\u201d gomb ellen\u00e1ll\u00e1si tartom\u00e1nya. # Anal\u00f3g gomb haszn\u00e1lata eset\u00e9n a tartom\u00e1ny minim\u00e1lis \u00e9s # maxim\u00e1lis \u00e9rt\u00e9keit vessz\u0151vel elv\u00e1lasztva kell megadni. #analog_range_up_pin: # A \u201efel\u201d gomb ellen\u00e1ll\u00e1si tartom\u00e1nya. # Anal\u00f3g gomb haszn\u00e1lata eset\u00e9n a tartom\u00e1ny minim\u00e1lis \u00e9s # maxim\u00e1lis \u00e9rt\u00e9keit vessz\u0151vel elv\u00e1lasztva kell megadni. #analog_range_down_pin: # A \u201ele\u201d gomb ellen\u00e1ll\u00e1si tartom\u00e1nya. # Anal\u00f3g gomb haszn\u00e1lata eset\u00e9n a tartom\u00e1ny minim\u00e1lis \u00e9s # maxim\u00e1lis \u00e9rt\u00e9keit vessz\u0151vel elv\u00e1lasztva kell megadni. #analog_range_kill_pin: # A \u201ekill\u201d gomb ellen\u00e1ll\u00e1si tartom\u00e1nya. # Anal\u00f3g gomb haszn\u00e1lata eset\u00e9n a tartom\u00e1ny minim\u00e1lis \u00e9s # maxim\u00e1lis \u00e9rt\u00e9keit vessz\u0151vel elv\u00e1lasztva kell megadni.","title":"[display]"},{"location":"Config_Reference.html#hd44780-kijelzo","text":"Inform\u00e1ci\u00f3k a HD44780 kijelz\u0151k konfigur\u00e1l\u00e1s\u00e1r\u00f3l (amelyet a \"RepRapDiscount 2004 Smart Controller\" t\u00edpus\u00fa kijelz\u0151kben haszn\u00e1lnak). [display] lcd_type: hd44780 # \u00c1ll\u00edtsd \"hd44780\" \u00e9rt\u00e9kre a hd44780 kijelz\u0151kh\u00f6z. rs_pin: e_pin: d4_pin: d5_pin: d6_pin: d7_pin: # A t\u0171k egy hd44780 t\u00edpus\u00fa LCD-hez csatlakoznak. # Ezeket a param\u00e9tereket meg kell adni. #hd44780_protocol_init: True # V\u00e9gezz 8 bites/4 bites protokoll inicializ\u00e1l\u00e1st hd44780 kijelz\u0151n. # Ez sz\u00fcks\u00e9ges a val\u00f3di hd44780-as eszk\u00f6z\u00f6k\u00f6n. El\u0151fordulhat # azonban, hogy ezt bizonyos \"kl\u00f3noz\u00f3\" eszk\u00f6z\u00f6k\u00f6n le kell tiltani. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #line_length: # \u00c1ll\u00edtsd be a soronk\u00e9nti karakterek sz\u00e1m\u00e1t egy hd44780 t\u00edpus\u00fa # LCD-n. A lehets\u00e9ges \u00e9rt\u00e9kek: 20 (alap\u00e9rtelmezett) \u00e9s 16. # A sorok sz\u00e1ma 4-re van r\u00f6gz\u00edtve. ...","title":"hd44780 kijelz\u0151"},{"location":"Config_Reference.html#hd44780_spi-kijelzo","text":"Inform\u00e1ci\u00f3 a HD44780_spi kijelz\u0151 konfigur\u00e1l\u00e1s\u00e1r\u00f3l egy 20x04-es kijelz\u0151, egy hardveres \"shift register\" (amelyet a mightyboard alap\u00fa nyomtat\u00f3kban haszn\u00e1lnak). [display] lcd_type: hd44780_spi # \u00c1ll\u00edtsd be a \"hd44780_spi\" \u00e9rt\u00e9ket a hd44780_spi kijelz\u0151kh\u00f6z. latch_pin: spi_software_sclk_pin: spi_software_mosi_pin: spi_software_miso_pin: # A kijelz\u0151t vez\u00e9rl\u0151 m\u0171szakregiszterhez csatlakoztatott t\u0171k. # Az spi_software_miso_pin-t a nyomtat\u00f3 alaplapj\u00e1nak haszn\u00e1laton # k\u00edv\u00fcli t\u0171j\u00e9re kell \u00e1ll\u00edtani, mivel a shift regiszternek nincs MISO t\u0171je, # de a szoftver SPI megval\u00f3s\u00edt\u00e1s\u00e1hoz ezt a t\u0171t be kell \u00e1ll\u00edtani. #hd44780_protocol_init: True # V\u00e9gezz 8 bites/4 bites protokoll inicializ\u00e1l\u00e1st hd44780 kijelz\u0151n. # Ez sz\u00fcks\u00e9ges a val\u00f3di hd44780-as eszk\u00f6z\u00f6k\u00f6n. El\u0151fordulhat # azonban, hogy ezt bizonyos \"kl\u00f3noz\u00f3\" eszk\u00f6z\u00f6k\u00f6n le kell tiltani. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #line_length: # \u00c1ll\u00edtsd be a soronk\u00e9nti karakterek sz\u00e1m\u00e1t egy hd44780 t\u00edpus\u00fa LCD-n. # A lehets\u00e9ges \u00e9rt\u00e9kek: 20 (alap\u00e9rtelmezett) \u00e9s 16. # A sorok sz\u00e1ma 4-re van r\u00f6gz\u00edtve. ...","title":"hd44780_spi kijelz\u0151"},{"location":"Config_Reference.html#st7920-kijelzo","text":"Inform\u00e1ci\u00f3k az ST7920 kijelz\u0151k konfigur\u00e1l\u00e1s\u00e1r\u00f3l (amelyet a \"RepRapDiscount 12864 Full Graphic Smart Controller\" t\u00edpus\u00fa kijelz\u0151kn\u00e9l haszn\u00e1lnak). [display] lcd_type: st7920 # \u00c1ll\u00edtsd az \"st7920\"-ra az st7920-as kijelz\u0151kh\u00f6z. cs_pin: sclk_pin: sid_pin: # A t\u0171k egy st7920 t\u00edpus\u00fa LCD-hez csatlakoznak. # Ezeket a param\u00e9tereket meg kell adni. ...","title":"st7920 kijelz\u0151"},{"location":"Config_Reference.html#emulated_st7920-kijelzo","text":"Inform\u00e1ci\u00f3 az emul\u00e1lt ST7920 kijelz\u0151 konfigur\u00e1l\u00e1s\u00e1r\u00f3l. Megtal\u00e1lhat\u00f3 n\u00e9h\u00e1ny \"2,4 h\u00fcvelykes \u00e9rint\u0151k\u00e9perny\u0151s eszk\u00f6zben\" \u00e9s hasonl\u00f3kban. [display] lcd_type: emulated_st7920 # \u00c1ll\u00edtsd az \"emulated_st7920\" \u00e9rt\u00e9kre az emulated_st7920 kijelz\u0151kh\u00f6z. en_pin: spi_software_sclk_pin: spi_software_mosi_pin: spi_software_miso_pin: # Az emul\u00e1lt_st7920 t\u00edpus\u00fa LCD-hez csatlakoztatott \u00e9rintkez\u0151k. # Az en_pin az st7920 t\u00edpus\u00fa LCD cs_pin-j\u00e9nek, az spi_software_sclk_pin # az sclk_pin-nek, az spi_software_mosi_pin pedig a sid_pin-nek felel meg. # A spi_software_miso_pin-t a nyomtat\u00f3 alaplapj\u00e1nak egy haszn\u00e1laton # k\u00edv\u00fcli t\u0171j\u00e9re kell be\u00e1ll\u00edtani, mint az st7920-at, mivel nincs MISO-t\u0171, de a # szoftveres SPI-megval\u00f3s\u00edt\u00e1shoz ezt a t\u0171t kell konfigur\u00e1lni. ...","title":"emulated_st7920 kijelz\u0151"},{"location":"Config_Reference.html#uc1701-kijelzo","text":"Inform\u00e1ci\u00f3k az UC1701 kijelz\u0151k konfigur\u00e1l\u00e1s\u00e1r\u00f3l (amelyet az \"MKS Mini 12864\" t\u00edpus\u00fa kijelz\u0151kn\u00e9l haszn\u00e1lnak). [display] lcd_type: uc1701 # \u00c1ll\u00edtsd \"uc1701\" \u00e9rt\u00e9kre az uc1701 kijelz\u0151kh\u00f6z. cs_pin: a0_pin: # Az uc1701 t\u00edpus\u00fa LCD-hez csatlakoztatott t\u0171k. # Ezeket a param\u00e9tereket meg kell adni. #rst_pin: # Az LCD \"els\u0151\" \u00e9rintkez\u0151j\u00e9hez csatlakoztatott t\u0171. Ha nincs megadva, # akkor a hardvernek rendelkeznie kell egy felh\u00faz\u00e1ssal a # megfelel\u0151 LCD soron. #contrast: # A be\u00e1ll\u00edtand\u00f3 kontraszt. Az \u00e9rt\u00e9k 0 \u00e9s 63 k\u00f6z\u00f6tt v\u00e1ltozhat, az # alap\u00e9rtelmezett \u00e9rt\u00e9k pedig 40. ...","title":"uc1701 kijelz\u0151"},{"location":"Config_Reference.html#ssd1306-es-sh1106-kijelzok","text":"Az SSD1306 \u00e9s SH1106 kijelz\u0151k konfigur\u00e1l\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k. [display] lcd_type: # \u00c1ll\u00edtsd be az \"ssd1306\" vagy az \"sh1106\" \u00e9rt\u00e9ket az adott # megjelen\u00edt\u00e9si t\u00edpushoz. #i2c_mcu: #i2c_bus: #i2c_speed: # Opcion\u00e1lis param\u00e9terek \u00e1llnak rendelkez\u00e9sre az I2C buszon # kereszt\u00fcl csatlakoztatott kijelz\u0151kh\u00f6z. A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t # l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" r\u00e9szben. #cs_pin: #dc_pin: #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Az LCD-hez csatlakoztatott \u00e9rintkez\u0151k \u201e4 vezet\u00e9kes\u201d SPI m\u00f3dban. # Az \u201espi_\u201d karakterrel kezd\u0151d\u0151 param\u00e9terek le\u00edr\u00e1s\u00e1t a \u201e\u00e1ltal\u00e1nos # SPI-be\u00e1ll\u00edt\u00e1sok\u201d r\u00e9szben tal\u00e1lja. Az alap\u00e9rtelmezett az I2C m\u00f3d # haszn\u00e1lata a kijelz\u0151h\u00f6z. #reset_pin: # A kijelz\u0151n megadhat\u00f3 egy reset t\u0171. Ha nincs megadva, akkor a # hardvernek rendelkeznie kell egy felh\u00faz\u00e1ssal a megfelel\u0151 LCD # soron. #contrast: # A be\u00e1ll\u00edtand\u00f3 kontraszt. Az \u00e9rt\u00e9k 0 \u00e9s 256 k\u00f6z\u00f6tt v\u00e1ltozhat, \u00e9s az # alap\u00e9rtelmezett a 239. #vcomh: 0 # \u00c1ll\u00edtsd be a Vcomh \u00e9rt\u00e9ket a kijelz\u0151n. Ez az \u00e9rt\u00e9k egyes # OLED-kijelz\u0151k \"elken\u0151d\u00e9si\" hat\u00e1s\u00e1val j\u00e1r. Az \u00e9rt\u00e9k 0 \u00e9s 63 k\u00f6z\u00f6tt # v\u00e1ltozhat. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #invert: False # A TRUE megford\u00edtja a k\u00e9ppontokat bizonyos OLED-kijelz\u0151k\u00f6n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #x_offset: 0 # \u00c1ll\u00edtsd be a v\u00edzszintes eltol\u00e1s \u00e9rt\u00e9k\u00e9t az SH1106 kijelz\u0151k\u00f6n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. ...","title":"ssd1306 \u00e9s sh1106 kijelz\u0151k"},{"location":"Config_Reference.html#display_data","text":"Egy\u00e9ni adatok megjelen\u00edt\u00e9s\u00e9nek t\u00e1mogat\u00e1sa LCD-kijelz\u0151n. Tetsz\u0151leges sz\u00e1m\u00fa megjelen\u00edt\u00e9si csoportot \u00e9s ezek alatt tetsz\u0151leges sz\u00e1m\u00fa adatelemet lehet l\u00e9trehozni. A kijelz\u0151 egy adott csoport \u00f6sszes adatelem\u00e9t megjelen\u00edti, ha a [display] szakaszban a display_group opci\u00f3t az adott csoport nev\u00e9re \u00e1ll\u00edtjuk. Az alap\u00e9rtelmezett kijelz\u0151csoportok automatikusan l\u00e9trej\u00f6nnek. Ezeket a display_data elemeket a printer.cfg konfigur\u00e1ci\u00f3s f\u00e1jlban l\u00e9v\u0151 alap\u00e9rtelmezett \u00e9rt\u00e9kek fel\u00fcl\u00edr\u00e1s\u00e1val lehet helyettes\u00edteni vagy b\u0151v\u00edteni. [display_data my_group_name my_data_name] position: # A megjelen\u00edt\u00e9si poz\u00edci\u00f3 vessz\u0151vel elv\u00e1lasztott sora \u00e9s oszlopa, amelyet # az inform\u00e1ci\u00f3 megjelen\u00edt\u00e9s\u00e9hez kell haszn\u00e1lni. # Ezt a param\u00e9tert meg kell adni. text: # Az adott helyen megjelen\u00edtend\u0151 sz\u00f6veg. Ennek a mez\u0151nek a # ki\u00e9rt\u00e9kel\u00e9se parancssablonok seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nik # (l\u00e1sd: docs/Command_Templates.md). Ezt a param\u00e9tert meg kell adni.","title":"[display_data]"},{"location":"Config_Reference.html#display_template","text":"Megjelen\u00edtett adatok sz\u00f6vege \"makr\u00f3k\" (tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3 display_template el\u0151taggal). A sablonok ki\u00e9rt\u00e9kel\u00e9s\u00e9vel kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancssablonok dokumentumot. Ez a funkci\u00f3 lehet\u0151v\u00e9 teszi az ism\u00e9tl\u0151d\u0151 defin\u00edci\u00f3k cs\u00f6kkent\u00e9s\u00e9t a display_data szakaszokban. A sablon ki\u00e9rt\u00e9kel\u00e9s\u00e9re a be\u00e9p\u00edtett render() f\u00fcggv\u00e9nyt haszn\u00e1lhatjuk a display_data szakaszokban. Ha p\u00e9ld\u00e1ul defini\u00e1ln\u00e1nk [display_template my_template] , akkor haszn\u00e1lhatn\u00e1nk a { render('my_template') } f\u00fcggv\u00e9nyt a display_data szakaszban. Ez a funkci\u00f3 a SET_LED_TEMPLATE parancs seg\u00edts\u00e9g\u00e9vel folyamatos LED-friss\u00edt\u00e9sre is haszn\u00e1lhat\u00f3. [display_template my_template_name] #param_<name>: # A \"param_\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa be\u00e1ll\u00edt\u00e1s megadhat\u00f3. A megadott # n\u00e9vhez a rendszer hozz\u00e1rendeli a megadott \u00e9rt\u00e9ket (Python liter\u00e1lk\u00e9nt # elemzi), \u00e9s a makr\u00f3b\u0151v\u00edt\u00e9s sor\u00e1n el\u00e9rhet\u0151 lesz. Ha a param\u00e9ter \u00e1tad\u00e1sra # ker\u00fcl a render() h\u00edv\u00e1sban, akkor ez az \u00e9rt\u00e9k lesz felhaszn\u00e1lva a # makr\u00f3b\u0151v\u00edt\u00e9s sor\u00e1n. P\u00e9ld\u00e1ul egy \"param_speed = 75\" konfigur\u00e1ci\u00f3ban # el\u0151fordulhat, hogy a h\u00edv\u00f3 \"render('my_template_name', param_speed=80)\". # A param\u00e9ternevek nem tartalmazhatnak nagybet\u0171ket. text: # A sablon megjelen\u00edt\u00e9sekor visszaadand\u00f3 sz\u00f6veg. Ennek a mez\u0151nek a # ki\u00e9rt\u00e9kel\u00e9se parancssablonok seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nik (l\u00e1sd: # docs/Command_Templates.md). Ezt a param\u00e9tert meg kell adni.","title":"[display_template]"},{"location":"Config_Reference.html#display_glyph","text":"Egy egy\u00e9ni \u00edr\u00e1sjel megjelen\u00edt\u00e9se az azt t\u00e1mogat\u00f3 kijelz\u0151k\u00f6n. A megadott n\u00e9vhez hozz\u00e1rendeli a megadott megjelen\u00edt\u00e9si adatokat, amelyekre azt\u00e1n a megjelen\u00edt\u00e9si sablonokban a k\u00e9t \"tilde\" szimb\u00f3lummal k\u00f6r\u00fclvett nev\u00fckkel lehet hivatkozni, pl. ~my_display_glyph~ L\u00e1sd a sample-glyphs.cfg n\u00e9h\u00e1ny p\u00e9ld\u00e1j\u00e1t. [display_glyph my_display_glyph] #data: # A megjelen\u00edt\u00e9si adatok 16 sork\u00e9nt t\u00e1rolva, amelyek 16 bitb\u0151l \u00e1llnak # (pixelenk\u00e9nt 1), ahol a '.' egy \u00fcres pixel, a '*' pedig egy bekapcsolt # k\u00e9ppont (pl. \"****************\" folyamatos v\u00edzszintes vonal # megjelen\u00edt\u00e9s\u00e9hez). Alternat\u00edv megold\u00e1sk\u00e9nt haszn\u00e1lhatunk \u201e0\u201d-t # \u00fcres pixelekhez \u00e9s \u201e1\u201d-et a bekapcsolt pixelekhez. Helyezzen minden # megjelen\u00edt\u00e9si sort egy k\u00fcl\u00f6n konfigur\u00e1ci\u00f3s sorba. A karakterjelnek # pontosan 16, egyenk\u00e9nt 16 bites sorb\u00f3l kell \u00e1llnia. # Ez a param\u00e9ter nem k\u00f6telez\u0151. #hd44780_data: # Glyph haszn\u00e1lhat\u00f3 20x4 hd44780 kijelz\u0151k\u00f6n. A karakterjelnek pontosan # 8, egyenk\u00e9nt 5 bites sorb\u00f3l kell \u00e1llnia. Ez a param\u00e9ter nem k\u00f6telez\u0151. #hd44780_slot: # A hd44780 hardver indexe (0..7) a karakterjel t\u00e1rol\u00e1s\u00e1ra. Ha t\u00f6bb # k\u00fcl\u00f6n\u00e1ll\u00f3 k\u00e9p haszn\u00e1lja ugyanazt a t\u00e1rat, \u00fcgyelj arra, hogy ezek # k\u00f6z\u00fcl csak egyet haszn\u00e1lj az adott k\u00e9perny\u0151n. Ez a param\u00e9ter akkor # sz\u00fcks\u00e9ges, ha a hd44780_data meg van adva.","title":"[display_glyph]"},{"location":"Config_Reference.html#display-my_extra_display","text":"Ha a printer.cfg f\u00e1jlban a fentiek szerint egy els\u0151dleges [display] szakasz ker\u00fclt meghat\u00e1roz\u00e1sra, akkor t\u00f6bb kieg\u00e9sz\u00edt\u0151 kijelz\u0151t is lehet defini\u00e1lni. Vedd figyelembe, hogy a kieg\u00e9sz\u00edt\u0151 kijelz\u0151k jelenleg nem t\u00e1mogatj\u00e1k a men\u00fcfunkci\u00f3kat, \u00edgy nem t\u00e1mogatj\u00e1k a \"menu\" opci\u00f3kat vagy a gombok konfigur\u00e1l\u00e1s\u00e1t. [display my_extra_display] # A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd a \"kijelz\u0151\" szakaszban.","title":"[display my_extra_display]"},{"location":"Config_Reference.html#menu","text":"Testreszabhat\u00f3 LCD kijelz\u0151 men\u00fck. Egy alap\u00e9rtelmezett men\u00fck\u00e9szlet automatikusan l\u00e9trej\u00f6n. A men\u00fct a f\u0151 printer.cfg konfigur\u00e1ci\u00f3s f\u00e1jlban l\u00e9v\u0151 alap\u00e9rtelmezett \u00e9rt\u00e9kek fel\u00fclb\u00edr\u00e1l\u00e1s\u00e1val lehet helyettes\u00edteni vagy b\u0151v\u00edteni. A sablonok renderel\u00e9se sor\u00e1n el\u00e9rhet\u0151 men\u00fcattrib\u00fatumokr\u00f3l a parancssablon dokumentumban tal\u00e1lhat\u00f3 inform\u00e1ci\u00f3. # Az \u00f6sszes men\u00fc konfigur\u00e1ci\u00f3s szakaszhoz el\u00e9rhet\u0151 k\u00f6z\u00f6s param\u00e9terek. #[menu __some_list __some_name] #type: disabled # A men\u00fcelem v\u00e9gleg letiltva, csak a k\u00f6telez\u0151 attrib\u00fatum a 'type'. # Lehet\u0151v\u00e9 teszi a megl\u00e9v\u0151 men\u00fcpontok egyszer\u0171 letilt\u00e1s\u00e1t/elrejt\u00e9s\u00e9t. #[menu some_name] #type: # Az egyik parancs, input, list, text: # command - alapvet\u0151 men\u00fcelem k\u00fcl\u00f6nf\u00e9le script triggerekkel # input - ugyanaz, mint a \u201ecommand\u201d, de \u00e9rt\u00e9kv\u00e1ltoztat\u00f3 # k\u00e9pess\u00e9gekkel rendelkezik. # Nyomja meg a szerkeszt\u00e9si m\u00f3d # elind\u00edt\u00e1s\u00e1hoz/le\u00e1ll\u00edt\u00e1s\u00e1hoz. # list - lehet\u0151v\u00e9 teszi a men\u00fcelemek egy g\u00f6rgethet\u0151 list\u00e1ba # t\u00f6rt\u00e9n\u0151 csoportos\u00edt\u00e1s\u00e1t. # Adj hozz\u00e1 a list\u00e1hoz men\u00fckonfigur\u00e1ci\u00f3k l\u00e9trehoz\u00e1s\u00e1val # a \u201esome_list\u201d el\u0151tagk\u00e9nt \u2013 # p\u00e9ld\u00e1ul: [menu some_list some_item_in_the_list] # vsdlist - ugyanaz, mint a \"list\", de hozz\u00e1f\u0171zi a virtu\u00e1lis # sdcard f\u00e1jlokat (a j\u00f6v\u0151ben elt\u00e1vol\u00edtjuk) #name: # A men\u00fcpont neve - sablonk\u00e9nt \u00e9rt\u00e9kelve. #enable: # Sablon, amely igazra vagy hamisra \u00e9rt\u00e9keli. #index: # Poz\u00edci\u00f3, ahol egy elemet be kell illeszteni a list\u00e1ba. Alap\u00e9rtelmez\u00e9s # szerint az elem a v\u00e9g\u00e9re ker\u00fcl hozz\u00e1ad\u00e1sra. #[menu some_list] #type: list #name: #enable: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd fent. #[menu some_list some_command] #type: command #name: #enable: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd fent. #gcode: # Gombkattint\u00e1ssal vagy hossz\u00fa kattint\u00e1ssal futtathat\u00f3 szkript. # Sablonk\u00e9nt \u00e9rt\u00e9kelve. #[menu some_list some_input] #type: input #name: #enable: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd fent. #input: # Szerkeszt\u00e9skor haszn\u00e1land\u00f3 kezdeti \u00e9rt\u00e9k \u2013 sablonk\u00e9nt \u00e9rt\u00e9kelve. # Az eredm\u00e9nynek lebeg\u0151\u00e9rt\u00e9knek kell lennie. #input_min: # Tartom\u00e1ny minim\u00e1lis \u00e9rt\u00e9ke \u2013 sablonk\u00e9nt \u00e9rt\u00e9kelve. # Alap\u00e9rtelmezett -99999. #input_max: # Tartom\u00e1ny maxim\u00e1lis \u00e9rt\u00e9ke \u2013 sablonk\u00e9nt \u00e9rt\u00e9kelve. # Alap\u00e9rtelmezett 99999. #input_step: # Szerkeszt\u00e9si l\u00e9p\u00e9s \u2013 pozit\u00edv eg\u00e9sz sz\u00e1mnak vagy lebeg\u0151\u00e9rt\u00e9knek # kell lennie. Bels\u0151 gyorsl\u00e9p\u00e9ssel rendelkezik. # Ha \"(input_max - input_min) / input_step > 100\", akkor a gyors # sebess\u00e9g l\u00e9p\u00e9se 10 * input_step, k\u00fcl\u00f6nben a gyors \u00fctem ugyanaz # a bemeneti_l\u00e9p\u00e9s. #realtime: # Ez az attrib\u00fatum statikus logikai \u00e9rt\u00e9ket fogad el. Ha enged\u00e9lyezve # van, akkor a G-k\u00f3d szkript minden \u00e9rt\u00e9kv\u00e1ltoz\u00e1s ut\u00e1n lefut. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #gcode: # Gombkattint\u00e1ssal, hossz\u00fa kattint\u00e1ssal vagy \u00e9rt\u00e9km\u00f3dos\u00edt\u00e1ssal # futtathat\u00f3 szkript. Sablonk\u00e9nt \u00e9rt\u00e9kelve. A gomb kattint\u00e1sa elind\u00edtja # a szerkeszt\u00e9si m\u00f3d kezdet\u00e9t vagy befejez\u00e9s\u00e9t.","title":"[menu]"},{"location":"Config_Reference.html#nyomtatoszal-erzekelok","text":"","title":"Nyomtat\u00f3sz\u00e1l \u00e9rz\u00e9kel\u0151k"},{"location":"Config_Reference.html#filament_switch_sensor","text":"Nyomtat\u00f3sz\u00e1l \u00e9rz\u00e9kel\u0151. T\u00e1mogat\u00e1s a nyomtat\u00f3sz\u00e1l behelyez\u00e9s\u00e9nek \u00e9s kifut\u00e1s\u00e1nak \u00e9rz\u00e9kel\u00e9s\u00e9re kapcsol\u00f3\u00e9rz\u00e9kel\u0151, p\u00e9ld\u00e1ul v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 seg\u00edts\u00e9g\u00e9vel. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1st . [filament_switch_sensor my_sensor] #pause_on_runout: True # Ha True \u00e9rt\u00e9kre van \u00e1ll\u00edtva, a PAUSE azonnal v\u00e9grehajt\u00f3dik, miut\u00e1n a # rendszer sz\u00e1lkifut\u00e1st \u00e9szlel. Ne feledd, hogy ha a pause_on_runout # \u00e9rt\u00e9ke False, \u00e9s a runout_gcode kimarad, akkor a kifut\u00e1s \u00e9szlel\u00e9se le # van tiltva. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #runout_gcode: # A nyomtat\u00f3sz\u00e1l kifut\u00e1s\u00e1t k\u00f6vet\u0151en v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. # L\u00e1sd a docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d form\u00e1tumhoz. Ha a # pause_on_runout \u00e9rt\u00e9ke True, ez a G-k\u00f3d a PAUSE befejez\u00e9se ut\u00e1n fog # futni. Az alap\u00e9rtelmez\u00e9s szerint nem fut semmilyen G-k\u00f3d parancs. #insert_gcode: # A nyomtat\u00f3sz\u00e1l-beilleszt\u00e9s \u00e9szlel\u00e9se ut\u00e1n v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok # list\u00e1ja. L\u00e1sd a docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d form\u00e1tumhoz. # Az alap\u00e9rtelmez\u00e9s szerint nem fut semmilyen G-k\u00f3d parancs, ami letiltja # a besz\u00far\u00e1s \u00e9szlel\u00e9s\u00e9t. #event_delay: 3.0 # Az esem\u00e9nyek k\u00f6z\u00f6tti k\u00e9sleltet\u00e9s minim\u00e1lis id\u0151tartama m\u00e1sodpercben. # Az ebben az id\u0151szakban elind\u00edtott esem\u00e9nyeket a rendszer csendben # figyelmen k\u00edv\u00fcl hagyja. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 3 m\u00e1sodperc. #pause_delay: 0.5 # A sz\u00fcneteltet\u00e9si parancs kik\u00fcld\u00e9se \u00e9s a runout_gcode v\u00e9grehajt\u00e1sa # k\u00f6z\u00f6tt eltelt id\u0151 m\u00e1sodpercben. Hasznos lehet n\u00f6velni ezt a k\u00e9sleltet\u00e9st, # ha az OctoPrint furcsa sz\u00fcneteltet\u00e9st mutat. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,5 m\u00e1sodperc. #switch_pin: # Az a t\u0171, amelyre a kapcsol\u00f3 csatlakoztatva van. # Ezt a param\u00e9tert meg kell adni.","title":"[filament_switch_sensor]"},{"location":"Config_Reference.html#filament_motion_sensor","text":"Nyomtat\u00f3sz\u00e1l mozg\u00e1s\u00e9rz\u00e9kel\u0151. T\u00e1mogatja a nyomtat\u00f3sz\u00e1l behelyez\u00e9s\u00e9nek \u00e9s kifut\u00e1s\u00e1nak \u00e9rz\u00e9kel\u00e9s\u00e9t egy olyan k\u00f3dol\u00f3 seg\u00edts\u00e9g\u00e9vel, amely az \u00e9rz\u00e9kel\u0151n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 mozg\u00e1s k\u00f6zben v\u00e1ltogatja a kimeneti jelet. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1st . [filament_motion_sensor my_sensor] detection_length: 7.0 # Az \u00e9rz\u00e9kel\u0151n \u00e1th\u00fazott nyomtat\u00f3sz\u00e1l minim\u00e1lis hossza, amely # \u00e1llapotv\u00e1ltoz\u00e1st v\u00e1lt ki a switch_pin t\u0171n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 7mm. extruder: # Az extruderr\u00e9sz neve, amelyhez ez az \u00e9rz\u00e9kel\u0151 kapcsol\u00f3dik. # Ezt a param\u00e9tert meg kell adni. switch_pin: #pause_on_runout: #runout_gcode: #insert_gcode: #event_delay: #pause_delay: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t a \"filament_switch_sensor\" # r\u00e9szben tal\u00e1lja.","title":"[filament_motion_sensor]"},{"location":"Config_Reference.html#tsl1401cl_filament_width_sensor","text":"TSLl401CL alap\u00fa sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd az \u00fatmutat\u00f3t . [tsl1401cl_filament_width_sensor] #pin: #default_nominal_filament_diameter: 1.75 # (mm) # A nyomtat\u00f3sz\u00e1l \u00e1tm\u00e9r\u0151j\u00e9nek megengedett legnagyobb # elt\u00e9r\u00e9se mm-ben. #max_difference: 0.2 # Az \u00e9rz\u00e9kel\u0151 \u00e9s a f\u00fav\u00f3ka k\u00f6z\u00f6tti t\u00e1vols\u00e1g mm-ben. #measurement_delay: 100","title":"[tsl1401cl_filament_width_sensor]"},{"location":"Config_Reference.html#hall_filament_width_sensor","text":"Hall sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 (l\u00e1sd Hall sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 ). [hall_filament_width_sensor] adc1: adc2: # Az \u00e9rz\u00e9kel\u0151h\u00f6z csatlakoztatott anal\u00f3g bemeneti \u00e9rintkez\u0151k. Ezeket a # param\u00e9tereket meg kell adni. #cal_dia1: 1.50 #cal_dia2: 2.00 # Az \u00e9rz\u00e9kel\u0151k kalibr\u00e1ci\u00f3s \u00e9rt\u00e9kei (mm-ben). Az alap\u00e9rtelmezett \u00e9rt\u00e9k # 1,50 a cal_dia1 \u00e9s 2,00 a cal_dia2 eset\u00e9n. #raw_dia1: 9500 #raw_dia2: 10500 # Az \u00e9rz\u00e9kel\u0151k nyers kalibr\u00e1ci\u00f3s \u00e9rt\u00e9kei. Az alap\u00e9rtelmezett \u00e9rt\u00e9k # 9500 a raw_dia1 \u00e9s 10500 a raw_dia2 eset\u00e9n. #default_nominal_filament_diameter: 1.75 # A nyomtat\u00f3sz\u00e1l n\u00e9vleges \u00e1tm\u00e9r\u0151je. Ezt a param\u00e9tert meg kell adni. #max_difference: 0.200 # Az izz\u00f3sz\u00e1l \u00e1tm\u00e9r\u0151j\u00e9nek megengedett legnagyobb elt\u00e9r\u00e9se # millim\u00e9terben (mm). # Ha az izz\u00f3sz\u00e1l n\u00e9vleges \u00e1tm\u00e9r\u0151je \u00e9s az \u00e9rz\u00e9kel\u0151 kimenete k\u00f6z\u00f6tti # k\u00fcl\u00f6nbs\u00e9g nagyobb, mint +- max_difference, az extrud\u00e1l\u00e1si szorz\u00f3 # vissza\u00e1ll %100-ra. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,200. #measurement_delay: 70 # Az \u00e9rz\u00e9kel\u0151 \u00e9s a nyomtat\u00f3fej/forr\u00f3 v\u00e9ge (nozzle) k\u00f6z\u00f6tti t\u00e1vols\u00e1g # millim\u00e9terben (mm). Az \u00e9rz\u00e9kel\u0151 \u00e9s a nyomtat\u00f3fej k\u00f6z\u00f6tti # nyomtat\u00f3sz\u00e1l default_nominal_filament_diameter-k\u00e9nt lesz kezelve. # A gazdag\u00e9p modul FIFO logik\u00e1val m\u0171k\u00f6dik. Minden szenzor\u00e9rt\u00e9ket # \u00e9s poz\u00edci\u00f3t egy t\u00f6mbben tart, \u00e9s vissza\u00e1ll\u00edtja \u0151ket a megfelel\u0151 poz\u00edci\u00f3ba. # Ezt a param\u00e9tert meg kell adni. #enable: False # Az \u00e9rz\u00e9kel\u0151 enged\u00e9lyezve vagy letiltva a bekapcsol\u00e1s ut\u00e1n. # Az alap\u00e9rtelmezett a letilt\u00e1sa. #measurement_interval: 10 # Hozz\u00e1vet\u0151leges t\u00e1vols\u00e1g (mm-ben) az \u00e9rz\u00e9kel\u0151 leolvas\u00e1sai k\u00f6z\u00f6tt. # Az alap\u00e9rtelmezett 10 mm. #logging: False # Kimeneti \u00e1tm\u00e9r\u0151 a termin\u00e1lhoz \u00e9s a klipper.log-hoz k\u00fcld, amit ki # lehet kapcsolni. #min_diameter: 1.0 # A virtu\u00e1lis trigger minim\u00e1lis \u00e1tm\u00e9r\u0151je filament_switch_sensor. #use_current_dia_while_delay: False # Haszn\u00e1ld az aktu\u00e1lis \u00e1tm\u00e9r\u0151t a n\u00e9vleges \u00e1tm\u00e9r\u0151 helyett, am\u00edg a # m\u00e9r\u00e9si k\u00e9sleltet\u00e9s nem futott \u00e1t. #pause_on_runout: #runout_gcode: #insert_gcode: #event_delay: #pause_delay: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"filament_switch_sensor\" r\u00e9szben.","title":"[hall_filament_width_sensor]"},{"location":"Config_Reference.html#alaplap-specifikus-hardvertamogatas","text":"","title":"Alaplap specifikus hardvert\u00e1mogat\u00e1s"},{"location":"Config_Reference.html#sx1509","text":"Konfigur\u00e1ljon egy SX1509 I2C-GPIO b\u0151v\u00edt\u0151t. Az I2C-kommunik\u00e1ci\u00f3 \u00e1ltal okozott k\u00e9sleltet\u00e9s miatt NEM szabad az SX1509 t\u0171it motorvez\u00e9rl\u0151 enged\u00e9lyez\u0151, STEP vagy DIR t\u0171k\u00e9nt vagy b\u00e1rmilyen m\u00e1s olyan t\u0171k\u00e9nt haszn\u00e1lni, amely gyors bit-impulzust ig\u00e9nyel. Legjobban statikus vagy G-k\u00f3d vez\u00e9relt digit\u00e1lis kimenetekk\u00e9nt vagy hardveres PWM t\u0171k\u00e9nt haszn\u00e1lhat\u00f3k pl. ventil\u00e1torokhoz. B\u00e1rmennyi szekci\u00f3t defini\u00e1lhatunk \"sx1509\" el\u0151taggal. Minden egyes b\u0151v\u00edt\u0151 egy 16 t\u0171b\u0151l \u00e1ll\u00f3 k\u00e9szletet biztos\u00edt (sx1509_my_sx1509:PIN_0-t\u00f3l sx1509_my_sx1509:PIN_15-ig), amelyek a nyomtat\u00f3 konfigur\u00e1ci\u00f3j\u00e1ban haszn\u00e1lhat\u00f3k. L\u00e1sd a generic-duet2-duex.cfg f\u00e1jlt egy p\u00e9ld\u00e1\u00e9rt. [sx1509 my_sx1509] i2c_address: # A b\u0151v\u00edt\u0151 \u00e1ltal haszn\u00e1lt I2C c\u00edm. A hardveres jumperekt\u0151l # f\u00fcgg\u0151en ez a k\u00f6vetkez\u0151 c\u00edmek egyike: 62 63 112 113. # Ezt a param\u00e9tert meg kell adni. #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #i2c_bus: # Ha a mikrovez\u00e9rl\u0151 I2C megval\u00f3s\u00edt\u00e1sa t\u00f6bb I2C buszt is t\u00e1mogat, # itt megadhatja a busz nev\u00e9t. # Az alap\u00e9rtelmezett a mikrovez\u00e9rl\u0151 I2C busz haszn\u00e1lata.","title":"[sx1509]"},{"location":"Config_Reference.html#samd_sercom","text":"SAMD SERCOM konfigur\u00e1ci\u00f3 annak megad\u00e1s\u00e1ra, hogy mely t\u0171ket kell haszn\u00e1lni egy adott SERCOM-on. A \"samd_sercom\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t defini\u00e1lhatunk. Minden SERCOM-ot konfigur\u00e1lni kell, miel\u0151tt SPI vagy I2C perif\u00e9riak\u00e9nt haszn\u00e1ln\u00e1nk. Helyezze ezt a konfigur\u00e1ci\u00f3s szekci\u00f3t minden m\u00e1s, SPI vagy I2C buszokat haszn\u00e1l\u00f3 szekci\u00f3 f\u00f6l\u00e9. [samd_sercom my_sercom] sercom: # A mikrovez\u00e9rl\u0151ben konfigur\u00e1land\u00f3 sercom busz neve. # A rendelkez\u00e9sre \u00e1ll\u00f3 nevek \"sercom0\", \"sercom1\" stb. # Ezt a param\u00e9tert meg kell adni. tx_pin: # MOSI \u00e9rintkez\u0151 SPI kommunik\u00e1ci\u00f3hoz, vagy SDA (adat) \u00e9rintkez\u0151 # I2C kommunik\u00e1ci\u00f3hoz. A l\u00e1bnak \u00e9rv\u00e9nyes pinmux konfigur\u00e1ci\u00f3val # kell rendelkeznie az adott SERCOM perif\u00e9ri\u00e1hoz. # Ezt a param\u00e9tert meg kell adni. #rx_pin: # MISO t\u0171 az SPI kommunik\u00e1ci\u00f3hoz. Ezt a t\u0171t nem haszn\u00e1lj\u00e1k I2C # kommunik\u00e1ci\u00f3hoz (az I2C a tx_pin k\u00f3dot haszn\u00e1lja mind a # k\u00fcld\u00e9shez, mind a fogad\u00e1shoz). A l\u00e1bnak \u00e9rv\u00e9nyes pinmux # konfigur\u00e1ci\u00f3val kell rendelkeznie az adott SERCOM perif\u00e9ri\u00e1hoz. # Ez a param\u00e9ter nem k\u00f6telez\u0151. clk_pin: # CLK \u00e9rintkez\u0151 az SPI kommunik\u00e1ci\u00f3hoz, vagy SCL (\u00f3ra) \u00e9rintkez\u0151 # az I2C kommunik\u00e1ci\u00f3hoz. A l\u00e1bnak \u00e9rv\u00e9nyes pinmux # konfigur\u00e1ci\u00f3val kell rendelkeznie az adott SERCOM perif\u00e9ri\u00e1hoz. # Ezt a param\u00e9tert meg kell adni.","title":"[samd_sercom]"},{"location":"Config_Reference.html#adc_scaled","text":"Duet2 Maestro anal\u00f3g sk\u00e1l\u00e1z\u00e1s vref \u00e9s vssa leolvas\u00e1sok alapj\u00e1n. Az adc_scaled szakasz defini\u00e1l\u00e1sa virtu\u00e1lis adc-t\u0171k\u00e9nt (p\u00e9ld\u00e1ul \"my_name:PB0\") tesz lehet\u0151v\u00e9, amelyeket automatikusan a k\u00e1rtya vref \u00e9s vssa figyel\u0151t\u0171i \u00e1ll\u00edtanak be. \u00dcgyelj arra, hogy ezt a konfigur\u00e1ci\u00f3s szakaszt minden olyan konfigur\u00e1ci\u00f3s szakasz felett defini\u00e1ld, amely ezeket a virtu\u00e1lis t\u0171ket haszn\u00e1lja. L\u00e1sd a generic-duet2-maestro.cfg f\u00e1jlt egy p\u00e9ld\u00e1\u00e9rt. [adc_scaled my_name] vref_pin: # A VREF monitoroz\u00e1s\u00e1hoz haszn\u00e1lt ADC t\u0171. Ezt a param\u00e9tert meg kell adni. vssa_pin: # A VSSA monitoroz\u00e1s\u00e1hoz haszn\u00e1land\u00f3 ADC t\u0171. Ezt a param\u00e9tert meg kell adni. #smooth_time: 2.0 # Egy id\u0151\u00e9rt\u00e9k (m\u00e1sodpercben), amely alatt a vref \u00e9s a vssa # m\u00e9r\u00e9sek sim\u00edt\u00e1sra ker\u00fclnek, hogy cs\u00f6kkents\u00e9k a m\u00e9r\u00e9s hat\u00e1s\u00e1t # zaj cs\u00f6kkent\u00e9se \u00e9rdek\u00e9ben. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 2 m\u00e1sodperc.","title":"[adc_scaled]"},{"location":"Config_Reference.html#replicape","text":"Replicape t\u00e1mogat\u00e1s. L\u00e1sd a beaglebone \u00fatmutat\u00f3t \u00e9s a generic-replicape.cfg f\u00e1jlt egy p\u00e9ld\u00e1\u00e9rt. # A \"replicape\" konfigur\u00e1ci\u00f3s r\u00e9sz hozz\u00e1adja a # \"replicape:stepper_x_enable\" virtu\u00e1lis l\u00e9ptet\u0151t enged\u00e9lyez\u0151 t\u0171ket # (X, Y, Z, E \u00e9s H l\u00e9ptet\u0151kh\u00f6z) \u00e9s a \"replicape:power_x\" PWM kimeneti # t\u0171ket (hotbed, e, h, fan0, fan1 sz\u00e1m\u00e1ra , fan2 \u00e9s fan3), a # konfigur\u00e1ci\u00f3s f\u00e1jlhoz amelyet ezut\u00e1n m\u00e1shol is haszn\u00e1lhatunk. [replicape] revision: # A replik\u00e1lt hardververzi\u00f3. Jelenleg csak a \"B3\" verzi\u00f3 t\u00e1mogatott. # Ezt a param\u00e9tert meg kell adni. #enable_pin: !gpio0_20 # A glob\u00e1lis enged\u00e9lyez\u00e9si PIN replik\u00e1ja. # Az alap\u00e9rtelmezett !gpio0_20 (m\u00e1s n\u00e9ven P9_41). host_mcu: # Az MCU konfigur\u00e1ci\u00f3s szakasz neve, amely kommunik\u00e1l a Klipper # \"linux folyamat\" MCU p\u00e9ld\u00e1ny\u00e1val. Ezt a param\u00e9tert meg kell adni. #standstill_power_down: False # Ez a param\u00e9ter vez\u00e9rli a CFG6_ENN vonalat az \u00f6sszes # l\u00e9ptet\u0151motoron. A True az enged\u00e9lyez\u00e9si sorokat \"nyit\u00e1sra\" \u00e1ll\u00edtja. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #stepper_x_microstep_mode: #stepper_y_microstep_mode: #stepper_z_microstep_mode: #stepper_e_microstep_mode: #stepper_h_microstep_mode: # Ez a param\u00e9ter az adott l\u00e9ptet\u0151motor meghajt\u00f3 CFG1 \u00e9s CFG2 # \u00e9rintkez\u0151it vez\u00e9rli. A v\u00e1laszthat\u00f3 lehet\u0151s\u00e9gek a k\u00f6vetkez\u0151k: # disable, 1, 2, spread2, 4, 16, spread4, spread16, stealth4 \u00e9s # stealth16. Az alap\u00e9rtelmezett \u00e9rt\u00e9k a disable. #stepper_x_current: #stepper_y_current: #stepper_z_current: #stepper_e_current: #stepper_h_current: # A l\u00e9ptet\u0151motor meghajt\u00f3j\u00e1nak konfigur\u00e1lt maxim\u00e1lis \u00e1rama # (amperben). Ezt a param\u00e9tert akkor kell megadni, ha a l\u00e9ptet\u0151 # nincs letilt\u00e1si m\u00f3dban. #stepper_x_chopper_off_time_high: #stepper_y_chopper_off_time_high: #stepper_z_chopper_off_time_high: #stepper_e_chopper_off_time_high: #stepper_h_chopper_off_time_high: # Ez a param\u00e9ter a l\u00e9ptet\u0151motor meghajt\u00f3 CFG0 l\u00e1b\u00e1t vez\u00e9rli # (a True a CFG0 \u00e9rt\u00e9ket magasra, a False pedig alacsonyra \u00e1ll\u00edtja). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #stepper_x_chopper_hysteresis_high: #stepper_y_chopper_hysteresis_high: #stepper_z_chopper_hysteresis_high: #stepper_e_chopper_hysteresis_high: #stepper_h_chopper_hysteresis_high: # Ez a param\u00e9ter a l\u00e9ptet\u0151motor meghajt\u00f3 CFG4 l\u00e1b\u00e1t vez\u00e9rli # (a True a CFG4 \u00e9rt\u00e9ket magasra, a False pedig alacsonyra \u00e1ll\u00edtja). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #stepper_x_chopper_blank_time_high: #stepper_y_chopper_blank_time_high: #stepper_z_chopper_blank_time_high: #stepper_e_chopper_blank_time_high: #stepper_h_chopper_blank_time_high: # Ez a param\u00e9ter a l\u00e9ptet\u0151motor meghajt\u00f3 CFG5 l\u00e1b\u00e1t vez\u00e9rli # (a True a CFG5 \u00e9rt\u00e9ket magasra, a False pedig alacsonyra \u00e1ll\u00edtja). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k True.","title":"[replicape]"},{"location":"Config_Reference.html#egyeb-egyedi-modulok","text":"","title":"Egy\u00e9b egyedi modulok"},{"location":"Config_Reference.html#palette2","text":"Palette 2 multimaterial t\u00e1mogat\u00e1s szorosabb integr\u00e1ci\u00f3t biztos\u00edt, amely t\u00e1mogatja a Palette 2 eszk\u00f6z\u00f6ket csatlakoztatott m\u00f3dban. Ez a modul a teljes funkcionalit\u00e1shoz a [virtual_sdcard] \u00e9s [pause_resume] modulokat is ig\u00e9nyli. Ha ezt a modult haszn\u00e1lod, ne haszn\u00e1ld a Palette 2 plugint az Octoprinthez, mivel ezek \u00fctk\u00f6zni fognak, \u00e9s az egyik nem fog megfelel\u0151en inicializ\u00e1l\u00f3dni, ami val\u00f3sz\u00edn\u0171leg megszak\u00edtja a nyomtat\u00e1st. Ha az Octoprintet haszn\u00e1lod \u00e9s a G-k\u00f3dot a soros porton kereszt\u00fcl streameli a virtual_sd-r\u0151l val\u00f3 nyomtat\u00e1s helyett, akkor a M1 \u00e9s M0 parancsok Pausing parancsok a Settings >. alatt remo; Serial Connection > Firmware & protocol megakad\u00e1lyozz\u00e1k, hogy a nyomtat\u00e1s megkezd\u00e9s\u00e9hez a Paletta 2-n el kelljen ind\u00edtani a nyomtat\u00e1st, \u00e9s az Octoprintben fel kelljen oldani a sz\u00fcnetet. [paletta2] serial: # A soros port, amelyhez a Palette 2 csatlakozik. #baud: 115200 # A haszn\u00e1land\u00f3 baud-r\u00e1ta. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 115200. #feedrate_splice: 0.8 # A told\u00e1skor haszn\u00e1land\u00f3 feedrate, alap\u00e9rtelmezett 0.8. #feedrate_normal: 1.0 # A told\u00e1s ut\u00e1n haszn\u00e1land\u00f3 feedrate, alap\u00e9rtelmezett \u00e9rt\u00e9ke 1.0. #auto_load_speed: 2 # Extrud\u00e1l\u00e1si el\u0151tol\u00e1si sebess\u00e9g automatikus bet\u00f6lt\u00e9skor, alap\u00e9rtelmezett 2 (mm/sec) #auto_cancel_variation: 0.1 # Automatikusan t\u00f6rli a nyomtat\u00e1st, ha a ping meghaladja ezt a k\u00fcsz\u00f6b\u00e9rt\u00e9ket.","title":"[palette2]"},{"location":"Config_Reference.html#angle","text":"M\u00e1gneses Hall-sz\u00f6g\u00e9rz\u00e9kel\u0151 t\u00e1mogat\u00e1sa A1333, AS5047D vagy TLE5012B SPI-chipek haszn\u00e1lat\u00e1val a l\u00e9ptet\u0151motorok sz\u00f6gtengely\u00e9nek m\u00e9r\u00e9seinek leolvas\u00e1s\u00e1hoz. A m\u00e9r\u00e9sek az API Szerver \u00e9s a mozg\u00e1selemz\u0151 eszk\u00f6z seg\u00edts\u00e9g\u00e9vel \u00e9rhet\u0151k el. A rendelkez\u00e9sre \u00e1ll\u00f3 parancsokat l\u00e1sd a G-k\u00f3d hivatkoz\u00e1sban . [angle my_angle_sensor] sensor_type: # A m\u00e1gneses Hall \u00e9rz\u00e9kel\u0151 chip t\u00edpusa. A v\u00e1laszthat\u00f3 lehet\u0151s\u00e9gek: # \u201ea1333\u201d, \u201eas5047d\u201d \u00e9s \u201etle5012b\u201d. Ezt a param\u00e9tert meg kell adni. #sample_period: 0.000400 # A m\u00e9r\u00e9sek sor\u00e1n haszn\u00e1land\u00f3 lek\u00e9rdez\u00e9si id\u0151szak (m\u00e1sodpercben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,000400 (ami m\u00e1sodpercenk\u00e9nt # 2500 minta). #stepper: # Annak a l\u00e9ptet\u0151nek a neve, amelyhez a sz\u00f6g\u00e9rz\u00e9kel\u0151 csatlakoztatva # van (pl. \"stepper_x\"). Ennek az \u00e9rt\u00e9knek a be\u00e1ll\u00edt\u00e1sa enged\u00e9lyezi a # sz\u00f6gkalibr\u00e1l\u00f3 eszk\u00f6zt. A funkci\u00f3 haszn\u00e1lat\u00e1hoz telep\u00edteni kell a # Python \"numpy\" csomagot. Az alap\u00e9rtelmezett be\u00e1ll\u00edt\u00e1s nem # enged\u00e9lyezi a sz\u00f6g\u00e9rz\u00e9kel\u0151 sz\u00f6gkalibr\u00e1l\u00e1s\u00e1t. cs_pin: # Az \u00e9rz\u00e9kel\u0151 SPI enged\u00e9lyez\u0151 t\u0171je. Ezt a param\u00e9tert meg kell adni. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t az \u201e\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\u201d # r\u00e9szben tal\u00e1lja.","title":"[angle]"},{"location":"Config_Reference.html#gyakori-buszparameterek","text":"","title":"Gyakori buszparam\u00e9terek"},{"location":"Config_Reference.html#gyakori-spi-beallitasok","text":"Az SPI-buszt haszn\u00e1l\u00f3 eszk\u00f6z\u00f6k eset\u00e9ben \u00e1ltal\u00e1ban a k\u00f6vetkez\u0151 param\u00e9terek \u00e1llnak rendelkez\u00e9sre. #spi_speed: # Az eszk\u00f6zzel val\u00f3 kommunik\u00e1ci\u00f3 sor\u00e1n haszn\u00e1land\u00f3 # SPI-sebess\u00e9g (hz-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k az eszk\u00f6z t\u00edpus\u00e1t\u00f3l f\u00fcgg. #spi_bus: # Ha a mikrovez\u00e9rl\u0151 t\u00f6bb SPI buszt t\u00e1mogat, akkor itt megadhatja a # mikrovez\u00e9rl\u0151 busz nev\u00e9t. Az alap\u00e9rtelmezett \u00e9rt\u00e9k a mikrovez\u00e9rl\u0151 # t\u00edpus\u00e1t\u00f3l f\u00fcgg. #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Add meg a fenti param\u00e9tereket a \"szoftver alap\u00fa SPI\" haszn\u00e1lat\u00e1hoz. # Ez a m\u00f3d nem ig\u00e9nyel mikrovez\u00e9rl\u0151 hardver t\u00e1mogat\u00e1st (\u00e1ltal\u00e1ban # b\u00e1rmilyen \u00e1ltal\u00e1nos c\u00e9l\u00fa \u00e9rintkez\u0151 haszn\u00e1lhat\u00f3). Az alap\u00e9rtelmez\u00e9s # szerint nem haszn\u00e1lja a \"software SPI\"-t.","title":"Gyakori SPI be\u00e1ll\u00edt\u00e1sok"},{"location":"Config_Reference.html#gyakori-i2c-beallitasok","text":"A k\u00f6vetkez\u0151 param\u00e9terek \u00e1ltal\u00e1ban az I2C-buszt haszn\u00e1l\u00f3 eszk\u00f6z\u00f6kh\u00f6z \u00e1llnak rendelkez\u00e9sre. Vedd figyelembe, hogy a Klipper jelenlegi mikrokontrollerek i2c t\u00e1mogat\u00e1sa nem toler\u00e1lja a h\u00e1l\u00f3zati zajt. Az i2c vezet\u00e9kek nem v\u00e1rt hib\u00e1i a Klipper fut\u00e1sidej\u0171 hiba\u00fczenet\u00e9t eredm\u00e9nyezhetik. A Klipper hibaelh\u00e1r\u00edt\u00e1s t\u00e1mogat\u00e1sa az egyes mikrokontroller-t\u00edpusok k\u00f6z\u00f6tt v\u00e1ltozik. \u00c1ltal\u00e1ban csak olyan i2c eszk\u00f6z\u00f6k haszn\u00e1lata aj\u00e1nlott, amelyek ugyanazon a nyomtatott \u00e1ramk\u00f6ri lapon vannak, mint a mikrokontroller. A legt\u00f6bb Klipper mikrokontroller implement\u00e1ci\u00f3 csak 100000 i2c_speed \u00e9rt\u00e9ket t\u00e1mogat. A Klipper \"linux\" mikrokontroller t\u00e1mogatja a 400000-es sebess\u00e9get, de ezt az oper\u00e1ci\u00f3s rendszerben kell be\u00e1ll\u00edtani , \u00e9s az i2c_speed param\u00e9tert egy\u00e9bk\u00e9nt figyelmen k\u00edv\u00fcl hagyja. A Klipper \"rp2040\" mikrokontroller az i2c_speed param\u00e9teren kereszt\u00fcl 400000-es sebess\u00e9get t\u00e1mogat. Az \u00f6sszes t\u00f6bbi Klipper mikrovez\u00e9rl\u0151 100000-es sebess\u00e9get haszn\u00e1l, \u00e9s figyelmen k\u00edv\u00fcl hagyja az i2c_speed param\u00e9tert. #i2c_address: # Az eszk\u00f6z i2c c\u00edme. Ezt decim\u00e1lis sz\u00e1mk\u00e9nt kell megadni # (nem hexadecim\u00e1lis form\u00e1ban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k az eszk\u00f6z t\u00edpus\u00e1t\u00f3l f\u00fcgg. #i2c_mcu: # Annak a mikrovez\u00e9rl\u0151nek a neve, amelyhez a chip csatlakozik. # Az alap\u00e9rtelmezett az \"mcu\". #i2c_bus: # Ha a mikrovez\u00e9rl\u0151 t\u00f6bb I2C buszt t\u00e1mogat, akkor itt megadhatja a # mikrovez\u00e9rl\u0151 busz nev\u00e9t. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a mikrovez\u00e9rl\u0151 t\u00edpus\u00e1t\u00f3l f\u00fcgg. #i2c_speed: # Az eszk\u00f6zzel val\u00f3 kommunik\u00e1ci\u00f3 sor\u00e1n haszn\u00e1land\u00f3 I2C sebess\u00e9g # (Hz-ben). A Klipper implement\u00e1ci\u00f3ja a legt\u00f6bb mikrovez\u00e9rl\u0151n k\u00f3dolt # \u00e9rt\u00e9ke 100000, \u00e9s ennek az \u00e9rt\u00e9knek nincs hat\u00e1sa. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 100 000.","title":"Gyakori I2C be\u00e1ll\u00edt\u00e1sok"},{"location":"Config_checks.html","text":"Konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9sek \u00b6 Ez a dokumentum a Klipper printer.cfg f\u00e1jl t\u0171 be\u00e1ll\u00edt\u00e1sainak meger\u0151s\u00edt\u00e9s\u00e9hez sz\u00fcks\u00e9ges l\u00e9p\u00e9sek list\u00e1j\u00e1t tartalmazza. C\u00e9lszer\u0171 ezeket a l\u00e9p\u00e9seket a telep\u00edt\u00e9si dokumentum l\u00e9p\u00e9seinek k\u00f6vet\u00e9s\u00e9vel v\u00e9grehajtani. Az \u00fatmutat\u00f3 sor\u00e1n sz\u00fcks\u00e9g lehet a Klipper konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1nak m\u00f3dos\u00edt\u00e1s\u00e1ra. \u00dcgyelj arra, hogy a konfigur\u00e1ci\u00f3s f\u00e1jl minden m\u00f3dos\u00edt\u00e1sa ut\u00e1n adj ki egy RESTART parancsot, hogy megbizonyosodj arr\u00f3l, hogy a v\u00e1ltoztat\u00e1s \u00e9rv\u00e9nybe l\u00e9p (\u00edrd be a \"restart\" kifejez\u00e9st az Octoprint termin\u00e1l lapj\u00e1ra, majd kattints a \"K\u00fcld\u00e9s\" gombra). Az is j\u00f3 \u00f6tlet, hogy minden RESTART ut\u00e1n kiadsz egy STATUS parancsot a konfigur\u00e1ci\u00f3s f\u00e1jl sikeres bet\u00f6lt\u00e9s\u00e9nek ellen\u0151rz\u00e9s\u00e9re. Ellen\u0151rizd a h\u0151m\u00e9rs\u00e9kletet \u00b6 Kezd azzal, hogy ellen\u0151rz\u00f6d, a h\u0151m\u00e9rs\u00e9klet megfelel\u0151en van-e jelentve. L\u00e9pj az Octoprint h\u0151m\u00e9rs\u00e9klet lapj\u00e1ra. Ellen\u0151rizd, hogy a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal h\u0151m\u00e9rs\u00e9klete (ha van) jelen van-e, \u00e9s nem emelkedik. Ha n\u00f6vekszik, kapcsolja ki a nyomtat\u00f3t. Ha a h\u0151m\u00e9rs\u00e9kletek nem pontosak, tekintsd \u00e1t a f\u00fav\u00f3ka \u00e9s/vagy t\u00e1rgyasztal \"sensor_type\" \u00e9s \"sensor_pin\" be\u00e1ll\u00edt\u00e1sait. Ellen\u0151rz\u00e9s M112 \u00b6 Navig\u00e1lj az Octoprint termin\u00e1l f\u00fclre, \u00e9s adj ki egy M112 parancsot a termin\u00e1lmez\u0151ben. Ez a parancs arra k\u00e9ri a Klippert, hogy l\u00e9pjen \"le\u00e1ll\u00e1si\" \u00e1llapotba. Ennek hat\u00e1s\u00e1ra az Octoprint megszak\u00edtja a kapcsolatot a Klipperrel. Navig\u00e1lj a Connection (Kapcsolat) ter\u00fcletre, \u00e9s kattints a \"Kapcsol\u00f3d\u00e1s\" gombra, hogy az Octoprint \u00fajra csatlakozzon. Ezut\u00e1n navig\u00e1lj az Octoprint h\u0151m\u00e9rs\u00e9klet f\u00fclre, \u00e9s ellen\u0151rizd, hogy a h\u0151m\u00e9rs\u00e9kletek tov\u00e1bbra is friss\u00fclnek-e, \u00e9s a h\u0151m\u00e9rs\u00e9kletek nem emelkednek-e. Ha a h\u0151m\u00e9rs\u00e9kletek emelkednek, kapcsolja le a nyomtat\u00f3t a h\u00e1l\u00f3zatr\u00f3l. Az M112 parancs hat\u00e1s\u00e1ra a Klipper \"le\u00e1ll\u00edt\u00e1s\" \u00e1llapotba ker\u00fcl. Ennek az \u00e1llapotnak a t\u00f6rl\u00e9s\u00e9hez adj ki egy FIRMWARE_RESTART parancsot az Octoprint termin\u00e1l lapon. Ellen\u0151rizd a f\u0171t\u0151testeket \u00b6 Navig\u00e1lj az Octoprint h\u0151m\u00e9rs\u00e9klet f\u00fclre, \u00e9s \u00edrd be az 50-et, majd nyomj Entert az \"Eszk\u00f6z\" h\u0151m\u00e9rs\u00e9klet mez\u0151be. Az extruder h\u0151m\u00e9rs\u00e9klet\u00e9nek a grafikonon n\u00f6vekednie kell (k\u00f6r\u00fclbel\u00fcl 30 m\u00e1sodpercen bel\u00fcl). Ezut\u00e1n l\u00e9pj az \"Eszk\u00f6z\" h\u0151m\u00e9rs\u00e9klet leg\u00f6rd\u00fcl\u0151 mez\u0151be, \u00e9s v\u00e1laszd az \"Off\" lehet\u0151s\u00e9get. N\u00e9h\u00e1ny perc m\u00falva a h\u0151m\u00e9rs\u00e9kletnek el kell kezdenie visszaesni a kezdeti h\u0151m\u00e9rs\u00e9klet fel\u00e9. Ha a h\u0151m\u00e9rs\u00e9klet nem emelkedik, akkor ellen\u0151rizd a \"heater_pin\" be\u00e1ll\u00edt\u00e1s\u00e1t a konfigur\u00e1ci\u00f3s f\u00e1jban. Ha a nyomtat\u00f3 f\u0171t\u00f6tt \u00e1ggyal rendelkezik, akkor v\u00e9gezd el a fenti vizsg\u00e1latot a t\u00e1rgyasztaln\u00e1l is. A l\u00e9ptet\u0151motor enged\u00e9lyez\u0151 t\u0171 ellen\u0151rz\u00e9se \u00b6 Ellen\u0151rizd, hogy a nyomtat\u00f3 minden tengelye manu\u00e1lisan szabadon mozog-e (a l\u00e9ptet\u0151motorok ki vannak kapcsolva). Ha nem, adj ki egy M84 parancsot a motorok letilt\u00e1s\u00e1ra. Ha valamelyik tengely m\u00e9g mindig nem tud szabadon mozogni, akkor ellen\u0151rizd a l\u00e9ptet\u0151 \"enable_pin\" konfigur\u00e1ci\u00f3t az adott tengelyhez. A legt\u00f6bb hagyom\u00e1nyos l\u00e9ptet\u0151motor meghajt\u00f3n\u00e1l a motor enged\u00e9lyez\u0151 t\u0171 \"active low\", ez\u00e9rt az enged\u00e9lyez\u0151 t\u0171 el\u0151tt egy \"!\" jelnek kell \u00e1llnia (p\u00e9ld\u00e1ul \"enable_pin: !ar38\"). V\u00e9g\u00e1ll\u00e1sok ellen\u0151rz\u00e9se \u00b6 K\u00e9zzel mozgasd az \u00f6sszes nyomtat\u00f3tengelyt \u00fagy, hogy egyik\u00fck se \u00e9rintkezzen v\u00e9g\u00e1ll\u00e1ssal. K\u00fcldj\u00f6n QUERY_ENDSTOPS parancsot az Octoprint termin\u00e1l lapj\u00e1n kereszt\u00fcl. A nyomtat\u00f3nak v\u00e1laszolnia kell az \u00f6sszes konfigur\u00e1lt v\u00e9g\u00e1ll\u00e1s aktu\u00e1lis \u00e1llapot\u00e1val, \u00e9s mindegyiknek \"open\" \u00e1llapotot kell jeleznie. Az egyes v\u00e9gle\u00e1ll\u00e1sok eset\u00e9ben futtassa \u00fajra a QUERY_ENDSTOPS parancsot, mik\u00f6zben manu\u00e1lisan ind\u00edtja el a v\u00e9gle\u00e1ll\u00e1st. A QUERY_ENDSTOPS parancsnak jeleznie kell a v\u00e9g\u00e1ll\u00e1st, mint \"TRIGGERED\". Ha a v\u00e9g\u00e1ll\u00e1s inverznek t\u0171nik (a kiv\u00e1lt\u00e1skor \"open\" jelz\u00e9st ad, \u00e9s ford\u00edtva), akkor adjunk hozz\u00e1 egy \"!\" -t a t\u0171 defin\u00edci\u00f3hoz (p\u00e9ld\u00e1ul \"endstop_pin: ^!ar3\"), vagy t\u00e1vol\u00edtsuk el a \"!\" -t, ha m\u00e1r van ilyen. Ha a v\u00e9g\u00e1ll\u00e1s egy\u00e1ltal\u00e1n nem v\u00e1ltozik, akkor ez \u00e1ltal\u00e1ban azt jelzi, hogy a v\u00e9g\u00e1ll\u00e1s egy m\u00e1sik t\u0171h\u00f6z van csatlakoztatva. Azonban az is el\u0151fordulhat, hogy a t\u0171 \"pullup\" be\u00e1ll\u00edt\u00e1s\u00e1nak megv\u00e1ltoztat\u00e1s\u00e1ra van sz\u00fcks\u00e9g (a '^' az endstop_pin n\u00e9v elej\u00e9n, a legt\u00f6bb nyomtat\u00f3 \"pullup\" ellen\u00e1ll\u00e1st haszn\u00e1l, \u00e9s a '^' -nek jelen kell lennie). L\u00e9ptet\u0151motorok ellen\u0151rz\u00e9se \u00b6 A STEPPER_BUZZ parancs seg\u00edts\u00e9g\u00e9vel ellen\u0151rizd az egyes l\u00e9ptet\u0151motorok csatlakoz\u00e1s\u00e1t. Kezd az adott tengely k\u00e9zi pozicion\u00e1l\u00e1s\u00e1val egy k\u00f6z\u00e9ps\u0151 pontra, majd futtassa a STEPPER_BUZZ STEPPER=stepper_x parancsot. A STEPPER_BUZZ parancs hat\u00e1s\u00e1ra az adott stepper egy millim\u00e9tert mozdul pozit\u00edv ir\u00e1nyba, majd visszat\u00e9r a kiindul\u00e1si helyzet\u00e9be. (Ha a v\u00e9g\u00e1ll\u00e1st a position_endstop=0 \u00e9rt\u00e9ken defini\u00e1ljuk, akkor minden egyes mozg\u00e1s kezdet\u00e9n a l\u00e9ptet\u0151 a v\u00e9g\u00e1ll\u00e1st\u00f3l t\u00e1volodik). Ezt a mozg\u00e1st t\u00edzszer fogja v\u00e9grehajtani. Ha a l\u00e9ptet\u0151 egy\u00e1ltal\u00e1n nem mozog, akkor ellen\u0151rizd az \"enable_pin\" \u00e9s \"step_pin\" be\u00e1ll\u00edt\u00e1sokat a l\u00e9ptet\u0151n\u00e9l. Ha a l\u00e9ptet\u0151motor mozog, de nem t\u00e9r vissza az eredeti helyzet\u00e9be, akkor ellen\u0151rizd a \"dir_pin\" be\u00e1ll\u00edt\u00e1st. Ha a l\u00e9ptet\u0151motor helytelen ir\u00e1nyban mozog, akkor ez \u00e1ltal\u00e1ban azt jelzi, hogy a tengely \"dir_pin\" be\u00e1ll\u00edt\u00e1s\u00e1t meg kell ford\u00edtani. Ezt \u00fagy lehet megtenni, hogy a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlban a \"dir_pin\" \u00e9rt\u00e9khez hozz\u00e1adunk egy '!' jelet (vagy elt\u00e1vol\u00edtjuk, ha m\u00e1r van ilyen). Ha a motor egy millim\u00e9tern\u00e9l l\u00e9nyegesen t\u00f6bbet vagy l\u00e9nyegesen kevesebbet mozog, akkor ellen\u0151rizd a \"rotation_distance\" be\u00e1ll\u00edt\u00e1st. Futtassa a fenti tesztet a konfigur\u00e1ci\u00f3s f\u00e1jlban defini\u00e1lt minden egyes l\u00e9ptet\u0151motorra. (\u00c1ll\u00edtsd a STEPPER_BUZZ parancs STEPPER param\u00e9ter\u00e9t a tesztelend\u0151 konfigur\u00e1ci\u00f3s szakasz nev\u00e9re). Ha nincs nyomtat\u00f3sz\u00e1l az extruderben, akkor a STEPPER_BUZZ paranccsal ellen\u0151rizheti az extruder motor csatlakoz\u00e1s\u00e1t (haszn\u00e1ld a STEPPER=extruder parancsot). Ellenkez\u0151 esetben a legjobb ha az extruder motort k\u00fcl\u00f6n tesztelj\u00fck (l\u00e1sd a k\u00f6vetkez\u0151 szakaszt). Az \u00f6sszes v\u00e9g\u00e1ll\u00e1s \u00e9s l\u00e9ptet\u0151motor ellen\u0151rz\u00e9se ut\u00e1n a c\u00e9lba \u00e1ll\u00edt\u00e1si mechanizmust tesztelni kell. Adj ki egy G28 parancsot az \u00f6sszes tengely alaphelyzetbe \u00e1ll\u00edt\u00e1s\u00e1hoz. Ha a nyomtat\u00f3 nem \u00e1ll\u00edthat\u00f3 be megfelel\u0151en, kapcsolja ki a nyomtat\u00f3t. Ha sz\u00fcks\u00e9ges, ism\u00e9telje meg a v\u00e9g\u00e1ll\u00e1s \u00e9s a l\u00e9ptet\u0151motorok ellen\u0151rz\u00e9s\u00e9t. Extruder motor ellen\u0151rz\u00e9se \u00b6 Az extruder motor tesztel\u00e9s\u00e9hez a nyomtat\u00f3fejet nyomtat\u00e1si h\u0151m\u00e9rs\u00e9kletre kell meleg\u00edteni. Navig\u00e1lj az Octoprint h\u0151m\u00e9rs\u00e9klet f\u00fclre, \u00e9s v\u00e1lasszon ki egy c\u00e9lh\u0151m\u00e9rs\u00e9kletet a h\u0151m\u00e9rs\u00e9klet leg\u00f6rd\u00fcl\u0151 men\u00fcb\u0151l (vagy add meg manu\u00e1lisan a megfelel\u0151 h\u0151m\u00e9rs\u00e9kletet). V\u00e1rja meg, am\u00edg a nyomtat\u00f3 el\u00e9ri a k\u00edv\u00e1nt h\u0151m\u00e9rs\u00e9kletet. Ezut\u00e1n navig\u00e1lj az Octoprint vez\u00e9rl\u0151 lapra, \u00e9s kattints az \"Extrud\u00e1l\u00e1s\" gombra. Ellen\u0151rizd, hogy az extruder motorja a megfelel\u0151 ir\u00e1nyba forog-e. Ha nem, akkor az el\u0151z\u0151 szakaszban tal\u00e1lhat\u00f3 hibaelh\u00e1r\u00edt\u00e1si tippek alapj\u00e1n ellen\u0151rizd az extruder \"enable_pin\", \"step_pin\" \u00e9s \"dir_pin\" be\u00e1ll\u00edt\u00e1sait. PID be\u00e1ll\u00edt\u00e1sok kalibr\u00e1l\u00e1sa \u00b6 A Klipper t\u00e1mogatja a PID-szab\u00e1lyoz\u00e1st az extruder \u00e9s a t\u00e1rgyasztal f\u0171t\u00e9s sz\u00e1m\u00e1ra. Ahhoz, hogy ezt a vez\u00e9rl\u00e9si mechanizmust haszn\u00e1lni lehessen, a PID-be\u00e1ll\u00edt\u00e1sokat minden nyomtat\u00f3n\u00e1l kalibr\u00e1lni kell (a m\u00e1s firmware-ekben vagy a p\u00e9ldakonfigur\u00e1ci\u00f3s f\u00e1jlokban tal\u00e1lhat\u00f3 PID-be\u00e1ll\u00edt\u00e1sok gyakran rosszul m\u0171k\u00f6dnek). Az extruder kalibr\u00e1l\u00e1s\u00e1hoz navig\u00e1lj az OctoPrint termin\u00e1l f\u00fclre, \u00e9s futtassa a PID_CALIBRATE parancsot. P\u00e9ld\u00e1ul: PID_CALIBRATE HEATER=extruder TARGET=170 A hangol\u00e1si teszt v\u00e9g\u00e9n futtassa a SAVE_CONFIG parancsot a printer.cfg f\u00e1jl \u00faj PID-be\u00e1ll\u00edt\u00e1sainak friss\u00edt\u00e9s\u00e9hez. Ha a nyomtat\u00f3 f\u0171t\u00f6tt \u00e1ggyal rendelkezik, \u00e9s az t\u00e1mogatja a PWM (impulzussz\u00e9less\u00e9g-modul\u00e1ci\u00f3) vez\u00e9rl\u00e9st, akkor aj\u00e1nlott PID vez\u00e9rl\u00e9st haszn\u00e1lni a t\u00e1rgyasztalhoz. (Ha a t\u00e1rgyasztal f\u0171t\u00e9st PID algoritmussal vez\u00e9rli, akkor m\u00e1sodpercenk\u00e9nt t\u00edzszer is be- \u00e9s kikapcsolhat, ami nem biztos, hogy megfelel\u0151 a mechanikus kapcsol\u00f3t haszn\u00e1l\u00f3 f\u0171t\u0151berendez\u00e9sekhez.) A tipikus t\u00e1rgyasztal PID-kalibr\u00e1l\u00e1si parancs: PID_CALIBRATE HEATER=heater_bed TARGET=60 K\u00f6vetkez\u0151 l\u00e9p\u00e9sek \u00b6 Ez az \u00fatmutat\u00f3 a Klipper konfigur\u00e1ci\u00f3s f\u00e1jlban l\u00e9v\u0151 t\u0171-be\u00e1ll\u00edt\u00e1sok alapvet\u0151 ellen\u0151rz\u00e9s\u00e9hez ny\u00fajt seg\u00edts\u00e9get. Mindenk\u00e9ppen olvasd el a t\u00e1rgyasztal szintez\u00e9se \u00fatmutat\u00f3t. A Klipperrel t\u00f6rt\u00e9n\u0151 szeletel\u0151 konfigur\u00e1l\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k\u00e9rt olvasd el a Szeletel\u0151k dokumentumot is. Miut\u00e1n meggy\u0151z\u0151dt\u00fcnk arr\u00f3l, hogy az alapnyomtat\u00e1s m\u0171k\u00f6dik, \u00e9rdemes megfontolni a nyom\u00e1s el\u0151tol\u00e1s kalibr\u00e1l\u00e1s\u00e1t. El\u0151fordulhat, hogy m\u00e1s t\u00edpus\u00fa r\u00e9szletes nyomtat\u00f3-kalibr\u00e1l\u00e1sra is sz\u00fcks\u00e9g lehet. Ehhez sz\u00e1mos \u00fatmutat\u00f3 \u00e1ll rendelkez\u00e9sre az interneten (keressen r\u00e1 p\u00e9ld\u00e1ul a \"3d nyomtat\u00f3 kalibr\u00e1l\u00e1s\" sz\u00f6vegre). Ha p\u00e9ld\u00e1ul a gy\u0171r\u0151d\u00e9snek nevezett hat\u00e1st tapasztalod, megpr\u00f3b\u00e1lhatod k\u00f6vetni a rezonancia kompenz\u00e1ci\u00f3 hangol\u00e1si \u00fatmutat\u00f3t.","title":"Konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9sek"},{"location":"Config_checks.html#konfiguracios-ellenorzesek","text":"Ez a dokumentum a Klipper printer.cfg f\u00e1jl t\u0171 be\u00e1ll\u00edt\u00e1sainak meger\u0151s\u00edt\u00e9s\u00e9hez sz\u00fcks\u00e9ges l\u00e9p\u00e9sek list\u00e1j\u00e1t tartalmazza. C\u00e9lszer\u0171 ezeket a l\u00e9p\u00e9seket a telep\u00edt\u00e9si dokumentum l\u00e9p\u00e9seinek k\u00f6vet\u00e9s\u00e9vel v\u00e9grehajtani. Az \u00fatmutat\u00f3 sor\u00e1n sz\u00fcks\u00e9g lehet a Klipper konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1nak m\u00f3dos\u00edt\u00e1s\u00e1ra. \u00dcgyelj arra, hogy a konfigur\u00e1ci\u00f3s f\u00e1jl minden m\u00f3dos\u00edt\u00e1sa ut\u00e1n adj ki egy RESTART parancsot, hogy megbizonyosodj arr\u00f3l, hogy a v\u00e1ltoztat\u00e1s \u00e9rv\u00e9nybe l\u00e9p (\u00edrd be a \"restart\" kifejez\u00e9st az Octoprint termin\u00e1l lapj\u00e1ra, majd kattints a \"K\u00fcld\u00e9s\" gombra). Az is j\u00f3 \u00f6tlet, hogy minden RESTART ut\u00e1n kiadsz egy STATUS parancsot a konfigur\u00e1ci\u00f3s f\u00e1jl sikeres bet\u00f6lt\u00e9s\u00e9nek ellen\u0151rz\u00e9s\u00e9re.","title":"Konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9sek"},{"location":"Config_checks.html#ellenorizd-a-homersekletet","text":"Kezd azzal, hogy ellen\u0151rz\u00f6d, a h\u0151m\u00e9rs\u00e9klet megfelel\u0151en van-e jelentve. L\u00e9pj az Octoprint h\u0151m\u00e9rs\u00e9klet lapj\u00e1ra. Ellen\u0151rizd, hogy a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal h\u0151m\u00e9rs\u00e9klete (ha van) jelen van-e, \u00e9s nem emelkedik. Ha n\u00f6vekszik, kapcsolja ki a nyomtat\u00f3t. Ha a h\u0151m\u00e9rs\u00e9kletek nem pontosak, tekintsd \u00e1t a f\u00fav\u00f3ka \u00e9s/vagy t\u00e1rgyasztal \"sensor_type\" \u00e9s \"sensor_pin\" be\u00e1ll\u00edt\u00e1sait.","title":"Ellen\u0151rizd a h\u0151m\u00e9rs\u00e9kletet"},{"location":"Config_checks.html#ellenorzes-m112","text":"Navig\u00e1lj az Octoprint termin\u00e1l f\u00fclre, \u00e9s adj ki egy M112 parancsot a termin\u00e1lmez\u0151ben. Ez a parancs arra k\u00e9ri a Klippert, hogy l\u00e9pjen \"le\u00e1ll\u00e1si\" \u00e1llapotba. Ennek hat\u00e1s\u00e1ra az Octoprint megszak\u00edtja a kapcsolatot a Klipperrel. Navig\u00e1lj a Connection (Kapcsolat) ter\u00fcletre, \u00e9s kattints a \"Kapcsol\u00f3d\u00e1s\" gombra, hogy az Octoprint \u00fajra csatlakozzon. Ezut\u00e1n navig\u00e1lj az Octoprint h\u0151m\u00e9rs\u00e9klet f\u00fclre, \u00e9s ellen\u0151rizd, hogy a h\u0151m\u00e9rs\u00e9kletek tov\u00e1bbra is friss\u00fclnek-e, \u00e9s a h\u0151m\u00e9rs\u00e9kletek nem emelkednek-e. Ha a h\u0151m\u00e9rs\u00e9kletek emelkednek, kapcsolja le a nyomtat\u00f3t a h\u00e1l\u00f3zatr\u00f3l. Az M112 parancs hat\u00e1s\u00e1ra a Klipper \"le\u00e1ll\u00edt\u00e1s\" \u00e1llapotba ker\u00fcl. Ennek az \u00e1llapotnak a t\u00f6rl\u00e9s\u00e9hez adj ki egy FIRMWARE_RESTART parancsot az Octoprint termin\u00e1l lapon.","title":"Ellen\u0151rz\u00e9s M112"},{"location":"Config_checks.html#ellenorizd-a-futotesteket","text":"Navig\u00e1lj az Octoprint h\u0151m\u00e9rs\u00e9klet f\u00fclre, \u00e9s \u00edrd be az 50-et, majd nyomj Entert az \"Eszk\u00f6z\" h\u0151m\u00e9rs\u00e9klet mez\u0151be. Az extruder h\u0151m\u00e9rs\u00e9klet\u00e9nek a grafikonon n\u00f6vekednie kell (k\u00f6r\u00fclbel\u00fcl 30 m\u00e1sodpercen bel\u00fcl). Ezut\u00e1n l\u00e9pj az \"Eszk\u00f6z\" h\u0151m\u00e9rs\u00e9klet leg\u00f6rd\u00fcl\u0151 mez\u0151be, \u00e9s v\u00e1laszd az \"Off\" lehet\u0151s\u00e9get. N\u00e9h\u00e1ny perc m\u00falva a h\u0151m\u00e9rs\u00e9kletnek el kell kezdenie visszaesni a kezdeti h\u0151m\u00e9rs\u00e9klet fel\u00e9. Ha a h\u0151m\u00e9rs\u00e9klet nem emelkedik, akkor ellen\u0151rizd a \"heater_pin\" be\u00e1ll\u00edt\u00e1s\u00e1t a konfigur\u00e1ci\u00f3s f\u00e1jban. Ha a nyomtat\u00f3 f\u0171t\u00f6tt \u00e1ggyal rendelkezik, akkor v\u00e9gezd el a fenti vizsg\u00e1latot a t\u00e1rgyasztaln\u00e1l is.","title":"Ellen\u0151rizd a f\u0171t\u0151testeket"},{"location":"Config_checks.html#a-leptetomotor-engedelyezo-tu-ellenorzese","text":"Ellen\u0151rizd, hogy a nyomtat\u00f3 minden tengelye manu\u00e1lisan szabadon mozog-e (a l\u00e9ptet\u0151motorok ki vannak kapcsolva). Ha nem, adj ki egy M84 parancsot a motorok letilt\u00e1s\u00e1ra. Ha valamelyik tengely m\u00e9g mindig nem tud szabadon mozogni, akkor ellen\u0151rizd a l\u00e9ptet\u0151 \"enable_pin\" konfigur\u00e1ci\u00f3t az adott tengelyhez. A legt\u00f6bb hagyom\u00e1nyos l\u00e9ptet\u0151motor meghajt\u00f3n\u00e1l a motor enged\u00e9lyez\u0151 t\u0171 \"active low\", ez\u00e9rt az enged\u00e9lyez\u0151 t\u0171 el\u0151tt egy \"!\" jelnek kell \u00e1llnia (p\u00e9ld\u00e1ul \"enable_pin: !ar38\").","title":"A l\u00e9ptet\u0151motor enged\u00e9lyez\u0151 t\u0171 ellen\u0151rz\u00e9se"},{"location":"Config_checks.html#vegallasok-ellenorzese","text":"K\u00e9zzel mozgasd az \u00f6sszes nyomtat\u00f3tengelyt \u00fagy, hogy egyik\u00fck se \u00e9rintkezzen v\u00e9g\u00e1ll\u00e1ssal. K\u00fcldj\u00f6n QUERY_ENDSTOPS parancsot az Octoprint termin\u00e1l lapj\u00e1n kereszt\u00fcl. A nyomtat\u00f3nak v\u00e1laszolnia kell az \u00f6sszes konfigur\u00e1lt v\u00e9g\u00e1ll\u00e1s aktu\u00e1lis \u00e1llapot\u00e1val, \u00e9s mindegyiknek \"open\" \u00e1llapotot kell jeleznie. Az egyes v\u00e9gle\u00e1ll\u00e1sok eset\u00e9ben futtassa \u00fajra a QUERY_ENDSTOPS parancsot, mik\u00f6zben manu\u00e1lisan ind\u00edtja el a v\u00e9gle\u00e1ll\u00e1st. A QUERY_ENDSTOPS parancsnak jeleznie kell a v\u00e9g\u00e1ll\u00e1st, mint \"TRIGGERED\". Ha a v\u00e9g\u00e1ll\u00e1s inverznek t\u0171nik (a kiv\u00e1lt\u00e1skor \"open\" jelz\u00e9st ad, \u00e9s ford\u00edtva), akkor adjunk hozz\u00e1 egy \"!\" -t a t\u0171 defin\u00edci\u00f3hoz (p\u00e9ld\u00e1ul \"endstop_pin: ^!ar3\"), vagy t\u00e1vol\u00edtsuk el a \"!\" -t, ha m\u00e1r van ilyen. Ha a v\u00e9g\u00e1ll\u00e1s egy\u00e1ltal\u00e1n nem v\u00e1ltozik, akkor ez \u00e1ltal\u00e1ban azt jelzi, hogy a v\u00e9g\u00e1ll\u00e1s egy m\u00e1sik t\u0171h\u00f6z van csatlakoztatva. Azonban az is el\u0151fordulhat, hogy a t\u0171 \"pullup\" be\u00e1ll\u00edt\u00e1s\u00e1nak megv\u00e1ltoztat\u00e1s\u00e1ra van sz\u00fcks\u00e9g (a '^' az endstop_pin n\u00e9v elej\u00e9n, a legt\u00f6bb nyomtat\u00f3 \"pullup\" ellen\u00e1ll\u00e1st haszn\u00e1l, \u00e9s a '^' -nek jelen kell lennie).","title":"V\u00e9g\u00e1ll\u00e1sok ellen\u0151rz\u00e9se"},{"location":"Config_checks.html#leptetomotorok-ellenorzese","text":"A STEPPER_BUZZ parancs seg\u00edts\u00e9g\u00e9vel ellen\u0151rizd az egyes l\u00e9ptet\u0151motorok csatlakoz\u00e1s\u00e1t. Kezd az adott tengely k\u00e9zi pozicion\u00e1l\u00e1s\u00e1val egy k\u00f6z\u00e9ps\u0151 pontra, majd futtassa a STEPPER_BUZZ STEPPER=stepper_x parancsot. A STEPPER_BUZZ parancs hat\u00e1s\u00e1ra az adott stepper egy millim\u00e9tert mozdul pozit\u00edv ir\u00e1nyba, majd visszat\u00e9r a kiindul\u00e1si helyzet\u00e9be. (Ha a v\u00e9g\u00e1ll\u00e1st a position_endstop=0 \u00e9rt\u00e9ken defini\u00e1ljuk, akkor minden egyes mozg\u00e1s kezdet\u00e9n a l\u00e9ptet\u0151 a v\u00e9g\u00e1ll\u00e1st\u00f3l t\u00e1volodik). Ezt a mozg\u00e1st t\u00edzszer fogja v\u00e9grehajtani. Ha a l\u00e9ptet\u0151 egy\u00e1ltal\u00e1n nem mozog, akkor ellen\u0151rizd az \"enable_pin\" \u00e9s \"step_pin\" be\u00e1ll\u00edt\u00e1sokat a l\u00e9ptet\u0151n\u00e9l. Ha a l\u00e9ptet\u0151motor mozog, de nem t\u00e9r vissza az eredeti helyzet\u00e9be, akkor ellen\u0151rizd a \"dir_pin\" be\u00e1ll\u00edt\u00e1st. Ha a l\u00e9ptet\u0151motor helytelen ir\u00e1nyban mozog, akkor ez \u00e1ltal\u00e1ban azt jelzi, hogy a tengely \"dir_pin\" be\u00e1ll\u00edt\u00e1s\u00e1t meg kell ford\u00edtani. Ezt \u00fagy lehet megtenni, hogy a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlban a \"dir_pin\" \u00e9rt\u00e9khez hozz\u00e1adunk egy '!' jelet (vagy elt\u00e1vol\u00edtjuk, ha m\u00e1r van ilyen). Ha a motor egy millim\u00e9tern\u00e9l l\u00e9nyegesen t\u00f6bbet vagy l\u00e9nyegesen kevesebbet mozog, akkor ellen\u0151rizd a \"rotation_distance\" be\u00e1ll\u00edt\u00e1st. Futtassa a fenti tesztet a konfigur\u00e1ci\u00f3s f\u00e1jlban defini\u00e1lt minden egyes l\u00e9ptet\u0151motorra. (\u00c1ll\u00edtsd a STEPPER_BUZZ parancs STEPPER param\u00e9ter\u00e9t a tesztelend\u0151 konfigur\u00e1ci\u00f3s szakasz nev\u00e9re). Ha nincs nyomtat\u00f3sz\u00e1l az extruderben, akkor a STEPPER_BUZZ paranccsal ellen\u0151rizheti az extruder motor csatlakoz\u00e1s\u00e1t (haszn\u00e1ld a STEPPER=extruder parancsot). Ellenkez\u0151 esetben a legjobb ha az extruder motort k\u00fcl\u00f6n tesztelj\u00fck (l\u00e1sd a k\u00f6vetkez\u0151 szakaszt). Az \u00f6sszes v\u00e9g\u00e1ll\u00e1s \u00e9s l\u00e9ptet\u0151motor ellen\u0151rz\u00e9se ut\u00e1n a c\u00e9lba \u00e1ll\u00edt\u00e1si mechanizmust tesztelni kell. Adj ki egy G28 parancsot az \u00f6sszes tengely alaphelyzetbe \u00e1ll\u00edt\u00e1s\u00e1hoz. Ha a nyomtat\u00f3 nem \u00e1ll\u00edthat\u00f3 be megfelel\u0151en, kapcsolja ki a nyomtat\u00f3t. Ha sz\u00fcks\u00e9ges, ism\u00e9telje meg a v\u00e9g\u00e1ll\u00e1s \u00e9s a l\u00e9ptet\u0151motorok ellen\u0151rz\u00e9s\u00e9t.","title":"L\u00e9ptet\u0151motorok ellen\u0151rz\u00e9se"},{"location":"Config_checks.html#extruder-motor-ellenorzese","text":"Az extruder motor tesztel\u00e9s\u00e9hez a nyomtat\u00f3fejet nyomtat\u00e1si h\u0151m\u00e9rs\u00e9kletre kell meleg\u00edteni. Navig\u00e1lj az Octoprint h\u0151m\u00e9rs\u00e9klet f\u00fclre, \u00e9s v\u00e1lasszon ki egy c\u00e9lh\u0151m\u00e9rs\u00e9kletet a h\u0151m\u00e9rs\u00e9klet leg\u00f6rd\u00fcl\u0151 men\u00fcb\u0151l (vagy add meg manu\u00e1lisan a megfelel\u0151 h\u0151m\u00e9rs\u00e9kletet). V\u00e1rja meg, am\u00edg a nyomtat\u00f3 el\u00e9ri a k\u00edv\u00e1nt h\u0151m\u00e9rs\u00e9kletet. Ezut\u00e1n navig\u00e1lj az Octoprint vez\u00e9rl\u0151 lapra, \u00e9s kattints az \"Extrud\u00e1l\u00e1s\" gombra. Ellen\u0151rizd, hogy az extruder motorja a megfelel\u0151 ir\u00e1nyba forog-e. Ha nem, akkor az el\u0151z\u0151 szakaszban tal\u00e1lhat\u00f3 hibaelh\u00e1r\u00edt\u00e1si tippek alapj\u00e1n ellen\u0151rizd az extruder \"enable_pin\", \"step_pin\" \u00e9s \"dir_pin\" be\u00e1ll\u00edt\u00e1sait.","title":"Extruder motor ellen\u0151rz\u00e9se"},{"location":"Config_checks.html#pid-beallitasok-kalibralasa","text":"A Klipper t\u00e1mogatja a PID-szab\u00e1lyoz\u00e1st az extruder \u00e9s a t\u00e1rgyasztal f\u0171t\u00e9s sz\u00e1m\u00e1ra. Ahhoz, hogy ezt a vez\u00e9rl\u00e9si mechanizmust haszn\u00e1lni lehessen, a PID-be\u00e1ll\u00edt\u00e1sokat minden nyomtat\u00f3n\u00e1l kalibr\u00e1lni kell (a m\u00e1s firmware-ekben vagy a p\u00e9ldakonfigur\u00e1ci\u00f3s f\u00e1jlokban tal\u00e1lhat\u00f3 PID-be\u00e1ll\u00edt\u00e1sok gyakran rosszul m\u0171k\u00f6dnek). Az extruder kalibr\u00e1l\u00e1s\u00e1hoz navig\u00e1lj az OctoPrint termin\u00e1l f\u00fclre, \u00e9s futtassa a PID_CALIBRATE parancsot. P\u00e9ld\u00e1ul: PID_CALIBRATE HEATER=extruder TARGET=170 A hangol\u00e1si teszt v\u00e9g\u00e9n futtassa a SAVE_CONFIG parancsot a printer.cfg f\u00e1jl \u00faj PID-be\u00e1ll\u00edt\u00e1sainak friss\u00edt\u00e9s\u00e9hez. Ha a nyomtat\u00f3 f\u0171t\u00f6tt \u00e1ggyal rendelkezik, \u00e9s az t\u00e1mogatja a PWM (impulzussz\u00e9less\u00e9g-modul\u00e1ci\u00f3) vez\u00e9rl\u00e9st, akkor aj\u00e1nlott PID vez\u00e9rl\u00e9st haszn\u00e1lni a t\u00e1rgyasztalhoz. (Ha a t\u00e1rgyasztal f\u0171t\u00e9st PID algoritmussal vez\u00e9rli, akkor m\u00e1sodpercenk\u00e9nt t\u00edzszer is be- \u00e9s kikapcsolhat, ami nem biztos, hogy megfelel\u0151 a mechanikus kapcsol\u00f3t haszn\u00e1l\u00f3 f\u0171t\u0151berendez\u00e9sekhez.) A tipikus t\u00e1rgyasztal PID-kalibr\u00e1l\u00e1si parancs: PID_CALIBRATE HEATER=heater_bed TARGET=60","title":"PID be\u00e1ll\u00edt\u00e1sok kalibr\u00e1l\u00e1sa"},{"location":"Config_checks.html#kovetkezo-lepesek","text":"Ez az \u00fatmutat\u00f3 a Klipper konfigur\u00e1ci\u00f3s f\u00e1jlban l\u00e9v\u0151 t\u0171-be\u00e1ll\u00edt\u00e1sok alapvet\u0151 ellen\u0151rz\u00e9s\u00e9hez ny\u00fajt seg\u00edts\u00e9get. Mindenk\u00e9ppen olvasd el a t\u00e1rgyasztal szintez\u00e9se \u00fatmutat\u00f3t. A Klipperrel t\u00f6rt\u00e9n\u0151 szeletel\u0151 konfigur\u00e1l\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k\u00e9rt olvasd el a Szeletel\u0151k dokumentumot is. Miut\u00e1n meggy\u0151z\u0151dt\u00fcnk arr\u00f3l, hogy az alapnyomtat\u00e1s m\u0171k\u00f6dik, \u00e9rdemes megfontolni a nyom\u00e1s el\u0151tol\u00e1s kalibr\u00e1l\u00e1s\u00e1t. El\u0151fordulhat, hogy m\u00e1s t\u00edpus\u00fa r\u00e9szletes nyomtat\u00f3-kalibr\u00e1l\u00e1sra is sz\u00fcks\u00e9g lehet. Ehhez sz\u00e1mos \u00fatmutat\u00f3 \u00e1ll rendelkez\u00e9sre az interneten (keressen r\u00e1 p\u00e9ld\u00e1ul a \"3d nyomtat\u00f3 kalibr\u00e1l\u00e1s\" sz\u00f6vegre). Ha p\u00e9ld\u00e1ul a gy\u0171r\u0151d\u00e9snek nevezett hat\u00e1st tapasztalod, megpr\u00f3b\u00e1lhatod k\u00f6vetni a rezonancia kompenz\u00e1ci\u00f3 hangol\u00e1si \u00fatmutat\u00f3t.","title":"K\u00f6vetkez\u0151 l\u00e9p\u00e9sek"},{"location":"Contact.html","text":"Kapcsolat \u00b6 Ez a dokumentum a Klipper csapat\u00e1nak el\u00e9rhet\u0151s\u00e9g\u00e9t tartalmazza. K\u00f6z\u00f6ss\u00e9gi F\u00f3rum Discord Cseveg\u00e9s K\u00e9rd\u00e9sem van a Klipperrel kapcsolatban Van egy funkci\u00f3k\u00e9relmem Seg\u00edts\u00e9g! Nem m\u0171k\u00f6dik! Hib\u00e1t diagnosztiz\u00e1ltam a Klipper szoftverben V\u00e1ltoztat\u00e1sokat v\u00e9gzek, amelyeket szeretn\u00e9k a Klipperbe be\u00e9p\u00edteni K\u00f6z\u00f6ss\u00e9gi F\u00f3rum \u00b6 Van egy Klipper K\u00f6z\u00f6ss\u00e9gi T\u00e1rsalg\u00f3 szerver a Klipperrel kapcsolatos besz\u00e9lget\u00e9sekhez. Discord Cseveg\u00e9s \u00b6 Van egy Klippernek szentelt Discord szerver a k\u00f6vetkez\u0151 c\u00edmen: https://discord.klipper3d.org . Ezt a szervert egy Klipper-rajong\u00f3kb\u00f3l \u00e1ll\u00f3 k\u00f6z\u00f6ss\u00e9g m\u0171k\u00f6dteti, amely a Klipperrel kapcsolatos vit\u00e1knak szenteli mag\u00e1t. Lehet\u0151v\u00e9 teszi a felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra, hogy val\u00f3s id\u0151ben csevegjenek m\u00e1s felhaszn\u00e1l\u00f3kkal. K\u00e9rd\u00e9sem van a Klipperrel kapcsolatban \u00b6 Sok k\u00e9rd\u00e9sre m\u00e1r v\u00e1laszt kaptunk a Klipper dokument\u00e1ci\u00f3ban . K\u00e9rj\u00fck, mindenk\u00e9ppen olvasd el a dokument\u00e1ci\u00f3t \u00e9s k\u00f6vesse az ott megadott utas\u00edt\u00e1sokat. Lehet\u0151s\u00e9g van hasonl\u00f3 k\u00e9rd\u00e9sek keres\u00e9s\u00e9re a Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rum oldalon is. Ha szeretn\u00e9d megosztani tud\u00e1sodat \u00e9s tapasztalataidat m\u00e1s Klipper felhaszn\u00e1l\u00f3kkal, akkor csatlakozhatsz a Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rum vagy a Discord Cseveg\u00e9s -hez. Mindkett\u0151 olyan k\u00f6z\u00f6ss\u00e9g, ahol a Klipper felhaszn\u00e1l\u00f3k megvitathatj\u00e1k a Klippert m\u00e1s felhaszn\u00e1l\u00f3kkal. Sok k\u00e9rd\u00e9s, amit kapunk, \u00e1ltal\u00e1nos 3D-nyomtat\u00e1ssal kapcsolatos, amely nem kifejezetten a Klipperre vonatkozik. Ha \u00e1ltal\u00e1nos k\u00e9rd\u00e9se van, vagy \u00e1ltal\u00e1nos nyomtat\u00e1si probl\u00e9m\u00e1kkal k\u00fczd, akkor val\u00f3sz\u00edn\u0171leg jobb v\u00e1laszt kap, ha egy \u00e1ltal\u00e1nos 3D-nyomtat\u00e1si f\u00f3rumon vagy a nyomtat\u00f3 hardver\u00e9vel foglalkoz\u00f3 f\u00f3rumon teszi fel a k\u00e9rd\u00e9st. Ne nyisson GitHub-on a Klippern\u00e9l probl\u00e9majelent\u00e9st-t, ha k\u00e9rd\u00e9st szeretne feltenni. Van egy funkci\u00f3k\u00e9relmem \u00b6 Minden \u00faj funkci\u00f3hoz sz\u00fcks\u00e9g van valakire, akit \u00e9rdekel \u00e9s k\u00e9pes az adott funkci\u00f3 megval\u00f3s\u00edt\u00e1s\u00e1ra. Ha szeretn\u00e9l seg\u00edteni egy \u00faj funkci\u00f3 megval\u00f3s\u00edt\u00e1s\u00e1ban vagy tesztel\u00e9s\u00e9ben, akkor a Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rum oldalon keresheted a folyamatban l\u00e9v\u0151 fejleszt\u00e9seket. A Discord Cseveg\u00e9s is rendelkez\u00e9sre \u00e1ll a munkat\u00e1rsak k\u00f6z\u00f6tti megbesz\u00e9l\u00e9sekhez. Ne nyisson GitHub-on a Klippern\u00e9l probl\u00e9majelent\u00e9st, hogy funkci\u00f3t k\u00e9rj. Seg\u00edts\u00e9g! Nem m\u0171k\u00f6dik! \u00b6 Sajnos sokkal t\u00f6bb seg\u00edts\u00e9gk\u00e9r\u00e9s \u00e9rkezik hozz\u00e1nk, mint amennyit meg tudn\u00e1nk v\u00e1laszolni. A legt\u00f6bb probl\u00e9m\u00e1s bejelent\u00e9s, amit l\u00e1tunk v\u00e9g\u00fcl a k\u00f6vetkez\u0151kre vezethet\u0151 vissza: Finom hib\u00e1k a hardverben, vagy Nem k\u00f6veti a Klipper dokument\u00e1ci\u00f3ban le\u00edrt \u00f6sszes l\u00e9p\u00e9st. Ha probl\u00e9m\u00e1kat tapasztalsz, javasoljuk, hogy figyelmesen olvasd el a Klipper dokument\u00e1ci\u00f3t , \u00e9s ellen\u0151rizd, hogy minden l\u00e9p\u00e9st k\u00f6vetett-e. Ha nyomtat\u00e1si probl\u00e9m\u00e1t tapasztalsz, akkor javasoljuk, hogy alaposan vizsg\u00e1ld meg a nyomtat\u00f3 hardver\u00e9t (minden illeszt\u00e9st, vezet\u00e9ket, csavart stb.), \u00e9s gy\u0151z\u0151dj meg arr\u00f3l, hogy semmi rendellenes nincs. \u00dagy tal\u00e1ljuk, hogy a legt\u00f6bb nyomtat\u00e1si probl\u00e9ma nem a Klipper szoftverrel kapcsolatos. Ha a nyomtat\u00f3 hardver\u00e9vel kapcsolatos probl\u00e9m\u00e1t tal\u00e1l, akkor val\u00f3sz\u00edn\u0171leg jobb v\u00e1laszt kap, ha egy \u00e1ltal\u00e1nos 3D-nyomtat\u00e1si f\u00f3rumon vagy egy, a nyomtat\u00f3 hardver\u00e9vel foglalkoz\u00f3 f\u00f3rumon keres. A Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rumban is kereshetsz hasonl\u00f3 k\u00e9rd\u00e9seket. Ha szeretn\u00e9d megosztani tud\u00e1sodat \u00e9s tapasztalataidat m\u00e1s Klipper felhaszn\u00e1l\u00f3kkal, akkor csatlakozhatsz a Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rum vagy a Discord Cseveg\u00e9s -hez. Mindkett\u0151 olyan k\u00f6z\u00f6ss\u00e9g, ahol a Klipper felhaszn\u00e1l\u00f3k megvitathatj\u00e1k a Klippert m\u00e1s felhaszn\u00e1l\u00f3kkal. Ne nyisson GitHub-on a Klippern\u00e9l probl\u00e9majelent\u00e9st, hogy seg\u00edts\u00e9get k\u00e9rj. Hib\u00e1t diagnosztiz\u00e1ltam a Klipper szoftverben \u00b6 A Klipper egy ny\u00edlt forr\u00e1sk\u00f3d\u00fa projekt, \u00e9s nagyra \u00e9rt\u00e9kelj\u00fck, ha a munkat\u00e1rsak diagnosztiz\u00e1lj\u00e1k a szoftver hib\u00e1it. Fontos inform\u00e1ci\u00f3kra lesz sz\u00fcks\u00e9g a hiba kijav\u00edt\u00e1s\u00e1hoz. K\u00e9rj\u00fck, k\u00f6vesse az al\u00e1bbi l\u00e9p\u00e9seket: Gy\u0151z\u0151dj meg r\u00f3la, hogy a hiba a Klipper szoftverben van. Ha \u00fagy gondolja, hogy \"van egy probl\u00e9ma, nem tudom kital\u00e1lni, hogy mi\u00e9rt, \u00e9s ez\u00e9rt ez egy Klipper hiba\", akkor ne nyiss egy github probl\u00e9mabejelent\u00e9st. Ebben az esetben valakinek, akit \u00e9rdekel \u00e9s k\u00e9pes r\u00e1, el\u0151sz\u00f6r fel kell kutatnia \u00e9s diagnosztiz\u00e1lnia a probl\u00e9ma kiv\u00e1lt\u00f3 ok\u00e1t. Ha szeretn\u00e9d megosztani a kutat\u00e1sod eredm\u00e9ny\u00e9t, vagy megn\u00e9zni, hogy m\u00e1s felhaszn\u00e1l\u00f3k is hasonl\u00f3 probl\u00e9m\u00e1kkal k\u00fczdenek-e, akkor keresd meg a Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rum oldal\u00e1t. Gy\u0151z\u0151dj meg r\u00f3la, hogy a https://github.com/Klipper3d/klipper v\u00e1ltozatlan k\u00f3dj\u00e1t futtatja. Ha a k\u00f3dot m\u00f3dos\u00edtott\u00e1k, vagy m\u00e1s forr\u00e1sb\u00f3l sz\u00e1rmazik, akkor a hiba bejelent\u00e9se el\u0151tt reproduk\u00e1lnia kell a probl\u00e9m\u00e1t a https://github.com/Klipper3d/klipper nem m\u00f3dos\u00edtott k\u00f3ddal. Ha lehets\u00e9ges, futtasson egy M112 parancsot az OctoPrint konzolj\u00e1ban k\u00f6zvetlen\u00fcl a nemk\u00edv\u00e1natos esem\u00e9ny bek\u00f6vetkez\u00e9se ut\u00e1n. Ennek hat\u00e1s\u00e1ra a Klipper \"le\u00e1ll\u00edt\u00e1si \u00e1llapotba\" ker\u00fcl, \u00e9s tov\u00e1bbi hibakeres\u00e9si inform\u00e1ci\u00f3k \u00edr\u00f3dnak a napl\u00f3f\u00e1jlba. Szerezd be a Klipper napl\u00f3f\u00e1jlt az esem\u00e9nyb\u0151l. A napl\u00f3f\u00e1jlt \u00fagy alak\u00edtott\u00e1k ki, hogy v\u00e1laszt adjon a Klipper fejleszt\u0151inek a szoftverrel \u00e9s k\u00f6rnyezet\u00e9vel kapcsolatos gyakori k\u00e9rd\u00e9seire (szoftver verzi\u00f3, hardvert\u00edpus, konfigur\u00e1ci\u00f3, esem\u00e9nyid\u0151z\u00edt\u00e9s \u00e9s t\u00f6bb sz\u00e1z egy\u00e9b k\u00e9rd\u00e9s). A Klipper napl\u00f3f\u00e1jlja a /tmp/klippy.log c\u00edmen tal\u00e1lhat\u00f3 a Klipper \"gazdag\u00e9pen\" (vagyis a Raspberry Pi-n). Egy \"SCP\" vagy \"SFTP\" seg\u00e9dprogram sz\u00fcks\u00e9ges a napl\u00f3f\u00e1jlnak az asztali sz\u00e1m\u00edt\u00f3g\u00e9pre val\u00f3 m\u00e1sol\u00e1s\u00e1hoz. Az \"SCP\" seg\u00e9dprogram alapfelszerelts\u00e9gk\u00e9nt j\u00e1r a Linux \u00e9s MacOS asztali sz\u00e1m\u00edt\u00f3g\u00e9pekhez. M\u00e1s asztali sz\u00e1m\u00edt\u00f3g\u00e9pekhez szabadon el\u00e9rhet\u0151 SCP seg\u00e9dprogramok is l\u00e9teznek (pl. WinSCP). Ha olyan grafikus SCP seg\u00e9dprogramot haszn\u00e1l, amely nem tudja k\u00f6zvetlen\u00fcl m\u00e1solni a /tmp/klippy.log , akkor kattints t\u00f6bbsz\u00f6r a ... vagy parent folder , am\u00edg el nem jutunk a gy\u00f6k\u00e9rk\u00f6nyvt\u00e1rba, kattintsunk a tmp mapp\u00e1ra, majd v\u00e1lasszuk ki a klippy.log f\u00e1jlt. M\u00e1solja a napl\u00f3f\u00e1jlt az asztal\u00e1ra, hogy csatolni tudja egy probl\u00e9majelent\u00e9shez. Ne m\u00f3dos\u00edtsd a napl\u00f3f\u00e1jlt semmilyen m\u00f3don; ne adj meg egy r\u00e9szletet a napl\u00f3b\u00f3l. Csak a teljes, v\u00e1ltozatlan napl\u00f3f\u00e1jl ny\u00fajtja a sz\u00fcks\u00e9ges inform\u00e1ci\u00f3kat. Ha a napl\u00f3f\u00e1jl nagyon nagy (pl. 2 MB-n\u00e1l nagyobb), akkor sz\u00fcks\u00e9g lehet a napl\u00f3 zip vagy gzip t\u00f6m\u00f6r\u00edt\u00e9s\u00e9re. Nyiss egy \u00faj GitHub probl\u00e9mabejelent\u00e9st a https://github.com/Klipper3d/klipper/issues c\u00edmen, \u00e9s \u00edrd le egy\u00e9rtelm\u0171en a probl\u00e9m\u00e1t. A Klipper fejleszt\u0151inek meg kell \u00e9rteni\u00fck, hogy milyen l\u00e9p\u00e9seket tettek, mi volt a k\u00edv\u00e1nt eredm\u00e9ny, \u00e9s milyen eredm\u00e9ny t\u00f6rt\u00e9nt val\u00f3j\u00e1ban. A Klipper napl\u00f3f\u00e1jlt csatolni kell a hibajegyhez: V\u00e1ltoztat\u00e1sokat v\u00e9gzek, amelyeket szeretn\u00e9k a Klipperbe be\u00e9p\u00edteni \u00b6 A Klipper ny\u00edlt forr\u00e1sk\u00f3d\u00fa szoftver, \u00e9s \u00f6r\u00f6mmel fogadjuk az \u00faj hozz\u00e1j\u00e1rul\u00e1sokat. Az \u00faj hozz\u00e1j\u00e1rul\u00e1sokat (mind a k\u00f3dot, mind a dokument\u00e1ci\u00f3t illet\u0151en) a GitHub Pull Requests-en kereszt\u00fcl k\u00fcldheted be. L\u00e1sd a CONTRIBUTING dokumentumot a fontos inform\u00e1ci\u00f3k\u00e9rt. Sz\u00e1mos Fejleszt\u0151i dokumentum van fejleszt\u0151knek. Ha k\u00e9rd\u00e9se van a k\u00f3ddal kapcsolatban, akkor a Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rum vagy a Discord Cseveg\u00e9s oldalon is felteheti a k\u00e9rd\u00e9st. Ha friss\u00edteni szeretn\u00e9 az aktu\u00e1lis fejleszt\u00e9st, akkor megnyithat egy GitHub-probl\u00e9m\u00e1t a k\u00f3d hely\u00e9vel, a m\u00f3dos\u00edt\u00e1sok \u00e1ttekint\u00e9s\u00e9vel \u00e9s az aktu\u00e1lis \u00e1llapot le\u00edr\u00e1s\u00e1val.","title":"Kapcsolat"},{"location":"Contact.html#kapcsolat","text":"Ez a dokumentum a Klipper csapat\u00e1nak el\u00e9rhet\u0151s\u00e9g\u00e9t tartalmazza. K\u00f6z\u00f6ss\u00e9gi F\u00f3rum Discord Cseveg\u00e9s K\u00e9rd\u00e9sem van a Klipperrel kapcsolatban Van egy funkci\u00f3k\u00e9relmem Seg\u00edts\u00e9g! Nem m\u0171k\u00f6dik! Hib\u00e1t diagnosztiz\u00e1ltam a Klipper szoftverben V\u00e1ltoztat\u00e1sokat v\u00e9gzek, amelyeket szeretn\u00e9k a Klipperbe be\u00e9p\u00edteni","title":"Kapcsolat"},{"location":"Contact.html#kozossegi-forum","text":"Van egy Klipper K\u00f6z\u00f6ss\u00e9gi T\u00e1rsalg\u00f3 szerver a Klipperrel kapcsolatos besz\u00e9lget\u00e9sekhez.","title":"K\u00f6z\u00f6ss\u00e9gi F\u00f3rum"},{"location":"Contact.html#discord-cseveges","text":"Van egy Klippernek szentelt Discord szerver a k\u00f6vetkez\u0151 c\u00edmen: https://discord.klipper3d.org . Ezt a szervert egy Klipper-rajong\u00f3kb\u00f3l \u00e1ll\u00f3 k\u00f6z\u00f6ss\u00e9g m\u0171k\u00f6dteti, amely a Klipperrel kapcsolatos vit\u00e1knak szenteli mag\u00e1t. Lehet\u0151v\u00e9 teszi a felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra, hogy val\u00f3s id\u0151ben csevegjenek m\u00e1s felhaszn\u00e1l\u00f3kkal.","title":"Discord Cseveg\u00e9s"},{"location":"Contact.html#kerdesem-van-a-klipperrel-kapcsolatban","text":"Sok k\u00e9rd\u00e9sre m\u00e1r v\u00e1laszt kaptunk a Klipper dokument\u00e1ci\u00f3ban . K\u00e9rj\u00fck, mindenk\u00e9ppen olvasd el a dokument\u00e1ci\u00f3t \u00e9s k\u00f6vesse az ott megadott utas\u00edt\u00e1sokat. Lehet\u0151s\u00e9g van hasonl\u00f3 k\u00e9rd\u00e9sek keres\u00e9s\u00e9re a Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rum oldalon is. Ha szeretn\u00e9d megosztani tud\u00e1sodat \u00e9s tapasztalataidat m\u00e1s Klipper felhaszn\u00e1l\u00f3kkal, akkor csatlakozhatsz a Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rum vagy a Discord Cseveg\u00e9s -hez. Mindkett\u0151 olyan k\u00f6z\u00f6ss\u00e9g, ahol a Klipper felhaszn\u00e1l\u00f3k megvitathatj\u00e1k a Klippert m\u00e1s felhaszn\u00e1l\u00f3kkal. Sok k\u00e9rd\u00e9s, amit kapunk, \u00e1ltal\u00e1nos 3D-nyomtat\u00e1ssal kapcsolatos, amely nem kifejezetten a Klipperre vonatkozik. Ha \u00e1ltal\u00e1nos k\u00e9rd\u00e9se van, vagy \u00e1ltal\u00e1nos nyomtat\u00e1si probl\u00e9m\u00e1kkal k\u00fczd, akkor val\u00f3sz\u00edn\u0171leg jobb v\u00e1laszt kap, ha egy \u00e1ltal\u00e1nos 3D-nyomtat\u00e1si f\u00f3rumon vagy a nyomtat\u00f3 hardver\u00e9vel foglalkoz\u00f3 f\u00f3rumon teszi fel a k\u00e9rd\u00e9st. Ne nyisson GitHub-on a Klippern\u00e9l probl\u00e9majelent\u00e9st-t, ha k\u00e9rd\u00e9st szeretne feltenni.","title":"K\u00e9rd\u00e9sem van a Klipperrel kapcsolatban"},{"location":"Contact.html#van-egy-funkciokerelmem","text":"Minden \u00faj funkci\u00f3hoz sz\u00fcks\u00e9g van valakire, akit \u00e9rdekel \u00e9s k\u00e9pes az adott funkci\u00f3 megval\u00f3s\u00edt\u00e1s\u00e1ra. Ha szeretn\u00e9l seg\u00edteni egy \u00faj funkci\u00f3 megval\u00f3s\u00edt\u00e1s\u00e1ban vagy tesztel\u00e9s\u00e9ben, akkor a Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rum oldalon keresheted a folyamatban l\u00e9v\u0151 fejleszt\u00e9seket. A Discord Cseveg\u00e9s is rendelkez\u00e9sre \u00e1ll a munkat\u00e1rsak k\u00f6z\u00f6tti megbesz\u00e9l\u00e9sekhez. Ne nyisson GitHub-on a Klippern\u00e9l probl\u00e9majelent\u00e9st, hogy funkci\u00f3t k\u00e9rj.","title":"Van egy funkci\u00f3k\u00e9relmem"},{"location":"Contact.html#segitseg-nem-mukodik","text":"Sajnos sokkal t\u00f6bb seg\u00edts\u00e9gk\u00e9r\u00e9s \u00e9rkezik hozz\u00e1nk, mint amennyit meg tudn\u00e1nk v\u00e1laszolni. A legt\u00f6bb probl\u00e9m\u00e1s bejelent\u00e9s, amit l\u00e1tunk v\u00e9g\u00fcl a k\u00f6vetkez\u0151kre vezethet\u0151 vissza: Finom hib\u00e1k a hardverben, vagy Nem k\u00f6veti a Klipper dokument\u00e1ci\u00f3ban le\u00edrt \u00f6sszes l\u00e9p\u00e9st. Ha probl\u00e9m\u00e1kat tapasztalsz, javasoljuk, hogy figyelmesen olvasd el a Klipper dokument\u00e1ci\u00f3t , \u00e9s ellen\u0151rizd, hogy minden l\u00e9p\u00e9st k\u00f6vetett-e. Ha nyomtat\u00e1si probl\u00e9m\u00e1t tapasztalsz, akkor javasoljuk, hogy alaposan vizsg\u00e1ld meg a nyomtat\u00f3 hardver\u00e9t (minden illeszt\u00e9st, vezet\u00e9ket, csavart stb.), \u00e9s gy\u0151z\u0151dj meg arr\u00f3l, hogy semmi rendellenes nincs. \u00dagy tal\u00e1ljuk, hogy a legt\u00f6bb nyomtat\u00e1si probl\u00e9ma nem a Klipper szoftverrel kapcsolatos. Ha a nyomtat\u00f3 hardver\u00e9vel kapcsolatos probl\u00e9m\u00e1t tal\u00e1l, akkor val\u00f3sz\u00edn\u0171leg jobb v\u00e1laszt kap, ha egy \u00e1ltal\u00e1nos 3D-nyomtat\u00e1si f\u00f3rumon vagy egy, a nyomtat\u00f3 hardver\u00e9vel foglalkoz\u00f3 f\u00f3rumon keres. A Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rumban is kereshetsz hasonl\u00f3 k\u00e9rd\u00e9seket. Ha szeretn\u00e9d megosztani tud\u00e1sodat \u00e9s tapasztalataidat m\u00e1s Klipper felhaszn\u00e1l\u00f3kkal, akkor csatlakozhatsz a Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rum vagy a Discord Cseveg\u00e9s -hez. Mindkett\u0151 olyan k\u00f6z\u00f6ss\u00e9g, ahol a Klipper felhaszn\u00e1l\u00f3k megvitathatj\u00e1k a Klippert m\u00e1s felhaszn\u00e1l\u00f3kkal. Ne nyisson GitHub-on a Klippern\u00e9l probl\u00e9majelent\u00e9st, hogy seg\u00edts\u00e9get k\u00e9rj.","title":"Seg\u00edts\u00e9g! Nem m\u0171k\u00f6dik!"},{"location":"Contact.html#hibat-diagnosztizaltam-a-klipper-szoftverben","text":"A Klipper egy ny\u00edlt forr\u00e1sk\u00f3d\u00fa projekt, \u00e9s nagyra \u00e9rt\u00e9kelj\u00fck, ha a munkat\u00e1rsak diagnosztiz\u00e1lj\u00e1k a szoftver hib\u00e1it. Fontos inform\u00e1ci\u00f3kra lesz sz\u00fcks\u00e9g a hiba kijav\u00edt\u00e1s\u00e1hoz. K\u00e9rj\u00fck, k\u00f6vesse az al\u00e1bbi l\u00e9p\u00e9seket: Gy\u0151z\u0151dj meg r\u00f3la, hogy a hiba a Klipper szoftverben van. Ha \u00fagy gondolja, hogy \"van egy probl\u00e9ma, nem tudom kital\u00e1lni, hogy mi\u00e9rt, \u00e9s ez\u00e9rt ez egy Klipper hiba\", akkor ne nyiss egy github probl\u00e9mabejelent\u00e9st. Ebben az esetben valakinek, akit \u00e9rdekel \u00e9s k\u00e9pes r\u00e1, el\u0151sz\u00f6r fel kell kutatnia \u00e9s diagnosztiz\u00e1lnia a probl\u00e9ma kiv\u00e1lt\u00f3 ok\u00e1t. Ha szeretn\u00e9d megosztani a kutat\u00e1sod eredm\u00e9ny\u00e9t, vagy megn\u00e9zni, hogy m\u00e1s felhaszn\u00e1l\u00f3k is hasonl\u00f3 probl\u00e9m\u00e1kkal k\u00fczdenek-e, akkor keresd meg a Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rum oldal\u00e1t. Gy\u0151z\u0151dj meg r\u00f3la, hogy a https://github.com/Klipper3d/klipper v\u00e1ltozatlan k\u00f3dj\u00e1t futtatja. Ha a k\u00f3dot m\u00f3dos\u00edtott\u00e1k, vagy m\u00e1s forr\u00e1sb\u00f3l sz\u00e1rmazik, akkor a hiba bejelent\u00e9se el\u0151tt reproduk\u00e1lnia kell a probl\u00e9m\u00e1t a https://github.com/Klipper3d/klipper nem m\u00f3dos\u00edtott k\u00f3ddal. Ha lehets\u00e9ges, futtasson egy M112 parancsot az OctoPrint konzolj\u00e1ban k\u00f6zvetlen\u00fcl a nemk\u00edv\u00e1natos esem\u00e9ny bek\u00f6vetkez\u00e9se ut\u00e1n. Ennek hat\u00e1s\u00e1ra a Klipper \"le\u00e1ll\u00edt\u00e1si \u00e1llapotba\" ker\u00fcl, \u00e9s tov\u00e1bbi hibakeres\u00e9si inform\u00e1ci\u00f3k \u00edr\u00f3dnak a napl\u00f3f\u00e1jlba. Szerezd be a Klipper napl\u00f3f\u00e1jlt az esem\u00e9nyb\u0151l. A napl\u00f3f\u00e1jlt \u00fagy alak\u00edtott\u00e1k ki, hogy v\u00e1laszt adjon a Klipper fejleszt\u0151inek a szoftverrel \u00e9s k\u00f6rnyezet\u00e9vel kapcsolatos gyakori k\u00e9rd\u00e9seire (szoftver verzi\u00f3, hardvert\u00edpus, konfigur\u00e1ci\u00f3, esem\u00e9nyid\u0151z\u00edt\u00e9s \u00e9s t\u00f6bb sz\u00e1z egy\u00e9b k\u00e9rd\u00e9s). A Klipper napl\u00f3f\u00e1jlja a /tmp/klippy.log c\u00edmen tal\u00e1lhat\u00f3 a Klipper \"gazdag\u00e9pen\" (vagyis a Raspberry Pi-n). Egy \"SCP\" vagy \"SFTP\" seg\u00e9dprogram sz\u00fcks\u00e9ges a napl\u00f3f\u00e1jlnak az asztali sz\u00e1m\u00edt\u00f3g\u00e9pre val\u00f3 m\u00e1sol\u00e1s\u00e1hoz. Az \"SCP\" seg\u00e9dprogram alapfelszerelts\u00e9gk\u00e9nt j\u00e1r a Linux \u00e9s MacOS asztali sz\u00e1m\u00edt\u00f3g\u00e9pekhez. M\u00e1s asztali sz\u00e1m\u00edt\u00f3g\u00e9pekhez szabadon el\u00e9rhet\u0151 SCP seg\u00e9dprogramok is l\u00e9teznek (pl. WinSCP). Ha olyan grafikus SCP seg\u00e9dprogramot haszn\u00e1l, amely nem tudja k\u00f6zvetlen\u00fcl m\u00e1solni a /tmp/klippy.log , akkor kattints t\u00f6bbsz\u00f6r a ... vagy parent folder , am\u00edg el nem jutunk a gy\u00f6k\u00e9rk\u00f6nyvt\u00e1rba, kattintsunk a tmp mapp\u00e1ra, majd v\u00e1lasszuk ki a klippy.log f\u00e1jlt. M\u00e1solja a napl\u00f3f\u00e1jlt az asztal\u00e1ra, hogy csatolni tudja egy probl\u00e9majelent\u00e9shez. Ne m\u00f3dos\u00edtsd a napl\u00f3f\u00e1jlt semmilyen m\u00f3don; ne adj meg egy r\u00e9szletet a napl\u00f3b\u00f3l. Csak a teljes, v\u00e1ltozatlan napl\u00f3f\u00e1jl ny\u00fajtja a sz\u00fcks\u00e9ges inform\u00e1ci\u00f3kat. Ha a napl\u00f3f\u00e1jl nagyon nagy (pl. 2 MB-n\u00e1l nagyobb), akkor sz\u00fcks\u00e9g lehet a napl\u00f3 zip vagy gzip t\u00f6m\u00f6r\u00edt\u00e9s\u00e9re. Nyiss egy \u00faj GitHub probl\u00e9mabejelent\u00e9st a https://github.com/Klipper3d/klipper/issues c\u00edmen, \u00e9s \u00edrd le egy\u00e9rtelm\u0171en a probl\u00e9m\u00e1t. A Klipper fejleszt\u0151inek meg kell \u00e9rteni\u00fck, hogy milyen l\u00e9p\u00e9seket tettek, mi volt a k\u00edv\u00e1nt eredm\u00e9ny, \u00e9s milyen eredm\u00e9ny t\u00f6rt\u00e9nt val\u00f3j\u00e1ban. A Klipper napl\u00f3f\u00e1jlt csatolni kell a hibajegyhez:","title":"Hib\u00e1t diagnosztiz\u00e1ltam a Klipper szoftverben"},{"location":"Contact.html#valtoztatasokat-vegzek-amelyeket-szeretnek-a-klipperbe-beepiteni","text":"A Klipper ny\u00edlt forr\u00e1sk\u00f3d\u00fa szoftver, \u00e9s \u00f6r\u00f6mmel fogadjuk az \u00faj hozz\u00e1j\u00e1rul\u00e1sokat. Az \u00faj hozz\u00e1j\u00e1rul\u00e1sokat (mind a k\u00f3dot, mind a dokument\u00e1ci\u00f3t illet\u0151en) a GitHub Pull Requests-en kereszt\u00fcl k\u00fcldheted be. L\u00e1sd a CONTRIBUTING dokumentumot a fontos inform\u00e1ci\u00f3k\u00e9rt. Sz\u00e1mos Fejleszt\u0151i dokumentum van fejleszt\u0151knek. Ha k\u00e9rd\u00e9se van a k\u00f3ddal kapcsolatban, akkor a Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rum vagy a Discord Cseveg\u00e9s oldalon is felteheti a k\u00e9rd\u00e9st. Ha friss\u00edteni szeretn\u00e9 az aktu\u00e1lis fejleszt\u00e9st, akkor megnyithat egy GitHub-probl\u00e9m\u00e1t a k\u00f3d hely\u00e9vel, a m\u00f3dos\u00edt\u00e1sok \u00e1ttekint\u00e9s\u00e9vel \u00e9s az aktu\u00e1lis \u00e1llapot le\u00edr\u00e1s\u00e1val.","title":"V\u00e1ltoztat\u00e1sokat v\u00e9gzek, amelyeket szeretn\u00e9k a Klipperbe be\u00e9p\u00edteni"},{"location":"Debugging.html","text":"Hibakeres\u00e9s \u00b6 Ez a dokumentum a Klipper hibakeres\u00e9si eszk\u00f6zeinek egy r\u00e9sz\u00e9t ismerteti. A regresszi\u00f3s tesztek futtat\u00e1sa \u00b6 A Klipper GitHub f\u0151 t\u00e1rol\u00f3ja a \"github actions\" -t haszn\u00e1ld egy sor regresszi\u00f3s teszt futtat\u00e1s\u00e1hoz. Hasznos lehet n\u00e9h\u00e1ny ilyen tesztet helyben futtatni. A forr\u00e1sk\u00f3d \"whitespace check\" a k\u00f6vetkez\u0151vel futtathat\u00f3: ./scripts/check_whitespace.sh A Klippy regresszi\u00f3s tesztcsomag sz\u00e1mos platformr\u00f3l ig\u00e9nyel \"adatsz\u00f3t\u00e1rakat\". A legegyszer\u0171bben \u00fagy szerezhetj\u00fck be \u0151ket, ha let\u00f6ltj\u00fck \u0151ket a githubr\u00f3l . Miut\u00e1n let\u00f6lt\u00f6tt\u00fck az adatsz\u00f3t\u00e1rakat, a regresszi\u00f3s csomag futtat\u00e1s\u00e1hoz haszn\u00e1ljuk a k\u00f6vetkez\u0151ket: tar xfz klipper-dict-20??????.tar.gz ~/klippy-env/bin/python ~/klipper/scripts/test_klippy.py -d dict/ ~/klipper/test/klippy/*.test Parancsok k\u00e9zi k\u00fcld\u00e9se a mikrokontrollernek \u00b6 Norm\u00e1lis esetben a G-k\u00f3d parancsokat a klippy.py folyamat ford\u00edtja Klipper mikrokontroller parancsokra. Azonban az is lehets\u00e9ges, hogy manu\u00e1lisan k\u00fcldj\u00fck el ezeket az MCU-parancsokat (a Klipper forr\u00e1sk\u00f3dj\u00e1ban a DECL_COMMAND() makr\u00f3val jel\u00f6lt f\u00fcggv\u00e9nyek). Ehhez futtassa a k\u00f6vetkez\u0151ket: ~/klippy-env/bin/python ./klippy/console.py /tmp/pseudoserial Az eszk\u00f6z\u00f6n bel\u00fcl a \"HELP\" parancsban tal\u00e1l tov\u00e1bbi inform\u00e1ci\u00f3kat a funkci\u00f3ir\u00f3l. N\u00e9h\u00e1ny parancssori opci\u00f3 is rendelkez\u00e9sre \u00e1ll. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt futtassa a: ~/klippy-env/bin/python ./klippy/console.py --help parancsot A G-k\u00f3d f\u00e1jlok leford\u00edt\u00e1sa mikrokontroller-parancsokra \u00b6 A Klippy gazdag\u00e9p k\u00f3dja futhat k\u00f6tegelt \u00fczemm\u00f3dban, hogy el\u0151\u00e1ll\u00edtsa a G-k\u00f3d f\u00e1jlhoz tartoz\u00f3 alacsony szint\u0171 mikrokontroller-parancsokat. Ezeknek az alacsony szint\u0171 parancsoknak a vizsg\u00e1lata hasznos, amikor megpr\u00f3b\u00e1lod meg\u00e9rteni az alacsony szint\u0171 hardver m\u0171veleteit. Az is hasznos lehet, hogy \u00f6sszehasonl\u00edtsuk a mikrokontroller-parancsok k\u00f6z\u00f6tti k\u00fcl\u00f6nbs\u00e9get egy k\u00f3dv\u00e1lt\u00e1s ut\u00e1n. A Klippy futtat\u00e1s\u00e1hoz ebben a k\u00f6tegelt \u00fczemm\u00f3dban egy egyszeri l\u00e9p\u00e9s sz\u00fcks\u00e9ges a mikrokontroller \"adatsz\u00f3t\u00e1r\" l\u00e9trehoz\u00e1s\u00e1hoz. Ez a mikrokontroller k\u00f3dj\u00e1nak leford\u00edt\u00e1s\u00e1val t\u00f6rt\u00e9nik, hogy megkapjuk a out/klipper.dict f\u00e1jlt: make menuconfig make Ha a fentiek megt\u00f6rt\u00e9ntek, a Klipper futtat\u00e1sa batch \u00fczemm\u00f3dban is lehets\u00e9ges (a python virtu\u00e1lis k\u00f6rnyezet \u00e9s a printer.cfg) f\u00e1jl l\u00e9trehoz\u00e1s\u00e1hoz sz\u00fcks\u00e9ges l\u00e9p\u00e9seket l\u00e1sd Telep\u00edt\u00e9s : ~/klippy-env/bin/python ./klippy/klippy.py ~/printer.cfg -i test.gcode -o test.serial -v -d out/klipper.dict A fenti m\u0171velet egy test.serial f\u00e1jlt fog l\u00e9trehozni a bin\u00e1ris soros kimenettel. Ez a kimenet leford\u00edthat\u00f3 olvashat\u00f3 sz\u00f6vegg\u00e9 a k\u00f6vetkez\u0151vel: ~/klippy-env/bin/python ./klippy/parsedump.py out/klipper.dict test.serial > test.txt Az eredm\u00e9ny\u00fcl kapott test.txt f\u00e1jl a mikrokontroller parancsok ember \u00e1ltal olvashat\u00f3 list\u00e1j\u00e1t tartalmazza. A k\u00f6tegelt \u00fczemm\u00f3d letilt bizonyos v\u00e1lasz/k\u00e9r\u00e9si parancsokat a m\u0171k\u00f6d\u00e9s \u00e9rdek\u00e9ben. Ennek eredm\u00e9nyek\u00e9ppen a t\u00e9nyleges parancsok \u00e9s a fenti kimenet k\u00f6z\u00f6tt n\u00e9mi elt\u00e9r\u00e9s lesz. A gener\u00e1lt adatok tesztel\u00e9shez \u00e9s ellen\u0151rz\u00e9shez hasznosak; nem haszn\u00e1lhat\u00f3ak val\u00f3di mikrokontrollerhez val\u00f3 elk\u00fcld\u00e9sre. Mozg\u00e1selemz\u00e9s \u00e9s adatnapl\u00f3z\u00e1s \u00b6 A Klipper t\u00e1mogatja a bels\u0151 mozg\u00e1st\u00f6rt\u00e9net napl\u00f3z\u00e1s\u00e1t, amely k\u00e9s\u0151bb elemezhet\u0151. Ennek a funkci\u00f3nak a haszn\u00e1lat\u00e1hoz a Klippert az API Szerver enged\u00e9lyez\u00e9s\u00e9vel kell elind\u00edtani. Az adatnapl\u00f3z\u00e1st a data_logger.py eszk\u00f6zzel lehet enged\u00e9lyezni. P\u00e9ld\u00e1ul: ~/klipper/scripts/motan/data_logger.py /tmp/klippy_uds mylog Ez a parancs csatlakozik a Klipper API-kiszolg\u00e1l\u00f3hoz, feliratkozik az \u00e1llapot- \u00e9s mozg\u00e1sinform\u00e1ci\u00f3kra, \u00e9s napl\u00f3zza az eredm\u00e9nyeket. K\u00e9t f\u00e1jl j\u00f6n l\u00e9tre. Egy t\u00f6m\u00f6r\u00edtett adatf\u00e1jl \u00e9s egy indexf\u00e1jl (pl. mylog.json.gz \u00e9s mylog.index.gz ). A napl\u00f3z\u00e1s elind\u00edt\u00e1sa ut\u00e1n lehet\u0151s\u00e9g van nyomtat\u00e1sok \u00e9s egy\u00e9b m\u0171veletek elv\u00e9gz\u00e9s\u00e9re. A napl\u00f3z\u00e1s a h\u00e1tt\u00e9rben folytat\u00f3dik. Ha befejezt\u00fck a napl\u00f3z\u00e1st, nyomjuk meg a ctrl-c billenty\u0171kombin\u00e1ci\u00f3t a data_logger.py eszk\u00f6zb\u0151l val\u00f3 kil\u00e9p\u00e9shez. Az \u00edgy kapott f\u00e1jlok a motan_graph.py eszk\u00f6zzel olvashat\u00f3k \u00e9s grafikusan \u00e1br\u00e1zolhat\u00f3k. A grafikonok Raspberry Pi-n t\u00f6rt\u00e9n\u0151 gener\u00e1l\u00e1s\u00e1hoz egyszeri l\u00e9p\u00e9sben telep\u00edteni kell a \"matplotlib\" csomagot: sudo apt-get update sudo apt-get install python-matplotlib K\u00e9nyelmesebb lehet azonban az adatf\u00e1jlokat a scripts/motan/ k\u00f6nyvt\u00e1rban tal\u00e1lhat\u00f3 Python-k\u00f3ddal egy\u00fctt egy asztali g\u00e9pre m\u00e1solni. A mozg\u00e1selemz\u0151 szkripteknek minden olyan g\u00e9pen futniuk kell, amelyre a Python \u00e9s a Matplotlib leg\u00fajabb verzi\u00f3ja telep\u00edtve van. A grafikonok a k\u00f6vetkez\u0151 parancs seg\u00edts\u00e9g\u00e9vel hozhat\u00f3k l\u00e9tre: ~/klipper/scripts/motan/motan_graph.py mylog -o mygraph.png A -g opci\u00f3t haszn\u00e1lhatjuk a grafikusan \u00e1br\u00e1zoland\u00f3 adatk\u00e9szletek megad\u00e1s\u00e1ra (ez egy Python literal-t fogad el, amely list\u00e1k list\u00e1j\u00e1t tartalmazza). P\u00e9ld\u00e1ul: ~/klipper/scripts/motan/motan_graph.py mylog -g '[[\"trapq(toolhead,velocity)\"], [\"trapq(toolhead,accel)\"]]' Az el\u00e9rhet\u0151 adatk\u00e9szletek list\u00e1ja a -l opci\u00f3val \u00e9rhet\u0151 el. P\u00e9ld\u00e1ul: ~/klipper/scripts/motan/motan_graph.py -l Lehet\u0151s\u00e9g van arra is, hogy minden egyes adatk\u00e9szlethez matplotlib \u00e1br\u00e1zol\u00e1si opci\u00f3kat adj meg: ~/klipper/scripts/motan/motan_graph.py mylog -g '[[\"trapq(toolhead,velocity)?color=red&alpha=0.4\"]]' Sz\u00e1mos matplotlib opci\u00f3 \u00e1ll rendelkez\u00e9sre; n\u00e9h\u00e1ny p\u00e9lda: \"color\", \"label\", \"alpha\" \u00e9s \"linestyle\". A motan_graph.py eszk\u00f6z sz\u00e1mos m\u00e1s parancssori opci\u00f3t is t\u00e1mogat a --help opci\u00f3val megtekintheti a list\u00e1t. K\u00e9nyelmes lehet mag\u00e1t a motan_graph.py szkriptet is megtekinteni/m\u00f3dos\u00edtani. A data_logger.py eszk\u00f6z \u00e1ltal el\u0151\u00e1ll\u00edtott nyers adatnapl\u00f3k az API Szerver c\u00edm\u0171 dokumentumban le\u00edrt form\u00e1tumot k\u00f6vetik. Hasznos lehet az adatokat egy Unix-paranccsal megvizsg\u00e1lni, mint p\u00e9ld\u00e1ul a k\u00f6vetkez\u0151: gunzip < mylog.json.gz | tr '\\03' '\\n' | less Terhel\u00e9si grafikonok gener\u00e1l\u00e1sa \u00b6 A Klippy napl\u00f3f\u00e1jl (/tmp/klippy.log) t\u00e1rolja a s\u00e1vsz\u00e9less\u00e9gre, a mikrokontroller terhel\u00e9sre \u00e9s a gazdag\u00e9p pufferterhel\u00e9sre vonatkoz\u00f3 statisztik\u00e1kat. Hasznos lehet ezeket a statisztik\u00e1kat grafikusan \u00e1br\u00e1zolni a nyomtat\u00e1s ut\u00e1n. A grafikon gener\u00e1l\u00e1s\u00e1hoz egy alkalommal telep\u00edteni kell a \"matplotlib\" csomagot: sudo apt-get update sudo apt-get install python-matplotlib Ezut\u00e1n grafikonok k\u00e9sz\u00edthet\u0151k: ~/klipper/scripts/graphstats.py /tmp/klippy.log -o loadgraph.png Ezut\u00e1n megtekinthetj\u00fck az eredm\u00e9ny\u00fcl kapott loadgraph.png f\u00e1jlt. K\u00fcl\u00f6nb\u00f6z\u0151 grafikonok k\u00e9sz\u00edthet\u0151k. Tov\u00e1bbi inform\u00e1ci\u00f3\u00e9rt futtassa: ~/klipper/scripts/graphstats.py --help Inform\u00e1ci\u00f3k kinyer\u00e9se a klippy.log f\u00e1jlb\u00f3l \u00b6 A Klippy napl\u00f3f\u00e1jl (/tmp/klippy.log) szint\u00e9n tartalmaz hibakeres\u00e9si inform\u00e1ci\u00f3kat. Van egy logextract.py szkript, amely hasznos lehet egy mikrokontroller le\u00e1ll\u00e1s\u00e1nak vagy hasonl\u00f3 probl\u00e9m\u00e1nak az elemz\u00e9sekor. \u00c1ltal\u00e1ban valami ilyesmivel futtathat\u00f3: mkdir work_directory cd work_directory cp /tmp/klippy.log . ~/klipper/scripts/logextract.py ./klippy.log A szkript kinyeri a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1t, \u00e9s kinyeri az MCU le\u00e1ll\u00edt\u00e1si adatait. Az MCU le\u00e1ll\u00edt\u00e1s\u00e1b\u00f3l sz\u00e1rmaz\u00f3 inform\u00e1ci\u00f3sor (ha van ilyen) id\u0151b\u00e9lyegek szerint \u00e1t lesz rendezve, hogy seg\u00edtse az ok-okozati forgat\u00f3k\u00f6nyvek diagnosztiz\u00e1l\u00e1s\u00e1t. Tesztel\u00e9s simulavr-rel \u00b6 A simulavr eszk\u00f6z lehet\u0151v\u00e9 teszi egy Atmel ATmega mikrokontroller szimul\u00e1l\u00e1s\u00e1t. Ez a szakasz le\u00edrja, hogyan lehet teszt G-k\u00f3d f\u00e1jlokat futtatni a simulavr seg\u00edts\u00e9g\u00e9vel. Javasoljuk, hogy ezt egy asztali g\u00e9pen futtassuk (nem Raspberry Pi), mivel a hat\u00e9kony futtat\u00e1shoz er\u0151s CPU-ra van sz\u00fcks\u00e9g. A simulavr haszn\u00e1lat\u00e1hoz t\u00f6ltse le a simulavr csomagot, \u00e9s ford\u00edtsd le python t\u00e1mogat\u00e1ssal. Vedd figyelembe, hogy a build rendszernek telep\u00edtenie kell n\u00e9h\u00e1ny csomagot (p\u00e9ld\u00e1ul a swig-et) ahhoz, hogy a python modult fel tudja \u00e9p\u00edteni. git clone git://git.savannah.nongnu.org/simulavr.git cd simulavr make python make build Gy\u0151z\u0151dj\u00fcnk meg r\u00f3la, hogy a fenti ford\u00edt\u00e1s ut\u00e1n a ./build/pysimulavr/_pysimulavr.*.so f\u00e1jl j\u00f6tt l\u00e9tre: ls ./build/pysimulavr/_pysimulavr.*.so Ennek a parancsnak egy adott f\u00e1jlt kell jelentenie (pl. ./build/pysimulavr/_pysimulavr.cpython-39-x86_64-linux-gnu.so ), nem pedig hib\u00e1t. Ha Debian-alap\u00fa rendszert haszn\u00e1lsz (Debian, Ubuntu, stb.), akkor telep\u00edtheted a k\u00f6vetkez\u0151 csomagokat, \u00e9s *.deb f\u00e1jlokat gener\u00e1lhatsz a simulavr rendszerszint\u0171 telep\u00edt\u00e9s\u00e9hez: sudo apt update sudo apt install g++ make cmake swig rst2pdf help2man texinfo make cfgclean python debian sudo dpkg -i build/debian/python3-simulavr*.deb A Klipper leford\u00edt\u00e1s\u00e1hoz a simulavr-ben val\u00f3 haszn\u00e1lathoz futtassa a k\u00f6vetkez\u0151t: cd /path/to/klipper make menuconfig \u00e9s ford\u00edtsd le a mikrokontroller szoftvert egy AVR atmega644p sz\u00e1m\u00e1ra, \u00e9s v\u00e1laszd a SIMULAVR szoftver emul\u00e1ci\u00f3s t\u00e1mogat\u00e1st. Ezut\u00e1n leford\u00edthatjuk a Klippert (futtassuk make ), majd ind\u00edtsuk el a szimul\u00e1ci\u00f3t a k\u00f6vetkez\u0151kkel: PYTHONPATH=/path/to/simulavr/build/pysimulavr/ ./scripts/avrsim.py out/klipper.elf Vegy\u00fck \u00e9szre, hogy ha a python3-simulavr-t az eg\u00e9sz rendszerre telep\u00edtett\u00fck, akkor nem kell be\u00e1ll\u00edtanunk a PYTHONPATH \u00e9rt\u00e9ket, \u00e9s egyszer\u0171en futtathatjuk a szimul\u00e1tort mint ./scripts/avrsim.py out/klipper.elf Ezut\u00e1n, ha a simulavr egy m\u00e1sik ablakban fut, futtathatjuk a k\u00f6vetkez\u0151t, hogy G-k\u00f3dot olvassunk be egy f\u00e1jlb\u00f3l (pl. \"test.gcode\"), feldolgozzuk a Klippy-vel, \u00e9s elk\u00fcldj\u00fck a simulavr-ben fut\u00f3 Klipper-nek (l\u00e1sd Telep\u00edt\u00e9s a python virtu\u00e1lis k\u00f6rnyezet l\u00e9trehoz\u00e1s\u00e1hoz sz\u00fcks\u00e9ges l\u00e9p\u00e9seket): ~/klippy-env/bin/python ./klippy/klippy.py config/generic-simulavr.cfg -i test.gcode -v A simulavr haszn\u00e1lata gtkwave-vel \u00b6 A simulavr egyik hasznos funkci\u00f3ja, hogy k\u00e9pes jelhull\u00e1mgener\u00e1l\u00f3 f\u00e1jlokat l\u00e9trehozni az esem\u00e9nyek pontos id\u0151z\u00edt\u00e9s\u00e9vel. Ehhez k\u00f6vesse a fenti utas\u00edt\u00e1sokat, de futtassa az avrsim.py programot a k\u00f6vetkez\u0151 parancssorral: PYTHONPATH=/path/to/simulavr/src/python/ ./scripts/avrsim.py out/klipper.elf -t PORTA.PORT,PORTC.PORT A fentiek l\u00e9trehoznak egy avrsim.vcd f\u00e1jlt a PORTA \u00e9s PORTB GPIO-k minden egyes m\u00f3dos\u00edt\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3kkal. Ezt azt\u00e1n a gtkwave seg\u00edts\u00e9g\u00e9vel meg lehetne n\u00e9zni a k\u00f6vetkez\u0151vel: gtkwave avrsim.vcd","title":"Hibakeres\u00e9s"},{"location":"Debugging.html#hibakereses","text":"Ez a dokumentum a Klipper hibakeres\u00e9si eszk\u00f6zeinek egy r\u00e9sz\u00e9t ismerteti.","title":"Hibakeres\u00e9s"},{"location":"Debugging.html#a-regresszios-tesztek-futtatasa","text":"A Klipper GitHub f\u0151 t\u00e1rol\u00f3ja a \"github actions\" -t haszn\u00e1ld egy sor regresszi\u00f3s teszt futtat\u00e1s\u00e1hoz. Hasznos lehet n\u00e9h\u00e1ny ilyen tesztet helyben futtatni. A forr\u00e1sk\u00f3d \"whitespace check\" a k\u00f6vetkez\u0151vel futtathat\u00f3: ./scripts/check_whitespace.sh A Klippy regresszi\u00f3s tesztcsomag sz\u00e1mos platformr\u00f3l ig\u00e9nyel \"adatsz\u00f3t\u00e1rakat\". A legegyszer\u0171bben \u00fagy szerezhetj\u00fck be \u0151ket, ha let\u00f6ltj\u00fck \u0151ket a githubr\u00f3l . Miut\u00e1n let\u00f6lt\u00f6tt\u00fck az adatsz\u00f3t\u00e1rakat, a regresszi\u00f3s csomag futtat\u00e1s\u00e1hoz haszn\u00e1ljuk a k\u00f6vetkez\u0151ket: tar xfz klipper-dict-20??????.tar.gz ~/klippy-env/bin/python ~/klipper/scripts/test_klippy.py -d dict/ ~/klipper/test/klippy/*.test","title":"A regresszi\u00f3s tesztek futtat\u00e1sa"},{"location":"Debugging.html#parancsok-kezi-kuldese-a-mikrokontrollernek","text":"Norm\u00e1lis esetben a G-k\u00f3d parancsokat a klippy.py folyamat ford\u00edtja Klipper mikrokontroller parancsokra. Azonban az is lehets\u00e9ges, hogy manu\u00e1lisan k\u00fcldj\u00fck el ezeket az MCU-parancsokat (a Klipper forr\u00e1sk\u00f3dj\u00e1ban a DECL_COMMAND() makr\u00f3val jel\u00f6lt f\u00fcggv\u00e9nyek). Ehhez futtassa a k\u00f6vetkez\u0151ket: ~/klippy-env/bin/python ./klippy/console.py /tmp/pseudoserial Az eszk\u00f6z\u00f6n bel\u00fcl a \"HELP\" parancsban tal\u00e1l tov\u00e1bbi inform\u00e1ci\u00f3kat a funkci\u00f3ir\u00f3l. N\u00e9h\u00e1ny parancssori opci\u00f3 is rendelkez\u00e9sre \u00e1ll. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt futtassa a: ~/klippy-env/bin/python ./klippy/console.py --help parancsot","title":"Parancsok k\u00e9zi k\u00fcld\u00e9se a mikrokontrollernek"},{"location":"Debugging.html#a-g-kod-fajlok-leforditasa-mikrokontroller-parancsokra","text":"A Klippy gazdag\u00e9p k\u00f3dja futhat k\u00f6tegelt \u00fczemm\u00f3dban, hogy el\u0151\u00e1ll\u00edtsa a G-k\u00f3d f\u00e1jlhoz tartoz\u00f3 alacsony szint\u0171 mikrokontroller-parancsokat. Ezeknek az alacsony szint\u0171 parancsoknak a vizsg\u00e1lata hasznos, amikor megpr\u00f3b\u00e1lod meg\u00e9rteni az alacsony szint\u0171 hardver m\u0171veleteit. Az is hasznos lehet, hogy \u00f6sszehasonl\u00edtsuk a mikrokontroller-parancsok k\u00f6z\u00f6tti k\u00fcl\u00f6nbs\u00e9get egy k\u00f3dv\u00e1lt\u00e1s ut\u00e1n. A Klippy futtat\u00e1s\u00e1hoz ebben a k\u00f6tegelt \u00fczemm\u00f3dban egy egyszeri l\u00e9p\u00e9s sz\u00fcks\u00e9ges a mikrokontroller \"adatsz\u00f3t\u00e1r\" l\u00e9trehoz\u00e1s\u00e1hoz. Ez a mikrokontroller k\u00f3dj\u00e1nak leford\u00edt\u00e1s\u00e1val t\u00f6rt\u00e9nik, hogy megkapjuk a out/klipper.dict f\u00e1jlt: make menuconfig make Ha a fentiek megt\u00f6rt\u00e9ntek, a Klipper futtat\u00e1sa batch \u00fczemm\u00f3dban is lehets\u00e9ges (a python virtu\u00e1lis k\u00f6rnyezet \u00e9s a printer.cfg) f\u00e1jl l\u00e9trehoz\u00e1s\u00e1hoz sz\u00fcks\u00e9ges l\u00e9p\u00e9seket l\u00e1sd Telep\u00edt\u00e9s : ~/klippy-env/bin/python ./klippy/klippy.py ~/printer.cfg -i test.gcode -o test.serial -v -d out/klipper.dict A fenti m\u0171velet egy test.serial f\u00e1jlt fog l\u00e9trehozni a bin\u00e1ris soros kimenettel. Ez a kimenet leford\u00edthat\u00f3 olvashat\u00f3 sz\u00f6vegg\u00e9 a k\u00f6vetkez\u0151vel: ~/klippy-env/bin/python ./klippy/parsedump.py out/klipper.dict test.serial > test.txt Az eredm\u00e9ny\u00fcl kapott test.txt f\u00e1jl a mikrokontroller parancsok ember \u00e1ltal olvashat\u00f3 list\u00e1j\u00e1t tartalmazza. A k\u00f6tegelt \u00fczemm\u00f3d letilt bizonyos v\u00e1lasz/k\u00e9r\u00e9si parancsokat a m\u0171k\u00f6d\u00e9s \u00e9rdek\u00e9ben. Ennek eredm\u00e9nyek\u00e9ppen a t\u00e9nyleges parancsok \u00e9s a fenti kimenet k\u00f6z\u00f6tt n\u00e9mi elt\u00e9r\u00e9s lesz. A gener\u00e1lt adatok tesztel\u00e9shez \u00e9s ellen\u0151rz\u00e9shez hasznosak; nem haszn\u00e1lhat\u00f3ak val\u00f3di mikrokontrollerhez val\u00f3 elk\u00fcld\u00e9sre.","title":"A G-k\u00f3d f\u00e1jlok leford\u00edt\u00e1sa mikrokontroller-parancsokra"},{"location":"Debugging.html#mozgaselemzes-es-adatnaplozas","text":"A Klipper t\u00e1mogatja a bels\u0151 mozg\u00e1st\u00f6rt\u00e9net napl\u00f3z\u00e1s\u00e1t, amely k\u00e9s\u0151bb elemezhet\u0151. Ennek a funkci\u00f3nak a haszn\u00e1lat\u00e1hoz a Klippert az API Szerver enged\u00e9lyez\u00e9s\u00e9vel kell elind\u00edtani. Az adatnapl\u00f3z\u00e1st a data_logger.py eszk\u00f6zzel lehet enged\u00e9lyezni. P\u00e9ld\u00e1ul: ~/klipper/scripts/motan/data_logger.py /tmp/klippy_uds mylog Ez a parancs csatlakozik a Klipper API-kiszolg\u00e1l\u00f3hoz, feliratkozik az \u00e1llapot- \u00e9s mozg\u00e1sinform\u00e1ci\u00f3kra, \u00e9s napl\u00f3zza az eredm\u00e9nyeket. K\u00e9t f\u00e1jl j\u00f6n l\u00e9tre. Egy t\u00f6m\u00f6r\u00edtett adatf\u00e1jl \u00e9s egy indexf\u00e1jl (pl. mylog.json.gz \u00e9s mylog.index.gz ). A napl\u00f3z\u00e1s elind\u00edt\u00e1sa ut\u00e1n lehet\u0151s\u00e9g van nyomtat\u00e1sok \u00e9s egy\u00e9b m\u0171veletek elv\u00e9gz\u00e9s\u00e9re. A napl\u00f3z\u00e1s a h\u00e1tt\u00e9rben folytat\u00f3dik. Ha befejezt\u00fck a napl\u00f3z\u00e1st, nyomjuk meg a ctrl-c billenty\u0171kombin\u00e1ci\u00f3t a data_logger.py eszk\u00f6zb\u0151l val\u00f3 kil\u00e9p\u00e9shez. Az \u00edgy kapott f\u00e1jlok a motan_graph.py eszk\u00f6zzel olvashat\u00f3k \u00e9s grafikusan \u00e1br\u00e1zolhat\u00f3k. A grafikonok Raspberry Pi-n t\u00f6rt\u00e9n\u0151 gener\u00e1l\u00e1s\u00e1hoz egyszeri l\u00e9p\u00e9sben telep\u00edteni kell a \"matplotlib\" csomagot: sudo apt-get update sudo apt-get install python-matplotlib K\u00e9nyelmesebb lehet azonban az adatf\u00e1jlokat a scripts/motan/ k\u00f6nyvt\u00e1rban tal\u00e1lhat\u00f3 Python-k\u00f3ddal egy\u00fctt egy asztali g\u00e9pre m\u00e1solni. A mozg\u00e1selemz\u0151 szkripteknek minden olyan g\u00e9pen futniuk kell, amelyre a Python \u00e9s a Matplotlib leg\u00fajabb verzi\u00f3ja telep\u00edtve van. A grafikonok a k\u00f6vetkez\u0151 parancs seg\u00edts\u00e9g\u00e9vel hozhat\u00f3k l\u00e9tre: ~/klipper/scripts/motan/motan_graph.py mylog -o mygraph.png A -g opci\u00f3t haszn\u00e1lhatjuk a grafikusan \u00e1br\u00e1zoland\u00f3 adatk\u00e9szletek megad\u00e1s\u00e1ra (ez egy Python literal-t fogad el, amely list\u00e1k list\u00e1j\u00e1t tartalmazza). P\u00e9ld\u00e1ul: ~/klipper/scripts/motan/motan_graph.py mylog -g '[[\"trapq(toolhead,velocity)\"], [\"trapq(toolhead,accel)\"]]' Az el\u00e9rhet\u0151 adatk\u00e9szletek list\u00e1ja a -l opci\u00f3val \u00e9rhet\u0151 el. P\u00e9ld\u00e1ul: ~/klipper/scripts/motan/motan_graph.py -l Lehet\u0151s\u00e9g van arra is, hogy minden egyes adatk\u00e9szlethez matplotlib \u00e1br\u00e1zol\u00e1si opci\u00f3kat adj meg: ~/klipper/scripts/motan/motan_graph.py mylog -g '[[\"trapq(toolhead,velocity)?color=red&alpha=0.4\"]]' Sz\u00e1mos matplotlib opci\u00f3 \u00e1ll rendelkez\u00e9sre; n\u00e9h\u00e1ny p\u00e9lda: \"color\", \"label\", \"alpha\" \u00e9s \"linestyle\". A motan_graph.py eszk\u00f6z sz\u00e1mos m\u00e1s parancssori opci\u00f3t is t\u00e1mogat a --help opci\u00f3val megtekintheti a list\u00e1t. K\u00e9nyelmes lehet mag\u00e1t a motan_graph.py szkriptet is megtekinteni/m\u00f3dos\u00edtani. A data_logger.py eszk\u00f6z \u00e1ltal el\u0151\u00e1ll\u00edtott nyers adatnapl\u00f3k az API Szerver c\u00edm\u0171 dokumentumban le\u00edrt form\u00e1tumot k\u00f6vetik. Hasznos lehet az adatokat egy Unix-paranccsal megvizsg\u00e1lni, mint p\u00e9ld\u00e1ul a k\u00f6vetkez\u0151: gunzip < mylog.json.gz | tr '\\03' '\\n' | less","title":"Mozg\u00e1selemz\u00e9s \u00e9s adatnapl\u00f3z\u00e1s"},{"location":"Debugging.html#terhelesi-grafikonok-generalasa","text":"A Klippy napl\u00f3f\u00e1jl (/tmp/klippy.log) t\u00e1rolja a s\u00e1vsz\u00e9less\u00e9gre, a mikrokontroller terhel\u00e9sre \u00e9s a gazdag\u00e9p pufferterhel\u00e9sre vonatkoz\u00f3 statisztik\u00e1kat. Hasznos lehet ezeket a statisztik\u00e1kat grafikusan \u00e1br\u00e1zolni a nyomtat\u00e1s ut\u00e1n. A grafikon gener\u00e1l\u00e1s\u00e1hoz egy alkalommal telep\u00edteni kell a \"matplotlib\" csomagot: sudo apt-get update sudo apt-get install python-matplotlib Ezut\u00e1n grafikonok k\u00e9sz\u00edthet\u0151k: ~/klipper/scripts/graphstats.py /tmp/klippy.log -o loadgraph.png Ezut\u00e1n megtekinthetj\u00fck az eredm\u00e9ny\u00fcl kapott loadgraph.png f\u00e1jlt. K\u00fcl\u00f6nb\u00f6z\u0151 grafikonok k\u00e9sz\u00edthet\u0151k. Tov\u00e1bbi inform\u00e1ci\u00f3\u00e9rt futtassa: ~/klipper/scripts/graphstats.py --help","title":"Terhel\u00e9si grafikonok gener\u00e1l\u00e1sa"},{"location":"Debugging.html#informaciok-kinyerese-a-klippylog-fajlbol","text":"A Klippy napl\u00f3f\u00e1jl (/tmp/klippy.log) szint\u00e9n tartalmaz hibakeres\u00e9si inform\u00e1ci\u00f3kat. Van egy logextract.py szkript, amely hasznos lehet egy mikrokontroller le\u00e1ll\u00e1s\u00e1nak vagy hasonl\u00f3 probl\u00e9m\u00e1nak az elemz\u00e9sekor. \u00c1ltal\u00e1ban valami ilyesmivel futtathat\u00f3: mkdir work_directory cd work_directory cp /tmp/klippy.log . ~/klipper/scripts/logextract.py ./klippy.log A szkript kinyeri a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1t, \u00e9s kinyeri az MCU le\u00e1ll\u00edt\u00e1si adatait. Az MCU le\u00e1ll\u00edt\u00e1s\u00e1b\u00f3l sz\u00e1rmaz\u00f3 inform\u00e1ci\u00f3sor (ha van ilyen) id\u0151b\u00e9lyegek szerint \u00e1t lesz rendezve, hogy seg\u00edtse az ok-okozati forgat\u00f3k\u00f6nyvek diagnosztiz\u00e1l\u00e1s\u00e1t.","title":"Inform\u00e1ci\u00f3k kinyer\u00e9se a klippy.log f\u00e1jlb\u00f3l"},{"location":"Debugging.html#teszteles-simulavr-rel","text":"A simulavr eszk\u00f6z lehet\u0151v\u00e9 teszi egy Atmel ATmega mikrokontroller szimul\u00e1l\u00e1s\u00e1t. Ez a szakasz le\u00edrja, hogyan lehet teszt G-k\u00f3d f\u00e1jlokat futtatni a simulavr seg\u00edts\u00e9g\u00e9vel. Javasoljuk, hogy ezt egy asztali g\u00e9pen futtassuk (nem Raspberry Pi), mivel a hat\u00e9kony futtat\u00e1shoz er\u0151s CPU-ra van sz\u00fcks\u00e9g. A simulavr haszn\u00e1lat\u00e1hoz t\u00f6ltse le a simulavr csomagot, \u00e9s ford\u00edtsd le python t\u00e1mogat\u00e1ssal. Vedd figyelembe, hogy a build rendszernek telep\u00edtenie kell n\u00e9h\u00e1ny csomagot (p\u00e9ld\u00e1ul a swig-et) ahhoz, hogy a python modult fel tudja \u00e9p\u00edteni. git clone git://git.savannah.nongnu.org/simulavr.git cd simulavr make python make build Gy\u0151z\u0151dj\u00fcnk meg r\u00f3la, hogy a fenti ford\u00edt\u00e1s ut\u00e1n a ./build/pysimulavr/_pysimulavr.*.so f\u00e1jl j\u00f6tt l\u00e9tre: ls ./build/pysimulavr/_pysimulavr.*.so Ennek a parancsnak egy adott f\u00e1jlt kell jelentenie (pl. ./build/pysimulavr/_pysimulavr.cpython-39-x86_64-linux-gnu.so ), nem pedig hib\u00e1t. Ha Debian-alap\u00fa rendszert haszn\u00e1lsz (Debian, Ubuntu, stb.), akkor telep\u00edtheted a k\u00f6vetkez\u0151 csomagokat, \u00e9s *.deb f\u00e1jlokat gener\u00e1lhatsz a simulavr rendszerszint\u0171 telep\u00edt\u00e9s\u00e9hez: sudo apt update sudo apt install g++ make cmake swig rst2pdf help2man texinfo make cfgclean python debian sudo dpkg -i build/debian/python3-simulavr*.deb A Klipper leford\u00edt\u00e1s\u00e1hoz a simulavr-ben val\u00f3 haszn\u00e1lathoz futtassa a k\u00f6vetkez\u0151t: cd /path/to/klipper make menuconfig \u00e9s ford\u00edtsd le a mikrokontroller szoftvert egy AVR atmega644p sz\u00e1m\u00e1ra, \u00e9s v\u00e1laszd a SIMULAVR szoftver emul\u00e1ci\u00f3s t\u00e1mogat\u00e1st. Ezut\u00e1n leford\u00edthatjuk a Klippert (futtassuk make ), majd ind\u00edtsuk el a szimul\u00e1ci\u00f3t a k\u00f6vetkez\u0151kkel: PYTHONPATH=/path/to/simulavr/build/pysimulavr/ ./scripts/avrsim.py out/klipper.elf Vegy\u00fck \u00e9szre, hogy ha a python3-simulavr-t az eg\u00e9sz rendszerre telep\u00edtett\u00fck, akkor nem kell be\u00e1ll\u00edtanunk a PYTHONPATH \u00e9rt\u00e9ket, \u00e9s egyszer\u0171en futtathatjuk a szimul\u00e1tort mint ./scripts/avrsim.py out/klipper.elf Ezut\u00e1n, ha a simulavr egy m\u00e1sik ablakban fut, futtathatjuk a k\u00f6vetkez\u0151t, hogy G-k\u00f3dot olvassunk be egy f\u00e1jlb\u00f3l (pl. \"test.gcode\"), feldolgozzuk a Klippy-vel, \u00e9s elk\u00fcldj\u00fck a simulavr-ben fut\u00f3 Klipper-nek (l\u00e1sd Telep\u00edt\u00e9s a python virtu\u00e1lis k\u00f6rnyezet l\u00e9trehoz\u00e1s\u00e1hoz sz\u00fcks\u00e9ges l\u00e9p\u00e9seket): ~/klippy-env/bin/python ./klippy/klippy.py config/generic-simulavr.cfg -i test.gcode -v","title":"Tesztel\u00e9s simulavr-rel"},{"location":"Debugging.html#a-simulavr-hasznalata-gtkwave-vel","text":"A simulavr egyik hasznos funkci\u00f3ja, hogy k\u00e9pes jelhull\u00e1mgener\u00e1l\u00f3 f\u00e1jlokat l\u00e9trehozni az esem\u00e9nyek pontos id\u0151z\u00edt\u00e9s\u00e9vel. Ehhez k\u00f6vesse a fenti utas\u00edt\u00e1sokat, de futtassa az avrsim.py programot a k\u00f6vetkez\u0151 parancssorral: PYTHONPATH=/path/to/simulavr/src/python/ ./scripts/avrsim.py out/klipper.elf -t PORTA.PORT,PORTC.PORT A fentiek l\u00e9trehoznak egy avrsim.vcd f\u00e1jlt a PORTA \u00e9s PORTB GPIO-k minden egyes m\u00f3dos\u00edt\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3kkal. Ezt azt\u00e1n a gtkwave seg\u00edts\u00e9g\u00e9vel meg lehetne n\u00e9zni a k\u00f6vetkez\u0151vel: gtkwave avrsim.vcd","title":"A simulavr haszn\u00e1lata gtkwave-vel"},{"location":"Delta_Calibrate.html","text":"Delta kalibr\u00e1l\u00e1s \u00b6 Ez a dokumentum a Klipper \"delta\" st\u00edlus\u00fa nyomtat\u00f3k automatikus kalibr\u00e1ci\u00f3s rendszer\u00e9t \u00edrja le. A deltakalibr\u00e1l\u00e1s mag\u00e1ban foglalja a torony v\u00e9g\u00e1ll\u00e1s\u00e1nak, a torony sz\u00f6g\u00e9nek, a deltasug\u00e1rnak \u00e9s a deltakarok hossz\u00e1nak meghat\u00e1roz\u00e1s\u00e1t. Ezek a be\u00e1ll\u00edt\u00e1sok szab\u00e1lyozz\u00e1k a nyomtat\u00f3 mozg\u00e1s\u00e1t a delta nyomtat\u00f3n\u00e1l. E param\u00e9terek mindegyike nem nyilv\u00e1nval\u00f3 \u00e9s nem line\u00e1ris hat\u00e1ssal b\u00edr, \u00e9s manu\u00e1lisan neh\u00e9z kalibr\u00e1lni \u0151ket. Ezzel szemben a szoftver kalibr\u00e1ci\u00f3s k\u00f3dja n\u00e9h\u00e1ny perc r\u00e1ford\u00edt\u00e1ssal kiv\u00e1l\u00f3 eredm\u00e9nyt adhat. Nincs sz\u00fcks\u00e9g speci\u00e1lis szintez\u0151 hardverre. A delta-kalibr\u00e1l\u00e1s v\u00e9gs\u0151 soron a torony v\u00e9g\u00e1ll\u00e1skapcsol\u00f3inak pontoss\u00e1g\u00e1t\u00f3l f\u00fcgg. Ha valaki Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3kat haszn\u00e1l, akkor fontolja meg a v\u00e9g\u00e1ll\u00e1si f\u00e1zis \u00e9rz\u00e9kel\u00e9s enged\u00e9lyez\u00e9s\u00e9t, hogy jav\u00edtsa e kapcsol\u00f3k pontoss\u00e1g\u00e1t. Automatikus vagy k\u00e9zi szintez\u00e9s \u00b6 A Klipper t\u00e1mogatja a delta param\u00e9terek kalibr\u00e1l\u00e1s\u00e1t k\u00e9zi szintez\u00e9ssel vagy automatikus Z-szond\u00e1val. Sz\u00e1mos delta nyomtat\u00f3 k\u00e9szlethez automatikus Z-szond\u00e1k tartoznak, amelyek nem el\u00e9g pontosak (k\u00fcl\u00f6n\u00f6sen a karok hossz\u00e1nak kis k\u00fcl\u00f6nbs\u00e9gei okozhatnak effektor d\u0151l\u00e9st, ami elferd\u00edtheti az automatikus szond\u00e1t). Ha automatikus szond\u00e1t haszn\u00e1l, akkor el\u0151sz\u00f6r kalibr\u00e1lja a szond\u00e1t , majd ellen\u0151rizd a szonda hely\u00e9nek torz\u00edt\u00e1s\u00e1t . Ha az automatikus szonda torz\u00edt\u00e1sa t\u00f6bb mint 25 mikron (0.025mm), akkor helyette haszn\u00e1lj k\u00e9zi szintez\u00e9st. A k\u00e9zi szintez\u00e9s csak n\u00e9h\u00e1ny percet vesz ig\u00e9nybe, \u00e9s kik\u00fcsz\u00f6b\u00f6li a szonda \u00e1ltal okozott hib\u00e1t. Ha olyan szond\u00e1t haszn\u00e1l, amely a f\u0171t\u0151berendez\u00e9s oldal\u00e1ra van szerelve (azaz X vagy Y eltol\u00e1ssal rendelkezik), akkor vedd figyelembe, hogy a delta-kalibr\u00e1l\u00e1s v\u00e9grehajt\u00e1sa \u00e9rv\u00e9nytelen\u00edti a szonda kalibr\u00e1l\u00e1s\u00e1nak eredm\u00e9nyeit. Az ilyen t\u00edpus\u00fa szond\u00e1k ritk\u00e1n alkalmasak a delta haszn\u00e1lat\u00e1ra (mivel a kisebb effektor d\u0151l\u00e9s a szonda hely\u00e9nek torz\u00edt\u00e1s\u00e1t eredm\u00e9nyezi). Ha m\u00e9gis haszn\u00e1lod a szond\u00e1t, akkor a delta-kalibr\u00e1l\u00e1s ut\u00e1n mindenk\u00e9ppen v\u00e9gezd el \u00fajra a szonda kalibr\u00e1l\u00e1s\u00e1t. Alapvet\u0151 delta kalibr\u00e1l\u00e1s \u00b6 A Klipper rendelkezik egy DELTA_CALIBRATE paranccsal, amely alapvet\u0151 delta-kalibr\u00e1l\u00e1st v\u00e9gezhet. Ez a parancs a t\u00e1rgyasztal h\u00e9t k\u00fcl\u00f6nb\u00f6z\u0151 pontj\u00e1t vizsg\u00e1lja, \u00e9s \u00faj \u00e9rt\u00e9keket sz\u00e1mol ki a toronysz\u00f6gek, a toronyv\u00e9g\u00e1ll\u00e1sok \u00e9s a delta-sug\u00e1r sz\u00e1m\u00e1ra. A kalibr\u00e1l\u00e1s elv\u00e9gz\u00e9s\u00e9hez meg kell adni a kiindul\u00e1si delta param\u00e9tereket (karhossz, sug\u00e1r \u00e9s v\u00e9g\u00e1ll\u00e1sok), amelyeknek n\u00e9h\u00e1ny millim\u00e9teres pontoss\u00e1ggal kell rendelkezni\u00fck. A legt\u00f6bb delta nyomtat\u00f3 k\u00e9szlet biztos\u00edtja ezeket a param\u00e9tereket. Konfigur\u00e1ld a nyomtat\u00f3t ezekkel a kezdeti alapbe\u00e1ll\u00edt\u00e1sokkal, majd futtassa a DELTA_CALIBRATE parancsot az al\u00e1bbiakban le\u00edrtak szerint. Ha nem \u00e1llnak rendelkez\u00e9sre alap\u00e9rtelmezett \u00e9rt\u00e9kek, akkor keressen az interneten egy delta-kalibr\u00e1l\u00e1si \u00fatmutat\u00f3t, amely alapvet\u0151 kiindul\u00f3pontot adhat. A delta-kalibr\u00e1l\u00e1s sor\u00e1n el\u0151fordulhat, hogy a nyomtat\u00f3nak a t\u00e1rgyasztal s\u00edkja alatt kell szinteznie, amit egy\u00e9bk\u00e9nt a t\u00e1rgyasztal s\u00edkj\u00e1nak tekinthetn\u00e9nk. Jellemz\u0151en ezt a kalibr\u00e1l\u00e1s sor\u00e1n a konfigur\u00e1ci\u00f3 friss\u00edt\u00e9s\u00e9vel enged\u00e9lyezz\u00fck a minimum_z_position=-5 \u00e9rt\u00e9kkel. (A kalibr\u00e1l\u00e1s befejez\u00e9se ut\u00e1n ez a be\u00e1ll\u00edt\u00e1s elt\u00e1vol\u00edthat\u00f3 a konfigur\u00e1ci\u00f3b\u00f3l.) A szintez\u00e9st k\u00e9tf\u00e9lek\u00e9ppen lehet elv\u00e9gezni: k\u00e9zi szintez\u00e9s ( DELTA_CALIBRATE METHOD=manual ) \u00e9s automatikus szintez\u00e9s ( DELTA_CALIBRATE ). A k\u00e9zi szintez\u00e9si m\u00f3dszer a fejet a t\u00e1rgyasztal k\u00f6zel\u00e9be mozgatja, majd megv\u00e1rja, hogy a felhaszn\u00e1l\u00f3 k\u00f6vesse a \"a pap\u00edrteszt\" pontban le\u00edrt l\u00e9p\u00e9seket, hogy meghat\u00e1rozza a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tti t\u00e9nyleges t\u00e1vols\u00e1got az adott helyen. Az alapvet\u0151 m\u00e9r\u00e9s elv\u00e9gz\u00e9s\u00e9hez gy\u0151z\u0151dj meg arr\u00f3l, hogy a konfigur\u00e1ci\u00f3ban van-e defini\u00e1lva egy [delta_calibrate] szakasz, majd futtassa az eszk\u00f6zt: G28 DELTA_CALIBRATE METHOD=manual A h\u00e9t pont szintez\u00e9se ut\u00e1n \u00faj delta param\u00e9terek ker\u00fclnek kisz\u00e1m\u00edt\u00e1sra. Mentsd el \u00e9s alkalmazd ezeket a param\u00e9tereket a k\u00f6vetkez\u0151t futtatva: SAVE_CONFIG Az alapkalibr\u00e1ci\u00f3nak olyan delta param\u00e9tereket kell biztos\u00edtania, amelyek el\u00e9g pontosak az alapvet\u0151 nyomtat\u00e1shoz. Ha ez egy \u00faj nyomtat\u00f3, ez egy j\u00f3 alkalom n\u00e9h\u00e1ny alapvet\u0151 objektum nyomtat\u00e1s\u00e1ra \u00e9s az \u00e1ltal\u00e1nos m\u0171k\u00f6d\u00e9s ellen\u0151rz\u00e9s\u00e9re. Tov\u00e1bbfejlesztett delta kalibr\u00e1l\u00e1s \u00b6 Az alap delta-kalibr\u00e1l\u00e1s \u00e1ltal\u00e1ban j\u00f3 munk\u00e1t v\u00e9gez a delta param\u00e9terek kisz\u00e1m\u00edt\u00e1s\u00e1ban, hogy a f\u00fav\u00f3ka a megfelel\u0151 t\u00e1vols\u00e1gra legyen a t\u00e1rgyasztalt\u00f3l. Nem pr\u00f3b\u00e1lja azonban kalibr\u00e1lni az X \u00e9s Y dimenzi\u00f3 pontoss\u00e1g\u00e1t. A m\u00e9retpontoss\u00e1g ellen\u0151rz\u00e9s\u00e9re \u00e9rdemes egy kib\u0151v\u00edtett delta-kalibr\u00e1ci\u00f3t elv\u00e9gezni. Ehhez a kalibr\u00e1l\u00e1si elj\u00e1r\u00e1shoz ki kell nyomtatni egy tesztobjektumot, \u00e9s a tesztobjektum egyes r\u00e9szeit digit\u00e1lis tol\u00f3m\u00e9r\u0151vel kell megm\u00e9rni. A kib\u0151v\u00edtett delta-kalibr\u00e1l\u00e1s futtat\u00e1sa el\u0151tt le kell futtatni az alap delta-kalibr\u00e1l\u00e1st (a DELTA_CALIBRATE paranccsal) \u00e9s el kell menteni az eredm\u00e9nyeket (a SAVE_CONFIG paranccsal). Gy\u0151z\u0151dj meg r\u00f3la, hogy a nyomtat\u00f3 konfigur\u00e1ci\u00f3j\u00e1ban \u00e9s hardver\u00e9ben nem t\u00f6rt\u00e9nt semmilyen jelent\u0151s v\u00e1ltoz\u00e1s az alap delta-kalibr\u00e1l\u00e1s legut\u00f3bbi v\u00e9grehajt\u00e1sa \u00f3ta (ha nem biztos benne, futtassa le \u00fajra az alap delta-kalibr\u00e1l\u00e1s parancsot, bele\u00e9rtve a SAVE_CONFIG parancsot is, k\u00f6zvetlen\u00fcl az al\u00e1bb le\u00edrt tesztobjektum nyomtat\u00e1sa el\u0151tt.) Haszn\u00e1lj szeletel\u0151t a docs/prints/calibrate_size.stl f\u00e1jlb\u00f3l G-k\u00f3d gener\u00e1l\u00e1s\u00e1hoz. Szeletelje az objektumot lass\u00fa sebess\u00e9ggel (pl. 40mm/s). Ha lehets\u00e9ges, haszn\u00e1lj merev m\u0171anyagot (pl. PLA) a t\u00e1rgyhoz. A t\u00e1rgy \u00e1tm\u00e9r\u0151je 140 mm. Ha ez t\u00fal nagy a nyomtat\u00f3 sz\u00e1m\u00e1ra, akkor \u00e1t lehet m\u00e9retezni (de \u00fcgyelj arra, hogy mind az X, \u00e9s az Y tengelyt egyenletesen m\u00e9retezze). Ha a nyomtat\u00f3 jelent\u0151sen nagyobb nyomatokat t\u00e1mogat, akkor a t\u00e1rgy is megn\u00f6velhet\u0151. A nagyobb m\u00e9ret jav\u00edthatja a m\u00e9r\u00e9si pontoss\u00e1got, de a j\u00f3 tapad\u00e1s fontosabb, mint a nagyobb nyomtat\u00e1si m\u00e9ret. Nyomtasd ki a tesztobjektumot, \u00e9s v\u00e1rja meg, am\u00edg teljesen kih\u0171l. Az al\u00e1bb le\u00edrt parancsokat ugyanazokkal a nyomtat\u00f3be\u00e1ll\u00edt\u00e1sokkal kell futtatni, mint amelyekkel a kalibr\u00e1ci\u00f3s t\u00e1rgyat nyomtatta (ne futtassa a DELTA_CALIBRATE parancsot a nyomtat\u00e1s \u00e9s a m\u00e9r\u00e9s k\u00f6z\u00f6tt, vagy ne tegyen olyat, ami egy\u00e9bk\u00e9nt megv\u00e1ltoztatn\u00e1 a nyomtat\u00f3 konfigur\u00e1ci\u00f3j\u00e1t). Ha lehets\u00e9ges, az al\u00e1bbiakban le\u00edrt m\u00e9r\u00e9seket akkor v\u00e9gezd el, amikor a t\u00e1rgy m\u00e9g mindig a nyomtat\u00f3 t\u00e1rgyasztalhoz van r\u00f6gz\u00edtve, de ne agg\u00f3djon, ha az alkatr\u00e9sz lev\u00e1lik a t\u00e1rgyasztalr\u00f3l. Csak pr\u00f3b\u00e1ld meg elker\u00fclni a t\u00e1rgy meghajl\u00e1s\u00e1t a m\u00e9r\u00e9sek elv\u00e9gz\u00e9sekor. Kezd a k\u00f6z\u00e9ps\u0151 oszlop \u00e9s az \"A\" felirat melletti oszlop k\u00f6z\u00f6tti t\u00e1vols\u00e1g m\u00e9r\u00e9s\u00e9vel (amelynek szint\u00e9n az \"A\" torony fel\u00e9 kell mutatnia). Ezut\u00e1n menjen az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1nyba, \u00e9s m\u00e9rd meg a k\u00f6z\u00e9ps\u0151 oszlop \u00e9s a t\u00f6bbi oszlop k\u00f6z\u00f6tti t\u00e1vols\u00e1gokat (a k\u00f6z\u00e9ps\u0151t\u0151l a \"C\" felirat\u00fa oszlopig terjed\u0151 t\u00e1vols\u00e1g, a k\u00f6z\u00e9ps\u0151t\u0151l a \"B\" felirat\u00fa oszlopig terjed\u0151 t\u00e1vols\u00e1g stb.). Add meg ezeket a param\u00e9tereket a Klipperbe lebeg\u0151pontos sz\u00e1mok vessz\u0151vel elv\u00e1lasztott list\u00e1j\u00e1val: DELTA_ANALYZE CENTER_DISTS=<a_dist>,<far_c_dist>,<b_dist>,<far_a_dist>,<c_dist>,<far_b_dist> Az \u00e9rt\u00e9keket sz\u00f3k\u00f6z\u00f6k n\u00e9lk\u00fcl add meg. Ezut\u00e1n m\u00e9rd meg a t\u00e1vols\u00e1got az \"A\" oszlop \u00e9s a \"C\" c\u00edmk\u00e9vel szemben l\u00e9v\u0151 oszlop k\u00f6z\u00f6tt. Ezut\u00e1n menj\u00fcnk az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1nyba, \u00e9s m\u00e9rj\u00fck meg a t\u00e1vols\u00e1got a \"C\" oszlop \u00e9s a \"B\" oszlop k\u00f6z\u00f6tt, majd a \"B\" oszlop \u00e9s az \"A\" oszlop k\u00f6z\u00f6tt, \u00e9s \u00edgy tov\u00e1bb. Add meg ezeket a param\u00e9tereket a Klippernek: DELTA_ANALYZE OUTER_DISTS=<a_to_far_c>,<far_c_to_b>,<b_to_far_a>,<far_a_to_c>,<c_to_far_b>,<far_b_to_a> Ezen a ponton nyugodtan leveheti a t\u00e1rgyat a t\u00e1rgyasztalr\u00f3l. A v\u00e9gs\u0151 m\u00e9r\u00e9sek magukra az oszlopokra vonatkoznak. M\u00e9rd meg a k\u00f6z\u00e9ps\u0151 oszlop m\u00e9ret\u00e9t az \"A\" k\u00fcll\u0151k ment\u00e9n, majd a \"B\" k\u00fcll\u0151k ment\u00e9n, v\u00e9g\u00fcl a \"C\" k\u00fcll\u0151k ment\u00e9n. Add meg \u0151ket a Klippernek: DELTA_ANALYZE CENTER_PILLAR_WIDTHS=<a>,<b>,<c> A v\u00e9gs\u0151 m\u00e9r\u00e9sek a k\u00fcls\u0151 k\u00fcll\u0151kr\u0151l sz\u00f3lnak. Kezdj\u00fck azzal, hogy megm\u00e9rj\u00fck az \"A\" k\u00fcll\u0151 t\u00e1vols\u00e1g\u00e1t az \"A\" k\u00fcll\u0151t\u0151l a \"C\" k\u00fcll\u0151vel szemben l\u00e9v\u0151 k\u00fcll\u0151ig tart\u00f3 vonal ment\u00e9n. Ezut\u00e1n az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1nyban m\u00e9rj\u00fck meg a t\u00f6bbi k\u00fcls\u0151 oszlopot (a \"C\" k\u00fcll\u0151vel szemben l\u00e9v\u0151 oszlop a \"B\" k\u00fcll\u0151vel szembeni vonal ment\u00e9n, a \"B\" k\u00fcll\u0151 a \"B\" k\u00fcll\u0151vel szembeni vonal ment\u00e9n az \"A\" k\u00fcll\u0151vel szemben l\u00e9v\u0151 oszlopig stb.). \u00c9s add meg \u0151ket a Klippernek: DELTA_ANALYZE OUTER_PILLAR_WIDTHS=<a>,<far_c>,<b>,<far_a>,<c>,<far_b> Ha az objektumot kisebb vagy nagyobb m\u00e9retre m\u00e9retezt\u00e9k, akkor add meg az objektum szeletel\u00e9sekor haszn\u00e1lt m\u00e9retez\u00e9si t\u00e9nyez\u0151t: DELTA_ANALYZE SCALE=1.0 (A 2,0-\u00e1s m\u00e9retar\u00e1ny azt jelenti, hogy az objektum k\u00e9tszer akkora, mint az eredeti m\u00e9rete, 0,5 pedig az eredeti m\u00e9ret fele.) V\u00e9gezd el v\u00e9g\u00fcl a tov\u00e1bbfejlesztett delta-kalibr\u00e1l\u00e1st a k\u00f6vetkez\u0151 futtat\u00e1s\u00e1val: DELTA_ANALYZE CALIBRATE=extended Ez a parancs t\u00f6bb percig is eltarthat. A parancs befejez\u00e9se ut\u00e1n kisz\u00e1m\u00edtja a friss\u00edtett delta param\u00e9tereket (delta sug\u00e1r, toronysz\u00f6gek, v\u00e9g\u00e1ll\u00e1sok \u00e9s karok hossza). A SAVE_CONFIG paranccsal mentsd el \u00e9s alkalmazd a be\u00e1ll\u00edt\u00e1sokat: SAVE_CONFIG A SAVE_CONFIG parancs mind a friss\u00edtett delta param\u00e9tereket, mind a t\u00e1vols\u00e1gm\u00e9r\u00e9sekb\u0151l sz\u00e1rmaz\u00f3 inform\u00e1ci\u00f3kat elmenti. A j\u00f6v\u0151beni DELTA_CALIBRATE parancsok ezeket a t\u00e1vols\u00e1ginform\u00e1ci\u00f3kat is felhaszn\u00e1lj\u00e1k. A SAVE_CONFIG parancs futtat\u00e1sa ut\u00e1n ne pr\u00f3b\u00e1ld meg \u00fajra megadni a nyers t\u00e1vols\u00e1gm\u00e9r\u00e9seket, mivel ez a parancs megv\u00e1ltoztatja a nyomtat\u00f3 konfigur\u00e1ci\u00f3j\u00e1t, \u00e9s a nyers m\u00e9r\u00e9sek m\u00e1r nem \u00e9rv\u00e9nyesek. Tov\u00e1bbi megjegyz\u00e9sek \u00b6 Ha a delta nyomtat\u00f3 j\u00f3 m\u00e9retpontoss\u00e1ggal rendelkezik, akkor a k\u00e9t oszlop k\u00f6z\u00f6tti t\u00e1vols\u00e1gnak k\u00f6r\u00fclbel\u00fcl 74 mm-nek kell lennie, \u00e9s minden oszlop sz\u00e9less\u00e9g\u00e9nek k\u00f6r\u00fclbel\u00fcl 9 mm-nek kell lennie. (Pontosabban, a c\u00e9l az, hogy a k\u00e9t oszlop k\u00f6z\u00f6tti t\u00e1vols\u00e1g m\u00ednusz az egyik oszlop sz\u00e9less\u00e9ge pontosan 65 mm legyen.) Ha az alkatr\u00e9szben m\u00e9retpontatlans\u00e1g van, akkor a DELTA_ANALYZE rutin \u00faj delta param\u00e9tereket sz\u00e1mol ki a t\u00e1vols\u00e1gm\u00e9r\u00e9sek \u00e9s a legut\u00f3bbi DELTA_CALIBRATE parancsb\u00f3l sz\u00e1rmaz\u00f3 kor\u00e1bbi magass\u00e1gm\u00e9r\u00e9sek felhaszn\u00e1l\u00e1s\u00e1val. A DELTA_ANALYZE meglep\u0151 delta param\u00e9tereket eredm\u00e9nyezhet. P\u00e9ld\u00e1ul olyan karhossz\u00fas\u00e1gokat javasolhat, amelyek nem egyeznek a nyomtat\u00f3 t\u00e9nyleges karhossz\u00fas\u00e1g\u00e1val. Ennek ellen\u00e9re a tesztek azt mutatt\u00e1k, hogy a DELTA_ANALYZE gyakran jobb eredm\u00e9nyeket ad. \u00dagy v\u00e9lj\u00fck, hogy a kisz\u00e1m\u00edtott delta param\u00e9terek k\u00e9pesek figyelembe venni a hardver m\u00e1shol el\u0151fordul\u00f3 kisebb hib\u00e1it. P\u00e9ld\u00e1ul a karhossz kis elt\u00e9r\u00e9sei az effektor d\u0151l\u00e9s\u00e9t eredm\u00e9nyezhetik, \u00e9s ennek a d\u0151l\u00e9snek egy r\u00e9sze a karhossz param\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1val figyelembe vehet\u0151. T\u00e1rgyasztal h\u00e1l\u00f3 haszn\u00e1lata a Delt\u00e1n \u00b6 Lehet\u0151s\u00e9g van t\u00e1rgyasztal h\u00e1l\u00f3 haszn\u00e1lat\u00e1ra egy delta eset\u00e9ben. Fontos azonban, hogy j\u00f3 deltakalibr\u00e1ci\u00f3t \u00e9rj el, miel\u0151tt enged\u00e9lyezn\u00e9d a t\u00e1rgyasztal h\u00e1l\u00f3t. A bed mesh futtat\u00e1sa rossz delta-kalibr\u00e1ci\u00f3val zavaros \u00e9s rossz eredm\u00e9nyeket fog eredm\u00e9nyezni. Vedd figyelembe, hogy a delta-kalibr\u00e1l\u00e1s v\u00e9grehajt\u00e1sa \u00e9rv\u00e9nytelen\u00edti a kor\u00e1bban kapott t\u00e1rgyasztal h\u00e1l\u00f3t. Az \u00faj delta-kalibr\u00e1l\u00e1s elv\u00e9gz\u00e9se ut\u00e1n felt\u00e9tlen\u00fcl futtassa \u00fajra a BED_MESH_CALIBRATE programot.","title":"Delta kalibr\u00e1l\u00e1s"},{"location":"Delta_Calibrate.html#delta-kalibralas","text":"Ez a dokumentum a Klipper \"delta\" st\u00edlus\u00fa nyomtat\u00f3k automatikus kalibr\u00e1ci\u00f3s rendszer\u00e9t \u00edrja le. A deltakalibr\u00e1l\u00e1s mag\u00e1ban foglalja a torony v\u00e9g\u00e1ll\u00e1s\u00e1nak, a torony sz\u00f6g\u00e9nek, a deltasug\u00e1rnak \u00e9s a deltakarok hossz\u00e1nak meghat\u00e1roz\u00e1s\u00e1t. Ezek a be\u00e1ll\u00edt\u00e1sok szab\u00e1lyozz\u00e1k a nyomtat\u00f3 mozg\u00e1s\u00e1t a delta nyomtat\u00f3n\u00e1l. E param\u00e9terek mindegyike nem nyilv\u00e1nval\u00f3 \u00e9s nem line\u00e1ris hat\u00e1ssal b\u00edr, \u00e9s manu\u00e1lisan neh\u00e9z kalibr\u00e1lni \u0151ket. Ezzel szemben a szoftver kalibr\u00e1ci\u00f3s k\u00f3dja n\u00e9h\u00e1ny perc r\u00e1ford\u00edt\u00e1ssal kiv\u00e1l\u00f3 eredm\u00e9nyt adhat. Nincs sz\u00fcks\u00e9g speci\u00e1lis szintez\u0151 hardverre. A delta-kalibr\u00e1l\u00e1s v\u00e9gs\u0151 soron a torony v\u00e9g\u00e1ll\u00e1skapcsol\u00f3inak pontoss\u00e1g\u00e1t\u00f3l f\u00fcgg. Ha valaki Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3kat haszn\u00e1l, akkor fontolja meg a v\u00e9g\u00e1ll\u00e1si f\u00e1zis \u00e9rz\u00e9kel\u00e9s enged\u00e9lyez\u00e9s\u00e9t, hogy jav\u00edtsa e kapcsol\u00f3k pontoss\u00e1g\u00e1t.","title":"Delta kalibr\u00e1l\u00e1s"},{"location":"Delta_Calibrate.html#automatikus-vagy-kezi-szintezes","text":"A Klipper t\u00e1mogatja a delta param\u00e9terek kalibr\u00e1l\u00e1s\u00e1t k\u00e9zi szintez\u00e9ssel vagy automatikus Z-szond\u00e1val. Sz\u00e1mos delta nyomtat\u00f3 k\u00e9szlethez automatikus Z-szond\u00e1k tartoznak, amelyek nem el\u00e9g pontosak (k\u00fcl\u00f6n\u00f6sen a karok hossz\u00e1nak kis k\u00fcl\u00f6nbs\u00e9gei okozhatnak effektor d\u0151l\u00e9st, ami elferd\u00edtheti az automatikus szond\u00e1t). Ha automatikus szond\u00e1t haszn\u00e1l, akkor el\u0151sz\u00f6r kalibr\u00e1lja a szond\u00e1t , majd ellen\u0151rizd a szonda hely\u00e9nek torz\u00edt\u00e1s\u00e1t . Ha az automatikus szonda torz\u00edt\u00e1sa t\u00f6bb mint 25 mikron (0.025mm), akkor helyette haszn\u00e1lj k\u00e9zi szintez\u00e9st. A k\u00e9zi szintez\u00e9s csak n\u00e9h\u00e1ny percet vesz ig\u00e9nybe, \u00e9s kik\u00fcsz\u00f6b\u00f6li a szonda \u00e1ltal okozott hib\u00e1t. Ha olyan szond\u00e1t haszn\u00e1l, amely a f\u0171t\u0151berendez\u00e9s oldal\u00e1ra van szerelve (azaz X vagy Y eltol\u00e1ssal rendelkezik), akkor vedd figyelembe, hogy a delta-kalibr\u00e1l\u00e1s v\u00e9grehajt\u00e1sa \u00e9rv\u00e9nytelen\u00edti a szonda kalibr\u00e1l\u00e1s\u00e1nak eredm\u00e9nyeit. Az ilyen t\u00edpus\u00fa szond\u00e1k ritk\u00e1n alkalmasak a delta haszn\u00e1lat\u00e1ra (mivel a kisebb effektor d\u0151l\u00e9s a szonda hely\u00e9nek torz\u00edt\u00e1s\u00e1t eredm\u00e9nyezi). Ha m\u00e9gis haszn\u00e1lod a szond\u00e1t, akkor a delta-kalibr\u00e1l\u00e1s ut\u00e1n mindenk\u00e9ppen v\u00e9gezd el \u00fajra a szonda kalibr\u00e1l\u00e1s\u00e1t.","title":"Automatikus vagy k\u00e9zi szintez\u00e9s"},{"location":"Delta_Calibrate.html#alapveto-delta-kalibralas","text":"A Klipper rendelkezik egy DELTA_CALIBRATE paranccsal, amely alapvet\u0151 delta-kalibr\u00e1l\u00e1st v\u00e9gezhet. Ez a parancs a t\u00e1rgyasztal h\u00e9t k\u00fcl\u00f6nb\u00f6z\u0151 pontj\u00e1t vizsg\u00e1lja, \u00e9s \u00faj \u00e9rt\u00e9keket sz\u00e1mol ki a toronysz\u00f6gek, a toronyv\u00e9g\u00e1ll\u00e1sok \u00e9s a delta-sug\u00e1r sz\u00e1m\u00e1ra. A kalibr\u00e1l\u00e1s elv\u00e9gz\u00e9s\u00e9hez meg kell adni a kiindul\u00e1si delta param\u00e9tereket (karhossz, sug\u00e1r \u00e9s v\u00e9g\u00e1ll\u00e1sok), amelyeknek n\u00e9h\u00e1ny millim\u00e9teres pontoss\u00e1ggal kell rendelkezni\u00fck. A legt\u00f6bb delta nyomtat\u00f3 k\u00e9szlet biztos\u00edtja ezeket a param\u00e9tereket. Konfigur\u00e1ld a nyomtat\u00f3t ezekkel a kezdeti alapbe\u00e1ll\u00edt\u00e1sokkal, majd futtassa a DELTA_CALIBRATE parancsot az al\u00e1bbiakban le\u00edrtak szerint. Ha nem \u00e1llnak rendelkez\u00e9sre alap\u00e9rtelmezett \u00e9rt\u00e9kek, akkor keressen az interneten egy delta-kalibr\u00e1l\u00e1si \u00fatmutat\u00f3t, amely alapvet\u0151 kiindul\u00f3pontot adhat. A delta-kalibr\u00e1l\u00e1s sor\u00e1n el\u0151fordulhat, hogy a nyomtat\u00f3nak a t\u00e1rgyasztal s\u00edkja alatt kell szinteznie, amit egy\u00e9bk\u00e9nt a t\u00e1rgyasztal s\u00edkj\u00e1nak tekinthetn\u00e9nk. Jellemz\u0151en ezt a kalibr\u00e1l\u00e1s sor\u00e1n a konfigur\u00e1ci\u00f3 friss\u00edt\u00e9s\u00e9vel enged\u00e9lyezz\u00fck a minimum_z_position=-5 \u00e9rt\u00e9kkel. (A kalibr\u00e1l\u00e1s befejez\u00e9se ut\u00e1n ez a be\u00e1ll\u00edt\u00e1s elt\u00e1vol\u00edthat\u00f3 a konfigur\u00e1ci\u00f3b\u00f3l.) A szintez\u00e9st k\u00e9tf\u00e9lek\u00e9ppen lehet elv\u00e9gezni: k\u00e9zi szintez\u00e9s ( DELTA_CALIBRATE METHOD=manual ) \u00e9s automatikus szintez\u00e9s ( DELTA_CALIBRATE ). A k\u00e9zi szintez\u00e9si m\u00f3dszer a fejet a t\u00e1rgyasztal k\u00f6zel\u00e9be mozgatja, majd megv\u00e1rja, hogy a felhaszn\u00e1l\u00f3 k\u00f6vesse a \"a pap\u00edrteszt\" pontban le\u00edrt l\u00e9p\u00e9seket, hogy meghat\u00e1rozza a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tti t\u00e9nyleges t\u00e1vols\u00e1got az adott helyen. Az alapvet\u0151 m\u00e9r\u00e9s elv\u00e9gz\u00e9s\u00e9hez gy\u0151z\u0151dj meg arr\u00f3l, hogy a konfigur\u00e1ci\u00f3ban van-e defini\u00e1lva egy [delta_calibrate] szakasz, majd futtassa az eszk\u00f6zt: G28 DELTA_CALIBRATE METHOD=manual A h\u00e9t pont szintez\u00e9se ut\u00e1n \u00faj delta param\u00e9terek ker\u00fclnek kisz\u00e1m\u00edt\u00e1sra. Mentsd el \u00e9s alkalmazd ezeket a param\u00e9tereket a k\u00f6vetkez\u0151t futtatva: SAVE_CONFIG Az alapkalibr\u00e1ci\u00f3nak olyan delta param\u00e9tereket kell biztos\u00edtania, amelyek el\u00e9g pontosak az alapvet\u0151 nyomtat\u00e1shoz. Ha ez egy \u00faj nyomtat\u00f3, ez egy j\u00f3 alkalom n\u00e9h\u00e1ny alapvet\u0151 objektum nyomtat\u00e1s\u00e1ra \u00e9s az \u00e1ltal\u00e1nos m\u0171k\u00f6d\u00e9s ellen\u0151rz\u00e9s\u00e9re.","title":"Alapvet\u0151 delta kalibr\u00e1l\u00e1s"},{"location":"Delta_Calibrate.html#tovabbfejlesztett-delta-kalibralas","text":"Az alap delta-kalibr\u00e1l\u00e1s \u00e1ltal\u00e1ban j\u00f3 munk\u00e1t v\u00e9gez a delta param\u00e9terek kisz\u00e1m\u00edt\u00e1s\u00e1ban, hogy a f\u00fav\u00f3ka a megfelel\u0151 t\u00e1vols\u00e1gra legyen a t\u00e1rgyasztalt\u00f3l. Nem pr\u00f3b\u00e1lja azonban kalibr\u00e1lni az X \u00e9s Y dimenzi\u00f3 pontoss\u00e1g\u00e1t. A m\u00e9retpontoss\u00e1g ellen\u0151rz\u00e9s\u00e9re \u00e9rdemes egy kib\u0151v\u00edtett delta-kalibr\u00e1ci\u00f3t elv\u00e9gezni. Ehhez a kalibr\u00e1l\u00e1si elj\u00e1r\u00e1shoz ki kell nyomtatni egy tesztobjektumot, \u00e9s a tesztobjektum egyes r\u00e9szeit digit\u00e1lis tol\u00f3m\u00e9r\u0151vel kell megm\u00e9rni. A kib\u0151v\u00edtett delta-kalibr\u00e1l\u00e1s futtat\u00e1sa el\u0151tt le kell futtatni az alap delta-kalibr\u00e1l\u00e1st (a DELTA_CALIBRATE paranccsal) \u00e9s el kell menteni az eredm\u00e9nyeket (a SAVE_CONFIG paranccsal). Gy\u0151z\u0151dj meg r\u00f3la, hogy a nyomtat\u00f3 konfigur\u00e1ci\u00f3j\u00e1ban \u00e9s hardver\u00e9ben nem t\u00f6rt\u00e9nt semmilyen jelent\u0151s v\u00e1ltoz\u00e1s az alap delta-kalibr\u00e1l\u00e1s legut\u00f3bbi v\u00e9grehajt\u00e1sa \u00f3ta (ha nem biztos benne, futtassa le \u00fajra az alap delta-kalibr\u00e1l\u00e1s parancsot, bele\u00e9rtve a SAVE_CONFIG parancsot is, k\u00f6zvetlen\u00fcl az al\u00e1bb le\u00edrt tesztobjektum nyomtat\u00e1sa el\u0151tt.) Haszn\u00e1lj szeletel\u0151t a docs/prints/calibrate_size.stl f\u00e1jlb\u00f3l G-k\u00f3d gener\u00e1l\u00e1s\u00e1hoz. Szeletelje az objektumot lass\u00fa sebess\u00e9ggel (pl. 40mm/s). Ha lehets\u00e9ges, haszn\u00e1lj merev m\u0171anyagot (pl. PLA) a t\u00e1rgyhoz. A t\u00e1rgy \u00e1tm\u00e9r\u0151je 140 mm. Ha ez t\u00fal nagy a nyomtat\u00f3 sz\u00e1m\u00e1ra, akkor \u00e1t lehet m\u00e9retezni (de \u00fcgyelj arra, hogy mind az X, \u00e9s az Y tengelyt egyenletesen m\u00e9retezze). Ha a nyomtat\u00f3 jelent\u0151sen nagyobb nyomatokat t\u00e1mogat, akkor a t\u00e1rgy is megn\u00f6velhet\u0151. A nagyobb m\u00e9ret jav\u00edthatja a m\u00e9r\u00e9si pontoss\u00e1got, de a j\u00f3 tapad\u00e1s fontosabb, mint a nagyobb nyomtat\u00e1si m\u00e9ret. Nyomtasd ki a tesztobjektumot, \u00e9s v\u00e1rja meg, am\u00edg teljesen kih\u0171l. Az al\u00e1bb le\u00edrt parancsokat ugyanazokkal a nyomtat\u00f3be\u00e1ll\u00edt\u00e1sokkal kell futtatni, mint amelyekkel a kalibr\u00e1ci\u00f3s t\u00e1rgyat nyomtatta (ne futtassa a DELTA_CALIBRATE parancsot a nyomtat\u00e1s \u00e9s a m\u00e9r\u00e9s k\u00f6z\u00f6tt, vagy ne tegyen olyat, ami egy\u00e9bk\u00e9nt megv\u00e1ltoztatn\u00e1 a nyomtat\u00f3 konfigur\u00e1ci\u00f3j\u00e1t). Ha lehets\u00e9ges, az al\u00e1bbiakban le\u00edrt m\u00e9r\u00e9seket akkor v\u00e9gezd el, amikor a t\u00e1rgy m\u00e9g mindig a nyomtat\u00f3 t\u00e1rgyasztalhoz van r\u00f6gz\u00edtve, de ne agg\u00f3djon, ha az alkatr\u00e9sz lev\u00e1lik a t\u00e1rgyasztalr\u00f3l. Csak pr\u00f3b\u00e1ld meg elker\u00fclni a t\u00e1rgy meghajl\u00e1s\u00e1t a m\u00e9r\u00e9sek elv\u00e9gz\u00e9sekor. Kezd a k\u00f6z\u00e9ps\u0151 oszlop \u00e9s az \"A\" felirat melletti oszlop k\u00f6z\u00f6tti t\u00e1vols\u00e1g m\u00e9r\u00e9s\u00e9vel (amelynek szint\u00e9n az \"A\" torony fel\u00e9 kell mutatnia). Ezut\u00e1n menjen az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1nyba, \u00e9s m\u00e9rd meg a k\u00f6z\u00e9ps\u0151 oszlop \u00e9s a t\u00f6bbi oszlop k\u00f6z\u00f6tti t\u00e1vols\u00e1gokat (a k\u00f6z\u00e9ps\u0151t\u0151l a \"C\" felirat\u00fa oszlopig terjed\u0151 t\u00e1vols\u00e1g, a k\u00f6z\u00e9ps\u0151t\u0151l a \"B\" felirat\u00fa oszlopig terjed\u0151 t\u00e1vols\u00e1g stb.). Add meg ezeket a param\u00e9tereket a Klipperbe lebeg\u0151pontos sz\u00e1mok vessz\u0151vel elv\u00e1lasztott list\u00e1j\u00e1val: DELTA_ANALYZE CENTER_DISTS=<a_dist>,<far_c_dist>,<b_dist>,<far_a_dist>,<c_dist>,<far_b_dist> Az \u00e9rt\u00e9keket sz\u00f3k\u00f6z\u00f6k n\u00e9lk\u00fcl add meg. Ezut\u00e1n m\u00e9rd meg a t\u00e1vols\u00e1got az \"A\" oszlop \u00e9s a \"C\" c\u00edmk\u00e9vel szemben l\u00e9v\u0151 oszlop k\u00f6z\u00f6tt. Ezut\u00e1n menj\u00fcnk az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1nyba, \u00e9s m\u00e9rj\u00fck meg a t\u00e1vols\u00e1got a \"C\" oszlop \u00e9s a \"B\" oszlop k\u00f6z\u00f6tt, majd a \"B\" oszlop \u00e9s az \"A\" oszlop k\u00f6z\u00f6tt, \u00e9s \u00edgy tov\u00e1bb. Add meg ezeket a param\u00e9tereket a Klippernek: DELTA_ANALYZE OUTER_DISTS=<a_to_far_c>,<far_c_to_b>,<b_to_far_a>,<far_a_to_c>,<c_to_far_b>,<far_b_to_a> Ezen a ponton nyugodtan leveheti a t\u00e1rgyat a t\u00e1rgyasztalr\u00f3l. A v\u00e9gs\u0151 m\u00e9r\u00e9sek magukra az oszlopokra vonatkoznak. M\u00e9rd meg a k\u00f6z\u00e9ps\u0151 oszlop m\u00e9ret\u00e9t az \"A\" k\u00fcll\u0151k ment\u00e9n, majd a \"B\" k\u00fcll\u0151k ment\u00e9n, v\u00e9g\u00fcl a \"C\" k\u00fcll\u0151k ment\u00e9n. Add meg \u0151ket a Klippernek: DELTA_ANALYZE CENTER_PILLAR_WIDTHS=<a>,<b>,<c> A v\u00e9gs\u0151 m\u00e9r\u00e9sek a k\u00fcls\u0151 k\u00fcll\u0151kr\u0151l sz\u00f3lnak. Kezdj\u00fck azzal, hogy megm\u00e9rj\u00fck az \"A\" k\u00fcll\u0151 t\u00e1vols\u00e1g\u00e1t az \"A\" k\u00fcll\u0151t\u0151l a \"C\" k\u00fcll\u0151vel szemben l\u00e9v\u0151 k\u00fcll\u0151ig tart\u00f3 vonal ment\u00e9n. Ezut\u00e1n az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1nyban m\u00e9rj\u00fck meg a t\u00f6bbi k\u00fcls\u0151 oszlopot (a \"C\" k\u00fcll\u0151vel szemben l\u00e9v\u0151 oszlop a \"B\" k\u00fcll\u0151vel szembeni vonal ment\u00e9n, a \"B\" k\u00fcll\u0151 a \"B\" k\u00fcll\u0151vel szembeni vonal ment\u00e9n az \"A\" k\u00fcll\u0151vel szemben l\u00e9v\u0151 oszlopig stb.). \u00c9s add meg \u0151ket a Klippernek: DELTA_ANALYZE OUTER_PILLAR_WIDTHS=<a>,<far_c>,<b>,<far_a>,<c>,<far_b> Ha az objektumot kisebb vagy nagyobb m\u00e9retre m\u00e9retezt\u00e9k, akkor add meg az objektum szeletel\u00e9sekor haszn\u00e1lt m\u00e9retez\u00e9si t\u00e9nyez\u0151t: DELTA_ANALYZE SCALE=1.0 (A 2,0-\u00e1s m\u00e9retar\u00e1ny azt jelenti, hogy az objektum k\u00e9tszer akkora, mint az eredeti m\u00e9rete, 0,5 pedig az eredeti m\u00e9ret fele.) V\u00e9gezd el v\u00e9g\u00fcl a tov\u00e1bbfejlesztett delta-kalibr\u00e1l\u00e1st a k\u00f6vetkez\u0151 futtat\u00e1s\u00e1val: DELTA_ANALYZE CALIBRATE=extended Ez a parancs t\u00f6bb percig is eltarthat. A parancs befejez\u00e9se ut\u00e1n kisz\u00e1m\u00edtja a friss\u00edtett delta param\u00e9tereket (delta sug\u00e1r, toronysz\u00f6gek, v\u00e9g\u00e1ll\u00e1sok \u00e9s karok hossza). A SAVE_CONFIG paranccsal mentsd el \u00e9s alkalmazd a be\u00e1ll\u00edt\u00e1sokat: SAVE_CONFIG A SAVE_CONFIG parancs mind a friss\u00edtett delta param\u00e9tereket, mind a t\u00e1vols\u00e1gm\u00e9r\u00e9sekb\u0151l sz\u00e1rmaz\u00f3 inform\u00e1ci\u00f3kat elmenti. A j\u00f6v\u0151beni DELTA_CALIBRATE parancsok ezeket a t\u00e1vols\u00e1ginform\u00e1ci\u00f3kat is felhaszn\u00e1lj\u00e1k. A SAVE_CONFIG parancs futtat\u00e1sa ut\u00e1n ne pr\u00f3b\u00e1ld meg \u00fajra megadni a nyers t\u00e1vols\u00e1gm\u00e9r\u00e9seket, mivel ez a parancs megv\u00e1ltoztatja a nyomtat\u00f3 konfigur\u00e1ci\u00f3j\u00e1t, \u00e9s a nyers m\u00e9r\u00e9sek m\u00e1r nem \u00e9rv\u00e9nyesek.","title":"Tov\u00e1bbfejlesztett delta kalibr\u00e1l\u00e1s"},{"location":"Delta_Calibrate.html#tovabbi-megjegyzesek","text":"Ha a delta nyomtat\u00f3 j\u00f3 m\u00e9retpontoss\u00e1ggal rendelkezik, akkor a k\u00e9t oszlop k\u00f6z\u00f6tti t\u00e1vols\u00e1gnak k\u00f6r\u00fclbel\u00fcl 74 mm-nek kell lennie, \u00e9s minden oszlop sz\u00e9less\u00e9g\u00e9nek k\u00f6r\u00fclbel\u00fcl 9 mm-nek kell lennie. (Pontosabban, a c\u00e9l az, hogy a k\u00e9t oszlop k\u00f6z\u00f6tti t\u00e1vols\u00e1g m\u00ednusz az egyik oszlop sz\u00e9less\u00e9ge pontosan 65 mm legyen.) Ha az alkatr\u00e9szben m\u00e9retpontatlans\u00e1g van, akkor a DELTA_ANALYZE rutin \u00faj delta param\u00e9tereket sz\u00e1mol ki a t\u00e1vols\u00e1gm\u00e9r\u00e9sek \u00e9s a legut\u00f3bbi DELTA_CALIBRATE parancsb\u00f3l sz\u00e1rmaz\u00f3 kor\u00e1bbi magass\u00e1gm\u00e9r\u00e9sek felhaszn\u00e1l\u00e1s\u00e1val. A DELTA_ANALYZE meglep\u0151 delta param\u00e9tereket eredm\u00e9nyezhet. P\u00e9ld\u00e1ul olyan karhossz\u00fas\u00e1gokat javasolhat, amelyek nem egyeznek a nyomtat\u00f3 t\u00e9nyleges karhossz\u00fas\u00e1g\u00e1val. Ennek ellen\u00e9re a tesztek azt mutatt\u00e1k, hogy a DELTA_ANALYZE gyakran jobb eredm\u00e9nyeket ad. \u00dagy v\u00e9lj\u00fck, hogy a kisz\u00e1m\u00edtott delta param\u00e9terek k\u00e9pesek figyelembe venni a hardver m\u00e1shol el\u0151fordul\u00f3 kisebb hib\u00e1it. P\u00e9ld\u00e1ul a karhossz kis elt\u00e9r\u00e9sei az effektor d\u0151l\u00e9s\u00e9t eredm\u00e9nyezhetik, \u00e9s ennek a d\u0151l\u00e9snek egy r\u00e9sze a karhossz param\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1val figyelembe vehet\u0151.","title":"Tov\u00e1bbi megjegyz\u00e9sek"},{"location":"Delta_Calibrate.html#targyasztal-halo-hasznalata-a-deltan","text":"Lehet\u0151s\u00e9g van t\u00e1rgyasztal h\u00e1l\u00f3 haszn\u00e1lat\u00e1ra egy delta eset\u00e9ben. Fontos azonban, hogy j\u00f3 deltakalibr\u00e1ci\u00f3t \u00e9rj el, miel\u0151tt enged\u00e9lyezn\u00e9d a t\u00e1rgyasztal h\u00e1l\u00f3t. A bed mesh futtat\u00e1sa rossz delta-kalibr\u00e1ci\u00f3val zavaros \u00e9s rossz eredm\u00e9nyeket fog eredm\u00e9nyezni. Vedd figyelembe, hogy a delta-kalibr\u00e1l\u00e1s v\u00e9grehajt\u00e1sa \u00e9rv\u00e9nytelen\u00edti a kor\u00e1bban kapott t\u00e1rgyasztal h\u00e1l\u00f3t. Az \u00faj delta-kalibr\u00e1l\u00e1s elv\u00e9gz\u00e9se ut\u00e1n felt\u00e9tlen\u00fcl futtassa \u00fajra a BED_MESH_CALIBRATE programot.","title":"T\u00e1rgyasztal h\u00e1l\u00f3 haszn\u00e1lata a Delt\u00e1n"},{"location":"Endstop_Phase.html","text":"V\u00e9g\u00e1ll\u00e1s f\u00e1zis \u00b6 Ez a dokumentum a Klipper l\u00e9ptet\u0151f\u00e1zis-be\u00e1ll\u00edtott v\u00e9g\u00fctk\u00f6z\u0151 rendszer\u00e9t \u00edrja le. Ez a funkci\u00f3 jav\u00edthatja a hagyom\u00e1nyos v\u00e9g\u00e1ll\u00e1skapcsol\u00f3k pontoss\u00e1g\u00e1t. Ez a leghasznosabb olyan Trinamic l\u00e9ptet\u0151motor-illeszt\u0151program haszn\u00e1latakor, amely fut\u00e1sidej\u0171 konfigur\u00e1ci\u00f3val rendelkezik. Egy tipikus v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 pontoss\u00e1ga k\u00f6r\u00fclbel\u00fcl 100 mikron. (A tengely minden egyes ind\u00edt\u00e1sakor a kapcsol\u00f3 valamivel kor\u00e1bban vagy valamivel k\u00e9s\u0151bb l\u00e9phet m\u0171k\u00f6d\u00e9sbe). B\u00e1r ez viszonylag kis hiba, nem k\u00edv\u00e1nt nyomtatv\u00e1nyokat eredm\u00e9nyezhet. K\u00fcl\u00f6n\u00f6sen a t\u00e1rgy els\u0151 r\u00e9teg\u00e9nek nyomtat\u00e1sakor lehet \u00e9szrevehet\u0151 ez a poz\u00edci\u00f3elt\u00e9r\u00e9s. Ezzel szemben a tipikus l\u00e9ptet\u0151motorokkal l\u00e9nyegesen nagyobb pontoss\u00e1g \u00e9rhet\u0151 el. A l\u00e9pcs\u0151s f\u00e1zis\u00fa v\u00e9g\u00e1ll\u00e1s mechanizmus a l\u00e9pcs\u0151s motorok pontoss\u00e1g\u00e1t haszn\u00e1lhatja a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3k pontoss\u00e1g\u00e1nak jav\u00edt\u00e1s\u00e1ra. A l\u00e9ptet\u0151motor egy sor f\u00e1zison kereszt\u00fcl ciklikusan mozog, am\u00edg n\u00e9gy \"teljes l\u00e9p\u00e9st\" nem teljes\u00edt. Teh\u00e1t egy 16 mikrol\u00e9p\u00e9st haszn\u00e1l\u00f3 l\u00e9ptet\u0151motornak 64 f\u00e1zisa lenne, \u00e9s pozit\u00edv ir\u00e1nyba t\u00f6rt\u00e9n\u0151 mozg\u00e1skor a f\u00e1zisok k\u00f6z\u00f6tt ciklikusan haladna: 0, 1, 2, ... 61, 62, 63, 0, 1, 2, stb. L\u00e9nyeges, hogy amikor a l\u00e9ptet\u0151motor egy adott poz\u00edci\u00f3ban van a line\u00e1ris s\u00ednen, mindig ugyanabban a l\u00e9ptet\u0151f\u00e1zisban kell lennie. \u00cdgy amikor egy kocsi a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3t aktiv\u00e1lja, az adott kocsit vez\u00e9rl\u0151 l\u00e9ptet\u0151nek mindig ugyanabban a l\u00e9ptet\u0151motor f\u00e1zisban kell lennie. A Klipper'v\u00e9g\u00e1ll\u00e1s f\u00e1zis rendszere a v\u00e9g\u00e1ll\u00e1s pontoss\u00e1g\u00e1nak jav\u00edt\u00e1sa \u00e9rdek\u00e9ben kombin\u00e1lja a l\u00e9ptet\u0151 f\u00e1zist a v\u00e9g\u00e1ll\u00e1s kiold\u00f3j\u00e1val. Ahhoz, hogy ezt a funkci\u00f3t haszn\u00e1lni lehessen, azonos\u00edtani kell a l\u00e9ptet\u0151motor f\u00e1zis\u00e1t. Ha a Trinamic TMC2130, TMC2208, TMC2224 vagy TMC2660 meghajt\u00f3kat fut\u00e1sidej\u0171 konfigur\u00e1ci\u00f3s m\u00f3dban haszn\u00e1lod (azaz nem \u00f6n\u00e1ll\u00f3 m\u00f3dban), akkor a Klipper le tudja k\u00e9rdezni a l\u00e9ptet\u0151motor f\u00e1zis\u00e1t a meghajt\u00f3b\u00f3l. (Ez a rendszer hagyom\u00e1nyos l\u00e9ptet\u0151 meghajt\u00f3kon is haszn\u00e1lhat\u00f3, ha megb\u00edzhat\u00f3an vissza lehet \u00e1ll\u00edtani a l\u00e9ptet\u0151 meghajt\u00f3kat - a r\u00e9szleteket l\u00e1sd al\u00e1bb.) V\u00e9g\u00e1ll\u00e1si f\u00e1zisok kalibr\u00e1l\u00e1sa \u00b6 Ha Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3kat haszn\u00e1lunk fut\u00e1sidej\u0171 konfigur\u00e1ci\u00f3val, akkor az ENDSTOP_PHASE_CALIBRATE paranccsal kalibr\u00e1lhatjuk a v\u00e9g\u00e1ll\u00e1si f\u00e1zisokat. Kezd a k\u00f6vetkez\u0151k hozz\u00e1ad\u00e1s\u00e1val a konfigur\u00e1ci\u00f3s f\u00e1jlhoz: [endstop_phase] Ezut\u00e1n ind\u00edtsa \u00fajra a nyomtat\u00f3t, \u00e9s futtasson egy G28 parancsot, amelyet egy ENDSTOP_PHASE_CALIBRATE parancs k\u00f6vet. Ezut\u00e1n mozgasd a nyomtat\u00f3fejet egy \u00faj helyre, \u00e9s futtassa \u00fajra a G28 parancsot. Pr\u00f3b\u00e1lja meg a nyomtat\u00f3fejet t\u00f6bb k\u00fcl\u00f6nb\u00f6z\u0151 helyre mozgatni, \u00e9s minden egyes poz\u00edci\u00f3b\u00f3l futtassa \u00fajra a G28 parancsot. Futtasson legal\u00e1bb \u00f6t G28 parancsot. A fentiek elv\u00e9gz\u00e9se ut\u00e1n a ENDSTOP_PHASE_CALIBRATE parancs gyakran ugyanazt (vagy k\u00f6zel ugyanazt) a f\u00e1zist fogja jelenteni a l\u00e9ptet\u0151 sz\u00e1m\u00e1ra. Ezt a f\u00e1zist el lehet menteni a konfigur\u00e1ci\u00f3s f\u00e1jlban, hogy a j\u00f6v\u0151ben minden G28 parancs ezt a f\u00e1zist haszn\u00e1lja. (\u00cdgy a j\u00f6v\u0151beni kezd\u0151pont k\u00e9r\u00e9si m\u0171veletek sor\u00e1n a Klipper ugyanazt a poz\u00edci\u00f3t fogja el\u00e9rni, m\u00e9g akkor is, ha a v\u00e9g\u00e1ll\u00e1s egy kicsit kor\u00e1bban vagy egy kicsit k\u00e9s\u0151bb l\u00e9p m\u0171k\u00f6d\u00e9sbe.) Egy adott l\u00e9ptet\u0151motor v\u00e9g\u00e1ll\u00e1si f\u00e1zis\u00e1nak elment\u00e9s\u00e9hez futtasson valami hasonl\u00f3t, mint a k\u00f6vetkez\u0151: ENDSTOP_PHASE_CALIBRATE STEPPER=stepper_z Futtassa a fenti l\u00e9p\u00e9seket az \u00f6sszes menteni k\u00edv\u00e1nt l\u00e9ptet\u0151re. \u00c1ltal\u00e1ban ezt a stepper_z-n\u00e9l haszn\u00e1ljuk cartesian \u00e9s corexy-nyomtat\u00f3khoz, illetve stepper_a, stepper_b \u00e9s stepper_c-hez delta nyomtat\u00f3khoz. V\u00e9g\u00fcl futtassa a k\u00f6vetkez\u0151t a konfigur\u00e1ci\u00f3s f\u00e1jl friss\u00edt\u00e9s\u00e9hez az adatokkal: SAVE_CONFIG Tov\u00e1bbi megjegyz\u00e9sek \u00b6 Ez a funkci\u00f3 a leghasznosabb a delta nyomtat\u00f3kon \u00e9s a cartesian/corexy nyomtat\u00f3k Z v\u00e9gpontj\u00e1n. A funkci\u00f3t a cartesian nyomtat\u00f3k XY v\u00e9g\u00e1ll\u00e1sain\u00e1l is lehet haszn\u00e1lni, de ez nem t\u00fal hasznos, mivel az X/Y v\u00e9g\u00e1ll\u00e1s poz\u00edci\u00f3j\u00e1nak kisebb hib\u00e1ja val\u00f3sz\u00edn\u0171leg nem befoly\u00e1solja a nyomtat\u00e1s min\u0151s\u00e9g\u00e9t. Nem \u00e9rv\u00e9nyes ezt a funkci\u00f3t a corexy nyomtat\u00f3k XY v\u00e9g\u00e1ll\u00e1sain\u00e1l haszn\u00e1lni (mivel az XY poz\u00edci\u00f3t nem egyetlen l\u00e9ptet\u0151 hat\u00e1rozza meg a corexy kinematik\u00e1n\u00e1l). Nem \u00e9rv\u00e9nyes ezt a funkci\u00f3t olyan nyomtat\u00f3kon haszn\u00e1lni, amelyek \"probe:z_virtual_endstop\" Z v\u00e9g\u00e1ll\u00e1st haszn\u00e1lnak (mivel a l\u00e9ptet\u0151f\u00e1zis csak akkor stabil, ha a v\u00e9g\u00e1ll\u00e1s egy s\u00edn statikus hely\u00e9n van). A v\u00e9g\u00e1ll\u00e1sf\u00e1zis kalibr\u00e1l\u00e1sa ut\u00e1n, ha a v\u00e9g\u00e1ll\u00e1st k\u00e9s\u0151bb elmozd\u00edtj\u00e1k vagy be\u00e1ll\u00edtj\u00e1k, akkor a v\u00e9g\u00e1ll\u00e1st \u00fajra kell kalibr\u00e1lni. T\u00e1vol\u00edtsa el a kalibr\u00e1l\u00e1si adatokat a konfigur\u00e1ci\u00f3s f\u00e1jlb\u00f3l, \u00e9s futtassa \u00fajra a fenti l\u00e9p\u00e9seket. A rendszer haszn\u00e1lat\u00e1hoz a v\u00e9g\u00e1ll\u00e1snak el\u00e9g pontosnak kell lennie ahhoz, hogy a l\u00e9ptet\u0151 poz\u00edci\u00f3j\u00e1t k\u00e9t \"teljes l\u00e9p\u00e9sen\" bel\u00fcl azonos\u00edtsa. \u00cdgy p\u00e9ld\u00e1ul, ha egy l\u00e9ptet\u0151 16 mikrol\u00e9p\u00e9st haszn\u00e1l 0,005 mm-es l\u00e9p\u00e9sk\u00f6zzel, akkor a v\u00e9g\u00e1ll\u00e1snak legal\u00e1bb 0,160 mm-es pontoss\u00e1ggal kell rendelkeznie. Ha a \"Endstop stepper_z incorrect phase\" t\u00edpus\u00fa hiba\u00fczeneteket kapunk, akkor ez egy nem kell\u0151en pontos v\u00e9g\u00e1ll\u00e1s miatt lehet. Ha az \u00fajrakalibr\u00e1l\u00e1s nem seg\u00edt, akkor tiltsa le az endstop f\u00e1zisbe\u00e1ll\u00edt\u00e1s\u00e1t a konfigur\u00e1ci\u00f3s f\u00e1jlb\u00f3l val\u00f3 elt\u00e1vol\u00edt\u00e1ssal. Ha valaki hagyom\u00e1nyos l\u00e9ptet\u0151 vez\u00e9rl\u00e9s\u0171 Z tengelyt haszn\u00e1l (mint egy cartesian vagy corexy nyomtat\u00f3n) hagyom\u00e1nyos t\u00e1rgyasztal kiegyenl\u00edt\u0151 csavarokkal egy\u00fctt, akkor az is lehets\u00e9ges, hogy ezt a rendszert \u00fagy haszn\u00e1lja, hogy minden egyes nyomtat\u00e1si r\u00e9teget egy \"teljes l\u00e9p\u00e9s\" hat\u00e1ron v\u00e9gezzen el. Ennek a funkci\u00f3nak az enged\u00e9lyez\u00e9s\u00e9hez gy\u0151z\u0151dj meg arr\u00f3l, hogy a G-k\u00f3d szeletel\u0151 olyan r\u00e9tegmagass\u00e1ggal van konfigur\u00e1lva, amely a \"teljes l\u00e9p\u00e9s\" t\u00f6bbsz\u00f6r\u00f6se, manu\u00e1lisan enged\u00e9lyezd az endstop_align_zero opci\u00f3t az endstop_phase config szakaszban (tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st ), majd szintezze \u00fajra a t\u00e1rgyasztal csavarjait. Ez a rendszer hagyom\u00e1nyos (nem Trinamic) l\u00e9ptet\u0151motor-meghajt\u00f3kkal is haszn\u00e1lhat\u00f3. Ehhez azonban gondoskodni kell arr\u00f3l, hogy a l\u00e9ptet\u0151motor-meghajt\u00f3k a mikrokontroller minden egyes resetel\u00e9sekor \u00fajrainduljanak. (Ha a kett\u0151 mindig egy\u00fctt van resetelve, akkor a Klipper a l\u00e9ptet\u0151 f\u00e1zis\u00e1t \u00fagy tudja meghat\u00e1rozni, hogy nyomon k\u00f6veti a l\u00e9ptet\u0151nek adott parancsok teljes l\u00e9p\u00e9ssz\u00e1m\u00e1t). Jelenleg ez csak akkor lehets\u00e9ges megb\u00edzhat\u00f3an, ha mind a mikrokontroller, mind a l\u00e9ptet\u0151motor-meghajt\u00f3k kiz\u00e1r\u00f3lag USB-r\u0151l kapnak \u00e1ramot, \u00e9s az USB-r\u0151l egy Raspberry Pi-n fut\u00f3 hostr\u00f3l kapjuk az \u00e1ramot. Ebben a helyzetben meg lehet adni egy MCU konfigur\u00e1ci\u00f3t a \"restart_method: rpi_usb\" - ez az opci\u00f3 gondoskodik arr\u00f3l, hogy a mikrokontrollert mindig USB t\u00e1pell\u00e1t\u00e1s-vissza\u00e1ll\u00edt\u00e1ssal \u00e1ll\u00edts\u00e1k vissza, ami gondoskodik arr\u00f3l, hogy a mikrokontroller \u00e9s a l\u00e9ptet\u0151motor-illeszt\u0151programok egy\u00fctt \u00e1lljanak vissza. Ha ezt a mechanizmust haszn\u00e1ljuk, akkor manu\u00e1lisan kell konfigur\u00e1lni a \"trigger_phase\" konfigur\u00e1ci\u00f3s szakaszokat (a r\u00e9szleteket l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st ).","title":"V\u00e9g\u00e1ll\u00e1s f\u00e1zis"},{"location":"Endstop_Phase.html#vegallas-fazis","text":"Ez a dokumentum a Klipper l\u00e9ptet\u0151f\u00e1zis-be\u00e1ll\u00edtott v\u00e9g\u00fctk\u00f6z\u0151 rendszer\u00e9t \u00edrja le. Ez a funkci\u00f3 jav\u00edthatja a hagyom\u00e1nyos v\u00e9g\u00e1ll\u00e1skapcsol\u00f3k pontoss\u00e1g\u00e1t. Ez a leghasznosabb olyan Trinamic l\u00e9ptet\u0151motor-illeszt\u0151program haszn\u00e1latakor, amely fut\u00e1sidej\u0171 konfigur\u00e1ci\u00f3val rendelkezik. Egy tipikus v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 pontoss\u00e1ga k\u00f6r\u00fclbel\u00fcl 100 mikron. (A tengely minden egyes ind\u00edt\u00e1sakor a kapcsol\u00f3 valamivel kor\u00e1bban vagy valamivel k\u00e9s\u0151bb l\u00e9phet m\u0171k\u00f6d\u00e9sbe). B\u00e1r ez viszonylag kis hiba, nem k\u00edv\u00e1nt nyomtatv\u00e1nyokat eredm\u00e9nyezhet. K\u00fcl\u00f6n\u00f6sen a t\u00e1rgy els\u0151 r\u00e9teg\u00e9nek nyomtat\u00e1sakor lehet \u00e9szrevehet\u0151 ez a poz\u00edci\u00f3elt\u00e9r\u00e9s. Ezzel szemben a tipikus l\u00e9ptet\u0151motorokkal l\u00e9nyegesen nagyobb pontoss\u00e1g \u00e9rhet\u0151 el. A l\u00e9pcs\u0151s f\u00e1zis\u00fa v\u00e9g\u00e1ll\u00e1s mechanizmus a l\u00e9pcs\u0151s motorok pontoss\u00e1g\u00e1t haszn\u00e1lhatja a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3k pontoss\u00e1g\u00e1nak jav\u00edt\u00e1s\u00e1ra. A l\u00e9ptet\u0151motor egy sor f\u00e1zison kereszt\u00fcl ciklikusan mozog, am\u00edg n\u00e9gy \"teljes l\u00e9p\u00e9st\" nem teljes\u00edt. Teh\u00e1t egy 16 mikrol\u00e9p\u00e9st haszn\u00e1l\u00f3 l\u00e9ptet\u0151motornak 64 f\u00e1zisa lenne, \u00e9s pozit\u00edv ir\u00e1nyba t\u00f6rt\u00e9n\u0151 mozg\u00e1skor a f\u00e1zisok k\u00f6z\u00f6tt ciklikusan haladna: 0, 1, 2, ... 61, 62, 63, 0, 1, 2, stb. L\u00e9nyeges, hogy amikor a l\u00e9ptet\u0151motor egy adott poz\u00edci\u00f3ban van a line\u00e1ris s\u00ednen, mindig ugyanabban a l\u00e9ptet\u0151f\u00e1zisban kell lennie. \u00cdgy amikor egy kocsi a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3t aktiv\u00e1lja, az adott kocsit vez\u00e9rl\u0151 l\u00e9ptet\u0151nek mindig ugyanabban a l\u00e9ptet\u0151motor f\u00e1zisban kell lennie. A Klipper'v\u00e9g\u00e1ll\u00e1s f\u00e1zis rendszere a v\u00e9g\u00e1ll\u00e1s pontoss\u00e1g\u00e1nak jav\u00edt\u00e1sa \u00e9rdek\u00e9ben kombin\u00e1lja a l\u00e9ptet\u0151 f\u00e1zist a v\u00e9g\u00e1ll\u00e1s kiold\u00f3j\u00e1val. Ahhoz, hogy ezt a funkci\u00f3t haszn\u00e1lni lehessen, azonos\u00edtani kell a l\u00e9ptet\u0151motor f\u00e1zis\u00e1t. Ha a Trinamic TMC2130, TMC2208, TMC2224 vagy TMC2660 meghajt\u00f3kat fut\u00e1sidej\u0171 konfigur\u00e1ci\u00f3s m\u00f3dban haszn\u00e1lod (azaz nem \u00f6n\u00e1ll\u00f3 m\u00f3dban), akkor a Klipper le tudja k\u00e9rdezni a l\u00e9ptet\u0151motor f\u00e1zis\u00e1t a meghajt\u00f3b\u00f3l. (Ez a rendszer hagyom\u00e1nyos l\u00e9ptet\u0151 meghajt\u00f3kon is haszn\u00e1lhat\u00f3, ha megb\u00edzhat\u00f3an vissza lehet \u00e1ll\u00edtani a l\u00e9ptet\u0151 meghajt\u00f3kat - a r\u00e9szleteket l\u00e1sd al\u00e1bb.)","title":"V\u00e9g\u00e1ll\u00e1s f\u00e1zis"},{"location":"Endstop_Phase.html#vegallasi-fazisok-kalibralasa","text":"Ha Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3kat haszn\u00e1lunk fut\u00e1sidej\u0171 konfigur\u00e1ci\u00f3val, akkor az ENDSTOP_PHASE_CALIBRATE paranccsal kalibr\u00e1lhatjuk a v\u00e9g\u00e1ll\u00e1si f\u00e1zisokat. Kezd a k\u00f6vetkez\u0151k hozz\u00e1ad\u00e1s\u00e1val a konfigur\u00e1ci\u00f3s f\u00e1jlhoz: [endstop_phase] Ezut\u00e1n ind\u00edtsa \u00fajra a nyomtat\u00f3t, \u00e9s futtasson egy G28 parancsot, amelyet egy ENDSTOP_PHASE_CALIBRATE parancs k\u00f6vet. Ezut\u00e1n mozgasd a nyomtat\u00f3fejet egy \u00faj helyre, \u00e9s futtassa \u00fajra a G28 parancsot. Pr\u00f3b\u00e1lja meg a nyomtat\u00f3fejet t\u00f6bb k\u00fcl\u00f6nb\u00f6z\u0151 helyre mozgatni, \u00e9s minden egyes poz\u00edci\u00f3b\u00f3l futtassa \u00fajra a G28 parancsot. Futtasson legal\u00e1bb \u00f6t G28 parancsot. A fentiek elv\u00e9gz\u00e9se ut\u00e1n a ENDSTOP_PHASE_CALIBRATE parancs gyakran ugyanazt (vagy k\u00f6zel ugyanazt) a f\u00e1zist fogja jelenteni a l\u00e9ptet\u0151 sz\u00e1m\u00e1ra. Ezt a f\u00e1zist el lehet menteni a konfigur\u00e1ci\u00f3s f\u00e1jlban, hogy a j\u00f6v\u0151ben minden G28 parancs ezt a f\u00e1zist haszn\u00e1lja. (\u00cdgy a j\u00f6v\u0151beni kezd\u0151pont k\u00e9r\u00e9si m\u0171veletek sor\u00e1n a Klipper ugyanazt a poz\u00edci\u00f3t fogja el\u00e9rni, m\u00e9g akkor is, ha a v\u00e9g\u00e1ll\u00e1s egy kicsit kor\u00e1bban vagy egy kicsit k\u00e9s\u0151bb l\u00e9p m\u0171k\u00f6d\u00e9sbe.) Egy adott l\u00e9ptet\u0151motor v\u00e9g\u00e1ll\u00e1si f\u00e1zis\u00e1nak elment\u00e9s\u00e9hez futtasson valami hasonl\u00f3t, mint a k\u00f6vetkez\u0151: ENDSTOP_PHASE_CALIBRATE STEPPER=stepper_z Futtassa a fenti l\u00e9p\u00e9seket az \u00f6sszes menteni k\u00edv\u00e1nt l\u00e9ptet\u0151re. \u00c1ltal\u00e1ban ezt a stepper_z-n\u00e9l haszn\u00e1ljuk cartesian \u00e9s corexy-nyomtat\u00f3khoz, illetve stepper_a, stepper_b \u00e9s stepper_c-hez delta nyomtat\u00f3khoz. V\u00e9g\u00fcl futtassa a k\u00f6vetkez\u0151t a konfigur\u00e1ci\u00f3s f\u00e1jl friss\u00edt\u00e9s\u00e9hez az adatokkal: SAVE_CONFIG","title":"V\u00e9g\u00e1ll\u00e1si f\u00e1zisok kalibr\u00e1l\u00e1sa"},{"location":"Endstop_Phase.html#tovabbi-megjegyzesek","text":"Ez a funkci\u00f3 a leghasznosabb a delta nyomtat\u00f3kon \u00e9s a cartesian/corexy nyomtat\u00f3k Z v\u00e9gpontj\u00e1n. A funkci\u00f3t a cartesian nyomtat\u00f3k XY v\u00e9g\u00e1ll\u00e1sain\u00e1l is lehet haszn\u00e1lni, de ez nem t\u00fal hasznos, mivel az X/Y v\u00e9g\u00e1ll\u00e1s poz\u00edci\u00f3j\u00e1nak kisebb hib\u00e1ja val\u00f3sz\u00edn\u0171leg nem befoly\u00e1solja a nyomtat\u00e1s min\u0151s\u00e9g\u00e9t. Nem \u00e9rv\u00e9nyes ezt a funkci\u00f3t a corexy nyomtat\u00f3k XY v\u00e9g\u00e1ll\u00e1sain\u00e1l haszn\u00e1lni (mivel az XY poz\u00edci\u00f3t nem egyetlen l\u00e9ptet\u0151 hat\u00e1rozza meg a corexy kinematik\u00e1n\u00e1l). Nem \u00e9rv\u00e9nyes ezt a funkci\u00f3t olyan nyomtat\u00f3kon haszn\u00e1lni, amelyek \"probe:z_virtual_endstop\" Z v\u00e9g\u00e1ll\u00e1st haszn\u00e1lnak (mivel a l\u00e9ptet\u0151f\u00e1zis csak akkor stabil, ha a v\u00e9g\u00e1ll\u00e1s egy s\u00edn statikus hely\u00e9n van). A v\u00e9g\u00e1ll\u00e1sf\u00e1zis kalibr\u00e1l\u00e1sa ut\u00e1n, ha a v\u00e9g\u00e1ll\u00e1st k\u00e9s\u0151bb elmozd\u00edtj\u00e1k vagy be\u00e1ll\u00edtj\u00e1k, akkor a v\u00e9g\u00e1ll\u00e1st \u00fajra kell kalibr\u00e1lni. T\u00e1vol\u00edtsa el a kalibr\u00e1l\u00e1si adatokat a konfigur\u00e1ci\u00f3s f\u00e1jlb\u00f3l, \u00e9s futtassa \u00fajra a fenti l\u00e9p\u00e9seket. A rendszer haszn\u00e1lat\u00e1hoz a v\u00e9g\u00e1ll\u00e1snak el\u00e9g pontosnak kell lennie ahhoz, hogy a l\u00e9ptet\u0151 poz\u00edci\u00f3j\u00e1t k\u00e9t \"teljes l\u00e9p\u00e9sen\" bel\u00fcl azonos\u00edtsa. \u00cdgy p\u00e9ld\u00e1ul, ha egy l\u00e9ptet\u0151 16 mikrol\u00e9p\u00e9st haszn\u00e1l 0,005 mm-es l\u00e9p\u00e9sk\u00f6zzel, akkor a v\u00e9g\u00e1ll\u00e1snak legal\u00e1bb 0,160 mm-es pontoss\u00e1ggal kell rendelkeznie. Ha a \"Endstop stepper_z incorrect phase\" t\u00edpus\u00fa hiba\u00fczeneteket kapunk, akkor ez egy nem kell\u0151en pontos v\u00e9g\u00e1ll\u00e1s miatt lehet. Ha az \u00fajrakalibr\u00e1l\u00e1s nem seg\u00edt, akkor tiltsa le az endstop f\u00e1zisbe\u00e1ll\u00edt\u00e1s\u00e1t a konfigur\u00e1ci\u00f3s f\u00e1jlb\u00f3l val\u00f3 elt\u00e1vol\u00edt\u00e1ssal. Ha valaki hagyom\u00e1nyos l\u00e9ptet\u0151 vez\u00e9rl\u00e9s\u0171 Z tengelyt haszn\u00e1l (mint egy cartesian vagy corexy nyomtat\u00f3n) hagyom\u00e1nyos t\u00e1rgyasztal kiegyenl\u00edt\u0151 csavarokkal egy\u00fctt, akkor az is lehets\u00e9ges, hogy ezt a rendszert \u00fagy haszn\u00e1lja, hogy minden egyes nyomtat\u00e1si r\u00e9teget egy \"teljes l\u00e9p\u00e9s\" hat\u00e1ron v\u00e9gezzen el. Ennek a funkci\u00f3nak az enged\u00e9lyez\u00e9s\u00e9hez gy\u0151z\u0151dj meg arr\u00f3l, hogy a G-k\u00f3d szeletel\u0151 olyan r\u00e9tegmagass\u00e1ggal van konfigur\u00e1lva, amely a \"teljes l\u00e9p\u00e9s\" t\u00f6bbsz\u00f6r\u00f6se, manu\u00e1lisan enged\u00e9lyezd az endstop_align_zero opci\u00f3t az endstop_phase config szakaszban (tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st ), majd szintezze \u00fajra a t\u00e1rgyasztal csavarjait. Ez a rendszer hagyom\u00e1nyos (nem Trinamic) l\u00e9ptet\u0151motor-meghajt\u00f3kkal is haszn\u00e1lhat\u00f3. Ehhez azonban gondoskodni kell arr\u00f3l, hogy a l\u00e9ptet\u0151motor-meghajt\u00f3k a mikrokontroller minden egyes resetel\u00e9sekor \u00fajrainduljanak. (Ha a kett\u0151 mindig egy\u00fctt van resetelve, akkor a Klipper a l\u00e9ptet\u0151 f\u00e1zis\u00e1t \u00fagy tudja meghat\u00e1rozni, hogy nyomon k\u00f6veti a l\u00e9ptet\u0151nek adott parancsok teljes l\u00e9p\u00e9ssz\u00e1m\u00e1t). Jelenleg ez csak akkor lehets\u00e9ges megb\u00edzhat\u00f3an, ha mind a mikrokontroller, mind a l\u00e9ptet\u0151motor-meghajt\u00f3k kiz\u00e1r\u00f3lag USB-r\u0151l kapnak \u00e1ramot, \u00e9s az USB-r\u0151l egy Raspberry Pi-n fut\u00f3 hostr\u00f3l kapjuk az \u00e1ramot. Ebben a helyzetben meg lehet adni egy MCU konfigur\u00e1ci\u00f3t a \"restart_method: rpi_usb\" - ez az opci\u00f3 gondoskodik arr\u00f3l, hogy a mikrokontrollert mindig USB t\u00e1pell\u00e1t\u00e1s-vissza\u00e1ll\u00edt\u00e1ssal \u00e1ll\u00edts\u00e1k vissza, ami gondoskodik arr\u00f3l, hogy a mikrokontroller \u00e9s a l\u00e9ptet\u0151motor-illeszt\u0151programok egy\u00fctt \u00e1lljanak vissza. Ha ezt a mechanizmust haszn\u00e1ljuk, akkor manu\u00e1lisan kell konfigur\u00e1lni a \"trigger_phase\" konfigur\u00e1ci\u00f3s szakaszokat (a r\u00e9szleteket l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st ).","title":"Tov\u00e1bbi megjegyz\u00e9sek"},{"location":"Example_Configs.html","text":"P\u00e9lda konfigur\u00e1ci\u00f3k \u00b6 Ez a dokumentum a Klipper github t\u00e1rhoz (a config k\u00f6nyvt\u00e1rban tal\u00e1lhat\u00f3) egy Klipper p\u00e9ldakonfigur\u00e1ci\u00f3hoz val\u00f3 hozz\u00e1j\u00e1rul\u00e1shoz tartalmaz \u00fatmutat\u00e1st. Ne feledd, hogy a Klipper Community Discourse szerver szint\u00e9n hasznos forr\u00e1s a konfigur\u00e1ci\u00f3s f\u00e1jlok keres\u00e9s\u00e9hez \u00e9s megoszt\u00e1s\u00e1hoz. Ir\u00e1nyelvek \u00b6 V\u00e1laszd ki a megfelel\u0151 konfigur\u00e1ci\u00f3s f\u00e1jln\u00e9v el\u0151tagot: A printer el\u0151tagot az \u00e1ltal\u00e1nos gy\u00e1rt\u00f3 \u00e1ltal \u00e9rt\u00e9kes\u00edtett nyomtat\u00f3kra haszn\u00e1lj\u00e1k. Az \u00e1ltal\u00e1nos el\u0151tagot olyan 3D nyomtat\u00f3 alaplapra haszn\u00e1lj\u00e1k, amely sz\u00e1mos k\u00fcl\u00f6nb\u00f6z\u0151 t\u00edpus\u00fa nyomtat\u00f3ban haszn\u00e1lhat\u00f3. A kit el\u0151tag olyan 3D nyomtat\u00f3kra vonatkozik, amelyeket egy sz\u00e9les k\u00f6rben haszn\u00e1lt specifik\u00e1ci\u00f3 szerint \u00e1ll\u00edtanak \u00f6ssze. Ezek a \"kit\" nyomtat\u00f3k \u00e1ltal\u00e1ban abban k\u00fcl\u00f6nb\u00f6znek a norm\u00e1l \"nyomtat\u00f3kt\u00f3l\", hogy nem egy gy\u00e1rt\u00f3 \u00e9rt\u00e9kes\u00edti \u0151ket. A sample el\u0151tagot a konfigur\u00e1ci\u00f3s \"snippetek\" sz\u00e1m\u00e1ra haszn\u00e1ljuk, amelyeket m\u00e1solva beilleszthet\u00fcnk a f\u0151 konfigur\u00e1ci\u00f3s f\u00e1jlba. A p\u00e9lda el\u0151tag a nyomtat\u00f3 kinematik\u00e1j\u00e1nak le\u00edr\u00e1s\u00e1ra szolg\u00e1l. Az ilyen t\u00edpus\u00fa konfigur\u00e1ci\u00f3 jellemz\u0151en csak a nyomtat\u00f3 kinematik\u00e1j\u00e1nak \u00faj t\u00edpus\u00e1hoz tartoz\u00f3 k\u00f3ddal egy\u00fctt ker\u00fcl hozz\u00e1ad\u00e1sra. Minden konfigur\u00e1ci\u00f3s f\u00e1jlnak .cfg v\u00e9gz\u0151d\u00e9ssel kell v\u00e9gz\u0151dnie. A printer konfigur\u00e1ci\u00f3s f\u00e1jloknak egy \u00e9vsz\u00e1mmal kell v\u00e9gz\u0151dni\u00fck, amelyet a .cfg v\u00e9gz\u0151d\u00e9s k\u00f6vet (pl. -2019.cfg ). Ebben az esetben az \u00e9vsz\u00e1m az adott nyomtat\u00f3 elad\u00e1s\u00e1nak hozz\u00e1vet\u0151leges \u00e9ve. Ne haszn\u00e1lj sz\u00f3k\u00f6z\u00f6ket vagy speci\u00e1lis karaktereket a konfigur\u00e1ci\u00f3s f\u00e1jln\u00e9vben. A f\u00e1jln\u00e9v csak a A-Z , a-z , 0-9 , - \u00e9s karaktereket tartalmazhatja. . A Klippernek hiba n\u00e9lk\u00fcl el kell tudnia ind\u00edtani a printer , generic \u00e9s kit p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jlt. Ezeket a konfigur\u00e1ci\u00f3s f\u00e1jlokat hozz\u00e1 kell adni a test/klippy/printers.test regresszi\u00f3s tesztesethez. Add hozz\u00e1 az \u00faj konfigur\u00e1ci\u00f3s f\u00e1jlokat ehhez a tesztesethez a megfelel\u0151 szakaszban \u00e9s a szakaszon bel\u00fcl \u00e1b\u00e9c\u00e9 sorrendben. A p\u00e9ldakonfigur\u00e1ci\u00f3nak a nyomtat\u00f3 \"stock\" konfigur\u00e1ci\u00f3j\u00e1ra kell vonatkoznia. (T\u00fal sok \"testreszabott\" konfigur\u00e1ci\u00f3 van ahhoz, hogy a Klipper f\u0151 t\u00e1rol\u00f3j\u00e1ban nyomon lehessen k\u00f6vetni.) Hasonl\u00f3k\u00e9ppen, csak olyan nyomtat\u00f3k, k\u00e9szletek \u00e9s k\u00e1rty\u00e1k p\u00e9ldakonfigur\u00e1ci\u00f3s f\u00e1jljait adjuk hozz\u00e1, amelyek n\u00e9pszer\u0171ek (pl. legal\u00e1bb 100 darabnak kell lennie bel\u0151l\u00fck akt\u00edv haszn\u00e1latban). Fontolja meg a Klipper Community Discourse szerver haszn\u00e1lat\u00e1t m\u00e1s konfigur\u00e1ci\u00f3khoz. Only specify those devices present on the given printer or board. Do not specify settings specific to your particular setup. For generic config files, only those devices on the mainboard should be described. For example, it would not make sense to add a display config section to a \"generic\" config as there is no way to know if the board will be attached to that type of display. If the board has a specific hardware port to facilitate an optional peripheral (eg, a bltouch port) then one can add a \"commented out\" config section for the given device. Ne add meg a pressure_advance \u00e9rt\u00e9ket egy p\u00e9ldakonfigur\u00e1ci\u00f3ban, mivel ez az \u00e9rt\u00e9k a sz\u00e1lra, nem pedig a nyomtat\u00f3 hardver\u00e9re jellemz\u0151. Hasonl\u00f3k\u00e9ppen ne adj meg max_extrude_only_velocity \u00e9s max_extrude_only_accel be\u00e1ll\u00edt\u00e1sokat. Ne adj meg olyan konfigur\u00e1ci\u00f3s r\u00e9szt, amely \u00e1llom\u00e1s el\u00e9r\u00e9si \u00fatvonalat vagy \u00e1llom\u00e1shardvert tartalmaz. P\u00e9ld\u00e1ul ne adj meg [virtual_sdcard] \u00e9s [temperature_host] konfigur\u00e1ci\u00f3s szakaszokat. Csak olyan makr\u00f3kat defini\u00e1ljon, amelyek az adott nyomtat\u00f3ra jellemz\u0151 funkci\u00f3kat haszn\u00e1lj\u00e1k, vagy olyan g-k\u00f3dokat defini\u00e1ljon, amelyeket az adott nyomtat\u00f3hoz konfigur\u00e1lt szeletel\u0151k \u00e1ltal\u00e1ban kiadnak. Where possible, it is best to use the same wording, phrasing, indentation, and section ordering as the existing config files. The top of each config file should list the type of micro-controller the user should select during \"make menuconfig\". It should also have a reference to \"docs/Config_Reference.md\". Ne m\u00e1sold be a mez\u0151 dokument\u00e1ci\u00f3j\u00e1t a p\u00e9ldakonfigur\u00e1ci\u00f3s f\u00e1jlokba. (Ez karbantart\u00e1si terhet jelent, mivel a dokument\u00e1ci\u00f3 friss\u00edt\u00e9se sok helyen v\u00e1ltoztat\u00e1st ig\u00e9nyelne.) A p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jlok nem tartalmazhatnak \"SAVE_CONFIG\" r\u00e9szt. Ha sz\u00fcks\u00e9ges, m\u00e1sold \u00e1t a SAVE_CONFIG szakaszb\u00f3l a megfelel\u0151 mez\u0151ket a f\u0151 konfigur\u00e1ci\u00f3s ter\u00fclet megfelel\u0151 szakasz\u00e1ba. Haszn\u00e1ld a field: value szintaxist a field=value helyett. Extruder rotation_distance hozz\u00e1ad\u00e1sakor c\u00e9lszer\u0171 megadni a gear_ratio \u00e9rt\u00e9ket, ha az extruder fogasker\u00e9kkel rendelkezik. A p\u00e9ldakonfigur\u00e1ci\u00f3kban szerepl\u0151 rotation_distance \u00e9rt\u00e9kt\u0151l azt v\u00e1rjuk, hogy korrel\u00e1ljon az extruderben l\u00e9v\u0151 fogasker\u00e9k ker\u00fclet\u00e9vel. Ez \u00e1ltal\u00e1ban 20 \u00e9s 35 mm k\u00f6z\u00f6tti tartom\u00e1nyban van. A gear_ratio megad\u00e1sakor el\u0151ny\u00f6sebb a mechanizmuson l\u00e9v\u0151 t\u00e9nyleges fogaskerekek fogsz\u00e1m\u00e1nak megad\u00e1sa (pl. ink\u00e1bb gear_ratio: 80:20 , mint gear_ratio: 4:1 ). Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a forgat\u00e1si t\u00e1vols\u00e1g dokumentumot . Ker\u00fclje az alap\u00e9rtelmezett \u00e9rt\u00e9kre be\u00e1ll\u00edtott mez\u0151\u00e9rt\u00e9kek meghat\u00e1roz\u00e1s\u00e1t. P\u00e9ld\u00e1ul nem szabad megadni min_extrude_temp: 170 , mivel ez m\u00e1r az alap\u00e9rtelmezett \u00e9rt\u00e9k. Ahol lehets\u00e9ges, a sorok sz\u00e1ma nem haladhatja meg a 80 oszlopot. Ker\u00fclje el az attrib\u00faci\u00f3s vagy rev\u00edzi\u00f3s \u00fczenetek hozz\u00e1ad\u00e1s\u00e1t a konfigur\u00e1ci\u00f3s f\u00e1jlokhoz. (P\u00e9ld\u00e1ul ker\u00fclje az olyan sorok hozz\u00e1ad\u00e1s\u00e1t, mint a \"this file was created by ...\"). Helyezze el az attrib\u00faci\u00f3t \u00e9s a v\u00e1ltoztat\u00e1si el\u0151zm\u00e9nyeket a git commit \u00fczenetben. Ne haszn\u00e1lj semmilyen elavult funkci\u00f3t a p\u00e9ldakonfigur\u00e1ci\u00f3s f\u00e1jlban. Ne tiltson le egy alap\u00e9rtelmezett biztons\u00e1gi rendszert egy p\u00e9ldakonfig-f\u00e1jlban. P\u00e9ld\u00e1ul egy konfigur\u00e1ci\u00f3 nem adhat meg egy egy\u00e9ni max_extrude_cross_section \u00e9rt\u00e9ket. Ne enged\u00e9lyezd a hibakeres\u00e9si funkci\u00f3kat. P\u00e9ld\u00e1ul ne legyen force_move config szakasz. A Klipper \u00e1ltal t\u00e1mogatott \u00f6sszes ismert k\u00e1rtya az alap\u00e9rtelmezett 250000-es soros adat\u00e1tvitelt tudja haszn\u00e1lni. Ne javasoljon elt\u00e9r\u0151 adat\u00e1tvitel be\u00e1ll\u00edt\u00e1s\u00e1t egy p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jlban. A p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jlok elk\u00fcld\u00e9se egy github \"pull request\" l\u00e9trehoz\u00e1s\u00e1val t\u00f6rt\u00e9nik. K\u00e9rj\u00fck, k\u00f6vesse a k\u00f6zrem\u0171k\u00f6d\u0151 dokumentum utas\u00edt\u00e1sait is.","title":"P\u00e9lda konfigur\u00e1ci\u00f3k"},{"location":"Example_Configs.html#pelda-konfiguraciok","text":"Ez a dokumentum a Klipper github t\u00e1rhoz (a config k\u00f6nyvt\u00e1rban tal\u00e1lhat\u00f3) egy Klipper p\u00e9ldakonfigur\u00e1ci\u00f3hoz val\u00f3 hozz\u00e1j\u00e1rul\u00e1shoz tartalmaz \u00fatmutat\u00e1st. Ne feledd, hogy a Klipper Community Discourse szerver szint\u00e9n hasznos forr\u00e1s a konfigur\u00e1ci\u00f3s f\u00e1jlok keres\u00e9s\u00e9hez \u00e9s megoszt\u00e1s\u00e1hoz.","title":"P\u00e9lda konfigur\u00e1ci\u00f3k"},{"location":"Example_Configs.html#iranyelvek","text":"V\u00e1laszd ki a megfelel\u0151 konfigur\u00e1ci\u00f3s f\u00e1jln\u00e9v el\u0151tagot: A printer el\u0151tagot az \u00e1ltal\u00e1nos gy\u00e1rt\u00f3 \u00e1ltal \u00e9rt\u00e9kes\u00edtett nyomtat\u00f3kra haszn\u00e1lj\u00e1k. Az \u00e1ltal\u00e1nos el\u0151tagot olyan 3D nyomtat\u00f3 alaplapra haszn\u00e1lj\u00e1k, amely sz\u00e1mos k\u00fcl\u00f6nb\u00f6z\u0151 t\u00edpus\u00fa nyomtat\u00f3ban haszn\u00e1lhat\u00f3. A kit el\u0151tag olyan 3D nyomtat\u00f3kra vonatkozik, amelyeket egy sz\u00e9les k\u00f6rben haszn\u00e1lt specifik\u00e1ci\u00f3 szerint \u00e1ll\u00edtanak \u00f6ssze. Ezek a \"kit\" nyomtat\u00f3k \u00e1ltal\u00e1ban abban k\u00fcl\u00f6nb\u00f6znek a norm\u00e1l \"nyomtat\u00f3kt\u00f3l\", hogy nem egy gy\u00e1rt\u00f3 \u00e9rt\u00e9kes\u00edti \u0151ket. A sample el\u0151tagot a konfigur\u00e1ci\u00f3s \"snippetek\" sz\u00e1m\u00e1ra haszn\u00e1ljuk, amelyeket m\u00e1solva beilleszthet\u00fcnk a f\u0151 konfigur\u00e1ci\u00f3s f\u00e1jlba. A p\u00e9lda el\u0151tag a nyomtat\u00f3 kinematik\u00e1j\u00e1nak le\u00edr\u00e1s\u00e1ra szolg\u00e1l. Az ilyen t\u00edpus\u00fa konfigur\u00e1ci\u00f3 jellemz\u0151en csak a nyomtat\u00f3 kinematik\u00e1j\u00e1nak \u00faj t\u00edpus\u00e1hoz tartoz\u00f3 k\u00f3ddal egy\u00fctt ker\u00fcl hozz\u00e1ad\u00e1sra. Minden konfigur\u00e1ci\u00f3s f\u00e1jlnak .cfg v\u00e9gz\u0151d\u00e9ssel kell v\u00e9gz\u0151dnie. A printer konfigur\u00e1ci\u00f3s f\u00e1jloknak egy \u00e9vsz\u00e1mmal kell v\u00e9gz\u0151dni\u00fck, amelyet a .cfg v\u00e9gz\u0151d\u00e9s k\u00f6vet (pl. -2019.cfg ). Ebben az esetben az \u00e9vsz\u00e1m az adott nyomtat\u00f3 elad\u00e1s\u00e1nak hozz\u00e1vet\u0151leges \u00e9ve. Ne haszn\u00e1lj sz\u00f3k\u00f6z\u00f6ket vagy speci\u00e1lis karaktereket a konfigur\u00e1ci\u00f3s f\u00e1jln\u00e9vben. A f\u00e1jln\u00e9v csak a A-Z , a-z , 0-9 , - \u00e9s karaktereket tartalmazhatja. . A Klippernek hiba n\u00e9lk\u00fcl el kell tudnia ind\u00edtani a printer , generic \u00e9s kit p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jlt. Ezeket a konfigur\u00e1ci\u00f3s f\u00e1jlokat hozz\u00e1 kell adni a test/klippy/printers.test regresszi\u00f3s tesztesethez. Add hozz\u00e1 az \u00faj konfigur\u00e1ci\u00f3s f\u00e1jlokat ehhez a tesztesethez a megfelel\u0151 szakaszban \u00e9s a szakaszon bel\u00fcl \u00e1b\u00e9c\u00e9 sorrendben. A p\u00e9ldakonfigur\u00e1ci\u00f3nak a nyomtat\u00f3 \"stock\" konfigur\u00e1ci\u00f3j\u00e1ra kell vonatkoznia. (T\u00fal sok \"testreszabott\" konfigur\u00e1ci\u00f3 van ahhoz, hogy a Klipper f\u0151 t\u00e1rol\u00f3j\u00e1ban nyomon lehessen k\u00f6vetni.) Hasonl\u00f3k\u00e9ppen, csak olyan nyomtat\u00f3k, k\u00e9szletek \u00e9s k\u00e1rty\u00e1k p\u00e9ldakonfigur\u00e1ci\u00f3s f\u00e1jljait adjuk hozz\u00e1, amelyek n\u00e9pszer\u0171ek (pl. legal\u00e1bb 100 darabnak kell lennie bel\u0151l\u00fck akt\u00edv haszn\u00e1latban). Fontolja meg a Klipper Community Discourse szerver haszn\u00e1lat\u00e1t m\u00e1s konfigur\u00e1ci\u00f3khoz. Only specify those devices present on the given printer or board. Do not specify settings specific to your particular setup. For generic config files, only those devices on the mainboard should be described. For example, it would not make sense to add a display config section to a \"generic\" config as there is no way to know if the board will be attached to that type of display. If the board has a specific hardware port to facilitate an optional peripheral (eg, a bltouch port) then one can add a \"commented out\" config section for the given device. Ne add meg a pressure_advance \u00e9rt\u00e9ket egy p\u00e9ldakonfigur\u00e1ci\u00f3ban, mivel ez az \u00e9rt\u00e9k a sz\u00e1lra, nem pedig a nyomtat\u00f3 hardver\u00e9re jellemz\u0151. Hasonl\u00f3k\u00e9ppen ne adj meg max_extrude_only_velocity \u00e9s max_extrude_only_accel be\u00e1ll\u00edt\u00e1sokat. Ne adj meg olyan konfigur\u00e1ci\u00f3s r\u00e9szt, amely \u00e1llom\u00e1s el\u00e9r\u00e9si \u00fatvonalat vagy \u00e1llom\u00e1shardvert tartalmaz. P\u00e9ld\u00e1ul ne adj meg [virtual_sdcard] \u00e9s [temperature_host] konfigur\u00e1ci\u00f3s szakaszokat. Csak olyan makr\u00f3kat defini\u00e1ljon, amelyek az adott nyomtat\u00f3ra jellemz\u0151 funkci\u00f3kat haszn\u00e1lj\u00e1k, vagy olyan g-k\u00f3dokat defini\u00e1ljon, amelyeket az adott nyomtat\u00f3hoz konfigur\u00e1lt szeletel\u0151k \u00e1ltal\u00e1ban kiadnak. Where possible, it is best to use the same wording, phrasing, indentation, and section ordering as the existing config files. The top of each config file should list the type of micro-controller the user should select during \"make menuconfig\". It should also have a reference to \"docs/Config_Reference.md\". Ne m\u00e1sold be a mez\u0151 dokument\u00e1ci\u00f3j\u00e1t a p\u00e9ldakonfigur\u00e1ci\u00f3s f\u00e1jlokba. (Ez karbantart\u00e1si terhet jelent, mivel a dokument\u00e1ci\u00f3 friss\u00edt\u00e9se sok helyen v\u00e1ltoztat\u00e1st ig\u00e9nyelne.) A p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jlok nem tartalmazhatnak \"SAVE_CONFIG\" r\u00e9szt. Ha sz\u00fcks\u00e9ges, m\u00e1sold \u00e1t a SAVE_CONFIG szakaszb\u00f3l a megfelel\u0151 mez\u0151ket a f\u0151 konfigur\u00e1ci\u00f3s ter\u00fclet megfelel\u0151 szakasz\u00e1ba. Haszn\u00e1ld a field: value szintaxist a field=value helyett. Extruder rotation_distance hozz\u00e1ad\u00e1sakor c\u00e9lszer\u0171 megadni a gear_ratio \u00e9rt\u00e9ket, ha az extruder fogasker\u00e9kkel rendelkezik. A p\u00e9ldakonfigur\u00e1ci\u00f3kban szerepl\u0151 rotation_distance \u00e9rt\u00e9kt\u0151l azt v\u00e1rjuk, hogy korrel\u00e1ljon az extruderben l\u00e9v\u0151 fogasker\u00e9k ker\u00fclet\u00e9vel. Ez \u00e1ltal\u00e1ban 20 \u00e9s 35 mm k\u00f6z\u00f6tti tartom\u00e1nyban van. A gear_ratio megad\u00e1sakor el\u0151ny\u00f6sebb a mechanizmuson l\u00e9v\u0151 t\u00e9nyleges fogaskerekek fogsz\u00e1m\u00e1nak megad\u00e1sa (pl. ink\u00e1bb gear_ratio: 80:20 , mint gear_ratio: 4:1 ). Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a forgat\u00e1si t\u00e1vols\u00e1g dokumentumot . Ker\u00fclje az alap\u00e9rtelmezett \u00e9rt\u00e9kre be\u00e1ll\u00edtott mez\u0151\u00e9rt\u00e9kek meghat\u00e1roz\u00e1s\u00e1t. P\u00e9ld\u00e1ul nem szabad megadni min_extrude_temp: 170 , mivel ez m\u00e1r az alap\u00e9rtelmezett \u00e9rt\u00e9k. Ahol lehets\u00e9ges, a sorok sz\u00e1ma nem haladhatja meg a 80 oszlopot. Ker\u00fclje el az attrib\u00faci\u00f3s vagy rev\u00edzi\u00f3s \u00fczenetek hozz\u00e1ad\u00e1s\u00e1t a konfigur\u00e1ci\u00f3s f\u00e1jlokhoz. (P\u00e9ld\u00e1ul ker\u00fclje az olyan sorok hozz\u00e1ad\u00e1s\u00e1t, mint a \"this file was created by ...\"). Helyezze el az attrib\u00faci\u00f3t \u00e9s a v\u00e1ltoztat\u00e1si el\u0151zm\u00e9nyeket a git commit \u00fczenetben. Ne haszn\u00e1lj semmilyen elavult funkci\u00f3t a p\u00e9ldakonfigur\u00e1ci\u00f3s f\u00e1jlban. Ne tiltson le egy alap\u00e9rtelmezett biztons\u00e1gi rendszert egy p\u00e9ldakonfig-f\u00e1jlban. P\u00e9ld\u00e1ul egy konfigur\u00e1ci\u00f3 nem adhat meg egy egy\u00e9ni max_extrude_cross_section \u00e9rt\u00e9ket. Ne enged\u00e9lyezd a hibakeres\u00e9si funkci\u00f3kat. P\u00e9ld\u00e1ul ne legyen force_move config szakasz. A Klipper \u00e1ltal t\u00e1mogatott \u00f6sszes ismert k\u00e1rtya az alap\u00e9rtelmezett 250000-es soros adat\u00e1tvitelt tudja haszn\u00e1lni. Ne javasoljon elt\u00e9r\u0151 adat\u00e1tvitel be\u00e1ll\u00edt\u00e1s\u00e1t egy p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jlban. A p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jlok elk\u00fcld\u00e9se egy github \"pull request\" l\u00e9trehoz\u00e1s\u00e1val t\u00f6rt\u00e9nik. K\u00e9rj\u00fck, k\u00f6vesse a k\u00f6zrem\u0171k\u00f6d\u0151 dokumentum utas\u00edt\u00e1sait is.","title":"Ir\u00e1nyelvek"},{"location":"Exclude_Object.html","text":"Objektumok kiz\u00e1r\u00e1sa \u00b6 The [exclude_object] module allows Klipper to exclude objects while a print is in progress. To enable this feature include an exclude_object config section (also see the command reference and sample-macros.cfg file for a Marlin/RepRapFirmware compatible M486 G-Code macro.) M\u00e1s 3D nyomtat\u00f3k firmware opci\u00f3it\u00f3l elt\u00e9r\u0151en a Klippert futtat\u00f3 nyomtat\u00f3 komponenscsomagot haszn\u00e1l, \u00e9s a felhaszn\u00e1l\u00f3k sz\u00e1mos lehet\u0151s\u00e9g k\u00f6z\u00fcl v\u00e1laszthatnak. Ez\u00e9rt az egys\u00e9ges felhaszn\u00e1l\u00f3i \u00e9lm\u00e9ny biztos\u00edt\u00e1sa \u00e9rdek\u00e9ben az [exclude_object] modul egyfajta szerz\u0151d\u00e9st vagy API-t hoz l\u00e9tre. A szerz\u0151d\u00e9s tartalmazza a gcode f\u00e1jl tartalm\u00e1t, a modul bels\u0151 \u00e1llapot\u00e1nak vez\u00e9rl\u00e9s\u00e9t, \u00e9s azt, hogy ez az \u00e1llapot hogyan ker\u00fcl a kliensek rendelkez\u00e9sre bocs\u00e1t\u00e1sra. Munkafolyamat \u00e1ttekint\u00e9se \u00b6 Egy tipikus munkafolyamat egy f\u00e1jl nyomtat\u00e1s\u00e1hoz \u00edgy n\u00e9zhet ki: A szeletel\u00e9s befejez\u0151dik, \u00e9s a f\u00e1jl felt\u00f6lt\u00e9sre ker\u00fcl nyomtat\u00e1sra. A felt\u00f6lt\u00e9s sor\u00e1n a f\u00e1jl feldolgoz\u00e1sa megt\u00f6rt\u00e9nik, \u00e9s [exclude_object] jel\u00f6l\u00e9sek ker\u00fclnek a f\u00e1jlhoz. A szeletel\u0151ket \u00fagy is be lehet \u00e1ll\u00edtani, hogy az objektumkiz\u00e1r\u00f3 jel\u00f6l\u00e9seket nat\u00edvan vagy saj\u00e1t el\u0151feldolgoz\u00e1si l\u00e9p\u00e9sben k\u00e9sz\u00edts\u00e9k el. A nyomtat\u00e1s megkezd\u00e9sekor a Klipper vissza\u00e1ll\u00edtja az [exclude_object] st\u00e1tuszt . Amikor a Klipper feldolgozza az EXCLUDE_OBJECT_DEFINE blokkot, friss\u00edti a st\u00e1tuszt az ismert objektumokkal, \u00e9s tov\u00e1bb\u00edtja azt az \u00fcgyfeleknek. Az \u00fcgyf\u00e9l felhaszn\u00e1lhatja ezeket az inform\u00e1ci\u00f3kat arra, hogy egy felhaszn\u00e1l\u00f3i fel\u00fcletet jelen\u00edtsen meg a felhaszn\u00e1l\u00f3nak, hogy nyomon k\u00f6vethesse az el\u0151rehalad\u00e1st. A Klipper friss\u00edti az \u00e1llapotot, hogy tartalmazza az aktu\u00e1lisan nyomtatott objektumot, amelyet az \u00fcgyf\u00e9l megjelen\u00edt\u00e9si c\u00e9lokra haszn\u00e1lhat. Ha a felhaszn\u00e1l\u00f3 egy objektum t\u00f6rl\u00e9s\u00e9t k\u00e9ri, a kliens egy EXCLUDE_OBJECT NAME=<name> parancsot ad a Klippernek. Amikor a Klipper feldolgozza a parancsot, hozz\u00e1adja az objektumot a kiz\u00e1rt objektumok list\u00e1j\u00e1hoz, \u00e9s friss\u00edti \u00e1llapot\u00e1t az \u00fcgyf\u00e9l fel\u00e9. Az \u00fcgyf\u00e9l megkapja a Klipper friss\u00edtett \u00e1llapot\u00e1t, \u00e9s ezt az inform\u00e1ci\u00f3t felhaszn\u00e1lhatja az objektum \u00e1llapot\u00e1nak megjelen\u00edt\u00e9s\u00e9hez a felhaszn\u00e1l\u00f3i fel\u00fcleten. A nyomtat\u00e1s befejez\u00e9sekor az [exclude_object] \u00e1llapot tov\u00e1bbra is el\u00e9rhet\u0151 marad, am\u00edg egy m\u00e1sik m\u0171velet vissza nem \u00e1ll\u00edtja. A GCode f\u00e1jl \u00b6 Az objektumok kiz\u00e1r\u00e1s\u00e1hoz sz\u00fcks\u00e9ges speci\u00e1lis G-k\u00f3d feldolgoz\u00e1s nem illeszkedik a Klipper alapvet\u0151 tervez\u00e9si c\u00e9ljaihoz. Ez\u00e9rt ez a modul megk\u00f6veteli a f\u00e1jl feldolgoz\u00e1s\u00e1t, miel\u0151tt a Klippernek nyomtat\u00e1sra elk\u00fcldi. A f\u00e1jl Klipper sz\u00e1m\u00e1ra t\u00f6rt\u00e9n\u0151 el\u0151k\u00e9sz\u00edt\u00e9s\u00e9re k\u00e9t lehet\u0151s\u00e9g egy ut\u00f3feldolgoz\u00f3 szkript haszn\u00e1lata a szeletel\u0151ben, vagy a f\u00e1jl felt\u00f6lt\u00e9skor t\u00f6rt\u00e9n\u0151 feldolgoz\u00e1sa a middleware seg\u00edts\u00e9g\u00e9vel. Egy referencia ut\u00f3feldolgoz\u00f3 szkript el\u00e9rhet\u0151 futtathat\u00f3 \u00e9s python k\u00f6nyvt\u00e1rk\u00e9nt is, l\u00e1sd az objektum el\u0151feldolgoz\u00f3 t\u00f6rl\u00e9se . Objektum meghat\u00e1roz\u00e1sok \u00b6 Az EXCLUDE_OBJECT_DEFINE parancsot arra haszn\u00e1ljuk, hogy a G-k\u00f3d f\u00e1jlban l\u00e9v\u0151 minden egyes objektumr\u00f3l \u00f6sszefoglal\u00f3t adjunk a nyomtat\u00e1shoz. A f\u00e1jlban l\u00e9v\u0151 objektumok \u00f6sszefoglal\u00f3j\u00e1t adja meg. Az objektumokat nem kell defini\u00e1lni ahhoz, hogy m\u00e1s parancsok hivatkozhassanak r\u00e1juk. Ennek a parancsnak az els\u0151dleges c\u00e9lja, hogy inform\u00e1ci\u00f3t szolg\u00e1ltasson a felhaszn\u00e1l\u00f3i fel\u00fcletnek an\u00e9lk\u00fcl, hogy a teljes G-k\u00f3d f\u00e1jlt elemeznie kellene. Az objektumdefin\u00edci\u00f3kat elnevezik, hogy a felhaszn\u00e1l\u00f3k k\u00f6nnyen kiv\u00e1laszthass\u00e1k a kiz\u00e1rand\u00f3 objektumot, \u00e9s tov\u00e1bbi metaadatokat is megadhatnak a grafikus t\u00f6rl\u00e9smegjelen\u00edt\u00e9shez. A jelenleg defini\u00e1lt metaadatok k\u00f6z\u00e9 tartozik egy CENTER X,Y koordin\u00e1ta, valamint egy POLYGON X,Y pontok list\u00e1ja, amely az objektum minim\u00e1lis k\u00f6rvonal\u00e1t \u00e1br\u00e1zolja. Ez lehet egy egyszer\u0171 hat\u00e1rol\u00f3 doboz, vagy egy bonyolult burkolat a nyomtatott objektumok r\u00e9szletesebb megjelen\u00edt\u00e9s\u00e9hez. K\u00fcl\u00f6n\u00f6sen akkor, ha a G-k\u00f3d f\u00e1jlok t\u00f6bb, egym\u00e1st \u00e1tfed\u0151 hat\u00e1rol\u00f3 r\u00e9gi\u00f3kkal rendelkez\u0151 alkatr\u00e9szt tartalmaznak, a k\u00f6z\u00e9ppontok vizu\u00e1lisan nehezen megk\u00fcl\u00f6nb\u00f6ztethet\u0151k. POLYGONS pontokb\u00f3l \u00e1ll\u00f3 json-kompatibilis t\u00f6mbnek kell lennie [X,Y] sz\u00f3k\u00f6z\u00f6k n\u00e9lk\u00fcl. A tov\u00e1bbi param\u00e9terek karakterl\u00e1ncokk\u00e9nt ker\u00fclnek elment\u00e9sre az objektumdefin\u00edci\u00f3ban, \u00e9s \u00e1llapotfriss\u00edt\u00e9sekben lesznek megadva. EXCLUDE_OBJECT_DEFINE NAME=calibration_pyramid CENTER=50,50 POLYGON=[[40,40],[50,60],[60,40]] All available G-Code commands are documented in the G-Code Reference \u00c1llapotinform\u00e1ci\u00f3 \u00b6 The state of this module is provided to clients by the exclude_object status . Az \u00e1llapot vissza\u00e1ll, amikor: A Klipper firmware \u00fajraindul. A [virtual_sdcard] vissza\u00e1ll\u00edt\u00e1sa megt\u00f6rt\u00e9nt. Figyelemre m\u00e9lt\u00f3, hogy ezt a Klipper a nyomtat\u00e1s kezdet\u00e9n vissza\u00e1ll\u00edtja. Amikor egy EXCLUDE_OBJECT_DEFINE RESET=1 parancsot adunk ki. A meghat\u00e1rozott objektumok list\u00e1ja az exclude_object.objects \u00e1llapotmez\u0151ben jelenik meg. Egy j\u00f3l defini\u00e1lt G-k\u00f3d f\u00e1jlban ez a f\u00e1jl elej\u00e9n tal\u00e1lhat\u00f3 EXCLUDE_OBJECT_DEFINE parancsokkal t\u00f6rt\u00e9nik. Ez biztos\u00edtja a kliensek sz\u00e1m\u00e1ra az objektumok nev\u00e9t \u00e9s koordin\u00e1t\u00e1it, \u00edgy a felhaszn\u00e1l\u00f3i fel\u00fclet k\u00edv\u00e1ns\u00e1g szerint grafikusan is megjelen\u00edtheti az objektumokat. A nyomtat\u00e1s el\u0151rehaladt\u00e1val az exclude_object.current_object \u00e1llapotmez\u0151 friss\u00fcl, ahogy a Klipper feldolgozza az EXCLUDE_OBJECT_START \u00e9s EXCLUDE_OBJECT_END parancsokat. A current_object mez\u0151 akkor is be lesz \u00e1ll\u00edtva, ha az objektumot kiz\u00e1rt\u00e1k. Az EXCLUDE_OBJECT_START mez\u0151vel jel\u00f6lt nem defini\u00e1lt objektumok hozz\u00e1 lesznek adva az ismert objektumokhoz, hogy seg\u00edts\u00e9k a felhaszn\u00e1l\u00f3i fel\u00fcletre val\u00f3 utal\u00e1sukat, minden tov\u00e1bbi metaadat n\u00e9lk\u00fcl. Az EXCLUDE_OBJECT parancsok kiad\u00e1sakor a kiz\u00e1rt objektumok list\u00e1j\u00e1t az exclude_object.excluded_objects t\u00f6mb tartalmazza. Mivel a Klipper el\u0151re tekint, hogy feldolgozza a k\u00f6zelg\u0151 G-k\u00f3dot, a parancs kiad\u00e1sa \u00e9s az \u00e1llapot friss\u00edt\u00e9se k\u00f6z\u00f6tt k\u00e9s\u00e9s lehet.","title":"Objektumok kiz\u00e1r\u00e1sa"},{"location":"Exclude_Object.html#objektumok-kizarasa","text":"The [exclude_object] module allows Klipper to exclude objects while a print is in progress. To enable this feature include an exclude_object config section (also see the command reference and sample-macros.cfg file for a Marlin/RepRapFirmware compatible M486 G-Code macro.) M\u00e1s 3D nyomtat\u00f3k firmware opci\u00f3it\u00f3l elt\u00e9r\u0151en a Klippert futtat\u00f3 nyomtat\u00f3 komponenscsomagot haszn\u00e1l, \u00e9s a felhaszn\u00e1l\u00f3k sz\u00e1mos lehet\u0151s\u00e9g k\u00f6z\u00fcl v\u00e1laszthatnak. Ez\u00e9rt az egys\u00e9ges felhaszn\u00e1l\u00f3i \u00e9lm\u00e9ny biztos\u00edt\u00e1sa \u00e9rdek\u00e9ben az [exclude_object] modul egyfajta szerz\u0151d\u00e9st vagy API-t hoz l\u00e9tre. A szerz\u0151d\u00e9s tartalmazza a gcode f\u00e1jl tartalm\u00e1t, a modul bels\u0151 \u00e1llapot\u00e1nak vez\u00e9rl\u00e9s\u00e9t, \u00e9s azt, hogy ez az \u00e1llapot hogyan ker\u00fcl a kliensek rendelkez\u00e9sre bocs\u00e1t\u00e1sra.","title":"Objektumok kiz\u00e1r\u00e1sa"},{"location":"Exclude_Object.html#munkafolyamat-attekintese","text":"Egy tipikus munkafolyamat egy f\u00e1jl nyomtat\u00e1s\u00e1hoz \u00edgy n\u00e9zhet ki: A szeletel\u00e9s befejez\u0151dik, \u00e9s a f\u00e1jl felt\u00f6lt\u00e9sre ker\u00fcl nyomtat\u00e1sra. A felt\u00f6lt\u00e9s sor\u00e1n a f\u00e1jl feldolgoz\u00e1sa megt\u00f6rt\u00e9nik, \u00e9s [exclude_object] jel\u00f6l\u00e9sek ker\u00fclnek a f\u00e1jlhoz. A szeletel\u0151ket \u00fagy is be lehet \u00e1ll\u00edtani, hogy az objektumkiz\u00e1r\u00f3 jel\u00f6l\u00e9seket nat\u00edvan vagy saj\u00e1t el\u0151feldolgoz\u00e1si l\u00e9p\u00e9sben k\u00e9sz\u00edts\u00e9k el. A nyomtat\u00e1s megkezd\u00e9sekor a Klipper vissza\u00e1ll\u00edtja az [exclude_object] st\u00e1tuszt . Amikor a Klipper feldolgozza az EXCLUDE_OBJECT_DEFINE blokkot, friss\u00edti a st\u00e1tuszt az ismert objektumokkal, \u00e9s tov\u00e1bb\u00edtja azt az \u00fcgyfeleknek. Az \u00fcgyf\u00e9l felhaszn\u00e1lhatja ezeket az inform\u00e1ci\u00f3kat arra, hogy egy felhaszn\u00e1l\u00f3i fel\u00fcletet jelen\u00edtsen meg a felhaszn\u00e1l\u00f3nak, hogy nyomon k\u00f6vethesse az el\u0151rehalad\u00e1st. A Klipper friss\u00edti az \u00e1llapotot, hogy tartalmazza az aktu\u00e1lisan nyomtatott objektumot, amelyet az \u00fcgyf\u00e9l megjelen\u00edt\u00e9si c\u00e9lokra haszn\u00e1lhat. Ha a felhaszn\u00e1l\u00f3 egy objektum t\u00f6rl\u00e9s\u00e9t k\u00e9ri, a kliens egy EXCLUDE_OBJECT NAME=<name> parancsot ad a Klippernek. Amikor a Klipper feldolgozza a parancsot, hozz\u00e1adja az objektumot a kiz\u00e1rt objektumok list\u00e1j\u00e1hoz, \u00e9s friss\u00edti \u00e1llapot\u00e1t az \u00fcgyf\u00e9l fel\u00e9. Az \u00fcgyf\u00e9l megkapja a Klipper friss\u00edtett \u00e1llapot\u00e1t, \u00e9s ezt az inform\u00e1ci\u00f3t felhaszn\u00e1lhatja az objektum \u00e1llapot\u00e1nak megjelen\u00edt\u00e9s\u00e9hez a felhaszn\u00e1l\u00f3i fel\u00fcleten. A nyomtat\u00e1s befejez\u00e9sekor az [exclude_object] \u00e1llapot tov\u00e1bbra is el\u00e9rhet\u0151 marad, am\u00edg egy m\u00e1sik m\u0171velet vissza nem \u00e1ll\u00edtja.","title":"Munkafolyamat \u00e1ttekint\u00e9se"},{"location":"Exclude_Object.html#a-gcode-fajl","text":"Az objektumok kiz\u00e1r\u00e1s\u00e1hoz sz\u00fcks\u00e9ges speci\u00e1lis G-k\u00f3d feldolgoz\u00e1s nem illeszkedik a Klipper alapvet\u0151 tervez\u00e9si c\u00e9ljaihoz. Ez\u00e9rt ez a modul megk\u00f6veteli a f\u00e1jl feldolgoz\u00e1s\u00e1t, miel\u0151tt a Klippernek nyomtat\u00e1sra elk\u00fcldi. A f\u00e1jl Klipper sz\u00e1m\u00e1ra t\u00f6rt\u00e9n\u0151 el\u0151k\u00e9sz\u00edt\u00e9s\u00e9re k\u00e9t lehet\u0151s\u00e9g egy ut\u00f3feldolgoz\u00f3 szkript haszn\u00e1lata a szeletel\u0151ben, vagy a f\u00e1jl felt\u00f6lt\u00e9skor t\u00f6rt\u00e9n\u0151 feldolgoz\u00e1sa a middleware seg\u00edts\u00e9g\u00e9vel. Egy referencia ut\u00f3feldolgoz\u00f3 szkript el\u00e9rhet\u0151 futtathat\u00f3 \u00e9s python k\u00f6nyvt\u00e1rk\u00e9nt is, l\u00e1sd az objektum el\u0151feldolgoz\u00f3 t\u00f6rl\u00e9se .","title":"A GCode f\u00e1jl"},{"location":"Exclude_Object.html#objektum-meghatarozasok","text":"Az EXCLUDE_OBJECT_DEFINE parancsot arra haszn\u00e1ljuk, hogy a G-k\u00f3d f\u00e1jlban l\u00e9v\u0151 minden egyes objektumr\u00f3l \u00f6sszefoglal\u00f3t adjunk a nyomtat\u00e1shoz. A f\u00e1jlban l\u00e9v\u0151 objektumok \u00f6sszefoglal\u00f3j\u00e1t adja meg. Az objektumokat nem kell defini\u00e1lni ahhoz, hogy m\u00e1s parancsok hivatkozhassanak r\u00e1juk. Ennek a parancsnak az els\u0151dleges c\u00e9lja, hogy inform\u00e1ci\u00f3t szolg\u00e1ltasson a felhaszn\u00e1l\u00f3i fel\u00fcletnek an\u00e9lk\u00fcl, hogy a teljes G-k\u00f3d f\u00e1jlt elemeznie kellene. Az objektumdefin\u00edci\u00f3kat elnevezik, hogy a felhaszn\u00e1l\u00f3k k\u00f6nnyen kiv\u00e1laszthass\u00e1k a kiz\u00e1rand\u00f3 objektumot, \u00e9s tov\u00e1bbi metaadatokat is megadhatnak a grafikus t\u00f6rl\u00e9smegjelen\u00edt\u00e9shez. A jelenleg defini\u00e1lt metaadatok k\u00f6z\u00e9 tartozik egy CENTER X,Y koordin\u00e1ta, valamint egy POLYGON X,Y pontok list\u00e1ja, amely az objektum minim\u00e1lis k\u00f6rvonal\u00e1t \u00e1br\u00e1zolja. Ez lehet egy egyszer\u0171 hat\u00e1rol\u00f3 doboz, vagy egy bonyolult burkolat a nyomtatott objektumok r\u00e9szletesebb megjelen\u00edt\u00e9s\u00e9hez. K\u00fcl\u00f6n\u00f6sen akkor, ha a G-k\u00f3d f\u00e1jlok t\u00f6bb, egym\u00e1st \u00e1tfed\u0151 hat\u00e1rol\u00f3 r\u00e9gi\u00f3kkal rendelkez\u0151 alkatr\u00e9szt tartalmaznak, a k\u00f6z\u00e9ppontok vizu\u00e1lisan nehezen megk\u00fcl\u00f6nb\u00f6ztethet\u0151k. POLYGONS pontokb\u00f3l \u00e1ll\u00f3 json-kompatibilis t\u00f6mbnek kell lennie [X,Y] sz\u00f3k\u00f6z\u00f6k n\u00e9lk\u00fcl. A tov\u00e1bbi param\u00e9terek karakterl\u00e1ncokk\u00e9nt ker\u00fclnek elment\u00e9sre az objektumdefin\u00edci\u00f3ban, \u00e9s \u00e1llapotfriss\u00edt\u00e9sekben lesznek megadva. EXCLUDE_OBJECT_DEFINE NAME=calibration_pyramid CENTER=50,50 POLYGON=[[40,40],[50,60],[60,40]] All available G-Code commands are documented in the G-Code Reference","title":"Objektum meghat\u00e1roz\u00e1sok"},{"location":"Exclude_Object.html#allapotinformacio","text":"The state of this module is provided to clients by the exclude_object status . Az \u00e1llapot vissza\u00e1ll, amikor: A Klipper firmware \u00fajraindul. A [virtual_sdcard] vissza\u00e1ll\u00edt\u00e1sa megt\u00f6rt\u00e9nt. Figyelemre m\u00e9lt\u00f3, hogy ezt a Klipper a nyomtat\u00e1s kezdet\u00e9n vissza\u00e1ll\u00edtja. Amikor egy EXCLUDE_OBJECT_DEFINE RESET=1 parancsot adunk ki. A meghat\u00e1rozott objektumok list\u00e1ja az exclude_object.objects \u00e1llapotmez\u0151ben jelenik meg. Egy j\u00f3l defini\u00e1lt G-k\u00f3d f\u00e1jlban ez a f\u00e1jl elej\u00e9n tal\u00e1lhat\u00f3 EXCLUDE_OBJECT_DEFINE parancsokkal t\u00f6rt\u00e9nik. Ez biztos\u00edtja a kliensek sz\u00e1m\u00e1ra az objektumok nev\u00e9t \u00e9s koordin\u00e1t\u00e1it, \u00edgy a felhaszn\u00e1l\u00f3i fel\u00fclet k\u00edv\u00e1ns\u00e1g szerint grafikusan is megjelen\u00edtheti az objektumokat. A nyomtat\u00e1s el\u0151rehaladt\u00e1val az exclude_object.current_object \u00e1llapotmez\u0151 friss\u00fcl, ahogy a Klipper feldolgozza az EXCLUDE_OBJECT_START \u00e9s EXCLUDE_OBJECT_END parancsokat. A current_object mez\u0151 akkor is be lesz \u00e1ll\u00edtva, ha az objektumot kiz\u00e1rt\u00e1k. Az EXCLUDE_OBJECT_START mez\u0151vel jel\u00f6lt nem defini\u00e1lt objektumok hozz\u00e1 lesznek adva az ismert objektumokhoz, hogy seg\u00edts\u00e9k a felhaszn\u00e1l\u00f3i fel\u00fcletre val\u00f3 utal\u00e1sukat, minden tov\u00e1bbi metaadat n\u00e9lk\u00fcl. Az EXCLUDE_OBJECT parancsok kiad\u00e1sakor a kiz\u00e1rt objektumok list\u00e1j\u00e1t az exclude_object.excluded_objects t\u00f6mb tartalmazza. Mivel a Klipper el\u0151re tekint, hogy feldolgozza a k\u00f6zelg\u0151 G-k\u00f3dot, a parancs kiad\u00e1sa \u00e9s az \u00e1llapot friss\u00edt\u00e9se k\u00f6z\u00f6tt k\u00e9s\u00e9s lehet.","title":"\u00c1llapotinform\u00e1ci\u00f3"},{"location":"FAQ.html","text":"Gyakran ism\u00e9telt k\u00e9rd\u00e9sek \u00b6 Hogyan adom\u00e1nyozhatok a projektnek? \u00b6 K\u00f6sz\u00f6nj\u00fck a t\u00e1mogat\u00e1st. A Szponzorok oldalon tal\u00e1lsz inform\u00e1ci\u00f3kat. Hogyan sz\u00e1m\u00edthatom ki a rotation_distance konfigur\u00e1ci\u00f3s param\u00e9tert? \u00b6 L\u00e1sd a forgat\u00e1si t\u00e1vols\u00e1g dokumentumot . Hol van a soros portom? \u00b6 Az USB soros port megtal\u00e1l\u00e1s\u00e1nak \u00e1ltal\u00e1nos m\u00f3dja az ls /dev/serial/by-id/* futtat\u00e1sa a gazdasz\u00e1m\u00edt\u00f3g\u00e9p SSH termin\u00e1lj\u00e1r\u00f3l. Val\u00f3sz\u00edn\u0171leg a k\u00f6vetkez\u0151h\u00f6z hasonl\u00f3 kimenetet fog eredm\u00e9nyezni: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 A fenti parancsban tal\u00e1lhat\u00f3 n\u00e9v stabil, \u00e9s haszn\u00e1lhat\u00f3 a konfigur\u00e1ci\u00f3s f\u00e1jlban \u00e9s a mikrokontroller k\u00f3dj\u00e1nak \u00e9get\u00e9se sor\u00e1n. Egy \u00e9get\u00e9s parancs p\u00e9ld\u00e1ul \u00edgy n\u00e9zhet ki: sudo service klipper stop make flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 sudo service klipper start \u00e9s a friss\u00edtett konfigur\u00e1ci\u00f3 \u00edgy n\u00e9zhet ki: [mcu] serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 \u00dcgyelj arra, hogy a fent lefuttatott \"ls\" parancsb\u00f3l m\u00e1sold be a nevet, mivel a n\u00e9v minden nyomtat\u00f3n\u00e1l m\u00e1s lesz. Ha t\u00f6bb mikrovez\u00e9rl\u0151t haszn\u00e1lsz, \u00e9s ezek nem rendelkeznek egyedi azonos\u00edt\u00f3val (ez gyakori a CH340 USB-chippel ell\u00e1tott lapokon), akkor k\u00f6vesd a fenti utas\u00edt\u00e1sokat a ls /dev/serial/by-path/* parancs haszn\u00e1lat\u00e1val. A mikrokontroller \u00fajraind\u00edt\u00e1sakor az eszk\u00f6z /dev/ttyUSB1-re v\u00e1lt \u00b6 K\u00f6vesse a \" Hol van a soros portom? \" szakaszban tal\u00e1lhat\u00f3 utas\u00edt\u00e1sokat, hogy ezt megakad\u00e1lyozza. A \"make flash\" parancs nem m\u0171k\u00f6dik \u00b6 A k\u00f3d megpr\u00f3b\u00e1lja az eszk\u00f6zt az egyes platformok eset\u00e9ben legelterjedtebb m\u00f3dszerrel \u00e9getni. Sajnos az \u00e9get\u00e9si m\u00f3dszerek k\u00f6z\u00f6tt nagy elt\u00e9r\u00e9sek vannak, \u00edgy a \"make flash\" parancs nem biztos, hogy minden lapon m\u0171k\u00f6dik. Ha id\u0151szakos hiba van, vagy szabv\u00e1nyos be\u00e1ll\u00edt\u00e1sod van, akkor ellen\u0151rizd, hogy a Klipper nem fut-e \u00e9get\u00e9s k\u00f6zben (sudo service klipper stop), gy\u0151z\u0151dj meg r\u00f3la, hogy az OctoPrint nem pr\u00f3b\u00e1l k\u00f6zvetlen\u00fcl az eszk\u00f6zh\u00f6z csatlakozni (nyisd meg a weblapon a Kapcsolat lapot, \u00e9s kattints a Kapcsolat megszak\u00edt\u00e1sa gombra, ha a soros port az eszk\u00f6zh\u00f6z van be\u00e1ll\u00edtva), \u00e9s gy\u0151z\u0151dj meg r\u00f3la, hogy a FLASH_DEVICE helyesen van be\u00e1ll\u00edtva a lapodhoz (l\u00e1sd a fenti k\u00e9rd\u00e9st ). Ha azonban a \"make flash\" egyszer\u0171en nem m\u0171k\u00f6dik az alaplapj\u00e1n, akkor manu\u00e1lisan kell \u00e9getnie. N\u00e9zze meg, hogy van-e a config k\u00f6nyvt\u00e1rban egy config f\u00e1jl, amely konkr\u00e9t utas\u00edt\u00e1sokat tartalmaz az eszk\u00f6z \u00e9get\u00e9s\u00e9re. Ellen\u0151rizd a k\u00e1rtya gy\u00e1rt\u00f3j\u00e1nak dokument\u00e1ci\u00f3j\u00e1t is, hogy le\u00edrja-e, hogyan kell \u00e9getni az eszk\u00f6zt. V\u00e9g\u00fcl, lehets\u00e9ges lehet, hogy manu\u00e1lisan \u00e9gess\u00fck az eszk\u00f6zt olyan eszk\u00f6z\u00f6kkel, mint az \"avrdude\" vagy a \"bossac\" - tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a bootloader dokumentumot . Hogyan v\u00e1ltoztathatom meg a soros port \u00e1tviteli sebess\u00e9g\u00e9t? \u00b6 A Klipper aj\u00e1nlott \u00e1tviteli sebess\u00e9ge 250000. Ez az \u00e1tviteli r\u00e1ta j\u00f3l m\u0171k\u00f6dik minden olyan mikrokontroller k\u00e1rty\u00e1n, amelyet a Klipper t\u00e1mogat. Ha tal\u00e1lt egy online \u00fatmutat\u00f3t, amely m\u00e1s \u00e1tviteli sebess\u00e9get javasol, akkor hagyja figyelmen k\u00edv\u00fcl az \u00fatmutat\u00f3nak ezt a r\u00e9sz\u00e9t, \u00e9s folytasd az alap\u00e9rtelmezett 250000 \u00e9rt\u00e9kkel. Ha mindenk\u00e9ppen meg akarja v\u00e1ltoztatni az \u00e1tviteli sebess\u00e9get, akkor az \u00faj sebess\u00e9get a mikrokontrollerben kell be\u00e1ll\u00edtani (a make menuconfig alatt), \u00e9s a friss\u00edtett k\u00f3dot le kell ford\u00edtani \u00e9s be kell \u00e9getni a mikrokontrollerbe. A Klipper printer.cfg f\u00e1jlt is friss\u00edteni kell, hogy megfeleljen ennek az \u00e1tviteli sebess\u00e9gnek (l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st a r\u00e9szleteket). P\u00e9ld\u00e1ul: [mcu] baud: 250000 Az OctoPrint weboldalon felt\u00fcntetett \u00e1tviteli sebess\u00e9g nincs hat\u00e1ssal a Klipper mikrokontroller bels\u0151 \u00e1tviteli sebess\u00e9g\u00e9re. Klipper haszn\u00e1latakor az OctoPrint \u00e1tviteli sebess\u00e9g\u00e9t mindig 250000-re \u00e1ll\u00edtsd be. A Klipper mikrovez\u00e9rl\u0151 \u00e1tviteli sebess\u00e9ge nem f\u00fcgg a mikrovez\u00e9rl\u0151 bootloader \u00e1tviteli sebess\u00e9g\u00e9t\u0151l. A bootloader dokumentum tov\u00e1bbi inform\u00e1ci\u00f3kat tartalmaz a bootloaderekkel kapcsolatban. Futtathatom a Klippert a Raspberry Pi 3-on k\u00edv\u00fcl m\u00e1son is? \u00b6 Az aj\u00e1nlott hardver egy Raspberry Pi 2, Raspberry Pi 3 vagy Raspberry Pi 4. A Klipper fut a Raspberry Pi 1-en \u00e9s a Raspberry Pi Zero-n, de ezek a lapok nem tartalmaznak elegend\u0151 feldolgoz\u00e1si teljes\u00edtm\u00e9nyt az OctoPrint j\u00f3 futtat\u00e1s\u00e1hoz. Gyakori, hogy ezeken a lassabb g\u00e9peken a nyomtat\u00e1s akadozik, amikor k\u00f6zvetlen\u00fcl az OctoPrintb\u0151l nyomtat. (El\u0151fordulhat, hogy a nyomtat\u00f3 gyorsabban mozog, mint ahogy az OctoPrint a mozg\u00e1sparancsokat el tudja k\u00fcldeni.) Ha mindenk\u00e9ppen ezek k\u00f6z\u00fcl a lassabb lapok k\u00f6z\u00fcl valamelyiken szeretne futni, fontolja meg a \"virtual_sdcard\" funkci\u00f3 haszn\u00e1lat\u00e1t nyomtat\u00e1skor (a r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st ). A Beaglebone-on val\u00f3 futtat\u00e1shoz l\u00e1sd a Beaglebone-specifikus telep\u00edt\u00e9si utas\u00edt\u00e1sokat . A Klipper m\u00e1s g\u00e9peken is futott. A Klipper gazdag\u00e9p szoftverhez csak Python sz\u00fcks\u00e9ges, amely Linux (vagy hasonl\u00f3) sz\u00e1m\u00edt\u00f3g\u00e9pen fut. Ha azonban m\u00e1s g\u00e9pen szeretn\u00e9 futtatni, akkor Linux adminisztr\u00e1tori ismeretekre lesz sz\u00fcks\u00e9ge az adott g\u00e9p rendszerk\u00f6vetelm\u00e9nyeinek telep\u00edt\u00e9s\u00e9hez. A sz\u00fcks\u00e9ges Linux-adminisztr\u00e1tori l\u00e9p\u00e9sekr\u0151l tov\u00e1bbi inform\u00e1ci\u00f3t az install-octopi.sh szkriptben tal\u00e1l. Ha a Klipper gazdag\u00e9p szoftvert egy low-end chipen szeretn\u00e9 futtatni, akkor vedd figyelembe, hogy legal\u00e1bb egy \"dupla pontoss\u00e1g\u00fa lebeg\u0151pontos\" hardverrel rendelkez\u0151 g\u00e9pre van sz\u00fcks\u00e9g. Ha a Klipper gazdag\u00e9p szoftvert egy megosztott \u00e1ltal\u00e1nos c\u00e9l\u00fa asztali vagy szerver oszt\u00e1ly\u00fa g\u00e9pen szeretn\u00e9 futtatni, akkor vedd figyelembe, hogy a Klippernek vannak bizonyos val\u00f3s idej\u0171 \u00fctemez\u00e9si k\u00f6vetelm\u00e9nyei. Ha a nyomtat\u00e1s sor\u00e1n a gazdasz\u00e1m\u00edt\u00f3g\u00e9p egyidej\u0171leg intenz\u00edv \u00e1ltal\u00e1nos c\u00e9l\u00fa sz\u00e1m\u00edt\u00e1si feladatot is v\u00e9gez (p\u00e9ld\u00e1ul merevlemez defragment\u00e1l\u00e1sa, 3D renderel\u00e9s, nagym\u00e9rt\u00e9k\u0171 swapol\u00e1s stb.), akkor a Klipper nyomtat\u00e1si hib\u00e1kat jelenthet. Megjegyz\u00e9s: Ha nem OctoPi-k\u00e9pet haszn\u00e1lsz, vedd figyelembe, hogy sz\u00e1mos Linux-disztrib\u00faci\u00f3 enged\u00e9lyez egy \"ModemManager\" (vagy hasonl\u00f3) csomagot, amely megzavarhatja a soros kommunik\u00e1ci\u00f3t. (Ami miatt a Klipper v\u00e9letlenszer\u0171nek t\u0171n\u0151 \"Elveszett a kommunik\u00e1ci\u00f3 az MCU-val\" hib\u00e1kat jelenthet.) Ha a Klippert ilyen disztrib\u00faci\u00f3ra telep\u00edti, akkor lehet, hogy le kell tiltania ezt a csomagot. Futtathatom a Klipper t\u00f6bb p\u00e9ld\u00e1ny\u00e1t ugyanazon a g\u00e9pen? \u00b6 Lehets\u00e9ges a Klipper gazdag\u00e9p szoftver t\u00f6bb p\u00e9ld\u00e1ny\u00e1nak futtat\u00e1sa, de ehhez Linux adminisztr\u00e1tori ismeretekre van sz\u00fcks\u00e9g. A Klipper telep\u00edt\u00e9si szkriptek v\u00e9g\u00fcl a k\u00f6vetkez\u0151 Unix parancs futtat\u00e1s\u00e1t eredm\u00e9nyezik: ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer.cfg -l /tmp/klippy.log A fenti parancs t\u00f6bb p\u00e9ld\u00e1nyban is futtathat\u00f3, amennyiben minden p\u00e9ld\u00e1nynak saj\u00e1t nyomtat\u00f3-konfigur\u00e1ci\u00f3s f\u00e1jlja, saj\u00e1t napl\u00f3f\u00e1jlja \u00e9s saj\u00e1t pszeudo-tty-je van. P\u00e9ld\u00e1ul: ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer2.cfg -l /tmp/klippy2.log -I /tmp/printer2 Ha ezt v\u00e1lasztja, akkor a sz\u00fcks\u00e9ges ind\u00edt\u00e1si, le\u00e1ll\u00edt\u00e1si \u00e9s telep\u00edt\u00e9si parancsf\u00e1jlokat (ha vannak ilyenek) kell v\u00e9grehajtania. Az install-octopi.sh szkript \u00e9s a klipper-start.sh szkript hasznos lehet p\u00e9ldak\u00e9nt. Musz\u00e1j az OctoPrintet haszn\u00e1lnom? \u00b6 A Klipper szoftver nem f\u00fcgg az OctoPrint-t\u0151l. Lehets\u00e9ges alternat\u00edv szoftvereket haszn\u00e1lni a Klipper parancsok k\u00fcld\u00e9s\u00e9re, de ehhez Linux adminisztr\u00e1tori ismeretekre van sz\u00fcks\u00e9g. A Klipper l\u00e9trehoz egy \"virtu\u00e1lis soros portot\" a \"/tmp/printer\" f\u00e1jlon kereszt\u00fcl, \u00e9s ezen kereszt\u00fcl emul\u00e1l egy klasszikus 3D nyomtat\u00f3 soros interf\u00e9szt. \u00c1ltal\u00e1noss\u00e1gban elmondhat\u00f3, hogy alternat\u00edv szoftverek is m\u0171k\u00f6dhetnek a Klipperrel, amennyiben konfigur\u00e1lhat\u00f3ak \u00fagy, hogy a \"/tmp/printer\" -t haszn\u00e1lj\u00e1k a nyomtat\u00f3 soros portjak\u00e9nt. Mi\u00e9rt nem tudom mozgatni a l\u00e9ptet\u0151motort a nyomtat\u00f3 kezd\u0151pont felv\u00e9tele el\u0151tt? \u00b6 A k\u00f3d ezt az\u00e9rt teszi, hogy cs\u00f6kkentse annak es\u00e9ly\u00e9t, hogy a fejet v\u00e9letlen\u00fcl a t\u00e1rgyasztalba vagy a falba \u00fctk\u00f6ztesse. Miut\u00e1n a nyomtat\u00f3 kezd\u0151ponthoz \u00e9rt, a szoftver megpr\u00f3b\u00e1lja ellen\u0151rizni, hogy minden egyes mozg\u00e1s a konfigur\u00e1ci\u00f3s f\u00e1jlban meghat\u00e1rozott position_min/max \u00e9rt\u00e9ken bel\u00fcl van-e. Ha a motorok ki vannak kapcsolva (M84 vagy M18 parancs seg\u00edts\u00e9g\u00e9vel), akkor a motorokat a mozg\u00e1s el\u0151tt \u00fajra be kell \u00e1ll\u00edtani. Ha a fejet az OctoPrint seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9n\u0151 nyomtat\u00e1s t\u00f6rl\u00e9se ut\u00e1n szeretn\u00e9 elmozd\u00edtani, fontolja meg az OctoPrint t\u00f6rl\u00e9si sorrendj\u00e9nek m\u00f3dos\u00edt\u00e1s\u00e1t, hogy ezt megtegye \u00d6n helyett. Ez az OctoPrintben a webb\u00f6ng\u00e9sz\u0151n kereszt\u00fcl konfigur\u00e1lhat\u00f3 a k\u00f6vetkez\u0151 men\u00fcpont alatt: Be\u00e1ll\u00edt\u00e1sok->GCODE szkriptek Ha a nyomtat\u00e1s befejez\u00e9se ut\u00e1n szeretn\u00e9 mozgatni a fejet, fontolja meg a k\u00edv\u00e1nt mozg\u00e1s hozz\u00e1ad\u00e1s\u00e1t a szeletel\u0151 \"custom g-code\" szakasz\u00e1hoz. Ha a nyomtat\u00f3nak sz\u00fcks\u00e9ge van tov\u00e1bbi mozgat\u00e1sra a kezd\u0151pont felv\u00e9teli folyamat r\u00e9szek\u00e9nt (vagy alapvet\u0151en nincs kezd\u0151pont felv\u00e9teli folyamat), akkor fontolja meg a safe_z_home vagy homing_override szakasz haszn\u00e1lat\u00e1t a konfigur\u00e1ci\u00f3s f\u00e1jlban. Ha diagnosztikai vagy hibakeres\u00e9si c\u00e9lokra kell mozgatni egy l\u00e9ptet\u0151motort, akkor fontolja meg egy force_move szakasz hozz\u00e1ad\u00e1s\u00e1t a konfigur\u00e1ci\u00f3s f\u00e1jlhoz. L\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st az ezen opci\u00f3kkal kapcsolatos tov\u00e1bbi r\u00e9szletek\u00e9rt. Mi\u00e9rt van a Z position_endstop 0,5-re \u00e1ll\u00edtva az alap\u00e9rtelmezett konfigur\u00e1ci\u00f3ban? \u00b6 A cartesian st\u00edlus\u00fa nyomtat\u00f3k eset\u00e9ben a Z position_endstop megadja, hogy a f\u00fav\u00f3ka milyen messze van a t\u00e1rgyasztalt\u00f3l, amikor a v\u00e9g\u00e1ll\u00e1s m\u0171k\u00f6d\u00e9sbe l\u00e9p. Ha lehets\u00e9ges, aj\u00e1nlott Z-max v\u00e9g\u00e1ll\u00e1st haszn\u00e1lni, \u00e9s a t\u00e1rgyasztalt\u00f3l t\u00e1volabb elhelyezni (mivel ez cs\u00f6kkenti a t\u00e1rgyasztal \u00fctk\u00f6z\u00e9s lehet\u0151s\u00e9g\u00e9t). Ha azonban a t\u00e1rgyasztal fel\u00e9 kell elindulni, akkor a v\u00e9g\u00e1ll\u00e1st \u00fagy kell be\u00e1ll\u00edtani, hogy akkor l\u00e9pjen m\u0171k\u00f6d\u00e9sbe, amikor a f\u00fav\u00f3ka m\u00e9g mindig kis t\u00e1vols\u00e1gra van a t\u00e1rgyasztalt\u00f3l. \u00cdgy a tengely homingol\u00e1sakor a f\u00fav\u00f3ka m\u00e9g azel\u0151tt meg\u00e1ll, hogy a f\u00fav\u00f3ka hozz\u00e1\u00e9rne a t\u00e1rgyasztalhoz. Tov\u00e1bbi inform\u00e1ci\u00f3\u00e9rt l\u00e1sd a t\u00e1rgyasztal szintez\u00e9s dokumentumot . \u00c1tkonvert\u00e1ltam a konfigur\u00e1ci\u00f3mat Marlinb\u00f3l, \u00e9s az X/Y tengelyek j\u00f3l m\u0171k\u00f6dnek, de a Z tengely kezd\u0151pont felv\u00e9telekor csak egy csikorg\u00f3 zajt hallok \u00b6 R\u00f6vid v\u00e1lasz: El\u0151sz\u00f6r is ellen\u0151rizd, hogy a konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9sek dokumentumban le\u00edrtak szerint ellen\u0151rizted-e a l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3j\u00e1t. Ha a probl\u00e9ma tov\u00e1bbra is fenn\u00e1ll, pr\u00f3b\u00e1ld meg cs\u00f6kkenteni a max_z_velocity \u00e9rt\u00e9ket a nyomtat\u00f3 konfigur\u00e1ci\u00f3j\u00e1ban. Hossz\u00fa v\u00e1lasz: A gyakorlatban a Marlin jellemz\u0151en csak k\u00f6r\u00fclbel\u00fcl 10000 l\u00e9p\u00e9s/m\u00e1sodperc sebess\u00e9ggel tud l\u00e9pni. Ha olyan sebess\u00e9ggel kell mozognia, amely nagyobb l\u00e9p\u00e9ssz\u00e1mot ig\u00e9nyel, akkor a Marlin \u00e1ltal\u00e1ban csak olyan gyorsan l\u00e9p, amilyen gyorsan csak tud. A Klipper sokkal nagyobb l\u00e9p\u00e9ssz\u00e1mot k\u00e9pes el\u00e9rni, de a l\u00e9ptet\u0151motornak nem biztos, hogy elegend\u0151 nyomat\u00e9ka van a nagyobb sebess\u00e9g\u0171 mozg\u00e1shoz. Teh\u00e1t egy nagy \u00e1tt\u00e9telsz\u00e1m\u00fa vagy nagy mikrol\u00e9p\u00e9ssz\u00e1m\u00fa Z tengely eset\u00e9ben a t\u00e9nylegesen el\u00e9rhet\u0151 max_z_sebess\u00e9g kisebb lehet, mint ami a Marlinban be van \u00e1ll\u00edtva. A TMC motorvez\u00e9rl\u0151 kikapcsol nyomtat\u00e1s k\u00f6zben \u00b6 Ha a TMC2208 (vagy TMC2224) motorvez\u00e9rl\u0151t \"standalone m\u00f3dban\" haszn\u00e1lod, akkor gy\u0151z\u0151dj meg r\u00f3la, hogy a Klipper leg\u00fajabb verzi\u00f3j\u00e1t haszn\u00e1ld. A TMC2208 \"stealthchop\" motorvez\u00e9rl\u0151 probl\u00e9m\u00e1j\u00e1nak megold\u00e1sa 2020 m\u00e1rcius k\u00f6zep\u00e9n ker\u00fclt hozz\u00e1 a Klipperhez. V\u00e9letlenszer\u0171 \"Elveszett a kommunik\u00e1ci\u00f3 az MCU-val\" hib\u00e1k \u00b6 Ezt \u00e1ltal\u00e1ban a gazdag\u00e9p \u00e9s a mikrokontroller k\u00f6z\u00f6tti USB-kapcsolat hardverhib\u00e1i okozz\u00e1k. Amit keresni kell: Haszn\u00e1lj j\u00f3 min\u0151s\u00e9g\u0171 USB-k\u00e1belt a gazdag\u00e9p \u00e9s a mikrokontroller k\u00f6z\u00f6tt. Gy\u0151z\u0151dj meg r\u00f3la, hogy a csatlakoz\u00f3k biztons\u00e1gosan csatlakoznak. Ha Raspberry Pi-t haszn\u00e1l, haszn\u00e1lj j\u00f3 min\u0151s\u00e9g\u0171 t\u00e1pegys\u00e9get a Raspberry Pi sz\u00e1m\u00e1ra, \u00e9s egy j\u00f3 min\u0151s\u00e9g\u0171 USB-k\u00e1bellel csatlakoztassa a t\u00e1pegys\u00e9get a Pihez. Ha az OctoPrint \"fesz\u00fclts\u00e9g alatt\" figyelmeztet\u00e9seket kap, az a t\u00e1pegys\u00e9ggel f\u00fcgg \u00f6ssze, \u00e9s ezt meg kell jav\u00edtani. Gy\u0151z\u0151dj meg r\u00f3la, hogy a nyomtat\u00f3 \u00e1ramell\u00e1t\u00e1sa nincs t\u00falterhelve. (A mikrovez\u00e9rl\u0151 USB-chip \u00e1ramell\u00e1t\u00e1s\u00e1nak ingadoz\u00e1sa a chip \u00fajraind\u00edt\u00e1s\u00e1t eredm\u00e9nyezheti.) Ellen\u0151rizd, hogy a l\u00e9ptet\u0151, f\u0171t\u0151 \u00e9s egy\u00e9b nyomtat\u00f3vezet\u00e9kek nem szakadtak vagy rong\u00e1l\u00f3dtak. (A nyomtat\u00f3 mozg\u00e1sa megterhelheti a hib\u00e1s vezet\u00e9ket, ami \u00e9rintkez\u00e9si hib\u00e1khoz, r\u00f6vidz\u00e1rlathoz vagy t\u00falzott zajkelt\u00e9shez vezethet.) Jelent\u00e9seket kaptunk magas USB-zajr\u00f3l, amikor a nyomtat\u00f3, \u00e9s a gazdag\u00e9p 5V-os t\u00e1pell\u00e1t\u00e1sa keveredik. (Ha azt tapasztalod, hogy a mikrokontroller bekapcsol, amikor a gazdag\u00e9p t\u00e1pell\u00e1t\u00e1sa be van kapcsolva, vagy az USB-k\u00e1bel be van dugva, akkor ez azt jelzi, hogy az 5V-os t\u00e1pegys\u00e9gek keverednek.) Seg\u00edthet, ha \u00fagy konfigur\u00e1lod a mikrokontrollert, hogy csak az egyik forr\u00e1sb\u00f3l sz\u00e1rmaz\u00f3 \u00e1ramot haszn\u00e1lod. (Alternat\u00edv megold\u00e1sk\u00e9nt, ha a mikrokontroller lapja nem tudja konfigur\u00e1lni az \u00e1ramforr\u00e1s\u00e1t, m\u00f3dos\u00edthatunk egy USB-k\u00e1belt \u00fagy, hogy az ne sz\u00e1ll\u00edtson 5V-os \u00e1ramot a gazdag\u00e9p \u00e9s a mikrokontroller k\u00f6z\u00f6tt.) A Raspberry Pi \u00fajraindul nyomtat\u00e1s k\u00f6zben \u00b6 Ez val\u00f3sz\u00edn\u0171leg a fesz\u00fclts\u00e9gingadoz\u00e1sok miatt van. K\u00f6vesse ugyanazokat a hibaelh\u00e1r\u00edt\u00e1si l\u00e9p\u00e9seket a V\u00e9letlenszer\u0171 \"Elveszett a kommunik\u00e1ci\u00f3 az MCU-val\" hib\u00e1k eset\u00e9n. Amikor be\u00e1ll\u00edtom a restart_method=command az AVR k\u00e9sz\u00fcl\u00e9kem \u00fajraind\u00edt\u00e1skor lefagy \u00b6 Az AVR bootloader n\u00e9h\u00e1ny r\u00e9gi verzi\u00f3j\u00e1nak ismert hib\u00e1ja van a watchdog esem\u00e9ny kezel\u00e9s\u00e9ben. Ez \u00e1ltal\u00e1ban akkor jelentkezik, ha a printer.cfg f\u00e1jlban a restart_method be\u00e1ll\u00edt\u00e1sa \"command\". Amikor a hiba el\u0151fordul, az AVR eszk\u00f6z nem reag\u00e1l, am\u00edg a t\u00e1pell\u00e1t\u00e1st el nem veszik \u00e9s \u00fajra be nem kapcsolj\u00e1k az eszk\u00f6zbe (a t\u00e1pell\u00e1t\u00e1s vagy az \u00e1llapotjelz\u0151 LED-ek is t\u00f6bbsz\u00f6r villoghatnak, am\u00edg a t\u00e1pell\u00e1t\u00e1st el nem veszik). A megold\u00e1s a \"command\" -t\u00f3l elt\u00e9r\u0151 restart_method haszn\u00e1lata, vagy egy friss\u00edtett bootloader \u00e9get\u00e9se az AVR eszk\u00f6zre. Egy \u00faj bootloader \u00e9get\u00e9se egy egyszeri l\u00e9p\u00e9s, amelyhez \u00e1ltal\u00e1ban k\u00fcls\u0151 programoz\u00f3ra van sz\u00fcks\u00e9g - tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd Bootloaderek dokumentumot. A f\u0171t\u0151elemek bekapcsolva maradnak, ha a Raspberry Pi \u00f6sszeomlik? \u00b6 A szoftvert \u00fagy tervezt\u00e9k, hogy ezt megakad\u00e1lyozza. Ha a gazdag\u00e9p egyszer enged\u00e9lyezi a f\u0171t\u0151berendez\u00e9st, a szoftver\u00e9nek 5 m\u00e1sodpercenk\u00e9nt meg kell er\u0151s\u00edtenie az enged\u00e9lyez\u00e9st. Ha a mikrokontroller nem kap 5 m\u00e1sodpercenk\u00e9nt meger\u0151s\u00edt\u00e9st, akkor \"le\u00e1ll\u00edt\u00e1s\" \u00e1llapotba ker\u00fcl, amelynek c\u00e9lja, hogy kikapcsolja az \u00f6sszes f\u0171t\u0151berendez\u00e9st \u00e9s l\u00e9ptet\u0151motort. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd az MCU-parancsok dokumentumban tal\u00e1lhat\u00f3 \"config_digital_out\" parancsot. Ezenk\u00edv\u00fcl a mikrovez\u00e9rl\u0151 szoftver ind\u00edt\u00e1skor minden f\u0171t\u0151berendez\u00e9shez be van \u00e1ll\u00edtva egy minim\u00e1lis \u00e9s maxim\u00e1lis h\u0151m\u00e9rs\u00e9klettartom\u00e1ny (a r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1sban tal\u00e1lhat\u00f3 min_temp \u00e9s max_temp param\u00e9tereket). Ha a mikrokontroller azt \u00e9rz\u00e9keli, hogy a h\u0151m\u00e9rs\u00e9klet e tartom\u00e1nyon k\u00edv\u00fcl esik, akkor szint\u00e9n \"le\u00e1ll\u00edt\u00e1s\" \u00e1llapotba l\u00e9p. A gazdaszoftver k\u00fcl\u00f6n k\u00f3dot is tartalmaz a f\u0171t\u0151elemek \u00e9s a h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151k helyes m\u0171k\u00f6d\u00e9s\u00e9nek ellen\u0151rz\u00e9s\u00e9re. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1s dokumentumot. Hogyan alak\u00edthatok \u00e1t egy Marlin t\u0171 sz\u00e1mot Klipper t\u0171 n\u00e9vre? \u00b6 R\u00f6vid v\u00e1lasz: sample-aliases.cfg f\u00e1jlban tal\u00e1lhat\u00f3 lek\u00e9pez\u00e9s. Haszn\u00e1ld ezt a f\u00e1jlt \u00fatmutat\u00f3k\u00e9nt a t\u00e9nyleges mikrokontroller t\u0171 nevek megtal\u00e1l\u00e1s\u00e1hoz. (Az is lehets\u00e9ges, hogy a vonatkoz\u00f3 board_pins config szakaszt \u00e1tm\u00e1sold a config f\u00e1jlj\u00e1ba, \u00e9s haszn\u00e1ld az \u00e1lneveket a configban, de el\u0151ny\u00f6sebb a t\u00e9nyleges mikrokontroller t\u0171 nevek leford\u00edt\u00e1sa \u00e9s haszn\u00e1lata.) Vedd figyelembe, hogy a sample-aliases.cfg f\u00e1jl olyan t\u0171 neveket haszn\u00e1l, amelyek \"ar\" el\u0151taggal kezd\u0151dnek \"D\" helyett (pl. az Arduino t\u0171 D23 a Klipper \u00e1ln\u00e9v ar23 ) \u00e9s az \"analog\" helyett \"A\" (pl. az Arduino t\u0171 A14 a Klipper \u00e1ln\u00e9v analog14 ). Hossz\u00fa v\u00e1lasz: Klipper a mikrokontroller \u00e1ltal meghat\u00e1rozott szabv\u00e1nyos t\u0171 neveket haszn\u00e1lja. Az Atmega chipeken ezek a hardveres t\u0171k olyan neveket viselnek, mint PA4 , PC7 , vagy PD2 . R\u00e9gen az Arduino projekt \u00fagy d\u00f6nt\u00f6tt, hogy nem haszn\u00e1lja a szabv\u00e1nyos hardverneveket, hanem saj\u00e1t, n\u00f6vekv\u0151 sz\u00e1mokon alapul\u00f3 t\u0171 neveket haszn\u00e1l. Ezek az Arduino nevek \u00e1ltal\u00e1ban \u00fagy n\u00e9znek ki, mint D23 vagy A14 . Ez egy szerencs\u00e9tlen v\u00e1laszt\u00e1s volt, amely sok zavart okozott. K\u00fcl\u00f6n\u00f6sen az Arduino t\u0171-sz\u00e1mok gyakran nem ford\u00edtj\u00e1k le ugyanazokat a hardveres neveket. P\u00e9ld\u00e1ul a D21 az PD0 egy k\u00f6z\u00f6s Arduino lapon, de PC7 egy m\u00e1sik k\u00f6z\u00f6s Arduino lapon. A zavar elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a Klipper alapk\u00f3dja a mikrokontroller \u00e1ltal meghat\u00e1rozott szabv\u00e1nyos t\u0171 neveket haszn\u00e1lja. Az eszk\u00f6z\u00f6met egy adott t\u00edpus\u00fa mikrokontroller t\u0171h\u00f6z kell csatlakoztatnom? \u00b6 Ez az eszk\u00f6z t\u00edpus\u00e1t\u00f3l \u00e9s a t\u0171 t\u00edpus\u00e1t\u00f3l f\u00fcgg: ADC t\u0171k (vagy anal\u00f3g t\u0171k): Termisztorok \u00e9s hasonl\u00f3 \"anal\u00f3g\" \u00e9rz\u00e9kel\u0151k eset\u00e9n az eszk\u00f6zt a mikrokontroller egy \"anal\u00f3g\" vagy \"ADC\" -k\u00e9pes t\u0171j\u00e9re kell csatlakoztatni. Ha a Klippert olyan t\u0171 haszn\u00e1lat\u00e1ra konfigur\u00e1lod, amely nem anal\u00f3g k\u00e9pes, a Klipper egy \"Nem \u00e9rv\u00e9nyes ADC t\u0171\" hib\u00e1t fog jelenteni. PWM t\u0171k (vagy id\u0151z\u00edt\u0151 t\u0171k): A Klipper alap\u00e9rtelmez\u00e9s szerint nem haszn\u00e1l hardveres PWM-et egyetlen eszk\u00f6z eset\u00e9ben sem. Teh\u00e1t \u00e1ltal\u00e1ban a f\u0171t\u0151testeket, ventil\u00e1torokat \u00e9s hasonl\u00f3 eszk\u00f6z\u00f6ket b\u00e1rmelyik \u00e1ltal\u00e1nos c\u00e9l\u00fa IO t\u0171re lehet vezet\u00e9kezni. A ventil\u00e1torok \u00e9s az output_pin eszk\u00f6z\u00f6k azonban opcion\u00e1lisan \u00fagy konfigur\u00e1lhat\u00f3k, hogy hardware_pwm: True \u00e9rt\u00e9ket haszn\u00e1lnak, amely esetben a mikrokontrollernek t\u00e1mogatnia kell a hardveres PWM-et a t\u0171n (ellenkez\u0151 esetben a Klipper egy \"Not a valid PWM pin\" hib\u00e1t fog jelezni). IRQ-t\u0171k (vagy megszak\u00edt\u00e1si t\u0171k): A Klipper nem haszn\u00e1l hardveres megszak\u00edt\u00e1sokat az IO t\u0171k\u00f6n, ez\u00e9rt soha nem sz\u00fcks\u00e9ges egy eszk\u00f6zt ezen mikrokontroller t\u0171k egyik\u00e9re vezetni. SPI-t\u0171k: A hardveres SPI haszn\u00e1latakor a t\u0171ket a mikrokontroller SPI-k\u00e9pes t\u0171ihez kell csatlakoztatni. A legt\u00f6bb eszk\u00f6z azonban konfigur\u00e1lhat\u00f3 a \"szoftveres SPI\" haszn\u00e1lat\u00e1ra, amely esetben b\u00e1rmely \u00e1ltal\u00e1nos c\u00e9l\u00fa IO-t\u0171 haszn\u00e1lhat\u00f3. I2C t\u0171k: I2C haszn\u00e1latakor a t\u0171ket a mikrokontroller I2C-k\u00e9pes t\u0171ihez kell csatlakoztatni. M\u00e1s eszk\u00f6z\u00f6k b\u00e1rmelyik \u00e1ltal\u00e1nos c\u00e9l\u00fa IO t\u0171re csatlakoztathat\u00f3k. P\u00e9ld\u00e1ul l\u00e9ptet\u0151k, f\u0171t\u0151k, ventil\u00e1torok, Z-szond\u00e1k, szerv\u00f3k, LED-ek, k\u00f6z\u00f6s hd44780/st7920 LCD-kijelz\u0151k, a Trinamic UART vez\u00e9rl\u0151vonal b\u00e1rmely \u00e1ltal\u00e1nos c\u00e9l\u00fa IO-t\u0171h\u00f6z csatlakoztathat\u00f3. Hogyan tudom t\u00f6r\u00f6lni az M109/M190 \"v\u00e1rakoz\u00e1s a h\u0151m\u00e9rs\u00e9kletre\" k\u00e9r\u00e9st? \u00b6 Navig\u00e1lj az OctoPrint termin\u00e1l f\u00fclre, \u00e9s adj ki egy M112 parancsot a termin\u00e1lmez\u0151ben. Az M112 parancs hat\u00e1s\u00e1ra a Klipper \"le\u00e1ll\u00edt\u00e1s\" \u00e1llapotba ker\u00fcl, \u00e9s az OctoPrint megszak\u00edtja a kapcsolatot a Klipperrel. Navig\u00e1lj az OctoPrint csatlakoz\u00e1si ter\u00fclet\u00e9re, \u00e9s kattints a \"Kapcsol\u00f3d\u00e1s\" gombra, hogy az OctoPrint \u00fajra csatlakozzon. Navig\u00e1lj vissza a termin\u00e1l f\u00fclre, \u00e9s adj ki egy FIRMWARE_RESTART parancsot a Klipper hiba\u00e1llapot\u00e1nak t\u00f6rl\u00e9s\u00e9hez. E m\u0171veletsor befejez\u00e9se ut\u00e1n az el\u0151z\u0151 f\u0171t\u00e9sk\u00e9r\u00e9s t\u00f6rl\u0151dik, \u00e9s \u00faj nyomtat\u00e1s ind\u00edthat\u00f3. Meg tudom \u00e1llap\u00edtani, hogy a nyomtat\u00f3 vesztett-e l\u00e9p\u00e9seket? \u00b6 Bizonyos \u00e9rtelemben igen. Ind\u00edtsa el a nyomtat\u00f3t, adj ki egy GET_POSITION parancsot, ind\u00edtsa el a nyomtat\u00e1st, ind\u00edtsa el \u00fajra, \u00e9s adj ki egy \u00fajabb GET_POSITION parancsot. Ezut\u00e1n hasonl\u00edtsa \u00f6ssze az mcu: sorban szerepl\u0151 \u00e9rt\u00e9keket. Ez hasznos lehet a be\u00e1ll\u00edt\u00e1sok, p\u00e9ld\u00e1ul a l\u00e9ptet\u0151motorok \u00e1ram\u00e1nak, gyorsul\u00e1s\u00e1nak \u00e9s sebess\u00e9g\u00e9nek be\u00e1ll\u00edt\u00e1s\u00e1hoz an\u00e9lk\u00fcl, hogy t\u00e9nylegesen nyomtatnod kellene valamit \u00e9s pazarolnod kellene a sz\u00e1lakat: csak futtass n\u00e9h\u00e1ny nagy sebess\u00e9g\u0171 mozg\u00e1st a GET_POSITION parancsok k\u00f6z\u00f6tt. Vedd figyelembe, hogy a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3k maguk is hajlamosak kiss\u00e9 elt\u00e9r\u0151 poz\u00edci\u00f3ban kioldani, \u00edgy a n\u00e9h\u00e1ny mikrol\u00e9p\u00e9snyi k\u00fcl\u00f6nbs\u00e9g val\u00f3sz\u00edn\u0171leg a v\u00e9g\u00e1ll\u00e1s pontatlans\u00e1g\u00e1nak eredm\u00e9nye. Maga a l\u00e9ptet\u0151motor csak 4 teljes l\u00e9p\u00e9senk\u00e9nt k\u00e9pes l\u00e9p\u00e9seket vesz\u00edteni. (Teh\u00e1t, ha 16 mikrol\u00e9p\u00e9st haszn\u00e1lunk, akkor a l\u00e9ptet\u0151 egy elvesztett l\u00e9p\u00e9se azt eredm\u00e9nyezi, hogy az \"mcu:\" l\u00e9p\u00e9ssz\u00e1ml\u00e1l\u00f3 64 mikrol\u00e9p\u00e9s t\u00f6bbsz\u00f6r\u00f6s\u00e9vel t\u00e9ved.) Mi\u00e9rt jelent hib\u00e1t a Klipper? Elrontotta a nyomtat\u00e1somat! \u00b6 R\u00f6vid v\u00e1lasz: A nyomtat\u00f3ink probl\u00e9m\u00e1kat \u00e9szlelnek, hogy a m\u00f6g\u00f6ttes probl\u00e9m\u00e1t orvosolni lehessen, \u00e9s kiv\u00e1l\u00f3 min\u0151s\u00e9g\u0171 nyomatokat kaphassunk. Semmik\u00e9ppen sem szeretn\u00e9nk, ha a nyomtat\u00f3ink csendben rossz min\u0151s\u00e9g\u0171 nyomatokat k\u00e9sz\u00edten\u00e9nek. Hossz\u00fa v\u00e1lasz: A Klipper \u00fagy lett megtervezve, hogy automatikusan megoldjon sz\u00e1mos \u00e1tmeneti probl\u00e9m\u00e1t. P\u00e9ld\u00e1ul automatikusan \u00e9szleli a kommunik\u00e1ci\u00f3s hib\u00e1kat, \u00e9s \u00fajratov\u00e1bb\u00edtja azokat; el\u0151re \u00fctemezi a m\u0171veleteket, \u00e9s t\u00f6bb r\u00e9tegben puffereli a parancsokat, hogy m\u00e9g id\u0151szakos interferencia eset\u00e9n is pontos id\u0151z\u00edt\u00e9st tegyen lehet\u0151v\u00e9. Ha azonban a szoftver olyan hib\u00e1t \u00e9szlel, amelyb\u0151l nem tud helyre\u00e1llni, ha \u00e9rv\u00e9nytelen m\u0171veletre kap parancsot, vagy ha azt \u00e9szleli, hogy rem\u00e9nytelen\u00fcl k\u00e9ptelen v\u00e9grehajtani a parancsolt feladatot, akkor a Klipper hib\u00e1t jelent. Ezekben a helyzetekben nagy a kock\u00e1zata annak, hogy rossz min\u0151s\u00e9g\u0171 nyomtat\u00e1s k\u00e9sz\u00fcl (vagy rosszabb). Rem\u00e9lj\u00fck, hogy a felhaszn\u00e1l\u00f3 figyelmeztet\u00e9se lehet\u0151v\u00e9 teszi sz\u00e1m\u00e1ra, hogy megoldja a kiv\u00e1lt\u00f3 probl\u00e9m\u00e1t, \u00e9s jav\u00edtsa a nyomatok \u00e1ltal\u00e1nos min\u0151s\u00e9g\u00e9t. Van n\u00e9h\u00e1ny kapcsol\u00f3d\u00f3 k\u00e9rd\u00e9s: Mi\u00e9rt nem sz\u00fcnetelteti a Klipper a nyomtat\u00e1st? Nem jelent figyelmeztet\u00e9st helyette? A nyomtat\u00e1s el\u0151tt nem ellen\u0151rzi a hib\u00e1kat? Figyelmen k\u00edv\u00fcl hagyja a hib\u00e1kat a felhaszn\u00e1l\u00f3 \u00e1ltal beg\u00e9pelt parancsokban? stb. Jelenleg a Klipper a G-k\u00f3d protokollt haszn\u00e1lva olvassa a parancsokat, \u00e9s sajnos a G-k\u00f3d parancsprotokoll nem el\u00e9g rugalmas ahhoz, hogy ezek az alternat\u00edv\u00e1k ma m\u00e1r praktikusak legyenek. A fejleszt\u0151k \u00e9rdekl\u0151dnek a felhaszn\u00e1l\u00f3i \u00e9lm\u00e9ny jav\u00edt\u00e1sa ir\u00e1nt a rendellenes esem\u00e9nyek sor\u00e1n, de ez v\u00e1rhat\u00f3an jelent\u0151s infrastruktur\u00e1lis munk\u00e1t ig\u00e9nyel (bele\u00e9rtve a G-k\u00f3dt\u00f3l val\u00f3 elt\u00e1volod\u00e1st). Hogyan friss\u00edthetek a leg\u00fajabb szoftverre? \u00b6 A szoftver friss\u00edt\u00e9s\u00e9nek els\u0151 l\u00e9p\u00e9se a legfrissebb konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00e1sok dokumentum \u00e1ttekint\u00e9se. Alkalmank\u00e9nt olyan v\u00e1ltoz\u00e1sok t\u00f6rt\u00e9nnek a szoftverben, amelyek miatt a felhaszn\u00e1l\u00f3knak friss\u00edteni\u00fck kell a be\u00e1ll\u00edt\u00e1saikat a szoftverfriss\u00edt\u00e9s r\u00e9szek\u00e9nt. A friss\u00edt\u00e9s el\u0151tt \u00e9rdemes \u00e1tn\u00e9zni ezt a dokumentumot. Ha k\u00e9szen \u00e1ll a friss\u00edt\u00e9sre, az \u00e1ltal\u00e1nos m\u00f3dszer az, hogy SSH-t haszn\u00e1lunk a Raspberry Pi-n, \u00e9s futtatjuk: cd ~/klipper git pull ~/klipper/scripts/install-octopi.sh Ezut\u00e1n \u00fajraford\u00edthatjuk \u00e9s \u00e9gethetj\u00fck a mikrokontroller k\u00f3dj\u00e1t. P\u00e9ld\u00e1ul: make menuconfig make clean make sudo service klipper stop make flash FLASH_DEVICE=/dev/ttyACM0 sudo service klipper start Azonban gyakran el\u0151fordul, hogy csak a gazdaszoftver v\u00e1ltozik. Ebben az esetben csak a gazdaszoftvert friss\u00edthetj\u00fck \u00e9s ind\u00edthatjuk \u00fajra: cd ~/klipper git pull sudo service klipper restart Ha e parancs haszn\u00e1lata ut\u00e1n a szoftver arra figyelmeztet, hogy a mikrokontrollert \u00fajra kell \u00e9getni, vagy m\u00e1s szokatlan hiba l\u00e9p fel, akkor k\u00f6vesse a fent le\u00edrt teljes friss\u00edt\u00e9si l\u00e9p\u00e9seket. Ha tov\u00e1bbra is fenn\u00e1llnak a hib\u00e1k, akkor ellen\u0151rizd a konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00e1sok dokumentumot, mivel lehet, hogy m\u00f3dos\u00edtani kell a nyomtat\u00f3 konfigur\u00e1ci\u00f3j\u00e1t. Ne feledd, hogy a RESTART \u00e9s FIRMWARE_RESTART G-k\u00f3d parancsok nem t\u00f6ltenek be \u00faj szoftvert a fenti \"sudo service klipper restart\" \u00e9s \"make flash\" parancsok sz\u00fcks\u00e9gesek a szoftverv\u00e1lt\u00e1s \u00e9rv\u00e9nybe l\u00e9p\u00e9s\u00e9hez. Hogyan t\u00e1vol\u00edtsam el a klippert? \u00b6 A firmware oldalon semmi k\u00fcl\u00f6n\u00f6snek nem kell t\u00f6rt\u00e9nnie. Csak k\u00f6vesse az \u00faj firmware \u00e9get\u00e9si utas\u00edt\u00e1sait. A Raspberry Pi oldalon egy elt\u00e1vol\u00edt\u00f3 szkript el\u00e9rhet\u0151 a scripts/klipper-uninstall.sh alatt. P\u00e9ld\u00e1ul: sudo ~/klipper/scripts/klipper-uninstall.sh rm -rf ~/klippy-env ~/klipper","title":"Gyakran ism\u00e9telt k\u00e9rd\u00e9sek"},{"location":"FAQ.html#gyakran-ismetelt-kerdesek","text":"","title":"Gyakran ism\u00e9telt k\u00e9rd\u00e9sek"},{"location":"FAQ.html#hogyan-adomanyozhatok-a-projektnek","text":"K\u00f6sz\u00f6nj\u00fck a t\u00e1mogat\u00e1st. A Szponzorok oldalon tal\u00e1lsz inform\u00e1ci\u00f3kat.","title":"Hogyan adom\u00e1nyozhatok a projektnek?"},{"location":"FAQ.html#hogyan-szamithatom-ki-a-rotation_distance-konfiguracios-parametert","text":"L\u00e1sd a forgat\u00e1si t\u00e1vols\u00e1g dokumentumot .","title":"Hogyan sz\u00e1m\u00edthatom ki a rotation_distance konfigur\u00e1ci\u00f3s param\u00e9tert?"},{"location":"FAQ.html#hol-van-a-soros-portom","text":"Az USB soros port megtal\u00e1l\u00e1s\u00e1nak \u00e1ltal\u00e1nos m\u00f3dja az ls /dev/serial/by-id/* futtat\u00e1sa a gazdasz\u00e1m\u00edt\u00f3g\u00e9p SSH termin\u00e1lj\u00e1r\u00f3l. Val\u00f3sz\u00edn\u0171leg a k\u00f6vetkez\u0151h\u00f6z hasonl\u00f3 kimenetet fog eredm\u00e9nyezni: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 A fenti parancsban tal\u00e1lhat\u00f3 n\u00e9v stabil, \u00e9s haszn\u00e1lhat\u00f3 a konfigur\u00e1ci\u00f3s f\u00e1jlban \u00e9s a mikrokontroller k\u00f3dj\u00e1nak \u00e9get\u00e9se sor\u00e1n. Egy \u00e9get\u00e9s parancs p\u00e9ld\u00e1ul \u00edgy n\u00e9zhet ki: sudo service klipper stop make flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 sudo service klipper start \u00e9s a friss\u00edtett konfigur\u00e1ci\u00f3 \u00edgy n\u00e9zhet ki: [mcu] serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 \u00dcgyelj arra, hogy a fent lefuttatott \"ls\" parancsb\u00f3l m\u00e1sold be a nevet, mivel a n\u00e9v minden nyomtat\u00f3n\u00e1l m\u00e1s lesz. Ha t\u00f6bb mikrovez\u00e9rl\u0151t haszn\u00e1lsz, \u00e9s ezek nem rendelkeznek egyedi azonos\u00edt\u00f3val (ez gyakori a CH340 USB-chippel ell\u00e1tott lapokon), akkor k\u00f6vesd a fenti utas\u00edt\u00e1sokat a ls /dev/serial/by-path/* parancs haszn\u00e1lat\u00e1val.","title":"Hol van a soros portom?"},{"location":"FAQ.html#a-mikrokontroller-ujrainditasakor-az-eszkoz-devttyusb1-re-valt","text":"K\u00f6vesse a \" Hol van a soros portom? \" szakaszban tal\u00e1lhat\u00f3 utas\u00edt\u00e1sokat, hogy ezt megakad\u00e1lyozza.","title":"A mikrokontroller \u00fajraind\u00edt\u00e1sakor az eszk\u00f6z /dev/ttyUSB1-re v\u00e1lt"},{"location":"FAQ.html#a-make-flash-parancs-nem-mukodik","text":"A k\u00f3d megpr\u00f3b\u00e1lja az eszk\u00f6zt az egyes platformok eset\u00e9ben legelterjedtebb m\u00f3dszerrel \u00e9getni. Sajnos az \u00e9get\u00e9si m\u00f3dszerek k\u00f6z\u00f6tt nagy elt\u00e9r\u00e9sek vannak, \u00edgy a \"make flash\" parancs nem biztos, hogy minden lapon m\u0171k\u00f6dik. Ha id\u0151szakos hiba van, vagy szabv\u00e1nyos be\u00e1ll\u00edt\u00e1sod van, akkor ellen\u0151rizd, hogy a Klipper nem fut-e \u00e9get\u00e9s k\u00f6zben (sudo service klipper stop), gy\u0151z\u0151dj meg r\u00f3la, hogy az OctoPrint nem pr\u00f3b\u00e1l k\u00f6zvetlen\u00fcl az eszk\u00f6zh\u00f6z csatlakozni (nyisd meg a weblapon a Kapcsolat lapot, \u00e9s kattints a Kapcsolat megszak\u00edt\u00e1sa gombra, ha a soros port az eszk\u00f6zh\u00f6z van be\u00e1ll\u00edtva), \u00e9s gy\u0151z\u0151dj meg r\u00f3la, hogy a FLASH_DEVICE helyesen van be\u00e1ll\u00edtva a lapodhoz (l\u00e1sd a fenti k\u00e9rd\u00e9st ). Ha azonban a \"make flash\" egyszer\u0171en nem m\u0171k\u00f6dik az alaplapj\u00e1n, akkor manu\u00e1lisan kell \u00e9getnie. N\u00e9zze meg, hogy van-e a config k\u00f6nyvt\u00e1rban egy config f\u00e1jl, amely konkr\u00e9t utas\u00edt\u00e1sokat tartalmaz az eszk\u00f6z \u00e9get\u00e9s\u00e9re. Ellen\u0151rizd a k\u00e1rtya gy\u00e1rt\u00f3j\u00e1nak dokument\u00e1ci\u00f3j\u00e1t is, hogy le\u00edrja-e, hogyan kell \u00e9getni az eszk\u00f6zt. V\u00e9g\u00fcl, lehets\u00e9ges lehet, hogy manu\u00e1lisan \u00e9gess\u00fck az eszk\u00f6zt olyan eszk\u00f6z\u00f6kkel, mint az \"avrdude\" vagy a \"bossac\" - tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a bootloader dokumentumot .","title":"A \"make flash\" parancs nem m\u0171k\u00f6dik"},{"location":"FAQ.html#hogyan-valtoztathatom-meg-a-soros-port-atviteli-sebesseget","text":"A Klipper aj\u00e1nlott \u00e1tviteli sebess\u00e9ge 250000. Ez az \u00e1tviteli r\u00e1ta j\u00f3l m\u0171k\u00f6dik minden olyan mikrokontroller k\u00e1rty\u00e1n, amelyet a Klipper t\u00e1mogat. Ha tal\u00e1lt egy online \u00fatmutat\u00f3t, amely m\u00e1s \u00e1tviteli sebess\u00e9get javasol, akkor hagyja figyelmen k\u00edv\u00fcl az \u00fatmutat\u00f3nak ezt a r\u00e9sz\u00e9t, \u00e9s folytasd az alap\u00e9rtelmezett 250000 \u00e9rt\u00e9kkel. Ha mindenk\u00e9ppen meg akarja v\u00e1ltoztatni az \u00e1tviteli sebess\u00e9get, akkor az \u00faj sebess\u00e9get a mikrokontrollerben kell be\u00e1ll\u00edtani (a make menuconfig alatt), \u00e9s a friss\u00edtett k\u00f3dot le kell ford\u00edtani \u00e9s be kell \u00e9getni a mikrokontrollerbe. A Klipper printer.cfg f\u00e1jlt is friss\u00edteni kell, hogy megfeleljen ennek az \u00e1tviteli sebess\u00e9gnek (l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st a r\u00e9szleteket). P\u00e9ld\u00e1ul: [mcu] baud: 250000 Az OctoPrint weboldalon felt\u00fcntetett \u00e1tviteli sebess\u00e9g nincs hat\u00e1ssal a Klipper mikrokontroller bels\u0151 \u00e1tviteli sebess\u00e9g\u00e9re. Klipper haszn\u00e1latakor az OctoPrint \u00e1tviteli sebess\u00e9g\u00e9t mindig 250000-re \u00e1ll\u00edtsd be. A Klipper mikrovez\u00e9rl\u0151 \u00e1tviteli sebess\u00e9ge nem f\u00fcgg a mikrovez\u00e9rl\u0151 bootloader \u00e1tviteli sebess\u00e9g\u00e9t\u0151l. A bootloader dokumentum tov\u00e1bbi inform\u00e1ci\u00f3kat tartalmaz a bootloaderekkel kapcsolatban.","title":"Hogyan v\u00e1ltoztathatom meg a soros port \u00e1tviteli sebess\u00e9g\u00e9t?"},{"location":"FAQ.html#futtathatom-a-klippert-a-raspberry-pi-3-on-kivul-mason-is","text":"Az aj\u00e1nlott hardver egy Raspberry Pi 2, Raspberry Pi 3 vagy Raspberry Pi 4. A Klipper fut a Raspberry Pi 1-en \u00e9s a Raspberry Pi Zero-n, de ezek a lapok nem tartalmaznak elegend\u0151 feldolgoz\u00e1si teljes\u00edtm\u00e9nyt az OctoPrint j\u00f3 futtat\u00e1s\u00e1hoz. Gyakori, hogy ezeken a lassabb g\u00e9peken a nyomtat\u00e1s akadozik, amikor k\u00f6zvetlen\u00fcl az OctoPrintb\u0151l nyomtat. (El\u0151fordulhat, hogy a nyomtat\u00f3 gyorsabban mozog, mint ahogy az OctoPrint a mozg\u00e1sparancsokat el tudja k\u00fcldeni.) Ha mindenk\u00e9ppen ezek k\u00f6z\u00fcl a lassabb lapok k\u00f6z\u00fcl valamelyiken szeretne futni, fontolja meg a \"virtual_sdcard\" funkci\u00f3 haszn\u00e1lat\u00e1t nyomtat\u00e1skor (a r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st ). A Beaglebone-on val\u00f3 futtat\u00e1shoz l\u00e1sd a Beaglebone-specifikus telep\u00edt\u00e9si utas\u00edt\u00e1sokat . A Klipper m\u00e1s g\u00e9peken is futott. A Klipper gazdag\u00e9p szoftverhez csak Python sz\u00fcks\u00e9ges, amely Linux (vagy hasonl\u00f3) sz\u00e1m\u00edt\u00f3g\u00e9pen fut. Ha azonban m\u00e1s g\u00e9pen szeretn\u00e9 futtatni, akkor Linux adminisztr\u00e1tori ismeretekre lesz sz\u00fcks\u00e9ge az adott g\u00e9p rendszerk\u00f6vetelm\u00e9nyeinek telep\u00edt\u00e9s\u00e9hez. A sz\u00fcks\u00e9ges Linux-adminisztr\u00e1tori l\u00e9p\u00e9sekr\u0151l tov\u00e1bbi inform\u00e1ci\u00f3t az install-octopi.sh szkriptben tal\u00e1l. Ha a Klipper gazdag\u00e9p szoftvert egy low-end chipen szeretn\u00e9 futtatni, akkor vedd figyelembe, hogy legal\u00e1bb egy \"dupla pontoss\u00e1g\u00fa lebeg\u0151pontos\" hardverrel rendelkez\u0151 g\u00e9pre van sz\u00fcks\u00e9g. Ha a Klipper gazdag\u00e9p szoftvert egy megosztott \u00e1ltal\u00e1nos c\u00e9l\u00fa asztali vagy szerver oszt\u00e1ly\u00fa g\u00e9pen szeretn\u00e9 futtatni, akkor vedd figyelembe, hogy a Klippernek vannak bizonyos val\u00f3s idej\u0171 \u00fctemez\u00e9si k\u00f6vetelm\u00e9nyei. Ha a nyomtat\u00e1s sor\u00e1n a gazdasz\u00e1m\u00edt\u00f3g\u00e9p egyidej\u0171leg intenz\u00edv \u00e1ltal\u00e1nos c\u00e9l\u00fa sz\u00e1m\u00edt\u00e1si feladatot is v\u00e9gez (p\u00e9ld\u00e1ul merevlemez defragment\u00e1l\u00e1sa, 3D renderel\u00e9s, nagym\u00e9rt\u00e9k\u0171 swapol\u00e1s stb.), akkor a Klipper nyomtat\u00e1si hib\u00e1kat jelenthet. Megjegyz\u00e9s: Ha nem OctoPi-k\u00e9pet haszn\u00e1lsz, vedd figyelembe, hogy sz\u00e1mos Linux-disztrib\u00faci\u00f3 enged\u00e9lyez egy \"ModemManager\" (vagy hasonl\u00f3) csomagot, amely megzavarhatja a soros kommunik\u00e1ci\u00f3t. (Ami miatt a Klipper v\u00e9letlenszer\u0171nek t\u0171n\u0151 \"Elveszett a kommunik\u00e1ci\u00f3 az MCU-val\" hib\u00e1kat jelenthet.) Ha a Klippert ilyen disztrib\u00faci\u00f3ra telep\u00edti, akkor lehet, hogy le kell tiltania ezt a csomagot.","title":"Futtathatom a Klippert a Raspberry Pi 3-on k\u00edv\u00fcl m\u00e1son is?"},{"location":"FAQ.html#futtathatom-a-klipper-tobb-peldanyat-ugyanazon-a-gepen","text":"Lehets\u00e9ges a Klipper gazdag\u00e9p szoftver t\u00f6bb p\u00e9ld\u00e1ny\u00e1nak futtat\u00e1sa, de ehhez Linux adminisztr\u00e1tori ismeretekre van sz\u00fcks\u00e9g. A Klipper telep\u00edt\u00e9si szkriptek v\u00e9g\u00fcl a k\u00f6vetkez\u0151 Unix parancs futtat\u00e1s\u00e1t eredm\u00e9nyezik: ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer.cfg -l /tmp/klippy.log A fenti parancs t\u00f6bb p\u00e9ld\u00e1nyban is futtathat\u00f3, amennyiben minden p\u00e9ld\u00e1nynak saj\u00e1t nyomtat\u00f3-konfigur\u00e1ci\u00f3s f\u00e1jlja, saj\u00e1t napl\u00f3f\u00e1jlja \u00e9s saj\u00e1t pszeudo-tty-je van. P\u00e9ld\u00e1ul: ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer2.cfg -l /tmp/klippy2.log -I /tmp/printer2 Ha ezt v\u00e1lasztja, akkor a sz\u00fcks\u00e9ges ind\u00edt\u00e1si, le\u00e1ll\u00edt\u00e1si \u00e9s telep\u00edt\u00e9si parancsf\u00e1jlokat (ha vannak ilyenek) kell v\u00e9grehajtania. Az install-octopi.sh szkript \u00e9s a klipper-start.sh szkript hasznos lehet p\u00e9ldak\u00e9nt.","title":"Futtathatom a Klipper t\u00f6bb p\u00e9ld\u00e1ny\u00e1t ugyanazon a g\u00e9pen?"},{"location":"FAQ.html#muszaj-az-octoprintet-hasznalnom","text":"A Klipper szoftver nem f\u00fcgg az OctoPrint-t\u0151l. Lehets\u00e9ges alternat\u00edv szoftvereket haszn\u00e1lni a Klipper parancsok k\u00fcld\u00e9s\u00e9re, de ehhez Linux adminisztr\u00e1tori ismeretekre van sz\u00fcks\u00e9g. A Klipper l\u00e9trehoz egy \"virtu\u00e1lis soros portot\" a \"/tmp/printer\" f\u00e1jlon kereszt\u00fcl, \u00e9s ezen kereszt\u00fcl emul\u00e1l egy klasszikus 3D nyomtat\u00f3 soros interf\u00e9szt. \u00c1ltal\u00e1noss\u00e1gban elmondhat\u00f3, hogy alternat\u00edv szoftverek is m\u0171k\u00f6dhetnek a Klipperrel, amennyiben konfigur\u00e1lhat\u00f3ak \u00fagy, hogy a \"/tmp/printer\" -t haszn\u00e1lj\u00e1k a nyomtat\u00f3 soros portjak\u00e9nt.","title":"Musz\u00e1j az OctoPrintet haszn\u00e1lnom?"},{"location":"FAQ.html#miert-nem-tudom-mozgatni-a-leptetomotort-a-nyomtato-kezdopont-felvetele-elott","text":"A k\u00f3d ezt az\u00e9rt teszi, hogy cs\u00f6kkentse annak es\u00e9ly\u00e9t, hogy a fejet v\u00e9letlen\u00fcl a t\u00e1rgyasztalba vagy a falba \u00fctk\u00f6ztesse. Miut\u00e1n a nyomtat\u00f3 kezd\u0151ponthoz \u00e9rt, a szoftver megpr\u00f3b\u00e1lja ellen\u0151rizni, hogy minden egyes mozg\u00e1s a konfigur\u00e1ci\u00f3s f\u00e1jlban meghat\u00e1rozott position_min/max \u00e9rt\u00e9ken bel\u00fcl van-e. Ha a motorok ki vannak kapcsolva (M84 vagy M18 parancs seg\u00edts\u00e9g\u00e9vel), akkor a motorokat a mozg\u00e1s el\u0151tt \u00fajra be kell \u00e1ll\u00edtani. Ha a fejet az OctoPrint seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9n\u0151 nyomtat\u00e1s t\u00f6rl\u00e9se ut\u00e1n szeretn\u00e9 elmozd\u00edtani, fontolja meg az OctoPrint t\u00f6rl\u00e9si sorrendj\u00e9nek m\u00f3dos\u00edt\u00e1s\u00e1t, hogy ezt megtegye \u00d6n helyett. Ez az OctoPrintben a webb\u00f6ng\u00e9sz\u0151n kereszt\u00fcl konfigur\u00e1lhat\u00f3 a k\u00f6vetkez\u0151 men\u00fcpont alatt: Be\u00e1ll\u00edt\u00e1sok->GCODE szkriptek Ha a nyomtat\u00e1s befejez\u00e9se ut\u00e1n szeretn\u00e9 mozgatni a fejet, fontolja meg a k\u00edv\u00e1nt mozg\u00e1s hozz\u00e1ad\u00e1s\u00e1t a szeletel\u0151 \"custom g-code\" szakasz\u00e1hoz. Ha a nyomtat\u00f3nak sz\u00fcks\u00e9ge van tov\u00e1bbi mozgat\u00e1sra a kezd\u0151pont felv\u00e9teli folyamat r\u00e9szek\u00e9nt (vagy alapvet\u0151en nincs kezd\u0151pont felv\u00e9teli folyamat), akkor fontolja meg a safe_z_home vagy homing_override szakasz haszn\u00e1lat\u00e1t a konfigur\u00e1ci\u00f3s f\u00e1jlban. Ha diagnosztikai vagy hibakeres\u00e9si c\u00e9lokra kell mozgatni egy l\u00e9ptet\u0151motort, akkor fontolja meg egy force_move szakasz hozz\u00e1ad\u00e1s\u00e1t a konfigur\u00e1ci\u00f3s f\u00e1jlhoz. L\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st az ezen opci\u00f3kkal kapcsolatos tov\u00e1bbi r\u00e9szletek\u00e9rt.","title":"Mi\u00e9rt nem tudom mozgatni a l\u00e9ptet\u0151motort a nyomtat\u00f3 kezd\u0151pont felv\u00e9tele el\u0151tt?"},{"location":"FAQ.html#miert-van-a-z-position_endstop-05-re-allitva-az-alapertelmezett-konfiguracioban","text":"A cartesian st\u00edlus\u00fa nyomtat\u00f3k eset\u00e9ben a Z position_endstop megadja, hogy a f\u00fav\u00f3ka milyen messze van a t\u00e1rgyasztalt\u00f3l, amikor a v\u00e9g\u00e1ll\u00e1s m\u0171k\u00f6d\u00e9sbe l\u00e9p. Ha lehets\u00e9ges, aj\u00e1nlott Z-max v\u00e9g\u00e1ll\u00e1st haszn\u00e1lni, \u00e9s a t\u00e1rgyasztalt\u00f3l t\u00e1volabb elhelyezni (mivel ez cs\u00f6kkenti a t\u00e1rgyasztal \u00fctk\u00f6z\u00e9s lehet\u0151s\u00e9g\u00e9t). Ha azonban a t\u00e1rgyasztal fel\u00e9 kell elindulni, akkor a v\u00e9g\u00e1ll\u00e1st \u00fagy kell be\u00e1ll\u00edtani, hogy akkor l\u00e9pjen m\u0171k\u00f6d\u00e9sbe, amikor a f\u00fav\u00f3ka m\u00e9g mindig kis t\u00e1vols\u00e1gra van a t\u00e1rgyasztalt\u00f3l. \u00cdgy a tengely homingol\u00e1sakor a f\u00fav\u00f3ka m\u00e9g azel\u0151tt meg\u00e1ll, hogy a f\u00fav\u00f3ka hozz\u00e1\u00e9rne a t\u00e1rgyasztalhoz. Tov\u00e1bbi inform\u00e1ci\u00f3\u00e9rt l\u00e1sd a t\u00e1rgyasztal szintez\u00e9s dokumentumot .","title":"Mi\u00e9rt van a Z position_endstop 0,5-re \u00e1ll\u00edtva az alap\u00e9rtelmezett konfigur\u00e1ci\u00f3ban?"},{"location":"FAQ.html#atkonvertaltam-a-konfiguraciomat-marlinbol-es-az-xy-tengelyek-jol-mukodnek-de-a-z-tengely-kezdopont-felvetelekor-csak-egy-csikorgo-zajt-hallok","text":"R\u00f6vid v\u00e1lasz: El\u0151sz\u00f6r is ellen\u0151rizd, hogy a konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9sek dokumentumban le\u00edrtak szerint ellen\u0151rizted-e a l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3j\u00e1t. Ha a probl\u00e9ma tov\u00e1bbra is fenn\u00e1ll, pr\u00f3b\u00e1ld meg cs\u00f6kkenteni a max_z_velocity \u00e9rt\u00e9ket a nyomtat\u00f3 konfigur\u00e1ci\u00f3j\u00e1ban. Hossz\u00fa v\u00e1lasz: A gyakorlatban a Marlin jellemz\u0151en csak k\u00f6r\u00fclbel\u00fcl 10000 l\u00e9p\u00e9s/m\u00e1sodperc sebess\u00e9ggel tud l\u00e9pni. Ha olyan sebess\u00e9ggel kell mozognia, amely nagyobb l\u00e9p\u00e9ssz\u00e1mot ig\u00e9nyel, akkor a Marlin \u00e1ltal\u00e1ban csak olyan gyorsan l\u00e9p, amilyen gyorsan csak tud. A Klipper sokkal nagyobb l\u00e9p\u00e9ssz\u00e1mot k\u00e9pes el\u00e9rni, de a l\u00e9ptet\u0151motornak nem biztos, hogy elegend\u0151 nyomat\u00e9ka van a nagyobb sebess\u00e9g\u0171 mozg\u00e1shoz. Teh\u00e1t egy nagy \u00e1tt\u00e9telsz\u00e1m\u00fa vagy nagy mikrol\u00e9p\u00e9ssz\u00e1m\u00fa Z tengely eset\u00e9ben a t\u00e9nylegesen el\u00e9rhet\u0151 max_z_sebess\u00e9g kisebb lehet, mint ami a Marlinban be van \u00e1ll\u00edtva.","title":"\u00c1tkonvert\u00e1ltam a konfigur\u00e1ci\u00f3mat Marlinb\u00f3l, \u00e9s az X/Y tengelyek j\u00f3l m\u0171k\u00f6dnek, de a Z tengely kezd\u0151pont felv\u00e9telekor csak egy csikorg\u00f3 zajt hallok"},{"location":"FAQ.html#a-tmc-motorvezerlo-kikapcsol-nyomtatas-kozben","text":"Ha a TMC2208 (vagy TMC2224) motorvez\u00e9rl\u0151t \"standalone m\u00f3dban\" haszn\u00e1lod, akkor gy\u0151z\u0151dj meg r\u00f3la, hogy a Klipper leg\u00fajabb verzi\u00f3j\u00e1t haszn\u00e1ld. A TMC2208 \"stealthchop\" motorvez\u00e9rl\u0151 probl\u00e9m\u00e1j\u00e1nak megold\u00e1sa 2020 m\u00e1rcius k\u00f6zep\u00e9n ker\u00fclt hozz\u00e1 a Klipperhez.","title":"A TMC motorvez\u00e9rl\u0151 kikapcsol nyomtat\u00e1s k\u00f6zben"},{"location":"FAQ.html#veletlenszeru-elveszett-a-kommunikacio-az-mcu-val-hibak","text":"Ezt \u00e1ltal\u00e1ban a gazdag\u00e9p \u00e9s a mikrokontroller k\u00f6z\u00f6tti USB-kapcsolat hardverhib\u00e1i okozz\u00e1k. Amit keresni kell: Haszn\u00e1lj j\u00f3 min\u0151s\u00e9g\u0171 USB-k\u00e1belt a gazdag\u00e9p \u00e9s a mikrokontroller k\u00f6z\u00f6tt. Gy\u0151z\u0151dj meg r\u00f3la, hogy a csatlakoz\u00f3k biztons\u00e1gosan csatlakoznak. Ha Raspberry Pi-t haszn\u00e1l, haszn\u00e1lj j\u00f3 min\u0151s\u00e9g\u0171 t\u00e1pegys\u00e9get a Raspberry Pi sz\u00e1m\u00e1ra, \u00e9s egy j\u00f3 min\u0151s\u00e9g\u0171 USB-k\u00e1bellel csatlakoztassa a t\u00e1pegys\u00e9get a Pihez. Ha az OctoPrint \"fesz\u00fclts\u00e9g alatt\" figyelmeztet\u00e9seket kap, az a t\u00e1pegys\u00e9ggel f\u00fcgg \u00f6ssze, \u00e9s ezt meg kell jav\u00edtani. Gy\u0151z\u0151dj meg r\u00f3la, hogy a nyomtat\u00f3 \u00e1ramell\u00e1t\u00e1sa nincs t\u00falterhelve. (A mikrovez\u00e9rl\u0151 USB-chip \u00e1ramell\u00e1t\u00e1s\u00e1nak ingadoz\u00e1sa a chip \u00fajraind\u00edt\u00e1s\u00e1t eredm\u00e9nyezheti.) Ellen\u0151rizd, hogy a l\u00e9ptet\u0151, f\u0171t\u0151 \u00e9s egy\u00e9b nyomtat\u00f3vezet\u00e9kek nem szakadtak vagy rong\u00e1l\u00f3dtak. (A nyomtat\u00f3 mozg\u00e1sa megterhelheti a hib\u00e1s vezet\u00e9ket, ami \u00e9rintkez\u00e9si hib\u00e1khoz, r\u00f6vidz\u00e1rlathoz vagy t\u00falzott zajkelt\u00e9shez vezethet.) Jelent\u00e9seket kaptunk magas USB-zajr\u00f3l, amikor a nyomtat\u00f3, \u00e9s a gazdag\u00e9p 5V-os t\u00e1pell\u00e1t\u00e1sa keveredik. (Ha azt tapasztalod, hogy a mikrokontroller bekapcsol, amikor a gazdag\u00e9p t\u00e1pell\u00e1t\u00e1sa be van kapcsolva, vagy az USB-k\u00e1bel be van dugva, akkor ez azt jelzi, hogy az 5V-os t\u00e1pegys\u00e9gek keverednek.) Seg\u00edthet, ha \u00fagy konfigur\u00e1lod a mikrokontrollert, hogy csak az egyik forr\u00e1sb\u00f3l sz\u00e1rmaz\u00f3 \u00e1ramot haszn\u00e1lod. (Alternat\u00edv megold\u00e1sk\u00e9nt, ha a mikrokontroller lapja nem tudja konfigur\u00e1lni az \u00e1ramforr\u00e1s\u00e1t, m\u00f3dos\u00edthatunk egy USB-k\u00e1belt \u00fagy, hogy az ne sz\u00e1ll\u00edtson 5V-os \u00e1ramot a gazdag\u00e9p \u00e9s a mikrokontroller k\u00f6z\u00f6tt.)","title":"V\u00e9letlenszer\u0171 \"Elveszett a kommunik\u00e1ci\u00f3 az MCU-val\" hib\u00e1k"},{"location":"FAQ.html#a-raspberry-pi-ujraindul-nyomtatas-kozben","text":"Ez val\u00f3sz\u00edn\u0171leg a fesz\u00fclts\u00e9gingadoz\u00e1sok miatt van. K\u00f6vesse ugyanazokat a hibaelh\u00e1r\u00edt\u00e1si l\u00e9p\u00e9seket a V\u00e9letlenszer\u0171 \"Elveszett a kommunik\u00e1ci\u00f3 az MCU-val\" hib\u00e1k eset\u00e9n.","title":"A Raspberry Pi \u00fajraindul nyomtat\u00e1s k\u00f6zben"},{"location":"FAQ.html#amikor-beallitom-a-restart_methodcommand-az-avr-keszulekem-ujrainditaskor-lefagy","text":"Az AVR bootloader n\u00e9h\u00e1ny r\u00e9gi verzi\u00f3j\u00e1nak ismert hib\u00e1ja van a watchdog esem\u00e9ny kezel\u00e9s\u00e9ben. Ez \u00e1ltal\u00e1ban akkor jelentkezik, ha a printer.cfg f\u00e1jlban a restart_method be\u00e1ll\u00edt\u00e1sa \"command\". Amikor a hiba el\u0151fordul, az AVR eszk\u00f6z nem reag\u00e1l, am\u00edg a t\u00e1pell\u00e1t\u00e1st el nem veszik \u00e9s \u00fajra be nem kapcsolj\u00e1k az eszk\u00f6zbe (a t\u00e1pell\u00e1t\u00e1s vagy az \u00e1llapotjelz\u0151 LED-ek is t\u00f6bbsz\u00f6r villoghatnak, am\u00edg a t\u00e1pell\u00e1t\u00e1st el nem veszik). A megold\u00e1s a \"command\" -t\u00f3l elt\u00e9r\u0151 restart_method haszn\u00e1lata, vagy egy friss\u00edtett bootloader \u00e9get\u00e9se az AVR eszk\u00f6zre. Egy \u00faj bootloader \u00e9get\u00e9se egy egyszeri l\u00e9p\u00e9s, amelyhez \u00e1ltal\u00e1ban k\u00fcls\u0151 programoz\u00f3ra van sz\u00fcks\u00e9g - tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd Bootloaderek dokumentumot.","title":"Amikor be\u00e1ll\u00edtom a restart_method=command az AVR k\u00e9sz\u00fcl\u00e9kem \u00fajraind\u00edt\u00e1skor lefagy"},{"location":"FAQ.html#a-futoelemek-bekapcsolva-maradnak-ha-a-raspberry-pi-osszeomlik","text":"A szoftvert \u00fagy tervezt\u00e9k, hogy ezt megakad\u00e1lyozza. Ha a gazdag\u00e9p egyszer enged\u00e9lyezi a f\u0171t\u0151berendez\u00e9st, a szoftver\u00e9nek 5 m\u00e1sodpercenk\u00e9nt meg kell er\u0151s\u00edtenie az enged\u00e9lyez\u00e9st. Ha a mikrokontroller nem kap 5 m\u00e1sodpercenk\u00e9nt meger\u0151s\u00edt\u00e9st, akkor \"le\u00e1ll\u00edt\u00e1s\" \u00e1llapotba ker\u00fcl, amelynek c\u00e9lja, hogy kikapcsolja az \u00f6sszes f\u0171t\u0151berendez\u00e9st \u00e9s l\u00e9ptet\u0151motort. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd az MCU-parancsok dokumentumban tal\u00e1lhat\u00f3 \"config_digital_out\" parancsot. Ezenk\u00edv\u00fcl a mikrovez\u00e9rl\u0151 szoftver ind\u00edt\u00e1skor minden f\u0171t\u0151berendez\u00e9shez be van \u00e1ll\u00edtva egy minim\u00e1lis \u00e9s maxim\u00e1lis h\u0151m\u00e9rs\u00e9klettartom\u00e1ny (a r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1sban tal\u00e1lhat\u00f3 min_temp \u00e9s max_temp param\u00e9tereket). Ha a mikrokontroller azt \u00e9rz\u00e9keli, hogy a h\u0151m\u00e9rs\u00e9klet e tartom\u00e1nyon k\u00edv\u00fcl esik, akkor szint\u00e9n \"le\u00e1ll\u00edt\u00e1s\" \u00e1llapotba l\u00e9p. A gazdaszoftver k\u00fcl\u00f6n k\u00f3dot is tartalmaz a f\u0171t\u0151elemek \u00e9s a h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151k helyes m\u0171k\u00f6d\u00e9s\u00e9nek ellen\u0151rz\u00e9s\u00e9re. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1s dokumentumot.","title":"A f\u0171t\u0151elemek bekapcsolva maradnak, ha a Raspberry Pi \u00f6sszeomlik?"},{"location":"FAQ.html#hogyan-alakithatok-at-egy-marlin-tu-szamot-klipper-tu-nevre","text":"R\u00f6vid v\u00e1lasz: sample-aliases.cfg f\u00e1jlban tal\u00e1lhat\u00f3 lek\u00e9pez\u00e9s. Haszn\u00e1ld ezt a f\u00e1jlt \u00fatmutat\u00f3k\u00e9nt a t\u00e9nyleges mikrokontroller t\u0171 nevek megtal\u00e1l\u00e1s\u00e1hoz. (Az is lehets\u00e9ges, hogy a vonatkoz\u00f3 board_pins config szakaszt \u00e1tm\u00e1sold a config f\u00e1jlj\u00e1ba, \u00e9s haszn\u00e1ld az \u00e1lneveket a configban, de el\u0151ny\u00f6sebb a t\u00e9nyleges mikrokontroller t\u0171 nevek leford\u00edt\u00e1sa \u00e9s haszn\u00e1lata.) Vedd figyelembe, hogy a sample-aliases.cfg f\u00e1jl olyan t\u0171 neveket haszn\u00e1l, amelyek \"ar\" el\u0151taggal kezd\u0151dnek \"D\" helyett (pl. az Arduino t\u0171 D23 a Klipper \u00e1ln\u00e9v ar23 ) \u00e9s az \"analog\" helyett \"A\" (pl. az Arduino t\u0171 A14 a Klipper \u00e1ln\u00e9v analog14 ). Hossz\u00fa v\u00e1lasz: Klipper a mikrokontroller \u00e1ltal meghat\u00e1rozott szabv\u00e1nyos t\u0171 neveket haszn\u00e1lja. Az Atmega chipeken ezek a hardveres t\u0171k olyan neveket viselnek, mint PA4 , PC7 , vagy PD2 . R\u00e9gen az Arduino projekt \u00fagy d\u00f6nt\u00f6tt, hogy nem haszn\u00e1lja a szabv\u00e1nyos hardverneveket, hanem saj\u00e1t, n\u00f6vekv\u0151 sz\u00e1mokon alapul\u00f3 t\u0171 neveket haszn\u00e1l. Ezek az Arduino nevek \u00e1ltal\u00e1ban \u00fagy n\u00e9znek ki, mint D23 vagy A14 . Ez egy szerencs\u00e9tlen v\u00e1laszt\u00e1s volt, amely sok zavart okozott. K\u00fcl\u00f6n\u00f6sen az Arduino t\u0171-sz\u00e1mok gyakran nem ford\u00edtj\u00e1k le ugyanazokat a hardveres neveket. P\u00e9ld\u00e1ul a D21 az PD0 egy k\u00f6z\u00f6s Arduino lapon, de PC7 egy m\u00e1sik k\u00f6z\u00f6s Arduino lapon. A zavar elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a Klipper alapk\u00f3dja a mikrokontroller \u00e1ltal meghat\u00e1rozott szabv\u00e1nyos t\u0171 neveket haszn\u00e1lja.","title":"Hogyan alak\u00edthatok \u00e1t egy Marlin t\u0171 sz\u00e1mot Klipper t\u0171 n\u00e9vre?"},{"location":"FAQ.html#az-eszkozomet-egy-adott-tipusu-mikrokontroller-tuhoz-kell-csatlakoztatnom","text":"Ez az eszk\u00f6z t\u00edpus\u00e1t\u00f3l \u00e9s a t\u0171 t\u00edpus\u00e1t\u00f3l f\u00fcgg: ADC t\u0171k (vagy anal\u00f3g t\u0171k): Termisztorok \u00e9s hasonl\u00f3 \"anal\u00f3g\" \u00e9rz\u00e9kel\u0151k eset\u00e9n az eszk\u00f6zt a mikrokontroller egy \"anal\u00f3g\" vagy \"ADC\" -k\u00e9pes t\u0171j\u00e9re kell csatlakoztatni. Ha a Klippert olyan t\u0171 haszn\u00e1lat\u00e1ra konfigur\u00e1lod, amely nem anal\u00f3g k\u00e9pes, a Klipper egy \"Nem \u00e9rv\u00e9nyes ADC t\u0171\" hib\u00e1t fog jelenteni. PWM t\u0171k (vagy id\u0151z\u00edt\u0151 t\u0171k): A Klipper alap\u00e9rtelmez\u00e9s szerint nem haszn\u00e1l hardveres PWM-et egyetlen eszk\u00f6z eset\u00e9ben sem. Teh\u00e1t \u00e1ltal\u00e1ban a f\u0171t\u0151testeket, ventil\u00e1torokat \u00e9s hasonl\u00f3 eszk\u00f6z\u00f6ket b\u00e1rmelyik \u00e1ltal\u00e1nos c\u00e9l\u00fa IO t\u0171re lehet vezet\u00e9kezni. A ventil\u00e1torok \u00e9s az output_pin eszk\u00f6z\u00f6k azonban opcion\u00e1lisan \u00fagy konfigur\u00e1lhat\u00f3k, hogy hardware_pwm: True \u00e9rt\u00e9ket haszn\u00e1lnak, amely esetben a mikrokontrollernek t\u00e1mogatnia kell a hardveres PWM-et a t\u0171n (ellenkez\u0151 esetben a Klipper egy \"Not a valid PWM pin\" hib\u00e1t fog jelezni). IRQ-t\u0171k (vagy megszak\u00edt\u00e1si t\u0171k): A Klipper nem haszn\u00e1l hardveres megszak\u00edt\u00e1sokat az IO t\u0171k\u00f6n, ez\u00e9rt soha nem sz\u00fcks\u00e9ges egy eszk\u00f6zt ezen mikrokontroller t\u0171k egyik\u00e9re vezetni. SPI-t\u0171k: A hardveres SPI haszn\u00e1latakor a t\u0171ket a mikrokontroller SPI-k\u00e9pes t\u0171ihez kell csatlakoztatni. A legt\u00f6bb eszk\u00f6z azonban konfigur\u00e1lhat\u00f3 a \"szoftveres SPI\" haszn\u00e1lat\u00e1ra, amely esetben b\u00e1rmely \u00e1ltal\u00e1nos c\u00e9l\u00fa IO-t\u0171 haszn\u00e1lhat\u00f3. I2C t\u0171k: I2C haszn\u00e1latakor a t\u0171ket a mikrokontroller I2C-k\u00e9pes t\u0171ihez kell csatlakoztatni. M\u00e1s eszk\u00f6z\u00f6k b\u00e1rmelyik \u00e1ltal\u00e1nos c\u00e9l\u00fa IO t\u0171re csatlakoztathat\u00f3k. P\u00e9ld\u00e1ul l\u00e9ptet\u0151k, f\u0171t\u0151k, ventil\u00e1torok, Z-szond\u00e1k, szerv\u00f3k, LED-ek, k\u00f6z\u00f6s hd44780/st7920 LCD-kijelz\u0151k, a Trinamic UART vez\u00e9rl\u0151vonal b\u00e1rmely \u00e1ltal\u00e1nos c\u00e9l\u00fa IO-t\u0171h\u00f6z csatlakoztathat\u00f3.","title":"Az eszk\u00f6z\u00f6met egy adott t\u00edpus\u00fa mikrokontroller t\u0171h\u00f6z kell csatlakoztatnom?"},{"location":"FAQ.html#hogyan-tudom-torolni-az-m109m190-varakozas-a-homersekletre-kerest","text":"Navig\u00e1lj az OctoPrint termin\u00e1l f\u00fclre, \u00e9s adj ki egy M112 parancsot a termin\u00e1lmez\u0151ben. Az M112 parancs hat\u00e1s\u00e1ra a Klipper \"le\u00e1ll\u00edt\u00e1s\" \u00e1llapotba ker\u00fcl, \u00e9s az OctoPrint megszak\u00edtja a kapcsolatot a Klipperrel. Navig\u00e1lj az OctoPrint csatlakoz\u00e1si ter\u00fclet\u00e9re, \u00e9s kattints a \"Kapcsol\u00f3d\u00e1s\" gombra, hogy az OctoPrint \u00fajra csatlakozzon. Navig\u00e1lj vissza a termin\u00e1l f\u00fclre, \u00e9s adj ki egy FIRMWARE_RESTART parancsot a Klipper hiba\u00e1llapot\u00e1nak t\u00f6rl\u00e9s\u00e9hez. E m\u0171veletsor befejez\u00e9se ut\u00e1n az el\u0151z\u0151 f\u0171t\u00e9sk\u00e9r\u00e9s t\u00f6rl\u0151dik, \u00e9s \u00faj nyomtat\u00e1s ind\u00edthat\u00f3.","title":"Hogyan tudom t\u00f6r\u00f6lni az M109/M190 \"v\u00e1rakoz\u00e1s a h\u0151m\u00e9rs\u00e9kletre\" k\u00e9r\u00e9st?"},{"location":"FAQ.html#meg-tudom-allapitani-hogy-a-nyomtato-vesztett-e-lepeseket","text":"Bizonyos \u00e9rtelemben igen. Ind\u00edtsa el a nyomtat\u00f3t, adj ki egy GET_POSITION parancsot, ind\u00edtsa el a nyomtat\u00e1st, ind\u00edtsa el \u00fajra, \u00e9s adj ki egy \u00fajabb GET_POSITION parancsot. Ezut\u00e1n hasonl\u00edtsa \u00f6ssze az mcu: sorban szerepl\u0151 \u00e9rt\u00e9keket. Ez hasznos lehet a be\u00e1ll\u00edt\u00e1sok, p\u00e9ld\u00e1ul a l\u00e9ptet\u0151motorok \u00e1ram\u00e1nak, gyorsul\u00e1s\u00e1nak \u00e9s sebess\u00e9g\u00e9nek be\u00e1ll\u00edt\u00e1s\u00e1hoz an\u00e9lk\u00fcl, hogy t\u00e9nylegesen nyomtatnod kellene valamit \u00e9s pazarolnod kellene a sz\u00e1lakat: csak futtass n\u00e9h\u00e1ny nagy sebess\u00e9g\u0171 mozg\u00e1st a GET_POSITION parancsok k\u00f6z\u00f6tt. Vedd figyelembe, hogy a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3k maguk is hajlamosak kiss\u00e9 elt\u00e9r\u0151 poz\u00edci\u00f3ban kioldani, \u00edgy a n\u00e9h\u00e1ny mikrol\u00e9p\u00e9snyi k\u00fcl\u00f6nbs\u00e9g val\u00f3sz\u00edn\u0171leg a v\u00e9g\u00e1ll\u00e1s pontatlans\u00e1g\u00e1nak eredm\u00e9nye. Maga a l\u00e9ptet\u0151motor csak 4 teljes l\u00e9p\u00e9senk\u00e9nt k\u00e9pes l\u00e9p\u00e9seket vesz\u00edteni. (Teh\u00e1t, ha 16 mikrol\u00e9p\u00e9st haszn\u00e1lunk, akkor a l\u00e9ptet\u0151 egy elvesztett l\u00e9p\u00e9se azt eredm\u00e9nyezi, hogy az \"mcu:\" l\u00e9p\u00e9ssz\u00e1ml\u00e1l\u00f3 64 mikrol\u00e9p\u00e9s t\u00f6bbsz\u00f6r\u00f6s\u00e9vel t\u00e9ved.)","title":"Meg tudom \u00e1llap\u00edtani, hogy a nyomtat\u00f3 vesztett-e l\u00e9p\u00e9seket?"},{"location":"FAQ.html#miert-jelent-hibat-a-klipper-elrontotta-a-nyomtatasomat","text":"R\u00f6vid v\u00e1lasz: A nyomtat\u00f3ink probl\u00e9m\u00e1kat \u00e9szlelnek, hogy a m\u00f6g\u00f6ttes probl\u00e9m\u00e1t orvosolni lehessen, \u00e9s kiv\u00e1l\u00f3 min\u0151s\u00e9g\u0171 nyomatokat kaphassunk. Semmik\u00e9ppen sem szeretn\u00e9nk, ha a nyomtat\u00f3ink csendben rossz min\u0151s\u00e9g\u0171 nyomatokat k\u00e9sz\u00edten\u00e9nek. Hossz\u00fa v\u00e1lasz: A Klipper \u00fagy lett megtervezve, hogy automatikusan megoldjon sz\u00e1mos \u00e1tmeneti probl\u00e9m\u00e1t. P\u00e9ld\u00e1ul automatikusan \u00e9szleli a kommunik\u00e1ci\u00f3s hib\u00e1kat, \u00e9s \u00fajratov\u00e1bb\u00edtja azokat; el\u0151re \u00fctemezi a m\u0171veleteket, \u00e9s t\u00f6bb r\u00e9tegben puffereli a parancsokat, hogy m\u00e9g id\u0151szakos interferencia eset\u00e9n is pontos id\u0151z\u00edt\u00e9st tegyen lehet\u0151v\u00e9. Ha azonban a szoftver olyan hib\u00e1t \u00e9szlel, amelyb\u0151l nem tud helyre\u00e1llni, ha \u00e9rv\u00e9nytelen m\u0171veletre kap parancsot, vagy ha azt \u00e9szleli, hogy rem\u00e9nytelen\u00fcl k\u00e9ptelen v\u00e9grehajtani a parancsolt feladatot, akkor a Klipper hib\u00e1t jelent. Ezekben a helyzetekben nagy a kock\u00e1zata annak, hogy rossz min\u0151s\u00e9g\u0171 nyomtat\u00e1s k\u00e9sz\u00fcl (vagy rosszabb). Rem\u00e9lj\u00fck, hogy a felhaszn\u00e1l\u00f3 figyelmeztet\u00e9se lehet\u0151v\u00e9 teszi sz\u00e1m\u00e1ra, hogy megoldja a kiv\u00e1lt\u00f3 probl\u00e9m\u00e1t, \u00e9s jav\u00edtsa a nyomatok \u00e1ltal\u00e1nos min\u0151s\u00e9g\u00e9t. Van n\u00e9h\u00e1ny kapcsol\u00f3d\u00f3 k\u00e9rd\u00e9s: Mi\u00e9rt nem sz\u00fcnetelteti a Klipper a nyomtat\u00e1st? Nem jelent figyelmeztet\u00e9st helyette? A nyomtat\u00e1s el\u0151tt nem ellen\u0151rzi a hib\u00e1kat? Figyelmen k\u00edv\u00fcl hagyja a hib\u00e1kat a felhaszn\u00e1l\u00f3 \u00e1ltal beg\u00e9pelt parancsokban? stb. Jelenleg a Klipper a G-k\u00f3d protokollt haszn\u00e1lva olvassa a parancsokat, \u00e9s sajnos a G-k\u00f3d parancsprotokoll nem el\u00e9g rugalmas ahhoz, hogy ezek az alternat\u00edv\u00e1k ma m\u00e1r praktikusak legyenek. A fejleszt\u0151k \u00e9rdekl\u0151dnek a felhaszn\u00e1l\u00f3i \u00e9lm\u00e9ny jav\u00edt\u00e1sa ir\u00e1nt a rendellenes esem\u00e9nyek sor\u00e1n, de ez v\u00e1rhat\u00f3an jelent\u0151s infrastruktur\u00e1lis munk\u00e1t ig\u00e9nyel (bele\u00e9rtve a G-k\u00f3dt\u00f3l val\u00f3 elt\u00e1volod\u00e1st).","title":"Mi\u00e9rt jelent hib\u00e1t a Klipper? Elrontotta a nyomtat\u00e1somat!"},{"location":"FAQ.html#hogyan-frissithetek-a-legujabb-szoftverre","text":"A szoftver friss\u00edt\u00e9s\u00e9nek els\u0151 l\u00e9p\u00e9se a legfrissebb konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00e1sok dokumentum \u00e1ttekint\u00e9se. Alkalmank\u00e9nt olyan v\u00e1ltoz\u00e1sok t\u00f6rt\u00e9nnek a szoftverben, amelyek miatt a felhaszn\u00e1l\u00f3knak friss\u00edteni\u00fck kell a be\u00e1ll\u00edt\u00e1saikat a szoftverfriss\u00edt\u00e9s r\u00e9szek\u00e9nt. A friss\u00edt\u00e9s el\u0151tt \u00e9rdemes \u00e1tn\u00e9zni ezt a dokumentumot. Ha k\u00e9szen \u00e1ll a friss\u00edt\u00e9sre, az \u00e1ltal\u00e1nos m\u00f3dszer az, hogy SSH-t haszn\u00e1lunk a Raspberry Pi-n, \u00e9s futtatjuk: cd ~/klipper git pull ~/klipper/scripts/install-octopi.sh Ezut\u00e1n \u00fajraford\u00edthatjuk \u00e9s \u00e9gethetj\u00fck a mikrokontroller k\u00f3dj\u00e1t. P\u00e9ld\u00e1ul: make menuconfig make clean make sudo service klipper stop make flash FLASH_DEVICE=/dev/ttyACM0 sudo service klipper start Azonban gyakran el\u0151fordul, hogy csak a gazdaszoftver v\u00e1ltozik. Ebben az esetben csak a gazdaszoftvert friss\u00edthetj\u00fck \u00e9s ind\u00edthatjuk \u00fajra: cd ~/klipper git pull sudo service klipper restart Ha e parancs haszn\u00e1lata ut\u00e1n a szoftver arra figyelmeztet, hogy a mikrokontrollert \u00fajra kell \u00e9getni, vagy m\u00e1s szokatlan hiba l\u00e9p fel, akkor k\u00f6vesse a fent le\u00edrt teljes friss\u00edt\u00e9si l\u00e9p\u00e9seket. Ha tov\u00e1bbra is fenn\u00e1llnak a hib\u00e1k, akkor ellen\u0151rizd a konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00e1sok dokumentumot, mivel lehet, hogy m\u00f3dos\u00edtani kell a nyomtat\u00f3 konfigur\u00e1ci\u00f3j\u00e1t. Ne feledd, hogy a RESTART \u00e9s FIRMWARE_RESTART G-k\u00f3d parancsok nem t\u00f6ltenek be \u00faj szoftvert a fenti \"sudo service klipper restart\" \u00e9s \"make flash\" parancsok sz\u00fcks\u00e9gesek a szoftverv\u00e1lt\u00e1s \u00e9rv\u00e9nybe l\u00e9p\u00e9s\u00e9hez.","title":"Hogyan friss\u00edthetek a leg\u00fajabb szoftverre?"},{"location":"FAQ.html#hogyan-tavolitsam-el-a-klippert","text":"A firmware oldalon semmi k\u00fcl\u00f6n\u00f6snek nem kell t\u00f6rt\u00e9nnie. Csak k\u00f6vesse az \u00faj firmware \u00e9get\u00e9si utas\u00edt\u00e1sait. A Raspberry Pi oldalon egy elt\u00e1vol\u00edt\u00f3 szkript el\u00e9rhet\u0151 a scripts/klipper-uninstall.sh alatt. P\u00e9ld\u00e1ul: sudo ~/klipper/scripts/klipper-uninstall.sh rm -rf ~/klippy-env ~/klipper","title":"Hogyan t\u00e1vol\u00edtsam el a klippert?"},{"location":"Features.html","text":"Funkci\u00f3k \u00b6 A Klipper sz\u00e1mos leny\u0171g\u00f6z\u0151 tulajdons\u00e1ggal rendelkezik: Nagy pontoss\u00e1g\u00fa l\u00e9ptet\u0151 mozg\u00e1s. A Klipper egy alkalmaz\u00e1sprocesszort (p\u00e9ld\u00e1ul egy olcs\u00f3 Raspberry Pi-t) haszn\u00e1l a nyomtat\u00f3 mozg\u00e1s\u00e1nak kisz\u00e1m\u00edt\u00e1s\u00e1hoz. Az alkalmaz\u00e1sprocesszor hat\u00e1rozza meg, hogy mikor l\u00e9pjenek az egyes l\u00e9ptet\u0151motorok, t\u00f6m\u00f6r\u00edti ezeket az esem\u00e9nyeket, tov\u00e1bb\u00edtja \u0151ket a mikrokontrollerhez, majd a mikrokontroller v\u00e9grehajtja az esem\u00e9nyeket a k\u00e9rt id\u0151pontban. Minden egyes l\u00e9ptet\u0151mozg\u00e1st 25 mikroszekundumos vagy ann\u00e1l jobb pontoss\u00e1ggal \u00fctemez\u00fcnk. A szoftver nem haszn\u00e1l kinematikai becsl\u00e9seket (mint p\u00e9ld\u00e1ul a Bresenham-algoritmus). Ehelyett a gyorsul\u00e1s fizik\u00e1ja \u00e9s a g\u00e9p kinematik\u00e1j\u00e1nak fizik\u00e1ja alapj\u00e1n sz\u00e1m\u00edtja ki a pontos l\u00e9p\u00e9sid\u0151ket. A pontosabb l\u00e9ptet\u0151mozg\u00e1s a nyomtat\u00f3 csendesebb \u00e9s stabilabb m\u0171k\u00f6d\u00e9s\u00e9t eredm\u00e9nyezi. Kateg\u00f3ri\u00e1j\u00e1ban legjobb teljes\u00edtm\u00e9ny. A Klipper k\u00e9pes magas l\u00e9ptet\u00e9si sebess\u00e9get el\u00e9rni mind az \u00faj, mind a r\u00e9gi mikrokontrollereken. M\u00e9g a r\u00e9gi 8 bites mikrovez\u00e9rl\u0151k is k\u00e9pesek 175 000 l\u00e9p\u00e9s/m\u00e1sodperc feletti sebess\u00e9get el\u00e9rni. Az \u00fajabb mikrokontrollereken m\u00e1sodpercenk\u00e9nt t\u00f6bb milli\u00f3 l\u00e9p\u00e9s is lehets\u00e9ges. A nagyobb l\u00e9ptet\u00e9si sebess\u00e9g nagyobb nyomtat\u00e1si sebess\u00e9get tesz lehet\u0151v\u00e9. A l\u00e9ptet\u00e9sek id\u0151z\u00edt\u00e9se m\u00e9g nagy sebess\u00e9gn\u00e9l is pontos marad, ami jav\u00edtja az \u00e1ltal\u00e1nos stabilit\u00e1st. A Klipper t\u00e1mogatja a t\u00f6bb mikrovez\u00e9rl\u0151vel rendelkez\u0151 nyomtat\u00f3kat. P\u00e9ld\u00e1ul egy mikrokontroller haszn\u00e1lhat\u00f3 az extruder vez\u00e9rl\u00e9s\u00e9re, m\u00edg egy m\u00e1sik a nyomtat\u00f3 f\u0171t\u0151berendez\u00e9s\u00e9t, m\u00edg egy harmadik a nyomtat\u00f3 t\u00f6bbi r\u00e9sz\u00e9t vez\u00e9rli. A Klipper gazdaszoftver \u00f3rajel-szinkroniz\u00e1ci\u00f3t val\u00f3s\u00edt meg a mikrovez\u00e9rl\u0151k k\u00f6z\u00f6tti \u00f3rajel-eltol\u00f3d\u00e1s figyelembev\u00e9tele \u00e9rdek\u00e9ben. A t\u00f6bb mikrovez\u00e9rl\u0151 enged\u00e9lyez\u00e9s\u00e9hez nincs sz\u00fcks\u00e9g k\u00fcl\u00f6n k\u00f3dra - csak n\u00e9h\u00e1ny extra sorra a konfigur\u00e1ci\u00f3s f\u00e1jlban. Konfigur\u00e1ci\u00f3 egyszer\u0171 konfigur\u00e1ci\u00f3s f\u00e1jlon kereszt\u00fcl. Nincs sz\u00fcks\u00e9g a mikrokontroller \u00fajrafriss\u00edt\u00e9s\u00e9re a be\u00e1ll\u00edt\u00e1sok megv\u00e1ltoztat\u00e1s\u00e1hoz. Az \u00f6sszes Klipper konfigur\u00e1ci\u00f3 egy szabv\u00e1nyos konfigur\u00e1ci\u00f3s f\u00e1jlban van t\u00e1rolva, amely k\u00f6nnyen szerkeszthet\u0151. Ez megk\u00f6nny\u00edti a hardver be\u00e1ll\u00edt\u00e1s\u00e1t \u00e9s karbantart\u00e1s\u00e1t. A Klipper t\u00e1mogatja a \"Smooth Pressure Advance\" - egy olyan mechanizmust, amely figyelembe veszi a nyom\u00e1st az extruderben. Ez cs\u00f6kkenti az extruder \"sziv\u00e1rg\u00e1s\u00e1t\" \u00e9s jav\u00edtja a nyomtat\u00e1si sarkok min\u0151s\u00e9g\u00e9t. A Klipper beavatkoz\u00e1sa nem vezet be pillanatnyi extruder sebess\u00e9gv\u00e1ltoz\u00e1st, ami jav\u00edtja az \u00e1ltal\u00e1nos stabilit\u00e1st \u00e9s robusztuss\u00e1got. A Klipper t\u00e1mogatja az \"Input Shaping\" funkci\u00f3t a rezg\u00e9sek nyomtat\u00e1si min\u0151s\u00e9gre gyakorolt hat\u00e1s\u00e1nak cs\u00f6kkent\u00e9se \u00e9rdek\u00e9ben. Ez cs\u00f6kkentheti vagy kik\u00fcsz\u00f6b\u00f6lheti a \"gy\u0171r\u0151d\u00e9st\" (m\u00e1s n\u00e9ven \"szellemk\u00e9p\", \"visszhang\" vagy \"hull\u00e1mz\u00e1s\") a nyomatokon. Lehet\u0151v\u00e9 teheti a gyorsabb nyomtat\u00e1si sebess\u00e9g el\u00e9r\u00e9s\u00e9t is, mik\u00f6zben a nyomtat\u00e1s min\u0151s\u00e9ge tov\u00e1bbra is magas marad. A Klipper egy \"interakt\u00edv megold\u00e1st\" haszn\u00e1l a pontos l\u00e9p\u00e9sid\u0151k kisz\u00e1m\u00edt\u00e1s\u00e1hoz egyszer\u0171 kinematikai egyenletekb\u0151l. Ez megk\u00f6nny\u00edti a Klipper \u00e1t\u00fcltet\u00e9s\u00e9t \u00faj t\u00edpus\u00fa robotokra, \u00e9s az id\u0151z\u00edt\u00e9st m\u00e9g \u00f6sszetett kinematika eset\u00e9n is pontosan tartja (nincs sz\u00fcks\u00e9g \"vonalszegment\u00e1l\u00e1sra\"). \u00c1tvihet\u0151 k\u00f3d. A Klipper ARM, AVR \u00e9s PRU alap\u00fa mikrovez\u00e9rl\u0151k\u00f6n is m\u0171k\u00f6dik. A megl\u00e9v\u0151 \"RepRap\" st\u00edlus\u00fa nyomtat\u00f3k hardveres m\u00f3dos\u00edt\u00e1s n\u00e9lk\u00fcl futtathatj\u00e1k a Klippert. Csak egy Raspberry Pi-t kell hozz\u00e1adni. A Klipper bels\u0151 k\u00f3delrendez\u00e9se megk\u00f6nny\u00edti m\u00e1s mikrokontroller-architekt\u00far\u00e1k t\u00e1mogat\u00e1s\u00e1t is. Egyszer\u0171bb k\u00f3d. A Klipper egy nagyon magas szint\u0171 nyelvet (Python) haszn\u00e1l a legt\u00f6bb k\u00f3dhoz. A kinematikai algoritmusok, a G-k\u00f3d elemz\u00e9se, a f\u0171t\u00e9si \u00e9s termisztor algoritmusok stb. mind Pythonban \u00edr\u00f3dnak. Ez megk\u00f6nny\u00edti az \u00faj funkci\u00f3k fejleszt\u00e9s\u00e9t is. Egy\u00e9ni programozhat\u00f3 makr\u00f3k. \u00daj G-k\u00f3d parancsok defini\u00e1lhat\u00f3k a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1ban (nincs sz\u00fcks\u00e9g k\u00f3dm\u00f3dos\u00edt\u00e1sra). Ezek a parancsok programozhat\u00f3k lehet\u0151v\u00e9 t\u00e9ve, hogy a nyomtat\u00f3 \u00e1llapot\u00e1t\u00f3l f\u00fcgg\u0151en k\u00fcl\u00f6nb\u00f6z\u0151 m\u0171veleteket hajtsanak v\u00e9gre. Be\u00e9p\u00edtett API-kiszolg\u00e1l\u00f3. A Klipper a szabv\u00e1nyos G-k\u00f3dos interf\u00e9sz mellett egy gazdag JSON-alap\u00fa alkalmaz\u00e1si fel\u00fcletet is t\u00e1mogat. Ez lehet\u0151v\u00e9 teszi a programoz\u00f3k sz\u00e1m\u00e1ra, hogy k\u00fcls\u0151 alkalmaz\u00e1sokat k\u00e9sz\u00edtsenek a nyomtat\u00f3 r\u00e9szletes vez\u00e9rl\u00e9s\u00e9vel. Tov\u00e1bbi funkci\u00f3k \u00b6 A Klipper sz\u00e1mos szabv\u00e1nyos 3D nyomtat\u00f3 funkci\u00f3t t\u00e1mogat: Egy\u00fcttm\u0171k\u00f6dik az Octoprint-tel. Ez lehet\u0151v\u00e9 teszi a nyomtat\u00f3 vez\u00e9rl\u00e9s\u00e9t egy hagyom\u00e1nyos webb\u00f6ng\u00e9sz\u0151vel. Ugyanaz a Raspberry Pi, amelyen a Klipper fut, k\u00e9pes az Octoprint futtat\u00e1s\u00e1ra is. Standard G-k\u00f3d t\u00e1mogat\u00e1s. A tipikus \"szeletel\u0151k\" (SuperSlicer, Cura, PrusaSlicer, stb.) \u00e1ltal el\u0151\u00e1ll\u00edtott \u00e1ltal\u00e1nos G-k\u00f3d parancsok t\u00e1mogatottak. T\u00f6bb extruder t\u00e1mogat\u00e1sa. A k\u00f6z\u00f6s f\u0171t\u0151berendez\u00e9ssel rendelkez\u0151 extrudereket \u00e9s a f\u00fcggetlen kocsikon (IDEX) l\u00e9v\u0151 extrudereket is t\u00e1mogatj\u00e1k. T\u00e1mogatja a cartesian, delta, corexy, corexz, hybrid-corexy, hybrid-corexz, rotary delta, pol\u00e1r \u00e9s k\u00e1belcs\u00f6rl\u0151 st\u00edlus\u00fa nyomtat\u00f3kat. T\u00e1rgyasztal szintez\u00e9s\u00e9nek automatikus t\u00e1mogat\u00e1sa. A Klipper konfigur\u00e1lhat\u00f3 alapszint\u0171 t\u00e1rgyasztal d\u0151l\u00e9s-\u00e9rz\u00e9kel\u00e9sre vagy a t\u00e1rgyasztal teljes h\u00e1l\u00f3s szintez\u00e9s\u00e9re. Ha a t\u00e1rgyasztal t\u00f6bb Z steppert haszn\u00e1l, akkor a Klipper a Z stepperek f\u00fcggetlen manipul\u00e1l\u00e1s\u00e1val is k\u00e9pes szintezni. A legt\u00f6bb Z magass\u00e1gm\u00e9r\u0151 szonda t\u00e1mogatott, bele\u00e9rtve a BL-Touch szond\u00e1kat \u00e9s a szerv\u00f3motoros szond\u00e1kat is. Automatikus delta kalibr\u00e1ci\u00f3 t\u00e1mogat\u00e1sa. A kalibr\u00e1l\u00f3 eszk\u00f6z alapvet\u0151 magass\u00e1gi kalibr\u00e1l\u00e1st, valamint tov\u00e1bbfejlesztett X \u00e9s Y dimenzi\u00f3 kalibr\u00e1l\u00e1st v\u00e9gezhet. A kalibr\u00e1l\u00e1s elv\u00e9gezhet\u0151 Z magass\u00e1gm\u00e9r\u0151vel vagy k\u00e9zi szintez\u0151vel. Az \u00e1ltal\u00e1nos h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k t\u00e1mogat\u00e1sa (pl. \u00e1ltal\u00e1nos termisztorok, AD595, AD597, AD849x, PT100, PT1000, MAX6675, MAX31855, MAX31856, MAX31865, BME280, HTU21D, DS18B20 \u00e9s LM75). Egyedi termisztorok \u00e9s egyedi anal\u00f3g h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k is konfigur\u00e1lhat\u00f3k. Lehet figyelni a mikrokontroller h\u0151m\u00e9rs\u00e9klet\u00e9t \u00e9s a Raspberry Pi processzor h\u0151m\u00e9rs\u00e9klet\u00e9t. Alap\u00e9rtelmez\u00e9s szerint a f\u0171t\u00e9sv\u00e9delem enged\u00e9lyezett. Standard ventil\u00e1torok, fejh\u0171t\u0151 ventil\u00e1torok \u00e9s h\u0151m\u00e9rs\u00e9klet-szab\u00e1lyozott ventil\u00e1torok t\u00e1mogat\u00e1sa. Nincs sz\u00fcks\u00e9g arra, hogy a ventil\u00e1torok folyamatosan m\u0171k\u00f6djenek, amikor a nyomtat\u00f3 \u00fcresj\u00e1ratban van. A fordulatsz\u00e1mm\u00e9r\u0151vel ell\u00e1tott ventil\u00e1torokn\u00e1l a ventil\u00e1torok fordulatsz\u00e1ma ellen\u0151rizhet\u0151. A TMC2130, TMC2208/TMC2224, TMC2209, TMC2660 \u00e9s TMC5160 l\u00e9ptet\u0151motor-meghajt\u00f3k fut\u00e1sidej\u0171 konfigur\u00e1ci\u00f3j\u00e1nak t\u00e1mogat\u00e1sa. A hagyom\u00e1nyos l\u00e9ptet\u0151motor-meghajt\u00f3k AD5206, MCP4451, MCP4728, MCP4018 \u00e9s PWM-t\u0171k\u00f6n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 \u00e1ramszab\u00e1lyoz\u00e1s\u00e1nak t\u00e1mogat\u00e1sa is biztos\u00edtott. K\u00f6zvetlen\u00fcl a nyomtat\u00f3hoz csatlakoztatott \u00e1ltal\u00e1nos LCD-kijelz\u0151k t\u00e1mogat\u00e1sa. Egy alap\u00e9rtelmezett men\u00fc is rendelkez\u00e9sre \u00e1ll. A kijelz\u0151 \u00e9s a men\u00fc tartalma a konfigur\u00e1ci\u00f3s f\u00e1jlon kereszt\u00fcl teljesen testreszabhat\u00f3. \u00c1lland\u00f3 gyorsul\u00e1s \u00e9s \"look-ahead\" t\u00e1mogat\u00e1s. Minden mozg\u00e1s fokozatosan gyorsul fel \u00e1ll\u00f3 helyzetb\u0151l utaz\u00f3sebess\u00e9gre, majd lassul vissza \u00e1ll\u00f3 helyzetbe. A be\u00e9rkez\u0151 G-k\u00f3dos mozg\u00e1sparancsok sorba ker\u00fclnek \u00e9s elemzik \u0151ket. A hasonl\u00f3 ir\u00e1ny\u00fa mozg\u00e1sok k\u00f6z\u00f6tti gyorsul\u00e1s optimaliz\u00e1lva lesz a nyomtat\u00e1si hib\u00e1k cs\u00f6kkent\u00e9se \u00e9s a teljes nyomtat\u00e1si id\u0151 jav\u00edt\u00e1sa \u00e9rdek\u00e9ben. A Klipper egy olyan \"l\u00e9ptet\u0151f\u00e1zis v\u00e9g\u00e1ll\u00e1s\" algoritmust val\u00f3s\u00edt meg, amely jav\u00edthatja a tipikus v\u00e9g\u00e1ll\u00e1skapcsol\u00f3k pontoss\u00e1g\u00e1t. Megfelel\u0151 be\u00e1ll\u00edt\u00e1s eset\u00e9n jav\u00edthatja a nyomtat\u00e1s els\u0151 r\u00e9teg t\u00e1rgyasztalhoz tapad\u00e1s\u00e1t. Sz\u00e1ljelenl\u00e9t-, sz\u00e1lmozg\u00e1s- \u00e9s sz\u00e1lsz\u00e9less\u00e9g-\u00e9rz\u00e9kel\u0151k t\u00e1mogat\u00e1sa. A rezg\u00e9sek m\u00e9r\u00e9s\u00e9nek \u00e9s r\u00f6gz\u00edt\u00e9s\u00e9nek t\u00e1mogat\u00e1sa adxl345 gyorsul\u00e1sm\u00e9r\u0151vel. A nyomtat\u00f3 rezg\u00e9s\u00e9nek \u00e9s zaj\u00e1nak cs\u00f6kkent\u00e9se \u00e9rdek\u00e9ben a r\u00f6vid \"cikcakk\" mozg\u00e1sok cs\u00facssebess\u00e9g\u00e9nek korl\u00e1toz\u00e1s\u00e1nak t\u00e1mogat\u00e1sa. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a Kinematika dokumentumot. Sz\u00e1mos gyakori nyomtat\u00f3hoz rendelkez\u00e9sre \u00e1llnak minta konfigur\u00e1ci\u00f3s f\u00e1jlok. List\u00e1t a config k\u00f6nyvt\u00e1rban tal\u00e1lja. A Klipper haszn\u00e1lata el\u0151tt olvasd el a telep\u00edt\u00e9si \u00fatmutat\u00f3t. L\u00e9p\u00e9s Teljes\u00edtm\u00e9ny\u00e9rt\u00e9k \u00b6 Az al\u00e1bbiakban a l\u00e9ptet\u0151 teljes\u00edtm\u00e9nytesztek eredm\u00e9nyeit mutatjuk be. A felt\u00fcntetett sz\u00e1mok a mikrokontroller m\u00e1sodpercenk\u00e9nti \u00f6sszes l\u00e9p\u00e9ssz\u00e1m\u00e1t jelentik. Mikrokontroller 1 akt\u00edv l\u00e9ptet\u0151 3 akt\u00edv l\u00e9ptet\u0151 16Mhz AVR 157K 99K 20Mhz AVR 196K 123K SAMD21 686K 471K STM32F042 814K 578K Beaglebone PRU 866K 708K STM32G0B1 1103K 790K STM32F103 1180K 818K SAM3X8E 1273K 981K SAM4S8C 1690K 1385K LPC1768 1923K 1351K LPC1769 2353K 1622K RP2040 2400K 1636K SAM4E8E 2500K 1674K SAMD51 3077K 1885K STM32F407 3652K 2459K STM32F446 3913K 2634K STM32H743 9091K 6061K Ha nem tudja, hogy egy adott lapon milyen mikrokontroller van, keresse meg a megfelel\u0151 config f\u00e1jlt , \u00e9s keresse meg a mikrokontroller nev\u00e9t a f\u00e1jl tetej\u00e9n l\u00e9v\u0151 megjegyz\u00e9sekben. A referencia\u00e9rt\u00e9kekkel kapcsolatos tov\u00e1bbi r\u00e9szletek a Referencia\u00e9rt\u00e9kek dokumentumban tal\u00e1lhat\u00f3k.","title":"Funkci\u00f3k"},{"location":"Features.html#funkciok","text":"A Klipper sz\u00e1mos leny\u0171g\u00f6z\u0151 tulajdons\u00e1ggal rendelkezik: Nagy pontoss\u00e1g\u00fa l\u00e9ptet\u0151 mozg\u00e1s. A Klipper egy alkalmaz\u00e1sprocesszort (p\u00e9ld\u00e1ul egy olcs\u00f3 Raspberry Pi-t) haszn\u00e1l a nyomtat\u00f3 mozg\u00e1s\u00e1nak kisz\u00e1m\u00edt\u00e1s\u00e1hoz. Az alkalmaz\u00e1sprocesszor hat\u00e1rozza meg, hogy mikor l\u00e9pjenek az egyes l\u00e9ptet\u0151motorok, t\u00f6m\u00f6r\u00edti ezeket az esem\u00e9nyeket, tov\u00e1bb\u00edtja \u0151ket a mikrokontrollerhez, majd a mikrokontroller v\u00e9grehajtja az esem\u00e9nyeket a k\u00e9rt id\u0151pontban. Minden egyes l\u00e9ptet\u0151mozg\u00e1st 25 mikroszekundumos vagy ann\u00e1l jobb pontoss\u00e1ggal \u00fctemez\u00fcnk. A szoftver nem haszn\u00e1l kinematikai becsl\u00e9seket (mint p\u00e9ld\u00e1ul a Bresenham-algoritmus). Ehelyett a gyorsul\u00e1s fizik\u00e1ja \u00e9s a g\u00e9p kinematik\u00e1j\u00e1nak fizik\u00e1ja alapj\u00e1n sz\u00e1m\u00edtja ki a pontos l\u00e9p\u00e9sid\u0151ket. A pontosabb l\u00e9ptet\u0151mozg\u00e1s a nyomtat\u00f3 csendesebb \u00e9s stabilabb m\u0171k\u00f6d\u00e9s\u00e9t eredm\u00e9nyezi. Kateg\u00f3ri\u00e1j\u00e1ban legjobb teljes\u00edtm\u00e9ny. A Klipper k\u00e9pes magas l\u00e9ptet\u00e9si sebess\u00e9get el\u00e9rni mind az \u00faj, mind a r\u00e9gi mikrokontrollereken. M\u00e9g a r\u00e9gi 8 bites mikrovez\u00e9rl\u0151k is k\u00e9pesek 175 000 l\u00e9p\u00e9s/m\u00e1sodperc feletti sebess\u00e9get el\u00e9rni. Az \u00fajabb mikrokontrollereken m\u00e1sodpercenk\u00e9nt t\u00f6bb milli\u00f3 l\u00e9p\u00e9s is lehets\u00e9ges. A nagyobb l\u00e9ptet\u00e9si sebess\u00e9g nagyobb nyomtat\u00e1si sebess\u00e9get tesz lehet\u0151v\u00e9. A l\u00e9ptet\u00e9sek id\u0151z\u00edt\u00e9se m\u00e9g nagy sebess\u00e9gn\u00e9l is pontos marad, ami jav\u00edtja az \u00e1ltal\u00e1nos stabilit\u00e1st. A Klipper t\u00e1mogatja a t\u00f6bb mikrovez\u00e9rl\u0151vel rendelkez\u0151 nyomtat\u00f3kat. P\u00e9ld\u00e1ul egy mikrokontroller haszn\u00e1lhat\u00f3 az extruder vez\u00e9rl\u00e9s\u00e9re, m\u00edg egy m\u00e1sik a nyomtat\u00f3 f\u0171t\u0151berendez\u00e9s\u00e9t, m\u00edg egy harmadik a nyomtat\u00f3 t\u00f6bbi r\u00e9sz\u00e9t vez\u00e9rli. A Klipper gazdaszoftver \u00f3rajel-szinkroniz\u00e1ci\u00f3t val\u00f3s\u00edt meg a mikrovez\u00e9rl\u0151k k\u00f6z\u00f6tti \u00f3rajel-eltol\u00f3d\u00e1s figyelembev\u00e9tele \u00e9rdek\u00e9ben. A t\u00f6bb mikrovez\u00e9rl\u0151 enged\u00e9lyez\u00e9s\u00e9hez nincs sz\u00fcks\u00e9g k\u00fcl\u00f6n k\u00f3dra - csak n\u00e9h\u00e1ny extra sorra a konfigur\u00e1ci\u00f3s f\u00e1jlban. Konfigur\u00e1ci\u00f3 egyszer\u0171 konfigur\u00e1ci\u00f3s f\u00e1jlon kereszt\u00fcl. Nincs sz\u00fcks\u00e9g a mikrokontroller \u00fajrafriss\u00edt\u00e9s\u00e9re a be\u00e1ll\u00edt\u00e1sok megv\u00e1ltoztat\u00e1s\u00e1hoz. Az \u00f6sszes Klipper konfigur\u00e1ci\u00f3 egy szabv\u00e1nyos konfigur\u00e1ci\u00f3s f\u00e1jlban van t\u00e1rolva, amely k\u00f6nnyen szerkeszthet\u0151. Ez megk\u00f6nny\u00edti a hardver be\u00e1ll\u00edt\u00e1s\u00e1t \u00e9s karbantart\u00e1s\u00e1t. A Klipper t\u00e1mogatja a \"Smooth Pressure Advance\" - egy olyan mechanizmust, amely figyelembe veszi a nyom\u00e1st az extruderben. Ez cs\u00f6kkenti az extruder \"sziv\u00e1rg\u00e1s\u00e1t\" \u00e9s jav\u00edtja a nyomtat\u00e1si sarkok min\u0151s\u00e9g\u00e9t. A Klipper beavatkoz\u00e1sa nem vezet be pillanatnyi extruder sebess\u00e9gv\u00e1ltoz\u00e1st, ami jav\u00edtja az \u00e1ltal\u00e1nos stabilit\u00e1st \u00e9s robusztuss\u00e1got. A Klipper t\u00e1mogatja az \"Input Shaping\" funkci\u00f3t a rezg\u00e9sek nyomtat\u00e1si min\u0151s\u00e9gre gyakorolt hat\u00e1s\u00e1nak cs\u00f6kkent\u00e9se \u00e9rdek\u00e9ben. Ez cs\u00f6kkentheti vagy kik\u00fcsz\u00f6b\u00f6lheti a \"gy\u0171r\u0151d\u00e9st\" (m\u00e1s n\u00e9ven \"szellemk\u00e9p\", \"visszhang\" vagy \"hull\u00e1mz\u00e1s\") a nyomatokon. Lehet\u0151v\u00e9 teheti a gyorsabb nyomtat\u00e1si sebess\u00e9g el\u00e9r\u00e9s\u00e9t is, mik\u00f6zben a nyomtat\u00e1s min\u0151s\u00e9ge tov\u00e1bbra is magas marad. A Klipper egy \"interakt\u00edv megold\u00e1st\" haszn\u00e1l a pontos l\u00e9p\u00e9sid\u0151k kisz\u00e1m\u00edt\u00e1s\u00e1hoz egyszer\u0171 kinematikai egyenletekb\u0151l. Ez megk\u00f6nny\u00edti a Klipper \u00e1t\u00fcltet\u00e9s\u00e9t \u00faj t\u00edpus\u00fa robotokra, \u00e9s az id\u0151z\u00edt\u00e9st m\u00e9g \u00f6sszetett kinematika eset\u00e9n is pontosan tartja (nincs sz\u00fcks\u00e9g \"vonalszegment\u00e1l\u00e1sra\"). \u00c1tvihet\u0151 k\u00f3d. A Klipper ARM, AVR \u00e9s PRU alap\u00fa mikrovez\u00e9rl\u0151k\u00f6n is m\u0171k\u00f6dik. A megl\u00e9v\u0151 \"RepRap\" st\u00edlus\u00fa nyomtat\u00f3k hardveres m\u00f3dos\u00edt\u00e1s n\u00e9lk\u00fcl futtathatj\u00e1k a Klippert. Csak egy Raspberry Pi-t kell hozz\u00e1adni. A Klipper bels\u0151 k\u00f3delrendez\u00e9se megk\u00f6nny\u00edti m\u00e1s mikrokontroller-architekt\u00far\u00e1k t\u00e1mogat\u00e1s\u00e1t is. Egyszer\u0171bb k\u00f3d. A Klipper egy nagyon magas szint\u0171 nyelvet (Python) haszn\u00e1l a legt\u00f6bb k\u00f3dhoz. A kinematikai algoritmusok, a G-k\u00f3d elemz\u00e9se, a f\u0171t\u00e9si \u00e9s termisztor algoritmusok stb. mind Pythonban \u00edr\u00f3dnak. Ez megk\u00f6nny\u00edti az \u00faj funkci\u00f3k fejleszt\u00e9s\u00e9t is. Egy\u00e9ni programozhat\u00f3 makr\u00f3k. \u00daj G-k\u00f3d parancsok defini\u00e1lhat\u00f3k a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1ban (nincs sz\u00fcks\u00e9g k\u00f3dm\u00f3dos\u00edt\u00e1sra). Ezek a parancsok programozhat\u00f3k lehet\u0151v\u00e9 t\u00e9ve, hogy a nyomtat\u00f3 \u00e1llapot\u00e1t\u00f3l f\u00fcgg\u0151en k\u00fcl\u00f6nb\u00f6z\u0151 m\u0171veleteket hajtsanak v\u00e9gre. Be\u00e9p\u00edtett API-kiszolg\u00e1l\u00f3. A Klipper a szabv\u00e1nyos G-k\u00f3dos interf\u00e9sz mellett egy gazdag JSON-alap\u00fa alkalmaz\u00e1si fel\u00fcletet is t\u00e1mogat. Ez lehet\u0151v\u00e9 teszi a programoz\u00f3k sz\u00e1m\u00e1ra, hogy k\u00fcls\u0151 alkalmaz\u00e1sokat k\u00e9sz\u00edtsenek a nyomtat\u00f3 r\u00e9szletes vez\u00e9rl\u00e9s\u00e9vel.","title":"Funkci\u00f3k"},{"location":"Features.html#tovabbi-funkciok","text":"A Klipper sz\u00e1mos szabv\u00e1nyos 3D nyomtat\u00f3 funkci\u00f3t t\u00e1mogat: Egy\u00fcttm\u0171k\u00f6dik az Octoprint-tel. Ez lehet\u0151v\u00e9 teszi a nyomtat\u00f3 vez\u00e9rl\u00e9s\u00e9t egy hagyom\u00e1nyos webb\u00f6ng\u00e9sz\u0151vel. Ugyanaz a Raspberry Pi, amelyen a Klipper fut, k\u00e9pes az Octoprint futtat\u00e1s\u00e1ra is. Standard G-k\u00f3d t\u00e1mogat\u00e1s. A tipikus \"szeletel\u0151k\" (SuperSlicer, Cura, PrusaSlicer, stb.) \u00e1ltal el\u0151\u00e1ll\u00edtott \u00e1ltal\u00e1nos G-k\u00f3d parancsok t\u00e1mogatottak. T\u00f6bb extruder t\u00e1mogat\u00e1sa. A k\u00f6z\u00f6s f\u0171t\u0151berendez\u00e9ssel rendelkez\u0151 extrudereket \u00e9s a f\u00fcggetlen kocsikon (IDEX) l\u00e9v\u0151 extrudereket is t\u00e1mogatj\u00e1k. T\u00e1mogatja a cartesian, delta, corexy, corexz, hybrid-corexy, hybrid-corexz, rotary delta, pol\u00e1r \u00e9s k\u00e1belcs\u00f6rl\u0151 st\u00edlus\u00fa nyomtat\u00f3kat. T\u00e1rgyasztal szintez\u00e9s\u00e9nek automatikus t\u00e1mogat\u00e1sa. A Klipper konfigur\u00e1lhat\u00f3 alapszint\u0171 t\u00e1rgyasztal d\u0151l\u00e9s-\u00e9rz\u00e9kel\u00e9sre vagy a t\u00e1rgyasztal teljes h\u00e1l\u00f3s szintez\u00e9s\u00e9re. Ha a t\u00e1rgyasztal t\u00f6bb Z steppert haszn\u00e1l, akkor a Klipper a Z stepperek f\u00fcggetlen manipul\u00e1l\u00e1s\u00e1val is k\u00e9pes szintezni. A legt\u00f6bb Z magass\u00e1gm\u00e9r\u0151 szonda t\u00e1mogatott, bele\u00e9rtve a BL-Touch szond\u00e1kat \u00e9s a szerv\u00f3motoros szond\u00e1kat is. Automatikus delta kalibr\u00e1ci\u00f3 t\u00e1mogat\u00e1sa. A kalibr\u00e1l\u00f3 eszk\u00f6z alapvet\u0151 magass\u00e1gi kalibr\u00e1l\u00e1st, valamint tov\u00e1bbfejlesztett X \u00e9s Y dimenzi\u00f3 kalibr\u00e1l\u00e1st v\u00e9gezhet. A kalibr\u00e1l\u00e1s elv\u00e9gezhet\u0151 Z magass\u00e1gm\u00e9r\u0151vel vagy k\u00e9zi szintez\u0151vel. Az \u00e1ltal\u00e1nos h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k t\u00e1mogat\u00e1sa (pl. \u00e1ltal\u00e1nos termisztorok, AD595, AD597, AD849x, PT100, PT1000, MAX6675, MAX31855, MAX31856, MAX31865, BME280, HTU21D, DS18B20 \u00e9s LM75). Egyedi termisztorok \u00e9s egyedi anal\u00f3g h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k is konfigur\u00e1lhat\u00f3k. Lehet figyelni a mikrokontroller h\u0151m\u00e9rs\u00e9klet\u00e9t \u00e9s a Raspberry Pi processzor h\u0151m\u00e9rs\u00e9klet\u00e9t. Alap\u00e9rtelmez\u00e9s szerint a f\u0171t\u00e9sv\u00e9delem enged\u00e9lyezett. Standard ventil\u00e1torok, fejh\u0171t\u0151 ventil\u00e1torok \u00e9s h\u0151m\u00e9rs\u00e9klet-szab\u00e1lyozott ventil\u00e1torok t\u00e1mogat\u00e1sa. Nincs sz\u00fcks\u00e9g arra, hogy a ventil\u00e1torok folyamatosan m\u0171k\u00f6djenek, amikor a nyomtat\u00f3 \u00fcresj\u00e1ratban van. A fordulatsz\u00e1mm\u00e9r\u0151vel ell\u00e1tott ventil\u00e1torokn\u00e1l a ventil\u00e1torok fordulatsz\u00e1ma ellen\u0151rizhet\u0151. A TMC2130, TMC2208/TMC2224, TMC2209, TMC2660 \u00e9s TMC5160 l\u00e9ptet\u0151motor-meghajt\u00f3k fut\u00e1sidej\u0171 konfigur\u00e1ci\u00f3j\u00e1nak t\u00e1mogat\u00e1sa. A hagyom\u00e1nyos l\u00e9ptet\u0151motor-meghajt\u00f3k AD5206, MCP4451, MCP4728, MCP4018 \u00e9s PWM-t\u0171k\u00f6n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 \u00e1ramszab\u00e1lyoz\u00e1s\u00e1nak t\u00e1mogat\u00e1sa is biztos\u00edtott. K\u00f6zvetlen\u00fcl a nyomtat\u00f3hoz csatlakoztatott \u00e1ltal\u00e1nos LCD-kijelz\u0151k t\u00e1mogat\u00e1sa. Egy alap\u00e9rtelmezett men\u00fc is rendelkez\u00e9sre \u00e1ll. A kijelz\u0151 \u00e9s a men\u00fc tartalma a konfigur\u00e1ci\u00f3s f\u00e1jlon kereszt\u00fcl teljesen testreszabhat\u00f3. \u00c1lland\u00f3 gyorsul\u00e1s \u00e9s \"look-ahead\" t\u00e1mogat\u00e1s. Minden mozg\u00e1s fokozatosan gyorsul fel \u00e1ll\u00f3 helyzetb\u0151l utaz\u00f3sebess\u00e9gre, majd lassul vissza \u00e1ll\u00f3 helyzetbe. A be\u00e9rkez\u0151 G-k\u00f3dos mozg\u00e1sparancsok sorba ker\u00fclnek \u00e9s elemzik \u0151ket. A hasonl\u00f3 ir\u00e1ny\u00fa mozg\u00e1sok k\u00f6z\u00f6tti gyorsul\u00e1s optimaliz\u00e1lva lesz a nyomtat\u00e1si hib\u00e1k cs\u00f6kkent\u00e9se \u00e9s a teljes nyomtat\u00e1si id\u0151 jav\u00edt\u00e1sa \u00e9rdek\u00e9ben. A Klipper egy olyan \"l\u00e9ptet\u0151f\u00e1zis v\u00e9g\u00e1ll\u00e1s\" algoritmust val\u00f3s\u00edt meg, amely jav\u00edthatja a tipikus v\u00e9g\u00e1ll\u00e1skapcsol\u00f3k pontoss\u00e1g\u00e1t. Megfelel\u0151 be\u00e1ll\u00edt\u00e1s eset\u00e9n jav\u00edthatja a nyomtat\u00e1s els\u0151 r\u00e9teg t\u00e1rgyasztalhoz tapad\u00e1s\u00e1t. Sz\u00e1ljelenl\u00e9t-, sz\u00e1lmozg\u00e1s- \u00e9s sz\u00e1lsz\u00e9less\u00e9g-\u00e9rz\u00e9kel\u0151k t\u00e1mogat\u00e1sa. A rezg\u00e9sek m\u00e9r\u00e9s\u00e9nek \u00e9s r\u00f6gz\u00edt\u00e9s\u00e9nek t\u00e1mogat\u00e1sa adxl345 gyorsul\u00e1sm\u00e9r\u0151vel. A nyomtat\u00f3 rezg\u00e9s\u00e9nek \u00e9s zaj\u00e1nak cs\u00f6kkent\u00e9se \u00e9rdek\u00e9ben a r\u00f6vid \"cikcakk\" mozg\u00e1sok cs\u00facssebess\u00e9g\u00e9nek korl\u00e1toz\u00e1s\u00e1nak t\u00e1mogat\u00e1sa. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a Kinematika dokumentumot. Sz\u00e1mos gyakori nyomtat\u00f3hoz rendelkez\u00e9sre \u00e1llnak minta konfigur\u00e1ci\u00f3s f\u00e1jlok. List\u00e1t a config k\u00f6nyvt\u00e1rban tal\u00e1lja. A Klipper haszn\u00e1lata el\u0151tt olvasd el a telep\u00edt\u00e9si \u00fatmutat\u00f3t.","title":"Tov\u00e1bbi funkci\u00f3k"},{"location":"Features.html#lepes-teljesitmenyertek","text":"Az al\u00e1bbiakban a l\u00e9ptet\u0151 teljes\u00edtm\u00e9nytesztek eredm\u00e9nyeit mutatjuk be. A felt\u00fcntetett sz\u00e1mok a mikrokontroller m\u00e1sodpercenk\u00e9nti \u00f6sszes l\u00e9p\u00e9ssz\u00e1m\u00e1t jelentik. Mikrokontroller 1 akt\u00edv l\u00e9ptet\u0151 3 akt\u00edv l\u00e9ptet\u0151 16Mhz AVR 157K 99K 20Mhz AVR 196K 123K SAMD21 686K 471K STM32F042 814K 578K Beaglebone PRU 866K 708K STM32G0B1 1103K 790K STM32F103 1180K 818K SAM3X8E 1273K 981K SAM4S8C 1690K 1385K LPC1768 1923K 1351K LPC1769 2353K 1622K RP2040 2400K 1636K SAM4E8E 2500K 1674K SAMD51 3077K 1885K STM32F407 3652K 2459K STM32F446 3913K 2634K STM32H743 9091K 6061K Ha nem tudja, hogy egy adott lapon milyen mikrokontroller van, keresse meg a megfelel\u0151 config f\u00e1jlt , \u00e9s keresse meg a mikrokontroller nev\u00e9t a f\u00e1jl tetej\u00e9n l\u00e9v\u0151 megjegyz\u00e9sekben. A referencia\u00e9rt\u00e9kekkel kapcsolatos tov\u00e1bbi r\u00e9szletek a Referencia\u00e9rt\u00e9kek dokumentumban tal\u00e1lhat\u00f3k.","title":"L\u00e9p\u00e9s Teljes\u00edtm\u00e9ny\u00e9rt\u00e9k"},{"location":"G-Codes.html","text":"G-k\u00f3dok \u00b6 Ez a dokumentum a Klipper \u00e1ltal t\u00e1mogatott parancsokat \u00edrja le. Ezek olyan parancsok, amelyeket az OctoPrint konzolj\u00e1ba lehet be\u00edrni. G-k\u00f3d parancsok \u00b6 A Klipper a k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d parancsokat t\u00e1mogatja: Move (G0 or G1): G1 [X<pos>] [Y<pos>] [Z<pos>] [E<pos>] [F<speed>] Tart\u00f3zkod\u00e1s: G4 P<milliszekundum> Ugr\u00e1s a forr\u00e1sra: G28 [X] [Y] [Z] Kapcsolja ki a motorokat: M18 vagy M84 V\u00e1rja meg, am\u00edg az aktu\u00e1lis mozdulat befejez\u0151dik: M400 Haszn\u00e1lj abszol\u00fat/relat\u00edv t\u00e1vols\u00e1gokat az extrud\u00e1l\u00e1shoz: M82 , M83 Abszol\u00fat/relat\u00edv koordin\u00e1t\u00e1k haszn\u00e1lata: G90 , G91 \u00c1ll\u00edtsd be a poz\u00edci\u00f3t: G92 [X<pos>] [Y<pos>] [Z<pos>] [E<pos>] A sebess\u00e9gt\u00e9nyez\u0151 fel\u00fclb\u00edr\u00e1l\u00e1si sz\u00e1zal\u00e9k\u00e1nak be\u00e1ll\u00edt\u00e1sa: M220 S<percent> Extrud\u00e1l\u00e1si t\u00e9nyez\u0151 fel\u00fclb\u00edr\u00e1l\u00e1si sz\u00e1zal\u00e9k\u00e1nak be\u00e1ll\u00edt\u00e1sa: M221 S<percent> Gyors\u00edt\u00e1s be\u00e1ll\u00edt\u00e1sa: M204 S<value> VAGY M204 P<value> T<value> Megjegyz\u00e9s: Ha az S nincs megadva, de a P \u00e9s a T meg van adva, akkor a gyorsul\u00e1s a P \u00e9s a T k\u00f6z\u00fcl a minimumra van be\u00e1ll\u00edtva. Ha a P vagy a T k\u00f6z\u00fcl csak az egyik van megadva, a parancsnak nincs hat\u00e1sa. Extruder h\u0151m\u00e9rs\u00e9klet\u00e9nek lek\u00e9rdez\u00e9se: M105 Az extruder h\u0151m\u00e9rs\u00e9klet\u00e9nek be\u00e1ll\u00edt\u00e1sa: M104 [T<index>] [S<temperature>] Be\u00e1ll\u00edtja az extruder h\u0151m\u00e9rs\u00e9klet\u00e9t \u00e9s v\u00e1rakozik: M109 [T<index>] S<temperature> Megjegyz\u00e9s: Az M109 mindig megv\u00e1rja, m\u00edg a h\u0151m\u00e9rs\u00e9klet be\u00e1ll a k\u00e9rt \u00e9rt\u00e9kre Be\u00e1ll\u00edtja a t\u00e1rgyasztal h\u0151m\u00e9rs\u00e9klet\u00e9t: M140 [S<temperature>] Be\u00e1ll\u00edtja a t\u00e1rgyasztal h\u0151m\u00e9rs\u00e9klet\u00e9t \u00e9s v\u00e1rakozik: M190 S<temperature> Megjegyz\u00e9s: Az M190 mindig megv\u00e1rja, hogy a h\u0151m\u00e9rs\u00e9klet be\u00e1lljon a k\u00e9rt \u00e9rt\u00e9kre A ventil\u00e1tor sebess\u00e9g\u00e9nek be\u00e1ll\u00edt\u00e1sa: M106 S<value> Kikapcsolja a ventil\u00e1tort: M107 V\u00e9szle\u00e1ll\u00edt\u00f3: M112 Jelenlegi poz\u00edci\u00f3 lek\u00e9rdez\u00e9se: M114 A firmware verzi\u00f3j\u00e1nak lek\u00e9rdez\u00e9se: M115 A fenti parancsokkal kapcsolatos tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a RepRap G-k\u00f3d dokument\u00e1ci\u00f3 f\u00e1jlt. A Klipper c\u00e9lja, hogy t\u00e1mogassa az \u00e1ltal\u00e1nos 3. f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 szoftverek (pl. OctoPrint, Printrun, Slic3r, Cura, stb.) \u00e1ltal gener\u00e1lt G-k\u00f3d parancsokat a szabv\u00e1nyos konfigur\u00e1ci\u00f3ikban. Nem c\u00e9l, hogy minden lehets\u00e9ges G-k\u00f3d parancsot t\u00e1mogasson. Ehelyett a Klipper az ember \u00e1ltal olvashat\u00f3 \"kiterjesztett G-k\u00f3d\" parancsokat r\u00e9szes\u00edti el\u0151nyben. Hasonl\u00f3k\u00e9ppen, a G-k\u00f3d termin\u00e1l kimenete is csak ember \u00e1ltal olvashat\u00f3. L\u00e1sd az API Szerver dokumentumot , ha a Klippert k\u00fcls\u0151 szoftverb\u0151l ir\u00e1ny\u00edtod. Ha egy kev\u00e9sb\u00e9 gyakori G-k\u00f3d parancsra van sz\u00fcks\u00e9g, akkor azt egy egy\u00e9ni gcode_macro config section seg\u00edts\u00e9g\u00e9vel lehet megval\u00f3s\u00edtani. P\u00e9ld\u00e1ul ezt haszn\u00e1lhatn\u00e1nk a k\u00f6vetkez\u0151kre: G12 , G29 , G30 , G31 , M42 , M80 , M81 , T1 stb. Tov\u00e1bbi parancsok \u00b6 A Klipper \"kiterjesztett\" G-k\u00f3d parancsokat haszn\u00e1l az \u00e1ltal\u00e1nos konfigur\u00e1ci\u00f3hoz \u00e9s \u00e1llapothoz. Ezek a kiterjesztett parancsok mind hasonl\u00f3 form\u00e1tumot k\u00f6vetnek, egy parancsn\u00e9vvel kezd\u0151dnek, \u00e9s egy vagy t\u00f6bb param\u00e9ter k\u00f6vetheti \u0151ket. P\u00e9ld\u00e1ul: SET_SERVO SERVO=myservo ANGLE=5.3 . Ebben a parancssorban a parancsok \u00e9s param\u00e9terek nagybet\u0171vel szerepelnek, azonban a nagy- \u00e9s kisbet\u0171ket nem kell figyelembe venni. (Teh\u00e1t a \"SET_SERVO\" \u00e9s a \"set_servo\" mindkett\u0151 ugyanazt jelenti.) Ez a szakasz a Klipper modul neve szerint van rendezve, amely \u00e1ltal\u00e1ban a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlban megadott szakaszneveket k\u00f6veti. Vedd figyelembe, hogy egyes modulok automatikusan bet\u00f6lt\u0151dnek. [adxl345] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha az adxl345 konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. ACCELEROMETER_MEASURE \u00b6 ACCELEROMETER_MEASURE [CHIP=<config_name>] [NAME=<value>] : A gyorsul\u00e1sm\u00e9r\u0151 m\u00e9r\u00e9sek elind\u00edt\u00e1sa a k\u00e9rt m\u00e1sodpercenk\u00e9nti mintav\u00e9telek sz\u00e1m\u00e1val. Ha a CHIP nincs megadva, az alap\u00e9rtelmezett \u00e9rt\u00e9k \"adxl345\". A parancs start-stop \u00fczemm\u00f3dban m\u0171k\u00f6dik: az els\u0151 v\u00e9grehajt\u00e1skor elind\u00edtja a m\u00e9r\u00e9seket, a k\u00f6vetkez\u0151 v\u00e9grehajt\u00e1skor le\u00e1ll\u00edtja azokat. A m\u00e9r\u00e9sek eredm\u00e9nyei a /tmp/adxl345-<chip>-<name> .csv nev\u0171 f\u00e1jlba ker\u00fclnek ki\u00edr\u00e1sra , ahol <chip> a gyorsul\u00e1sm\u00e9r\u0151 chip neve ( my_chip_name from [adxl345 my_chip_name] ) \u00e9s <name> az opcion\u00e1lis NAME param\u00e9ter. Ha a NAME nincs megadva, akkor az alap\u00e9rtelmezett \u00e9rt\u00e9k az aktu\u00e1lis id\u0151 \"\u00c9\u00c9\u00c9\u00c9\u00c9HHNN_\u00d3\u00d3PPMM\" form\u00e1tumban. Ha a gyorsul\u00e1sm\u00e9r\u0151nek nincs neve a konfigur\u00e1ci\u00f3s szakaszban (egyszer\u0171en [adxl345] ), akkor a <chip> n\u00e9vr\u00e9sz nem gener\u00e1l\u00f3dik. ACCELEROMETER_QUERY \u00b6 ACCELEROMETER_QUERY [CHIP=<config_name>] [RATE=<value>] : lek\u00e9rdezi a gyorsul\u00e1sm\u00e9r\u0151 aktu\u00e1lis \u00e9rt\u00e9k\u00e9t. Ha a CHIP nincs megadva, az alap\u00e9rtelmezett\"adxl345\". Ha a RATE nincs megadva, az alap\u00e9rtelmezett \u00e9rt\u00e9ket haszn\u00e1lja. Ez a parancs hasznos az ADXL345 gyorsul\u00e1sm\u00e9r\u0151vel val\u00f3 kapcsolat tesztel\u00e9s\u00e9re. A visszaadott \u00e9rt\u00e9kek egyik\u00e9nek a szabades\u00e9ses gyorsul\u00e1snak kell lennie (+/- a chip alapzaja). ACCELEROMETER_DEBUG_READ \u00b6 ACCELEROMETER_DEBUG_READ [CHIP=<config_name>] REG=<register> : lek\u00e9rdezi az ADXL345 \"register\" (pl. 44 vagy 0x2C) regiszter\u00e9t. Hasznos lehet hibakeres\u00e9si c\u00e9lokra. ACCELEROMETER_DEBUG_WRITE \u00b6 ACCELEROMETER_DEBUG_WRITE [CHIP=<config_name>] REG=<register> VAL=<value> : Nyers \"\u00e9rt\u00e9k\" \u00edr\u00e1sa a \"register\"-be. Mind az \"\u00e9rt\u00e9k\", mind a \"register\" lehet decim\u00e1lis vagy hexadecim\u00e1lis eg\u00e9sz sz\u00e1m. Haszn\u00e1ld \u00f3vatosan, \u00e9s hivatkozzon az ADXL345 adatlapj\u00e1ra. [angle] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha az sz\u00f6g konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. ANGLE_CALIBRATE \u00b6 ANGLE_CALIBRATE CHIP=<chip_name> : Sz\u00f6gkalibr\u00e1l\u00e1s v\u00e9grehajt\u00e1sa az adott \u00e9rz\u00e9kel\u0151n (kell lennie egy [angle chip_name] konfigur\u00e1ci\u00f3s szakasznak, amely megadta a stepper param\u00e9tert). FONTOS! Ez az eszk\u00f6z a norm\u00e1l kinematikai hat\u00e1r\u00e9rt\u00e9kek ellen\u0151rz\u00e9se n\u00e9lk\u00fcl adja ki a l\u00e9ptet\u0151motor mozg\u00e1s\u00e1t. Ide\u00e1lis esetben a motort a kalibr\u00e1l\u00e1s elv\u00e9gz\u00e9se el\u0151tt le kell v\u00e1lasztani az adott kocsir\u00f3l. Ha a l\u00e9ptet\u0151motor nem kapcsolhat\u00f3 le a nyomtat\u00f3r\u00f3l, gy\u0151z\u0151dj meg r\u00f3la, hogy a kocsi a kalibr\u00e1l\u00e1s megkezd\u00e9se el\u0151tt a s\u00edn k\u00f6zep\u00e9n\u00e9l van. (A l\u00e9ptet\u0151motor k\u00e9t teljes fordulatot el\u0151re vagy h\u00e1tra mozoghat a teszt sor\u00e1n.) A teszt elv\u00e9gz\u00e9se ut\u00e1n haszn\u00e1ld a SAVE_CONFIG parancsot a kalibr\u00e1ci\u00f3s adatok printer.cfg f\u00e1jlba t\u00f6rt\u00e9n\u0151 ment\u00e9s\u00e9hez. Az eszk\u00f6z haszn\u00e1lat\u00e1hoz telep\u00edteni kell a Python \"numpy\" csomagot (tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a rezonancia m\u00e9r\u00e9se dokumentumot . ANGLE_DEBUG_READ \u00b6 ANGLE_DEBUG_READ CHIP=<config_name> REG=<register> : A \"regiszter\" (pl. 44 vagy 0x2C) \u00e9rz\u00e9kel\u0151regiszter lek\u00e9rdez\u00e9se. Hasznos lehet hibakeres\u00e9si c\u00e9lokra. Ez csak a TLE5012B chipek eset\u00e9ben \u00e9rhet\u0151 el. ANGLE_DEBUG_WRITE \u00b6 ANGLE_DEBUG_WRITE CHIP=<config_name> REG=<register> VAL=<value> : Nyers \"\u00e9rt\u00e9k\" \u00edr\u00e1sa a \"register\" regiszter\u00e9be. Mind az \"\u00e9rt\u00e9k\", mind a \"regiszter\" lehet decim\u00e1lis vagy hexadecim\u00e1lis eg\u00e9sz sz\u00e1m. Haszn\u00e1ld \u00f3vatosan, \u00e9s hivatkozzon az \u00e9rz\u00e9kel\u0151 adatlapj\u00e1ra. Ez csak a TLE5012B chipek eset\u00e9ben \u00e9rhet\u0151 el. [bed_mesh] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a bed_mesh konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g az t\u00e1rgyasztal h\u00e1l\u00f3 \u00fatmutat\u00f3t ). BED_MESH_CALIBRATE \u00b6 BED_MESH_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>] [<mesh_parameter>=<value>] : Ez a parancs a t\u00e1rgyasztalt a konfigur\u00e1ci\u00f3ban megadott param\u00e9terek \u00e1ltal gener\u00e1lt pontok seg\u00edts\u00e9g\u00e9vel szintezi. A szintez\u00e9s ut\u00e1n egy h\u00e1l\u00f3 gener\u00e1l\u00f3dik, \u00e9s a Z elmozdul\u00e1s a h\u00e1l\u00f3nak megfelel\u0151en ker\u00fcl be\u00e1ll\u00edt\u00e1sra. Az opcion\u00e1lis szintez\u0151 param\u00e9terekkel kapcsolatos r\u00e9szletek\u00e9rt l\u00e1sd a PROBE parancsot. Ha a METHOD=manual parancsot adta meg, akkor a k\u00e9zi szintez\u0151 eszk\u00f6z aktiv\u00e1l\u00f3dik. Az eszk\u00f6z aktiv\u00e1l\u00e1sa k\u00f6zben el\u00e9rhet\u0151 tov\u00e1bbi parancsok r\u00e9szleteit l\u00e1sd a fenti MANUAL_PROBE parancsban. BED_MESH_OUTPUT \u00b6 BED_MESH_OUTPUT PGP=[<0:1>] : Ez a parancs az aktu\u00e1lis m\u00e9rt Z \u00e9rt\u00e9keket \u00e9s az aktu\u00e1lis h\u00e1l\u00f3\u00e9rt\u00e9keket adja ki a termin\u00e1lra. A PGP=1 megad\u00e1sa eset\u00e9n a bed_mesh \u00e1ltal gener\u00e1lt X, Y koordin\u00e1t\u00e1k \u00e9s a hozz\u00e1juk tartoz\u00f3 indexek ker\u00fclnek a termin\u00e1lra. BED_MESH_MAP \u00b6 BED_MESH_MAP : Ez a parancs a BED_MESH_OUTPUT-hoz hasonl\u00f3an a h\u00e1l\u00f3 aktu\u00e1lis \u00e1llapot\u00e1t \u00edrja ki a termin\u00e1lra. Az \u00e9rt\u00e9kek ember \u00e1ltal olvashat\u00f3 form\u00e1tumban t\u00f6rt\u00e9n\u0151 ki\u00edr\u00e1sa helyett az \u00e1llapotot JSON form\u00e1tumban szerializ\u00e1lja. Ez lehet\u0151v\u00e9 teszi az OctoPrint pluginek sz\u00e1m\u00e1ra, hogy k\u00f6nnyen r\u00f6gz\u00edts\u00e9k az adatokat, \u00e9s a t\u00e1rgyasztal felsz\u00edn\u00e9t k\u00f6zel\u00edt\u0151 magass\u00e1gi t\u00e9rk\u00e9peket hozzanak l\u00e9tre. BED_MESH_CLEAR \u00b6 BED_MESH_CLEAR : Ez a parancs t\u00f6rli a h\u00e1l\u00f3t \u00e9s elt\u00e1vol\u00edt minden Z-be\u00e1ll\u00edt\u00e1st. Aj\u00e1nlott ezt a parancsot befejez\u0151 G-k\u00f3dba tenni. BED_MESH_PROFILE \u00b6 BED_MESH_PROFILE LOAD=<name> SAVE=<name> REMOVE=<name> : Ez a parancs a h\u00e1l\u00f3 \u00e1llapot\u00e1nak profilkezel\u00e9s\u00e9t biztos\u00edtja. A LOAD a h\u00e1l\u00f3 \u00e1llapot\u00e1t a megadott n\u00e9vnek megfelel\u0151 profilb\u00f3l \u00e1ll\u00edtja vissza. A SAVE parancs az aktu\u00e1lis h\u00e1l\u00f3\u00e1llapotot a megadott n\u00e9vnek megfelel\u0151 profilba menti. A REMOVE a megadott n\u00e9vnek megfelel\u0151 profilt t\u00f6rli a tart\u00f3s mem\u00f3ri\u00e1b\u00f3l. Megjegyzend\u0151, hogy a SAVE vagy REMOVE m\u0171veletek lefuttat\u00e1sa ut\u00e1n a SAVE_CONFIG parancsot kell futtatni, hogy a tart\u00f3s mem\u00f3ri\u00e1ban v\u00e9grehajtott v\u00e1ltoztat\u00e1sok v\u00e9glegesek legyenek. BED_MESH_OFFSET \u00b6 BED_MESH_OFFSET [X=<value>] [Y=<value>] : X \u00e9s/vagy Y eltol\u00e1st alkalmazza a h\u00e1l\u00f3keres\u00e9shez. Ez a f\u00fcggetlen extruderekkel rendelkez\u0151 nyomtat\u00f3kn\u00e1l hasznos, mivel az eltol\u00e1s sz\u00fcks\u00e9ges a szersz\u00e1mcsere ut\u00e1ni helyes Z-be\u00e1ll\u00edt\u00e1shoz. [bed_screws] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha az t\u00e1rgyasztal szintez\u0151 csavarok konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a k\u00e9zi szintez\u00e9s \u00fatmutat\u00f3t ). BED_SCREWS_ADJUST \u00b6 BED_SCREWS_ADJUST : Ez a parancs a t\u00e1rgyasztal \u00e1ll\u00edt\u00f3csavarok be\u00e1ll\u00edt\u00e1si eszk\u00f6z\u00e9t h\u00edvja el\u0151. A f\u00fav\u00f3k\u00e1t k\u00fcl\u00f6nb\u00f6z\u0151 helyekre k\u00fcldi (a konfigur\u00e1ci\u00f3s f\u00e1jlban meghat\u00e1rozottak szerint), \u00e9s lehet\u0151v\u00e9 teszi a t\u00e1rgyasztal \u00e1ll\u00edt\u00f3csavarok be\u00e1ll\u00edt\u00e1s\u00e1t, hogy a t\u00e1rgyasztal \u00e1lland\u00f3 t\u00e1vols\u00e1gra legyen a f\u00fav\u00f3k\u00e1t\u00f3l. [bed_tilt] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a bed_tilt konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. BED_TILT_CALIBRATE \u00b6 BED_TILT_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>] : Ez a parancs a konfigur\u00e1ci\u00f3ban megadott pontokat vizsg\u00e1lja, majd friss\u00edtett X \u00e9s Y d\u0151l\u00e9sbe\u00e1ll\u00edt\u00e1sokat javasol. Az opcion\u00e1lis m\u00e9r\u00e9si param\u00e9terekkel kapcsolatos r\u00e9szletek\u00e9rt l\u00e1sd a PROBE parancsot. Ha a METHOD=manual van megadva, akkor a k\u00e9zi szintez\u0151 aktiv\u00e1l\u00f3dik. Az ezen eszk\u00f6z aktiv\u00e1l\u00e1sakor el\u00e9rhet\u0151 tov\u00e1bbi parancsok r\u00e9szleteit l\u00e1sd a fenti MANUAL_PROBE parancsban. [bltouch] \u00b6 A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a bltouch konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a BL-Touch \u00fatmutat\u00f3t ). BLTOUCH_DEBUG \u00b6 BLTOUCH_DEBUG COMMAND=<command> : Ez egy parancsot k\u00fcld a BLTouch-nak. Hasznos lehet a hibakeres\u00e9shez. A rendelkez\u00e9sre \u00e1ll\u00f3 parancsok a k\u00f6vetkez\u0151k: pin_down , touch_mode , pin_up , self_test , reset . A BL-Touch V3.0 vagy V3.1 t\u00e1mogathatja a set_5V_output_mode , set_OD_output_mode , output_mode_store parancsokat is. BLTOUCH_STORE \u00b6 BLTOUCH_STORE MODE=<output_mode> : Ez egy kimeneti m\u00f3dot t\u00e1rol a BLTouch V3.1 EEPROM-j\u00e1ban: 5V , OD [configfile] \u00b6 A configfile modul automatikusan bet\u00f6lt\u0151dik. SAVE_CONFIG \u00b6 SAVE_CONFIG : Ez a parancs fel\u00fcl\u00edrja a nyomtat\u00f3 f\u0151 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1t \u00e9s \u00fajraind\u00edtja a gazdaszoftvert. Ez a parancs m\u00e1s kalibr\u00e1l\u00e1si parancsokkal egy\u00fctt haszn\u00e1lhat\u00f3 a kalibr\u00e1ci\u00f3s tesztek eredm\u00e9nyeinek t\u00e1rol\u00e1s\u00e1ra. [delayed_gcode] \u00b6 A k\u00f6vetkez\u0151 parancs akkor enged\u00e9lyezett, ha a delayed_gcode konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a parancssablon \u00fatmutat\u00f3t ). UPDATE_DELAYED_GCODE \u00b6 UPDATE_DELAYED_GCODE [ID=<name>] [DURATION=<seconds>] : Friss\u00edti az azonos\u00edtott [delayed_gcode] k\u00e9sleltet\u00e9si id\u0151tartam\u00e1t \u00e9s elind\u00edtja a G-k\u00f3d v\u00e9grehajt\u00e1s\u00e1nak id\u0151z\u00edt\u0151j\u00e9t. A 0 \u00e9rt\u00e9k t\u00f6rli a f\u00fcgg\u0151ben l\u00e9v\u0151 k\u00e9sleltetett G-k\u00f3d v\u00e9grehajt\u00e1s\u00e1t. [delta_calibrate] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a delta_kalibrate konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a delta kalibr\u00e1ci\u00f3s \u00fatmutat\u00f3t ). DELTA_CALIBRATE \u00b6 DELTA_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>] : Ez a parancs a t\u00e1rgyasztal h\u00e9t pontj\u00e1t vizsg\u00e1lja meg, \u00e9s friss\u00edtett v\u00e9g\u00e1ll\u00e1sok, toronysz\u00f6gek \u00e9s sugarak aj\u00e1nl\u00e1s\u00e1ra szolg\u00e1l. Az opcion\u00e1lis m\u00e9r\u00e9si param\u00e9terekkel kapcsolatos r\u00e9szletek\u00e9rt l\u00e1sd a PROBE parancsot. Ha a METHOD=manual \u00e9rt\u00e9k van megadva, akkor a k\u00e9zi szintez\u00e9s aktiv\u00e1l\u00f3dik. L\u00e1sd a fenti MANUAL_PROBE parancsot a tov\u00e1bbi parancsok r\u00e9szletei\u00e9rt, amelyek akkor \u00e1llnak rendelkez\u00e9sre, amikor ez az eszk\u00f6z akt\u00edv. DELTA_ANALYZE \u00b6 DELTA_ANALYZE : Ez a parancs a fokozott delta-kalibr\u00e1l\u00e1s sor\u00e1n haszn\u00e1latos. A r\u00e9szletek\u00e9rt l\u00e1sd a Delta kalibr\u00e1l\u00e1s c\u00edm\u0171 dokumentumot. [display] \u00b6 A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a konfigur\u00e1ci\u00f3s szakasz megjelen\u00edt\u00e9se enged\u00e9lyezve van. SET_DISPLAY_GROUP \u00b6 SET_DISPLAY_GROUP [DISPLAY=<display>] GROUP=<group> : Az LCD-kijelz\u0151 akt\u00edv kijelz\u0151csoportj\u00e1nak be\u00e1ll\u00edt\u00e1sa. Ez lehet\u0151v\u00e9 teszi t\u00f6bb kijelz\u0151 adatcsoport defini\u00e1l\u00e1s\u00e1t a konfigur\u00e1ci\u00f3ban, pl. [display_data <group> <elementname>] \u00e9s a k\u00f6zt\u00fck val\u00f3 v\u00e1lt\u00e1st ezzel a kiterjesztett G-k\u00f3d paranccsal. Ha a DISPLAY nincs megadva, akkor alap\u00e9rtelmez\u00e9s szerint \"display\" (az els\u0151dleges kijelz\u0151). [display_status] \u00b6 A display_status modul automatikusan bet\u00f6lt\u0151dik, ha a display konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. A k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d parancsokat biztos\u00edtja: \u00dczenet megjelen\u00edt\u00e9se: M117 <message> Nyomtat\u00e1si folyamat sz\u00e1zal\u00e9kos ar\u00e1ny be\u00e1ll\u00edt\u00e1sa: M73 P<percent> A k\u00f6vetkez\u0151 kiterjesztett G-k\u00f3d parancs is rendelkez\u00e9sre \u00e1ll: SET_DISPLAY_TEXT MSG=<message> : Az M117 paranccsal egyen\u00e9rt\u00e9k\u0171 m\u0171velet, amely az MSG c\u00edmen megadott \u00fczenetet \u00e1ll\u00edtja be aktu\u00e1lis kijelz\u0151\u00fczenetk\u00e9nt. Ha az MSG elmarad, a kijelz\u0151 t\u00f6rl\u0151dik. [dual_carriage] \u00b6 A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a dual_carriage konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. SET_DUAL_CARRIAGE \u00b6 SET_DUAL_CARRIAGE CARRIAGE=[0|1] : Ez a parancs be\u00e1ll\u00edtja az akt\u00edv kocsit. \u00c1ltal\u00e1ban az activate_gcode \u00e9s deactivate_gcode mez\u0151kb\u0151l h\u00edvhat\u00f3 el\u0151 t\u00f6bb extruder konfigur\u00e1ci\u00f3ban. [endstop_phase] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha az endstop_phase konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a v\u00e9g\u00e1ll\u00e1s f\u00e1zis \u00fatmutat\u00f3t ). ENDSTOP_PHASE_CALIBRATE \u00b6 ENDSTOP_PHASE_CALIBRATE [STEPPER=<config_name>] : Ha nincs megadva STEPPER param\u00e9ter, akkor ez a parancs a m\u00faltbeli kezd\u0151pont felv\u00e9teli m\u0171veletek sor\u00e1n a v\u00e9g\u00e1ll\u00e1si l\u00e9pcs\u0151f\u00e1zisok statisztik\u00e1it jelenti. STEPPER param\u00e9ter megad\u00e1sa eset\u00e9n gondoskodik arr\u00f3l, hogy a megadott v\u00e9g\u00e1ll\u00e1sf\u00e1zis-be\u00e1ll\u00edt\u00e1s a konfigur\u00e1ci\u00f3s f\u00e1jlba \u00edr\u00f3djon (a SAVE_CONFIG parancs seg\u00edts\u00e9g\u00e9vel). [exclude_object] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha az exclude_object konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a t\u00e1rgy\u00fatmutat\u00f3 kiz\u00e1r\u00e1sa ): EXCLUDE_OBJECT \u00b6 EXCLUDE_OBJECT [NAME=object_name] [CURRENT=1] [RESET=1] : Param\u00e9terek n\u00e9lk\u00fcl az \u00f6sszes jelenleg kiz\u00e1rt objektum list\u00e1j\u00e1t adja vissza. Ha a NAME param\u00e9tert adjuk meg, a megnevezett objektumot kiz\u00e1rjuk a nyomtat\u00e1sb\u00f3l. A CURRENT param\u00e9ter megad\u00e1sakor az aktu\u00e1lis objektumot kiz\u00e1rja a nyomtat\u00e1sb\u00f3l. A RESET param\u00e9ter megad\u00e1sakor a kiz\u00e1rt objektumok list\u00e1ja t\u00f6rl\u0151dik. Ezen k\u00edv\u00fcl a NAME bevon\u00e1sa csak a megnevezett objektumot fogja vissza\u00e1ll\u00edtani. Ez nyomtat\u00e1si hib\u00e1kat okozhat, ha a r\u00e9tegek m\u00e1r kihagy\u00e1sra ker\u00fcltek. EXCLUDE_OBJECT_DEFINE \u00b6 EXCLUDE_OBJECT_DEFINE [NAME=object_name [CENTER=X,Y] [POLYGON=[[x,y],...]] [RESET=1] [JSON=1] : A f\u00e1jlban l\u00e9v\u0151 objektum \u00f6sszefoglal\u00f3j\u00e1t adja meg. Ha nem adunk meg param\u00e9tereket, akkor a Klipper \u00e1ltal ismert, defini\u00e1lt objektumok list\u00e1ja jelenik meg. Sztringek list\u00e1j\u00e1t adja vissza, kiv\u00e9ve, ha a JSON param\u00e9tert adjuk meg, ekkor az objektumok adatait JSON form\u00e1tumban adja vissza. Ha a NAME param\u00e9ter szerepel, ez egy kiz\u00e1rand\u00f3 objektumot hat\u00e1roz meg. NAME : Ez a param\u00e9ter k\u00f6telez\u0151. Ez a modul m\u00e1s parancsai \u00e1ltal haszn\u00e1lt azonos\u00edt\u00f3. CENTER : Az objektum X,Y koordin\u00e1t\u00e1ja. POLYGON : X,Y koordin\u00e1t\u00e1k t\u00f6mbje, amely az objektum k\u00f6rvonal\u00e1t adja. A RESET param\u00e9ter megad\u00e1sakor az \u00f6sszes defini\u00e1lt objektum t\u00f6rl\u0151dik, \u00e9s az [exclude_object] modul vissza\u00e1ll. EXCLUDE_OBJECT_START \u00b6 EXCLUDE_OBJECT_START NAME=object_name : Ez a parancs egy NAME param\u00e9tert vesz fel, \u00e9s az aktu\u00e1lis r\u00e9tegen l\u00e9v\u0151 objektum G-k\u00f3dj\u00e1nak kezdet\u00e9t jel\u00f6li. EXCLUDE_OBJECT_END \u00b6 EXCLUDE_OBJECT_END [NAME=object_name] : Az objektum G-k\u00f3dj\u00e1nak v\u00e9g\u00e9t jel\u00f6li a r\u00e9teghez. Az EXCLUDE_OBJECT_START -al p\u00e1rosul. A NAME param\u00e9ter opcion\u00e1lis, \u00e9s csak akkor figyelmeztet, ha a megadott n\u00e9v nem egyezik az aktu\u00e1lis objektummal. [extruder] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha az extruder konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van: ACTIVATE_EXTRUDER \u00b6 ACTIVATE_EXTRUDER EXTRUDER=<config_name> : T\u00f6bb extruder konfigur\u00e1ci\u00f3s szakaszokkal rendelkez\u0151 nyomtat\u00f3ban ez a parancs megv\u00e1ltoztatja az akt\u00edv nyomtat\u00f3fejet. SET_PRESSURE_ADVANCE \u00b6 SET_PRESSURE_ADVANCE [EXTRUDER=<config_name>] [ADVANCE=<pressure_advance>] [SMOOTH_TIME=<pressure_advance_smooth_time>] : Egy extruder l\u00e9ptet\u0151 nyom\u00e1stov\u00e1bb\u00edt\u00e1si param\u00e9tereinek be\u00e1ll\u00edt\u00e1sa (ahogyan az egy extruder vagy extruder_stepper konfigur\u00e1ci\u00f3s szakaszban szerepel). Ha az EXTRUDER nincs megadva, akkor az alap\u00e9rtelmezett \u00e9rt\u00e9k az akt\u00edv hotendben defini\u00e1lt stepper. SET_EXTRUDER_ROTATION_DISTANCE \u00b6 SET_EXTRUDER_ROTATION_DISTANCE EXTRUDER=<config_name> [DISTANCE=<distance>] : A megadott extruder l\u00e9ptet\u0151k \"forg\u00e1si t\u00e1vols\u00e1g\" \u00faj \u00e9rt\u00e9k\u00e9nek be\u00e1ll\u00edt\u00e1sa (ahogyan az extruder vagy extruder_stepper konfigur\u00e1ci\u00f3s szakaszban meghat\u00e1rozott). Ha a forg\u00e1si t\u00e1vols\u00e1g negat\u00edv sz\u00e1m, akkor a l\u00e9ptet\u0151 mozg\u00e1sa inverz lesz (a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott l\u00e9ptet\u0151 ir\u00e1nyhoz k\u00e9pest). A megv\u00e1ltoztatott be\u00e1ll\u00edt\u00e1sok nem maradnak meg a Klipper vissza\u00e1ll\u00edt\u00e1sakor. \u00d3vatosan haszn\u00e1ld, mivel a kis v\u00e1ltoztat\u00e1sok t\u00falzott nyom\u00e1st eredm\u00e9nyezhetnek az extruder \u00e9s a hotend k\u00f6z\u00f6tt. Haszn\u00e1lat el\u0151tt v\u00e9gezd el a megfelel\u0151 kalibr\u00e1ci\u00f3t a filamenttel. Ha a 'DISTANCE' \u00e9rt\u00e9k nincs megadva, akkor ez a parancs az aktu\u00e1lis forg\u00e1si t\u00e1vols\u00e1got adja meg. SYNC_EXTRUDER_MOTION \u00b6 SYNC_EXTRUDER_MOTION EXTRUDER=<name> MOTION_QUEUE=<name> : Ez a parancs az EXTRUDER \u00e1ltal meghat\u00e1rozott l\u00e9ptet\u0151t (ahogyan az extruder vagy extruder_stepper konfigur\u00e1ci\u00f3s szakaszban) meghat\u00e1rozott extruder mozg\u00e1s\u00e1hoz szinkroniz\u00e1l\u00f3dik a MOTION_QUEUE \u00e1ltal meghat\u00e1rozott extruder mozg\u00e1s\u00e1hoz (ahogyan az extruder konfigur\u00e1ci\u00f3s szakaszban defini\u00e1lt\u00e1k). Ha a MOTION_QUEUE \u00fcres karakterl\u00e1nc, akkor a l\u00e9ptet\u0151 deszinkroniz\u00e1l\u00f3dik az extruder minden mozg\u00e1s\u00e1ra. SET_EXTRUDER_STEP_DISTANCE \u00b6 Ez a parancs elavult, \u00e9s a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fcl. SYNC_STEPPER_TO_EXTRUDER \u00b6 Ez a parancs elavult, \u00e9s a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fcl. [fan_generic] \u00b6 A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a fan_generic konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. SET_FAN_SPEED \u00b6 SET_FAN_SPEED FAN=config_name SPEED=<speed> Ez a parancs be\u00e1ll\u00edtja a ventil\u00e1tor sebess\u00e9g\u00e9t. \"speed\" 0.0 \u00e9s 1.0 k\u00f6z\u00f6tt kell lennie. [filament_switch_sensor] \u00b6 A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a filament_switch_sensor vagy filament_motion_sensor konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. QUERY_FILAMENT_SENSOR \u00b6 QUERY_FILAMENT_SENSOR SENSOR=<sensor_name> : A nyomtat\u00f3sz\u00e1l-\u00e9rz\u00e9kel\u0151 aktu\u00e1lis \u00e1llapot\u00e1nak lek\u00e9rdez\u00e9se. A termin\u00e1lon megjelen\u0151 adatok a konfigur\u00e1ci\u00f3ban meghat\u00e1rozott \u00e9rz\u00e9kel\u0151t\u00edpust\u00f3l f\u00fcggnek. SET_FILAMENT_SENSOR \u00b6 SET_FILAMENT_SENSOR SENSOR=<sensor_name> ENABLE=[0|1] : A nyomtat\u00f3sz\u00e1l \u00e9rz\u00e9kel\u0151 be/ki kapcsol\u00e1sa. Ha az ENABLE \u00e9rt\u00e9ke 0, akkor a nyomtat\u00f3sz\u00e1l-\u00e9rz\u00e9kel\u0151 ki lesz kapcsolva, ha 1-re van \u00e1ll\u00edtva, akkor bekapcsol. [firmware_retraction] \u00b6 A k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d\u00fa parancsok \u00e1llnak rendelkez\u00e9sre, ha a firmware_retraction konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. Ezek a parancsok lehet\u0151v\u00e9 teszik a szeletel\u0151kben el\u00e9rhet\u0151 firmware retraction funkci\u00f3 kihaszn\u00e1l\u00e1s\u00e1t, hogy cs\u00f6kkentse a h\u00farosod\u00e1st a nem extrud\u00e1l\u00e1sos mozg\u00e1sok sor\u00e1n a nyomtat\u00e1s egyik r\u00e9sz\u00e9b\u0151l a m\u00e1sikba. A nyom\u00e1s el\u0151tol\u00e1s megfelel\u0151 be\u00e1ll\u00edt\u00e1sa cs\u00f6kkenti a sz\u00fcks\u00e9ges visszah\u00faz\u00e1s hossz\u00e1t. G10 : Visszah\u00fazza a nyomtat\u00f3sz\u00e1lat a konfigur\u00e1lt param\u00e9terek szerint. G11 : Bet\u00f6lti a nyomtat\u00f3sz\u00e1lat a konfigur\u00e1lt param\u00e9terek szerint. A k\u00f6vetkez\u0151 tov\u00e1bbi parancsok is rendelkez\u00e9sre \u00e1llnak. SET_RETRACTION \u00b6 SET_RETRACTION [RETRACT_LENGTH=<mm>] [RETRACT_SPEED=<mm/s>] [UNRETRACT_EXTRA_LENGTH=<mm>] [UNRETRACT_SPEED=<mm/s>] : A firmware visszah\u00faz\u00e1s \u00e1ltal haszn\u00e1lt param\u00e9terek be\u00e1ll\u00edt\u00e1sa. A RETRACT_LENGTH hat\u00e1rozza meg a visszah\u00fazand\u00f3 \u00e9s a visszah\u00faz\u00e1st megsz\u00fcntet\u0151 sz\u00e1l hossz\u00e1t. A visszah\u00faz\u00e1s sebess\u00e9ge a RETRACT_SPEED seg\u00edts\u00e9g\u00e9vel \u00e1ll\u00edthat\u00f3 be, \u00e9s \u00e1ltal\u00e1ban viszonylag magasra van \u00e1ll\u00edtva. A visszah\u00faz\u00e1s sebess\u00e9g\u00e9t az UNRETRACT_SPEED seg\u00edts\u00e9g\u00e9vel \u00e1ll\u00edtjuk be, \u00e9s nem k\u00fcl\u00f6n\u00f6sebben kritikus, b\u00e1r gyakran alacsonyabb, mint a RETRACT_SPEED. Bizonyos esetekben hasznos, ha a visszah\u00faz\u00e1skor egy kis plusz hossz\u00fas\u00e1got adunk hozz\u00e1, \u00e9s ezt az UNRETRACT_EXTRA_LENGTH seg\u00edts\u00e9g\u00e9vel \u00e1ll\u00edtjuk be. A SET_RETRACTION \u00e1ltal\u00e1ban a szeletel\u0151 sz\u00e1lank\u00e9nti konfigur\u00e1ci\u00f3 r\u00e9szek\u00e9nt ker\u00fcl be\u00e1ll\u00edt\u00e1sra, mivel a k\u00fcl\u00f6nb\u00f6z\u0151 sz\u00e1lak k\u00fcl\u00f6nb\u00f6z\u0151 param\u00e9terbe\u00e1ll\u00edt\u00e1sokat ig\u00e9nyelnek. GET_RETRACTION \u00b6 GET_RETRACTION : A firmware visszah\u00faz\u00e1s \u00e1ltal haszn\u00e1lt aktu\u00e1lis param\u00e9terek lek\u00e9rdez\u00e9se \u00e9s megjelen\u00edt\u00e9se a termin\u00e1lon. [force_move] \u00b6 A force_move modul automatikusan bet\u00f6lt\u0151dik, azonban n\u00e9h\u00e1ny parancshoz sz\u00fcks\u00e9ges az enable_force_move be\u00e1ll\u00edt\u00e1sa a nyomtat\u00f3 konfig -ban. STEPPER_BUZZ \u00b6 STEPPER_BUZZ STEPPER=<config_name> : Az adott l\u00e9ptet\u0151motor mozgat\u00e1sa egy mm-t el\u0151re, majd egy mm-t h\u00e1tra, 10 alkalommal megism\u00e9telve. Ez egy diagnosztikai eszk\u00f6z, amely seg\u00edt a l\u00e9ptet\u0151 kapcsolat\u00e1nak ellen\u0151rz\u00e9s\u00e9ben. FORCE_MOVE \u00b6 FORCE_MOVE STEPPER=<config_name> DISTANCE=<value> VELOCITY=<value> [ACCEL=<value>] : Ez a parancs az adott l\u00e9ptet\u0151motort az adott t\u00e1vols\u00e1gon (mm-ben) a megadott \u00e1lland\u00f3 sebess\u00e9ggel (mm/sec-ben) k\u00e9nyszerrel mozgatja. Ha az ACCEL meg van adva, \u00e9s nagyobb, mint nulla, akkor a megadott gyorsul\u00e1s (mm/sec^2-en) ker\u00fcl alkalmaz\u00e1sra; egy\u00e9bk\u00e9nt nem t\u00f6rt\u00e9nik gyors\u00edt\u00e1s. Nem t\u00f6rt\u00e9nik hat\u00e1r\u00e9rt\u00e9k ellen\u0151rz\u00e9s; nem t\u00f6rt\u00e9nik kinematikai friss\u00edt\u00e9s; a tengelyen l\u00e9v\u0151 m\u00e1s p\u00e1rhuzamos l\u00e9ptet\u0151k nem ker\u00fclnek mozgat\u00e1sra. Legyen \u00f3vatos, mert a helytelen parancs k\u00e1rt okozhat! A parancs haszn\u00e1lata szinte biztosan helytelen \u00e1llapotba hozza az alacsony szint\u0171 kinematik\u00e1t; a kinematika vissza\u00e1ll\u00edt\u00e1s\u00e1hoz adj ki ut\u00e1na egy G28 parancsot. Ez a parancs alacsony szint\u0171 diagnosztik\u00e1ra \u00e9s hibakeres\u00e9sre szolg\u00e1l. SET_KINEMATIC_POSITION \u00b6 SET_KINEMATIC_POSITION [X=<value>] [Y=<value>] [Z=<value>] : K\u00e9nyszer\u00edti az alacsony szint\u0171 kinematikai k\u00f3dot, hogy azt higgye, a nyomtat\u00f3fej a megadott cartesian poz\u00edci\u00f3ban van. Ez egy diagnosztikai \u00e9s hibakeres\u00e9si parancs; haszn\u00e1ld a SET_GCODE_OFFSET \u00e9s/vagy a G92 parancsot a norm\u00e1l tengelytranszform\u00e1ci\u00f3khoz. Ha egy tengely nincs megadva, akkor alap\u00e9rtelmez\u00e9s szerint az a poz\u00edci\u00f3 lesz, ahov\u00e1 a fejet utolj\u00e1ra parancsolt\u00e1k. A helytelen vagy \u00e9rv\u00e9nytelen poz\u00edci\u00f3 be\u00e1ll\u00edt\u00e1sa bels\u0151 szoftverhib\u00e1hoz vezethet. Ez a parancs \u00e9rv\u00e9nytelen\u00edtheti a k\u00e9s\u0151bbi hat\u00e1r\u00e9rt\u00e9k ellen\u0151rz\u00e9seket; a kinematika vissza\u00e1ll\u00edt\u00e1s\u00e1hoz adj ki egy G28 parancsot. [gcode] \u00b6 A G-k\u00f3d modul automatikusan bet\u00f6lt\u0151dik. RESTART \u00b6 RESTART : Ez arra k\u00e9szteti a gazdaszoftvert, hogy \u00fajrat\u00f6ltse a konfigur\u00e1ci\u00f3j\u00e1t \u00e9s bels\u0151 alaphelyzetbe \u00e1ll\u00edt\u00e1st v\u00e9gezzen. Ez a parancs nem t\u00f6rli a mikrokontroller hiba\u00e1llapot\u00e1t (l\u00e1sd FIRMWARE_RESTART), \u00e9s nem t\u00f6lt be \u00faj szoftvert (l\u00e1sd a GYIK oldalt). FIRMWARE_RESTART \u00b6 FIRMWARE_RESTART : Ez hasonl\u00f3 a RESTART parancshoz, de a mikrokontroller hiba\u00e1llapot\u00e1t is t\u00f6rli. STATUS \u00b6 STATUS : Jelentse a Klipper gazdag\u00e9p szoftver \u00e1llapot\u00e1t. S\u00daG\u00d3 \u00b6 HELP : A rendelkez\u00e9sre \u00e1ll\u00f3 kiterjesztett G-k\u00f3d parancsok list\u00e1j\u00e1nak megjelen\u00edt\u00e9se. [gcode_arcs] \u00b6 A k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d parancsok el\u00e9rhet\u0151k, ha a gcode_arcs config section enged\u00e9lyezve van: Vez\u00e9relt \u00edvmozg\u00e1s (G2 vagy G3): G2 [X<pos>] [Y<pos>] [Z<pos>] [E<pos>] [F<speed>] I<value> J<value> [gcode_macro] \u00b6 A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a gcode_macro konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a parancssablonok \u00fatmutat\u00f3j\u00e1t ). SET_GCODE_VARIABLE \u00b6 SET_GCODE_VARIABLE MACRO=<macro_name> VARIABLE=<name> VALUE=<value> : Ez a parancs lehet\u0151v\u00e9 teszi a gcode_macro v\u00e1ltoz\u00f3 \u00e9rt\u00e9k\u00e9nek megv\u00e1ltoztat\u00e1s\u00e1t \u00fczem k\u00f6zben. A megadott VALUE-t Python liter\u00e1lk\u00e9nt elemzi a program. [gcode_move] \u00b6 A gcode_move modul automatikusan bet\u00f6lt\u0151dik. GET_POSITION \u00b6 GET_POSITION : A nyomtat\u00f3fej aktu\u00e1lis helyzet\u00e9re vonatkoz\u00f3 inform\u00e1ci\u00f3k visszaad\u00e1sa. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a GET_POSITION kimenet fejleszt\u0151i dokument\u00e1ci\u00f3j\u00e1t. SET_GCODE_OFFSET \u00b6 SET_GCODE_OFFSET [X=<pos>|X_ADJUST=<adjust>] [Y=<pos>|Y_ADJUST=<adjust>] [Z=<pos>|Z_ADJUST=<adjust>] [MOVE=1 [MOVE_SPEED=<speed>]] : Poz\u00edci\u00f3s eltol\u00e1s be\u00e1ll\u00edt\u00e1sa, amelyet a k\u00e9s\u0151bbi G-k\u00f3d parancsokra kell alkalmazni. Ezt \u00e1ltal\u00e1ban a Z t\u00e1rgyasztal eltol\u00e1s virtu\u00e1lis megv\u00e1ltoztat\u00e1s\u00e1ra vagy a f\u00fav\u00f3k\u00e1k XY eltol\u00e1s\u00e1nak be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lj\u00e1k extruder v\u00e1lt\u00e1skor. P\u00e9ld\u00e1ul, ha a \"SET_GCODE_OFFSET Z=0.2\" parancsot k\u00fcldj\u00fck, akkor a j\u00f6v\u0151beli G-k\u00f3d mozg\u00e1sok Z magass\u00e1g\u00e1hoz 0,2 mm-t adunk hozz\u00e1. Ha az X_ADJUST st\u00edlusparam\u00e9tereket haszn\u00e1ljuk, akkor a kiigaz\u00edt\u00e1s hozz\u00e1ad\u00f3dik a megl\u00e9v\u0151 eltol\u00e1shoz (pl. a \"SET_GCODE_OFFSET Z=-0.2\" \u00e9s a \"SET_GCODE_OFFSET Z_ADJUST=0.3\" ut\u00e1na a teljes Z eltol\u00e1s 0.1 lesz). Ha a \"MOVE=1\" van megadva, akkor a nyomtat\u00f3fej mozgat\u00e1sa a megadott eltol\u00e1s alkalmaz\u00e1s\u00e1ra t\u00f6rt\u00e9nik (egy\u00e9bk\u00e9nt az eltol\u00e1s a k\u00f6vetkez\u0151 abszol\u00fat G-k\u00f3d\u00fa mozgat\u00e1skor l\u00e9p hat\u00e1lyba, amely az adott tengelyt adja meg). Ha a \"MOVE_SPEED\" meg van adva, akkor a nyomtat\u00f3fej mozgat\u00e1sa a megadott sebess\u00e9ggel (mm/sec-ben) t\u00f6rt\u00e9nik; egy\u00e9bk\u00e9nt a nyomtat\u00f3fej mozgat\u00e1sa az utolj\u00e1ra megadott G-k\u00f3d sebess\u00e9get fogja haszn\u00e1lni. SAVE_GCODE_STATE \u00b6 SAVE_GCODE_STATE [NAME=<state_name>] : Az aktu\u00e1lis G-k\u00f3d koordin\u00e1t\u00e1k elemz\u00e9si \u00e1llapot\u00e1nak ment\u00e9se. A G-k\u00f3d \u00e1llapot\u00e1nak ment\u00e9se \u00e9s vissza\u00e1ll\u00edt\u00e1sa hasznos a szkriptekben \u00e9s makr\u00f3kban. Ez a parancs elmenti az aktu\u00e1lis G-k\u00f3d abszol\u00fat koordin\u00e1tam\u00f3dot (G90/G91), az abszol\u00fat extrud\u00e1l\u00e1si m\u00f3dot (M82/M83), az orig\u00f3t (G92), az eltol\u00e1st (SET_GCODE_OFFSET), a sebess\u00e9g fel\u00fclb\u00edr\u00e1l\u00e1s\u00e1t (M220), az extruder fel\u00fclb\u00edr\u00e1l\u00e1s\u00e1t (M221), a mozg\u00e1si sebess\u00e9get, az aktu\u00e1lis XYZ poz\u00edci\u00f3t \u00e9s a relat\u00edv extruder \"E\" poz\u00edci\u00f3t. A NAME megad\u00e1sa eset\u00e9n lehet\u0151v\u00e9 teszi, hogy a mentett \u00e1llapotot a megadott karakterl\u00e1ncnak nevezz\u00fck el. Ha a NAME nincs megadva, az alap\u00e9rtelmezett \u00e9rt\u00e9k \"default\". RESTORE_GCODE_STATE \u00b6 RESTORE_GCODE_STATE [NAME=<state_name>] [MOVE=1 [MOVE_SPEED=<speed>]] : A SAVE_GCODE_STATE seg\u00edts\u00e9g\u00e9vel kor\u00e1bban elmentett \u00e1llapot vissza\u00e1ll\u00edt\u00e1sa. Ha \"MOVE=1\" van megadva, akkor a nyomtat\u00f3fej mozgat\u00e1sa az el\u0151z\u0151 XYZ-poz\u00edci\u00f3ba val\u00f3 visszal\u00e9p\u00e9shez t\u00f6rt\u00e9nik. Ha \"MOVE_SPEED\" van megadva, akkor a nyomtat\u00f3fej mozgat\u00e1sa a megadott sebess\u00e9ggel (mm/sec-ben) t\u00f6rt\u00e9nik; egy\u00e9bk\u00e9nt a nyomtat\u00f3fej mozgat\u00e1sa a vissza\u00e1ll\u00edtott G-k\u00f3d sebess\u00e9g\u00e9t haszn\u00e1lja. [hall_filament_width_sensor] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a tsl1401cl sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 konfigur\u00e1ci\u00f3s szakasz vagy a hall sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g TSLll401CL Sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 \u00e9s a Hall Sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 dokumentumot): QUERY_FILAMENT_WIDTH \u00b6 QUERY_FILAMENT_WIDTH : Visszaadja az aktu\u00e1lisan m\u00e9rt izz\u00f3sz\u00e1l sz\u00e9less\u00e9get. RESET_FILAMENT_WIDTH_SENSOR \u00b6 RESET_FILAMENT_WIDTH_SENSOR : T\u00f6rli az \u00f6sszes \u00e9rz\u00e9kel\u0151 leolvas\u00e1s\u00e1t. Hasznos nyomtat\u00f3sz\u00e1l csere ut\u00e1n. DISABLE_FILAMENT_WIDTH_SENSOR \u00b6 DISABLE_FILAMENT_WIDTH_SENSOR : Kapcsolja ki a sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151t, \u00e9s ne haszn\u00e1ld \u00e1raml\u00e1sszab\u00e1lyoz\u00e1shoz. ENABLE_FILAMENT_WIDTH_SENSOR \u00b6 ENABLE_FILAMENT_WIDTH_SENSOR : Kapcsolja be a sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151t, \u00e9s kezd el haszn\u00e1lni az \u00e1raml\u00e1sszab\u00e1lyoz\u00e1shoz. QUERY_RAW_FILAMENT_WIDTH \u00b6 QUERY_RAW_FILAMENT_WIDTH : Visszaadja az ADC-csatorna aktu\u00e1lis leolvas\u00e1s\u00e1t \u00e9s a RAW-\u00e9rz\u00e9kel\u0151 \u00e9rt\u00e9k\u00e9t a kalibr\u00e1ci\u00f3s pontokhoz. ENABLE_FILAMENT_WIDTH_LOG \u00b6 ENABLE_FILAMENT_WIDTH_LOG : Az \u00e1tm\u00e9r\u0151 napl\u00f3z\u00e1s\u00e1nak bekapcsol\u00e1sa. DISABLE_FILAMENT_WIDTH_LOG \u00b6 DISABLE_FILAMENT_WIDTH_LOG : Az \u00e1tm\u00e9r\u0151 napl\u00f3z\u00e1s\u00e1nak kikapcsol\u00e1sa. [heaters] \u00b6 A f\u0171t\u0151modul automatikusan bet\u00f6lt\u0151dik, ha a konfigur\u00e1ci\u00f3s f\u00e1jlban van f\u0171t\u0151elem defini\u00e1lva. TURN_OFF_HEATERS \u00b6 TURN_OFF_HEATERS : Kapcsolja ki az \u00f6sszes f\u0171t\u0151berendez\u00e9st. TEMPERATURE_WAIT \u00b6 TEMPERATURE_WAIT SENSOR=<config_name> [MINIMUM=<target>] [MAXIMUM=<target>] : V\u00e1rjon, am\u00edg az adott h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 a megadott MINIMUM \u00e9rt\u00e9ken vagy a megadott MINIMUM \u00e9rt\u00e9k felett \u00e9s/vagy a megadott MAXIMUM \u00e9rt\u00e9ken vagy az alatt van. SET_HEATER_TEMPERATURE \u00b6 SET_HEATER_TEMPERATURE HEATER=<heater_name> [TARGET=<target_temperature>] : A f\u0171t\u0151test c\u00e9lh\u0151m\u00e9rs\u00e9klet\u00e9nek be\u00e1ll\u00edt\u00e1sa. Ha nincs megadva c\u00e9lh\u0151m\u00e9rs\u00e9klet, akkor az \u00e9rt\u00e9k 0. [idle_timeout] \u00b6 Az idle_timeout modul automatikusan bet\u00f6lt\u0151dik. SET_IDLE_TIMEOUT \u00b6 SET_IDLE_TIMEOUT [TIMEOUT=<timeout>] : Lehet\u0151v\u00e9 teszi a felhaszn\u00e1l\u00f3 sz\u00e1m\u00e1ra az \u00fcresj\u00e1rati id\u0151korl\u00e1t be\u00e1ll\u00edt\u00e1s\u00e1t (m\u00e1sodpercben). [input_shaper] \u00b6 A k\u00f6vetkez\u0151 parancs akkor enged\u00e9lyezett, ha az input_shaper konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a rezonancia kompenz\u00e1ci\u00f3s \u00fatmutat\u00f3t ). SET_INPUT_SHAPER \u00b6 SET_INPUT_SHAPER [SHAPER_FREQ_X=<shaper_freq_x>] [SHAPER_FREQ_Y=<shaper_freq_y>] [DAMPING_RATIO_X=<damping_ratio_x>] [DAMPING_RATIO_Y=<damping_ratio_y>] [SHAPER_TYPE=<shaper>] [SHAPER_TYPE_X=<shaper_type_x>] [SHAPER_TYPE_Y=<shaper_type_y>] : A bemeneti form\u00e1l\u00f3 param\u00e9terek m\u00f3dos\u00edt\u00e1sa. Vedd figyelembe, hogy a SHAPER_TYPE param\u00e9ter vissza\u00e1ll\u00edtja a bemeneti form\u00e1l\u00f3t mind az X, mind az Y tengelyre, m\u00e9g akkor is, ha az [input_shaper] szakaszban k\u00fcl\u00f6nb\u00f6z\u0151 form\u00e1l\u00f3t\u00edpusok lettek be\u00e1ll\u00edtva. A SHAPER_TYPE nem haszn\u00e1lhat\u00f3 egy\u00fctt a SHAPER_TYPE_X \u00e9s SHAPER_TYPE_Y param\u00e9terekkel. Az egyes param\u00e9terekkel kapcsolatos tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st . [manual_probe] \u00b6 A manual_probe modul automatikusan bet\u00f6lt\u0151dik. MANUAL_PROBE \u00b6 MANUAL_PROBE [SPEED=<speed>] : Egy seg\u00e9dszkript futtat\u00e1sa, amely hasznos a f\u00fav\u00f3ka magass\u00e1g\u00e1nak m\u00e9r\u00e9s\u00e9hez egy adott helyen. Ha SPEED van megadva, akkor a TESTZ parancsok sebess\u00e9g\u00e9t \u00e1ll\u00edtja be (az alap\u00e9rtelmezett 5 mm/sec). A k\u00e9zi m\u00e9r\u00e9s sor\u00e1n a k\u00f6vetkez\u0151 tov\u00e1bbi parancsok \u00e1llnak rendelkez\u00e9sre: ACCEPT : Ez a parancs elfogadja az aktu\u00e1lis Z poz\u00edci\u00f3t, \u00e9s lez\u00e1rja a k\u00e9zi szintez\u0151 eszk\u00f6zt. ABORT : Ez a parancs megszak\u00edtja a k\u00e9zi szintez\u00e9st. TESTZ Z=<value> : Ez a parancs a f\u00fav\u00f3k\u00e1t a \"value\" \u00e9rt\u00e9kben megadott \u00e9rt\u00e9kkel felfel\u00e9 vagy lefel\u00e9 mozgatja. P\u00e9ld\u00e1ul a TESTZ Z=-.1 a f\u00fav\u00f3k\u00e1t 0,1 mm-rel lefel\u00e9, m\u00edg a TESTZ Z=.1 a f\u00fav\u00f3k\u00e1t 0,1 mm-rel felfel\u00e9 mozgatja. Az \u00e9rt\u00e9k lehet + , - , ++ , vagy -- is, hogy a f\u00fav\u00f3k\u00e1t a kor\u00e1bbi pr\u00f3b\u00e1lkoz\u00e1sokhoz k\u00e9pest felfel\u00e9 vagy lefel\u00e9 mozd\u00edtsa. Z_ENDSTOP_CALIBRATE \u00b6 Z_ENDSTOP_CALIBRATE [SPEED=<speed>] : Egy seg\u00e9dszkript futtat\u00e1sa, amely hasznos a Z poz\u00edci\u00f3 v\u00e9g\u00e1ll\u00e1s konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1s\u00e1nak kalibr\u00e1l\u00e1s\u00e1hoz. A param\u00e9terekkel \u00e9s az eszk\u00f6z akt\u00edv m\u0171k\u00f6d\u00e9se k\u00f6zben el\u00e9rhet\u0151 tov\u00e1bbi parancsokkal kapcsolatos r\u00e9szletek\u00e9rt haszn\u00e1ld a MANUAL_PROBE parancsot. Z_OFFSET_APPLY_ENDSTOP \u00b6 Z_OFFSET_APPLY_ENDSTOP : Vegy\u00fck az aktu\u00e1lis Z G-k\u00f3d eltol\u00e1st (m\u00e1s n\u00e9ven mikrol\u00e9p\u00e9s), \u00e9s vonjuk ki a stepper_z endstop_positionb\u00f3l. Ez egy gyakran haszn\u00e1lt mikrol\u00e9p\u00e9s \u00e9rt\u00e9ket vesz, \u00e9s \"\u00e1lland\u00f3v\u00e1 teszi\". Egy SAVE_CONFIG sz\u00fcks\u00e9ges a hat\u00e1lybal\u00e9p\u00e9shez. [manual_stepper] \u00b6 A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a manual_stepper konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. MANUAL_STEPPER \u00b6 MANUAL_STEPPER STEPPER=config_name [ENABLE=[0|1]] [SET_POSITION=<pos>] [SPEED=<speed>] [ACCEL=<accel>] [MOVE=<pos> [STOP_ON_ENDSTOP=[1|2|2|-1|-2]] [SYNC=0]]] : Ez a parancs megv\u00e1ltoztatja a l\u00e9ptet\u0151 \u00e1llapot\u00e1t. Az ENABLE param\u00e9terrel enged\u00e9lyezheti/letilthatja a l\u00e9ptet\u0151t. A SET_POSITION param\u00e9terrel k\u00e9nyszer\u00edtheti a l\u00e9ptet\u0151t arra, hogy azt higgye, az adott helyzetben van. A MOVE param\u00e9terrel kezdem\u00e9nyezhet mozg\u00e1st egy adott poz\u00edci\u00f3ba. Ha a SPEED \u00e9s/vagy az ACCEL param\u00e9ter meg van adva, akkor a rendszer a megadott \u00e9rt\u00e9keket haszn\u00e1lja a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott alap\u00e9rtelmezett \u00e9rt\u00e9kek helyett. Ha nulla ACCEL-t ad meg, akkor nem t\u00f6rt\u00e9nik gyors\u00edt\u00e1s. Ha STOP_ON_ENDSTOP=1 van megadva, akkor a l\u00e9p\u00e9s kor\u00e1n v\u00e9get \u00e9r. Ha a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 aktiv\u00e1l\u00f3dik (a STOP_ON_ENDSTOP=2 paranccsal hiba n\u00e9lk\u00fcl befejezheti a mozg\u00e1st, m\u00e9g akkor is, ha a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 nem aktiv\u00e1l\u00f3dott. Haszn\u00e1ld a -1 vagy a -2 jel\u00f6l\u00e9st, hogy le\u00e1lljon, amikor a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 m\u00e9g nem aktiv\u00e1l\u00f3dott). Norm\u00e1lis esetben a k\u00e9s\u0151bbi G-k\u00f3d parancsok a l\u00e9ptet\u0151mozg\u00e1s befejez\u00e9se ut\u00e1n ker\u00fclnek \u00fctemez\u00e9sre, azonban ha a k\u00e9zi l\u00e9ptet\u0151mozg\u00e1s parancs a SYNC=0 \u00e9rt\u00e9ket haszn\u00e1lod, akkor a k\u00e9s\u0151bbi G-k\u00f3d mozgat\u00e1si parancsok a l\u00e9ptet\u0151mozg\u00e1ssal p\u00e1rhuzamosan is futhatnak. [mcp4018] \u00b6 A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha az mcp4018 config szekci\u00f3 enged\u00e9lyezve van. SET_DIGIPOT \u00b6 SET_DIGIPOT DIGIPOT=config_name WIPER=<value> : Ez a parancs megv\u00e1ltoztatja a digipot aktu\u00e1lis \u00e9rt\u00e9k\u00e9t. Ennek az \u00e9rt\u00e9knek \u00e1ltal\u00e1ban 0.0 \u00e9s 1.0 k\u00f6z\u00f6tt kell lennie, hacsak a configban nincs defini\u00e1lva 'scale'. Ha 'scale' van defini\u00e1lva, akkor ennek az \u00e9rt\u00e9knek 0.0 \u00e9s a 'scale' \u00e9rt\u00e9k k\u00f6z\u00f6tt kell lennie. [led] \u00b6 A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a LED konfigur\u00e1ci\u00f3s szakaszok b\u00e1rmelyike enged\u00e9lyezve van. SET_LED \u00b6 SET_LED LED=<config_name> RED=<value> GREEN=<value> BLUE=<value> WHITE=<value> [INDEX=<index>] [TRANSMIT=0] [SYNC=1] : Ez \u00e1ll\u00edtja be a LED kimenetet. Minden sz\u00edn <value> 0,0 \u00e9s 1,0 k\u00f6z\u00f6tt kell lennie. A WHITE opci\u00f3 csak RGBW LED-ek eset\u00e9n \u00e9rv\u00e9nyes. Ha a LED t\u00f6bb chipet t\u00e1mogat egy daisy-chainben, akkor megadhatjuk az INDEX-et, hogy csak az adott chip sz\u00edn\u00e9t v\u00e1ltoztassuk meg (1 az els\u0151 chiphez, 2 a m\u00e1sodikhoz stb.). Ha az INDEX nincs megadva, akkor a daisy-chain \u00f6sszes LED-je a megadott sz\u00ednre lesz be\u00e1ll\u00edtva. Ha TRANSMIT=0 van megadva, akkor a sz\u00ednv\u00e1ltoztat\u00e1s csak a k\u00f6vetkez\u0151 SET_LED parancsn\u00e1l t\u00f6rt\u00e9nik meg, amely nem ad meg TRANSMIT=0-t. Ez hasznos lehet az INDEX param\u00e9terrel kombin\u00e1lva, ha egy daisy-chainben t\u00f6bb friss\u00edt\u00e9st szeretn\u00e9nk k\u00f6tegelni. Alap\u00e9rtelmez\u00e9s szerint a SET_LED parancs szinkroniz\u00e1lja a v\u00e1ltoztat\u00e1sokat a t\u00f6bbi folyamatban l\u00e9v\u0151 G-k\u00f3d paranccsal. Ez nemk\u00edv\u00e1natos viselked\u00e9shez vezethet, ha a LED-ek be\u00e1ll\u00edt\u00e1sa akkor t\u00f6rt\u00e9nik, amikor a nyomtat\u00f3 nem nyomtat, mivel ez vissza\u00e1ll\u00edtja az \u00fcresj\u00e1rati id\u0151korl\u00e1tot. Ha nincs sz\u00fcks\u00e9g gondos id\u0151z\u00edt\u00e9sre, az opcion\u00e1lis SYNC=0 param\u00e9ter megadhat\u00f3, hogy a m\u00f3dos\u00edt\u00e1sokat az \u00fcresj\u00e1rati id\u0151korl\u00e1t vissza\u00e1ll\u00edt\u00e1sa n\u00e9lk\u00fcl alkalmazd. SET_LED_TEMPLATE \u00b6 SET_LED_TEMPLATE LED=<led_name> TEMPLATE=<template_name> [<param_x>=<literal>] [INDEX=<index>] : Egy display_template hozz\u00e1rendel\u00e9se egy adott LED-hez . P\u00e9ld\u00e1ul, ha defini\u00e1ltunk egy [display_template my_led_template] konfigur\u00e1ci\u00f3s szakaszt, akkor itt hozz\u00e1rendelhetj\u00fck a TEMPLATE=my_led_template . A display_template-nek egy vessz\u0151vel elv\u00e1lasztott karakterl\u00e1ncot kell l\u00e9trehoznia, amely n\u00e9gy lebeg\u0151pontos sz\u00e1mot tartalmaz, amelyek megfelelnek a piros, z\u00f6ld, k\u00e9k \u00e9s feh\u00e9r sz\u00ednbe\u00e1ll\u00edt\u00e1soknak. A sablon folyamatosan ki\u00e9rt\u00e9kel\u00e9sre ker\u00fcl, \u00e9s a LED automatikusan az \u00edgy kapott sz\u00ednekre lesz be\u00e1ll\u00edtva. A sablon ki\u00e9rt\u00e9kel\u00e9se sor\u00e1n haszn\u00e1land\u00f3 display_template param\u00e9tereket lehet be\u00e1ll\u00edtani (a param\u00e9terek Python liter\u00e1lokk\u00e9nt lesznek elemezve). Ha az INDEX nincs megadva, akkor a LED's daisy-chain \u00f6sszes chipje a sablonra lesz be\u00e1ll\u00edtva, ellenkez\u0151 esetben csak a megadott indexszel rendelkez\u0151 chip lesz friss\u00edtve. Ha a TEMPLATE \u00fcres karakterl\u00e1nc, akkor ez a parancs t\u00f6rli a LED-hez rendelt kor\u00e1bbi sablonokat (ekkor a SET_LED parancsokat haszn\u00e1lhatjuk a LED sz\u00ednbe\u00e1ll\u00edt\u00e1sainak kezel\u00e9s\u00e9re). [output_pin] \u00b6 A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha az output_pin konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. SET_PIN \u00b6 SET_PIN PIN=config_name VALUE=<value> CYCLE_TIME=<cycle_time> : Megjegyz\u00e9s: A hardveres PWM jelenleg nem t\u00e1mogatja a CYCLE_TIME param\u00e9tert, \u00e9s a konfigur\u00e1ci\u00f3ban meghat\u00e1rozott ciklusid\u0151t haszn\u00e1lja. [palette2] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a palette2 konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. A paletta nyomtat\u00e1sok speci\u00e1lis OCode-ok (Omega-k\u00f3dok) be\u00e1gyaz\u00e1s\u00e1val m\u0171k\u00f6dnek a G-k\u00f3d f\u00e1jlban: O1 ... O32 : Ezeket a k\u00f3dokat a G-k\u00f3d folyamatb\u00f3l olvassa be \u00e9s dolgozza fel ez a modul, majd tov\u00e1bb\u00edtja a Palette 2 eszk\u00f6znek. A k\u00f6vetkez\u0151 tov\u00e1bbi parancsok is rendelkez\u00e9sre \u00e1llnak. PALETTE_CONNECT \u00b6 PALETTE_CONNECT : Ez a parancs inicializ\u00e1lja a kapcsolatot a Palette 2-vel. PALETTE_DISCONNECT \u00b6 PALETTE_DISCONNECT : Ez a parancs megszak\u00edtja a kapcsolatot a Paletta 2-vel. PALETTE_CLEAR \u00b6 PALETTE_CLEAR : Ez a parancs arra utas\u00edtja a Palette 2-t, hogy t\u00f6r\u00f6lje az \u00f6sszes sz\u00e1lat a bemeneti \u00e9s kimeneti \u00fatvonalb\u00f3l. PALETTE_CUT \u00b6 PALETTE_CUT : Ez a parancs utas\u00edtja a Palette 2-t, hogy v\u00e1gja el az illeszt\u00e9si magba t\u00f6lt\u00f6tt sz\u00e1lat. PALETTE_SMART_LOAD \u00b6 PALETTE_SMART_LOAD : Ez a parancs elind\u00edtja az intelligens bet\u00f6lt\u00e9si sorozatot a Paletta 2-n. A nyomtat\u00f3sz\u00e1l bet\u00f6lt\u00e9se automatikusan t\u00f6rt\u00e9nik a k\u00e9sz\u00fcl\u00e9kben a nyomtat\u00f3hoz kalibr\u00e1lt t\u00e1vols\u00e1g extrud\u00e1l\u00e1s\u00e1val, \u00e9s utas\u00edtja a Palette 2-t, amint a bet\u00f6lt\u00e9s befejez\u0151d\u00f6tt. Ez a parancs megegyezik a Smart Load megnyom\u00e1s\u00e1val k\u00f6zvetlen\u00fcl a Palette 2 k\u00e9perny\u0151j\u00e9n, miut\u00e1n a nyomtat\u00f3sz\u00e1l bet\u00f6lt\u00e9se befejez\u0151d\u00f6tt. [pid_calibrate] \u00b6 A pid_calibrate modul automatikusan bet\u00f6lt\u0151dik, ha a konfigur\u00e1ci\u00f3s f\u00e1jlban van egy f\u0171t\u00e9s defini\u00e1lva. PID_CALIBRATE \u00b6 PID_CALIBRATE HEATER=<config_name> TARGET=<temperature> [WRITE_FILE=1] : A PID kalibr\u00e1ci\u00f3s teszt elv\u00e9gz\u00e9se. A megadott f\u0171t\u0151berendez\u00e9s a megadott c\u00e9lh\u0151m\u00e9rs\u00e9klet el\u00e9r\u00e9s\u00e9ig enged\u00e9lyezve lesz, majd a f\u0171t\u0151berendez\u00e9s t\u00f6bb cikluson kereszt\u00fcl ki- \u00e9s bekapcsol. Ha a WRITE_FILE param\u00e9ter enged\u00e9lyezve van, akkor l\u00e9trej\u00f6n a /tmp/heattest.txt f\u00e1jl a teszt sor\u00e1n vett \u00f6sszes h\u0151m\u00e9rs\u00e9klet-mint\u00e1t tartalmaz\u00f3 napl\u00f3val. [pause_resume] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a pause_resume konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van: PAUSE \u00b6 PAUSE : Az aktu\u00e1lis nyomtat\u00e1s sz\u00fcneteltet\u00e9se. Az aktu\u00e1lis poz\u00edci\u00f3 r\u00f6gz\u00edt\u00e9sre ker\u00fcl, hogy a folytat\u00e1skor vissza\u00e1ll\u00edthat\u00f3 legyen. RESUME \u00b6 RESUME [VELOCITY=<value>] : Folytatja a nyomtat\u00e1st sz\u00fcnet ut\u00e1n, el\u0151sz\u00f6r vissza\u00e1ll\u00edtva a kor\u00e1bban r\u00f6gz\u00edtett poz\u00edci\u00f3t. A VELOCITY param\u00e9ter hat\u00e1rozza meg, hogy a f\u00fav\u00f3ka milyen sebess\u00e9ggel t\u00e9rjen vissza az eredeti r\u00f6gz\u00edtett poz\u00edci\u00f3ba. CLEAR_PAUSE \u00b6 CLEAR_PAUSE : T\u00f6rli az aktu\u00e1lis sz\u00fcneteltetett \u00e1llapotot a nyomtat\u00e1s folytat\u00e1sa n\u00e9lk\u00fcl. Ez akkor hasznos, ha valaki \u00fagy d\u00f6nt, hogy PAUSE ut\u00e1n megszak\u00edtja a nyomtat\u00e1st. Aj\u00e1nlatos ezt hozz\u00e1adni az ind\u00edt\u00f3 G-k\u00f3dhoz, hogy a sz\u00fcneteltetett \u00e1llapot minden nyomtat\u00e1sn\u00e1l friss legyen. CANCEL_PRINT \u00b6 CANCEL_PRINT : Az aktu\u00e1lis nyomtat\u00e1s t\u00f6rl\u00e9se. [print_stats] \u00b6 A print_stats modul automatikusan bet\u00f6lt\u0151dik. SET_PRINT_STATS_INFO \u00b6 SET_PRINT_STATS_INFO [TOTAL_LAYER=<total_layer_count>] [CURRENT_LAYER= <current_layer>] : \u00c1tadja a szeletel\u0151 adatait, a Klippernek, mint p\u00e9ld\u00e1ul az aktu\u00e1lis \u00e9s \u00f6sszes r\u00e9teg. Add hozz\u00e1 a SET_PRINT_STATS_INFO [TOTAL_LAYER=<total_layer_count>] a szeletel\u0151 ind\u00edt\u00f3 G-k\u00f3d szakasz\u00e1hoz \u00e9s a SET_PRINT_STATS_INFO [CURRENT_LAYER= <current_layer>] a r\u00e9tegv\u00e1lt\u00e1s G-k\u00f3d szakasz\u00e1hoz, hogy \u00e1tadja a r\u00e9teginform\u00e1ci\u00f3t a szeletel\u0151 a Klippernek. [probe] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a szonda konfigur\u00e1ci\u00f3s szakasz vagy a bltouch konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a szonda kalibr\u00e1ci\u00f3s \u00fatmutat\u00f3t ). PROBE \u00b6 PROBE [PROBE_SPEED=<mm/s>] [LIFT_SPEED=<mm/s>] [SAMPLES=<count>] [SAMPLE_RETRACT_DIST=<mm>] [SAMPLES_TOLERANCE=<mm>] [SAMPLES_TOLERANCE_RETRIES=<count>] [SAMPLES_RESULT=median|average] : Mozgasd a f\u00fav\u00f3k\u00e1t lefel\u00e9, am\u00edg a szonda nem \u00e9rz\u00e9kel. Ha b\u00e1rmelyik opcion\u00e1lis param\u00e9tert megadjuk, azok fel\u00fcl\u00edrj\u00e1k a szonda konfigur\u00e1ci\u00f3s szakasz\u00e1ban megadott megfelel\u0151 be\u00e1ll\u00edt\u00e1sokat. QUERY_PROBE \u00b6 QUERY_PROBE : Jelentse a szonda aktu\u00e1lis \u00e1llapot\u00e1t (\"triggered\" vagy \"open\"). PROBE_ACCURACY \u00b6 PROBE_ACCURACY [PROBE_SPEED=<mm/s>] [SAMPLES=<count>] [SAMPLE_RETRACT_DIST=<mm>] : T\u00f6bb m\u00e9r\u00e9si minta maximum\u00e1nak, minimum\u00e1nak, \u00e1tlag\u00e1nak, medi\u00e1nj\u00e1nak \u00e9s sz\u00f3r\u00e1s\u00e1nak kisz\u00e1m\u00edt\u00e1sa. Alap\u00e9rtelmez\u00e9s szerint 10 MINT\u00c1T vesz\u00fcnk. Egy\u00e9bk\u00e9nt az opcion\u00e1lis param\u00e9terek alap\u00e9rtelmez\u00e9s szerint a szonda konfigur\u00e1ci\u00f3s szakasz\u00e1ban szerepl\u0151 megfelel\u0151 be\u00e1ll\u00edt\u00e1sokat haszn\u00e1lj\u00e1k. PROBE_CALIBRATE \u00b6 PROBE_CALIBRATE [SPEED=<speed>] [<probe_parameter>=<value>] : A szonda z_offset kalibr\u00e1l\u00e1s\u00e1hoz hasznos seg\u00e9dszkript futtat\u00e1sa. Az opcion\u00e1lis szondaparam\u00e9terekkel kapcsolatos r\u00e9szletek\u00e9rt l\u00e1sd a PROBE parancsot. L\u00e1sd a MANUAL_PROBE parancsot a SPEED param\u00e9terre \u00e9s az eszk\u00f6z akt\u00edv m\u0171k\u00f6d\u00e9se k\u00f6zben el\u00e9rhet\u0151 tov\u00e1bbi parancsokra vonatkoz\u00f3 r\u00e9szletek\u00e9rt. Felh\u00edvjuk a figyelmet, hogy a PROBE_CALIBRATE parancs a sebess\u00e9g v\u00e1ltoz\u00f3t haszn\u00e1lja az XY ir\u00e1ny\u00fa \u00e9s a Z ir\u00e1ny\u00fa mozg\u00e1shoz. Z_OFFSET_APPLY_PROBE \u00b6 Z_OFFSET_APPLY_PROBE : Vegy\u00fck az aktu\u00e1lis Z G-k\u00f3d eltol\u00e1st (m\u00e1s n\u00e9ven mikrol\u00e9p\u00e9s), \u00e9s vonjuk ki a szonda z_offset-j\u00e9b\u0151l. Ez egy gyakran haszn\u00e1lt mikrol\u00e9p\u00e9s \u00e9rt\u00e9ket vesz, \u00e9s \"\u00e1lland\u00f3v\u00e1 teszi\". Egy SAVE_CONFIG sz\u00fcks\u00e9ges a hat\u00e1lybal\u00e9p\u00e9shez. [query_adc] \u00b6 A query_adc modul automatikusan bet\u00f6lt\u0151dik. QUERY_ADC \u00b6 QUERY_ADC [NAME=<config_name>] [PULLUP=<value>] : Jelenti a konfigur\u00e1lt anal\u00f3g t\u0171h\u00f6z utolj\u00e1ra kapott anal\u00f3g \u00e9rt\u00e9ket. Ha NAME nincs megadva, a rendelkez\u00e9sre \u00e1ll\u00f3 ADC nevek list\u00e1ja ker\u00fcl jelent\u00e9sre. Ha a PULLUP meg van adva (ohmban megadott \u00e9rt\u00e9kk\u00e9nt), akkor a nyers anal\u00f3g \u00e9rt\u00e9ket \u00e9s a pullup adott egyen\u00e9rt\u00e9k\u0171 ellen\u00e1ll\u00e1st jelenti. [query_endstops] \u00b6 A query_endstops modul automatikusan bet\u00f6lt\u0151dik. Jelenleg a k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d parancsok \u00e1llnak rendelkez\u00e9sre, de haszn\u00e1latuk nem aj\u00e1nlott: V\u00e9g\u00e1ll\u00e1s \u00e1llapot\u00e1nak lek\u00e9rdez\u00e9se: M119 (Haszn\u00e1ld QUERY_ENDSTOPS helyett.) QUERY_ENDSTOPS \u00b6 QUERY_ENDSTOPS : M\u00e9ri a tengelyv\u00e9g\u00e1ll\u00e1sokat \u00e9s jelenti, ha azok \"kioldottak\" vagy \"nyitott\" \u00e1llapotban vannak. Ezt a parancsot \u00e1ltal\u00e1ban annak ellen\u0151rz\u00e9s\u00e9re haszn\u00e1lj\u00e1k, hogy egy v\u00e9g\u00e1ll\u00e1s megfelel\u0151en m\u0171k\u00f6dik-e. [resonance_tester] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a resonance_tester konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a rezonanci\u00e1k m\u00e9r\u00e9se \u00fatmutat\u00f3t ). MEASURE_AXES_NOISE \u00b6 MEASURE_AXES_NOISE : Az \u00f6sszes enged\u00e9lyezett gyorsul\u00e1sm\u00e9r\u0151 chip \u00f6sszes tengely\u00e9nek zaj\u00e1t m\u00e9ri \u00e9s adja ki. TEST_RESONANCES \u00b6 TEST_RESONANCES AXIS=<axis> OUTPUT=<resonances,raw_data> [NAME=<name>] [FREQ_START=<min_freq>] [FREQ_END=<max_freq>] [HZ_PER_SEC=<hz_per_sec>] [CHIPS=<adxl345_chip_name>] [POINT=x,y,z] [INPUT_SHAPING=[<0:1>]] : Lefuttatja a rezonanciatesztet a k\u00e9rt \"tengely\" \u00f6sszes konfigur\u00e1lt m\u00e9r\u0151pontj\u00e1ban, \u00e9s m\u00e9ri a gyorsul\u00e1st az adott tengelyhez konfigur\u00e1lt gyorsul\u00e1sm\u00e9r\u0151 chipek seg\u00edts\u00e9g\u00e9vel. A \"tengely\" lehet X vagy Y, vagy megadhat egy tetsz\u0151leges ir\u00e1nyt AXIS=dx,dy , ahol dx \u00e9s dy egy ir\u00e1nyvektort meghat\u00e1roz\u00f3 lebeg\u0151pontos sz\u00e1m (pl. AXIS=X , AXIS=Y , vagy AXIS=1,-1 az \u00e1tl\u00f3s ir\u00e1ny meghat\u00e1roz\u00e1s\u00e1hoz). Vegy\u00fck figyelembe, hogy az AXIS=dx,dy \u00e9s az AXIS=-dx,-dy egyen\u00e9rt\u00e9k\u0171. Az adxl345_chip_name lehet egy vagy t\u00f6bb konfigur\u00e1lt adxl345 chip, vessz\u0151vel elv\u00e1lasztva, p\u00e9ld\u00e1ul CHIPS=\"adxl345, adxl345 rpi\" . Megjegyzend\u0151, hogy az adxl345 elhagyhat\u00f3 a neves\u00edtett adxl345 chipekn\u00e9l. Ha POINT van megadva, az fel\u00fcl\u00edrja a [resonance_tester] alatt konfigur\u00e1lt pontokat. Ha INPUT_SHAPING=0 vagy nincs be\u00e1ll\u00edtva (alap\u00e9rtelmezett), letiltja a bemeneti alak\u00edt\u00e1st a rezonancia tesztel\u00e9shez, mert a rezonancia tesztel\u00e9s nem \u00e9rv\u00e9nyes a bemeneti alak\u00edt\u00f3 enged\u00e9lyez\u00e9s\u00e9vel. Az OUTPUT param\u00e9ter egy vessz\u0151vel elv\u00e1lasztott lista arr\u00f3l, hogy mely kimenetek ker\u00fclnek ki\u00edr\u00e1sra. Ha raw_data param\u00e9tert k\u00e9r, akkor a nyers gyorsul\u00e1sm\u00e9r\u0151 adatok egy /tmp/raw_data_<axis>_[<chip_name>_][<point>_]<name>.csv f\u00e1jlba vagy f\u00e1jlsorozatba \u00edr\u00f3dnak. A ( <point>_ n\u00e9v r\u00e9sz\u00e9vel, amely csak akkor gener\u00e1l\u00f3dik, ha 1-n\u00e9l t\u00f6bb m\u00e9r\u0151pont van konfigur\u00e1lva vagy POINT van megadva). Ha resonances van megadva, a frekvenciav\u00e1lasz kisz\u00e1m\u00edt\u00e1sra ker\u00fcl (az \u00f6sszes m\u00e9r\u0151pontra vonatkoz\u00f3an), \u00e9s a /tmp/resonances_<axis>_<name>.csv f\u00e1jlba \u00edr\u00f3dik. Ha nincs be\u00e1ll\u00edtva, az OUTPUT alap\u00e9rtelmez\u00e9s szerinti resonances , a NAME pedig alap\u00e9rtelmez\u00e9s szerint az aktu\u00e1lis id\u0151pontot jelenti \"\u00c9\u00c9\u00c9\u00c9HHNN_\u00d3\u00d3PPMPMP\" form\u00e1tumban. SHAPER_CALIBRATE \u00b6 SHAPER_CALIBRATE [AXIS=<axis>] [NAME=<name>] [FREQ_START=<min_freq>] [FREQ_END=<max_freq>] [HZ_PER_SEC=<hz_per_sec>] [MAX_SMOOTHING=<max_smoothing>] : A TEST_RESONANCES param\u00e9terhez hasonl\u00f3an lefuttatja a rezonancia tesztet a konfigur\u00e1ltak szerint, \u00e9s megpr\u00f3b\u00e1lja megtal\u00e1lni a bemeneti v\u00e1ltoz\u00f3 optim\u00e1lis param\u00e9tereit a k\u00e9rt tengelyre (vagy mind az X, mind az Y tengelyre, ha az AXIS param\u00e9ter nincs be\u00e1ll\u00edtva). Ha a MAX_SMOOTHING nincs be\u00e1ll\u00edtva, az \u00e9rt\u00e9k\u00e9t a [resonance_tester] szakaszb\u00f3l veszi, az alap\u00e9rtelmezett \u00e9rt\u00e9k pedig a be nem \u00e1ll\u00edtott \u00e9rt\u00e9k. L\u00e1sd a Max sim\u00edt\u00e1s a rezonanci\u00e1k m\u00e9r\u00e9se c\u00edm\u0171 \u00fatmutat\u00f3ban a funkci\u00f3 haszn\u00e1lat\u00e1r\u00f3l sz\u00f3l\u00f3 tov\u00e1bbi inform\u00e1ci\u00f3kat. A hangol\u00e1s eredm\u00e9nyei ki\u00edr\u00f3dnak a konzolra, a frekvenciav\u00e1laszok \u00e9s a k\u00fcl\u00f6nb\u00f6z\u0151 bemeneti alak\u00edt\u00f3k \u00e9rt\u00e9kei pedig egy vagy t\u00f6bb CSV-f\u00e1jlba \u00edr\u00f3dnak /tmp/calibration_data_<axis>_<name>.csv . Hacsak nincs megadva, a NAME alap\u00e9rtelmez\u00e9s szerint az aktu\u00e1lis id\u0151pontot jelenti \"YYYYMMDD_HHMMSS\" form\u00e1tumban. Vedd figyelembe, hogy a javasolt bemeneti v\u00e1ltoz\u00f3 param\u00e9terek a SAVE_CONFIG parancs kiad\u00e1s\u00e1val meg\u0151rizhet\u0151k a konfigur\u00e1ci\u00f3s f\u00e1jlban. [respond] \u00b6 A k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d\u00fa parancsok \u00e1llnak rendelkez\u00e9sre, ha a respond konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van: M118 <message> : visszhangozza az \u00fczenetet a konfigur\u00e1lt alap\u00e9rtelmezett el\u0151taggal (vagy echo: , ha nincs konfigur\u00e1lva el\u0151tag). A k\u00f6vetkez\u0151 tov\u00e1bbi parancsok is rendelkez\u00e9sre \u00e1llnak. RESPOND \u00b6 RESPOND MSG=\"<message>\" : visszhangozza az \u00fczenetet a konfigur\u00e1lt alap\u00e9rtelmezett el\u0151taggal kieg\u00e9sz\u00edtve (vagy echo: , ha nincs konfigur\u00e1lva el\u0151tag). RESPOND TYPE=echo MSG=\"<message>\" : visszhangozza az \u00fczenetet, amelyet echo: k\u00fcld. RESPOND TYPE=echo_no_space MSG=\"<message>\" : az \u00fczenet visszhangja az el\u0151taggal kieg\u00e9sz\u00edtve echo: sz\u00f3k\u00f6z n\u00e9lk\u00fcl az el\u0151tag \u00e9s az \u00fczenet k\u00f6z\u00f6tt, hasznos a kompatibilit\u00e1s n\u00e9h\u00e1ny olyan octoprint pluginnal, amelyek nagyon speci\u00e1lis form\u00e1z\u00e1st v\u00e1rnak el. RESPOND TYPE=command MSG=\"<message>\" : visszhangozza az \u00fczenetet // . Az OctoPrint konfigur\u00e1lhat\u00f3 \u00fagy, hogy v\u00e1laszoljon ezekre az \u00fczenetekre (pl. RESPOND TYPE=command MSG=action:pause ). RESPOND TYPE=error MSG=\"<message>\" : visszhangozza az \u00fczenetet !! . RESPOND PREFIX=<prefix> MSG=\"<message>\" : visszhangozza az \u00fczenetet <prefix> el\u0151taggal kieg\u00e9sz\u00edtve. (A PREFIX param\u00e9ter els\u0151bbs\u00e9get \u00e9lvez a TYPE param\u00e9terrel szemben.) [save_variables] \u00b6 A k\u00f6vetkez\u0151 parancs akkor enged\u00e9lyezett, ha a save_variables konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. SAVE_VARIABLE \u00b6 SAVE_VARIABLE VARIABLE=<name> VALUE=<value> : A v\u00e1ltoz\u00f3t a lemezre menti, hogy \u00fajraind\u00edt\u00e1skor is haszn\u00e1lhat\u00f3 legyen. Minden t\u00e1rolt v\u00e1ltoz\u00f3 bet\u00f6lt\u0151dik a printer.save_variables.variables dict ind\u00edt\u00e1skor, \u00e9s haszn\u00e1lhat\u00f3 a G-k\u00f3d makr\u00f3kban. A megadott VALUE-t Python liter\u00e1lk\u00e9nt elemzi. [screws_tilt_adjust] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a screws_tilt_adjust konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a k\u00e9zi szintbe\u00e1ll\u00edt\u00e1si \u00fatmutat\u00f3t ). SCREWS_TILT_CALCULATE \u00b6 SCREWS_TILT_CALCULATE [DIRECTION=CW|CCW] [MAX_DEVIATION=<value>] [<probe_parameter>=<value>] : Ez a parancs a t\u00e1rgyasztal csavarjainak be\u00e1ll\u00edt\u00e1si eszk\u00f6z\u00e9t h\u00edvja el\u0151. A f\u00fav\u00f3k\u00e1t k\u00fcl\u00f6nb\u00f6z\u0151 helyekre (a konfigur\u00e1ci\u00f3s f\u00e1jlban meghat\u00e1rozottak szerint) parancsolja a Z magass\u00e1got m\u00e9rve, \u00e9s kisz\u00e1m\u00edtja a t\u00e1rgyasztal szintj\u00e9nek be\u00e1ll\u00edt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges gombfordulatok sz\u00e1m\u00e1t. Ha DIRECTION van megadva, akkor a gombfordul\u00e1sok mind ugyanabba az ir\u00e1nyba, az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val megegyez\u0151 vagy az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1nyba fognak t\u00f6rt\u00e9nni. Az opcion\u00e1lis szondaparam\u00e9terekkel kapcsolatos r\u00e9szletek\u00e9rt l\u00e1sd a PROBE parancsot. FONTOS: A parancs haszn\u00e1lata el\u0151tt mindig ki kell adni egy G28 parancsot. Ha MAX_DEVIATION van megadva, a parancs G-k\u00f3d hib\u00e1t fog adni, ha a csavar magass\u00e1g\u00e1nak az alapcsavar magass\u00e1g\u00e1hoz viszony\u00edtott b\u00e1rmilyen k\u00fcl\u00f6nbs\u00e9ge nagyobb, mint a megadott \u00e9rt\u00e9k. [sdcard_loop] \u00b6 Ha az sdcard_loop konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van, a k\u00f6vetkez\u0151 kiterjesztett parancsok \u00e1llnak rendelkez\u00e9sre. SDCARD_LOOP_BEGIN \u00b6 SDCARD_LOOP_BEGIN COUNT=<count> : Egy hurokszer\u0171 szakasz kezdete az SD nyomtat\u00e1sban. A 0-\u00e1s sz\u00e1m azt jelzi, hogy a szakasz v\u00e9gtelen\u00edtett hurokba ker\u00fclj\u00f6n. SDCARD_LOOP_END \u00b6 SDCARD_LOOP_END : Az SD-nyomtat\u00e1sban egy ciklusos szakasz befejez\u00e9se. SDCARD_LOOP_DESIST \u00b6 SDCARD_LOOP_DESIST : A megl\u00e9v\u0151 ciklusok befejez\u00e9se tov\u00e1bbi iter\u00e1ci\u00f3k n\u00e9lk\u00fcl. [servo] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a szerv\u00f3 konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. SET_SERVO \u00b6 SET_SERVO SERVO=config_name [ANGLE=<degrees> | WIDTH=<seconds>] : A szerv\u00f3 poz\u00edci\u00f3j\u00e1nak be\u00e1ll\u00edt\u00e1sa a megadott sz\u00f6gre (fokban) vagy impulzussz\u00e9less\u00e9gre (m\u00e1sodpercben). A WIDTH=0 haszn\u00e1lat\u00e1val letilthatja a szerv\u00f3kimenetet. [skew_correction] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a skew_correction konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a Ferdes\u00e9gi korrekci\u00f3 \u00fatmutat\u00f3t). SET_SKEW \u00b6 SET_SKEW [XY=<ac_length,bd_length,ad_length>] [XZ=<ac,bd,ad>] [YZ=<ac,bd,ad>] [CLEAR=<0|1>] : A [skew_correction] modul konfigur\u00e1l\u00e1sa a kalibr\u00e1ci\u00f3s nyomatb\u00f3l vett m\u00e9r\u00e9sekkel (mm-ben). A m\u00e9r\u00e9sek a s\u00edkok tetsz\u0151leges kombin\u00e1ci\u00f3j\u00e1ra adhat\u00f3k meg, a be nem adott s\u00edkok megtartj\u00e1k az aktu\u00e1lis \u00e9rt\u00e9k\u00fcket. Ha CLEAR=1 van megadva, akkor minden ferdes\u00e9gkorrekci\u00f3 ki lesz kapcsolva. GET_CURRENT_SKEW \u00b6 GET_CURRENT_SKEW : A nyomtat\u00f3 aktu\u00e1lis ferdes\u00e9g\u00e9t jelenti minden s\u00edkhoz radi\u00e1nban \u00e9s fokban. A ferdes\u00e9g kisz\u00e1m\u00edt\u00e1sa a SET_SKEW G-k\u00f3dal megadott param\u00e9terek alapj\u00e1n t\u00f6rt\u00e9nik. CALC_MEASURED_SKEW \u00b6 CALC_MEASURED_SKEW [AC=<ac_length>] [BD=<bd_length>] [AD=<ad_length>] : Kisz\u00e1m\u00edtja \u00e9s jelenti a ferdes\u00e9get (radi\u00e1nban \u00e9s fokban) egy m\u00e9rt lenyomat alapj\u00e1n. Ez hasznos lehet a nyomtat\u00f3 aktu\u00e1lis ferdes\u00e9g\u00e9nek meghat\u00e1roz\u00e1s\u00e1hoz a korrekci\u00f3 alkalmaz\u00e1sa ut\u00e1n. A korrekci\u00f3 alkalmaz\u00e1sa el\u0151tt is hasznos lehet annak meghat\u00e1roz\u00e1s\u00e1hoz, hogy sz\u00fcks\u00e9ges-e a ferdes\u00e9gkorrekci\u00f3. A ferdes\u00e9g kalibr\u00e1ci\u00f3s objektumok \u00e9s m\u00e9r\u00e9sek r\u00e9szletei\u00e9rt l\u00e1sd a Ferdes\u00e9g korrekci\u00f3 dokumentumot. SKEW_PROFILE \u00b6 SKEW_PROFILE [LOAD=<name>] [SAVE=<name>] [REMOVE=<name>] : Profilkezel\u00e9s a skew_correction sz\u00e1m\u00e1ra. A LOAD vissza\u00e1ll\u00edtja a ferdes\u00e9g \u00e1llapot\u00e1t a megadott n\u00e9vnek megfelel\u0151 profilb\u00f3l. A SAVE a megadott n\u00e9vnek megfelel\u0151 profilba menti az aktu\u00e1lis ferdes\u00e9g\u00e1llapotot. A REMOVE t\u00f6rli a megadott n\u00e9vnek megfelel\u0151 profilt a tart\u00f3s mem\u00f3ri\u00e1b\u00f3l. Megjegyzend\u0151, hogy a SAVE vagy REMOVE m\u0171veletek lefuttat\u00e1sa ut\u00e1n a SAVE_CONFIG parancsot kell futtatni, hogy a tart\u00f3s mem\u00f3ri\u00e1ban v\u00e9grehajtott v\u00e1ltoztat\u00e1sok v\u00e9glegesek legyenek. [smart_effector] \u00b6 T\u00f6bb parancs is el\u00e9rhet\u0151, ha a smart_effector konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. A Smart Effector param\u00e9tereinek m\u00f3dos\u00edt\u00e1sa el\u0151tt mindenk\u00e9ppen n\u00e9zze meg a Smart Effector hivatalos dokument\u00e1ci\u00f3j\u00e1t a Duet3D Wiki oldalon. Ellen\u0151rizd tov\u00e1bb\u00e1 a szonda kalibr\u00e1ci\u00f3s \u00fatmutat\u00f3 c\u00edm\u0171 dokumenmot is. SET_SMART_EFFECTOR \u00b6 SET_SMART_EFFECTOR [SENSITIVITY=<sensitivity>] [ACCEL=<accel>] [RECOVERY_TIME=<time>] : A Smart Effector param\u00e9tereinek be\u00e1ll\u00edt\u00e1sa. Ha SENSITIVITY van megadva, a megfelel\u0151 \u00e9rt\u00e9k a SmartEffector EEPROM-ba \u00edr\u00f3dik ( control_pin biztos\u00edt\u00e1sa sz\u00fcks\u00e9ges). Az elfogadhat\u00f3 <sensitivity> \u00e9rt\u00e9kek 0..255, az alap\u00e9rtelmezett \u00e9rt\u00e9k 50..255. Az alacsonyabb \u00e9rt\u00e9kek kisebb f\u00fav\u00f3ka-\u00e9rintkez\u00e9si er\u0151t ig\u00e9nyelnek a kiold\u00e1shoz (de nagyobb a t\u00e9ves kiold\u00e1s kock\u00e1zata a szond\u00e1z\u00e1s k\u00f6zbeni rezg\u00e9sek miatt), a magasabb \u00e9rt\u00e9kek pedig cs\u00f6kkentik a t\u00e9ves kiold\u00e1st (de nagyobb \u00e9rintkez\u00e9si er\u0151t ig\u00e9nyelnek a kiold\u00e1shoz). Mivel az \u00e9rz\u00e9kenys\u00e9g az EEPROM-ba \u00edr\u00f3dik, a le\u00e1ll\u00edt\u00e1s ut\u00e1n is megmarad, \u00edgy nem kell minden nyomtat\u00f3 ind\u00edt\u00e1sakor konfigur\u00e1lni. ACCEL \u00e9s RECOVERY_TIME lehet\u0151v\u00e9 teszi a megfelel\u0151 param\u00e9terek fut\u00e1sid\u0151ben t\u00f6rt\u00e9n\u0151 fel\u00fclb\u00edr\u00e1l\u00e1s\u00e1t, a Smart Effector konfigur\u00e1ci\u00f3s szakasz tov\u00e1bbi inform\u00e1ci\u00f3kat tartalmaz ezekr\u0151l a param\u00e9terekr\u0151l. RESET_SMART_EFFECTOR \u00b6 RESET_SMART_EFFECTOR : Vissza\u00e1ll\u00edtja a Smart Effector \u00e9rz\u00e9kenys\u00e9g\u00e9t a gy\u00e1ri be\u00e1ll\u00edt\u00e1sokra. Sz\u00fcks\u00e9ges a control_pin megad\u00e1sa a config szakaszban. [stepper_enable] \u00b6 A stepper_enable modul automatikusan bet\u00f6lt\u0151dik. SET_STEPPER_ENABLE \u00b6 SET_STEPPER_ENABLE STEPPER=<config_name> ENABLE=[0|1] : Csak az adott l\u00e9ptet\u0151motor enged\u00e9lyez\u00e9se vagy letilt\u00e1sa. Ez egy diagnosztikai \u00e9s hibakeres\u00e9si eszk\u00f6z, ez\u00e9rt \u00f3vatosan kell haszn\u00e1lni. Egy l\u00e9ptet\u0151motor letilt\u00e1sa nem \u00e1ll\u00edtja vissza a kezd\u0151pont felv\u00e9teli inform\u00e1ci\u00f3kat. Egy letiltott l\u00e9ptet\u0151motor k\u00e9zi mozgat\u00e1sa azt okozhatja, hogy a g\u00e9p a biztons\u00e1gos hat\u00e1r\u00e9rt\u00e9keken k\u00edv\u00fcl m\u0171k\u00f6dteti a motort. Ez a tengely alkatr\u00e9szeinek, a nyomtat\u00f3fejnek \u00e9s a nyomtat\u00e1si fel\u00fcletnek a k\u00e1rosod\u00e1s\u00e1hoz vezethet. [temperature_fan] \u00b6 A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a temperature_fan konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. SET_TEMPERATURE_FAN_TARGET \u00b6 SET_TEMPERATURE_FAN_TARGET temperature_fan=<temperature_fan_name> [target=<target_temperature>] [min_speed=<min_speed>] [max_speed=<max_speed>] : A temperature_fan c\u00e9lh\u0151m\u00e9rs\u00e9klet\u00e9nek be\u00e1ll\u00edt\u00e1sa. Ha nincs megadva c\u00e9l\u00e9rt\u00e9k, akkor a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott h\u0151m\u00e9rs\u00e9kletet \u00e1ll\u00edtja be. Ha a sebess\u00e9gek nincsenek megadva, akkor nem t\u00f6rt\u00e9nik v\u00e1ltoz\u00e1s. [tmcXXXX] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a tmcXXXXXX konfigur\u00e1ci\u00f3s szakaszok b\u00e1rmelyike enged\u00e9lyezve van. DUMP_TMC \u00b6 DUMP_TMC STEPPER=<name> : Ez a parancs kiolvassa a TMC-motorvez\u00e9rl\u0151 regisztereit \u00e9s jelenti azok \u00e9rt\u00e9keit. INIT_TMC \u00b6 INIT_TMC STEPPER=<name> : Ez a parancs inicializ\u00e1lja a TMC regisztereket. A meghajt\u00f3 \u00fajraaktiv\u00e1l\u00e1s\u00e1hoz sz\u00fcks\u00e9ges, ha a chip \u00e1ramell\u00e1t\u00e1sa kikapcsol, majd visszakapcsol. SET_TMC_CURRENT \u00b6 SET_TMC_CURRENT STEPPER=<name> CURRENT=<amps> HOLDCURRENT=<amps> : Ez a TMC-motorvez\u00e9rl\u0151 fut\u00f3- \u00e9s tart\u00f3\u00e1ram\u00e1t \u00e1ll\u00edtja be. (A HOLDCURRENT nem alkalmazhat\u00f3 a tmc2660 motorvez\u00e9rl\u0151kre). SET_TMC_FIELD \u00b6 SET_TMC_FIELD STEPPER=<name> FIELD=<field> VALUE=<value> : Ez m\u00f3dos\u00edtja a TMC-motorvez\u00e9rl\u0151 megadott regisztermez\u0151j\u00e9nek \u00e9rt\u00e9k\u00e9t. Ez a parancs csak alacsony szint\u0171 diagnosztik\u00e1ra \u00e9s hibakeres\u00e9sre szolg\u00e1l, mivel a mez\u0151k fut\u00e1s k\u00f6zbeni m\u00f3dos\u00edt\u00e1sa a nyomtat\u00f3 nem k\u00edv\u00e1nt \u00e9s potenci\u00e1lisan vesz\u00e9lyes viselked\u00e9s\u00e9hez vezethet. A tart\u00f3s v\u00e1ltoztat\u00e1sokat ink\u00e1bb a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1nak haszn\u00e1lat\u00e1val kell elv\u00e9gezni. A megadott \u00e9rt\u00e9kek eset\u00e9ben nem t\u00f6rt\u00e9nik ellen\u0151rz\u00e9s. [toolhead] \u00b6 A nyomtat\u00f3fejmodul automatikusan bet\u00f6lt\u0151dik. SET_VELOCITY_LIMIT \u00b6 SET_VELOCITY_LIMIT [VELOCITY=<value>] [ACCEL=<value>] [ACCEL_TO_DECEL=<value>] [SQUARE_CORNER_VELOCITY=<value>] : A nyomtat\u00f3 sebess\u00e9ghat\u00e1rainak m\u00f3dos\u00edt\u00e1sa. [tuning_tower] \u00b6 A tuning_tower modul automatikusan bet\u00f6lt\u0151dik. TUNING_TOWER \u00b6 TUNING_TOWER COMMAND=<command> PARAMETER=<name> START=<value> [SKIP=<value>] [FACTOR=<value> [BAND=<value>]] | [STEP_DELTA=<value> STEP_HEIGHT=<value>] : Egy eszk\u00f6z egy param\u00e9ter be\u00e1ll\u00edt\u00e1s\u00e1ra minden egyes Z magass\u00e1gon a nyomtat\u00e1s sor\u00e1n. Az eszk\u00f6z az adott COMMAND parancsot a megadott PARAMETER \u00e9rt\u00e9khez rendelt Z \u00e9rt\u00e9kkel egy k\u00e9plet szerint v\u00e1ltoz\u00f3 \u00e9rt\u00e9kkel futtatja. Haszn\u00e1ld a FACTOR lehet\u0151s\u00e9get, ha vonalz\u00f3val vagy tol\u00f3m\u00e9r\u0151vel fogja m\u00e9rni az optim\u00e1lis Z magass\u00e1got, vagy STEP_DELTA \u00e9s STEP_HEIGHT , ha a hangol\u00f3torony modellje diszkr\u00e9t \u00e9rt\u00e9kek s\u00e1vjaival rendelkezik, mint ahogy az a h\u0151m\u00e9rs\u00e9klet-tornyokn\u00e1l gyakori. Ha SKIP=<value> van megadva, akkor a hangol\u00e1si folyamat nem kezd\u0151dik meg, am\u00edg a Z magass\u00e1g <value> el\u00e9r\u00e9s\u00e9t, \u00e9s ez alatt az \u00e9rt\u00e9k START \u00e9rt\u00e9kre lesz be\u00e1ll\u00edtva; ebben az esetben az al\u00e1bbi k\u00e9pletekben haszn\u00e1lt z_height val\u00f3j\u00e1ban max(z - skip, 0) . H\u00e1rom lehets\u00e9ges kombin\u00e1ci\u00f3 l\u00e9tezik: FACTOR : Az \u00e9rt\u00e9k factor millim\u00e9terenk\u00e9nt v\u00e1ltozik. Az alkalmazott k\u00e9plet: value = start + factor * z_height . Az optim\u00e1lis Z magass\u00e1got k\u00f6zvetlen\u00fcl a k\u00e9pletbe illesztheti az optim\u00e1lis param\u00e9ter\u00e9rt\u00e9k meghat\u00e1roz\u00e1s\u00e1hoz. FACTOR \u00e9s BAND : Az \u00e9rt\u00e9k \u00e1tlagosan Faktor millim\u00e9terenk\u00e9nt v\u00e1ltozik, de diszkr\u00e9t s\u00e1vokban, ahol a kiigaz\u00edt\u00e1s csak minden BAND millim\u00e9terenk\u00e9nt t\u00f6rt\u00e9nik a Z magass\u00e1gban. A haszn\u00e1lt k\u00e9plet a k\u00f6vetkez\u0151: value= start + factor* ((floor(z_height / band) + .5) * band) . STEP_DELTA \u00e9s STEP_HEIGHT : Az \u00e9rt\u00e9k STEP_DELTA minden STEP_HEIGHT millim\u00e9terrel v\u00e1ltozik. A haszn\u00e1lt k\u00e9plet a k\u00f6vetkez\u0151: value = start + step_delta * floor(z_height / step_height) . Az optim\u00e1lis \u00e9rt\u00e9k meghat\u00e1roz\u00e1s\u00e1hoz egyszer\u0171en megsz\u00e1molhatja a s\u00e1vokat vagy leolvashatja a hangol\u00f3torony \u00e9rt\u00e9keit. [virtual_sdcard] \u00b6 A Klipper t\u00e1mogatja a k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d parancsokat, ha a virtual_sdcard konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van: SD-k\u00e1rtya list\u00e1z\u00e1sa: M20 SD-k\u00e1rtya inicializ\u00e1l\u00e1sa: M21 V\u00e1laszd ki az SD f\u00e1jlt: M23 <filename> SD nyomtat\u00e1s ind\u00edt\u00e1sa/folytat\u00e1sa: M24 SD nyomtat\u00e1s sz\u00fcneteltet\u00e9se: M25 SD poz\u00edci\u00f3 be\u00e1ll\u00edt\u00e1sa: M26 S<offset> SD nyomtat\u00e1si st\u00e1tusz jelent\u00e9se: M27 Ezenk\u00edv\u00fcl a k\u00f6vetkez\u0151 kiterjesztett parancsok is el\u00e9rhet\u0151k, ha a \"virtual_sdcard\" konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. SDCARD_PRINT_FILE \u00b6 SDCARD_PRINT_FILE FILENAME=<filename> : Egy f\u00e1jl bet\u00f6lt\u00e9se \u00e9s az SD-nyomtat\u00e1s elind\u00edt\u00e1sa. SDCARD_RESET_FILE \u00b6 SDCARD_RESET_FILE : A f\u00e1jl elt\u00e1vol\u00edt\u00e1sa \u00e9s az SD \u00e1llapot\u00e1nak t\u00f6rl\u00e9se. [z_thermal_adjust] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a z_thermal_adjust konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. SET_Z_THERMAL_ADJUST \u00b6 SET_Z_THERMAL_ADJUST [ENABLE=<0:1>] [TEMP_COEFF=<value>] [REF_TEMP=<value>] : A Z h\u0151szab\u00e1lyoz\u00e1s enged\u00e9lyez\u00e9se vagy letilt\u00e1sa az ENABLE parancsal. A letilt\u00e1s nem t\u00e1vol\u00edtja el a m\u00e1r alkalmazott be\u00e1ll\u00edt\u00e1st, de befagyasztja az aktu\u00e1lis be\u00e1ll\u00edt\u00e1si \u00e9rt\u00e9ket. Ez megakad\u00e1lyozza a potenci\u00e1lisan nem biztons\u00e1gos Z lefel\u00e9 ir\u00e1nyul\u00f3 mozg\u00e1st. Az \u00fajb\u00f3li enged\u00e9lyez\u00e9s potenci\u00e1lisan felfel\u00e9 ir\u00e1nyul\u00f3 szersz\u00e1mmozg\u00e1st okozhat, mivel a be\u00e1ll\u00edt\u00e1s friss\u00fcl \u00e9s alkalmaz\u00e1sra ker\u00fcl. TEMP_COEFF lehet\u0151v\u00e9 teszi a be\u00e1ll\u00edt\u00e1si h\u0151m\u00e9rs\u00e9kleti egy\u00fctthat\u00f3 fut\u00e1sidej\u0171 hangol\u00e1s\u00e1t (azaz a TEMP_COEFF konfigur\u00e1ci\u00f3s param\u00e9tert). A TEMP_COEFF \u00e9rt\u00e9kek nem ker\u00fclnek ment\u00e9sre a konfigur\u00e1ci\u00f3ba. REF_TEMP manu\u00e1lisan fel\u00fclb\u00edr\u00e1lja a kezd\u0151pont felv\u00e9tel sor\u00e1n be\u00e1ll\u00edtott referencia-h\u0151m\u00e9rs\u00e9kletet (pl. nem szabv\u00e1nyos kezd\u0151pont felv\u00e9teli rutinokn\u00e1l t\u00f6rt\u00e9n\u0151 haszn\u00e1latra) - a kezd\u0151pont felv\u00e9telkor automatikusan vissza\u00e1ll. [z_tilt] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a z_tilt konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. Z_TILT_ADJUST \u00b6 Z_TILT_ADJUST [<probe_parameter>=<value>] : Ez a parancs a konfigur\u00e1ci\u00f3ban megadott pontokat vizsg\u00e1lja meg, majd a d\u0151l\u00e9s kompenz\u00e1l\u00e1sa \u00e9rdek\u00e9ben minden egyes Z l\u00e9ptet\u0151n f\u00fcggetlen be\u00e1ll\u00edt\u00e1sokat v\u00e9gez. Az opcion\u00e1lis m\u00e9r\u00e9si param\u00e9terekkel kapcsolatos r\u00e9szletek\u00e9rt l\u00e1sd a PROBE parancsot.","title":"G-k\u00f3dok"},{"location":"G-Codes.html#g-kodok","text":"Ez a dokumentum a Klipper \u00e1ltal t\u00e1mogatott parancsokat \u00edrja le. Ezek olyan parancsok, amelyeket az OctoPrint konzolj\u00e1ba lehet be\u00edrni.","title":"G-k\u00f3dok"},{"location":"G-Codes.html#g-kod-parancsok","text":"A Klipper a k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d parancsokat t\u00e1mogatja: Move (G0 or G1): G1 [X<pos>] [Y<pos>] [Z<pos>] [E<pos>] [F<speed>] Tart\u00f3zkod\u00e1s: G4 P<milliszekundum> Ugr\u00e1s a forr\u00e1sra: G28 [X] [Y] [Z] Kapcsolja ki a motorokat: M18 vagy M84 V\u00e1rja meg, am\u00edg az aktu\u00e1lis mozdulat befejez\u0151dik: M400 Haszn\u00e1lj abszol\u00fat/relat\u00edv t\u00e1vols\u00e1gokat az extrud\u00e1l\u00e1shoz: M82 , M83 Abszol\u00fat/relat\u00edv koordin\u00e1t\u00e1k haszn\u00e1lata: G90 , G91 \u00c1ll\u00edtsd be a poz\u00edci\u00f3t: G92 [X<pos>] [Y<pos>] [Z<pos>] [E<pos>] A sebess\u00e9gt\u00e9nyez\u0151 fel\u00fclb\u00edr\u00e1l\u00e1si sz\u00e1zal\u00e9k\u00e1nak be\u00e1ll\u00edt\u00e1sa: M220 S<percent> Extrud\u00e1l\u00e1si t\u00e9nyez\u0151 fel\u00fclb\u00edr\u00e1l\u00e1si sz\u00e1zal\u00e9k\u00e1nak be\u00e1ll\u00edt\u00e1sa: M221 S<percent> Gyors\u00edt\u00e1s be\u00e1ll\u00edt\u00e1sa: M204 S<value> VAGY M204 P<value> T<value> Megjegyz\u00e9s: Ha az S nincs megadva, de a P \u00e9s a T meg van adva, akkor a gyorsul\u00e1s a P \u00e9s a T k\u00f6z\u00fcl a minimumra van be\u00e1ll\u00edtva. Ha a P vagy a T k\u00f6z\u00fcl csak az egyik van megadva, a parancsnak nincs hat\u00e1sa. Extruder h\u0151m\u00e9rs\u00e9klet\u00e9nek lek\u00e9rdez\u00e9se: M105 Az extruder h\u0151m\u00e9rs\u00e9klet\u00e9nek be\u00e1ll\u00edt\u00e1sa: M104 [T<index>] [S<temperature>] Be\u00e1ll\u00edtja az extruder h\u0151m\u00e9rs\u00e9klet\u00e9t \u00e9s v\u00e1rakozik: M109 [T<index>] S<temperature> Megjegyz\u00e9s: Az M109 mindig megv\u00e1rja, m\u00edg a h\u0151m\u00e9rs\u00e9klet be\u00e1ll a k\u00e9rt \u00e9rt\u00e9kre Be\u00e1ll\u00edtja a t\u00e1rgyasztal h\u0151m\u00e9rs\u00e9klet\u00e9t: M140 [S<temperature>] Be\u00e1ll\u00edtja a t\u00e1rgyasztal h\u0151m\u00e9rs\u00e9klet\u00e9t \u00e9s v\u00e1rakozik: M190 S<temperature> Megjegyz\u00e9s: Az M190 mindig megv\u00e1rja, hogy a h\u0151m\u00e9rs\u00e9klet be\u00e1lljon a k\u00e9rt \u00e9rt\u00e9kre A ventil\u00e1tor sebess\u00e9g\u00e9nek be\u00e1ll\u00edt\u00e1sa: M106 S<value> Kikapcsolja a ventil\u00e1tort: M107 V\u00e9szle\u00e1ll\u00edt\u00f3: M112 Jelenlegi poz\u00edci\u00f3 lek\u00e9rdez\u00e9se: M114 A firmware verzi\u00f3j\u00e1nak lek\u00e9rdez\u00e9se: M115 A fenti parancsokkal kapcsolatos tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a RepRap G-k\u00f3d dokument\u00e1ci\u00f3 f\u00e1jlt. A Klipper c\u00e9lja, hogy t\u00e1mogassa az \u00e1ltal\u00e1nos 3. f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 szoftverek (pl. OctoPrint, Printrun, Slic3r, Cura, stb.) \u00e1ltal gener\u00e1lt G-k\u00f3d parancsokat a szabv\u00e1nyos konfigur\u00e1ci\u00f3ikban. Nem c\u00e9l, hogy minden lehets\u00e9ges G-k\u00f3d parancsot t\u00e1mogasson. Ehelyett a Klipper az ember \u00e1ltal olvashat\u00f3 \"kiterjesztett G-k\u00f3d\" parancsokat r\u00e9szes\u00edti el\u0151nyben. Hasonl\u00f3k\u00e9ppen, a G-k\u00f3d termin\u00e1l kimenete is csak ember \u00e1ltal olvashat\u00f3. L\u00e1sd az API Szerver dokumentumot , ha a Klippert k\u00fcls\u0151 szoftverb\u0151l ir\u00e1ny\u00edtod. Ha egy kev\u00e9sb\u00e9 gyakori G-k\u00f3d parancsra van sz\u00fcks\u00e9g, akkor azt egy egy\u00e9ni gcode_macro config section seg\u00edts\u00e9g\u00e9vel lehet megval\u00f3s\u00edtani. P\u00e9ld\u00e1ul ezt haszn\u00e1lhatn\u00e1nk a k\u00f6vetkez\u0151kre: G12 , G29 , G30 , G31 , M42 , M80 , M81 , T1 stb.","title":"G-k\u00f3d parancsok"},{"location":"G-Codes.html#tovabbi-parancsok","text":"A Klipper \"kiterjesztett\" G-k\u00f3d parancsokat haszn\u00e1l az \u00e1ltal\u00e1nos konfigur\u00e1ci\u00f3hoz \u00e9s \u00e1llapothoz. Ezek a kiterjesztett parancsok mind hasonl\u00f3 form\u00e1tumot k\u00f6vetnek, egy parancsn\u00e9vvel kezd\u0151dnek, \u00e9s egy vagy t\u00f6bb param\u00e9ter k\u00f6vetheti \u0151ket. P\u00e9ld\u00e1ul: SET_SERVO SERVO=myservo ANGLE=5.3 . Ebben a parancssorban a parancsok \u00e9s param\u00e9terek nagybet\u0171vel szerepelnek, azonban a nagy- \u00e9s kisbet\u0171ket nem kell figyelembe venni. (Teh\u00e1t a \"SET_SERVO\" \u00e9s a \"set_servo\" mindkett\u0151 ugyanazt jelenti.) Ez a szakasz a Klipper modul neve szerint van rendezve, amely \u00e1ltal\u00e1ban a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlban megadott szakaszneveket k\u00f6veti. Vedd figyelembe, hogy egyes modulok automatikusan bet\u00f6lt\u0151dnek.","title":"Tov\u00e1bbi parancsok"},{"location":"G-Codes.html#adxl345","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha az adxl345 konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[adxl345]"},{"location":"G-Codes.html#accelerometer_measure","text":"ACCELEROMETER_MEASURE [CHIP=<config_name>] [NAME=<value>] : A gyorsul\u00e1sm\u00e9r\u0151 m\u00e9r\u00e9sek elind\u00edt\u00e1sa a k\u00e9rt m\u00e1sodpercenk\u00e9nti mintav\u00e9telek sz\u00e1m\u00e1val. Ha a CHIP nincs megadva, az alap\u00e9rtelmezett \u00e9rt\u00e9k \"adxl345\". A parancs start-stop \u00fczemm\u00f3dban m\u0171k\u00f6dik: az els\u0151 v\u00e9grehajt\u00e1skor elind\u00edtja a m\u00e9r\u00e9seket, a k\u00f6vetkez\u0151 v\u00e9grehajt\u00e1skor le\u00e1ll\u00edtja azokat. A m\u00e9r\u00e9sek eredm\u00e9nyei a /tmp/adxl345-<chip>-<name> .csv nev\u0171 f\u00e1jlba ker\u00fclnek ki\u00edr\u00e1sra , ahol <chip> a gyorsul\u00e1sm\u00e9r\u0151 chip neve ( my_chip_name from [adxl345 my_chip_name] ) \u00e9s <name> az opcion\u00e1lis NAME param\u00e9ter. Ha a NAME nincs megadva, akkor az alap\u00e9rtelmezett \u00e9rt\u00e9k az aktu\u00e1lis id\u0151 \"\u00c9\u00c9\u00c9\u00c9\u00c9HHNN_\u00d3\u00d3PPMM\" form\u00e1tumban. Ha a gyorsul\u00e1sm\u00e9r\u0151nek nincs neve a konfigur\u00e1ci\u00f3s szakaszban (egyszer\u0171en [adxl345] ), akkor a <chip> n\u00e9vr\u00e9sz nem gener\u00e1l\u00f3dik.","title":"ACCELEROMETER_MEASURE"},{"location":"G-Codes.html#accelerometer_query","text":"ACCELEROMETER_QUERY [CHIP=<config_name>] [RATE=<value>] : lek\u00e9rdezi a gyorsul\u00e1sm\u00e9r\u0151 aktu\u00e1lis \u00e9rt\u00e9k\u00e9t. Ha a CHIP nincs megadva, az alap\u00e9rtelmezett\"adxl345\". Ha a RATE nincs megadva, az alap\u00e9rtelmezett \u00e9rt\u00e9ket haszn\u00e1lja. Ez a parancs hasznos az ADXL345 gyorsul\u00e1sm\u00e9r\u0151vel val\u00f3 kapcsolat tesztel\u00e9s\u00e9re. A visszaadott \u00e9rt\u00e9kek egyik\u00e9nek a szabades\u00e9ses gyorsul\u00e1snak kell lennie (+/- a chip alapzaja).","title":"ACCELEROMETER_QUERY"},{"location":"G-Codes.html#accelerometer_debug_read","text":"ACCELEROMETER_DEBUG_READ [CHIP=<config_name>] REG=<register> : lek\u00e9rdezi az ADXL345 \"register\" (pl. 44 vagy 0x2C) regiszter\u00e9t. Hasznos lehet hibakeres\u00e9si c\u00e9lokra.","title":"ACCELEROMETER_DEBUG_READ"},{"location":"G-Codes.html#accelerometer_debug_write","text":"ACCELEROMETER_DEBUG_WRITE [CHIP=<config_name>] REG=<register> VAL=<value> : Nyers \"\u00e9rt\u00e9k\" \u00edr\u00e1sa a \"register\"-be. Mind az \"\u00e9rt\u00e9k\", mind a \"register\" lehet decim\u00e1lis vagy hexadecim\u00e1lis eg\u00e9sz sz\u00e1m. Haszn\u00e1ld \u00f3vatosan, \u00e9s hivatkozzon az ADXL345 adatlapj\u00e1ra.","title":"ACCELEROMETER_DEBUG_WRITE"},{"location":"G-Codes.html#angle","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha az sz\u00f6g konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[angle]"},{"location":"G-Codes.html#angle_calibrate","text":"ANGLE_CALIBRATE CHIP=<chip_name> : Sz\u00f6gkalibr\u00e1l\u00e1s v\u00e9grehajt\u00e1sa az adott \u00e9rz\u00e9kel\u0151n (kell lennie egy [angle chip_name] konfigur\u00e1ci\u00f3s szakasznak, amely megadta a stepper param\u00e9tert). FONTOS! Ez az eszk\u00f6z a norm\u00e1l kinematikai hat\u00e1r\u00e9rt\u00e9kek ellen\u0151rz\u00e9se n\u00e9lk\u00fcl adja ki a l\u00e9ptet\u0151motor mozg\u00e1s\u00e1t. Ide\u00e1lis esetben a motort a kalibr\u00e1l\u00e1s elv\u00e9gz\u00e9se el\u0151tt le kell v\u00e1lasztani az adott kocsir\u00f3l. Ha a l\u00e9ptet\u0151motor nem kapcsolhat\u00f3 le a nyomtat\u00f3r\u00f3l, gy\u0151z\u0151dj meg r\u00f3la, hogy a kocsi a kalibr\u00e1l\u00e1s megkezd\u00e9se el\u0151tt a s\u00edn k\u00f6zep\u00e9n\u00e9l van. (A l\u00e9ptet\u0151motor k\u00e9t teljes fordulatot el\u0151re vagy h\u00e1tra mozoghat a teszt sor\u00e1n.) A teszt elv\u00e9gz\u00e9se ut\u00e1n haszn\u00e1ld a SAVE_CONFIG parancsot a kalibr\u00e1ci\u00f3s adatok printer.cfg f\u00e1jlba t\u00f6rt\u00e9n\u0151 ment\u00e9s\u00e9hez. Az eszk\u00f6z haszn\u00e1lat\u00e1hoz telep\u00edteni kell a Python \"numpy\" csomagot (tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a rezonancia m\u00e9r\u00e9se dokumentumot .","title":"ANGLE_CALIBRATE"},{"location":"G-Codes.html#angle_debug_read","text":"ANGLE_DEBUG_READ CHIP=<config_name> REG=<register> : A \"regiszter\" (pl. 44 vagy 0x2C) \u00e9rz\u00e9kel\u0151regiszter lek\u00e9rdez\u00e9se. Hasznos lehet hibakeres\u00e9si c\u00e9lokra. Ez csak a TLE5012B chipek eset\u00e9ben \u00e9rhet\u0151 el.","title":"ANGLE_DEBUG_READ"},{"location":"G-Codes.html#angle_debug_write","text":"ANGLE_DEBUG_WRITE CHIP=<config_name> REG=<register> VAL=<value> : Nyers \"\u00e9rt\u00e9k\" \u00edr\u00e1sa a \"register\" regiszter\u00e9be. Mind az \"\u00e9rt\u00e9k\", mind a \"regiszter\" lehet decim\u00e1lis vagy hexadecim\u00e1lis eg\u00e9sz sz\u00e1m. Haszn\u00e1ld \u00f3vatosan, \u00e9s hivatkozzon az \u00e9rz\u00e9kel\u0151 adatlapj\u00e1ra. Ez csak a TLE5012B chipek eset\u00e9ben \u00e9rhet\u0151 el.","title":"ANGLE_DEBUG_WRITE"},{"location":"G-Codes.html#bed_mesh","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a bed_mesh konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g az t\u00e1rgyasztal h\u00e1l\u00f3 \u00fatmutat\u00f3t ).","title":"[bed_mesh]"},{"location":"G-Codes.html#bed_mesh_calibrate","text":"BED_MESH_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>] [<mesh_parameter>=<value>] : Ez a parancs a t\u00e1rgyasztalt a konfigur\u00e1ci\u00f3ban megadott param\u00e9terek \u00e1ltal gener\u00e1lt pontok seg\u00edts\u00e9g\u00e9vel szintezi. A szintez\u00e9s ut\u00e1n egy h\u00e1l\u00f3 gener\u00e1l\u00f3dik, \u00e9s a Z elmozdul\u00e1s a h\u00e1l\u00f3nak megfelel\u0151en ker\u00fcl be\u00e1ll\u00edt\u00e1sra. Az opcion\u00e1lis szintez\u0151 param\u00e9terekkel kapcsolatos r\u00e9szletek\u00e9rt l\u00e1sd a PROBE parancsot. Ha a METHOD=manual parancsot adta meg, akkor a k\u00e9zi szintez\u0151 eszk\u00f6z aktiv\u00e1l\u00f3dik. Az eszk\u00f6z aktiv\u00e1l\u00e1sa k\u00f6zben el\u00e9rhet\u0151 tov\u00e1bbi parancsok r\u00e9szleteit l\u00e1sd a fenti MANUAL_PROBE parancsban.","title":"BED_MESH_CALIBRATE"},{"location":"G-Codes.html#bed_mesh_output","text":"BED_MESH_OUTPUT PGP=[<0:1>] : Ez a parancs az aktu\u00e1lis m\u00e9rt Z \u00e9rt\u00e9keket \u00e9s az aktu\u00e1lis h\u00e1l\u00f3\u00e9rt\u00e9keket adja ki a termin\u00e1lra. A PGP=1 megad\u00e1sa eset\u00e9n a bed_mesh \u00e1ltal gener\u00e1lt X, Y koordin\u00e1t\u00e1k \u00e9s a hozz\u00e1juk tartoz\u00f3 indexek ker\u00fclnek a termin\u00e1lra.","title":"BED_MESH_OUTPUT"},{"location":"G-Codes.html#bed_mesh_map","text":"BED_MESH_MAP : Ez a parancs a BED_MESH_OUTPUT-hoz hasonl\u00f3an a h\u00e1l\u00f3 aktu\u00e1lis \u00e1llapot\u00e1t \u00edrja ki a termin\u00e1lra. Az \u00e9rt\u00e9kek ember \u00e1ltal olvashat\u00f3 form\u00e1tumban t\u00f6rt\u00e9n\u0151 ki\u00edr\u00e1sa helyett az \u00e1llapotot JSON form\u00e1tumban szerializ\u00e1lja. Ez lehet\u0151v\u00e9 teszi az OctoPrint pluginek sz\u00e1m\u00e1ra, hogy k\u00f6nnyen r\u00f6gz\u00edts\u00e9k az adatokat, \u00e9s a t\u00e1rgyasztal felsz\u00edn\u00e9t k\u00f6zel\u00edt\u0151 magass\u00e1gi t\u00e9rk\u00e9peket hozzanak l\u00e9tre.","title":"BED_MESH_MAP"},{"location":"G-Codes.html#bed_mesh_clear","text":"BED_MESH_CLEAR : Ez a parancs t\u00f6rli a h\u00e1l\u00f3t \u00e9s elt\u00e1vol\u00edt minden Z-be\u00e1ll\u00edt\u00e1st. Aj\u00e1nlott ezt a parancsot befejez\u0151 G-k\u00f3dba tenni.","title":"BED_MESH_CLEAR"},{"location":"G-Codes.html#bed_mesh_profile","text":"BED_MESH_PROFILE LOAD=<name> SAVE=<name> REMOVE=<name> : Ez a parancs a h\u00e1l\u00f3 \u00e1llapot\u00e1nak profilkezel\u00e9s\u00e9t biztos\u00edtja. A LOAD a h\u00e1l\u00f3 \u00e1llapot\u00e1t a megadott n\u00e9vnek megfelel\u0151 profilb\u00f3l \u00e1ll\u00edtja vissza. A SAVE parancs az aktu\u00e1lis h\u00e1l\u00f3\u00e1llapotot a megadott n\u00e9vnek megfelel\u0151 profilba menti. A REMOVE a megadott n\u00e9vnek megfelel\u0151 profilt t\u00f6rli a tart\u00f3s mem\u00f3ri\u00e1b\u00f3l. Megjegyzend\u0151, hogy a SAVE vagy REMOVE m\u0171veletek lefuttat\u00e1sa ut\u00e1n a SAVE_CONFIG parancsot kell futtatni, hogy a tart\u00f3s mem\u00f3ri\u00e1ban v\u00e9grehajtott v\u00e1ltoztat\u00e1sok v\u00e9glegesek legyenek.","title":"BED_MESH_PROFILE"},{"location":"G-Codes.html#bed_mesh_offset","text":"BED_MESH_OFFSET [X=<value>] [Y=<value>] : X \u00e9s/vagy Y eltol\u00e1st alkalmazza a h\u00e1l\u00f3keres\u00e9shez. Ez a f\u00fcggetlen extruderekkel rendelkez\u0151 nyomtat\u00f3kn\u00e1l hasznos, mivel az eltol\u00e1s sz\u00fcks\u00e9ges a szersz\u00e1mcsere ut\u00e1ni helyes Z-be\u00e1ll\u00edt\u00e1shoz.","title":"BED_MESH_OFFSET"},{"location":"G-Codes.html#bed_screws","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha az t\u00e1rgyasztal szintez\u0151 csavarok konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a k\u00e9zi szintez\u00e9s \u00fatmutat\u00f3t ).","title":"[bed_screws]"},{"location":"G-Codes.html#bed_screws_adjust","text":"BED_SCREWS_ADJUST : Ez a parancs a t\u00e1rgyasztal \u00e1ll\u00edt\u00f3csavarok be\u00e1ll\u00edt\u00e1si eszk\u00f6z\u00e9t h\u00edvja el\u0151. A f\u00fav\u00f3k\u00e1t k\u00fcl\u00f6nb\u00f6z\u0151 helyekre k\u00fcldi (a konfigur\u00e1ci\u00f3s f\u00e1jlban meghat\u00e1rozottak szerint), \u00e9s lehet\u0151v\u00e9 teszi a t\u00e1rgyasztal \u00e1ll\u00edt\u00f3csavarok be\u00e1ll\u00edt\u00e1s\u00e1t, hogy a t\u00e1rgyasztal \u00e1lland\u00f3 t\u00e1vols\u00e1gra legyen a f\u00fav\u00f3k\u00e1t\u00f3l.","title":"BED_SCREWS_ADJUST"},{"location":"G-Codes.html#bed_tilt","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a bed_tilt konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[bed_tilt]"},{"location":"G-Codes.html#bed_tilt_calibrate","text":"BED_TILT_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>] : Ez a parancs a konfigur\u00e1ci\u00f3ban megadott pontokat vizsg\u00e1lja, majd friss\u00edtett X \u00e9s Y d\u0151l\u00e9sbe\u00e1ll\u00edt\u00e1sokat javasol. Az opcion\u00e1lis m\u00e9r\u00e9si param\u00e9terekkel kapcsolatos r\u00e9szletek\u00e9rt l\u00e1sd a PROBE parancsot. Ha a METHOD=manual van megadva, akkor a k\u00e9zi szintez\u0151 aktiv\u00e1l\u00f3dik. Az ezen eszk\u00f6z aktiv\u00e1l\u00e1sakor el\u00e9rhet\u0151 tov\u00e1bbi parancsok r\u00e9szleteit l\u00e1sd a fenti MANUAL_PROBE parancsban.","title":"BED_TILT_CALIBRATE"},{"location":"G-Codes.html#bltouch","text":"A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a bltouch konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a BL-Touch \u00fatmutat\u00f3t ).","title":"[bltouch]"},{"location":"G-Codes.html#bltouch_debug","text":"BLTOUCH_DEBUG COMMAND=<command> : Ez egy parancsot k\u00fcld a BLTouch-nak. Hasznos lehet a hibakeres\u00e9shez. A rendelkez\u00e9sre \u00e1ll\u00f3 parancsok a k\u00f6vetkez\u0151k: pin_down , touch_mode , pin_up , self_test , reset . A BL-Touch V3.0 vagy V3.1 t\u00e1mogathatja a set_5V_output_mode , set_OD_output_mode , output_mode_store parancsokat is.","title":"BLTOUCH_DEBUG"},{"location":"G-Codes.html#bltouch_store","text":"BLTOUCH_STORE MODE=<output_mode> : Ez egy kimeneti m\u00f3dot t\u00e1rol a BLTouch V3.1 EEPROM-j\u00e1ban: 5V , OD","title":"BLTOUCH_STORE"},{"location":"G-Codes.html#configfile","text":"A configfile modul automatikusan bet\u00f6lt\u0151dik.","title":"[configfile]"},{"location":"G-Codes.html#save_config","text":"SAVE_CONFIG : Ez a parancs fel\u00fcl\u00edrja a nyomtat\u00f3 f\u0151 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1t \u00e9s \u00fajraind\u00edtja a gazdaszoftvert. Ez a parancs m\u00e1s kalibr\u00e1l\u00e1si parancsokkal egy\u00fctt haszn\u00e1lhat\u00f3 a kalibr\u00e1ci\u00f3s tesztek eredm\u00e9nyeinek t\u00e1rol\u00e1s\u00e1ra.","title":"SAVE_CONFIG"},{"location":"G-Codes.html#delayed_gcode","text":"A k\u00f6vetkez\u0151 parancs akkor enged\u00e9lyezett, ha a delayed_gcode konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a parancssablon \u00fatmutat\u00f3t ).","title":"[delayed_gcode]"},{"location":"G-Codes.html#update_delayed_gcode","text":"UPDATE_DELAYED_GCODE [ID=<name>] [DURATION=<seconds>] : Friss\u00edti az azonos\u00edtott [delayed_gcode] k\u00e9sleltet\u00e9si id\u0151tartam\u00e1t \u00e9s elind\u00edtja a G-k\u00f3d v\u00e9grehajt\u00e1s\u00e1nak id\u0151z\u00edt\u0151j\u00e9t. A 0 \u00e9rt\u00e9k t\u00f6rli a f\u00fcgg\u0151ben l\u00e9v\u0151 k\u00e9sleltetett G-k\u00f3d v\u00e9grehajt\u00e1s\u00e1t.","title":"UPDATE_DELAYED_GCODE"},{"location":"G-Codes.html#delta_calibrate","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a delta_kalibrate konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a delta kalibr\u00e1ci\u00f3s \u00fatmutat\u00f3t ).","title":"[delta_calibrate]"},{"location":"G-Codes.html#delta_calibrate_1","text":"DELTA_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>] : Ez a parancs a t\u00e1rgyasztal h\u00e9t pontj\u00e1t vizsg\u00e1lja meg, \u00e9s friss\u00edtett v\u00e9g\u00e1ll\u00e1sok, toronysz\u00f6gek \u00e9s sugarak aj\u00e1nl\u00e1s\u00e1ra szolg\u00e1l. Az opcion\u00e1lis m\u00e9r\u00e9si param\u00e9terekkel kapcsolatos r\u00e9szletek\u00e9rt l\u00e1sd a PROBE parancsot. Ha a METHOD=manual \u00e9rt\u00e9k van megadva, akkor a k\u00e9zi szintez\u00e9s aktiv\u00e1l\u00f3dik. L\u00e1sd a fenti MANUAL_PROBE parancsot a tov\u00e1bbi parancsok r\u00e9szletei\u00e9rt, amelyek akkor \u00e1llnak rendelkez\u00e9sre, amikor ez az eszk\u00f6z akt\u00edv.","title":"DELTA_CALIBRATE"},{"location":"G-Codes.html#delta_analyze","text":"DELTA_ANALYZE : Ez a parancs a fokozott delta-kalibr\u00e1l\u00e1s sor\u00e1n haszn\u00e1latos. A r\u00e9szletek\u00e9rt l\u00e1sd a Delta kalibr\u00e1l\u00e1s c\u00edm\u0171 dokumentumot.","title":"DELTA_ANALYZE"},{"location":"G-Codes.html#display","text":"A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a konfigur\u00e1ci\u00f3s szakasz megjelen\u00edt\u00e9se enged\u00e9lyezve van.","title":"[display]"},{"location":"G-Codes.html#set_display_group","text":"SET_DISPLAY_GROUP [DISPLAY=<display>] GROUP=<group> : Az LCD-kijelz\u0151 akt\u00edv kijelz\u0151csoportj\u00e1nak be\u00e1ll\u00edt\u00e1sa. Ez lehet\u0151v\u00e9 teszi t\u00f6bb kijelz\u0151 adatcsoport defini\u00e1l\u00e1s\u00e1t a konfigur\u00e1ci\u00f3ban, pl. [display_data <group> <elementname>] \u00e9s a k\u00f6zt\u00fck val\u00f3 v\u00e1lt\u00e1st ezzel a kiterjesztett G-k\u00f3d paranccsal. Ha a DISPLAY nincs megadva, akkor alap\u00e9rtelmez\u00e9s szerint \"display\" (az els\u0151dleges kijelz\u0151).","title":"SET_DISPLAY_GROUP"},{"location":"G-Codes.html#display_status","text":"A display_status modul automatikusan bet\u00f6lt\u0151dik, ha a display konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. A k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d parancsokat biztos\u00edtja: \u00dczenet megjelen\u00edt\u00e9se: M117 <message> Nyomtat\u00e1si folyamat sz\u00e1zal\u00e9kos ar\u00e1ny be\u00e1ll\u00edt\u00e1sa: M73 P<percent> A k\u00f6vetkez\u0151 kiterjesztett G-k\u00f3d parancs is rendelkez\u00e9sre \u00e1ll: SET_DISPLAY_TEXT MSG=<message> : Az M117 paranccsal egyen\u00e9rt\u00e9k\u0171 m\u0171velet, amely az MSG c\u00edmen megadott \u00fczenetet \u00e1ll\u00edtja be aktu\u00e1lis kijelz\u0151\u00fczenetk\u00e9nt. Ha az MSG elmarad, a kijelz\u0151 t\u00f6rl\u0151dik.","title":"[display_status]"},{"location":"G-Codes.html#dual_carriage","text":"A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a dual_carriage konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[dual_carriage]"},{"location":"G-Codes.html#set_dual_carriage","text":"SET_DUAL_CARRIAGE CARRIAGE=[0|1] : Ez a parancs be\u00e1ll\u00edtja az akt\u00edv kocsit. \u00c1ltal\u00e1ban az activate_gcode \u00e9s deactivate_gcode mez\u0151kb\u0151l h\u00edvhat\u00f3 el\u0151 t\u00f6bb extruder konfigur\u00e1ci\u00f3ban.","title":"SET_DUAL_CARRIAGE"},{"location":"G-Codes.html#endstop_phase","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha az endstop_phase konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a v\u00e9g\u00e1ll\u00e1s f\u00e1zis \u00fatmutat\u00f3t ).","title":"[endstop_phase]"},{"location":"G-Codes.html#endstop_phase_calibrate","text":"ENDSTOP_PHASE_CALIBRATE [STEPPER=<config_name>] : Ha nincs megadva STEPPER param\u00e9ter, akkor ez a parancs a m\u00faltbeli kezd\u0151pont felv\u00e9teli m\u0171veletek sor\u00e1n a v\u00e9g\u00e1ll\u00e1si l\u00e9pcs\u0151f\u00e1zisok statisztik\u00e1it jelenti. STEPPER param\u00e9ter megad\u00e1sa eset\u00e9n gondoskodik arr\u00f3l, hogy a megadott v\u00e9g\u00e1ll\u00e1sf\u00e1zis-be\u00e1ll\u00edt\u00e1s a konfigur\u00e1ci\u00f3s f\u00e1jlba \u00edr\u00f3djon (a SAVE_CONFIG parancs seg\u00edts\u00e9g\u00e9vel).","title":"ENDSTOP_PHASE_CALIBRATE"},{"location":"G-Codes.html#exclude_object","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha az exclude_object konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a t\u00e1rgy\u00fatmutat\u00f3 kiz\u00e1r\u00e1sa ):","title":"[exclude_object]"},{"location":"G-Codes.html#exclude_object_1","text":"EXCLUDE_OBJECT [NAME=object_name] [CURRENT=1] [RESET=1] : Param\u00e9terek n\u00e9lk\u00fcl az \u00f6sszes jelenleg kiz\u00e1rt objektum list\u00e1j\u00e1t adja vissza. Ha a NAME param\u00e9tert adjuk meg, a megnevezett objektumot kiz\u00e1rjuk a nyomtat\u00e1sb\u00f3l. A CURRENT param\u00e9ter megad\u00e1sakor az aktu\u00e1lis objektumot kiz\u00e1rja a nyomtat\u00e1sb\u00f3l. A RESET param\u00e9ter megad\u00e1sakor a kiz\u00e1rt objektumok list\u00e1ja t\u00f6rl\u0151dik. Ezen k\u00edv\u00fcl a NAME bevon\u00e1sa csak a megnevezett objektumot fogja vissza\u00e1ll\u00edtani. Ez nyomtat\u00e1si hib\u00e1kat okozhat, ha a r\u00e9tegek m\u00e1r kihagy\u00e1sra ker\u00fcltek.","title":"EXCLUDE_OBJECT"},{"location":"G-Codes.html#exclude_object_define","text":"EXCLUDE_OBJECT_DEFINE [NAME=object_name [CENTER=X,Y] [POLYGON=[[x,y],...]] [RESET=1] [JSON=1] : A f\u00e1jlban l\u00e9v\u0151 objektum \u00f6sszefoglal\u00f3j\u00e1t adja meg. Ha nem adunk meg param\u00e9tereket, akkor a Klipper \u00e1ltal ismert, defini\u00e1lt objektumok list\u00e1ja jelenik meg. Sztringek list\u00e1j\u00e1t adja vissza, kiv\u00e9ve, ha a JSON param\u00e9tert adjuk meg, ekkor az objektumok adatait JSON form\u00e1tumban adja vissza. Ha a NAME param\u00e9ter szerepel, ez egy kiz\u00e1rand\u00f3 objektumot hat\u00e1roz meg. NAME : Ez a param\u00e9ter k\u00f6telez\u0151. Ez a modul m\u00e1s parancsai \u00e1ltal haszn\u00e1lt azonos\u00edt\u00f3. CENTER : Az objektum X,Y koordin\u00e1t\u00e1ja. POLYGON : X,Y koordin\u00e1t\u00e1k t\u00f6mbje, amely az objektum k\u00f6rvonal\u00e1t adja. A RESET param\u00e9ter megad\u00e1sakor az \u00f6sszes defini\u00e1lt objektum t\u00f6rl\u0151dik, \u00e9s az [exclude_object] modul vissza\u00e1ll.","title":"EXCLUDE_OBJECT_DEFINE"},{"location":"G-Codes.html#exclude_object_start","text":"EXCLUDE_OBJECT_START NAME=object_name : Ez a parancs egy NAME param\u00e9tert vesz fel, \u00e9s az aktu\u00e1lis r\u00e9tegen l\u00e9v\u0151 objektum G-k\u00f3dj\u00e1nak kezdet\u00e9t jel\u00f6li.","title":"EXCLUDE_OBJECT_START"},{"location":"G-Codes.html#exclude_object_end","text":"EXCLUDE_OBJECT_END [NAME=object_name] : Az objektum G-k\u00f3dj\u00e1nak v\u00e9g\u00e9t jel\u00f6li a r\u00e9teghez. Az EXCLUDE_OBJECT_START -al p\u00e1rosul. A NAME param\u00e9ter opcion\u00e1lis, \u00e9s csak akkor figyelmeztet, ha a megadott n\u00e9v nem egyezik az aktu\u00e1lis objektummal.","title":"EXCLUDE_OBJECT_END"},{"location":"G-Codes.html#extruder","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha az extruder konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van:","title":"[extruder]"},{"location":"G-Codes.html#activate_extruder","text":"ACTIVATE_EXTRUDER EXTRUDER=<config_name> : T\u00f6bb extruder konfigur\u00e1ci\u00f3s szakaszokkal rendelkez\u0151 nyomtat\u00f3ban ez a parancs megv\u00e1ltoztatja az akt\u00edv nyomtat\u00f3fejet.","title":"ACTIVATE_EXTRUDER"},{"location":"G-Codes.html#set_pressure_advance","text":"SET_PRESSURE_ADVANCE [EXTRUDER=<config_name>] [ADVANCE=<pressure_advance>] [SMOOTH_TIME=<pressure_advance_smooth_time>] : Egy extruder l\u00e9ptet\u0151 nyom\u00e1stov\u00e1bb\u00edt\u00e1si param\u00e9tereinek be\u00e1ll\u00edt\u00e1sa (ahogyan az egy extruder vagy extruder_stepper konfigur\u00e1ci\u00f3s szakaszban szerepel). Ha az EXTRUDER nincs megadva, akkor az alap\u00e9rtelmezett \u00e9rt\u00e9k az akt\u00edv hotendben defini\u00e1lt stepper.","title":"SET_PRESSURE_ADVANCE"},{"location":"G-Codes.html#set_extruder_rotation_distance","text":"SET_EXTRUDER_ROTATION_DISTANCE EXTRUDER=<config_name> [DISTANCE=<distance>] : A megadott extruder l\u00e9ptet\u0151k \"forg\u00e1si t\u00e1vols\u00e1g\" \u00faj \u00e9rt\u00e9k\u00e9nek be\u00e1ll\u00edt\u00e1sa (ahogyan az extruder vagy extruder_stepper konfigur\u00e1ci\u00f3s szakaszban meghat\u00e1rozott). Ha a forg\u00e1si t\u00e1vols\u00e1g negat\u00edv sz\u00e1m, akkor a l\u00e9ptet\u0151 mozg\u00e1sa inverz lesz (a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott l\u00e9ptet\u0151 ir\u00e1nyhoz k\u00e9pest). A megv\u00e1ltoztatott be\u00e1ll\u00edt\u00e1sok nem maradnak meg a Klipper vissza\u00e1ll\u00edt\u00e1sakor. \u00d3vatosan haszn\u00e1ld, mivel a kis v\u00e1ltoztat\u00e1sok t\u00falzott nyom\u00e1st eredm\u00e9nyezhetnek az extruder \u00e9s a hotend k\u00f6z\u00f6tt. Haszn\u00e1lat el\u0151tt v\u00e9gezd el a megfelel\u0151 kalibr\u00e1ci\u00f3t a filamenttel. Ha a 'DISTANCE' \u00e9rt\u00e9k nincs megadva, akkor ez a parancs az aktu\u00e1lis forg\u00e1si t\u00e1vols\u00e1got adja meg.","title":"SET_EXTRUDER_ROTATION_DISTANCE"},{"location":"G-Codes.html#sync_extruder_motion","text":"SYNC_EXTRUDER_MOTION EXTRUDER=<name> MOTION_QUEUE=<name> : Ez a parancs az EXTRUDER \u00e1ltal meghat\u00e1rozott l\u00e9ptet\u0151t (ahogyan az extruder vagy extruder_stepper konfigur\u00e1ci\u00f3s szakaszban) meghat\u00e1rozott extruder mozg\u00e1s\u00e1hoz szinkroniz\u00e1l\u00f3dik a MOTION_QUEUE \u00e1ltal meghat\u00e1rozott extruder mozg\u00e1s\u00e1hoz (ahogyan az extruder konfigur\u00e1ci\u00f3s szakaszban defini\u00e1lt\u00e1k). Ha a MOTION_QUEUE \u00fcres karakterl\u00e1nc, akkor a l\u00e9ptet\u0151 deszinkroniz\u00e1l\u00f3dik az extruder minden mozg\u00e1s\u00e1ra.","title":"SYNC_EXTRUDER_MOTION"},{"location":"G-Codes.html#set_extruder_step_distance","text":"Ez a parancs elavult, \u00e9s a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fcl.","title":"SET_EXTRUDER_STEP_DISTANCE"},{"location":"G-Codes.html#sync_stepper_to_extruder","text":"Ez a parancs elavult, \u00e9s a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fcl.","title":"SYNC_STEPPER_TO_EXTRUDER"},{"location":"G-Codes.html#fan_generic","text":"A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a fan_generic konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[fan_generic]"},{"location":"G-Codes.html#set_fan_speed","text":"SET_FAN_SPEED FAN=config_name SPEED=<speed> Ez a parancs be\u00e1ll\u00edtja a ventil\u00e1tor sebess\u00e9g\u00e9t. \"speed\" 0.0 \u00e9s 1.0 k\u00f6z\u00f6tt kell lennie.","title":"SET_FAN_SPEED"},{"location":"G-Codes.html#filament_switch_sensor","text":"A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a filament_switch_sensor vagy filament_motion_sensor konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[filament_switch_sensor]"},{"location":"G-Codes.html#query_filament_sensor","text":"QUERY_FILAMENT_SENSOR SENSOR=<sensor_name> : A nyomtat\u00f3sz\u00e1l-\u00e9rz\u00e9kel\u0151 aktu\u00e1lis \u00e1llapot\u00e1nak lek\u00e9rdez\u00e9se. A termin\u00e1lon megjelen\u0151 adatok a konfigur\u00e1ci\u00f3ban meghat\u00e1rozott \u00e9rz\u00e9kel\u0151t\u00edpust\u00f3l f\u00fcggnek.","title":"QUERY_FILAMENT_SENSOR"},{"location":"G-Codes.html#set_filament_sensor","text":"SET_FILAMENT_SENSOR SENSOR=<sensor_name> ENABLE=[0|1] : A nyomtat\u00f3sz\u00e1l \u00e9rz\u00e9kel\u0151 be/ki kapcsol\u00e1sa. Ha az ENABLE \u00e9rt\u00e9ke 0, akkor a nyomtat\u00f3sz\u00e1l-\u00e9rz\u00e9kel\u0151 ki lesz kapcsolva, ha 1-re van \u00e1ll\u00edtva, akkor bekapcsol.","title":"SET_FILAMENT_SENSOR"},{"location":"G-Codes.html#firmware_retraction","text":"A k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d\u00fa parancsok \u00e1llnak rendelkez\u00e9sre, ha a firmware_retraction konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. Ezek a parancsok lehet\u0151v\u00e9 teszik a szeletel\u0151kben el\u00e9rhet\u0151 firmware retraction funkci\u00f3 kihaszn\u00e1l\u00e1s\u00e1t, hogy cs\u00f6kkentse a h\u00farosod\u00e1st a nem extrud\u00e1l\u00e1sos mozg\u00e1sok sor\u00e1n a nyomtat\u00e1s egyik r\u00e9sz\u00e9b\u0151l a m\u00e1sikba. A nyom\u00e1s el\u0151tol\u00e1s megfelel\u0151 be\u00e1ll\u00edt\u00e1sa cs\u00f6kkenti a sz\u00fcks\u00e9ges visszah\u00faz\u00e1s hossz\u00e1t. G10 : Visszah\u00fazza a nyomtat\u00f3sz\u00e1lat a konfigur\u00e1lt param\u00e9terek szerint. G11 : Bet\u00f6lti a nyomtat\u00f3sz\u00e1lat a konfigur\u00e1lt param\u00e9terek szerint. A k\u00f6vetkez\u0151 tov\u00e1bbi parancsok is rendelkez\u00e9sre \u00e1llnak.","title":"[firmware_retraction]"},{"location":"G-Codes.html#set_retraction","text":"SET_RETRACTION [RETRACT_LENGTH=<mm>] [RETRACT_SPEED=<mm/s>] [UNRETRACT_EXTRA_LENGTH=<mm>] [UNRETRACT_SPEED=<mm/s>] : A firmware visszah\u00faz\u00e1s \u00e1ltal haszn\u00e1lt param\u00e9terek be\u00e1ll\u00edt\u00e1sa. A RETRACT_LENGTH hat\u00e1rozza meg a visszah\u00fazand\u00f3 \u00e9s a visszah\u00faz\u00e1st megsz\u00fcntet\u0151 sz\u00e1l hossz\u00e1t. A visszah\u00faz\u00e1s sebess\u00e9ge a RETRACT_SPEED seg\u00edts\u00e9g\u00e9vel \u00e1ll\u00edthat\u00f3 be, \u00e9s \u00e1ltal\u00e1ban viszonylag magasra van \u00e1ll\u00edtva. A visszah\u00faz\u00e1s sebess\u00e9g\u00e9t az UNRETRACT_SPEED seg\u00edts\u00e9g\u00e9vel \u00e1ll\u00edtjuk be, \u00e9s nem k\u00fcl\u00f6n\u00f6sebben kritikus, b\u00e1r gyakran alacsonyabb, mint a RETRACT_SPEED. Bizonyos esetekben hasznos, ha a visszah\u00faz\u00e1skor egy kis plusz hossz\u00fas\u00e1got adunk hozz\u00e1, \u00e9s ezt az UNRETRACT_EXTRA_LENGTH seg\u00edts\u00e9g\u00e9vel \u00e1ll\u00edtjuk be. A SET_RETRACTION \u00e1ltal\u00e1ban a szeletel\u0151 sz\u00e1lank\u00e9nti konfigur\u00e1ci\u00f3 r\u00e9szek\u00e9nt ker\u00fcl be\u00e1ll\u00edt\u00e1sra, mivel a k\u00fcl\u00f6nb\u00f6z\u0151 sz\u00e1lak k\u00fcl\u00f6nb\u00f6z\u0151 param\u00e9terbe\u00e1ll\u00edt\u00e1sokat ig\u00e9nyelnek.","title":"SET_RETRACTION"},{"location":"G-Codes.html#get_retraction","text":"GET_RETRACTION : A firmware visszah\u00faz\u00e1s \u00e1ltal haszn\u00e1lt aktu\u00e1lis param\u00e9terek lek\u00e9rdez\u00e9se \u00e9s megjelen\u00edt\u00e9se a termin\u00e1lon.","title":"GET_RETRACTION"},{"location":"G-Codes.html#force_move","text":"A force_move modul automatikusan bet\u00f6lt\u0151dik, azonban n\u00e9h\u00e1ny parancshoz sz\u00fcks\u00e9ges az enable_force_move be\u00e1ll\u00edt\u00e1sa a nyomtat\u00f3 konfig -ban.","title":"[force_move]"},{"location":"G-Codes.html#stepper_buzz","text":"STEPPER_BUZZ STEPPER=<config_name> : Az adott l\u00e9ptet\u0151motor mozgat\u00e1sa egy mm-t el\u0151re, majd egy mm-t h\u00e1tra, 10 alkalommal megism\u00e9telve. Ez egy diagnosztikai eszk\u00f6z, amely seg\u00edt a l\u00e9ptet\u0151 kapcsolat\u00e1nak ellen\u0151rz\u00e9s\u00e9ben.","title":"STEPPER_BUZZ"},{"location":"G-Codes.html#force_move_1","text":"FORCE_MOVE STEPPER=<config_name> DISTANCE=<value> VELOCITY=<value> [ACCEL=<value>] : Ez a parancs az adott l\u00e9ptet\u0151motort az adott t\u00e1vols\u00e1gon (mm-ben) a megadott \u00e1lland\u00f3 sebess\u00e9ggel (mm/sec-ben) k\u00e9nyszerrel mozgatja. Ha az ACCEL meg van adva, \u00e9s nagyobb, mint nulla, akkor a megadott gyorsul\u00e1s (mm/sec^2-en) ker\u00fcl alkalmaz\u00e1sra; egy\u00e9bk\u00e9nt nem t\u00f6rt\u00e9nik gyors\u00edt\u00e1s. Nem t\u00f6rt\u00e9nik hat\u00e1r\u00e9rt\u00e9k ellen\u0151rz\u00e9s; nem t\u00f6rt\u00e9nik kinematikai friss\u00edt\u00e9s; a tengelyen l\u00e9v\u0151 m\u00e1s p\u00e1rhuzamos l\u00e9ptet\u0151k nem ker\u00fclnek mozgat\u00e1sra. Legyen \u00f3vatos, mert a helytelen parancs k\u00e1rt okozhat! A parancs haszn\u00e1lata szinte biztosan helytelen \u00e1llapotba hozza az alacsony szint\u0171 kinematik\u00e1t; a kinematika vissza\u00e1ll\u00edt\u00e1s\u00e1hoz adj ki ut\u00e1na egy G28 parancsot. Ez a parancs alacsony szint\u0171 diagnosztik\u00e1ra \u00e9s hibakeres\u00e9sre szolg\u00e1l.","title":"FORCE_MOVE"},{"location":"G-Codes.html#set_kinematic_position","text":"SET_KINEMATIC_POSITION [X=<value>] [Y=<value>] [Z=<value>] : K\u00e9nyszer\u00edti az alacsony szint\u0171 kinematikai k\u00f3dot, hogy azt higgye, a nyomtat\u00f3fej a megadott cartesian poz\u00edci\u00f3ban van. Ez egy diagnosztikai \u00e9s hibakeres\u00e9si parancs; haszn\u00e1ld a SET_GCODE_OFFSET \u00e9s/vagy a G92 parancsot a norm\u00e1l tengelytranszform\u00e1ci\u00f3khoz. Ha egy tengely nincs megadva, akkor alap\u00e9rtelmez\u00e9s szerint az a poz\u00edci\u00f3 lesz, ahov\u00e1 a fejet utolj\u00e1ra parancsolt\u00e1k. A helytelen vagy \u00e9rv\u00e9nytelen poz\u00edci\u00f3 be\u00e1ll\u00edt\u00e1sa bels\u0151 szoftverhib\u00e1hoz vezethet. Ez a parancs \u00e9rv\u00e9nytelen\u00edtheti a k\u00e9s\u0151bbi hat\u00e1r\u00e9rt\u00e9k ellen\u0151rz\u00e9seket; a kinematika vissza\u00e1ll\u00edt\u00e1s\u00e1hoz adj ki egy G28 parancsot.","title":"SET_KINEMATIC_POSITION"},{"location":"G-Codes.html#gcode","text":"A G-k\u00f3d modul automatikusan bet\u00f6lt\u0151dik.","title":"[gcode]"},{"location":"G-Codes.html#restart","text":"RESTART : Ez arra k\u00e9szteti a gazdaszoftvert, hogy \u00fajrat\u00f6ltse a konfigur\u00e1ci\u00f3j\u00e1t \u00e9s bels\u0151 alaphelyzetbe \u00e1ll\u00edt\u00e1st v\u00e9gezzen. Ez a parancs nem t\u00f6rli a mikrokontroller hiba\u00e1llapot\u00e1t (l\u00e1sd FIRMWARE_RESTART), \u00e9s nem t\u00f6lt be \u00faj szoftvert (l\u00e1sd a GYIK oldalt).","title":"RESTART"},{"location":"G-Codes.html#firmware_restart","text":"FIRMWARE_RESTART : Ez hasonl\u00f3 a RESTART parancshoz, de a mikrokontroller hiba\u00e1llapot\u00e1t is t\u00f6rli.","title":"FIRMWARE_RESTART"},{"location":"G-Codes.html#status","text":"STATUS : Jelentse a Klipper gazdag\u00e9p szoftver \u00e1llapot\u00e1t.","title":"STATUS"},{"location":"G-Codes.html#sugo","text":"HELP : A rendelkez\u00e9sre \u00e1ll\u00f3 kiterjesztett G-k\u00f3d parancsok list\u00e1j\u00e1nak megjelen\u00edt\u00e9se.","title":"S\u00daG\u00d3"},{"location":"G-Codes.html#gcode_arcs","text":"A k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d parancsok el\u00e9rhet\u0151k, ha a gcode_arcs config section enged\u00e9lyezve van: Vez\u00e9relt \u00edvmozg\u00e1s (G2 vagy G3): G2 [X<pos>] [Y<pos>] [Z<pos>] [E<pos>] [F<speed>] I<value> J<value>","title":"[gcode_arcs]"},{"location":"G-Codes.html#gcode_macro","text":"A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a gcode_macro konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a parancssablonok \u00fatmutat\u00f3j\u00e1t ).","title":"[gcode_macro]"},{"location":"G-Codes.html#set_gcode_variable","text":"SET_GCODE_VARIABLE MACRO=<macro_name> VARIABLE=<name> VALUE=<value> : Ez a parancs lehet\u0151v\u00e9 teszi a gcode_macro v\u00e1ltoz\u00f3 \u00e9rt\u00e9k\u00e9nek megv\u00e1ltoztat\u00e1s\u00e1t \u00fczem k\u00f6zben. A megadott VALUE-t Python liter\u00e1lk\u00e9nt elemzi a program.","title":"SET_GCODE_VARIABLE"},{"location":"G-Codes.html#gcode_move","text":"A gcode_move modul automatikusan bet\u00f6lt\u0151dik.","title":"[gcode_move]"},{"location":"G-Codes.html#get_position","text":"GET_POSITION : A nyomtat\u00f3fej aktu\u00e1lis helyzet\u00e9re vonatkoz\u00f3 inform\u00e1ci\u00f3k visszaad\u00e1sa. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a GET_POSITION kimenet fejleszt\u0151i dokument\u00e1ci\u00f3j\u00e1t.","title":"GET_POSITION"},{"location":"G-Codes.html#set_gcode_offset","text":"SET_GCODE_OFFSET [X=<pos>|X_ADJUST=<adjust>] [Y=<pos>|Y_ADJUST=<adjust>] [Z=<pos>|Z_ADJUST=<adjust>] [MOVE=1 [MOVE_SPEED=<speed>]] : Poz\u00edci\u00f3s eltol\u00e1s be\u00e1ll\u00edt\u00e1sa, amelyet a k\u00e9s\u0151bbi G-k\u00f3d parancsokra kell alkalmazni. Ezt \u00e1ltal\u00e1ban a Z t\u00e1rgyasztal eltol\u00e1s virtu\u00e1lis megv\u00e1ltoztat\u00e1s\u00e1ra vagy a f\u00fav\u00f3k\u00e1k XY eltol\u00e1s\u00e1nak be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lj\u00e1k extruder v\u00e1lt\u00e1skor. P\u00e9ld\u00e1ul, ha a \"SET_GCODE_OFFSET Z=0.2\" parancsot k\u00fcldj\u00fck, akkor a j\u00f6v\u0151beli G-k\u00f3d mozg\u00e1sok Z magass\u00e1g\u00e1hoz 0,2 mm-t adunk hozz\u00e1. Ha az X_ADJUST st\u00edlusparam\u00e9tereket haszn\u00e1ljuk, akkor a kiigaz\u00edt\u00e1s hozz\u00e1ad\u00f3dik a megl\u00e9v\u0151 eltol\u00e1shoz (pl. a \"SET_GCODE_OFFSET Z=-0.2\" \u00e9s a \"SET_GCODE_OFFSET Z_ADJUST=0.3\" ut\u00e1na a teljes Z eltol\u00e1s 0.1 lesz). Ha a \"MOVE=1\" van megadva, akkor a nyomtat\u00f3fej mozgat\u00e1sa a megadott eltol\u00e1s alkalmaz\u00e1s\u00e1ra t\u00f6rt\u00e9nik (egy\u00e9bk\u00e9nt az eltol\u00e1s a k\u00f6vetkez\u0151 abszol\u00fat G-k\u00f3d\u00fa mozgat\u00e1skor l\u00e9p hat\u00e1lyba, amely az adott tengelyt adja meg). Ha a \"MOVE_SPEED\" meg van adva, akkor a nyomtat\u00f3fej mozgat\u00e1sa a megadott sebess\u00e9ggel (mm/sec-ben) t\u00f6rt\u00e9nik; egy\u00e9bk\u00e9nt a nyomtat\u00f3fej mozgat\u00e1sa az utolj\u00e1ra megadott G-k\u00f3d sebess\u00e9get fogja haszn\u00e1lni.","title":"SET_GCODE_OFFSET"},{"location":"G-Codes.html#save_gcode_state","text":"SAVE_GCODE_STATE [NAME=<state_name>] : Az aktu\u00e1lis G-k\u00f3d koordin\u00e1t\u00e1k elemz\u00e9si \u00e1llapot\u00e1nak ment\u00e9se. A G-k\u00f3d \u00e1llapot\u00e1nak ment\u00e9se \u00e9s vissza\u00e1ll\u00edt\u00e1sa hasznos a szkriptekben \u00e9s makr\u00f3kban. Ez a parancs elmenti az aktu\u00e1lis G-k\u00f3d abszol\u00fat koordin\u00e1tam\u00f3dot (G90/G91), az abszol\u00fat extrud\u00e1l\u00e1si m\u00f3dot (M82/M83), az orig\u00f3t (G92), az eltol\u00e1st (SET_GCODE_OFFSET), a sebess\u00e9g fel\u00fclb\u00edr\u00e1l\u00e1s\u00e1t (M220), az extruder fel\u00fclb\u00edr\u00e1l\u00e1s\u00e1t (M221), a mozg\u00e1si sebess\u00e9get, az aktu\u00e1lis XYZ poz\u00edci\u00f3t \u00e9s a relat\u00edv extruder \"E\" poz\u00edci\u00f3t. A NAME megad\u00e1sa eset\u00e9n lehet\u0151v\u00e9 teszi, hogy a mentett \u00e1llapotot a megadott karakterl\u00e1ncnak nevezz\u00fck el. Ha a NAME nincs megadva, az alap\u00e9rtelmezett \u00e9rt\u00e9k \"default\".","title":"SAVE_GCODE_STATE"},{"location":"G-Codes.html#restore_gcode_state","text":"RESTORE_GCODE_STATE [NAME=<state_name>] [MOVE=1 [MOVE_SPEED=<speed>]] : A SAVE_GCODE_STATE seg\u00edts\u00e9g\u00e9vel kor\u00e1bban elmentett \u00e1llapot vissza\u00e1ll\u00edt\u00e1sa. Ha \"MOVE=1\" van megadva, akkor a nyomtat\u00f3fej mozgat\u00e1sa az el\u0151z\u0151 XYZ-poz\u00edci\u00f3ba val\u00f3 visszal\u00e9p\u00e9shez t\u00f6rt\u00e9nik. Ha \"MOVE_SPEED\" van megadva, akkor a nyomtat\u00f3fej mozgat\u00e1sa a megadott sebess\u00e9ggel (mm/sec-ben) t\u00f6rt\u00e9nik; egy\u00e9bk\u00e9nt a nyomtat\u00f3fej mozgat\u00e1sa a vissza\u00e1ll\u00edtott G-k\u00f3d sebess\u00e9g\u00e9t haszn\u00e1lja.","title":"RESTORE_GCODE_STATE"},{"location":"G-Codes.html#hall_filament_width_sensor","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a tsl1401cl sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 konfigur\u00e1ci\u00f3s szakasz vagy a hall sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g TSLll401CL Sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 \u00e9s a Hall Sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 dokumentumot):","title":"[hall_filament_width_sensor]"},{"location":"G-Codes.html#query_filament_width","text":"QUERY_FILAMENT_WIDTH : Visszaadja az aktu\u00e1lisan m\u00e9rt izz\u00f3sz\u00e1l sz\u00e9less\u00e9get.","title":"QUERY_FILAMENT_WIDTH"},{"location":"G-Codes.html#reset_filament_width_sensor","text":"RESET_FILAMENT_WIDTH_SENSOR : T\u00f6rli az \u00f6sszes \u00e9rz\u00e9kel\u0151 leolvas\u00e1s\u00e1t. Hasznos nyomtat\u00f3sz\u00e1l csere ut\u00e1n.","title":"RESET_FILAMENT_WIDTH_SENSOR"},{"location":"G-Codes.html#disable_filament_width_sensor","text":"DISABLE_FILAMENT_WIDTH_SENSOR : Kapcsolja ki a sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151t, \u00e9s ne haszn\u00e1ld \u00e1raml\u00e1sszab\u00e1lyoz\u00e1shoz.","title":"DISABLE_FILAMENT_WIDTH_SENSOR"},{"location":"G-Codes.html#enable_filament_width_sensor","text":"ENABLE_FILAMENT_WIDTH_SENSOR : Kapcsolja be a sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151t, \u00e9s kezd el haszn\u00e1lni az \u00e1raml\u00e1sszab\u00e1lyoz\u00e1shoz.","title":"ENABLE_FILAMENT_WIDTH_SENSOR"},{"location":"G-Codes.html#query_raw_filament_width","text":"QUERY_RAW_FILAMENT_WIDTH : Visszaadja az ADC-csatorna aktu\u00e1lis leolvas\u00e1s\u00e1t \u00e9s a RAW-\u00e9rz\u00e9kel\u0151 \u00e9rt\u00e9k\u00e9t a kalibr\u00e1ci\u00f3s pontokhoz.","title":"QUERY_RAW_FILAMENT_WIDTH"},{"location":"G-Codes.html#enable_filament_width_log","text":"ENABLE_FILAMENT_WIDTH_LOG : Az \u00e1tm\u00e9r\u0151 napl\u00f3z\u00e1s\u00e1nak bekapcsol\u00e1sa.","title":"ENABLE_FILAMENT_WIDTH_LOG"},{"location":"G-Codes.html#disable_filament_width_log","text":"DISABLE_FILAMENT_WIDTH_LOG : Az \u00e1tm\u00e9r\u0151 napl\u00f3z\u00e1s\u00e1nak kikapcsol\u00e1sa.","title":"DISABLE_FILAMENT_WIDTH_LOG"},{"location":"G-Codes.html#heaters","text":"A f\u0171t\u0151modul automatikusan bet\u00f6lt\u0151dik, ha a konfigur\u00e1ci\u00f3s f\u00e1jlban van f\u0171t\u0151elem defini\u00e1lva.","title":"[heaters]"},{"location":"G-Codes.html#turn_off_heaters","text":"TURN_OFF_HEATERS : Kapcsolja ki az \u00f6sszes f\u0171t\u0151berendez\u00e9st.","title":"TURN_OFF_HEATERS"},{"location":"G-Codes.html#temperature_wait","text":"TEMPERATURE_WAIT SENSOR=<config_name> [MINIMUM=<target>] [MAXIMUM=<target>] : V\u00e1rjon, am\u00edg az adott h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 a megadott MINIMUM \u00e9rt\u00e9ken vagy a megadott MINIMUM \u00e9rt\u00e9k felett \u00e9s/vagy a megadott MAXIMUM \u00e9rt\u00e9ken vagy az alatt van.","title":"TEMPERATURE_WAIT"},{"location":"G-Codes.html#set_heater_temperature","text":"SET_HEATER_TEMPERATURE HEATER=<heater_name> [TARGET=<target_temperature>] : A f\u0171t\u0151test c\u00e9lh\u0151m\u00e9rs\u00e9klet\u00e9nek be\u00e1ll\u00edt\u00e1sa. Ha nincs megadva c\u00e9lh\u0151m\u00e9rs\u00e9klet, akkor az \u00e9rt\u00e9k 0.","title":"SET_HEATER_TEMPERATURE"},{"location":"G-Codes.html#idle_timeout","text":"Az idle_timeout modul automatikusan bet\u00f6lt\u0151dik.","title":"[idle_timeout]"},{"location":"G-Codes.html#set_idle_timeout","text":"SET_IDLE_TIMEOUT [TIMEOUT=<timeout>] : Lehet\u0151v\u00e9 teszi a felhaszn\u00e1l\u00f3 sz\u00e1m\u00e1ra az \u00fcresj\u00e1rati id\u0151korl\u00e1t be\u00e1ll\u00edt\u00e1s\u00e1t (m\u00e1sodpercben).","title":"SET_IDLE_TIMEOUT"},{"location":"G-Codes.html#input_shaper","text":"A k\u00f6vetkez\u0151 parancs akkor enged\u00e9lyezett, ha az input_shaper konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a rezonancia kompenz\u00e1ci\u00f3s \u00fatmutat\u00f3t ).","title":"[input_shaper]"},{"location":"G-Codes.html#set_input_shaper","text":"SET_INPUT_SHAPER [SHAPER_FREQ_X=<shaper_freq_x>] [SHAPER_FREQ_Y=<shaper_freq_y>] [DAMPING_RATIO_X=<damping_ratio_x>] [DAMPING_RATIO_Y=<damping_ratio_y>] [SHAPER_TYPE=<shaper>] [SHAPER_TYPE_X=<shaper_type_x>] [SHAPER_TYPE_Y=<shaper_type_y>] : A bemeneti form\u00e1l\u00f3 param\u00e9terek m\u00f3dos\u00edt\u00e1sa. Vedd figyelembe, hogy a SHAPER_TYPE param\u00e9ter vissza\u00e1ll\u00edtja a bemeneti form\u00e1l\u00f3t mind az X, mind az Y tengelyre, m\u00e9g akkor is, ha az [input_shaper] szakaszban k\u00fcl\u00f6nb\u00f6z\u0151 form\u00e1l\u00f3t\u00edpusok lettek be\u00e1ll\u00edtva. A SHAPER_TYPE nem haszn\u00e1lhat\u00f3 egy\u00fctt a SHAPER_TYPE_X \u00e9s SHAPER_TYPE_Y param\u00e9terekkel. Az egyes param\u00e9terekkel kapcsolatos tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st .","title":"SET_INPUT_SHAPER"},{"location":"G-Codes.html#manual_probe","text":"A manual_probe modul automatikusan bet\u00f6lt\u0151dik.","title":"[manual_probe]"},{"location":"G-Codes.html#manual_probe_1","text":"MANUAL_PROBE [SPEED=<speed>] : Egy seg\u00e9dszkript futtat\u00e1sa, amely hasznos a f\u00fav\u00f3ka magass\u00e1g\u00e1nak m\u00e9r\u00e9s\u00e9hez egy adott helyen. Ha SPEED van megadva, akkor a TESTZ parancsok sebess\u00e9g\u00e9t \u00e1ll\u00edtja be (az alap\u00e9rtelmezett 5 mm/sec). A k\u00e9zi m\u00e9r\u00e9s sor\u00e1n a k\u00f6vetkez\u0151 tov\u00e1bbi parancsok \u00e1llnak rendelkez\u00e9sre: ACCEPT : Ez a parancs elfogadja az aktu\u00e1lis Z poz\u00edci\u00f3t, \u00e9s lez\u00e1rja a k\u00e9zi szintez\u0151 eszk\u00f6zt. ABORT : Ez a parancs megszak\u00edtja a k\u00e9zi szintez\u00e9st. TESTZ Z=<value> : Ez a parancs a f\u00fav\u00f3k\u00e1t a \"value\" \u00e9rt\u00e9kben megadott \u00e9rt\u00e9kkel felfel\u00e9 vagy lefel\u00e9 mozgatja. P\u00e9ld\u00e1ul a TESTZ Z=-.1 a f\u00fav\u00f3k\u00e1t 0,1 mm-rel lefel\u00e9, m\u00edg a TESTZ Z=.1 a f\u00fav\u00f3k\u00e1t 0,1 mm-rel felfel\u00e9 mozgatja. Az \u00e9rt\u00e9k lehet + , - , ++ , vagy -- is, hogy a f\u00fav\u00f3k\u00e1t a kor\u00e1bbi pr\u00f3b\u00e1lkoz\u00e1sokhoz k\u00e9pest felfel\u00e9 vagy lefel\u00e9 mozd\u00edtsa.","title":"MANUAL_PROBE"},{"location":"G-Codes.html#z_endstop_calibrate","text":"Z_ENDSTOP_CALIBRATE [SPEED=<speed>] : Egy seg\u00e9dszkript futtat\u00e1sa, amely hasznos a Z poz\u00edci\u00f3 v\u00e9g\u00e1ll\u00e1s konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1s\u00e1nak kalibr\u00e1l\u00e1s\u00e1hoz. A param\u00e9terekkel \u00e9s az eszk\u00f6z akt\u00edv m\u0171k\u00f6d\u00e9se k\u00f6zben el\u00e9rhet\u0151 tov\u00e1bbi parancsokkal kapcsolatos r\u00e9szletek\u00e9rt haszn\u00e1ld a MANUAL_PROBE parancsot.","title":"Z_ENDSTOP_CALIBRATE"},{"location":"G-Codes.html#z_offset_apply_endstop","text":"Z_OFFSET_APPLY_ENDSTOP : Vegy\u00fck az aktu\u00e1lis Z G-k\u00f3d eltol\u00e1st (m\u00e1s n\u00e9ven mikrol\u00e9p\u00e9s), \u00e9s vonjuk ki a stepper_z endstop_positionb\u00f3l. Ez egy gyakran haszn\u00e1lt mikrol\u00e9p\u00e9s \u00e9rt\u00e9ket vesz, \u00e9s \"\u00e1lland\u00f3v\u00e1 teszi\". Egy SAVE_CONFIG sz\u00fcks\u00e9ges a hat\u00e1lybal\u00e9p\u00e9shez.","title":"Z_OFFSET_APPLY_ENDSTOP"},{"location":"G-Codes.html#manual_stepper","text":"A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a manual_stepper konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[manual_stepper]"},{"location":"G-Codes.html#manual_stepper_1","text":"MANUAL_STEPPER STEPPER=config_name [ENABLE=[0|1]] [SET_POSITION=<pos>] [SPEED=<speed>] [ACCEL=<accel>] [MOVE=<pos> [STOP_ON_ENDSTOP=[1|2|2|-1|-2]] [SYNC=0]]] : Ez a parancs megv\u00e1ltoztatja a l\u00e9ptet\u0151 \u00e1llapot\u00e1t. Az ENABLE param\u00e9terrel enged\u00e9lyezheti/letilthatja a l\u00e9ptet\u0151t. A SET_POSITION param\u00e9terrel k\u00e9nyszer\u00edtheti a l\u00e9ptet\u0151t arra, hogy azt higgye, az adott helyzetben van. A MOVE param\u00e9terrel kezdem\u00e9nyezhet mozg\u00e1st egy adott poz\u00edci\u00f3ba. Ha a SPEED \u00e9s/vagy az ACCEL param\u00e9ter meg van adva, akkor a rendszer a megadott \u00e9rt\u00e9keket haszn\u00e1lja a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott alap\u00e9rtelmezett \u00e9rt\u00e9kek helyett. Ha nulla ACCEL-t ad meg, akkor nem t\u00f6rt\u00e9nik gyors\u00edt\u00e1s. Ha STOP_ON_ENDSTOP=1 van megadva, akkor a l\u00e9p\u00e9s kor\u00e1n v\u00e9get \u00e9r. Ha a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 aktiv\u00e1l\u00f3dik (a STOP_ON_ENDSTOP=2 paranccsal hiba n\u00e9lk\u00fcl befejezheti a mozg\u00e1st, m\u00e9g akkor is, ha a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 nem aktiv\u00e1l\u00f3dott. Haszn\u00e1ld a -1 vagy a -2 jel\u00f6l\u00e9st, hogy le\u00e1lljon, amikor a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 m\u00e9g nem aktiv\u00e1l\u00f3dott). Norm\u00e1lis esetben a k\u00e9s\u0151bbi G-k\u00f3d parancsok a l\u00e9ptet\u0151mozg\u00e1s befejez\u00e9se ut\u00e1n ker\u00fclnek \u00fctemez\u00e9sre, azonban ha a k\u00e9zi l\u00e9ptet\u0151mozg\u00e1s parancs a SYNC=0 \u00e9rt\u00e9ket haszn\u00e1lod, akkor a k\u00e9s\u0151bbi G-k\u00f3d mozgat\u00e1si parancsok a l\u00e9ptet\u0151mozg\u00e1ssal p\u00e1rhuzamosan is futhatnak.","title":"MANUAL_STEPPER"},{"location":"G-Codes.html#mcp4018","text":"A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha az mcp4018 config szekci\u00f3 enged\u00e9lyezve van.","title":"[mcp4018]"},{"location":"G-Codes.html#set_digipot","text":"SET_DIGIPOT DIGIPOT=config_name WIPER=<value> : Ez a parancs megv\u00e1ltoztatja a digipot aktu\u00e1lis \u00e9rt\u00e9k\u00e9t. Ennek az \u00e9rt\u00e9knek \u00e1ltal\u00e1ban 0.0 \u00e9s 1.0 k\u00f6z\u00f6tt kell lennie, hacsak a configban nincs defini\u00e1lva 'scale'. Ha 'scale' van defini\u00e1lva, akkor ennek az \u00e9rt\u00e9knek 0.0 \u00e9s a 'scale' \u00e9rt\u00e9k k\u00f6z\u00f6tt kell lennie.","title":"SET_DIGIPOT"},{"location":"G-Codes.html#led","text":"A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a LED konfigur\u00e1ci\u00f3s szakaszok b\u00e1rmelyike enged\u00e9lyezve van.","title":"[led]"},{"location":"G-Codes.html#set_led","text":"SET_LED LED=<config_name> RED=<value> GREEN=<value> BLUE=<value> WHITE=<value> [INDEX=<index>] [TRANSMIT=0] [SYNC=1] : Ez \u00e1ll\u00edtja be a LED kimenetet. Minden sz\u00edn <value> 0,0 \u00e9s 1,0 k\u00f6z\u00f6tt kell lennie. A WHITE opci\u00f3 csak RGBW LED-ek eset\u00e9n \u00e9rv\u00e9nyes. Ha a LED t\u00f6bb chipet t\u00e1mogat egy daisy-chainben, akkor megadhatjuk az INDEX-et, hogy csak az adott chip sz\u00edn\u00e9t v\u00e1ltoztassuk meg (1 az els\u0151 chiphez, 2 a m\u00e1sodikhoz stb.). Ha az INDEX nincs megadva, akkor a daisy-chain \u00f6sszes LED-je a megadott sz\u00ednre lesz be\u00e1ll\u00edtva. Ha TRANSMIT=0 van megadva, akkor a sz\u00ednv\u00e1ltoztat\u00e1s csak a k\u00f6vetkez\u0151 SET_LED parancsn\u00e1l t\u00f6rt\u00e9nik meg, amely nem ad meg TRANSMIT=0-t. Ez hasznos lehet az INDEX param\u00e9terrel kombin\u00e1lva, ha egy daisy-chainben t\u00f6bb friss\u00edt\u00e9st szeretn\u00e9nk k\u00f6tegelni. Alap\u00e9rtelmez\u00e9s szerint a SET_LED parancs szinkroniz\u00e1lja a v\u00e1ltoztat\u00e1sokat a t\u00f6bbi folyamatban l\u00e9v\u0151 G-k\u00f3d paranccsal. Ez nemk\u00edv\u00e1natos viselked\u00e9shez vezethet, ha a LED-ek be\u00e1ll\u00edt\u00e1sa akkor t\u00f6rt\u00e9nik, amikor a nyomtat\u00f3 nem nyomtat, mivel ez vissza\u00e1ll\u00edtja az \u00fcresj\u00e1rati id\u0151korl\u00e1tot. Ha nincs sz\u00fcks\u00e9g gondos id\u0151z\u00edt\u00e9sre, az opcion\u00e1lis SYNC=0 param\u00e9ter megadhat\u00f3, hogy a m\u00f3dos\u00edt\u00e1sokat az \u00fcresj\u00e1rati id\u0151korl\u00e1t vissza\u00e1ll\u00edt\u00e1sa n\u00e9lk\u00fcl alkalmazd.","title":"SET_LED"},{"location":"G-Codes.html#set_led_template","text":"SET_LED_TEMPLATE LED=<led_name> TEMPLATE=<template_name> [<param_x>=<literal>] [INDEX=<index>] : Egy display_template hozz\u00e1rendel\u00e9se egy adott LED-hez . P\u00e9ld\u00e1ul, ha defini\u00e1ltunk egy [display_template my_led_template] konfigur\u00e1ci\u00f3s szakaszt, akkor itt hozz\u00e1rendelhetj\u00fck a TEMPLATE=my_led_template . A display_template-nek egy vessz\u0151vel elv\u00e1lasztott karakterl\u00e1ncot kell l\u00e9trehoznia, amely n\u00e9gy lebeg\u0151pontos sz\u00e1mot tartalmaz, amelyek megfelelnek a piros, z\u00f6ld, k\u00e9k \u00e9s feh\u00e9r sz\u00ednbe\u00e1ll\u00edt\u00e1soknak. A sablon folyamatosan ki\u00e9rt\u00e9kel\u00e9sre ker\u00fcl, \u00e9s a LED automatikusan az \u00edgy kapott sz\u00ednekre lesz be\u00e1ll\u00edtva. A sablon ki\u00e9rt\u00e9kel\u00e9se sor\u00e1n haszn\u00e1land\u00f3 display_template param\u00e9tereket lehet be\u00e1ll\u00edtani (a param\u00e9terek Python liter\u00e1lokk\u00e9nt lesznek elemezve). Ha az INDEX nincs megadva, akkor a LED's daisy-chain \u00f6sszes chipje a sablonra lesz be\u00e1ll\u00edtva, ellenkez\u0151 esetben csak a megadott indexszel rendelkez\u0151 chip lesz friss\u00edtve. Ha a TEMPLATE \u00fcres karakterl\u00e1nc, akkor ez a parancs t\u00f6rli a LED-hez rendelt kor\u00e1bbi sablonokat (ekkor a SET_LED parancsokat haszn\u00e1lhatjuk a LED sz\u00ednbe\u00e1ll\u00edt\u00e1sainak kezel\u00e9s\u00e9re).","title":"SET_LED_TEMPLATE"},{"location":"G-Codes.html#output_pin","text":"A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha az output_pin konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[output_pin]"},{"location":"G-Codes.html#set_pin","text":"SET_PIN PIN=config_name VALUE=<value> CYCLE_TIME=<cycle_time> : Megjegyz\u00e9s: A hardveres PWM jelenleg nem t\u00e1mogatja a CYCLE_TIME param\u00e9tert, \u00e9s a konfigur\u00e1ci\u00f3ban meghat\u00e1rozott ciklusid\u0151t haszn\u00e1lja.","title":"SET_PIN"},{"location":"G-Codes.html#palette2","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a palette2 konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. A paletta nyomtat\u00e1sok speci\u00e1lis OCode-ok (Omega-k\u00f3dok) be\u00e1gyaz\u00e1s\u00e1val m\u0171k\u00f6dnek a G-k\u00f3d f\u00e1jlban: O1 ... O32 : Ezeket a k\u00f3dokat a G-k\u00f3d folyamatb\u00f3l olvassa be \u00e9s dolgozza fel ez a modul, majd tov\u00e1bb\u00edtja a Palette 2 eszk\u00f6znek. A k\u00f6vetkez\u0151 tov\u00e1bbi parancsok is rendelkez\u00e9sre \u00e1llnak.","title":"[palette2]"},{"location":"G-Codes.html#palette_connect","text":"PALETTE_CONNECT : Ez a parancs inicializ\u00e1lja a kapcsolatot a Palette 2-vel.","title":"PALETTE_CONNECT"},{"location":"G-Codes.html#palette_disconnect","text":"PALETTE_DISCONNECT : Ez a parancs megszak\u00edtja a kapcsolatot a Paletta 2-vel.","title":"PALETTE_DISCONNECT"},{"location":"G-Codes.html#palette_clear","text":"PALETTE_CLEAR : Ez a parancs arra utas\u00edtja a Palette 2-t, hogy t\u00f6r\u00f6lje az \u00f6sszes sz\u00e1lat a bemeneti \u00e9s kimeneti \u00fatvonalb\u00f3l.","title":"PALETTE_CLEAR"},{"location":"G-Codes.html#palette_cut","text":"PALETTE_CUT : Ez a parancs utas\u00edtja a Palette 2-t, hogy v\u00e1gja el az illeszt\u00e9si magba t\u00f6lt\u00f6tt sz\u00e1lat.","title":"PALETTE_CUT"},{"location":"G-Codes.html#palette_smart_load","text":"PALETTE_SMART_LOAD : Ez a parancs elind\u00edtja az intelligens bet\u00f6lt\u00e9si sorozatot a Paletta 2-n. A nyomtat\u00f3sz\u00e1l bet\u00f6lt\u00e9se automatikusan t\u00f6rt\u00e9nik a k\u00e9sz\u00fcl\u00e9kben a nyomtat\u00f3hoz kalibr\u00e1lt t\u00e1vols\u00e1g extrud\u00e1l\u00e1s\u00e1val, \u00e9s utas\u00edtja a Palette 2-t, amint a bet\u00f6lt\u00e9s befejez\u0151d\u00f6tt. Ez a parancs megegyezik a Smart Load megnyom\u00e1s\u00e1val k\u00f6zvetlen\u00fcl a Palette 2 k\u00e9perny\u0151j\u00e9n, miut\u00e1n a nyomtat\u00f3sz\u00e1l bet\u00f6lt\u00e9se befejez\u0151d\u00f6tt.","title":"PALETTE_SMART_LOAD"},{"location":"G-Codes.html#pid_calibrate","text":"A pid_calibrate modul automatikusan bet\u00f6lt\u0151dik, ha a konfigur\u00e1ci\u00f3s f\u00e1jlban van egy f\u0171t\u00e9s defini\u00e1lva.","title":"[pid_calibrate]"},{"location":"G-Codes.html#pid_calibrate_1","text":"PID_CALIBRATE HEATER=<config_name> TARGET=<temperature> [WRITE_FILE=1] : A PID kalibr\u00e1ci\u00f3s teszt elv\u00e9gz\u00e9se. A megadott f\u0171t\u0151berendez\u00e9s a megadott c\u00e9lh\u0151m\u00e9rs\u00e9klet el\u00e9r\u00e9s\u00e9ig enged\u00e9lyezve lesz, majd a f\u0171t\u0151berendez\u00e9s t\u00f6bb cikluson kereszt\u00fcl ki- \u00e9s bekapcsol. Ha a WRITE_FILE param\u00e9ter enged\u00e9lyezve van, akkor l\u00e9trej\u00f6n a /tmp/heattest.txt f\u00e1jl a teszt sor\u00e1n vett \u00f6sszes h\u0151m\u00e9rs\u00e9klet-mint\u00e1t tartalmaz\u00f3 napl\u00f3val.","title":"PID_CALIBRATE"},{"location":"G-Codes.html#pause_resume","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a pause_resume konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van:","title":"[pause_resume]"},{"location":"G-Codes.html#pause","text":"PAUSE : Az aktu\u00e1lis nyomtat\u00e1s sz\u00fcneteltet\u00e9se. Az aktu\u00e1lis poz\u00edci\u00f3 r\u00f6gz\u00edt\u00e9sre ker\u00fcl, hogy a folytat\u00e1skor vissza\u00e1ll\u00edthat\u00f3 legyen.","title":"PAUSE"},{"location":"G-Codes.html#resume","text":"RESUME [VELOCITY=<value>] : Folytatja a nyomtat\u00e1st sz\u00fcnet ut\u00e1n, el\u0151sz\u00f6r vissza\u00e1ll\u00edtva a kor\u00e1bban r\u00f6gz\u00edtett poz\u00edci\u00f3t. A VELOCITY param\u00e9ter hat\u00e1rozza meg, hogy a f\u00fav\u00f3ka milyen sebess\u00e9ggel t\u00e9rjen vissza az eredeti r\u00f6gz\u00edtett poz\u00edci\u00f3ba.","title":"RESUME"},{"location":"G-Codes.html#clear_pause","text":"CLEAR_PAUSE : T\u00f6rli az aktu\u00e1lis sz\u00fcneteltetett \u00e1llapotot a nyomtat\u00e1s folytat\u00e1sa n\u00e9lk\u00fcl. Ez akkor hasznos, ha valaki \u00fagy d\u00f6nt, hogy PAUSE ut\u00e1n megszak\u00edtja a nyomtat\u00e1st. Aj\u00e1nlatos ezt hozz\u00e1adni az ind\u00edt\u00f3 G-k\u00f3dhoz, hogy a sz\u00fcneteltetett \u00e1llapot minden nyomtat\u00e1sn\u00e1l friss legyen.","title":"CLEAR_PAUSE"},{"location":"G-Codes.html#cancel_print","text":"CANCEL_PRINT : Az aktu\u00e1lis nyomtat\u00e1s t\u00f6rl\u00e9se.","title":"CANCEL_PRINT"},{"location":"G-Codes.html#print_stats","text":"A print_stats modul automatikusan bet\u00f6lt\u0151dik.","title":"[print_stats]"},{"location":"G-Codes.html#set_print_stats_info","text":"SET_PRINT_STATS_INFO [TOTAL_LAYER=<total_layer_count>] [CURRENT_LAYER= <current_layer>] : \u00c1tadja a szeletel\u0151 adatait, a Klippernek, mint p\u00e9ld\u00e1ul az aktu\u00e1lis \u00e9s \u00f6sszes r\u00e9teg. Add hozz\u00e1 a SET_PRINT_STATS_INFO [TOTAL_LAYER=<total_layer_count>] a szeletel\u0151 ind\u00edt\u00f3 G-k\u00f3d szakasz\u00e1hoz \u00e9s a SET_PRINT_STATS_INFO [CURRENT_LAYER= <current_layer>] a r\u00e9tegv\u00e1lt\u00e1s G-k\u00f3d szakasz\u00e1hoz, hogy \u00e1tadja a r\u00e9teginform\u00e1ci\u00f3t a szeletel\u0151 a Klippernek.","title":"SET_PRINT_STATS_INFO"},{"location":"G-Codes.html#probe","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a szonda konfigur\u00e1ci\u00f3s szakasz vagy a bltouch konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a szonda kalibr\u00e1ci\u00f3s \u00fatmutat\u00f3t ).","title":"[probe]"},{"location":"G-Codes.html#probe_1","text":"PROBE [PROBE_SPEED=<mm/s>] [LIFT_SPEED=<mm/s>] [SAMPLES=<count>] [SAMPLE_RETRACT_DIST=<mm>] [SAMPLES_TOLERANCE=<mm>] [SAMPLES_TOLERANCE_RETRIES=<count>] [SAMPLES_RESULT=median|average] : Mozgasd a f\u00fav\u00f3k\u00e1t lefel\u00e9, am\u00edg a szonda nem \u00e9rz\u00e9kel. Ha b\u00e1rmelyik opcion\u00e1lis param\u00e9tert megadjuk, azok fel\u00fcl\u00edrj\u00e1k a szonda konfigur\u00e1ci\u00f3s szakasz\u00e1ban megadott megfelel\u0151 be\u00e1ll\u00edt\u00e1sokat.","title":"PROBE"},{"location":"G-Codes.html#query_probe","text":"QUERY_PROBE : Jelentse a szonda aktu\u00e1lis \u00e1llapot\u00e1t (\"triggered\" vagy \"open\").","title":"QUERY_PROBE"},{"location":"G-Codes.html#probe_accuracy","text":"PROBE_ACCURACY [PROBE_SPEED=<mm/s>] [SAMPLES=<count>] [SAMPLE_RETRACT_DIST=<mm>] : T\u00f6bb m\u00e9r\u00e9si minta maximum\u00e1nak, minimum\u00e1nak, \u00e1tlag\u00e1nak, medi\u00e1nj\u00e1nak \u00e9s sz\u00f3r\u00e1s\u00e1nak kisz\u00e1m\u00edt\u00e1sa. Alap\u00e9rtelmez\u00e9s szerint 10 MINT\u00c1T vesz\u00fcnk. Egy\u00e9bk\u00e9nt az opcion\u00e1lis param\u00e9terek alap\u00e9rtelmez\u00e9s szerint a szonda konfigur\u00e1ci\u00f3s szakasz\u00e1ban szerepl\u0151 megfelel\u0151 be\u00e1ll\u00edt\u00e1sokat haszn\u00e1lj\u00e1k.","title":"PROBE_ACCURACY"},{"location":"G-Codes.html#probe_calibrate","text":"PROBE_CALIBRATE [SPEED=<speed>] [<probe_parameter>=<value>] : A szonda z_offset kalibr\u00e1l\u00e1s\u00e1hoz hasznos seg\u00e9dszkript futtat\u00e1sa. Az opcion\u00e1lis szondaparam\u00e9terekkel kapcsolatos r\u00e9szletek\u00e9rt l\u00e1sd a PROBE parancsot. L\u00e1sd a MANUAL_PROBE parancsot a SPEED param\u00e9terre \u00e9s az eszk\u00f6z akt\u00edv m\u0171k\u00f6d\u00e9se k\u00f6zben el\u00e9rhet\u0151 tov\u00e1bbi parancsokra vonatkoz\u00f3 r\u00e9szletek\u00e9rt. Felh\u00edvjuk a figyelmet, hogy a PROBE_CALIBRATE parancs a sebess\u00e9g v\u00e1ltoz\u00f3t haszn\u00e1lja az XY ir\u00e1ny\u00fa \u00e9s a Z ir\u00e1ny\u00fa mozg\u00e1shoz.","title":"PROBE_CALIBRATE"},{"location":"G-Codes.html#z_offset_apply_probe","text":"Z_OFFSET_APPLY_PROBE : Vegy\u00fck az aktu\u00e1lis Z G-k\u00f3d eltol\u00e1st (m\u00e1s n\u00e9ven mikrol\u00e9p\u00e9s), \u00e9s vonjuk ki a szonda z_offset-j\u00e9b\u0151l. Ez egy gyakran haszn\u00e1lt mikrol\u00e9p\u00e9s \u00e9rt\u00e9ket vesz, \u00e9s \"\u00e1lland\u00f3v\u00e1 teszi\". Egy SAVE_CONFIG sz\u00fcks\u00e9ges a hat\u00e1lybal\u00e9p\u00e9shez.","title":"Z_OFFSET_APPLY_PROBE"},{"location":"G-Codes.html#query_adc","text":"A query_adc modul automatikusan bet\u00f6lt\u0151dik.","title":"[query_adc]"},{"location":"G-Codes.html#query_adc_1","text":"QUERY_ADC [NAME=<config_name>] [PULLUP=<value>] : Jelenti a konfigur\u00e1lt anal\u00f3g t\u0171h\u00f6z utolj\u00e1ra kapott anal\u00f3g \u00e9rt\u00e9ket. Ha NAME nincs megadva, a rendelkez\u00e9sre \u00e1ll\u00f3 ADC nevek list\u00e1ja ker\u00fcl jelent\u00e9sre. Ha a PULLUP meg van adva (ohmban megadott \u00e9rt\u00e9kk\u00e9nt), akkor a nyers anal\u00f3g \u00e9rt\u00e9ket \u00e9s a pullup adott egyen\u00e9rt\u00e9k\u0171 ellen\u00e1ll\u00e1st jelenti.","title":"QUERY_ADC"},{"location":"G-Codes.html#query_endstops","text":"A query_endstops modul automatikusan bet\u00f6lt\u0151dik. Jelenleg a k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d parancsok \u00e1llnak rendelkez\u00e9sre, de haszn\u00e1latuk nem aj\u00e1nlott: V\u00e9g\u00e1ll\u00e1s \u00e1llapot\u00e1nak lek\u00e9rdez\u00e9se: M119 (Haszn\u00e1ld QUERY_ENDSTOPS helyett.)","title":"[query_endstops]"},{"location":"G-Codes.html#query_endstops_1","text":"QUERY_ENDSTOPS : M\u00e9ri a tengelyv\u00e9g\u00e1ll\u00e1sokat \u00e9s jelenti, ha azok \"kioldottak\" vagy \"nyitott\" \u00e1llapotban vannak. Ezt a parancsot \u00e1ltal\u00e1ban annak ellen\u0151rz\u00e9s\u00e9re haszn\u00e1lj\u00e1k, hogy egy v\u00e9g\u00e1ll\u00e1s megfelel\u0151en m\u0171k\u00f6dik-e.","title":"QUERY_ENDSTOPS"},{"location":"G-Codes.html#resonance_tester","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a resonance_tester konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a rezonanci\u00e1k m\u00e9r\u00e9se \u00fatmutat\u00f3t ).","title":"[resonance_tester]"},{"location":"G-Codes.html#measure_axes_noise","text":"MEASURE_AXES_NOISE : Az \u00f6sszes enged\u00e9lyezett gyorsul\u00e1sm\u00e9r\u0151 chip \u00f6sszes tengely\u00e9nek zaj\u00e1t m\u00e9ri \u00e9s adja ki.","title":"MEASURE_AXES_NOISE"},{"location":"G-Codes.html#test_resonances","text":"TEST_RESONANCES AXIS=<axis> OUTPUT=<resonances,raw_data> [NAME=<name>] [FREQ_START=<min_freq>] [FREQ_END=<max_freq>] [HZ_PER_SEC=<hz_per_sec>] [CHIPS=<adxl345_chip_name>] [POINT=x,y,z] [INPUT_SHAPING=[<0:1>]] : Lefuttatja a rezonanciatesztet a k\u00e9rt \"tengely\" \u00f6sszes konfigur\u00e1lt m\u00e9r\u0151pontj\u00e1ban, \u00e9s m\u00e9ri a gyorsul\u00e1st az adott tengelyhez konfigur\u00e1lt gyorsul\u00e1sm\u00e9r\u0151 chipek seg\u00edts\u00e9g\u00e9vel. A \"tengely\" lehet X vagy Y, vagy megadhat egy tetsz\u0151leges ir\u00e1nyt AXIS=dx,dy , ahol dx \u00e9s dy egy ir\u00e1nyvektort meghat\u00e1roz\u00f3 lebeg\u0151pontos sz\u00e1m (pl. AXIS=X , AXIS=Y , vagy AXIS=1,-1 az \u00e1tl\u00f3s ir\u00e1ny meghat\u00e1roz\u00e1s\u00e1hoz). Vegy\u00fck figyelembe, hogy az AXIS=dx,dy \u00e9s az AXIS=-dx,-dy egyen\u00e9rt\u00e9k\u0171. Az adxl345_chip_name lehet egy vagy t\u00f6bb konfigur\u00e1lt adxl345 chip, vessz\u0151vel elv\u00e1lasztva, p\u00e9ld\u00e1ul CHIPS=\"adxl345, adxl345 rpi\" . Megjegyzend\u0151, hogy az adxl345 elhagyhat\u00f3 a neves\u00edtett adxl345 chipekn\u00e9l. Ha POINT van megadva, az fel\u00fcl\u00edrja a [resonance_tester] alatt konfigur\u00e1lt pontokat. Ha INPUT_SHAPING=0 vagy nincs be\u00e1ll\u00edtva (alap\u00e9rtelmezett), letiltja a bemeneti alak\u00edt\u00e1st a rezonancia tesztel\u00e9shez, mert a rezonancia tesztel\u00e9s nem \u00e9rv\u00e9nyes a bemeneti alak\u00edt\u00f3 enged\u00e9lyez\u00e9s\u00e9vel. Az OUTPUT param\u00e9ter egy vessz\u0151vel elv\u00e1lasztott lista arr\u00f3l, hogy mely kimenetek ker\u00fclnek ki\u00edr\u00e1sra. Ha raw_data param\u00e9tert k\u00e9r, akkor a nyers gyorsul\u00e1sm\u00e9r\u0151 adatok egy /tmp/raw_data_<axis>_[<chip_name>_][<point>_]<name>.csv f\u00e1jlba vagy f\u00e1jlsorozatba \u00edr\u00f3dnak. A ( <point>_ n\u00e9v r\u00e9sz\u00e9vel, amely csak akkor gener\u00e1l\u00f3dik, ha 1-n\u00e9l t\u00f6bb m\u00e9r\u0151pont van konfigur\u00e1lva vagy POINT van megadva). Ha resonances van megadva, a frekvenciav\u00e1lasz kisz\u00e1m\u00edt\u00e1sra ker\u00fcl (az \u00f6sszes m\u00e9r\u0151pontra vonatkoz\u00f3an), \u00e9s a /tmp/resonances_<axis>_<name>.csv f\u00e1jlba \u00edr\u00f3dik. Ha nincs be\u00e1ll\u00edtva, az OUTPUT alap\u00e9rtelmez\u00e9s szerinti resonances , a NAME pedig alap\u00e9rtelmez\u00e9s szerint az aktu\u00e1lis id\u0151pontot jelenti \"\u00c9\u00c9\u00c9\u00c9HHNN_\u00d3\u00d3PPMPMP\" form\u00e1tumban.","title":"TEST_RESONANCES"},{"location":"G-Codes.html#shaper_calibrate","text":"SHAPER_CALIBRATE [AXIS=<axis>] [NAME=<name>] [FREQ_START=<min_freq>] [FREQ_END=<max_freq>] [HZ_PER_SEC=<hz_per_sec>] [MAX_SMOOTHING=<max_smoothing>] : A TEST_RESONANCES param\u00e9terhez hasonl\u00f3an lefuttatja a rezonancia tesztet a konfigur\u00e1ltak szerint, \u00e9s megpr\u00f3b\u00e1lja megtal\u00e1lni a bemeneti v\u00e1ltoz\u00f3 optim\u00e1lis param\u00e9tereit a k\u00e9rt tengelyre (vagy mind az X, mind az Y tengelyre, ha az AXIS param\u00e9ter nincs be\u00e1ll\u00edtva). Ha a MAX_SMOOTHING nincs be\u00e1ll\u00edtva, az \u00e9rt\u00e9k\u00e9t a [resonance_tester] szakaszb\u00f3l veszi, az alap\u00e9rtelmezett \u00e9rt\u00e9k pedig a be nem \u00e1ll\u00edtott \u00e9rt\u00e9k. L\u00e1sd a Max sim\u00edt\u00e1s a rezonanci\u00e1k m\u00e9r\u00e9se c\u00edm\u0171 \u00fatmutat\u00f3ban a funkci\u00f3 haszn\u00e1lat\u00e1r\u00f3l sz\u00f3l\u00f3 tov\u00e1bbi inform\u00e1ci\u00f3kat. A hangol\u00e1s eredm\u00e9nyei ki\u00edr\u00f3dnak a konzolra, a frekvenciav\u00e1laszok \u00e9s a k\u00fcl\u00f6nb\u00f6z\u0151 bemeneti alak\u00edt\u00f3k \u00e9rt\u00e9kei pedig egy vagy t\u00f6bb CSV-f\u00e1jlba \u00edr\u00f3dnak /tmp/calibration_data_<axis>_<name>.csv . Hacsak nincs megadva, a NAME alap\u00e9rtelmez\u00e9s szerint az aktu\u00e1lis id\u0151pontot jelenti \"YYYYMMDD_HHMMSS\" form\u00e1tumban. Vedd figyelembe, hogy a javasolt bemeneti v\u00e1ltoz\u00f3 param\u00e9terek a SAVE_CONFIG parancs kiad\u00e1s\u00e1val meg\u0151rizhet\u0151k a konfigur\u00e1ci\u00f3s f\u00e1jlban.","title":"SHAPER_CALIBRATE"},{"location":"G-Codes.html#respond","text":"A k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d\u00fa parancsok \u00e1llnak rendelkez\u00e9sre, ha a respond konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van: M118 <message> : visszhangozza az \u00fczenetet a konfigur\u00e1lt alap\u00e9rtelmezett el\u0151taggal (vagy echo: , ha nincs konfigur\u00e1lva el\u0151tag). A k\u00f6vetkez\u0151 tov\u00e1bbi parancsok is rendelkez\u00e9sre \u00e1llnak.","title":"[respond]"},{"location":"G-Codes.html#respond_1","text":"RESPOND MSG=\"<message>\" : visszhangozza az \u00fczenetet a konfigur\u00e1lt alap\u00e9rtelmezett el\u0151taggal kieg\u00e9sz\u00edtve (vagy echo: , ha nincs konfigur\u00e1lva el\u0151tag). RESPOND TYPE=echo MSG=\"<message>\" : visszhangozza az \u00fczenetet, amelyet echo: k\u00fcld. RESPOND TYPE=echo_no_space MSG=\"<message>\" : az \u00fczenet visszhangja az el\u0151taggal kieg\u00e9sz\u00edtve echo: sz\u00f3k\u00f6z n\u00e9lk\u00fcl az el\u0151tag \u00e9s az \u00fczenet k\u00f6z\u00f6tt, hasznos a kompatibilit\u00e1s n\u00e9h\u00e1ny olyan octoprint pluginnal, amelyek nagyon speci\u00e1lis form\u00e1z\u00e1st v\u00e1rnak el. RESPOND TYPE=command MSG=\"<message>\" : visszhangozza az \u00fczenetet // . Az OctoPrint konfigur\u00e1lhat\u00f3 \u00fagy, hogy v\u00e1laszoljon ezekre az \u00fczenetekre (pl. RESPOND TYPE=command MSG=action:pause ). RESPOND TYPE=error MSG=\"<message>\" : visszhangozza az \u00fczenetet !! . RESPOND PREFIX=<prefix> MSG=\"<message>\" : visszhangozza az \u00fczenetet <prefix> el\u0151taggal kieg\u00e9sz\u00edtve. (A PREFIX param\u00e9ter els\u0151bbs\u00e9get \u00e9lvez a TYPE param\u00e9terrel szemben.)","title":"RESPOND"},{"location":"G-Codes.html#save_variables","text":"A k\u00f6vetkez\u0151 parancs akkor enged\u00e9lyezett, ha a save_variables konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[save_variables]"},{"location":"G-Codes.html#save_variable","text":"SAVE_VARIABLE VARIABLE=<name> VALUE=<value> : A v\u00e1ltoz\u00f3t a lemezre menti, hogy \u00fajraind\u00edt\u00e1skor is haszn\u00e1lhat\u00f3 legyen. Minden t\u00e1rolt v\u00e1ltoz\u00f3 bet\u00f6lt\u0151dik a printer.save_variables.variables dict ind\u00edt\u00e1skor, \u00e9s haszn\u00e1lhat\u00f3 a G-k\u00f3d makr\u00f3kban. A megadott VALUE-t Python liter\u00e1lk\u00e9nt elemzi.","title":"SAVE_VARIABLE"},{"location":"G-Codes.html#screws_tilt_adjust","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a screws_tilt_adjust konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a k\u00e9zi szintbe\u00e1ll\u00edt\u00e1si \u00fatmutat\u00f3t ).","title":"[screws_tilt_adjust]"},{"location":"G-Codes.html#screws_tilt_calculate","text":"SCREWS_TILT_CALCULATE [DIRECTION=CW|CCW] [MAX_DEVIATION=<value>] [<probe_parameter>=<value>] : Ez a parancs a t\u00e1rgyasztal csavarjainak be\u00e1ll\u00edt\u00e1si eszk\u00f6z\u00e9t h\u00edvja el\u0151. A f\u00fav\u00f3k\u00e1t k\u00fcl\u00f6nb\u00f6z\u0151 helyekre (a konfigur\u00e1ci\u00f3s f\u00e1jlban meghat\u00e1rozottak szerint) parancsolja a Z magass\u00e1got m\u00e9rve, \u00e9s kisz\u00e1m\u00edtja a t\u00e1rgyasztal szintj\u00e9nek be\u00e1ll\u00edt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges gombfordulatok sz\u00e1m\u00e1t. Ha DIRECTION van megadva, akkor a gombfordul\u00e1sok mind ugyanabba az ir\u00e1nyba, az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val megegyez\u0151 vagy az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1nyba fognak t\u00f6rt\u00e9nni. Az opcion\u00e1lis szondaparam\u00e9terekkel kapcsolatos r\u00e9szletek\u00e9rt l\u00e1sd a PROBE parancsot. FONTOS: A parancs haszn\u00e1lata el\u0151tt mindig ki kell adni egy G28 parancsot. Ha MAX_DEVIATION van megadva, a parancs G-k\u00f3d hib\u00e1t fog adni, ha a csavar magass\u00e1g\u00e1nak az alapcsavar magass\u00e1g\u00e1hoz viszony\u00edtott b\u00e1rmilyen k\u00fcl\u00f6nbs\u00e9ge nagyobb, mint a megadott \u00e9rt\u00e9k.","title":"SCREWS_TILT_CALCULATE"},{"location":"G-Codes.html#sdcard_loop","text":"Ha az sdcard_loop konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van, a k\u00f6vetkez\u0151 kiterjesztett parancsok \u00e1llnak rendelkez\u00e9sre.","title":"[sdcard_loop]"},{"location":"G-Codes.html#sdcard_loop_begin","text":"SDCARD_LOOP_BEGIN COUNT=<count> : Egy hurokszer\u0171 szakasz kezdete az SD nyomtat\u00e1sban. A 0-\u00e1s sz\u00e1m azt jelzi, hogy a szakasz v\u00e9gtelen\u00edtett hurokba ker\u00fclj\u00f6n.","title":"SDCARD_LOOP_BEGIN"},{"location":"G-Codes.html#sdcard_loop_end","text":"SDCARD_LOOP_END : Az SD-nyomtat\u00e1sban egy ciklusos szakasz befejez\u00e9se.","title":"SDCARD_LOOP_END"},{"location":"G-Codes.html#sdcard_loop_desist","text":"SDCARD_LOOP_DESIST : A megl\u00e9v\u0151 ciklusok befejez\u00e9se tov\u00e1bbi iter\u00e1ci\u00f3k n\u00e9lk\u00fcl.","title":"SDCARD_LOOP_DESIST"},{"location":"G-Codes.html#servo","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a szerv\u00f3 konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[servo]"},{"location":"G-Codes.html#set_servo","text":"SET_SERVO SERVO=config_name [ANGLE=<degrees> | WIDTH=<seconds>] : A szerv\u00f3 poz\u00edci\u00f3j\u00e1nak be\u00e1ll\u00edt\u00e1sa a megadott sz\u00f6gre (fokban) vagy impulzussz\u00e9less\u00e9gre (m\u00e1sodpercben). A WIDTH=0 haszn\u00e1lat\u00e1val letilthatja a szerv\u00f3kimenetet.","title":"SET_SERVO"},{"location":"G-Codes.html#skew_correction","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a skew_correction konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a Ferdes\u00e9gi korrekci\u00f3 \u00fatmutat\u00f3t).","title":"[skew_correction]"},{"location":"G-Codes.html#set_skew","text":"SET_SKEW [XY=<ac_length,bd_length,ad_length>] [XZ=<ac,bd,ad>] [YZ=<ac,bd,ad>] [CLEAR=<0|1>] : A [skew_correction] modul konfigur\u00e1l\u00e1sa a kalibr\u00e1ci\u00f3s nyomatb\u00f3l vett m\u00e9r\u00e9sekkel (mm-ben). A m\u00e9r\u00e9sek a s\u00edkok tetsz\u0151leges kombin\u00e1ci\u00f3j\u00e1ra adhat\u00f3k meg, a be nem adott s\u00edkok megtartj\u00e1k az aktu\u00e1lis \u00e9rt\u00e9k\u00fcket. Ha CLEAR=1 van megadva, akkor minden ferdes\u00e9gkorrekci\u00f3 ki lesz kapcsolva.","title":"SET_SKEW"},{"location":"G-Codes.html#get_current_skew","text":"GET_CURRENT_SKEW : A nyomtat\u00f3 aktu\u00e1lis ferdes\u00e9g\u00e9t jelenti minden s\u00edkhoz radi\u00e1nban \u00e9s fokban. A ferdes\u00e9g kisz\u00e1m\u00edt\u00e1sa a SET_SKEW G-k\u00f3dal megadott param\u00e9terek alapj\u00e1n t\u00f6rt\u00e9nik.","title":"GET_CURRENT_SKEW"},{"location":"G-Codes.html#calc_measured_skew","text":"CALC_MEASURED_SKEW [AC=<ac_length>] [BD=<bd_length>] [AD=<ad_length>] : Kisz\u00e1m\u00edtja \u00e9s jelenti a ferdes\u00e9get (radi\u00e1nban \u00e9s fokban) egy m\u00e9rt lenyomat alapj\u00e1n. Ez hasznos lehet a nyomtat\u00f3 aktu\u00e1lis ferdes\u00e9g\u00e9nek meghat\u00e1roz\u00e1s\u00e1hoz a korrekci\u00f3 alkalmaz\u00e1sa ut\u00e1n. A korrekci\u00f3 alkalmaz\u00e1sa el\u0151tt is hasznos lehet annak meghat\u00e1roz\u00e1s\u00e1hoz, hogy sz\u00fcks\u00e9ges-e a ferdes\u00e9gkorrekci\u00f3. A ferdes\u00e9g kalibr\u00e1ci\u00f3s objektumok \u00e9s m\u00e9r\u00e9sek r\u00e9szletei\u00e9rt l\u00e1sd a Ferdes\u00e9g korrekci\u00f3 dokumentumot.","title":"CALC_MEASURED_SKEW"},{"location":"G-Codes.html#skew_profile","text":"SKEW_PROFILE [LOAD=<name>] [SAVE=<name>] [REMOVE=<name>] : Profilkezel\u00e9s a skew_correction sz\u00e1m\u00e1ra. A LOAD vissza\u00e1ll\u00edtja a ferdes\u00e9g \u00e1llapot\u00e1t a megadott n\u00e9vnek megfelel\u0151 profilb\u00f3l. A SAVE a megadott n\u00e9vnek megfelel\u0151 profilba menti az aktu\u00e1lis ferdes\u00e9g\u00e1llapotot. A REMOVE t\u00f6rli a megadott n\u00e9vnek megfelel\u0151 profilt a tart\u00f3s mem\u00f3ri\u00e1b\u00f3l. Megjegyzend\u0151, hogy a SAVE vagy REMOVE m\u0171veletek lefuttat\u00e1sa ut\u00e1n a SAVE_CONFIG parancsot kell futtatni, hogy a tart\u00f3s mem\u00f3ri\u00e1ban v\u00e9grehajtott v\u00e1ltoztat\u00e1sok v\u00e9glegesek legyenek.","title":"SKEW_PROFILE"},{"location":"G-Codes.html#smart_effector","text":"T\u00f6bb parancs is el\u00e9rhet\u0151, ha a smart_effector konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. A Smart Effector param\u00e9tereinek m\u00f3dos\u00edt\u00e1sa el\u0151tt mindenk\u00e9ppen n\u00e9zze meg a Smart Effector hivatalos dokument\u00e1ci\u00f3j\u00e1t a Duet3D Wiki oldalon. Ellen\u0151rizd tov\u00e1bb\u00e1 a szonda kalibr\u00e1ci\u00f3s \u00fatmutat\u00f3 c\u00edm\u0171 dokumenmot is.","title":"[smart_effector]"},{"location":"G-Codes.html#set_smart_effector","text":"SET_SMART_EFFECTOR [SENSITIVITY=<sensitivity>] [ACCEL=<accel>] [RECOVERY_TIME=<time>] : A Smart Effector param\u00e9tereinek be\u00e1ll\u00edt\u00e1sa. Ha SENSITIVITY van megadva, a megfelel\u0151 \u00e9rt\u00e9k a SmartEffector EEPROM-ba \u00edr\u00f3dik ( control_pin biztos\u00edt\u00e1sa sz\u00fcks\u00e9ges). Az elfogadhat\u00f3 <sensitivity> \u00e9rt\u00e9kek 0..255, az alap\u00e9rtelmezett \u00e9rt\u00e9k 50..255. Az alacsonyabb \u00e9rt\u00e9kek kisebb f\u00fav\u00f3ka-\u00e9rintkez\u00e9si er\u0151t ig\u00e9nyelnek a kiold\u00e1shoz (de nagyobb a t\u00e9ves kiold\u00e1s kock\u00e1zata a szond\u00e1z\u00e1s k\u00f6zbeni rezg\u00e9sek miatt), a magasabb \u00e9rt\u00e9kek pedig cs\u00f6kkentik a t\u00e9ves kiold\u00e1st (de nagyobb \u00e9rintkez\u00e9si er\u0151t ig\u00e9nyelnek a kiold\u00e1shoz). Mivel az \u00e9rz\u00e9kenys\u00e9g az EEPROM-ba \u00edr\u00f3dik, a le\u00e1ll\u00edt\u00e1s ut\u00e1n is megmarad, \u00edgy nem kell minden nyomtat\u00f3 ind\u00edt\u00e1sakor konfigur\u00e1lni. ACCEL \u00e9s RECOVERY_TIME lehet\u0151v\u00e9 teszi a megfelel\u0151 param\u00e9terek fut\u00e1sid\u0151ben t\u00f6rt\u00e9n\u0151 fel\u00fclb\u00edr\u00e1l\u00e1s\u00e1t, a Smart Effector konfigur\u00e1ci\u00f3s szakasz tov\u00e1bbi inform\u00e1ci\u00f3kat tartalmaz ezekr\u0151l a param\u00e9terekr\u0151l.","title":"SET_SMART_EFFECTOR"},{"location":"G-Codes.html#reset_smart_effector","text":"RESET_SMART_EFFECTOR : Vissza\u00e1ll\u00edtja a Smart Effector \u00e9rz\u00e9kenys\u00e9g\u00e9t a gy\u00e1ri be\u00e1ll\u00edt\u00e1sokra. Sz\u00fcks\u00e9ges a control_pin megad\u00e1sa a config szakaszban.","title":"RESET_SMART_EFFECTOR"},{"location":"G-Codes.html#stepper_enable","text":"A stepper_enable modul automatikusan bet\u00f6lt\u0151dik.","title":"[stepper_enable]"},{"location":"G-Codes.html#set_stepper_enable","text":"SET_STEPPER_ENABLE STEPPER=<config_name> ENABLE=[0|1] : Csak az adott l\u00e9ptet\u0151motor enged\u00e9lyez\u00e9se vagy letilt\u00e1sa. Ez egy diagnosztikai \u00e9s hibakeres\u00e9si eszk\u00f6z, ez\u00e9rt \u00f3vatosan kell haszn\u00e1lni. Egy l\u00e9ptet\u0151motor letilt\u00e1sa nem \u00e1ll\u00edtja vissza a kezd\u0151pont felv\u00e9teli inform\u00e1ci\u00f3kat. Egy letiltott l\u00e9ptet\u0151motor k\u00e9zi mozgat\u00e1sa azt okozhatja, hogy a g\u00e9p a biztons\u00e1gos hat\u00e1r\u00e9rt\u00e9keken k\u00edv\u00fcl m\u0171k\u00f6dteti a motort. Ez a tengely alkatr\u00e9szeinek, a nyomtat\u00f3fejnek \u00e9s a nyomtat\u00e1si fel\u00fcletnek a k\u00e1rosod\u00e1s\u00e1hoz vezethet.","title":"SET_STEPPER_ENABLE"},{"location":"G-Codes.html#temperature_fan","text":"A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a temperature_fan konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[temperature_fan]"},{"location":"G-Codes.html#set_temperature_fan_target","text":"SET_TEMPERATURE_FAN_TARGET temperature_fan=<temperature_fan_name> [target=<target_temperature>] [min_speed=<min_speed>] [max_speed=<max_speed>] : A temperature_fan c\u00e9lh\u0151m\u00e9rs\u00e9klet\u00e9nek be\u00e1ll\u00edt\u00e1sa. Ha nincs megadva c\u00e9l\u00e9rt\u00e9k, akkor a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott h\u0151m\u00e9rs\u00e9kletet \u00e1ll\u00edtja be. Ha a sebess\u00e9gek nincsenek megadva, akkor nem t\u00f6rt\u00e9nik v\u00e1ltoz\u00e1s.","title":"SET_TEMPERATURE_FAN_TARGET"},{"location":"G-Codes.html#tmcxxxx","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a tmcXXXXXX konfigur\u00e1ci\u00f3s szakaszok b\u00e1rmelyike enged\u00e9lyezve van.","title":"[tmcXXXX]"},{"location":"G-Codes.html#dump_tmc","text":"DUMP_TMC STEPPER=<name> : Ez a parancs kiolvassa a TMC-motorvez\u00e9rl\u0151 regisztereit \u00e9s jelenti azok \u00e9rt\u00e9keit.","title":"DUMP_TMC"},{"location":"G-Codes.html#init_tmc","text":"INIT_TMC STEPPER=<name> : Ez a parancs inicializ\u00e1lja a TMC regisztereket. A meghajt\u00f3 \u00fajraaktiv\u00e1l\u00e1s\u00e1hoz sz\u00fcks\u00e9ges, ha a chip \u00e1ramell\u00e1t\u00e1sa kikapcsol, majd visszakapcsol.","title":"INIT_TMC"},{"location":"G-Codes.html#set_tmc_current","text":"SET_TMC_CURRENT STEPPER=<name> CURRENT=<amps> HOLDCURRENT=<amps> : Ez a TMC-motorvez\u00e9rl\u0151 fut\u00f3- \u00e9s tart\u00f3\u00e1ram\u00e1t \u00e1ll\u00edtja be. (A HOLDCURRENT nem alkalmazhat\u00f3 a tmc2660 motorvez\u00e9rl\u0151kre).","title":"SET_TMC_CURRENT"},{"location":"G-Codes.html#set_tmc_field","text":"SET_TMC_FIELD STEPPER=<name> FIELD=<field> VALUE=<value> : Ez m\u00f3dos\u00edtja a TMC-motorvez\u00e9rl\u0151 megadott regisztermez\u0151j\u00e9nek \u00e9rt\u00e9k\u00e9t. Ez a parancs csak alacsony szint\u0171 diagnosztik\u00e1ra \u00e9s hibakeres\u00e9sre szolg\u00e1l, mivel a mez\u0151k fut\u00e1s k\u00f6zbeni m\u00f3dos\u00edt\u00e1sa a nyomtat\u00f3 nem k\u00edv\u00e1nt \u00e9s potenci\u00e1lisan vesz\u00e9lyes viselked\u00e9s\u00e9hez vezethet. A tart\u00f3s v\u00e1ltoztat\u00e1sokat ink\u00e1bb a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1nak haszn\u00e1lat\u00e1val kell elv\u00e9gezni. A megadott \u00e9rt\u00e9kek eset\u00e9ben nem t\u00f6rt\u00e9nik ellen\u0151rz\u00e9s.","title":"SET_TMC_FIELD"},{"location":"G-Codes.html#toolhead","text":"A nyomtat\u00f3fejmodul automatikusan bet\u00f6lt\u0151dik.","title":"[toolhead]"},{"location":"G-Codes.html#set_velocity_limit","text":"SET_VELOCITY_LIMIT [VELOCITY=<value>] [ACCEL=<value>] [ACCEL_TO_DECEL=<value>] [SQUARE_CORNER_VELOCITY=<value>] : A nyomtat\u00f3 sebess\u00e9ghat\u00e1rainak m\u00f3dos\u00edt\u00e1sa.","title":"SET_VELOCITY_LIMIT"},{"location":"G-Codes.html#tuning_tower","text":"A tuning_tower modul automatikusan bet\u00f6lt\u0151dik.","title":"[tuning_tower]"},{"location":"G-Codes.html#tuning_tower_1","text":"TUNING_TOWER COMMAND=<command> PARAMETER=<name> START=<value> [SKIP=<value>] [FACTOR=<value> [BAND=<value>]] | [STEP_DELTA=<value> STEP_HEIGHT=<value>] : Egy eszk\u00f6z egy param\u00e9ter be\u00e1ll\u00edt\u00e1s\u00e1ra minden egyes Z magass\u00e1gon a nyomtat\u00e1s sor\u00e1n. Az eszk\u00f6z az adott COMMAND parancsot a megadott PARAMETER \u00e9rt\u00e9khez rendelt Z \u00e9rt\u00e9kkel egy k\u00e9plet szerint v\u00e1ltoz\u00f3 \u00e9rt\u00e9kkel futtatja. Haszn\u00e1ld a FACTOR lehet\u0151s\u00e9get, ha vonalz\u00f3val vagy tol\u00f3m\u00e9r\u0151vel fogja m\u00e9rni az optim\u00e1lis Z magass\u00e1got, vagy STEP_DELTA \u00e9s STEP_HEIGHT , ha a hangol\u00f3torony modellje diszkr\u00e9t \u00e9rt\u00e9kek s\u00e1vjaival rendelkezik, mint ahogy az a h\u0151m\u00e9rs\u00e9klet-tornyokn\u00e1l gyakori. Ha SKIP=<value> van megadva, akkor a hangol\u00e1si folyamat nem kezd\u0151dik meg, am\u00edg a Z magass\u00e1g <value> el\u00e9r\u00e9s\u00e9t, \u00e9s ez alatt az \u00e9rt\u00e9k START \u00e9rt\u00e9kre lesz be\u00e1ll\u00edtva; ebben az esetben az al\u00e1bbi k\u00e9pletekben haszn\u00e1lt z_height val\u00f3j\u00e1ban max(z - skip, 0) . H\u00e1rom lehets\u00e9ges kombin\u00e1ci\u00f3 l\u00e9tezik: FACTOR : Az \u00e9rt\u00e9k factor millim\u00e9terenk\u00e9nt v\u00e1ltozik. Az alkalmazott k\u00e9plet: value = start + factor * z_height . Az optim\u00e1lis Z magass\u00e1got k\u00f6zvetlen\u00fcl a k\u00e9pletbe illesztheti az optim\u00e1lis param\u00e9ter\u00e9rt\u00e9k meghat\u00e1roz\u00e1s\u00e1hoz. FACTOR \u00e9s BAND : Az \u00e9rt\u00e9k \u00e1tlagosan Faktor millim\u00e9terenk\u00e9nt v\u00e1ltozik, de diszkr\u00e9t s\u00e1vokban, ahol a kiigaz\u00edt\u00e1s csak minden BAND millim\u00e9terenk\u00e9nt t\u00f6rt\u00e9nik a Z magass\u00e1gban. A haszn\u00e1lt k\u00e9plet a k\u00f6vetkez\u0151: value= start + factor* ((floor(z_height / band) + .5) * band) . STEP_DELTA \u00e9s STEP_HEIGHT : Az \u00e9rt\u00e9k STEP_DELTA minden STEP_HEIGHT millim\u00e9terrel v\u00e1ltozik. A haszn\u00e1lt k\u00e9plet a k\u00f6vetkez\u0151: value = start + step_delta * floor(z_height / step_height) . Az optim\u00e1lis \u00e9rt\u00e9k meghat\u00e1roz\u00e1s\u00e1hoz egyszer\u0171en megsz\u00e1molhatja a s\u00e1vokat vagy leolvashatja a hangol\u00f3torony \u00e9rt\u00e9keit.","title":"TUNING_TOWER"},{"location":"G-Codes.html#virtual_sdcard","text":"A Klipper t\u00e1mogatja a k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d parancsokat, ha a virtual_sdcard konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van: SD-k\u00e1rtya list\u00e1z\u00e1sa: M20 SD-k\u00e1rtya inicializ\u00e1l\u00e1sa: M21 V\u00e1laszd ki az SD f\u00e1jlt: M23 <filename> SD nyomtat\u00e1s ind\u00edt\u00e1sa/folytat\u00e1sa: M24 SD nyomtat\u00e1s sz\u00fcneteltet\u00e9se: M25 SD poz\u00edci\u00f3 be\u00e1ll\u00edt\u00e1sa: M26 S<offset> SD nyomtat\u00e1si st\u00e1tusz jelent\u00e9se: M27 Ezenk\u00edv\u00fcl a k\u00f6vetkez\u0151 kiterjesztett parancsok is el\u00e9rhet\u0151k, ha a \"virtual_sdcard\" konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[virtual_sdcard]"},{"location":"G-Codes.html#sdcard_print_file","text":"SDCARD_PRINT_FILE FILENAME=<filename> : Egy f\u00e1jl bet\u00f6lt\u00e9se \u00e9s az SD-nyomtat\u00e1s elind\u00edt\u00e1sa.","title":"SDCARD_PRINT_FILE"},{"location":"G-Codes.html#sdcard_reset_file","text":"SDCARD_RESET_FILE : A f\u00e1jl elt\u00e1vol\u00edt\u00e1sa \u00e9s az SD \u00e1llapot\u00e1nak t\u00f6rl\u00e9se.","title":"SDCARD_RESET_FILE"},{"location":"G-Codes.html#z_thermal_adjust","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a z_thermal_adjust konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[z_thermal_adjust]"},{"location":"G-Codes.html#set_z_thermal_adjust","text":"SET_Z_THERMAL_ADJUST [ENABLE=<0:1>] [TEMP_COEFF=<value>] [REF_TEMP=<value>] : A Z h\u0151szab\u00e1lyoz\u00e1s enged\u00e9lyez\u00e9se vagy letilt\u00e1sa az ENABLE parancsal. A letilt\u00e1s nem t\u00e1vol\u00edtja el a m\u00e1r alkalmazott be\u00e1ll\u00edt\u00e1st, de befagyasztja az aktu\u00e1lis be\u00e1ll\u00edt\u00e1si \u00e9rt\u00e9ket. Ez megakad\u00e1lyozza a potenci\u00e1lisan nem biztons\u00e1gos Z lefel\u00e9 ir\u00e1nyul\u00f3 mozg\u00e1st. Az \u00fajb\u00f3li enged\u00e9lyez\u00e9s potenci\u00e1lisan felfel\u00e9 ir\u00e1nyul\u00f3 szersz\u00e1mmozg\u00e1st okozhat, mivel a be\u00e1ll\u00edt\u00e1s friss\u00fcl \u00e9s alkalmaz\u00e1sra ker\u00fcl. TEMP_COEFF lehet\u0151v\u00e9 teszi a be\u00e1ll\u00edt\u00e1si h\u0151m\u00e9rs\u00e9kleti egy\u00fctthat\u00f3 fut\u00e1sidej\u0171 hangol\u00e1s\u00e1t (azaz a TEMP_COEFF konfigur\u00e1ci\u00f3s param\u00e9tert). A TEMP_COEFF \u00e9rt\u00e9kek nem ker\u00fclnek ment\u00e9sre a konfigur\u00e1ci\u00f3ba. REF_TEMP manu\u00e1lisan fel\u00fclb\u00edr\u00e1lja a kezd\u0151pont felv\u00e9tel sor\u00e1n be\u00e1ll\u00edtott referencia-h\u0151m\u00e9rs\u00e9kletet (pl. nem szabv\u00e1nyos kezd\u0151pont felv\u00e9teli rutinokn\u00e1l t\u00f6rt\u00e9n\u0151 haszn\u00e1latra) - a kezd\u0151pont felv\u00e9telkor automatikusan vissza\u00e1ll.","title":"SET_Z_THERMAL_ADJUST"},{"location":"G-Codes.html#z_tilt","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a z_tilt konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[z_tilt]"},{"location":"G-Codes.html#z_tilt_adjust","text":"Z_TILT_ADJUST [<probe_parameter>=<value>] : Ez a parancs a konfigur\u00e1ci\u00f3ban megadott pontokat vizsg\u00e1lja meg, majd a d\u0151l\u00e9s kompenz\u00e1l\u00e1sa \u00e9rdek\u00e9ben minden egyes Z l\u00e9ptet\u0151n f\u00fcggetlen be\u00e1ll\u00edt\u00e1sokat v\u00e9gez. Az opcion\u00e1lis m\u00e9r\u00e9si param\u00e9terekkel kapcsolatos r\u00e9szletek\u00e9rt l\u00e1sd a PROBE parancsot.","title":"Z_TILT_ADJUST"},{"location":"Hall_Filament_Width_Sensor.html","text":"Hall nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 \u00b6 Ez a dokumentum az izz\u00f3sz\u00e1lsz\u00e9less\u00e9g-\u00e9rz\u00e9kel\u0151 gazdag\u00e9p modulj\u00e1t \u00edrja le. A gazdamodul fejleszt\u00e9s\u00e9hez haszn\u00e1lt hardver k\u00e9t Hall line\u00e1ris \u00e9rz\u00e9kel\u0151n alapul (p\u00e9ld\u00e1ul ss49e). Az \u00e9rz\u00e9kel\u0151k a testben ellent\u00e9tes oldalon helyezkednek el. M\u0171k\u00f6d\u00e9si elv: k\u00e9t Hall \u00e9rz\u00e9kel\u0151 differenci\u00e1l \u00fczemm\u00f3dban m\u0171k\u00f6dik, a h\u0151m\u00e9rs\u00e9klet cs\u00fasz\u00e1s ugyanaz a szenzorn\u00e1l. Speci\u00e1lis h\u0151m\u00e9rs\u00e9klet kompenz\u00e1ci\u00f3 nem sz\u00fcks\u00e9ges. Terveket a [Thingiverse] oldalon tal\u00e1lja ( https://www.thingiverse.com/thing:4138933 ), az \u00f6sszeszerel\u00e9si vide\u00f3 a [Youtube]-on is el\u00e9rhet\u0151 ( https://www.youtube.com/watch?v=TDO9tME8vp4 ) A Hall nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 haszn\u00e1lat\u00e1hoz olvasd el a Konfigur\u00e1ci\u00f3s hivatkoz\u00e1s \u00e9s a G-k\u00f3d dokument\u00e1ci\u00f3 r\u00e9szt. Hogyan m\u0171k\u00f6dik? \u00b6 Az \u00e9rz\u00e9kel\u0151 k\u00e9t anal\u00f3g kimenetet gener\u00e1l az izz\u00f3sz\u00e1l sz\u00e1m\u00edtott sz\u00e9less\u00e9ge alapj\u00e1n. A kimeneti fesz\u00fclts\u00e9g \u00f6sszege mindig megegyezik az izz\u00f3sz\u00e1l \u00e9rz\u00e9kelt sz\u00e9less\u00e9g\u00e9vel. A gazdamodul figyeli a fesz\u00fclts\u00e9gv\u00e1ltoz\u00e1sokat \u00e9s be\u00e1ll\u00edtja az extrud\u00e1l\u00e1si szorz\u00f3t. Aux2 csatlakoz\u00f3t haszn\u00e1lok a RAMPS k\u00e1rtya anal\u00f3g11 \u00e9s anal\u00f3g12 \u00e9rintkez\u0151in. K\u00fcl\u00f6nb\u00f6z\u0151 t\u0171ket \u00e9s k\u00fcl\u00f6nb\u00f6z\u0151 t\u00e1bl\u00e1kat haszn\u00e1lhat. Men\u00fcv\u00e1ltoz\u00f3k sablonja \u00b6 [menu __main __filament __width_current] type: command enable: {'hall_filament_width_sensor' in printer} name: Dia: {'%.2F' % printer.hall_filament_width_sensor.Diameter} index: 0 [menu __main __filament __raw_width_current] type: command enable: {'hall_filament_width_sensor' in printer} name: Raw: {'%4.0F' % printer.hall_filament_width_sensor.Raw} index: 1 Kalibr\u00e1l\u00e1si elj\u00e1r\u00e1s \u00b6 Az \u00e9rz\u00e9kel\u0151 nyers \u00e9rt\u00e9k\u00e9nek meghat\u00e1roz\u00e1s\u00e1hoz haszn\u00e1lhatod a men\u00fcelemet vagy a QUERY_RAW_FILAMENT_WIDTH parancsot a termin\u00e1lban. Helyezze be az els\u0151 kalibr\u00e1l\u00f3 rudat (1,5 mm-es m\u00e9ret), hogy megkapja az els\u0151 nyers szenzor\u00e9rt\u00e9ket Helyezze be a m\u00e1sodik kalibr\u00e1l\u00f3 rudat (2,0 mm-es m\u00e9ret), hogy megkapja a m\u00e1sodik nyers szenzor\u00e9rt\u00e9k\u00e9t Mentsd a nyers szenzor\u00e9rt\u00e9keket a Raw_dia1 \u00e9s a Raw_dia2 konfigur\u00e1ci\u00f3s param\u00e9terekbe Az \u00e9rz\u00e9kel\u0151 enged\u00e9lyez\u00e9se \u00b6 Alap\u00e9rtelmez\u00e9s szerint az \u00e9rz\u00e9kel\u0151 le van tiltva bekapcsol\u00e1skor. Az \u00e9rz\u00e9kel\u0151 enged\u00e9lyez\u00e9s\u00e9hez add ki az ENABLE_FILAMENT_WIDTH_SENSOR parancsot, vagy \u00e1ll\u00edtsd az enable param\u00e9tert true \u00e9rt\u00e9kre. Napl\u00f3z\u00e1s \u00b6 Alap\u00e9rtelmez\u00e9s szerint az \u00e1tm\u00e9r\u0151 napl\u00f3z\u00e1sa bekapcsol\u00e1skor le van tiltva. Add ki az ENABLE_FILAMENT_WIDTH_LOG parancsot a napl\u00f3z\u00e1s elind\u00edt\u00e1s\u00e1hoz, \u00e9s add ki a DISABLE_FILAMENT_WIDTH_LOG parancsot a napl\u00f3z\u00e1s le\u00e1ll\u00edt\u00e1s\u00e1hoz. A bekapcsol\u00e1skor t\u00f6rt\u00e9n\u0151 napl\u00f3z\u00e1s enged\u00e9lyez\u00e9s\u00e9hez \u00e1ll\u00edtsd a logging param\u00e9tert true` \u00e9rt\u00e9kre. A nyomtat\u00f3sz\u00e1l \u00e1tm\u00e9r\u0151je minden m\u00e9r\u00e9si intervallumban napl\u00f3z\u00e1sra ker\u00fcl (alap\u00e9rtelmez\u00e9s szerint 10 mm).","title":"Hall nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151"},{"location":"Hall_Filament_Width_Sensor.html#hall-nyomtatoszal-szelesseg-erzekelo","text":"Ez a dokumentum az izz\u00f3sz\u00e1lsz\u00e9less\u00e9g-\u00e9rz\u00e9kel\u0151 gazdag\u00e9p modulj\u00e1t \u00edrja le. A gazdamodul fejleszt\u00e9s\u00e9hez haszn\u00e1lt hardver k\u00e9t Hall line\u00e1ris \u00e9rz\u00e9kel\u0151n alapul (p\u00e9ld\u00e1ul ss49e). Az \u00e9rz\u00e9kel\u0151k a testben ellent\u00e9tes oldalon helyezkednek el. M\u0171k\u00f6d\u00e9si elv: k\u00e9t Hall \u00e9rz\u00e9kel\u0151 differenci\u00e1l \u00fczemm\u00f3dban m\u0171k\u00f6dik, a h\u0151m\u00e9rs\u00e9klet cs\u00fasz\u00e1s ugyanaz a szenzorn\u00e1l. Speci\u00e1lis h\u0151m\u00e9rs\u00e9klet kompenz\u00e1ci\u00f3 nem sz\u00fcks\u00e9ges. Terveket a [Thingiverse] oldalon tal\u00e1lja ( https://www.thingiverse.com/thing:4138933 ), az \u00f6sszeszerel\u00e9si vide\u00f3 a [Youtube]-on is el\u00e9rhet\u0151 ( https://www.youtube.com/watch?v=TDO9tME8vp4 ) A Hall nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 haszn\u00e1lat\u00e1hoz olvasd el a Konfigur\u00e1ci\u00f3s hivatkoz\u00e1s \u00e9s a G-k\u00f3d dokument\u00e1ci\u00f3 r\u00e9szt.","title":"Hall nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151"},{"location":"Hall_Filament_Width_Sensor.html#hogyan-mukodik","text":"Az \u00e9rz\u00e9kel\u0151 k\u00e9t anal\u00f3g kimenetet gener\u00e1l az izz\u00f3sz\u00e1l sz\u00e1m\u00edtott sz\u00e9less\u00e9ge alapj\u00e1n. A kimeneti fesz\u00fclts\u00e9g \u00f6sszege mindig megegyezik az izz\u00f3sz\u00e1l \u00e9rz\u00e9kelt sz\u00e9less\u00e9g\u00e9vel. A gazdamodul figyeli a fesz\u00fclts\u00e9gv\u00e1ltoz\u00e1sokat \u00e9s be\u00e1ll\u00edtja az extrud\u00e1l\u00e1si szorz\u00f3t. Aux2 csatlakoz\u00f3t haszn\u00e1lok a RAMPS k\u00e1rtya anal\u00f3g11 \u00e9s anal\u00f3g12 \u00e9rintkez\u0151in. K\u00fcl\u00f6nb\u00f6z\u0151 t\u0171ket \u00e9s k\u00fcl\u00f6nb\u00f6z\u0151 t\u00e1bl\u00e1kat haszn\u00e1lhat.","title":"Hogyan m\u0171k\u00f6dik?"},{"location":"Hall_Filament_Width_Sensor.html#menuvaltozok-sablonja","text":"[menu __main __filament __width_current] type: command enable: {'hall_filament_width_sensor' in printer} name: Dia: {'%.2F' % printer.hall_filament_width_sensor.Diameter} index: 0 [menu __main __filament __raw_width_current] type: command enable: {'hall_filament_width_sensor' in printer} name: Raw: {'%4.0F' % printer.hall_filament_width_sensor.Raw} index: 1","title":"Men\u00fcv\u00e1ltoz\u00f3k sablonja"},{"location":"Hall_Filament_Width_Sensor.html#kalibralasi-eljaras","text":"Az \u00e9rz\u00e9kel\u0151 nyers \u00e9rt\u00e9k\u00e9nek meghat\u00e1roz\u00e1s\u00e1hoz haszn\u00e1lhatod a men\u00fcelemet vagy a QUERY_RAW_FILAMENT_WIDTH parancsot a termin\u00e1lban. Helyezze be az els\u0151 kalibr\u00e1l\u00f3 rudat (1,5 mm-es m\u00e9ret), hogy megkapja az els\u0151 nyers szenzor\u00e9rt\u00e9ket Helyezze be a m\u00e1sodik kalibr\u00e1l\u00f3 rudat (2,0 mm-es m\u00e9ret), hogy megkapja a m\u00e1sodik nyers szenzor\u00e9rt\u00e9k\u00e9t Mentsd a nyers szenzor\u00e9rt\u00e9keket a Raw_dia1 \u00e9s a Raw_dia2 konfigur\u00e1ci\u00f3s param\u00e9terekbe","title":"Kalibr\u00e1l\u00e1si elj\u00e1r\u00e1s"},{"location":"Hall_Filament_Width_Sensor.html#az-erzekelo-engedelyezese","text":"Alap\u00e9rtelmez\u00e9s szerint az \u00e9rz\u00e9kel\u0151 le van tiltva bekapcsol\u00e1skor. Az \u00e9rz\u00e9kel\u0151 enged\u00e9lyez\u00e9s\u00e9hez add ki az ENABLE_FILAMENT_WIDTH_SENSOR parancsot, vagy \u00e1ll\u00edtsd az enable param\u00e9tert true \u00e9rt\u00e9kre.","title":"Az \u00e9rz\u00e9kel\u0151 enged\u00e9lyez\u00e9se"},{"location":"Hall_Filament_Width_Sensor.html#naplozas","text":"Alap\u00e9rtelmez\u00e9s szerint az \u00e1tm\u00e9r\u0151 napl\u00f3z\u00e1sa bekapcsol\u00e1skor le van tiltva. Add ki az ENABLE_FILAMENT_WIDTH_LOG parancsot a napl\u00f3z\u00e1s elind\u00edt\u00e1s\u00e1hoz, \u00e9s add ki a DISABLE_FILAMENT_WIDTH_LOG parancsot a napl\u00f3z\u00e1s le\u00e1ll\u00edt\u00e1s\u00e1hoz. A bekapcsol\u00e1skor t\u00f6rt\u00e9n\u0151 napl\u00f3z\u00e1s enged\u00e9lyez\u00e9s\u00e9hez \u00e1ll\u00edtsd a logging param\u00e9tert true` \u00e9rt\u00e9kre. A nyomtat\u00f3sz\u00e1l \u00e1tm\u00e9r\u0151je minden m\u00e9r\u00e9si intervallumban napl\u00f3z\u00e1sra ker\u00fcl (alap\u00e9rtelmez\u00e9s szerint 10 mm).","title":"Napl\u00f3z\u00e1s"},{"location":"Installation.html","text":"Telep\u00edt\u00e9s \u00b6 Ezek az utas\u00edt\u00e1sok felt\u00e9telezik, hogy a szoftver egy Raspberry Pi sz\u00e1m\u00edt\u00f3g\u00e9pen fut az OctoPrint-el egy\u00fctt. Javasoljuk, hogy egy Raspberry Pi 2, 3 vagy 4-es sz\u00e1m\u00edt\u00f3g\u00e9pet haszn\u00e1lj gazdag\u00e9pk\u00e9nt (m\u00e1s g\u00e9pekre vonatkoz\u00f3an l\u00e1sd a GYIK c\u00edm\u0171 r\u00e9szt). Klipper konfigur\u00e1ci\u00f3s f\u00e1jl beszerz\u00e9se \u00b6 A legt\u00f6bb Klipper be\u00e1ll\u00edt\u00e1st egy \"nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jl\" hat\u00e1rozza meg, amelyet a Raspberry Pi t\u00e1rol. A megfelel\u0151 konfigur\u00e1ci\u00f3s f\u00e1jlt gyakran \u00fagy tal\u00e1lhatjuk meg, hogy a Klipper config k\u00f6nyvt\u00e1r\u00e1ban keres\u00fcnk egy \"printer-\" el\u0151taggal kezd\u0151d\u0151 f\u00e1jlt, amely megfelel a c\u00e9lnyomtat\u00f3nak. A Klipper konfigur\u00e1ci\u00f3s f\u00e1jl tartalmazza a nyomtat\u00f3ra vonatkoz\u00f3 technikai inform\u00e1ci\u00f3kat, amelyekre a telep\u00edt\u00e9s sor\u00e1n sz\u00fcks\u00e9g lesz. Ha nincs megfelel\u0151 nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jl a Klipper config k\u00f6nyvt\u00e1rban, akkor keresse meg a nyomtat\u00f3 gy\u00e1rt\u00f3j\u00e1nak weboldal\u00e1t, hogy van-e megfelel\u0151 Klipper konfigur\u00e1ci\u00f3s f\u00e1jljuk. Ha nem tal\u00e1lja a nyomtat\u00f3hoz tartoz\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlt, de a nyomtat\u00f3 vez\u00e9rl\u0151panel\u00e9nek t\u00edpusa ismert, akkor keressen egy megfelel\u0151 config f\u00e1jlt , amely \"generic-\" el\u0151taggal kezd\u0151dik. Ezekkel a nyomtat\u00f3 vez\u00e9rl\u0151panel p\u00e9ldaf\u00e1jlokkal sikeresen elv\u00e9gezhet\u0151 a kezdeti telep\u00edt\u00e9s, de a nyomtat\u00f3 teljes funkcionalit\u00e1s\u00e1nak el\u00e9r\u00e9s\u00e9hez n\u00e9mi testreszab\u00e1sra lesz sz\u00fcks\u00e9g. Lehet\u0151s\u00e9g van \u00faj nyomtat\u00f3konfigur\u00e1ci\u00f3 null\u00e1r\u00f3l t\u00f6rt\u00e9n\u0151 meghat\u00e1roz\u00e1s\u00e1ra is. Ehhez azonban jelent\u0151s m\u0171szaki ismeretekre van sz\u00fcks\u00e9g a nyomtat\u00f3val \u00e9s annak elektronik\u00e1j\u00e1val kapcsolatban. A legt\u00f6bb felhaszn\u00e1l\u00f3nak aj\u00e1nlott, hogy egy megfelel\u0151 konfigur\u00e1ci\u00f3s f\u00e1jllal kezd. Ha \u00faj, egy\u00e9ni nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlt hoz l\u00e9tre, akkor a legk\u00f6zelebbi p\u00e9ld\u00e1val config f\u00e1jl kezd, \u00e9s tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt haszn\u00e1ld a Klipper konfigur\u00e1ci\u00f3s hivatkoz\u00e1s c\u00edm\u0171 dokumentumot. OS k\u00e9pf\u00e1jl el\u0151k\u00e9sz\u00edt\u00e9se \u00b6 Kezd az OctoPi telep\u00edt\u00e9s\u00e9vel a Raspberry Pi sz\u00e1m\u00edt\u00f3g\u00e9p\u00e9re. Haszn\u00e1ld az OctoPi v0.17.0-s vagy \u00fajabb verzi\u00f3j\u00e1t. A kiad\u00e1sokkal kapcsolatos inform\u00e1ci\u00f3k\u00e9rt tekintsd meg az OctoPi-kiad\u00e1sokat . Ellen\u0151rizni kell, hogy az OctoPi elindul-e, \u00e9s hogy az OctoPrint webszerver m\u0171k\u00f6dik-e. Miut\u00e1n csatlakozott az OctoPrint weboldalhoz, k\u00f6vesse az utas\u00edt\u00e1sokat az OctoPrint 1.4.2-es vagy \u00fajabb verzi\u00f3j\u00e1ra val\u00f3 friss\u00edt\u00e9s\u00e9hez. Az OctoPi telep\u00edt\u00e9se \u00e9s az OctoPrint friss\u00edt\u00e9se ut\u00e1n n\u00e9h\u00e1ny rendszerparancs futtat\u00e1s\u00e1hoz sz\u00fcks\u00e9g lesz az \"SSH\" kapcsolatra a c\u00e9lg\u00e9phez. Ha Linux vagy MacOS asztali sz\u00e1m\u00edt\u00f3g\u00e9pet haszn\u00e1l, akkor az \"SSH\" szoftvernek m\u00e1r telep\u00edtve kell lennie a g\u00e9pen. Vannak ingyenes ssh-kliensek m\u00e1s asztali sz\u00e1m\u00edt\u00f3g\u00e9pekhez (pl. PuTTY ). Az SSH seg\u00e9dprogrammal csatlakozzon a Raspberry Pi-hez (ssh pi@octopi -- a jelsz\u00f3 \"raspberry\"), \u00e9s futtassa a k\u00f6vetkez\u0151 parancsokat: git clone https://github.com/Klipper3d/klipper ./klipper/scripts/install-octopi.sh A fentiek let\u00f6ltik a Klippert, telep\u00edtenek n\u00e9h\u00e1ny rendszer\u00f6sszetev\u0151t, be\u00e1ll\u00edtj\u00e1k a Klippert, hogy a rendszer indul\u00e1sakor fusson, \u00e9s elind\u00edtja a Klipper gazdag\u00e9p szoftver\u00e9t. Internetkapcsolatra lesz sz\u00fcks\u00e9g, \u00e9s n\u00e9h\u00e1ny percet is ig\u00e9nybe vehet. A mikrokontroller fel\u00e9p\u00edt\u00e9se \u00e9s \u00e9get\u00e9se \u00b6 A mikrokontroller k\u00f3dj\u00e1nak leford\u00edt\u00e1s\u00e1hoz futtassa ezeket a parancsokat a Raspberry Pi-n: cd ~/klipper/ make menuconfig A nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jl tetej\u00e9n tal\u00e1lhat\u00f3 megjegyz\u00e9seknek le kell \u00edrniuk a be\u00e1ll\u00edt\u00e1sokat, amelyeket a \"make menuconfig\" sor\u00e1n kell be\u00e1ll\u00edtani. Nyissa meg a f\u00e1jlt egy webb\u00f6ng\u00e9sz\u0151ben vagy sz\u00f6vegszerkeszt\u0151ben, \u00e9s keresse meg ezeket az utas\u00edt\u00e1sokat a f\u00e1jl teteje k\u00f6zel\u00e9ben. Miut\u00e1n a megfelel\u0151 \"menuconfig\" be\u00e1ll\u00edt\u00e1sokat elv\u00e9gezte, nyomja meg a \"Q\" gombot a kil\u00e9p\u00e9shez, majd az \"Y\" gombot a ment\u00e9shez. Ezut\u00e1n futtassa: make Ha a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jl tetej\u00e9n tal\u00e1lhat\u00f3 megjegyz\u00e9sek egy\u00e9ni l\u00e9p\u00e9seket \u00edrnak le a \"flash\" v\u00e9gs\u0151 k\u00e9pnek a nyomtat\u00f3 vez\u00e9rl\u0151panel\u00e9re t\u00f6rt\u00e9n\u0151 \u00e9get\u00e9s\u00e9hez, akkor k\u00f6vesd ezeket a l\u00e9p\u00e9seket, majd folytasd az OctoPrint konfigur\u00e1l\u00e1sa l\u00e9p\u00e9sekkel. Ellenkez\u0151 esetben a k\u00f6vetkez\u0151 l\u00e9p\u00e9seket gyakran haszn\u00e1lj\u00e1k a nyomtat\u00f3 vez\u00e9rl\u0151lapj\u00e1nak \"flash\" \u00e9get\u00e9s\u00e9re. El\u0151sz\u00f6r meg kell hat\u00e1rozni a mikrokontrollerhez csatlakoztatott soros portot. Futtassa a k\u00f6vetkez\u0151ket: ls /dev/serial/by-id/* Valami hasonl\u00f3t kell kapnia az al\u00e1bbiakhoz: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 Gyakori, hogy minden nyomtat\u00f3nak saj\u00e1t egyedi soros port neve van. Ezt az egyedi nevet haszn\u00e1ljuk a mikrokontroller \u00e9get\u00e9s\u00e9re. Lehets\u00e9ges, hogy a fenti kimenetben t\u00f6bb sor is tal\u00e1lhat\u00f3 \u2013 ha igen, v\u00e1laszd ki a mikrovez\u00e9rl\u0151nek megfelel\u0151 sort (tov\u00e1bbi inform\u00e1ci\u00f3\u00e9rt l\u00e1sd a GYIK r\u00e9szt). Az \u00e1ltal\u00e1nos mikrokontrollerekn\u00e9l a k\u00f3dot valami hasonl\u00f3val lehet \u00e9getni: sudo service klipper stop make flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 sudo service klipper start Felt\u00e9tlen\u00fcl friss\u00edtse a FLASH_DEVICE eszk\u00f6zt a nyomtat\u00f3 egyedi soros portj\u00e1nak nev\u00e9vel. Amikor el\u0151sz\u00f6r \u00e9getsz, gy\u0151z\u0151dj meg arr\u00f3l, hogy az OctoPrint nincs k\u00f6zvetlen\u00fcl csatlakoztatva a nyomtat\u00f3hoz (az OctoPrint weboldalon a \"Kapcsolat\" r\u00e9szben kattints a \"Kapcsolat bont\u00e1sa\" gombra). Az OctoPrint be\u00e1ll\u00edt\u00e1sa a Klipper haszn\u00e1lat\u00e1hoz \u00b6 Az OctoPrint webszervert konfigur\u00e1lni kell, hogy kommunik\u00e1ljon a Klipper gazdag\u00e9p szoftver\u00e9vel. Egy webb\u00f6ng\u00e9sz\u0151vel jelentkezz be az OctoPrint weboldalra, majd konfigur\u00e1ld a k\u00f6vetkez\u0151 elemeket: L\u00e9pj a Be\u00e1ll\u00edt\u00e1sok lapra (a csavarkulcs ikon az oldal tetej\u00e9n). A \"Tov\u00e1bbi soros portok\" r\u00e9szben a \"Soros kapcsolat\" alatt add hozz\u00e1 a \"/tmp/printer\" elemet. Ezut\u00e1n kattints a \"Ment\u00e9s\" gombra. L\u00e9pj \u00fajra a Be\u00e1ll\u00edt\u00e1sok f\u00fclre, \u00e9s a \u201eSoros kapcsolat\u201d alatt m\u00f3dos\u00edtsd a \u201eSoros port\u201d be\u00e1ll\u00edt\u00e1st \u201e/tmp/printer\u201d-re. A Be\u00e1ll\u00edt\u00e1sok lapon l\u00e9pj a \u201eViselked\u00e9s\u201d allapra, \u00e9s v\u00e1laszd a \u201eFolyamatban l\u00e9v\u0151 nyomtat\u00e1s t\u00f6rl\u00e9se, de tov\u00e1bbra is csatlakozva maradjon a nyomtat\u00f3hoz\u201d lehet\u0151s\u00e9get. Kattints a \"Ment\u00e9s\" gombra. A f\u0151oldalon, a \u201eKapcsolat\u201d r\u00e9szben (az oldal bal fels\u0151 sark\u00e1ban) gy\u0151z\u0151dj meg arr\u00f3l, hogy a \u201eSoros Port\u201d be\u00e1ll\u00edt\u00e1sa \u201e/tmp/printer\u201d, majd kattints a \u201eCsatlakoz\u00e1s\u201d gombra. (Ha a \u201e/tmp/printer\u201d nem el\u00e9rhet\u0151, pr\u00f3b\u00e1ld meg \u00fajrat\u00f6lteni az oldalt.) A csatlakoz\u00e1s ut\u00e1n l\u00e9pj a \"Terminal\" f\u00fclre, \u00e9s \u00edrd be a \"status\" kifejez\u00e9st (id\u00e9z\u0151jelek n\u00e9lk\u00fcl) a parancsbeviteli mez\u0151be, majd kattints a \"K\u00fcld\u00e9s\" gombra. A termin\u00e1lablak val\u00f3sz\u00edn\u0171leg hib\u00e1t jelez a konfigur\u00e1ci\u00f3s f\u00e1jl megnyit\u00e1sakor \u2013 ez azt jelenti, hogy az OctoPrint sikeresen kommunik\u00e1l a Klipperrel. Tov\u00e1bb a k\u00f6vetkez\u0151 r\u00e9szhez. A Klipper be\u00e1ll\u00edt\u00e1sa \u00b6 A k\u00f6vetkez\u0151 l\u00e9p\u00e9s a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jl \u00e1tm\u00e1sol\u00e1sa a Raspberry Pi-re. Vitathatatlanul a Klipper konfigur\u00e1ci\u00f3s f\u00e1jl be\u00e1ll\u00edt\u00e1s\u00e1nak legegyszer\u0171bb m\u00f3dja egy olyan asztali szerkeszt\u0151 haszn\u00e1lata, amely t\u00e1mogatja a f\u00e1jlok szerkeszt\u00e9s\u00e9t az \"scp\" \u00e9s/vagy \"sftp\" protokollokon kereszt\u00fcl. Vannak szabadon el\u00e9rhet\u0151 eszk\u00f6z\u00f6k, amelyek t\u00e1mogatj\u00e1k ezt (pl. Notepad++, WinSCP \u00e9s Cyberduck). T\u00f6ltse be a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1t a szerkeszt\u0151programba, majd mentsd el egy \"printer.cfg\" nev\u0171 f\u00e1jlk\u00e9nt a pi felhaszn\u00e1l\u00f3 home k\u00f6nyvt\u00e1r\u00e1ba (pl. /home/pi/printer.cfg). Alternat\u00edvak\u00e9nt a f\u00e1jlt k\u00f6zvetlen\u00fcl a Raspberry Pi-n is lehet m\u00e1solni \u00e9s szerkeszteni SSH-n kereszt\u00fcl. Ez valahogy \u00edgy n\u00e9zhet ki (\u00fcgyelj\u00fcnk arra, hogy a parancsot friss\u00edts\u00fck a megfelel\u0151 nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jln\u00e9vvel): cp ~/klipper/config/example-cartesian.cfg ~/printer.cfg nano ~/printer.cfg Gyakori, hogy minden nyomtat\u00f3nak saj\u00e1t egyedi neve van a mikrokontroller sz\u00e1m\u00e1ra. A n\u00e9v a Klipper \u00e9get\u00e9se ut\u00e1n megv\u00e1ltozhat, ez\u00e9rt futtassa \u00fajra ezeket a l\u00e9p\u00e9seket, m\u00e9g akkor is, ha m\u00e1r az \u00e9get\u00e9skor elv\u00e9gezte \u0151ket. Futtat\u00e1s: ls /dev/serial/by-id/* Valami hasonl\u00f3t kell kapnia az al\u00e1bbiakhoz: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 Ezut\u00e1n friss\u00edtse a konfigur\u00e1ci\u00f3s f\u00e1jlt az egyedi n\u00e9vvel. P\u00e9ld\u00e1ul friss\u00edtse az [mcu] r\u00e9szt, hogy valami hasonl\u00f3t kapjon: [mcu] serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 A f\u00e1jl l\u00e9trehoz\u00e1sa \u00e9s szerkeszt\u00e9se ut\u00e1n az OctoPrint webes termin\u00e1lj\u00e1n ki kell adni egy \"\u00fajraind\u00edt\u00e1s\" parancsot a konfigur\u00e1ci\u00f3 bet\u00f6lt\u00e9s\u00e9hez. A \"status\" parancs azt jelenti, hogy a nyomtat\u00f3 k\u00e9szen \u00e1ll, ha a Klipper config f\u00e1jl sikeresen beolvas\u00e1sra ker\u00fclt, \u00e9s a mikrokontroller sikeresen meg lett tal\u00e1lva \u00e9s konfigur\u00e1lva. A nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1nak testreszab\u00e1sakor nem ritka, hogy a Klipper konfigur\u00e1ci\u00f3s hib\u00e1t jelez. Ha hiba l\u00e9p fel, v\u00e9gezd el a sz\u00fcks\u00e9ges jav\u00edt\u00e1sokat a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1ban, \u00e9s add ki az \"\u00fajraind\u00edt\u00e1s\" parancsot, am\u00edg az \"\u00e1llapot\" nem jelzi, hogy a nyomtat\u00f3 k\u00e9szen \u00e1ll. A Klipper az OctoPrint termin\u00e1llapon kereszt\u00fcl jelenti a hiba\u00fczeneteket. A \"status\" paranccsal a hiba\u00fczenetek \u00fajra jelenthet\u0151k. A Klipper alap\u00e9rtelmezett ind\u00edt\u00f3szkriptje egy napl\u00f3t is elhelyez a /tmp/klippy.log f\u00e1jlban, amely r\u00e9szletesebb inform\u00e1ci\u00f3kat tartalmaz. Miut\u00e1n a Klipper jelenti, hogy a nyomtat\u00f3 k\u00e9szen \u00e1ll, folytasd a konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9s c\u00edm\u0171 dokumentumal, hogy elv\u00e9gezz n\u00e9h\u00e1ny alapvet\u0151 ellen\u0151rz\u00e9st a config f\u00e1jlban l\u00e9v\u0151 defin\u00edci\u00f3kon. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a f\u0151 dokument\u00e1ci\u00f3s hivatkoz\u00e1s c\u00edm\u0171 r\u00e9sz.","title":"Telep\u00edt\u00e9s"},{"location":"Installation.html#telepites","text":"Ezek az utas\u00edt\u00e1sok felt\u00e9telezik, hogy a szoftver egy Raspberry Pi sz\u00e1m\u00edt\u00f3g\u00e9pen fut az OctoPrint-el egy\u00fctt. Javasoljuk, hogy egy Raspberry Pi 2, 3 vagy 4-es sz\u00e1m\u00edt\u00f3g\u00e9pet haszn\u00e1lj gazdag\u00e9pk\u00e9nt (m\u00e1s g\u00e9pekre vonatkoz\u00f3an l\u00e1sd a GYIK c\u00edm\u0171 r\u00e9szt).","title":"Telep\u00edt\u00e9s"},{"location":"Installation.html#klipper-konfiguracios-fajl-beszerzese","text":"A legt\u00f6bb Klipper be\u00e1ll\u00edt\u00e1st egy \"nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jl\" hat\u00e1rozza meg, amelyet a Raspberry Pi t\u00e1rol. A megfelel\u0151 konfigur\u00e1ci\u00f3s f\u00e1jlt gyakran \u00fagy tal\u00e1lhatjuk meg, hogy a Klipper config k\u00f6nyvt\u00e1r\u00e1ban keres\u00fcnk egy \"printer-\" el\u0151taggal kezd\u0151d\u0151 f\u00e1jlt, amely megfelel a c\u00e9lnyomtat\u00f3nak. A Klipper konfigur\u00e1ci\u00f3s f\u00e1jl tartalmazza a nyomtat\u00f3ra vonatkoz\u00f3 technikai inform\u00e1ci\u00f3kat, amelyekre a telep\u00edt\u00e9s sor\u00e1n sz\u00fcks\u00e9g lesz. Ha nincs megfelel\u0151 nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jl a Klipper config k\u00f6nyvt\u00e1rban, akkor keresse meg a nyomtat\u00f3 gy\u00e1rt\u00f3j\u00e1nak weboldal\u00e1t, hogy van-e megfelel\u0151 Klipper konfigur\u00e1ci\u00f3s f\u00e1jljuk. Ha nem tal\u00e1lja a nyomtat\u00f3hoz tartoz\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlt, de a nyomtat\u00f3 vez\u00e9rl\u0151panel\u00e9nek t\u00edpusa ismert, akkor keressen egy megfelel\u0151 config f\u00e1jlt , amely \"generic-\" el\u0151taggal kezd\u0151dik. Ezekkel a nyomtat\u00f3 vez\u00e9rl\u0151panel p\u00e9ldaf\u00e1jlokkal sikeresen elv\u00e9gezhet\u0151 a kezdeti telep\u00edt\u00e9s, de a nyomtat\u00f3 teljes funkcionalit\u00e1s\u00e1nak el\u00e9r\u00e9s\u00e9hez n\u00e9mi testreszab\u00e1sra lesz sz\u00fcks\u00e9g. Lehet\u0151s\u00e9g van \u00faj nyomtat\u00f3konfigur\u00e1ci\u00f3 null\u00e1r\u00f3l t\u00f6rt\u00e9n\u0151 meghat\u00e1roz\u00e1s\u00e1ra is. Ehhez azonban jelent\u0151s m\u0171szaki ismeretekre van sz\u00fcks\u00e9g a nyomtat\u00f3val \u00e9s annak elektronik\u00e1j\u00e1val kapcsolatban. A legt\u00f6bb felhaszn\u00e1l\u00f3nak aj\u00e1nlott, hogy egy megfelel\u0151 konfigur\u00e1ci\u00f3s f\u00e1jllal kezd. Ha \u00faj, egy\u00e9ni nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlt hoz l\u00e9tre, akkor a legk\u00f6zelebbi p\u00e9ld\u00e1val config f\u00e1jl kezd, \u00e9s tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt haszn\u00e1ld a Klipper konfigur\u00e1ci\u00f3s hivatkoz\u00e1s c\u00edm\u0171 dokumentumot.","title":"Klipper konfigur\u00e1ci\u00f3s f\u00e1jl beszerz\u00e9se"},{"location":"Installation.html#os-kepfajl-elokeszitese","text":"Kezd az OctoPi telep\u00edt\u00e9s\u00e9vel a Raspberry Pi sz\u00e1m\u00edt\u00f3g\u00e9p\u00e9re. Haszn\u00e1ld az OctoPi v0.17.0-s vagy \u00fajabb verzi\u00f3j\u00e1t. A kiad\u00e1sokkal kapcsolatos inform\u00e1ci\u00f3k\u00e9rt tekintsd meg az OctoPi-kiad\u00e1sokat . Ellen\u0151rizni kell, hogy az OctoPi elindul-e, \u00e9s hogy az OctoPrint webszerver m\u0171k\u00f6dik-e. Miut\u00e1n csatlakozott az OctoPrint weboldalhoz, k\u00f6vesse az utas\u00edt\u00e1sokat az OctoPrint 1.4.2-es vagy \u00fajabb verzi\u00f3j\u00e1ra val\u00f3 friss\u00edt\u00e9s\u00e9hez. Az OctoPi telep\u00edt\u00e9se \u00e9s az OctoPrint friss\u00edt\u00e9se ut\u00e1n n\u00e9h\u00e1ny rendszerparancs futtat\u00e1s\u00e1hoz sz\u00fcks\u00e9g lesz az \"SSH\" kapcsolatra a c\u00e9lg\u00e9phez. Ha Linux vagy MacOS asztali sz\u00e1m\u00edt\u00f3g\u00e9pet haszn\u00e1l, akkor az \"SSH\" szoftvernek m\u00e1r telep\u00edtve kell lennie a g\u00e9pen. Vannak ingyenes ssh-kliensek m\u00e1s asztali sz\u00e1m\u00edt\u00f3g\u00e9pekhez (pl. PuTTY ). Az SSH seg\u00e9dprogrammal csatlakozzon a Raspberry Pi-hez (ssh pi@octopi -- a jelsz\u00f3 \"raspberry\"), \u00e9s futtassa a k\u00f6vetkez\u0151 parancsokat: git clone https://github.com/Klipper3d/klipper ./klipper/scripts/install-octopi.sh A fentiek let\u00f6ltik a Klippert, telep\u00edtenek n\u00e9h\u00e1ny rendszer\u00f6sszetev\u0151t, be\u00e1ll\u00edtj\u00e1k a Klippert, hogy a rendszer indul\u00e1sakor fusson, \u00e9s elind\u00edtja a Klipper gazdag\u00e9p szoftver\u00e9t. Internetkapcsolatra lesz sz\u00fcks\u00e9g, \u00e9s n\u00e9h\u00e1ny percet is ig\u00e9nybe vehet.","title":"OS k\u00e9pf\u00e1jl el\u0151k\u00e9sz\u00edt\u00e9se"},{"location":"Installation.html#a-mikrokontroller-felepitese-es-egetese","text":"A mikrokontroller k\u00f3dj\u00e1nak leford\u00edt\u00e1s\u00e1hoz futtassa ezeket a parancsokat a Raspberry Pi-n: cd ~/klipper/ make menuconfig A nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jl tetej\u00e9n tal\u00e1lhat\u00f3 megjegyz\u00e9seknek le kell \u00edrniuk a be\u00e1ll\u00edt\u00e1sokat, amelyeket a \"make menuconfig\" sor\u00e1n kell be\u00e1ll\u00edtani. Nyissa meg a f\u00e1jlt egy webb\u00f6ng\u00e9sz\u0151ben vagy sz\u00f6vegszerkeszt\u0151ben, \u00e9s keresse meg ezeket az utas\u00edt\u00e1sokat a f\u00e1jl teteje k\u00f6zel\u00e9ben. Miut\u00e1n a megfelel\u0151 \"menuconfig\" be\u00e1ll\u00edt\u00e1sokat elv\u00e9gezte, nyomja meg a \"Q\" gombot a kil\u00e9p\u00e9shez, majd az \"Y\" gombot a ment\u00e9shez. Ezut\u00e1n futtassa: make Ha a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jl tetej\u00e9n tal\u00e1lhat\u00f3 megjegyz\u00e9sek egy\u00e9ni l\u00e9p\u00e9seket \u00edrnak le a \"flash\" v\u00e9gs\u0151 k\u00e9pnek a nyomtat\u00f3 vez\u00e9rl\u0151panel\u00e9re t\u00f6rt\u00e9n\u0151 \u00e9get\u00e9s\u00e9hez, akkor k\u00f6vesd ezeket a l\u00e9p\u00e9seket, majd folytasd az OctoPrint konfigur\u00e1l\u00e1sa l\u00e9p\u00e9sekkel. Ellenkez\u0151 esetben a k\u00f6vetkez\u0151 l\u00e9p\u00e9seket gyakran haszn\u00e1lj\u00e1k a nyomtat\u00f3 vez\u00e9rl\u0151lapj\u00e1nak \"flash\" \u00e9get\u00e9s\u00e9re. El\u0151sz\u00f6r meg kell hat\u00e1rozni a mikrokontrollerhez csatlakoztatott soros portot. Futtassa a k\u00f6vetkez\u0151ket: ls /dev/serial/by-id/* Valami hasonl\u00f3t kell kapnia az al\u00e1bbiakhoz: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 Gyakori, hogy minden nyomtat\u00f3nak saj\u00e1t egyedi soros port neve van. Ezt az egyedi nevet haszn\u00e1ljuk a mikrokontroller \u00e9get\u00e9s\u00e9re. Lehets\u00e9ges, hogy a fenti kimenetben t\u00f6bb sor is tal\u00e1lhat\u00f3 \u2013 ha igen, v\u00e1laszd ki a mikrovez\u00e9rl\u0151nek megfelel\u0151 sort (tov\u00e1bbi inform\u00e1ci\u00f3\u00e9rt l\u00e1sd a GYIK r\u00e9szt). Az \u00e1ltal\u00e1nos mikrokontrollerekn\u00e9l a k\u00f3dot valami hasonl\u00f3val lehet \u00e9getni: sudo service klipper stop make flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 sudo service klipper start Felt\u00e9tlen\u00fcl friss\u00edtse a FLASH_DEVICE eszk\u00f6zt a nyomtat\u00f3 egyedi soros portj\u00e1nak nev\u00e9vel. Amikor el\u0151sz\u00f6r \u00e9getsz, gy\u0151z\u0151dj meg arr\u00f3l, hogy az OctoPrint nincs k\u00f6zvetlen\u00fcl csatlakoztatva a nyomtat\u00f3hoz (az OctoPrint weboldalon a \"Kapcsolat\" r\u00e9szben kattints a \"Kapcsolat bont\u00e1sa\" gombra).","title":"A mikrokontroller fel\u00e9p\u00edt\u00e9se \u00e9s \u00e9get\u00e9se"},{"location":"Installation.html#az-octoprint-beallitasa-a-klipper-hasznalatahoz","text":"Az OctoPrint webszervert konfigur\u00e1lni kell, hogy kommunik\u00e1ljon a Klipper gazdag\u00e9p szoftver\u00e9vel. Egy webb\u00f6ng\u00e9sz\u0151vel jelentkezz be az OctoPrint weboldalra, majd konfigur\u00e1ld a k\u00f6vetkez\u0151 elemeket: L\u00e9pj a Be\u00e1ll\u00edt\u00e1sok lapra (a csavarkulcs ikon az oldal tetej\u00e9n). A \"Tov\u00e1bbi soros portok\" r\u00e9szben a \"Soros kapcsolat\" alatt add hozz\u00e1 a \"/tmp/printer\" elemet. Ezut\u00e1n kattints a \"Ment\u00e9s\" gombra. L\u00e9pj \u00fajra a Be\u00e1ll\u00edt\u00e1sok f\u00fclre, \u00e9s a \u201eSoros kapcsolat\u201d alatt m\u00f3dos\u00edtsd a \u201eSoros port\u201d be\u00e1ll\u00edt\u00e1st \u201e/tmp/printer\u201d-re. A Be\u00e1ll\u00edt\u00e1sok lapon l\u00e9pj a \u201eViselked\u00e9s\u201d allapra, \u00e9s v\u00e1laszd a \u201eFolyamatban l\u00e9v\u0151 nyomtat\u00e1s t\u00f6rl\u00e9se, de tov\u00e1bbra is csatlakozva maradjon a nyomtat\u00f3hoz\u201d lehet\u0151s\u00e9get. Kattints a \"Ment\u00e9s\" gombra. A f\u0151oldalon, a \u201eKapcsolat\u201d r\u00e9szben (az oldal bal fels\u0151 sark\u00e1ban) gy\u0151z\u0151dj meg arr\u00f3l, hogy a \u201eSoros Port\u201d be\u00e1ll\u00edt\u00e1sa \u201e/tmp/printer\u201d, majd kattints a \u201eCsatlakoz\u00e1s\u201d gombra. (Ha a \u201e/tmp/printer\u201d nem el\u00e9rhet\u0151, pr\u00f3b\u00e1ld meg \u00fajrat\u00f6lteni az oldalt.) A csatlakoz\u00e1s ut\u00e1n l\u00e9pj a \"Terminal\" f\u00fclre, \u00e9s \u00edrd be a \"status\" kifejez\u00e9st (id\u00e9z\u0151jelek n\u00e9lk\u00fcl) a parancsbeviteli mez\u0151be, majd kattints a \"K\u00fcld\u00e9s\" gombra. A termin\u00e1lablak val\u00f3sz\u00edn\u0171leg hib\u00e1t jelez a konfigur\u00e1ci\u00f3s f\u00e1jl megnyit\u00e1sakor \u2013 ez azt jelenti, hogy az OctoPrint sikeresen kommunik\u00e1l a Klipperrel. Tov\u00e1bb a k\u00f6vetkez\u0151 r\u00e9szhez.","title":"Az OctoPrint be\u00e1ll\u00edt\u00e1sa a Klipper haszn\u00e1lat\u00e1hoz"},{"location":"Installation.html#a-klipper-beallitasa","text":"A k\u00f6vetkez\u0151 l\u00e9p\u00e9s a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jl \u00e1tm\u00e1sol\u00e1sa a Raspberry Pi-re. Vitathatatlanul a Klipper konfigur\u00e1ci\u00f3s f\u00e1jl be\u00e1ll\u00edt\u00e1s\u00e1nak legegyszer\u0171bb m\u00f3dja egy olyan asztali szerkeszt\u0151 haszn\u00e1lata, amely t\u00e1mogatja a f\u00e1jlok szerkeszt\u00e9s\u00e9t az \"scp\" \u00e9s/vagy \"sftp\" protokollokon kereszt\u00fcl. Vannak szabadon el\u00e9rhet\u0151 eszk\u00f6z\u00f6k, amelyek t\u00e1mogatj\u00e1k ezt (pl. Notepad++, WinSCP \u00e9s Cyberduck). T\u00f6ltse be a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1t a szerkeszt\u0151programba, majd mentsd el egy \"printer.cfg\" nev\u0171 f\u00e1jlk\u00e9nt a pi felhaszn\u00e1l\u00f3 home k\u00f6nyvt\u00e1r\u00e1ba (pl. /home/pi/printer.cfg). Alternat\u00edvak\u00e9nt a f\u00e1jlt k\u00f6zvetlen\u00fcl a Raspberry Pi-n is lehet m\u00e1solni \u00e9s szerkeszteni SSH-n kereszt\u00fcl. Ez valahogy \u00edgy n\u00e9zhet ki (\u00fcgyelj\u00fcnk arra, hogy a parancsot friss\u00edts\u00fck a megfelel\u0151 nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jln\u00e9vvel): cp ~/klipper/config/example-cartesian.cfg ~/printer.cfg nano ~/printer.cfg Gyakori, hogy minden nyomtat\u00f3nak saj\u00e1t egyedi neve van a mikrokontroller sz\u00e1m\u00e1ra. A n\u00e9v a Klipper \u00e9get\u00e9se ut\u00e1n megv\u00e1ltozhat, ez\u00e9rt futtassa \u00fajra ezeket a l\u00e9p\u00e9seket, m\u00e9g akkor is, ha m\u00e1r az \u00e9get\u00e9skor elv\u00e9gezte \u0151ket. Futtat\u00e1s: ls /dev/serial/by-id/* Valami hasonl\u00f3t kell kapnia az al\u00e1bbiakhoz: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 Ezut\u00e1n friss\u00edtse a konfigur\u00e1ci\u00f3s f\u00e1jlt az egyedi n\u00e9vvel. P\u00e9ld\u00e1ul friss\u00edtse az [mcu] r\u00e9szt, hogy valami hasonl\u00f3t kapjon: [mcu] serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 A f\u00e1jl l\u00e9trehoz\u00e1sa \u00e9s szerkeszt\u00e9se ut\u00e1n az OctoPrint webes termin\u00e1lj\u00e1n ki kell adni egy \"\u00fajraind\u00edt\u00e1s\" parancsot a konfigur\u00e1ci\u00f3 bet\u00f6lt\u00e9s\u00e9hez. A \"status\" parancs azt jelenti, hogy a nyomtat\u00f3 k\u00e9szen \u00e1ll, ha a Klipper config f\u00e1jl sikeresen beolvas\u00e1sra ker\u00fclt, \u00e9s a mikrokontroller sikeresen meg lett tal\u00e1lva \u00e9s konfigur\u00e1lva. A nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1nak testreszab\u00e1sakor nem ritka, hogy a Klipper konfigur\u00e1ci\u00f3s hib\u00e1t jelez. Ha hiba l\u00e9p fel, v\u00e9gezd el a sz\u00fcks\u00e9ges jav\u00edt\u00e1sokat a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1ban, \u00e9s add ki az \"\u00fajraind\u00edt\u00e1s\" parancsot, am\u00edg az \"\u00e1llapot\" nem jelzi, hogy a nyomtat\u00f3 k\u00e9szen \u00e1ll. A Klipper az OctoPrint termin\u00e1llapon kereszt\u00fcl jelenti a hiba\u00fczeneteket. A \"status\" paranccsal a hiba\u00fczenetek \u00fajra jelenthet\u0151k. A Klipper alap\u00e9rtelmezett ind\u00edt\u00f3szkriptje egy napl\u00f3t is elhelyez a /tmp/klippy.log f\u00e1jlban, amely r\u00e9szletesebb inform\u00e1ci\u00f3kat tartalmaz. Miut\u00e1n a Klipper jelenti, hogy a nyomtat\u00f3 k\u00e9szen \u00e1ll, folytasd a konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9s c\u00edm\u0171 dokumentumal, hogy elv\u00e9gezz n\u00e9h\u00e1ny alapvet\u0151 ellen\u0151rz\u00e9st a config f\u00e1jlban l\u00e9v\u0151 defin\u00edci\u00f3kon. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a f\u0151 dokument\u00e1ci\u00f3s hivatkoz\u00e1s c\u00edm\u0171 r\u00e9sz.","title":"A Klipper be\u00e1ll\u00edt\u00e1sa"},{"location":"Kinematics.html","text":"Kinematika \u00b6 Ez a dokumentum \u00e1ttekint\u00e9st ny\u00fajt arr\u00f3l, hogy a Klipper hogyan val\u00f3s\u00edtja meg a robot mozg\u00e1s\u00e1t (a kinematika ). A tartalom mind a Klipper szoftveren dolgozni k\u00edv\u00e1n\u00f3 fejleszt\u0151k, mind a g\u00e9p\u00fck mechanik\u00e1j\u00e1nak jobb meg\u00e9rt\u00e9se ir\u00e1nt \u00e9rdekl\u0151d\u0151 felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra \u00e9rdekes lehet. Gyorsul\u00e1s \u00b6 A Klipper \u00e1lland\u00f3 gyors\u00edt\u00e1si rendszert alkalmaz, amikor a nyomtat\u00f3fej sebess\u00e9get v\u00e1ltoztat. A sebess\u00e9g fokozatosan v\u00e1ltozik az \u00faj sebess\u00e9gre, ahelyett, hogy hirtelen r\u00e1ngat\u00f3zna. A Klipper mindig kik\u00e9nyszer\u00edti a gyorsul\u00e1st a nyomtat\u00f3fej \u00e9s a nyomtat\u00e1s k\u00f6z\u00f6tt. Az extruderb\u0151l kil\u00e9p\u0151 sz\u00e1l meglehet\u0151sen t\u00f6r\u00e9keny lehet. A gyors r\u00e1ng\u00e1sok \u00e9s/vagy az extruder \u00e1raml\u00e1s\u00e1nak v\u00e1ltoz\u00e1sa rossz min\u0151s\u00e9ghez \u00e9s rossz tapad\u00e1shoz vezet. M\u00e9g ha nem is extrud\u00e1l, ha a nyomtat\u00f3fej a nyomtat\u00e1ssal egy magass\u00e1gban van, akkor a fej gyors r\u00e1ng\u00e1sa a nemr\u00e9g letapadt anyag felv\u00e1l\u00e1s\u00e1t okozhatja. A nyomtat\u00f3fej sebess\u00e9gv\u00e1ltoztat\u00e1s\u00e1nak korl\u00e1toz\u00e1sa (a nyomtat\u00e1shoz k\u00e9pest) cs\u00f6kkenti a nyomat felv\u00e1l\u00e1s\u00e1nak kock\u00e1zat\u00e1t. Fontos a gyorsul\u00e1s korl\u00e1toz\u00e1sa is, hogy a l\u00e9ptet\u0151motorok ne ugorjanak, \u00e9s ne terhelj\u00e9k t\u00falzottan a g\u00e9pet. A Klipper a nyomtat\u00f3fej gyorsul\u00e1s\u00e1nak korl\u00e1toz\u00e1s\u00e1val korl\u00e1tozza az egyes l\u00e9ptet\u0151motorok nyomat\u00e9k\u00e1t. A nyomtat\u00f3fej gyorsul\u00e1s\u00e1nak kik\u00e9nyszer\u00edt\u00e9se term\u00e9szetesen a nyomtat\u00f3fejet mozgat\u00f3 l\u00e9ptet\u0151motorok nyomat\u00e9k\u00e1t is korl\u00e1tozza (a ford\u00edtottja nem mindig igaz). A Klipper \u00e1lland\u00f3 gyorsul\u00e1st val\u00f3s\u00edt meg. Az \u00e1lland\u00f3 gyorsul\u00e1s legfontosabb k\u00e9plete a k\u00f6vetkez\u0151: velocity(time) = start_velocity + accel*time Trap\u00e9z gener\u00e1tor \u00b6 A Klipper hagyom\u00e1nyos \"trap\u00e9zgener\u00e1tort\" haszn\u00e1l az egyes mozg\u00e1sok modellez\u00e9s\u00e9re. Minden l\u00e9p\u00e9snek van kezd\u0151sebess\u00e9ge, \u00e1lland\u00f3 gyors\u00edt\u00e1s mellett utaz\u00f3sebess\u00e9gre gyorsul, \u00e1lland\u00f3 sebess\u00e9ggel utazik, majd \u00e1lland\u00f3 gyors\u00edt\u00e1ssal lelass\u00edt a v\u00e9gsebess\u00e9gre . Ezt \"trap\u00e9zgener\u00e1tornak\" nevezik, mert a mozg\u00e1s sebess\u00e9gdiagramja \u00fagy n\u00e9z ki, mint egy trap\u00e9z. Az utaz\u00f3sebess\u00e9g mindig nagyobb vagy egyenl\u0151 a kezd\u0151- \u00e9s a v\u00e9gsebess\u00e9ggel. A gyorsul\u00e1si f\u00e1zis lehet nulla id\u0151tartam\u00fa (ha a kezd\u0151sebess\u00e9g egyenl\u0151 az utaz\u00f3sebess\u00e9ggel), az utaz\u00e1si f\u00e1zis lehet nulla id\u0151tartam\u00fa (ha a mozg\u00e1s a gyorsul\u00e1s ut\u00e1n azonnal lassulni kezd), \u00e9s/vagy a lassul\u00e1si f\u00e1zis lehet nulla id\u0151tartam\u00fa (ha a v\u00e9gsebess\u00e9g egyenl\u0151 az utaz\u00f3sebess\u00e9ggel). El\u0151retekint\u0151 \u00b6 A \"look-ahead\" rendszert a kanyarsebess\u00e9gek meghat\u00e1roz\u00e1s\u00e1ra haszn\u00e1lj\u00e1k a mozg\u00e1sok k\u00f6z\u00f6tt. N\u00e9zz\u00fck meg a k\u00f6vetkez\u0151 k\u00e9t mozg\u00e1st, amelyek egy X-Y-s\u00edkon helyezkednek el: A fenti helyzetben lehets\u00e9ges az els\u0151 l\u00e9p\u00e9s ut\u00e1n teljesen lelass\u00edtani, majd a k\u00f6vetkez\u0151 l\u00e9p\u00e9s kezdet\u00e9n teljesen felgyors\u00edtani, de ez nem ide\u00e1lis, mivel ez a sok gyors\u00edt\u00e1s \u00e9s lass\u00edt\u00e1s jelent\u0151sen megn\u00f6veln\u00e9 a nyomtat\u00e1si id\u0151t, \u00e9s az anyag\u00e1raml\u00e1s gyakori v\u00e1ltoz\u00e1sa rossz nyomtat\u00e1si min\u0151s\u00e9get eredm\u00e9nyezne. Ennek megold\u00e1s\u00e1ra a \"look-ahead\" mechanizmus t\u00f6bb bej\u00f6v\u0151 mozg\u00e1st sorba \u00e1ll\u00edt, \u00e9s elemzi a mozg\u00e1sok k\u00f6z\u00f6tti sz\u00f6geket, hogy meghat\u00e1rozzon egy \u00e9sszer\u0171 sebess\u00e9get, amelyet a k\u00e9t mozg\u00e1s k\u00f6z\u00f6tti \"keresztez\u0151d\u00e9s\" alatt lehet el\u00e9rni. Ha a k\u00f6vetkez\u0151 l\u00e9p\u00e9s k\u00f6zel azonos ir\u00e1nyba mutat, akkor a fejnek csak egy kicsit kell lass\u00edtania (ha egy\u00e1ltal\u00e1n kell). Ha azonban a k\u00f6vetkez\u0151 mozdulat hegyessz\u00f6get z\u00e1r be (a fej a k\u00f6vetkez\u0151 mozdulatn\u00e1l majdnem ford\u00edtott ir\u00e1nyban fog haladni), akkor csak egy kis csom\u00f3ponti sebess\u00e9g a megengedett. A csom\u00f3ponti sebess\u00e9geket a \"k\u00f6zel\u00edt\u0151 centripet\u00e1lis gyorsul\u00e1s\" seg\u00edts\u00e9g\u00e9vel hat\u00e1rozzuk meg. Legjobb a szerz\u0151 \u00e1ltal le\u00edrt . A Klipperben azonban a csom\u00f3ponti sebess\u00e9gek \u00fagy ker\u00fclnek be\u00e1ll\u00edt\u00e1sra, hogy megadjuk a 90\u00b0-os sarok k\u00edv\u00e1nt sebess\u00e9g\u00e9t (a \"n\u00e9gyzetes saroksebess\u00e9g\"), \u00e9s a t\u00f6bbi sz\u00f6gre vonatkoz\u00f3 csom\u00f3ponti sebess\u00e9geket ebb\u0151l vezetj\u00fck le. Kulcsk\u00e9plet az el\u0151retekint\u00e9shez: end_velocity^2 = start_velocity^2 + 2*accel*move_distance Sim\u00edtott el\u0151retekint\u00e9s \u00b6 A Klipper egy olyan mechanizmust is megval\u00f3s\u00edt, amely kisim\u00edtja a r\u00f6vid \"cikkcakk\" mozg\u00e1sokat. Tekints\u00fck a k\u00f6vetkez\u0151 mozg\u00e1sokat: A fentiekben a gyors\u00edt\u00e1sr\u00f3l lass\u00edt\u00e1sra t\u00f6rt\u00e9n\u0151 gyakori v\u00e1lt\u00e1s a g\u00e9p rezg\u00e9s\u00e9t okozhatja, ami a g\u00e9pet terheli, \u00e9s n\u00f6veli a zajt. Ennek cs\u00f6kkent\u00e9se \u00e9rdek\u00e9ben a Klipper mind a rendszeres mozg\u00e1si gyorsul\u00e1st, mind pedig a virtu\u00e1lis \"gyors\u00edt\u00e1sr\u00f3l lass\u00edt\u00e1sra\" sebess\u00e9get k\u00f6veti. Ezzel a rendszerrel a nyomtat\u00f3 mozg\u00e1s\u00e1nak kiegyenl\u00edt\u00e9se \u00e9rdek\u00e9ben a r\u00f6vid \"cikkcakkos\" mozg\u00e1sok cs\u00facssebess\u00e9ge korl\u00e1tozott: Konkr\u00e9tan, a k\u00f3d kisz\u00e1m\u00edtja, hogy mi lenne az egyes mozg\u00e1sok sebess\u00e9ge, ha az adott virtu\u00e1lis \"gyorsul\u00e1s-lassul\u00e1s\" sebess\u00e9gre korl\u00e1toz\u00f3dna (alap\u00e9rtelmez\u00e9s szerint a norm\u00e1l gyorsul\u00e1si sebess\u00e9g fele). A fenti k\u00e9pen a szaggatott sz\u00fcrke vonalak ezt a virtu\u00e1lis gyorsul\u00e1si sebess\u00e9get jel\u00f6lik az els\u0151 mozdulatn\u00e1l. Ha egy mozg\u00e1s nem tudja el\u00e9rni a teljes utaz\u00f3sebess\u00e9g\u00e9t ezzel a virtu\u00e1lis gyorsul\u00e1si sebess\u00e9ggel, akkor a v\u00e9gsebess\u00e9ge arra a maxim\u00e1lis sebess\u00e9gre cs\u00f6kken, amelyet ezzel a virtu\u00e1lis gyorsul\u00e1si sebess\u00e9ggel el\u00e9rhetne. A legt\u00f6bb mozg\u00e1s eset\u00e9ben ez a hat\u00e1r\u00e9rt\u00e9k a mozg\u00e1s megl\u00e9v\u0151 hat\u00e1r\u00e9rt\u00e9kein\u00e9l vagy azok felett lesz, \u00e9s nem v\u00e1ltozik a viselked\u00e9s. R\u00f6vid cikk-cakk mozg\u00e1sok eset\u00e9n azonban ez a hat\u00e1r cs\u00f6kkenti a cs\u00facssebess\u00e9get. Vedd figyelembe, hogy ez nem v\u00e1ltoztatja meg a t\u00e9nyleges gyorsul\u00e1st a mozg\u00e1son bel\u00fcl. A mozg\u00e1s tov\u00e1bbra is a norm\u00e1l gyorsul\u00e1si s\u00e9m\u00e1t haszn\u00e1lja a be\u00e1ll\u00edtott cs\u00facssebess\u00e9gig. L\u00e9p\u00e9sek gener\u00e1l\u00e1sa \u00b6 Miut\u00e1n a look-ahead folyamat befejez\u0151d\u00f6tt, a nyomtat\u00f3fej mozg\u00e1sa az adott mozg\u00e1shoz teljes m\u00e9rt\u00e9kben ismert (id\u0151, kezd\u0151 poz\u00edci\u00f3, v\u00e9gpoz\u00edci\u00f3, sebess\u00e9g minden egyes ponton), \u00e9s lehets\u00e9ges a l\u00e9p\u00e9sid\u0151k gener\u00e1l\u00e1sa a mozg\u00e1shoz. Ez a folyamat a Klipper k\u00f3dban a \"kinematikai oszt\u00e1lyokon\" bel\u00fcl t\u00f6rt\u00e9nik. Ezeken a kinematikai oszt\u00e1lyokon k\u00edv\u00fcl minden millim\u00e9terben, m\u00e1sodpercben \u00e9s cartesian koordin\u00e1ta t\u00e9rben k\u00f6vethet\u0151. A kinematikai oszt\u00e1lyok feladata, hogy ebb\u0151l az \u00e1ltal\u00e1nos koordin\u00e1ta-rendszerb\u0151l az adott nyomtat\u00f3 hardveres saj\u00e1toss\u00e1gaihoz igaz\u00edts\u00e1k. A Klipper egy iterat\u00edv megold\u00f3t haszn\u00e1l az egyes l\u00e9ptet\u0151k l\u00e9p\u00e9sidej\u00e9nek l\u00e9trehoz\u00e1s\u00e1hoz. A k\u00f3d tartalmazza a k\u00e9pleteket a fej ide\u00e1lis cartesian koordin\u00e1t\u00e1inak kisz\u00e1m\u00edt\u00e1s\u00e1hoz minden egyes id\u0151pontban, \u00e9s rendelkezik a kinematikai k\u00e9pletekkel az ide\u00e1lis stepper poz\u00edci\u00f3k kisz\u00e1m\u00edt\u00e1s\u00e1hoz ezen cartesian koordin\u00e1t\u00e1k alapj\u00e1n. Ezekkel a k\u00e9pletekkel a Klipper meg tudja hat\u00e1rozni azt az ide\u00e1lis id\u0151t, amikor a steppernek az egyes l\u00e9p\u00e9shelyzetekben kell lennie. Az adott l\u00e9p\u00e9seket ezut\u00e1n ezekre a kisz\u00e1m\u00edtott id\u0151pontokra \u00fctemezi. A legfontosabb k\u00e9plet annak meghat\u00e1roz\u00e1s\u00e1ra, hogy egy mozg\u00e1snak milyen messzire kell eljutnia \u00e1lland\u00f3 gyorsul\u00e1s mellett, a k\u00f6vetkez\u0151: move_distance = (start_velocity + .5 * accel * move_time) * move_time \u00e9s az \u00e1lland\u00f3 sebess\u00e9g\u0171 mozg\u00e1sra vonatkoz\u00f3 kulcsk\u00e9plet a k\u00f6vetkez\u0151: move_distance = cruise_velocity * move_time A mozg\u00e1sok cartesian koordin\u00e1t\u00e1inak meghat\u00e1roz\u00e1s\u00e1ra szolg\u00e1l\u00f3 kulcsk\u00e9pletek a k\u00f6vetkez\u0151k: cartesian_x_position = start_x + move_distance * total_x_movement / total_movement cartesian_y_position = start_y + move_distance * total_y_movement / total_movement cartesian_z_position = start_z + move_distance * total_z_movement / total_movement Cartesian robotok \u00b6 A legegyszer\u0171bb eset a l\u00e9p\u00e9sek gener\u00e1l\u00e1sa a kartot\u00e9knyomtat\u00f3khoz. Az egyes tengelyeken t\u00f6rt\u00e9n\u0151 mozg\u00e1s k\u00f6zvetlen\u00fcl kapcsol\u00f3dik a cartesian t\u00e9rben t\u00f6rt\u00e9n\u0151 mozg\u00e1shoz. Kulcsk\u00e9pletek: stepper_x_position = cartesian_x_position stepper_y_position = cartesian_y_position stepper_z_position = cartesian_z_position CoreXY robotok \u00b6 A l\u00e9p\u00e9sek gener\u00e1l\u00e1sa egy CoreXY g\u00e9pen csak egy kicsit bonyolultabb, mint az egyszer\u0171 cartesian robotok\u00e9. A legfontosabb k\u00e9pletek a k\u00f6vetkez\u0151k: stepper_a_position = cartesian_x_position + cartesian_y_position stepper_b_position = cartesian_x_position - cartesian_y_position stepper_z_position = cartesian_z_position Delta robotok \u00b6 A delta roboton t\u00f6rt\u00e9n\u0151 l\u00e9p\u00e9sgener\u00e1l\u00e1s a Pitagorasz-t\u00e9telen alapul: stepper_position = (sqrt(arm_length^2 - (cartesian_x_position - tower_x_position)^2 - (cartesian_y_position - tower_y_position)^2) + cartesian_z_position) L\u00e9ptet\u0151motor gyorsul\u00e1si hat\u00e1r\u00e9rt\u00e9kei \u00b6 A delta kinematik\u00e1val lehets\u00e9ges, hogy egy cartesian t\u00e9rben gyorsul\u00f3 mozg\u00e1s nagyobb gyorsul\u00e1st ig\u00e9nyel egy adott l\u00e9ptet\u0151motoron, mint a mozg\u00e1s gyorsul\u00e1sa. Ez akkor fordulhat el\u0151, ha egy mozgatott kar ink\u00e1bb v\u00edzszintes, mint f\u00fcgg\u0151leges, \u00e9s a mozg\u00e1s vonala az adott l\u00e9ptet\u0151 torony k\u00f6zel\u00e9ben halad el. B\u00e1r ezekhez a mozg\u00e1sokhoz nagyobb l\u00e9ptet\u0151motor-gyorsul\u00e1sra lehet sz\u00fcks\u00e9g, mint a nyomtat\u00f3 maxim\u00e1lisan konfigur\u00e1lt mozg\u00e1sgyorsul\u00e1sa, az adott l\u00e9ptet\u0151 \u00e1ltal mozgatott effekt\u00edv t\u00f6meg kisebb lesz. \u00cdgy a nagyobb l\u00e9ptet\u0151 gyorsul\u00e1s nem eredm\u00e9nyez jelent\u0151sen nagyobb l\u00e9ptet\u0151 nyomat\u00e9kot, \u00e9s ez\u00e9rt \u00e1rtalmatlannak tekinthet\u0151. A sz\u00e9ls\u0151s\u00e9ges esetek elker\u00fcl\u00e9se \u00e9rdek\u00e9ben azonban a Klipper a nyomtat\u00f3 konfigur\u00e1lt maxim\u00e1lis mozg\u00e1si gyorsul\u00e1s\u00e1nak h\u00e1romszoros\u00e1ban hat\u00e1rozza meg a l\u00e9ptet\u0151 gyorsul\u00e1s\u00e1nak fels\u0151 hat\u00e1r\u00e1t. (Hasonl\u00f3k\u00e9ppen, a l\u00e9ptet\u0151 maxim\u00e1lis sebess\u00e9ge a maxim\u00e1lis mozgat\u00e1si sebess\u00e9g h\u00e1romszoros\u00e1ra van korl\u00e1tozva). E korl\u00e1t betart\u00e1sa \u00e9rdek\u00e9ben az \u00e9p\u00edt\u00e9si ter\u00fclet sz\u00e9ls\u0151 sz\u00e9l\u00e9n (ahol a l\u00e9ptet\u0151 kar k\u00f6zel v\u00edzszintes lehet) a mozg\u00e1sok maxim\u00e1lis gyorsul\u00e1sa \u00e9s sebess\u00e9ge alacsonyabb lesz. Extruder kinematika \u00b6 A Klipper az extruder mozg\u00e1s\u00e1t saj\u00e1t kinematikai oszt\u00e1ly\u00e1ban val\u00f3s\u00edtja meg. Mivel a nyomtat\u00f3fej mozg\u00e1s\u00e1nak id\u0151z\u00edt\u00e9se \u00e9s sebess\u00e9ge minden egyes mozg\u00e1sn\u00e1l teljesen ismert, az extruder l\u00e9p\u00e9sidej\u00e9t a nyomtat\u00f3fej mozg\u00e1s\u00e1nak l\u00e9p\u00e9sid\u0151-sz\u00e1m\u00edt\u00e1sait\u00f3l f\u00fcggetlen\u00fcl lehet kisz\u00e1m\u00edtani. Az extruder alapmozg\u00e1sa egyszer\u0171en kisz\u00e1m\u00edthat\u00f3. A l\u00e9p\u00e9sid\u0151 gener\u00e1l\u00e1sa ugyanazokat a k\u00e9pleteket haszn\u00e1lja, mint a cartesian g\u00e9pek: stepper_position = requested_e_position Nyom\u00e1s el\u0151tol\u00e1s \u00b6 A k\u00eds\u00e9rletek azt mutatt\u00e1k, hogy az extruder modellez\u00e9s\u00e9t az alap extruder k\u00e9pleten t\u00fal is lehet jav\u00edtani. Ide\u00e1lis esetben az extrud\u00e1l\u00e1si mozg\u00e1s el\u0151rehaladt\u00e1val a mozg\u00e1s minden egyes pontj\u00e1n ugyanannyi sz\u00e1lnak kell lerak\u00f3dnia, \u00e9s a mozg\u00e1s ut\u00e1n nem szabad extrud\u00e1l\u00f3dnia. Sajnos gyakran el\u0151fordul, hogy az alap extrud\u00e1l\u00e1si k\u00e9pletek miatt az extrud\u00e1l\u00e1si mozg\u00e1sok kezdet\u00e9n t\u00fal kev\u00e9s sz\u00e1l ker\u00fcl ki az extruderb\u0151l, \u00e9s az extrud\u00e1l\u00e1s befejez\u00e9se ut\u00e1n t\u00f6bbletsz\u00e1l ker\u00fcl extrud\u00e1l\u00e1sra. Ezt gyakran nevezik \"ooze\"-nak. A \"nyom\u00e1s el\u0151tol\u00e1s\" rendszer ezt \u00fagy pr\u00f3b\u00e1lja figyelembe venni, hogy az extruderhez egy m\u00e1sik modellt haszn\u00e1l. Ahelyett, hogy naivan azt hinn\u00e9, hogy az extruderbe t\u00e1pl\u00e1lt minden egyes mm^3 sz\u00e1lat az extruderb\u0151l azonnal ugyanannyi mm^3 fog kil\u00e9pni, a rendszer egy nyom\u00e1son alapul\u00f3 modellt haszn\u00e1l. A nyom\u00e1s n\u0151, amikor a sz\u00e1l az extruderbe ker\u00fcl (mint a Hooke t\u00f6rv\u00e9ny szerint), \u00e9s az extrud\u00e1l\u00e1shoz sz\u00fcks\u00e9ges nyom\u00e1st a f\u00fav\u00f3ka ny\u00edl\u00e1s\u00e1n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 \u00e1raml\u00e1si sebess\u00e9g uralja (mint a Poiseuille t\u00f6rv\u00e9ny szerint). A kulcsgondolat az, hogy a sz\u00e1l, a nyom\u00e1s \u00e9s az \u00e1raml\u00e1si sebess\u00e9g k\u00f6z\u00f6tti kapcsolat egy line\u00e1ris egy\u00fctthat\u00f3val modellezhet\u0151: pa_position = nominal_position + pressure_advance_coefficient * nominal_velocity A nyom\u00e1s el\u0151tol\u00e1s egy\u00fctthat\u00f3 meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd a nyom\u00e1s el\u0151tol\u00e1s dokumentumot. Az alapvet\u0151 nyom\u00e1s el\u0151tol\u00e1s k\u00e9plete az extruder motorj\u00e1nak hirtelen sebess\u00e9gv\u00e1ltoz\u00e1sait okozhatja. A Klipper ennek elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az extruder mozg\u00e1s\u00e1nak \"sim\u00edt\u00e1s\u00e1t\" alkalmazza. A fenti grafikon egy p\u00e9ld\u00e1t mutat k\u00e9t olyan extrud\u00e1l\u00e1si mozg\u00e1sra, amelyek k\u00f6z\u00f6tt a kanyarsebess\u00e9g nem nulla. Vedd figyelembe, hogy a nyom\u00e1s el\u0151tol\u00e1s rendszer miatt a gyors\u00edt\u00e1s sor\u00e1n tov\u00e1bbi sz\u00e1lak ker\u00fclnek az extruderbe. Min\u00e9l nagyobb a k\u00edv\u00e1nt sz\u00e1l\u00e1raml\u00e1si sebess\u00e9g, ann\u00e1l t\u00f6bb sz\u00e1lat kell betolni a gyors\u00edt\u00e1s sor\u00e1n a nyom\u00e1s miatt. A fej lass\u00edt\u00e1sa sor\u00e1n a plusz sz\u00e1l visszah\u00faz\u00f3dik (az extruder sebess\u00e9ge negat\u00edv lesz). A \"sim\u00edt\u00e1s\" az extruder poz\u00edci\u00f3j\u00e1nak s\u00falyozott \u00e1tlag\u00e1val t\u00f6rt\u00e9nik egy kis id\u0151intervallumban (ahogyan azt a pressure_advance_smooth_time konfigur\u00e1ci\u00f3s param\u00e9ter megadja). Ez az \u00e1tlagol\u00e1s t\u00f6bb G-k\u00f3d mozg\u00e1st is \u00e1tfoghat. Figyelje meg, hogy az extrudermotor az els\u0151 extrudermozg\u00e1s n\u00e9vleges kezdete el\u0151tt elkezd mozogni, \u00e9s az utols\u00f3 extrudermozg\u00e1s n\u00e9vleges v\u00e9ge ut\u00e1n is mozogni fog. Kulcsk\u00e9plet a \"sim\u00edtott nyom\u00e1s el\u0151tol\u00e1shoz\": smooth_pa_position(t) = ( definitive_integral(pa_position(x) * (smooth_time/2 - abs(t - x)) * dx, from=t-smooth_time/2, to=t+smooth_time/2) / (smooth_time/2)^2 )","title":"Kinematika"},{"location":"Kinematics.html#kinematika","text":"Ez a dokumentum \u00e1ttekint\u00e9st ny\u00fajt arr\u00f3l, hogy a Klipper hogyan val\u00f3s\u00edtja meg a robot mozg\u00e1s\u00e1t (a kinematika ). A tartalom mind a Klipper szoftveren dolgozni k\u00edv\u00e1n\u00f3 fejleszt\u0151k, mind a g\u00e9p\u00fck mechanik\u00e1j\u00e1nak jobb meg\u00e9rt\u00e9se ir\u00e1nt \u00e9rdekl\u0151d\u0151 felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra \u00e9rdekes lehet.","title":"Kinematika"},{"location":"Kinematics.html#gyorsulas","text":"A Klipper \u00e1lland\u00f3 gyors\u00edt\u00e1si rendszert alkalmaz, amikor a nyomtat\u00f3fej sebess\u00e9get v\u00e1ltoztat. A sebess\u00e9g fokozatosan v\u00e1ltozik az \u00faj sebess\u00e9gre, ahelyett, hogy hirtelen r\u00e1ngat\u00f3zna. A Klipper mindig kik\u00e9nyszer\u00edti a gyorsul\u00e1st a nyomtat\u00f3fej \u00e9s a nyomtat\u00e1s k\u00f6z\u00f6tt. Az extruderb\u0151l kil\u00e9p\u0151 sz\u00e1l meglehet\u0151sen t\u00f6r\u00e9keny lehet. A gyors r\u00e1ng\u00e1sok \u00e9s/vagy az extruder \u00e1raml\u00e1s\u00e1nak v\u00e1ltoz\u00e1sa rossz min\u0151s\u00e9ghez \u00e9s rossz tapad\u00e1shoz vezet. M\u00e9g ha nem is extrud\u00e1l, ha a nyomtat\u00f3fej a nyomtat\u00e1ssal egy magass\u00e1gban van, akkor a fej gyors r\u00e1ng\u00e1sa a nemr\u00e9g letapadt anyag felv\u00e1l\u00e1s\u00e1t okozhatja. A nyomtat\u00f3fej sebess\u00e9gv\u00e1ltoztat\u00e1s\u00e1nak korl\u00e1toz\u00e1sa (a nyomtat\u00e1shoz k\u00e9pest) cs\u00f6kkenti a nyomat felv\u00e1l\u00e1s\u00e1nak kock\u00e1zat\u00e1t. Fontos a gyorsul\u00e1s korl\u00e1toz\u00e1sa is, hogy a l\u00e9ptet\u0151motorok ne ugorjanak, \u00e9s ne terhelj\u00e9k t\u00falzottan a g\u00e9pet. A Klipper a nyomtat\u00f3fej gyorsul\u00e1s\u00e1nak korl\u00e1toz\u00e1s\u00e1val korl\u00e1tozza az egyes l\u00e9ptet\u0151motorok nyomat\u00e9k\u00e1t. A nyomtat\u00f3fej gyorsul\u00e1s\u00e1nak kik\u00e9nyszer\u00edt\u00e9se term\u00e9szetesen a nyomtat\u00f3fejet mozgat\u00f3 l\u00e9ptet\u0151motorok nyomat\u00e9k\u00e1t is korl\u00e1tozza (a ford\u00edtottja nem mindig igaz). A Klipper \u00e1lland\u00f3 gyorsul\u00e1st val\u00f3s\u00edt meg. Az \u00e1lland\u00f3 gyorsul\u00e1s legfontosabb k\u00e9plete a k\u00f6vetkez\u0151: velocity(time) = start_velocity + accel*time","title":"Gyorsul\u00e1s"},{"location":"Kinematics.html#trapez-generator","text":"A Klipper hagyom\u00e1nyos \"trap\u00e9zgener\u00e1tort\" haszn\u00e1l az egyes mozg\u00e1sok modellez\u00e9s\u00e9re. Minden l\u00e9p\u00e9snek van kezd\u0151sebess\u00e9ge, \u00e1lland\u00f3 gyors\u00edt\u00e1s mellett utaz\u00f3sebess\u00e9gre gyorsul, \u00e1lland\u00f3 sebess\u00e9ggel utazik, majd \u00e1lland\u00f3 gyors\u00edt\u00e1ssal lelass\u00edt a v\u00e9gsebess\u00e9gre . Ezt \"trap\u00e9zgener\u00e1tornak\" nevezik, mert a mozg\u00e1s sebess\u00e9gdiagramja \u00fagy n\u00e9z ki, mint egy trap\u00e9z. Az utaz\u00f3sebess\u00e9g mindig nagyobb vagy egyenl\u0151 a kezd\u0151- \u00e9s a v\u00e9gsebess\u00e9ggel. A gyorsul\u00e1si f\u00e1zis lehet nulla id\u0151tartam\u00fa (ha a kezd\u0151sebess\u00e9g egyenl\u0151 az utaz\u00f3sebess\u00e9ggel), az utaz\u00e1si f\u00e1zis lehet nulla id\u0151tartam\u00fa (ha a mozg\u00e1s a gyorsul\u00e1s ut\u00e1n azonnal lassulni kezd), \u00e9s/vagy a lassul\u00e1si f\u00e1zis lehet nulla id\u0151tartam\u00fa (ha a v\u00e9gsebess\u00e9g egyenl\u0151 az utaz\u00f3sebess\u00e9ggel).","title":"Trap\u00e9z gener\u00e1tor"},{"location":"Kinematics.html#eloretekinto","text":"A \"look-ahead\" rendszert a kanyarsebess\u00e9gek meghat\u00e1roz\u00e1s\u00e1ra haszn\u00e1lj\u00e1k a mozg\u00e1sok k\u00f6z\u00f6tt. N\u00e9zz\u00fck meg a k\u00f6vetkez\u0151 k\u00e9t mozg\u00e1st, amelyek egy X-Y-s\u00edkon helyezkednek el: A fenti helyzetben lehets\u00e9ges az els\u0151 l\u00e9p\u00e9s ut\u00e1n teljesen lelass\u00edtani, majd a k\u00f6vetkez\u0151 l\u00e9p\u00e9s kezdet\u00e9n teljesen felgyors\u00edtani, de ez nem ide\u00e1lis, mivel ez a sok gyors\u00edt\u00e1s \u00e9s lass\u00edt\u00e1s jelent\u0151sen megn\u00f6veln\u00e9 a nyomtat\u00e1si id\u0151t, \u00e9s az anyag\u00e1raml\u00e1s gyakori v\u00e1ltoz\u00e1sa rossz nyomtat\u00e1si min\u0151s\u00e9get eredm\u00e9nyezne. Ennek megold\u00e1s\u00e1ra a \"look-ahead\" mechanizmus t\u00f6bb bej\u00f6v\u0151 mozg\u00e1st sorba \u00e1ll\u00edt, \u00e9s elemzi a mozg\u00e1sok k\u00f6z\u00f6tti sz\u00f6geket, hogy meghat\u00e1rozzon egy \u00e9sszer\u0171 sebess\u00e9get, amelyet a k\u00e9t mozg\u00e1s k\u00f6z\u00f6tti \"keresztez\u0151d\u00e9s\" alatt lehet el\u00e9rni. Ha a k\u00f6vetkez\u0151 l\u00e9p\u00e9s k\u00f6zel azonos ir\u00e1nyba mutat, akkor a fejnek csak egy kicsit kell lass\u00edtania (ha egy\u00e1ltal\u00e1n kell). Ha azonban a k\u00f6vetkez\u0151 mozdulat hegyessz\u00f6get z\u00e1r be (a fej a k\u00f6vetkez\u0151 mozdulatn\u00e1l majdnem ford\u00edtott ir\u00e1nyban fog haladni), akkor csak egy kis csom\u00f3ponti sebess\u00e9g a megengedett. A csom\u00f3ponti sebess\u00e9geket a \"k\u00f6zel\u00edt\u0151 centripet\u00e1lis gyorsul\u00e1s\" seg\u00edts\u00e9g\u00e9vel hat\u00e1rozzuk meg. Legjobb a szerz\u0151 \u00e1ltal le\u00edrt . A Klipperben azonban a csom\u00f3ponti sebess\u00e9gek \u00fagy ker\u00fclnek be\u00e1ll\u00edt\u00e1sra, hogy megadjuk a 90\u00b0-os sarok k\u00edv\u00e1nt sebess\u00e9g\u00e9t (a \"n\u00e9gyzetes saroksebess\u00e9g\"), \u00e9s a t\u00f6bbi sz\u00f6gre vonatkoz\u00f3 csom\u00f3ponti sebess\u00e9geket ebb\u0151l vezetj\u00fck le. Kulcsk\u00e9plet az el\u0151retekint\u00e9shez: end_velocity^2 = start_velocity^2 + 2*accel*move_distance","title":"El\u0151retekint\u0151"},{"location":"Kinematics.html#simitott-eloretekintes","text":"A Klipper egy olyan mechanizmust is megval\u00f3s\u00edt, amely kisim\u00edtja a r\u00f6vid \"cikkcakk\" mozg\u00e1sokat. Tekints\u00fck a k\u00f6vetkez\u0151 mozg\u00e1sokat: A fentiekben a gyors\u00edt\u00e1sr\u00f3l lass\u00edt\u00e1sra t\u00f6rt\u00e9n\u0151 gyakori v\u00e1lt\u00e1s a g\u00e9p rezg\u00e9s\u00e9t okozhatja, ami a g\u00e9pet terheli, \u00e9s n\u00f6veli a zajt. Ennek cs\u00f6kkent\u00e9se \u00e9rdek\u00e9ben a Klipper mind a rendszeres mozg\u00e1si gyorsul\u00e1st, mind pedig a virtu\u00e1lis \"gyors\u00edt\u00e1sr\u00f3l lass\u00edt\u00e1sra\" sebess\u00e9get k\u00f6veti. Ezzel a rendszerrel a nyomtat\u00f3 mozg\u00e1s\u00e1nak kiegyenl\u00edt\u00e9se \u00e9rdek\u00e9ben a r\u00f6vid \"cikkcakkos\" mozg\u00e1sok cs\u00facssebess\u00e9ge korl\u00e1tozott: Konkr\u00e9tan, a k\u00f3d kisz\u00e1m\u00edtja, hogy mi lenne az egyes mozg\u00e1sok sebess\u00e9ge, ha az adott virtu\u00e1lis \"gyorsul\u00e1s-lassul\u00e1s\" sebess\u00e9gre korl\u00e1toz\u00f3dna (alap\u00e9rtelmez\u00e9s szerint a norm\u00e1l gyorsul\u00e1si sebess\u00e9g fele). A fenti k\u00e9pen a szaggatott sz\u00fcrke vonalak ezt a virtu\u00e1lis gyorsul\u00e1si sebess\u00e9get jel\u00f6lik az els\u0151 mozdulatn\u00e1l. Ha egy mozg\u00e1s nem tudja el\u00e9rni a teljes utaz\u00f3sebess\u00e9g\u00e9t ezzel a virtu\u00e1lis gyorsul\u00e1si sebess\u00e9ggel, akkor a v\u00e9gsebess\u00e9ge arra a maxim\u00e1lis sebess\u00e9gre cs\u00f6kken, amelyet ezzel a virtu\u00e1lis gyorsul\u00e1si sebess\u00e9ggel el\u00e9rhetne. A legt\u00f6bb mozg\u00e1s eset\u00e9ben ez a hat\u00e1r\u00e9rt\u00e9k a mozg\u00e1s megl\u00e9v\u0151 hat\u00e1r\u00e9rt\u00e9kein\u00e9l vagy azok felett lesz, \u00e9s nem v\u00e1ltozik a viselked\u00e9s. R\u00f6vid cikk-cakk mozg\u00e1sok eset\u00e9n azonban ez a hat\u00e1r cs\u00f6kkenti a cs\u00facssebess\u00e9get. Vedd figyelembe, hogy ez nem v\u00e1ltoztatja meg a t\u00e9nyleges gyorsul\u00e1st a mozg\u00e1son bel\u00fcl. A mozg\u00e1s tov\u00e1bbra is a norm\u00e1l gyorsul\u00e1si s\u00e9m\u00e1t haszn\u00e1lja a be\u00e1ll\u00edtott cs\u00facssebess\u00e9gig.","title":"Sim\u00edtott el\u0151retekint\u00e9s"},{"location":"Kinematics.html#lepesek-generalasa","text":"Miut\u00e1n a look-ahead folyamat befejez\u0151d\u00f6tt, a nyomtat\u00f3fej mozg\u00e1sa az adott mozg\u00e1shoz teljes m\u00e9rt\u00e9kben ismert (id\u0151, kezd\u0151 poz\u00edci\u00f3, v\u00e9gpoz\u00edci\u00f3, sebess\u00e9g minden egyes ponton), \u00e9s lehets\u00e9ges a l\u00e9p\u00e9sid\u0151k gener\u00e1l\u00e1sa a mozg\u00e1shoz. Ez a folyamat a Klipper k\u00f3dban a \"kinematikai oszt\u00e1lyokon\" bel\u00fcl t\u00f6rt\u00e9nik. Ezeken a kinematikai oszt\u00e1lyokon k\u00edv\u00fcl minden millim\u00e9terben, m\u00e1sodpercben \u00e9s cartesian koordin\u00e1ta t\u00e9rben k\u00f6vethet\u0151. A kinematikai oszt\u00e1lyok feladata, hogy ebb\u0151l az \u00e1ltal\u00e1nos koordin\u00e1ta-rendszerb\u0151l az adott nyomtat\u00f3 hardveres saj\u00e1toss\u00e1gaihoz igaz\u00edts\u00e1k. A Klipper egy iterat\u00edv megold\u00f3t haszn\u00e1l az egyes l\u00e9ptet\u0151k l\u00e9p\u00e9sidej\u00e9nek l\u00e9trehoz\u00e1s\u00e1hoz. A k\u00f3d tartalmazza a k\u00e9pleteket a fej ide\u00e1lis cartesian koordin\u00e1t\u00e1inak kisz\u00e1m\u00edt\u00e1s\u00e1hoz minden egyes id\u0151pontban, \u00e9s rendelkezik a kinematikai k\u00e9pletekkel az ide\u00e1lis stepper poz\u00edci\u00f3k kisz\u00e1m\u00edt\u00e1s\u00e1hoz ezen cartesian koordin\u00e1t\u00e1k alapj\u00e1n. Ezekkel a k\u00e9pletekkel a Klipper meg tudja hat\u00e1rozni azt az ide\u00e1lis id\u0151t, amikor a steppernek az egyes l\u00e9p\u00e9shelyzetekben kell lennie. Az adott l\u00e9p\u00e9seket ezut\u00e1n ezekre a kisz\u00e1m\u00edtott id\u0151pontokra \u00fctemezi. A legfontosabb k\u00e9plet annak meghat\u00e1roz\u00e1s\u00e1ra, hogy egy mozg\u00e1snak milyen messzire kell eljutnia \u00e1lland\u00f3 gyorsul\u00e1s mellett, a k\u00f6vetkez\u0151: move_distance = (start_velocity + .5 * accel * move_time) * move_time \u00e9s az \u00e1lland\u00f3 sebess\u00e9g\u0171 mozg\u00e1sra vonatkoz\u00f3 kulcsk\u00e9plet a k\u00f6vetkez\u0151: move_distance = cruise_velocity * move_time A mozg\u00e1sok cartesian koordin\u00e1t\u00e1inak meghat\u00e1roz\u00e1s\u00e1ra szolg\u00e1l\u00f3 kulcsk\u00e9pletek a k\u00f6vetkez\u0151k: cartesian_x_position = start_x + move_distance * total_x_movement / total_movement cartesian_y_position = start_y + move_distance * total_y_movement / total_movement cartesian_z_position = start_z + move_distance * total_z_movement / total_movement","title":"L\u00e9p\u00e9sek gener\u00e1l\u00e1sa"},{"location":"Kinematics.html#cartesian-robotok","text":"A legegyszer\u0171bb eset a l\u00e9p\u00e9sek gener\u00e1l\u00e1sa a kartot\u00e9knyomtat\u00f3khoz. Az egyes tengelyeken t\u00f6rt\u00e9n\u0151 mozg\u00e1s k\u00f6zvetlen\u00fcl kapcsol\u00f3dik a cartesian t\u00e9rben t\u00f6rt\u00e9n\u0151 mozg\u00e1shoz. Kulcsk\u00e9pletek: stepper_x_position = cartesian_x_position stepper_y_position = cartesian_y_position stepper_z_position = cartesian_z_position","title":"Cartesian robotok"},{"location":"Kinematics.html#corexy-robotok","text":"A l\u00e9p\u00e9sek gener\u00e1l\u00e1sa egy CoreXY g\u00e9pen csak egy kicsit bonyolultabb, mint az egyszer\u0171 cartesian robotok\u00e9. A legfontosabb k\u00e9pletek a k\u00f6vetkez\u0151k: stepper_a_position = cartesian_x_position + cartesian_y_position stepper_b_position = cartesian_x_position - cartesian_y_position stepper_z_position = cartesian_z_position","title":"CoreXY robotok"},{"location":"Kinematics.html#delta-robotok","text":"A delta roboton t\u00f6rt\u00e9n\u0151 l\u00e9p\u00e9sgener\u00e1l\u00e1s a Pitagorasz-t\u00e9telen alapul: stepper_position = (sqrt(arm_length^2 - (cartesian_x_position - tower_x_position)^2 - (cartesian_y_position - tower_y_position)^2) + cartesian_z_position)","title":"Delta robotok"},{"location":"Kinematics.html#leptetomotor-gyorsulasi-hatarertekei","text":"A delta kinematik\u00e1val lehets\u00e9ges, hogy egy cartesian t\u00e9rben gyorsul\u00f3 mozg\u00e1s nagyobb gyorsul\u00e1st ig\u00e9nyel egy adott l\u00e9ptet\u0151motoron, mint a mozg\u00e1s gyorsul\u00e1sa. Ez akkor fordulhat el\u0151, ha egy mozgatott kar ink\u00e1bb v\u00edzszintes, mint f\u00fcgg\u0151leges, \u00e9s a mozg\u00e1s vonala az adott l\u00e9ptet\u0151 torony k\u00f6zel\u00e9ben halad el. B\u00e1r ezekhez a mozg\u00e1sokhoz nagyobb l\u00e9ptet\u0151motor-gyorsul\u00e1sra lehet sz\u00fcks\u00e9g, mint a nyomtat\u00f3 maxim\u00e1lisan konfigur\u00e1lt mozg\u00e1sgyorsul\u00e1sa, az adott l\u00e9ptet\u0151 \u00e1ltal mozgatott effekt\u00edv t\u00f6meg kisebb lesz. \u00cdgy a nagyobb l\u00e9ptet\u0151 gyorsul\u00e1s nem eredm\u00e9nyez jelent\u0151sen nagyobb l\u00e9ptet\u0151 nyomat\u00e9kot, \u00e9s ez\u00e9rt \u00e1rtalmatlannak tekinthet\u0151. A sz\u00e9ls\u0151s\u00e9ges esetek elker\u00fcl\u00e9se \u00e9rdek\u00e9ben azonban a Klipper a nyomtat\u00f3 konfigur\u00e1lt maxim\u00e1lis mozg\u00e1si gyorsul\u00e1s\u00e1nak h\u00e1romszoros\u00e1ban hat\u00e1rozza meg a l\u00e9ptet\u0151 gyorsul\u00e1s\u00e1nak fels\u0151 hat\u00e1r\u00e1t. (Hasonl\u00f3k\u00e9ppen, a l\u00e9ptet\u0151 maxim\u00e1lis sebess\u00e9ge a maxim\u00e1lis mozgat\u00e1si sebess\u00e9g h\u00e1romszoros\u00e1ra van korl\u00e1tozva). E korl\u00e1t betart\u00e1sa \u00e9rdek\u00e9ben az \u00e9p\u00edt\u00e9si ter\u00fclet sz\u00e9ls\u0151 sz\u00e9l\u00e9n (ahol a l\u00e9ptet\u0151 kar k\u00f6zel v\u00edzszintes lehet) a mozg\u00e1sok maxim\u00e1lis gyorsul\u00e1sa \u00e9s sebess\u00e9ge alacsonyabb lesz.","title":"L\u00e9ptet\u0151motor gyorsul\u00e1si hat\u00e1r\u00e9rt\u00e9kei"},{"location":"Kinematics.html#extruder-kinematika","text":"A Klipper az extruder mozg\u00e1s\u00e1t saj\u00e1t kinematikai oszt\u00e1ly\u00e1ban val\u00f3s\u00edtja meg. Mivel a nyomtat\u00f3fej mozg\u00e1s\u00e1nak id\u0151z\u00edt\u00e9se \u00e9s sebess\u00e9ge minden egyes mozg\u00e1sn\u00e1l teljesen ismert, az extruder l\u00e9p\u00e9sidej\u00e9t a nyomtat\u00f3fej mozg\u00e1s\u00e1nak l\u00e9p\u00e9sid\u0151-sz\u00e1m\u00edt\u00e1sait\u00f3l f\u00fcggetlen\u00fcl lehet kisz\u00e1m\u00edtani. Az extruder alapmozg\u00e1sa egyszer\u0171en kisz\u00e1m\u00edthat\u00f3. A l\u00e9p\u00e9sid\u0151 gener\u00e1l\u00e1sa ugyanazokat a k\u00e9pleteket haszn\u00e1lja, mint a cartesian g\u00e9pek: stepper_position = requested_e_position","title":"Extruder kinematika"},{"location":"Kinematics.html#nyomas-elotolas","text":"A k\u00eds\u00e9rletek azt mutatt\u00e1k, hogy az extruder modellez\u00e9s\u00e9t az alap extruder k\u00e9pleten t\u00fal is lehet jav\u00edtani. Ide\u00e1lis esetben az extrud\u00e1l\u00e1si mozg\u00e1s el\u0151rehaladt\u00e1val a mozg\u00e1s minden egyes pontj\u00e1n ugyanannyi sz\u00e1lnak kell lerak\u00f3dnia, \u00e9s a mozg\u00e1s ut\u00e1n nem szabad extrud\u00e1l\u00f3dnia. Sajnos gyakran el\u0151fordul, hogy az alap extrud\u00e1l\u00e1si k\u00e9pletek miatt az extrud\u00e1l\u00e1si mozg\u00e1sok kezdet\u00e9n t\u00fal kev\u00e9s sz\u00e1l ker\u00fcl ki az extruderb\u0151l, \u00e9s az extrud\u00e1l\u00e1s befejez\u00e9se ut\u00e1n t\u00f6bbletsz\u00e1l ker\u00fcl extrud\u00e1l\u00e1sra. Ezt gyakran nevezik \"ooze\"-nak. A \"nyom\u00e1s el\u0151tol\u00e1s\" rendszer ezt \u00fagy pr\u00f3b\u00e1lja figyelembe venni, hogy az extruderhez egy m\u00e1sik modellt haszn\u00e1l. Ahelyett, hogy naivan azt hinn\u00e9, hogy az extruderbe t\u00e1pl\u00e1lt minden egyes mm^3 sz\u00e1lat az extruderb\u0151l azonnal ugyanannyi mm^3 fog kil\u00e9pni, a rendszer egy nyom\u00e1son alapul\u00f3 modellt haszn\u00e1l. A nyom\u00e1s n\u0151, amikor a sz\u00e1l az extruderbe ker\u00fcl (mint a Hooke t\u00f6rv\u00e9ny szerint), \u00e9s az extrud\u00e1l\u00e1shoz sz\u00fcks\u00e9ges nyom\u00e1st a f\u00fav\u00f3ka ny\u00edl\u00e1s\u00e1n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 \u00e1raml\u00e1si sebess\u00e9g uralja (mint a Poiseuille t\u00f6rv\u00e9ny szerint). A kulcsgondolat az, hogy a sz\u00e1l, a nyom\u00e1s \u00e9s az \u00e1raml\u00e1si sebess\u00e9g k\u00f6z\u00f6tti kapcsolat egy line\u00e1ris egy\u00fctthat\u00f3val modellezhet\u0151: pa_position = nominal_position + pressure_advance_coefficient * nominal_velocity A nyom\u00e1s el\u0151tol\u00e1s egy\u00fctthat\u00f3 meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd a nyom\u00e1s el\u0151tol\u00e1s dokumentumot. Az alapvet\u0151 nyom\u00e1s el\u0151tol\u00e1s k\u00e9plete az extruder motorj\u00e1nak hirtelen sebess\u00e9gv\u00e1ltoz\u00e1sait okozhatja. A Klipper ennek elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az extruder mozg\u00e1s\u00e1nak \"sim\u00edt\u00e1s\u00e1t\" alkalmazza. A fenti grafikon egy p\u00e9ld\u00e1t mutat k\u00e9t olyan extrud\u00e1l\u00e1si mozg\u00e1sra, amelyek k\u00f6z\u00f6tt a kanyarsebess\u00e9g nem nulla. Vedd figyelembe, hogy a nyom\u00e1s el\u0151tol\u00e1s rendszer miatt a gyors\u00edt\u00e1s sor\u00e1n tov\u00e1bbi sz\u00e1lak ker\u00fclnek az extruderbe. Min\u00e9l nagyobb a k\u00edv\u00e1nt sz\u00e1l\u00e1raml\u00e1si sebess\u00e9g, ann\u00e1l t\u00f6bb sz\u00e1lat kell betolni a gyors\u00edt\u00e1s sor\u00e1n a nyom\u00e1s miatt. A fej lass\u00edt\u00e1sa sor\u00e1n a plusz sz\u00e1l visszah\u00faz\u00f3dik (az extruder sebess\u00e9ge negat\u00edv lesz). A \"sim\u00edt\u00e1s\" az extruder poz\u00edci\u00f3j\u00e1nak s\u00falyozott \u00e1tlag\u00e1val t\u00f6rt\u00e9nik egy kis id\u0151intervallumban (ahogyan azt a pressure_advance_smooth_time konfigur\u00e1ci\u00f3s param\u00e9ter megadja). Ez az \u00e1tlagol\u00e1s t\u00f6bb G-k\u00f3d mozg\u00e1st is \u00e1tfoghat. Figyelje meg, hogy az extrudermotor az els\u0151 extrudermozg\u00e1s n\u00e9vleges kezdete el\u0151tt elkezd mozogni, \u00e9s az utols\u00f3 extrudermozg\u00e1s n\u00e9vleges v\u00e9ge ut\u00e1n is mozogni fog. Kulcsk\u00e9plet a \"sim\u00edtott nyom\u00e1s el\u0151tol\u00e1shoz\": smooth_pa_position(t) = ( definitive_integral(pa_position(x) * (smooth_time/2 - abs(t - x)) * dx, from=t-smooth_time/2, to=t+smooth_time/2) / (smooth_time/2)^2 )","title":"Nyom\u00e1s el\u0151tol\u00e1s"},{"location":"MCU_Commands.html","text":"MCU parancsok \u00b6 Ez a dokumentum a Klipper \"gazdag\u00e9p\" szoftvere \u00e1ltal k\u00fcld\u00f6tt \u00e9s a Klipper mikrokontroller szoftvere \u00e1ltal feldolgozott alacsony szint\u0171 mikrokontroller-parancsokr\u00f3l ny\u00fajt inform\u00e1ci\u00f3t. Ez a dokumentum nem hiteles hivatkoz\u00e1s ezekre a parancsokra, \u00e9s nem is az \u00f6sszes rendelkez\u00e9sre \u00e1ll\u00f3 parancs kiz\u00e1r\u00f3lagos list\u00e1ja. Ez a dokumentum hasznos lehet az alacsony szint\u0171 mikrokontroller-parancsok meg\u00e9rt\u00e9se ir\u00e1nt \u00e9rdekl\u0151d\u0151 fejleszt\u0151k sz\u00e1m\u00e1ra. A parancsok form\u00e1tum\u00e1val \u00e9s tov\u00e1bb\u00edt\u00e1s\u00e1val kapcsolatos tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a protokol dokumentumot. A parancsok itt a \"printf\" st\u00edlus\u00fa szintaxisukkal vannak le\u00edrva - azok sz\u00e1m\u00e1ra, akik nem ismerik ezt a form\u00e1tumot, csak azt kell megjegyezni, hogy ahol egy '%...' szekvencia l\u00e1that\u00f3, azt egy t\u00e9nyleges eg\u00e9sz sz\u00e1mmal kell helyettes\u00edteni. P\u00e9ld\u00e1ul a \"count=%c\" le\u00edr\u00e1st a \"count=10\" sz\u00f6veggel lehet helyettes\u00edteni. Vegy\u00fck figyelembe, hogy a \"felsorol\u00e1snak\" tekintett param\u00e9terek (l\u00e1sd a fenti protokolldokumentumot) string \u00e9rt\u00e9ket vesznek fel, amelyet a mikrokontroller automatikusan eg\u00e9sz \u00e9rt\u00e9kk\u00e9 konvert\u00e1l. Ez a \"pin\" nev\u0171 (vagy \"_pin\" ut\u00f3taggal rendelkez\u0151) param\u00e9terekn\u00e9l gyakori. Ind\u00edt\u00e1si parancsok \u00b6 A mikrokontroller \u00e9s perif\u00e9ri\u00e1i konfigur\u00e1l\u00e1s\u00e1hoz sz\u00fcks\u00e9g lehet bizonyos egyszeri m\u0171veletek elv\u00e9gz\u00e9s\u00e9re. Ez a szakasz erre a c\u00e9lra rendelkez\u00e9sre \u00e1ll\u00f3 \u00e1ltal\u00e1nos parancsokat sorolja fel. A mikrokontroller legt\u00f6bb parancs\u00e1t\u00f3l elt\u00e9r\u0151en ezek a parancsok a fogad\u00e1suk ut\u00e1n azonnal lefutnak, \u00e9s nem ig\u00e9nyelnek k\u00fcl\u00f6n\u00f6sebb be\u00e1ll\u00edt\u00e1sokat. Gyakori ind\u00edt\u00e1si parancsok: set_digital_out pin=%u value=%c : Ez a parancs az adott t\u0171t azonnal digit\u00e1lis kimeneti GPIO-k\u00e9nt konfigur\u00e1lja, \u00e9s vagy alacsony (value=0) vagy magas (value=1) szintre \u00e1ll\u00edtja. Ez a parancs hasznos lehet a LED-ek kezdeti \u00e9rt\u00e9k\u00e9nek konfigur\u00e1l\u00e1s\u00e1hoz \u00e9s a l\u00e9ptet\u0151 vez\u00e9rl\u0151 mikrol\u00e9p\u00e9s t\u0171k kezdeti \u00e9rt\u00e9k\u00e9nek konfigur\u00e1l\u00e1s\u00e1hoz. set_pwm_out pin=%u cycle_ticks=%u value=%hu : Ez a parancs azonnal be\u00e1ll\u00edtja az adott t\u0171t, hogy hardveres impulzussz\u00e9less\u00e9g-modul\u00e1ci\u00f3t (PWM) haszn\u00e1ljon a megadott sz\u00e1m\u00fa cycle_tickkel. A \"cycle_ticks\" az MCU \u00f3rajel\u00e9nek a sz\u00e1ma, ameddig az egyes bekapcsol\u00e1si \u00e9s kikapcsol\u00e1si ciklusoknak tartaniuk kell. Az 1-es cycle_ticks \u00e9rt\u00e9kkel a lehet\u0151 leggyorsabb ciklusid\u0151 k\u00e9rhet\u0151. A \"value\" param\u00e9ter 0 \u00e9s 255 k\u00f6z\u00f6tt van, 0 a teljesen kikapcsolt \u00e1llapotot, 255 pedig a teljesen bekapcsolt \u00e1llapotot jelenti. Ez a parancs hasznos lehet a CPU \u00e9s a nyomtat\u00f3fej h\u0171t\u0151 ventil\u00e1torok enged\u00e9lyez\u00e9s\u00e9hez. Alacsony szint\u0171 mikrokontroller konfigur\u00e1ci\u00f3 \u00b6 A mikrokontroller legt\u00f6bb parancsa a sikeres ind\u00edt\u00e1s el\u0151tt kezdeti be\u00e1ll\u00edt\u00e1st ig\u00e9nyel. Ez a szakasz \u00e1ttekint\u00e9st ny\u00fajt a konfigur\u00e1ci\u00f3s folyamatr\u00f3l. Ez \u00e9s a k\u00f6vetkez\u0151 szakaszok val\u00f3sz\u00edn\u0171leg csak a Klipper bels\u0151 r\u00e9szletei ir\u00e1nt \u00e9rdekl\u0151d\u0151 fejleszt\u0151k sz\u00e1m\u00e1ra \u00e9rdekesek. Amikor a gazdag\u00e9p el\u0151sz\u00f6r csatlakozik a mikrokontrollerhez, mindig egy adatsz\u00f3t\u00e1r lek\u00e9r\u00e9s\u00e9vel kezdi (tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd protokolt ). Az adatsz\u00f3t\u00e1r lek\u00e9r\u00e9se ut\u00e1n a gazdag\u00e9p ellen\u0151rzi, hogy a mikrokontroller \"konfigur\u00e1lt\" \u00e1llapotban van-e, \u00e9s ha nem, akkor konfigur\u00e1lja. A konfigur\u00e1l\u00e1s a k\u00f6vetkez\u0151 f\u00e1zisokat foglalja mag\u00e1ban: get_config : A gazdag\u00e9p ellen\u0151rzi, hogy a mikrokontroller m\u00e1r konfigur\u00e1lva van-e. A mikrokontroller erre a parancsra egy \"config\" v\u00e1lasz\u00fczenettel v\u00e1laszol. A mikrokontroller szoftvere bekapcsol\u00e1skor mindig konfigur\u00e1latlan \u00e1llapotban indul. Ebben az \u00e1llapotban marad mindaddig, am\u00edg a gazdag\u00e9p be nem fejezi a konfigur\u00e1ci\u00f3s folyamatokat (a finalize_config parancs kiad\u00e1s\u00e1val). Ha a mikrokontroller m\u00e1r konfigur\u00e1lva van egy kor\u00e1bbi munkamenetb\u0151l (\u00e9s a k\u00edv\u00e1nt be\u00e1ll\u00edt\u00e1sokkal van konfigur\u00e1lva), akkor a gazdag\u00e9pnek nincs sz\u00fcks\u00e9ge tov\u00e1bbi l\u00e9p\u00e9sekre, \u00e9s a konfigur\u00e1ci\u00f3s folyamat sikeresen befejez\u0151dik. allocate_oids count=%c : Ezt a parancsot az\u00e9rt adjuk ki, hogy t\u00e1j\u00e9koztassuk a mikrokontrollert az objektum-id-k (oid) maxim\u00e1lis sz\u00e1m\u00e1r\u00f3l, amelyre a gazdag\u00e9pnek sz\u00fcks\u00e9ge van. Ezt a parancsot csak egyszer lehet kiadni. Az oid egy eg\u00e9sz sz\u00e1m\u00fa azonos\u00edt\u00f3, amely minden egyes l\u00e9ptet\u0151h\u00f6z, minden v\u00e9g\u00e1ll\u00e1shoz \u00e9s minden \u00fctemezhet\u0151 GPIO t\u0171h\u00f6z hozz\u00e1rendelt. A gazdag\u00e9p el\u0151re meghat\u00e1rozza a hardver m\u0171k\u00f6dtet\u00e9s\u00e9hez sz\u00fcks\u00e9ges oid-ek sz\u00e1m\u00e1t, \u00e9s ezt \u00e1tadja a mikrokontrollernek, hogy az elegend\u0151 mem\u00f3ri\u00e1t rendelhessen az oid-r\u0151l a bels\u0151 objektumra val\u00f3 lek\u00e9pez\u00e9s t\u00e1rol\u00e1s\u00e1hoz. config_XXX oid=%c ... : A konvenci\u00f3 szerint minden \"config_\" el\u0151taggal kezd\u0151d\u0151 parancs l\u00e9trehoz egy \u00faj mikrokontroller objektumot, \u00e9s hozz\u00e1rendeli a megadott oid-et. P\u00e9ld\u00e1ul a config_digital_out parancs a megadott t\u0171t digit\u00e1lis kimeneti GPIO-k\u00e9nt konfigur\u00e1lja, \u00e9s l\u00e9trehoz egy bels\u0151 objektumot, amelyet a gazdag\u00e9p haszn\u00e1lhat az adott GPIO m\u00f3dos\u00edt\u00e1sainak \u00fctemez\u00e9s\u00e9re. A config parancsba \u00e1tadott oid param\u00e9tert a gazdag\u00e9p v\u00e1lasztja ki, \u00e9s annak nulla \u00e9s az allocate_oids parancsban megadott maxim\u00e1lis sz\u00e1m k\u00f6z\u00f6tt kell lennie. A config parancsok csak akkor futtathat\u00f3k, ha a mikrokontroller nincs konfigur\u00e1lt \u00e1llapotban (azaz a gazdag\u00e9p \u00e1ltal elk\u00fcld\u00f6tt finalize_config parancs el\u0151tt) \u00e9s az allocate_oids parancs elk\u00fcld\u00e9se ut\u00e1n. finalize_config crc=%u : A finalize_config parancs a mikrokontrollert egy konfigur\u00e1latlan \u00e1llapotb\u00f3l egy konfigur\u00e1lt \u00e1llapotba helyezi \u00e1t. A mikrokontrollernek \u00e1tadott crc param\u00e9ter t\u00e1rol\u00e1sra ker\u00fcl, \u00e9s a \"config\" v\u00e1lasz\u00fczenetekben visszak\u00fcld\u00e9sre ker\u00fcl a gazdag\u00e9pnek. A konvenci\u00f3 szerint az \u00e1llom\u00e1s 32 bites CRC-t vesz az \u00e1ltala k\u00e9rt konfigur\u00e1ci\u00f3r\u00f3l, \u00e9s a k\u00e9s\u0151bbi kommunik\u00e1ci\u00f3s munkamenetek kezdet\u00e9n ellen\u0151rzi, hogy a mikrokontrollerben t\u00e1rolt CRC pontosan megegyezik-e a k\u00edv\u00e1nt CRC-vel. Ha a CRC nem egyezik, akkor a gazdag\u00e9p tudja, hogy a mikrokontroller nem az \u00e1ltala k\u00edv\u00e1nt \u00e1llapotba lett konfigur\u00e1lva. Gyakori mikrokontroller objektumok \u00b6 Ez a szakasz n\u00e9h\u00e1ny gyakran haszn\u00e1lt konfigur\u00e1ci\u00f3s parancsot sorol fel. config_digital_out oid=%c pin=%u value=%c default_value=%c max_duration=%u : Ez a parancs l\u00e9trehoz egy bels\u0151 mikrokontroller objektumot a megadott GPIO 't\u0171' sz\u00e1m\u00e1ra. A t\u0171 digit\u00e1lis kimeneti m\u00f3dban lesz konfigur\u00e1lva, \u00e9s a 'value' \u00e1ltal megadott kezdeti \u00e9rt\u00e9kre lesz be\u00e1ll\u00edtva (0 az alacsony, 1 a magas). A digital_out objektum l\u00e9trehoz\u00e1sa lehet\u0151v\u00e9 teszi a gazdag\u00e9p sz\u00e1m\u00e1ra, hogy az adott t\u0171 GPIO friss\u00edt\u00e9seit meghat\u00e1rozott id\u0151pontokban \u00fctemezze (l\u00e1sd az al\u00e1bb ismertetett queue_digital_out parancsot). Ha a mikrokontroller szoftvere kikapcsol\u00e1si m\u00f3dba ker\u00fcl, akkor az \u00f6sszes konfigur\u00e1lt digital_out objektum 'default_value' \u00e9rt\u00e9kre ker\u00fcl. A 'max_duration' param\u00e9ter egy biztons\u00e1gi ellen\u0151rz\u00e9s megval\u00f3s\u00edt\u00e1s\u00e1ra szolg\u00e1l. Ha nem nulla, akkor ez a maxim\u00e1lis \u00f3rajelek sz\u00e1ma, amelyet a gazdag\u00e9p tov\u00e1bbi friss\u00edt\u00e9s n\u00e9lk\u00fcl az adott GPIO-t nem alap\u00e9rtelmezett \u00e9rt\u00e9kre \u00e1ll\u00edthatja. P\u00e9ld\u00e1ul, ha az alap\u00e9rtelmezett \u00e9rt\u00e9k nulla, a max_duration pedig 16000, akkor ha egy \u00e9rt\u00e9kre \u00e1ll\u00edtja a GPIO-t, akkor 16000 \u00f3rajelen bel\u00fcl \u00fajabb friss\u00edt\u00e9st kell \u00fctemeznie a GPIO-n (null\u00e1ra vagy egyre). Ez a biztons\u00e1gi funkci\u00f3 haszn\u00e1lhat\u00f3 a f\u0171t\u00e9si kimenetek biztos\u00edt\u00e1s\u00e1ra, hogy a gazdag\u00e9p ne kapcsolja be a f\u0171t\u00e9st, majd ne kapcsoljon ki. config_pwm_out oid=%c pin=%u cycle_ticks=%u value=%hu default_value=%hu max_duration=%u : Ez a parancs l\u00e9trehoz egy bels\u0151 objektumot a hardveralap\u00fa PWM-t\u0171kh\u00f6z, amelyek friss\u00edt\u00e9s\u00e9t a gazdag\u00e9p be tudja \u00fctemezni. Haszn\u00e1lata anal\u00f3g a config_digital_out paranccsal. A param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a 'set_pwm_out' \u00e9s a 'config_digital_out' parancsok le\u00edr\u00e1s\u00e1ban. config_analog_in oid=%c pin=%u : Ez a parancs egy t\u0171 anal\u00f3g bemeneti mintav\u00e9telez\u00e9si m\u00f3dban t\u00f6rt\u00e9n\u0151 konfigur\u00e1l\u00e1s\u00e1ra szolg\u00e1l. A konfigur\u00e1l\u00e1s ut\u00e1n a t\u0171 rendszeres id\u0151k\u00f6z\u00f6nk\u00e9nt mintav\u00e9telezhet\u0151 a query_analog_in paranccsal (l\u00e1sd al\u00e1bb). config_stepper oid=%c step_pin=%c dir_pin=%c invert_step=%c step_pulse_ticks=%u : Ez a parancs l\u00e9trehoz egy bels\u0151 l\u00e9ptet\u0151 objektumot. A 'step_pin' \u00e9s 'dir_pin' param\u00e9terek megadj\u00e1k a l\u00e9p\u00e9st \u00e9s ir\u00e1nyokat; ez a parancs digit\u00e1lis kimeneti m\u00f3dban konfigur\u00e1lja \u0151ket. Az 'invert_step' param\u00e9ter meghat\u00e1rozza, hogy a l\u00e9p\u00e9s emelked\u0151 \u00e9lre (invert_step=0) vagy cs\u00f6kken\u0151 \u00e9lre (invert_step=1) t\u00f6rt\u00e9njen. A 'step_pulse_ticks' param\u00e9ter a l\u00e9p\u00e9simpulzus minim\u00e1lis id\u0151tartam\u00e1t hat\u00e1rozza meg. Ha az MCU a 'STEPPER_BOTH_EDGE=1' konstansot export\u00e1lja, akkor a step_pulse_ticks=0 \u00e9s az invert_step=-1 be\u00e1ll\u00edt\u00e1sa a step_pin emelked\u0151 \u00e9s cs\u00f6kken\u0151 \u00e9leire t\u00f6rt\u00e9n\u0151 l\u00e9p\u00e9st is be\u00e1ll\u00edtja. config_endstop oid=%c pin=%c pull_up=%c stepper_count=%c : Ez a parancs l\u00e9trehoz egy bels\u0151 \"endstop\" objektumot. Ez a v\u00e9g\u00e1ll\u00e1si t\u0171k megad\u00e1s\u00e1ra \u00e9s a \"kezd\u0151pont\" m\u0171veletek enged\u00e9lyez\u00e9s\u00e9re szolg\u00e1l (l\u00e1sd al\u00e1bb az endstop_home parancsot). A parancs a megadott t\u0171t digit\u00e1lis bemeneti m\u00f3dban konfigur\u00e1lja. A 'pull_up' param\u00e9ter hat\u00e1rozza meg, hogy a hardver \u00e1ltal biztos\u00edtott pullup ellen\u00e1ll\u00e1sok a t\u0171h\u00f6z (ha vannak) enged\u00e9lyezve lesznek-e. A 'stepper_count' param\u00e9ter meghat\u00e1rozza a maxim\u00e1lis sz\u00e1m\u00fa steppert, amelyet ennek a v\u00e9g\u00e1ll\u00e1snak meg kell \u00e1ll\u00edtania egy kezd\u0151pont m\u0171velet sor\u00e1n (l\u00e1sd az endstop_home parancsot al\u00e1bb). config_spi oid=%c bus=%u pin=%u mode=%u rate=%u shutdown_msg=%*s : Ez a parancs l\u00e9trehoz egy bels\u0151 SPI objektumot. A spi_transfer \u00e9s spi_send parancsokkal egy\u00fctt haszn\u00e1lhat\u00f3 (l\u00e1sd al\u00e1bb). A \"bus\" azonos\u00edtja a haszn\u00e1lni k\u00edv\u00e1nt SPI-buszt (ha a mikrokontroller egyn\u00e9l t\u00f6bb SPI-busszal rendelkezik). A \"pin\" az eszk\u00f6z chipkiv\u00e1laszt\u00f3 (CS) t\u0171j\u00e9t hat\u00e1rozza meg. A \"mode\" az SPI m\u00f3dot jel\u00f6li (0 \u00e9s 3 k\u00f6z\u00f6tt kell lennie). A \"rate\" param\u00e9ter az SPI-busz sebess\u00e9g\u00e9t adja meg (m\u00e1sodpercenk\u00e9nti ciklusokban). V\u00e9g\u00fcl a \"shutdown_msg\" egy SPI-parancs, amelyet az adott eszk\u00f6znek kell k\u00fcldeni, ha a mikrokontroller le\u00e1ll\u00e1si \u00e1llapotba ker\u00fcl. config_spi_without_cs oid=%c bus=%u mode=%u rate=%u shutdown_msg=%*s : Ez a parancs hasonl\u00f3 a config_spi parancshoz, de CS t\u0171 defin\u00edci\u00f3 n\u00e9lk\u00fcl. Hasznos olyan SPI eszk\u00f6z\u00f6kn\u00e9l, amelyek nem rendelkeznek Chip Select vonallal. Gyakori parancsok \u00b6 Ez a szakasz n\u00e9h\u00e1ny gyakran haszn\u00e1lt fut\u00e1sidej\u0171 parancsot sorol fel. Val\u00f3sz\u00edn\u0171leg csak a Klipperbe betekint\u00e9st nyerni k\u00edv\u00e1n\u00f3 fejleszt\u0151k sz\u00e1m\u00e1ra \u00e9rdekes. set_digital_out_pwm_cycle oid=%c cycle_ticks=%u : Ez a parancs egy (config_digital_out \u00e1ltal l\u00e9trehozott) digit\u00e1lis kimeneti t\u0171t \u00fagy konfigur\u00e1l, hogy \"szoftveres PWM\"-et haszn\u00e1ljon. A 'cycle_ticks' a PWM-ciklushoz tartoz\u00f3 \u00f3rajelek sz\u00e1ma. Mivel a kimeneti kapcsol\u00e1s a mikrokontroller szoftver\u00e9ben val\u00f3sul meg, aj\u00e1nlott, hogy a 'cycle_ticks' 10 ms vagy ann\u00e1l nagyobb id\u0151nek feleljen meg. queue_digital_out oid=%c clock=%u on_ticks=%u : Ez a parancs egy digit\u00e1lis kimeneti GPIO t\u0171 v\u00e1lt\u00e1s\u00e1t \u00fctemezi a megadott \u00f3rajelen. A parancs haszn\u00e1lat\u00e1hoz a mikrokontroller konfigur\u00e1l\u00e1sa sor\u00e1n ki kell adni egy 'config_digital_out' parancsot ugyanazzal a 'oid' param\u00e9terrel. Ha a 'set_digital_out_pwm_cycle' parancsot h\u00edvt\u00e1k, akkor az 'on_ticks' a pwm-ciklus bekapcsol\u00e1si id\u0151tartama (\u00f3rajelekben). Ellenkez\u0151 esetben az 'on_ticks' \u00e9rt\u00e9k\u00e9nek vagy 0-nak (alacsony fesz\u00fclts\u00e9g eset\u00e9n) vagy 1-nek (magas fesz\u00fclts\u00e9g eset\u00e9n) kell lennie. queue_pwm_out oid=%c clock=%u value=%hu : Be\u00fctemezi a hardveres PWM kimeneti t\u0171 v\u00e1ltoz\u00e1s\u00e1t. L\u00e1sd a 'queue_digital_out' \u00e9s a 'config_pwm_out' parancsokat tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt. query_analog_in oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u min_value=%hu max_value=%hu : Ez a parancs be\u00e1ll\u00edtja az anal\u00f3g bemeneti mint\u00e1k ism\u00e9tl\u0151d\u0151 \u00fctemez\u00e9s\u00e9t. A parancs haszn\u00e1lat\u00e1hoz a mikrokontroller konfigur\u00e1l\u00e1sa sor\u00e1n ki kell adni egy 'config_analog_in' parancsot ugyanazzal az 'oid' param\u00e9terrel. A mint\u00e1k a 'clock' id\u0151pontt\u00f3l kezd\u0151dnek, a kapott \u00e9rt\u00e9kr\u0151l minden 'rest_ticks' \u00f3ra\u00fctemenk\u00e9nt jelent\u00e9st k\u00e9sz\u00edt, a 'sample_count' sz\u00e1m\u00fa alkalommal t\u00falmint\u00e1zza a mint\u00e1t, \u00e9s a t\u00falmint\u00e1zott mint\u00e1k k\u00f6z\u00f6tt 'sample_ticks' sz\u00e1m\u00fa \u00f3ra\u00fctemnyi sz\u00fcnetet tart. A 'min_value' \u00e9s 'max_value' param\u00e9terek egy biztons\u00e1gi funkci\u00f3t val\u00f3s\u00edtanak meg. A mikrokontroller szoftvere ellen\u0151rizni fogja, hogy a mintav\u00e9telezett \u00e9rt\u00e9k (az esetleges t\u00falmintav\u00e9telez\u00e9s ut\u00e1n) mindig a megadott tartom\u00e1nyon bel\u00fcl van-e. Ezt a f\u0171t\u0151testeket vez\u00e9rl\u0151 h\u0151szenzorokhoz csatlakoztatott t\u0171kkel val\u00f3 haszn\u00e1latra sz\u00e1nj\u00e1k. Ezzel ellen\u0151rizhet\u0151, hogy a f\u0171t\u0151test egy h\u0151m\u00e9rs\u00e9klet tartom\u00e1nyon bel\u00fcl van-e. get_clock : E parancs hat\u00e1s\u00e1ra a mikrokontroller egy \"\u00f3rajel\" v\u00e1lasz\u00fczenetet gener\u00e1l. A gazdag\u00e9p m\u00e1sodpercenk\u00e9nt egyszer k\u00fcldi el ezt a parancsot, hogy megkapja a mikrokontroller \u00f3rajel \u00e9rt\u00e9k\u00e9t, \u00e9s megbecs\u00fclje a gazdag\u00e9p \u00e9s a mikrokontroller \u00f3rajelei k\u00f6z\u00f6tti elt\u00e9r\u00e9st. Ez lehet\u0151v\u00e9 teszi a gazdag\u00e9p sz\u00e1m\u00e1ra a mikrokontroller \u00f3rajel\u00e9nek pontos becsl\u00e9s\u00e9t. L\u00e9ptet\u0151 parancsok \u00b6 queue_step oid=%c interval=%u count=%hu add=%hi : Ez a parancs \u00fctemezi a 'sz\u00e1m\u00edt\u00e1si' l\u00e9p\u00e9st az adott l\u00e9ptet\u0151h\u00f6z, az 'intervallum' l\u00e9p\u00e9sek k\u00f6z\u00f6tti \u00f3rajellel. Az els\u0151 l\u00e9p\u00e9s az 'intervallum' \u00f3rajelek sz\u00e1ma lesz az adott l\u00e9ptet\u0151 utols\u00f3 \u00fctemezett l\u00e9p\u00e9se \u00f3ta. Ha az 'add' nem nulla, akkor az intervallum minden l\u00e9p\u00e9s ut\u00e1n az 'add' \u00e9rt\u00e9kkel m\u00f3dosul. Ez a parancs a megadott intervallum/count/add szekvenci\u00e1t egy l\u00e9ptet\u0151k\u00e9nti sorba illeszti. A norm\u00e1l m\u0171k\u00f6d\u00e9s sor\u00e1n t\u00f6bb sz\u00e1z ilyen szekvencia \u00e1llhat a sorban. Az \u00faj szekvenci\u00e1k a sor v\u00e9g\u00e9re ker\u00fclnek, \u00e9s amint minden szekvencia teljes\u00edti a 'sz\u00e1m' l\u00e9p\u00e9sek sz\u00e1m\u00e1t, a sor elej\u00e9re ker\u00fclnek. Ez a rendszer lehet\u0151v\u00e9 teszi a mikrokontroller sz\u00e1m\u00e1ra, hogy t\u00f6bb sz\u00e1zezer l\u00e9p\u00e9st \u00e1ll\u00edtson sorba. Mindezt megb\u00edzhat\u00f3 \u00e9s kisz\u00e1m\u00edthat\u00f3 \u00fctemez\u00e9si id\u0151vel. set_next_step_dir oid=%c dir=%c : Ez a parancs adja meg a k\u00f6vetkez\u0151 queue_step parancs \u00e1ltal haszn\u00e1lt dir_pin \u00e9rt\u00e9k\u00e9t. reset_step_clock oid=%c clock=%u : Norm\u00e1lis esetben a l\u00e9p\u00e9s id\u0151z\u00edt\u00e9se az adott l\u00e9ptet\u0151 utols\u00f3 l\u00e9p\u00e9s\u00e9hez viszony\u00edtva t\u00f6rt\u00e9nik. Ez a parancs vissza\u00e1ll\u00edtja az \u00f3rajelet, \u00edgy a k\u00f6vetkez\u0151 l\u00e9p\u00e9s a megadott '\u00f3rajel' id\u0151ponthoz k\u00e9pest t\u00f6rt\u00e9nik. A gazdag\u00e9p \u00e1ltal\u00e1ban csak a nyomtat\u00e1s kezdet\u00e9n k\u00fcldi ezt a parancsot. stepper_get_position oid=%c : E parancs hat\u00e1s\u00e1ra a mikrokontroller egy \"stepper_position\" v\u00e1lasz\u00fczenetet gener\u00e1l a l\u00e9ptet\u0151 aktu\u00e1lis poz\u00edci\u00f3j\u00e1val. A poz\u00edci\u00f3 a dir=1-gyel gener\u00e1lt l\u00e9p\u00e9sek teljes sz\u00e1ma m\u00ednusz a dir=0-val gener\u00e1lt l\u00e9p\u00e9sek teljes sz\u00e1ma. endstop_home oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u pin_value=%c : Ezt a parancsot a l\u00e9ptet\u0151 \"kezd\u0151pont\" m\u0171veletek sor\u00e1n haszn\u00e1lj\u00e1k. A parancs haszn\u00e1lat\u00e1hoz a mikrokontroller konfigur\u00e1l\u00e1sa sor\u00e1n ki kell adni egy 'config_endstop' parancsot ugyanazzal az 'oid' param\u00e9terrel. Amikor ez a parancs megh\u00edv\u00e1sra ker\u00fcl, a mikrokontroller minden 'rest_ticks' \u00f3rajelenk\u00e9nt mintav\u00e9telezi az endstop-t\u0171t, \u00e9s ellen\u0151rzi, hogy annak \u00e9rt\u00e9ke megegyezik-e a 'pin_value' \u00e9rt\u00e9kkel. Ha az \u00e9rt\u00e9k megegyezik (\u00e9s tov\u00e1bbra is megegyezik a 'sample_count' tov\u00e1bbi 'sample_ticks' t\u00e1vols\u00e1gra elosztott mint\u00e1kon kereszt\u00fcl), akkor a kapcsol\u00f3d\u00f3 l\u00e9ptet\u0151 mozg\u00e1si sora t\u00f6rl\u0151dik, \u00e9s a l\u00e9ptet\u0151 azonnal meg\u00e1ll. A gazdag\u00e9p ezt a parancsot a kezd\u0151pont megval\u00f3s\u00edt\u00e1s\u00e1ra haszn\u00e1lja. A gazdag\u00e9p utas\u00edtja a v\u00e9g\u00e1ll\u00e1st, hogy mintav\u00e9telezzen a v\u00e9g\u00e1ll\u00e1si triggerre, majd egy sor queue_step parancsot ad ki a l\u00e9ptet\u0151 mozgat\u00e1s\u00e1ra a v\u00e9g\u00e1ll\u00e1s fel\u00e9. Amint a l\u00e9ptet\u0151 el\u00e9ri a v\u00e9g\u00e1ll\u00e1st, a kapcsol\u00f3 \u00e9rz\u00e9keli, a mozg\u00e1s meg\u00e1ll, \u00e9s a gazdag\u00e9pet \u00e9rtes\u00edti. Sor \u00e1thelyez\u00e9se \u00b6 Minden queue_step parancs a mikrovez\u00e9rl\u0151 \"move queue\" sor\u00e1ban l\u00e9v\u0151 bejegyz\u00e9st haszn\u00e1lja. Ez a v\u00e1r\u00f3lista a \"finalize_config\" parancs fogad\u00e1sakor ker\u00fcl kioszt\u00e1sra, \u00e9s a \"config\" v\u00e1lasz\u00fczenetekben jelenti a rendelkez\u00e9sre \u00e1ll\u00f3 v\u00e1r\u00f3lista-bejegyz\u00e9sek sz\u00e1m\u00e1t. A gazdag\u00e9p felel\u0151ss\u00e9ge, hogy a queue_step parancs elk\u00fcld\u00e9se el\u0151tt megbizonyosodjon arr\u00f3l, hogy van-e szabad hely a v\u00e1r\u00f3list\u00e1n. A gazdag\u00e9p ezt \u00fagy teszi, hogy kisz\u00e1m\u00edtja az egyes queue_step parancsok mikor fejez\u0151dnek be, \u00e9s ennek megfelel\u0151en \u00fctemezi az \u00faj queue_step parancsokat. SPI parancsok \u00b6 spi_transfer oid=%c data=%*s : Ez a parancs arra k\u00e9szteti a mikrokontrollert, hogy a 'data'-t a 'oid' \u00e1ltal megadott SPI eszk\u00f6zre k\u00fcldje, \u00e9s egy \"spi_transfer_response\" v\u00e1lasz\u00fczenetet gener\u00e1l az \u00e1tvitel sor\u00e1n visszak\u00fcld\u00f6tt adatokkal. spi_send oid=%c data=%*s : Ez a parancs hasonl\u00f3 az \"spi_transfer\" parancshoz, de nem gener\u00e1l \"spi_transfer_response\" \u00fczenetet.","title":"MCU parancsok"},{"location":"MCU_Commands.html#mcu-parancsok","text":"Ez a dokumentum a Klipper \"gazdag\u00e9p\" szoftvere \u00e1ltal k\u00fcld\u00f6tt \u00e9s a Klipper mikrokontroller szoftvere \u00e1ltal feldolgozott alacsony szint\u0171 mikrokontroller-parancsokr\u00f3l ny\u00fajt inform\u00e1ci\u00f3t. Ez a dokumentum nem hiteles hivatkoz\u00e1s ezekre a parancsokra, \u00e9s nem is az \u00f6sszes rendelkez\u00e9sre \u00e1ll\u00f3 parancs kiz\u00e1r\u00f3lagos list\u00e1ja. Ez a dokumentum hasznos lehet az alacsony szint\u0171 mikrokontroller-parancsok meg\u00e9rt\u00e9se ir\u00e1nt \u00e9rdekl\u0151d\u0151 fejleszt\u0151k sz\u00e1m\u00e1ra. A parancsok form\u00e1tum\u00e1val \u00e9s tov\u00e1bb\u00edt\u00e1s\u00e1val kapcsolatos tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a protokol dokumentumot. A parancsok itt a \"printf\" st\u00edlus\u00fa szintaxisukkal vannak le\u00edrva - azok sz\u00e1m\u00e1ra, akik nem ismerik ezt a form\u00e1tumot, csak azt kell megjegyezni, hogy ahol egy '%...' szekvencia l\u00e1that\u00f3, azt egy t\u00e9nyleges eg\u00e9sz sz\u00e1mmal kell helyettes\u00edteni. P\u00e9ld\u00e1ul a \"count=%c\" le\u00edr\u00e1st a \"count=10\" sz\u00f6veggel lehet helyettes\u00edteni. Vegy\u00fck figyelembe, hogy a \"felsorol\u00e1snak\" tekintett param\u00e9terek (l\u00e1sd a fenti protokolldokumentumot) string \u00e9rt\u00e9ket vesznek fel, amelyet a mikrokontroller automatikusan eg\u00e9sz \u00e9rt\u00e9kk\u00e9 konvert\u00e1l. Ez a \"pin\" nev\u0171 (vagy \"_pin\" ut\u00f3taggal rendelkez\u0151) param\u00e9terekn\u00e9l gyakori.","title":"MCU parancsok"},{"location":"MCU_Commands.html#inditasi-parancsok","text":"A mikrokontroller \u00e9s perif\u00e9ri\u00e1i konfigur\u00e1l\u00e1s\u00e1hoz sz\u00fcks\u00e9g lehet bizonyos egyszeri m\u0171veletek elv\u00e9gz\u00e9s\u00e9re. Ez a szakasz erre a c\u00e9lra rendelkez\u00e9sre \u00e1ll\u00f3 \u00e1ltal\u00e1nos parancsokat sorolja fel. A mikrokontroller legt\u00f6bb parancs\u00e1t\u00f3l elt\u00e9r\u0151en ezek a parancsok a fogad\u00e1suk ut\u00e1n azonnal lefutnak, \u00e9s nem ig\u00e9nyelnek k\u00fcl\u00f6n\u00f6sebb be\u00e1ll\u00edt\u00e1sokat. Gyakori ind\u00edt\u00e1si parancsok: set_digital_out pin=%u value=%c : Ez a parancs az adott t\u0171t azonnal digit\u00e1lis kimeneti GPIO-k\u00e9nt konfigur\u00e1lja, \u00e9s vagy alacsony (value=0) vagy magas (value=1) szintre \u00e1ll\u00edtja. Ez a parancs hasznos lehet a LED-ek kezdeti \u00e9rt\u00e9k\u00e9nek konfigur\u00e1l\u00e1s\u00e1hoz \u00e9s a l\u00e9ptet\u0151 vez\u00e9rl\u0151 mikrol\u00e9p\u00e9s t\u0171k kezdeti \u00e9rt\u00e9k\u00e9nek konfigur\u00e1l\u00e1s\u00e1hoz. set_pwm_out pin=%u cycle_ticks=%u value=%hu : Ez a parancs azonnal be\u00e1ll\u00edtja az adott t\u0171t, hogy hardveres impulzussz\u00e9less\u00e9g-modul\u00e1ci\u00f3t (PWM) haszn\u00e1ljon a megadott sz\u00e1m\u00fa cycle_tickkel. A \"cycle_ticks\" az MCU \u00f3rajel\u00e9nek a sz\u00e1ma, ameddig az egyes bekapcsol\u00e1si \u00e9s kikapcsol\u00e1si ciklusoknak tartaniuk kell. Az 1-es cycle_ticks \u00e9rt\u00e9kkel a lehet\u0151 leggyorsabb ciklusid\u0151 k\u00e9rhet\u0151. A \"value\" param\u00e9ter 0 \u00e9s 255 k\u00f6z\u00f6tt van, 0 a teljesen kikapcsolt \u00e1llapotot, 255 pedig a teljesen bekapcsolt \u00e1llapotot jelenti. Ez a parancs hasznos lehet a CPU \u00e9s a nyomtat\u00f3fej h\u0171t\u0151 ventil\u00e1torok enged\u00e9lyez\u00e9s\u00e9hez.","title":"Ind\u00edt\u00e1si parancsok"},{"location":"MCU_Commands.html#alacsony-szintu-mikrokontroller-konfiguracio","text":"A mikrokontroller legt\u00f6bb parancsa a sikeres ind\u00edt\u00e1s el\u0151tt kezdeti be\u00e1ll\u00edt\u00e1st ig\u00e9nyel. Ez a szakasz \u00e1ttekint\u00e9st ny\u00fajt a konfigur\u00e1ci\u00f3s folyamatr\u00f3l. Ez \u00e9s a k\u00f6vetkez\u0151 szakaszok val\u00f3sz\u00edn\u0171leg csak a Klipper bels\u0151 r\u00e9szletei ir\u00e1nt \u00e9rdekl\u0151d\u0151 fejleszt\u0151k sz\u00e1m\u00e1ra \u00e9rdekesek. Amikor a gazdag\u00e9p el\u0151sz\u00f6r csatlakozik a mikrokontrollerhez, mindig egy adatsz\u00f3t\u00e1r lek\u00e9r\u00e9s\u00e9vel kezdi (tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd protokolt ). Az adatsz\u00f3t\u00e1r lek\u00e9r\u00e9se ut\u00e1n a gazdag\u00e9p ellen\u0151rzi, hogy a mikrokontroller \"konfigur\u00e1lt\" \u00e1llapotban van-e, \u00e9s ha nem, akkor konfigur\u00e1lja. A konfigur\u00e1l\u00e1s a k\u00f6vetkez\u0151 f\u00e1zisokat foglalja mag\u00e1ban: get_config : A gazdag\u00e9p ellen\u0151rzi, hogy a mikrokontroller m\u00e1r konfigur\u00e1lva van-e. A mikrokontroller erre a parancsra egy \"config\" v\u00e1lasz\u00fczenettel v\u00e1laszol. A mikrokontroller szoftvere bekapcsol\u00e1skor mindig konfigur\u00e1latlan \u00e1llapotban indul. Ebben az \u00e1llapotban marad mindaddig, am\u00edg a gazdag\u00e9p be nem fejezi a konfigur\u00e1ci\u00f3s folyamatokat (a finalize_config parancs kiad\u00e1s\u00e1val). Ha a mikrokontroller m\u00e1r konfigur\u00e1lva van egy kor\u00e1bbi munkamenetb\u0151l (\u00e9s a k\u00edv\u00e1nt be\u00e1ll\u00edt\u00e1sokkal van konfigur\u00e1lva), akkor a gazdag\u00e9pnek nincs sz\u00fcks\u00e9ge tov\u00e1bbi l\u00e9p\u00e9sekre, \u00e9s a konfigur\u00e1ci\u00f3s folyamat sikeresen befejez\u0151dik. allocate_oids count=%c : Ezt a parancsot az\u00e9rt adjuk ki, hogy t\u00e1j\u00e9koztassuk a mikrokontrollert az objektum-id-k (oid) maxim\u00e1lis sz\u00e1m\u00e1r\u00f3l, amelyre a gazdag\u00e9pnek sz\u00fcks\u00e9ge van. Ezt a parancsot csak egyszer lehet kiadni. Az oid egy eg\u00e9sz sz\u00e1m\u00fa azonos\u00edt\u00f3, amely minden egyes l\u00e9ptet\u0151h\u00f6z, minden v\u00e9g\u00e1ll\u00e1shoz \u00e9s minden \u00fctemezhet\u0151 GPIO t\u0171h\u00f6z hozz\u00e1rendelt. A gazdag\u00e9p el\u0151re meghat\u00e1rozza a hardver m\u0171k\u00f6dtet\u00e9s\u00e9hez sz\u00fcks\u00e9ges oid-ek sz\u00e1m\u00e1t, \u00e9s ezt \u00e1tadja a mikrokontrollernek, hogy az elegend\u0151 mem\u00f3ri\u00e1t rendelhessen az oid-r\u0151l a bels\u0151 objektumra val\u00f3 lek\u00e9pez\u00e9s t\u00e1rol\u00e1s\u00e1hoz. config_XXX oid=%c ... : A konvenci\u00f3 szerint minden \"config_\" el\u0151taggal kezd\u0151d\u0151 parancs l\u00e9trehoz egy \u00faj mikrokontroller objektumot, \u00e9s hozz\u00e1rendeli a megadott oid-et. P\u00e9ld\u00e1ul a config_digital_out parancs a megadott t\u0171t digit\u00e1lis kimeneti GPIO-k\u00e9nt konfigur\u00e1lja, \u00e9s l\u00e9trehoz egy bels\u0151 objektumot, amelyet a gazdag\u00e9p haszn\u00e1lhat az adott GPIO m\u00f3dos\u00edt\u00e1sainak \u00fctemez\u00e9s\u00e9re. A config parancsba \u00e1tadott oid param\u00e9tert a gazdag\u00e9p v\u00e1lasztja ki, \u00e9s annak nulla \u00e9s az allocate_oids parancsban megadott maxim\u00e1lis sz\u00e1m k\u00f6z\u00f6tt kell lennie. A config parancsok csak akkor futtathat\u00f3k, ha a mikrokontroller nincs konfigur\u00e1lt \u00e1llapotban (azaz a gazdag\u00e9p \u00e1ltal elk\u00fcld\u00f6tt finalize_config parancs el\u0151tt) \u00e9s az allocate_oids parancs elk\u00fcld\u00e9se ut\u00e1n. finalize_config crc=%u : A finalize_config parancs a mikrokontrollert egy konfigur\u00e1latlan \u00e1llapotb\u00f3l egy konfigur\u00e1lt \u00e1llapotba helyezi \u00e1t. A mikrokontrollernek \u00e1tadott crc param\u00e9ter t\u00e1rol\u00e1sra ker\u00fcl, \u00e9s a \"config\" v\u00e1lasz\u00fczenetekben visszak\u00fcld\u00e9sre ker\u00fcl a gazdag\u00e9pnek. A konvenci\u00f3 szerint az \u00e1llom\u00e1s 32 bites CRC-t vesz az \u00e1ltala k\u00e9rt konfigur\u00e1ci\u00f3r\u00f3l, \u00e9s a k\u00e9s\u0151bbi kommunik\u00e1ci\u00f3s munkamenetek kezdet\u00e9n ellen\u0151rzi, hogy a mikrokontrollerben t\u00e1rolt CRC pontosan megegyezik-e a k\u00edv\u00e1nt CRC-vel. Ha a CRC nem egyezik, akkor a gazdag\u00e9p tudja, hogy a mikrokontroller nem az \u00e1ltala k\u00edv\u00e1nt \u00e1llapotba lett konfigur\u00e1lva.","title":"Alacsony szint\u0171 mikrokontroller konfigur\u00e1ci\u00f3"},{"location":"MCU_Commands.html#gyakori-mikrokontroller-objektumok","text":"Ez a szakasz n\u00e9h\u00e1ny gyakran haszn\u00e1lt konfigur\u00e1ci\u00f3s parancsot sorol fel. config_digital_out oid=%c pin=%u value=%c default_value=%c max_duration=%u : Ez a parancs l\u00e9trehoz egy bels\u0151 mikrokontroller objektumot a megadott GPIO 't\u0171' sz\u00e1m\u00e1ra. A t\u0171 digit\u00e1lis kimeneti m\u00f3dban lesz konfigur\u00e1lva, \u00e9s a 'value' \u00e1ltal megadott kezdeti \u00e9rt\u00e9kre lesz be\u00e1ll\u00edtva (0 az alacsony, 1 a magas). A digital_out objektum l\u00e9trehoz\u00e1sa lehet\u0151v\u00e9 teszi a gazdag\u00e9p sz\u00e1m\u00e1ra, hogy az adott t\u0171 GPIO friss\u00edt\u00e9seit meghat\u00e1rozott id\u0151pontokban \u00fctemezze (l\u00e1sd az al\u00e1bb ismertetett queue_digital_out parancsot). Ha a mikrokontroller szoftvere kikapcsol\u00e1si m\u00f3dba ker\u00fcl, akkor az \u00f6sszes konfigur\u00e1lt digital_out objektum 'default_value' \u00e9rt\u00e9kre ker\u00fcl. A 'max_duration' param\u00e9ter egy biztons\u00e1gi ellen\u0151rz\u00e9s megval\u00f3s\u00edt\u00e1s\u00e1ra szolg\u00e1l. Ha nem nulla, akkor ez a maxim\u00e1lis \u00f3rajelek sz\u00e1ma, amelyet a gazdag\u00e9p tov\u00e1bbi friss\u00edt\u00e9s n\u00e9lk\u00fcl az adott GPIO-t nem alap\u00e9rtelmezett \u00e9rt\u00e9kre \u00e1ll\u00edthatja. P\u00e9ld\u00e1ul, ha az alap\u00e9rtelmezett \u00e9rt\u00e9k nulla, a max_duration pedig 16000, akkor ha egy \u00e9rt\u00e9kre \u00e1ll\u00edtja a GPIO-t, akkor 16000 \u00f3rajelen bel\u00fcl \u00fajabb friss\u00edt\u00e9st kell \u00fctemeznie a GPIO-n (null\u00e1ra vagy egyre). Ez a biztons\u00e1gi funkci\u00f3 haszn\u00e1lhat\u00f3 a f\u0171t\u00e9si kimenetek biztos\u00edt\u00e1s\u00e1ra, hogy a gazdag\u00e9p ne kapcsolja be a f\u0171t\u00e9st, majd ne kapcsoljon ki. config_pwm_out oid=%c pin=%u cycle_ticks=%u value=%hu default_value=%hu max_duration=%u : Ez a parancs l\u00e9trehoz egy bels\u0151 objektumot a hardveralap\u00fa PWM-t\u0171kh\u00f6z, amelyek friss\u00edt\u00e9s\u00e9t a gazdag\u00e9p be tudja \u00fctemezni. Haszn\u00e1lata anal\u00f3g a config_digital_out paranccsal. A param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a 'set_pwm_out' \u00e9s a 'config_digital_out' parancsok le\u00edr\u00e1s\u00e1ban. config_analog_in oid=%c pin=%u : Ez a parancs egy t\u0171 anal\u00f3g bemeneti mintav\u00e9telez\u00e9si m\u00f3dban t\u00f6rt\u00e9n\u0151 konfigur\u00e1l\u00e1s\u00e1ra szolg\u00e1l. A konfigur\u00e1l\u00e1s ut\u00e1n a t\u0171 rendszeres id\u0151k\u00f6z\u00f6nk\u00e9nt mintav\u00e9telezhet\u0151 a query_analog_in paranccsal (l\u00e1sd al\u00e1bb). config_stepper oid=%c step_pin=%c dir_pin=%c invert_step=%c step_pulse_ticks=%u : Ez a parancs l\u00e9trehoz egy bels\u0151 l\u00e9ptet\u0151 objektumot. A 'step_pin' \u00e9s 'dir_pin' param\u00e9terek megadj\u00e1k a l\u00e9p\u00e9st \u00e9s ir\u00e1nyokat; ez a parancs digit\u00e1lis kimeneti m\u00f3dban konfigur\u00e1lja \u0151ket. Az 'invert_step' param\u00e9ter meghat\u00e1rozza, hogy a l\u00e9p\u00e9s emelked\u0151 \u00e9lre (invert_step=0) vagy cs\u00f6kken\u0151 \u00e9lre (invert_step=1) t\u00f6rt\u00e9njen. A 'step_pulse_ticks' param\u00e9ter a l\u00e9p\u00e9simpulzus minim\u00e1lis id\u0151tartam\u00e1t hat\u00e1rozza meg. Ha az MCU a 'STEPPER_BOTH_EDGE=1' konstansot export\u00e1lja, akkor a step_pulse_ticks=0 \u00e9s az invert_step=-1 be\u00e1ll\u00edt\u00e1sa a step_pin emelked\u0151 \u00e9s cs\u00f6kken\u0151 \u00e9leire t\u00f6rt\u00e9n\u0151 l\u00e9p\u00e9st is be\u00e1ll\u00edtja. config_endstop oid=%c pin=%c pull_up=%c stepper_count=%c : Ez a parancs l\u00e9trehoz egy bels\u0151 \"endstop\" objektumot. Ez a v\u00e9g\u00e1ll\u00e1si t\u0171k megad\u00e1s\u00e1ra \u00e9s a \"kezd\u0151pont\" m\u0171veletek enged\u00e9lyez\u00e9s\u00e9re szolg\u00e1l (l\u00e1sd al\u00e1bb az endstop_home parancsot). A parancs a megadott t\u0171t digit\u00e1lis bemeneti m\u00f3dban konfigur\u00e1lja. A 'pull_up' param\u00e9ter hat\u00e1rozza meg, hogy a hardver \u00e1ltal biztos\u00edtott pullup ellen\u00e1ll\u00e1sok a t\u0171h\u00f6z (ha vannak) enged\u00e9lyezve lesznek-e. A 'stepper_count' param\u00e9ter meghat\u00e1rozza a maxim\u00e1lis sz\u00e1m\u00fa steppert, amelyet ennek a v\u00e9g\u00e1ll\u00e1snak meg kell \u00e1ll\u00edtania egy kezd\u0151pont m\u0171velet sor\u00e1n (l\u00e1sd az endstop_home parancsot al\u00e1bb). config_spi oid=%c bus=%u pin=%u mode=%u rate=%u shutdown_msg=%*s : Ez a parancs l\u00e9trehoz egy bels\u0151 SPI objektumot. A spi_transfer \u00e9s spi_send parancsokkal egy\u00fctt haszn\u00e1lhat\u00f3 (l\u00e1sd al\u00e1bb). A \"bus\" azonos\u00edtja a haszn\u00e1lni k\u00edv\u00e1nt SPI-buszt (ha a mikrokontroller egyn\u00e9l t\u00f6bb SPI-busszal rendelkezik). A \"pin\" az eszk\u00f6z chipkiv\u00e1laszt\u00f3 (CS) t\u0171j\u00e9t hat\u00e1rozza meg. A \"mode\" az SPI m\u00f3dot jel\u00f6li (0 \u00e9s 3 k\u00f6z\u00f6tt kell lennie). A \"rate\" param\u00e9ter az SPI-busz sebess\u00e9g\u00e9t adja meg (m\u00e1sodpercenk\u00e9nti ciklusokban). V\u00e9g\u00fcl a \"shutdown_msg\" egy SPI-parancs, amelyet az adott eszk\u00f6znek kell k\u00fcldeni, ha a mikrokontroller le\u00e1ll\u00e1si \u00e1llapotba ker\u00fcl. config_spi_without_cs oid=%c bus=%u mode=%u rate=%u shutdown_msg=%*s : Ez a parancs hasonl\u00f3 a config_spi parancshoz, de CS t\u0171 defin\u00edci\u00f3 n\u00e9lk\u00fcl. Hasznos olyan SPI eszk\u00f6z\u00f6kn\u00e9l, amelyek nem rendelkeznek Chip Select vonallal.","title":"Gyakori mikrokontroller objektumok"},{"location":"MCU_Commands.html#gyakori-parancsok","text":"Ez a szakasz n\u00e9h\u00e1ny gyakran haszn\u00e1lt fut\u00e1sidej\u0171 parancsot sorol fel. Val\u00f3sz\u00edn\u0171leg csak a Klipperbe betekint\u00e9st nyerni k\u00edv\u00e1n\u00f3 fejleszt\u0151k sz\u00e1m\u00e1ra \u00e9rdekes. set_digital_out_pwm_cycle oid=%c cycle_ticks=%u : Ez a parancs egy (config_digital_out \u00e1ltal l\u00e9trehozott) digit\u00e1lis kimeneti t\u0171t \u00fagy konfigur\u00e1l, hogy \"szoftveres PWM\"-et haszn\u00e1ljon. A 'cycle_ticks' a PWM-ciklushoz tartoz\u00f3 \u00f3rajelek sz\u00e1ma. Mivel a kimeneti kapcsol\u00e1s a mikrokontroller szoftver\u00e9ben val\u00f3sul meg, aj\u00e1nlott, hogy a 'cycle_ticks' 10 ms vagy ann\u00e1l nagyobb id\u0151nek feleljen meg. queue_digital_out oid=%c clock=%u on_ticks=%u : Ez a parancs egy digit\u00e1lis kimeneti GPIO t\u0171 v\u00e1lt\u00e1s\u00e1t \u00fctemezi a megadott \u00f3rajelen. A parancs haszn\u00e1lat\u00e1hoz a mikrokontroller konfigur\u00e1l\u00e1sa sor\u00e1n ki kell adni egy 'config_digital_out' parancsot ugyanazzal a 'oid' param\u00e9terrel. Ha a 'set_digital_out_pwm_cycle' parancsot h\u00edvt\u00e1k, akkor az 'on_ticks' a pwm-ciklus bekapcsol\u00e1si id\u0151tartama (\u00f3rajelekben). Ellenkez\u0151 esetben az 'on_ticks' \u00e9rt\u00e9k\u00e9nek vagy 0-nak (alacsony fesz\u00fclts\u00e9g eset\u00e9n) vagy 1-nek (magas fesz\u00fclts\u00e9g eset\u00e9n) kell lennie. queue_pwm_out oid=%c clock=%u value=%hu : Be\u00fctemezi a hardveres PWM kimeneti t\u0171 v\u00e1ltoz\u00e1s\u00e1t. L\u00e1sd a 'queue_digital_out' \u00e9s a 'config_pwm_out' parancsokat tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt. query_analog_in oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u min_value=%hu max_value=%hu : Ez a parancs be\u00e1ll\u00edtja az anal\u00f3g bemeneti mint\u00e1k ism\u00e9tl\u0151d\u0151 \u00fctemez\u00e9s\u00e9t. A parancs haszn\u00e1lat\u00e1hoz a mikrokontroller konfigur\u00e1l\u00e1sa sor\u00e1n ki kell adni egy 'config_analog_in' parancsot ugyanazzal az 'oid' param\u00e9terrel. A mint\u00e1k a 'clock' id\u0151pontt\u00f3l kezd\u0151dnek, a kapott \u00e9rt\u00e9kr\u0151l minden 'rest_ticks' \u00f3ra\u00fctemenk\u00e9nt jelent\u00e9st k\u00e9sz\u00edt, a 'sample_count' sz\u00e1m\u00fa alkalommal t\u00falmint\u00e1zza a mint\u00e1t, \u00e9s a t\u00falmint\u00e1zott mint\u00e1k k\u00f6z\u00f6tt 'sample_ticks' sz\u00e1m\u00fa \u00f3ra\u00fctemnyi sz\u00fcnetet tart. A 'min_value' \u00e9s 'max_value' param\u00e9terek egy biztons\u00e1gi funkci\u00f3t val\u00f3s\u00edtanak meg. A mikrokontroller szoftvere ellen\u0151rizni fogja, hogy a mintav\u00e9telezett \u00e9rt\u00e9k (az esetleges t\u00falmintav\u00e9telez\u00e9s ut\u00e1n) mindig a megadott tartom\u00e1nyon bel\u00fcl van-e. Ezt a f\u0171t\u0151testeket vez\u00e9rl\u0151 h\u0151szenzorokhoz csatlakoztatott t\u0171kkel val\u00f3 haszn\u00e1latra sz\u00e1nj\u00e1k. Ezzel ellen\u0151rizhet\u0151, hogy a f\u0171t\u0151test egy h\u0151m\u00e9rs\u00e9klet tartom\u00e1nyon bel\u00fcl van-e. get_clock : E parancs hat\u00e1s\u00e1ra a mikrokontroller egy \"\u00f3rajel\" v\u00e1lasz\u00fczenetet gener\u00e1l. A gazdag\u00e9p m\u00e1sodpercenk\u00e9nt egyszer k\u00fcldi el ezt a parancsot, hogy megkapja a mikrokontroller \u00f3rajel \u00e9rt\u00e9k\u00e9t, \u00e9s megbecs\u00fclje a gazdag\u00e9p \u00e9s a mikrokontroller \u00f3rajelei k\u00f6z\u00f6tti elt\u00e9r\u00e9st. Ez lehet\u0151v\u00e9 teszi a gazdag\u00e9p sz\u00e1m\u00e1ra a mikrokontroller \u00f3rajel\u00e9nek pontos becsl\u00e9s\u00e9t.","title":"Gyakori parancsok"},{"location":"MCU_Commands.html#lepteto-parancsok","text":"queue_step oid=%c interval=%u count=%hu add=%hi : Ez a parancs \u00fctemezi a 'sz\u00e1m\u00edt\u00e1si' l\u00e9p\u00e9st az adott l\u00e9ptet\u0151h\u00f6z, az 'intervallum' l\u00e9p\u00e9sek k\u00f6z\u00f6tti \u00f3rajellel. Az els\u0151 l\u00e9p\u00e9s az 'intervallum' \u00f3rajelek sz\u00e1ma lesz az adott l\u00e9ptet\u0151 utols\u00f3 \u00fctemezett l\u00e9p\u00e9se \u00f3ta. Ha az 'add' nem nulla, akkor az intervallum minden l\u00e9p\u00e9s ut\u00e1n az 'add' \u00e9rt\u00e9kkel m\u00f3dosul. Ez a parancs a megadott intervallum/count/add szekvenci\u00e1t egy l\u00e9ptet\u0151k\u00e9nti sorba illeszti. A norm\u00e1l m\u0171k\u00f6d\u00e9s sor\u00e1n t\u00f6bb sz\u00e1z ilyen szekvencia \u00e1llhat a sorban. Az \u00faj szekvenci\u00e1k a sor v\u00e9g\u00e9re ker\u00fclnek, \u00e9s amint minden szekvencia teljes\u00edti a 'sz\u00e1m' l\u00e9p\u00e9sek sz\u00e1m\u00e1t, a sor elej\u00e9re ker\u00fclnek. Ez a rendszer lehet\u0151v\u00e9 teszi a mikrokontroller sz\u00e1m\u00e1ra, hogy t\u00f6bb sz\u00e1zezer l\u00e9p\u00e9st \u00e1ll\u00edtson sorba. Mindezt megb\u00edzhat\u00f3 \u00e9s kisz\u00e1m\u00edthat\u00f3 \u00fctemez\u00e9si id\u0151vel. set_next_step_dir oid=%c dir=%c : Ez a parancs adja meg a k\u00f6vetkez\u0151 queue_step parancs \u00e1ltal haszn\u00e1lt dir_pin \u00e9rt\u00e9k\u00e9t. reset_step_clock oid=%c clock=%u : Norm\u00e1lis esetben a l\u00e9p\u00e9s id\u0151z\u00edt\u00e9se az adott l\u00e9ptet\u0151 utols\u00f3 l\u00e9p\u00e9s\u00e9hez viszony\u00edtva t\u00f6rt\u00e9nik. Ez a parancs vissza\u00e1ll\u00edtja az \u00f3rajelet, \u00edgy a k\u00f6vetkez\u0151 l\u00e9p\u00e9s a megadott '\u00f3rajel' id\u0151ponthoz k\u00e9pest t\u00f6rt\u00e9nik. A gazdag\u00e9p \u00e1ltal\u00e1ban csak a nyomtat\u00e1s kezdet\u00e9n k\u00fcldi ezt a parancsot. stepper_get_position oid=%c : E parancs hat\u00e1s\u00e1ra a mikrokontroller egy \"stepper_position\" v\u00e1lasz\u00fczenetet gener\u00e1l a l\u00e9ptet\u0151 aktu\u00e1lis poz\u00edci\u00f3j\u00e1val. A poz\u00edci\u00f3 a dir=1-gyel gener\u00e1lt l\u00e9p\u00e9sek teljes sz\u00e1ma m\u00ednusz a dir=0-val gener\u00e1lt l\u00e9p\u00e9sek teljes sz\u00e1ma. endstop_home oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u pin_value=%c : Ezt a parancsot a l\u00e9ptet\u0151 \"kezd\u0151pont\" m\u0171veletek sor\u00e1n haszn\u00e1lj\u00e1k. A parancs haszn\u00e1lat\u00e1hoz a mikrokontroller konfigur\u00e1l\u00e1sa sor\u00e1n ki kell adni egy 'config_endstop' parancsot ugyanazzal az 'oid' param\u00e9terrel. Amikor ez a parancs megh\u00edv\u00e1sra ker\u00fcl, a mikrokontroller minden 'rest_ticks' \u00f3rajelenk\u00e9nt mintav\u00e9telezi az endstop-t\u0171t, \u00e9s ellen\u0151rzi, hogy annak \u00e9rt\u00e9ke megegyezik-e a 'pin_value' \u00e9rt\u00e9kkel. Ha az \u00e9rt\u00e9k megegyezik (\u00e9s tov\u00e1bbra is megegyezik a 'sample_count' tov\u00e1bbi 'sample_ticks' t\u00e1vols\u00e1gra elosztott mint\u00e1kon kereszt\u00fcl), akkor a kapcsol\u00f3d\u00f3 l\u00e9ptet\u0151 mozg\u00e1si sora t\u00f6rl\u0151dik, \u00e9s a l\u00e9ptet\u0151 azonnal meg\u00e1ll. A gazdag\u00e9p ezt a parancsot a kezd\u0151pont megval\u00f3s\u00edt\u00e1s\u00e1ra haszn\u00e1lja. A gazdag\u00e9p utas\u00edtja a v\u00e9g\u00e1ll\u00e1st, hogy mintav\u00e9telezzen a v\u00e9g\u00e1ll\u00e1si triggerre, majd egy sor queue_step parancsot ad ki a l\u00e9ptet\u0151 mozgat\u00e1s\u00e1ra a v\u00e9g\u00e1ll\u00e1s fel\u00e9. Amint a l\u00e9ptet\u0151 el\u00e9ri a v\u00e9g\u00e1ll\u00e1st, a kapcsol\u00f3 \u00e9rz\u00e9keli, a mozg\u00e1s meg\u00e1ll, \u00e9s a gazdag\u00e9pet \u00e9rtes\u00edti.","title":"L\u00e9ptet\u0151 parancsok"},{"location":"MCU_Commands.html#sor-athelyezese","text":"Minden queue_step parancs a mikrovez\u00e9rl\u0151 \"move queue\" sor\u00e1ban l\u00e9v\u0151 bejegyz\u00e9st haszn\u00e1lja. Ez a v\u00e1r\u00f3lista a \"finalize_config\" parancs fogad\u00e1sakor ker\u00fcl kioszt\u00e1sra, \u00e9s a \"config\" v\u00e1lasz\u00fczenetekben jelenti a rendelkez\u00e9sre \u00e1ll\u00f3 v\u00e1r\u00f3lista-bejegyz\u00e9sek sz\u00e1m\u00e1t. A gazdag\u00e9p felel\u0151ss\u00e9ge, hogy a queue_step parancs elk\u00fcld\u00e9se el\u0151tt megbizonyosodjon arr\u00f3l, hogy van-e szabad hely a v\u00e1r\u00f3list\u00e1n. A gazdag\u00e9p ezt \u00fagy teszi, hogy kisz\u00e1m\u00edtja az egyes queue_step parancsok mikor fejez\u0151dnek be, \u00e9s ennek megfelel\u0151en \u00fctemezi az \u00faj queue_step parancsokat.","title":"Sor \u00e1thelyez\u00e9se"},{"location":"MCU_Commands.html#spi-parancsok","text":"spi_transfer oid=%c data=%*s : Ez a parancs arra k\u00e9szteti a mikrokontrollert, hogy a 'data'-t a 'oid' \u00e1ltal megadott SPI eszk\u00f6zre k\u00fcldje, \u00e9s egy \"spi_transfer_response\" v\u00e1lasz\u00fczenetet gener\u00e1l az \u00e1tvitel sor\u00e1n visszak\u00fcld\u00f6tt adatokkal. spi_send oid=%c data=%*s : Ez a parancs hasonl\u00f3 az \"spi_transfer\" parancshoz, de nem gener\u00e1l \"spi_transfer_response\" \u00fczenetet.","title":"SPI parancsok"},{"location":"Manual_Level.html","text":"K\u00e9zi szintez\u00e9s \u00b6 Ez a dokumentum a Z v\u00e9g\u00e1ll\u00e1s kalibr\u00e1l\u00e1s\u00e1hoz \u00e9s a t\u00e1rgyasztalt kiegyenl\u00edt\u0151 csavarok be\u00e1ll\u00edt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges eszk\u00f6z\u00f6ket ismerteti. Z v\u00e9g\u00e1ll\u00e1s kalibr\u00e1l\u00e1sa \u00b6 A pontos Z v\u00e9g\u00e1ll\u00e1s poz\u00edci\u00f3ja kritikus fontoss\u00e1g\u00fa a j\u00f3 min\u0151s\u00e9g\u0171 nyomatok elk\u00e9sz\u00edt\u00e9s\u00e9hez. Vedd figyelembe azonban, hogy maga a Z v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 pontoss\u00e1ga korl\u00e1toz\u00f3 t\u00e9nyez\u0151 lehet. Ha Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3kat haszn\u00e1lunk, akkor fontoljuk meg a v\u00e9gstop f\u00e1zis \u00e9rz\u00e9kel\u00e9s enged\u00e9lyez\u00e9s\u00e9t a kapcsol\u00f3 pontoss\u00e1g\u00e1nak jav\u00edt\u00e1sa \u00e9rdek\u00e9ben. A Z v\u00e9gpont kalibr\u00e1l\u00e1s\u00e1nak v\u00e9grehajt\u00e1s\u00e1hoz kapcsolja be a nyomtat\u00f3t, utas\u00edtsa a fejet, hogy mozogjon egy Z poz\u00edci\u00f3ba, amely legal\u00e1bb \u00f6t millim\u00e9terrel a t\u00e1rgyasztal felett van (ha m\u00e9g nincs), utas\u00edtsa a fejet, hogy mozogjon egy X-Y poz\u00edci\u00f3ba, k\u00f6zel a nyomtat\u00f3 k\u00f6zep\u00e9hez a t\u00e1rgyasztalra, majd navig\u00e1lj az OctoPrint termin\u00e1l f\u00fclre, \u00e9s futtassa: Z_ENDSTOP_CALIBRATE Ezut\u00e1n k\u00f6vesse a \"a pap\u00edrteszt\" pontban le\u00edrt l\u00e9p\u00e9seket a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tti t\u00e9nyleges t\u00e1vols\u00e1g meghat\u00e1roz\u00e1s\u00e1hoz az adott helyen. Ha ezek a l\u00e9p\u00e9sek befejez\u0151dtek, akkor ACCEPT \u00e9s elmentheti az eredm\u00e9nyeket a config f\u00e1jlba a k\u00f6vetkez\u0151vel: SAVE_CONFIG El\u0151ny\u00f6sebb, ha a Z v\u00e9g\u00e1ll\u00e1skapcsol\u00f3t a Z tengelynek az \u00e1ggyal ellent\u00e9tes v\u00e9g\u00e9re helyezz\u00fck. (A t\u00e1rgyasztalt\u00f3l t\u00e1volabb t\u00f6rt\u00e9n\u0151 kezd\u0151pont keres\u00e9s robusztusabb, mivel akkor \u00e1ltal\u00e1ban mindig biztons\u00e1gosan lehet a Z-t kezd\u0151pontra \u00e1ll\u00edtani.) Ha azonban a t\u00e1rgyasztal fel\u00e9 kell kezd\u0151pontot felvenni, aj\u00e1nlott a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3t \u00fagy be\u00e1ll\u00edtani, hogy az kis t\u00e1vols\u00e1gra (pl. 0,5 mm-re) a t\u00e1rgyasztal f\u00f6l\u00f6tt kapcsoljon. Majdnem minden v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 biztons\u00e1gosan lenyomhat\u00f3 egy kis t\u00e1vols\u00e1ggal a kiold\u00e1si ponton t\u00fal. Ha ez megt\u00f6rt\u00e9nt, azt kell tapasztalni, hogy a Z_ENDSTOP_CALIBRATE parancs egy kis pozit\u00edv \u00e9rt\u00e9ket (pl. .5mm) jelez a Z poz\u00edci\u00f3 v\u00e9g\u00e1ll\u00e1shoz. A v\u00e9g\u00e1ll\u00e1s \u00e9rz\u00e9kel\u00e9se akkor, amikor az m\u00e9g bizonyos t\u00e1vols\u00e1gra van a t\u00e1rgyasztalt\u00f3l, cs\u00f6kkenti a v\u00e9letlen t\u00e1rgyasztalba \u00fctk\u00f6z\u00e9sek kock\u00e1zat\u00e1t. Egyes nyomtat\u00f3kon lehet\u0151s\u00e9g van a fizikai v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 hely\u00e9nek k\u00e9zi be\u00e1ll\u00edt\u00e1s\u00e1ra. Azonban aj\u00e1nlott a Z v\u00e9g\u00e1ll\u00e1s poz\u00edci\u00f3n\u00e1l\u00e1s\u00e1t szoftveresen elv\u00e9gezni a Klipperrel. Ha a v\u00e9g\u00e1ll\u00e1s fizikai helyzete megfelel\u0151 helyen van, a tov\u00e1bbi be\u00e1ll\u00edt\u00e1sokat a Z_ENDSTOP_CALIBRATE futtat\u00e1s\u00e1val vagy a Z position_endstop konfigur\u00e1ci\u00f3s f\u00e1jlban l\u00e9v\u0151 Z position_endstop manu\u00e1lis friss\u00edt\u00e9s\u00e9vel lehet elv\u00e9gezni. T\u00e1rgyasztal szintez\u0151csavarok be\u00e1ll\u00edt\u00e1sa \u00b6 A t\u00e1rgyasztalt kiegyenl\u00edt\u0151 csavarokkal t\u00f6rt\u00e9n\u0151 j\u00f3 szintez\u00e9s titka a nyomtat\u00f3 nagy pontoss\u00e1g\u00fa mozg\u00e1srendszer\u00e9nek kihaszn\u00e1l\u00e1sa a szintez\u00e9si folyamat sor\u00e1n. Ez \u00fagy t\u00f6rt\u00e9nik, hogy a f\u00fav\u00f3k\u00e1t az egyes szintez\u0151csavarok k\u00f6zel\u00e9ben l\u00e9v\u0151 poz\u00edci\u00f3ba navig\u00e1ljuk, majd az adott csavart addig \u00e1ll\u00edtjuk, am\u00edg a t\u00e1rgyasztal egy meghat\u00e1rozott t\u00e1vols\u00e1gra nem ker\u00fcl a f\u00fav\u00f3k\u00e1t\u00f3l. A Klipper rendelkezik egy eszk\u00f6zzel, amely ezt seg\u00edti. Az eszk\u00f6z haszn\u00e1lat\u00e1hoz meg kell adni az egyes csavarok X-Y helyzet\u00e9t. Ezt egy [bed_screws] konfigur\u00e1ci\u00f3s szakasz l\u00e9trehoz\u00e1s\u00e1val \u00e9rhetj\u00fck el. Ez p\u00e9ld\u00e1ul valahogy \u00edgy n\u00e9zhet ki: [bed_screws] screw1: 100, 50 screw2: 100, 150 screw3: 150, 100 Ha egy t\u00e1rgyasztal csavar a t\u00e1rgyasztal alatt van, akkor add meg az X-Y poz\u00edci\u00f3t k\u00f6zvetlen\u00fcl a csavar felett. Ha a csavar a t\u00e1rgyasztalon k\u00edv\u00fcl van, akkor add meg a csavarhoz legk\u00f6zelebbi X-Y-poz\u00edci\u00f3t, amely m\u00e9g a t\u00e1rgyasztal hat\u00f3t\u00e1vols\u00e1g\u00e1n bel\u00fcl van. Miut\u00e1n a konfigur\u00e1ci\u00f3s f\u00e1jl k\u00e9szen \u00e1ll, futtassa a RESTART parancsot a konfigur\u00e1ci\u00f3 bet\u00f6lt\u00e9s\u00e9hez, majd elind\u00edthatja az eszk\u00f6zt a k\u00f6vetkez\u0151 futtat\u00e1s\u00e1val: BED_SCREWS_ADJUST Ez az eszk\u00f6z a nyomtat\u00f3 f\u00fav\u00f3k\u00e1t minden egyes csavar X-Y hely\u00e9re mozgatja, majd a f\u00fav\u00f3k\u00e1t Z=0 magass\u00e1gba mozgatja. Ezen a ponton a \"pap\u00edrteszt\" seg\u00edts\u00e9g\u00e9vel k\u00f6zvetlen\u00fcl a f\u00fav\u00f3ka alatt lehet be\u00e1ll\u00edtani a t\u00e1rgyasztal csavarj\u00e1t. L\u00e1sd a \"a pap\u00edrteszt\" -ben le\u00edrtakat. De a f\u00fav\u00f3ka k\u00fcl\u00f6nb\u00f6z\u0151 magass\u00e1gokba navig\u00e1l\u00e1sa helyett a t\u00e1rgyasztalcsavart \u00e1ll\u00edtsd be. Addig \u00e1ll\u00edtsd a csavart, am\u00edg a pap\u00edr el\u0151re-h\u00e1tra tol\u00e1sa k\u00f6zben kis s\u00farl\u00f3d\u00e1s nem keletkezik. Miut\u00e1n a csavart \u00fagy \u00e1ll\u00edtottuk be, hogy egy kis s\u00farl\u00f3d\u00e1s \u00e9rezhet\u0151 legyen, futtassuk az ACCEPT vagy az ADJUSTED parancsot. Haszn\u00e1ld az ADJUSTED parancsot, ha a szintez\u0151csavar be\u00e1ll\u00edt\u00e1s\u00e1ra van sz\u00fcks\u00e9g (\u00e1ltal\u00e1ban b\u00e1rmi, ami t\u00f6bb mint 1/8 csavarfordulat). Haszn\u00e1ld az ACCEPT parancsot, ha nincs sz\u00fcks\u00e9g jelent\u0151s be\u00e1ll\u00edt\u00e1sra. Mindk\u00e9t parancs hat\u00e1s\u00e1ra a szersz\u00e1m a k\u00f6vetkez\u0151 csavarhoz l\u00e9p. (Ha az ADJUSTED parancsot haszn\u00e1lod, a szersz\u00e1m egy tov\u00e1bbi szintez\u0151csavar-be\u00e1ll\u00edt\u00e1si ciklust \u00fctemez be. A szersz\u00e1m sikeresen befejezi, ha az \u00f6sszes szintez\u0151csavarr\u00f3l bebizonyosodik, hogy nem ig\u00e9nyel jelent\u0151s be\u00e1ll\u00edt\u00e1st.) Az ABORT paranccsal id\u0151 el\u0151tt ki lehet l\u00e9pni a szintez\u00e9sb\u0151l. Ez a rendszer akkor m\u0171k\u00f6dik a legjobban, ha a nyomtat\u00f3 s\u00edk nyomtat\u00e1si fel\u00fclettel (p\u00e9ld\u00e1ul \u00fcveggel) \u00e9s egyenes s\u00ednekkel rendelkezik. A t\u00e1rgyasztal szintez\u0151 eszk\u00f6z sikeres elv\u00e9gz\u00e9se ut\u00e1n a t\u00e1rgyasztal k\u00e9szen \u00e1ll a nyomtat\u00e1sra. Finom menetes t\u00e1rgyasztal csavar be\u00e1ll\u00edt\u00e1sok \u00b6 Ha a nyomtat\u00f3 h\u00e1rom szintez\u0151csavart haszn\u00e1l, \u00e9s mindh\u00e1rom csavar a t\u00e1rgyasztal alatt van, akkor lehets\u00e9ges egy m\u00e1sodik \"nagy pontoss\u00e1g\u00fa\" szintez\u00e9si l\u00e9p\u00e9s elv\u00e9gz\u00e9se. Ez \u00fagy t\u00f6rt\u00e9nik, hogy a f\u00fav\u00f3k\u00e1t olyan helyekre ir\u00e1ny\u00edtja, ahol a t\u00e1rgyasztal minden egyes szintez\u0151csavar be\u00e1ll\u00edt\u00e1ssal nagyobb t\u00e1vols\u00e1got mozdul el. Vegy\u00fcnk p\u00e9ld\u00e1ul egy t\u00e1rgyasztalt, amelynek A, B \u00e9s C hely\u00e9n csavarok vannak: A C helyen l\u00e9v\u0151 szintez\u0151csavar minden egyes be\u00e1ll\u00edt\u00e1sa eset\u00e9n a t\u00e1rgyasztal a fennmarad\u00f3 k\u00e9t szintez\u0151csavar \u00e1ltal meghat\u00e1rozott inga ment\u00e9n fog lengeni (itt z\u00f6ld vonalk\u00e9nt l\u00e1that\u00f3). Ebben a helyzetben a szintez\u0151csavar \u00e1ll\u00edt\u00e1sa a C helyzetben a t\u00e1rgyasztalt kissebb a D helyzetben egy nagyobb m\u00e9rt\u00e9kben mozd\u00edtja el. A funkci\u00f3 enged\u00e9lyez\u00e9s\u00e9hez meg kell hat\u00e1rozni a tov\u00e1bbi f\u00fav\u00f3kakoordin\u00e1t\u00e1kat, \u00e9s hozz\u00e1 kell adni \u0151ket a konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Ez p\u00e9ld\u00e1ul \u00edgy n\u00e9zhet ki: [bed_screws] screw1: 100, 50 screw1_fine_adjust: 0, 0 screw2: 100, 150 screw2_fine_adjust: 300, 300 screw3: 150, 100 screw3_fine_adjust: 0, 100 Ha ez a funkci\u00f3 enged\u00e9lyezve van, a BED_SCREWS_ADJUST eszk\u00f6z el\u0151sz\u00f6r k\u00f6zvetlen\u00fcl az egyes csavarok poz\u00edci\u00f3i felett k\u00e9r durva be\u00e1ll\u00edt\u00e1sokat, \u00e9s ha ezeket elfogadta, akkor a tov\u00e1bbi helyeken finom be\u00e1ll\u00edt\u00e1sokat k\u00e9r. Folytassa az ACCEPT \u00e9s ADJUSTED haszn\u00e1lat\u00e1val minden egyes poz\u00edci\u00f3ban. A t\u00e1rgyasztal szintez\u0151csavarjainak be\u00e1ll\u00edt\u00e1sa m\u00e9r\u0151szonda seg\u00edts\u00e9g\u00e9vel \u00b6 Ez egy m\u00e1sik m\u00f3dja a t\u00e1rgyasztal szint kalibr\u00e1l\u00e1s\u00e1nak a m\u00e9r\u0151szonda seg\u00edts\u00e9g\u00e9vel. Haszn\u00e1lat\u00e1hoz rendelkeznie kell Z-szond\u00e1val (BL Touch, indukt\u00edv \u00e9rz\u00e9kel\u0151 stb.). A funkci\u00f3 enged\u00e9lyez\u00e9s\u00e9hez meg kell hat\u00e1rozni a f\u00fav\u00f3ka koordin\u00e1t\u00e1it \u00fagy, hogy a Z szonda a csavarok felett legyen, majd hozz\u00e1 kell adni a konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Ez p\u00e9ld\u00e1ul \u00edgy n\u00e9zhet ki: [screws_tilt_adjust] screw1: -5, 30 screw1_name: front left screw screw2: 155, 30 screw2_name: front right screw screw3: 155, 190 screw3_name: rear right screw screw4: -5, 190 screw4_name: rear left screw horizontal_move_z: 10. speed: 50. screw_thread: CW-M3 Az 1. csavar mindig a referenciapont a t\u00f6bbi csavar sz\u00e1m\u00e1ra, \u00edgy a rendszer felt\u00e9telezi, hogy az 1. csavar a megfelel\u0151 magass\u00e1gban van. El\u0151sz\u00f6r mindig futtassa le a G28 G-k\u00f3dot, majd futtassa le a SCREWS_TILT_CALCULATE parancsot. Ennek a k\u00f6vetkez\u0151h\u00f6z hasonl\u00f3 kimenetet kell eredm\u00e9nyeznie: Send: G28 Recv: ok Send: SCREWS_TILT_CALCULATE Recv: // 01:20 means 1 full turn and 20 minutes, CW=clockwise, CCW=counter-clockwise Recv: // front left screw (base) : x=-5.0, y=30.0, z=2.48750 Recv: // front right screw : x=155.0, y=30.0, z=2.36000 : adjust CW 01:15 Recv: // rear right screw : y=155.0, y=190.0, z=2.71500 : adjust CCW 00:50 Recv: // read left screw : x=-5.0, y=190.0, z=2.47250 : adjust CW 00:02 Recv: ok Ez azt jelenti, hogy: a bal els\u0151 csavar a referenciapont, nem szabad megv\u00e1ltoztatni. a jobb els\u0151 csavart az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val megegyez\u0151 ir\u00e1nyban kell elford\u00edtani 1 teljes \u00e9s negyed fordulatot a jobb h\u00e1ts\u00f3 csavart az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1nyba kell forgatni 50 percnyi fordulatot bal h\u00e1ts\u00f3 csavart az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val megegyez\u0151 ir\u00e1nyba kell forgatni 2 percnyit (nem kell t\u00f6k\u00e9letesnek lennie) Vedd figyelembe, hogy a \"percek\" az \"\u00f3ra sz\u00e1mlapj\u00e1nak perceire\" utalnak. \u00cdgy p\u00e9ld\u00e1ul 15 perc egy teljes fordulat negyed\u00e9nek felel meg. Ism\u00e9telje meg a folyamatot t\u00f6bbsz\u00f6r, am\u00edg egy j\u00f3 v\u00edzszintes t\u00e1rgyasztalt nem kap. \u00c1ltal\u00e1ban akkor j\u00f3, ha minden be\u00e1ll\u00edt\u00e1s 6 percnyi fordulat alatt van. Ha olyan szond\u00e1t haszn\u00e1l, amely a nyomtat\u00f3fej oldal\u00e1ra van szerelve (azaz X vagy Y eltol\u00e1ssal rendelkezik), akkor vedd figyelembe, hogy a t\u00e1rgyasztal d\u0151l\u00e9s\u00e9nek be\u00e1ll\u00edt\u00e1sa \u00e9rv\u00e9nytelen\u00edti a kor\u00e1bbi, d\u0151l\u00e9ssz\u00f6g\u0171 t\u00e1rgyasztalon v\u00e9gzett szintkalibr\u00e1l\u00e1st. A t\u00e1rgyasztal csavarjainak be\u00e1ll\u00edt\u00e1sa ut\u00e1n mindenk\u00e9ppen futtassa le a szonda kalibr\u00e1l\u00e1sa parancsot. A MAX_DEVIATION param\u00e9ter akkor hasznos, ha egy mentett t\u00e1rgyasztal h\u00e1l\u00f3t haszn\u00e1lunk, hogy biztos\u00edtsuk, hogy a t\u00e1rgyasztal szintje ne t\u00e9rj el t\u00fals\u00e1gosan att\u00f3l a helyt\u0151l, ahol a h\u00e1l\u00f3 l\u00e9trehoz\u00e1sakor volt. P\u00e9ld\u00e1ul a SCREWS_TILT_CALCULATE MAX_DEVIATION=0.01 hozz\u00e1adhat\u00f3 a szeletel\u0151 egy\u00e9ni ind\u00edt\u00f3 G-k\u00f3dj\u00e1hoz a h\u00e1l\u00f3 bet\u00f6lt\u00e9se el\u0151tt. Ez megszak\u00edtja a nyomtat\u00e1st, ha a be\u00e1ll\u00edtott hat\u00e1r\u00e9rt\u00e9ket t\u00fall\u00e9pi (ebben a p\u00e9ld\u00e1ban 0,01 mm), lehet\u0151s\u00e9get adva a felhaszn\u00e1l\u00f3nak a csavarok be\u00e1ll\u00edt\u00e1s\u00e1ra \u00e9s a nyomtat\u00e1s \u00fajraind\u00edt\u00e1s\u00e1ra. A DIRECTION param\u00e9ter akkor hasznos, ha a t\u00e1rgyasztal szintez\u0151 csavarjait csak egy ir\u00e1nyba tudja elford\u00edtani. P\u00e9ld\u00e1ul lehetnek olyan csavarjai, amelyek a lehet\u0151 legalacsonyabb (vagy legmagasabb) poz\u00edci\u00f3ban vannak megh\u00fazva, \u00e9s csak egy ir\u00e1nyba forgathat\u00f3k a t\u00e1rgyasztal emel\u00e9s\u00e9hez (vagy s\u00fcllyeszt\u00e9s\u00e9hez). Ha a csavarokat csak az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val megegyez\u0151 ir\u00e1nyban tudja elford\u00edtani, futtassa a SCREWS_TILT_CALCULATE DIRECTION=CW parancsot. Ha csak az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1nyban tudja elforgatni \u0151ket, futtassa a SCREWS_TILT_CALCULATE DIRECTION=CCW parancsot. A program kiv\u00e1laszt egy megfelel\u0151 referenciapontot, hogy a t\u00e1rgyasztalt az \u00f6sszes csavar adott ir\u00e1nyba t\u00f6rt\u00e9n\u0151 elford\u00edt\u00e1s\u00e1val szintezhesse.","title":"K\u00e9zi szintez\u00e9s"},{"location":"Manual_Level.html#kezi-szintezes","text":"Ez a dokumentum a Z v\u00e9g\u00e1ll\u00e1s kalibr\u00e1l\u00e1s\u00e1hoz \u00e9s a t\u00e1rgyasztalt kiegyenl\u00edt\u0151 csavarok be\u00e1ll\u00edt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges eszk\u00f6z\u00f6ket ismerteti.","title":"K\u00e9zi szintez\u00e9s"},{"location":"Manual_Level.html#z-vegallas-kalibralasa","text":"A pontos Z v\u00e9g\u00e1ll\u00e1s poz\u00edci\u00f3ja kritikus fontoss\u00e1g\u00fa a j\u00f3 min\u0151s\u00e9g\u0171 nyomatok elk\u00e9sz\u00edt\u00e9s\u00e9hez. Vedd figyelembe azonban, hogy maga a Z v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 pontoss\u00e1ga korl\u00e1toz\u00f3 t\u00e9nyez\u0151 lehet. Ha Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3kat haszn\u00e1lunk, akkor fontoljuk meg a v\u00e9gstop f\u00e1zis \u00e9rz\u00e9kel\u00e9s enged\u00e9lyez\u00e9s\u00e9t a kapcsol\u00f3 pontoss\u00e1g\u00e1nak jav\u00edt\u00e1sa \u00e9rdek\u00e9ben. A Z v\u00e9gpont kalibr\u00e1l\u00e1s\u00e1nak v\u00e9grehajt\u00e1s\u00e1hoz kapcsolja be a nyomtat\u00f3t, utas\u00edtsa a fejet, hogy mozogjon egy Z poz\u00edci\u00f3ba, amely legal\u00e1bb \u00f6t millim\u00e9terrel a t\u00e1rgyasztal felett van (ha m\u00e9g nincs), utas\u00edtsa a fejet, hogy mozogjon egy X-Y poz\u00edci\u00f3ba, k\u00f6zel a nyomtat\u00f3 k\u00f6zep\u00e9hez a t\u00e1rgyasztalra, majd navig\u00e1lj az OctoPrint termin\u00e1l f\u00fclre, \u00e9s futtassa: Z_ENDSTOP_CALIBRATE Ezut\u00e1n k\u00f6vesse a \"a pap\u00edrteszt\" pontban le\u00edrt l\u00e9p\u00e9seket a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tti t\u00e9nyleges t\u00e1vols\u00e1g meghat\u00e1roz\u00e1s\u00e1hoz az adott helyen. Ha ezek a l\u00e9p\u00e9sek befejez\u0151dtek, akkor ACCEPT \u00e9s elmentheti az eredm\u00e9nyeket a config f\u00e1jlba a k\u00f6vetkez\u0151vel: SAVE_CONFIG El\u0151ny\u00f6sebb, ha a Z v\u00e9g\u00e1ll\u00e1skapcsol\u00f3t a Z tengelynek az \u00e1ggyal ellent\u00e9tes v\u00e9g\u00e9re helyezz\u00fck. (A t\u00e1rgyasztalt\u00f3l t\u00e1volabb t\u00f6rt\u00e9n\u0151 kezd\u0151pont keres\u00e9s robusztusabb, mivel akkor \u00e1ltal\u00e1ban mindig biztons\u00e1gosan lehet a Z-t kezd\u0151pontra \u00e1ll\u00edtani.) Ha azonban a t\u00e1rgyasztal fel\u00e9 kell kezd\u0151pontot felvenni, aj\u00e1nlott a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3t \u00fagy be\u00e1ll\u00edtani, hogy az kis t\u00e1vols\u00e1gra (pl. 0,5 mm-re) a t\u00e1rgyasztal f\u00f6l\u00f6tt kapcsoljon. Majdnem minden v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 biztons\u00e1gosan lenyomhat\u00f3 egy kis t\u00e1vols\u00e1ggal a kiold\u00e1si ponton t\u00fal. Ha ez megt\u00f6rt\u00e9nt, azt kell tapasztalni, hogy a Z_ENDSTOP_CALIBRATE parancs egy kis pozit\u00edv \u00e9rt\u00e9ket (pl. .5mm) jelez a Z poz\u00edci\u00f3 v\u00e9g\u00e1ll\u00e1shoz. A v\u00e9g\u00e1ll\u00e1s \u00e9rz\u00e9kel\u00e9se akkor, amikor az m\u00e9g bizonyos t\u00e1vols\u00e1gra van a t\u00e1rgyasztalt\u00f3l, cs\u00f6kkenti a v\u00e9letlen t\u00e1rgyasztalba \u00fctk\u00f6z\u00e9sek kock\u00e1zat\u00e1t. Egyes nyomtat\u00f3kon lehet\u0151s\u00e9g van a fizikai v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 hely\u00e9nek k\u00e9zi be\u00e1ll\u00edt\u00e1s\u00e1ra. Azonban aj\u00e1nlott a Z v\u00e9g\u00e1ll\u00e1s poz\u00edci\u00f3n\u00e1l\u00e1s\u00e1t szoftveresen elv\u00e9gezni a Klipperrel. Ha a v\u00e9g\u00e1ll\u00e1s fizikai helyzete megfelel\u0151 helyen van, a tov\u00e1bbi be\u00e1ll\u00edt\u00e1sokat a Z_ENDSTOP_CALIBRATE futtat\u00e1s\u00e1val vagy a Z position_endstop konfigur\u00e1ci\u00f3s f\u00e1jlban l\u00e9v\u0151 Z position_endstop manu\u00e1lis friss\u00edt\u00e9s\u00e9vel lehet elv\u00e9gezni.","title":"Z v\u00e9g\u00e1ll\u00e1s kalibr\u00e1l\u00e1sa"},{"location":"Manual_Level.html#targyasztal-szintezocsavarok-beallitasa","text":"A t\u00e1rgyasztalt kiegyenl\u00edt\u0151 csavarokkal t\u00f6rt\u00e9n\u0151 j\u00f3 szintez\u00e9s titka a nyomtat\u00f3 nagy pontoss\u00e1g\u00fa mozg\u00e1srendszer\u00e9nek kihaszn\u00e1l\u00e1sa a szintez\u00e9si folyamat sor\u00e1n. Ez \u00fagy t\u00f6rt\u00e9nik, hogy a f\u00fav\u00f3k\u00e1t az egyes szintez\u0151csavarok k\u00f6zel\u00e9ben l\u00e9v\u0151 poz\u00edci\u00f3ba navig\u00e1ljuk, majd az adott csavart addig \u00e1ll\u00edtjuk, am\u00edg a t\u00e1rgyasztal egy meghat\u00e1rozott t\u00e1vols\u00e1gra nem ker\u00fcl a f\u00fav\u00f3k\u00e1t\u00f3l. A Klipper rendelkezik egy eszk\u00f6zzel, amely ezt seg\u00edti. Az eszk\u00f6z haszn\u00e1lat\u00e1hoz meg kell adni az egyes csavarok X-Y helyzet\u00e9t. Ezt egy [bed_screws] konfigur\u00e1ci\u00f3s szakasz l\u00e9trehoz\u00e1s\u00e1val \u00e9rhetj\u00fck el. Ez p\u00e9ld\u00e1ul valahogy \u00edgy n\u00e9zhet ki: [bed_screws] screw1: 100, 50 screw2: 100, 150 screw3: 150, 100 Ha egy t\u00e1rgyasztal csavar a t\u00e1rgyasztal alatt van, akkor add meg az X-Y poz\u00edci\u00f3t k\u00f6zvetlen\u00fcl a csavar felett. Ha a csavar a t\u00e1rgyasztalon k\u00edv\u00fcl van, akkor add meg a csavarhoz legk\u00f6zelebbi X-Y-poz\u00edci\u00f3t, amely m\u00e9g a t\u00e1rgyasztal hat\u00f3t\u00e1vols\u00e1g\u00e1n bel\u00fcl van. Miut\u00e1n a konfigur\u00e1ci\u00f3s f\u00e1jl k\u00e9szen \u00e1ll, futtassa a RESTART parancsot a konfigur\u00e1ci\u00f3 bet\u00f6lt\u00e9s\u00e9hez, majd elind\u00edthatja az eszk\u00f6zt a k\u00f6vetkez\u0151 futtat\u00e1s\u00e1val: BED_SCREWS_ADJUST Ez az eszk\u00f6z a nyomtat\u00f3 f\u00fav\u00f3k\u00e1t minden egyes csavar X-Y hely\u00e9re mozgatja, majd a f\u00fav\u00f3k\u00e1t Z=0 magass\u00e1gba mozgatja. Ezen a ponton a \"pap\u00edrteszt\" seg\u00edts\u00e9g\u00e9vel k\u00f6zvetlen\u00fcl a f\u00fav\u00f3ka alatt lehet be\u00e1ll\u00edtani a t\u00e1rgyasztal csavarj\u00e1t. L\u00e1sd a \"a pap\u00edrteszt\" -ben le\u00edrtakat. De a f\u00fav\u00f3ka k\u00fcl\u00f6nb\u00f6z\u0151 magass\u00e1gokba navig\u00e1l\u00e1sa helyett a t\u00e1rgyasztalcsavart \u00e1ll\u00edtsd be. Addig \u00e1ll\u00edtsd a csavart, am\u00edg a pap\u00edr el\u0151re-h\u00e1tra tol\u00e1sa k\u00f6zben kis s\u00farl\u00f3d\u00e1s nem keletkezik. Miut\u00e1n a csavart \u00fagy \u00e1ll\u00edtottuk be, hogy egy kis s\u00farl\u00f3d\u00e1s \u00e9rezhet\u0151 legyen, futtassuk az ACCEPT vagy az ADJUSTED parancsot. Haszn\u00e1ld az ADJUSTED parancsot, ha a szintez\u0151csavar be\u00e1ll\u00edt\u00e1s\u00e1ra van sz\u00fcks\u00e9g (\u00e1ltal\u00e1ban b\u00e1rmi, ami t\u00f6bb mint 1/8 csavarfordulat). Haszn\u00e1ld az ACCEPT parancsot, ha nincs sz\u00fcks\u00e9g jelent\u0151s be\u00e1ll\u00edt\u00e1sra. Mindk\u00e9t parancs hat\u00e1s\u00e1ra a szersz\u00e1m a k\u00f6vetkez\u0151 csavarhoz l\u00e9p. (Ha az ADJUSTED parancsot haszn\u00e1lod, a szersz\u00e1m egy tov\u00e1bbi szintez\u0151csavar-be\u00e1ll\u00edt\u00e1si ciklust \u00fctemez be. A szersz\u00e1m sikeresen befejezi, ha az \u00f6sszes szintez\u0151csavarr\u00f3l bebizonyosodik, hogy nem ig\u00e9nyel jelent\u0151s be\u00e1ll\u00edt\u00e1st.) Az ABORT paranccsal id\u0151 el\u0151tt ki lehet l\u00e9pni a szintez\u00e9sb\u0151l. Ez a rendszer akkor m\u0171k\u00f6dik a legjobban, ha a nyomtat\u00f3 s\u00edk nyomtat\u00e1si fel\u00fclettel (p\u00e9ld\u00e1ul \u00fcveggel) \u00e9s egyenes s\u00ednekkel rendelkezik. A t\u00e1rgyasztal szintez\u0151 eszk\u00f6z sikeres elv\u00e9gz\u00e9se ut\u00e1n a t\u00e1rgyasztal k\u00e9szen \u00e1ll a nyomtat\u00e1sra.","title":"T\u00e1rgyasztal szintez\u0151csavarok be\u00e1ll\u00edt\u00e1sa"},{"location":"Manual_Level.html#finom-menetes-targyasztal-csavar-beallitasok","text":"Ha a nyomtat\u00f3 h\u00e1rom szintez\u0151csavart haszn\u00e1l, \u00e9s mindh\u00e1rom csavar a t\u00e1rgyasztal alatt van, akkor lehets\u00e9ges egy m\u00e1sodik \"nagy pontoss\u00e1g\u00fa\" szintez\u00e9si l\u00e9p\u00e9s elv\u00e9gz\u00e9se. Ez \u00fagy t\u00f6rt\u00e9nik, hogy a f\u00fav\u00f3k\u00e1t olyan helyekre ir\u00e1ny\u00edtja, ahol a t\u00e1rgyasztal minden egyes szintez\u0151csavar be\u00e1ll\u00edt\u00e1ssal nagyobb t\u00e1vols\u00e1got mozdul el. Vegy\u00fcnk p\u00e9ld\u00e1ul egy t\u00e1rgyasztalt, amelynek A, B \u00e9s C hely\u00e9n csavarok vannak: A C helyen l\u00e9v\u0151 szintez\u0151csavar minden egyes be\u00e1ll\u00edt\u00e1sa eset\u00e9n a t\u00e1rgyasztal a fennmarad\u00f3 k\u00e9t szintez\u0151csavar \u00e1ltal meghat\u00e1rozott inga ment\u00e9n fog lengeni (itt z\u00f6ld vonalk\u00e9nt l\u00e1that\u00f3). Ebben a helyzetben a szintez\u0151csavar \u00e1ll\u00edt\u00e1sa a C helyzetben a t\u00e1rgyasztalt kissebb a D helyzetben egy nagyobb m\u00e9rt\u00e9kben mozd\u00edtja el. A funkci\u00f3 enged\u00e9lyez\u00e9s\u00e9hez meg kell hat\u00e1rozni a tov\u00e1bbi f\u00fav\u00f3kakoordin\u00e1t\u00e1kat, \u00e9s hozz\u00e1 kell adni \u0151ket a konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Ez p\u00e9ld\u00e1ul \u00edgy n\u00e9zhet ki: [bed_screws] screw1: 100, 50 screw1_fine_adjust: 0, 0 screw2: 100, 150 screw2_fine_adjust: 300, 300 screw3: 150, 100 screw3_fine_adjust: 0, 100 Ha ez a funkci\u00f3 enged\u00e9lyezve van, a BED_SCREWS_ADJUST eszk\u00f6z el\u0151sz\u00f6r k\u00f6zvetlen\u00fcl az egyes csavarok poz\u00edci\u00f3i felett k\u00e9r durva be\u00e1ll\u00edt\u00e1sokat, \u00e9s ha ezeket elfogadta, akkor a tov\u00e1bbi helyeken finom be\u00e1ll\u00edt\u00e1sokat k\u00e9r. Folytassa az ACCEPT \u00e9s ADJUSTED haszn\u00e1lat\u00e1val minden egyes poz\u00edci\u00f3ban.","title":"Finom menetes t\u00e1rgyasztal csavar be\u00e1ll\u00edt\u00e1sok"},{"location":"Manual_Level.html#a-targyasztal-szintezocsavarjainak-beallitasa-meroszonda-segitsegevel","text":"Ez egy m\u00e1sik m\u00f3dja a t\u00e1rgyasztal szint kalibr\u00e1l\u00e1s\u00e1nak a m\u00e9r\u0151szonda seg\u00edts\u00e9g\u00e9vel. Haszn\u00e1lat\u00e1hoz rendelkeznie kell Z-szond\u00e1val (BL Touch, indukt\u00edv \u00e9rz\u00e9kel\u0151 stb.). A funkci\u00f3 enged\u00e9lyez\u00e9s\u00e9hez meg kell hat\u00e1rozni a f\u00fav\u00f3ka koordin\u00e1t\u00e1it \u00fagy, hogy a Z szonda a csavarok felett legyen, majd hozz\u00e1 kell adni a konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Ez p\u00e9ld\u00e1ul \u00edgy n\u00e9zhet ki: [screws_tilt_adjust] screw1: -5, 30 screw1_name: front left screw screw2: 155, 30 screw2_name: front right screw screw3: 155, 190 screw3_name: rear right screw screw4: -5, 190 screw4_name: rear left screw horizontal_move_z: 10. speed: 50. screw_thread: CW-M3 Az 1. csavar mindig a referenciapont a t\u00f6bbi csavar sz\u00e1m\u00e1ra, \u00edgy a rendszer felt\u00e9telezi, hogy az 1. csavar a megfelel\u0151 magass\u00e1gban van. El\u0151sz\u00f6r mindig futtassa le a G28 G-k\u00f3dot, majd futtassa le a SCREWS_TILT_CALCULATE parancsot. Ennek a k\u00f6vetkez\u0151h\u00f6z hasonl\u00f3 kimenetet kell eredm\u00e9nyeznie: Send: G28 Recv: ok Send: SCREWS_TILT_CALCULATE Recv: // 01:20 means 1 full turn and 20 minutes, CW=clockwise, CCW=counter-clockwise Recv: // front left screw (base) : x=-5.0, y=30.0, z=2.48750 Recv: // front right screw : x=155.0, y=30.0, z=2.36000 : adjust CW 01:15 Recv: // rear right screw : y=155.0, y=190.0, z=2.71500 : adjust CCW 00:50 Recv: // read left screw : x=-5.0, y=190.0, z=2.47250 : adjust CW 00:02 Recv: ok Ez azt jelenti, hogy: a bal els\u0151 csavar a referenciapont, nem szabad megv\u00e1ltoztatni. a jobb els\u0151 csavart az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val megegyez\u0151 ir\u00e1nyban kell elford\u00edtani 1 teljes \u00e9s negyed fordulatot a jobb h\u00e1ts\u00f3 csavart az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1nyba kell forgatni 50 percnyi fordulatot bal h\u00e1ts\u00f3 csavart az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val megegyez\u0151 ir\u00e1nyba kell forgatni 2 percnyit (nem kell t\u00f6k\u00e9letesnek lennie) Vedd figyelembe, hogy a \"percek\" az \"\u00f3ra sz\u00e1mlapj\u00e1nak perceire\" utalnak. \u00cdgy p\u00e9ld\u00e1ul 15 perc egy teljes fordulat negyed\u00e9nek felel meg. Ism\u00e9telje meg a folyamatot t\u00f6bbsz\u00f6r, am\u00edg egy j\u00f3 v\u00edzszintes t\u00e1rgyasztalt nem kap. \u00c1ltal\u00e1ban akkor j\u00f3, ha minden be\u00e1ll\u00edt\u00e1s 6 percnyi fordulat alatt van. Ha olyan szond\u00e1t haszn\u00e1l, amely a nyomtat\u00f3fej oldal\u00e1ra van szerelve (azaz X vagy Y eltol\u00e1ssal rendelkezik), akkor vedd figyelembe, hogy a t\u00e1rgyasztal d\u0151l\u00e9s\u00e9nek be\u00e1ll\u00edt\u00e1sa \u00e9rv\u00e9nytelen\u00edti a kor\u00e1bbi, d\u0151l\u00e9ssz\u00f6g\u0171 t\u00e1rgyasztalon v\u00e9gzett szintkalibr\u00e1l\u00e1st. A t\u00e1rgyasztal csavarjainak be\u00e1ll\u00edt\u00e1sa ut\u00e1n mindenk\u00e9ppen futtassa le a szonda kalibr\u00e1l\u00e1sa parancsot. A MAX_DEVIATION param\u00e9ter akkor hasznos, ha egy mentett t\u00e1rgyasztal h\u00e1l\u00f3t haszn\u00e1lunk, hogy biztos\u00edtsuk, hogy a t\u00e1rgyasztal szintje ne t\u00e9rj el t\u00fals\u00e1gosan att\u00f3l a helyt\u0151l, ahol a h\u00e1l\u00f3 l\u00e9trehoz\u00e1sakor volt. P\u00e9ld\u00e1ul a SCREWS_TILT_CALCULATE MAX_DEVIATION=0.01 hozz\u00e1adhat\u00f3 a szeletel\u0151 egy\u00e9ni ind\u00edt\u00f3 G-k\u00f3dj\u00e1hoz a h\u00e1l\u00f3 bet\u00f6lt\u00e9se el\u0151tt. Ez megszak\u00edtja a nyomtat\u00e1st, ha a be\u00e1ll\u00edtott hat\u00e1r\u00e9rt\u00e9ket t\u00fall\u00e9pi (ebben a p\u00e9ld\u00e1ban 0,01 mm), lehet\u0151s\u00e9get adva a felhaszn\u00e1l\u00f3nak a csavarok be\u00e1ll\u00edt\u00e1s\u00e1ra \u00e9s a nyomtat\u00e1s \u00fajraind\u00edt\u00e1s\u00e1ra. A DIRECTION param\u00e9ter akkor hasznos, ha a t\u00e1rgyasztal szintez\u0151 csavarjait csak egy ir\u00e1nyba tudja elford\u00edtani. P\u00e9ld\u00e1ul lehetnek olyan csavarjai, amelyek a lehet\u0151 legalacsonyabb (vagy legmagasabb) poz\u00edci\u00f3ban vannak megh\u00fazva, \u00e9s csak egy ir\u00e1nyba forgathat\u00f3k a t\u00e1rgyasztal emel\u00e9s\u00e9hez (vagy s\u00fcllyeszt\u00e9s\u00e9hez). Ha a csavarokat csak az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val megegyez\u0151 ir\u00e1nyban tudja elford\u00edtani, futtassa a SCREWS_TILT_CALCULATE DIRECTION=CW parancsot. Ha csak az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1nyban tudja elforgatni \u0151ket, futtassa a SCREWS_TILT_CALCULATE DIRECTION=CCW parancsot. A program kiv\u00e1laszt egy megfelel\u0151 referenciapontot, hogy a t\u00e1rgyasztalt az \u00f6sszes csavar adott ir\u00e1nyba t\u00f6rt\u00e9n\u0151 elford\u00edt\u00e1s\u00e1val szintezhesse.","title":"A t\u00e1rgyasztal szintez\u0151csavarjainak be\u00e1ll\u00edt\u00e1sa m\u00e9r\u0151szonda seg\u00edts\u00e9g\u00e9vel"},{"location":"Measuring_Resonances.html","text":"Rezonanci\u00e1k m\u00e9r\u00e9se \u00b6 A Klipper be\u00e9p\u00edtett t\u00e1mogat\u00e1ssal rendelkezik az ADXL345 gyorsul\u00e1sm\u00e9r\u0151h\u00f6z, amely a nyomtat\u00f3 rezonanci\u00e1inak m\u00e9r\u00e9s\u00e9re haszn\u00e1lhat\u00f3 a k\u00fcl\u00f6nb\u00f6z\u0151 tengelyek eset\u00e9ben, \u00e9s automatikus hangol\u00e1ssal rezonancia kompenz\u00e1ci\u00f3val a rezonanci\u00e1k kompenz\u00e1l\u00e1s\u00e1ra. Vedd figyelembe, hogy az ADXL345 haszn\u00e1lata n\u00e9mi forraszt\u00e1st \u00e9s krimpel\u00e9st ig\u00e9nyel. Az ADXL345 k\u00f6zvetlen\u00fcl csatlakoztathat\u00f3 egy Raspberry Pi-hez, vagy egy MCU-k\u00e1rtya SPI-interf\u00e9sz\u00e9hez (meglehet\u0151sen gyorsnak kell lennie). Az ADXL345 beszerz\u00e9sekor vedd figyelembe, hogy sz\u00e1mos k\u00fcl\u00f6nb\u00f6z\u0151 NY\u00c1K lapkakialak\u00edt\u00e1s \u00e9s k\u00fcl\u00f6nb\u00f6z\u0151 kl\u00f3nok l\u00e9teznek. Gy\u0151z\u0151dj meg r\u00f3la, hogy a k\u00e1rtya t\u00e1mogatja az SPI m\u00f3dot (kis sz\u00e1m\u00fa k\u00e1rtya \u00fagy t\u0171nik, hogy szorosan konfigur\u00e1lva van az I2C-re az SDO GND-re h\u00faz\u00e1s\u00e1val), \u00e9s ha 5V-os nyomtat\u00f3 MCU-hoz csatlakozik ellen\u0151rizd,hogy rendelkezik fesz\u00fclts\u00e9gszab\u00e1lyoz\u00f3val \u00e9s szintv\u00e1laszt\u00f3val. Telep\u00edt\u00e9si utas\u00edt\u00e1sok \u00b6 Vezet\u00e9kek \u00b6 Az ADXL345-\u00f6t SPI-n kereszt\u00fcl kell csatlakoztatnia a Raspberry Pi-hez. Vedd figyelembe, hogy az ADXL345 dokument\u00e1ci\u00f3ja \u00e1ltal javasolt I2C kapcsolatnak t\u00fal alacsony az adatforgalmi k\u00e9pess\u00e9ge, \u00e9s nem fog m\u0171k\u00f6dni . Az aj\u00e1nlott kapcsol\u00e1si s\u00e9ma: ADXL345 t\u0171 RPi t\u0171 RPi t\u0171 n\u00e9v 3V3 (or VCC) 01 3.3v DC fesz\u00fclts\u00e9g GND 06 F\u00f6ld CS 24 GPIO08 (SPI0_CE0_N) SDO 21 GPIO09 (SPI0_MISO) SDA 19 GPIO10 (SPI0_MOSI) SCL 23 GPIO11 (SPI0_SCLK) Az ADXL345 alternat\u00edv\u00e1ja az MPU-9250 (vagy MPU-6050). Ezt a gyorsul\u00e1sm\u00e9r\u0151t \u00fagy tesztelt\u00e9k, hogy az RPi-n 400kbaud-on kereszt\u00fcl I2C-n kereszt\u00fcl m\u0171k\u00f6dik. Aj\u00e1nlott csatlakoz\u00e1si s\u00e9ma az I2C-hez: MPU-9250 t\u0171 RPi t\u0171 RPi t\u0171 n\u00e9v 3V3 (or VCC) 01 3.3v DC fesz\u00fclts\u00e9g GND 09 F\u00f6ld SDA 03 GPIO02 (SDA1) SCL 05 GPIO03 (SCL1) Fritzing kapcsol\u00e1si rajzok n\u00e9h\u00e1ny ADXL345 laphoz: A Raspberry Pi bekapcsol\u00e1sa el\u0151tt ellen\u0151rizd k\u00e9tszer is a vezet\u00e9keket, nehogy megs\u00e9r\u00fclj\u00f6n a Raspberry Pi vagy a gyorsul\u00e1sm\u00e9r\u0151. A gyorsul\u00e1sm\u00e9r\u0151 felszerel\u00e9se \u00b6 A gyorsul\u00e1sm\u00e9r\u0151t a nyomtat\u00f3fejhez kell csatlakoztatni. Meg kell tervezni egy megfelel\u0151 r\u00f6gz\u00edt\u00e9st, amely illeszkedik a saj\u00e1t 3D nyomtat\u00f3hoz. A gyorsul\u00e1sm\u00e9r\u0151 tengelyeit jobb a nyomtat\u00f3 tengelyeihez igaz\u00edtani (de ha ez k\u00e9nyelmesebb\u00e9 teszi, a tengelyek felcser\u00e9lhet\u0151k - azaz nem kell az X tengelyt X-hez igaz\u00edtani, \u00e9s \u00edgy tov\u00e1bb. Akkor is rendben kell lennie, ha a gyorsul\u00e1sm\u00e9r\u0151 Z tengelye a nyomtat\u00f3 X tengelye, stb). P\u00e9lda az ADXL345 SmartEffectorra t\u00f6rt\u00e9n\u0151 felszerel\u00e9s\u00e9re: Vedd figyelembe, hogy egy t\u00e1rgyasztal cs\u00fasztat\u00f3s nyomtat\u00f3n\u00e1l 2 r\u00f6gz\u00edt\u00e9st kell tervezni: egyet a nyomtat\u00f3fejhez \u00e9s egyet a t\u00e1rgyasztalhoz, \u00e9s a m\u00e9r\u00e9seket k\u00e9tszer kell elv\u00e9gezni. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a megfelel\u0151 szakaszt . Figyelem: gy\u0151z\u0151dj meg arr\u00f3l, hogy a gyorsul\u00e1sm\u00e9r\u0151 \u00e9s a hely\u00e9re r\u00f6gz\u00edt\u0151 csavarok nem \u00e9rnek a nyomtat\u00f3 f\u00e9m r\u00e9szeihez. Alapvet\u0151en a r\u00f6gz\u00edt\u00e9st \u00fagy kell kialak\u00edtani, hogy biztos\u00edtsa a gyorsul\u00e1sm\u00e9r\u0151 elektromos szigetel\u00e9s\u00e9t a nyomtat\u00f3 keret\u00e9t\u0151l. Ennek elmulaszt\u00e1sa f\u00f6ldhurkot hozhat l\u00e9tre a rendszerben, ami k\u00e1ros\u00edthatja az elektronik\u00e1t. Szoftver telep\u00edt\u00e9se \u00b6 Vedd figyelembe, hogy a rezonanciam\u00e9r\u00e9sek \u00e9s a shaper automatikus kalibr\u00e1l\u00e1sa tov\u00e1bbi, alap\u00e9rtelmez\u00e9s szerint nem telep\u00edtett szoftverf\u00fcgg\u0151s\u00e9geket ig\u00e9nyel. El\u0151sz\u00f6r futtassa a Raspberry Pi sz\u00e1m\u00edt\u00f3g\u00e9p\u00e9n a k\u00f6vetkez\u0151 parancsokat: sudo apt update sudo apt install python3-numpy python3-matplotlib libatlas-base-dev Ezut\u00e1n a NumPy telep\u00edt\u00e9s\u00e9hez a Klipper k\u00f6rnyezetbe futtassuk a parancsot: ~/klippy-env/bin/pip install -v numpy Vedd figyelembe, hogy a CPU teljes\u00edtm\u00e9ny\u00e9t\u0151l f\u00fcgg\u0151en ez sok id\u0151t vehet ig\u00e9nybe, ak\u00e1r 10-20 percet is. Legyen t\u00fcrelmes, \u00e9s v\u00e1rja meg a telep\u00edt\u00e9s befejez\u00e9s\u00e9t. Bizonyos esetekben, ha a k\u00e1rty\u00e1n t\u00fal kev\u00e9s RAM van, a telep\u00edt\u00e9s meghi\u00fasulhat, \u00e9s enged\u00e9lyeznie kell a swapot. Ezut\u00e1n ellen\u0151rizd \u00e9s k\u00f6vesse az RPi Microcontroller dokumentum utas\u00edt\u00e1sait a \"linux mcu\" be\u00e1ll\u00edt\u00e1s\u00e1hoz a Raspberry Pi-n. Gy\u0151z\u0151dj\u00fcnk meg r\u00f3la, hogy a Linux SPI-illeszt\u0151program enged\u00e9lyezve van a sudo raspi-config futtat\u00e1s\u00e1val \u00e9s az SPI enged\u00e9lyez\u00e9s\u00e9vel az \"Interfacing options\" men\u00fcben. Az ADXL345 eset\u00e9ben add hozz\u00e1 a k\u00f6vetkez\u0151ket a printer.cfg f\u00e1jlhoz: [mcu rpi] serial: /tmp/klipper_host_mcu [adxl345] cs_pin: rpi:None [resonance_tester] accel_chip: adxl345 probe_points: 100, 100, 20 # egy p\u00e9lda Javasoljuk, hogy 1 m\u00e9r\u0151pontal kezd, a nyomtat\u00e1si t\u00e1rgyasztal k\u00f6zep\u00e9n, kiss\u00e9 felette. Az MPU-9250 eset\u00e9ben gy\u0151z\u0151dj meg r\u00f3la, hogy a Linux I2C illeszt\u0151program enged\u00e9lyezve van, \u00e9s az \u00e1tviteli sebess\u00e9g 400000-re van \u00e1ll\u00edtva (tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd az I2C enged\u00e9lyez\u00e9se r\u00e9szt). Ezut\u00e1n adjuk hozz\u00e1 a k\u00f6vetkez\u0151ket a printer.cfg f\u00e1jlhoz: [mcu rpi] serial: /tmp/klipper_host_mcu [mpu9250] i2c_mcu: rpi i2c_bus: i2c.1 [resonance_tester] accel_chip: mpu9250 probe_points: 100, 100, 20 # an example Ind\u00edtsa \u00fajra a Klippert a RESTART paranccsal. A rezonanci\u00e1k m\u00e9r\u00e9se \u00b6 A be\u00e1ll\u00edt\u00e1s ellen\u0151rz\u00e9se \u00b6 Most m\u00e1r tesztelheti a kapcsolatot. A \"nem t\u00e1rgyasztalt \u00e9rint\u0151\" (pl. egy gyorsul\u00e1sm\u00e9r\u0151), az Octoprintbe \u00edrd be az ACCELEROMETER_QUERY parancsot A \"bed-slingers\" (pl. egyn\u00e9l t\u00f6bb gyorsul\u00e1sm\u00e9r\u0151) eset\u00e9ben \u00edrd be az ACCELEROMETER_QUERY CHIP=<chip> ahol <chip> a chip neve a be\u00edrt form\u00e1ban, pl. CHIP=bed (l\u00e1sd: bed-slinger nyomtat\u00f3k ) az \u00f6sszes telep\u00edtett gyorsul\u00e1sm\u00e9r\u0151 chiphez. A gyorsul\u00e1sm\u00e9r\u0151 aktu\u00e1lis m\u00e9r\u00e9seit kell l\u00e1tnia, bele\u00e9rtve a szabades\u00e9s gyorsul\u00e1s\u00e1t is, pl. Visszah\u00edv\u00e1s: // adxl345 \u00e9rt\u00e9kek (x, y, z): 470.719200, 941.438400, 9728.196800 Ha olyan hib\u00e1t kap, mint Invalid adxl345 id (got xx vs e5) , ahol xx valami m\u00e1s azonos\u00edt\u00f3, azaz ADXL345-\u00f6t \u00e9rint\u0151 kapcsolati probl\u00e9m\u00e1ra vagy a hib\u00e1s \u00e9rz\u00e9kel\u0151re utal. Ellen\u0151rizd k\u00e9tszer is a t\u00e1pell\u00e1t\u00e1st, a k\u00e1belez\u00e9st (hogy megfelel-e a kapcsol\u00e1si rajzoknak, nincs-e t\u00f6r\u00f6tt vagy laza vezet\u00e9k stb.) \u00e9s a forraszt\u00e1s min\u0151s\u00e9g\u00e9t. Ezut\u00e1n pr\u00f3b\u00e1ld meg futtatni a MEASURE_AXES_NOISE parancsot az Octoprintben, \u00edgy kaphatsz n\u00e9h\u00e1ny alapsz\u00e1mot a gyorsul\u00e1sm\u00e9r\u0151 zaj\u00e1ra a tengelyeken (valahol a ~1-100-as tartom\u00e1nyban kell lennie). A t\u00fal magas tengelyzaj (pl. 1000 \u00e9s t\u00f6bb) az \u00e9rz\u00e9kel\u0151 probl\u00e9m\u00e1ira, a t\u00e1pell\u00e1t\u00e1s\u00e1val kapcsolatos probl\u00e9m\u00e1kra vagy a 3D nyomtat\u00f3 t\u00fal zajos, kiegyens\u00falyozatlan ventil\u00e1toraira utalhat. A rezonanci\u00e1k m\u00e9r\u00e9se \u00b6 Most m\u00e1r lefuttathat n\u00e9h\u00e1ny val\u00f3s tesztet. Futtassa a k\u00f6vetkez\u0151 parancsot: TEST_RESONANCES AXIS=X Vedd figyelembe, hogy az X tengelyen rezg\u00e9seket hoz l\u00e9tre. A bemeneti alak\u00edt\u00e1st is letiltja, ha az kor\u00e1bban enged\u00e9lyezve volt, mivel a rezonancia tesztel\u00e9s nem \u00e9rv\u00e9nyes a bemeneti alak\u00edt\u00f3 enged\u00e9lyez\u00e9s\u00e9vel. Figyelem! Az els\u0151 alkalommal mindenk\u00e9ppen figyelje meg a nyomtat\u00f3t, hogy a rezg\u00e9sek ne legyenek t\u00fal hevesek (az M112 paranccsal v\u00e9szhelyzet eset\u00e9n megszak\u00edthat\u00f3 a teszt; rem\u00e9lhet\u0151leg azonban erre nem ker\u00fcl sor). Ha a rezg\u00e9sek m\u00e9gis t\u00fal er\u0151sek lesznek, megpr\u00f3b\u00e1lhat az alap\u00e9rtelmezettn\u00e9l alacsonyabb \u00e9rt\u00e9ket megadni az accel_per_hz param\u00e9terhez a [resonance_tester] szakaszban, pl. [resonance_tester] accel_chip: adxl345 accel_per_hz: 50 # default is 75 probe_points: ... Ha az X tengelyen m\u0171k\u00f6dik, futtassa az Y tengelyen is: TEST_RESONANCES AXIS=Y Ez 2 CSV f\u00e1jlt fog l\u00e9trehozni ( /tmp/resonances_x_*.csv \u00e9s /tmp/resonances_y_*.csv ) Ezeket a f\u00e1jlokat a Raspberry Pi-n l\u00e9v\u0151 \u00f6n\u00e1ll\u00f3 szkript seg\u00edts\u00e9g\u00e9vel lehet feldolgozni. Ehhez futtassa a k\u00f6vetkez\u0151 parancsokat: ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_y_*.csv -o /tmp/shaper_calibrate_y.png Ez a szkript l\u00e9trehozza a /tmp/shaper_calibrate_x.png \u00e9s /tmp/shaper_calibrate_y.png diagramokat a frekvenciav\u00e1laszokkal. Az egyes bemeneti shaperek javasolt frekvenci\u00e1it is megkapja, valamint azt, hogy melyik bemeneti shaper aj\u00e1nlott a te be\u00e1ll\u00edt\u00e1sodhoz. P\u00e9ld\u00e1ul: Illesztett alak\u00edt\u00f3 'zv' frekvencia = 34,4 Hz (rezg\u00e9sek = 4,0%, sim\u00edt\u00e1s ~= 0,132) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a 'zv', javasolt max_accel <= 4500 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'mzv' frekvencia = 34,6 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,170) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'mzv' eset\u00e9ben javasolt max_accel <= 3500 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'ei' frekvencia = 41,4 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,188) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'ei', javasolt max_accel <= 3200 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '2hump_ei' frekvencia = 51,8 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,201) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '2hump_ei' eset\u00e9ben javasolt max_accel <= 3000 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '3hump_ei' frekvencia = 61,8 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,215) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '3hump_ei' eset\u00e9ben javasolt max_accel <= 2800 mm/sec^2 Az aj\u00e1nlott shaper az mzv @ 34,6 Hz. A javasolt konfigur\u00e1ci\u00f3 hozz\u00e1adhat\u00f3 az [input_shaper] szakaszhoz a printer.cfg r\u00e9szben, p\u00e9ld\u00e1ul: [input_shaper] shaper_freq_x: ... shaper_type_x: ... shaper_freq_y: 34.6 shaper_type_y: mzv [printer] max_accel: 3000 # nem haladhatja meg a becs\u00fclt max_accel \u00e9rt\u00e9ket az X \u00e9s Y tengelyekn\u00e9l. vagy v\u00e1laszthat m\u00e1s konfigur\u00e1ci\u00f3t is a gener\u00e1lt diagramok alapj\u00e1n: a diagramokon a teljes\u00edtm\u00e9nyspektr\u00e1lis s\u0171r\u0171s\u00e9g cs\u00facsai megfelelnek a nyomtat\u00f3 rezonanciafrekvenci\u00e1inak. Megjegyzend\u0151, hogy alternat\u00edvak\u00e9nt a bemeneti alak\u00edt\u00f3 automatikus kalibr\u00e1ci\u00f3j\u00e1t a Klipperb\u0151l k\u00f6zvetlen\u00fcl is futtathatja, ami p\u00e9ld\u00e1ul a bemeneti form\u00e1z\u00f3 \u00fajrakalibr\u00e1l\u00e1s\u00e1hoz lehet hasznos. Bed-slinger nyomtat\u00f3k \u00b6 Ha a nyomtat\u00f3d t\u00e1rgyasztala Y tengelyen van, akkor meg kell v\u00e1ltoztatnod a gyorsul\u00e1sm\u00e9r\u0151 hely\u00e9t az X \u00e9s Y tengelyek m\u00e9r\u00e9sei k\u00f6z\u00f6tt: az X tengely rezonanci\u00e1it a nyomtat\u00f3fejre szerelt gyorsul\u00e1sm\u00e9r\u0151vel, az Y tengely rezonanci\u00e1it pedig a t\u00e1rgyasztalra szerelt gyorsul\u00e1sm\u00e9r\u0151vel kell m\u00e9rned (a szok\u00e1sos nyomtat\u00f3 be\u00e1ll\u00edt\u00e1ssal). Azonban k\u00e9t gyorsul\u00e1sm\u00e9r\u0151t is csatlakoztathatsz egyszerre, b\u00e1r ezeket k\u00fcl\u00f6nb\u00f6z\u0151 lapokhoz kell csatlakoztatni (mondjuk egy RPi \u00e9s egy nyomtat\u00f3 MCU laphoz), vagy k\u00e9t k\u00fcl\u00f6nb\u00f6z\u0151 fizikai SPI interf\u00e9szhez ugyanazon a lapon (ritk\u00e1n el\u00e9rhet\u0151). Ezut\u00e1n a k\u00f6vetkez\u0151 m\u00f3don lehet \u0151ket konfigur\u00e1lni: [adxl345 hotend] # Felt\u00e9telezve, hogy a `hotend` chip egy RPi-hez van csatlakoztatva. cs_pin: rpi:None [adxl345 bed] # Felt\u00e9telezve, hogy a `bed` chip egy nyomtat\u00f3 MCU lapk\u00e1hoz van csatlakoztatva. cs_pin: ... # nyomtat\u00f3 alaplap SPI chip kiv\u00e1laszt\u00f3 (CS) t\u0171je [resonance_tester] # Felt\u00e9telezve az Y t\u00e1rgyasztalos nyomtat\u00f3 tipikus be\u00e1ll\u00edt\u00e1s\u00e1t. accel_chip_x: adxl345 hotend accel_chip_y: adxl345 bed probe_points: ... Ekkor a TEST_RESONANCES AXIS=X \u00e9s TEST_RESONANCES AXIS=Y parancsok a megfelel\u0151 gyorsul\u00e1sm\u00e9r\u0151t fogj\u00e1k haszn\u00e1lni minden tengelyhez. Max sim\u00edt\u00e1s \u00b6 Ne feledd, hogy a bemeneti form\u00e1z\u00f3 sim\u00edt\u00e1st hozhat l\u00e9tre az alkatr\u00e9szekben. A calibrate_shaper.py szkript vagy SHAPER_CALIBRATE parancs \u00e1ltal v\u00e9grehajtott bemeneti form\u00e1z\u00f3 automatikus hangol\u00e1sa nem s\u00falyosb\u00edtja a sim\u00edt\u00e1st, ugyanakkor megpr\u00f3b\u00e1lja minimaliz\u00e1lni az ebb\u0151l ered\u0151 rezg\u00e9seket. N\u00e9ha az alakform\u00e1l\u00f3 frekvencia optim\u00e1list\u00f3l elmarad\u00f3 v\u00e1laszt\u00e1s\u00e1t hozhatj\u00e1k, vagy tal\u00e1n egyszer\u0171en csak kev\u00e9sb\u00e9 sim\u00edtj\u00e1k az alkatr\u00e9szeket a nagyobb fennmarad\u00f3 rezg\u00e9sek rov\u00e1s\u00e1ra. Ezekben az esetekben k\u00e9rheti a bemeneti form\u00e1z\u00f3 maxim\u00e1lis sim\u00edt\u00e1s\u00e1nak korl\u00e1toz\u00e1s\u00e1t. N\u00e9zz\u00fck meg az automatikus hangol\u00e1s k\u00f6vetkez\u0151 eredm\u00e9nyeit: Illesztett alak\u00edt\u00f3 'zv' frekvencia = 57,8 Hz (rezg\u00e9sek = 20,3%, sim\u00edt\u00e1s ~= 0,053) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a 'zv', javasolt max_accel <= 13000 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'mzv' frekvencia = 34,8 Hz (rezg\u00e9sek = 3,6%, sim\u00edt\u00e1s ~= 0,168) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'mzv' eset\u00e9ben javasolt max_accel <= 3600 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'ei' frekvencia = 48,8 Hz (rezg\u00e9sek = 4,9%, sim\u00edt\u00e1s ~= 0,135) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'ei', javasolt max_accel <= 4400 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '2hump_ei' frekvencia = 45,2 Hz (rezg\u00e9sek = 0,1%, sim\u00edt\u00e1s ~= 0,264) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '2hump_ei' eset\u00e9ben javasolt max_accel <= 2200 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '3hump_ei' frekvencia = 48,0 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,356) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '3hump_ei' eset\u00e9ben javasolt max_accel <= 1500 mm/sec^2 Az aj\u00e1nlott alak\u00edt\u00f3 2hump_ei @ 45,2 Hz. Vedd figyelembe, hogy a bejelentett sim\u00edt\u00e1s \u00e9rt\u00e9kek absztrakt vet\u00edtett \u00e9rt\u00e9kek. Ezek az \u00e9rt\u00e9kek k\u00fcl\u00f6nb\u00f6z\u0151 konfigur\u00e1ci\u00f3k \u00f6sszehasonl\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3k: min\u00e9l magasabb az \u00e9rt\u00e9k, ann\u00e1l nagyobb sim\u00edt\u00e1st hoz l\u00e9tre a form\u00e1z\u00f3. Ezek a sim\u00edt\u00e1si \u00e9rt\u00e9kek azonban nem jelentik a sim\u00edt\u00e1s val\u00f3di m\u00e9rt\u00e9k\u00e9t, mivel a t\u00e9nyleges sim\u00edt\u00e1s a max_accel \u00e9s square_corner_velocity param\u00e9terekt\u0151l f\u00fcgg. Ez\u00e9rt \u00e9rdemes n\u00e9h\u00e1ny tesztnyomatot nyomtatni, hogy l\u00e1ssuk, pontosan mekkora sim\u00edt\u00e1st hoz l\u00e9tre a kiv\u00e1lasztott konfigur\u00e1ci\u00f3. A fenti p\u00e9ld\u00e1ban a javasolt alak\u00edt\u00f3 param\u00e9terek nem rosszak, de mi van akkor, ha az X tengelyen kevesebb sim\u00edt\u00e1st szeretne el\u00e9rni? Megpr\u00f3b\u00e1lhatod korl\u00e1tozni a maxim\u00e1lis alak\u00edt\u00f3 sim\u00edt\u00e1st a k\u00f6vetkez\u0151 paranccsal: ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png --max_smoothing=0.2 amely a sim\u00edt\u00e1st 0,2 pontsz\u00e1mra korl\u00e1tozza. Most a k\u00f6vetkez\u0151 eredm\u00e9nyt kaphatja: Illesztett alak\u00edt\u00f3 'zv' frekvencia = 55,4 Hz (rezg\u00e9sek = 19,7%, sim\u00edt\u00e1s ~= 0,057) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a 'zv', javasolt max_accel <= 12000 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'mzv' frekvencia = 34,6 Hz (rezg\u00e9sek = 3,6%, sim\u00edt\u00e1s ~= 0,170) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'mzv' eset\u00e9ben javasolt max_accel <= 3500 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'ei' frekvencia = 48,2 Hz (rezg\u00e9sek = 4,8%, sim\u00edt\u00e1s ~= 0,139) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'ei' eset\u00e9ben javasolt max_accel <= 4300 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '2hump_ei' frekvencia = 52,0 Hz (rezg\u00e9sek = 2,7%, sim\u00edt\u00e1s ~= 0,200) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '2hump_ei' eset\u00e9ben javasolt max_accel <= 3000 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '3hump_ei' frekvencia = 72,6 Hz (rezg\u00e9sek = 1,4%, sim\u00edt\u00e1s ~= 0,155) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '3hump_ei' eset\u00e9ben javasolt max_accel <= 3900 mm/sec^2 Az aj\u00e1nlott alak\u00edt\u00f3 3hump_ei @ 72,6 Hz. Ha \u00f6sszehasonl\u00edtjuk a kor\u00e1bban javasolt param\u00e9terekkel, a rezg\u00e9sek kicsit nagyobbak, de a sim\u00edt\u00e1s l\u00e9nyegesen kisebb, mint kor\u00e1bban, ami nagyobb maxim\u00e1lis gyorsul\u00e1st tesz lehet\u0151v\u00e9. A max_smoothing param\u00e9ter kiv\u00e1laszt\u00e1sakor a pr\u00f3b\u00e1lgat\u00e1s \u00e9s a t\u00e9ved\u00e9s m\u00f3dszer\u00e9t alkalmazhatjuk. Pr\u00f3b\u00e1ljon ki n\u00e9h\u00e1ny k\u00fcl\u00f6nb\u00f6z\u0151 \u00e9rt\u00e9ket, \u00e9s n\u00e9zze meg, milyen eredm\u00e9nyeket kap. Vedd figyelembe, hogy a bemeneti alak\u00edt\u00f3 \u00e1ltal el\u0151\u00e1ll\u00edtott t\u00e9nyleges sim\u00edt\u00e1s els\u0151sorban a nyomtat\u00f3 legalacsonyabb rezonanciafrekvenci\u00e1j\u00e1t\u00f3l f\u00fcgg: min\u00e9l magasabb a legalacsonyabb rezonancia frekvenci\u00e1ja - ann\u00e1l kisebb a sim\u00edt\u00e1s. Ez\u00e9rt ha azt k\u00e9ri a parancsf\u00e1jlt\u00f3l, hogy a bemeneti alak\u00edt\u00f3 olyan konfigur\u00e1ci\u00f3j\u00e1t keresse meg, amely irre\u00e1lisan kis sim\u00edt\u00e1ssal rendelkezik, akkor ez a legalacsonyabb rezonanciafrekvenci\u00e1kon (amelyek jellemz\u0151en a nyomatokon is jobban l\u00e1that\u00f3ak) megn\u00f6vekedett rezg\u00e9s \u00e1r\u00e1n fog t\u00f6rt\u00e9nni. Ez\u00e9rt mindig ellen\u0151rizd k\u00e9tszeresen a szkript \u00e1ltal jelzett vet\u00edtett marad\u00f3 rezg\u00e9seket, \u00e9s gy\u0151z\u0151dj meg r\u00f3la, hogy azok nem t\u00fal magasak. Ha mindk\u00e9t tengelyhez j\u00f3 max_smoothing \u00e9rt\u00e9ket v\u00e1lasztott, akkor azt a printer.cfg \u00e1llom\u00e1nyban t\u00e1rolhatja a k\u00f6vetkez\u0151 m\u00f3don [resonance_tester] accel_chip: ... probe_points: ... max_smoothing: 0.25 # egy p\u00e9lda Ezut\u00e1n, ha a j\u00f6v\u0151ben \u00fajraind\u00edtja a bemeneti alak\u00edt\u00f3 automatikus hangol\u00e1s\u00e1t a SHAPER_CALIBRATE Klipper parancs seg\u00edts\u00e9g\u00e9vel, akkor a t\u00e1rolt max_smoothing \u00e9rt\u00e9ket fogja referenciak\u00e9nt haszn\u00e1lni. A max_accel kiv\u00e1laszt\u00e1sa \u00b6 Mivel a bemeneti alak\u00edt\u00f3 n\u00e9mi sim\u00edt\u00e1st okozhat az elemekben, k\u00fcl\u00f6n\u00f6sen nagy gyorsul\u00e1sokn\u00e1l, tov\u00e1bbra is meg kell v\u00e1lasztani a max_accel \u00e9rt\u00e9ket, amely nem okoz t\u00fal nagy sim\u00edt\u00e1st a nyomtatott alkatr\u00e9szekben. Egy kalibr\u00e1ci\u00f3s szkript becsl\u00e9st ad a max_accel param\u00e9terre, amely nem okozhat t\u00fal nagy sim\u00edt\u00e1st. Vedd figyelembe, hogy a kalibr\u00e1ci\u00f3s szkript \u00e1ltal megjelen\u00edtett max_accel csak egy elm\u00e9leti maximum, amelyn\u00e9l az adott alak\u00edt\u00f3 m\u00e9g k\u00e9pes \u00fagy dolgozni, hogy nem okoz t\u00fal nagy sim\u00edt\u00e1st. Semmik\u00e9ppen sem aj\u00e1nlott ezt a gyorsul\u00e1st be\u00e1ll\u00edtani a nyomtat\u00e1shoz. A nyomtat\u00f3ja \u00e1ltal elviselhet\u0151 maxim\u00e1lis gyorsul\u00e1s a nyomtat\u00f3 mechanikai tulajdons\u00e1gait\u00f3l \u00e9s a haszn\u00e1lt l\u00e9ptet\u0151motorok maxim\u00e1lis nyomat\u00e9k\u00e1t\u00f3l f\u00fcgg. Ez\u00e9rt javasolt a max_accel be\u00e1ll\u00edt\u00e1sa a [nyomtat\u00f3] szakaszban, amely nem haladja meg az X \u00e9s Y tengelyek becs\u00fclt \u00e9rt\u00e9keit, val\u00f3sz\u00edn\u0171leg n\u00e9mi konzervat\u00edv biztons\u00e1gi tartal\u00e9kkal. Alternat\u00edvak\u00e9nt k\u00f6vesse ezt a r\u00e9szt a bemeneti alak\u00edt\u00f3 hangol\u00e1si \u00fatmutat\u00f3j\u00e1ban, \u00e9s nyomtasd ki a tesztmodellt a max_accel param\u00e9ter k\u00eds\u00e9rleti kiv\u00e1laszt\u00e1s\u00e1hoz. Ugyanez a figyelmeztet\u00e9s vonatkozik a bemeneti alak\u00edt\u00f3 automatikus kalibr\u00e1l\u00e1s SHAPER_CALIBRATE paranccsal t\u00f6rt\u00e9n\u0151 haszn\u00e1lat\u00e1ra is: az automatikus kalibr\u00e1l\u00e1s ut\u00e1n tov\u00e1bbra is sz\u00fcks\u00e9ges a megfelel\u0151 max_accel \u00e9rt\u00e9k kiv\u00e1laszt\u00e1sa, \u00e9s a javasolt gyorsul\u00e1si korl\u00e1tok nem lesznek automatikusan alkalmazva. Ha a form\u00e1z\u00f3 \u00fajrakalibr\u00e1l\u00e1s\u00e1t v\u00e9gzi, \u00e9s a javasolt form\u00e1z\u00f3 konfigur\u00e1ci\u00f3hoz tartoz\u00f3 sim\u00edt\u00e1s majdnem megegyezik az el\u0151z\u0151 kalibr\u00e1l\u00e1s sor\u00e1n kapott \u00e9rt\u00e9kkel, ez a l\u00e9p\u00e9s kihagyhat\u00f3. Egy\u00e9ni tengelyek tesztel\u00e9se \u00b6 TEST_RESONANCES parancs t\u00e1mogatja az egy\u00e9ni tengelyeket. B\u00e1r ez nem igaz\u00e1n hasznos a bemeneti alak\u00edt\u00f3 kalibr\u00e1l\u00e1s\u00e1hoz, a nyomtat\u00f3 rezonanci\u00e1inak alapos tanulm\u00e1nyoz\u00e1s\u00e1ra \u00e9s p\u00e9ld\u00e1ul a sz\u00edjfesz\u00edt\u00e9s ellen\u0151rz\u00e9s\u00e9re haszn\u00e1lhat\u00f3. A CoreXY nyomtat\u00f3kon a sz\u00edjfesz\u00edt\u00e9s ellen\u0151rz\u00e9s\u00e9hez hajtsd v\u00e9gre a k\u00f6vetkez\u0151t TEST_RESONANCES AXIS=1,1 OUTPUT=raw_data TEST_RESONANCES AXIS=1,-1 OUTPUT=raw_data \u00e9s haszn\u00e1ljuk a graph_accelerometer.py f\u00e1jlt a gener\u00e1lt f\u00e1jlok feldolgoz\u00e1s\u00e1hoz, pl. ~/klipper/scripts/graph_accelerometer.py -c /tmp/raw_data_axis*.csv -o /tmp/resonances.png amely a rezonanci\u00e1kat \u00f6sszehasonl\u00edtva /tmp/resonances.png k\u00e9pet hoz l\u00e9tre. Az alap\u00e9rtelmezett toronyelhelyez\u00e9s\u0171 Delta nyomtat\u00f3k eset\u00e9ben (A torony ~= 210 fok, B ~= 330 fok \u00e9s C ~= 90 fok), hajtsd v\u00e9gre a k\u00f6vetkez\u0151t TEST_RESONANCES AXIS=0,1 OUTPUT=raw_data TEST_RESONANCES AXIS=-0.866025404,-0.5 OUTPUT=raw_data TEST_RESONANCES AXIS=0.866025404,-0.5 OUTPUT=raw_data majd haszn\u00e1ld ugyanazt a parancsot ~/klipper/scripts/graph_accelerometer.py -c /tmp/raw_data_axis*.csv -o /tmp/resonances.png /tmp/resonances.png l\u00e9trehoz\u00e1s\u00e1hoz, amely \u00f6sszehasonl\u00edtja a rezonanci\u00e1kat. Bemeneti form\u00e1z\u00f3 automatikus kalibr\u00e1l\u00e1sa \u00b6 A bemeneti form\u00e1z\u00f3 funkci\u00f3 megfelel\u0151 param\u00e9tereinek k\u00e9zi kiv\u00e1laszt\u00e1sa mellett a bemeneti alak\u00edt\u00f3 automatikus hangol\u00e1sa k\u00f6zvetlen\u00fcl a Klipperb\u0151l is elv\u00e9gezhet\u0151. Futtassa a k\u00f6vetkez\u0151 parancsot az Octoprint termin\u00e1lon kereszt\u00fcl: SHAPER_CALIBRATE Ez lefuttatja a teljes tesztet mindk\u00e9t tengelyre, \u00e9s l\u00e9trehozza a csv-kimenetet ( /tmp/calibration_data_*.csv alap\u00e9rtelmez\u00e9s szerint) a frekvenciav\u00e1laszr\u00f3l \u00e9s a javasolt bemeneti alak\u00edt\u00f3kr\u00f3l. Az Octoprint konzolon megkapja az egyes bemeneti alak\u00edt\u00f3k javasolt frekvenci\u00e1it is, valamint azt, hogy melyik bemeneti alak\u00edt\u00f3t aj\u00e1nljuk az \u00d6n be\u00e1ll\u00edt\u00e1s\u00e1hoz. P\u00e9ld\u00e1ul: A legjobb bemeneti alak\u00edt\u00f3 param\u00e9terek kisz\u00e1m\u00edt\u00e1sa az y tengelyhez Beillesztett alak\u00edt\u00f3 'zv' frekvencia = 39,0 Hz (rezg\u00e9sek = 13,2%, sim\u00edt\u00e1s ~= 0,105) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a 'zv', javasolt max_accel <= 5900 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'mzv' frekvencia = 36,8 Hz (rezg\u00e9sek = 1,7%, sim\u00edt\u00e1s ~= 0,150) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'mzv' eset\u00e9ben javasolt max_accel <= 4000 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'ei' frekvencia = 36,6 Hz (rezg\u00e9sek = 2,2%, sim\u00edt\u00e1s ~= 0,240) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'ei', javasolt max_accel <= 2500 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '2hump_ei' frekvencia = 48,0 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,234) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '2hump_ei' eset\u00e9ben javasolt max_accel <= 2500 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '3hump_ei' frekvencia = 59,0 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,235) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '3hump_ei' eset\u00e9ben javasolt max_accel <= 2500 mm/sec^2 Aj\u00e1nlott shaper_type_y = mzv, shaper_freq_y = 36,8 Hz Ha egyet\u00e9rt a javasolt param\u00e9terekkel, akkor a SAVE_CONFIG parancsot most v\u00e9gre lehet hajtani a param\u00e9terek ment\u00e9s\u00e9hez \u00e9s a Klipper \u00fajraind\u00edt\u00e1s\u00e1hoz. Vedd figyelembe, hogy ez nem friss\u00edti a max_accel \u00e9rt\u00e9ket a [printer] szakaszban. Ezt manu\u00e1lisan kell friss\u00edtenie a max_accel kiv\u00e1laszt\u00e1sa szakaszban le\u00edrtak szerint. Ha a nyomtat\u00f3ja Y tengely\u00e9n van a t\u00e1rgyasztal akkor megadhatja, hogy melyik tengelyt k\u00edv\u00e1nja tesztelni, \u00edgy a tesztek k\u00f6z\u00f6tt megv\u00e1ltoztathatja a gyorsul\u00e1sm\u00e9r\u0151 r\u00f6gz\u00edt\u00e9si pontj\u00e1t (alap\u00e9rtelmez\u00e9s szerint a teszt mindk\u00e9t tengelyen v\u00e9grehajt\u00e1sra ker\u00fcl): SHAPER_CALIBRATE AXIS=Y A SAVE_CONFIG parancsot k\u00e9tszer - minden egyes tengely kalibr\u00e1l\u00e1sa ut\u00e1n - lehet v\u00e9grehajtani. Ha azonban egyszerre k\u00e9t gyorsul\u00e1sm\u00e9r\u0151t csatlakoztatott, egyszer\u0171en futtassa a SHAPER_CALIBRATE parancsot tengely megad\u00e1sa n\u00e9lk\u00fcl, hogy a bemeneti alak\u00edt\u00f3t mindk\u00e9t tengelyre egy menetben kalibr\u00e1lja. Bemeneti form\u00e1z\u00f3 \u00fajrakalibr\u00e1l\u00e1sa \u00b6 SHAPER_CALIBRATE parancs arra is haszn\u00e1lhat\u00f3, hogy a bemeneti alak\u00edt\u00f3t a j\u00f6v\u0151ben \u00fajra kalibr\u00e1lja, k\u00fcl\u00f6n\u00f6sen akkor, ha a nyomtat\u00f3 kinematik\u00e1j\u00e1t befoly\u00e1sol\u00f3 v\u00e1ltoz\u00e1sok t\u00f6rt\u00e9nnek. A teljes kalibr\u00e1ci\u00f3t vagy a SHAPER_CALIBRATE paranccsal lehet \u00fajra lefuttatni, vagy az automatikus kalibr\u00e1l\u00e1st egyetlen tengelyre lehet korl\u00e1tozni az AXIS= param\u00e9ter megad\u00e1s\u00e1val, p\u00e9ld\u00e1ul a k\u00f6vetkez\u0151 m\u00f3don SHAPER_CALIBRATE AXIS=X Figyelmeztet\u00e9s! Nem tan\u00e1csos a g\u00e9pen az automatikus kalibr\u00e1ci\u00f3t nagyon gyakran futtatni (pl. minden nyomtat\u00e1s el\u0151tt vagy minden nap). A rezonanciafrekvenci\u00e1k meghat\u00e1roz\u00e1sa \u00e9rdek\u00e9ben az automatikus kalibr\u00e1l\u00e1s intenz\u00edv rezg\u00e9seket hoz l\u00e9tre az egyes tengelyeken. A 3D nyomtat\u00f3kat \u00e1ltal\u00e1ban nem \u00fagy tervezt\u00e9k, hogy a rezonanciafrekvenci\u00e1khoz k\u00f6zeli rezg\u00e9seknek tart\u00f3san ellen\u00e1lljanak. Ez n\u00f6velheti a nyomtat\u00f3 alkatr\u00e9szeinek kop\u00e1s\u00e1t \u00e9s cs\u00f6kkentheti \u00e9lettartamukat. Megn\u0151 a kock\u00e1zata annak is, hogy egyes alkatr\u00e9szek kicsavarodnak vagy meglazulnak. Minden egyes automatikus hangol\u00e1s ut\u00e1n mindig ellen\u0151rizd, hogy a nyomtat\u00f3 minden alkatr\u00e9sze (bele\u00e9rtve azokat is, amelyek norm\u00e1l esetben nem mozoghatnak) biztons\u00e1gosan a hely\u00e9n van-e r\u00f6gz\u00edtve. Tov\u00e1bb\u00e1 a m\u00e9r\u00e9sek zajoss\u00e1ga miatt lehets\u00e9ges, hogy a hangol\u00e1si eredm\u00e9nyek kiss\u00e9 elt\u00e9rnek az egyes kalibr\u00e1l\u00e1si folyamatok k\u00f6z\u00f6tt. Ennek ellen\u00e9re nem v\u00e1rhat\u00f3, hogy a zaj t\u00fals\u00e1gosan befoly\u00e1solja a nyomtat\u00e1si min\u0151s\u00e9get. Mindazon\u00e1ltal tov\u00e1bbra is tan\u00e1csos k\u00e9tszer is ellen\u0151rizni a javasolt param\u00e9tereket, \u00e9s haszn\u00e1lat el\u0151tt nyomtatni n\u00e9h\u00e1ny pr\u00f3banyomatot, hogy megbizonyosodj arr\u00f3l, hogy azok megfelel\u0151ek. A gyorsul\u00e1sm\u00e9r\u0151 adatainak offline feldolgoz\u00e1sa \u00b6 Lehet\u0151s\u00e9g van a nyers gyorsul\u00e1sm\u00e9r\u0151 adatok el\u0151\u00e1ll\u00edt\u00e1s\u00e1ra \u00e9s offline feldolgoz\u00e1s\u00e1ra (pl. egy k\u00f6zponti g\u00e9pen), p\u00e9ld\u00e1ul rezonanci\u00e1k keres\u00e9s\u00e9re. Ehhez futtassa a k\u00f6vetkez\u0151 parancsokat az Octoprint termin\u00e1lon kereszt\u00fcl: SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0 TEST_RESONANCES AXIS=X OUTPUT=raw_data a SET_INPUT_SHAPER parancs hib\u00e1inak figyelmen k\u00edv\u00fcl hagy\u00e1sa. A TEST_RESONANCES parancshoz add meg a k\u00edv\u00e1nt teszttengelyt. A nyers adatok az RPi /tmp k\u00f6nyvt\u00e1r\u00e1ba ker\u00fclnek ki\u00edr\u00e1sra. A nyers adatokat \u00fagy is megkaphatjuk, ha a ACCELEROMETER_MEASURE parancsot k\u00e9tszer futtatjuk valamilyen norm\u00e1l nyomtat\u00e1si tev\u00e9kenys\u00e9g k\u00f6zben - el\u0151sz\u00f6r a m\u00e9r\u00e9sek elind\u00edt\u00e1s\u00e1hoz, majd azok le\u00e1ll\u00edt\u00e1s\u00e1hoz \u00e9s a kimeneti f\u00e1jl \u00edr\u00e1s\u00e1hoz. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a G-k\u00f3dok c\u00edm\u0171 dokumentumot. Az adatokat k\u00e9s\u0151bb a k\u00f6vetkez\u0151 szkriptekkel lehet feldolgozni: scripts/graph_accelerometer.py \u00e9s scripts/calibrate_shaper.py . Mindkett\u0151 egy vagy t\u00f6bb nyers csv-f\u00e1jlt fogad el bemenetk\u00e9nt a m\u00f3dt\u00f3l f\u00fcgg\u0151en. A graph_accelerometer.py szkript t\u00f6bbf\u00e9le \u00fczemm\u00f3dot t\u00e1mogat: nyers gyorsul\u00e1sm\u00e9r\u0151 adatok \u00e1br\u00e1zol\u00e1sa (haszn\u00e1ld a -r param\u00e9tert), csak 1 bemenet t\u00e1mogatott; frekvenciav\u00e1lasz \u00e1br\u00e1zol\u00e1sa (nincs sz\u00fcks\u00e9g tov\u00e1bbi param\u00e9terekre), ha t\u00f6bb bemenet van megadva, az \u00e1tlagos frekvenciav\u00e1lasz ker\u00fcl kisz\u00e1m\u00edt\u00e1sra; t\u00f6bb bemenet frekvenciav\u00e1lasz\u00e1nak \u00f6sszehasonl\u00edt\u00e1sa (haszn\u00e1ld a -c param\u00e9tert); a -a x , -a y vagy -a z param\u00e9terrel ezen fel\u00fcl megadhatod, hogy melyik gyorsul\u00e1sm\u00e9r\u0151 tengelyt vegye figyelembe (ha nincs megadva, az \u00f6sszes tengely rezg\u00e9seinek \u00f6sszeg\u00e9t haszn\u00e1lja); a spektrogram \u00e1br\u00e1zol\u00e1sa (haszn\u00e1ld a -s param\u00e9tert), csak 1 bemenet t\u00e1mogatott; a -a x , -a y vagy -a z param\u00e9terrel ezen fel\u00fcl megadhatod, hogy melyik gyorsul\u00e1sm\u00e9r\u0151 tengelyt vegye figyelembe (ha nincs megadva, akkor az \u00f6sszes tengely rezg\u00e9seinek \u00f6sszeg\u00e9t haszn\u00e1lja). Vedd figyelembe, hogy a graph_accelerometer.py szkript csak a raw_data*.csv f\u00e1jlokat t\u00e1mogatja, a resonances*.csv vagy calibration_data*.csv f\u00e1jlokat nem. P\u00e9ld\u00e1ul, ~/klipper/scripts/graph_accelerometer.py /tmp/raw_data_x_*.csv -o /tmp/resonances_x.png -c -a z t\u00f6bb /tmp/raw_data_x_*.csv f\u00e1jl \u00e9s /tmp/resonances_x.png f\u00e1jl \u00f6sszehasonl\u00edt\u00e1s\u00e1t \u00e1br\u00e1zolja a Z tengelyen. A shaper_calibrate.py szkript 1 vagy t\u00f6bb bemenetet fogad el, \u00e9s k\u00e9pes a bemeneti form\u00e1z\u00f3 automatikus hangol\u00e1s\u00e1ra, valamint a legjobb param\u00e9terek kiv\u00e1laszt\u00e1s\u00e1ra, amelyek j\u00f3l m\u0171k\u00f6dnek az \u00f6sszes megadott bemeneten. A javasolt param\u00e9tereket ki\u00edrja a konzolra, \u00e9s emellett k\u00e9pes l\u00e9trehozni a grafikont, ha -o output.png param\u00e9tert adunk meg, vagy a CSV f\u00e1jlt, ha -c output.csv param\u00e9tert adunk meg. T\u00f6bb bemenet megad\u00e1sa a shaper_calibrate.py szkriptnek hasznos lehet, ha p\u00e9ld\u00e1ul a bemeneti form\u00e1z\u00f3k halad\u00f3 hangol\u00e1s\u00e1t v\u00e9gezz\u00fck: A TEST_RESONANCES AXIS=X OUTPUT=raw_data (\u00e9s Y tengely) futtat\u00e1sa egy tengelyre k\u00e9tszer egy Y t\u00e1rgyasztalos nyomtat\u00f3n \u00fagy, hogy a gyorsul\u00e1sm\u00e9r\u0151 el\u0151sz\u00f6r a nyomtat\u00f3fejhez, m\u00e1sodszor pedig a t\u00e1rgyasztalhoz csatlakozik, hogy a tengelyek keresztrezonanci\u00e1it felismerj\u00fck, \u00e9s megpr\u00f3b\u00e1ljuk azokat a bemeneti alak\u00edt\u00f3kkal megsz\u00fcntetni. A TEST_RESONANCES AXIS=Y OUTPUT=raw_data k\u00e9tszeri futtat\u00e1sa egy \u00fcveg t\u00e1rgyasztalos \u00e9s egy m\u00e1gneses fel\u00fclet\u0171 (amelyik k\u00f6nnyebb) t\u00e1rgyasztalon, hogy megtal\u00e1ljuk azokat a bemeneti alak\u00edt\u00f3 param\u00e9tereket, amelyek j\u00f3l m\u0171k\u00f6dnek b\u00e1rmilyen nyomtat\u00e1si fel\u00fcletkonfigur\u00e1ci\u00f3 eset\u00e9n. A t\u00f6bb vizsg\u00e1lati pontb\u00f3l sz\u00e1rmaz\u00f3 rezonanciaadatok kombin\u00e1l\u00e1sa. A 2 tengely rezonanciaadatainak kombin\u00e1l\u00e1sa (pl. egy Y tengelyen l\u00e9v\u0151 t\u00e1rgyasztalos nyomtat\u00f3n\u00e1l az X-tengely input_shaper konfigur\u00e1l\u00e1sa mind az X-, mind az Y-tengely rezonanci\u00e1ib\u00f3l, hogy a t\u00e1rgyasztal rezg\u00e9seit megsz\u00fcntesse, ha a f\u00fav\u00f3ka 'elkap' egy nyomtat\u00e1st, amikor X tengely ir\u00e1ny\u00e1ban mozog).","title":"Rezonanci\u00e1k m\u00e9r\u00e9se"},{"location":"Measuring_Resonances.html#rezonanciak-merese","text":"A Klipper be\u00e9p\u00edtett t\u00e1mogat\u00e1ssal rendelkezik az ADXL345 gyorsul\u00e1sm\u00e9r\u0151h\u00f6z, amely a nyomtat\u00f3 rezonanci\u00e1inak m\u00e9r\u00e9s\u00e9re haszn\u00e1lhat\u00f3 a k\u00fcl\u00f6nb\u00f6z\u0151 tengelyek eset\u00e9ben, \u00e9s automatikus hangol\u00e1ssal rezonancia kompenz\u00e1ci\u00f3val a rezonanci\u00e1k kompenz\u00e1l\u00e1s\u00e1ra. Vedd figyelembe, hogy az ADXL345 haszn\u00e1lata n\u00e9mi forraszt\u00e1st \u00e9s krimpel\u00e9st ig\u00e9nyel. Az ADXL345 k\u00f6zvetlen\u00fcl csatlakoztathat\u00f3 egy Raspberry Pi-hez, vagy egy MCU-k\u00e1rtya SPI-interf\u00e9sz\u00e9hez (meglehet\u0151sen gyorsnak kell lennie). Az ADXL345 beszerz\u00e9sekor vedd figyelembe, hogy sz\u00e1mos k\u00fcl\u00f6nb\u00f6z\u0151 NY\u00c1K lapkakialak\u00edt\u00e1s \u00e9s k\u00fcl\u00f6nb\u00f6z\u0151 kl\u00f3nok l\u00e9teznek. Gy\u0151z\u0151dj meg r\u00f3la, hogy a k\u00e1rtya t\u00e1mogatja az SPI m\u00f3dot (kis sz\u00e1m\u00fa k\u00e1rtya \u00fagy t\u0171nik, hogy szorosan konfigur\u00e1lva van az I2C-re az SDO GND-re h\u00faz\u00e1s\u00e1val), \u00e9s ha 5V-os nyomtat\u00f3 MCU-hoz csatlakozik ellen\u0151rizd,hogy rendelkezik fesz\u00fclts\u00e9gszab\u00e1lyoz\u00f3val \u00e9s szintv\u00e1laszt\u00f3val.","title":"Rezonanci\u00e1k m\u00e9r\u00e9se"},{"location":"Measuring_Resonances.html#telepitesi-utasitasok","text":"","title":"Telep\u00edt\u00e9si utas\u00edt\u00e1sok"},{"location":"Measuring_Resonances.html#vezetekek","text":"Az ADXL345-\u00f6t SPI-n kereszt\u00fcl kell csatlakoztatnia a Raspberry Pi-hez. Vedd figyelembe, hogy az ADXL345 dokument\u00e1ci\u00f3ja \u00e1ltal javasolt I2C kapcsolatnak t\u00fal alacsony az adatforgalmi k\u00e9pess\u00e9ge, \u00e9s nem fog m\u0171k\u00f6dni . Az aj\u00e1nlott kapcsol\u00e1si s\u00e9ma: ADXL345 t\u0171 RPi t\u0171 RPi t\u0171 n\u00e9v 3V3 (or VCC) 01 3.3v DC fesz\u00fclts\u00e9g GND 06 F\u00f6ld CS 24 GPIO08 (SPI0_CE0_N) SDO 21 GPIO09 (SPI0_MISO) SDA 19 GPIO10 (SPI0_MOSI) SCL 23 GPIO11 (SPI0_SCLK) Az ADXL345 alternat\u00edv\u00e1ja az MPU-9250 (vagy MPU-6050). Ezt a gyorsul\u00e1sm\u00e9r\u0151t \u00fagy tesztelt\u00e9k, hogy az RPi-n 400kbaud-on kereszt\u00fcl I2C-n kereszt\u00fcl m\u0171k\u00f6dik. Aj\u00e1nlott csatlakoz\u00e1si s\u00e9ma az I2C-hez: MPU-9250 t\u0171 RPi t\u0171 RPi t\u0171 n\u00e9v 3V3 (or VCC) 01 3.3v DC fesz\u00fclts\u00e9g GND 09 F\u00f6ld SDA 03 GPIO02 (SDA1) SCL 05 GPIO03 (SCL1) Fritzing kapcsol\u00e1si rajzok n\u00e9h\u00e1ny ADXL345 laphoz: A Raspberry Pi bekapcsol\u00e1sa el\u0151tt ellen\u0151rizd k\u00e9tszer is a vezet\u00e9keket, nehogy megs\u00e9r\u00fclj\u00f6n a Raspberry Pi vagy a gyorsul\u00e1sm\u00e9r\u0151.","title":"Vezet\u00e9kek"},{"location":"Measuring_Resonances.html#a-gyorsulasmero-felszerelese","text":"A gyorsul\u00e1sm\u00e9r\u0151t a nyomtat\u00f3fejhez kell csatlakoztatni. Meg kell tervezni egy megfelel\u0151 r\u00f6gz\u00edt\u00e9st, amely illeszkedik a saj\u00e1t 3D nyomtat\u00f3hoz. A gyorsul\u00e1sm\u00e9r\u0151 tengelyeit jobb a nyomtat\u00f3 tengelyeihez igaz\u00edtani (de ha ez k\u00e9nyelmesebb\u00e9 teszi, a tengelyek felcser\u00e9lhet\u0151k - azaz nem kell az X tengelyt X-hez igaz\u00edtani, \u00e9s \u00edgy tov\u00e1bb. Akkor is rendben kell lennie, ha a gyorsul\u00e1sm\u00e9r\u0151 Z tengelye a nyomtat\u00f3 X tengelye, stb). P\u00e9lda az ADXL345 SmartEffectorra t\u00f6rt\u00e9n\u0151 felszerel\u00e9s\u00e9re: Vedd figyelembe, hogy egy t\u00e1rgyasztal cs\u00fasztat\u00f3s nyomtat\u00f3n\u00e1l 2 r\u00f6gz\u00edt\u00e9st kell tervezni: egyet a nyomtat\u00f3fejhez \u00e9s egyet a t\u00e1rgyasztalhoz, \u00e9s a m\u00e9r\u00e9seket k\u00e9tszer kell elv\u00e9gezni. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a megfelel\u0151 szakaszt . Figyelem: gy\u0151z\u0151dj meg arr\u00f3l, hogy a gyorsul\u00e1sm\u00e9r\u0151 \u00e9s a hely\u00e9re r\u00f6gz\u00edt\u0151 csavarok nem \u00e9rnek a nyomtat\u00f3 f\u00e9m r\u00e9szeihez. Alapvet\u0151en a r\u00f6gz\u00edt\u00e9st \u00fagy kell kialak\u00edtani, hogy biztos\u00edtsa a gyorsul\u00e1sm\u00e9r\u0151 elektromos szigetel\u00e9s\u00e9t a nyomtat\u00f3 keret\u00e9t\u0151l. Ennek elmulaszt\u00e1sa f\u00f6ldhurkot hozhat l\u00e9tre a rendszerben, ami k\u00e1ros\u00edthatja az elektronik\u00e1t.","title":"A gyorsul\u00e1sm\u00e9r\u0151 felszerel\u00e9se"},{"location":"Measuring_Resonances.html#szoftver-telepitese","text":"Vedd figyelembe, hogy a rezonanciam\u00e9r\u00e9sek \u00e9s a shaper automatikus kalibr\u00e1l\u00e1sa tov\u00e1bbi, alap\u00e9rtelmez\u00e9s szerint nem telep\u00edtett szoftverf\u00fcgg\u0151s\u00e9geket ig\u00e9nyel. El\u0151sz\u00f6r futtassa a Raspberry Pi sz\u00e1m\u00edt\u00f3g\u00e9p\u00e9n a k\u00f6vetkez\u0151 parancsokat: sudo apt update sudo apt install python3-numpy python3-matplotlib libatlas-base-dev Ezut\u00e1n a NumPy telep\u00edt\u00e9s\u00e9hez a Klipper k\u00f6rnyezetbe futtassuk a parancsot: ~/klippy-env/bin/pip install -v numpy Vedd figyelembe, hogy a CPU teljes\u00edtm\u00e9ny\u00e9t\u0151l f\u00fcgg\u0151en ez sok id\u0151t vehet ig\u00e9nybe, ak\u00e1r 10-20 percet is. Legyen t\u00fcrelmes, \u00e9s v\u00e1rja meg a telep\u00edt\u00e9s befejez\u00e9s\u00e9t. Bizonyos esetekben, ha a k\u00e1rty\u00e1n t\u00fal kev\u00e9s RAM van, a telep\u00edt\u00e9s meghi\u00fasulhat, \u00e9s enged\u00e9lyeznie kell a swapot. Ezut\u00e1n ellen\u0151rizd \u00e9s k\u00f6vesse az RPi Microcontroller dokumentum utas\u00edt\u00e1sait a \"linux mcu\" be\u00e1ll\u00edt\u00e1s\u00e1hoz a Raspberry Pi-n. Gy\u0151z\u0151dj\u00fcnk meg r\u00f3la, hogy a Linux SPI-illeszt\u0151program enged\u00e9lyezve van a sudo raspi-config futtat\u00e1s\u00e1val \u00e9s az SPI enged\u00e9lyez\u00e9s\u00e9vel az \"Interfacing options\" men\u00fcben. Az ADXL345 eset\u00e9ben add hozz\u00e1 a k\u00f6vetkez\u0151ket a printer.cfg f\u00e1jlhoz: [mcu rpi] serial: /tmp/klipper_host_mcu [adxl345] cs_pin: rpi:None [resonance_tester] accel_chip: adxl345 probe_points: 100, 100, 20 # egy p\u00e9lda Javasoljuk, hogy 1 m\u00e9r\u0151pontal kezd, a nyomtat\u00e1si t\u00e1rgyasztal k\u00f6zep\u00e9n, kiss\u00e9 felette. Az MPU-9250 eset\u00e9ben gy\u0151z\u0151dj meg r\u00f3la, hogy a Linux I2C illeszt\u0151program enged\u00e9lyezve van, \u00e9s az \u00e1tviteli sebess\u00e9g 400000-re van \u00e1ll\u00edtva (tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd az I2C enged\u00e9lyez\u00e9se r\u00e9szt). Ezut\u00e1n adjuk hozz\u00e1 a k\u00f6vetkez\u0151ket a printer.cfg f\u00e1jlhoz: [mcu rpi] serial: /tmp/klipper_host_mcu [mpu9250] i2c_mcu: rpi i2c_bus: i2c.1 [resonance_tester] accel_chip: mpu9250 probe_points: 100, 100, 20 # an example Ind\u00edtsa \u00fajra a Klippert a RESTART paranccsal.","title":"Szoftver telep\u00edt\u00e9se"},{"location":"Measuring_Resonances.html#a-rezonanciak-merese","text":"","title":"A rezonanci\u00e1k m\u00e9r\u00e9se"},{"location":"Measuring_Resonances.html#a-beallitas-ellenorzese","text":"Most m\u00e1r tesztelheti a kapcsolatot. A \"nem t\u00e1rgyasztalt \u00e9rint\u0151\" (pl. egy gyorsul\u00e1sm\u00e9r\u0151), az Octoprintbe \u00edrd be az ACCELEROMETER_QUERY parancsot A \"bed-slingers\" (pl. egyn\u00e9l t\u00f6bb gyorsul\u00e1sm\u00e9r\u0151) eset\u00e9ben \u00edrd be az ACCELEROMETER_QUERY CHIP=<chip> ahol <chip> a chip neve a be\u00edrt form\u00e1ban, pl. CHIP=bed (l\u00e1sd: bed-slinger nyomtat\u00f3k ) az \u00f6sszes telep\u00edtett gyorsul\u00e1sm\u00e9r\u0151 chiphez. A gyorsul\u00e1sm\u00e9r\u0151 aktu\u00e1lis m\u00e9r\u00e9seit kell l\u00e1tnia, bele\u00e9rtve a szabades\u00e9s gyorsul\u00e1s\u00e1t is, pl. Visszah\u00edv\u00e1s: // adxl345 \u00e9rt\u00e9kek (x, y, z): 470.719200, 941.438400, 9728.196800 Ha olyan hib\u00e1t kap, mint Invalid adxl345 id (got xx vs e5) , ahol xx valami m\u00e1s azonos\u00edt\u00f3, azaz ADXL345-\u00f6t \u00e9rint\u0151 kapcsolati probl\u00e9m\u00e1ra vagy a hib\u00e1s \u00e9rz\u00e9kel\u0151re utal. Ellen\u0151rizd k\u00e9tszer is a t\u00e1pell\u00e1t\u00e1st, a k\u00e1belez\u00e9st (hogy megfelel-e a kapcsol\u00e1si rajzoknak, nincs-e t\u00f6r\u00f6tt vagy laza vezet\u00e9k stb.) \u00e9s a forraszt\u00e1s min\u0151s\u00e9g\u00e9t. Ezut\u00e1n pr\u00f3b\u00e1ld meg futtatni a MEASURE_AXES_NOISE parancsot az Octoprintben, \u00edgy kaphatsz n\u00e9h\u00e1ny alapsz\u00e1mot a gyorsul\u00e1sm\u00e9r\u0151 zaj\u00e1ra a tengelyeken (valahol a ~1-100-as tartom\u00e1nyban kell lennie). A t\u00fal magas tengelyzaj (pl. 1000 \u00e9s t\u00f6bb) az \u00e9rz\u00e9kel\u0151 probl\u00e9m\u00e1ira, a t\u00e1pell\u00e1t\u00e1s\u00e1val kapcsolatos probl\u00e9m\u00e1kra vagy a 3D nyomtat\u00f3 t\u00fal zajos, kiegyens\u00falyozatlan ventil\u00e1toraira utalhat.","title":"A be\u00e1ll\u00edt\u00e1s ellen\u0151rz\u00e9se"},{"location":"Measuring_Resonances.html#a-rezonanciak-merese_1","text":"Most m\u00e1r lefuttathat n\u00e9h\u00e1ny val\u00f3s tesztet. Futtassa a k\u00f6vetkez\u0151 parancsot: TEST_RESONANCES AXIS=X Vedd figyelembe, hogy az X tengelyen rezg\u00e9seket hoz l\u00e9tre. A bemeneti alak\u00edt\u00e1st is letiltja, ha az kor\u00e1bban enged\u00e9lyezve volt, mivel a rezonancia tesztel\u00e9s nem \u00e9rv\u00e9nyes a bemeneti alak\u00edt\u00f3 enged\u00e9lyez\u00e9s\u00e9vel. Figyelem! Az els\u0151 alkalommal mindenk\u00e9ppen figyelje meg a nyomtat\u00f3t, hogy a rezg\u00e9sek ne legyenek t\u00fal hevesek (az M112 paranccsal v\u00e9szhelyzet eset\u00e9n megszak\u00edthat\u00f3 a teszt; rem\u00e9lhet\u0151leg azonban erre nem ker\u00fcl sor). Ha a rezg\u00e9sek m\u00e9gis t\u00fal er\u0151sek lesznek, megpr\u00f3b\u00e1lhat az alap\u00e9rtelmezettn\u00e9l alacsonyabb \u00e9rt\u00e9ket megadni az accel_per_hz param\u00e9terhez a [resonance_tester] szakaszban, pl. [resonance_tester] accel_chip: adxl345 accel_per_hz: 50 # default is 75 probe_points: ... Ha az X tengelyen m\u0171k\u00f6dik, futtassa az Y tengelyen is: TEST_RESONANCES AXIS=Y Ez 2 CSV f\u00e1jlt fog l\u00e9trehozni ( /tmp/resonances_x_*.csv \u00e9s /tmp/resonances_y_*.csv ) Ezeket a f\u00e1jlokat a Raspberry Pi-n l\u00e9v\u0151 \u00f6n\u00e1ll\u00f3 szkript seg\u00edts\u00e9g\u00e9vel lehet feldolgozni. Ehhez futtassa a k\u00f6vetkez\u0151 parancsokat: ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_y_*.csv -o /tmp/shaper_calibrate_y.png Ez a szkript l\u00e9trehozza a /tmp/shaper_calibrate_x.png \u00e9s /tmp/shaper_calibrate_y.png diagramokat a frekvenciav\u00e1laszokkal. Az egyes bemeneti shaperek javasolt frekvenci\u00e1it is megkapja, valamint azt, hogy melyik bemeneti shaper aj\u00e1nlott a te be\u00e1ll\u00edt\u00e1sodhoz. P\u00e9ld\u00e1ul: Illesztett alak\u00edt\u00f3 'zv' frekvencia = 34,4 Hz (rezg\u00e9sek = 4,0%, sim\u00edt\u00e1s ~= 0,132) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a 'zv', javasolt max_accel <= 4500 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'mzv' frekvencia = 34,6 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,170) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'mzv' eset\u00e9ben javasolt max_accel <= 3500 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'ei' frekvencia = 41,4 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,188) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'ei', javasolt max_accel <= 3200 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '2hump_ei' frekvencia = 51,8 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,201) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '2hump_ei' eset\u00e9ben javasolt max_accel <= 3000 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '3hump_ei' frekvencia = 61,8 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,215) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '3hump_ei' eset\u00e9ben javasolt max_accel <= 2800 mm/sec^2 Az aj\u00e1nlott shaper az mzv @ 34,6 Hz. A javasolt konfigur\u00e1ci\u00f3 hozz\u00e1adhat\u00f3 az [input_shaper] szakaszhoz a printer.cfg r\u00e9szben, p\u00e9ld\u00e1ul: [input_shaper] shaper_freq_x: ... shaper_type_x: ... shaper_freq_y: 34.6 shaper_type_y: mzv [printer] max_accel: 3000 # nem haladhatja meg a becs\u00fclt max_accel \u00e9rt\u00e9ket az X \u00e9s Y tengelyekn\u00e9l. vagy v\u00e1laszthat m\u00e1s konfigur\u00e1ci\u00f3t is a gener\u00e1lt diagramok alapj\u00e1n: a diagramokon a teljes\u00edtm\u00e9nyspektr\u00e1lis s\u0171r\u0171s\u00e9g cs\u00facsai megfelelnek a nyomtat\u00f3 rezonanciafrekvenci\u00e1inak. Megjegyzend\u0151, hogy alternat\u00edvak\u00e9nt a bemeneti alak\u00edt\u00f3 automatikus kalibr\u00e1ci\u00f3j\u00e1t a Klipperb\u0151l k\u00f6zvetlen\u00fcl is futtathatja, ami p\u00e9ld\u00e1ul a bemeneti form\u00e1z\u00f3 \u00fajrakalibr\u00e1l\u00e1s\u00e1hoz lehet hasznos.","title":"A rezonanci\u00e1k m\u00e9r\u00e9se"},{"location":"Measuring_Resonances.html#bed-slinger-nyomtatok","text":"Ha a nyomtat\u00f3d t\u00e1rgyasztala Y tengelyen van, akkor meg kell v\u00e1ltoztatnod a gyorsul\u00e1sm\u00e9r\u0151 hely\u00e9t az X \u00e9s Y tengelyek m\u00e9r\u00e9sei k\u00f6z\u00f6tt: az X tengely rezonanci\u00e1it a nyomtat\u00f3fejre szerelt gyorsul\u00e1sm\u00e9r\u0151vel, az Y tengely rezonanci\u00e1it pedig a t\u00e1rgyasztalra szerelt gyorsul\u00e1sm\u00e9r\u0151vel kell m\u00e9rned (a szok\u00e1sos nyomtat\u00f3 be\u00e1ll\u00edt\u00e1ssal). Azonban k\u00e9t gyorsul\u00e1sm\u00e9r\u0151t is csatlakoztathatsz egyszerre, b\u00e1r ezeket k\u00fcl\u00f6nb\u00f6z\u0151 lapokhoz kell csatlakoztatni (mondjuk egy RPi \u00e9s egy nyomtat\u00f3 MCU laphoz), vagy k\u00e9t k\u00fcl\u00f6nb\u00f6z\u0151 fizikai SPI interf\u00e9szhez ugyanazon a lapon (ritk\u00e1n el\u00e9rhet\u0151). Ezut\u00e1n a k\u00f6vetkez\u0151 m\u00f3don lehet \u0151ket konfigur\u00e1lni: [adxl345 hotend] # Felt\u00e9telezve, hogy a `hotend` chip egy RPi-hez van csatlakoztatva. cs_pin: rpi:None [adxl345 bed] # Felt\u00e9telezve, hogy a `bed` chip egy nyomtat\u00f3 MCU lapk\u00e1hoz van csatlakoztatva. cs_pin: ... # nyomtat\u00f3 alaplap SPI chip kiv\u00e1laszt\u00f3 (CS) t\u0171je [resonance_tester] # Felt\u00e9telezve az Y t\u00e1rgyasztalos nyomtat\u00f3 tipikus be\u00e1ll\u00edt\u00e1s\u00e1t. accel_chip_x: adxl345 hotend accel_chip_y: adxl345 bed probe_points: ... Ekkor a TEST_RESONANCES AXIS=X \u00e9s TEST_RESONANCES AXIS=Y parancsok a megfelel\u0151 gyorsul\u00e1sm\u00e9r\u0151t fogj\u00e1k haszn\u00e1lni minden tengelyhez.","title":"Bed-slinger nyomtat\u00f3k"},{"location":"Measuring_Resonances.html#max-simitas","text":"Ne feledd, hogy a bemeneti form\u00e1z\u00f3 sim\u00edt\u00e1st hozhat l\u00e9tre az alkatr\u00e9szekben. A calibrate_shaper.py szkript vagy SHAPER_CALIBRATE parancs \u00e1ltal v\u00e9grehajtott bemeneti form\u00e1z\u00f3 automatikus hangol\u00e1sa nem s\u00falyosb\u00edtja a sim\u00edt\u00e1st, ugyanakkor megpr\u00f3b\u00e1lja minimaliz\u00e1lni az ebb\u0151l ered\u0151 rezg\u00e9seket. N\u00e9ha az alakform\u00e1l\u00f3 frekvencia optim\u00e1list\u00f3l elmarad\u00f3 v\u00e1laszt\u00e1s\u00e1t hozhatj\u00e1k, vagy tal\u00e1n egyszer\u0171en csak kev\u00e9sb\u00e9 sim\u00edtj\u00e1k az alkatr\u00e9szeket a nagyobb fennmarad\u00f3 rezg\u00e9sek rov\u00e1s\u00e1ra. Ezekben az esetekben k\u00e9rheti a bemeneti form\u00e1z\u00f3 maxim\u00e1lis sim\u00edt\u00e1s\u00e1nak korl\u00e1toz\u00e1s\u00e1t. N\u00e9zz\u00fck meg az automatikus hangol\u00e1s k\u00f6vetkez\u0151 eredm\u00e9nyeit: Illesztett alak\u00edt\u00f3 'zv' frekvencia = 57,8 Hz (rezg\u00e9sek = 20,3%, sim\u00edt\u00e1s ~= 0,053) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a 'zv', javasolt max_accel <= 13000 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'mzv' frekvencia = 34,8 Hz (rezg\u00e9sek = 3,6%, sim\u00edt\u00e1s ~= 0,168) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'mzv' eset\u00e9ben javasolt max_accel <= 3600 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'ei' frekvencia = 48,8 Hz (rezg\u00e9sek = 4,9%, sim\u00edt\u00e1s ~= 0,135) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'ei', javasolt max_accel <= 4400 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '2hump_ei' frekvencia = 45,2 Hz (rezg\u00e9sek = 0,1%, sim\u00edt\u00e1s ~= 0,264) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '2hump_ei' eset\u00e9ben javasolt max_accel <= 2200 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '3hump_ei' frekvencia = 48,0 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,356) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '3hump_ei' eset\u00e9ben javasolt max_accel <= 1500 mm/sec^2 Az aj\u00e1nlott alak\u00edt\u00f3 2hump_ei @ 45,2 Hz. Vedd figyelembe, hogy a bejelentett sim\u00edt\u00e1s \u00e9rt\u00e9kek absztrakt vet\u00edtett \u00e9rt\u00e9kek. Ezek az \u00e9rt\u00e9kek k\u00fcl\u00f6nb\u00f6z\u0151 konfigur\u00e1ci\u00f3k \u00f6sszehasonl\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3k: min\u00e9l magasabb az \u00e9rt\u00e9k, ann\u00e1l nagyobb sim\u00edt\u00e1st hoz l\u00e9tre a form\u00e1z\u00f3. Ezek a sim\u00edt\u00e1si \u00e9rt\u00e9kek azonban nem jelentik a sim\u00edt\u00e1s val\u00f3di m\u00e9rt\u00e9k\u00e9t, mivel a t\u00e9nyleges sim\u00edt\u00e1s a max_accel \u00e9s square_corner_velocity param\u00e9terekt\u0151l f\u00fcgg. Ez\u00e9rt \u00e9rdemes n\u00e9h\u00e1ny tesztnyomatot nyomtatni, hogy l\u00e1ssuk, pontosan mekkora sim\u00edt\u00e1st hoz l\u00e9tre a kiv\u00e1lasztott konfigur\u00e1ci\u00f3. A fenti p\u00e9ld\u00e1ban a javasolt alak\u00edt\u00f3 param\u00e9terek nem rosszak, de mi van akkor, ha az X tengelyen kevesebb sim\u00edt\u00e1st szeretne el\u00e9rni? Megpr\u00f3b\u00e1lhatod korl\u00e1tozni a maxim\u00e1lis alak\u00edt\u00f3 sim\u00edt\u00e1st a k\u00f6vetkez\u0151 paranccsal: ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png --max_smoothing=0.2 amely a sim\u00edt\u00e1st 0,2 pontsz\u00e1mra korl\u00e1tozza. Most a k\u00f6vetkez\u0151 eredm\u00e9nyt kaphatja: Illesztett alak\u00edt\u00f3 'zv' frekvencia = 55,4 Hz (rezg\u00e9sek = 19,7%, sim\u00edt\u00e1s ~= 0,057) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a 'zv', javasolt max_accel <= 12000 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'mzv' frekvencia = 34,6 Hz (rezg\u00e9sek = 3,6%, sim\u00edt\u00e1s ~= 0,170) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'mzv' eset\u00e9ben javasolt max_accel <= 3500 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'ei' frekvencia = 48,2 Hz (rezg\u00e9sek = 4,8%, sim\u00edt\u00e1s ~= 0,139) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'ei' eset\u00e9ben javasolt max_accel <= 4300 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '2hump_ei' frekvencia = 52,0 Hz (rezg\u00e9sek = 2,7%, sim\u00edt\u00e1s ~= 0,200) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '2hump_ei' eset\u00e9ben javasolt max_accel <= 3000 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '3hump_ei' frekvencia = 72,6 Hz (rezg\u00e9sek = 1,4%, sim\u00edt\u00e1s ~= 0,155) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '3hump_ei' eset\u00e9ben javasolt max_accel <= 3900 mm/sec^2 Az aj\u00e1nlott alak\u00edt\u00f3 3hump_ei @ 72,6 Hz. Ha \u00f6sszehasonl\u00edtjuk a kor\u00e1bban javasolt param\u00e9terekkel, a rezg\u00e9sek kicsit nagyobbak, de a sim\u00edt\u00e1s l\u00e9nyegesen kisebb, mint kor\u00e1bban, ami nagyobb maxim\u00e1lis gyorsul\u00e1st tesz lehet\u0151v\u00e9. A max_smoothing param\u00e9ter kiv\u00e1laszt\u00e1sakor a pr\u00f3b\u00e1lgat\u00e1s \u00e9s a t\u00e9ved\u00e9s m\u00f3dszer\u00e9t alkalmazhatjuk. Pr\u00f3b\u00e1ljon ki n\u00e9h\u00e1ny k\u00fcl\u00f6nb\u00f6z\u0151 \u00e9rt\u00e9ket, \u00e9s n\u00e9zze meg, milyen eredm\u00e9nyeket kap. Vedd figyelembe, hogy a bemeneti alak\u00edt\u00f3 \u00e1ltal el\u0151\u00e1ll\u00edtott t\u00e9nyleges sim\u00edt\u00e1s els\u0151sorban a nyomtat\u00f3 legalacsonyabb rezonanciafrekvenci\u00e1j\u00e1t\u00f3l f\u00fcgg: min\u00e9l magasabb a legalacsonyabb rezonancia frekvenci\u00e1ja - ann\u00e1l kisebb a sim\u00edt\u00e1s. Ez\u00e9rt ha azt k\u00e9ri a parancsf\u00e1jlt\u00f3l, hogy a bemeneti alak\u00edt\u00f3 olyan konfigur\u00e1ci\u00f3j\u00e1t keresse meg, amely irre\u00e1lisan kis sim\u00edt\u00e1ssal rendelkezik, akkor ez a legalacsonyabb rezonanciafrekvenci\u00e1kon (amelyek jellemz\u0151en a nyomatokon is jobban l\u00e1that\u00f3ak) megn\u00f6vekedett rezg\u00e9s \u00e1r\u00e1n fog t\u00f6rt\u00e9nni. Ez\u00e9rt mindig ellen\u0151rizd k\u00e9tszeresen a szkript \u00e1ltal jelzett vet\u00edtett marad\u00f3 rezg\u00e9seket, \u00e9s gy\u0151z\u0151dj meg r\u00f3la, hogy azok nem t\u00fal magasak. Ha mindk\u00e9t tengelyhez j\u00f3 max_smoothing \u00e9rt\u00e9ket v\u00e1lasztott, akkor azt a printer.cfg \u00e1llom\u00e1nyban t\u00e1rolhatja a k\u00f6vetkez\u0151 m\u00f3don [resonance_tester] accel_chip: ... probe_points: ... max_smoothing: 0.25 # egy p\u00e9lda Ezut\u00e1n, ha a j\u00f6v\u0151ben \u00fajraind\u00edtja a bemeneti alak\u00edt\u00f3 automatikus hangol\u00e1s\u00e1t a SHAPER_CALIBRATE Klipper parancs seg\u00edts\u00e9g\u00e9vel, akkor a t\u00e1rolt max_smoothing \u00e9rt\u00e9ket fogja referenciak\u00e9nt haszn\u00e1lni.","title":"Max sim\u00edt\u00e1s"},{"location":"Measuring_Resonances.html#a-max_accel-kivalasztasa","text":"Mivel a bemeneti alak\u00edt\u00f3 n\u00e9mi sim\u00edt\u00e1st okozhat az elemekben, k\u00fcl\u00f6n\u00f6sen nagy gyorsul\u00e1sokn\u00e1l, tov\u00e1bbra is meg kell v\u00e1lasztani a max_accel \u00e9rt\u00e9ket, amely nem okoz t\u00fal nagy sim\u00edt\u00e1st a nyomtatott alkatr\u00e9szekben. Egy kalibr\u00e1ci\u00f3s szkript becsl\u00e9st ad a max_accel param\u00e9terre, amely nem okozhat t\u00fal nagy sim\u00edt\u00e1st. Vedd figyelembe, hogy a kalibr\u00e1ci\u00f3s szkript \u00e1ltal megjelen\u00edtett max_accel csak egy elm\u00e9leti maximum, amelyn\u00e9l az adott alak\u00edt\u00f3 m\u00e9g k\u00e9pes \u00fagy dolgozni, hogy nem okoz t\u00fal nagy sim\u00edt\u00e1st. Semmik\u00e9ppen sem aj\u00e1nlott ezt a gyorsul\u00e1st be\u00e1ll\u00edtani a nyomtat\u00e1shoz. A nyomtat\u00f3ja \u00e1ltal elviselhet\u0151 maxim\u00e1lis gyorsul\u00e1s a nyomtat\u00f3 mechanikai tulajdons\u00e1gait\u00f3l \u00e9s a haszn\u00e1lt l\u00e9ptet\u0151motorok maxim\u00e1lis nyomat\u00e9k\u00e1t\u00f3l f\u00fcgg. Ez\u00e9rt javasolt a max_accel be\u00e1ll\u00edt\u00e1sa a [nyomtat\u00f3] szakaszban, amely nem haladja meg az X \u00e9s Y tengelyek becs\u00fclt \u00e9rt\u00e9keit, val\u00f3sz\u00edn\u0171leg n\u00e9mi konzervat\u00edv biztons\u00e1gi tartal\u00e9kkal. Alternat\u00edvak\u00e9nt k\u00f6vesse ezt a r\u00e9szt a bemeneti alak\u00edt\u00f3 hangol\u00e1si \u00fatmutat\u00f3j\u00e1ban, \u00e9s nyomtasd ki a tesztmodellt a max_accel param\u00e9ter k\u00eds\u00e9rleti kiv\u00e1laszt\u00e1s\u00e1hoz. Ugyanez a figyelmeztet\u00e9s vonatkozik a bemeneti alak\u00edt\u00f3 automatikus kalibr\u00e1l\u00e1s SHAPER_CALIBRATE paranccsal t\u00f6rt\u00e9n\u0151 haszn\u00e1lat\u00e1ra is: az automatikus kalibr\u00e1l\u00e1s ut\u00e1n tov\u00e1bbra is sz\u00fcks\u00e9ges a megfelel\u0151 max_accel \u00e9rt\u00e9k kiv\u00e1laszt\u00e1sa, \u00e9s a javasolt gyorsul\u00e1si korl\u00e1tok nem lesznek automatikusan alkalmazva. Ha a form\u00e1z\u00f3 \u00fajrakalibr\u00e1l\u00e1s\u00e1t v\u00e9gzi, \u00e9s a javasolt form\u00e1z\u00f3 konfigur\u00e1ci\u00f3hoz tartoz\u00f3 sim\u00edt\u00e1s majdnem megegyezik az el\u0151z\u0151 kalibr\u00e1l\u00e1s sor\u00e1n kapott \u00e9rt\u00e9kkel, ez a l\u00e9p\u00e9s kihagyhat\u00f3.","title":"A max_accel kiv\u00e1laszt\u00e1sa"},{"location":"Measuring_Resonances.html#egyeni-tengelyek-tesztelese","text":"TEST_RESONANCES parancs t\u00e1mogatja az egy\u00e9ni tengelyeket. B\u00e1r ez nem igaz\u00e1n hasznos a bemeneti alak\u00edt\u00f3 kalibr\u00e1l\u00e1s\u00e1hoz, a nyomtat\u00f3 rezonanci\u00e1inak alapos tanulm\u00e1nyoz\u00e1s\u00e1ra \u00e9s p\u00e9ld\u00e1ul a sz\u00edjfesz\u00edt\u00e9s ellen\u0151rz\u00e9s\u00e9re haszn\u00e1lhat\u00f3. A CoreXY nyomtat\u00f3kon a sz\u00edjfesz\u00edt\u00e9s ellen\u0151rz\u00e9s\u00e9hez hajtsd v\u00e9gre a k\u00f6vetkez\u0151t TEST_RESONANCES AXIS=1,1 OUTPUT=raw_data TEST_RESONANCES AXIS=1,-1 OUTPUT=raw_data \u00e9s haszn\u00e1ljuk a graph_accelerometer.py f\u00e1jlt a gener\u00e1lt f\u00e1jlok feldolgoz\u00e1s\u00e1hoz, pl. ~/klipper/scripts/graph_accelerometer.py -c /tmp/raw_data_axis*.csv -o /tmp/resonances.png amely a rezonanci\u00e1kat \u00f6sszehasonl\u00edtva /tmp/resonances.png k\u00e9pet hoz l\u00e9tre. Az alap\u00e9rtelmezett toronyelhelyez\u00e9s\u0171 Delta nyomtat\u00f3k eset\u00e9ben (A torony ~= 210 fok, B ~= 330 fok \u00e9s C ~= 90 fok), hajtsd v\u00e9gre a k\u00f6vetkez\u0151t TEST_RESONANCES AXIS=0,1 OUTPUT=raw_data TEST_RESONANCES AXIS=-0.866025404,-0.5 OUTPUT=raw_data TEST_RESONANCES AXIS=0.866025404,-0.5 OUTPUT=raw_data majd haszn\u00e1ld ugyanazt a parancsot ~/klipper/scripts/graph_accelerometer.py -c /tmp/raw_data_axis*.csv -o /tmp/resonances.png /tmp/resonances.png l\u00e9trehoz\u00e1s\u00e1hoz, amely \u00f6sszehasonl\u00edtja a rezonanci\u00e1kat.","title":"Egy\u00e9ni tengelyek tesztel\u00e9se"},{"location":"Measuring_Resonances.html#bemeneti-formazo-automatikus-kalibralasa","text":"A bemeneti form\u00e1z\u00f3 funkci\u00f3 megfelel\u0151 param\u00e9tereinek k\u00e9zi kiv\u00e1laszt\u00e1sa mellett a bemeneti alak\u00edt\u00f3 automatikus hangol\u00e1sa k\u00f6zvetlen\u00fcl a Klipperb\u0151l is elv\u00e9gezhet\u0151. Futtassa a k\u00f6vetkez\u0151 parancsot az Octoprint termin\u00e1lon kereszt\u00fcl: SHAPER_CALIBRATE Ez lefuttatja a teljes tesztet mindk\u00e9t tengelyre, \u00e9s l\u00e9trehozza a csv-kimenetet ( /tmp/calibration_data_*.csv alap\u00e9rtelmez\u00e9s szerint) a frekvenciav\u00e1laszr\u00f3l \u00e9s a javasolt bemeneti alak\u00edt\u00f3kr\u00f3l. Az Octoprint konzolon megkapja az egyes bemeneti alak\u00edt\u00f3k javasolt frekvenci\u00e1it is, valamint azt, hogy melyik bemeneti alak\u00edt\u00f3t aj\u00e1nljuk az \u00d6n be\u00e1ll\u00edt\u00e1s\u00e1hoz. P\u00e9ld\u00e1ul: A legjobb bemeneti alak\u00edt\u00f3 param\u00e9terek kisz\u00e1m\u00edt\u00e1sa az y tengelyhez Beillesztett alak\u00edt\u00f3 'zv' frekvencia = 39,0 Hz (rezg\u00e9sek = 13,2%, sim\u00edt\u00e1s ~= 0,105) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a 'zv', javasolt max_accel <= 5900 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'mzv' frekvencia = 36,8 Hz (rezg\u00e9sek = 1,7%, sim\u00edt\u00e1s ~= 0,150) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'mzv' eset\u00e9ben javasolt max_accel <= 4000 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'ei' frekvencia = 36,6 Hz (rezg\u00e9sek = 2,2%, sim\u00edt\u00e1s ~= 0,240) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'ei', javasolt max_accel <= 2500 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '2hump_ei' frekvencia = 48,0 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,234) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '2hump_ei' eset\u00e9ben javasolt max_accel <= 2500 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '3hump_ei' frekvencia = 59,0 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,235) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '3hump_ei' eset\u00e9ben javasolt max_accel <= 2500 mm/sec^2 Aj\u00e1nlott shaper_type_y = mzv, shaper_freq_y = 36,8 Hz Ha egyet\u00e9rt a javasolt param\u00e9terekkel, akkor a SAVE_CONFIG parancsot most v\u00e9gre lehet hajtani a param\u00e9terek ment\u00e9s\u00e9hez \u00e9s a Klipper \u00fajraind\u00edt\u00e1s\u00e1hoz. Vedd figyelembe, hogy ez nem friss\u00edti a max_accel \u00e9rt\u00e9ket a [printer] szakaszban. Ezt manu\u00e1lisan kell friss\u00edtenie a max_accel kiv\u00e1laszt\u00e1sa szakaszban le\u00edrtak szerint. Ha a nyomtat\u00f3ja Y tengely\u00e9n van a t\u00e1rgyasztal akkor megadhatja, hogy melyik tengelyt k\u00edv\u00e1nja tesztelni, \u00edgy a tesztek k\u00f6z\u00f6tt megv\u00e1ltoztathatja a gyorsul\u00e1sm\u00e9r\u0151 r\u00f6gz\u00edt\u00e9si pontj\u00e1t (alap\u00e9rtelmez\u00e9s szerint a teszt mindk\u00e9t tengelyen v\u00e9grehajt\u00e1sra ker\u00fcl): SHAPER_CALIBRATE AXIS=Y A SAVE_CONFIG parancsot k\u00e9tszer - minden egyes tengely kalibr\u00e1l\u00e1sa ut\u00e1n - lehet v\u00e9grehajtani. Ha azonban egyszerre k\u00e9t gyorsul\u00e1sm\u00e9r\u0151t csatlakoztatott, egyszer\u0171en futtassa a SHAPER_CALIBRATE parancsot tengely megad\u00e1sa n\u00e9lk\u00fcl, hogy a bemeneti alak\u00edt\u00f3t mindk\u00e9t tengelyre egy menetben kalibr\u00e1lja.","title":"Bemeneti form\u00e1z\u00f3 automatikus kalibr\u00e1l\u00e1sa"},{"location":"Measuring_Resonances.html#bemeneti-formazo-ujrakalibralasa","text":"SHAPER_CALIBRATE parancs arra is haszn\u00e1lhat\u00f3, hogy a bemeneti alak\u00edt\u00f3t a j\u00f6v\u0151ben \u00fajra kalibr\u00e1lja, k\u00fcl\u00f6n\u00f6sen akkor, ha a nyomtat\u00f3 kinematik\u00e1j\u00e1t befoly\u00e1sol\u00f3 v\u00e1ltoz\u00e1sok t\u00f6rt\u00e9nnek. A teljes kalibr\u00e1ci\u00f3t vagy a SHAPER_CALIBRATE paranccsal lehet \u00fajra lefuttatni, vagy az automatikus kalibr\u00e1l\u00e1st egyetlen tengelyre lehet korl\u00e1tozni az AXIS= param\u00e9ter megad\u00e1s\u00e1val, p\u00e9ld\u00e1ul a k\u00f6vetkez\u0151 m\u00f3don SHAPER_CALIBRATE AXIS=X Figyelmeztet\u00e9s! Nem tan\u00e1csos a g\u00e9pen az automatikus kalibr\u00e1ci\u00f3t nagyon gyakran futtatni (pl. minden nyomtat\u00e1s el\u0151tt vagy minden nap). A rezonanciafrekvenci\u00e1k meghat\u00e1roz\u00e1sa \u00e9rdek\u00e9ben az automatikus kalibr\u00e1l\u00e1s intenz\u00edv rezg\u00e9seket hoz l\u00e9tre az egyes tengelyeken. A 3D nyomtat\u00f3kat \u00e1ltal\u00e1ban nem \u00fagy tervezt\u00e9k, hogy a rezonanciafrekvenci\u00e1khoz k\u00f6zeli rezg\u00e9seknek tart\u00f3san ellen\u00e1lljanak. Ez n\u00f6velheti a nyomtat\u00f3 alkatr\u00e9szeinek kop\u00e1s\u00e1t \u00e9s cs\u00f6kkentheti \u00e9lettartamukat. Megn\u0151 a kock\u00e1zata annak is, hogy egyes alkatr\u00e9szek kicsavarodnak vagy meglazulnak. Minden egyes automatikus hangol\u00e1s ut\u00e1n mindig ellen\u0151rizd, hogy a nyomtat\u00f3 minden alkatr\u00e9sze (bele\u00e9rtve azokat is, amelyek norm\u00e1l esetben nem mozoghatnak) biztons\u00e1gosan a hely\u00e9n van-e r\u00f6gz\u00edtve. Tov\u00e1bb\u00e1 a m\u00e9r\u00e9sek zajoss\u00e1ga miatt lehets\u00e9ges, hogy a hangol\u00e1si eredm\u00e9nyek kiss\u00e9 elt\u00e9rnek az egyes kalibr\u00e1l\u00e1si folyamatok k\u00f6z\u00f6tt. Ennek ellen\u00e9re nem v\u00e1rhat\u00f3, hogy a zaj t\u00fals\u00e1gosan befoly\u00e1solja a nyomtat\u00e1si min\u0151s\u00e9get. Mindazon\u00e1ltal tov\u00e1bbra is tan\u00e1csos k\u00e9tszer is ellen\u0151rizni a javasolt param\u00e9tereket, \u00e9s haszn\u00e1lat el\u0151tt nyomtatni n\u00e9h\u00e1ny pr\u00f3banyomatot, hogy megbizonyosodj arr\u00f3l, hogy azok megfelel\u0151ek.","title":"Bemeneti form\u00e1z\u00f3 \u00fajrakalibr\u00e1l\u00e1sa"},{"location":"Measuring_Resonances.html#a-gyorsulasmero-adatainak-offline-feldolgozasa","text":"Lehet\u0151s\u00e9g van a nyers gyorsul\u00e1sm\u00e9r\u0151 adatok el\u0151\u00e1ll\u00edt\u00e1s\u00e1ra \u00e9s offline feldolgoz\u00e1s\u00e1ra (pl. egy k\u00f6zponti g\u00e9pen), p\u00e9ld\u00e1ul rezonanci\u00e1k keres\u00e9s\u00e9re. Ehhez futtassa a k\u00f6vetkez\u0151 parancsokat az Octoprint termin\u00e1lon kereszt\u00fcl: SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0 TEST_RESONANCES AXIS=X OUTPUT=raw_data a SET_INPUT_SHAPER parancs hib\u00e1inak figyelmen k\u00edv\u00fcl hagy\u00e1sa. A TEST_RESONANCES parancshoz add meg a k\u00edv\u00e1nt teszttengelyt. A nyers adatok az RPi /tmp k\u00f6nyvt\u00e1r\u00e1ba ker\u00fclnek ki\u00edr\u00e1sra. A nyers adatokat \u00fagy is megkaphatjuk, ha a ACCELEROMETER_MEASURE parancsot k\u00e9tszer futtatjuk valamilyen norm\u00e1l nyomtat\u00e1si tev\u00e9kenys\u00e9g k\u00f6zben - el\u0151sz\u00f6r a m\u00e9r\u00e9sek elind\u00edt\u00e1s\u00e1hoz, majd azok le\u00e1ll\u00edt\u00e1s\u00e1hoz \u00e9s a kimeneti f\u00e1jl \u00edr\u00e1s\u00e1hoz. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a G-k\u00f3dok c\u00edm\u0171 dokumentumot. Az adatokat k\u00e9s\u0151bb a k\u00f6vetkez\u0151 szkriptekkel lehet feldolgozni: scripts/graph_accelerometer.py \u00e9s scripts/calibrate_shaper.py . Mindkett\u0151 egy vagy t\u00f6bb nyers csv-f\u00e1jlt fogad el bemenetk\u00e9nt a m\u00f3dt\u00f3l f\u00fcgg\u0151en. A graph_accelerometer.py szkript t\u00f6bbf\u00e9le \u00fczemm\u00f3dot t\u00e1mogat: nyers gyorsul\u00e1sm\u00e9r\u0151 adatok \u00e1br\u00e1zol\u00e1sa (haszn\u00e1ld a -r param\u00e9tert), csak 1 bemenet t\u00e1mogatott; frekvenciav\u00e1lasz \u00e1br\u00e1zol\u00e1sa (nincs sz\u00fcks\u00e9g tov\u00e1bbi param\u00e9terekre), ha t\u00f6bb bemenet van megadva, az \u00e1tlagos frekvenciav\u00e1lasz ker\u00fcl kisz\u00e1m\u00edt\u00e1sra; t\u00f6bb bemenet frekvenciav\u00e1lasz\u00e1nak \u00f6sszehasonl\u00edt\u00e1sa (haszn\u00e1ld a -c param\u00e9tert); a -a x , -a y vagy -a z param\u00e9terrel ezen fel\u00fcl megadhatod, hogy melyik gyorsul\u00e1sm\u00e9r\u0151 tengelyt vegye figyelembe (ha nincs megadva, az \u00f6sszes tengely rezg\u00e9seinek \u00f6sszeg\u00e9t haszn\u00e1lja); a spektrogram \u00e1br\u00e1zol\u00e1sa (haszn\u00e1ld a -s param\u00e9tert), csak 1 bemenet t\u00e1mogatott; a -a x , -a y vagy -a z param\u00e9terrel ezen fel\u00fcl megadhatod, hogy melyik gyorsul\u00e1sm\u00e9r\u0151 tengelyt vegye figyelembe (ha nincs megadva, akkor az \u00f6sszes tengely rezg\u00e9seinek \u00f6sszeg\u00e9t haszn\u00e1lja). Vedd figyelembe, hogy a graph_accelerometer.py szkript csak a raw_data*.csv f\u00e1jlokat t\u00e1mogatja, a resonances*.csv vagy calibration_data*.csv f\u00e1jlokat nem. P\u00e9ld\u00e1ul, ~/klipper/scripts/graph_accelerometer.py /tmp/raw_data_x_*.csv -o /tmp/resonances_x.png -c -a z t\u00f6bb /tmp/raw_data_x_*.csv f\u00e1jl \u00e9s /tmp/resonances_x.png f\u00e1jl \u00f6sszehasonl\u00edt\u00e1s\u00e1t \u00e1br\u00e1zolja a Z tengelyen. A shaper_calibrate.py szkript 1 vagy t\u00f6bb bemenetet fogad el, \u00e9s k\u00e9pes a bemeneti form\u00e1z\u00f3 automatikus hangol\u00e1s\u00e1ra, valamint a legjobb param\u00e9terek kiv\u00e1laszt\u00e1s\u00e1ra, amelyek j\u00f3l m\u0171k\u00f6dnek az \u00f6sszes megadott bemeneten. A javasolt param\u00e9tereket ki\u00edrja a konzolra, \u00e9s emellett k\u00e9pes l\u00e9trehozni a grafikont, ha -o output.png param\u00e9tert adunk meg, vagy a CSV f\u00e1jlt, ha -c output.csv param\u00e9tert adunk meg. T\u00f6bb bemenet megad\u00e1sa a shaper_calibrate.py szkriptnek hasznos lehet, ha p\u00e9ld\u00e1ul a bemeneti form\u00e1z\u00f3k halad\u00f3 hangol\u00e1s\u00e1t v\u00e9gezz\u00fck: A TEST_RESONANCES AXIS=X OUTPUT=raw_data (\u00e9s Y tengely) futtat\u00e1sa egy tengelyre k\u00e9tszer egy Y t\u00e1rgyasztalos nyomtat\u00f3n \u00fagy, hogy a gyorsul\u00e1sm\u00e9r\u0151 el\u0151sz\u00f6r a nyomtat\u00f3fejhez, m\u00e1sodszor pedig a t\u00e1rgyasztalhoz csatlakozik, hogy a tengelyek keresztrezonanci\u00e1it felismerj\u00fck, \u00e9s megpr\u00f3b\u00e1ljuk azokat a bemeneti alak\u00edt\u00f3kkal megsz\u00fcntetni. A TEST_RESONANCES AXIS=Y OUTPUT=raw_data k\u00e9tszeri futtat\u00e1sa egy \u00fcveg t\u00e1rgyasztalos \u00e9s egy m\u00e1gneses fel\u00fclet\u0171 (amelyik k\u00f6nnyebb) t\u00e1rgyasztalon, hogy megtal\u00e1ljuk azokat a bemeneti alak\u00edt\u00f3 param\u00e9tereket, amelyek j\u00f3l m\u0171k\u00f6dnek b\u00e1rmilyen nyomtat\u00e1si fel\u00fcletkonfigur\u00e1ci\u00f3 eset\u00e9n. A t\u00f6bb vizsg\u00e1lati pontb\u00f3l sz\u00e1rmaz\u00f3 rezonanciaadatok kombin\u00e1l\u00e1sa. A 2 tengely rezonanciaadatainak kombin\u00e1l\u00e1sa (pl. egy Y tengelyen l\u00e9v\u0151 t\u00e1rgyasztalos nyomtat\u00f3n\u00e1l az X-tengely input_shaper konfigur\u00e1l\u00e1sa mind az X-, mind az Y-tengely rezonanci\u00e1ib\u00f3l, hogy a t\u00e1rgyasztal rezg\u00e9seit megsz\u00fcntesse, ha a f\u00fav\u00f3ka 'elkap' egy nyomtat\u00e1st, amikor X tengely ir\u00e1ny\u00e1ban mozog).","title":"A gyorsul\u00e1sm\u00e9r\u0151 adatainak offline feldolgoz\u00e1sa"},{"location":"Multi_MCU_Homing.html","text":"T\u00f6bb mikrovez\u00e9l\u0151s kezd\u0151pont \u00e9s szond\u00e1z\u00e1s \u00b6 A Klipper t\u00e1mogatja a kezd\u0151pont mechanizmus\u00e1t egy v\u00e9g\u00e1ll\u00e1ssal, amely egy mikrokontrollerhez van csatlakoztatva, m\u00edg a l\u00e9ptet\u0151motorok egy m\u00e1sik mikrokontrollerhez vannak csatlakoztatva. Ezt a t\u00e1mogat\u00e1st nevezik \"multi-mcu homing\" -nak. Ez a funkci\u00f3 akkor is haszn\u00e1latos, ha a Z-\u00e9rz\u00e9kel\u0151 m\u00e1s mikrokontrollerre van k\u00f6tve, mint a Z l\u00e9ptet\u0151motorok. Ez a funkci\u00f3 hasznos lehet a vezet\u00e9kez\u00e9s egyszer\u0171s\u00edt\u00e9se \u00e9rdek\u00e9ben, mivel k\u00e9nyelmesebb lehet egy v\u00e9g\u00e1ll\u00e1skapcsol\u00f3t vagy szond\u00e1t egy k\u00f6zelebbi mikrokontrollerhez csatlakoztatni. Ennek a funkci\u00f3nak a haszn\u00e1lata azonban a l\u00e9ptet\u0151motorok \"t\u00fallend\u00fcl\u00e9s\u00e9t\" eredm\u00e9nyezheti a kezd\u0151pont \u00e9s a m\u00e9r\u00e9si m\u0171veletek sor\u00e1n. A t\u00fallend\u00fcl\u00e9s a v\u00e9g\u00e1ll\u00e1st figyel\u0151 mikrovez\u00e9rl\u0151 \u00e9s a l\u00e9ptet\u0151motorokat mozgat\u00f3 mikrovez\u00e9rl\u0151k k\u00f6z\u00f6tti esetleges \u00fczenet\u00e1tviteli k\u00e9s\u00e9sek miatt k\u00f6vetkezik be. A Klipper k\u00f3dot \u00fagy tervezt\u00e9k, hogy ezt a k\u00e9sleltet\u00e9st legfeljebb 25 ms-ra korl\u00e1tozza. (Ha a multi-mcu homing aktiv\u00e1lva van, a mikrovez\u00e9rl\u0151k id\u0151szakos \u00e1llapot\u00fczeneteket k\u00fcldenek, \u00e9s ellen\u0151rzik, hogy a megfelel\u0151 \u00e1llapot\u00fczenetek 25 ms-on bel\u00fcl \u00e9rkeznek-e meg.) \u00cdgy p\u00e9ld\u00e1ul, ha 10 mm/sec sebess\u00e9ggel t\u00f6rt\u00e9nik a kezd\u0151pont felv\u00e9tele, akkor ak\u00e1r 0,250 mm-es t\u00fallend\u00fcl\u00e9s is lehets\u00e9ges (10 mm/sec * .025mp == 0,250 mm). A multi-mcu homing konfigur\u00e1l\u00e1sakor gondosan kell elj\u00e1rni, hogy az ilyen t\u00edpus\u00fa t\u00fallend\u00fcl\u00e9sn\u00e9l figyelembe vegy\u00fck. Lassabb kezd\u0151pont felv\u00e9tel vagy tapint\u00e1si sebess\u00e9gek haszn\u00e1lata cs\u00f6kkentheti a t\u00fallend\u00fcl\u00e9st. A l\u00e9ptet\u0151motor t\u00fallend\u00fcl\u00e9se nem befoly\u00e1solhatja h\u00e1tr\u00e1nyosan az alaphelyzetbe \u00e1ll\u00edt\u00e1si \u00e9s tapint\u00e1si elj\u00e1r\u00e1s pontoss\u00e1g\u00e1t. A Klipper k\u00f3d \u00e9szleli a t\u00fallend\u00fcl\u00e9st, \u00e9s sz\u00e1m\u00edt\u00e1sai sor\u00e1n figyelembe veszi azt. Fontos azonban, hogy a hardvertervez\u00e9s k\u00e9pes legyen kezelni a t\u00fallend\u00fcl\u00e9st an\u00e9lk\u00fcl, hogy a g\u00e9pben k\u00e1rt okozna. Ha a Klipper kommunik\u00e1ci\u00f3s probl\u00e9m\u00e1t \u00e9szlel a mikrovez\u00e9rl\u0151k k\u00f6z\u00f6tt a multi-mcu homing sor\u00e1n, akkor egy \"Kommunik\u00e1ci\u00f3s id\u0151kies\u00e9s a kezd\u0151pont felv\u00e9tel sor\u00e1n\" hib\u00e1t jelez. Vedd figyelembe, hogy a t\u00f6bb l\u00e9ptet\u0151vel rendelkez\u0151 tengelyeknek (pl. stepper_z \u00e9s stepper_z1 ) ugyanazon a mikrokontrolleren kell lenni\u00fck a multi-mcu homing haszn\u00e1lat\u00e1hoz. P\u00e9ld\u00e1ul, ha egy v\u00e9g\u00e1ll\u00e1s a stepper_z mikrokontrollert\u0151l k\u00fcl\u00f6n mikrokontrolleren van, akkor a stepper_z1 -nek ugyanazon a mikrokontrolleren kell lennie, mint a stepper_z .","title":"T\u00f6bb mikrovez\u00e9l\u0151s kezd\u0151pont \u00e9s szond\u00e1z\u00e1s"},{"location":"Multi_MCU_Homing.html#tobb-mikrovezelos-kezdopont-es-szondazas","text":"A Klipper t\u00e1mogatja a kezd\u0151pont mechanizmus\u00e1t egy v\u00e9g\u00e1ll\u00e1ssal, amely egy mikrokontrollerhez van csatlakoztatva, m\u00edg a l\u00e9ptet\u0151motorok egy m\u00e1sik mikrokontrollerhez vannak csatlakoztatva. Ezt a t\u00e1mogat\u00e1st nevezik \"multi-mcu homing\" -nak. Ez a funkci\u00f3 akkor is haszn\u00e1latos, ha a Z-\u00e9rz\u00e9kel\u0151 m\u00e1s mikrokontrollerre van k\u00f6tve, mint a Z l\u00e9ptet\u0151motorok. Ez a funkci\u00f3 hasznos lehet a vezet\u00e9kez\u00e9s egyszer\u0171s\u00edt\u00e9se \u00e9rdek\u00e9ben, mivel k\u00e9nyelmesebb lehet egy v\u00e9g\u00e1ll\u00e1skapcsol\u00f3t vagy szond\u00e1t egy k\u00f6zelebbi mikrokontrollerhez csatlakoztatni. Ennek a funkci\u00f3nak a haszn\u00e1lata azonban a l\u00e9ptet\u0151motorok \"t\u00fallend\u00fcl\u00e9s\u00e9t\" eredm\u00e9nyezheti a kezd\u0151pont \u00e9s a m\u00e9r\u00e9si m\u0171veletek sor\u00e1n. A t\u00fallend\u00fcl\u00e9s a v\u00e9g\u00e1ll\u00e1st figyel\u0151 mikrovez\u00e9rl\u0151 \u00e9s a l\u00e9ptet\u0151motorokat mozgat\u00f3 mikrovez\u00e9rl\u0151k k\u00f6z\u00f6tti esetleges \u00fczenet\u00e1tviteli k\u00e9s\u00e9sek miatt k\u00f6vetkezik be. A Klipper k\u00f3dot \u00fagy tervezt\u00e9k, hogy ezt a k\u00e9sleltet\u00e9st legfeljebb 25 ms-ra korl\u00e1tozza. (Ha a multi-mcu homing aktiv\u00e1lva van, a mikrovez\u00e9rl\u0151k id\u0151szakos \u00e1llapot\u00fczeneteket k\u00fcldenek, \u00e9s ellen\u0151rzik, hogy a megfelel\u0151 \u00e1llapot\u00fczenetek 25 ms-on bel\u00fcl \u00e9rkeznek-e meg.) \u00cdgy p\u00e9ld\u00e1ul, ha 10 mm/sec sebess\u00e9ggel t\u00f6rt\u00e9nik a kezd\u0151pont felv\u00e9tele, akkor ak\u00e1r 0,250 mm-es t\u00fallend\u00fcl\u00e9s is lehets\u00e9ges (10 mm/sec * .025mp == 0,250 mm). A multi-mcu homing konfigur\u00e1l\u00e1sakor gondosan kell elj\u00e1rni, hogy az ilyen t\u00edpus\u00fa t\u00fallend\u00fcl\u00e9sn\u00e9l figyelembe vegy\u00fck. Lassabb kezd\u0151pont felv\u00e9tel vagy tapint\u00e1si sebess\u00e9gek haszn\u00e1lata cs\u00f6kkentheti a t\u00fallend\u00fcl\u00e9st. A l\u00e9ptet\u0151motor t\u00fallend\u00fcl\u00e9se nem befoly\u00e1solhatja h\u00e1tr\u00e1nyosan az alaphelyzetbe \u00e1ll\u00edt\u00e1si \u00e9s tapint\u00e1si elj\u00e1r\u00e1s pontoss\u00e1g\u00e1t. A Klipper k\u00f3d \u00e9szleli a t\u00fallend\u00fcl\u00e9st, \u00e9s sz\u00e1m\u00edt\u00e1sai sor\u00e1n figyelembe veszi azt. Fontos azonban, hogy a hardvertervez\u00e9s k\u00e9pes legyen kezelni a t\u00fallend\u00fcl\u00e9st an\u00e9lk\u00fcl, hogy a g\u00e9pben k\u00e1rt okozna. Ha a Klipper kommunik\u00e1ci\u00f3s probl\u00e9m\u00e1t \u00e9szlel a mikrovez\u00e9rl\u0151k k\u00f6z\u00f6tt a multi-mcu homing sor\u00e1n, akkor egy \"Kommunik\u00e1ci\u00f3s id\u0151kies\u00e9s a kezd\u0151pont felv\u00e9tel sor\u00e1n\" hib\u00e1t jelez. Vedd figyelembe, hogy a t\u00f6bb l\u00e9ptet\u0151vel rendelkez\u0151 tengelyeknek (pl. stepper_z \u00e9s stepper_z1 ) ugyanazon a mikrokontrolleren kell lenni\u00fck a multi-mcu homing haszn\u00e1lat\u00e1hoz. P\u00e9ld\u00e1ul, ha egy v\u00e9g\u00e1ll\u00e1s a stepper_z mikrokontrollert\u0151l k\u00fcl\u00f6n mikrokontrolleren van, akkor a stepper_z1 -nek ugyanazon a mikrokontrolleren kell lennie, mint a stepper_z .","title":"T\u00f6bb mikrovez\u00e9l\u0151s kezd\u0151pont \u00e9s szond\u00e1z\u00e1s"},{"location":"Navigation.html","text":"Klipper dokument\u00e1ci\u00f3 Telep\u00edt\u00e9s \u00e9s Konfigur\u00e1ci\u00f3 Konfigur\u00e1ci\u00f3s Hivatkoz\u00e1s T\u00e1rgyasztal szint Rezonancia Kompenz\u00e1ci\u00f3 Parancssablonok Fejleszt\u0151i Dokument\u00e1ci\u00f3 Eszk\u00f6zspecifikus Dokumentumok","title":"Navigation"},{"location":"Overview.html","text":"\u00c1ttekint\u00e9s \u00b6 \u00dcdv\u00f6z\u00f6lj\u00fck a Klipper dokument\u00e1ci\u00f3j\u00e1ban. Ha m\u00e9g nem ismered a Klippert, kezd a funkci\u00f3k \u00e9s telep\u00edt\u00e9s dokumentumokkal. \u00c1ttekint\u0151 inform\u00e1ci\u00f3k \u00b6 Funkci\u00f3k : A Klipper funkci\u00f3inak magas szint\u0171 list\u00e1ja. GYIK : Gyakran ism\u00e9telt k\u00e9rd\u00e9sek. Kiad\u00e1sok : Klipper kiad\u00e1sok t\u00f6rt\u00e9nete. Konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00e1sok : A leg\u00fajabb szoftverv\u00e1ltoz\u00e1sok, amelyek miatt a felhaszn\u00e1l\u00f3knak friss\u00edteni\u00fck kell a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1t. Kapcsolat : Inform\u00e1ci\u00f3k a hibajelent\u00e9sekr\u0151l \u00e9s a Klipper fejleszt\u0151ivel val\u00f3 \u00e1ltal\u00e1nos kommunik\u00e1ci\u00f3r\u00f3l. Telep\u00edt\u00e9s \u00e9s Konfigur\u00e1ci\u00f3 \u00b6 Telep\u00edt\u00e9s : Klipper telep\u00edt\u00e9si \u00fatmutat\u00f3. Konfigur\u00e1ci\u00f3s hivatkoz\u00e1s : A konfigur\u00e1ci\u00f3s param\u00e9terek le\u00edr\u00e1sa. Forgat\u00e1si t\u00e1vols\u00e1g : A rotation_distance l\u00e9ptet\u0151 param\u00e9ter kisz\u00e1m\u00edt\u00e1sa. Konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9sek : Alapvet\u0151 t\u0171be\u00e1ll\u00edt\u00e1sok ellen\u0151rz\u00e9se a konfigur\u00e1ci\u00f3s f\u00e1jlban. T\u00e1rgyasztal szintez\u00e9se : Inform\u00e1ci\u00f3 az \"t\u00e1rgyasztal szintez\u00e9s\u00e9r\u0151l\" a Klipperben. Delta kalibr\u00e1l\u00e1s : A delta kinematika kalibr\u00e1l\u00e1sa. Szonda kalibr\u00e1l\u00e1sa : Automatikus Z-szond\u00e1k kalibr\u00e1l\u00e1sa. BL-Touch : \"BL-Touch\" Z szonda konfigur\u00e1l\u00e1sa. K\u00e9zi szintez\u00e9s : Z v\u00e9g\u00e1ll\u00e1sok kalibr\u00e1l\u00e1sa (\u00e9s hasonl\u00f3k). T\u00e1rgyasztal h\u00e1l\u00f3 : X-Y-helyeken alapul\u00f3 t\u00e1rgyasztal szintkorrekci\u00f3. V\u00e9g\u00e1ll\u00e1s f\u00e1zis : Z v\u00e9g\u00e1ll\u00e1s poz\u00edcion\u00e1l\u00e1sa l\u00e9p\u00e9sseg\u00e9dlettel. Rezonancia kompenz\u00e1ci\u00f3 : Egy eszk\u00f6z a nyomatok gy\u0171r\u0151d\u00e9s\u00e9nek (ringing) cs\u00f6kkent\u00e9s\u00e9re. Rezonanci\u00e1k m\u00e9r\u00e9se : adxl345 gyorsul\u00e1sm\u00e9r\u0151 hardver haszn\u00e1lat\u00e1val kapcsolatos inform\u00e1ci\u00f3k a rezonancia m\u00e9r\u00e9s\u00e9hez. Nyom\u00e1s el\u0151tol\u00e1s : Az extruder nyom\u00e1s\u00e1nak kalibr\u00e1l\u00e1sa. G-k\u00f3dok : Inform\u00e1ci\u00f3k a Klipper \u00e1ltal t\u00e1mogatott parancsokr\u00f3l. Parancssablonok : G-k\u00f3d makr\u00f3k \u00e9s felt\u00e9teles ki\u00e9rt\u00e9kel\u00e9s. \u00c1llapot referencia : A makr\u00f3k (\u00e9s hasonl\u00f3k) sz\u00e1m\u00e1ra el\u00e9rhet\u0151 inform\u00e1ci\u00f3k. TMC Meghajt\u00f3k : Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3k haszn\u00e1lata Klipperrel. Multi-MCU Kezd\u0151pont : Kezd\u0151pont felv\u00e9tel \u00e9s szintez\u00e9s t\u00f6bb mikrovez\u00e9rl\u0151 haszn\u00e1lat\u00e1val. Szeletel\u0151k : A \u201eszeletel\u0151\u201d szoftverek konfigur\u00e1l\u00e1sa a Klipper sz\u00e1m\u00e1ra. Ferdes\u00e9g korrekci\u00f3 : A nem t\u00f6k\u00e9letesen der\u00e9ksz\u00f6g\u0171 tengelyek korrekci\u00f3ja. PWM eszk\u00f6z\u00f6k : \u00datmutat\u00f3 a PWM vez\u00e9relt szersz\u00e1mok, p\u00e9ld\u00e1ul l\u00e9zerek vagy ors\u00f3k haszn\u00e1lat\u00e1hoz. Objektum kiz\u00e1r\u00e1sa : Az Objektum kiz\u00e1r\u00e1sa implement\u00e1ci\u00f3j\u00e1nak \u00fatmutat\u00f3ja. Fejleszt\u0151i Dokument\u00e1ci\u00f3 \u00b6 K\u00f3d\u00e1ttekint\u00e9s : A fejleszt\u0151knek el\u0151sz\u00f6r ezt kell elolvasniuk. Kinematika : Technikai r\u00e9szletek arr\u00f3l, hogyan val\u00f3s\u00edtja meg a Klipper a mozg\u00e1st. Protokoll : A gazdag\u00e9p \u00e9s a mikrokontroller k\u00f6z\u00f6tti alacsony szint\u0171 \u00fczenetk\u00fcld\u00e9si protokollr\u00f3l sz\u00f3l\u00f3 inform\u00e1ci\u00f3k. API-kiszolg\u00e1l\u00f3 : Inform\u00e1ci\u00f3 a Klipper parancs \u00e9s vez\u00e9rl\u0151 API-j\u00e1r\u00f3l. MCU-parancsok : A mikrokontroller szoftver\u00e9ben megval\u00f3s\u00edtott alacsony szint\u0171 parancsok le\u00edr\u00e1sa. CAN-busz protokoll : Klipper CAN-busz \u00fczenetform\u00e1tum. Hibakeres\u00e9s : Klipper tesztel\u00e9s\u00e9vel \u00e9s hibakeres\u00e9s\u00e9vel kapcsolatos inform\u00e1ci\u00f3k. Jelszintek : Klipper jelszint m\u00f3dszerrel kapcsolatos inform\u00e1ci\u00f3k. Hozz\u00e1j\u00e1rul\u00e1s : Inform\u00e1ci\u00f3 arr\u00f3l, hogyan k\u00fcldhetsz fejleszt\u00e9seket a Klipperhez. Csomagol\u00e1s : Az oper\u00e1ci\u00f3s rendszer csomagjainak \u00f6ssze\u00e1ll\u00edt\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k. Eszk\u00f6zspecifikus Dokumentumok \u00b6 P\u00e9lda konfigur\u00e1ci\u00f3k : Inform\u00e1ci\u00f3 egy p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jl Klipperhez val\u00f3 hozz\u00e1ad\u00e1s\u00e1val kapcsolatban. SD-k\u00e1rtya Friss\u00edt\u00e9sek : Mikrokontroller \u00e9get\u00e9se egy bin\u00e1ris \u00e1llom\u00e1nynak a mikrokontroller SD-k\u00e1rty\u00e1ra t\u00f6rt\u00e9n\u0151 m\u00e1sol\u00e1s\u00e1val. Raspberry Pi mint mikrokontroller : A Raspberry Pi GPIO-t\u0171ire csatlakoztatott eszk\u00f6z\u00f6k vez\u00e9rl\u00e9s\u00e9nek r\u00e9szletei. Beaglebone : Klipper futtat\u00e1s\u00e1nak r\u00e9szletei a Beaglebone PRU-n. Bootloaderek : Fejleszt\u0151i inform\u00e1ci\u00f3k a mikrokontrollerek \u00e9get\u00e9s\u00e9r\u0151l. CAN-busz : Inform\u00e1ci\u00f3k a CAN-busz Klipperrel val\u00f3 haszn\u00e1lat\u00e1r\u00f3l. TSL1401CL sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 Hall sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151","title":"\u00c1ttekint\u00e9s"},{"location":"Overview.html#attekintes","text":"\u00dcdv\u00f6z\u00f6lj\u00fck a Klipper dokument\u00e1ci\u00f3j\u00e1ban. Ha m\u00e9g nem ismered a Klippert, kezd a funkci\u00f3k \u00e9s telep\u00edt\u00e9s dokumentumokkal.","title":"\u00c1ttekint\u00e9s"},{"location":"Overview.html#attekinto-informaciok","text":"Funkci\u00f3k : A Klipper funkci\u00f3inak magas szint\u0171 list\u00e1ja. GYIK : Gyakran ism\u00e9telt k\u00e9rd\u00e9sek. Kiad\u00e1sok : Klipper kiad\u00e1sok t\u00f6rt\u00e9nete. Konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00e1sok : A leg\u00fajabb szoftverv\u00e1ltoz\u00e1sok, amelyek miatt a felhaszn\u00e1l\u00f3knak friss\u00edteni\u00fck kell a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1t. Kapcsolat : Inform\u00e1ci\u00f3k a hibajelent\u00e9sekr\u0151l \u00e9s a Klipper fejleszt\u0151ivel val\u00f3 \u00e1ltal\u00e1nos kommunik\u00e1ci\u00f3r\u00f3l.","title":"\u00c1ttekint\u0151 inform\u00e1ci\u00f3k"},{"location":"Overview.html#telepites-es-konfiguracio","text":"Telep\u00edt\u00e9s : Klipper telep\u00edt\u00e9si \u00fatmutat\u00f3. Konfigur\u00e1ci\u00f3s hivatkoz\u00e1s : A konfigur\u00e1ci\u00f3s param\u00e9terek le\u00edr\u00e1sa. Forgat\u00e1si t\u00e1vols\u00e1g : A rotation_distance l\u00e9ptet\u0151 param\u00e9ter kisz\u00e1m\u00edt\u00e1sa. Konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9sek : Alapvet\u0151 t\u0171be\u00e1ll\u00edt\u00e1sok ellen\u0151rz\u00e9se a konfigur\u00e1ci\u00f3s f\u00e1jlban. T\u00e1rgyasztal szintez\u00e9se : Inform\u00e1ci\u00f3 az \"t\u00e1rgyasztal szintez\u00e9s\u00e9r\u0151l\" a Klipperben. Delta kalibr\u00e1l\u00e1s : A delta kinematika kalibr\u00e1l\u00e1sa. Szonda kalibr\u00e1l\u00e1sa : Automatikus Z-szond\u00e1k kalibr\u00e1l\u00e1sa. BL-Touch : \"BL-Touch\" Z szonda konfigur\u00e1l\u00e1sa. K\u00e9zi szintez\u00e9s : Z v\u00e9g\u00e1ll\u00e1sok kalibr\u00e1l\u00e1sa (\u00e9s hasonl\u00f3k). T\u00e1rgyasztal h\u00e1l\u00f3 : X-Y-helyeken alapul\u00f3 t\u00e1rgyasztal szintkorrekci\u00f3. V\u00e9g\u00e1ll\u00e1s f\u00e1zis : Z v\u00e9g\u00e1ll\u00e1s poz\u00edcion\u00e1l\u00e1sa l\u00e9p\u00e9sseg\u00e9dlettel. Rezonancia kompenz\u00e1ci\u00f3 : Egy eszk\u00f6z a nyomatok gy\u0171r\u0151d\u00e9s\u00e9nek (ringing) cs\u00f6kkent\u00e9s\u00e9re. Rezonanci\u00e1k m\u00e9r\u00e9se : adxl345 gyorsul\u00e1sm\u00e9r\u0151 hardver haszn\u00e1lat\u00e1val kapcsolatos inform\u00e1ci\u00f3k a rezonancia m\u00e9r\u00e9s\u00e9hez. Nyom\u00e1s el\u0151tol\u00e1s : Az extruder nyom\u00e1s\u00e1nak kalibr\u00e1l\u00e1sa. G-k\u00f3dok : Inform\u00e1ci\u00f3k a Klipper \u00e1ltal t\u00e1mogatott parancsokr\u00f3l. Parancssablonok : G-k\u00f3d makr\u00f3k \u00e9s felt\u00e9teles ki\u00e9rt\u00e9kel\u00e9s. \u00c1llapot referencia : A makr\u00f3k (\u00e9s hasonl\u00f3k) sz\u00e1m\u00e1ra el\u00e9rhet\u0151 inform\u00e1ci\u00f3k. TMC Meghajt\u00f3k : Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3k haszn\u00e1lata Klipperrel. Multi-MCU Kezd\u0151pont : Kezd\u0151pont felv\u00e9tel \u00e9s szintez\u00e9s t\u00f6bb mikrovez\u00e9rl\u0151 haszn\u00e1lat\u00e1val. Szeletel\u0151k : A \u201eszeletel\u0151\u201d szoftverek konfigur\u00e1l\u00e1sa a Klipper sz\u00e1m\u00e1ra. Ferdes\u00e9g korrekci\u00f3 : A nem t\u00f6k\u00e9letesen der\u00e9ksz\u00f6g\u0171 tengelyek korrekci\u00f3ja. PWM eszk\u00f6z\u00f6k : \u00datmutat\u00f3 a PWM vez\u00e9relt szersz\u00e1mok, p\u00e9ld\u00e1ul l\u00e9zerek vagy ors\u00f3k haszn\u00e1lat\u00e1hoz. Objektum kiz\u00e1r\u00e1sa : Az Objektum kiz\u00e1r\u00e1sa implement\u00e1ci\u00f3j\u00e1nak \u00fatmutat\u00f3ja.","title":"Telep\u00edt\u00e9s \u00e9s Konfigur\u00e1ci\u00f3"},{"location":"Overview.html#fejlesztoi-dokumentacio","text":"K\u00f3d\u00e1ttekint\u00e9s : A fejleszt\u0151knek el\u0151sz\u00f6r ezt kell elolvasniuk. Kinematika : Technikai r\u00e9szletek arr\u00f3l, hogyan val\u00f3s\u00edtja meg a Klipper a mozg\u00e1st. Protokoll : A gazdag\u00e9p \u00e9s a mikrokontroller k\u00f6z\u00f6tti alacsony szint\u0171 \u00fczenetk\u00fcld\u00e9si protokollr\u00f3l sz\u00f3l\u00f3 inform\u00e1ci\u00f3k. API-kiszolg\u00e1l\u00f3 : Inform\u00e1ci\u00f3 a Klipper parancs \u00e9s vez\u00e9rl\u0151 API-j\u00e1r\u00f3l. MCU-parancsok : A mikrokontroller szoftver\u00e9ben megval\u00f3s\u00edtott alacsony szint\u0171 parancsok le\u00edr\u00e1sa. CAN-busz protokoll : Klipper CAN-busz \u00fczenetform\u00e1tum. Hibakeres\u00e9s : Klipper tesztel\u00e9s\u00e9vel \u00e9s hibakeres\u00e9s\u00e9vel kapcsolatos inform\u00e1ci\u00f3k. Jelszintek : Klipper jelszint m\u00f3dszerrel kapcsolatos inform\u00e1ci\u00f3k. Hozz\u00e1j\u00e1rul\u00e1s : Inform\u00e1ci\u00f3 arr\u00f3l, hogyan k\u00fcldhetsz fejleszt\u00e9seket a Klipperhez. Csomagol\u00e1s : Az oper\u00e1ci\u00f3s rendszer csomagjainak \u00f6ssze\u00e1ll\u00edt\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k.","title":"Fejleszt\u0151i Dokument\u00e1ci\u00f3"},{"location":"Overview.html#eszkozspecifikus-dokumentumok","text":"P\u00e9lda konfigur\u00e1ci\u00f3k : Inform\u00e1ci\u00f3 egy p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jl Klipperhez val\u00f3 hozz\u00e1ad\u00e1s\u00e1val kapcsolatban. SD-k\u00e1rtya Friss\u00edt\u00e9sek : Mikrokontroller \u00e9get\u00e9se egy bin\u00e1ris \u00e1llom\u00e1nynak a mikrokontroller SD-k\u00e1rty\u00e1ra t\u00f6rt\u00e9n\u0151 m\u00e1sol\u00e1s\u00e1val. Raspberry Pi mint mikrokontroller : A Raspberry Pi GPIO-t\u0171ire csatlakoztatott eszk\u00f6z\u00f6k vez\u00e9rl\u00e9s\u00e9nek r\u00e9szletei. Beaglebone : Klipper futtat\u00e1s\u00e1nak r\u00e9szletei a Beaglebone PRU-n. Bootloaderek : Fejleszt\u0151i inform\u00e1ci\u00f3k a mikrokontrollerek \u00e9get\u00e9s\u00e9r\u0151l. CAN-busz : Inform\u00e1ci\u00f3k a CAN-busz Klipperrel val\u00f3 haszn\u00e1lat\u00e1r\u00f3l. TSL1401CL sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 Hall sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151","title":"Eszk\u00f6zspecifikus Dokumentumok"},{"location":"Packaging.html","text":"Klipper csomagol\u00e1s \u00b6 A Klipper egyfajta csomagol\u00e1si anom\u00e1lia a python programok k\u00f6z\u00f6tt, mivel nem haszn\u00e1lja a setuptools-t a szerkeszt\u00e9shez \u00e9s a telep\u00edt\u00e9shez. N\u00e9h\u00e1ny megjegyz\u00e9s arra vonatkoz\u00f3an, hogy hogyan lehet a legjobban csomagolni, a k\u00f6vetkez\u0151: C modulok \u00b6 A Klipper egy C modult haszn\u00e1l n\u00e9h\u00e1ny kinematikai sz\u00e1m\u00edt\u00e1s gyorsabb elv\u00e9gz\u00e9s\u00e9re. Ezt a modult a csomagol\u00e1si id\u0151ben kell leford\u00edtani, hogy elker\u00fclj\u00fck a ford\u00edt\u00f3programt\u00f3l val\u00f3 fut\u00e1sidej\u0171 f\u00fcgg\u0151s\u00e9get. A C modul leford\u00edt\u00e1s\u00e1hoz futtassuk a python2 klippy/chelper/__init__.py f\u00e1jlt. Python-k\u00f3d \u00f6ssze\u00e1ll\u00edt\u00e1sa \u00b6 Sok disztrib\u00faci\u00f3nak van egy olyan ir\u00e1nyelve, hogy az ind\u00edt\u00e1si id\u0151 jav\u00edt\u00e1sa \u00e9rdek\u00e9ben minden python k\u00f3dot leford\u00edt a csomagol\u00e1s el\u0151tt. Ezt a python2 -m compileall klippy futtat\u00e1s\u00e1val \u00e9rheted el. Verzi\u00f3kezel\u00e9s \u00b6 Ha a Klipper csomagot git-b\u0151l \u00e9p\u00edted, a szok\u00e1sos gyakorlat szerint nem sz\u00e1ll\u00edtasz .git k\u00f6nyvt\u00e1rat, \u00edgy a verzi\u00f3kezel\u00e9st git n\u00e9lk\u00fcl kell megoldanod. Ehhez haszn\u00e1ld a scripts/make_version.py alatt sz\u00e1ll\u00edtott szkriptet, amelyet a k\u00f6vetkez\u0151k\u00e9ppen kell futtatni: python2 scripts/make_version.py YOURDISTRONAME > klippy/.version . Minta csomagol\u00e1si szkript \u00b6 a klipper-git az Arch Linuxhoz van csomagolva, \u00e9s a PKGBUILD (csomag\u00e9p\u00edt\u0151 szkript) el\u00e9rhet\u0151 az Arch Felhaszn\u00e1l\u00f3i adatt\u00e1r oldalon.","title":"Klipper csomagol\u00e1s"},{"location":"Packaging.html#klipper-csomagolas","text":"A Klipper egyfajta csomagol\u00e1si anom\u00e1lia a python programok k\u00f6z\u00f6tt, mivel nem haszn\u00e1lja a setuptools-t a szerkeszt\u00e9shez \u00e9s a telep\u00edt\u00e9shez. N\u00e9h\u00e1ny megjegyz\u00e9s arra vonatkoz\u00f3an, hogy hogyan lehet a legjobban csomagolni, a k\u00f6vetkez\u0151:","title":"Klipper csomagol\u00e1s"},{"location":"Packaging.html#c-modulok","text":"A Klipper egy C modult haszn\u00e1l n\u00e9h\u00e1ny kinematikai sz\u00e1m\u00edt\u00e1s gyorsabb elv\u00e9gz\u00e9s\u00e9re. Ezt a modult a csomagol\u00e1si id\u0151ben kell leford\u00edtani, hogy elker\u00fclj\u00fck a ford\u00edt\u00f3programt\u00f3l val\u00f3 fut\u00e1sidej\u0171 f\u00fcgg\u0151s\u00e9get. A C modul leford\u00edt\u00e1s\u00e1hoz futtassuk a python2 klippy/chelper/__init__.py f\u00e1jlt.","title":"C modulok"},{"location":"Packaging.html#python-kod-osszeallitasa","text":"Sok disztrib\u00faci\u00f3nak van egy olyan ir\u00e1nyelve, hogy az ind\u00edt\u00e1si id\u0151 jav\u00edt\u00e1sa \u00e9rdek\u00e9ben minden python k\u00f3dot leford\u00edt a csomagol\u00e1s el\u0151tt. Ezt a python2 -m compileall klippy futtat\u00e1s\u00e1val \u00e9rheted el.","title":"Python-k\u00f3d \u00f6ssze\u00e1ll\u00edt\u00e1sa"},{"location":"Packaging.html#verziokezeles","text":"Ha a Klipper csomagot git-b\u0151l \u00e9p\u00edted, a szok\u00e1sos gyakorlat szerint nem sz\u00e1ll\u00edtasz .git k\u00f6nyvt\u00e1rat, \u00edgy a verzi\u00f3kezel\u00e9st git n\u00e9lk\u00fcl kell megoldanod. Ehhez haszn\u00e1ld a scripts/make_version.py alatt sz\u00e1ll\u00edtott szkriptet, amelyet a k\u00f6vetkez\u0151k\u00e9ppen kell futtatni: python2 scripts/make_version.py YOURDISTRONAME > klippy/.version .","title":"Verzi\u00f3kezel\u00e9s"},{"location":"Packaging.html#minta-csomagolasi-szkript","text":"a klipper-git az Arch Linuxhoz van csomagolva, \u00e9s a PKGBUILD (csomag\u00e9p\u00edt\u0151 szkript) el\u00e9rhet\u0151 az Arch Felhaszn\u00e1l\u00f3i adatt\u00e1r oldalon.","title":"Minta csomagol\u00e1si szkript"},{"location":"Pressure_Advance.html","text":"Nyom\u00e1s el\u0151tol\u00e1s \u00b6 Ez a dokumentum a \"nyom\u00e1s el\u0151tol\u00e1s\" konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00f3 adott f\u00fav\u00f3k\u00e1hoz \u00e9s nyomtat\u00f3sz\u00e1lhoz val\u00f3 be\u00e1ll\u00edt\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3kat tartalmaz. A nyom\u00e1s el\u0151tol\u00e1s funkci\u00f3 hasznos lehet a sz\u00e1laz\u00e1s cs\u00f6kkent\u00e9s\u00e9ben. A nyom\u00e1s el\u0151tol\u00e1s megval\u00f3s\u00edt\u00e1s\u00e1r\u00f3l tov\u00e1bbi inform\u00e1ci\u00f3kat a kinematika dokumentumban tal\u00e1l. Nyom\u00e1s el\u0151tol\u00e1s hangol\u00e1sa \u00b6 A nyom\u00e1s el\u0151tol\u00e1s k\u00e9t hasznos dolgot tesz. Cs\u00f6kkenti a nem extrud\u00e1lt mozg\u00e1sok sor\u00e1n fell\u00e9p\u0151 sz\u00e1laz\u00e1s, \u00e9s cs\u00f6kkenti a kanyarod\u00e1s sor\u00e1n fell\u00e9p\u0151 puffad\u00e1st. Ez az \u00fatmutat\u00f3 a m\u00e1sodik funkci\u00f3t (kanyarod\u00e1s k\u00f6zbeni puffad\u00e1s cs\u00f6kkent\u00e9se) haszn\u00e1lja a hangol\u00e1s mechanizmusak\u00e9nt. A nyom\u00e1s el\u0151tol\u00e1s kalibr\u00e1l\u00e1s\u00e1hoz a nyomtat\u00f3nak konfigur\u00e1ltnak \u00e9s m\u0171k\u00f6d\u0151k\u00e9pesnek kell lennie, mivel a hangol\u00e1si teszt egy tesztobjektum nyomtat\u00e1s\u00e1val \u00e9s vizsg\u00e1lat\u00e1val j\u00e1r. A teszt lefuttat\u00e1sa el\u0151tt \u00e9rdemes ezt a dokumentumot teljes eg\u00e9sz\u00e9ben elolvasni. A docs/prints/square_tower.stl f\u00e1jlban tal\u00e1lhat\u00f3 nagy \u00fcreges n\u00e9gyzet G-k\u00f3dj\u00e1nak l\u00e9trehoz\u00e1s\u00e1hoz haszn\u00e1lj egy szeletel\u0151t. Haszn\u00e1lj nagy sebess\u00e9get (pl. 100 mm/s), nulla kit\u00f6lt\u00e9st \u00e9s durva r\u00e9tegmagass\u00e1got (a r\u00e9tegmagass\u00e1gnak a f\u00fav\u00f3ka \u00e1tm\u00e9r\u0151j\u00e9nek 75%-a k\u00f6r\u00fcl kell lennie). Gy\u0151z\u0151dj meg r\u00f3la, hogy a szeletel\u0151ben minden \"dinamikus gyors\u00edt\u00e1svez\u00e9rl\u00e9s\" ki van kapcsolva. K\u00e9sz\u00fclj\u00f6n fel a tesztre a k\u00f6vetkez\u0151 G-k\u00f3d parancs kiad\u00e1s\u00e1val: SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500 Ezzel a paranccsal a f\u00fav\u00f3ka lassabban halad \u00e1t a kanyarokon, hogy kiemelje az extrudernyom\u00e1s hat\u00e1s\u00e1t. Ezut\u00e1n a direkt extruderrel rendelkez\u0151 nyomtat\u00f3k eset\u00e9ben futtassa az al\u00e1bbi parancsot: TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.005 Hossz\u00fa bowdenes extruderekhez: TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.020 Ezut\u00e1n nyomtasd ki az objektumot. Teljesen kinyomtatva a tesztnyomat \u00edgy n\u00e9z ki: A fenti TUNING_TOWER parancs utas\u00edtja a Klippert, hogy a nyomtat\u00e1s minden egyes r\u00e9teg\u00e9n\u00e9l m\u00f3dos\u00edtsa a pressure_advance be\u00e1ll\u00edt\u00e1st. A nyomtat\u00e1s magasabb r\u00e9tegeire nagyobb nyom\u00e1sel\u0151tol\u00e1si \u00e9rt\u00e9k lesz be\u00e1ll\u00edtva. Az ide\u00e1lis pressure_advance be\u00e1ll\u00edt\u00e1s alatti r\u00e9tegekn\u00e9l a sarkokn\u00e1l pattog\u00e1s, az ide\u00e1lis be\u00e1ll\u00edt\u00e1s feletti r\u00e9tegekn\u00e9l pedig lekerek\u00edtett sarkok \u00e9s gyenge extrud\u00e1l\u00e1s alakulhat ki a sarokig. A nyomtat\u00e1st id\u0151 el\u0151tt megszak\u00edthatja, ha azt \u00e9szleli, hogy a sarkok m\u00e1r nem nyomtatnak j\u00f3l (\u00e9s \u00edgy elker\u00fclheti az olyan r\u00e9tegek nyomtat\u00e1s\u00e1t, amelyekr\u0151l ismert, hogy az ide\u00e1lis pressure_advance \u00e9rt\u00e9k felett vannak). Ellen\u0151rizd az objektumot, majd digit\u00e1lis tol\u00f3m\u00e9r\u0151vel m\u00e9rd meg azt a magass\u00e1got, amely a legjobb min\u0151s\u00e9g\u0171 sarkokkal rendelkezik. Ha k\u00e9ts\u00e9geid vannak, v\u00e1laszd az alacsonyabb magass\u00e1got. A pressure_advance \u00e9rt\u00e9ket ezut\u00e1n a k\u00f6vetkez\u0151k\u00e9ppen lehet kisz\u00e1m\u00edtani: pressure_advance = <start> + <measured_height> * <factor> . (P\u00e9ld\u00e1ul 0 + 12,90 * .020 lenne .258 .) Lehet\u0151s\u00e9g van a START \u00e9s a FACTOR egy\u00e9ni be\u00e1ll\u00edt\u00e1sainak kiv\u00e1laszt\u00e1s\u00e1ra, ha ez seg\u00edt a legjobb nyom\u00e1s el\u0151tol\u00e1s be\u00e1ll\u00edt\u00e1s meghat\u00e1roz\u00e1s\u00e1ban. Ennek sor\u00e1n \u00fcgyelj arra, hogy a TUNING_TOWER parancsot minden egyes pr\u00f3banyomtat\u00e1s elej\u00e9n ki kell adni. A tipikus nyom\u00e1s el\u0151tol\u00e1s \u00e9rt\u00e9kek 0,050 \u00e9s 1,000 k\u00f6z\u00f6tt vannak (a legmagasabb \u00e9rt\u00e9kek \u00e1ltal\u00e1ban csak a bowdenes extruderekn\u00e9l). Ha az 1,000-ig terjed\u0151 nyom\u00e1s el\u0151tol\u00e1ssal nem tapasztalhat\u00f3 jelent\u0151s javul\u00e1s, akkor a nyom\u00e1s el\u0151tol\u00e1s val\u00f3sz\u00edn\u0171leg nem jav\u00edtja a nyomatok min\u0151s\u00e9g\u00e9t. T\u00e9rj vissza az alap\u00e9rtelmezett konfigur\u00e1ci\u00f3hoz, ahol a nyom\u00e1s el\u0151tol\u00e1s ki van kapcsolva. B\u00e1r ez a hangol\u00e1si gyakorlat k\u00f6zvetlen\u00fcl jav\u00edtja a sarkok min\u0151s\u00e9g\u00e9t, \u00e9rdemes megjegyezni, hogy a j\u00f3 nyom\u00e1s el\u0151tol\u00e1si konfigur\u00e1ci\u00f3 cs\u00f6kkenti a nyomat teljes terjedelm\u00e9t. A teszt befejez\u00e9sekor \u00e1ll\u00edtsd be a pressure_advance = <calculated_value> \u00e9rt\u00e9ket a konfigur\u00e1ci\u00f3s f\u00e1jl [extruder] szakasz\u00e1ban, \u00e9s adj ki egy RESTART parancsot. A RESTART parancs t\u00f6rli a teszt\u00e1llapotot, \u00e9s vissza\u00e1ll\u00edtja a gyorsul\u00e1si \u00e9s kanyarod\u00e1si sebess\u00e9geket a norm\u00e1l \u00e9rt\u00e9kekre. Fontos megjegyz\u00e9sek \u00b6 A nyom\u00e1s el\u0151tol\u00e1s \u00e9rt\u00e9ke az extruder, a f\u00fav\u00f3ka \u00e9s a sz\u00e1l f\u00fcggv\u00e9nye. Gyakori, hogy a k\u00fcl\u00f6nb\u00f6z\u0151 gy\u00e1rt\u00f3kt\u00f3l sz\u00e1rmaz\u00f3 vagy k\u00fcl\u00f6nb\u00f6z\u0151 pigmenteket tartalmaz\u00f3 nyomtat\u00f3sz\u00e1lak jelent\u0151sen elt\u00e9r\u0151 nyom\u00e1s el\u0151tol\u00e1si \u00e9rt\u00e9keket ig\u00e9nyelnek. Ez\u00e9rt minden nyomtat\u00f3n\u00e1l \u00e9s minden egyes tekercs nyomtat\u00f3sz\u00e1ln\u00e1l kalibr\u00e1lni kell a nyom\u00e1s el\u0151tol\u00e1st. A nyomtat\u00e1si h\u0151m\u00e9rs\u00e9klet \u00e9s az extrud\u00e1l\u00e1si sebess\u00e9g befoly\u00e1solhatja a nyom\u00e1st. A nyom\u00e1s el\u0151tol\u00e1s be\u00e1ll\u00edt\u00e1sa el\u0151tt mindenk\u00e9ppen hangolja be az extruder rotation_distance \u00e9s a f\u00fav\u00f3ka h\u0151m\u00e9rs\u00e9klet \u00e9rt\u00e9keket. A tesztnyomtat\u00e1st \u00fagy tervezt\u00e9k, hogy nagy extruder-\u00e1raml\u00e1si sebess\u00e9ggel, de egy\u00e9bk\u00e9nt \"norm\u00e1l\" szeletel\u0151 be\u00e1ll\u00edt\u00e1sokkal fusson. A nagy \u00e1raml\u00e1si sebess\u00e9get nagy nyomtat\u00e1si sebess\u00e9g (pl. 100 mm/s) \u00e9s durva r\u00e9tegmagass\u00e1g (jellemz\u0151en a f\u00fav\u00f3ka \u00e1tm\u00e9r\u0151j\u00e9nek kb. 75%-a) alkalmaz\u00e1s\u00e1val \u00e9rj\u00fck el. A t\u00f6bbi szeletel\u0151be\u00e1ll\u00edt\u00e1snak hasonl\u00f3nak kell lennie az alap\u00e9rtelmezettekhez (pl. 2 vagy 3 soros ker\u00fclet, norm\u00e1l beh\u00faz\u00e1si mennyis\u00e9g). Hasznos lehet a k\u00fcls\u0151 ker\u00fclet sebess\u00e9g\u00e9t a nyomtat\u00e1s t\u00f6bbi r\u00e9sz\u00e9vel megegyez\u0151 sebess\u00e9gre \u00e1ll\u00edtani, de ez nem k\u00f6vetelm\u00e9ny. Gyakori, hogy a tesztnyomtat\u00e1s minden egyes sarkon elt\u00e9r\u0151 viselked\u00e9st mutat. Gyakran el\u0151fordul, hogy a szeletel\u0151 az egyik sarkon r\u00e9tegv\u00e1lt\u00e1st hajt v\u00e9gre, ami azt eredm\u00e9nyezheti, hogy az a sarok jelent\u0151sen elt\u00e9r a t\u00f6bbi h\u00e1rom sarokt\u00f3l. Ha ez el\u0151fordul, akkor hagyja figyelmen k\u00edv\u00fcl ezt a sarkot, \u00e9s a m\u00e1sik h\u00e1rom sarkot haszn\u00e1lva hangolja a nyom\u00e1s el\u0151tol\u00e1st. Az is gyakori, hogy a fennmarad\u00f3 sarkok kiss\u00e9 elt\u00e9rnek. (Ez az\u00e9rt fordulhat el\u0151, mert a nyomtat\u00f3 kerete kis elt\u00e9r\u00e9sekkel reag\u00e1l a bizonyos ir\u00e1nyokba t\u00f6rt\u00e9n\u0151 kanyarod\u00e1sra.) Pr\u00f3b\u00e1ljon meg olyan \u00e9rt\u00e9ket v\u00e1lasztani, amely az \u00f6sszes t\u00f6bbi sarokn\u00e1l j\u00f3l m\u0171k\u00f6dik. Ha k\u00e9ts\u00e9geid vannak, v\u00e1lasszon ink\u00e1bb egy alacsonyabb nyom\u00e1s el\u0151tol\u00e1si \u00e9rt\u00e9ket. Ha magas nyom\u00e1s el\u0151tol\u00e1si \u00e9rt\u00e9ket (pl. 0,200 f\u00f6l\u00f6tt) haszn\u00e1lunk, akkor el\u0151fordulhat, hogy az extruder kihagy, amikor visszat\u00e9r a nyomtat\u00f3 norm\u00e1l gyorsul\u00e1shoz. A nyom\u00e1s el\u0151tol\u00e1si rendszer \u00fagy veszi figyelembe a nyom\u00e1st, hogy gyors\u00edt\u00e1skor extra sz\u00e1lat tol, \u00e9s lass\u00edt\u00e1skor visszah\u00fazza ezt a sz\u00e1lat. Nagy gyors\u00edt\u00e1s \u00e9s nagy nyom\u00e1s el\u0151tol\u00e1s eset\u00e9n el\u0151fordulhat, hogy az extruder nem rendelkezik elegend\u0151 nyomat\u00e9kkal a sz\u00fcks\u00e9ges sz\u00e1lak kinyom\u00e1s\u00e1hoz. Ha ez bek\u00f6vetkezik, vagy haszn\u00e1lj alacsonyabb gyors\u00edt\u00e1si \u00e9rt\u00e9ket, vagy tiltsa le a nyom\u00e1s el\u0151tol\u00e1si funkci\u00f3t. Miut\u00e1n a Klipperben be\u00e1ll\u00edtottuk a nyom\u00e1s el\u0151tol\u00e1st, hasznos lehet kisebb visszah\u00faz\u00e1si \u00e9rt\u00e9ket be\u00e1ll\u00edtani a szeletel\u0151ben (pl. 0,75 mm), \u00e9s haszn\u00e1lni a szeletel\u0151 \"wipe on retract\" opci\u00f3t, ha rendelkez\u00e9sre \u00e1ll. Ezek a szeletel\u0151 be\u00e1ll\u00edt\u00e1sok seg\u00edthetnek a sz\u00e1lak koh\u00e9zi\u00f3ja (a m\u0171anyag ragad\u00f3s volta miatt a f\u00fav\u00f3k\u00e1b\u00f3l kih\u00fazott sz\u00e1lak) okozta foly\u00e1sa ellen. Aj\u00e1nlott a szeletel\u0151 \"z-lift on retract\" opci\u00f3 kikapcsol\u00e1sa. A nyom\u00e1s el\u0151tol\u00e1si rendszer nem v\u00e1ltoztatja meg a nymtat\u00f3fej id\u0151z\u00edt\u00e9s\u00e9t vagy \u00fatj\u00e1t. A nyom\u00e1s el\u0151tol\u00e1ssal bekapcsolt \u00e1llapotban ugyanannyi id\u0151t vesz ig\u00e9nybe, mint a nyom\u00e1s el\u0151tol\u00e1s n\u00e9lk\u00fcli nyomtat\u00e1s. A nyom\u00e1s el\u0151tol\u00e1s nem v\u00e1ltoztatja meg a nyomtat\u00e1s sor\u00e1n extrud\u00e1lt sz\u00e1l teljes mennyis\u00e9g\u00e9t sem. A nyom\u00e1s el\u0151tol\u00e1s extra extrudermozg\u00e1st eredm\u00e9nyez a mozg\u00e1s gyors\u00edt\u00e1sa \u00e9s lass\u00edt\u00e1sa sor\u00e1n. Egy nagyon magas nyom\u00e1s el\u0151tol\u00e1si be\u00e1ll\u00edt\u00e1s nagyon nagy extrudermozg\u00e1st eredm\u00e9nyez a gyors\u00edt\u00e1s \u00e9s lass\u00edt\u00e1s sor\u00e1n, \u00e9s semmilyen konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1s nem szab hat\u00e1rt ennek a mozg\u00e1snak.","title":"Nyom\u00e1s el\u0151tol\u00e1s"},{"location":"Pressure_Advance.html#nyomas-elotolas","text":"Ez a dokumentum a \"nyom\u00e1s el\u0151tol\u00e1s\" konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00f3 adott f\u00fav\u00f3k\u00e1hoz \u00e9s nyomtat\u00f3sz\u00e1lhoz val\u00f3 be\u00e1ll\u00edt\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3kat tartalmaz. A nyom\u00e1s el\u0151tol\u00e1s funkci\u00f3 hasznos lehet a sz\u00e1laz\u00e1s cs\u00f6kkent\u00e9s\u00e9ben. A nyom\u00e1s el\u0151tol\u00e1s megval\u00f3s\u00edt\u00e1s\u00e1r\u00f3l tov\u00e1bbi inform\u00e1ci\u00f3kat a kinematika dokumentumban tal\u00e1l.","title":"Nyom\u00e1s el\u0151tol\u00e1s"},{"location":"Pressure_Advance.html#nyomas-elotolas-hangolasa","text":"A nyom\u00e1s el\u0151tol\u00e1s k\u00e9t hasznos dolgot tesz. Cs\u00f6kkenti a nem extrud\u00e1lt mozg\u00e1sok sor\u00e1n fell\u00e9p\u0151 sz\u00e1laz\u00e1s, \u00e9s cs\u00f6kkenti a kanyarod\u00e1s sor\u00e1n fell\u00e9p\u0151 puffad\u00e1st. Ez az \u00fatmutat\u00f3 a m\u00e1sodik funkci\u00f3t (kanyarod\u00e1s k\u00f6zbeni puffad\u00e1s cs\u00f6kkent\u00e9se) haszn\u00e1lja a hangol\u00e1s mechanizmusak\u00e9nt. A nyom\u00e1s el\u0151tol\u00e1s kalibr\u00e1l\u00e1s\u00e1hoz a nyomtat\u00f3nak konfigur\u00e1ltnak \u00e9s m\u0171k\u00f6d\u0151k\u00e9pesnek kell lennie, mivel a hangol\u00e1si teszt egy tesztobjektum nyomtat\u00e1s\u00e1val \u00e9s vizsg\u00e1lat\u00e1val j\u00e1r. A teszt lefuttat\u00e1sa el\u0151tt \u00e9rdemes ezt a dokumentumot teljes eg\u00e9sz\u00e9ben elolvasni. A docs/prints/square_tower.stl f\u00e1jlban tal\u00e1lhat\u00f3 nagy \u00fcreges n\u00e9gyzet G-k\u00f3dj\u00e1nak l\u00e9trehoz\u00e1s\u00e1hoz haszn\u00e1lj egy szeletel\u0151t. Haszn\u00e1lj nagy sebess\u00e9get (pl. 100 mm/s), nulla kit\u00f6lt\u00e9st \u00e9s durva r\u00e9tegmagass\u00e1got (a r\u00e9tegmagass\u00e1gnak a f\u00fav\u00f3ka \u00e1tm\u00e9r\u0151j\u00e9nek 75%-a k\u00f6r\u00fcl kell lennie). Gy\u0151z\u0151dj meg r\u00f3la, hogy a szeletel\u0151ben minden \"dinamikus gyors\u00edt\u00e1svez\u00e9rl\u00e9s\" ki van kapcsolva. K\u00e9sz\u00fclj\u00f6n fel a tesztre a k\u00f6vetkez\u0151 G-k\u00f3d parancs kiad\u00e1s\u00e1val: SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500 Ezzel a paranccsal a f\u00fav\u00f3ka lassabban halad \u00e1t a kanyarokon, hogy kiemelje az extrudernyom\u00e1s hat\u00e1s\u00e1t. Ezut\u00e1n a direkt extruderrel rendelkez\u0151 nyomtat\u00f3k eset\u00e9ben futtassa az al\u00e1bbi parancsot: TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.005 Hossz\u00fa bowdenes extruderekhez: TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.020 Ezut\u00e1n nyomtasd ki az objektumot. Teljesen kinyomtatva a tesztnyomat \u00edgy n\u00e9z ki: A fenti TUNING_TOWER parancs utas\u00edtja a Klippert, hogy a nyomtat\u00e1s minden egyes r\u00e9teg\u00e9n\u00e9l m\u00f3dos\u00edtsa a pressure_advance be\u00e1ll\u00edt\u00e1st. A nyomtat\u00e1s magasabb r\u00e9tegeire nagyobb nyom\u00e1sel\u0151tol\u00e1si \u00e9rt\u00e9k lesz be\u00e1ll\u00edtva. Az ide\u00e1lis pressure_advance be\u00e1ll\u00edt\u00e1s alatti r\u00e9tegekn\u00e9l a sarkokn\u00e1l pattog\u00e1s, az ide\u00e1lis be\u00e1ll\u00edt\u00e1s feletti r\u00e9tegekn\u00e9l pedig lekerek\u00edtett sarkok \u00e9s gyenge extrud\u00e1l\u00e1s alakulhat ki a sarokig. A nyomtat\u00e1st id\u0151 el\u0151tt megszak\u00edthatja, ha azt \u00e9szleli, hogy a sarkok m\u00e1r nem nyomtatnak j\u00f3l (\u00e9s \u00edgy elker\u00fclheti az olyan r\u00e9tegek nyomtat\u00e1s\u00e1t, amelyekr\u0151l ismert, hogy az ide\u00e1lis pressure_advance \u00e9rt\u00e9k felett vannak). Ellen\u0151rizd az objektumot, majd digit\u00e1lis tol\u00f3m\u00e9r\u0151vel m\u00e9rd meg azt a magass\u00e1got, amely a legjobb min\u0151s\u00e9g\u0171 sarkokkal rendelkezik. Ha k\u00e9ts\u00e9geid vannak, v\u00e1laszd az alacsonyabb magass\u00e1got. A pressure_advance \u00e9rt\u00e9ket ezut\u00e1n a k\u00f6vetkez\u0151k\u00e9ppen lehet kisz\u00e1m\u00edtani: pressure_advance = <start> + <measured_height> * <factor> . (P\u00e9ld\u00e1ul 0 + 12,90 * .020 lenne .258 .) Lehet\u0151s\u00e9g van a START \u00e9s a FACTOR egy\u00e9ni be\u00e1ll\u00edt\u00e1sainak kiv\u00e1laszt\u00e1s\u00e1ra, ha ez seg\u00edt a legjobb nyom\u00e1s el\u0151tol\u00e1s be\u00e1ll\u00edt\u00e1s meghat\u00e1roz\u00e1s\u00e1ban. Ennek sor\u00e1n \u00fcgyelj arra, hogy a TUNING_TOWER parancsot minden egyes pr\u00f3banyomtat\u00e1s elej\u00e9n ki kell adni. A tipikus nyom\u00e1s el\u0151tol\u00e1s \u00e9rt\u00e9kek 0,050 \u00e9s 1,000 k\u00f6z\u00f6tt vannak (a legmagasabb \u00e9rt\u00e9kek \u00e1ltal\u00e1ban csak a bowdenes extruderekn\u00e9l). Ha az 1,000-ig terjed\u0151 nyom\u00e1s el\u0151tol\u00e1ssal nem tapasztalhat\u00f3 jelent\u0151s javul\u00e1s, akkor a nyom\u00e1s el\u0151tol\u00e1s val\u00f3sz\u00edn\u0171leg nem jav\u00edtja a nyomatok min\u0151s\u00e9g\u00e9t. T\u00e9rj vissza az alap\u00e9rtelmezett konfigur\u00e1ci\u00f3hoz, ahol a nyom\u00e1s el\u0151tol\u00e1s ki van kapcsolva. B\u00e1r ez a hangol\u00e1si gyakorlat k\u00f6zvetlen\u00fcl jav\u00edtja a sarkok min\u0151s\u00e9g\u00e9t, \u00e9rdemes megjegyezni, hogy a j\u00f3 nyom\u00e1s el\u0151tol\u00e1si konfigur\u00e1ci\u00f3 cs\u00f6kkenti a nyomat teljes terjedelm\u00e9t. A teszt befejez\u00e9sekor \u00e1ll\u00edtsd be a pressure_advance = <calculated_value> \u00e9rt\u00e9ket a konfigur\u00e1ci\u00f3s f\u00e1jl [extruder] szakasz\u00e1ban, \u00e9s adj ki egy RESTART parancsot. A RESTART parancs t\u00f6rli a teszt\u00e1llapotot, \u00e9s vissza\u00e1ll\u00edtja a gyorsul\u00e1si \u00e9s kanyarod\u00e1si sebess\u00e9geket a norm\u00e1l \u00e9rt\u00e9kekre.","title":"Nyom\u00e1s el\u0151tol\u00e1s hangol\u00e1sa"},{"location":"Pressure_Advance.html#fontos-megjegyzesek","text":"A nyom\u00e1s el\u0151tol\u00e1s \u00e9rt\u00e9ke az extruder, a f\u00fav\u00f3ka \u00e9s a sz\u00e1l f\u00fcggv\u00e9nye. Gyakori, hogy a k\u00fcl\u00f6nb\u00f6z\u0151 gy\u00e1rt\u00f3kt\u00f3l sz\u00e1rmaz\u00f3 vagy k\u00fcl\u00f6nb\u00f6z\u0151 pigmenteket tartalmaz\u00f3 nyomtat\u00f3sz\u00e1lak jelent\u0151sen elt\u00e9r\u0151 nyom\u00e1s el\u0151tol\u00e1si \u00e9rt\u00e9keket ig\u00e9nyelnek. Ez\u00e9rt minden nyomtat\u00f3n\u00e1l \u00e9s minden egyes tekercs nyomtat\u00f3sz\u00e1ln\u00e1l kalibr\u00e1lni kell a nyom\u00e1s el\u0151tol\u00e1st. A nyomtat\u00e1si h\u0151m\u00e9rs\u00e9klet \u00e9s az extrud\u00e1l\u00e1si sebess\u00e9g befoly\u00e1solhatja a nyom\u00e1st. A nyom\u00e1s el\u0151tol\u00e1s be\u00e1ll\u00edt\u00e1sa el\u0151tt mindenk\u00e9ppen hangolja be az extruder rotation_distance \u00e9s a f\u00fav\u00f3ka h\u0151m\u00e9rs\u00e9klet \u00e9rt\u00e9keket. A tesztnyomtat\u00e1st \u00fagy tervezt\u00e9k, hogy nagy extruder-\u00e1raml\u00e1si sebess\u00e9ggel, de egy\u00e9bk\u00e9nt \"norm\u00e1l\" szeletel\u0151 be\u00e1ll\u00edt\u00e1sokkal fusson. A nagy \u00e1raml\u00e1si sebess\u00e9get nagy nyomtat\u00e1si sebess\u00e9g (pl. 100 mm/s) \u00e9s durva r\u00e9tegmagass\u00e1g (jellemz\u0151en a f\u00fav\u00f3ka \u00e1tm\u00e9r\u0151j\u00e9nek kb. 75%-a) alkalmaz\u00e1s\u00e1val \u00e9rj\u00fck el. A t\u00f6bbi szeletel\u0151be\u00e1ll\u00edt\u00e1snak hasonl\u00f3nak kell lennie az alap\u00e9rtelmezettekhez (pl. 2 vagy 3 soros ker\u00fclet, norm\u00e1l beh\u00faz\u00e1si mennyis\u00e9g). Hasznos lehet a k\u00fcls\u0151 ker\u00fclet sebess\u00e9g\u00e9t a nyomtat\u00e1s t\u00f6bbi r\u00e9sz\u00e9vel megegyez\u0151 sebess\u00e9gre \u00e1ll\u00edtani, de ez nem k\u00f6vetelm\u00e9ny. Gyakori, hogy a tesztnyomtat\u00e1s minden egyes sarkon elt\u00e9r\u0151 viselked\u00e9st mutat. Gyakran el\u0151fordul, hogy a szeletel\u0151 az egyik sarkon r\u00e9tegv\u00e1lt\u00e1st hajt v\u00e9gre, ami azt eredm\u00e9nyezheti, hogy az a sarok jelent\u0151sen elt\u00e9r a t\u00f6bbi h\u00e1rom sarokt\u00f3l. Ha ez el\u0151fordul, akkor hagyja figyelmen k\u00edv\u00fcl ezt a sarkot, \u00e9s a m\u00e1sik h\u00e1rom sarkot haszn\u00e1lva hangolja a nyom\u00e1s el\u0151tol\u00e1st. Az is gyakori, hogy a fennmarad\u00f3 sarkok kiss\u00e9 elt\u00e9rnek. (Ez az\u00e9rt fordulhat el\u0151, mert a nyomtat\u00f3 kerete kis elt\u00e9r\u00e9sekkel reag\u00e1l a bizonyos ir\u00e1nyokba t\u00f6rt\u00e9n\u0151 kanyarod\u00e1sra.) Pr\u00f3b\u00e1ljon meg olyan \u00e9rt\u00e9ket v\u00e1lasztani, amely az \u00f6sszes t\u00f6bbi sarokn\u00e1l j\u00f3l m\u0171k\u00f6dik. Ha k\u00e9ts\u00e9geid vannak, v\u00e1lasszon ink\u00e1bb egy alacsonyabb nyom\u00e1s el\u0151tol\u00e1si \u00e9rt\u00e9ket. Ha magas nyom\u00e1s el\u0151tol\u00e1si \u00e9rt\u00e9ket (pl. 0,200 f\u00f6l\u00f6tt) haszn\u00e1lunk, akkor el\u0151fordulhat, hogy az extruder kihagy, amikor visszat\u00e9r a nyomtat\u00f3 norm\u00e1l gyorsul\u00e1shoz. A nyom\u00e1s el\u0151tol\u00e1si rendszer \u00fagy veszi figyelembe a nyom\u00e1st, hogy gyors\u00edt\u00e1skor extra sz\u00e1lat tol, \u00e9s lass\u00edt\u00e1skor visszah\u00fazza ezt a sz\u00e1lat. Nagy gyors\u00edt\u00e1s \u00e9s nagy nyom\u00e1s el\u0151tol\u00e1s eset\u00e9n el\u0151fordulhat, hogy az extruder nem rendelkezik elegend\u0151 nyomat\u00e9kkal a sz\u00fcks\u00e9ges sz\u00e1lak kinyom\u00e1s\u00e1hoz. Ha ez bek\u00f6vetkezik, vagy haszn\u00e1lj alacsonyabb gyors\u00edt\u00e1si \u00e9rt\u00e9ket, vagy tiltsa le a nyom\u00e1s el\u0151tol\u00e1si funkci\u00f3t. Miut\u00e1n a Klipperben be\u00e1ll\u00edtottuk a nyom\u00e1s el\u0151tol\u00e1st, hasznos lehet kisebb visszah\u00faz\u00e1si \u00e9rt\u00e9ket be\u00e1ll\u00edtani a szeletel\u0151ben (pl. 0,75 mm), \u00e9s haszn\u00e1lni a szeletel\u0151 \"wipe on retract\" opci\u00f3t, ha rendelkez\u00e9sre \u00e1ll. Ezek a szeletel\u0151 be\u00e1ll\u00edt\u00e1sok seg\u00edthetnek a sz\u00e1lak koh\u00e9zi\u00f3ja (a m\u0171anyag ragad\u00f3s volta miatt a f\u00fav\u00f3k\u00e1b\u00f3l kih\u00fazott sz\u00e1lak) okozta foly\u00e1sa ellen. Aj\u00e1nlott a szeletel\u0151 \"z-lift on retract\" opci\u00f3 kikapcsol\u00e1sa. A nyom\u00e1s el\u0151tol\u00e1si rendszer nem v\u00e1ltoztatja meg a nymtat\u00f3fej id\u0151z\u00edt\u00e9s\u00e9t vagy \u00fatj\u00e1t. A nyom\u00e1s el\u0151tol\u00e1ssal bekapcsolt \u00e1llapotban ugyanannyi id\u0151t vesz ig\u00e9nybe, mint a nyom\u00e1s el\u0151tol\u00e1s n\u00e9lk\u00fcli nyomtat\u00e1s. A nyom\u00e1s el\u0151tol\u00e1s nem v\u00e1ltoztatja meg a nyomtat\u00e1s sor\u00e1n extrud\u00e1lt sz\u00e1l teljes mennyis\u00e9g\u00e9t sem. A nyom\u00e1s el\u0151tol\u00e1s extra extrudermozg\u00e1st eredm\u00e9nyez a mozg\u00e1s gyors\u00edt\u00e1sa \u00e9s lass\u00edt\u00e1sa sor\u00e1n. Egy nagyon magas nyom\u00e1s el\u0151tol\u00e1si be\u00e1ll\u00edt\u00e1s nagyon nagy extrudermozg\u00e1st eredm\u00e9nyez a gyors\u00edt\u00e1s \u00e9s lass\u00edt\u00e1s sor\u00e1n, \u00e9s semmilyen konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1s nem szab hat\u00e1rt ennek a mozg\u00e1snak.","title":"Fontos megjegyz\u00e9sek"},{"location":"Probe_Calibrate.html","text":"Szonda kalibr\u00e1l\u00e1sa \u00b6 Ez a dokumentum a Klipperben tal\u00e1lhat\u00f3 \"automatikus z szonda\" X, Y \u00e9s Z eltol\u00e1s\u00e1nak kalibr\u00e1l\u00e1si m\u00f3dszer\u00e9t \u00edrja le. Ez azon felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra hasznos, akiknek van egy [probe] vagy [bltouch] szakasz a konfigur\u00e1ci\u00f3s f\u00e1jljukban. A szonda X \u00e9s Y eltol\u00e1s\u00e1nak kalibr\u00e1l\u00e1sa \u00b6 Az X \u00e9s Y eltol\u00e1s kalibr\u00e1l\u00e1s\u00e1hoz navig\u00e1lj az OctoPrint \"Control\" f\u00fclre, \u00e1ll\u00edtsd be a nyomtat\u00f3t, majd az OctoPrint l\u00e9ptet\u0151 gombjaival mozgasd a fejet a t\u00e1rgyasztal k\u00f6zep\u00e9hez k\u00f6zeli poz\u00edci\u00f3ba. Helyezzen egy darab k\u00e9k fest\u0151szalagot (vagy hasonl\u00f3t) a t\u00e1rgyasztalra a szonda al\u00e1. Navig\u00e1lj az OctoPrint \"Terminal\" f\u00fclre, \u00e9s adj ki egy PROBE parancsot: PROBE Helyezzen egy jelet a szalagra k\u00f6zvetlen\u00fcl a szonda alatt (vagy hasonl\u00f3 m\u00f3dszerrel jegyezze fel a helyet a t\u00e1rgyasztalon). Adj ki egy GET_POSITION parancsot, \u00e9s r\u00f6gz\u00edtsd a parancs \u00e1ltal jelentett nyomtat\u00f3fej X-Y poz\u00edci\u00f3j\u00e1t. P\u00e9ld\u00e1ul, ha a k\u00f6vetkez\u0151ket l\u00e1tjuk: Recv: // toolhead: X:46.500000 Y:27.000000 Z:15.000000 E:0.000000 akkor a szonda X poz\u00edci\u00f3ja 46,5 \u00e9s Y poz\u00edci\u00f3ja 27. A szonda poz\u00edci\u00f3j\u00e1nak r\u00f6gz\u00edt\u00e9se ut\u00e1n adj ki egy sor G1 parancsot, am\u00edg a f\u00fav\u00f3ka k\u00f6zvetlen\u00fcl a t\u00e1rgyasztalon l\u00e9v\u0151 jel\u00f6l\u00e9s f\u00f6l\u00e9 nem ker\u00fcl. P\u00e9ld\u00e1ul a k\u00f6vetkez\u0151ket: G1 F300 X57 Y30 Z15 a f\u00fav\u00f3ka 57-es X-poz\u00edci\u00f3ba \u00e9s 30-as Y-poz\u00edci\u00f3ba t\u00f6rt\u00e9n\u0151 mozgat\u00e1s\u00e1hoz. Ha megtal\u00e1ltuk a k\u00f6zvetlen\u00fcl a jel\u00f6l\u00e9s feletti poz\u00edci\u00f3t, a GET_POSITION paranccsal jelenthetj\u00fck ezt a poz\u00edci\u00f3t. Ez a f\u00fav\u00f3ka poz\u00edci\u00f3ja. Az x_offset ekkor a nozzle_x_position - probe_x_position \u00e9s az y_offset hasonl\u00f3an a nozzle_y_position - probe_y_position . Friss\u00edtse a printer.cfg f\u00e1jlt a megadott \u00e9rt\u00e9kekkel, t\u00e1vol\u00edtsa el a szalagot/jeleket a t\u00e1rgyasztalr\u00f3l, majd adj ki egy RESTART parancsot, hogy az \u00faj \u00e9rt\u00e9kek hat\u00e1lyba l\u00e9pjenek. A szonda Z eltol\u00e1s kalibr\u00e1l\u00e1sa \u00b6 A pontos z_offset be\u00e1ll\u00edt\u00e1sa kritikus fontos a j\u00f3 min\u0151s\u00e9g\u0171 nyomatok el\u0151\u00e1ll\u00edt\u00e1s\u00e1hoz. A z_offset a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tti t\u00e1vols\u00e1g, amikor a szonda m\u0171k\u00f6d\u00e9sbe l\u00e9p. A Klipper PROBE_CALIBRATE eszk\u00f6z haszn\u00e1lhat\u00f3 ennek az \u00e9rt\u00e9knek a meghat\u00e1roz\u00e1s\u00e1ra - ez egy automatikus szond\u00e1t futtat a szonda Z kiold\u00e1si poz\u00edci\u00f3j\u00e1nak m\u00e9r\u00e9s\u00e9re, majd egy k\u00e9zi szond\u00e1t ind\u00edt a f\u00fav\u00f3ka Z magass\u00e1g\u00e1nak meghat\u00e1roz\u00e1s\u00e1ra. A szonda z_offset \u00e9rt\u00e9k\u00e9t ezut\u00e1n ezekb\u0151l a m\u00e9r\u00e9sekb\u0151l sz\u00e1m\u00edtja ki. Kezd a nyomtat\u00f3 alaphelyzetbe \u00e1ll\u00edt\u00e1s\u00e1val, majd mozgasd a fejet a t\u00e1rgyasztal k\u00f6zep\u00e9hez k\u00f6zeli poz\u00edci\u00f3ba. Navig\u00e1lj az OctoPrint termin\u00e1l f\u00fclre, \u00e9s futtassa a PROBE_CALIBRATE parancsot az eszk\u00f6z ind\u00edt\u00e1s\u00e1hoz. Ez az eszk\u00f6z automatikus m\u00e9r\u00e9st hajt v\u00e9gre, majd felemeli a fejet, mozgatja a f\u00fav\u00f3k\u00e1t a m\u00e9r\u0151pont helye f\u00f6l\u00e9, \u00e9s elind\u00edtja a k\u00e9zi m\u00e9r\u00e9st. Ha a f\u00fav\u00f3ka nem mozdul el az automatikus m\u00e9r\u0151pont feletti poz\u00edci\u00f3ba, akkor ABORT a k\u00e9zi m\u00e9r\u0151eszk\u00f6zzel, hajtsd v\u00e9gre a fent le\u00edrt X-Y szondaeltol\u00e1s kalibr\u00e1l\u00e1s\u00e1t. Miut\u00e1n a k\u00e9zi m\u00e9r\u0151 eszk\u00f6z elindult, k\u00f6vesse a \"a pap\u00edrteszt\" ] pontban le\u00edrt l\u00e9p\u00e9seket a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tti t\u00e9nyleges t\u00e1vols\u00e1g meghat\u00e1roz\u00e1s\u00e1hoz az adott helyen. Ha ezek a l\u00e9p\u00e9sek befejez\u0151dtek, akkor ACCEPT a poz\u00edci\u00f3 \u00e9s elmentheti az eredm\u00e9nyeket a config f\u00e1jlba a k\u00f6vetkez\u0151vel: SAVE_CONFIG Vedd figyelembe, hogy ha a nyomtat\u00f3 mozg\u00e1srendszer\u00e9t, a nyomtat\u00f3fej poz\u00edci\u00f3j\u00e1t vagy a szonda hely\u00e9t megv\u00e1ltoztatja, az \u00e9rv\u00e9nytelen\u00edti a PROBE_CALIBRATE eredm\u00e9nyeit. Ha a szonda X vagy Y eltol\u00e1ssal rendelkezik, \u00e9s a t\u00e1rgyasztal d\u0151l\u00e9se megv\u00e1ltozik (pl. szintez\u0151csavarok be\u00e1ll\u00edt\u00e1s\u00e1val, DELTA_CALIBRATE futtat\u00e1s\u00e1val, Z_TILT_ADJUST futtat\u00e1s\u00e1val, QUAD_GANTRY_LEVEL futtat\u00e1s\u00e1val vagy hasonl\u00f3val), akkor ez \u00e9rv\u00e9nytelen\u00edti a PROBE_CALIBRATE eredm\u00e9nyeit. A fenti be\u00e1ll\u00edt\u00e1sok b\u00e1rmelyik\u00e9nek m\u00f3dos\u00edt\u00e1sa ut\u00e1n \u00fajra kell kezdeni a PROBE_CALIBRATE futtat\u00e1s\u00e1t. Ha a PROBE_CALIBRATE eredm\u00e9nyei \u00e9rv\u00e9nytelenek, akkor a szond\u00e1val kapott kor\u00e1bbi t\u00e1rgyasztal h\u00e1l\u00f3 eredm\u00e9nyek is \u00e9rv\u00e9nytelenek. A szonda \u00fajrakalibr\u00e1l\u00e1sa ut\u00e1n \u00fajra kell futtatni a BED_MESH_CALIBRATE programot. Ism\u00e9telt m\u00e9r\u00e9si teszt \u00b6 A szonda X, Y \u00e9s Z eltol\u00e1s\u00e1nak kalibr\u00e1l\u00e1sa ut\u00e1n \u00e9rdemes ellen\u0151rizni, hogy a szonda megism\u00e9telhet\u0151 m\u00e9r\u00e9si eredm\u00e9nyeket szolg\u00e1ltat-e. Kezd a nyomtat\u00f3 alaphelyzetbe \u00e1ll\u00edt\u00e1s\u00e1val, majd mozgasd a fejet a t\u00e1rgyasztal k\u00f6zep\u00e9hez k\u00f6zeli poz\u00edci\u00f3ba. Navig\u00e1lj az OctoPrint termin\u00e1l f\u00fclre, \u00e9s futtassa a PROBE_ACCURACY parancsot. Ez a parancs t\u00edzszer futtatja le a m\u00e9r\u00e9st, \u00e9s az al\u00e1bbiakhoz hasonl\u00f3 kimenetet ad: Recv: // probe accuracy: at X:0.000 Y:0.000 Z:10.000 Recv: // and read 10 times with speed of 5 mm/s Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe accuracy results: maximum 2.519448, minimum 2.506948, range 0.012500, average 2.513198, median 2.513198, standard deviation 0.006250 Ide\u00e1lis esetben az eszk\u00f6z azonos maxim\u00e1lis \u00e9s minim\u00e1lis \u00e9rt\u00e9ket mutat. (Vagyis ide\u00e1lis esetben a szonda mind a t\u00edz m\u00e9r\u00e9sen azonos eredm\u00e9nyt ad.) Azonban norm\u00e1lis, hogy a minim\u00e1lis \u00e9s maxim\u00e1lis \u00e9rt\u00e9kek egy Z \"l\u00e9p\u00e9sk\u00f6z\" vagy ak\u00e1r 5 mikron (.005 mm) elt\u00e9r\u00e9ssel k\u00fcl\u00f6nb\u00f6znek. A \"l\u00e9p\u00e9sk\u00f6z\" rotation_distance/(full_steps_per_rotation*microsteps) . A minim\u00e1lis \u00e9s a maxim\u00e1lis \u00e9rt\u00e9k k\u00f6z\u00f6tti t\u00e1vols\u00e1got nevezz\u00fck tartom\u00e1nynak. Teh\u00e1t a fenti p\u00e9ld\u00e1ban, mivel a nyomtat\u00f3 0,0125 Z-l\u00e9p\u00e9st\u00e1vols\u00e1got haszn\u00e1l, a 0,01252500 tartom\u00e1nyt tekintj\u00fck norm\u00e1lisnak. Ha a teszt eredm\u00e9nye 25 mikronn\u00e1l (0,025 mm-n\u00e9l) nagyobb tartom\u00e1ny\u00e9rt\u00e9ket mutat, akkor a szonda nem el\u00e9g pontos a tipikus szintez\u00e9si elj\u00e1r\u00e1sokhoz. Lehets\u00e9ges a szonda sebess\u00e9g\u00e9nek \u00e9s/vagy indul\u00e1si magass\u00e1g\u00e1nak hangol\u00e1sa a m\u00e9r\u00e9s ism\u00e9telhet\u0151s\u00e9g\u00e9nek jav\u00edt\u00e1sa \u00e9rdek\u00e9ben. A PROBE_ACCURACY parancs lehet\u0151v\u00e9 teszi a tesztek futtat\u00e1s\u00e1t k\u00fcl\u00f6nb\u00f6z\u0151 param\u00e9terekkel, hogy l\u00e1ssa a hat\u00e1sukat. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a G-k\u00f3dok dokumentumot . Ha a szonda \u00e1ltal\u00e1ban egyforma eredm\u00e9nyeket ad, de id\u0151nk\u00e9nt el\u0151fordulnak kiugr\u00f3 \u00e9rt\u00e9kek, akkor ezt \u00fagy lehet kik\u00fcsz\u00f6b\u00f6lni, hogy minden egyes m\u00e9r\u0151ponton t\u00f6bb m\u00e9r\u00e9st hajtunk v\u00e9gre. Olvasd el a szonda samples konfigur\u00e1ci\u00f3s param\u00e9tereinek le\u00edr\u00e1s\u00e1t a konfigur\u00e1ci\u00f3s hivatkoz\u00e1sban tov\u00e1bbi r\u00e9szletek\u00e9rt. Ha \u00faj m\u00e9r\u00e9si sebess\u00e9gre, m\u00e9r\u00e9ssz\u00e1mra vagy egy\u00e9b be\u00e1ll\u00edt\u00e1sokra van sz\u00fcks\u00e9g, akkor friss\u00edtse a printer.cfg f\u00e1jlt, \u00e9s adj ki egy RESTART parancsot. Ha igen, akkor \u00e9rdemes \u00fajra kalibr\u00e1lni a z_offsetet . Ha nem kap ism\u00e9tl\u0151d\u0151 eredm\u00e9nyeket, akkor ne haszn\u00e1ld a szond\u00e1t t\u00e1rgyasztal szintez\u00e9s\u00e9re. A Klipper sz\u00e1mos k\u00e9zi m\u00e9r\u0151eszk\u00f6zzel rendelkezik, amelyek helyette haszn\u00e1lhat\u00f3k - tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a T\u00e1rgyasztal szintez\u00e9se dokumentumot . Elhelyezked\u00e9s ellen\u0151rz\u00e9se \u00b6 Egyes szond\u00e1k rendszerszint\u0171 torz\u00edt\u00e1ssal rendelkezhetnek, amely bizonyos nyomtat\u00f3fej helyeken elrontja a m\u00e9r\u00e9s eredm\u00e9nyeit. P\u00e9ld\u00e1ul, ha a szonda tart\u00f3ja az Y tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s k\u00f6zben kiss\u00e9 megd\u0151l, akkor ez azt eredm\u00e9nyezheti, hogy a szonda k\u00fcl\u00f6nb\u00f6z\u0151 Y poz\u00edci\u00f3kban torz eredm\u00e9nyeket ad ki. Ez egy gyakori probl\u00e9ma a delta nyomtat\u00f3k szond\u00e1in\u00e1l, de m\u00e1s nyomtat\u00f3n\u00e1l is el\u0151fordulhat. A helyeltol\u00f3d\u00e1s ellen\u0151rz\u00e9se a PROBE_CALIBRATE parancs seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nhet a szonda z_offsetj\u00e9nek m\u00e9r\u00e9s\u00e9vel k\u00fcl\u00f6nb\u00f6z\u0151 X \u00e9s Y helyeken. Ide\u00e1lis esetben a szonda z_offset \u00e9rt\u00e9ke minden poz\u00edci\u00f3ban \u00e1lland\u00f3. A deltanyomtat\u00f3k eset\u00e9ben pr\u00f3b\u00e1ld meg a z_offset m\u00e9r\u00e9s\u00e9t az A, a B, \u00e9s a C torony k\u00f6zel\u00e9ben is. Cartesian, corexy \u00e9s hasonl\u00f3 nyomtat\u00f3k eset\u00e9ben pr\u00f3b\u00e1ld meg a z_offsetet a t\u00e1rgyasztal n\u00e9gy sark\u00e1nak k\u00f6zel\u00e9ben l\u00e9v\u0151 poz\u00edci\u00f3kban m\u00e9rni. A vizsg\u00e1lat megkezd\u00e9se el\u0151tt el\u0151sz\u00f6r kalibr\u00e1lja a szonda X-, Y- \u00e9s Z-eltol\u00f3d\u00e1s\u00e1t a dokumentum elej\u00e9n le\u00edrtak szerint. Ezut\u00e1n \u00e1ll\u00edtsd be a nyomtat\u00f3t, \u00e9s navig\u00e1lj az els\u0151 X-Y poz\u00edci\u00f3ba. A PROBE_CALIBRATE parancs futtat\u00e1s\u00e1hoz k\u00f6vesse a calibrating probe Z offset pontban le\u00edrt l\u00e9p\u00e9seket, TESTZ parancsot, \u00e9s az ACCEPT parancsot, de ne futtassa a SAVE_CONFIG parancsot. Figyelj\u00fck meg a tal\u00e1lt z_offset \u00e9rt\u00e9ket. Ezut\u00e1n navig\u00e1lj a t\u00f6bbi X-Y poz\u00edci\u00f3hoz, ism\u00e9telje meg ezeket a PROBE_CALIBRATE l\u00e9p\u00e9seket, \u00e9s jegyezze fel a m\u00e9rt z_offsetet. Ha a minim\u00e1lisan \u00e9s a maxim\u00e1lisan jelentett z_offset k\u00f6z\u00f6tti k\u00fcl\u00f6nbs\u00e9g nagyobb, mint 25 mikron (.025 mm), akkor a szonda nem alkalmas a tipikus t\u00e1rgyasztal szintez\u00e9si m\u0171veletekre. A k\u00e9zi m\u00e9r\u00e9si alternat\u00edv\u00e1kat l\u00e1sd az T\u00e1rgyasztal szintez\u00e9se dokumentumban . H\u0151m\u00e9rs\u00e9klet torz\u00edt\u00e1s \u00b6 Sok szond\u00e1nak van egy rendszerszint\u0171 torz\u00edt\u00e1sa, amikor k\u00fcl\u00f6nb\u00f6z\u0151 h\u0151m\u00e9rs\u00e9kleten m\u00e9rnek. P\u00e9ld\u00e1ul a szonda k\u00f6vetkezetesen alacsonyabb magass\u00e1gban m\u00e9rhet a magasabb h\u0151m\u00e9rs\u00e9klet k\u00f6vetkezt\u00e9ben. Javasoljuk, hogy a t\u00e1rgyasztal szintez\u0151 szersz\u00e1mokat \u00e1lland\u00f3 h\u0151m\u00e9rs\u00e9kleten m\u0171k\u00f6dtesse, hogy figyelembe vegy\u00e9k ezt a torz\u00edt\u00e1st. Vagy szobah\u0151m\u00e9rs\u00e9kleten szintezzen, vagy szintezzen miut\u00e1n a nyomtat\u00f3 el\u00e9rte a nyomtat\u00e1si h\u0151m\u00e9rs\u00e9kletet. Mindk\u00e9t esetben \u00e9rdemes n\u00e9h\u00e1ny percet v\u00e1rni a k\u00edv\u00e1nt h\u0151m\u00e9rs\u00e9klet el\u00e9r\u00e9se ut\u00e1n, hogy a berendez\u00e9s folyamatosan a k\u00edv\u00e1nt h\u0151m\u00e9rs\u00e9kleten legyen. A h\u0151m\u00e9rs\u00e9kleti torz\u00edt\u00e1s ellen\u0151rz\u00e9s\u00e9hez kezd szobah\u0151m\u00e9rs\u00e9kleten, majd \u00e1ll\u00edtsd be a nyomtat\u00f3t. Mozgasd a fejet a t\u00e1rgyasztal k\u00f6zep\u00e9hez k\u00f6zeli poz\u00edci\u00f3ba, \u00e9s futtassa a PROBE_ACCURACY parancsot. Figyelje meg az eredm\u00e9nyeket. Ezut\u00e1n a l\u00e9ptet\u0151motorok kezd\u0151pont felv\u00e9tele vagy kikapcsol\u00e1sa n\u00e9lk\u00fcl meleg\u00edtse fel a nyomtat\u00f3 f\u00fav\u00f3k\u00e1j\u00e1t \u00e9s t\u00e1rgyasztal\u00e1t nyomtat\u00e1si h\u0151m\u00e9rs\u00e9kletre, \u00e9s futtassa le ism\u00e9t a PROBE_ACCURACY parancsot. Ide\u00e1lis esetben a parancs azonos eredm\u00e9nyeket fog mutatni. A fentiekhez hasonl\u00f3an, ha a szond\u00e1nak val\u00f3ban van h\u0151m\u00e9rs\u00e9kleti torz\u00edt\u00e1sa, akkor \u00fcgyelj arra, hogy mindig egyenletes h\u0151m\u00e9rs\u00e9kleten haszn\u00e1ld m\u00e9r\u00e9skor.","title":"Szonda kalibr\u00e1l\u00e1sa"},{"location":"Probe_Calibrate.html#szonda-kalibralasa","text":"Ez a dokumentum a Klipperben tal\u00e1lhat\u00f3 \"automatikus z szonda\" X, Y \u00e9s Z eltol\u00e1s\u00e1nak kalibr\u00e1l\u00e1si m\u00f3dszer\u00e9t \u00edrja le. Ez azon felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra hasznos, akiknek van egy [probe] vagy [bltouch] szakasz a konfigur\u00e1ci\u00f3s f\u00e1jljukban.","title":"Szonda kalibr\u00e1l\u00e1sa"},{"location":"Probe_Calibrate.html#a-szonda-x-es-y-eltolasanak-kalibralasa","text":"Az X \u00e9s Y eltol\u00e1s kalibr\u00e1l\u00e1s\u00e1hoz navig\u00e1lj az OctoPrint \"Control\" f\u00fclre, \u00e1ll\u00edtsd be a nyomtat\u00f3t, majd az OctoPrint l\u00e9ptet\u0151 gombjaival mozgasd a fejet a t\u00e1rgyasztal k\u00f6zep\u00e9hez k\u00f6zeli poz\u00edci\u00f3ba. Helyezzen egy darab k\u00e9k fest\u0151szalagot (vagy hasonl\u00f3t) a t\u00e1rgyasztalra a szonda al\u00e1. Navig\u00e1lj az OctoPrint \"Terminal\" f\u00fclre, \u00e9s adj ki egy PROBE parancsot: PROBE Helyezzen egy jelet a szalagra k\u00f6zvetlen\u00fcl a szonda alatt (vagy hasonl\u00f3 m\u00f3dszerrel jegyezze fel a helyet a t\u00e1rgyasztalon). Adj ki egy GET_POSITION parancsot, \u00e9s r\u00f6gz\u00edtsd a parancs \u00e1ltal jelentett nyomtat\u00f3fej X-Y poz\u00edci\u00f3j\u00e1t. P\u00e9ld\u00e1ul, ha a k\u00f6vetkez\u0151ket l\u00e1tjuk: Recv: // toolhead: X:46.500000 Y:27.000000 Z:15.000000 E:0.000000 akkor a szonda X poz\u00edci\u00f3ja 46,5 \u00e9s Y poz\u00edci\u00f3ja 27. A szonda poz\u00edci\u00f3j\u00e1nak r\u00f6gz\u00edt\u00e9se ut\u00e1n adj ki egy sor G1 parancsot, am\u00edg a f\u00fav\u00f3ka k\u00f6zvetlen\u00fcl a t\u00e1rgyasztalon l\u00e9v\u0151 jel\u00f6l\u00e9s f\u00f6l\u00e9 nem ker\u00fcl. P\u00e9ld\u00e1ul a k\u00f6vetkez\u0151ket: G1 F300 X57 Y30 Z15 a f\u00fav\u00f3ka 57-es X-poz\u00edci\u00f3ba \u00e9s 30-as Y-poz\u00edci\u00f3ba t\u00f6rt\u00e9n\u0151 mozgat\u00e1s\u00e1hoz. Ha megtal\u00e1ltuk a k\u00f6zvetlen\u00fcl a jel\u00f6l\u00e9s feletti poz\u00edci\u00f3t, a GET_POSITION paranccsal jelenthetj\u00fck ezt a poz\u00edci\u00f3t. Ez a f\u00fav\u00f3ka poz\u00edci\u00f3ja. Az x_offset ekkor a nozzle_x_position - probe_x_position \u00e9s az y_offset hasonl\u00f3an a nozzle_y_position - probe_y_position . Friss\u00edtse a printer.cfg f\u00e1jlt a megadott \u00e9rt\u00e9kekkel, t\u00e1vol\u00edtsa el a szalagot/jeleket a t\u00e1rgyasztalr\u00f3l, majd adj ki egy RESTART parancsot, hogy az \u00faj \u00e9rt\u00e9kek hat\u00e1lyba l\u00e9pjenek.","title":"A szonda X \u00e9s Y eltol\u00e1s\u00e1nak kalibr\u00e1l\u00e1sa"},{"location":"Probe_Calibrate.html#a-szonda-z-eltolas-kalibralasa","text":"A pontos z_offset be\u00e1ll\u00edt\u00e1sa kritikus fontos a j\u00f3 min\u0151s\u00e9g\u0171 nyomatok el\u0151\u00e1ll\u00edt\u00e1s\u00e1hoz. A z_offset a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tti t\u00e1vols\u00e1g, amikor a szonda m\u0171k\u00f6d\u00e9sbe l\u00e9p. A Klipper PROBE_CALIBRATE eszk\u00f6z haszn\u00e1lhat\u00f3 ennek az \u00e9rt\u00e9knek a meghat\u00e1roz\u00e1s\u00e1ra - ez egy automatikus szond\u00e1t futtat a szonda Z kiold\u00e1si poz\u00edci\u00f3j\u00e1nak m\u00e9r\u00e9s\u00e9re, majd egy k\u00e9zi szond\u00e1t ind\u00edt a f\u00fav\u00f3ka Z magass\u00e1g\u00e1nak meghat\u00e1roz\u00e1s\u00e1ra. A szonda z_offset \u00e9rt\u00e9k\u00e9t ezut\u00e1n ezekb\u0151l a m\u00e9r\u00e9sekb\u0151l sz\u00e1m\u00edtja ki. Kezd a nyomtat\u00f3 alaphelyzetbe \u00e1ll\u00edt\u00e1s\u00e1val, majd mozgasd a fejet a t\u00e1rgyasztal k\u00f6zep\u00e9hez k\u00f6zeli poz\u00edci\u00f3ba. Navig\u00e1lj az OctoPrint termin\u00e1l f\u00fclre, \u00e9s futtassa a PROBE_CALIBRATE parancsot az eszk\u00f6z ind\u00edt\u00e1s\u00e1hoz. Ez az eszk\u00f6z automatikus m\u00e9r\u00e9st hajt v\u00e9gre, majd felemeli a fejet, mozgatja a f\u00fav\u00f3k\u00e1t a m\u00e9r\u0151pont helye f\u00f6l\u00e9, \u00e9s elind\u00edtja a k\u00e9zi m\u00e9r\u00e9st. Ha a f\u00fav\u00f3ka nem mozdul el az automatikus m\u00e9r\u0151pont feletti poz\u00edci\u00f3ba, akkor ABORT a k\u00e9zi m\u00e9r\u0151eszk\u00f6zzel, hajtsd v\u00e9gre a fent le\u00edrt X-Y szondaeltol\u00e1s kalibr\u00e1l\u00e1s\u00e1t. Miut\u00e1n a k\u00e9zi m\u00e9r\u0151 eszk\u00f6z elindult, k\u00f6vesse a \"a pap\u00edrteszt\" ] pontban le\u00edrt l\u00e9p\u00e9seket a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tti t\u00e9nyleges t\u00e1vols\u00e1g meghat\u00e1roz\u00e1s\u00e1hoz az adott helyen. Ha ezek a l\u00e9p\u00e9sek befejez\u0151dtek, akkor ACCEPT a poz\u00edci\u00f3 \u00e9s elmentheti az eredm\u00e9nyeket a config f\u00e1jlba a k\u00f6vetkez\u0151vel: SAVE_CONFIG Vedd figyelembe, hogy ha a nyomtat\u00f3 mozg\u00e1srendszer\u00e9t, a nyomtat\u00f3fej poz\u00edci\u00f3j\u00e1t vagy a szonda hely\u00e9t megv\u00e1ltoztatja, az \u00e9rv\u00e9nytelen\u00edti a PROBE_CALIBRATE eredm\u00e9nyeit. Ha a szonda X vagy Y eltol\u00e1ssal rendelkezik, \u00e9s a t\u00e1rgyasztal d\u0151l\u00e9se megv\u00e1ltozik (pl. szintez\u0151csavarok be\u00e1ll\u00edt\u00e1s\u00e1val, DELTA_CALIBRATE futtat\u00e1s\u00e1val, Z_TILT_ADJUST futtat\u00e1s\u00e1val, QUAD_GANTRY_LEVEL futtat\u00e1s\u00e1val vagy hasonl\u00f3val), akkor ez \u00e9rv\u00e9nytelen\u00edti a PROBE_CALIBRATE eredm\u00e9nyeit. A fenti be\u00e1ll\u00edt\u00e1sok b\u00e1rmelyik\u00e9nek m\u00f3dos\u00edt\u00e1sa ut\u00e1n \u00fajra kell kezdeni a PROBE_CALIBRATE futtat\u00e1s\u00e1t. Ha a PROBE_CALIBRATE eredm\u00e9nyei \u00e9rv\u00e9nytelenek, akkor a szond\u00e1val kapott kor\u00e1bbi t\u00e1rgyasztal h\u00e1l\u00f3 eredm\u00e9nyek is \u00e9rv\u00e9nytelenek. A szonda \u00fajrakalibr\u00e1l\u00e1sa ut\u00e1n \u00fajra kell futtatni a BED_MESH_CALIBRATE programot.","title":"A szonda Z eltol\u00e1s kalibr\u00e1l\u00e1sa"},{"location":"Probe_Calibrate.html#ismetelt-meresi-teszt","text":"A szonda X, Y \u00e9s Z eltol\u00e1s\u00e1nak kalibr\u00e1l\u00e1sa ut\u00e1n \u00e9rdemes ellen\u0151rizni, hogy a szonda megism\u00e9telhet\u0151 m\u00e9r\u00e9si eredm\u00e9nyeket szolg\u00e1ltat-e. Kezd a nyomtat\u00f3 alaphelyzetbe \u00e1ll\u00edt\u00e1s\u00e1val, majd mozgasd a fejet a t\u00e1rgyasztal k\u00f6zep\u00e9hez k\u00f6zeli poz\u00edci\u00f3ba. Navig\u00e1lj az OctoPrint termin\u00e1l f\u00fclre, \u00e9s futtassa a PROBE_ACCURACY parancsot. Ez a parancs t\u00edzszer futtatja le a m\u00e9r\u00e9st, \u00e9s az al\u00e1bbiakhoz hasonl\u00f3 kimenetet ad: Recv: // probe accuracy: at X:0.000 Y:0.000 Z:10.000 Recv: // and read 10 times with speed of 5 mm/s Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe accuracy results: maximum 2.519448, minimum 2.506948, range 0.012500, average 2.513198, median 2.513198, standard deviation 0.006250 Ide\u00e1lis esetben az eszk\u00f6z azonos maxim\u00e1lis \u00e9s minim\u00e1lis \u00e9rt\u00e9ket mutat. (Vagyis ide\u00e1lis esetben a szonda mind a t\u00edz m\u00e9r\u00e9sen azonos eredm\u00e9nyt ad.) Azonban norm\u00e1lis, hogy a minim\u00e1lis \u00e9s maxim\u00e1lis \u00e9rt\u00e9kek egy Z \"l\u00e9p\u00e9sk\u00f6z\" vagy ak\u00e1r 5 mikron (.005 mm) elt\u00e9r\u00e9ssel k\u00fcl\u00f6nb\u00f6znek. A \"l\u00e9p\u00e9sk\u00f6z\" rotation_distance/(full_steps_per_rotation*microsteps) . A minim\u00e1lis \u00e9s a maxim\u00e1lis \u00e9rt\u00e9k k\u00f6z\u00f6tti t\u00e1vols\u00e1got nevezz\u00fck tartom\u00e1nynak. Teh\u00e1t a fenti p\u00e9ld\u00e1ban, mivel a nyomtat\u00f3 0,0125 Z-l\u00e9p\u00e9st\u00e1vols\u00e1got haszn\u00e1l, a 0,01252500 tartom\u00e1nyt tekintj\u00fck norm\u00e1lisnak. Ha a teszt eredm\u00e9nye 25 mikronn\u00e1l (0,025 mm-n\u00e9l) nagyobb tartom\u00e1ny\u00e9rt\u00e9ket mutat, akkor a szonda nem el\u00e9g pontos a tipikus szintez\u00e9si elj\u00e1r\u00e1sokhoz. Lehets\u00e9ges a szonda sebess\u00e9g\u00e9nek \u00e9s/vagy indul\u00e1si magass\u00e1g\u00e1nak hangol\u00e1sa a m\u00e9r\u00e9s ism\u00e9telhet\u0151s\u00e9g\u00e9nek jav\u00edt\u00e1sa \u00e9rdek\u00e9ben. A PROBE_ACCURACY parancs lehet\u0151v\u00e9 teszi a tesztek futtat\u00e1s\u00e1t k\u00fcl\u00f6nb\u00f6z\u0151 param\u00e9terekkel, hogy l\u00e1ssa a hat\u00e1sukat. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a G-k\u00f3dok dokumentumot . Ha a szonda \u00e1ltal\u00e1ban egyforma eredm\u00e9nyeket ad, de id\u0151nk\u00e9nt el\u0151fordulnak kiugr\u00f3 \u00e9rt\u00e9kek, akkor ezt \u00fagy lehet kik\u00fcsz\u00f6b\u00f6lni, hogy minden egyes m\u00e9r\u0151ponton t\u00f6bb m\u00e9r\u00e9st hajtunk v\u00e9gre. Olvasd el a szonda samples konfigur\u00e1ci\u00f3s param\u00e9tereinek le\u00edr\u00e1s\u00e1t a konfigur\u00e1ci\u00f3s hivatkoz\u00e1sban tov\u00e1bbi r\u00e9szletek\u00e9rt. Ha \u00faj m\u00e9r\u00e9si sebess\u00e9gre, m\u00e9r\u00e9ssz\u00e1mra vagy egy\u00e9b be\u00e1ll\u00edt\u00e1sokra van sz\u00fcks\u00e9g, akkor friss\u00edtse a printer.cfg f\u00e1jlt, \u00e9s adj ki egy RESTART parancsot. Ha igen, akkor \u00e9rdemes \u00fajra kalibr\u00e1lni a z_offsetet . Ha nem kap ism\u00e9tl\u0151d\u0151 eredm\u00e9nyeket, akkor ne haszn\u00e1ld a szond\u00e1t t\u00e1rgyasztal szintez\u00e9s\u00e9re. A Klipper sz\u00e1mos k\u00e9zi m\u00e9r\u0151eszk\u00f6zzel rendelkezik, amelyek helyette haszn\u00e1lhat\u00f3k - tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a T\u00e1rgyasztal szintez\u00e9se dokumentumot .","title":"Ism\u00e9telt m\u00e9r\u00e9si teszt"},{"location":"Probe_Calibrate.html#elhelyezkedes-ellenorzese","text":"Egyes szond\u00e1k rendszerszint\u0171 torz\u00edt\u00e1ssal rendelkezhetnek, amely bizonyos nyomtat\u00f3fej helyeken elrontja a m\u00e9r\u00e9s eredm\u00e9nyeit. P\u00e9ld\u00e1ul, ha a szonda tart\u00f3ja az Y tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s k\u00f6zben kiss\u00e9 megd\u0151l, akkor ez azt eredm\u00e9nyezheti, hogy a szonda k\u00fcl\u00f6nb\u00f6z\u0151 Y poz\u00edci\u00f3kban torz eredm\u00e9nyeket ad ki. Ez egy gyakori probl\u00e9ma a delta nyomtat\u00f3k szond\u00e1in\u00e1l, de m\u00e1s nyomtat\u00f3n\u00e1l is el\u0151fordulhat. A helyeltol\u00f3d\u00e1s ellen\u0151rz\u00e9se a PROBE_CALIBRATE parancs seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nhet a szonda z_offsetj\u00e9nek m\u00e9r\u00e9s\u00e9vel k\u00fcl\u00f6nb\u00f6z\u0151 X \u00e9s Y helyeken. Ide\u00e1lis esetben a szonda z_offset \u00e9rt\u00e9ke minden poz\u00edci\u00f3ban \u00e1lland\u00f3. A deltanyomtat\u00f3k eset\u00e9ben pr\u00f3b\u00e1ld meg a z_offset m\u00e9r\u00e9s\u00e9t az A, a B, \u00e9s a C torony k\u00f6zel\u00e9ben is. Cartesian, corexy \u00e9s hasonl\u00f3 nyomtat\u00f3k eset\u00e9ben pr\u00f3b\u00e1ld meg a z_offsetet a t\u00e1rgyasztal n\u00e9gy sark\u00e1nak k\u00f6zel\u00e9ben l\u00e9v\u0151 poz\u00edci\u00f3kban m\u00e9rni. A vizsg\u00e1lat megkezd\u00e9se el\u0151tt el\u0151sz\u00f6r kalibr\u00e1lja a szonda X-, Y- \u00e9s Z-eltol\u00f3d\u00e1s\u00e1t a dokumentum elej\u00e9n le\u00edrtak szerint. Ezut\u00e1n \u00e1ll\u00edtsd be a nyomtat\u00f3t, \u00e9s navig\u00e1lj az els\u0151 X-Y poz\u00edci\u00f3ba. A PROBE_CALIBRATE parancs futtat\u00e1s\u00e1hoz k\u00f6vesse a calibrating probe Z offset pontban le\u00edrt l\u00e9p\u00e9seket, TESTZ parancsot, \u00e9s az ACCEPT parancsot, de ne futtassa a SAVE_CONFIG parancsot. Figyelj\u00fck meg a tal\u00e1lt z_offset \u00e9rt\u00e9ket. Ezut\u00e1n navig\u00e1lj a t\u00f6bbi X-Y poz\u00edci\u00f3hoz, ism\u00e9telje meg ezeket a PROBE_CALIBRATE l\u00e9p\u00e9seket, \u00e9s jegyezze fel a m\u00e9rt z_offsetet. Ha a minim\u00e1lisan \u00e9s a maxim\u00e1lisan jelentett z_offset k\u00f6z\u00f6tti k\u00fcl\u00f6nbs\u00e9g nagyobb, mint 25 mikron (.025 mm), akkor a szonda nem alkalmas a tipikus t\u00e1rgyasztal szintez\u00e9si m\u0171veletekre. A k\u00e9zi m\u00e9r\u00e9si alternat\u00edv\u00e1kat l\u00e1sd az T\u00e1rgyasztal szintez\u00e9se dokumentumban .","title":"Elhelyezked\u00e9s ellen\u0151rz\u00e9se"},{"location":"Probe_Calibrate.html#homerseklet-torzitas","text":"Sok szond\u00e1nak van egy rendszerszint\u0171 torz\u00edt\u00e1sa, amikor k\u00fcl\u00f6nb\u00f6z\u0151 h\u0151m\u00e9rs\u00e9kleten m\u00e9rnek. P\u00e9ld\u00e1ul a szonda k\u00f6vetkezetesen alacsonyabb magass\u00e1gban m\u00e9rhet a magasabb h\u0151m\u00e9rs\u00e9klet k\u00f6vetkezt\u00e9ben. Javasoljuk, hogy a t\u00e1rgyasztal szintez\u0151 szersz\u00e1mokat \u00e1lland\u00f3 h\u0151m\u00e9rs\u00e9kleten m\u0171k\u00f6dtesse, hogy figyelembe vegy\u00e9k ezt a torz\u00edt\u00e1st. Vagy szobah\u0151m\u00e9rs\u00e9kleten szintezzen, vagy szintezzen miut\u00e1n a nyomtat\u00f3 el\u00e9rte a nyomtat\u00e1si h\u0151m\u00e9rs\u00e9kletet. Mindk\u00e9t esetben \u00e9rdemes n\u00e9h\u00e1ny percet v\u00e1rni a k\u00edv\u00e1nt h\u0151m\u00e9rs\u00e9klet el\u00e9r\u00e9se ut\u00e1n, hogy a berendez\u00e9s folyamatosan a k\u00edv\u00e1nt h\u0151m\u00e9rs\u00e9kleten legyen. A h\u0151m\u00e9rs\u00e9kleti torz\u00edt\u00e1s ellen\u0151rz\u00e9s\u00e9hez kezd szobah\u0151m\u00e9rs\u00e9kleten, majd \u00e1ll\u00edtsd be a nyomtat\u00f3t. Mozgasd a fejet a t\u00e1rgyasztal k\u00f6zep\u00e9hez k\u00f6zeli poz\u00edci\u00f3ba, \u00e9s futtassa a PROBE_ACCURACY parancsot. Figyelje meg az eredm\u00e9nyeket. Ezut\u00e1n a l\u00e9ptet\u0151motorok kezd\u0151pont felv\u00e9tele vagy kikapcsol\u00e1sa n\u00e9lk\u00fcl meleg\u00edtse fel a nyomtat\u00f3 f\u00fav\u00f3k\u00e1j\u00e1t \u00e9s t\u00e1rgyasztal\u00e1t nyomtat\u00e1si h\u0151m\u00e9rs\u00e9kletre, \u00e9s futtassa le ism\u00e9t a PROBE_ACCURACY parancsot. Ide\u00e1lis esetben a parancs azonos eredm\u00e9nyeket fog mutatni. A fentiekhez hasonl\u00f3an, ha a szond\u00e1nak val\u00f3ban van h\u0151m\u00e9rs\u00e9kleti torz\u00edt\u00e1sa, akkor \u00fcgyelj arra, hogy mindig egyenletes h\u0151m\u00e9rs\u00e9kleten haszn\u00e1ld m\u00e9r\u00e9skor.","title":"H\u0151m\u00e9rs\u00e9klet torz\u00edt\u00e1s"},{"location":"Protocol.html","text":"Protokoll \u00b6 A Klipper \u00fczenetk\u00fcld\u0151 protokoll a Klipper gazdag\u00e9p szoftver \u00e9s a Klipper mikrovez\u00e9rl\u0151 szoftver k\u00f6z\u00f6tti alacsony szint\u0171 kommunik\u00e1ci\u00f3ra szolg\u00e1l. Magas szinten a protokoll felfoghat\u00f3 parancs \u00e9s v\u00e1laszkarakterl\u00e1ncok sorozat\u00e1nak, amelyeket t\u00f6m\u00f6r\u00edtenek, tov\u00e1bb\u00edtanak, majd feldolgoznak a fogad\u00f3 oldalon. Egy p\u00e9lda parancssorozat t\u00f6m\u00f6r\u00edtetlen, ember \u00e1ltal olvashat\u00f3 form\u00e1tumban \u00edgy n\u00e9zhet ki: set_digital_out pin=PA3 value=1 set_digital_out pin=PA7 value=1 schedule_digital_out oid=8 clock=4000000 value=0 queue_step oid=7 interval=7458 count=10 add=331 queue_step oid=7 interval=11717 count=4 add=1281 Az el\u00e9rhet\u0151 parancsokr\u00f3l az mcu parancsok dokumentumban olvashat b\u0151vebben. Tekintsd meg a hibakeres\u00e9s dokumentumot a G-k\u00f3d f\u00e1jl megfelel\u0151, ember \u00e1ltal olvashat\u00f3 mikrovez\u00e9rl\u0151 parancsaira t\u00f6rt\u00e9n\u0151 leford\u00edt\u00e1s\u00e1val kapcsolatban. Ez az oldal mag\u00e1nak a Klipper \u00fczenetk\u00fcld\u0151 protokollnak a magas szint\u0171 le\u00edr\u00e1s\u00e1t tartalmazza. Le\u00edrja az \u00fczenetek deklar\u00e1l\u00e1s\u00e1t, bin\u00e1ris form\u00e1tum\u00fa k\u00f3dol\u00e1s\u00e1t (a s\u00e9ma \"t\u00f6m\u00f6r\u00edt\u00e9s\u00e9t\") \u00e9s tov\u00e1bb\u00edt\u00e1s\u00e1t. A protokoll c\u00e9lja, hogy hibamentes kommunik\u00e1ci\u00f3s csatorn\u00e1t tegyen lehet\u0151v\u00e9 a gazdag\u00e9p \u00e9s a mikrovez\u00e9rl\u0151 k\u00f6z\u00f6tt, amely alacsony k\u00e9sleltet\u00e9s\u0171, alacsony s\u00e1vsz\u00e9less\u00e9g\u0171 \u00e9s alacsony bonyolults\u00e1g\u00fa a mikrovez\u00e9rl\u0151 sz\u00e1m\u00e1ra. Mikrovez\u00e9rl\u0151 interf\u00e9sz \u00b6 A Klipper \u00e1tviteli protokoll egy RPC mechanizmusnak tekinthet\u0151 a mikrovez\u00e9rl\u0151 \u00e9s a gazdag\u00e9p k\u00f6z\u00f6tt. A mikrovez\u00e9rl\u0151 szoftver deklar\u00e1lja azokat a parancsokat, amelyeket a gazdag\u00e9p megh\u00edvhat, az \u00e1ltala gener\u00e1lt v\u00e1lasz\u00fczenetekkel egy\u00fctt. A gazdag\u00e9p ezeket az inform\u00e1ci\u00f3kat arra haszn\u00e1lja fel, hogy parancsot adjon a mikrokontrollernek a m\u0171veletek v\u00e9grehajt\u00e1s\u00e1ra \u00e9s az eredm\u00e9nyek \u00e9rtelmez\u00e9s\u00e9re. Parancsok deklar\u00e1l\u00e1sa \u00b6 A mikrokontroller szoftvere deklar\u00e1l egy \"parancsot\" a DECL_COMMAND() makr\u00f3 haszn\u00e1lat\u00e1val a C k\u00f3dban. P\u00e9ld\u00e1ul: DECL_COMMAND(command_update_digital_out, \"update_digital_out oid=%c value=%c\"); A fenti egy \"update_digital_out\" nev\u0171 parancsot deklar\u00e1l. Ez lehet\u0151v\u00e9 teszi a gazdag\u00e9p sz\u00e1m\u00e1ra, hogy ezt a parancsot \"invoke\", ami a command_update_digital_out() C f\u00fcggv\u00e9ny v\u00e9grehajt\u00e1s\u00e1t eredm\u00e9nyezi a mikrovez\u00e9rl\u0151ben. A fentiek azt is jelzik, hogy a parancs k\u00e9t eg\u00e9sz param\u00e9tert vesz fel. A command_update_digital_out() C k\u00f3d v\u00e9grehajt\u00e1sakor egy t\u00f6mb ker\u00fcl \u00e1tad\u00e1sra, amely ezt a k\u00e9t eg\u00e9sz sz\u00e1mot tartalmazza. Az els\u0151 az 'oid'-nak, a m\u00e1sodik a 'value'-nak felel meg. \u00c1ltal\u00e1ban a param\u00e9terek le\u00edr\u00e1sa printf() st\u00edlus\u00fa szintaxissal t\u00f6rt\u00e9nik (pl. \"%u\"). A form\u00e1z\u00e1s k\u00f6zvetlen\u00fcl megfelel a parancsok ember \u00e1ltal olvashat\u00f3 n\u00e9zet\u00e9nek (pl. \"update_digital_out oid=7 value=1\"). A fenti p\u00e9ld\u00e1ban a \"value=\" a param\u00e9ter neve, a \"%c\" pedig azt jelzi, hogy a param\u00e9ter eg\u00e9sz sz\u00e1m. Bels\u0151leg a param\u00e9tern\u00e9v csak dokument\u00e1ci\u00f3k\u00e9nt haszn\u00e1latos. Ebben a p\u00e9ld\u00e1ban a \"%c\" is haszn\u00e1lhat\u00f3 dokument\u00e1ci\u00f3k\u00e9nt, amely jelzi, hogy a v\u00e1rt eg\u00e9sz sz\u00e1m 1 b\u00e1jt m\u00e9ret\u0171 (a deklar\u00e1lt eg\u00e9sz sz\u00e1m nem befoly\u00e1solja az elemz\u00e9st vagy a k\u00f3dol\u00e1st). A mikrovez\u00e9rl\u0151 szerkeszt\u0151 \u00f6sszegy\u0171jti a DECL_COMMAND()-al deklar\u00e1lt \u00f6sszes parancsot, meghat\u00e1rozza azok param\u00e9tereit, \u00e9s gondoskodik a megh\u00edv\u00e1sukr\u00f3l. V\u00e1laszok deklar\u00e1l\u00e1sa \u00b6 A mikrovez\u00e9rl\u0151t\u0151l a gazdag\u00e9pnek t\u00f6rt\u00e9n\u0151 inform\u00e1ci\u00f3 k\u00fcld\u00e9s\u00e9hez \"v\u00e1lasz\" j\u00f6n l\u00e9tre. Ezek deklar\u00e1l\u00e1sa \u00e9s tov\u00e1bb\u00edt\u00e1sa a sendf() C makr\u00f3 haszn\u00e1lat\u00e1val t\u00f6rt\u00e9nik. P\u00e9ld\u00e1ul: sendf(\"status clock=%u status=%c\", sched_read_time(), sched_is_shutdown()); A fenti egy \"\u00e1llapot\" v\u00e1lasz\u00fczenetet k\u00fcld, amely k\u00e9t eg\u00e9sz param\u00e9tert (\"\u00f3ra\" \u00e9s \"\u00e1llapot\") tartalmaz. A mikrovez\u00e9rl\u0151 szerkeszt\u0151 automatikusan megtal\u00e1lja az \u00f6sszes sendf() h\u00edv\u00e1st, \u00e9s k\u00f3dol\u00f3kat gener\u00e1l hozz\u00e1juk. A sendf() f\u00fcggv\u00e9ny els\u0151 param\u00e9tere \u00edrja le a v\u00e1laszt, \u00e9s form\u00e1tuma megegyezik a parancsdeklar\u00e1ci\u00f3kkal. A gazdag\u00e9p gondoskodhat arr\u00f3l, hogy minden v\u00e1laszhoz visszah\u00edv\u00e1si funkci\u00f3t regisztr\u00e1ljon. Teh\u00e1t val\u00f3j\u00e1ban a parancsok lehet\u0151v\u00e9 teszik a gazdag\u00e9p sz\u00e1m\u00e1ra, hogy megh\u00edvja a C f\u00fcggv\u00e9nyeket a mikrovez\u00e9rl\u0151ben, a v\u00e1laszok pedig lehet\u0151v\u00e9 teszik, hogy a mikrovez\u00e9rl\u0151 szoftvere k\u00f3dot h\u00edvjon meg a gazdag\u00e9pben. A sendf() makr\u00f3 csak parancs vagy feladatkezel\u0151kb\u0151l h\u00edvhat\u00f3 meg, \u00e9s nem h\u00edvhat\u00f3 meg megszak\u00edt\u00e1sokb\u00f3l vagy id\u0151z\u00edt\u0151kb\u0151l. A k\u00f3dnak nem kell sendf()-t kiadnia a kapott parancsra v\u00e1laszul, nincs korl\u00e1tozva a sendf() megh\u00edv\u00e1s\u00e1nak sz\u00e1ma, \u00e9s a sendf()-t b\u00e1rmikor megh\u00edvhatja egy feladatkezel\u0151b\u0151l. Kimeneti v\u00e1laszok \u00b6 A hibakeres\u00e9s egyszer\u0171s\u00edt\u00e9se \u00e9rdek\u00e9ben van egy output() C f\u00fcggv\u00e9ny is. P\u00e9ld\u00e1ul: output(\"The value of %u is %s with size %u.\", x, buf, buf_len); Az output() f\u00fcggv\u00e9ny a printf() f\u00fcggv\u00e9nyhez hasonl\u00f3an haszn\u00e1lhat\u00f3. C\u00e9lja tetsz\u0151leges \u00fczenetek gener\u00e1l\u00e1sa \u00e9s form\u00e1z\u00e1sa emberi feldolgoz\u00e1sra. Felsorol\u00e1sok deklar\u00e1l\u00e1sa \u00b6 A felsorol\u00e1sok lehet\u0151v\u00e9 teszik a gazdak\u00f3d sz\u00e1m\u00e1ra, hogy a mikrokontroller \u00e1ltal eg\u00e9sz sz\u00e1mokk\u00e9nt kezelt param\u00e9terekhez karakterl\u00e1nc-azonos\u00edt\u00f3kat haszn\u00e1ljon. Ezeket a mikrokontroller k\u00f3dj\u00e1ban kell deklar\u00e1lni - p\u00e9ld\u00e1ul: DECL_ENUMERATION(\"spi_bus\", \"spi\", 0); DECL_ENUMERATION_RANGE(\"pin\", \"PC0\", 16, 8); Ha az els\u0151 p\u00e9ld\u00e1ban a DECL_ENUMERATION() makr\u00f3 felsorol\u00e1st defini\u00e1l minden olyan parancs/v\u00e1lasz \u00fczenethez, amelynek param\u00e9terneve \"spi_bus\" vagy \"_spi_bus\" ut\u00f3taggal rendelkezik. E param\u00e9terek eset\u00e9ben az \"SPI\" karakterl\u00e1nc \u00e9rv\u00e9nyes \u00e9rt\u00e9k, \u00e9s null\u00e1s eg\u00e9sz sz\u00e1m\u00e9rt\u00e9kkel ker\u00fcl tov\u00e1bb\u00edt\u00e1sra. Lehet\u0151s\u00e9g van felsorol\u00e1si tartom\u00e1ny kijel\u00f6l\u00e9s\u00e9re is. A m\u00e1sodik p\u00e9ld\u00e1ban egy \"pin\" param\u00e9ter (vagy b\u00e1rmely param\u00e9ter, amelynek ut\u00f3tagja \"_pin\") elfogadn\u00e1 a PC0, PC1, PC2, ..., PC7 \u00e9rt\u00e9keket. A karakterl\u00e1ncokat a 16, 17, 18, ..., ..., 23 eg\u00e9sz sz\u00e1mokkal kell tov\u00e1bb\u00edtani. \u00c1lland\u00f3k deklar\u00e1l\u00e1sa \u00b6 A konstansok is export\u00e1lhat\u00f3k. P\u00e9ld\u00e1ul a k\u00f6vetkez\u0151k\u00e9pp: DECL_CONSTANT(\"SERIAL_BAUD\", 250000); egy \"SERIAL_BAUD\" nev\u0171, 250000 \u00e9rt\u00e9k\u0171 konstanst export\u00e1lna a mikrokontrollerb\u0151l a gazdag\u00e9pre. Lehet\u0151s\u00e9g van olyan konstans deklar\u00e1l\u00e1s\u00e1ra is, amely egy karakterl\u00e1nc - p\u00e9ld\u00e1ul: DECL_CONSTANT_STR(\"MCU\", \"pru\"); Alacsony szint\u0171 \u00fczenetk\u00f3dol\u00e1s \u00b6 A fenti RPC-mechanizmus megval\u00f3s\u00edt\u00e1s\u00e1hoz minden egyes parancs \u00e9s v\u00e1lasz bin\u00e1ris form\u00e1tumba van k\u00f3dolva az \u00e1tvitelhez. Ez a szakasz az \u00e1tviteli rendszert \u00edrja le. \u00dczenetblokkok \u00b6 A gazdag\u00e9pt\u0151l a mikrovez\u00e9rl\u0151nek \u00e9s ford\u00edtva k\u00fcld\u00f6tt \u00f6sszes adat \"\u00fczenetblokkban\" tal\u00e1lhat\u00f3. Az \u00fczenetblokk k\u00e9t b\u00e1jtos fejl\u00e9ccel \u00e9s h\u00e1rom b\u00e1jtos \u00fczenettel rendelkezik. Az \u00fczenetblokkok form\u00e1tuma a k\u00f6vetkez\u0151: <1 byte length><1 byte sequence><n-byte content><2 byte crc><1 byte sync> A hosszb\u00e1jt tartalmazza az \u00fczenetblokkban l\u00e9v\u0151 b\u00e1jtok sz\u00e1m\u00e1t, bele\u00e9rtve a fejl\u00e9cet \u00e9s a k\u00f6vet\u0151b\u00e1jtokat (\u00edgy az \u00fczenet minim\u00e1lis hossza 5 b\u00e1jt). Az \u00fczenetblokk maxim\u00e1lis hossza jelenleg 64 b\u00e1jt. A szekvencia b\u00e1jt egy 4 bites szekvencia sz\u00e1mot tartalmaz az alacsony rend\u0171 bitekben, a magas rend\u0171 bitek pedig mindig 0x10-et tartalmaznak (a magas rend\u0171 bitek k\u00e9s\u0151bbi haszn\u00e1latra vannak fenntartva). A tartalmi b\u00e1jtok tetsz\u0151leges adatokat tartalmaznak, \u00e9s form\u00e1tumukat a k\u00f6vetkez\u0151 szakasz ismerteti. A crc b\u00e1jtok tartalmazz\u00e1k az \u00fczenetblokk 16 bites CCITT CRC \u00e9rt\u00e9k\u00e9t, bele\u00e9rtve a fejl\u00e9cb\u00e1jtokat, de kiv\u00e9ve az \u00fczenetb\u00e1jtokat. A szinkroniz\u00e1l\u00e1si b\u00e1jt 0x7e. Az \u00fczenetblokk form\u00e1tum\u00e1t a HDLC \u00fczenetkeretek ihlett\u00e9k. A HDLC-hez hasonl\u00f3an az \u00fczenetblokk opcion\u00e1lisan tartalmazhat egy tov\u00e1bbi szinkroniz\u00e1l\u00e1si karaktert a blokk elej\u00e9n. A HDLC-vel ellent\u00e9tben a szinkroniz\u00e1l\u00e1si karakter nem kiz\u00e1r\u00f3lagos a keretben, \u00e9s jelen lehet az \u00fczenetblokk tartalm\u00e1ban. \u00dczenetblokk tartalma \u00b6 Minden egyes, a gazdag\u00e9pr\u0151l a mikrokontrollernek k\u00fcld\u00f6tt \u00fczenetblokk tartalma nulla vagy t\u00f6bb \u00fczenetparancsb\u00f3l \u00e1ll\u00f3 sorozatot tartalmaz. Minden parancs egy V\u00e1ltoz\u00f3 hossz\u00fas\u00e1g\u00fa mennyis\u00e9g (VLQ) k\u00f3dolt eg\u00e9sz sz\u00e1m\u00fa parancs azonos\u00edt\u00f3val kezd\u0151dik, amelyet az adott parancsra vonatkoz\u00f3 nulla vagy t\u00f6bb VLQ param\u00e9ter k\u00f6vet. A k\u00f6vetkez\u0151 n\u00e9gy parancsot p\u00e9ld\u00e1ul egyetlen \u00fczenetblokkba helyezhetj\u00fck: update_digital_out oid=6 value=1 update_digital_out oid=5 value=0 get_config get_clock \u00e9s a k\u00f6vetkez\u0151 nyolc VLQ eg\u00e9sz sz\u00e1mba k\u00f3dolva: <id_update_digital_out><6><1><id_update_digital_out><5><0><id_get_config><id_get_clock> Az \u00fczenet tartalm\u00e1nak k\u00f3dol\u00e1s\u00e1hoz \u00e9s elemz\u00e9s\u00e9hez a gazdag\u00e9pnek \u00e9s a mikrokontrollernek meg kell egyeznie a parancs azonos\u00edt\u00f3iban \u00e9s az egyes parancsok param\u00e9tereinek sz\u00e1m\u00e1ban. \u00cdgy a fenti p\u00e9ld\u00e1ban mind a gazdag\u00e9p, mind a mikrokontroller tudja, hogy az \"id_update_digital_out\" parancsot mindig k\u00e9t param\u00e9ter k\u00f6veti, \u00e9s az \"id_get_config\" \u00e9s a \"id_get_clock\" parancsnak nulla param\u00e9tere van. A gazdag\u00e9p \u00e9s a mikrokontroller megosztja az \"adatsz\u00f3t\u00e1rat\", amely a parancsle\u00edr\u00e1sokat (pl. \"update_digital_out oid=%c value=%c\") eg\u00e9sz sz\u00e1m\u00fa parancs-azonos\u00edt\u00f3kra k\u00e9pezi le. Az adatok feldolgoz\u00e1sa sor\u00e1n az elemz\u0151 tudni fogja, hogy egy adott parancs-id ut\u00e1n meghat\u00e1rozott sz\u00e1m\u00fa VLQ-k\u00f3dolt param\u00e9tert v\u00e1rjon. A mikrokontrollerr\u0151l a gazdag\u00e9pnek k\u00fcld\u00f6tt blokkok \u00fczenettartalma ugyanezt a form\u00e1tumot k\u00f6veti. Ezekben az \u00fczenetekben szerepl\u0151 azonos\u00edt\u00f3k \"v\u00e1lasz azonos\u00edt\u00f3k\", de ugyanazt a c\u00e9lt szolg\u00e1lj\u00e1k \u00e9s ugyanazokat a k\u00f3dol\u00e1si szab\u00e1lyokat k\u00f6vetik. A gyakorlatban a mikrokontrollerr\u0151l a gazdag\u00e9pnek k\u00fcld\u00f6tt \u00fczenetblokkok soha nem tartalmaznak egyn\u00e9l t\u00f6bb v\u00e1laszt az \u00fczenetblokk tartalm\u00e1ban. V\u00e1ltoz\u00f3 hossz\u00fas\u00e1g\u00fa mennyis\u00e9gek \u00b6 A VLQ k\u00f3dolt eg\u00e9sz sz\u00e1mok \u00e1ltal\u00e1nos form\u00e1tum\u00e1r\u00f3l l\u00e1sd a wikipedia cikket . A Klipper olyan k\u00f3dol\u00e1si s\u00e9m\u00e1t haszn\u00e1l, amely t\u00e1mogatja a pozit\u00edv \u00e9s negat\u00edv eg\u00e9sz sz\u00e1mokat is. A null\u00e1hoz k\u00f6zeli eg\u00e9szek kevesebb b\u00e1jtot haszn\u00e1lnak a k\u00f3dol\u00e1shoz, \u00e9s a pozit\u00edv eg\u00e9szek k\u00f3dol\u00e1sa \u00e1ltal\u00e1ban kevesebb b\u00e1jtot haszn\u00e1l, mint a negat\u00edv eg\u00e9szek\u00e9. A k\u00f6vetkez\u0151 t\u00e1bl\u00e1zat mutatja, hogy az egyes eg\u00e9sz sz\u00e1mok k\u00f3dol\u00e1s\u00e1hoz h\u00e1ny b\u00e1jtra van sz\u00fcks\u00e9g: Eg\u00e9sz K\u00f3dolt m\u00e9ret -32 .. 95 1 -4096 .. 12287 2 -524288 .. 1572863 3 -67108864 .. 201326591 4 -2147483648 .. 4294967295 5 V\u00e1ltoz\u00f3 hossz\u00fas\u00e1g\u00fa karakterl\u00e1ncok \u00b6 A fenti k\u00f3dol\u00e1si szab\u00e1lyok al\u00f3li kiv\u00e9telk\u00e9nt, ha egy parancs vagy v\u00e1lasz param\u00e9tere dinamikus karakterl\u00e1nc, akkor a param\u00e9ter nem egyszer\u0171 VLQ eg\u00e9sz sz\u00e1mk\u00e9nt k\u00f3dol\u00f3dik. Ehelyett a k\u00f3dol\u00e1s \u00fagy t\u00f6rt\u00e9nik, hogy a hosszt VLQ k\u00f3dolt eg\u00e9sz sz\u00e1mk\u00e9nt tov\u00e1bb\u00edtj\u00e1k, amelyet maga a tartalom k\u00f6vet: <VLQ encoded length><n-byte contents> Az adatsz\u00f3t\u00e1rban tal\u00e1lhat\u00f3 parancsle\u00edr\u00e1sok lehet\u0151v\u00e9 teszik a gazdag\u00e9p \u00e9s a mikrokontroller sz\u00e1m\u00e1ra, hogy tudja, mely parancsparam\u00e9terek haszn\u00e1lnak egyszer\u0171 VLQ k\u00f3dol\u00e1st, \u00e9s mely param\u00e9terek string k\u00f3dol\u00e1st. Adatsz\u00f3t\u00e1r \u00b6 Ahhoz, hogy a mikrokontroller \u00e9s a gazdag\u00e9p k\u00f6z\u00f6tt \u00e9rtelmes kommunik\u00e1ci\u00f3 j\u00f6jj\u00f6n l\u00e9tre, mindk\u00e9t f\u00e9lnek meg kell \u00e1llapodnia egy \"adatsz\u00f3t\u00e1rban\". Ez az adatsz\u00f3t\u00e1r tartalmazza a parancsok \u00e9s v\u00e1laszok eg\u00e9sz\u00e9rt\u00e9k\u0171 azonos\u00edt\u00f3it \u00e9s azok le\u00edr\u00e1s\u00e1t. A mikrokontroller buildje a DECL_COMMAND() \u00e9s sendf() makr\u00f3k tartalm\u00e1t haszn\u00e1lja az adatsz\u00f3t\u00e1r l\u00e9trehoz\u00e1s\u00e1hoz. A build automatikusan egyedi azonos\u00edt\u00f3kat rendel minden parancshoz \u00e9s v\u00e1laszhoz. Ez a rendszer lehet\u0151v\u00e9 teszi, hogy a gazdag\u00e9p, \u00e9s a mikrokontroller k\u00f3dja z\u00f6kken\u0151mentesen haszn\u00e1ljon le\u00edr\u00f3, ember \u00e1ltal olvashat\u00f3 neveket, mik\u00f6zben minim\u00e1lis s\u00e1vsz\u00e9less\u00e9get haszn\u00e1l. A gazdag\u00e9p lek\u00e9rdezi az adatsz\u00f3t\u00e1rat, amikor el\u0151sz\u00f6r csatlakozik a mikrokontrollerhez. Amint ez megt\u00f6rt\u00e9nt az adatsz\u00f3t\u00e1rat haszn\u00e1lja az \u00f6sszes parancs k\u00f3dol\u00e1s\u00e1ra \u00e9s a mikrokontroller \u00f6sszes v\u00e1lasz\u00e1nak elemz\u00e9s\u00e9re. A gazdag\u00e9pnek teh\u00e1t dinamikus adatsz\u00f3t\u00e1rat kell kezelnie. A mikrokontroller szoftver\u00e9nek egyszer\u0171s\u00e9g\u00e9nek meg\u0151rz\u00e9se \u00e9rdek\u00e9ben azonban a mikrokontroller mindig a statikus (beford\u00edtott) adatsz\u00f3t\u00e1r\u00e1t haszn\u00e1lja. Az adatsz\u00f3t\u00e1rat a mikrokontrollerhez k\u00fcld\u00f6tt \"azonos\u00edt\u00f3\" parancsok seg\u00edts\u00e9g\u00e9vel lehet lek\u00e9rdezni. A mikrokontroller minden egyes azonos\u00edt\u00f3 parancsra egy \"identify_response\" \u00fczenettel v\u00e1laszol. Mivel erre a k\u00e9t parancsra az adatsz\u00f3t\u00e1r lek\u00e9rdez\u00e9se el\u0151tt van sz\u00fcks\u00e9g, az eg\u00e9sz sz\u00e1mok azonos\u00edt\u00f3i \u00e9s a param\u00e9tert\u00edpusok mind a mikrokontrollerben, mind a gazdag\u00e9pben szorosan k\u00f3dolva vannak. Az \"identify_response\" v\u00e1lasz azonos\u00edt\u00f3ja 0, az \"azonos\u00edt\u00f3\" parancs azonos\u00edt\u00f3ja 1. A kem\u00e9nyen k\u00f3dolt azonos\u00edt\u00f3kon k\u00edv\u00fcl az azonos\u00edt\u00f3 parancs \u00e9s v\u00e1lasz ugyan\u00fagy ker\u00fcl deklar\u00e1l\u00e1sra \u00e9s tov\u00e1bb\u00edt\u00e1sra, mint a t\u00f6bbi parancs \u00e9s v\u00e1lasz. Egyetlen m\u00e1s parancs vagy v\u00e1lasz sincs szorosan k\u00f3dolva. A tov\u00e1bb\u00edtott adatsz\u00f3t\u00e1r form\u00e1tuma egy zlib t\u00f6m\u00f6r\u00edtett JSON karakterl\u00e1nc. A mikrokontroller \u00e9p\u00edt\u00e9si folyamata l\u00e9trehozza a karakterl\u00e1ncot, t\u00f6m\u00f6r\u00edti, \u00e9s a mikrokontroller flash-j\u00e9nek sz\u00f6veges r\u00e9sz\u00e9ben t\u00e1rolja. Az adatsz\u00f3t\u00e1r j\u00f3val nagyobb lehet, mint a maxim\u00e1lis \u00fczenetblokk m\u00e9rete. A gazdag\u00e9p \u00fagy t\u00f6lti le, hogy t\u00f6bb azonos\u00edt\u00f3 parancsot k\u00fcld, amelyek az adatsz\u00f3t\u00e1r progressz\u00edv darabjait k\u00e9rik. Ha az \u00f6sszes darabot megkapta, a gazdag\u00e9p \u00f6ssze\u00e1ll\u00edtja a darabokat, kit\u00f6m\u00f6r\u00edti az adatokat, \u00e9s elemzi a tartalmukat. A kommunik\u00e1ci\u00f3s protokollra vonatkoz\u00f3 inform\u00e1ci\u00f3kon k\u00edv\u00fcl az adatsz\u00f3t\u00e1r tartalmazza a szoftver verzi\u00f3j\u00e1t, a (DECL_ENUMERATION \u00e1ltal meghat\u00e1rozott) felsorol\u00e1sokat \u00e9s a (DECL_CONSTANT \u00e1ltal meghat\u00e1rozott) konstansokat is. \u00dczenet\u00e1raml\u00e1s \u00b6 A gazdag\u00e9pr\u0151l a mikrokontrollerhez k\u00fcld\u00f6tt \u00fczenetparancsok hib\u00e1tlanok. A mikrokontroller ellen\u0151rzi a CRC-t \u00e9s a sorsz\u00e1mokat minden egyes \u00fczenetblokkban, hogy biztos\u00edtsa a parancsok pontoss\u00e1g\u00e1t \u00e9s sorrendis\u00e9g\u00e9t. A mikrokontroller mindig sorrendben dolgozza fel az \u00fczenetblokkokat. Ha a sorrendt\u0151l elt\u00e9r\u0151 blokkot kap, akkor azt \u00e9s a t\u00f6bbi sorrendt\u0151l elt\u00e9r\u0151 blokkot is elveti, m\u00edg helyes sorrend\u0171 blokkokat nem kap. Az alacsony szint\u0171 gazdag\u00e9p k\u00f3d egy automatikus \u00fajrak\u00fcld\u00e9si rendszert val\u00f3s\u00edt meg a mikrokontrollerhez k\u00fcld\u00f6tt elveszett \u00e9s hib\u00e1s \u00fczenetblokkok eset\u00e9ben. Ennek megk\u00f6nny\u00edt\u00e9se \u00e9rdek\u00e9ben a mikrokontroller minden egyes sikeresen fogadott \u00fczenetblokk ut\u00e1n egy \"ack \u00fczenetblokkot\" k\u00fcld. Az \u00e1llom\u00e1s minden egyes blokk elk\u00fcld\u00e9se ut\u00e1n id\u0151korl\u00e1tot \u00e1ll\u00edt be, \u00e9s ha az id\u0151korl\u00e1t lej\u00e1r an\u00e9lk\u00fcl, hogy a megfelel\u0151 \"ack\" \u00fczenetet megkapta volna, akkor \u00fajrak\u00fcldi. Ezen t\u00falmen\u0151en, ha a mikrokontroller hib\u00e1s vagy rendellenes blokkot \u00e9szlel, a gyors \u00fajrak\u00fcld\u00e9s megk\u00f6nny\u00edt\u00e9se \u00e9rdek\u00e9ben egy \"nak \u00fczenetblokkot\" k\u00fcldhet. Az \"ack\" egy \u00fcres tartalm\u00fa (azaz 5 b\u00e1jtos) \u00fczenetblokk, amelynek sorsz\u00e1ma nagyobb, mint az utols\u00f3 fogadott gazdag\u00e9p sorsz\u00e1ma. A \"nak\" egy \u00fcres tartalm\u00fa \u00fczenetblokk, amelynek sorsz\u00e1ma kisebb, mint az utols\u00f3 fogadott gazdag\u00e9p sorsz\u00e1ma. A protokoll megk\u00f6nny\u00edti az \"ablakos\" \u00e1tviteli rendszert, \u00edgy a fogad\u00f3 egyszerre t\u00f6bb f\u00fcgg\u0151ben l\u00e9v\u0151 \u00fczenetblokkal rendelkezhet. (Ez azon a sok parancson k\u00edv\u00fcl, amelyek egy adott \u00fczenetblokkban jelen lehetnek.) Ez lehet\u0151v\u00e9 teszi a s\u00e1vsz\u00e9less\u00e9g maxim\u00e1lis kihaszn\u00e1l\u00e1s\u00e1t m\u00e9g \u00e1tviteli k\u00e9sedelem eset\u00e9n is. Az id\u0151korl\u00e1toz\u00e1s, az \u00fajrak\u00fcld\u00e9s, az ablakoz\u00e1s \u00e9s az ack mechanizmus a TCP hasonl\u00f3 mechanizmusai alapj\u00e1n k\u00e9sz\u00fclt. A m\u00e1sik ir\u00e1nyban a mikrokontrollerr\u0151l a gazdag\u00e9phez k\u00fcld\u00f6tt \u00fczenetblokkokat \u00fagy tervezt\u00e9k, hogy hibamentesek legyenek, de nincs biztos\u00edtott \u00e1tvitel\u00fck. (A v\u00e1laszok nem lehetnek hib\u00e1sak, de el\u0151fordulhat, hogy elt\u0171nnek.) Ez az\u00e9rt t\u00f6rt\u00e9nik, hogy a mikrokontrollerben egyszer\u0171 legyen a megval\u00f3s\u00edt\u00e1s. Nincs automatikus \u00fajrak\u00fcld\u00e9si rendszer a v\u00e1laszok sz\u00e1m\u00e1ra. A magas szint\u0171 k\u00f3dt\u00f3l elv\u00e1rhat\u00f3, hogy k\u00e9pes legyen kezelni az esetenk\u00e9nt hi\u00e1nyz\u00f3 v\u00e1laszokat (\u00e1ltal\u00e1ban a tartalom \u00fajrak\u00e9rdez\u00e9s\u00e9vel vagy a v\u00e1laszk\u00fcld\u00e9s ism\u00e9tl\u0151d\u0151 \u00fctemez\u00e9s\u00e9nek be\u00e1ll\u00edt\u00e1s\u00e1val). Az \u00e1llom\u00e1snak k\u00fcld\u00f6tt \u00fczenetblokkok sorsz\u00e1mmez\u0151je mindig eggyel nagyobb, mint az utols\u00f3, az \u00e1llom\u00e1sr\u00f3l kapott \u00fczenetblokkok sorsz\u00e1ma. Nem a v\u00e1lasz\u00fczenetblokkok sorrendj\u00e9nek nyomon k\u00f6vet\u00e9s\u00e9re szolg\u00e1l.","title":"Protokoll"},{"location":"Protocol.html#protokoll","text":"A Klipper \u00fczenetk\u00fcld\u0151 protokoll a Klipper gazdag\u00e9p szoftver \u00e9s a Klipper mikrovez\u00e9rl\u0151 szoftver k\u00f6z\u00f6tti alacsony szint\u0171 kommunik\u00e1ci\u00f3ra szolg\u00e1l. Magas szinten a protokoll felfoghat\u00f3 parancs \u00e9s v\u00e1laszkarakterl\u00e1ncok sorozat\u00e1nak, amelyeket t\u00f6m\u00f6r\u00edtenek, tov\u00e1bb\u00edtanak, majd feldolgoznak a fogad\u00f3 oldalon. Egy p\u00e9lda parancssorozat t\u00f6m\u00f6r\u00edtetlen, ember \u00e1ltal olvashat\u00f3 form\u00e1tumban \u00edgy n\u00e9zhet ki: set_digital_out pin=PA3 value=1 set_digital_out pin=PA7 value=1 schedule_digital_out oid=8 clock=4000000 value=0 queue_step oid=7 interval=7458 count=10 add=331 queue_step oid=7 interval=11717 count=4 add=1281 Az el\u00e9rhet\u0151 parancsokr\u00f3l az mcu parancsok dokumentumban olvashat b\u0151vebben. Tekintsd meg a hibakeres\u00e9s dokumentumot a G-k\u00f3d f\u00e1jl megfelel\u0151, ember \u00e1ltal olvashat\u00f3 mikrovez\u00e9rl\u0151 parancsaira t\u00f6rt\u00e9n\u0151 leford\u00edt\u00e1s\u00e1val kapcsolatban. Ez az oldal mag\u00e1nak a Klipper \u00fczenetk\u00fcld\u0151 protokollnak a magas szint\u0171 le\u00edr\u00e1s\u00e1t tartalmazza. Le\u00edrja az \u00fczenetek deklar\u00e1l\u00e1s\u00e1t, bin\u00e1ris form\u00e1tum\u00fa k\u00f3dol\u00e1s\u00e1t (a s\u00e9ma \"t\u00f6m\u00f6r\u00edt\u00e9s\u00e9t\") \u00e9s tov\u00e1bb\u00edt\u00e1s\u00e1t. A protokoll c\u00e9lja, hogy hibamentes kommunik\u00e1ci\u00f3s csatorn\u00e1t tegyen lehet\u0151v\u00e9 a gazdag\u00e9p \u00e9s a mikrovez\u00e9rl\u0151 k\u00f6z\u00f6tt, amely alacsony k\u00e9sleltet\u00e9s\u0171, alacsony s\u00e1vsz\u00e9less\u00e9g\u0171 \u00e9s alacsony bonyolults\u00e1g\u00fa a mikrovez\u00e9rl\u0151 sz\u00e1m\u00e1ra.","title":"Protokoll"},{"location":"Protocol.html#mikrovezerlo-interfesz","text":"A Klipper \u00e1tviteli protokoll egy RPC mechanizmusnak tekinthet\u0151 a mikrovez\u00e9rl\u0151 \u00e9s a gazdag\u00e9p k\u00f6z\u00f6tt. A mikrovez\u00e9rl\u0151 szoftver deklar\u00e1lja azokat a parancsokat, amelyeket a gazdag\u00e9p megh\u00edvhat, az \u00e1ltala gener\u00e1lt v\u00e1lasz\u00fczenetekkel egy\u00fctt. A gazdag\u00e9p ezeket az inform\u00e1ci\u00f3kat arra haszn\u00e1lja fel, hogy parancsot adjon a mikrokontrollernek a m\u0171veletek v\u00e9grehajt\u00e1s\u00e1ra \u00e9s az eredm\u00e9nyek \u00e9rtelmez\u00e9s\u00e9re.","title":"Mikrovez\u00e9rl\u0151 interf\u00e9sz"},{"location":"Protocol.html#parancsok-deklaralasa","text":"A mikrokontroller szoftvere deklar\u00e1l egy \"parancsot\" a DECL_COMMAND() makr\u00f3 haszn\u00e1lat\u00e1val a C k\u00f3dban. P\u00e9ld\u00e1ul: DECL_COMMAND(command_update_digital_out, \"update_digital_out oid=%c value=%c\"); A fenti egy \"update_digital_out\" nev\u0171 parancsot deklar\u00e1l. Ez lehet\u0151v\u00e9 teszi a gazdag\u00e9p sz\u00e1m\u00e1ra, hogy ezt a parancsot \"invoke\", ami a command_update_digital_out() C f\u00fcggv\u00e9ny v\u00e9grehajt\u00e1s\u00e1t eredm\u00e9nyezi a mikrovez\u00e9rl\u0151ben. A fentiek azt is jelzik, hogy a parancs k\u00e9t eg\u00e9sz param\u00e9tert vesz fel. A command_update_digital_out() C k\u00f3d v\u00e9grehajt\u00e1sakor egy t\u00f6mb ker\u00fcl \u00e1tad\u00e1sra, amely ezt a k\u00e9t eg\u00e9sz sz\u00e1mot tartalmazza. Az els\u0151 az 'oid'-nak, a m\u00e1sodik a 'value'-nak felel meg. \u00c1ltal\u00e1ban a param\u00e9terek le\u00edr\u00e1sa printf() st\u00edlus\u00fa szintaxissal t\u00f6rt\u00e9nik (pl. \"%u\"). A form\u00e1z\u00e1s k\u00f6zvetlen\u00fcl megfelel a parancsok ember \u00e1ltal olvashat\u00f3 n\u00e9zet\u00e9nek (pl. \"update_digital_out oid=7 value=1\"). A fenti p\u00e9ld\u00e1ban a \"value=\" a param\u00e9ter neve, a \"%c\" pedig azt jelzi, hogy a param\u00e9ter eg\u00e9sz sz\u00e1m. Bels\u0151leg a param\u00e9tern\u00e9v csak dokument\u00e1ci\u00f3k\u00e9nt haszn\u00e1latos. Ebben a p\u00e9ld\u00e1ban a \"%c\" is haszn\u00e1lhat\u00f3 dokument\u00e1ci\u00f3k\u00e9nt, amely jelzi, hogy a v\u00e1rt eg\u00e9sz sz\u00e1m 1 b\u00e1jt m\u00e9ret\u0171 (a deklar\u00e1lt eg\u00e9sz sz\u00e1m nem befoly\u00e1solja az elemz\u00e9st vagy a k\u00f3dol\u00e1st). A mikrovez\u00e9rl\u0151 szerkeszt\u0151 \u00f6sszegy\u0171jti a DECL_COMMAND()-al deklar\u00e1lt \u00f6sszes parancsot, meghat\u00e1rozza azok param\u00e9tereit, \u00e9s gondoskodik a megh\u00edv\u00e1sukr\u00f3l.","title":"Parancsok deklar\u00e1l\u00e1sa"},{"location":"Protocol.html#valaszok-deklaralasa","text":"A mikrovez\u00e9rl\u0151t\u0151l a gazdag\u00e9pnek t\u00f6rt\u00e9n\u0151 inform\u00e1ci\u00f3 k\u00fcld\u00e9s\u00e9hez \"v\u00e1lasz\" j\u00f6n l\u00e9tre. Ezek deklar\u00e1l\u00e1sa \u00e9s tov\u00e1bb\u00edt\u00e1sa a sendf() C makr\u00f3 haszn\u00e1lat\u00e1val t\u00f6rt\u00e9nik. P\u00e9ld\u00e1ul: sendf(\"status clock=%u status=%c\", sched_read_time(), sched_is_shutdown()); A fenti egy \"\u00e1llapot\" v\u00e1lasz\u00fczenetet k\u00fcld, amely k\u00e9t eg\u00e9sz param\u00e9tert (\"\u00f3ra\" \u00e9s \"\u00e1llapot\") tartalmaz. A mikrovez\u00e9rl\u0151 szerkeszt\u0151 automatikusan megtal\u00e1lja az \u00f6sszes sendf() h\u00edv\u00e1st, \u00e9s k\u00f3dol\u00f3kat gener\u00e1l hozz\u00e1juk. A sendf() f\u00fcggv\u00e9ny els\u0151 param\u00e9tere \u00edrja le a v\u00e1laszt, \u00e9s form\u00e1tuma megegyezik a parancsdeklar\u00e1ci\u00f3kkal. A gazdag\u00e9p gondoskodhat arr\u00f3l, hogy minden v\u00e1laszhoz visszah\u00edv\u00e1si funkci\u00f3t regisztr\u00e1ljon. Teh\u00e1t val\u00f3j\u00e1ban a parancsok lehet\u0151v\u00e9 teszik a gazdag\u00e9p sz\u00e1m\u00e1ra, hogy megh\u00edvja a C f\u00fcggv\u00e9nyeket a mikrovez\u00e9rl\u0151ben, a v\u00e1laszok pedig lehet\u0151v\u00e9 teszik, hogy a mikrovez\u00e9rl\u0151 szoftvere k\u00f3dot h\u00edvjon meg a gazdag\u00e9pben. A sendf() makr\u00f3 csak parancs vagy feladatkezel\u0151kb\u0151l h\u00edvhat\u00f3 meg, \u00e9s nem h\u00edvhat\u00f3 meg megszak\u00edt\u00e1sokb\u00f3l vagy id\u0151z\u00edt\u0151kb\u0151l. A k\u00f3dnak nem kell sendf()-t kiadnia a kapott parancsra v\u00e1laszul, nincs korl\u00e1tozva a sendf() megh\u00edv\u00e1s\u00e1nak sz\u00e1ma, \u00e9s a sendf()-t b\u00e1rmikor megh\u00edvhatja egy feladatkezel\u0151b\u0151l.","title":"V\u00e1laszok deklar\u00e1l\u00e1sa"},{"location":"Protocol.html#kimeneti-valaszok","text":"A hibakeres\u00e9s egyszer\u0171s\u00edt\u00e9se \u00e9rdek\u00e9ben van egy output() C f\u00fcggv\u00e9ny is. P\u00e9ld\u00e1ul: output(\"The value of %u is %s with size %u.\", x, buf, buf_len); Az output() f\u00fcggv\u00e9ny a printf() f\u00fcggv\u00e9nyhez hasonl\u00f3an haszn\u00e1lhat\u00f3. C\u00e9lja tetsz\u0151leges \u00fczenetek gener\u00e1l\u00e1sa \u00e9s form\u00e1z\u00e1sa emberi feldolgoz\u00e1sra.","title":"Kimeneti v\u00e1laszok"},{"location":"Protocol.html#felsorolasok-deklaralasa","text":"A felsorol\u00e1sok lehet\u0151v\u00e9 teszik a gazdak\u00f3d sz\u00e1m\u00e1ra, hogy a mikrokontroller \u00e1ltal eg\u00e9sz sz\u00e1mokk\u00e9nt kezelt param\u00e9terekhez karakterl\u00e1nc-azonos\u00edt\u00f3kat haszn\u00e1ljon. Ezeket a mikrokontroller k\u00f3dj\u00e1ban kell deklar\u00e1lni - p\u00e9ld\u00e1ul: DECL_ENUMERATION(\"spi_bus\", \"spi\", 0); DECL_ENUMERATION_RANGE(\"pin\", \"PC0\", 16, 8); Ha az els\u0151 p\u00e9ld\u00e1ban a DECL_ENUMERATION() makr\u00f3 felsorol\u00e1st defini\u00e1l minden olyan parancs/v\u00e1lasz \u00fczenethez, amelynek param\u00e9terneve \"spi_bus\" vagy \"_spi_bus\" ut\u00f3taggal rendelkezik. E param\u00e9terek eset\u00e9ben az \"SPI\" karakterl\u00e1nc \u00e9rv\u00e9nyes \u00e9rt\u00e9k, \u00e9s null\u00e1s eg\u00e9sz sz\u00e1m\u00e9rt\u00e9kkel ker\u00fcl tov\u00e1bb\u00edt\u00e1sra. Lehet\u0151s\u00e9g van felsorol\u00e1si tartom\u00e1ny kijel\u00f6l\u00e9s\u00e9re is. A m\u00e1sodik p\u00e9ld\u00e1ban egy \"pin\" param\u00e9ter (vagy b\u00e1rmely param\u00e9ter, amelynek ut\u00f3tagja \"_pin\") elfogadn\u00e1 a PC0, PC1, PC2, ..., PC7 \u00e9rt\u00e9keket. A karakterl\u00e1ncokat a 16, 17, 18, ..., ..., 23 eg\u00e9sz sz\u00e1mokkal kell tov\u00e1bb\u00edtani.","title":"Felsorol\u00e1sok deklar\u00e1l\u00e1sa"},{"location":"Protocol.html#allandok-deklaralasa","text":"A konstansok is export\u00e1lhat\u00f3k. P\u00e9ld\u00e1ul a k\u00f6vetkez\u0151k\u00e9pp: DECL_CONSTANT(\"SERIAL_BAUD\", 250000); egy \"SERIAL_BAUD\" nev\u0171, 250000 \u00e9rt\u00e9k\u0171 konstanst export\u00e1lna a mikrokontrollerb\u0151l a gazdag\u00e9pre. Lehet\u0151s\u00e9g van olyan konstans deklar\u00e1l\u00e1s\u00e1ra is, amely egy karakterl\u00e1nc - p\u00e9ld\u00e1ul: DECL_CONSTANT_STR(\"MCU\", \"pru\");","title":"\u00c1lland\u00f3k deklar\u00e1l\u00e1sa"},{"location":"Protocol.html#alacsony-szintu-uzenetkodolas","text":"A fenti RPC-mechanizmus megval\u00f3s\u00edt\u00e1s\u00e1hoz minden egyes parancs \u00e9s v\u00e1lasz bin\u00e1ris form\u00e1tumba van k\u00f3dolva az \u00e1tvitelhez. Ez a szakasz az \u00e1tviteli rendszert \u00edrja le.","title":"Alacsony szint\u0171 \u00fczenetk\u00f3dol\u00e1s"},{"location":"Protocol.html#uzenetblokkok","text":"A gazdag\u00e9pt\u0151l a mikrovez\u00e9rl\u0151nek \u00e9s ford\u00edtva k\u00fcld\u00f6tt \u00f6sszes adat \"\u00fczenetblokkban\" tal\u00e1lhat\u00f3. Az \u00fczenetblokk k\u00e9t b\u00e1jtos fejl\u00e9ccel \u00e9s h\u00e1rom b\u00e1jtos \u00fczenettel rendelkezik. Az \u00fczenetblokkok form\u00e1tuma a k\u00f6vetkez\u0151: <1 byte length><1 byte sequence><n-byte content><2 byte crc><1 byte sync> A hosszb\u00e1jt tartalmazza az \u00fczenetblokkban l\u00e9v\u0151 b\u00e1jtok sz\u00e1m\u00e1t, bele\u00e9rtve a fejl\u00e9cet \u00e9s a k\u00f6vet\u0151b\u00e1jtokat (\u00edgy az \u00fczenet minim\u00e1lis hossza 5 b\u00e1jt). Az \u00fczenetblokk maxim\u00e1lis hossza jelenleg 64 b\u00e1jt. A szekvencia b\u00e1jt egy 4 bites szekvencia sz\u00e1mot tartalmaz az alacsony rend\u0171 bitekben, a magas rend\u0171 bitek pedig mindig 0x10-et tartalmaznak (a magas rend\u0171 bitek k\u00e9s\u0151bbi haszn\u00e1latra vannak fenntartva). A tartalmi b\u00e1jtok tetsz\u0151leges adatokat tartalmaznak, \u00e9s form\u00e1tumukat a k\u00f6vetkez\u0151 szakasz ismerteti. A crc b\u00e1jtok tartalmazz\u00e1k az \u00fczenetblokk 16 bites CCITT CRC \u00e9rt\u00e9k\u00e9t, bele\u00e9rtve a fejl\u00e9cb\u00e1jtokat, de kiv\u00e9ve az \u00fczenetb\u00e1jtokat. A szinkroniz\u00e1l\u00e1si b\u00e1jt 0x7e. Az \u00fczenetblokk form\u00e1tum\u00e1t a HDLC \u00fczenetkeretek ihlett\u00e9k. A HDLC-hez hasonl\u00f3an az \u00fczenetblokk opcion\u00e1lisan tartalmazhat egy tov\u00e1bbi szinkroniz\u00e1l\u00e1si karaktert a blokk elej\u00e9n. A HDLC-vel ellent\u00e9tben a szinkroniz\u00e1l\u00e1si karakter nem kiz\u00e1r\u00f3lagos a keretben, \u00e9s jelen lehet az \u00fczenetblokk tartalm\u00e1ban.","title":"\u00dczenetblokkok"},{"location":"Protocol.html#uzenetblokk-tartalma","text":"Minden egyes, a gazdag\u00e9pr\u0151l a mikrokontrollernek k\u00fcld\u00f6tt \u00fczenetblokk tartalma nulla vagy t\u00f6bb \u00fczenetparancsb\u00f3l \u00e1ll\u00f3 sorozatot tartalmaz. Minden parancs egy V\u00e1ltoz\u00f3 hossz\u00fas\u00e1g\u00fa mennyis\u00e9g (VLQ) k\u00f3dolt eg\u00e9sz sz\u00e1m\u00fa parancs azonos\u00edt\u00f3val kezd\u0151dik, amelyet az adott parancsra vonatkoz\u00f3 nulla vagy t\u00f6bb VLQ param\u00e9ter k\u00f6vet. A k\u00f6vetkez\u0151 n\u00e9gy parancsot p\u00e9ld\u00e1ul egyetlen \u00fczenetblokkba helyezhetj\u00fck: update_digital_out oid=6 value=1 update_digital_out oid=5 value=0 get_config get_clock \u00e9s a k\u00f6vetkez\u0151 nyolc VLQ eg\u00e9sz sz\u00e1mba k\u00f3dolva: <id_update_digital_out><6><1><id_update_digital_out><5><0><id_get_config><id_get_clock> Az \u00fczenet tartalm\u00e1nak k\u00f3dol\u00e1s\u00e1hoz \u00e9s elemz\u00e9s\u00e9hez a gazdag\u00e9pnek \u00e9s a mikrokontrollernek meg kell egyeznie a parancs azonos\u00edt\u00f3iban \u00e9s az egyes parancsok param\u00e9tereinek sz\u00e1m\u00e1ban. \u00cdgy a fenti p\u00e9ld\u00e1ban mind a gazdag\u00e9p, mind a mikrokontroller tudja, hogy az \"id_update_digital_out\" parancsot mindig k\u00e9t param\u00e9ter k\u00f6veti, \u00e9s az \"id_get_config\" \u00e9s a \"id_get_clock\" parancsnak nulla param\u00e9tere van. A gazdag\u00e9p \u00e9s a mikrokontroller megosztja az \"adatsz\u00f3t\u00e1rat\", amely a parancsle\u00edr\u00e1sokat (pl. \"update_digital_out oid=%c value=%c\") eg\u00e9sz sz\u00e1m\u00fa parancs-azonos\u00edt\u00f3kra k\u00e9pezi le. Az adatok feldolgoz\u00e1sa sor\u00e1n az elemz\u0151 tudni fogja, hogy egy adott parancs-id ut\u00e1n meghat\u00e1rozott sz\u00e1m\u00fa VLQ-k\u00f3dolt param\u00e9tert v\u00e1rjon. A mikrokontrollerr\u0151l a gazdag\u00e9pnek k\u00fcld\u00f6tt blokkok \u00fczenettartalma ugyanezt a form\u00e1tumot k\u00f6veti. Ezekben az \u00fczenetekben szerepl\u0151 azonos\u00edt\u00f3k \"v\u00e1lasz azonos\u00edt\u00f3k\", de ugyanazt a c\u00e9lt szolg\u00e1lj\u00e1k \u00e9s ugyanazokat a k\u00f3dol\u00e1si szab\u00e1lyokat k\u00f6vetik. A gyakorlatban a mikrokontrollerr\u0151l a gazdag\u00e9pnek k\u00fcld\u00f6tt \u00fczenetblokkok soha nem tartalmaznak egyn\u00e9l t\u00f6bb v\u00e1laszt az \u00fczenetblokk tartalm\u00e1ban.","title":"\u00dczenetblokk tartalma"},{"location":"Protocol.html#valtozo-hosszusagu-mennyisegek","text":"A VLQ k\u00f3dolt eg\u00e9sz sz\u00e1mok \u00e1ltal\u00e1nos form\u00e1tum\u00e1r\u00f3l l\u00e1sd a wikipedia cikket . A Klipper olyan k\u00f3dol\u00e1si s\u00e9m\u00e1t haszn\u00e1l, amely t\u00e1mogatja a pozit\u00edv \u00e9s negat\u00edv eg\u00e9sz sz\u00e1mokat is. A null\u00e1hoz k\u00f6zeli eg\u00e9szek kevesebb b\u00e1jtot haszn\u00e1lnak a k\u00f3dol\u00e1shoz, \u00e9s a pozit\u00edv eg\u00e9szek k\u00f3dol\u00e1sa \u00e1ltal\u00e1ban kevesebb b\u00e1jtot haszn\u00e1l, mint a negat\u00edv eg\u00e9szek\u00e9. A k\u00f6vetkez\u0151 t\u00e1bl\u00e1zat mutatja, hogy az egyes eg\u00e9sz sz\u00e1mok k\u00f3dol\u00e1s\u00e1hoz h\u00e1ny b\u00e1jtra van sz\u00fcks\u00e9g: Eg\u00e9sz K\u00f3dolt m\u00e9ret -32 .. 95 1 -4096 .. 12287 2 -524288 .. 1572863 3 -67108864 .. 201326591 4 -2147483648 .. 4294967295 5","title":"V\u00e1ltoz\u00f3 hossz\u00fas\u00e1g\u00fa mennyis\u00e9gek"},{"location":"Protocol.html#valtozo-hosszusagu-karakterlancok","text":"A fenti k\u00f3dol\u00e1si szab\u00e1lyok al\u00f3li kiv\u00e9telk\u00e9nt, ha egy parancs vagy v\u00e1lasz param\u00e9tere dinamikus karakterl\u00e1nc, akkor a param\u00e9ter nem egyszer\u0171 VLQ eg\u00e9sz sz\u00e1mk\u00e9nt k\u00f3dol\u00f3dik. Ehelyett a k\u00f3dol\u00e1s \u00fagy t\u00f6rt\u00e9nik, hogy a hosszt VLQ k\u00f3dolt eg\u00e9sz sz\u00e1mk\u00e9nt tov\u00e1bb\u00edtj\u00e1k, amelyet maga a tartalom k\u00f6vet: <VLQ encoded length><n-byte contents> Az adatsz\u00f3t\u00e1rban tal\u00e1lhat\u00f3 parancsle\u00edr\u00e1sok lehet\u0151v\u00e9 teszik a gazdag\u00e9p \u00e9s a mikrokontroller sz\u00e1m\u00e1ra, hogy tudja, mely parancsparam\u00e9terek haszn\u00e1lnak egyszer\u0171 VLQ k\u00f3dol\u00e1st, \u00e9s mely param\u00e9terek string k\u00f3dol\u00e1st.","title":"V\u00e1ltoz\u00f3 hossz\u00fas\u00e1g\u00fa karakterl\u00e1ncok"},{"location":"Protocol.html#adatszotar","text":"Ahhoz, hogy a mikrokontroller \u00e9s a gazdag\u00e9p k\u00f6z\u00f6tt \u00e9rtelmes kommunik\u00e1ci\u00f3 j\u00f6jj\u00f6n l\u00e9tre, mindk\u00e9t f\u00e9lnek meg kell \u00e1llapodnia egy \"adatsz\u00f3t\u00e1rban\". Ez az adatsz\u00f3t\u00e1r tartalmazza a parancsok \u00e9s v\u00e1laszok eg\u00e9sz\u00e9rt\u00e9k\u0171 azonos\u00edt\u00f3it \u00e9s azok le\u00edr\u00e1s\u00e1t. A mikrokontroller buildje a DECL_COMMAND() \u00e9s sendf() makr\u00f3k tartalm\u00e1t haszn\u00e1lja az adatsz\u00f3t\u00e1r l\u00e9trehoz\u00e1s\u00e1hoz. A build automatikusan egyedi azonos\u00edt\u00f3kat rendel minden parancshoz \u00e9s v\u00e1laszhoz. Ez a rendszer lehet\u0151v\u00e9 teszi, hogy a gazdag\u00e9p, \u00e9s a mikrokontroller k\u00f3dja z\u00f6kken\u0151mentesen haszn\u00e1ljon le\u00edr\u00f3, ember \u00e1ltal olvashat\u00f3 neveket, mik\u00f6zben minim\u00e1lis s\u00e1vsz\u00e9less\u00e9get haszn\u00e1l. A gazdag\u00e9p lek\u00e9rdezi az adatsz\u00f3t\u00e1rat, amikor el\u0151sz\u00f6r csatlakozik a mikrokontrollerhez. Amint ez megt\u00f6rt\u00e9nt az adatsz\u00f3t\u00e1rat haszn\u00e1lja az \u00f6sszes parancs k\u00f3dol\u00e1s\u00e1ra \u00e9s a mikrokontroller \u00f6sszes v\u00e1lasz\u00e1nak elemz\u00e9s\u00e9re. A gazdag\u00e9pnek teh\u00e1t dinamikus adatsz\u00f3t\u00e1rat kell kezelnie. A mikrokontroller szoftver\u00e9nek egyszer\u0171s\u00e9g\u00e9nek meg\u0151rz\u00e9se \u00e9rdek\u00e9ben azonban a mikrokontroller mindig a statikus (beford\u00edtott) adatsz\u00f3t\u00e1r\u00e1t haszn\u00e1lja. Az adatsz\u00f3t\u00e1rat a mikrokontrollerhez k\u00fcld\u00f6tt \"azonos\u00edt\u00f3\" parancsok seg\u00edts\u00e9g\u00e9vel lehet lek\u00e9rdezni. A mikrokontroller minden egyes azonos\u00edt\u00f3 parancsra egy \"identify_response\" \u00fczenettel v\u00e1laszol. Mivel erre a k\u00e9t parancsra az adatsz\u00f3t\u00e1r lek\u00e9rdez\u00e9se el\u0151tt van sz\u00fcks\u00e9g, az eg\u00e9sz sz\u00e1mok azonos\u00edt\u00f3i \u00e9s a param\u00e9tert\u00edpusok mind a mikrokontrollerben, mind a gazdag\u00e9pben szorosan k\u00f3dolva vannak. Az \"identify_response\" v\u00e1lasz azonos\u00edt\u00f3ja 0, az \"azonos\u00edt\u00f3\" parancs azonos\u00edt\u00f3ja 1. A kem\u00e9nyen k\u00f3dolt azonos\u00edt\u00f3kon k\u00edv\u00fcl az azonos\u00edt\u00f3 parancs \u00e9s v\u00e1lasz ugyan\u00fagy ker\u00fcl deklar\u00e1l\u00e1sra \u00e9s tov\u00e1bb\u00edt\u00e1sra, mint a t\u00f6bbi parancs \u00e9s v\u00e1lasz. Egyetlen m\u00e1s parancs vagy v\u00e1lasz sincs szorosan k\u00f3dolva. A tov\u00e1bb\u00edtott adatsz\u00f3t\u00e1r form\u00e1tuma egy zlib t\u00f6m\u00f6r\u00edtett JSON karakterl\u00e1nc. A mikrokontroller \u00e9p\u00edt\u00e9si folyamata l\u00e9trehozza a karakterl\u00e1ncot, t\u00f6m\u00f6r\u00edti, \u00e9s a mikrokontroller flash-j\u00e9nek sz\u00f6veges r\u00e9sz\u00e9ben t\u00e1rolja. Az adatsz\u00f3t\u00e1r j\u00f3val nagyobb lehet, mint a maxim\u00e1lis \u00fczenetblokk m\u00e9rete. A gazdag\u00e9p \u00fagy t\u00f6lti le, hogy t\u00f6bb azonos\u00edt\u00f3 parancsot k\u00fcld, amelyek az adatsz\u00f3t\u00e1r progressz\u00edv darabjait k\u00e9rik. Ha az \u00f6sszes darabot megkapta, a gazdag\u00e9p \u00f6ssze\u00e1ll\u00edtja a darabokat, kit\u00f6m\u00f6r\u00edti az adatokat, \u00e9s elemzi a tartalmukat. A kommunik\u00e1ci\u00f3s protokollra vonatkoz\u00f3 inform\u00e1ci\u00f3kon k\u00edv\u00fcl az adatsz\u00f3t\u00e1r tartalmazza a szoftver verzi\u00f3j\u00e1t, a (DECL_ENUMERATION \u00e1ltal meghat\u00e1rozott) felsorol\u00e1sokat \u00e9s a (DECL_CONSTANT \u00e1ltal meghat\u00e1rozott) konstansokat is.","title":"Adatsz\u00f3t\u00e1r"},{"location":"Protocol.html#uzenetaramlas","text":"A gazdag\u00e9pr\u0151l a mikrokontrollerhez k\u00fcld\u00f6tt \u00fczenetparancsok hib\u00e1tlanok. A mikrokontroller ellen\u0151rzi a CRC-t \u00e9s a sorsz\u00e1mokat minden egyes \u00fczenetblokkban, hogy biztos\u00edtsa a parancsok pontoss\u00e1g\u00e1t \u00e9s sorrendis\u00e9g\u00e9t. A mikrokontroller mindig sorrendben dolgozza fel az \u00fczenetblokkokat. Ha a sorrendt\u0151l elt\u00e9r\u0151 blokkot kap, akkor azt \u00e9s a t\u00f6bbi sorrendt\u0151l elt\u00e9r\u0151 blokkot is elveti, m\u00edg helyes sorrend\u0171 blokkokat nem kap. Az alacsony szint\u0171 gazdag\u00e9p k\u00f3d egy automatikus \u00fajrak\u00fcld\u00e9si rendszert val\u00f3s\u00edt meg a mikrokontrollerhez k\u00fcld\u00f6tt elveszett \u00e9s hib\u00e1s \u00fczenetblokkok eset\u00e9ben. Ennek megk\u00f6nny\u00edt\u00e9se \u00e9rdek\u00e9ben a mikrokontroller minden egyes sikeresen fogadott \u00fczenetblokk ut\u00e1n egy \"ack \u00fczenetblokkot\" k\u00fcld. Az \u00e1llom\u00e1s minden egyes blokk elk\u00fcld\u00e9se ut\u00e1n id\u0151korl\u00e1tot \u00e1ll\u00edt be, \u00e9s ha az id\u0151korl\u00e1t lej\u00e1r an\u00e9lk\u00fcl, hogy a megfelel\u0151 \"ack\" \u00fczenetet megkapta volna, akkor \u00fajrak\u00fcldi. Ezen t\u00falmen\u0151en, ha a mikrokontroller hib\u00e1s vagy rendellenes blokkot \u00e9szlel, a gyors \u00fajrak\u00fcld\u00e9s megk\u00f6nny\u00edt\u00e9se \u00e9rdek\u00e9ben egy \"nak \u00fczenetblokkot\" k\u00fcldhet. Az \"ack\" egy \u00fcres tartalm\u00fa (azaz 5 b\u00e1jtos) \u00fczenetblokk, amelynek sorsz\u00e1ma nagyobb, mint az utols\u00f3 fogadott gazdag\u00e9p sorsz\u00e1ma. A \"nak\" egy \u00fcres tartalm\u00fa \u00fczenetblokk, amelynek sorsz\u00e1ma kisebb, mint az utols\u00f3 fogadott gazdag\u00e9p sorsz\u00e1ma. A protokoll megk\u00f6nny\u00edti az \"ablakos\" \u00e1tviteli rendszert, \u00edgy a fogad\u00f3 egyszerre t\u00f6bb f\u00fcgg\u0151ben l\u00e9v\u0151 \u00fczenetblokkal rendelkezhet. (Ez azon a sok parancson k\u00edv\u00fcl, amelyek egy adott \u00fczenetblokkban jelen lehetnek.) Ez lehet\u0151v\u00e9 teszi a s\u00e1vsz\u00e9less\u00e9g maxim\u00e1lis kihaszn\u00e1l\u00e1s\u00e1t m\u00e9g \u00e1tviteli k\u00e9sedelem eset\u00e9n is. Az id\u0151korl\u00e1toz\u00e1s, az \u00fajrak\u00fcld\u00e9s, az ablakoz\u00e1s \u00e9s az ack mechanizmus a TCP hasonl\u00f3 mechanizmusai alapj\u00e1n k\u00e9sz\u00fclt. A m\u00e1sik ir\u00e1nyban a mikrokontrollerr\u0151l a gazdag\u00e9phez k\u00fcld\u00f6tt \u00fczenetblokkokat \u00fagy tervezt\u00e9k, hogy hibamentesek legyenek, de nincs biztos\u00edtott \u00e1tvitel\u00fck. (A v\u00e1laszok nem lehetnek hib\u00e1sak, de el\u0151fordulhat, hogy elt\u0171nnek.) Ez az\u00e9rt t\u00f6rt\u00e9nik, hogy a mikrokontrollerben egyszer\u0171 legyen a megval\u00f3s\u00edt\u00e1s. Nincs automatikus \u00fajrak\u00fcld\u00e9si rendszer a v\u00e1laszok sz\u00e1m\u00e1ra. A magas szint\u0171 k\u00f3dt\u00f3l elv\u00e1rhat\u00f3, hogy k\u00e9pes legyen kezelni az esetenk\u00e9nt hi\u00e1nyz\u00f3 v\u00e1laszokat (\u00e1ltal\u00e1ban a tartalom \u00fajrak\u00e9rdez\u00e9s\u00e9vel vagy a v\u00e1laszk\u00fcld\u00e9s ism\u00e9tl\u0151d\u0151 \u00fctemez\u00e9s\u00e9nek be\u00e1ll\u00edt\u00e1s\u00e1val). Az \u00e1llom\u00e1snak k\u00fcld\u00f6tt \u00fczenetblokkok sorsz\u00e1mmez\u0151je mindig eggyel nagyobb, mint az utols\u00f3, az \u00e1llom\u00e1sr\u00f3l kapott \u00fczenetblokkok sorsz\u00e1ma. Nem a v\u00e1lasz\u00fczenetblokkok sorrendj\u00e9nek nyomon k\u00f6vet\u00e9s\u00e9re szolg\u00e1l.","title":"\u00dczenet\u00e1raml\u00e1s"},{"location":"RPi_microcontroller.html","text":"RPi mikrokontroller \u00b6 Ez a dokumentum le\u00edrja a Klipper futtat\u00e1s\u00e1nak folyamat\u00e1t egy RPi-n, \u00e9s ugyanazt az RPi-t haszn\u00e1lja m\u00e1sodlagos MCU-k\u00e9nt. Mi\u00e9rt \u00e9rdemes az RPi-t m\u00e1sodlagos MCU-k\u00e9nt haszn\u00e1lni? \u00b6 A 3D nyomtat\u00f3k vez\u00e9rl\u00e9s\u00e9re szolg\u00e1l\u00f3 MCU-k gyakran korl\u00e1tozott \u00e9s el\u0151re konfigur\u00e1lt sz\u00e1m\u00fa szabad kimenettel rendelkeznek a f\u0151 nyomtat\u00e1si funkci\u00f3k (h\u0151ellen\u00e1ll\u00e1sok, extruderek, l\u00e9ptet\u0151k stb.) kezel\u00e9s\u00e9re. Az RPi haszn\u00e1lata, ahol a Klipper m\u00e1sodlagos MCU-k\u00e9nt van telep\u00edtve, lehet\u0151v\u00e9 teszi a GPIO-k \u00e9s az RPi kimeneteinek (I2C, SPI) k\u00f6zvetlen haszn\u00e1lat\u00e1t a klipperben an\u00e9lk\u00fcl, hogy Octoprint b\u0151v\u00edtm\u00e9nyeket (ha van ilyen) vagy k\u00fcls\u0151 programokat haszn\u00e1lva, amelyek lehet\u0151v\u00e9 teszik, hogy mindent vez\u00e9reljen a Klipper-en bel\u00fcl a nyomtat\u00e1si G-k\u00f3d. Figyelmeztet\u00e9s : Ha a te platformod egy Beaglebone , \u00e9s helyesen k\u00f6vetted a telep\u00edt\u00e9s l\u00e9p\u00e9seit, a Linux MCU m\u00e1r telep\u00edtve \u00e9s konfigur\u00e1lva van a rendszeredhez. Az rc szkript telep\u00edt\u00e9se \u00b6 Ha a gazdag\u00e9pet m\u00e1sodlagos MCU-k\u00e9nt szeretn\u00e9 haszn\u00e1lni, a klipper_mcu folyamatnak a klippy folyamat el\u0151tt kell futnia. A Klipper telep\u00edt\u00e9se ut\u00e1n telep\u00edtse a szkriptet. run: cd ~/klipper/ sudo cp \"./scripts/klipper-mcu-start.sh\" /etc/init.d/klipper_mcu sudo update-rc.d klipper_mcu defaults A mikrokontroller k\u00f3dj\u00e1nak elk\u00e9sz\u00edt\u00e9se \u00b6 A Klipper mikrokontroller k\u00f3dj\u00e1nak leford\u00edt\u00e1s\u00e1hoz kezd a \"Linux folyamat\" konfigur\u00e1l\u00e1s\u00e1val: cd ~/klipper/ make menuconfig A men\u00fcben \u00e1ll\u00edtsd be a \"Mikrokontroller architekt\u00fara\" \u00e9rt\u00e9ket \"Linux process,\"-re, majd mentsd \u00e9s l\u00e9pj ki. Az \u00faj mikrokontroller k\u00f3dj\u00e1nak elk\u00e9sz\u00edt\u00e9s\u00e9hez \u00e9s telep\u00edt\u00e9s\u00e9hez futtassa a k\u00f6vetkez\u0151t: sudo service klipper stop make flash sudo service klipper start Ha a klippy.log a /tmp/klipper_host_mcu -hoz val\u00f3 kapcsol\u00f3d\u00e1si k\u00eds\u00e9rletn\u00e9l \"Permission denied\" hib\u00e1t jelez, akkor a felhaszn\u00e1l\u00f3t hozz\u00e1 kell adnia a tty csoporthoz. A k\u00f6vetkez\u0151 parancs hozz\u00e1adja a \"pi\" felhaszn\u00e1l\u00f3t a tty csoporthoz: sudo usermod -a -G tty pi H\u00e1tralev\u0151 konfigur\u00e1ci\u00f3 \u00b6 Fejezze be a telep\u00edt\u00e9st a Klipper m\u00e1sodlagos MCU konfigur\u00e1l\u00e1s\u00e1val a RaspberryPi minta konfigur\u00e1ci\u00f3 \u00e9s a Multi MCU minta konfigur\u00e1ci\u00f3 utas\u00edt\u00e1sai szerint. V\u00e1laszthat\u00f3: SPI enged\u00e9lyez\u00e9se \u00b6 Gy\u0151z\u0151dj\u00fcnk meg r\u00f3la, hogy a Linux SPI-illeszt\u0151program enged\u00e9lyezve van a sudo raspi-config futtat\u00e1s\u00e1val \u00e9s az SPI enged\u00e9lyez\u00e9s\u00e9vel az \"Interfacing options\" men\u00fcben. V\u00e1laszthat\u00f3: I2C enged\u00e9lyez\u00e9se \u00b6 Gy\u0151z\u0151dj\u00fcnk meg r\u00f3la, hogy a Linux I2C illeszt\u0151program enged\u00e9lyezve van a sudo raspi-config futtat\u00e1s\u00e1val \u00e9s az I2C enged\u00e9lyez\u00e9s\u00e9vel az \"Interfacing options\" men\u00fcben. Ha az MPU gyorsul\u00e1sm\u00e9r\u0151j\u00e9nek I2C haszn\u00e1lat\u00e1t tervezz\u00fck, akkor a \u00e1tviteli sebess\u00e9get is 400000-re kell \u00e1ll\u00edtani a k\u00f6vetkez\u0151 m\u00f3don: dtparam=i2c_arm=on,i2c_arm_baudrate=400000 hozz\u00e1ad\u00e1sa/elhagy\u00e1sa a /boot/config-ban.txt (vagy /boot/firmware/config.txt n\u00e9h\u00e1ny disztr\u00f3ban). V\u00e1laszthat\u00f3: A megfelel\u0151 GPIO chip azonos\u00edt\u00e1sa \u00b6 A Raspberry Pi-n \u00e9s sok kl\u00f3non a GPIO-n l\u00e1that\u00f3 t\u0171k az els\u0151 GPIO chiphez tartoznak. Ez\u00e9rt a klipperben egyszer\u0171en \u00fagy haszn\u00e1lhat\u00f3k, hogy a gpio0..n n\u00e9vvel hivatkozunk r\u00e1juk. Vannak azonban olyan esetek, amikor a kitett t\u0171k az els\u0151t\u0151l elt\u00e9r\u0151 GPIO chipekhez tartoznak. P\u00e9ld\u00e1ul egyes OrangePi modellek eset\u00e9ben, vagy ha Port Expander-t haszn\u00e1lunk. Ezekben az esetekben hasznos a Linux GPIO karakteres eszk\u00f6z Linux GPIO eszk\u00f6z* el\u00e9r\u00e9s\u00e9re szolg\u00e1l\u00f3 parancsok haszn\u00e1lata a konfigur\u00e1ci\u00f3 ellen\u0151rz\u00e9s\u00e9hez. A Linux GPIO character device - binary telep\u00edt\u00e9s\u00e9hez egy debian alap\u00fa disztrib\u00faci\u00f3 kell, mint p\u00e9ld\u00e1ul az octopi. Futtassa: sudo apt-get install gpiod A rendelkez\u00e9sre \u00e1ll\u00f3 GPIO chip ellen\u0151rz\u00e9s\u00e9hez futtassa: gpiodetect A t\u0171 sz\u00e1m\u00e1nak \u00e9s a t\u0171 el\u00e9rhet\u0151s\u00e9g\u00e9nek ellen\u0151rz\u00e9s\u00e9re futtassa: gpioinfo A kiv\u00e1lasztott t\u0171 \u00edgy a konfigur\u00e1ci\u00f3n bel\u00fcl gpiochip<n>/gpio<o> n\u00e9ven haszn\u00e1lhat\u00f3; ahol n a gpiodetect \u00e1ltal l\u00e1tott chipsz\u00e1m parancs \u00e1ltal l\u00e1tott sorsz\u00e1m, \u00e9s o a gpioinfo parancs \u00e1ltal l\u00e1tott sorsz\u00e1m. Figyelmeztet\u00e9s: csak unused jel\u00f6l\u00e9ssel rendelkez\u0151 GPIO haszn\u00e1lhat\u00f3. A line nem haszn\u00e1lhat\u00f3 egyszerre t\u00f6bb folyamatban. P\u00e9ld\u00e1ul egy RPi 3B+, ahol a klipper haszn\u00e1lja a GPIO20-at, egy kapcsol\u00f3: $ gpiodetect gpiochip0 [pinctrl-bcm2835] (54 lines) gpiochip1 [raspberrypi-exp-gpio] (8 lines) $ gpioinfo gpiochip0 - 54 lines: line 0: unnamed unused input active-high line 1: unnamed unused input active-high line 2: unnamed unused input active-high line 3: unnamed unused input active-high line 4: unnamed unused input active-high line 5: unnamed unused input active-high line 6: unnamed unused input active-high line 7: unnamed unused input active-high line 8: unnamed unused input active-high line 9: unnamed unused input active-high line 10: unnamed unused input active-high line 11: unnamed unused input active-high line 12: unnamed unused input active-high line 13: unnamed unused input active-high line 14: unnamed unused input active-high line 15: unnamed unused input active-high line 16: unnamed unused input active-high line 17: unnamed unused input active-high line 18: unnamed unused input active-high line 19: unnamed unused input active-high line 20: unnamed \"klipper\" output active-high [used] line 21: unnamed unused input active-high line 22: unnamed unused input active-high line 23: unnamed unused input active-high line 24: unnamed unused input active-high line 25: unnamed unused input active-high line 26: unnamed unused input active-high line 27: unnamed unused input active-high line 28: unnamed unused input active-high line 29: unnamed \"led0\" output active-high [used] line 30: unnamed unused input active-high line 31: unnamed unused input active-high line 32: unnamed unused input active-high line 33: unnamed unused input active-high line 34: unnamed unused input active-high line 35: unnamed unused input active-high line 36: unnamed unused input active-high line 37: unnamed unused input active-high line 38: unnamed unused input active-high line 39: unnamed unused input active-high line 40: unnamed unused input active-high line 41: unnamed unused input active-high line 42: unnamed unused input active-high line 43: unnamed unused input active-high line 44: unnamed unused input active-high line 45: unnamed unused input active-high line 46: unnamed unused input active-high line 47: unnamed unused input active-high line 48: unnamed unused input active-high line 49: unnamed unused input active-high line 50: unnamed unused input active-high line 51: unnamed unused input active-high line 52: unnamed unused input active-high line 53: unnamed unused input active-high gpiochip1 - 8 lines: line 0: unnamed unused input active-high line 1: unnamed unused input active-high line 2: unnamed \"led1\" output active-low [used] line 3: unnamed unused input active-high line 4: unnamed unused input active-high line 5: unnamed unused input active-high line 6: unnamed unused input active-high line 7: unnamed unused input active-high V\u00e1laszthat\u00f3: Hardveres PWM \u00b6 A Raspberry Pi k\u00e9t PWM csatorn\u00e1val (PWM0 \u00e9s PWM1) rendelkezik, amelyek a fejl\u00e9cen l\u00e1that\u00f3k, vagy ha nem, akkor a megl\u00e9v\u0151 GPIO \u00e9rintkez\u0151kh\u00f6z ir\u00e1ny\u00edthat\u00f3k. A Linux mcu d\u00e9mon a pwmchip sysfs interf\u00e9szt haszn\u00e1lja a hardveres PWM eszk\u00f6z\u00f6k vez\u00e9rl\u00e9s\u00e9re a Linux gazdag\u00e9peken. A PWM sysfs interf\u00e9sz alap\u00e9rtelmez\u00e9s szerint nincs kit\u00e9ve a Raspberry-n, \u00e9s a /boot/config.txt egy sor hozz\u00e1ad\u00e1s\u00e1val aktiv\u00e1lhat\u00f3: # A pwmchip sysfs fel\u00fclet enged\u00e9lyez\u00e9se dtoverlay=pwm,pin=12,func=4 Ez a p\u00e9lda csak a PWM0-t enged\u00e9lyezi, \u00e9s a GPIO12-re ir\u00e1ny\u00edtja. Ha mindk\u00e9t PWM csatorn\u00e1t enged\u00e9lyezni kell, haszn\u00e1lhatod a pwm-2chan parancsot. Az \u00e1tfed\u00e9s nem teszi ki a PWM sort a sysfs-en a rendszerind\u00edt\u00e1skor, \u00e9s azt a PWM csatorna sz\u00e1m\u00e1t a /sys/class/pwm/pwmchip0/export echo'ing-be kell export\u00e1lni: echo 0 > /sys/class/pwm/pwmchip0/export Ez l\u00e9trehozza a /sys/class/pwm/pwmchip0/pwm0 eszk\u00f6zt a f\u00e1jlrendszerben. A legegyszer\u0171bb, ha ezt a /etc/rc.local sor el\u0151tt az exit 0 sorba \u00edrjuk be. Ha a sysfs a hely\u00e9n van, akkor most m\u00e1r haszn\u00e1lhatod a PWM csatorn\u00e1t vagy csatorn\u00e1kat, ha a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3t hozz\u00e1adod a printer.cfg f\u00e1jlhoz: [output_pin caselight] pin: host:pwmchip0/pwm0 pwm: True hardware_pwm: True cycle_time: 0.000001 Ez hozz\u00e1adja a hardveres PWM vez\u00e9rl\u00e9st a Pi GPIO12-h\u00f6z (mivel az \u00e1tfed\u00e9s \u00fagy volt konfigur\u00e1lva, hogy a PWM0-t a pin=12-re ir\u00e1ny\u00edtsa). A PWM0 a GPIO12 \u00e9s a GPIO18 a PWM1 a GPIO13 \u00e9s a GPIO19 fel\u00e9 ir\u00e1ny\u00edthat\u00f3: PWM gpio PIN Func 0 12 4 0 18 2 1 13 4 1 19 2","title":"RPi mikrokontroller"},{"location":"RPi_microcontroller.html#rpi-mikrokontroller","text":"Ez a dokumentum le\u00edrja a Klipper futtat\u00e1s\u00e1nak folyamat\u00e1t egy RPi-n, \u00e9s ugyanazt az RPi-t haszn\u00e1lja m\u00e1sodlagos MCU-k\u00e9nt.","title":"RPi mikrokontroller"},{"location":"RPi_microcontroller.html#miert-erdemes-az-rpi-t-masodlagos-mcu-kent-hasznalni","text":"A 3D nyomtat\u00f3k vez\u00e9rl\u00e9s\u00e9re szolg\u00e1l\u00f3 MCU-k gyakran korl\u00e1tozott \u00e9s el\u0151re konfigur\u00e1lt sz\u00e1m\u00fa szabad kimenettel rendelkeznek a f\u0151 nyomtat\u00e1si funkci\u00f3k (h\u0151ellen\u00e1ll\u00e1sok, extruderek, l\u00e9ptet\u0151k stb.) kezel\u00e9s\u00e9re. Az RPi haszn\u00e1lata, ahol a Klipper m\u00e1sodlagos MCU-k\u00e9nt van telep\u00edtve, lehet\u0151v\u00e9 teszi a GPIO-k \u00e9s az RPi kimeneteinek (I2C, SPI) k\u00f6zvetlen haszn\u00e1lat\u00e1t a klipperben an\u00e9lk\u00fcl, hogy Octoprint b\u0151v\u00edtm\u00e9nyeket (ha van ilyen) vagy k\u00fcls\u0151 programokat haszn\u00e1lva, amelyek lehet\u0151v\u00e9 teszik, hogy mindent vez\u00e9reljen a Klipper-en bel\u00fcl a nyomtat\u00e1si G-k\u00f3d. Figyelmeztet\u00e9s : Ha a te platformod egy Beaglebone , \u00e9s helyesen k\u00f6vetted a telep\u00edt\u00e9s l\u00e9p\u00e9seit, a Linux MCU m\u00e1r telep\u00edtve \u00e9s konfigur\u00e1lva van a rendszeredhez.","title":"Mi\u00e9rt \u00e9rdemes az RPi-t m\u00e1sodlagos MCU-k\u00e9nt haszn\u00e1lni?"},{"location":"RPi_microcontroller.html#az-rc-szkript-telepitese","text":"Ha a gazdag\u00e9pet m\u00e1sodlagos MCU-k\u00e9nt szeretn\u00e9 haszn\u00e1lni, a klipper_mcu folyamatnak a klippy folyamat el\u0151tt kell futnia. A Klipper telep\u00edt\u00e9se ut\u00e1n telep\u00edtse a szkriptet. run: cd ~/klipper/ sudo cp \"./scripts/klipper-mcu-start.sh\" /etc/init.d/klipper_mcu sudo update-rc.d klipper_mcu defaults","title":"Az rc szkript telep\u00edt\u00e9se"},{"location":"RPi_microcontroller.html#a-mikrokontroller-kodjanak-elkeszitese","text":"A Klipper mikrokontroller k\u00f3dj\u00e1nak leford\u00edt\u00e1s\u00e1hoz kezd a \"Linux folyamat\" konfigur\u00e1l\u00e1s\u00e1val: cd ~/klipper/ make menuconfig A men\u00fcben \u00e1ll\u00edtsd be a \"Mikrokontroller architekt\u00fara\" \u00e9rt\u00e9ket \"Linux process,\"-re, majd mentsd \u00e9s l\u00e9pj ki. Az \u00faj mikrokontroller k\u00f3dj\u00e1nak elk\u00e9sz\u00edt\u00e9s\u00e9hez \u00e9s telep\u00edt\u00e9s\u00e9hez futtassa a k\u00f6vetkez\u0151t: sudo service klipper stop make flash sudo service klipper start Ha a klippy.log a /tmp/klipper_host_mcu -hoz val\u00f3 kapcsol\u00f3d\u00e1si k\u00eds\u00e9rletn\u00e9l \"Permission denied\" hib\u00e1t jelez, akkor a felhaszn\u00e1l\u00f3t hozz\u00e1 kell adnia a tty csoporthoz. A k\u00f6vetkez\u0151 parancs hozz\u00e1adja a \"pi\" felhaszn\u00e1l\u00f3t a tty csoporthoz: sudo usermod -a -G tty pi","title":"A mikrokontroller k\u00f3dj\u00e1nak elk\u00e9sz\u00edt\u00e9se"},{"location":"RPi_microcontroller.html#hatralevo-konfiguracio","text":"Fejezze be a telep\u00edt\u00e9st a Klipper m\u00e1sodlagos MCU konfigur\u00e1l\u00e1s\u00e1val a RaspberryPi minta konfigur\u00e1ci\u00f3 \u00e9s a Multi MCU minta konfigur\u00e1ci\u00f3 utas\u00edt\u00e1sai szerint.","title":"H\u00e1tralev\u0151 konfigur\u00e1ci\u00f3"},{"location":"RPi_microcontroller.html#valaszthato-spi-engedelyezese","text":"Gy\u0151z\u0151dj\u00fcnk meg r\u00f3la, hogy a Linux SPI-illeszt\u0151program enged\u00e9lyezve van a sudo raspi-config futtat\u00e1s\u00e1val \u00e9s az SPI enged\u00e9lyez\u00e9s\u00e9vel az \"Interfacing options\" men\u00fcben.","title":"V\u00e1laszthat\u00f3: SPI enged\u00e9lyez\u00e9se"},{"location":"RPi_microcontroller.html#valaszthato-i2c-engedelyezese","text":"Gy\u0151z\u0151dj\u00fcnk meg r\u00f3la, hogy a Linux I2C illeszt\u0151program enged\u00e9lyezve van a sudo raspi-config futtat\u00e1s\u00e1val \u00e9s az I2C enged\u00e9lyez\u00e9s\u00e9vel az \"Interfacing options\" men\u00fcben. Ha az MPU gyorsul\u00e1sm\u00e9r\u0151j\u00e9nek I2C haszn\u00e1lat\u00e1t tervezz\u00fck, akkor a \u00e1tviteli sebess\u00e9get is 400000-re kell \u00e1ll\u00edtani a k\u00f6vetkez\u0151 m\u00f3don: dtparam=i2c_arm=on,i2c_arm_baudrate=400000 hozz\u00e1ad\u00e1sa/elhagy\u00e1sa a /boot/config-ban.txt (vagy /boot/firmware/config.txt n\u00e9h\u00e1ny disztr\u00f3ban).","title":"V\u00e1laszthat\u00f3: I2C enged\u00e9lyez\u00e9se"},{"location":"RPi_microcontroller.html#valaszthato-a-megfelelo-gpio-chip-azonositasa","text":"A Raspberry Pi-n \u00e9s sok kl\u00f3non a GPIO-n l\u00e1that\u00f3 t\u0171k az els\u0151 GPIO chiphez tartoznak. Ez\u00e9rt a klipperben egyszer\u0171en \u00fagy haszn\u00e1lhat\u00f3k, hogy a gpio0..n n\u00e9vvel hivatkozunk r\u00e1juk. Vannak azonban olyan esetek, amikor a kitett t\u0171k az els\u0151t\u0151l elt\u00e9r\u0151 GPIO chipekhez tartoznak. P\u00e9ld\u00e1ul egyes OrangePi modellek eset\u00e9ben, vagy ha Port Expander-t haszn\u00e1lunk. Ezekben az esetekben hasznos a Linux GPIO karakteres eszk\u00f6z Linux GPIO eszk\u00f6z* el\u00e9r\u00e9s\u00e9re szolg\u00e1l\u00f3 parancsok haszn\u00e1lata a konfigur\u00e1ci\u00f3 ellen\u0151rz\u00e9s\u00e9hez. A Linux GPIO character device - binary telep\u00edt\u00e9s\u00e9hez egy debian alap\u00fa disztrib\u00faci\u00f3 kell, mint p\u00e9ld\u00e1ul az octopi. Futtassa: sudo apt-get install gpiod A rendelkez\u00e9sre \u00e1ll\u00f3 GPIO chip ellen\u0151rz\u00e9s\u00e9hez futtassa: gpiodetect A t\u0171 sz\u00e1m\u00e1nak \u00e9s a t\u0171 el\u00e9rhet\u0151s\u00e9g\u00e9nek ellen\u0151rz\u00e9s\u00e9re futtassa: gpioinfo A kiv\u00e1lasztott t\u0171 \u00edgy a konfigur\u00e1ci\u00f3n bel\u00fcl gpiochip<n>/gpio<o> n\u00e9ven haszn\u00e1lhat\u00f3; ahol n a gpiodetect \u00e1ltal l\u00e1tott chipsz\u00e1m parancs \u00e1ltal l\u00e1tott sorsz\u00e1m, \u00e9s o a gpioinfo parancs \u00e1ltal l\u00e1tott sorsz\u00e1m. Figyelmeztet\u00e9s: csak unused jel\u00f6l\u00e9ssel rendelkez\u0151 GPIO haszn\u00e1lhat\u00f3. A line nem haszn\u00e1lhat\u00f3 egyszerre t\u00f6bb folyamatban. P\u00e9ld\u00e1ul egy RPi 3B+, ahol a klipper haszn\u00e1lja a GPIO20-at, egy kapcsol\u00f3: $ gpiodetect gpiochip0 [pinctrl-bcm2835] (54 lines) gpiochip1 [raspberrypi-exp-gpio] (8 lines) $ gpioinfo gpiochip0 - 54 lines: line 0: unnamed unused input active-high line 1: unnamed unused input active-high line 2: unnamed unused input active-high line 3: unnamed unused input active-high line 4: unnamed unused input active-high line 5: unnamed unused input active-high line 6: unnamed unused input active-high line 7: unnamed unused input active-high line 8: unnamed unused input active-high line 9: unnamed unused input active-high line 10: unnamed unused input active-high line 11: unnamed unused input active-high line 12: unnamed unused input active-high line 13: unnamed unused input active-high line 14: unnamed unused input active-high line 15: unnamed unused input active-high line 16: unnamed unused input active-high line 17: unnamed unused input active-high line 18: unnamed unused input active-high line 19: unnamed unused input active-high line 20: unnamed \"klipper\" output active-high [used] line 21: unnamed unused input active-high line 22: unnamed unused input active-high line 23: unnamed unused input active-high line 24: unnamed unused input active-high line 25: unnamed unused input active-high line 26: unnamed unused input active-high line 27: unnamed unused input active-high line 28: unnamed unused input active-high line 29: unnamed \"led0\" output active-high [used] line 30: unnamed unused input active-high line 31: unnamed unused input active-high line 32: unnamed unused input active-high line 33: unnamed unused input active-high line 34: unnamed unused input active-high line 35: unnamed unused input active-high line 36: unnamed unused input active-high line 37: unnamed unused input active-high line 38: unnamed unused input active-high line 39: unnamed unused input active-high line 40: unnamed unused input active-high line 41: unnamed unused input active-high line 42: unnamed unused input active-high line 43: unnamed unused input active-high line 44: unnamed unused input active-high line 45: unnamed unused input active-high line 46: unnamed unused input active-high line 47: unnamed unused input active-high line 48: unnamed unused input active-high line 49: unnamed unused input active-high line 50: unnamed unused input active-high line 51: unnamed unused input active-high line 52: unnamed unused input active-high line 53: unnamed unused input active-high gpiochip1 - 8 lines: line 0: unnamed unused input active-high line 1: unnamed unused input active-high line 2: unnamed \"led1\" output active-low [used] line 3: unnamed unused input active-high line 4: unnamed unused input active-high line 5: unnamed unused input active-high line 6: unnamed unused input active-high line 7: unnamed unused input active-high","title":"V\u00e1laszthat\u00f3: A megfelel\u0151 GPIO chip azonos\u00edt\u00e1sa"},{"location":"RPi_microcontroller.html#valaszthato-hardveres-pwm","text":"A Raspberry Pi k\u00e9t PWM csatorn\u00e1val (PWM0 \u00e9s PWM1) rendelkezik, amelyek a fejl\u00e9cen l\u00e1that\u00f3k, vagy ha nem, akkor a megl\u00e9v\u0151 GPIO \u00e9rintkez\u0151kh\u00f6z ir\u00e1ny\u00edthat\u00f3k. A Linux mcu d\u00e9mon a pwmchip sysfs interf\u00e9szt haszn\u00e1lja a hardveres PWM eszk\u00f6z\u00f6k vez\u00e9rl\u00e9s\u00e9re a Linux gazdag\u00e9peken. A PWM sysfs interf\u00e9sz alap\u00e9rtelmez\u00e9s szerint nincs kit\u00e9ve a Raspberry-n, \u00e9s a /boot/config.txt egy sor hozz\u00e1ad\u00e1s\u00e1val aktiv\u00e1lhat\u00f3: # A pwmchip sysfs fel\u00fclet enged\u00e9lyez\u00e9se dtoverlay=pwm,pin=12,func=4 Ez a p\u00e9lda csak a PWM0-t enged\u00e9lyezi, \u00e9s a GPIO12-re ir\u00e1ny\u00edtja. Ha mindk\u00e9t PWM csatorn\u00e1t enged\u00e9lyezni kell, haszn\u00e1lhatod a pwm-2chan parancsot. Az \u00e1tfed\u00e9s nem teszi ki a PWM sort a sysfs-en a rendszerind\u00edt\u00e1skor, \u00e9s azt a PWM csatorna sz\u00e1m\u00e1t a /sys/class/pwm/pwmchip0/export echo'ing-be kell export\u00e1lni: echo 0 > /sys/class/pwm/pwmchip0/export Ez l\u00e9trehozza a /sys/class/pwm/pwmchip0/pwm0 eszk\u00f6zt a f\u00e1jlrendszerben. A legegyszer\u0171bb, ha ezt a /etc/rc.local sor el\u0151tt az exit 0 sorba \u00edrjuk be. Ha a sysfs a hely\u00e9n van, akkor most m\u00e1r haszn\u00e1lhatod a PWM csatorn\u00e1t vagy csatorn\u00e1kat, ha a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3t hozz\u00e1adod a printer.cfg f\u00e1jlhoz: [output_pin caselight] pin: host:pwmchip0/pwm0 pwm: True hardware_pwm: True cycle_time: 0.000001 Ez hozz\u00e1adja a hardveres PWM vez\u00e9rl\u00e9st a Pi GPIO12-h\u00f6z (mivel az \u00e1tfed\u00e9s \u00fagy volt konfigur\u00e1lva, hogy a PWM0-t a pin=12-re ir\u00e1ny\u00edtsa). A PWM0 a GPIO12 \u00e9s a GPIO18 a PWM1 a GPIO13 \u00e9s a GPIO19 fel\u00e9 ir\u00e1ny\u00edthat\u00f3: PWM gpio PIN Func 0 12 4 0 18 2 1 13 4 1 19 2","title":"V\u00e1laszthat\u00f3: Hardveres PWM"},{"location":"Releases.html","text":"Kiad\u00e1s \u00b6 A Klipper kiad\u00e1sok t\u00f6rt\u00e9nete. A Klipper telep\u00edt\u00e9s\u00e9vel kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a telep\u00edt\u00e9s dokumentumot. Klipper 0.10.0 \u00b6 El\u00e9rhet\u0151 a 20210929. Fontosabb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: A \"Multi-MCU Homing\" t\u00e1mogat\u00e1sa. Mostant\u00f3l lehet\u0151s\u00e9g van arra, hogy egy l\u00e9ptet\u0151motor \u00e9s a v\u00e9g\u00e1ll\u00e1s k\u00fcl\u00f6n mikrovez\u00e9rl\u0151kh\u00f6z legyen csatlakoztatva. Ez leegyszer\u0171s\u00edti a Z-\u00e9rz\u00e9kel\u0151k k\u00e1belez\u00e9s\u00e9t a \"nyomtat\u00f3fejen\". Klipper mostant\u00f3l rendelkezik egy K\u00f6z\u00f6ss\u00e9gi Discord Szerver \u00e9s egy K\u00f6z\u00f6ss\u00e9gi T\u00e1rsalg\u00f3 Szerver -rel. A Klipper weboldal mostant\u00f3l az \"mkdocs\" infrastrukt\u00far\u00e1t haszn\u00e1lja. L\u00e9tezik egy Klipper Ford\u00edt\u00e1sok projekt is. Automatiz\u00e1lt t\u00e1mogat\u00e1s a firmware SDk\u00e1rty\u00e1n kereszt\u00fcli \u00e9get\u00e9s\u00e9hez sz\u00e1mos lapon. \u00daj kinematikai t\u00e1mogat\u00e1s a \"Hybrid CoreXY\" \u00e9s \"Hybrid CoreXZ\" nyomtat\u00f3khoz. A Klipper mostant\u00f3l a rotation_distance funkci\u00f3t haszn\u00e1lja a l\u00e9ptet\u0151motorok mozg\u00e1si t\u00e1vols\u00e1g\u00e1nak be\u00e1ll\u00edt\u00e1s\u00e1hoz. A Klipper f\u0151 gazdak\u00f3dja mostant\u00f3l k\u00f6zvetlen\u00fcl kommunik\u00e1lhat a mikrovez\u00e9rl\u0151kkel a CAN-buszon kereszt\u00fcl. \u00daj \"mozg\u00e1selemz\u0151\" rendszer. A Klipper 'bels\u0151 mozg\u00e1sfriss\u00edt\u00e9sek \u00e9s az \u00e9rz\u00e9kel\u0151 eredm\u00e9nyei nyomon k\u00f6vethet\u0151k \u00e9s napl\u00f3zhat\u00f3k elemz\u00e9s c\u00e9lj\u00e1b\u00f3l. A Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3kat mostant\u00f3l folyamatosan ellen\u0151rzik a hiba\u00e1llapotok szempontj\u00e1b\u00f3l. Az rp2040 mikrokontroller t\u00e1mogat\u00e1sa (Raspberry Pi Pico lapok). A \"make menuconfig\" rendszer mostant\u00f3l a kconfiglib-et haszn\u00e1lja. Hozz\u00e1adva sz\u00e1mos tov\u00e1bbi modul: ds18b20, duplicate_pin_override, filament_motion_sensor, palette2, motion_report, pca9533, pulse_counter, save_variables, sdcard_loop, temperature_host, temperature_mcu Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s. Klipper 0.9.0 \u00b6 El\u00e9rhet\u0151 a 20201020. F\u0151bb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: Az \"Input Shaping\" a nyomtat\u00f3 rezonanci\u00e1j\u00e1nak ellens\u00falyoz\u00e1s\u00e1ra szolg\u00e1l\u00f3 mechanizmus t\u00e1mogat\u00e1sa. Cs\u00f6kkentheti vagy megsz\u00fcntetheti a \"gy\u0171r\u0151d\u00e9st\" a nyomatokon. \u00daj \"Smooth Pressure Advance\" rendszer. Ezt a \"Pressure Advance\" rendszert a pillanatnyi sebess\u00e9g v\u00e1ltoz\u00e1sok bevezet\u00e9se n\u00e9lk\u00fcl val\u00f3s\u00edtja meg. Mostant\u00f3l lehet\u0151s\u00e9g van a nyom\u00e1s el\u0151tol\u00e1s be\u00e1ll\u00edt\u00e1s\u00e1ra is a \"Tuning Tower\" m\u00f3dszerrel. \u00daj \"webhooks\" API-kiszolg\u00e1l\u00f3. Ez egy programozhat\u00f3 JSON interf\u00e9szt biztos\u00edt a Klipperhez. Az LCD kijelz\u0151 \u00e9s a men\u00fc mostant\u00f3l a Jinja2 sablonnyelv seg\u00edts\u00e9g\u00e9vel konfigur\u00e1lhat\u00f3. A TMC2208 l\u00e9ptet\u0151motor-meghajt\u00f3k mostant\u00f3l \"standalone\" \u00fczemm\u00f3dban is haszn\u00e1lhat\u00f3k a Klipperrel. Tov\u00e1bbfejlesztett BL-Touch v3 t\u00e1mogat\u00e1s. Jav\u00edtott USB-azonos\u00edt\u00e1s. A Klipper mostant\u00f3l saj\u00e1t USB-azonos\u00edt\u00f3 k\u00f3ddal rendelkezik, \u00e9s a mikrovez\u00e9rl\u0151k mostant\u00f3l az USB-azonos\u00edt\u00e1s sor\u00e1n jelenthetik egyedi sorozatsz\u00e1mukat. \u00daj kinematikai t\u00e1mogat\u00e1s a \"Rotary Delta\" \u00e9s \"CoreXZ\" nyomtat\u00f3khoz. Mikrovez\u00e9rl\u0151 fejleszt\u00e9sek: az STM32F070 t\u00e1mogat\u00e1sa, az STM32F207 t\u00e1mogat\u00e1sa, a GPIO t\u0171k t\u00e1mogat\u00e1sa a \"Linux MCU\" rendszeren, STM32 \"HID bootloader\" t\u00e1mogat\u00e1s, Chitu bootloader t\u00e1mogat\u00e1s, MKS Robin bootloader t\u00e1mogat\u00e1s. A Python \"szem\u00e9tgy\u0171jt\u00e9si\" esem\u00e9nyek jobb kezel\u00e9se. Sz\u00e1mos tov\u00e1bbi modul lett hozz\u00e1adva: adc_scaled, adxl345, bme280, display_status, extruder_stepper, fan_generic, hall_filament_width_sensor, htu21d, homing_heaters, input_shaper, lm75, print_stats, resonance_tester, shaper_calibrate, query_adc, graph_accelerometer, graph_extruder, graph_motion, graph_shaper, graph_temp_sensor, whconsole Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s. Klipper 0.9.1 \u00b6 El\u00e9rhet\u0151 a 20201028. Csak hibajav\u00edt\u00e1sokat tartalmaz\u00f3 kiad\u00e1s. Klipper 0.8.0 \u00b6 El\u00e9rhet\u0151 a 20191021. F\u0151bb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: \u00daj G-k\u00f3d parancssablon t\u00e1mogat\u00e1s. A konfigur\u00e1ci\u00f3s f\u00e1jlban l\u00e9v\u0151 G-k\u00f3dot mostant\u00f3l a Jinja2 sablonnyelvvel \u00e9rt\u00e9keli ki a rendszer. A Trinamic l\u00e9ptet\u0151 meghajt\u00f3k jav\u00edt\u00e1sa: \u00daj t\u00e1mogat\u00e1s a TMC2209 \u00e9s TMC5160 illeszt\u0151programokhoz. Tov\u00e1bbfejlesztett DUMP_TMC, SET_TMC_CURRENT \u00e9s INIT_TMC G-k\u00f3d parancsok. Jav\u00edtott t\u00e1mogat\u00e1s a TMC UART kezel\u00e9s\u00e9hez anal\u00f3g mux-al. Jav\u00edtott c\u00e9lmeghat\u00e1roz\u00e1s, m\u00e9r\u00e9s \u00e9s t\u00e1rgyasztal szintez\u00e9si t\u00e1mogat\u00e1s: \u00daj manual_probe, bed_screws, screws_tilt_adjust, skew_correction, safe_z_home modulok hozz\u00e1ad\u00e1sa. Tov\u00e1bbfejlesztett t\u00f6bbmint\u00e1s m\u00e9r\u00e9s medi\u00e1nnal, \u00e1tlagol\u00e1ssal \u00e9s \u00fajrapr\u00f3b\u00e1l\u00e1si logik\u00e1val. Jav\u00edtott dokument\u00e1ci\u00f3 a BL-Touch, a szondakalibr\u00e1l\u00e1s, a v\u00e9g\u00e1ll\u00e1s kalibr\u00e1l\u00e1s, a delta kalibr\u00e1l\u00e1s, az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont \u00e9s a v\u00e9g\u00e1ll\u00e1s f\u00e1zis kalibr\u00e1l\u00e1s\u00e1hoz. Tov\u00e1bbfejlesztett kezd\u0151pont t\u00e1mogat\u00e1s a Z tengelyen. Sz\u00e1mos Klipper mikrokontroller fejleszt\u00e9s: Klipper portolva: SAM3X8C, SAM4S8C, SAMD51, STM32F042, STM32F4 \u00daj USB CDC-illeszt\u0151programok SAM3X, SAM4, STM32F4 rendszerekhez. Tov\u00e1bbfejlesztett t\u00e1mogat\u00e1s a Klipper USB-n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 \u00e9get\u00e9s\u00e9hez. Szoftveres SPI-t\u00e1mogat\u00e1s. Jelent\u0151sen javult a h\u0151m\u00e9rs\u00e9klet-sz\u0171r\u00e9s az LPC176x-en. A korai kimeneti \u00e9rintkez\u0151k be\u00e1ll\u00edt\u00e1sai a mikrovez\u00e9rl\u0151ben konfigur\u00e1lhat\u00f3k. \u00daj weboldal a Klipper dokument\u00e1ci\u00f3val: http://klipper3d.org/ A Klippernek m\u00e1r van log\u00f3ja. A pol\u00e1ris \u00e9s a \"k\u00e1belcs\u00f6rl\u0151\" kinematika k\u00eds\u00e9rleti al\u00e1t\u00e1maszt\u00e1sa. A konfigur\u00e1ci\u00f3s f\u00e1jl mostant\u00f3l m\u00e1s konfigur\u00e1ci\u00f3s f\u00e1jlokat is tartalmazhat. Sz\u00e1mos tov\u00e1bbi modul hozz\u00e1 lett adva: board_pins, controller_fan, delayed_gcode, dotstar, filament_switch_sensor, firmware_retraction, gcode_arcs, gcode_button, heater_generic, manual_stepper, mcp4018, mcp4728, neopixel, pause_resume, respond, temperature_sensor tsl1401cl_filament_width_sensor, tuning_tower Sz\u00e1mos tov\u00e1bbi parancsot adtunk hozz\u00e1: RESTORE_GCODE_STATE, SAVE_GCODE_STATE, SET_GCODE_VARIABLE, SET_HEATER_TEMPERATURE, SET_IDLE_TIMEOUT, SET_TEMPERATURE_FAN_TARGET Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s. Klipper 0.7.0 \u00b6 El\u00e9rhet\u0151 a 20181220. F\u0151bb v\u00e1ltoz\u00e1sok a kiad\u00e1sban: A Klipper mostant\u00f3l t\u00e1mogatja a \"h\u00e1l\u00f3\" t\u00e1rgyasztal szintez\u00e9s \u00e1ll\u00edt\u00e1st \u00daj t\u00e1mogat\u00e1s a \"tov\u00e1bbfejlesztett\" delta kalibr\u00e1ci\u00f3hoz (kalibr\u00e1lja a nyomtat\u00e1s x/y m\u00e9reteit delta nyomtat\u00f3kon) A Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3k (tmc2130, tmc2208, tmc2660) fut\u00e1sidej\u0171 konfigur\u00e1ci\u00f3j\u00e1nak t\u00e1mogat\u00e1sa Jav\u00edtott h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 t\u00e1mogat\u00e1s: MAX6675, MAX31855, MAX31856, MAX31865, egyedi termisztorok, \u00e1ltal\u00e1nos PT100 t\u00edpus\u00fa \u00e9rz\u00e9kel\u0151k Sz\u00e1mos \u00faj modul: temperature_fan, sx1509, force_move, mcp4451, z_tilt, quad_gantry_level, endstop_phase, bltouch Sz\u00e1mos \u00faj parancs hozz\u00e1ad\u00e1sa: SAVE_CONFIG, SET_PRESSURE_ADVANCE, SET_GCODE_OFFSET, SET_VELOCITY_LIMIT, STEPPER_BUZZ, TURN_OFF_HEATERS, M204, egyedi g-k\u00f3d makr\u00f3k Kib\u0151v\u00edtett LCD-kijelz\u0151 t\u00e1mogat\u00e1s: Fut\u00e1sidej\u0171 men\u00fck t\u00e1mogat\u00e1sa \u00daj kijelz\u0151 ikonok A \"uc1701\" \u00e9s \"ssd1306\" kijelz\u0151k t\u00e1mogat\u00e1sa Tov\u00e1bbi mikrokontroller t\u00e1mogat\u00e1s: Klipper portolva: LPC176x (Smoothieboards), SAM4E8E (Duet2), SAMD21 (Arduino Zero), STM32F103 (\"Blue pill\" eszk\u00f6z\u00f6k), atmega32u4 \u00daj generikus USB CDC vez\u00e9rl\u0151 implement\u00e1lva AVR, LPC176x, SAMD21 \u00e9s STM32F103 platformokra Teljes\u00edtm\u00e9nyjavul\u00e1s ARM processzorokon A kinematikai k\u00f3dot \u00e1t\u00edrtuk, hogy egy \"iterat\u00edv megold\u00f3t\" haszn\u00e1ljon \u00daj automatikus tesztel\u00e9si esetek a Klipper gazdag\u00e9p szoftverhez Sz\u00e1mos \u00faj p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jl a szok\u00e1sos nyomtat\u00f3khoz Dokument\u00e1ci\u00f3friss\u00edt\u00e9sek rendszerbet\u00f6lt\u0151kh\u00f6z, teljes\u00edtm\u00e9ny\u00e9rt\u00e9kel\u00e9shez, mikrovez\u00e9rl\u0151 portol\u00e1shoz, konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9sekhez, t\u0171 hozz\u00e1rendel\u00e9shez, szeletel\u0151be\u00e1ll\u00edt\u00e1sokhoz, csomagol\u00e1shoz \u00e9s egyebekhez Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s Klipper 0.6.0 \u00b6 El\u00e9rhet\u0151 a 20180331. F\u0151bb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: Tov\u00e1bbfejlesztett f\u0171t\u0151berendez\u00e9s \u00e9s termisztor hardverhiba ellen\u0151rz\u00e9sek Z-szond\u00e1k t\u00e1mogat\u00e1sa A delt\u00e1k automatikus param\u00e9terkalibr\u00e1l\u00e1s\u00e1nak kezdeti t\u00e1mogat\u00e1sa (egy \u00faj delta_calibrate parancson kereszt\u00fcl) A t\u00e1rgyasztal d\u0151l\u00e9skiegyenl\u00edt\u00e9s\u00e9nek kezdeti t\u00e1mogat\u00e1sa (a bed_tilt_calibrate paranccsal) A \"biztons\u00e1gos kezd\u0151pont\" \u00e9s a kezd\u0151pont fel\u00fclb\u00edr\u00e1l\u00e1s\u00e1nak kezdeti t\u00e1mogat\u00e1sa Kezdeti t\u00e1mogat\u00e1s az \u00e1llapot megjelen\u00edt\u00e9s\u00e9hez a RepRapDiscount 2004 \u00e9s 12864 st\u00edlus\u00fa kijelz\u0151k\u00f6n \u00daj multi-extruder fejleszt\u00e9sek: A megosztott f\u0171t\u0151testek t\u00e1mogat\u00e1sa Kezdeti t\u00e1mogat\u00e1s kett\u0151s kocsikhoz T\u00f6bb l\u00e9ptet\u0151 tengelyenk\u00e9nti konfigur\u00e1l\u00e1s\u00e1nak t\u00e1mogat\u00e1sa (pl. kett\u0151s Z) Egyedi digit\u00e1lis \u00e9s PWM kimeneti t\u0171k t\u00e1mogat\u00e1sa (\u00faj SET_PIN paranccsal) Kezdeti t\u00e1mogat\u00e1s egy \"virtu\u00e1lis SDcard\" sz\u00e1m\u00e1ra, amely lehet\u0151v\u00e9 teszi a nyomtat\u00e1st k\u00f6zvetlen\u00fcl a Klipperr\u0151l (seg\u00edt a t\u00fal lass\u00fa g\u00e9peken, hogy az OctoPrint j\u00f3l fusson) K\u00fcl\u00f6nb\u00f6z\u0151 karhossz\u00fas\u00e1gok be\u00e1ll\u00edt\u00e1s\u00e1nak t\u00e1mogat\u00e1sa a delta minden egyes torny\u00e1n A G-k\u00f3d M220/M221 parancsok t\u00e1mogat\u00e1sa (sebess\u00e9gt\u00e9nyez\u0151 fel\u00fclb\u00edr\u00e1l\u00e1sa / extrud\u00e1l\u00e1si t\u00e9nyez\u0151 fel\u00fclb\u00edr\u00e1l\u00e1sa) Sz\u00e1mos dokument\u00e1ci\u00f3 friss\u00edt\u00e9s: Sz\u00e1mos \u00faj p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jl a szok\u00e1sos nyomtat\u00f3khoz \u00daj t\u00f6bb MCU konfigur\u00e1ci\u00f3s p\u00e9lda \u00daj BL-Touch \u00e9rz\u00e9kel\u0151 konfigur\u00e1ci\u00f3s p\u00e9lda \u00daj GYIK, konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9s \u00e9s G-k\u00f3d dokumentumok Kezdeti t\u00e1mogat\u00e1s a folyamatos integr\u00e1ci\u00f3 tesztel\u00e9s\u00e9hez az \u00f6sszes v\u00e9gleges GitHub fejleszt\u00e9sben Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s Klipper 0.5.0 \u00b6 El\u00e9rhet\u0151 a 20171025. F\u0151bb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: T\u00f6bb extruderrel rendelkez\u0151 nyomtat\u00f3k t\u00e1mogat\u00e1sa. Kezdeti t\u00e1mogat\u00e1s a Beaglebone PRU-n val\u00f3 futtat\u00e1shoz. Kezdeti t\u00e1mogat\u00e1s a Replicape alaplaphoz. Kezdeti t\u00e1mogat\u00e1s a mikrokontroller k\u00f3dj\u00e1nak val\u00f3s idej\u0171 Linux-folyamatban t\u00f6rt\u00e9n\u0151 futtat\u00e1s\u00e1hoz. T\u00f6bb mikrovez\u00e9rl\u0151 t\u00e1mogat\u00e1sa. (P\u00e9ld\u00e1ul egy extruder vez\u00e9relhet\u0151 egy mikrokontrollerrel, a nyomtat\u00f3 t\u00f6bbi r\u00e9sze pedig egy m\u00e1sikkal.) A mikrovez\u00e9rl\u0151k k\u00f6z\u00f6tti m\u0171veletek \u00f6sszehangol\u00e1s\u00e1hoz szoftveres \u00f3rajel-szinkroniz\u00e1l\u00e1s van implement\u00e1lva. L\u00e9peget\u0151 teljes\u00edtm\u00e9ny\u00e9nek jav\u00edt\u00e1sa (20Mhz-es AVR-ek ak\u00e1r 189K l\u00e9p\u00e9s/m\u00e1sodpercig). T\u00e1mogat\u00e1s a szerv\u00f3k vez\u00e9rl\u00e9s\u00e9hez \u00e9s a fejh\u0171t\u0151 ventil\u00e1torok meghat\u00e1roz\u00e1s\u00e1hoz. Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s Klipper 0.4.0 \u00b6 El\u00e9rhet\u0151 a 20170503. F\u0151bb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: Jav\u00edtott telep\u00edt\u00e9s Raspberry Pi g\u00e9pekre. A telep\u00edt\u00e9s nagy r\u00e9sze most m\u00e1r szkriptelt. A corexy kinematika t\u00e1mogat\u00e1sa Dokument\u00e1ci\u00f3 friss\u00edt\u00e9sek: \u00daj Kinematika dokumentum, \u00faj Pressure Advance tuning \u00fatmutat\u00f3, \u00faj p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jlok, stb L\u00e9ptet\u0151 teljes\u00edtm\u00e9ny javul\u00e1sa (20Mhz AVR t\u00f6bb mint 175K l\u00e9p\u00e9s/m\u00e1sodperc, Arduino Due t\u00f6bb mint 460K) A mikrokontroller automatikus vissza\u00e1ll\u00edt\u00e1s\u00e1nak t\u00e1mogat\u00e1sa. A Raspberry Pi USB t\u00e1pell\u00e1t\u00e1s\u00e1nak kapcsol\u00e1s\u00e1val t\u00f6rt\u00e9n\u0151 vissza\u00e1ll\u00edt\u00e1s t\u00e1mogat\u00e1sa. A nyom\u00e1s el\u0151tol\u00e1s algoritmus mostant\u00f3l look-ahead funkci\u00f3val m\u0171k\u00f6dik, hogy cs\u00f6kkentse a kanyarod\u00e1s k\u00f6zbeni nyom\u00e1sv\u00e1ltoz\u00e1sokat. A r\u00f6vid cikcakk mozg\u00e1sok maxim\u00e1lis sebess\u00e9g\u00e9nek korl\u00e1toz\u00e1sa AD595 \u00e9rz\u00e9kel\u0151k t\u00e1mogat\u00e1sa Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s Klipper 0.3.0 \u00b6 El\u00e9rhet\u0151 a 20161223. F\u0151bb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: Jav\u00edtott dokument\u00e1ci\u00f3 Delta kinematikai robotok t\u00e1mogat\u00e1sa Arduino Due mikrokontroller t\u00e1mogat\u00e1sa (ARM cortex-M3) USB alap\u00fa AVR mikrovez\u00e9rl\u0151k t\u00e1mogat\u00e1sa T\u00e1mogat\u00e1s a \"nyom\u00e1s el\u0151tol\u00e1s\" algoritmushoz - ez cs\u00f6kkenti a nyomatok sor\u00e1n keletkez\u0151 sziv\u00e1rg\u00e1st. \u00daj \"l\u00e9ptet\u0151f\u00e1zis-alap\u00fa v\u00e9g\u00e1ll\u00e1s\" funkci\u00f3 - nagyobb pontoss\u00e1got tesz lehet\u0151v\u00e9 a kezd\u0151pont v\u00e9g\u00e1ll\u00e1s\u00e1ban. A \"kiterjesztett G-k\u00f3d\" parancsok t\u00e1mogat\u00e1sa, mint p\u00e9ld\u00e1ul a \"help\", \"restart\" \u00e9s \"status\". A Klipper konfigur\u00e1ci\u00f3 \u00fajrat\u00f6lt\u00e9s\u00e9nek \u00e9s a gazdaszoftver \u00fajraind\u00edt\u00e1s\u00e1nak t\u00e1mogat\u00e1sa a \"restart\" parancs termin\u00e1lb\u00f3l t\u00f6rt\u00e9n\u0151 kiad\u00e1s\u00e1val. L\u00e9peget\u0151 teljes\u00edtm\u00e9ny\u00e9nek jav\u00edt\u00e1sa (20Mhz-es AVR-ek ak\u00e1r 158K l\u00e9p\u00e9s/m\u00e1sodpercig). Jav\u00edtott hibajelent\u00e9s. A legt\u00f6bb hiba mostant\u00f3l a termin\u00e1lon kereszt\u00fcl jelenik meg, a megold\u00e1sra vonatkoz\u00f3 seg\u00edts\u00e9ggel egy\u00fctt. Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s Klipper 0.2.0 \u00b6 A Klipper els\u0151 kiad\u00e1sa. El\u00e9rhet\u0151 a 20160525. A kezdeti kiad\u00e1sban el\u00e9rhet\u0151 f\u0151bb funkci\u00f3k a k\u00f6vetkez\u0151k: Alapvet\u0151 t\u00e1mogat\u00e1s cartesian nyomtat\u00f3khoz (stepperek, extruder, f\u0171t\u00f6tt t\u00e1rgyasztal, h\u0171t\u0151ventil\u00e1tor). A gyakori G-k\u00f3d parancsok t\u00e1mogat\u00e1sa. Az OctoPrint interf\u00e9sz t\u00e1mogat\u00e1sa. Gyorsul\u00e1s \u00e9s el\u0151retekint\u0151 kezel\u00e9s AVR mikrovez\u00e9rl\u0151k t\u00e1mogat\u00e1sa szabv\u00e1nyos soros portokon kereszt\u00fcl","title":"Kiad\u00e1s"},{"location":"Releases.html#kiadas","text":"A Klipper kiad\u00e1sok t\u00f6rt\u00e9nete. A Klipper telep\u00edt\u00e9s\u00e9vel kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a telep\u00edt\u00e9s dokumentumot.","title":"Kiad\u00e1s"},{"location":"Releases.html#klipper-0100","text":"El\u00e9rhet\u0151 a 20210929. Fontosabb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: A \"Multi-MCU Homing\" t\u00e1mogat\u00e1sa. Mostant\u00f3l lehet\u0151s\u00e9g van arra, hogy egy l\u00e9ptet\u0151motor \u00e9s a v\u00e9g\u00e1ll\u00e1s k\u00fcl\u00f6n mikrovez\u00e9rl\u0151kh\u00f6z legyen csatlakoztatva. Ez leegyszer\u0171s\u00edti a Z-\u00e9rz\u00e9kel\u0151k k\u00e1belez\u00e9s\u00e9t a \"nyomtat\u00f3fejen\". Klipper mostant\u00f3l rendelkezik egy K\u00f6z\u00f6ss\u00e9gi Discord Szerver \u00e9s egy K\u00f6z\u00f6ss\u00e9gi T\u00e1rsalg\u00f3 Szerver -rel. A Klipper weboldal mostant\u00f3l az \"mkdocs\" infrastrukt\u00far\u00e1t haszn\u00e1lja. L\u00e9tezik egy Klipper Ford\u00edt\u00e1sok projekt is. Automatiz\u00e1lt t\u00e1mogat\u00e1s a firmware SDk\u00e1rty\u00e1n kereszt\u00fcli \u00e9get\u00e9s\u00e9hez sz\u00e1mos lapon. \u00daj kinematikai t\u00e1mogat\u00e1s a \"Hybrid CoreXY\" \u00e9s \"Hybrid CoreXZ\" nyomtat\u00f3khoz. A Klipper mostant\u00f3l a rotation_distance funkci\u00f3t haszn\u00e1lja a l\u00e9ptet\u0151motorok mozg\u00e1si t\u00e1vols\u00e1g\u00e1nak be\u00e1ll\u00edt\u00e1s\u00e1hoz. A Klipper f\u0151 gazdak\u00f3dja mostant\u00f3l k\u00f6zvetlen\u00fcl kommunik\u00e1lhat a mikrovez\u00e9rl\u0151kkel a CAN-buszon kereszt\u00fcl. \u00daj \"mozg\u00e1selemz\u0151\" rendszer. A Klipper 'bels\u0151 mozg\u00e1sfriss\u00edt\u00e9sek \u00e9s az \u00e9rz\u00e9kel\u0151 eredm\u00e9nyei nyomon k\u00f6vethet\u0151k \u00e9s napl\u00f3zhat\u00f3k elemz\u00e9s c\u00e9lj\u00e1b\u00f3l. A Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3kat mostant\u00f3l folyamatosan ellen\u0151rzik a hiba\u00e1llapotok szempontj\u00e1b\u00f3l. Az rp2040 mikrokontroller t\u00e1mogat\u00e1sa (Raspberry Pi Pico lapok). A \"make menuconfig\" rendszer mostant\u00f3l a kconfiglib-et haszn\u00e1lja. Hozz\u00e1adva sz\u00e1mos tov\u00e1bbi modul: ds18b20, duplicate_pin_override, filament_motion_sensor, palette2, motion_report, pca9533, pulse_counter, save_variables, sdcard_loop, temperature_host, temperature_mcu Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s.","title":"Klipper 0.10.0"},{"location":"Releases.html#klipper-090","text":"El\u00e9rhet\u0151 a 20201020. F\u0151bb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: Az \"Input Shaping\" a nyomtat\u00f3 rezonanci\u00e1j\u00e1nak ellens\u00falyoz\u00e1s\u00e1ra szolg\u00e1l\u00f3 mechanizmus t\u00e1mogat\u00e1sa. Cs\u00f6kkentheti vagy megsz\u00fcntetheti a \"gy\u0171r\u0151d\u00e9st\" a nyomatokon. \u00daj \"Smooth Pressure Advance\" rendszer. Ezt a \"Pressure Advance\" rendszert a pillanatnyi sebess\u00e9g v\u00e1ltoz\u00e1sok bevezet\u00e9se n\u00e9lk\u00fcl val\u00f3s\u00edtja meg. Mostant\u00f3l lehet\u0151s\u00e9g van a nyom\u00e1s el\u0151tol\u00e1s be\u00e1ll\u00edt\u00e1s\u00e1ra is a \"Tuning Tower\" m\u00f3dszerrel. \u00daj \"webhooks\" API-kiszolg\u00e1l\u00f3. Ez egy programozhat\u00f3 JSON interf\u00e9szt biztos\u00edt a Klipperhez. Az LCD kijelz\u0151 \u00e9s a men\u00fc mostant\u00f3l a Jinja2 sablonnyelv seg\u00edts\u00e9g\u00e9vel konfigur\u00e1lhat\u00f3. A TMC2208 l\u00e9ptet\u0151motor-meghajt\u00f3k mostant\u00f3l \"standalone\" \u00fczemm\u00f3dban is haszn\u00e1lhat\u00f3k a Klipperrel. Tov\u00e1bbfejlesztett BL-Touch v3 t\u00e1mogat\u00e1s. Jav\u00edtott USB-azonos\u00edt\u00e1s. A Klipper mostant\u00f3l saj\u00e1t USB-azonos\u00edt\u00f3 k\u00f3ddal rendelkezik, \u00e9s a mikrovez\u00e9rl\u0151k mostant\u00f3l az USB-azonos\u00edt\u00e1s sor\u00e1n jelenthetik egyedi sorozatsz\u00e1mukat. \u00daj kinematikai t\u00e1mogat\u00e1s a \"Rotary Delta\" \u00e9s \"CoreXZ\" nyomtat\u00f3khoz. Mikrovez\u00e9rl\u0151 fejleszt\u00e9sek: az STM32F070 t\u00e1mogat\u00e1sa, az STM32F207 t\u00e1mogat\u00e1sa, a GPIO t\u0171k t\u00e1mogat\u00e1sa a \"Linux MCU\" rendszeren, STM32 \"HID bootloader\" t\u00e1mogat\u00e1s, Chitu bootloader t\u00e1mogat\u00e1s, MKS Robin bootloader t\u00e1mogat\u00e1s. A Python \"szem\u00e9tgy\u0171jt\u00e9si\" esem\u00e9nyek jobb kezel\u00e9se. Sz\u00e1mos tov\u00e1bbi modul lett hozz\u00e1adva: adc_scaled, adxl345, bme280, display_status, extruder_stepper, fan_generic, hall_filament_width_sensor, htu21d, homing_heaters, input_shaper, lm75, print_stats, resonance_tester, shaper_calibrate, query_adc, graph_accelerometer, graph_extruder, graph_motion, graph_shaper, graph_temp_sensor, whconsole Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s.","title":"Klipper 0.9.0"},{"location":"Releases.html#klipper-091","text":"El\u00e9rhet\u0151 a 20201028. Csak hibajav\u00edt\u00e1sokat tartalmaz\u00f3 kiad\u00e1s.","title":"Klipper 0.9.1"},{"location":"Releases.html#klipper-080","text":"El\u00e9rhet\u0151 a 20191021. F\u0151bb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: \u00daj G-k\u00f3d parancssablon t\u00e1mogat\u00e1s. A konfigur\u00e1ci\u00f3s f\u00e1jlban l\u00e9v\u0151 G-k\u00f3dot mostant\u00f3l a Jinja2 sablonnyelvvel \u00e9rt\u00e9keli ki a rendszer. A Trinamic l\u00e9ptet\u0151 meghajt\u00f3k jav\u00edt\u00e1sa: \u00daj t\u00e1mogat\u00e1s a TMC2209 \u00e9s TMC5160 illeszt\u0151programokhoz. Tov\u00e1bbfejlesztett DUMP_TMC, SET_TMC_CURRENT \u00e9s INIT_TMC G-k\u00f3d parancsok. Jav\u00edtott t\u00e1mogat\u00e1s a TMC UART kezel\u00e9s\u00e9hez anal\u00f3g mux-al. Jav\u00edtott c\u00e9lmeghat\u00e1roz\u00e1s, m\u00e9r\u00e9s \u00e9s t\u00e1rgyasztal szintez\u00e9si t\u00e1mogat\u00e1s: \u00daj manual_probe, bed_screws, screws_tilt_adjust, skew_correction, safe_z_home modulok hozz\u00e1ad\u00e1sa. Tov\u00e1bbfejlesztett t\u00f6bbmint\u00e1s m\u00e9r\u00e9s medi\u00e1nnal, \u00e1tlagol\u00e1ssal \u00e9s \u00fajrapr\u00f3b\u00e1l\u00e1si logik\u00e1val. Jav\u00edtott dokument\u00e1ci\u00f3 a BL-Touch, a szondakalibr\u00e1l\u00e1s, a v\u00e9g\u00e1ll\u00e1s kalibr\u00e1l\u00e1s, a delta kalibr\u00e1l\u00e1s, az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont \u00e9s a v\u00e9g\u00e1ll\u00e1s f\u00e1zis kalibr\u00e1l\u00e1s\u00e1hoz. Tov\u00e1bbfejlesztett kezd\u0151pont t\u00e1mogat\u00e1s a Z tengelyen. Sz\u00e1mos Klipper mikrokontroller fejleszt\u00e9s: Klipper portolva: SAM3X8C, SAM4S8C, SAMD51, STM32F042, STM32F4 \u00daj USB CDC-illeszt\u0151programok SAM3X, SAM4, STM32F4 rendszerekhez. Tov\u00e1bbfejlesztett t\u00e1mogat\u00e1s a Klipper USB-n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 \u00e9get\u00e9s\u00e9hez. Szoftveres SPI-t\u00e1mogat\u00e1s. Jelent\u0151sen javult a h\u0151m\u00e9rs\u00e9klet-sz\u0171r\u00e9s az LPC176x-en. A korai kimeneti \u00e9rintkez\u0151k be\u00e1ll\u00edt\u00e1sai a mikrovez\u00e9rl\u0151ben konfigur\u00e1lhat\u00f3k. \u00daj weboldal a Klipper dokument\u00e1ci\u00f3val: http://klipper3d.org/ A Klippernek m\u00e1r van log\u00f3ja. A pol\u00e1ris \u00e9s a \"k\u00e1belcs\u00f6rl\u0151\" kinematika k\u00eds\u00e9rleti al\u00e1t\u00e1maszt\u00e1sa. A konfigur\u00e1ci\u00f3s f\u00e1jl mostant\u00f3l m\u00e1s konfigur\u00e1ci\u00f3s f\u00e1jlokat is tartalmazhat. Sz\u00e1mos tov\u00e1bbi modul hozz\u00e1 lett adva: board_pins, controller_fan, delayed_gcode, dotstar, filament_switch_sensor, firmware_retraction, gcode_arcs, gcode_button, heater_generic, manual_stepper, mcp4018, mcp4728, neopixel, pause_resume, respond, temperature_sensor tsl1401cl_filament_width_sensor, tuning_tower Sz\u00e1mos tov\u00e1bbi parancsot adtunk hozz\u00e1: RESTORE_GCODE_STATE, SAVE_GCODE_STATE, SET_GCODE_VARIABLE, SET_HEATER_TEMPERATURE, SET_IDLE_TIMEOUT, SET_TEMPERATURE_FAN_TARGET Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s.","title":"Klipper 0.8.0"},{"location":"Releases.html#klipper-070","text":"El\u00e9rhet\u0151 a 20181220. F\u0151bb v\u00e1ltoz\u00e1sok a kiad\u00e1sban: A Klipper mostant\u00f3l t\u00e1mogatja a \"h\u00e1l\u00f3\" t\u00e1rgyasztal szintez\u00e9s \u00e1ll\u00edt\u00e1st \u00daj t\u00e1mogat\u00e1s a \"tov\u00e1bbfejlesztett\" delta kalibr\u00e1ci\u00f3hoz (kalibr\u00e1lja a nyomtat\u00e1s x/y m\u00e9reteit delta nyomtat\u00f3kon) A Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3k (tmc2130, tmc2208, tmc2660) fut\u00e1sidej\u0171 konfigur\u00e1ci\u00f3j\u00e1nak t\u00e1mogat\u00e1sa Jav\u00edtott h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 t\u00e1mogat\u00e1s: MAX6675, MAX31855, MAX31856, MAX31865, egyedi termisztorok, \u00e1ltal\u00e1nos PT100 t\u00edpus\u00fa \u00e9rz\u00e9kel\u0151k Sz\u00e1mos \u00faj modul: temperature_fan, sx1509, force_move, mcp4451, z_tilt, quad_gantry_level, endstop_phase, bltouch Sz\u00e1mos \u00faj parancs hozz\u00e1ad\u00e1sa: SAVE_CONFIG, SET_PRESSURE_ADVANCE, SET_GCODE_OFFSET, SET_VELOCITY_LIMIT, STEPPER_BUZZ, TURN_OFF_HEATERS, M204, egyedi g-k\u00f3d makr\u00f3k Kib\u0151v\u00edtett LCD-kijelz\u0151 t\u00e1mogat\u00e1s: Fut\u00e1sidej\u0171 men\u00fck t\u00e1mogat\u00e1sa \u00daj kijelz\u0151 ikonok A \"uc1701\" \u00e9s \"ssd1306\" kijelz\u0151k t\u00e1mogat\u00e1sa Tov\u00e1bbi mikrokontroller t\u00e1mogat\u00e1s: Klipper portolva: LPC176x (Smoothieboards), SAM4E8E (Duet2), SAMD21 (Arduino Zero), STM32F103 (\"Blue pill\" eszk\u00f6z\u00f6k), atmega32u4 \u00daj generikus USB CDC vez\u00e9rl\u0151 implement\u00e1lva AVR, LPC176x, SAMD21 \u00e9s STM32F103 platformokra Teljes\u00edtm\u00e9nyjavul\u00e1s ARM processzorokon A kinematikai k\u00f3dot \u00e1t\u00edrtuk, hogy egy \"iterat\u00edv megold\u00f3t\" haszn\u00e1ljon \u00daj automatikus tesztel\u00e9si esetek a Klipper gazdag\u00e9p szoftverhez Sz\u00e1mos \u00faj p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jl a szok\u00e1sos nyomtat\u00f3khoz Dokument\u00e1ci\u00f3friss\u00edt\u00e9sek rendszerbet\u00f6lt\u0151kh\u00f6z, teljes\u00edtm\u00e9ny\u00e9rt\u00e9kel\u00e9shez, mikrovez\u00e9rl\u0151 portol\u00e1shoz, konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9sekhez, t\u0171 hozz\u00e1rendel\u00e9shez, szeletel\u0151be\u00e1ll\u00edt\u00e1sokhoz, csomagol\u00e1shoz \u00e9s egyebekhez Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s","title":"Klipper 0.7.0"},{"location":"Releases.html#klipper-060","text":"El\u00e9rhet\u0151 a 20180331. F\u0151bb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: Tov\u00e1bbfejlesztett f\u0171t\u0151berendez\u00e9s \u00e9s termisztor hardverhiba ellen\u0151rz\u00e9sek Z-szond\u00e1k t\u00e1mogat\u00e1sa A delt\u00e1k automatikus param\u00e9terkalibr\u00e1l\u00e1s\u00e1nak kezdeti t\u00e1mogat\u00e1sa (egy \u00faj delta_calibrate parancson kereszt\u00fcl) A t\u00e1rgyasztal d\u0151l\u00e9skiegyenl\u00edt\u00e9s\u00e9nek kezdeti t\u00e1mogat\u00e1sa (a bed_tilt_calibrate paranccsal) A \"biztons\u00e1gos kezd\u0151pont\" \u00e9s a kezd\u0151pont fel\u00fclb\u00edr\u00e1l\u00e1s\u00e1nak kezdeti t\u00e1mogat\u00e1sa Kezdeti t\u00e1mogat\u00e1s az \u00e1llapot megjelen\u00edt\u00e9s\u00e9hez a RepRapDiscount 2004 \u00e9s 12864 st\u00edlus\u00fa kijelz\u0151k\u00f6n \u00daj multi-extruder fejleszt\u00e9sek: A megosztott f\u0171t\u0151testek t\u00e1mogat\u00e1sa Kezdeti t\u00e1mogat\u00e1s kett\u0151s kocsikhoz T\u00f6bb l\u00e9ptet\u0151 tengelyenk\u00e9nti konfigur\u00e1l\u00e1s\u00e1nak t\u00e1mogat\u00e1sa (pl. kett\u0151s Z) Egyedi digit\u00e1lis \u00e9s PWM kimeneti t\u0171k t\u00e1mogat\u00e1sa (\u00faj SET_PIN paranccsal) Kezdeti t\u00e1mogat\u00e1s egy \"virtu\u00e1lis SDcard\" sz\u00e1m\u00e1ra, amely lehet\u0151v\u00e9 teszi a nyomtat\u00e1st k\u00f6zvetlen\u00fcl a Klipperr\u0151l (seg\u00edt a t\u00fal lass\u00fa g\u00e9peken, hogy az OctoPrint j\u00f3l fusson) K\u00fcl\u00f6nb\u00f6z\u0151 karhossz\u00fas\u00e1gok be\u00e1ll\u00edt\u00e1s\u00e1nak t\u00e1mogat\u00e1sa a delta minden egyes torny\u00e1n A G-k\u00f3d M220/M221 parancsok t\u00e1mogat\u00e1sa (sebess\u00e9gt\u00e9nyez\u0151 fel\u00fclb\u00edr\u00e1l\u00e1sa / extrud\u00e1l\u00e1si t\u00e9nyez\u0151 fel\u00fclb\u00edr\u00e1l\u00e1sa) Sz\u00e1mos dokument\u00e1ci\u00f3 friss\u00edt\u00e9s: Sz\u00e1mos \u00faj p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jl a szok\u00e1sos nyomtat\u00f3khoz \u00daj t\u00f6bb MCU konfigur\u00e1ci\u00f3s p\u00e9lda \u00daj BL-Touch \u00e9rz\u00e9kel\u0151 konfigur\u00e1ci\u00f3s p\u00e9lda \u00daj GYIK, konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9s \u00e9s G-k\u00f3d dokumentumok Kezdeti t\u00e1mogat\u00e1s a folyamatos integr\u00e1ci\u00f3 tesztel\u00e9s\u00e9hez az \u00f6sszes v\u00e9gleges GitHub fejleszt\u00e9sben Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s","title":"Klipper 0.6.0"},{"location":"Releases.html#klipper-050","text":"El\u00e9rhet\u0151 a 20171025. F\u0151bb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: T\u00f6bb extruderrel rendelkez\u0151 nyomtat\u00f3k t\u00e1mogat\u00e1sa. Kezdeti t\u00e1mogat\u00e1s a Beaglebone PRU-n val\u00f3 futtat\u00e1shoz. Kezdeti t\u00e1mogat\u00e1s a Replicape alaplaphoz. Kezdeti t\u00e1mogat\u00e1s a mikrokontroller k\u00f3dj\u00e1nak val\u00f3s idej\u0171 Linux-folyamatban t\u00f6rt\u00e9n\u0151 futtat\u00e1s\u00e1hoz. T\u00f6bb mikrovez\u00e9rl\u0151 t\u00e1mogat\u00e1sa. (P\u00e9ld\u00e1ul egy extruder vez\u00e9relhet\u0151 egy mikrokontrollerrel, a nyomtat\u00f3 t\u00f6bbi r\u00e9sze pedig egy m\u00e1sikkal.) A mikrovez\u00e9rl\u0151k k\u00f6z\u00f6tti m\u0171veletek \u00f6sszehangol\u00e1s\u00e1hoz szoftveres \u00f3rajel-szinkroniz\u00e1l\u00e1s van implement\u00e1lva. L\u00e9peget\u0151 teljes\u00edtm\u00e9ny\u00e9nek jav\u00edt\u00e1sa (20Mhz-es AVR-ek ak\u00e1r 189K l\u00e9p\u00e9s/m\u00e1sodpercig). T\u00e1mogat\u00e1s a szerv\u00f3k vez\u00e9rl\u00e9s\u00e9hez \u00e9s a fejh\u0171t\u0151 ventil\u00e1torok meghat\u00e1roz\u00e1s\u00e1hoz. Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s","title":"Klipper 0.5.0"},{"location":"Releases.html#klipper-040","text":"El\u00e9rhet\u0151 a 20170503. F\u0151bb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: Jav\u00edtott telep\u00edt\u00e9s Raspberry Pi g\u00e9pekre. A telep\u00edt\u00e9s nagy r\u00e9sze most m\u00e1r szkriptelt. A corexy kinematika t\u00e1mogat\u00e1sa Dokument\u00e1ci\u00f3 friss\u00edt\u00e9sek: \u00daj Kinematika dokumentum, \u00faj Pressure Advance tuning \u00fatmutat\u00f3, \u00faj p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jlok, stb L\u00e9ptet\u0151 teljes\u00edtm\u00e9ny javul\u00e1sa (20Mhz AVR t\u00f6bb mint 175K l\u00e9p\u00e9s/m\u00e1sodperc, Arduino Due t\u00f6bb mint 460K) A mikrokontroller automatikus vissza\u00e1ll\u00edt\u00e1s\u00e1nak t\u00e1mogat\u00e1sa. A Raspberry Pi USB t\u00e1pell\u00e1t\u00e1s\u00e1nak kapcsol\u00e1s\u00e1val t\u00f6rt\u00e9n\u0151 vissza\u00e1ll\u00edt\u00e1s t\u00e1mogat\u00e1sa. A nyom\u00e1s el\u0151tol\u00e1s algoritmus mostant\u00f3l look-ahead funkci\u00f3val m\u0171k\u00f6dik, hogy cs\u00f6kkentse a kanyarod\u00e1s k\u00f6zbeni nyom\u00e1sv\u00e1ltoz\u00e1sokat. A r\u00f6vid cikcakk mozg\u00e1sok maxim\u00e1lis sebess\u00e9g\u00e9nek korl\u00e1toz\u00e1sa AD595 \u00e9rz\u00e9kel\u0151k t\u00e1mogat\u00e1sa Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s","title":"Klipper 0.4.0"},{"location":"Releases.html#klipper-030","text":"El\u00e9rhet\u0151 a 20161223. F\u0151bb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: Jav\u00edtott dokument\u00e1ci\u00f3 Delta kinematikai robotok t\u00e1mogat\u00e1sa Arduino Due mikrokontroller t\u00e1mogat\u00e1sa (ARM cortex-M3) USB alap\u00fa AVR mikrovez\u00e9rl\u0151k t\u00e1mogat\u00e1sa T\u00e1mogat\u00e1s a \"nyom\u00e1s el\u0151tol\u00e1s\" algoritmushoz - ez cs\u00f6kkenti a nyomatok sor\u00e1n keletkez\u0151 sziv\u00e1rg\u00e1st. \u00daj \"l\u00e9ptet\u0151f\u00e1zis-alap\u00fa v\u00e9g\u00e1ll\u00e1s\" funkci\u00f3 - nagyobb pontoss\u00e1got tesz lehet\u0151v\u00e9 a kezd\u0151pont v\u00e9g\u00e1ll\u00e1s\u00e1ban. A \"kiterjesztett G-k\u00f3d\" parancsok t\u00e1mogat\u00e1sa, mint p\u00e9ld\u00e1ul a \"help\", \"restart\" \u00e9s \"status\". A Klipper konfigur\u00e1ci\u00f3 \u00fajrat\u00f6lt\u00e9s\u00e9nek \u00e9s a gazdaszoftver \u00fajraind\u00edt\u00e1s\u00e1nak t\u00e1mogat\u00e1sa a \"restart\" parancs termin\u00e1lb\u00f3l t\u00f6rt\u00e9n\u0151 kiad\u00e1s\u00e1val. L\u00e9peget\u0151 teljes\u00edtm\u00e9ny\u00e9nek jav\u00edt\u00e1sa (20Mhz-es AVR-ek ak\u00e1r 158K l\u00e9p\u00e9s/m\u00e1sodpercig). Jav\u00edtott hibajelent\u00e9s. A legt\u00f6bb hiba mostant\u00f3l a termin\u00e1lon kereszt\u00fcl jelenik meg, a megold\u00e1sra vonatkoz\u00f3 seg\u00edts\u00e9ggel egy\u00fctt. Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s","title":"Klipper 0.3.0"},{"location":"Releases.html#klipper-020","text":"A Klipper els\u0151 kiad\u00e1sa. El\u00e9rhet\u0151 a 20160525. A kezdeti kiad\u00e1sban el\u00e9rhet\u0151 f\u0151bb funkci\u00f3k a k\u00f6vetkez\u0151k: Alapvet\u0151 t\u00e1mogat\u00e1s cartesian nyomtat\u00f3khoz (stepperek, extruder, f\u0171t\u00f6tt t\u00e1rgyasztal, h\u0171t\u0151ventil\u00e1tor). A gyakori G-k\u00f3d parancsok t\u00e1mogat\u00e1sa. Az OctoPrint interf\u00e9sz t\u00e1mogat\u00e1sa. Gyorsul\u00e1s \u00e9s el\u0151retekint\u0151 kezel\u00e9s AVR mikrovez\u00e9rl\u0151k t\u00e1mogat\u00e1sa szabv\u00e1nyos soros portokon kereszt\u00fcl","title":"Klipper 0.2.0"},{"location":"Resonance_Compensation.html","text":"Rezonancia Kompenz\u00e1ci\u00f3 \u00b6 A Klipper t\u00e1mogatja a bemeneti form\u00e1z\u00e1st. Egy olyan technik\u00e1t, amely a nyomatok cseng\u00e9s\u00e9nek (m\u00e1s n\u00e9ven visszhang, szellemk\u00e9p vagy hull\u00e1mz\u00e1s) cs\u00f6kkent\u00e9s\u00e9re haszn\u00e1lhat\u00f3. A gy\u0171r\u0151d\u00e9s egy fel\u00fcleti nyomtat\u00e1si hiba, amikor jellemz\u0151en az olyan elemek, mint az \u00e9lek, finom 'visszhangk\u00e9nt' ism\u00e9tl\u0151dnek a nyomtatott fel\u00fcleten: | | | A gy\u0171r\u0151d\u00e9st a nyomtat\u00e1si ir\u00e1ny gyors v\u00e1ltoz\u00e1sa miatt fell\u00e9p\u0151 mechanikus rezg\u00e9sek okozz\u00e1k. Vedd figyelembe, hogy a gy\u0171r\u0151d\u00e9s \u00e1ltal\u00e1ban mechanikai eredet\u0171: nem el\u00e9g merev nyomtat\u00f3keret, nem feszes vagy t\u00fals\u00e1gosan rug\u00f3s sz\u00edjak, a mechanikus alkatr\u00e9szek be\u00e1ll\u00edt\u00e1si probl\u00e9m\u00e1i, nagy mozg\u00f3 t\u00f6meg stb. Ezeket kell el\u0151sz\u00f6r ellen\u0151rizni \u00e9s lehet\u0151s\u00e9g szerint jav\u00edtani. A Bemeneti form\u00e1z\u00e1s egy olyan ny\u00edlt hurk\u00fa vez\u00e9rl\u00e9si technika, amely olyan utas\u00edt\u00f3 jelet hoz l\u00e9tre, amely megsz\u00fcnteti a saj\u00e1t rezg\u00e9seit. A bemeneti alak\u00edt\u00e1s n\u00e9mi hangol\u00e1st \u00e9s m\u00e9r\u00e9seket ig\u00e9nyel, miel\u0151tt enged\u00e9lyezhet\u0151 lenne. A cseng\u00e9sen k\u00edv\u00fcl a Bemeneti form\u00e1z\u00e1s \u00e1ltal\u00e1ban cs\u00f6kkenti a nyomtat\u00f3 rezg\u00e9seit \u00e9s r\u00e1zk\u00f3d\u00e1s\u00e1t, \u00e9s jav\u00edthatja a Trinamic l\u00e9ptet\u0151 meghajt\u00f3k StealthChop \u00fczemm\u00f3dj\u00e1nak megb\u00edzhat\u00f3s\u00e1g\u00e1t is. Hangol\u00e1s \u00b6 Az alaphangol\u00e1shoz a nyomtat\u00f3 gy\u0171r\u0151d\u00e9si frekvenci\u00e1j\u00e1nak m\u00e9r\u00e9se sz\u00fcks\u00e9ges egy tesztmodell nyomtat\u00e1s\u00e1val. Szeletelje fel a docs/prints/ringing_tower.stl f\u00e1jlban tal\u00e1lhat\u00f3 gy\u0171r\u0151d\u00e9si tesztmodellt a szeletel\u0151ben: A javasolt r\u00e9tegmagass\u00e1g 0,2 vagy 0,25 mm. A kit\u00f6lt\u0151 \u00e9s a fels\u0151 r\u00e9tegek 0-ra \u00e1ll\u00edthat\u00f3k. Haszn\u00e1lj 1-2 falat, vagy m\u00e9g jobb a sima v\u00e1za m\u00f3d 1-2 mm-es alappal. A k\u00fcls\u0151 ker\u00fcletekn\u00e9l haszn\u00e1lj kell\u0151en nagy sebess\u00e9get, k\u00f6r\u00fclbel\u00fcl 80-100 mm/sec. Gy\u0151z\u0151dj meg r\u00f3la, hogy a minim\u00e1lis r\u00e9tegid\u0151 legfeljebb 3 m\u00e1sodperc. Gy\u0151z\u0151dj meg r\u00f3la, hogy a szeletel\u0151ben a \"dinamikus gyors\u00edt\u00e1svez\u00e9rl\u00e9s\" ki van kapcsolva. Ne ford\u00edtsd el a modellt. A modell h\u00e1tulj\u00e1n X \u00e9s Y jel\u00f6l\u00e9sek vannak. Figyelje meg a jelek szokatlan elhelyezked\u00e9s\u00e9t a nyomtat\u00f3 tengelyeihez k\u00e9pest. Ez nem hiba. A jel\u00f6l\u00e9sek k\u00e9s\u0151bb a hangol\u00e1si folyamat sor\u00e1n referenciak\u00e9nt haszn\u00e1lhat\u00f3k, mert megmutatj\u00e1k, hogy a m\u00e9r\u00e9sek melyik tengelynek felelnek meg. Gy\u0171r\u0151d\u00e9si frekvencia \u00b6 El\u0151sz\u00f6r is m\u00e9rd meg a gy\u0171r\u0151d\u00e9si frekvenci\u00e1t . Ha a square_corner_velocity param\u00e9tert megv\u00e1ltoztattuk, \u00e1ll\u00edtsuk vissza az 5.0-ra. Nem tan\u00e1csos n\u00f6velni, ha bemeneti alak\u00edt\u00f3t haszn\u00e1l, mert ez nagyobb sim\u00edt\u00e1st okozhat az alkatr\u00e9szekben - helyette jobb, ha nagyobb gyorsul\u00e1si \u00e9rt\u00e9ket haszn\u00e1l. N\u00f6velje a max_accel_to_decel \u00e9rt\u00e9ket a k\u00f6vetkez\u0151 parancs kiad\u00e1s\u00e1val: SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 Nyom\u00e1s el\u0151tol\u00e1s kikapcsol\u00e1sa: SET_PRESSURE_ADVANCE ADVANCE=0 Ha m\u00e1r hozz\u00e1adta az [input_shaper] r\u00e9szt a printer.cfg f\u00e1jlhoz, akkor hajtsd v\u00e9gre a SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0 parancsot. Ha \"Unknown command\" hib\u00e1t kap, nyugodtan figyelmen k\u00edv\u00fcl hagyhatja ezen a ponton, \u00e9s folytathatja a m\u00e9r\u00e9seket. V\u00e9gezd el a parancsot: TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Alapvet\u0151en a gyorsul\u00e1s k\u00fcl\u00f6nb\u00f6z\u0151 nagy \u00e9rt\u00e9keinek be\u00e1ll\u00edt\u00e1s\u00e1val pr\u00f3b\u00e1ljuk a gy\u0171r\u0151d\u00e9st hangs\u00falyosabb\u00e1 tenni. Ez a parancs 1500 mm/sec^2-t\u0151l kezdve 5 mm-enk\u00e9nt n\u00f6veli a gyorsul\u00e1st: 1500 mm/sec^2, 2000 mm/sec^2, 2500 mm/sec^2 \u00e9s \u00edgy tov\u00e1bb, eg\u00e9szen 7000 mm/sec^2-ig az utols\u00f3 s\u00e1vra. Nyomtasd ki a szeletelt tesztmodellt a javasolt param\u00e9terekkel. A nyomtat\u00e1st kor\u00e1bban is le\u00e1ll\u00edthatja, ha a gy\u0171r\u0151d\u00e9s j\u00f3l l\u00e1that\u00f3, \u00e9s \u00fagy l\u00e1tja, hogy a gyorsul\u00e1s t\u00fal nagy lesz a nyomtat\u00f3 sz\u00e1m\u00e1ra (pl. a nyomtat\u00f3 t\u00fals\u00e1gosan remeg, vagy elkezd l\u00e9p\u00e9seket kihagyni). Haszn\u00e1ld a modell h\u00e1tulj\u00e1n tal\u00e1lhat\u00f3 X \u00e9s Y jeleket a t\u00e1j\u00e9koz\u00f3d\u00e1shoz. Az X-jel\u00f6l\u00e9ssel ell\u00e1tott oldalr\u00f3l t\u00f6rt\u00e9n\u0151 m\u00e9r\u00e9seket kell haszn\u00e1lni az X tengely konfigur\u00e1ci\u00f3hoz , az Y-jel\u00f6l\u00e9st pedig az Y tengely konfigur\u00e1ci\u00f3j\u00e1hoz. M\u00e9rd meg a t\u00e1vols\u00e1got D (mm-ben) t\u00f6bb rezg\u00e9s k\u00f6z\u00f6tt az X jelz\u00e9s\u0171 alkatr\u00e9szen, a bev\u00e1g\u00e1sok k\u00f6zel\u00e9ben, lehet\u0151leg az els\u0151 egy-k\u00e9t rezg\u00e9st kihagyva. Az oszcill\u00e1ci\u00f3k k\u00f6z\u00f6tti t\u00e1vols\u00e1g k\u00f6nnyebb m\u00e9r\u00e9s\u00e9hez el\u0151sz\u00f6r jel\u00f6lje meg az oszcill\u00e1ci\u00f3kat, majd m\u00e9rd meg a jel\u00f6l\u00e9sek k\u00f6z\u00f6tti t\u00e1vols\u00e1got vonalz\u00f3val vagy tol\u00f3m\u00e9r\u0151vel:| | | Sz\u00e1molja meg, hogy a m\u00e9rt t\u00e1vols\u00e1g N h\u00e1ny rezg\u00e9snek D felel meg. Ha nem biztos benne, hogy hogyan sz\u00e1molja a rezg\u00e9seket, n\u00e9zze meg a fenti k\u00e9pet, ahol N = 6 rezg\u00e9s. Sz\u00e1m\u00edtsuk ki az X tengely gy\u0171r\u0151d\u00e9si frekvenci\u00e1j\u00e1t V \u00b7 N / D (Hz), ahol V a k\u00fcls\u0151 ker\u00fcletekre vonatkoz\u00f3 sebess\u00e9g (mm/sec). A fenti p\u00e9ld\u00e1n\u00e1l 6 rezg\u00e9st jel\u00f6lt\u00fcnk meg, \u00e9s a tesztet 100 mm/sec sebess\u00e9ggel nyomtattuk, \u00edgy a frekvencia 100 * 6 / 12,14 \u2248 49,4 Hz. A (8)-(10) pontokat az Y jel eset\u00e9ben is v\u00e9gezz\u00fck el. Vedd figyelembe, hogy a pr\u00f3banyomaton a gy\u0171r\u0151d\u00e9snek a fenti k\u00e9pen l\u00e1that\u00f3 \u00edves bev\u00e1g\u00e1sok mint\u00e1j\u00e1t kell k\u00f6vetnie. Ha nem \u00edgy van, akkor ez a hiba nem igaz\u00e1n gy\u0171r\u0151d\u00e9s, \u00e9s m\u00e1s eredet\u0171. Vagy mechanikai, vagy extruder probl\u00e9ma. Ezt kell el\u0151sz\u00f6r kijav\u00edtani, miel\u0151tt enged\u00e9lyezn\u00e9nk \u00e9s hangoln\u00e1nk a bemeneti form\u00e1z\u00f3kat. Ha a m\u00e9r\u00e9sek nem megb\u00edzhat\u00f3ak, mert p\u00e9ld\u00e1ul a rezg\u00e9sek k\u00f6z\u00f6tti t\u00e1vols\u00e1g nem stabil, az azt jelentheti, hogy a nyomtat\u00f3nak t\u00f6bb rezonanciafrekvenci\u00e1ja van ugyanazon a tengelyen. Megpr\u00f3b\u00e1lhatjuk helyette a A gy\u0171r\u0151d\u00e9si frekvenci\u00e1k megb\u00edzhatatlan m\u00e9r\u00e9sei szakaszban le\u00edrt hangol\u00e1si elj\u00e1r\u00e1st k\u00f6vetni, \u00e9s m\u00e9g mindig kaphatunk valami inf\u00f3t a bemeneti alak\u00edt\u00e1si technik\u00e1r\u00f3l. A gy\u0171r\u0151d\u00e9si frekvencia f\u00fcgghet a modell t\u00e1rgyasztalon bel\u00fcli helyzet\u00e9t\u0151l \u00e9s a Z magass\u00e1gt\u00f3l, k\u00fcl\u00f6n\u00f6sen a delta nyomtat\u00f3kn\u00e1l ; ellen\u0151rizheti, hogy a tesztmodell oldalai ment\u00e9n \u00e9s k\u00fcl\u00f6nb\u00f6z\u0151 magass\u00e1gokban k\u00fcl\u00f6nb\u00f6z\u0151 poz\u00edci\u00f3kban l\u00e1t-e k\u00fcl\u00f6nbs\u00e9get a frekvenci\u00e1kban. Ha ez a helyzet, akkor kisz\u00e1m\u00edthatja az X \u00e9s Y tengelyen m\u00e9rt \u00e1tlagos gy\u0171r\u0151d\u00e9si frekvenci\u00e1kat. Ha a m\u00e9rt gy\u0171r\u0151d\u00e9si frekvencia nagyon alacsony (kb. 20-25 Hz alatti), akkor \u00e9rdemes lehet a nyomtat\u00f3 merev\u00edt\u00e9s\u00e9re vagy a mozg\u00f3 t\u00f6meg cs\u00f6kkent\u00e9s\u00e9re beruh\u00e1zni - att\u00f3l f\u00fcgg\u0151en, hogy mi alkalmazhat\u00f3 a te esetedben -, miel\u0151tt a bemeneti alak\u00edt\u00e1s tov\u00e1bbi hangol\u00e1s\u00e1t folytatn\u00e1d, \u00e9s ut\u00e1na \u00fajra megm\u00e9rn\u00e9d a frekvenci\u00e1kat. Sok n\u00e9pszer\u0171 nyomtat\u00f3modell eset\u00e9ben gyakran m\u00e1r rendelkez\u00e9sre \u00e1ll n\u00e9h\u00e1ny megold\u00e1s. Vedd figyelembe, hogy a gy\u0171r\u0151d\u00e9si frekvenci\u00e1k v\u00e1ltozhatnak, ha a nyomtat\u00f3ban olyan v\u00e1ltoztat\u00e1sokat v\u00e9geznek, amelyek hat\u00e1ssal vannak a mozg\u00f3 t\u00f6megre, vagy p\u00e9ld\u00e1ul megv\u00e1ltoztatj\u00e1k a g\u00e9pv\u00e1z merevs\u00e9g\u00e9t: A nyomtat\u00f3fejre n\u00e9h\u00e1ny olyan eszk\u00f6zt telep\u00edtenek, elt\u00e1vol\u00edtanak vagy kicser\u00e9lnek, amelyek megv\u00e1ltoztatj\u00e1k annak t\u00f6meg\u00e9t, pl. \u00faj (nehezebb vagy k\u00f6nnyebb) l\u00e9ptet\u0151motor a k\u00f6zvetlen extrudernek vagy \u00faj nyomtat\u00f3fej telep\u00edt\u00e9se, neh\u00e9z, t\u00e1rgyh\u0171t\u0151vel ell\u00e1tott ventil\u00e1tor be\u00e9p\u00edt\u00e9se stb. A sz\u00edjak megh\u00faz\u00e1sa. A v\u00e1z merevs\u00e9g\u00e9nek n\u00f6vel\u00e9s\u00e9re szolg\u00e1l\u00f3 n\u00e9h\u00e1ny kieg\u00e9sz\u00edt\u00e9s telep\u00edtve van. K\u00fcl\u00f6nb\u00f6z\u0151 t\u00e1rgyasztal van telep\u00edtve egy Y t\u00e1rgyasztalos nyomtat\u00f3ra, vagy \u00fcveg hozz\u00e1ad\u00e1sa stb. Ha ilyen v\u00e1ltoztat\u00e1sokat hajtanak v\u00e9gre, akkor \u00e9rdemes legal\u00e1bb a gy\u0171r\u0151d\u00e9si frekvenci\u00e1kat megm\u00e9rni, hogy l\u00e1ss\u00e1k, v\u00e1ltoztak-e azok. Bemeneti form\u00e1z\u00f3 konfigur\u00e1ci\u00f3ja \u00b6 Az X \u00e9s Y tengelyek gy\u0171r\u0151d\u00e9si frekvenci\u00e1j\u00e1nak m\u00e9r\u00e9se ut\u00e1n a k\u00f6vetkez\u0151 szakaszt adhatja hozz\u00e1 a printer.cfg f\u00e1jlhoz: [input_shaper] shaper_freq_x: ... # a tesztmodell X jel\u00e9nek frekvenci\u00e1ja shaper_freq_y: ... # a tesztmodell Y jel\u00e9nek frekvenci\u00e1ja A fenti p\u00e9ld\u00e1ban a shaper_freq_x/y = 49.4. Bemeneti form\u00e1z\u00f3 kiv\u00e1laszt\u00e1sa \u00b6 A Klipper sz\u00e1mos bemeneti form\u00e1z\u00f3t t\u00e1mogat. Ezek a rezonanciafrekvenci\u00e1t meghat\u00e1roz\u00f3 hib\u00e1kra val\u00f3 \u00e9rz\u00e9kenys\u00e9g\u00fckben \u00e9s abban k\u00fcl\u00f6nb\u00f6znek, hogy milyen m\u00e9rt\u00e9k\u0171 sim\u00edt\u00e1st okoznak a nyomtatott alkatr\u00e9szekben. Emellett n\u00e9h\u00e1ny shapert, p\u00e9ld\u00e1ul a 2HUMP_EI \u00e9s a 3HUMP_EI form\u00e1z\u00f3kat \u00e1ltal\u00e1ban nem szabad haszn\u00e1lni shaper_freq = rezonanciafrekvenci\u00e1val - ezek k\u00fcl\u00f6nb\u00f6z\u0151 megfontol\u00e1sokb\u00f3l vannak be\u00e1ll\u00edtva, hogy egyszerre t\u00f6bb rezonanci\u00e1t cs\u00f6kkentsenek. A legt\u00f6bb nyomtat\u00f3hoz MZV vagy EI alak\u00edt\u00f3k aj\u00e1nlhat\u00f3k. Ez a szakasz egy tesztel\u00e9si elj\u00e1r\u00e1st \u00edr le a kett\u0151 k\u00f6z\u00f6tti v\u00e1laszt\u00e1shoz, valamint n\u00e9h\u00e1ny egy\u00e9b kapcsol\u00f3d\u00f3 param\u00e9ter meghat\u00e1roz\u00e1s\u00e1hoz. Nyomtasd ki a gy\u0171r\u0151d\u00e9si tesztmodellt az al\u00e1bbiak szerint: Ind\u00edtsa \u00fajra a firmware-t: RESTART K\u00e9sz\u00fclj\u00f6n fel a tesztre: SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 Nyom\u00e1s el\u0151tol\u00e1s kikapcsol\u00e1sa: SET_PRESSURE_ADVANCE ADVANCE=0 Add ki a parancsot: SET_INPUT_SHAPER SHAPER_TYPE=MZV Add ki a parancsot: TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Nyomtasd ki a szeletelt tesztmodellt a javasolt param\u00e9terekkel. Ha ezen a ponton nem l\u00e1t gy\u0171r\u0151d\u00e9st, akkor az MZV form\u00e1z\u00f3 haszn\u00e1lat\u00e1t lehet javasolni. Ha m\u00e9gis gy\u0171r\u0151d\u00e9st \u00e9szlelsz, m\u00e9rd meg \u00fajra a frekvenci\u00e1kat a Gy\u0171r\u0151d\u00e9si frekvencia szakaszban le\u00edrt (8)-(10) l\u00e9p\u00e9sekkel. Ha a frekvenci\u00e1k jelent\u0151sen elt\u00e9rnek a kor\u00e1bban kapott \u00e9rt\u00e9kekt\u0151l, akkor \u00f6sszetettebb bemeneti alak\u00edt\u00f3 konfigur\u00e1ci\u00f3ra van sz\u00fcks\u00e9g. L\u00e1sd a Bemeneti alak\u00edt\u00f3k szakasz m\u0171szaki r\u00e9szleteit. Ellenkez\u0151 esetben folytasd a k\u00f6vetkez\u0151 l\u00e9p\u00e9ssel. Most pr\u00f3b\u00e1ld ki az EI bemeneti alak\u00edt\u00f3t. Ehhez ism\u00e9telje meg a fenti (1)-(6) l\u00e9p\u00e9seket, de a 4. l\u00e9p\u00e9sn\u00e9l hajtsd v\u00e9gre a k\u00f6vetkez\u0151 parancsot: SET_INPUT_SHAPER SHAPER_TYPE=EI . K\u00e9t nyomat \u00f6sszehasonl\u00edt\u00e1sa MZV \u00e9s EI bemeneti alak\u00edt\u00f3val. Ha az EI \u00e9szrevehet\u0151en jobb eredm\u00e9nyt mutat, mint az MZV, akkor haszn\u00e1ld az EI alak\u00edt\u00f3t, egy\u00e9bk\u00e9nt ink\u00e1bb az MZV-t. Vedd figyelembe, hogy az EI shaper t\u00f6bb sim\u00edt\u00e1st okoz a nyomtatott alkatr\u00e9szeken (tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a k\u00f6vetkez\u0151 szakaszt). Add hozz\u00e1 a shaper_type: mzv (vagy ei) param\u00e9tert az [input_shaper] szakaszhoz, pl.: [input_shaper] shaper_freq_x: ... shaper_freq_y: ... shaper_type: mzv N\u00e9h\u00e1ny megjegyz\u00e9s a form\u00e1z\u00f3 kiv\u00e1laszt\u00e1s\u00e1r\u00f3l: Az EI-form\u00e1z\u00f3 alkalmasabb lehet az Y t\u00e1rgyasztalos nyomtat\u00f3khoz (ha a rezonanciafrekvencia \u00e9s az ebb\u0151l ered\u0151 sim\u00edt\u00e1s lehet\u0151v\u00e9 teszi): mivel t\u00f6bb sz\u00e1l ker\u00fcl a mozg\u00f3 t\u00e1rgyasztalra, a t\u00e1rgyasztal t\u00f6mege n\u0151, \u00e9s a rezonanciafrekvencia cs\u00f6kken. Mivel az EI shaper robusztusabb a rezonanciafrekvencia-v\u00e1ltoz\u00e1sokkal szemben, jobban m\u0171k\u00f6dhet nagy m\u00e9ret\u0171 alkatr\u00e9szek nyomtat\u00e1sakor. A delta kinematika term\u00e9szet\u00e9b\u0151l ad\u00f3d\u00f3an a rezonanciafrekvenci\u00e1k a t\u00e9rfogat k\u00fcl\u00f6nb\u00f6z\u0151 r\u00e9szein nagym\u00e9rt\u00e9kben elt\u00e9rhetnek. Ez\u00e9rt az EI alak\u00edt\u00f3 jobban illeszkedhet a delta nyomtat\u00f3khoz, mint az MZV vagy a ZV, \u00e9s megfontoland\u00f3 a haszn\u00e1lata. Ha a rezonanciafrekvencia kell\u0151en nagy (50-60 Hz-n\u00e9l nagyobb), akkor ak\u00e1r meg is pr\u00f3b\u00e1lkozhatunk a 2HUMP_EI shaper tesztel\u00e9s\u00e9vel (a fent javasolt teszt futtat\u00e1s\u00e1val a SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI ), de ellen\u0151rizd ebben a szakaszban tal\u00e1lhat\u00f3 megfontol\u00e1sokat, miel\u0151tt enged\u00e9lyezn\u00e9d. A max_accel kiv\u00e1laszt\u00e1sa \u00b6 Az el\u0151z\u0151 l\u00e9p\u00e9sben kiv\u00e1lasztott form\u00e1z\u00f3hoz nyomtatott tesztet kell k\u00e9sz\u00edtenie (ha nem nyomtatja ki a javasolt param\u00e9terekkel felszeletelt tesztmodellt a nyom\u00e1s el\u0151tol\u00e1s kikapcsol\u00e1s\u00e1val SET_PRESSURE_ADVANCE ADVANCE=0 \u00e9s a tuningtorony enged\u00e9lyez\u00e9s\u00e9vel TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 ). Vedd figyelembe, hogy nagyon nagy gyorsul\u00e1sokn\u00e1l a rezonanciafrekvenci\u00e1t\u00f3l \u00e9s a v\u00e1lasztott bemeneti alak\u00edt\u00f3t\u00f3l f\u00fcgg\u0151en (pl. az EI alak\u00edt\u00f3 nagyobb sim\u00edt\u00e1st hoz l\u00e9tre, mint az MZV) a bemeneti alak\u00edt\u00e1s t\u00fal nagy sim\u00edt\u00e1st \u00e9s az alkatr\u00e9szek lekerek\u00edt\u00e9s\u00e9t okozhatja. A max_accel \u00e9rt\u00e9ket teh\u00e1t \u00fagy kell megv\u00e1lasztani, hogy ezt megakad\u00e1lyozza. Egy m\u00e1sik param\u00e9ter, amely hat\u00e1ssal lehet a sim\u00edt\u00e1sra, az square_corner_velocity , ez\u00e9rt nem tan\u00e1csos az alap\u00e9rtelmezett 5 mm/sec f\u00f6l\u00e9 n\u00f6velni, hogy megakad\u00e1lyozzuk a fokozott sim\u00edt\u00e1st. A megfelel\u0151 max_accel \u00e9rt\u00e9k kiv\u00e1laszt\u00e1s\u00e1hoz vizsg\u00e1ld meg a kiv\u00e1lasztott bemeneti alak\u00edt\u00f3 modellj\u00e9t. El\u0151sz\u00f6r is jegyezze meg, hogy melyik gyorsul\u00e1sn\u00e1l m\u00e9g kicsi a gyorsul\u00e1s gy\u0171r\u0151d\u00e9se hogy Neked ez megfeleljen. Ezut\u00e1n ellen\u0151rizd a sim\u00edt\u00e1st. Ennek el\u0151seg\u00edt\u00e9se \u00e9rdek\u00e9ben a tesztmodellben egy kis r\u00e9s van a falon (0,15 mm): Ahogy n\u0151 a gyorsul\u00e1s, \u00fagy n\u0151 a sim\u00edt\u00e1s is, \u00e9s a t\u00e9nyleges r\u00e9s a nyomtat\u00e1sban kisz\u00e9lesedik: Ezen a k\u00e9pen a gyorsul\u00e1s balr\u00f3l jobbra n\u00f6vekszik, \u00e9s a r\u00e9s 3500 mm/sec^2-t\u0151l (balr\u00f3l az 5. s\u00e1v) kezd n\u0151ni. Teh\u00e1t ebben az esetben a max_accel = 3000 (mm/sec^2) a j\u00f3 \u00e9rt\u00e9k, hogy elker\u00fclj\u00fck a t\u00falzott sim\u00edt\u00e1st. Figyelje meg a gyorsul\u00e1st, amikor a r\u00e9s m\u00e9g mindig nagyon kicsi a pr\u00f3banyomaton. Ha kidudorod\u00e1sokat l\u00e1t, de a falon egy\u00e1ltal\u00e1n nincs r\u00e9s, m\u00e9g nagy gyorsul\u00e1sn\u00e1l is, az a kikapcsolt nyom\u00e1sel\u0151tol\u00e1s miatt lehet, k\u00fcl\u00f6n\u00f6sen a bowdenes extrudereken. Ha ez a helyzet, akkor lehet, hogy meg kell ism\u00e9telni a nyomtat\u00e1st enged\u00e9lyezett PA-val. Ez lehet a rosszul kalibr\u00e1lt (t\u00fal magas) nyomtat\u00f3sz\u00e1l \u00e1raml\u00e1s eredm\u00e9nye is, ez\u00e9rt ezt is \u00e9rdemes ellen\u0151rizni. V\u00e1laszd ki a k\u00e9t gyorsul\u00e1si \u00e9rt\u00e9k k\u00f6z\u00fcl a legkisebbet (a gy\u0171r\u0151d\u00e9sb\u0151l \u00e9s a sim\u00edt\u00e1sb\u00f3l), \u00e9s \u00edrd be max_accel n\u00e9ven a printer.cfg f\u00e1jlba. Megjegyzend\u0151, hogy el\u0151fordulhat k\u00fcl\u00f6n\u00f6sen alacsony gy\u0171r\u0151d\u00e9si frekvenci\u00e1kn\u00e1l, hogy az EI shaper m\u00e9g kisebb gyorsul\u00e1sokn\u00e1l is t\u00fal nagy sim\u00edt\u00e1st okoz. Ebben az esetben az MZV jobb v\u00e1laszt\u00e1s lehet, mert nagyobb gyorsul\u00e1si \u00e9rt\u00e9keket engedhet meg. Nagyon alacsony gy\u0171r\u0151d\u00e9si frekvenci\u00e1kon (~25 Hz \u00e9s az alatt) m\u00e9g az MZV shaper is t\u00fal sok sim\u00edt\u00e1st hozhat l\u00e9tre. Ha ez a helyzet, akkor megpr\u00f3b\u00e1lhatod megism\u00e9telni a Bemeneti form\u00e1z\u00f3 kiv\u00e1laszt\u00e1sa szakaszban le\u00edrt l\u00e9p\u00e9seket ZV shaper-el is, a SET_INPUT_SHAPER SHAPER_TYPE=ZV parancs haszn\u00e1lat\u00e1val. A ZV shaper-nek m\u00e9g kevesebb sim\u00edt\u00e1st kell mutatnia, mint az MZV-nek, de \u00e9rz\u00e9kenyebb a gy\u0171r\u0151d\u00e9si frekvenci\u00e1k m\u00e9r\u00e9si hib\u00e1ira. Egy m\u00e1sik szempont, hogy ha a rezonanciafrekvencia t\u00fal alacsony (20-25 Hz alatt), akkor \u00e9rdemes lehet n\u00f6velni a nyomtat\u00f3 v\u00e1z\u00e1nak merevs\u00e9g\u00e9t vagy cs\u00f6kkenteni a mozg\u00f3 t\u00f6meget. Ellenkez\u0151 esetben a gyorsul\u00e1s \u00e9s a nyomtat\u00e1si sebess\u00e9g korl\u00e1toz\u00f3dhat a t\u00fal sok sim\u00edt\u00e1s miatt most a gy\u0171r\u0151d\u00e9s helyett. A rezonanciafrekvenci\u00e1k finomhangol\u00e1sa \u00b6 Megjegyzend\u0151, hogy a rezonanciafrekvenci\u00e1k m\u00e9r\u00e9s\u00e9nek pontoss\u00e1ga a gy\u0171r\u0151d\u00e9si tesztmodell seg\u00edts\u00e9g\u00e9vel a legt\u00f6bb c\u00e9lra elegend\u0151, \u00edgy tov\u00e1bbi hangol\u00e1s nem javasolt. Ha m\u00e9gis meg akarja pr\u00f3b\u00e1lni k\u00e9tszeresen ellen\u0151rizni az eredm\u00e9nyeit (p\u00e9ld\u00e1ul ha m\u00e9g mindig l\u00e1t n\u00e9mi gy\u0171r\u0151d\u00e9st, miut\u00e1n kinyomtatott egy tesztmodellt egy tetsz\u0151leges bemeneti alak\u00edt\u00f3val, ugyanazokkal a frekvenci\u00e1kkal, mint amiket kor\u00e1bban m\u00e9rt), akkor k\u00f6vesse az ebben a szakaszban le\u00edrt l\u00e9p\u00e9seket. Vedd figyelembe, hogy ha az [input_shaper] enged\u00e9lyez\u00e9se ut\u00e1n k\u00fcl\u00f6nb\u00f6z\u0151 frekvenci\u00e1kon l\u00e1t gy\u0171r\u0151d\u00e9st, ez a szakasz nem fog seg\u00edteni. Felt\u00e9telezve, hogy felszeletelte a gy\u0171r\u0151d\u00e9si modellt a javasolt param\u00e9terekkel, hajtsd v\u00e9gre a k\u00f6vetkez\u0151 l\u00e9p\u00e9seket az X \u00e9s Y tengelyek mindegyik\u00e9n: K\u00e9sz\u00fclj\u00f6n fel a tesztre: SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 Gy\u0151z\u0151dj meg r\u00f3la, hogy a Pressure Advance ki van kapcsolva: SET_PRESSURE_ADVANCE ADVANCE=0 Add ki a parancsot: SET_INPUT_SHAPER SHAPER_TYPE=ZV A megl\u00e9v\u0151 gy\u0171r\u0151d\u00e9si tesztmodellb\u0151l a kiv\u00e1lasztott bemeneti alak\u00edt\u00f3val v\u00e1laszd ki azt a gyorsul\u00e1st, amely kell\u0151en j\u00f3l mutatja a gy\u0171r\u0151d\u00e9st, \u00e9s \u00e1ll\u00edtsd be a k\u00f6vetkez\u0151vel: SET_VELOCITY_LIMIT ACCEL=... Sz\u00e1m\u00edtsa ki a TUNING_TOWER parancshoz sz\u00fcks\u00e9ges param\u00e9tereket a shaper_freq_x param\u00e9ter hangol\u00e1s\u00e1hoz az al\u00e1bbiak szerint: Itt a shaper_freq_x param\u00e9ter a nyomtat\u00f3 aktu\u00e1lis \u00e9rt\u00e9ke a printer.cfg f\u00e1jlban megadva. Add ki a parancsot: TUNING_TOWER COMMAND=SET_INPUT_SHAPER PARAMETER=SHAPER_FREQ_X START=start FACTOR=factor BAND=5 a start \u00e9s factor \u00e9rt\u00e9kek felhaszn\u00e1l\u00e1s\u00e1val, amelyeket az (5.) l\u00e9p\u00e9sben sz\u00e1m\u00edtottunk. Nyomtasd ki a tesztmodellt. Az eredeti frekvencia\u00e9rt\u00e9k vissza\u00e1ll\u00edt\u00e1sa: SET_INPUT_SHAPER SHAPER_FREQ_X=... . Keresse meg azt a s\u00e1vot, amelyik a legkev\u00e9sb\u00e9 gy\u0171r\u00f6tt, \u00e9s sz\u00e1molja meg a sz\u00e1m\u00e1t alulr\u00f3l 1-t\u0151l kezdve. Az \u00faj shaper_freq_x \u00e9rt\u00e9k kisz\u00e1m\u00edt\u00e1sa a r\u00e9gi shaper_freq_x * (39 + 5 * #band-number) / 66 seg\u00edts\u00e9g\u00e9vel. Ism\u00e9telje meg ezeket a l\u00e9p\u00e9seket az Y tengelyre ugyan\u00edgy, az X tengelyre val\u00f3 hivatkoz\u00e1sokat az Y tengelyre val\u00f3 hivatkoz\u00e1ssal helyettes\u00edtve (pl. cser\u00e9lje ki a shaper_freq_x -t shaper_freq_y -ra a k\u00e9pletekben \u00e9s a TUNING_TOWER parancsban). P\u00e9ldak\u00e9nt tegy\u00fck fel, hogy az egyik tengelyen 45 Hz-es gy\u0171r\u0151d\u00e9si frekvenci\u00e1t m\u00e9rt\u00fcnk. Ez a start = 45 * 83 / 132 = 28,30 \u00e9s a faktor = 45 / 66 = 0,6818 \u00e9rt\u00e9ket ad a TUNING_TOWER parancshoz. Most tegy\u00fck fel, hogy a tesztmodell kinyomtat\u00e1sa ut\u00e1n az alulr\u00f3l sz\u00e1m\u00edtott negyedik s\u00e1v adja a legkevesebb gy\u0171r\u0151d\u00e9st. Ekkor a friss\u00edtett shaper_freq_? \u00e9rt\u00e9k 45 * (39 + 5 * 4) / 66 \u2248 40,23. Miut\u00e1n mindk\u00e9t \u00faj shaper_freq_x \u00e9s shaper_freq_y param\u00e9tert kisz\u00e1m\u00edtotta, friss\u00edtheti az [input_shaper] szakasz\u00e1t a nyomtat\u00f3 printer.cfg f\u00e1jlj\u00e1ban az \u00faj shaper_freq_x \u00e9s shaper_freq_y \u00e9rt\u00e9kekkel. Nyom\u00e1s el\u0151tol\u00e1s \u00b6 Ha Pressure Advance-t haszn\u00e1l, akkor lehet, hogy \u00fajra kell hangolni. K\u00f6vesse az utas\u00edt\u00e1sokat az \u00faj \u00e9rt\u00e9k megtal\u00e1l\u00e1s\u00e1hoz, ha az elt\u00e9r az el\u0151z\u0151t\u0151l. A Pressure Advance be\u00e1ll\u00edt\u00e1sa el\u0151tt mindenk\u00e9ppen ind\u00edtsa \u00fajra a Klippert. A gy\u0171r\u0151d\u00e9si frekvenci\u00e1k megb\u00edzhatatlan m\u00e9r\u00e9sei \u00b6 Ha nem tudja m\u00e9rni a gy\u0171r\u0151d\u00e9si frekvenci\u00e1kat, pl. ha a rezg\u00e9sek k\u00f6z\u00f6tti t\u00e1vols\u00e1g nem stabil, akkor m\u00e9g mindig kihaszn\u00e1lhatod a bemeneti alak\u00edt\u00e1si technik\u00e1kat, de az eredm\u00e9nyek nem biztos, hogy olyan j\u00f3k lesznek, mint a frekvenci\u00e1k megfelel\u0151 m\u00e9r\u00e9s\u00e9vel. Valamint egy kicsit t\u00f6bb hangol\u00e1st \u00e9s a tesztmodell nyomtat\u00e1s\u00e1t ig\u00e9nyli. Megjegyzend\u0151, hogy egy m\u00e1sik lehet\u0151s\u00e9g egy gyorsul\u00e1sm\u00e9r\u0151 beszerz\u00e9se \u00e9s felszerel\u00e9se, valamint a rezonanci\u00e1k m\u00e9r\u00e9se (l\u00e1sd a dokumentumot , amely le\u00edrja a sz\u00fcks\u00e9ges hardvert \u00e9s a be\u00e1ll\u00edt\u00e1si folyamatot) - de ez a lehet\u0151s\u00e9g n\u00e9mi k\u00e9z\u00fcgyess\u00e9get, krimpel\u00e9st \u00e9s forraszt\u00e1st ig\u00e9nyel. A hangol\u00e1shoz adjunk hozz\u00e1 \u00fcres [input_shaper] szakaszt a printer.cfg f\u00e1jlhoz. Ezut\u00e1n, felt\u00e9telezve, hogy a javasolt param\u00e9terekkel felszeletelte a gy\u0171r\u0151d\u00e9si modellt, nyomtasd ki 3-szor az al\u00e1bbiak szerint. Els\u0151 alkalommal, a nyomtat\u00e1s el\u0151tt futtassa le a RESTART SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 SET_PRESSURE_ADVANCE ADVANCE=0 SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=60 SHAPER_FREQ_Y=60 TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 \u00e9s nyomtasd ki a modellt. Ezut\u00e1n nyomtasd ki a modellt \u00fajra, de a nyomtat\u00e1s el\u0151tt futtassa az al\u00e1bbiakat SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=50 SHAPER_FREQ_Y=50 TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Ezut\u00e1n nyomtassuk ki a modellt harmadszorra, de most futtassuk le a k\u00f6vetkez\u0151t SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=40 SHAPER_FREQ_Y=40 TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 L\u00e9nyeg\u00e9ben a gy\u0171r\u0151d\u00e9si tesztmodellt TUNING_TOWER seg\u00edts\u00e9g\u00e9vel nyomtatjuk ki, 2HUMP_EI shaperrel, shaper_freq = 60 Hz, 50 Hz \u00e9s 40 Hz. Ha egyik modell sem mutat javul\u00e1st a gy\u0171r\u0151d\u00e9sben, akkor sajnos \u00fagy t\u0171nik, hogy a bemeneti alak\u00edt\u00e1si technik\u00e1k nem seg\u00edthetnek az \u00d6n eset\u00e9ben. M\u00e1sk\u00fcl\u00f6nben el\u0151fordulhat, hogy az \u00f6sszes modell nem mutat gy\u0171r\u0151d\u00e9st, vagy n\u00e9h\u00e1ny modell gy\u0171r\u0151d\u00e9st mutat, n\u00e9h\u00e1ny pedig nem annyira. V\u00e1laszd ki azt a tesztmodellt, amelyik a legmagasabb frekvenci\u00e1val k\u00e9sz\u00fclt, \u00e9s m\u00e9g mindig j\u00f3 javul\u00e1st mutat a gy\u0171r\u0151d\u00e9sek tekintet\u00e9ben. Ha p\u00e9ld\u00e1ul a 40 Hz-es \u00e9s az 50 Hz-es modellek szinte egy\u00e1ltal\u00e1n nem mutatnak gy\u0171r\u0151d\u00e9st, a 60 Hz-es modell pedig m\u00e1r n\u00e9mileg t\u00f6bb gy\u0171r\u0151d\u00e9st mutat, maradj az 50 Hz-esn\u00e9l. Most ellen\u0151rizd, hogy az EI alak\u00edt\u00f3 el\u00e9g j\u00f3 lenne-e az esetedben. V\u00e1laszd ki az EI alak\u00edt\u00f3 frekvenci\u00e1j\u00e1t az \u00e1ltalad v\u00e1lasztott 2HUMP_EI alak\u00edt\u00f3 frekvenci\u00e1ja alapj\u00e1n: A 2HUMP_EI 60 Hz-es form\u00e1z\u00f3 eset\u00e9ben haszn\u00e1lj EI form\u00e1z\u00f3t shaper_freq = 50 Hz-es frekvenci\u00e1val. A 2HUMP_EI 50 Hz-es form\u00e1z\u00f3hoz haszn\u00e1lj EI form\u00e1z\u00f3t shaper_freq = 40 Hz \u00e9rt\u00e9kkel. A 2HUMP_EI 40 Hz-es form\u00e1z\u00f3hoz haszn\u00e1lj EI form\u00e1z\u00f3t shaper_freq = 33 Hz \u00e9rt\u00e9kkel. Most nyomtassuk ki a tesztmodellt m\u00e9g egyszer, a k\u00f6vetkez\u0151 futtat\u00e1s\u00e1val SET_INPUT_SHAPER SHAPER_TYPE=EI SHAPER_FREQ_X=... SHAPER_FREQ_Y=... TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 a kor\u00e1bban meghat\u00e1rozott shaper_freq_x=... \u00e9s shaper_freq_y=... \u00e9rt\u00e9kek megad\u00e1s\u00e1val. Ha az EI alak\u00edt\u00f3 a 2HUMP_EI alak\u00edt\u00f3hoz hasonl\u00f3an j\u00f3 eredm\u00e9nyeket mutat, maradj az EI alak\u00edt\u00f3 \u00e9s a kor\u00e1bban meghat\u00e1rozott frekvencia mellett, ellenkez\u0151 esetben haszn\u00e1ld a 2HUMP_EI alak\u00edt\u00f3t a megfelel\u0151 frekvenci\u00e1val. Add hozz\u00e1 az eredm\u00e9nyeket a printer.cfg f\u00e1jlhoz, pl. a k\u00f6vetkez\u0151 m\u00f3don. [input_shaper] shaper_freq_x: 50 shaper_freq_y: 50 shaper_type: 2hump_ei Folytassa a hangol\u00e1st a A max_accel kiv\u00e1laszt\u00e1sa szakaszban. Hibaelh\u00e1r\u00edt\u00e1s \u00e9s GYIK \u00b6 Nem tudok megb\u00edzhat\u00f3 m\u00e9r\u00e9seket v\u00e9gezni a rezonanciafrekvenci\u00e1kr\u00f3l \u00b6 El\u0151sz\u00f6r is gy\u0151z\u0151dj meg r\u00f3la, hogy a gy\u0171r\u0151d\u00e9s helyett nem m\u00e1s probl\u00e9ma van a nyomtat\u00f3val. Ha a m\u00e9r\u00e9sek nem megb\u00edzhat\u00f3ak, mert p\u00e9ld\u00e1ul a rezg\u00e9sek k\u00f6z\u00f6tti t\u00e1vols\u00e1g nem stabil, az azt jelentheti, hogy a nyomtat\u00f3nak t\u00f6bb rezonanciafrekvenci\u00e1ja van ugyanazon a tengelyen. Megpr\u00f3b\u00e1lhatjuk k\u00f6vetni a A gy\u0171r\u0151d\u00e9si frekvenci\u00e1k megb\u00edzhatatlan m\u00e9r\u00e9sei szakaszban le\u00edrt hangol\u00e1si elj\u00e1r\u00e1st, \u00e9s m\u00e9g mindig ki lehet hozni valamit a bemeneti alak\u00edt\u00e1si technik\u00e1b\u00f3l. Egy m\u00e1sik lehet\u0151s\u00e9g egy gyorsul\u00e1sm\u00e9r\u0151 beszerel\u00e9se, majd rezonanci\u00e1k m\u00e9r\u00e9se vele, \u00e9s a bemeneti alak\u00edt\u00f3 automatikus hangol\u00e1sa e m\u00e9r\u00e9sek eredm\u00e9nyeinek felhaszn\u00e1l\u00e1s\u00e1val. Az [input_shaper] enged\u00e9lyez\u00e9se ut\u00e1n t\u00fals\u00e1gosan sim\u00edtott nyomtatott alkatr\u00e9szeket kapok, \u00e9s a finom r\u00e9szletek elvesznek \u00b6 Ellen\u0151rizd a Max_accel kiv\u00e1laszt\u00e1sa szakaszban tal\u00e1lhat\u00f3 szempontokat. Ha a rezonanciafrekvencia alacsony, nem szabad t\u00fal magas max_accel \u00e9rt\u00e9ket be\u00e1ll\u00edtani, vagy n\u00f6velni a square_corner_velocity param\u00e9tereket. Az is lehet, hogy az EI (vagy a 2HUMP_EI \u00e9s 3HUMP_EI) v\u00e1ltoz\u00f3k helyett jobb az MZV vagy ak\u00e1r a ZV bemeneti v\u00e1ltoz\u00f3kat v\u00e1lasztani. Miut\u00e1n egy ideig sikeresen nyomtatott gy\u0171r\u0151d\u00e9sek n\u00e9lk\u00fcl, most \u00fagy t\u0171nik, hogy visszaj\u00f6tt \u00b6 Lehets\u00e9ges, hogy egy id\u0151 ut\u00e1n a rezonanciafrekvenci\u00e1k megv\u00e1ltoztak. Pl. tal\u00e1n a sz\u00edjak feszess\u00e9ge megv\u00e1ltozott (a sz\u00edjak laz\u00e1bbak lettek) stb. J\u00f3 \u00f6tlet a Gy\u0171r\u0151d\u00e9si frekvencia szakaszban le\u00edrtak szerint ellen\u0151rizni \u00e9s \u00fajra megm\u00e9rni a rezonanciafrekvenci\u00e1kat, \u00e9s sz\u00fcks\u00e9g eset\u00e9n friss\u00edteni a konfigur\u00e1ci\u00f3s f\u00e1jlt. T\u00e1mogatott a kett\u0151s kocsi be\u00e1ll\u00edt\u00e1sa a bemeneti form\u00e1z\u00f3kkal? \u00b6 Nincs k\u00fcl\u00f6n t\u00e1mogat\u00e1s a bemeneti form\u00e1z\u00f3kkal ell\u00e1tott kett\u0151s kocsikhoz, de ez nem jelenti azt, hogy ez a be\u00e1ll\u00edt\u00e1s nem fog m\u0171k\u00f6dni. A hangol\u00e1st k\u00e9tszer kell lefuttatni mindk\u00e9t kocsira, \u00e9s az X- \u00e9s Y-tengelyek gy\u0171r\u0151d\u00e9si frekvenci\u00e1it mindk\u00e9t kocsira f\u00fcggetlen\u00fcl kell kisz\u00e1m\u00edtani. Ezut\u00e1n a 0. kocsira vonatkoz\u00f3 \u00e9rt\u00e9keket tegye az [input_shaper] szakaszba, \u00e9s a kocsik v\u00e1lt\u00e1sakor menet k\u00f6zben v\u00e1ltoztassa meg az \u00e9rt\u00e9keket, p\u00e9ld\u00e1ul valamilyen makr\u00f3 seg\u00edts\u00e9g\u00e9vel: SET_DUAL_CARRIAGE CARRIAGE=1 SET_INPUT_SHAPER SHAPER_FREQ_X=... SHAPER_FREQ_Y=... \u00c9s ugyan\u00edgy a 0 kocsira val\u00f3 visszakapcsol\u00e1skor is. Az input_shaper befoly\u00e1solja a nyomtat\u00e1si id\u0151t? \u00b6 Nem, a input_shaper funkci\u00f3 \u00f6nmag\u00e1ban nincs hat\u00e1ssal a nyomtat\u00e1si id\u0151re. A max_accel \u00e9rt\u00e9ke azonban bizonyosan befoly\u00e1solja (ennek a param\u00e9ternek a hangol\u00e1sa ebben a szakaszban le van \u00edrva). M\u0171szaki r\u00e9szletek \u00b6 Bemeneti v\u00e1ltoz\u00f3k \u00b6 A Klipperben haszn\u00e1lt bemeneti form\u00e1z\u00f3k meglehet\u0151sen szabv\u00e1nyosak, \u00e9s r\u00e9szletesebb \u00e1ttekint\u00e9st a megfelel\u0151 form\u00e1z\u00f3kat le\u00edr\u00f3 cikkekben tal\u00e1lhatunk. Ez a szakasz a t\u00e1mogatott bemeneti form\u00e1z\u00f3k n\u00e9h\u00e1ny technikai szempontj\u00e1nak r\u00f6vid \u00e1ttekint\u00e9s\u00e9t tartalmazza. Az al\u00e1bbi t\u00e1bl\u00e1zat az egyes shaperek n\u00e9h\u00e1ny (\u00e1ltal\u00e1ban hozz\u00e1vet\u0151leges) param\u00e9ter\u00e9t mutatja. Bemeneti v\u00e1ltoz\u00f3 V\u00e1ltoz\u00f3 id\u0151tartam Rezonancia cs\u00f6kkent\u00e9s 20x (5% rezg\u00e9st\u0171r\u00e9s) Rezonancia cs\u00f6kkent\u00e9s 10x (10% rezg\u00e9st\u0171r\u00e9s) ZV 0.5 / shaper_freq N/A \u00b1 5% shaper_freq MZV 0.75 / shaper_freq \u00b1 4% shaper_freq -10%...+15% shaper_freq ZVD 1 / shaper_freq \u00b1 15% shaper_freq \u00b1 22% shaper_freq EI 1 / shaper_freq \u00b1 20% shaper_freq \u00b1 25% shaper_freq 2HUMP_EI 1.5 / shaper_freq \u00b1 35% shaper_freq \u00b1 40 shaper_freq 3HUMP_EI 2 / shaper_freq -45...+50% shaper_freq -50%...+55% shaper_freq Megjegyz\u00e9s a rezonancia cs\u00f6kkent\u00e9ssel kapcsolatban: a fenti t\u00e1bl\u00e1zatban szerepl\u0151 \u00e9rt\u00e9kek hozz\u00e1vet\u0151legesek. Ha a nyomtat\u00f3 csillap\u00edt\u00e1si ar\u00e1nya minden egyes tengely eset\u00e9ben ismert, akkor a form\u00e1z\u00f3 pontosabban konfigur\u00e1lhat\u00f3, \u00e9s ekkor a rezonanci\u00e1kat egy kicsit sz\u00e9lesebb frekvenciatartom\u00e1nyban cs\u00f6kkenti. A csillap\u00edt\u00e1si ar\u00e1ny azonban \u00e1ltal\u00e1ban ismeretlen, \u00e9s speci\u00e1lis berendez\u00e9s n\u00e9lk\u00fcl neh\u00e9z megbecs\u00fclni, ez\u00e9rt a Klipper alap\u00e9rtelmez\u00e9s szerint 0,1 \u00e9rt\u00e9ket haszn\u00e1l, ami egy j\u00f3 \u00e1ltal\u00e1nos \u00e9rt\u00e9k. A t\u00e1bl\u00e1zatban szerepl\u0151 frekvenciatartom\u00e1nyok sz\u00e1mos k\u00fcl\u00f6nb\u00f6z\u0151 lehets\u00e9ges csillap\u00edt\u00e1si ar\u00e1nyt fednek le ezen \u00e9rt\u00e9k k\u00f6r\u00fcl (kb. 0,05-t\u0151l 0,2-ig). Vedd figyelembe azt is, hogy az EI, 2HUMP_EI \u00e9s 3HUMP_EI \u00fagy van be\u00e1ll\u00edtva, hogy a rezonanci\u00e1kat 5%-ra cs\u00f6kkentse, ez\u00e9rt a 10%-os rezonanci\u00e1ra vonatkoz\u00f3 \u00e9rt\u00e9kek csak referenciak\u00e9nt szolg\u00e1lnak. Hogyan haszn\u00e1ljuk ezt a t\u00e1bl\u00e1zatot: A form\u00e1z\u00f3 id\u0151tartama befoly\u00e1solja az alkatr\u00e9szek sim\u00edt\u00e1s\u00e1t - min\u00e9l nagyobb, ann\u00e1l sim\u00e1bbak az alkatr\u00e9szek. Ez a f\u00fcgg\u0151s\u00e9g nem line\u00e1ris, de \u00e9rz\u00e9kelteti, hogy ugyanazon frekvencia eset\u00e9n melyik shaper 'sim\u00edt\u00f3' sim\u00edt jobban. A sim\u00edt\u00e1s szerinti sorrend \u00edgy n\u00e9z ki: ZV < MZV < ZVD \u2248 EI < 2HUMP_EI < 3HUMP_EI. Tov\u00e1bb\u00e1, a 2HUMP_EI \u00e9s 3HUMP_EI alak\u00edt\u00f3k eset\u00e9ben ritk\u00e1n praktikus a shaper_freq = rezonancia frekvencia \u00e9rt\u00e9ket be\u00e1ll\u00edtani (ezeket t\u00f6bb frekvencia rezg\u00e9seinek cs\u00f6kkent\u00e9s\u00e9re kell haszn\u00e1lni). Megbecs\u00fclhet\u0151 az a frekvenciatartom\u00e1ny, amelyben a form\u00e1z\u00f3 cs\u00f6kkenti a rezg\u00e9seket. P\u00e9ld\u00e1ul a shaper_freq = 35 Hz-es MZV a [33,6, 36,4] Hz-es frekvenci\u00e1n 5%-ra cs\u00f6kkenti a rezg\u00e9seket. A 3HUMP_EI shaper_freq = 50 Hz eset\u00e9n a [27,5, 75] Hz tartom\u00e1nyban 5%-ra cs\u00f6kkenti a rezg\u00e9seket. A t\u00e1bl\u00e1zat seg\u00edts\u00e9g\u00e9vel ellen\u0151rizheti, hogy melyik v\u00e1ltoz\u00f3t kell haszn\u00e1lnia, ha t\u00f6bb frekvenci\u00e1n kell cs\u00f6kkentenie a rezg\u00e9seket. P\u00e9ld\u00e1ul, ha ugyanazon a tengelyen 35 Hz-es \u00e9s 60 Hz-es rezonanci\u00e1k vannak: a) az EI alak\u00edt\u00f3nak a shaper_freq = 35 / (1 - 0,2) = 43,75 Hz-re van sz\u00fcks\u00e9ge, \u00e9s 43,75 * (1 + 0,2) = 52-ig cs\u00f6kkenti a rezonanci\u00e1kat teh\u00e1t az 52.5 Hz, nem elegend\u0151. b) a 2HUMP_EI alak\u00edt\u00f3nak shaper_freq = 35 / (1 - 0,35) = 53,85 Hz-nek kell lennie, \u00e9s 53,85 * (1 + 0,35) = 72,7 Hz-ig cs\u00f6kkenti a rezg\u00e9seket - teh\u00e1t ez egy elfogadhat\u00f3 konfigur\u00e1ci\u00f3. Mindig pr\u00f3b\u00e1ljon meg min\u00e9l magasabb shaper_freq \u00e9rt\u00e9ket haszn\u00e1lni egy adott shaper-hez (esetleg n\u00e9mi biztons\u00e1gi tartal\u00e9kkal, \u00edgy ebben a p\u00e9ld\u00e1ban a shaper_freq \u2248 50-52 Hz lenne a legjobb), \u00e9s pr\u00f3b\u00e1ljon meg min\u00e9l kisebb shaper id\u0151tartam\u00fa \u00e9rt\u00e9ket haszn\u00e1lni. Ha valakinek t\u00f6bb nagyon k\u00fcl\u00f6nb\u00f6z\u0151 frekvenci\u00e1n (mondjuk 30 Hz \u00e9s 100 Hz) kell cs\u00f6kkentenie a rezg\u00e9seket, l\u00e1thatja, hogy a fenti t\u00e1bl\u00e1zat nem ny\u00fajt elegend\u0151 inform\u00e1ci\u00f3t. Ebben az esetben t\u00f6bb szerencs\u00e9nk lehet a scripts/graph_shaper.py szkripttel, amely rugalmasabb.","title":"Rezonancia Kompenz\u00e1ci\u00f3"},{"location":"Resonance_Compensation.html#rezonancia-kompenzacio","text":"A Klipper t\u00e1mogatja a bemeneti form\u00e1z\u00e1st. Egy olyan technik\u00e1t, amely a nyomatok cseng\u00e9s\u00e9nek (m\u00e1s n\u00e9ven visszhang, szellemk\u00e9p vagy hull\u00e1mz\u00e1s) cs\u00f6kkent\u00e9s\u00e9re haszn\u00e1lhat\u00f3. A gy\u0171r\u0151d\u00e9s egy fel\u00fcleti nyomtat\u00e1si hiba, amikor jellemz\u0151en az olyan elemek, mint az \u00e9lek, finom 'visszhangk\u00e9nt' ism\u00e9tl\u0151dnek a nyomtatott fel\u00fcleten: | | | A gy\u0171r\u0151d\u00e9st a nyomtat\u00e1si ir\u00e1ny gyors v\u00e1ltoz\u00e1sa miatt fell\u00e9p\u0151 mechanikus rezg\u00e9sek okozz\u00e1k. Vedd figyelembe, hogy a gy\u0171r\u0151d\u00e9s \u00e1ltal\u00e1ban mechanikai eredet\u0171: nem el\u00e9g merev nyomtat\u00f3keret, nem feszes vagy t\u00fals\u00e1gosan rug\u00f3s sz\u00edjak, a mechanikus alkatr\u00e9szek be\u00e1ll\u00edt\u00e1si probl\u00e9m\u00e1i, nagy mozg\u00f3 t\u00f6meg stb. Ezeket kell el\u0151sz\u00f6r ellen\u0151rizni \u00e9s lehet\u0151s\u00e9g szerint jav\u00edtani. A Bemeneti form\u00e1z\u00e1s egy olyan ny\u00edlt hurk\u00fa vez\u00e9rl\u00e9si technika, amely olyan utas\u00edt\u00f3 jelet hoz l\u00e9tre, amely megsz\u00fcnteti a saj\u00e1t rezg\u00e9seit. A bemeneti alak\u00edt\u00e1s n\u00e9mi hangol\u00e1st \u00e9s m\u00e9r\u00e9seket ig\u00e9nyel, miel\u0151tt enged\u00e9lyezhet\u0151 lenne. A cseng\u00e9sen k\u00edv\u00fcl a Bemeneti form\u00e1z\u00e1s \u00e1ltal\u00e1ban cs\u00f6kkenti a nyomtat\u00f3 rezg\u00e9seit \u00e9s r\u00e1zk\u00f3d\u00e1s\u00e1t, \u00e9s jav\u00edthatja a Trinamic l\u00e9ptet\u0151 meghajt\u00f3k StealthChop \u00fczemm\u00f3dj\u00e1nak megb\u00edzhat\u00f3s\u00e1g\u00e1t is.","title":"Rezonancia Kompenz\u00e1ci\u00f3"},{"location":"Resonance_Compensation.html#hangolas","text":"Az alaphangol\u00e1shoz a nyomtat\u00f3 gy\u0171r\u0151d\u00e9si frekvenci\u00e1j\u00e1nak m\u00e9r\u00e9se sz\u00fcks\u00e9ges egy tesztmodell nyomtat\u00e1s\u00e1val. Szeletelje fel a docs/prints/ringing_tower.stl f\u00e1jlban tal\u00e1lhat\u00f3 gy\u0171r\u0151d\u00e9si tesztmodellt a szeletel\u0151ben: A javasolt r\u00e9tegmagass\u00e1g 0,2 vagy 0,25 mm. A kit\u00f6lt\u0151 \u00e9s a fels\u0151 r\u00e9tegek 0-ra \u00e1ll\u00edthat\u00f3k. Haszn\u00e1lj 1-2 falat, vagy m\u00e9g jobb a sima v\u00e1za m\u00f3d 1-2 mm-es alappal. A k\u00fcls\u0151 ker\u00fcletekn\u00e9l haszn\u00e1lj kell\u0151en nagy sebess\u00e9get, k\u00f6r\u00fclbel\u00fcl 80-100 mm/sec. Gy\u0151z\u0151dj meg r\u00f3la, hogy a minim\u00e1lis r\u00e9tegid\u0151 legfeljebb 3 m\u00e1sodperc. Gy\u0151z\u0151dj meg r\u00f3la, hogy a szeletel\u0151ben a \"dinamikus gyors\u00edt\u00e1svez\u00e9rl\u00e9s\" ki van kapcsolva. Ne ford\u00edtsd el a modellt. A modell h\u00e1tulj\u00e1n X \u00e9s Y jel\u00f6l\u00e9sek vannak. Figyelje meg a jelek szokatlan elhelyezked\u00e9s\u00e9t a nyomtat\u00f3 tengelyeihez k\u00e9pest. Ez nem hiba. A jel\u00f6l\u00e9sek k\u00e9s\u0151bb a hangol\u00e1si folyamat sor\u00e1n referenciak\u00e9nt haszn\u00e1lhat\u00f3k, mert megmutatj\u00e1k, hogy a m\u00e9r\u00e9sek melyik tengelynek felelnek meg.","title":"Hangol\u00e1s"},{"location":"Resonance_Compensation.html#gyurodesi-frekvencia","text":"El\u0151sz\u00f6r is m\u00e9rd meg a gy\u0171r\u0151d\u00e9si frekvenci\u00e1t . Ha a square_corner_velocity param\u00e9tert megv\u00e1ltoztattuk, \u00e1ll\u00edtsuk vissza az 5.0-ra. Nem tan\u00e1csos n\u00f6velni, ha bemeneti alak\u00edt\u00f3t haszn\u00e1l, mert ez nagyobb sim\u00edt\u00e1st okozhat az alkatr\u00e9szekben - helyette jobb, ha nagyobb gyorsul\u00e1si \u00e9rt\u00e9ket haszn\u00e1l. N\u00f6velje a max_accel_to_decel \u00e9rt\u00e9ket a k\u00f6vetkez\u0151 parancs kiad\u00e1s\u00e1val: SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 Nyom\u00e1s el\u0151tol\u00e1s kikapcsol\u00e1sa: SET_PRESSURE_ADVANCE ADVANCE=0 Ha m\u00e1r hozz\u00e1adta az [input_shaper] r\u00e9szt a printer.cfg f\u00e1jlhoz, akkor hajtsd v\u00e9gre a SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0 parancsot. Ha \"Unknown command\" hib\u00e1t kap, nyugodtan figyelmen k\u00edv\u00fcl hagyhatja ezen a ponton, \u00e9s folytathatja a m\u00e9r\u00e9seket. V\u00e9gezd el a parancsot: TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Alapvet\u0151en a gyorsul\u00e1s k\u00fcl\u00f6nb\u00f6z\u0151 nagy \u00e9rt\u00e9keinek be\u00e1ll\u00edt\u00e1s\u00e1val pr\u00f3b\u00e1ljuk a gy\u0171r\u0151d\u00e9st hangs\u00falyosabb\u00e1 tenni. Ez a parancs 1500 mm/sec^2-t\u0151l kezdve 5 mm-enk\u00e9nt n\u00f6veli a gyorsul\u00e1st: 1500 mm/sec^2, 2000 mm/sec^2, 2500 mm/sec^2 \u00e9s \u00edgy tov\u00e1bb, eg\u00e9szen 7000 mm/sec^2-ig az utols\u00f3 s\u00e1vra. Nyomtasd ki a szeletelt tesztmodellt a javasolt param\u00e9terekkel. A nyomtat\u00e1st kor\u00e1bban is le\u00e1ll\u00edthatja, ha a gy\u0171r\u0151d\u00e9s j\u00f3l l\u00e1that\u00f3, \u00e9s \u00fagy l\u00e1tja, hogy a gyorsul\u00e1s t\u00fal nagy lesz a nyomtat\u00f3 sz\u00e1m\u00e1ra (pl. a nyomtat\u00f3 t\u00fals\u00e1gosan remeg, vagy elkezd l\u00e9p\u00e9seket kihagyni). Haszn\u00e1ld a modell h\u00e1tulj\u00e1n tal\u00e1lhat\u00f3 X \u00e9s Y jeleket a t\u00e1j\u00e9koz\u00f3d\u00e1shoz. Az X-jel\u00f6l\u00e9ssel ell\u00e1tott oldalr\u00f3l t\u00f6rt\u00e9n\u0151 m\u00e9r\u00e9seket kell haszn\u00e1lni az X tengely konfigur\u00e1ci\u00f3hoz , az Y-jel\u00f6l\u00e9st pedig az Y tengely konfigur\u00e1ci\u00f3j\u00e1hoz. M\u00e9rd meg a t\u00e1vols\u00e1got D (mm-ben) t\u00f6bb rezg\u00e9s k\u00f6z\u00f6tt az X jelz\u00e9s\u0171 alkatr\u00e9szen, a bev\u00e1g\u00e1sok k\u00f6zel\u00e9ben, lehet\u0151leg az els\u0151 egy-k\u00e9t rezg\u00e9st kihagyva. Az oszcill\u00e1ci\u00f3k k\u00f6z\u00f6tti t\u00e1vols\u00e1g k\u00f6nnyebb m\u00e9r\u00e9s\u00e9hez el\u0151sz\u00f6r jel\u00f6lje meg az oszcill\u00e1ci\u00f3kat, majd m\u00e9rd meg a jel\u00f6l\u00e9sek k\u00f6z\u00f6tti t\u00e1vols\u00e1got vonalz\u00f3val vagy tol\u00f3m\u00e9r\u0151vel:| | | Sz\u00e1molja meg, hogy a m\u00e9rt t\u00e1vols\u00e1g N h\u00e1ny rezg\u00e9snek D felel meg. Ha nem biztos benne, hogy hogyan sz\u00e1molja a rezg\u00e9seket, n\u00e9zze meg a fenti k\u00e9pet, ahol N = 6 rezg\u00e9s. Sz\u00e1m\u00edtsuk ki az X tengely gy\u0171r\u0151d\u00e9si frekvenci\u00e1j\u00e1t V \u00b7 N / D (Hz), ahol V a k\u00fcls\u0151 ker\u00fcletekre vonatkoz\u00f3 sebess\u00e9g (mm/sec). A fenti p\u00e9ld\u00e1n\u00e1l 6 rezg\u00e9st jel\u00f6lt\u00fcnk meg, \u00e9s a tesztet 100 mm/sec sebess\u00e9ggel nyomtattuk, \u00edgy a frekvencia 100 * 6 / 12,14 \u2248 49,4 Hz. A (8)-(10) pontokat az Y jel eset\u00e9ben is v\u00e9gezz\u00fck el. Vedd figyelembe, hogy a pr\u00f3banyomaton a gy\u0171r\u0151d\u00e9snek a fenti k\u00e9pen l\u00e1that\u00f3 \u00edves bev\u00e1g\u00e1sok mint\u00e1j\u00e1t kell k\u00f6vetnie. Ha nem \u00edgy van, akkor ez a hiba nem igaz\u00e1n gy\u0171r\u0151d\u00e9s, \u00e9s m\u00e1s eredet\u0171. Vagy mechanikai, vagy extruder probl\u00e9ma. Ezt kell el\u0151sz\u00f6r kijav\u00edtani, miel\u0151tt enged\u00e9lyezn\u00e9nk \u00e9s hangoln\u00e1nk a bemeneti form\u00e1z\u00f3kat. Ha a m\u00e9r\u00e9sek nem megb\u00edzhat\u00f3ak, mert p\u00e9ld\u00e1ul a rezg\u00e9sek k\u00f6z\u00f6tti t\u00e1vols\u00e1g nem stabil, az azt jelentheti, hogy a nyomtat\u00f3nak t\u00f6bb rezonanciafrekvenci\u00e1ja van ugyanazon a tengelyen. Megpr\u00f3b\u00e1lhatjuk helyette a A gy\u0171r\u0151d\u00e9si frekvenci\u00e1k megb\u00edzhatatlan m\u00e9r\u00e9sei szakaszban le\u00edrt hangol\u00e1si elj\u00e1r\u00e1st k\u00f6vetni, \u00e9s m\u00e9g mindig kaphatunk valami inf\u00f3t a bemeneti alak\u00edt\u00e1si technik\u00e1r\u00f3l. A gy\u0171r\u0151d\u00e9si frekvencia f\u00fcgghet a modell t\u00e1rgyasztalon bel\u00fcli helyzet\u00e9t\u0151l \u00e9s a Z magass\u00e1gt\u00f3l, k\u00fcl\u00f6n\u00f6sen a delta nyomtat\u00f3kn\u00e1l ; ellen\u0151rizheti, hogy a tesztmodell oldalai ment\u00e9n \u00e9s k\u00fcl\u00f6nb\u00f6z\u0151 magass\u00e1gokban k\u00fcl\u00f6nb\u00f6z\u0151 poz\u00edci\u00f3kban l\u00e1t-e k\u00fcl\u00f6nbs\u00e9get a frekvenci\u00e1kban. Ha ez a helyzet, akkor kisz\u00e1m\u00edthatja az X \u00e9s Y tengelyen m\u00e9rt \u00e1tlagos gy\u0171r\u0151d\u00e9si frekvenci\u00e1kat. Ha a m\u00e9rt gy\u0171r\u0151d\u00e9si frekvencia nagyon alacsony (kb. 20-25 Hz alatti), akkor \u00e9rdemes lehet a nyomtat\u00f3 merev\u00edt\u00e9s\u00e9re vagy a mozg\u00f3 t\u00f6meg cs\u00f6kkent\u00e9s\u00e9re beruh\u00e1zni - att\u00f3l f\u00fcgg\u0151en, hogy mi alkalmazhat\u00f3 a te esetedben -, miel\u0151tt a bemeneti alak\u00edt\u00e1s tov\u00e1bbi hangol\u00e1s\u00e1t folytatn\u00e1d, \u00e9s ut\u00e1na \u00fajra megm\u00e9rn\u00e9d a frekvenci\u00e1kat. Sok n\u00e9pszer\u0171 nyomtat\u00f3modell eset\u00e9ben gyakran m\u00e1r rendelkez\u00e9sre \u00e1ll n\u00e9h\u00e1ny megold\u00e1s. Vedd figyelembe, hogy a gy\u0171r\u0151d\u00e9si frekvenci\u00e1k v\u00e1ltozhatnak, ha a nyomtat\u00f3ban olyan v\u00e1ltoztat\u00e1sokat v\u00e9geznek, amelyek hat\u00e1ssal vannak a mozg\u00f3 t\u00f6megre, vagy p\u00e9ld\u00e1ul megv\u00e1ltoztatj\u00e1k a g\u00e9pv\u00e1z merevs\u00e9g\u00e9t: A nyomtat\u00f3fejre n\u00e9h\u00e1ny olyan eszk\u00f6zt telep\u00edtenek, elt\u00e1vol\u00edtanak vagy kicser\u00e9lnek, amelyek megv\u00e1ltoztatj\u00e1k annak t\u00f6meg\u00e9t, pl. \u00faj (nehezebb vagy k\u00f6nnyebb) l\u00e9ptet\u0151motor a k\u00f6zvetlen extrudernek vagy \u00faj nyomtat\u00f3fej telep\u00edt\u00e9se, neh\u00e9z, t\u00e1rgyh\u0171t\u0151vel ell\u00e1tott ventil\u00e1tor be\u00e9p\u00edt\u00e9se stb. A sz\u00edjak megh\u00faz\u00e1sa. A v\u00e1z merevs\u00e9g\u00e9nek n\u00f6vel\u00e9s\u00e9re szolg\u00e1l\u00f3 n\u00e9h\u00e1ny kieg\u00e9sz\u00edt\u00e9s telep\u00edtve van. K\u00fcl\u00f6nb\u00f6z\u0151 t\u00e1rgyasztal van telep\u00edtve egy Y t\u00e1rgyasztalos nyomtat\u00f3ra, vagy \u00fcveg hozz\u00e1ad\u00e1sa stb. Ha ilyen v\u00e1ltoztat\u00e1sokat hajtanak v\u00e9gre, akkor \u00e9rdemes legal\u00e1bb a gy\u0171r\u0151d\u00e9si frekvenci\u00e1kat megm\u00e9rni, hogy l\u00e1ss\u00e1k, v\u00e1ltoztak-e azok.","title":"Gy\u0171r\u0151d\u00e9si frekvencia"},{"location":"Resonance_Compensation.html#bemeneti-formazo-konfiguracioja","text":"Az X \u00e9s Y tengelyek gy\u0171r\u0151d\u00e9si frekvenci\u00e1j\u00e1nak m\u00e9r\u00e9se ut\u00e1n a k\u00f6vetkez\u0151 szakaszt adhatja hozz\u00e1 a printer.cfg f\u00e1jlhoz: [input_shaper] shaper_freq_x: ... # a tesztmodell X jel\u00e9nek frekvenci\u00e1ja shaper_freq_y: ... # a tesztmodell Y jel\u00e9nek frekvenci\u00e1ja A fenti p\u00e9ld\u00e1ban a shaper_freq_x/y = 49.4.","title":"Bemeneti form\u00e1z\u00f3 konfigur\u00e1ci\u00f3ja"},{"location":"Resonance_Compensation.html#bemeneti-formazo-kivalasztasa","text":"A Klipper sz\u00e1mos bemeneti form\u00e1z\u00f3t t\u00e1mogat. Ezek a rezonanciafrekvenci\u00e1t meghat\u00e1roz\u00f3 hib\u00e1kra val\u00f3 \u00e9rz\u00e9kenys\u00e9g\u00fckben \u00e9s abban k\u00fcl\u00f6nb\u00f6znek, hogy milyen m\u00e9rt\u00e9k\u0171 sim\u00edt\u00e1st okoznak a nyomtatott alkatr\u00e9szekben. Emellett n\u00e9h\u00e1ny shapert, p\u00e9ld\u00e1ul a 2HUMP_EI \u00e9s a 3HUMP_EI form\u00e1z\u00f3kat \u00e1ltal\u00e1ban nem szabad haszn\u00e1lni shaper_freq = rezonanciafrekvenci\u00e1val - ezek k\u00fcl\u00f6nb\u00f6z\u0151 megfontol\u00e1sokb\u00f3l vannak be\u00e1ll\u00edtva, hogy egyszerre t\u00f6bb rezonanci\u00e1t cs\u00f6kkentsenek. A legt\u00f6bb nyomtat\u00f3hoz MZV vagy EI alak\u00edt\u00f3k aj\u00e1nlhat\u00f3k. Ez a szakasz egy tesztel\u00e9si elj\u00e1r\u00e1st \u00edr le a kett\u0151 k\u00f6z\u00f6tti v\u00e1laszt\u00e1shoz, valamint n\u00e9h\u00e1ny egy\u00e9b kapcsol\u00f3d\u00f3 param\u00e9ter meghat\u00e1roz\u00e1s\u00e1hoz. Nyomtasd ki a gy\u0171r\u0151d\u00e9si tesztmodellt az al\u00e1bbiak szerint: Ind\u00edtsa \u00fajra a firmware-t: RESTART K\u00e9sz\u00fclj\u00f6n fel a tesztre: SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 Nyom\u00e1s el\u0151tol\u00e1s kikapcsol\u00e1sa: SET_PRESSURE_ADVANCE ADVANCE=0 Add ki a parancsot: SET_INPUT_SHAPER SHAPER_TYPE=MZV Add ki a parancsot: TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Nyomtasd ki a szeletelt tesztmodellt a javasolt param\u00e9terekkel. Ha ezen a ponton nem l\u00e1t gy\u0171r\u0151d\u00e9st, akkor az MZV form\u00e1z\u00f3 haszn\u00e1lat\u00e1t lehet javasolni. Ha m\u00e9gis gy\u0171r\u0151d\u00e9st \u00e9szlelsz, m\u00e9rd meg \u00fajra a frekvenci\u00e1kat a Gy\u0171r\u0151d\u00e9si frekvencia szakaszban le\u00edrt (8)-(10) l\u00e9p\u00e9sekkel. Ha a frekvenci\u00e1k jelent\u0151sen elt\u00e9rnek a kor\u00e1bban kapott \u00e9rt\u00e9kekt\u0151l, akkor \u00f6sszetettebb bemeneti alak\u00edt\u00f3 konfigur\u00e1ci\u00f3ra van sz\u00fcks\u00e9g. L\u00e1sd a Bemeneti alak\u00edt\u00f3k szakasz m\u0171szaki r\u00e9szleteit. Ellenkez\u0151 esetben folytasd a k\u00f6vetkez\u0151 l\u00e9p\u00e9ssel. Most pr\u00f3b\u00e1ld ki az EI bemeneti alak\u00edt\u00f3t. Ehhez ism\u00e9telje meg a fenti (1)-(6) l\u00e9p\u00e9seket, de a 4. l\u00e9p\u00e9sn\u00e9l hajtsd v\u00e9gre a k\u00f6vetkez\u0151 parancsot: SET_INPUT_SHAPER SHAPER_TYPE=EI . K\u00e9t nyomat \u00f6sszehasonl\u00edt\u00e1sa MZV \u00e9s EI bemeneti alak\u00edt\u00f3val. Ha az EI \u00e9szrevehet\u0151en jobb eredm\u00e9nyt mutat, mint az MZV, akkor haszn\u00e1ld az EI alak\u00edt\u00f3t, egy\u00e9bk\u00e9nt ink\u00e1bb az MZV-t. Vedd figyelembe, hogy az EI shaper t\u00f6bb sim\u00edt\u00e1st okoz a nyomtatott alkatr\u00e9szeken (tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a k\u00f6vetkez\u0151 szakaszt). Add hozz\u00e1 a shaper_type: mzv (vagy ei) param\u00e9tert az [input_shaper] szakaszhoz, pl.: [input_shaper] shaper_freq_x: ... shaper_freq_y: ... shaper_type: mzv N\u00e9h\u00e1ny megjegyz\u00e9s a form\u00e1z\u00f3 kiv\u00e1laszt\u00e1s\u00e1r\u00f3l: Az EI-form\u00e1z\u00f3 alkalmasabb lehet az Y t\u00e1rgyasztalos nyomtat\u00f3khoz (ha a rezonanciafrekvencia \u00e9s az ebb\u0151l ered\u0151 sim\u00edt\u00e1s lehet\u0151v\u00e9 teszi): mivel t\u00f6bb sz\u00e1l ker\u00fcl a mozg\u00f3 t\u00e1rgyasztalra, a t\u00e1rgyasztal t\u00f6mege n\u0151, \u00e9s a rezonanciafrekvencia cs\u00f6kken. Mivel az EI shaper robusztusabb a rezonanciafrekvencia-v\u00e1ltoz\u00e1sokkal szemben, jobban m\u0171k\u00f6dhet nagy m\u00e9ret\u0171 alkatr\u00e9szek nyomtat\u00e1sakor. A delta kinematika term\u00e9szet\u00e9b\u0151l ad\u00f3d\u00f3an a rezonanciafrekvenci\u00e1k a t\u00e9rfogat k\u00fcl\u00f6nb\u00f6z\u0151 r\u00e9szein nagym\u00e9rt\u00e9kben elt\u00e9rhetnek. Ez\u00e9rt az EI alak\u00edt\u00f3 jobban illeszkedhet a delta nyomtat\u00f3khoz, mint az MZV vagy a ZV, \u00e9s megfontoland\u00f3 a haszn\u00e1lata. Ha a rezonanciafrekvencia kell\u0151en nagy (50-60 Hz-n\u00e9l nagyobb), akkor ak\u00e1r meg is pr\u00f3b\u00e1lkozhatunk a 2HUMP_EI shaper tesztel\u00e9s\u00e9vel (a fent javasolt teszt futtat\u00e1s\u00e1val a SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI ), de ellen\u0151rizd ebben a szakaszban tal\u00e1lhat\u00f3 megfontol\u00e1sokat, miel\u0151tt enged\u00e9lyezn\u00e9d.","title":"Bemeneti form\u00e1z\u00f3 kiv\u00e1laszt\u00e1sa"},{"location":"Resonance_Compensation.html#a-max_accel-kivalasztasa","text":"Az el\u0151z\u0151 l\u00e9p\u00e9sben kiv\u00e1lasztott form\u00e1z\u00f3hoz nyomtatott tesztet kell k\u00e9sz\u00edtenie (ha nem nyomtatja ki a javasolt param\u00e9terekkel felszeletelt tesztmodellt a nyom\u00e1s el\u0151tol\u00e1s kikapcsol\u00e1s\u00e1val SET_PRESSURE_ADVANCE ADVANCE=0 \u00e9s a tuningtorony enged\u00e9lyez\u00e9s\u00e9vel TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 ). Vedd figyelembe, hogy nagyon nagy gyorsul\u00e1sokn\u00e1l a rezonanciafrekvenci\u00e1t\u00f3l \u00e9s a v\u00e1lasztott bemeneti alak\u00edt\u00f3t\u00f3l f\u00fcgg\u0151en (pl. az EI alak\u00edt\u00f3 nagyobb sim\u00edt\u00e1st hoz l\u00e9tre, mint az MZV) a bemeneti alak\u00edt\u00e1s t\u00fal nagy sim\u00edt\u00e1st \u00e9s az alkatr\u00e9szek lekerek\u00edt\u00e9s\u00e9t okozhatja. A max_accel \u00e9rt\u00e9ket teh\u00e1t \u00fagy kell megv\u00e1lasztani, hogy ezt megakad\u00e1lyozza. Egy m\u00e1sik param\u00e9ter, amely hat\u00e1ssal lehet a sim\u00edt\u00e1sra, az square_corner_velocity , ez\u00e9rt nem tan\u00e1csos az alap\u00e9rtelmezett 5 mm/sec f\u00f6l\u00e9 n\u00f6velni, hogy megakad\u00e1lyozzuk a fokozott sim\u00edt\u00e1st. A megfelel\u0151 max_accel \u00e9rt\u00e9k kiv\u00e1laszt\u00e1s\u00e1hoz vizsg\u00e1ld meg a kiv\u00e1lasztott bemeneti alak\u00edt\u00f3 modellj\u00e9t. El\u0151sz\u00f6r is jegyezze meg, hogy melyik gyorsul\u00e1sn\u00e1l m\u00e9g kicsi a gyorsul\u00e1s gy\u0171r\u0151d\u00e9se hogy Neked ez megfeleljen. Ezut\u00e1n ellen\u0151rizd a sim\u00edt\u00e1st. Ennek el\u0151seg\u00edt\u00e9se \u00e9rdek\u00e9ben a tesztmodellben egy kis r\u00e9s van a falon (0,15 mm): Ahogy n\u0151 a gyorsul\u00e1s, \u00fagy n\u0151 a sim\u00edt\u00e1s is, \u00e9s a t\u00e9nyleges r\u00e9s a nyomtat\u00e1sban kisz\u00e9lesedik: Ezen a k\u00e9pen a gyorsul\u00e1s balr\u00f3l jobbra n\u00f6vekszik, \u00e9s a r\u00e9s 3500 mm/sec^2-t\u0151l (balr\u00f3l az 5. s\u00e1v) kezd n\u0151ni. Teh\u00e1t ebben az esetben a max_accel = 3000 (mm/sec^2) a j\u00f3 \u00e9rt\u00e9k, hogy elker\u00fclj\u00fck a t\u00falzott sim\u00edt\u00e1st. Figyelje meg a gyorsul\u00e1st, amikor a r\u00e9s m\u00e9g mindig nagyon kicsi a pr\u00f3banyomaton. Ha kidudorod\u00e1sokat l\u00e1t, de a falon egy\u00e1ltal\u00e1n nincs r\u00e9s, m\u00e9g nagy gyorsul\u00e1sn\u00e1l is, az a kikapcsolt nyom\u00e1sel\u0151tol\u00e1s miatt lehet, k\u00fcl\u00f6n\u00f6sen a bowdenes extrudereken. Ha ez a helyzet, akkor lehet, hogy meg kell ism\u00e9telni a nyomtat\u00e1st enged\u00e9lyezett PA-val. Ez lehet a rosszul kalibr\u00e1lt (t\u00fal magas) nyomtat\u00f3sz\u00e1l \u00e1raml\u00e1s eredm\u00e9nye is, ez\u00e9rt ezt is \u00e9rdemes ellen\u0151rizni. V\u00e1laszd ki a k\u00e9t gyorsul\u00e1si \u00e9rt\u00e9k k\u00f6z\u00fcl a legkisebbet (a gy\u0171r\u0151d\u00e9sb\u0151l \u00e9s a sim\u00edt\u00e1sb\u00f3l), \u00e9s \u00edrd be max_accel n\u00e9ven a printer.cfg f\u00e1jlba. Megjegyzend\u0151, hogy el\u0151fordulhat k\u00fcl\u00f6n\u00f6sen alacsony gy\u0171r\u0151d\u00e9si frekvenci\u00e1kn\u00e1l, hogy az EI shaper m\u00e9g kisebb gyorsul\u00e1sokn\u00e1l is t\u00fal nagy sim\u00edt\u00e1st okoz. Ebben az esetben az MZV jobb v\u00e1laszt\u00e1s lehet, mert nagyobb gyorsul\u00e1si \u00e9rt\u00e9keket engedhet meg. Nagyon alacsony gy\u0171r\u0151d\u00e9si frekvenci\u00e1kon (~25 Hz \u00e9s az alatt) m\u00e9g az MZV shaper is t\u00fal sok sim\u00edt\u00e1st hozhat l\u00e9tre. Ha ez a helyzet, akkor megpr\u00f3b\u00e1lhatod megism\u00e9telni a Bemeneti form\u00e1z\u00f3 kiv\u00e1laszt\u00e1sa szakaszban le\u00edrt l\u00e9p\u00e9seket ZV shaper-el is, a SET_INPUT_SHAPER SHAPER_TYPE=ZV parancs haszn\u00e1lat\u00e1val. A ZV shaper-nek m\u00e9g kevesebb sim\u00edt\u00e1st kell mutatnia, mint az MZV-nek, de \u00e9rz\u00e9kenyebb a gy\u0171r\u0151d\u00e9si frekvenci\u00e1k m\u00e9r\u00e9si hib\u00e1ira. Egy m\u00e1sik szempont, hogy ha a rezonanciafrekvencia t\u00fal alacsony (20-25 Hz alatt), akkor \u00e9rdemes lehet n\u00f6velni a nyomtat\u00f3 v\u00e1z\u00e1nak merevs\u00e9g\u00e9t vagy cs\u00f6kkenteni a mozg\u00f3 t\u00f6meget. Ellenkez\u0151 esetben a gyorsul\u00e1s \u00e9s a nyomtat\u00e1si sebess\u00e9g korl\u00e1toz\u00f3dhat a t\u00fal sok sim\u00edt\u00e1s miatt most a gy\u0171r\u0151d\u00e9s helyett.","title":"A max_accel kiv\u00e1laszt\u00e1sa"},{"location":"Resonance_Compensation.html#a-rezonanciafrekvenciak-finomhangolasa","text":"Megjegyzend\u0151, hogy a rezonanciafrekvenci\u00e1k m\u00e9r\u00e9s\u00e9nek pontoss\u00e1ga a gy\u0171r\u0151d\u00e9si tesztmodell seg\u00edts\u00e9g\u00e9vel a legt\u00f6bb c\u00e9lra elegend\u0151, \u00edgy tov\u00e1bbi hangol\u00e1s nem javasolt. Ha m\u00e9gis meg akarja pr\u00f3b\u00e1lni k\u00e9tszeresen ellen\u0151rizni az eredm\u00e9nyeit (p\u00e9ld\u00e1ul ha m\u00e9g mindig l\u00e1t n\u00e9mi gy\u0171r\u0151d\u00e9st, miut\u00e1n kinyomtatott egy tesztmodellt egy tetsz\u0151leges bemeneti alak\u00edt\u00f3val, ugyanazokkal a frekvenci\u00e1kkal, mint amiket kor\u00e1bban m\u00e9rt), akkor k\u00f6vesse az ebben a szakaszban le\u00edrt l\u00e9p\u00e9seket. Vedd figyelembe, hogy ha az [input_shaper] enged\u00e9lyez\u00e9se ut\u00e1n k\u00fcl\u00f6nb\u00f6z\u0151 frekvenci\u00e1kon l\u00e1t gy\u0171r\u0151d\u00e9st, ez a szakasz nem fog seg\u00edteni. Felt\u00e9telezve, hogy felszeletelte a gy\u0171r\u0151d\u00e9si modellt a javasolt param\u00e9terekkel, hajtsd v\u00e9gre a k\u00f6vetkez\u0151 l\u00e9p\u00e9seket az X \u00e9s Y tengelyek mindegyik\u00e9n: K\u00e9sz\u00fclj\u00f6n fel a tesztre: SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 Gy\u0151z\u0151dj meg r\u00f3la, hogy a Pressure Advance ki van kapcsolva: SET_PRESSURE_ADVANCE ADVANCE=0 Add ki a parancsot: SET_INPUT_SHAPER SHAPER_TYPE=ZV A megl\u00e9v\u0151 gy\u0171r\u0151d\u00e9si tesztmodellb\u0151l a kiv\u00e1lasztott bemeneti alak\u00edt\u00f3val v\u00e1laszd ki azt a gyorsul\u00e1st, amely kell\u0151en j\u00f3l mutatja a gy\u0171r\u0151d\u00e9st, \u00e9s \u00e1ll\u00edtsd be a k\u00f6vetkez\u0151vel: SET_VELOCITY_LIMIT ACCEL=... Sz\u00e1m\u00edtsa ki a TUNING_TOWER parancshoz sz\u00fcks\u00e9ges param\u00e9tereket a shaper_freq_x param\u00e9ter hangol\u00e1s\u00e1hoz az al\u00e1bbiak szerint: Itt a shaper_freq_x param\u00e9ter a nyomtat\u00f3 aktu\u00e1lis \u00e9rt\u00e9ke a printer.cfg f\u00e1jlban megadva. Add ki a parancsot: TUNING_TOWER COMMAND=SET_INPUT_SHAPER PARAMETER=SHAPER_FREQ_X START=start FACTOR=factor BAND=5 a start \u00e9s factor \u00e9rt\u00e9kek felhaszn\u00e1l\u00e1s\u00e1val, amelyeket az (5.) l\u00e9p\u00e9sben sz\u00e1m\u00edtottunk. Nyomtasd ki a tesztmodellt. Az eredeti frekvencia\u00e9rt\u00e9k vissza\u00e1ll\u00edt\u00e1sa: SET_INPUT_SHAPER SHAPER_FREQ_X=... . Keresse meg azt a s\u00e1vot, amelyik a legkev\u00e9sb\u00e9 gy\u0171r\u00f6tt, \u00e9s sz\u00e1molja meg a sz\u00e1m\u00e1t alulr\u00f3l 1-t\u0151l kezdve. Az \u00faj shaper_freq_x \u00e9rt\u00e9k kisz\u00e1m\u00edt\u00e1sa a r\u00e9gi shaper_freq_x * (39 + 5 * #band-number) / 66 seg\u00edts\u00e9g\u00e9vel. Ism\u00e9telje meg ezeket a l\u00e9p\u00e9seket az Y tengelyre ugyan\u00edgy, az X tengelyre val\u00f3 hivatkoz\u00e1sokat az Y tengelyre val\u00f3 hivatkoz\u00e1ssal helyettes\u00edtve (pl. cser\u00e9lje ki a shaper_freq_x -t shaper_freq_y -ra a k\u00e9pletekben \u00e9s a TUNING_TOWER parancsban). P\u00e9ldak\u00e9nt tegy\u00fck fel, hogy az egyik tengelyen 45 Hz-es gy\u0171r\u0151d\u00e9si frekvenci\u00e1t m\u00e9rt\u00fcnk. Ez a start = 45 * 83 / 132 = 28,30 \u00e9s a faktor = 45 / 66 = 0,6818 \u00e9rt\u00e9ket ad a TUNING_TOWER parancshoz. Most tegy\u00fck fel, hogy a tesztmodell kinyomtat\u00e1sa ut\u00e1n az alulr\u00f3l sz\u00e1m\u00edtott negyedik s\u00e1v adja a legkevesebb gy\u0171r\u0151d\u00e9st. Ekkor a friss\u00edtett shaper_freq_? \u00e9rt\u00e9k 45 * (39 + 5 * 4) / 66 \u2248 40,23. Miut\u00e1n mindk\u00e9t \u00faj shaper_freq_x \u00e9s shaper_freq_y param\u00e9tert kisz\u00e1m\u00edtotta, friss\u00edtheti az [input_shaper] szakasz\u00e1t a nyomtat\u00f3 printer.cfg f\u00e1jlj\u00e1ban az \u00faj shaper_freq_x \u00e9s shaper_freq_y \u00e9rt\u00e9kekkel.","title":"A rezonanciafrekvenci\u00e1k finomhangol\u00e1sa"},{"location":"Resonance_Compensation.html#nyomas-elotolas","text":"Ha Pressure Advance-t haszn\u00e1l, akkor lehet, hogy \u00fajra kell hangolni. K\u00f6vesse az utas\u00edt\u00e1sokat az \u00faj \u00e9rt\u00e9k megtal\u00e1l\u00e1s\u00e1hoz, ha az elt\u00e9r az el\u0151z\u0151t\u0151l. A Pressure Advance be\u00e1ll\u00edt\u00e1sa el\u0151tt mindenk\u00e9ppen ind\u00edtsa \u00fajra a Klippert.","title":"Nyom\u00e1s el\u0151tol\u00e1s"},{"location":"Resonance_Compensation.html#a-gyurodesi-frekvenciak-megbizhatatlan-meresei","text":"Ha nem tudja m\u00e9rni a gy\u0171r\u0151d\u00e9si frekvenci\u00e1kat, pl. ha a rezg\u00e9sek k\u00f6z\u00f6tti t\u00e1vols\u00e1g nem stabil, akkor m\u00e9g mindig kihaszn\u00e1lhatod a bemeneti alak\u00edt\u00e1si technik\u00e1kat, de az eredm\u00e9nyek nem biztos, hogy olyan j\u00f3k lesznek, mint a frekvenci\u00e1k megfelel\u0151 m\u00e9r\u00e9s\u00e9vel. Valamint egy kicsit t\u00f6bb hangol\u00e1st \u00e9s a tesztmodell nyomtat\u00e1s\u00e1t ig\u00e9nyli. Megjegyzend\u0151, hogy egy m\u00e1sik lehet\u0151s\u00e9g egy gyorsul\u00e1sm\u00e9r\u0151 beszerz\u00e9se \u00e9s felszerel\u00e9se, valamint a rezonanci\u00e1k m\u00e9r\u00e9se (l\u00e1sd a dokumentumot , amely le\u00edrja a sz\u00fcks\u00e9ges hardvert \u00e9s a be\u00e1ll\u00edt\u00e1si folyamatot) - de ez a lehet\u0151s\u00e9g n\u00e9mi k\u00e9z\u00fcgyess\u00e9get, krimpel\u00e9st \u00e9s forraszt\u00e1st ig\u00e9nyel. A hangol\u00e1shoz adjunk hozz\u00e1 \u00fcres [input_shaper] szakaszt a printer.cfg f\u00e1jlhoz. Ezut\u00e1n, felt\u00e9telezve, hogy a javasolt param\u00e9terekkel felszeletelte a gy\u0171r\u0151d\u00e9si modellt, nyomtasd ki 3-szor az al\u00e1bbiak szerint. Els\u0151 alkalommal, a nyomtat\u00e1s el\u0151tt futtassa le a RESTART SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 SET_PRESSURE_ADVANCE ADVANCE=0 SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=60 SHAPER_FREQ_Y=60 TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 \u00e9s nyomtasd ki a modellt. Ezut\u00e1n nyomtasd ki a modellt \u00fajra, de a nyomtat\u00e1s el\u0151tt futtassa az al\u00e1bbiakat SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=50 SHAPER_FREQ_Y=50 TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Ezut\u00e1n nyomtassuk ki a modellt harmadszorra, de most futtassuk le a k\u00f6vetkez\u0151t SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=40 SHAPER_FREQ_Y=40 TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 L\u00e9nyeg\u00e9ben a gy\u0171r\u0151d\u00e9si tesztmodellt TUNING_TOWER seg\u00edts\u00e9g\u00e9vel nyomtatjuk ki, 2HUMP_EI shaperrel, shaper_freq = 60 Hz, 50 Hz \u00e9s 40 Hz. Ha egyik modell sem mutat javul\u00e1st a gy\u0171r\u0151d\u00e9sben, akkor sajnos \u00fagy t\u0171nik, hogy a bemeneti alak\u00edt\u00e1si technik\u00e1k nem seg\u00edthetnek az \u00d6n eset\u00e9ben. M\u00e1sk\u00fcl\u00f6nben el\u0151fordulhat, hogy az \u00f6sszes modell nem mutat gy\u0171r\u0151d\u00e9st, vagy n\u00e9h\u00e1ny modell gy\u0171r\u0151d\u00e9st mutat, n\u00e9h\u00e1ny pedig nem annyira. V\u00e1laszd ki azt a tesztmodellt, amelyik a legmagasabb frekvenci\u00e1val k\u00e9sz\u00fclt, \u00e9s m\u00e9g mindig j\u00f3 javul\u00e1st mutat a gy\u0171r\u0151d\u00e9sek tekintet\u00e9ben. Ha p\u00e9ld\u00e1ul a 40 Hz-es \u00e9s az 50 Hz-es modellek szinte egy\u00e1ltal\u00e1n nem mutatnak gy\u0171r\u0151d\u00e9st, a 60 Hz-es modell pedig m\u00e1r n\u00e9mileg t\u00f6bb gy\u0171r\u0151d\u00e9st mutat, maradj az 50 Hz-esn\u00e9l. Most ellen\u0151rizd, hogy az EI alak\u00edt\u00f3 el\u00e9g j\u00f3 lenne-e az esetedben. V\u00e1laszd ki az EI alak\u00edt\u00f3 frekvenci\u00e1j\u00e1t az \u00e1ltalad v\u00e1lasztott 2HUMP_EI alak\u00edt\u00f3 frekvenci\u00e1ja alapj\u00e1n: A 2HUMP_EI 60 Hz-es form\u00e1z\u00f3 eset\u00e9ben haszn\u00e1lj EI form\u00e1z\u00f3t shaper_freq = 50 Hz-es frekvenci\u00e1val. A 2HUMP_EI 50 Hz-es form\u00e1z\u00f3hoz haszn\u00e1lj EI form\u00e1z\u00f3t shaper_freq = 40 Hz \u00e9rt\u00e9kkel. A 2HUMP_EI 40 Hz-es form\u00e1z\u00f3hoz haszn\u00e1lj EI form\u00e1z\u00f3t shaper_freq = 33 Hz \u00e9rt\u00e9kkel. Most nyomtassuk ki a tesztmodellt m\u00e9g egyszer, a k\u00f6vetkez\u0151 futtat\u00e1s\u00e1val SET_INPUT_SHAPER SHAPER_TYPE=EI SHAPER_FREQ_X=... SHAPER_FREQ_Y=... TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 a kor\u00e1bban meghat\u00e1rozott shaper_freq_x=... \u00e9s shaper_freq_y=... \u00e9rt\u00e9kek megad\u00e1s\u00e1val. Ha az EI alak\u00edt\u00f3 a 2HUMP_EI alak\u00edt\u00f3hoz hasonl\u00f3an j\u00f3 eredm\u00e9nyeket mutat, maradj az EI alak\u00edt\u00f3 \u00e9s a kor\u00e1bban meghat\u00e1rozott frekvencia mellett, ellenkez\u0151 esetben haszn\u00e1ld a 2HUMP_EI alak\u00edt\u00f3t a megfelel\u0151 frekvenci\u00e1val. Add hozz\u00e1 az eredm\u00e9nyeket a printer.cfg f\u00e1jlhoz, pl. a k\u00f6vetkez\u0151 m\u00f3don. [input_shaper] shaper_freq_x: 50 shaper_freq_y: 50 shaper_type: 2hump_ei Folytassa a hangol\u00e1st a A max_accel kiv\u00e1laszt\u00e1sa szakaszban.","title":"A gy\u0171r\u0151d\u00e9si frekvenci\u00e1k megb\u00edzhatatlan m\u00e9r\u00e9sei"},{"location":"Resonance_Compensation.html#hibaelharitas-es-gyik","text":"","title":"Hibaelh\u00e1r\u00edt\u00e1s \u00e9s GYIK"},{"location":"Resonance_Compensation.html#nem-tudok-megbizhato-mereseket-vegezni-a-rezonanciafrekvenciakrol","text":"El\u0151sz\u00f6r is gy\u0151z\u0151dj meg r\u00f3la, hogy a gy\u0171r\u0151d\u00e9s helyett nem m\u00e1s probl\u00e9ma van a nyomtat\u00f3val. Ha a m\u00e9r\u00e9sek nem megb\u00edzhat\u00f3ak, mert p\u00e9ld\u00e1ul a rezg\u00e9sek k\u00f6z\u00f6tti t\u00e1vols\u00e1g nem stabil, az azt jelentheti, hogy a nyomtat\u00f3nak t\u00f6bb rezonanciafrekvenci\u00e1ja van ugyanazon a tengelyen. Megpr\u00f3b\u00e1lhatjuk k\u00f6vetni a A gy\u0171r\u0151d\u00e9si frekvenci\u00e1k megb\u00edzhatatlan m\u00e9r\u00e9sei szakaszban le\u00edrt hangol\u00e1si elj\u00e1r\u00e1st, \u00e9s m\u00e9g mindig ki lehet hozni valamit a bemeneti alak\u00edt\u00e1si technik\u00e1b\u00f3l. Egy m\u00e1sik lehet\u0151s\u00e9g egy gyorsul\u00e1sm\u00e9r\u0151 beszerel\u00e9se, majd rezonanci\u00e1k m\u00e9r\u00e9se vele, \u00e9s a bemeneti alak\u00edt\u00f3 automatikus hangol\u00e1sa e m\u00e9r\u00e9sek eredm\u00e9nyeinek felhaszn\u00e1l\u00e1s\u00e1val.","title":"Nem tudok megb\u00edzhat\u00f3 m\u00e9r\u00e9seket v\u00e9gezni a rezonanciafrekvenci\u00e1kr\u00f3l"},{"location":"Resonance_Compensation.html#az-input_shaper-engedelyezese-utan-tulsagosan-simitott-nyomtatott-alkatreszeket-kapok-es-a-finom-reszletek-elvesznek","text":"Ellen\u0151rizd a Max_accel kiv\u00e1laszt\u00e1sa szakaszban tal\u00e1lhat\u00f3 szempontokat. Ha a rezonanciafrekvencia alacsony, nem szabad t\u00fal magas max_accel \u00e9rt\u00e9ket be\u00e1ll\u00edtani, vagy n\u00f6velni a square_corner_velocity param\u00e9tereket. Az is lehet, hogy az EI (vagy a 2HUMP_EI \u00e9s 3HUMP_EI) v\u00e1ltoz\u00f3k helyett jobb az MZV vagy ak\u00e1r a ZV bemeneti v\u00e1ltoz\u00f3kat v\u00e1lasztani.","title":"Az [input_shaper] enged\u00e9lyez\u00e9se ut\u00e1n t\u00fals\u00e1gosan sim\u00edtott nyomtatott alkatr\u00e9szeket kapok, \u00e9s a finom r\u00e9szletek elvesznek"},{"location":"Resonance_Compensation.html#miutan-egy-ideig-sikeresen-nyomtatott-gyurodesek-nelkul-most-ugy-tunik-hogy-visszajott","text":"Lehets\u00e9ges, hogy egy id\u0151 ut\u00e1n a rezonanciafrekvenci\u00e1k megv\u00e1ltoztak. Pl. tal\u00e1n a sz\u00edjak feszess\u00e9ge megv\u00e1ltozott (a sz\u00edjak laz\u00e1bbak lettek) stb. J\u00f3 \u00f6tlet a Gy\u0171r\u0151d\u00e9si frekvencia szakaszban le\u00edrtak szerint ellen\u0151rizni \u00e9s \u00fajra megm\u00e9rni a rezonanciafrekvenci\u00e1kat, \u00e9s sz\u00fcks\u00e9g eset\u00e9n friss\u00edteni a konfigur\u00e1ci\u00f3s f\u00e1jlt.","title":"Miut\u00e1n egy ideig sikeresen nyomtatott gy\u0171r\u0151d\u00e9sek n\u00e9lk\u00fcl, most \u00fagy t\u0171nik, hogy visszaj\u00f6tt"},{"location":"Resonance_Compensation.html#tamogatott-a-kettos-kocsi-beallitasa-a-bemeneti-formazokkal","text":"Nincs k\u00fcl\u00f6n t\u00e1mogat\u00e1s a bemeneti form\u00e1z\u00f3kkal ell\u00e1tott kett\u0151s kocsikhoz, de ez nem jelenti azt, hogy ez a be\u00e1ll\u00edt\u00e1s nem fog m\u0171k\u00f6dni. A hangol\u00e1st k\u00e9tszer kell lefuttatni mindk\u00e9t kocsira, \u00e9s az X- \u00e9s Y-tengelyek gy\u0171r\u0151d\u00e9si frekvenci\u00e1it mindk\u00e9t kocsira f\u00fcggetlen\u00fcl kell kisz\u00e1m\u00edtani. Ezut\u00e1n a 0. kocsira vonatkoz\u00f3 \u00e9rt\u00e9keket tegye az [input_shaper] szakaszba, \u00e9s a kocsik v\u00e1lt\u00e1sakor menet k\u00f6zben v\u00e1ltoztassa meg az \u00e9rt\u00e9keket, p\u00e9ld\u00e1ul valamilyen makr\u00f3 seg\u00edts\u00e9g\u00e9vel: SET_DUAL_CARRIAGE CARRIAGE=1 SET_INPUT_SHAPER SHAPER_FREQ_X=... SHAPER_FREQ_Y=... \u00c9s ugyan\u00edgy a 0 kocsira val\u00f3 visszakapcsol\u00e1skor is.","title":"T\u00e1mogatott a kett\u0151s kocsi be\u00e1ll\u00edt\u00e1sa a bemeneti form\u00e1z\u00f3kkal?"},{"location":"Resonance_Compensation.html#az-input_shaper-befolyasolja-a-nyomtatasi-idot","text":"Nem, a input_shaper funkci\u00f3 \u00f6nmag\u00e1ban nincs hat\u00e1ssal a nyomtat\u00e1si id\u0151re. A max_accel \u00e9rt\u00e9ke azonban bizonyosan befoly\u00e1solja (ennek a param\u00e9ternek a hangol\u00e1sa ebben a szakaszban le van \u00edrva).","title":"Az input_shaper befoly\u00e1solja a nyomtat\u00e1si id\u0151t?"},{"location":"Resonance_Compensation.html#muszaki-reszletek","text":"","title":"M\u0171szaki r\u00e9szletek"},{"location":"Resonance_Compensation.html#bemeneti-valtozok","text":"A Klipperben haszn\u00e1lt bemeneti form\u00e1z\u00f3k meglehet\u0151sen szabv\u00e1nyosak, \u00e9s r\u00e9szletesebb \u00e1ttekint\u00e9st a megfelel\u0151 form\u00e1z\u00f3kat le\u00edr\u00f3 cikkekben tal\u00e1lhatunk. Ez a szakasz a t\u00e1mogatott bemeneti form\u00e1z\u00f3k n\u00e9h\u00e1ny technikai szempontj\u00e1nak r\u00f6vid \u00e1ttekint\u00e9s\u00e9t tartalmazza. Az al\u00e1bbi t\u00e1bl\u00e1zat az egyes shaperek n\u00e9h\u00e1ny (\u00e1ltal\u00e1ban hozz\u00e1vet\u0151leges) param\u00e9ter\u00e9t mutatja. Bemeneti v\u00e1ltoz\u00f3 V\u00e1ltoz\u00f3 id\u0151tartam Rezonancia cs\u00f6kkent\u00e9s 20x (5% rezg\u00e9st\u0171r\u00e9s) Rezonancia cs\u00f6kkent\u00e9s 10x (10% rezg\u00e9st\u0171r\u00e9s) ZV 0.5 / shaper_freq N/A \u00b1 5% shaper_freq MZV 0.75 / shaper_freq \u00b1 4% shaper_freq -10%...+15% shaper_freq ZVD 1 / shaper_freq \u00b1 15% shaper_freq \u00b1 22% shaper_freq EI 1 / shaper_freq \u00b1 20% shaper_freq \u00b1 25% shaper_freq 2HUMP_EI 1.5 / shaper_freq \u00b1 35% shaper_freq \u00b1 40 shaper_freq 3HUMP_EI 2 / shaper_freq -45...+50% shaper_freq -50%...+55% shaper_freq Megjegyz\u00e9s a rezonancia cs\u00f6kkent\u00e9ssel kapcsolatban: a fenti t\u00e1bl\u00e1zatban szerepl\u0151 \u00e9rt\u00e9kek hozz\u00e1vet\u0151legesek. Ha a nyomtat\u00f3 csillap\u00edt\u00e1si ar\u00e1nya minden egyes tengely eset\u00e9ben ismert, akkor a form\u00e1z\u00f3 pontosabban konfigur\u00e1lhat\u00f3, \u00e9s ekkor a rezonanci\u00e1kat egy kicsit sz\u00e9lesebb frekvenciatartom\u00e1nyban cs\u00f6kkenti. A csillap\u00edt\u00e1si ar\u00e1ny azonban \u00e1ltal\u00e1ban ismeretlen, \u00e9s speci\u00e1lis berendez\u00e9s n\u00e9lk\u00fcl neh\u00e9z megbecs\u00fclni, ez\u00e9rt a Klipper alap\u00e9rtelmez\u00e9s szerint 0,1 \u00e9rt\u00e9ket haszn\u00e1l, ami egy j\u00f3 \u00e1ltal\u00e1nos \u00e9rt\u00e9k. A t\u00e1bl\u00e1zatban szerepl\u0151 frekvenciatartom\u00e1nyok sz\u00e1mos k\u00fcl\u00f6nb\u00f6z\u0151 lehets\u00e9ges csillap\u00edt\u00e1si ar\u00e1nyt fednek le ezen \u00e9rt\u00e9k k\u00f6r\u00fcl (kb. 0,05-t\u0151l 0,2-ig). Vedd figyelembe azt is, hogy az EI, 2HUMP_EI \u00e9s 3HUMP_EI \u00fagy van be\u00e1ll\u00edtva, hogy a rezonanci\u00e1kat 5%-ra cs\u00f6kkentse, ez\u00e9rt a 10%-os rezonanci\u00e1ra vonatkoz\u00f3 \u00e9rt\u00e9kek csak referenciak\u00e9nt szolg\u00e1lnak. Hogyan haszn\u00e1ljuk ezt a t\u00e1bl\u00e1zatot: A form\u00e1z\u00f3 id\u0151tartama befoly\u00e1solja az alkatr\u00e9szek sim\u00edt\u00e1s\u00e1t - min\u00e9l nagyobb, ann\u00e1l sim\u00e1bbak az alkatr\u00e9szek. Ez a f\u00fcgg\u0151s\u00e9g nem line\u00e1ris, de \u00e9rz\u00e9kelteti, hogy ugyanazon frekvencia eset\u00e9n melyik shaper 'sim\u00edt\u00f3' sim\u00edt jobban. A sim\u00edt\u00e1s szerinti sorrend \u00edgy n\u00e9z ki: ZV < MZV < ZVD \u2248 EI < 2HUMP_EI < 3HUMP_EI. Tov\u00e1bb\u00e1, a 2HUMP_EI \u00e9s 3HUMP_EI alak\u00edt\u00f3k eset\u00e9ben ritk\u00e1n praktikus a shaper_freq = rezonancia frekvencia \u00e9rt\u00e9ket be\u00e1ll\u00edtani (ezeket t\u00f6bb frekvencia rezg\u00e9seinek cs\u00f6kkent\u00e9s\u00e9re kell haszn\u00e1lni). Megbecs\u00fclhet\u0151 az a frekvenciatartom\u00e1ny, amelyben a form\u00e1z\u00f3 cs\u00f6kkenti a rezg\u00e9seket. P\u00e9ld\u00e1ul a shaper_freq = 35 Hz-es MZV a [33,6, 36,4] Hz-es frekvenci\u00e1n 5%-ra cs\u00f6kkenti a rezg\u00e9seket. A 3HUMP_EI shaper_freq = 50 Hz eset\u00e9n a [27,5, 75] Hz tartom\u00e1nyban 5%-ra cs\u00f6kkenti a rezg\u00e9seket. A t\u00e1bl\u00e1zat seg\u00edts\u00e9g\u00e9vel ellen\u0151rizheti, hogy melyik v\u00e1ltoz\u00f3t kell haszn\u00e1lnia, ha t\u00f6bb frekvenci\u00e1n kell cs\u00f6kkentenie a rezg\u00e9seket. P\u00e9ld\u00e1ul, ha ugyanazon a tengelyen 35 Hz-es \u00e9s 60 Hz-es rezonanci\u00e1k vannak: a) az EI alak\u00edt\u00f3nak a shaper_freq = 35 / (1 - 0,2) = 43,75 Hz-re van sz\u00fcks\u00e9ge, \u00e9s 43,75 * (1 + 0,2) = 52-ig cs\u00f6kkenti a rezonanci\u00e1kat teh\u00e1t az 52.5 Hz, nem elegend\u0151. b) a 2HUMP_EI alak\u00edt\u00f3nak shaper_freq = 35 / (1 - 0,35) = 53,85 Hz-nek kell lennie, \u00e9s 53,85 * (1 + 0,35) = 72,7 Hz-ig cs\u00f6kkenti a rezg\u00e9seket - teh\u00e1t ez egy elfogadhat\u00f3 konfigur\u00e1ci\u00f3. Mindig pr\u00f3b\u00e1ljon meg min\u00e9l magasabb shaper_freq \u00e9rt\u00e9ket haszn\u00e1lni egy adott shaper-hez (esetleg n\u00e9mi biztons\u00e1gi tartal\u00e9kkal, \u00edgy ebben a p\u00e9ld\u00e1ban a shaper_freq \u2248 50-52 Hz lenne a legjobb), \u00e9s pr\u00f3b\u00e1ljon meg min\u00e9l kisebb shaper id\u0151tartam\u00fa \u00e9rt\u00e9ket haszn\u00e1lni. Ha valakinek t\u00f6bb nagyon k\u00fcl\u00f6nb\u00f6z\u0151 frekvenci\u00e1n (mondjuk 30 Hz \u00e9s 100 Hz) kell cs\u00f6kkentenie a rezg\u00e9seket, l\u00e1thatja, hogy a fenti t\u00e1bl\u00e1zat nem ny\u00fajt elegend\u0151 inform\u00e1ci\u00f3t. Ebben az esetben t\u00f6bb szerencs\u00e9nk lehet a scripts/graph_shaper.py szkripttel, amely rugalmasabb.","title":"Bemeneti v\u00e1ltoz\u00f3k"},{"location":"Rotation_Distance.html","text":"Forgat\u00e1si t\u00e1vols\u00e1g \u00b6 A Klipper l\u00e9ptet\u0151motor meghajt\u00f3k minden l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3s szakaszban megk\u00f6vetelnek egy rotation_distance param\u00e9tert. A rotation_distance az a t\u00e1vols\u00e1g, amelyet a tengely a l\u00e9ptet\u0151motor egy teljes fordulat\u00e1val elmozd\u00edt. Ez a dokumentum le\u00edrja, hogyan lehet ezt az \u00e9rt\u00e9ket be\u00e1ll\u00edtani. A rotation_distance kinyer\u00e9se a steps_per_mm (vagy step_distance) \u00e9rt\u00e9kb\u0151l \u00b6 A 3D nyomtat\u00f3 tervez\u0151i eredetileg steps_per_mm forgat\u00e1si t\u00e1vols\u00e1gb\u00f3l sz\u00e1m\u00edtott\u00e1k ki. Ha ismered a steps_per_mm \u00e9rt\u00e9ket, akkor ezzel az \u00e1ltal\u00e1nos k\u00e9plettel megkaphatja ezt az eredeti forgat\u00e1si t\u00e1vols\u00e1got: rotation_distance = <full_steps_per_rotation> * <microsteps> / <steps_per_mm> Vagy ha r\u00e9gebbi Klipper konfigur\u00e1ci\u00f3val rendelkezik, \u00e9s ismered a step_distance param\u00e9tert, akkor haszn\u00e1lhatod ezt a k\u00e9pletet: rotation_distance = <full_steps_per_rotation> * <microsteps> * <step_distance> A <full_steps_per_rotation> be\u00e1ll\u00edt\u00e1st a l\u00e9ptet\u0151motor t\u00edpusa hat\u00e1rozza meg. A legt\u00f6bb l\u00e9ptet\u0151motor \"1,8 fokos l\u00e9p\u00e9ssz\u00f6g\u0171\" \u00e9s ez\u00e9rt 200 teljes l\u00e9p\u00e9s/fordulat (360 osztva 1,8-al 200). Egyes l\u00e9ptet\u0151motorok \"0,9 fokos l\u00e9p\u00e9ssz\u00f6g\u0171ek\" \u00e9s \u00edgy 400 teljes l\u00e9p\u00e9st tesznek meg fordulatonk\u00e9nt. M\u00e1s l\u00e9ptet\u0151motorok ritk\u00e1bbak. Ha bizonytalan vagy, ne \u00e1ll\u00edtsd be a full_steps_per_rotation \u00e9rt\u00e9ket a konfigur\u00e1ci\u00f3s f\u00e1jlban, \u00e9s haszn\u00e1ld a 200-at a fenti k\u00e9pletben. A <mikrol\u00e9p\u00e9sek> be\u00e1ll\u00edt\u00e1st a l\u00e9ptet\u0151motor-meghajt\u00f3 hat\u00e1rozza meg. A legt\u00f6bb meghajt\u00f3 16 mikrol\u00e9p\u00e9st haszn\u00e1l. Ha bizonytalan vagy, \u00e1ll\u00edtsd be a microsteps: 16 a konfigur\u00e1ci\u00f3ban, \u00e9s haszn\u00e1ld a 16-ot a fenti k\u00e9pletben. Szinte minden nyomtat\u00f3nak eg\u00e9sz sz\u00e1mot kell megadnia a rotation_distance X, Y \u00e9s Z t\u00edpus\u00fa tengelyekn\u00e9l. Ha a fenti k\u00e9plet olyan rotation_distance-ot eredm\u00e9nyez, amely 0,01 eg\u00e9sz sz\u00e1mon bel\u00fcl van, akkor kerek\u00edtse a v\u00e9gs\u0151 \u00e9rt\u00e9ket erre az eg\u00e9sz sz\u00e1mra. A rotation_distance kalibr\u00e1l\u00e1sa extrudereken \u00b6 Egy extruder eset\u00e9ben a rotation_distance az a t\u00e1vols\u00e1g, amelyet a nyomtat\u00f3sz\u00e1l l\u00e9ptet\u0151motor egy teljes fordulat\u00e1n megtesz. Ennek a be\u00e1ll\u00edt\u00e1snak a pontos \u00e9rt\u00e9k\u00e9t a \"m\u00e9r\u00e9s \u00e9s igaz\u00edt\u00e1s\" elj\u00e1r\u00e1ssal lehet a legjobban meghat\u00e1rozni. El\u0151sz\u00f6r is kezdj\u00fck a forgat\u00e1si t\u00e1vols\u00e1g kezdeti becsl\u00e9s\u00e9vel. Ezt a steps_per_mm vagy a hardver vizsg\u00e1lata seg\u00edts\u00e9g\u00e9vel kaphatjuk meg. Ezut\u00e1n a k\u00f6vetkez\u0151 elj\u00e1r\u00e1st alkalmazd a \"m\u00e9r\u00e9s \u00e9s igaz\u00edt\u00e1s\" elv\u00e9gz\u00e9s\u00e9hez: Gy\u0151z\u0151dj meg arr\u00f3l, hogy az extruderben van-e nyomtat\u00f3sz\u00e1l, a hotend megfelel\u0151 h\u0151m\u00e9rs\u00e9kletre van-e meleg\u00edtve, \u00e9s a nyomtat\u00f3 k\u00e9szen \u00e1ll-e az extrud\u00e1l\u00e1sra. Jel\u00f6lje meg a nyomtat\u00f3sz\u00e1lat egy jel\u00f6l\u0151vel az extrudertest bemen\u0151 ny\u00edl\u00e1s\u00e1t\u00f3l kb. 70 mm-re. Ezut\u00e1n egy digit\u00e1lis tol\u00f3m\u00e9r\u0151vel m\u00e9rd meg a lehet\u0151 legpontosabban ennek a jel\u00f6l\u00e9snek a t\u00e9nyleges t\u00e1vols\u00e1g\u00e1t. Ezt jegyezze fel <initial_mark_distance> . Extrud\u00e1ljon 50 mm nyomtat\u00f3sz\u00e1lat a k\u00f6vetkez\u0151 parancsokkal: G91 , majd G1 E50 F60 . Az 50 mm-t jegyezze meg <requested_extrude_distance> . V\u00e1rja meg, am\u00edg az extruder befejezi a mozg\u00e1st (ez k\u00f6r\u00fclbel\u00fcl 50 m\u00e1sodpercig tart). Fontos, hogy lass\u00fa extrud\u00e1l\u00e1si sebess\u00e9get haszn\u00e1lj ehhez a teszthez, mivel a gyorsabb sebess\u00e9g magas nyom\u00e1st okozhat az extruderben, ami torz\u00edtja az eredm\u00e9nyeket. (Ne haszn\u00e1lod az \"extrude gombot\" a grafikus el\u0151lapon ehhez a teszthez, mivel azok gyors \u00fctemben extrud\u00e1lnak.) A digit\u00e1lis tol\u00f3m\u00e9r\u0151vel m\u00e9rd meg az extruder teste \u00e9s a sz\u00e1lon l\u00e9v\u0151 jel\u00f6l\u00e9s k\u00f6z\u00f6tti \u00faj t\u00e1vols\u00e1got. Ezt jegyezze fel <subsequent_mark_distance> . Ezut\u00e1n sz\u00e1m\u00edtsa ki: actual_extrude_distance = <initial_mark_distance> - <subsequent_mark_distance> A rotation_distance kisz\u00e1m\u00edt\u00e1sa: rotation_distance = <previous_rotation_distance> * <actual_extrude_distance> / <requested_extrude_distance> Az \u00faj rotation_distance-t h\u00e1rom tizedesjegyre kerek\u00edtj\u00fck. Ha az actual_extrude_distance t\u00f6bb mint 2 mm-rel elt\u00e9r a requested_extrude_distance-t\u00f3l, akkor \u00e9rdemes a fenti l\u00e9p\u00e9seket m\u00e1sodszor is elv\u00e9gezni. Megjegyz\u00e9s: Ne haszn\u00e1lj \"m\u00e9r\u00e9s \u00e9s trimmel\u00e9s\" t\u00edpus\u00fa m\u00f3dszert az X, Y vagy Z t\u00edpus\u00fa tengelyek kalibr\u00e1l\u00e1s\u00e1ra. A \"measure and trim\" m\u00f3dszer nem el\u00e9g pontos ezekhez a tengelyekhez, \u00e9s val\u00f3sz\u00edn\u0171leg rosszabb konfigur\u00e1ci\u00f3hoz vezet. Ehelyett, ha sz\u00fcks\u00e9ges, ezeket a tengelyeket a sz\u00edjak, sz\u00edjt\u00e1rcs\u00e1k \u00e9s az ors\u00f3k hardver\u00e9nek m\u00e9r\u00e9s\u00e9vel lehet meghat\u00e1rozni. A rotation_distance meghat\u00e1roz\u00e1sa a hardver vizsg\u00e1lat\u00e1val \u00b6 Lehets\u00e9ges a rotation_distance kisz\u00e1m\u00edt\u00e1sa a l\u00e9ptet\u0151motorok \u00e9s a nyomtat\u00f3 kinematik\u00e1j\u00e1nak ismeret\u00e9ben. Ez hasznos lehet, ha a steps_per_mm nem ismert, vagy ha \u00faj nyomtat\u00f3t tervez\u00fcnk. Sz\u00edjhajt\u00e1s\u00fa tengelyek \u00b6 Egyszer\u0171 kisz\u00e1m\u00edtani a rotation_distance-t egy sz\u00edjat \u00e9s csig\u00e1t haszn\u00e1l\u00f3 line\u00e1ris tengely eset\u00e9ben. El\u0151sz\u00f6r hat\u00e1rozza meg a sz\u00edj t\u00edpus\u00e1t. A legt\u00f6bb nyomtat\u00f3 2 mm-es fogoszt\u00e1st haszn\u00e1l (azaz a sz\u00edj minden egyes foga 2 mm t\u00e1vols\u00e1gra van egym\u00e1st\u00f3l). Ezut\u00e1n sz\u00e1molja meg a l\u00e9ptet\u0151motor sz\u00edjt\u00e1rcs\u00e1ja fogainak sz\u00e1m\u00e1t. A rotation_distance ezut\u00e1n a k\u00f6vetkez\u0151k\u00e9ppen sz\u00e1m\u00edthat\u00f3 ki: rotation_distance = <belt_pitch> * <number_of_teeth_on_pulley> Ha p\u00e9ld\u00e1ul egy nyomtat\u00f3 2 mm-es fogoszt\u00e1s\u00fa sz\u00edjjal rendelkezik, \u00e9s 20 fog\u00fa t\u00e1rcs\u00e1t haszn\u00e1l, akkor a forgat\u00e1si t\u00e1vols\u00e1g 40. Tengelyek trap\u00e9zmenetes ors\u00f3val \u00b6 A rotation_distance a szok\u00e1sos csavarok eset\u00e9ben k\u00f6nnyen kisz\u00e1m\u00edthat\u00f3 a k\u00f6vetkez\u0151 k\u00e9plet seg\u00edts\u00e9g\u00e9vel: rotation_distance = <screw_pitch> * <number_of_separate_threads> P\u00e9ld\u00e1ul a szok\u00e1sos \"T8-as trap\u00e9zmenetes ors\u00f3\" forgat\u00e1si t\u00e1vols\u00e1ga 8 (2 mm-es l\u00e9p\u00e9sk\u00f6zzel \u00e9s 4 k\u00fcl\u00f6n\u00e1ll\u00f3 menettel rendelkezik). A \"menetes sz\u00e1rakkal\" ell\u00e1tott r\u00e9gebbi nyomtat\u00f3knak csak egy \"menet\" van a menetes sz\u00e1ron, \u00e9s \u00edgy a forgat\u00e1si t\u00e1vols\u00e1g a csavar l\u00e9p\u00e9ssz\u00f6ge. (A csavar l\u00e9p\u00e9sk\u00f6ze a csavaron l\u00e9v\u0151 egyes hornyok k\u00f6z\u00f6tti t\u00e1vols\u00e1g.) \u00cdgy p\u00e9ld\u00e1ul egy M6-os metrikus menetes sz\u00e1r forgat\u00e1si t\u00e1vols\u00e1ga 1, \u00e9s egy M8-as menetes sz\u00e1r\u00e9 pedig 1,25mm-es. Extruder \u00b6 Az extruderek kezdeti forgat\u00e1si t\u00e1vols\u00e1g\u00e1t \u00fagy lehet meghat\u00e1rozni, hogy megm\u00e9rj\u00fck a \"sz\u00e1lmozgat\u00f3 ker\u00e9k\" \u00e1tm\u00e9r\u0151j\u00e9t, amely a sz\u00e1lakat tolja, \u00e9s a k\u00f6vetkez\u0151 k\u00e9pletet haszn\u00e1ljuk: rotation_distance = <diameter> * 3.14 Ha az extruder fogaskerekeket haszn\u00e1l, akkor meg kell hat\u00e1rozni \u00e9s be kell \u00e1ll\u00edtani a gear_ratio \u00e9rt\u00e9ket az extruderhez. Az extruder t\u00e9nyleges forgat\u00e1si t\u00e1vols\u00e1ga nyomtat\u00f3r\u00f3l nyomtat\u00f3ra v\u00e1ltozik, mivel a \"sz\u00e1lmozgat\u00f3 ker\u00e9k\" fogaz\u00e1sa, amely a sz\u00e1lakkal \u00e9rintkezik, v\u00e1ltozhat. Ez m\u00e9g az egyes sz\u00e1ltekercsek k\u00f6z\u00f6tt is v\u00e1ltozhat. A kezdeti rotation_distance meghat\u00e1roz\u00e1sa ut\u00e1n haszn\u00e1ld a m\u00e9r\u00e9s \u00e9s trimmel\u00e9s elj\u00e1r\u00e1s m\u0171veletet a pontosabb be\u00e1ll\u00edt\u00e1shoz. A gear_ratio haszn\u00e1lata \u00b6 A gear_ratio be\u00e1ll\u00edt\u00e1sa megk\u00f6nny\u00edtheti a rotation_distance konfigur\u00e1l\u00e1s\u00e1t olyan l\u00e9ptet\u0151kn\u00e9l, amelyekhez \u00e1tt\u00e9tel (vagy hasonl\u00f3) van csatlakoztatva. A legt\u00f6bb l\u00e9ptet\u0151 nem rendelkezik \u00e1tt\u00e9tellel. Ha nem biztos benne, akkor ne \u00e1ll\u00edtsd be a gear_ratio \u00e9rt\u00e9ket a konfigur\u00e1ci\u00f3ban. Ha gear_ratio be van \u00e1ll\u00edtva, a rotation_distance azt a t\u00e1vols\u00e1got jel\u00f6li, amelyet a tengely az \u00e1tt\u00e9telen l\u00e9v\u0151 utols\u00f3 fogasker\u00e9k egy teljes elfordul\u00e1s\u00e1val megtesz. Ha p\u00e9ld\u00e1ul egy \"5:1\"-es \u00e1tt\u00e9telt haszn\u00e1lunk, akkor kisz\u00e1m\u00edthatjuk a rotation_distance-ot a hardver ismeret\u00e9ben , majd hozz\u00e1adhatjuk a gear_ratio: 5:1 \u00e9rt\u00e9ket a konfigur\u00e1ci\u00f3s f\u00e1jlhoz. A sz\u00edjakkal \u00e9s sz\u00edjt\u00e1rcs\u00e1kkal megval\u00f3s\u00edtott hajt\u00f3m\u0171vek eset\u00e9ben a fogaskerekek fogainak megsz\u00e1ml\u00e1l\u00e1s\u00e1val lehet meghat\u00e1rozni a gear_ratio-t. Ha p\u00e9ld\u00e1ul egy 16 fogaz\u00e1s\u00fa sz\u00edjt\u00e1rcs\u00e1val rendelkez\u0151 l\u00e9ptet\u0151 meghajtja a, 80 fogaz\u00e1s\u00fa sz\u00edjt\u00e1rcs\u00e1t, akkor a gear_ratio: 80:16 \u00e9rt\u00e9ket haszn\u00e1ljuk. Val\u00f3ban, ki lehetne nyitni egy k\u00f6z\u00f6ns\u00e9ges, \"fogasker\u00e9kdobozt\" \u00e9s megsz\u00e1molni a benne l\u00e9v\u0151 fogakat, hogy meger\u0151s\u00edts\u00fck a fogasker\u00e9k \u00e1tt\u00e9tel\u00e9t. Vedd figyelembe, hogy n\u00e9ha egy \u00e1tt\u00e9tel kiss\u00e9 elt\u00e9r a hirdetett \u00e9rt\u00e9kt\u0151l. A BMG extrudermotorok k\u00f6z\u00f6s fogaskerekei p\u00e9ld\u00e1t mutatnak erre. A rekl\u00e1mok szerint \"3:1\", de val\u00f3j\u00e1ban \"50:17\" \u00e1tt\u00e9telt haszn\u00e1lnak. (A k\u00f6z\u00f6s nevez\u0151 n\u00e9lk\u00fcli fogsz\u00e1mok haszn\u00e1lata jav\u00edthatja a fogaskerekek \u00e1ltal\u00e1nos kop\u00e1s\u00e1t, mivel a fogak nem mindig ugyan\u00fagy fognak \u00f6ssze minden egyes fordulatn\u00e1l.) A gyakori \"5,18:1 bolyg\u00f3m\u0171ves sebess\u00e9gv\u00e1lt\u00f3\", pontosabban a gear_ratio: 57:11 \u00e9rt\u00e9kkel van konfigur\u00e1lva. Ha egy tengelyen t\u00f6bb fogasker\u00e9k van haszn\u00e1latban, akkor a gear_ratio-nak egy vessz\u0151vel elv\u00e1lasztott list\u00e1t lehet megadni. P\u00e9ld\u00e1ul egy \"5:1\" fogasker\u00e9k, amely egy 16 fogaz\u00e1s\u00fa \u00e9s egy 80 fogaz\u00e1s\u00fa t\u00e1rcs\u00e1t hajt, haszn\u00e1lhatod a gear_ratio: 5:1, 80:16 \u00e9rt\u00e9keket. A legt\u00f6bb esetben a gear_ratio \u00e9rt\u00e9k\u00e9t eg\u00e9sz sz\u00e1mokkal kell megadni, mivel a fogaskerekek \u00e9s a sz\u00edjt\u00e1rcs\u00e1k fogainak sz\u00e1ma \u00e1ltal\u00e1ban eg\u00e9sz. Azokban az esetekben azonban, amikor a sz\u00edj fogak helyett s\u00farl\u00f3d\u00e1ssal hajtja a sz\u00edjt\u00e1rcs\u00e1t, \u00e9rdemes lehet lebeg\u0151pontos sz\u00e1mot haszn\u00e1lni a fogasker\u00e9k-\u00e1tt\u00e9telben (pl. gear_ratio: 107,237:16 ).","title":"Forgat\u00e1si t\u00e1vols\u00e1g"},{"location":"Rotation_Distance.html#forgatasi-tavolsag","text":"A Klipper l\u00e9ptet\u0151motor meghajt\u00f3k minden l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3s szakaszban megk\u00f6vetelnek egy rotation_distance param\u00e9tert. A rotation_distance az a t\u00e1vols\u00e1g, amelyet a tengely a l\u00e9ptet\u0151motor egy teljes fordulat\u00e1val elmozd\u00edt. Ez a dokumentum le\u00edrja, hogyan lehet ezt az \u00e9rt\u00e9ket be\u00e1ll\u00edtani.","title":"Forgat\u00e1si t\u00e1vols\u00e1g"},{"location":"Rotation_Distance.html#a-rotation_distance-kinyerese-a-steps_per_mm-vagy-step_distance-ertekbol","text":"A 3D nyomtat\u00f3 tervez\u0151i eredetileg steps_per_mm forgat\u00e1si t\u00e1vols\u00e1gb\u00f3l sz\u00e1m\u00edtott\u00e1k ki. Ha ismered a steps_per_mm \u00e9rt\u00e9ket, akkor ezzel az \u00e1ltal\u00e1nos k\u00e9plettel megkaphatja ezt az eredeti forgat\u00e1si t\u00e1vols\u00e1got: rotation_distance = <full_steps_per_rotation> * <microsteps> / <steps_per_mm> Vagy ha r\u00e9gebbi Klipper konfigur\u00e1ci\u00f3val rendelkezik, \u00e9s ismered a step_distance param\u00e9tert, akkor haszn\u00e1lhatod ezt a k\u00e9pletet: rotation_distance = <full_steps_per_rotation> * <microsteps> * <step_distance> A <full_steps_per_rotation> be\u00e1ll\u00edt\u00e1st a l\u00e9ptet\u0151motor t\u00edpusa hat\u00e1rozza meg. A legt\u00f6bb l\u00e9ptet\u0151motor \"1,8 fokos l\u00e9p\u00e9ssz\u00f6g\u0171\" \u00e9s ez\u00e9rt 200 teljes l\u00e9p\u00e9s/fordulat (360 osztva 1,8-al 200). Egyes l\u00e9ptet\u0151motorok \"0,9 fokos l\u00e9p\u00e9ssz\u00f6g\u0171ek\" \u00e9s \u00edgy 400 teljes l\u00e9p\u00e9st tesznek meg fordulatonk\u00e9nt. M\u00e1s l\u00e9ptet\u0151motorok ritk\u00e1bbak. Ha bizonytalan vagy, ne \u00e1ll\u00edtsd be a full_steps_per_rotation \u00e9rt\u00e9ket a konfigur\u00e1ci\u00f3s f\u00e1jlban, \u00e9s haszn\u00e1ld a 200-at a fenti k\u00e9pletben. A <mikrol\u00e9p\u00e9sek> be\u00e1ll\u00edt\u00e1st a l\u00e9ptet\u0151motor-meghajt\u00f3 hat\u00e1rozza meg. A legt\u00f6bb meghajt\u00f3 16 mikrol\u00e9p\u00e9st haszn\u00e1l. Ha bizonytalan vagy, \u00e1ll\u00edtsd be a microsteps: 16 a konfigur\u00e1ci\u00f3ban, \u00e9s haszn\u00e1ld a 16-ot a fenti k\u00e9pletben. Szinte minden nyomtat\u00f3nak eg\u00e9sz sz\u00e1mot kell megadnia a rotation_distance X, Y \u00e9s Z t\u00edpus\u00fa tengelyekn\u00e9l. Ha a fenti k\u00e9plet olyan rotation_distance-ot eredm\u00e9nyez, amely 0,01 eg\u00e9sz sz\u00e1mon bel\u00fcl van, akkor kerek\u00edtse a v\u00e9gs\u0151 \u00e9rt\u00e9ket erre az eg\u00e9sz sz\u00e1mra.","title":"A rotation_distance kinyer\u00e9se a steps_per_mm (vagy step_distance) \u00e9rt\u00e9kb\u0151l"},{"location":"Rotation_Distance.html#a-rotation_distance-kalibralasa-extrudereken","text":"Egy extruder eset\u00e9ben a rotation_distance az a t\u00e1vols\u00e1g, amelyet a nyomtat\u00f3sz\u00e1l l\u00e9ptet\u0151motor egy teljes fordulat\u00e1n megtesz. Ennek a be\u00e1ll\u00edt\u00e1snak a pontos \u00e9rt\u00e9k\u00e9t a \"m\u00e9r\u00e9s \u00e9s igaz\u00edt\u00e1s\" elj\u00e1r\u00e1ssal lehet a legjobban meghat\u00e1rozni. El\u0151sz\u00f6r is kezdj\u00fck a forgat\u00e1si t\u00e1vols\u00e1g kezdeti becsl\u00e9s\u00e9vel. Ezt a steps_per_mm vagy a hardver vizsg\u00e1lata seg\u00edts\u00e9g\u00e9vel kaphatjuk meg. Ezut\u00e1n a k\u00f6vetkez\u0151 elj\u00e1r\u00e1st alkalmazd a \"m\u00e9r\u00e9s \u00e9s igaz\u00edt\u00e1s\" elv\u00e9gz\u00e9s\u00e9hez: Gy\u0151z\u0151dj meg arr\u00f3l, hogy az extruderben van-e nyomtat\u00f3sz\u00e1l, a hotend megfelel\u0151 h\u0151m\u00e9rs\u00e9kletre van-e meleg\u00edtve, \u00e9s a nyomtat\u00f3 k\u00e9szen \u00e1ll-e az extrud\u00e1l\u00e1sra. Jel\u00f6lje meg a nyomtat\u00f3sz\u00e1lat egy jel\u00f6l\u0151vel az extrudertest bemen\u0151 ny\u00edl\u00e1s\u00e1t\u00f3l kb. 70 mm-re. Ezut\u00e1n egy digit\u00e1lis tol\u00f3m\u00e9r\u0151vel m\u00e9rd meg a lehet\u0151 legpontosabban ennek a jel\u00f6l\u00e9snek a t\u00e9nyleges t\u00e1vols\u00e1g\u00e1t. Ezt jegyezze fel <initial_mark_distance> . Extrud\u00e1ljon 50 mm nyomtat\u00f3sz\u00e1lat a k\u00f6vetkez\u0151 parancsokkal: G91 , majd G1 E50 F60 . Az 50 mm-t jegyezze meg <requested_extrude_distance> . V\u00e1rja meg, am\u00edg az extruder befejezi a mozg\u00e1st (ez k\u00f6r\u00fclbel\u00fcl 50 m\u00e1sodpercig tart). Fontos, hogy lass\u00fa extrud\u00e1l\u00e1si sebess\u00e9get haszn\u00e1lj ehhez a teszthez, mivel a gyorsabb sebess\u00e9g magas nyom\u00e1st okozhat az extruderben, ami torz\u00edtja az eredm\u00e9nyeket. (Ne haszn\u00e1lod az \"extrude gombot\" a grafikus el\u0151lapon ehhez a teszthez, mivel azok gyors \u00fctemben extrud\u00e1lnak.) A digit\u00e1lis tol\u00f3m\u00e9r\u0151vel m\u00e9rd meg az extruder teste \u00e9s a sz\u00e1lon l\u00e9v\u0151 jel\u00f6l\u00e9s k\u00f6z\u00f6tti \u00faj t\u00e1vols\u00e1got. Ezt jegyezze fel <subsequent_mark_distance> . Ezut\u00e1n sz\u00e1m\u00edtsa ki: actual_extrude_distance = <initial_mark_distance> - <subsequent_mark_distance> A rotation_distance kisz\u00e1m\u00edt\u00e1sa: rotation_distance = <previous_rotation_distance> * <actual_extrude_distance> / <requested_extrude_distance> Az \u00faj rotation_distance-t h\u00e1rom tizedesjegyre kerek\u00edtj\u00fck. Ha az actual_extrude_distance t\u00f6bb mint 2 mm-rel elt\u00e9r a requested_extrude_distance-t\u00f3l, akkor \u00e9rdemes a fenti l\u00e9p\u00e9seket m\u00e1sodszor is elv\u00e9gezni. Megjegyz\u00e9s: Ne haszn\u00e1lj \"m\u00e9r\u00e9s \u00e9s trimmel\u00e9s\" t\u00edpus\u00fa m\u00f3dszert az X, Y vagy Z t\u00edpus\u00fa tengelyek kalibr\u00e1l\u00e1s\u00e1ra. A \"measure and trim\" m\u00f3dszer nem el\u00e9g pontos ezekhez a tengelyekhez, \u00e9s val\u00f3sz\u00edn\u0171leg rosszabb konfigur\u00e1ci\u00f3hoz vezet. Ehelyett, ha sz\u00fcks\u00e9ges, ezeket a tengelyeket a sz\u00edjak, sz\u00edjt\u00e1rcs\u00e1k \u00e9s az ors\u00f3k hardver\u00e9nek m\u00e9r\u00e9s\u00e9vel lehet meghat\u00e1rozni.","title":"A rotation_distance kalibr\u00e1l\u00e1sa extrudereken"},{"location":"Rotation_Distance.html#a-rotation_distance-meghatarozasa-a-hardver-vizsgalataval","text":"Lehets\u00e9ges a rotation_distance kisz\u00e1m\u00edt\u00e1sa a l\u00e9ptet\u0151motorok \u00e9s a nyomtat\u00f3 kinematik\u00e1j\u00e1nak ismeret\u00e9ben. Ez hasznos lehet, ha a steps_per_mm nem ismert, vagy ha \u00faj nyomtat\u00f3t tervez\u00fcnk.","title":"A rotation_distance meghat\u00e1roz\u00e1sa a hardver vizsg\u00e1lat\u00e1val"},{"location":"Rotation_Distance.html#szijhajtasu-tengelyek","text":"Egyszer\u0171 kisz\u00e1m\u00edtani a rotation_distance-t egy sz\u00edjat \u00e9s csig\u00e1t haszn\u00e1l\u00f3 line\u00e1ris tengely eset\u00e9ben. El\u0151sz\u00f6r hat\u00e1rozza meg a sz\u00edj t\u00edpus\u00e1t. A legt\u00f6bb nyomtat\u00f3 2 mm-es fogoszt\u00e1st haszn\u00e1l (azaz a sz\u00edj minden egyes foga 2 mm t\u00e1vols\u00e1gra van egym\u00e1st\u00f3l). Ezut\u00e1n sz\u00e1molja meg a l\u00e9ptet\u0151motor sz\u00edjt\u00e1rcs\u00e1ja fogainak sz\u00e1m\u00e1t. A rotation_distance ezut\u00e1n a k\u00f6vetkez\u0151k\u00e9ppen sz\u00e1m\u00edthat\u00f3 ki: rotation_distance = <belt_pitch> * <number_of_teeth_on_pulley> Ha p\u00e9ld\u00e1ul egy nyomtat\u00f3 2 mm-es fogoszt\u00e1s\u00fa sz\u00edjjal rendelkezik, \u00e9s 20 fog\u00fa t\u00e1rcs\u00e1t haszn\u00e1l, akkor a forgat\u00e1si t\u00e1vols\u00e1g 40.","title":"Sz\u00edjhajt\u00e1s\u00fa tengelyek"},{"location":"Rotation_Distance.html#tengelyek-trapezmenetes-orsoval","text":"A rotation_distance a szok\u00e1sos csavarok eset\u00e9ben k\u00f6nnyen kisz\u00e1m\u00edthat\u00f3 a k\u00f6vetkez\u0151 k\u00e9plet seg\u00edts\u00e9g\u00e9vel: rotation_distance = <screw_pitch> * <number_of_separate_threads> P\u00e9ld\u00e1ul a szok\u00e1sos \"T8-as trap\u00e9zmenetes ors\u00f3\" forgat\u00e1si t\u00e1vols\u00e1ga 8 (2 mm-es l\u00e9p\u00e9sk\u00f6zzel \u00e9s 4 k\u00fcl\u00f6n\u00e1ll\u00f3 menettel rendelkezik). A \"menetes sz\u00e1rakkal\" ell\u00e1tott r\u00e9gebbi nyomtat\u00f3knak csak egy \"menet\" van a menetes sz\u00e1ron, \u00e9s \u00edgy a forgat\u00e1si t\u00e1vols\u00e1g a csavar l\u00e9p\u00e9ssz\u00f6ge. (A csavar l\u00e9p\u00e9sk\u00f6ze a csavaron l\u00e9v\u0151 egyes hornyok k\u00f6z\u00f6tti t\u00e1vols\u00e1g.) \u00cdgy p\u00e9ld\u00e1ul egy M6-os metrikus menetes sz\u00e1r forgat\u00e1si t\u00e1vols\u00e1ga 1, \u00e9s egy M8-as menetes sz\u00e1r\u00e9 pedig 1,25mm-es.","title":"Tengelyek trap\u00e9zmenetes ors\u00f3val"},{"location":"Rotation_Distance.html#extruder","text":"Az extruderek kezdeti forgat\u00e1si t\u00e1vols\u00e1g\u00e1t \u00fagy lehet meghat\u00e1rozni, hogy megm\u00e9rj\u00fck a \"sz\u00e1lmozgat\u00f3 ker\u00e9k\" \u00e1tm\u00e9r\u0151j\u00e9t, amely a sz\u00e1lakat tolja, \u00e9s a k\u00f6vetkez\u0151 k\u00e9pletet haszn\u00e1ljuk: rotation_distance = <diameter> * 3.14 Ha az extruder fogaskerekeket haszn\u00e1l, akkor meg kell hat\u00e1rozni \u00e9s be kell \u00e1ll\u00edtani a gear_ratio \u00e9rt\u00e9ket az extruderhez. Az extruder t\u00e9nyleges forgat\u00e1si t\u00e1vols\u00e1ga nyomtat\u00f3r\u00f3l nyomtat\u00f3ra v\u00e1ltozik, mivel a \"sz\u00e1lmozgat\u00f3 ker\u00e9k\" fogaz\u00e1sa, amely a sz\u00e1lakkal \u00e9rintkezik, v\u00e1ltozhat. Ez m\u00e9g az egyes sz\u00e1ltekercsek k\u00f6z\u00f6tt is v\u00e1ltozhat. A kezdeti rotation_distance meghat\u00e1roz\u00e1sa ut\u00e1n haszn\u00e1ld a m\u00e9r\u00e9s \u00e9s trimmel\u00e9s elj\u00e1r\u00e1s m\u0171veletet a pontosabb be\u00e1ll\u00edt\u00e1shoz.","title":"Extruder"},{"location":"Rotation_Distance.html#a-gear_ratio-hasznalata","text":"A gear_ratio be\u00e1ll\u00edt\u00e1sa megk\u00f6nny\u00edtheti a rotation_distance konfigur\u00e1l\u00e1s\u00e1t olyan l\u00e9ptet\u0151kn\u00e9l, amelyekhez \u00e1tt\u00e9tel (vagy hasonl\u00f3) van csatlakoztatva. A legt\u00f6bb l\u00e9ptet\u0151 nem rendelkezik \u00e1tt\u00e9tellel. Ha nem biztos benne, akkor ne \u00e1ll\u00edtsd be a gear_ratio \u00e9rt\u00e9ket a konfigur\u00e1ci\u00f3ban. Ha gear_ratio be van \u00e1ll\u00edtva, a rotation_distance azt a t\u00e1vols\u00e1got jel\u00f6li, amelyet a tengely az \u00e1tt\u00e9telen l\u00e9v\u0151 utols\u00f3 fogasker\u00e9k egy teljes elfordul\u00e1s\u00e1val megtesz. Ha p\u00e9ld\u00e1ul egy \"5:1\"-es \u00e1tt\u00e9telt haszn\u00e1lunk, akkor kisz\u00e1m\u00edthatjuk a rotation_distance-ot a hardver ismeret\u00e9ben , majd hozz\u00e1adhatjuk a gear_ratio: 5:1 \u00e9rt\u00e9ket a konfigur\u00e1ci\u00f3s f\u00e1jlhoz. A sz\u00edjakkal \u00e9s sz\u00edjt\u00e1rcs\u00e1kkal megval\u00f3s\u00edtott hajt\u00f3m\u0171vek eset\u00e9ben a fogaskerekek fogainak megsz\u00e1ml\u00e1l\u00e1s\u00e1val lehet meghat\u00e1rozni a gear_ratio-t. Ha p\u00e9ld\u00e1ul egy 16 fogaz\u00e1s\u00fa sz\u00edjt\u00e1rcs\u00e1val rendelkez\u0151 l\u00e9ptet\u0151 meghajtja a, 80 fogaz\u00e1s\u00fa sz\u00edjt\u00e1rcs\u00e1t, akkor a gear_ratio: 80:16 \u00e9rt\u00e9ket haszn\u00e1ljuk. Val\u00f3ban, ki lehetne nyitni egy k\u00f6z\u00f6ns\u00e9ges, \"fogasker\u00e9kdobozt\" \u00e9s megsz\u00e1molni a benne l\u00e9v\u0151 fogakat, hogy meger\u0151s\u00edts\u00fck a fogasker\u00e9k \u00e1tt\u00e9tel\u00e9t. Vedd figyelembe, hogy n\u00e9ha egy \u00e1tt\u00e9tel kiss\u00e9 elt\u00e9r a hirdetett \u00e9rt\u00e9kt\u0151l. A BMG extrudermotorok k\u00f6z\u00f6s fogaskerekei p\u00e9ld\u00e1t mutatnak erre. A rekl\u00e1mok szerint \"3:1\", de val\u00f3j\u00e1ban \"50:17\" \u00e1tt\u00e9telt haszn\u00e1lnak. (A k\u00f6z\u00f6s nevez\u0151 n\u00e9lk\u00fcli fogsz\u00e1mok haszn\u00e1lata jav\u00edthatja a fogaskerekek \u00e1ltal\u00e1nos kop\u00e1s\u00e1t, mivel a fogak nem mindig ugyan\u00fagy fognak \u00f6ssze minden egyes fordulatn\u00e1l.) A gyakori \"5,18:1 bolyg\u00f3m\u0171ves sebess\u00e9gv\u00e1lt\u00f3\", pontosabban a gear_ratio: 57:11 \u00e9rt\u00e9kkel van konfigur\u00e1lva. Ha egy tengelyen t\u00f6bb fogasker\u00e9k van haszn\u00e1latban, akkor a gear_ratio-nak egy vessz\u0151vel elv\u00e1lasztott list\u00e1t lehet megadni. P\u00e9ld\u00e1ul egy \"5:1\" fogasker\u00e9k, amely egy 16 fogaz\u00e1s\u00fa \u00e9s egy 80 fogaz\u00e1s\u00fa t\u00e1rcs\u00e1t hajt, haszn\u00e1lhatod a gear_ratio: 5:1, 80:16 \u00e9rt\u00e9keket. A legt\u00f6bb esetben a gear_ratio \u00e9rt\u00e9k\u00e9t eg\u00e9sz sz\u00e1mokkal kell megadni, mivel a fogaskerekek \u00e9s a sz\u00edjt\u00e1rcs\u00e1k fogainak sz\u00e1ma \u00e1ltal\u00e1ban eg\u00e9sz. Azokban az esetekben azonban, amikor a sz\u00edj fogak helyett s\u00farl\u00f3d\u00e1ssal hajtja a sz\u00edjt\u00e1rcs\u00e1t, \u00e9rdemes lehet lebeg\u0151pontos sz\u00e1mot haszn\u00e1lni a fogasker\u00e9k-\u00e1tt\u00e9telben (pl. gear_ratio: 107,237:16 ).","title":"A gear_ratio haszn\u00e1lata"},{"location":"SDCard_Updates.html","text":"SD-k\u00e1rtya friss\u00edt\u00e9sek \u00b6 A manaps\u00e1g n\u00e9pszer\u0171 vez\u00e9rl\u0151lapok k\u00f6z\u00fcl sokan olyan bootloaderrel rendelkeznek, amely k\u00e9pes a firmware SD-k\u00e1rty\u00e1n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 friss\u00edt\u00e9s\u00e9re. B\u00e1r ez sok esetben k\u00e9nyelmes, ezek a bootloaderek \u00e1ltal\u00e1ban nem biztos\u00edtanak m\u00e1s m\u00f3dot a firmware friss\u00edt\u00e9s\u00e9re. Ez kellemetlen lehet, ha a k\u00e1rtyaolvas\u00f3t \u00fagy helyezt\u00e9k, hogy neh\u00e9z hozz\u00e1f\u00e9rni, f\u0151leg ha gyakran kell friss\u00edteni a firmware-t. Miut\u00e1n a Klipper eredetileg egy vez\u00e9rl\u0151re lett \u00e9getve, lehet\u0151s\u00e9g van az \u00faj firmware \u00e1tvitel\u00e9re az SD-k\u00e1rty\u00e1ra, \u00e9s a \u00e9get\u00e9si elj\u00e1r\u00e1s elind\u00edt\u00e1s\u00e1ra SSH-n kereszt\u00fcl. Tipikus friss\u00edt\u00e9si elj\u00e1r\u00e1s \u00b6 Az MCU firmware SD-k\u00e1rtya haszn\u00e1lat\u00e1val t\u00f6rt\u00e9n\u0151 friss\u00edt\u00e9s\u00e9nek menete hasonl\u00f3 a t\u00f6bbi m\u00f3dszerhez. A make flash haszn\u00e1lata helyett egy seg\u00e9dszkriptet kell futtatni, flash-sdcard.sh . Egy BigTreeTech SKR 1.3 friss\u00edt\u00e9se a k\u00f6vetkez\u0151k\u00e9ppen n\u00e9z ki: sudo service klipper stop cd ~/klipper git pull make clean make menuconfig make ./scripts/flash-sdcard.sh /dev/ttyACM0 btt-skr-v1.3 sudo service klipper start Az eszk\u00f6z hely\u00e9nek \u00e9s az alaplap nev\u00e9nek meghat\u00e1roz\u00e1sa a felhaszn\u00e1l\u00f3 feladata. Ha a felhaszn\u00e1l\u00f3nak t\u00f6bb alaplapot kell \u00e9getnie, akkor a Klipper szolg\u00e1ltat\u00e1s \u00fajraind\u00edt\u00e1sa el\u0151tt a flash-sdcard.sh (vagy make flash , ha sz\u00fcks\u00e9ges) programot kell futtatni minden egyes alaplaphoz. A t\u00e1mogatott alaplapok a k\u00f6vetkez\u0151 paranccsal list\u00e1zhat\u00f3k: ./scripts/flash-sdcard.sh -l Ha nem l\u00e1tod az alaplapodat a list\u00e1ban, akkor lehet, hogy \u00faj alaplap defin\u00edci\u00f3t kell hozz\u00e1adnod a lentebb le\u00edrtak szerint . Fejlett felhaszn\u00e1l\u00e1s \u00b6 A fenti parancsok felt\u00e9telezik, hogy az MCU az alap\u00e9rtelmezett 250000-es \u00e1tviteli sebess\u00e9ggel csatlakozik, \u00e9s a firmware a ~/klipper/out/klipper.bin c\u00edmen tal\u00e1lhat\u00f3. A flash-sdcard.sh szkript lehet\u0151s\u00e9get biztos\u00edt ezen alap\u00e9rtelmez\u00e9sek megv\u00e1ltoztat\u00e1s\u00e1ra. Az \u00f6sszes opci\u00f3t a s\u00fag\u00f3 k\u00e9perny\u0151n lehet megtekinteni: ./scripts/flash-sdcard.sh -h SD-k\u00e1rtya felt\u00f6lt\u0151 seg\u00e9dprogram Klipperhez haszn\u00e1lat: flash_sdcard.sh [-h] [-l] [-c] [-b <baud>] [-f <firmware>] <device> <board> pozicion\u00e1lis argumentumok: <device> eszk\u00f6z soros port <board> alaplap t\u00edpus opcion\u00e1lis argumentumok: -h mutatja az \u00fczenetet -l list\u00e1zza a rendelkez\u00e9sre \u00e1ll\u00f3 k\u00e1rty\u00e1kat -c csak a flash ellen\u0151rz\u00e9s/ellen\u0151rz\u00e9s futtat\u00e1sa (a felt\u00f6lt\u00e9st kihagyja) -b <baud> soros \u00e1tviteli sebess\u00e9g (alap\u00e9rtelmezett 250000) -f <firmware> a klipper.bin el\u00e9r\u00e9si \u00fatja Ha az alaplapod olyan firmware-vel \u00e9getted, amely egy\u00e9ni \u00e1tviteli sebess\u00e9g mellett csatlakozik, akkor a -b opci\u00f3 megad\u00e1s\u00e1val friss\u00edtheted: ./scripts/flash-sdcard.sh -b 115200 /dev/ttyAMA0 btt-skr-v1.3 Ha a Klipper egy, az alap\u00e9rtelmezett helyt\u0151l elt\u00e9r\u0151 helyen tal\u00e1lhat\u00f3 k\u00e9szlet\u00e9t szeretn\u00e9 \u00e9getni, akkor ezt a -f opci\u00f3 megad\u00e1s\u00e1val teheti meg: ./scripts/flash-sdcard.sh -f ~/downloads/klipper.bin /dev/ttyAMA0 btt-skr-v1.3 Ne feledd, hogy az MKS Robin E3 friss\u00edt\u00e9sekor nem sz\u00fcks\u00e9ges manu\u00e1lisan futtatni az update_mks_robin.py f\u00e1jlt, \u00e9s az \u00edgy kapott bin\u00e1ris \u00e1llom\u00e1nyt a flash-sdcard.sh f\u00e1jlba t\u00e1pl\u00e1lni. Ez az elj\u00e1r\u00e1s a felt\u00f6lt\u00e9si folyamat sor\u00e1n automatikusan megt\u00f6rt\u00e9nik. A -c opci\u00f3val egy ellen\u0151rz\u0151 vagy csak ellen\u0151rz\u00e9sre szolg\u00e1l\u00f3 m\u0171veletet v\u00e9gezhetsz, amellyel tesztelheted, hogy a k\u00e1rtya helyesen futtatja-e a megadott firmware-t. Ezt az opci\u00f3t els\u0151sorban olyan esetekre sz\u00e1njuk, amikor k\u00e9zi bekapcsol\u00e1s sz\u00fcks\u00e9ges az \u00e9get\u00e9si elj\u00e1r\u00e1s befejez\u00e9s\u00e9hez, p\u00e9ld\u00e1ul olyan bootloaderek eset\u00e9ben, amelyek SDIO m\u00f3dot haszn\u00e1lnak SPI helyett az SD-k\u00e1rty\u00e1k el\u00e9r\u00e9sekor. (L\u00e1sd a figyelmeztet\u00e9seket al\u00e1bb.) De b\u00e1rmikor haszn\u00e1lhat\u00f3 annak ellen\u0151rz\u00e9s\u00e9re is, hogy a k\u00e1rty\u00e1ra \u00e9getett k\u00f3d megegyezik-e a build mapp\u00e1ban l\u00e9v\u0151 verzi\u00f3val b\u00e1rmely t\u00e1mogatott k\u00e1rty\u00e1n. \u00d3vint\u00e9zked\u00e9sek \u00b6 Ahogy a bevezet\u0151ben eml\u00edtett\u00fck, ez a m\u00f3dszer csak a firmware friss\u00edt\u00e9s\u00e9re alkalmas. A kezdeti \u00e9get\u00e9si elj\u00e1r\u00e1st k\u00e9zzel kell elv\u00e9gezni az alaplapra vonatkoz\u00f3 utas\u00edt\u00e1sok szerint. B\u00e1r lehets\u00e9ges a soros adat\u00e1tvitelt vagy a csatlakoz\u00e1si interf\u00e9szt (pl. USB-r\u0151l UART-ra) m\u00f3dos\u00edt\u00f3 k\u00e9szlet \u00e9get\u00e9se, az ellen\u0151rz\u00e9s mindig sikertelen lesz, mivel a szkript nem tud \u00fajra csatlakozni az MCU-hoz az aktu\u00e1lis verzi\u00f3 ellen\u0151rz\u00e9s\u00e9hez. Csak az SD-k\u00e1rtya SPI kommunik\u00e1ci\u00f3t haszn\u00e1l\u00f3 alaplapok t\u00e1mogatottak. Az SDIO-t haszn\u00e1l\u00f3 alaplapok, mint p\u00e9ld\u00e1ul a Flymaker Flyboard \u00e9s az MKS Robin Nano V1/V2, nem m\u0171k\u00f6dnek SDIO m\u00f3dban. Az ilyen alaplapok azonban \u00e1ltal\u00e1ban a szoftveres SPI m\u00f3d haszn\u00e1lat\u00e1val \u00e9gethet\u0151k. Ha azonban az alaplap bootloadere csak SDIO m\u00f3dot haszn\u00e1l az SD-k\u00e1rtya el\u00e9r\u00e9s\u00e9hez, akkor az alaplap \u00e9s az SD-k\u00e1rtya bekapcsol\u00e1sa sz\u00fcks\u00e9ges ahhoz, hogy az SPI-r\u0151l vissza tudjon \u00e1llni SDIO m\u00f3dra az \u00fajrafriss\u00edt\u00e9s befejez\u00e9s\u00e9hez. Az ilyen alaplapokat a skip_verify enged\u00e9lyez\u00e9s\u00e9vel kell defini\u00e1lni, hogy az \u00e9get\u00e9s ut\u00e1n azonnal kihagyhat\u00f3 legyen a verify l\u00e9p\u00e9s. Ezut\u00e1n a k\u00e9zi bekapcsol\u00e1s ut\u00e1n \u00fajra lefuttathatod pontosan ugyanazt a ./scripts/flash-sdcard.sh parancsot, de hozz\u00e1adhatod a -c opci\u00f3t az ellen\u0151rz\u00e9s/ellen\u0151rz\u00e9s m\u0171velet befejez\u00e9s\u00e9hez. P\u00e9ld\u00e1k\u00e9rt l\u00e1sd az SDIO-val \u00e9get\u0151 alaplapok r\u00e9szt. Alaplap defin\u00edci\u00f3k \u00b6 A legt\u00f6bb \u00e1ltal\u00e1nos alaplapnak rendelkez\u00e9sre kell \u00e1llnia, azonban sz\u00fcks\u00e9g eset\u00e9n \u00faj alaplap defin\u00edci\u00f3t is hozz\u00e1adhat. Az alaplapdefin\u00edci\u00f3k a ~/klipper/scripts/spi_flash/board_defs.py \u00e1llom\u00e1nyban tal\u00e1lhat\u00f3k. A defin\u00edci\u00f3kat p\u00e9ld\u00e1ul lexikonban t\u00e1roljuk: BOARD_DEFS = { 'generic-lpc1768' : { 'mcu' : \"lpc1768\" , 'spi_bus' : \"ssp1\" , \"cs_pin\" : \"P0.6\" }, ...< further definitions > } A k\u00f6vetkez\u0151 mez\u0151k adhat\u00f3k meg: mcu : Az mcu t\u00edpusa. Ezt a k\u00e9szlet make menuconfig seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9n\u0151 konfigur\u00e1l\u00e1sa ut\u00e1n a cat .config | grep CONFIG_MCU futtat\u00e1s\u00e1val lehet visszakeresni. Ez a mez\u0151 k\u00f6telez\u0151en kit\u00f6ltend\u0151. spi_bus : Az SD-k\u00e1rty\u00e1hoz csatlakoztatott SPI-busz. Ezt a t\u00e1bla kapcsol\u00e1si rajz\u00e1b\u00f3l kell visszakeresni. Ez a mez\u0151 k\u00f6telez\u0151. cs_pin : Az SD-k\u00e1rty\u00e1hoz csatlakoztatott chipkiv\u00e1laszt\u00f3 t\u0171. Ezt a k\u00e1rtya kapcsol\u00e1si rajz\u00e1b\u00f3l kell visszakeresni. Ez a mez\u0151 k\u00f6telez\u0151. firmware_path : Az SD-k\u00e1rty\u00e1n l\u00e9v\u0151 el\u00e9r\u00e9si \u00fatvonal, ahov\u00e1 a firmware-t \u00e1t kell vinni. Az alap\u00e9rtelmezett \u00e9rt\u00e9k firmware.bin . current_firmware_path : Az SD-k\u00e1rty\u00e1n l\u00e9v\u0151 el\u00e9r\u00e9si \u00fatvonal, ahol az \u00e1tnevezett firmware f\u00e1jl tal\u00e1lhat\u00f3 a sikeres \u00e9get\u00e9s ut\u00e1n. Az alap\u00e9rtelmezett n\u00e9v: firmware.cur . skip_verify : Ez egy logikai \u00e9rt\u00e9ket hat\u00e1roz meg, amely a szkripteknek azt mondja meg, hogy hagyja ki a firmware ellen\u0151rz\u00e9s\u00e9nek l\u00e9p\u00e9s\u00e9t az \u00e9get\u00e9si folyamat sor\u00e1n. Az alap\u00e9rtelmezett \u00e9rt\u00e9k False . Ez az \u00e9rt\u00e9k True \u00e9rt\u00e9kre \u00e1ll\u00edthat\u00f3 olyan k\u00e1rty\u00e1k eset\u00e9ben, amelyekn\u00e9l az \u00e9get\u00e9s befejez\u00e9s\u00e9hez k\u00e9zi bekapcsol\u00e1s sz\u00fcks\u00e9ges. A firmware ut\u00f3lagos ellen\u0151rz\u00e9s\u00e9hez futtasd \u00fajra a szkriptet a -c opci\u00f3val, hogy elv\u00e9gezd az ellen\u0151rz\u00e9si l\u00e9p\u00e9st. L\u00e1sd az SDIO k\u00e1rty\u00e1kkal kapcsolatos figyelmeztet\u00e9seket Ha szoftveres SPI-re van sz\u00fcks\u00e9g, az spi_bus mez\u0151t swspi \u00e9s a k\u00f6vetkez\u0151 kieg\u00e9sz\u00edt\u0151 mez\u0151t kell megadni: spi_pins : Ennek 3 vessz\u0151vel elv\u00e1lasztott t\u0171nek kell lennie, amelyek miso,mosi,sclk form\u00e1tumban csatlakoznak az SD-k\u00e1rty\u00e1hoz. Rendk\u00edv\u00fcl ritk\u00e1n van sz\u00fcks\u00e9g a szoftveres SPI-re, jellemz\u0151en csak a tervez\u00e9si hib\u00e1s vagy az SD-k\u00e1rty\u00e1juk SDIO m\u00f3dj\u00e1t t\u00e1mogat\u00f3 k\u00e1rty\u00e1kn\u00e1l lesz r\u00e1 sz\u00fcks\u00e9g. A btt-skr-pro alaplap defin\u00edci\u00f3ja az el\u0151bbire ad p\u00e9ld\u00e1t, a btt-octopus-f446-v1 alaplap defin\u00edci\u00f3ja pedig az ut\u00f3bbira. Egy \u00faj alaplap defin\u00edci\u00f3 l\u00e9trehoz\u00e1sa el\u0151tt ellen\u0151rizni kell, hogy egy megl\u00e9v\u0151 alaplap defin\u00edci\u00f3 megfelel-e az \u00faj alaplap sz\u00e1m\u00e1ra sz\u00fcks\u00e9ges krit\u00e9riumoknak. Ha ez a helyzet, akkor egy BOARD_ALIAS adhat\u00f3 meg. P\u00e9ld\u00e1ul a k\u00f6vetkez\u0151 \u00e1ln\u00e9v adhat\u00f3 hozz\u00e1 az \u00e9n-\u00faj alaplapom \u00e1lnevek\u00e9nt a generic-lpc1768 meghat\u00e1roz\u00e1s\u00e1hoz: BOARD_ALIASES = { ...< previous aliases > , 'my-new-board' : BOARD_DEFS [ 'generic-lpc1768' ], } Ha \u00faj alaplap defin\u00edci\u00f3ra van sz\u00fcks\u00e9ged, \u00e9s nem tetszik a fent le\u00edrt elj\u00e1r\u00e1s, akkor aj\u00e1nlott, hogy a Klipper K\u00f6z\u00f6ss\u00e9gi Discord seg\u00edts\u00e9g\u00e9vel k\u00e9rj egyet. SDIO-val \u00e9get\u0151 alaplapok \u00b6 Ahogyan a figyelmeztet\u00e9sek is eml\u00edtik, azok az alaplapok, amelyek bootloadere SDIO m\u00f3dot haszn\u00e1l az SD-k\u00e1rty\u00e1hoz val\u00f3 hozz\u00e1f\u00e9r\u00e9shez, az alaplapot, \u00e9s k\u00fcl\u00f6n\u00f6sen mag\u00e1t az SD-k\u00e1rty\u00e1t ki kell kapcsolni, hogy a f\u00e1jl SD-k\u00e1rty\u00e1ra \u00edr\u00e1sa k\u00f6zben haszn\u00e1lt SPI m\u00f3db\u00f3l vissza lehessen v\u00e1ltani SDIO m\u00f3dba, hogy a bootloader be tudja \u00e9getni az alaplapra. Ezek az alaplap defin\u00edci\u00f3k a skip_verify flag-et haszn\u00e1lj\u00e1k, amely azt mondja az \u00e9get\u0151 eszk\u00f6znek, hogy \u00e1lljon le a firmware SD-k\u00e1rty\u00e1ra \u00edr\u00e1sa ut\u00e1n, hogy az alaplapot k\u00e9zzel lehessen bekapcsolni, \u00e9s az ellen\u0151rz\u00e9s l\u00e9p\u00e9s\u00e9t elhalasztani, am\u00edg ez be nem fejez\u0151dik. K\u00e9t forgat\u00f3k\u00f6nyv van -- az egyik, amikor az RPi Gazdag\u00e9p k\u00fcl\u00f6n t\u00e1pegys\u00e9gr\u0151l megy, a m\u00e1sik, amikor az RPi Gazdag\u00e9p ugyanazon t\u00e1pegys\u00e9gr\u0151l megy, mint az \u00e9getni k\u00edv\u00e1nt alaplap. A k\u00fcl\u00f6nbs\u00e9g az, hogy az \u00e9get\u00e9s befejez\u00e9se ut\u00e1n le kell-e kapcsolni az RPi-t is, majd \u00fajra ssh , hogy elv\u00e9gezhess\u00fck az ellen\u0151rz\u0151 l\u00e9p\u00e9st, vagy az ellen\u0151rz\u00e9s azonnal elv\u00e9gezhet\u0151. \u00cdme p\u00e9ld\u00e1k a k\u00e9t forgat\u00f3k\u00f6nyvre: SDIO programoz\u00e1s RPi-vel k\u00fcl\u00f6n t\u00e1pegys\u00e9ggel \u00b6 Egy tipikus munkamenet az RPi-vel egy k\u00fcl\u00f6n\u00e1ll\u00f3 t\u00e1pegys\u00e9gen a k\u00f6vetkez\u0151k\u00e9ppen n\u00e9z ki. Term\u00e9szetesen a megfelel\u0151 eszk\u00f6z el\u00e9r\u00e9si \u00fatvonal\u00e1t \u00e9s az alaplap nev\u00e9t kell haszn\u00e1lnod: sudo service klipper stop cd ~/klipper git pull make clean make menuconfig make ./scripts/flash-sdcard.sh /dev/ttyACM0 btt-octopus-f446-v1 [[[manually power-cycle the printer board here when instructed]]] ./scripts/flash-sdcard.sh -c /dev/ttyACM0 btt-octopus-f446-v1 sudo service klipper start SDIO programoz\u00e1s RPi-vel ugyanazon t\u00e1pegys\u00e9ggel \u00b6 Egy tipikus munkamenet az RPi-vel ugyanazon a t\u00e1pegys\u00e9gen a k\u00f6vetkez\u0151k\u00e9ppen n\u00e9z ki. Term\u00e9szetesen a megfelel\u0151 eszk\u00f6z el\u00e9r\u00e9si \u00fatvonal\u00e1t \u00e9s az alaplap nev\u00e9t kell haszn\u00e1lnod: sudo service klipper stop cd ~/klipper git pull make clean make menuconfig make ./scripts/flash-sdcard.sh /dev/ttyACM0 btt-octopus-f446-v1 sudo shutdown -h now [[[wait for the RPi to shutdown, then power-cycle and ssh again to the RPi when it restarts]]] sudo service klipper stop cd ~/klipper ./scripts/flash-sdcard.sh -c /dev/ttyACM0 btt-octopus-f446-v1 sudo service klipper start Ebben az esetben, mivel az RPi Gazdag\u00e9p \u00fajraindul, ami \u00fajraind\u00edtja a klipper szolg\u00e1ltat\u00e1st, az ellen\u0151rz\u00e9s l\u00e9p\u00e9se el\u0151tt \u00fajra le kell \u00e1ll\u00edtani a klipper szolg\u00e1ltat\u00e1st, \u00e9s az ellen\u0151rz\u00e9s befejez\u00e9se ut\u00e1n \u00fajra kell ind\u00edtani. SDIO-b\u00f3l SPI-re l\u00e1bkioszt\u00e1s \u00b6 Ha az alaplap kapcsol\u00e1si rajza SDIO-t haszn\u00e1l az SD-k\u00e1rty\u00e1hoz, akkor az al\u00e1bbi t\u00e1bl\u00e1zatban le\u00edrtak szerint lek\u00e9rheted a t\u0171ket, hogy meghat\u00e1rozhasd a board_defs.py f\u00e1jlban hozz\u00e1rendelend\u0151 kompatibilis szoftver SPI t\u0171it: SD-k\u00e1rtya t\u0171 Micro SD-k\u00e1rtya t\u0171 SDIO t\u0171 neve SPI t\u0171 neve 9 1 DATA2 None (PU)* 1 2 CD/DATA3 CS 2 3 CMD MOSI 4 4 +3.3V (VDD) +3.3V (VDD) 5 5 CLK SCLK 3 6 GND (VSS) GND (VSS) 7 7 DATA0 MISO 8 8 DATA1 None (PU)* N/A 9 Card Detect (CD) Card Detect (CD) 6 10 GND GND * None (PU) egy nem haszn\u00e1lt, felh\u00faz\u00e1si ellen\u00e1ll\u00e1ssal ell\u00e1tott t\u0171t jelez.","title":"SD-k\u00e1rtya friss\u00edt\u00e9sek"},{"location":"SDCard_Updates.html#sd-kartya-frissitesek","text":"A manaps\u00e1g n\u00e9pszer\u0171 vez\u00e9rl\u0151lapok k\u00f6z\u00fcl sokan olyan bootloaderrel rendelkeznek, amely k\u00e9pes a firmware SD-k\u00e1rty\u00e1n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 friss\u00edt\u00e9s\u00e9re. B\u00e1r ez sok esetben k\u00e9nyelmes, ezek a bootloaderek \u00e1ltal\u00e1ban nem biztos\u00edtanak m\u00e1s m\u00f3dot a firmware friss\u00edt\u00e9s\u00e9re. Ez kellemetlen lehet, ha a k\u00e1rtyaolvas\u00f3t \u00fagy helyezt\u00e9k, hogy neh\u00e9z hozz\u00e1f\u00e9rni, f\u0151leg ha gyakran kell friss\u00edteni a firmware-t. Miut\u00e1n a Klipper eredetileg egy vez\u00e9rl\u0151re lett \u00e9getve, lehet\u0151s\u00e9g van az \u00faj firmware \u00e1tvitel\u00e9re az SD-k\u00e1rty\u00e1ra, \u00e9s a \u00e9get\u00e9si elj\u00e1r\u00e1s elind\u00edt\u00e1s\u00e1ra SSH-n kereszt\u00fcl.","title":"SD-k\u00e1rtya friss\u00edt\u00e9sek"},{"location":"SDCard_Updates.html#tipikus-frissitesi-eljaras","text":"Az MCU firmware SD-k\u00e1rtya haszn\u00e1lat\u00e1val t\u00f6rt\u00e9n\u0151 friss\u00edt\u00e9s\u00e9nek menete hasonl\u00f3 a t\u00f6bbi m\u00f3dszerhez. A make flash haszn\u00e1lata helyett egy seg\u00e9dszkriptet kell futtatni, flash-sdcard.sh . Egy BigTreeTech SKR 1.3 friss\u00edt\u00e9se a k\u00f6vetkez\u0151k\u00e9ppen n\u00e9z ki: sudo service klipper stop cd ~/klipper git pull make clean make menuconfig make ./scripts/flash-sdcard.sh /dev/ttyACM0 btt-skr-v1.3 sudo service klipper start Az eszk\u00f6z hely\u00e9nek \u00e9s az alaplap nev\u00e9nek meghat\u00e1roz\u00e1sa a felhaszn\u00e1l\u00f3 feladata. Ha a felhaszn\u00e1l\u00f3nak t\u00f6bb alaplapot kell \u00e9getnie, akkor a Klipper szolg\u00e1ltat\u00e1s \u00fajraind\u00edt\u00e1sa el\u0151tt a flash-sdcard.sh (vagy make flash , ha sz\u00fcks\u00e9ges) programot kell futtatni minden egyes alaplaphoz. A t\u00e1mogatott alaplapok a k\u00f6vetkez\u0151 paranccsal list\u00e1zhat\u00f3k: ./scripts/flash-sdcard.sh -l Ha nem l\u00e1tod az alaplapodat a list\u00e1ban, akkor lehet, hogy \u00faj alaplap defin\u00edci\u00f3t kell hozz\u00e1adnod a lentebb le\u00edrtak szerint .","title":"Tipikus friss\u00edt\u00e9si elj\u00e1r\u00e1s"},{"location":"SDCard_Updates.html#fejlett-felhasznalas","text":"A fenti parancsok felt\u00e9telezik, hogy az MCU az alap\u00e9rtelmezett 250000-es \u00e1tviteli sebess\u00e9ggel csatlakozik, \u00e9s a firmware a ~/klipper/out/klipper.bin c\u00edmen tal\u00e1lhat\u00f3. A flash-sdcard.sh szkript lehet\u0151s\u00e9get biztos\u00edt ezen alap\u00e9rtelmez\u00e9sek megv\u00e1ltoztat\u00e1s\u00e1ra. Az \u00f6sszes opci\u00f3t a s\u00fag\u00f3 k\u00e9perny\u0151n lehet megtekinteni: ./scripts/flash-sdcard.sh -h SD-k\u00e1rtya felt\u00f6lt\u0151 seg\u00e9dprogram Klipperhez haszn\u00e1lat: flash_sdcard.sh [-h] [-l] [-c] [-b <baud>] [-f <firmware>] <device> <board> pozicion\u00e1lis argumentumok: <device> eszk\u00f6z soros port <board> alaplap t\u00edpus opcion\u00e1lis argumentumok: -h mutatja az \u00fczenetet -l list\u00e1zza a rendelkez\u00e9sre \u00e1ll\u00f3 k\u00e1rty\u00e1kat -c csak a flash ellen\u0151rz\u00e9s/ellen\u0151rz\u00e9s futtat\u00e1sa (a felt\u00f6lt\u00e9st kihagyja) -b <baud> soros \u00e1tviteli sebess\u00e9g (alap\u00e9rtelmezett 250000) -f <firmware> a klipper.bin el\u00e9r\u00e9si \u00fatja Ha az alaplapod olyan firmware-vel \u00e9getted, amely egy\u00e9ni \u00e1tviteli sebess\u00e9g mellett csatlakozik, akkor a -b opci\u00f3 megad\u00e1s\u00e1val friss\u00edtheted: ./scripts/flash-sdcard.sh -b 115200 /dev/ttyAMA0 btt-skr-v1.3 Ha a Klipper egy, az alap\u00e9rtelmezett helyt\u0151l elt\u00e9r\u0151 helyen tal\u00e1lhat\u00f3 k\u00e9szlet\u00e9t szeretn\u00e9 \u00e9getni, akkor ezt a -f opci\u00f3 megad\u00e1s\u00e1val teheti meg: ./scripts/flash-sdcard.sh -f ~/downloads/klipper.bin /dev/ttyAMA0 btt-skr-v1.3 Ne feledd, hogy az MKS Robin E3 friss\u00edt\u00e9sekor nem sz\u00fcks\u00e9ges manu\u00e1lisan futtatni az update_mks_robin.py f\u00e1jlt, \u00e9s az \u00edgy kapott bin\u00e1ris \u00e1llom\u00e1nyt a flash-sdcard.sh f\u00e1jlba t\u00e1pl\u00e1lni. Ez az elj\u00e1r\u00e1s a felt\u00f6lt\u00e9si folyamat sor\u00e1n automatikusan megt\u00f6rt\u00e9nik. A -c opci\u00f3val egy ellen\u0151rz\u0151 vagy csak ellen\u0151rz\u00e9sre szolg\u00e1l\u00f3 m\u0171veletet v\u00e9gezhetsz, amellyel tesztelheted, hogy a k\u00e1rtya helyesen futtatja-e a megadott firmware-t. Ezt az opci\u00f3t els\u0151sorban olyan esetekre sz\u00e1njuk, amikor k\u00e9zi bekapcsol\u00e1s sz\u00fcks\u00e9ges az \u00e9get\u00e9si elj\u00e1r\u00e1s befejez\u00e9s\u00e9hez, p\u00e9ld\u00e1ul olyan bootloaderek eset\u00e9ben, amelyek SDIO m\u00f3dot haszn\u00e1lnak SPI helyett az SD-k\u00e1rty\u00e1k el\u00e9r\u00e9sekor. (L\u00e1sd a figyelmeztet\u00e9seket al\u00e1bb.) De b\u00e1rmikor haszn\u00e1lhat\u00f3 annak ellen\u0151rz\u00e9s\u00e9re is, hogy a k\u00e1rty\u00e1ra \u00e9getett k\u00f3d megegyezik-e a build mapp\u00e1ban l\u00e9v\u0151 verzi\u00f3val b\u00e1rmely t\u00e1mogatott k\u00e1rty\u00e1n.","title":"Fejlett felhaszn\u00e1l\u00e1s"},{"location":"SDCard_Updates.html#ovintezkedesek","text":"Ahogy a bevezet\u0151ben eml\u00edtett\u00fck, ez a m\u00f3dszer csak a firmware friss\u00edt\u00e9s\u00e9re alkalmas. A kezdeti \u00e9get\u00e9si elj\u00e1r\u00e1st k\u00e9zzel kell elv\u00e9gezni az alaplapra vonatkoz\u00f3 utas\u00edt\u00e1sok szerint. B\u00e1r lehets\u00e9ges a soros adat\u00e1tvitelt vagy a csatlakoz\u00e1si interf\u00e9szt (pl. USB-r\u0151l UART-ra) m\u00f3dos\u00edt\u00f3 k\u00e9szlet \u00e9get\u00e9se, az ellen\u0151rz\u00e9s mindig sikertelen lesz, mivel a szkript nem tud \u00fajra csatlakozni az MCU-hoz az aktu\u00e1lis verzi\u00f3 ellen\u0151rz\u00e9s\u00e9hez. Csak az SD-k\u00e1rtya SPI kommunik\u00e1ci\u00f3t haszn\u00e1l\u00f3 alaplapok t\u00e1mogatottak. Az SDIO-t haszn\u00e1l\u00f3 alaplapok, mint p\u00e9ld\u00e1ul a Flymaker Flyboard \u00e9s az MKS Robin Nano V1/V2, nem m\u0171k\u00f6dnek SDIO m\u00f3dban. Az ilyen alaplapok azonban \u00e1ltal\u00e1ban a szoftveres SPI m\u00f3d haszn\u00e1lat\u00e1val \u00e9gethet\u0151k. Ha azonban az alaplap bootloadere csak SDIO m\u00f3dot haszn\u00e1l az SD-k\u00e1rtya el\u00e9r\u00e9s\u00e9hez, akkor az alaplap \u00e9s az SD-k\u00e1rtya bekapcsol\u00e1sa sz\u00fcks\u00e9ges ahhoz, hogy az SPI-r\u0151l vissza tudjon \u00e1llni SDIO m\u00f3dra az \u00fajrafriss\u00edt\u00e9s befejez\u00e9s\u00e9hez. Az ilyen alaplapokat a skip_verify enged\u00e9lyez\u00e9s\u00e9vel kell defini\u00e1lni, hogy az \u00e9get\u00e9s ut\u00e1n azonnal kihagyhat\u00f3 legyen a verify l\u00e9p\u00e9s. Ezut\u00e1n a k\u00e9zi bekapcsol\u00e1s ut\u00e1n \u00fajra lefuttathatod pontosan ugyanazt a ./scripts/flash-sdcard.sh parancsot, de hozz\u00e1adhatod a -c opci\u00f3t az ellen\u0151rz\u00e9s/ellen\u0151rz\u00e9s m\u0171velet befejez\u00e9s\u00e9hez. P\u00e9ld\u00e1k\u00e9rt l\u00e1sd az SDIO-val \u00e9get\u0151 alaplapok r\u00e9szt.","title":"\u00d3vint\u00e9zked\u00e9sek"},{"location":"SDCard_Updates.html#alaplap-definiciok","text":"A legt\u00f6bb \u00e1ltal\u00e1nos alaplapnak rendelkez\u00e9sre kell \u00e1llnia, azonban sz\u00fcks\u00e9g eset\u00e9n \u00faj alaplap defin\u00edci\u00f3t is hozz\u00e1adhat. Az alaplapdefin\u00edci\u00f3k a ~/klipper/scripts/spi_flash/board_defs.py \u00e1llom\u00e1nyban tal\u00e1lhat\u00f3k. A defin\u00edci\u00f3kat p\u00e9ld\u00e1ul lexikonban t\u00e1roljuk: BOARD_DEFS = { 'generic-lpc1768' : { 'mcu' : \"lpc1768\" , 'spi_bus' : \"ssp1\" , \"cs_pin\" : \"P0.6\" }, ...< further definitions > } A k\u00f6vetkez\u0151 mez\u0151k adhat\u00f3k meg: mcu : Az mcu t\u00edpusa. Ezt a k\u00e9szlet make menuconfig seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9n\u0151 konfigur\u00e1l\u00e1sa ut\u00e1n a cat .config | grep CONFIG_MCU futtat\u00e1s\u00e1val lehet visszakeresni. Ez a mez\u0151 k\u00f6telez\u0151en kit\u00f6ltend\u0151. spi_bus : Az SD-k\u00e1rty\u00e1hoz csatlakoztatott SPI-busz. Ezt a t\u00e1bla kapcsol\u00e1si rajz\u00e1b\u00f3l kell visszakeresni. Ez a mez\u0151 k\u00f6telez\u0151. cs_pin : Az SD-k\u00e1rty\u00e1hoz csatlakoztatott chipkiv\u00e1laszt\u00f3 t\u0171. Ezt a k\u00e1rtya kapcsol\u00e1si rajz\u00e1b\u00f3l kell visszakeresni. Ez a mez\u0151 k\u00f6telez\u0151. firmware_path : Az SD-k\u00e1rty\u00e1n l\u00e9v\u0151 el\u00e9r\u00e9si \u00fatvonal, ahov\u00e1 a firmware-t \u00e1t kell vinni. Az alap\u00e9rtelmezett \u00e9rt\u00e9k firmware.bin . current_firmware_path : Az SD-k\u00e1rty\u00e1n l\u00e9v\u0151 el\u00e9r\u00e9si \u00fatvonal, ahol az \u00e1tnevezett firmware f\u00e1jl tal\u00e1lhat\u00f3 a sikeres \u00e9get\u00e9s ut\u00e1n. Az alap\u00e9rtelmezett n\u00e9v: firmware.cur . skip_verify : Ez egy logikai \u00e9rt\u00e9ket hat\u00e1roz meg, amely a szkripteknek azt mondja meg, hogy hagyja ki a firmware ellen\u0151rz\u00e9s\u00e9nek l\u00e9p\u00e9s\u00e9t az \u00e9get\u00e9si folyamat sor\u00e1n. Az alap\u00e9rtelmezett \u00e9rt\u00e9k False . Ez az \u00e9rt\u00e9k True \u00e9rt\u00e9kre \u00e1ll\u00edthat\u00f3 olyan k\u00e1rty\u00e1k eset\u00e9ben, amelyekn\u00e9l az \u00e9get\u00e9s befejez\u00e9s\u00e9hez k\u00e9zi bekapcsol\u00e1s sz\u00fcks\u00e9ges. A firmware ut\u00f3lagos ellen\u0151rz\u00e9s\u00e9hez futtasd \u00fajra a szkriptet a -c opci\u00f3val, hogy elv\u00e9gezd az ellen\u0151rz\u00e9si l\u00e9p\u00e9st. L\u00e1sd az SDIO k\u00e1rty\u00e1kkal kapcsolatos figyelmeztet\u00e9seket Ha szoftveres SPI-re van sz\u00fcks\u00e9g, az spi_bus mez\u0151t swspi \u00e9s a k\u00f6vetkez\u0151 kieg\u00e9sz\u00edt\u0151 mez\u0151t kell megadni: spi_pins : Ennek 3 vessz\u0151vel elv\u00e1lasztott t\u0171nek kell lennie, amelyek miso,mosi,sclk form\u00e1tumban csatlakoznak az SD-k\u00e1rty\u00e1hoz. Rendk\u00edv\u00fcl ritk\u00e1n van sz\u00fcks\u00e9g a szoftveres SPI-re, jellemz\u0151en csak a tervez\u00e9si hib\u00e1s vagy az SD-k\u00e1rty\u00e1juk SDIO m\u00f3dj\u00e1t t\u00e1mogat\u00f3 k\u00e1rty\u00e1kn\u00e1l lesz r\u00e1 sz\u00fcks\u00e9g. A btt-skr-pro alaplap defin\u00edci\u00f3ja az el\u0151bbire ad p\u00e9ld\u00e1t, a btt-octopus-f446-v1 alaplap defin\u00edci\u00f3ja pedig az ut\u00f3bbira. Egy \u00faj alaplap defin\u00edci\u00f3 l\u00e9trehoz\u00e1sa el\u0151tt ellen\u0151rizni kell, hogy egy megl\u00e9v\u0151 alaplap defin\u00edci\u00f3 megfelel-e az \u00faj alaplap sz\u00e1m\u00e1ra sz\u00fcks\u00e9ges krit\u00e9riumoknak. Ha ez a helyzet, akkor egy BOARD_ALIAS adhat\u00f3 meg. P\u00e9ld\u00e1ul a k\u00f6vetkez\u0151 \u00e1ln\u00e9v adhat\u00f3 hozz\u00e1 az \u00e9n-\u00faj alaplapom \u00e1lnevek\u00e9nt a generic-lpc1768 meghat\u00e1roz\u00e1s\u00e1hoz: BOARD_ALIASES = { ...< previous aliases > , 'my-new-board' : BOARD_DEFS [ 'generic-lpc1768' ], } Ha \u00faj alaplap defin\u00edci\u00f3ra van sz\u00fcks\u00e9ged, \u00e9s nem tetszik a fent le\u00edrt elj\u00e1r\u00e1s, akkor aj\u00e1nlott, hogy a Klipper K\u00f6z\u00f6ss\u00e9gi Discord seg\u00edts\u00e9g\u00e9vel k\u00e9rj egyet.","title":"Alaplap defin\u00edci\u00f3k"},{"location":"SDCard_Updates.html#sdio-val-egeto-alaplapok","text":"Ahogyan a figyelmeztet\u00e9sek is eml\u00edtik, azok az alaplapok, amelyek bootloadere SDIO m\u00f3dot haszn\u00e1l az SD-k\u00e1rty\u00e1hoz val\u00f3 hozz\u00e1f\u00e9r\u00e9shez, az alaplapot, \u00e9s k\u00fcl\u00f6n\u00f6sen mag\u00e1t az SD-k\u00e1rty\u00e1t ki kell kapcsolni, hogy a f\u00e1jl SD-k\u00e1rty\u00e1ra \u00edr\u00e1sa k\u00f6zben haszn\u00e1lt SPI m\u00f3db\u00f3l vissza lehessen v\u00e1ltani SDIO m\u00f3dba, hogy a bootloader be tudja \u00e9getni az alaplapra. Ezek az alaplap defin\u00edci\u00f3k a skip_verify flag-et haszn\u00e1lj\u00e1k, amely azt mondja az \u00e9get\u0151 eszk\u00f6znek, hogy \u00e1lljon le a firmware SD-k\u00e1rty\u00e1ra \u00edr\u00e1sa ut\u00e1n, hogy az alaplapot k\u00e9zzel lehessen bekapcsolni, \u00e9s az ellen\u0151rz\u00e9s l\u00e9p\u00e9s\u00e9t elhalasztani, am\u00edg ez be nem fejez\u0151dik. K\u00e9t forgat\u00f3k\u00f6nyv van -- az egyik, amikor az RPi Gazdag\u00e9p k\u00fcl\u00f6n t\u00e1pegys\u00e9gr\u0151l megy, a m\u00e1sik, amikor az RPi Gazdag\u00e9p ugyanazon t\u00e1pegys\u00e9gr\u0151l megy, mint az \u00e9getni k\u00edv\u00e1nt alaplap. A k\u00fcl\u00f6nbs\u00e9g az, hogy az \u00e9get\u00e9s befejez\u00e9se ut\u00e1n le kell-e kapcsolni az RPi-t is, majd \u00fajra ssh , hogy elv\u00e9gezhess\u00fck az ellen\u0151rz\u0151 l\u00e9p\u00e9st, vagy az ellen\u0151rz\u00e9s azonnal elv\u00e9gezhet\u0151. \u00cdme p\u00e9ld\u00e1k a k\u00e9t forgat\u00f3k\u00f6nyvre:","title":"SDIO-val \u00e9get\u0151 alaplapok"},{"location":"SDCard_Updates.html#sdio-programozas-rpi-vel-kulon-tapegyseggel","text":"Egy tipikus munkamenet az RPi-vel egy k\u00fcl\u00f6n\u00e1ll\u00f3 t\u00e1pegys\u00e9gen a k\u00f6vetkez\u0151k\u00e9ppen n\u00e9z ki. Term\u00e9szetesen a megfelel\u0151 eszk\u00f6z el\u00e9r\u00e9si \u00fatvonal\u00e1t \u00e9s az alaplap nev\u00e9t kell haszn\u00e1lnod: sudo service klipper stop cd ~/klipper git pull make clean make menuconfig make ./scripts/flash-sdcard.sh /dev/ttyACM0 btt-octopus-f446-v1 [[[manually power-cycle the printer board here when instructed]]] ./scripts/flash-sdcard.sh -c /dev/ttyACM0 btt-octopus-f446-v1 sudo service klipper start","title":"SDIO programoz\u00e1s RPi-vel k\u00fcl\u00f6n t\u00e1pegys\u00e9ggel"},{"location":"SDCard_Updates.html#sdio-programozas-rpi-vel-ugyanazon-tapegyseggel","text":"Egy tipikus munkamenet az RPi-vel ugyanazon a t\u00e1pegys\u00e9gen a k\u00f6vetkez\u0151k\u00e9ppen n\u00e9z ki. Term\u00e9szetesen a megfelel\u0151 eszk\u00f6z el\u00e9r\u00e9si \u00fatvonal\u00e1t \u00e9s az alaplap nev\u00e9t kell haszn\u00e1lnod: sudo service klipper stop cd ~/klipper git pull make clean make menuconfig make ./scripts/flash-sdcard.sh /dev/ttyACM0 btt-octopus-f446-v1 sudo shutdown -h now [[[wait for the RPi to shutdown, then power-cycle and ssh again to the RPi when it restarts]]] sudo service klipper stop cd ~/klipper ./scripts/flash-sdcard.sh -c /dev/ttyACM0 btt-octopus-f446-v1 sudo service klipper start Ebben az esetben, mivel az RPi Gazdag\u00e9p \u00fajraindul, ami \u00fajraind\u00edtja a klipper szolg\u00e1ltat\u00e1st, az ellen\u0151rz\u00e9s l\u00e9p\u00e9se el\u0151tt \u00fajra le kell \u00e1ll\u00edtani a klipper szolg\u00e1ltat\u00e1st, \u00e9s az ellen\u0151rz\u00e9s befejez\u00e9se ut\u00e1n \u00fajra kell ind\u00edtani.","title":"SDIO programoz\u00e1s RPi-vel ugyanazon t\u00e1pegys\u00e9ggel"},{"location":"SDCard_Updates.html#sdio-bol-spi-re-labkiosztas","text":"Ha az alaplap kapcsol\u00e1si rajza SDIO-t haszn\u00e1l az SD-k\u00e1rty\u00e1hoz, akkor az al\u00e1bbi t\u00e1bl\u00e1zatban le\u00edrtak szerint lek\u00e9rheted a t\u0171ket, hogy meghat\u00e1rozhasd a board_defs.py f\u00e1jlban hozz\u00e1rendelend\u0151 kompatibilis szoftver SPI t\u0171it: SD-k\u00e1rtya t\u0171 Micro SD-k\u00e1rtya t\u0171 SDIO t\u0171 neve SPI t\u0171 neve 9 1 DATA2 None (PU)* 1 2 CD/DATA3 CS 2 3 CMD MOSI 4 4 +3.3V (VDD) +3.3V (VDD) 5 5 CLK SCLK 3 6 GND (VSS) GND (VSS) 7 7 DATA0 MISO 8 8 DATA1 None (PU)* N/A 9 Card Detect (CD) Card Detect (CD) 6 10 GND GND * None (PU) egy nem haszn\u00e1lt, felh\u00faz\u00e1si ellen\u00e1ll\u00e1ssal ell\u00e1tott t\u0171t jelez.","title":"SDIO-b\u00f3l SPI-re l\u00e1bkioszt\u00e1s"},{"location":"Skew_Correction.html","text":"Ferdes\u00e9g korrekci\u00f3 \u00b6 A szoftveralap\u00fa ferdes\u00e9g korrekci\u00f3 seg\u00edthet a nem t\u00f6k\u00e9letesen sz\u00f6gletes nyomtat\u00f3egys\u00e9gb\u0151l ered\u0151 m\u00e9retpontatlans\u00e1gok felold\u00e1s\u00e1ban. Vedd figyelembe, hogy ha a nyomtat\u00f3ja jelent\u0151sen ferde, er\u0151sen aj\u00e1nlott el\u0151sz\u00f6r mechanikai eszk\u00f6z\u00f6kkel a nyomtat\u00f3t a lehet\u0151 legegyenletesebbre \u00e1ll\u00edtani, miel\u0151tt a szoftveralap\u00fa korrekci\u00f3t alkalmazn\u00e1. Kalibr\u00e1ci\u00f3s objektum nyomtat\u00e1sa \u00b6 A ferdes\u00e9g korrekci\u00f3j\u00e1nak els\u0151 l\u00e9p\u00e9se egy kalibr\u00e1ci\u00f3s objektum nyomtat\u00e1sa a korrig\u00e1lni k\u00edv\u00e1nt s\u00edk ment\u00e9n. L\u00e9tezik egy m\u00e1sik kalibr\u00e1ci\u00f3s objektum is, amely egy modell \u00f6sszes s\u00edkj\u00e1t tartalmazza. Az objektumot \u00fagy kell t\u00e1jolni, hogy az A sarok a s\u00edk orig\u00f3ja fel\u00e9 legyen. Gy\u0151z\u0151dj meg r\u00f3la, hogy a nyomtat\u00e1s sor\u00e1n nem alkalmaz ferdes\u00e9gkorrekci\u00f3t. Ezt \u00fagy teheti meg, hogy vagy elt\u00e1vol\u00edtja a [skew_correction] modult a printer.cfg f\u00e1jlb\u00f3l, vagy kiadsz egy SET_SKEW CLEAR=1 parancsot. M\u00e9rd meg \u00b6 A [skew_correcton] modul minden egyes korrig\u00e1land\u00f3 s\u00edkhoz 3 m\u00e9r\u00e9st ig\u00e9nyel; az A sarokt\u00f3l a C sarokig terjed\u0151 hossz\u00fas\u00e1got, a B sarokt\u00f3l a D sarokig terjed\u0151 hossz\u00fas\u00e1got \u00e9s az A sarokt\u00f3l a D sarokig terjed\u0151 hossz\u00fas\u00e1got. Az AD hosszm\u00e9r\u00e9sn\u00e9l ne vedd figyelembe a sarkokon l\u00e9v\u0151 s\u00edkokat, amelyeket n\u00e9h\u00e1ny tesztobjektum mutat. Konfigur\u00e1ld a ferdes\u00e9get \u00b6 Gy\u0151z\u0151dj meg r\u00f3la, hogy a [skew_correction] szerepel a printer.cfg f\u00e1jlban. Most m\u00e1r haszn\u00e1lhatod a SET_SKEW G-k\u00f3dot a skew_correction be\u00e1ll\u00edt\u00e1s\u00e1hoz. P\u00e9ld\u00e1ul, ha az XY ment\u00e9n m\u00e9rt hosszok a k\u00f6vetkez\u0151k: Length AC = 140.4 Length BD = 142.8 Length AD = 99.8 SET_SKEW az XY-s\u00edk ferdes\u00e9gkorrekci\u00f3j\u00e1nak be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. SET_SKEW XY=140.4,142.8,99.8 Az XZ \u00e9s YZ m\u00e9r\u00e9seket is hozz\u00e1adhatja a G-k\u00f3dhoz: SET_SKEW XY=140.4,142.8,99.8 XZ=141.6,141.4,99.8 YZ=142.4,140.5,99.5 A [skew_correction] modul a [bed_mesh] modulhoz hasonl\u00f3 m\u00f3don t\u00e1mogatja a profilkezel\u00e9st is. Miut\u00e1n a SET_SKEW G-k\u00f3ddal be\u00e1ll\u00edtotta a ferdes\u00e9get, a SKEW_PROFILE G-k\u00f3ddal elmentheti azt: SKEW_PROFILE SAVE=my_skew_profile A parancs ut\u00e1n a rendszer felsz\u00f3l\u00edtja a SAVE_CONFIG G-k\u00f3d kiad\u00e1s\u00e1t a profil tart\u00f3s t\u00e1rol\u00f3ba t\u00f6rt\u00e9n\u0151 ment\u00e9s\u00e9hez. Ha nincs my_skew_profile nev\u0171 profil, akkor egy \u00faj profil j\u00f6n l\u00e9tre. Ha a megnevezett profil l\u00e9tezik, akkor azt fel\u00fcl\u00edrja. Ha m\u00e1r van mentett profilja, bet\u00f6ltheti azt: SKEW_PROFILE LOAD=my_skew_profile Lehet\u0151s\u00e9g van r\u00e9gi vagy elavult profilok elt\u00e1vol\u00edt\u00e1s\u00e1ra is: SKEW_PROFILE REMOVE=my_skew_profile A profil elt\u00e1vol\u00edt\u00e1sa ut\u00e1n a rendszer felsz\u00f3l\u00edtja, hogy adj ki egy SAVE_CONFIG parancsot, hogy a m\u00f3dos\u00edt\u00e1s ment\u00e9sre ker\u00fclj\u00f6n. A korrekci\u00f3 ellen\u0151rz\u00e9se \u00b6 A skew_correction be\u00e1ll\u00edt\u00e1sa ut\u00e1n \u00fajra kinyomtathatja a kalibr\u00e1ci\u00f3s r\u00e9szt a korrekci\u00f3 enged\u00e9lyez\u00e9s\u00e9vel. A k\u00f6vetkez\u0151 G-k\u00f3ddal ellen\u0151rizheti a ferdes\u00e9get minden s\u00edkban. Az eredm\u00e9nyeknek alacsonyabbaknak kell lenni\u00fck, mint a GET_CURRENT_SKEW seg\u00edts\u00e9g\u00e9vel jelentett eredm\u00e9nyek. CALC_MEASURED_SKEW AC=<ac_length> BD=<bd_length> AD=<ad_length> \u00d3vint\u00e9zked\u00e9sek \u00b6 A ferdes\u00e9gkorrekci\u00f3 term\u00e9szet\u00e9b\u0151l ad\u00f3d\u00f3an aj\u00e1nlott a ferdes\u00e9get az ind\u00edt\u00f3 G-k\u00f3dban konfigur\u00e1lni, a kezd\u0151pont felv\u00e9tel \u00e9s minden olyan mozg\u00e1s ut\u00e1n, amely a nyomtat\u00e1si ter\u00fclet sz\u00e9l\u00e9hez k\u00f6zel\u00edt, mint p\u00e9ld\u00e1ul a tiszt\u00edt\u00e1s vagy a f\u00fav\u00f3ka t\u00f6rl\u00e9se. Ehhez haszn\u00e1lhatod a SET_SKEW vagy a SKEW_PROFILE G-k\u00f3dokat. Aj\u00e1nlott tov\u00e1bb\u00e1 a SET_SKEW CLEAR=1 parancs kiad\u00e1sa a befejez\u0151 G-k\u00f3dban. Ne feledd! Lehets\u00e9ges, hogy a [skew_correction] olyan korrekci\u00f3t gener\u00e1l, amely a fejet az X \u00e9s/vagy Y tengelyen a nyomtat\u00f3 hat\u00e1rain t\u00falra helyezi. A [skew_correction] haszn\u00e1latakor aj\u00e1nlott a nyomtat\u00f3fejet a sz\u00e9lekt\u0151l t\u00e1volabb elhelyezni.","title":"Ferdes\u00e9g korrekci\u00f3"},{"location":"Skew_Correction.html#ferdeseg-korrekcio","text":"A szoftveralap\u00fa ferdes\u00e9g korrekci\u00f3 seg\u00edthet a nem t\u00f6k\u00e9letesen sz\u00f6gletes nyomtat\u00f3egys\u00e9gb\u0151l ered\u0151 m\u00e9retpontatlans\u00e1gok felold\u00e1s\u00e1ban. Vedd figyelembe, hogy ha a nyomtat\u00f3ja jelent\u0151sen ferde, er\u0151sen aj\u00e1nlott el\u0151sz\u00f6r mechanikai eszk\u00f6z\u00f6kkel a nyomtat\u00f3t a lehet\u0151 legegyenletesebbre \u00e1ll\u00edtani, miel\u0151tt a szoftveralap\u00fa korrekci\u00f3t alkalmazn\u00e1.","title":"Ferdes\u00e9g korrekci\u00f3"},{"location":"Skew_Correction.html#kalibracios-objektum-nyomtatasa","text":"A ferdes\u00e9g korrekci\u00f3j\u00e1nak els\u0151 l\u00e9p\u00e9se egy kalibr\u00e1ci\u00f3s objektum nyomtat\u00e1sa a korrig\u00e1lni k\u00edv\u00e1nt s\u00edk ment\u00e9n. L\u00e9tezik egy m\u00e1sik kalibr\u00e1ci\u00f3s objektum is, amely egy modell \u00f6sszes s\u00edkj\u00e1t tartalmazza. Az objektumot \u00fagy kell t\u00e1jolni, hogy az A sarok a s\u00edk orig\u00f3ja fel\u00e9 legyen. Gy\u0151z\u0151dj meg r\u00f3la, hogy a nyomtat\u00e1s sor\u00e1n nem alkalmaz ferdes\u00e9gkorrekci\u00f3t. Ezt \u00fagy teheti meg, hogy vagy elt\u00e1vol\u00edtja a [skew_correction] modult a printer.cfg f\u00e1jlb\u00f3l, vagy kiadsz egy SET_SKEW CLEAR=1 parancsot.","title":"Kalibr\u00e1ci\u00f3s objektum nyomtat\u00e1sa"},{"location":"Skew_Correction.html#merd-meg","text":"A [skew_correcton] modul minden egyes korrig\u00e1land\u00f3 s\u00edkhoz 3 m\u00e9r\u00e9st ig\u00e9nyel; az A sarokt\u00f3l a C sarokig terjed\u0151 hossz\u00fas\u00e1got, a B sarokt\u00f3l a D sarokig terjed\u0151 hossz\u00fas\u00e1got \u00e9s az A sarokt\u00f3l a D sarokig terjed\u0151 hossz\u00fas\u00e1got. Az AD hosszm\u00e9r\u00e9sn\u00e9l ne vedd figyelembe a sarkokon l\u00e9v\u0151 s\u00edkokat, amelyeket n\u00e9h\u00e1ny tesztobjektum mutat.","title":"M\u00e9rd meg"},{"location":"Skew_Correction.html#konfigurald-a-ferdeseget","text":"Gy\u0151z\u0151dj meg r\u00f3la, hogy a [skew_correction] szerepel a printer.cfg f\u00e1jlban. Most m\u00e1r haszn\u00e1lhatod a SET_SKEW G-k\u00f3dot a skew_correction be\u00e1ll\u00edt\u00e1s\u00e1hoz. P\u00e9ld\u00e1ul, ha az XY ment\u00e9n m\u00e9rt hosszok a k\u00f6vetkez\u0151k: Length AC = 140.4 Length BD = 142.8 Length AD = 99.8 SET_SKEW az XY-s\u00edk ferdes\u00e9gkorrekci\u00f3j\u00e1nak be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. SET_SKEW XY=140.4,142.8,99.8 Az XZ \u00e9s YZ m\u00e9r\u00e9seket is hozz\u00e1adhatja a G-k\u00f3dhoz: SET_SKEW XY=140.4,142.8,99.8 XZ=141.6,141.4,99.8 YZ=142.4,140.5,99.5 A [skew_correction] modul a [bed_mesh] modulhoz hasonl\u00f3 m\u00f3don t\u00e1mogatja a profilkezel\u00e9st is. Miut\u00e1n a SET_SKEW G-k\u00f3ddal be\u00e1ll\u00edtotta a ferdes\u00e9get, a SKEW_PROFILE G-k\u00f3ddal elmentheti azt: SKEW_PROFILE SAVE=my_skew_profile A parancs ut\u00e1n a rendszer felsz\u00f3l\u00edtja a SAVE_CONFIG G-k\u00f3d kiad\u00e1s\u00e1t a profil tart\u00f3s t\u00e1rol\u00f3ba t\u00f6rt\u00e9n\u0151 ment\u00e9s\u00e9hez. Ha nincs my_skew_profile nev\u0171 profil, akkor egy \u00faj profil j\u00f6n l\u00e9tre. Ha a megnevezett profil l\u00e9tezik, akkor azt fel\u00fcl\u00edrja. Ha m\u00e1r van mentett profilja, bet\u00f6ltheti azt: SKEW_PROFILE LOAD=my_skew_profile Lehet\u0151s\u00e9g van r\u00e9gi vagy elavult profilok elt\u00e1vol\u00edt\u00e1s\u00e1ra is: SKEW_PROFILE REMOVE=my_skew_profile A profil elt\u00e1vol\u00edt\u00e1sa ut\u00e1n a rendszer felsz\u00f3l\u00edtja, hogy adj ki egy SAVE_CONFIG parancsot, hogy a m\u00f3dos\u00edt\u00e1s ment\u00e9sre ker\u00fclj\u00f6n.","title":"Konfigur\u00e1ld a ferdes\u00e9get"},{"location":"Skew_Correction.html#a-korrekcio-ellenorzese","text":"A skew_correction be\u00e1ll\u00edt\u00e1sa ut\u00e1n \u00fajra kinyomtathatja a kalibr\u00e1ci\u00f3s r\u00e9szt a korrekci\u00f3 enged\u00e9lyez\u00e9s\u00e9vel. A k\u00f6vetkez\u0151 G-k\u00f3ddal ellen\u0151rizheti a ferdes\u00e9get minden s\u00edkban. Az eredm\u00e9nyeknek alacsonyabbaknak kell lenni\u00fck, mint a GET_CURRENT_SKEW seg\u00edts\u00e9g\u00e9vel jelentett eredm\u00e9nyek. CALC_MEASURED_SKEW AC=<ac_length> BD=<bd_length> AD=<ad_length>","title":"A korrekci\u00f3 ellen\u0151rz\u00e9se"},{"location":"Skew_Correction.html#ovintezkedesek","text":"A ferdes\u00e9gkorrekci\u00f3 term\u00e9szet\u00e9b\u0151l ad\u00f3d\u00f3an aj\u00e1nlott a ferdes\u00e9get az ind\u00edt\u00f3 G-k\u00f3dban konfigur\u00e1lni, a kezd\u0151pont felv\u00e9tel \u00e9s minden olyan mozg\u00e1s ut\u00e1n, amely a nyomtat\u00e1si ter\u00fclet sz\u00e9l\u00e9hez k\u00f6zel\u00edt, mint p\u00e9ld\u00e1ul a tiszt\u00edt\u00e1s vagy a f\u00fav\u00f3ka t\u00f6rl\u00e9se. Ehhez haszn\u00e1lhatod a SET_SKEW vagy a SKEW_PROFILE G-k\u00f3dokat. Aj\u00e1nlott tov\u00e1bb\u00e1 a SET_SKEW CLEAR=1 parancs kiad\u00e1sa a befejez\u0151 G-k\u00f3dban. Ne feledd! Lehets\u00e9ges, hogy a [skew_correction] olyan korrekci\u00f3t gener\u00e1l, amely a fejet az X \u00e9s/vagy Y tengelyen a nyomtat\u00f3 hat\u00e1rain t\u00falra helyezi. A [skew_correction] haszn\u00e1latakor aj\u00e1nlott a nyomtat\u00f3fejet a sz\u00e9lekt\u0151l t\u00e1volabb elhelyezni.","title":"\u00d3vint\u00e9zked\u00e9sek"},{"location":"Slicers.html","text":"Szeletel\u0151k \u00b6 Ez a dokumentum n\u00e9h\u00e1ny tippet ad a Klipperrel haszn\u00e1lhat\u00f3 \"szeletel\u0151\" alkalmaz\u00e1s konfigur\u00e1l\u00e1s\u00e1hoz. A Klipperrel egy\u00fctt haszn\u00e1lt gyakori szeletel\u0151programok a Slic3r, Cura, Simplify3D stb. \u00c1ll\u00edtsd be a G-k\u00f3d \u00edz\u00e9t Marlinra \u00b6 Sok szeletel\u0151program rendelkezik a \"G-k\u00f3d \u00edz\u00e9nek\" konfigur\u00e1l\u00e1si lehet\u0151s\u00e9ggel. Az alap\u00e9rtelmezett gyakran a \"Marlin\", \u00e9s ez j\u00f3l m\u0171k\u00f6dik a Klipperrel. A \"Smoothieware\" be\u00e1ll\u00edt\u00e1s szint\u00e9n j\u00f3l m\u0171k\u00f6dik a Klipperrel. Klipper gcode_macro \u00b6 A szeletel\u0151k gyakran lehet\u0151v\u00e9 teszik a \"Start G-k\u00f3d\" \u00e9s \"End G-k\u00f3d\" szekvenci\u00e1k konfigur\u00e1l\u00e1s\u00e1t. Ehelyett gyakran k\u00e9nyelmes egy\u00e9ni makr\u00f3kat defini\u00e1lni a Klipper config f\u00e1jlban - p\u00e9ld\u00e1ul: [gcode_macro START_PRINT] \u00e9s [gcode_macro END_PRINT] . Ezut\u00e1n csak a START_PRINT \u00e9s END_PRINT futtat\u00e1s\u00e1t kell elv\u00e9gezni a szeletel\u0151 konfigur\u00e1ci\u00f3j\u00e1ban. Ha ezeket a m\u0171veleteket a Klipper konfigur\u00e1ci\u00f3ban defini\u00e1ljuk, k\u00f6nnyebb\u00e9 v\u00e1lhat a nyomtat\u00f3 ind\u00edt\u00e1si \u00e9s befejez\u00e9si l\u00e9p\u00e9seinek finomhangol\u00e1sa, mivel a v\u00e1ltoztat\u00e1sok nem ig\u00e9nyelnek \u00fajb\u00f3li szeletel\u00e9st. L\u00e1sd a sample-macros.cfg a START_PRINT \u00e9s END_PRINT makr\u00f3k p\u00e9ld\u00e1j\u00e1t. A gcode_macro defini\u00e1l\u00e1s\u00e1nak r\u00e9szletei\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st . Nagy visszah\u00faz\u00e1si \u00e9rt\u00e9kek be\u00e1ll\u00edt\u00e1sa sz\u00fcks\u00e9gess\u00e9 tehetik a Klipper hangol\u00e1s\u00e1t \u00b6 A beh\u00faz\u00e1si mozg\u00e1sok maxim\u00e1lis sebess\u00e9g\u00e9t \u00e9s gyorsul\u00e1s\u00e1t a Klipperben a max_extrude_only_velocity \u00e9s max_extrude_only_accel konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sok szab\u00e1lyozz\u00e1k. Ezeknek a be\u00e1ll\u00edt\u00e1soknak van egy alap\u00e9rtelmezett \u00e9rt\u00e9ke, amely sok nyomtat\u00f3n\u00e1l j\u00f3l fog m\u0171k\u00f6dni. Ha azonban valaki nagy beh\u00faz\u00e1st \u00e1ll\u00edtott be a szeletel\u0151ben (pl. 5 mm vagy nagyobb), akkor el\u0151fordulhat, hogy ezek korl\u00e1tozz\u00e1k a k\u00edv\u00e1nt beh\u00faz\u00e1si sebess\u00e9get. Ha nagy visszah\u00faz\u00e1st haszn\u00e1l, fontolja meg a Klipper nyom\u00e1s el\u0151tol\u00e1s be\u00e1ll\u00edt\u00e1s\u00e1t. Ellenkez\u0151 esetben, ha \u00fagy tal\u00e1ljuk, hogy a nyomtat\u00f3fej \u00fagy t\u0171nik, hogy \"sz\u00fcnetel\" a beh\u00faz\u00e1s \u00e9s az alapoz\u00e1s sor\u00e1n, akkor fontolja meg a max_extrude_only_velocity \u00e9s max_extrude_only_accel kifejezett meghat\u00e1roz\u00e1s\u00e1t a Klipper konfigur\u00e1ci\u00f3s f\u00e1jlban. Ne enged\u00e9lyezd a \"coasting-ot\" \u00b6 A \"coasting\" funkci\u00f3 val\u00f3sz\u00edn\u0171leg rossz min\u0151s\u00e9g\u0171 nyomatokat eredm\u00e9nyez a Klipperrel. Fontolja meg helyette a Klipper pressure advance haszn\u00e1lat\u00e1t. Konkr\u00e9tan, ha a szeletel\u0151 drasztikusan megv\u00e1ltoztatja az extrud\u00e1l\u00e1si sebess\u00e9get a mozg\u00e1sok k\u00f6z\u00f6tt, akkor a Klipper lass\u00edt\u00e1st \u00e9s gyors\u00edt\u00e1st hajt v\u00e9gre a mozg\u00e1sok k\u00f6z\u00f6tt. Ez val\u00f3sz\u00edn\u0171leg rontja a blobbingot, nem pedig jav\u00edtja. Ezzel szemben a szeletel\u0151g\u00e9p \"visszah\u00faz\u00e1s\" be\u00e1ll\u00edt\u00e1sa, \"t\u00f6rl\u00e9s\" be\u00e1ll\u00edt\u00e1sa \u00e9s/vagy \"t\u00f6rl\u00e9s visszah\u00faz\u00e1skor\" be\u00e1ll\u00edt\u00e1sa rendben van (\u00e9s gyakran hasznos). Ne haszn\u00e1ld az \"extra \u00fajraind\u00edt\u00e1si t\u00e1vols\u00e1got\" a Simplify3d-n\u00e9l \u00b6 Ez a be\u00e1ll\u00edt\u00e1s dr\u00e1mai v\u00e1ltoz\u00e1sokat okozhat az extrud\u00e1l\u00e1si sebess\u00e9gben, ami kiv\u00e1lthatja a Klipper maxim\u00e1lis extrud\u00e1l\u00e1si keresztmetszet ellen\u0151rz\u00e9s\u00e9t. Fontolja meg a Klipper nyom\u00e1s el\u0151tol\u00e1s vagy a norm\u00e1l Simplify3d visszah\u00faz\u00e1si be\u00e1ll\u00edt\u00e1s haszn\u00e1lat\u00e1t helyette. A \"PreloadVE\" letilt\u00e1sa a KISSlicer-en \u00b6 Ha a KISSlicer szeletel\u0151szoftvert haszn\u00e1lod, akkor \u00e1ll\u00edtsd a \"PreloadVE\" \u00e9rt\u00e9ket null\u00e1ra. Fontolja meg helyette a Klipper nyom\u00e1s el\u0151tol\u00e1s haszn\u00e1lat\u00e1t. Tiltja a \"fejlett nyom\u00e1s el\u0151tol\u00e1s\" be\u00e1ll\u00edt\u00e1sokat \u00b6 N\u00e9h\u00e1ny szeletel\u0151g\u00e9p \"fejlett nyom\u00e1s el\u0151tol\u00e1s\" k\u00e9pess\u00e9get hirdet. A Klipper haszn\u00e1lata eset\u00e9n aj\u00e1nlott ezeket az opci\u00f3kat kikapcsolva tartani, mivel val\u00f3sz\u00edn\u0171leg rossz min\u0151s\u00e9g\u0171 nyomatokat eredm\u00e9nyeznek. Fontolja meg ehelyett a Klipper nyom\u00e1s el\u0151tol\u00e1s haszn\u00e1lat\u00e1t. Konkr\u00e9tan ezek a szeletel\u0151 be\u00e1ll\u00edt\u00e1sok utas\u00edthatj\u00e1k a firmware-t, hogy vad v\u00e1ltoztat\u00e1sokat v\u00e9gezzen az extrud\u00e1l\u00e1si sebess\u00e9gben, abban a rem\u00e9nyben, hogy a firmware k\u00f6zel\u00edteni fogja ezeket a k\u00e9r\u00e9seket, \u00e9s a nyomtat\u00f3 nagyj\u00e1b\u00f3l a k\u00edv\u00e1nt extrudernyom\u00e1st fogja el\u00e9rni. A Klipper azonban pontos kinematikai sz\u00e1m\u00edt\u00e1sokat \u00e9s id\u0151z\u00edt\u00e9st haszn\u00e1l. Amikor a Klipper parancsot kap az extrud\u00e1l\u00e1si sebess\u00e9g jelent\u0151s v\u00e1ltoztat\u00e1s\u00e1ra, megtervezi a sebess\u00e9g, a gyorsul\u00e1s \u00e9s az extruder mozg\u00e1s\u00e1nak megfelel\u0151 v\u00e1ltoz\u00e1sait - ami nem a szeletel\u0151 sz\u00e1nd\u00e9k\u00e1ban \u00e1ll. A szeletel\u0151 ak\u00e1r t\u00falzott extrud\u00e1l\u00e1si sebess\u00e9get is parancsolhat, olyannyira, hogy az kiv\u00e1ltja a Klipper maxim\u00e1lis extrud\u00e1l\u00e1si keresztmetszet ellen\u0151rz\u00e9s\u00e9t. Ezzel szemben a szeletel\u0151g\u00e9p \"visszah\u00faz\u00e1s\" be\u00e1ll\u00edt\u00e1sa, \"t\u00f6rl\u00e9s\" be\u00e1ll\u00edt\u00e1sa \u00e9s/vagy \"t\u00f6rl\u00e9s visszah\u00faz\u00e1skor\" be\u00e1ll\u00edt\u00e1sa rendben van (\u00e9s gyakran hasznos).","title":"Szeletel\u0151k"},{"location":"Slicers.html#szeletelok","text":"Ez a dokumentum n\u00e9h\u00e1ny tippet ad a Klipperrel haszn\u00e1lhat\u00f3 \"szeletel\u0151\" alkalmaz\u00e1s konfigur\u00e1l\u00e1s\u00e1hoz. A Klipperrel egy\u00fctt haszn\u00e1lt gyakori szeletel\u0151programok a Slic3r, Cura, Simplify3D stb.","title":"Szeletel\u0151k"},{"location":"Slicers.html#allitsd-be-a-g-kod-izet-marlinra","text":"Sok szeletel\u0151program rendelkezik a \"G-k\u00f3d \u00edz\u00e9nek\" konfigur\u00e1l\u00e1si lehet\u0151s\u00e9ggel. Az alap\u00e9rtelmezett gyakran a \"Marlin\", \u00e9s ez j\u00f3l m\u0171k\u00f6dik a Klipperrel. A \"Smoothieware\" be\u00e1ll\u00edt\u00e1s szint\u00e9n j\u00f3l m\u0171k\u00f6dik a Klipperrel.","title":"\u00c1ll\u00edtsd be a G-k\u00f3d \u00edz\u00e9t Marlinra"},{"location":"Slicers.html#klipper-gcode_macro","text":"A szeletel\u0151k gyakran lehet\u0151v\u00e9 teszik a \"Start G-k\u00f3d\" \u00e9s \"End G-k\u00f3d\" szekvenci\u00e1k konfigur\u00e1l\u00e1s\u00e1t. Ehelyett gyakran k\u00e9nyelmes egy\u00e9ni makr\u00f3kat defini\u00e1lni a Klipper config f\u00e1jlban - p\u00e9ld\u00e1ul: [gcode_macro START_PRINT] \u00e9s [gcode_macro END_PRINT] . Ezut\u00e1n csak a START_PRINT \u00e9s END_PRINT futtat\u00e1s\u00e1t kell elv\u00e9gezni a szeletel\u0151 konfigur\u00e1ci\u00f3j\u00e1ban. Ha ezeket a m\u0171veleteket a Klipper konfigur\u00e1ci\u00f3ban defini\u00e1ljuk, k\u00f6nnyebb\u00e9 v\u00e1lhat a nyomtat\u00f3 ind\u00edt\u00e1si \u00e9s befejez\u00e9si l\u00e9p\u00e9seinek finomhangol\u00e1sa, mivel a v\u00e1ltoztat\u00e1sok nem ig\u00e9nyelnek \u00fajb\u00f3li szeletel\u00e9st. L\u00e1sd a sample-macros.cfg a START_PRINT \u00e9s END_PRINT makr\u00f3k p\u00e9ld\u00e1j\u00e1t. A gcode_macro defini\u00e1l\u00e1s\u00e1nak r\u00e9szletei\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st .","title":"Klipper gcode_macro"},{"location":"Slicers.html#nagy-visszahuzasi-ertekek-beallitasa-szuksegesse-tehetik-a-klipper-hangolasat","text":"A beh\u00faz\u00e1si mozg\u00e1sok maxim\u00e1lis sebess\u00e9g\u00e9t \u00e9s gyorsul\u00e1s\u00e1t a Klipperben a max_extrude_only_velocity \u00e9s max_extrude_only_accel konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sok szab\u00e1lyozz\u00e1k. Ezeknek a be\u00e1ll\u00edt\u00e1soknak van egy alap\u00e9rtelmezett \u00e9rt\u00e9ke, amely sok nyomtat\u00f3n\u00e1l j\u00f3l fog m\u0171k\u00f6dni. Ha azonban valaki nagy beh\u00faz\u00e1st \u00e1ll\u00edtott be a szeletel\u0151ben (pl. 5 mm vagy nagyobb), akkor el\u0151fordulhat, hogy ezek korl\u00e1tozz\u00e1k a k\u00edv\u00e1nt beh\u00faz\u00e1si sebess\u00e9get. Ha nagy visszah\u00faz\u00e1st haszn\u00e1l, fontolja meg a Klipper nyom\u00e1s el\u0151tol\u00e1s be\u00e1ll\u00edt\u00e1s\u00e1t. Ellenkez\u0151 esetben, ha \u00fagy tal\u00e1ljuk, hogy a nyomtat\u00f3fej \u00fagy t\u0171nik, hogy \"sz\u00fcnetel\" a beh\u00faz\u00e1s \u00e9s az alapoz\u00e1s sor\u00e1n, akkor fontolja meg a max_extrude_only_velocity \u00e9s max_extrude_only_accel kifejezett meghat\u00e1roz\u00e1s\u00e1t a Klipper konfigur\u00e1ci\u00f3s f\u00e1jlban.","title":"Nagy visszah\u00faz\u00e1si \u00e9rt\u00e9kek be\u00e1ll\u00edt\u00e1sa sz\u00fcks\u00e9gess\u00e9 tehetik a Klipper hangol\u00e1s\u00e1t"},{"location":"Slicers.html#ne-engedelyezd-a-coasting-ot","text":"A \"coasting\" funkci\u00f3 val\u00f3sz\u00edn\u0171leg rossz min\u0151s\u00e9g\u0171 nyomatokat eredm\u00e9nyez a Klipperrel. Fontolja meg helyette a Klipper pressure advance haszn\u00e1lat\u00e1t. Konkr\u00e9tan, ha a szeletel\u0151 drasztikusan megv\u00e1ltoztatja az extrud\u00e1l\u00e1si sebess\u00e9get a mozg\u00e1sok k\u00f6z\u00f6tt, akkor a Klipper lass\u00edt\u00e1st \u00e9s gyors\u00edt\u00e1st hajt v\u00e9gre a mozg\u00e1sok k\u00f6z\u00f6tt. Ez val\u00f3sz\u00edn\u0171leg rontja a blobbingot, nem pedig jav\u00edtja. Ezzel szemben a szeletel\u0151g\u00e9p \"visszah\u00faz\u00e1s\" be\u00e1ll\u00edt\u00e1sa, \"t\u00f6rl\u00e9s\" be\u00e1ll\u00edt\u00e1sa \u00e9s/vagy \"t\u00f6rl\u00e9s visszah\u00faz\u00e1skor\" be\u00e1ll\u00edt\u00e1sa rendben van (\u00e9s gyakran hasznos).","title":"Ne enged\u00e9lyezd a \"coasting-ot\""},{"location":"Slicers.html#ne-hasznald-az-extra-ujrainditasi-tavolsagot-a-simplify3d-nel","text":"Ez a be\u00e1ll\u00edt\u00e1s dr\u00e1mai v\u00e1ltoz\u00e1sokat okozhat az extrud\u00e1l\u00e1si sebess\u00e9gben, ami kiv\u00e1lthatja a Klipper maxim\u00e1lis extrud\u00e1l\u00e1si keresztmetszet ellen\u0151rz\u00e9s\u00e9t. Fontolja meg a Klipper nyom\u00e1s el\u0151tol\u00e1s vagy a norm\u00e1l Simplify3d visszah\u00faz\u00e1si be\u00e1ll\u00edt\u00e1s haszn\u00e1lat\u00e1t helyette.","title":"Ne haszn\u00e1ld az \"extra \u00fajraind\u00edt\u00e1si t\u00e1vols\u00e1got\" a Simplify3d-n\u00e9l"},{"location":"Slicers.html#a-preloadve-letiltasa-a-kisslicer-en","text":"Ha a KISSlicer szeletel\u0151szoftvert haszn\u00e1lod, akkor \u00e1ll\u00edtsd a \"PreloadVE\" \u00e9rt\u00e9ket null\u00e1ra. Fontolja meg helyette a Klipper nyom\u00e1s el\u0151tol\u00e1s haszn\u00e1lat\u00e1t.","title":"A \"PreloadVE\" letilt\u00e1sa a KISSlicer-en"},{"location":"Slicers.html#tiltja-a-fejlett-nyomas-elotolas-beallitasokat","text":"N\u00e9h\u00e1ny szeletel\u0151g\u00e9p \"fejlett nyom\u00e1s el\u0151tol\u00e1s\" k\u00e9pess\u00e9get hirdet. A Klipper haszn\u00e1lata eset\u00e9n aj\u00e1nlott ezeket az opci\u00f3kat kikapcsolva tartani, mivel val\u00f3sz\u00edn\u0171leg rossz min\u0151s\u00e9g\u0171 nyomatokat eredm\u00e9nyeznek. Fontolja meg ehelyett a Klipper nyom\u00e1s el\u0151tol\u00e1s haszn\u00e1lat\u00e1t. Konkr\u00e9tan ezek a szeletel\u0151 be\u00e1ll\u00edt\u00e1sok utas\u00edthatj\u00e1k a firmware-t, hogy vad v\u00e1ltoztat\u00e1sokat v\u00e9gezzen az extrud\u00e1l\u00e1si sebess\u00e9gben, abban a rem\u00e9nyben, hogy a firmware k\u00f6zel\u00edteni fogja ezeket a k\u00e9r\u00e9seket, \u00e9s a nyomtat\u00f3 nagyj\u00e1b\u00f3l a k\u00edv\u00e1nt extrudernyom\u00e1st fogja el\u00e9rni. A Klipper azonban pontos kinematikai sz\u00e1m\u00edt\u00e1sokat \u00e9s id\u0151z\u00edt\u00e9st haszn\u00e1l. Amikor a Klipper parancsot kap az extrud\u00e1l\u00e1si sebess\u00e9g jelent\u0151s v\u00e1ltoztat\u00e1s\u00e1ra, megtervezi a sebess\u00e9g, a gyorsul\u00e1s \u00e9s az extruder mozg\u00e1s\u00e1nak megfelel\u0151 v\u00e1ltoz\u00e1sait - ami nem a szeletel\u0151 sz\u00e1nd\u00e9k\u00e1ban \u00e1ll. A szeletel\u0151 ak\u00e1r t\u00falzott extrud\u00e1l\u00e1si sebess\u00e9get is parancsolhat, olyannyira, hogy az kiv\u00e1ltja a Klipper maxim\u00e1lis extrud\u00e1l\u00e1si keresztmetszet ellen\u0151rz\u00e9s\u00e9t. Ezzel szemben a szeletel\u0151g\u00e9p \"visszah\u00faz\u00e1s\" be\u00e1ll\u00edt\u00e1sa, \"t\u00f6rl\u00e9s\" be\u00e1ll\u00edt\u00e1sa \u00e9s/vagy \"t\u00f6rl\u00e9s visszah\u00faz\u00e1skor\" be\u00e1ll\u00edt\u00e1sa rendben van (\u00e9s gyakran hasznos).","title":"Tiltja a \"fejlett nyom\u00e1s el\u0151tol\u00e1s\" be\u00e1ll\u00edt\u00e1sokat"},{"location":"Sponsors.html","text":"Szponzorok \u00b6 A Klipper szabad szoftver. A szponzorok nagylelk\u0171 t\u00e1mogat\u00e1s\u00e1t\u00f3l f\u00fcgg\u00fcnk. K\u00e9rj\u00fck, fontolja meg a Klipper szponzor\u00e1l\u00e1s\u00e1t vagy szponzoraink t\u00e1mogat\u00e1s\u00e1t. BIGTREETECH \u00b6 [ A BIGTREETECH a Klipper hivatalos alaplapszponzora. A BIGTREETECH elk\u00f6telezett az innovat\u00edv \u00e9s versenyk\u00e9pes term\u00e9kek fejleszt\u00e9se mellett, hogy a 3D nyomtat\u00e1si k\u00f6z\u00f6ss\u00e9get jobban szolg\u00e1lj\u00e1k. K\u00f6vesse \u0151ket a Facebookon vagy a Twitteren . Klipper fejleszt\u0151k \u00b6 Kevin O'Connor \u00b6 Kevin a Klipper eredeti szerz\u0151je \u00e9s jelenlegi karbantart\u00f3ja. Adom\u00e1nyozhat a k\u00f6vetkez\u0151 c\u00edmen: https://ko-fi.com/koconnor vagy https://www.patreon.com/koconnor Eric Callahan \u00b6 Eric a bed_mesh, spi_flash \u00e9s sz\u00e1mos m\u00e1s Klipper modul szerz\u0151je. Ericnek van egy adom\u00e1nyoz\u00e1si oldala a k\u00f6vetkez\u0151 c\u00edmen: https://ko-fi.com/arksine Kapcsol\u00f3d\u00f3 Klipper projektek \u00b6 A Klippert gyakran haszn\u00e1lj\u00e1k m\u00e1s szabad szoftverekkel egy\u00fctt. Fontolja meg ezeknek a projekteknek a haszn\u00e1lat\u00e1t vagy t\u00e1mogat\u00e1s\u00e1t. Moonraker Mainsail Fluidd OctoPrint KlipperScreen","title":"Szponzorok"},{"location":"Sponsors.html#szponzorok","text":"A Klipper szabad szoftver. A szponzorok nagylelk\u0171 t\u00e1mogat\u00e1s\u00e1t\u00f3l f\u00fcgg\u00fcnk. K\u00e9rj\u00fck, fontolja meg a Klipper szponzor\u00e1l\u00e1s\u00e1t vagy szponzoraink t\u00e1mogat\u00e1s\u00e1t.","title":"Szponzorok"},{"location":"Sponsors.html#bigtreetech","text":"[ A BIGTREETECH a Klipper hivatalos alaplapszponzora. A BIGTREETECH elk\u00f6telezett az innovat\u00edv \u00e9s versenyk\u00e9pes term\u00e9kek fejleszt\u00e9se mellett, hogy a 3D nyomtat\u00e1si k\u00f6z\u00f6ss\u00e9get jobban szolg\u00e1lj\u00e1k. K\u00f6vesse \u0151ket a Facebookon vagy a Twitteren .","title":"BIGTREETECH"},{"location":"Sponsors.html#klipper-fejlesztok","text":"","title":"Klipper fejleszt\u0151k"},{"location":"Sponsors.html#kevin-oconnor","text":"Kevin a Klipper eredeti szerz\u0151je \u00e9s jelenlegi karbantart\u00f3ja. Adom\u00e1nyozhat a k\u00f6vetkez\u0151 c\u00edmen: https://ko-fi.com/koconnor vagy https://www.patreon.com/koconnor","title":"Kevin O'Connor"},{"location":"Sponsors.html#eric-callahan","text":"Eric a bed_mesh, spi_flash \u00e9s sz\u00e1mos m\u00e1s Klipper modul szerz\u0151je. Ericnek van egy adom\u00e1nyoz\u00e1si oldala a k\u00f6vetkez\u0151 c\u00edmen: https://ko-fi.com/arksine","title":"Eric Callahan"},{"location":"Sponsors.html#kapcsolodo-klipper-projektek","text":"A Klippert gyakran haszn\u00e1lj\u00e1k m\u00e1s szabad szoftverekkel egy\u00fctt. Fontolja meg ezeknek a projekteknek a haszn\u00e1lat\u00e1t vagy t\u00e1mogat\u00e1s\u00e1t. Moonraker Mainsail Fluidd OctoPrint KlipperScreen","title":"Kapcsol\u00f3d\u00f3 Klipper projektek"},{"location":"Status_Reference.html","text":"\u00c1llapot referencia \u00b6 Ez a dokumentum a Klipper makr\u00f3k , megjelen\u00edt\u00e9si mez\u0151k \u00e9s az API Szerver seg\u00edts\u00e9g\u00e9vel el\u00e9rhet\u0151 nyomtat\u00f3 \u00e1llapotinform\u00e1ci\u00f3k referenci\u00e1ja. Az ebben a dokumentumban szerepl\u0151 mez\u0151k v\u00e1ltozhatnak. Ha egy attrib\u00fatumot haszn\u00e1l, a Klipper szoftver friss\u00edt\u00e9sekor mindenk\u00e9ppen n\u00e9zze \u00e1t a Konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00e1sok dokumentumot . angle \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k az angle some_name objektumban \u00e9rhet\u0151k el: temperature : A tle5012b m\u00e1gneses hall-\u00e9rz\u00e9kel\u0151 utols\u00f3 h\u0151m\u00e9rs\u00e9kleti \u00e9rt\u00e9ke (Celsiusban). Ez az \u00e9rt\u00e9k csak akkor \u00e9rhet\u0151 el, ha a sz\u00f6g\u00e9rz\u00e9kel\u0151 egy tle5012b chip, \u00e9s ha a m\u00e9r\u00e9sek folyamatban vannak (ellenkez\u0151 esetben None ). bed_mesh \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a bed_mesh objektumban \u00e9rhet\u0151k el: profile_name , mesh_min , mesh_max , probed_matrix , mesh_matrix : Az aktu\u00e1lisan akt\u00edv bed_mesh-re vonatkoz\u00f3 inform\u00e1ci\u00f3k. profiles : A BED_MESH_PROFILE haszn\u00e1lat\u00e1val be\u00e1ll\u00edtott, jelenleg defini\u00e1lt profilok halmaza. bed_screws \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a Config_Reference.md#bed_screws objektumban tal\u00e1lhat\u00f3k: is_active : True \u00e9rt\u00e9ket ad vissza, ha a t\u00e1rgyasztal csavarok be\u00e1ll\u00edt\u00e1si eszk\u00f6ze jelenleg akt\u00edv. state : A t\u00e1rgyasztal csavarok be\u00e1ll\u00edt\u00e1si szersz\u00e1m\u00e1nak \u00e1llapota. A k\u00f6vetkez\u0151 karakterl\u00e1ncok egyike: \"adjust\", \"fine\". current_screw : Az aktu\u00e1lisan be\u00e1ll\u00edtott csavar indexe. accepted_screws : Az elfogadott csavarok sz\u00e1ma. configfile \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a configfile objektumban tal\u00e1lhat\u00f3k (ez az objektum mindig el\u00e9rhet\u0151): settings.<section>.<option> : Visszaadja az adott konfigur\u00e1ci\u00f3s f\u00e1jl be\u00e1ll\u00edt\u00e1s\u00e1t (vagy alap\u00e9rtelmezett \u00e9rt\u00e9k\u00e9t) a szoftver utols\u00f3 ind\u00edt\u00e1sa vagy \u00fajraind\u00edt\u00e1sa sor\u00e1n. (A haszn\u00e1lat k\u00f6zben megv\u00e1ltoztatott be\u00e1ll\u00edt\u00e1sok nem jelennek meg itt.) config.<section>.<option> : Visszaadja az adott nyers konfigur\u00e1ci\u00f3s f\u00e1jl be\u00e1ll\u00edt\u00e1s\u00e1t, ahogyan azt a Klipper a legut\u00f3bbi szoftverind\u00edt\u00e1s vagy \u00fajraind\u00edt\u00e1s sor\u00e1n beolvasta. (A m\u0171k\u00f6d\u00e9s k\u00f6zben megv\u00e1ltoztatott be\u00e1ll\u00edt\u00e1sok nem jelennek meg itt.) Minden \u00e9rt\u00e9ket stringk\u00e9nt ad vissza. save_config_pending : True \u00e9rt\u00e9ket ad, ha vannak olyan friss\u00edt\u00e9sek, amelyeket a SAVE_CONFIG parancs a lemezen is meg\u0151rizhet. save_config_pending_items : Tartalmazza azokat a szakaszokat \u00e9s opci\u00f3kat, amelyeket megv\u00e1ltoztattak, \u00e9s amelyeket egy SAVE_CONFIG elmenthetne. figyelmeztet\u00e9sek : A konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sokkal kapcsolatos figyelmeztet\u00e9sek list\u00e1ja. A lista minden egyes bejegyz\u00e9se egy sz\u00f3t\u00e1r lesz, amely tartalmaz egy type \u00e9s egy message mez\u0151t (mindkett\u0151 karakterl\u00e1nc). A figyelmeztet\u00e9s t\u00edpus\u00e1t\u00f3l f\u00fcgg\u0151en tov\u00e1bbi mez\u0151k is rendelkez\u00e9sre \u00e1llhatnak. display_status \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a display_status objektumban \u00e9rhet\u0151k el (ez az objektum automatikusan el\u00e9rhet\u0151, ha a kijelz\u0151 konfigur\u00e1ci\u00f3s szakasz defini\u00e1lva van): progress : A legut\u00f3bbi M73 G-k\u00f3d parancs progress \u00e9rt\u00e9ke (vagy virtual_sdcard.progress , ha nem \u00e9rkezett legut\u00f3bbi M73 ). message : Az utols\u00f3 M117 G-k\u00f3d\u00fa parancsban szerepl\u0151 \u00fczenet. endstop_phase \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k az endstop_phase objektumban \u00e9rhet\u0151k el: last_home.<stepper name>.phase : A l\u00e9ptet\u0151motor f\u00e1zisa az utols\u00f3 kezd\u0151pont felv\u00e9teli k\u00eds\u00e9rlet v\u00e9g\u00e9n. last_home.<stepper name>.phases : A l\u00e9ptet\u0151motoron rendelkez\u00e9sre \u00e1ll\u00f3 f\u00e1zisok sz\u00e1ma. last_home.<stepper name>.mcu_position : A l\u00e9ptet\u0151motor poz\u00edci\u00f3ja (ahogyan azt a mikrokontroller k\u00f6veti) a legut\u00f3bbi kezd\u0151pont felv\u00e9teli k\u00eds\u00e9rlet v\u00e9g\u00e9n. A poz\u00edci\u00f3 az el\u0151remen\u0151 ir\u00e1nyban megtett l\u00e9p\u00e9sek sz\u00e1ma m\u00ednusz a mikrokontroller utols\u00f3 \u00fajraind\u00edt\u00e1sa \u00f3ta visszafel\u00e9 megtett l\u00e9p\u00e9sek sz\u00e1m\u00e1val. exclude_object \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k az exclude_object objektumban tal\u00e1lhat\u00f3k: objektumok : Az EXCLUDE_OBJECT_DEFINE parancs \u00e1ltal megadott ismert objektumok t\u00f6mbje. Ez ugyanaz az inform\u00e1ci\u00f3, amelyet az EXCLUDE_OBJECT VERBOSE=1 parancs szolg\u00e1ltat. A center \u00e9s polygon mez\u0151k csak akkor lesznek jelen, ha az eredeti EXCLUDE_OBJECT_DEFINE parancsban szerepelnek.\u00cdme egy JSON-minta: [ { \"polygon\": [ [ 156.25, 146.2511675 ], [ 156.25, 153.7488325 ], [ 163.75, 153.7488325 ], [ 163.75, 146.2511675 ] ], \"name\": \"CYLINDER_2_STL_ID_2_COPY_0\", \"center\": [ 160, 150 ] }, { \"polygon\": [ [ 146.25, 146.2511675 ], [ 146.25, 153.7488325 ], [ 153.75, 153.7488325 ], [ 153.75, 146.2511675 ] ], \"name\": \"CYLINDER_2_STL_ID_1_COPY_0\", \"center\": [ 150, 150 ] } ] excluded_objects : A kiz\u00e1rt objektumok neveit felsorol\u00f3 karakterl\u00e1ncok t\u00f6mbje. current_object : Az aktu\u00e1lisan nyomtatott objektum neve. extruder_stepper \u00b6 Az al\u00e1bbi inform\u00e1ci\u00f3k az extruder_stepper objektumok (valamint az extruder objektumok) eset\u00e9ben \u00e1llnak rendelkez\u00e9sre: pressure_advance : Az aktu\u00e1lis nyom\u00e1s el\u0151tol\u00e1s \u00e9rt\u00e9k. smooth_time : Az aktu\u00e1lis nyom\u00e1s el\u0151tol\u00e1s\u00e1nak sim\u00edt\u00e1si ideje. fan \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a ventil\u00e1tor , heater_fan some_name \u00e9s controller_fan some_name objektumokban \u00e9rhet\u0151k el: speed : A ventil\u00e1tor fordulatsz\u00e1ma lebeg\u0151\u00e9rt\u00e9kben 0.0 \u00e9s 1.0 k\u00f6z\u00f6tt. rpm : A ventil\u00e1tor m\u00e9rt fordulatsz\u00e1ma percenk\u00e9nti fordulatsz\u00e1mban, ha a ventil\u00e1tor rendelkezik tachometer_pin kimenettel. filament_switch_sensor \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a filament_switch_sensor some_name objektumokban \u00e9rhet\u0151k el: enabled : True \u00e9rt\u00e9ket ad vissza, ha a kapcsol\u00f3 enged\u00e9lyezve van. filament_detected : True \u00e9rt\u00e9ket ad ha az \u00e9rz\u00e9kel\u0151 kioldott \u00e1llapotban van. filament_motion_sensor \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a filament_motion_sensor some_name objektumokban \u00e9rhet\u0151k el: enabled : True \u00e9rt\u00e9ket ad, ha a mozg\u00e1s\u00e9rz\u00e9kel\u0151 enged\u00e9lyezve van. filament_detected : True \u00e9rt\u00e9ket ad ha az \u00e9rz\u00e9kel\u0151 kioldott \u00e1llapotban van. firmware_retraction \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a firmware_retraction objektumban tal\u00e1lhat\u00f3k: retract_length , retract_speed , unretract_extra_length , unretract_speed : A firmware_retraction modul aktu\u00e1lis be\u00e1ll\u00edt\u00e1sai. Ezek a be\u00e1ll\u00edt\u00e1sok elt\u00e9rhetnek a konfigur\u00e1ci\u00f3s \u00e1llom\u00e1nyt\u00f3l, ha a SET_RETRACTION parancs megv\u00e1ltoztatja \u0151ket. gcode_macro \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a gcode_macro some_name objektumokban \u00e9rhet\u0151k el: <variable> : Egy gcode_macro v\u00e1ltoz\u00f3 aktu\u00e1lis \u00e9rt\u00e9ke. gcode_move \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a gcode_move objektumban \u00e9rhet\u0151k el (ez az objektum mindig el\u00e9rhet\u0151): gcode_position : A nyomtat\u00f3fej aktu\u00e1lis poz\u00edci\u00f3ja az aktu\u00e1lis G-k\u00f3d orig\u00f3hoz k\u00e9pest. Vagyis olyan poz\u00edci\u00f3k, amelyeket k\u00f6zvetlen\u00fcl egy G1 parancsnak k\u00fcldhet\u00fcnk. Lehet\u0151s\u00e9g van e poz\u00edci\u00f3 X, Y, Z \u00e9s az E, komponens\u00e9nek el\u00e9r\u00e9s\u00e9re (pl. gcode_position.x ). position : A nyomtat\u00f3fej utols\u00f3 kiadott poz\u00edci\u00f3ja a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1ta rendszerrel. Lehet\u0151s\u00e9g van ennek a poz\u00edci\u00f3nak az X, Y, Z \u00e9s az E, komponens\u00e9hez hozz\u00e1f\u00e9rni (pl. position.x ). homing_origin : A G-k\u00f3d koordin\u00e1ta rendszer orig\u00f3ja (a config f\u00e1jlban megadott koordin\u00e1ta rendszerhez k\u00e9pest), amelyet a G28 parancs ut\u00e1n haszn\u00e1lni kell. A SET_GCODE_OFFSET parancs megv\u00e1ltoztathatja ezt a poz\u00edci\u00f3t. Lehet\u0151s\u00e9g van ennek a poz\u00edci\u00f3nak az X, Y \u00e9s Z komponens\u00e9hez hozz\u00e1f\u00e9rni (pl. homing_origin.x ). speed : Az utols\u00f3, G1 parancsban be\u00e1ll\u00edtott sebess\u00e9g (mm/sec-ben). speed_factor : Az M220 parancs \u00e1ltal be\u00e1ll\u00edtott \"sebess\u00e9gt\u00e9nyez\u0151 fel\u00fclb\u00edr\u00e1l\u00e1sa\". Ez egy lebeg\u0151pontos \u00e9rt\u00e9k, \u00edgy 1.0 azt jelenti, hogy nincs fel\u00fclb\u00edr\u00e1lat, \u00e9s p\u00e9ld\u00e1ul a 2.0 megdupl\u00e1zza a k\u00e9rt sebess\u00e9get. extrude_factor : Az M221 parancs \u00e1ltal be\u00e1ll\u00edtott \"extrude factor override\". Ez egy lebeg\u0151pontos \u00e9rt\u00e9k, \u00edgy 1.0 azt jelenti, hogy nincs fel\u00fclb\u00edr\u00e1lat, \u00e9s p\u00e9ld\u00e1ul a 2.0 megdupl\u00e1zza a k\u00e9rt extrud\u00e1l\u00e1sokat. absolute_coordinates : True \u00e9rt\u00e9ket ad, ha a G90 abszol\u00fat koordin\u00e1ta m\u00f3dban van, vagy False \u00e9rt\u00e9ket, ha a G91 relat\u00edv m\u00f3dban van. absolute_extrude : True \u00e9rt\u00e9ket ad, ha az M82 abszol\u00fat extrude m\u00f3dban van, vagy False \u00e9rt\u00e9ket, ha az M83 relat\u00edv m\u00f3dban van. hall_filament_width_sensor \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a hall_filament_width_sensor objektumban \u00e9rhet\u0151k el: is_active : True \u00e9rt\u00e9ket ad, ha az \u00e9rz\u00e9kel\u0151 jelenleg akt\u00edv. Diameter : Az \u00e9rz\u00e9kel\u0151 utols\u00f3 leolvas\u00e1sa mm-ben. Raw : Az \u00e9rz\u00e9kel\u0151 utols\u00f3 nyers ADC-olvas\u00e1sa. heater \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k az olyan f\u0171t\u0151elemekhez \u00e1llnak rendelkez\u00e9sre, mint az extruder , heater_bed \u00e9s heater_generic : temperature : Az adott f\u0171t\u0151berendez\u00e9s legut\u00f3bb jelentett h\u0151m\u00e9rs\u00e9klete (Celsiusban, lebeg\u0151\u00e9rt\u00e9kben). target : Az adott f\u0171t\u0151berendez\u00e9s aktu\u00e1lis c\u00e9lh\u0151m\u00e9rs\u00e9klete (Celsiusban, lebeg\u0151\u00e9rt\u00e9kben). power : A f\u0171t\u0151testhez tartoz\u00f3 PWM-t\u0171 utols\u00f3 \u00e9rt\u00e9ke (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9k). can_extrude : Ha az extruder tud extrud\u00e1lni ( min_extrude_temp hat\u00e1rozza meg), csak az extruder eset\u00e9ben el\u00e9rhet\u0151 heaters \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a heaters objektumban \u00e9rhet\u0151k el (ez az objektum akkor \u00e9rhet\u0151 el, ha b\u00e1rmilyen f\u0171t\u0151berendez\u00e9s defini\u00e1lva van): available_heaters : Visszaadja az \u00f6sszes jelenleg el\u00e9rhet\u0151 f\u0171t\u0151berendez\u00e9s list\u00e1j\u00e1t a teljes config szekci\u00f3 nev\u00e9vel, pl. [\"extruder\", \"heater_bed\", \"heater_generic my_custom_heater\"] . available_sensors : Visszaadja az \u00f6sszes jelenleg el\u00e9rhet\u0151 h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151 list\u00e1j\u00e1t a teljes config szekci\u00f3 nev\u00e9vel, pl. [\"extruder\", \"heater_bed\", \"heater_generic my_custom_heater\", \"temperature_sensor electronics_temp\"] . idle_timeout \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k az idle_timeout objektumban \u00e9rhet\u0151k el (ez az objektum mindig el\u00e9rhet\u0151): state : A nyomtat\u00f3 aktu\u00e1lis \u00e1llapota, amelyet az idle_timeout modul k\u00f6vet. A k\u00f6vetkez\u0151 karakterl\u00e1ncok egyike: \"Idle\", \"Printing\", \"Ready\". printing_time : Az az id\u0151 (m\u00e1sodpercben), am\u00edg a nyomtat\u00f3 \"nyomtat\u00e1s\" \u00e1llapotban volt (ahogyan azt az idle_timeout modul k\u00f6veti). led \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k \u00e1llnak rendelkez\u00e9sre minden egyes [led led_name] , [neopixel led_name eset\u00e9ben, [dotstar led_name] , [pca9533 led_name] , \u00e9s [pca9632 led_name] a nyomtat\u00f3ban meghat\u00e1rozott printer.cfg f\u00e1jlban: color_data : A l\u00e1ncban l\u00e9v\u0151 ledek RGBW \u00e9rt\u00e9keit tartalmaz\u00f3 sz\u00ednlist\u00e1k list\u00e1ja. Minden \u00e9rt\u00e9ket 0,0 \u00e9s 1,0 k\u00f6z\u00f6tti lebeg\u0151\u00e9rt\u00e9kben \u00e1br\u00e1zolunk. Minden sz\u00ednlista 4 elemet tartalmaz (piros, z\u00f6ld, k\u00e9k, feh\u00e9r), m\u00e9g akkor is, ha az alatta l\u00e9v\u0151 LED kevesebb sz\u00edncsatorn\u00e1t t\u00e1mogat. P\u00e9ld\u00e1ul a l\u00e1nc m\u00e1sodik neopixel\u00e9nek k\u00e9k \u00e9rt\u00e9ke (a sz\u00ednlista 3. eleme) a printer[\"neopixel <config_name>\"].color_data[1][2] c\u00edmen \u00e9rhet\u0151 el. manual_probe \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a manual_probe objektumban tal\u00e1lhat\u00f3k: is_active : True \u00e9rt\u00e9ket ad vissza, ha egy k\u00e9zi m\u00e9r\u00e9si seg\u00e9dszkript jelenleg akt\u00edv. z_position : A f\u00fav\u00f3ka aktu\u00e1lis magass\u00e1ga (ahogyan azt a nyomtat\u00f3 jelenleg \u00e9rtelmezi). z_position_lower : Az utols\u00f3 m\u00e9r\u00e9s k\u00eds\u00e9rlet \u00e9ppen az aktu\u00e1lis magass\u00e1gn\u00e1l alacsonyabb. z_position_upper : Az utols\u00f3 m\u00e9r\u00e9s k\u00eds\u00e9rlet \u00e9ppen nagyobb, mint az aktu\u00e1lis magass\u00e1g. mcu \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k az mcu \u00e9s mcu some_name objektumokban \u00e9rhet\u0151k el: mcu_version : A mikrokontroller \u00e1ltal jelentett Klipper k\u00f3d verzi\u00f3ja. mcu_build_versions : A mikrokontroller k\u00f3dj\u00e1nak gener\u00e1l\u00e1s\u00e1hoz haszn\u00e1lt \u00e9p\u00edt\u0151eszk\u00f6z\u00f6kre vonatkoz\u00f3 inform\u00e1ci\u00f3k (a mikrokontroller \u00e1ltal jelentett m\u00f3don). mcu_constants.<constant_name> : A mikrokontroller \u00e1ltal jelentett ford\u00edt\u00e1si idej\u0171 konstansok. A rendelkez\u00e9sre \u00e1ll\u00f3 konstansok mikrokontroller architekt\u00far\u00e1nk\u00e9nt \u00e9s k\u00f3drev\u00edzi\u00f3nk\u00e9nt elt\u00e9r\u0151ek lehetnek. last_stats.<statistics_name> : Statisztikai inform\u00e1ci\u00f3k a mikrokontroller kapcsolatr\u00f3l. motion_report \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a motion_report objektumban \u00e9rhet\u0151k el (ez az objektum automatikusan el\u00e9rhet\u0151, ha b\u00e1rmilyen stepper konfigur\u00e1ci\u00f3s szakasz defini\u00e1lva van): live_position : A nyomtat\u00f3fej k\u00e9rt poz\u00edci\u00f3ja az aktu\u00e1lis id\u0151re interpol\u00e1lva. live_velocity : A nyomtat\u00f3fej k\u00e9rt sebess\u00e9ge (mm/sec-ben) az aktu\u00e1lis id\u0151pontban. live_extruder_velocity : A k\u00e9rt extruder sebess\u00e9g (mm/sec-ben) az aktu\u00e1lis id\u0151pontban. output_pin \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a output_pin some_name objektumokban \u00e9rhet\u0151k el: value : A SET_PIN paranccsal be\u00e1ll\u00edtott \"value\" a t\u0171 \u00e9rt\u00e9ke. palette2 \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a palette2 objektumban \u00e9rhet\u0151k el: ping : Az utols\u00f3 jelentett Palette 2 ping \u00f6sszege sz\u00e1zal\u00e9kban. remaining_load_length : A Palette 2 nyomtat\u00e1s ind\u00edt\u00e1sakor ez lesz a nyomtat\u00f3fejbe t\u00f6ltend\u0151 nyomtat\u00f3sz\u00e1l mennyis\u00e9ge. is_splicing : True, ha a Palette 2 nyomtat\u00f3sz\u00e1lat adagol. pause_resume \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a pause_resume objektumban \u00e9rhet\u0151k el: is_paused : True, ha egy PAUSE parancsot hajtottak v\u00e9gre a megfelel\u0151 RESUME parancs n\u00e9lk\u00fcl. print_stats \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a print_stats objektumban \u00e9rhet\u0151k el (ez az objektum automatikusan el\u00e9rhet\u0151, ha a virtual_sdcard config szakasz defini\u00e1lva van): filename , total_duration , print_duration , filament_used , state , message : Becs\u00fclt inform\u00e1ci\u00f3 az aktu\u00e1lis nyomtat\u00e1sr\u00f3l, ha egy virtual_sdcard nyomtat\u00e1s akt\u00edv. info.total_layer : Az utols\u00f3 SET_PRINT_STATS_INFO TOTAL_LAYER=<value> G-k\u00f3d\u00fa parancs. info.current_layer : Az aktu\u00e1lis r\u00e9teg \u00e9rt\u00e9ke az utols\u00f3 SET_PRINT_STATS_INFO CURRENT_LAYER=<value> G-k\u00f3d\u00fa parancs. probe \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a szonda objektumban \u00e9rhet\u0151k el (ez az objektum akkor is el\u00e9rhet\u0151, ha egy bltouch konfigur\u00e1ci\u00f3s szakasz van defini\u00e1lva): last_query : True \u00e9rt\u00e9ket ad vissza, ha a szond\u00e1t az utols\u00f3 QUERY_PROBE parancs sor\u00e1n \"triggered\" -k\u00e9nt jelentett\u00e9k. Megjegyz\u00e9s: ha ezt egy makr\u00f3ban haszn\u00e1ljuk, a sablon b\u0151v\u00edt\u00e9si sorrendje miatt a QUERY_PROBE parancsot akkor ezt a hivatkoz\u00e1st tartalmaz\u00f3 makr\u00f3 el\u0151tt kell lefuttatni. last_z_result : Az utols\u00f3 PROBE parancs Z eredm\u00e9ny\u00e9nek \u00e9rt\u00e9k\u00e9t adja vissza. Figyelem, ha ezt egy makr\u00f3ban haszn\u00e1ljuk, a sablon b\u0151v\u00edt\u00e9si sorrendje miatt a PROBE (vagy hasonl\u00f3) parancsot akkor ezt a hivatkoz\u00e1st tartalmaz\u00f3 makr\u00f3 el\u0151tt kell lefuttatni. quad_gantry_level \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a quad_gantry_level objektumban \u00e9rhet\u0151k el (ez az objektum akkor \u00e9rhet\u0151 el, ha a quad_gantry_level defini\u00e1lva van): applied : True, ha a port\u00e1l szintez\u00e9si folyamata lefutott \u00e9s sikeresen befejez\u0151d\u00f6tt. query_endstops \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a query_endstops objektumban \u00e9rhet\u0151k el (ez az objektum akkor \u00e9rhet\u0151 el, ha b\u00e1rmilyen v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 defini\u00e1lva van): last_query[\"<endstop>\"] : True \u00e9rt\u00e9ket ad, ha az adott v\u00e9g\u00e1ll\u00e1skapcsol\u00f3t az utols\u00f3 QUERY_ENDSTOP parancs sor\u00e1n \"triggered\" -k\u00e9nt jelentett\u00e9k. Megjegyz\u00e9s: ha ezt egy makr\u00f3ban haszn\u00e1ljuk, a sablon b\u0151v\u00edt\u00e9si sorrendje miatt a QUERY_ENDSTOP parancsot akkor ezt a hivatkoz\u00e1st tartalmaz\u00f3 makr\u00f3 el\u0151tt kell lefuttatni. servo \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a szerv\u00f3 some_name objektumokban \u00e9rhet\u0151k el: printer[\"servo <config_name>\"].value : A szerv\u00f3hoz tartoz\u00f3 PWM t\u0171 utols\u00f3 be\u00e1ll\u00edt\u00e1sa (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9k). system_stats \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a system_stats objektumban \u00e9rhet\u0151k el (ez az objektum mindig el\u00e9rhet\u0151): sysload , cputime , memavail : Inform\u00e1ci\u00f3 a gazdag\u00e9p oper\u00e1ci\u00f3s rendszer\u00e9r\u0151l \u00e9s a folyamatok terhel\u00e9s\u00e9r\u0151l. h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151k \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a k\u00f6vetkez\u0151 dokumentumban tal\u00e1lhat\u00f3k bme280 config_section_name , htu21d config_section_name , lm75 config_section_name , \u00e9s temperature_host config_section_name objektumok: temperature : Az \u00e9rz\u00e9kel\u0151t\u0151l utolj\u00e1ra kapott h\u0151m\u00e9rs\u00e9klet. humidity , pressure , gas : Az \u00e9rz\u00e9kel\u0151t\u0151l utolj\u00e1ra kapott \u00e9rt\u00e9kek (csak a bme280, htu21d \u00e9s lm75 \u00e9rz\u00e9kel\u0151k eset\u00e9ben). temperature_fan \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a temperature_fan some_name objektumokban \u00e9rhet\u0151k el: temperature : Az \u00e9rz\u00e9kel\u0151t\u0151l utolj\u00e1ra kapott h\u0151m\u00e9rs\u00e9klet. target : A ventil\u00e1tor c\u00e9lh\u0151m\u00e9rs\u00e9klete. temperature_sensor \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a temperature_sensor some_name objektumokban \u00e9rhet\u0151k el: temperature : Az \u00e9rz\u00e9kel\u0151t\u0151l utolj\u00e1ra kapott h\u0151m\u00e9rs\u00e9klet. measured_min_temp , measured_max_temp : Az \u00e9rz\u00e9kel\u0151 \u00e1ltal a Klipper gazdag\u00e9p szoftver utols\u00f3 \u00fajraind\u00edt\u00e1sa \u00f3ta m\u00e9rt legalacsonyabb \u00e9s legmagasabb h\u0151m\u00e9rs\u00e9klet. tmc motorvez\u00e9rl\u0151k \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a TMC l\u00e9ptet\u0151 motorvez\u00e9rl\u0151k objektumban \u00e9rhet\u0151k el (pl. [tmc2208 stepper_x] ): mcu_phase_offset : A mikrokontroller l\u00e9ptet\u0151 poz\u00edci\u00f3ja, amely megfelel a meghajt\u00f3 \"nulla\" f\u00e1zis\u00e1nak. Ez a mez\u0151 lehet nulla, ha a f\u00e1ziseltol\u00e1s nem ismert. phase_offset_position : A vezet\u0151 \"nulladik\" f\u00e1zis\u00e1nak megfelel\u0151 \"parancsolt poz\u00edci\u00f3\". Ez a mez\u0151 lehet nulla, ha a f\u00e1ziseltol\u00e1s nem ismert. drv_status : A legut\u00f3bbi motorvez\u00e9rl\u0151 \u00e1llapotlek\u00e9rdez\u00e9s eredm\u00e9nyei. (Csak a nem nulla mez\u0151k ker\u00fclnek jelent\u00e9sre.) Ez a mez\u0151 nulla lesz, ha a motorvez\u00e9rl\u0151 nincs enged\u00e9lyezve (\u00e9s \u00edgy nem ker\u00fcl rendszeresen lek\u00e9rdez\u00e9sre). run_current : Az aktu\u00e1lisan be\u00e1ll\u00edtott m\u0171k\u00f6d\u00e9si \u00e1ram. hold_current : Az aktu\u00e1lisan be\u00e1ll\u00edtott tart\u00f3\u00e1ram. toolhead \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a toolhead objektumban \u00e9rhet\u0151k el (ez az objektum mindig el\u00e9rhet\u0151): position : A nyomtat\u00f3fej utols\u00f3 parancsolt poz\u00edci\u00f3ja a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1ta rendszerhez k\u00e9pest. Lehet\u0151s\u00e9g van ennek a poz\u00edci\u00f3nak az X, Y, Z \u00e9s az E, komponens\u00e9hez hozz\u00e1f\u00e9rni (pl. position.x ). extruder : A jelenleg akt\u00edv extruder neve. P\u00e9ld\u00e1ul egy makr\u00f3ban haszn\u00e1lhatjuk a printer[printer.toolhead.extruder].target parancsot, hogy megkapjuk az aktu\u00e1lis extruder c\u00e9lh\u0151m\u00e9rs\u00e9klet\u00e9t. homed_axes : Az aktu\u00e1lisan \"homed\" \u00e1llapotban l\u00e9v\u0151nek tekintett cartesian tengelyek. Ez egy karakterl\u00e1nc, amely egy vagy t\u00f6bb \"X\", \"Y\", \"Z\" \u00e9rt\u00e9ket tartalmaz. axis_minimum , axis_maximum : A tengely mozg\u00e1s\u00e1nak hat\u00e1rai (mm) a kezd\u0151pont felv\u00e9tel ut\u00e1n. Lehet\u0151s\u00e9g van e hat\u00e1r\u00e9rt\u00e9k X, Y, Z \u00f6sszetev\u0151inek el\u00e9r\u00e9s\u00e9re (pl. axis_minimum.x , axis_maximum.z ). A Delta nyomtat\u00f3k eset\u00e9ben a cone_start_z a maxim\u00e1lis sugarakn\u00e1l m\u00e9rt maxim\u00e1lis Z magass\u00e1g ( printer.toolhead.cone_start_z ). max_velocity , max_accel , max_accel_to_decel , square_corner_velocity : Az aktu\u00e1lisan \u00e9rv\u00e9nyben l\u00e9v\u0151 nyomtat\u00e1si korl\u00e1tok. Ez elt\u00e9rhet a konfigur\u00e1ci\u00f3s f\u00e1jl be\u00e1ll\u00edt\u00e1sait\u00f3l, ha a SET_VELOCITY_LIMIT (vagy M204 ) parancs megv\u00e1ltoztatja azokat haszn\u00e1lat k\u00f6zben. stalls : Az \u00f6sszes alkalom sz\u00e1ma (az utols\u00f3 \u00fajraind\u00edt\u00e1s \u00f3ta), amikor a nyomtat\u00f3t sz\u00fcneteltetni kellett, mert a nyomtat\u00f3fej gyorsabban mozgott, mint ah\u00e1ny mozdulatot a G-k\u00f3d bemenetr\u0151l be lehetett olvasni. dual_carriage \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a dual_carriage alatt \u00e9rhet\u0151ek el egy hybrid_corexy vagy hybrid_corexz g\u00e9p eset\u00e9ben mode : Az aktu\u00e1lis \u00fczemm\u00f3d. A lehets\u00e9ges \u00e9rt\u00e9kek: \"FULL_CONTROL\" active_carriage : Az aktu\u00e1lis akt\u00edv kocsi. Lehets\u00e9ges \u00e9rt\u00e9kek: \"CARRIAGE_0\", \"CARRIAGE_1\" virtual_sdcard \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a virtual_sdcard objektumban \u00e9rhet\u0151k el: is_active : True \u00e9rt\u00e9ket ad, ha a f\u00e1jlb\u00f3l val\u00f3 nyomtat\u00e1s akt\u00edv. progressz : A nyomtat\u00e1s aktu\u00e1lis el\u0151rehalad\u00e1s\u00e1nak becsl\u00e9se (a f\u00e1jlm\u00e9ret \u00e9s a f\u00e1jl poz\u00edci\u00f3ja alapj\u00e1n). file_path : Az aktu\u00e1lisan bet\u00f6lt\u00f6tt f\u00e1jl teljes el\u00e9r\u00e9si \u00fatja. file_position : Az akt\u00edv nyomtat\u00e1s aktu\u00e1lis poz\u00edci\u00f3ja (b\u00e1jtokban). file_size : Az aktu\u00e1lisan bet\u00f6lt\u00f6tt f\u00e1jl m\u00e9rete (b\u00e1jtokban). webhooks \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a webhooks objektumban \u00e9rhet\u0151k el (ez az objektum mindig el\u00e9rhet\u0151): state : A Klipper aktu\u00e1lis \u00e1llapot\u00e1t jelz\u0151 karakterl\u00e1ncot adja vissza. A lehets\u00e9ges \u00e9rt\u00e9kek: \"ready\", \"startup\", \"shutdown\", \"error\". state_message : Egy ember \u00e1ltal olvashat\u00f3 karakterl\u00e1nc, amely tov\u00e1bbi kontextust ad az aktu\u00e1lis Klipper \u00e1llapotr\u00f3l. z_thermal_adjust \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a z_thermal_adjust parancsal \u00e9rhet\u0151k el (ez a parancs akkor \u00e9rhet\u0151 el, ha a z_thermal_adjust defini\u00e1lva van). enabled : True \u00e9rt\u00e9ket ad vissza, ha a be\u00e1ll\u00edt\u00e1s enged\u00e9lyezve van. temperature : A meghat\u00e1rozott \u00e9rz\u00e9kel\u0151 aktu\u00e1lis (sim\u00edtott) h\u0151m\u00e9rs\u00e9klete. [\u00b0C] measured_min_temp : Minim\u00e1lis m\u00e9rt h\u0151m\u00e9rs\u00e9klet. [\u00b0C] measured_max_temp : Maxim\u00e1lis m\u00e9rt h\u0151m\u00e9rs\u00e9klet. [\u00b0C] current_z_adjust : Utols\u00f3 sz\u00e1m\u00edtott Z-be\u00e1ll\u00edt\u00e1s [mm]. z_adjust_ref_temperature : A Z kisz\u00e1m\u00edt\u00e1s\u00e1hoz haszn\u00e1lt aktu\u00e1lis referencia-h\u0151m\u00e9rs\u00e9klet current_z_adjust [\u00b0C]. z_tilt \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a z_tilt objektumban \u00e9rhet\u0151k el (ez az objektum akkor \u00e9rhet\u0151 el, ha a z_tilt defini\u00e1lva van): applied : True, ha a Z v\u00e9g\u00e1ll\u00e1s kiegyenl\u00edt\u00e9si folyamat lefutott \u00e9s sikeresen befejez\u0151d\u00f6tt.","title":"\u00c1llapot referencia"},{"location":"Status_Reference.html#allapot-referencia","text":"Ez a dokumentum a Klipper makr\u00f3k , megjelen\u00edt\u00e9si mez\u0151k \u00e9s az API Szerver seg\u00edts\u00e9g\u00e9vel el\u00e9rhet\u0151 nyomtat\u00f3 \u00e1llapotinform\u00e1ci\u00f3k referenci\u00e1ja. Az ebben a dokumentumban szerepl\u0151 mez\u0151k v\u00e1ltozhatnak. Ha egy attrib\u00fatumot haszn\u00e1l, a Klipper szoftver friss\u00edt\u00e9sekor mindenk\u00e9ppen n\u00e9zze \u00e1t a Konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00e1sok dokumentumot .","title":"\u00c1llapot referencia"},{"location":"Status_Reference.html#angle","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k az angle some_name objektumban \u00e9rhet\u0151k el: temperature : A tle5012b m\u00e1gneses hall-\u00e9rz\u00e9kel\u0151 utols\u00f3 h\u0151m\u00e9rs\u00e9kleti \u00e9rt\u00e9ke (Celsiusban). Ez az \u00e9rt\u00e9k csak akkor \u00e9rhet\u0151 el, ha a sz\u00f6g\u00e9rz\u00e9kel\u0151 egy tle5012b chip, \u00e9s ha a m\u00e9r\u00e9sek folyamatban vannak (ellenkez\u0151 esetben None ).","title":"angle"},{"location":"Status_Reference.html#bed_mesh","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a bed_mesh objektumban \u00e9rhet\u0151k el: profile_name , mesh_min , mesh_max , probed_matrix , mesh_matrix : Az aktu\u00e1lisan akt\u00edv bed_mesh-re vonatkoz\u00f3 inform\u00e1ci\u00f3k. profiles : A BED_MESH_PROFILE haszn\u00e1lat\u00e1val be\u00e1ll\u00edtott, jelenleg defini\u00e1lt profilok halmaza.","title":"bed_mesh"},{"location":"Status_Reference.html#bed_screws","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a Config_Reference.md#bed_screws objektumban tal\u00e1lhat\u00f3k: is_active : True \u00e9rt\u00e9ket ad vissza, ha a t\u00e1rgyasztal csavarok be\u00e1ll\u00edt\u00e1si eszk\u00f6ze jelenleg akt\u00edv. state : A t\u00e1rgyasztal csavarok be\u00e1ll\u00edt\u00e1si szersz\u00e1m\u00e1nak \u00e1llapota. A k\u00f6vetkez\u0151 karakterl\u00e1ncok egyike: \"adjust\", \"fine\". current_screw : Az aktu\u00e1lisan be\u00e1ll\u00edtott csavar indexe. accepted_screws : Az elfogadott csavarok sz\u00e1ma.","title":"bed_screws"},{"location":"Status_Reference.html#configfile","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a configfile objektumban tal\u00e1lhat\u00f3k (ez az objektum mindig el\u00e9rhet\u0151): settings.<section>.<option> : Visszaadja az adott konfigur\u00e1ci\u00f3s f\u00e1jl be\u00e1ll\u00edt\u00e1s\u00e1t (vagy alap\u00e9rtelmezett \u00e9rt\u00e9k\u00e9t) a szoftver utols\u00f3 ind\u00edt\u00e1sa vagy \u00fajraind\u00edt\u00e1sa sor\u00e1n. (A haszn\u00e1lat k\u00f6zben megv\u00e1ltoztatott be\u00e1ll\u00edt\u00e1sok nem jelennek meg itt.) config.<section>.<option> : Visszaadja az adott nyers konfigur\u00e1ci\u00f3s f\u00e1jl be\u00e1ll\u00edt\u00e1s\u00e1t, ahogyan azt a Klipper a legut\u00f3bbi szoftverind\u00edt\u00e1s vagy \u00fajraind\u00edt\u00e1s sor\u00e1n beolvasta. (A m\u0171k\u00f6d\u00e9s k\u00f6zben megv\u00e1ltoztatott be\u00e1ll\u00edt\u00e1sok nem jelennek meg itt.) Minden \u00e9rt\u00e9ket stringk\u00e9nt ad vissza. save_config_pending : True \u00e9rt\u00e9ket ad, ha vannak olyan friss\u00edt\u00e9sek, amelyeket a SAVE_CONFIG parancs a lemezen is meg\u0151rizhet. save_config_pending_items : Tartalmazza azokat a szakaszokat \u00e9s opci\u00f3kat, amelyeket megv\u00e1ltoztattak, \u00e9s amelyeket egy SAVE_CONFIG elmenthetne. figyelmeztet\u00e9sek : A konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sokkal kapcsolatos figyelmeztet\u00e9sek list\u00e1ja. A lista minden egyes bejegyz\u00e9se egy sz\u00f3t\u00e1r lesz, amely tartalmaz egy type \u00e9s egy message mez\u0151t (mindkett\u0151 karakterl\u00e1nc). A figyelmeztet\u00e9s t\u00edpus\u00e1t\u00f3l f\u00fcgg\u0151en tov\u00e1bbi mez\u0151k is rendelkez\u00e9sre \u00e1llhatnak.","title":"configfile"},{"location":"Status_Reference.html#display_status","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a display_status objektumban \u00e9rhet\u0151k el (ez az objektum automatikusan el\u00e9rhet\u0151, ha a kijelz\u0151 konfigur\u00e1ci\u00f3s szakasz defini\u00e1lva van): progress : A legut\u00f3bbi M73 G-k\u00f3d parancs progress \u00e9rt\u00e9ke (vagy virtual_sdcard.progress , ha nem \u00e9rkezett legut\u00f3bbi M73 ). message : Az utols\u00f3 M117 G-k\u00f3d\u00fa parancsban szerepl\u0151 \u00fczenet.","title":"display_status"},{"location":"Status_Reference.html#endstop_phase","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k az endstop_phase objektumban \u00e9rhet\u0151k el: last_home.<stepper name>.phase : A l\u00e9ptet\u0151motor f\u00e1zisa az utols\u00f3 kezd\u0151pont felv\u00e9teli k\u00eds\u00e9rlet v\u00e9g\u00e9n. last_home.<stepper name>.phases : A l\u00e9ptet\u0151motoron rendelkez\u00e9sre \u00e1ll\u00f3 f\u00e1zisok sz\u00e1ma. last_home.<stepper name>.mcu_position : A l\u00e9ptet\u0151motor poz\u00edci\u00f3ja (ahogyan azt a mikrokontroller k\u00f6veti) a legut\u00f3bbi kezd\u0151pont felv\u00e9teli k\u00eds\u00e9rlet v\u00e9g\u00e9n. A poz\u00edci\u00f3 az el\u0151remen\u0151 ir\u00e1nyban megtett l\u00e9p\u00e9sek sz\u00e1ma m\u00ednusz a mikrokontroller utols\u00f3 \u00fajraind\u00edt\u00e1sa \u00f3ta visszafel\u00e9 megtett l\u00e9p\u00e9sek sz\u00e1m\u00e1val.","title":"endstop_phase"},{"location":"Status_Reference.html#exclude_object","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k az exclude_object objektumban tal\u00e1lhat\u00f3k: objektumok : Az EXCLUDE_OBJECT_DEFINE parancs \u00e1ltal megadott ismert objektumok t\u00f6mbje. Ez ugyanaz az inform\u00e1ci\u00f3, amelyet az EXCLUDE_OBJECT VERBOSE=1 parancs szolg\u00e1ltat. A center \u00e9s polygon mez\u0151k csak akkor lesznek jelen, ha az eredeti EXCLUDE_OBJECT_DEFINE parancsban szerepelnek.\u00cdme egy JSON-minta: [ { \"polygon\": [ [ 156.25, 146.2511675 ], [ 156.25, 153.7488325 ], [ 163.75, 153.7488325 ], [ 163.75, 146.2511675 ] ], \"name\": \"CYLINDER_2_STL_ID_2_COPY_0\", \"center\": [ 160, 150 ] }, { \"polygon\": [ [ 146.25, 146.2511675 ], [ 146.25, 153.7488325 ], [ 153.75, 153.7488325 ], [ 153.75, 146.2511675 ] ], \"name\": \"CYLINDER_2_STL_ID_1_COPY_0\", \"center\": [ 150, 150 ] } ] excluded_objects : A kiz\u00e1rt objektumok neveit felsorol\u00f3 karakterl\u00e1ncok t\u00f6mbje. current_object : Az aktu\u00e1lisan nyomtatott objektum neve.","title":"exclude_object"},{"location":"Status_Reference.html#extruder_stepper","text":"Az al\u00e1bbi inform\u00e1ci\u00f3k az extruder_stepper objektumok (valamint az extruder objektumok) eset\u00e9ben \u00e1llnak rendelkez\u00e9sre: pressure_advance : Az aktu\u00e1lis nyom\u00e1s el\u0151tol\u00e1s \u00e9rt\u00e9k. smooth_time : Az aktu\u00e1lis nyom\u00e1s el\u0151tol\u00e1s\u00e1nak sim\u00edt\u00e1si ideje.","title":"extruder_stepper"},{"location":"Status_Reference.html#fan","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a ventil\u00e1tor , heater_fan some_name \u00e9s controller_fan some_name objektumokban \u00e9rhet\u0151k el: speed : A ventil\u00e1tor fordulatsz\u00e1ma lebeg\u0151\u00e9rt\u00e9kben 0.0 \u00e9s 1.0 k\u00f6z\u00f6tt. rpm : A ventil\u00e1tor m\u00e9rt fordulatsz\u00e1ma percenk\u00e9nti fordulatsz\u00e1mban, ha a ventil\u00e1tor rendelkezik tachometer_pin kimenettel.","title":"fan"},{"location":"Status_Reference.html#filament_switch_sensor","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a filament_switch_sensor some_name objektumokban \u00e9rhet\u0151k el: enabled : True \u00e9rt\u00e9ket ad vissza, ha a kapcsol\u00f3 enged\u00e9lyezve van. filament_detected : True \u00e9rt\u00e9ket ad ha az \u00e9rz\u00e9kel\u0151 kioldott \u00e1llapotban van.","title":"filament_switch_sensor"},{"location":"Status_Reference.html#filament_motion_sensor","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a filament_motion_sensor some_name objektumokban \u00e9rhet\u0151k el: enabled : True \u00e9rt\u00e9ket ad, ha a mozg\u00e1s\u00e9rz\u00e9kel\u0151 enged\u00e9lyezve van. filament_detected : True \u00e9rt\u00e9ket ad ha az \u00e9rz\u00e9kel\u0151 kioldott \u00e1llapotban van.","title":"filament_motion_sensor"},{"location":"Status_Reference.html#firmware_retraction","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a firmware_retraction objektumban tal\u00e1lhat\u00f3k: retract_length , retract_speed , unretract_extra_length , unretract_speed : A firmware_retraction modul aktu\u00e1lis be\u00e1ll\u00edt\u00e1sai. Ezek a be\u00e1ll\u00edt\u00e1sok elt\u00e9rhetnek a konfigur\u00e1ci\u00f3s \u00e1llom\u00e1nyt\u00f3l, ha a SET_RETRACTION parancs megv\u00e1ltoztatja \u0151ket.","title":"firmware_retraction"},{"location":"Status_Reference.html#gcode_macro","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a gcode_macro some_name objektumokban \u00e9rhet\u0151k el: <variable> : Egy gcode_macro v\u00e1ltoz\u00f3 aktu\u00e1lis \u00e9rt\u00e9ke.","title":"gcode_macro"},{"location":"Status_Reference.html#gcode_move","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a gcode_move objektumban \u00e9rhet\u0151k el (ez az objektum mindig el\u00e9rhet\u0151): gcode_position : A nyomtat\u00f3fej aktu\u00e1lis poz\u00edci\u00f3ja az aktu\u00e1lis G-k\u00f3d orig\u00f3hoz k\u00e9pest. Vagyis olyan poz\u00edci\u00f3k, amelyeket k\u00f6zvetlen\u00fcl egy G1 parancsnak k\u00fcldhet\u00fcnk. Lehet\u0151s\u00e9g van e poz\u00edci\u00f3 X, Y, Z \u00e9s az E, komponens\u00e9nek el\u00e9r\u00e9s\u00e9re (pl. gcode_position.x ). position : A nyomtat\u00f3fej utols\u00f3 kiadott poz\u00edci\u00f3ja a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1ta rendszerrel. Lehet\u0151s\u00e9g van ennek a poz\u00edci\u00f3nak az X, Y, Z \u00e9s az E, komponens\u00e9hez hozz\u00e1f\u00e9rni (pl. position.x ). homing_origin : A G-k\u00f3d koordin\u00e1ta rendszer orig\u00f3ja (a config f\u00e1jlban megadott koordin\u00e1ta rendszerhez k\u00e9pest), amelyet a G28 parancs ut\u00e1n haszn\u00e1lni kell. A SET_GCODE_OFFSET parancs megv\u00e1ltoztathatja ezt a poz\u00edci\u00f3t. Lehet\u0151s\u00e9g van ennek a poz\u00edci\u00f3nak az X, Y \u00e9s Z komponens\u00e9hez hozz\u00e1f\u00e9rni (pl. homing_origin.x ). speed : Az utols\u00f3, G1 parancsban be\u00e1ll\u00edtott sebess\u00e9g (mm/sec-ben). speed_factor : Az M220 parancs \u00e1ltal be\u00e1ll\u00edtott \"sebess\u00e9gt\u00e9nyez\u0151 fel\u00fclb\u00edr\u00e1l\u00e1sa\". Ez egy lebeg\u0151pontos \u00e9rt\u00e9k, \u00edgy 1.0 azt jelenti, hogy nincs fel\u00fclb\u00edr\u00e1lat, \u00e9s p\u00e9ld\u00e1ul a 2.0 megdupl\u00e1zza a k\u00e9rt sebess\u00e9get. extrude_factor : Az M221 parancs \u00e1ltal be\u00e1ll\u00edtott \"extrude factor override\". Ez egy lebeg\u0151pontos \u00e9rt\u00e9k, \u00edgy 1.0 azt jelenti, hogy nincs fel\u00fclb\u00edr\u00e1lat, \u00e9s p\u00e9ld\u00e1ul a 2.0 megdupl\u00e1zza a k\u00e9rt extrud\u00e1l\u00e1sokat. absolute_coordinates : True \u00e9rt\u00e9ket ad, ha a G90 abszol\u00fat koordin\u00e1ta m\u00f3dban van, vagy False \u00e9rt\u00e9ket, ha a G91 relat\u00edv m\u00f3dban van. absolute_extrude : True \u00e9rt\u00e9ket ad, ha az M82 abszol\u00fat extrude m\u00f3dban van, vagy False \u00e9rt\u00e9ket, ha az M83 relat\u00edv m\u00f3dban van.","title":"gcode_move"},{"location":"Status_Reference.html#hall_filament_width_sensor","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a hall_filament_width_sensor objektumban \u00e9rhet\u0151k el: is_active : True \u00e9rt\u00e9ket ad, ha az \u00e9rz\u00e9kel\u0151 jelenleg akt\u00edv. Diameter : Az \u00e9rz\u00e9kel\u0151 utols\u00f3 leolvas\u00e1sa mm-ben. Raw : Az \u00e9rz\u00e9kel\u0151 utols\u00f3 nyers ADC-olvas\u00e1sa.","title":"hall_filament_width_sensor"},{"location":"Status_Reference.html#heater","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k az olyan f\u0171t\u0151elemekhez \u00e1llnak rendelkez\u00e9sre, mint az extruder , heater_bed \u00e9s heater_generic : temperature : Az adott f\u0171t\u0151berendez\u00e9s legut\u00f3bb jelentett h\u0151m\u00e9rs\u00e9klete (Celsiusban, lebeg\u0151\u00e9rt\u00e9kben). target : Az adott f\u0171t\u0151berendez\u00e9s aktu\u00e1lis c\u00e9lh\u0151m\u00e9rs\u00e9klete (Celsiusban, lebeg\u0151\u00e9rt\u00e9kben). power : A f\u0171t\u0151testhez tartoz\u00f3 PWM-t\u0171 utols\u00f3 \u00e9rt\u00e9ke (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9k). can_extrude : Ha az extruder tud extrud\u00e1lni ( min_extrude_temp hat\u00e1rozza meg), csak az extruder eset\u00e9ben el\u00e9rhet\u0151","title":"heater"},{"location":"Status_Reference.html#heaters","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a heaters objektumban \u00e9rhet\u0151k el (ez az objektum akkor \u00e9rhet\u0151 el, ha b\u00e1rmilyen f\u0171t\u0151berendez\u00e9s defini\u00e1lva van): available_heaters : Visszaadja az \u00f6sszes jelenleg el\u00e9rhet\u0151 f\u0171t\u0151berendez\u00e9s list\u00e1j\u00e1t a teljes config szekci\u00f3 nev\u00e9vel, pl. [\"extruder\", \"heater_bed\", \"heater_generic my_custom_heater\"] . available_sensors : Visszaadja az \u00f6sszes jelenleg el\u00e9rhet\u0151 h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151 list\u00e1j\u00e1t a teljes config szekci\u00f3 nev\u00e9vel, pl. [\"extruder\", \"heater_bed\", \"heater_generic my_custom_heater\", \"temperature_sensor electronics_temp\"] .","title":"heaters"},{"location":"Status_Reference.html#idle_timeout","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k az idle_timeout objektumban \u00e9rhet\u0151k el (ez az objektum mindig el\u00e9rhet\u0151): state : A nyomtat\u00f3 aktu\u00e1lis \u00e1llapota, amelyet az idle_timeout modul k\u00f6vet. A k\u00f6vetkez\u0151 karakterl\u00e1ncok egyike: \"Idle\", \"Printing\", \"Ready\". printing_time : Az az id\u0151 (m\u00e1sodpercben), am\u00edg a nyomtat\u00f3 \"nyomtat\u00e1s\" \u00e1llapotban volt (ahogyan azt az idle_timeout modul k\u00f6veti).","title":"idle_timeout"},{"location":"Status_Reference.html#led","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k \u00e1llnak rendelkez\u00e9sre minden egyes [led led_name] , [neopixel led_name eset\u00e9ben, [dotstar led_name] , [pca9533 led_name] , \u00e9s [pca9632 led_name] a nyomtat\u00f3ban meghat\u00e1rozott printer.cfg f\u00e1jlban: color_data : A l\u00e1ncban l\u00e9v\u0151 ledek RGBW \u00e9rt\u00e9keit tartalmaz\u00f3 sz\u00ednlist\u00e1k list\u00e1ja. Minden \u00e9rt\u00e9ket 0,0 \u00e9s 1,0 k\u00f6z\u00f6tti lebeg\u0151\u00e9rt\u00e9kben \u00e1br\u00e1zolunk. Minden sz\u00ednlista 4 elemet tartalmaz (piros, z\u00f6ld, k\u00e9k, feh\u00e9r), m\u00e9g akkor is, ha az alatta l\u00e9v\u0151 LED kevesebb sz\u00edncsatorn\u00e1t t\u00e1mogat. P\u00e9ld\u00e1ul a l\u00e1nc m\u00e1sodik neopixel\u00e9nek k\u00e9k \u00e9rt\u00e9ke (a sz\u00ednlista 3. eleme) a printer[\"neopixel <config_name>\"].color_data[1][2] c\u00edmen \u00e9rhet\u0151 el.","title":"led"},{"location":"Status_Reference.html#manual_probe","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a manual_probe objektumban tal\u00e1lhat\u00f3k: is_active : True \u00e9rt\u00e9ket ad vissza, ha egy k\u00e9zi m\u00e9r\u00e9si seg\u00e9dszkript jelenleg akt\u00edv. z_position : A f\u00fav\u00f3ka aktu\u00e1lis magass\u00e1ga (ahogyan azt a nyomtat\u00f3 jelenleg \u00e9rtelmezi). z_position_lower : Az utols\u00f3 m\u00e9r\u00e9s k\u00eds\u00e9rlet \u00e9ppen az aktu\u00e1lis magass\u00e1gn\u00e1l alacsonyabb. z_position_upper : Az utols\u00f3 m\u00e9r\u00e9s k\u00eds\u00e9rlet \u00e9ppen nagyobb, mint az aktu\u00e1lis magass\u00e1g.","title":"manual_probe"},{"location":"Status_Reference.html#mcu","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k az mcu \u00e9s mcu some_name objektumokban \u00e9rhet\u0151k el: mcu_version : A mikrokontroller \u00e1ltal jelentett Klipper k\u00f3d verzi\u00f3ja. mcu_build_versions : A mikrokontroller k\u00f3dj\u00e1nak gener\u00e1l\u00e1s\u00e1hoz haszn\u00e1lt \u00e9p\u00edt\u0151eszk\u00f6z\u00f6kre vonatkoz\u00f3 inform\u00e1ci\u00f3k (a mikrokontroller \u00e1ltal jelentett m\u00f3don). mcu_constants.<constant_name> : A mikrokontroller \u00e1ltal jelentett ford\u00edt\u00e1si idej\u0171 konstansok. A rendelkez\u00e9sre \u00e1ll\u00f3 konstansok mikrokontroller architekt\u00far\u00e1nk\u00e9nt \u00e9s k\u00f3drev\u00edzi\u00f3nk\u00e9nt elt\u00e9r\u0151ek lehetnek. last_stats.<statistics_name> : Statisztikai inform\u00e1ci\u00f3k a mikrokontroller kapcsolatr\u00f3l.","title":"mcu"},{"location":"Status_Reference.html#motion_report","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a motion_report objektumban \u00e9rhet\u0151k el (ez az objektum automatikusan el\u00e9rhet\u0151, ha b\u00e1rmilyen stepper konfigur\u00e1ci\u00f3s szakasz defini\u00e1lva van): live_position : A nyomtat\u00f3fej k\u00e9rt poz\u00edci\u00f3ja az aktu\u00e1lis id\u0151re interpol\u00e1lva. live_velocity : A nyomtat\u00f3fej k\u00e9rt sebess\u00e9ge (mm/sec-ben) az aktu\u00e1lis id\u0151pontban. live_extruder_velocity : A k\u00e9rt extruder sebess\u00e9g (mm/sec-ben) az aktu\u00e1lis id\u0151pontban.","title":"motion_report"},{"location":"Status_Reference.html#output_pin","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a output_pin some_name objektumokban \u00e9rhet\u0151k el: value : A SET_PIN paranccsal be\u00e1ll\u00edtott \"value\" a t\u0171 \u00e9rt\u00e9ke.","title":"output_pin"},{"location":"Status_Reference.html#palette2","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a palette2 objektumban \u00e9rhet\u0151k el: ping : Az utols\u00f3 jelentett Palette 2 ping \u00f6sszege sz\u00e1zal\u00e9kban. remaining_load_length : A Palette 2 nyomtat\u00e1s ind\u00edt\u00e1sakor ez lesz a nyomtat\u00f3fejbe t\u00f6ltend\u0151 nyomtat\u00f3sz\u00e1l mennyis\u00e9ge. is_splicing : True, ha a Palette 2 nyomtat\u00f3sz\u00e1lat adagol.","title":"palette2"},{"location":"Status_Reference.html#pause_resume","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a pause_resume objektumban \u00e9rhet\u0151k el: is_paused : True, ha egy PAUSE parancsot hajtottak v\u00e9gre a megfelel\u0151 RESUME parancs n\u00e9lk\u00fcl.","title":"pause_resume"},{"location":"Status_Reference.html#print_stats","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a print_stats objektumban \u00e9rhet\u0151k el (ez az objektum automatikusan el\u00e9rhet\u0151, ha a virtual_sdcard config szakasz defini\u00e1lva van): filename , total_duration , print_duration , filament_used , state , message : Becs\u00fclt inform\u00e1ci\u00f3 az aktu\u00e1lis nyomtat\u00e1sr\u00f3l, ha egy virtual_sdcard nyomtat\u00e1s akt\u00edv. info.total_layer : Az utols\u00f3 SET_PRINT_STATS_INFO TOTAL_LAYER=<value> G-k\u00f3d\u00fa parancs. info.current_layer : Az aktu\u00e1lis r\u00e9teg \u00e9rt\u00e9ke az utols\u00f3 SET_PRINT_STATS_INFO CURRENT_LAYER=<value> G-k\u00f3d\u00fa parancs.","title":"print_stats"},{"location":"Status_Reference.html#probe","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a szonda objektumban \u00e9rhet\u0151k el (ez az objektum akkor is el\u00e9rhet\u0151, ha egy bltouch konfigur\u00e1ci\u00f3s szakasz van defini\u00e1lva): last_query : True \u00e9rt\u00e9ket ad vissza, ha a szond\u00e1t az utols\u00f3 QUERY_PROBE parancs sor\u00e1n \"triggered\" -k\u00e9nt jelentett\u00e9k. Megjegyz\u00e9s: ha ezt egy makr\u00f3ban haszn\u00e1ljuk, a sablon b\u0151v\u00edt\u00e9si sorrendje miatt a QUERY_PROBE parancsot akkor ezt a hivatkoz\u00e1st tartalmaz\u00f3 makr\u00f3 el\u0151tt kell lefuttatni. last_z_result : Az utols\u00f3 PROBE parancs Z eredm\u00e9ny\u00e9nek \u00e9rt\u00e9k\u00e9t adja vissza. Figyelem, ha ezt egy makr\u00f3ban haszn\u00e1ljuk, a sablon b\u0151v\u00edt\u00e9si sorrendje miatt a PROBE (vagy hasonl\u00f3) parancsot akkor ezt a hivatkoz\u00e1st tartalmaz\u00f3 makr\u00f3 el\u0151tt kell lefuttatni.","title":"probe"},{"location":"Status_Reference.html#quad_gantry_level","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a quad_gantry_level objektumban \u00e9rhet\u0151k el (ez az objektum akkor \u00e9rhet\u0151 el, ha a quad_gantry_level defini\u00e1lva van): applied : True, ha a port\u00e1l szintez\u00e9si folyamata lefutott \u00e9s sikeresen befejez\u0151d\u00f6tt.","title":"quad_gantry_level"},{"location":"Status_Reference.html#query_endstops","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a query_endstops objektumban \u00e9rhet\u0151k el (ez az objektum akkor \u00e9rhet\u0151 el, ha b\u00e1rmilyen v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 defini\u00e1lva van): last_query[\"<endstop>\"] : True \u00e9rt\u00e9ket ad, ha az adott v\u00e9g\u00e1ll\u00e1skapcsol\u00f3t az utols\u00f3 QUERY_ENDSTOP parancs sor\u00e1n \"triggered\" -k\u00e9nt jelentett\u00e9k. Megjegyz\u00e9s: ha ezt egy makr\u00f3ban haszn\u00e1ljuk, a sablon b\u0151v\u00edt\u00e9si sorrendje miatt a QUERY_ENDSTOP parancsot akkor ezt a hivatkoz\u00e1st tartalmaz\u00f3 makr\u00f3 el\u0151tt kell lefuttatni.","title":"query_endstops"},{"location":"Status_Reference.html#servo","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a szerv\u00f3 some_name objektumokban \u00e9rhet\u0151k el: printer[\"servo <config_name>\"].value : A szerv\u00f3hoz tartoz\u00f3 PWM t\u0171 utols\u00f3 be\u00e1ll\u00edt\u00e1sa (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9k).","title":"servo"},{"location":"Status_Reference.html#system_stats","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a system_stats objektumban \u00e9rhet\u0151k el (ez az objektum mindig el\u00e9rhet\u0151): sysload , cputime , memavail : Inform\u00e1ci\u00f3 a gazdag\u00e9p oper\u00e1ci\u00f3s rendszer\u00e9r\u0151l \u00e9s a folyamatok terhel\u00e9s\u00e9r\u0151l.","title":"system_stats"},{"location":"Status_Reference.html#homerseklet-erzekelok","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a k\u00f6vetkez\u0151 dokumentumban tal\u00e1lhat\u00f3k bme280 config_section_name , htu21d config_section_name , lm75 config_section_name , \u00e9s temperature_host config_section_name objektumok: temperature : Az \u00e9rz\u00e9kel\u0151t\u0151l utolj\u00e1ra kapott h\u0151m\u00e9rs\u00e9klet. humidity , pressure , gas : Az \u00e9rz\u00e9kel\u0151t\u0151l utolj\u00e1ra kapott \u00e9rt\u00e9kek (csak a bme280, htu21d \u00e9s lm75 \u00e9rz\u00e9kel\u0151k eset\u00e9ben).","title":"h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151k"},{"location":"Status_Reference.html#temperature_fan","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a temperature_fan some_name objektumokban \u00e9rhet\u0151k el: temperature : Az \u00e9rz\u00e9kel\u0151t\u0151l utolj\u00e1ra kapott h\u0151m\u00e9rs\u00e9klet. target : A ventil\u00e1tor c\u00e9lh\u0151m\u00e9rs\u00e9klete.","title":"temperature_fan"},{"location":"Status_Reference.html#temperature_sensor","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a temperature_sensor some_name objektumokban \u00e9rhet\u0151k el: temperature : Az \u00e9rz\u00e9kel\u0151t\u0151l utolj\u00e1ra kapott h\u0151m\u00e9rs\u00e9klet. measured_min_temp , measured_max_temp : Az \u00e9rz\u00e9kel\u0151 \u00e1ltal a Klipper gazdag\u00e9p szoftver utols\u00f3 \u00fajraind\u00edt\u00e1sa \u00f3ta m\u00e9rt legalacsonyabb \u00e9s legmagasabb h\u0151m\u00e9rs\u00e9klet.","title":"temperature_sensor"},{"location":"Status_Reference.html#tmc-motorvezerlok","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a TMC l\u00e9ptet\u0151 motorvez\u00e9rl\u0151k objektumban \u00e9rhet\u0151k el (pl. [tmc2208 stepper_x] ): mcu_phase_offset : A mikrokontroller l\u00e9ptet\u0151 poz\u00edci\u00f3ja, amely megfelel a meghajt\u00f3 \"nulla\" f\u00e1zis\u00e1nak. Ez a mez\u0151 lehet nulla, ha a f\u00e1ziseltol\u00e1s nem ismert. phase_offset_position : A vezet\u0151 \"nulladik\" f\u00e1zis\u00e1nak megfelel\u0151 \"parancsolt poz\u00edci\u00f3\". Ez a mez\u0151 lehet nulla, ha a f\u00e1ziseltol\u00e1s nem ismert. drv_status : A legut\u00f3bbi motorvez\u00e9rl\u0151 \u00e1llapotlek\u00e9rdez\u00e9s eredm\u00e9nyei. (Csak a nem nulla mez\u0151k ker\u00fclnek jelent\u00e9sre.) Ez a mez\u0151 nulla lesz, ha a motorvez\u00e9rl\u0151 nincs enged\u00e9lyezve (\u00e9s \u00edgy nem ker\u00fcl rendszeresen lek\u00e9rdez\u00e9sre). run_current : Az aktu\u00e1lisan be\u00e1ll\u00edtott m\u0171k\u00f6d\u00e9si \u00e1ram. hold_current : Az aktu\u00e1lisan be\u00e1ll\u00edtott tart\u00f3\u00e1ram.","title":"tmc motorvez\u00e9rl\u0151k"},{"location":"Status_Reference.html#toolhead","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a toolhead objektumban \u00e9rhet\u0151k el (ez az objektum mindig el\u00e9rhet\u0151): position : A nyomtat\u00f3fej utols\u00f3 parancsolt poz\u00edci\u00f3ja a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1ta rendszerhez k\u00e9pest. Lehet\u0151s\u00e9g van ennek a poz\u00edci\u00f3nak az X, Y, Z \u00e9s az E, komponens\u00e9hez hozz\u00e1f\u00e9rni (pl. position.x ). extruder : A jelenleg akt\u00edv extruder neve. P\u00e9ld\u00e1ul egy makr\u00f3ban haszn\u00e1lhatjuk a printer[printer.toolhead.extruder].target parancsot, hogy megkapjuk az aktu\u00e1lis extruder c\u00e9lh\u0151m\u00e9rs\u00e9klet\u00e9t. homed_axes : Az aktu\u00e1lisan \"homed\" \u00e1llapotban l\u00e9v\u0151nek tekintett cartesian tengelyek. Ez egy karakterl\u00e1nc, amely egy vagy t\u00f6bb \"X\", \"Y\", \"Z\" \u00e9rt\u00e9ket tartalmaz. axis_minimum , axis_maximum : A tengely mozg\u00e1s\u00e1nak hat\u00e1rai (mm) a kezd\u0151pont felv\u00e9tel ut\u00e1n. Lehet\u0151s\u00e9g van e hat\u00e1r\u00e9rt\u00e9k X, Y, Z \u00f6sszetev\u0151inek el\u00e9r\u00e9s\u00e9re (pl. axis_minimum.x , axis_maximum.z ). A Delta nyomtat\u00f3k eset\u00e9ben a cone_start_z a maxim\u00e1lis sugarakn\u00e1l m\u00e9rt maxim\u00e1lis Z magass\u00e1g ( printer.toolhead.cone_start_z ). max_velocity , max_accel , max_accel_to_decel , square_corner_velocity : Az aktu\u00e1lisan \u00e9rv\u00e9nyben l\u00e9v\u0151 nyomtat\u00e1si korl\u00e1tok. Ez elt\u00e9rhet a konfigur\u00e1ci\u00f3s f\u00e1jl be\u00e1ll\u00edt\u00e1sait\u00f3l, ha a SET_VELOCITY_LIMIT (vagy M204 ) parancs megv\u00e1ltoztatja azokat haszn\u00e1lat k\u00f6zben. stalls : Az \u00f6sszes alkalom sz\u00e1ma (az utols\u00f3 \u00fajraind\u00edt\u00e1s \u00f3ta), amikor a nyomtat\u00f3t sz\u00fcneteltetni kellett, mert a nyomtat\u00f3fej gyorsabban mozgott, mint ah\u00e1ny mozdulatot a G-k\u00f3d bemenetr\u0151l be lehetett olvasni.","title":"toolhead"},{"location":"Status_Reference.html#dual_carriage","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a dual_carriage alatt \u00e9rhet\u0151ek el egy hybrid_corexy vagy hybrid_corexz g\u00e9p eset\u00e9ben mode : Az aktu\u00e1lis \u00fczemm\u00f3d. A lehets\u00e9ges \u00e9rt\u00e9kek: \"FULL_CONTROL\" active_carriage : Az aktu\u00e1lis akt\u00edv kocsi. Lehets\u00e9ges \u00e9rt\u00e9kek: \"CARRIAGE_0\", \"CARRIAGE_1\"","title":"dual_carriage"},{"location":"Status_Reference.html#virtual_sdcard","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a virtual_sdcard objektumban \u00e9rhet\u0151k el: is_active : True \u00e9rt\u00e9ket ad, ha a f\u00e1jlb\u00f3l val\u00f3 nyomtat\u00e1s akt\u00edv. progressz : A nyomtat\u00e1s aktu\u00e1lis el\u0151rehalad\u00e1s\u00e1nak becsl\u00e9se (a f\u00e1jlm\u00e9ret \u00e9s a f\u00e1jl poz\u00edci\u00f3ja alapj\u00e1n). file_path : Az aktu\u00e1lisan bet\u00f6lt\u00f6tt f\u00e1jl teljes el\u00e9r\u00e9si \u00fatja. file_position : Az akt\u00edv nyomtat\u00e1s aktu\u00e1lis poz\u00edci\u00f3ja (b\u00e1jtokban). file_size : Az aktu\u00e1lisan bet\u00f6lt\u00f6tt f\u00e1jl m\u00e9rete (b\u00e1jtokban).","title":"virtual_sdcard"},{"location":"Status_Reference.html#webhooks","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a webhooks objektumban \u00e9rhet\u0151k el (ez az objektum mindig el\u00e9rhet\u0151): state : A Klipper aktu\u00e1lis \u00e1llapot\u00e1t jelz\u0151 karakterl\u00e1ncot adja vissza. A lehets\u00e9ges \u00e9rt\u00e9kek: \"ready\", \"startup\", \"shutdown\", \"error\". state_message : Egy ember \u00e1ltal olvashat\u00f3 karakterl\u00e1nc, amely tov\u00e1bbi kontextust ad az aktu\u00e1lis Klipper \u00e1llapotr\u00f3l.","title":"webhooks"},{"location":"Status_Reference.html#z_thermal_adjust","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a z_thermal_adjust parancsal \u00e9rhet\u0151k el (ez a parancs akkor \u00e9rhet\u0151 el, ha a z_thermal_adjust defini\u00e1lva van). enabled : True \u00e9rt\u00e9ket ad vissza, ha a be\u00e1ll\u00edt\u00e1s enged\u00e9lyezve van. temperature : A meghat\u00e1rozott \u00e9rz\u00e9kel\u0151 aktu\u00e1lis (sim\u00edtott) h\u0151m\u00e9rs\u00e9klete. [\u00b0C] measured_min_temp : Minim\u00e1lis m\u00e9rt h\u0151m\u00e9rs\u00e9klet. [\u00b0C] measured_max_temp : Maxim\u00e1lis m\u00e9rt h\u0151m\u00e9rs\u00e9klet. [\u00b0C] current_z_adjust : Utols\u00f3 sz\u00e1m\u00edtott Z-be\u00e1ll\u00edt\u00e1s [mm]. z_adjust_ref_temperature : A Z kisz\u00e1m\u00edt\u00e1s\u00e1hoz haszn\u00e1lt aktu\u00e1lis referencia-h\u0151m\u00e9rs\u00e9klet current_z_adjust [\u00b0C].","title":"z_thermal_adjust"},{"location":"Status_Reference.html#z_tilt","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a z_tilt objektumban \u00e9rhet\u0151k el (ez az objektum akkor \u00e9rhet\u0151 el, ha a z_tilt defini\u00e1lva van): applied : True, ha a Z v\u00e9g\u00e1ll\u00e1s kiegyenl\u00edt\u00e9si folyamat lefutott \u00e9s sikeresen befejez\u0151d\u00f6tt.","title":"z_tilt"},{"location":"TMC_Drivers.html","text":"TMC meghajt\u00f3k \u00b6 Ez a dokumentum a Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3k SPI/UART \u00fczemm\u00f3dban t\u00f6rt\u00e9n\u0151 Klipper-ben val\u00f3 haszn\u00e1lat\u00e1r\u00f3l ny\u00fajt inform\u00e1ci\u00f3t. A Klipper a Trinamic motorvez\u00e9rl\u0151ket is tudja haszn\u00e1lni \"standalone m\u00f3dban\". Ha azonban a motorvez\u00e9rl\u0151k ebben az \u00fczemm\u00f3dban vannak, nincs sz\u00fcks\u00e9g speci\u00e1lis Klipper konfigur\u00e1ci\u00f3ra, \u00e9s az ebben a dokumentumban t\u00e1rgyalt fejlett Klipper funkci\u00f3k nem \u00e1llnak rendelkez\u00e9sre. Ezen a dokumentumon k\u00edv\u00fcl felt\u00e9tlen\u00fcl tekintsd \u00e1t a TMC motorvez\u00e9rl\u0151 konfigur\u00e1ci\u00f3s hivatkoz\u00e1st . Motor\u00e1ram hangol\u00e1sa \u00b6 A nagyobb meghajt\u00f3\u00e1ram n\u00f6veli a pozicion\u00e1l\u00e1si pontoss\u00e1got \u00e9s a nyomat\u00e9kot. A nagyobb \u00e1ram azonban n\u00f6veli a l\u00e9ptet\u0151motor \u00e9s a motorvez\u00e9rl\u0151 \u00e1ltal termelt h\u0151t is. Ha a motorvez\u00e9rl\u0151 t\u00fals\u00e1gosan felmelegszik, akkor kikapcsolja mag\u00e1t, \u00e9s a Klipper hib\u00e1t jelez. Ha a l\u00e9ptet\u0151motor t\u00fals\u00e1gosan felmelegszik, vesz\u00edt a nyomat\u00e9kb\u00f3l \u00e9s a poz\u00edcion\u00e1l\u00e1si pontoss\u00e1gb\u00f3l. (Ha nagyon felforr\u00f3sodik, akkor a hozz\u00e1\u00e9r\u0151 vagy a k\u00f6zel\u00e9ben l\u00e9v\u0151 m\u0171anyag alkatr\u00e9szeket is megolvaszthatja.) \u00c1ltal\u00e1nos hangol\u00e1si tippk\u00e9nt, el\u0151nyben r\u00e9szes\u00edtheti a magasabb \u00e1ram\u00e9rt\u00e9keket, am\u00edg a l\u00e9ptet\u0151motor nem melegszik t\u00fals\u00e1gosan, \u00e9s a motorvez\u00e9rl\u0151 nem jelez figyelmeztet\u00e9seket vagy hib\u00e1kat. \u00c1ltal\u00e1noss\u00e1gban elmondhat\u00f3, hogy a l\u00e9ptet\u0151motor nem baj, ha melegszik, de nem szabad annyira felforr\u00f3sodnia, hogy \u00e9rint\u00e9se f\u00e1jdalmas legyen. Ink\u00e1bb ne adj meg hold_current \u00e9rt\u00e9ket \u00b6 Ha be\u00e1ll\u00edtunk egy hold_current \u00e9rt\u00e9ket, akkor a TMC motorvez\u00e9rl\u0151 cs\u00f6kkentheti a l\u00e9ptet\u0151motor \u00e1ram\u00e1t, amikor azt \u00e9rz\u00e9keli, hogy a l\u00e9ptet\u0151 nem mozog. A motor\u00e1ram megv\u00e1ltoztat\u00e1sa azonban \u00f6nmag\u00e1ban is motormozg\u00e1st eredm\u00e9nyezhet. Ez bek\u00f6vetkezhet a \"r\u00f6gz\u00edt\u0151 er\u0151k\" miatt a l\u00e9ptet\u0151motoron bel\u00fcl (a rotorban l\u00e9v\u0151 \u00e1lland\u00f3 m\u00e1gnes az \u00e1ll\u00f3r\u00e9szben l\u00e9v\u0151 vasfogak fel\u00e9 h\u00faz) vagy a tengelykocsira hat\u00f3 k\u00fcls\u0151 er\u0151k miatt. A legt\u00f6bb l\u00e9ptet\u0151motornak a norm\u00e1l nyomtat\u00e1s sor\u00e1n nem jelent jelent\u0151s el\u0151nyt az \u00e1ram cs\u00f6kkent\u00e9se, mivel kev\u00e9s nyomtat\u00e1si m\u0171velet hagyja a l\u00e9ptet\u0151motort el\u00e9g hossz\u00fa ideig \u00fcresen ahhoz, hogy aktiv\u00e1lja a hold_current funkci\u00f3t. \u00c9s nem val\u00f3sz\u00edn\u0171, hogy az ember finom nyomtat\u00e1si m\u0171veleteket akarna bevezetni abba a n\u00e9h\u00e1ny nyomtat\u00e1si mozdulatba, amely el\u00e9g hossz\u00fa ideig hagyja \u00fcresen a l\u00e9ptet\u0151motort. Ha cs\u00f6kkenteni szeretn\u00e9 a motorok \u00e1ram\u00e1t a nyomtat\u00e1si ind\u00edt\u00e1si rutinok sor\u00e1n, akkor fontolja meg a SET_TMC_CURRENT parancsok kiad\u00e1s\u00e1t egy START_PRINT makr\u00f3ban , hogy be\u00e1ll\u00edtsd az \u00e1ramot a norm\u00e1l nyomtat\u00e1si mozg\u00e1sok el\u0151tt \u00e9s ut\u00e1n. N\u00e9h\u00e1ny olyan, dedik\u00e1lt Z-motorral rendelkez\u0151 nyomtat\u00f3, amely a norm\u00e1l nyomtat\u00e1si m\u0171veletek sor\u00e1n (nincs bed_mesh, nincs bed_tilt, nincs Z skew_correction, nincs \"vase mode\" nyomtat\u00e1s stb.) \u00fcresj\u00e1ratban van, azt tapasztalhatja, hogy a Z motorok h\u0171v\u00f6sebbek a hold_current be\u00e1ll\u00edt\u00e1ssal. Ha ezt haszn\u00e1lod, akkor mindenk\u00e9ppen vedd figyelembe ezt a fajta parancs n\u00e9lk\u00fcli Z tengelymozg\u00e1st t\u00e1rgyasztal kiegyenl\u00edt\u00e9se, t\u00e1rgyasztal szintez\u00e9se, szondakalibr\u00e1l\u00e1s \u00e9s hasonl\u00f3k sor\u00e1n. A driver_TPOWERDOWN \u00e9s driver_IHOLDDELAY \u00e9rt\u00e9keket is ennek megfelel\u0151en kell kalibr\u00e1lni. Ha bizonytalan vagy, ink\u00e1bb ne add meg a hold_current \u00e9rt\u00e9ket. \"SpreadCycle\" vs \"StealthChop\" m\u00f3d be\u00e1ll\u00edt\u00e1sa \u00b6 Alap\u00e9rtelmez\u00e9s szerint a Klipper a TMC motorvez\u00e9rl\u0151ket \"SpreadCycle\" \u00fczemm\u00f3dba helyezi. Ha a motorvez\u00e9rl\u0151 t\u00e1mogatja a \"StealthChop\" m\u00f3dot, akkor azt a stealthchop_threshold hozz\u00e1ad\u00e1s\u00e1val lehet enged\u00e9lyezni: 999999 a TMC konfigur\u00e1ci\u00f3s szakasz\u00e1hoz. \u00c1ltal\u00e1ban a SpreadCycle \u00fczemm\u00f3d nagyobb nyomat\u00e9kot \u00e9s nagyobb helymeghat\u00e1roz\u00e1si pontoss\u00e1got biztos\u00edt, mint a StealthChop \u00fczemm\u00f3d. A StealthChop \u00fczemm\u00f3d azonban n\u00e9h\u00e1ny nyomtat\u00f3n\u00e1l l\u00e9nyegesen kisebb hallhat\u00f3 zajjal j\u00e1rhat. Az \u00fczemm\u00f3dok \u00f6sszehasonl\u00edt\u00f3 tesztjei azt mutatt\u00e1k, hogy a StealthChop \u00fczemm\u00f3d haszn\u00e1lata eset\u00e9n a \"poz\u00edci\u00f3s k\u00e9s\u00e9s\" az \u00e1lland\u00f3 sebess\u00e9g\u0171 mozg\u00e1sok sor\u00e1n a teljes l\u00e9p\u00e9s 75%-al n\u0151tt (p\u00e9ld\u00e1ul egy 40 mm-es forgat\u00e1si t\u00e1vols\u00e1ggal \u00e9s 200 l\u00e9p\u00e9s/fordulatsz\u00e1mmal rendelkez\u0151 nyomtat\u00f3n\u00e1l az \u00e1lland\u00f3 sebess\u00e9g\u0171 mozg\u00e1sok poz\u00edci\u00f3elt\u00e9r\u00e9se ~0,150 mm-rel n\u0151tt). Ez a \"k\u00e9sedelem a k\u00e9rt poz\u00edci\u00f3 el\u00e9r\u00e9s\u00e9ben\" azonban nem biztos, hogy jelent\u0151s nyomtat\u00e1si hibak\u00e9nt jelentkezik, \u00e9s lehet, hogy jobban tetszik a StealthChop m\u00f3d csendesebb m\u0171k\u00f6d\u00e9se. Javasoljuk, hogy mindig a \"SpreadCycle\" m\u00f3dot haszn\u00e1ld (nem megadva a stealthchop_threshold \u00e9rt\u00e9ket) vagy mindig a \"StealthChop\" m\u00f3dot (a stealthchop_threshold 999999-re \u00e1ll\u00edtva). Sajnos a meghajt\u00f3k gyakran rossz \u00e9s zavaros eredm\u00e9nyeket produk\u00e1lnak, ha a m\u00f3d v\u00e1ltozik, mik\u00f6zben a motor nem \u00e1ll\u00f3 \u00e1llapotban van. A TMC interpol\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sa kis poz\u00edci\u00f3elt\u00e9r\u00e9st eredm\u00e9nyez \u00b6 A TMC motorvez\u00e9rl\u0151 interpolate be\u00e1ll\u00edt\u00e1sa cs\u00f6kkentheti a nyomtat\u00f3 mozg\u00e1s\u00e1nak hallhat\u00f3 zaj\u00e1t, de ennek \u00e1ra egy kis rendszerszint\u0171 helyzeti hiba. Ez a rendszerszint\u0171 helyzeti hiba abb\u00f3l ad\u00f3dik, hogy a motorvez\u00e9rl\u0151 k\u00e9sve hajtja v\u00e9gre a Klipper \u00e1ltal k\u00fcld\u00f6tt \"l\u00e9p\u00e9seket\". \u00c1lland\u00f3 sebess\u00e9g\u0171 mozg\u00e1sok sor\u00e1n ez a k\u00e9sleltet\u00e9s k\u00f6zel f\u00e9l konfigur\u00e1lt mikrol\u00e9p\u00e9snyi poz\u00edci\u00f3hib\u00e1t eredm\u00e9nyez (pontosabban a hiba f\u00e9l mikrol\u00e9p\u00e9snyi t\u00e1vols\u00e1g m\u00ednusz a teljes l\u00e9p\u00e9s t\u00e1vols\u00e1g 512-ed r\u00e9sze). P\u00e9ld\u00e1ul egy 40 mm-es rotation_distance, 200 steps_per_rotation \u00e9s 16 microstep tengelyen az \u00e1lland\u00f3 sebess\u00e9g\u0171 mozg\u00e1sok sor\u00e1n bevezetett rendszerszint\u0171 hiba ~0,006 mm. A legjobb helymeghat\u00e1roz\u00e1si pontoss\u00e1g \u00e9rdek\u00e9ben fontolja meg a SpreadCycle m\u00f3d haszn\u00e1lat\u00e1t \u00e9s az interpol\u00e1ci\u00f3 kikapcsol\u00e1s\u00e1t (\u00e1ll\u00edtsd be az interpolate: False \u00e9rt\u00e9ket a TMC motorvez\u00e9rl\u0151 konfigur\u00e1ci\u00f3j\u00e1ban). Ilyen konfigur\u00e1ci\u00f3 eset\u00e9n n\u00f6velhetj\u00fck a microstep be\u00e1ll\u00edt\u00e1st a l\u00e9ptet\u0151 mozg\u00e1sa k\u00f6zbeni hallhat\u00f3 zajok cs\u00f6kkent\u00e9se \u00e9rdek\u00e9ben. \u00c1ltal\u00e1ban a 64 vagy 128 mikrol\u00e9p\u00e9s be\u00e1ll\u00edt\u00e1sa az interpol\u00e1ci\u00f3hoz hasonl\u00f3 hallhat\u00f3 zajjal j\u00e1r, \u00e9s mindezt an\u00e9lk\u00fcl, hogy rendszerszint\u0171 helyzeti hib\u00e1t vezetne be. Ha a StealthChop m\u00f3dot haszn\u00e1lod, akkor az interpol\u00e1ci\u00f3b\u00f3l ered\u0151 helyzeti pontatlans\u00e1g kicsi a StealthChop m\u00f3db\u00f3l ered\u0151 helyzeti pontatlans\u00e1ghoz k\u00e9pest. Ez\u00e9rt az interpol\u00e1ci\u00f3 hangol\u00e1sa nem tekinthet\u0151 hasznosnak StealthChop \u00fczemm\u00f3dban, \u00e9s az interpol\u00e1ci\u00f3 alap\u00e9rtelmezett \u00e1llapotban hagyhat\u00f3. \u00c9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont \u00b6 Az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel lehet\u0151v\u00e9 teszi a tengely kezd\u0151pont felv\u00e9tel\u00e9t fizikai v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 n\u00e9lk\u00fcl. Ehelyett a tengelyen l\u00e9v\u0151 kocsit a mechanikus v\u00e9g\u00e1ll\u00e1sba mozgatja, \u00edgy a l\u00e9ptet\u0151motor l\u00e9p\u00e9seket vesz\u00edt. A l\u00e9ptet\u0151 meghajt\u00f3 \u00e9rz\u00e9keli az elveszett l\u00e9p\u00e9seket, \u00e9s ezt egy t\u0171 csatlakoz\u00e1son jelzi a vez\u00e9rl\u0151 MCU-nak (Klipper). Ezt az inform\u00e1ci\u00f3t a Klipper a tengely v\u00e9g\u00e1ll\u00e1sak\u00e9nt haszn\u00e1lhatja. Ez az \u00fatmutat\u00f3 az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel be\u00e1ll\u00edt\u00e1s\u00e1t mutatja be a (cartesian) nyomtat\u00f3 X tengely\u00e9re. Ez azonban ugyan\u00edgy m\u0171k\u00f6dik az \u00f6sszes t\u00f6bbi tengely eset\u00e9ben is (amelyek v\u00e9g\u00e1ll\u00e1st ig\u00e9nyelnek). Egyszerre csak egy tengelyre kell be\u00e1ll\u00edtani \u00e9s hangolni. Korl\u00e1toz\u00e1sok \u00b6 Gy\u0151z\u0151dj meg arr\u00f3l, hogy a mechanikus alkatr\u00e9szek k\u00e9pesek kezelni a tengely hat\u00e1r\u00e9rt\u00e9k\u00e9nek ism\u00e9telt \u00fctk\u00f6z\u00e9s\u00e9b\u0151l ered\u0151 terhel\u00e9st. K\u00fcl\u00f6n\u00f6sen a sz\u00edjak nagy er\u0151t fejthetnek ki. A Z tengelynek a f\u00fav\u00f3k\u00e1val a t\u00e1rgyasztalba val\u00f3 \u00fctk\u00f6z\u00e9ssel t\u00f6rt\u00e9n\u0151 szintez\u00e9se nem biztos, hogy j\u00f3 \u00f6tlet. A legjobb eredm\u00e9ny \u00e9rdek\u00e9ben ellen\u0151rizd, hogy a tengelyen l\u00e9v\u0151 kocsi szil\u00e1rdan \u00e9rintkezik-e a tengelyhat\u00e1rral. Tov\u00e1bb\u00e1, az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel nem biztos, hogy el\u00e9g pontos a nyomtat\u00f3d sz\u00e1m\u00e1ra. M\u00edg az X \u00e9s Y tengelyek kezd\u0151pont felv\u00e9tele egy cartesian g\u00e9pen j\u00f3l m\u0171k\u00f6dhet, a Z tengely kezd\u0151pont felv\u00e9tele \u00e1ltal\u00e1ban nem el\u00e9g pontos, \u00e9s k\u00f6vetkezetlen els\u0151 r\u00e9tegmagass\u00e1got eredm\u00e9nyezhet. A delta nyomtat\u00f3 \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tele a pontatlans\u00e1g miatt nem tan\u00e1csos. Tov\u00e1bb\u00e1 a l\u00e9ptet\u0151 meghajt\u00f3 elakad\u00e1s\u00e9rz\u00e9kel\u00e9se a motor mechanikai terhel\u00e9s\u00e9t\u0151l, a motor\u00e1ramt\u00f3l \u00e9s a motor h\u0151m\u00e9rs\u00e9klet\u00e9t\u0151l (tekercsellen\u00e1ll\u00e1st\u00f3l) is f\u00fcgg. Az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel k\u00f6zepes motorsebess\u00e9gn\u00e9l m\u0171k\u00f6dik a legjobban. Nagyon lass\u00fa fordulatsz\u00e1mokn\u00e1l (kevesebb mint 10 fordulat/perc) a motor nem termel jelent\u0151s ellen\u00e1ramot, \u00e9s a TMC nem k\u00e9pes megb\u00edzhat\u00f3an \u00e9rz\u00e9kelni a motor le\u00e1ll\u00e1s\u00e1t. Tov\u00e1bb\u00e1, nagyon nagy fordulatsz\u00e1mon a motor ellen-EMF-je megk\u00f6zel\u00edti a motor t\u00e1pfesz\u00fclts\u00e9g\u00e9t, \u00edgy a TMC m\u00e1r nem k\u00e9pes \u00e9rz\u00e9kelni a le\u00e1ll\u00e1st. Javasoljuk, hogy tekintsd meg az adott TMC-k adatlapj\u00e1t. Ott tov\u00e1bbi r\u00e9szleteket is tal\u00e1lhat ennek a be\u00e1ll\u00edt\u00e1snak a korl\u00e1tair\u00f3l. El\u0151felt\u00e9telek \u00b6 N\u00e9h\u00e1ny el\u0151felt\u00e9tel sz\u00fcks\u00e9ges az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel haszn\u00e1lat\u00e1hoz: StallGuard-k\u00e9pes TMC motorvez\u00e9rl\u0151 (TMC2130, TMC2209, TMC2660 vagy TMC5160). A TMC-motorvez\u00e9rl\u0151 SPI/UART interf\u00e9sze mikrokontrollerrel \u00f6sszek\u00f6tve (a stand-alone \u00fczemm\u00f3d nem m\u0171k\u00f6dik). A TMC motorvez\u00e9rl\u0151 megfelel\u0151 \"DIAG\" vagy \"SG_TST\" t\u0171je a mikrovez\u00e9rl\u0151h\u00f6z csatlakoztatva. A konfigur\u00e1ci\u00f3 ellen\u0151rz\u00e9sek dokumentumban szerepl\u0151 l\u00e9p\u00e9seket kell lefuttatni annak meger\u0151s\u00edt\u00e9s\u00e9re, hogy a l\u00e9ptet\u0151motorok megfelel\u0151en vannak konfigur\u00e1lva \u00e9s m\u0171k\u00f6dnek. Hangol\u00e1s \u00b6 Az itt le\u00edrt elj\u00e1r\u00e1s hat f\u0151 l\u00e9p\u00e9sb\u0151l \u00e1ll: V\u00e1laszd ki a kezd\u0151pont felv\u00e9teli sebess\u00e9get. Konfigur\u00e1ld a printer.cfg f\u00e1jlt, hogy enged\u00e9lyezd az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telt. Keresse meg a legnagyobb \u00e9rz\u00e9kenys\u00e9g\u0171 StallGuard be\u00e1ll\u00edt\u00e1st, amely sikeresen felveszi a kezd\u0151pontot. Keresse meg a legalacsonyabb \u00e9rz\u00e9kenys\u00e9g\u0171 StallGuard-be\u00e1ll\u00edt\u00e1st, amely egyetlen \u00e9rint\u00e9ssel sikeres meg\u00e1ll\u00e1st jelez. Friss\u00edtse a printer.cfg \u00e1llom\u00e1nyt a k\u00edv\u00e1nt StallGuard be\u00e1ll\u00edt\u00e1ssal. Hozzon l\u00e9tre vagy friss\u00edtse a printer.cfg makr\u00f3kat, hogy k\u00e9zn\u00e9l legyenek. V\u00e1laszd ki a kezd\u0151pont felv\u00e9teli sebess\u00e9get \u00b6 A kezd\u0151pont felv\u00e9teli sebess\u00e9g fontos v\u00e1laszt\u00e1s az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel sor\u00e1n. Aj\u00e1nlott lass\u00fa \u00e1ll\u00edt\u00e1si sebess\u00e9get haszn\u00e1lni, hogy a kocsi ne gyakoroljon t\u00falzott er\u0151t a keretre, amikor a s\u00edn v\u00e9g\u00e9vel \u00e9rintkezik. A TMC motorvez\u00e9rl\u0151k azonban nagyon lass\u00fa sebess\u00e9gekn\u00e9l nem k\u00e9pesek megb\u00edzhat\u00f3an \u00e9rz\u00e9kelni az elakad\u00e1st. Az ind\u00edt\u00e1si sebess\u00e9gnek j\u00f3 kiindul\u00f3pontja az, hogy a l\u00e9ptet\u0151motor k\u00e9t m\u00e1sodpercenk\u00e9nt egy teljes fordulatot v\u00e9gezzen. Sok tengely eset\u00e9ben ez a rotation_distance osztva kett\u0151vel. P\u00e9ld\u00e1ul: [stepper_x] rotation_distance: 40 homing_speed: 20 ... A printer.cfg be\u00e1ll\u00edt\u00e1sa \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telhez \u00b6 A homing_retract_dist be\u00e1ll\u00edt\u00e1st null\u00e1ra kell \u00e1ll\u00edtani a stepper_x config szakaszban a m\u00e1sodik kezd\u0151pont felv\u00e9teli mozdulat letilt\u00e1s\u00e1hoz. A m\u00e1sodik kezd\u0151pont felv\u00e9teli k\u00eds\u00e9rlet nem ad hozz\u00e1adott \u00e9rt\u00e9ket az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telhez, nem fog megb\u00edzhat\u00f3an m\u0171k\u00f6dni, \u00e9s \u00f6sszezavarja a hangol\u00e1si folyamatot. Gy\u0151z\u0151dj meg r\u00f3la, hogy a konfigur\u00e1ci\u00f3 TMC motorvez\u00e9rl\u0151 r\u00e9szleg\u00e9ben nincs megadva hold_current be\u00e1ll\u00edt\u00e1s. (Ha hold_current haszn\u00e1latban van, akkor a kapcsolat l\u00e9trej\u00f6tte ut\u00e1n a motor meg\u00e1ll, mik\u00f6zben a kocsi a s\u00edn v\u00e9g\u00e9hez van nyomva, \u00e9s az \u00e1ram cs\u00f6kkent\u00e9se ebben a helyzetben a kocsi mozg\u00e1s\u00e1t okozhatja. Ez rossz teljes\u00edtm\u00e9nyt eredm\u00e9nyez, \u00e9s \u00f6sszezavarja a hangol\u00e1si folyamatot.) Sz\u00fcks\u00e9ges a szenzor n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9teli t\u0171k konfigur\u00e1l\u00e1sa \u00e9s a kezdeti \"StallGuard\" be\u00e1ll\u00edt\u00e1sok konfigur\u00e1l\u00e1sa. Egy TMC2209 p\u00e9ldakonfigur\u00e1ci\u00f3 egy X tengelyhez \u00edgy n\u00e9zhet ki: [tmc2209 stepper_x] diag_pin: ^PA1 # A TMC DIAG t\u0171h\u00f6z csatlakoztatott MCU t\u0171re \u00e1ll\u00edtva. driver_SGTHRS: 255 # 255 a leg\u00e9rz\u00e9kenyebb \u00e9rt\u00e9k, 0 a legkev\u00e9sb\u00e9 \u00e9rz\u00e9keny. ... [stepper_x] endstop_pin: tmc2209_stepper_x:virtual_endstop homing_retract_dist: 0 ... Egy TMC2130 vagy TMC5160 konfigur\u00e1ci\u00f3 p\u00e9ld\u00e1ul \u00edgy n\u00e9zhet ki: [tmc2130 stepper_x] diag1_pin: ^!PA1 # A TMC DIAG1 t\u0171h\u00f6z csatlakoztatott t\u0171 (vagy haszn\u00e1ld a diag0_pin / DIAG0 t\u0171t) driver_SGT: -64 # -64 a leg\u00e9rz\u00e9kenyebb \u00e9rt\u00e9k, 63 a legkev\u00e9sb\u00e9 \u00e9rz\u00e9keny. ... [stepper_x] endstop_pin: tmc2130_stepper_x:virtual_endstop homing_retract_dist: 0 ... Egy TMC2660 konfigur\u00e1ci\u00f3 \u00edgy n\u00e9zhet ki: [tmc2660 stepper_x] driver_SGT: -64 # -64 a leg\u00e9rz\u00e9kenyebb \u00e9rt\u00e9k, 63 a legkev\u00e9sb\u00e9 \u00e9rz\u00e9keny. ... [stepper_x] endstop_pin: ^PA1 # A TMC SG_TST t\u0171j\u00e9hez csatlakoztatott t\u0171. homing_retract_dist: 0 ... A fenti p\u00e9ld\u00e1k csak az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telre jellemz\u0151 be\u00e1ll\u00edt\u00e1sokat mutatj\u00e1k. Az \u00f6sszes el\u00e9rhet\u0151 be\u00e1ll\u00edt\u00e1s\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s referencia dokumentumot. Keresse meg a legmagasabb \u00e9rz\u00e9kenys\u00e9get, amely sikeresen jelzi a kezd\u0151pontot \u00b6 Helyezze a kocsit a s\u00edn k\u00f6zep\u00e9hez k\u00f6zel. A SET_TMC_FIELD paranccsal \u00e1ll\u00edtsd be a legnagyobb \u00e9rz\u00e9kenys\u00e9get. A TMC2209 eset\u00e9ben: SET_TMC_FIELD STEPPER=stepper_x FIELD=SGTHRS VALUE=255 A TMC2130, TMC5160 \u00e9s a TMC2660 modellekhez: SET_TMC_FIELD STEPPER=stepper_x FIELD=sgt VALUE=-64 Ezut\u00e1n adj ki egy G28 X0 parancsot, \u00e9s ellen\u0151rizd, hogy a tengely egy\u00e1ltal\u00e1n nem mozog, vagy gyorsan meg\u00e1ll. Ha a tengely nem \u00e1ll meg, akkor adj ki egy M112 parancsot a nyomtat\u00f3 meg\u00e1ll\u00edt\u00e1s\u00e1ra. Valami nem stimmel a diag/sg_tst pin k\u00e1belez\u00e9s\u00e9vel vagy konfigur\u00e1ci\u00f3j\u00e1val, \u00e9s a folytat\u00e1s el\u0151tt ki kell jav\u00edtani. Ezut\u00e1n folyamatosan cs\u00f6kkentse a VALUE be\u00e1ll\u00edt\u00e1s \u00e9rz\u00e9kenys\u00e9g\u00e9t, \u00e9s futtassa le \u00fajra a SET_TMC_FIELD G28 X0 parancsokat, hogy megtal\u00e1lja a legnagyobb \u00e9rz\u00e9kenys\u00e9get, amely a kocsi sikeres mozg\u00e1s\u00e1t eredm\u00e9nyezi a v\u00e9g\u00e1ll\u00e1sig \u00e9s a meg\u00e1ll\u00e1sig. (A TMC2209 motorvez\u00e9rl\u0151k eset\u00e9ben ez az SGTHRS cs\u00f6kkent\u00e9se, m\u00e1s vez\u00e9rl\u0151k eset\u00e9ben az sgt n\u00f6vel\u00e9se lesz.) \u00dcgyelj arra, hogy minden k\u00eds\u00e9rletet \u00fagy kezdj, hogy a kocsi a s\u00edn k\u00f6zep\u00e9hez k\u00f6zel legyen (ha sz\u00fcks\u00e9ges, adj ki egy M84 parancsot, majd k\u00e9zzel mozgasd a kocsit k\u00f6z\u00e9p\u00e1ll\u00e1sba). Meg kell tal\u00e1lni a legnagyobb \u00e9rz\u00e9kenys\u00e9get, amely megb\u00edzhat\u00f3an jelzi a v\u00e9g\u00e1ll\u00e1st (a nagyobb \u00e9rz\u00e9kenys\u00e9g\u0171 be\u00e1ll\u00edt\u00e1sok kicsi vagy semmilyen mozg\u00e1st nem eredm\u00e9nyeznek). Jegyezze fel a kapott \u00e9rt\u00e9ket maximum_sensitivity n\u00e9ven. (Ha a lehet\u0151 legkisebb \u00e9rz\u00e9kenys\u00e9get (SGTHRS=0 vagy sgt=63) kapjuk a kocsi elmozdul\u00e1sa n\u00e9lk\u00fcl, akkor valami nincs rendben a diag/sg_tst t\u0171k bek\u00f6t\u00e9s\u00e9vel vagy konfigur\u00e1ci\u00f3j\u00e1val, \u00e9s a folytat\u00e1s el\u0151tt ki kell jav\u00edtani.) A maximum_sensitivity keres\u00e9sekor k\u00e9nyelmes lehet a k\u00fcl\u00f6nb\u00f6z\u0151 VALUE be\u00e1ll\u00edt\u00e1sokra ugrani (a VALUE param\u00e9ter kett\u00e9oszt\u00e1sa \u00e9rdek\u00e9ben). Ha ezt tessz\u00fck, akkor k\u00e9sz\u00fclj\u00fcnk fel arra, hogy a nyomtat\u00f3 le\u00e1ll\u00edt\u00e1s\u00e1hoz adjunk ki egy M112 parancsot, mivel egy nagyon alacsony \u00e9rz\u00e9kenys\u00e9g\u0171 be\u00e1ll\u00edt\u00e1s miatt a tengely t\u00f6bbsz\u00f6r \"bele\u00fctk\u00f6zhet\" a s\u00edn v\u00e9g\u00e9be. \u00dcgyelj arra, hogy v\u00e1rjon n\u00e9h\u00e1ny m\u00e1sodpercet minden egyes v\u00e9g\u00e1ll\u00e1si k\u00eds\u00e9rlet k\u00f6z\u00f6tt. Miut\u00e1n a TMC motorvez\u00e9rl\u0151 \u00e9rz\u00e9keli az elakad\u00e1st, eltarthat egy kis ideig, am\u00edg a bels\u0151 visszajelz\u0151je t\u00f6rl\u0151dik, \u00e9s k\u00e9pes lesz egy \u00fajabb meg\u00e1ll\u00e1st \u00e9rz\u00e9kelni. Ha a hangol\u00e1si tesztek sor\u00e1n a G28 X0 parancs nem mozdul el eg\u00e9szen a tengelyhat\u00e1rig, akkor \u00f3vatosan kell elj\u00e1rni a szab\u00e1lyos mozgat\u00e1si parancsok kiad\u00e1s\u00e1val (pl. G1 ). A Klipper nem fogja helyesen \u00e9rtelmezni a kocsi helyzet\u00e9t, \u00e9s a mozgat\u00e1si parancs nemk\u00edv\u00e1natos \u00e9s zavaros eredm\u00e9nyeket okozhat. Keresse meg a legalacsonyabb \u00e9rz\u00e9kenys\u00e9get, amely egyetlen \u00e9rint\u00e9ssel kezd\u0151ponton van \u00b6 Ha a kapott maximum_sensitivity \u00e9rt\u00e9kkel \u00e1ll\u00edtja be a tengelyt a s\u00edn v\u00e9g\u00e9re, \u00e9s egy \"egyszeri \u00e9rint\u00e9ssel\" \u00e1ll meg, azaz nem szabad, hogy \"kattog\u00f3\" vagy \"csattan\u00f3\" hangot halljon. (Ha a maxim\u00e1lis \u00e9rz\u00e9kenys\u00e9g mellett csattan\u00f3 vagy kattog\u00f3 hang hallatszik, akkor a homing_speed t\u00fal alacsony, a meghajt\u00f3\u00e1ram t\u00fal alacsony, vagy az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel nem j\u00f3 v\u00e1laszt\u00e1s a tengely sz\u00e1m\u00e1ra.) A k\u00f6vetkez\u0151 l\u00e9p\u00e9s az, hogy a kocsit ism\u00e9t a s\u00edn k\u00f6zep\u00e9re mozgatjuk, cs\u00f6kkentj\u00fck az \u00e9rz\u00e9kenys\u00e9get, \u00e9s futtatjuk a SET_TMC_FIELD G28 X0 parancsokat. A c\u00e9l most az, hogy megtal\u00e1ljuk a legkisebb \u00e9rz\u00e9kenys\u00e9get, amely m\u00e9g mindig azt eredm\u00e9nyezi, hogy a kocsi egy \"egyetlen \u00e9rint\u00e9ssel\" sikeresen c\u00e9lba \u00e9r. Vagyis nem \"bumm\" vagy \"csatt\" a s\u00edn v\u00e9g\u00e9nek \u00e9rint\u00e9sekor. Jegyezze meg a tal\u00e1lt \u00e9rt\u00e9ket minimum_sensitivity . Friss\u00edtse a printer.cfg f\u00e1jlt az \u00e9rz\u00e9kenys\u00e9gi \u00e9rt\u00e9kkel \u00b6 A maximum_sensitivity \u00e9s minimum_sensitivity meg\u00e1llap\u00edt\u00e1sa ut\u00e1n sz\u00e1mol\u00f3g\u00e9p seg\u00edts\u00e9g\u00e9vel kapjuk meg az aj\u00e1nlott \u00e9rz\u00e9kenys\u00e9get a minimum_sensitivity + (maximum_sensitivity - minimum_sensitivity)/3 k\u00e9plettel. Az aj\u00e1nlott \u00e9rz\u00e9kenys\u00e9gnek a minim\u00e1lis \u00e9s maxim\u00e1lis \u00e9rt\u00e9kek k\u00f6z\u00f6tti tartom\u00e1nyban kell lennie, de valamivel k\u00f6zelebb a minim\u00e1lis \u00e9rt\u00e9khez. A v\u00e9gs\u0151 \u00e9rt\u00e9ket kerek\u00edtse a legk\u00f6zelebbi eg\u00e9sz \u00e9rt\u00e9kre. A TMC2209 eset\u00e9ben ezt a konfigur\u00e1ci\u00f3ban a driver_SGTHRS , m\u00e1s TMC motorvez\u00e9rl\u0151k eset\u00e9ben a driver_SGT \u00e9rt\u00e9kkel kell be\u00e1ll\u00edtani. Ha a maximum_sensitivity \u00e9s minimum_sensitivity k\u00f6z\u00f6tti tartom\u00e1ny kicsi (pl. 5-n\u00e9l kisebb), akkor ez instabil kezd\u0151pont felv\u00e9telt eredm\u00e9nyezhet. A gyorsabb kezd\u0151pont felv\u00e9teli sebess\u00e9g n\u00f6velheti a hat\u00f3t\u00e1vols\u00e1got \u00e9s stabilabb\u00e1 teheti a m\u0171k\u00f6d\u00e9st. Vedd figyelembe, hogy ha b\u00e1rmilyen v\u00e1ltoz\u00e1s t\u00f6rt\u00e9nik a motorvez\u00e9rl\u0151 \u00e1ram\u00e1ban, az ind\u00edt\u00e1si sebess\u00e9gben vagy a nyomtat\u00f3 hardver\u00e9n, akkor a hangol\u00e1si folyamatot \u00fajra el kell v\u00e9gezni. Makr\u00f3k haszn\u00e1lata a kezd\u0151pont felv\u00e9tel sor\u00e1n \u00b6 Az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel befejez\u00e9se ut\u00e1n a kocsi a s\u00edn v\u00e9g\u00e9hez lesz nyomva, \u00e9s a l\u00e9ptet\u0151 er\u0151t fejt ki a keretre, am\u00edg a kocsi el nem mozdul. J\u00f3 \u00f6tlet egy makr\u00f3t l\u00e9trehozni a tengely kezd\u0151pont felv\u00e9tel\u00e9hez, \u00e9s azonnal elmozd\u00edtani a kocsit a s\u00edn v\u00e9g\u00e9t\u0151l. J\u00f3 \u00f6tlet, ha a makr\u00f3 legal\u00e1bb 2 m\u00e1sodperc sz\u00fcnetet tart az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel elind\u00edt\u00e1sa el\u0151tt (vagy m\u00e1s m\u00f3don biztos\u00edtja, hogy a l\u00e9ptet\u0151n 2 m\u00e1sodpercig nem volt mozg\u00e1s). A k\u00e9sleltet\u00e9s n\u00e9lk\u00fcl lehets\u00e9ges, hogy a meghajt\u00f3 bels\u0151 le\u00e1ll\u00e1si jelz\u0151je m\u00e9g mindig be van \u00e1ll\u00edtva egy kor\u00e1bbi mozg\u00e1s miatt. Az is hasznos lehet, ha ez a makr\u00f3 be\u00e1ll\u00edtja a meghajt\u00f3 \u00e1ram\u00e1t a kezd\u0151pont felv\u00e9tel el\u0151tt, \u00e9s \u00faj \u00e1ramot \u00e1ll\u00edt be, miut\u00e1n a kocsi elindult. Egy p\u00e9ldamakr\u00f3 \u00edgy n\u00e9zhet 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 %} # \u00c1ll\u00edtsuk be az \u00e1ramot az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telhez SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR} # Sz\u00fcnet annak biztos\u00edt\u00e1s\u00e1ra, hogy a meghajt\u00f3 le\u00e1ll\u00e1si jelz\u0151je t\u00f6rl\u0151dj\u00f6n. G4 P2000 # Kezd\u0151pont G28 X0 # Elmozdul\u00e1s G90 G1 X5 F1200 # \u00c1ll\u00edtsd be az \u00e1ramer\u0151ss\u00e9get nyomtat\u00e1s k\u00f6zben SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CUR} Az \u00edgy kapott makr\u00f3 megh\u00edvhat\u00f3 a homing_override konfigur\u00e1ci\u00f3s szakasz vagy a START_PRINT makr\u00f3 seg\u00edts\u00e9g\u00e9vel. Vedd figyelembe, hogy ha a motorvez\u00e9rl\u0151 \u00e1ram\u00e1t a kezd\u0151pont felv\u00e9tel sor\u00e1n megv\u00e1ltoztatj\u00e1k, akkor a hangol\u00e1si folyamatot \u00fajra el kell v\u00e9gezni. Tippek CoreXY g\u00e9pek szenzor n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel\u00e9hez \u00b6 A CoreXY nyomtat\u00f3 X \u00e9s Y kocsikn\u00e1l \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telre is van lehet\u0151s\u00e9g. A Klipper a [stepper_x] l\u00e9ptet\u0151t haszn\u00e1lja az X kocsi kezd\u0151pont felv\u00e9telekor az elakad\u00e1sok \u00e9rz\u00e9kel\u00e9s\u00e9re, az Y kocsi kezd\u0151pont felv\u00e9telekor pedig a [stepper_y] l\u00e9ptet\u0151t. Haszn\u00e1ld a fent le\u00edrt hangol\u00e1si \u00fatmutat\u00f3t, hogy megtal\u00e1lja a megfelel\u0151 \"elakad\u00e1s \u00e9rz\u00e9kenys\u00e9get\" az egyes kocsikhoz, de vedd figyelembe a k\u00f6vetkez\u0151 korl\u00e1toz\u00e1sokat: Ha a CoreXY-n \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telt haszn\u00e1l, gy\u0151z\u0151dj meg r\u00f3la, hogy egyik l\u00e9ptet\u0151h\u00f6z sincs be\u00e1ll\u00edtva hold_current . A hangol\u00e1s sor\u00e1n gy\u0151z\u0151dj meg arr\u00f3l, hogy az X \u00e9s az Y kocsik a s\u00ednek k\u00f6zep\u00e9n\u00e9l vannak-e minden egyes kezd\u0151pont felv\u00e9teli k\u00eds\u00e9rlet el\u0151tt. A hangol\u00e1s befejez\u00e9se ut\u00e1n az X \u00e9s Y kezd\u0151pont felv\u00e9tel\u00e9t makr\u00f3k seg\u00edts\u00e9g\u00e9vel biztos\u00edtsa, hogy el\u0151sz\u00f6r az egyik tengely vedd fel a kezd\u0151pontot, majd mozgasd el a kocsit a tengelyhat\u00e1rt\u00f3l, tartson legal\u00e1bb 2 m\u00e1sodperc sz\u00fcnetet, majd kezd el a m\u00e1sik kocsi kezd\u0151pont felv\u00e9tel\u00e9t. A tengelyt\u0151l val\u00f3 elt\u00e1volod\u00e1ssal elker\u00fclhet\u0151, hogy az egyik tengelyt akkor ind\u00edtsuk el, amikor a m\u00e1sik a tengelyhat\u00e1rhoz van nyomva (ami eltorz\u00edthatja az akad\u00e1s\u00e9rz\u00e9kel\u00e9st). A sz\u00fcnetre az\u00e9rt van sz\u00fcks\u00e9g, hogy a meghajt\u00f3 az \u00fajraind\u00edt\u00e1s el\u0151tt t\u00f6r\u00f6lje az elakad\u00e1s \u00e9rz\u00e9kel\u0151 puffert. Egy p\u00e9lda CoreXY kezd\u0151pont felv\u00e9teli makr\u00f3 \u00edgy n\u00e9zhet ki: [gcode_macro HOME] gcode: G90 # Kezd\u0151pont Z G28 Z0 G1 Z10 F1200 # Kezd\u0151pont Y G28 Y0 G1 Y5 F1200 # Kezd\u0151pont X G4 P2000 G28 X0 G1 X5 F1200 A motorvez\u00e9rl\u0151 be\u00e1ll\u00edt\u00e1sainak lek\u00e9rdez\u00e9se \u00e9s diagnosztiz\u00e1l\u00e1sa \u00b6 A ` DUMP_TMC parancs hasznos eszk\u00f6z a motorvez\u00e9rl\u0151k konfigur\u00e1l\u00e1s\u00e1hoz \u00e9s diagnosztiz\u00e1l\u00e1s\u00e1hoz. A Klipper \u00e1ltal konfigur\u00e1lt \u00f6sszes mez\u0151t, valamint a motorvez\u00e9rl\u0151t lek\u00e9rdezhet\u0151 \u00f6sszes mez\u0151t jelenti. Az \u00f6sszes bejelentett mez\u0151t az egyes motorvez\u00e9rl\u0151k Trinamic adatlapja hat\u00e1rozza meg. Ezek az adatlapok megtal\u00e1lhat\u00f3k a Trinamic weboldal\u00e1n . A DUMP_TMC eredm\u00e9nyeinek \u00e9rtelmez\u00e9s\u00e9hez szerezd be \u00e9s tekintsd \u00e1t a meghajt\u00f3 Trinamic adatlapj\u00e1t. A driver_XXX be\u00e1ll\u00edt\u00e1sok konfigur\u00e1l\u00e1sa \u00b6 A Klipper t\u00e1mogatja sz\u00e1mos alacsony szint\u0171 motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1s\u00e1t a driver_XXX be\u00e1ll\u00edt\u00e1sok haszn\u00e1lat\u00e1val. A TMC meghajt\u00f3 konfigur\u00e1ci\u00f3s hivatkoz\u00e1s tartalmazza az egyes meghajt\u00f3t\u00edpusokhoz el\u00e9rhet\u0151 mez\u0151k teljes list\u00e1j\u00e1t. Ezenk\u00edv\u00fcl szinte minden mez\u0151 m\u00f3dos\u00edthat\u00f3 haszn\u00e1lat k\u00f6zben a SET_TMC_FIELD parancs seg\u00edts\u00e9g\u00e9vel. E mez\u0151k mindegyik\u00e9t az egyes meghajt\u00f3k Trinamic adatlapja hat\u00e1rozza meg. Ezek az adatlapok megtal\u00e1lhat\u00f3k a Trinamic weboldal\u00e1n . Vedd figyelembe, hogy a Trinamic adatlapok n\u00e9ha olyan megfogalmaz\u00e1st haszn\u00e1lnak, amely \u00f6sszet\u00e9veszthet egy magas szint\u0171 be\u00e1ll\u00edt\u00e1st (p\u00e9ld\u00e1ul \"hysteresis end\") egy alacsony szint\u0171 mez\u0151\u00e9rt\u00e9kkel (pl. \"HEND\"). A Klipperben a driver_XXX \u00e9s a SET_TMC_FIELD mindig azt az alacsony szint\u0171 mez\u0151\u00e9rt\u00e9ket \u00e1ll\u00edtja be, amely t\u00e9nylegesen a meghajt\u00f3ba \u00edr\u00f3dik. \u00cdgy p\u00e9ld\u00e1ul, ha a Trinamic adatlapja szerint 3 \u00e9rt\u00e9ket kell \u00edrni a HEND mez\u0151be, hogy a \"hiszter\u00e9zis v\u00e9ge\" 0 legyen, akkor a driver_HEND=3 be\u00e1ll\u00edt\u00e1s\u00e1val a 0 magas szint\u0171 \u00e9rt\u00e9ket kapjuk. Gyakori k\u00e9rd\u00e9sek \u00b6 Haszn\u00e1lhatom a StealthChop \u00fczemm\u00f3dot nyom\u00e1s el\u0151tol\u00e1ssal rendelkez\u0151 extruderen? \u00b6 Sokan sikeresen haszn\u00e1lj\u00e1k a \"StealthChop\" \u00fczemm\u00f3dot a Klipper nyom\u00e1s el\u0151tol\u00e1ssal. A Klipper sim\u00edtott nyom\u00e1s el\u0151tol\u00e1sa , amely nem vezet be pillanatnyi sebess\u00e9g v\u00e1ltoz\u00e1st. A \"StealthChop\" \u00fczemm\u00f3d azonban alacsonyabb motornyomat\u00e9kot \u00e9s/vagy nagyobb motorh\u0151t eredm\u00e9nyezhet. Lehet, hogy ez az \u00fczemm\u00f3d megfelel\u0151 az \u00d6n adott nyomtat\u00f3ja sz\u00e1m\u00e1ra, de az is lehet, hogy nem. Folyamatosan kap \"Nem tudom olvasni a tmc uart 'stepper_x' regiszter IFCNT\" hib\u00e1kat? \u00b6 Ez akkor fordul el\u0151, ha a Klipper nem tud kommunik\u00e1lni egy TMC2208 vagy TMC2209 meghajt\u00f3val. Gy\u0151z\u0151dj meg r\u00f3la, hogy a motor t\u00e1pell\u00e1t\u00e1sa enged\u00e9lyezve van, mivel a l\u00e9ptet\u0151motor-meghajt\u00f3nak \u00e1ltal\u00e1ban motor\u00e1ramra van sz\u00fcks\u00e9ge, miel\u0151tt kommunik\u00e1lni tudna a mikrokontrollerrel. Ha ez a hiba a Klipper els\u0151 \u00e9get\u00e9se ut\u00e1n jelentkezik, akkor a l\u00e9ptet\u0151 meghajt\u00f3 kor\u00e1bban olyan \u00e1llapotba programoz\u00f3dott, amely nem kompatibilis a Klipperrel. Az \u00e1llapot vissza\u00e1ll\u00edt\u00e1s\u00e1hoz n\u00e9h\u00e1ny m\u00e1sodpercre t\u00e1vol\u00edtsa el a nyomtat\u00f3t az \u00e1ramell\u00e1t\u00e1st\u00f3l (fizikailag h\u00fazza ki az USB-t \u00e9s a h\u00e1l\u00f3zati csatlakoz\u00f3t). Ellenkez\u0151 esetben ez a hiba \u00e1ltal\u00e1ban az UART t\u0171 helytelen vezet\u00e9kez\u00e9s\u00e9nek vagy az UART t\u0171be\u00e1ll\u00edt\u00e1sok helytelen Klipper konfigur\u00e1ci\u00f3j\u00e1nak eredm\u00e9nye. Folyamatosan kap \"Nem lehet \u00edrni tmc spi \"stepper_x\" register ...\" hib\u00e1t? \u00b6 Ez akkor fordul el\u0151, ha a Klipper nem tud kommunik\u00e1lni egy TMC2208 vagy TMC2209 motorvez\u00e9rl\u0151vel. Gy\u0151z\u0151dj meg r\u00f3la, hogy a motor t\u00e1pell\u00e1t\u00e1sa enged\u00e9lyezve van, mivel a l\u00e9ptet\u0151motor-meghajt\u00f3nak \u00e1ltal\u00e1ban motor\u00e1ramra van sz\u00fcks\u00e9ge, miel\u0151tt kommunik\u00e1lni tudna a mikrokontrollerrel. Ellenkez\u0151 esetben ez a hiba \u00e1ltal\u00e1ban a helytelen SPI vezet\u00e9kez\u00e9s, az SPI be\u00e1ll\u00edt\u00e1sok helytelen Klipper-konfigur\u00e1ci\u00f3ja vagy az SPI buszon l\u00e9v\u0151 eszk\u00f6z\u00f6k hi\u00e1nyos konfigur\u00e1ci\u00f3j\u00e1nak eredm\u00e9nye. Ne feledd, hogy ha a motorvez\u00e9rl\u0151 egy megosztott SPI buszon van t\u00f6bb eszk\u00f6zzel, akkor gy\u0151z\u0151dj meg r\u00f3la, hogy teljes m\u00e9rt\u00e9kben konfigur\u00e1ld a Klipperben l\u00e9v\u0151 megosztott SPI busz minden eszk\u00f6z\u00e9t. Ha egy megosztott SPI buszon l\u00e9v\u0151 eszk\u00f6z nincs konfigur\u00e1lva, akkor el\u0151fordulhat, hogy helytelen\u00fcl reag\u00e1l a nem erre sz\u00e1nt parancsokra, \u00e9s meghi\u00fasul a k\u00edv\u00e1nt eszk\u00f6zzel folytatott kommunik\u00e1ci\u00f3. Ha van olyan eszk\u00f6z egy megosztott SPI buszon, amelyet nem lehet konfigur\u00e1lni a Klipperben, akkor a static_digital_output konfigur\u00e1ci\u00f3s szakasz seg\u00edts\u00e9g\u00e9vel \u00e1ll\u00edtsd magasra a nem haszn\u00e1lt eszk\u00f6z CS t\u0171j\u00e9t (hogy ne k\u00eds\u00e9relje meg haszn\u00e1lni az SPI buszt). A t\u00e1bla v\u00e1zlata gyakran hasznos referencia annak meg\u00e1llap\u00edt\u00e1s\u00e1hoz, hogy mely eszk\u00f6z\u00f6k vannak egy SPI buszon \u00e9s a hozz\u00e1juk tartoz\u00f3 t\u0171k\u00f6n. Mi\u00e9rt kaptam egy \"TMC jelent\u00e9s hiba: ...\" hiba\u00fczenetet? \u00b6 Az ilyen t\u00edpus\u00fa hiba azt jelzi, hogy a TMC motorvez\u00e9rl\u0151 hib\u00e1t \u00e9szlelt, \u00e9s letiltotta mag\u00e1t. Vagyis a meghajt\u00f3 abbahagyta a poz\u00edci\u00f3j\u00e1t, \u00e9s figyelmen k\u00edv\u00fcl hagyta a mozg\u00e1si parancsokat. Ha a Klipper azt \u00e9szleli, hogy egy akt\u00edv motorvez\u00e9rl\u0151 letiltotta mag\u00e1t, a nyomtat\u00f3t \"le\u00e1ll\u00edt\u00e1s\" \u00e1llapotba \u00e1ll\u00edtja. Az is lehets\u00e9ges, hogy a TMC hiba le\u00e1ll\u00edt\u00e1sa SPI hib\u00e1k miatt k\u00f6vetkezik be, amelyek megakad\u00e1lyozz\u00e1k a motorvez\u00e9rl\u0151kkel val\u00f3 kommunik\u00e1ci\u00f3t (TMC2130, TMC5160 vagy TMC2660). Ebben az esetben gyakori, hogy a jelentett motorvez\u00e9rl\u0151 \u00e1llapota 000000000 vagy ffffffffff - p\u00e9ld\u00e1ul: TMC hib\u00e1t jelent: DRV_STATUS: ffffffff ... VAGY TMC jelent\u00e9sek hiba: READRSP@RDSEL2: 00000000 ... . Az ilyen hiba oka lehet egy SPI vezet\u00e9kez\u00e9si probl\u00e9ma, vagy lehet a vissza\u00e1ll\u00edt\u00e1s, vagy a TMC motorvez\u00e9rl\u0151. N\u00e9h\u00e1ny gyakori hiba \u00e9s tipp a diagnosztiz\u00e1l\u00e1shoz: TMC hib\u00e1t jelent: ... ot=1(OvertempError!) \u00b6 Ez azt jelzi, hogy a motorvez\u00e9rl\u0151 kikapcsolta mag\u00e1t, mert t\u00falmelegedett. A tipikus megold\u00e1sok a l\u00e9ptet\u0151motor \u00e1ram\u00e1nak cs\u00f6kkent\u00e9se, a motorvez\u00e9rl\u0151 \u00e9s/vagy a l\u00e9ptet\u0151motor h\u0171t\u00e9se. A TMC hib\u00e1t jelent: ... ShortToGND VAGY LowSideShort \u00b6 Ez azt jelzi, hogy a motorvez\u00e9rl\u0151 letiltotta mag\u00e1t, mert nagyon magas \u00e1ramot \u00e9rz\u00e9kelt a meghajt\u00f3n kereszt\u00fcl. Ez azt jelezheti, hogy meglazult vagy r\u00f6vidre z\u00e1rt vezet\u00e9k van a l\u00e9ptet\u0151motorban vagy mag\u00e1hoz a l\u00e9ptet\u0151motorhoz fut\u00f3 vezet\u00e9k hib\u00e1s. Ez a hiba akkor is el\u0151fordulhat, ha StealthChop \u00fczemm\u00f3dot haszn\u00e1l, \u00e9s a TMC motorvez\u00e9rl\u0151 nem k\u00e9pes pontosan megj\u00f3solni a motor mechanikai terhel\u00e9s\u00e9t. (Ha a motorvez\u00e9rl\u0151 rosszul j\u00f3sol, akkor el\u0151fordulhat, hogy t\u00fal nagy \u00e1ramot k\u00fcld a motoron kereszt\u00fcl, \u00e9s ezzel kiv\u00e1ltja saj\u00e1t t\u00fal\u00e1ram-\u00e9rz\u00e9kel\u00e9s\u00e9t). Ennek tesztel\u00e9s\u00e9hez kapcsolja ki a StealthChop \u00fczemm\u00f3dot, \u00e9s ellen\u0151rizd, hogy a hib\u00e1k tov\u00e1bbra is el\u0151fordulnak-e. A TMC hib\u00e1t jelent: ... reset=1(Reset) VAGY CS_ACTUAL=0(Reset?) VAGY SE=0(Reset?) \u00b6 Ez azt jelzi, hogy a motorvez\u00e9rl\u0151 a nyomtat\u00e1s k\u00f6zep\u00e9n vissza\u00e1ll\u00edtotta mag\u00e1t. Ennek oka lehet fesz\u00fclts\u00e9g vagy vezet\u00e9kez\u00e9si probl\u00e9ma. A TMC hib\u00e1t jelent: ... uv_cp=1(Undervoltage!) \u00b6 Ez azt jelzi, hogy a motorvez\u00e9rl\u0151 alacsony fesz\u00fclts\u00e9get \u00e9szlelt, \u00e9s letiltotta mag\u00e1t. Ennek oka lehet vezet\u00e9kez\u00e9si vagy t\u00e1pell\u00e1t\u00e1si probl\u00e9ma. Hogyan tudom be\u00e1ll\u00edtani a spreadCycle/coolStep/etc. \u00fczemm\u00f3dot a motorvez\u00e9rl\u0151imhez? \u00b6 A Trinamic weboldal tartalmaz \u00fatmutat\u00f3kat a motorvez\u00e9rl\u0151k konfigur\u00e1l\u00e1s\u00e1hoz. Ezek az \u00fatmutat\u00f3k gyakran technikai jelleg\u0171ek, alacsony szint\u0171ek, \u00e9s speci\u00e1lis hardvert ig\u00e9nyelhetnek. Ett\u0151l f\u00fcggetlen\u00fcl ez a legjobb inform\u00e1ci\u00f3forr\u00e1s.","title":"TMC meghajt\u00f3k"},{"location":"TMC_Drivers.html#tmc-meghajtok","text":"Ez a dokumentum a Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3k SPI/UART \u00fczemm\u00f3dban t\u00f6rt\u00e9n\u0151 Klipper-ben val\u00f3 haszn\u00e1lat\u00e1r\u00f3l ny\u00fajt inform\u00e1ci\u00f3t. A Klipper a Trinamic motorvez\u00e9rl\u0151ket is tudja haszn\u00e1lni \"standalone m\u00f3dban\". Ha azonban a motorvez\u00e9rl\u0151k ebben az \u00fczemm\u00f3dban vannak, nincs sz\u00fcks\u00e9g speci\u00e1lis Klipper konfigur\u00e1ci\u00f3ra, \u00e9s az ebben a dokumentumban t\u00e1rgyalt fejlett Klipper funkci\u00f3k nem \u00e1llnak rendelkez\u00e9sre. Ezen a dokumentumon k\u00edv\u00fcl felt\u00e9tlen\u00fcl tekintsd \u00e1t a TMC motorvez\u00e9rl\u0151 konfigur\u00e1ci\u00f3s hivatkoz\u00e1st .","title":"TMC meghajt\u00f3k"},{"location":"TMC_Drivers.html#motoraram-hangolasa","text":"A nagyobb meghajt\u00f3\u00e1ram n\u00f6veli a pozicion\u00e1l\u00e1si pontoss\u00e1got \u00e9s a nyomat\u00e9kot. A nagyobb \u00e1ram azonban n\u00f6veli a l\u00e9ptet\u0151motor \u00e9s a motorvez\u00e9rl\u0151 \u00e1ltal termelt h\u0151t is. Ha a motorvez\u00e9rl\u0151 t\u00fals\u00e1gosan felmelegszik, akkor kikapcsolja mag\u00e1t, \u00e9s a Klipper hib\u00e1t jelez. Ha a l\u00e9ptet\u0151motor t\u00fals\u00e1gosan felmelegszik, vesz\u00edt a nyomat\u00e9kb\u00f3l \u00e9s a poz\u00edcion\u00e1l\u00e1si pontoss\u00e1gb\u00f3l. (Ha nagyon felforr\u00f3sodik, akkor a hozz\u00e1\u00e9r\u0151 vagy a k\u00f6zel\u00e9ben l\u00e9v\u0151 m\u0171anyag alkatr\u00e9szeket is megolvaszthatja.) \u00c1ltal\u00e1nos hangol\u00e1si tippk\u00e9nt, el\u0151nyben r\u00e9szes\u00edtheti a magasabb \u00e1ram\u00e9rt\u00e9keket, am\u00edg a l\u00e9ptet\u0151motor nem melegszik t\u00fals\u00e1gosan, \u00e9s a motorvez\u00e9rl\u0151 nem jelez figyelmeztet\u00e9seket vagy hib\u00e1kat. \u00c1ltal\u00e1noss\u00e1gban elmondhat\u00f3, hogy a l\u00e9ptet\u0151motor nem baj, ha melegszik, de nem szabad annyira felforr\u00f3sodnia, hogy \u00e9rint\u00e9se f\u00e1jdalmas legyen.","title":"Motor\u00e1ram hangol\u00e1sa"},{"location":"TMC_Drivers.html#inkabb-ne-adj-meg-hold_current-erteket","text":"Ha be\u00e1ll\u00edtunk egy hold_current \u00e9rt\u00e9ket, akkor a TMC motorvez\u00e9rl\u0151 cs\u00f6kkentheti a l\u00e9ptet\u0151motor \u00e1ram\u00e1t, amikor azt \u00e9rz\u00e9keli, hogy a l\u00e9ptet\u0151 nem mozog. A motor\u00e1ram megv\u00e1ltoztat\u00e1sa azonban \u00f6nmag\u00e1ban is motormozg\u00e1st eredm\u00e9nyezhet. Ez bek\u00f6vetkezhet a \"r\u00f6gz\u00edt\u0151 er\u0151k\" miatt a l\u00e9ptet\u0151motoron bel\u00fcl (a rotorban l\u00e9v\u0151 \u00e1lland\u00f3 m\u00e1gnes az \u00e1ll\u00f3r\u00e9szben l\u00e9v\u0151 vasfogak fel\u00e9 h\u00faz) vagy a tengelykocsira hat\u00f3 k\u00fcls\u0151 er\u0151k miatt. A legt\u00f6bb l\u00e9ptet\u0151motornak a norm\u00e1l nyomtat\u00e1s sor\u00e1n nem jelent jelent\u0151s el\u0151nyt az \u00e1ram cs\u00f6kkent\u00e9se, mivel kev\u00e9s nyomtat\u00e1si m\u0171velet hagyja a l\u00e9ptet\u0151motort el\u00e9g hossz\u00fa ideig \u00fcresen ahhoz, hogy aktiv\u00e1lja a hold_current funkci\u00f3t. \u00c9s nem val\u00f3sz\u00edn\u0171, hogy az ember finom nyomtat\u00e1si m\u0171veleteket akarna bevezetni abba a n\u00e9h\u00e1ny nyomtat\u00e1si mozdulatba, amely el\u00e9g hossz\u00fa ideig hagyja \u00fcresen a l\u00e9ptet\u0151motort. Ha cs\u00f6kkenteni szeretn\u00e9 a motorok \u00e1ram\u00e1t a nyomtat\u00e1si ind\u00edt\u00e1si rutinok sor\u00e1n, akkor fontolja meg a SET_TMC_CURRENT parancsok kiad\u00e1s\u00e1t egy START_PRINT makr\u00f3ban , hogy be\u00e1ll\u00edtsd az \u00e1ramot a norm\u00e1l nyomtat\u00e1si mozg\u00e1sok el\u0151tt \u00e9s ut\u00e1n. N\u00e9h\u00e1ny olyan, dedik\u00e1lt Z-motorral rendelkez\u0151 nyomtat\u00f3, amely a norm\u00e1l nyomtat\u00e1si m\u0171veletek sor\u00e1n (nincs bed_mesh, nincs bed_tilt, nincs Z skew_correction, nincs \"vase mode\" nyomtat\u00e1s stb.) \u00fcresj\u00e1ratban van, azt tapasztalhatja, hogy a Z motorok h\u0171v\u00f6sebbek a hold_current be\u00e1ll\u00edt\u00e1ssal. Ha ezt haszn\u00e1lod, akkor mindenk\u00e9ppen vedd figyelembe ezt a fajta parancs n\u00e9lk\u00fcli Z tengelymozg\u00e1st t\u00e1rgyasztal kiegyenl\u00edt\u00e9se, t\u00e1rgyasztal szintez\u00e9se, szondakalibr\u00e1l\u00e1s \u00e9s hasonl\u00f3k sor\u00e1n. A driver_TPOWERDOWN \u00e9s driver_IHOLDDELAY \u00e9rt\u00e9keket is ennek megfelel\u0151en kell kalibr\u00e1lni. Ha bizonytalan vagy, ink\u00e1bb ne add meg a hold_current \u00e9rt\u00e9ket.","title":"Ink\u00e1bb ne adj meg hold_current \u00e9rt\u00e9ket"},{"location":"TMC_Drivers.html#spreadcycle-vs-stealthchop-mod-beallitasa","text":"Alap\u00e9rtelmez\u00e9s szerint a Klipper a TMC motorvez\u00e9rl\u0151ket \"SpreadCycle\" \u00fczemm\u00f3dba helyezi. Ha a motorvez\u00e9rl\u0151 t\u00e1mogatja a \"StealthChop\" m\u00f3dot, akkor azt a stealthchop_threshold hozz\u00e1ad\u00e1s\u00e1val lehet enged\u00e9lyezni: 999999 a TMC konfigur\u00e1ci\u00f3s szakasz\u00e1hoz. \u00c1ltal\u00e1ban a SpreadCycle \u00fczemm\u00f3d nagyobb nyomat\u00e9kot \u00e9s nagyobb helymeghat\u00e1roz\u00e1si pontoss\u00e1got biztos\u00edt, mint a StealthChop \u00fczemm\u00f3d. A StealthChop \u00fczemm\u00f3d azonban n\u00e9h\u00e1ny nyomtat\u00f3n\u00e1l l\u00e9nyegesen kisebb hallhat\u00f3 zajjal j\u00e1rhat. Az \u00fczemm\u00f3dok \u00f6sszehasonl\u00edt\u00f3 tesztjei azt mutatt\u00e1k, hogy a StealthChop \u00fczemm\u00f3d haszn\u00e1lata eset\u00e9n a \"poz\u00edci\u00f3s k\u00e9s\u00e9s\" az \u00e1lland\u00f3 sebess\u00e9g\u0171 mozg\u00e1sok sor\u00e1n a teljes l\u00e9p\u00e9s 75%-al n\u0151tt (p\u00e9ld\u00e1ul egy 40 mm-es forgat\u00e1si t\u00e1vols\u00e1ggal \u00e9s 200 l\u00e9p\u00e9s/fordulatsz\u00e1mmal rendelkez\u0151 nyomtat\u00f3n\u00e1l az \u00e1lland\u00f3 sebess\u00e9g\u0171 mozg\u00e1sok poz\u00edci\u00f3elt\u00e9r\u00e9se ~0,150 mm-rel n\u0151tt). Ez a \"k\u00e9sedelem a k\u00e9rt poz\u00edci\u00f3 el\u00e9r\u00e9s\u00e9ben\" azonban nem biztos, hogy jelent\u0151s nyomtat\u00e1si hibak\u00e9nt jelentkezik, \u00e9s lehet, hogy jobban tetszik a StealthChop m\u00f3d csendesebb m\u0171k\u00f6d\u00e9se. Javasoljuk, hogy mindig a \"SpreadCycle\" m\u00f3dot haszn\u00e1ld (nem megadva a stealthchop_threshold \u00e9rt\u00e9ket) vagy mindig a \"StealthChop\" m\u00f3dot (a stealthchop_threshold 999999-re \u00e1ll\u00edtva). Sajnos a meghajt\u00f3k gyakran rossz \u00e9s zavaros eredm\u00e9nyeket produk\u00e1lnak, ha a m\u00f3d v\u00e1ltozik, mik\u00f6zben a motor nem \u00e1ll\u00f3 \u00e1llapotban van.","title":"\"SpreadCycle\" vs \"StealthChop\" m\u00f3d be\u00e1ll\u00edt\u00e1sa"},{"location":"TMC_Drivers.html#a-tmc-interpolacios-beallitasa-kis-pozicioelterest-eredmenyez","text":"A TMC motorvez\u00e9rl\u0151 interpolate be\u00e1ll\u00edt\u00e1sa cs\u00f6kkentheti a nyomtat\u00f3 mozg\u00e1s\u00e1nak hallhat\u00f3 zaj\u00e1t, de ennek \u00e1ra egy kis rendszerszint\u0171 helyzeti hiba. Ez a rendszerszint\u0171 helyzeti hiba abb\u00f3l ad\u00f3dik, hogy a motorvez\u00e9rl\u0151 k\u00e9sve hajtja v\u00e9gre a Klipper \u00e1ltal k\u00fcld\u00f6tt \"l\u00e9p\u00e9seket\". \u00c1lland\u00f3 sebess\u00e9g\u0171 mozg\u00e1sok sor\u00e1n ez a k\u00e9sleltet\u00e9s k\u00f6zel f\u00e9l konfigur\u00e1lt mikrol\u00e9p\u00e9snyi poz\u00edci\u00f3hib\u00e1t eredm\u00e9nyez (pontosabban a hiba f\u00e9l mikrol\u00e9p\u00e9snyi t\u00e1vols\u00e1g m\u00ednusz a teljes l\u00e9p\u00e9s t\u00e1vols\u00e1g 512-ed r\u00e9sze). P\u00e9ld\u00e1ul egy 40 mm-es rotation_distance, 200 steps_per_rotation \u00e9s 16 microstep tengelyen az \u00e1lland\u00f3 sebess\u00e9g\u0171 mozg\u00e1sok sor\u00e1n bevezetett rendszerszint\u0171 hiba ~0,006 mm. A legjobb helymeghat\u00e1roz\u00e1si pontoss\u00e1g \u00e9rdek\u00e9ben fontolja meg a SpreadCycle m\u00f3d haszn\u00e1lat\u00e1t \u00e9s az interpol\u00e1ci\u00f3 kikapcsol\u00e1s\u00e1t (\u00e1ll\u00edtsd be az interpolate: False \u00e9rt\u00e9ket a TMC motorvez\u00e9rl\u0151 konfigur\u00e1ci\u00f3j\u00e1ban). Ilyen konfigur\u00e1ci\u00f3 eset\u00e9n n\u00f6velhetj\u00fck a microstep be\u00e1ll\u00edt\u00e1st a l\u00e9ptet\u0151 mozg\u00e1sa k\u00f6zbeni hallhat\u00f3 zajok cs\u00f6kkent\u00e9se \u00e9rdek\u00e9ben. \u00c1ltal\u00e1ban a 64 vagy 128 mikrol\u00e9p\u00e9s be\u00e1ll\u00edt\u00e1sa az interpol\u00e1ci\u00f3hoz hasonl\u00f3 hallhat\u00f3 zajjal j\u00e1r, \u00e9s mindezt an\u00e9lk\u00fcl, hogy rendszerszint\u0171 helyzeti hib\u00e1t vezetne be. Ha a StealthChop m\u00f3dot haszn\u00e1lod, akkor az interpol\u00e1ci\u00f3b\u00f3l ered\u0151 helyzeti pontatlans\u00e1g kicsi a StealthChop m\u00f3db\u00f3l ered\u0151 helyzeti pontatlans\u00e1ghoz k\u00e9pest. Ez\u00e9rt az interpol\u00e1ci\u00f3 hangol\u00e1sa nem tekinthet\u0151 hasznosnak StealthChop \u00fczemm\u00f3dban, \u00e9s az interpol\u00e1ci\u00f3 alap\u00e9rtelmezett \u00e1llapotban hagyhat\u00f3.","title":"A TMC interpol\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sa kis poz\u00edci\u00f3elt\u00e9r\u00e9st eredm\u00e9nyez"},{"location":"TMC_Drivers.html#erzekelo-nelkuli-kezdopont","text":"Az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel lehet\u0151v\u00e9 teszi a tengely kezd\u0151pont felv\u00e9tel\u00e9t fizikai v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 n\u00e9lk\u00fcl. Ehelyett a tengelyen l\u00e9v\u0151 kocsit a mechanikus v\u00e9g\u00e1ll\u00e1sba mozgatja, \u00edgy a l\u00e9ptet\u0151motor l\u00e9p\u00e9seket vesz\u00edt. A l\u00e9ptet\u0151 meghajt\u00f3 \u00e9rz\u00e9keli az elveszett l\u00e9p\u00e9seket, \u00e9s ezt egy t\u0171 csatlakoz\u00e1son jelzi a vez\u00e9rl\u0151 MCU-nak (Klipper). Ezt az inform\u00e1ci\u00f3t a Klipper a tengely v\u00e9g\u00e1ll\u00e1sak\u00e9nt haszn\u00e1lhatja. Ez az \u00fatmutat\u00f3 az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel be\u00e1ll\u00edt\u00e1s\u00e1t mutatja be a (cartesian) nyomtat\u00f3 X tengely\u00e9re. Ez azonban ugyan\u00edgy m\u0171k\u00f6dik az \u00f6sszes t\u00f6bbi tengely eset\u00e9ben is (amelyek v\u00e9g\u00e1ll\u00e1st ig\u00e9nyelnek). Egyszerre csak egy tengelyre kell be\u00e1ll\u00edtani \u00e9s hangolni.","title":"\u00c9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont"},{"location":"TMC_Drivers.html#korlatozasok","text":"Gy\u0151z\u0151dj meg arr\u00f3l, hogy a mechanikus alkatr\u00e9szek k\u00e9pesek kezelni a tengely hat\u00e1r\u00e9rt\u00e9k\u00e9nek ism\u00e9telt \u00fctk\u00f6z\u00e9s\u00e9b\u0151l ered\u0151 terhel\u00e9st. K\u00fcl\u00f6n\u00f6sen a sz\u00edjak nagy er\u0151t fejthetnek ki. A Z tengelynek a f\u00fav\u00f3k\u00e1val a t\u00e1rgyasztalba val\u00f3 \u00fctk\u00f6z\u00e9ssel t\u00f6rt\u00e9n\u0151 szintez\u00e9se nem biztos, hogy j\u00f3 \u00f6tlet. A legjobb eredm\u00e9ny \u00e9rdek\u00e9ben ellen\u0151rizd, hogy a tengelyen l\u00e9v\u0151 kocsi szil\u00e1rdan \u00e9rintkezik-e a tengelyhat\u00e1rral. Tov\u00e1bb\u00e1, az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel nem biztos, hogy el\u00e9g pontos a nyomtat\u00f3d sz\u00e1m\u00e1ra. M\u00edg az X \u00e9s Y tengelyek kezd\u0151pont felv\u00e9tele egy cartesian g\u00e9pen j\u00f3l m\u0171k\u00f6dhet, a Z tengely kezd\u0151pont felv\u00e9tele \u00e1ltal\u00e1ban nem el\u00e9g pontos, \u00e9s k\u00f6vetkezetlen els\u0151 r\u00e9tegmagass\u00e1got eredm\u00e9nyezhet. A delta nyomtat\u00f3 \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tele a pontatlans\u00e1g miatt nem tan\u00e1csos. Tov\u00e1bb\u00e1 a l\u00e9ptet\u0151 meghajt\u00f3 elakad\u00e1s\u00e9rz\u00e9kel\u00e9se a motor mechanikai terhel\u00e9s\u00e9t\u0151l, a motor\u00e1ramt\u00f3l \u00e9s a motor h\u0151m\u00e9rs\u00e9klet\u00e9t\u0151l (tekercsellen\u00e1ll\u00e1st\u00f3l) is f\u00fcgg. Az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel k\u00f6zepes motorsebess\u00e9gn\u00e9l m\u0171k\u00f6dik a legjobban. Nagyon lass\u00fa fordulatsz\u00e1mokn\u00e1l (kevesebb mint 10 fordulat/perc) a motor nem termel jelent\u0151s ellen\u00e1ramot, \u00e9s a TMC nem k\u00e9pes megb\u00edzhat\u00f3an \u00e9rz\u00e9kelni a motor le\u00e1ll\u00e1s\u00e1t. Tov\u00e1bb\u00e1, nagyon nagy fordulatsz\u00e1mon a motor ellen-EMF-je megk\u00f6zel\u00edti a motor t\u00e1pfesz\u00fclts\u00e9g\u00e9t, \u00edgy a TMC m\u00e1r nem k\u00e9pes \u00e9rz\u00e9kelni a le\u00e1ll\u00e1st. Javasoljuk, hogy tekintsd meg az adott TMC-k adatlapj\u00e1t. Ott tov\u00e1bbi r\u00e9szleteket is tal\u00e1lhat ennek a be\u00e1ll\u00edt\u00e1snak a korl\u00e1tair\u00f3l.","title":"Korl\u00e1toz\u00e1sok"},{"location":"TMC_Drivers.html#elofeltetelek","text":"N\u00e9h\u00e1ny el\u0151felt\u00e9tel sz\u00fcks\u00e9ges az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel haszn\u00e1lat\u00e1hoz: StallGuard-k\u00e9pes TMC motorvez\u00e9rl\u0151 (TMC2130, TMC2209, TMC2660 vagy TMC5160). A TMC-motorvez\u00e9rl\u0151 SPI/UART interf\u00e9sze mikrokontrollerrel \u00f6sszek\u00f6tve (a stand-alone \u00fczemm\u00f3d nem m\u0171k\u00f6dik). A TMC motorvez\u00e9rl\u0151 megfelel\u0151 \"DIAG\" vagy \"SG_TST\" t\u0171je a mikrovez\u00e9rl\u0151h\u00f6z csatlakoztatva. A konfigur\u00e1ci\u00f3 ellen\u0151rz\u00e9sek dokumentumban szerepl\u0151 l\u00e9p\u00e9seket kell lefuttatni annak meger\u0151s\u00edt\u00e9s\u00e9re, hogy a l\u00e9ptet\u0151motorok megfelel\u0151en vannak konfigur\u00e1lva \u00e9s m\u0171k\u00f6dnek.","title":"El\u0151felt\u00e9telek"},{"location":"TMC_Drivers.html#hangolas","text":"Az itt le\u00edrt elj\u00e1r\u00e1s hat f\u0151 l\u00e9p\u00e9sb\u0151l \u00e1ll: V\u00e1laszd ki a kezd\u0151pont felv\u00e9teli sebess\u00e9get. Konfigur\u00e1ld a printer.cfg f\u00e1jlt, hogy enged\u00e9lyezd az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telt. Keresse meg a legnagyobb \u00e9rz\u00e9kenys\u00e9g\u0171 StallGuard be\u00e1ll\u00edt\u00e1st, amely sikeresen felveszi a kezd\u0151pontot. Keresse meg a legalacsonyabb \u00e9rz\u00e9kenys\u00e9g\u0171 StallGuard-be\u00e1ll\u00edt\u00e1st, amely egyetlen \u00e9rint\u00e9ssel sikeres meg\u00e1ll\u00e1st jelez. Friss\u00edtse a printer.cfg \u00e1llom\u00e1nyt a k\u00edv\u00e1nt StallGuard be\u00e1ll\u00edt\u00e1ssal. Hozzon l\u00e9tre vagy friss\u00edtse a printer.cfg makr\u00f3kat, hogy k\u00e9zn\u00e9l legyenek.","title":"Hangol\u00e1s"},{"location":"TMC_Drivers.html#valaszd-ki-a-kezdopont-felveteli-sebesseget","text":"A kezd\u0151pont felv\u00e9teli sebess\u00e9g fontos v\u00e1laszt\u00e1s az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel sor\u00e1n. Aj\u00e1nlott lass\u00fa \u00e1ll\u00edt\u00e1si sebess\u00e9get haszn\u00e1lni, hogy a kocsi ne gyakoroljon t\u00falzott er\u0151t a keretre, amikor a s\u00edn v\u00e9g\u00e9vel \u00e9rintkezik. A TMC motorvez\u00e9rl\u0151k azonban nagyon lass\u00fa sebess\u00e9gekn\u00e9l nem k\u00e9pesek megb\u00edzhat\u00f3an \u00e9rz\u00e9kelni az elakad\u00e1st. Az ind\u00edt\u00e1si sebess\u00e9gnek j\u00f3 kiindul\u00f3pontja az, hogy a l\u00e9ptet\u0151motor k\u00e9t m\u00e1sodpercenk\u00e9nt egy teljes fordulatot v\u00e9gezzen. Sok tengely eset\u00e9ben ez a rotation_distance osztva kett\u0151vel. P\u00e9ld\u00e1ul: [stepper_x] rotation_distance: 40 homing_speed: 20 ...","title":"V\u00e1laszd ki a kezd\u0151pont felv\u00e9teli sebess\u00e9get"},{"location":"TMC_Drivers.html#a-printercfg-beallitasa-erzekelo-nelkuli-kezdopont-felvetelhez","text":"A homing_retract_dist be\u00e1ll\u00edt\u00e1st null\u00e1ra kell \u00e1ll\u00edtani a stepper_x config szakaszban a m\u00e1sodik kezd\u0151pont felv\u00e9teli mozdulat letilt\u00e1s\u00e1hoz. A m\u00e1sodik kezd\u0151pont felv\u00e9teli k\u00eds\u00e9rlet nem ad hozz\u00e1adott \u00e9rt\u00e9ket az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telhez, nem fog megb\u00edzhat\u00f3an m\u0171k\u00f6dni, \u00e9s \u00f6sszezavarja a hangol\u00e1si folyamatot. Gy\u0151z\u0151dj meg r\u00f3la, hogy a konfigur\u00e1ci\u00f3 TMC motorvez\u00e9rl\u0151 r\u00e9szleg\u00e9ben nincs megadva hold_current be\u00e1ll\u00edt\u00e1s. (Ha hold_current haszn\u00e1latban van, akkor a kapcsolat l\u00e9trej\u00f6tte ut\u00e1n a motor meg\u00e1ll, mik\u00f6zben a kocsi a s\u00edn v\u00e9g\u00e9hez van nyomva, \u00e9s az \u00e1ram cs\u00f6kkent\u00e9se ebben a helyzetben a kocsi mozg\u00e1s\u00e1t okozhatja. Ez rossz teljes\u00edtm\u00e9nyt eredm\u00e9nyez, \u00e9s \u00f6sszezavarja a hangol\u00e1si folyamatot.) Sz\u00fcks\u00e9ges a szenzor n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9teli t\u0171k konfigur\u00e1l\u00e1sa \u00e9s a kezdeti \"StallGuard\" be\u00e1ll\u00edt\u00e1sok konfigur\u00e1l\u00e1sa. Egy TMC2209 p\u00e9ldakonfigur\u00e1ci\u00f3 egy X tengelyhez \u00edgy n\u00e9zhet ki: [tmc2209 stepper_x] diag_pin: ^PA1 # A TMC DIAG t\u0171h\u00f6z csatlakoztatott MCU t\u0171re \u00e1ll\u00edtva. driver_SGTHRS: 255 # 255 a leg\u00e9rz\u00e9kenyebb \u00e9rt\u00e9k, 0 a legkev\u00e9sb\u00e9 \u00e9rz\u00e9keny. ... [stepper_x] endstop_pin: tmc2209_stepper_x:virtual_endstop homing_retract_dist: 0 ... Egy TMC2130 vagy TMC5160 konfigur\u00e1ci\u00f3 p\u00e9ld\u00e1ul \u00edgy n\u00e9zhet ki: [tmc2130 stepper_x] diag1_pin: ^!PA1 # A TMC DIAG1 t\u0171h\u00f6z csatlakoztatott t\u0171 (vagy haszn\u00e1ld a diag0_pin / DIAG0 t\u0171t) driver_SGT: -64 # -64 a leg\u00e9rz\u00e9kenyebb \u00e9rt\u00e9k, 63 a legkev\u00e9sb\u00e9 \u00e9rz\u00e9keny. ... [stepper_x] endstop_pin: tmc2130_stepper_x:virtual_endstop homing_retract_dist: 0 ... Egy TMC2660 konfigur\u00e1ci\u00f3 \u00edgy n\u00e9zhet ki: [tmc2660 stepper_x] driver_SGT: -64 # -64 a leg\u00e9rz\u00e9kenyebb \u00e9rt\u00e9k, 63 a legkev\u00e9sb\u00e9 \u00e9rz\u00e9keny. ... [stepper_x] endstop_pin: ^PA1 # A TMC SG_TST t\u0171j\u00e9hez csatlakoztatott t\u0171. homing_retract_dist: 0 ... A fenti p\u00e9ld\u00e1k csak az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telre jellemz\u0151 be\u00e1ll\u00edt\u00e1sokat mutatj\u00e1k. Az \u00f6sszes el\u00e9rhet\u0151 be\u00e1ll\u00edt\u00e1s\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s referencia dokumentumot.","title":"A printer.cfg be\u00e1ll\u00edt\u00e1sa \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telhez"},{"location":"TMC_Drivers.html#keresse-meg-a-legmagasabb-erzekenyseget-amely-sikeresen-jelzi-a-kezdopontot","text":"Helyezze a kocsit a s\u00edn k\u00f6zep\u00e9hez k\u00f6zel. A SET_TMC_FIELD paranccsal \u00e1ll\u00edtsd be a legnagyobb \u00e9rz\u00e9kenys\u00e9get. A TMC2209 eset\u00e9ben: SET_TMC_FIELD STEPPER=stepper_x FIELD=SGTHRS VALUE=255 A TMC2130, TMC5160 \u00e9s a TMC2660 modellekhez: SET_TMC_FIELD STEPPER=stepper_x FIELD=sgt VALUE=-64 Ezut\u00e1n adj ki egy G28 X0 parancsot, \u00e9s ellen\u0151rizd, hogy a tengely egy\u00e1ltal\u00e1n nem mozog, vagy gyorsan meg\u00e1ll. Ha a tengely nem \u00e1ll meg, akkor adj ki egy M112 parancsot a nyomtat\u00f3 meg\u00e1ll\u00edt\u00e1s\u00e1ra. Valami nem stimmel a diag/sg_tst pin k\u00e1belez\u00e9s\u00e9vel vagy konfigur\u00e1ci\u00f3j\u00e1val, \u00e9s a folytat\u00e1s el\u0151tt ki kell jav\u00edtani. Ezut\u00e1n folyamatosan cs\u00f6kkentse a VALUE be\u00e1ll\u00edt\u00e1s \u00e9rz\u00e9kenys\u00e9g\u00e9t, \u00e9s futtassa le \u00fajra a SET_TMC_FIELD G28 X0 parancsokat, hogy megtal\u00e1lja a legnagyobb \u00e9rz\u00e9kenys\u00e9get, amely a kocsi sikeres mozg\u00e1s\u00e1t eredm\u00e9nyezi a v\u00e9g\u00e1ll\u00e1sig \u00e9s a meg\u00e1ll\u00e1sig. (A TMC2209 motorvez\u00e9rl\u0151k eset\u00e9ben ez az SGTHRS cs\u00f6kkent\u00e9se, m\u00e1s vez\u00e9rl\u0151k eset\u00e9ben az sgt n\u00f6vel\u00e9se lesz.) \u00dcgyelj arra, hogy minden k\u00eds\u00e9rletet \u00fagy kezdj, hogy a kocsi a s\u00edn k\u00f6zep\u00e9hez k\u00f6zel legyen (ha sz\u00fcks\u00e9ges, adj ki egy M84 parancsot, majd k\u00e9zzel mozgasd a kocsit k\u00f6z\u00e9p\u00e1ll\u00e1sba). Meg kell tal\u00e1lni a legnagyobb \u00e9rz\u00e9kenys\u00e9get, amely megb\u00edzhat\u00f3an jelzi a v\u00e9g\u00e1ll\u00e1st (a nagyobb \u00e9rz\u00e9kenys\u00e9g\u0171 be\u00e1ll\u00edt\u00e1sok kicsi vagy semmilyen mozg\u00e1st nem eredm\u00e9nyeznek). Jegyezze fel a kapott \u00e9rt\u00e9ket maximum_sensitivity n\u00e9ven. (Ha a lehet\u0151 legkisebb \u00e9rz\u00e9kenys\u00e9get (SGTHRS=0 vagy sgt=63) kapjuk a kocsi elmozdul\u00e1sa n\u00e9lk\u00fcl, akkor valami nincs rendben a diag/sg_tst t\u0171k bek\u00f6t\u00e9s\u00e9vel vagy konfigur\u00e1ci\u00f3j\u00e1val, \u00e9s a folytat\u00e1s el\u0151tt ki kell jav\u00edtani.) A maximum_sensitivity keres\u00e9sekor k\u00e9nyelmes lehet a k\u00fcl\u00f6nb\u00f6z\u0151 VALUE be\u00e1ll\u00edt\u00e1sokra ugrani (a VALUE param\u00e9ter kett\u00e9oszt\u00e1sa \u00e9rdek\u00e9ben). Ha ezt tessz\u00fck, akkor k\u00e9sz\u00fclj\u00fcnk fel arra, hogy a nyomtat\u00f3 le\u00e1ll\u00edt\u00e1s\u00e1hoz adjunk ki egy M112 parancsot, mivel egy nagyon alacsony \u00e9rz\u00e9kenys\u00e9g\u0171 be\u00e1ll\u00edt\u00e1s miatt a tengely t\u00f6bbsz\u00f6r \"bele\u00fctk\u00f6zhet\" a s\u00edn v\u00e9g\u00e9be. \u00dcgyelj arra, hogy v\u00e1rjon n\u00e9h\u00e1ny m\u00e1sodpercet minden egyes v\u00e9g\u00e1ll\u00e1si k\u00eds\u00e9rlet k\u00f6z\u00f6tt. Miut\u00e1n a TMC motorvez\u00e9rl\u0151 \u00e9rz\u00e9keli az elakad\u00e1st, eltarthat egy kis ideig, am\u00edg a bels\u0151 visszajelz\u0151je t\u00f6rl\u0151dik, \u00e9s k\u00e9pes lesz egy \u00fajabb meg\u00e1ll\u00e1st \u00e9rz\u00e9kelni. Ha a hangol\u00e1si tesztek sor\u00e1n a G28 X0 parancs nem mozdul el eg\u00e9szen a tengelyhat\u00e1rig, akkor \u00f3vatosan kell elj\u00e1rni a szab\u00e1lyos mozgat\u00e1si parancsok kiad\u00e1s\u00e1val (pl. G1 ). A Klipper nem fogja helyesen \u00e9rtelmezni a kocsi helyzet\u00e9t, \u00e9s a mozgat\u00e1si parancs nemk\u00edv\u00e1natos \u00e9s zavaros eredm\u00e9nyeket okozhat.","title":"Keresse meg a legmagasabb \u00e9rz\u00e9kenys\u00e9get, amely sikeresen jelzi a kezd\u0151pontot"},{"location":"TMC_Drivers.html#keresse-meg-a-legalacsonyabb-erzekenyseget-amely-egyetlen-erintessel-kezdoponton-van","text":"Ha a kapott maximum_sensitivity \u00e9rt\u00e9kkel \u00e1ll\u00edtja be a tengelyt a s\u00edn v\u00e9g\u00e9re, \u00e9s egy \"egyszeri \u00e9rint\u00e9ssel\" \u00e1ll meg, azaz nem szabad, hogy \"kattog\u00f3\" vagy \"csattan\u00f3\" hangot halljon. (Ha a maxim\u00e1lis \u00e9rz\u00e9kenys\u00e9g mellett csattan\u00f3 vagy kattog\u00f3 hang hallatszik, akkor a homing_speed t\u00fal alacsony, a meghajt\u00f3\u00e1ram t\u00fal alacsony, vagy az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel nem j\u00f3 v\u00e1laszt\u00e1s a tengely sz\u00e1m\u00e1ra.) A k\u00f6vetkez\u0151 l\u00e9p\u00e9s az, hogy a kocsit ism\u00e9t a s\u00edn k\u00f6zep\u00e9re mozgatjuk, cs\u00f6kkentj\u00fck az \u00e9rz\u00e9kenys\u00e9get, \u00e9s futtatjuk a SET_TMC_FIELD G28 X0 parancsokat. A c\u00e9l most az, hogy megtal\u00e1ljuk a legkisebb \u00e9rz\u00e9kenys\u00e9get, amely m\u00e9g mindig azt eredm\u00e9nyezi, hogy a kocsi egy \"egyetlen \u00e9rint\u00e9ssel\" sikeresen c\u00e9lba \u00e9r. Vagyis nem \"bumm\" vagy \"csatt\" a s\u00edn v\u00e9g\u00e9nek \u00e9rint\u00e9sekor. Jegyezze meg a tal\u00e1lt \u00e9rt\u00e9ket minimum_sensitivity .","title":"Keresse meg a legalacsonyabb \u00e9rz\u00e9kenys\u00e9get, amely egyetlen \u00e9rint\u00e9ssel kezd\u0151ponton van"},{"location":"TMC_Drivers.html#frissitse-a-printercfg-fajlt-az-erzekenysegi-ertekkel","text":"A maximum_sensitivity \u00e9s minimum_sensitivity meg\u00e1llap\u00edt\u00e1sa ut\u00e1n sz\u00e1mol\u00f3g\u00e9p seg\u00edts\u00e9g\u00e9vel kapjuk meg az aj\u00e1nlott \u00e9rz\u00e9kenys\u00e9get a minimum_sensitivity + (maximum_sensitivity - minimum_sensitivity)/3 k\u00e9plettel. Az aj\u00e1nlott \u00e9rz\u00e9kenys\u00e9gnek a minim\u00e1lis \u00e9s maxim\u00e1lis \u00e9rt\u00e9kek k\u00f6z\u00f6tti tartom\u00e1nyban kell lennie, de valamivel k\u00f6zelebb a minim\u00e1lis \u00e9rt\u00e9khez. A v\u00e9gs\u0151 \u00e9rt\u00e9ket kerek\u00edtse a legk\u00f6zelebbi eg\u00e9sz \u00e9rt\u00e9kre. A TMC2209 eset\u00e9ben ezt a konfigur\u00e1ci\u00f3ban a driver_SGTHRS , m\u00e1s TMC motorvez\u00e9rl\u0151k eset\u00e9ben a driver_SGT \u00e9rt\u00e9kkel kell be\u00e1ll\u00edtani. Ha a maximum_sensitivity \u00e9s minimum_sensitivity k\u00f6z\u00f6tti tartom\u00e1ny kicsi (pl. 5-n\u00e9l kisebb), akkor ez instabil kezd\u0151pont felv\u00e9telt eredm\u00e9nyezhet. A gyorsabb kezd\u0151pont felv\u00e9teli sebess\u00e9g n\u00f6velheti a hat\u00f3t\u00e1vols\u00e1got \u00e9s stabilabb\u00e1 teheti a m\u0171k\u00f6d\u00e9st. Vedd figyelembe, hogy ha b\u00e1rmilyen v\u00e1ltoz\u00e1s t\u00f6rt\u00e9nik a motorvez\u00e9rl\u0151 \u00e1ram\u00e1ban, az ind\u00edt\u00e1si sebess\u00e9gben vagy a nyomtat\u00f3 hardver\u00e9n, akkor a hangol\u00e1si folyamatot \u00fajra el kell v\u00e9gezni.","title":"Friss\u00edtse a printer.cfg f\u00e1jlt az \u00e9rz\u00e9kenys\u00e9gi \u00e9rt\u00e9kkel"},{"location":"TMC_Drivers.html#makrok-hasznalata-a-kezdopont-felvetel-soran","text":"Az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel befejez\u00e9se ut\u00e1n a kocsi a s\u00edn v\u00e9g\u00e9hez lesz nyomva, \u00e9s a l\u00e9ptet\u0151 er\u0151t fejt ki a keretre, am\u00edg a kocsi el nem mozdul. J\u00f3 \u00f6tlet egy makr\u00f3t l\u00e9trehozni a tengely kezd\u0151pont felv\u00e9tel\u00e9hez, \u00e9s azonnal elmozd\u00edtani a kocsit a s\u00edn v\u00e9g\u00e9t\u0151l. J\u00f3 \u00f6tlet, ha a makr\u00f3 legal\u00e1bb 2 m\u00e1sodperc sz\u00fcnetet tart az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel elind\u00edt\u00e1sa el\u0151tt (vagy m\u00e1s m\u00f3don biztos\u00edtja, hogy a l\u00e9ptet\u0151n 2 m\u00e1sodpercig nem volt mozg\u00e1s). A k\u00e9sleltet\u00e9s n\u00e9lk\u00fcl lehets\u00e9ges, hogy a meghajt\u00f3 bels\u0151 le\u00e1ll\u00e1si jelz\u0151je m\u00e9g mindig be van \u00e1ll\u00edtva egy kor\u00e1bbi mozg\u00e1s miatt. Az is hasznos lehet, ha ez a makr\u00f3 be\u00e1ll\u00edtja a meghajt\u00f3 \u00e1ram\u00e1t a kezd\u0151pont felv\u00e9tel el\u0151tt, \u00e9s \u00faj \u00e1ramot \u00e1ll\u00edt be, miut\u00e1n a kocsi elindult. Egy p\u00e9ldamakr\u00f3 \u00edgy n\u00e9zhet 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 %} # \u00c1ll\u00edtsuk be az \u00e1ramot az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telhez SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR} # Sz\u00fcnet annak biztos\u00edt\u00e1s\u00e1ra, hogy a meghajt\u00f3 le\u00e1ll\u00e1si jelz\u0151je t\u00f6rl\u0151dj\u00f6n. G4 P2000 # Kezd\u0151pont G28 X0 # Elmozdul\u00e1s G90 G1 X5 F1200 # \u00c1ll\u00edtsd be az \u00e1ramer\u0151ss\u00e9get nyomtat\u00e1s k\u00f6zben SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CUR} Az \u00edgy kapott makr\u00f3 megh\u00edvhat\u00f3 a homing_override konfigur\u00e1ci\u00f3s szakasz vagy a START_PRINT makr\u00f3 seg\u00edts\u00e9g\u00e9vel. Vedd figyelembe, hogy ha a motorvez\u00e9rl\u0151 \u00e1ram\u00e1t a kezd\u0151pont felv\u00e9tel sor\u00e1n megv\u00e1ltoztatj\u00e1k, akkor a hangol\u00e1si folyamatot \u00fajra el kell v\u00e9gezni.","title":"Makr\u00f3k haszn\u00e1lata a kezd\u0151pont felv\u00e9tel sor\u00e1n"},{"location":"TMC_Drivers.html#tippek-corexy-gepek-szenzor-nelkuli-kezdopont-felvetelehez","text":"A CoreXY nyomtat\u00f3 X \u00e9s Y kocsikn\u00e1l \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telre is van lehet\u0151s\u00e9g. A Klipper a [stepper_x] l\u00e9ptet\u0151t haszn\u00e1lja az X kocsi kezd\u0151pont felv\u00e9telekor az elakad\u00e1sok \u00e9rz\u00e9kel\u00e9s\u00e9re, az Y kocsi kezd\u0151pont felv\u00e9telekor pedig a [stepper_y] l\u00e9ptet\u0151t. Haszn\u00e1ld a fent le\u00edrt hangol\u00e1si \u00fatmutat\u00f3t, hogy megtal\u00e1lja a megfelel\u0151 \"elakad\u00e1s \u00e9rz\u00e9kenys\u00e9get\" az egyes kocsikhoz, de vedd figyelembe a k\u00f6vetkez\u0151 korl\u00e1toz\u00e1sokat: Ha a CoreXY-n \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telt haszn\u00e1l, gy\u0151z\u0151dj meg r\u00f3la, hogy egyik l\u00e9ptet\u0151h\u00f6z sincs be\u00e1ll\u00edtva hold_current . A hangol\u00e1s sor\u00e1n gy\u0151z\u0151dj meg arr\u00f3l, hogy az X \u00e9s az Y kocsik a s\u00ednek k\u00f6zep\u00e9n\u00e9l vannak-e minden egyes kezd\u0151pont felv\u00e9teli k\u00eds\u00e9rlet el\u0151tt. A hangol\u00e1s befejez\u00e9se ut\u00e1n az X \u00e9s Y kezd\u0151pont felv\u00e9tel\u00e9t makr\u00f3k seg\u00edts\u00e9g\u00e9vel biztos\u00edtsa, hogy el\u0151sz\u00f6r az egyik tengely vedd fel a kezd\u0151pontot, majd mozgasd el a kocsit a tengelyhat\u00e1rt\u00f3l, tartson legal\u00e1bb 2 m\u00e1sodperc sz\u00fcnetet, majd kezd el a m\u00e1sik kocsi kezd\u0151pont felv\u00e9tel\u00e9t. A tengelyt\u0151l val\u00f3 elt\u00e1volod\u00e1ssal elker\u00fclhet\u0151, hogy az egyik tengelyt akkor ind\u00edtsuk el, amikor a m\u00e1sik a tengelyhat\u00e1rhoz van nyomva (ami eltorz\u00edthatja az akad\u00e1s\u00e9rz\u00e9kel\u00e9st). A sz\u00fcnetre az\u00e9rt van sz\u00fcks\u00e9g, hogy a meghajt\u00f3 az \u00fajraind\u00edt\u00e1s el\u0151tt t\u00f6r\u00f6lje az elakad\u00e1s \u00e9rz\u00e9kel\u0151 puffert. Egy p\u00e9lda CoreXY kezd\u0151pont felv\u00e9teli makr\u00f3 \u00edgy n\u00e9zhet ki: [gcode_macro HOME] gcode: G90 # Kezd\u0151pont Z G28 Z0 G1 Z10 F1200 # Kezd\u0151pont Y G28 Y0 G1 Y5 F1200 # Kezd\u0151pont X G4 P2000 G28 X0 G1 X5 F1200","title":"Tippek CoreXY g\u00e9pek szenzor n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel\u00e9hez"},{"location":"TMC_Drivers.html#a-motorvezerlo-beallitasainak-lekerdezese-es-diagnosztizalasa","text":"A ` DUMP_TMC parancs hasznos eszk\u00f6z a motorvez\u00e9rl\u0151k konfigur\u00e1l\u00e1s\u00e1hoz \u00e9s diagnosztiz\u00e1l\u00e1s\u00e1hoz. A Klipper \u00e1ltal konfigur\u00e1lt \u00f6sszes mez\u0151t, valamint a motorvez\u00e9rl\u0151t lek\u00e9rdezhet\u0151 \u00f6sszes mez\u0151t jelenti. Az \u00f6sszes bejelentett mez\u0151t az egyes motorvez\u00e9rl\u0151k Trinamic adatlapja hat\u00e1rozza meg. Ezek az adatlapok megtal\u00e1lhat\u00f3k a Trinamic weboldal\u00e1n . A DUMP_TMC eredm\u00e9nyeinek \u00e9rtelmez\u00e9s\u00e9hez szerezd be \u00e9s tekintsd \u00e1t a meghajt\u00f3 Trinamic adatlapj\u00e1t.","title":"A motorvez\u00e9rl\u0151 be\u00e1ll\u00edt\u00e1sainak lek\u00e9rdez\u00e9se \u00e9s diagnosztiz\u00e1l\u00e1sa"},{"location":"TMC_Drivers.html#a-driver_xxx-beallitasok-konfiguralasa","text":"A Klipper t\u00e1mogatja sz\u00e1mos alacsony szint\u0171 motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1s\u00e1t a driver_XXX be\u00e1ll\u00edt\u00e1sok haszn\u00e1lat\u00e1val. A TMC meghajt\u00f3 konfigur\u00e1ci\u00f3s hivatkoz\u00e1s tartalmazza az egyes meghajt\u00f3t\u00edpusokhoz el\u00e9rhet\u0151 mez\u0151k teljes list\u00e1j\u00e1t. Ezenk\u00edv\u00fcl szinte minden mez\u0151 m\u00f3dos\u00edthat\u00f3 haszn\u00e1lat k\u00f6zben a SET_TMC_FIELD parancs seg\u00edts\u00e9g\u00e9vel. E mez\u0151k mindegyik\u00e9t az egyes meghajt\u00f3k Trinamic adatlapja hat\u00e1rozza meg. Ezek az adatlapok megtal\u00e1lhat\u00f3k a Trinamic weboldal\u00e1n . Vedd figyelembe, hogy a Trinamic adatlapok n\u00e9ha olyan megfogalmaz\u00e1st haszn\u00e1lnak, amely \u00f6sszet\u00e9veszthet egy magas szint\u0171 be\u00e1ll\u00edt\u00e1st (p\u00e9ld\u00e1ul \"hysteresis end\") egy alacsony szint\u0171 mez\u0151\u00e9rt\u00e9kkel (pl. \"HEND\"). A Klipperben a driver_XXX \u00e9s a SET_TMC_FIELD mindig azt az alacsony szint\u0171 mez\u0151\u00e9rt\u00e9ket \u00e1ll\u00edtja be, amely t\u00e9nylegesen a meghajt\u00f3ba \u00edr\u00f3dik. \u00cdgy p\u00e9ld\u00e1ul, ha a Trinamic adatlapja szerint 3 \u00e9rt\u00e9ket kell \u00edrni a HEND mez\u0151be, hogy a \"hiszter\u00e9zis v\u00e9ge\" 0 legyen, akkor a driver_HEND=3 be\u00e1ll\u00edt\u00e1s\u00e1val a 0 magas szint\u0171 \u00e9rt\u00e9ket kapjuk.","title":"A driver_XXX be\u00e1ll\u00edt\u00e1sok konfigur\u00e1l\u00e1sa"},{"location":"TMC_Drivers.html#gyakori-kerdesek","text":"","title":"Gyakori k\u00e9rd\u00e9sek"},{"location":"TMC_Drivers.html#hasznalhatom-a-stealthchop-uzemmodot-nyomas-elotolassal-rendelkezo-extruderen","text":"Sokan sikeresen haszn\u00e1lj\u00e1k a \"StealthChop\" \u00fczemm\u00f3dot a Klipper nyom\u00e1s el\u0151tol\u00e1ssal. A Klipper sim\u00edtott nyom\u00e1s el\u0151tol\u00e1sa , amely nem vezet be pillanatnyi sebess\u00e9g v\u00e1ltoz\u00e1st. A \"StealthChop\" \u00fczemm\u00f3d azonban alacsonyabb motornyomat\u00e9kot \u00e9s/vagy nagyobb motorh\u0151t eredm\u00e9nyezhet. Lehet, hogy ez az \u00fczemm\u00f3d megfelel\u0151 az \u00d6n adott nyomtat\u00f3ja sz\u00e1m\u00e1ra, de az is lehet, hogy nem.","title":"Haszn\u00e1lhatom a StealthChop \u00fczemm\u00f3dot nyom\u00e1s el\u0151tol\u00e1ssal rendelkez\u0151 extruderen?"},{"location":"TMC_Drivers.html#folyamatosan-kap-nem-tudom-olvasni-a-tmc-uart-stepper_x-regiszter-ifcnt-hibakat","text":"Ez akkor fordul el\u0151, ha a Klipper nem tud kommunik\u00e1lni egy TMC2208 vagy TMC2209 meghajt\u00f3val. Gy\u0151z\u0151dj meg r\u00f3la, hogy a motor t\u00e1pell\u00e1t\u00e1sa enged\u00e9lyezve van, mivel a l\u00e9ptet\u0151motor-meghajt\u00f3nak \u00e1ltal\u00e1ban motor\u00e1ramra van sz\u00fcks\u00e9ge, miel\u0151tt kommunik\u00e1lni tudna a mikrokontrollerrel. Ha ez a hiba a Klipper els\u0151 \u00e9get\u00e9se ut\u00e1n jelentkezik, akkor a l\u00e9ptet\u0151 meghajt\u00f3 kor\u00e1bban olyan \u00e1llapotba programoz\u00f3dott, amely nem kompatibilis a Klipperrel. Az \u00e1llapot vissza\u00e1ll\u00edt\u00e1s\u00e1hoz n\u00e9h\u00e1ny m\u00e1sodpercre t\u00e1vol\u00edtsa el a nyomtat\u00f3t az \u00e1ramell\u00e1t\u00e1st\u00f3l (fizikailag h\u00fazza ki az USB-t \u00e9s a h\u00e1l\u00f3zati csatlakoz\u00f3t). Ellenkez\u0151 esetben ez a hiba \u00e1ltal\u00e1ban az UART t\u0171 helytelen vezet\u00e9kez\u00e9s\u00e9nek vagy az UART t\u0171be\u00e1ll\u00edt\u00e1sok helytelen Klipper konfigur\u00e1ci\u00f3j\u00e1nak eredm\u00e9nye.","title":"Folyamatosan kap \"Nem tudom olvasni a tmc uart 'stepper_x' regiszter IFCNT\" hib\u00e1kat?"},{"location":"TMC_Drivers.html#folyamatosan-kap-nem-lehet-irni-tmc-spi-stepper_x-register-hibat","text":"Ez akkor fordul el\u0151, ha a Klipper nem tud kommunik\u00e1lni egy TMC2208 vagy TMC2209 motorvez\u00e9rl\u0151vel. Gy\u0151z\u0151dj meg r\u00f3la, hogy a motor t\u00e1pell\u00e1t\u00e1sa enged\u00e9lyezve van, mivel a l\u00e9ptet\u0151motor-meghajt\u00f3nak \u00e1ltal\u00e1ban motor\u00e1ramra van sz\u00fcks\u00e9ge, miel\u0151tt kommunik\u00e1lni tudna a mikrokontrollerrel. Ellenkez\u0151 esetben ez a hiba \u00e1ltal\u00e1ban a helytelen SPI vezet\u00e9kez\u00e9s, az SPI be\u00e1ll\u00edt\u00e1sok helytelen Klipper-konfigur\u00e1ci\u00f3ja vagy az SPI buszon l\u00e9v\u0151 eszk\u00f6z\u00f6k hi\u00e1nyos konfigur\u00e1ci\u00f3j\u00e1nak eredm\u00e9nye. Ne feledd, hogy ha a motorvez\u00e9rl\u0151 egy megosztott SPI buszon van t\u00f6bb eszk\u00f6zzel, akkor gy\u0151z\u0151dj meg r\u00f3la, hogy teljes m\u00e9rt\u00e9kben konfigur\u00e1ld a Klipperben l\u00e9v\u0151 megosztott SPI busz minden eszk\u00f6z\u00e9t. Ha egy megosztott SPI buszon l\u00e9v\u0151 eszk\u00f6z nincs konfigur\u00e1lva, akkor el\u0151fordulhat, hogy helytelen\u00fcl reag\u00e1l a nem erre sz\u00e1nt parancsokra, \u00e9s meghi\u00fasul a k\u00edv\u00e1nt eszk\u00f6zzel folytatott kommunik\u00e1ci\u00f3. Ha van olyan eszk\u00f6z egy megosztott SPI buszon, amelyet nem lehet konfigur\u00e1lni a Klipperben, akkor a static_digital_output konfigur\u00e1ci\u00f3s szakasz seg\u00edts\u00e9g\u00e9vel \u00e1ll\u00edtsd magasra a nem haszn\u00e1lt eszk\u00f6z CS t\u0171j\u00e9t (hogy ne k\u00eds\u00e9relje meg haszn\u00e1lni az SPI buszt). A t\u00e1bla v\u00e1zlata gyakran hasznos referencia annak meg\u00e1llap\u00edt\u00e1s\u00e1hoz, hogy mely eszk\u00f6z\u00f6k vannak egy SPI buszon \u00e9s a hozz\u00e1juk tartoz\u00f3 t\u0171k\u00f6n.","title":"Folyamatosan kap \"Nem lehet \u00edrni tmc spi \"stepper_x\" register ...\" hib\u00e1t?"},{"location":"TMC_Drivers.html#miert-kaptam-egy-tmc-jelentes-hiba-hibauzenetet","text":"Az ilyen t\u00edpus\u00fa hiba azt jelzi, hogy a TMC motorvez\u00e9rl\u0151 hib\u00e1t \u00e9szlelt, \u00e9s letiltotta mag\u00e1t. Vagyis a meghajt\u00f3 abbahagyta a poz\u00edci\u00f3j\u00e1t, \u00e9s figyelmen k\u00edv\u00fcl hagyta a mozg\u00e1si parancsokat. Ha a Klipper azt \u00e9szleli, hogy egy akt\u00edv motorvez\u00e9rl\u0151 letiltotta mag\u00e1t, a nyomtat\u00f3t \"le\u00e1ll\u00edt\u00e1s\" \u00e1llapotba \u00e1ll\u00edtja. Az is lehets\u00e9ges, hogy a TMC hiba le\u00e1ll\u00edt\u00e1sa SPI hib\u00e1k miatt k\u00f6vetkezik be, amelyek megakad\u00e1lyozz\u00e1k a motorvez\u00e9rl\u0151kkel val\u00f3 kommunik\u00e1ci\u00f3t (TMC2130, TMC5160 vagy TMC2660). Ebben az esetben gyakori, hogy a jelentett motorvez\u00e9rl\u0151 \u00e1llapota 000000000 vagy ffffffffff - p\u00e9ld\u00e1ul: TMC hib\u00e1t jelent: DRV_STATUS: ffffffff ... VAGY TMC jelent\u00e9sek hiba: READRSP@RDSEL2: 00000000 ... . Az ilyen hiba oka lehet egy SPI vezet\u00e9kez\u00e9si probl\u00e9ma, vagy lehet a vissza\u00e1ll\u00edt\u00e1s, vagy a TMC motorvez\u00e9rl\u0151. N\u00e9h\u00e1ny gyakori hiba \u00e9s tipp a diagnosztiz\u00e1l\u00e1shoz:","title":"Mi\u00e9rt kaptam egy \"TMC jelent\u00e9s hiba: ...\" hiba\u00fczenetet?"},{"location":"TMC_Drivers.html#tmc-hibat-jelent-ot1overtemperror","text":"Ez azt jelzi, hogy a motorvez\u00e9rl\u0151 kikapcsolta mag\u00e1t, mert t\u00falmelegedett. A tipikus megold\u00e1sok a l\u00e9ptet\u0151motor \u00e1ram\u00e1nak cs\u00f6kkent\u00e9se, a motorvez\u00e9rl\u0151 \u00e9s/vagy a l\u00e9ptet\u0151motor h\u0171t\u00e9se.","title":"TMC hib\u00e1t jelent: ... ot=1(OvertempError!)"},{"location":"TMC_Drivers.html#a-tmc-hibat-jelent-shorttognd-vagy-lowsideshort","text":"Ez azt jelzi, hogy a motorvez\u00e9rl\u0151 letiltotta mag\u00e1t, mert nagyon magas \u00e1ramot \u00e9rz\u00e9kelt a meghajt\u00f3n kereszt\u00fcl. Ez azt jelezheti, hogy meglazult vagy r\u00f6vidre z\u00e1rt vezet\u00e9k van a l\u00e9ptet\u0151motorban vagy mag\u00e1hoz a l\u00e9ptet\u0151motorhoz fut\u00f3 vezet\u00e9k hib\u00e1s. Ez a hiba akkor is el\u0151fordulhat, ha StealthChop \u00fczemm\u00f3dot haszn\u00e1l, \u00e9s a TMC motorvez\u00e9rl\u0151 nem k\u00e9pes pontosan megj\u00f3solni a motor mechanikai terhel\u00e9s\u00e9t. (Ha a motorvez\u00e9rl\u0151 rosszul j\u00f3sol, akkor el\u0151fordulhat, hogy t\u00fal nagy \u00e1ramot k\u00fcld a motoron kereszt\u00fcl, \u00e9s ezzel kiv\u00e1ltja saj\u00e1t t\u00fal\u00e1ram-\u00e9rz\u00e9kel\u00e9s\u00e9t). Ennek tesztel\u00e9s\u00e9hez kapcsolja ki a StealthChop \u00fczemm\u00f3dot, \u00e9s ellen\u0151rizd, hogy a hib\u00e1k tov\u00e1bbra is el\u0151fordulnak-e.","title":"A TMC hib\u00e1t jelent: ... ShortToGND VAGY LowSideShort"},{"location":"TMC_Drivers.html#a-tmc-hibat-jelent-reset1reset-vagy-cs_actual0reset-vagy-se0reset","text":"Ez azt jelzi, hogy a motorvez\u00e9rl\u0151 a nyomtat\u00e1s k\u00f6zep\u00e9n vissza\u00e1ll\u00edtotta mag\u00e1t. Ennek oka lehet fesz\u00fclts\u00e9g vagy vezet\u00e9kez\u00e9si probl\u00e9ma.","title":"A TMC hib\u00e1t jelent: ... reset=1(Reset) VAGY CS_ACTUAL=0(Reset?) VAGY SE=0(Reset?)"},{"location":"TMC_Drivers.html#a-tmc-hibat-jelent-uv_cp1undervoltage","text":"Ez azt jelzi, hogy a motorvez\u00e9rl\u0151 alacsony fesz\u00fclts\u00e9get \u00e9szlelt, \u00e9s letiltotta mag\u00e1t. Ennek oka lehet vezet\u00e9kez\u00e9si vagy t\u00e1pell\u00e1t\u00e1si probl\u00e9ma.","title":"A TMC hib\u00e1t jelent: ... uv_cp=1(Undervoltage!)"},{"location":"TMC_Drivers.html#hogyan-tudom-beallitani-a-spreadcyclecoolstepetc-uzemmodot-a-motorvezerloimhez","text":"A Trinamic weboldal tartalmaz \u00fatmutat\u00f3kat a motorvez\u00e9rl\u0151k konfigur\u00e1l\u00e1s\u00e1hoz. Ezek az \u00fatmutat\u00f3k gyakran technikai jelleg\u0171ek, alacsony szint\u0171ek, \u00e9s speci\u00e1lis hardvert ig\u00e9nyelhetnek. Ett\u0151l f\u00fcggetlen\u00fcl ez a legjobb inform\u00e1ci\u00f3forr\u00e1s.","title":"Hogyan tudom be\u00e1ll\u00edtani a spreadCycle/coolStep/etc. \u00fczemm\u00f3dot a motorvez\u00e9rl\u0151imhez?"},{"location":"TSL1401CL_Filament_Width_Sensor.html","text":"TSL1401CL nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 \u00b6 Ez a dokumentum a nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 gazdag\u00e9p modulj\u00e1t \u00edrja le. A gazdamodul fejleszt\u00e9s\u00e9hez haszn\u00e1lt hardver a TSL1401CL line\u00e1ris \u00e9rz\u00e9kel\u0151t\u00f6mb\u00f6n alapul, de b\u00e1rmilyen anal\u00f3g kimenettel rendelkez\u0151 \u00e9rz\u00e9kel\u0151t\u00f6mbbel m\u0171k\u00f6dik. Terveket a Thingiverse oldalon tal\u00e1lja. \u00c9rz\u00e9kel\u0151t\u00f6mb nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151k\u00e9nt val\u00f3 haszn\u00e1lat\u00e1hoz olvasd el a Konfigur\u00e1ci\u00f3s hivatkoz\u00e1s \u00e9s a G-k\u00f3d dokument\u00e1ci\u00f3 r\u00e9szt. Hogyan m\u0171k\u00f6dik? \u00b6 Az \u00e9rz\u00e9kel\u0151 anal\u00f3g kimenetet gener\u00e1l a sz\u00e1m\u00edtott nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9ge alapj\u00e1n. A kimeneti fesz\u00fclts\u00e9g mindig megegyezik a nyomtat\u00f3sz\u00e1l \u00e9rz\u00e9kelt sz\u00e9less\u00e9g\u00e9vel (pl. 1,65 V, 1,70 V, 3,0 V). A gazdamodul figyeli a fesz\u00fclts\u00e9gv\u00e1ltoz\u00e1sokat \u00e9s be\u00e1ll\u00edtja az extrud\u00e1l\u00e1si szorz\u00f3t. Jegyzet: \u00b6 Az \u00e9rz\u00e9kel\u0151 leolvas\u00e1sa alap\u00e9rtelmez\u00e9s szerint 10 mm-es id\u0151k\u00f6z\u00f6nk\u00e9nt t\u00f6rt\u00e9nik. Ha sz\u00fcks\u00e9ges, szabadon m\u00f3dos\u00edthatja ezt a be\u00e1ll\u00edt\u00e1st a MEASUREMENT_INTERVAL_MM param\u00e9ter szerkeszt\u00e9s\u00e9vel a filament_width_sensor.py f\u00e1jlban.","title":"TSL1401CL nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151"},{"location":"TSL1401CL_Filament_Width_Sensor.html#tsl1401cl-nyomtatoszal-szelesseg-erzekelo","text":"Ez a dokumentum a nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 gazdag\u00e9p modulj\u00e1t \u00edrja le. A gazdamodul fejleszt\u00e9s\u00e9hez haszn\u00e1lt hardver a TSL1401CL line\u00e1ris \u00e9rz\u00e9kel\u0151t\u00f6mb\u00f6n alapul, de b\u00e1rmilyen anal\u00f3g kimenettel rendelkez\u0151 \u00e9rz\u00e9kel\u0151t\u00f6mbbel m\u0171k\u00f6dik. Terveket a Thingiverse oldalon tal\u00e1lja. \u00c9rz\u00e9kel\u0151t\u00f6mb nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151k\u00e9nt val\u00f3 haszn\u00e1lat\u00e1hoz olvasd el a Konfigur\u00e1ci\u00f3s hivatkoz\u00e1s \u00e9s a G-k\u00f3d dokument\u00e1ci\u00f3 r\u00e9szt.","title":"TSL1401CL nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151"},{"location":"TSL1401CL_Filament_Width_Sensor.html#hogyan-mukodik","text":"Az \u00e9rz\u00e9kel\u0151 anal\u00f3g kimenetet gener\u00e1l a sz\u00e1m\u00edtott nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9ge alapj\u00e1n. A kimeneti fesz\u00fclts\u00e9g mindig megegyezik a nyomtat\u00f3sz\u00e1l \u00e9rz\u00e9kelt sz\u00e9less\u00e9g\u00e9vel (pl. 1,65 V, 1,70 V, 3,0 V). A gazdamodul figyeli a fesz\u00fclts\u00e9gv\u00e1ltoz\u00e1sokat \u00e9s be\u00e1ll\u00edtja az extrud\u00e1l\u00e1si szorz\u00f3t.","title":"Hogyan m\u0171k\u00f6dik?"},{"location":"TSL1401CL_Filament_Width_Sensor.html#jegyzet","text":"Az \u00e9rz\u00e9kel\u0151 leolvas\u00e1sa alap\u00e9rtelmez\u00e9s szerint 10 mm-es id\u0151k\u00f6z\u00f6nk\u00e9nt t\u00f6rt\u00e9nik. Ha sz\u00fcks\u00e9ges, szabadon m\u00f3dos\u00edthatja ezt a be\u00e1ll\u00edt\u00e1st a MEASUREMENT_INTERVAL_MM param\u00e9ter szerkeszt\u00e9s\u00e9vel a filament_width_sensor.py f\u00e1jlban.","title":"Jegyzet:"},{"location":"Using_PWM_Tools.html","text":"PWM eszk\u00f6z\u00f6k haszn\u00e1lata \u00b6 Ez a dokumentum le\u00edrja, hogyan \u00e1ll\u00edthat be egy PWM-vez\u00e9relt l\u00e9zert vagy ors\u00f3t az output_pin \u00e9s n\u00e9h\u00e1ny makr\u00f3 seg\u00edts\u00e9g\u00e9vel. Hogyan m\u0171k\u00f6dik? \u00b6 A nyomtat\u00f3fej ventil\u00e1tor PWM kimenet\u00e9nek felhaszn\u00e1l\u00e1s\u00e1val l\u00e9zereket vagy ors\u00f3kat vez\u00e9relhet. Ez akkor hasznos, ha kapcsolhat\u00f3 nyomtat\u00f3fejeket haszn\u00e1l, p\u00e9ld\u00e1ul az E3D szersz\u00e1mv\u00e1lt\u00f3 vagy egy bark\u00e1csmegold\u00e1s. \u00c1ltal\u00e1ban az olyan cam-tool, mint a LaserWeb, \u00fagy konfigur\u00e1lhat\u00f3k, hogy M3-M5 parancsokat haszn\u00e1ljanak, amelyek spindle speed CW ( M3 S[0-255] ), ors\u00f3 fordulatsz\u00e1m * ( M4 S[0-255] ) \u00e9s ors\u00f3stop* ( M5 ). Figyelmeztet\u00e9s: A l\u00e9zer haszn\u00e1latakor tartson be minden biztons\u00e1gi \u00f3vint\u00e9zked\u00e9st, amit csak lehet! A di\u00f3dal\u00e9zerek \u00e1ltal\u00e1ban invert\u00e1ltak. Ez azt jelenti, hogy amikor az MCU \u00fajraindul, a l\u00e9zer teljesen be lesz kapcsolva arra az id\u0151re. A biztons\u00e1g kedv\u00e9\u00e9rt aj\u00e1nlott mindig megfelel\u0151 hull\u00e1mhossz\u00fas\u00e1g\u00fa l\u00e9zerszem\u00fcveget viselni, ha a l\u00e9zer be van kapcsolva, \u00e9s a l\u00e9zert le kell kapcsolni, ha nincs r\u00e1 sz\u00fcks\u00e9g. Emellett be kell \u00e1ll\u00edtania egy biztons\u00e1gi id\u0151korl\u00e1tot, hogy ha a gazdag\u00e9p vagy az MCU hib\u00e1t \u00e9szlel, a szersz\u00e1m le\u00e1lljon. Egy p\u00e9ldakonfigur\u00e1ci\u00f3\u00e9rt l\u00e1sd config/sample-pwm-tool.cfg . Jelenlegi korl\u00e1toz\u00e1sok \u00b6 Korl\u00e1tozott, hogy milyen gyakoriak lehetnek a PWM-friss\u00edt\u00e9sek. B\u00e1r nagyon pontos, a PWM friss\u00edt\u00e9s csak 0,1 m\u00e1sodpercenk\u00e9nt fordulhat el\u0151, \u00edgy szinte haszn\u00e1lhatatlann\u00e1 v\u00e1lik a rasztergrav\u00edroz\u00e1shoz. L\u00e9tezik azonban egy k\u00eds\u00e9rleti \u00e1g , amelynek saj\u00e1t kompromisszumai vannak. Hossz\u00fa t\u00e1von azt tervezik, hogy ezt a funkci\u00f3t hozz\u00e1adj\u00e1k a f\u0151vonali klipperhez. Parancsok \u00b6 M3/M4 S<value> : PWM-\u00fczemm\u00f3d be\u00e1ll\u00edt\u00e1sa. \u00c9rt\u00e9kek 0 \u00e9s 255 k\u00f6z\u00f6tt. M5 : PWM kimenet le\u00e1ll\u00edt\u00e1sa a kikapcsol\u00e1si \u00e9rt\u00e9kre. Laserweb konfigur\u00e1ci\u00f3 \u00b6 Ha a Laserwebet haszn\u00e1lod, akkor a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3 m\u0171k\u00f6dhet: GCODE START: M5 ; L\u00e9zer letilt\u00e1sa G21 ;\u00c1ll\u00edtsd az egys\u00e9geket mm-re G90 ; Abszol\u00fat pozicion\u00e1l\u00e1s G0 Z0 F7000 ;\u00c1ll\u00edtsd be a nem v\u00e1g\u00e1si sebess\u00e9get GCODE END: M5 ; L\u00e9zer letilt\u00e1sa G91 ; relat\u00edv G0 Z+20 F4000 ; G90 ; abszol\u00fat GCODE HOMING: M5 ; L\u00e9zer letilt\u00e1sa G28 ; Kezd\u0151pontfelv\u00e9tel minden tengelyen TOOL ON: M3 $INTENSITY TOOL OFF: M5 ; L\u00e9zer letilt\u00e1sa LASER INTENSITY: S","title":"PWM eszk\u00f6z\u00f6k haszn\u00e1lata"},{"location":"Using_PWM_Tools.html#pwm-eszkozok-hasznalata","text":"Ez a dokumentum le\u00edrja, hogyan \u00e1ll\u00edthat be egy PWM-vez\u00e9relt l\u00e9zert vagy ors\u00f3t az output_pin \u00e9s n\u00e9h\u00e1ny makr\u00f3 seg\u00edts\u00e9g\u00e9vel.","title":"PWM eszk\u00f6z\u00f6k haszn\u00e1lata"},{"location":"Using_PWM_Tools.html#hogyan-mukodik","text":"A nyomtat\u00f3fej ventil\u00e1tor PWM kimenet\u00e9nek felhaszn\u00e1l\u00e1s\u00e1val l\u00e9zereket vagy ors\u00f3kat vez\u00e9relhet. Ez akkor hasznos, ha kapcsolhat\u00f3 nyomtat\u00f3fejeket haszn\u00e1l, p\u00e9ld\u00e1ul az E3D szersz\u00e1mv\u00e1lt\u00f3 vagy egy bark\u00e1csmegold\u00e1s. \u00c1ltal\u00e1ban az olyan cam-tool, mint a LaserWeb, \u00fagy konfigur\u00e1lhat\u00f3k, hogy M3-M5 parancsokat haszn\u00e1ljanak, amelyek spindle speed CW ( M3 S[0-255] ), ors\u00f3 fordulatsz\u00e1m * ( M4 S[0-255] ) \u00e9s ors\u00f3stop* ( M5 ). Figyelmeztet\u00e9s: A l\u00e9zer haszn\u00e1latakor tartson be minden biztons\u00e1gi \u00f3vint\u00e9zked\u00e9st, amit csak lehet! A di\u00f3dal\u00e9zerek \u00e1ltal\u00e1ban invert\u00e1ltak. Ez azt jelenti, hogy amikor az MCU \u00fajraindul, a l\u00e9zer teljesen be lesz kapcsolva arra az id\u0151re. A biztons\u00e1g kedv\u00e9\u00e9rt aj\u00e1nlott mindig megfelel\u0151 hull\u00e1mhossz\u00fas\u00e1g\u00fa l\u00e9zerszem\u00fcveget viselni, ha a l\u00e9zer be van kapcsolva, \u00e9s a l\u00e9zert le kell kapcsolni, ha nincs r\u00e1 sz\u00fcks\u00e9g. Emellett be kell \u00e1ll\u00edtania egy biztons\u00e1gi id\u0151korl\u00e1tot, hogy ha a gazdag\u00e9p vagy az MCU hib\u00e1t \u00e9szlel, a szersz\u00e1m le\u00e1lljon. Egy p\u00e9ldakonfigur\u00e1ci\u00f3\u00e9rt l\u00e1sd config/sample-pwm-tool.cfg .","title":"Hogyan m\u0171k\u00f6dik?"},{"location":"Using_PWM_Tools.html#jelenlegi-korlatozasok","text":"Korl\u00e1tozott, hogy milyen gyakoriak lehetnek a PWM-friss\u00edt\u00e9sek. B\u00e1r nagyon pontos, a PWM friss\u00edt\u00e9s csak 0,1 m\u00e1sodpercenk\u00e9nt fordulhat el\u0151, \u00edgy szinte haszn\u00e1lhatatlann\u00e1 v\u00e1lik a rasztergrav\u00edroz\u00e1shoz. L\u00e9tezik azonban egy k\u00eds\u00e9rleti \u00e1g , amelynek saj\u00e1t kompromisszumai vannak. Hossz\u00fa t\u00e1von azt tervezik, hogy ezt a funkci\u00f3t hozz\u00e1adj\u00e1k a f\u0151vonali klipperhez.","title":"Jelenlegi korl\u00e1toz\u00e1sok"},{"location":"Using_PWM_Tools.html#parancsok","text":"M3/M4 S<value> : PWM-\u00fczemm\u00f3d be\u00e1ll\u00edt\u00e1sa. \u00c9rt\u00e9kek 0 \u00e9s 255 k\u00f6z\u00f6tt. M5 : PWM kimenet le\u00e1ll\u00edt\u00e1sa a kikapcsol\u00e1si \u00e9rt\u00e9kre.","title":"Parancsok"},{"location":"Using_PWM_Tools.html#laserweb-konfiguracio","text":"Ha a Laserwebet haszn\u00e1lod, akkor a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3 m\u0171k\u00f6dhet: GCODE START: M5 ; L\u00e9zer letilt\u00e1sa G21 ;\u00c1ll\u00edtsd az egys\u00e9geket mm-re G90 ; Abszol\u00fat pozicion\u00e1l\u00e1s G0 Z0 F7000 ;\u00c1ll\u00edtsd be a nem v\u00e1g\u00e1si sebess\u00e9get GCODE END: M5 ; L\u00e9zer letilt\u00e1sa G91 ; relat\u00edv G0 Z+20 F4000 ; G90 ; abszol\u00fat GCODE HOMING: M5 ; L\u00e9zer letilt\u00e1sa G28 ; Kezd\u0151pontfelv\u00e9tel minden tengelyen TOOL ON: M3 $INTENSITY TOOL OFF: M5 ; L\u00e9zer letilt\u00e1sa LASER INTENSITY: S","title":"Laserweb konfigur\u00e1ci\u00f3"}]} \ No newline at end of file
+{"config":{"indexing":"full","lang":["hu"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"index.html","text":"A Klipper egy 3D nyomtat\u00f3 firmware. Egyes\u00edti egy \u00e1ltal\u00e1nos c\u00e9l\u00fa sz\u00e1m\u00edt\u00f3g\u00e9p \u00e9s egy vagy t\u00f6bb mikrokontroller teljes\u00edtm\u00e9ny\u00e9t. A jellemz\u0151k dokumentumban tal\u00e1lsz tov\u00e1bbi inform\u00e1ci\u00f3kat arr\u00f3l, hogy mi\u00e9rt \u00e9rdemes a Klippert haszn\u00e1lni. A Klipper haszn\u00e1lat\u00e1nak megkezd\u00e9s\u00e9hez kezdje a telep\u00edt\u00e9st . A Klipper szabad szoftver. Olvassa el a dokument\u00e1ci\u00f3t vagy tekintse meg a Klipper k\u00f3dj\u00e1t a githubon .","title":"\u00dcdv\u00f6zl\u00fcnk"},{"location":"API_Server.html","text":"API szerver \u00b6 Ez a dokumentum le\u00edrja a Klipper Alkalmaz\u00e1s Programoz\u00f3i Interf\u00e9szt (API). Ez az interf\u00e9sz lehet\u0151v\u00e9 teszi k\u00fcls\u0151 alkalmaz\u00e1sok sz\u00e1m\u00e1ra a Klipper gazdaszoftver lek\u00e9rdez\u00e9s\u00e9t \u00e9s vez\u00e9rl\u00e9s\u00e9t. Az API foglalat enged\u00e9lyez\u00e9se \u00b6 Az API-kiszolg\u00e1l\u00f3 haszn\u00e1lat\u00e1hoz a klippy.py host szoftvert a -a param\u00e9terrel kell elind\u00edtani. P\u00e9ld\u00e1ul: ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer.cfg -a /tmp/klippy_uds -l /tmp/klippy.log Ennek hat\u00e1s\u00e1ra a gazdaszoftver l\u00e9trehoz egy Unix Domain Socket-et. Az \u00fcgyf\u00e9l ezut\u00e1n kapcsolatot nyithat ezen kereszt\u00fcl, \u00e9s parancsokat k\u00fcldhet a Klippernek. L\u00e1sd a Moonraker projektet egy n\u00e9pszer\u0171 eszk\u00f6z\u00e9rt, amely k\u00e9pes tov\u00e1bb\u00edtani a HTTP-k\u00e9r\u00e9seket a Klipper's API Server Unix Domain Socket-hez. K\u00e9relem form\u00e1tuma \u00b6 A socket-en k\u00fcld\u00f6tt \u00e9s fogadott \u00fczenetek JSON k\u00f3dol\u00e1s\u00fa karakterl\u00e1ncok, amelyeket egy ASCII 0x03 karakter z\u00e1r le: <json_object_1><0x03><json_object_2><0x03>... A Klipper tartalmaz egy scripts/whconsole.py eszk\u00f6zt, amely k\u00e9pes a fenti \u00fczenetkeretez\u00e9st elv\u00e9gezni. P\u00e9ld\u00e1ul: ~/klipper/scripts/whconsole.py /tmp/klippy_uds Ez az eszk\u00f6z k\u00e9pes beolvasni egy sor JSON parancsot az stdin-b\u0151l, elk\u00fcldeni \u0151ket a Klippernek, \u00e9s jelenteni az eredm\u00e9nyeket. Az eszk\u00f6z elv\u00e1rja, hogy minden JSON parancs egyetlen sorban legyen, \u00e9s a k\u00e9r\u00e9s elk\u00fcld\u00e9sekor automatikusan hozz\u00e1adja a 0x03 v\u00e9grehajt\u00f3t. (A Klipper API szervernek nincs \u00faj sor k\u00f6vetelm\u00e9nye.) API Protokoll \u00b6 A kommunik\u00e1ci\u00f3s foglalat \u00e1ltal haszn\u00e1lt parancsprotokollt a json-rpc ihlette. Egy k\u00e9r\u00e9s \u00edgy n\u00e9zhet ki: {\"id\": 123, \"method\": \"info\", \"params\": {}} \u00e9s a v\u00e1lasz \u00edgy n\u00e9zhet ki: {\"id\": 123, \"result\": {\"state_message\": \"Printer is ready\", \"klipper_path\": \"/home/pi/klipper\", \"config_file\": \"/home/pi/printer.cfg\", \"software_version\": \"v0.8.0-823-g883b1cb6\", \"hostname\": \"octopi\", \"cpu_info\": \"4 core ARMv7 Processor rev 4 (v7l)\", \"state\": \"ready\", \"python_path\": \"/home/pi/klippy-env/bin/python\", \"log_file\": \"/tmp/klippy.log\"}} Minden egyes k\u00e9r\u00e9snek egy JSON sz\u00f3t\u00e1rnak kell lennie. (Ez a dokumentum a Pythonban a \"sz\u00f3t\u00e1r\" kifejez\u00e9st haszn\u00e1lja a \"JSON objektum\" - a </x>{} -ban tal\u00e1lhat\u00f3 kulcs/\u00e9rt\u00e9k p\u00e1rok lek\u00e9pez\u00e9se, le\u00edr\u00e1s\u00e1ra.) A k\u00e9r\u00e9si sz\u00f3t\u00e1rnak tartalmaznia kell egy \"method\" param\u00e9tert, amely egy el\u00e9rhet\u0151 Klipper \"v\u00e9gpont\" h\u00far neve. A k\u00e9r\u00e9si sz\u00f3t\u00e1r tartalmazhat egy \"params\" param\u00e9tert, amelynek sz\u00f3t\u00e1r t\u00edpus\u00fanak kell lennie. A \"params\" tov\u00e1bbi param\u00e9terinform\u00e1ci\u00f3kat biztos\u00edt a k\u00e9r\u00e9st kezel\u0151 Klipper \"v\u00e9gpont\" sz\u00e1m\u00e1ra. Tartalma a \"v\u00e9gpontra\" jellemz\u0151. A k\u00e9r\u00e9si sz\u00f3t\u00e1r tartalmazhat egy \"id\" param\u00e9tert, amely b\u00e1rmilyen JSON t\u00edpus\u00fa lehet. Ha az \"id\" param\u00e9ter jelen van, akkor a Klipper egy v\u00e1lasz\u00fczenettel v\u00e1laszol a k\u00e9r\u00e9sre, amely tartalmazza ezt az \"id\" param\u00e9tert. Ha az \"id\" nincs megadva (vagy egy JSON \"null\" \u00e9rt\u00e9kre van be\u00e1ll\u00edtva), akkor a Klipper nem ad v\u00e1laszt a k\u00e9r\u00e9sre. A v\u00e1lasz\u00fczenet egy JSON sz\u00f3t\u00e1r, amely tartalmazza az \"id\" \u00e9s az \"eredm\u00e9ny\" \u00e9rt\u00e9keket. A \"result\" mindig egy sz\u00f3t\u00e1r melynek tartalma a k\u00e9r\u00e9st kezel\u0151 \"v\u00e9gpontra\" jellemz\u0151. Ha egy k\u00e9r\u00e9s feldolgoz\u00e1sa hib\u00e1t eredm\u00e9nyez, akkor a v\u00e1lasz\u00fczenet egy \"hiba\" mez\u0151t fog tartalmazni az \"eredm\u00e9ny\" mez\u0151 helyett. P\u00e9ld\u00e1ul a k\u00e9r\u00e9s: {\"id\": 123, \"method\": \"gcode/script\", \"params\": {\"script\": \"G1 X200\"}}} egy olyan hib\u00e1s v\u00e1laszt eredm\u00e9nyezhet, mint p\u00e9ld\u00e1ul: {\"id\": 123, \"error\": {\"message\": \"Must home axis first: 200.000 0.000 0.000 0.000 [0.000]\", \"error\": \"WebRequestError\"}} A Klipper mindig a be\u00e9rkez\u00e9s\u00fck sorrendj\u00e9ben kezdi meg a k\u00e9r\u00e9sek feldolgoz\u00e1s\u00e1t. El\u0151fordulhat azonban, hogy egyes k\u00e9r\u00e9sek nem fejez\u0151dnek be azonnal, ami azt eredm\u00e9nyezheti, hogy a kapcsol\u00f3d\u00f3 v\u00e1lasz m\u00e1s k\u00e9r\u00e9sek v\u00e1laszaihoz k\u00e9pest nem a megfelel\u0151 sorrendben ker\u00fcl elk\u00fcld\u00e9sre. Egy JSON-k\u00e9r\u00e9s soha nem fogja sz\u00fcneteltetni a j\u00f6v\u0151beli JSON-k\u00e9r\u00e9sek feldolgoz\u00e1s\u00e1t. Feliratkoz\u00e1sok \u00b6 N\u00e9h\u00e1ny Klipper \"v\u00e9gpont\" k\u00e9r\u00e9s lehet\u0151v\u00e9 teszi a \"feliratkoz\u00e1st\" a j\u00f6v\u0151beli aszinkron friss\u00edt\u00e9si \u00fczenetekre. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"gcode/subscribe_output\", \"params\": {\"response_template\":{\"key\": 345}}} kezdetben v\u00e1laszolhat: {\"id\": 123, \"result\": {}} \u00e9s a Klipper a k\u00f6vetkez\u0151h\u00f6z hasonl\u00f3 \u00fczeneteket fog k\u00fcldeni a j\u00f6v\u0151ben: {\"params\": {\"response\": \"ok B:22.8 /0.0 T0:22.4 /0.0\"}, \"key\": 345} Az el\u0151fizet\u00e9si k\u00e9r\u00e9s elfogad egy \"response_template\" sz\u00f3t\u00e1rat a k\u00e9r\u00e9s \"params\" mez\u0151j\u00e9ben. Ez a \"response_template\" sz\u00f3t\u00e1r sablonk\u00e9nt szolg\u00e1l a j\u00f6v\u0151beli aszinkron \u00fczenetekhez. Tetsz\u0151leges kulcs/\u00e9rt\u00e9k p\u00e1rokat tartalmazhat. Ezen j\u00f6v\u0151beli aszinkron \u00fczenetek k\u00fcld\u00e9sekor a Klipper hozz\u00e1ad egy \"params\" mez\u0151t, amely egy \"endpoint\" specifikus tartalm\u00fa sz\u00f3t\u00e1rat tartalmaz a v\u00e1laszsablonnak, majd elk\u00fcldi ezt a sablont. Ha nem adunk meg egy \"response_template\" mez\u0151t, akkor az alap\u00e9rtelmez\u00e9s szerint egy \u00fcres sz\u00f3t\u00e1r lesz ( {} ). El\u00e9rhet\u0151 \"v\u00e9gpontok\" \u00b6 A Klipper \"v\u00e9gpontok\" a konvenci\u00f3 szerint a <module_name>/<some_name> form\u00e1j\u00faak. Ha egy \"v\u00e9gponthoz\" int\u00e9z\u00fcnk k\u00e9r\u00e9st, a teljes nevet a k\u00e9r\u00e9si sz\u00f3t\u00e1r \"method\" param\u00e9ter\u00e9ben kell megadni (pl. {\"method\"=\"gcode/restart\"} ). inf\u00f3 \u00b6 Az \"info\" v\u00e9gpontot a Klipper rendszert \u00e9s verzi\u00f3inform\u00e1ci\u00f3inak lek\u00e9rdez\u00e9s\u00e9re haszn\u00e1ljuk. Arra is szolg\u00e1l, hogy a kliens verzi\u00f3t a Klipper sz\u00e1m\u00e1ra megadd. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"info\", \"params\": { \"client_info\": { \"version\": \"v1\"}}}} Ha jelen van a \"client_info\" param\u00e9ter egy sz\u00f3t\u00e1rnak kell lennie, de a sz\u00f3t\u00e1r tetsz\u0151leges tartalm\u00fa lehet. A felhaszn\u00e1l\u00f3knak aj\u00e1nlott megadniuk az \u00fcgyf\u00e9l nev\u00e9t \u00e9s a szoftver verzi\u00f3j\u00e1t, amikor el\u0151sz\u00f6r csatlakoznak a Klipper API kiszolg\u00e1l\u00f3hoz. emergency_stop \u00b6 Az \"emergency_stop\" v\u00e9gpont arra szolg\u00e1l, hogy utas\u00edtsa a Klippert a \"shutdown\" \u00e1llapotba val\u00f3 \u00e1tmenetre. Hasonl\u00f3an viselkedik, mint a G-k\u00f3d M112 parancs. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"emergency_stop\"} register_remote_method \u00b6 Ez a v\u00e9gpont lehet\u0151v\u00e9 teszi az \u00fcgyfelek sz\u00e1m\u00e1ra, hogy regisztr\u00e1lj\u00e1k a klipperb\u0151l h\u00edvhat\u00f3 met\u00f3dusokat. Siker eset\u00e9n egy \u00fcres objektumot ad vissza. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"register_remote_method\", \"params\": {\"response_template\": {\"action\": \"run_paneldue_beep\"}, \"remote_method\": \"paneldue_beep\"}}} fog visszat\u00e9rni: {\"id\": 123, \"result\": {}} A t\u00e1voli paneldue_beep met\u00f3dus mostant\u00f3l h\u00edvhat\u00f3 a Klipperb\u0151l. Vegy\u00fck figyelembe, hogy ha a met\u00f3dus param\u00e9tereket vesz fel, akkor azokat kulcsszavas argumentumk\u00e9nt kell megadni. Az al\u00e1bbiakban egy p\u00e9lda l\u00e1that\u00f3 arra, hogyan h\u00edvhat\u00f3 meg egy gcode_macro-b\u00f3l: [gcode_macro PANELDUE_BEEP] gcode: {action_call_remote_method(\"paneldue_beep\", frequency=300, duration=1.0)} Amikor a PANELDUE_BEEP G-k\u00f3d makr\u00f3 v\u00e9grehajt\u00f3dik, a Klipper valami ilyesmit k\u00fcld a kapcsolaton kereszt\u00fcl: {\"action\": \"run_paneldue_beep\", \"params\": {\"frequency\": 300, \"duration\": 1.0}} objects/list \u00b6 Ez a v\u00e9gpont lek\u00e9rdezi az el\u00e9rhet\u0151 nyomtat\u00f3 objektumok list\u00e1j\u00e1t, amelyeket lek\u00e9rdezhet\u00fcnk (az \"objects/query\" v\u00e9gponton kereszt\u00fcl). P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"objects/list\"} visszat\u00e9rhet: {\"id\": 123, \"result\": {\"objects\": [\"webhooks\", \"configfile\", \"heaters\", \"gcode_move\", \"query_endstops\", \"idle_timeout\", \"toolhead\", \"extruder\"]}} objects/query \u00b6 Ez a v\u00e9gpont lehet\u0151v\u00e9 teszi a nyomtat\u00f3 objektumokb\u00f3l sz\u00e1rmaz\u00f3 inform\u00e1ci\u00f3k lek\u00e9rdez\u00e9s\u00e9t. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"objects/query\", \"params\": {\"objects\": {\"toolhead\": [\"position\"], \"webhooks\": null}}}} might return: {\"id\": 123, \"result\": {\"status\": {\"webhooks\": {\"state\": \"ready\", \"state_message\": \"Printer is ready\"}, \"toolhead\": {\"position\": [0.0, 0.0, 0.0, 0.0, 0.0]}}, \"eventtime\": 3051555.377933684}} A k\u00e9r\u00e9s \"objects\" param\u00e9ter\u00e9nek egy sz\u00f3t\u00e1rnak kell lennie, amely a lek\u00e9rdezend\u0151 nyomtat\u00f3 objektumokat tartalmazza. A kulcs a nyomtat\u00f3 objektum nev\u00e9t tartalmazza, az \u00e9rt\u00e9k pedig vagy \"null\" (az \u00f6sszes mez\u0151 lek\u00e9rdez\u00e9se), vagy a mez\u0151nevek list\u00e1ja. A v\u00e1lasz\u00fczenet tartalmaz egy \"status\" mez\u0151t, amely egy sz\u00f3t\u00e1rat tartalmaz a lek\u00e9rdezett inform\u00e1ci\u00f3kkal. A kulcs a nyomtat\u00f3 objektum nev\u00e9t tartalmazza, az \u00e9rt\u00e9k pedig a mez\u0151it tartalmaz\u00f3 sz\u00f3t\u00e1r. A v\u00e1lasz\u00fczenet tartalmaz egy \"eventtime\" mez\u0151t is, amely a lek\u00e9rdez\u00e9s id\u0151pontj\u00e1nak id\u0151b\u00e9lyeg\u00e9t tartalmazza. A rendelkez\u00e9sre \u00e1ll\u00f3 mez\u0151k a \u00c1llapothivatkoz\u00e1s dokumentumban vannak dokument\u00e1lva. objects/subscribe \u00b6 Ez a v\u00e9gpont lehet\u0151v\u00e9 teszi a nyomtat\u00f3 objektumokb\u00f3l sz\u00e1rmaz\u00f3 inform\u00e1ci\u00f3k lek\u00e9rdez\u00e9s\u00e9t, majd el\u0151jegyz\u00e9s\u00e9t. A v\u00e9gpont k\u00e9r\u00e9se \u00e9s v\u00e1lasza megegyezik a \"objects/query\" v\u00e9gponttal. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"objects/subscribe\", \"params\": {\"objects\":{\"toolhead\": [\"position\"], \"webhooks\": [\"state\"]}, \"response_template\":{}}} might return: {\"id\": 123, \"result\": {\"status\": {\"webhooks\": {\"state\": \"ready\"}, \"toolhead\": {\"position\": [0.0, 0.0, 0.0, 0.0, 0.0]}}, \"eventtime\": 3052153.382083195}} \u00e9s az ezt k\u00f6vet\u0151 aszinkron \u00fczeneteket eredm\u00e9nyez, mint p\u00e9ld\u00e1ul: {\"params\": {\"status\": {\"webhooks\": {\"state\": \"shutdown\"}}, \"eventtime\": 3052165.418815847}} gcode/help \u00b6 Ez a v\u00e9gpont lehet\u0151v\u00e9 teszi a rendelkez\u00e9sre \u00e1ll\u00f3 G-k\u00f3d parancsok lek\u00e9rdez\u00e9s\u00e9t, amelyekhez s\u00fag\u00f3sz\u00f6veg van defini\u00e1lva. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"gcode/help\"} visszat\u00e9rhet: {\"id\": 123, \"result\": {\"RESTORE_GCODE_STATE\": \"Egy kor\u00e1bban elmentett G-k\u00f3d \u00e1llapot vissza\u00e1ll\u00edt\u00e1sa\", \"PID_CALIBRATE\": \"PID kalibr\u00e1ci\u00f3s teszt futtat\u00e1sa\", \"QUERY_ADC\": \"Egy anal\u00f3g t\u0171 utols\u00f3 \u00e9rt\u00e9k\u00e9nek jelent\u00e9se\", ...}} gcode/script \u00b6 Ez a v\u00e9gpont lehet\u0151v\u00e9 teszi egy sor G-k\u00f3d parancs futtat\u00e1s\u00e1t. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"gcode/script\", \"params\": {\"script\": \"G90\"}}} Ha a megadott G-k\u00f3d szkript hib\u00e1t okoz, akkor a rendszer hibav\u00e1laszt gener\u00e1l. Ha azonban a G-k\u00f3d parancs termin\u00e1l kimenetet eredm\u00e9nyez, a termin\u00e1l kimenete nem szerepel a v\u00e1laszban. (A \"gcode/subscribe_output\" v\u00e9gpontot haszn\u00e1ld a G-k\u00f3d termin\u00e1lkimenethez.) Ha a k\u00e9r\u00e9s be\u00e9rkez\u00e9sekor \u00e9ppen egy G-k\u00f3d parancsot dolgoznak fel, akkor a megadott szkript sorba ker\u00fcl. Ez a k\u00e9sedelem jelent\u0151s lehet (pl. ha egy G-k\u00f3dos h\u0151m\u00e9rs\u00e9kleti v\u00e1rakoz\u00e1s parancs fut). A JSON v\u00e1lasz\u00fczenet akkor ker\u00fcl elk\u00fcld\u00e9sre, amikor a parancsf\u00e1jl feldolgoz\u00e1sa teljesen befejez\u0151d\u00f6tt. gcode/restart \u00b6 Ez a v\u00e9gpont lehet\u0151v\u00e9 teszi az \u00fajraind\u00edt\u00e1s k\u00e9r\u00e9s\u00e9t, hasonl\u00f3an a G-k\u00f3d \"RESTART\" parancs futtat\u00e1s\u00e1hoz. P\u00e9ld\u00e1ul: {\"id\": } <x id=\"123, \"method\": \"gcode/restart\"}` A \"gcode/script\" v\u00e9gponthoz hasonl\u00f3an ez a v\u00e9gpont is csak a f\u00fcgg\u0151ben l\u00e9v\u0151 G-k\u00f3d parancsok befejez\u00e9se ut\u00e1n fejez\u0151dik be. gcode/firmware_restart \u00b6 Ez hasonl\u00f3 a \"gcode/restart\" v\u00e9gponthoz. A G-k\u00f3d \"FIRMWARE_RESTART\" parancsot val\u00f3s\u00edtja meg. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"gcode/firmware_restart\"} A \"gcode/script\" v\u00e9gponthoz hasonl\u00f3an ez a v\u00e9gpont is csak a f\u00fcgg\u0151ben l\u00e9v\u0151 G-k\u00f3d parancsok befejez\u00e9se ut\u00e1n fejez\u0151dik be. gcode/subscribe_output \u00b6 Ez a v\u00e9gpont a Klipper \u00e1ltal gener\u00e1lt G-k\u00f3dos termin\u00e1l\u00fczenetekre val\u00f3 feliratkoz\u00e1sra szolg\u00e1l. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"gcode/subscribe_output\", \"params\": {\"response_template\":{}}}} k\u00e9s\u0151bb olyan aszinkron \u00fczeneteket eredm\u00e9nyezhet, mint p\u00e9ld\u00e1ul: {\"params\": {\"response\": \"// Klipper state: Shutdown\"}} Ez a v\u00e9gpont az emberi interakci\u00f3t hivatott t\u00e1mogatni egy \"termin\u00e1lablak\" interf\u00e9szen kereszt\u00fcl. A G-k\u00f3d termin\u00e1l kimenet\u00e9b\u0151l sz\u00e1rmaz\u00f3 tartalom elemz\u00e9se nem javasolt. A Klipper \u00e1llapot\u00e1nak friss\u00edt\u00e9s\u00e9hez haszn\u00e1ld az \"objects/subscribe\" v\u00e9gpontot. motion_report/dump_stepper \u00b6 Ez a v\u00e9gpont a Klipper bels\u0151 l\u00e9ptet\u0151 queue_step parancsfolyamra val\u00f3 feliratkoz\u00e1sra szolg\u00e1l egy l\u00e9ptet\u0151 sz\u00e1m\u00e1ra. Ezeknek az alacsony szint\u0171 mozg\u00e1sfriss\u00edt\u00e9seknek a lek\u00e9r\u00e9se hasznos lehet diagnosztikai \u00e9s hibakeres\u00e9si c\u00e9lokra. Ennek a v\u00e9gpontnak a haszn\u00e1lata n\u00f6velheti a Klipper rendszer terhel\u00e9s\u00e9t. Egy k\u00e9r\u00e9s \u00edgy n\u00e9zhet ki: {\"id\": 123, \"method\":\"motion_report/dump_stepper\", \"params\": {\"name\": \"stepper_x\", \"response_template\": {}}} \u00e9s esetleg visszat\u00e9r: {\"id\": 123, \"result\": {\"header\": }}} , \u00e9s k\u00e9s\u0151bb aszinkron \u00fczeneteket produk\u00e1lhat, mint p\u00e9ld\u00e1ul: [\"intervallum\", \"count\", \"add\"]}} : }` A kezdeti lek\u00e9rdez\u00e9si v\u00e1lasz \"header\" mez\u0151je a k\u00e9s\u0151bbi \"data\" v\u00e1laszokban tal\u00e1lhat\u00f3 mez\u0151k le\u00edr\u00e1s\u00e1ra szolg\u00e1l. motion_report/dump_trapq \u00b6 Ezt a v\u00e9gpontot a Klipper bels\u0151 \"trap\u00e9zmozg\u00e1s v\u00e1r\u00f3list\u00e1ra\" val\u00f3 feliratkoz\u00e1sra haszn\u00e1lj\u00e1k. Ezeknek az alacsony szint\u0171 mozg\u00e1sfriss\u00edt\u00e9seknek a lek\u00e9r\u00e9se hasznos lehet diagnosztikai \u00e9s hibakeres\u00e9si c\u00e9lokra. Ennek a v\u00e9gpontnak a haszn\u00e1lata n\u00f6velheti a Klipper rendszer terhel\u00e9s\u00e9t. Egy k\u00e9r\u00e9s \u00edgy n\u00e9zhet ki: {\"id\": 123, \"method\": \"motion_report/dump_trapq\", \"params\": {\"name\": \"toolhead\", \"response_template\":{}}} \u00e9s esetleg visszat\u00e9r: {\"id\": 1, \"result\": {\"header\": [\"time\", \"duration\", \"start_velocity\", \"acceleration\", \"start_position\", \"direction\"]}}} \u00e9s k\u00e9s\u0151bb aszinkron \u00fczeneteket produk\u00e1lhat, mint p\u00e9ld\u00e1ul: {\"params\": {\"data\": [[4.05, 1.0, 0.0, 0.0, 0.0, [300.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0]], [5.054, 0.001, 0.0, 3000.0, [300.0, 0.0, 0.0, 0.0], [-1.0, 0.0, 0.0, 0.0]]}} A kezdeti lek\u00e9rdez\u00e9si v\u00e1lasz \"header\" mez\u0151je a k\u00e9s\u0151bbi \"data\" v\u00e1laszokban tal\u00e1lhat\u00f3 mez\u0151k le\u00edr\u00e1s\u00e1ra szolg\u00e1l. adxl345/dump_adxl345 \u00b6 Ez a v\u00e9gpont az ADXL345 gyorsul\u00e1sm\u00e9r\u0151 adataira val\u00f3 feliratkoz\u00e1sra szolg\u00e1l. Ezeknek az alacsony szint\u0171 mozg\u00e1sfriss\u00edt\u00e9seknek a lek\u00e9r\u00e9se hasznos lehet diagnosztikai \u00e9s hibakeres\u00e9si c\u00e9lokra. Ennek a v\u00e9gpontnak a haszn\u00e1lata n\u00f6velheti a Klipper rendszer terhel\u00e9s\u00e9t. Egy k\u00e9r\u00e9s \u00edgy n\u00e9zhet ki: {\"id\": 123, \"method\":\"adxl345/dump_adxl345\", \"params\": {\"sensor\": \"adxl345\", \"response_template\": {}}} \u00e9s esetleg visszat\u00e9r: {\"id\": 123,\"result\":{\"header\":[\"time\",\"x_acceleration\",\"y_acceleration\", \"z_acceleration\"]}}} \u00e9s k\u00e9s\u0151bb olyan aszinkron \u00fczeneteket produk\u00e1lhat, mint p\u00e9ld\u00e1ul: {\"params\":{\"overflows\":0,\"data\":[[3292.432935,-535.44309,-1529.8374,9561.4], [3292.433256,-382.45935,-1606.32927,9561.48375]]}} A kezdeti lek\u00e9rdez\u00e9si v\u00e1lasz \"header\" mez\u0151je a k\u00e9s\u0151bbi \"data\" v\u00e1laszokban tal\u00e1lhat\u00f3 mez\u0151k le\u00edr\u00e1s\u00e1ra szolg\u00e1l. angle/dump_angle \u00b6 Ez a v\u00e9gpont a sz\u00f6g\u00e9rz\u00e9kel\u0151 adatainak feliratkoz\u00e1s\u00e1ra szolg\u00e1l. Ezeknek az alacsony szint\u0171 mozg\u00e1sfriss\u00edt\u00e9seknek a lek\u00e9r\u00e9se hasznos lehet diagnosztikai \u00e9s hibakeres\u00e9si c\u00e9lokra. Ennek a v\u00e9gpontnak a haszn\u00e1lata n\u00f6velheti a Klipper rendszer terhel\u00e9s\u00e9t. Egy k\u00e9r\u00e9s \u00edgy n\u00e9zhet ki: {\"id\": 123, \"method\":\"angle/dump_angle\", \"params\": {\"sensor\": \"my_angle_sensor\", \"response_template\": {}}} \u00e9s esetleg visszat\u00e9r: {\"id\": 123,\"result\":{\"header\":[\"time\",\"angle\"]}}} \u00e9s k\u00e9s\u0151bb olyan aszinkron \u00fczeneteket produk\u00e1lhat, mint p\u00e9ld\u00e1ul: {\"params\":{\"position_offset\":3.151562,\"errors\":0, \"data\":[[1290.951905,-5063],[1290.952321,-5065]]}} A kezdeti lek\u00e9rdez\u00e9si v\u00e1lasz \"header\" mez\u0151je a k\u00e9s\u0151bbi \"data\" v\u00e1laszokban tal\u00e1lhat\u00f3 mez\u0151k le\u00edr\u00e1s\u00e1ra szolg\u00e1l. pause_resume/cancel \u00b6 Ez a v\u00e9gpont hasonl\u00f3 a \"PRINT_CANCEL\" G-k\u00f3d parancs futtat\u00e1s\u00e1hoz. P\u00e9ld\u00e1ul: {\"id\": } A \"gcode/script\" v\u00e9gponthoz hasonl\u00f3an ez a v\u00e9gpont is csak a f\u00fcgg\u0151ben l\u00e9v\u0151 G-k\u00f3d parancsok befejez\u00e9se ut\u00e1n fejez\u0151dik be. pause_resume/pause \u00b6 Ez a v\u00e9gpont hasonl\u00f3 a \"PAUSE\" G-k\u00f3d parancs futtat\u00e1s\u00e1hoz. P\u00e9ld\u00e1ul: {\"id\": } A \"gcode/script\" v\u00e9gponthoz hasonl\u00f3an ez a v\u00e9gpont is csak a f\u00fcgg\u0151ben l\u00e9v\u0151 G-k\u00f3d parancsok befejez\u00e9se ut\u00e1n fejez\u0151dik be. pause_resume/resume \u00b6 Ez a v\u00e9gpont hasonl\u00f3 a \"RESUME\" G-k\u00f3d parancs futtat\u00e1s\u00e1hoz. P\u00e9ld\u00e1ul: {\"id\": } A \"gcode/script\" v\u00e9gponthoz hasonl\u00f3an ez a v\u00e9gpont is csak a f\u00fcgg\u0151ben l\u00e9v\u0151 G-k\u00f3d parancsok befejez\u00e9se ut\u00e1n fejez\u0151dik be. query_endstops/status \u00b6 Ez a v\u00e9gpont lek\u00e9rdezi az akt\u00edv v\u00e9gpontokat \u00e9s visszaadja azok \u00e1llapot\u00e1t. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"query_endstops/status\"} visszat\u00e9rhet: {\"id\": 123, \"result\": {\"y\": \"open\", \"x\": \"open\", \"z\": \"TRIGGERED\"}} A \"gcode/script\" v\u00e9gponthoz hasonl\u00f3an ez a v\u00e9gpont is csak a f\u00fcgg\u0151ben l\u00e9v\u0151 G-k\u00f3d parancsok befejez\u00e9se ut\u00e1n fejez\u0151dik be.","title":"API szerver"},{"location":"API_Server.html#api-szerver","text":"Ez a dokumentum le\u00edrja a Klipper Alkalmaz\u00e1s Programoz\u00f3i Interf\u00e9szt (API). Ez az interf\u00e9sz lehet\u0151v\u00e9 teszi k\u00fcls\u0151 alkalmaz\u00e1sok sz\u00e1m\u00e1ra a Klipper gazdaszoftver lek\u00e9rdez\u00e9s\u00e9t \u00e9s vez\u00e9rl\u00e9s\u00e9t.","title":"API szerver"},{"location":"API_Server.html#az-api-foglalat-engedelyezese","text":"Az API-kiszolg\u00e1l\u00f3 haszn\u00e1lat\u00e1hoz a klippy.py host szoftvert a -a param\u00e9terrel kell elind\u00edtani. P\u00e9ld\u00e1ul: ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer.cfg -a /tmp/klippy_uds -l /tmp/klippy.log Ennek hat\u00e1s\u00e1ra a gazdaszoftver l\u00e9trehoz egy Unix Domain Socket-et. Az \u00fcgyf\u00e9l ezut\u00e1n kapcsolatot nyithat ezen kereszt\u00fcl, \u00e9s parancsokat k\u00fcldhet a Klippernek. L\u00e1sd a Moonraker projektet egy n\u00e9pszer\u0171 eszk\u00f6z\u00e9rt, amely k\u00e9pes tov\u00e1bb\u00edtani a HTTP-k\u00e9r\u00e9seket a Klipper's API Server Unix Domain Socket-hez.","title":"Az API foglalat enged\u00e9lyez\u00e9se"},{"location":"API_Server.html#kerelem-formatuma","text":"A socket-en k\u00fcld\u00f6tt \u00e9s fogadott \u00fczenetek JSON k\u00f3dol\u00e1s\u00fa karakterl\u00e1ncok, amelyeket egy ASCII 0x03 karakter z\u00e1r le: <json_object_1><0x03><json_object_2><0x03>... A Klipper tartalmaz egy scripts/whconsole.py eszk\u00f6zt, amely k\u00e9pes a fenti \u00fczenetkeretez\u00e9st elv\u00e9gezni. P\u00e9ld\u00e1ul: ~/klipper/scripts/whconsole.py /tmp/klippy_uds Ez az eszk\u00f6z k\u00e9pes beolvasni egy sor JSON parancsot az stdin-b\u0151l, elk\u00fcldeni \u0151ket a Klippernek, \u00e9s jelenteni az eredm\u00e9nyeket. Az eszk\u00f6z elv\u00e1rja, hogy minden JSON parancs egyetlen sorban legyen, \u00e9s a k\u00e9r\u00e9s elk\u00fcld\u00e9sekor automatikusan hozz\u00e1adja a 0x03 v\u00e9grehajt\u00f3t. (A Klipper API szervernek nincs \u00faj sor k\u00f6vetelm\u00e9nye.)","title":"K\u00e9relem form\u00e1tuma"},{"location":"API_Server.html#api-protokoll","text":"A kommunik\u00e1ci\u00f3s foglalat \u00e1ltal haszn\u00e1lt parancsprotokollt a json-rpc ihlette. Egy k\u00e9r\u00e9s \u00edgy n\u00e9zhet ki: {\"id\": 123, \"method\": \"info\", \"params\": {}} \u00e9s a v\u00e1lasz \u00edgy n\u00e9zhet ki: {\"id\": 123, \"result\": {\"state_message\": \"Printer is ready\", \"klipper_path\": \"/home/pi/klipper\", \"config_file\": \"/home/pi/printer.cfg\", \"software_version\": \"v0.8.0-823-g883b1cb6\", \"hostname\": \"octopi\", \"cpu_info\": \"4 core ARMv7 Processor rev 4 (v7l)\", \"state\": \"ready\", \"python_path\": \"/home/pi/klippy-env/bin/python\", \"log_file\": \"/tmp/klippy.log\"}} Minden egyes k\u00e9r\u00e9snek egy JSON sz\u00f3t\u00e1rnak kell lennie. (Ez a dokumentum a Pythonban a \"sz\u00f3t\u00e1r\" kifejez\u00e9st haszn\u00e1lja a \"JSON objektum\" - a </x>{} -ban tal\u00e1lhat\u00f3 kulcs/\u00e9rt\u00e9k p\u00e1rok lek\u00e9pez\u00e9se, le\u00edr\u00e1s\u00e1ra.) A k\u00e9r\u00e9si sz\u00f3t\u00e1rnak tartalmaznia kell egy \"method\" param\u00e9tert, amely egy el\u00e9rhet\u0151 Klipper \"v\u00e9gpont\" h\u00far neve. A k\u00e9r\u00e9si sz\u00f3t\u00e1r tartalmazhat egy \"params\" param\u00e9tert, amelynek sz\u00f3t\u00e1r t\u00edpus\u00fanak kell lennie. A \"params\" tov\u00e1bbi param\u00e9terinform\u00e1ci\u00f3kat biztos\u00edt a k\u00e9r\u00e9st kezel\u0151 Klipper \"v\u00e9gpont\" sz\u00e1m\u00e1ra. Tartalma a \"v\u00e9gpontra\" jellemz\u0151. A k\u00e9r\u00e9si sz\u00f3t\u00e1r tartalmazhat egy \"id\" param\u00e9tert, amely b\u00e1rmilyen JSON t\u00edpus\u00fa lehet. Ha az \"id\" param\u00e9ter jelen van, akkor a Klipper egy v\u00e1lasz\u00fczenettel v\u00e1laszol a k\u00e9r\u00e9sre, amely tartalmazza ezt az \"id\" param\u00e9tert. Ha az \"id\" nincs megadva (vagy egy JSON \"null\" \u00e9rt\u00e9kre van be\u00e1ll\u00edtva), akkor a Klipper nem ad v\u00e1laszt a k\u00e9r\u00e9sre. A v\u00e1lasz\u00fczenet egy JSON sz\u00f3t\u00e1r, amely tartalmazza az \"id\" \u00e9s az \"eredm\u00e9ny\" \u00e9rt\u00e9keket. A \"result\" mindig egy sz\u00f3t\u00e1r melynek tartalma a k\u00e9r\u00e9st kezel\u0151 \"v\u00e9gpontra\" jellemz\u0151. Ha egy k\u00e9r\u00e9s feldolgoz\u00e1sa hib\u00e1t eredm\u00e9nyez, akkor a v\u00e1lasz\u00fczenet egy \"hiba\" mez\u0151t fog tartalmazni az \"eredm\u00e9ny\" mez\u0151 helyett. P\u00e9ld\u00e1ul a k\u00e9r\u00e9s: {\"id\": 123, \"method\": \"gcode/script\", \"params\": {\"script\": \"G1 X200\"}}} egy olyan hib\u00e1s v\u00e1laszt eredm\u00e9nyezhet, mint p\u00e9ld\u00e1ul: {\"id\": 123, \"error\": {\"message\": \"Must home axis first: 200.000 0.000 0.000 0.000 [0.000]\", \"error\": \"WebRequestError\"}} A Klipper mindig a be\u00e9rkez\u00e9s\u00fck sorrendj\u00e9ben kezdi meg a k\u00e9r\u00e9sek feldolgoz\u00e1s\u00e1t. El\u0151fordulhat azonban, hogy egyes k\u00e9r\u00e9sek nem fejez\u0151dnek be azonnal, ami azt eredm\u00e9nyezheti, hogy a kapcsol\u00f3d\u00f3 v\u00e1lasz m\u00e1s k\u00e9r\u00e9sek v\u00e1laszaihoz k\u00e9pest nem a megfelel\u0151 sorrendben ker\u00fcl elk\u00fcld\u00e9sre. Egy JSON-k\u00e9r\u00e9s soha nem fogja sz\u00fcneteltetni a j\u00f6v\u0151beli JSON-k\u00e9r\u00e9sek feldolgoz\u00e1s\u00e1t.","title":"API Protokoll"},{"location":"API_Server.html#feliratkozasok","text":"N\u00e9h\u00e1ny Klipper \"v\u00e9gpont\" k\u00e9r\u00e9s lehet\u0151v\u00e9 teszi a \"feliratkoz\u00e1st\" a j\u00f6v\u0151beli aszinkron friss\u00edt\u00e9si \u00fczenetekre. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"gcode/subscribe_output\", \"params\": {\"response_template\":{\"key\": 345}}} kezdetben v\u00e1laszolhat: {\"id\": 123, \"result\": {}} \u00e9s a Klipper a k\u00f6vetkez\u0151h\u00f6z hasonl\u00f3 \u00fczeneteket fog k\u00fcldeni a j\u00f6v\u0151ben: {\"params\": {\"response\": \"ok B:22.8 /0.0 T0:22.4 /0.0\"}, \"key\": 345} Az el\u0151fizet\u00e9si k\u00e9r\u00e9s elfogad egy \"response_template\" sz\u00f3t\u00e1rat a k\u00e9r\u00e9s \"params\" mez\u0151j\u00e9ben. Ez a \"response_template\" sz\u00f3t\u00e1r sablonk\u00e9nt szolg\u00e1l a j\u00f6v\u0151beli aszinkron \u00fczenetekhez. Tetsz\u0151leges kulcs/\u00e9rt\u00e9k p\u00e1rokat tartalmazhat. Ezen j\u00f6v\u0151beli aszinkron \u00fczenetek k\u00fcld\u00e9sekor a Klipper hozz\u00e1ad egy \"params\" mez\u0151t, amely egy \"endpoint\" specifikus tartalm\u00fa sz\u00f3t\u00e1rat tartalmaz a v\u00e1laszsablonnak, majd elk\u00fcldi ezt a sablont. Ha nem adunk meg egy \"response_template\" mez\u0151t, akkor az alap\u00e9rtelmez\u00e9s szerint egy \u00fcres sz\u00f3t\u00e1r lesz ( {} ).","title":"Feliratkoz\u00e1sok"},{"location":"API_Server.html#elerheto-vegpontok","text":"A Klipper \"v\u00e9gpontok\" a konvenci\u00f3 szerint a <module_name>/<some_name> form\u00e1j\u00faak. Ha egy \"v\u00e9gponthoz\" int\u00e9z\u00fcnk k\u00e9r\u00e9st, a teljes nevet a k\u00e9r\u00e9si sz\u00f3t\u00e1r \"method\" param\u00e9ter\u00e9ben kell megadni (pl. {\"method\"=\"gcode/restart\"} ).","title":"El\u00e9rhet\u0151 \"v\u00e9gpontok\""},{"location":"API_Server.html#info","text":"Az \"info\" v\u00e9gpontot a Klipper rendszert \u00e9s verzi\u00f3inform\u00e1ci\u00f3inak lek\u00e9rdez\u00e9s\u00e9re haszn\u00e1ljuk. Arra is szolg\u00e1l, hogy a kliens verzi\u00f3t a Klipper sz\u00e1m\u00e1ra megadd. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"info\", \"params\": { \"client_info\": { \"version\": \"v1\"}}}} Ha jelen van a \"client_info\" param\u00e9ter egy sz\u00f3t\u00e1rnak kell lennie, de a sz\u00f3t\u00e1r tetsz\u0151leges tartalm\u00fa lehet. A felhaszn\u00e1l\u00f3knak aj\u00e1nlott megadniuk az \u00fcgyf\u00e9l nev\u00e9t \u00e9s a szoftver verzi\u00f3j\u00e1t, amikor el\u0151sz\u00f6r csatlakoznak a Klipper API kiszolg\u00e1l\u00f3hoz.","title":"inf\u00f3"},{"location":"API_Server.html#emergency_stop","text":"Az \"emergency_stop\" v\u00e9gpont arra szolg\u00e1l, hogy utas\u00edtsa a Klippert a \"shutdown\" \u00e1llapotba val\u00f3 \u00e1tmenetre. Hasonl\u00f3an viselkedik, mint a G-k\u00f3d M112 parancs. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"emergency_stop\"}","title":"emergency_stop"},{"location":"API_Server.html#register_remote_method","text":"Ez a v\u00e9gpont lehet\u0151v\u00e9 teszi az \u00fcgyfelek sz\u00e1m\u00e1ra, hogy regisztr\u00e1lj\u00e1k a klipperb\u0151l h\u00edvhat\u00f3 met\u00f3dusokat. Siker eset\u00e9n egy \u00fcres objektumot ad vissza. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"register_remote_method\", \"params\": {\"response_template\": {\"action\": \"run_paneldue_beep\"}, \"remote_method\": \"paneldue_beep\"}}} fog visszat\u00e9rni: {\"id\": 123, \"result\": {}} A t\u00e1voli paneldue_beep met\u00f3dus mostant\u00f3l h\u00edvhat\u00f3 a Klipperb\u0151l. Vegy\u00fck figyelembe, hogy ha a met\u00f3dus param\u00e9tereket vesz fel, akkor azokat kulcsszavas argumentumk\u00e9nt kell megadni. Az al\u00e1bbiakban egy p\u00e9lda l\u00e1that\u00f3 arra, hogyan h\u00edvhat\u00f3 meg egy gcode_macro-b\u00f3l: [gcode_macro PANELDUE_BEEP] gcode: {action_call_remote_method(\"paneldue_beep\", frequency=300, duration=1.0)} Amikor a PANELDUE_BEEP G-k\u00f3d makr\u00f3 v\u00e9grehajt\u00f3dik, a Klipper valami ilyesmit k\u00fcld a kapcsolaton kereszt\u00fcl: {\"action\": \"run_paneldue_beep\", \"params\": {\"frequency\": 300, \"duration\": 1.0}}","title":"register_remote_method"},{"location":"API_Server.html#objectslist","text":"Ez a v\u00e9gpont lek\u00e9rdezi az el\u00e9rhet\u0151 nyomtat\u00f3 objektumok list\u00e1j\u00e1t, amelyeket lek\u00e9rdezhet\u00fcnk (az \"objects/query\" v\u00e9gponton kereszt\u00fcl). P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"objects/list\"} visszat\u00e9rhet: {\"id\": 123, \"result\": {\"objects\": [\"webhooks\", \"configfile\", \"heaters\", \"gcode_move\", \"query_endstops\", \"idle_timeout\", \"toolhead\", \"extruder\"]}}","title":"objects/list"},{"location":"API_Server.html#objectsquery","text":"Ez a v\u00e9gpont lehet\u0151v\u00e9 teszi a nyomtat\u00f3 objektumokb\u00f3l sz\u00e1rmaz\u00f3 inform\u00e1ci\u00f3k lek\u00e9rdez\u00e9s\u00e9t. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"objects/query\", \"params\": {\"objects\": {\"toolhead\": [\"position\"], \"webhooks\": null}}}} might return: {\"id\": 123, \"result\": {\"status\": {\"webhooks\": {\"state\": \"ready\", \"state_message\": \"Printer is ready\"}, \"toolhead\": {\"position\": [0.0, 0.0, 0.0, 0.0, 0.0]}}, \"eventtime\": 3051555.377933684}} A k\u00e9r\u00e9s \"objects\" param\u00e9ter\u00e9nek egy sz\u00f3t\u00e1rnak kell lennie, amely a lek\u00e9rdezend\u0151 nyomtat\u00f3 objektumokat tartalmazza. A kulcs a nyomtat\u00f3 objektum nev\u00e9t tartalmazza, az \u00e9rt\u00e9k pedig vagy \"null\" (az \u00f6sszes mez\u0151 lek\u00e9rdez\u00e9se), vagy a mez\u0151nevek list\u00e1ja. A v\u00e1lasz\u00fczenet tartalmaz egy \"status\" mez\u0151t, amely egy sz\u00f3t\u00e1rat tartalmaz a lek\u00e9rdezett inform\u00e1ci\u00f3kkal. A kulcs a nyomtat\u00f3 objektum nev\u00e9t tartalmazza, az \u00e9rt\u00e9k pedig a mez\u0151it tartalmaz\u00f3 sz\u00f3t\u00e1r. A v\u00e1lasz\u00fczenet tartalmaz egy \"eventtime\" mez\u0151t is, amely a lek\u00e9rdez\u00e9s id\u0151pontj\u00e1nak id\u0151b\u00e9lyeg\u00e9t tartalmazza. A rendelkez\u00e9sre \u00e1ll\u00f3 mez\u0151k a \u00c1llapothivatkoz\u00e1s dokumentumban vannak dokument\u00e1lva.","title":"objects/query"},{"location":"API_Server.html#objectssubscribe","text":"Ez a v\u00e9gpont lehet\u0151v\u00e9 teszi a nyomtat\u00f3 objektumokb\u00f3l sz\u00e1rmaz\u00f3 inform\u00e1ci\u00f3k lek\u00e9rdez\u00e9s\u00e9t, majd el\u0151jegyz\u00e9s\u00e9t. A v\u00e9gpont k\u00e9r\u00e9se \u00e9s v\u00e1lasza megegyezik a \"objects/query\" v\u00e9gponttal. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"objects/subscribe\", \"params\": {\"objects\":{\"toolhead\": [\"position\"], \"webhooks\": [\"state\"]}, \"response_template\":{}}} might return: {\"id\": 123, \"result\": {\"status\": {\"webhooks\": {\"state\": \"ready\"}, \"toolhead\": {\"position\": [0.0, 0.0, 0.0, 0.0, 0.0]}}, \"eventtime\": 3052153.382083195}} \u00e9s az ezt k\u00f6vet\u0151 aszinkron \u00fczeneteket eredm\u00e9nyez, mint p\u00e9ld\u00e1ul: {\"params\": {\"status\": {\"webhooks\": {\"state\": \"shutdown\"}}, \"eventtime\": 3052165.418815847}}","title":"objects/subscribe"},{"location":"API_Server.html#gcodehelp","text":"Ez a v\u00e9gpont lehet\u0151v\u00e9 teszi a rendelkez\u00e9sre \u00e1ll\u00f3 G-k\u00f3d parancsok lek\u00e9rdez\u00e9s\u00e9t, amelyekhez s\u00fag\u00f3sz\u00f6veg van defini\u00e1lva. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"gcode/help\"} visszat\u00e9rhet: {\"id\": 123, \"result\": {\"RESTORE_GCODE_STATE\": \"Egy kor\u00e1bban elmentett G-k\u00f3d \u00e1llapot vissza\u00e1ll\u00edt\u00e1sa\", \"PID_CALIBRATE\": \"PID kalibr\u00e1ci\u00f3s teszt futtat\u00e1sa\", \"QUERY_ADC\": \"Egy anal\u00f3g t\u0171 utols\u00f3 \u00e9rt\u00e9k\u00e9nek jelent\u00e9se\", ...}}","title":"gcode/help"},{"location":"API_Server.html#gcodescript","text":"Ez a v\u00e9gpont lehet\u0151v\u00e9 teszi egy sor G-k\u00f3d parancs futtat\u00e1s\u00e1t. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"gcode/script\", \"params\": {\"script\": \"G90\"}}} Ha a megadott G-k\u00f3d szkript hib\u00e1t okoz, akkor a rendszer hibav\u00e1laszt gener\u00e1l. Ha azonban a G-k\u00f3d parancs termin\u00e1l kimenetet eredm\u00e9nyez, a termin\u00e1l kimenete nem szerepel a v\u00e1laszban. (A \"gcode/subscribe_output\" v\u00e9gpontot haszn\u00e1ld a G-k\u00f3d termin\u00e1lkimenethez.) Ha a k\u00e9r\u00e9s be\u00e9rkez\u00e9sekor \u00e9ppen egy G-k\u00f3d parancsot dolgoznak fel, akkor a megadott szkript sorba ker\u00fcl. Ez a k\u00e9sedelem jelent\u0151s lehet (pl. ha egy G-k\u00f3dos h\u0151m\u00e9rs\u00e9kleti v\u00e1rakoz\u00e1s parancs fut). A JSON v\u00e1lasz\u00fczenet akkor ker\u00fcl elk\u00fcld\u00e9sre, amikor a parancsf\u00e1jl feldolgoz\u00e1sa teljesen befejez\u0151d\u00f6tt.","title":"gcode/script"},{"location":"API_Server.html#gcoderestart","text":"Ez a v\u00e9gpont lehet\u0151v\u00e9 teszi az \u00fajraind\u00edt\u00e1s k\u00e9r\u00e9s\u00e9t, hasonl\u00f3an a G-k\u00f3d \"RESTART\" parancs futtat\u00e1s\u00e1hoz. P\u00e9ld\u00e1ul: {\"id\": } <x id=\"123, \"method\": \"gcode/restart\"}` A \"gcode/script\" v\u00e9gponthoz hasonl\u00f3an ez a v\u00e9gpont is csak a f\u00fcgg\u0151ben l\u00e9v\u0151 G-k\u00f3d parancsok befejez\u00e9se ut\u00e1n fejez\u0151dik be.","title":"gcode/restart"},{"location":"API_Server.html#gcodefirmware_restart","text":"Ez hasonl\u00f3 a \"gcode/restart\" v\u00e9gponthoz. A G-k\u00f3d \"FIRMWARE_RESTART\" parancsot val\u00f3s\u00edtja meg. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"gcode/firmware_restart\"} A \"gcode/script\" v\u00e9gponthoz hasonl\u00f3an ez a v\u00e9gpont is csak a f\u00fcgg\u0151ben l\u00e9v\u0151 G-k\u00f3d parancsok befejez\u00e9se ut\u00e1n fejez\u0151dik be.","title":"gcode/firmware_restart"},{"location":"API_Server.html#gcodesubscribe_output","text":"Ez a v\u00e9gpont a Klipper \u00e1ltal gener\u00e1lt G-k\u00f3dos termin\u00e1l\u00fczenetekre val\u00f3 feliratkoz\u00e1sra szolg\u00e1l. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"gcode/subscribe_output\", \"params\": {\"response_template\":{}}}} k\u00e9s\u0151bb olyan aszinkron \u00fczeneteket eredm\u00e9nyezhet, mint p\u00e9ld\u00e1ul: {\"params\": {\"response\": \"// Klipper state: Shutdown\"}} Ez a v\u00e9gpont az emberi interakci\u00f3t hivatott t\u00e1mogatni egy \"termin\u00e1lablak\" interf\u00e9szen kereszt\u00fcl. A G-k\u00f3d termin\u00e1l kimenet\u00e9b\u0151l sz\u00e1rmaz\u00f3 tartalom elemz\u00e9se nem javasolt. A Klipper \u00e1llapot\u00e1nak friss\u00edt\u00e9s\u00e9hez haszn\u00e1ld az \"objects/subscribe\" v\u00e9gpontot.","title":"gcode/subscribe_output"},{"location":"API_Server.html#motion_reportdump_stepper","text":"Ez a v\u00e9gpont a Klipper bels\u0151 l\u00e9ptet\u0151 queue_step parancsfolyamra val\u00f3 feliratkoz\u00e1sra szolg\u00e1l egy l\u00e9ptet\u0151 sz\u00e1m\u00e1ra. Ezeknek az alacsony szint\u0171 mozg\u00e1sfriss\u00edt\u00e9seknek a lek\u00e9r\u00e9se hasznos lehet diagnosztikai \u00e9s hibakeres\u00e9si c\u00e9lokra. Ennek a v\u00e9gpontnak a haszn\u00e1lata n\u00f6velheti a Klipper rendszer terhel\u00e9s\u00e9t. Egy k\u00e9r\u00e9s \u00edgy n\u00e9zhet ki: {\"id\": 123, \"method\":\"motion_report/dump_stepper\", \"params\": {\"name\": \"stepper_x\", \"response_template\": {}}} \u00e9s esetleg visszat\u00e9r: {\"id\": 123, \"result\": {\"header\": }}} , \u00e9s k\u00e9s\u0151bb aszinkron \u00fczeneteket produk\u00e1lhat, mint p\u00e9ld\u00e1ul: [\"intervallum\", \"count\", \"add\"]}} : }` A kezdeti lek\u00e9rdez\u00e9si v\u00e1lasz \"header\" mez\u0151je a k\u00e9s\u0151bbi \"data\" v\u00e1laszokban tal\u00e1lhat\u00f3 mez\u0151k le\u00edr\u00e1s\u00e1ra szolg\u00e1l.","title":"motion_report/dump_stepper"},{"location":"API_Server.html#motion_reportdump_trapq","text":"Ezt a v\u00e9gpontot a Klipper bels\u0151 \"trap\u00e9zmozg\u00e1s v\u00e1r\u00f3list\u00e1ra\" val\u00f3 feliratkoz\u00e1sra haszn\u00e1lj\u00e1k. Ezeknek az alacsony szint\u0171 mozg\u00e1sfriss\u00edt\u00e9seknek a lek\u00e9r\u00e9se hasznos lehet diagnosztikai \u00e9s hibakeres\u00e9si c\u00e9lokra. Ennek a v\u00e9gpontnak a haszn\u00e1lata n\u00f6velheti a Klipper rendszer terhel\u00e9s\u00e9t. Egy k\u00e9r\u00e9s \u00edgy n\u00e9zhet ki: {\"id\": 123, \"method\": \"motion_report/dump_trapq\", \"params\": {\"name\": \"toolhead\", \"response_template\":{}}} \u00e9s esetleg visszat\u00e9r: {\"id\": 1, \"result\": {\"header\": [\"time\", \"duration\", \"start_velocity\", \"acceleration\", \"start_position\", \"direction\"]}}} \u00e9s k\u00e9s\u0151bb aszinkron \u00fczeneteket produk\u00e1lhat, mint p\u00e9ld\u00e1ul: {\"params\": {\"data\": [[4.05, 1.0, 0.0, 0.0, 0.0, [300.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0]], [5.054, 0.001, 0.0, 3000.0, [300.0, 0.0, 0.0, 0.0], [-1.0, 0.0, 0.0, 0.0]]}} A kezdeti lek\u00e9rdez\u00e9si v\u00e1lasz \"header\" mez\u0151je a k\u00e9s\u0151bbi \"data\" v\u00e1laszokban tal\u00e1lhat\u00f3 mez\u0151k le\u00edr\u00e1s\u00e1ra szolg\u00e1l.","title":"motion_report/dump_trapq"},{"location":"API_Server.html#adxl345dump_adxl345","text":"Ez a v\u00e9gpont az ADXL345 gyorsul\u00e1sm\u00e9r\u0151 adataira val\u00f3 feliratkoz\u00e1sra szolg\u00e1l. Ezeknek az alacsony szint\u0171 mozg\u00e1sfriss\u00edt\u00e9seknek a lek\u00e9r\u00e9se hasznos lehet diagnosztikai \u00e9s hibakeres\u00e9si c\u00e9lokra. Ennek a v\u00e9gpontnak a haszn\u00e1lata n\u00f6velheti a Klipper rendszer terhel\u00e9s\u00e9t. Egy k\u00e9r\u00e9s \u00edgy n\u00e9zhet ki: {\"id\": 123, \"method\":\"adxl345/dump_adxl345\", \"params\": {\"sensor\": \"adxl345\", \"response_template\": {}}} \u00e9s esetleg visszat\u00e9r: {\"id\": 123,\"result\":{\"header\":[\"time\",\"x_acceleration\",\"y_acceleration\", \"z_acceleration\"]}}} \u00e9s k\u00e9s\u0151bb olyan aszinkron \u00fczeneteket produk\u00e1lhat, mint p\u00e9ld\u00e1ul: {\"params\":{\"overflows\":0,\"data\":[[3292.432935,-535.44309,-1529.8374,9561.4], [3292.433256,-382.45935,-1606.32927,9561.48375]]}} A kezdeti lek\u00e9rdez\u00e9si v\u00e1lasz \"header\" mez\u0151je a k\u00e9s\u0151bbi \"data\" v\u00e1laszokban tal\u00e1lhat\u00f3 mez\u0151k le\u00edr\u00e1s\u00e1ra szolg\u00e1l.","title":"adxl345/dump_adxl345"},{"location":"API_Server.html#angledump_angle","text":"Ez a v\u00e9gpont a sz\u00f6g\u00e9rz\u00e9kel\u0151 adatainak feliratkoz\u00e1s\u00e1ra szolg\u00e1l. Ezeknek az alacsony szint\u0171 mozg\u00e1sfriss\u00edt\u00e9seknek a lek\u00e9r\u00e9se hasznos lehet diagnosztikai \u00e9s hibakeres\u00e9si c\u00e9lokra. Ennek a v\u00e9gpontnak a haszn\u00e1lata n\u00f6velheti a Klipper rendszer terhel\u00e9s\u00e9t. Egy k\u00e9r\u00e9s \u00edgy n\u00e9zhet ki: {\"id\": 123, \"method\":\"angle/dump_angle\", \"params\": {\"sensor\": \"my_angle_sensor\", \"response_template\": {}}} \u00e9s esetleg visszat\u00e9r: {\"id\": 123,\"result\":{\"header\":[\"time\",\"angle\"]}}} \u00e9s k\u00e9s\u0151bb olyan aszinkron \u00fczeneteket produk\u00e1lhat, mint p\u00e9ld\u00e1ul: {\"params\":{\"position_offset\":3.151562,\"errors\":0, \"data\":[[1290.951905,-5063],[1290.952321,-5065]]}} A kezdeti lek\u00e9rdez\u00e9si v\u00e1lasz \"header\" mez\u0151je a k\u00e9s\u0151bbi \"data\" v\u00e1laszokban tal\u00e1lhat\u00f3 mez\u0151k le\u00edr\u00e1s\u00e1ra szolg\u00e1l.","title":"angle/dump_angle"},{"location":"API_Server.html#pause_resumecancel","text":"Ez a v\u00e9gpont hasonl\u00f3 a \"PRINT_CANCEL\" G-k\u00f3d parancs futtat\u00e1s\u00e1hoz. P\u00e9ld\u00e1ul: {\"id\": } A \"gcode/script\" v\u00e9gponthoz hasonl\u00f3an ez a v\u00e9gpont is csak a f\u00fcgg\u0151ben l\u00e9v\u0151 G-k\u00f3d parancsok befejez\u00e9se ut\u00e1n fejez\u0151dik be.","title":"pause_resume/cancel"},{"location":"API_Server.html#pause_resumepause","text":"Ez a v\u00e9gpont hasonl\u00f3 a \"PAUSE\" G-k\u00f3d parancs futtat\u00e1s\u00e1hoz. P\u00e9ld\u00e1ul: {\"id\": } A \"gcode/script\" v\u00e9gponthoz hasonl\u00f3an ez a v\u00e9gpont is csak a f\u00fcgg\u0151ben l\u00e9v\u0151 G-k\u00f3d parancsok befejez\u00e9se ut\u00e1n fejez\u0151dik be.","title":"pause_resume/pause"},{"location":"API_Server.html#pause_resumeresume","text":"Ez a v\u00e9gpont hasonl\u00f3 a \"RESUME\" G-k\u00f3d parancs futtat\u00e1s\u00e1hoz. P\u00e9ld\u00e1ul: {\"id\": } A \"gcode/script\" v\u00e9gponthoz hasonl\u00f3an ez a v\u00e9gpont is csak a f\u00fcgg\u0151ben l\u00e9v\u0151 G-k\u00f3d parancsok befejez\u00e9se ut\u00e1n fejez\u0151dik be.","title":"pause_resume/resume"},{"location":"API_Server.html#query_endstopsstatus","text":"Ez a v\u00e9gpont lek\u00e9rdezi az akt\u00edv v\u00e9gpontokat \u00e9s visszaadja azok \u00e1llapot\u00e1t. P\u00e9ld\u00e1ul: {\"id\": 123, \"method\": \"query_endstops/status\"} visszat\u00e9rhet: {\"id\": 123, \"result\": {\"y\": \"open\", \"x\": \"open\", \"z\": \"TRIGGERED\"}} A \"gcode/script\" v\u00e9gponthoz hasonl\u00f3an ez a v\u00e9gpont is csak a f\u00fcgg\u0151ben l\u00e9v\u0151 G-k\u00f3d parancsok befejez\u00e9se ut\u00e1n fejez\u0151dik be.","title":"query_endstops/status"},{"location":"BLTouch.html","text":"BL-Touch \u00b6 BL-Touch csatlakoztat\u00e1sa \u00b6 Egy figyelmeztet\u00e9s miel\u0151tt elkezden\u00e9d: Ker\u00fcld a BL-Touch t\u0171j\u00e9nek puszta ujjal val\u00f3 \u00e9rint\u00e9s\u00e9t, mivel meglehet\u0151sen \u00e9rz\u00e9keny az zs\u00edrra. Ha pedig m\u00e9gis hozz\u00e1\u00e9rsz, legy\u00e9l nagyon \u00f3vatos, hogy ne hajl\u00edtsd vagy nyomd meg a t\u00fcsk\u00e9t. Csatlakoztasd a BL-Touch \"servo\" csatlakoz\u00f3t a control_pin csatlakoz\u00f3hoz a BL-Touch dokument\u00e1ci\u00f3 vagy az MCU dokument\u00e1ci\u00f3ja szerint. Az eredeti k\u00e1belez\u00e9st haszn\u00e1lva a h\u00e1rmasb\u00f3l a s\u00e1rga vezet\u00e9k a control_pin \u00e9s a vezet\u00e9kp\u00e1rb\u00f3l a feh\u00e9r lesz a sensor_pin . Ezeket a t\u0171ket a k\u00e1belez\u00e9snek megfelel\u0151en kell konfigur\u00e1lnia. A legt\u00f6bb BL-Touch pullup jelet ig\u00e9nyel a t\u0171be\u00e1ll\u00edt\u00e1sn\u00e1l (ez\u00e9rt a csatlakoz\u00e1s nev\u00e9nek el\u0151tagja \"^\"). P\u00e9ld\u00e1ul: [bltouch] sensor_pin: ^P1.24 control_pin: P1.26 Ha a BL-Touch-ot a Z tengely alaphelyzetbe \u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1ljuk, akkor \u00e1ll\u00edtsuk be az endstop_pin:probe:z_virtual_endstop -ra \u00e9s t\u00e1vol\u00edtsa el a position_endstop \u00e9s a [stepper_z] -t a config szakaszban, majd adjuk hozz\u00e1 a [safe_z_home] config szakaszt a Z tengely megemel\u00e9s\u00e9hez, az X,Y tengelyek kezd\u0151pont felv\u00e9tel\u00e9re a t\u00e1rgyasztal k\u00f6zep\u00e9re val\u00f3 elmozdul\u00e1shoz \u00e9s a Z tengely kezd\u0151pont felv\u00e9tel\u00e9re. P\u00e9ld\u00e1ul: [safe_z_home] home_xy_position: 100, 100 # A koordin\u00e1t\u00e1kat a t\u00e1rgyasztal k\u00f6zep\u00e9re m\u00f3dos\u00edtjuk. speed: 50 z_hop: 10 # Mozg\u00e1s felfel\u00e9 10mm z_hop_speed: 5 Fontos, hogy a z_hop mozg\u00e1s a safe_z_home-ban el\u00e9g nagy legyen ahhoz, hogy a m\u00e9r\u0151cs\u00facs ne \u00fctk\u00f6zz\u00f6n semmibe, m\u00e9g akkor sem, ha a BL-Touch m\u00e9r\u0151t\u00fcsk\u00e9je a legalacsonyabb \u00e1ll\u00e1sban van. Kezdeti tesztek \u00b6 Miel\u0151tt tov\u00e1bbl\u00e9pn\u00e9l, ellen\u0151rizd, hogy a BL-Touch a megfelel\u0151 magass\u00e1gban van-e felszerelve. A m\u00e9r\u0151t\u00fcsk\u00e9nek beh\u00fazott \u00e1llapotban nagyj\u00e1b\u00f3l 2 mm-rel a f\u00fav\u00f3ka f\u00f6l\u00f6tt kell lennie Amikor bekapcsolod a nyomtat\u00f3t, a BL-Touch szond\u00e1nak \u00f6nellen\u0151rz\u00e9st kell v\u00e9geznie, \u00e9s n\u00e9h\u00e1nyszor fel-le kell mozgatnia a m\u00e9r\u0151t\u00fcsk\u00e9t. Az \u00f6nellen\u0151rz\u00e9s befejez\u00e9se ut\u00e1n a m\u00e9r\u0151t\u00fcsk\u00e9nek vissza kell h\u00faz\u00f3dnia, \u00e9s a szond\u00e1n l\u00e9v\u0151 piros LED-nek vil\u00e1g\u00edtania kell. Ha b\u00e1rmilyen hib\u00e1t \u00e9szlelsz, p\u00e9ld\u00e1ul a szonda pirosan villog, vagy a m\u00e9r\u0151t\u00fcske lefel\u00e9 van, nem pedig beh\u00fazva, k\u00e9rj\u00fck kapcsold ki a nyomtat\u00f3t, \u00e9s ellen\u0151rizd a k\u00e1belez\u00e9st \u00e9s a konfigur\u00e1ci\u00f3t. Ha a fentiek rendben vannak, itt az ideje tesztelni, hogy a vez\u00e9rl\u00e9s megfelel\u0151en m\u0171k\u00f6dik-e. El\u0151sz\u00f6r futtassuk le a BLTOUCH_DEBUG COMMAND=pin_down parancsot a konzolban. Ellen\u0151rizd, hogy a m\u00e9r\u0151t\u00fcske lefel\u00e9 mozog-e, \u00e9s hogy a BL-Touchon l\u00e9v\u0151 piros LED kialszik-e. Ha nem, ellen\u0151rizd \u00fajra a k\u00e1belez\u00e9st \u00e9s a konfigur\u00e1ci\u00f3t. Ezut\u00e1n adj ki egy BLTOUCH_DEBUG COMMAND=pin_up parancsot. Ellen\u0151rizd, hogy a m\u00e9r\u0151t\u00fcske felfel\u00e9 mozdul-e, \u00e9s hogy a piros LED ism\u00e9t vil\u00e1g\u00edt-e. Ha villog, akkor valamilyen probl\u00e9ma van. A k\u00f6vetkez\u0151 l\u00e9p\u00e9s annak meger\u0151s\u00edt\u00e9se, hogy a m\u00e9r\u0151t\u00fcske megfelel\u0151en m\u0171k\u00f6dik. Futtassa a BLTOUCH_DEBUG COMMAND=pin_down parancsot, \u00e9s ellen\u0151rizd, hogy a m\u00e9r\u0151t\u00fcske lefel\u00e9 mozdul-e. Majd futtassa a BLTOUCH_DEBUG COMMAND=touch_mode parancsot. Futtassa a QUERY_PROBE parancsot, \u00e9s ellen\u0151rizd, hogy az \u00fczenet \"probe: OPEN\". Ezut\u00e1n, mik\u00f6zben a k\u00f6rm\u00e9vel finoman felfel\u00e9 nyomja a m\u00e9r\u0151t\u00fcsk\u00e9t, futtassa le \u00fajra a QUERY_PROBE parancsot. Ellen\u0151rizd, hogy az \u00fczenet a \"probe: TRIGGERED\". Ha b\u00e1rmelyik lek\u00e9rdez\u00e9s nem a megfelel\u0151 \u00fczenetet \u00edrja, akkor az \u00e1ltal\u00e1ban hib\u00e1s bek\u00f6t\u00e9st vagy konfigur\u00e1ci\u00f3t jelez (b\u00e1r egyes kl\u00f3nok speci\u00e1lis kezel\u00e9st ig\u00e9nyelhetnek). A teszt befejez\u00e9sekor futtassuk le a BLTOUCH_DEBUG COMMAND=pin_up parancsot, \u00e9s ellen\u0151rizz\u00fck, hogy a m\u00e9r\u0151t\u00fcske felfel\u00e9 mozdul. A BL-Touch vez\u00e9rl\u0151 \u00e9s \u00e9rz\u00e9kel\u0151t\u00fcsk\u00e9k tesztel\u00e9s\u00e9nek befejez\u00e9se ut\u00e1n itt az ideje a szintez\u00e9s tesztel\u00e9s\u00e9nek, de egy kis csavarral. Ahelyett, hogy a m\u00e9r\u0151t\u00fcske a t\u00e1rgyasztalt \u00e9rinten\u00e9, a k\u00f6rm\u00fcnkel fogjuk meg\u00e9rinteni. Helyezd a nyomtat\u00f3fejet messze a t\u00e1rgyasztalt\u00f3l, adj ki egy G28 (vagy PROBE , ha nem haszn\u00e1lod a probe:z_virtual_endstopot) parancsot, v\u00e1rj m\u00edg a nyomtat\u00f3fej elkezd lefel\u00e9 mozogni, \u00e9s \u00e1ll\u00edtsd meg a mozg\u00e1st \u00fagy, hogy nagyon \u00f3vatosan meg\u00e9rinti a m\u00e9r\u0151t\u00fcsk\u00e9t a k\u00f6rm\u00e9vel. Lehet, hogy ezt k\u00e9tszer kell megtennie, mivel az alap\u00e9rtelmezett kezd\u0151pont konfigur\u00e1ci\u00f3 k\u00e9tszer m\u00e9r. K\u00e9sz\u00fclj fel arra is, hogy kikapcsold a nyomtat\u00f3t, ha az nem \u00e1ll meg, amikor meg\u00e9rinti a m\u00e9r\u0151t\u00fcsk\u00e9t. Ha ez siker\u00fclt, kezd \u00fajra G28 (vagy PROBE ) parancsal, de ez\u00fattal hagyja, hogy a m\u00e9r\u0151t\u00fcske meg\u00e9rintse a t\u00e1rgyasztalt. A BL-Touch elromlott \u00b6 Amint a BL-Touch inkonzisztens \u00e1llapotba ker\u00fcl, pirosan villogni kezd. Az \u00e1llapotb\u00f3l val\u00f3 kil\u00e9p\u00e9st a k\u00f6vetkez\u0151 parancs kiad\u00e1s\u00e1val lehet k\u00e9nyszer\u00edteni: BLTOUCH_DEBUG COMMAND=reset Ez akkor fordulhat el\u0151, ha a kalibr\u00e1l\u00e1s megszakad, mert a m\u00e9r\u0151t\u00fcske nem j\u00f6n ki a hely\u00e9r\u0151l. El\u0151fordulhat azonban az is, hogy a BL-Touch m\u00e1r nem tudja mag\u00e1t kalibr\u00e1lni. Ez akkor fordulhat el\u0151, ha a tetej\u00e9n l\u00e9v\u0151 csavar rossz helyzetben van, vagy ha a m\u00e9r\u0151t\u00fcsk\u00e9ben l\u00e9v\u0151 m\u00e1gneses mag elmozdult. Ha \u00fagy mozdult felfel\u00e9, hogy a csavarhoz tapad, el\u0151fordulhat, hogy m\u00e1r nem tudja leengedni a t\u00fcsk\u00e9t. Ilyen esetben ki kell venni a csavart, \u00e9s a m\u00e9r\u0151t\u00fcsk\u00e9t \u00f3vatosan visszatolni a hely\u00e9re. Helyezd vissza a t\u00fcsk\u00e9t a BL-Touch-ba \u00fagy, hogy az a kih\u00fazott helyzetbe essen. \u00d3vatosan tedd vissza a herny\u00f3csavart a hely\u00e9re. Meg kell tal\u00e1lni a megfelel\u0151 poz\u00edci\u00f3t, hogy k\u00e9pes legyen leengedni \u00e9s felemelni a t\u00fcsk\u00e9t, hogy a piros LED be \u00e9s kikapcsoljon. Ehhez haszn\u00e1ld a reset , pin_up \u00e9s pin_down parancsokat. BL-Touch \"kl\u00f3nok\" \u00b6 Sok BL-Touch \"kl\u00f3n\" m\u0171k\u00f6dik megfelel\u0151en a Klipperrel az alap\u00e9rtelmezett konfigur\u00e1ci\u00f3val. N\u00e9h\u00e1ny \"kl\u00f3n\" azonban nem t\u00e1mogatja a QUERY_PROBE parancsot, \u00e9s n\u00e9h\u00e1ny \"kl\u00f3n\" k\u00e9sz\u00fcl\u00e9kek a pin_up_reports_not_triggered vagy a pin_up_touch_mode_reports_triggered parancsok haszn\u00e1lat\u00e1t k\u00f6vetelik meg. Fontos! Ne \u00e1ll\u00edtsd a pin_up_reports_not_triggered vagy a pin_up_touch_mode_reports_triggered \u00e9rt\u00e9k\u00e9t False \u00e9rt\u00e9kre an\u00e9lk\u00fcl, hogy el\u0151bb ne k\u00f6vetn\u00e9 ezeket az utas\u00edt\u00e1sokat. Ne \u00e1ll\u00edtsd egyiket sem False \u00e9rt\u00e9kre egy val\u00f3di BL-Touch eset\u00e9ben. Ezek helytelen be\u00e1ll\u00edt\u00e1sa hamis \u00e9rt\u00e9kre n\u00f6velheti a m\u00e9r\u00e9si id\u0151t, \u00e9s n\u00f6velheti a nyomtat\u00f3 k\u00e1rosod\u00e1s\u00e1nak kock\u00e1zat\u00e1t. N\u00e9h\u00e1ny \"kl\u00f3n\" nem t\u00e1mogatja a touch_mode parancsot, \u00e9s ennek eredm\u00e9nyek\u00e9nt a QUERY_PROBE parancs sem m\u0171k\u00f6dik. Ennek ellen\u00e9re lehets\u00e9ges, hogy ezekkel az eszk\u00f6z\u00f6kkel m\u00e9g mindig lehet m\u00e9r\u00e9st \u00e9s kezd\u0151pont felv\u00e9telt v\u00e9gezni. Ezeken az eszk\u00f6z\u00f6k\u00f6n a kezdeti tesztek sor\u00e1n a QUERY_PROBE parancs nem lesz sikeres, azonban az ezt k\u00f6vet\u0151 G28 (vagy PROBE ) teszt siker\u00fcl. Lehets\u00e9ges, hogy ezeket a \"kl\u00f3nokat\" Klipperrel lehet haszn\u00e1lni, ha nem haszn\u00e1ljuk a QUERY_PROBE parancsot, \u00e9s nem enged\u00e9lyezz\u00fck a probe_with_touch_mode funkci\u00f3t. N\u00e9h\u00e1ny \"kl\u00f3n\" eszk\u00f6z nem k\u00e9pes elv\u00e9gezni a Klipper bels\u0151 \u00e9rz\u00e9kel\u0151 ellen\u0151rz\u0151 tesztj\u00e9t. Ezeken az eszk\u00f6z\u00f6k\u00f6n a kezd\u0151pont vagy a szonda pr\u00f3b\u00e1lkoz\u00e1sai a Klipper \"BLTouch failed to verify sensor state\" hib\u00e1t jelentenek. Ha ez bek\u00f6vetkezik, akkor k\u00e9zzel futtassa le a kezdeti tesztek szakaszban le\u00edrt l\u00e9p\u00e9seket az \u00e9rz\u00e9kel\u0151t\u00fcske m\u0171k\u00f6d\u00e9s\u00e9nek meger\u0151s\u00edt\u00e9s\u00e9re. Ha a QUERY_PROBE parancsok ebben a tesztben mindig a v\u00e1rt eredm\u00e9nyt adj\u00e1k, \u00e9s a \"BLTouch failed to verify sensor state\" hiba tov\u00e1bbra is el\u0151fordul, akkor sz\u00fcks\u00e9ges lehet a Klipper konfigur\u00e1ci\u00f3s f\u00e1jlban a pin_up_touch_mode_reports_triggered \u00e9rt\u00e9k\u00e9t False-ra \u00e1ll\u00edtani. N\u00e9h\u00e1ny r\u00e9gi \"kl\u00f3n\" k\u00e9sz\u00fcl\u00e9k nem k\u00e9pes jelenteni, ha sikeresen felemelte a szond\u00e1t. Ezeken az eszk\u00f6z\u00f6k\u00f6n a Klipper minden egyes kezd\u0151pont vagy m\u00e9r\u00e9si k\u00eds\u00e9rlet ut\u00e1n egy \"BLTouch failed to raise probe\" hib\u00e1t jelent. Ezeket az eszk\u00f6z\u00f6ket tesztelhetj\u00fck. T\u00e1vol\u00edtsuk el a fejet a t\u00e1rgyasztalt\u00f3l, futtassuk a BLTOUCH_DEBUG COMMAND=pin_down parancsot, ellen\u0151rizz\u00fck, hogy a m\u00e9r\u0151t\u00fcske lefel\u00e9 mozdult-e, futtassuk a QUERY_PROBE parancsot, ellen\u0151rizz\u00fck, hogy a \"probe: OPEN\" \u00e9rt\u00e9ket kapjuk, futtassuk a BLTOUCH_DEBUG COMMAND=pin_up , ellen\u0151rizz\u00fck, hogy a m\u00e9r\u0151t\u00fcske felfel\u00e9 mozdult-e, \u00e9s futtassuk a QUERY_PROBE . Ha a m\u00e9r\u0151t\u00fcske tov\u00e1bbra is fent marad, az eszk\u00f6z nem l\u00e9p hiba\u00e1llapotba, \u00e9s az els\u0151 lek\u00e9rdez\u00e9s a \"probe: OPEN\", m\u00edg a m\u00e1sodik lek\u00e9rdez\u00e9s a \"probe: TRIGGERED\", akkor ez azt jelzi, hogy a Klipper konfigur\u00e1ci\u00f3s f\u00e1jlban a pin_up_reports_not_triggered \u00e9rt\u00e9k\u00e9t False-ra kell \u00e1ll\u00edtani. BL-Touch v3 \u00b6 Egyes BL-Touch v3.0 \u00e9s BL-Touch 3.1 eszk\u00f6z\u00f6k eset\u00e9ben el\u0151fordulhat, hogy a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1ban a probe_with_touch_mode be\u00e1ll\u00edt\u00e1sa sz\u00fcks\u00e9ges. Ha a BL-Touch v3.0 jelk\u00e1bel\u00e9t egy (zajsz\u0171r\u0151 kondenz\u00e1torral ell\u00e1tott) v\u00e9g\u00e1ll\u00e1s csatlakoz\u00f3hoz csatlakoztatja, akkor el\u0151fordulhat, hogy a BL-Touch v3.0 nem tud k\u00f6vetkezetesen jelet k\u00fcldeni a kezd\u0151pont felv\u00e9tel \u00e9s a m\u00e9r\u00e9s sor\u00e1n. Ha a kezdeti tesztek szakaszban tal\u00e1lhat\u00f3 QUERY_PROBE parancsok mindig a v\u00e1rt eredm\u00e9nyt adj\u00e1k, de a nyomtat\u00f3fej nem mindig \u00e1ll meg a G28/PROBE parancsok alatt, akkor ez erre a probl\u00e9m\u00e1ra utal. A megold\u00e1s a probe_with_touch_mode: True be\u00e1ll\u00edt\u00e1sa a konfigur\u00e1ci\u00f3s f\u00e1jlban. El\u0151fordulhat, hogy a BL-Touch v3.1 egy sikeres m\u00e9r\u00e9si k\u00eds\u00e9rlet ut\u00e1n hiba\u00e1llapotba ker\u00fcl. Ennek t\u00fcnete a BL-Touch v3.1 id\u0151nk\u00e9nt villog\u00f3 f\u00e9nye, amely n\u00e9h\u00e1ny m\u00e1sodpercig tart, miut\u00e1n sikeresen \u00e9rintkezik az \u00e1ggyal. A Klippernek ezt a hib\u00e1t automatikusan t\u00f6r\u00f6lnie kell, \u00e9s \u00e1ltal\u00e1ban \u00e1rtalmatlan. A konfigur\u00e1ci\u00f3s f\u00e1jlban azonban be\u00e1ll\u00edthatjuk a probe_with_touch_mode \u00e9rt\u00e9ket, hogy elker\u00fclj\u00fck ezt a probl\u00e9m\u00e1t. Fontos! N\u00e9h\u00e1ny \"kl\u00f3n\" eszk\u00f6z \u00e9s a BL-Touch v2.0 (\u00e9s kor\u00e1bbi) cs\u00f6kkent pontoss\u00e1g\u00fa lehet, ha a probe_with_touch_mode \u00e9rt\u00e9ke True. Ennek True \u00e9rt\u00e9kre \u00e1ll\u00edt\u00e1sa a szonda telep\u00edt\u00e9s\u00e9nek idej\u00e9t is megn\u00f6veli. Ha ezt az \u00e9rt\u00e9ket egy \"kl\u00f3n\" vagy r\u00e9gebbi BL-Touch eszk\u00f6z\u00f6n konfigur\u00e1lod, mindenk\u00e9ppen teszteld a szonda pontoss\u00e1g\u00e1t az \u00e9rt\u00e9k be\u00e1ll\u00edt\u00e1sa el\u0151tt \u00e9s ut\u00e1n (a tesztel\u00e9shez haszn\u00e1ld a PROBE_ACCURACY parancsot). T\u00f6bbsz\u00f6ri sz\u00far\u00f3pr\u00f3baszer\u0171 m\u00e9r\u00e9s \u00b6 Alap\u00e9rtelmez\u00e9s szerint a Klipper minden egyes m\u00e9r\u00e9sk\u00eds\u00e9rlet kezdet\u00e9n kitelep\u00edti a m\u00e9r\u0151t\u00fcsk\u00e9t, majd ut\u00e1na elrakja. A szonda ism\u00e9telt be \u00e9s kitelep\u00edt\u00e9se megn\u00f6velheti a sok m\u00e9r\u00e9st tartalmaz\u00f3 kalibr\u00e1l\u00e1si folyamatok teljes id\u0151tartam\u00e1t. A Klipper t\u00e1mogatja, hogy a m\u00e9r\u0151t\u00fcsk\u00e9t az egym\u00e1st k\u00f6vet\u0151 m\u00e9r\u00e9sek k\u00f6z\u00f6tt is kihelyezve hagyja, ami cs\u00f6kkentheti a m\u00e9r\u00e9sek teljes idej\u00e9t. Ez az \u00fczemm\u00f3d a stow_on_each_sample False \u00e9rt\u00e9kre val\u00f3 be\u00e1ll\u00edt\u00e1s\u00e1val enged\u00e9lyezhet\u0151 a konfigur\u00e1ci\u00f3s f\u00e1jlban. Fontos! A stow_on_each_sample False (Hamis) be\u00e1ll\u00edt\u00e1sa ahhoz vezethet, hogy a Klipper v\u00edzszintes nyomtat\u00f3fej mozg\u00e1sokat v\u00e9gez, mik\u00f6zben a szonda ki van helyezve. Gy\u0151z\u0151dj meg r\u00f3la, hogy minden szond\u00e1z\u00e1si m\u0171veletn\u00e9l elegend\u0151 Z-t\u00e1vols\u00e1g van, miel\u0151tt ezt az \u00e9rt\u00e9ket False \u00e9rt\u00e9kre \u00e1ll\u00edtan\u00e1. Ha nincs elegend\u0151 szabad t\u00e9r, akkor a v\u00edzszintes mozg\u00e1sok sor\u00e1n a m\u00e9r\u0151t\u00fcske beleakadhat egy akad\u00e1lyba, ami a nyomtat\u00f3 vagy m\u00e9r\u0151eszk\u00f6z k\u00e1rosod\u00e1s\u00e1t eredm\u00e9nyezheti. Fontos! Aj\u00e1nlott a True \u00e9rt\u00e9kre konfigur\u00e1lt probe_with_touch_mode haszn\u00e1lata, ha a False \u00e9rt\u00e9kre konfigur\u00e1lt stow_on_each_sample \u00e9rt\u00e9ket haszn\u00e1lod. N\u00e9h\u00e1ny \"kl\u00f3n\" eszk\u00f6z nem \u00e9rz\u00e9keli a t\u00e1rgyasztal k\u00e9s\u0151bbi \u00e9rint\u00e9s\u00e9t, ha a probe_with_touch_mode nincs be\u00e1ll\u00edtva. Minden eszk\u00f6z\u00f6n e k\u00e9t be\u00e1ll\u00edt\u00e1s kombin\u00e1ci\u00f3j\u00e1nak haszn\u00e1lata egyszer\u0171s\u00edti az eszk\u00f6z jelz\u00e9s\u00e9t, ami jav\u00edthatja az \u00e1ltal\u00e1nos stabilit\u00e1st. Vedd figyelembe azonban, hogy n\u00e9h\u00e1ny \"kl\u00f3n\" eszk\u00f6z \u00e9s a BL-Touch v2.0 (\u00e9s kor\u00e1bbi) cs\u00f6kkentett pontoss\u00e1g\u00fa lehet, ha a probe_with_touch_mode \u00e9rt\u00e9ke True. Ezeken az eszk\u00f6z\u00f6k\u00f6n \u00e9rdemes tesztelni a szonda pontoss\u00e1g\u00e1t a probe_with_touch_mode be\u00e1ll\u00edt\u00e1sa el\u0151tt \u00e9s ut\u00e1n (a tesztel\u00e9shez haszn\u00e1ld a PROBE_ACCURACY parancsot). A BL-Touch eltol\u00e1sok kalibr\u00e1l\u00e1sa \u00b6 Az x_offset, y_offset \u00e9s z_offset konfigur\u00e1ci\u00f3s param\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1hoz k\u00f6vesse a Szintez\u0151 Kalibr\u00e1l\u00e1sa \u00fatmutat\u00f3ban tal\u00e1lhat\u00f3 utas\u00edt\u00e1sokat. J\u00f3 \u00f6tlet ellen\u0151rizni, hogy a Z eltol\u00e1s k\u00f6zel 1 mm. Ha nem, akkor val\u00f3sz\u00edn\u0171leg felfel\u00e9 vagy lefel\u00e9 kell mozgatni a szond\u00e1t, hogy ezt kijav\u00edtsa. Azt szeretn\u00e9d, hogy aktiv\u00e1l\u00f3djon, miel\u0151tt a f\u00fav\u00f3ka a t\u00e1rgyasztalhoz \u00e9r, hogy a f\u00fav\u00f3k\u00e1hoz ragadt nyomtat\u00f3sz\u00e1l vagy a megg\u00f6rb\u00fclt t\u00e1rgyasztal ne befoly\u00e1solja a m\u00e9r\u00e9si m\u0171veletet. Ugyanakkor azonban azt szeretn\u00e9d, ha a visszah\u00fazott poz\u00edci\u00f3 a lehet\u0151 legmesszebb lenne a f\u00fav\u00f3ka felett, hogy elker\u00fclje a nyomtatott t\u00e1rgyak \u00e9rintkez\u00e9s\u00e9t. Ha a szonda poz\u00edci\u00f3j\u00e1ball\u00edt\u00e1sa megt\u00f6rt\u00e9nt, akkor ism\u00e9telje meg a kalibr\u00e1l\u00e1s l\u00e9p\u00e9seit. BL-Touch kimeneti m\u00f3d \u00b6 A BL-Touch V3.0 t\u00e1mogatja az 5V vagy OPEN-DRAIN kimeneti m\u00f3d be\u00e1ll\u00edt\u00e1s\u00e1t, a BL-Touch V3.1 szint\u00e9n t\u00e1mogatja ezt, de ezt a bels\u0151 EEPROM-j\u00e1ban is el tudja t\u00e1rolni. Ha az alaplapj\u00e1nak sz\u00fcks\u00e9ge van az 5V-os \u00fczemm\u00f3d fix 5V magas logikai szintj\u00e9re, akkor a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jl [bltouch] szakasz\u00e1ban a 'set_output_mode' param\u00e9tert \"5V\" \u00e9rt\u00e9kre \u00e1ll\u00edthatja. Csak akkor haszn\u00e1ld az 5V-os \u00fczemm\u00f3dot, ha az alaplapnak a bemeneti vonala 5V-os toler\u00e1ns. Ez\u00e9rt ezeknek a BL-Touch verzi\u00f3knak az alap\u00e9rtelmezett konfigur\u00e1ci\u00f3ja a OPEN-DRAIN \u00fczemm\u00f3d. Ezzel potenci\u00e1lisan k\u00e1ros\u00edthatod az alaplap CPU-j\u00e1t Ez\u00e9rt teh\u00e1t: Ha egy alaplapnak 5V-os \u00fczemm\u00f3dra van sz\u00fcks\u00e9ge \u00c9S 5V-os toler\u00e1ns a bemeneti jelvonalon \u00c9S ha ha neked BL-Touch Smart V3.0 van, akkor a 'set_output_mode-ot: 5V' param\u00e9tert kell megadni, hogy minden egyes ind\u00edt\u00e1skor biztos\u00edtsd ezt a be\u00e1ll\u00edt\u00e1st, mivel a szonda nem tudja megjegyezni a sz\u00fcks\u00e9ges be\u00e1ll\u00edt\u00e1st. ha neked BL-Touch Smart V3.1 van, akkor v\u00e1laszthatsz a 'set_output_mode: 5V' vagy az \u00fczemm\u00f3d egyszeri t\u00e1rol\u00e1sa a 'BLTOUCH_STORE MODE=5V' parancsok k\u00f6z\u00fcl, k\u00e9zzel \u00e9s NEM a 'set_output_mode:' param\u00e9ter haszn\u00e1lat\u00e1val. ha van m\u00e1s szond\u00e1ja is: A kimeneti \u00fczemm\u00f3d (v\u00e9gleges) be\u00e1ll\u00edt\u00e1s\u00e1hoz n\u00e9h\u00e1ny szond\u00e1nak van egy bek\u00f6t\u00e9se az alaplapon, amelyet el kell v\u00e1gni, vagy egy jumperrel kell be\u00e1ll\u00edtani. Ebben az esetben hagyja ki teljesen a 'set_output_mode' param\u00e9tert. Ha V3.1 szond\u00e1val rendelkezik, ne automatiz\u00e1lja vagy ism\u00e9telje a kimeneti \u00fczemm\u00f3d t\u00e1rol\u00e1s\u00e1t, hogy elker\u00fclje a szonda EEPROM-j\u00e1nak elhaszn\u00e1l\u00f3d\u00e1s\u00e1t. A BLTouch EEPROM k\u00f6r\u00fclbel\u00fcl 100.000 friss\u00edt\u00e9sre alkalmas. A napi 100 t\u00e1rol\u00e1s k\u00f6r\u00fclbel\u00fcl 3 \u00e9vnyi m\u0171k\u00f6d\u00e9st jelentene, miel\u0151tt elhaszn\u00e1l\u00f3dna. \u00cdgy a kimeneti \u00fczemm\u00f3d t\u00e1rol\u00e1s\u00e1t a V3.1-ben a gy\u00e1rt\u00f3 bonyolult m\u0171veletnek tervezte (a gy\u00e1ri alap\u00e9rtelmezett egy biztons\u00e1gos OPEN DRAIN \u00fczemm\u00f3d), \u00e9s nem alkalmas arra, hogy b\u00e1rmilyen szeletel\u0151, makr\u00f3 vagy b\u00e1rmi m\u00e1s \u00e1ltal ism\u00e9telten kiadja, lehet\u0151leg csak akkor haszn\u00e1lhat\u00f3, amikor el\u0151sz\u00f6r integr\u00e1lj\u00e1k a szond\u00e1t egy nyomtat\u00f3 alaplapj\u00e1ra.","title":"BL-Touch"},{"location":"BLTouch.html#bl-touch","text":"","title":"BL-Touch"},{"location":"BLTouch.html#bl-touch-csatlakoztatasa","text":"Egy figyelmeztet\u00e9s miel\u0151tt elkezden\u00e9d: Ker\u00fcld a BL-Touch t\u0171j\u00e9nek puszta ujjal val\u00f3 \u00e9rint\u00e9s\u00e9t, mivel meglehet\u0151sen \u00e9rz\u00e9keny az zs\u00edrra. Ha pedig m\u00e9gis hozz\u00e1\u00e9rsz, legy\u00e9l nagyon \u00f3vatos, hogy ne hajl\u00edtsd vagy nyomd meg a t\u00fcsk\u00e9t. Csatlakoztasd a BL-Touch \"servo\" csatlakoz\u00f3t a control_pin csatlakoz\u00f3hoz a BL-Touch dokument\u00e1ci\u00f3 vagy az MCU dokument\u00e1ci\u00f3ja szerint. Az eredeti k\u00e1belez\u00e9st haszn\u00e1lva a h\u00e1rmasb\u00f3l a s\u00e1rga vezet\u00e9k a control_pin \u00e9s a vezet\u00e9kp\u00e1rb\u00f3l a feh\u00e9r lesz a sensor_pin . Ezeket a t\u0171ket a k\u00e1belez\u00e9snek megfelel\u0151en kell konfigur\u00e1lnia. A legt\u00f6bb BL-Touch pullup jelet ig\u00e9nyel a t\u0171be\u00e1ll\u00edt\u00e1sn\u00e1l (ez\u00e9rt a csatlakoz\u00e1s nev\u00e9nek el\u0151tagja \"^\"). P\u00e9ld\u00e1ul: [bltouch] sensor_pin: ^P1.24 control_pin: P1.26 Ha a BL-Touch-ot a Z tengely alaphelyzetbe \u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1ljuk, akkor \u00e1ll\u00edtsuk be az endstop_pin:probe:z_virtual_endstop -ra \u00e9s t\u00e1vol\u00edtsa el a position_endstop \u00e9s a [stepper_z] -t a config szakaszban, majd adjuk hozz\u00e1 a [safe_z_home] config szakaszt a Z tengely megemel\u00e9s\u00e9hez, az X,Y tengelyek kezd\u0151pont felv\u00e9tel\u00e9re a t\u00e1rgyasztal k\u00f6zep\u00e9re val\u00f3 elmozdul\u00e1shoz \u00e9s a Z tengely kezd\u0151pont felv\u00e9tel\u00e9re. P\u00e9ld\u00e1ul: [safe_z_home] home_xy_position: 100, 100 # A koordin\u00e1t\u00e1kat a t\u00e1rgyasztal k\u00f6zep\u00e9re m\u00f3dos\u00edtjuk. speed: 50 z_hop: 10 # Mozg\u00e1s felfel\u00e9 10mm z_hop_speed: 5 Fontos, hogy a z_hop mozg\u00e1s a safe_z_home-ban el\u00e9g nagy legyen ahhoz, hogy a m\u00e9r\u0151cs\u00facs ne \u00fctk\u00f6zz\u00f6n semmibe, m\u00e9g akkor sem, ha a BL-Touch m\u00e9r\u0151t\u00fcsk\u00e9je a legalacsonyabb \u00e1ll\u00e1sban van.","title":"BL-Touch csatlakoztat\u00e1sa"},{"location":"BLTouch.html#kezdeti-tesztek","text":"Miel\u0151tt tov\u00e1bbl\u00e9pn\u00e9l, ellen\u0151rizd, hogy a BL-Touch a megfelel\u0151 magass\u00e1gban van-e felszerelve. A m\u00e9r\u0151t\u00fcsk\u00e9nek beh\u00fazott \u00e1llapotban nagyj\u00e1b\u00f3l 2 mm-rel a f\u00fav\u00f3ka f\u00f6l\u00f6tt kell lennie Amikor bekapcsolod a nyomtat\u00f3t, a BL-Touch szond\u00e1nak \u00f6nellen\u0151rz\u00e9st kell v\u00e9geznie, \u00e9s n\u00e9h\u00e1nyszor fel-le kell mozgatnia a m\u00e9r\u0151t\u00fcsk\u00e9t. Az \u00f6nellen\u0151rz\u00e9s befejez\u00e9se ut\u00e1n a m\u00e9r\u0151t\u00fcsk\u00e9nek vissza kell h\u00faz\u00f3dnia, \u00e9s a szond\u00e1n l\u00e9v\u0151 piros LED-nek vil\u00e1g\u00edtania kell. Ha b\u00e1rmilyen hib\u00e1t \u00e9szlelsz, p\u00e9ld\u00e1ul a szonda pirosan villog, vagy a m\u00e9r\u0151t\u00fcske lefel\u00e9 van, nem pedig beh\u00fazva, k\u00e9rj\u00fck kapcsold ki a nyomtat\u00f3t, \u00e9s ellen\u0151rizd a k\u00e1belez\u00e9st \u00e9s a konfigur\u00e1ci\u00f3t. Ha a fentiek rendben vannak, itt az ideje tesztelni, hogy a vez\u00e9rl\u00e9s megfelel\u0151en m\u0171k\u00f6dik-e. El\u0151sz\u00f6r futtassuk le a BLTOUCH_DEBUG COMMAND=pin_down parancsot a konzolban. Ellen\u0151rizd, hogy a m\u00e9r\u0151t\u00fcske lefel\u00e9 mozog-e, \u00e9s hogy a BL-Touchon l\u00e9v\u0151 piros LED kialszik-e. Ha nem, ellen\u0151rizd \u00fajra a k\u00e1belez\u00e9st \u00e9s a konfigur\u00e1ci\u00f3t. Ezut\u00e1n adj ki egy BLTOUCH_DEBUG COMMAND=pin_up parancsot. Ellen\u0151rizd, hogy a m\u00e9r\u0151t\u00fcske felfel\u00e9 mozdul-e, \u00e9s hogy a piros LED ism\u00e9t vil\u00e1g\u00edt-e. Ha villog, akkor valamilyen probl\u00e9ma van. A k\u00f6vetkez\u0151 l\u00e9p\u00e9s annak meger\u0151s\u00edt\u00e9se, hogy a m\u00e9r\u0151t\u00fcske megfelel\u0151en m\u0171k\u00f6dik. Futtassa a BLTOUCH_DEBUG COMMAND=pin_down parancsot, \u00e9s ellen\u0151rizd, hogy a m\u00e9r\u0151t\u00fcske lefel\u00e9 mozdul-e. Majd futtassa a BLTOUCH_DEBUG COMMAND=touch_mode parancsot. Futtassa a QUERY_PROBE parancsot, \u00e9s ellen\u0151rizd, hogy az \u00fczenet \"probe: OPEN\". Ezut\u00e1n, mik\u00f6zben a k\u00f6rm\u00e9vel finoman felfel\u00e9 nyomja a m\u00e9r\u0151t\u00fcsk\u00e9t, futtassa le \u00fajra a QUERY_PROBE parancsot. Ellen\u0151rizd, hogy az \u00fczenet a \"probe: TRIGGERED\". Ha b\u00e1rmelyik lek\u00e9rdez\u00e9s nem a megfelel\u0151 \u00fczenetet \u00edrja, akkor az \u00e1ltal\u00e1ban hib\u00e1s bek\u00f6t\u00e9st vagy konfigur\u00e1ci\u00f3t jelez (b\u00e1r egyes kl\u00f3nok speci\u00e1lis kezel\u00e9st ig\u00e9nyelhetnek). A teszt befejez\u00e9sekor futtassuk le a BLTOUCH_DEBUG COMMAND=pin_up parancsot, \u00e9s ellen\u0151rizz\u00fck, hogy a m\u00e9r\u0151t\u00fcske felfel\u00e9 mozdul. A BL-Touch vez\u00e9rl\u0151 \u00e9s \u00e9rz\u00e9kel\u0151t\u00fcsk\u00e9k tesztel\u00e9s\u00e9nek befejez\u00e9se ut\u00e1n itt az ideje a szintez\u00e9s tesztel\u00e9s\u00e9nek, de egy kis csavarral. Ahelyett, hogy a m\u00e9r\u0151t\u00fcske a t\u00e1rgyasztalt \u00e9rinten\u00e9, a k\u00f6rm\u00fcnkel fogjuk meg\u00e9rinteni. Helyezd a nyomtat\u00f3fejet messze a t\u00e1rgyasztalt\u00f3l, adj ki egy G28 (vagy PROBE , ha nem haszn\u00e1lod a probe:z_virtual_endstopot) parancsot, v\u00e1rj m\u00edg a nyomtat\u00f3fej elkezd lefel\u00e9 mozogni, \u00e9s \u00e1ll\u00edtsd meg a mozg\u00e1st \u00fagy, hogy nagyon \u00f3vatosan meg\u00e9rinti a m\u00e9r\u0151t\u00fcsk\u00e9t a k\u00f6rm\u00e9vel. Lehet, hogy ezt k\u00e9tszer kell megtennie, mivel az alap\u00e9rtelmezett kezd\u0151pont konfigur\u00e1ci\u00f3 k\u00e9tszer m\u00e9r. K\u00e9sz\u00fclj fel arra is, hogy kikapcsold a nyomtat\u00f3t, ha az nem \u00e1ll meg, amikor meg\u00e9rinti a m\u00e9r\u0151t\u00fcsk\u00e9t. Ha ez siker\u00fclt, kezd \u00fajra G28 (vagy PROBE ) parancsal, de ez\u00fattal hagyja, hogy a m\u00e9r\u0151t\u00fcske meg\u00e9rintse a t\u00e1rgyasztalt.","title":"Kezdeti tesztek"},{"location":"BLTouch.html#a-bl-touch-elromlott","text":"Amint a BL-Touch inkonzisztens \u00e1llapotba ker\u00fcl, pirosan villogni kezd. Az \u00e1llapotb\u00f3l val\u00f3 kil\u00e9p\u00e9st a k\u00f6vetkez\u0151 parancs kiad\u00e1s\u00e1val lehet k\u00e9nyszer\u00edteni: BLTOUCH_DEBUG COMMAND=reset Ez akkor fordulhat el\u0151, ha a kalibr\u00e1l\u00e1s megszakad, mert a m\u00e9r\u0151t\u00fcske nem j\u00f6n ki a hely\u00e9r\u0151l. El\u0151fordulhat azonban az is, hogy a BL-Touch m\u00e1r nem tudja mag\u00e1t kalibr\u00e1lni. Ez akkor fordulhat el\u0151, ha a tetej\u00e9n l\u00e9v\u0151 csavar rossz helyzetben van, vagy ha a m\u00e9r\u0151t\u00fcsk\u00e9ben l\u00e9v\u0151 m\u00e1gneses mag elmozdult. Ha \u00fagy mozdult felfel\u00e9, hogy a csavarhoz tapad, el\u0151fordulhat, hogy m\u00e1r nem tudja leengedni a t\u00fcsk\u00e9t. Ilyen esetben ki kell venni a csavart, \u00e9s a m\u00e9r\u0151t\u00fcsk\u00e9t \u00f3vatosan visszatolni a hely\u00e9re. Helyezd vissza a t\u00fcsk\u00e9t a BL-Touch-ba \u00fagy, hogy az a kih\u00fazott helyzetbe essen. \u00d3vatosan tedd vissza a herny\u00f3csavart a hely\u00e9re. Meg kell tal\u00e1lni a megfelel\u0151 poz\u00edci\u00f3t, hogy k\u00e9pes legyen leengedni \u00e9s felemelni a t\u00fcsk\u00e9t, hogy a piros LED be \u00e9s kikapcsoljon. Ehhez haszn\u00e1ld a reset , pin_up \u00e9s pin_down parancsokat.","title":"A BL-Touch elromlott"},{"location":"BLTouch.html#bl-touch-klonok","text":"Sok BL-Touch \"kl\u00f3n\" m\u0171k\u00f6dik megfelel\u0151en a Klipperrel az alap\u00e9rtelmezett konfigur\u00e1ci\u00f3val. N\u00e9h\u00e1ny \"kl\u00f3n\" azonban nem t\u00e1mogatja a QUERY_PROBE parancsot, \u00e9s n\u00e9h\u00e1ny \"kl\u00f3n\" k\u00e9sz\u00fcl\u00e9kek a pin_up_reports_not_triggered vagy a pin_up_touch_mode_reports_triggered parancsok haszn\u00e1lat\u00e1t k\u00f6vetelik meg. Fontos! Ne \u00e1ll\u00edtsd a pin_up_reports_not_triggered vagy a pin_up_touch_mode_reports_triggered \u00e9rt\u00e9k\u00e9t False \u00e9rt\u00e9kre an\u00e9lk\u00fcl, hogy el\u0151bb ne k\u00f6vetn\u00e9 ezeket az utas\u00edt\u00e1sokat. Ne \u00e1ll\u00edtsd egyiket sem False \u00e9rt\u00e9kre egy val\u00f3di BL-Touch eset\u00e9ben. Ezek helytelen be\u00e1ll\u00edt\u00e1sa hamis \u00e9rt\u00e9kre n\u00f6velheti a m\u00e9r\u00e9si id\u0151t, \u00e9s n\u00f6velheti a nyomtat\u00f3 k\u00e1rosod\u00e1s\u00e1nak kock\u00e1zat\u00e1t. N\u00e9h\u00e1ny \"kl\u00f3n\" nem t\u00e1mogatja a touch_mode parancsot, \u00e9s ennek eredm\u00e9nyek\u00e9nt a QUERY_PROBE parancs sem m\u0171k\u00f6dik. Ennek ellen\u00e9re lehets\u00e9ges, hogy ezekkel az eszk\u00f6z\u00f6kkel m\u00e9g mindig lehet m\u00e9r\u00e9st \u00e9s kezd\u0151pont felv\u00e9telt v\u00e9gezni. Ezeken az eszk\u00f6z\u00f6k\u00f6n a kezdeti tesztek sor\u00e1n a QUERY_PROBE parancs nem lesz sikeres, azonban az ezt k\u00f6vet\u0151 G28 (vagy PROBE ) teszt siker\u00fcl. Lehets\u00e9ges, hogy ezeket a \"kl\u00f3nokat\" Klipperrel lehet haszn\u00e1lni, ha nem haszn\u00e1ljuk a QUERY_PROBE parancsot, \u00e9s nem enged\u00e9lyezz\u00fck a probe_with_touch_mode funkci\u00f3t. N\u00e9h\u00e1ny \"kl\u00f3n\" eszk\u00f6z nem k\u00e9pes elv\u00e9gezni a Klipper bels\u0151 \u00e9rz\u00e9kel\u0151 ellen\u0151rz\u0151 tesztj\u00e9t. Ezeken az eszk\u00f6z\u00f6k\u00f6n a kezd\u0151pont vagy a szonda pr\u00f3b\u00e1lkoz\u00e1sai a Klipper \"BLTouch failed to verify sensor state\" hib\u00e1t jelentenek. Ha ez bek\u00f6vetkezik, akkor k\u00e9zzel futtassa le a kezdeti tesztek szakaszban le\u00edrt l\u00e9p\u00e9seket az \u00e9rz\u00e9kel\u0151t\u00fcske m\u0171k\u00f6d\u00e9s\u00e9nek meger\u0151s\u00edt\u00e9s\u00e9re. Ha a QUERY_PROBE parancsok ebben a tesztben mindig a v\u00e1rt eredm\u00e9nyt adj\u00e1k, \u00e9s a \"BLTouch failed to verify sensor state\" hiba tov\u00e1bbra is el\u0151fordul, akkor sz\u00fcks\u00e9ges lehet a Klipper konfigur\u00e1ci\u00f3s f\u00e1jlban a pin_up_touch_mode_reports_triggered \u00e9rt\u00e9k\u00e9t False-ra \u00e1ll\u00edtani. N\u00e9h\u00e1ny r\u00e9gi \"kl\u00f3n\" k\u00e9sz\u00fcl\u00e9k nem k\u00e9pes jelenteni, ha sikeresen felemelte a szond\u00e1t. Ezeken az eszk\u00f6z\u00f6k\u00f6n a Klipper minden egyes kezd\u0151pont vagy m\u00e9r\u00e9si k\u00eds\u00e9rlet ut\u00e1n egy \"BLTouch failed to raise probe\" hib\u00e1t jelent. Ezeket az eszk\u00f6z\u00f6ket tesztelhetj\u00fck. T\u00e1vol\u00edtsuk el a fejet a t\u00e1rgyasztalt\u00f3l, futtassuk a BLTOUCH_DEBUG COMMAND=pin_down parancsot, ellen\u0151rizz\u00fck, hogy a m\u00e9r\u0151t\u00fcske lefel\u00e9 mozdult-e, futtassuk a QUERY_PROBE parancsot, ellen\u0151rizz\u00fck, hogy a \"probe: OPEN\" \u00e9rt\u00e9ket kapjuk, futtassuk a BLTOUCH_DEBUG COMMAND=pin_up , ellen\u0151rizz\u00fck, hogy a m\u00e9r\u0151t\u00fcske felfel\u00e9 mozdult-e, \u00e9s futtassuk a QUERY_PROBE . Ha a m\u00e9r\u0151t\u00fcske tov\u00e1bbra is fent marad, az eszk\u00f6z nem l\u00e9p hiba\u00e1llapotba, \u00e9s az els\u0151 lek\u00e9rdez\u00e9s a \"probe: OPEN\", m\u00edg a m\u00e1sodik lek\u00e9rdez\u00e9s a \"probe: TRIGGERED\", akkor ez azt jelzi, hogy a Klipper konfigur\u00e1ci\u00f3s f\u00e1jlban a pin_up_reports_not_triggered \u00e9rt\u00e9k\u00e9t False-ra kell \u00e1ll\u00edtani.","title":"BL-Touch \"kl\u00f3nok\""},{"location":"BLTouch.html#bl-touch-v3","text":"Egyes BL-Touch v3.0 \u00e9s BL-Touch 3.1 eszk\u00f6z\u00f6k eset\u00e9ben el\u0151fordulhat, hogy a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1ban a probe_with_touch_mode be\u00e1ll\u00edt\u00e1sa sz\u00fcks\u00e9ges. Ha a BL-Touch v3.0 jelk\u00e1bel\u00e9t egy (zajsz\u0171r\u0151 kondenz\u00e1torral ell\u00e1tott) v\u00e9g\u00e1ll\u00e1s csatlakoz\u00f3hoz csatlakoztatja, akkor el\u0151fordulhat, hogy a BL-Touch v3.0 nem tud k\u00f6vetkezetesen jelet k\u00fcldeni a kezd\u0151pont felv\u00e9tel \u00e9s a m\u00e9r\u00e9s sor\u00e1n. Ha a kezdeti tesztek szakaszban tal\u00e1lhat\u00f3 QUERY_PROBE parancsok mindig a v\u00e1rt eredm\u00e9nyt adj\u00e1k, de a nyomtat\u00f3fej nem mindig \u00e1ll meg a G28/PROBE parancsok alatt, akkor ez erre a probl\u00e9m\u00e1ra utal. A megold\u00e1s a probe_with_touch_mode: True be\u00e1ll\u00edt\u00e1sa a konfigur\u00e1ci\u00f3s f\u00e1jlban. El\u0151fordulhat, hogy a BL-Touch v3.1 egy sikeres m\u00e9r\u00e9si k\u00eds\u00e9rlet ut\u00e1n hiba\u00e1llapotba ker\u00fcl. Ennek t\u00fcnete a BL-Touch v3.1 id\u0151nk\u00e9nt villog\u00f3 f\u00e9nye, amely n\u00e9h\u00e1ny m\u00e1sodpercig tart, miut\u00e1n sikeresen \u00e9rintkezik az \u00e1ggyal. A Klippernek ezt a hib\u00e1t automatikusan t\u00f6r\u00f6lnie kell, \u00e9s \u00e1ltal\u00e1ban \u00e1rtalmatlan. A konfigur\u00e1ci\u00f3s f\u00e1jlban azonban be\u00e1ll\u00edthatjuk a probe_with_touch_mode \u00e9rt\u00e9ket, hogy elker\u00fclj\u00fck ezt a probl\u00e9m\u00e1t. Fontos! N\u00e9h\u00e1ny \"kl\u00f3n\" eszk\u00f6z \u00e9s a BL-Touch v2.0 (\u00e9s kor\u00e1bbi) cs\u00f6kkent pontoss\u00e1g\u00fa lehet, ha a probe_with_touch_mode \u00e9rt\u00e9ke True. Ennek True \u00e9rt\u00e9kre \u00e1ll\u00edt\u00e1sa a szonda telep\u00edt\u00e9s\u00e9nek idej\u00e9t is megn\u00f6veli. Ha ezt az \u00e9rt\u00e9ket egy \"kl\u00f3n\" vagy r\u00e9gebbi BL-Touch eszk\u00f6z\u00f6n konfigur\u00e1lod, mindenk\u00e9ppen teszteld a szonda pontoss\u00e1g\u00e1t az \u00e9rt\u00e9k be\u00e1ll\u00edt\u00e1sa el\u0151tt \u00e9s ut\u00e1n (a tesztel\u00e9shez haszn\u00e1ld a PROBE_ACCURACY parancsot).","title":"BL-Touch v3"},{"location":"BLTouch.html#tobbszori-szuroprobaszeru-meres","text":"Alap\u00e9rtelmez\u00e9s szerint a Klipper minden egyes m\u00e9r\u00e9sk\u00eds\u00e9rlet kezdet\u00e9n kitelep\u00edti a m\u00e9r\u0151t\u00fcsk\u00e9t, majd ut\u00e1na elrakja. A szonda ism\u00e9telt be \u00e9s kitelep\u00edt\u00e9se megn\u00f6velheti a sok m\u00e9r\u00e9st tartalmaz\u00f3 kalibr\u00e1l\u00e1si folyamatok teljes id\u0151tartam\u00e1t. A Klipper t\u00e1mogatja, hogy a m\u00e9r\u0151t\u00fcsk\u00e9t az egym\u00e1st k\u00f6vet\u0151 m\u00e9r\u00e9sek k\u00f6z\u00f6tt is kihelyezve hagyja, ami cs\u00f6kkentheti a m\u00e9r\u00e9sek teljes idej\u00e9t. Ez az \u00fczemm\u00f3d a stow_on_each_sample False \u00e9rt\u00e9kre val\u00f3 be\u00e1ll\u00edt\u00e1s\u00e1val enged\u00e9lyezhet\u0151 a konfigur\u00e1ci\u00f3s f\u00e1jlban. Fontos! A stow_on_each_sample False (Hamis) be\u00e1ll\u00edt\u00e1sa ahhoz vezethet, hogy a Klipper v\u00edzszintes nyomtat\u00f3fej mozg\u00e1sokat v\u00e9gez, mik\u00f6zben a szonda ki van helyezve. Gy\u0151z\u0151dj meg r\u00f3la, hogy minden szond\u00e1z\u00e1si m\u0171veletn\u00e9l elegend\u0151 Z-t\u00e1vols\u00e1g van, miel\u0151tt ezt az \u00e9rt\u00e9ket False \u00e9rt\u00e9kre \u00e1ll\u00edtan\u00e1. Ha nincs elegend\u0151 szabad t\u00e9r, akkor a v\u00edzszintes mozg\u00e1sok sor\u00e1n a m\u00e9r\u0151t\u00fcske beleakadhat egy akad\u00e1lyba, ami a nyomtat\u00f3 vagy m\u00e9r\u0151eszk\u00f6z k\u00e1rosod\u00e1s\u00e1t eredm\u00e9nyezheti. Fontos! Aj\u00e1nlott a True \u00e9rt\u00e9kre konfigur\u00e1lt probe_with_touch_mode haszn\u00e1lata, ha a False \u00e9rt\u00e9kre konfigur\u00e1lt stow_on_each_sample \u00e9rt\u00e9ket haszn\u00e1lod. N\u00e9h\u00e1ny \"kl\u00f3n\" eszk\u00f6z nem \u00e9rz\u00e9keli a t\u00e1rgyasztal k\u00e9s\u0151bbi \u00e9rint\u00e9s\u00e9t, ha a probe_with_touch_mode nincs be\u00e1ll\u00edtva. Minden eszk\u00f6z\u00f6n e k\u00e9t be\u00e1ll\u00edt\u00e1s kombin\u00e1ci\u00f3j\u00e1nak haszn\u00e1lata egyszer\u0171s\u00edti az eszk\u00f6z jelz\u00e9s\u00e9t, ami jav\u00edthatja az \u00e1ltal\u00e1nos stabilit\u00e1st. Vedd figyelembe azonban, hogy n\u00e9h\u00e1ny \"kl\u00f3n\" eszk\u00f6z \u00e9s a BL-Touch v2.0 (\u00e9s kor\u00e1bbi) cs\u00f6kkentett pontoss\u00e1g\u00fa lehet, ha a probe_with_touch_mode \u00e9rt\u00e9ke True. Ezeken az eszk\u00f6z\u00f6k\u00f6n \u00e9rdemes tesztelni a szonda pontoss\u00e1g\u00e1t a probe_with_touch_mode be\u00e1ll\u00edt\u00e1sa el\u0151tt \u00e9s ut\u00e1n (a tesztel\u00e9shez haszn\u00e1ld a PROBE_ACCURACY parancsot).","title":"T\u00f6bbsz\u00f6ri sz\u00far\u00f3pr\u00f3baszer\u0171 m\u00e9r\u00e9s"},{"location":"BLTouch.html#a-bl-touch-eltolasok-kalibralasa","text":"Az x_offset, y_offset \u00e9s z_offset konfigur\u00e1ci\u00f3s param\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1hoz k\u00f6vesse a Szintez\u0151 Kalibr\u00e1l\u00e1sa \u00fatmutat\u00f3ban tal\u00e1lhat\u00f3 utas\u00edt\u00e1sokat. J\u00f3 \u00f6tlet ellen\u0151rizni, hogy a Z eltol\u00e1s k\u00f6zel 1 mm. Ha nem, akkor val\u00f3sz\u00edn\u0171leg felfel\u00e9 vagy lefel\u00e9 kell mozgatni a szond\u00e1t, hogy ezt kijav\u00edtsa. Azt szeretn\u00e9d, hogy aktiv\u00e1l\u00f3djon, miel\u0151tt a f\u00fav\u00f3ka a t\u00e1rgyasztalhoz \u00e9r, hogy a f\u00fav\u00f3k\u00e1hoz ragadt nyomtat\u00f3sz\u00e1l vagy a megg\u00f6rb\u00fclt t\u00e1rgyasztal ne befoly\u00e1solja a m\u00e9r\u00e9si m\u0171veletet. Ugyanakkor azonban azt szeretn\u00e9d, ha a visszah\u00fazott poz\u00edci\u00f3 a lehet\u0151 legmesszebb lenne a f\u00fav\u00f3ka felett, hogy elker\u00fclje a nyomtatott t\u00e1rgyak \u00e9rintkez\u00e9s\u00e9t. Ha a szonda poz\u00edci\u00f3j\u00e1ball\u00edt\u00e1sa megt\u00f6rt\u00e9nt, akkor ism\u00e9telje meg a kalibr\u00e1l\u00e1s l\u00e9p\u00e9seit.","title":"A BL-Touch eltol\u00e1sok kalibr\u00e1l\u00e1sa"},{"location":"BLTouch.html#bl-touch-kimeneti-mod","text":"A BL-Touch V3.0 t\u00e1mogatja az 5V vagy OPEN-DRAIN kimeneti m\u00f3d be\u00e1ll\u00edt\u00e1s\u00e1t, a BL-Touch V3.1 szint\u00e9n t\u00e1mogatja ezt, de ezt a bels\u0151 EEPROM-j\u00e1ban is el tudja t\u00e1rolni. Ha az alaplapj\u00e1nak sz\u00fcks\u00e9ge van az 5V-os \u00fczemm\u00f3d fix 5V magas logikai szintj\u00e9re, akkor a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jl [bltouch] szakasz\u00e1ban a 'set_output_mode' param\u00e9tert \"5V\" \u00e9rt\u00e9kre \u00e1ll\u00edthatja. Csak akkor haszn\u00e1ld az 5V-os \u00fczemm\u00f3dot, ha az alaplapnak a bemeneti vonala 5V-os toler\u00e1ns. Ez\u00e9rt ezeknek a BL-Touch verzi\u00f3knak az alap\u00e9rtelmezett konfigur\u00e1ci\u00f3ja a OPEN-DRAIN \u00fczemm\u00f3d. Ezzel potenci\u00e1lisan k\u00e1ros\u00edthatod az alaplap CPU-j\u00e1t Ez\u00e9rt teh\u00e1t: Ha egy alaplapnak 5V-os \u00fczemm\u00f3dra van sz\u00fcks\u00e9ge \u00c9S 5V-os toler\u00e1ns a bemeneti jelvonalon \u00c9S ha ha neked BL-Touch Smart V3.0 van, akkor a 'set_output_mode-ot: 5V' param\u00e9tert kell megadni, hogy minden egyes ind\u00edt\u00e1skor biztos\u00edtsd ezt a be\u00e1ll\u00edt\u00e1st, mivel a szonda nem tudja megjegyezni a sz\u00fcks\u00e9ges be\u00e1ll\u00edt\u00e1st. ha neked BL-Touch Smart V3.1 van, akkor v\u00e1laszthatsz a 'set_output_mode: 5V' vagy az \u00fczemm\u00f3d egyszeri t\u00e1rol\u00e1sa a 'BLTOUCH_STORE MODE=5V' parancsok k\u00f6z\u00fcl, k\u00e9zzel \u00e9s NEM a 'set_output_mode:' param\u00e9ter haszn\u00e1lat\u00e1val. ha van m\u00e1s szond\u00e1ja is: A kimeneti \u00fczemm\u00f3d (v\u00e9gleges) be\u00e1ll\u00edt\u00e1s\u00e1hoz n\u00e9h\u00e1ny szond\u00e1nak van egy bek\u00f6t\u00e9se az alaplapon, amelyet el kell v\u00e1gni, vagy egy jumperrel kell be\u00e1ll\u00edtani. Ebben az esetben hagyja ki teljesen a 'set_output_mode' param\u00e9tert. Ha V3.1 szond\u00e1val rendelkezik, ne automatiz\u00e1lja vagy ism\u00e9telje a kimeneti \u00fczemm\u00f3d t\u00e1rol\u00e1s\u00e1t, hogy elker\u00fclje a szonda EEPROM-j\u00e1nak elhaszn\u00e1l\u00f3d\u00e1s\u00e1t. A BLTouch EEPROM k\u00f6r\u00fclbel\u00fcl 100.000 friss\u00edt\u00e9sre alkalmas. A napi 100 t\u00e1rol\u00e1s k\u00f6r\u00fclbel\u00fcl 3 \u00e9vnyi m\u0171k\u00f6d\u00e9st jelentene, miel\u0151tt elhaszn\u00e1l\u00f3dna. \u00cdgy a kimeneti \u00fczemm\u00f3d t\u00e1rol\u00e1s\u00e1t a V3.1-ben a gy\u00e1rt\u00f3 bonyolult m\u0171veletnek tervezte (a gy\u00e1ri alap\u00e9rtelmezett egy biztons\u00e1gos OPEN DRAIN \u00fczemm\u00f3d), \u00e9s nem alkalmas arra, hogy b\u00e1rmilyen szeletel\u0151, makr\u00f3 vagy b\u00e1rmi m\u00e1s \u00e1ltal ism\u00e9telten kiadja, lehet\u0151leg csak akkor haszn\u00e1lhat\u00f3, amikor el\u0151sz\u00f6r integr\u00e1lj\u00e1k a szond\u00e1t egy nyomtat\u00f3 alaplapj\u00e1ra.","title":"BL-Touch kimeneti m\u00f3d"},{"location":"Beaglebone.html","text":"Beaglebone \u00b6 Ez a dokumentum a Klipper futtat\u00e1s\u00e1nak folyamat\u00e1t \u00edrja le egy Beaglebone PRU-n. OS-k\u00e9pf\u00e1jl k\u00e9sz\u00edt\u00e9se \u00b6 Kezdd a Debian 9.9 2019-08-03 4GB SD IoT lemezk\u00e9p telep\u00edt\u00e9s\u00e9vel. A lemezk\u00e9pet futtathatjuk micro-SD k\u00e1rty\u00e1r\u00f3l vagy be\u00e9p\u00edtett eMMC-r\u0151l is. Ha az eMMC-t haszn\u00e1ljuk, akkor most telep\u00edts\u00fck az eMMC-re a fenti link utas\u00edt\u00e1sait k\u00f6vetve. Ezut\u00e1n l\u00e9pj be SSH-n a Beaglebone g\u00e9pre ( ssh debian@beaglebone -- a jelsz\u00f3 temppwd ) \u00e9s telep\u00edtsd a Klippert a k\u00f6vetkez\u0151 parancsok futtat\u00e1s\u00e1val: git clone https://github.com/Klipper3d/klipper ./klipper/scripts/install-beaglebone.sh Octoprint telep\u00edt\u00e9se \u00b6 Ezut\u00e1n telep\u00edthetj\u00fck az Octoprintet: git clone https://github.com/foosel/OctoPrint.git cd OctoPrint/ virtualenv venv ./venv/bin/python setup.py install \u00c9s \u00e1ll\u00edtsd be az OctoPrintet \u00fagy, hogy az ind\u00edt\u00e1skor elinduljon: sudo cp ~/OctoPrint/scripts/octoprint.init /etc/init.d/octoprint sudo chmod +x /etc/init.d/octoprint sudo cp ~/OctoPrint/scripts/octoprint.default /etc/default/octoprint sudo update-rc.d octoprint defaults M\u00f3dos\u00edtani kell az OctoPrint /etc/default/octoprint konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1t. Meg kell v\u00e1ltoztatni a OCTOPRINT_USER felhaszn\u00e1l\u00f3t debian -ra, v\u00e1ltoztassuk meg a NICELEVEL -t 0 -ra, vegy\u00fck ki a BASEDIR megjegyz\u00e9st, CONFIGFILE , \u00e9s DAEMON be\u00e1ll\u00edt\u00e1sokat, \u00e9s m\u00f3dos\u00edtsd a hivatkoz\u00e1sokat /home/pi/ -r\u0151l /home/debian/ -re: sudo nano /etc/default/octoprint Ezut\u00e1n ind\u00edtsa el az Octoprint szolg\u00e1ltat\u00e1st: sudo systemctl start octoprint Gy\u0151z\u0151dj meg r\u00f3la, hogy az OctoPrint webszerver el\u00e9rhet\u0151 - a k\u00f6vetkez\u0151 c\u00edmen kell lennie: http://beaglebone:5000/ A mikrokontroller k\u00f3dj\u00e1nak elk\u00e9sz\u00edt\u00e9se \u00b6 A Klipper mikrokontroller k\u00f3dj\u00e1nak leford\u00edt\u00e1s\u00e1hoz kezdj\u00fck a \"Beaglebone PRU\" konfigur\u00e1l\u00e1s\u00e1val: cd ~/klipper/ make menuconfig Az \u00faj mikrokontroller k\u00f3dj\u00e1nak elk\u00e9sz\u00edt\u00e9s\u00e9hez \u00e9s telep\u00edt\u00e9s\u00e9hez futtassa a k\u00f6vetkez\u0151t: sudo service klipper stop make flash sudo service klipper start Sz\u00fcks\u00e9ges tov\u00e1bb\u00e1 a mikrokontroller k\u00f3dj\u00e1nak leford\u00edt\u00e1sa \u00e9s telep\u00edt\u00e9se egy Linux gazdafolyamathoz. Konfigur\u00e1ld m\u00e1sodszor is egy \"Linux folyamat\" sz\u00e1m\u00e1ra: make menuconfig Ezut\u00e1n telep\u00edtse ezt a mikrokontroller k\u00f3dot is: sudo service klipper stop make flash sudo service klipper start H\u00e1tralev\u0151 konfigur\u00e1ci\u00f3 \u00b6 Fejezze be a telep\u00edt\u00e9st a Klipper \u00e9s az Octoprint konfigur\u00e1l\u00e1s\u00e1val a Telep\u00edt\u00e9s f\u0151dokumentumban tal\u00e1lhat\u00f3 utas\u00edt\u00e1sok szerint. Nyomtat\u00e1s a Beaglebone-on \u00b6 Sajnos a Beaglebone processzor n\u00e9ha nehezen tudja j\u00f3l futtatni az OctoPrintet. El\u0151fordult m\u00e1r, hogy \u00f6sszetett nyomtat\u00e1sokn\u00e1l a nyomtat\u00e1s akadozott (a nyomtat\u00f3 gyorsabban mozog, mint ahogy az OctoPrint mozgat\u00e1si parancsokat tud k\u00fcldeni). Ha ez el\u0151fordul, fontold meg a \"virtual_sdcard\" funkci\u00f3 haszn\u00e1lat\u00e1t (a r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st ), hogy k\u00f6zvetlen\u00fcl a Klipperb\u0151l nyomtass.","title":"Beaglebone"},{"location":"Beaglebone.html#beaglebone","text":"Ez a dokumentum a Klipper futtat\u00e1s\u00e1nak folyamat\u00e1t \u00edrja le egy Beaglebone PRU-n.","title":"Beaglebone"},{"location":"Beaglebone.html#os-kepfajl-keszitese","text":"Kezdd a Debian 9.9 2019-08-03 4GB SD IoT lemezk\u00e9p telep\u00edt\u00e9s\u00e9vel. A lemezk\u00e9pet futtathatjuk micro-SD k\u00e1rty\u00e1r\u00f3l vagy be\u00e9p\u00edtett eMMC-r\u0151l is. Ha az eMMC-t haszn\u00e1ljuk, akkor most telep\u00edts\u00fck az eMMC-re a fenti link utas\u00edt\u00e1sait k\u00f6vetve. Ezut\u00e1n l\u00e9pj be SSH-n a Beaglebone g\u00e9pre ( ssh debian@beaglebone -- a jelsz\u00f3 temppwd ) \u00e9s telep\u00edtsd a Klippert a k\u00f6vetkez\u0151 parancsok futtat\u00e1s\u00e1val: git clone https://github.com/Klipper3d/klipper ./klipper/scripts/install-beaglebone.sh","title":"OS-k\u00e9pf\u00e1jl k\u00e9sz\u00edt\u00e9se"},{"location":"Beaglebone.html#octoprint-telepitese","text":"Ezut\u00e1n telep\u00edthetj\u00fck az Octoprintet: git clone https://github.com/foosel/OctoPrint.git cd OctoPrint/ virtualenv venv ./venv/bin/python setup.py install \u00c9s \u00e1ll\u00edtsd be az OctoPrintet \u00fagy, hogy az ind\u00edt\u00e1skor elinduljon: sudo cp ~/OctoPrint/scripts/octoprint.init /etc/init.d/octoprint sudo chmod +x /etc/init.d/octoprint sudo cp ~/OctoPrint/scripts/octoprint.default /etc/default/octoprint sudo update-rc.d octoprint defaults M\u00f3dos\u00edtani kell az OctoPrint /etc/default/octoprint konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1t. Meg kell v\u00e1ltoztatni a OCTOPRINT_USER felhaszn\u00e1l\u00f3t debian -ra, v\u00e1ltoztassuk meg a NICELEVEL -t 0 -ra, vegy\u00fck ki a BASEDIR megjegyz\u00e9st, CONFIGFILE , \u00e9s DAEMON be\u00e1ll\u00edt\u00e1sokat, \u00e9s m\u00f3dos\u00edtsd a hivatkoz\u00e1sokat /home/pi/ -r\u0151l /home/debian/ -re: sudo nano /etc/default/octoprint Ezut\u00e1n ind\u00edtsa el az Octoprint szolg\u00e1ltat\u00e1st: sudo systemctl start octoprint Gy\u0151z\u0151dj meg r\u00f3la, hogy az OctoPrint webszerver el\u00e9rhet\u0151 - a k\u00f6vetkez\u0151 c\u00edmen kell lennie: http://beaglebone:5000/","title":"Octoprint telep\u00edt\u00e9se"},{"location":"Beaglebone.html#a-mikrokontroller-kodjanak-elkeszitese","text":"A Klipper mikrokontroller k\u00f3dj\u00e1nak leford\u00edt\u00e1s\u00e1hoz kezdj\u00fck a \"Beaglebone PRU\" konfigur\u00e1l\u00e1s\u00e1val: cd ~/klipper/ make menuconfig Az \u00faj mikrokontroller k\u00f3dj\u00e1nak elk\u00e9sz\u00edt\u00e9s\u00e9hez \u00e9s telep\u00edt\u00e9s\u00e9hez futtassa a k\u00f6vetkez\u0151t: sudo service klipper stop make flash sudo service klipper start Sz\u00fcks\u00e9ges tov\u00e1bb\u00e1 a mikrokontroller k\u00f3dj\u00e1nak leford\u00edt\u00e1sa \u00e9s telep\u00edt\u00e9se egy Linux gazdafolyamathoz. Konfigur\u00e1ld m\u00e1sodszor is egy \"Linux folyamat\" sz\u00e1m\u00e1ra: make menuconfig Ezut\u00e1n telep\u00edtse ezt a mikrokontroller k\u00f3dot is: sudo service klipper stop make flash sudo service klipper start","title":"A mikrokontroller k\u00f3dj\u00e1nak elk\u00e9sz\u00edt\u00e9se"},{"location":"Beaglebone.html#hatralevo-konfiguracio","text":"Fejezze be a telep\u00edt\u00e9st a Klipper \u00e9s az Octoprint konfigur\u00e1l\u00e1s\u00e1val a Telep\u00edt\u00e9s f\u0151dokumentumban tal\u00e1lhat\u00f3 utas\u00edt\u00e1sok szerint.","title":"H\u00e1tralev\u0151 konfigur\u00e1ci\u00f3"},{"location":"Beaglebone.html#nyomtatas-a-beaglebone-on","text":"Sajnos a Beaglebone processzor n\u00e9ha nehezen tudja j\u00f3l futtatni az OctoPrintet. El\u0151fordult m\u00e1r, hogy \u00f6sszetett nyomtat\u00e1sokn\u00e1l a nyomtat\u00e1s akadozott (a nyomtat\u00f3 gyorsabban mozog, mint ahogy az OctoPrint mozgat\u00e1si parancsokat tud k\u00fcldeni). Ha ez el\u0151fordul, fontold meg a \"virtual_sdcard\" funkci\u00f3 haszn\u00e1lat\u00e1t (a r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st ), hogy k\u00f6zvetlen\u00fcl a Klipperb\u0151l nyomtass.","title":"Nyomtat\u00e1s a Beaglebone-on"},{"location":"Bed_Level.html","text":"T\u00e1rgyasztal szintez\u00e9se \u00b6 A t\u00e1rgyasztal szintez\u00e9se (n\u00e9ha m\u00e1s n\u00e9ven \"bed tramming\") kritikus fontoss\u00e1g\u00fa a j\u00f3 min\u0151s\u00e9g\u0171 nyomatok el\u0151\u00e1ll\u00edt\u00e1s\u00e1hoz. Ha a t\u00e1rgyasztal nem megfelel\u0151en van \"szintezve\", az rossz tapad\u00e1shoz, \"vetemed\u00e9shez\" \u00e9s finom probl\u00e9m\u00e1khoz vezethet a nyomtat\u00e1s sor\u00e1n. Ez a dokumentum \u00fatmutat\u00f3k\u00e9nt szolg\u00e1l a t\u00e1rgyasztal szintez\u00e9s Klipperben t\u00f6rt\u00e9n\u0151 elv\u00e9gz\u00e9s\u00e9hez. Fontos meg\u00e9rteni a t\u00e1rgyasztal szintez\u00e9s\u00e9nek c\u00e9lj\u00e1t. Ha a nyomtat\u00f3t egy X0 Y0 Z10 poz\u00edci\u00f3ba ir\u00e1ny\u00edtjuk a nyomtat\u00e1s sor\u00e1n, akkor a c\u00e9l az, hogy a nyomtat\u00f3 f\u00fav\u00f3k\u00e1ja pontosan 10 mm-re legyen a nyomtat\u00f3 t\u00e1rgyasztal\u00e1t\u00f3l. Tov\u00e1bb\u00e1, ha a nyomtat\u00f3t ezut\u00e1n a X50 Z10 poz\u00edci\u00f3ba ir\u00e1ny\u00edtjuk, a c\u00e9l az, hogy a f\u00fav\u00f3ka pontosan 10 mm t\u00e1vols\u00e1got tartson a t\u00e1rgyasztalt\u00f3l a teljes v\u00edzszintes mozg\u00e1s sor\u00e1n. A j\u00f3 min\u0151s\u00e9g\u0171 nyomatok \u00e9rdek\u00e9ben a nyomtat\u00f3t \u00fagy kell kalibr\u00e1lni, hogy a Z t\u00e1vols\u00e1gok k\u00f6r\u00fclbel\u00fcl 25 mikron (.025 mm) pontoss\u00e1g\u00faak legyenek. Ez egy kis t\u00e1vols\u00e1g - l\u00e9nyegesen kisebb, mint egy \u00e1tlagos emberi hajsz\u00e1l sz\u00e9less\u00e9ge. Ez a m\u00e9retar\u00e1ny nem m\u00e9rhet\u0151 \"szemmel\". Finom hat\u00e1sok (mint p\u00e9ld\u00e1ul a h\u0151t\u00e1gul\u00e1s) befoly\u00e1solj\u00e1k az ilyen sk\u00e1l\u00e1n v\u00e9gzett m\u00e9r\u00e9seket. A nagy pontoss\u00e1g el\u00e9r\u00e9s\u00e9nek titka az ism\u00e9telhet\u0151 folyamat \u00e9s a nyomtat\u00f3 saj\u00e1t mozg\u00e1srendszer\u00e9nek nagy pontoss\u00e1g\u00e1t kihaszn\u00e1l\u00f3 szintez\u00e9si m\u00f3dszer alkalmaz\u00e1sa. V\u00e1laszd ki a megfelel\u0151 kalibr\u00e1ci\u00f3s mechanizmust \u00b6 A k\u00fcl\u00f6nb\u00f6z\u0151 t\u00edpus\u00fa nyomtat\u00f3k k\u00fcl\u00f6nb\u00f6z\u0151 m\u00f3dszereket haszn\u00e1lnak a t\u00e1rgyasztal szintez\u00e9s\u00e9nek elv\u00e9gz\u00e9s\u00e9re. Ezek mindegyike v\u00e9gs\u0151 soron a \"pap\u00edrteszt\" (l\u00e1sd al\u00e1bb) f\u00fcggv\u00e9nye. Az adott nyomtat\u00f3t\u00edpusra vonatkoz\u00f3 t\u00e9nyleges elj\u00e1r\u00e1st azonban m\u00e1s dokumentumok \u00edrj\u00e1k le. A kalibr\u00e1ci\u00f3s eszk\u00f6z\u00f6k futtat\u00e1sa el\u0151tt felt\u00e9tlen\u00fcl futtassa le a Konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9sek dokumentumban le\u00edrt ellen\u0151rz\u00e9seket. A nyomtat\u00f3 alapvet\u0151 mozg\u00e1s\u00e1nak ellen\u0151rz\u00e9se sz\u00fcks\u00e9ges a t\u00e1rgyasztal szintez\u00e9s\u00e9nek elv\u00e9gz\u00e9se el\u0151tt. A \"automatikus Z-szond\u00e1val\" rendelkez\u0151 nyomtat\u00f3k eset\u00e9ben a szond\u00e1t mindenk\u00e9ppen kalibr\u00e1lja a Probe Calibrate dokumentumban tal\u00e1lhat\u00f3 utas\u00edt\u00e1sok szerint. Delta nyomtat\u00f3k eset\u00e9ben l\u00e1sd a Delta Calibrate dokumentumot. Szintez\u0151csavarokkal \u00e9s hagyom\u00e1nyos Z v\u00e9g\u00e1ll\u00e1ssal rendelkez\u0151 nyomtat\u00f3k eset\u00e9ben l\u00e1sd a Manual Level dokumentumot. A kalibr\u00e1l\u00e1s sor\u00e1n sz\u00fcks\u00e9g lehet arra, hogy a nyomtat\u00f3 Z position_min \u00e9rt\u00e9k\u00e9t negat\u00edv sz\u00e1mra \u00e1ll\u00edtsd be (pl. position_min = -2 ). A nyomtat\u00f3 a kalibr\u00e1ci\u00f3s rutinok sor\u00e1n is v\u00e9grehajtja a hat\u00e1r\u00e9rt\u00e9k-ellen\u0151rz\u00e9st. A negat\u00edv sz\u00e1m be\u00e1ll\u00edt\u00e1sa lehet\u0151v\u00e9 teszi, hogy a nyomtat\u00f3 a t\u00e1rgyasztal n\u00e9vleges poz\u00edci\u00f3ja al\u00e1 mozogjon, ami seg\u00edthet a t\u00e1rgyasztal t\u00e9nyleges poz\u00edci\u00f3j\u00e1nak meghat\u00e1roz\u00e1sakor. A \"pap\u00edrteszt\" \u00b6 A t\u00e1rgyasztal szintez\u00e9s\u00e9nek els\u0151dleges mechanizmusa a \"pap\u00edrteszt\". Ennek sor\u00e1n egy norm\u00e1l \"f\u00e9nym\u00e1sol\u00f3pap\u00edrt\" helyez\u00fcnk a nyomtat\u00f3 t\u00e1rgyasztala \u00e9s a f\u00fav\u00f3ka k\u00f6z\u00e9, majd a f\u00fav\u00f3k\u00e1t k\u00fcl\u00f6nb\u00f6z\u0151 Z magass\u00e1gba \u00e1ll\u00edtjuk, am\u00edg a pap\u00edr el\u0151re-h\u00e1tra tol\u00e1sa k\u00f6zben egy kis s\u00farl\u00f3d\u00e1st nem \u00e9rz\u00fcnk. Fontos meg\u00e9rteni a \"pap\u00edrtesztet\" m\u00e9g akkor is, ha valakinek van \"automatikus szintez\u0151je\". Mag\u00e1t a szond\u00e1t gyakran kalibr\u00e1lni kell a j\u00f3 eredm\u00e9nyek el\u00e9r\u00e9s\u00e9hez. A szonda kalibr\u00e1l\u00e1sa a \"pap\u00edrteszt\" seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nik. A pap\u00edrteszt elv\u00e9gz\u00e9s\u00e9hez v\u00e1gjon ki egy kis t\u00e9glalap alak\u00fa pap\u00edrdarabot egy oll\u00f3val (pl. 5x3 cm). A pap\u00edr vastags\u00e1ga \u00e1ltal\u00e1ban k\u00f6r\u00fclbel\u00fcl 100 mikron (0,100 mm). (A pap\u00edr pontos vastags\u00e1ga nem d\u00f6nt\u0151 fontoss\u00e1g\u00fa.) A pap\u00edrteszt els\u0151 l\u00e9p\u00e9se a nyomtat\u00f3 f\u00fav\u00f3k\u00e1j\u00e1nak \u00e9s t\u00e1rgyasztal\u00e1nak ellen\u0151rz\u00e9se. Gy\u0151z\u0151dj meg r\u00f3la, hogy nincs m\u0171anyag (vagy m\u00e1s t\u00f6rmel\u00e9k) a f\u00fav\u00f3k\u00e1n vagy a t\u00e1rgyasztalon. Ellen\u0151rizd a f\u00fav\u00f3k\u00e1t \u00e9s a t\u00e1rgyasztalt, hogy nincs-e benne/rajta m\u0171anyag! Ha valaki mindig egy adott lapra vagy fel\u00fcletre nyomtat, akkor a pap\u00edrtesztet az adott lappal/fel\u00fclettel a hely\u00e9n v\u00e9gezheti el. Vedd azonban figyelembe, hogy maga a lap vastags\u00e1ggal rendelkezik, \u00e9s a k\u00fcl\u00f6nb\u00f6z\u0151 lapok (vagy b\u00e1rmely m\u00e1s nyomtat\u00e1si fel\u00fclet) hat\u00e1ssal lesznek a Z m\u00e9r\u00e9sekre. Mindenk\u00e9ppen v\u00e9gezd el \u00fajra a pap\u00edrtesztet, hogy minden egyes haszn\u00e1lt fel\u00fclett\u00edpust megm\u00e9rj. Ha m\u0171anyag van a f\u00fav\u00f3k\u00e1n, akkor meleg\u00edtse fel az extrudert, \u00e9s egy f\u00e9m csipesszel t\u00e1vol\u00edtsa el a m\u0171anyagot. V\u00e1rja meg, am\u00edg az extruder teljesen leh\u0171l szobah\u0151m\u00e9rs\u00e9klet\u0171re, miel\u0151tt folytatja a pap\u00edrtesztet. Am\u00edg a f\u00fav\u00f3ka h\u0171l, a f\u00e9mcsipesszel t\u00e1vol\u00edtsa el az esetlegesen kisziv\u00e1rg\u00f3 m\u0171anyagot. A pap\u00edrtesztet mindig akkor v\u00e9gezd el, amikor a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal szobah\u0151m\u00e9rs\u00e9kleten van! A f\u00fav\u00f3ka meleg\u00edt\u00e9sekor a h\u0151t\u00e1gul\u00e1s miatt megv\u00e1ltozik a helyzete (a t\u00e1rgyasztalhoz k\u00e9pest). Ez a h\u0151t\u00e1gul\u00e1s jellemz\u0151en 100 mikron k\u00f6r\u00fcli, ami k\u00f6r\u00fclbel\u00fcl ugyanolyan m\u00e9ret, mint egy tipikus nyomtat\u00f3pap\u00edr. A h\u0151t\u00e1gul\u00e1s pontos m\u00e9rt\u00e9ke nem d\u00f6nt\u0151, ahogyan a pap\u00edr pontos vastags\u00e1ga sem d\u00f6nt\u0151. Induljunk ki abb\u00f3l a felt\u00e9telez\u00e9sb\u0151l, hogy a kett\u0151 egyenl\u0151 (a k\u00e9t t\u00e1vols\u00e1g k\u00f6z\u00f6tti k\u00fcl\u00f6nbs\u00e9g meghat\u00e1roz\u00e1s\u00e1nak m\u00f3dszer\u00e9t l\u00e1sd al\u00e1bb). Furcs\u00e1nak t\u0171nhet, hogy a t\u00e1vols\u00e1got szobah\u0151m\u00e9rs\u00e9kleten kalibr\u00e1ljuk, amikor a c\u00e9l az, hogy meleg\u00edt\u00e9skor egyenletes t\u00e1vols\u00e1got \u00e9rj\u00fcnk el. Ha azonban a f\u00fav\u00f3k\u00e1t meleg\u00edtve kalibr\u00e1ljuk, akkor hajlamos kis mennyis\u00e9g\u0171 olvadt m\u0171anyagot juttatni a pap\u00edrra, ami megv\u00e1ltoztatja az \u00e9rz\u00e9kelt s\u00farl\u00f3d\u00e1s m\u00e9rt\u00e9k\u00e9t. Ez megnehez\u00edti a j\u00f3 kalibr\u00e1ci\u00f3t. Ha a szintez\u00e9s felf\u0171t\u00f6tt \u00e1llapotban t\u00f6rt\u00e9nik, akkor nagym\u00e9rt\u00e9kben megn\u0151 a meg\u00e9g\u00e9s vesz\u00e9lye is. A h\u0151t\u00e1gul\u00e1s m\u00e9rt\u00e9ke stabil, \u00edgy a kalibr\u00e1l\u00e1s sor\u00e1n k\u00e9s\u0151bb k\u00f6nnyen figyelembe vehet\u0151. Automatiz\u00e1lt eszk\u00f6zzel hat\u00e1rozza meg a pontos Z magass\u00e1got! A Klipperben sz\u00e1mos seg\u00e9dszkript \u00e1ll rendelkez\u00e9sre (pl. MANUAL_PROBE, Z_ENDSTOP_CALIBRATE, PROBE_CALIBRATE, DELTA_CALIBRATE). L\u00e1sd a documentumokat fentebb le\u00edrva , hogy v\u00e1lassz k\u00f6z\u00fcl\u00fck egyet. Futtassa a megfelel\u0151 parancsot az OctoPrint konzolj\u00e1ban. A szkript az OctoPrint termin\u00e1l kimenet\u00e9n k\u00e9ri a felhaszn\u00e1l\u00f3 beavatkoz\u00e1s\u00e1t. Valahogy \u00edgy fog kin\u00e9zni: Recv: // Starting manual Z probe. Use TESTZ to adjust position. Recv: // Finish with ACCEPT or ABORT command. Recv: // Z position: ?????? --> 5.000 <-- ?????? A f\u00fav\u00f3ka aktu\u00e1lis magass\u00e1ga (ahogyan azt a nyomtat\u00f3 jelenleg \u00e9rtelmezi) a \"--> <--\" k\u00f6z\u00f6tt jelenik meg. A jobb oldali sz\u00e1m a legut\u00f3bbi m\u00e9r\u00e9s magass\u00e1ga, amely \u00e9ppen nagyobb, mint az aktu\u00e1lis magass\u00e1g, a bal oldali pedig a legut\u00f3bbi m\u00e9r\u00e9s magass\u00e1ga, amely kisebb, mint az aktu\u00e1lis magass\u00e1g (vagy ??????, ha nem t\u00f6rt\u00e9nt k\u00eds\u00e9rlet). Helyezd a pap\u00edrt a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00e9. Hasznos lehet a pap\u00edr egyik sark\u00e1t behajtani, hogy k\u00f6nnyebb legyen megfogni. (Pr\u00f3b\u00e1lja \u00fagy, hogy ne nyomja le a t\u00e1rgyasztalt, amikor a pap\u00edrt el\u0151re-h\u00e1tra mozgatja). A TESTZ paranccsal k\u00e9rheti, hogy a f\u00fav\u00f3ka k\u00f6zelebb menjen a pap\u00edrhoz. P\u00e9ld\u00e1ul: TESTZ Z=-.1 A TESTZ parancs a f\u00fav\u00f3k\u00e1t az aktu\u00e1lis poz\u00edci\u00f3j\u00e1t\u00f3l relat\u00edv t\u00e1vols\u00e1gra mozgatja. (Teh\u00e1t a Z=-.1 azt k\u00e9ri, hogy a f\u00fav\u00f3ka 0,1 mm-rel k\u00f6zelebb ker\u00fclj\u00f6n a t\u00e1rgyasztalhoz). Miut\u00e1n a f\u00fav\u00f3ka meg\u00e1llt, tolja el\u0151re-h\u00e1tra a pap\u00edrt, hogy ellen\u0151rizd, hogy a f\u00fav\u00f3ka \u00e9rintkezik-e a pap\u00edrral, \u00e9s hogy \u00e9rezze a s\u00farl\u00f3d\u00e1s m\u00e9rt\u00e9k\u00e9t. Folytassa a TESTZ parancsok kiad\u00e1s\u00e1t mindaddig, am\u00edg a pap\u00edrral val\u00f3 tesztel\u00e9sekkor nem \u00e9rez egy kis s\u00farl\u00f3d\u00e1st. Ha t\u00fal nagy a s\u00farl\u00f3d\u00e1s, akkor egy pozit\u00edv Z \u00e9rt\u00e9ket haszn\u00e1lhatunk a f\u00fav\u00f3ka felfel\u00e9 mozgat\u00e1s\u00e1ra. Lehet\u0151s\u00e9g van a TESTZ Z=+ vagy a TESTZ Z=- haszn\u00e1lat\u00e1ra is, hogy \"felezz\u00fck\" az utols\u00f3 poz\u00edci\u00f3t - azaz k\u00e9t poz\u00edci\u00f3 k\u00f6z\u00f6tt f\u00e9l\u00faton l\u00e9v\u0151 poz\u00edci\u00f3ba l\u00e9pj\u00fcnk. P\u00e9ld\u00e1ul, ha a TESTZ parancs a k\u00f6vetkez\u0151 felsz\u00f3l\u00edt\u00e1st adn\u00e1: Recv: // Z position: 0.130 --> 0.230 <-- 0.280 Ezut\u00e1n egy TESTZ Z=- a f\u00fav\u00f3k\u00e1t 0,180 Z poz\u00edci\u00f3ba (a 0,130 \u00e9s 0,230 k\u00f6z\u00f6tti f\u00e9l\u00fatra) mozgatja. Ezt a funkci\u00f3t arra lehet haszn\u00e1lni, hogy seg\u00edtsen gyorsan lesz\u0171k\u00edteni egy konzisztens s\u00farl\u00f3d\u00e1st. A Z=++ \u00e9s Z=-- parancsok haszn\u00e1lat\u00e1val k\u00f6zvetlen\u00fcl visszat\u00e9rhet\u00fcnk egy kor\u00e1bbi m\u00e9r\u00e9shez - p\u00e9ld\u00e1ul a fenti felsz\u00f3l\u00edt\u00e1s ut\u00e1n a TESTZ Z=-- parancs a f\u00fav\u00f3k\u00e1t a 0,130-as Z poz\u00edci\u00f3ba mozgatn\u00e1. Miut\u00e1n \u00e9rz\u00e9kelhet\u0151 egy kis s\u00farl\u00f3d\u00e1s, add ki az ACCEPT parancsot: ACCEPT Ez elfogadja a megadott Z magass\u00e1got, \u00e9s az adott kalibr\u00e1ci\u00f3s eszk\u00f6zzel folytatja a munk\u00e1t. Az \u00e9rz\u00e9kelt s\u00farl\u00f3d\u00e1s pontos m\u00e9rt\u00e9ke nem d\u00f6nt\u0151 fontoss\u00e1g\u00fa, ahogyan a h\u0151t\u00e1gul\u00e1s m\u00e9rt\u00e9ke \u00e9s a pap\u00edr pontos sz\u00e9less\u00e9ge sem d\u00f6nt\u0151 fontoss\u00e1g\u00fa. Csak pr\u00f3b\u00e1ljon meg minden egyes alkalommal ugyanannyi s\u00farl\u00f3d\u00e1st el\u00e9rni, amikor a tesztet lefuttatja. Ha a teszt sor\u00e1n valami rosszul megy, az ABORT paranccsal kil\u00e9phet\u00fcnk a kalibr\u00e1ci\u00f3s eszk\u00f6zb\u0151l. A h\u0151t\u00e1gul\u00e1s meghat\u00e1roz\u00e1sa \u00b6 Miut\u00e1n sikeresen elv\u00e9gezte a t\u00e1rgyasztal szintez\u00e9s\u00e9t, pontosabb \u00e9rt\u00e9ket lehet kisz\u00e1m\u00edtani a \"h\u0151t\u00e1gul\u00e1s\", \"a pap\u00edr vastags\u00e1ga\" \u00e9s \"a pap\u00edrteszt sor\u00e1n \u00e9rz\u00e9kelhet\u0151 s\u00farl\u00f3d\u00e1s\" egy\u00fcttes hat\u00e1s\u00e1ra. Ilyen t\u00edpus\u00fa sz\u00e1m\u00edt\u00e1sokra \u00e1ltal\u00e1ban nincs sz\u00fcks\u00e9g, mivel a legt\u00f6bb felhaszn\u00e1l\u00f3 szerint az egyszer\u0171 \"pap\u00edrteszt\" j\u00f3 eredm\u00e9nyeket ad. A sz\u00e1m\u00edt\u00e1s legegyszer\u0171bben \u00fagy v\u00e9gezhet\u0151 el, ha kinyomtatunk egy olyan tesztobjektumot, amelynek minden oldal\u00e1n egyenes falak vannak. Ehhez a docs/prints/square.stl f\u00e1jlban tal\u00e1lhat\u00f3 nagy, \u00fcreges n\u00e9gyzetet haszn\u00e1lhatjuk. Az objektum szeletel\u00e9sekor gy\u0151z\u0151dj meg r\u00f3la, hogy a szeletel\u0151 az els\u0151 szinthez ugyanazt a r\u00e9tegmagass\u00e1got \u00e9s extrud\u00e1l\u00e1si sz\u00e9less\u00e9get haszn\u00e1lja, mint az \u00f6sszes tov\u00e1bbi r\u00e9teghez. Haszn\u00e1lj durva r\u00e9tegmagass\u00e1got (a r\u00e9tegmagass\u00e1gnak a f\u00fav\u00f3ka \u00e1tm\u00e9r\u0151j\u00e9nek k\u00f6r\u00fclbel\u00fcl 75%-\u00e1nak kell lennie), \u00e9s ne haszn\u00e1lj peremet vagy szokny\u00e1t. Nyomtasd ki a tesztobjektumot, v\u00e1rja meg, am\u00edg leh\u0171l, \u00e9s vedd le a t\u00e1rgyasztalr\u00f3l. Ellen\u0151rizd a t\u00e1rgy legals\u00f3 r\u00e9teg\u00e9t. (Az is hasznos lehet, ha ujj\u00e1t vagy k\u00f6rm\u00e9t v\u00e9gigh\u00fazza az als\u00f3 sz\u00e9l\u00e9n.) Ha azt tapasztaljuk, hogy az als\u00f3 r\u00e9teg a t\u00e1rgy minden oldala ment\u00e9n kiss\u00e9 kidudorodik, akkor ez azt jelzi, hogy a f\u00fav\u00f3ka kiss\u00e9 k\u00f6zelebb volt a t\u00e1rgyasztalhoz, mint kellett volna. A magass\u00e1g n\u00f6vel\u00e9s\u00e9hez kiadhatunk egy SET_GCODE_OFFSET Z=+.010 parancsot. A k\u00e9s\u0151bbi nyomtat\u00e1sokban ellen\u0151rizhetj\u00fck ezt a viselked\u00e9st, \u00e9s sz\u00fcks\u00e9g szerint tov\u00e1bbi kiigaz\u00edt\u00e1sokat v\u00e9gezhet\u00fcnk. Az ilyen t\u00edpus\u00fa be\u00e1ll\u00edt\u00e1sok jellemz\u0151en 10 mikronokban (.010mm) t\u00f6rt\u00e9nnek. Ha az als\u00f3 r\u00e9teg keskenyebbnek t\u0171nik, mint a k\u00f6vetkez\u0151 r\u00e9tegek, akkor a SET_GCODE_OFFSET paranccsal negat\u00edv Z-be\u00e1ll\u00edt\u00e1st v\u00e9gezhet\u00fcnk. Ha bizonytalanok vagyunk, akkor a Z-be\u00e1ll\u00edt\u00e1st addig cs\u00f6kkenthetj\u00fck, am\u00edg a nyomatok als\u00f3 r\u00e9tege egy kis dudort nem mutat, majd addig cs\u00f6kkenthetj\u00fck, am\u00edg az el nem t\u0171nik. A legegyszer\u0171bb m\u00f3dja a k\u00edv\u00e1nt Z-korrig\u00e1l\u00e1snak, ha l\u00e9trehoz egy START_PRINT G-k\u00f3d makr\u00f3t. A szeletel\u0151 \u00fagy int\u00e9zi, hogy a makr\u00f3 minden nyomtat\u00e1s kezdetekor megh\u00edvja ezt a parancsot, \u00e9s hozz\u00e1ad egy SET_GCODE_OFFSET parancsot. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a szeletel\u0151k dokumentumot.","title":"T\u00e1rgyasztal szintez\u00e9se"},{"location":"Bed_Level.html#targyasztal-szintezese","text":"A t\u00e1rgyasztal szintez\u00e9se (n\u00e9ha m\u00e1s n\u00e9ven \"bed tramming\") kritikus fontoss\u00e1g\u00fa a j\u00f3 min\u0151s\u00e9g\u0171 nyomatok el\u0151\u00e1ll\u00edt\u00e1s\u00e1hoz. Ha a t\u00e1rgyasztal nem megfelel\u0151en van \"szintezve\", az rossz tapad\u00e1shoz, \"vetemed\u00e9shez\" \u00e9s finom probl\u00e9m\u00e1khoz vezethet a nyomtat\u00e1s sor\u00e1n. Ez a dokumentum \u00fatmutat\u00f3k\u00e9nt szolg\u00e1l a t\u00e1rgyasztal szintez\u00e9s Klipperben t\u00f6rt\u00e9n\u0151 elv\u00e9gz\u00e9s\u00e9hez. Fontos meg\u00e9rteni a t\u00e1rgyasztal szintez\u00e9s\u00e9nek c\u00e9lj\u00e1t. Ha a nyomtat\u00f3t egy X0 Y0 Z10 poz\u00edci\u00f3ba ir\u00e1ny\u00edtjuk a nyomtat\u00e1s sor\u00e1n, akkor a c\u00e9l az, hogy a nyomtat\u00f3 f\u00fav\u00f3k\u00e1ja pontosan 10 mm-re legyen a nyomtat\u00f3 t\u00e1rgyasztal\u00e1t\u00f3l. Tov\u00e1bb\u00e1, ha a nyomtat\u00f3t ezut\u00e1n a X50 Z10 poz\u00edci\u00f3ba ir\u00e1ny\u00edtjuk, a c\u00e9l az, hogy a f\u00fav\u00f3ka pontosan 10 mm t\u00e1vols\u00e1got tartson a t\u00e1rgyasztalt\u00f3l a teljes v\u00edzszintes mozg\u00e1s sor\u00e1n. A j\u00f3 min\u0151s\u00e9g\u0171 nyomatok \u00e9rdek\u00e9ben a nyomtat\u00f3t \u00fagy kell kalibr\u00e1lni, hogy a Z t\u00e1vols\u00e1gok k\u00f6r\u00fclbel\u00fcl 25 mikron (.025 mm) pontoss\u00e1g\u00faak legyenek. Ez egy kis t\u00e1vols\u00e1g - l\u00e9nyegesen kisebb, mint egy \u00e1tlagos emberi hajsz\u00e1l sz\u00e9less\u00e9ge. Ez a m\u00e9retar\u00e1ny nem m\u00e9rhet\u0151 \"szemmel\". Finom hat\u00e1sok (mint p\u00e9ld\u00e1ul a h\u0151t\u00e1gul\u00e1s) befoly\u00e1solj\u00e1k az ilyen sk\u00e1l\u00e1n v\u00e9gzett m\u00e9r\u00e9seket. A nagy pontoss\u00e1g el\u00e9r\u00e9s\u00e9nek titka az ism\u00e9telhet\u0151 folyamat \u00e9s a nyomtat\u00f3 saj\u00e1t mozg\u00e1srendszer\u00e9nek nagy pontoss\u00e1g\u00e1t kihaszn\u00e1l\u00f3 szintez\u00e9si m\u00f3dszer alkalmaz\u00e1sa.","title":"T\u00e1rgyasztal szintez\u00e9se"},{"location":"Bed_Level.html#valaszd-ki-a-megfelelo-kalibracios-mechanizmust","text":"A k\u00fcl\u00f6nb\u00f6z\u0151 t\u00edpus\u00fa nyomtat\u00f3k k\u00fcl\u00f6nb\u00f6z\u0151 m\u00f3dszereket haszn\u00e1lnak a t\u00e1rgyasztal szintez\u00e9s\u00e9nek elv\u00e9gz\u00e9s\u00e9re. Ezek mindegyike v\u00e9gs\u0151 soron a \"pap\u00edrteszt\" (l\u00e1sd al\u00e1bb) f\u00fcggv\u00e9nye. Az adott nyomtat\u00f3t\u00edpusra vonatkoz\u00f3 t\u00e9nyleges elj\u00e1r\u00e1st azonban m\u00e1s dokumentumok \u00edrj\u00e1k le. A kalibr\u00e1ci\u00f3s eszk\u00f6z\u00f6k futtat\u00e1sa el\u0151tt felt\u00e9tlen\u00fcl futtassa le a Konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9sek dokumentumban le\u00edrt ellen\u0151rz\u00e9seket. A nyomtat\u00f3 alapvet\u0151 mozg\u00e1s\u00e1nak ellen\u0151rz\u00e9se sz\u00fcks\u00e9ges a t\u00e1rgyasztal szintez\u00e9s\u00e9nek elv\u00e9gz\u00e9se el\u0151tt. A \"automatikus Z-szond\u00e1val\" rendelkez\u0151 nyomtat\u00f3k eset\u00e9ben a szond\u00e1t mindenk\u00e9ppen kalibr\u00e1lja a Probe Calibrate dokumentumban tal\u00e1lhat\u00f3 utas\u00edt\u00e1sok szerint. Delta nyomtat\u00f3k eset\u00e9ben l\u00e1sd a Delta Calibrate dokumentumot. Szintez\u0151csavarokkal \u00e9s hagyom\u00e1nyos Z v\u00e9g\u00e1ll\u00e1ssal rendelkez\u0151 nyomtat\u00f3k eset\u00e9ben l\u00e1sd a Manual Level dokumentumot. A kalibr\u00e1l\u00e1s sor\u00e1n sz\u00fcks\u00e9g lehet arra, hogy a nyomtat\u00f3 Z position_min \u00e9rt\u00e9k\u00e9t negat\u00edv sz\u00e1mra \u00e1ll\u00edtsd be (pl. position_min = -2 ). A nyomtat\u00f3 a kalibr\u00e1ci\u00f3s rutinok sor\u00e1n is v\u00e9grehajtja a hat\u00e1r\u00e9rt\u00e9k-ellen\u0151rz\u00e9st. A negat\u00edv sz\u00e1m be\u00e1ll\u00edt\u00e1sa lehet\u0151v\u00e9 teszi, hogy a nyomtat\u00f3 a t\u00e1rgyasztal n\u00e9vleges poz\u00edci\u00f3ja al\u00e1 mozogjon, ami seg\u00edthet a t\u00e1rgyasztal t\u00e9nyleges poz\u00edci\u00f3j\u00e1nak meghat\u00e1roz\u00e1sakor.","title":"V\u00e1laszd ki a megfelel\u0151 kalibr\u00e1ci\u00f3s mechanizmust"},{"location":"Bed_Level.html#a-papirteszt","text":"A t\u00e1rgyasztal szintez\u00e9s\u00e9nek els\u0151dleges mechanizmusa a \"pap\u00edrteszt\". Ennek sor\u00e1n egy norm\u00e1l \"f\u00e9nym\u00e1sol\u00f3pap\u00edrt\" helyez\u00fcnk a nyomtat\u00f3 t\u00e1rgyasztala \u00e9s a f\u00fav\u00f3ka k\u00f6z\u00e9, majd a f\u00fav\u00f3k\u00e1t k\u00fcl\u00f6nb\u00f6z\u0151 Z magass\u00e1gba \u00e1ll\u00edtjuk, am\u00edg a pap\u00edr el\u0151re-h\u00e1tra tol\u00e1sa k\u00f6zben egy kis s\u00farl\u00f3d\u00e1st nem \u00e9rz\u00fcnk. Fontos meg\u00e9rteni a \"pap\u00edrtesztet\" m\u00e9g akkor is, ha valakinek van \"automatikus szintez\u0151je\". Mag\u00e1t a szond\u00e1t gyakran kalibr\u00e1lni kell a j\u00f3 eredm\u00e9nyek el\u00e9r\u00e9s\u00e9hez. A szonda kalibr\u00e1l\u00e1sa a \"pap\u00edrteszt\" seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nik. A pap\u00edrteszt elv\u00e9gz\u00e9s\u00e9hez v\u00e1gjon ki egy kis t\u00e9glalap alak\u00fa pap\u00edrdarabot egy oll\u00f3val (pl. 5x3 cm). A pap\u00edr vastags\u00e1ga \u00e1ltal\u00e1ban k\u00f6r\u00fclbel\u00fcl 100 mikron (0,100 mm). (A pap\u00edr pontos vastags\u00e1ga nem d\u00f6nt\u0151 fontoss\u00e1g\u00fa.) A pap\u00edrteszt els\u0151 l\u00e9p\u00e9se a nyomtat\u00f3 f\u00fav\u00f3k\u00e1j\u00e1nak \u00e9s t\u00e1rgyasztal\u00e1nak ellen\u0151rz\u00e9se. Gy\u0151z\u0151dj meg r\u00f3la, hogy nincs m\u0171anyag (vagy m\u00e1s t\u00f6rmel\u00e9k) a f\u00fav\u00f3k\u00e1n vagy a t\u00e1rgyasztalon. Ellen\u0151rizd a f\u00fav\u00f3k\u00e1t \u00e9s a t\u00e1rgyasztalt, hogy nincs-e benne/rajta m\u0171anyag! Ha valaki mindig egy adott lapra vagy fel\u00fcletre nyomtat, akkor a pap\u00edrtesztet az adott lappal/fel\u00fclettel a hely\u00e9n v\u00e9gezheti el. Vedd azonban figyelembe, hogy maga a lap vastags\u00e1ggal rendelkezik, \u00e9s a k\u00fcl\u00f6nb\u00f6z\u0151 lapok (vagy b\u00e1rmely m\u00e1s nyomtat\u00e1si fel\u00fclet) hat\u00e1ssal lesznek a Z m\u00e9r\u00e9sekre. Mindenk\u00e9ppen v\u00e9gezd el \u00fajra a pap\u00edrtesztet, hogy minden egyes haszn\u00e1lt fel\u00fclett\u00edpust megm\u00e9rj. Ha m\u0171anyag van a f\u00fav\u00f3k\u00e1n, akkor meleg\u00edtse fel az extrudert, \u00e9s egy f\u00e9m csipesszel t\u00e1vol\u00edtsa el a m\u0171anyagot. V\u00e1rja meg, am\u00edg az extruder teljesen leh\u0171l szobah\u0151m\u00e9rs\u00e9klet\u0171re, miel\u0151tt folytatja a pap\u00edrtesztet. Am\u00edg a f\u00fav\u00f3ka h\u0171l, a f\u00e9mcsipesszel t\u00e1vol\u00edtsa el az esetlegesen kisziv\u00e1rg\u00f3 m\u0171anyagot. A pap\u00edrtesztet mindig akkor v\u00e9gezd el, amikor a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal szobah\u0151m\u00e9rs\u00e9kleten van! A f\u00fav\u00f3ka meleg\u00edt\u00e9sekor a h\u0151t\u00e1gul\u00e1s miatt megv\u00e1ltozik a helyzete (a t\u00e1rgyasztalhoz k\u00e9pest). Ez a h\u0151t\u00e1gul\u00e1s jellemz\u0151en 100 mikron k\u00f6r\u00fcli, ami k\u00f6r\u00fclbel\u00fcl ugyanolyan m\u00e9ret, mint egy tipikus nyomtat\u00f3pap\u00edr. A h\u0151t\u00e1gul\u00e1s pontos m\u00e9rt\u00e9ke nem d\u00f6nt\u0151, ahogyan a pap\u00edr pontos vastags\u00e1ga sem d\u00f6nt\u0151. Induljunk ki abb\u00f3l a felt\u00e9telez\u00e9sb\u0151l, hogy a kett\u0151 egyenl\u0151 (a k\u00e9t t\u00e1vols\u00e1g k\u00f6z\u00f6tti k\u00fcl\u00f6nbs\u00e9g meghat\u00e1roz\u00e1s\u00e1nak m\u00f3dszer\u00e9t l\u00e1sd al\u00e1bb). Furcs\u00e1nak t\u0171nhet, hogy a t\u00e1vols\u00e1got szobah\u0151m\u00e9rs\u00e9kleten kalibr\u00e1ljuk, amikor a c\u00e9l az, hogy meleg\u00edt\u00e9skor egyenletes t\u00e1vols\u00e1got \u00e9rj\u00fcnk el. Ha azonban a f\u00fav\u00f3k\u00e1t meleg\u00edtve kalibr\u00e1ljuk, akkor hajlamos kis mennyis\u00e9g\u0171 olvadt m\u0171anyagot juttatni a pap\u00edrra, ami megv\u00e1ltoztatja az \u00e9rz\u00e9kelt s\u00farl\u00f3d\u00e1s m\u00e9rt\u00e9k\u00e9t. Ez megnehez\u00edti a j\u00f3 kalibr\u00e1ci\u00f3t. Ha a szintez\u00e9s felf\u0171t\u00f6tt \u00e1llapotban t\u00f6rt\u00e9nik, akkor nagym\u00e9rt\u00e9kben megn\u0151 a meg\u00e9g\u00e9s vesz\u00e9lye is. A h\u0151t\u00e1gul\u00e1s m\u00e9rt\u00e9ke stabil, \u00edgy a kalibr\u00e1l\u00e1s sor\u00e1n k\u00e9s\u0151bb k\u00f6nnyen figyelembe vehet\u0151. Automatiz\u00e1lt eszk\u00f6zzel hat\u00e1rozza meg a pontos Z magass\u00e1got! A Klipperben sz\u00e1mos seg\u00e9dszkript \u00e1ll rendelkez\u00e9sre (pl. MANUAL_PROBE, Z_ENDSTOP_CALIBRATE, PROBE_CALIBRATE, DELTA_CALIBRATE). L\u00e1sd a documentumokat fentebb le\u00edrva , hogy v\u00e1lassz k\u00f6z\u00fcl\u00fck egyet. Futtassa a megfelel\u0151 parancsot az OctoPrint konzolj\u00e1ban. A szkript az OctoPrint termin\u00e1l kimenet\u00e9n k\u00e9ri a felhaszn\u00e1l\u00f3 beavatkoz\u00e1s\u00e1t. Valahogy \u00edgy fog kin\u00e9zni: Recv: // Starting manual Z probe. Use TESTZ to adjust position. Recv: // Finish with ACCEPT or ABORT command. Recv: // Z position: ?????? --> 5.000 <-- ?????? A f\u00fav\u00f3ka aktu\u00e1lis magass\u00e1ga (ahogyan azt a nyomtat\u00f3 jelenleg \u00e9rtelmezi) a \"--> <--\" k\u00f6z\u00f6tt jelenik meg. A jobb oldali sz\u00e1m a legut\u00f3bbi m\u00e9r\u00e9s magass\u00e1ga, amely \u00e9ppen nagyobb, mint az aktu\u00e1lis magass\u00e1g, a bal oldali pedig a legut\u00f3bbi m\u00e9r\u00e9s magass\u00e1ga, amely kisebb, mint az aktu\u00e1lis magass\u00e1g (vagy ??????, ha nem t\u00f6rt\u00e9nt k\u00eds\u00e9rlet). Helyezd a pap\u00edrt a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00e9. Hasznos lehet a pap\u00edr egyik sark\u00e1t behajtani, hogy k\u00f6nnyebb legyen megfogni. (Pr\u00f3b\u00e1lja \u00fagy, hogy ne nyomja le a t\u00e1rgyasztalt, amikor a pap\u00edrt el\u0151re-h\u00e1tra mozgatja). A TESTZ paranccsal k\u00e9rheti, hogy a f\u00fav\u00f3ka k\u00f6zelebb menjen a pap\u00edrhoz. P\u00e9ld\u00e1ul: TESTZ Z=-.1 A TESTZ parancs a f\u00fav\u00f3k\u00e1t az aktu\u00e1lis poz\u00edci\u00f3j\u00e1t\u00f3l relat\u00edv t\u00e1vols\u00e1gra mozgatja. (Teh\u00e1t a Z=-.1 azt k\u00e9ri, hogy a f\u00fav\u00f3ka 0,1 mm-rel k\u00f6zelebb ker\u00fclj\u00f6n a t\u00e1rgyasztalhoz). Miut\u00e1n a f\u00fav\u00f3ka meg\u00e1llt, tolja el\u0151re-h\u00e1tra a pap\u00edrt, hogy ellen\u0151rizd, hogy a f\u00fav\u00f3ka \u00e9rintkezik-e a pap\u00edrral, \u00e9s hogy \u00e9rezze a s\u00farl\u00f3d\u00e1s m\u00e9rt\u00e9k\u00e9t. Folytassa a TESTZ parancsok kiad\u00e1s\u00e1t mindaddig, am\u00edg a pap\u00edrral val\u00f3 tesztel\u00e9sekkor nem \u00e9rez egy kis s\u00farl\u00f3d\u00e1st. Ha t\u00fal nagy a s\u00farl\u00f3d\u00e1s, akkor egy pozit\u00edv Z \u00e9rt\u00e9ket haszn\u00e1lhatunk a f\u00fav\u00f3ka felfel\u00e9 mozgat\u00e1s\u00e1ra. Lehet\u0151s\u00e9g van a TESTZ Z=+ vagy a TESTZ Z=- haszn\u00e1lat\u00e1ra is, hogy \"felezz\u00fck\" az utols\u00f3 poz\u00edci\u00f3t - azaz k\u00e9t poz\u00edci\u00f3 k\u00f6z\u00f6tt f\u00e9l\u00faton l\u00e9v\u0151 poz\u00edci\u00f3ba l\u00e9pj\u00fcnk. P\u00e9ld\u00e1ul, ha a TESTZ parancs a k\u00f6vetkez\u0151 felsz\u00f3l\u00edt\u00e1st adn\u00e1: Recv: // Z position: 0.130 --> 0.230 <-- 0.280 Ezut\u00e1n egy TESTZ Z=- a f\u00fav\u00f3k\u00e1t 0,180 Z poz\u00edci\u00f3ba (a 0,130 \u00e9s 0,230 k\u00f6z\u00f6tti f\u00e9l\u00fatra) mozgatja. Ezt a funkci\u00f3t arra lehet haszn\u00e1lni, hogy seg\u00edtsen gyorsan lesz\u0171k\u00edteni egy konzisztens s\u00farl\u00f3d\u00e1st. A Z=++ \u00e9s Z=-- parancsok haszn\u00e1lat\u00e1val k\u00f6zvetlen\u00fcl visszat\u00e9rhet\u00fcnk egy kor\u00e1bbi m\u00e9r\u00e9shez - p\u00e9ld\u00e1ul a fenti felsz\u00f3l\u00edt\u00e1s ut\u00e1n a TESTZ Z=-- parancs a f\u00fav\u00f3k\u00e1t a 0,130-as Z poz\u00edci\u00f3ba mozgatn\u00e1. Miut\u00e1n \u00e9rz\u00e9kelhet\u0151 egy kis s\u00farl\u00f3d\u00e1s, add ki az ACCEPT parancsot: ACCEPT Ez elfogadja a megadott Z magass\u00e1got, \u00e9s az adott kalibr\u00e1ci\u00f3s eszk\u00f6zzel folytatja a munk\u00e1t. Az \u00e9rz\u00e9kelt s\u00farl\u00f3d\u00e1s pontos m\u00e9rt\u00e9ke nem d\u00f6nt\u0151 fontoss\u00e1g\u00fa, ahogyan a h\u0151t\u00e1gul\u00e1s m\u00e9rt\u00e9ke \u00e9s a pap\u00edr pontos sz\u00e9less\u00e9ge sem d\u00f6nt\u0151 fontoss\u00e1g\u00fa. Csak pr\u00f3b\u00e1ljon meg minden egyes alkalommal ugyanannyi s\u00farl\u00f3d\u00e1st el\u00e9rni, amikor a tesztet lefuttatja. Ha a teszt sor\u00e1n valami rosszul megy, az ABORT paranccsal kil\u00e9phet\u00fcnk a kalibr\u00e1ci\u00f3s eszk\u00f6zb\u0151l.","title":"A \"pap\u00edrteszt\""},{"location":"Bed_Level.html#a-hotagulas-meghatarozasa","text":"Miut\u00e1n sikeresen elv\u00e9gezte a t\u00e1rgyasztal szintez\u00e9s\u00e9t, pontosabb \u00e9rt\u00e9ket lehet kisz\u00e1m\u00edtani a \"h\u0151t\u00e1gul\u00e1s\", \"a pap\u00edr vastags\u00e1ga\" \u00e9s \"a pap\u00edrteszt sor\u00e1n \u00e9rz\u00e9kelhet\u0151 s\u00farl\u00f3d\u00e1s\" egy\u00fcttes hat\u00e1s\u00e1ra. Ilyen t\u00edpus\u00fa sz\u00e1m\u00edt\u00e1sokra \u00e1ltal\u00e1ban nincs sz\u00fcks\u00e9g, mivel a legt\u00f6bb felhaszn\u00e1l\u00f3 szerint az egyszer\u0171 \"pap\u00edrteszt\" j\u00f3 eredm\u00e9nyeket ad. A sz\u00e1m\u00edt\u00e1s legegyszer\u0171bben \u00fagy v\u00e9gezhet\u0151 el, ha kinyomtatunk egy olyan tesztobjektumot, amelynek minden oldal\u00e1n egyenes falak vannak. Ehhez a docs/prints/square.stl f\u00e1jlban tal\u00e1lhat\u00f3 nagy, \u00fcreges n\u00e9gyzetet haszn\u00e1lhatjuk. Az objektum szeletel\u00e9sekor gy\u0151z\u0151dj meg r\u00f3la, hogy a szeletel\u0151 az els\u0151 szinthez ugyanazt a r\u00e9tegmagass\u00e1got \u00e9s extrud\u00e1l\u00e1si sz\u00e9less\u00e9get haszn\u00e1lja, mint az \u00f6sszes tov\u00e1bbi r\u00e9teghez. Haszn\u00e1lj durva r\u00e9tegmagass\u00e1got (a r\u00e9tegmagass\u00e1gnak a f\u00fav\u00f3ka \u00e1tm\u00e9r\u0151j\u00e9nek k\u00f6r\u00fclbel\u00fcl 75%-\u00e1nak kell lennie), \u00e9s ne haszn\u00e1lj peremet vagy szokny\u00e1t. Nyomtasd ki a tesztobjektumot, v\u00e1rja meg, am\u00edg leh\u0171l, \u00e9s vedd le a t\u00e1rgyasztalr\u00f3l. Ellen\u0151rizd a t\u00e1rgy legals\u00f3 r\u00e9teg\u00e9t. (Az is hasznos lehet, ha ujj\u00e1t vagy k\u00f6rm\u00e9t v\u00e9gigh\u00fazza az als\u00f3 sz\u00e9l\u00e9n.) Ha azt tapasztaljuk, hogy az als\u00f3 r\u00e9teg a t\u00e1rgy minden oldala ment\u00e9n kiss\u00e9 kidudorodik, akkor ez azt jelzi, hogy a f\u00fav\u00f3ka kiss\u00e9 k\u00f6zelebb volt a t\u00e1rgyasztalhoz, mint kellett volna. A magass\u00e1g n\u00f6vel\u00e9s\u00e9hez kiadhatunk egy SET_GCODE_OFFSET Z=+.010 parancsot. A k\u00e9s\u0151bbi nyomtat\u00e1sokban ellen\u0151rizhetj\u00fck ezt a viselked\u00e9st, \u00e9s sz\u00fcks\u00e9g szerint tov\u00e1bbi kiigaz\u00edt\u00e1sokat v\u00e9gezhet\u00fcnk. Az ilyen t\u00edpus\u00fa be\u00e1ll\u00edt\u00e1sok jellemz\u0151en 10 mikronokban (.010mm) t\u00f6rt\u00e9nnek. Ha az als\u00f3 r\u00e9teg keskenyebbnek t\u0171nik, mint a k\u00f6vetkez\u0151 r\u00e9tegek, akkor a SET_GCODE_OFFSET paranccsal negat\u00edv Z-be\u00e1ll\u00edt\u00e1st v\u00e9gezhet\u00fcnk. Ha bizonytalanok vagyunk, akkor a Z-be\u00e1ll\u00edt\u00e1st addig cs\u00f6kkenthetj\u00fck, am\u00edg a nyomatok als\u00f3 r\u00e9tege egy kis dudort nem mutat, majd addig cs\u00f6kkenthetj\u00fck, am\u00edg az el nem t\u0171nik. A legegyszer\u0171bb m\u00f3dja a k\u00edv\u00e1nt Z-korrig\u00e1l\u00e1snak, ha l\u00e9trehoz egy START_PRINT G-k\u00f3d makr\u00f3t. A szeletel\u0151 \u00fagy int\u00e9zi, hogy a makr\u00f3 minden nyomtat\u00e1s kezdetekor megh\u00edvja ezt a parancsot, \u00e9s hozz\u00e1ad egy SET_GCODE_OFFSET parancsot. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a szeletel\u0151k dokumentumot.","title":"A h\u0151t\u00e1gul\u00e1s meghat\u00e1roz\u00e1sa"},{"location":"Bed_Mesh.html","text":"T\u00e1rgyasztal h\u00e1l\u00f3 \u00b6 A t\u00e1rgyasztal h\u00e1l\u00f3 modul haszn\u00e1lhat\u00f3 a t\u00e1rgyasztal fel\u00fclet egyenetlens\u00e9geinek kiegyenl\u00edt\u00e9s\u00e9re, hogy jobb els\u0151 r\u00e9teget kapj az eg\u00e9sz t\u00e1rgyasztalon. Meg kell jegyezni, hogy a szoftveralap\u00fa korrekci\u00f3 nem fog t\u00f6k\u00e9letes eredm\u00e9nyt el\u00e9rni, csak megk\u00f6zel\u00edt\u0151 \u00e9rt\u00e9kekkel tudatja a t\u00e1rgyasztal alakj\u00e1t. A t\u00e1rgyasztal h\u00e1l\u00f3 szint\u00e9n nem tudja kompenz\u00e1lni a mechanikai \u00e9s elektromos probl\u00e9m\u00e1kat. Ha egy tengely ferde vagy egy szonda nem pontos, akkor a bed_mesh modul nem fog pontos eredm\u00e9nyeket kapni a szintez\u00e9sr\u0151l. A h\u00e1l\u00f3kalibr\u00e1l\u00e1s el\u0151tt meg kell gy\u0151z\u0151dnie arr\u00f3l, hogy a szonda Z-eltol\u00e1sa kalibr\u00e1lva van. Ha v\u00e9g\u00e1ll\u00e1st haszn\u00e1l a Z-kezd\u0151ponthoz, akkor azt is kalibr\u00e1lni kell. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a Szonda Kalibr\u00e1l\u00e1s \u00e9s a Z_ENDSTOP_CALIBRATE c\u00edm\u0171 fejezetben K\u00e9zi Szintez\u00e9st . Alapvet\u0151 konfigur\u00e1ci\u00f3 \u00b6 T\u00e9glalap alak\u00fa t\u00e1rgyasztalok \u00b6 Ez a p\u00e9lda egy 250 mm x 220 mm-es t\u00e9glalap alak\u00fa t\u00e1rgyasztal\u00fa nyomtat\u00f3t \u00e9s egy 24 mm-es x-eltol\u00e1s\u00fa \u00e9s 5 mm-es y-eltol\u00e1s\u00fa szond\u00e1t mutat. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 sebess\u00e9g: 120 * Alap\u00e9rtelmezett \u00e9rt\u00e9k: 50* A sebess\u00e9g, amellyel a fej a pontok k\u00f6z\u00f6tt mozog. horizontal_move_z: 5 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 5 A Z koordin\u00e1ta, amelyre a szonda a m\u00e9r\u0151pontok k\u00f6z\u00f6tti utaz\u00e1s el\u0151tt emelkedik. mesh_min: 35, 6 Aj\u00e1nlott Az els\u0151, az orig\u00f3hoz legk\u00f6zelebbi koordin\u00e1ta. Ez a koordin\u00e1ta a szonda hely\u00e9hez k\u00e9pest relat\u00edv. mesh_max: 240, 198 Aj\u00e1nlott Az orig\u00f3t\u00f3l legt\u00e1volabb es\u0151 m\u00e9rt koordin\u00e1ta. Ez nem felt\u00e9tlen\u00fcl az utols\u00f3 m\u00e9rt pont, mivel a m\u00e9r\u00e9s cikcakkos m\u00f3don t\u00f6rt\u00e9nik. A mesh_min koordin\u00e1t\u00e1hoz hasonl\u00f3an ez a koordin\u00e1ta is a szonda hely\u00e9hez van viszony\u00edtva. probe_count: 5, 3 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 3,3 Az egyes tengelyeken m\u00e9rend\u0151 pontok sz\u00e1ma, X, Y eg\u00e9sz \u00e9rt\u00e9kben megadva. Ebben a p\u00e9ld\u00e1ban az X tengely ment\u00e9n 5 pont lesz m\u00e9rve, az Y tengely ment\u00e9n 3 pont, \u00f6sszesen 15 m\u00e9rt pont. Vedd figyelembe, hogy ha n\u00e9gyzetr\u00e1csot szeretn\u00e9l, p\u00e9ld\u00e1ul 3x3, akkor ezt egyetlen eg\u00e9sz sz\u00e1m\u00e9rt\u00e9kk\u00e9nt is megadhatod, amelyet mindk\u00e9t tengelyre haszn\u00e1l, azaz probe_count: 3 . Vedd figyelembe, hogy egy h\u00e1l\u00f3hoz mindk\u00e9t tengely ment\u00e9n legal\u00e1bb 3 darab m\u00e9r\u00e9si sz\u00e1mra van sz\u00fcks\u00e9g. Az al\u00e1bbi \u00e1bra azt mutatja, hogy a mesh_min , mesh_max \u00e9s probe_count opci\u00f3k hogyan haszn\u00e1lhat\u00f3k a m\u00e9r\u0151pontok l\u00e9trehoz\u00e1s\u00e1ra. A nyilak jelzik a m\u00e9r\u00e9si elj\u00e1r\u00e1s ir\u00e1ny\u00e1t, kezdve a mesh_min pontt\u00f3l. Hivatkoz\u00e1sk\u00e9ppen, amikor a szonda a mesh_min pontn\u00e1l van, a f\u00fav\u00f3ka a (11, 1) pontn\u00e1l lesz, \u00e9s amikor a szonda a mesh_max pontn\u00e1l van, a f\u00fav\u00f3ka a (206, 193) pontn\u00e1l lesz. Kerek t\u00e1rgyasztalok \u00b6 Ez a p\u00e9lda egy 100 mm-es kerek t\u00e1rgyasztallal felszerelt nyomtat\u00f3t felt\u00e9telez. Ugyanazokat a szondaeltol\u00e1sokat fogjuk haszn\u00e1lni, mint a t\u00e9glalap alak\u00fa p\u00e9ld\u00e1n\u00e1l, 24 mm-t X-en \u00e9s 5 mm-t Y-on. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_radius: 75 mesh_origin: 0, 0 round_probe_count: 5 mesh_radius: 75 Required A vizsg\u00e1lt h\u00e1l\u00f3 sugara mm-ben, a mesh_origin -hez k\u00e9pest. Vedd figyelembe, hogy a szonda eltol\u00e1sai korl\u00e1tozz\u00e1k a h\u00e1l\u00f3 sugar\u00e1nak m\u00e9ret\u00e9t. Ebben a p\u00e9ld\u00e1ban a 76-n\u00e1l nagyobb sug\u00e1r a szersz\u00e1mot a nyomtat\u00f3 hat\u00f3t\u00e1vols\u00e1g\u00e1n k\u00edv\u00fclre helyezn\u00e9. mesh_origin: 0, 0 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 0, 0 A h\u00e1l\u00f3 k\u00f6z\u00e9ppontja. Ez a koordin\u00e1ta a szonda hely\u00e9hez k\u00e9pest relat\u00edv. B\u00e1r az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, 0 hasznos lehet az orig\u00f3 be\u00e1ll\u00edt\u00e1sa, ha a t\u00e1rgyasztal nagyobb r\u00e9sz\u00e9t szeretn\u00e9d megm\u00e9rni. L\u00e1sd az al\u00e1bbi \u00e1br\u00e1t. round_probe_count: 5 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 5 Ez egy eg\u00e9sz sz\u00e1m, amely meghat\u00e1rozza az X \u00e9s Y tengely ment\u00e9n m\u00e9rt pontok maxim\u00e1lis sz\u00e1m\u00e1t. A \"maxim\u00e1lis\" alatt a h\u00e1l\u00f3 orig\u00f3ja ment\u00e9n m\u00e9rt pontok sz\u00e1m\u00e1t \u00e9rtj\u00fck. Ennek az \u00e9rt\u00e9knek p\u00e1ratlan sz\u00e1mnak kell lennie, mivel a h\u00e1l\u00f3 k\u00f6z\u00e9ppontj\u00e1t kell megvizsg\u00e1lni. Az al\u00e1bbi \u00e1bra mutatja, hogyan gener\u00e1l\u00f3dnak a m\u00e9rt pontok. Mint l\u00e1that\u00f3, a mesh_origin (-10, 0) \u00e9rt\u00e9kre \u00e1ll\u00edt\u00e1sa lehet\u0151v\u00e9 teszi, hogy nagyobb, 85-\u00f6s h\u00e1l\u00f3sugarat adjunk meg. Speci\u00e1lis konfigur\u00e1ci\u00f3 \u00b6 Az al\u00e1bbiakban r\u00e9szletesen ismertetj\u00fck a fejlettebb konfigur\u00e1ci\u00f3s lehet\u0151s\u00e9geket. Minden p\u00e9lda a fent bemutatott t\u00e9glalap alak\u00fa alapkonfigur\u00e1ci\u00f3ra \u00e9p\u00fcl. A speci\u00e1lis lehet\u0151s\u00e9gek mindegyike ugyan\u00fagy alkalmazhat\u00f3 a kerek t\u00e1rgyasztalokra is. H\u00e1l\u00f3 interpol\u00e1ci\u00f3 \u00b6 B\u00e1r a m\u00e9rt m\u00e1trixot k\u00f6zvetlen\u00fcl egyszer\u0171 biline\u00e1ris interpol\u00e1ci\u00f3val lehet mintav\u00e9telezni a m\u00e9rt pontok k\u00f6z\u00f6tti Z-\u00e9rt\u00e9kek meghat\u00e1roz\u00e1s\u00e1hoz, a h\u00e1l\u00f3 s\u0171r\u0171s\u00e9g\u00e9nek n\u00f6vel\u00e9se \u00e9rdek\u00e9ben gyakran hasznos a tov\u00e1bbi pontok interpol\u00e1l\u00e1sa fejlettebb interpol\u00e1ci\u00f3s algoritmusok seg\u00edts\u00e9g\u00e9vel. Ezek az algoritmusok g\u00f6rb\u00fcletet adnak a h\u00e1l\u00f3hoz, megk\u00eds\u00e9relve szimul\u00e1lni a meder anyagi tulajdons\u00e1gait. A Bed Mesh ehhez Lagrange \u00e9s bikubik interpol\u00e1ci\u00f3t k\u00edn\u00e1l. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 mesh_pps: 2, 3 algorithm: bicubic bicubic_tension: 0.2 mesh_pps: 2, 3 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 2, 2 A mesh_pps opci\u00f3 a H\u00e1l\u00f3pontok szegmensenk\u00e9nti r\u00f6vid\u00edt\u00e9se. Ez az opci\u00f3 azt adja meg, hogy h\u00e1ny pontot interpol\u00e1ljon minden egyes szegmenshez az X \u00e9s Y tengely ment\u00e9n. Tekints\u00fck egy 'szegmensnek' az egyes m\u00e9rt pontok k\u00f6z\u00f6tti teret. A probe_count -hoz hasonl\u00f3an a mesh_pps is X, Y eg\u00e9sz sz\u00e1mp\u00e1rk\u00e9nt adhat\u00f3 meg, de megadhat\u00f3 egyetlen eg\u00e9sz sz\u00e1m is, amely mindk\u00e9t tengelyre vonatkozik. Ebben a p\u00e9ld\u00e1ban 4 szegmens van az X tengely ment\u00e9n \u00e9s 2 szegmens az Y tengely ment\u00e9n. Ez 8 interpol\u00e1lt pontot jelent az X ment\u00e9n, 6 interpol\u00e1lt pontot az Y ment\u00e9n, ami egy 13x8-as h\u00e1l\u00f3t eredm\u00e9nyez. Vedd figyelembe, hogy ha a mesh_pps \u00e9rt\u00e9ke 0, akkor a h\u00e1l\u00f3interpol\u00e1ci\u00f3 le van tiltva, \u00e9s a m\u00e9rt m\u00e1trixot k\u00f6zvetlen\u00fcl mintav\u00e9telezi a rendszer. algorithm: lagrange * Alap\u00e9rtelmezett \u00e9rt\u00e9k: lagrange* A h\u00e1l\u00f3 interpol\u00e1l\u00e1s\u00e1hoz haszn\u00e1lt algoritmus. Lehet lagrange vagy bicubic . A Lagrange-interpol\u00e1ci\u00f3 6 szond\u00e1zott pontn\u00e1l van korl\u00e1tozva, mivel nagyobb sz\u00e1m\u00fa minta eset\u00e9n oszcill\u00e1ci\u00f3 l\u00e9p fel. A bikubik interpol\u00e1ci\u00f3hoz mindk\u00e9t tengely ment\u00e9n legal\u00e1bb 4 szond\u00e1zott pont sz\u00fcks\u00e9ges, ha 4 pontn\u00e1l kevesebb van megadva, akkor a Lagrange mintav\u00e9telez\u00e9s kik\u00e9nyszer\u00fcl. Ha a mesh_pps 0-ra van \u00e1ll\u00edtva, akkor ez az \u00e9rt\u00e9k figyelmen k\u00edv\u00fcl marad, mivel nem t\u00f6rt\u00e9nik h\u00e1l\u00f3interpol\u00e1ci\u00f3. bicubic_tension: 0.2 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 0.2 Ha az algorithm opci\u00f3 bikubikra van \u00e1ll\u00edtva, akkor lehet megadni a fesz\u00fclts\u00e9g \u00e9rt\u00e9k\u00e9t. Min\u00e9l nagyobb a fesz\u00fclts\u00e9g, ann\u00e1l nagyobb meredeks\u00e9get interpol\u00e1l. Legyen \u00f3vatos ennek be\u00e1ll\u00edt\u00e1sakor, mivel a magasabb \u00e9rt\u00e9kek t\u00f6bb t\u00falh\u00faz\u00e1st is eredm\u00e9nyeznek, ami a m\u00e9rt pontokn\u00e1l magasabb vagy alacsonyabb interpol\u00e1lt \u00e9rt\u00e9keket eredm\u00e9nyez. Az al\u00e1bbi \u00e1bra azt mutatja, hogy a fenti opci\u00f3kat hogyan haszn\u00e1ljuk egy interpol\u00e1lt h\u00e1l\u00f3 l\u00e9trehoz\u00e1s\u00e1hoz. Mozg\u00e1s feloszt\u00e1s \u00b6 A t\u00e1rgyasztal h\u00e1l\u00f3 \u00fagy m\u0171k\u00f6dik, hogy megkapja a G-k\u00f3d mozgat\u00e1si parancsokat \u00e9s transzform\u00e1ci\u00f3t alkalmaz a Z koordin\u00e1t\u00e1jukra. A hossz\u00fa mozg\u00e1sokat kisebb mozg\u00e1sokra kell bontani, hogy helyesen k\u00f6vess\u00e9k a t\u00e1rgyasztal alakj\u00e1t. Az al\u00e1bbi opci\u00f3k a feloszt\u00e1si viselked\u00e9st szab\u00e1lyozz\u00e1k. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 move_check_distance: 5 split_delta_z: .025 move_check_distance: 5 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 5 A minim\u00e1lis t\u00e1vols\u00e1g, amellyel a k\u00edv\u00e1nt Z-v\u00e1ltoz\u00e1st ellen\u0151rizni kell a feloszt\u00e1s v\u00e9grehajt\u00e1sa el\u0151tt. Ebben a p\u00e9ld\u00e1ban az 5 mm-n\u00e9l hosszabb mozg\u00e1st fog az algoritmus v\u00e9gigj\u00e1rni. Minden 5 mm-enk\u00e9nt egy h\u00e1l\u00f3 Z m\u00e9r\u00e9s t\u00f6rt\u00e9nik, \u00f6sszehasonl\u00edtva azt az el\u0151z\u0151 l\u00e9p\u00e9s Z \u00e9rt\u00e9k\u00e9vel. Ha a delta el\u00e9ri a split_delta_z \u00e1ltal be\u00e1ll\u00edtott k\u00fcsz\u00f6b\u00e9rt\u00e9ket, akkor a mozg\u00e1s feloszt\u00e1sra ker\u00fcl, \u00e9s a bej\u00e1r\u00e1s folytat\u00f3dik. Ez a folyamat addig ism\u00e9tl\u0151dik, am\u00edg a l\u00e9p\u00e9s v\u00e9g\u00e9re nem \u00e9r\u00fcnk, ahol egy v\u00e9gs\u0151 kiigaz\u00edt\u00e1s t\u00f6rt\u00e9nik. A move_check_distance \u00e9rt\u00e9kn\u00e9l r\u00f6videbb mozg\u00e1sokn\u00e1l a helyes Z kiigaz\u00edt\u00e1st k\u00f6zvetlen\u00fcl a mozg\u00e1sra alkalmazz\u00e1k, \u00e1thalad\u00e1s vagy feloszt\u00e1s n\u00e9lk\u00fcl. split_delta_z: .025 Alap\u00e9rtelmezett \u00e9rt\u00e9k: .025 Mint fentebb eml\u00edtett\u00fck, ez a minim\u00e1lis elt\u00e9r\u00e9s sz\u00fcks\u00e9ges a mozg\u00e1s feloszt\u00e1s\u00e1nak elind\u00edt\u00e1s\u00e1hoz. Ebben a p\u00e9ld\u00e1ban b\u00e1rmely Z-\u00e9rt\u00e9k +/- .025 mm elt\u00e9r\u00e9s kiv\u00e1ltja a feloszt\u00e1st. \u00c1ltal\u00e1ban az alap\u00e9rtelmezett \u00e9rt\u00e9kek elegend\u0151ek ezekhez az opci\u00f3khoz, s\u0151t, a move_check_distance alap\u00e9rtelmezett 5 mm-es \u00e9rt\u00e9ke t\u00falz\u00e1s lehet. Egy halad\u00f3 felhaszn\u00e1l\u00f3 azonban k\u00eds\u00e9rletezhet ezekkel az opci\u00f3kkal, hogy megpr\u00f3b\u00e1lja kiszor\u00edtani az optim\u00e1lis els\u0151 r\u00e9teget. H\u00e1l\u00f3 elhalv\u00e1nyul\u00e1s \u00b6 Ha a \"fade\" enged\u00e9lyezve van, a Z-be\u00e1ll\u00edt\u00e1s a konfigur\u00e1ci\u00f3 \u00e1ltal meghat\u00e1rozott t\u00e1vols\u00e1gon bel\u00fcl fokozatosan megsz\u0171nik. Ez a r\u00e9tegmagass\u00e1g kis kiigaz\u00edt\u00e1s\u00e1val \u00e9rhet\u0151 el, a t\u00e1rgyasztal alakj\u00e1t\u00f3l f\u00fcgg\u0151en n\u00f6velve vagy cs\u00f6kkentve. Ha a fade befejez\u0151d\u00f6tt, a Z-be\u00e1ll\u00edt\u00e1s m\u00e1r nem ker\u00fcl alkalmaz\u00e1sra, \u00edgy a nyomtat\u00e1s teteje s\u00edk lesz, nem pedig a t\u00e1rgyasztal alakj\u00e1t t\u00fckr\u00f6zi. A fak\u00edt\u00e1snak lehetnek nemk\u00edv\u00e1natos tulajdons\u00e1gai is, ha t\u00fal gyorsan fak\u00edt, akkor l\u00e1that\u00f3 leleteket eredm\u00e9nyezhet a nyomaton. Tov\u00e1bb\u00e1, ha a t\u00e1rgyasztal jelent\u0151sen megvetemedett, a fade zsugor\u00edthatja vagy megny\u00fajthatja a nyomat Z magass\u00e1g\u00e1t. Ez\u00e9rt a fade alap\u00e9rtelmez\u00e9s szerint ki van kapcsolva. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 fade_start: 1 fade_end: 10 fade_target: 0 fade_start: 1 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 1 A Z magass\u00e1g, amelyben a fokozatos kiigaz\u00edt\u00e1st el kell kezdeni. J\u00f3 \u00f6tlet, ha a fade folyamat megkezd\u00e9se el\u0151tt n\u00e9h\u00e1ny r\u00e9teggel lejjebb ker\u00fcl. fade_end: 10 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 0 A Z magass\u00e1g, amelyben a fade-nek be kell fejez\u0151dnie. Ha ez az \u00e9rt\u00e9k kisebb, mint fade_start akkor a fade le van tiltva. Ezt az \u00e9rt\u00e9ket a nyomtat\u00e1si fel\u00fclet torzul\u00e1s\u00e1t\u00f3l f\u00fcgg\u0151en lehet m\u00f3dos\u00edtani. Egy jelent\u0151sen g\u00f6rb\u00fclt fel\u00fcletnek hosszabb t\u00e1von kell elhalv\u00e1nyulnia. Egy k\u00f6zel s\u00edk fel\u00fclet eset\u00e9ben ez az \u00e9rt\u00e9k cs\u00f6kkenthet\u0151, hogy gyorsabban fakuljon ki. A 10 mm egy \u00e9sszer\u0171 \u00e9rt\u00e9k, ha a fade_start alap\u00e9rtelmezett 1 \u00e9rt\u00e9k\u00e9t haszn\u00e1ljuk. fade_target: 0 Alap\u00e9rtelmezett \u00e9rt\u00e9k: A h\u00e1l\u00f3 \u00e1tlagos Z \u00e9rt\u00e9ke A fade_target \u00fagy k\u00e9pzelhet\u0151 el, mint egy tov\u00e1bbi Z eltol\u00e1s, amelyet a fade befejez\u00e9se ut\u00e1n a teljes t\u00e1rgyasztalra alkalmaznak. \u00c1ltal\u00e1noss\u00e1gban azt szeretn\u00e9nk, ha ez az \u00e9rt\u00e9k 0 lenne, azonban vannak olyan k\u00f6r\u00fclm\u00e9nyek, amikor nem kell, hogy \u00edgy legyen. Tegy\u00fck fel p\u00e9ld\u00e1ul, hogy a t\u00e1rgyasztalon a kezd\u0151pont poz\u00edci\u00f3ja egy kiugr\u00f3 \u00e9rt\u00e9k, amely 0,2 mm-rel alacsonyabb, mint a t\u00e1rgyasztal \u00e1tlagos m\u00e9rt magass\u00e1ga. Ha a fade_target \u00e9rt\u00e9ke 0, akkor a fade \u00e1tlagosan 0,2 mm-rel zsugor\u00edtja a nyomtat\u00e1st a t\u00e1rgyasztalon. Ha a fade_target \u00e9rt\u00e9k\u00e9t .2-re \u00e1ll\u00edtja, akkor a kezd\u0151ponti ter\u00fclet .2 mm-rel fog t\u00e1gulni, azonban a t\u00e1rgyasztal t\u00f6bbi r\u00e9sze pontosan m\u00e9retezett lesz. \u00c1ltal\u00e1ban j\u00f3 \u00f6tlet a fade_target elhagy\u00e1sa a konfigur\u00e1ci\u00f3b\u00f3l, \u00edgy a h\u00e1l\u00f3 \u00e1tlagos magass\u00e1ga ker\u00fcl felhaszn\u00e1l\u00e1sra, azonban k\u00edv\u00e1natos lehet a fade target k\u00e9zi be\u00e1ll\u00edt\u00e1sa, ha a t\u00e1rgyasztal egy adott r\u00e9sz\u00e9re szeretn\u00e9nk nyomtatni. A relat\u00edv referenciaindex \u00b6 A legt\u00f6bb szonda hajlamos a driftre, azaz: a h\u0151 vagy interferencia \u00e1ltal okozott pontatlans\u00e1gokra. Ez kih\u00edv\u00e1ss\u00e1 teheti a szonda Z-eltol\u00e1s\u00e1nak kisz\u00e1m\u00edt\u00e1s\u00e1t, k\u00fcl\u00f6n\u00f6sen k\u00fcl\u00f6nb\u00f6z\u0151 t\u00e1rgyasztal h\u0151m\u00e9rs\u00e9kleteken. Ez\u00e9rt egyes nyomtat\u00f3k a Z tengely be\u00e1ll\u00edt\u00e1s\u00e1hoz v\u00e9g\u00e1ll\u00e1st, a h\u00e1l\u00f3 kalibr\u00e1l\u00e1s\u00e1hoz pedig szond\u00e1t haszn\u00e1lnak. Ezeknek a nyomtat\u00f3knak el\u0151ny\u00f6s lehet a relat\u00edv referenciaindex konfigur\u00e1l\u00e1sa. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 relative_reference_index: 7 relative_reference_index: 7 Alap\u00e9rtelmezett \u00e9rt\u00e9k: Nincs (letiltva) A m\u00e9rt pontok l\u00e9trehoz\u00e1sakor mindegyikhez indexet rendel\u00fcnk. Ezt az indexet a klippy.log f\u00e1jlban vagy a BED_MESH_OUTPUT seg\u00edts\u00e9g\u00e9vel kereshetj\u00fck meg (tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd az al\u00e1bbi, Bed Mesh GCodes c\u00edm\u0171 r\u00e9szt). Ha indexet rendel a relative_reference_index opci\u00f3hoz, akkor az ezen a koordin\u00e1t\u00e1n m\u00e9rt \u00e9rt\u00e9k fogja helyettes\u00edteni a szonda z_offset-\u00e9t. Ez\u00e1ltal ez a koordin\u00e1ta gyakorlatilag a h\u00e1l\u00f3 \"nulla\" referenci\u00e1j\u00e1v\u00e1 v\u00e1lik. A relat\u00edv referenciaindex haszn\u00e1latakor azt az indexet kell v\u00e1lasztania, amelyik a legk\u00f6zelebb van ahhoz a ponthoz a t\u00e1rgyasztalon, ahol a Z v\u00e9g\u00e1ll\u00e1s kalibr\u00e1l\u00e1sa t\u00f6rt\u00e9nt. Vedd figyelembe, hogy ha az indexet a napl\u00f3 vagy a BED_MESH_OUTPUT seg\u00edts\u00e9g\u00e9vel keresi meg, akkor a \"Probe\" fejl\u00e9c alatt felsorolt koordin\u00e1t\u00e1kat kell haszn\u00e1lnia a helyes index megtal\u00e1l\u00e1s\u00e1hoz. Hib\u00e1s r\u00e9gi\u00f3k \u00b6 El\u0151fordulhat, hogy a t\u00e1rgyasztal egyes ter\u00fcletei pontatlan eredm\u00e9nyeket jeleznek a m\u00e9r\u00e9s sor\u00e1n, mivel bizonyos helyeken \"hiba\" van. Erre a legjobb p\u00e9lda a levehet\u0151 ac\u00e9llemezek r\u00f6gz\u00edt\u00e9s\u00e9re haszn\u00e1lt integr\u00e1lt m\u00e1gnesek sorozat\u00e1val ell\u00e1tott t\u00e1rgyasztalok. Ezekn\u00e9l a m\u00e1gnesekn\u00e9l \u00e9s k\u00f6r\u00fcl\u00f6tt\u00fck l\u00e9v\u0151 m\u00e1gneses mez\u0151 hat\u00e1s\u00e1ra az indukt\u00edv szonda magasabb vagy alacsonyabb t\u00e1vols\u00e1gban m\u00e9rhet, mint egy\u00e9bk\u00e9nt tenn\u00e9, ami azt eredm\u00e9nyezi, hogy a h\u00e1l\u00f3 nem pontosan reprezent\u00e1lja a fel\u00fcletet ezeken a helyeken. Figyelem: Ez nem t\u00e9vesztend\u0151 \u00f6ssze a szonda hely\u00e9nek torz\u00edt\u00e1s\u00e1val, amely pontatlan eredm\u00e9nyeket eredm\u00e9nyez az eg\u00e9sz t\u00e1rgyasztalon. A faulty_region opci\u00f3kat \u00fagy lehet be\u00e1ll\u00edtani, hogy kompenz\u00e1lj\u00e1k ezt a hat\u00e1st. Ha egy gener\u00e1lt pont egy hib\u00e1s r\u00e9gi\u00f3ba esik, akkor a bed mesh megpr\u00f3b\u00e1l ak\u00e1r 4 pontot is megvizsg\u00e1lni a r\u00e9gi\u00f3 hat\u00e1rain\u00e1l. Ezeket a m\u00e9rt \u00e9rt\u00e9keket \u00e1tlagolja \u00e9s beilleszti a h\u00e1l\u00f3ba Z \u00e9rt\u00e9kben a gener\u00e1lt (X, Y) koordin\u00e1t\u00e1n. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 faulty_region_1_min: 130.0, 0.0 faulty_region_1_max: 145.0, 40.0 faulty_region_2_min: 225.0, 0.0 faulty_region_2_max: 250.0, 25.0 faulty_region_3_min: 165.0, 95.0 faulty_region_3_max: 205.0, 110.0 faulty_region_4_min: 30.0, 170.0 faulty_region_4_max: 45.0, 210.0 faulty_region_{1...99}_min faulty_region_{1...99}_max Alap\u00e9rtelmezett \u00e9rt\u00e9k: Nincs (letiltva) A hib\u00e1s r\u00e9gi\u00f3k meghat\u00e1roz\u00e1sa hasonl\u00f3an t\u00f6rt\u00e9nik, mint mag\u00e1nak a h\u00e1l\u00f3nak a meghat\u00e1roz\u00e1sa, ahol minden egyes r\u00e9gi\u00f3hoz meg kell adni a minim\u00e1lis \u00e9s maxim\u00e1lis (X, Y) koordin\u00e1t\u00e1kat. Egy hib\u00e1s r\u00e9gi\u00f3 a h\u00e1l\u00f3n k\u00edv\u00fclre is kiterjedhet, azonban a gener\u00e1lt v\u00e1ltakoz\u00f3 pontok mindig a h\u00e1l\u00f3 hat\u00e1r\u00e1n bel\u00fcl lesznek. K\u00e9t r\u00e9gi\u00f3 nem fedheti egym\u00e1st. Az al\u00e1bbi k\u00e9p azt szeml\u00e9lteti, hogyan gener\u00e1l\u00f3dnak a cserepontok, ha egy gener\u00e1lt pont egy hib\u00e1s ter\u00fcleten bel\u00fcl van. Az \u00e1br\u00e1zolt r\u00e9gi\u00f3k megegyeznek a fenti mintakonfigur\u00e1ci\u00f3ban szerepl\u0151 r\u00e9gi\u00f3kkal. A cserepontok \u00e9s koordin\u00e1t\u00e1ik z\u00f6ld sz\u00ednnel vannak jel\u00f6lve. T\u00e1rgyasztal h\u00e1l\u00f3 G-k\u00f3dok \u00b6 Kalibr\u00e1ci\u00f3 \u00b6 BED_MESH_CALIBRATE PROFILE=<name> METHOD=[manual | automatic] [<probe_parameter>=<value>] [<mesh_parameter>=<value>] * Alap\u00e9rtelmezett profil: alap\u00e9rtelmezett Alap\u00e9rtelmezett m\u00f3dszer: automatikus, ha \u00e9rz\u00e9kel\u0151t \u00e9szlel, egy\u00e9bk\u00e9nt manu\u00e1lis* Elind\u00edtja a m\u00e9r\u00e9si elj\u00e1r\u00e1st a t\u00e1rgyasztal h\u00e1l\u00f3 kalibr\u00e1l\u00e1s\u00e1hoz. A h\u00e1l\u00f3 a PROFILE param\u00e9ter \u00e1ltal megadott profilba ker\u00fcl ment\u00e9sre, vagy default , ha nincs megadva. Ha a METHOD=manual param\u00e9tert v\u00e1lasztjuk, akkor k\u00e9zi m\u00e9r\u00e9s t\u00f6rt\u00e9nik. Az automatikus \u00e9s a k\u00e9zi m\u00e9r\u00e9s k\u00f6z\u00f6tti v\u00e1lt\u00e1skor a gener\u00e1lt h\u00e1l\u00f3pontok automatikusan kiigaz\u00edt\u00e1sra ker\u00fclnek. Lehet\u0151s\u00e9g van h\u00e1l\u00f3param\u00e9terek megad\u00e1s\u00e1ra a m\u00e9rt ter\u00fclet m\u00f3dos\u00edt\u00e1s\u00e1ra. A k\u00f6vetkez\u0151 param\u00e9terek \u00e1llnak rendelkez\u00e9sre: T\u00e9glalap alak\u00fa t\u00e1rgyasztalok (cartesian): MESH_MIN MESH_MAX PROBE_COUNT Kerek t\u00e1rgyasztalok (delta): MESH_RADIUS MESH_ORIGIN ROUND_PROBE_COUNT Minden t\u00e1rgyasztal: RELATIVE_REFERNCE_INDEX ALGORITHM Az egyes param\u00e9terek h\u00e1l\u00f3ra val\u00f3 alkalmaz\u00e1s\u00e1nak r\u00e9szleteit l\u00e1sd a fenti konfigur\u00e1ci\u00f3s dokument\u00e1ci\u00f3ban. Profilok \u00b6 BED_MESH_PROFILE SAVE=<name> LOAD=<name> REMOVE=<name> A BED_MESH_CALIBRATE elv\u00e9gz\u00e9se ut\u00e1n lehet\u0151s\u00e9g van a h\u00e1l\u00f3 aktu\u00e1lis \u00e1llapot\u00e1nak elment\u00e9s\u00e9re egy megnevezett profilba. Ez lehet\u0151v\u00e9 teszi a h\u00e1l\u00f3 bet\u00f6lt\u00e9s\u00e9t a t\u00e1rgyasztal \u00fajb\u00f3li m\u00e9r\u00e9se n\u00e9lk\u00fcl. Miut\u00e1n egy profilt a BED_MESH_PROFILE SAVE=<name> seg\u00edts\u00e9g\u00e9vel elmentett\u00fcnk, a SAVE_CONFIG G-k\u00f3d v\u00e9grehajthat\u00f3 a profil printer.cfg f\u00e1jlba val\u00f3 \u00edr\u00e1s\u00e1hoz. A profilok a BED_MESH_PROFILE LOAD=<name> parancs v\u00e9grehajt\u00e1s\u00e1val t\u00f6lthet\u0151k be. Meg kell jegyezni, hogy minden alkalommal, amikor a BED_MESH_CALIBRATE haszn\u00e1latba ker\u00fcl, az aktu\u00e1lis \u00e1llapot automatikusan az alap\u00e9rtelmezett profilba ker\u00fcl ment\u00e9sre. Ha ez a profil l\u00e9tezik, akkor a Klipper ind\u00edt\u00e1sakor automatikusan bet\u00f6lt\u0151dik. Ha ez a viselked\u00e9s nem k\u00edv\u00e1natos, a default profil a k\u00f6vetkez\u0151k\u00e9ppen t\u00e1vol\u00edthat\u00f3 el: BED_MESH_PROFILE REMOVE=default B\u00e1rmely m\u00e1s elmentett profil ugyan\u00edgy elt\u00e1vol\u00edthat\u00f3, a default helyettes\u00edtve az elt\u00e1vol\u00edtani k\u00edv\u00e1nt n\u00e9vvel. Kimenet \u00b6 BED_MESH_OUTPUT PGP=[0 | 1] Az aktu\u00e1lis h\u00e1l\u00f3\u00e1llapotot adja ki a termin\u00e1lra. Vegy\u00fck \u00e9szre, hogy maga a h\u00e1l\u00f3 is kimenetre ker\u00fcl A PGP param\u00e9ter a \"Print Generated Points\" r\u00f6vid\u00edt\u00e9se. Ha PGP=1 van be\u00e1ll\u00edtva, a gener\u00e1lt m\u00e9rt pontok a termin\u00e1lra ker\u00fclnek: // bed_mesh: generated points // Index | Tool Adjusted | Probe // 0 | (11.0, 1.0) | (35.0, 6.0) // 1 | (62.2, 1.0) | (86.2, 6.0) // 2 | (113.5, 1.0) | (137.5, 6.0) // 3 | (164.8, 1.0) | (188.8, 6.0) // 4 | (216.0, 1.0) | (240.0, 6.0) // 5 | (216.0, 97.0) | (240.0, 102.0) // 6 | (164.8, 97.0) | (188.8, 102.0) // 7 | (113.5, 97.0) | (137.5, 102.0) // 8 | (62.2, 97.0) | (86.2, 102.0) // 9 | (11.0, 97.0) | (35.0, 102.0) // 10 | (11.0, 193.0) | (35.0, 198.0) // 11 | (62.2, 193.0) | (86.2, 198.0) // 12 | (113.5, 193.0) | (137.5, 198.0) // 13 | (164.8, 193.0) | (188.8, 198.0) // 14 | (216.0, 193.0) | (240.0, 198.0) A \"Tool Adjusted\" pontok az egyes pontok f\u00fav\u00f3k\u00e1j\u00e1nak hely\u00e9re, a \"Probe\" pontok pedig a szonda hely\u00e9re utalnak. Vedd figyelembe, hogy k\u00e9zi m\u00e9r\u00e9s eset\u00e9n a \"Probe\" pontok mind a szersz\u00e1m, mind a f\u00fav\u00f3ka hely\u00e9re vonatkoznak. Tiszta h\u00e1l\u00f3s \u00e1llapot \u00b6 BED_MESH_CLEAR Ez a G-k\u00f3d haszn\u00e1lhat\u00f3 a bels\u0151 h\u00e1l\u00f3 \u00e1llapot\u00e1nak t\u00f6rl\u00e9s\u00e9re. X/Y eltol\u00e1sok alkalmaz\u00e1sa \u00b6 BED_MESH_OFFSET [X=<value>] [Y=<value>] Ez t\u00f6bb f\u00fcggetlen extruderrel rendelkez\u0151 nyomtat\u00f3kn\u00e1l hasznos, mivel a szersz\u00e1mcsere ut\u00e1ni helyes Z-be\u00e1ll\u00edt\u00e1shoz sz\u00fcks\u00e9g van egy eltol\u00e1sra. Az eltol\u00e1sokat az els\u0151dleges extruderhez k\u00e9pest kell megadni. Vagyis pozit\u00edv X eltol\u00e1st kell megadni, ha a m\u00e1sodlagos extruder az els\u0151dleges extrudert\u0151l jobbra van felszerelve, \u00e9s pozit\u00edv Y eltol\u00e1st kell megadni, ha a m\u00e1sodlagos extruder az els\u0151dleges extruder m\u00f6g\u00f6tt van felszerelve.","title":"T\u00e1rgyasztal h\u00e1l\u00f3"},{"location":"Bed_Mesh.html#targyasztal-halo","text":"A t\u00e1rgyasztal h\u00e1l\u00f3 modul haszn\u00e1lhat\u00f3 a t\u00e1rgyasztal fel\u00fclet egyenetlens\u00e9geinek kiegyenl\u00edt\u00e9s\u00e9re, hogy jobb els\u0151 r\u00e9teget kapj az eg\u00e9sz t\u00e1rgyasztalon. Meg kell jegyezni, hogy a szoftveralap\u00fa korrekci\u00f3 nem fog t\u00f6k\u00e9letes eredm\u00e9nyt el\u00e9rni, csak megk\u00f6zel\u00edt\u0151 \u00e9rt\u00e9kekkel tudatja a t\u00e1rgyasztal alakj\u00e1t. A t\u00e1rgyasztal h\u00e1l\u00f3 szint\u00e9n nem tudja kompenz\u00e1lni a mechanikai \u00e9s elektromos probl\u00e9m\u00e1kat. Ha egy tengely ferde vagy egy szonda nem pontos, akkor a bed_mesh modul nem fog pontos eredm\u00e9nyeket kapni a szintez\u00e9sr\u0151l. A h\u00e1l\u00f3kalibr\u00e1l\u00e1s el\u0151tt meg kell gy\u0151z\u0151dnie arr\u00f3l, hogy a szonda Z-eltol\u00e1sa kalibr\u00e1lva van. Ha v\u00e9g\u00e1ll\u00e1st haszn\u00e1l a Z-kezd\u0151ponthoz, akkor azt is kalibr\u00e1lni kell. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a Szonda Kalibr\u00e1l\u00e1s \u00e9s a Z_ENDSTOP_CALIBRATE c\u00edm\u0171 fejezetben K\u00e9zi Szintez\u00e9st .","title":"T\u00e1rgyasztal h\u00e1l\u00f3"},{"location":"Bed_Mesh.html#alapveto-konfiguracio","text":"","title":"Alapvet\u0151 konfigur\u00e1ci\u00f3"},{"location":"Bed_Mesh.html#teglalap-alaku-targyasztalok","text":"Ez a p\u00e9lda egy 250 mm x 220 mm-es t\u00e9glalap alak\u00fa t\u00e1rgyasztal\u00fa nyomtat\u00f3t \u00e9s egy 24 mm-es x-eltol\u00e1s\u00fa \u00e9s 5 mm-es y-eltol\u00e1s\u00fa szond\u00e1t mutat. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 sebess\u00e9g: 120 * Alap\u00e9rtelmezett \u00e9rt\u00e9k: 50* A sebess\u00e9g, amellyel a fej a pontok k\u00f6z\u00f6tt mozog. horizontal_move_z: 5 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 5 A Z koordin\u00e1ta, amelyre a szonda a m\u00e9r\u0151pontok k\u00f6z\u00f6tti utaz\u00e1s el\u0151tt emelkedik. mesh_min: 35, 6 Aj\u00e1nlott Az els\u0151, az orig\u00f3hoz legk\u00f6zelebbi koordin\u00e1ta. Ez a koordin\u00e1ta a szonda hely\u00e9hez k\u00e9pest relat\u00edv. mesh_max: 240, 198 Aj\u00e1nlott Az orig\u00f3t\u00f3l legt\u00e1volabb es\u0151 m\u00e9rt koordin\u00e1ta. Ez nem felt\u00e9tlen\u00fcl az utols\u00f3 m\u00e9rt pont, mivel a m\u00e9r\u00e9s cikcakkos m\u00f3don t\u00f6rt\u00e9nik. A mesh_min koordin\u00e1t\u00e1hoz hasonl\u00f3an ez a koordin\u00e1ta is a szonda hely\u00e9hez van viszony\u00edtva. probe_count: 5, 3 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 3,3 Az egyes tengelyeken m\u00e9rend\u0151 pontok sz\u00e1ma, X, Y eg\u00e9sz \u00e9rt\u00e9kben megadva. Ebben a p\u00e9ld\u00e1ban az X tengely ment\u00e9n 5 pont lesz m\u00e9rve, az Y tengely ment\u00e9n 3 pont, \u00f6sszesen 15 m\u00e9rt pont. Vedd figyelembe, hogy ha n\u00e9gyzetr\u00e1csot szeretn\u00e9l, p\u00e9ld\u00e1ul 3x3, akkor ezt egyetlen eg\u00e9sz sz\u00e1m\u00e9rt\u00e9kk\u00e9nt is megadhatod, amelyet mindk\u00e9t tengelyre haszn\u00e1l, azaz probe_count: 3 . Vedd figyelembe, hogy egy h\u00e1l\u00f3hoz mindk\u00e9t tengely ment\u00e9n legal\u00e1bb 3 darab m\u00e9r\u00e9si sz\u00e1mra van sz\u00fcks\u00e9g. Az al\u00e1bbi \u00e1bra azt mutatja, hogy a mesh_min , mesh_max \u00e9s probe_count opci\u00f3k hogyan haszn\u00e1lhat\u00f3k a m\u00e9r\u0151pontok l\u00e9trehoz\u00e1s\u00e1ra. A nyilak jelzik a m\u00e9r\u00e9si elj\u00e1r\u00e1s ir\u00e1ny\u00e1t, kezdve a mesh_min pontt\u00f3l. Hivatkoz\u00e1sk\u00e9ppen, amikor a szonda a mesh_min pontn\u00e1l van, a f\u00fav\u00f3ka a (11, 1) pontn\u00e1l lesz, \u00e9s amikor a szonda a mesh_max pontn\u00e1l van, a f\u00fav\u00f3ka a (206, 193) pontn\u00e1l lesz.","title":"T\u00e9glalap alak\u00fa t\u00e1rgyasztalok"},{"location":"Bed_Mesh.html#kerek-targyasztalok","text":"Ez a p\u00e9lda egy 100 mm-es kerek t\u00e1rgyasztallal felszerelt nyomtat\u00f3t felt\u00e9telez. Ugyanazokat a szondaeltol\u00e1sokat fogjuk haszn\u00e1lni, mint a t\u00e9glalap alak\u00fa p\u00e9ld\u00e1n\u00e1l, 24 mm-t X-en \u00e9s 5 mm-t Y-on. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_radius: 75 mesh_origin: 0, 0 round_probe_count: 5 mesh_radius: 75 Required A vizsg\u00e1lt h\u00e1l\u00f3 sugara mm-ben, a mesh_origin -hez k\u00e9pest. Vedd figyelembe, hogy a szonda eltol\u00e1sai korl\u00e1tozz\u00e1k a h\u00e1l\u00f3 sugar\u00e1nak m\u00e9ret\u00e9t. Ebben a p\u00e9ld\u00e1ban a 76-n\u00e1l nagyobb sug\u00e1r a szersz\u00e1mot a nyomtat\u00f3 hat\u00f3t\u00e1vols\u00e1g\u00e1n k\u00edv\u00fclre helyezn\u00e9. mesh_origin: 0, 0 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 0, 0 A h\u00e1l\u00f3 k\u00f6z\u00e9ppontja. Ez a koordin\u00e1ta a szonda hely\u00e9hez k\u00e9pest relat\u00edv. B\u00e1r az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, 0 hasznos lehet az orig\u00f3 be\u00e1ll\u00edt\u00e1sa, ha a t\u00e1rgyasztal nagyobb r\u00e9sz\u00e9t szeretn\u00e9d megm\u00e9rni. L\u00e1sd az al\u00e1bbi \u00e1br\u00e1t. round_probe_count: 5 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 5 Ez egy eg\u00e9sz sz\u00e1m, amely meghat\u00e1rozza az X \u00e9s Y tengely ment\u00e9n m\u00e9rt pontok maxim\u00e1lis sz\u00e1m\u00e1t. A \"maxim\u00e1lis\" alatt a h\u00e1l\u00f3 orig\u00f3ja ment\u00e9n m\u00e9rt pontok sz\u00e1m\u00e1t \u00e9rtj\u00fck. Ennek az \u00e9rt\u00e9knek p\u00e1ratlan sz\u00e1mnak kell lennie, mivel a h\u00e1l\u00f3 k\u00f6z\u00e9ppontj\u00e1t kell megvizsg\u00e1lni. Az al\u00e1bbi \u00e1bra mutatja, hogyan gener\u00e1l\u00f3dnak a m\u00e9rt pontok. Mint l\u00e1that\u00f3, a mesh_origin (-10, 0) \u00e9rt\u00e9kre \u00e1ll\u00edt\u00e1sa lehet\u0151v\u00e9 teszi, hogy nagyobb, 85-\u00f6s h\u00e1l\u00f3sugarat adjunk meg.","title":"Kerek t\u00e1rgyasztalok"},{"location":"Bed_Mesh.html#specialis-konfiguracio","text":"Az al\u00e1bbiakban r\u00e9szletesen ismertetj\u00fck a fejlettebb konfigur\u00e1ci\u00f3s lehet\u0151s\u00e9geket. Minden p\u00e9lda a fent bemutatott t\u00e9glalap alak\u00fa alapkonfigur\u00e1ci\u00f3ra \u00e9p\u00fcl. A speci\u00e1lis lehet\u0151s\u00e9gek mindegyike ugyan\u00fagy alkalmazhat\u00f3 a kerek t\u00e1rgyasztalokra is.","title":"Speci\u00e1lis konfigur\u00e1ci\u00f3"},{"location":"Bed_Mesh.html#halo-interpolacio","text":"B\u00e1r a m\u00e9rt m\u00e1trixot k\u00f6zvetlen\u00fcl egyszer\u0171 biline\u00e1ris interpol\u00e1ci\u00f3val lehet mintav\u00e9telezni a m\u00e9rt pontok k\u00f6z\u00f6tti Z-\u00e9rt\u00e9kek meghat\u00e1roz\u00e1s\u00e1hoz, a h\u00e1l\u00f3 s\u0171r\u0171s\u00e9g\u00e9nek n\u00f6vel\u00e9se \u00e9rdek\u00e9ben gyakran hasznos a tov\u00e1bbi pontok interpol\u00e1l\u00e1sa fejlettebb interpol\u00e1ci\u00f3s algoritmusok seg\u00edts\u00e9g\u00e9vel. Ezek az algoritmusok g\u00f6rb\u00fcletet adnak a h\u00e1l\u00f3hoz, megk\u00eds\u00e9relve szimul\u00e1lni a meder anyagi tulajdons\u00e1gait. A Bed Mesh ehhez Lagrange \u00e9s bikubik interpol\u00e1ci\u00f3t k\u00edn\u00e1l. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 mesh_pps: 2, 3 algorithm: bicubic bicubic_tension: 0.2 mesh_pps: 2, 3 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 2, 2 A mesh_pps opci\u00f3 a H\u00e1l\u00f3pontok szegmensenk\u00e9nti r\u00f6vid\u00edt\u00e9se. Ez az opci\u00f3 azt adja meg, hogy h\u00e1ny pontot interpol\u00e1ljon minden egyes szegmenshez az X \u00e9s Y tengely ment\u00e9n. Tekints\u00fck egy 'szegmensnek' az egyes m\u00e9rt pontok k\u00f6z\u00f6tti teret. A probe_count -hoz hasonl\u00f3an a mesh_pps is X, Y eg\u00e9sz sz\u00e1mp\u00e1rk\u00e9nt adhat\u00f3 meg, de megadhat\u00f3 egyetlen eg\u00e9sz sz\u00e1m is, amely mindk\u00e9t tengelyre vonatkozik. Ebben a p\u00e9ld\u00e1ban 4 szegmens van az X tengely ment\u00e9n \u00e9s 2 szegmens az Y tengely ment\u00e9n. Ez 8 interpol\u00e1lt pontot jelent az X ment\u00e9n, 6 interpol\u00e1lt pontot az Y ment\u00e9n, ami egy 13x8-as h\u00e1l\u00f3t eredm\u00e9nyez. Vedd figyelembe, hogy ha a mesh_pps \u00e9rt\u00e9ke 0, akkor a h\u00e1l\u00f3interpol\u00e1ci\u00f3 le van tiltva, \u00e9s a m\u00e9rt m\u00e1trixot k\u00f6zvetlen\u00fcl mintav\u00e9telezi a rendszer. algorithm: lagrange * Alap\u00e9rtelmezett \u00e9rt\u00e9k: lagrange* A h\u00e1l\u00f3 interpol\u00e1l\u00e1s\u00e1hoz haszn\u00e1lt algoritmus. Lehet lagrange vagy bicubic . A Lagrange-interpol\u00e1ci\u00f3 6 szond\u00e1zott pontn\u00e1l van korl\u00e1tozva, mivel nagyobb sz\u00e1m\u00fa minta eset\u00e9n oszcill\u00e1ci\u00f3 l\u00e9p fel. A bikubik interpol\u00e1ci\u00f3hoz mindk\u00e9t tengely ment\u00e9n legal\u00e1bb 4 szond\u00e1zott pont sz\u00fcks\u00e9ges, ha 4 pontn\u00e1l kevesebb van megadva, akkor a Lagrange mintav\u00e9telez\u00e9s kik\u00e9nyszer\u00fcl. Ha a mesh_pps 0-ra van \u00e1ll\u00edtva, akkor ez az \u00e9rt\u00e9k figyelmen k\u00edv\u00fcl marad, mivel nem t\u00f6rt\u00e9nik h\u00e1l\u00f3interpol\u00e1ci\u00f3. bicubic_tension: 0.2 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 0.2 Ha az algorithm opci\u00f3 bikubikra van \u00e1ll\u00edtva, akkor lehet megadni a fesz\u00fclts\u00e9g \u00e9rt\u00e9k\u00e9t. Min\u00e9l nagyobb a fesz\u00fclts\u00e9g, ann\u00e1l nagyobb meredeks\u00e9get interpol\u00e1l. Legyen \u00f3vatos ennek be\u00e1ll\u00edt\u00e1sakor, mivel a magasabb \u00e9rt\u00e9kek t\u00f6bb t\u00falh\u00faz\u00e1st is eredm\u00e9nyeznek, ami a m\u00e9rt pontokn\u00e1l magasabb vagy alacsonyabb interpol\u00e1lt \u00e9rt\u00e9keket eredm\u00e9nyez. Az al\u00e1bbi \u00e1bra azt mutatja, hogy a fenti opci\u00f3kat hogyan haszn\u00e1ljuk egy interpol\u00e1lt h\u00e1l\u00f3 l\u00e9trehoz\u00e1s\u00e1hoz.","title":"H\u00e1l\u00f3 interpol\u00e1ci\u00f3"},{"location":"Bed_Mesh.html#mozgas-felosztas","text":"A t\u00e1rgyasztal h\u00e1l\u00f3 \u00fagy m\u0171k\u00f6dik, hogy megkapja a G-k\u00f3d mozgat\u00e1si parancsokat \u00e9s transzform\u00e1ci\u00f3t alkalmaz a Z koordin\u00e1t\u00e1jukra. A hossz\u00fa mozg\u00e1sokat kisebb mozg\u00e1sokra kell bontani, hogy helyesen k\u00f6vess\u00e9k a t\u00e1rgyasztal alakj\u00e1t. Az al\u00e1bbi opci\u00f3k a feloszt\u00e1si viselked\u00e9st szab\u00e1lyozz\u00e1k. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 move_check_distance: 5 split_delta_z: .025 move_check_distance: 5 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 5 A minim\u00e1lis t\u00e1vols\u00e1g, amellyel a k\u00edv\u00e1nt Z-v\u00e1ltoz\u00e1st ellen\u0151rizni kell a feloszt\u00e1s v\u00e9grehajt\u00e1sa el\u0151tt. Ebben a p\u00e9ld\u00e1ban az 5 mm-n\u00e9l hosszabb mozg\u00e1st fog az algoritmus v\u00e9gigj\u00e1rni. Minden 5 mm-enk\u00e9nt egy h\u00e1l\u00f3 Z m\u00e9r\u00e9s t\u00f6rt\u00e9nik, \u00f6sszehasonl\u00edtva azt az el\u0151z\u0151 l\u00e9p\u00e9s Z \u00e9rt\u00e9k\u00e9vel. Ha a delta el\u00e9ri a split_delta_z \u00e1ltal be\u00e1ll\u00edtott k\u00fcsz\u00f6b\u00e9rt\u00e9ket, akkor a mozg\u00e1s feloszt\u00e1sra ker\u00fcl, \u00e9s a bej\u00e1r\u00e1s folytat\u00f3dik. Ez a folyamat addig ism\u00e9tl\u0151dik, am\u00edg a l\u00e9p\u00e9s v\u00e9g\u00e9re nem \u00e9r\u00fcnk, ahol egy v\u00e9gs\u0151 kiigaz\u00edt\u00e1s t\u00f6rt\u00e9nik. A move_check_distance \u00e9rt\u00e9kn\u00e9l r\u00f6videbb mozg\u00e1sokn\u00e1l a helyes Z kiigaz\u00edt\u00e1st k\u00f6zvetlen\u00fcl a mozg\u00e1sra alkalmazz\u00e1k, \u00e1thalad\u00e1s vagy feloszt\u00e1s n\u00e9lk\u00fcl. split_delta_z: .025 Alap\u00e9rtelmezett \u00e9rt\u00e9k: .025 Mint fentebb eml\u00edtett\u00fck, ez a minim\u00e1lis elt\u00e9r\u00e9s sz\u00fcks\u00e9ges a mozg\u00e1s feloszt\u00e1s\u00e1nak elind\u00edt\u00e1s\u00e1hoz. Ebben a p\u00e9ld\u00e1ban b\u00e1rmely Z-\u00e9rt\u00e9k +/- .025 mm elt\u00e9r\u00e9s kiv\u00e1ltja a feloszt\u00e1st. \u00c1ltal\u00e1ban az alap\u00e9rtelmezett \u00e9rt\u00e9kek elegend\u0151ek ezekhez az opci\u00f3khoz, s\u0151t, a move_check_distance alap\u00e9rtelmezett 5 mm-es \u00e9rt\u00e9ke t\u00falz\u00e1s lehet. Egy halad\u00f3 felhaszn\u00e1l\u00f3 azonban k\u00eds\u00e9rletezhet ezekkel az opci\u00f3kkal, hogy megpr\u00f3b\u00e1lja kiszor\u00edtani az optim\u00e1lis els\u0151 r\u00e9teget.","title":"Mozg\u00e1s feloszt\u00e1s"},{"location":"Bed_Mesh.html#halo-elhalvanyulas","text":"Ha a \"fade\" enged\u00e9lyezve van, a Z-be\u00e1ll\u00edt\u00e1s a konfigur\u00e1ci\u00f3 \u00e1ltal meghat\u00e1rozott t\u00e1vols\u00e1gon bel\u00fcl fokozatosan megsz\u0171nik. Ez a r\u00e9tegmagass\u00e1g kis kiigaz\u00edt\u00e1s\u00e1val \u00e9rhet\u0151 el, a t\u00e1rgyasztal alakj\u00e1t\u00f3l f\u00fcgg\u0151en n\u00f6velve vagy cs\u00f6kkentve. Ha a fade befejez\u0151d\u00f6tt, a Z-be\u00e1ll\u00edt\u00e1s m\u00e1r nem ker\u00fcl alkalmaz\u00e1sra, \u00edgy a nyomtat\u00e1s teteje s\u00edk lesz, nem pedig a t\u00e1rgyasztal alakj\u00e1t t\u00fckr\u00f6zi. A fak\u00edt\u00e1snak lehetnek nemk\u00edv\u00e1natos tulajdons\u00e1gai is, ha t\u00fal gyorsan fak\u00edt, akkor l\u00e1that\u00f3 leleteket eredm\u00e9nyezhet a nyomaton. Tov\u00e1bb\u00e1, ha a t\u00e1rgyasztal jelent\u0151sen megvetemedett, a fade zsugor\u00edthatja vagy megny\u00fajthatja a nyomat Z magass\u00e1g\u00e1t. Ez\u00e9rt a fade alap\u00e9rtelmez\u00e9s szerint ki van kapcsolva. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 fade_start: 1 fade_end: 10 fade_target: 0 fade_start: 1 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 1 A Z magass\u00e1g, amelyben a fokozatos kiigaz\u00edt\u00e1st el kell kezdeni. J\u00f3 \u00f6tlet, ha a fade folyamat megkezd\u00e9se el\u0151tt n\u00e9h\u00e1ny r\u00e9teggel lejjebb ker\u00fcl. fade_end: 10 Alap\u00e9rtelmezett \u00e9rt\u00e9k: 0 A Z magass\u00e1g, amelyben a fade-nek be kell fejez\u0151dnie. Ha ez az \u00e9rt\u00e9k kisebb, mint fade_start akkor a fade le van tiltva. Ezt az \u00e9rt\u00e9ket a nyomtat\u00e1si fel\u00fclet torzul\u00e1s\u00e1t\u00f3l f\u00fcgg\u0151en lehet m\u00f3dos\u00edtani. Egy jelent\u0151sen g\u00f6rb\u00fclt fel\u00fcletnek hosszabb t\u00e1von kell elhalv\u00e1nyulnia. Egy k\u00f6zel s\u00edk fel\u00fclet eset\u00e9ben ez az \u00e9rt\u00e9k cs\u00f6kkenthet\u0151, hogy gyorsabban fakuljon ki. A 10 mm egy \u00e9sszer\u0171 \u00e9rt\u00e9k, ha a fade_start alap\u00e9rtelmezett 1 \u00e9rt\u00e9k\u00e9t haszn\u00e1ljuk. fade_target: 0 Alap\u00e9rtelmezett \u00e9rt\u00e9k: A h\u00e1l\u00f3 \u00e1tlagos Z \u00e9rt\u00e9ke A fade_target \u00fagy k\u00e9pzelhet\u0151 el, mint egy tov\u00e1bbi Z eltol\u00e1s, amelyet a fade befejez\u00e9se ut\u00e1n a teljes t\u00e1rgyasztalra alkalmaznak. \u00c1ltal\u00e1noss\u00e1gban azt szeretn\u00e9nk, ha ez az \u00e9rt\u00e9k 0 lenne, azonban vannak olyan k\u00f6r\u00fclm\u00e9nyek, amikor nem kell, hogy \u00edgy legyen. Tegy\u00fck fel p\u00e9ld\u00e1ul, hogy a t\u00e1rgyasztalon a kezd\u0151pont poz\u00edci\u00f3ja egy kiugr\u00f3 \u00e9rt\u00e9k, amely 0,2 mm-rel alacsonyabb, mint a t\u00e1rgyasztal \u00e1tlagos m\u00e9rt magass\u00e1ga. Ha a fade_target \u00e9rt\u00e9ke 0, akkor a fade \u00e1tlagosan 0,2 mm-rel zsugor\u00edtja a nyomtat\u00e1st a t\u00e1rgyasztalon. Ha a fade_target \u00e9rt\u00e9k\u00e9t .2-re \u00e1ll\u00edtja, akkor a kezd\u0151ponti ter\u00fclet .2 mm-rel fog t\u00e1gulni, azonban a t\u00e1rgyasztal t\u00f6bbi r\u00e9sze pontosan m\u00e9retezett lesz. \u00c1ltal\u00e1ban j\u00f3 \u00f6tlet a fade_target elhagy\u00e1sa a konfigur\u00e1ci\u00f3b\u00f3l, \u00edgy a h\u00e1l\u00f3 \u00e1tlagos magass\u00e1ga ker\u00fcl felhaszn\u00e1l\u00e1sra, azonban k\u00edv\u00e1natos lehet a fade target k\u00e9zi be\u00e1ll\u00edt\u00e1sa, ha a t\u00e1rgyasztal egy adott r\u00e9sz\u00e9re szeretn\u00e9nk nyomtatni.","title":"H\u00e1l\u00f3 elhalv\u00e1nyul\u00e1s"},{"location":"Bed_Mesh.html#a-relativ-referenciaindex","text":"A legt\u00f6bb szonda hajlamos a driftre, azaz: a h\u0151 vagy interferencia \u00e1ltal okozott pontatlans\u00e1gokra. Ez kih\u00edv\u00e1ss\u00e1 teheti a szonda Z-eltol\u00e1s\u00e1nak kisz\u00e1m\u00edt\u00e1s\u00e1t, k\u00fcl\u00f6n\u00f6sen k\u00fcl\u00f6nb\u00f6z\u0151 t\u00e1rgyasztal h\u0151m\u00e9rs\u00e9kleteken. Ez\u00e9rt egyes nyomtat\u00f3k a Z tengely be\u00e1ll\u00edt\u00e1s\u00e1hoz v\u00e9g\u00e1ll\u00e1st, a h\u00e1l\u00f3 kalibr\u00e1l\u00e1s\u00e1hoz pedig szond\u00e1t haszn\u00e1lnak. Ezeknek a nyomtat\u00f3knak el\u0151ny\u00f6s lehet a relat\u00edv referenciaindex konfigur\u00e1l\u00e1sa. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 relative_reference_index: 7 relative_reference_index: 7 Alap\u00e9rtelmezett \u00e9rt\u00e9k: Nincs (letiltva) A m\u00e9rt pontok l\u00e9trehoz\u00e1sakor mindegyikhez indexet rendel\u00fcnk. Ezt az indexet a klippy.log f\u00e1jlban vagy a BED_MESH_OUTPUT seg\u00edts\u00e9g\u00e9vel kereshetj\u00fck meg (tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd az al\u00e1bbi, Bed Mesh GCodes c\u00edm\u0171 r\u00e9szt). Ha indexet rendel a relative_reference_index opci\u00f3hoz, akkor az ezen a koordin\u00e1t\u00e1n m\u00e9rt \u00e9rt\u00e9k fogja helyettes\u00edteni a szonda z_offset-\u00e9t. Ez\u00e1ltal ez a koordin\u00e1ta gyakorlatilag a h\u00e1l\u00f3 \"nulla\" referenci\u00e1j\u00e1v\u00e1 v\u00e1lik. A relat\u00edv referenciaindex haszn\u00e1latakor azt az indexet kell v\u00e1lasztania, amelyik a legk\u00f6zelebb van ahhoz a ponthoz a t\u00e1rgyasztalon, ahol a Z v\u00e9g\u00e1ll\u00e1s kalibr\u00e1l\u00e1sa t\u00f6rt\u00e9nt. Vedd figyelembe, hogy ha az indexet a napl\u00f3 vagy a BED_MESH_OUTPUT seg\u00edts\u00e9g\u00e9vel keresi meg, akkor a \"Probe\" fejl\u00e9c alatt felsorolt koordin\u00e1t\u00e1kat kell haszn\u00e1lnia a helyes index megtal\u00e1l\u00e1s\u00e1hoz.","title":"A relat\u00edv referenciaindex"},{"location":"Bed_Mesh.html#hibas-regiok","text":"El\u0151fordulhat, hogy a t\u00e1rgyasztal egyes ter\u00fcletei pontatlan eredm\u00e9nyeket jeleznek a m\u00e9r\u00e9s sor\u00e1n, mivel bizonyos helyeken \"hiba\" van. Erre a legjobb p\u00e9lda a levehet\u0151 ac\u00e9llemezek r\u00f6gz\u00edt\u00e9s\u00e9re haszn\u00e1lt integr\u00e1lt m\u00e1gnesek sorozat\u00e1val ell\u00e1tott t\u00e1rgyasztalok. Ezekn\u00e9l a m\u00e1gnesekn\u00e9l \u00e9s k\u00f6r\u00fcl\u00f6tt\u00fck l\u00e9v\u0151 m\u00e1gneses mez\u0151 hat\u00e1s\u00e1ra az indukt\u00edv szonda magasabb vagy alacsonyabb t\u00e1vols\u00e1gban m\u00e9rhet, mint egy\u00e9bk\u00e9nt tenn\u00e9, ami azt eredm\u00e9nyezi, hogy a h\u00e1l\u00f3 nem pontosan reprezent\u00e1lja a fel\u00fcletet ezeken a helyeken. Figyelem: Ez nem t\u00e9vesztend\u0151 \u00f6ssze a szonda hely\u00e9nek torz\u00edt\u00e1s\u00e1val, amely pontatlan eredm\u00e9nyeket eredm\u00e9nyez az eg\u00e9sz t\u00e1rgyasztalon. A faulty_region opci\u00f3kat \u00fagy lehet be\u00e1ll\u00edtani, hogy kompenz\u00e1lj\u00e1k ezt a hat\u00e1st. Ha egy gener\u00e1lt pont egy hib\u00e1s r\u00e9gi\u00f3ba esik, akkor a bed mesh megpr\u00f3b\u00e1l ak\u00e1r 4 pontot is megvizsg\u00e1lni a r\u00e9gi\u00f3 hat\u00e1rain\u00e1l. Ezeket a m\u00e9rt \u00e9rt\u00e9keket \u00e1tlagolja \u00e9s beilleszti a h\u00e1l\u00f3ba Z \u00e9rt\u00e9kben a gener\u00e1lt (X, Y) koordin\u00e1t\u00e1n. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 faulty_region_1_min: 130.0, 0.0 faulty_region_1_max: 145.0, 40.0 faulty_region_2_min: 225.0, 0.0 faulty_region_2_max: 250.0, 25.0 faulty_region_3_min: 165.0, 95.0 faulty_region_3_max: 205.0, 110.0 faulty_region_4_min: 30.0, 170.0 faulty_region_4_max: 45.0, 210.0 faulty_region_{1...99}_min faulty_region_{1...99}_max Alap\u00e9rtelmezett \u00e9rt\u00e9k: Nincs (letiltva) A hib\u00e1s r\u00e9gi\u00f3k meghat\u00e1roz\u00e1sa hasonl\u00f3an t\u00f6rt\u00e9nik, mint mag\u00e1nak a h\u00e1l\u00f3nak a meghat\u00e1roz\u00e1sa, ahol minden egyes r\u00e9gi\u00f3hoz meg kell adni a minim\u00e1lis \u00e9s maxim\u00e1lis (X, Y) koordin\u00e1t\u00e1kat. Egy hib\u00e1s r\u00e9gi\u00f3 a h\u00e1l\u00f3n k\u00edv\u00fclre is kiterjedhet, azonban a gener\u00e1lt v\u00e1ltakoz\u00f3 pontok mindig a h\u00e1l\u00f3 hat\u00e1r\u00e1n bel\u00fcl lesznek. K\u00e9t r\u00e9gi\u00f3 nem fedheti egym\u00e1st. Az al\u00e1bbi k\u00e9p azt szeml\u00e9lteti, hogyan gener\u00e1l\u00f3dnak a cserepontok, ha egy gener\u00e1lt pont egy hib\u00e1s ter\u00fcleten bel\u00fcl van. Az \u00e1br\u00e1zolt r\u00e9gi\u00f3k megegyeznek a fenti mintakonfigur\u00e1ci\u00f3ban szerepl\u0151 r\u00e9gi\u00f3kkal. A cserepontok \u00e9s koordin\u00e1t\u00e1ik z\u00f6ld sz\u00ednnel vannak jel\u00f6lve.","title":"Hib\u00e1s r\u00e9gi\u00f3k"},{"location":"Bed_Mesh.html#targyasztal-halo-g-kodok","text":"","title":"T\u00e1rgyasztal h\u00e1l\u00f3 G-k\u00f3dok"},{"location":"Bed_Mesh.html#kalibracio","text":"BED_MESH_CALIBRATE PROFILE=<name> METHOD=[manual | automatic] [<probe_parameter>=<value>] [<mesh_parameter>=<value>] * Alap\u00e9rtelmezett profil: alap\u00e9rtelmezett Alap\u00e9rtelmezett m\u00f3dszer: automatikus, ha \u00e9rz\u00e9kel\u0151t \u00e9szlel, egy\u00e9bk\u00e9nt manu\u00e1lis* Elind\u00edtja a m\u00e9r\u00e9si elj\u00e1r\u00e1st a t\u00e1rgyasztal h\u00e1l\u00f3 kalibr\u00e1l\u00e1s\u00e1hoz. A h\u00e1l\u00f3 a PROFILE param\u00e9ter \u00e1ltal megadott profilba ker\u00fcl ment\u00e9sre, vagy default , ha nincs megadva. Ha a METHOD=manual param\u00e9tert v\u00e1lasztjuk, akkor k\u00e9zi m\u00e9r\u00e9s t\u00f6rt\u00e9nik. Az automatikus \u00e9s a k\u00e9zi m\u00e9r\u00e9s k\u00f6z\u00f6tti v\u00e1lt\u00e1skor a gener\u00e1lt h\u00e1l\u00f3pontok automatikusan kiigaz\u00edt\u00e1sra ker\u00fclnek. Lehet\u0151s\u00e9g van h\u00e1l\u00f3param\u00e9terek megad\u00e1s\u00e1ra a m\u00e9rt ter\u00fclet m\u00f3dos\u00edt\u00e1s\u00e1ra. A k\u00f6vetkez\u0151 param\u00e9terek \u00e1llnak rendelkez\u00e9sre: T\u00e9glalap alak\u00fa t\u00e1rgyasztalok (cartesian): MESH_MIN MESH_MAX PROBE_COUNT Kerek t\u00e1rgyasztalok (delta): MESH_RADIUS MESH_ORIGIN ROUND_PROBE_COUNT Minden t\u00e1rgyasztal: RELATIVE_REFERNCE_INDEX ALGORITHM Az egyes param\u00e9terek h\u00e1l\u00f3ra val\u00f3 alkalmaz\u00e1s\u00e1nak r\u00e9szleteit l\u00e1sd a fenti konfigur\u00e1ci\u00f3s dokument\u00e1ci\u00f3ban.","title":"Kalibr\u00e1ci\u00f3"},{"location":"Bed_Mesh.html#profilok","text":"BED_MESH_PROFILE SAVE=<name> LOAD=<name> REMOVE=<name> A BED_MESH_CALIBRATE elv\u00e9gz\u00e9se ut\u00e1n lehet\u0151s\u00e9g van a h\u00e1l\u00f3 aktu\u00e1lis \u00e1llapot\u00e1nak elment\u00e9s\u00e9re egy megnevezett profilba. Ez lehet\u0151v\u00e9 teszi a h\u00e1l\u00f3 bet\u00f6lt\u00e9s\u00e9t a t\u00e1rgyasztal \u00fajb\u00f3li m\u00e9r\u00e9se n\u00e9lk\u00fcl. Miut\u00e1n egy profilt a BED_MESH_PROFILE SAVE=<name> seg\u00edts\u00e9g\u00e9vel elmentett\u00fcnk, a SAVE_CONFIG G-k\u00f3d v\u00e9grehajthat\u00f3 a profil printer.cfg f\u00e1jlba val\u00f3 \u00edr\u00e1s\u00e1hoz. A profilok a BED_MESH_PROFILE LOAD=<name> parancs v\u00e9grehajt\u00e1s\u00e1val t\u00f6lthet\u0151k be. Meg kell jegyezni, hogy minden alkalommal, amikor a BED_MESH_CALIBRATE haszn\u00e1latba ker\u00fcl, az aktu\u00e1lis \u00e1llapot automatikusan az alap\u00e9rtelmezett profilba ker\u00fcl ment\u00e9sre. Ha ez a profil l\u00e9tezik, akkor a Klipper ind\u00edt\u00e1sakor automatikusan bet\u00f6lt\u0151dik. Ha ez a viselked\u00e9s nem k\u00edv\u00e1natos, a default profil a k\u00f6vetkez\u0151k\u00e9ppen t\u00e1vol\u00edthat\u00f3 el: BED_MESH_PROFILE REMOVE=default B\u00e1rmely m\u00e1s elmentett profil ugyan\u00edgy elt\u00e1vol\u00edthat\u00f3, a default helyettes\u00edtve az elt\u00e1vol\u00edtani k\u00edv\u00e1nt n\u00e9vvel.","title":"Profilok"},{"location":"Bed_Mesh.html#kimenet","text":"BED_MESH_OUTPUT PGP=[0 | 1] Az aktu\u00e1lis h\u00e1l\u00f3\u00e1llapotot adja ki a termin\u00e1lra. Vegy\u00fck \u00e9szre, hogy maga a h\u00e1l\u00f3 is kimenetre ker\u00fcl A PGP param\u00e9ter a \"Print Generated Points\" r\u00f6vid\u00edt\u00e9se. Ha PGP=1 van be\u00e1ll\u00edtva, a gener\u00e1lt m\u00e9rt pontok a termin\u00e1lra ker\u00fclnek: // bed_mesh: generated points // Index | Tool Adjusted | Probe // 0 | (11.0, 1.0) | (35.0, 6.0) // 1 | (62.2, 1.0) | (86.2, 6.0) // 2 | (113.5, 1.0) | (137.5, 6.0) // 3 | (164.8, 1.0) | (188.8, 6.0) // 4 | (216.0, 1.0) | (240.0, 6.0) // 5 | (216.0, 97.0) | (240.0, 102.0) // 6 | (164.8, 97.0) | (188.8, 102.0) // 7 | (113.5, 97.0) | (137.5, 102.0) // 8 | (62.2, 97.0) | (86.2, 102.0) // 9 | (11.0, 97.0) | (35.0, 102.0) // 10 | (11.0, 193.0) | (35.0, 198.0) // 11 | (62.2, 193.0) | (86.2, 198.0) // 12 | (113.5, 193.0) | (137.5, 198.0) // 13 | (164.8, 193.0) | (188.8, 198.0) // 14 | (216.0, 193.0) | (240.0, 198.0) A \"Tool Adjusted\" pontok az egyes pontok f\u00fav\u00f3k\u00e1j\u00e1nak hely\u00e9re, a \"Probe\" pontok pedig a szonda hely\u00e9re utalnak. Vedd figyelembe, hogy k\u00e9zi m\u00e9r\u00e9s eset\u00e9n a \"Probe\" pontok mind a szersz\u00e1m, mind a f\u00fav\u00f3ka hely\u00e9re vonatkoznak.","title":"Kimenet"},{"location":"Bed_Mesh.html#tiszta-halos-allapot","text":"BED_MESH_CLEAR Ez a G-k\u00f3d haszn\u00e1lhat\u00f3 a bels\u0151 h\u00e1l\u00f3 \u00e1llapot\u00e1nak t\u00f6rl\u00e9s\u00e9re.","title":"Tiszta h\u00e1l\u00f3s \u00e1llapot"},{"location":"Bed_Mesh.html#xy-eltolasok-alkalmazasa","text":"BED_MESH_OFFSET [X=<value>] [Y=<value>] Ez t\u00f6bb f\u00fcggetlen extruderrel rendelkez\u0151 nyomtat\u00f3kn\u00e1l hasznos, mivel a szersz\u00e1mcsere ut\u00e1ni helyes Z-be\u00e1ll\u00edt\u00e1shoz sz\u00fcks\u00e9g van egy eltol\u00e1sra. Az eltol\u00e1sokat az els\u0151dleges extruderhez k\u00e9pest kell megadni. Vagyis pozit\u00edv X eltol\u00e1st kell megadni, ha a m\u00e1sodlagos extruder az els\u0151dleges extrudert\u0151l jobbra van felszerelve, \u00e9s pozit\u00edv Y eltol\u00e1st kell megadni, ha a m\u00e1sodlagos extruder az els\u0151dleges extruder m\u00f6g\u00f6tt van felszerelve.","title":"X/Y eltol\u00e1sok alkalmaz\u00e1sa"},{"location":"Benchmarks.html","text":"Referencia\u00e9rt\u00e9kek \u00b6 Ez a dokumentum a Klipper referencia\u00e9rt\u00e9keit ismerteti. Mikrokontroller referencia\u00e9rt\u00e9kek \u00b6 Ez a szakasz ismerteti a Klipper mikrokontroller l\u00e9p\u00e9si sebess\u00e9greferencia l\u00e9trehoz\u00e1s\u00e1ra haszn\u00e1lt mechanizmust. A referenciamutat\u00f3k els\u0151dleges c\u00e9lja, hogy k\u00f6vetkezetes mechanizmust biztos\u00edtsanak a szoftveren bel\u00fcli k\u00f3dol\u00e1si v\u00e1ltoztat\u00e1sok hat\u00e1s\u00e1nak m\u00e9r\u00e9s\u00e9re. M\u00e1sodlagos c\u00e9l, hogy magas szint\u0171 m\u00e9r\u0151sz\u00e1mokat biztos\u00edtson a chipek \u00e9s a szoftverplatformok teljes\u00edtm\u00e9ny\u00e9nek \u00f6sszehasonl\u00edt\u00e1s\u00e1hoz. A l\u00e9p\u00e9ssz\u00e1m-\u00f6sszehasonl\u00edt\u00e1s c\u00e9lja a hardver \u00e9s a szoftver \u00e1ltal el\u00e9rhet\u0151 maxim\u00e1lis l\u00e9p\u00e9ssz\u00e1m meghat\u00e1roz\u00e1sa. Ez az \u00f6sszehasonl\u00edt\u00f3 l\u00e9p\u00e9si sebess\u00e9g a mindennapi haszn\u00e1lat sor\u00e1n nem \u00e9rhet\u0151 el, mivel a Klippernek m\u00e1s feladatokat is el kell l\u00e1tnia (pl. mcu/host kommunik\u00e1ci\u00f3, h\u0151m\u00e9rs\u00e9klet leolvas\u00e1s, v\u00e9g\u00e1ll\u00e1s ellen\u0151rz\u00e9s) minden val\u00f3s haszn\u00e1lat sor\u00e1n. \u00c1ltal\u00e1ban a referencia-tesztekhez haszn\u00e1lt t\u0171ket \u00fagy v\u00e1lasztj\u00e1k ki, hogy LED-eket vagy m\u00e1s \u00e1rtalmatlan eszk\u00f6z\u00f6ket m\u0171k\u00f6dtessen. A referencia futtat\u00e1sa el\u0151tt mindig ellen\u0151rizd, hogy a konfigur\u00e1lt t\u0171k meghajt\u00e1sa biztons\u00e1gos-e. Nem aj\u00e1nlott a t\u00e9nyleges l\u00e9ptet\u0151k haszn\u00e1lata a referencia sor\u00e1n. L\u00e9ptet\u0151ar\u00e1nyos referencia\u00e9rt\u00e9k teszt \u00b6 A teszt a console.py eszk\u00f6zzel t\u00f6rt\u00e9nik (a c\u00edm\u0171 fejezetben le\u00edrtak szerint). A mikrokontrollert az adott hardverplatformhoz konfigur\u00e1ljuk (l\u00e1sd al\u00e1bb), majd a k\u00f6vetkez\u0151ket v\u00e1gjuk ki \u00e9s illessz\u00fck be a console.py termin\u00e1lablakba: SET start_clock {clock+freq} SET ticks 1000 reset_step_clock oid=0 clock={start_clock} set_next_step_dir oid=0 dir=0 queue_step oid=0 interval={ticks} count=60000 add=0 set_next_step_dir oid=0 dir=1 queue_step oid=0 interval=3000 count=1 add=0 reset_step_clock oid=1 clock={start_clock} set_next_step_dir oid=1 dir=0 queue_step oid=1 interval={ticks} count=60000 add=0 set_next_step_dir oid=1 dir=1 queue_step oid=1 interval=3000 count=1 add=0 reset_step_clock oid=2 clock={start_clock} set_next_step_dir oid=2 dir=0 queue_step oid=2 interval={ticks} count=60000 add=0 set_next_step_dir oid=2 dir=1 queue_step oid=2 interval=3000 count=1 add=0 A fentiekben h\u00e1rom l\u00e9ptet\u0151 egyidej\u0171 l\u00e9ptet\u00e9s\u00e9t tesztelj\u00fck. Ha a fentiek futtat\u00e1sa egy \"Rescheduled timer in the past\" a \"Stepper too far in pas\" hib\u00e1t eredm\u00e9nyez, akkor ez azt jelzi, hogy a ticks param\u00e9ter t\u00fal alacsony (t\u00fal gyors l\u00e9ptet\u00e9si sebess\u00e9get eredm\u00e9nyez). A c\u00e9l az, hogy megtal\u00e1ljuk a ticks param\u00e9ter legalacsonyabb be\u00e1ll\u00edt\u00e1s\u00e1t, amely megb\u00edzhat\u00f3an eredm\u00e9nyezi a teszt sikeres befejez\u00e9s\u00e9t. A ticks param\u00e9tert addig kell felezni, am\u00edg stabil \u00e9rt\u00e9ket nem tal\u00e1lunk. Sikertelens\u00e9g eset\u00e9n az al\u00e1bbiakat m\u00e1solva \u00e9s beillesztve t\u00f6r\u00f6lheti a hib\u00e1t a k\u00f6vetkez\u0151 tesztre val\u00f3 felk\u00e9sz\u00fcl\u00e9shez: clear_shutdown Az egyl\u00e9pcs\u0151s referencia\u00e9rt\u00e9kek el\u00e9r\u00e9s\u00e9hez ugyanazt a konfigur\u00e1ci\u00f3s sorrendet kell haszn\u00e1lni, de a fenti tesztnek csak az els\u0151 blokkja a m\u00e1sol\u00e1s \u00e9s beilleszt\u00e9s a console.py ablakba. A Funkci\u00f3k dokumentumban tal\u00e1lhat\u00f3 referenciatesztek el\u0151\u00e1ll\u00edt\u00e1s\u00e1hoz a m\u00e1sodpercenk\u00e9nti l\u00e9p\u00e9sek teljes sz\u00e1m\u00e1t \u00fagy kell kisz\u00e1m\u00edtani, hogy az akt\u00edv l\u00e9ptet\u0151k sz\u00e1m\u00e1t megszorozzuk a n\u00e9vleges MCU frekvenci\u00e1val, \u00e9s elosztjuk a v\u00e9gs\u0151 \"ticks\" param\u00e9terrel. Az eredm\u00e9nyeket a legk\u00f6zelebbi K-ra kerek\u00edtj\u00fck. P\u00e9ld\u00e1ul h\u00e1rom akt\u00edv l\u00e9ptet\u0151vel: ECHO A teszt eredm\u00e9nye: {\"%.0fK\" % (3. * freq / ticks / 1000.)} A referencia\u00e9rt\u00e9keket a TMC vez\u00e9rl\u0151k sz\u00e1m\u00e1ra megfelel\u0151 param\u00e9terekkel futtatjuk. Az olyan mikrovez\u00e9rl\u0151k eset\u00e9ben, amelyek t\u00e1mogatj\u00e1k a STEPPER_BOTH_EDGE=1 (amint azt az MCU config sorban a konzoln\u00e1l console.py els\u0151 ind\u00edt\u00e1sakor) a step_pulse_duration=0 \u00e9s invert_step=-1 haszn\u00e1lat\u00e1val enged\u00e9lyezz\u00fck az optimaliz\u00e1lt l\u00e9p\u00e9st a l\u00e9p\u00e9simpulzus mindk\u00e9t \u00e9l\u00e9re. M\u00e1s mikrovez\u00e9rl\u0151k eset\u00e9ben haszn\u00e1ld a 100ns-nak megfelel\u0151 step_pulse_duration \u00e9rt\u00e9ket. AVR l\u00e9p\u00e9si sebess\u00e9g referencia\u00e9rt\u00e9k \u00b6 Az AVR chipekn\u00e9l a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrend haszn\u00e1latos: allocate_oids count=3 config_stepper oid=0 step_pin=PA5 dir_pin=PA4 invert_step=0 step_pulse_ticks=32 config_stepper oid=1 step_pin=PA3 dir_pin=PA2 invert_step=0 step_pulse_ticks=32 config_stepper oid=2 step_pin=PC7 dir_pin=PC6 invert_step=0 step_pulse_ticks=32 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1son futtattuk, a gcc avr-gcc (GCC) 5.4.0 verzi\u00f3j\u00e1val. Mind a 16Mhz-es, mind a 20Mhz-es teszteket egy atmega644p-re konfigur\u00e1lt simulavr seg\u00edts\u00e9g\u00e9vel futtattuk (kor\u00e1bbi tesztek meger\u0151s\u00edtett\u00e9k, hogy a simulavr eredm\u00e9nyei egyeznek a 16Mhz-es at90usb \u00e9s a 16Mhz-es atmega2560-as tesztekkel). avr tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 102 3 l\u00e9ptet\u0151 486 Arduino Due l\u00e9p\u00e9ssz\u00e1m referencia \u00b6 A k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk a Due-n: allocate_oids count=3 config_stepper oid=0 step_pin=PB27 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB26 dir_pin=PC30 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA21 dir_pin=PC30 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. sam3x8e tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 66 3 l\u00e9ptet\u0151 257 Duet Maestro l\u00e9p\u00e9ssz\u00e1m referencia \u00b6 A Duet Maestro a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1lja: allocate_oids count=3 config_stepper oid=0 step_pin=PC26 dir_pin=PC18 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PC26 dir_pin=PA8 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PC26 dir_pin=PB4 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. sam4s8c tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 71 3 l\u00e9ptet\u0151 260 Duet WiFi l\u00e9p\u00e9ssz\u00e1m referencia \u00b6 A Duet WiFi eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=PD6 dir_pin=PD11 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PD7 dir_pin=PD12 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PD8 dir_pin=PD13 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val gcc 10.3.1 20210621 (release) (GNU Arm Embedded Toolchain 10.3-2021.07) futtatta. sam4e8e tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 48 3 l\u00e9ptet\u0151 215 Beaglebone PRU l\u00e9p\u00e9ssz\u00e1m referencia \u00b6 A PRU-n a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet kell alkalmazni: allocate_oids count=3 config_stepper oid=0 step_pin=gpio0_23 dir_pin=gpio1_12 invert_step=0 step_pulse_ticks=20 config_stepper oid=1 step_pin=gpio1_15 dir_pin=gpio0_26 invert_step=0 step_pulse_ticks=20 config_stepper oid=2 step_pin=gpio0_22 dir_pin=gpio2_1 invert_step=0 step_pulse_ticks=20 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val pru-gcc (GCC) 8.0.0 20170530 (experimental) futtatta. pru tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 231 3 l\u00e9ptet\u0151 847 STM32F042 l\u00e9p\u00e9ssz\u00e1m referencia \u00b6 Az STM32F042-n\u00e9l a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=PA1 dir_pin=PA2 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PA3 dir_pin=PA2 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PB8 dir_pin=PA2 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. stm32f042 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 59 3 l\u00e9ptet\u0151 249 STM32F103 l\u00e9p\u00e9ssz\u00e1m referencia \u00b6 Az STM32F103 eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=PC13 dir_pin=PB5 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB3 dir_pin=PB6 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA4 dir_pin=PB7 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. stm32f103 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 61 3 l\u00e9ptet\u0151 264 STM32F4 l\u00e9p\u00e9ssz\u00e1m referencia \u00b6 Az STM32F4 eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=PA5 dir_pin=PB5 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB2 dir_pin=PB6 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PB3 dir_pin=PB7 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. Az STM32F407-es eredm\u00e9nyeket \u00fagy kaptuk, hogy egy STM32F407-es bin\u00e1ris programot futtattunk egy STM32F446-oson (\u00e9s \u00edgy 168 MHz-es \u00f3rajelet haszn\u00e1ltunk). stm32f446 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 46 3 l\u00e9ptet\u0151 205 stm32f407 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 46 3 l\u00e9ptet\u0151 205 STM32H7 l\u00e9p\u00e9ssz\u00e1m referencia \u00b6 A k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet egy STM32H743VIT6 eset\u00e9ben haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=PD4 dir_pin=PD3 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PA15 dir_pin=PA8 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PE2 dir_pin=PE3 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A teszt utolj\u00e1ra 00191b5c v\u00e9gleges\u00edt\u00e9ssel futott a gcc arm-none-eabi-gcc (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] v\u00e9gleges\u00edt\u00e9ssel. stm32h7 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 44 3 l\u00e9ptet\u0151 198 STM32G0B1 l\u00e9p\u00e9ssz\u00e1m referencia \u00b6 Az STM32G0B1 eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=PB13 dir_pin=PB12 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB10 dir_pin=PB2 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PB0 dir_pin=PC5 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 247cd753 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. stm32g0b1 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 58 3 l\u00e9ptet\u0151 243 LPC176x l\u00e9p\u00e9ssz\u00e1m referencia \u00b6 Az LPC176x eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=P1.20 dir_pin=P1.18 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=P1.21 dir_pin=P1.18 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=P1.23 dir_pin=P1.18 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. A 120Mhz-es LPC1769-es eredm\u00e9nyeket egy LPC1768-as 120Mhz-re val\u00f3 t\u00falhajt\u00e1s\u00e1val kaptuk. lpc1768 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 52 3 l\u00e9ptet\u0151 222 lpc1769 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 51 3 l\u00e9ptet\u0151 222 SAMD21 l\u00e9p\u00e9si sebess\u00e9g referencia \u00b6 A SAMD21 eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet kell alkalmazni: allocate_oids count=3 config_stepper oid=0 step_pin=PA27 dir_pin=PA20 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB3 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA17 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet legut\u00f3bb a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta egy SAMD21G18 mikrokontrollerrel. samd21 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 70 3 l\u00e9ptet\u0151 306 SAMD51 l\u00e9p\u00e9si sebess\u00e9g referencia \u00b6 A SAMD51 eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet kell alkalmazni: allocate_oids count=3 config_stepper oid=0 step_pin=PA22 dir_pin=PA20 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PA22 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA22 dir_pin=PA19 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet legut\u00f3bb a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta egy SAMD51J19A mikrokontrollerrel. samd51 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 39 3 l\u00e9ptet\u0151 191 1 l\u00e9p\u00e9s (200Mhz) 39 3 l\u00e9p\u00e9s (200Mhz) 181 RP2040 l\u00e9ptet\u00e9si referencia \u00b6 Az RP2040 eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet kell alkalmazni: allocate_oids count=3 config_stepper oid=0 step_pin=gpio25 dir_pin=gpio3 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=gpio26 dir_pin=gpio4 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=gpio27 dir_pin=gpio5 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet legut\u00f3bb a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 Raspberry Pi Pico k\u00e1rty\u00e1n futtattuk. rp2040 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 5 3 l\u00e9ptet\u0151 22 Linux MCU l\u00e9p\u00e9ssz\u00e1m referencia \u00b6 A k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet egy Raspberry Pi eset\u00e9ben haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=gpio2 dir_pin=gpio3 invert_step=0 step_pulse_ticks=5 config_stepper oid=1 step_pin=gpio4 dir_pin=gpio5 invert_step=0 step_pulse_ticks=5 config_stepper oid=2 step_pin=gpio6 dir_pin=gpio17 invert_step=0 step_pulse_ticks=5 finalize_config crc=0 A tesztet legut\u00f3bb a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val gcc (Raspbian 8.3.0-6+rpi1) 8.3.0 Raspberry Pi 3-on (revision a02082) futtatt\u00e1k. Ebben a referenciatesztben neh\u00e9z volt stabil eredm\u00e9nyeket el\u00e9rni. Linux (RPi3) tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 160 3 l\u00e9ptet\u0151 380 Parancsk\u00fcld\u00e9si referencia \u00b6 A parancskiad\u00e1si referenciateszt azt teszteli, hogy a mikrokontroller h\u00e1ny \"dummy\" parancsot k\u00e9pes feldolgozni. Ez els\u0151sorban a hardveres kommunik\u00e1ci\u00f3s mechanizmus tesztje. A tesztet a console.py eszk\u00f6zzel futtatjuk (a c\u00edm\u0171 fejezetben le\u00edrtak szerint). Az al\u00e1bbiakat m\u00e1soljuk ki \u00e9s illessz\u00fck be a console.py termin\u00e1lablakba: DELAY {clock + 2*freq} get_uptime FLOOD 100000 0.0 debug_nop get_uptime A teszt befejez\u00e9sekor hat\u00e1rozza meg a k\u00e9t \"\u00fczemid\u0151\" v\u00e1lasz\u00fczenetben jelentett \u00f3r\u00e1k k\u00f6z\u00f6tti k\u00fcl\u00f6nbs\u00e9get. A m\u00e1sodpercenk\u00e9nti parancsok teljes sz\u00e1ma ekkor 100000 * mcu_frequency / clock_diff . Vedd figyelembe, hogy ez a teszt tel\u00edtheti a Raspberry Pi USB/CPU kapacit\u00e1s\u00e1t. Ha Raspberry Pi, Beaglebone vagy hasonl\u00f3 gazdag\u00e9pen fut, akkor n\u00f6velje a k\u00e9sleltet\u00e9st (pl. DELAY {clock + 20*freq} get_uptime ). Ahol alkalmazhat\u00f3, az al\u00e1bbi referenci\u00e1k a console.py futtat\u00e1s\u00e1val k\u00e9sz\u00fcltek egy asztali sz\u00e1m\u00edt\u00f3g\u00e9pen, ahol az eszk\u00f6z egy nagy sebess\u00e9g\u0171 HUB-on kereszt\u00fcl van csatlakoztatva. MCU Ar\u00e1ny Gy\u00e1ri sz\u00e1m Ford\u00edt\u00f3 program stm32f042 (CAN) 18K c105adc8 arm-none-eabi-gcc (GNU Tools 7-2018-q3-update) 7.3.1 atmega2560 (serial) 23K b161a69e avr-gcc (GCC) 4.8.1 sam3x8e (serial) 23K b161a69e arm-none-eabi-gcc (Fedora 7.1.0-5.fc27) 7.1.0 at90usb1286 (USB) 75K 01d2183f avr-gcc (GCC) 5.4.0 samd21 (USB) 223K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 pru (megosztott mem\u00f3ria) 260K c5968a08 pru-gcc (GCC) 8.0.0 20170530 (k\u00eds\u00e9rleti) stm32f103 (USB) 355K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 sam3x8e (USB) 418K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 lpc1768 (USB) 534K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 lpc1769 (USB) 628K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 sam4s8c (USB) 650K 8d4a5c16 arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 samd51 (USB) 864K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 stm32f446 (USB) 870K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 rp2040 (USB) 873K c5667193 arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 Gazdag\u00e9p referencia\u00e9rt\u00e9kei \u00b6 Lehet\u0151s\u00e9g van id\u0151z\u00edt\u00e9si tesztek futtat\u00e1s\u00e1ra a gazdag\u00e9pen a \"batch mode\" feldolgoz\u00e1si mechanizmus haszn\u00e1lat\u00e1val (a c\u00edm\u0171 fejezetben le\u00edrtak szerint). Ez \u00e1ltal\u00e1ban \u00fagy t\u00f6rt\u00e9nik, hogy kiv\u00e1lasztunk egy nagy \u00e9s \u00f6sszetett G-k\u00f3d f\u00e1jlt, \u00e9s megm\u00e9rj\u00fck, hogy mennyi id\u0151 alatt dolgozza fel a gazdaszoftver. P\u00e9ld\u00e1ul: time ~/klippy-env/bin/python ./klippy/klippy.py config/example-cartesian.cfg -i something_complex.gcode -o /dev/null -d out/klipper.dict","title":"Referencia\u00e9rt\u00e9kek"},{"location":"Benchmarks.html#referenciaertekek","text":"Ez a dokumentum a Klipper referencia\u00e9rt\u00e9keit ismerteti.","title":"Referencia\u00e9rt\u00e9kek"},{"location":"Benchmarks.html#mikrokontroller-referenciaertekek","text":"Ez a szakasz ismerteti a Klipper mikrokontroller l\u00e9p\u00e9si sebess\u00e9greferencia l\u00e9trehoz\u00e1s\u00e1ra haszn\u00e1lt mechanizmust. A referenciamutat\u00f3k els\u0151dleges c\u00e9lja, hogy k\u00f6vetkezetes mechanizmust biztos\u00edtsanak a szoftveren bel\u00fcli k\u00f3dol\u00e1si v\u00e1ltoztat\u00e1sok hat\u00e1s\u00e1nak m\u00e9r\u00e9s\u00e9re. M\u00e1sodlagos c\u00e9l, hogy magas szint\u0171 m\u00e9r\u0151sz\u00e1mokat biztos\u00edtson a chipek \u00e9s a szoftverplatformok teljes\u00edtm\u00e9ny\u00e9nek \u00f6sszehasonl\u00edt\u00e1s\u00e1hoz. A l\u00e9p\u00e9ssz\u00e1m-\u00f6sszehasonl\u00edt\u00e1s c\u00e9lja a hardver \u00e9s a szoftver \u00e1ltal el\u00e9rhet\u0151 maxim\u00e1lis l\u00e9p\u00e9ssz\u00e1m meghat\u00e1roz\u00e1sa. Ez az \u00f6sszehasonl\u00edt\u00f3 l\u00e9p\u00e9si sebess\u00e9g a mindennapi haszn\u00e1lat sor\u00e1n nem \u00e9rhet\u0151 el, mivel a Klippernek m\u00e1s feladatokat is el kell l\u00e1tnia (pl. mcu/host kommunik\u00e1ci\u00f3, h\u0151m\u00e9rs\u00e9klet leolvas\u00e1s, v\u00e9g\u00e1ll\u00e1s ellen\u0151rz\u00e9s) minden val\u00f3s haszn\u00e1lat sor\u00e1n. \u00c1ltal\u00e1ban a referencia-tesztekhez haszn\u00e1lt t\u0171ket \u00fagy v\u00e1lasztj\u00e1k ki, hogy LED-eket vagy m\u00e1s \u00e1rtalmatlan eszk\u00f6z\u00f6ket m\u0171k\u00f6dtessen. A referencia futtat\u00e1sa el\u0151tt mindig ellen\u0151rizd, hogy a konfigur\u00e1lt t\u0171k meghajt\u00e1sa biztons\u00e1gos-e. Nem aj\u00e1nlott a t\u00e9nyleges l\u00e9ptet\u0151k haszn\u00e1lata a referencia sor\u00e1n.","title":"Mikrokontroller referencia\u00e9rt\u00e9kek"},{"location":"Benchmarks.html#leptetoaranyos-referenciaertek-teszt","text":"A teszt a console.py eszk\u00f6zzel t\u00f6rt\u00e9nik (a c\u00edm\u0171 fejezetben le\u00edrtak szerint). A mikrokontrollert az adott hardverplatformhoz konfigur\u00e1ljuk (l\u00e1sd al\u00e1bb), majd a k\u00f6vetkez\u0151ket v\u00e1gjuk ki \u00e9s illessz\u00fck be a console.py termin\u00e1lablakba: SET start_clock {clock+freq} SET ticks 1000 reset_step_clock oid=0 clock={start_clock} set_next_step_dir oid=0 dir=0 queue_step oid=0 interval={ticks} count=60000 add=0 set_next_step_dir oid=0 dir=1 queue_step oid=0 interval=3000 count=1 add=0 reset_step_clock oid=1 clock={start_clock} set_next_step_dir oid=1 dir=0 queue_step oid=1 interval={ticks} count=60000 add=0 set_next_step_dir oid=1 dir=1 queue_step oid=1 interval=3000 count=1 add=0 reset_step_clock oid=2 clock={start_clock} set_next_step_dir oid=2 dir=0 queue_step oid=2 interval={ticks} count=60000 add=0 set_next_step_dir oid=2 dir=1 queue_step oid=2 interval=3000 count=1 add=0 A fentiekben h\u00e1rom l\u00e9ptet\u0151 egyidej\u0171 l\u00e9ptet\u00e9s\u00e9t tesztelj\u00fck. Ha a fentiek futtat\u00e1sa egy \"Rescheduled timer in the past\" a \"Stepper too far in pas\" hib\u00e1t eredm\u00e9nyez, akkor ez azt jelzi, hogy a ticks param\u00e9ter t\u00fal alacsony (t\u00fal gyors l\u00e9ptet\u00e9si sebess\u00e9get eredm\u00e9nyez). A c\u00e9l az, hogy megtal\u00e1ljuk a ticks param\u00e9ter legalacsonyabb be\u00e1ll\u00edt\u00e1s\u00e1t, amely megb\u00edzhat\u00f3an eredm\u00e9nyezi a teszt sikeres befejez\u00e9s\u00e9t. A ticks param\u00e9tert addig kell felezni, am\u00edg stabil \u00e9rt\u00e9ket nem tal\u00e1lunk. Sikertelens\u00e9g eset\u00e9n az al\u00e1bbiakat m\u00e1solva \u00e9s beillesztve t\u00f6r\u00f6lheti a hib\u00e1t a k\u00f6vetkez\u0151 tesztre val\u00f3 felk\u00e9sz\u00fcl\u00e9shez: clear_shutdown Az egyl\u00e9pcs\u0151s referencia\u00e9rt\u00e9kek el\u00e9r\u00e9s\u00e9hez ugyanazt a konfigur\u00e1ci\u00f3s sorrendet kell haszn\u00e1lni, de a fenti tesztnek csak az els\u0151 blokkja a m\u00e1sol\u00e1s \u00e9s beilleszt\u00e9s a console.py ablakba. A Funkci\u00f3k dokumentumban tal\u00e1lhat\u00f3 referenciatesztek el\u0151\u00e1ll\u00edt\u00e1s\u00e1hoz a m\u00e1sodpercenk\u00e9nti l\u00e9p\u00e9sek teljes sz\u00e1m\u00e1t \u00fagy kell kisz\u00e1m\u00edtani, hogy az akt\u00edv l\u00e9ptet\u0151k sz\u00e1m\u00e1t megszorozzuk a n\u00e9vleges MCU frekvenci\u00e1val, \u00e9s elosztjuk a v\u00e9gs\u0151 \"ticks\" param\u00e9terrel. Az eredm\u00e9nyeket a legk\u00f6zelebbi K-ra kerek\u00edtj\u00fck. P\u00e9ld\u00e1ul h\u00e1rom akt\u00edv l\u00e9ptet\u0151vel: ECHO A teszt eredm\u00e9nye: {\"%.0fK\" % (3. * freq / ticks / 1000.)} A referencia\u00e9rt\u00e9keket a TMC vez\u00e9rl\u0151k sz\u00e1m\u00e1ra megfelel\u0151 param\u00e9terekkel futtatjuk. Az olyan mikrovez\u00e9rl\u0151k eset\u00e9ben, amelyek t\u00e1mogatj\u00e1k a STEPPER_BOTH_EDGE=1 (amint azt az MCU config sorban a konzoln\u00e1l console.py els\u0151 ind\u00edt\u00e1sakor) a step_pulse_duration=0 \u00e9s invert_step=-1 haszn\u00e1lat\u00e1val enged\u00e9lyezz\u00fck az optimaliz\u00e1lt l\u00e9p\u00e9st a l\u00e9p\u00e9simpulzus mindk\u00e9t \u00e9l\u00e9re. M\u00e1s mikrovez\u00e9rl\u0151k eset\u00e9ben haszn\u00e1ld a 100ns-nak megfelel\u0151 step_pulse_duration \u00e9rt\u00e9ket.","title":"L\u00e9ptet\u0151ar\u00e1nyos referencia\u00e9rt\u00e9k teszt"},{"location":"Benchmarks.html#avr-lepesi-sebesseg-referenciaertek","text":"Az AVR chipekn\u00e9l a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrend haszn\u00e1latos: allocate_oids count=3 config_stepper oid=0 step_pin=PA5 dir_pin=PA4 invert_step=0 step_pulse_ticks=32 config_stepper oid=1 step_pin=PA3 dir_pin=PA2 invert_step=0 step_pulse_ticks=32 config_stepper oid=2 step_pin=PC7 dir_pin=PC6 invert_step=0 step_pulse_ticks=32 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1son futtattuk, a gcc avr-gcc (GCC) 5.4.0 verzi\u00f3j\u00e1val. Mind a 16Mhz-es, mind a 20Mhz-es teszteket egy atmega644p-re konfigur\u00e1lt simulavr seg\u00edts\u00e9g\u00e9vel futtattuk (kor\u00e1bbi tesztek meger\u0151s\u00edtett\u00e9k, hogy a simulavr eredm\u00e9nyei egyeznek a 16Mhz-es at90usb \u00e9s a 16Mhz-es atmega2560-as tesztekkel). avr tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 102 3 l\u00e9ptet\u0151 486","title":"AVR l\u00e9p\u00e9si sebess\u00e9g referencia\u00e9rt\u00e9k"},{"location":"Benchmarks.html#arduino-due-lepesszam-referencia","text":"A k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk a Due-n: allocate_oids count=3 config_stepper oid=0 step_pin=PB27 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB26 dir_pin=PC30 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA21 dir_pin=PC30 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. sam3x8e tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 66 3 l\u00e9ptet\u0151 257","title":"Arduino Due l\u00e9p\u00e9ssz\u00e1m referencia"},{"location":"Benchmarks.html#duet-maestro-lepesszam-referencia","text":"A Duet Maestro a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1lja: allocate_oids count=3 config_stepper oid=0 step_pin=PC26 dir_pin=PC18 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PC26 dir_pin=PA8 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PC26 dir_pin=PB4 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. sam4s8c tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 71 3 l\u00e9ptet\u0151 260","title":"Duet Maestro l\u00e9p\u00e9ssz\u00e1m referencia"},{"location":"Benchmarks.html#duet-wifi-lepesszam-referencia","text":"A Duet WiFi eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=PD6 dir_pin=PD11 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PD7 dir_pin=PD12 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PD8 dir_pin=PD13 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val gcc 10.3.1 20210621 (release) (GNU Arm Embedded Toolchain 10.3-2021.07) futtatta. sam4e8e tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 48 3 l\u00e9ptet\u0151 215","title":"Duet WiFi l\u00e9p\u00e9ssz\u00e1m referencia"},{"location":"Benchmarks.html#beaglebone-pru-lepesszam-referencia","text":"A PRU-n a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet kell alkalmazni: allocate_oids count=3 config_stepper oid=0 step_pin=gpio0_23 dir_pin=gpio1_12 invert_step=0 step_pulse_ticks=20 config_stepper oid=1 step_pin=gpio1_15 dir_pin=gpio0_26 invert_step=0 step_pulse_ticks=20 config_stepper oid=2 step_pin=gpio0_22 dir_pin=gpio2_1 invert_step=0 step_pulse_ticks=20 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val pru-gcc (GCC) 8.0.0 20170530 (experimental) futtatta. pru tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 231 3 l\u00e9ptet\u0151 847","title":"Beaglebone PRU l\u00e9p\u00e9ssz\u00e1m referencia"},{"location":"Benchmarks.html#stm32f042-lepesszam-referencia","text":"Az STM32F042-n\u00e9l a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=PA1 dir_pin=PA2 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PA3 dir_pin=PA2 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PB8 dir_pin=PA2 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. stm32f042 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 59 3 l\u00e9ptet\u0151 249","title":"STM32F042 l\u00e9p\u00e9ssz\u00e1m referencia"},{"location":"Benchmarks.html#stm32f103-lepesszam-referencia","text":"Az STM32F103 eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=PC13 dir_pin=PB5 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB3 dir_pin=PB6 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA4 dir_pin=PB7 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. stm32f103 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 61 3 l\u00e9ptet\u0151 264","title":"STM32F103 l\u00e9p\u00e9ssz\u00e1m referencia"},{"location":"Benchmarks.html#stm32f4-lepesszam-referencia","text":"Az STM32F4 eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=PA5 dir_pin=PB5 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB2 dir_pin=PB6 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PB3 dir_pin=PB7 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. Az STM32F407-es eredm\u00e9nyeket \u00fagy kaptuk, hogy egy STM32F407-es bin\u00e1ris programot futtattunk egy STM32F446-oson (\u00e9s \u00edgy 168 MHz-es \u00f3rajelet haszn\u00e1ltunk). stm32f446 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 46 3 l\u00e9ptet\u0151 205 stm32f407 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 46 3 l\u00e9ptet\u0151 205","title":"STM32F4 l\u00e9p\u00e9ssz\u00e1m referencia"},{"location":"Benchmarks.html#stm32h7-lepesszam-referencia","text":"A k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet egy STM32H743VIT6 eset\u00e9ben haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=PD4 dir_pin=PD3 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PA15 dir_pin=PA8 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PE2 dir_pin=PE3 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A teszt utolj\u00e1ra 00191b5c v\u00e9gleges\u00edt\u00e9ssel futott a gcc arm-none-eabi-gcc (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] v\u00e9gleges\u00edt\u00e9ssel. stm32h7 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 44 3 l\u00e9ptet\u0151 198","title":"STM32H7 l\u00e9p\u00e9ssz\u00e1m referencia"},{"location":"Benchmarks.html#stm32g0b1-lepesszam-referencia","text":"Az STM32G0B1 eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=PB13 dir_pin=PB12 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB10 dir_pin=PB2 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PB0 dir_pin=PC5 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 247cd753 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. stm32g0b1 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 58 3 l\u00e9ptet\u0151 243","title":"STM32G0B1 l\u00e9p\u00e9ssz\u00e1m referencia"},{"location":"Benchmarks.html#lpc176x-lepesszam-referencia","text":"Az LPC176x eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=P1.20 dir_pin=P1.18 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=P1.21 dir_pin=P1.18 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=P1.23 dir_pin=P1.18 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet utolj\u00e1ra a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta. A 120Mhz-es LPC1769-es eredm\u00e9nyeket egy LPC1768-as 120Mhz-re val\u00f3 t\u00falhajt\u00e1s\u00e1val kaptuk. lpc1768 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 52 3 l\u00e9ptet\u0151 222 lpc1769 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 51 3 l\u00e9ptet\u0151 222","title":"LPC176x l\u00e9p\u00e9ssz\u00e1m referencia"},{"location":"Benchmarks.html#samd21-lepesi-sebesseg-referencia","text":"A SAMD21 eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet kell alkalmazni: allocate_oids count=3 config_stepper oid=0 step_pin=PA27 dir_pin=PA20 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB3 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA17 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet legut\u00f3bb a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta egy SAMD21G18 mikrokontrollerrel. samd21 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 70 3 l\u00e9ptet\u0151 306","title":"SAMD21 l\u00e9p\u00e9si sebess\u00e9g referencia"},{"location":"Benchmarks.html#samd51-lepesi-sebesseg-referencia","text":"A SAMD51 eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet kell alkalmazni: allocate_oids count=3 config_stepper oid=0 step_pin=PA22 dir_pin=PA20 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PA22 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA22 dir_pin=PA19 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet legut\u00f3bb a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 futtatta egy SAMD51J19A mikrokontrollerrel. samd51 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 39 3 l\u00e9ptet\u0151 191 1 l\u00e9p\u00e9s (200Mhz) 39 3 l\u00e9p\u00e9s (200Mhz) 181","title":"SAMD51 l\u00e9p\u00e9si sebess\u00e9g referencia"},{"location":"Benchmarks.html#rp2040-leptetesi-referencia","text":"Az RP2040 eset\u00e9ben a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet kell alkalmazni: allocate_oids count=3 config_stepper oid=0 step_pin=gpio25 dir_pin=gpio3 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=gpio26 dir_pin=gpio4 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=gpio27 dir_pin=gpio5 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 A tesztet legut\u00f3bb a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 Raspberry Pi Pico k\u00e1rty\u00e1n futtattuk. rp2040 tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 5 3 l\u00e9ptet\u0151 22","title":"RP2040 l\u00e9ptet\u00e9si referencia"},{"location":"Benchmarks.html#linux-mcu-lepesszam-referencia","text":"A k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3s sorrendet egy Raspberry Pi eset\u00e9ben haszn\u00e1ljuk: allocate_oids count=3 config_stepper oid=0 step_pin=gpio2 dir_pin=gpio3 invert_step=0 step_pulse_ticks=5 config_stepper oid=1 step_pin=gpio4 dir_pin=gpio5 invert_step=0 step_pulse_ticks=5 config_stepper oid=2 step_pin=gpio6 dir_pin=gpio17 invert_step=0 step_pulse_ticks=5 finalize_config crc=0 A tesztet legut\u00f3bb a 59314d99 megb\u00edz\u00e1si gcc verzi\u00f3val gcc (Raspbian 8.3.0-6+rpi1) 8.3.0 Raspberry Pi 3-on (revision a02082) futtatt\u00e1k. Ebben a referenciatesztben neh\u00e9z volt stabil eredm\u00e9nyeket el\u00e9rni. Linux (RPi3) tr\u00fckk\u00f6k 1 l\u00e9ptet\u0151 160 3 l\u00e9ptet\u0151 380","title":"Linux MCU l\u00e9p\u00e9ssz\u00e1m referencia"},{"location":"Benchmarks.html#parancskuldesi-referencia","text":"A parancskiad\u00e1si referenciateszt azt teszteli, hogy a mikrokontroller h\u00e1ny \"dummy\" parancsot k\u00e9pes feldolgozni. Ez els\u0151sorban a hardveres kommunik\u00e1ci\u00f3s mechanizmus tesztje. A tesztet a console.py eszk\u00f6zzel futtatjuk (a c\u00edm\u0171 fejezetben le\u00edrtak szerint). Az al\u00e1bbiakat m\u00e1soljuk ki \u00e9s illessz\u00fck be a console.py termin\u00e1lablakba: DELAY {clock + 2*freq} get_uptime FLOOD 100000 0.0 debug_nop get_uptime A teszt befejez\u00e9sekor hat\u00e1rozza meg a k\u00e9t \"\u00fczemid\u0151\" v\u00e1lasz\u00fczenetben jelentett \u00f3r\u00e1k k\u00f6z\u00f6tti k\u00fcl\u00f6nbs\u00e9get. A m\u00e1sodpercenk\u00e9nti parancsok teljes sz\u00e1ma ekkor 100000 * mcu_frequency / clock_diff . Vedd figyelembe, hogy ez a teszt tel\u00edtheti a Raspberry Pi USB/CPU kapacit\u00e1s\u00e1t. Ha Raspberry Pi, Beaglebone vagy hasonl\u00f3 gazdag\u00e9pen fut, akkor n\u00f6velje a k\u00e9sleltet\u00e9st (pl. DELAY {clock + 20*freq} get_uptime ). Ahol alkalmazhat\u00f3, az al\u00e1bbi referenci\u00e1k a console.py futtat\u00e1s\u00e1val k\u00e9sz\u00fcltek egy asztali sz\u00e1m\u00edt\u00f3g\u00e9pen, ahol az eszk\u00f6z egy nagy sebess\u00e9g\u0171 HUB-on kereszt\u00fcl van csatlakoztatva. MCU Ar\u00e1ny Gy\u00e1ri sz\u00e1m Ford\u00edt\u00f3 program stm32f042 (CAN) 18K c105adc8 arm-none-eabi-gcc (GNU Tools 7-2018-q3-update) 7.3.1 atmega2560 (serial) 23K b161a69e avr-gcc (GCC) 4.8.1 sam3x8e (serial) 23K b161a69e arm-none-eabi-gcc (Fedora 7.1.0-5.fc27) 7.1.0 at90usb1286 (USB) 75K 01d2183f avr-gcc (GCC) 5.4.0 samd21 (USB) 223K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 pru (megosztott mem\u00f3ria) 260K c5968a08 pru-gcc (GCC) 8.0.0 20170530 (k\u00eds\u00e9rleti) stm32f103 (USB) 355K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 sam3x8e (USB) 418K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 lpc1768 (USB) 534K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 lpc1769 (USB) 628K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 sam4s8c (USB) 650K 8d4a5c16 arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 samd51 (USB) 864K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 stm32f446 (USB) 870K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 rp2040 (USB) 873K c5667193 arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0","title":"Parancsk\u00fcld\u00e9si referencia"},{"location":"Benchmarks.html#gazdagep-referenciaertekei","text":"Lehet\u0151s\u00e9g van id\u0151z\u00edt\u00e9si tesztek futtat\u00e1s\u00e1ra a gazdag\u00e9pen a \"batch mode\" feldolgoz\u00e1si mechanizmus haszn\u00e1lat\u00e1val (a c\u00edm\u0171 fejezetben le\u00edrtak szerint). Ez \u00e1ltal\u00e1ban \u00fagy t\u00f6rt\u00e9nik, hogy kiv\u00e1lasztunk egy nagy \u00e9s \u00f6sszetett G-k\u00f3d f\u00e1jlt, \u00e9s megm\u00e9rj\u00fck, hogy mennyi id\u0151 alatt dolgozza fel a gazdaszoftver. P\u00e9ld\u00e1ul: time ~/klippy-env/bin/python ./klippy/klippy.py config/example-cartesian.cfg -i something_complex.gcode -o /dev/null -d out/klipper.dict","title":"Gazdag\u00e9p referencia\u00e9rt\u00e9kei"},{"location":"Bootloaders.html","text":"Bootloaderek \u00b6 Ez a dokumentum a Klipper \u00e1ltal t\u00e1mogatott mikrovez\u00e9rl\u0151k\u00f6n tal\u00e1lhat\u00f3 gyakori bootloaderekkel kapcsolatos inform\u00e1ci\u00f3kat tartalmazza. A bootloader egy harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 szoftver, amely a mikrovez\u00e9rl\u0151n fut, amikor az el\u0151sz\u00f6r bekapcsol. \u00c1ltal\u00e1ban egy \u00faj alkalmaz\u00e1s (pl. Klipper) \u00e9get\u00e9s\u00e9re haszn\u00e1lj\u00e1k a mikrokontrollerre an\u00e9lk\u00fcl, hogy speci\u00e1lis hardverre lenne sz\u00fcks\u00e9g. Sajnos a mikrokontrollerek \u00e9get\u00e9s\u00e9re nincs ipar\u00e1gi szabv\u00e1ny, \u00e9s nincs olyan szabv\u00e1nyos bootloader sem, amely minden mikrokontrolleren m\u0171k\u00f6dik. Ami m\u00e9g rosszabb, hogy minden egyes bootloader m\u00e1s \u00e9s m\u00e1s l\u00e9p\u00e9seket ig\u00e9nyel az alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez. Ha egy mikrokontrollerre tudunk bootloadert \u00e9getni, akkor \u00e1ltal\u00e1ban ezt a mechanizmust haszn\u00e1lhatjuk egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9re is, de \u00f3vatosan kell elj\u00e1rni, mert v\u00e9letlen\u00fcl elt\u00e1vol\u00edthatjuk a bootloadert. Ezzel szemben a bootloader \u00e1ltal\u00e1ban csak egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9t teszi lehet\u0151v\u00e9. Ez\u00e9rt aj\u00e1nlott, ha lehets\u00e9ges, bootloadert haszn\u00e1lni egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9re. Ez a dokumentum megpr\u00f3b\u00e1lja le\u00edrni a gyakori bootloadereket, a bootloader \u00e9get\u00e9s\u00e9hez sz\u00fcks\u00e9ges l\u00e9p\u00e9seket \u00e9s az alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez sz\u00fcks\u00e9ges l\u00e9p\u00e9seket. Ez a dokumentum nem tekint\u00e9lyes hivatkoz\u00e1s. A Klipper fejleszt\u0151i \u00e1ltal \u00f6sszegy\u0171jt\u00f6tt hasznos inform\u00e1ci\u00f3k gy\u0171jtem\u00e9ny\u00e9nek sz\u00e1njuk. AVR mikrovez\u00e9rl\u0151k \u00b6 \u00c1ltal\u00e1noss\u00e1gban az Arduino projekt j\u00f3 referencia a 8 bites Atmel Atmega mikrovez\u00e9rl\u0151k bootloadereir\u0151l \u00e9s a \u00e9get\u00e9si elj\u00e1r\u00e1sokr\u00f3l. K\u00fcl\u00f6n\u00f6sen a \"boards.txt\" f\u00e1jl: https://github.com/arduino/Arduino/blob/1.8.5/hardware/arduino/avr/boards.txt hasznos referencia. A bootloader \u00e9get\u00e9s\u00e9hez az AVR chipekhez k\u00fcls\u0151 hardveres \u00e9get\u0151 eszk\u00f6zre van sz\u00fcks\u00e9g (amely SPI seg\u00edts\u00e9g\u00e9vel kommunik\u00e1l a chippel). Ez az eszk\u00f6z megv\u00e1s\u00e1rolhat\u00f3 (p\u00e9ld\u00e1ul keressen r\u00e1 az interneten az \"avr isp\", \"arduino isp\" vagy \"usb tiny isp\" szavakra). Az is lehets\u00e9ges, hogy egy m\u00e1sik Arduino vagy Raspberry Pi seg\u00edts\u00e9g\u00e9vel \u00e9gess egy AVR bootloadert (p\u00e9ld\u00e1ul keressen r\u00e1 az interneten a \"program an avr using raspberry pi\" kifejez\u00e9sre). Az al\u00e1bbi p\u00e9ld\u00e1kat egy \"AVR ISP Mk2\" t\u00edpus\u00fa eszk\u00f6z haszn\u00e1lat\u00e1t felt\u00e9telezve \u00edrtuk. Az \"avrdude\" program a leggyakrabban haszn\u00e1lt eszk\u00f6z az atmega chipek \u00e9get\u00e9s\u00e9re (mind a bootloader, mind az alkalmaz\u00e1sok \u00e9get\u00e9s\u00e9re). Atmega2560 \u00b6 Ez a chip jellemz\u0151en az \"Arduino Mega\" chipben tal\u00e1lhat\u00f3, \u00e9s nagyon gyakori a 3D nyomtat\u00f3 lapokban. Mag\u00e1nak a bootloadernek az \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: wget 'https://github.com/arduino/Arduino/raw/1.8.5/hardware/arduino/avr/bootloaders/stk500v2/stk500boot_v2_mega2560.hex' avrdude -cavrispv2 -patmega2560 -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0xFD:m -U hfuse:w:0xD8:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega2560 -P/dev/ttyACM0 -b115200 -U flash:w:stk500boot_v2_mega2560.hex avrdude -cavrispv2 -patmega2560 -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: avrdude -cwiring -patmega2560 -P/dev/ttyACM0 -b115200 -D -Uflash:w:out/klipper.elf.hex:i Atmega1280 \u00b6 Ez a chip jellemz\u0151en az \"Arduino Mega\" kor\u00e1bbi verzi\u00f3iban tal\u00e1lhat\u00f3. Mag\u00e1nak a bootloadernek az \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: wget 'https://github.com/arduino/Arduino/raw/1.8.5/hardware/arduino/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1280.hex' avrdude -cavrispv2 -patmega1280 -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0xF5:m -U hfuse:w:0xDA:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega1280 -P/dev/ttyACM0 -b115200 -U flash:w:ATmegaBOOT_168_atmega1280.hex avrdude -cavrispv2 -patmega1280 -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: avrdude -carduino -patmega1280 -P/dev/ttyACM0 -b57600 -D -Uflash:w:out/klipper.elf.hex:i Atmega1284p \u00b6 Ez a chip gyakran megtal\u00e1lhat\u00f3 a \"Melzi\" st\u00edlus\u00fa 3D nyomtat\u00f3 alaplapokban. Mag\u00e1nak a bootloadernek az \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: wget 'https://github.com/Lauszus/Sanguino/raw/1.0.2/bootloaders/optiboot/optiboot_atmega1284p.hex' avrdude -cavrispv2 -patmega1284p -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0xFD:m -U hfuse:w:0xDE:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega1284p -P/dev/ttyACM0 -b115200 -U flash:w:optiboot_atmega1284p.hex avrdude -cavrispv2 -patmega1284p -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: avrdude -carduino -patmega1284p -P/dev/ttyACM0 -b115200 -D -Uflash:w:out/klipper.elf.hex:i Megjegyzend\u0151, hogy sz\u00e1mos \"Melzi\" st\u00edlus\u00fa alaplap el\u0151re bet\u00f6lt\u00f6tt bootloaderrel \u00e9rkezik, amely 57600-as \u00e1tviteli sebess\u00e9g haszn\u00e1lat\u00e1val m\u0171k\u00f6dik. Ebben az esetben egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj helyette valami ilyesmit: avrdude -carduino -patmega1284p -P/dev/ttyACM0 -b57600 -D -Uflash:w:out/klipper.elf.hex:i At90usb1286 \u00b6 Ez a dokumentum nem foglalkozik az At90usb1286 bootloader \u00e9get\u00e9si m\u00f3dszer\u00e9vel, \u00e9s nem foglalkozik az \u00e1ltal\u00e1nos alkalmaz\u00e1s \u00e9get\u00e9s\u00e9vel sem. A pjrc.com Teensy++ eszk\u00f6ze saj\u00e1t bootloaderrel rendelkezik. Ehhez egy egyedi \u00e9get\u0151 eszk\u00f6zre van sz\u00fcks\u00e9g a https://github.com/PaulStoffregen/teensy_loader_cli oldalr\u00f3l. Egy alkalmaz\u00e1st lehet vele \u00e9getni valami ilyesmivel: teensy_loader_cli --mcu=at90usb1286 out/klipper.elf.hex -v Atmega168 \u00b6 Az atmega168 korl\u00e1tozott flash-t\u00e1rhellyel rendelkezik. Ha bootloadert haszn\u00e1l, aj\u00e1nlott az Optiboot bootloadert haszn\u00e1lni. A bootloader \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami hasonl\u00f3t: wget 'https://github.com/arduino/Arduino/raw/1.8.5/hardware/arduino/avr/bootloaders/optiboot/optiboot_atmega168.hex' avrdude -cavrispv2 -patmega168 -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0x04:m -U hfuse:w:0xDD:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega168 -P/dev/ttyACM0 -b115200 -U flash:w:optiboot_atmega168.hex avrdude -cavrispv2 -patmega168 -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Az Optiboot bootloaderrel t\u00f6rt\u00e9n\u0151 alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami hasonl\u00f3t: avrdude -carduino -patmega168 -P/dev/ttyACM0 -b115200 -D -Uflash:w:out/klipper.elf.hex:i SAM3 mikrovez\u00e9rl\u0151k (Arduino Due) \u00b6 A SAM3 MCU-val nem szok\u00e1s bootloadert haszn\u00e1lni. Maga a chip rendelkezik egy ROM-mal, amely lehet\u0151v\u00e9 teszi a flash programoz\u00e1s\u00e1t 3,3V-os soros portr\u00f3l vagy USB-r\u0151l. A ROM enged\u00e9lyez\u00e9s\u00e9hez az \"erase\" csapot magasan kell tartani a vissza\u00e1ll\u00edt\u00e1s sor\u00e1n, ami t\u00f6rli a flash tartalm\u00e1t, \u00e9s a ROM-ot elind\u00edtja. Egy Arduino Due-n ez a szekvencia \u00fagy val\u00f3s\u00edthat\u00f3 meg, hogy a \"programoz\u00f3 usb port\" (a t\u00e1pegys\u00e9ghez legk\u00f6zelebbi USB port) 1200-as baud sebess\u00e9get \u00e1ll\u00edt be. A https://github.com/shumatech/BOSSA alatti k\u00f3d haszn\u00e1lhat\u00f3 a SAM3 programoz\u00e1s\u00e1hoz. Az 1.9-es vagy \u00fajabb verzi\u00f3 haszn\u00e1lata aj\u00e1nlott. Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: bossac -U -p /dev/ttyACM0 -a -e -w out/klipper.bin -v -b bossac -U -p /dev/ttyACM0 -R SAM4 mikrovez\u00e9rl\u0151k (Duet Wifi) \u00b6 A SAM4 MCU-val nem szok\u00e1s bootloadert haszn\u00e1lni. Maga a chip rendelkezik egy ROM-mal, amely lehet\u0151v\u00e9 teszi a flash programoz\u00e1s\u00e1t 3,3V-os soros portr\u00f3l vagy USB-r\u0151l. A ROM enged\u00e9lyez\u00e9s\u00e9hez az \"erase\" csapot magasan kell tartani a vissza\u00e1ll\u00edt\u00e1s sor\u00e1n, ami t\u00f6rli a flash tartalm\u00e1t, \u00e9s a ROM-ot elind\u00edtja. A https://github.com/shumatech/BOSSA k\u00f3d haszn\u00e1lhat\u00f3 a SAM4 programoz\u00e1s\u00e1hoz. Sz\u00fcks\u00e9ges az 1.8.0 vagy magasabb verzi\u00f3 haszn\u00e1lata. Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: bossac --port=/dev/ttyACM0 -b -U -e -w -v -R out/klipper.bin SAMD21 mikrovez\u00e9rl\u0151k (Arduino Zero) \u00b6 A SAMD21 bootloader az ARM Serial Wire Debug (SWD) interf\u00e9szen kereszt\u00fcl t\u00f6lt\u0151dik fel. Ez \u00e1ltal\u00e1ban egy dedik\u00e1lt SWD hardver dongle seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nik. Alternat\u00edvak\u00e9nt haszn\u00e1lhatunk egy OpenOCD futtat\u00e1st a Raspberry PI-n . A bootloader OpenOCD-vel t\u00f6rt\u00e9n\u0151 \u00e9get\u00e9s\u00e9hez haszn\u00e1ld a k\u00f6vetkez\u0151 chipkonfigur\u00e1ci\u00f3t: forr\u00e1s [find target/at91samdXX.cfg] Szerezz be egy bootloadert - p\u00e9ld\u00e1ul: wget 'https://github.com/arduino/ArduinoCore-samd/raw/1.8.3/bootloaders/zero/samd21_sam_ba.bin' \u00c9get\u00e9s az OpenOCD parancsokhoz hasonl\u00f3 parancsokkal: at91samd bootloader 0 program samd21_sam_ba.bin verify A SAMD21 leggyakoribb bootloadere az \"Arduino Zero\" -ban tal\u00e1lhat\u00f3. Ez egy 8KiB-es bootloadert haszn\u00e1l (az alkalmaz\u00e1st 8KiB kezd\u0151c\u00edmmel kell leford\u00edtani). Ebbe a bootloaderbe a reset gombra val\u00f3 dupla kattint\u00e1ssal lehet bel\u00e9pni. Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami hasonl\u00f3t: bossac -U -p /dev/ttyACM0 --offset=0x2000 -w out/klipper.bin -v -b -R Ezzel szemben az \"Arduino M0\" 16KiB bootloadert haszn\u00e1l (az alkalmaz\u00e1st 16KiB kezd\u0151c\u00edmmel kell leford\u00edtani). Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez ezen a bootloaderen, \u00e1ll\u00edtsd vissza a mikrokontrollert, \u00e9s futtassa a flash parancsot a bootol\u00e1s els\u0151 n\u00e9h\u00e1ny m\u00e1sodperc\u00e9ben. Valami ilyesmi: avrdude -c stk500v2 -p atmega2560 -P /dev/ttyACM0 -u -Uflash:w:out/klipper.elf.hex:i SAMD51 mikrovez\u00e9rl\u0151k (Adafruit Metro-M4 \u00e9s hasonl\u00f3) \u00b6 A SAMD21-hez hasonl\u00f3an a SAMD51 bootloader is az ARM Serial Wire Debug (SWD) interf\u00e9szen kereszt\u00fcl t\u00f6lt\u0151dik fel. Az OpenOCD futtat\u00e1sa a Raspberry PI-n bootloader \u00e9get\u00e9s\u00e9hez haszn\u00e1ld a k\u00f6vetkez\u0151 chipkonfigur\u00e1ci\u00f3t: forr\u00e1s [find target/atsame5x.cfg] Szerezz be egy bootloadert. Sz\u00e1mos bootloader el\u00e9rhet\u0151 a https://github.com/adafruit/uf2-samdx1/releases/latest oldalon. P\u00e9ld\u00e1ul: wget 'https://github.com/adafruit/uf2-samdx1/releases/download/v3.7.0/bootloader-itsybitsy_m4-v3.7.0.bin' \u00c9get\u00e9s az OpenOCD parancsokhoz hasonl\u00f3 parancsokkal: at91samd bootloader 0 program bootloader-itsybitsy_m4-v3.7.0.bin verify at91samd bootloader 16384 A SAMD51 16KiB-es bootloadert haszn\u00e1l (az alkalmaz\u00e1st 16KiB kezd\u0151c\u00edmmel kell leford\u00edtani). Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami hasonl\u00f3t: bossac -U -p /dev/ttyACM0 --offset=0x4000 -w out/klipper.bin -v -b -R STM32F103 mikrovez\u00e9rl\u0151k (Blue Pill eszk\u00f6z\u00f6k) \u00b6 Az STM32F103 eszk\u00f6z\u00f6k rendelkeznek egy ROM-mal, amely 3,3 V-os soros kapcsolaton kereszt\u00fcl k\u00e9pes bootloadert vagy alkalmaz\u00e1st \u00e9getni. \u00c1ltal\u00e1ban a PA10 (MCU Rx) \u00e9s PA9 (MCU Tx) t\u0171ket egy 3,3V-os UART adapterhez kell csatlakoztatni. A ROM el\u00e9r\u00e9s\u00e9hez a \"boot 0\" t\u0171t magasra, a \"boot 1\" t\u0171t pedig alacsonyra kell kapcsolni, majd vissza kell \u00e1ll\u00edtani az eszk\u00f6zt. Az \"stm32flash\" csomagot ezut\u00e1n haszn\u00e1lhatjuk az eszk\u00f6z \u00e9get\u00e9s\u00e9re, p\u00e9ld\u00e1ul a k\u00f6vetkez\u0151kkel: stm32flash -w out/klipper.bin -v -g 0 /dev/ttyAMA0 Vedd figyelembe, hogy ha Raspberry Pi-t haszn\u00e1l a 3,3V-os soros kapcsolathoz, az stm32flash protokoll olyan soros parit\u00e1sm\u00f3dot haszn\u00e1l, amelyet a Raspberry Pi \"mini UART\" nem t\u00e1mogat. L\u00e1sd https://www.raspberrypi.com/documentation/computers/configuration.html#configuring-uarts a teljes uart enged\u00e9lyez\u00e9s\u00e9r\u0151l a Raspberry Pi GPIO t\u0171in. Az \u00e9get\u00e9s ut\u00e1n \u00e1ll\u00edtsd vissza a \"boot 0\" \u00e9s a \"boot 1\" \u00e9rt\u00e9ket alacsonyra, hogy a j\u00f6v\u0151ben az \u00e9get\u00e9sr\u0151l indul\u00f3 rendszer \u00fajrainduljon. STM32F103 stm32duino bootloaderrel \u00b6 Az \"stm32duino\" projekt rendelkezik USB-k\u00e9pes bootloaderrel. L\u00e1sd: https://github.com/rogerclarkmelbourne/STM32duino-bootloader Ez a bootloader 3,3V-os soros kapcsolaton kereszt\u00fcl \u00e9gethet\u0151 valami hasonl\u00f3val: wget 'https://github.com/rogerclarkmelbourne/STM32duino-bootloader/raw/master/binaries/generic_boot20_pc13.bin' stm32flash -w generic_boot20_pc13.bin -v -g 0 /dev/ttyAMA0 Ez a bootloader 8KiB-es flash mem\u00f3ri\u00e1t haszn\u00e1l (az alkalmaz\u00e1st 8KiB kezd\u0151c\u00edmmel kell leford\u00edtani). \u00c9gess egy alkalmaz\u00e1st valami ilyesmivel: dfu-util -d 1eaf:0003 -a 2 -R -D out/klipper.bin A bootloader \u00e1ltal\u00e1ban csak r\u00f6vid ideig fut a rendszerind\u00edt\u00e1s ut\u00e1n. Sz\u00fcks\u00e9g lehet arra, hogy a fenti parancsot \u00fagy id\u0151z\u00edts\u00fck, hogy az akkor fusson le, amikor a bootloader m\u00e9g akt\u00edv (a bootloader \u00fczem k\u00f6zben villogtat egy a lapon l\u00e9v\u0151 ledet). Alternat\u00edv megold\u00e1sk\u00e9nt a \"boot 0\" csapot \u00e1ll\u00edtsd alacsonyra, a \"boot 1\" csapot pedig magasra, hogy a bootloaderben maradj a reset ut\u00e1n. STM32F103 HID bootloaderrel \u00b6 A HID bootloader egy kompakt, driver n\u00e9lk\u00fcli bootloader, amely k\u00e9pes USB-n kereszt\u00fcl \u00e9getni. Szint\u00e9n el\u00e9rhet\u0151 egy fork az SKR Mini E3 1.2 specifikus buildekkel . Az \u00e1ltal\u00e1nos STM32F103 alaplapok, mint p\u00e9ld\u00e1ul a blue pill eset\u00e9ben a bootloader 3,3V-os soros \u00e9get\u00e9se lehets\u00e9ges az stm32flash haszn\u00e1lat\u00e1val, amint azt a fenti stm32duino szakaszban eml\u00edtett\u00fck, a k\u00edv\u00e1nt hid bootloader bin\u00e1ris f\u00e1jlnev\u00e9nek behelyettes\u00edt\u00e9s\u00e9vel (azaz: hid_generic_pc13.bin a blue pillhez). Az SKR Mini E3 eset\u00e9ben nem lehet stm32flash-t haszn\u00e1lni, mivel a boot0 l\u00e1b k\u00f6zvetlen\u00fcl a f\u00f6ldre van k\u00f6tve, \u00e9s nincs alaplapi t\u0171ki\u00e1ll\u00e1sa. A bootloader \u00e9get\u00e9s\u00e9hez aj\u00e1nlott STLink V2-t haszn\u00e1lni STM32Cube programoz\u00f3val. Ha nincs vagy nem f\u00e9r hozz\u00e1 egy STLinkhez, akkor lehets\u00e9ges egy OpenOCD futtat\u00e1sa a Raspberry PI-n haszn\u00e1lata is a k\u00f6vetkez\u0151 chipkonfigur\u00e1ci\u00f3val: forr\u00e1s [find target/stm32f1x.cfg] Ha szeretn\u00e9d, a k\u00f6vetkez\u0151 paranccsal k\u00e9sz\u00edthet biztons\u00e1gi m\u00e1solatot az aktu\u00e1lis flash mem\u00f3ri\u00e1r\u00f3l. Vedd figyelembe, hogy ez n\u00e9mi id\u0151t vehet ig\u00e9nybe: flash read_bank 0 btt_skr_mini_e3_backup.bin v\u00e9g\u00fcl, a k\u00f6vetkez\u0151 parancsokhoz hasonl\u00f3 parancsokkal \u00e9gethet: stm32f1x mass_erase 0 program hid_btt_skr_mini_e3.bin verify 0x08000000 MEGJEGYZ\u00c9SEK: A fenti p\u00e9lda t\u00f6rli a chipet, majd beprogramozza a bootloadert. Az \u00e9get\u00e9shez v\u00e1lasztott m\u00f3dszert\u0151l f\u00fcggetlen\u00fcl aj\u00e1nlott a chipet az \u00e9get\u00e9s el\u0151tt t\u00f6r\u00f6lni. Miel\u0151tt az SKR Mini E3-at ezzel a bootloaderrel \u00e9getn\u00e9d, tudnod kell, hogy a firmware friss\u00edt\u00e9se m\u00e1r nem lesz lehets\u00e9ges az SD-k\u00e1rty\u00e1n kereszt\u00fcl. You may need to hold down the reset button on the board while launching OpenOCD. It should display something like: Open On-Chip Debugger 0.10.0+dev-01204-gc60252ac-dirty (2020-04-27-16:00) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html DEPRECATED! use 'adapter speed' not 'adapter_khz' Info : BCM2835 GPIO JTAG/SWD bitbang driver Info : JTAG and SWD modes enabled Info : clock speed 40 kHz Info : SWD DPIDR 0x1ba01477 Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints Info : stm32f1x.cpu: external reset detected Info : starting gdb server for stm32f1x.cpu on 3333 Info : Listening on port 3333 for gdb connections Ezt k\u00f6vet\u0151en elengedheti a reset gombot. Ez a bootloader 2KiB-os flash mem\u00f3ri\u00e1t ig\u00e9nyel (az alkalmaz\u00e1st 2KiB kezd\u0151c\u00edmmel kell leford\u00edtani). A hid-flash program egy bin\u00e1ris f\u00e1jl felt\u00f6lt\u00e9s\u00e9re szolg\u00e1l a bootloaderre. Ezt a szoftvert a k\u00f6vetkez\u0151 parancsokkal telep\u00edtheti: sudo apt install libusb-1.0 cd ~/klipper/lib/hidflash make Ha a bootloader fut, akkor \u00e9gethetsz valami olyasmivel, mint: ~/klipper/lib/hidflash/hid-flash ~/klipper/out/klipper.bin alternat\u00edvak\u00e9nt haszn\u00e1lhatod a make flash parancsot a klipper k\u00f6zvetlen \u00e9get\u00e9s\u00e9hez: make flash FLASH_DEVICE=1209:BEBA VAGY ha a klippert kor\u00e1bban m\u00e1r \u00e9gett\u00e9k: make flash FLASH_DEVICE=/dev/ttyACM0 Sz\u00fcks\u00e9g lehet a bootloader manu\u00e1lis bel\u00e9p\u00e9s\u00e9re, ezt a \"boot 0\" alacsony \u00e9s \"boot 1\" magas \u00e9rt\u00e9kek be\u00e1ll\u00edt\u00e1s\u00e1val lehet megtenni. Az SKR Mini E3 eset\u00e9ben a \"Boot 1\" nem \u00e1ll rendelkez\u00e9sre, ez\u00e9rt a PA2 t\u0171 alacsonyra \u00e1ll\u00edt\u00e1s\u00e1val lehet elv\u00e9gezni, ha a \"hid_btt_skr_mini_e3.bin\" f\u00e1jlt \u00e9getj\u00fck. Ez a t\u0171 az SKR Mini E3 \"PIN\" dokumentumban \"TX0\"-k\u00e9nt van jel\u00f6lve a TFT fejl\u00e9cen. A PA2 mellett van egy f\u00f6ldelt t\u0171, amellyel a PA2-t alacsonyra h\u00fazhatja. STM32F103/STM32F072 MSC bootloaderrel \u00b6 Az MSC bootloader egy USB-n kereszt\u00fcl \u00e9gethet\u0151, driver n\u00e9lk\u00fcli bootloader. Lehet\u0151s\u00e9g van a bootloader 3,3V-os soros \u00e9get\u00e9s\u00e9re az stm32flash haszn\u00e1lat\u00e1val, ahogyan azt a fenti stm32duino szakaszban eml\u00edtett\u00fck, a k\u00edv\u00e1nt MSC bootloader bin\u00e1ris f\u00e1jlnev\u00e9nek behelyettes\u00edt\u00e9s\u00e9vel (azaz: MSCboot-Bluepill.bin a Bluepill-hez). Az STM32F072 lapok eset\u00e9ben a bootloader USB-n kereszt\u00fcl (DFU-n kereszt\u00fcl) is \u00e9gethet\u0151, p\u00e9ld\u00e1ul a k\u00f6vetkez\u0151kkel: dfu-util -d 0483:df11 -a 0 -R -D MSCboot-STM32F072.bin -s0x08000000:leave Ez a bootloader 8KiB vagy 16KiB flash helyet haszn\u00e1l, l\u00e1sd a bootloader le\u00edr\u00e1s\u00e1t (az alkalmaz\u00e1st a megfelel\u0151 kezd\u0151c\u00edmmel kell leford\u00edtani). A bootloader a k\u00e1rtya reset gombj\u00e1nak k\u00e9tszeri megnyom\u00e1s\u00e1val aktiv\u00e1lhat\u00f3. Amint a bootloader aktiv\u00e1l\u00f3dik, a k\u00e1rtya USB flash meghajt\u00f3k\u00e9nt jelenik meg, amelyre a klipper.bin f\u00e1jl m\u00e1solhat\u00f3. STM32F103/STM32F0x2 CanBoot bootloaderrel \u00b6 A CanBoot bootloader lehet\u0151s\u00e9get biztos\u00edt a Klipper firmware felt\u00f6lt\u00e9s\u00e9re CANBUS-on kereszt\u00fcl. Maga a bootloader a Klipper forr\u00e1sk\u00f3dj\u00e1b\u00f3l sz\u00e1rmazik. A CanBoot jelenleg az STM32F103, STM32F042 \u00e9s STM32F072 modelleket t\u00e1mogatja. A CanBoot \u00e9get\u00e9s\u00e9hez aj\u00e1nlott ST-Link programoz\u00f3t haszn\u00e1lni, azonban STM32F103 eszk\u00f6z\u00f6k\u00f6n az stm32flash , STM32F103 eszk\u00f6z\u00f6k\u00f6n pedig a dfu-util haszn\u00e1lat\u00e1val is lehet \u00e9getni. A dokumentum kor\u00e1bbi szakaszaiban tal\u00e1lhat\u00f3k az utas\u00edt\u00e1sok ezekre az \u00e9get\u00e9si m\u00f3dszerekre vonatkoz\u00f3an, adott esetben a f\u00e1jlnevet canboot.bin -el helyettes\u00edtve. A fentebb linkelt CanBoot repo tartalmaz utas\u00edt\u00e1sokat a bootloader elk\u00e9sz\u00edt\u00e9s\u00e9hez. A CanBoot els\u0151 \u00e9get\u00e9s\u00e9n\u00e9l \u00e9szlelned kell, hogy nincs jelen alkalmaz\u00e1s, \u00e9s be kell l\u00e9pned a bootloaderbe. Ha ez nem t\u00f6rt\u00e9nik meg, akkor a reset gomb k\u00e9tszer egym\u00e1s ut\u00e1ni megnyom\u00e1s\u00e1val lehet bel\u00e9pni a bootloaderbe. A Klipper firmware felt\u00f6lt\u00e9s\u00e9hez a flash_can.py seg\u00e9dprogram haszn\u00e1lhat\u00f3, amely a lib/canboot mapp\u00e1ban tal\u00e1lhat\u00f3. Az \u00e9get\u00e9shez sz\u00fcks\u00e9ges az eszk\u00f6z UUID azonos\u00edt\u00f3ja. Ha nincs meg az UUID, akkor a bootloadert jelenleg futtat\u00f3 csom\u00f3pontok lek\u00e9rdez\u00e9se lehets\u00e9ges: python3 flash_can.py -q Ez visszaadja az \u00f6sszes olyan csatlakoztatott csom\u00f3pont UUID-j\u00e9t, amelyhez jelenleg nem tartozik UUID. Ennek tartalmaznia kell a jelenlegi bootloaderben l\u00e9v\u0151 \u00f6sszes csom\u00f3pontot. Ha megvan az UUID, a k\u00f6vetkez\u0151 paranccsal t\u00f6lthet fel firmware-t: python3 flash_can.py -i can0 -f ~/klipper/out/klipper.bin -u aabbccddeeff Ahol aabbccddeeff hely\u00e9be az \u00d6n UUID-je l\u00e9p. Vedd figyelembe, hogy a -i \u00e9s -f opci\u00f3k elhagyhat\u00f3k, ezek alap\u00e9rtelmezett \u00e9rt\u00e9ke can0 \u00e9s ~/klipper/out/klipper.bin . Amikor a Klippert a CanBoot-al val\u00f3 haszn\u00e1latra k\u00e9sz\u00edted, v\u00e1laszd a 8 KiB-os bootloader opci\u00f3t. STM32F4 mikrovez\u00e9rl\u0151k (SKR Pro 1.1) \u00b6 Az STM32F4 mikrokontrollerek be\u00e9p\u00edtett rendszerbet\u00f6lt\u0151vel rendelkeznek, amely k\u00e9pes USB-n kereszt\u00fcl (DFU-n kereszt\u00fcl), 3,3V-os soros \u00e9s k\u00fcl\u00f6nb\u00f6z\u0151 m\u00e1s m\u00f3dszerekkel is \u00e9getni (tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd az STM AN2606 dokumentum\u00e1t). Egyes STM32F4 lapok, mint p\u00e9ld\u00e1ul az SKR Pro 1.1, nem k\u00e9pesek bel\u00e9pni a DFU bootloaderbe. A HID bootloader el\u00e9rhet\u0151 az STM32F405/407 alap\u00fa lapokhoz, amennyiben a felhaszn\u00e1l\u00f3 az USB-n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 \u00e9get\u00e9st r\u00e9szes\u00edti el\u0151nyben az SD-k\u00e1rtya haszn\u00e1lat\u00e1val szemben. Ne feledd, hogy sz\u00fcks\u00e9g lehet egy, az alaplapodnak specifikus verzi\u00f3 konfigur\u00e1l\u00e1s\u00e1ra \u00e9s szerkeszt\u00e9s\u00e9re, egy az SKR Pro 1.1-es lapra vonatkoz\u00f3 verzi\u00f3 el\u00e9rhet\u0151 itt . Hacsak a lapod nem DFU-k\u00e9pes, a legk\u00f6nnyebben el\u00e9rhet\u0151 \u00e9get\u00e9si m\u00f3dszer val\u00f3sz\u00edn\u0171leg a 3,3V-os soros, amely ugyanazt az elj\u00e1r\u00e1st k\u00f6veti, mint [az STM32F103 \u00e9get\u00e9se az stm32flash seg\u00edts\u00e9g\u00e9vel](#stm32f103-mikrovezerlok-(blue-pill-eszkozok). P\u00e9ld\u00e1ul: wget https://github.com/Arksine/STM32_HID_Bootloader/releases/download/v0.5-beta/hid_bootloader_SKR_PRO.bin stm32flash -w hid_bootloader_SKR_PRO.bin -v -g 0 /dev/ttyAMA0 Ez a bootloader 16Kib-es flash mem\u00f3ri\u00e1t ig\u00e9nyel az STM32F4-en (az alkalmaz\u00e1st 16KiB kezd\u0151c\u00edmmel kell leford\u00edtani). Az STM32F1-hez hasonl\u00f3an az STM32F4 is a hid-flash eszk\u00f6zt haszn\u00e1lja a bin\u00e1risok MCU-ra t\u00f6rt\u00e9n\u0151 felt\u00f6lt\u00e9s\u00e9hez. A hid-flash elk\u00e9sz\u00edt\u00e9s\u00e9nek \u00e9s haszn\u00e1lat\u00e1nak r\u00e9szletei a fenti utas\u00edt\u00e1sokban tal\u00e1lhat\u00f3k. Sz\u00fcks\u00e9g lehet a bootloader manu\u00e1lis bel\u00e9p\u00e9s\u00e9re, ez a \"boot 0\" alacsony, \"boot 1\" magas \u00e9rt\u00e9k be\u00e1ll\u00edt\u00e1s\u00e1val \u00e9s az eszk\u00f6z csatlakoztat\u00e1s\u00e1val t\u00f6rt\u00e9nhet. A programoz\u00e1s befejez\u00e9se ut\u00e1n h\u00fazza ki az eszk\u00f6zt, \u00e9s \u00e1ll\u00edtsd vissza a \"boot 1\" \u00e9rt\u00e9ket alacsonyra, hogy az alkalmaz\u00e1s bet\u00f6lt\u0151dj\u00f6n. LPC176x mikrovez\u00e9rl\u0151k (Smoothieboards) \u00b6 Ez a dokumentum nem \u00edrja le a bootloader \u00e9get\u00e9s\u00e9nek m\u00f3dszer\u00e9t. L\u00e1sd: http://smoothieware.org/flashing-the-bootloader a t\u00e9m\u00e1val kapcsolatos tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt. A Smoothieboardok \u00e1ltal\u00e1ban a k\u00f6vetkez\u0151 bootloaderrel \u00e9rkeznek: https://github.com/triffid/LPC17xx-DFU-Bootloader . Ha ezt a bootloadert haszn\u00e1ljuk, az alkalmaz\u00e1st 16KiB kezd\u0151c\u00edmmel kell leford\u00edtani. Az alkalmaz\u00e1s \u00e9get\u00e9s\u00e9nek legegyszer\u0171bb m\u00f3dja ezzel a bootloaderrel az alkalmaz\u00e1sf\u00e1jl (pl. out/klipper.bin ) m\u00e1sol\u00e1sa egy SD-k\u00e1rty\u00e1n l\u00e9v\u0151 firmware.bin nev\u0171 f\u00e1jlra, majd a mikrokontroller \u00fajraind\u00edt\u00e1sa ezzel az SD-k\u00e1rty\u00e1val. Az OpenOCD futtat\u00e1sa a Raspberry PI-n \u00b6 Az OpenOCD egy olyan szoftvercsomag, amely k\u00e9pes alacsony szint\u0171 \u00e9get\u00e9sekre \u00e9s hibakeres\u00e9sre. A Raspberry Pi GPIO-t\u0171it haszn\u00e1lhatod a k\u00fcl\u00f6nb\u00f6z\u0151 ARM-chipekkel val\u00f3 kommunik\u00e1ci\u00f3ra. Ez a szakasz le\u00edrja, hogyan lehet telep\u00edteni \u00e9s elind\u00edtani az OpenOCD-t. A k\u00f6vetkez\u0151 oldalon tal\u00e1lhat\u00f3 utas\u00edt\u00e1sokb\u00f3l sz\u00e1rmazik: https://learn.adafruit.com/programming-microcontrollers-using-openocd-on-raspberry-pi Kezd a szoftver let\u00f6lt\u00e9s\u00e9vel \u00e9s ford\u00edt\u00e1s\u00e1val (minden l\u00e9p\u00e9s t\u00f6bb percet vehet ig\u00e9nybe, \u00e9s a \"make\" l\u00e9p\u00e9s t\u00f6bb mint 30 percet is ig\u00e9nybe vehet): sudo apt-get update sudo apt-get install autoconf libtool telnet mkdir ~/openocd cd ~/openocd/ git clone http://openocd.zylin.com/openocd cd openocd ./bootstrap ./configure --enable-sysfsgpio --enable-bcm2835gpio --prefix=/home/pi/openocd/install make make install Az OpenOCD konfigur\u00e1l\u00e1sa \u00b6 OpenOCD konfigur\u00e1ci\u00f3s f\u00e1jl l\u00e9trehoz\u00e1sa: nano ~/openocd/openocd.cfg Haszn\u00e1lj a k\u00f6vetkez\u0151h\u00f6z hasonl\u00f3 konfigur\u00e1ci\u00f3t: # RPi t\u0171ket haszn\u00e1l: GPIO25 az SWDCLK-hoz, GPIO24 az SWDIO-hoz, GPIO18 az nRST-hez. forr\u00e1s [find interface/raspberrypi2-native.cfg] bcm2835gpio_swd_nums 25 24 bcm2835gpio_srst_num 18 sz\u00e1ll\u00edt\u00e1s kiv\u00e1laszt\u00e1sa swd # Hardveres reset vezet\u00e9k haszn\u00e1lata a chip resetel\u00e9s\u00e9hez reset_config srst_only adapter_nsrst_delay 100 adapter_nsrst_assert_width 100 # A chip t\u00edpus\u00e1nak megad\u00e1sa source [find target/atsame5x.cfg] # Add meg az adapter sebess\u00e9g\u00e9t adapter_khz 40 # Csatlakoz\u00e1s a chiphez init targets reset halt A Raspberry Pi \u00e9s a c\u00e9lchip \u00f6sszek\u00f6t\u00e9se \u00b6 Kapcsold ki mind a Raspberry Pi-t, mind a c\u00e9lchipet a k\u00e1belez\u00e9s el\u0151tt! Ellen\u0151rizd, hogy a c\u00e9lchip 3,3V-ot haszn\u00e1l-e a Raspberry Pi csatlakoztat\u00e1sa el\u0151tt! Csatlakoztassa a c\u00e9lchip GND, SWDCLK, SWDIO \u00e9s RST \u00e9rt\u00e9keit a Raspberry Pi GND, GPIO25, GPIO24 \u00e9s GPIO18 \u00e9rt\u00e9k\u00e9hez. Ezut\u00e1n kapcsold be a Raspberry Pi-t, \u00e9s t\u00e1pl\u00e1lja a c\u00e9lchipet. OpenOCD futtat\u00e1sa \u00b6 Futtassa az OpenOCD-t: cd ~/openocd/ sudo ~/openocd/install/bin/openocd -f ~/openocd/openocd.cfg A fentieknek hat\u00e1s\u00e1ra az OpenOCD-nek ki kell adnia n\u00e9h\u00e1ny sz\u00f6veges \u00fczenetet, majd v\u00e1rnia kell (nem szabad azonnal visszat\u00e9rnie az Unix shell prompthoz). Ha az OpenOCD mag\u00e1t\u00f3l kil\u00e9p, vagy ha tov\u00e1bbra is sz\u00f6veges \u00fczeneteket ad ki, akkor ellen\u0151rizd k\u00e9tszer a k\u00e1belez\u00e9st. Ha az OpenOCD fut \u00e9s stabilan m\u0171k\u00f6dik, akkor telneten kereszt\u00fcl parancsokat k\u00fcldhet\u00fcnk neki. Nyissunk egy m\u00e1sik SSH munkamenetet, \u00e9s futtassuk a k\u00f6vetkez\u0151ket: telnet 127.0.0.1 4444 (A telnetb\u0151l a ctrl+] billenty\u0171kombin\u00e1ci\u00f3val, majd a \"quit\" parancs futtat\u00e1s\u00e1val lehet kil\u00e9pni.) OpenOCD \u00e9s gdb \u00b6 Lehet\u0151s\u00e9g van az OpenOCD \u00e9s a gdb haszn\u00e1lat\u00e1ra a Klipper hibakeres\u00e9s\u00e9re. A k\u00f6vetkez\u0151 parancsok felt\u00e9telezik, hogy a gdb egy asztali g\u00e9pen fut. Add hozz\u00e1 a k\u00f6vetkez\u0151ket az OpenOCD konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1hoz: bindto 0.0.0.0 gdb_port 44444 Ind\u00edtsa \u00fajra az OpenOCD-t a Raspberry Pi-n, majd futtassa a k\u00f6vetkez\u0151 Unix parancsot az asztali g\u00e9pen: cd /path/to/klipper/ gdb out/klipper.elf A gdb futtat\u00e1sa: target remote octopi:44444 (Cser\u00e9lje ki a \"octopi\" -t a Raspberry Pi gazdag\u00e9p nev\u00e9re.) Ha a gdb fut, lehet\u0151s\u00e9g van t\u00f6r\u00e9spontok be\u00e1ll\u00edt\u00e1s\u00e1ra \u00e9s a regiszterek vizsg\u00e1lat\u00e1ra.","title":"Bootloaderek"},{"location":"Bootloaders.html#bootloaderek","text":"Ez a dokumentum a Klipper \u00e1ltal t\u00e1mogatott mikrovez\u00e9rl\u0151k\u00f6n tal\u00e1lhat\u00f3 gyakori bootloaderekkel kapcsolatos inform\u00e1ci\u00f3kat tartalmazza. A bootloader egy harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 szoftver, amely a mikrovez\u00e9rl\u0151n fut, amikor az el\u0151sz\u00f6r bekapcsol. \u00c1ltal\u00e1ban egy \u00faj alkalmaz\u00e1s (pl. Klipper) \u00e9get\u00e9s\u00e9re haszn\u00e1lj\u00e1k a mikrokontrollerre an\u00e9lk\u00fcl, hogy speci\u00e1lis hardverre lenne sz\u00fcks\u00e9g. Sajnos a mikrokontrollerek \u00e9get\u00e9s\u00e9re nincs ipar\u00e1gi szabv\u00e1ny, \u00e9s nincs olyan szabv\u00e1nyos bootloader sem, amely minden mikrokontrolleren m\u0171k\u00f6dik. Ami m\u00e9g rosszabb, hogy minden egyes bootloader m\u00e1s \u00e9s m\u00e1s l\u00e9p\u00e9seket ig\u00e9nyel az alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez. Ha egy mikrokontrollerre tudunk bootloadert \u00e9getni, akkor \u00e1ltal\u00e1ban ezt a mechanizmust haszn\u00e1lhatjuk egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9re is, de \u00f3vatosan kell elj\u00e1rni, mert v\u00e9letlen\u00fcl elt\u00e1vol\u00edthatjuk a bootloadert. Ezzel szemben a bootloader \u00e1ltal\u00e1ban csak egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9t teszi lehet\u0151v\u00e9. Ez\u00e9rt aj\u00e1nlott, ha lehets\u00e9ges, bootloadert haszn\u00e1lni egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9re. Ez a dokumentum megpr\u00f3b\u00e1lja le\u00edrni a gyakori bootloadereket, a bootloader \u00e9get\u00e9s\u00e9hez sz\u00fcks\u00e9ges l\u00e9p\u00e9seket \u00e9s az alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez sz\u00fcks\u00e9ges l\u00e9p\u00e9seket. Ez a dokumentum nem tekint\u00e9lyes hivatkoz\u00e1s. A Klipper fejleszt\u0151i \u00e1ltal \u00f6sszegy\u0171jt\u00f6tt hasznos inform\u00e1ci\u00f3k gy\u0171jtem\u00e9ny\u00e9nek sz\u00e1njuk.","title":"Bootloaderek"},{"location":"Bootloaders.html#avr-mikrovezerlok","text":"\u00c1ltal\u00e1noss\u00e1gban az Arduino projekt j\u00f3 referencia a 8 bites Atmel Atmega mikrovez\u00e9rl\u0151k bootloadereir\u0151l \u00e9s a \u00e9get\u00e9si elj\u00e1r\u00e1sokr\u00f3l. K\u00fcl\u00f6n\u00f6sen a \"boards.txt\" f\u00e1jl: https://github.com/arduino/Arduino/blob/1.8.5/hardware/arduino/avr/boards.txt hasznos referencia. A bootloader \u00e9get\u00e9s\u00e9hez az AVR chipekhez k\u00fcls\u0151 hardveres \u00e9get\u0151 eszk\u00f6zre van sz\u00fcks\u00e9g (amely SPI seg\u00edts\u00e9g\u00e9vel kommunik\u00e1l a chippel). Ez az eszk\u00f6z megv\u00e1s\u00e1rolhat\u00f3 (p\u00e9ld\u00e1ul keressen r\u00e1 az interneten az \"avr isp\", \"arduino isp\" vagy \"usb tiny isp\" szavakra). Az is lehets\u00e9ges, hogy egy m\u00e1sik Arduino vagy Raspberry Pi seg\u00edts\u00e9g\u00e9vel \u00e9gess egy AVR bootloadert (p\u00e9ld\u00e1ul keressen r\u00e1 az interneten a \"program an avr using raspberry pi\" kifejez\u00e9sre). Az al\u00e1bbi p\u00e9ld\u00e1kat egy \"AVR ISP Mk2\" t\u00edpus\u00fa eszk\u00f6z haszn\u00e1lat\u00e1t felt\u00e9telezve \u00edrtuk. Az \"avrdude\" program a leggyakrabban haszn\u00e1lt eszk\u00f6z az atmega chipek \u00e9get\u00e9s\u00e9re (mind a bootloader, mind az alkalmaz\u00e1sok \u00e9get\u00e9s\u00e9re).","title":"AVR mikrovez\u00e9rl\u0151k"},{"location":"Bootloaders.html#atmega2560","text":"Ez a chip jellemz\u0151en az \"Arduino Mega\" chipben tal\u00e1lhat\u00f3, \u00e9s nagyon gyakori a 3D nyomtat\u00f3 lapokban. Mag\u00e1nak a bootloadernek az \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: wget 'https://github.com/arduino/Arduino/raw/1.8.5/hardware/arduino/avr/bootloaders/stk500v2/stk500boot_v2_mega2560.hex' avrdude -cavrispv2 -patmega2560 -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0xFD:m -U hfuse:w:0xD8:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega2560 -P/dev/ttyACM0 -b115200 -U flash:w:stk500boot_v2_mega2560.hex avrdude -cavrispv2 -patmega2560 -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: avrdude -cwiring -patmega2560 -P/dev/ttyACM0 -b115200 -D -Uflash:w:out/klipper.elf.hex:i","title":"Atmega2560"},{"location":"Bootloaders.html#atmega1280","text":"Ez a chip jellemz\u0151en az \"Arduino Mega\" kor\u00e1bbi verzi\u00f3iban tal\u00e1lhat\u00f3. Mag\u00e1nak a bootloadernek az \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: wget 'https://github.com/arduino/Arduino/raw/1.8.5/hardware/arduino/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1280.hex' avrdude -cavrispv2 -patmega1280 -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0xF5:m -U hfuse:w:0xDA:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega1280 -P/dev/ttyACM0 -b115200 -U flash:w:ATmegaBOOT_168_atmega1280.hex avrdude -cavrispv2 -patmega1280 -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: avrdude -carduino -patmega1280 -P/dev/ttyACM0 -b57600 -D -Uflash:w:out/klipper.elf.hex:i","title":"Atmega1280"},{"location":"Bootloaders.html#atmega1284p","text":"Ez a chip gyakran megtal\u00e1lhat\u00f3 a \"Melzi\" st\u00edlus\u00fa 3D nyomtat\u00f3 alaplapokban. Mag\u00e1nak a bootloadernek az \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: wget 'https://github.com/Lauszus/Sanguino/raw/1.0.2/bootloaders/optiboot/optiboot_atmega1284p.hex' avrdude -cavrispv2 -patmega1284p -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0xFD:m -U hfuse:w:0xDE:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega1284p -P/dev/ttyACM0 -b115200 -U flash:w:optiboot_atmega1284p.hex avrdude -cavrispv2 -patmega1284p -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: avrdude -carduino -patmega1284p -P/dev/ttyACM0 -b115200 -D -Uflash:w:out/klipper.elf.hex:i Megjegyzend\u0151, hogy sz\u00e1mos \"Melzi\" st\u00edlus\u00fa alaplap el\u0151re bet\u00f6lt\u00f6tt bootloaderrel \u00e9rkezik, amely 57600-as \u00e1tviteli sebess\u00e9g haszn\u00e1lat\u00e1val m\u0171k\u00f6dik. Ebben az esetben egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj helyette valami ilyesmit: avrdude -carduino -patmega1284p -P/dev/ttyACM0 -b57600 -D -Uflash:w:out/klipper.elf.hex:i","title":"Atmega1284p"},{"location":"Bootloaders.html#at90usb1286","text":"Ez a dokumentum nem foglalkozik az At90usb1286 bootloader \u00e9get\u00e9si m\u00f3dszer\u00e9vel, \u00e9s nem foglalkozik az \u00e1ltal\u00e1nos alkalmaz\u00e1s \u00e9get\u00e9s\u00e9vel sem. A pjrc.com Teensy++ eszk\u00f6ze saj\u00e1t bootloaderrel rendelkezik. Ehhez egy egyedi \u00e9get\u0151 eszk\u00f6zre van sz\u00fcks\u00e9g a https://github.com/PaulStoffregen/teensy_loader_cli oldalr\u00f3l. Egy alkalmaz\u00e1st lehet vele \u00e9getni valami ilyesmivel: teensy_loader_cli --mcu=at90usb1286 out/klipper.elf.hex -v","title":"At90usb1286"},{"location":"Bootloaders.html#atmega168","text":"Az atmega168 korl\u00e1tozott flash-t\u00e1rhellyel rendelkezik. Ha bootloadert haszn\u00e1l, aj\u00e1nlott az Optiboot bootloadert haszn\u00e1lni. A bootloader \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami hasonl\u00f3t: wget 'https://github.com/arduino/Arduino/raw/1.8.5/hardware/arduino/avr/bootloaders/optiboot/optiboot_atmega168.hex' avrdude -cavrispv2 -patmega168 -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0x04:m -U hfuse:w:0xDD:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega168 -P/dev/ttyACM0 -b115200 -U flash:w:optiboot_atmega168.hex avrdude -cavrispv2 -patmega168 -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Az Optiboot bootloaderrel t\u00f6rt\u00e9n\u0151 alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami hasonl\u00f3t: avrdude -carduino -patmega168 -P/dev/ttyACM0 -b115200 -D -Uflash:w:out/klipper.elf.hex:i","title":"Atmega168"},{"location":"Bootloaders.html#sam3-mikrovezerlok-arduino-due","text":"A SAM3 MCU-val nem szok\u00e1s bootloadert haszn\u00e1lni. Maga a chip rendelkezik egy ROM-mal, amely lehet\u0151v\u00e9 teszi a flash programoz\u00e1s\u00e1t 3,3V-os soros portr\u00f3l vagy USB-r\u0151l. A ROM enged\u00e9lyez\u00e9s\u00e9hez az \"erase\" csapot magasan kell tartani a vissza\u00e1ll\u00edt\u00e1s sor\u00e1n, ami t\u00f6rli a flash tartalm\u00e1t, \u00e9s a ROM-ot elind\u00edtja. Egy Arduino Due-n ez a szekvencia \u00fagy val\u00f3s\u00edthat\u00f3 meg, hogy a \"programoz\u00f3 usb port\" (a t\u00e1pegys\u00e9ghez legk\u00f6zelebbi USB port) 1200-as baud sebess\u00e9get \u00e1ll\u00edt be. A https://github.com/shumatech/BOSSA alatti k\u00f3d haszn\u00e1lhat\u00f3 a SAM3 programoz\u00e1s\u00e1hoz. Az 1.9-es vagy \u00fajabb verzi\u00f3 haszn\u00e1lata aj\u00e1nlott. Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: bossac -U -p /dev/ttyACM0 -a -e -w out/klipper.bin -v -b bossac -U -p /dev/ttyACM0 -R","title":"SAM3 mikrovez\u00e9rl\u0151k (Arduino Due)"},{"location":"Bootloaders.html#sam4-mikrovezerlok-duet-wifi","text":"A SAM4 MCU-val nem szok\u00e1s bootloadert haszn\u00e1lni. Maga a chip rendelkezik egy ROM-mal, amely lehet\u0151v\u00e9 teszi a flash programoz\u00e1s\u00e1t 3,3V-os soros portr\u00f3l vagy USB-r\u0151l. A ROM enged\u00e9lyez\u00e9s\u00e9hez az \"erase\" csapot magasan kell tartani a vissza\u00e1ll\u00edt\u00e1s sor\u00e1n, ami t\u00f6rli a flash tartalm\u00e1t, \u00e9s a ROM-ot elind\u00edtja. A https://github.com/shumatech/BOSSA k\u00f3d haszn\u00e1lhat\u00f3 a SAM4 programoz\u00e1s\u00e1hoz. Sz\u00fcks\u00e9ges az 1.8.0 vagy magasabb verzi\u00f3 haszn\u00e1lata. Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami olyasmit, mint: bossac --port=/dev/ttyACM0 -b -U -e -w -v -R out/klipper.bin","title":"SAM4 mikrovez\u00e9rl\u0151k (Duet Wifi)"},{"location":"Bootloaders.html#samd21-mikrovezerlok-arduino-zero","text":"A SAMD21 bootloader az ARM Serial Wire Debug (SWD) interf\u00e9szen kereszt\u00fcl t\u00f6lt\u0151dik fel. Ez \u00e1ltal\u00e1ban egy dedik\u00e1lt SWD hardver dongle seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nik. Alternat\u00edvak\u00e9nt haszn\u00e1lhatunk egy OpenOCD futtat\u00e1st a Raspberry PI-n . A bootloader OpenOCD-vel t\u00f6rt\u00e9n\u0151 \u00e9get\u00e9s\u00e9hez haszn\u00e1ld a k\u00f6vetkez\u0151 chipkonfigur\u00e1ci\u00f3t: forr\u00e1s [find target/at91samdXX.cfg] Szerezz be egy bootloadert - p\u00e9ld\u00e1ul: wget 'https://github.com/arduino/ArduinoCore-samd/raw/1.8.3/bootloaders/zero/samd21_sam_ba.bin' \u00c9get\u00e9s az OpenOCD parancsokhoz hasonl\u00f3 parancsokkal: at91samd bootloader 0 program samd21_sam_ba.bin verify A SAMD21 leggyakoribb bootloadere az \"Arduino Zero\" -ban tal\u00e1lhat\u00f3. Ez egy 8KiB-es bootloadert haszn\u00e1l (az alkalmaz\u00e1st 8KiB kezd\u0151c\u00edmmel kell leford\u00edtani). Ebbe a bootloaderbe a reset gombra val\u00f3 dupla kattint\u00e1ssal lehet bel\u00e9pni. Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami hasonl\u00f3t: bossac -U -p /dev/ttyACM0 --offset=0x2000 -w out/klipper.bin -v -b -R Ezzel szemben az \"Arduino M0\" 16KiB bootloadert haszn\u00e1l (az alkalmaz\u00e1st 16KiB kezd\u0151c\u00edmmel kell leford\u00edtani). Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez ezen a bootloaderen, \u00e1ll\u00edtsd vissza a mikrokontrollert, \u00e9s futtassa a flash parancsot a bootol\u00e1s els\u0151 n\u00e9h\u00e1ny m\u00e1sodperc\u00e9ben. Valami ilyesmi: avrdude -c stk500v2 -p atmega2560 -P /dev/ttyACM0 -u -Uflash:w:out/klipper.elf.hex:i","title":"SAMD21 mikrovez\u00e9rl\u0151k (Arduino Zero)"},{"location":"Bootloaders.html#samd51-mikrovezerlok-adafruit-metro-m4-es-hasonlo","text":"A SAMD21-hez hasonl\u00f3an a SAMD51 bootloader is az ARM Serial Wire Debug (SWD) interf\u00e9szen kereszt\u00fcl t\u00f6lt\u0151dik fel. Az OpenOCD futtat\u00e1sa a Raspberry PI-n bootloader \u00e9get\u00e9s\u00e9hez haszn\u00e1ld a k\u00f6vetkez\u0151 chipkonfigur\u00e1ci\u00f3t: forr\u00e1s [find target/atsame5x.cfg] Szerezz be egy bootloadert. Sz\u00e1mos bootloader el\u00e9rhet\u0151 a https://github.com/adafruit/uf2-samdx1/releases/latest oldalon. P\u00e9ld\u00e1ul: wget 'https://github.com/adafruit/uf2-samdx1/releases/download/v3.7.0/bootloader-itsybitsy_m4-v3.7.0.bin' \u00c9get\u00e9s az OpenOCD parancsokhoz hasonl\u00f3 parancsokkal: at91samd bootloader 0 program bootloader-itsybitsy_m4-v3.7.0.bin verify at91samd bootloader 16384 A SAMD51 16KiB-es bootloadert haszn\u00e1l (az alkalmaz\u00e1st 16KiB kezd\u0151c\u00edmmel kell leford\u00edtani). Egy alkalmaz\u00e1s \u00e9get\u00e9s\u00e9hez haszn\u00e1lj valami hasonl\u00f3t: bossac -U -p /dev/ttyACM0 --offset=0x4000 -w out/klipper.bin -v -b -R","title":"SAMD51 mikrovez\u00e9rl\u0151k (Adafruit Metro-M4 \u00e9s hasonl\u00f3)"},{"location":"Bootloaders.html#stm32f103-mikrovezerlok-blue-pill-eszkozok","text":"Az STM32F103 eszk\u00f6z\u00f6k rendelkeznek egy ROM-mal, amely 3,3 V-os soros kapcsolaton kereszt\u00fcl k\u00e9pes bootloadert vagy alkalmaz\u00e1st \u00e9getni. \u00c1ltal\u00e1ban a PA10 (MCU Rx) \u00e9s PA9 (MCU Tx) t\u0171ket egy 3,3V-os UART adapterhez kell csatlakoztatni. A ROM el\u00e9r\u00e9s\u00e9hez a \"boot 0\" t\u0171t magasra, a \"boot 1\" t\u0171t pedig alacsonyra kell kapcsolni, majd vissza kell \u00e1ll\u00edtani az eszk\u00f6zt. Az \"stm32flash\" csomagot ezut\u00e1n haszn\u00e1lhatjuk az eszk\u00f6z \u00e9get\u00e9s\u00e9re, p\u00e9ld\u00e1ul a k\u00f6vetkez\u0151kkel: stm32flash -w out/klipper.bin -v -g 0 /dev/ttyAMA0 Vedd figyelembe, hogy ha Raspberry Pi-t haszn\u00e1l a 3,3V-os soros kapcsolathoz, az stm32flash protokoll olyan soros parit\u00e1sm\u00f3dot haszn\u00e1l, amelyet a Raspberry Pi \"mini UART\" nem t\u00e1mogat. L\u00e1sd https://www.raspberrypi.com/documentation/computers/configuration.html#configuring-uarts a teljes uart enged\u00e9lyez\u00e9s\u00e9r\u0151l a Raspberry Pi GPIO t\u0171in. Az \u00e9get\u00e9s ut\u00e1n \u00e1ll\u00edtsd vissza a \"boot 0\" \u00e9s a \"boot 1\" \u00e9rt\u00e9ket alacsonyra, hogy a j\u00f6v\u0151ben az \u00e9get\u00e9sr\u0151l indul\u00f3 rendszer \u00fajrainduljon.","title":"STM32F103 mikrovez\u00e9rl\u0151k (Blue Pill eszk\u00f6z\u00f6k)"},{"location":"Bootloaders.html#stm32f103-stm32duino-bootloaderrel","text":"Az \"stm32duino\" projekt rendelkezik USB-k\u00e9pes bootloaderrel. L\u00e1sd: https://github.com/rogerclarkmelbourne/STM32duino-bootloader Ez a bootloader 3,3V-os soros kapcsolaton kereszt\u00fcl \u00e9gethet\u0151 valami hasonl\u00f3val: wget 'https://github.com/rogerclarkmelbourne/STM32duino-bootloader/raw/master/binaries/generic_boot20_pc13.bin' stm32flash -w generic_boot20_pc13.bin -v -g 0 /dev/ttyAMA0 Ez a bootloader 8KiB-es flash mem\u00f3ri\u00e1t haszn\u00e1l (az alkalmaz\u00e1st 8KiB kezd\u0151c\u00edmmel kell leford\u00edtani). \u00c9gess egy alkalmaz\u00e1st valami ilyesmivel: dfu-util -d 1eaf:0003 -a 2 -R -D out/klipper.bin A bootloader \u00e1ltal\u00e1ban csak r\u00f6vid ideig fut a rendszerind\u00edt\u00e1s ut\u00e1n. Sz\u00fcks\u00e9g lehet arra, hogy a fenti parancsot \u00fagy id\u0151z\u00edts\u00fck, hogy az akkor fusson le, amikor a bootloader m\u00e9g akt\u00edv (a bootloader \u00fczem k\u00f6zben villogtat egy a lapon l\u00e9v\u0151 ledet). Alternat\u00edv megold\u00e1sk\u00e9nt a \"boot 0\" csapot \u00e1ll\u00edtsd alacsonyra, a \"boot 1\" csapot pedig magasra, hogy a bootloaderben maradj a reset ut\u00e1n.","title":"STM32F103 stm32duino bootloaderrel"},{"location":"Bootloaders.html#stm32f103-hid-bootloaderrel","text":"A HID bootloader egy kompakt, driver n\u00e9lk\u00fcli bootloader, amely k\u00e9pes USB-n kereszt\u00fcl \u00e9getni. Szint\u00e9n el\u00e9rhet\u0151 egy fork az SKR Mini E3 1.2 specifikus buildekkel . Az \u00e1ltal\u00e1nos STM32F103 alaplapok, mint p\u00e9ld\u00e1ul a blue pill eset\u00e9ben a bootloader 3,3V-os soros \u00e9get\u00e9se lehets\u00e9ges az stm32flash haszn\u00e1lat\u00e1val, amint azt a fenti stm32duino szakaszban eml\u00edtett\u00fck, a k\u00edv\u00e1nt hid bootloader bin\u00e1ris f\u00e1jlnev\u00e9nek behelyettes\u00edt\u00e9s\u00e9vel (azaz: hid_generic_pc13.bin a blue pillhez). Az SKR Mini E3 eset\u00e9ben nem lehet stm32flash-t haszn\u00e1lni, mivel a boot0 l\u00e1b k\u00f6zvetlen\u00fcl a f\u00f6ldre van k\u00f6tve, \u00e9s nincs alaplapi t\u0171ki\u00e1ll\u00e1sa. A bootloader \u00e9get\u00e9s\u00e9hez aj\u00e1nlott STLink V2-t haszn\u00e1lni STM32Cube programoz\u00f3val. Ha nincs vagy nem f\u00e9r hozz\u00e1 egy STLinkhez, akkor lehets\u00e9ges egy OpenOCD futtat\u00e1sa a Raspberry PI-n haszn\u00e1lata is a k\u00f6vetkez\u0151 chipkonfigur\u00e1ci\u00f3val: forr\u00e1s [find target/stm32f1x.cfg] Ha szeretn\u00e9d, a k\u00f6vetkez\u0151 paranccsal k\u00e9sz\u00edthet biztons\u00e1gi m\u00e1solatot az aktu\u00e1lis flash mem\u00f3ri\u00e1r\u00f3l. Vedd figyelembe, hogy ez n\u00e9mi id\u0151t vehet ig\u00e9nybe: flash read_bank 0 btt_skr_mini_e3_backup.bin v\u00e9g\u00fcl, a k\u00f6vetkez\u0151 parancsokhoz hasonl\u00f3 parancsokkal \u00e9gethet: stm32f1x mass_erase 0 program hid_btt_skr_mini_e3.bin verify 0x08000000 MEGJEGYZ\u00c9SEK: A fenti p\u00e9lda t\u00f6rli a chipet, majd beprogramozza a bootloadert. Az \u00e9get\u00e9shez v\u00e1lasztott m\u00f3dszert\u0151l f\u00fcggetlen\u00fcl aj\u00e1nlott a chipet az \u00e9get\u00e9s el\u0151tt t\u00f6r\u00f6lni. Miel\u0151tt az SKR Mini E3-at ezzel a bootloaderrel \u00e9getn\u00e9d, tudnod kell, hogy a firmware friss\u00edt\u00e9se m\u00e1r nem lesz lehets\u00e9ges az SD-k\u00e1rty\u00e1n kereszt\u00fcl. You may need to hold down the reset button on the board while launching OpenOCD. It should display something like: Open On-Chip Debugger 0.10.0+dev-01204-gc60252ac-dirty (2020-04-27-16:00) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html DEPRECATED! use 'adapter speed' not 'adapter_khz' Info : BCM2835 GPIO JTAG/SWD bitbang driver Info : JTAG and SWD modes enabled Info : clock speed 40 kHz Info : SWD DPIDR 0x1ba01477 Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints Info : stm32f1x.cpu: external reset detected Info : starting gdb server for stm32f1x.cpu on 3333 Info : Listening on port 3333 for gdb connections Ezt k\u00f6vet\u0151en elengedheti a reset gombot. Ez a bootloader 2KiB-os flash mem\u00f3ri\u00e1t ig\u00e9nyel (az alkalmaz\u00e1st 2KiB kezd\u0151c\u00edmmel kell leford\u00edtani). A hid-flash program egy bin\u00e1ris f\u00e1jl felt\u00f6lt\u00e9s\u00e9re szolg\u00e1l a bootloaderre. Ezt a szoftvert a k\u00f6vetkez\u0151 parancsokkal telep\u00edtheti: sudo apt install libusb-1.0 cd ~/klipper/lib/hidflash make Ha a bootloader fut, akkor \u00e9gethetsz valami olyasmivel, mint: ~/klipper/lib/hidflash/hid-flash ~/klipper/out/klipper.bin alternat\u00edvak\u00e9nt haszn\u00e1lhatod a make flash parancsot a klipper k\u00f6zvetlen \u00e9get\u00e9s\u00e9hez: make flash FLASH_DEVICE=1209:BEBA VAGY ha a klippert kor\u00e1bban m\u00e1r \u00e9gett\u00e9k: make flash FLASH_DEVICE=/dev/ttyACM0 Sz\u00fcks\u00e9g lehet a bootloader manu\u00e1lis bel\u00e9p\u00e9s\u00e9re, ezt a \"boot 0\" alacsony \u00e9s \"boot 1\" magas \u00e9rt\u00e9kek be\u00e1ll\u00edt\u00e1s\u00e1val lehet megtenni. Az SKR Mini E3 eset\u00e9ben a \"Boot 1\" nem \u00e1ll rendelkez\u00e9sre, ez\u00e9rt a PA2 t\u0171 alacsonyra \u00e1ll\u00edt\u00e1s\u00e1val lehet elv\u00e9gezni, ha a \"hid_btt_skr_mini_e3.bin\" f\u00e1jlt \u00e9getj\u00fck. Ez a t\u0171 az SKR Mini E3 \"PIN\" dokumentumban \"TX0\"-k\u00e9nt van jel\u00f6lve a TFT fejl\u00e9cen. A PA2 mellett van egy f\u00f6ldelt t\u0171, amellyel a PA2-t alacsonyra h\u00fazhatja.","title":"STM32F103 HID bootloaderrel"},{"location":"Bootloaders.html#stm32f103stm32f072-msc-bootloaderrel","text":"Az MSC bootloader egy USB-n kereszt\u00fcl \u00e9gethet\u0151, driver n\u00e9lk\u00fcli bootloader. Lehet\u0151s\u00e9g van a bootloader 3,3V-os soros \u00e9get\u00e9s\u00e9re az stm32flash haszn\u00e1lat\u00e1val, ahogyan azt a fenti stm32duino szakaszban eml\u00edtett\u00fck, a k\u00edv\u00e1nt MSC bootloader bin\u00e1ris f\u00e1jlnev\u00e9nek behelyettes\u00edt\u00e9s\u00e9vel (azaz: MSCboot-Bluepill.bin a Bluepill-hez). Az STM32F072 lapok eset\u00e9ben a bootloader USB-n kereszt\u00fcl (DFU-n kereszt\u00fcl) is \u00e9gethet\u0151, p\u00e9ld\u00e1ul a k\u00f6vetkez\u0151kkel: dfu-util -d 0483:df11 -a 0 -R -D MSCboot-STM32F072.bin -s0x08000000:leave Ez a bootloader 8KiB vagy 16KiB flash helyet haszn\u00e1l, l\u00e1sd a bootloader le\u00edr\u00e1s\u00e1t (az alkalmaz\u00e1st a megfelel\u0151 kezd\u0151c\u00edmmel kell leford\u00edtani). A bootloader a k\u00e1rtya reset gombj\u00e1nak k\u00e9tszeri megnyom\u00e1s\u00e1val aktiv\u00e1lhat\u00f3. Amint a bootloader aktiv\u00e1l\u00f3dik, a k\u00e1rtya USB flash meghajt\u00f3k\u00e9nt jelenik meg, amelyre a klipper.bin f\u00e1jl m\u00e1solhat\u00f3.","title":"STM32F103/STM32F072 MSC bootloaderrel"},{"location":"Bootloaders.html#stm32f103stm32f0x2-canboot-bootloaderrel","text":"A CanBoot bootloader lehet\u0151s\u00e9get biztos\u00edt a Klipper firmware felt\u00f6lt\u00e9s\u00e9re CANBUS-on kereszt\u00fcl. Maga a bootloader a Klipper forr\u00e1sk\u00f3dj\u00e1b\u00f3l sz\u00e1rmazik. A CanBoot jelenleg az STM32F103, STM32F042 \u00e9s STM32F072 modelleket t\u00e1mogatja. A CanBoot \u00e9get\u00e9s\u00e9hez aj\u00e1nlott ST-Link programoz\u00f3t haszn\u00e1lni, azonban STM32F103 eszk\u00f6z\u00f6k\u00f6n az stm32flash , STM32F103 eszk\u00f6z\u00f6k\u00f6n pedig a dfu-util haszn\u00e1lat\u00e1val is lehet \u00e9getni. A dokumentum kor\u00e1bbi szakaszaiban tal\u00e1lhat\u00f3k az utas\u00edt\u00e1sok ezekre az \u00e9get\u00e9si m\u00f3dszerekre vonatkoz\u00f3an, adott esetben a f\u00e1jlnevet canboot.bin -el helyettes\u00edtve. A fentebb linkelt CanBoot repo tartalmaz utas\u00edt\u00e1sokat a bootloader elk\u00e9sz\u00edt\u00e9s\u00e9hez. A CanBoot els\u0151 \u00e9get\u00e9s\u00e9n\u00e9l \u00e9szlelned kell, hogy nincs jelen alkalmaz\u00e1s, \u00e9s be kell l\u00e9pned a bootloaderbe. Ha ez nem t\u00f6rt\u00e9nik meg, akkor a reset gomb k\u00e9tszer egym\u00e1s ut\u00e1ni megnyom\u00e1s\u00e1val lehet bel\u00e9pni a bootloaderbe. A Klipper firmware felt\u00f6lt\u00e9s\u00e9hez a flash_can.py seg\u00e9dprogram haszn\u00e1lhat\u00f3, amely a lib/canboot mapp\u00e1ban tal\u00e1lhat\u00f3. Az \u00e9get\u00e9shez sz\u00fcks\u00e9ges az eszk\u00f6z UUID azonos\u00edt\u00f3ja. Ha nincs meg az UUID, akkor a bootloadert jelenleg futtat\u00f3 csom\u00f3pontok lek\u00e9rdez\u00e9se lehets\u00e9ges: python3 flash_can.py -q Ez visszaadja az \u00f6sszes olyan csatlakoztatott csom\u00f3pont UUID-j\u00e9t, amelyhez jelenleg nem tartozik UUID. Ennek tartalmaznia kell a jelenlegi bootloaderben l\u00e9v\u0151 \u00f6sszes csom\u00f3pontot. Ha megvan az UUID, a k\u00f6vetkez\u0151 paranccsal t\u00f6lthet fel firmware-t: python3 flash_can.py -i can0 -f ~/klipper/out/klipper.bin -u aabbccddeeff Ahol aabbccddeeff hely\u00e9be az \u00d6n UUID-je l\u00e9p. Vedd figyelembe, hogy a -i \u00e9s -f opci\u00f3k elhagyhat\u00f3k, ezek alap\u00e9rtelmezett \u00e9rt\u00e9ke can0 \u00e9s ~/klipper/out/klipper.bin . Amikor a Klippert a CanBoot-al val\u00f3 haszn\u00e1latra k\u00e9sz\u00edted, v\u00e1laszd a 8 KiB-os bootloader opci\u00f3t.","title":"STM32F103/STM32F0x2 CanBoot bootloaderrel"},{"location":"Bootloaders.html#stm32f4-mikrovezerlok-skr-pro-11","text":"Az STM32F4 mikrokontrollerek be\u00e9p\u00edtett rendszerbet\u00f6lt\u0151vel rendelkeznek, amely k\u00e9pes USB-n kereszt\u00fcl (DFU-n kereszt\u00fcl), 3,3V-os soros \u00e9s k\u00fcl\u00f6nb\u00f6z\u0151 m\u00e1s m\u00f3dszerekkel is \u00e9getni (tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd az STM AN2606 dokumentum\u00e1t). Egyes STM32F4 lapok, mint p\u00e9ld\u00e1ul az SKR Pro 1.1, nem k\u00e9pesek bel\u00e9pni a DFU bootloaderbe. A HID bootloader el\u00e9rhet\u0151 az STM32F405/407 alap\u00fa lapokhoz, amennyiben a felhaszn\u00e1l\u00f3 az USB-n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 \u00e9get\u00e9st r\u00e9szes\u00edti el\u0151nyben az SD-k\u00e1rtya haszn\u00e1lat\u00e1val szemben. Ne feledd, hogy sz\u00fcks\u00e9g lehet egy, az alaplapodnak specifikus verzi\u00f3 konfigur\u00e1l\u00e1s\u00e1ra \u00e9s szerkeszt\u00e9s\u00e9re, egy az SKR Pro 1.1-es lapra vonatkoz\u00f3 verzi\u00f3 el\u00e9rhet\u0151 itt . Hacsak a lapod nem DFU-k\u00e9pes, a legk\u00f6nnyebben el\u00e9rhet\u0151 \u00e9get\u00e9si m\u00f3dszer val\u00f3sz\u00edn\u0171leg a 3,3V-os soros, amely ugyanazt az elj\u00e1r\u00e1st k\u00f6veti, mint [az STM32F103 \u00e9get\u00e9se az stm32flash seg\u00edts\u00e9g\u00e9vel](#stm32f103-mikrovezerlok-(blue-pill-eszkozok). P\u00e9ld\u00e1ul: wget https://github.com/Arksine/STM32_HID_Bootloader/releases/download/v0.5-beta/hid_bootloader_SKR_PRO.bin stm32flash -w hid_bootloader_SKR_PRO.bin -v -g 0 /dev/ttyAMA0 Ez a bootloader 16Kib-es flash mem\u00f3ri\u00e1t ig\u00e9nyel az STM32F4-en (az alkalmaz\u00e1st 16KiB kezd\u0151c\u00edmmel kell leford\u00edtani). Az STM32F1-hez hasonl\u00f3an az STM32F4 is a hid-flash eszk\u00f6zt haszn\u00e1lja a bin\u00e1risok MCU-ra t\u00f6rt\u00e9n\u0151 felt\u00f6lt\u00e9s\u00e9hez. A hid-flash elk\u00e9sz\u00edt\u00e9s\u00e9nek \u00e9s haszn\u00e1lat\u00e1nak r\u00e9szletei a fenti utas\u00edt\u00e1sokban tal\u00e1lhat\u00f3k. Sz\u00fcks\u00e9g lehet a bootloader manu\u00e1lis bel\u00e9p\u00e9s\u00e9re, ez a \"boot 0\" alacsony, \"boot 1\" magas \u00e9rt\u00e9k be\u00e1ll\u00edt\u00e1s\u00e1val \u00e9s az eszk\u00f6z csatlakoztat\u00e1s\u00e1val t\u00f6rt\u00e9nhet. A programoz\u00e1s befejez\u00e9se ut\u00e1n h\u00fazza ki az eszk\u00f6zt, \u00e9s \u00e1ll\u00edtsd vissza a \"boot 1\" \u00e9rt\u00e9ket alacsonyra, hogy az alkalmaz\u00e1s bet\u00f6lt\u0151dj\u00f6n.","title":"STM32F4 mikrovez\u00e9rl\u0151k (SKR Pro 1.1)"},{"location":"Bootloaders.html#lpc176x-mikrovezerlok-smoothieboards","text":"Ez a dokumentum nem \u00edrja le a bootloader \u00e9get\u00e9s\u00e9nek m\u00f3dszer\u00e9t. L\u00e1sd: http://smoothieware.org/flashing-the-bootloader a t\u00e9m\u00e1val kapcsolatos tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt. A Smoothieboardok \u00e1ltal\u00e1ban a k\u00f6vetkez\u0151 bootloaderrel \u00e9rkeznek: https://github.com/triffid/LPC17xx-DFU-Bootloader . Ha ezt a bootloadert haszn\u00e1ljuk, az alkalmaz\u00e1st 16KiB kezd\u0151c\u00edmmel kell leford\u00edtani. Az alkalmaz\u00e1s \u00e9get\u00e9s\u00e9nek legegyszer\u0171bb m\u00f3dja ezzel a bootloaderrel az alkalmaz\u00e1sf\u00e1jl (pl. out/klipper.bin ) m\u00e1sol\u00e1sa egy SD-k\u00e1rty\u00e1n l\u00e9v\u0151 firmware.bin nev\u0171 f\u00e1jlra, majd a mikrokontroller \u00fajraind\u00edt\u00e1sa ezzel az SD-k\u00e1rty\u00e1val.","title":"LPC176x mikrovez\u00e9rl\u0151k (Smoothieboards)"},{"location":"Bootloaders.html#az-openocd-futtatasa-a-raspberry-pi-n","text":"Az OpenOCD egy olyan szoftvercsomag, amely k\u00e9pes alacsony szint\u0171 \u00e9get\u00e9sekre \u00e9s hibakeres\u00e9sre. A Raspberry Pi GPIO-t\u0171it haszn\u00e1lhatod a k\u00fcl\u00f6nb\u00f6z\u0151 ARM-chipekkel val\u00f3 kommunik\u00e1ci\u00f3ra. Ez a szakasz le\u00edrja, hogyan lehet telep\u00edteni \u00e9s elind\u00edtani az OpenOCD-t. A k\u00f6vetkez\u0151 oldalon tal\u00e1lhat\u00f3 utas\u00edt\u00e1sokb\u00f3l sz\u00e1rmazik: https://learn.adafruit.com/programming-microcontrollers-using-openocd-on-raspberry-pi Kezd a szoftver let\u00f6lt\u00e9s\u00e9vel \u00e9s ford\u00edt\u00e1s\u00e1val (minden l\u00e9p\u00e9s t\u00f6bb percet vehet ig\u00e9nybe, \u00e9s a \"make\" l\u00e9p\u00e9s t\u00f6bb mint 30 percet is ig\u00e9nybe vehet): sudo apt-get update sudo apt-get install autoconf libtool telnet mkdir ~/openocd cd ~/openocd/ git clone http://openocd.zylin.com/openocd cd openocd ./bootstrap ./configure --enable-sysfsgpio --enable-bcm2835gpio --prefix=/home/pi/openocd/install make make install","title":"Az OpenOCD futtat\u00e1sa a Raspberry PI-n"},{"location":"Bootloaders.html#az-openocd-konfiguralasa","text":"OpenOCD konfigur\u00e1ci\u00f3s f\u00e1jl l\u00e9trehoz\u00e1sa: nano ~/openocd/openocd.cfg Haszn\u00e1lj a k\u00f6vetkez\u0151h\u00f6z hasonl\u00f3 konfigur\u00e1ci\u00f3t: # RPi t\u0171ket haszn\u00e1l: GPIO25 az SWDCLK-hoz, GPIO24 az SWDIO-hoz, GPIO18 az nRST-hez. forr\u00e1s [find interface/raspberrypi2-native.cfg] bcm2835gpio_swd_nums 25 24 bcm2835gpio_srst_num 18 sz\u00e1ll\u00edt\u00e1s kiv\u00e1laszt\u00e1sa swd # Hardveres reset vezet\u00e9k haszn\u00e1lata a chip resetel\u00e9s\u00e9hez reset_config srst_only adapter_nsrst_delay 100 adapter_nsrst_assert_width 100 # A chip t\u00edpus\u00e1nak megad\u00e1sa source [find target/atsame5x.cfg] # Add meg az adapter sebess\u00e9g\u00e9t adapter_khz 40 # Csatlakoz\u00e1s a chiphez init targets reset halt","title":"Az OpenOCD konfigur\u00e1l\u00e1sa"},{"location":"Bootloaders.html#a-raspberry-pi-es-a-celchip-osszekotese","text":"Kapcsold ki mind a Raspberry Pi-t, mind a c\u00e9lchipet a k\u00e1belez\u00e9s el\u0151tt! Ellen\u0151rizd, hogy a c\u00e9lchip 3,3V-ot haszn\u00e1l-e a Raspberry Pi csatlakoztat\u00e1sa el\u0151tt! Csatlakoztassa a c\u00e9lchip GND, SWDCLK, SWDIO \u00e9s RST \u00e9rt\u00e9keit a Raspberry Pi GND, GPIO25, GPIO24 \u00e9s GPIO18 \u00e9rt\u00e9k\u00e9hez. Ezut\u00e1n kapcsold be a Raspberry Pi-t, \u00e9s t\u00e1pl\u00e1lja a c\u00e9lchipet.","title":"A Raspberry Pi \u00e9s a c\u00e9lchip \u00f6sszek\u00f6t\u00e9se"},{"location":"Bootloaders.html#openocd-futtatasa","text":"Futtassa az OpenOCD-t: cd ~/openocd/ sudo ~/openocd/install/bin/openocd -f ~/openocd/openocd.cfg A fentieknek hat\u00e1s\u00e1ra az OpenOCD-nek ki kell adnia n\u00e9h\u00e1ny sz\u00f6veges \u00fczenetet, majd v\u00e1rnia kell (nem szabad azonnal visszat\u00e9rnie az Unix shell prompthoz). Ha az OpenOCD mag\u00e1t\u00f3l kil\u00e9p, vagy ha tov\u00e1bbra is sz\u00f6veges \u00fczeneteket ad ki, akkor ellen\u0151rizd k\u00e9tszer a k\u00e1belez\u00e9st. Ha az OpenOCD fut \u00e9s stabilan m\u0171k\u00f6dik, akkor telneten kereszt\u00fcl parancsokat k\u00fcldhet\u00fcnk neki. Nyissunk egy m\u00e1sik SSH munkamenetet, \u00e9s futtassuk a k\u00f6vetkez\u0151ket: telnet 127.0.0.1 4444 (A telnetb\u0151l a ctrl+] billenty\u0171kombin\u00e1ci\u00f3val, majd a \"quit\" parancs futtat\u00e1s\u00e1val lehet kil\u00e9pni.)","title":"OpenOCD futtat\u00e1sa"},{"location":"Bootloaders.html#openocd-es-gdb","text":"Lehet\u0151s\u00e9g van az OpenOCD \u00e9s a gdb haszn\u00e1lat\u00e1ra a Klipper hibakeres\u00e9s\u00e9re. A k\u00f6vetkez\u0151 parancsok felt\u00e9telezik, hogy a gdb egy asztali g\u00e9pen fut. Add hozz\u00e1 a k\u00f6vetkez\u0151ket az OpenOCD konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1hoz: bindto 0.0.0.0 gdb_port 44444 Ind\u00edtsa \u00fajra az OpenOCD-t a Raspberry Pi-n, majd futtassa a k\u00f6vetkez\u0151 Unix parancsot az asztali g\u00e9pen: cd /path/to/klipper/ gdb out/klipper.elf A gdb futtat\u00e1sa: target remote octopi:44444 (Cser\u00e9lje ki a \"octopi\" -t a Raspberry Pi gazdag\u00e9p nev\u00e9re.) Ha a gdb fut, lehet\u0151s\u00e9g van t\u00f6r\u00e9spontok be\u00e1ll\u00edt\u00e1s\u00e1ra \u00e9s a regiszterek vizsg\u00e1lat\u00e1ra.","title":"OpenOCD \u00e9s gdb"},{"location":"CANBUS.html","text":"CANBUS \u00b6 Ez a dokumentum a Klipper CAN busz t\u00e1mogat\u00e1s\u00e1t \u00edrja le. Eszk\u00f6z Hardver \u00b6 A Klipper jelenleg t\u00e1mogatja a CAN-t az stm32, same5x \u00e9s rp2040 chipeken. Ezenk\u00edv\u00fcl a mikrokontroller chipnek olyan lapk\u00e1n kell lennie, amely rendelkezik CAN csatlakoz\u00e1ssal. A CAN-hez val\u00f3 ford\u00edt\u00e1shoz futtassa a make menuconfig parancsot, \u00e9s v\u00e1laszd a \"CAN busz\" kommunik\u00e1ci\u00f3s interf\u00e9szt. V\u00e9g\u00fcl ford\u00edtsd le a mikrokontroller k\u00f3dj\u00e1t, \u00e9s \u00e9gesd a c\u00e9llapra. Gazdag\u00e9p Hardver \u00b6 A CAN-busz haszn\u00e1lat\u00e1hoz sz\u00fcks\u00e9g van egy host-adapterre. Jelenleg k\u00e9t elterjedt lehet\u0151s\u00e9g van: Haszn\u00e1lj egy Waveshare Raspberry Pi CAN sapk\u00e1t vagy annak sz\u00e1mos kl\u00f3nja k\u00f6z\u00fcl egyet. Haszn\u00e1lj USB CAN-adaptert (p\u00e9ld\u00e1ul https://hacker-gadgets.com/product/cantact-usb-can-adapter/ ). Sz\u00e1mos k\u00fcl\u00f6nb\u00f6z\u0151 USB-CAN adapter \u00e1ll rendelkez\u00e9sre - az adapter kiv\u00e1laszt\u00e1sakor javasoljuk, hogy ellen\u0151rizd, hogy k\u00e9pes-e a candlelight firmware futtat\u00e1s\u00e1ra. (Sajnos azt tapasztaltuk, hogy n\u00e9h\u00e1ny USB-adapter hib\u00e1s firmware-t futtat, \u00e9s le van z\u00e1rva, ez\u00e9rt v\u00e1s\u00e1rl\u00e1s el\u0151tt ellen\u0151rizd.) Az adapter haszn\u00e1lat\u00e1hoz a gazdag\u00e9p oper\u00e1ci\u00f3s rendszert is konfigur\u00e1lni kell. Ez \u00e1ltal\u00e1ban \u00fagy t\u00f6rt\u00e9nik, hogy l\u00e9trehozunk egy \u00faj /etc/network/interfaces.d/can0 nev\u0171 f\u00e1jlt a k\u00f6vetkez\u0151 tartalommal: auto can0 iface can0 can static bitrate 500000 up ifconfig $IFACE txqueuelen 128 Ne feledd, hogy a \"Raspberry Pi CAN sapka\" is megk\u00f6veteli a config.txt m\u00f3dos\u00edt\u00e1s\u00e1t . Az ellen\u00e1ll\u00e1sok megsz\u00fcntet\u00e9se \u00b6 A CAN-buszon k\u00e9t 120 ohmos ellen\u00e1ll\u00e1snak kell lennie a CANH \u00e9s CANL vezet\u00e9kek k\u00f6z\u00f6tt. Ide\u00e1lis esetben egy-egy ellen\u00e1ll\u00e1s a busz mindk\u00e9t v\u00e9g\u00e9n tal\u00e1lhat\u00f3. Vedd figyelembe, hogy egyes eszk\u00f6z\u00f6k be\u00e9p\u00edtett 120 ohmos ellen\u00e1ll\u00e1ssal rendelkeznek (p\u00e9ld\u00e1ul a \"Waveshare Raspberry Pi CAN sapka\" egy beforrasztott ellen\u00e1ll\u00e1ssal rendelkezik, amelyet nem lehet k\u00f6nnyen elt\u00e1vol\u00edtani). Egyes eszk\u00f6z\u00f6k egy\u00e1ltal\u00e1n nem tartalmaznak ellen\u00e1ll\u00e1st. M\u00e1s eszk\u00f6z\u00f6k rendelkeznek egy mechanizmussal az ellen\u00e1ll\u00e1s kiv\u00e1laszt\u00e1s\u00e1ra (\u00e1ltal\u00e1ban egy \"pin jumper\" csatlakoztat\u00e1s\u00e1val). Mindenk\u00e9ppen ellen\u0151rizd a CAN-buszon l\u00e9v\u0151 \u00f6sszes eszk\u00f6z kapcsol\u00e1si rajz\u00e1t, hogy a buszon k\u00e9t \u00e9s csak k\u00e9t 120 Ohm-os ellen\u00e1ll\u00e1s van-e. Az ellen\u00e1ll\u00e1sok \u00e9rt\u00e9k\u00e9nek tesztel\u00e9s\u00e9hez a nyomtat\u00f3t \u00e1ramtalan\u00edthatja, \u00e9s egy multi-m\u00e9terrel ellen\u0151rizheti a CANH \u00e9s CANL vezet\u00e9kek k\u00f6z\u00f6tti ellen\u00e1ll\u00e1st. Egy helyesen bek\u00f6t\u00f6tt CAN-buszon ~60 ohmot kell m\u00e9rnie. A canbus_uuid keres\u00e9se \u00faj mikrovez\u00e9rl\u0151kh\u00f6z \u00b6 A CAN-buszon l\u00e9v\u0151 minden mikrovez\u00e9rl\u0151h\u00f6z egyedi azonos\u00edt\u00f3t rendelnek a gy\u00e1ri chipazonos\u00edt\u00f3 alapj\u00e1n, amely minden mikrovez\u00e9rl\u0151be k\u00f3dolva van. Az egyes mikrokontrollerek eszk\u00f6zazonos\u00edt\u00f3j\u00e1nak megtal\u00e1l\u00e1s\u00e1hoz gy\u0151z\u0151dj meg arr\u00f3l, hogy a hardver megfelel\u0151en van bekapcsolva \u00e9s bek\u00f6tve, majd futtassa le: ~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0 Ha nem inicializ\u00e1lt CAN-eszk\u00f6z\u00f6ket \u00e9szlelsz, a fenti parancs a k\u00f6vetkez\u0151 sorokat fogja jelenteni: Tal\u00e1lt canbus_uuid=11aa22bb33cc, Alkalmaz\u00e1s: Klipper Minden eszk\u00f6z egyedi azonos\u00edt\u00f3val rendelkezik. A fenti p\u00e9ld\u00e1ban 11aa22bb33cc a mikrokontroller \"canbus_uuid\" azonos\u00edt\u00f3ja. Vedd figyelembe, hogy a canbus_query.py eszk\u00f6z csak az inicializ\u00e1latlan eszk\u00f6z\u00f6ket jelzi. Ha a Klipper (vagy egy hasonl\u00f3 eszk\u00f6z) konfigur\u00e1lja az eszk\u00f6zt, akkor az m\u00e1r nem jelenik meg a list\u00e1ban. A Klipper be\u00e1ll\u00edt\u00e1sa \u00b6 Friss\u00edtse a Klipper mcu konfigur\u00e1ci\u00f3t , hogy a CAN-buszon kereszt\u00fcl kommunik\u00e1ljon az eszk\u00f6zzel - p\u00e9ld\u00e1ul: [mcu my_can_mcu] canbus_uuid: 11aa22bb33cc USB \u00e9s CAN-busz k\u00f6z\u00f6tti h\u00edd \u00fczemm\u00f3d \u00b6 Egyes mikrovez\u00e9rl\u0151k t\u00e1mogatj\u00e1k az \"USB to CAN bus bridge\" \u00fczemm\u00f3d kiv\u00e1laszt\u00e1s\u00e1t a \"make menuconfig\" sor\u00e1n. Ez az \u00fczemm\u00f3d lehet\u0151v\u00e9 teheti, hogy egy mikrokontrollert \"USB CAN busz adapterk\u00e9nt\" \u00e9s Klipper csom\u00f3pontk\u00e9nt is haszn\u00e1ljunk. Amikor a Klipper ezt az \u00fczemm\u00f3dot haszn\u00e1lja, a mikrokontroller \"USB CAN busz adapterk\u00e9nt\" jelenik meg Linux alatt. Maga a \"Klipper bridge mcu\" \u00fagy jelenik meg, mintha ezen a CAN buszon lenne. A canbus_query.py seg\u00edts\u00e9g\u00e9vel azonos\u00edthat\u00f3 \u00e9s konfigur\u00e1lhat\u00f3, mint a t\u00f6bbi CAN buszos Klipper csom\u00f3pont. A t\u00f6bbi, t\u00e9nylegesen a CAN-buszon l\u00e9v\u0151 eszk\u00f6z mellett fog megjelenni. N\u00e9h\u00e1ny fontos megjegyz\u00e9s ennek az \u00fczemm\u00f3dnak a haszn\u00e1lat\u00e1hoz: A \"bridge mcu\" val\u00f3j\u00e1ban nem a CAN-buszon van. A hozz\u00e1 \u00e9rkez\u0151 \u00e9s t\u0151le \u00e9rkez\u0151 \u00fczenetek nem fogyasztanak s\u00e1vsz\u00e9less\u00e9get a CAN-buszon. Az MCU-t nem l\u00e1thatj\u00e1k m\u00e1s adapterek, amelyek esetleg a CAN-buszon vannak. A busszal val\u00f3 kommunik\u00e1ci\u00f3hoz sz\u00fcks\u00e9ges a can0 (vagy hasonl\u00f3) interf\u00e9sz konfigur\u00e1l\u00e1sa Linuxban. A Linux CAN-busz sebess\u00e9g\u00e9t \u00e9s a CAN-busz bit-id\u0151z\u00edt\u00e9si be\u00e1ll\u00edt\u00e1sait azonban a Klipper figyelmen k\u00edv\u00fcl hagyja. Jelenleg a CAN-busz frekvenci\u00e1j\u00e1t a \"make menuconfig\" futtat\u00e1sa sor\u00e1n kell megadni, \u00e9s a Linuxban megadott buszsebess\u00e9get figyelmen k\u00edv\u00fcl hagyjuk. Amikor a \"bridge mcu\" vissza\u00e1ll, a Linux letiltja a megfelel\u0151 can0 interf\u00e9szt. A FIRMWARE_RESTART \u00e9s a RESTART parancsok megfelel\u0151 kezel\u00e9se \u00e9rdek\u00e9ben aj\u00e1nlott az /etc/network/interfaces.d/can0 f\u00e1jlban az auto helyett az allow-hotplug parancsot haszn\u00e1lni. P\u00e9ld\u00e1ul: allow-hotplug can0 iface can0 can static bitrate 500000 up ifconfig $IFACE txqueuelen 128","title":"CANBUS"},{"location":"CANBUS.html#canbus","text":"Ez a dokumentum a Klipper CAN busz t\u00e1mogat\u00e1s\u00e1t \u00edrja le.","title":"CANBUS"},{"location":"CANBUS.html#eszkoz-hardver","text":"A Klipper jelenleg t\u00e1mogatja a CAN-t az stm32, same5x \u00e9s rp2040 chipeken. Ezenk\u00edv\u00fcl a mikrokontroller chipnek olyan lapk\u00e1n kell lennie, amely rendelkezik CAN csatlakoz\u00e1ssal. A CAN-hez val\u00f3 ford\u00edt\u00e1shoz futtassa a make menuconfig parancsot, \u00e9s v\u00e1laszd a \"CAN busz\" kommunik\u00e1ci\u00f3s interf\u00e9szt. V\u00e9g\u00fcl ford\u00edtsd le a mikrokontroller k\u00f3dj\u00e1t, \u00e9s \u00e9gesd a c\u00e9llapra.","title":"Eszk\u00f6z Hardver"},{"location":"CANBUS.html#gazdagep-hardver","text":"A CAN-busz haszn\u00e1lat\u00e1hoz sz\u00fcks\u00e9g van egy host-adapterre. Jelenleg k\u00e9t elterjedt lehet\u0151s\u00e9g van: Haszn\u00e1lj egy Waveshare Raspberry Pi CAN sapk\u00e1t vagy annak sz\u00e1mos kl\u00f3nja k\u00f6z\u00fcl egyet. Haszn\u00e1lj USB CAN-adaptert (p\u00e9ld\u00e1ul https://hacker-gadgets.com/product/cantact-usb-can-adapter/ ). Sz\u00e1mos k\u00fcl\u00f6nb\u00f6z\u0151 USB-CAN adapter \u00e1ll rendelkez\u00e9sre - az adapter kiv\u00e1laszt\u00e1sakor javasoljuk, hogy ellen\u0151rizd, hogy k\u00e9pes-e a candlelight firmware futtat\u00e1s\u00e1ra. (Sajnos azt tapasztaltuk, hogy n\u00e9h\u00e1ny USB-adapter hib\u00e1s firmware-t futtat, \u00e9s le van z\u00e1rva, ez\u00e9rt v\u00e1s\u00e1rl\u00e1s el\u0151tt ellen\u0151rizd.) Az adapter haszn\u00e1lat\u00e1hoz a gazdag\u00e9p oper\u00e1ci\u00f3s rendszert is konfigur\u00e1lni kell. Ez \u00e1ltal\u00e1ban \u00fagy t\u00f6rt\u00e9nik, hogy l\u00e9trehozunk egy \u00faj /etc/network/interfaces.d/can0 nev\u0171 f\u00e1jlt a k\u00f6vetkez\u0151 tartalommal: auto can0 iface can0 can static bitrate 500000 up ifconfig $IFACE txqueuelen 128 Ne feledd, hogy a \"Raspberry Pi CAN sapka\" is megk\u00f6veteli a config.txt m\u00f3dos\u00edt\u00e1s\u00e1t .","title":"Gazdag\u00e9p Hardver"},{"location":"CANBUS.html#az-ellenallasok-megszuntetese","text":"A CAN-buszon k\u00e9t 120 ohmos ellen\u00e1ll\u00e1snak kell lennie a CANH \u00e9s CANL vezet\u00e9kek k\u00f6z\u00f6tt. Ide\u00e1lis esetben egy-egy ellen\u00e1ll\u00e1s a busz mindk\u00e9t v\u00e9g\u00e9n tal\u00e1lhat\u00f3. Vedd figyelembe, hogy egyes eszk\u00f6z\u00f6k be\u00e9p\u00edtett 120 ohmos ellen\u00e1ll\u00e1ssal rendelkeznek (p\u00e9ld\u00e1ul a \"Waveshare Raspberry Pi CAN sapka\" egy beforrasztott ellen\u00e1ll\u00e1ssal rendelkezik, amelyet nem lehet k\u00f6nnyen elt\u00e1vol\u00edtani). Egyes eszk\u00f6z\u00f6k egy\u00e1ltal\u00e1n nem tartalmaznak ellen\u00e1ll\u00e1st. M\u00e1s eszk\u00f6z\u00f6k rendelkeznek egy mechanizmussal az ellen\u00e1ll\u00e1s kiv\u00e1laszt\u00e1s\u00e1ra (\u00e1ltal\u00e1ban egy \"pin jumper\" csatlakoztat\u00e1s\u00e1val). Mindenk\u00e9ppen ellen\u0151rizd a CAN-buszon l\u00e9v\u0151 \u00f6sszes eszk\u00f6z kapcsol\u00e1si rajz\u00e1t, hogy a buszon k\u00e9t \u00e9s csak k\u00e9t 120 Ohm-os ellen\u00e1ll\u00e1s van-e. Az ellen\u00e1ll\u00e1sok \u00e9rt\u00e9k\u00e9nek tesztel\u00e9s\u00e9hez a nyomtat\u00f3t \u00e1ramtalan\u00edthatja, \u00e9s egy multi-m\u00e9terrel ellen\u0151rizheti a CANH \u00e9s CANL vezet\u00e9kek k\u00f6z\u00f6tti ellen\u00e1ll\u00e1st. Egy helyesen bek\u00f6t\u00f6tt CAN-buszon ~60 ohmot kell m\u00e9rnie.","title":"Az ellen\u00e1ll\u00e1sok megsz\u00fcntet\u00e9se"},{"location":"CANBUS.html#a-canbus_uuid-keresese-uj-mikrovezerlokhoz","text":"A CAN-buszon l\u00e9v\u0151 minden mikrovez\u00e9rl\u0151h\u00f6z egyedi azonos\u00edt\u00f3t rendelnek a gy\u00e1ri chipazonos\u00edt\u00f3 alapj\u00e1n, amely minden mikrovez\u00e9rl\u0151be k\u00f3dolva van. Az egyes mikrokontrollerek eszk\u00f6zazonos\u00edt\u00f3j\u00e1nak megtal\u00e1l\u00e1s\u00e1hoz gy\u0151z\u0151dj meg arr\u00f3l, hogy a hardver megfelel\u0151en van bekapcsolva \u00e9s bek\u00f6tve, majd futtassa le: ~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0 Ha nem inicializ\u00e1lt CAN-eszk\u00f6z\u00f6ket \u00e9szlelsz, a fenti parancs a k\u00f6vetkez\u0151 sorokat fogja jelenteni: Tal\u00e1lt canbus_uuid=11aa22bb33cc, Alkalmaz\u00e1s: Klipper Minden eszk\u00f6z egyedi azonos\u00edt\u00f3val rendelkezik. A fenti p\u00e9ld\u00e1ban 11aa22bb33cc a mikrokontroller \"canbus_uuid\" azonos\u00edt\u00f3ja. Vedd figyelembe, hogy a canbus_query.py eszk\u00f6z csak az inicializ\u00e1latlan eszk\u00f6z\u00f6ket jelzi. Ha a Klipper (vagy egy hasonl\u00f3 eszk\u00f6z) konfigur\u00e1lja az eszk\u00f6zt, akkor az m\u00e1r nem jelenik meg a list\u00e1ban.","title":"A canbus_uuid keres\u00e9se \u00faj mikrovez\u00e9rl\u0151kh\u00f6z"},{"location":"CANBUS.html#a-klipper-beallitasa","text":"Friss\u00edtse a Klipper mcu konfigur\u00e1ci\u00f3t , hogy a CAN-buszon kereszt\u00fcl kommunik\u00e1ljon az eszk\u00f6zzel - p\u00e9ld\u00e1ul: [mcu my_can_mcu] canbus_uuid: 11aa22bb33cc","title":"A Klipper be\u00e1ll\u00edt\u00e1sa"},{"location":"CANBUS.html#usb-es-can-busz-kozotti-hid-uzemmod","text":"Egyes mikrovez\u00e9rl\u0151k t\u00e1mogatj\u00e1k az \"USB to CAN bus bridge\" \u00fczemm\u00f3d kiv\u00e1laszt\u00e1s\u00e1t a \"make menuconfig\" sor\u00e1n. Ez az \u00fczemm\u00f3d lehet\u0151v\u00e9 teheti, hogy egy mikrokontrollert \"USB CAN busz adapterk\u00e9nt\" \u00e9s Klipper csom\u00f3pontk\u00e9nt is haszn\u00e1ljunk. Amikor a Klipper ezt az \u00fczemm\u00f3dot haszn\u00e1lja, a mikrokontroller \"USB CAN busz adapterk\u00e9nt\" jelenik meg Linux alatt. Maga a \"Klipper bridge mcu\" \u00fagy jelenik meg, mintha ezen a CAN buszon lenne. A canbus_query.py seg\u00edts\u00e9g\u00e9vel azonos\u00edthat\u00f3 \u00e9s konfigur\u00e1lhat\u00f3, mint a t\u00f6bbi CAN buszos Klipper csom\u00f3pont. A t\u00f6bbi, t\u00e9nylegesen a CAN-buszon l\u00e9v\u0151 eszk\u00f6z mellett fog megjelenni. N\u00e9h\u00e1ny fontos megjegyz\u00e9s ennek az \u00fczemm\u00f3dnak a haszn\u00e1lat\u00e1hoz: A \"bridge mcu\" val\u00f3j\u00e1ban nem a CAN-buszon van. A hozz\u00e1 \u00e9rkez\u0151 \u00e9s t\u0151le \u00e9rkez\u0151 \u00fczenetek nem fogyasztanak s\u00e1vsz\u00e9less\u00e9get a CAN-buszon. Az MCU-t nem l\u00e1thatj\u00e1k m\u00e1s adapterek, amelyek esetleg a CAN-buszon vannak. A busszal val\u00f3 kommunik\u00e1ci\u00f3hoz sz\u00fcks\u00e9ges a can0 (vagy hasonl\u00f3) interf\u00e9sz konfigur\u00e1l\u00e1sa Linuxban. A Linux CAN-busz sebess\u00e9g\u00e9t \u00e9s a CAN-busz bit-id\u0151z\u00edt\u00e9si be\u00e1ll\u00edt\u00e1sait azonban a Klipper figyelmen k\u00edv\u00fcl hagyja. Jelenleg a CAN-busz frekvenci\u00e1j\u00e1t a \"make menuconfig\" futtat\u00e1sa sor\u00e1n kell megadni, \u00e9s a Linuxban megadott buszsebess\u00e9get figyelmen k\u00edv\u00fcl hagyjuk. Amikor a \"bridge mcu\" vissza\u00e1ll, a Linux letiltja a megfelel\u0151 can0 interf\u00e9szt. A FIRMWARE_RESTART \u00e9s a RESTART parancsok megfelel\u0151 kezel\u00e9se \u00e9rdek\u00e9ben aj\u00e1nlott az /etc/network/interfaces.d/can0 f\u00e1jlban az auto helyett az allow-hotplug parancsot haszn\u00e1lni. P\u00e9ld\u00e1ul: allow-hotplug can0 iface can0 can static bitrate 500000 up ifconfig $IFACE txqueuelen 128","title":"USB \u00e9s CAN-busz k\u00f6z\u00f6tti h\u00edd \u00fczemm\u00f3d"},{"location":"CANBUS_protocol.html","text":"CANBUS protokoll \u00b6 Ez a dokumentum a Klipper \u00e1ltal a CAN-buszon kereszt\u00fcl t\u00f6rt\u00e9n\u0151 kommunik\u00e1ci\u00f3hoz haszn\u00e1lt protokollt \u00edrja le. A Klipper CAN-busszal val\u00f3 konfigur\u00e1l\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a c\u00edm\u0171 dokumentumot. Mikrokontroller azonos\u00edt\u00f3 hozz\u00e1rendel\u00e9se \u00b6 A Klipper csak a CAN 2.0A szabv\u00e1nyos m\u00e9ret\u0171 CAN-busz csomagokat haszn\u00e1lja, amelyek 8 adatb\u00e1jtra \u00e9s egy 11 bites CAN-busz azonos\u00edt\u00f3ra korl\u00e1toz\u00f3dnak. A hat\u00e9kony kommunik\u00e1ci\u00f3 t\u00e1mogat\u00e1sa \u00e9rdek\u00e9ben minden mikrokontrollerhez fut\u00e1skor egy egyedi, 1 b\u00e1jtos CAN-busz nodeid ( canbus_nodeid ) van rendelve az \u00e1ltal\u00e1nos Klipper parancs \u00e9s v\u00e1laszforgalomhoz. A gazdag\u00e9pr\u0151l a mikrokontroller fel\u00e9 ir\u00e1nyul\u00f3 Klipper-parancs\u00fczenetek a canbus_nodeid * 2 + 256 CAN-busz azonos\u00edt\u00f3t haszn\u00e1lj\u00e1k, m\u00edg a mikrokontrollerr\u0151l a gazdag\u00e9p fel\u00e9 ir\u00e1nyul\u00f3 Klipper-v\u00e1lasz\u00fczenetek a canbus_nodeid * 2 + 256 + 1 azonos\u00edt\u00f3t. Minden mikrokontroller rendelkezik egy gy\u00e1rilag hozz\u00e1rendelt egyedi chipazonos\u00edt\u00f3val, amelyet az azonos\u00edt\u00f3 hozz\u00e1rendel\u00e9se sor\u00e1n haszn\u00e1lnak. Ez az azonos\u00edt\u00f3 meghaladhatja egy CAN csomag hossz\u00e1t, ez\u00e9rt egy hash f\u00fcggv\u00e9nyt haszn\u00e1lunk arra, hogy a gy\u00e1ri azonos\u00edt\u00f3b\u00f3l egy egyedi 6 b\u00e1jtos azonos\u00edt\u00f3t ( canbus_uuid ) gener\u00e1ljunk. Rendszergazdai \u00fczenetek \u00b6 Az rendszergazdai \u00fczeneteket az azonos\u00edt\u00f3 hozz\u00e1rendel\u00e9s\u00e9hez haszn\u00e1lj\u00e1k. A gazdatestt\u0151l a mikrokontrollerhez k\u00fcld\u00f6tt admin \u00fczenetek a CAN-buszon a 0x3f0 , a mikrokontrollerr\u0151l a gazdatesthez k\u00fcld\u00f6tt \u00fczenetek pedig a CAN-buszon a 0x3f1 azonos\u00edt\u00f3t haszn\u00e1lj\u00e1k. Minden mikrovez\u00e9rl\u0151 a 0x3f0 azonos\u00edt\u00f3n fogadja az \u00fczeneteket; ez az azonos\u00edt\u00f3 egy \"broadcast c\u00edm\" -nek tekinthet\u0151. CMD_QUERY_UNASSIGNED \u00fczenet \u00b6 Ez a parancs lek\u00e9rdezi az \u00f6sszes olyan mikrovez\u00e9rl\u0151t, amely m\u00e9g nem kapott canbus_nodeid azonos\u00edt\u00f3t. A nem hozz\u00e1rendelt mikrovez\u00e9rl\u0151k RESP_NEED_NODEID v\u00e1lasz\u00fczenettel v\u00e1laszolnak. A CMD_QUERY_UNASSIGNED \u00fczenet form\u00e1tuma: <1-byte message_id = 0x00> CMD_SET_KLIPPER_NODEID \u00fczenet \u00b6 Ez a parancs hozz\u00e1rendel egy canbus_nodeid mikrokontrollert egy adott canbus_uuid mikrokontrollerhez. A CMD_SET_KLIPPER_NODEID \u00fczenet form\u00e1tuma: <1-byte message_id = 0x01><6-byte canbus_uuid><1-byte canbus_nodeid>. RESP_NEED_NODEID \u00fczenet \u00b6 A RESP_NEED_NODEID \u00fczenet form\u00e1tuma: <1-byte message_id = 0x20><6-byte canbus_uuid><1-byte set_klipper_nodeid = 0x01>. Adatcsomagok \u00b6 A CMD_SET_KLIPPER_NODEID paranccsal nodeid-ot kapott mikrokontroller adatcsomagokat k\u00fcldhet \u00e9s fogadhat. A csom\u00f3pontot haszn\u00e1l\u00f3 \u00fczenetek csomagadatai ( canbus_nodeid * 2 + 256 ) egyszer\u0171en egy pufferbe ker\u00fclnek, \u00e9s amikor egy teljes mcu protokoll \u00fczenet tal\u00e1lhat\u00f3, annak tartalm\u00e1t elemezz\u00fck \u00e9s feldolgozzuk. Az adatokat b\u00e1jtfolyamk\u00e9nt kezelik. Nem k\u00f6vetelm\u00e9ny, hogy a Klipper \u00fczenetblokk kezdete egyezzen a CAN-buszcsomag kezdet\u00e9vel. Hasonl\u00f3k\u00e9ppen, az MCU protokoll \u00fczenetv\u00e1laszok a mikrokontrollerr\u0151l a gazdag\u00e9phez \u00fagy ker\u00fclnek elk\u00fcld\u00e9sre, hogy az \u00fczenetadatokat egy vagy t\u00f6bb csomagba m\u00e1solj\u00e1k a csom\u00f3pontnak a CAN-buszon val\u00f3 \u00e1tvitel\u00e9re vonatkoz\u00f3 azonos\u00edt\u00f3j\u00e1val ( canbus_nodeid * 2 + 256 + 1 ).","title":"CANBUS protokoll"},{"location":"CANBUS_protocol.html#canbus-protokoll","text":"Ez a dokumentum a Klipper \u00e1ltal a CAN-buszon kereszt\u00fcl t\u00f6rt\u00e9n\u0151 kommunik\u00e1ci\u00f3hoz haszn\u00e1lt protokollt \u00edrja le. A Klipper CAN-busszal val\u00f3 konfigur\u00e1l\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a c\u00edm\u0171 dokumentumot.","title":"CANBUS protokoll"},{"location":"CANBUS_protocol.html#mikrokontroller-azonosito-hozzarendelese","text":"A Klipper csak a CAN 2.0A szabv\u00e1nyos m\u00e9ret\u0171 CAN-busz csomagokat haszn\u00e1lja, amelyek 8 adatb\u00e1jtra \u00e9s egy 11 bites CAN-busz azonos\u00edt\u00f3ra korl\u00e1toz\u00f3dnak. A hat\u00e9kony kommunik\u00e1ci\u00f3 t\u00e1mogat\u00e1sa \u00e9rdek\u00e9ben minden mikrokontrollerhez fut\u00e1skor egy egyedi, 1 b\u00e1jtos CAN-busz nodeid ( canbus_nodeid ) van rendelve az \u00e1ltal\u00e1nos Klipper parancs \u00e9s v\u00e1laszforgalomhoz. A gazdag\u00e9pr\u0151l a mikrokontroller fel\u00e9 ir\u00e1nyul\u00f3 Klipper-parancs\u00fczenetek a canbus_nodeid * 2 + 256 CAN-busz azonos\u00edt\u00f3t haszn\u00e1lj\u00e1k, m\u00edg a mikrokontrollerr\u0151l a gazdag\u00e9p fel\u00e9 ir\u00e1nyul\u00f3 Klipper-v\u00e1lasz\u00fczenetek a canbus_nodeid * 2 + 256 + 1 azonos\u00edt\u00f3t. Minden mikrokontroller rendelkezik egy gy\u00e1rilag hozz\u00e1rendelt egyedi chipazonos\u00edt\u00f3val, amelyet az azonos\u00edt\u00f3 hozz\u00e1rendel\u00e9se sor\u00e1n haszn\u00e1lnak. Ez az azonos\u00edt\u00f3 meghaladhatja egy CAN csomag hossz\u00e1t, ez\u00e9rt egy hash f\u00fcggv\u00e9nyt haszn\u00e1lunk arra, hogy a gy\u00e1ri azonos\u00edt\u00f3b\u00f3l egy egyedi 6 b\u00e1jtos azonos\u00edt\u00f3t ( canbus_uuid ) gener\u00e1ljunk.","title":"Mikrokontroller azonos\u00edt\u00f3 hozz\u00e1rendel\u00e9se"},{"location":"CANBUS_protocol.html#rendszergazdai-uzenetek","text":"Az rendszergazdai \u00fczeneteket az azonos\u00edt\u00f3 hozz\u00e1rendel\u00e9s\u00e9hez haszn\u00e1lj\u00e1k. A gazdatestt\u0151l a mikrokontrollerhez k\u00fcld\u00f6tt admin \u00fczenetek a CAN-buszon a 0x3f0 , a mikrokontrollerr\u0151l a gazdatesthez k\u00fcld\u00f6tt \u00fczenetek pedig a CAN-buszon a 0x3f1 azonos\u00edt\u00f3t haszn\u00e1lj\u00e1k. Minden mikrovez\u00e9rl\u0151 a 0x3f0 azonos\u00edt\u00f3n fogadja az \u00fczeneteket; ez az azonos\u00edt\u00f3 egy \"broadcast c\u00edm\" -nek tekinthet\u0151.","title":"Rendszergazdai \u00fczenetek"},{"location":"CANBUS_protocol.html#cmd_query_unassigned-uzenet","text":"Ez a parancs lek\u00e9rdezi az \u00f6sszes olyan mikrovez\u00e9rl\u0151t, amely m\u00e9g nem kapott canbus_nodeid azonos\u00edt\u00f3t. A nem hozz\u00e1rendelt mikrovez\u00e9rl\u0151k RESP_NEED_NODEID v\u00e1lasz\u00fczenettel v\u00e1laszolnak. A CMD_QUERY_UNASSIGNED \u00fczenet form\u00e1tuma: <1-byte message_id = 0x00>","title":"CMD_QUERY_UNASSIGNED \u00fczenet"},{"location":"CANBUS_protocol.html#cmd_set_klipper_nodeid-uzenet","text":"Ez a parancs hozz\u00e1rendel egy canbus_nodeid mikrokontrollert egy adott canbus_uuid mikrokontrollerhez. A CMD_SET_KLIPPER_NODEID \u00fczenet form\u00e1tuma: <1-byte message_id = 0x01><6-byte canbus_uuid><1-byte canbus_nodeid>.","title":"CMD_SET_KLIPPER_NODEID \u00fczenet"},{"location":"CANBUS_protocol.html#resp_need_nodeid-uzenet","text":"A RESP_NEED_NODEID \u00fczenet form\u00e1tuma: <1-byte message_id = 0x20><6-byte canbus_uuid><1-byte set_klipper_nodeid = 0x01>.","title":"RESP_NEED_NODEID \u00fczenet"},{"location":"CANBUS_protocol.html#adatcsomagok","text":"A CMD_SET_KLIPPER_NODEID paranccsal nodeid-ot kapott mikrokontroller adatcsomagokat k\u00fcldhet \u00e9s fogadhat. A csom\u00f3pontot haszn\u00e1l\u00f3 \u00fczenetek csomagadatai ( canbus_nodeid * 2 + 256 ) egyszer\u0171en egy pufferbe ker\u00fclnek, \u00e9s amikor egy teljes mcu protokoll \u00fczenet tal\u00e1lhat\u00f3, annak tartalm\u00e1t elemezz\u00fck \u00e9s feldolgozzuk. Az adatokat b\u00e1jtfolyamk\u00e9nt kezelik. Nem k\u00f6vetelm\u00e9ny, hogy a Klipper \u00fczenetblokk kezdete egyezzen a CAN-buszcsomag kezdet\u00e9vel. Hasonl\u00f3k\u00e9ppen, az MCU protokoll \u00fczenetv\u00e1laszok a mikrokontrollerr\u0151l a gazdag\u00e9phez \u00fagy ker\u00fclnek elk\u00fcld\u00e9sre, hogy az \u00fczenetadatokat egy vagy t\u00f6bb csomagba m\u00e1solj\u00e1k a csom\u00f3pontnak a CAN-buszon val\u00f3 \u00e1tvitel\u00e9re vonatkoz\u00f3 azonos\u00edt\u00f3j\u00e1val ( canbus_nodeid * 2 + 256 + 1 ).","title":"Adatcsomagok"},{"location":"CONTRIBUTING.html","text":"Hozz\u00e1j\u00e1rul\u00e1s a Klipperhez \u00b6 K\u00f6sz\u00f6nj\u00fck, hogy hozz\u00e1j\u00e1rult a Klipperhez! Ez a dokumentum le\u00edrja a Klipper v\u00e1ltoztat\u00e1sokhoz val\u00f3 hozz\u00e1j\u00e1rul\u00e1s folyamat\u00e1t. K\u00e9rj\u00fck, tekintsd meg a kapcsolat oldalt a probl\u00e9ma bejelent\u00e9s\u00e9vel kapcsolatos inform\u00e1ci\u00f3k\u00e9rt vagy a fejleszt\u0151kkel val\u00f3 kapcsolatfelv\u00e9telre vonatkoz\u00f3 r\u00e9szletek\u00e9rt. A hozz\u00e1j\u00e1rul\u00e1si folyamat \u00e1ttekint\u00e9se \u00b6 A Klipperhez val\u00f3 hozz\u00e1j\u00e1rul\u00e1s \u00e1ltal\u00e1ban egy magas szint\u0171 folyamatot k\u00f6vet: A beny\u00fajt\u00f3 egy GitHub Pull Request l\u00e9trehoz\u00e1s\u00e1val kezdi, amikor egy beadv\u00e1ny k\u00e9szen \u00e1ll a sz\u00e9les k\u00f6r\u0171 telep\u00edt\u00e9sre. Amikor egy b\u00edr\u00e1l\u00f3 el\u00e9rhet\u0151 a review beny\u00fajt\u00e1s\u00e1hoz, akkor hozz\u00e1rendeli mag\u00e1t a Pull Requesthez a GitHubon. A fel\u00fclvizsg\u00e1lat c\u00e9lja a hib\u00e1k keres\u00e9se \u00e9s annak ellen\u0151rz\u00e9se, hogy a beadv\u00e1ny k\u00f6veti-e a dokument\u00e1lt ir\u00e1nyelveket. Sikeres fel\u00fclvizsg\u00e1lat ut\u00e1n a fel\u00fclvizsg\u00e1l\u00f3 \"j\u00f3v\u00e1hagyja a fel\u00fclvizsg\u00e1latot\" a GitHubon, \u00e9s egy karbantart\u00f3 \u00e1tvezeti a m\u00f3dos\u00edt\u00e1st a Klipper master \u00e1g\u00e1ba. Ha fejleszt\u00e9seken dolgozol, fontold meg egy t\u00e9ma ind\u00edt\u00e1s\u00e1t (vagy a t\u00e9m\u00e1hoz val\u00f3 hozz\u00e1j\u00e1rul\u00e1st) a Klipper Discourse oldalon. A f\u00f3rumon foly\u00f3 vita jav\u00edthatja a fejleszt\u00e9si munka l\u00e1that\u00f3s\u00e1g\u00e1t, \u00e9s vonzhat m\u00e1sokat is, akik \u00e9rdekl\u0151dnek az \u00faj munka tesztel\u00e9se ir\u00e1nt. Mire sz\u00e1m\u00edthatunk egy fel\u00fclvizsg\u00e1lat sor\u00e1n \u00b6 A Klipperhez val\u00f3 hozz\u00e1j\u00e1rul\u00e1sokat az egyes\u00edt\u00e9s el\u0151tt fel\u00fclvizsg\u00e1lj\u00e1k. A fel\u00fclvizsg\u00e1lati folyamat els\u0151dleges c\u00e9lja a hib\u00e1k ellen\u0151rz\u00e9se, valamint annak ellen\u0151rz\u00e9se, hogy a beadv\u00e1ny megfelel-e a Klipper dokument\u00e1ci\u00f3j\u00e1ban meghat\u00e1rozott ir\u00e1nyelveknek. Term\u00e9szetesen egy feladatot sokf\u00e9lek\u00e9ppen lehet elv\u00e9gezni; a fel\u00fclvizsg\u00e1lat c\u00e9lja nem az, hogy megvitassa a \"legjobb\" v\u00e9grehajt\u00e1st. Ahol lehets\u00e9ges, a fel\u00fclvizsg\u00e1lati megbesz\u00e9l\u00e9sek ink\u00e1bb a t\u00e9nyekre \u00e9s a m\u00e9r\u00e9sekre \u00f6sszpontos\u00edtanak. A beadv\u00e1nyok t\u00f6bbs\u00e9ge visszajelz\u00e9st eredm\u00e9nyez egy fel\u00fclvizsg\u00e1latr\u00f3l. K\u00e9sz\u00fclj fel a visszajelz\u00e9sek beszerz\u00e9s\u00e9re, tov\u00e1bbi r\u00e9szletek megad\u00e1s\u00e1ra \u00e9s sz\u00fcks\u00e9g eset\u00e9n a beadv\u00e1ny friss\u00edt\u00e9s\u00e9re. Gyakori dolgok, amiket a b\u00edr\u00e1l\u00f3 keres: Hib\u00e1tlan-e a beadv\u00e1ny, \u00e9s k\u00e9szen \u00e1ll-e a sz\u00e9les k\u00f6r\u0171 bevezet\u00e9sre?A beny\u00fajt\u00f3knak a beny\u00fajt\u00e1s el\u0151tt tesztelni\u00fck kell a v\u00e1ltoztat\u00e1sokat. A b\u00edr\u00e1l\u00f3k keresik a hib\u00e1kat, de \u00e1ltal\u00e1ban nem tesztelik a bek\u00fcld\u00f6tt anyagokat. Egy elfogadott beadv\u00e1nyt gyakran az elfogad\u00e1st k\u00f6vet\u0151 n\u00e9h\u00e1ny h\u00e9ten bel\u00fcl t\u00f6bb ezer nyomtat\u00f3hoz juttatnak el. A beadv\u00e1nyok min\u0151s\u00e9g\u00e9t ez\u00e9rt priorit\u00e1snak tekintik. A f\u0151 Klipper3d/klipper GitHub t\u00e1rol\u00f3 nem fogad el k\u00eds\u00e9rleti munk\u00e1t. A bek\u00fcld\u0151knek a k\u00eds\u00e9rletez\u00e9st, hibakeres\u00e9st \u00e9s tesztel\u00e9st a saj\u00e1t t\u00e1rol\u00f3jukban kell elv\u00e9gezni\u00fck. A Klipper Discourse szerver j\u00f3 hely arra, hogy felh\u00edvjuk a figyelmet az \u00faj munk\u00e1ra, \u00e9s megtal\u00e1ljuk azokat a felhaszn\u00e1l\u00f3kat, akiket \u00e9rdekel a val\u00f3s visszajelz\u00e9s. A beadv\u00e1nyoknak \u00e1t kell menni\u00fck az \u00f6sszes regresszi\u00f3s teszteseten . A k\u00f3dban l\u00e9v\u0151 hiba jav\u00edt\u00e1sakor a beny\u00fajt\u00f3knak \u00e1ltal\u00e1ban v\u00e9ve tiszt\u00e1ban kell lenni\u00fck a hiba kiv\u00e1lt\u00f3 ok\u00e1val, \u00e9s a jav\u00edt\u00e1snak ezt a kiv\u00e1lt\u00f3 okot kell megc\u00e9loznia. A bek\u00fcld\u00f6tt k\u00f3dok nem tartalmazhatnak t\u00falzottan sok hibakeres\u00e9si k\u00f3dot, hibakeres\u00e9si opci\u00f3t vagy fut\u00e1sidej\u0171 hibakeres\u00e9si napl\u00f3z\u00e1st. A k\u00f3dbeadv\u00e1nyokhoz f\u0171z\u00f6tt megjegyz\u00e9seknek a k\u00f3d karbantart\u00e1s\u00e1nak jav\u00edt\u00e1s\u00e1ra kell \u00f6sszpontos\u00edtaniuk. A beadv\u00e1nyok nem tartalmazhatnak \"kikomment\u00e1lt k\u00f3dot\" vagy t\u00falzottan sok, kor\u00e1bbi megval\u00f3s\u00edt\u00e1sokat le\u00edr\u00f3 megjegyz\u00e9st. Nem lehetnek t\u00falzott m\u00e9rt\u00e9k\u0171 \"todo\" megjegyz\u00e9sek. A dokument\u00e1ci\u00f3 friss\u00edt\u00e9sei nem jelenthetik ki, hogy azok \"folyamatban l\u00e9v\u0151 munk\u00e1k\". A beadott p\u00e1ly\u00e1zat \"nagy hat\u00e1s\u00fa\" el\u0151nyt jelent-e a val\u00f3s felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra, akik val\u00f3s feladatokat l\u00e1tnak el?A b\u00edr\u00e1l\u00f3knak - legal\u00e1bbis a saj\u00e1t fej\u00fckben - nagyj\u00e1b\u00f3l meg kell hat\u00e1rozniuk, hogy \"ki a c\u00e9lk\u00f6z\u00f6ns\u00e9g\", hogy \"mekkora a c\u00e9lk\u00f6z\u00f6ns\u00e9g\", hogy \"milyen el\u0151ny\u00f6kh\u00f6z\" jutnak, hogy \"az el\u0151ny\u00f6ket hogyan m\u00e9rik\", \u00e9s hogy \"milyen eredm\u00e9nyeket hoznak ezek a m\u00e9r\u00e9si tesztek\". A legt\u00f6bb esetben ez mind a beny\u00fajt\u00f3, mind a b\u00edr\u00e1l\u00f3 sz\u00e1m\u00e1ra nyilv\u00e1nval\u00f3, \u00e9s a b\u00edr\u00e1lat sor\u00e1n nem ker\u00fcl kifejezett kijelent\u00e9sre. A mester Klipper \u00e1gba k\u00fcld\u00f6tt beadv\u00e1nyok v\u00e1rhat\u00f3an figyelemre m\u00e9lt\u00f3 c\u00e9lk\u00f6z\u00f6ns\u00e9ggel rendelkeznek. \u00c1ltal\u00e1nos \"\u00f6k\u00f6lszab\u00e1lyk\u00e9nt\" a beadv\u00e1nyoknak legal\u00e1bb 100 val\u00f3s felhaszn\u00e1l\u00f3b\u00f3l \u00e1ll\u00f3 felhaszn\u00e1l\u00f3i b\u00e1zist kell megc\u00e9lozniuk. Ha egy b\u00edr\u00e1l\u00f3 r\u00e9szleteket k\u00e9r egy beadv\u00e1ny \"haszn\u00e1r\u00f3l\", k\u00e9rj\u00fck, ne tekintsd ezt kritik\u00e1nak. Az, hogy k\u00e9pesek legy\u00fcnk meg\u00e9rteni egy v\u00e1ltoztat\u00e1s val\u00f3s el\u0151nyeit, a fel\u00fclvizsg\u00e1lat term\u00e9szetes r\u00e9sze. Az el\u0151ny\u00f6k megvitat\u00e1sakor el\u0151ny\u00f6sebb a \"t\u00e9nyek \u00e9s m\u00e9r\u00e9sek\" megvitat\u00e1sa. \u00c1ltal\u00e1ban v\u00e9ve a b\u00edr\u00e1l\u00f3k nem a \"valaki hasznosnak tal\u00e1lhatja az X opci\u00f3t\", sem pedig a \"ez a beadv\u00e1ny olyan funkci\u00f3t ad hozz\u00e1, amelyet az X firmware val\u00f3s\u00edt meg\" form\u00e1j\u00fa v\u00e1laszokat keresik. Ehelyett \u00e1ltal\u00e1ban el\u0151ny\u00f6sebb, ha r\u00e9szletesen t\u00e1rgyalj\u00e1k, hogy a min\u0151s\u00e9gjavul\u00e1st hogyan m\u00e9rt\u00e9k, \u00e9s milyen eredm\u00e9nyeket hoztak ezek a m\u00e9r\u00e9sek - p\u00e9ld\u00e1ul: \"az Acme X1000 nyomtat\u00f3kon v\u00e9gzett tesztek a ...k\u00e9pen l\u00e1that\u00f3 javul\u00f3 sarkokat mutatnak \", vagy p\u00e9ld\u00e1ul \"az X val\u00f3s t\u00e1rgy nyomtat\u00e1si ideje egy Foomatic X900 nyomtat\u00f3n 4 \u00f3r\u00e1r\u00f3l 3,5 \u00f3r\u00e1ra cs\u00f6kkent\". Mag\u00e1t\u00f3l \u00e9rtet\u0151dik, hogy az ilyen t\u00edpus\u00fa tesztel\u00e9s jelent\u0151s id\u0151t \u00e9s er\u0151fesz\u00edt\u00e9st ig\u00e9nyel. A Klipper legjelent\u0151sebb funkci\u00f3inak n\u00e9melyike h\u00f3napokig tartott a megbesz\u00e9l\u00e9sek, \u00e1tdolgoz\u00e1sok, tesztel\u00e9sek \u00e9s dokument\u00e1ci\u00f3k sor\u00e1n, miel\u0151tt beolvadt a master \u00e1gba. Minden \u00faj modulnak, konfigur\u00e1ci\u00f3s opci\u00f3nak, parancsnak, parancsparam\u00e9ternek \u00e9s dokumentumnak \"nagy hat\u00e1ssal\" kell rendelkeznie. Nem akarjuk a felhaszn\u00e1l\u00f3kat olyan opci\u00f3kkal terhelni, amelyeket nem tudnak \u00e9sszer\u0171en konfigur\u00e1lni, \u00e9s nem akarjuk \u0151ket olyan opci\u00f3kkal terhelni, amelyek nem ny\u00fajtanak sz\u00e1mottev\u0151 el\u0151nyt. A b\u00edr\u00e1l\u00f3 k\u00e9rhet pontos\u00edt\u00e1st arr\u00f3l, hogy a felhaszn\u00e1l\u00f3nak hogyan kell be\u00e1ll\u00edtania egy opci\u00f3t - az ide\u00e1lis v\u00e1lasz tartalmazza a folyamat r\u00e9szleteit - p\u00e9ld\u00e1ul: \"a MegaX500 felhaszn\u00e1l\u00f3inak az X opci\u00f3t 99,3-ra kell be\u00e1ll\u00edtaniuk, m\u00edg az Elite100Y felhaszn\u00e1l\u00f3inak az X opci\u00f3t a ...\" elj\u00e1r\u00e1ssal kell kalibr\u00e1lniuk...\". Ha az opci\u00f3 c\u00e9lja, hogy a k\u00f3dot modul\u00e1risabb\u00e1 tegye, akkor ink\u00e1bb haszn\u00e1lj k\u00f3dkonstansokat a felhaszn\u00e1l\u00f3val szemben\u00e9z\u0151 konfigur\u00e1ci\u00f3s opci\u00f3k helyett. Az \u00faj modulok, \u00faj opci\u00f3k \u00e9s \u00faj param\u00e9terek nem biztos\u00edthatnak hasonl\u00f3 funkci\u00f3kat a megl\u00e9v\u0151 modulokhoz - ha a k\u00fcl\u00f6nbs\u00e9gek \u00f6nk\u00e9nyesek, akkor ink\u00e1bb a megl\u00e9v\u0151 rendszert kell haszn\u00e1lni, vagy a megl\u00e9v\u0151 k\u00f3dot kell \u00e1talak\u00edtani. A beadv\u00e1ny szerz\u0151i joga egy\u00e9rtelm\u0171, nem h\u00e1lap\u00e9nz \u00e9s \u00f6sszeegyeztethet\u0151?Az \u00faj C \u00e9s Python f\u00e1jloknak egy\u00e9rtelm\u0171 szerz\u0151i jogi nyilatkozatot kell tartalmazniuk. Az el\u0151nyben r\u00e9szes\u00edtett form\u00e1tumot l\u00e1sd a megl\u00e9v\u0151 f\u00e1jlokban. A megl\u00e9v\u0151 f\u00e1jl szerz\u0151i jog\u00e1nak deklar\u00e1l\u00e1sa a f\u00e1jl kisebb m\u00f3dos\u00edt\u00e1sai eset\u00e9n elhanyagolhat\u00f3. A harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 k\u00f3dnak kompatibilisnek kell lennie a Klipper licenszel (GNU GPLv3). A nagyobb, harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 k\u00f3dkieg\u00e9sz\u00edt\u00e9seket a lib/ k\u00f6nyvt\u00e1rba kell helyezni (\u00e9s a lib/README k\u00f6nyvt\u00e1rban le\u00edrt form\u00e1tumot kell k\u00f6vetni). A bek\u00fcld\u0151knek meg kell adniuk egy Signed-off-by line sort a teljes val\u00f3di nev\u00fckkel. Ez azt jelzi, hogy a beny\u00fajt\u00f3 egyet\u00e9rt a fejleszt\u0151i sz\u00e1rmaz\u00e1si igazol\u00e1ssal . A beny\u00fajt\u00e1s k\u00f6veti a Klipper dokument\u00e1ci\u00f3ban meghat\u00e1rozott ir\u00e1nyelveket?K\u00fcl\u00f6n\u00f6sen a k\u00f3dnak a , a konfigur\u00e1ci\u00f3s f\u00e1jloknak pedig a c\u00edm\u0171 dokumentumban tal\u00e1lhat\u00f3 ir\u00e1nyelveket kell k\u00f6vetni\u00fck. A Klipper dokument\u00e1ci\u00f3 friss\u00edtve van az \u00faj v\u00e1ltoz\u00e1soknak megfelel\u0151en?Legal\u00e1bb a referenciadokument\u00e1ci\u00f3t kell friss\u00edteni a k\u00f3d megfelel\u0151 v\u00e1ltoztat\u00e1saival: Minden parancsot \u00e9s parancsparam\u00e9tert a dokumentumban kell dokument\u00e1lni. Minden felhaszn\u00e1l\u00f3 el\u0151tt \u00e1ll\u00f3 modult \u00e9s azok konfigur\u00e1ci\u00f3s param\u00e9tereit dokument\u00e1lni kell a f\u00e1jlban. Minden export\u00e1lt \"\u00e1llapotv\u00e1ltoz\u00f3t\" dokument\u00e1lni kell . Minden \u00faj \"webhooks\" \u00e9s param\u00e9tereiket dokument\u00e1lni kell . Minden olyan m\u00f3dos\u00edt\u00e1s, amely nem visszafel\u00e9 kompatibilis m\u00f3dos\u00edt\u00e1st hajt v\u00e9gre egy parancs vagy konfigur\u00e1ci\u00f3s f\u00e1jl be\u00e1ll\u00edt\u00e1s\u00e1n, dokument\u00e1lni kell a dokumentumban. Az \u00faj dokumentumokat hozz\u00e1 kell adni az f\u00e1jlhoz, \u00e9s hozz\u00e1 kell adni a weboldal index\u00e9hez docs/_klipper3d/mkdocs.yml . A v\u00e9gleges\u00edt\u00e9sek j\u00f3l megform\u00e1ltak, v\u00e9gleges\u00edt\u00e9sk\u00e9nt egyetlen t\u00e9m\u00e1val foglalkoznak, \u00e9s f\u00fcggetlenek?A k\u00e9relmi \u00fczeneteknek a prefer\u00e1lt form\u00e1tumot kell k\u00f6vetni\u00fck. A k\u00e9relmeknek nem lehet \u00f6sszeolvad\u00e1si konfliktusuk. A Klipper master \u00e1g\u00e1hoz val\u00f3 \u00faj hozz\u00e1ad\u00e1sok mindig egy \"rebase\" vagy \"squash and rebase\" seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nnek. A beny\u00fajt\u00f3knak \u00e1ltal\u00e1ban nem sz\u00fcks\u00e9ges a Klipper f\u0151adatt\u00e1r minden egyes friss\u00edt\u00e9s\u00e9n\u00e9l \u00fajra egyes\u00edteni\u00fck a beadv\u00e1nyukat. Ha azonban \u00f6sszeolvaszt\u00e1si konfliktus van, akkor a beny\u00fajt\u00f3knak aj\u00e1nlott a git rebase haszn\u00e1lata a konfliktus megold\u00e1s\u00e1ra. Minden egyes k\u00e9relemnek egyetlen magas szint\u0171 v\u00e1ltoztat\u00e1ssal kell foglalkoznia. A nagyobb v\u00e1ltoztat\u00e1sokat t\u00f6bb f\u00fcggetlen k\u00e9relemre kell bontani. Minden commitnak \"\u00f6n\u00e1ll\u00f3an kell \u00e1llnia\", hogy az olyan eszk\u00f6z\u00f6k, mint a git bisect \u00e9s git revert megb\u00edzhat\u00f3an m\u0171k\u00f6djenek. A feh\u00e9rter\u00fcleti v\u00e1ltoztat\u00e1sokat nem szabad \u00f6sszekeverni a funkcion\u00e1lis v\u00e1ltoztat\u00e1sokkal. \u00c1ltal\u00e1noss\u00e1gban elmondhat\u00f3, hogy az indokolatlan sz\u00f3k\u00f6z m\u00f3dos\u00edt\u00e1sokat nem fogadjuk el, kiv\u00e9ve, ha azok a m\u00f3dos\u00edtand\u00f3 k\u00f3d meg\u00e1llap\u00edtott \"tulajdonos\u00e1t\u00f3l\" sz\u00e1rmaznak. A Klipper nem alkalmaz szigor\u00fa \"k\u00f3dol\u00e1si st\u00edlus \u00fatmutat\u00f3t\", de a megl\u00e9v\u0151 k\u00f3d m\u00f3dos\u00edt\u00e1sainak k\u00f6vetni\u00fck kell a megl\u00e9v\u0151 k\u00f3d magas szint\u0171 k\u00f3d\u00e1raml\u00e1s\u00e1t, k\u00f3dbeh\u00faz\u00e1si st\u00edlus\u00e1t \u00e9s form\u00e1tum\u00e1t. Az \u00faj modulok \u00e9s rendszerek beny\u00fajt\u00e1sa eset\u00e9n a k\u00f3dol\u00e1si st\u00edlus rugalmasabb, de el\u0151ny\u00f6sebb, ha az \u00faj k\u00f3d bels\u0151leg konzisztens st\u00edlust k\u00f6vet, \u00e9s \u00e1ltal\u00e1ban az ipar\u00e1gi k\u00f3dol\u00e1si norm\u00e1kat k\u00f6veti. A fel\u00fclvizsg\u00e1lat c\u00e9lja nem a \"jobb megval\u00f3s\u00edt\u00e1sok\" megvitat\u00e1sa. Ha azonban egy b\u00edr\u00e1l\u00f3nak neh\u00e9zs\u00e9get okoz egy beadott p\u00e1ly\u00e1zat megval\u00f3s\u00edt\u00e1s\u00e1nak meg\u00e9rt\u00e9se, akkor k\u00e9rhet v\u00e1ltoztat\u00e1sokat a megval\u00f3s\u00edt\u00e1s \u00e1tl\u00e1that\u00f3bb\u00e1 t\u00e9tele \u00e9rdek\u00e9ben. K\u00fcl\u00f6n\u00f6sen, ha a b\u00edr\u00e1l\u00f3k nem tudj\u00e1k meggy\u0151zni magukat arr\u00f3l, hogy egy beadott p\u00e1ly\u00e1zat hib\u00e1tlan, akkor v\u00e1ltoztat\u00e1sokra lehet sz\u00fcks\u00e9g. A fel\u00fclvizsg\u00e1lat r\u00e9szek\u00e9nt egy fel\u00fclvizsg\u00e1l\u00f3 l\u00e9trehozhat egy alternat\u00edv k\u00e9r\u00e9st egy t\u00e9m\u00e1hoz. Ezt az\u00e9rt lehet megtenni, hogy elker\u00fclhet\u0151 legyen a t\u00falzott \"oda-vissza\" a kisebb elj\u00e1r\u00e1si k\u00e9rd\u00e9sekben, \u00e9s \u00edgy egyszer\u0171s\u00f6dj\u00f6n a beny\u00fajt\u00e1si folyamat. Ez az\u00e9rt is megt\u00f6rt\u00e9nhet, mert a vita arra \u00f6szt\u00f6nzi a b\u00edr\u00e1l\u00f3t, hogy egy alternat\u00edv implement\u00e1ci\u00f3t k\u00e9sz\u00edtsen. Mindk\u00e9t helyzet a fel\u00fclvizsg\u00e1lat norm\u00e1lis eredm\u00e9nye, \u00e9s nem tekinthet\u0151 az eredeti beadv\u00e1ny kritik\u00e1j\u00e1nak. Seg\u00edts\u00e9g a fel\u00fclvizsg\u00e1latokban \u00b6 Nagyra \u00e9rt\u00e9kelj\u00fck a seg\u00edts\u00e9get a v\u00e9lem\u00e9nyekkel kapcsolatban! Nem sz\u00fcks\u00e9ges list\u00e1zott \u00e9rt\u00e9kel\u0151nek lenni az \u00e9rt\u00e9kel\u00e9s elv\u00e9gz\u00e9s\u00e9hez. A GitHub k\u00e9relmek beny\u00fajt\u00f3it is arra \u00f6szt\u00f6n\u00f6zz\u00fck, hogy saj\u00e1t beadv\u00e1nyaikat vizsg\u00e1lj\u00e1k fel\u00fcl. A fel\u00fclvizsg\u00e1lat sor\u00e1n seg\u00edtsen, k\u00f6vesse a mire sz\u00e1m\u00edthat egy fel\u00fclvizsg\u00e1lat sor\u00e1n pontban le\u00edrt l\u00e9p\u00e9seket a bek\u00fcld\u00e9s ellen\u0151rz\u00e9s\u00e9hez. A fel\u00fclvizsg\u00e1lat befejez\u00e9se ut\u00e1n adj hozz\u00e1 egy megjegyz\u00e9st a GitHub k\u00e9r\u00e9sekhez a meg\u00e1llap\u00edt\u00e1sokkal. Ha a beny\u00fajt\u00e1s \u00e1tmegy az ellen\u0151rz\u00e9sen, akkor k\u00e9rj\u00fck, ezt kifejezetten jelezze a megjegyz\u00e9sben. P\u00e9ld\u00e1ul valami olyasmit, hogy \"\u00c1tn\u00e9ztem ezt a m\u00f3dos\u00edt\u00e1st a CONTRIBUTING dokumentumban le\u00edrtak szerint, \u00e9s minden j\u00f3nak t\u0171nik sz\u00e1momra\". Ha nem tudta elv\u00e9gezni a fel\u00fclvizsg\u00e1lat egyes l\u00e9p\u00e9seit, akkor k\u00e9rj\u00fck, kifejezetten jelezze, hogy mely l\u00e9p\u00e9seket vizsg\u00e1lta fel\u00fcl, \u00e9s melyeket nem. P\u00e9ld\u00e1ul valami olyasmit, mint: \"Nem ellen\u0151riztem a k\u00f3dot hib\u00e1k szempontj\u00e1b\u00f3l, de minden m\u00e1st \u00e1tn\u00e9ztem a CONTRIBUTING dokumentumban, \u00e9s \u00fagy t\u0171nik, hogy minden rendben van\". A beadv\u00e1nyok tesztel\u00e9s\u00e9t is \u00e9rt\u00e9kelj\u00fck. Ha a k\u00f3dot tesztelt\u00fck, k\u00e9rj\u00fck \u00edrjon egy megjegyz\u00e9st a GitHub k\u00e9r\u00e9sekhez a tesztel\u00e9s eredm\u00e9ny\u00e9vel - sikerrel vagy sikertelens\u00e9ggel. K\u00e9rj\u00fck, kifejezetten jelezze, hogy a k\u00f3dot tesztelt\u00e9k, \u00e9s az eredm\u00e9nyeket - p\u00e9ld\u00e1ul valami olyasmit, mint: \"Leteszteltem ezt a k\u00f3dot az Acme900Z nyomtat\u00f3mon egy v\u00e1za nyomtat\u00e1s\u00e1val, \u00e9s az eredm\u00e9nyek j\u00f3k voltak\". \u00c9rt\u00e9kel\u0151k \u00b6 A Klipper \"\u00e9rt\u00e9kel\u0151k\" a k\u00f6vetkez\u0151k: N\u00e9v GitHub azonos\u00edt\u00f3 \u00c9rdekl\u0151d\u00e9si k\u00f6r\u00f6k Dmitry Butyugin @dmbutyugin Bemenetform\u00e1l\u00e1s, rezonancia vizsg\u00e1lat, kinematika Eric Callahan @Arksine T\u00e1rgyasztal szintez\u00e9se, MCU \u00e9get\u00e9s Kevin O'Connor @KevinOConnor Mag mozg\u00e1si rendszer, mikrokontroller k\u00f3d Paul McGowan @mental405 Konfigur\u00e1ci\u00f3s f\u00e1jlok, dokument\u00e1ci\u00f3 K\u00e9rj\u00fck, ne \"pingelje\" a b\u00edr\u00e1l\u00f3kat, \u00e9s ne k\u00fcldj\u00f6n beadv\u00e1nyokat nekik. Az \u00f6sszes b\u00edr\u00e1l\u00f3 figyelemmel k\u00eds\u00e9ri a f\u00f3rumokat \u00e9s a PR-eket, \u00e9s ha van idej\u00fck, akkor v\u00e1llalj\u00e1k a b\u00edr\u00e1latokat. A Klipper \"karbantart\u00f3k\" a k\u00f6vetkez\u0151k: N\u00e9v GitHub n\u00e9v Kevin O'Connor @KevinOConnor A megb\u00edz\u00e1si \u00fczenetek form\u00e1tuma \u00b6 Minden megb\u00edz\u00e1snak a k\u00f6vetkez\u0151h\u00f6z hasonl\u00f3an form\u00e1zott \u00fczenetet kell tartalmaznia: modul: Nagybet\u0171s, r\u00f6vid (legfeljebb 50 karakteres) \u00f6sszefoglal\u00f3. Sz\u00fcks\u00e9g eset\u00e9n r\u00e9szletesebb magyar\u00e1z\u00f3 sz\u00f6veg. K\u00f6r\u00fclbel\u00fcl 75 karakter. Bizonyos kontextusokban az els\u0151 sort \u00fagy kezelik, mint a az e-mail t\u00e1rgya, a sz\u00f6veg t\u00f6bbi r\u00e9sz\u00e9t pedig sz\u00f6vegtestk\u00e9nt. Az \u00fcres sor, amely elv\u00e1lasztja az \u00f6sszefoglal\u00f3t a sz\u00f6vegtestt\u0151l, kritikus (kiv\u00e9ve, ha kihagyod a t\u00f6rzssz\u00f6veget teljesen); az olyan eszk\u00f6z\u00f6k, mint a rebase, \u00f6sszezavarodhatnak, ha a kett\u0151t egy\u00fctt futtatj\u00e1k. Az \u00fcres sorok ut\u00e1n tov\u00e1bbi bekezd\u00e9sek k\u00f6vetkeznek.. Al\u00e1\u00edr\u00e1s: N\u00e9v <myemail@example.org> A fenti p\u00e9ld\u00e1ban module egy f\u00e1jl vagy k\u00f6nyvt\u00e1r neve kell, hogy legyen a t\u00e1rol\u00f3ban (f\u00e1jlkiterjeszt\u00e9s n\u00e9lk\u00fcl). P\u00e9ld\u00e1ul clocksync: Jav\u00edtsuk ki a pause() h\u00edv\u00e1sban l\u00e9v\u0151 el\u00edr\u00e1st a csatlakoz\u00e1s idej\u00e9n . A moduln\u00e9v megad\u00e1s\u00e1nak c\u00e9lja a k\u00e9relmi \u00fczenetben az, hogy seg\u00edtsen kontextust biztos\u00edtani a k\u00e9relmi megjegyz\u00e9sekhez. Fontos, hogy minden k\u00e9r\u00e9sn\u00e9l legyen egy \"Signed-off-by\" sor. Ez igazolja, hogy egyet\u00e9rtesz a fejleszt\u0151i eredetigazol\u00e1ssal . Tartalmaznia kell a val\u00f3di nevet (sajn\u00e1lom, nincs \u00e1ln\u00e9v vagy n\u00e9vtelen hozz\u00e1j\u00e1rul\u00e1s), \u00e9s tartalmaznia kell egy aktu\u00e1lis e-mail c\u00edmet. Hozz\u00e1j\u00e1rul\u00e1s a Klipper Ford\u00edt\u00e1sokhoz \u00b6 Klipper-ford\u00edt\u00e1si Projekt egy olyan projekt, amely a Klipper k\u00fcl\u00f6nb\u00f6z\u0151 nyelvekre val\u00f3 ford\u00edt\u00e1s\u00e1t t\u0171zte ki c\u00e9lul. A Weblate az \u00f6sszes Gettext stringet t\u00e1rolja a ford\u00edt\u00e1shoz \u00e9s fel\u00fclvizsg\u00e1lathoz. A klipper3d.org oldalon megjelen\u00edthet\u0151k a helyi nyelvek, ha megfelelnek a k\u00f6vetkez\u0151 k\u00f6vetelm\u00e9nyeknek: 75% Teljes lefedetts\u00e9g Minden c\u00edm (H1) le van ford\u00edtva Egy friss\u00edtett navig\u00e1ci\u00f3s hierarchia PR a klipper-ford\u00edt\u00e1sokban. A domain-specifikus kifejez\u00e9sek ford\u00edt\u00e1s\u00e1val j\u00e1r\u00f3 frusztr\u00e1ci\u00f3 cs\u00f6kkent\u00e9se \u00e9s a folyamatban l\u00e9v\u0151 ford\u00edt\u00e1sok megismer\u00e9se \u00e9rdek\u00e9ben k\u00fcldhet PR-t, amely m\u00f3dos\u00edtja a Klipper-ford\u00edt\u00e1si Projekt readme.md f\u00e1jlt. Amint a ford\u00edt\u00e1s elk\u00e9sz\u00fclt, a Klipper-projekt megfelel\u0151 m\u00f3dos\u00edt\u00e1sa elv\u00e9gezhet\u0151. Ha egy ford\u00edt\u00e1s m\u00e1r l\u00e9tezik a Klipper adatt\u00e1rban, \u00e9s m\u00e1r nem felel meg a fenti ellen\u0151rz\u0151 list\u00e1nak, akkor egy h\u00f3nap ut\u00e1n friss\u00edt\u00e9s n\u00e9lk\u00fcl elavultnak lesz jel\u00f6lve. Ha a k\u00f6vetelm\u00e9nyek teljes\u00fclnek, akkor: klipper-ford\u00edt\u00e1si adatt\u00e1r friss\u00edt\u00e9se active_translations Opcion\u00e1lis: adjunk hozz\u00e1 egy manual-index.md f\u00e1jlt a klipper-translations repository's docs\\locals\\<lang> mapp\u00e1ba a nyelvspecifikus index.md helyett (a gener\u00e1lt index.md nem renderelhet\u0151 helyesen). Ismert probl\u00e9m\u00e1k: Jelenleg a dokument\u00e1ci\u00f3ban nincs m\u00f3dszer a k\u00e9pek helyes ford\u00edt\u00e1s\u00e1ra Az mkdocs.yml-ben nem lehet c\u00edmeket ford\u00edtani.","title":"Hozz\u00e1j\u00e1rul\u00e1s a Klipperhez"},{"location":"CONTRIBUTING.html#hozzajarulas-a-klipperhez","text":"K\u00f6sz\u00f6nj\u00fck, hogy hozz\u00e1j\u00e1rult a Klipperhez! Ez a dokumentum le\u00edrja a Klipper v\u00e1ltoztat\u00e1sokhoz val\u00f3 hozz\u00e1j\u00e1rul\u00e1s folyamat\u00e1t. K\u00e9rj\u00fck, tekintsd meg a kapcsolat oldalt a probl\u00e9ma bejelent\u00e9s\u00e9vel kapcsolatos inform\u00e1ci\u00f3k\u00e9rt vagy a fejleszt\u0151kkel val\u00f3 kapcsolatfelv\u00e9telre vonatkoz\u00f3 r\u00e9szletek\u00e9rt.","title":"Hozz\u00e1j\u00e1rul\u00e1s a Klipperhez"},{"location":"CONTRIBUTING.html#a-hozzajarulasi-folyamat-attekintese","text":"A Klipperhez val\u00f3 hozz\u00e1j\u00e1rul\u00e1s \u00e1ltal\u00e1ban egy magas szint\u0171 folyamatot k\u00f6vet: A beny\u00fajt\u00f3 egy GitHub Pull Request l\u00e9trehoz\u00e1s\u00e1val kezdi, amikor egy beadv\u00e1ny k\u00e9szen \u00e1ll a sz\u00e9les k\u00f6r\u0171 telep\u00edt\u00e9sre. Amikor egy b\u00edr\u00e1l\u00f3 el\u00e9rhet\u0151 a review beny\u00fajt\u00e1s\u00e1hoz, akkor hozz\u00e1rendeli mag\u00e1t a Pull Requesthez a GitHubon. A fel\u00fclvizsg\u00e1lat c\u00e9lja a hib\u00e1k keres\u00e9se \u00e9s annak ellen\u0151rz\u00e9se, hogy a beadv\u00e1ny k\u00f6veti-e a dokument\u00e1lt ir\u00e1nyelveket. Sikeres fel\u00fclvizsg\u00e1lat ut\u00e1n a fel\u00fclvizsg\u00e1l\u00f3 \"j\u00f3v\u00e1hagyja a fel\u00fclvizsg\u00e1latot\" a GitHubon, \u00e9s egy karbantart\u00f3 \u00e1tvezeti a m\u00f3dos\u00edt\u00e1st a Klipper master \u00e1g\u00e1ba. Ha fejleszt\u00e9seken dolgozol, fontold meg egy t\u00e9ma ind\u00edt\u00e1s\u00e1t (vagy a t\u00e9m\u00e1hoz val\u00f3 hozz\u00e1j\u00e1rul\u00e1st) a Klipper Discourse oldalon. A f\u00f3rumon foly\u00f3 vita jav\u00edthatja a fejleszt\u00e9si munka l\u00e1that\u00f3s\u00e1g\u00e1t, \u00e9s vonzhat m\u00e1sokat is, akik \u00e9rdekl\u0151dnek az \u00faj munka tesztel\u00e9se ir\u00e1nt.","title":"A hozz\u00e1j\u00e1rul\u00e1si folyamat \u00e1ttekint\u00e9se"},{"location":"CONTRIBUTING.html#mire-szamithatunk-egy-felulvizsgalat-soran","text":"A Klipperhez val\u00f3 hozz\u00e1j\u00e1rul\u00e1sokat az egyes\u00edt\u00e9s el\u0151tt fel\u00fclvizsg\u00e1lj\u00e1k. A fel\u00fclvizsg\u00e1lati folyamat els\u0151dleges c\u00e9lja a hib\u00e1k ellen\u0151rz\u00e9se, valamint annak ellen\u0151rz\u00e9se, hogy a beadv\u00e1ny megfelel-e a Klipper dokument\u00e1ci\u00f3j\u00e1ban meghat\u00e1rozott ir\u00e1nyelveknek. Term\u00e9szetesen egy feladatot sokf\u00e9lek\u00e9ppen lehet elv\u00e9gezni; a fel\u00fclvizsg\u00e1lat c\u00e9lja nem az, hogy megvitassa a \"legjobb\" v\u00e9grehajt\u00e1st. Ahol lehets\u00e9ges, a fel\u00fclvizsg\u00e1lati megbesz\u00e9l\u00e9sek ink\u00e1bb a t\u00e9nyekre \u00e9s a m\u00e9r\u00e9sekre \u00f6sszpontos\u00edtanak. A beadv\u00e1nyok t\u00f6bbs\u00e9ge visszajelz\u00e9st eredm\u00e9nyez egy fel\u00fclvizsg\u00e1latr\u00f3l. K\u00e9sz\u00fclj fel a visszajelz\u00e9sek beszerz\u00e9s\u00e9re, tov\u00e1bbi r\u00e9szletek megad\u00e1s\u00e1ra \u00e9s sz\u00fcks\u00e9g eset\u00e9n a beadv\u00e1ny friss\u00edt\u00e9s\u00e9re. Gyakori dolgok, amiket a b\u00edr\u00e1l\u00f3 keres: Hib\u00e1tlan-e a beadv\u00e1ny, \u00e9s k\u00e9szen \u00e1ll-e a sz\u00e9les k\u00f6r\u0171 bevezet\u00e9sre?A beny\u00fajt\u00f3knak a beny\u00fajt\u00e1s el\u0151tt tesztelni\u00fck kell a v\u00e1ltoztat\u00e1sokat. A b\u00edr\u00e1l\u00f3k keresik a hib\u00e1kat, de \u00e1ltal\u00e1ban nem tesztelik a bek\u00fcld\u00f6tt anyagokat. Egy elfogadott beadv\u00e1nyt gyakran az elfogad\u00e1st k\u00f6vet\u0151 n\u00e9h\u00e1ny h\u00e9ten bel\u00fcl t\u00f6bb ezer nyomtat\u00f3hoz juttatnak el. A beadv\u00e1nyok min\u0151s\u00e9g\u00e9t ez\u00e9rt priorit\u00e1snak tekintik. A f\u0151 Klipper3d/klipper GitHub t\u00e1rol\u00f3 nem fogad el k\u00eds\u00e9rleti munk\u00e1t. A bek\u00fcld\u0151knek a k\u00eds\u00e9rletez\u00e9st, hibakeres\u00e9st \u00e9s tesztel\u00e9st a saj\u00e1t t\u00e1rol\u00f3jukban kell elv\u00e9gezni\u00fck. A Klipper Discourse szerver j\u00f3 hely arra, hogy felh\u00edvjuk a figyelmet az \u00faj munk\u00e1ra, \u00e9s megtal\u00e1ljuk azokat a felhaszn\u00e1l\u00f3kat, akiket \u00e9rdekel a val\u00f3s visszajelz\u00e9s. A beadv\u00e1nyoknak \u00e1t kell menni\u00fck az \u00f6sszes regresszi\u00f3s teszteseten . A k\u00f3dban l\u00e9v\u0151 hiba jav\u00edt\u00e1sakor a beny\u00fajt\u00f3knak \u00e1ltal\u00e1ban v\u00e9ve tiszt\u00e1ban kell lenni\u00fck a hiba kiv\u00e1lt\u00f3 ok\u00e1val, \u00e9s a jav\u00edt\u00e1snak ezt a kiv\u00e1lt\u00f3 okot kell megc\u00e9loznia. A bek\u00fcld\u00f6tt k\u00f3dok nem tartalmazhatnak t\u00falzottan sok hibakeres\u00e9si k\u00f3dot, hibakeres\u00e9si opci\u00f3t vagy fut\u00e1sidej\u0171 hibakeres\u00e9si napl\u00f3z\u00e1st. A k\u00f3dbeadv\u00e1nyokhoz f\u0171z\u00f6tt megjegyz\u00e9seknek a k\u00f3d karbantart\u00e1s\u00e1nak jav\u00edt\u00e1s\u00e1ra kell \u00f6sszpontos\u00edtaniuk. A beadv\u00e1nyok nem tartalmazhatnak \"kikomment\u00e1lt k\u00f3dot\" vagy t\u00falzottan sok, kor\u00e1bbi megval\u00f3s\u00edt\u00e1sokat le\u00edr\u00f3 megjegyz\u00e9st. Nem lehetnek t\u00falzott m\u00e9rt\u00e9k\u0171 \"todo\" megjegyz\u00e9sek. A dokument\u00e1ci\u00f3 friss\u00edt\u00e9sei nem jelenthetik ki, hogy azok \"folyamatban l\u00e9v\u0151 munk\u00e1k\". A beadott p\u00e1ly\u00e1zat \"nagy hat\u00e1s\u00fa\" el\u0151nyt jelent-e a val\u00f3s felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra, akik val\u00f3s feladatokat l\u00e1tnak el?A b\u00edr\u00e1l\u00f3knak - legal\u00e1bbis a saj\u00e1t fej\u00fckben - nagyj\u00e1b\u00f3l meg kell hat\u00e1rozniuk, hogy \"ki a c\u00e9lk\u00f6z\u00f6ns\u00e9g\", hogy \"mekkora a c\u00e9lk\u00f6z\u00f6ns\u00e9g\", hogy \"milyen el\u0151ny\u00f6kh\u00f6z\" jutnak, hogy \"az el\u0151ny\u00f6ket hogyan m\u00e9rik\", \u00e9s hogy \"milyen eredm\u00e9nyeket hoznak ezek a m\u00e9r\u00e9si tesztek\". A legt\u00f6bb esetben ez mind a beny\u00fajt\u00f3, mind a b\u00edr\u00e1l\u00f3 sz\u00e1m\u00e1ra nyilv\u00e1nval\u00f3, \u00e9s a b\u00edr\u00e1lat sor\u00e1n nem ker\u00fcl kifejezett kijelent\u00e9sre. A mester Klipper \u00e1gba k\u00fcld\u00f6tt beadv\u00e1nyok v\u00e1rhat\u00f3an figyelemre m\u00e9lt\u00f3 c\u00e9lk\u00f6z\u00f6ns\u00e9ggel rendelkeznek. \u00c1ltal\u00e1nos \"\u00f6k\u00f6lszab\u00e1lyk\u00e9nt\" a beadv\u00e1nyoknak legal\u00e1bb 100 val\u00f3s felhaszn\u00e1l\u00f3b\u00f3l \u00e1ll\u00f3 felhaszn\u00e1l\u00f3i b\u00e1zist kell megc\u00e9lozniuk. Ha egy b\u00edr\u00e1l\u00f3 r\u00e9szleteket k\u00e9r egy beadv\u00e1ny \"haszn\u00e1r\u00f3l\", k\u00e9rj\u00fck, ne tekintsd ezt kritik\u00e1nak. Az, hogy k\u00e9pesek legy\u00fcnk meg\u00e9rteni egy v\u00e1ltoztat\u00e1s val\u00f3s el\u0151nyeit, a fel\u00fclvizsg\u00e1lat term\u00e9szetes r\u00e9sze. Az el\u0151ny\u00f6k megvitat\u00e1sakor el\u0151ny\u00f6sebb a \"t\u00e9nyek \u00e9s m\u00e9r\u00e9sek\" megvitat\u00e1sa. \u00c1ltal\u00e1ban v\u00e9ve a b\u00edr\u00e1l\u00f3k nem a \"valaki hasznosnak tal\u00e1lhatja az X opci\u00f3t\", sem pedig a \"ez a beadv\u00e1ny olyan funkci\u00f3t ad hozz\u00e1, amelyet az X firmware val\u00f3s\u00edt meg\" form\u00e1j\u00fa v\u00e1laszokat keresik. Ehelyett \u00e1ltal\u00e1ban el\u0151ny\u00f6sebb, ha r\u00e9szletesen t\u00e1rgyalj\u00e1k, hogy a min\u0151s\u00e9gjavul\u00e1st hogyan m\u00e9rt\u00e9k, \u00e9s milyen eredm\u00e9nyeket hoztak ezek a m\u00e9r\u00e9sek - p\u00e9ld\u00e1ul: \"az Acme X1000 nyomtat\u00f3kon v\u00e9gzett tesztek a ...k\u00e9pen l\u00e1that\u00f3 javul\u00f3 sarkokat mutatnak \", vagy p\u00e9ld\u00e1ul \"az X val\u00f3s t\u00e1rgy nyomtat\u00e1si ideje egy Foomatic X900 nyomtat\u00f3n 4 \u00f3r\u00e1r\u00f3l 3,5 \u00f3r\u00e1ra cs\u00f6kkent\". Mag\u00e1t\u00f3l \u00e9rtet\u0151dik, hogy az ilyen t\u00edpus\u00fa tesztel\u00e9s jelent\u0151s id\u0151t \u00e9s er\u0151fesz\u00edt\u00e9st ig\u00e9nyel. A Klipper legjelent\u0151sebb funkci\u00f3inak n\u00e9melyike h\u00f3napokig tartott a megbesz\u00e9l\u00e9sek, \u00e1tdolgoz\u00e1sok, tesztel\u00e9sek \u00e9s dokument\u00e1ci\u00f3k sor\u00e1n, miel\u0151tt beolvadt a master \u00e1gba. Minden \u00faj modulnak, konfigur\u00e1ci\u00f3s opci\u00f3nak, parancsnak, parancsparam\u00e9ternek \u00e9s dokumentumnak \"nagy hat\u00e1ssal\" kell rendelkeznie. Nem akarjuk a felhaszn\u00e1l\u00f3kat olyan opci\u00f3kkal terhelni, amelyeket nem tudnak \u00e9sszer\u0171en konfigur\u00e1lni, \u00e9s nem akarjuk \u0151ket olyan opci\u00f3kkal terhelni, amelyek nem ny\u00fajtanak sz\u00e1mottev\u0151 el\u0151nyt. A b\u00edr\u00e1l\u00f3 k\u00e9rhet pontos\u00edt\u00e1st arr\u00f3l, hogy a felhaszn\u00e1l\u00f3nak hogyan kell be\u00e1ll\u00edtania egy opci\u00f3t - az ide\u00e1lis v\u00e1lasz tartalmazza a folyamat r\u00e9szleteit - p\u00e9ld\u00e1ul: \"a MegaX500 felhaszn\u00e1l\u00f3inak az X opci\u00f3t 99,3-ra kell be\u00e1ll\u00edtaniuk, m\u00edg az Elite100Y felhaszn\u00e1l\u00f3inak az X opci\u00f3t a ...\" elj\u00e1r\u00e1ssal kell kalibr\u00e1lniuk...\". Ha az opci\u00f3 c\u00e9lja, hogy a k\u00f3dot modul\u00e1risabb\u00e1 tegye, akkor ink\u00e1bb haszn\u00e1lj k\u00f3dkonstansokat a felhaszn\u00e1l\u00f3val szemben\u00e9z\u0151 konfigur\u00e1ci\u00f3s opci\u00f3k helyett. Az \u00faj modulok, \u00faj opci\u00f3k \u00e9s \u00faj param\u00e9terek nem biztos\u00edthatnak hasonl\u00f3 funkci\u00f3kat a megl\u00e9v\u0151 modulokhoz - ha a k\u00fcl\u00f6nbs\u00e9gek \u00f6nk\u00e9nyesek, akkor ink\u00e1bb a megl\u00e9v\u0151 rendszert kell haszn\u00e1lni, vagy a megl\u00e9v\u0151 k\u00f3dot kell \u00e1talak\u00edtani. A beadv\u00e1ny szerz\u0151i joga egy\u00e9rtelm\u0171, nem h\u00e1lap\u00e9nz \u00e9s \u00f6sszeegyeztethet\u0151?Az \u00faj C \u00e9s Python f\u00e1jloknak egy\u00e9rtelm\u0171 szerz\u0151i jogi nyilatkozatot kell tartalmazniuk. Az el\u0151nyben r\u00e9szes\u00edtett form\u00e1tumot l\u00e1sd a megl\u00e9v\u0151 f\u00e1jlokban. A megl\u00e9v\u0151 f\u00e1jl szerz\u0151i jog\u00e1nak deklar\u00e1l\u00e1sa a f\u00e1jl kisebb m\u00f3dos\u00edt\u00e1sai eset\u00e9n elhanyagolhat\u00f3. A harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 k\u00f3dnak kompatibilisnek kell lennie a Klipper licenszel (GNU GPLv3). A nagyobb, harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 k\u00f3dkieg\u00e9sz\u00edt\u00e9seket a lib/ k\u00f6nyvt\u00e1rba kell helyezni (\u00e9s a lib/README k\u00f6nyvt\u00e1rban le\u00edrt form\u00e1tumot kell k\u00f6vetni). A bek\u00fcld\u0151knek meg kell adniuk egy Signed-off-by line sort a teljes val\u00f3di nev\u00fckkel. Ez azt jelzi, hogy a beny\u00fajt\u00f3 egyet\u00e9rt a fejleszt\u0151i sz\u00e1rmaz\u00e1si igazol\u00e1ssal . A beny\u00fajt\u00e1s k\u00f6veti a Klipper dokument\u00e1ci\u00f3ban meghat\u00e1rozott ir\u00e1nyelveket?K\u00fcl\u00f6n\u00f6sen a k\u00f3dnak a , a konfigur\u00e1ci\u00f3s f\u00e1jloknak pedig a c\u00edm\u0171 dokumentumban tal\u00e1lhat\u00f3 ir\u00e1nyelveket kell k\u00f6vetni\u00fck. A Klipper dokument\u00e1ci\u00f3 friss\u00edtve van az \u00faj v\u00e1ltoz\u00e1soknak megfelel\u0151en?Legal\u00e1bb a referenciadokument\u00e1ci\u00f3t kell friss\u00edteni a k\u00f3d megfelel\u0151 v\u00e1ltoztat\u00e1saival: Minden parancsot \u00e9s parancsparam\u00e9tert a dokumentumban kell dokument\u00e1lni. Minden felhaszn\u00e1l\u00f3 el\u0151tt \u00e1ll\u00f3 modult \u00e9s azok konfigur\u00e1ci\u00f3s param\u00e9tereit dokument\u00e1lni kell a f\u00e1jlban. Minden export\u00e1lt \"\u00e1llapotv\u00e1ltoz\u00f3t\" dokument\u00e1lni kell . Minden \u00faj \"webhooks\" \u00e9s param\u00e9tereiket dokument\u00e1lni kell . Minden olyan m\u00f3dos\u00edt\u00e1s, amely nem visszafel\u00e9 kompatibilis m\u00f3dos\u00edt\u00e1st hajt v\u00e9gre egy parancs vagy konfigur\u00e1ci\u00f3s f\u00e1jl be\u00e1ll\u00edt\u00e1s\u00e1n, dokument\u00e1lni kell a dokumentumban. Az \u00faj dokumentumokat hozz\u00e1 kell adni az f\u00e1jlhoz, \u00e9s hozz\u00e1 kell adni a weboldal index\u00e9hez docs/_klipper3d/mkdocs.yml . A v\u00e9gleges\u00edt\u00e9sek j\u00f3l megform\u00e1ltak, v\u00e9gleges\u00edt\u00e9sk\u00e9nt egyetlen t\u00e9m\u00e1val foglalkoznak, \u00e9s f\u00fcggetlenek?A k\u00e9relmi \u00fczeneteknek a prefer\u00e1lt form\u00e1tumot kell k\u00f6vetni\u00fck. A k\u00e9relmeknek nem lehet \u00f6sszeolvad\u00e1si konfliktusuk. A Klipper master \u00e1g\u00e1hoz val\u00f3 \u00faj hozz\u00e1ad\u00e1sok mindig egy \"rebase\" vagy \"squash and rebase\" seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nnek. A beny\u00fajt\u00f3knak \u00e1ltal\u00e1ban nem sz\u00fcks\u00e9ges a Klipper f\u0151adatt\u00e1r minden egyes friss\u00edt\u00e9s\u00e9n\u00e9l \u00fajra egyes\u00edteni\u00fck a beadv\u00e1nyukat. Ha azonban \u00f6sszeolvaszt\u00e1si konfliktus van, akkor a beny\u00fajt\u00f3knak aj\u00e1nlott a git rebase haszn\u00e1lata a konfliktus megold\u00e1s\u00e1ra. Minden egyes k\u00e9relemnek egyetlen magas szint\u0171 v\u00e1ltoztat\u00e1ssal kell foglalkoznia. A nagyobb v\u00e1ltoztat\u00e1sokat t\u00f6bb f\u00fcggetlen k\u00e9relemre kell bontani. Minden commitnak \"\u00f6n\u00e1ll\u00f3an kell \u00e1llnia\", hogy az olyan eszk\u00f6z\u00f6k, mint a git bisect \u00e9s git revert megb\u00edzhat\u00f3an m\u0171k\u00f6djenek. A feh\u00e9rter\u00fcleti v\u00e1ltoztat\u00e1sokat nem szabad \u00f6sszekeverni a funkcion\u00e1lis v\u00e1ltoztat\u00e1sokkal. \u00c1ltal\u00e1noss\u00e1gban elmondhat\u00f3, hogy az indokolatlan sz\u00f3k\u00f6z m\u00f3dos\u00edt\u00e1sokat nem fogadjuk el, kiv\u00e9ve, ha azok a m\u00f3dos\u00edtand\u00f3 k\u00f3d meg\u00e1llap\u00edtott \"tulajdonos\u00e1t\u00f3l\" sz\u00e1rmaznak. A Klipper nem alkalmaz szigor\u00fa \"k\u00f3dol\u00e1si st\u00edlus \u00fatmutat\u00f3t\", de a megl\u00e9v\u0151 k\u00f3d m\u00f3dos\u00edt\u00e1sainak k\u00f6vetni\u00fck kell a megl\u00e9v\u0151 k\u00f3d magas szint\u0171 k\u00f3d\u00e1raml\u00e1s\u00e1t, k\u00f3dbeh\u00faz\u00e1si st\u00edlus\u00e1t \u00e9s form\u00e1tum\u00e1t. Az \u00faj modulok \u00e9s rendszerek beny\u00fajt\u00e1sa eset\u00e9n a k\u00f3dol\u00e1si st\u00edlus rugalmasabb, de el\u0151ny\u00f6sebb, ha az \u00faj k\u00f3d bels\u0151leg konzisztens st\u00edlust k\u00f6vet, \u00e9s \u00e1ltal\u00e1ban az ipar\u00e1gi k\u00f3dol\u00e1si norm\u00e1kat k\u00f6veti. A fel\u00fclvizsg\u00e1lat c\u00e9lja nem a \"jobb megval\u00f3s\u00edt\u00e1sok\" megvitat\u00e1sa. Ha azonban egy b\u00edr\u00e1l\u00f3nak neh\u00e9zs\u00e9get okoz egy beadott p\u00e1ly\u00e1zat megval\u00f3s\u00edt\u00e1s\u00e1nak meg\u00e9rt\u00e9se, akkor k\u00e9rhet v\u00e1ltoztat\u00e1sokat a megval\u00f3s\u00edt\u00e1s \u00e1tl\u00e1that\u00f3bb\u00e1 t\u00e9tele \u00e9rdek\u00e9ben. K\u00fcl\u00f6n\u00f6sen, ha a b\u00edr\u00e1l\u00f3k nem tudj\u00e1k meggy\u0151zni magukat arr\u00f3l, hogy egy beadott p\u00e1ly\u00e1zat hib\u00e1tlan, akkor v\u00e1ltoztat\u00e1sokra lehet sz\u00fcks\u00e9g. A fel\u00fclvizsg\u00e1lat r\u00e9szek\u00e9nt egy fel\u00fclvizsg\u00e1l\u00f3 l\u00e9trehozhat egy alternat\u00edv k\u00e9r\u00e9st egy t\u00e9m\u00e1hoz. Ezt az\u00e9rt lehet megtenni, hogy elker\u00fclhet\u0151 legyen a t\u00falzott \"oda-vissza\" a kisebb elj\u00e1r\u00e1si k\u00e9rd\u00e9sekben, \u00e9s \u00edgy egyszer\u0171s\u00f6dj\u00f6n a beny\u00fajt\u00e1si folyamat. Ez az\u00e9rt is megt\u00f6rt\u00e9nhet, mert a vita arra \u00f6szt\u00f6nzi a b\u00edr\u00e1l\u00f3t, hogy egy alternat\u00edv implement\u00e1ci\u00f3t k\u00e9sz\u00edtsen. Mindk\u00e9t helyzet a fel\u00fclvizsg\u00e1lat norm\u00e1lis eredm\u00e9nye, \u00e9s nem tekinthet\u0151 az eredeti beadv\u00e1ny kritik\u00e1j\u00e1nak.","title":"Mire sz\u00e1m\u00edthatunk egy fel\u00fclvizsg\u00e1lat sor\u00e1n"},{"location":"CONTRIBUTING.html#segitseg-a-felulvizsgalatokban","text":"Nagyra \u00e9rt\u00e9kelj\u00fck a seg\u00edts\u00e9get a v\u00e9lem\u00e9nyekkel kapcsolatban! Nem sz\u00fcks\u00e9ges list\u00e1zott \u00e9rt\u00e9kel\u0151nek lenni az \u00e9rt\u00e9kel\u00e9s elv\u00e9gz\u00e9s\u00e9hez. A GitHub k\u00e9relmek beny\u00fajt\u00f3it is arra \u00f6szt\u00f6n\u00f6zz\u00fck, hogy saj\u00e1t beadv\u00e1nyaikat vizsg\u00e1lj\u00e1k fel\u00fcl. A fel\u00fclvizsg\u00e1lat sor\u00e1n seg\u00edtsen, k\u00f6vesse a mire sz\u00e1m\u00edthat egy fel\u00fclvizsg\u00e1lat sor\u00e1n pontban le\u00edrt l\u00e9p\u00e9seket a bek\u00fcld\u00e9s ellen\u0151rz\u00e9s\u00e9hez. A fel\u00fclvizsg\u00e1lat befejez\u00e9se ut\u00e1n adj hozz\u00e1 egy megjegyz\u00e9st a GitHub k\u00e9r\u00e9sekhez a meg\u00e1llap\u00edt\u00e1sokkal. Ha a beny\u00fajt\u00e1s \u00e1tmegy az ellen\u0151rz\u00e9sen, akkor k\u00e9rj\u00fck, ezt kifejezetten jelezze a megjegyz\u00e9sben. P\u00e9ld\u00e1ul valami olyasmit, hogy \"\u00c1tn\u00e9ztem ezt a m\u00f3dos\u00edt\u00e1st a CONTRIBUTING dokumentumban le\u00edrtak szerint, \u00e9s minden j\u00f3nak t\u0171nik sz\u00e1momra\". Ha nem tudta elv\u00e9gezni a fel\u00fclvizsg\u00e1lat egyes l\u00e9p\u00e9seit, akkor k\u00e9rj\u00fck, kifejezetten jelezze, hogy mely l\u00e9p\u00e9seket vizsg\u00e1lta fel\u00fcl, \u00e9s melyeket nem. P\u00e9ld\u00e1ul valami olyasmit, mint: \"Nem ellen\u0151riztem a k\u00f3dot hib\u00e1k szempontj\u00e1b\u00f3l, de minden m\u00e1st \u00e1tn\u00e9ztem a CONTRIBUTING dokumentumban, \u00e9s \u00fagy t\u0171nik, hogy minden rendben van\". A beadv\u00e1nyok tesztel\u00e9s\u00e9t is \u00e9rt\u00e9kelj\u00fck. Ha a k\u00f3dot tesztelt\u00fck, k\u00e9rj\u00fck \u00edrjon egy megjegyz\u00e9st a GitHub k\u00e9r\u00e9sekhez a tesztel\u00e9s eredm\u00e9ny\u00e9vel - sikerrel vagy sikertelens\u00e9ggel. K\u00e9rj\u00fck, kifejezetten jelezze, hogy a k\u00f3dot tesztelt\u00e9k, \u00e9s az eredm\u00e9nyeket - p\u00e9ld\u00e1ul valami olyasmit, mint: \"Leteszteltem ezt a k\u00f3dot az Acme900Z nyomtat\u00f3mon egy v\u00e1za nyomtat\u00e1s\u00e1val, \u00e9s az eredm\u00e9nyek j\u00f3k voltak\".","title":"Seg\u00edts\u00e9g a fel\u00fclvizsg\u00e1latokban"},{"location":"CONTRIBUTING.html#ertekelok","text":"A Klipper \"\u00e9rt\u00e9kel\u0151k\" a k\u00f6vetkez\u0151k: N\u00e9v GitHub azonos\u00edt\u00f3 \u00c9rdekl\u0151d\u00e9si k\u00f6r\u00f6k Dmitry Butyugin @dmbutyugin Bemenetform\u00e1l\u00e1s, rezonancia vizsg\u00e1lat, kinematika Eric Callahan @Arksine T\u00e1rgyasztal szintez\u00e9se, MCU \u00e9get\u00e9s Kevin O'Connor @KevinOConnor Mag mozg\u00e1si rendszer, mikrokontroller k\u00f3d Paul McGowan @mental405 Konfigur\u00e1ci\u00f3s f\u00e1jlok, dokument\u00e1ci\u00f3 K\u00e9rj\u00fck, ne \"pingelje\" a b\u00edr\u00e1l\u00f3kat, \u00e9s ne k\u00fcldj\u00f6n beadv\u00e1nyokat nekik. Az \u00f6sszes b\u00edr\u00e1l\u00f3 figyelemmel k\u00eds\u00e9ri a f\u00f3rumokat \u00e9s a PR-eket, \u00e9s ha van idej\u00fck, akkor v\u00e1llalj\u00e1k a b\u00edr\u00e1latokat. A Klipper \"karbantart\u00f3k\" a k\u00f6vetkez\u0151k: N\u00e9v GitHub n\u00e9v Kevin O'Connor @KevinOConnor","title":"\u00c9rt\u00e9kel\u0151k"},{"location":"CONTRIBUTING.html#a-megbizasi-uzenetek-formatuma","text":"Minden megb\u00edz\u00e1snak a k\u00f6vetkez\u0151h\u00f6z hasonl\u00f3an form\u00e1zott \u00fczenetet kell tartalmaznia: modul: Nagybet\u0171s, r\u00f6vid (legfeljebb 50 karakteres) \u00f6sszefoglal\u00f3. Sz\u00fcks\u00e9g eset\u00e9n r\u00e9szletesebb magyar\u00e1z\u00f3 sz\u00f6veg. K\u00f6r\u00fclbel\u00fcl 75 karakter. Bizonyos kontextusokban az els\u0151 sort \u00fagy kezelik, mint a az e-mail t\u00e1rgya, a sz\u00f6veg t\u00f6bbi r\u00e9sz\u00e9t pedig sz\u00f6vegtestk\u00e9nt. Az \u00fcres sor, amely elv\u00e1lasztja az \u00f6sszefoglal\u00f3t a sz\u00f6vegtestt\u0151l, kritikus (kiv\u00e9ve, ha kihagyod a t\u00f6rzssz\u00f6veget teljesen); az olyan eszk\u00f6z\u00f6k, mint a rebase, \u00f6sszezavarodhatnak, ha a kett\u0151t egy\u00fctt futtatj\u00e1k. Az \u00fcres sorok ut\u00e1n tov\u00e1bbi bekezd\u00e9sek k\u00f6vetkeznek.. Al\u00e1\u00edr\u00e1s: N\u00e9v <myemail@example.org> A fenti p\u00e9ld\u00e1ban module egy f\u00e1jl vagy k\u00f6nyvt\u00e1r neve kell, hogy legyen a t\u00e1rol\u00f3ban (f\u00e1jlkiterjeszt\u00e9s n\u00e9lk\u00fcl). P\u00e9ld\u00e1ul clocksync: Jav\u00edtsuk ki a pause() h\u00edv\u00e1sban l\u00e9v\u0151 el\u00edr\u00e1st a csatlakoz\u00e1s idej\u00e9n . A moduln\u00e9v megad\u00e1s\u00e1nak c\u00e9lja a k\u00e9relmi \u00fczenetben az, hogy seg\u00edtsen kontextust biztos\u00edtani a k\u00e9relmi megjegyz\u00e9sekhez. Fontos, hogy minden k\u00e9r\u00e9sn\u00e9l legyen egy \"Signed-off-by\" sor. Ez igazolja, hogy egyet\u00e9rtesz a fejleszt\u0151i eredetigazol\u00e1ssal . Tartalmaznia kell a val\u00f3di nevet (sajn\u00e1lom, nincs \u00e1ln\u00e9v vagy n\u00e9vtelen hozz\u00e1j\u00e1rul\u00e1s), \u00e9s tartalmaznia kell egy aktu\u00e1lis e-mail c\u00edmet.","title":"A megb\u00edz\u00e1si \u00fczenetek form\u00e1tuma"},{"location":"CONTRIBUTING.html#hozzajarulas-a-klipper-forditasokhoz","text":"Klipper-ford\u00edt\u00e1si Projekt egy olyan projekt, amely a Klipper k\u00fcl\u00f6nb\u00f6z\u0151 nyelvekre val\u00f3 ford\u00edt\u00e1s\u00e1t t\u0171zte ki c\u00e9lul. A Weblate az \u00f6sszes Gettext stringet t\u00e1rolja a ford\u00edt\u00e1shoz \u00e9s fel\u00fclvizsg\u00e1lathoz. A klipper3d.org oldalon megjelen\u00edthet\u0151k a helyi nyelvek, ha megfelelnek a k\u00f6vetkez\u0151 k\u00f6vetelm\u00e9nyeknek: 75% Teljes lefedetts\u00e9g Minden c\u00edm (H1) le van ford\u00edtva Egy friss\u00edtett navig\u00e1ci\u00f3s hierarchia PR a klipper-ford\u00edt\u00e1sokban. A domain-specifikus kifejez\u00e9sek ford\u00edt\u00e1s\u00e1val j\u00e1r\u00f3 frusztr\u00e1ci\u00f3 cs\u00f6kkent\u00e9se \u00e9s a folyamatban l\u00e9v\u0151 ford\u00edt\u00e1sok megismer\u00e9se \u00e9rdek\u00e9ben k\u00fcldhet PR-t, amely m\u00f3dos\u00edtja a Klipper-ford\u00edt\u00e1si Projekt readme.md f\u00e1jlt. Amint a ford\u00edt\u00e1s elk\u00e9sz\u00fclt, a Klipper-projekt megfelel\u0151 m\u00f3dos\u00edt\u00e1sa elv\u00e9gezhet\u0151. Ha egy ford\u00edt\u00e1s m\u00e1r l\u00e9tezik a Klipper adatt\u00e1rban, \u00e9s m\u00e1r nem felel meg a fenti ellen\u0151rz\u0151 list\u00e1nak, akkor egy h\u00f3nap ut\u00e1n friss\u00edt\u00e9s n\u00e9lk\u00fcl elavultnak lesz jel\u00f6lve. Ha a k\u00f6vetelm\u00e9nyek teljes\u00fclnek, akkor: klipper-ford\u00edt\u00e1si adatt\u00e1r friss\u00edt\u00e9se active_translations Opcion\u00e1lis: adjunk hozz\u00e1 egy manual-index.md f\u00e1jlt a klipper-translations repository's docs\\locals\\<lang> mapp\u00e1ba a nyelvspecifikus index.md helyett (a gener\u00e1lt index.md nem renderelhet\u0151 helyesen). Ismert probl\u00e9m\u00e1k: Jelenleg a dokument\u00e1ci\u00f3ban nincs m\u00f3dszer a k\u00e9pek helyes ford\u00edt\u00e1s\u00e1ra Az mkdocs.yml-ben nem lehet c\u00edmeket ford\u00edtani.","title":"Hozz\u00e1j\u00e1rul\u00e1s a Klipper Ford\u00edt\u00e1sokhoz"},{"location":"Code_Overview.html","text":"K\u00f3d \u00e1ttekint\u00e9se \u00b6 Ez a dokumentum a Klipper \u00e1ltal\u00e1nos k\u00f3delrendez\u00e9s\u00e9t \u00e9s f\u0151bb k\u00f3dfolyam\u00e1t \u00edrja le. K\u00f6nyvt\u00e1r elrendez\u00e9se \u00b6 Az src/ k\u00f6nyvt\u00e1r tartalmazza a mikrovez\u00e9rl\u0151 k\u00f3dj\u00e1nak C forr\u00e1s\u00e1t. Az src/atsam/ , src/atsamd/ , src/avr/ , src/linux/ , src/lpc176x/ , src/ A pru/ \u00e9s src/stm32/ k\u00f6nyvt\u00e1rak architekt\u00fara specifikus mikrovez\u00e9rl\u0151 k\u00f3dot tartalmaznak. Az src/simulator/ k\u00f3dcsonkokat tartalmaz, amelyek lehet\u0151v\u00e9 teszik a mikrokontroller tesztel\u00e9s\u00e9t m\u00e1s architekt\u00far\u00e1kon. Az src/generic/ k\u00f6nyvt\u00e1r seg\u00e9dk\u00f3dot tartalmaz, amely hasznos lehet a k\u00fcl\u00f6nb\u00f6z\u0151 architekt\u00far\u00e1kban. A build gondoskodik arr\u00f3l, hogy az include \"board/somefile.h\" el\u0151sz\u00f6r az aktu\u00e1lis architekt\u00fara k\u00f6nyvt\u00e1rban (pl. src/avr/somefile.h), majd az \u00e1ltal\u00e1nos k\u00f6nyvt\u00e1rban (pl. src/generic/somefile.h) keressen. A klippy/ k\u00f6nyvt\u00e1r tartalmazza a gazdaszoftvert. A gazdaszoftver nagy r\u00e9sze Python nyelven \u00edr\u00f3dott, azonban a klippy/chelper/ k\u00f6nyvt\u00e1r tartalmaz n\u00e9h\u00e1ny C k\u00f3d\u00fa seg\u00e9dprogramot. A klippy/kinematics/ k\u00f6nyvt\u00e1r tartalmazza a g\u00e9p kinematikai k\u00f3dj\u00e1t. A klippy/extras/ k\u00f6nyvt\u00e1r tartalmazza a gazdak\u00f3d b\u0151v\u00edthet\u0151 \"moduljait\". A lib/ k\u00f6nyvt\u00e1r k\u00fcls\u0151, harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 k\u00f6nyvt\u00e1ri k\u00f3dot tartalmaz, amely n\u00e9h\u00e1ny c\u00e9lprogram elk\u00e9sz\u00edt\u00e9s\u00e9hez sz\u00fcks\u00e9ges. A config/ k\u00f6nyvt\u00e1r a nyomtat\u00f3 konfigur\u00e1ci\u00f3s p\u00e9ldaf\u00e1jljait tartalmazza. A scripts/ k\u00f6nyvt\u00e1r a mikrokontroller k\u00f3dj\u00e1nak ford\u00edt\u00e1s\u00e1hoz hasznos, \u00e9p\u00edt\u00e9si-idej\u0171 szkripteket tartalmaz. A test/ k\u00f6nyvt\u00e1r automatikus teszteseteket tartalmaz. Ford\u00edt\u00e1s sor\u00e1n a build l\u00e9trehozhat egy out/ k\u00f6nyvt\u00e1rat. Ez ideiglenes elk\u00e9sz\u00edt\u00e9s\u0171 objektumokat tartalmaz. A v\u00e9gs\u0151 mikrokontroller objektum, amely elk\u00e9sz\u00fcl, AVR eset\u00e9n out/klipper.elf.hex , ARM eset\u00e9n out/klipper.bin . Mikrokontroller k\u00f3dfolyamat \u00b6 A mikrokontroller k\u00f3dj\u00e1nak v\u00e9grehajt\u00e1sa az architekt\u00fara specifikus k\u00f3dban kezd\u0151dik (pl. src/avr/main.c ), amely v\u00e9g\u00fcl a src/sched.c -ban tal\u00e1lhat\u00f3 sched_main() parancsot h\u00edvja meg. A sched_main() k\u00f3d a DECL_INIT() makr\u00f3val jel\u00f6lt \u00f6sszes f\u00fcggv\u00e9ny futtat\u00e1s\u00e1val kezd\u0151dik. Ezut\u00e1n a DECL_TASK() makr\u00f3val megjel\u00f6lt f\u00fcggv\u00e9nyek ism\u00e9telt futtat\u00e1s\u00e1ra ker\u00fcl sor. Az egyik f\u0151 feladatf\u00fcggv\u00e9ny a command_dispatch(), amely a src/command.c f\u00e1jlban tal\u00e1lhat\u00f3. Ezt a f\u00fcggv\u00e9nyt a k\u00e1rtyaspecifikus bemeneti/kimeneti k\u00f3db\u00f3l (pl. src/avr/serial.c , src/generic/serial_irq.c ) h\u00edvjuk meg, \u00e9s a bemeneti folyamban tal\u00e1lhat\u00f3 parancsokhoz tartoz\u00f3 parancsf\u00fcggv\u00e9nyeket futtatja. A parancsf\u00fcggv\u00e9nyek deklar\u00e1l\u00e1sa a DECL_COMMAND() makr\u00f3val t\u00f6rt\u00e9nik (tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a protokol dokumentumot). A feladat-, init- \u00e9s parancsf\u00fcggv\u00e9nyek mindig enged\u00e9lyezett megszak\u00edt\u00e1sokkal futnak (sz\u00fcks\u00e9g eset\u00e9n azonban ideiglenesen letilthatj\u00e1k a megszak\u00edt\u00e1sokat). Ezeknek a f\u00fcggv\u00e9nyeknek ker\u00fclni\u00fck kell a hossz\u00fa sz\u00fcneteket, k\u00e9sleltet\u00e9seket, vagy olyan munk\u00e1t kell v\u00e9gezni\u00fck, amely jelent\u0151s ideig tart. (A hossz\u00fa k\u00e9sleltet\u00e9sek ezekben a \"task\" f\u00fcggv\u00e9nyekben m\u00e1s \"taskok\" \u00fctemez\u00e9si zavar\u00e1t eredm\u00e9nyezik. A 100us-n\u00e1l hosszabb k\u00e9sleltet\u00e9sek \u00e9szrevehet\u0151v\u00e9 v\u00e1lhatnak, az 500us-n\u00e1l hosszabb k\u00e9sleltet\u00e9s\u0171 parancsok \u00fajrak\u00fcld\u00e9se, a 100ms-n\u00e1l hosszabb k\u00e9sleltet\u00e9sek pedig watchdog \u00fajraind\u00edt\u00e1sokat eredm\u00e9nyezhetnek.) Ezek a funkci\u00f3k id\u0151z\u00edt\u0151kkel \u00fctemezik a munk\u00e1t meghat\u00e1rozott id\u0151pontokra. Az id\u0151z\u00edt\u0151 f\u00fcggv\u00e9nyek \u00fctemez\u00e9se a sched_add_timer() megh\u00edv\u00e1s\u00e1val t\u00f6rt\u00e9nik (a src/sched.c f\u00e1jlban tal\u00e1lhat\u00f3). Az \u00fctemez\u0151 k\u00f3d gondoskodik arr\u00f3l, hogy az adott f\u00fcggv\u00e9nyt a k\u00e9rt id\u0151ben h\u00edvja meg. Az id\u0151z\u00edt\u0151 megszak\u00edt\u00e1sok kezel\u00e9se kezdetben egy architekt\u00fara-specifikus megszak\u00edt\u00e1skezel\u0151ben t\u00f6rt\u00e9nik (pl. src/avr/timer.c ), amely a src/sched.c -ban tal\u00e1lhat\u00f3 sched_timer_dispatch() funkci\u00f3t h\u00edvja. Az id\u0151z\u00edt\u0151 megszak\u00edt\u00e1sa az \u00fctemez\u0151 id\u0151z\u00edt\u0151 f\u00fcggv\u00e9nyek v\u00e9grehajt\u00e1s\u00e1hoz vezet. Az id\u0151z\u00edt\u0151 f\u00fcggv\u00e9nyek mindig megszak\u00edt\u00e1sok kikapcsol\u00e1s\u00e1val futnak. Az id\u0151z\u00edt\u0151f\u00fcggv\u00e9nyeknek mindig n\u00e9h\u00e1ny mikroszekundumon bel\u00fcl kell befejez\u0151dni\u00fck. Az id\u0151z\u00edt\u0151 esem\u00e9ny befejez\u00e9sekor a f\u00fcggv\u00e9ny d\u00f6nthet \u00fagy, hogy \u00e1t\u00fctemezi mag\u00e1t. Hiba \u00e9szlel\u00e9se eset\u00e9n a k\u00f3d megh\u00edvhatja a shutdown() funkci\u00f3t (egy makr\u00f3, amely a src/sched.c -ben tal\u00e1lhat\u00f3 sched_shutdown() funkci\u00f3t h\u00edvja). A shutdown() megh\u00edv\u00e1sa a DECL_SHUTDOWN() makr\u00f3val jel\u00f6lt \u00f6sszes f\u00fcggv\u00e9ny futtat\u00e1s\u00e1t eredm\u00e9nyezi. A le\u00e1ll\u00edt\u00e1si f\u00fcggv\u00e9nyek mindig megszak\u00edt\u00e1sok letilt\u00e1s\u00e1val futnak. A mikrokontroller funkci\u00f3inak nagy r\u00e9sze az \u00e1ltal\u00e1nos c\u00e9l\u00fa bemeneti/kimeneti \u00e9rintkez\u0151kkel (GPIO) val\u00f3 munk\u00e1t foglalja mag\u00e1ban. Annak \u00e9rdek\u00e9ben, hogy az alacsony szint\u0171 architekt\u00fara specifikus k\u00f3dot elvonatkoztassuk a magas szint\u0171 feladatk\u00f3dt\u00f3l, minden GPIO esem\u00e9nyt architekt\u00fara specifikus burkolatokban val\u00f3s\u00edtunk meg (pl. src/avr/gpio.c ). A k\u00f3dot a gcc's \"-flto -fwhole-program\" optimaliz\u00e1l\u00e1ssal ford\u00edtottuk, amely kiv\u00e1l\u00f3 munk\u00e1t v\u00e9gez a f\u00fcggv\u00e9nyek sorol\u00e1s\u00e1ban a ford\u00edt\u00e1si egys\u00e9geken kereszt\u00fcl, \u00edgy a legt\u00f6bb ilyen apr\u00f3 GPIO f\u00fcggv\u00e9ny sorolva van a h\u00edv\u00f3ikban, \u00e9s nincs fut\u00e1sidej\u0171 k\u00f6lts\u00e9ge a haszn\u00e1latuknak. Klippy k\u00f3d \u00e1ttekint\u00e9se \u00b6 A gazdak\u00f3dot (Klippy) egy olcs\u00f3 sz\u00e1m\u00edt\u00f3g\u00e9pen (p\u00e9ld\u00e1ul egy Raspberry Pi) kell futtatni a mikrokontrollerrel p\u00e1ros\u00edtva. A k\u00f3d els\u0151sorban Pythonban \u00edr\u00f3dott, azonban a CFFI-t haszn\u00e1lja n\u00e9h\u00e1ny funkci\u00f3 C k\u00f3dban t\u00f6rt\u00e9n\u0151 megval\u00f3s\u00edt\u00e1s\u00e1hoz. A kezdeti v\u00e9grehajt\u00e1s a klippy/klippy.py f\u00e1jlban kezd\u0151dik. Ez beolvassa a parancssori argumentumokat, megnyitja a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1t, p\u00e9ld\u00e1nyos\u00edtja a f\u0151 nyomtat\u00f3objektumokat, \u00e9s elind\u00edtja a soros kapcsolatot. A G-k\u00f3d parancsok f\u0151 v\u00e9grehajt\u00e1sa a process_commands() met\u00f3dusban t\u00f6rt\u00e9nik az klippy/gcode.py f\u00e1jlban. Ez a k\u00f3d a G-k\u00f3d parancsokat nyomtat\u00f3objektum h\u00edv\u00e1sokk\u00e1 ford\u00edtja le, amelyek gyakran a m\u0171veleteket a mikrovez\u00e9rl\u0151n v\u00e9grehajtand\u00f3 parancsokk\u00e1 alak\u00edtj\u00e1k (a mikrovez\u00e9rl\u0151 k\u00f3dj\u00e1ban a DECL_COMMAND makr\u00f3n kereszt\u00fcl). A Klippy gazdag\u00e9p k\u00f3dj\u00e1ban n\u00e9gy sz\u00e1l van. A f\u0151 sz\u00e1l kezeli a bej\u00f6v\u0151 G-k\u00f3d parancsokat. Egy m\u00e1sodik sz\u00e1l (amely teljes eg\u00e9sz\u00e9ben a klippy/chelper/serialqueue.c C k\u00f3dban tal\u00e1lhat\u00f3) az alacsony szint\u0171 IO-t kezeli a soros portal. A harmadik sz\u00e1l a Python k\u00f3dban (l\u00e1sd klippy/serialhdl.py ) a mikrokontroller v\u00e1lasz\u00fczeneteinek feldolgoz\u00e1s\u00e1ra szolg\u00e1l. A negyedik sz\u00e1l hibakeres\u00e9si \u00fczeneteket \u00edr a napl\u00f3ba (l\u00e1sd klippy/queuelogger.py ), hogy a t\u00f6bbi sz\u00e1l soha ne blokkoljon a napl\u00f3\u00edr\u00e1skor. Mozg\u00e1sparancs k\u00f3dfolyama \u00b6 Egy tipikus nyomtat\u00f3mozg\u00e1s akkor kezd\u0151dik, amikor egy \"G1\" parancsot k\u00fcld\u00fcnk a Klippy gazdag\u00e9pnek, \u00e9s akkor fejez\u0151dik be, amikor a megfelel\u0151 l\u00e9p\u00e9simpulzusok megjelennek a mikrokontrolleren. Ez a szakasz egy tipikus mozgat\u00e1si parancs k\u00f3dfolyamat\u00e1t v\u00e1zolja fel. A kinematika dokumentum tov\u00e1bbi inform\u00e1ci\u00f3kat tartalmaz a mozg\u00e1sok mechanik\u00e1j\u00e1r\u00f3l. A mozg\u00e1s parancs feldolgoz\u00e1sa a gcode.py f\u00e1jlban kezd\u0151dik. A gcode.py c\u00e9lja a G-k\u00f3d leford\u00edt\u00e1sa bels\u0151 h\u00edv\u00e1sokk\u00e1. Egy G1 parancs a klippy/extras/gcode_move.py \u00e1llom\u00e1nyban l\u00e9v\u0151 cmd_G1() parancsot h\u00edvja meg. A gcode_move.py k\u00f3d kezeli az eredetv\u00e1ltoz\u00e1sokat (pl. G92), a relat\u00edv \u00e9s abszol\u00fat poz\u00edci\u00f3k k\u00f6z\u00f6tti v\u00e1ltoz\u00e1sokat (pl. G90) \u00e9s az egys\u00e9gv\u00e1ltoz\u00e1sokat (pl. F6000=100mm/s). A k\u00f3d \u00fatvonala a mozgat\u00e1shoz a k\u00f6vetkez\u0151: _process_data() -> _process_commands() -> cmd_G1() . V\u00e9g\u00fcl a ToolHead oszt\u00e1lyt h\u00edvjuk meg a t\u00e9nyleges k\u00e9r\u00e9s v\u00e9grehajt\u00e1s\u00e1hoz: cmd_G1() -> ToolHead.move() A ToolHead oszt\u00e1ly (a toolhead.py \u00e1llom\u00e1nyban) kezeli a \"look-ahead\" \u00e9s k\u00f6veti a nyomtat\u00e1si m\u0171veletek id\u0151z\u00edt\u00e9s\u00e9t. A f\u0151 k\u00f3d\u00fatvonal egy mozdulathoz a k\u00f6vetkez\u0151: ToolHead.move() -> MoveQueue.add_move() -> MoveQueue.flush() -> Move.set_junction() -> ToolHead._process_moves() . A ToolHead.move() l\u00e9trehoz egy Move() objektumot a mozg\u00e1s param\u00e9tereivel (cartesian t\u00e9rben, m\u00e1sodperc \u00e9s millim\u00e9ter egys\u00e9gekben). A kinematikai oszt\u00e1ly lehet\u0151s\u00e9get kap az egyes mozg\u00e1sok ellen\u0151rz\u00e9s\u00e9re ( ToolHead.move() -> kin.check_move() ). A kinematikai oszt\u00e1lyok a klippy/kinematics/ k\u00f6nyvt\u00e1rban tal\u00e1lhat\u00f3k. A check_move() k\u00f3d hib\u00e1t adhat ki, ha a mozg\u00e1s nem \u00e9rv\u00e9nyes. Ha a check_move() sikeresen befejez\u0151dik, akkor az alapul szolg\u00e1l\u00f3 kinematik\u00e1nak k\u00e9pesnek kell lennie a mozg\u00e1s kezel\u00e9s\u00e9re. A MoveQueue.add_move() elhelyezi a move objektumot a \"look-ahead\" v\u00e1r\u00f3list\u00e1n. A MoveQueue.flush() meghat\u00e1rozza az egyes mozg\u00e1sok kezd\u0151 \u00e9s v\u00e9gsebess\u00e9g\u00e9t. A Move.set_junction() a \"trap\u00e9zgener\u00e1tort\" val\u00f3s\u00edtja meg egy mozg\u00e1sban. A \"trap\u00e9zgener\u00e1tor\" minden mozg\u00e1st h\u00e1rom r\u00e9szre bont: egy \u00e1lland\u00f3 gyorsul\u00e1si f\u00e1zisra, majd egy \u00e1lland\u00f3 sebess\u00e9g f\u00e1zisra, majd egy \u00e1lland\u00f3 lassul\u00e1si f\u00e1zisra. Minden mozg\u00e1s ebben a sorrendben tartalmazza ezt a h\u00e1rom f\u00e1zist, de egyes f\u00e1zisok id\u0151tartama lehet nulla is. Amikor a ToolHead._process_moves() megh\u00edv\u00e1sra ker\u00fcl, a mozg\u00e1ssal kapcsolatban minden ismert a kezd\u0151helye, a v\u00e9ghelye, a gyorsul\u00e1sa, a kezd\u0151/k\u00f6r\u00f6z\u00e9si/v\u00e9gsebess\u00e9ge \u00e9s a gyorsul\u00e1s/k\u00f6r\u00f6z\u00e9si/v\u00e9gsebess\u00e9g alatt megtett t\u00e1vols\u00e1g. Minden inform\u00e1ci\u00f3 a Move() oszt\u00e1lyban t\u00e1rol\u00f3dik, \u00e9s cartesian t\u00e9rben, millim\u00e9ter \u00e9s m\u00e1sodperc egys\u00e9gekben van megadva. A Klipper egy iterat\u00edv megold\u00f3t haszn\u00e1l az egyes l\u00e9ptet\u0151k l\u00e9p\u00e9sidej\u00e9nek l\u00e9trehoz\u00e1s\u00e1hoz. Hat\u00e9konys\u00e1gi okokb\u00f3l a l\u00e9ptet\u0151 impulzusid\u0151ket C k\u00f3dban gener\u00e1lja. A mozg\u00e1sokat el\u0151sz\u00f6r egy \"trap\u00e9zmozg\u00e1s v\u00e1r\u00f3list\u00e1ra\" helyezz\u00fck: ToolHead._process_moves() -> trapq_append() (a klippy/chelper/trapq.c-ben). A l\u00e9p\u00e9sid\u0151k ezut\u00e1n gener\u00e1l\u00f3dnak: ToolHead._process_moves() -> ToolHead._update_move_time() -> MCU_Stepper.generate_steps() -> itersolve_generate_steps() -> itersolve_gen_steps_range() (a klippy/chelper/itersolve.c-ben). Az iterat\u00edv megold\u00f3 c\u00e9lja, hogy l\u00e9p\u00e9sid\u0151ket tal\u00e1ljon egy olyan f\u00fcggv\u00e9nyt adva, amely egy id\u0151b\u0151l kisz\u00e1m\u00edtja a l\u00e9p\u00e9shelyzetet. Ez \u00fagy t\u00f6rt\u00e9nik, hogy t\u00f6bbsz\u00f6r \"tal\u00e1lgatja\" a k\u00fcl\u00f6nb\u00f6z\u0151 id\u0151ket, am\u00edg a l\u00e9ptet\u0151 poz\u00edci\u00f3 k\u00e9plet vissza nem adja a l\u00e9ptet\u0151 k\u00f6vetkez\u0151 l\u00e9p\u00e9s\u00e9nek k\u00edv\u00e1nt poz\u00edci\u00f3j\u00e1t. Az egyes tal\u00e1lgat\u00e1sokb\u00f3l sz\u00e1rmaz\u00f3 visszajelz\u00e9seket a j\u00f6v\u0151beli tal\u00e1lgat\u00e1sok jav\u00edt\u00e1s\u00e1ra haszn\u00e1ld, hogy a folyamat gyorsan konverg\u00e1ljon a k\u00edv\u00e1nt id\u0151h\u00f6z. A kinematikus l\u00e9ptet\u0151 poz\u00edci\u00f3 k\u00e9pletek a klippy/chelper/ k\u00f6nyvt\u00e1rban tal\u00e1lhat\u00f3k (pl. kin_cart.c, kin_corexy.c, kin_delta.c, kin_extruder.c). Vedd figyelembe, hogy az extruder saj\u00e1t kinematikai oszt\u00e1lyban van kezelve: ToolHead._process_moves() -> PrinterExtruder.move() . Mivel a Move() oszt\u00e1ly pontosan megadja a mozg\u00e1s idej\u00e9t, \u00e9s mivel a l\u00e9p\u00e9simpulzusokat meghat\u00e1rozott id\u0151z\u00edt\u00e9ssel k\u00fcldi a mikrokontrollerhez, az extruder oszt\u00e1ly \u00e1ltal el\u0151\u00e1ll\u00edtott l\u00e9ptet\u0151mozg\u00e1sok szinkronban lesznek a fejmozg\u00e1ssal, annak ellen\u00e9re, hogy a k\u00f3dot elk\u00fcl\u00f6n\u00edtve tartjuk. Miut\u00e1n az iterat\u00edv megold\u00f3 kisz\u00e1m\u00edtja a l\u00e9p\u00e9sid\u0151ket, azok egy t\u00f6mbh\u00f6z ker\u00fclnek hozz\u00e1ad\u00e1sra: itersolve_gen_steps_range() -> stepcompress_append() (in klippy/chelper/stepcompress.c). A t\u00f6mb (struct stepcompress.queue) minden l\u00e9p\u00e9shez t\u00e1rolja a mikrokontroller megfelel\u0151 \u00f3rasz\u00e1ml\u00e1l\u00f3 idej\u00e9t. Itt a \"mikrokontroller \u00f3rasz\u00e1ml\u00e1l\u00f3\" \u00e9rt\u00e9ke k\u00f6zvetlen\u00fcl megfelel a mikrokontroller hardveres sz\u00e1ml\u00e1l\u00f3j\u00e1nak, a mikrokontroller utols\u00f3 bekapcsol\u00e1s\u00e1nak id\u0151pontj\u00e1hoz viszony\u00edtva. A k\u00f6vetkez\u0151 fontos l\u00e9p\u00e9s a l\u00e9p\u00e9sek t\u00f6m\u00f6r\u00edt\u00e9se: stepcompress_flush() -> compress_bisect_add() (in klippy/chelper/stepcompress.c). Ez a k\u00f3d gener\u00e1lja \u00e9s k\u00f3dolja a mikrokontroller \"queue_step\" parancsainak sorozat\u00e1t, amelyek megfelelnek az el\u0151z\u0151 szakaszban fel\u00e9p\u00edtett l\u00e9ptet\u0151 l\u00e9p\u00e9sid\u0151k list\u00e1j\u00e1nak. Ezek a \"queue_step\" parancsok ezut\u00e1n sorba ker\u00fclnek, priorit\u00e1st kapnak, \u00e9s elk\u00fcld\u00e9sre ker\u00fclnek a mikrokontrollernek (a stepcompress.c:steppersync \u00e9s a serialqueue.c:serialqueue k\u00f3dokon kereszt\u00fcl). A queue_step parancsok feldolgoz\u00e1sa a mikrokontrollerben az src/command.c \u00e1llom\u00e1nyban kezd\u0151dik, amely elemzi a parancsot \u00e9s megh\u00edvja a command_queue_step() parancsot. A command_queue_step() k\u00f3d (az src/stepper.c-ben) csak az egyes queue_step parancsok param\u00e9tereit csatolja egy-egy stepper sorba. Norm\u00e1l m\u0171k\u00f6d\u00e9s eset\u00e9n a queue_step parancsot legal\u00e1bb 100ms-mal az els\u0151 l\u00e9p\u00e9s id\u0151pontja el\u0151tt elemzi \u00e9s be\u00e1ll\u00edtja a sorba. V\u00e9g\u00fcl a l\u00e9ptet\u0151 esem\u00e9nyek gener\u00e1l\u00e1sa a stepper_event() -ban t\u00f6rt\u00e9nik. Ezt a hardveres id\u0151z\u00edt\u0151 megszak\u00edt\u00e1s\u00e1b\u00f3l h\u00edvjuk meg az els\u0151 l\u00e9p\u00e9s tervezett id\u0151pontj\u00e1ban. A stepper_event() k\u00f3d gener\u00e1l egy l\u00e9p\u00e9simpulzust, majd \u00e1t\u00fctemezi mag\u00e1t a k\u00f6vetkez\u0151 l\u00e9p\u00e9simpulzus idej\u00e9re a megadott queue_step param\u00e9terekhez. Az egyes queue_step parancsok param\u00e9terei a k\u00f6vetkez\u0151k: \"interval\", \"count\" \u00e9s \"add\". Magas szinten a stepper_event() a k\u00f6vetkez\u0151ket hajtja v\u00e9gre, 'count' times: do_step(); next_wake_time = last_wake_time + interval; interval += add; A fentiek soknak t\u0171nhetnek egy mozdulat v\u00e9grehajt\u00e1s\u00e1hoz. Az egyetlen igaz\u00e1n \u00e9rdekes r\u00e9sz azonban a ToolHead \u00e9s a kinematikai oszt\u00e1lyokban tal\u00e1lhat\u00f3. Ez a k\u00f3dnak azon r\u00e9sze, amely meghat\u00e1rozza a mozg\u00e1sokat \u00e9s azok id\u0151z\u00edt\u00e9s\u00e9t. A feldolgoz\u00e1s t\u00f6bbi r\u00e9sze t\u00f6bbnyire csak kommunik\u00e1ci\u00f3 \u00e9s munka. Gazdamodul hozz\u00e1ad\u00e1sa \u00b6 A Klippy host k\u00f3dja dinamikus modulbet\u00f6lt\u00e9si k\u00e9pess\u00e9ggel rendelkezik. Ha a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1ban tal\u00e1lhat\u00f3 egy \"[my_module]\" nev\u0171 konfigur\u00e1ci\u00f3s szakasz, akkor a szoftver automatikusan megpr\u00f3b\u00e1lja bet\u00f6lteni a klippy/extras/my_module.py modult. Ez a modulrendszer a Klipper \u00faj funkci\u00f3k hozz\u00e1ad\u00e1s\u00e1nak el\u0151nyben r\u00e9szes\u00edtett m\u00f3dszere. Egy \u00faj modul hozz\u00e1ad\u00e1s\u00e1nak legegyszer\u0171bb m\u00f3dja, ha egy megl\u00e9v\u0151 modult haszn\u00e1lunk hivatkoz\u00e1sk\u00e9nt. L\u00e1sd klippy/extras/servo.py p\u00e9ldak\u00e9nt. A k\u00f6vetkez\u0151k is hasznosak lehetnek: A modul v\u00e9grehajt\u00e1sa a modulszint\u0171 load_config() f\u00fcggv\u00e9nyben kezd\u0151dik (a [my_module] form\u00e1j\u00fa config szakaszok eset\u00e9n) vagy a load_config_prefix() f\u00fcggv\u00e9nyben (a [my_module my_name] form\u00e1j\u00fa config szakaszok eset\u00e9n). Ennek a f\u00fcggv\u00e9nynek egy \"config\" objektumot kell \u00e1tadni, \u00e9s egy \u00faj \"printer objektumot\" kell visszaadnia, amely az adott config szakaszhoz kapcsol\u00f3dik. Egy \u00faj nyomtat\u00f3objektum p\u00e9ld\u00e1nyos\u00edt\u00e1sa sor\u00e1n a config objektum seg\u00edts\u00e9g\u00e9vel param\u00e9tereket olvashat be az adott config szakaszb\u00f3l. Erre a config.get() , config.getfloat() , config.getint() stb. met\u00f3dusok szolg\u00e1lnak. \u00dcgyelj arra, hogy a nyomtat\u00f3 objektum fel\u00e9p\u00edt\u00e9se sor\u00e1n minden \u00e9rt\u00e9ket beolvasson a config-b\u00f3l. Ha a felhaszn\u00e1l\u00f3 olyan config param\u00e9tert ad meg, amelyet ebben a f\u00e1zisban nem olvas be, akkor azt felt\u00e9telezi, hogy el\u00edr\u00e1s t\u00f6rt\u00e9nt a config-ban, \u00e9s hiba\u00fczenetet ad. A config.get_printer() met\u00f3dus seg\u00edts\u00e9g\u00e9vel megkapjuk a f\u0151 \"printer\" oszt\u00e1lyra val\u00f3 hivatkoz\u00e1st. Ez a \"printer\" oszt\u00e1ly t\u00e1rolja a hivatkoz\u00e1sokat az \u00f6sszes \"nyomtat\u00f3 objektumra\", amelyet m\u00e1r p\u00e9ld\u00e1nyos\u00edtottak. A printer.lookup_object() met\u00f3dus seg\u00edts\u00e9g\u00e9vel megkereshetj\u00fck a t\u00f6bbi nyomtat\u00f3 objektumra mutat\u00f3 hivatkoz\u00e1sokat. Szinte minden funkci\u00f3 (m\u00e9g az alapvet\u0151 kinematikai modulok is) egy ilyen nyomtat\u00f3 objektumba vannak kapszul\u00e1zva. Vegy\u00fck azonban figyelembe, hogy egy \u00faj modul p\u00e9ld\u00e1nyos\u00edt\u00e1sakor nem minden m\u00e1s nyomtat\u00f3 objektumot p\u00e9ld\u00e1nyos\u00edtottunk. A \"gcode\" \u00e9s a \"pins\" modulok mindig el\u00e9rhet\u0151ek lesznek, de a t\u00f6bbi modul eset\u00e9ben \u00e9rdemes elhalasztani a keres\u00e9st. Az esem\u00e9nykezel\u0151ket a printer.register_event_handler() m\u00f3dszerrel regisztr\u00e1lhatja, ha a k\u00f3dot m\u00e1s nyomtat\u00f3 objektumok \u00e1ltal kiv\u00e1ltott \"events\" sor\u00e1n kell megh\u00edvni. Minden esem\u00e9ny neve egy karakterl\u00e1nc, \u00e9s a konvenci\u00f3 szerint az esem\u00e9nyt kiv\u00e1lt\u00f3 f\u0151 forr\u00e1smodul neve, valamint az esem\u00e9nyt kiv\u00e1lt\u00f3 m\u0171velet r\u00f6vid neve (pl. \"klippy:connect\"). Az egyes esem\u00e9nykezel\u0151knek \u00e1tadott param\u00e9terek az adott esem\u00e9nyre jellemz\u0151ek (ahogy a kiv\u00e9telkezel\u00e9s \u00e9s a v\u00e9grehajt\u00e1si kontextus is). K\u00e9t gyakori ind\u00edt\u00e1si esem\u00e9ny a k\u00f6vetkez\u0151: klippy:connect - Ez az esem\u00e9ny az \u00f6sszes nyomtat\u00f3 objektum p\u00e9ld\u00e1nyos\u00edt\u00e1sa ut\u00e1n gener\u00e1l\u00f3dik. \u00c1ltal\u00e1ban m\u00e1s nyomtat\u00f3 objektumok keres\u00e9s\u00e9re, a konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sok ellen\u0151rz\u00e9s\u00e9re \u00e9s a kezdeti \"handshake\" v\u00e9grehajt\u00e1s\u00e1ra haszn\u00e1lj\u00e1k a nyomtat\u00f3 hardver\u00e9vel. klippy:ready - Ez az esem\u00e9ny az \u00f6sszes csatlakoz\u00e1si kezel\u0151 sikeres befejez\u00e9se ut\u00e1n gener\u00e1l\u00f3dik. Jelzi, hogy a nyomtat\u00f3 \u00e1tv\u00e1lt a norm\u00e1l m\u0171veletek kezel\u00e9s\u00e9re k\u00e9sz \u00e1llapotba. Ebben a visszah\u00edv\u00e1sban ne jelezzen hib\u00e1t. Ha hiba van a felhaszn\u00e1l\u00f3 konfigur\u00e1ci\u00f3j\u00e1ban, mindenk\u00e9ppen h\u00edvja fel a figyelmet a load_config() vagy a \"connect event\" f\u00e1zisokban. Haszn\u00e1ld a raise config.error(\"my error\") vagy raise printer.config_error(\"my error\") hibajelz\u00e9st. A \"pins\" modul seg\u00edts\u00e9g\u00e9vel konfigur\u00e1lhat egy t\u0171t a mikrokontrollerben. Ez \u00e1ltal\u00e1ban a printer.lookup_object(\"pins\").setup_pin(\"pwm\", config.get(\"my_pin\")) -hoz hasonl\u00f3 m\u00f3don t\u00f6rt\u00e9nik. A visszakapott objektumot ezut\u00e1n fut\u00e1sid\u0151ben lehet utas\u00edtani. Ha a nyomtat\u00f3 objektum defini\u00e1l egy get_status() met\u00f3dust, akkor a modul \u00e1llapotinform\u00e1ci\u00f3t export\u00e1lhat a makr\u00f3kon \u00e9s az API Szerveren kereszt\u00fcl. A get_status() met\u00f3dusnak egy Python sz\u00f3t\u00e1rat kell visszaadnia, amelynek kulcsai karakterl\u00e1ncok, \u00e9rt\u00e9kei pedig eg\u00e9sz sz\u00e1mok, lebeg\u0151 sz\u00e1mok, karakterl\u00e1ncok, list\u00e1k, sz\u00f3t\u00e1rak, True, False vagy None. Haszn\u00e1lhat\u00f3k tuplik (\u00e9s neves\u00edtett tuplik) is (ezek az API-kiszolg\u00e1l\u00f3n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 el\u00e9r\u00e9skor listak\u00e9nt jelennek meg). Az export\u00e1lt \"immutable\" list\u00e1kat \u00e9s sz\u00f3t\u00e1rakat. Ha tartalmuk megv\u00e1ltozik, akkor egy \u00faj objektumot kell visszak\u00fcldeni a get_status() parancsb\u00f3l, k\u00fcl\u00f6nben az API-kiszolg\u00e1l\u00f3 nem fogja \u00e9szlelni a v\u00e1ltoz\u00e1sokat. Ha a modulnak hozz\u00e1f\u00e9r\u00e9sre van sz\u00fcks\u00e9ge a rendszer id\u0151z\u00edt\u00e9s\u00e9hez vagy k\u00fcls\u0151 f\u00e1jlle\u00edr\u00f3khoz, akkor a printer.get_reactor() seg\u00edts\u00e9g\u00e9vel hozz\u00e1f\u00e9rhet\u00fcnk a glob\u00e1lis \"event reactor\" oszt\u00e1lyhoz. Ez a reactor oszt\u00e1ly lehet\u0151v\u00e9 teszi az id\u0151z\u00edt\u0151k \u00fctemez\u00e9s\u00e9t, a f\u00e1jlle\u00edr\u00f3k bemenet\u00e9nek v\u00e1rakoz\u00e1s\u00e1t, valamint a gazdak\u00f3d \"sleep\" haszn\u00e1lat\u00e1t. Ne haszn\u00e1lj glob\u00e1lis v\u00e1ltoz\u00f3kat. Minden \u00e1llapotot a load_config() f\u00fcggv\u00e9ny \u00e1ltal visszaadott nyomtat\u00f3 objektumban kell t\u00e1rolni. Ez az\u00e9rt fontos, mert ellenkez\u0151 esetben a RESTART parancs nem az elv\u00e1rtaknak megfelel\u0151en fog m\u0171k\u00f6dni. Szint\u00e9n hasonl\u00f3 okokb\u00f3l, ha b\u00e1rmilyen k\u00fcls\u0151 f\u00e1jl (vagy foglalat) megny\u00edlt, akkor mindenk\u00e9ppen regisztr\u00e1ljunk egy \"klippy:disconnect\" esem\u00e9nykezel\u0151t, \u00e9s z\u00e1rjuk be \u0151ket ebb\u0151l a visszah\u00edv\u00e1sb\u00f3l. Ker\u00fclje a m\u00e1s nyomtat\u00f3 objektumok bels\u0151 tagv\u00e1ltoz\u00f3inak el\u00e9r\u00e9s\u00e9t (vagy az al\u00e1h\u00faz\u00e1ssal kezd\u0151d\u0151 met\u00f3dusok h\u00edv\u00e1s\u00e1t). Ennek a konvenci\u00f3nak a betart\u00e1sa megk\u00f6nny\u00edti a j\u00f6v\u0151beli v\u00e1ltoz\u00e1sok kezel\u00e9s\u00e9t. Javasoljuk, hogy a Python oszt\u00e1lyok Python konstruktor\u00e1ban minden tagv\u00e1ltoz\u00f3hoz \u00e9rt\u00e9ket rendeljen. (\u00c9s ez\u00e9rt ker\u00fclje a Python azon k\u00e9pess\u00e9g\u00e9nek kihaszn\u00e1l\u00e1s\u00e1t, hogy dinamikusan hozzon l\u00e9tre \u00faj tagv\u00e1ltoz\u00f3kat.) Ha egy Python v\u00e1ltoz\u00f3nak lebeg\u0151pontos \u00e9rt\u00e9ket kell t\u00e1rolnia, akkor aj\u00e1nlott mindig lebeg\u0151pontos konstansokkal hozz\u00e1rendelni \u00e9s kezelni a v\u00e1ltoz\u00f3t (\u00e9s soha ne haszn\u00e1ljunk eg\u00e9sz\u00e9rt\u00e9k\u0171 konstansokat). P\u00e9ld\u00e1ul r\u00e9szes\u00edts\u00fck el\u0151nyben a self.speed = 1. \u00e9rt\u00e9ket a self.speed = 1 \u00e9rt\u00e9kkel szemben, \u00e9s r\u00e9szes\u00edts\u00fck el\u0151nyben a self.speed = 2 \u00e9rt\u00e9ket. * x a self.speed = 2 * x helyett. A lebeg\u0151pontos \u00e9rt\u00e9kek k\u00f6vetkezetes haszn\u00e1lat\u00e1val elker\u00fclhet\u0151k a Python-t\u00edpuskonverzi\u00f3k nehezen hibakereshet\u0151 furcsas\u00e1gai. Ha a modult a Klipper f\u0151k\u00f3dj\u00e1ba val\u00f3 be\u00e9p\u00edt\u00e9sre k\u00fcld\u00f6d, mindenk\u00e9ppen helyezz el egy szerz\u0151i jogi megjegyz\u00e9st a modul tetej\u00e9n. Az el\u0151nyben r\u00e9szes\u00edtett form\u00e1tumot l\u00e1sd a megl\u00e9v\u0151 modulokn\u00e1l. \u00daj kinematika hozz\u00e1ad\u00e1sa \u00b6 Ez a szakasz n\u00e9h\u00e1ny tippet ad a Klipper tov\u00e1bbi nyomtat\u00f3 kinematikai t\u00edpusok t\u00e1mogat\u00e1s\u00e1nak hozz\u00e1ad\u00e1s\u00e1hoz. Az ilyen t\u00edpus\u00fa tev\u00e9kenys\u00e9ghez a c\u00e9l kinematik\u00e1hoz tartoz\u00f3 matematikai k\u00e9pletek kiv\u00e1l\u00f3 ismerete sz\u00fcks\u00e9ges. Szoftverfejleszt\u00e9si ismereteket is ig\u00e9nyel, b\u00e1r csak a gazdaszoftvert kell friss\u00edteni. Hasznos l\u00e9p\u00e9sek: Kezdd \" Egy mozg\u00e1s k\u00f3dfolyamata \" szakasz \u00e9s a Kinematika dokumentum tanulm\u00e1nyoz\u00e1s\u00e1val. Tekintsd \u00e1t a klippy/kinematics/ k\u00f6nyvt\u00e1rban tal\u00e1lhat\u00f3 kinematikai oszt\u00e1lyokat. A kinematikai oszt\u00e1lyok feladata egy cartesian koordin\u00e1t\u00e1kban megadott mozg\u00e1s \u00e1talak\u00edt\u00e1sa az egyes l\u00e9ptet\u0151k\u00f6n t\u00f6rt\u00e9n\u0151 mozg\u00e1ss\u00e1. Kiindul\u00f3pontk\u00e9nt le kell tudni m\u00e1solni az egyik ilyen f\u00e1jlt. Implement\u00e1ljuk a C l\u00e9ptet\u0151ket kinematikai poz\u00edci\u00f3f\u00fcggv\u00e9nyeit minden l\u00e9ptet\u0151h\u00f6z, ha azok m\u00e9g nem \u00e1llnak rendelkez\u00e9sre (l\u00e1sd a kin_cart.c, kin_corexy.c \u00e9s kin_delta.c f\u00e1jlokat a klippy/chelper/ \u00e1llom\u00e1nyban). A f\u00fcggv\u00e9nynek meg kell h\u00edvnia move_get_coord() , hogy egy adott mozg\u00e1sid\u0151t (m\u00e1sodpercben) cartesian koordin\u00e1t\u00e1v\u00e1 (millim\u00e9terben) konvert\u00e1ljon, majd ebb\u0151l a cartesian koordin\u00e1t\u00e1b\u00f3l kisz\u00e1m\u00edtsa a k\u00edv\u00e1nt l\u00e9ptet\u0151 poz\u00edci\u00f3t (millim\u00e9terben). Az \u00faj kinematikai oszt\u00e1lyban implement\u00e1ljuk a calc_position() m\u00f3dszert. Ez a met\u00f3dus kisz\u00e1m\u00edtja a nyomtat\u00f3fej poz\u00edci\u00f3j\u00e1t cartesian koordin\u00e1t\u00e1kban az egyes l\u00e9ptet\u0151motorok poz\u00edci\u00f3j\u00e1b\u00f3l. Nem kell, hogy hat\u00e9kony legyen, mivel jellemz\u0151en csak a kezd\u0151pont \u00e9s az \u00e9rint\u00e9si m\u0171veletek sor\u00e1n h\u00edvjuk meg. Egy\u00e9b m\u00f3dszerek. Implement\u00e1lja a check_move() , get_status() met\u00f3dusokat, get_steppers() , home() \u00e9s set_position() m\u00f3dszereket. Ezeket a f\u00fcggv\u00e9nyeket \u00e1ltal\u00e1ban kinematikai specifikus ellen\u0151rz\u00e9sek biztos\u00edt\u00e1s\u00e1ra haszn\u00e1lj\u00e1k. A fejleszt\u00e9s kezdet\u00e9n azonban haszn\u00e1lhatunk itt kaz\u00e1n-lemez szer\u0171 k\u00f3dot. Tesztel\u00e9si esetek v\u00e9grehajt\u00e1sa. K\u00e9sz\u00edtsen egy G-k\u00f3d f\u00e1jlt egy sor olyan mozg\u00e1ssal, amelyekkel az adott kinematika fontos eseteit tesztelheti. K\u00f6vesse a Hibakeres\u00e9si dokument\u00e1ci\u00f3t , hogy ezt a G-k\u00f3d f\u00e1jlt mikrokontroller parancsokk\u00e1 alak\u00edtsa \u00e1t. Ez hasznos a sarokesetek gyakorl\u00e1s\u00e1ra \u00e9s a regresszi\u00f3k ellen\u0151rz\u00e9s\u00e9re. Portol\u00e1s \u00faj mikrokontrollerre \u00b6 Ez a szakasz n\u00e9h\u00e1ny tippet ad a Klipper mikrokontroller k\u00f3dj\u00e1nak \u00faj architekt\u00far\u00e1ra t\u00f6rt\u00e9n\u0151 \u00e1tvitel\u00e9hez. Ez a fajta tev\u00e9kenys\u00e9g j\u00f3 be\u00e1gyazott fejleszt\u00e9si ismereteket \u00e9s gyakorlati hozz\u00e1f\u00e9r\u00e9st ig\u00e9nyel a c\u00e9lmikrokontrollerhez. Hasznos l\u00e9p\u00e9sek: Kezd a portol\u00e1s sor\u00e1n haszn\u00e1lni k\u00edv\u00e1nt harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 k\u00f6nyvt\u00e1rak azonos\u00edt\u00e1s\u00e1val. Gyakori p\u00e9lda erre a \"CMSIS\" csomagol\u00e1sok \u00e9s a gy\u00e1rt\u00f3 \"HAL\" k\u00f6nyvt\u00e1rak. Minden harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 k\u00f3dnak GNU GPLv3 kompatibilisnek kell lennie. A harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 k\u00f3dot a Klipper lib/ k\u00f6nyvt\u00e1rba kell \u00e1tvinni. Friss\u00edtse a lib/README f\u00e1jlt azzal az inform\u00e1ci\u00f3val, hogy hol \u00e9s mikor szerezte meg a k\u00f6nyvt\u00e1rat. A k\u00f3dot lehet\u0151leg v\u00e1ltozatlanul m\u00e1sold be a Klipper t\u00e1rol\u00f3ba, de ha b\u00e1rmilyen v\u00e1ltoztat\u00e1sra van sz\u00fcks\u00e9g, akkor ezeket a v\u00e1ltoztat\u00e1sokat kifejezetten fel kell t\u00fcntetni a lib/README f\u00e1jlban. Hozzon l\u00e9tre egy \u00faj architekt\u00fara alk\u00f6nyvt\u00e1rat az src/ k\u00f6nyvt\u00e1rban, \u00e9s adj hozz\u00e1 kezdeti Config \u00e9s Makefile t\u00e1mogat\u00e1st. Haszn\u00e1ld a megl\u00e9v\u0151 architekt\u00far\u00e1kat \u00fatmutat\u00f3k\u00e9nt. Az src/simulator egy alapvet\u0151 p\u00e9ld\u00e1t ny\u00fajt egy minim\u00e1lis kiindul\u00e1si pontra. Az els\u0151 f\u0151 k\u00f3dol\u00e1si feladat a kommunik\u00e1ci\u00f3s t\u00e1mogat\u00e1s fel\u00e1ll\u00edt\u00e1sa az alaplapnak. Ez a legnehezebb l\u00e9p\u00e9s egy \u00faj port eset\u00e9ben. Ha az alapvet\u0151 kommunik\u00e1ci\u00f3 m\u00e1r m\u0171k\u00f6dik, a tov\u00e1bbi l\u00e9p\u00e9sek \u00e1ltal\u00e1ban sokkal k\u00f6nnyebbek. A kezdeti fejleszt\u00e9s sor\u00e1n jellemz\u0151en UART t\u00edpus\u00fa soros eszk\u00f6zt haszn\u00e1lunk, mivel az ilyen t\u00edpus\u00fa hardvereszk\u00f6z\u00f6ket \u00e1ltal\u00e1ban k\u00f6nnyebb enged\u00e9lyezni \u00e9s vez\u00e9relni. Ebben a f\u00e1zisban b\u0151kez\u0171en haszn\u00e1ld az src/generic/ k\u00f6nyvt\u00e1rban tal\u00e1lhat\u00f3 seg\u00e9dk\u00f3dot (ellen\u0151rizd, hogy az src/simulator/Makefile hogyan tartalmazza a generikus C k\u00f3dot a fel\u00e9p\u00edt\u00e9sben). Ebben a f\u00e1zisban sz\u00fcks\u00e9ges defini\u00e1lni a timer_read_time() funkci\u00f3t is (amely visszaadja az aktu\u00e1lis rendszer\u00f3r\u00e1t), de nem sz\u00fcks\u00e9ges a timer irq kezel\u00e9s\u00e9nek teljes t\u00e1mogat\u00e1sa. Ismerkedjen meg a console.py eszk\u00f6zzel (a Hibakeres\u00e9si dokumentumban le\u00edrtak szerint), \u00e9s ellen\u0151rizd vele a mikrokontrollerrel val\u00f3 kapcsolatot. Ez az eszk\u00f6z leford\u00edtja az alacsony szint\u0171 mikrokontroller kommunik\u00e1ci\u00f3s protokollt ember \u00e1ltal olvashat\u00f3 form\u00e1ra. A hardveres megszak\u00edt\u00e1sokb\u00f3l t\u00f6rt\u00e9n\u0151 id\u0151z\u00edt\u0151 k\u00fcld\u00e9s t\u00e1mogat\u00e1s\u00e1nak hozz\u00e1ad\u00e1sa. L\u00e1sd a Klipper commit 970831ee p\u00e9ld\u00e1j\u00e1t az LPC176x architekt\u00fara 1-5. l\u00e9p\u00e9seivel. Alapvet\u0151 GPIO bemeneti \u00e9s kimeneti t\u00e1mogat\u00e1s megjelen\u00edt\u00e9se. L\u00e1sd a Klipper commit c78b9076 p\u00e9ld\u00e1j\u00e1t erre. Tov\u00e1bbi perif\u00e9ri\u00e1k felhoz\u00e1sa. L\u00e1sd p\u00e9ld\u00e1ul a Klipper megb\u00edz\u00e1sokat 65613aed , c812a40a \u00e9s c381d03a . Hozzon l\u00e9tre egy minta Klipper konfigur\u00e1ci\u00f3s f\u00e1jlt a config/ k\u00f6nyvt\u00e1rban. Tesztelj\u00fck a mikrokontrollert a klippy.py f\u0151programmal. Fontold meg a test/ k\u00f6nyvt\u00e1rban l\u00e9v\u0151 build tesztesetek hozz\u00e1ad\u00e1s\u00e1t. Tov\u00e1bbi k\u00f3dol\u00e1si tippek: Ker\u00fclje a \"C bitfields\" haszn\u00e1lat\u00e1t az IO regiszterek el\u00e9r\u00e9s\u00e9hez; r\u00e9szes\u00edtse el\u0151nyben a 32 bites, 16 bites vagy 8 bites eg\u00e9sz sz\u00e1mok k\u00f6zvetlen olvas\u00e1si \u00e9s \u00edr\u00e1si m\u0171veleteit. A C nyelvi specifik\u00e1ci\u00f3k nem hat\u00e1rozz\u00e1k meg egy\u00e9rtelm\u0171en, hogy a ford\u00edt\u00f3nak hogyan kell megval\u00f3s\u00edtania a C bitmez\u0151ket (pl. endianness \u00e9s bitkioszt\u00e1s), \u00e9s neh\u00e9z meghat\u00e1rozni, hogy milyen IO m\u0171veletek t\u00f6rt\u00e9nnek egy C bitmez\u0151 olvas\u00e1sakor vagy \u00edr\u00e1sakor. Ink\u00e1bb \u00edrjon explicit \u00e9rt\u00e9keket az IO regiszterekbe, minthogy olvas\u00e1s-m\u00f3dos\u00edt\u00e1s-\u00edr\u00e1s m\u0171veleteket haszn\u00e1lj. Azaz, ha egy olyan IO-regiszterben friss\u00edt\u00fcnk egy mez\u0151t, ahol a t\u00f6bbi mez\u0151 \u00e9rt\u00e9kei ismertek, akkor el\u0151ny\u00f6sebb a regiszter teljes tartalm\u00e1t explicit m\u00f3don ki\u00edrni. Az explicit \u00edr\u00e1sok kisebb, gyorsabb \u00e9s k\u00f6nnyebben hibakereshet\u0151 k\u00f3dot eredm\u00e9nyeznek. Koordin\u00e1ta rendszerek \u00b6 A Klipper bels\u0151leg els\u0151sorban a nyomtat\u00f3fej helyzet\u00e9t k\u00f6veti cartesian koordin\u00e1t\u00e1kban, amelyek a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1ta rendszerhez viszony\u00edtva vannak. Ez azt jelenti, hogy a Klipper k\u00f3d nagy r\u00e9sze soha nem tapasztal koordin\u00e1ta rendszer v\u00e1ltoz\u00e1st. Ha a felhaszn\u00e1l\u00f3 az orig\u00f3 megv\u00e1ltoztat\u00e1s\u00e1t k\u00e9ri (pl. egy G92 parancsal), akkor ezt a hat\u00e1st a j\u00f6v\u0151beli parancsok els\u0151dleges koordin\u00e1ta rendszerre t\u00f6rt\u00e9n\u0151 \u00e1tv\u00e1lt\u00e1s\u00e1val \u00e9rj\u00fck el. Bizonyos esetekben azonban hasznos, ha a nyomtat\u00f3fej helyzet\u00e9t m\u00e1s koordin\u00e1ta rendszerben szeretn\u00e9nk megkapni, \u00e9s a Klipper t\u00f6bb eszk\u00f6zzel is megk\u00f6nny\u00edti ezt. Ez a GET_POSITION parancs futtat\u00e1s\u00e1val l\u00e1that\u00f3. P\u00e9ld\u00e1ul: Send: GET_POSITION Recv: // mcu: stepper_a:-2060 stepper_b:-1169 stepper_c:-1613 Recv: // stepper: stepper_a:457.254159 stepper_b:466.085669 stepper_c:465.382132 Recv: // kinematic: X:8.339144 Y:-3.131558 Z:233.347121 Recv: // toolhead: X:8.338078 Y:-3.123175 Z:233.347878 E:0.000000 Recv: // gcode: X:8.338078 Y:-3.123175 Z:233.347878 E:0.000000 Recv: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000 Recv: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000 Az \"MCU\" poz\u00edci\u00f3 ( stepper.get_mcu_position() a k\u00f3dban) a mikrokontroller \u00e1ltal pozit\u00edv ir\u00e1nyban kiadott l\u00e9p\u00e9sek sz\u00e1ma m\u00ednusz a mikrokontroller utols\u00f3 resetel\u00e9se \u00f3ta negat\u00edv ir\u00e1nyban kiadott l\u00e9p\u00e9sek sz\u00e1ma. Ha a g\u00e9p a lek\u00e9rdez\u00e9skor mozg\u00e1sban van, akkor a jelentett \u00e9rt\u00e9k tartalmazza a mikrokontrollerben pufferelt l\u00e9p\u00e9seket, de nem tartalmazza a look-ahead sorban l\u00e9v\u0151 l\u00e9p\u00e9seket. A \"stepper\" poz\u00edci\u00f3 ( stepper.get_commanded_position() ) az adott l\u00e9ptet\u0151 poz\u00edci\u00f3ja, ahogyan azt a kinematikai k\u00f3d k\u00f6veti. Ez \u00e1ltal\u00e1ban megfelel a kocsinak a s\u00edn ment\u00e9n a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott position_endstop-hoz viszony\u00edtott poz\u00edci\u00f3j\u00e1nak (mm-ben). (Egyes kinematik\u00e1k a l\u00e9ptet\u0151k poz\u00edci\u00f3j\u00e1t millim\u00e9ter helyett radi\u00e1nban k\u00f6vetik.) Ha a g\u00e9p a lek\u00e9rdez\u00e9skor mozg\u00e1sban van, akkor a jelentett \u00e9rt\u00e9k tartalmazza a mikrokontrollerben pufferelt mozg\u00e1sokat, de nem tartalmazza a look-ahead sorban l\u00e9v\u0151 mozg\u00e1sokat. Haszn\u00e1lhatjuk a toolhead.flush_step_generation() vagy toolhead.wait_moves() h\u00edv\u00e1sokat a look-ahead \u00e9s a l\u00e9p\u00e9sgener\u00e1l\u00f3 k\u00f3d teljes ki\u00fcr\u00edt\u00e9s\u00e9hez. A \"kinematic\" poz\u00edci\u00f3 ( kin.calc_position() ) a nyomtat\u00f3fej \"stepper\" poz\u00edci\u00f3kb\u00f3l sz\u00e1rmaztatott cartesian poz\u00edci\u00f3ja, \u00e9s a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1tarendszerhez k\u00e9pest relat\u00edv. Ez elt\u00e9rhet a k\u00e9rt cartesian poz\u00edci\u00f3t\u00f3l a l\u00e9ptet\u0151motorok szaggatotts\u00e1ga miatt. Ha a g\u00e9p a \"stepper\" poz\u00edci\u00f3k felv\u00e9telekor mozg\u00e1sban van, akkor a jelentett \u00e9rt\u00e9k tartalmazza a mikrokontrollerben pufferelt mozg\u00e1sokat, de nem tartalmazza a look-ahead v\u00e1r\u00f3list\u00e1n l\u00e9v\u0151 mozg\u00e1sokat. Haszn\u00e1lhatjuk a toolhead.flush_step_generation() vagy toolhead.wait_moves() h\u00edv\u00e1sokat a look-ahead \u00e9s a l\u00e9p\u00e9sgener\u00e1l\u00f3 k\u00f3d teljes ki\u00fcr\u00edt\u00e9s\u00e9hez. A \"toolhead\" poz\u00edci\u00f3 ( toolhead.get_position() ) a nyomtat\u00f3fej utols\u00f3 k\u00e9rt poz\u00edci\u00f3ja cartesian koordin\u00e1t\u00e1kban a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1tarendszerhez k\u00e9pest. Ha a g\u00e9p a lek\u00e9rdez\u00e9s kiad\u00e1sakor mozg\u00e1sban van, akkor a jelentett \u00e9rt\u00e9k tartalmazza az \u00f6sszes k\u00e9rt mozg\u00e1st (m\u00e9g azokat is, amelyek a pufferben vannak \u00e9s a motorvez\u00e9rl\u0151knek val\u00f3 kiad\u00e1sra v\u00e1rnak). A \"gcode\" poz\u00edci\u00f3 a G1 (vagy G0 ) parancs utols\u00f3 k\u00e9rt poz\u00edci\u00f3ja cartesian koordin\u00e1t\u00e1kban, a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1tarendszerhez k\u00e9pest. Ez elt\u00e9rhet a \"toolhead\" poz\u00edci\u00f3t\u00f3l, ha egy G-k\u00f3d transzform\u00e1ci\u00f3 (pl. bed_mesh, bed_tilt, skew_correction) van \u00e9rv\u00e9nyben. Ez elt\u00e9rhet az utols\u00f3 G1 parancsban megadott t\u00e9nyleges koordin\u00e1t\u00e1kt\u00f3l, ha a G-k\u00f3d orig\u00f3ja megv\u00e1ltozott (pl, G92 , SET_GCODE_OFFSET , M221 ). A M114 parancs ( gcode_move.get_status()['gcode_position'] ) az aktu\u00e1lis G-k\u00f3d koordin\u00e1tarendszerhez viszony\u00edtott utols\u00f3 G-k\u00f3d poz\u00edci\u00f3t jelenti. A \"gcode base\" a G-k\u00f3d orig\u00f3j\u00e1nak helye cartesian koordin\u00e1t\u00e1kban a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1tarendszerhez k\u00e9pest. Az olyan parancsok, mint a G92 , SET_GCODE_OFFSET \u00e9s M221 m\u00f3dos\u00edtj\u00e1k ezt az \u00e9rt\u00e9ket. A \"gcode homing\" az a hely, amelyet a G-k\u00f3d orig\u00f3jak\u00e9nt (a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1tarendszerhez viszony\u00edtott cartesian koordin\u00e1t\u00e1kban) a G28 home parancs ut\u00e1n haszn\u00e1lni kell. A SET_GCODE_OFFSET parancs megv\u00e1ltoztathatja ezt az \u00e9rt\u00e9ket. Id\u0151 \u00b6 A Klipper m\u0171k\u00f6d\u00e9s\u00e9nek alapvet\u0151 eleme az \u00f3r\u00e1k, id\u0151pontok \u00e9s id\u0151b\u00e9lyegek kezel\u00e9se. A Klipper a nyomtat\u00f3n v\u00e9grehajtott m\u0171veleteket a k\u00f6zelj\u00f6v\u0151ben bek\u00f6vetkez\u0151 esem\u00e9nyek \u00fctemez\u00e9s\u00e9vel hajtja v\u00e9gre. P\u00e9ld\u00e1ul egy ventil\u00e1tor bekapcsol\u00e1s\u00e1hoz a k\u00f3d \u00fctemezheti egy GPIO-t\u0171 v\u00e1ltoz\u00e1s\u00e1t 100ms alatt. Ritk\u00e1n fordul el\u0151, hogy a k\u00f3d azonnali m\u0171veletet pr\u00f3b\u00e1l v\u00e9grehajtani. Ez\u00e9rt az id\u0151 kezel\u00e9se a Klipperben kritikus fontoss\u00e1g\u00fa a helyes m\u0171k\u00f6d\u00e9s szempontj\u00e1b\u00f3l. A Klipper gazdaszoftverben h\u00e1romf\u00e9le id\u0151t\u00edpust k\u00f6vethet\u00fcnk nyomon: Rendszerid\u0151. A rendszerid\u0151 a rendszer monoton \u00f3r\u00e1j\u00e1t haszn\u00e1lja. Ez egy lebeg\u0151pontos sz\u00e1m, amelyet m\u00e1sodperck\u00e9nt t\u00e1rolnak, \u00e9s (\u00e1ltal\u00e1ban) a gazdasz\u00e1m\u00edt\u00f3g\u00e9p utols\u00f3 ind\u00edt\u00e1sakor. A rendszerid\u0151k korl\u00e1tozottan haszn\u00e1lhat\u00f3k a szoftverben. Els\u0151sorban az oper\u00e1ci\u00f3s rendszerrel val\u00f3 interakci\u00f3 sor\u00e1n haszn\u00e1lj\u00e1k \u0151ket. Az \u00e1llom\u00e1sk\u00f3don bel\u00fcl a rendszerid\u0151ket gyakran az eventtime vagy curtime nev\u0171 v\u00e1ltoz\u00f3k t\u00e1rolj\u00e1k. Nyomtat\u00e1si id\u0151. A nyomtat\u00e1si id\u0151 a mikrokontroller f\u0151 \u00f3r\u00e1j\u00e1hoz szinkroniz\u00e1l\u00f3dik az (\"[mcu]\" config) szakaszban meghat\u00e1rozott mikrokontrollerhez. Ez egy m\u00e1sodpercben t\u00e1rolt lebeg\u0151pontos sz\u00e1m, \u00e9s a f\u0151 MCU utols\u00f3 \u00fajraind\u00edt\u00e1s\u00e1nak id\u0151pontj\u00e1hoz viszony\u00edtva van. Lehet\u0151s\u00e9g van a \"nyomtat\u00e1si id\u0151\"-r\u0151l a f\u0151 mikrokontroller hardveres \u00f3r\u00e1j\u00e1ra val\u00f3 \u00e1tv\u00e1lt\u00e1sra. A nyomtat\u00e1si id\u0151nek az MCU-val val\u00f3 megszorz\u00e1s\u00e1val a statikusan konfigur\u00e1lt frekvenci\u00e1val. A magas szint\u0171 gazdak\u00f3d szinte minden fizikai m\u0171velet (pl. fejmozg\u00e1s, f\u0171t\u00e9sv\u00e1lt\u00e1s stb.) kisz\u00e1m\u00edt\u00e1s\u00e1hoz nyomtat\u00e1si id\u0151t haszn\u00e1l. A gazdak\u00f3don bel\u00fcl a nyomtat\u00e1si id\u0151ket \u00e1ltal\u00e1ban a print_time vagy move_time nev\u0171 v\u00e1ltoz\u00f3kban t\u00e1rolj\u00e1k. MCU \u00f3ra. Ez az egyes mikrovez\u00e9rl\u0151k hardveres \u00f3rasz\u00e1ml\u00e1l\u00f3ja. Eg\u00e9sz sz\u00e1mk\u00e9nt van t\u00e1rolva, friss\u00edt\u00e9si gyakoris\u00e1ga az adott mikrovez\u00e9rl\u0151 frekvenci\u00e1j\u00e1hoz viszony\u00edtott. A gazdaszoftver bels\u0151 idej\u00e9t leford\u00edtja \u00f3r\u00e1kra, miel\u0151tt tov\u00e1bb\u00edtan\u00e1 az MCU-nak. Az MCU k\u00f3d mindig csak az \u00f3ra ketyeg\u00e9s\u00e9ben k\u00f6veti az id\u0151t. A gazdag\u00e9p k\u00f3don bel\u00fcl az \u00f3ra\u00e9rt\u00e9keket 64 bites eg\u00e9sz sz\u00e1mk\u00e9nt k\u00f6veti nyomon, m\u00edg az MCU k\u00f3d 32 bites eg\u00e9sz sz\u00e1mokat haszn\u00e1l. A gazdag\u00e9p k\u00f3don bel\u00fcl az \u00f3r\u00e1k \u00e1ltal\u00e1ban clock vagy tick nevet tartalmaz\u00f3 v\u00e1ltoz\u00f3kban t\u00e1rol\u00f3dnak. A k\u00fcl\u00f6nb\u00f6z\u0151 id\u0151form\u00e1tumok k\u00f6z\u00f6tti konverzi\u00f3 els\u0151sorban a klippy/clocksync.py k\u00f3dban val\u00f3sul meg. N\u00e9h\u00e1ny dolog, amire figyelni kell a k\u00f3d \u00e1ttekint\u00e9sekor: 32 bites \u00e9s 64 bites \u00f3rajelek: A s\u00e1vsz\u00e9less\u00e9g cs\u00f6kkent\u00e9se \u00e9s a mikrokontroller hat\u00e9konys\u00e1g\u00e1nak jav\u00edt\u00e1sa \u00e9rdek\u00e9ben a mikrokontroller \u00f3rajeleit 32 bites eg\u00e9sz sz\u00e1mokk\u00e9nt k\u00f6vetik. K\u00e9t \u00f3rajel \u00f6sszehasonl\u00edt\u00e1sakor az MCU k\u00f3dban mindig a timer_is_before() f\u00fcggv\u00e9nyt kell haszn\u00e1lni, hogy az eg\u00e9sz sz\u00e1mok \u00e1tford\u00edt\u00e1s\u00e1t megfelel\u0151en kezelj\u00fck. A gazdaszoftver a 32 bites \u00f3rajeleket 64 bites \u00f3rajelekk\u00e9 alak\u00edtja \u00e1t az\u00e1ltal, hogy hozz\u00e1adja az utols\u00f3 kapott MCU id\u0151b\u00e9lyegz\u0151 magasrend\u0171 bitjeit. Egyetlen MCU-t\u00f3l \u00e9rkez\u0151 \u00fczenet sem lehet 2^31 \u00f3rajeln\u00e9l t\u00f6bb a j\u00f6v\u0151ben vagy a m\u00faltban, \u00edgy ez az \u00e1talak\u00edt\u00e1s soha nem f\u00e9lre\u00e9rthet\u0151. A gazdag\u00e9p a 64 bites \u00f3rajelekr\u0151l 32 bites \u00f3rajelekre konvert\u00e1l a magasrend\u0171 bitek egyszer\u0171 lefarag\u00e1s\u00e1val. Annak \u00e9rdek\u00e9ben, hogy ez az \u00e1talak\u00edt\u00e1s ne legyen k\u00e9t\u00e9rtelm\u0171, a klippy/chelper/serialqueue.c k\u00f3d addig puffereli az \u00fczeneteket, am\u00edg azok 2^31 \u00f3rajelen bel\u00fcl vannak a c\u00e9lid\u0151h\u00f6z k\u00e9pest. T\u00f6bb mikrovez\u00e9rl\u0151: A gazdaszoftver t\u00e1mogatja t\u00f6bb mikrovez\u00e9rl\u0151 haszn\u00e1lat\u00e1t egyetlen nyomtat\u00f3n. Ebben az esetben minden mikrokontroller \"MCU \u00f3rajel\u00e9t\" k\u00fcl\u00f6n-k\u00fcl\u00f6n k\u00f6veti. A clocksync.py k\u00f3d kezeli a mikrovez\u00e9rl\u0151k k\u00f6z\u00f6tti \u00f3raeltol\u00f3d\u00e1st a \"nyomtat\u00e1si id\u0151r\u0151l\" az \"MCU \u00f3r\u00e1ra\" t\u00f6rt\u00e9n\u0151 \u00e1talak\u00edt\u00e1s m\u00f3dj\u00e1nak m\u00f3dos\u00edt\u00e1s\u00e1val. A m\u00e1sodlagos MCU-n\u00e1l az ebben az \u00e1talak\u00edt\u00e1sban haszn\u00e1lt MCU frekvencia rendszeresen friss\u00fcl, hogy figyelembe vedd a m\u00e9rt cs\u00fasz\u00e1st.","title":"K\u00f3d \u00e1ttekint\u00e9se"},{"location":"Code_Overview.html#kod-attekintese","text":"Ez a dokumentum a Klipper \u00e1ltal\u00e1nos k\u00f3delrendez\u00e9s\u00e9t \u00e9s f\u0151bb k\u00f3dfolyam\u00e1t \u00edrja le.","title":"K\u00f3d \u00e1ttekint\u00e9se"},{"location":"Code_Overview.html#konyvtar-elrendezese","text":"Az src/ k\u00f6nyvt\u00e1r tartalmazza a mikrovez\u00e9rl\u0151 k\u00f3dj\u00e1nak C forr\u00e1s\u00e1t. Az src/atsam/ , src/atsamd/ , src/avr/ , src/linux/ , src/lpc176x/ , src/ A pru/ \u00e9s src/stm32/ k\u00f6nyvt\u00e1rak architekt\u00fara specifikus mikrovez\u00e9rl\u0151 k\u00f3dot tartalmaznak. Az src/simulator/ k\u00f3dcsonkokat tartalmaz, amelyek lehet\u0151v\u00e9 teszik a mikrokontroller tesztel\u00e9s\u00e9t m\u00e1s architekt\u00far\u00e1kon. Az src/generic/ k\u00f6nyvt\u00e1r seg\u00e9dk\u00f3dot tartalmaz, amely hasznos lehet a k\u00fcl\u00f6nb\u00f6z\u0151 architekt\u00far\u00e1kban. A build gondoskodik arr\u00f3l, hogy az include \"board/somefile.h\" el\u0151sz\u00f6r az aktu\u00e1lis architekt\u00fara k\u00f6nyvt\u00e1rban (pl. src/avr/somefile.h), majd az \u00e1ltal\u00e1nos k\u00f6nyvt\u00e1rban (pl. src/generic/somefile.h) keressen. A klippy/ k\u00f6nyvt\u00e1r tartalmazza a gazdaszoftvert. A gazdaszoftver nagy r\u00e9sze Python nyelven \u00edr\u00f3dott, azonban a klippy/chelper/ k\u00f6nyvt\u00e1r tartalmaz n\u00e9h\u00e1ny C k\u00f3d\u00fa seg\u00e9dprogramot. A klippy/kinematics/ k\u00f6nyvt\u00e1r tartalmazza a g\u00e9p kinematikai k\u00f3dj\u00e1t. A klippy/extras/ k\u00f6nyvt\u00e1r tartalmazza a gazdak\u00f3d b\u0151v\u00edthet\u0151 \"moduljait\". A lib/ k\u00f6nyvt\u00e1r k\u00fcls\u0151, harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 k\u00f6nyvt\u00e1ri k\u00f3dot tartalmaz, amely n\u00e9h\u00e1ny c\u00e9lprogram elk\u00e9sz\u00edt\u00e9s\u00e9hez sz\u00fcks\u00e9ges. A config/ k\u00f6nyvt\u00e1r a nyomtat\u00f3 konfigur\u00e1ci\u00f3s p\u00e9ldaf\u00e1jljait tartalmazza. A scripts/ k\u00f6nyvt\u00e1r a mikrokontroller k\u00f3dj\u00e1nak ford\u00edt\u00e1s\u00e1hoz hasznos, \u00e9p\u00edt\u00e9si-idej\u0171 szkripteket tartalmaz. A test/ k\u00f6nyvt\u00e1r automatikus teszteseteket tartalmaz. Ford\u00edt\u00e1s sor\u00e1n a build l\u00e9trehozhat egy out/ k\u00f6nyvt\u00e1rat. Ez ideiglenes elk\u00e9sz\u00edt\u00e9s\u0171 objektumokat tartalmaz. A v\u00e9gs\u0151 mikrokontroller objektum, amely elk\u00e9sz\u00fcl, AVR eset\u00e9n out/klipper.elf.hex , ARM eset\u00e9n out/klipper.bin .","title":"K\u00f6nyvt\u00e1r elrendez\u00e9se"},{"location":"Code_Overview.html#mikrokontroller-kodfolyamat","text":"A mikrokontroller k\u00f3dj\u00e1nak v\u00e9grehajt\u00e1sa az architekt\u00fara specifikus k\u00f3dban kezd\u0151dik (pl. src/avr/main.c ), amely v\u00e9g\u00fcl a src/sched.c -ban tal\u00e1lhat\u00f3 sched_main() parancsot h\u00edvja meg. A sched_main() k\u00f3d a DECL_INIT() makr\u00f3val jel\u00f6lt \u00f6sszes f\u00fcggv\u00e9ny futtat\u00e1s\u00e1val kezd\u0151dik. Ezut\u00e1n a DECL_TASK() makr\u00f3val megjel\u00f6lt f\u00fcggv\u00e9nyek ism\u00e9telt futtat\u00e1s\u00e1ra ker\u00fcl sor. Az egyik f\u0151 feladatf\u00fcggv\u00e9ny a command_dispatch(), amely a src/command.c f\u00e1jlban tal\u00e1lhat\u00f3. Ezt a f\u00fcggv\u00e9nyt a k\u00e1rtyaspecifikus bemeneti/kimeneti k\u00f3db\u00f3l (pl. src/avr/serial.c , src/generic/serial_irq.c ) h\u00edvjuk meg, \u00e9s a bemeneti folyamban tal\u00e1lhat\u00f3 parancsokhoz tartoz\u00f3 parancsf\u00fcggv\u00e9nyeket futtatja. A parancsf\u00fcggv\u00e9nyek deklar\u00e1l\u00e1sa a DECL_COMMAND() makr\u00f3val t\u00f6rt\u00e9nik (tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a protokol dokumentumot). A feladat-, init- \u00e9s parancsf\u00fcggv\u00e9nyek mindig enged\u00e9lyezett megszak\u00edt\u00e1sokkal futnak (sz\u00fcks\u00e9g eset\u00e9n azonban ideiglenesen letilthatj\u00e1k a megszak\u00edt\u00e1sokat). Ezeknek a f\u00fcggv\u00e9nyeknek ker\u00fclni\u00fck kell a hossz\u00fa sz\u00fcneteket, k\u00e9sleltet\u00e9seket, vagy olyan munk\u00e1t kell v\u00e9gezni\u00fck, amely jelent\u0151s ideig tart. (A hossz\u00fa k\u00e9sleltet\u00e9sek ezekben a \"task\" f\u00fcggv\u00e9nyekben m\u00e1s \"taskok\" \u00fctemez\u00e9si zavar\u00e1t eredm\u00e9nyezik. A 100us-n\u00e1l hosszabb k\u00e9sleltet\u00e9sek \u00e9szrevehet\u0151v\u00e9 v\u00e1lhatnak, az 500us-n\u00e1l hosszabb k\u00e9sleltet\u00e9s\u0171 parancsok \u00fajrak\u00fcld\u00e9se, a 100ms-n\u00e1l hosszabb k\u00e9sleltet\u00e9sek pedig watchdog \u00fajraind\u00edt\u00e1sokat eredm\u00e9nyezhetnek.) Ezek a funkci\u00f3k id\u0151z\u00edt\u0151kkel \u00fctemezik a munk\u00e1t meghat\u00e1rozott id\u0151pontokra. Az id\u0151z\u00edt\u0151 f\u00fcggv\u00e9nyek \u00fctemez\u00e9se a sched_add_timer() megh\u00edv\u00e1s\u00e1val t\u00f6rt\u00e9nik (a src/sched.c f\u00e1jlban tal\u00e1lhat\u00f3). Az \u00fctemez\u0151 k\u00f3d gondoskodik arr\u00f3l, hogy az adott f\u00fcggv\u00e9nyt a k\u00e9rt id\u0151ben h\u00edvja meg. Az id\u0151z\u00edt\u0151 megszak\u00edt\u00e1sok kezel\u00e9se kezdetben egy architekt\u00fara-specifikus megszak\u00edt\u00e1skezel\u0151ben t\u00f6rt\u00e9nik (pl. src/avr/timer.c ), amely a src/sched.c -ban tal\u00e1lhat\u00f3 sched_timer_dispatch() funkci\u00f3t h\u00edvja. Az id\u0151z\u00edt\u0151 megszak\u00edt\u00e1sa az \u00fctemez\u0151 id\u0151z\u00edt\u0151 f\u00fcggv\u00e9nyek v\u00e9grehajt\u00e1s\u00e1hoz vezet. Az id\u0151z\u00edt\u0151 f\u00fcggv\u00e9nyek mindig megszak\u00edt\u00e1sok kikapcsol\u00e1s\u00e1val futnak. Az id\u0151z\u00edt\u0151f\u00fcggv\u00e9nyeknek mindig n\u00e9h\u00e1ny mikroszekundumon bel\u00fcl kell befejez\u0151dni\u00fck. Az id\u0151z\u00edt\u0151 esem\u00e9ny befejez\u00e9sekor a f\u00fcggv\u00e9ny d\u00f6nthet \u00fagy, hogy \u00e1t\u00fctemezi mag\u00e1t. Hiba \u00e9szlel\u00e9se eset\u00e9n a k\u00f3d megh\u00edvhatja a shutdown() funkci\u00f3t (egy makr\u00f3, amely a src/sched.c -ben tal\u00e1lhat\u00f3 sched_shutdown() funkci\u00f3t h\u00edvja). A shutdown() megh\u00edv\u00e1sa a DECL_SHUTDOWN() makr\u00f3val jel\u00f6lt \u00f6sszes f\u00fcggv\u00e9ny futtat\u00e1s\u00e1t eredm\u00e9nyezi. A le\u00e1ll\u00edt\u00e1si f\u00fcggv\u00e9nyek mindig megszak\u00edt\u00e1sok letilt\u00e1s\u00e1val futnak. A mikrokontroller funkci\u00f3inak nagy r\u00e9sze az \u00e1ltal\u00e1nos c\u00e9l\u00fa bemeneti/kimeneti \u00e9rintkez\u0151kkel (GPIO) val\u00f3 munk\u00e1t foglalja mag\u00e1ban. Annak \u00e9rdek\u00e9ben, hogy az alacsony szint\u0171 architekt\u00fara specifikus k\u00f3dot elvonatkoztassuk a magas szint\u0171 feladatk\u00f3dt\u00f3l, minden GPIO esem\u00e9nyt architekt\u00fara specifikus burkolatokban val\u00f3s\u00edtunk meg (pl. src/avr/gpio.c ). A k\u00f3dot a gcc's \"-flto -fwhole-program\" optimaliz\u00e1l\u00e1ssal ford\u00edtottuk, amely kiv\u00e1l\u00f3 munk\u00e1t v\u00e9gez a f\u00fcggv\u00e9nyek sorol\u00e1s\u00e1ban a ford\u00edt\u00e1si egys\u00e9geken kereszt\u00fcl, \u00edgy a legt\u00f6bb ilyen apr\u00f3 GPIO f\u00fcggv\u00e9ny sorolva van a h\u00edv\u00f3ikban, \u00e9s nincs fut\u00e1sidej\u0171 k\u00f6lts\u00e9ge a haszn\u00e1latuknak.","title":"Mikrokontroller k\u00f3dfolyamat"},{"location":"Code_Overview.html#klippy-kod-attekintese","text":"A gazdak\u00f3dot (Klippy) egy olcs\u00f3 sz\u00e1m\u00edt\u00f3g\u00e9pen (p\u00e9ld\u00e1ul egy Raspberry Pi) kell futtatni a mikrokontrollerrel p\u00e1ros\u00edtva. A k\u00f3d els\u0151sorban Pythonban \u00edr\u00f3dott, azonban a CFFI-t haszn\u00e1lja n\u00e9h\u00e1ny funkci\u00f3 C k\u00f3dban t\u00f6rt\u00e9n\u0151 megval\u00f3s\u00edt\u00e1s\u00e1hoz. A kezdeti v\u00e9grehajt\u00e1s a klippy/klippy.py f\u00e1jlban kezd\u0151dik. Ez beolvassa a parancssori argumentumokat, megnyitja a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1t, p\u00e9ld\u00e1nyos\u00edtja a f\u0151 nyomtat\u00f3objektumokat, \u00e9s elind\u00edtja a soros kapcsolatot. A G-k\u00f3d parancsok f\u0151 v\u00e9grehajt\u00e1sa a process_commands() met\u00f3dusban t\u00f6rt\u00e9nik az klippy/gcode.py f\u00e1jlban. Ez a k\u00f3d a G-k\u00f3d parancsokat nyomtat\u00f3objektum h\u00edv\u00e1sokk\u00e1 ford\u00edtja le, amelyek gyakran a m\u0171veleteket a mikrovez\u00e9rl\u0151n v\u00e9grehajtand\u00f3 parancsokk\u00e1 alak\u00edtj\u00e1k (a mikrovez\u00e9rl\u0151 k\u00f3dj\u00e1ban a DECL_COMMAND makr\u00f3n kereszt\u00fcl). A Klippy gazdag\u00e9p k\u00f3dj\u00e1ban n\u00e9gy sz\u00e1l van. A f\u0151 sz\u00e1l kezeli a bej\u00f6v\u0151 G-k\u00f3d parancsokat. Egy m\u00e1sodik sz\u00e1l (amely teljes eg\u00e9sz\u00e9ben a klippy/chelper/serialqueue.c C k\u00f3dban tal\u00e1lhat\u00f3) az alacsony szint\u0171 IO-t kezeli a soros portal. A harmadik sz\u00e1l a Python k\u00f3dban (l\u00e1sd klippy/serialhdl.py ) a mikrokontroller v\u00e1lasz\u00fczeneteinek feldolgoz\u00e1s\u00e1ra szolg\u00e1l. A negyedik sz\u00e1l hibakeres\u00e9si \u00fczeneteket \u00edr a napl\u00f3ba (l\u00e1sd klippy/queuelogger.py ), hogy a t\u00f6bbi sz\u00e1l soha ne blokkoljon a napl\u00f3\u00edr\u00e1skor.","title":"Klippy k\u00f3d \u00e1ttekint\u00e9se"},{"location":"Code_Overview.html#mozgasparancs-kodfolyama","text":"Egy tipikus nyomtat\u00f3mozg\u00e1s akkor kezd\u0151dik, amikor egy \"G1\" parancsot k\u00fcld\u00fcnk a Klippy gazdag\u00e9pnek, \u00e9s akkor fejez\u0151dik be, amikor a megfelel\u0151 l\u00e9p\u00e9simpulzusok megjelennek a mikrokontrolleren. Ez a szakasz egy tipikus mozgat\u00e1si parancs k\u00f3dfolyamat\u00e1t v\u00e1zolja fel. A kinematika dokumentum tov\u00e1bbi inform\u00e1ci\u00f3kat tartalmaz a mozg\u00e1sok mechanik\u00e1j\u00e1r\u00f3l. A mozg\u00e1s parancs feldolgoz\u00e1sa a gcode.py f\u00e1jlban kezd\u0151dik. A gcode.py c\u00e9lja a G-k\u00f3d leford\u00edt\u00e1sa bels\u0151 h\u00edv\u00e1sokk\u00e1. Egy G1 parancs a klippy/extras/gcode_move.py \u00e1llom\u00e1nyban l\u00e9v\u0151 cmd_G1() parancsot h\u00edvja meg. A gcode_move.py k\u00f3d kezeli az eredetv\u00e1ltoz\u00e1sokat (pl. G92), a relat\u00edv \u00e9s abszol\u00fat poz\u00edci\u00f3k k\u00f6z\u00f6tti v\u00e1ltoz\u00e1sokat (pl. G90) \u00e9s az egys\u00e9gv\u00e1ltoz\u00e1sokat (pl. F6000=100mm/s). A k\u00f3d \u00fatvonala a mozgat\u00e1shoz a k\u00f6vetkez\u0151: _process_data() -> _process_commands() -> cmd_G1() . V\u00e9g\u00fcl a ToolHead oszt\u00e1lyt h\u00edvjuk meg a t\u00e9nyleges k\u00e9r\u00e9s v\u00e9grehajt\u00e1s\u00e1hoz: cmd_G1() -> ToolHead.move() A ToolHead oszt\u00e1ly (a toolhead.py \u00e1llom\u00e1nyban) kezeli a \"look-ahead\" \u00e9s k\u00f6veti a nyomtat\u00e1si m\u0171veletek id\u0151z\u00edt\u00e9s\u00e9t. A f\u0151 k\u00f3d\u00fatvonal egy mozdulathoz a k\u00f6vetkez\u0151: ToolHead.move() -> MoveQueue.add_move() -> MoveQueue.flush() -> Move.set_junction() -> ToolHead._process_moves() . A ToolHead.move() l\u00e9trehoz egy Move() objektumot a mozg\u00e1s param\u00e9tereivel (cartesian t\u00e9rben, m\u00e1sodperc \u00e9s millim\u00e9ter egys\u00e9gekben). A kinematikai oszt\u00e1ly lehet\u0151s\u00e9get kap az egyes mozg\u00e1sok ellen\u0151rz\u00e9s\u00e9re ( ToolHead.move() -> kin.check_move() ). A kinematikai oszt\u00e1lyok a klippy/kinematics/ k\u00f6nyvt\u00e1rban tal\u00e1lhat\u00f3k. A check_move() k\u00f3d hib\u00e1t adhat ki, ha a mozg\u00e1s nem \u00e9rv\u00e9nyes. Ha a check_move() sikeresen befejez\u0151dik, akkor az alapul szolg\u00e1l\u00f3 kinematik\u00e1nak k\u00e9pesnek kell lennie a mozg\u00e1s kezel\u00e9s\u00e9re. A MoveQueue.add_move() elhelyezi a move objektumot a \"look-ahead\" v\u00e1r\u00f3list\u00e1n. A MoveQueue.flush() meghat\u00e1rozza az egyes mozg\u00e1sok kezd\u0151 \u00e9s v\u00e9gsebess\u00e9g\u00e9t. A Move.set_junction() a \"trap\u00e9zgener\u00e1tort\" val\u00f3s\u00edtja meg egy mozg\u00e1sban. A \"trap\u00e9zgener\u00e1tor\" minden mozg\u00e1st h\u00e1rom r\u00e9szre bont: egy \u00e1lland\u00f3 gyorsul\u00e1si f\u00e1zisra, majd egy \u00e1lland\u00f3 sebess\u00e9g f\u00e1zisra, majd egy \u00e1lland\u00f3 lassul\u00e1si f\u00e1zisra. Minden mozg\u00e1s ebben a sorrendben tartalmazza ezt a h\u00e1rom f\u00e1zist, de egyes f\u00e1zisok id\u0151tartama lehet nulla is. Amikor a ToolHead._process_moves() megh\u00edv\u00e1sra ker\u00fcl, a mozg\u00e1ssal kapcsolatban minden ismert a kezd\u0151helye, a v\u00e9ghelye, a gyorsul\u00e1sa, a kezd\u0151/k\u00f6r\u00f6z\u00e9si/v\u00e9gsebess\u00e9ge \u00e9s a gyorsul\u00e1s/k\u00f6r\u00f6z\u00e9si/v\u00e9gsebess\u00e9g alatt megtett t\u00e1vols\u00e1g. Minden inform\u00e1ci\u00f3 a Move() oszt\u00e1lyban t\u00e1rol\u00f3dik, \u00e9s cartesian t\u00e9rben, millim\u00e9ter \u00e9s m\u00e1sodperc egys\u00e9gekben van megadva. A Klipper egy iterat\u00edv megold\u00f3t haszn\u00e1l az egyes l\u00e9ptet\u0151k l\u00e9p\u00e9sidej\u00e9nek l\u00e9trehoz\u00e1s\u00e1hoz. Hat\u00e9konys\u00e1gi okokb\u00f3l a l\u00e9ptet\u0151 impulzusid\u0151ket C k\u00f3dban gener\u00e1lja. A mozg\u00e1sokat el\u0151sz\u00f6r egy \"trap\u00e9zmozg\u00e1s v\u00e1r\u00f3list\u00e1ra\" helyezz\u00fck: ToolHead._process_moves() -> trapq_append() (a klippy/chelper/trapq.c-ben). A l\u00e9p\u00e9sid\u0151k ezut\u00e1n gener\u00e1l\u00f3dnak: ToolHead._process_moves() -> ToolHead._update_move_time() -> MCU_Stepper.generate_steps() -> itersolve_generate_steps() -> itersolve_gen_steps_range() (a klippy/chelper/itersolve.c-ben). Az iterat\u00edv megold\u00f3 c\u00e9lja, hogy l\u00e9p\u00e9sid\u0151ket tal\u00e1ljon egy olyan f\u00fcggv\u00e9nyt adva, amely egy id\u0151b\u0151l kisz\u00e1m\u00edtja a l\u00e9p\u00e9shelyzetet. Ez \u00fagy t\u00f6rt\u00e9nik, hogy t\u00f6bbsz\u00f6r \"tal\u00e1lgatja\" a k\u00fcl\u00f6nb\u00f6z\u0151 id\u0151ket, am\u00edg a l\u00e9ptet\u0151 poz\u00edci\u00f3 k\u00e9plet vissza nem adja a l\u00e9ptet\u0151 k\u00f6vetkez\u0151 l\u00e9p\u00e9s\u00e9nek k\u00edv\u00e1nt poz\u00edci\u00f3j\u00e1t. Az egyes tal\u00e1lgat\u00e1sokb\u00f3l sz\u00e1rmaz\u00f3 visszajelz\u00e9seket a j\u00f6v\u0151beli tal\u00e1lgat\u00e1sok jav\u00edt\u00e1s\u00e1ra haszn\u00e1ld, hogy a folyamat gyorsan konverg\u00e1ljon a k\u00edv\u00e1nt id\u0151h\u00f6z. A kinematikus l\u00e9ptet\u0151 poz\u00edci\u00f3 k\u00e9pletek a klippy/chelper/ k\u00f6nyvt\u00e1rban tal\u00e1lhat\u00f3k (pl. kin_cart.c, kin_corexy.c, kin_delta.c, kin_extruder.c). Vedd figyelembe, hogy az extruder saj\u00e1t kinematikai oszt\u00e1lyban van kezelve: ToolHead._process_moves() -> PrinterExtruder.move() . Mivel a Move() oszt\u00e1ly pontosan megadja a mozg\u00e1s idej\u00e9t, \u00e9s mivel a l\u00e9p\u00e9simpulzusokat meghat\u00e1rozott id\u0151z\u00edt\u00e9ssel k\u00fcldi a mikrokontrollerhez, az extruder oszt\u00e1ly \u00e1ltal el\u0151\u00e1ll\u00edtott l\u00e9ptet\u0151mozg\u00e1sok szinkronban lesznek a fejmozg\u00e1ssal, annak ellen\u00e9re, hogy a k\u00f3dot elk\u00fcl\u00f6n\u00edtve tartjuk. Miut\u00e1n az iterat\u00edv megold\u00f3 kisz\u00e1m\u00edtja a l\u00e9p\u00e9sid\u0151ket, azok egy t\u00f6mbh\u00f6z ker\u00fclnek hozz\u00e1ad\u00e1sra: itersolve_gen_steps_range() -> stepcompress_append() (in klippy/chelper/stepcompress.c). A t\u00f6mb (struct stepcompress.queue) minden l\u00e9p\u00e9shez t\u00e1rolja a mikrokontroller megfelel\u0151 \u00f3rasz\u00e1ml\u00e1l\u00f3 idej\u00e9t. Itt a \"mikrokontroller \u00f3rasz\u00e1ml\u00e1l\u00f3\" \u00e9rt\u00e9ke k\u00f6zvetlen\u00fcl megfelel a mikrokontroller hardveres sz\u00e1ml\u00e1l\u00f3j\u00e1nak, a mikrokontroller utols\u00f3 bekapcsol\u00e1s\u00e1nak id\u0151pontj\u00e1hoz viszony\u00edtva. A k\u00f6vetkez\u0151 fontos l\u00e9p\u00e9s a l\u00e9p\u00e9sek t\u00f6m\u00f6r\u00edt\u00e9se: stepcompress_flush() -> compress_bisect_add() (in klippy/chelper/stepcompress.c). Ez a k\u00f3d gener\u00e1lja \u00e9s k\u00f3dolja a mikrokontroller \"queue_step\" parancsainak sorozat\u00e1t, amelyek megfelelnek az el\u0151z\u0151 szakaszban fel\u00e9p\u00edtett l\u00e9ptet\u0151 l\u00e9p\u00e9sid\u0151k list\u00e1j\u00e1nak. Ezek a \"queue_step\" parancsok ezut\u00e1n sorba ker\u00fclnek, priorit\u00e1st kapnak, \u00e9s elk\u00fcld\u00e9sre ker\u00fclnek a mikrokontrollernek (a stepcompress.c:steppersync \u00e9s a serialqueue.c:serialqueue k\u00f3dokon kereszt\u00fcl). A queue_step parancsok feldolgoz\u00e1sa a mikrokontrollerben az src/command.c \u00e1llom\u00e1nyban kezd\u0151dik, amely elemzi a parancsot \u00e9s megh\u00edvja a command_queue_step() parancsot. A command_queue_step() k\u00f3d (az src/stepper.c-ben) csak az egyes queue_step parancsok param\u00e9tereit csatolja egy-egy stepper sorba. Norm\u00e1l m\u0171k\u00f6d\u00e9s eset\u00e9n a queue_step parancsot legal\u00e1bb 100ms-mal az els\u0151 l\u00e9p\u00e9s id\u0151pontja el\u0151tt elemzi \u00e9s be\u00e1ll\u00edtja a sorba. V\u00e9g\u00fcl a l\u00e9ptet\u0151 esem\u00e9nyek gener\u00e1l\u00e1sa a stepper_event() -ban t\u00f6rt\u00e9nik. Ezt a hardveres id\u0151z\u00edt\u0151 megszak\u00edt\u00e1s\u00e1b\u00f3l h\u00edvjuk meg az els\u0151 l\u00e9p\u00e9s tervezett id\u0151pontj\u00e1ban. A stepper_event() k\u00f3d gener\u00e1l egy l\u00e9p\u00e9simpulzust, majd \u00e1t\u00fctemezi mag\u00e1t a k\u00f6vetkez\u0151 l\u00e9p\u00e9simpulzus idej\u00e9re a megadott queue_step param\u00e9terekhez. Az egyes queue_step parancsok param\u00e9terei a k\u00f6vetkez\u0151k: \"interval\", \"count\" \u00e9s \"add\". Magas szinten a stepper_event() a k\u00f6vetkez\u0151ket hajtja v\u00e9gre, 'count' times: do_step(); next_wake_time = last_wake_time + interval; interval += add; A fentiek soknak t\u0171nhetnek egy mozdulat v\u00e9grehajt\u00e1s\u00e1hoz. Az egyetlen igaz\u00e1n \u00e9rdekes r\u00e9sz azonban a ToolHead \u00e9s a kinematikai oszt\u00e1lyokban tal\u00e1lhat\u00f3. Ez a k\u00f3dnak azon r\u00e9sze, amely meghat\u00e1rozza a mozg\u00e1sokat \u00e9s azok id\u0151z\u00edt\u00e9s\u00e9t. A feldolgoz\u00e1s t\u00f6bbi r\u00e9sze t\u00f6bbnyire csak kommunik\u00e1ci\u00f3 \u00e9s munka.","title":"Mozg\u00e1sparancs k\u00f3dfolyama"},{"location":"Code_Overview.html#gazdamodul-hozzaadasa","text":"A Klippy host k\u00f3dja dinamikus modulbet\u00f6lt\u00e9si k\u00e9pess\u00e9ggel rendelkezik. Ha a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1ban tal\u00e1lhat\u00f3 egy \"[my_module]\" nev\u0171 konfigur\u00e1ci\u00f3s szakasz, akkor a szoftver automatikusan megpr\u00f3b\u00e1lja bet\u00f6lteni a klippy/extras/my_module.py modult. Ez a modulrendszer a Klipper \u00faj funkci\u00f3k hozz\u00e1ad\u00e1s\u00e1nak el\u0151nyben r\u00e9szes\u00edtett m\u00f3dszere. Egy \u00faj modul hozz\u00e1ad\u00e1s\u00e1nak legegyszer\u0171bb m\u00f3dja, ha egy megl\u00e9v\u0151 modult haszn\u00e1lunk hivatkoz\u00e1sk\u00e9nt. L\u00e1sd klippy/extras/servo.py p\u00e9ldak\u00e9nt. A k\u00f6vetkez\u0151k is hasznosak lehetnek: A modul v\u00e9grehajt\u00e1sa a modulszint\u0171 load_config() f\u00fcggv\u00e9nyben kezd\u0151dik (a [my_module] form\u00e1j\u00fa config szakaszok eset\u00e9n) vagy a load_config_prefix() f\u00fcggv\u00e9nyben (a [my_module my_name] form\u00e1j\u00fa config szakaszok eset\u00e9n). Ennek a f\u00fcggv\u00e9nynek egy \"config\" objektumot kell \u00e1tadni, \u00e9s egy \u00faj \"printer objektumot\" kell visszaadnia, amely az adott config szakaszhoz kapcsol\u00f3dik. Egy \u00faj nyomtat\u00f3objektum p\u00e9ld\u00e1nyos\u00edt\u00e1sa sor\u00e1n a config objektum seg\u00edts\u00e9g\u00e9vel param\u00e9tereket olvashat be az adott config szakaszb\u00f3l. Erre a config.get() , config.getfloat() , config.getint() stb. met\u00f3dusok szolg\u00e1lnak. \u00dcgyelj arra, hogy a nyomtat\u00f3 objektum fel\u00e9p\u00edt\u00e9se sor\u00e1n minden \u00e9rt\u00e9ket beolvasson a config-b\u00f3l. Ha a felhaszn\u00e1l\u00f3 olyan config param\u00e9tert ad meg, amelyet ebben a f\u00e1zisban nem olvas be, akkor azt felt\u00e9telezi, hogy el\u00edr\u00e1s t\u00f6rt\u00e9nt a config-ban, \u00e9s hiba\u00fczenetet ad. A config.get_printer() met\u00f3dus seg\u00edts\u00e9g\u00e9vel megkapjuk a f\u0151 \"printer\" oszt\u00e1lyra val\u00f3 hivatkoz\u00e1st. Ez a \"printer\" oszt\u00e1ly t\u00e1rolja a hivatkoz\u00e1sokat az \u00f6sszes \"nyomtat\u00f3 objektumra\", amelyet m\u00e1r p\u00e9ld\u00e1nyos\u00edtottak. A printer.lookup_object() met\u00f3dus seg\u00edts\u00e9g\u00e9vel megkereshetj\u00fck a t\u00f6bbi nyomtat\u00f3 objektumra mutat\u00f3 hivatkoz\u00e1sokat. Szinte minden funkci\u00f3 (m\u00e9g az alapvet\u0151 kinematikai modulok is) egy ilyen nyomtat\u00f3 objektumba vannak kapszul\u00e1zva. Vegy\u00fck azonban figyelembe, hogy egy \u00faj modul p\u00e9ld\u00e1nyos\u00edt\u00e1sakor nem minden m\u00e1s nyomtat\u00f3 objektumot p\u00e9ld\u00e1nyos\u00edtottunk. A \"gcode\" \u00e9s a \"pins\" modulok mindig el\u00e9rhet\u0151ek lesznek, de a t\u00f6bbi modul eset\u00e9ben \u00e9rdemes elhalasztani a keres\u00e9st. Az esem\u00e9nykezel\u0151ket a printer.register_event_handler() m\u00f3dszerrel regisztr\u00e1lhatja, ha a k\u00f3dot m\u00e1s nyomtat\u00f3 objektumok \u00e1ltal kiv\u00e1ltott \"events\" sor\u00e1n kell megh\u00edvni. Minden esem\u00e9ny neve egy karakterl\u00e1nc, \u00e9s a konvenci\u00f3 szerint az esem\u00e9nyt kiv\u00e1lt\u00f3 f\u0151 forr\u00e1smodul neve, valamint az esem\u00e9nyt kiv\u00e1lt\u00f3 m\u0171velet r\u00f6vid neve (pl. \"klippy:connect\"). Az egyes esem\u00e9nykezel\u0151knek \u00e1tadott param\u00e9terek az adott esem\u00e9nyre jellemz\u0151ek (ahogy a kiv\u00e9telkezel\u00e9s \u00e9s a v\u00e9grehajt\u00e1si kontextus is). K\u00e9t gyakori ind\u00edt\u00e1si esem\u00e9ny a k\u00f6vetkez\u0151: klippy:connect - Ez az esem\u00e9ny az \u00f6sszes nyomtat\u00f3 objektum p\u00e9ld\u00e1nyos\u00edt\u00e1sa ut\u00e1n gener\u00e1l\u00f3dik. \u00c1ltal\u00e1ban m\u00e1s nyomtat\u00f3 objektumok keres\u00e9s\u00e9re, a konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sok ellen\u0151rz\u00e9s\u00e9re \u00e9s a kezdeti \"handshake\" v\u00e9grehajt\u00e1s\u00e1ra haszn\u00e1lj\u00e1k a nyomtat\u00f3 hardver\u00e9vel. klippy:ready - Ez az esem\u00e9ny az \u00f6sszes csatlakoz\u00e1si kezel\u0151 sikeres befejez\u00e9se ut\u00e1n gener\u00e1l\u00f3dik. Jelzi, hogy a nyomtat\u00f3 \u00e1tv\u00e1lt a norm\u00e1l m\u0171veletek kezel\u00e9s\u00e9re k\u00e9sz \u00e1llapotba. Ebben a visszah\u00edv\u00e1sban ne jelezzen hib\u00e1t. Ha hiba van a felhaszn\u00e1l\u00f3 konfigur\u00e1ci\u00f3j\u00e1ban, mindenk\u00e9ppen h\u00edvja fel a figyelmet a load_config() vagy a \"connect event\" f\u00e1zisokban. Haszn\u00e1ld a raise config.error(\"my error\") vagy raise printer.config_error(\"my error\") hibajelz\u00e9st. A \"pins\" modul seg\u00edts\u00e9g\u00e9vel konfigur\u00e1lhat egy t\u0171t a mikrokontrollerben. Ez \u00e1ltal\u00e1ban a printer.lookup_object(\"pins\").setup_pin(\"pwm\", config.get(\"my_pin\")) -hoz hasonl\u00f3 m\u00f3don t\u00f6rt\u00e9nik. A visszakapott objektumot ezut\u00e1n fut\u00e1sid\u0151ben lehet utas\u00edtani. Ha a nyomtat\u00f3 objektum defini\u00e1l egy get_status() met\u00f3dust, akkor a modul \u00e1llapotinform\u00e1ci\u00f3t export\u00e1lhat a makr\u00f3kon \u00e9s az API Szerveren kereszt\u00fcl. A get_status() met\u00f3dusnak egy Python sz\u00f3t\u00e1rat kell visszaadnia, amelynek kulcsai karakterl\u00e1ncok, \u00e9rt\u00e9kei pedig eg\u00e9sz sz\u00e1mok, lebeg\u0151 sz\u00e1mok, karakterl\u00e1ncok, list\u00e1k, sz\u00f3t\u00e1rak, True, False vagy None. Haszn\u00e1lhat\u00f3k tuplik (\u00e9s neves\u00edtett tuplik) is (ezek az API-kiszolg\u00e1l\u00f3n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 el\u00e9r\u00e9skor listak\u00e9nt jelennek meg). Az export\u00e1lt \"immutable\" list\u00e1kat \u00e9s sz\u00f3t\u00e1rakat. Ha tartalmuk megv\u00e1ltozik, akkor egy \u00faj objektumot kell visszak\u00fcldeni a get_status() parancsb\u00f3l, k\u00fcl\u00f6nben az API-kiszolg\u00e1l\u00f3 nem fogja \u00e9szlelni a v\u00e1ltoz\u00e1sokat. Ha a modulnak hozz\u00e1f\u00e9r\u00e9sre van sz\u00fcks\u00e9ge a rendszer id\u0151z\u00edt\u00e9s\u00e9hez vagy k\u00fcls\u0151 f\u00e1jlle\u00edr\u00f3khoz, akkor a printer.get_reactor() seg\u00edts\u00e9g\u00e9vel hozz\u00e1f\u00e9rhet\u00fcnk a glob\u00e1lis \"event reactor\" oszt\u00e1lyhoz. Ez a reactor oszt\u00e1ly lehet\u0151v\u00e9 teszi az id\u0151z\u00edt\u0151k \u00fctemez\u00e9s\u00e9t, a f\u00e1jlle\u00edr\u00f3k bemenet\u00e9nek v\u00e1rakoz\u00e1s\u00e1t, valamint a gazdak\u00f3d \"sleep\" haszn\u00e1lat\u00e1t. Ne haszn\u00e1lj glob\u00e1lis v\u00e1ltoz\u00f3kat. Minden \u00e1llapotot a load_config() f\u00fcggv\u00e9ny \u00e1ltal visszaadott nyomtat\u00f3 objektumban kell t\u00e1rolni. Ez az\u00e9rt fontos, mert ellenkez\u0151 esetben a RESTART parancs nem az elv\u00e1rtaknak megfelel\u0151en fog m\u0171k\u00f6dni. Szint\u00e9n hasonl\u00f3 okokb\u00f3l, ha b\u00e1rmilyen k\u00fcls\u0151 f\u00e1jl (vagy foglalat) megny\u00edlt, akkor mindenk\u00e9ppen regisztr\u00e1ljunk egy \"klippy:disconnect\" esem\u00e9nykezel\u0151t, \u00e9s z\u00e1rjuk be \u0151ket ebb\u0151l a visszah\u00edv\u00e1sb\u00f3l. Ker\u00fclje a m\u00e1s nyomtat\u00f3 objektumok bels\u0151 tagv\u00e1ltoz\u00f3inak el\u00e9r\u00e9s\u00e9t (vagy az al\u00e1h\u00faz\u00e1ssal kezd\u0151d\u0151 met\u00f3dusok h\u00edv\u00e1s\u00e1t). Ennek a konvenci\u00f3nak a betart\u00e1sa megk\u00f6nny\u00edti a j\u00f6v\u0151beli v\u00e1ltoz\u00e1sok kezel\u00e9s\u00e9t. Javasoljuk, hogy a Python oszt\u00e1lyok Python konstruktor\u00e1ban minden tagv\u00e1ltoz\u00f3hoz \u00e9rt\u00e9ket rendeljen. (\u00c9s ez\u00e9rt ker\u00fclje a Python azon k\u00e9pess\u00e9g\u00e9nek kihaszn\u00e1l\u00e1s\u00e1t, hogy dinamikusan hozzon l\u00e9tre \u00faj tagv\u00e1ltoz\u00f3kat.) Ha egy Python v\u00e1ltoz\u00f3nak lebeg\u0151pontos \u00e9rt\u00e9ket kell t\u00e1rolnia, akkor aj\u00e1nlott mindig lebeg\u0151pontos konstansokkal hozz\u00e1rendelni \u00e9s kezelni a v\u00e1ltoz\u00f3t (\u00e9s soha ne haszn\u00e1ljunk eg\u00e9sz\u00e9rt\u00e9k\u0171 konstansokat). P\u00e9ld\u00e1ul r\u00e9szes\u00edts\u00fck el\u0151nyben a self.speed = 1. \u00e9rt\u00e9ket a self.speed = 1 \u00e9rt\u00e9kkel szemben, \u00e9s r\u00e9szes\u00edts\u00fck el\u0151nyben a self.speed = 2 \u00e9rt\u00e9ket. * x a self.speed = 2 * x helyett. A lebeg\u0151pontos \u00e9rt\u00e9kek k\u00f6vetkezetes haszn\u00e1lat\u00e1val elker\u00fclhet\u0151k a Python-t\u00edpuskonverzi\u00f3k nehezen hibakereshet\u0151 furcsas\u00e1gai. Ha a modult a Klipper f\u0151k\u00f3dj\u00e1ba val\u00f3 be\u00e9p\u00edt\u00e9sre k\u00fcld\u00f6d, mindenk\u00e9ppen helyezz el egy szerz\u0151i jogi megjegyz\u00e9st a modul tetej\u00e9n. Az el\u0151nyben r\u00e9szes\u00edtett form\u00e1tumot l\u00e1sd a megl\u00e9v\u0151 modulokn\u00e1l.","title":"Gazdamodul hozz\u00e1ad\u00e1sa"},{"location":"Code_Overview.html#uj-kinematika-hozzaadasa","text":"Ez a szakasz n\u00e9h\u00e1ny tippet ad a Klipper tov\u00e1bbi nyomtat\u00f3 kinematikai t\u00edpusok t\u00e1mogat\u00e1s\u00e1nak hozz\u00e1ad\u00e1s\u00e1hoz. Az ilyen t\u00edpus\u00fa tev\u00e9kenys\u00e9ghez a c\u00e9l kinematik\u00e1hoz tartoz\u00f3 matematikai k\u00e9pletek kiv\u00e1l\u00f3 ismerete sz\u00fcks\u00e9ges. Szoftverfejleszt\u00e9si ismereteket is ig\u00e9nyel, b\u00e1r csak a gazdaszoftvert kell friss\u00edteni. Hasznos l\u00e9p\u00e9sek: Kezdd \" Egy mozg\u00e1s k\u00f3dfolyamata \" szakasz \u00e9s a Kinematika dokumentum tanulm\u00e1nyoz\u00e1s\u00e1val. Tekintsd \u00e1t a klippy/kinematics/ k\u00f6nyvt\u00e1rban tal\u00e1lhat\u00f3 kinematikai oszt\u00e1lyokat. A kinematikai oszt\u00e1lyok feladata egy cartesian koordin\u00e1t\u00e1kban megadott mozg\u00e1s \u00e1talak\u00edt\u00e1sa az egyes l\u00e9ptet\u0151k\u00f6n t\u00f6rt\u00e9n\u0151 mozg\u00e1ss\u00e1. Kiindul\u00f3pontk\u00e9nt le kell tudni m\u00e1solni az egyik ilyen f\u00e1jlt. Implement\u00e1ljuk a C l\u00e9ptet\u0151ket kinematikai poz\u00edci\u00f3f\u00fcggv\u00e9nyeit minden l\u00e9ptet\u0151h\u00f6z, ha azok m\u00e9g nem \u00e1llnak rendelkez\u00e9sre (l\u00e1sd a kin_cart.c, kin_corexy.c \u00e9s kin_delta.c f\u00e1jlokat a klippy/chelper/ \u00e1llom\u00e1nyban). A f\u00fcggv\u00e9nynek meg kell h\u00edvnia move_get_coord() , hogy egy adott mozg\u00e1sid\u0151t (m\u00e1sodpercben) cartesian koordin\u00e1t\u00e1v\u00e1 (millim\u00e9terben) konvert\u00e1ljon, majd ebb\u0151l a cartesian koordin\u00e1t\u00e1b\u00f3l kisz\u00e1m\u00edtsa a k\u00edv\u00e1nt l\u00e9ptet\u0151 poz\u00edci\u00f3t (millim\u00e9terben). Az \u00faj kinematikai oszt\u00e1lyban implement\u00e1ljuk a calc_position() m\u00f3dszert. Ez a met\u00f3dus kisz\u00e1m\u00edtja a nyomtat\u00f3fej poz\u00edci\u00f3j\u00e1t cartesian koordin\u00e1t\u00e1kban az egyes l\u00e9ptet\u0151motorok poz\u00edci\u00f3j\u00e1b\u00f3l. Nem kell, hogy hat\u00e9kony legyen, mivel jellemz\u0151en csak a kezd\u0151pont \u00e9s az \u00e9rint\u00e9si m\u0171veletek sor\u00e1n h\u00edvjuk meg. Egy\u00e9b m\u00f3dszerek. Implement\u00e1lja a check_move() , get_status() met\u00f3dusokat, get_steppers() , home() \u00e9s set_position() m\u00f3dszereket. Ezeket a f\u00fcggv\u00e9nyeket \u00e1ltal\u00e1ban kinematikai specifikus ellen\u0151rz\u00e9sek biztos\u00edt\u00e1s\u00e1ra haszn\u00e1lj\u00e1k. A fejleszt\u00e9s kezdet\u00e9n azonban haszn\u00e1lhatunk itt kaz\u00e1n-lemez szer\u0171 k\u00f3dot. Tesztel\u00e9si esetek v\u00e9grehajt\u00e1sa. K\u00e9sz\u00edtsen egy G-k\u00f3d f\u00e1jlt egy sor olyan mozg\u00e1ssal, amelyekkel az adott kinematika fontos eseteit tesztelheti. K\u00f6vesse a Hibakeres\u00e9si dokument\u00e1ci\u00f3t , hogy ezt a G-k\u00f3d f\u00e1jlt mikrokontroller parancsokk\u00e1 alak\u00edtsa \u00e1t. Ez hasznos a sarokesetek gyakorl\u00e1s\u00e1ra \u00e9s a regresszi\u00f3k ellen\u0151rz\u00e9s\u00e9re.","title":"\u00daj kinematika hozz\u00e1ad\u00e1sa"},{"location":"Code_Overview.html#portolas-uj-mikrokontrollerre","text":"Ez a szakasz n\u00e9h\u00e1ny tippet ad a Klipper mikrokontroller k\u00f3dj\u00e1nak \u00faj architekt\u00far\u00e1ra t\u00f6rt\u00e9n\u0151 \u00e1tvitel\u00e9hez. Ez a fajta tev\u00e9kenys\u00e9g j\u00f3 be\u00e1gyazott fejleszt\u00e9si ismereteket \u00e9s gyakorlati hozz\u00e1f\u00e9r\u00e9st ig\u00e9nyel a c\u00e9lmikrokontrollerhez. Hasznos l\u00e9p\u00e9sek: Kezd a portol\u00e1s sor\u00e1n haszn\u00e1lni k\u00edv\u00e1nt harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 k\u00f6nyvt\u00e1rak azonos\u00edt\u00e1s\u00e1val. Gyakori p\u00e9lda erre a \"CMSIS\" csomagol\u00e1sok \u00e9s a gy\u00e1rt\u00f3 \"HAL\" k\u00f6nyvt\u00e1rak. Minden harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 k\u00f3dnak GNU GPLv3 kompatibilisnek kell lennie. A harmadik f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 k\u00f3dot a Klipper lib/ k\u00f6nyvt\u00e1rba kell \u00e1tvinni. Friss\u00edtse a lib/README f\u00e1jlt azzal az inform\u00e1ci\u00f3val, hogy hol \u00e9s mikor szerezte meg a k\u00f6nyvt\u00e1rat. A k\u00f3dot lehet\u0151leg v\u00e1ltozatlanul m\u00e1sold be a Klipper t\u00e1rol\u00f3ba, de ha b\u00e1rmilyen v\u00e1ltoztat\u00e1sra van sz\u00fcks\u00e9g, akkor ezeket a v\u00e1ltoztat\u00e1sokat kifejezetten fel kell t\u00fcntetni a lib/README f\u00e1jlban. Hozzon l\u00e9tre egy \u00faj architekt\u00fara alk\u00f6nyvt\u00e1rat az src/ k\u00f6nyvt\u00e1rban, \u00e9s adj hozz\u00e1 kezdeti Config \u00e9s Makefile t\u00e1mogat\u00e1st. Haszn\u00e1ld a megl\u00e9v\u0151 architekt\u00far\u00e1kat \u00fatmutat\u00f3k\u00e9nt. Az src/simulator egy alapvet\u0151 p\u00e9ld\u00e1t ny\u00fajt egy minim\u00e1lis kiindul\u00e1si pontra. Az els\u0151 f\u0151 k\u00f3dol\u00e1si feladat a kommunik\u00e1ci\u00f3s t\u00e1mogat\u00e1s fel\u00e1ll\u00edt\u00e1sa az alaplapnak. Ez a legnehezebb l\u00e9p\u00e9s egy \u00faj port eset\u00e9ben. Ha az alapvet\u0151 kommunik\u00e1ci\u00f3 m\u00e1r m\u0171k\u00f6dik, a tov\u00e1bbi l\u00e9p\u00e9sek \u00e1ltal\u00e1ban sokkal k\u00f6nnyebbek. A kezdeti fejleszt\u00e9s sor\u00e1n jellemz\u0151en UART t\u00edpus\u00fa soros eszk\u00f6zt haszn\u00e1lunk, mivel az ilyen t\u00edpus\u00fa hardvereszk\u00f6z\u00f6ket \u00e1ltal\u00e1ban k\u00f6nnyebb enged\u00e9lyezni \u00e9s vez\u00e9relni. Ebben a f\u00e1zisban b\u0151kez\u0171en haszn\u00e1ld az src/generic/ k\u00f6nyvt\u00e1rban tal\u00e1lhat\u00f3 seg\u00e9dk\u00f3dot (ellen\u0151rizd, hogy az src/simulator/Makefile hogyan tartalmazza a generikus C k\u00f3dot a fel\u00e9p\u00edt\u00e9sben). Ebben a f\u00e1zisban sz\u00fcks\u00e9ges defini\u00e1lni a timer_read_time() funkci\u00f3t is (amely visszaadja az aktu\u00e1lis rendszer\u00f3r\u00e1t), de nem sz\u00fcks\u00e9ges a timer irq kezel\u00e9s\u00e9nek teljes t\u00e1mogat\u00e1sa. Ismerkedjen meg a console.py eszk\u00f6zzel (a Hibakeres\u00e9si dokumentumban le\u00edrtak szerint), \u00e9s ellen\u0151rizd vele a mikrokontrollerrel val\u00f3 kapcsolatot. Ez az eszk\u00f6z leford\u00edtja az alacsony szint\u0171 mikrokontroller kommunik\u00e1ci\u00f3s protokollt ember \u00e1ltal olvashat\u00f3 form\u00e1ra. A hardveres megszak\u00edt\u00e1sokb\u00f3l t\u00f6rt\u00e9n\u0151 id\u0151z\u00edt\u0151 k\u00fcld\u00e9s t\u00e1mogat\u00e1s\u00e1nak hozz\u00e1ad\u00e1sa. L\u00e1sd a Klipper commit 970831ee p\u00e9ld\u00e1j\u00e1t az LPC176x architekt\u00fara 1-5. l\u00e9p\u00e9seivel. Alapvet\u0151 GPIO bemeneti \u00e9s kimeneti t\u00e1mogat\u00e1s megjelen\u00edt\u00e9se. L\u00e1sd a Klipper commit c78b9076 p\u00e9ld\u00e1j\u00e1t erre. Tov\u00e1bbi perif\u00e9ri\u00e1k felhoz\u00e1sa. L\u00e1sd p\u00e9ld\u00e1ul a Klipper megb\u00edz\u00e1sokat 65613aed , c812a40a \u00e9s c381d03a . Hozzon l\u00e9tre egy minta Klipper konfigur\u00e1ci\u00f3s f\u00e1jlt a config/ k\u00f6nyvt\u00e1rban. Tesztelj\u00fck a mikrokontrollert a klippy.py f\u0151programmal. Fontold meg a test/ k\u00f6nyvt\u00e1rban l\u00e9v\u0151 build tesztesetek hozz\u00e1ad\u00e1s\u00e1t. Tov\u00e1bbi k\u00f3dol\u00e1si tippek: Ker\u00fclje a \"C bitfields\" haszn\u00e1lat\u00e1t az IO regiszterek el\u00e9r\u00e9s\u00e9hez; r\u00e9szes\u00edtse el\u0151nyben a 32 bites, 16 bites vagy 8 bites eg\u00e9sz sz\u00e1mok k\u00f6zvetlen olvas\u00e1si \u00e9s \u00edr\u00e1si m\u0171veleteit. A C nyelvi specifik\u00e1ci\u00f3k nem hat\u00e1rozz\u00e1k meg egy\u00e9rtelm\u0171en, hogy a ford\u00edt\u00f3nak hogyan kell megval\u00f3s\u00edtania a C bitmez\u0151ket (pl. endianness \u00e9s bitkioszt\u00e1s), \u00e9s neh\u00e9z meghat\u00e1rozni, hogy milyen IO m\u0171veletek t\u00f6rt\u00e9nnek egy C bitmez\u0151 olvas\u00e1sakor vagy \u00edr\u00e1sakor. Ink\u00e1bb \u00edrjon explicit \u00e9rt\u00e9keket az IO regiszterekbe, minthogy olvas\u00e1s-m\u00f3dos\u00edt\u00e1s-\u00edr\u00e1s m\u0171veleteket haszn\u00e1lj. Azaz, ha egy olyan IO-regiszterben friss\u00edt\u00fcnk egy mez\u0151t, ahol a t\u00f6bbi mez\u0151 \u00e9rt\u00e9kei ismertek, akkor el\u0151ny\u00f6sebb a regiszter teljes tartalm\u00e1t explicit m\u00f3don ki\u00edrni. Az explicit \u00edr\u00e1sok kisebb, gyorsabb \u00e9s k\u00f6nnyebben hibakereshet\u0151 k\u00f3dot eredm\u00e9nyeznek.","title":"Portol\u00e1s \u00faj mikrokontrollerre"},{"location":"Code_Overview.html#koordinata-rendszerek","text":"A Klipper bels\u0151leg els\u0151sorban a nyomtat\u00f3fej helyzet\u00e9t k\u00f6veti cartesian koordin\u00e1t\u00e1kban, amelyek a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1ta rendszerhez viszony\u00edtva vannak. Ez azt jelenti, hogy a Klipper k\u00f3d nagy r\u00e9sze soha nem tapasztal koordin\u00e1ta rendszer v\u00e1ltoz\u00e1st. Ha a felhaszn\u00e1l\u00f3 az orig\u00f3 megv\u00e1ltoztat\u00e1s\u00e1t k\u00e9ri (pl. egy G92 parancsal), akkor ezt a hat\u00e1st a j\u00f6v\u0151beli parancsok els\u0151dleges koordin\u00e1ta rendszerre t\u00f6rt\u00e9n\u0151 \u00e1tv\u00e1lt\u00e1s\u00e1val \u00e9rj\u00fck el. Bizonyos esetekben azonban hasznos, ha a nyomtat\u00f3fej helyzet\u00e9t m\u00e1s koordin\u00e1ta rendszerben szeretn\u00e9nk megkapni, \u00e9s a Klipper t\u00f6bb eszk\u00f6zzel is megk\u00f6nny\u00edti ezt. Ez a GET_POSITION parancs futtat\u00e1s\u00e1val l\u00e1that\u00f3. P\u00e9ld\u00e1ul: Send: GET_POSITION Recv: // mcu: stepper_a:-2060 stepper_b:-1169 stepper_c:-1613 Recv: // stepper: stepper_a:457.254159 stepper_b:466.085669 stepper_c:465.382132 Recv: // kinematic: X:8.339144 Y:-3.131558 Z:233.347121 Recv: // toolhead: X:8.338078 Y:-3.123175 Z:233.347878 E:0.000000 Recv: // gcode: X:8.338078 Y:-3.123175 Z:233.347878 E:0.000000 Recv: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000 Recv: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000 Az \"MCU\" poz\u00edci\u00f3 ( stepper.get_mcu_position() a k\u00f3dban) a mikrokontroller \u00e1ltal pozit\u00edv ir\u00e1nyban kiadott l\u00e9p\u00e9sek sz\u00e1ma m\u00ednusz a mikrokontroller utols\u00f3 resetel\u00e9se \u00f3ta negat\u00edv ir\u00e1nyban kiadott l\u00e9p\u00e9sek sz\u00e1ma. Ha a g\u00e9p a lek\u00e9rdez\u00e9skor mozg\u00e1sban van, akkor a jelentett \u00e9rt\u00e9k tartalmazza a mikrokontrollerben pufferelt l\u00e9p\u00e9seket, de nem tartalmazza a look-ahead sorban l\u00e9v\u0151 l\u00e9p\u00e9seket. A \"stepper\" poz\u00edci\u00f3 ( stepper.get_commanded_position() ) az adott l\u00e9ptet\u0151 poz\u00edci\u00f3ja, ahogyan azt a kinematikai k\u00f3d k\u00f6veti. Ez \u00e1ltal\u00e1ban megfelel a kocsinak a s\u00edn ment\u00e9n a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott position_endstop-hoz viszony\u00edtott poz\u00edci\u00f3j\u00e1nak (mm-ben). (Egyes kinematik\u00e1k a l\u00e9ptet\u0151k poz\u00edci\u00f3j\u00e1t millim\u00e9ter helyett radi\u00e1nban k\u00f6vetik.) Ha a g\u00e9p a lek\u00e9rdez\u00e9skor mozg\u00e1sban van, akkor a jelentett \u00e9rt\u00e9k tartalmazza a mikrokontrollerben pufferelt mozg\u00e1sokat, de nem tartalmazza a look-ahead sorban l\u00e9v\u0151 mozg\u00e1sokat. Haszn\u00e1lhatjuk a toolhead.flush_step_generation() vagy toolhead.wait_moves() h\u00edv\u00e1sokat a look-ahead \u00e9s a l\u00e9p\u00e9sgener\u00e1l\u00f3 k\u00f3d teljes ki\u00fcr\u00edt\u00e9s\u00e9hez. A \"kinematic\" poz\u00edci\u00f3 ( kin.calc_position() ) a nyomtat\u00f3fej \"stepper\" poz\u00edci\u00f3kb\u00f3l sz\u00e1rmaztatott cartesian poz\u00edci\u00f3ja, \u00e9s a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1tarendszerhez k\u00e9pest relat\u00edv. Ez elt\u00e9rhet a k\u00e9rt cartesian poz\u00edci\u00f3t\u00f3l a l\u00e9ptet\u0151motorok szaggatotts\u00e1ga miatt. Ha a g\u00e9p a \"stepper\" poz\u00edci\u00f3k felv\u00e9telekor mozg\u00e1sban van, akkor a jelentett \u00e9rt\u00e9k tartalmazza a mikrokontrollerben pufferelt mozg\u00e1sokat, de nem tartalmazza a look-ahead v\u00e1r\u00f3list\u00e1n l\u00e9v\u0151 mozg\u00e1sokat. Haszn\u00e1lhatjuk a toolhead.flush_step_generation() vagy toolhead.wait_moves() h\u00edv\u00e1sokat a look-ahead \u00e9s a l\u00e9p\u00e9sgener\u00e1l\u00f3 k\u00f3d teljes ki\u00fcr\u00edt\u00e9s\u00e9hez. A \"toolhead\" poz\u00edci\u00f3 ( toolhead.get_position() ) a nyomtat\u00f3fej utols\u00f3 k\u00e9rt poz\u00edci\u00f3ja cartesian koordin\u00e1t\u00e1kban a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1tarendszerhez k\u00e9pest. Ha a g\u00e9p a lek\u00e9rdez\u00e9s kiad\u00e1sakor mozg\u00e1sban van, akkor a jelentett \u00e9rt\u00e9k tartalmazza az \u00f6sszes k\u00e9rt mozg\u00e1st (m\u00e9g azokat is, amelyek a pufferben vannak \u00e9s a motorvez\u00e9rl\u0151knek val\u00f3 kiad\u00e1sra v\u00e1rnak). A \"gcode\" poz\u00edci\u00f3 a G1 (vagy G0 ) parancs utols\u00f3 k\u00e9rt poz\u00edci\u00f3ja cartesian koordin\u00e1t\u00e1kban, a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1tarendszerhez k\u00e9pest. Ez elt\u00e9rhet a \"toolhead\" poz\u00edci\u00f3t\u00f3l, ha egy G-k\u00f3d transzform\u00e1ci\u00f3 (pl. bed_mesh, bed_tilt, skew_correction) van \u00e9rv\u00e9nyben. Ez elt\u00e9rhet az utols\u00f3 G1 parancsban megadott t\u00e9nyleges koordin\u00e1t\u00e1kt\u00f3l, ha a G-k\u00f3d orig\u00f3ja megv\u00e1ltozott (pl, G92 , SET_GCODE_OFFSET , M221 ). A M114 parancs ( gcode_move.get_status()['gcode_position'] ) az aktu\u00e1lis G-k\u00f3d koordin\u00e1tarendszerhez viszony\u00edtott utols\u00f3 G-k\u00f3d poz\u00edci\u00f3t jelenti. A \"gcode base\" a G-k\u00f3d orig\u00f3j\u00e1nak helye cartesian koordin\u00e1t\u00e1kban a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1tarendszerhez k\u00e9pest. Az olyan parancsok, mint a G92 , SET_GCODE_OFFSET \u00e9s M221 m\u00f3dos\u00edtj\u00e1k ezt az \u00e9rt\u00e9ket. A \"gcode homing\" az a hely, amelyet a G-k\u00f3d orig\u00f3jak\u00e9nt (a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1tarendszerhez viszony\u00edtott cartesian koordin\u00e1t\u00e1kban) a G28 home parancs ut\u00e1n haszn\u00e1lni kell. A SET_GCODE_OFFSET parancs megv\u00e1ltoztathatja ezt az \u00e9rt\u00e9ket.","title":"Koordin\u00e1ta rendszerek"},{"location":"Code_Overview.html#ido","text":"A Klipper m\u0171k\u00f6d\u00e9s\u00e9nek alapvet\u0151 eleme az \u00f3r\u00e1k, id\u0151pontok \u00e9s id\u0151b\u00e9lyegek kezel\u00e9se. A Klipper a nyomtat\u00f3n v\u00e9grehajtott m\u0171veleteket a k\u00f6zelj\u00f6v\u0151ben bek\u00f6vetkez\u0151 esem\u00e9nyek \u00fctemez\u00e9s\u00e9vel hajtja v\u00e9gre. P\u00e9ld\u00e1ul egy ventil\u00e1tor bekapcsol\u00e1s\u00e1hoz a k\u00f3d \u00fctemezheti egy GPIO-t\u0171 v\u00e1ltoz\u00e1s\u00e1t 100ms alatt. Ritk\u00e1n fordul el\u0151, hogy a k\u00f3d azonnali m\u0171veletet pr\u00f3b\u00e1l v\u00e9grehajtani. Ez\u00e9rt az id\u0151 kezel\u00e9se a Klipperben kritikus fontoss\u00e1g\u00fa a helyes m\u0171k\u00f6d\u00e9s szempontj\u00e1b\u00f3l. A Klipper gazdaszoftverben h\u00e1romf\u00e9le id\u0151t\u00edpust k\u00f6vethet\u00fcnk nyomon: Rendszerid\u0151. A rendszerid\u0151 a rendszer monoton \u00f3r\u00e1j\u00e1t haszn\u00e1lja. Ez egy lebeg\u0151pontos sz\u00e1m, amelyet m\u00e1sodperck\u00e9nt t\u00e1rolnak, \u00e9s (\u00e1ltal\u00e1ban) a gazdasz\u00e1m\u00edt\u00f3g\u00e9p utols\u00f3 ind\u00edt\u00e1sakor. A rendszerid\u0151k korl\u00e1tozottan haszn\u00e1lhat\u00f3k a szoftverben. Els\u0151sorban az oper\u00e1ci\u00f3s rendszerrel val\u00f3 interakci\u00f3 sor\u00e1n haszn\u00e1lj\u00e1k \u0151ket. Az \u00e1llom\u00e1sk\u00f3don bel\u00fcl a rendszerid\u0151ket gyakran az eventtime vagy curtime nev\u0171 v\u00e1ltoz\u00f3k t\u00e1rolj\u00e1k. Nyomtat\u00e1si id\u0151. A nyomtat\u00e1si id\u0151 a mikrokontroller f\u0151 \u00f3r\u00e1j\u00e1hoz szinkroniz\u00e1l\u00f3dik az (\"[mcu]\" config) szakaszban meghat\u00e1rozott mikrokontrollerhez. Ez egy m\u00e1sodpercben t\u00e1rolt lebeg\u0151pontos sz\u00e1m, \u00e9s a f\u0151 MCU utols\u00f3 \u00fajraind\u00edt\u00e1s\u00e1nak id\u0151pontj\u00e1hoz viszony\u00edtva van. Lehet\u0151s\u00e9g van a \"nyomtat\u00e1si id\u0151\"-r\u0151l a f\u0151 mikrokontroller hardveres \u00f3r\u00e1j\u00e1ra val\u00f3 \u00e1tv\u00e1lt\u00e1sra. A nyomtat\u00e1si id\u0151nek az MCU-val val\u00f3 megszorz\u00e1s\u00e1val a statikusan konfigur\u00e1lt frekvenci\u00e1val. A magas szint\u0171 gazdak\u00f3d szinte minden fizikai m\u0171velet (pl. fejmozg\u00e1s, f\u0171t\u00e9sv\u00e1lt\u00e1s stb.) kisz\u00e1m\u00edt\u00e1s\u00e1hoz nyomtat\u00e1si id\u0151t haszn\u00e1l. A gazdak\u00f3don bel\u00fcl a nyomtat\u00e1si id\u0151ket \u00e1ltal\u00e1ban a print_time vagy move_time nev\u0171 v\u00e1ltoz\u00f3kban t\u00e1rolj\u00e1k. MCU \u00f3ra. Ez az egyes mikrovez\u00e9rl\u0151k hardveres \u00f3rasz\u00e1ml\u00e1l\u00f3ja. Eg\u00e9sz sz\u00e1mk\u00e9nt van t\u00e1rolva, friss\u00edt\u00e9si gyakoris\u00e1ga az adott mikrovez\u00e9rl\u0151 frekvenci\u00e1j\u00e1hoz viszony\u00edtott. A gazdaszoftver bels\u0151 idej\u00e9t leford\u00edtja \u00f3r\u00e1kra, miel\u0151tt tov\u00e1bb\u00edtan\u00e1 az MCU-nak. Az MCU k\u00f3d mindig csak az \u00f3ra ketyeg\u00e9s\u00e9ben k\u00f6veti az id\u0151t. A gazdag\u00e9p k\u00f3don bel\u00fcl az \u00f3ra\u00e9rt\u00e9keket 64 bites eg\u00e9sz sz\u00e1mk\u00e9nt k\u00f6veti nyomon, m\u00edg az MCU k\u00f3d 32 bites eg\u00e9sz sz\u00e1mokat haszn\u00e1l. A gazdag\u00e9p k\u00f3don bel\u00fcl az \u00f3r\u00e1k \u00e1ltal\u00e1ban clock vagy tick nevet tartalmaz\u00f3 v\u00e1ltoz\u00f3kban t\u00e1rol\u00f3dnak. A k\u00fcl\u00f6nb\u00f6z\u0151 id\u0151form\u00e1tumok k\u00f6z\u00f6tti konverzi\u00f3 els\u0151sorban a klippy/clocksync.py k\u00f3dban val\u00f3sul meg. N\u00e9h\u00e1ny dolog, amire figyelni kell a k\u00f3d \u00e1ttekint\u00e9sekor: 32 bites \u00e9s 64 bites \u00f3rajelek: A s\u00e1vsz\u00e9less\u00e9g cs\u00f6kkent\u00e9se \u00e9s a mikrokontroller hat\u00e9konys\u00e1g\u00e1nak jav\u00edt\u00e1sa \u00e9rdek\u00e9ben a mikrokontroller \u00f3rajeleit 32 bites eg\u00e9sz sz\u00e1mokk\u00e9nt k\u00f6vetik. K\u00e9t \u00f3rajel \u00f6sszehasonl\u00edt\u00e1sakor az MCU k\u00f3dban mindig a timer_is_before() f\u00fcggv\u00e9nyt kell haszn\u00e1lni, hogy az eg\u00e9sz sz\u00e1mok \u00e1tford\u00edt\u00e1s\u00e1t megfelel\u0151en kezelj\u00fck. A gazdaszoftver a 32 bites \u00f3rajeleket 64 bites \u00f3rajelekk\u00e9 alak\u00edtja \u00e1t az\u00e1ltal, hogy hozz\u00e1adja az utols\u00f3 kapott MCU id\u0151b\u00e9lyegz\u0151 magasrend\u0171 bitjeit. Egyetlen MCU-t\u00f3l \u00e9rkez\u0151 \u00fczenet sem lehet 2^31 \u00f3rajeln\u00e9l t\u00f6bb a j\u00f6v\u0151ben vagy a m\u00faltban, \u00edgy ez az \u00e1talak\u00edt\u00e1s soha nem f\u00e9lre\u00e9rthet\u0151. A gazdag\u00e9p a 64 bites \u00f3rajelekr\u0151l 32 bites \u00f3rajelekre konvert\u00e1l a magasrend\u0171 bitek egyszer\u0171 lefarag\u00e1s\u00e1val. Annak \u00e9rdek\u00e9ben, hogy ez az \u00e1talak\u00edt\u00e1s ne legyen k\u00e9t\u00e9rtelm\u0171, a klippy/chelper/serialqueue.c k\u00f3d addig puffereli az \u00fczeneteket, am\u00edg azok 2^31 \u00f3rajelen bel\u00fcl vannak a c\u00e9lid\u0151h\u00f6z k\u00e9pest. T\u00f6bb mikrovez\u00e9rl\u0151: A gazdaszoftver t\u00e1mogatja t\u00f6bb mikrovez\u00e9rl\u0151 haszn\u00e1lat\u00e1t egyetlen nyomtat\u00f3n. Ebben az esetben minden mikrokontroller \"MCU \u00f3rajel\u00e9t\" k\u00fcl\u00f6n-k\u00fcl\u00f6n k\u00f6veti. A clocksync.py k\u00f3d kezeli a mikrovez\u00e9rl\u0151k k\u00f6z\u00f6tti \u00f3raeltol\u00f3d\u00e1st a \"nyomtat\u00e1si id\u0151r\u0151l\" az \"MCU \u00f3r\u00e1ra\" t\u00f6rt\u00e9n\u0151 \u00e1talak\u00edt\u00e1s m\u00f3dj\u00e1nak m\u00f3dos\u00edt\u00e1s\u00e1val. A m\u00e1sodlagos MCU-n\u00e1l az ebben az \u00e1talak\u00edt\u00e1sban haszn\u00e1lt MCU frekvencia rendszeresen friss\u00fcl, hogy figyelembe vedd a m\u00e9rt cs\u00fasz\u00e1st.","title":"Id\u0151"},{"location":"Command_Templates.html","text":"Parancssablonok \u00b6 Ez a dokumentum a G-k\u00f3d parancssorozatok gcode_macro (\u00e9s hasonl\u00f3) konfigur\u00e1ci\u00f3s szakaszokban t\u00f6rt\u00e9n\u0151 implement\u00e1l\u00e1s\u00e1r\u00f3l ny\u00fajt inform\u00e1ci\u00f3t. G-k\u00f3d makr\u00f3 elnevez\u00e9se \u00b6 A G-k\u00f3dos makron\u00e9v eset\u00e9ben a nagy \u00e9s kisbet\u0171s \u00edr\u00e1sm\u00f3d nem fontos - a MY_MACRO \u00e9s a my_macro ugyan\u00fagy ki\u00e9rt\u00e9kel\u0151dik, \u00e9s kicsi vagy nagybet\u0171vel is megh\u00edvhat\u00f3. Ha a makron\u00e9vben sz\u00e1mokat haszn\u00e1lunk, akkor azoknak a n\u00e9v v\u00e9g\u00e9n kell \u00e1llniuk (pl. a TEST_MACRO25 \u00e9rv\u00e9nyes, de a MACRO25_TEST3 nem). A G-k\u00f3d form\u00e1z\u00e1sa a konfigur\u00e1ci\u00f3ban \u00b6 A beh\u00faz\u00e1s fontos, amikor makr\u00f3t defini\u00e1l a konfigur\u00e1ci\u00f3s f\u00e1jlban. T\u00f6bbsoros G-k\u00f3d szekvencia megad\u00e1s\u00e1hoz fontos, hogy minden sorban megfelel\u0151 beh\u00faz\u00e1s legyen. P\u00e9ld\u00e1ul: [gcode_macro blink_led] gcode: SET_PIN PIN=my_led VALUE=1 G4 P2000 SET_PIN PIN=my_led VALUE=0 Figyelj\u00fck meg, hogy a gcode: config opci\u00f3 mindig a sor elej\u00e9n kezd\u0151dik, valamint a G-k\u00f3d makr\u00f3 tov\u00e1bbi sorai soha nem kezd\u0151dnek a sor elej\u00e9n. Le\u00edr\u00e1s hozz\u00e1ad\u00e1sa a makr\u00f3hoz \u00b6 A funkci\u00f3 azonos\u00edt\u00e1s\u00e1nak megk\u00f6nny\u00edt\u00e9se \u00e9rdek\u00e9ben r\u00f6vid le\u00edr\u00e1s adhat\u00f3 hozz\u00e1. Adjunk hozz\u00e1 description: egy r\u00f6vid sz\u00f6veget a funkci\u00f3 le\u00edr\u00e1s\u00e1ra. Ha nincs megadva, az alap\u00e9rtelmezett \u00e9rt\u00e9k \"G-k\u00f3d makr\u00f3\". P\u00e9ld\u00e1ul: [gcode_macro blink_led] description: Blink my_led one time gcode: SET_PIN PIN=my_led VALUE=1 G4 P2000 SET_PIN PIN=my_led VALUE=0 A termin\u00e1l megjelen\u00edti a le\u00edr\u00e1st, ha a HELP parancsot vagy az automatikus kit\u00f6lt\u00e9s funkci\u00f3t haszn\u00e1lod. \u00c1llapot ment\u00e9se/vissza\u00e1ll\u00edt\u00e1sa G-k\u00f3dos mozg\u00e1sokhoz \u00b6 Sajnos a G-k\u00f3d parancsnyelv haszn\u00e1lata kih\u00edv\u00e1st jelenthet. A nyomtat\u00f3fej mozgat\u00e1s\u00e1nak szabv\u00e1nyos mechanizmusa a G1 parancson kereszt\u00fcl t\u00f6rt\u00e9nik (a G0 parancs a G1 parancs \u00e1lnev\u00e9nek tekinthet\u0151, \u00e9s felcser\u00e9lhet\u0151 vele). Ez a parancs azonban a \"G-k\u00f3d elemz\u00e9si \u00e1llapot\u00e1ra\" t\u00e1maszkodik: M82 , M83 , G90 \u00e1ltali be\u00e1ll\u00edt\u00e1sra, G91 , G92 \u00e9s a kor\u00e1bbi G1 parancsok is. Egy G-k\u00f3d makr\u00f3 l\u00e9trehoz\u00e1sakor c\u00e9lszer\u0171 mindig kifejezetten be\u00e1ll\u00edtani a G-k\u00f3d elemz\u00e9si \u00e1llapot\u00e1t a G1 parancs kiad\u00e1sa el\u0151tt. (Ellenkez\u0151 esetben fenn\u00e1ll annak a vesz\u00e9lye, hogy a G1 parancs nemk\u00edv\u00e1natos k\u00e9r\u00e9st fog v\u00e9grehajtani.) Ennek egyik gyakori m\u00f3dja, hogy a G1 mozdulatokat SAVE_GCODE_STATE -be csomagoljuk, G91 , \u00e9s RESTORE_GCODE_STATE -ba. P\u00e9ld\u00e1ul: [gcode_macro MOVE_UP] gcode: SAVE_GCODE_STATE NAME=my_move_up_state G91 G1 Z10 F300 RESTORE_GCODE_STATE NAME=my_move_up_state A G91 parancs a G-k\u00f3d elemz\u00e9si \u00e1llapotot \"relat\u00edv mozgat\u00e1si m\u00f3dba\" helyezi, a RESTORE_GCODE_STATE parancs pedig vissza\u00e1ll\u00edtja a makr\u00f3 bel\u00e9p\u00e9se el\u0151tti \u00e1llapotot. \u00dcgyelj arra, hogy az els\u0151 G1 parancsn\u00e1l adj meg explicit sebess\u00e9get (az F param\u00e9terrel). Sablon b\u0151v\u00edt\u00e9s \u00b6 A gcode_macro gcode: konfigur\u00e1ci\u00f3s szakasz ki\u00e9rt\u00e9kel\u00e9se a Jinja2 sablonnyelv haszn\u00e1lat\u00e1val t\u00f6rt\u00e9nik. A kifejez\u00e9seket ki\u00e9rt\u00e9kelhetj\u00fck fut\u00e1sid\u0151ben { } karakterekbe csomagolva, vagy haszn\u00e1lhatunk felt\u00e9teles utas\u00edt\u00e1sokat {% %} karakterekbe csomagolva. A szintaxissal kapcsolatos tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a Jinja2 dokument\u00e1ci\u00f3 . P\u00e9lda egy \u00f6sszetett makr\u00f3ra: [gcode_macro clean_nozzle] gcode: {% set wipe_count = 8 %} SAVE_GCODE_STATE NAME=clean_nozzle_state G90 G0 Z15 F300 {% for wipe in range(wipe_count) %} {% for coordinate in [(275, 4),(235, 4)] %} G0 X{coordinate[0]} Y{coordinate[1] + 0.25 * wipe} Z9.7 F12000 {% endfor %} {% endfor %} RESTORE_GCODE_STATE NAME=clean_nozzle_state Makr\u00f3 param\u00e9terek \u00b6 Gyakran hasznos a makr\u00f3nak a megh\u00edv\u00e1sakor \u00e1tadott param\u00e9terek vizsg\u00e1lata. Ezek a param\u00e9terek a params \u00e1lv\u00e1ltoz\u00f3val \u00e9rhet\u0151k el. P\u00e9ld\u00e1ul, ha a makr\u00f3: [gcode_macro SET_PERCENT] gcode: M117 Now at { params.VALUE|float * 100 }% SET_PERCENT VALUE=.2 \u00e9rt\u00e9ket adna, akkor M117 Most 20%-os \u00e9rt\u00e9ken . Vedd figyelembe, hogy a param\u00e9ternevek a makr\u00f3ban t\u00f6rt\u00e9n\u0151 ki\u00e9rt\u00e9kel\u00e9skor mindig nagybet\u0171sek, \u00e9s mindig karakterl\u00e1nck\u00e9nt ker\u00fclnek \u00e1tad\u00e1sra. Ha matematikai m\u0171veletet hajtunk v\u00e9gre, akkor azokat explicit m\u00f3don eg\u00e9sz sz\u00e1mokk\u00e1 vagy lebeg\u0151sz\u00e1mokk\u00e1 kell konvert\u00e1lni. Gyakori a Jinja2 set direkt\u00edva haszn\u00e1lata egy alap\u00e9rtelmezett param\u00e9ter haszn\u00e1lat\u00e1hoz \u00e9s az eredm\u00e9ny hozz\u00e1rendel\u00e9se egy helyi n\u00e9vhez. P\u00e9ld\u00e1ul: [gcode_macro SET_BED_TEMPERATURE] gcode: {% set bed_temp = params.TEMPERATURE|default(40)|float %} M140 S{bed_temp} A \"rawparams\" v\u00e1ltoz\u00f3 \u00b6 A fut\u00f3 makr\u00f3 teljes, be nem elemzett param\u00e9terei a rawparams pszeudov\u00e1ltoz\u00f3val \u00e9rhet\u0151k el. Vedd figyelembe, hogy ez mag\u00e1ban foglalja az eredeti parancs r\u00e9sz\u00e9t k\u00e9pez\u0151 megjegyz\u00e9seket is. A sample-macros.cfg f\u00e1jlban tal\u00e1lhat\u00f3 egy p\u00e9lda arra, hogyan lehet fel\u00fcl\u00edrni az M117 parancsot a rawparams haszn\u00e1lat\u00e1val. A \"nyomtat\u00f3\" v\u00e1ltoz\u00f3 \u00b6 A nyomtat\u00f3 aktu\u00e1lis \u00e1llapot\u00e1t a printer \u00e1lv\u00e1ltoz\u00f3val lehet ellen\u0151rizni (\u00e9s megv\u00e1ltoztatni). P\u00e9ld\u00e1ul: [gcode_macro slow_fan] gcode: M106 S{ printer.fan.speed * 0.9 * 255} A rendelkez\u00e9sre \u00e1ll\u00f3 mez\u0151k a Referencia \u00e1llapot dokumentumban vannak meghat\u00e1rozva. Fontos! A makr\u00f3k el\u0151sz\u00f6r teljes eg\u00e9sz\u00e9ben ki\u00e9rt\u00e9kel\u00e9sre ker\u00fclnek, \u00e9s csak ezut\u00e1n ker\u00fclnek v\u00e9grehajt\u00e1sra a kapott parancsok. Ha egy makr\u00f3 olyan parancsot ad ki, amely megv\u00e1ltoztatja a nyomtat\u00f3 \u00e1llapot\u00e1t, az \u00e1llapotv\u00e1ltoz\u00e1s eredm\u00e9nyei nem lesznek l\u00e1that\u00f3ak a makr\u00f3 ki\u00e9rt\u00e9kel\u00e9se sor\u00e1n. Ez akkor is furcsa viselked\u00e9st eredm\u00e9nyezhet, ha egy makr\u00f3 m\u00e1s makr\u00f3kat, h\u00edv\u00f3 parancsokat gener\u00e1l, mivel a megh\u00edvott makr\u00f3 a megh\u00edv\u00e1skor ker\u00fcl ki\u00e9rt\u00e9kel\u00e9sre (ami a h\u00edv\u00f3 makr\u00f3 teljes ki\u00e9rt\u00e9kel\u00e9se ut\u00e1n t\u00f6rt\u00e9nik). A konvenci\u00f3 szerint a printer ut\u00e1n k\u00f6zvetlen\u00fcl k\u00f6vetkez\u0151 n\u00e9v a config szakasz neve. \u00cdgy p\u00e9ld\u00e1ul a printer.fan a [fan] config szakasz \u00e1ltal l\u00e9trehozott ventil\u00e1tor objektumra utal. Van n\u00e9h\u00e1ny kiv\u00e9tel ez al\u00f3l a szab\u00e1ly al\u00f3l. Nevezetesen a gcode_move \u00e9s a toolhead objektumok. Ha a config szakasz sz\u00f3k\u00f6z\u00f6ket tartalmaz, akkor a [ ] jellel lehet el\u00e9rni. P\u00e9ld\u00e1ul: printer[\"generic_heater my_chamber_heater\"].temperature . Vegy\u00fck \u00e9szre, hogy a Jinja2 set direkt\u00edva a printer hierarchi\u00e1ban l\u00e9v\u0151 objektumhoz rendelhet helyi nevet. Ez olvashat\u00f3bb\u00e1 teheti a makr\u00f3kat \u00e9s cs\u00f6kkentheti a g\u00e9pel\u00e9st. P\u00e9ld\u00e1ul: [gcode_macro QUERY_HTU21D] gcode: {% set sensor = printer[\"htu21d my_sensor\"] %} M117 Temp:{sensor.temperature} Humidity:{sensor.humidity} Tev\u00e9kenys\u00e9gek \u00b6 A nyomtat\u00f3 \u00e1llapot\u00e1nak megv\u00e1ltoztat\u00e1s\u00e1ra n\u00e9h\u00e1ny parancs \u00e1ll rendelkez\u00e9sre. P\u00e9ld\u00e1ul az { action_emergency_stop() } a nyomtat\u00f3t le\u00e1ll\u00edt\u00e1si \u00e1llapotba helyezi. Vedd figyelembe, hogy ezek a m\u0171veletek a makr\u00f3 ki\u00e9rt\u00e9kel\u00e9s\u00e9nek id\u0151pontj\u00e1ban t\u00f6rt\u00e9nnek, ami jelent\u0151s id\u0151vel a gener\u00e1lt G-k\u00f3d parancsok v\u00e9grehajt\u00e1sa el\u0151tt t\u00f6rt\u00e9nhet. El\u00e9rhet\u0151 \"m\u0171velet\" parancsok: action_respond_info(msg) : A megadott msg ki\u00edr\u00e1sa a /tmp/printer \u00e1ltermin\u00e1lra. Az msg minden egyes sora \"// \" el\u0151taggal lesz elk\u00fcldve. action_raise_error(msg) : Megszak\u00edtja az aktu\u00e1lis makr\u00f3t (\u00e9s minden h\u00edv\u00f3 makr\u00f3t), \u00e9s a megadott msg \u00fczenetet ki\u00edrja a /tmp/printer pseudo-termin\u00e1lra. Az msg els\u0151 sora \"!! \" el\u0151taggal, a tov\u00e1bbi sorok pedig \"// \" el\u0151taggal lesznek elk\u00fcldve. action_emergency_stop(msg) : A nyomtat\u00f3t le\u00e1ll\u00edt\u00e1si \u00e1llapotba helyezi. Az msg param\u00e9ter opcion\u00e1lis, hasznos lehet a le\u00e1ll\u00edt\u00e1s ok\u00e1nak le\u00edr\u00e1sa. action_call_remote_method(method_name) : Egy t\u00e1voli \u00fcgyf\u00e9l \u00e1ltal regisztr\u00e1lt met\u00f3dus h\u00edv\u00e1sa. Ha a met\u00f3dus param\u00e9tereket fogad el, akkor azokat kulcsszavas argumentumokkal kell megadni, azaz: action_call_remote_method(\"print_stuff\", my_arg=\"hello_world\") V\u00e1ltoz\u00f3k \u00b6 A SET_GCODE_VARIABLE parancs hasznos lehet a makr\u00f3h\u00edv\u00e1sok k\u00f6z\u00f6tti \u00e1llapotment\u00e9shez. A v\u00e1ltoz\u00f3k nevei nem tartalmazhatnak nagybet\u0171ket. P\u00e9ld\u00e1ul: [gcode_macro start_probe] variable_bed_temp: 0 gcode: # Save target temperature to bed_temp variable SET_GCODE_VARIABLE MACRO=start_probe VARIABLE=bed_temp VALUE={printer.heater_bed.target} # Disable bed heater M140 # Perform probe PROBE # Call finish_probe macro at completion of probe finish_probe [gcode_macro finish_probe] gcode: # Restore temperature M140 S{printer[\"gcode_macro start_probe\"].bed_temp} A SET_GCODE_VARIABLE haszn\u00e1latakor mindenk\u00e9ppen vedd figyelembe a makr\u00f3 ki\u00e9rt\u00e9kel\u00e9s\u00e9nek \u00e9s a parancs v\u00e9grehajt\u00e1s\u00e1nak id\u0151z\u00edt\u00e9s\u00e9t. K\u00e9sleltetett G-k\u00f3dok \u00b6 A [delayed_gcode] konfigur\u00e1ci\u00f3s opci\u00f3 k\u00e9sleltetett G-k\u00f3d szekvencia v\u00e9grehajt\u00e1s\u00e1hoz haszn\u00e1lhat\u00f3: [delayed_gcode clear_display] gcode: M117 [gcode_macro load_filament] gcode: G91 G1 E50 G90 M400 M117 Load Complete! UPDATE_DELAYED_GCODE ID=clear_display DURATION=10 Amikor a fenti load_filament makr\u00f3 v\u00e9grehajt\u00f3dik, az extrud\u00e1l\u00e1s befejez\u00e9se ut\u00e1n megjelenik egy \"Load Complete!\" \u00fczenet. A G-k\u00f3d utols\u00f3 sora enged\u00e9lyezi a \"clear_display\" delayed_gcode-ot, amely 10 m\u00e1sodperc m\u00falva v\u00e9grehajt\u00e1sra van be\u00e1ll\u00edtva. Az initial_duration konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1s be\u00e1ll\u00edthat\u00f3 \u00fagy, hogy a nyomtat\u00f3 ind\u00edt\u00e1sakor v\u00e9grehajtsa a delayed_gcode parancsot. A visszasz\u00e1ml\u00e1l\u00e1s akkor kezd\u0151dik, amikor a nyomtat\u00f3 a \"ready\" \u00e1llapotba l\u00e9p. Az al\u00e1bbi delayed_gcode p\u00e9ld\u00e1ul a nyomtat\u00f3 elk\u00e9sz\u00fclte ut\u00e1n 5 m\u00e1sodperccel v\u00e9grehajtja a m\u0171veletet, \u00e9s a kijelz\u0151t \"\u00dcdv\u00f6zl\u00e9s!\" \u00fczenettel inicializ\u00e1lja: [delayed_gcode welcome] initial_duration: 5. gcode: M117 Welcome! Lehets\u00e9ges, hogy egy k\u00e9sleltetett G-k\u00f3d megism\u00e9tl\u0151dik a G-k\u00f3d opci\u00f3ban t\u00f6rt\u00e9n\u0151 friss\u00edt\u00e9ssel: [delayed_gcode report_temp] initial_duration: 2. gcode: {action_respond_info(\"Extruder Temp: %.1f\" % (printer.extruder0.temperature))} UPDATE_DELAYED_GCODE ID=report_temp DURATION=2 A fenti delayed_gcode 2 m\u00e1sodpercenk\u00e9nt elk\u00fcldi az \"// Extruder Temp: [ex0_temp]\" k\u00f3dot az Octoprintnek. Ez a k\u00f6vetkez\u0151 G-k\u00f3ddal t\u00f6r\u00f6lhet\u0151: UPDATE_DELAYED_GCODE ID=report_temp DURATION=0 Men\u00fcsablonok \u00b6 Ha a display config section enged\u00e9lyezve van, akkor lehet\u0151s\u00e9g van a men\u00fc testreszab\u00e1s\u00e1ra a menu konfigur\u00e1ci\u00f3s szakaszokkal. A men\u00fcsablonokban a k\u00f6vetkez\u0151 csak olvashat\u00f3 attrib\u00fatumok \u00e1llnak rendelkez\u00e9sre: menu.width - az elem sz\u00e9less\u00e9ge (a megjelen\u00edtett oszlopok sz\u00e1ma) menu.ns - elem n\u00e9vtere menu.event - a szkriptet kiv\u00e1lt\u00f3 esem\u00e9ny neve menu.input - beviteli \u00e9rt\u00e9k, csak input script kontextusban \u00e9rhet\u0151 el A men\u00fcsablonokban a k\u00f6vetkez\u0151 m\u0171veletek \u00e9rhet\u0151k el: menu.back(force, update) : v\u00e9grehajtja a men\u00fc vissza parancs\u00e1t, az opcion\u00e1lis logikai param\u00e9tereket <force> \u00e9s <update> . Ha a <force> \u00e9rt\u00e9ke True, akkor a szerkeszt\u00e9s is le\u00e1ll. Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. Ha az <update> \u00e9rt\u00e9ke False, akkor a fels\u0151bb t\u00e1rol\u00f3elemek nem friss\u00fclnek. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. menu.exit(force) - v\u00e9grehajtja a men\u00fcb\u0151l val\u00f3 kil\u00e9p\u00e9s parancs\u00e1t, opcion\u00e1lis boolean param\u00e9ter <force> alap\u00e9rtelmezett \u00e9rt\u00e9ke False. Ha a <force> \u00e9rt\u00e9ke True, akkor a szerkeszt\u00e9s is le\u00e1ll. Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. V\u00e1ltoz\u00f3k ment\u00e9se lemezre \u00b6 Ha a save_variables config section enged\u00e9lyezve van, a SAVE_VARIABLE VARIABLE=<name> VALUE=<value> haszn\u00e1lhat\u00f3 a v\u00e1ltoz\u00f3 lemezre ment\u00e9s\u00e9re, hogy az \u00fajraind\u00edt\u00e1sok sor\u00e1n is haszn\u00e1lhat\u00f3 legyen. Minden t\u00e1rolt v\u00e1ltoz\u00f3 bet\u00f6lt\u0151dik a printer.save_variables.variables dict-be ind\u00edt\u00e1skor, \u00e9s felhaszn\u00e1lhat\u00f3 a G-k\u00f3d makr\u00f3kban. A t\u00fal hossz\u00fa sorok elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a makr\u00f3 elej\u00e9re a k\u00f6vetkez\u0151ket \u00edrhatjuk: {% set svv = printer.save_variables.variables %} P\u00e9ldak\u00e9nt a 2 az 1-ben nyomtat\u00f3fej \u00e1llapot\u00e1nak ment\u00e9s\u00e9re haszn\u00e1lhat\u00f3, \u00e9s nyomtat\u00e1s ind\u00edt\u00e1sakor gy\u0151z\u0151dj meg arr\u00f3l, hogy az akt\u00edv fejet haszn\u00e1ld a T0 helyett: [gcode_macro T1] gcode: ACTIVATE_EXTRUDER extruder=extruder1 SAVE_VARIABLE VARIABLE=currentextruder VALUE='\"extruder1\"' [gcode_macro T0] gcode: ACTIVATE_EXTRUDER extruder=extruder SAVE_VARIABLE VARIABLE=currentextruder VALUE='\"extruder\"' [gcode_macro START_GCODE] gcode: {% set svv = printer.save_variables.variables %} ACTIVATE_EXTRUDER extruder={svv.currentextruder}","title":"Parancssablonok"},{"location":"Command_Templates.html#parancssablonok","text":"Ez a dokumentum a G-k\u00f3d parancssorozatok gcode_macro (\u00e9s hasonl\u00f3) konfigur\u00e1ci\u00f3s szakaszokban t\u00f6rt\u00e9n\u0151 implement\u00e1l\u00e1s\u00e1r\u00f3l ny\u00fajt inform\u00e1ci\u00f3t.","title":"Parancssablonok"},{"location":"Command_Templates.html#g-kod-makro-elnevezese","text":"A G-k\u00f3dos makron\u00e9v eset\u00e9ben a nagy \u00e9s kisbet\u0171s \u00edr\u00e1sm\u00f3d nem fontos - a MY_MACRO \u00e9s a my_macro ugyan\u00fagy ki\u00e9rt\u00e9kel\u0151dik, \u00e9s kicsi vagy nagybet\u0171vel is megh\u00edvhat\u00f3. Ha a makron\u00e9vben sz\u00e1mokat haszn\u00e1lunk, akkor azoknak a n\u00e9v v\u00e9g\u00e9n kell \u00e1llniuk (pl. a TEST_MACRO25 \u00e9rv\u00e9nyes, de a MACRO25_TEST3 nem).","title":"G-k\u00f3d makr\u00f3 elnevez\u00e9se"},{"location":"Command_Templates.html#a-g-kod-formazasa-a-konfiguracioban","text":"A beh\u00faz\u00e1s fontos, amikor makr\u00f3t defini\u00e1l a konfigur\u00e1ci\u00f3s f\u00e1jlban. T\u00f6bbsoros G-k\u00f3d szekvencia megad\u00e1s\u00e1hoz fontos, hogy minden sorban megfelel\u0151 beh\u00faz\u00e1s legyen. P\u00e9ld\u00e1ul: [gcode_macro blink_led] gcode: SET_PIN PIN=my_led VALUE=1 G4 P2000 SET_PIN PIN=my_led VALUE=0 Figyelj\u00fck meg, hogy a gcode: config opci\u00f3 mindig a sor elej\u00e9n kezd\u0151dik, valamint a G-k\u00f3d makr\u00f3 tov\u00e1bbi sorai soha nem kezd\u0151dnek a sor elej\u00e9n.","title":"A G-k\u00f3d form\u00e1z\u00e1sa a konfigur\u00e1ci\u00f3ban"},{"location":"Command_Templates.html#leiras-hozzaadasa-a-makrohoz","text":"A funkci\u00f3 azonos\u00edt\u00e1s\u00e1nak megk\u00f6nny\u00edt\u00e9se \u00e9rdek\u00e9ben r\u00f6vid le\u00edr\u00e1s adhat\u00f3 hozz\u00e1. Adjunk hozz\u00e1 description: egy r\u00f6vid sz\u00f6veget a funkci\u00f3 le\u00edr\u00e1s\u00e1ra. Ha nincs megadva, az alap\u00e9rtelmezett \u00e9rt\u00e9k \"G-k\u00f3d makr\u00f3\". P\u00e9ld\u00e1ul: [gcode_macro blink_led] description: Blink my_led one time gcode: SET_PIN PIN=my_led VALUE=1 G4 P2000 SET_PIN PIN=my_led VALUE=0 A termin\u00e1l megjelen\u00edti a le\u00edr\u00e1st, ha a HELP parancsot vagy az automatikus kit\u00f6lt\u00e9s funkci\u00f3t haszn\u00e1lod.","title":"Le\u00edr\u00e1s hozz\u00e1ad\u00e1sa a makr\u00f3hoz"},{"location":"Command_Templates.html#allapot-mentesevisszaallitasa-g-kodos-mozgasokhoz","text":"Sajnos a G-k\u00f3d parancsnyelv haszn\u00e1lata kih\u00edv\u00e1st jelenthet. A nyomtat\u00f3fej mozgat\u00e1s\u00e1nak szabv\u00e1nyos mechanizmusa a G1 parancson kereszt\u00fcl t\u00f6rt\u00e9nik (a G0 parancs a G1 parancs \u00e1lnev\u00e9nek tekinthet\u0151, \u00e9s felcser\u00e9lhet\u0151 vele). Ez a parancs azonban a \"G-k\u00f3d elemz\u00e9si \u00e1llapot\u00e1ra\" t\u00e1maszkodik: M82 , M83 , G90 \u00e1ltali be\u00e1ll\u00edt\u00e1sra, G91 , G92 \u00e9s a kor\u00e1bbi G1 parancsok is. Egy G-k\u00f3d makr\u00f3 l\u00e9trehoz\u00e1sakor c\u00e9lszer\u0171 mindig kifejezetten be\u00e1ll\u00edtani a G-k\u00f3d elemz\u00e9si \u00e1llapot\u00e1t a G1 parancs kiad\u00e1sa el\u0151tt. (Ellenkez\u0151 esetben fenn\u00e1ll annak a vesz\u00e9lye, hogy a G1 parancs nemk\u00edv\u00e1natos k\u00e9r\u00e9st fog v\u00e9grehajtani.) Ennek egyik gyakori m\u00f3dja, hogy a G1 mozdulatokat SAVE_GCODE_STATE -be csomagoljuk, G91 , \u00e9s RESTORE_GCODE_STATE -ba. P\u00e9ld\u00e1ul: [gcode_macro MOVE_UP] gcode: SAVE_GCODE_STATE NAME=my_move_up_state G91 G1 Z10 F300 RESTORE_GCODE_STATE NAME=my_move_up_state A G91 parancs a G-k\u00f3d elemz\u00e9si \u00e1llapotot \"relat\u00edv mozgat\u00e1si m\u00f3dba\" helyezi, a RESTORE_GCODE_STATE parancs pedig vissza\u00e1ll\u00edtja a makr\u00f3 bel\u00e9p\u00e9se el\u0151tti \u00e1llapotot. \u00dcgyelj arra, hogy az els\u0151 G1 parancsn\u00e1l adj meg explicit sebess\u00e9get (az F param\u00e9terrel).","title":"\u00c1llapot ment\u00e9se/vissza\u00e1ll\u00edt\u00e1sa G-k\u00f3dos mozg\u00e1sokhoz"},{"location":"Command_Templates.html#sablon-bovites","text":"A gcode_macro gcode: konfigur\u00e1ci\u00f3s szakasz ki\u00e9rt\u00e9kel\u00e9se a Jinja2 sablonnyelv haszn\u00e1lat\u00e1val t\u00f6rt\u00e9nik. A kifejez\u00e9seket ki\u00e9rt\u00e9kelhetj\u00fck fut\u00e1sid\u0151ben { } karakterekbe csomagolva, vagy haszn\u00e1lhatunk felt\u00e9teles utas\u00edt\u00e1sokat {% %} karakterekbe csomagolva. A szintaxissal kapcsolatos tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a Jinja2 dokument\u00e1ci\u00f3 . P\u00e9lda egy \u00f6sszetett makr\u00f3ra: [gcode_macro clean_nozzle] gcode: {% set wipe_count = 8 %} SAVE_GCODE_STATE NAME=clean_nozzle_state G90 G0 Z15 F300 {% for wipe in range(wipe_count) %} {% for coordinate in [(275, 4),(235, 4)] %} G0 X{coordinate[0]} Y{coordinate[1] + 0.25 * wipe} Z9.7 F12000 {% endfor %} {% endfor %} RESTORE_GCODE_STATE NAME=clean_nozzle_state","title":"Sablon b\u0151v\u00edt\u00e9s"},{"location":"Command_Templates.html#makro-parameterek","text":"Gyakran hasznos a makr\u00f3nak a megh\u00edv\u00e1sakor \u00e1tadott param\u00e9terek vizsg\u00e1lata. Ezek a param\u00e9terek a params \u00e1lv\u00e1ltoz\u00f3val \u00e9rhet\u0151k el. P\u00e9ld\u00e1ul, ha a makr\u00f3: [gcode_macro SET_PERCENT] gcode: M117 Now at { params.VALUE|float * 100 }% SET_PERCENT VALUE=.2 \u00e9rt\u00e9ket adna, akkor M117 Most 20%-os \u00e9rt\u00e9ken . Vedd figyelembe, hogy a param\u00e9ternevek a makr\u00f3ban t\u00f6rt\u00e9n\u0151 ki\u00e9rt\u00e9kel\u00e9skor mindig nagybet\u0171sek, \u00e9s mindig karakterl\u00e1nck\u00e9nt ker\u00fclnek \u00e1tad\u00e1sra. Ha matematikai m\u0171veletet hajtunk v\u00e9gre, akkor azokat explicit m\u00f3don eg\u00e9sz sz\u00e1mokk\u00e1 vagy lebeg\u0151sz\u00e1mokk\u00e1 kell konvert\u00e1lni. Gyakori a Jinja2 set direkt\u00edva haszn\u00e1lata egy alap\u00e9rtelmezett param\u00e9ter haszn\u00e1lat\u00e1hoz \u00e9s az eredm\u00e9ny hozz\u00e1rendel\u00e9se egy helyi n\u00e9vhez. P\u00e9ld\u00e1ul: [gcode_macro SET_BED_TEMPERATURE] gcode: {% set bed_temp = params.TEMPERATURE|default(40)|float %} M140 S{bed_temp}","title":"Makr\u00f3 param\u00e9terek"},{"location":"Command_Templates.html#a-rawparams-valtozo","text":"A fut\u00f3 makr\u00f3 teljes, be nem elemzett param\u00e9terei a rawparams pszeudov\u00e1ltoz\u00f3val \u00e9rhet\u0151k el. Vedd figyelembe, hogy ez mag\u00e1ban foglalja az eredeti parancs r\u00e9sz\u00e9t k\u00e9pez\u0151 megjegyz\u00e9seket is. A sample-macros.cfg f\u00e1jlban tal\u00e1lhat\u00f3 egy p\u00e9lda arra, hogyan lehet fel\u00fcl\u00edrni az M117 parancsot a rawparams haszn\u00e1lat\u00e1val.","title":"A \"rawparams\" v\u00e1ltoz\u00f3"},{"location":"Command_Templates.html#a-nyomtato-valtozo","text":"A nyomtat\u00f3 aktu\u00e1lis \u00e1llapot\u00e1t a printer \u00e1lv\u00e1ltoz\u00f3val lehet ellen\u0151rizni (\u00e9s megv\u00e1ltoztatni). P\u00e9ld\u00e1ul: [gcode_macro slow_fan] gcode: M106 S{ printer.fan.speed * 0.9 * 255} A rendelkez\u00e9sre \u00e1ll\u00f3 mez\u0151k a Referencia \u00e1llapot dokumentumban vannak meghat\u00e1rozva. Fontos! A makr\u00f3k el\u0151sz\u00f6r teljes eg\u00e9sz\u00e9ben ki\u00e9rt\u00e9kel\u00e9sre ker\u00fclnek, \u00e9s csak ezut\u00e1n ker\u00fclnek v\u00e9grehajt\u00e1sra a kapott parancsok. Ha egy makr\u00f3 olyan parancsot ad ki, amely megv\u00e1ltoztatja a nyomtat\u00f3 \u00e1llapot\u00e1t, az \u00e1llapotv\u00e1ltoz\u00e1s eredm\u00e9nyei nem lesznek l\u00e1that\u00f3ak a makr\u00f3 ki\u00e9rt\u00e9kel\u00e9se sor\u00e1n. Ez akkor is furcsa viselked\u00e9st eredm\u00e9nyezhet, ha egy makr\u00f3 m\u00e1s makr\u00f3kat, h\u00edv\u00f3 parancsokat gener\u00e1l, mivel a megh\u00edvott makr\u00f3 a megh\u00edv\u00e1skor ker\u00fcl ki\u00e9rt\u00e9kel\u00e9sre (ami a h\u00edv\u00f3 makr\u00f3 teljes ki\u00e9rt\u00e9kel\u00e9se ut\u00e1n t\u00f6rt\u00e9nik). A konvenci\u00f3 szerint a printer ut\u00e1n k\u00f6zvetlen\u00fcl k\u00f6vetkez\u0151 n\u00e9v a config szakasz neve. \u00cdgy p\u00e9ld\u00e1ul a printer.fan a [fan] config szakasz \u00e1ltal l\u00e9trehozott ventil\u00e1tor objektumra utal. Van n\u00e9h\u00e1ny kiv\u00e9tel ez al\u00f3l a szab\u00e1ly al\u00f3l. Nevezetesen a gcode_move \u00e9s a toolhead objektumok. Ha a config szakasz sz\u00f3k\u00f6z\u00f6ket tartalmaz, akkor a [ ] jellel lehet el\u00e9rni. P\u00e9ld\u00e1ul: printer[\"generic_heater my_chamber_heater\"].temperature . Vegy\u00fck \u00e9szre, hogy a Jinja2 set direkt\u00edva a printer hierarchi\u00e1ban l\u00e9v\u0151 objektumhoz rendelhet helyi nevet. Ez olvashat\u00f3bb\u00e1 teheti a makr\u00f3kat \u00e9s cs\u00f6kkentheti a g\u00e9pel\u00e9st. P\u00e9ld\u00e1ul: [gcode_macro QUERY_HTU21D] gcode: {% set sensor = printer[\"htu21d my_sensor\"] %} M117 Temp:{sensor.temperature} Humidity:{sensor.humidity}","title":"A \"nyomtat\u00f3\" v\u00e1ltoz\u00f3"},{"location":"Command_Templates.html#tevekenysegek","text":"A nyomtat\u00f3 \u00e1llapot\u00e1nak megv\u00e1ltoztat\u00e1s\u00e1ra n\u00e9h\u00e1ny parancs \u00e1ll rendelkez\u00e9sre. P\u00e9ld\u00e1ul az { action_emergency_stop() } a nyomtat\u00f3t le\u00e1ll\u00edt\u00e1si \u00e1llapotba helyezi. Vedd figyelembe, hogy ezek a m\u0171veletek a makr\u00f3 ki\u00e9rt\u00e9kel\u00e9s\u00e9nek id\u0151pontj\u00e1ban t\u00f6rt\u00e9nnek, ami jelent\u0151s id\u0151vel a gener\u00e1lt G-k\u00f3d parancsok v\u00e9grehajt\u00e1sa el\u0151tt t\u00f6rt\u00e9nhet. El\u00e9rhet\u0151 \"m\u0171velet\" parancsok: action_respond_info(msg) : A megadott msg ki\u00edr\u00e1sa a /tmp/printer \u00e1ltermin\u00e1lra. Az msg minden egyes sora \"// \" el\u0151taggal lesz elk\u00fcldve. action_raise_error(msg) : Megszak\u00edtja az aktu\u00e1lis makr\u00f3t (\u00e9s minden h\u00edv\u00f3 makr\u00f3t), \u00e9s a megadott msg \u00fczenetet ki\u00edrja a /tmp/printer pseudo-termin\u00e1lra. Az msg els\u0151 sora \"!! \" el\u0151taggal, a tov\u00e1bbi sorok pedig \"// \" el\u0151taggal lesznek elk\u00fcldve. action_emergency_stop(msg) : A nyomtat\u00f3t le\u00e1ll\u00edt\u00e1si \u00e1llapotba helyezi. Az msg param\u00e9ter opcion\u00e1lis, hasznos lehet a le\u00e1ll\u00edt\u00e1s ok\u00e1nak le\u00edr\u00e1sa. action_call_remote_method(method_name) : Egy t\u00e1voli \u00fcgyf\u00e9l \u00e1ltal regisztr\u00e1lt met\u00f3dus h\u00edv\u00e1sa. Ha a met\u00f3dus param\u00e9tereket fogad el, akkor azokat kulcsszavas argumentumokkal kell megadni, azaz: action_call_remote_method(\"print_stuff\", my_arg=\"hello_world\")","title":"Tev\u00e9kenys\u00e9gek"},{"location":"Command_Templates.html#valtozok","text":"A SET_GCODE_VARIABLE parancs hasznos lehet a makr\u00f3h\u00edv\u00e1sok k\u00f6z\u00f6tti \u00e1llapotment\u00e9shez. A v\u00e1ltoz\u00f3k nevei nem tartalmazhatnak nagybet\u0171ket. P\u00e9ld\u00e1ul: [gcode_macro start_probe] variable_bed_temp: 0 gcode: # Save target temperature to bed_temp variable SET_GCODE_VARIABLE MACRO=start_probe VARIABLE=bed_temp VALUE={printer.heater_bed.target} # Disable bed heater M140 # Perform probe PROBE # Call finish_probe macro at completion of probe finish_probe [gcode_macro finish_probe] gcode: # Restore temperature M140 S{printer[\"gcode_macro start_probe\"].bed_temp} A SET_GCODE_VARIABLE haszn\u00e1latakor mindenk\u00e9ppen vedd figyelembe a makr\u00f3 ki\u00e9rt\u00e9kel\u00e9s\u00e9nek \u00e9s a parancs v\u00e9grehajt\u00e1s\u00e1nak id\u0151z\u00edt\u00e9s\u00e9t.","title":"V\u00e1ltoz\u00f3k"},{"location":"Command_Templates.html#kesleltetett-g-kodok","text":"A [delayed_gcode] konfigur\u00e1ci\u00f3s opci\u00f3 k\u00e9sleltetett G-k\u00f3d szekvencia v\u00e9grehajt\u00e1s\u00e1hoz haszn\u00e1lhat\u00f3: [delayed_gcode clear_display] gcode: M117 [gcode_macro load_filament] gcode: G91 G1 E50 G90 M400 M117 Load Complete! UPDATE_DELAYED_GCODE ID=clear_display DURATION=10 Amikor a fenti load_filament makr\u00f3 v\u00e9grehajt\u00f3dik, az extrud\u00e1l\u00e1s befejez\u00e9se ut\u00e1n megjelenik egy \"Load Complete!\" \u00fczenet. A G-k\u00f3d utols\u00f3 sora enged\u00e9lyezi a \"clear_display\" delayed_gcode-ot, amely 10 m\u00e1sodperc m\u00falva v\u00e9grehajt\u00e1sra van be\u00e1ll\u00edtva. Az initial_duration konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1s be\u00e1ll\u00edthat\u00f3 \u00fagy, hogy a nyomtat\u00f3 ind\u00edt\u00e1sakor v\u00e9grehajtsa a delayed_gcode parancsot. A visszasz\u00e1ml\u00e1l\u00e1s akkor kezd\u0151dik, amikor a nyomtat\u00f3 a \"ready\" \u00e1llapotba l\u00e9p. Az al\u00e1bbi delayed_gcode p\u00e9ld\u00e1ul a nyomtat\u00f3 elk\u00e9sz\u00fclte ut\u00e1n 5 m\u00e1sodperccel v\u00e9grehajtja a m\u0171veletet, \u00e9s a kijelz\u0151t \"\u00dcdv\u00f6zl\u00e9s!\" \u00fczenettel inicializ\u00e1lja: [delayed_gcode welcome] initial_duration: 5. gcode: M117 Welcome! Lehets\u00e9ges, hogy egy k\u00e9sleltetett G-k\u00f3d megism\u00e9tl\u0151dik a G-k\u00f3d opci\u00f3ban t\u00f6rt\u00e9n\u0151 friss\u00edt\u00e9ssel: [delayed_gcode report_temp] initial_duration: 2. gcode: {action_respond_info(\"Extruder Temp: %.1f\" % (printer.extruder0.temperature))} UPDATE_DELAYED_GCODE ID=report_temp DURATION=2 A fenti delayed_gcode 2 m\u00e1sodpercenk\u00e9nt elk\u00fcldi az \"// Extruder Temp: [ex0_temp]\" k\u00f3dot az Octoprintnek. Ez a k\u00f6vetkez\u0151 G-k\u00f3ddal t\u00f6r\u00f6lhet\u0151: UPDATE_DELAYED_GCODE ID=report_temp DURATION=0","title":"K\u00e9sleltetett G-k\u00f3dok"},{"location":"Command_Templates.html#menusablonok","text":"Ha a display config section enged\u00e9lyezve van, akkor lehet\u0151s\u00e9g van a men\u00fc testreszab\u00e1s\u00e1ra a menu konfigur\u00e1ci\u00f3s szakaszokkal. A men\u00fcsablonokban a k\u00f6vetkez\u0151 csak olvashat\u00f3 attrib\u00fatumok \u00e1llnak rendelkez\u00e9sre: menu.width - az elem sz\u00e9less\u00e9ge (a megjelen\u00edtett oszlopok sz\u00e1ma) menu.ns - elem n\u00e9vtere menu.event - a szkriptet kiv\u00e1lt\u00f3 esem\u00e9ny neve menu.input - beviteli \u00e9rt\u00e9k, csak input script kontextusban \u00e9rhet\u0151 el A men\u00fcsablonokban a k\u00f6vetkez\u0151 m\u0171veletek \u00e9rhet\u0151k el: menu.back(force, update) : v\u00e9grehajtja a men\u00fc vissza parancs\u00e1t, az opcion\u00e1lis logikai param\u00e9tereket <force> \u00e9s <update> . Ha a <force> \u00e9rt\u00e9ke True, akkor a szerkeszt\u00e9s is le\u00e1ll. Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. Ha az <update> \u00e9rt\u00e9ke False, akkor a fels\u0151bb t\u00e1rol\u00f3elemek nem friss\u00fclnek. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. menu.exit(force) - v\u00e9grehajtja a men\u00fcb\u0151l val\u00f3 kil\u00e9p\u00e9s parancs\u00e1t, opcion\u00e1lis boolean param\u00e9ter <force> alap\u00e9rtelmezett \u00e9rt\u00e9ke False. Ha a <force> \u00e9rt\u00e9ke True, akkor a szerkeszt\u00e9s is le\u00e1ll. Az alap\u00e9rtelmezett \u00e9rt\u00e9k False.","title":"Men\u00fcsablonok"},{"location":"Command_Templates.html#valtozok-mentese-lemezre","text":"Ha a save_variables config section enged\u00e9lyezve van, a SAVE_VARIABLE VARIABLE=<name> VALUE=<value> haszn\u00e1lhat\u00f3 a v\u00e1ltoz\u00f3 lemezre ment\u00e9s\u00e9re, hogy az \u00fajraind\u00edt\u00e1sok sor\u00e1n is haszn\u00e1lhat\u00f3 legyen. Minden t\u00e1rolt v\u00e1ltoz\u00f3 bet\u00f6lt\u0151dik a printer.save_variables.variables dict-be ind\u00edt\u00e1skor, \u00e9s felhaszn\u00e1lhat\u00f3 a G-k\u00f3d makr\u00f3kban. A t\u00fal hossz\u00fa sorok elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a makr\u00f3 elej\u00e9re a k\u00f6vetkez\u0151ket \u00edrhatjuk: {% set svv = printer.save_variables.variables %} P\u00e9ldak\u00e9nt a 2 az 1-ben nyomtat\u00f3fej \u00e1llapot\u00e1nak ment\u00e9s\u00e9re haszn\u00e1lhat\u00f3, \u00e9s nyomtat\u00e1s ind\u00edt\u00e1sakor gy\u0151z\u0151dj meg arr\u00f3l, hogy az akt\u00edv fejet haszn\u00e1ld a T0 helyett: [gcode_macro T1] gcode: ACTIVATE_EXTRUDER extruder=extruder1 SAVE_VARIABLE VARIABLE=currentextruder VALUE='\"extruder1\"' [gcode_macro T0] gcode: ACTIVATE_EXTRUDER extruder=extruder SAVE_VARIABLE VARIABLE=currentextruder VALUE='\"extruder\"' [gcode_macro START_GCODE] gcode: {% set svv = printer.save_variables.variables %} ACTIVATE_EXTRUDER extruder={svv.currentextruder}","title":"V\u00e1ltoz\u00f3k ment\u00e9se lemezre"},{"location":"Config_Changes.html","text":"Konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00e1sok \u00b6 Ez a dokumentum a konfigur\u00e1ci\u00f3s f\u00e1jl leg\u00fajabb szoftveres v\u00e1ltoztat\u00e1sait tartalmazza, amelyek nem kompatibilisek visszafel\u00e9. A Klipper szoftver friss\u00edt\u00e9sekor \u00e9rdemes \u00e1ttanulm\u00e1nyozni ezt a dokumentumot. A dokumentumban szerepl\u0151 valamennyi d\u00e1tum hozz\u00e1vet\u0151leges. V\u00e1ltoz\u00e1sok \u00b6 20220616: Kor\u00e1bban egy rp2040-et bootloader m\u00f3dban lehetett \u00e9getni a make flash FLASH_DEVICE=first futtat\u00e1s\u00e1val. Az ezzel egyen\u00e9rt\u00e9k\u0171 parancs mostant\u00f3l make flash FLASH_DEVICE=2e8a:0003 . 20220612: Az rp2040 mikrokontroller mostant\u00f3l rendelkezik a \"rp2040-e5\" USB hiba elh\u00e1r\u00edt\u00e1s\u00e1val. Ez megb\u00edzhat\u00f3bb\u00e1 teszi a kezdeti USB-kapcsolatokat. Ez azonban a GPIO15 t\u0171 viselked\u00e9s\u00e9nek megv\u00e1ltoz\u00e1s\u00e1t eredm\u00e9nyezheti. Nem val\u00f3sz\u00edn\u0171, hogy a GPIO15 viselked\u00e9s\u00e9nek v\u00e1ltoz\u00e1sa \u00e9szrevehet\u0151 lesz. 20220407: A temperature_fan pid_integral_max konfigur\u00e1ci\u00f3s opci\u00f3t elt\u00e1vol\u00edtottuk (a 20210612-es verzi\u00f3val elavult). 20220407: A pca9632 LED-ek alap\u00e9rtelmezett sz\u00ednsorrendje mostant\u00f3l \"RGBW\". Adjunk hozz\u00e1 egy explicit color_ordert: RBGW be\u00e1ll\u00edt\u00e1st a pca9632 konfigur\u00e1ci\u00f3s szakasz\u00e1ba a kor\u00e1bbi m\u0171k\u00f6d\u00e9s vissza\u00e1ll\u00edt\u00e1s\u00e1hoz. 20220330: A printer.neopixel.color_data \u00e1llapotinform\u00e1ci\u00f3 form\u00e1tuma megv\u00e1ltozott a neopixel \u00e9s dotstar modulok eset\u00e9ben. Az inform\u00e1ci\u00f3 mostant\u00f3l sz\u00ednlist\u00e1k list\u00e1jak\u00e9nt t\u00e1rol\u00f3dik (sz\u00f3t\u00e1rak list\u00e1ja helyett). A r\u00e9szletek\u00e9rt l\u00e1sd az \u00e1llapot hivatkoz\u00e1s c\u00edm\u0171 dokumentumot. 20220307: M73 m\u00e1r nem \u00e1ll\u00edtja 0-ra a nyomtat\u00e1s el\u0151rehalad\u00e1s\u00e1t, ha P hi\u00e1nyzik. 20220304: Az extruder_stepper konfigur\u00e1ci\u00f3s szakaszok extruder param\u00e9tere m\u00e1r nem alap\u00e9rtelmezett. Ha sz\u00fcks\u00e9ges, add meg kifejezetten az extruder: extruder param\u00e9tert, hogy a l\u00e9ptet\u0151motort ind\u00edt\u00e1skor az \"extruder\" mozg\u00e1ssorhoz t\u00e1rs\u00edtsa. 20220210: A SYNC_STEPPER_TO_EXTRUDER parancs elavult; a SET_EXTRUDER_STEP_DISTANCE parancs elavult; az extruder shared_heater config opci\u00f3 elavult. Ezek a funkci\u00f3k a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fclnek. A SET_EXTRUDER_STEP_DISTANCE helyett SET_EXTRUDER_ROTATION_DISTANCE . Cser\u00e9lje ki a SYNC_STEPPER_TO_EXTRUDER \u00e9rt\u00e9ket a SYNC_EXTRUDER_MOTION \u00e9rt\u00e9kre. Cser\u00e9lje ki a shared_heater extruder konfigur\u00e1ci\u00f3s szakaszokat extruder_stepper konfigur\u00e1ci\u00f3s szakaszokra, \u00e9s friss\u00edtse az aktiv\u00e1l\u00e1si makr\u00f3kat a SYNC_EXTRUDER_MOTION haszn\u00e1lat\u00e1ra. 20220116: A tmc2130, tmc2208, tmc2209 \u00e9s tmc2660 run_current sz\u00e1m\u00edt\u00e1si k\u00f3d megv\u00e1ltozott. Egyes run_current be\u00e1ll\u00edt\u00e1sokn\u00e1l az illeszt\u0151programok most m\u00e1sk\u00e9pp konfigur\u00e1lhat\u00f3k. Ennek az \u00faj konfigur\u00e1ci\u00f3nak pontosabbnak kell lennie, de \u00e9rv\u00e9nytelen\u00edtheti a kor\u00e1bbi TMC illeszt\u0151program-hangol\u00e1st. 20211230: A bemeneti alak\u00edt\u00f3 hangol\u00e1s\u00e1ra szolg\u00e1l\u00f3 szkriptek ( scripts/calibrate_shaper.py \u00e9s scripts/graph_accelerometer.py ) alap\u00e9rtelmez\u00e9s szerint Python3-at haszn\u00e1lnak. Ennek eredm\u00e9nyek\u00e9ppen a felhaszn\u00e1l\u00f3knak telep\u00edteni\u00fck kell bizonyos csomagok Python3 verzi\u00f3it (pl. sudo apt install python3-numpy python3-matplotlib ), hogy tov\u00e1bbra is haszn\u00e1lni tudj\u00e1k ezeket a szkripteket. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a Szoftvertelep\u00edt\u00e9s c\u00edm\u0171 r\u00e9szt. Alternat\u00edvak\u00e9nt a felhaszn\u00e1l\u00f3k ideiglenesen kik\u00e9nyszer\u00edthetik ezeknek a szkripteknek a Python 2 alatti v\u00e9grehajt\u00e1s\u00e1t a Python2 interpretor explicit megh\u00edv\u00e1s\u00e1val a konzolon: python2 ~/klipper/scripts/calibrate_shaper.py ... 20211110: Az \"NTC 100K beta 3950\" h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 elavult. Ez az \u00e9rz\u00e9kel\u0151 a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fcl. A legt\u00f6bb felhaszn\u00e1l\u00f3 a \"Generic 3950\" h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151t pontosabbnak fogja tal\u00e1lni. Ha tov\u00e1bbra is a r\u00e9gebbi (jellemz\u0151en kev\u00e9sb\u00e9 pontos) defin\u00edci\u00f3t szeretn\u00e9d haszn\u00e1lni, defini\u00e1ljon egy egy\u00e9ni termisztort a temperature1: 25 , resistance1: 100000 , \u00e9s beta: 3950 \u00e9rt\u00e9keken. 20211104: A \"step pulse duration\" opci\u00f3 a \"make menuconfig\" men\u00fcb\u0151l elt\u00e1vol\u00edt\u00e1sra ker\u00fclt. Az UART vagy SPI m\u00f3dban konfigur\u00e1lt TMC-meghajt\u00f3k alap\u00e9rtelmezett l\u00e9p\u00e9simpulzus id\u0151tartama mostant\u00f3l 100ns. Egy \u00faj step_pulse_duration be\u00e1ll\u00edt\u00e1st kell megadni a stepper config szakaszban minden olyan stepper eset\u00e9ben, amely egy\u00e9ni impulzus id\u0151tartamot ig\u00e9nyel. 20211102: Sz\u00e1mos elavult funkci\u00f3t elt\u00e1vol\u00edtottunk. A l\u00e9ptet\u0151 step_distance opci\u00f3t elt\u00e1vol\u00edtottuk (20201222-t\u0151l elavult). Az rpi_temperature \u00e9rz\u00e9kel\u0151 \u00e1ln\u00e9v elt\u00e1vol\u00edt\u00e1sra ker\u00fclt (elavult 20210219). Az MCU pin_map opci\u00f3 elt\u00e1vol\u00edt\u00e1sra ker\u00fclt (elavult 20210325). A gcode_macro default_parameter_<name> \u00e9s a parancsparam\u00e9terekhez val\u00f3, params pszeudov\u00e1ltoz\u00f3t\u00f3l elt\u00e9r\u0151 makr\u00f3hoz val\u00f3 hozz\u00e1f\u00e9r\u00e9s elt\u00e1vol\u00edt\u00e1sra ker\u00fclt (elavult 20210503). A f\u0171t\u00e9s pid_integral_max opci\u00f3t elt\u00e1vol\u00edtottuk (elavult 20210612). 20210929: Klipper v0.10.0 megjelent. 20210903: Az alap\u00e9rtelmezett smooth_time a f\u0171t\u0151berendez\u00e9sekhez 1 m\u00e1sodpercre v\u00e1ltozott (2 m\u00e1sodpercr\u0151l). A legt\u00f6bb nyomtat\u00f3n\u00e1l ez stabilabb h\u0151m\u00e9rs\u00e9klet-szab\u00e1lyoz\u00e1st eredm\u00e9nyez. 20210830: Az alap\u00e9rtelmezett adxl345 n\u00e9v mostant\u00f3l \"adxl345\". Az ACCELEROMETER_MEASURE \u00e9s ACCELEROMETER_QUERY alap\u00e9rtelmezett CHIP param\u00e9tere mostant\u00f3l szint\u00e9n \"adxl345\". 20210830: Az adxl345 ACCELEROMETER_MEASURE parancs m\u00e1r nem t\u00e1mogatja a RATE param\u00e9tert. A lek\u00e9rdez\u00e9si sebess\u00e9g m\u00f3dos\u00edt\u00e1s\u00e1hoz friss\u00edtse a printer.cfg f\u00e1jlt, \u00e9s adj ki egy RESTART parancsot. 20210821: A printer.configfile.settings t\u00f6bb konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sa mostant\u00f3l listak\u00e9nt lesz jelentve a nyers karakterl\u00e1ncok helyett. Ha a t\u00e9nyleges nyers karakterl\u00e1ncra van sz\u00fcks\u00e9g, haszn\u00e1ld helyette a printer.configfile.config -t. 20210819: Bizonyos esetekben egy G28 c\u00e9lba\u00e9r\u00e9si mozg\u00e1s olyan poz\u00edci\u00f3ban v\u00e9gz\u0151dhet, amely n\u00e9vlegesen az \u00e9rv\u00e9nyes mozg\u00e1si tartom\u00e1nyon k\u00edv\u00fcl esik. Ritka helyzetekben ez zavar\u00f3 \"Move out of range\" hib\u00e1kat eredm\u00e9nyezhet a kezd\u0151pont felv\u00e9tele ut\u00e1n. Ha ez el\u0151fordul, m\u00f3dos\u00edtsd az ind\u00edt\u00e1si szkripteket \u00fagy, hogy a nyomtat\u00f3fej a kezd\u0151pont felv\u00e9tel ut\u00e1n azonnal \u00e9rv\u00e9nyes poz\u00edci\u00f3ba ker\u00fclj\u00f6n. 20210814: Az atmega168 \u00e9s atmega328 csak anal\u00f3g pszeudo-t\u00fcsk\u00e9i PE0/PE1-r\u0151l PE2/PE3-ra lettek \u00e1tnevezve. 20210720: A controller_fan szakasz most m\u00e1r alap\u00e9rtelmez\u00e9s szerint az \u00f6sszes l\u00e9ptet\u0151motort figyeli (nem csak a kinematikus l\u00e9ptet\u0151motorokat). Ha a kor\u00e1bbi m\u0171k\u00f6d\u00e9st szeretn\u00e9nk, l\u00e1sd a konfigur\u00e1ci\u00f3s referencia -ban a stepper config opci\u00f3t. 20210703: A samd_sercom konfigur\u00e1ci\u00f3s szakasznak mostant\u00f3l meg kell adnia az \u00e1ltala konfigur\u00e1lt sercom buszt a sercom opci\u00f3val. 20210612: A pid_integral_max konfigur\u00e1ci\u00f3s opci\u00f3 a f\u0171t\u00e9s \u00e9s a temperature_fan szakaszokban elavult. Az opci\u00f3 a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fcl. 20210503: The gcode_macro default_parameter_<name> config option is deprecated. Use the params pseudo-variable to access macro parameters. Other methods for accessing macro parameters will be removed in the near future. Most users can replace a default_parameter_NAME: VALUE config option with a line like the following in the start of the macro: {% set NAME = params.NAME|default(VALUE)|float %} . See the Command Templates document for examples. 20210430: A SET_VELOCITY_LIMIT (\u00e9s az M204) parancs mostant\u00f3l a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott \u00e9rt\u00e9kekn\u00e9l nagyobb sebess\u00e9get, gyorsul\u00e1st \u00e9s square_corner_velocity-t is be\u00e1ll\u00edthat. 20210325: A pin_map config opci\u00f3 t\u00e1mogat\u00e1sa elavult. Haszn\u00e1ld a sample-aliases.cfg f\u00e1jlt a t\u00e9nyleges mikrokontroller t\u0171 nevekre val\u00f3 ford\u00edt\u00e1shoz. A pin_map config opci\u00f3 a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fcl. 20210313: A Klipper CAN-busszal kommunik\u00e1l\u00f3 mikrovez\u00e9rl\u0151k t\u00e1mogat\u00e1sa megv\u00e1ltozott. Ha CAN-buszt haszn\u00e1l, akkor az \u00f6sszes mikrokontrollert \u00fajra kell \u00e9getni \u00e9s a Klipper konfigur\u00e1ci\u00f3t friss\u00edteni kell . 20210310: A TMC2660 alap\u00e9rtelmezett driver_SFILT \u00e9rt\u00e9ke 1-r\u0151l 0-ra v\u00e1ltozott. 20210227: Az UART vagy SPI m\u00f3dban l\u00e9v\u0151 TMC l\u00e9ptet\u0151motor-meghajt\u00f3k mostant\u00f3l m\u00e1sodpercenk\u00e9nt egyszer lek\u00e9rdez\u00e9sre ker\u00fclnek, amikor enged\u00e9lyezve vannak. Ha a meghajt\u00f3val nem lehet kapcsolatba l\u00e9pni, vagy ha a meghajt\u00f3 hib\u00e1t jelent, akkor a Klipper le\u00e1ll\u00e1si \u00e1llapotba l\u00e9p. 20210219: Az rpi_temperature modult \u00e1tnevezt\u00fck temperature_host -ra. A sensor_type: rpi_temperature minden el\u0151fordul\u00e1s\u00e1t cser\u00e9lje ki sensor_type: temperature_host -ra. A h\u0151m\u00e9rs\u00e9kleti f\u00e1jl el\u00e9r\u00e9si \u00fatvonal\u00e1t a sensor_path config v\u00e1ltoz\u00f3ban lehet megadni. Az rpi_temperature n\u00e9v elavult, \u00e9s a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fcl. 20210201: A TEST_RESONANCES parancs mostant\u00f3l letiltja a bemeneti alak\u00edt\u00e1st, ha az kor\u00e1bban enged\u00e9lyezve volt (\u00e9s a teszt ut\u00e1n \u00fajra enged\u00e9lyezi). Ennek a viselked\u00e9snek a fel\u00fcl\u00edr\u00e1sa \u00e9s a bemeneti alak\u00edt\u00e1s enged\u00e9lyezve tart\u00e1sa \u00e9rdek\u00e9ben egy tov\u00e1bbi INPUT_SHAPING=1 param\u00e9tert adhatunk \u00e1t a parancsnak. 20210201: Az ACCELEROMETER_MEASURE parancs mostant\u00f3l a kimeneti f\u00e1jl nev\u00e9hez hozz\u00e1adja a gyorsul\u00e1sm\u00e9r\u0151 chip nev\u00e9t, ha a chipnek a printer.cfg megfelel\u0151 adxl345 szakasz\u00e1ban adtak nevet. 20201222: A step_distance be\u00e1ll\u00edt\u00e1s a stepper config szakaszokban elavult. Javasoljuk, hogy friss\u00edtse a konfigur\u00e1ci\u00f3t a rotation_distance be\u00e1ll\u00edt\u00e1s haszn\u00e1lat\u00e1ra. A step_distance t\u00e1mogat\u00e1sa a k\u00f6zelj\u00f6v\u0151ben megsz\u0171nik. 20201218: Az endstop_phase modulban az endstop_phase be\u00e1ll\u00edt\u00e1s hely\u00e9be a trigger_phase be\u00e1ll\u00edt\u00e1s l\u00e9pett. Ha az endstop phase modult haszn\u00e1lod, akkor \u00e1t kell konvert\u00e1lni a rotation_distance \u00e9rt\u00e9kre, \u00e9s az ENDSTOP_PHASE_CALIBRATE parancs futtat\u00e1s\u00e1val \u00fajra kell kalibr\u00e1lni az esetleges endstop f\u00e1zisokat. 20201218: A forg\u00f3 delta- \u00e9s pol\u00e1rnyomtat\u00f3knak mostant\u00f3l meg kell adniuk egy gear_ratio param\u00e9tert a forg\u00f3 l\u00e9ptet\u0151ikhez, \u00e9s t\u00f6bb\u00e9 nem adhatnak meg step_distance param\u00e9tert. Az \u00faj gear_ratio param\u00e9ter form\u00e1tum\u00e1t l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1s dokumentumban. 20201213: A \"probe:z_virtual_endstop\" haszn\u00e1latakor nem \u00e9rv\u00e9nyes a Z \"position_endstop\" megad\u00e1sa. Mostant\u00f3l hiba\u00fczenet jelenik meg, ha Z \"position_endstop\" van megadva a \"probe:z_virtual_endstop\" haszn\u00e1lat\u00e1val. A hiba kijav\u00edt\u00e1s\u00e1hoz t\u00e1vol\u00edtsa el a Z \"position_endstop\" meghat\u00e1roz\u00e1st. 20201120: A [board_pins] config szakasz most m\u00e1r explicit mcu: param\u00e9terben add meg az MCU nev\u00e9t. Ha board_pins-t haszn\u00e1lunk egy m\u00e1sodlagos MCU-hoz, akkor a configot friss\u00edteni kell, hogy megadd ezt a nevet. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s referenci\u00e1t . 20201112: A print_stats.print_duration \u00e1ltal bejelentett id\u0151 megv\u00e1ltozott. Az els\u0151 \u00e9szlelt extrud\u00e1l\u00e1s el\u0151tti id\u0151tartamot mostant\u00f3l nem veszi figyelembe. 20201029: A neopixel color_order_GRB config opci\u00f3t elt\u00e1vol\u00edtottuk. Sz\u00fcks\u00e9g eset\u00e9n friss\u00edtse a configot, hogy az \u00faj color_order opci\u00f3t RGB, GRB, RGBW vagy GRBW \u00e9rt\u00e9kre \u00e1ll\u00edtsd be. 20201029: A serial opci\u00f3 az mcu config szakaszban m\u00e1r nem /dev/ttyS0 az alap\u00e9rtelmezett \u00e9rt\u00e9k. Abban a ritka helyzetben, amikor a /dev/ttyS0 a k\u00edv\u00e1nt soros port, azt kifejezetten meg kell adni. 20201020: Klipper v0.9.0 megjelent. 20200902: A MAX31865 \u00e1talak\u00edt\u00f3k RTD ellen\u00e1ll\u00e1s-h\u0151m\u00e9rs\u00e9klet sz\u00e1m\u00edt\u00e1sa jav\u00edt\u00e1sra ker\u00fclt, hogy ne legyen alacsony. Ha ilyen eszk\u00f6zt haszn\u00e1l, akkor kalibr\u00e1lja \u00fajra a nyomtat\u00e1si h\u0151m\u00e9rs\u00e9kletet \u00e9s a PID-be\u00e1ll\u00edt\u00e1sokat. 20200816: A G-k\u00f3d makr\u00f3 printer.gcode objektumot \u00e1tnevezt\u00fck printer.gcode_move objektumra. A printer.toolhead \u00e9s printer.gcode objektumokb\u00f3l t\u00f6bb nem dokument\u00e1lt v\u00e1ltoz\u00f3t elt\u00e1vol\u00edtottunk. A rendelkez\u00e9sre \u00e1ll\u00f3 sablonv\u00e1ltoz\u00f3k list\u00e1j\u00e1t l\u00e1sd a docs/Command_Templates.md f\u00e1jlban. 20200816: A G-k\u00f3d makr\u00f3 \"action_\" rendszere megv\u00e1ltozott. Cser\u00e9lje ki a printer.gcode.action_emergency_stop() h\u00edv\u00e1sokat action_emergency_stop() , printer.gcode.action_respond_info() a action_respond_info() , \u00e9s printer.gcode.action_respond_error() a action_raise_error() -el. 20200809: A men\u00fcrendszer \u00e1t\u00edr\u00e1sra ker\u00fclt. Ha a men\u00fct testre szabt\u00e1k, akkor friss\u00edteni kell az \u00faj konfigur\u00e1ci\u00f3ra. A konfigur\u00e1ci\u00f3 r\u00e9szletei\u00e9rt l\u00e1sd a config/example-menu.cfg f\u00e1jlt, a p\u00e9ld\u00e1k\u00e9rt pedig a klippy/extras/display/menu.cfg f\u00e1jlt. 20200731: A progress attrib\u00fatum viselked\u00e9se megv\u00e1ltozott, amelyet a virtual_sdcard nyomtat\u00f3objektum jelentett. A nyomtat\u00e1s sz\u00fcneteltet\u00e9sekor a Progress m\u00e1r nem \u00e1ll vissza 0-ra. Mostant\u00f3l mindig a bels\u0151 f\u00e1jl poz\u00edci\u00f3ja alapj\u00e1n jelenti a halad\u00e1st. Vagy 0, ha nincs bet\u00f6ltve f\u00e1jl. 20200725: A szervo enable konfigur\u00e1ci\u00f3s param\u00e9ter \u00e9s a SET_SERVO ENABLE param\u00e9ter elt\u00e1vol\u00edt\u00e1sra ker\u00fclt. Friss\u00edts minden makr\u00f3t, hogy a SET_SERVO SERVO=my_servo WIDTH=0 param\u00e9tert haszn\u00e1ld a szerv\u00f3 letilt\u00e1s\u00e1hoz. 20200608: Az LCD-kijelz\u0151 t\u00e1mogat\u00e1sa megv\u00e1ltoztatta n\u00e9h\u00e1ny bels\u0151 \"\u00edr\u00e1sjel\" nev\u00e9t. Ha egy\u00e9ni kijelz\u0151 elrendez\u00e9s ker\u00fclt implement\u00e1l\u00e1sra, akkor sz\u00fcks\u00e9ges lehet friss\u00edteni a leg\u00fajabb gliph nevekre (l\u00e1sd klippy/extras/display/display.cfg az el\u00e9rhet\u0151 gliph-ek list\u00e1j\u00e1t). 20200606: A linux MCU t\u0171 nevei megv\u00e1ltoztak. A t\u0171nevek mostant\u00f3l a gpiochip<chipid>/gpio<gpio> form\u00e1j\u00faak. A gpiochip0 eset\u00e9ben egy r\u00f6vid gpio<gpio> is haszn\u00e1lhat\u00f3. P\u00e9ld\u00e1ul, amire kor\u00e1bban P20 n\u00e9ven hivatkoztunk, az most gpio20 vagy gpiochip0/gpio20 lesz. 20200603: Az alap\u00e9rtelmezett 16x4-es LCD kijelz\u0151n m\u00e1r nem jelenik meg a nyomtat\u00e1sb\u00f3l h\u00e1tral\u00e9v\u0151 becs\u00fclt id\u0151. (Csak az eltelt id\u0151 jelenik meg.) Ha a r\u00e9gi m\u0171k\u00f6d\u00e9st szeretn\u00e9nk, akkor a men\u00fc kijelz\u0151j\u00e9t testre lehet szabni ezzel az inform\u00e1ci\u00f3val (a r\u00e9szletek\u00e9rt l\u00e1sd a config/example-extras.cfg f\u00e1jlban a display_data le\u00edr\u00e1s\u00e1t). 20200531: Az alap\u00e9rtelmezett USB gy\u00e1rt\u00f3/term\u00e9k azonos\u00edt\u00f3 mostant\u00f3l 0x1d50/0x614e. Ezek az \u00faj azonos\u00edt\u00f3k a Klipper sz\u00e1m\u00e1ra vannak fenntartva (k\u00f6sz\u00f6net az openmoko projektnek). Ez a v\u00e1ltoz\u00e1s nem ig\u00e9nyel semmilyen konfigur\u00e1ci\u00f3s m\u00f3dos\u00edt\u00e1st, de az \u00faj azonos\u00edt\u00f3k megjelenhetnek a rendszer napl\u00f3iban. 20200524: A TMC5160 pwm_freq mez\u0151 alap\u00e9rtelmezett \u00e9rt\u00e9ke mostant\u00f3l nulla (egy helyett). 20200425: A gcode_macro parancs sablonv\u00e1ltoz\u00f3ja printer.heater \u00e1t lett nevezve printer.heaters -re. 20200313: A 16x4-es k\u00e9perny\u0151vel \u00e9s a t\u00f6bb extruderrel rendelkez\u0151 nyomtat\u00f3k alap\u00e9rtelmezett LCD-kioszt\u00e1sa megv\u00e1ltozott. Mostant\u00f3l az egy extruderrel rendelkez\u0151 k\u00e9perny\u0151 elrendez\u00e9se az alap\u00e9rtelmezett, \u00e9s az aktu\u00e1lisan akt\u00edv extrudert mutatja. A kor\u00e1bbi kijelz\u0151 elrendez\u00e9s haszn\u00e1lat\u00e1hoz \u00e1ll\u00edtsd be a \"display_group: _multiextruder_16x4\" a printer.cfg f\u00e1jl [display] szakasz\u00e1ban. 20200308: Az alap\u00e9rtelmezett __test men\u00fcpont elt\u00e1vol\u00edt\u00e1sra ker\u00fclt. Ha a konfigur\u00e1ci\u00f3s f\u00e1jlban egy\u00e9ni men\u00fc van, akkor mindenk\u00e9ppen t\u00e1vol\u00edtson el minden hivatkoz\u00e1st erre a __test men\u00fcpontra. 20200308: A \"pakli\" \u00e9s \"k\u00e1rtya\" men\u00fcpontok elt\u00e1vol\u00edt\u00e1sra ker\u00fcltek. Az LCD k\u00e9perny\u0151 elrendez\u00e9s\u00e9nek testreszab\u00e1s\u00e1hoz haszn\u00e1ld az \u00faj display_data config szakaszokat (a r\u00e9szletek\u00e9rt l\u00e1sd a config/example-extras.cfg f\u00e1jlt). 20200109: A bed_mesh modul most m\u00e1r hivatkozik a szonda hely\u00e9re a h\u00e1l\u00f3konfigur\u00e1ci\u00f3ban. Ennek megfelel\u0151en n\u00e9h\u00e1ny konfigur\u00e1ci\u00f3s opci\u00f3t \u00e1tneveztek, hogy pontosabban t\u00fckr\u00f6zze a tervezett funkci\u00f3jukat. T\u00e9glalap alak\u00fa t\u00e1rgyasztalok eset\u00e9ben a min_point \u00e9s max_point \u00e1tnevez\u00e9sre ker\u00fclt mesh_min \u00e9s mesh_max -ra. A kerek t\u00e1rgyasztalok eset\u00e9ben a bed_radius \u00e1t lett nevezve mesh_radius -ra. A kerek t\u00e1rgyasztalokhoz egy \u00faj mesh_origin opci\u00f3 is hozz\u00e1 lett adva. Vedd figyelembe, hogy ezek a v\u00e1ltoz\u00e1sok a kor\u00e1bban elmentett h\u00e1l\u00f3profilokkal is inkompatibilisek. Ha egy inkompatibilis profilt \u00e9szlel\u00fcnk, azt figyelmen k\u00edv\u00fcl hagyjuk \u00e9s elt\u00e1vol\u00edt\u00e1sra \u00fctemezz\u00fck. Az elt\u00e1vol\u00edt\u00e1si folyamat a SAVE_CONFIG parancs kiad\u00e1s\u00e1val fejezhet\u0151 be. A felhaszn\u00e1l\u00f3nak minden egyes profilt \u00fajra kell kalibr\u00e1lnia. 20191218: A display config szakasz m\u00e1r nem t\u00e1mogatja az \"lcd_type: st7567\". Haszn\u00e1ld helyette az \"uc1701\" kijelz\u0151t\u00edpust. \u00c1ll\u00edtsd be az \"lcd_type: uc1701\" \u00e9rt\u00e9ket, \u00e9s m\u00f3dos\u00edtsd az \"rs_pin: some_pin\" \u00e9rt\u00e9ket \"rst_pin: some_pin\" \u00e9rt\u00e9kre. Sz\u00fcks\u00e9g lehet m\u00e9g egy \"contrast: 60\" konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1s hozz\u00e1ad\u00e1s\u00e1ra. 20191210: A be\u00e9p\u00edtett T0, T1, T2, ... parancsok elt\u00e1vol\u00edt\u00e1sra ker\u00fcltek. Az extruder activate_gcode \u00e9s deactivate_gcode konfigur\u00e1ci\u00f3s opci\u00f3k elt\u00e1vol\u00edt\u00e1sra ker\u00fcltek. Ha sz\u00fcks\u00e9g van ezekre a parancsokra (\u00e9s szkriptekre), akkor defini\u00e1ljon egyedi [gcode_macro T0] st\u00edlus\u00fa makr\u00f3kat, amelyek megh\u00edvj\u00e1k az ACTIVATE_EXTRUDER parancsot. P\u00e9ld\u00e1k\u00e9rt l\u00e1sd a config/sample-idex.cfg \u00e9s sample-multi-extruder.cfg f\u00e1jlokat. 20191210: Az M206 parancs t\u00e1mogat\u00e1sa megsz\u0171nt. A SET_GCODE_OFFSET h\u00edv\u00e1s\u00e1val helyettes\u00edtj\u00fck. Ha sz\u00fcks\u00e9g van az M206 t\u00e1mogat\u00e1s\u00e1ra, adjunk hozz\u00e1 egy [gcode_macro M206] config szakaszt, amely megh\u00edvja a SET_GCODE_OFFSET-et. (P\u00e9ld\u00e1ul \"SET_GCODE_OFFSET Z=-{params.Z}\".) 20191202: A \"G4\" parancs nem dokument\u00e1lt \"S\" param\u00e9ter\u00e9nek t\u00e1mogat\u00e1sa megsz\u0171nt. Az S minden el\u0151fordul\u00e1s\u00e1t a szabv\u00e1nyos \"P\" param\u00e9terrel helyettes\u00edti (a milliszekundumokban megadott k\u00e9sleltet\u00e9s). 20191126: Az USB nevek megv\u00e1ltoztak a nat\u00edv USB-t\u00e1mogat\u00e1ssal rendelkez\u0151 mikrovez\u00e9rl\u0151k\u00f6n. Mostant\u00f3l alap\u00e9rtelmez\u00e9s szerint egyedi chip-azonos\u00edt\u00f3t haszn\u00e1lnak (ahol van ilyen). Ha egy \"MCU\" config szakasz olyan \"serial\" be\u00e1ll\u00edt\u00e1st haszn\u00e1l, amely \"/dev/serial/by-id/\" kezdet\u0171, akkor sz\u00fcks\u00e9g lehet a config friss\u00edt\u00e9s\u00e9re. Futtassa a \"ls /dev/serial/by-id/*\" parancsot egy SSH termin\u00e1lban az \u00faj azonos\u00edt\u00f3 meghat\u00e1roz\u00e1s\u00e1hoz. 20191121: A pressure_advance_lookahead_time param\u00e9tert elt\u00e1vol\u00edtottuk. Az alternat\u00edv konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sokat l\u00e1sd a example.cfg f\u00e1jlban. 20191112: A TMC l\u00e9ptet\u0151 vez\u00e9rl\u0151 virtu\u00e1lis enged\u00e9lyez\u00e9si k\u00e9pess\u00e9ge mostant\u00f3l automatikusan enged\u00e9lyezve van, ha a l\u00e9ptet\u0151 nem rendelkezik dedik\u00e1lt l\u00e9ptet\u0151 enged\u00e9lyez\u0151 t\u0171vel. A tmcXXXX:virtual_enable-re val\u00f3 hivatkoz\u00e1sok elt\u00e1vol\u00edt\u00e1sa a konfigur\u00e1ci\u00f3b\u00f3l. A stepper enable_pin konfigur\u00e1ci\u00f3ban t\u00f6bb t\u0171 vez\u00e9rl\u00e9s\u00e9nek lehet\u0151s\u00e9ge megsz\u0171nt. Ha t\u00f6bb t\u0171re van sz\u00fcks\u00e9g, akkor haszn\u00e1lj egy multi_pin config szekci\u00f3t. 20191107: Az els\u0151dleges extruder konfigur\u00e1ci\u00f3s szakasz\u00e1t \"extruder\" n\u00e9ven kell megadni, \u00e9s m\u00e1r nem lehet \"extruder0\" n\u00e9ven megadni. Az extruder \u00e1llapot\u00e1t lek\u00e9rdez\u0151 G-k\u00f3d parancssablonokat mostant\u00f3l a \"{printer.extruder}\" seg\u00edts\u00e9g\u00e9vel lehet el\u00e9rni. 20191021: Klipper v0.8.0 megjelent 20191003: A move_to_previous opci\u00f3 a [safe_z_homing]-ban mostant\u00f3l alap\u00e9rtelmez\u00e9s szerint False. (A 20190918 el\u0151tt t\u00e9nylegesen False volt.) 20190918: A z-hop opci\u00f3 a [safe_z_homing]-ban mindig \u00fajra alkalmaz\u00e1sra ker\u00fcl, miut\u00e1n a Z tengelyre t\u00f6rt\u00e9n\u0151 homing befejez\u0151d\u00f6tt. Ez sz\u00fcks\u00e9gess\u00e9 teheti a felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra, hogy friss\u00edts\u00e9k az ezen a modulon alapul\u00f3 egy\u00e9ni szkripteket. 20190806: A SET_NEOPIXEL parancsot \u00e1tnevezt\u00e9k SET_LED-re. 20190726: Az mcp4728 digit\u00e1lis-anal\u00f3g k\u00f3dja megv\u00e1ltozott. Az alap\u00e9rtelmezett i2c_address most 0x60, \u00e9s a fesz\u00fclts\u00e9greferencia most az mcp4728's bels\u0151 2,048 voltos referenci\u00e1hoz viszony\u00edtva van. 20190710: A [firmware_retract] konfigur\u00e1ci\u00f3s szakaszb\u00f3l elt\u00e1vol\u00edtott\u00e1k a z_hop opci\u00f3t. A z_hop t\u00e1mogat\u00e1sa hi\u00e1nyos volt, \u00e9s t\u00f6bb gyakori szeletel\u0151vel hib\u00e1s viselked\u00e9st okozott. 20190710: A PROBE_ACCURACY parancs opcion\u00e1lis param\u00e9terei megv\u00e1ltoztak. Sz\u00fcks\u00e9g lehet a parancsot haszn\u00e1l\u00f3 makr\u00f3k vagy szkriptek friss\u00edt\u00e9s\u00e9re. 20190628: A [skew_correction] szakaszb\u00f3l elt\u00e1vol\u00edtottuk az \u00f6sszes konfigur\u00e1ci\u00f3s opci\u00f3t. A skew_correction konfigur\u00e1l\u00e1sa mostant\u00f3l a SET_SKEW G-k\u00f3don kereszt\u00fcl t\u00f6rt\u00e9nik. L\u00e1sd a Ferdes\u00e9g Korrekci\u00f3 aj\u00e1nlott haszn\u00e1lat\u00e1t. 20190607: A gcode_macro \"variable_X\" param\u00e9terei (a SET_GCODE_VARIABLE VALUE param\u00e9ter\u00e9vel egy\u00fctt) mostant\u00f3l Python liter\u00e1lokk\u00e9nt ker\u00fclnek \u00e9rtelmez\u00e9sre. Ha egy \u00e9rt\u00e9khez karakterl\u00e1ncot kell rendelni, akkor csomagolja az \u00e9rt\u00e9ket id\u00e9z\u0151jelekbe, hogy karakterl\u00e1nck\u00e9nt ker\u00fclj\u00f6n ki\u00e9rt\u00e9kel\u00e9sre. 20190606: A \"samples\", \"samples_result\" \u00e9s \"sample_retract_dist\" konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sok \u00e1tker\u00fcltek a \"probe\" konfigur\u00e1ci\u00f3s szakaszba. Ezek az opci\u00f3k m\u00e1r nem t\u00e1mogatottak a \"delta_calibrate\", \"bed_tilt\", \"bed_mesh\", \"screws_tilt_adjust\", \"z_tilt\", vagy \"quad_gantry_level\" config szakaszokban. 20190528: A gcode_macro sablon ki\u00e9rt\u00e9kel\u00e9s\u00e9ben a m\u00e1gikus \"status\" v\u00e1ltoz\u00f3t \u00e1tnevezt\u00fck \"printer\" -re. 20190520: A SET_GCODE_OFFSET parancs megv\u00e1ltozott; ennek megfelel\u0151en friss\u00edtse a G-k\u00f3d makr\u00f3kat. A parancs m\u00e1r nem alkalmazza a k\u00e9rt eltol\u00e1st a k\u00f6vetkez\u0151 G1 parancsra. A r\u00e9gi viselked\u00e9s megk\u00f6zel\u00edthet\u0151 az \u00faj \"MOVE=1\" param\u00e9ter haszn\u00e1lat\u00e1val. 20190404: A Python gazda szoftvercsomagok friss\u00edt\u00e9sre ker\u00fcltek. A felhaszn\u00e1l\u00f3knak \u00fajra kell futtatniuk a ~/klipper/scripts/install-octopi.sh szkriptet (vagy m\u00e1s m\u00f3don friss\u00edteni\u00fck kell a python f\u00fcgg\u0151s\u00e9geket, ha nem standard OctoPi telep\u00edt\u00e9st haszn\u00e1lnak). 20190404: Az i2c_bus \u00e9s spi_bus param\u00e9terek (a k\u00fcl\u00f6nb\u00f6z\u0151 konfigur\u00e1ci\u00f3s szakaszokban) mostant\u00f3l sz\u00e1m helyett busznevet fogadnak el. 20190404: Az sx1509 konfigur\u00e1ci\u00f3s param\u00e9terei megv\u00e1ltoztak. Az 'address' param\u00e9ter mostant\u00f3l 'i2c_address', \u00e9s decim\u00e1lis sz\u00e1mk\u00e9nt kell megadni. A kor\u00e1bban haszn\u00e1lt 0x3E helyett 62-t kell megadni. 20190328: A [temperature_fan] konfigur\u00e1ci\u00f3ban megadott min_speed \u00e9rt\u00e9ket mostant\u00f3l tiszteletben tartjuk, \u00e9s a ventil\u00e1tor PID \u00fczemm\u00f3dban mindig ezen vagy ann\u00e1l magasabb fordulatsz\u00e1mon fog m\u0171k\u00f6dni. 20190322: A \"driver_HEND\" alap\u00e9rtelmezett \u00e9rt\u00e9ke a [tmc2660] konfigur\u00e1ci\u00f3s szakaszokban 6-r\u00f3l 3-ra v\u00e1ltozott. A \"driver_VSENSE\" mez\u0151t elt\u00e1vol\u00edtottuk (mostant\u00f3l automatikusan a run_current-b\u0151l sz\u00e1m\u00edtj\u00e1k ki). 20190310: A [controller_fan] config szakasz mostant\u00f3l mindig kap egy nevet (p\u00e9ld\u00e1ul [controller_fan my_controller_fan]). 20190308: A [tmc2130] \u00e9s [tmc2208] konfigur\u00e1ci\u00f3s szakaszok \"driver_BLANK_TIME_SELECT\" mez\u0151je \u00e1t lett nevezve \"driver_TBL\" -re. 20190308: A [tmc2660] config szakasz megv\u00e1ltozott. Mostant\u00f3l egy \u00faj sense_resistor config param\u00e9tert kell megadni. A driver_XXX param\u00e9terek k\u00f6z\u00fcl t\u00f6bbnek a jelent\u00e9se is megv\u00e1ltozott. 20190228: A SAMD21 k\u00e1rty\u00e1kon SPI vagy I2C-t haszn\u00e1l\u00f3knak mostant\u00f3l a [samd_sercom] config szakaszban kell megadniuk a BUSZ csatlakoz\u00e1sait. 20190224: A bed_shape opci\u00f3t elt\u00e1vol\u00edtottuk a bed_mesh-b\u0151l. A radius opci\u00f3t \u00e1tnevezt\u00fck bed_radiusra. A kerek t\u00e1rgyasztalokkal rendelkez\u0151 felhaszn\u00e1l\u00f3knak a bed_radius \u00e9s a round_probe_count opci\u00f3kat kell megadniuk. 20190107: Az i2c_address param\u00e9ter az mcp4451 config szakaszban megv\u00e1ltozott. Ez egy gyakori be\u00e1ll\u00edt\u00e1s a Smoothie alaplapokon. Az \u00faj \u00e9rt\u00e9k a r\u00e9gi \u00e9rt\u00e9k fele (a 88-as \u00e9rt\u00e9ket 44-re, a 90-es \u00e9rt\u00e9ket pedig 45-re kell m\u00f3dos\u00edtani). 20181220: Klipper v0.7.0 megjelent","title":"Konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00e1sok"},{"location":"Config_Changes.html#konfiguracios-valtozasok","text":"Ez a dokumentum a konfigur\u00e1ci\u00f3s f\u00e1jl leg\u00fajabb szoftveres v\u00e1ltoztat\u00e1sait tartalmazza, amelyek nem kompatibilisek visszafel\u00e9. A Klipper szoftver friss\u00edt\u00e9sekor \u00e9rdemes \u00e1ttanulm\u00e1nyozni ezt a dokumentumot. A dokumentumban szerepl\u0151 valamennyi d\u00e1tum hozz\u00e1vet\u0151leges.","title":"Konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00e1sok"},{"location":"Config_Changes.html#valtozasok","text":"20220616: Kor\u00e1bban egy rp2040-et bootloader m\u00f3dban lehetett \u00e9getni a make flash FLASH_DEVICE=first futtat\u00e1s\u00e1val. Az ezzel egyen\u00e9rt\u00e9k\u0171 parancs mostant\u00f3l make flash FLASH_DEVICE=2e8a:0003 . 20220612: Az rp2040 mikrokontroller mostant\u00f3l rendelkezik a \"rp2040-e5\" USB hiba elh\u00e1r\u00edt\u00e1s\u00e1val. Ez megb\u00edzhat\u00f3bb\u00e1 teszi a kezdeti USB-kapcsolatokat. Ez azonban a GPIO15 t\u0171 viselked\u00e9s\u00e9nek megv\u00e1ltoz\u00e1s\u00e1t eredm\u00e9nyezheti. Nem val\u00f3sz\u00edn\u0171, hogy a GPIO15 viselked\u00e9s\u00e9nek v\u00e1ltoz\u00e1sa \u00e9szrevehet\u0151 lesz. 20220407: A temperature_fan pid_integral_max konfigur\u00e1ci\u00f3s opci\u00f3t elt\u00e1vol\u00edtottuk (a 20210612-es verzi\u00f3val elavult). 20220407: A pca9632 LED-ek alap\u00e9rtelmezett sz\u00ednsorrendje mostant\u00f3l \"RGBW\". Adjunk hozz\u00e1 egy explicit color_ordert: RBGW be\u00e1ll\u00edt\u00e1st a pca9632 konfigur\u00e1ci\u00f3s szakasz\u00e1ba a kor\u00e1bbi m\u0171k\u00f6d\u00e9s vissza\u00e1ll\u00edt\u00e1s\u00e1hoz. 20220330: A printer.neopixel.color_data \u00e1llapotinform\u00e1ci\u00f3 form\u00e1tuma megv\u00e1ltozott a neopixel \u00e9s dotstar modulok eset\u00e9ben. Az inform\u00e1ci\u00f3 mostant\u00f3l sz\u00ednlist\u00e1k list\u00e1jak\u00e9nt t\u00e1rol\u00f3dik (sz\u00f3t\u00e1rak list\u00e1ja helyett). A r\u00e9szletek\u00e9rt l\u00e1sd az \u00e1llapot hivatkoz\u00e1s c\u00edm\u0171 dokumentumot. 20220307: M73 m\u00e1r nem \u00e1ll\u00edtja 0-ra a nyomtat\u00e1s el\u0151rehalad\u00e1s\u00e1t, ha P hi\u00e1nyzik. 20220304: Az extruder_stepper konfigur\u00e1ci\u00f3s szakaszok extruder param\u00e9tere m\u00e1r nem alap\u00e9rtelmezett. Ha sz\u00fcks\u00e9ges, add meg kifejezetten az extruder: extruder param\u00e9tert, hogy a l\u00e9ptet\u0151motort ind\u00edt\u00e1skor az \"extruder\" mozg\u00e1ssorhoz t\u00e1rs\u00edtsa. 20220210: A SYNC_STEPPER_TO_EXTRUDER parancs elavult; a SET_EXTRUDER_STEP_DISTANCE parancs elavult; az extruder shared_heater config opci\u00f3 elavult. Ezek a funkci\u00f3k a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fclnek. A SET_EXTRUDER_STEP_DISTANCE helyett SET_EXTRUDER_ROTATION_DISTANCE . Cser\u00e9lje ki a SYNC_STEPPER_TO_EXTRUDER \u00e9rt\u00e9ket a SYNC_EXTRUDER_MOTION \u00e9rt\u00e9kre. Cser\u00e9lje ki a shared_heater extruder konfigur\u00e1ci\u00f3s szakaszokat extruder_stepper konfigur\u00e1ci\u00f3s szakaszokra, \u00e9s friss\u00edtse az aktiv\u00e1l\u00e1si makr\u00f3kat a SYNC_EXTRUDER_MOTION haszn\u00e1lat\u00e1ra. 20220116: A tmc2130, tmc2208, tmc2209 \u00e9s tmc2660 run_current sz\u00e1m\u00edt\u00e1si k\u00f3d megv\u00e1ltozott. Egyes run_current be\u00e1ll\u00edt\u00e1sokn\u00e1l az illeszt\u0151programok most m\u00e1sk\u00e9pp konfigur\u00e1lhat\u00f3k. Ennek az \u00faj konfigur\u00e1ci\u00f3nak pontosabbnak kell lennie, de \u00e9rv\u00e9nytelen\u00edtheti a kor\u00e1bbi TMC illeszt\u0151program-hangol\u00e1st. 20211230: A bemeneti alak\u00edt\u00f3 hangol\u00e1s\u00e1ra szolg\u00e1l\u00f3 szkriptek ( scripts/calibrate_shaper.py \u00e9s scripts/graph_accelerometer.py ) alap\u00e9rtelmez\u00e9s szerint Python3-at haszn\u00e1lnak. Ennek eredm\u00e9nyek\u00e9ppen a felhaszn\u00e1l\u00f3knak telep\u00edteni\u00fck kell bizonyos csomagok Python3 verzi\u00f3it (pl. sudo apt install python3-numpy python3-matplotlib ), hogy tov\u00e1bbra is haszn\u00e1lni tudj\u00e1k ezeket a szkripteket. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a Szoftvertelep\u00edt\u00e9s c\u00edm\u0171 r\u00e9szt. Alternat\u00edvak\u00e9nt a felhaszn\u00e1l\u00f3k ideiglenesen kik\u00e9nyszer\u00edthetik ezeknek a szkripteknek a Python 2 alatti v\u00e9grehajt\u00e1s\u00e1t a Python2 interpretor explicit megh\u00edv\u00e1s\u00e1val a konzolon: python2 ~/klipper/scripts/calibrate_shaper.py ... 20211110: Az \"NTC 100K beta 3950\" h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 elavult. Ez az \u00e9rz\u00e9kel\u0151 a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fcl. A legt\u00f6bb felhaszn\u00e1l\u00f3 a \"Generic 3950\" h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151t pontosabbnak fogja tal\u00e1lni. Ha tov\u00e1bbra is a r\u00e9gebbi (jellemz\u0151en kev\u00e9sb\u00e9 pontos) defin\u00edci\u00f3t szeretn\u00e9d haszn\u00e1lni, defini\u00e1ljon egy egy\u00e9ni termisztort a temperature1: 25 , resistance1: 100000 , \u00e9s beta: 3950 \u00e9rt\u00e9keken. 20211104: A \"step pulse duration\" opci\u00f3 a \"make menuconfig\" men\u00fcb\u0151l elt\u00e1vol\u00edt\u00e1sra ker\u00fclt. Az UART vagy SPI m\u00f3dban konfigur\u00e1lt TMC-meghajt\u00f3k alap\u00e9rtelmezett l\u00e9p\u00e9simpulzus id\u0151tartama mostant\u00f3l 100ns. Egy \u00faj step_pulse_duration be\u00e1ll\u00edt\u00e1st kell megadni a stepper config szakaszban minden olyan stepper eset\u00e9ben, amely egy\u00e9ni impulzus id\u0151tartamot ig\u00e9nyel. 20211102: Sz\u00e1mos elavult funkci\u00f3t elt\u00e1vol\u00edtottunk. A l\u00e9ptet\u0151 step_distance opci\u00f3t elt\u00e1vol\u00edtottuk (20201222-t\u0151l elavult). Az rpi_temperature \u00e9rz\u00e9kel\u0151 \u00e1ln\u00e9v elt\u00e1vol\u00edt\u00e1sra ker\u00fclt (elavult 20210219). Az MCU pin_map opci\u00f3 elt\u00e1vol\u00edt\u00e1sra ker\u00fclt (elavult 20210325). A gcode_macro default_parameter_<name> \u00e9s a parancsparam\u00e9terekhez val\u00f3, params pszeudov\u00e1ltoz\u00f3t\u00f3l elt\u00e9r\u0151 makr\u00f3hoz val\u00f3 hozz\u00e1f\u00e9r\u00e9s elt\u00e1vol\u00edt\u00e1sra ker\u00fclt (elavult 20210503). A f\u0171t\u00e9s pid_integral_max opci\u00f3t elt\u00e1vol\u00edtottuk (elavult 20210612). 20210929: Klipper v0.10.0 megjelent. 20210903: Az alap\u00e9rtelmezett smooth_time a f\u0171t\u0151berendez\u00e9sekhez 1 m\u00e1sodpercre v\u00e1ltozott (2 m\u00e1sodpercr\u0151l). A legt\u00f6bb nyomtat\u00f3n\u00e1l ez stabilabb h\u0151m\u00e9rs\u00e9klet-szab\u00e1lyoz\u00e1st eredm\u00e9nyez. 20210830: Az alap\u00e9rtelmezett adxl345 n\u00e9v mostant\u00f3l \"adxl345\". Az ACCELEROMETER_MEASURE \u00e9s ACCELEROMETER_QUERY alap\u00e9rtelmezett CHIP param\u00e9tere mostant\u00f3l szint\u00e9n \"adxl345\". 20210830: Az adxl345 ACCELEROMETER_MEASURE parancs m\u00e1r nem t\u00e1mogatja a RATE param\u00e9tert. A lek\u00e9rdez\u00e9si sebess\u00e9g m\u00f3dos\u00edt\u00e1s\u00e1hoz friss\u00edtse a printer.cfg f\u00e1jlt, \u00e9s adj ki egy RESTART parancsot. 20210821: A printer.configfile.settings t\u00f6bb konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sa mostant\u00f3l listak\u00e9nt lesz jelentve a nyers karakterl\u00e1ncok helyett. Ha a t\u00e9nyleges nyers karakterl\u00e1ncra van sz\u00fcks\u00e9g, haszn\u00e1ld helyette a printer.configfile.config -t. 20210819: Bizonyos esetekben egy G28 c\u00e9lba\u00e9r\u00e9si mozg\u00e1s olyan poz\u00edci\u00f3ban v\u00e9gz\u0151dhet, amely n\u00e9vlegesen az \u00e9rv\u00e9nyes mozg\u00e1si tartom\u00e1nyon k\u00edv\u00fcl esik. Ritka helyzetekben ez zavar\u00f3 \"Move out of range\" hib\u00e1kat eredm\u00e9nyezhet a kezd\u0151pont felv\u00e9tele ut\u00e1n. Ha ez el\u0151fordul, m\u00f3dos\u00edtsd az ind\u00edt\u00e1si szkripteket \u00fagy, hogy a nyomtat\u00f3fej a kezd\u0151pont felv\u00e9tel ut\u00e1n azonnal \u00e9rv\u00e9nyes poz\u00edci\u00f3ba ker\u00fclj\u00f6n. 20210814: Az atmega168 \u00e9s atmega328 csak anal\u00f3g pszeudo-t\u00fcsk\u00e9i PE0/PE1-r\u0151l PE2/PE3-ra lettek \u00e1tnevezve. 20210720: A controller_fan szakasz most m\u00e1r alap\u00e9rtelmez\u00e9s szerint az \u00f6sszes l\u00e9ptet\u0151motort figyeli (nem csak a kinematikus l\u00e9ptet\u0151motorokat). Ha a kor\u00e1bbi m\u0171k\u00f6d\u00e9st szeretn\u00e9nk, l\u00e1sd a konfigur\u00e1ci\u00f3s referencia -ban a stepper config opci\u00f3t. 20210703: A samd_sercom konfigur\u00e1ci\u00f3s szakasznak mostant\u00f3l meg kell adnia az \u00e1ltala konfigur\u00e1lt sercom buszt a sercom opci\u00f3val. 20210612: A pid_integral_max konfigur\u00e1ci\u00f3s opci\u00f3 a f\u0171t\u00e9s \u00e9s a temperature_fan szakaszokban elavult. Az opci\u00f3 a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fcl. 20210503: The gcode_macro default_parameter_<name> config option is deprecated. Use the params pseudo-variable to access macro parameters. Other methods for accessing macro parameters will be removed in the near future. Most users can replace a default_parameter_NAME: VALUE config option with a line like the following in the start of the macro: {% set NAME = params.NAME|default(VALUE)|float %} . See the Command Templates document for examples. 20210430: A SET_VELOCITY_LIMIT (\u00e9s az M204) parancs mostant\u00f3l a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott \u00e9rt\u00e9kekn\u00e9l nagyobb sebess\u00e9get, gyorsul\u00e1st \u00e9s square_corner_velocity-t is be\u00e1ll\u00edthat. 20210325: A pin_map config opci\u00f3 t\u00e1mogat\u00e1sa elavult. Haszn\u00e1ld a sample-aliases.cfg f\u00e1jlt a t\u00e9nyleges mikrokontroller t\u0171 nevekre val\u00f3 ford\u00edt\u00e1shoz. A pin_map config opci\u00f3 a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fcl. 20210313: A Klipper CAN-busszal kommunik\u00e1l\u00f3 mikrovez\u00e9rl\u0151k t\u00e1mogat\u00e1sa megv\u00e1ltozott. Ha CAN-buszt haszn\u00e1l, akkor az \u00f6sszes mikrokontrollert \u00fajra kell \u00e9getni \u00e9s a Klipper konfigur\u00e1ci\u00f3t friss\u00edteni kell . 20210310: A TMC2660 alap\u00e9rtelmezett driver_SFILT \u00e9rt\u00e9ke 1-r\u0151l 0-ra v\u00e1ltozott. 20210227: Az UART vagy SPI m\u00f3dban l\u00e9v\u0151 TMC l\u00e9ptet\u0151motor-meghajt\u00f3k mostant\u00f3l m\u00e1sodpercenk\u00e9nt egyszer lek\u00e9rdez\u00e9sre ker\u00fclnek, amikor enged\u00e9lyezve vannak. Ha a meghajt\u00f3val nem lehet kapcsolatba l\u00e9pni, vagy ha a meghajt\u00f3 hib\u00e1t jelent, akkor a Klipper le\u00e1ll\u00e1si \u00e1llapotba l\u00e9p. 20210219: Az rpi_temperature modult \u00e1tnevezt\u00fck temperature_host -ra. A sensor_type: rpi_temperature minden el\u0151fordul\u00e1s\u00e1t cser\u00e9lje ki sensor_type: temperature_host -ra. A h\u0151m\u00e9rs\u00e9kleti f\u00e1jl el\u00e9r\u00e9si \u00fatvonal\u00e1t a sensor_path config v\u00e1ltoz\u00f3ban lehet megadni. Az rpi_temperature n\u00e9v elavult, \u00e9s a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fcl. 20210201: A TEST_RESONANCES parancs mostant\u00f3l letiltja a bemeneti alak\u00edt\u00e1st, ha az kor\u00e1bban enged\u00e9lyezve volt (\u00e9s a teszt ut\u00e1n \u00fajra enged\u00e9lyezi). Ennek a viselked\u00e9snek a fel\u00fcl\u00edr\u00e1sa \u00e9s a bemeneti alak\u00edt\u00e1s enged\u00e9lyezve tart\u00e1sa \u00e9rdek\u00e9ben egy tov\u00e1bbi INPUT_SHAPING=1 param\u00e9tert adhatunk \u00e1t a parancsnak. 20210201: Az ACCELEROMETER_MEASURE parancs mostant\u00f3l a kimeneti f\u00e1jl nev\u00e9hez hozz\u00e1adja a gyorsul\u00e1sm\u00e9r\u0151 chip nev\u00e9t, ha a chipnek a printer.cfg megfelel\u0151 adxl345 szakasz\u00e1ban adtak nevet. 20201222: A step_distance be\u00e1ll\u00edt\u00e1s a stepper config szakaszokban elavult. Javasoljuk, hogy friss\u00edtse a konfigur\u00e1ci\u00f3t a rotation_distance be\u00e1ll\u00edt\u00e1s haszn\u00e1lat\u00e1ra. A step_distance t\u00e1mogat\u00e1sa a k\u00f6zelj\u00f6v\u0151ben megsz\u0171nik. 20201218: Az endstop_phase modulban az endstop_phase be\u00e1ll\u00edt\u00e1s hely\u00e9be a trigger_phase be\u00e1ll\u00edt\u00e1s l\u00e9pett. Ha az endstop phase modult haszn\u00e1lod, akkor \u00e1t kell konvert\u00e1lni a rotation_distance \u00e9rt\u00e9kre, \u00e9s az ENDSTOP_PHASE_CALIBRATE parancs futtat\u00e1s\u00e1val \u00fajra kell kalibr\u00e1lni az esetleges endstop f\u00e1zisokat. 20201218: A forg\u00f3 delta- \u00e9s pol\u00e1rnyomtat\u00f3knak mostant\u00f3l meg kell adniuk egy gear_ratio param\u00e9tert a forg\u00f3 l\u00e9ptet\u0151ikhez, \u00e9s t\u00f6bb\u00e9 nem adhatnak meg step_distance param\u00e9tert. Az \u00faj gear_ratio param\u00e9ter form\u00e1tum\u00e1t l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1s dokumentumban. 20201213: A \"probe:z_virtual_endstop\" haszn\u00e1latakor nem \u00e9rv\u00e9nyes a Z \"position_endstop\" megad\u00e1sa. Mostant\u00f3l hiba\u00fczenet jelenik meg, ha Z \"position_endstop\" van megadva a \"probe:z_virtual_endstop\" haszn\u00e1lat\u00e1val. A hiba kijav\u00edt\u00e1s\u00e1hoz t\u00e1vol\u00edtsa el a Z \"position_endstop\" meghat\u00e1roz\u00e1st. 20201120: A [board_pins] config szakasz most m\u00e1r explicit mcu: param\u00e9terben add meg az MCU nev\u00e9t. Ha board_pins-t haszn\u00e1lunk egy m\u00e1sodlagos MCU-hoz, akkor a configot friss\u00edteni kell, hogy megadd ezt a nevet. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s referenci\u00e1t . 20201112: A print_stats.print_duration \u00e1ltal bejelentett id\u0151 megv\u00e1ltozott. Az els\u0151 \u00e9szlelt extrud\u00e1l\u00e1s el\u0151tti id\u0151tartamot mostant\u00f3l nem veszi figyelembe. 20201029: A neopixel color_order_GRB config opci\u00f3t elt\u00e1vol\u00edtottuk. Sz\u00fcks\u00e9g eset\u00e9n friss\u00edtse a configot, hogy az \u00faj color_order opci\u00f3t RGB, GRB, RGBW vagy GRBW \u00e9rt\u00e9kre \u00e1ll\u00edtsd be. 20201029: A serial opci\u00f3 az mcu config szakaszban m\u00e1r nem /dev/ttyS0 az alap\u00e9rtelmezett \u00e9rt\u00e9k. Abban a ritka helyzetben, amikor a /dev/ttyS0 a k\u00edv\u00e1nt soros port, azt kifejezetten meg kell adni. 20201020: Klipper v0.9.0 megjelent. 20200902: A MAX31865 \u00e1talak\u00edt\u00f3k RTD ellen\u00e1ll\u00e1s-h\u0151m\u00e9rs\u00e9klet sz\u00e1m\u00edt\u00e1sa jav\u00edt\u00e1sra ker\u00fclt, hogy ne legyen alacsony. Ha ilyen eszk\u00f6zt haszn\u00e1l, akkor kalibr\u00e1lja \u00fajra a nyomtat\u00e1si h\u0151m\u00e9rs\u00e9kletet \u00e9s a PID-be\u00e1ll\u00edt\u00e1sokat. 20200816: A G-k\u00f3d makr\u00f3 printer.gcode objektumot \u00e1tnevezt\u00fck printer.gcode_move objektumra. A printer.toolhead \u00e9s printer.gcode objektumokb\u00f3l t\u00f6bb nem dokument\u00e1lt v\u00e1ltoz\u00f3t elt\u00e1vol\u00edtottunk. A rendelkez\u00e9sre \u00e1ll\u00f3 sablonv\u00e1ltoz\u00f3k list\u00e1j\u00e1t l\u00e1sd a docs/Command_Templates.md f\u00e1jlban. 20200816: A G-k\u00f3d makr\u00f3 \"action_\" rendszere megv\u00e1ltozott. Cser\u00e9lje ki a printer.gcode.action_emergency_stop() h\u00edv\u00e1sokat action_emergency_stop() , printer.gcode.action_respond_info() a action_respond_info() , \u00e9s printer.gcode.action_respond_error() a action_raise_error() -el. 20200809: A men\u00fcrendszer \u00e1t\u00edr\u00e1sra ker\u00fclt. Ha a men\u00fct testre szabt\u00e1k, akkor friss\u00edteni kell az \u00faj konfigur\u00e1ci\u00f3ra. A konfigur\u00e1ci\u00f3 r\u00e9szletei\u00e9rt l\u00e1sd a config/example-menu.cfg f\u00e1jlt, a p\u00e9ld\u00e1k\u00e9rt pedig a klippy/extras/display/menu.cfg f\u00e1jlt. 20200731: A progress attrib\u00fatum viselked\u00e9se megv\u00e1ltozott, amelyet a virtual_sdcard nyomtat\u00f3objektum jelentett. A nyomtat\u00e1s sz\u00fcneteltet\u00e9sekor a Progress m\u00e1r nem \u00e1ll vissza 0-ra. Mostant\u00f3l mindig a bels\u0151 f\u00e1jl poz\u00edci\u00f3ja alapj\u00e1n jelenti a halad\u00e1st. Vagy 0, ha nincs bet\u00f6ltve f\u00e1jl. 20200725: A szervo enable konfigur\u00e1ci\u00f3s param\u00e9ter \u00e9s a SET_SERVO ENABLE param\u00e9ter elt\u00e1vol\u00edt\u00e1sra ker\u00fclt. Friss\u00edts minden makr\u00f3t, hogy a SET_SERVO SERVO=my_servo WIDTH=0 param\u00e9tert haszn\u00e1ld a szerv\u00f3 letilt\u00e1s\u00e1hoz. 20200608: Az LCD-kijelz\u0151 t\u00e1mogat\u00e1sa megv\u00e1ltoztatta n\u00e9h\u00e1ny bels\u0151 \"\u00edr\u00e1sjel\" nev\u00e9t. Ha egy\u00e9ni kijelz\u0151 elrendez\u00e9s ker\u00fclt implement\u00e1l\u00e1sra, akkor sz\u00fcks\u00e9ges lehet friss\u00edteni a leg\u00fajabb gliph nevekre (l\u00e1sd klippy/extras/display/display.cfg az el\u00e9rhet\u0151 gliph-ek list\u00e1j\u00e1t). 20200606: A linux MCU t\u0171 nevei megv\u00e1ltoztak. A t\u0171nevek mostant\u00f3l a gpiochip<chipid>/gpio<gpio> form\u00e1j\u00faak. A gpiochip0 eset\u00e9ben egy r\u00f6vid gpio<gpio> is haszn\u00e1lhat\u00f3. P\u00e9ld\u00e1ul, amire kor\u00e1bban P20 n\u00e9ven hivatkoztunk, az most gpio20 vagy gpiochip0/gpio20 lesz. 20200603: Az alap\u00e9rtelmezett 16x4-es LCD kijelz\u0151n m\u00e1r nem jelenik meg a nyomtat\u00e1sb\u00f3l h\u00e1tral\u00e9v\u0151 becs\u00fclt id\u0151. (Csak az eltelt id\u0151 jelenik meg.) Ha a r\u00e9gi m\u0171k\u00f6d\u00e9st szeretn\u00e9nk, akkor a men\u00fc kijelz\u0151j\u00e9t testre lehet szabni ezzel az inform\u00e1ci\u00f3val (a r\u00e9szletek\u00e9rt l\u00e1sd a config/example-extras.cfg f\u00e1jlban a display_data le\u00edr\u00e1s\u00e1t). 20200531: Az alap\u00e9rtelmezett USB gy\u00e1rt\u00f3/term\u00e9k azonos\u00edt\u00f3 mostant\u00f3l 0x1d50/0x614e. Ezek az \u00faj azonos\u00edt\u00f3k a Klipper sz\u00e1m\u00e1ra vannak fenntartva (k\u00f6sz\u00f6net az openmoko projektnek). Ez a v\u00e1ltoz\u00e1s nem ig\u00e9nyel semmilyen konfigur\u00e1ci\u00f3s m\u00f3dos\u00edt\u00e1st, de az \u00faj azonos\u00edt\u00f3k megjelenhetnek a rendszer napl\u00f3iban. 20200524: A TMC5160 pwm_freq mez\u0151 alap\u00e9rtelmezett \u00e9rt\u00e9ke mostant\u00f3l nulla (egy helyett). 20200425: A gcode_macro parancs sablonv\u00e1ltoz\u00f3ja printer.heater \u00e1t lett nevezve printer.heaters -re. 20200313: A 16x4-es k\u00e9perny\u0151vel \u00e9s a t\u00f6bb extruderrel rendelkez\u0151 nyomtat\u00f3k alap\u00e9rtelmezett LCD-kioszt\u00e1sa megv\u00e1ltozott. Mostant\u00f3l az egy extruderrel rendelkez\u0151 k\u00e9perny\u0151 elrendez\u00e9se az alap\u00e9rtelmezett, \u00e9s az aktu\u00e1lisan akt\u00edv extrudert mutatja. A kor\u00e1bbi kijelz\u0151 elrendez\u00e9s haszn\u00e1lat\u00e1hoz \u00e1ll\u00edtsd be a \"display_group: _multiextruder_16x4\" a printer.cfg f\u00e1jl [display] szakasz\u00e1ban. 20200308: Az alap\u00e9rtelmezett __test men\u00fcpont elt\u00e1vol\u00edt\u00e1sra ker\u00fclt. Ha a konfigur\u00e1ci\u00f3s f\u00e1jlban egy\u00e9ni men\u00fc van, akkor mindenk\u00e9ppen t\u00e1vol\u00edtson el minden hivatkoz\u00e1st erre a __test men\u00fcpontra. 20200308: A \"pakli\" \u00e9s \"k\u00e1rtya\" men\u00fcpontok elt\u00e1vol\u00edt\u00e1sra ker\u00fcltek. Az LCD k\u00e9perny\u0151 elrendez\u00e9s\u00e9nek testreszab\u00e1s\u00e1hoz haszn\u00e1ld az \u00faj display_data config szakaszokat (a r\u00e9szletek\u00e9rt l\u00e1sd a config/example-extras.cfg f\u00e1jlt). 20200109: A bed_mesh modul most m\u00e1r hivatkozik a szonda hely\u00e9re a h\u00e1l\u00f3konfigur\u00e1ci\u00f3ban. Ennek megfelel\u0151en n\u00e9h\u00e1ny konfigur\u00e1ci\u00f3s opci\u00f3t \u00e1tneveztek, hogy pontosabban t\u00fckr\u00f6zze a tervezett funkci\u00f3jukat. T\u00e9glalap alak\u00fa t\u00e1rgyasztalok eset\u00e9ben a min_point \u00e9s max_point \u00e1tnevez\u00e9sre ker\u00fclt mesh_min \u00e9s mesh_max -ra. A kerek t\u00e1rgyasztalok eset\u00e9ben a bed_radius \u00e1t lett nevezve mesh_radius -ra. A kerek t\u00e1rgyasztalokhoz egy \u00faj mesh_origin opci\u00f3 is hozz\u00e1 lett adva. Vedd figyelembe, hogy ezek a v\u00e1ltoz\u00e1sok a kor\u00e1bban elmentett h\u00e1l\u00f3profilokkal is inkompatibilisek. Ha egy inkompatibilis profilt \u00e9szlel\u00fcnk, azt figyelmen k\u00edv\u00fcl hagyjuk \u00e9s elt\u00e1vol\u00edt\u00e1sra \u00fctemezz\u00fck. Az elt\u00e1vol\u00edt\u00e1si folyamat a SAVE_CONFIG parancs kiad\u00e1s\u00e1val fejezhet\u0151 be. A felhaszn\u00e1l\u00f3nak minden egyes profilt \u00fajra kell kalibr\u00e1lnia. 20191218: A display config szakasz m\u00e1r nem t\u00e1mogatja az \"lcd_type: st7567\". Haszn\u00e1ld helyette az \"uc1701\" kijelz\u0151t\u00edpust. \u00c1ll\u00edtsd be az \"lcd_type: uc1701\" \u00e9rt\u00e9ket, \u00e9s m\u00f3dos\u00edtsd az \"rs_pin: some_pin\" \u00e9rt\u00e9ket \"rst_pin: some_pin\" \u00e9rt\u00e9kre. Sz\u00fcks\u00e9g lehet m\u00e9g egy \"contrast: 60\" konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1s hozz\u00e1ad\u00e1s\u00e1ra. 20191210: A be\u00e9p\u00edtett T0, T1, T2, ... parancsok elt\u00e1vol\u00edt\u00e1sra ker\u00fcltek. Az extruder activate_gcode \u00e9s deactivate_gcode konfigur\u00e1ci\u00f3s opci\u00f3k elt\u00e1vol\u00edt\u00e1sra ker\u00fcltek. Ha sz\u00fcks\u00e9g van ezekre a parancsokra (\u00e9s szkriptekre), akkor defini\u00e1ljon egyedi [gcode_macro T0] st\u00edlus\u00fa makr\u00f3kat, amelyek megh\u00edvj\u00e1k az ACTIVATE_EXTRUDER parancsot. P\u00e9ld\u00e1k\u00e9rt l\u00e1sd a config/sample-idex.cfg \u00e9s sample-multi-extruder.cfg f\u00e1jlokat. 20191210: Az M206 parancs t\u00e1mogat\u00e1sa megsz\u0171nt. A SET_GCODE_OFFSET h\u00edv\u00e1s\u00e1val helyettes\u00edtj\u00fck. Ha sz\u00fcks\u00e9g van az M206 t\u00e1mogat\u00e1s\u00e1ra, adjunk hozz\u00e1 egy [gcode_macro M206] config szakaszt, amely megh\u00edvja a SET_GCODE_OFFSET-et. (P\u00e9ld\u00e1ul \"SET_GCODE_OFFSET Z=-{params.Z}\".) 20191202: A \"G4\" parancs nem dokument\u00e1lt \"S\" param\u00e9ter\u00e9nek t\u00e1mogat\u00e1sa megsz\u0171nt. Az S minden el\u0151fordul\u00e1s\u00e1t a szabv\u00e1nyos \"P\" param\u00e9terrel helyettes\u00edti (a milliszekundumokban megadott k\u00e9sleltet\u00e9s). 20191126: Az USB nevek megv\u00e1ltoztak a nat\u00edv USB-t\u00e1mogat\u00e1ssal rendelkez\u0151 mikrovez\u00e9rl\u0151k\u00f6n. Mostant\u00f3l alap\u00e9rtelmez\u00e9s szerint egyedi chip-azonos\u00edt\u00f3t haszn\u00e1lnak (ahol van ilyen). Ha egy \"MCU\" config szakasz olyan \"serial\" be\u00e1ll\u00edt\u00e1st haszn\u00e1l, amely \"/dev/serial/by-id/\" kezdet\u0171, akkor sz\u00fcks\u00e9g lehet a config friss\u00edt\u00e9s\u00e9re. Futtassa a \"ls /dev/serial/by-id/*\" parancsot egy SSH termin\u00e1lban az \u00faj azonos\u00edt\u00f3 meghat\u00e1roz\u00e1s\u00e1hoz. 20191121: A pressure_advance_lookahead_time param\u00e9tert elt\u00e1vol\u00edtottuk. Az alternat\u00edv konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sokat l\u00e1sd a example.cfg f\u00e1jlban. 20191112: A TMC l\u00e9ptet\u0151 vez\u00e9rl\u0151 virtu\u00e1lis enged\u00e9lyez\u00e9si k\u00e9pess\u00e9ge mostant\u00f3l automatikusan enged\u00e9lyezve van, ha a l\u00e9ptet\u0151 nem rendelkezik dedik\u00e1lt l\u00e9ptet\u0151 enged\u00e9lyez\u0151 t\u0171vel. A tmcXXXX:virtual_enable-re val\u00f3 hivatkoz\u00e1sok elt\u00e1vol\u00edt\u00e1sa a konfigur\u00e1ci\u00f3b\u00f3l. A stepper enable_pin konfigur\u00e1ci\u00f3ban t\u00f6bb t\u0171 vez\u00e9rl\u00e9s\u00e9nek lehet\u0151s\u00e9ge megsz\u0171nt. Ha t\u00f6bb t\u0171re van sz\u00fcks\u00e9g, akkor haszn\u00e1lj egy multi_pin config szekci\u00f3t. 20191107: Az els\u0151dleges extruder konfigur\u00e1ci\u00f3s szakasz\u00e1t \"extruder\" n\u00e9ven kell megadni, \u00e9s m\u00e1r nem lehet \"extruder0\" n\u00e9ven megadni. Az extruder \u00e1llapot\u00e1t lek\u00e9rdez\u0151 G-k\u00f3d parancssablonokat mostant\u00f3l a \"{printer.extruder}\" seg\u00edts\u00e9g\u00e9vel lehet el\u00e9rni. 20191021: Klipper v0.8.0 megjelent 20191003: A move_to_previous opci\u00f3 a [safe_z_homing]-ban mostant\u00f3l alap\u00e9rtelmez\u00e9s szerint False. (A 20190918 el\u0151tt t\u00e9nylegesen False volt.) 20190918: A z-hop opci\u00f3 a [safe_z_homing]-ban mindig \u00fajra alkalmaz\u00e1sra ker\u00fcl, miut\u00e1n a Z tengelyre t\u00f6rt\u00e9n\u0151 homing befejez\u0151d\u00f6tt. Ez sz\u00fcks\u00e9gess\u00e9 teheti a felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra, hogy friss\u00edts\u00e9k az ezen a modulon alapul\u00f3 egy\u00e9ni szkripteket. 20190806: A SET_NEOPIXEL parancsot \u00e1tnevezt\u00e9k SET_LED-re. 20190726: Az mcp4728 digit\u00e1lis-anal\u00f3g k\u00f3dja megv\u00e1ltozott. Az alap\u00e9rtelmezett i2c_address most 0x60, \u00e9s a fesz\u00fclts\u00e9greferencia most az mcp4728's bels\u0151 2,048 voltos referenci\u00e1hoz viszony\u00edtva van. 20190710: A [firmware_retract] konfigur\u00e1ci\u00f3s szakaszb\u00f3l elt\u00e1vol\u00edtott\u00e1k a z_hop opci\u00f3t. A z_hop t\u00e1mogat\u00e1sa hi\u00e1nyos volt, \u00e9s t\u00f6bb gyakori szeletel\u0151vel hib\u00e1s viselked\u00e9st okozott. 20190710: A PROBE_ACCURACY parancs opcion\u00e1lis param\u00e9terei megv\u00e1ltoztak. Sz\u00fcks\u00e9g lehet a parancsot haszn\u00e1l\u00f3 makr\u00f3k vagy szkriptek friss\u00edt\u00e9s\u00e9re. 20190628: A [skew_correction] szakaszb\u00f3l elt\u00e1vol\u00edtottuk az \u00f6sszes konfigur\u00e1ci\u00f3s opci\u00f3t. A skew_correction konfigur\u00e1l\u00e1sa mostant\u00f3l a SET_SKEW G-k\u00f3don kereszt\u00fcl t\u00f6rt\u00e9nik. L\u00e1sd a Ferdes\u00e9g Korrekci\u00f3 aj\u00e1nlott haszn\u00e1lat\u00e1t. 20190607: A gcode_macro \"variable_X\" param\u00e9terei (a SET_GCODE_VARIABLE VALUE param\u00e9ter\u00e9vel egy\u00fctt) mostant\u00f3l Python liter\u00e1lokk\u00e9nt ker\u00fclnek \u00e9rtelmez\u00e9sre. Ha egy \u00e9rt\u00e9khez karakterl\u00e1ncot kell rendelni, akkor csomagolja az \u00e9rt\u00e9ket id\u00e9z\u0151jelekbe, hogy karakterl\u00e1nck\u00e9nt ker\u00fclj\u00f6n ki\u00e9rt\u00e9kel\u00e9sre. 20190606: A \"samples\", \"samples_result\" \u00e9s \"sample_retract_dist\" konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sok \u00e1tker\u00fcltek a \"probe\" konfigur\u00e1ci\u00f3s szakaszba. Ezek az opci\u00f3k m\u00e1r nem t\u00e1mogatottak a \"delta_calibrate\", \"bed_tilt\", \"bed_mesh\", \"screws_tilt_adjust\", \"z_tilt\", vagy \"quad_gantry_level\" config szakaszokban. 20190528: A gcode_macro sablon ki\u00e9rt\u00e9kel\u00e9s\u00e9ben a m\u00e1gikus \"status\" v\u00e1ltoz\u00f3t \u00e1tnevezt\u00fck \"printer\" -re. 20190520: A SET_GCODE_OFFSET parancs megv\u00e1ltozott; ennek megfelel\u0151en friss\u00edtse a G-k\u00f3d makr\u00f3kat. A parancs m\u00e1r nem alkalmazza a k\u00e9rt eltol\u00e1st a k\u00f6vetkez\u0151 G1 parancsra. A r\u00e9gi viselked\u00e9s megk\u00f6zel\u00edthet\u0151 az \u00faj \"MOVE=1\" param\u00e9ter haszn\u00e1lat\u00e1val. 20190404: A Python gazda szoftvercsomagok friss\u00edt\u00e9sre ker\u00fcltek. A felhaszn\u00e1l\u00f3knak \u00fajra kell futtatniuk a ~/klipper/scripts/install-octopi.sh szkriptet (vagy m\u00e1s m\u00f3don friss\u00edteni\u00fck kell a python f\u00fcgg\u0151s\u00e9geket, ha nem standard OctoPi telep\u00edt\u00e9st haszn\u00e1lnak). 20190404: Az i2c_bus \u00e9s spi_bus param\u00e9terek (a k\u00fcl\u00f6nb\u00f6z\u0151 konfigur\u00e1ci\u00f3s szakaszokban) mostant\u00f3l sz\u00e1m helyett busznevet fogadnak el. 20190404: Az sx1509 konfigur\u00e1ci\u00f3s param\u00e9terei megv\u00e1ltoztak. Az 'address' param\u00e9ter mostant\u00f3l 'i2c_address', \u00e9s decim\u00e1lis sz\u00e1mk\u00e9nt kell megadni. A kor\u00e1bban haszn\u00e1lt 0x3E helyett 62-t kell megadni. 20190328: A [temperature_fan] konfigur\u00e1ci\u00f3ban megadott min_speed \u00e9rt\u00e9ket mostant\u00f3l tiszteletben tartjuk, \u00e9s a ventil\u00e1tor PID \u00fczemm\u00f3dban mindig ezen vagy ann\u00e1l magasabb fordulatsz\u00e1mon fog m\u0171k\u00f6dni. 20190322: A \"driver_HEND\" alap\u00e9rtelmezett \u00e9rt\u00e9ke a [tmc2660] konfigur\u00e1ci\u00f3s szakaszokban 6-r\u00f3l 3-ra v\u00e1ltozott. A \"driver_VSENSE\" mez\u0151t elt\u00e1vol\u00edtottuk (mostant\u00f3l automatikusan a run_current-b\u0151l sz\u00e1m\u00edtj\u00e1k ki). 20190310: A [controller_fan] config szakasz mostant\u00f3l mindig kap egy nevet (p\u00e9ld\u00e1ul [controller_fan my_controller_fan]). 20190308: A [tmc2130] \u00e9s [tmc2208] konfigur\u00e1ci\u00f3s szakaszok \"driver_BLANK_TIME_SELECT\" mez\u0151je \u00e1t lett nevezve \"driver_TBL\" -re. 20190308: A [tmc2660] config szakasz megv\u00e1ltozott. Mostant\u00f3l egy \u00faj sense_resistor config param\u00e9tert kell megadni. A driver_XXX param\u00e9terek k\u00f6z\u00fcl t\u00f6bbnek a jelent\u00e9se is megv\u00e1ltozott. 20190228: A SAMD21 k\u00e1rty\u00e1kon SPI vagy I2C-t haszn\u00e1l\u00f3knak mostant\u00f3l a [samd_sercom] config szakaszban kell megadniuk a BUSZ csatlakoz\u00e1sait. 20190224: A bed_shape opci\u00f3t elt\u00e1vol\u00edtottuk a bed_mesh-b\u0151l. A radius opci\u00f3t \u00e1tnevezt\u00fck bed_radiusra. A kerek t\u00e1rgyasztalokkal rendelkez\u0151 felhaszn\u00e1l\u00f3knak a bed_radius \u00e9s a round_probe_count opci\u00f3kat kell megadniuk. 20190107: Az i2c_address param\u00e9ter az mcp4451 config szakaszban megv\u00e1ltozott. Ez egy gyakori be\u00e1ll\u00edt\u00e1s a Smoothie alaplapokon. Az \u00faj \u00e9rt\u00e9k a r\u00e9gi \u00e9rt\u00e9k fele (a 88-as \u00e9rt\u00e9ket 44-re, a 90-es \u00e9rt\u00e9ket pedig 45-re kell m\u00f3dos\u00edtani). 20181220: Klipper v0.7.0 megjelent","title":"V\u00e1ltoz\u00e1sok"},{"location":"Config_Reference.html","text":"Konfigur\u00e1ci\u00f3s hivatkoz\u00e1s \u00b6 Ez a dokumentum a Klipper konfigur\u00e1ci\u00f3s f\u00e1jlban el\u00e9rhet\u0151 be\u00e1ll\u00edt\u00e1sok referenci\u00e1ja. Az ebben a dokumentumban tal\u00e1lhat\u00f3 le\u00edr\u00e1sok \u00fagy vannak form\u00e1zva, hogy kiv\u00e1ghat\u00f3ak \u00e9s beilleszthet\u0151ek legyenek egy nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1ba. A Klipper be\u00e1ll\u00edt\u00e1s\u00e1val \u00e9s a kezdeti konfigur\u00e1ci\u00f3s f\u00e1jl kiv\u00e1laszt\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a telep\u00edt\u00e9si dokumentumot . Mikrokontroller konfigur\u00e1ci\u00f3 \u00b6 A mikrokontroller t\u0171 neveinek form\u00e1tuma \u00b6 Sz\u00e1mos konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1shoz egy mikrokontroller-t\u0171 nev\u00e9re van sz\u00fcks\u00e9g. A Klipper a hardveres neveket haszn\u00e1lja ezekhez a t\u0171kh\u00f6z - p\u00e9ld\u00e1ul PA4 . A t\u0171 nevek el\u0151tt ! \u00e1llhat, hogy jelezze ilyenkor ford\u00edtott polarit\u00e1st haszn\u00e1l (pl. magas helyett alacsony \u00e9rt\u00e9ken t\u00f6rt\u00e9n\u0151 trigger). A bemeneti t\u0171k el\u0151tt ^ jelezheti, hogy a t\u0171h\u00f6z hardveres pull-up ellen\u00e1ll\u00e1st kell enged\u00e9lyezni. Ha a mikrokontroller t\u00e1mogatja a pull-down ellen\u00e1ll\u00e1sokat, akkor egy bemeneti t\u0171 el\u0151tt ~ \u00e1llhat. Megjegyz\u00e9s: egyes konfigur\u00e1ci\u00f3s szakaszok tov\u00e1bbi t\u0171ket hozhatnak l\u00e9tre. Ahol ez el\u0151fordul, ott a t\u0171ket defini\u00e1l\u00f3 konfigur\u00e1ci\u00f3s szekci\u00f3t a konfigur\u00e1ci\u00f3s f\u00e1jlban az ezeket a t\u0171ket haszn\u00e1l\u00f3 szekci\u00f3k el\u0151tt kell felsorolni. [mcu] \u00b6 Az els\u0151dleges mikrokontroller konfigur\u00e1l\u00e1sa. [mcu] serial: # Az MCU-hoz csatlakoztatand\u00f3 soros port. Ha bizonytalan (vagy a # v\u00e1ltoztat\u00e1sban), l\u00e1sd a GYIK \"Hol van a soros port?\" r\u00e9sz\u00e9t. # Ezt a param\u00e9tert soros port haszn\u00e1lata eset\u00e9n meg kell adni. #baud: 250000 # A haszn\u00e1land\u00f3 \u00e1tviteli sebess\u00e9g. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 250000. #canbus_uuid: # Ha CAN-buszra csatlakoztatott eszk\u00f6zt haszn\u00e1lunk, akkor ez \u00e1ll\u00edtja # be az egyedi chip azonos\u00edt\u00f3j\u00e1t, amelyhez csatlakozni kell. # Ezt az \u00e9rt\u00e9ket meg kell adni, a CAN busz haszn\u00e1lata eset\u00e9n. #canbus_interface: # Ha CAN-buszra csatlakoztatott eszk\u00f6zt haszn\u00e1lunk, akkor ez \u00e1ll\u00edtja # be a CAN h\u00e1l\u00f3zati interf\u00e9szt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 'can0'. #restart_method: # Ez szab\u00e1lyozza azt a mechanizmust, amelyet a gazdag\u00e9p haszn\u00e1ljon a # mikrokontroller \u00fajraind\u00edt\u00e1s\u00e1hoz. A v\u00e1laszthat\u00f3 lehet\u0151s\u00e9gek: 'arduino', # 'cheetah', 'rpi_usb', \u00e9s 'command'. Az 'arduino' m\u00f3dszer # (DTR kapcsol\u00e1sa) a k\u00f6vetkez\u0151 eszk\u00f6z\u00f6k\u00f6n gyakori. Arduino k\u00e1rty\u00e1k # \u00e9s kl\u00f3nok. A 'cheetah' m\u00f3dszer egy speci\u00e1lis m\u00f3dszer, amely n\u00e9h\u00e1ny # Fysetc Cheetah k\u00e1rty\u00e1hoz sz\u00fcks\u00e9ges. Az 'rpi_usb' m\u00f3dszer hasznos # a Raspberry Pi lapokon, amelyek mikrovez\u00e9rl\u0151kkel vannak ell\u00e1tva. # USB-n kereszt\u00fcl r\u00f6vid id\u0151re kikapcsolja az \u00f6sszes USB port # \u00e1ramell\u00e1t\u00e1s\u00e1t, hogy a mikrokontroller \u00fajrainduljon. A 'command' # m\u00f3dszer a k\u00f6vetkez\u0151ket foglalja mag\u00e1ban. Klipper parancsot k\u00fcld # a mikrokontrollernek, hogy az k\u00e9pes legyen \u00fajraind\u00edtani mag\u00e1t. # Az alap\u00e9rtelmezett be\u00e1ll\u00edt\u00e1s az 'arduino' ha a mikrokontroller # soros porton kereszt\u00fcl kommunik\u00e1l, egy\u00e9bk\u00e9nt 'command'. [mcu my_extra_mcu] \u00b6 Tov\u00e1bbi mikrovez\u00e9rl\u0151k (az \"mcu\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni). A tov\u00e1bbi mikrovez\u00e9rl\u0151k tov\u00e1bbi t\u0171ket vezetnek be, amelyek f\u0171t\u0151berendez\u00e9sk\u00e9nt, l\u00e9ptet\u0151berendez\u00e9sk\u00e9nt, ventil\u00e1tork\u00e9nt stb. konfigur\u00e1lhat\u00f3k. P\u00e9ld\u00e1ul, ha egy \"[mcu extra_mcu]\" szekci\u00f3t vezet\u00fcnk be, akkor az olyan t\u0171ket, mint az \"extra_mcu:ar9\" a konfigur\u00e1ci\u00f3ban m\u00e1shol is haszn\u00e1lhat\u00f3k (ahol \"ar9\" az adott mcu hardveres t\u0171 neve vagy \u00e1lneve). [mcu my_extra_mcu] # A konfigur\u00e1ci\u00f3s param\u00e9tereket l\u00e1sd az \"mcu\" szakaszban. K\u00f6z\u00f6s kinematikai be\u00e1ll\u00edt\u00e1sok \u00b6 [printer] \u00b6 A nyomtat\u00f3 szakasz a nyomtat\u00f3 magas szint\u0171 be\u00e1ll\u00edt\u00e1sait vez\u00e9rli. [printer] kinematics: # A haszn\u00e1lt nyomtat\u00f3 t\u00edpusa. Ez az opci\u00f3 a k\u00f6vetkez\u0151k egyike lehet: # cartesian, corexy, corexz, hybrid_corexy, hybrid_corexz, rotary_delta, # delta, delta, polar, cs\u00f6rl\u0151, vagy egyik sem. # Ezt a param\u00e9tert meg kell adni. max_velocity: # A nyomtat\u00f3fej maxim\u00e1lis sebess\u00e9ge (mm/s-ban) # (a nyomathoz viszony\u00edtva). Ezt a param\u00e9tert meg kell adni. max_accel: # A nyomtat\u00f3fej maxim\u00e1lis gyorsul\u00e1sa (mm/s^2-ben) # (a nyomtat\u00f3hoz viszony\u00edtva). Ezt a param\u00e9tert meg kell adni. #max_accel_to_decel: # \u00c1lgyorsul\u00e1s (mm/s^2-ben), amely azt szab\u00e1lyozza, hogy a nyomtat\u00f3fej # milyen gyorsan haladjon gyorsul\u00e1sr\u00f3l a lass\u00edt\u00e1sra. A r\u00f6vid cikk-cakk # mozg\u00e1sok maxim\u00e1lis sebess\u00e9g\u00e9nek cs\u00f6kkent\u00e9s\u00e9re szolg\u00e1l # (\u00e9s ez\u00e1ltal cs\u00f6kkenti a nyomtat\u00f3 rezg\u00e9s\u00e9t ezekb\u0151l a l\u00e9p\u00e9sekb\u0151l). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a max_accel fele. #square_corner_velocity: 5.0 # Az a maxim\u00e1lis sebess\u00e9g (mm/s-ban), amellyel a nyomtat\u00f3fej egy # 90 fokos sarokban haladhat. A null\u00e1t\u00f3l elt\u00e9r\u0151 \u00e9rt\u00e9k cs\u00f6kkentheti az # extruder \u00e1raml\u00e1si sebess\u00e9g\u00e9nek v\u00e1ltoz\u00e1sait az\u00e1ltal, hogy lehet\u0151v\u00e9 teszi # a nyomtat\u00f3fej azonnali sebess\u00e9gv\u00e1ltoz\u00e1s\u00e1t kanyarod\u00e1s k\u00f6zben. # Ez az \u00e9rt\u00e9k konfigur\u00e1lja a bels\u0151 centripet\u00e1lis sebess\u00e9g # kanyarod\u00e1si algoritmus\u00e1t; a 90 fokn\u00e1l nagyobb sz\u00f6g\u0171 sarkok # kanyarod\u00e1si sebess\u00e9ge nagyobb, m\u00edg a 90 fokn\u00e1l kisebb sz\u00f6g\u0171 sarkok # kanyarsebess\u00e9ge kisebb. Ha ez null\u00e1ra van \u00e1ll\u00edtva, akkor a nyomtat\u00f3fej # minden sark\u00e1n\u00e1l null\u00e1ra lassul. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5 mm/s. [stepper] \u00b6 L\u00e9ptet\u0151motor meghat\u00e1roz\u00e1sok. A k\u00fcl\u00f6nb\u00f6z\u0151 nyomtat\u00f3t\u00edpusok (a [printer] config szakasz \"kinematika\" opci\u00f3ja \u00e1ltal meghat\u00e1rozottak szerint) elt\u00e9r\u0151 neveket ig\u00e9nyelnek a l\u00e9ptet\u0151 sz\u00e1m\u00e1ra (pl. stepper_x vs stepper_a ). Az al\u00e1bbiakban a stepperek \u00e1ltal\u00e1nos defin\u00edci\u00f3i k\u00f6vetkeznek. A rotation_distance param\u00e9ter kisz\u00e1m\u00edt\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a forgat\u00e1si t\u00e1vols\u00e1g dokumentumot . A t\u00f6bb mikrovez\u00e9rl\u0151vel t\u00f6rt\u00e9n\u0151 kezd\u0151pont felv\u00e9tellel kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a Multi-MCU kezd\u0151pont dokumentumot. [stepper_x] step_pin: # L\u00e9p\u00e9s GPIO t\u0171 (magasan aktiv\u00e1lva). Ezt a param\u00e9tert meg kell adni. dir_pin: # Ir\u00e1ny GPIO t\u0171 (magas pozit\u00edv ir\u00e1nyt jelez). Ezt a param\u00e9tert meg kell adni. enable_pin: # Enged\u00e9lyezett t\u0171 (az alap\u00e9rtelmezett enged\u00e9lyez\u00e9s magas; haszn\u00e1ld a # \"!\" jelet az enged\u00e9lyez\u00e9s alacsony szintj\u00e9nek jelz\u00e9s\u00e9re). Ha ez a # param\u00e9ter nincs megadva, akkor a l\u00e9ptet\u0151motor meghajt\u00f3t mindig # enged\u00e9lyezni kell. rotation_distance: # Az a t\u00e1vols\u00e1g (mm-ben), amelyet a tengely megtesz a l\u00e9ptet\u0151motor egy # teljes fordulat\u00e1val (vagy v\u00e9gs\u0151 sebess\u00e9gfokozattal, ha a gear_ratio meg # van adva). Ezt a param\u00e9tert meg kell adni. microsteps: # A l\u00e9ptet\u0151motor-vez\u00e9rl\u0151 \u00e1ltal haszn\u00e1lt mikrol\u00e9p\u00e9sek sz\u00e1ma. # Ezt a param\u00e9tert meg kell adni. #full_steps_per_rotation: 200 # A l\u00e9ptet\u0151motor egy fordulat\u00e1hoz tartoz\u00f3 teljes l\u00e9p\u00e9sek sz\u00e1ma. \u00c1ll\u00edtsd ezt # 200-ra 1,8 fokos l\u00e9ptet\u0151motor eset\u00e9n, vagy 400-ra 0,9 fokos motor eset\u00e9n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 200. #gear_ratio: # Az \u00e1tt\u00e9tel, ha a l\u00e9ptet\u0151motor egy sebess\u00e9gv\u00e1lt\u00f3n kereszt\u00fcl csatlakozik a # tengelyhez. P\u00e9ld\u00e1ul megadhatod az \"5:1\" \u00e9rt\u00e9ket, ha 5:1 sebess\u00e9gv\u00e1lt\u00f3t # haszn\u00e1lnak. Ha a tengely t\u00f6bb sebess\u00e9gv\u00e1lt\u00f3val rendelkezik, megadhat # egy vessz\u0151vel elv\u00e1lasztott \u00e1tt\u00e9teli list\u00e1t (p\u00e9ld\u00e1ul \"57:11, 2:1\"). Ha a # gear_ratio meg van adva, akkor a rotation_distance azt a t\u00e1vols\u00e1got # hat\u00e1rozza meg, amelyet a tengely megtesz a v\u00e9gs\u0151 fogasker\u00e9k egy teljes # fordulat\u00e1n\u00e1l. Az alap\u00e9rtelmez\u00e9s szerint nem haszn\u00e1l \u00e1tt\u00e9teli ar\u00e1nyt. #step_pulse_duration: # A minim\u00e1lis id\u0151 a l\u00e9ptet\u0151 impulzus jel \u00e9le \u00e9s a k\u00f6vetkez\u0151 \"l\u00e9p\u00e9sk\u00f6z\" jel # \u00e9le k\u00f6z\u00f6tt. Ez a l\u00e9p\u00e9s impulzus \u00e9s az ir\u00e1nyv\u00e1lt\u00f3 jel k\u00f6z\u00f6tti minim\u00e1lis id\u0151 # be\u00e1ll\u00edt\u00e1s\u00e1ra is haszn\u00e1lhat\u00f3. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,000000100 (100 ns) # az UART vagy SPI m\u00f3dban konfigur\u00e1lt TMC l\u00e9ptet\u0151k eset\u00e9ben, \u00e9s az # alap\u00e9rtelmezett 0,000002 (ami 2us) az \u00f6sszes t\u00f6bbi l\u00e9ptet\u0151 eset\u00e9ben. endstop_pin: # V\u00e9g\u00e1ll\u00e1skapcsol\u00f3 \u00e9rz\u00e9kel\u00e9si t\u0171. Ha ez a v\u00e9g\u00fctk\u00f6z\u0151 t\u0171 m\u00e1s MCU-n van, # mint a l\u00e9ptet\u0151motor, akkor enged\u00e9lyezi a \"multi-mcu homing\"-ot. # Ezt a param\u00e9tert meg kell adni a der\u00e9ksz\u00f6g\u0171 nyomtat\u00f3k X, Y \u00e9s Z # l\u00e9ptet\u0151ihez. #position_min: 0 # Minim\u00e1lis \u00e9rv\u00e9nyes t\u00e1vols\u00e1g (mm-ben), amelyre a felhaszn\u00e1l\u00f3 utas\u00edthatja # a l\u00e9ptet\u0151t, hogy mozogjon. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0 mm. position_endstop: # A v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 helye (mm-ben). # Ezt a param\u00e9tert meg kell adni a der\u00e9ksz\u00f6g\u0171 nyomtat\u00f3k X, Y \u00e9s Z # l\u00e9ptet\u0151ihez. position_max: # Maxim\u00e1lis \u00e9rv\u00e9nyes t\u00e1vols\u00e1g (mm-ben), amelyre a felhaszn\u00e1l\u00f3 utas\u00edthatja # a l\u00e9ptet\u0151t, hogy mozogjon. Ezt a param\u00e9tert meg kell adni a der\u00e9ksz\u00f6g\u0171 # nyomtat\u00f3k X, Y \u00e9s Z l\u00e9ptet\u0151ihez. #homing_speed: 5.0 # A l\u00e9ptet\u0151 maxim\u00e1lis sebess\u00e9ge (mm/sec-ben) kezd\u0151pont felv\u00e9telkor. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5 mm/sec. #homing_retract_dist: 5.0 # T\u00e1vols\u00e1g a visszal\u00e9p\u00e9sig (mm-ben), miel\u0151tt m\u00e1sodszor is be\u00e1ll\u00edtan\u00e1. # \u00c1ll\u00edtsd ezt null\u00e1ra a m\u00e1sodik kezd\u0151pont felv\u00e9tel letilt\u00e1s\u00e1hoz. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5 mm. #homing_retract_speed: # Sebess\u00e9g, amelyet a visszah\u00faz\u00e1sn\u00e1l kell haszn\u00e1lni a kezd\u0151pont felv\u00e9tel # ut\u00e1n arra az esetre, ha ez elt\u00e9rne a be\u00e1ll\u00edt\u00e1si sebess\u00e9gt\u0151l, amely ehhez a # param\u00e9terhez az alap\u00e9rtelmezett. #second_homing_speed: # A l\u00e9ptet\u0151 sebess\u00e9ge (mm/sec-ben) a m\u00e1sodik kezd\u0151pont felv\u00e9tel # v\u00e9grehajt\u00e1sakor. Az alap\u00e9rtelmez\u00e9s a homing_speed/2. #homing_positive_dir: # Ha ez True, a kezd\u0151pont felv\u00e9tel hat\u00e1s\u00e1ra a l\u00e9ptet\u0151 pozit\u00edv ir\u00e1nyba mozdul # el (el a null\u00e1t\u00f3l) ha False, akkor kezd\u0151pontra a nulla fel\u00e9. Jobb az # alap\u00e9rtelmezettet haszn\u00e1lni, mint ezt a param\u00e9tert megadni. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k True, ha a position_endstop a position_max # k\u00f6zel\u00e9ben van, \u00e9s False, ha a position_min k\u00f6zel\u00e9ben van. Cartesian Kinematika \u00b6 L\u00e1sd example-cartesian.cfg egy p\u00e9lda cartesian kinematika konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Itt csak a cartesian nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd a \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: cartesian max_z_velocity: # Ez \u00e1ll\u00edtja be a Z ir\u00e1ny\u00fa mozg\u00e1s maxim\u00e1lis sebess\u00e9g\u00e9t (mm/sec-ben). # Ez a be\u00e1ll\u00edt\u00e1s haszn\u00e1lhat\u00f3 a maxim\u00e1lis sebess\u00e9g korl\u00e1toz\u00e1s\u00e1ra a # a Z l\u00e9ptet\u0151motor eset\u00e9ben. Az alap\u00e9rtelmez\u00e9s szerint a max_velocity a k\u00f6vetkez\u0151 \u00e9rt\u00e9kekre vonatkozik # max_z_velocity. max_z_accel: # Ez \u00e1ll\u00edtja be a mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t (mm/sec^2-ben) # a Z tengely ment\u00e9n. Korl\u00e1tozza a Z l\u00e9ptet\u0151motor gyorsul\u00e1s\u00e1t. Az # alap\u00e9rtelmezett a max_accel haszn\u00e1lata a max_z_accel eset\u00e9ben. # A stepper_x szakasz a l\u00e9ptet\u0151motor vez\u00e9rl\u00e9s\u00e9re szolg\u00e1l. # X tengely egy cartesian g\u00e9pen. [stepper_x] # A stepper_y szakasz a l\u00e9ptet\u0151motor vez\u00e9rl\u00e9s\u00e9re szolg\u00e1l. # Y t\u00edngely egy cartesian g\u00e9pen. [stepper_y] # A stepper_z szakasz a l\u00e9ptet\u0151motor vez\u00e9rl\u00e9s\u00e9re szolg\u00e1l. # Z tengely egy cartesian g\u00e9pen. [stepper_z] Line\u00e1ris delta kinematika \u00b6 L\u00e1sd az example-delta.cfg p\u00e9ld\u00e1t a line\u00e1ris delta kinematika konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1hoz. A kalibr\u00e1l\u00e1ssal kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a delta kalibr\u00e1ci\u00f3s \u00fatmutat\u00f3 dokumentumot. Itt csak a line\u00e1ris delta nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: delta max_z_velocity: # A delta nyomtat\u00f3kn\u00e1l ez korl\u00e1tozza a Z tengely mozg\u00e1s\u00e1nak maxim\u00e1lis # sebess\u00e9g\u00e9t (mm/sec-ben). Ezzel a be\u00e1ll\u00edt\u00e1ssal cs\u00f6kkenthet\u0151 a fel/le # mozg\u00e1sok maxim\u00e1lis sebess\u00e9ge (amely nagyobb l\u00e9p\u00e9ssz\u00e1mot ig\u00e9nyel, # mint a deltanyomtat\u00f3k egy\u00e9b mozg\u00e1sai). Az alap\u00e9rtelmezett \u00e9rt\u00e9k a # max_velocity haszn\u00e1lata a max_z_velocity \u00e9rt\u00e9khez. #max_z_accel: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t # (mm/sec^2-en). Ennek be\u00e1ll\u00edt\u00e1sa akkor lehet hasznos, ha a nyomtat\u00f3 # nagyobb gyorsul\u00e1st tud el\u00e9rni XY mozg\u00e1sn\u00e1l, mint Z mozg\u00e1sn\u00e1l (pl. # bemeneti alakform\u00e1l\u00f3 haszn\u00e1latakor). # Az alap\u00e9rtelmez\u00e9s szerinti \u00e9rt\u00e9ke a max_accel a max_z_accel \u00e9rt\u00e9khez. #minimum_z_position: 0 # Az a minim\u00e1lis Z poz\u00edci\u00f3, amelybe a felhaszn\u00e1l\u00f3 utas\u00edthatja a fejet, # hogy mozogjon. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. delta_radius: # A h\u00e1rom line\u00e1ris tengely torony \u00e1ltal alkotott v\u00edzszintes k\u00f6r sugara # (mm-ben). Ez a param\u00e9ter a k\u00f6vetkez\u0151k\u00e9ppen is kisz\u00e1m\u00edthat\u00f3: # delta_radius = smooth_rod_offset - effector_offset - carriage_offset. # Ezt a param\u00e9tert meg kell adni. #print_radius: # Az \u00e9rv\u00e9nyes XY nyomtat\u00f3fej koordin\u00e1t\u00e1k sugara (mm-ben). Ezzel a # be\u00e1ll\u00edt\u00e1ssal testreszabhat\u00f3 a nyomtat\u00f3fej mozg\u00e1sok tartom\u00e1ny # ellen\u0151rz\u00e9se. Ha itt nagy \u00e9rt\u00e9ket adunk meg, akkor lehets\u00e9ges lehet # a nyomtat\u00f3fejet toronnyal val\u00f3 \u00fctk\u00f6z\u00e9sre utas\u00edtani. # Az alap\u00e9rtelmezett a delta_radius a print_radius \u00e9rt\u00e9khez (ami # \u00e1ltal\u00e1ban megakad\u00e1lyozza a torony \u00fctk\u00f6z\u00e9s\u00e9t). # A stepper_a szakasz a bal els\u0151 tornyot vez\u00e9rl\u0151 l\u00e9ptet\u0151t \u00edrja le # (210 fokban). Ez a szakasz az \u00f6sszes toronyhoz tartoz\u00f3 kezd\u0151pont # param\u00e9tereket (homing_speed, homing_retract_dist) is szab\u00e1lyozza. [stepper_a] position_endstop: # T\u00e1vols\u00e1g (mm-ben) a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tt, ha a f\u00fav\u00f3ka az \u00e9p\u00edt\u00e9si # ter\u00fclet k\u00f6zep\u00e9n van, \u00e9s a v\u00e9g\u00fctk\u00f6z\u0151 kiold. Ezt a param\u00e9tert meg kell # adni a stepper_a; a stepper_b \u00e9s a stepper_c eset\u00e9n ez a param\u00e9ter # alap\u00e9rtelmezett \u00e9rt\u00e9ke a stepper_a param\u00e9terben megadott \u00e9rt\u00e9k. arm_length: # A tornyot a nyomtat\u00f3fejjel \u00f6sszek\u00f6t\u0151 \u00e1tl\u00f3s r\u00fad hossza (mm-ben). # Ezt a param\u00e9tert meg kell adni a stepper_a; a stepper_b \u00e9s a stepper_c # eset\u00e9n ez a param\u00e9ter alap\u00e9rtelmezett \u00e9rt\u00e9ke a stepper_a # param\u00e9terben megadott \u00e9rt\u00e9k. #angle: # Ez az opci\u00f3 azt a sz\u00f6get adja meg (fokban), amelyben a torony \u00e1ll. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 210 a stepper_a, 330 a stepper_b \u00e9s # 90 a stepper_c. # A stepper_b szakasz a jobb els\u0151 tornyot vez\u00e9rl\u0151 l\u00e9ptet\u0151t \u00edrja le # (330 fokban). [stepper_b] # A stepper_c szakasz a h\u00e1ts\u00f3 tornyot vez\u00e9rl\u0151 l\u00e9ptet\u0151t \u00edrja le (90 fokban). [stepper_c] # A delta_calibrate szakasz lehet\u0151v\u00e9 teszi a DELTA_CALIBRATE # kiterjesztett G-k\u00f3d parancsot, amely k\u00e9pes kalibr\u00e1lni a torony # v\u00e9g\u00e1ll\u00e1s\u00e1nak poz\u00edci\u00f3it \u00e9s sz\u00f6geit. [delta_calibrate] radius: # A vizsg\u00e1lhat\u00f3 ter\u00fclet sugara (mm-ben). Ez a vizsg\u00e1land\u00f3 # f\u00fav\u00f3kakoordin\u00e1t\u00e1k sugara; Ha XY eltol\u00e1s\u00fa automata szond\u00e1t haszn\u00e1l, # akkor v\u00e1lasszon el\u00e9g kicsi sugarat, hogy a szonda mindig a t\u00e1rgyasztal f\u00f6l\u00e9 # f\u00e9rjen. Ezt a param\u00e9tert meg kell adni. #speed: 50 # A nem szond\u00e1z\u00e1s sebess\u00e9ge (mm/sec-ben) mozog a kalibr\u00e1l\u00e1s sor\u00e1n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), ameddig a fejnek el kell mozdulnia # k\u00f6zvetlen\u00fcl a szondam\u0171velet megkezd\u00e9se el\u0151tt. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. Deltesian Kinematika \u00b6 L\u00e1sd example-deltesian.cfg egy p\u00e9lda deltesian kinematika konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Itt csak a deltesian nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd a \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: deltesian max_z_velocity: # Deltesian nyomtat\u00f3kn\u00e1l ez korl\u00e1tozza a Z tengely mozg\u00e1s\u00e1nak maxim\u00e1lis # sebess\u00e9g\u00e9t (mm/s-ban). Ezzel a be\u00e1ll\u00edt\u00e1ssal cs\u00f6kkenthet\u0151 a fel/le # mozg\u00e1sok maxim\u00e1lis sebess\u00e9ge (amelyek nagyobb l\u00e9p\u00e9ssz\u00e1mot # ig\u00e9nyelnek, mint egy deltesian nyomtat\u00f3 egy\u00e9b l\u00e9p\u00e9sei). # Az alap\u00e9rtelmezett a max_velocity a max_z_velocity \u00e9rt\u00e9khez. #max_z_accel: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t # (mm/s^2-ben). Ennek be\u00e1ll\u00edt\u00e1sa akkor lehet hasznos, ha a nyomtat\u00f3 # nagyobb gyorsul\u00e1st tud el\u00e9rni XY mozg\u00e1sn\u00e1l, mint Z mozg\u00e1sn\u00e1l # (pl. bemeneti alakform\u00e1l\u00f3 haszn\u00e1latakor). # Az alap\u00e9rtelmezett a max_accel a max_z_accel \u00e9rt\u00e9khez. #minim\u00e1lis_z_poz\u00edci\u00f3: 0 # Az a minim\u00e1lis Z poz\u00edci\u00f3, amelybe a felhaszn\u00e1l\u00f3 utas\u00edthatja a fejet, hogy # mozogjon. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #min_angle: 5 # Ez azt a minim\u00e1lis sz\u00f6get (fokban) jelenti a v\u00edzszinteshez k\u00e9pest, amelyet # a deltesian karok el\u00e9rhetnek. Ennek a param\u00e9ternek az a c\u00e9lja, hogy # megakad\u00e1lyozza, a karok teljesen v\u00edzszintesbe mozgat\u00e1s\u00e1t, ami az XZ # tengely v\u00e9letlen megfordul\u00e1s\u00e1t kock\u00e1ztatn\u00e1. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #print_width: # Az \u00e9rv\u00e9nyes nyomtat\u00f3fej X koordin\u00e1t\u00e1k t\u00e1vols\u00e1ga (mm-ben). Ezzel a # be\u00e1ll\u00edt\u00e1ssal testreszabhat\u00f3 a nyomtat\u00f3fej mozg\u00e1sok tartom\u00e1nyellen\u0151rz\u00e9se. # Ha itt nagy \u00e9rt\u00e9ket adunk meg, akkor el\u0151fordulhat, hogy a nyomtat\u00f3fejet a # toronnyal val\u00f3 \u00fctk\u00f6z\u00e9sre utas\u00edthatjuk. # Ez a be\u00e1ll\u00edt\u00e1s \u00e1ltal\u00e1ban a t\u00e1rgyasztal sz\u00e9less\u00e9gnek felel meg (mm-ben). #slow_ratio: 3 # Az az ar\u00e1ny, amely korl\u00e1tozza a sebess\u00e9get \u00e9s a gyorsul\u00e1st az X tengely # sz\u00e9ls\u0151 pontjaihoz k\u00f6zeli mozg\u00e1sokn\u00e1l. Ha a f\u00fcgg\u0151leges t\u00e1vols\u00e1g osztva a # v\u00edzszintes t\u00e1vols\u00e1ggal meghaladja a slow_ratio \u00e9rt\u00e9k\u00e9t, akkor a sebess\u00e9g \u00e9s # a gyorsul\u00e1s a n\u00e9vleges \u00e9rt\u00e9k\u00fck fel\u00e9re korl\u00e1toz\u00f3dik. Ha a f\u00fcgg\u0151leges t\u00e1vols\u00e1g # osztva a v\u00edzszintes t\u00e1vols\u00e1ggal meghaladja a slow_ratio \u00e9rt\u00e9k\u00e9nek # k\u00e9tszeres\u00e9t, akkor a sebess\u00e9g \u00e9s a gyorsul\u00e1s a n\u00e9vleges \u00e9rt\u00e9k\u00fck # egynegyed\u00e9re korl\u00e1toz\u00f3dik. Az alap\u00e9rtelmezett \u00e9rt\u00e9k a 3. # A stepper_left szakasz a bal tornyot vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. # Ez a szakasz az \u00f6sszes toronyhoz tartoz\u00f3 homing param\u00e9tereket # (homing_speed, homing_retract_dist) is szab\u00e1lyozza. [stepper_left] position_endstop: # T\u00e1vols\u00e1g (mm-ben) a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tt, ha a f\u00fav\u00f3ka az \u00e9p\u00edt\u00e9si ter\u00fclet # k\u00f6zep\u00e9n van, \u00e9s a v\u00e9g\u00fctk\u00f6z\u0151k kiold\u00f3dnak. Ezt a param\u00e9tert meg kell adni a # stepper_left; a stepper_right eset\u00e9n ez a param\u00e9ter alap\u00e9rtelmezett \u00e9rt\u00e9ke # a stepper_left param\u00e9terben megadott \u00e9rt\u00e9k. arm_length: # A toronykocsit a nyomtat\u00f3fejjel \u00f6sszek\u00f6t\u0151 \u00e1tl\u00f3s r\u00fad hossza (mm-ben). # Ezt a param\u00e9tert meg kell adni a stepper_left; a stepper_right eset\u00e9n ez a # param\u00e9ter alap\u00e9rtelmezett \u00e9rt\u00e9ke a stepper_left param\u00e9ter megadott \u00e9rt\u00e9ke. arm_x_length: # V\u00edzszintes t\u00e1vols\u00e1g a nyomtat\u00f3fej \u00e9s a torony k\u00f6z\u00f6tt, ha minden # kezd\u0151ponton van. Ezt a param\u00e9tert meg kell adni a stepper_left; a # stepper_right eset\u00e9n ez a param\u00e9ter alap\u00e9rtelmezett \u00e9rt\u00e9ke a # stepper_left param\u00e9terben megadott \u00e9rt\u00e9k. # A stepper_right szekci\u00f3 a jobb oldali tornyot vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_right] # A stepper_y szakasz az Y tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l # egy deltesian g\u00e9pen. [stepper_y] CoreXY Kinematika \u00b6 L\u00e1sd example-corexy.cfg egy p\u00e9lda corexy (\u00e9s h-bot) kinematikai f\u00e1jlt. Itt csak a CoreXY nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: corexy max_z_velocity: # Ez \u00e1ll\u00edtja be a Z ir\u00e1ny\u00fa mozg\u00e1s maxim\u00e1lis sebess\u00e9g\u00e9t (mm/sec-ben). # Ez a be\u00e1ll\u00edt\u00e1s haszn\u00e1lhat\u00f3 a Z l\u00e9ptet\u0151motor maxim\u00e1lis sebess\u00e9gkorl\u00e1toz\u00e1s\u00e1ra. # Az alap\u00e9rtelmez\u00e9s szerint a max_velocity a k\u00f6vetkez\u0151 \u00e9rt\u00e9kekre vonatkozik # amely a max_z_velocity. max_z_accel: # Ez \u00e1ll\u00edtja be a mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t (mm/sec^2 -ben) # a Z tengely ment\u00e9n. Korl\u00e1tozza a Z l\u00e9ptet\u0151motor gyorsul\u00e1s\u00e1t. # Az alap\u00e9rtelmezett max_accel haszn\u00e1lata a max_z_accel paranccsal t\u00f6rt\u00e9nik. # A stepper_x szakasz az X tengely, valamint az X+Y mozg\u00e1st vez\u00e9rl\u0151 # l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_x] # A stepper_y szakasz az Y tengely, valamint az X+Y mozg\u00e1st vez\u00e9rl\u0151 # l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_y] # A stepper_z szakasz a Z tengely, mozg\u00e1st vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_z] CoreXZ Kinematika \u00b6 L\u00e1sd example-corexz.cfg egy p\u00e9lda CoreXZ kinematikai konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Itt csak a CoreXZ nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: corexz max_z_velocity: # Ez \u00e1ll\u00edtja be a Z ir\u00e1ny\u00fa mozg\u00e1s maxim\u00e1lis sebess\u00e9g\u00e9t (mm/sec-ben). # Ez a be\u00e1ll\u00edt\u00e1s haszn\u00e1lhat\u00f3 a Z l\u00e9ptet\u0151motor maxim\u00e1lis sebess\u00e9gkorl\u00e1toz\u00e1s\u00e1ra. # Az alap\u00e9rtelmez\u00e9s szerint a max_velocity a k\u00f6vetkez\u0151 \u00e9rt\u00e9kekre vonatkozik # amely a max_z_velocity. max_z_accel: # Ez \u00e1ll\u00edtja be a mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t (mm/sec^2 -ben) # a Z tengely ment\u00e9n. Korl\u00e1tozza a Z l\u00e9ptet\u0151motor gyorsul\u00e1s\u00e1t. # Az alap\u00e9rtelmezett max_accel haszn\u00e1lata a max_z_accel paranccsal t\u00f6rt\u00e9nik. # A stepper_x szakasz az X tengely, valamint az X+Z mozg\u00e1st vez\u00e9rl\u0151 # l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_x] # A stepper_y szakasz az Y tengely l\u00e9ptet\u0151 vez\u00e9rl\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_y] # A stepper_z szakasz a Z tengely le\u00edr\u00e1s\u00e1ra szolg\u00e1l, valamint a # l\u00e9ptet\u0151, amely az X-Z mozg\u00e1st vez\u00e9rli. [stepper_z] Hybrid-CoreXY Kinematika \u00b6 L\u00e1sd az example-hybrid-corexy.cfg p\u00e9ld\u00e1t egy hibrid CoreXY kinematikai konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Ez a kinematika Markforged kinematikak\u00e9nt is ismert. Itt csak a hibrid CoreXY nyomtat\u00f3kra jellemz\u0151 param\u00e9tereket \u00edrjuk le, a rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: hybrid_corexy max_z_velocity: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis sebess\u00e9g\u00e9t (mm/sec-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a max_velocity haszn\u00e1lata a max_z_velocity \u00e9rt\u00e9khez. max_z_accel: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t (mm/sec^2-en). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a max_accel haszn\u00e1lata a max_z_accel \u00e9rt\u00e9khez. # A stepper_x szakasz az X tengely, valamint az X-Y mozg\u00e1st vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [l\u00e9pcs\u0151_x] # A stepper_y szakasz az Y tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [l\u00e9p\u00e9s_y] # A stepper_z szakasz a Z tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_z] Hybrid-CoreXZ Kinematika \u00b6 L\u00e1sd az example-hybrid-corexz.cfg p\u00e9ld\u00e1t egy hibrid CoreXZ kinematikai konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Ez a kinematika Markforged kinematikak\u00e9nt is ismert. Itt csak a hibrid CoreXY nyomtat\u00f3kra jellemz\u0151 param\u00e9tereket \u00edrjuk le, a rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: hybrid_corexz max_z_velocity: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis sebess\u00e9g\u00e9t (mm/sec-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a max_velocity haszn\u00e1lata a max_z_velocity \u00e9rt\u00e9khez. max_z_accel: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t (mm/sec^2-en). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a max_accel haszn\u00e1lata a max_z_accel \u00e9rt\u00e9khez. # A stepper_x szakasz az X tengely, valamint az X-Z mozg\u00e1st vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [l\u00e9pcs\u0151_x] # A stepper_y szakasz az Y tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [l\u00e9p\u00e9s_y] # A stepper_z szakasz a Z tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_z] Polar Kinematika \u00b6 L\u00e1sd az example-polar.cfg egy p\u00e9lda a Polar kinematika konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1hoz. Itt csak a Polar nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. A POL\u00c1RIS KINEMATIKA M\u00c9G FOLYAMATBAN VAN. A 0, 0 poz\u00edci\u00f3 k\u00f6r\u00fcli mozg\u00e1sokr\u00f3l ismert, hogy nem m\u0171k\u00f6dnek megfelel\u0151en. [printer] kinematics: polar max_z_velocity: # Ez be\u00e1ll\u00edtja a maxim\u00e1lis mozg\u00e1si sebess\u00e9get (mm/sec-ben) a Z tengely # ment\u00e9n. Ezzel a be\u00e1ll\u00edt\u00e1ssal korl\u00e1tozhat\u00f3 a Z l\u00e9ptet\u0151motor maxim\u00e1lis # sebess\u00e9ge. Az alap\u00e9rtelmezett \u00e9rt\u00e9k a max_velocity haszn\u00e1lata a # max_z_velocity \u00e9rt\u00e9khez. max_z_accel: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t # (mm/sec^2-en). Korl\u00e1tozza a Z l\u00e9ptet\u0151motor gyorsul\u00e1s\u00e1t. # Az alap\u00e9rtelmez\u00e9s szerint a max_accel \u00e9rt\u00e9ke a max_z_accel. # A stepper_bed szakasz a t\u00e1rgyasztalt vez\u00e9rl\u0151 stepper le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_bed] gear_ratio: # Meg kell adni a gear_ratio \u00e9rt\u00e9ket, \u00e9s a rotation_distance nem adhat\u00f3 # meg. P\u00e9ld\u00e1ul, ha a t\u00e1rgyasztal egy 80 fogas ker\u00e9kkel rendelkezik, amelyet # egy l\u00e9ptet\u0151motor hajt meg egy 16 fogas ker\u00e9kkel, akkor a \u201e80:16\u201d # \u00e1tt\u00e9teli ar\u00e1nyt kell megadni. Ezt a param\u00e9tert meg kell adni. # A stepper_arm szakasz a karon l\u00e9v\u0151 kocsit vez\u00e9rl\u0151 l\u00e9ptet\u0151 # le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_arm] # A stepper_z szakasz a Z tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_z] Forg\u00f3 delta Kinematika \u00b6 L\u00e1sd az example-rotary-delta.cfg egy p\u00e9lda a forg\u00f3 delta kinematika konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1hoz. Itt csak a forg\u00f3 delta nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. A FORG\u00d3 DELTA KINEMATIKA M\u00c9G FOLYAMATBAN VAN. A c\u00e9lk\u00f6vet\u0151 mozg\u00e1sok id\u0151z\u00edtettek lehetnek, \u00e9s n\u00e9h\u00e1ny hat\u00e1rellen\u0151rz\u00e9s nincs implement\u00e1lva. [printer] kinematics: rotary_delta max_z_velocity: # Delta nyomtat\u00f3kn\u00e1l ez korl\u00e1tozza a Z tengely mozg\u00e1s\u00e1nak maxim\u00e1lis # sebess\u00e9g\u00e9t (mm/sec-ben). Ezzel a be\u00e1ll\u00edt\u00e1ssal cs\u00f6kkenthet\u0151 a fel/le # mozg\u00e1sok maxim\u00e1lis sebess\u00e9ge (amely nagyobb l\u00e9p\u00e9ssz\u00e1mot ig\u00e9nyel, # mint a deltanyomtat\u00f3k egy\u00e9b mozg\u00e1sai). Az alap\u00e9rtelmezett \u00e9rt\u00e9k a # max_velocity haszn\u00e1lata a max_z_velocity \u00e9rt\u00e9khez. #minimum_z_position: 0 # A minim\u00e1lis Z poz\u00edci\u00f3, amelybe a felhaszn\u00e1l\u00f3 utas\u00edthatja a fejet, hogy # mozduljon el. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. shoulder_radius: # A h\u00e1rom g\u00f6mbcsukl\u00f3 \u00e1ltal alkotott v\u00edzszintes k\u00f6r sugara (mm-ben), # m\u00ednusz az effektor csukl\u00f3k \u00e1ltal alkotott k\u00f6r sugara. Ez a param\u00e9ter a # k\u00f6vetkez\u0151k\u00e9ppen is kisz\u00e1m\u00edthat\u00f3: # shoulder_radius = (delta_f - delta_e) / sqrt(12) # Ezt a param\u00e9tert meg kell adni. shoulder_height: # A g\u00f6mbcsukl\u00f3k t\u00e1vols\u00e1ga (mm-ben) a t\u00e1rgyasztalt\u00f3l, m\u00ednusz az effektor # nyomtat\u00f3fej magass\u00e1ga. Ezt a param\u00e9tert meg kell adni. # A stepper_a szakasz a jobb h\u00e1ts\u00f3 kart vez\u00e9rl\u0151 l\u00e9ptet\u0151t \u00edrja le (30 fokban). # Ez a szakasz szab\u00e1lyozza az \u00f6sszes karhoz tartoz\u00f3 kezd\u0151pont felv\u00e9teli # param\u00e9tereket (homing_speed, homing_retract_dist). [stepper_a] gear_ratio: # Meg kell adni a gear_ratio \u00e9rt\u00e9ket, \u00e9s nem lehet megadni a rotation_distance # \u00e9rt\u00e9ket. P\u00e9ld\u00e1ul, ha a karban van egy 80 fog\u00fa ker\u00e9k, amelyet egy 16 fog\u00fa # ker\u00e9k hajt meg, \u00e9s amely egy 60 fog\u00fa sz\u00edjt\u00e1rcs\u00e1val van \u00f6sszek\u00f6tve, amelyet # egy 16 fog\u00fa fogasker\u00e9kkel ell\u00e1tott l\u00e9ptet\u0151motor hajt meg, akkor a \"80-as\" # \u00e1tt\u00e9teli ar\u00e1nyt kell megadni: 16, 60:16\". Ezt a param\u00e9tert meg kell adni. position_endstop: # T\u00e1vols\u00e1g (mm-ben) a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tt, ha a f\u00fav\u00f3ka az \u00e9p\u00edt\u00e9si ter\u00fclet # k\u00f6zep\u00e9n van, \u00e9s a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 kiold. Ezt a param\u00e9tert meg kell adni a # stepper_a; a stepper_b \u00e9s stepper_c eset\u00e9n ez a param\u00e9ter alap\u00e9rtelmezett # \u00e9rt\u00e9ke a stepper_a param\u00e9terben megadott \u00e9rt\u00e9k. upper_arm_length: # A \u201efels\u0151 g\u00f6mbcsukl\u00f3t\u201d az \u201eals\u00f3 g\u00f6mbcsukl\u00f3val\u201d \u00f6sszek\u00f6t\u0151 kar hossza (mm-ben). # Ezt a param\u00e9tert meg kell adni a stepper_a; a stepper_b \u00e9s stepper_c eset\u00e9n ez # a param\u00e9ter alap\u00e9rtelmezett \u00e9rt\u00e9ke a stepper_a param\u00e9terben megadott \u00e9rt\u00e9k. lower_arm_length: # A \u201efels\u0151 g\u00f6mbcsukl\u00f3\u201d az \u201eeffekt\u00edv csukl\u00f3val\u201d \u00f6sszek\u00f6t\u0151 kar hossza (mm-ben). # Ezt a param\u00e9tert meg kell adni a stepper_a; a stepper_b \u00e9s stepper_c eset\u00e9n # ez a param\u00e9ter alap\u00e9rtelmezett \u00e9rt\u00e9ke a stepper_a param\u00e9terben megadott \u00e9rt\u00e9k. #angle: # Ez az opci\u00f3 azt a sz\u00f6get adja meg (fokban), amelyben a kar \u00e1ll. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 30 a stepper_a, 150 a stepper_b \u00e9s 270 a stepper_c. # A stepper_b szakasz a bal h\u00e1ts\u00f3 kart vez\u00e9rl\u0151 l\u00e9ptet\u0151t \u00edrja le (150 fokban). [stepper_b] # A stepper_c szakasz az els\u0151 kart vez\u00e9rl\u0151 l\u00e9ptet\u0151t \u00edrja le (270 fokban). [stepper_c] # A delta_calibrate szakasz lehet\u0151v\u00e9 teszi a DELTA_CALIBRATE kiterjesztett G-k\u00f3d # parancsot, amely k\u00e9pes kalibr\u00e1lni a fels\u0151 g\u00f6mbcsukl\u00f3k v\u00e9g\u00e1ll\u00e1s poz\u00edci\u00f3it. [delta_calibrate] radius: # A vizsg\u00e1lhat\u00f3 ter\u00fclet sugara (mm-ben). Ez a vizsg\u00e1land\u00f3 f\u00fav\u00f3kakoordin\u00e1t\u00e1k # sugara; Ha X-Y eltol\u00e1s\u00fa automata szond\u00e1t haszn\u00e1l, akkor v\u00e1lasszon el\u00e9g kicsi # sugarat, hogy a szonda mindig a t\u00e1rgyasztal f\u00f6l\u00e9 f\u00e9rjen. Ezt a param\u00e9tert meg kell adni. #speed: 50 # A nem tapint\u00f3 mozg\u00e1s sebess\u00e9ge (mm/sec-ben) a kalibr\u00e1l\u00e1s sor\u00e1n. # Az alap\u00e9rtelmezett 50. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), ameddig a fejet utas\u00edtani kell, hogy mozduljon el # k\u00f6zvetlen\u00fcl a m\u00e9r\u0151m\u0171velet megkezd\u00e9se el\u0151tt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. K\u00e1belcs\u00f6rl\u0151s Kinematika \u00b6 L\u00e1sd az example-winch.cfg egy p\u00e9ld\u00e1t a k\u00e1belcs\u00f6rl\u0151s kinematika konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1hoz. Itt csak a k\u00e1belcs\u00f6rl\u0151s nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. A K\u00c1BELCS\u00d6RL\u0150 T\u00c1MOGAT\u00c1SA K\u00cdS\u00c9RLETI JELLEG\u0170. A helymeghat\u00e1roz\u00e1s nem val\u00f3sul meg a k\u00e1belcs\u00f6rl\u0151 kinematik\u00e1j\u00e1n. A nyomtat\u00f3 kezd\u0151pont felv\u00e9tel\u00e9hez manu\u00e1lisan k\u00fcldj\u00f6n mozgat\u00e1si parancsokat, am\u00edg a nyomtat\u00f3fej a 0, 0, 0, 0 ponton van, majd adj ki egy G28 parancsot. [printer] kinematics: winch (cs\u00f6rl\u0151s) # A stepper_a szakasz az els\u0151 k\u00e1belcs\u00f6rl\u0151h\u00f6z csatlakoztatott l\u00e9ptet\u0151t \u00edrja le. # Legal\u00e1bb 3 \u00e9s legfeljebb 26 k\u00e1belcs\u00f6rl\u0151 defini\u00e1lhat\u00f3 (stepper_a-t\u00f3l # stepper_z-ig), b\u00e1r \u00e1ltal\u00e1ban 4-et defini\u00e1lnak. [stepper_a] rotation_distance: # A rotation_distance az a n\u00e9vleges t\u00e1vols\u00e1g (mm-ben), amellyel a # nyomtat\u00f3fej elmozdul a k\u00e1belcs\u00f6rl\u0151 fel\u00e9 a l\u00e9ptet\u0151motor minden egyes # teljes fordulat\u00e1n\u00e1l. Ezt a param\u00e9tert meg kell adni. anchor_x: anchor_y: anchor_z: # A k\u00e1belcs\u00f6rl\u0151 X, Y \u00e9s Z helyzete der\u00e9ksz\u00f6g\u0171 t\u00e9rben. # Ezeket a param\u00e9tereket meg kell adni. Nincs Kinematika \u00b6 Lehet\u0151s\u00e9g van egy speci\u00e1lis \"none\" kinematika defini\u00e1l\u00e1s\u00e1ra a Klipper kinematikai t\u00e1mogat\u00e1s\u00e1nak kikapcsol\u00e1s\u00e1hoz. Ez hasznos lehet olyan eszk\u00f6z\u00f6k vez\u00e9rl\u00e9s\u00e9hez, amelyek nem tipikus 3D nyomtat\u00f3k, vagy hibakeres\u00e9si c\u00e9lok. [printer] kinematics: none max_velocity: 1 max_accel: 1 # A max_velocity \u00e9s max_accel param\u00e9tereket meg kell hat\u00e1rozni. # Az \u00e9rt\u00e9keket nem haszn\u00e1ljuk a \"none\" kinematika eset\u00e9n. K\u00f6z\u00f6s extruder \u00e9s f\u0171t\u00f6tt t\u00e1rgyasztal t\u00e1mogat\u00e1s \u00b6 [extruder] \u00b6 Az extruder szakasz a f\u00fav\u00f3ka f\u0171t\u0151berendez\u00e9s param\u00e9tereinek le\u00edr\u00e1s\u00e1ra szolg\u00e1l, az extruder vez\u00e9rl\u00e9s\u00e9t v\u00e9gz\u0151 l\u00e9ptet\u0151vel egy\u00fctt. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1s c\u00edm\u0171 r\u00e9szt. A nyom\u00e1s el\u0151tol\u00e1s hangol\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a nyom\u00e1s el\u0151tol\u00e1si \u00fatmutat\u00f3t . [extruder] step_pin: dir_pin: enable_pin: microsteps: rotation_distance: #full_steps_per_rotation: #gear_ratio: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"l\u00e9ptet\u0151\" r\u00e9szben. Ha a fenti param\u00e9terek # egyike sincs megadva, akkor nem lesz l\u00e9ptet\u0151motor t\u00e1rs\u00edtva a nyomtat\u00f3fejhez # (b\u00e1r a SYNC_EXTRUDER_MOTION parancs fut\u00e1s k\u00f6zben t\u00e1rs\u00edthat egyet). nozzle_diameter: # A f\u00fav\u00f3ka ny\u00edl\u00e1s\u00e1nak \u00e1tm\u00e9r\u0151je (mm-ben). Ezt a param\u00e9tert meg kell adni. filament_diameter: # A nyers sz\u00e1l n\u00e9vleges \u00e1tm\u00e9r\u0151je (mm-ben), amikor az extruderbe ker\u00fcl. # Ezt a param\u00e9tert meg kell adni. #max_extrude_cross_section: # Az extrud\u00e1l\u00e1si keresztmetszet maxim\u00e1lis ter\u00fclete (mm^2-ben) (pl. az # extrud\u00e1l\u00e1si sz\u00e9less\u00e9g szorozva a r\u00e9teg magass\u00e1g\u00e1val). Ez a be\u00e1ll\u00edt\u00e1s # megakad\u00e1lyozza a t\u00falzott m\u00e9rt\u00e9k\u0171 extrud\u00e1l\u00e1st viszonylag kis XY mozg\u00e1sok # sor\u00e1n. Ha egy \u00e1thelyez\u00e9s olyan kih\u00faz\u00e1si sebess\u00e9get k\u00e9r, amely meghaladja # ezt az \u00e9rt\u00e9ket, akkor hiba\u00fczenet jelenik meg. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k: 4.0 * nozzle_diameter^2 #instantaneous_corner_velocity: 1.000 # Az extruder maxim\u00e1lis pillanatnyi sebess\u00e9gv\u00e1ltoz\u00e1sa (mm/sec-ben) # k\u00e9t mozg\u00e1s tal\u00e1lkoz\u00e1s\u00e1n\u00e1l. Az alap\u00e9rtelmezett 1 mm/sec. #max_extrude_only_distance: 50.0 # Maxim\u00e1lis hossza (a nyers nyomtat\u00f3sz\u00e1lnak mm-ben), amely egy # visszah\u00faz\u00e1s vagy csak extrud\u00e1l\u00e1s eset\u00e9n lehets\u00e9ges. Ha egy visszah\u00faz\u00e1s # vagy csak extrud\u00e1l\u00e1si mozg\u00e1s enn\u00e9l az \u00e9rt\u00e9kn\u00e9l nagyobb t\u00e1vols\u00e1got k\u00e9r, # hiba\u00fczenetet ad vissza. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50 mm. #max_extrude_only_velocity: #max_extrude_only_accel: # Az extrudermotor maxim\u00e1lis sebess\u00e9ge (mm/sec-ben) \u00e9s gyorsul\u00e1sa # (mm/sec^2-en) a visszah\u00faz\u00e1sokhoz \u00e9s a csak extrud\u00e1lt mozg\u00e1sokhoz. # Ezek a be\u00e1ll\u00edt\u00e1sok nincsenek hat\u00e1ssal a norm\u00e1l nyomtat\u00e1si sebess\u00e9gekre. # Ha nincs megadva, akkor a sz\u00e1m\u00edt\u00e1sok megfelelnek a 4.0*nozzle_diameter^2 # keresztmetszet\u0171 XY nyomtat\u00e1si mozg\u00e1s hat\u00e1r\u00e1nak. #pressure_advance: 0.0 # Az extruder gyors\u00edt\u00e1sa sor\u00e1n a nyomtat\u00f3fejbe nyomand\u00f3 nyers sz\u00e1l # mennyis\u00e9ge. A lass\u00edt\u00e1s sor\u00e1n azonos mennyis\u00e9g\u0171 izz\u00f3sz\u00e1l h\u00faz\u00f3dik vissza. # M\u00e9rete millim\u00e9ter per millim\u00e9ter/m\u00e1sodperc. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, ami letiltja a nyom\u00e1sn\u00f6vel\u00e9st. #pressure_advance_smooth_time: 0.040 # Id\u0151tartom\u00e1ny (m\u00e1sodpercben), amelyet az extruder \u00e1tlagos sebess\u00e9g\u00e9nek # kisz\u00e1m\u00edt\u00e1s\u00e1hoz haszn\u00e1lnak a nyom\u00e1s el\u0151tol\u00e1shoz. A nagyobb \u00e9rt\u00e9k sim\u00e1bb # extrudermozg\u00e1sokat eredm\u00e9nyez. Ez a param\u00e9ter nem haladhatja meg a # 200 ezredm\u00e1sodpercet. Ez a be\u00e1ll\u00edt\u00e1s csak akkor \u00e9rv\u00e9nyes, ha a # pressure_advance \u00e9rt\u00e9ke nem nulla. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,040 (40 ezredm\u00e1sodperc). # # A fennmarad\u00f3 v\u00e1ltoz\u00f3k az extruder f\u0171t\u00e9s\u00e9t \u00edrj\u00e1k le. heater_pin: # PWM kimeneti \u00e9rintkez\u0151, amely a f\u0171t\u00e9st vez\u00e9rli. # Ezt a param\u00e9tert meg kell adni. #max_power: 1.0 # Az a maxim\u00e1lis teljes\u00edtm\u00e9ny (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), amelyre a # heater_pin be\u00e1ll\u00edthat\u00f3. Az 1,0 \u00e9rt\u00e9k lehet\u0151v\u00e9 teszi, hogy a t\u0171t hosszabb ideig # teljesen enged\u00e9lyezettre lehessen \u00e1ll\u00edtani, m\u00edg a 0,5 \u00e9rt\u00e9k legfeljebb a fele # ideig enged\u00e9lyezi a t\u0171t. Ezzel a be\u00e1ll\u00edt\u00e1ssal korl\u00e1tozhat\u00f3 a f\u0171t\u0151k\u00e9sz\u00fcl\u00e9k teljes # kimen\u0151 teljes\u00edtm\u00e9nye (hosszabb ideig). Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0. sensor_type: # \u00c9rz\u00e9kel\u0151 t\u00edpusa. \u00c1ltal\u00e1nos termisztorok: \u201eEPCOS 100K B57560G104F\u201d, # \u201eATC Semitec 104GT-2\u201d, \u201eATC Semitec 104NT-4-R025H42G\u201d, \u201eGeneric 3950\u201d, # \u201eHoneywell 100K 135-JGBC10K135-1010LAG18 -104F39050L32\", # \"SliceEngineering 450\" \u00e9s \"TDK NTCG104LH104JT1\". Tov\u00e1bbi \u00e9rz\u00e9kel\u0151k\u00e9rt # l\u00e1sd a \"H\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k\" r\u00e9szt. Ezt a param\u00e9tert meg kell adni. sensor_pin: # Anal\u00f3g bemeneti \u00e9rintkez\u0151 csatlakozik az \u00e9rz\u00e9kel\u0151h\u00f6z. # Ezt a param\u00e9tert meg kell adni. #pullup_resistor: 4700 # A termisztorhoz csatlakoztatott felh\u00faz\u00f3 ellen\u00e1ll\u00e1sa (ohmban). # Ez a param\u00e9ter csak akkor \u00e9rv\u00e9nyes, ha az \u00e9rz\u00e9kel\u0151 termisztor. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 4700 ohm. #smooth_time: 1.0 # Egy id\u0151\u00e9rt\u00e9k (m\u00e1sodpercben), amely alatt a h\u0151m\u00e9rs\u00e9kletm\u00e9r\u00e9s sim\u00edt\u00e1sra ker\u00fcl # a m\u00e9r\u00e9si zaj hat\u00e1s\u00e1nak cs\u00f6kkent\u00e9se \u00e9rdek\u00e9ben. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1 m\u00e1sodperc. control: # Vez\u00e9rl\u00e9si algoritmus (pid vagy watermark). Ezt a param\u00e9tert meg kell adni. pid_Kp: pid_Ki: pid_Kd: # Az ar\u00e1nyos (pid_Kp), az integr\u00e1l (pid_Ki) \u00e9s a deriv\u00e1lt (pid_Kd) be\u00e1ll\u00edt\u00e1sai a PID # visszacsatol\u00e1s vez\u00e9rl\u0151 rendszerhez. A Klipper a PID be\u00e1ll\u00edt\u00e1sokat a k\u00f6vetkez\u0151 # \u00e1ltal\u00e1nos k\u00e9plettel \u00e9rt\u00e9keli ki: heater_pwm = (Kp*error+ Ki*integral(error) vagy # Kd*derivative(error)) / 255 Ahol az \u201eerror\u201d a \u201erequested_temperature \u00e9s # measured_temperature\u201d \u00e9s a \u201eheater_pwm\u201d a k\u00e9rt f\u0171t\u00e9si sebess\u00e9g 0,0 teljes # kikapcsolt \u00e9s 1,0 teljes bekapcsolva. Fontold meg a PID_CALIBRATE parancs # haszn\u00e1lat\u00e1t a param\u00e9terek lek\u00e9r\u00e9s\u00e9hez. A pid_Kp, pid_Ki \u00e9s pid_Kd # param\u00e9tereket meg kell adni a PID f\u0171t\u0151berendez\u00e9sekhez. #max_delta: 2.0 # A \u201ewatermark\u201d vez\u00e9rl\u00e9s\u0171 f\u0171t\u0151berendez\u00e9seken ez a f\u0171t\u0151elem kikapcsol\u00e1sa # el\u0151tti c\u00e9lh\u0151m\u00e9rs\u00e9klet feletti Celsius-fokkal, valamint a f\u0171t\u0151elem \u00fajb\u00f3li # bekapcsol\u00e1sa el\u0151tti c\u00e9lh\u0151m\u00e9rs\u00e9klet alatti fokok sz\u00e1ma. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 2 Celsius-fok. #pwm_cycle_time: 0.100 # Id\u0151 m\u00e1sodpercben a f\u0171t\u0151elem minden szoftveres PWM-ciklus\u00e1hoz. # Nem aj\u00e1nlott ezt be\u00e1ll\u00edtani, hacsak nincs elektromos k\u00f6vetelm\u00e9ny # a f\u0171t\u0151elem m\u00e1sodpercenk\u00e9nti 10-n\u00e9l gyorsabb kapcsol\u00e1s\u00e1ra. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,100 m\u00e1sodperc. #min_extrude_temp: 170 # Az a minim\u00e1lis h\u0151m\u00e9rs\u00e9klet (Celsiusban), amelyen az extruder mozgat\u00e1si # parancsai kiadhat\u00f3k. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 170 Celsius. min_temp: max_temp: # Az \u00e9rv\u00e9nyes h\u0151m\u00e9rs\u00e9kletek maxim\u00e1lis tartom\u00e1nya (Celsiusban), amelyen # bel\u00fcl a f\u0171t\u0151elemnek maradnia kell. Ez egy, a mikrovez\u00e9rl\u0151 k\u00f3dj\u00e1ban # be\u00e9p\u00edtett biztons\u00e1gi funkci\u00f3t vez\u00e9rel. Ha a m\u00e9rt h\u0151m\u00e9rs\u00e9klet ezen a # tartom\u00e1nyon k\u00edv\u00fcl esik, akkor a mikrovez\u00e9rl\u0151 le\u00e1ll\u00e1si \u00e1llapotba ker\u00fcl. # Ez az ellen\u0151rz\u00e9s seg\u00edthet bizonyos f\u0171t\u0151 \u00e9s \u00e9rz\u00e9kel\u0151 hardverhib\u00e1k \u00e9szlel\u00e9s\u00e9ben. # \u00c1ll\u00edtsd be ezt a tartom\u00e1nyt el\u00e9g sz\u00e9lesre, hogy a norm\u00e1lis h\u0151m\u00e9rs\u00e9klet ne # okozzon hib\u00e1t. Ezeket a param\u00e9tereket meg kell adni. [heater_bed] \u00b6 A heater_bed szakasz egy f\u0171t\u00f6tt t\u00e1rgyasztalt \u00edr le. Ugyanazokat a f\u0171t\u00e9si be\u00e1ll\u00edt\u00e1sokat haszn\u00e1lja, amelyeket az \"extruder\" szakaszban le\u00edrtunk. [heater_bed] heater_pin: sensor_type: sensor_pin: control: min_temp: max_temp: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"extruder\" szakaszban. T\u00e1rgyasztal szint t\u00e1mogat\u00e1s \u00b6 [bed_mesh] \u00b6 T\u00e1rgyasztal H\u00e1l\u00f3 Kiegyenl\u00edt\u00e9s. Defini\u00e1lhatunk egy bed_mesh konfigur\u00e1ci\u00f3s szakaszt, hogy enged\u00e9lyezz\u00fck a Z tengelyt eltol\u00f3 mozgat\u00e1si transzform\u00e1ci\u00f3kat a m\u00e9rt pontokb\u00f3l gener\u00e1lt h\u00e1l\u00f3 alapj\u00e1n. Ha szond\u00e1t haszn\u00e1lunk a Z-tengely alaphelyzetbe \u00e1ll\u00edt\u00e1s\u00e1ra, aj\u00e1nlott a printer.cfg f\u00e1jlban egy safe_z_home szakaszt defini\u00e1lni a nyomtat\u00e1si ter\u00fclet k\u00f6zep\u00e9re t\u00f6rt\u00e9n\u0151 alaphelyzetbe \u00e1ll\u00edt\u00e1shoz. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd az t\u00e1rgyasztal h\u00e1l\u00f3 \u00fatmutat\u00f3 \u00e9s a parancsreferencia dokumentumokat. Vizu\u00e1lis p\u00e9ld\u00e1k: t\u00e9glalap alak\u00fa t\u00e1rgyasztal, probe_count = 3, 3: x---x---x (max_point) | x---x---x | (min_point) x---x---x kerek t\u00e1rgyasztal, round_probe_count = 5, bed_radius = r: x (0, r) end / x---x---x \\ (-r, 0) x---x---x---x---x (r, 0) \\ x---x---x / x (0, -r) start [bed_mesh] #speed: 50 # A kalibr\u00e1l\u00e1s sor\u00e1n a nem pr\u00f3bamozg\u00e1sok sebess\u00e9ge (mm/sec-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), amelyre a fejnek parancsot kell adni a # mozg\u00e1sra k\u00f6zvetlen\u00fcl a szondam\u0171velet megkezd\u00e9se el\u0151tt. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #mesh_radius: # Meghat\u00e1rozza a h\u00e1l\u00f3 sugar\u00e1t a kerek t\u00e1rgyasztalokhoz. Ne feledd, hogy a # sug\u00e1r a mesh_origin param\u00e9ter \u00e1ltal megadott koordin\u00e1t\u00e1hoz # viszony\u00edtott. Ezt a param\u00e9tert a kerek t\u00e1rgyasztalokn\u00e1l meg kell adni, # a t\u00e9glalap alak\u00fa t\u00e1rgyasztalokn\u00e1l pedig ki kell hagyni. # mesh_origin # Az opci\u00f3 \u00e1ltal meghat\u00e1rozott koordin\u00e1ta. # Ezt a param\u00e9tert kerek t\u00e1rgyasztalok eset\u00e9ben meg kell adni. # De elhagyhat\u00f3 a t\u00e9glalap alak\u00fa t\u00e1rgyasztalok eset\u00e9ben. #mesh_origin: # Meghat\u00e1rozza a h\u00e1l\u00f3 k\u00f6z\u00e9ppontj\u00e1nak X, Y koordin\u00e1t\u00e1j\u00e1t kerek t\u00e1rgyasztalok # eset\u00e9n. Ez a koordin\u00e1ta a szonda hely\u00e9hez k\u00e9pest relat\u00edv. Hasznos # lehet a mesh_origin be\u00e1ll\u00edt\u00e1sa, hogy maximaliz\u00e1ljuk a h\u00e1l\u00f3 m\u00e9ret\u00e9t. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, 0. Ezt a param\u00e9tert el kell hagyni # t\u00e9glalap alak\u00fa t\u00e1rgyasztalok eset\u00e9n. #mesh_min: # Meghat\u00e1rozza a h\u00e1l\u00f3 minim\u00e1lis X, Y koordin\u00e1t\u00e1j\u00e1t t\u00e9glalap alak\u00fa # t\u00e1rgyasztalok eset\u00e9n. Ez a koordin\u00e1ta a szonda hely\u00e9hez k\u00e9pest relat\u00edv. # Ez lesz az els\u0151 szond\u00e1zott pont, amely a legk\u00f6zelebb van az orig\u00f3hoz. # Ezt a param\u00e9tert t\u00e9glalap alak\u00fa t\u00e1rgyasztalok eset\u00e9n meg kell adni. #mesh_max: # Meghat\u00e1rozza a h\u00e1l\u00f3 maxim\u00e1lis X, Y koordin\u00e1t\u00e1j\u00e1t t\u00e9glalap alak\u00fa # t\u00e1rgyasztalok eset\u00e9n. Ugyanazon az elven m\u0171k\u00f6dik, mint a mesh_min, # azonban ez a param\u00e9ter a legt\u00e1volabbi pont lesz, amelyet a t\u00e1rgyasztal # orig\u00f3j\u00e1t\u00f3l vizsg\u00e1lunk. Ezt a param\u00e9tert t\u00e9glalap alak\u00fa t\u00e1rgyasztalok # eset\u00e9n meg kell adni. #probe_count: 3, 3 # T\u00e9glalap alak\u00fa t\u00e1rgyasztalok eset\u00e9n ez egy vessz\u0151vel elv\u00e1lasztott eg\u00e9sz # sz\u00e1mp\u00e1r. X, Y \u00e9rt\u00e9kek, amelyek meghat\u00e1rozz\u00e1k a m\u00e9rni k\u00edv\u00e1nt # pontok sz\u00e1m\u00e1t az egyes tengelyek ment\u00e9n. Egyetlen \u00e9rt\u00e9k is # \u00e9rv\u00e9nyes, ebben az esetben ez az \u00e9rt\u00e9k mindk\u00e9t tengelyre vonatkozik. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 3, 3. #round_probe_count: 5 # A kerek t\u00e1rgyasztalok eset\u00e9ben ez az eg\u00e9sz \u00e9rt\u00e9k hat\u00e1rozza meg a # maxim\u00e1lis sz\u00e1m\u00fa pontok sz\u00e1m\u00e1t, amelyeket minden tengely ment\u00e9n # meg kell vizsg\u00e1lni. Ennek az \u00e9rt\u00e9knek p\u00e1ratlan sz\u00e1mnak kell lennie. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #fade_start: 1.0 # A G-k\u00f3d Z poz\u00edci\u00f3ja, ahol a Z-korrekci\u00f3 fokozatos megsz\u00fcntet\u00e9se # elkezd\u0151dik amikor a fade enged\u00e9lyezve van. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0. #fade_end: 0.0 # A G-k\u00f3d Z poz\u00edci\u00f3ja, amelyben a fading out befejez\u0151dik. Ha be van # \u00e1ll\u00edtva egy fade_start alatti \u00e9rt\u00e9kre a fade ki van kapcsolva. # Meg kell jegyezni, hogy a fade nem k\u00edv\u00e1nt sk\u00e1l\u00e1z\u00e1st adhat a # nyomtat\u00e1s Z tengelye ment\u00e9n. Ha egy felhaszn\u00e1l\u00f3 enged\u00e9lyezni # k\u00edv\u00e1nja a fade-et, a 10.0 \u00e9rt\u00e9k aj\u00e1nlott. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0.0, amely kikapcsolja a fade-et. #fade_target: # A Z poz\u00edci\u00f3, amelyben a fade-nek konverg\u00e1lnia kell. Ha ez az \u00e9rt\u00e9k # nem nulla \u00e9rt\u00e9kre van be\u00e1ll\u00edtva, akkor annak a Z-\u00e9rt\u00e9kek tartom\u00e1ny\u00e1n # bel\u00fcl kell lennie a h\u00e1l\u00f3ban. Azok a felhaszn\u00e1l\u00f3k, akik a Z kezd\u0151ponthoz # k\u00edv\u00e1nnak konverg\u00e1lni, 0-ra kell \u00e1ll\u00edtaniuk. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a h\u00e1l\u00f3 \u00e1tlagos Z \u00e9rt\u00e9ke. #split_delta_z: .025 # A Z k\u00fcl\u00f6nbs\u00e9g m\u00e9rt\u00e9ke (mm-ben) a mozg\u00e1s ment\u00e9n, amely kiv\u00e1lt # egy oszt\u00e1st. Az alap\u00e9rtelmezett \u00e9rt\u00e9k .025. #move_check_distance: 5.0 # A t\u00e1vols\u00e1g (mm-ben) a mozg\u00e1s ment\u00e9n, amelyn\u00e9l a split_delta_z-t # ellen\u0151rizni kell. Ez egyben a minim\u00e1lis hossz, ameddig egy mozg\u00e1st # fel lehet osztani. Alap\u00e9rtelmezett \u00e9rt\u00e9k 5.0. #mesh_pps: 2, 2 # Egy vessz\u0151vel elv\u00e1lasztott eg\u00e9sz sz\u00e1mp\u00e1r X, Y, amely meghat\u00e1rozza a # k\u00f6vetkez\u0151 pontok sz\u00e1m\u00e1t szegmensenk\u00e9nt, amelyeket interpol\u00e1lni kell # a h\u00e1l\u00f3ban az egyes tengelyek ment\u00e9n. A \"szegmens\" \u00fagy defini\u00e1lhat\u00f3, # mint az egyes m\u00e9rt pontok k\u00f6z\u00f6tti t\u00e9r. A felhaszn\u00e1l\u00f3 egyetlen \u00e9rt\u00e9ket # adhat meg, amely mindk\u00e9t tengelyre vonatkozik. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 2, 2. #algoritmus: lagrange # Az alkalmazand\u00f3 interpol\u00e1ci\u00f3s algoritmus. Lehet ak\u00e1r \"lagrange\" vagy # \"bicubic\". Ez az opci\u00f3 nem \u00e9rinti a 3x3-as r\u00e1csokat, amelyek k\u00e9nyszer\u00edtett # lagrange mintav\u00e9telt haszn\u00e1lnak. Az alap\u00e9rtelmezett lagrange. #bicubic_tension: .2 # A bikubik algoritmus haszn\u00e1latakor a fenti fesz\u00fclts\u00e9g param\u00e9ter # alkalmazhat\u00f3 az interpol\u00e1lt meredeks\u00e9g m\u00e9rt\u00e9k\u00e9nek megv\u00e1ltoztat\u00e1s\u00e1ra. # Nagyobb sz\u00e1mok n\u00f6velik a meredeks\u00e9g m\u00e9rt\u00e9k\u00e9t, ami nagyobb # g\u00f6rb\u00fcletet eredm\u00e9nyez a h\u00e1l\u00f3ban. Az alap\u00e9rtelmezett \u00e9rt\u00e9k .2. #relative_reference_index: # Egy pontindex a h\u00e1l\u00f3ban, amelyre minden Z \u00e9rt\u00e9ket hivatkozni kell. # Az enged\u00e9lyez\u00e9se ennek a param\u00e9ternek a bekapcsol\u00e1sa a vizsg\u00e1lt # Z poz\u00edci\u00f3hoz viszony\u00edtott h\u00e1l\u00f3t eredm\u00e9nyez a megadott indexhez k\u00e9pest. #faulty_region_1_min: #faulty_region_1_max: # A hib\u00e1s r\u00e9gi\u00f3t meghat\u00e1roz\u00f3 opcion\u00e1lis pontok. L\u00e1sd docs/Bed_Mesh.md # A hib\u00e1s r\u00e9gi\u00f3kkal kapcsolatos r\u00e9szletek\u00e9rt. Legfeljebb 99 hib\u00e1s r\u00e9gi\u00f3 # adhat\u00f3 hozz\u00e1. Alap\u00e9rtelmez\u00e9s szerint nincsenek hib\u00e1s r\u00e9gi\u00f3k be\u00e1ll\u00edtva. [bed_tilt] \u00b6 T\u00e1rgyasztal d\u0151l\u00e9s kompenz\u00e1ci\u00f3. Defini\u00e1lhatunk egy bed_tilt config szekci\u00f3t, hogy lehet\u0151v\u00e9 tegy\u00fck a ferde t\u00e1rgyasztalt figyelembe vev\u0151 mozg\u00e1stranszform\u00e1ci\u00f3kat. Vedd figyelembe, hogy a bed_mesh \u00e9s a bed_tilt nem kompatibilisek. Mindkett\u0151 nem defini\u00e1lhat\u00f3. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancsreferencia dokumentumot. [bed_tilt] #x_adjust: 0 # Az az \u00e9rt\u00e9k, amit hozz\u00e1 kell adni az egyes mozg\u00e1sok Z # magass\u00e1g\u00e1hoz az X tengely minden mm-\u00e9n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #y_adjust: 0 # Az az \u00e9rt\u00e9k, amit hozz\u00e1 kell adni az egyes mozg\u00e1sok Z # magass\u00e1g\u00e1hoz az Y tengely minden mm-\u00e9n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #z_adjust: 0 # A Z magass\u00e1ghoz hozz\u00e1adand\u00f3 \u00e9rt\u00e9k, amikor a f\u00fav\u00f3ka n\u00e9vlegesen 0, 0. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. # A t\u00f6bbi param\u00e9ter egy BED_TILT_CALIBRATE kiterjesztett G-k\u00f3d # parancsot vez\u00e9rel, amely a megfelel\u0151 X \u00e9s Y be\u00e1ll\u00edt\u00e1si param\u00e9terek # kalibr\u00e1l\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. #points: # Az X, Y koordin\u00e1t\u00e1k list\u00e1ja (soronk\u00e9nt egy a k\u00f6vetkez\u0151 sorokat beh\u00fazva), # amelyeket a BED_TILT_CALIBRATE parancs sor\u00e1n meg kell vizsg\u00e1lni. # Add meg a f\u00fav\u00f3ka koordin\u00e1t\u00e1it, \u00e9s gy\u0151z\u0151dj meg arr\u00f3l, hogy a szonda # a t\u00e1rgyasztal felett van a megadott f\u00fav\u00f3kakoordin\u00e1t\u00e1kon. # Az alap\u00e9rtelmezett az, hogy nem enged\u00e9lyezi a parancsot. #speed: 50 # A nem szond\u00e1z\u00e1s sebess\u00e9ge (mm/sec-ben) mozog a kalibr\u00e1l\u00e1s sor\u00e1n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), ameddig a fejnek el kell mozdulnia # k\u00f6zvetlen\u00fcl a szondam\u0171velet megkezd\u00e9se el\u0151tt. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. [bed_screws] \u00b6 Szersz\u00e1m a t\u00e1rgyasztal szintbe\u00e1ll\u00edt\u00f3 csavarok be\u00e1ll\u00edt\u00e1s\u00e1hoz. Meghat\u00e1rozhat\u00f3 egy [bed_screws] config szakasz a BED_SCREWS_ADJUST G-k\u00f3d parancs enged\u00e9lyez\u00e9s\u00e9hez. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a szintez\u00e9si \u00fatmutat\u00f3 \u00e9s a parancs hivatkoz\u00e1s dokumentumot. [bed_screws] #screw1: # Az els\u0151 t\u00e1rgyasztal kiegyenl\u00edt\u0151 csavar X, Y koordin\u00e1t\u00e1ja. Ez egy # olyan poz\u00edci\u00f3, ahov\u00e1 a f\u00fav\u00f3k\u00e1t kell ir\u00e1ny\u00edtani, mely k\u00f6zvetlen\u00fcl a t\u00e1rgyasztal felett van # (vagy a lehet\u0151 legk\u00f6zelebb, de m\u00e9g mindig a t\u00e1rgyasztal felett). # Ezt a param\u00e9tert meg kell adni. #screw1_name: # Az adott csavar tetsz\u0151leges neve. Ez a n\u00e9v jelenik meg, amikor a seg\u00e9dszkript fut. # Az alap\u00e9rtelmez\u00e9s szerint a n\u00e9v alapja a csavar XY helye. #screw1_fine_adjust: # Egy X, Y koordin\u00e1ta, amelyre a f\u00fav\u00f3k\u00e1t ir\u00e1ny\u00edtani # kell, hogy finom\u00edtani lehessen a t\u00e1rgyasztal szintez\u0151 csavart. # Az alap\u00e9rtelmez\u00e9s szerint a finombe\u00e1ll\u00edt\u00e1s nem t\u00f6rt\u00e9nik meg a t\u00e1rgyasztal csavarj\u00e1n. #screw2: #screw2_name: #screw2_fine_adjust: #... # Tov\u00e1bbi t\u00e1rgyasztal szint\u00e1ll\u00edt\u00f3 csavarok. Legal\u00e1bb h\u00e1rom csavarnak kell lennie. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), ahov\u00e1 a fejnek parancsot kell adni a mozg\u00e1sra amikor az egyik # csavar hely\u00e9r\u0151l a m\u00e1sikra mozog. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #probe_height: 0 # A szonda magass\u00e1ga (mm-ben) a h\u0151fokszab\u00e1lyoz\u00e1s ut\u00e1n. # A t\u00e1rgyasztal \u00e9s a f\u00fav\u00f3ka h\u0151t\u00e1gul\u00e1sa ut\u00e1n. Az alap\u00e9rtelmezett \u00e9rt\u00e9k nulla. #speed: 50 # A kalibr\u00e1l\u00e1s sor\u00e1n a nem m\u00e9r\u00e9si mozg\u00e1sok sebess\u00e9ge (mm/sec-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #probe_speed: 5 # A sebess\u00e9g (mm/sec-ben) a horizont\u00e1lis_move_z poz\u00edci\u00f3b\u00f3l t\u00f6rt\u00e9n\u0151 mozg\u00e1skor. # A probe_height poz\u00edci\u00f3ja. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. [screws_tilt_adjust] \u00b6 Eszk\u00f6z a t\u00e1rgyasztal csavarok d\u0151l\u00e9ssz\u00f6g\u00e9nek be\u00e1ll\u00edt\u00e1s\u00e1hoz Z-szond\u00e1val. Meghat\u00e1rozhat\u00f3 egy screws_tilt_adjust konfigur\u00e1ci\u00f3s szakasz a SCREWS_TILT_CALCULATE G-k\u00f3d parancsal. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a szintez\u00e9si \u00fatmutat\u00f3 \u00e9s a parancs hivatkoz\u00e1s dokumentumot. [screws_tilt_adjust] #screw1: # Az els\u0151 t\u00e1rgyasztal kiegyenl\u00edt\u0151 csavar (X, Y) koordin\u00e1t\u00e1ja. Ez a helyzet a f\u00fav\u00f3ka # utas\u00edt\u00e1s\u00e1hoz \u00fagy, hogy a szonda k\u00f6zvetlen\u00fcl a t\u00e1rgyasztal csavar felett # legyen (vagy a lehet\u0151 legk\u00f6zelebb, mik\u00f6zben tov\u00e1bbra is a t\u00e1rgyasztal felett # van). Ez a sz\u00e1m\u00edt\u00e1sokn\u00e1l haszn\u00e1lt alapcsavar. # Ezt a param\u00e9tert meg kell adni. #screw1_name: # Az adott csavar tetsz\u0151leges neve. Ez a n\u00e9v jelenik meg a seg\u00e9dszkript # futtat\u00e1sakor. Az alap\u00e9rtelmez\u00e9s szerint a n\u00e9v a a csavar X-Y # hely\u00e9re \u00e9p\u00fcl. #screw2: #screw2_name: #... # Tov\u00e1bbi t\u00e1rgyasztal kiegyenl\u00edt\u0151 csavarok. # Legal\u00e1bb k\u00e9t csavart kell meghat\u00e1rozott. #speed: 50 # A kalibr\u00e1l\u00e1s sor\u00e1n a nem m\u00e9r\u0151 mozg\u00e1sok sebess\u00e9ge (mm/sec-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #horizontal_move_z: 5 # A magass\u00e1g (mm-ben), ahov\u00e1 a fejnek el kell mozdulnia. # K\u00f6zvetlen\u00fcl a szondam\u0171velet megkezd\u00e9se el\u0151tt. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #screw_thread: CW-M3 # A t\u00e1rgyasztal szintj\u00e9hez haszn\u00e1lt csavar t\u00edpusa, M3, M4 vagy M5, valamint a # t\u00e1rgyasztal szintbe\u00e1ll\u00edt\u00e1s\u00e1hoz haszn\u00e1lt gomb ir\u00e1nya, az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val # megegyez\u0151 ir\u00e1ny\u00fa cs\u00f6kken\u00e9s az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1ny\u00fa # cs\u00f6kken\u00e9s. Elfogadott \u00e9rt\u00e9kek: CW-M3, CCW-M3, CW-M4, CCW-M4, # CW-M5, CCW-M5. Az alap\u00e9rtelmezett \u00e9rt\u00e9k CW-M3, a legt\u00f6bb nyomtat\u00f3 # M3-as csavart \u00e9s a gombot az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val megegyez\u0151 ir\u00e1nyba # forgatva cs\u00f6kken a t\u00e1vols\u00e1g. [z_tilt] \u00b6 T\u00f6bbsz\u00f6r\u00f6s Z l\u00e9ptet\u0151 d\u0151l\u00e9ssz\u00f6g be\u00e1ll\u00edt\u00e1sa. Ez a funkci\u00f3 lehet\u0151v\u00e9 teszi t\u00f6bb Z l\u00e9ptet\u0151 f\u00fcggetlen be\u00e1ll\u00edt\u00e1s\u00e1t (l\u00e1sd a \"stepper_z1\" szakaszt) a d\u0151l\u00e9s be\u00e1ll\u00edt\u00e1s\u00e1hoz. Ha ez a szakasz jelen van, akkor el\u00e9rhet\u0151v\u00e9 v\u00e1lik a Z_TILT_ADJUST kiterjesztett G-k\u00f3d parancs . [z_tilt] #z_positions: # Az X, Y koordin\u00e1t\u00e1k list\u00e1ja (soronk\u00e9nt egy a k\u00f6vetkez\u0151 sorokat beh\u00fazva), # amelyek le\u00edrj\u00e1k az egyes t\u00e1rgyasztalok \"forg\u00e1spontjainak\" hely\u00e9t. # A \"forg\u00e1spont\" az a pont, ahol a t\u00e1rgyasztal az adott Z l\u00e9ptet\u0151h\u00f6z # kapcsol\u00f3dik. Ezt a f\u00fav\u00f3ka koordin\u00e1t\u00e1ival \u00edrj\u00e1k le (a f\u00fav\u00f3ka X, Y # poz\u00edci\u00f3ja, ha k\u00f6zvetlen\u00fcl a pont felett mozoghat). Az els\u0151 bejegyz\u00e9s a # stepper_z, a m\u00e1sodik a stepper_z1, a harmadik a stepper_z2 stb. # \u00e9rt\u00e9knek felel meg. Ezt a param\u00e9tert meg kell adni. #points: # Az X, Y koordin\u00e1t\u00e1k list\u00e1ja (soronk\u00e9nt egy a k\u00f6vetkez\u0151 sorokat beh\u00fazva), # amelyeket a Z_TILT_ADJUST parancs sor\u00e1n meg kell vizsg\u00e1lni. Add meg # a f\u00fav\u00f3ka koordin\u00e1t\u00e1it, \u00e9s gy\u0151z\u0151dj meg arr\u00f3l, hogy a szonda a t\u00e1rgyasztal # felett van a megadott f\u00fav\u00f3kakoordin\u00e1t\u00e1kon. # Ezt a param\u00e9tert meg kell adni. #speed: 50 # A nem m\u00e9r\u00e9si mozg\u00e1s sebess\u00e9ge (mm/sec-ben) mozog a kalibr\u00e1l\u00e1skor. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), ameddig a fejnek el kell mozdulnia # k\u00f6zvetlen\u00fcl a m\u00e9r\u00e9sek megkezd\u00e9se el\u0151tt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #retries: 0 # Az \u00fajrapr\u00f3b\u00e1lkoz\u00e1sok sz\u00e1ma, ha a vizsg\u00e1lt pontok nincsenek a # t\u0171r\u00e9shat\u00e1ron bel\u00fcl. #retry_tolerance: 0 # Ha az \u00fajrapr\u00f3b\u00e1lkoz\u00e1s enged\u00e9lyezve van, pr\u00f3b\u00e1lkozzon \u00fajra, ha a # legnagyobb \u00e9s a legkisebb vizsg\u00e1lt pont jobban elt\u00e9r, mint a # retry_tolerance. Vedd figyelembe, hogy a v\u00e1ltoz\u00e1s legkisebb egys\u00e9ge # itt egyetlen l\u00e9p\u00e9s lenne. Ha azonban t\u00f6bb pontot vizsg\u00e1l, mint l\u00e9ptet\u0151t, # akkor val\u00f3sz\u00edn\u0171leg lesz egy r\u00f6gz\u00edtett minim\u00e1lis \u00e9rt\u00e9ke a vizsg\u00e1lt pontok # tartom\u00e1ny\u00e1hoz, amelyet a parancs kimenet\u00e9nek megfigyel\u00e9s\u00e9vel # tanulhat meg. [quad_gantry_level] \u00b6 Mozg\u00f3 \u00e1llv\u00e1ny szintez\u00e9se 4 egym\u00e1st\u00f3l f\u00fcggetlen\u00fcl vez\u00e9relt Z-motorral. Korrig\u00e1lja a hiperbolikus parabola hat\u00e1s\u00e1t (krumplichip) a mozg\u00f3 port\u00e1lon, amely rugalmasabb. FIGYELMEZTET\u00c9S: Mozg\u00f3 t\u00e1rgyasztalon t\u00f6rt\u00e9n\u0151 haszn\u00e1lata nemk\u00edv\u00e1natos eredm\u00e9nyekhez vezethet. Ha ez a szakasz jelen van, akkor el\u00e9rhet\u0151v\u00e9 v\u00e1lik a QUAD_GANTRY_LEVEL kiterjesztett G-k\u00f3d parancs. Ez a rutin a k\u00f6vetkez\u0151 Z motor konfigur\u00e1ci\u00f3t felt\u00e9telezi: ---------------- |Z1 Z2| | --------- | | | | | | | | | | x-------- | |Z Z3| ---------------- Ahol X a t\u00e1rgyasztal 0, 0 pontja [quad_gantry_level] #gantry_corners: # Az X, Y koordin\u00e1t\u00e1k \u00faj sorral elv\u00e1lasztott list\u00e1ja, amely le\u00edrja a port\u00e1l # k\u00e9t ellent\u00e9tes sark\u00e1t. Az els\u0151 bejegyz\u00e9s a Z-nek, a m\u00e1sodik a Z2-nek # felel meg. Ezt a param\u00e9tert meg kell adni. #points: # Egy \u00faj sorral elv\u00e1lasztott lista n\u00e9gy X, Y pontb\u00f3l, amelyeket meg kell # vizsg\u00e1lni a QUAD_GANTRY_LEVEL parancs sor\u00e1n. A helyek sorrendje # fontos, \u00e9s sorrendben meg kell egyeznie a Z, Z1, Z2 \u00e9s Z3 helyekkel. # Ezt a param\u00e9tert meg kell adni. A maxim\u00e1lis pontoss\u00e1g \u00e9rdek\u00e9ben # gy\u0151z\u0151dj meg arr\u00f3l, hogy a szonda eltol\u00e1sa be van \u00e1ll\u00edtva. #speed: 50 # A nem m\u00e9r\u00e9si mozg\u00e1sok sebess\u00e9ge (mm/sec-ben) mozog a kalibr\u00e1l\u00e1skor. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), ameddig a fejnek el kell mozdulnia k\u00f6zvetlen\u00fcl # a m\u00e9r\u00e9s megkezd\u00e9se el\u0151tt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #max_adjust: 4 # Biztons\u00e1gi korl\u00e1t, ha enn\u00e9l az \u00e9rt\u00e9kn\u00e9l nagyobb korrekci\u00f3t k\u00e9rnek, # a quad_gantry_level megszakad. #retries: 0 # Az \u00fajrapr\u00f3b\u00e1lkoz\u00e1sok sz\u00e1ma, ha a vizsg\u00e1lt pontok nincsenek a # t\u0171r\u00e9shat\u00e1ron bel\u00fcl. #retry_tolerance: 0 # Ha az \u00fajrapr\u00f3b\u00e1lkoz\u00e1s enged\u00e9lyezve van, pr\u00f3b\u00e1lkozzon \u00fajra, ha a # legnagyobb \u00e9s a legkisebb vizsg\u00e1lt pont jobban elt\u00e9r, # mint a retry_tolerance \u00e9rt\u00e9ke. [skew_correction] \u00b6 Nyomtat\u00f3 ferdes\u00e9gkorrekci\u00f3. Lehet\u0151s\u00e9g van a nyomtat\u00f3 ferdes\u00e9g\u00e9nek szoftveres korrekci\u00f3j\u00e1ra 3 s\u00edkban: XY, XZ, YZ. Ez \u00fagy t\u00f6rt\u00e9nik, hogy egy kalibr\u00e1ci\u00f3s modellt nyomtatunk egy s\u00edk ment\u00e9n, \u00e9s h\u00e1rom hossz\u00fas\u00e1got m\u00e9r\u00fcnk. A ferdes\u00e9gkorrekci\u00f3 jelleg\u00e9b\u0151l ad\u00f3d\u00f3an ezeket a hosszokat G-k\u00f3dal kell be\u00e1ll\u00edtani. L\u00e1sd a Ferdes\u00e9g korrekci\u00f3 \u00e9s a Parancs hivatkoz\u00e1s c\u00edm\u0171 fejezetekben tal\u00e1lhat\u00f3 r\u00e9szleteket. [skew_correction] [z_thermal_adjust] \u00b6 H\u0151m\u00e9rs\u00e9kletf\u00fcgg\u0151 nyomtat\u00f3fej Z poz\u00edci\u00f3 be\u00e1ll\u00edt\u00e1sa. Kompenz\u00e1lja a nyomtat\u00f3 keret\u00e9nek h\u0151t\u00e1gul\u00e1sa \u00e1ltal okozott f\u00fcgg\u0151leges nyomtat\u00f3fej elmozdul\u00e1st val\u00f3s id\u0151ben egy h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 seg\u00edts\u00e9g\u00e9vel (jellemz\u0151en a keret f\u00fcgg\u0151leges szakasz\u00e1hoz csatlakoztatva). L\u00e1sd m\u00e9g: b\u0151v\u00edtett G-k\u00f3d parancsok . [z_thermal_adjust] #temp_coeff: # A h\u0151m\u00e9rs\u00e9kleti t\u00e1gul\u00e1si egy\u00fctthat\u00f3, mm/\u00b0C-ban. P\u00e9ld\u00e1ul a 0,01 mm/\u00b0C # temp_coeff a Z tengelyt 0,01 mm-rel lefel\u00e9 mozgatja minden Celsius-fok # ut\u00e1n, amelyet a h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 n\u00f6vel. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,0 mm/\u00b0C, amely nem alkalmaz be\u00e1ll\u00edt\u00e1st. #smooth_time: # Sim\u00edt\u00e1si ablak a h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151re, m\u00e1sodpercek alatt. # Cs\u00f6kkentheti a motorzajt a t\u00falzottan kis korrekci\u00f3kb\u00f3l # az \u00e9rz\u00e9kel\u0151 zaj\u00e1ra reag\u00e1lva. # Az alap\u00e9rtelmezett 2,0 m\u00e1sodperc. #z_adjust_off_above: # Letiltja a Z magass\u00e1g [mm] feletti be\u00e1ll\u00edt\u00e1sokat. # Az utolj\u00e1ra sz\u00e1m\u00edtott korrekci\u00f3 mindaddig \u00e9rv\u00e9nyes marad, am\u00edg a # nyomtat\u00f3fej ism\u00e9t a megadott Z magass\u00e1g al\u00e1 nem ker\u00fcl. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 99999999,0 mm (mindig bekapcsolva). #max_z_adjustment: # A Z tengelyre alkalmazhat\u00f3 maxim\u00e1lis abszol\u00fat be\u00e1ll\u00edt\u00e1s [mm]. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 99999999,0 mm (korl\u00e1tlan). #sensor_type: #sensor_pin: #min_temp: #max_temp: # H\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 konfigur\u00e1ci\u00f3ja. # A fenti param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd az \"extruder\" r\u00e9szt. #gcode_id: # L\u00e1sd a \"heater_generic\" r\u00e9szt a param\u00e9ter meghat\u00e1roz\u00e1s\u00e1hoz. Testreszabott kezd\u0151pont felv\u00e9tel \u00b6 [safe_z_home] \u00b6 Biztons\u00e1gos Z kezd\u0151pont felv\u00e9tel. Ezzel a mechanizmussal a Z tengelyt egy adott X, Y koordin\u00e1t\u00e1ra lehet \u00e1ll\u00edtani. Ez akkor hasznos, ha p\u00e9ld\u00e1ul a nyomtat\u00f3fejnek a t\u00e1rgyasztal k\u00f6zep\u00e9re kell mozognia, miel\u0151tt a Z-tengelyt kezd\u0151pontpba ir\u00e1ny\u00edtan\u00e1. [safe_z_home] home_xy_position: # Egy X, Y koordin\u00e1ta (pl. 100, 100), ahol a Z homingot v\u00e9gre kell hajtani. # Ezt a param\u00e9tert meg kell adni. #speed: 50.0 # Az a sebess\u00e9g, amellyel a nyomtat\u00f3fej a biztons\u00e1gos Z # kezd\u0151koordin\u00e1t\u00e1ra ker\u00fcl. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50 mm/sec #z_hop: # T\u00e1vols\u00e1g (mm-ben) a Z tengely felemel\u00e9s\u00e9hez a be\u00e1ll\u00edt\u00e1s el\u0151tt. # Ez minden ir\u00e1nyad\u00f3 parancsra vonatkozik, m\u00e9g akkor is, ha nem # a Z tengelyre ir\u00e1nyul. # Ha a Z tengely m\u00e1r be van \u00e1ll\u00edtva, \u00e9s az aktu\u00e1lis Z poz\u00edci\u00f3 kisebb, # mint z_hop, akkor ez a fejet z_hop magass\u00e1gba emeli. # Ha a Z tengely m\u00e9g nincs behelyezve, a fejet a z_hop felemeli. # Az alap\u00e9rtelmezett az, hogy nem val\u00f3s\u00edtja meg a Z ugr\u00e1st. #z_hop_speed: 15.0 # Sebess\u00e9g (mm/sec-ben), amellyel a Z tengely megemelkedik # a homing el\u0151tt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 15mm/sec. #move_to_previous: False # Ha True \u00e9rt\u00e9kre van \u00e1ll\u00edtva, az X \u00e9s Y tengelyek vissza\u00e1llnak # az el\u0151z\u0151 poz\u00edci\u00f3jukra a Z tengely kezd\u0151pont felv\u00e9tele ut\u00e1n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. [homing_override] \u00b6 Kezd\u0151pont felv\u00e9tel fel\u00fclb\u00edr\u00e1l\u00e1sa. Ezt a mechanizmust arra lehet haszn\u00e1lni, hogy a norm\u00e1l G-k\u00f3d bemenetben tal\u00e1lhat\u00f3 G28 helyett egy sor G-k\u00f3d parancsot futtassunk. Ez olyan nyomtat\u00f3kn\u00e1l lehet hasznos, amelyekn\u00e9l a g\u00e9p beind\u00edt\u00e1s\u00e1hoz speci\u00e1lis elj\u00e1r\u00e1sra van sz\u00fcks\u00e9g. [homing_override] gcode: # A norm\u00e1l G-k\u00f3d bemenetben tal\u00e1lhat\u00f3 G28 parancsok helyett # v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. L\u00e1sd a # docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d form\u00e1tumokhoz. # Ha a parancsok list\u00e1ja G28-at tartalmaz, akkor az a nyomtat\u00f3fej norm\u00e1l # elhelyez\u00e9si elj\u00e1r\u00e1s\u00e1t ind\u00edtja el. Az itt felsorolt parancsoknak minden # tengelyt kezd\u0151ponthoz kell ir\u00e1ny\u00edtaniuk. Ezt a param\u00e9tert meg kell adni. #axes: xyz # A fel\u00fcl\u00edrand\u00f3 tengelyek. P\u00e9ld\u00e1ul, ha ez \"Z\"-re van \u00e1ll\u00edtva, akkor a # fel\u00fcl\u00edr\u00e1si parancsf\u00e1jl csak akkor fut le, ha a Z tengely be van \u00e1ll\u00edtva # (pl. \"G28\" vagy \"G28 Z0\" paranccsal). Ne feledd, hogy a fel\u00fcl\u00edr\u00e1si # szkriptnek tov\u00e1bbra is minden tengelyt kell tartalmaznia. # Az alap\u00e9rtelmez\u00e9s az \"xyz\", ami azt eredm\u00e9nyezi, hogy a fel\u00fclb\u00edr\u00e1l\u00f3 # szkript fut minden G28 parancs helyett. #set_position_x: #set_position_y: #set_position_z: # Ha meg van adva, a nyomtat\u00f3 felt\u00e9telezi, hogy a tengely a megadott # poz\u00edci\u00f3ban van a fenti G-k\u00f3d parancsok futtat\u00e1sa el\u0151tt. Ennek a # be\u00e1ll\u00edt\u00e1s\u00e1val letiltja az adott tengelyre vonatkoz\u00f3 kezd\u0151pont # ellen\u0151rz\u00e9seket. Ez akkor lehet hasznos, ha a nyomtat\u00f3fejnek el kell # mozdulnia, miel\u0151tt a norm\u00e1l G28 parancsot megh\u00edvn\u00e1 egy tengelyre. # Az alap\u00e9rtelmez\u00e9s az, hogy nem er\u0151ltetik a tengely poz\u00edci\u00f3j\u00e1t. [endstop_phase] \u00b6 L\u00e9ptet\u0151 f\u00e1zissal be\u00e1ll\u00edtott v\u00e9g\u00e1ll\u00e1sok. A funkci\u00f3 haszn\u00e1lat\u00e1hoz defini\u00e1ljon egy konfigur\u00e1ci\u00f3s r\u00e9szt egy \"endstop_phase\" el\u0151taggal, amelyet a megfelel\u0151 stepper konfigur\u00e1ci\u00f3s r\u00e9sz neve k\u00f6vet (p\u00e9ld\u00e1ul \"[endstop_phase stepper_z]\"). Ez a funkci\u00f3 jav\u00edthatja a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3k pontoss\u00e1g\u00e1t. Adj hozz\u00e1 egy csupasz \"[endstop_phase]\" deklar\u00e1ci\u00f3t az ENDSTOP_PHASE_CALIBRATE parancs enged\u00e9lyez\u00e9s\u00e9hez. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a v\u00e9g\u00e1ll\u00e1si f\u00e1zisok \u00fatmutat\u00f3 \u00e9s a Parancs hivatkoz\u00e1s dokumentumot. [endstop_phase stepper_z] #endstop_accuracy: # Be\u00e1ll\u00edtja a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 v\u00e1rhat\u00f3 pontoss\u00e1g\u00e1t (mm-ben). Ez azt a # maxim\u00e1lis hibat\u00e1vols\u00e1got jel\u00f6li, amelyet a v\u00e9g\u00e1ll\u00e1s kiv\u00e1lthat (pl. ha # egy v\u00e9g\u00e1ll\u00e1s id\u0151nk\u00e9nt 100 um kor\u00e1n vagy legfeljebb 100 um k\u00e9s\u00e9ssel # v\u00e1lthat ki, akkor \u00e1ll\u00edtsd ezt 0,200-ra 200 um eset\u00e9n). Az alap\u00e9rtelmezett # 4*rotation_distance/full_steps_per_rotation. #trigger_phase: # Ez hat\u00e1rozza meg a l\u00e9ptet\u0151motor meghajt\u00f3j\u00e1nak azt az \u00e1ramot, # amelyre sz\u00e1m\u00edtani kell, amikor meg\u00fcti a v\u00e9g\u00e1ll\u00e1st. K\u00e9t sz\u00e1mb\u00f3l \u00e1ll, # amelyeket egy perjel v\u00e1laszt el. Az \u00e1ramb\u00f3l \u00e9s \u00e1ramok teljes sz\u00e1m\u00e1b\u00f3l # (pl. \"7/64\"). Csak akkor \u00e1ll\u00edtsd be ezt az \u00e9rt\u00e9ket, ha biztos abban, hogy a # motorvez\u00e9rl\u0151 minden alkalommal alaphelyzetbe \u00e1ll az MCU # alaphelyzetbe \u00e1ll\u00edt\u00e1sakor. Ha ez nincs be\u00e1ll\u00edtva, akkor a l\u00e9ptet\u0151 f\u00e1zist a # rendszer az els\u0151 kezd\u0151pontban \u00e9rz\u00e9keli, \u00e9s ezt az \u00e1ramot haszn\u00e1lja az # \u00f6sszes k\u00f6vetkez\u0151 kezd\u0151pontfelv\u00e9telkor. #endstop_align_zero: False # Ha True, akkor a tengely position_endstop \u00e9rt\u00e9ke t\u00e9nylegesen m\u00f3dosul, # \u00edgy a tengely nulla poz\u00edci\u00f3ja a l\u00e9ptet\u0151motor teljes l\u00e9p\u00e9s\u00e9n\u00e9l megjelenik. # (Ha a Z tengelyen haszn\u00e1ljuk, \u00e9s a nyomtat\u00e1si r\u00e9teg magass\u00e1ga a teljes # l\u00e9p\u00e9st\u00e1vols\u00e1g t\u00f6bbsz\u00f6r\u00f6se, akkor minden r\u00e9teg egy teljes l\u00e9p\u00e9sben # jelenik meg.) Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. G-k\u00f3d makr\u00f3k \u00e9s esem\u00e9nyek \u00b6 [gcode_macro] \u00b6 G-k\u00f3d makr\u00f3k (a \"gcode_macro\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3). Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancssablonok \u00fatmutat\u00f3j\u00e1t . [gcode_macro my_cmd] #gcode: # A \"my_cmd\" helyett v\u00e9grehajtand\u00f3 G-k\u00f3d-parancsok list\u00e1ja. L\u00e1sd a # docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d form\u00e1tumhoz. # Ezt a param\u00e9tert meg kell adni. #variable_<name>: # B\u00e1rmilyen sz\u00e1m\u00fa be\u00e1ll\u00edt\u00e1s megadhat\u00f3 a \"v\u00e1ltoz\u00f3_\" el\u0151taggal. # Az adott v\u00e1ltoz\u00f3n\u00e9vhez a rendszer hozz\u00e1rendeli az adott \u00e9rt\u00e9ket # (Python liter\u00e1lk\u00e9nt \u00e9rtelmezi), \u00e9s el\u00e9rhet\u0151 lesz a makr\u00f3b\u0151v\u00edt\u00e9s # sor\u00e1n. P\u00e9ld\u00e1ul egy \"variable_fan_speed = 75\" konfigur\u00e1ci\u00f3j\u00fa G-k\u00f3d # parancsok tartalmazhatj\u00e1k az \"M106 S{ fan_speed * 255 }\" \u00e9rt\u00e9ket. # A v\u00e1ltoz\u00f3k fut\u00e1s k\u00f6zben m\u00f3dos\u00edthat\u00f3k a SET_GCODE_VARIABLE # paranccsal (a r\u00e9szletek\u00e9rt l\u00e1sd a docs/Command_Templates.md f\u00e1jlt). # A v\u00e1ltoz\u00f3nevek nem tartalmazhatnak nagybet\u0171ket. #rename_existing: # Ezzel az opci\u00f3val a makr\u00f3 fel\u00fcl\u00edr egy megl\u00e9v\u0151 G-k\u00f3d parancsot, \u00e9s # megadja a parancs kor\u00e1bbi defin\u00edci\u00f3j\u00e1t az itt megadott n\u00e9ven. Ez # haszn\u00e1lhat\u00f3 a be\u00e9p\u00edtett G-k\u00f3d parancsok fel\u00fclb\u00edr\u00e1l\u00e1s\u00e1ra. \u00d3vatosan # kell elj\u00e1rni a parancsok fel\u00fclb\u00edr\u00e1l\u00e1sakor, mivel az \u00f6sszetett \u00e9s v\u00e1ratlan # eredm\u00e9nyeket okozhat. Az alap\u00e9rtelmez\u00e9s szerint nem \u00edrnak fel\u00fcl # megl\u00e9v\u0151 G-k\u00f3d parancsot. #description: G-Code macro # Ez hozz\u00e1ad egy r\u00f6vid le\u00edr\u00e1st, amelyet a HELP parancsn\u00e1l vagy az # automatikus kieg\u00e9sz\u00edt\u00e9s funkci\u00f3 haszn\u00e1latakor haszn\u00e1lnak. # Alap\u00e9rtelmezett a \"G-Code macro\" [delayed_gcode] \u00b6 Egy G-k\u00f3d v\u00e9grehajt\u00e1sa be\u00e1ll\u00edtott k\u00e9sleltet\u00e9ssel. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancssablon \u00fatmutat\u00f3 \u00e9s a Parancs hivatkoz\u00e1s dokumentumot. [delayed_gcode my_delayed_gcode] gcode: # A k\u00e9sleltet\u00e9si id\u0151 letelte ut\u00e1n v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. # A G-Code sablonok t\u00e1mogatottak. Ezt a param\u00e9tert meg kell adni. #initial_duration: 0.0 # A kezdeti k\u00e9sleltet\u00e9s id\u0151tartama (m\u00e1sodpercben). Ha null\u00e1t\u00f3l elt\u00e9r\u0151 # \u00e9rt\u00e9kre van \u00e1ll\u00edtva, a delayed_gcode a megadott sz\u00e1m\u00fa m\u00e1sodpercet # hajtja v\u00e9gre, miut\u00e1n a nyomtat\u00f3 \u201ek\u00e9sz\u201d \u00e1llapotba l\u00e9p. Ez hasznos lehet # inicializ\u00e1l\u00e1si elj\u00e1r\u00e1sok vagy ism\u00e9tl\u0151d\u0151 delayed_gcode eset\u00e9n. Ha 0-ra # van \u00e1ll\u00edtva, a delayed_gcode nem fut le az ind\u00edt\u00e1skor. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. [save_variables] \u00b6 A v\u00e1ltoz\u00f3k lemezre ment\u00e9s\u00e9nek t\u00e1mogat\u00e1sa, hogy azok az \u00fajraind\u00edt\u00e1sok sor\u00e1n is megmaradjanak. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd Parancs hivatkoz\u00e1s \u00e9s a G-k\u00f3d hivatkoz\u00e1s dokumentumot. [save_variables] filename: # K\u00f6telez\u0151 - adj meg egy f\u00e1jlnevet, amelyet a v\u00e1ltoz\u00f3k # lemezre ment\u00e9s\u00e9hez haszn\u00e1lna, pl. ~/variables.cfg [idle_timeout] \u00b6 \u00dcresj\u00e1rati id\u0151t\u00fall\u00e9p\u00e9s. Az \u00fcresj\u00e1rati id\u0151t\u00fall\u00e9p\u00e9s automatikusan enged\u00e9lyezve van. Az alap\u00e9rtelmezett be\u00e1ll\u00edt\u00e1sok m\u00f3dos\u00edt\u00e1s\u00e1hoz adj hozz\u00e1 egy explicit idle_timeout konfigur\u00e1ci\u00f3s szakaszt. [idle_timeout] #gcode: # Az \u00fcresj\u00e1rati id\u0151t\u00fall\u00e9p\u00e9skor v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. # L\u00e1sd a docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d form\u00e1tumhoz. # Az alap\u00e9rtelmezett a \u201eTURN_OFF_HEATERS\u201d \u00e9s \u201eM84\u201d futtat\u00e1sa. #timeout: 600 # A fenti G-k\u00f3d parancsok futtat\u00e1sa el\u0151tti v\u00e1rakoz\u00e1si id\u0151 (m\u00e1sodpercben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a 600 m\u00e1sodperc. V\u00e1laszthat\u00f3 G-k\u00f3d funkci\u00f3k \u00b6 [virtual_sdcard] \u00b6 A virtu\u00e1lis sdcard hasznos lehet, ha a gazdasz\u00e1m\u00edt\u00f3g\u00e9p nem el\u00e9g gyors az OctoPrint megfelel\u0151 futtat\u00e1s\u00e1hoz. Ez lehet\u0151v\u00e9 teszi a Klipper gazdag\u00e9p szoftver sz\u00e1m\u00e1ra, hogy k\u00f6zvetlen\u00fcl kinyomtasd a G-k\u00f3d f\u00e1jlokat, amelyeket a gazdag\u00e9pen l\u00e9v\u0151 k\u00f6nyvt\u00e1rban t\u00e1rolnak a szabv\u00e1nyos sdcard G-k\u00f3d parancsok (pl. M24) haszn\u00e1lat\u00e1val. [virtual_sdcard] path: # A gazdag\u00e9p helyi k\u00f6nyvt\u00e1r\u00e1nak el\u00e9r\u00e9si \u00fatja a G-k\u00f3d f\u00e1jlok keres\u00e9s\u00e9hez. # Ez egy csak olvashat\u00f3 k\u00f6nyvt\u00e1r (az sdcard f\u00e1jl \u00edr\u00e1sa nem t\u00e1mogatott). # Ezt r\u00e1mutathatjuk az OctoPrint felt\u00f6lt\u00e9si k\u00f6nyvt\u00e1r\u00e1ra # (\u00e1ltal\u00e1ban ~/.octoprint/uploads/ ). Ezt a param\u00e9tert meg kell adni. #on_error_gcode: # A hibajelent\u00e9skor v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. [sdcard_loop] \u00b6 N\u00e9h\u00e1ny szakaszok t\u00f6rl\u00e9s\u00e9vel rendelkez\u0151 nyomtat\u00f3, p\u00e9ld\u00e1ul alkatr\u00e9sz-kidob\u00f3 vagy szalagnyomtat\u00f3, haszn\u00e1t veheti az SD-k\u00e1rtya f\u00e1jl hurkolt szakaszainak. (P\u00e9ld\u00e1ul ugyanazon alkatr\u00e9sz \u00fajra \u00e9s \u00fajra t\u00f6rt\u00e9n\u0151 kinyomtat\u00e1s\u00e1hoz, vagy egy alkatr\u00e9sz egy szakasz\u00e1nak megism\u00e9tl\u00e9s\u00e9hez egy l\u00e1nc vagy m\u00e1s ism\u00e9tl\u0151d\u0151 mint\u00e1hoz). A t\u00e1mogatott parancsokat l\u00e1sd a Parancs hivatkoz\u00e1sban . Vagy l\u00e1sd a sample-macros.cfg f\u00e1jlt egy Marlin kompatibilis M808 G-k\u00f3d makr\u00f3\u00e9rt. [sdcard_loop] [force_move] \u00b6 T\u00e1mogatja a l\u00e9peget\u0151motorok k\u00e9zi mozgat\u00e1s\u00e1t diagnosztikai c\u00e9lokra. Figyelem, ennek a funkci\u00f3nak a haszn\u00e1lata a nyomtat\u00f3t \u00e9rv\u00e9nytelen \u00e1llapotba hozhatja. A fontos r\u00e9szletek\u00e9rt l\u00e1sd a Parancs hivatkoz\u00e1s dokumentumot. [force_move] #enable_force_move: False # A FORCE_MOVE \u00e9s a SET_KINEMATIC_POSITION enged\u00e9lyez\u00e9s\u00e9hez # \u00e1ll\u00edtsuk True-ra a kiterjesztett G-k\u00f3d parancsot. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. [pause_resume] \u00b6 Sz\u00fcneteltet\u00e9si/folytat\u00e1si funkci\u00f3 a poz\u00edci\u00f3 r\u00f6gz\u00edt\u00e9s\u00e9nek \u00e9s vissza\u00e1ll\u00edt\u00e1s\u00e1nak t\u00e1mogat\u00e1s\u00e1val. Tov\u00e1bbi inform\u00e1ci\u00f3\u00e9rt l\u00e1sd a Parancs hivatkoz\u00e1s dokumentumot. [pause_resume] #recover_velocity: 50. # Ha a r\u00f6gz\u00edt\u00e9s/vissza\u00e1ll\u00edt\u00e1s enged\u00e9lyezve van, akkor a megadott # sebess\u00e9ggel, t\u00e9r vissza a r\u00f6gz\u00edtett poz\u00edci\u00f3hoz (mm/sec-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50,0 mm/sec. [firmware_retraction] \u00b6 Firmware sz\u00e1l visszah\u00faz\u00e1s. Ez lehet\u0151v\u00e9 teszi a G10 (visszah\u00faz\u00e1s) \u00e9s G11 (visszah\u00faz\u00e1s megsz\u00fcntet\u00e9se) G-k\u00f3d parancsokat, amelyeket sok szeletel\u0151 program haszn\u00e1l. Az al\u00e1bbi param\u00e9terek az ind\u00edt\u00e1si alap\u00e9rtelmezett \u00e9rt\u00e9keket adj\u00e1k meg, b\u00e1r az \u00e9rt\u00e9kek a SET_RETRACTION parancs ) seg\u00edts\u00e9g\u00e9vel m\u00f3dos\u00edthat\u00f3k, lehet\u0151v\u00e9 t\u00e9ve a sz\u00e1lank\u00e9nti be\u00e1ll\u00edt\u00e1sokat \u00e9s a fut\u00e1sidej\u0171 hangol\u00e1st. [firmware_retraction] #retract_length: 0 # A G10 aktiv\u00e1l\u00e1sakor visszah\u00fazand\u00f3 sz\u00e1l hossza (mm-ben), # \u00e9s a G11 aktiv\u00e1l\u00e1sakor visszah\u00fazand\u00f3 (de l\u00e1sd: G11). # unretract_extra_length al\u00e1bb). Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0 mm. #retract_speed: 20 # A beh\u00faz\u00e1s sebess\u00e9ge mm/sec-ben. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 20 mm/sec. #unretract_extra_length: 0 # Az *additional* sz\u00e1l hossza (mm-ben), amelyet hozz\u00e1adunk, # a visszah\u00faz\u00e1s felold\u00e1sakor. #unretract_speed: 10 # A visszah\u00faz\u00e1s felold\u00e1s\u00e1nak sebess\u00e9ge mm/sec-ben. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 10 mm/sec. [gcode_arcs] \u00b6 A G-k\u00f3d \u00edv (G2/G3) parancsok t\u00e1mogat\u00e1sa. [gcode_arcs] #resolution: 1.0 # Egy \u00edv szegmensekre lesz felosztva. Minden szegmens hossza # megegyezik a fent be\u00e1ll\u00edtott felbont\u00e1ssal, mm-ben. Az alacsonyabb # \u00e9rt\u00e9kek finomabb \u00edvet eredm\u00e9nyeznek, de t\u00f6bb munk\u00e1t is v\u00e9geznek # a g\u00e9pen. A be\u00e1ll\u00edtott \u00e9rt\u00e9kn\u00e9l kisebb \u00edvek egyenesekk\u00e9 v\u00e1lnak. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1 mm. [respond] \u00b6 Enged\u00e9lyezd az \"M118\" \u00e9s \"RESPOND\" kiterjesztett parancsokat . [respond] #default_type: echo # Be\u00e1ll\u00edtja az \"M118\" \u00e9s a \"RESPOND\" kimenet alap\u00e9rtelmezett el\u0151tagj\u00e1t # a k\u00f6vetkez\u0151k egyik\u00e9re: # echo: \"echo: \" (Ez az alap\u00e9rtelmezett) # command: \"// \" # error: \"!! \" #default_prefix: echo: # K\u00f6zvetlen\u00fcl be\u00e1ll\u00edtja az alap\u00e9rtelmezett el\u0151tagot. Ha jelen van, ez az # \u00e9rt\u00e9k fel\u00fcl\u00edrja a \u201edefault_type\u201d \u00e9rt\u00e9ket. [exclude_object] \u00b6 Lehet\u0151v\u00e9 teszi az egyes objektumok kiz\u00e1r\u00e1s\u00e1nak vagy t\u00f6rl\u00e9s\u00e9nek t\u00e1mogat\u00e1s\u00e1t a nyomtat\u00e1si folyamat sor\u00e1n. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a kiz\u00e1rand\u00f3 objektumok \u00fatmutat\u00f3t \u00e9s a parancsreferenci\u00e1t . L\u00e1sd a sample-macros.cfg f\u00e1jlt egy Marlin/RepRapFirmware kompatibilis M486 G-k\u00f3d makr\u00f3hoz. [exclude_object] Rezonancia kompenz\u00e1ci\u00f3 \u00b6 [input_shaper] \u00b6 Enged\u00e9lyezi a rezonancia kompenz\u00e1ci\u00f3t . L\u00e1sd m\u00e9g a parancsreferencia dokumentumot. [input_shaper] #shaper_freq_x: 0 # A bemeneti v\u00e1ltoz\u00f3 frekvenci\u00e1ja (Hz-ben) az X tengelyhez. Ez \u00e1ltal\u00e1ban # az X tengely rezonanciafrekvenci\u00e1ja, amelyet a bemeneti v\u00e1ltoz\u00f3knak # el kell nyomnia. Bonyolultabb v\u00e1ltoz\u00f3k, p\u00e9ld\u00e1ul 2- \u00e9s 3-hull\u00e1mos EI # bemeneti v\u00e1ltoz\u00f3k eset\u00e9n ez a param\u00e9ter k\u00fcl\u00f6nb\u00f6z\u0151 szempontok # alapj\u00e1n \u00e1ll\u00edthat\u00f3 be. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, ami letiltja az X # tengely bemeneti v\u00e1ltoz\u00e1s\u00e1t. #shaper_freq_y: 0 # Az Y tengely bemeneti v\u00e1ltoz\u00f3j\u00e1nak frekvenci\u00e1ja (Hz-ben). Ez \u00e1ltal\u00e1ban # az Y tengely rezonanciafrekvenci\u00e1ja, amelyet a bemeneti v\u00e1ltoz\u00f3knak # el kell nyomnia. Bonyolultabb v\u00e1ltoz\u00f3k, p\u00e9ld\u00e1ul 2- \u00e9s 3-hull\u00e1mos EI # bemeneti v\u00e1ltoz\u00f3k eset\u00e9n ez a param\u00e9ter k\u00fcl\u00f6nb\u00f6z\u0151 szempontok # alapj\u00e1n \u00e1ll\u00edthat\u00f3 be. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, ami letiltja az Y # tengely bemeneti v\u00e1ltoz\u00e1s\u00e1t. #shaper_type: mzv # A bemeneti v\u00e1ltoz\u00f3k t\u00edpusa az X \u00e9s az Y tengelyekhez. A t\u00e1mogatott # v\u00e1ltoz\u00f3k a zv, mzv, zvd, ei, 2hump_ei \u00e9s 3hump_ei. Az alap\u00e9rtelmezett # bemeneti v\u00e1ltoz\u00f3 az mzv. #shaper_type_x: #shaper_type_y: # Ha a shaper_type nincs be\u00e1ll\u00edtva, akkor ez a k\u00e9t param\u00e9ter haszn\u00e1lhat\u00f3 # k\u00fcl\u00f6nb\u00f6z\u0151 bemeneti v\u00e1ltoz\u00f3k konfigur\u00e1l\u00e1s\u00e1ra az X \u00e9s Y tengelyekhez. # Ugyanazok az \u00e9rt\u00e9kek t\u00e1mogatottak, mint a shaper_type param\u00e9tern\u00e9l. #damping_ratio_x: 0,1 #damping_ratio_y: 0,1 # Az X \u00e9s Y tengely rezg\u00e9s\u00e9nek csillap\u00edt\u00e1si ar\u00e1nyai, amelyeket a bemeneti # v\u00e1ltoz\u00f3k haszn\u00e1lnak a rezg\u00e9selnyom\u00e1s jav\u00edt\u00e1s\u00e1ra. Az alap\u00e9rtelmezett # \u00e9rt\u00e9k 0,1, ami a legt\u00f6bb nyomtat\u00f3 sz\u00e1m\u00e1ra j\u00f3 \u00e1ltal\u00e1nos \u00e9rt\u00e9k. A legt\u00f6bb # esetben ez a param\u00e9ter nem ig\u00e9nyel hangol\u00e1st, \u00e9s nem szabad # megv\u00e1ltoztatni. [adxl345] \u00b6 ADXL345 gyorsul\u00e1sm\u00e9r\u0151k t\u00e1mogat\u00e1sa. Ez a t\u00e1mogat\u00e1s lehet\u0151v\u00e9 teszi a gyorsul\u00e1sm\u00e9r\u0151 m\u00e9r\u00e9seinek lek\u00e9rdez\u00e9s\u00e9t az \u00e9rz\u00e9kel\u0151t\u0151l. Ez lehet\u0151v\u00e9 teszi az ACCELEROMETER_MEASURE parancsot (tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a G-k\u00f3dok dokumentumot). Az alap\u00e9rtelmezett chipn\u00e9v \"default\", de megadhatunk egy explicit nevet (pl. [adxl345 my_chip_name]). [adxl345] cs_pin: # Az \u00e9rz\u00e9kel\u0151 SPI enged\u00e9lyez\u0151 t\u0171je. Ezt a param\u00e9tert meg kell adni. #spi_speed: 5000000 # A chippel val\u00f3 kommunik\u00e1ci\u00f3 sor\u00e1n haszn\u00e1land\u00f3 SPI sebess\u00e9g (hz-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5000000. #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # L\u00e1sd az \"\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\" c\u00edm\u0171 szakaszt a # fenti param\u00e9terek le\u00edr\u00e1s\u00e1hoz. #axes_map: x, y, z # A gyorsul\u00e1sm\u00e9r\u0151 a nyomtat\u00f3 X, Y \u00e9s Z tengelyeihez kell. # Ez akkor lehet hasznos, ha a gyorsul\u00e1sm\u00e9r\u0151 olyan # orient\u00e1ci\u00f3ban van beszerelve, amely nem egyezik a nyomtat\u00f3\u00e9val. # Ebben az eset\u00e9ben p\u00e9ld\u00e1ul be\u00e1ll\u00edthatjuk ezt az \"Y, X, Z\" \u00e9rt\u00e9kre, # hogy felcser\u00e9lj\u00fck az X \u00e9s Y tengelyeket. Lehet\u0151s\u00e9g van arra is, hogy # neg\u00e1ljunk egy tengelyt, ha a gyorsul\u00e1sm\u00e9r\u0151 ir\u00e1nya ford\u00edtott # (pl. \"X, Z, -Y\"). Az alap\u00e9rtelmezett \u00e9rt\u00e9k \"X, Y, Z\",. #rate: 3200 # Kimeneti adat\u00e1tviteli sebess\u00e9g az ADXL345 eset\u00e9ben. Az ADXL345 # a k\u00f6vetkez\u0151 sebess\u00e9geket t\u00e1mogatja: 3200, 1600, 800, 400, 200, # 100, 50 \u00e9s 25. Vedd figyelembe, hogy nem aj\u00e1nlott megv\u00e1ltoztatni # ezt a sebess\u00e9get az alap\u00e9rtelmezett 3200-r\u00f3l, \u00e9s a 800 alatti # sebess\u00e9gek jelent\u0151sen befoly\u00e1solj\u00e1k a rezonancia m\u00e9r\u00e9s # eredm\u00e9nyeinek min\u0151s\u00e9g\u00e9t. [mpu9250] \u00b6 Az mpu9250 \u00e9s mpu6050 gyorsul\u00e1sm\u00e9r\u0151k t\u00e1mogat\u00e1sa (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"mpu9250\" el\u0151taggal). [mpu9250 my_accelerometer] #i2c_address: # Az alap\u00e9rtelmezett 104 (0x68). #i2c_mcu: #i2c_bus: #i2c_speed: 400000 # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az # \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" r\u00e9szben. # Az alap\u00e9rtelmezett \"i2c_speed\" 400000. #axes_map: x, y, z # Err\u0151l a param\u00e9terr\u0151l az \"adxl345\" szakaszban olvashat b\u0151vebben. [resonance_tester] \u00b6 A rezonancia tesztel\u00e9s \u00e9s az automatikus bemeneti alak\u00edt\u00f3 kalibr\u00e1ci\u00f3 t\u00e1mogat\u00e1sa. A modul legt\u00f6bb funkci\u00f3j\u00e1nak haszn\u00e1lat\u00e1hoz tov\u00e1bbi szoftverf\u00fcgg\u0151s\u00e9geket kell telep\u00edteni; tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt olvasd el a Rezonanci\u00e1k m\u00e9r\u00e9se \u00e9s a parancs hivatkoz\u00e1s c\u00edm\u0171 dokumentumot. A rezonanci\u00e1k m\u00e9r\u00e9se c\u00edm\u0171 \u00fatmutat\u00f3 Max sim\u00edt\u00e1s szakasz\u00e1ban tov\u00e1bbi inform\u00e1ci\u00f3kat tal\u00e1l a max_smoothing param\u00e9terr\u0151l \u00e9s annak haszn\u00e1lat\u00e1r\u00f3l. [resonance_tester] #probe_points: # A rezonanci\u00e1k tesztel\u00e9s\u00e9hez sz\u00fcks\u00e9ges pontok X, Y, Z koordin\u00e1t\u00e1inak # list\u00e1ja (soronk\u00e9nt egy pont). Legal\u00e1bb egy pont sz\u00fcks\u00e9ges. # Gy\u0151z\u0151dj meg r\u00f3la, hogy minden pont az X-Y s\u00edkban n\u00e9mi # biztons\u00e1gi tartal\u00e9kkal rendelkezik \u00e9s (~ n\u00e9h\u00e1ny centim\u00e9ter) # el\u00e9rhet\u0151ek a nyomtat\u00f3fejjel. #accel_chip: # A m\u00e9r\u00e9sekhez haszn\u00e1lt gyorsul\u00e1sm\u00e9r\u0151 chip neve. Ha adxl345 chipet # explicit n\u00e9v n\u00e9lk\u00fcl defini\u00e1lt\u00e1k, ez a param\u00e9ter egyszer\u0171en # hivatkozhat r\u00e1 \"accel_chip: adxl345\"-k\u00e9nt, ellenkez\u0151 esetben egy # \"accel_chip: adxl345\" param\u00e9tert kell megadni. Explicit nevet is meg # kell adni, pl. \"accel_chip: adxl345\" my_chip_n\u00e9v\". # Vagy ezt, vagy a k\u00f6vetkez\u0151 k\u00e9t param\u00e9tert kell be\u00e1ll\u00edtani. #accel_chip_x: #accel_chip_y: # Az egyes tengelyek m\u00e9r\u00e9s\u00e9hez haszn\u00e1land\u00f3 gyorsul\u00e1sm\u00e9r\u0151 chipek # neve. Hasznos lehet p\u00e9ld\u00e1ul a t\u00e1rgyasztal cs\u00fasztat\u00f3s nyomtat\u00f3n\u00e1l, ha k\u00e9t # k\u00fcl\u00f6n gyorsul\u00e1sm\u00e9r\u0151 van felszerelve a t\u00e1rgyasztalra (az Y tengelyhez) \u00e9s a # nyomtat\u00f3fejre (az X tengelyhez). Ezek a param\u00e9terek ugyanolyan # form\u00e1tum\u00faak, mint az \"accel_chip\" param\u00e9ter. Csak az 'accel_chip' # vagy ez a k\u00e9t param\u00e9tert kell megadni. #max_smoothing: # Az egyes tengelyek maxim\u00e1lis bemeneti alak\u00edt\u00f3 sim\u00edt\u00e1sa az alak\u00edt\u00f3 # automatikus kalibr\u00e1l\u00e1sa sor\u00e1n (a 'SHAPER_CALIBRATE' paranccsal). # Alap\u00e9rtelmez\u00e9s szerint nincs megadva maxim\u00e1lis sim\u00edt\u00e1s. # L\u00e1sd a Measuring_Resonances \u00fatmutat\u00f3t. a funkci\u00f3 haszn\u00e1lat\u00e1nak # tov\u00e1bbi r\u00e9szletei\u00e9rt. #min_freq: 5 # Minim\u00e1lis frekvencia a rezonancia vizsg\u00e1lat\u00e1hoz. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5 Hz. #max_freq: 133.33 # Maxim\u00e1lis frekvencia a rezonancia vizsg\u00e1lat\u00e1hoz. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 133,33 Hz. #accel_per_hz: 75 # Ez a param\u00e9ter annak meghat\u00e1roz\u00e1s\u00e1ra szolg\u00e1l, hogy egy adott # frekvencia tesztel\u00e9s\u00e9hez milyen gyorsul\u00e1st haszn\u00e1ljunk: # accel = accel_per_hz * freq. Min\u00e9l nagyobb az \u00e9rt\u00e9k, ann\u00e1l nagyobb # a rezg\u00e9sek energi\u00e1ja. Az alap\u00e9rtelmezett \u00e9rt\u00e9kn\u00e9l alacsonyabbra is # be\u00e1ll\u00edthat\u00f3, ha a rezonanci\u00e1k t\u00fal er\u0151sek lesznek a nyomtat\u00f3n. # Az alacsonyabb \u00e9rt\u00e9kek azonban a nagyfrekvenci\u00e1s rezonanci\u00e1k # m\u00e9r\u00e9s\u00e9t pontatlanabb\u00e1 teszik. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 75 (mm/sec). #hz_per_sec: 1 # Meghat\u00e1rozza a teszt sebess\u00e9g\u00e9t. A [min_freq, max_freq] # tartom\u00e1nyban l\u00e9v\u0151 \u00f6sszes frekvencia tesztel\u00e9sekor a frekvencia # minden m\u00e1sodpercben hz_per_sec \u00e9rt\u00e9kkel n\u0151. A kis \u00e9rt\u00e9kek # lass\u00fav\u00e1 teszik a tesztet, a nagy \u00e9rt\u00e9kek pedig cs\u00f6kkentik a teszt # pontoss\u00e1g\u00e1t. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0 (Hz/sec == sec^-2). Konfigur\u00e1ci\u00f3s f\u00e1jl seg\u00e9dletek \u00b6 [board_pins] \u00b6 Alaplap t\u0171 \u00e1lnevek (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t defini\u00e1lhatunk \"board_pins\" el\u0151taggal). Ezzel defini\u00e1lhat \u00e1lneveket a mikrokontroller t\u0171ihez. [board_pins my_aliases] mcu: mcu # Az \u00e1lneveket haszn\u00e1l\u00f3 mikrovez\u00e9rl\u0151k vessz\u0151vel elv\u00e1lasztott list\u00e1ja. # Az alap\u00e9rtelmez\u00e9s szerint az \u00e1lneveket a f\u0151 \"mcu\"-ra kell alkalmazni. aliases: aliases_<name>: # A \"name=value\" \u00e1lnevek vessz\u0151vel elv\u00e1lasztott list\u00e1ja, amelyet az # adott mikrovez\u00e9rl\u0151h\u00f6z kell l\u00e9trehozni. P\u00e9ld\u00e1ul az \"EXP1_1=PE6\" # egy \"EXP1_1\" \u00e1lnevet hoz l\u00e9tre a \"PE6\" t\u0171h\u00f6z. Ha azonban a \"value\" # a \"<>\" k\u00f6z\u00e9 van z\u00e1rva, akkor a \"name\" lefoglalt t\u0171k\u00e9nt j\u00f6n l\u00e9tre # (p\u00e9ld\u00e1ul az \"EXP1_9=<GND>\" az \"EXP1_9\"-et foglaln\u00e1 le). B\u00e1rmilyen # sz\u00e1m\u00fa \"aliases_\" karakterrel kezd\u0151d\u0151 opci\u00f3 megadhat\u00f3. [include] \u00b6 Include f\u00e1jl t\u00e1mogat\u00e1s. A nyomtat\u00f3 f\u0151 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1hoz tov\u00e1bbi konfigur\u00e1ci\u00f3s f\u00e1jlokat lehet csatolni. Helyettes\u00edt\u0151 karakterek is haszn\u00e1lhat\u00f3k (pl. \"configs/*.cfg\"). [include my_other_config.cfg] [duplicate_pin_override] \u00b6 Ez az eszk\u00f6z lehet\u0151v\u00e9 teszi, hogy egyetlen mikrokontroller-t\u0171t t\u00f6bbsz\u00f6r defini\u00e1ljon egy konfigur\u00e1ci\u00f3s f\u00e1jlban a szok\u00e1sos hibajelent\u00e9s n\u00e9lk\u00fcl. Ez diagnosztikai \u00e9s hibakeres\u00e9si c\u00e9lokra szolg\u00e1l. Erre a szakaszra nincs sz\u00fcks\u00e9g ott, ahol a Klipper t\u00e1mogatja ugyanazon t\u0171 t\u00f6bbsz\u00f6ri haszn\u00e1lat\u00e1t, \u00e9s ennek a fel\u00fclb\u00edr\u00e1latnak a haszn\u00e1lata zavaros \u00e9s v\u00e1ratlan eredm\u00e9nyeket okozhat. [duplicate_pin_override] pins: # Azok a t\u0171k vessz\u0151vel elv\u00e1lasztott list\u00e1ja, amelyek t\u00f6bbsz\u00f6r # haszn\u00e1lhat\u00f3k egy konfigur\u00e1ci\u00f3s f\u00e1jlban norm\u00e1l hibajelent\u00e9s # n\u00e9lk\u00fcl. Ezt a param\u00e9tert meg kell adni. T\u00e1rgyasztal szintez\u0151 hardver \u00b6 [probe] \u00b6 Z magass\u00e1gm\u00e9r\u0151 szonda. Ezt a szakaszt a Z magass\u00e1gm\u00e9r\u0151 hardver enged\u00e9lyez\u00e9s\u00e9hez lehet defini\u00e1lni. Ha ez a szakasz enged\u00e9lyezve van, a PROBE \u00e9s a QUERY_PROBE kiterjesztett G-k\u00f3d parancsok el\u00e9rhet\u0151v\u00e9 v\u00e1lnak. L\u00e1sd m\u00e9g a szonda kalibr\u00e1l\u00e1si \u00fatmutat\u00f3t . A szondaszekci\u00f3 l\u00e9trehoz egy virtu\u00e1lis \"probe:z_virtual_endstop\" t\u0171t is. A stepper_z endstop_pin-t erre a virtu\u00e1lis t\u0171re \u00e1ll\u00edthatjuk a cartesian st\u00edlus\u00fa nyomtat\u00f3kon, amelyek a szond\u00e1t haszn\u00e1lj\u00e1k a Z v\u00e9g\u00e1ll\u00e1s helyett. Ha a \"probe:z_virtual_endstop\" t\u00edpust haszn\u00e1ljuk, akkor ne defini\u00e1ljunk position_endsto-pot a stepper_z konfigur\u00e1ci\u00f3s szakaszban. [probe] pin: # Szonda \u00e9rz\u00e9kel\u00e9si t\u0171. Ha a t\u0171 m\u00e1s mikrokontrolleren van, mint a Z # l\u00e9ptet\u0151k\u00f6n, akkor enged\u00e9lyezi a \"multi-mcu homing\"-ot. # Ezt a param\u00e9tert meg kell adni. #deactivate_on_each_sample: True # Ez hat\u00e1rozza meg, hogy a Klippernek v\u00e9gre kell-e hajtania a deaktiv\u00e1l\u00f3 # G-k\u00f3dot minden egyes vizsg\u00e1lati k\u00eds\u00e9rlet k\u00f6z\u00f6tt, amikor t\u00f6bb vizsg\u00e1lati # sorozatot hajt v\u00e9gre. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #x_offset: 0.0 # A t\u00e1vols\u00e1g (mm-ben) a szonda \u00e9s a f\u00fav\u00f3ka k\u00f6z\u00f6tt az X tengely ment\u00e9n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #y_offset: 0.0 # A szonda \u00e9s a f\u00fav\u00f3ka k\u00f6z\u00f6tti t\u00e1vols\u00e1g (mm-ben) az Y tengely ment\u00e9n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. z_offset: # A t\u00e1rgyasztal \u00e9s a f\u00fav\u00f3ka k\u00f6z\u00f6tti t\u00e1vols\u00e1g (mm-ben), amikor a szonda kiold. # Ezt a param\u00e9tert meg kell adni. #speed: 5.0 # A Z tengely sebess\u00e9ge (mm/sec-ben) tapint\u00e1skor. # Az alap\u00e9rtelmezett 5 mm/sec. #samples: 1 # Az egyes pontok m\u00e9r\u00e9s\u00e9nek sz\u00e1ma. # A vizsg\u00e1lt Z-\u00e9rt\u00e9kek \u00e1tlagol\u00e1sra ker\u00fclnek. # Az alap\u00e9rtelmezett az 1-szeri m\u00e9r\u00e9s. #sample_retract_dist: 2.0 # A nyomtat\u00f3fej felemel\u00e9s\u00e9nek t\u00e1vols\u00e1ga (mm-ben) az egyes m\u00e9r\u00e9sek # k\u00f6z\u00f6tt (egyn\u00e9l t\u00f6bbsz\u00f6ri m\u00e9r\u00e9s eset\u00e9n). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 2 mm. #lift_speed: # A Z tengely sebess\u00e9ge (mm/sec-ben) a szonda felemel\u00e9sekor a m\u00e9r\u00e9sek # k\u00f6z\u00f6tt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k ugyanaz, mint a \u201espeed\u201d param\u00e9tern\u00e9l. #samples_result: average # A sz\u00e1m\u00edt\u00e1si m\u00f3dszer t\u00f6bbsz\u00f6ri m\u00e9r\u00e9s eset\u00e9n \u201emedian\u201d vagy \u201eaverage\u201d. # Az alap\u00e9rtelmezett az average. #samples_tolerance: 0.100 # Az a maxim\u00e1lis Z t\u00e1vols\u00e1g (mm-ben), amellyel egy minta elt\u00e9rhet m\u00e1s # mint\u00e1kt\u00f3l. Ha ezt a t\u0171r\u00e9shat\u00e1rt t\u00fall\u00e9pik, akkor vagy hib\u00e1t jelez, vagy a # k\u00eds\u00e9rlet \u00fajraindul (l\u00e1sd: samples_tolerance_retries). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a 0,100 mm. #samples_tolerance_retries: 0 # Az \u00fajrapr\u00f3b\u00e1lkoz\u00e1sok sz\u00e1ma, ha olyan m\u00e9r\u00e9st csin\u00e1l, amely meghaladja a # samples_tolerance \u00e9rt\u00e9ket. \u00dajrapr\u00f3b\u00e1lkoz\u00e1skor az \u00f6sszes jelenlegi m\u00e9r\u00e9st # eldobja, \u00e9s a m\u00e9r\u00e9si k\u00eds\u00e9rlet \u00fajraindul. Ha a megadott sz\u00e1m\u00fa # \u00fajrapr\u00f3b\u00e1lkoz\u00e1s sor\u00e1n nem \u00e9rkezik \u00e9rv\u00e9nyes m\u00e9r\u00e9sk\u00e9szlet, akkor # hiba\u00fczenet jelenik meg. Az alap\u00e9rtelmezett nulla, ami hib\u00e1t okoz az els\u0151 # m\u00e9r\u00e9sen, amely meghaladja a samples_tolerance \u00e9rt\u00e9ket. #activate_gcode: # Az egyes m\u00e9r\u00e9si k\u00eds\u00e9rletek el\u0151tt v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. # L\u00e1sd a docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d form\u00e1tumhoz. Ez # akkor lehet hasznos, ha a szond\u00e1t valamilyen m\u00f3don aktiv\u00e1lni kell. Ne # adj ki itt olyan parancsot, amely mozgatja a nyomtat\u00f3fejet (pl. G1). # Az alap\u00e9rtelmez\u00e9s szerint nem fut semmilyen speci\u00e1lis G-k\u00f3d parancs # aktiv\u00e1l\u00e1skor. #deactivate_gcode: # Az egyes m\u00e9r\u00e9si k\u00eds\u00e9rletek befejez\u00e9se ut\u00e1n v\u00e9grehajtand\u00f3 G-k\u00f3d # parancsok list\u00e1ja. L\u00e1sd a docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d # form\u00e1tumhoz. Ne adj ki itt olyan parancsot, amely mozgatja a # nyomtat\u00f3fejet. Az alap\u00e9rtelmez\u00e9s az, hogy deaktiv\u00e1l\u00e1skor ne futtassunk # semmilyen speci\u00e1lis G-k\u00f3d parancsot. [bltouch] \u00b6 BLTouch szonda. Ezt a szakaszt (a szondaszakasz helyett) a BLTouch szonda enged\u00e9lyez\u00e9s\u00e9hez lehet defini\u00e1lni. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a BL-Touch \u00fatmutat\u00f3 \u00e9s a parancsreferencia c\u00edm\u0171 dokumentumot. Egy virtu\u00e1lis \"probe:z_virtual_endstop\" t\u0171 is l\u00e9trej\u00f6n (a r\u00e9szleteket l\u00e1sd a \"probe\" szakaszban). [bltouch] sensor_pin: # A BLTouch \u00e9rz\u00e9kel\u0151 \u00e9rintkez\u0151j\u00e9hez csatlakoztatott t\u0171. A legt\u00f6bb # BLTouch eszk\u00f6z megk\u00f6veteli az \u00e9rz\u00e9kel\u0151 \u00e9rintkez\u0151j\u00e9nek felh\u00faz\u00e1s\u00e1t # (a t\u0171n\u00e9v el\u00e9 illessze be a \"^\" karaktert). # Ezt a param\u00e9tert meg kell adni. control_pin: # A BLTouch vez\u00e9rl\u0151t\u0171j\u00e9hez csatlakoztatott t\u0171. # Ezt a param\u00e9tert meg kell adni. #pin_move_time: 0.680 # Az az id\u0151 (m\u00e1sodpercben), ameddig v\u00e1rni kell, am\u00edg a BLTouch t\u0171 # felfel\u00e9 vagy lefel\u00e9 mozog. Az alap\u00e9rtelmezett 0,680 m\u00e1sodperc. #stow_on_each_sample: True # Ez hat\u00e1rozza meg, hogy a Klippernek utas\u00edtania kell-e a t\u0171t, hogy # mozogjon felfel\u00e9 az egyes m\u00e9r\u00e9si k\u00eds\u00e9rletek k\u00f6z\u00f6tt, amikor t\u00f6bb # m\u00e9r\u00e9si sorozatot hajt v\u00e9gre. Miel\u0151tt False \u00e9rt\u00e9kre \u00e1ll\u00edtan\u00e1, olvasd # el a docs/BLTouch.md utas\u00edt\u00e1sait. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #probe_with_touch_mode: False # Ha ez True \u00e9rt\u00e9kre van \u00e1ll\u00edtva, akkor a Klipper \"touch_mode\" # m\u00f3dban vizsg\u00e1lja az eszk\u00f6zt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k False # (tapint\u00e1s \"pin_down\" m\u00f3dban). #pin_up_reports_not_triggered: True # \u00c1ll\u00edtsd be, hogy a BLTouch k\u00f6vetkezetesen \u201enot triggered\u201d # \u00e1llapotban jelentse-e a m\u00e9r\u00e9st a sikeres \u201epin_up\u201d parancs ut\u00e1n. # Ennek True-nak kell lennie minden eredeti BLTouch eszk\u00f6zn\u00e9l. # Miel\u0151tt False \u00e9rt\u00e9kre \u00e1ll\u00edtan\u00e1, olvasd el a docs/BLTouch.md # utas\u00edt\u00e1sait. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #pin_up_touch_mode_reports_triggered: True # \u00c1ll\u00edtsd be, hogy a BLTouch k\u00f6vetkezetesen \"triggered\" \u00e1llapotot # jelentse-e a \"pin_up\" parancs k\u00f6vesse a \"touch_mode\" parancsot. # Ennek True-nak kell lennie minden eredeti BLTouch eszk\u00f6zn\u00e9l. # Miel\u0151tt False \u00e9rt\u00e9kre \u00e1ll\u00edtan\u00e1, olvasd el a docs/BLTouch.md # utas\u00edt\u00e1sait. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #set_output_mode: # K\u00e9rj egy adott \u00e9rz\u00e9kel\u0151t\u0171s kimeneti m\u00f3dot a BLTouch V3.0 # (\u00e9s \u00fajabb) k\u00e9sz\u00fcl\u00e9ken. Ezt a be\u00e1ll\u00edt\u00e1st nem szabad m\u00e1s t\u00edpus\u00fa # szond\u00e1kon haszn\u00e1lni. \u00c1ll\u00edtsd \"5V\"-ra, ha 5 V-os \u00e9rz\u00e9kel\u0151t\u0171s # kimenetet k\u00edv\u00e1n k\u00e9rni (csak akkor haszn\u00e1ld, ha a vez\u00e9rl\u0151k\u00e1rty\u00e1nak # 5 V-os \u00fczemm\u00f3dra van sz\u00fcks\u00e9ge, \u00e9s 5 V-ot toler\u00e1l a bemeneti # jelvezet\u00e9k\u00e9n). \u00c1ll\u00edtsd \u201eOD\u201d \u00e9rt\u00e9kre, hogy az \u00e9rz\u00e9kel\u0151 \u00e9rintkez\u0151j\u00e9nek # kimenete nyitott leereszt\u00e9si m\u00f3dot haszn\u00e1ljon. # Az alap\u00e9rtelmezett az, hogy nem k\u00e9r kimeneti m\u00f3dot. #x_offset: #y_offset: #z_offset: #speed: #lift_speed: #samples: #sample_retract_dist: #samples_result: #samples_tolerance: #samples_tolerance_retries: # A param\u00e9terekkel kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a \"szonda\" r\u00e9szt. [smart_effector] \u00b6 A \"Smart Effector\" a Duet3d-t\u0151l egy Z-szond\u00e1t val\u00f3s\u00edt meg egy er\u0151\u00e9rz\u00e9kel\u0151 seg\u00edts\u00e9g\u00e9vel. Ezt a r\u00e9szt a [probe] helyett defini\u00e1lhatjuk a Smart Effector specifikus funkci\u00f3inak enged\u00e9lyez\u00e9s\u00e9hez. Ez lehet\u0151v\u00e9 teszi a fut\u00e1sidej\u0171 parancsok haszn\u00e1lat\u00e1t is a Smart Effector param\u00e9tereinek fut\u00e1sidej\u0171 be\u00e1ll\u00edt\u00e1s\u00e1hoz. [smart_effector] pin: # A Smart Effector Z Probe kimeneti t\u0171j\u00e9hez (5. csap) csatlakoztatott t\u0171. Vedd # figyelembe, hogy a lapon l\u00e9v\u0151 pullup ellen\u00e1ll\u00e1s \u00e1ltal\u00e1ban nem sz\u00fcks\u00e9ges. # Ha azonban a kimeneti t\u0171n pullup ellen\u00e1ll\u00e1ssal csatlakoztatj\u00e1k a lapon # l\u00e9v\u0151 t\u0171h\u00f6z, akkor ennek az ellen\u00e1ll\u00e1snak nagy \u00e9rt\u00e9k\u0171nek kell lennie # (pl. 10K Ohm vagy t\u00f6bb). N\u00e9h\u00e1ny lapon alacsony \u00e9rt\u00e9k\u0171 pullup ellen\u00e1ll\u00e1s # van a Z szonda bemenet\u00e9n, ami val\u00f3sz\u00edn\u0171leg egy mindig kioldott szonda # \u00e1llapotot fog eredm\u00e9nyezni. Ebben az esetben csatlakoztassa a # Smart Effector-t a k\u00f6vetkez\u0151h\u00f6z a k\u00e1rtya egy m\u00e1sik t\u0171j\u00e9hez. # Ez a param\u00e9ter sz\u00fcks\u00e9ges. #control_pin: # A Smart Effector vez\u00e9rl\u0151 bemeneti pinj\u00e9hez (7-es pin) csatlakoztatott pin. # Ha van, a Smart Effector \u00e9rz\u00e9kenys\u00e9g programoz\u00e1si parancsai v\u00e1lnak # el\u00e9rhet\u0151v\u00e9. #probe_accel: # Ha be van \u00e1ll\u00edtva, korl\u00e1tozza a tapogat\u00f3 mozg\u00e1sok gyorsul\u00e1s\u00e1t # (mm/sec^2-ben). A hirtelen nagy gyorsul\u00e1s a tapogat\u00f3 mozg\u00e1s kezdet\u00e9n # t\u00e9ves tapint\u00e1sind\u00edt\u00e1st okozhat, k\u00fcl\u00f6n\u00f6sen, ha a hotend neh\u00e9z. Ennek # megakad\u00e1lyoz\u00e1s\u00e1ra sz\u00fcks\u00e9g lehet a gyorsul\u00e1s cs\u00f6kkent\u00e9s\u00e9re a # szond\u00e1z\u00f3 mozg\u00e1sok gyorsul\u00e1s\u00e1val ezzel a param\u00e9terrel. #recovery_time: 0.4 # Az utaz\u00e1si mozg\u00e1sok \u00e9s a tapogat\u00f3 mozg\u00e1sok k\u00f6z\u00f6tti k\u00e9sleltet\u00e9s # m\u00e1sodpercben. A szond\u00e1z\u00e1s el\u0151tti gyors mozgat\u00e1s t\u00e9ves # szondakapcsol\u00e1st eredm\u00e9nyezhet. Ez \"A szonda a mozg\u00e1st megel\u0151z\u0151en # kioldott\" hib\u00e1t okozhat, ha nincs k\u00e9sleltet\u00e9s be\u00e1ll\u00edtva. # A 0 \u00e9rt\u00e9k kikapcsolja a helyre\u00e1ll\u00edt\u00e1si k\u00e9sleltet\u00e9st. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,4. #x_offset: #y_offset: # Nem kell be\u00e1ll\u00edtani (vagy 0-ra kell \u00e1ll\u00edtani). z_offset: # A szonda kiold\u00e1si magass\u00e1ga. Kezd -0,1 (mm) \u00e9rt\u00e9kkel, \u00e9s k\u00e9s\u0151bb # \u00e1ll\u00edtsd be a k\u00f6vetkez\u0151vel `PROBE_CALIBRATE` paranccsal. # Ezt a param\u00e9tert meg kell adni. #speed: # A Z tengely sebess\u00e9ge (mm/sec-ben) tapogat\u00e1skor. Javasoljuk, hogy a # tapint\u00e1si sebess\u00e9get 20 mm/sec sebess\u00e9ggel kezdj\u00fck, \u00e9s sz\u00fcks\u00e9g # szerint \u00e1ll\u00edtsuk be, hogy jav\u00edtsuk a a tapint\u00e1s kiold\u00e1s\u00e1nak pontoss\u00e1g\u00e1t # \u00e9s megism\u00e9telhet\u0151s\u00e9g\u00e9t. #samples: #sample_retract_dist: #samples_result: #samples_tolerance: #samples_tolerance_retries: #activate_gcode: #deactivate_gcode: #deactivate_on_each_sample: # A fenti param\u00e9terekkel kapcsolatos tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt # l\u00e1sd a \"szonda\" r\u00e9szt. Tov\u00e1bbi l\u00e9ptet\u0151motorok \u00e9s extruderek \u00b6 [stepper_z1] \u00b6 T\u00f6bb l\u00e9ptet\u0151motoros tengelyek. Egy cartesian st\u00edlus\u00fa nyomtat\u00f3n\u00e1l az adott tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 tov\u00e1bbi konfigur\u00e1ci\u00f3s blokkokkal rendelkezhet, amelyek olyan l\u00e9ptet\u0151ket hat\u00e1roznak meg, amelyeket az els\u0151dleges l\u00e9ptet\u0151vel egy\u00fctt kell l\u00e9ptetni. B\u00e1rmennyi szakasz defini\u00e1lhat\u00f3 1-t\u0151l kezd\u0151d\u0151 numerikus ut\u00f3taggal (p\u00e9ld\u00e1ul \"stepper_z1\", \"stepper_z2\" stb.). [stepper_z1] #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: # A fenti param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd a \"l\u00e9ptet\u0151\" r\u00e9szt. #endstop_pin: # Ha egy endstop_pin defini\u00e1lva van a kieg\u00e9sz\u00edt\u0151 l\u00e9ptet\u0151h\u00f6z, akkor # a l\u00e9ptet\u0151 visszat\u00e9r, am\u00edg az v\u00e9g\u00e1ll\u00e1s ki nem v\u00e1lt. Ellenkez\u0151 esetben # a l\u00e9ptet\u0151 mindaddig visszat\u00e9r, am\u00edg a tengely els\u0151dleges # l\u00e9ptet\u0151j\u00e9nek v\u00e9g\u00e1ll\u00e1skapcsol\u00f3ja ki nem v\u00e1lt. [extruder1] \u00b6 T\u00f6bb extruderes nyomtat\u00f3 eset\u00e9n minden tov\u00e1bbi extruder ut\u00e1n adj hozz\u00e1 egy \u00faj extruder szakaszt. A tov\u00e1bbi extruder szakaszok neve legyen \"extruder1\", \"extruder2\", \"extruder3\", \u00e9s \u00edgy tov\u00e1bb. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"extruder\" szakaszban. L\u00e1sd a sample-multi-extruder.cfg p\u00e9ldakonfigur\u00e1ci\u00f3t. [extruder1] #step_pin: #dir_pin: #... # Tekintsd meg az \"extruder\" r\u00e9szt az el\u00e9rhet\u0151 l\u00e9ptet\u0151 \u00e9s # f\u0171t\u0151param\u00e9terek\u00e9rt. #shared_heater: # Ez az opci\u00f3 elavult, \u00e9s t\u00f6bb\u00e9 nem kell megadni. [dual_carriage] \u00b6 Az egy tengelyen k\u00e9t kocsival rendelkez\u0151 cartesian nyomtat\u00f3k t\u00e1mogat\u00e1sa. Az akt\u00edv kocsit a SET_DUAL_CARRIAGE kiterjesztett G-k\u00f3d parancs seg\u00edts\u00e9g\u00e9vel \u00e1ll\u00edthatjuk be. A \"SET_DUAL_CARRIAGE CARRIAGE=1\" parancs az ebben a szakaszban meghat\u00e1rozott kocsit aktiv\u00e1lja (a CARRIAGE=0 az els\u0151dleges kocsi aktiv\u00e1l\u00e1s\u00e1t \u00e1ll\u00edtja vissza). A kett\u0151s kocsit\u00e1mogat\u00e1st \u00e1ltal\u00e1ban extra extruderekkel kombin\u00e1lj\u00e1k. A SET_DUAL_CARRIAGE parancsot gyakran az ACTIVATE_EXTRUDER paranccsal egyidej\u0171leg h\u00edvj\u00e1k meg. \u00dcgyelj arra, hogy a kocsikat a deaktiv\u00e1l\u00e1s sor\u00e1n parkol\u00f3 \u00e1ll\u00e1sba k\u00fcldje. L\u00e1sd a sample-idex.cfg p\u00e9ldakonfigur\u00e1ci\u00f3t. [dual_carriage] axis: # Azon a tengelyen, amelyen ez az extra kocsi van (X vagy Y). # Ezt a param\u00e9tert meg kell adni. #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: #endstop_pin: #position_endstop: #position_min: #position_max: # A fenti param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd a \"l\u00e9ptet\u0151\" r\u00e9szt. [extruder_stepper] \u00b6 Az extruder mozg\u00e1s\u00e1hoz szinkroniz\u00e1lt tov\u00e1bbi l\u00e9ptet\u0151k t\u00e1mogat\u00e1sa (tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3 \"extruder_stepper\" el\u0151taggal). Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancshivatkoz\u00e1s dokumentumot. [extruder_stepper my_extra_stepper] extruder: # Az extruder, amelyhez ez a l\u00e9ptet\u0151 szinkroniz\u00e1lva van. Ha ez # \u00fcres karakterl\u00e1ncra van \u00e1ll\u00edtva, akkor a l\u00e9ptet\u0151 nem lesz # szinkroniz\u00e1lva az extruderrel. Ezt a param\u00e9tert meg kell adni. #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: # A fenti param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd a \"l\u00e9ptet\u0151\" r\u00e9szt. [manual_stepper] \u00b6 K\u00e9zi l\u00e9ptet\u0151k (tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3 \"manual_stepper\" el\u0151taggal). Ezeket a l\u00e9ptet\u0151ket a MANUAL_STEPPER G-k\u00f3d parancs vez\u00e9rli. P\u00e9ld\u00e1ul: \"MANUAL_STEPPER STEPPER=my_stepper MOVE=10 SPEED=5\". A MANUAL_STEPPER parancs le\u00edr\u00e1s\u00e1t l\u00e1sd a G-k\u00f3dok f\u00e1jlban. A l\u00e9ptet\u0151k nem kapcsol\u00f3dnak a nyomtat\u00f3 norm\u00e1l kinematik\u00e1j\u00e1hoz. [manual_stepper my_stepper] #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: # A param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"l\u00e9ptet\u0151\" r\u00e9szben. #velocity: # \u00c1ll\u00edtsd be a l\u00e9ptet\u0151 alap\u00e9rtelmezett sebess\u00e9g\u00e9t (mm/sec-ben). # Ezt az \u00e9rt\u00e9ket haszn\u00e1lja a rendszer, ha a MANUAL_STEPPER parancs nem # ad meg SPEED param\u00e9tert. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5 mm/sec. #accel: # \u00c1ll\u00edtsd be a l\u00e9ptet\u0151 alap\u00e9rtelmezett gyorsul\u00e1s\u00e1t (mm/sec^2-en). A nulla # gyorsul\u00e1s nem eredm\u00e9nyez gyorsul\u00e1st. Ezt az \u00e9rt\u00e9ket haszn\u00e1lja a rendszer, # ha a MANUAL_STEPPER parancs nem ad meg ACCEL param\u00e9tert. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #endstop_pin: # V\u00e9g\u00e1ll\u00e1skapcsol\u00f3 csatlakoz\u00e1si t\u0171. Ha meg van adva, akkor egy # STOP_ON_ENDSTOP param\u00e9ter hozz\u00e1ad\u00e1s\u00e1val a MANUAL_STEPPER # mozg\u00e1sparancsokhoz \"kezd\u0151pont felv\u00e9teli mozg\u00e1sok\" hajthat\u00f3k v\u00e9gre. Egyedi f\u0171t\u0151testek \u00e9s \u00e9rz\u00e9kel\u0151k \u00b6 [verify_heater] \u00b6 A f\u0171t\u00e9s \u00e9s a h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 ellen\u0151rz\u00e9se. A f\u0171t\u0151elemek ellen\u0151rz\u00e9se automatikusan enged\u00e9lyezve van minden olyan f\u0171t\u0151elemhez, amely a nyomtat\u00f3n be van \u00e1ll\u00edtva. Az alap\u00e9rtelmezett be\u00e1ll\u00edt\u00e1sok m\u00f3dos\u00edt\u00e1s\u00e1hoz haszn\u00e1ld a verify_heater szakaszokat. [verify_heater heater_config_name] #max_error: 120 # A maxim\u00e1lis \u201ehalmozott h\u0151m\u00e9rs\u00e9kleti hiba\u201d a hiba emel\u00e9se el\u0151tt. # A kisebb \u00e9rt\u00e9kek szigor\u00fabb ellen\u0151rz\u00e9st eredm\u00e9nyeznek, a nagyobb # \u00e9rt\u00e9kek pedig t\u00f6bb id\u0151t biztos\u00edtanak a hibajelent\u00e9s el\u0151tt. # Pontosabban, a h\u0151m\u00e9rs\u00e9kletet m\u00e1sodpercenk\u00e9nt egyszer ellen\u0151rzik, # \u00e9s ha k\u00f6zel van a c\u00e9lh\u0151m\u00e9rs\u00e9klethez, akkor a bels\u0151 \"hibasz\u00e1ml\u00e1l\u00f3\" # null\u00e1z\u00f3dik. Ellenkez\u0151 esetben, ha a h\u0151m\u00e9rs\u00e9klet a c\u00e9ltartom\u00e1ny alatt # van, akkor a sz\u00e1ml\u00e1l\u00f3t annyival n\u00f6velj\u00fck, amennyivel a jelentett # h\u0151m\u00e9rs\u00e9klet elt\u00e9r ett\u0151l a tartom\u00e1nyt\u00f3l. Ha a sz\u00e1ml\u00e1l\u00f3 meghaladja ezt # a \"max_error\" \u00e9rt\u00e9ket, hiba\u00fczenet jelenik meg. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 120. #check_gain_time: # Ez szab\u00e1lyozza a f\u0171t\u0151elem ellen\u0151rz\u00e9s\u00e9t a kezdeti f\u0171t\u00e9s sor\u00e1n. # A kisebb \u00e9rt\u00e9kek szigor\u00fabb ellen\u0151rz\u00e9st eredm\u00e9nyeznek, a nagyobb # \u00e9rt\u00e9kek pedig t\u00f6bb id\u0151t biztos\u00edtanak a hibajelent\u00e9s el\u0151tt. # Pontosabban, a kezdeti f\u0171t\u00e9s sor\u00e1n, am\u00edg a f\u0171t\u0151elem h\u0151m\u00e9rs\u00e9klete # ezen id\u0151kereten bel\u00fcl (m\u00e1sodpercben van megadva) megemelkedik, # a bels\u0151 \"hibasz\u00e1ml\u00e1l\u00f3\" null\u00e1z\u00f3dik. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 20 # m\u00e1sodperc az extruder-ekn\u00e9l \u00e9s 60 m\u00e1sodperc a heater_bed # eset\u00e9ben. #hysteresis: 5 # A maxim\u00e1lis h\u0151m\u00e9rs\u00e9klet-k\u00fcl\u00f6nbs\u00e9g (Celsius fokban) a # c\u00e9lh\u0151m\u00e9rs\u00e9klethez k\u00e9pest, amely a c\u00e9l tartom\u00e1ny\u00e1ban van. Ez # szab\u00e1lyozza a max_error tartom\u00e1ny ellen\u0151rz\u00e9s\u00e9t. Ritka az \u00e9rt\u00e9k # testreszab\u00e1sa. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #heating_gain: 2 # Az a minim\u00e1lis h\u0151m\u00e9rs\u00e9klet (Celsiusban), amellyel a f\u0171t\u00e9snek # n\u00f6velnie kell a check_gain_time ellen\u0151rz\u00e9s sor\u00e1n. # Ritka az \u00e9rt\u00e9k testreszab\u00e1sa. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 2. [homing_heaters] \u00b6 Eszk\u00f6z a f\u0171t\u0151berendez\u00e9sek letilt\u00e1s\u00e1ra, amikor egy tengely kezd\u0151pont felv\u00e9telt vagy szintez\u00e9st csin\u00e1l. [homing_heaters] #steppers: # A f\u0171t\u0151elemek vessz\u0151vel elv\u00e1lasztott list\u00e1ja, amelyek miatt le kell # tiltani a f\u0171t\u00e9st. Az alap\u00e9rtelmez\u00e9s az, hogy letiltja a f\u0171t\u0151elemeket # minden ind\u00edt\u00e1si/m\u00e9r\u00e9si l\u00e9p\u00e9shez. # Tipikus p\u00e9lda: stepper_z #heaters: # A f\u0171t\u0151testek vessz\u0151vel elv\u00e1lasztott list\u00e1ja, amelyet le kell tiltani # az elhelyez\u00e9si/m\u00e9r\u00e9si l\u00e9p\u00e9sek sor\u00e1n. Az alap\u00e9rtelmezett az \u00f6sszes # f\u0171t\u0151elem letilt\u00e1sa. Tipikus p\u00e9lda: extruder, heater_bed [thermistor] \u00b6 Egy\u00e9ni termisztorok (tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3 \"termisztor\" el\u0151taggal). Egy\u00e9ni termisztor haszn\u00e1lhat\u00f3 a f\u0171t\u0151berendez\u00e9s konfigur\u00e1ci\u00f3s szakasz\u00e1nak sensor_type mez\u0151j\u00e9ben. (Ha p\u00e9ld\u00e1ul egy \"[thermistor my_thermistor]\" szekci\u00f3t defini\u00e1lunk, akkor a f\u0171t\u0151elem defini\u00e1l\u00e1sakor haszn\u00e1lhatjuk a \"sensor_type: my_thermistor\" mez\u0151t.). \u00dcgyelj arra, hogy a termisztor szekci\u00f3t a konfigur\u00e1ci\u00f3s f\u00e1jlban az els\u0151 f\u0171t\u0151szekci\u00f3ban val\u00f3 haszn\u00e1lata f\u00f6l\u00e9 helyezd. [thermistor my_thermistor] #temperature1: #resistance1: #temperature2: #resistance2: #temperature3: #resistance3: # H\u00e1rom ellen\u00e1ll\u00e1sm\u00e9r\u00e9s (ohmban) adott h\u0151m\u00e9rs\u00e9kleten (Celsiusban). # A h\u00e1rom m\u00e9r\u00e9st a termisztor Steinhart-Hart egy\u00fctthat\u00f3inak # kisz\u00e1m\u00edt\u00e1s\u00e1hoz haszn\u00e1ljuk fel. Ezeket a param\u00e9tereket meg kell adni, # ha Steinhart-Hartot haszn\u00e1lunk a termisztor meghat\u00e1roz\u00e1s\u00e1hoz. #beta: # Alternat\u00edv megold\u00e1sk\u00e9nt a temperature1, resistance1, \u00e9s beta # megadhat\u00f3 a termisztor param\u00e9tereinek meghat\u00e1roz\u00e1s\u00e1hoz. Ezt a # param\u00e9tert akkor kell megadni, ha \"beta\"-t haszn\u00e1l a termisztor # meghat\u00e1roz\u00e1s\u00e1hoz. [adc_temperature] \u00b6 Egyedi ADC h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"adc_temperature\" el\u0151taggal). Ez lehet\u0151v\u00e9 teszi egy olyan egy\u00e9ni h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 defini\u00e1l\u00e1s\u00e1t, amely egy fesz\u00fclts\u00e9get m\u00e9r egy anal\u00f3g-digit\u00e1lis \u00e1talak\u00edt\u00f3 (ADC) t\u0171n, \u00e9s line\u00e1ris interpol\u00e1ci\u00f3t haszn\u00e1l a konfigur\u00e1lt h\u0151m\u00e9rs\u00e9klet/fesz\u00fclts\u00e9g (vagy h\u0151m\u00e9rs\u00e9klet/ellen\u00e1ll\u00e1s) m\u00e9r\u00e9sek k\u00f6z\u00f6tt a h\u0151m\u00e9rs\u00e9klet meghat\u00e1roz\u00e1s\u00e1hoz. Az \u00edgy kapott \u00e9rz\u00e9kel\u0151 sensor_type-k\u00e9nt haszn\u00e1lhat\u00f3 egy f\u0171t\u0151szekci\u00f3ban. (Ha p\u00e9ld\u00e1ul egy \"[adc_temperature my_sensor]\" szekci\u00f3t defini\u00e1lunk, akkor egy f\u0171t\u0151elem defini\u00e1l\u00e1sakor haszn\u00e1lhatjuk a \"sensor_type: my_sensor\" szekci\u00f3t). \u00dcgyelj arra, hogy a szenzor szekci\u00f3t a config f\u00e1jlban az els\u0151 felhaszn\u00e1l\u00e1sa f\u00f6l\u00e9 helyezd a f\u0171t\u0151szekci\u00f3ban. [adc_temperature my_sensor] #temperature1: #voltage1: #temperature2: #voltage2: #... # H\u0151m\u00e9rs\u00e9kletek (Celsiusban) \u00e9s fesz\u00fclts\u00e9gek (V-ban) k\u00e9szlete referenciak\u00e9nt # a h\u0151m\u00e9rs\u00e9klet konvert\u00e1l\u00e1sakor. Az \u00e9rz\u00e9kel\u0151t haszn\u00e1l\u00f3 f\u0171t\u0151r\u00e9sz az adc_voltage # \u00e9s a voltage_offset param\u00e9tereket is megadhatja az ADC fesz\u00fclts\u00e9g meghat\u00e1roz\u00e1s\u00e1hoz # (a r\u00e9szletek\u00e9rt l\u00e1sd a \"\u00c1ltal\u00e1nos h\u0151m\u00e9rs\u00e9kleter\u0151s\u00edt\u0151k\" r\u00e9szt). # Legal\u00e1bb k\u00e9t m\u00e9r\u00e9st kell megadni. #temperature1: #resistance1: #temperature2: #resistance2: #... # Alternat\u00edvak\u00e9nt megadhatunk egy sorban h\u0151m\u00e9rs\u00e9kletet (Celsiusban) is # \u00e9s ellen\u00e1ll\u00e1st (Ohmban), hogy referenciak\u00e9nt haszn\u00e1lhassuk, amikor \u00e1talak\u00edtunk egy # h\u0151m\u00e9rs\u00e9kletet. Ezt az \u00e9rz\u00e9kel\u0151t haszn\u00e1l\u00f3 f\u0171t\u0151szekci\u00f3ban megadhatunk egy # pullup_resistor param\u00e9tert (a r\u00e9szleteket l\u00e1sd az \"extruder\" szakaszban). # A c\u00edmen legal\u00e1bb k\u00e9t m\u00e9r\u00e9st kell megadni. [heater_generic] \u00b6 \u00c1ltal\u00e1nos f\u0171t\u0151testek (tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3 a \"heater_generic\" el\u0151taggal). Ezek a f\u0171t\u0151berendez\u00e9sek a standard f\u0171t\u0151berendez\u00e9sekhez (extruderek, f\u0171t\u00f6tt t\u00e1rgyasztal) hasonl\u00f3an viselkednek. A SET_HEATER_TEMPERATURE paranccsal (l\u00e1sd a G-k\u00f3dok dokumentumban) \u00e1ll\u00edthatjuk be a c\u00e9lh\u0151m\u00e9rs\u00e9kletet. [heater_generic my_generic_heater] #gcode_id: # A h\u0151m\u00e9rs\u00e9klet jelent\u00e9s\u00e9n\u00e9l az M105 parancsban # haszn\u00e1land\u00f3 azonos\u00edt\u00f3. # Ezt a param\u00e9tert meg kell adni. #heater_pin: #max_power: #sensor_type: #sensor_pin: #smooth_time: #control: #pid_Kp: #pid_Ki: #pid_Kd: #pwm_cycle_time: #min_temp: #max_temp: # A fenti param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz # l\u00e1sd az \"extruder\" r\u00e9szt. [temperature_sensor] \u00b6 \u00c1ltal\u00e1nos h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k. Tetsz\u0151leges sz\u00e1m\u00fa tov\u00e1bbi h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151t lehet defini\u00e1lni, amelyek az M105 parancson kereszt\u00fcl jelentenek. [temperature_sensor my_sensor] #sensor_type: #sensor_pin: #min_temp: #max_temp: # A fenti param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd az # \"extruder\" r\u00e9szt. #gcode_id: # L\u00e1sd a \"heater_generic\" r\u00e9szt a param\u00e9ter # meghat\u00e1roz\u00e1s\u00e1hoz. H\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k \u00b6 A Klipper sz\u00e1mos t\u00edpus\u00fa h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 defin\u00edci\u00f3j\u00e1t tartalmazza. Ezek az \u00e9rz\u00e9kel\u0151k b\u00e1rmely olyan konfigur\u00e1ci\u00f3s szakaszban haszn\u00e1lhat\u00f3k, amely h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151t ig\u00e9nyel (p\u00e9ld\u00e1ul az [extruder] vagy a [heater_bed] szakaszban). K\u00f6z\u00f6s termisztorok \u00b6 K\u00f6z\u00f6ns\u00e9ges termisztorok. A k\u00f6vetkez\u0151 param\u00e9terek \u00e1llnak rendelkez\u00e9sre azokban a f\u0171t\u0151szakaszban, amelyek ezen \u00e9rz\u00e9kel\u0151k valamelyik\u00e9t haszn\u00e1lj\u00e1k. sensor_type: # Az egyik \"EPCOS 100K B57560G104F\", \"ATC Semitec 104GT-2\", # \"ATC Semitec 104NT-4-R025H42G\", \"Generic 3950\", # \"Honeywell 100K 135-104LAG-J01\", \"NTC 100K MGB18-104F39050L32\", # \"SliceEngineering 450\", vagy \"TDK NTCG104LH104JT1\" sensor_pin: # Anal\u00f3g bemeneti \u00e9rintkez\u0151 csatlakozik a termisztorhoz. # Ezt a param\u00e9tert meg kell adni. #pullup_resistor: 4700 # A termisztorhoz csatlakoztatott felh\u00faz\u00f3 ellen\u00e1ll\u00e1sa (ohmban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 4700 ohm. #inline_resistor: 0 # A termisztorral egy vonalban elhelyezett extra (nem h\u0151v\u00e1ltoz\u00f3) # ellen\u00e1ll\u00e1s ellen\u00e1ll\u00e1sa (ohmban). Ritka az ilyen be\u00e1ll\u00edt\u00e1s. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0 ohm. K\u00f6z\u00f6s h\u0151m\u00e9rs\u00e9klet er\u0151s\u00edt\u0151k \u00b6 K\u00f6z\u00f6s h\u0151m\u00e9rs\u00e9klet\u0171 er\u0151s\u00edt\u0151k. A k\u00f6vetkez\u0151 param\u00e9terek \u00e1llnak rendelkez\u00e9sre azokban a f\u0171t\u0151szakaszokban, amelyek ezen \u00e9rz\u00e9kel\u0151k valamelyik\u00e9t haszn\u00e1lj\u00e1k. sensor_type: # A \u201ePT100 INA826\u201d, \u201eAD595\u201d, \u201eAD597\u201d, \u201eAD8494\u201d, \u201eAD8495\u201d, # \u201eAD8496\u201d vagy \u201eAD8497\u201d k\u00f6z\u00fcl az egyik. sensor_pin: # Anal\u00f3g bemeneti \u00e9rintkez\u0151 csatlakozik az \u00e9rz\u00e9kel\u0151h\u00f6z. # Ezt a param\u00e9tert meg kell adni. #adc_voltage: 5.0 # Az ADC \u00f6sszehasonl\u00edt\u00f3 fesz\u00fclts\u00e9ge (V-ban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #voltage_offset: 0 # Az ADC fesz\u00fclts\u00e9g eltol\u00e1sa (V-ban). Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. K\u00f6zvetlen\u00fcl csatlakoztatott PT1000 \u00e9rz\u00e9kel\u0151 \u00b6 K\u00f6zvetlen\u00fcl csatlakoztatott PT1000 \u00e9rz\u00e9kel\u0151. A k\u00f6vetkez\u0151 param\u00e9terek \u00e1llnak rendelkez\u00e9sre azokban a f\u0171t\u00e9si szakaszokban, amelyek valamelyik \u00e9rz\u00e9kel\u0151t haszn\u00e1lj\u00e1k. sensor_type: PT1000 sensor_pin: # Anal\u00f3g bemeneti \u00e9rintkez\u0151 csatlakozik az \u00e9rz\u00e9kel\u0151h\u00f6z. # Ezt a param\u00e9tert meg kell adni. #pullup_resistor: 4700 # Az \u00e9rz\u00e9kel\u0151h\u00f6z csatlakoztatott felh\u00faz\u00f3 ellen\u00e1ll\u00e1s (ohmban). # Az alap\u00e9rtelmezett 4700 ohm. MAXxxxxx h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k \u00b6 MAXxxxxx soros perif\u00e9ri\u00e1s interf\u00e9sz (SPI) h\u0151m\u00e9rs\u00e9klet-alap\u00fa \u00e9rz\u00e9kel\u0151k. A k\u00f6vetkez\u0151 param\u00e9terek \u00e1llnak rendelkez\u00e9sre azokban a f\u0171t\u00e9si szakaszokban, amelyek ezen \u00e9rz\u00e9kel\u0151t\u00edpusok valamelyik\u00e9t haszn\u00e1lj\u00e1k. sensor_type: # A \u201eMAX6675\u201d, \u201eMAX31855\u201d, \u201eMAX31856\u201d vagy \u201eMAX31865\u201d egyike. sensor_pin: # Az \u00e9rz\u00e9kel\u0151 chip kiv\u00e1laszt\u00e1si sora. Ezt a param\u00e9tert meg kell adni. #spi_speed: 4000000 # A chippel val\u00f3 kommunik\u00e1ci\u00f3 sor\u00e1n haszn\u00e1land\u00f3 SPI-sebess\u00e9g # (hz-ben). Az alap\u00e9rtelmezett \u00e9rt\u00e9k 4000000. #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t az \"\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben tal\u00e1lja. #tc_type: K #tc_use_50Hz_filter: False #tc_averaging_count: 1 # A fenti param\u00e9terek a MAX31856 chipek \u00e9rz\u00e9kel\u0151param\u00e9tereit # szab\u00e1lyozz\u00e1k. Az egyes param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a # param\u00e9ter neve mellett tal\u00e1lhat\u00f3k a fenti list\u00e1ban. #rtd_nominal_r: 100 #rtd_reference_r: 430 #rtd_num_of_wires: 2 #rtd_use_50Hz_filter: False # A fenti param\u00e9terek a MAX31865 chipek \u00e9rz\u00e9kel\u0151param\u00e9tereit # szab\u00e1lyozz\u00e1k. Az egyes param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a # param\u00e9ter neve mellett tal\u00e1lhat\u00f3k a fenti list\u00e1ban. BMP280/BME280/BME680 h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 \u00b6 BMP280/BME280/BME680 k\u00e9tvezet\u00e9kes interf\u00e9sz (I2C) k\u00f6rnyezeti \u00e9rz\u00e9kel\u0151k. Vedd figyelembe, hogy ezeket az \u00e9rz\u00e9kel\u0151ket nem extruderekkel \u00e9s f\u0171t\u00f6tt t\u00e1rgyasztalokkal val\u00f3 haszn\u00e1latra sz\u00e1nj\u00e1k, hanem a k\u00f6rnyezeti h\u0151m\u00e9rs\u00e9klet (C), a nyom\u00e1s (hPa), a relat\u00edv p\u00e1ratartalom \u00e9s a BME680 eset\u00e9ben a g\u00e1zszint ellen\u0151rz\u00e9s\u00e9re. L\u00e1sd sample-macros.cfg egy gcode_macro-t, amely a h\u0151m\u00e9rs\u00e9klet mellett a nyom\u00e1s \u00e9s a p\u00e1ratartalom m\u00e9r\u00e9s\u00e9re is haszn\u00e1lhat\u00f3. sensor_type: BME280 #i2c_address: # Az alap\u00e9rtelmezett 118 (0x76). Egyes BME280 \u00e9rz\u00e9kel\u0151k c\u00edme 119 # (0x77). #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. HTU21D \u00e9rz\u00e9kel\u0151 \u00b6 HTU21D k\u00e9tvezet\u00e9kes interf\u00e9sz (I2C) k\u00f6rnyezeti \u00e9rz\u00e9kel\u0151. Vedd figyelembe, hogy ezt az \u00e9rz\u00e9kel\u0151t nem extruderekkel \u00e9s f\u0171t\u00f6tt t\u00e1rgyasztalokkal val\u00f3 haszn\u00e1latra sz\u00e1nj\u00e1k, hanem a k\u00f6rnyezeti h\u0151m\u00e9rs\u00e9klet (C) \u00e9s a relat\u00edv p\u00e1ratartalom ellen\u0151rz\u00e9s\u00e9re. L\u00e1sd sample-macros.cfg egy gcode_macro-t, amely a h\u0151m\u00e9rs\u00e9klet mellett a p\u00e1ratartalom jelent\u00e9s\u00e9re is haszn\u00e1lhat\u00f3. sensor_type: # A k\u00f6vetkez\u0151nek kell lennie: \"HTU21D\", \"SI7013\", \"SI7020\", # \"SI7021\" vagy \"SHT21\" #i2c_address: # Az alap\u00e9rtelmezett 64 (0x40). #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #htu21d_hold_master: # Ha az \u00e9rz\u00e9kel\u0151 k\u00e9pes megtartani az I2C buffot olvas\u00e1s k\u00f6zben. # Ha True, az olvas\u00e1s k\u00f6zben m\u00e1s buszkommunik\u00e1ci\u00f3 nem # hajthat\u00f3 v\u00e9gre. Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #htu21d_resolution: # A h\u0151m\u00e9rs\u00e9klet \u00e9s a p\u00e1ratartalom leolvas\u00e1s\u00e1nak felbont\u00e1sa. # Az \u00e9rv\u00e9nyes \u00e9rt\u00e9kek a k\u00f6vetkez\u0151k: # 'TEMP14_HUM12' -> 14 bit a h\u0151m\u00e9rs\u00e9klethez \u00e9s 12 bit a p\u00e1ratartalomhoz # 'TEMP13_HUM10' -> 13 bit a h\u0151m\u00e9rs\u00e9klethez \u00e9s 10 bit a p\u00e1ratartalomhoz # 'TEMP12_HUM08' -> 12 bit a h\u0151m\u00e9rs\u00e9klethez \u00e9s 08 bit a p\u00e1ratartalomhoz # 'TEMP11_HUM11' -> 11 bit a h\u0151m\u00e9rs\u00e9klethez \u00e9s 11 bit a p\u00e1ratartalomhoz # Az alap\u00e9rtelmezett \u00e9rt\u00e9k: \"TEMP11_HUM11\" #htu21d_report_time: # A leolvas\u00e1sok k\u00f6z\u00f6tti intervallum m\u00e1sodpercben. # Az alap\u00e9rtelmezett a 30 LM75 h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 \u00b6 LM75/LM75A k\u00e9tvezet\u00e9kes (I2C) csatlakoz\u00e1s\u00fa h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151k. Ezek az \u00e9rz\u00e9kel\u0151k -55~125 C tartom\u00e1nyban m\u0171k\u00f6dnek, \u00edgy pl. kamrah\u0151m\u00e9rs\u00e9klet ellen\u0151rz\u00e9sre haszn\u00e1lhat\u00f3k. Egyszer\u0171 ventil\u00e1tor/f\u0171t\u00e9svez\u00e9rl\u0151k\u00e9nt is m\u0171k\u00f6dhetnek. sensor_type: LM75 #i2c_address: # Az alap\u00e9rtelmezett 72 (0x48). A norm\u00e1l tartom\u00e1ny 72-79 (0x48-0x4F), # \u00e9s a c\u00edm 3 alacsony bitje a chipen tal\u00e1lhat\u00f3 \u00e9rintkez\u0151k\u00f6n kereszt\u00fcl # van konfigur\u00e1lva (\u00e1ltal\u00e1ban jumperekkel vagy \u00e1thidal\u00f3 vezet\u00e9kekkel). #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #lm75_report_time: # A leolvas\u00e1sok k\u00f6z\u00f6tti intervallum m\u00e1sodpercben. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,8 de a minimum \u00e9rt\u00e9k 0,5. Be\u00e9p\u00edtett mikrokontroller h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 \u00b6 Az atsam, atsamd \u00e9s stm32 mikrovez\u00e9rl\u0151k bels\u0151 h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151t tartalmaznak. A \"temperature_mcu\" parancsot haszn\u00e1lhatjuk e h\u0151m\u00e9rs\u00e9kletek megjelen\u00edt\u00e9s\u00e9re. sensor_type: temperature_mcu #sensor_mcu: mcu # A mikrokontroller, amelyb\u0151l olvasni lehet. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k az \"mcu\". #sensor_temperature1: #sensor_adc1: # Add meg a fenti k\u00e9t param\u00e9tert (a h\u0151m\u00e9rs\u00e9kletet Celsiusban \u00e9s egy # ADC-\u00e9rt\u00e9ket \u00fasz\u00f3k\u00e9nt 0,0 \u00e9s 1,0 k\u00f6z\u00f6tt) a mikrovez\u00e9rl\u0151 # h\u0151m\u00e9rs\u00e9klet\u00e9nek kalibr\u00e1l\u00e1s\u00e1hoz. Ez egyes chipekn\u00e9l jav\u00edthatja a # jelentett h\u0151m\u00e9rs\u00e9kleti pontoss\u00e1got. A kalibr\u00e1ci\u00f3s adatok # megszerz\u00e9s\u00e9nek tipikus m\u00f3dja az, hogy n\u00e9h\u00e1ny \u00f3r\u00e1ra teljesen # \u00e1ramtalan\u00edtja a nyomtat\u00f3t (hogy megbizonyosodj arr\u00f3l, hogy az # k\u00f6rnyezeti h\u0151m\u00e9rs\u00e9kleten van), majd bekapcsolja, \u00e9s a QUERY_ADC # paranccsal megkapja az ADC m\u00e9r\u00e9st. Haszn\u00e1lj m\u00e1s h\u0151m\u00e9rs\u00e9klet # \u00e9rz\u00e9kel\u0151t a nyomtat\u00f3n a megfelel\u0151 k\u00f6rnyezeti h\u0151m\u00e9rs\u00e9klet # meghat\u00e1roz\u00e1s\u00e1hoz. Alap\u00e9rtelmez\u00e9s szerint a mikrokontroller gy\u00e1ri # kalibr\u00e1l\u00e1si adatait (ha van) vagy a mikrovez\u00e9rl\u0151 specifik\u00e1ci\u00f3j\u00e1b\u00f3l # sz\u00e1rmaz\u00f3 n\u00e9vleges \u00e9rt\u00e9keket kell haszn\u00e1lni. #sensor_temperature2: #sensor_adc2: # Ha a sensor_temperature1/sensor_adc1 meg van adva, akkor # megadhat\u00f3k a sensor_temperature2/sensor_adc2 kalibr\u00e1ci\u00f3s adatai # is. Ezzel kalibr\u00e1lt \"temperature slope\" inform\u00e1ci\u00f3t kaphat. # Alap\u00e9rtelmez\u00e9s szerint a mikrokontroller gy\u00e1ri kalibr\u00e1l\u00e1si adatait # (ha van) vagy a mikrovez\u00e9rl\u0151 specifik\u00e1ci\u00f3j\u00e1b\u00f3l sz\u00e1rmaz\u00f3 n\u00e9vleges # \u00e9rt\u00e9keket kell haszn\u00e1lni. Gazdag\u00e9p h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151 \u00b6 Gazdag\u00e9p h\u0151m\u00e9rs\u00e9klet (pl. Raspberry Pi), amelyen a gazdaszoftver fut. sensor_type: temperature_host #sensor_path: # A h\u0151m\u00e9rs\u00e9kleti rendszerf\u00e1jl el\u00e9r\u00e9si \u00fatja. Az alap\u00e9rtelmez\u00e9s # a \"/sys/class/thermal/thermal_zone0/temp\", amely a Raspberry Pi # sz\u00e1m\u00edt\u00f3g\u00e9p h\u0151m\u00e9rs\u00e9kleti rendszerf\u00e1jlja. DS18B20 h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151 \u00b6 A DS18B20 egy 1 vezet\u00e9kes (w1) digit\u00e1lis h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151. Vedd figyelembe, hogy ezt az \u00e9rz\u00e9kel\u0151t nem extruderekkel \u00e9s f\u0171t\u00f6tt t\u00e1rgyasztalokkal val\u00f3 haszn\u00e1latra sz\u00e1nj\u00e1k, hanem ink\u00e1bb a k\u00f6rnyezeti h\u0151m\u00e9rs\u00e9klet (C) ellen\u0151rz\u00e9s\u00e9re. Ezek az \u00e9rz\u00e9kel\u0151k 125 C-ig terjed\u0151 tartom\u00e1nyban m\u0171k\u00f6dnek, \u00edgy pl. kamrah\u0151m\u00e9rs\u00e9klet ellen\u0151rz\u00e9sre haszn\u00e1lhat\u00f3k. Egyszer\u0171 ventil\u00e1tor/f\u0171t\u0151berendez\u00e9s szab\u00e1lyoz\u00f3k\u00e9nt is m\u0171k\u00f6dhetnek. A DS18B20 \u00e9rz\u00e9kel\u0151ket csak a \"host mcu\", pl. a Raspberry Pi t\u00e1mogatja. A w1-gpio Linux kernel modult kell telep\u00edteni hozz\u00e1. sensor_type: DS18B20 serial_no: # Minden 1 vezet\u00e9kes eszk\u00f6z egyedi sorozatsz\u00e1mmal rendelkezik, amely az # eszk\u00f6z azonos\u00edt\u00e1s\u00e1ra szolg\u00e1l, \u00e1ltal\u00e1ban 28-031674b175ff form\u00e1tumban. # Ezt a param\u00e9tert meg kell adni. A csatlakoztatott egyvezet\u00e9kes eszk\u00f6z\u00f6k a # k\u00f6vetkez\u0151 Linux-paranccsal list\u00e1zhat\u00f3k: # ls /sys/bus/w1/devices/ #ds18_report_time: # A leolvas\u00e1sok k\u00f6z\u00f6tti intervallum m\u00e1sodpercben. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 3.0, a minimum 1.0 #sensor_mcu: # A mikrokontroller, amelyb\u0151l olvasni lehet. A host_mcu legyen H\u0171t\u0151ventil\u00e1torok \u00b6 [fan] \u00b6 Nyomtat\u00e1s h\u0171t\u0151ventil\u00e1tor. [fan] pin: # A ventil\u00e1tort vez\u00e9rl\u0151 kimeneti \u00e9rintkez\u0151. Ezt a param\u00e9tert meg kell adni. #max_power: 1.0 # Az a maxim\u00e1lis teljes\u00edtm\u00e9ny (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), # amelyre a t\u0171 be\u00e1ll\u00edthat\u00f3. Az 1,0 \u00e9rt\u00e9k lehet\u0151v\u00e9 teszi, hogy a t\u0171t hosszabb # ideig teljesen enged\u00e9lyezettre lehessen \u00e1ll\u00edtani, m\u00edg a 0,5 \u00e9rt\u00e9k legfeljebb # a fele ideig enged\u00e9lyezi a t\u0171t. Ez a be\u00e1ll\u00edt\u00e1s haszn\u00e1lhat\u00f3 a ventil\u00e1tor # teljes kimeneti teljes\u00edtm\u00e9ny\u00e9nek korl\u00e1toz\u00e1s\u00e1ra (hosszabb ideig). Ha ez az # \u00e9rt\u00e9k kisebb, mint 1,0, akkor a ventil\u00e1torsebess\u00e9g-k\u00e9relmek nulla \u00e9s # max_power k\u00f6z\u00f6tt lesznek sk\u00e1l\u00e1zva (p\u00e9ld\u00e1ul ha a max_power \u00e9rt\u00e9ke 0,9, # \u00e9s 80%-os ventil\u00e1torsebess\u00e9gre van sz\u00fcks\u00e9g, akkor a ventil\u00e1tor # teljes\u00edtm\u00e9nye 72%-ra lesz \u00e1ll\u00edtva). Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0. #shutdown_speed: 0 # A k\u00edv\u00e1nt ventil\u00e1torsebess\u00e9g (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), ha a # mikrovez\u00e9rl\u0151 szoftvere hiba\u00e1llapotba ker\u00fcl. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #cycle_time: 0,010 # Az id\u0151 (m\u00e1sodpercben) minden egyes PWM t\u00e1pciklushoz a ventil\u00e1tornak. # Szoftver alap\u00fa PWM haszn\u00e1latakor aj\u00e1nlott 10 ezredm\u00e1sodperc vagy t\u00f6bb. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,010 m\u00e1sodperc. #hardware_pwm: False # Enged\u00e9lyezd ezt hardveres PWM haszn\u00e1lat\u00e1hoz a szoftveres PWM helyett. # A legt\u00f6bb ventil\u00e1tor nem m\u0171k\u00f6dik j\u00f3l a hardveres PWM-mel, ez\u00e9rt nem # aj\u00e1nlott ezt enged\u00e9lyezni, hacsak nincs elektromos k\u00f6vetelm\u00e9ny a nagyon # nagy sebess\u00e9g\u0171 kapcsol\u00e1shoz. Hardveres PWM haszn\u00e1latakor a t\u00e9nyleges # ciklusid\u0151t a megval\u00f3s\u00edt\u00e1s korl\u00e1tozza, \u00e9s jelent\u0151sen elt\u00e9rhet a k\u00e9rt ciklusid\u0151t\u0151l. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #kick_start_time: 0,100 # Az id\u0151 (m\u00e1sodpercben), hogy a ventil\u00e1tor teljes fordulatsz\u00e1mon m\u0171k\u00f6dj\u00f6n, # amikor el\u0151sz\u00f6r enged\u00e9lyezi, vagy 50%-n\u00e1l nagyobb m\u00e9rt\u00e9kben n\u00f6veli # (seg\u00edti a ventil\u00e1tor p\u00f6rg\u00e9s\u00e9t). Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,100 m\u00e1sodperc. #off_below: 0,0 # A minim\u00e1lis bemeneti sebess\u00e9g, amely a ventil\u00e1tort t\u00e1pl\u00e1lja # (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve). Ha az off_below-n\u00e1l alacsonyabb # sebess\u00e9get k\u00e9rnek, a ventil\u00e1tor ehelyett kikapcsol. Ez a be\u00e1ll\u00edt\u00e1s haszn\u00e1lhat\u00f3 # a ventil\u00e1tor le\u00e1ll\u00e1s\u00e1nak megel\u0151z\u00e9s\u00e9re \u00e9s annak biztos\u00edt\u00e1s\u00e1ra, hogy az ind\u00edt\u00e1sok # hat\u00e9konyak legyenek. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0.0. # # Ezt a be\u00e1ll\u00edt\u00e1st \u00fajra kell kalibr\u00e1lni a max_power be\u00e1ll\u00edt\u00e1sakor. A be\u00e1ll\u00edt\u00e1s # kalibr\u00e1l\u00e1s\u00e1hoz kezd az off_below \u00e9rt\u00e9k\u00e9t 0,0-ra \u00e1ll\u00edtva, \u00e9s a ventil\u00e1tor forog. # Fokozatosan cs\u00f6kkentse a ventil\u00e1tor fordulatsz\u00e1m\u00e1t, hogy meghat\u00e1rozza a # legalacsonyabb bemeneti sebess\u00e9get, amely megb\u00edzhat\u00f3an hajtja a ventil\u00e1tort # le\u00e1ll\u00e1s n\u00e9lk\u00fcl. \u00c1ll\u00edtsd az off_below-ot az ennek az \u00e9rt\u00e9knek megfelel\u0151 # (p\u00e9ld\u00e1ul 12% -> 0,12) vagy valamivel magasabb munkaciklusra. #tachometer_pin: # Fordulatsz\u00e1mm\u00e9r\u0151 bemeneti \u00e9rintkez\u0151je a ventil\u00e1tor fordulatsz\u00e1m\u00e1nak # figyel\u00e9s\u00e9hez. \u00c1ltal\u00e1ban felh\u00faz\u00e1sra van sz\u00fcks\u00e9g. Ez a param\u00e9ter nem k\u00f6telez\u0151. #tachometer_ppr: 2 # Ha a tachometer_pin meg van adva, ez a fordulatsz\u00e1mm\u00e9r\u0151 jel\u00e9nek # fordulatonk\u00e9nti impulzusainak sz\u00e1ma. Egy BLDC ventil\u00e1tor eset\u00e9ben ez \u00e1ltal\u00e1ban # fele a p\u00f3lusok sz\u00e1m\u00e1nak. Az alap\u00e9rtelmezett \u00e9rt\u00e9k a 2. #tachometer_poll_interval: 0,0015 # Ha a tachometer_pin meg van adva, ez a fordulatsz\u00e1mm\u00e9r\u0151 t\u0171j\u00e9nek lek\u00e9rdez\u00e9si # peri\u00f3dusa, m\u00e1sodpercben. Az alap\u00e9rtelmezett 0,0015, ami el\u00e9g gyors a # 10000 RPM alatti ventil\u00e1torok sz\u00e1m\u00e1ra 2 PPR mellett. Ennek kisebbnek kell lennie, # mint 30/(tachometer_ppr*rpm), n\u00e9mi r\u00e1hagy\u00e1ssal, ahol az rpm a ventil\u00e1tor # maxim\u00e1lis fordulatsz\u00e1ma (rpm-ben). #enable_pin: # Opcion\u00e1lis t\u0171 a ventil\u00e1tor t\u00e1pell\u00e1t\u00e1s\u00e1nak biztos\u00edt\u00e1s\u00e1hoz. Ez hasznos lehet a # dedik\u00e1lt PWM bemenettel rendelkez\u0151 ventil\u00e1torok sz\u00e1m\u00e1ra. N\u00e9h\u00e1ny ilyen # ventil\u00e1tor m\u00e9g 0%-os PWM bemenetn\u00e9l is bekapcsolva marad. Ilyenkor a PWM t\u0171 # norm\u00e1lisan haszn\u00e1lhat\u00f3, \u00e9s pl. f\u00f6ldkapcsolt FET (norm\u00e1l ventil\u00e1torcsap) # haszn\u00e1lhat\u00f3 a ventil\u00e1tor t\u00e1pell\u00e1t\u00e1s\u00e1nak szab\u00e1lyoz\u00e1s\u00e1ra. [heater_fan] \u00b6 Fejh\u0171t\u0151 ventil\u00e1torok (a \"heater_fan\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3). A \"fejh\u0171t\u0151 ventil\u00e1tor\" egy olyan ventil\u00e1tor, amely akkor lesz enged\u00e9lyezve, amikor a hozz\u00e1 tartoz\u00f3 f\u0171t\u0151berendez\u00e9s akt\u00edv. Alap\u00e9rtelmez\u00e9s szerint a heater_fan alap\u00e9rtelmez\u00e9s szerint a shutdown_speed a max_power \u00e9rt\u00e9kkel egyenl\u0151. [heater_fan my_nozzle_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"ventil\u00e1tor\" szakaszban. #heater: extruder # A ventil\u00e1torhoz t\u00e1rs\u00edtott f\u0171t\u00e9st meghat\u00e1roz\u00f3 konfigur\u00e1ci\u00f3s szakasz neve. # Ha itt megadod a f\u0171t\u0151elemek vessz\u0151vel elv\u00e1lasztott nev\u00e9t, # akkor a ventil\u00e1tor enged\u00e9lyezve lesz, ha valamelyik adott f\u0171t\u0151test enged\u00e9lyezve van. # Az alap\u00e9rtelmezett az \"extruder\". #heater_temp: 50.0 # A h\u0151m\u00e9rs\u00e9klet (Celsiusban), amely al\u00e1 a f\u0171t\u0151elemnek cs\u00f6kkennie kell, miel\u0151tt # a ventil\u00e1tor kikapcsolna. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50 Celsius fok. #fan_speed: 1.0 # A ventil\u00e1tor sebess\u00e9ge (0.0 \u00e9s 1.0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), amelyet a ventil\u00e1tor # alkalmaz, amikor a hozz\u00e1 tartoz\u00f3 f\u0171t\u0151elem be van kapcsolva. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0 [controller_fan] \u00b6 Vez\u00e9rl\u0151 h\u0171t\u0151ventil\u00e1tor (a \"controller_fan\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3). A \"vez\u00e9rl\u0151 h\u0171t\u0151ventil\u00e1tor\" egy olyan ventil\u00e1tor, amely akkor lesz enged\u00e9lyezve, amikor a hozz\u00e1 tartoz\u00f3 f\u0171t\u0151berendez\u00e9s vagy a hozz\u00e1 tartoz\u00f3 l\u00e9ptet\u0151 meghajt\u00f3 akt\u00edv. A ventil\u00e1tor le\u00e1ll, amikor el\u00e9r egy idle_timeout \u00e9rt\u00e9ket, hogy biztos\u00edtsa, hogy a fel\u00fcgyelt komponens kikapcsol\u00e1sa ut\u00e1n ne k\u00f6vetkezzen be t\u00falmeleged\u00e9s. [controller_fan my_controller_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"ventil\u00e1tor\" szakaszban. #fan_speed: 1.0 # A ventil\u00e1tor fordulatsz\u00e1ma (0.0 \u00e9s 1.0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), # amelyre a ventil\u00e1tor lesz be\u00e1ll\u00edtva, amikor egy f\u0171t\u0151elem vagy # l\u00e9ptet\u0151 vez\u00e9rl\u0151 akt\u00edv. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0 #idle_timeout: # Az az id\u0151 (m\u00e1sodpercben), miut\u00e1n a l\u00e9ptet\u0151-meghajt\u00f3 vagy a f\u0171t\u0151elem # akt\u00edv volt, \u00e9s a ventil\u00e1tort m\u0171k\u00f6dtetni kell m\u00e9g. # Az alap\u00e9rtelmezett 30 m\u00e1sodperc. #idle_speed: # A ventil\u00e1tor sebess\u00e9ge (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), # amelyre a ventil\u00e1tor be lesz \u00e1ll\u00edtva, amikor egy f\u0171t\u0151elem vagy # l\u00e9ptet\u0151-meghajt\u00f3 akt\u00edv volt, az idle_timeout el\u00e9r\u00e9se el\u0151tt. # Alap\u00e9rtelmezett a fan_speed. #heater: #stepper: # A ventil\u00e1torhoz t\u00e1rs\u00edtott f\u0171t\u00e9st/l\u00e9ptet\u0151t meghat\u00e1roz\u00f3 konfigur\u00e1ci\u00f3s # szakasz neve. Ha itt megadod a f\u0171t\u0151elemek/l\u00e9ptet\u0151k vessz\u0151vel # elv\u00e1lasztott nev\u00e9t, akkor a ventil\u00e1tor enged\u00e9lyezve lesz, ha az adott # f\u0171t\u0151testek/l\u00e9ptet\u0151k b\u00e1rmelyike enged\u00e9lyezett. Az alap\u00e9rtelmezett f\u0171t\u0151elem # az \"extruder\", az alap\u00e9rtelmezett l\u00e9ptet\u0151 pedig mindegyik. [temperature_fan] \u00b6 H\u0151m\u00e9rs\u00e9klet vez\u00e9relt h\u0171t\u0151ventil\u00e1torok (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni a \"temperature_fan\" el\u0151taggal). A \"h\u0151m\u00e9rs\u00e9kleti ventil\u00e1tor\" olyan ventil\u00e1tor, amely akkor kapcsol be, amikor a hozz\u00e1 tartoz\u00f3 \u00e9rz\u00e9kel\u0151 egy be\u00e1ll\u00edtott h\u0151m\u00e9rs\u00e9klet felett van. Alap\u00e9rtelmez\u00e9s szerint a temperature_fan kikapcsol\u00e1si sebess\u00e9ge egyenl\u0151 a max_power \u00e9rt\u00e9kkel. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1st . [temperature_fan my_temp_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"ventil\u00e1tor\" r\u00e9szben. #sensor_type: #sensor_pin: #control: #max_delta: #min_temp: #max_temp: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"extruder\" r\u00e9szben. #pid_Kp: #pid_Ki: #pid_Kd: # Az ar\u00e1nyos (pid_Kp), az integr\u00e1l (pid_Ki) \u00e9s a deriv\u00e1lt (pid_Kd) be\u00e1ll\u00edt\u00e1sai # a PID visszacsatol\u00e1svez\u00e9rl\u0151 rendszerhez. A Klipper a PID be\u00e1ll\u00edt\u00e1sokat a # k\u00f6vetkez\u0151 \u00e1ltal\u00e1nos k\u00e9plettel \u00e9rt\u00e9keli ki: ventil\u00e1tor_pwm = max_power # - (Kp*e + Ki*integr\u00e1l(e) - Kd*deriv\u00e1lt(e)) / 255 ahol \"e\" a # \"target_temperature - measured_temperature\" \u00e9s \"fan_pwm\" a k\u00e9rt # ventil\u00e1torsebess\u00e9g, ahol a 0.0 tele van, az 1.0 pedig teljesen be van # kapcsolva. A pid_Kp, pid_Ki \u00e9s pid_Kd param\u00e9tereket akkor kell megadni, # ha a PID vez\u00e9rl\u0151 algoritmus enged\u00e9lyezve van. #pid_deriv_time: 2.0 # Az az id\u0151\u00e9rt\u00e9k (m\u00e1sodpercben), amelyen kereszt\u00fcl a h\u0151m\u00e9rs\u00e9kletm\u00e9r\u00e9s # sim\u00edt\u00e1sra ker\u00fcl a PID szab\u00e1lyoz\u00e1si algoritmus haszn\u00e1latakor. # Ez cs\u00f6kkentheti a m\u00e9r\u00e9si zaj hat\u00e1s\u00e1t. Az alap\u00e9rtelmezett a 2 m\u00e1sodperc. #target_temp: 40.0 # Egy h\u0151m\u00e9rs\u00e9klet (Celsiusban), amely a c\u00e9lh\u0151m\u00e9rs\u00e9klet lesz. # Az alap\u00e9rtelmezett a 40 fok. #max_speed: 1.0 # A ventil\u00e1tor sebess\u00e9ge (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), amelyre a # ventil\u00e1tor be lesz \u00e1ll\u00edtva, ha az \u00e9rz\u00e9kel\u0151 h\u0151m\u00e9rs\u00e9klete meghaladja a # be\u00e1ll\u00edtott \u00e9rt\u00e9ket. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0. #min_speed: 0,3 # Az a minim\u00e1lis ventil\u00e1tor fordulatsz\u00e1m (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben # kifejezve), amelyre a ventil\u00e1tor be lesz \u00e1ll\u00edtva a PID h\u0151m\u00e9rs\u00e9klet\u0171 # ventil\u00e1torokhoz. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0.3. #gcode_id: # Ha be van \u00e1ll\u00edtva, a h\u0151m\u00e9rs\u00e9kletet az M105 lek\u00e9rdez\u00e9sekben jelenti a # megadott azonos\u00edt\u00f3val. Az alap\u00e9rtelmez\u00e9s szerint nem jelenti a # h\u0151m\u00e9rs\u00e9kletet az M105-\u00f6n kereszt\u00fcl. [fan_generic] \u00b6 K\u00e9zi vez\u00e9rl\u00e9s\u0171 ventil\u00e1tor (a \"fan_generic\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni). A k\u00e9zi vez\u00e9rl\u00e9s\u0171 ventil\u00e1tor fordulatsz\u00e1m\u00e1t a SET_FAN_SPEED G-k\u00f3d paranccsal lehet be\u00e1ll\u00edtani. [fan_generic extruder_partfan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"ventil\u00e1tor\" r\u00e9szben. LED-ek \u00b6 [led] \u00b6 A mikrokontroller PWM t\u0171in kereszt\u00fcl vez\u00e9relt LED-ek (\u00e9s LED-cs\u00edkok) t\u00e1mogat\u00e1sa (a \"led\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t defini\u00e1lhatunk). Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1st . [led my_led] #red_pin: #green_pin: #blue_pin: #white_pin: # Az adott LED sz\u00ednt vez\u00e9rl\u0151 t\u0171. A fenti param\u00e9terek k\u00f6z\u00fcl legal\u00e1bb # egyet meg kell adni. #cycle_time: 0.010 # Az id\u0151 (m\u00e1sodpercben) PWM ciklusonk\u00e9nt. Szoftver alap\u00fa PWM # haszn\u00e1lata eset\u00e9n aj\u00e1nlott ez 10 ezredm\u00e1sodperc vagy t\u00f6bb. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,010 m\u00e1sodperc. #hardware_pwm: False # Enged\u00e9lyezd ezt a hardveres PWM haszn\u00e1lat\u00e1hoz a szoftveres # PWM helyett. Hardveres PWM haszn\u00e1latakor a t\u00e9nyleges ciklusid\u0151t # a megval\u00f3s\u00edt\u00e1s korl\u00e1tozza, \u00e9s jelent\u0151sen elt\u00e9rhet a k\u00e9rt ciklusid\u0151t\u0151l. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Be\u00e1ll\u00edtja a LED kezdeti sz\u00edn\u00e9t. Mindegyik \u00e9rt\u00e9knek 0,0 \u00e9s 1,0 k\u00f6z\u00f6tt # kell lennie. Minden sz\u00edn alap\u00e9rtelmezett \u00e9rt\u00e9ke 0. [neopixel] \u00b6 Neopixel (m\u00e1s n\u00e9ven WS2812) LED t\u00e1mogat\u00e1s (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t defini\u00e1lhatunk \"neopixel\" el\u0151taggal). Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1st . Vedd figyelembe, hogy a linux mcu implement\u00e1ci\u00f3 jelenleg nem t\u00e1mogatja a k\u00f6zvetlen\u00fcl csatlakoztatott neopixeleket. A Linux kernel interf\u00e9szt haszn\u00e1l\u00f3 jelenlegi tervezet nem teszi lehet\u0151v\u00e9 ezt a forgat\u00f3k\u00f6nyvet, mivel a kernel GPIO interf\u00e9sze nem el\u00e9g gyors a sz\u00fcks\u00e9ges impulzussz\u00e1mok biztos\u00edt\u00e1s\u00e1hoz. [neopixel my_neopixel] pin: # A neopixelhez csatlakoztatott t\u0171. # Ennek a param\u00e9ternek a k\u00f6vetkez\u0151nek kell lennie. #chain_count: # A megadott t\u0171h\u00f6z \"l\u00e1ncolt\" Neopixel chipek sz\u00e1ma. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1 (ami azt jelenti, hogy csak egy # Neopixel csatlakozik a t\u0171h\u00f6z). #color_order: GRB # \u00c1ll\u00edtsd be a LED hardver \u00e1ltal megk\u00f6vetelt pixelsorrendj\u00e9t # (az R, G, B, W bet\u0171ket tartalmaz\u00f3 karakterl\u00e1ncot haszn\u00e1lva, a # W opcion\u00e1lis). Alternat\u00edvak\u00e9nt ez lehet a pixelsorrendek vessz\u0151vel # elv\u00e1lasztott list\u00e1ja is - egy minden egyes pixelhez LED-hez a l\u00e1ncban. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k GRB. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Ezekr\u0151l a param\u00e9terekr\u0151l l\u00e1sd a \"LED\" r\u00e9szt. [dotstar] \u00b6 Dotstar (m\u00e1s n\u00e9ven APA102) LED-t\u00e1mogat\u00e1s (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"dotstar\" el\u0151taggal). Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1st . [dotstar my_dotstar] data_pin: # A pont a dotstar adatvonal\u00e1hoz csatlakozik. # Ezt a param\u00e9tert meg kell adni. clock_pin: # A dotstar id\u0151jel vonal\u00e1hoz csatlakoztatott t\u0171. # Ezt a param\u00e9tert meg kell adni. #chain_count: # A param\u00e9terrel kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a \"neopixel\" r\u00e9szt. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 # Ezen param\u00e9terek le\u00edr\u00e1s\u00e1r\u00f3l n\u00e9zd meg a \"LED\" r\u00e9szt. [pca9533] \u00b6 PCA9533 LED-t\u00e1mogat\u00e1s. A PCA9533 a mightyboardon haszn\u00e1latos. [pca9533 my_pca9533] #i2c_address: 98 # Az I2C c\u00edm, amelyet a chip az I2C buszon haszn\u00e1l. # Haszn\u00e1ld a 98-at a PCA9533/1-hez, a 99-et a PCA9533/2-hez. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 98. #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Ezen param\u00e9terek le\u00edr\u00e1s\u00e1r\u00f3l n\u00e9zd meg a \"LED\" r\u00e9szt. [pca9632] \u00b6 PCA9632 LED t\u00e1mogat\u00e1s. A PCA9632-t a FlashForge Dreamer-ben haszn\u00e1lj\u00e1k. [pca9632 my_pca9632] #i2c_address: 98 # Az I2C c\u00edm, amelyet a chip az I2C buszon haszn\u00e1l. # Ez lehet 96, 97, 98 vagy 99. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 98. #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #scl_pin: #sda_pin: # Alternat\u00edv megold\u00e1sk\u00e9nt, ha a pca9632 nincs hardveres I2C # buszhoz csatlakoztatva, akkor megadhatod az \"\u00f3ra\" (scl_pin) # \u00e9s \"data\" (sda_pin) \u00e9rintkez\u0151ket. # Az alap\u00e9rtelmez\u00e9s a hardveres I2C haszn\u00e1lata. #color_order: RGBW # \u00c1ll\u00edtsd be a LED pixelsorrendj\u00e9t (egy R, G, B, W bet\u0171ket # tartalmaz\u00f3 sztring seg\u00edts\u00e9g\u00e9vel). Az alap\u00e9rtelmezett az RGBW. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Ezen param\u00e9terek le\u00edr\u00e1s\u00e1r\u00f3l n\u00e9zd meg a \"LED\" r\u00e9szt. Tov\u00e1bbi szerv\u00f3k, gombok \u00e9s egy\u00e9b t\u0171k \u00b6 [servo] \u00b6 Szerv\u00f3k (a \"servo\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni). A szerv\u00f3k a SET_SERVO G-k\u00f3d parancs seg\u00edts\u00e9g\u00e9vel vez\u00e9relhet\u0151k. P\u00e9ld\u00e1ul: SET_SERVO SERVO=my_servo ANGLE=180 [servo my_servo] pin: # PWM kimeneti \u00e9rintkez\u0151, amely a szerv\u00f3t vez\u00e9rli. # Ezt a param\u00e9tert meg kell adni. #maximum_servo_angle: 180 # A maxim\u00e1lis sz\u00f6g (fokban), amelyre ez a szerv\u00f3 be\u00e1ll\u00edthat\u00f3. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 180 fok. #minimum_pulse_width: 0.001 # A minim\u00e1lis impulzussz\u00e9less\u00e9g ideje (m\u00e1sodpercben). # Ennek 0 fokos sz\u00f6gnek kell megfelelnie. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,001 m\u00e1sodperc. #maximum_pulse_width: 0.002 # A maxim\u00e1lis impulzussz\u00e9less\u00e9g ideje (m\u00e1sodpercben). # Ennek meg kell felelnie a maximum_servo_angle sz\u00f6gnek. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,002 m\u00e1sodperc. #initial_angle: # Kezdeti sz\u00f6g (fokban) a szerv\u00f3 be\u00e1ll\u00edt\u00e1s\u00e1hoz. # Az alap\u00e9rtelmezett az, hogy ind\u00edt\u00e1skor nem k\u00fcld jelet. #initial_pulse_width: # A kezdeti impulzussz\u00e9less\u00e9g (m\u00e1sodpercben) a szerv\u00f3 be\u00e1ll\u00edt\u00e1s\u00e1hoz. # (Ez csak akkor \u00e9rv\u00e9nyes, ha a initial_angle nincs be\u00e1ll\u00edtva.) # Az alap\u00e9rtelmez\u00e9s az, hogy ind\u00edt\u00e1skor nem k\u00fcld jelet. [gcode_button] \u00b6 A G-k\u00f3d v\u00e9grehajt\u00e1sa, amikor egy gombot megnyomnak vagy elengednek (vagy amikor egy t\u0171 \u00e1llapota megv\u00e1ltozik). A gomb \u00e1llapot\u00e1t a QUERY_BUTTON button=my_gcode_button seg\u00edts\u00e9g\u00e9vel ellen\u0151rizhetj\u00fck. [gcode_button my_gcode_button] pin: # Az a t\u0171, amelyre a gomb csatlakozik. Ezt a param\u00e9tert meg kell adni. #analog_range: # K\u00e9t vessz\u0151vel elv\u00e1lasztott ellen\u00e1ll\u00e1s (ohmban), amely meghat\u00e1rozza # a gomb minim\u00e1lis \u00e9s maxim\u00e1lis ellen\u00e1ll\u00e1si tartom\u00e1ny\u00e1t. Ha meg van # adva az analog_range, akkor a l\u00e1bnak anal\u00f3g-k\u00e9pes t\u0171nek kell lennie. # Az alap\u00e9rtelmezett a digit\u00e1lis GPIO haszn\u00e1lata a gombhoz. #analog_pullup_resistor: # A felh\u00faz\u00e1si ellen\u00e1ll\u00e1s (ohmban), ha az analog_range meg van adva. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 4700 ohm. #press_gcode: # A gomb megnyom\u00e1sakor v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. # A G-k\u00f3d sablonok t\u00e1mogatottak. Ezt a param\u00e9tert meg kell adni. #release_gcode: # A gomb elenged\u00e9sekor v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. # A G-k\u00f3d sablonok t\u00e1mogatottak. Az alap\u00e9rtelmez\u00e9s szerint nem # futnak le parancsok a gombok felenged\u00e9sekor. [output_pin] \u00b6 Futtat\u00e1si id\u0151ben konfigur\u00e1lhat\u00f3 kimeneti t\u0171k (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"output_pin\" el\u0151taggal). Az itt konfigur\u00e1lt t\u0171k kimeneti t\u0171kk\u00e9nt lesznek be\u00e1ll\u00edtva, \u00e9s futtat\u00e1si id\u0151ben a \"SET_PIN PIN=my_pin VALUE=.1\" t\u00edpus\u00fa kiterjesztett G-k\u00f3d parancsok seg\u00edts\u00e9g\u00e9vel m\u00f3dos\u00edthatjuk \u0151ket. [output_pin my_pin] pin: # A kimenetk\u00e9nt konfigur\u00e1land\u00f3 t\u0171. Ezt a param\u00e9tert meg kell adni. #pwm: False # \u00c1ll\u00edtsd be, hogy a kimeneti l\u00e1bnak k\u00e9pesnek kell lennie # impulzussz\u00e9less\u00e9g-modul\u00e1ci\u00f3ra. Ha ez True, az \u00e9rt\u00e9kmez\u0151knek 0 \u00e9s 1 # k\u00f6z\u00f6tt kell lenni\u00fck. Ha False, az \u00e9rt\u00e9kmez\u0151k \u00e9rt\u00e9ke 0 vagy 1 legyen. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #static_value: # Ha ez be van \u00e1ll\u00edtva, akkor a t\u0171 ehhez az \u00e9rt\u00e9khez lesz rendelve ind\u00edt\u00e1skor, # \u00e9s a t\u0171 nem m\u00f3dos\u00edthat\u00f3 m\u0171k\u00f6d\u00e9s k\u00f6zben. Egy statikus t\u0171 valamivel # kevesebb RAM-ot haszn\u00e1l a mikrokontrollerben. # Az alap\u00e9rtelmezett a l\u00e1bak fut\u00e1sidej\u0171 konfigur\u00e1ci\u00f3ja. #value: # Az az \u00e9rt\u00e9k, amelyre az MCU konfigur\u00e1l\u00e1sa sor\u00e1n el\u0151sz\u00f6r be kell \u00e1ll\u00edtani a t\u0171t. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0 (alacsony fesz\u00fclts\u00e9g eset\u00e9n). #shutdown_value: # Az az \u00e9rt\u00e9k, amelyre a t\u0171t be kell \u00e1ll\u00edtani egy MCU le\u00e1ll\u00e1si esem\u00e9nyn\u00e9l. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0 (alacsony fesz\u00fclts\u00e9g eset\u00e9n). #maximum_mcu_duration: # A nem-le\u00e1ll\u00edt\u00e1si \u00e9rt\u00e9k maxim\u00e1lis id\u0151tartama az MCU \u00e1ltal a gazdag\u00e9pt\u0151l # \u00e9rkez\u0151 nyugt\u00e1z\u00e1s n\u00e9lk\u00fcl hajthat\u00f3 v\u00e9gre. Ha a gazdag\u00e9p nem tud l\u00e9p\u00e9st # tartani a friss\u00edt\u00e9ssel, az MCU le\u00e1ll, \u00e9s az \u00f6sszes \u00e9rintkez\u0151t a megfelel\u0151 # le\u00e1ll\u00edt\u00e1si \u00e9rt\u00e9kre \u00e1ll\u00edtja. Az alap\u00e9rtelmezett \u00e9rt\u00e9k: 0 (letiltva) # A szok\u00e1sos \u00e9rt\u00e9kek 5 m\u00e1sodperc k\u00f6r\u00fcliek. #cycle_time: 0.100 # Az id\u0151 (m\u00e1sodpercben) PWM ciklusonk\u00e9nt. Szoftver alap\u00fa PWM haszn\u00e1lata # eset\u00e9n aj\u00e1nlott 10 ezredm\u00e1sodperc vagy t\u00f6bb. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,100 m\u00e1sodperc a PWM l\u00e1bak eset\u00e9n. #hardware_pwm: False # Enged\u00e9lyezd ezt a hardveres PWM haszn\u00e1lat\u00e1hoz a szoftveres PWM helyett. # Hardveres PWM haszn\u00e1latakor a t\u00e9nyleges ciklusid\u0151t a megval\u00f3s\u00edt\u00e1s # korl\u00e1tozza, \u00e9s jelent\u0151sen elt\u00e9rhet a k\u00e9rt ciklusid\u0151t\u0151l. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #scale: # Ezzel a param\u00e9terrel m\u00f3dos\u00edthat\u00f3 a 'value' \u00e9s 'shutdown_value' param\u00e9terek # \u00e9rtelmez\u00e9se a PWM l\u00e1bak eset\u00e9ben. Ha meg van adva, akkor az 'value' # param\u00e9ternek 0,0 \u00e9s 'scale' k\u00f6z\u00f6tt kell lennie. Ez hasznos lehet olyan PWM # l\u00e1b konfigur\u00e1l\u00e1sakor, amely a l\u00e9ptet\u0151 fesz\u00fclts\u00e9g referencia\u00e9rt\u00e9k\u00e9t vez\u00e9rli. # A 'scale' be\u00e1ll\u00edthat\u00f3 az egyen\u00e9rt\u00e9k\u0171 l\u00e9ptet\u0151 \u00e1ramer\u0151ss\u00e9gre, ha a PWM teljesen # enged\u00e9lyezett volt, majd az 'value' param\u00e9ter megadhat\u00f3 a l\u00e9ptet\u0151 k\u00edv\u00e1nt # \u00e1ramer\u0151ss\u00e9g\u00e9vel. # Az alap\u00e9rtelmez\u00e9s szerint nem sk\u00e1l\u00e1zzuk a 'value' param\u00e9tert. [static_digital_output] \u00b6 Statikusan konfigur\u00e1lt digit\u00e1lis kimeneti t\u0171k (tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3 \"static_digital_output\" el\u0151taggal). Az itt konfigur\u00e1lt t\u0171k az MCU konfigur\u00e1l\u00e1sa sor\u00e1n GPIO kimenetk\u00e9nt lesznek be\u00e1ll\u00edtva. \u00dczem k\u00f6zben nem m\u00f3dos\u00edthat\u00f3k. [static_digital_output my_output_pins] pins: # A GPIO kimeneti t\u0171k\u00e9nt be\u00e1ll\u00edtand\u00f3 t\u0171k vessz\u0151vel elv\u00e1lasztott # list\u00e1ja. A gomb t\u0171je magas szintre lesz \u00e1ll\u00edtva, hacsak a t\u0171 neve # el\u0151tt nem szerepel \"!\". Ezt a param\u00e9tert meg kell adni. [multi_pin] \u00b6 T\u00f6bb t\u0171s kimenetek (a \"multi_pin\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3). A multi_pin kimenet egy bels\u0151 t\u0171 \u00e1lnevet hoz l\u00e9tre, amely t\u00f6bb kimeneti t\u0171t is m\u00f3dos\u00edthat minden alkalommal, amikor az \u00e1ln\u00e9v t\u0171 be van \u00e1ll\u00edtva. P\u00e9ld\u00e1ul defini\u00e1lhatunk egy \"[multi_pin my_fan]\" objektumot, amely k\u00e9t t\u0171t tartalmaz, majd be\u00e1ll\u00edthatjuk a \"pin=multi_pin:my_fan\" \u00e9rt\u00e9ket a \"[fan]\" szakaszban. Minden egyes ventil\u00e1torv\u00e1lt\u00e1skor mindk\u00e9t kimeneti t\u0171 friss\u00fcl. Ezek az \u00e1lnevek nem haszn\u00e1lhat\u00f3k l\u00e9ptet\u0151motoros t\u0171kkel. [multi_pin my_multi_pin] pins: # Az ehhez az \u00e1ln\u00e9vhez t\u00e1rs\u00edtott t\u0171k vessz\u0151vel elv\u00e1lasztott list\u00e1ja. # Ezt a param\u00e9tert meg kell adni. TMC motorvez\u00e9rl\u0151 konfigur\u00e1ci\u00f3ja \u00b6 Trinamic l\u00e9ptet\u0151motor meghajt\u00f3k konfigur\u00e1l\u00e1sa UART/SPI \u00fczemm\u00f3dban. Tov\u00e1bbi inform\u00e1ci\u00f3k a TMC Drivers \u00fatmutat\u00f3ban \u00e9s a parancsreferenci\u00e1ban is tal\u00e1lhat\u00f3ak. [tmc2130] \u00b6 TMC2130 motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1sa SPI-buszon kereszt\u00fcl. A funkci\u00f3 haszn\u00e1lat\u00e1hoz defini\u00e1ljon egy konfigur\u00e1ci\u00f3s szekci\u00f3t \"tmc2130\" el\u0151taggal, amelyet a megfelel\u0151 l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3s szekci\u00f3 neve k\u00f6vet (p\u00e9ld\u00e1ul \"[tmc2130 stepper_x]\"). [tmc2130 stepper_x] cs_pin: # A TMC2130 chip kiv\u00e1laszt\u00e1si vonal\u00e1nak megfelel\u0151 t\u0171. Ez a t\u0171 alacsony # \u00e9rt\u00e9kre lesz \u00e1ll\u00edtva az SPI-\u00fczenetek elej\u00e9n, \u00e9s az \u00fczenet befejez\u00e9se # ut\u00e1n magasra lesz h\u00fazva. Ezt a param\u00e9tert meg kell adni. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t az \u201e\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\u201d r\u00e9szben # tal\u00e1lja. #chain_position: #chain_length: # Ezek a param\u00e9terek egy SPI-l\u00e1ncot konfigur\u00e1lnak. A k\u00e9t param\u00e9ter # hat\u00e1rozza meg a l\u00e9ptet\u0151 poz\u00edci\u00f3j\u00e1t a l\u00e1ncban \u00e9s a teljes l\u00e1nchosszt. # Az 1. poz\u00edci\u00f3 a MOSI jelhez csatlakoz\u00f3 l\u00e9ptet\u0151nek felel meg. # Az alap\u00e9rtelmez\u00e9s szerint nem haszn\u00e1l SPI-l\u00e1ncot. #interpolate: True # Ha True, enged\u00e9lyezd a l\u00e9p\u00e9sinterpol\u00e1ci\u00f3t (az illeszt\u0151program # bels\u0151leg 256 mikrol\u00e9p\u00e9ses sebess\u00e9ggel l\u00e9ptet). Ez az interpol\u00e1ci\u00f3 egy # kis sziszt\u00e9m\u00e1s poz\u00edci\u00f3elt\u00e9r\u00e9st vezet be. A r\u00e9szletek\u00e9rt l\u00e1sd: # TMC_Drivers.md. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. run_current: # Az \u00e1ramer\u0151ss\u00e9g (amper RMS-ben) a motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1s\u00e1hoz a # l\u00e9ptet\u0151motor mozg\u00e1sa sor\u00e1n. Ezt a param\u00e9tert meg kell adni. #hold_current: # Az az \u00e1ramer\u0151ss\u00e9g (amper RMS-ben), amelyet a motorvez\u00e9rl\u0151nek akkor # kell leadni, amikor a l\u00e9ptet\u0151motor nem mozog. A hold_current be\u00e1ll\u00edt\u00e1sa # nem aj\u00e1nlott (a r\u00e9szletek\u00e9rt l\u00e1sd: TMC_Drivers.md). Az alap\u00e9rtelmezett # az, hogy nem cs\u00f6kkenti az \u00e1ramer\u0151ss\u00e9get. #sense_resistor: 0.110 # A motor \u00e9rz\u00e9kel\u0151 ellen\u00e1ll\u00e1s\u00e1nak ellen\u00e1ll\u00e1sa (ohmban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,110 ohm. #stealthchop_threshold: 0 # A \u201eStealthChop\u201d k\u00fcsz\u00f6b\u00e9rt\u00e9k be\u00e1ll\u00edt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges sebess\u00e9g # (mm/sec-ben). Ha be van \u00e1ll\u00edtva, a \"StealthChop\" m\u00f3d enged\u00e9lyezve # lesz, ha a l\u00e9ptet\u0151motor sebess\u00e9ge ez alatt az \u00e9rt\u00e9k alatt van. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, ami letiltja a \"StealthChop\" m\u00f3dot. #driver_IHOLDDELAY: 8 #driver_TPOWERDOWN: 0 #driver_TBL: 1 #driver_TOFF: 4 #driver_HEND: 7 #driver_HSTRT: 0 #driver_PWM_AUTOSCALE: True #driver_PWM_FREQ: 1 #driver_PWM_GRAD: 4 #driver_PWM_AMPL: 128 #driver_SGT: 0 # \u00c1ll\u00edtsd be a megadott regisztert a TMC2130 chip konfigur\u00e1ci\u00f3ja sor\u00e1n. # Ez egy\u00e9ni motorparam\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. # Az egyes param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a param\u00e9ter neve mellett # tal\u00e1lhat\u00f3k a fenti list\u00e1ban. #diag0_pin: #diag1_pin: # A mikrovez\u00e9rl\u0151 t\u0171je a TMC2130 chip egyik DIAG t\u0171j\u00e9hez csatlakozik. # Csak egyetlen DIAG t\u0171t kell megadni. A t\u0171 \"active low\", ez\u00e9rt # \u00e1ltal\u00e1ban \"^!\" el\u0151tagja van. Ennek be\u00e1ll\u00edt\u00e1sa egy # \u201etmc2130_stepper_x:virtual_endstop\u201d virtu\u00e1lis t\u0171t hoz l\u00e9tre, amely a # l\u00e9ptet\u0151 endstop_pin-jek\u00e9nt haszn\u00e1lhat\u00f3. Ez lehet\u0151v\u00e9 teszi az # \u201e\u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel\u201d funkci\u00f3t. (Gy\u0151z\u0151dj meg arr\u00f3l, # hogy a driver_SGT-t is megfelel\u0151 \u00e9rz\u00e9kenys\u00e9gi \u00e9rt\u00e9kre \u00e1ll\u00edtja be.) # Az alap\u00e9rtelmez\u00e9s az, hogy nem enged\u00e9lyezi az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli # kezd\u0151pont felv\u00e9telt. [tmc2208] \u00b6 TMC2208 (vagy TMC2224) motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1sa egyvezet\u00e9kes UART-on kereszt\u00fcl. A funkci\u00f3 haszn\u00e1lat\u00e1hoz defini\u00e1ljon egy konfigur\u00e1ci\u00f3s r\u00e9szt \"tmc2208\" el\u0151taggal, amelyet a megfelel\u0151 l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3s r\u00e9sz neve k\u00f6vet (p\u00e9ld\u00e1ul \"[tmc2208 stepper_x]\"). [tmc2208 stepper_x] uart_pin: # A TMC2208 PDN_UART vonalhoz csatlakoztatott t\u0171. # Ezt a param\u00e9tert meg kell adni. #tx_pin: # Ha k\u00fcl\u00f6n v\u00e9teli \u00e9s ad\u00e1si vonalat haszn\u00e1l a meghajt\u00f3val val\u00f3 # kommunik\u00e1ci\u00f3hoz, akkor \u00e1ll\u00edtsd be az uart_pin param\u00e9tert a v\u00e9teli # l\u00e1bra, \u00e9s a tx_pin \u00e9rt\u00e9ket az \u00e1tviteli l\u00e1bra. Az alap\u00e9rtelmezett az # uart_pin haszn\u00e1lata mind olvas\u00e1shoz, mind \u00edr\u00e1shoz. #select_pins: # A tmc2208 UART el\u00e9r\u00e9se el\u0151tt be\u00e1ll\u00edtand\u00f3 t\u0171k vessz\u0151vel elv\u00e1lasztott # list\u00e1ja. Ez hasznos lehet egy anal\u00f3g mux konfigur\u00e1l\u00e1sakor az UART # kommunik\u00e1ci\u00f3hoz. Az alap\u00e9rtelmezett az, hogy nem konfigur\u00e1l # semmilyen \u00e9rintkez\u0151t. #interpolate: True # Ha True, enged\u00e9lyezd a l\u00e9p\u00e9sinterpol\u00e1ci\u00f3t (a motorvez\u00e9rl\u0151 bels\u0151leg # 256 mikrol\u00e9p\u00e9ses sebess\u00e9ggel l\u00e9ptet). Ez az interpol\u00e1ci\u00f3 egy kis # sziszt\u00e9m\u00e1s poz\u00edci\u00f3elt\u00e9r\u00e9st vezet be. A r\u00e9szletek\u00e9rt l\u00e1sd: # TMC_Drivers.md. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. run_current: # Az \u00e1ramer\u0151ss\u00e9g (amper RMS-ben) a meghajt\u00f3 konfigur\u00e1l\u00e1s\u00e1hoz a # l\u00e9ptet\u0151motor mozg\u00e1sa sor\u00e1n. Ezt a param\u00e9tert meg kell adni. #hold_current: # Az az \u00e1ramer\u0151ss\u00e9g (amper RMS-ben), amelyet a motorvez\u00e9rl\u0151 akkor # ad le, amikor a l\u00e9ptet\u0151 nem mozog. A hold_current be\u00e1ll\u00edt\u00e1sa nem # aj\u00e1nlott (a r\u00e9szletek\u00e9rt l\u00e1sd: TMC_Drivers.md). # Az alap\u00e9rtelmezett az, hogy nem cs\u00f6kkenti az \u00e1ramer\u0151ss\u00e9get. #sense_resistor: 0.110 # A motor \u00e9rz\u00e9kel\u0151 ellen\u00e1ll\u00e1s\u00e1nak ellen\u00e1ll\u00e1sa (ohmban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,110 ohm. #stealthchop_threshold: 0 # A \u201eStealthChop\u201d k\u00fcsz\u00f6b\u00e9rt\u00e9k be\u00e1ll\u00edt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges sebess\u00e9g # (mm/sec-ben). Ha be van \u00e1ll\u00edtva, a \"StealthChop\" m\u00f3d enged\u00e9lyezve # lesz, ha a l\u00e9ptet\u0151motor sebess\u00e9ge ez alatt az \u00e9rt\u00e9k alatt van. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, ami letiltja a \"StealthChop\" m\u00f3dot. #driver_IHOLDDELAY: 8 #driver_TPOWERDOWN: 20 #driver_TBL: 2 #driver_TOFF: 3 #driver_HEND: 0 #driver_HSTRT: 5 #driver_PWM_AUTOGRAD: True #driver_PWM_AUTOSCALE: True #driver_PWM_LIM: 12 #driver_PWM_REG: 8 #driver_PWM_FREQ: 1 #driver_PWM_GRAD: 14 #driver_PWM_OFS: 36 # \u00c1ll\u00edtsd be a megadott regisztert a TMC2208 chip konfigur\u00e1ci\u00f3ja sor\u00e1n. # Ez egy\u00e9ni motorparam\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. Az egyes # param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a param\u00e9ter neve mellett # tal\u00e1lhat\u00f3k a fenti list\u00e1ban. [tmc2209] \u00b6 TMC2209 motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1sa egyvezet\u00e9kes UART-on kereszt\u00fcl. A funkci\u00f3 haszn\u00e1lat\u00e1hoz defini\u00e1ljon egy konfigur\u00e1ci\u00f3s szekci\u00f3t \"tmc2209\" el\u0151taggal, amelyet a megfelel\u0151 l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3s szekci\u00f3 neve k\u00f6vet (p\u00e9ld\u00e1ul \"[tmc2209 stepper_x]\"). [tmc2209 stepper_x] uart_pin: #tx_pin: #select_pins: #interpolate: True run_current: #hold_current: #sense_resistor: 0.110 #stealthchop_threshold: 0 # A param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd a \"TMC2208\" r\u00e9szt. #uart_address: # A TMC2209 chip c\u00edme UART \u00fczenetekhez (0 \u00e9s 3 k\u00f6z\u00f6tti eg\u00e9sz sz\u00e1m). # Ezt \u00e1ltal\u00e1ban akkor haszn\u00e1lj\u00e1k, ha t\u00f6bb TMC2209 chip csatlakozik # ugyanahhoz az UART \u00e9rintkez\u0151h\u00f6z. Az alap\u00e9rtelmezett \u00e9rt\u00e9k nulla. #driver_IHOLDDELAY: 8 #driver_TPOWERDOWN: 20 #driver_TBL: 2 #driver_TOFF: 3 #driver_HEND: 0 #driver_HSTRT: 5 #driver_PWM_AUTOGRAD: True #driver_PWM_AUTOSCALE: True #driver_PWM_LIM: 12 #driver_PWM_REG: 8 #driver_PWM_FREQ: 1 #driver_PWM_GRAD: 14 #driver_PWM_OFS: 36 #driver_SGTHRS: 0 # \u00c1ll\u00edtsd be a megadott regisztert a TMC2209 chip konfigur\u00e1ci\u00f3ja sor\u00e1n. # Ez egy\u00e9ni motorparam\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. # Az egyes param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a param\u00e9ter neve # mellett tal\u00e1lhat\u00f3k a fenti list\u00e1ban. #diag_pin: # A TMC2209 chip DIAG t\u0171j\u00e9hez csatlakoztatott mikrovez\u00e9rl\u0151 t\u0171je. # A t\u0171 el\u0151tagja \u00e1ltal\u00e1ban \"^\"-vel t\u00f6rt\u00e9nik, hogy lehet\u0151v\u00e9 tegye a # felh\u00faz\u00e1st. Ennek be\u00e1ll\u00edt\u00e1sa egy # \"tmc2209_stepper_x:virtual_endstop\" virtu\u00e1lis t\u0171t hoz l\u00e9tre, # amely a l\u00e9ptet\u0151 endstop_pin-jek\u00e9nt haszn\u00e1lhat\u00f3. Ez lehet\u0151v\u00e9 teszi a # \"v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telt\". (Gy\u0151z\u0151dj meg arr\u00f3l, # hogy a driver_SGTHRS-t is megfelel\u0151 \u00e9rz\u00e9kenys\u00e9gi \u00e9rt\u00e9kre \u00e1ll\u00edtja be.) # Alap\u00e9rtelmez\u00e9s szerint nincs enged\u00e9lyezve a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 n\u00e9lk\u00fcli # kezd\u0151pont felv\u00e9telt. [tmc2660] \u00b6 TMC2660 motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1sa SPI-buszon kereszt\u00fcl. A funkci\u00f3 haszn\u00e1lat\u00e1hoz defini\u00e1ljon egy konfigur\u00e1ci\u00f3s szekci\u00f3t tmc2660 el\u0151taggal, amelyet a megfelel\u0151 l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3s szekci\u00f3 neve k\u00f6vet (p\u00e9ld\u00e1ul \"[tmc2660 stepper_x]\"). [tmc2660 stepper_x] cs_pin: # A TMC2660 chip kiv\u00e1laszt\u00e1si vonal\u00e1nak megfelel\u0151 t\u0171. Ez a t\u0171 # alacsonyra lesz \u00e1ll\u00edtva az SPI-\u00fczenetek elej\u00e9n, \u00e9s magasra az # \u00fczenet\u00e1tvitel befejez\u00e9se ut\u00e1n. Ezt a param\u00e9tert meg kell adni. #spi_speed: 4000000 # A TMC2660 l\u00e9ptet\u0151 meghajt\u00f3val val\u00f3 kommunik\u00e1ci\u00f3hoz haszn\u00e1lt # SPI-busz-frekvencia. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 4000000. #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t a \u201e\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\u201d # r\u00e9szben tal\u00e1lja. #interpolate: True # Ha True, enged\u00e9lyezd a l\u00e9p\u00e9sinterpol\u00e1ci\u00f3t (az illeszt\u0151program # bels\u0151leg 256 mikrol\u00e9p\u00e9ses sebess\u00e9ggel l\u00e9ptet). Ez csak akkor # m\u0171k\u00f6dik, ha a mikrol\u00e9p\u00e9sek 16-ra vannak \u00e1ll\u00edtva. Az interpol\u00e1ci\u00f3 # egy kis sziszt\u00e9m\u00e1s poz\u00edci\u00f3elt\u00e9r\u00e9st vezet be. A r\u00e9szletek\u00e9rt l\u00e1sd a # TMC_Drivers.md f\u00e1jlt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. run_current: # A motorvez\u00e9rl\u0151 \u00e1ltal a l\u00e9ptet\u0151 mozg\u00e1sa sor\u00e1n leadott \u00e1ram er\u0151ss\u00e9ge # (amper RMS-ben). Ezt a param\u00e9tert meg kell adni. #sense_resistor: # A motor \u00e9rz\u00e9kel\u0151 ellen\u00e1ll\u00e1s\u00e1nak ellen\u00e1ll\u00e1sa (ohmban). # Ezt a param\u00e9tert meg kell adni. #idle_current_percent: 100 # A motorvez\u00e9rl\u0151 run_current sz\u00e1zal\u00e9kos ar\u00e1nya lecs\u00f6kken, amikor az # \u00fcresj\u00e1rati id\u0151t\u00fall\u00e9p\u00e9s lej\u00e1r (az id\u0151t\u00fall\u00e9p\u00e9st az [idle_timeout] # konfigur\u00e1ci\u00f3s szakaszban kell be\u00e1ll\u00edtani). Az \u00e1ramer\u0151ss\u00e9g ism\u00e9t # megemelkedik, ha a l\u00e9ptet\u0151nek ism\u00e9t mozognia kell. \u00dcgyelj arra, # hogy ezt el\u00e9g magas \u00e9rt\u00e9kre \u00e1ll\u00edtsd be, hogy a l\u00e9ptet\u0151k ne vesz\u00edts\u00e9k el # poz\u00edci\u00f3jukat. Van egy kis k\u00e9sleltet\u00e9s is, am\u00edg az \u00e1ram ism\u00e9t # megemelkedik, ez\u00e9rt ezt vedd figyelembe, amikor a l\u00e9ptet\u0151 # alapj\u00e1rata k\u00f6zben gyors mozdulatokat ad parancsba. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 100 (nincs cs\u00f6kkent\u00e9s). #driver_TBL: 2 #driver_RNDTF: 0 #driver_HDEC: 0 #driver_CHM: 0 #driver_HEND: 3 #driver_HSTRT: 3 #driver_TOFF: 4 #driver_SEIMIN: 0 #driver_SEDN: 0 #driver_SEMAX: 0 #driver_SEUP: 0 #driver_SEMIN: 0 #driver_SFILT: 0 #driver_SGT: 0 #driver_SLPH: 0 #driver_SLPL: 0 #driver_DISS2G: 0 #driver_TS2G: 3 # \u00c1ll\u00edtsd be a megadott param\u00e9tert a TMC2660 chip konfigur\u00e1ci\u00f3ja sor\u00e1n. # Ez egy\u00e9ni motorvez\u00e9rl\u0151 param\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. # Az egyes param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a param\u00e9ter neve # mellett tal\u00e1lhat\u00f3k a fenti list\u00e1ban. Tekintsd meg a TMC2660 adatlapj\u00e1t # az egyes param\u00e9terek m\u0171k\u00f6d\u00e9s\u00e9r\u0151l \u00e9s a param\u00e9ter kombin\u00e1ci\u00f3k # korl\u00e1toz\u00e1sair\u00f3l. K\u00fcl\u00f6n\u00f6s figyelmet kell ford\u00edtani a CHOPCONF # regiszterre, ahol a CHM null\u00e1ra vagy egyesre \u00e1ll\u00edt\u00e1sa # elrendez\u00e9sm\u00f3dos\u00edt\u00e1sokhoz vezet (a HDEC els\u0151 bitje) ebben az esetben # a HSTRT MSB-jek\u00e9nt \u00e9rtelmez\u0151dik). [tmc5160] \u00b6 TMC5160 motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1sa SPI-buszon kereszt\u00fcl. A funkci\u00f3 haszn\u00e1lat\u00e1hoz defini\u00e1ljon egy konfigur\u00e1ci\u00f3s szekci\u00f3t \"tmc5160\" el\u0151taggal, amelyet a megfelel\u0151 l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3s szekci\u00f3 neve k\u00f6vet (p\u00e9ld\u00e1ul \"[tmc5160 stepper_x]\"). [tmc5160 stepper_x] cs_pin: # A TMC5160 chip kiv\u00e1laszt\u00e1si vonal\u00e1nak megfelel\u0151 t\u0171. Ez a t\u0171 alacsony # \u00e9rt\u00e9kre lesz \u00e1ll\u00edtva az SPI-\u00fczenetek elej\u00e9n, \u00e9s az \u00fczenet befejez\u00e9se ut\u00e1n # magasra v\u00e1ltozik. Ezt a param\u00e9tert meg kell adni. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t az \u201e\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\u201d # r\u00e9szben tal\u00e1lja. #chain_position: #chain_length: # Ezek a param\u00e9terek egy SPI-l\u00e1ncot konfigur\u00e1lnak. A k\u00e9t param\u00e9ter # hat\u00e1rozza meg a l\u00e9ptet\u0151 poz\u00edci\u00f3j\u00e1t a l\u00e1ncban \u00e9s a teljes l\u00e1nchosszt. # Az 1. poz\u00edci\u00f3 a MOSI jelhez csatlakoz\u00f3 l\u00e9ptet\u0151nek felel meg. # Az alap\u00e9rtelmez\u00e9s szerint nem haszn\u00e1l SPI-l\u00e1ncot. #interpolate: True # Ha True, enged\u00e9lyezd a l\u00e9p\u00e9sinterpol\u00e1ci\u00f3t (a motorvez\u00e9rl\u0151 bels\u0151leg # 256 mikrol\u00e9p\u00e9ses sebess\u00e9ggel l\u00e9ptet). Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. run_current: # Az \u00e1ramer\u0151ss\u00e9g (amper RMS-ben) a meghajt\u00f3 konfigur\u00e1l\u00e1s\u00e1hoz a # l\u00e9ptet\u0151 mozg\u00e1sa sor\u00e1n. Ezt a param\u00e9tert meg kell adni. #hold_current: # Az az \u00e1ramer\u0151ss\u00e9g (amper RMS-ben), amelyet a motorvez\u00e9rl\u0151 akkor # ad le, amikor a l\u00e9ptet\u0151 nem mozog. A hold_current be\u00e1ll\u00edt\u00e1sa nem # aj\u00e1nlott (a r\u00e9szletek\u00e9rt l\u00e1sd: TMC_Drivers.md). # Az alap\u00e9rtelmezett az, hogy nem cs\u00f6kkenti az \u00e1ramer\u0151ss\u00e9get. #sense_resistor: 0.075 # A motor \u00e9rz\u00e9kel\u0151 ellen\u00e1ll\u00e1s\u00e1nak ellen\u00e1ll\u00e1sa (ohmban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,075 ohm. #stealthchop_threshold: 0 # A \u201eStealthChop\u201d k\u00fcsz\u00f6b\u00e9rt\u00e9k be\u00e1ll\u00edt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges sebess\u00e9g # (mm/sec-ben). Ha be van \u00e1ll\u00edtva, a \"StealthChop\" m\u00f3d enged\u00e9lyezve # lesz, ha a l\u00e9ptet\u0151motor sebess\u00e9ge ez alatt az \u00e9rt\u00e9k alatt van. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, ami letiltja a \"StealthChop\" m\u00f3dot. #driver_IHOLDDELAY: 6 #driver_TPOWERDOWN: 10 #driver_TBL: 2 #driver_TOFF: 3 #driver_HEND: 2 #driver_HSTRT: 5 #driver_FD3: 0 #driver_TPFD: 4 #driver_CHM: 0 #driver_VHIGHFS: 0 #driver_VHIGHCHM: 0 #driver_DISS2G: 0 #driver_DISS2VS: 0 #driver_PWM_AUTOSCALE: True #driver_PWM_AUTOGRAD: True #driver_PWM_FREQ: 0 #driver_FREEWHEEL: 0 #driver_PWM_GRAD: 0 #driver_PWM_OFS: 30 #driver_PWM_REG: 4 #driver_PWM_LIM: 12 #driver_SGT: 0 #driver_SEMIN: 0 #driver_SEUP: 0 #driver_SEMAX: 0 #driver_SEDN: 0 #driver_SEIMIN: 0 #driver_SFILT: 0 # \u00c1ll\u00edtsd be a megadott regisztert a TMC5160 chip konfigur\u00e1ci\u00f3ja sor\u00e1n. # Ez egy\u00e9ni motorparam\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. Az egyes # param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a param\u00e9ter neve mellett # tal\u00e1lhat\u00f3k a fenti list\u00e1ban. #diag0_pin: #diag1_pin: # A mikrovez\u00e9rl\u0151 t\u0171je a TMC5160 chip egyik DIAG vonal\u00e1hoz csatlakozik. # Csak egyetlen DIAG t\u0171t kell megadni. A t\u0171 \"active low\", ez\u00e9rt \u00e1ltal\u00e1ban # \"^!\" el\u0151tagja van. Ennek be\u00e1ll\u00edt\u00e1sa egy # \u201etmc5160_stepper_x:virtual_endstop\u201d virtu\u00e1lis t\u0171t hoz l\u00e9tre, amely a # l\u00e9ptet\u0151 endstop_pin-jek\u00e9nt haszn\u00e1lhat\u00f3. Ez lehet\u0151v\u00e9 teszi az \u201e\u00e9rz\u00e9kel\u0151 # n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel\u201d funkci\u00f3t. (Gy\u0151z\u0151dj meg arr\u00f3l, hogy a # driver_SGT-t is megfelel\u0151 \u00e9rz\u00e9kenys\u00e9gi \u00e9rt\u00e9kre \u00e1ll\u00edtja be.) # Az alap\u00e9rtelmez\u00e9s az, hogy nem enged\u00e9lyezi az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli # kezd\u0151pont felv\u00e9telt. Fut\u00e1s-idej\u0171 l\u00e9ptet\u0151motor \u00e1ram konfigur\u00e1ci\u00f3 \u00b6 [ad5206] \u00b6 Statikusan konfigur\u00e1lt AD5206 digipotok, amelyek SPI-buszon kereszt\u00fcl csatlakoznak (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"ad5206\" el\u0151taggal). [ad5206 my_digipot] enable_pin: # Az AD5206 chip kiv\u00e1laszt\u00e1si vonal\u00e1nak megfelel\u0151 pin. Ez a pin # az SPI-\u00fczenetek elej\u00e9n alacsonyra lesz \u00e1ll\u00edtva, \u00e9s magasra emelkedik # az \u00fczenet befejez\u00e9se ut\u00e1n. Ezt a param\u00e9tert meg kell adni. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # L\u00e1sd az \"\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\" c\u00edm\u0171 le\u00edr\u00e1st a # fenti param\u00e9terek megad\u00e1s\u00e1hoz. #channel_1: #channel_2: #channel_3: #channel_4: #channel_5: #channel_6: # Az adott AD5206 csatorna statikus be\u00e1ll\u00edt\u00e1s\u00e1ra szolg\u00e1l\u00f3 \u00e9rt\u00e9k. Ez # \u00e1ltal\u00e1ban 0,0 \u00e9s 1,0 k\u00f6z\u00f6tti sz\u00e1mra van \u00e1ll\u00edtva, ahol az 1,0 a # legnagyobb ellen\u00e1ll\u00e1s \u00e9s 0,0 a legkisebb ellen\u00e1ll\u00e1s. Azonban, # a tartom\u00e1ny megv\u00e1ltoztathat\u00f3 a 'scale' param\u00e9terrel (l\u00e1sd al\u00e1bb). # Ha egy csatorna nincs megadva, akkor konfigur\u00e1latlanul marad. #scale: # Ezzel a param\u00e9terrel m\u00f3dos\u00edthat\u00f3 a 'channel_x' param\u00e9ter # \u00e9rtelmez\u00e9se. Ha megadod, akkor a 'channel_x' param\u00e9tereknek # 0,0 \u00e9s 'scale' k\u00f6z\u00f6tt kell lennie. Ez akkor lehet hasznos, ha az # AD5206 a l\u00e9ptet\u0151 fesz\u00fclts\u00e9g referenci\u00e1k be\u00e1ll\u00edt\u00e1s\u00e1ra szolg\u00e1l. A \u201em\u00e9rleg\u201d tud # egyen\u00e9rt\u00e9k\u0171 l\u00e9ptet\u0151 \u00e1ramer\u0151ss\u00e9get \u00e1ll\u00edtani, ha az AD5206 \u00e9rt\u00e9ken lenne # a legnagyobb ellen\u00e1ll\u00e1sa, majd a 'channel_x' param\u00e9terek lehetnek # megadva a l\u00e9ptet\u0151 k\u00edv\u00e1nt amper\u00e9rt\u00e9k\u00e9vel. Az # alap\u00e9rtelmez\u00e9s szerint nem sk\u00e1l\u00e1zza a 'channel_x' param\u00e9tereket. [mcp4451] \u00b6 Statikusan konfigur\u00e1lt MCP4451 digipot, amely I2C buszon kereszt\u00fcl csatlakozik (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"mcp4451\" el\u0151taggal). [mcp4451 my_digipot] i2c_address: # Az I2C c\u00edm, amelyet a chip az I2C buszon haszn\u00e1l. # Ezt a param\u00e9tert meg kell adni. #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #wiper_0: #wiper_1: #wiper_2: #wiper_3: # Az az \u00e9rt\u00e9k, amelyre az adott MCP4451 \"wiper\" statikusan be\u00e1ll\u00edthat\u00f3. # Ez \u00e1ltal\u00e1ban 0,0 \u00e9s 1,0 k\u00f6z\u00f6tti sz\u00e1mra van be\u00e1ll\u00edtva, ahol az 1,0 a # legnagyobb ellen\u00e1ll\u00e1s, a 0,0 pedig a legkisebb ellen\u00e1ll\u00e1s. # A tartom\u00e1ny azonban m\u00f3dos\u00edthat\u00f3 a 'scale' param\u00e9terrel (l\u00e1sd al\u00e1bb). # Ha nincs megadva 'wiper', akkor az konfigur\u00e1latlanul marad. #scale: # Ezzel a param\u00e9terrel m\u00f3dos\u00edthat\u00f3 a 'wiper_x' param\u00e9terek \u00e9rtelmez\u00e9se. # Ha meg van adva, akkor a 'wiper_x' param\u00e9ternek 0,0 \u00e9s 'scale' k\u00f6z\u00f6tt # kell lennie. Ez akkor lehet hasznos, ha az MCP4451-et a l\u00e9ptet\u0151 # fesz\u00fclts\u00e9greferenci\u00e1k be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lj\u00e1k. A 'scale' be\u00e1ll\u00edthat\u00f3 az # egyen\u00e9rt\u00e9k\u0171 l\u00e9ptet\u0151 \u00e1ramer\u0151ss\u00e9gre, ha az MCP4451 a legnagyobb # ellen\u00e1ll\u00e1son volt, majd a 'wiper_x' param\u00e9terek megadhat\u00f3k a # l\u00e9ptet\u0151 k\u00edv\u00e1nt \u00e1ramer\u0151ss\u00e9ge seg\u00edts\u00e9g\u00e9vel. # Az alap\u00e9rtelmez\u00e9s az, hogy a 'wiper_x' param\u00e9tereket nem sk\u00e1l\u00e1zzuk. [mcp4728] \u00b6 Statikusan konfigur\u00e1lt MCP4728 digit\u00e1lis-anal\u00f3g \u00e1talak\u00edt\u00f3, amely I2C buszon kereszt\u00fcl csatlakozik (az \"mcp4728\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni). [mcp4728 my_dac] #i2c_address: 96 # Az I2C c\u00edm, amelyet a chip az I2C buszon haszn\u00e1l. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 96. #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #channel_a: #channel_b: #channel_c: #channel_d: # Az adott MCP4728 csatorna statikus be\u00e1ll\u00edt\u00e1s\u00e1ra szolg\u00e1l\u00f3 \u00e9rt\u00e9k. # Ez \u00e1ltal\u00e1ban 0,0 \u00e9s 1,0 k\u00f6z\u00f6tti sz\u00e1mra van be\u00e1ll\u00edtva, ahol az 1,0 a # legmagasabb fesz\u00fclts\u00e9g (2,048 V), a 0,0 pedig a legalacsonyabb # fesz\u00fclts\u00e9g. A tartom\u00e1ny azonban m\u00f3dos\u00edthat\u00f3 a 'scale' # param\u00e9terrel (l\u00e1sd al\u00e1bb). # Ha egy csatorna nincs megadva, akkor az konfigur\u00e1latlanul marad. #scale: # Ez a param\u00e9ter haszn\u00e1lhat\u00f3 a 'channel_x' param\u00e9terek # \u00e9rtelmez\u00e9s\u00e9nek megv\u00e1ltoztat\u00e1s\u00e1ra. Ha meg van adva, akkor a # 'channel_x' param\u00e9ternek 0,0 \u00e9s 'scale' k\u00f6z\u00f6tt kell lennie. Ez akkor # lehet hasznos, ha az MCP4728-at a l\u00e9ptet\u0151 fesz\u00fclts\u00e9greferenci\u00e1k # be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lj\u00e1k. A 'scale' be\u00e1ll\u00edthat\u00f3 az egyen\u00e9rt\u00e9k\u0171 l\u00e9ptet\u0151 # \u00e1ramer\u0151ss\u00e9g\u00e9re, ha az MCP4728 a legmagasabb fesz\u00fclts\u00e9gen volt # (2,048 V), majd a 'channel_x' param\u00e9terek megadhat\u00f3k a l\u00e9ptet\u0151 # k\u00edv\u00e1nt amper\u00e9rt\u00e9k\u00e9vel. Az alap\u00e9rtelmezett az, hogy nem # m\u00e9retezi a 'channel_x' param\u00e9tereket. [mcp4018] \u00b6 Statikusan konfigur\u00e1lt MCP4018 digipot, amely k\u00e9t GPIO \"bit banging\" t\u0171n kereszt\u00fcl csatlakozik (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"mcp4018\" el\u0151taggal). [mcp4018 my_digipot] scl_pin: # Az SCL \"\u00f3ra\" t\u0171je. Ezt a param\u00e9tert meg kell adni. sda_pin: # Az SDA \"adat\" t\u0171je. Ezt a param\u00e9tert meg kell adni. wiper: # Az az \u00e9rt\u00e9k, amelyre az adott MCP4018 \"wiper\" statikusan be\u00e1ll\u00edthat\u00f3. # Ez \u00e1ltal\u00e1ban 0,0 \u00e9s 1,0 k\u00f6z\u00f6tti sz\u00e1mra van be\u00e1ll\u00edtva, ahol az 1,0 a # legnagyobb ellen\u00e1ll\u00e1s, a 0,0 pedig a legkisebb ellen\u00e1ll\u00e1s. # A tartom\u00e1ny azonban m\u00f3dos\u00edthat\u00f3 a 'scale' param\u00e9terrel (l\u00e1sd al\u00e1bb). # Ezt a param\u00e9tert meg kell adni. #scale: # Ezzel a param\u00e9terrel m\u00f3dos\u00edthat\u00f3 a 'wiper' param\u00e9ter \u00e9rtelmez\u00e9se. # Ha van, akkor az 'wiper' param\u00e9ternek 0,0 \u00e9s 'scale' k\u00f6z\u00f6tt kell lennie. # Ez akkor lehet hasznos, ha az MCP4018-at a l\u00e9ptet\u0151 fesz\u00fclts\u00e9greferenci\u00e1k # be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lj\u00e1k. A 'scale' be\u00e1ll\u00edthat\u00f3 az egyen\u00e9rt\u00e9k\u0171 l\u00e9ptet\u0151 # \u00e1ramer\u0151ss\u00e9g\u00e9re, ha az MCP4018 a legnagyobb ellen\u00e1ll\u00e1son van, # majd a 'wiper' param\u00e9ter megadhat\u00f3 a l\u00e9ptet\u0151 k\u00edv\u00e1nt amper\u00e9rt\u00e9k\u00e9vel. # Az alap\u00e9rtelmezett be\u00e1ll\u00edt\u00e1s az, hogy nem sk\u00e1l\u00e1zza a 'wiper' param\u00e9tert. Kijelz\u0151t\u00e1mogat\u00e1s \u00b6 [display] \u00b6 A mikrokontrollerhez csatlakoztatott kijelz\u0151 t\u00e1mogat\u00e1sa. [display] lcd_type: # A haszn\u00e1lt LCD chip t\u00edpusa. Ez lehet \"hd44780\", \"hd44780_spi\", \"st7920\", # \"emulated_st7920\", \"uc1701\", \"ssd1306\" vagy \"sh1106\". Az egyes # t\u00edpusokr\u00f3l \u00e9s az \u00e1ltaluk biztos\u00edtott tov\u00e1bbi param\u00e9terekr\u0151l az al\u00e1bbi # k\u00e9perny\u0151szakaszokban tal\u00e1l inform\u00e1ci\u00f3kat. # Ezt a param\u00e9tert meg kell adni. #display_group: # A kijelz\u0151n megjelen\u00edtend\u0151 display_data csoport neve. Ez szab\u00e1lyozza a # k\u00e9perny\u0151 tartalm\u00e1t (tov\u00e1bbi inform\u00e1ci\u00f3\u00e9rt l\u00e1sd a \u201edisplay_data\u201d r\u00e9szt). # Az alap\u00e9rtelmezett _default_20x4 a hd44780-as kijelz\u0151kn\u00e9l \u00e9s a # _default_16x4 a t\u00f6bbi k\u00e9perny\u0151n\u00e9l. #menu_timeout: # Id\u0151korl\u00e1t a men\u00fch\u00f6z. Ha ennyi m\u00e1sodpercig inakt\u00edv, az automatikusan # kil\u00e9p a men\u00fcb\u0151l, vagy visszat\u00e9r a f\u0151men\u00fcbe, ha az automatikus ind\u00edt\u00e1s # enged\u00e9lyezve van. Az alap\u00e9rtelmezett 0 m\u00e1sodperc (letiltva) #menu_root: # A f\u0151men\u00fc r\u00e9sz neve, amely akkor jelenik meg, amikor a k\u00f3dol\u00f3ra kattint # a kezd\u0151k\u00e9perny\u0151n. Az alap\u00e9rtelmezett \u00e9rt\u00e9k a __main, \u00e9s ez a # klippy/extras/display/menu.cfg f\u00e1jlban meghat\u00e1rozott alap\u00e9rtelmezett # men\u00fcket mutatja. #menu_reverse_navigation: # Ha enged\u00e9lyezve van, a list\u00e1ban t\u00f6rt\u00e9n\u0151 navig\u00e1ci\u00f3 fel \u00e9s lefel\u00e9 ir\u00e1ny\u00e1t # v\u00e1ltja. Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. Ez a param\u00e9ter nem k\u00f6telez\u0151. #encoder_pins: # A k\u00f3dol\u00f3hoz csatlakoztatott \u00e9rintkez\u0151k. A k\u00f3dol\u00f3 haszn\u00e1latakor 2 # \u00e9rintkez\u0151t kell biztos\u00edtani. Ezt a param\u00e9tert a men\u00fc haszn\u00e1latakor kell # megadni. #encoder_steps_per_detent: # H\u00e1ny l\u00e9p\u00e9st ad ki a k\u00f3dol\u00f3 reteszel\u00e9senk\u00e9nt (\"kattint\u00e1s\"). Ha a # k\u00f3dol\u00f3nak k\u00e9t reteszre van sz\u00fcks\u00e9ge a bejegyz\u00e9sek k\u00f6z\u00f6tti mozg\u00e1shoz, # vagy k\u00e9t bejegyz\u00e9st mozgat meg egy r\u00f6gz\u00edt\u00e9sb\u0151l, pr\u00f3b\u00e1ld meg ezt # megv\u00e1ltoztatni. A megengedett \u00e9rt\u00e9kek 2 (f\u00e9ll\u00e9pcs\u0151s) vagy # 4 (teljes l\u00e9p\u00e9s). Az alap\u00e9rtelmezett \u00e9rt\u00e9k a 4. #click_pin: # Az \u201eEnter\u201d gombhoz vagy a k\u00f3dol\u00f3 \u201ekattint\u00e1s\u00e1hoz\u201d csatlakoztatott t\u0171. # Ezt a param\u00e9tert a men\u00fc haszn\u00e1latakor kell megadni. # Az \u201eanalog_range_click_pin\u201d konfigur\u00e1ci\u00f3s param\u00e9ter jelenl\u00e9te ezt a # param\u00e9tert digit\u00e1lisr\u00f3l anal\u00f3gra v\u00e1ltoztatja. #back_pin: # A \u201evissza\u201d gombhoz csatlakoztatott t\u0171. Ez a param\u00e9ter nem k\u00f6telez\u0151, # a men\u00fc en\u00e9lk\u00fcl is haszn\u00e1lhat\u00f3. Az \u201eanalog_range_back_pin\u201d # konfigur\u00e1ci\u00f3s param\u00e9ter jelenl\u00e9te ezt a param\u00e9tert digit\u00e1lisr\u00f3l # anal\u00f3gra v\u00e1ltoztatja. #up_pin: # A t\u0171 a \u201efel\u201d gombhoz csatlakozik. Ezt a param\u00e9tert k\u00f3dol\u00f3 n\u00e9lk\u00fcli men\u00fc # haszn\u00e1latakor kell megadni. Az \u201eanalog_range_up_pin\u201d konfigur\u00e1ci\u00f3s # param\u00e9ter jelenl\u00e9te ezt a param\u00e9tert digit\u00e1lisr\u00f3l anal\u00f3gra v\u00e1ltoztatja. #down_pin: # A t\u0171 a \u201ele\u201d gombhoz csatlakozik. Ezt a param\u00e9tert k\u00f3dol\u00f3 n\u00e9lk\u00fcli men\u00fc # haszn\u00e1latakor kell megadni. Az \u201eanalog_range_down_pin\u201d konfigur\u00e1ci\u00f3s # param\u00e9ter jelenl\u00e9te ezt a param\u00e9tert digit\u00e1lisr\u00f3l anal\u00f3gra v\u00e1ltoztatja. #kill_pin: # A t\u0171 a \u201ekill\u201d gombhoz csatlakozik. Ez a gomb v\u00e9szle\u00e1ll\u00edt\u00e1st h\u00edv. # Az \u201eanalog_range_kill_pin\u201d konfigur\u00e1ci\u00f3s param\u00e9ter jelenl\u00e9te ezt a # param\u00e9tert digit\u00e1lisr\u00f3l anal\u00f3gra v\u00e1ltoztatja. #analog_pullup_resistor: 4700 # Az anal\u00f3g gombhoz csatlakoztatott felh\u00faz\u00f3 ellen\u00e1ll\u00e1sa (ohmban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 4700 ohm. #analog_range_click_pin: # Az \u201eEnter\u201d gomb ellen\u00e1ll\u00e1si tartom\u00e1nya. # Anal\u00f3g gomb haszn\u00e1lata eset\u00e9n a tartom\u00e1ny minim\u00e1lis \u00e9s # maxim\u00e1lis \u00e9rt\u00e9keit vessz\u0151vel elv\u00e1lasztva kell megadni. #analog_range_back_pin: # A \u201evissza\u201d gomb ellen\u00e1ll\u00e1si tartom\u00e1nya. # Anal\u00f3g gomb haszn\u00e1lata eset\u00e9n a tartom\u00e1ny minim\u00e1lis \u00e9s # maxim\u00e1lis \u00e9rt\u00e9keit vessz\u0151vel elv\u00e1lasztva kell megadni. #analog_range_up_pin: # A \u201efel\u201d gomb ellen\u00e1ll\u00e1si tartom\u00e1nya. # Anal\u00f3g gomb haszn\u00e1lata eset\u00e9n a tartom\u00e1ny minim\u00e1lis \u00e9s # maxim\u00e1lis \u00e9rt\u00e9keit vessz\u0151vel elv\u00e1lasztva kell megadni. #analog_range_down_pin: # A \u201ele\u201d gomb ellen\u00e1ll\u00e1si tartom\u00e1nya. # Anal\u00f3g gomb haszn\u00e1lata eset\u00e9n a tartom\u00e1ny minim\u00e1lis \u00e9s # maxim\u00e1lis \u00e9rt\u00e9keit vessz\u0151vel elv\u00e1lasztva kell megadni. #analog_range_kill_pin: # A \u201ekill\u201d gomb ellen\u00e1ll\u00e1si tartom\u00e1nya. # Anal\u00f3g gomb haszn\u00e1lata eset\u00e9n a tartom\u00e1ny minim\u00e1lis \u00e9s # maxim\u00e1lis \u00e9rt\u00e9keit vessz\u0151vel elv\u00e1lasztva kell megadni. hd44780 kijelz\u0151 \u00b6 Inform\u00e1ci\u00f3k a HD44780 kijelz\u0151k konfigur\u00e1l\u00e1s\u00e1r\u00f3l (amelyet a \"RepRapDiscount 2004 Smart Controller\" t\u00edpus\u00fa kijelz\u0151kben haszn\u00e1lnak). [display] lcd_type: hd44780 # \u00c1ll\u00edtsd \"hd44780\" \u00e9rt\u00e9kre a hd44780 kijelz\u0151kh\u00f6z. rs_pin: e_pin: d4_pin: d5_pin: d6_pin: d7_pin: # A t\u0171k egy hd44780 t\u00edpus\u00fa LCD-hez csatlakoznak. # Ezeket a param\u00e9tereket meg kell adni. #hd44780_protocol_init: True # V\u00e9gezz 8 bites/4 bites protokoll inicializ\u00e1l\u00e1st hd44780 kijelz\u0151n. # Ez sz\u00fcks\u00e9ges a val\u00f3di hd44780-as eszk\u00f6z\u00f6k\u00f6n. El\u0151fordulhat # azonban, hogy ezt bizonyos \"kl\u00f3noz\u00f3\" eszk\u00f6z\u00f6k\u00f6n le kell tiltani. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #line_length: # \u00c1ll\u00edtsd be a soronk\u00e9nti karakterek sz\u00e1m\u00e1t egy hd44780 t\u00edpus\u00fa # LCD-n. A lehets\u00e9ges \u00e9rt\u00e9kek: 20 (alap\u00e9rtelmezett) \u00e9s 16. # A sorok sz\u00e1ma 4-re van r\u00f6gz\u00edtve. ... hd44780_spi kijelz\u0151 \u00b6 Inform\u00e1ci\u00f3 a HD44780_spi kijelz\u0151 konfigur\u00e1l\u00e1s\u00e1r\u00f3l egy 20x04-es kijelz\u0151, egy hardveres \"shift register\" (amelyet a mightyboard alap\u00fa nyomtat\u00f3kban haszn\u00e1lnak). [display] lcd_type: hd44780_spi # \u00c1ll\u00edtsd be a \"hd44780_spi\" \u00e9rt\u00e9ket a hd44780_spi kijelz\u0151kh\u00f6z. latch_pin: spi_software_sclk_pin: spi_software_mosi_pin: spi_software_miso_pin: # A kijelz\u0151t vez\u00e9rl\u0151 m\u0171szakregiszterhez csatlakoztatott t\u0171k. # Az spi_software_miso_pin-t a nyomtat\u00f3 alaplapj\u00e1nak haszn\u00e1laton # k\u00edv\u00fcli t\u0171j\u00e9re kell \u00e1ll\u00edtani, mivel a shift regiszternek nincs MISO t\u0171je, # de a szoftver SPI megval\u00f3s\u00edt\u00e1s\u00e1hoz ezt a t\u0171t be kell \u00e1ll\u00edtani. #hd44780_protocol_init: True # V\u00e9gezz 8 bites/4 bites protokoll inicializ\u00e1l\u00e1st hd44780 kijelz\u0151n. # Ez sz\u00fcks\u00e9ges a val\u00f3di hd44780-as eszk\u00f6z\u00f6k\u00f6n. El\u0151fordulhat # azonban, hogy ezt bizonyos \"kl\u00f3noz\u00f3\" eszk\u00f6z\u00f6k\u00f6n le kell tiltani. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #line_length: # \u00c1ll\u00edtsd be a soronk\u00e9nti karakterek sz\u00e1m\u00e1t egy hd44780 t\u00edpus\u00fa LCD-n. # A lehets\u00e9ges \u00e9rt\u00e9kek: 20 (alap\u00e9rtelmezett) \u00e9s 16. # A sorok sz\u00e1ma 4-re van r\u00f6gz\u00edtve. ... st7920 kijelz\u0151 \u00b6 Inform\u00e1ci\u00f3k az ST7920 kijelz\u0151k konfigur\u00e1l\u00e1s\u00e1r\u00f3l (amelyet a \"RepRapDiscount 12864 Full Graphic Smart Controller\" t\u00edpus\u00fa kijelz\u0151kn\u00e9l haszn\u00e1lnak). [display] lcd_type: st7920 # \u00c1ll\u00edtsd az \"st7920\"-ra az st7920-as kijelz\u0151kh\u00f6z. cs_pin: sclk_pin: sid_pin: # A t\u0171k egy st7920 t\u00edpus\u00fa LCD-hez csatlakoznak. # Ezeket a param\u00e9tereket meg kell adni. ... emulated_st7920 kijelz\u0151 \u00b6 Inform\u00e1ci\u00f3 az emul\u00e1lt ST7920 kijelz\u0151 konfigur\u00e1l\u00e1s\u00e1r\u00f3l. Megtal\u00e1lhat\u00f3 n\u00e9h\u00e1ny \"2,4 h\u00fcvelykes \u00e9rint\u0151k\u00e9perny\u0151s eszk\u00f6zben\" \u00e9s hasonl\u00f3kban. [display] lcd_type: emulated_st7920 # \u00c1ll\u00edtsd az \"emulated_st7920\" \u00e9rt\u00e9kre az emulated_st7920 kijelz\u0151kh\u00f6z. en_pin: spi_software_sclk_pin: spi_software_mosi_pin: spi_software_miso_pin: # Az emul\u00e1lt_st7920 t\u00edpus\u00fa LCD-hez csatlakoztatott \u00e9rintkez\u0151k. # Az en_pin az st7920 t\u00edpus\u00fa LCD cs_pin-j\u00e9nek, az spi_software_sclk_pin # az sclk_pin-nek, az spi_software_mosi_pin pedig a sid_pin-nek felel meg. # A spi_software_miso_pin-t a nyomtat\u00f3 alaplapj\u00e1nak egy haszn\u00e1laton # k\u00edv\u00fcli t\u0171j\u00e9re kell be\u00e1ll\u00edtani, mint az st7920-at, mivel nincs MISO-t\u0171, de a # szoftveres SPI-megval\u00f3s\u00edt\u00e1shoz ezt a t\u0171t kell konfigur\u00e1lni. ... uc1701 kijelz\u0151 \u00b6 Inform\u00e1ci\u00f3k az UC1701 kijelz\u0151k konfigur\u00e1l\u00e1s\u00e1r\u00f3l (amelyet az \"MKS Mini 12864\" t\u00edpus\u00fa kijelz\u0151kn\u00e9l haszn\u00e1lnak). [display] lcd_type: uc1701 # \u00c1ll\u00edtsd \"uc1701\" \u00e9rt\u00e9kre az uc1701 kijelz\u0151kh\u00f6z. cs_pin: a0_pin: # Az uc1701 t\u00edpus\u00fa LCD-hez csatlakoztatott t\u0171k. # Ezeket a param\u00e9tereket meg kell adni. #rst_pin: # Az LCD \"els\u0151\" \u00e9rintkez\u0151j\u00e9hez csatlakoztatott t\u0171. Ha nincs megadva, # akkor a hardvernek rendelkeznie kell egy felh\u00faz\u00e1ssal a # megfelel\u0151 LCD soron. #contrast: # A be\u00e1ll\u00edtand\u00f3 kontraszt. Az \u00e9rt\u00e9k 0 \u00e9s 63 k\u00f6z\u00f6tt v\u00e1ltozhat, az # alap\u00e9rtelmezett \u00e9rt\u00e9k pedig 40. ... ssd1306 \u00e9s sh1106 kijelz\u0151k \u00b6 Az SSD1306 \u00e9s SH1106 kijelz\u0151k konfigur\u00e1l\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k. [display] lcd_type: # \u00c1ll\u00edtsd be az \"ssd1306\" vagy az \"sh1106\" \u00e9rt\u00e9ket az adott # megjelen\u00edt\u00e9si t\u00edpushoz. #i2c_mcu: #i2c_bus: #i2c_speed: # Opcion\u00e1lis param\u00e9terek \u00e1llnak rendelkez\u00e9sre az I2C buszon # kereszt\u00fcl csatlakoztatott kijelz\u0151kh\u00f6z. A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t # l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" r\u00e9szben. #cs_pin: #dc_pin: #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Az LCD-hez csatlakoztatott \u00e9rintkez\u0151k \u201e4 vezet\u00e9kes\u201d SPI m\u00f3dban. # Az \u201espi_\u201d karakterrel kezd\u0151d\u0151 param\u00e9terek le\u00edr\u00e1s\u00e1t a \u201e\u00e1ltal\u00e1nos # SPI-be\u00e1ll\u00edt\u00e1sok\u201d r\u00e9szben tal\u00e1lja. Az alap\u00e9rtelmezett az I2C m\u00f3d # haszn\u00e1lata a kijelz\u0151h\u00f6z. #reset_pin: # A kijelz\u0151n megadhat\u00f3 egy reset t\u0171. Ha nincs megadva, akkor a # hardvernek rendelkeznie kell egy felh\u00faz\u00e1ssal a megfelel\u0151 LCD # soron. #contrast: # A be\u00e1ll\u00edtand\u00f3 kontraszt. Az \u00e9rt\u00e9k 0 \u00e9s 256 k\u00f6z\u00f6tt v\u00e1ltozhat, \u00e9s az # alap\u00e9rtelmezett a 239. #vcomh: 0 # \u00c1ll\u00edtsd be a Vcomh \u00e9rt\u00e9ket a kijelz\u0151n. Ez az \u00e9rt\u00e9k egyes # OLED-kijelz\u0151k \"elken\u0151d\u00e9si\" hat\u00e1s\u00e1val j\u00e1r. Az \u00e9rt\u00e9k 0 \u00e9s 63 k\u00f6z\u00f6tt # v\u00e1ltozhat. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #invert: False # A TRUE megford\u00edtja a k\u00e9ppontokat bizonyos OLED-kijelz\u0151k\u00f6n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #x_offset: 0 # \u00c1ll\u00edtsd be a v\u00edzszintes eltol\u00e1s \u00e9rt\u00e9k\u00e9t az SH1106 kijelz\u0151k\u00f6n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. ... [display_data] \u00b6 Egy\u00e9ni adatok megjelen\u00edt\u00e9s\u00e9nek t\u00e1mogat\u00e1sa LCD-kijelz\u0151n. Tetsz\u0151leges sz\u00e1m\u00fa megjelen\u00edt\u00e9si csoportot \u00e9s ezek alatt tetsz\u0151leges sz\u00e1m\u00fa adatelemet lehet l\u00e9trehozni. A kijelz\u0151 egy adott csoport \u00f6sszes adatelem\u00e9t megjelen\u00edti, ha a [display] szakaszban a display_group opci\u00f3t az adott csoport nev\u00e9re \u00e1ll\u00edtjuk. Az alap\u00e9rtelmezett kijelz\u0151csoportok automatikusan l\u00e9trej\u00f6nnek. Ezeket a display_data elemeket a printer.cfg konfigur\u00e1ci\u00f3s f\u00e1jlban l\u00e9v\u0151 alap\u00e9rtelmezett \u00e9rt\u00e9kek fel\u00fcl\u00edr\u00e1s\u00e1val lehet helyettes\u00edteni vagy b\u0151v\u00edteni. [display_data my_group_name my_data_name] position: # A megjelen\u00edt\u00e9si poz\u00edci\u00f3 vessz\u0151vel elv\u00e1lasztott sora \u00e9s oszlopa, amelyet # az inform\u00e1ci\u00f3 megjelen\u00edt\u00e9s\u00e9hez kell haszn\u00e1lni. # Ezt a param\u00e9tert meg kell adni. text: # Az adott helyen megjelen\u00edtend\u0151 sz\u00f6veg. Ennek a mez\u0151nek a # ki\u00e9rt\u00e9kel\u00e9se parancssablonok seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nik # (l\u00e1sd: docs/Command_Templates.md). Ezt a param\u00e9tert meg kell adni. [display_template] \u00b6 Megjelen\u00edtett adatok sz\u00f6vege \"makr\u00f3k\" (tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3 display_template el\u0151taggal). A sablonok ki\u00e9rt\u00e9kel\u00e9s\u00e9vel kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancssablonok dokumentumot. Ez a funkci\u00f3 lehet\u0151v\u00e9 teszi az ism\u00e9tl\u0151d\u0151 defin\u00edci\u00f3k cs\u00f6kkent\u00e9s\u00e9t a display_data szakaszokban. A sablon ki\u00e9rt\u00e9kel\u00e9s\u00e9re a be\u00e9p\u00edtett render() f\u00fcggv\u00e9nyt haszn\u00e1lhatjuk a display_data szakaszokban. Ha p\u00e9ld\u00e1ul defini\u00e1ln\u00e1nk [display_template my_template] , akkor haszn\u00e1lhatn\u00e1nk a { render('my_template') } f\u00fcggv\u00e9nyt a display_data szakaszban. Ez a funkci\u00f3 a SET_LED_TEMPLATE parancs seg\u00edts\u00e9g\u00e9vel folyamatos LED-friss\u00edt\u00e9sre is haszn\u00e1lhat\u00f3. [display_template my_template_name] #param_<name>: # A \"param_\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa be\u00e1ll\u00edt\u00e1s megadhat\u00f3. A megadott # n\u00e9vhez a rendszer hozz\u00e1rendeli a megadott \u00e9rt\u00e9ket (Python liter\u00e1lk\u00e9nt # elemzi), \u00e9s a makr\u00f3b\u0151v\u00edt\u00e9s sor\u00e1n el\u00e9rhet\u0151 lesz. Ha a param\u00e9ter \u00e1tad\u00e1sra # ker\u00fcl a render() h\u00edv\u00e1sban, akkor ez az \u00e9rt\u00e9k lesz felhaszn\u00e1lva a # makr\u00f3b\u0151v\u00edt\u00e9s sor\u00e1n. P\u00e9ld\u00e1ul egy \"param_speed = 75\" konfigur\u00e1ci\u00f3ban # el\u0151fordulhat, hogy a h\u00edv\u00f3 \"render('my_template_name', param_speed=80)\". # A param\u00e9ternevek nem tartalmazhatnak nagybet\u0171ket. text: # A sablon megjelen\u00edt\u00e9sekor visszaadand\u00f3 sz\u00f6veg. Ennek a mez\u0151nek a # ki\u00e9rt\u00e9kel\u00e9se parancssablonok seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nik (l\u00e1sd: # docs/Command_Templates.md). Ezt a param\u00e9tert meg kell adni. [display_glyph] \u00b6 Egy egy\u00e9ni \u00edr\u00e1sjel megjelen\u00edt\u00e9se az azt t\u00e1mogat\u00f3 kijelz\u0151k\u00f6n. A megadott n\u00e9vhez hozz\u00e1rendeli a megadott megjelen\u00edt\u00e9si adatokat, amelyekre azt\u00e1n a megjelen\u00edt\u00e9si sablonokban a k\u00e9t \"tilde\" szimb\u00f3lummal k\u00f6r\u00fclvett nev\u00fckkel lehet hivatkozni, pl. ~my_display_glyph~ L\u00e1sd a sample-glyphs.cfg n\u00e9h\u00e1ny p\u00e9ld\u00e1j\u00e1t. [display_glyph my_display_glyph] #data: # A megjelen\u00edt\u00e9si adatok 16 sork\u00e9nt t\u00e1rolva, amelyek 16 bitb\u0151l \u00e1llnak # (pixelenk\u00e9nt 1), ahol a '.' egy \u00fcres pixel, a '*' pedig egy bekapcsolt # k\u00e9ppont (pl. \"****************\" folyamatos v\u00edzszintes vonal # megjelen\u00edt\u00e9s\u00e9hez). Alternat\u00edv megold\u00e1sk\u00e9nt haszn\u00e1lhatunk \u201e0\u201d-t # \u00fcres pixelekhez \u00e9s \u201e1\u201d-et a bekapcsolt pixelekhez. Helyezz minden # megjelen\u00edt\u00e9si sort egy k\u00fcl\u00f6n konfigur\u00e1ci\u00f3s sorba. A karakterjelnek # pontosan 16, egyenk\u00e9nt 16 bites sorb\u00f3l kell \u00e1llnia. # Ez a param\u00e9ter nem k\u00f6telez\u0151. #hd44780_data: # Glyph haszn\u00e1lhat\u00f3 20x4 hd44780 kijelz\u0151k\u00f6n. A karakterjelnek pontosan # 8, egyenk\u00e9nt 5 bites sorb\u00f3l kell \u00e1llnia. Ez a param\u00e9ter nem k\u00f6telez\u0151. #hd44780_slot: # A hd44780 hardver indexe (0..7) a karakterjel t\u00e1rol\u00e1s\u00e1ra. Ha t\u00f6bb # k\u00fcl\u00f6n\u00e1ll\u00f3 k\u00e9p haszn\u00e1lja ugyanazt a t\u00e1rat, \u00fcgyelj arra, hogy ezek # k\u00f6z\u00fcl csak egyet haszn\u00e1lj az adott k\u00e9perny\u0151n. Ez a param\u00e9ter akkor # sz\u00fcks\u00e9ges, ha a hd44780_data meg van adva. [display my_extra_display] \u00b6 Ha a printer.cfg f\u00e1jlban a fentiek szerint egy els\u0151dleges [display] szakasz ker\u00fclt meghat\u00e1roz\u00e1sra, akkor t\u00f6bb kieg\u00e9sz\u00edt\u0151 kijelz\u0151t is lehet defini\u00e1lni. Vedd figyelembe, hogy a kieg\u00e9sz\u00edt\u0151 kijelz\u0151k jelenleg nem t\u00e1mogatj\u00e1k a men\u00fcfunkci\u00f3kat, \u00edgy nem t\u00e1mogatj\u00e1k a \"menu\" opci\u00f3kat vagy a gombok konfigur\u00e1l\u00e1s\u00e1t. [display my_extra_display] # A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd a \"kijelz\u0151\" szakaszban. [menu] \u00b6 Testreszabhat\u00f3 LCD kijelz\u0151 men\u00fck. Egy alap\u00e9rtelmezett men\u00fck\u00e9szlet automatikusan l\u00e9trej\u00f6n. A men\u00fct a f\u0151 printer.cfg konfigur\u00e1ci\u00f3s f\u00e1jlban l\u00e9v\u0151 alap\u00e9rtelmezett \u00e9rt\u00e9kek fel\u00fclb\u00edr\u00e1l\u00e1s\u00e1val lehet helyettes\u00edteni vagy b\u0151v\u00edteni. A sablonok renderel\u00e9se sor\u00e1n el\u00e9rhet\u0151 men\u00fcattrib\u00fatumokr\u00f3l a parancssablon dokumentumban tal\u00e1lhat\u00f3 inform\u00e1ci\u00f3. # Az \u00f6sszes men\u00fc konfigur\u00e1ci\u00f3s szakaszhoz el\u00e9rhet\u0151 k\u00f6z\u00f6s param\u00e9terek. #[menu __some_list __some_name] #type: disabled # A men\u00fcelem v\u00e9gleg letiltva, csak a k\u00f6telez\u0151 attrib\u00fatum a 'type'. # Lehet\u0151v\u00e9 teszi a megl\u00e9v\u0151 men\u00fcpontok egyszer\u0171 letilt\u00e1s\u00e1t/elrejt\u00e9s\u00e9t. #[menu some_name] #type: # Az egyik parancs, input, list, text: # command - alapvet\u0151 men\u00fcelem k\u00fcl\u00f6nf\u00e9le script triggerekkel # input - ugyanaz, mint a \u201ecommand\u201d, de \u00e9rt\u00e9kv\u00e1ltoztat\u00f3 # k\u00e9pess\u00e9gekkel rendelkezik. # Nyomja meg a szerkeszt\u00e9si m\u00f3d # elind\u00edt\u00e1s\u00e1hoz/le\u00e1ll\u00edt\u00e1s\u00e1hoz. # list - lehet\u0151v\u00e9 teszi a men\u00fcelemek egy g\u00f6rgethet\u0151 list\u00e1ba # t\u00f6rt\u00e9n\u0151 csoportos\u00edt\u00e1s\u00e1t. # Adj hozz\u00e1 a list\u00e1hoz men\u00fckonfigur\u00e1ci\u00f3k l\u00e9trehoz\u00e1s\u00e1val # a \u201esome_list\u201d el\u0151tagk\u00e9nt \u2013 # p\u00e9ld\u00e1ul: [menu some_list some_item_in_the_list] # vsdlist - ugyanaz, mint a \"list\", de hozz\u00e1f\u0171zi a virtu\u00e1lis # sdcard f\u00e1jlokat (a j\u00f6v\u0151ben elt\u00e1vol\u00edtjuk) #name: # A men\u00fcpont neve - sablonk\u00e9nt \u00e9rt\u00e9kelve. #enable: # Sablon, amely igazra vagy hamisra \u00e9rt\u00e9keli. #index: # Poz\u00edci\u00f3, ahol egy elemet be kell illeszteni a list\u00e1ba. Alap\u00e9rtelmez\u00e9s # szerint az elem a v\u00e9g\u00e9re ker\u00fcl hozz\u00e1ad\u00e1sra. #[menu some_list] #type: list #name: #enable: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd fent. #[menu some_list some_command] #type: command #name: #enable: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd fent. #gcode: # Gombkattint\u00e1ssal vagy hossz\u00fa kattint\u00e1ssal futtathat\u00f3 szkript. # Sablonk\u00e9nt \u00e9rt\u00e9kelve. #[menu some_list some_input] #type: input #name: #enable: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd fent. #input: # Szerkeszt\u00e9skor haszn\u00e1land\u00f3 kezdeti \u00e9rt\u00e9k \u2013 sablonk\u00e9nt \u00e9rt\u00e9kelve. # Az eredm\u00e9nynek lebeg\u0151\u00e9rt\u00e9knek kell lennie. #input_min: # Tartom\u00e1ny minim\u00e1lis \u00e9rt\u00e9ke \u2013 sablonk\u00e9nt \u00e9rt\u00e9kelve. # Alap\u00e9rtelmezett -99999. #input_max: # Tartom\u00e1ny maxim\u00e1lis \u00e9rt\u00e9ke \u2013 sablonk\u00e9nt \u00e9rt\u00e9kelve. # Alap\u00e9rtelmezett 99999. #input_step: # Szerkeszt\u00e9si l\u00e9p\u00e9s \u2013 pozit\u00edv eg\u00e9sz sz\u00e1mnak vagy lebeg\u0151\u00e9rt\u00e9knek # kell lennie. Bels\u0151 gyorsl\u00e9p\u00e9ssel rendelkezik. # Ha \"(input_max - input_min) / input_step > 100\", akkor a gyors # sebess\u00e9g l\u00e9p\u00e9se 10 * input_step, k\u00fcl\u00f6nben a gyors \u00fctem ugyanaz # a bemeneti_l\u00e9p\u00e9s. #realtime: # Ez az attrib\u00fatum statikus logikai \u00e9rt\u00e9ket fogad el. Ha enged\u00e9lyezve # van, akkor a G-k\u00f3d szkript minden \u00e9rt\u00e9kv\u00e1ltoz\u00e1s ut\u00e1n lefut. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #gcode: # Gombkattint\u00e1ssal, hossz\u00fa kattint\u00e1ssal vagy \u00e9rt\u00e9km\u00f3dos\u00edt\u00e1ssal # futtathat\u00f3 szkript. Sablonk\u00e9nt \u00e9rt\u00e9kelve. A gomb kattint\u00e1sa elind\u00edtja # a szerkeszt\u00e9si m\u00f3d kezdet\u00e9t vagy befejez\u00e9s\u00e9t. Nyomtat\u00f3sz\u00e1l \u00e9rz\u00e9kel\u0151k \u00b6 [filament_switch_sensor] \u00b6 Nyomtat\u00f3sz\u00e1l \u00e9rz\u00e9kel\u0151. T\u00e1mogat\u00e1s a nyomtat\u00f3sz\u00e1l behelyez\u00e9s\u00e9nek \u00e9s kifut\u00e1s\u00e1nak \u00e9rz\u00e9kel\u00e9s\u00e9re kapcsol\u00f3\u00e9rz\u00e9kel\u0151, p\u00e9ld\u00e1ul v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 seg\u00edts\u00e9g\u00e9vel. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1st . [filament_switch_sensor my_sensor] #pause_on_runout: True # Ha True \u00e9rt\u00e9kre van \u00e1ll\u00edtva, a PAUSE azonnal v\u00e9grehajt\u00f3dik, miut\u00e1n a # rendszer sz\u00e1lkifut\u00e1st \u00e9szlel. Ne feledd, hogy ha a pause_on_runout # \u00e9rt\u00e9ke False, \u00e9s a runout_gcode kimarad, akkor a kifut\u00e1s \u00e9szlel\u00e9se le # van tiltva. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #runout_gcode: # A nyomtat\u00f3sz\u00e1l kifut\u00e1s\u00e1t k\u00f6vet\u0151en v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. # L\u00e1sd a docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d form\u00e1tumhoz. Ha a # pause_on_runout \u00e9rt\u00e9ke True, ez a G-k\u00f3d a PAUSE befejez\u00e9se ut\u00e1n fog # futni. Az alap\u00e9rtelmez\u00e9s szerint nem fut semmilyen G-k\u00f3d parancs. #insert_gcode: # A nyomtat\u00f3sz\u00e1l-beilleszt\u00e9s \u00e9szlel\u00e9se ut\u00e1n v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok # list\u00e1ja. L\u00e1sd a docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d form\u00e1tumhoz. # Az alap\u00e9rtelmez\u00e9s szerint nem fut semmilyen G-k\u00f3d parancs, ami letiltja # a besz\u00far\u00e1s \u00e9szlel\u00e9s\u00e9t. #event_delay: 3.0 # Az esem\u00e9nyek k\u00f6z\u00f6tti k\u00e9sleltet\u00e9s minim\u00e1lis id\u0151tartama m\u00e1sodpercben. # Az ebben az id\u0151szakban elind\u00edtott esem\u00e9nyeket a rendszer csendben # figyelmen k\u00edv\u00fcl hagyja. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 3 m\u00e1sodperc. #pause_delay: 0.5 # A sz\u00fcneteltet\u00e9si parancs kik\u00fcld\u00e9se \u00e9s a runout_gcode v\u00e9grehajt\u00e1sa # k\u00f6z\u00f6tt eltelt id\u0151 m\u00e1sodpercben. Hasznos lehet n\u00f6velni ezt a k\u00e9sleltet\u00e9st, # ha az OctoPrint furcsa sz\u00fcneteltet\u00e9st mutat. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,5 m\u00e1sodperc. #switch_pin: # Az a t\u0171, amelyre a kapcsol\u00f3 csatlakoztatva van. # Ezt a param\u00e9tert meg kell adni. [filament_motion_sensor] \u00b6 Nyomtat\u00f3sz\u00e1l mozg\u00e1s\u00e9rz\u00e9kel\u0151. T\u00e1mogatja a nyomtat\u00f3sz\u00e1l behelyez\u00e9s\u00e9nek \u00e9s kifut\u00e1s\u00e1nak \u00e9rz\u00e9kel\u00e9s\u00e9t egy olyan k\u00f3dol\u00f3 seg\u00edts\u00e9g\u00e9vel, amely az \u00e9rz\u00e9kel\u0151n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 mozg\u00e1s k\u00f6zben v\u00e1ltogatja a kimeneti jelet. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1st . [filament_motion_sensor my_sensor] detection_length: 7.0 # Az \u00e9rz\u00e9kel\u0151n \u00e1th\u00fazott nyomtat\u00f3sz\u00e1l minim\u00e1lis hossza, amely # \u00e1llapotv\u00e1ltoz\u00e1st v\u00e1lt ki a switch_pin t\u0171n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 7mm. extruder: # Az extruderr\u00e9sz neve, amelyhez ez az \u00e9rz\u00e9kel\u0151 kapcsol\u00f3dik. # Ezt a param\u00e9tert meg kell adni. switch_pin: #pause_on_runout: #runout_gcode: #insert_gcode: #event_delay: #pause_delay: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t a \"filament_switch_sensor\" # r\u00e9szben tal\u00e1lja. [tsl1401cl_filament_width_sensor] \u00b6 TSLl401CL alap\u00fa sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd az \u00fatmutat\u00f3t . [tsl1401cl_filament_width_sensor] #pin: #default_nominal_filament_diameter: 1.75 # (mm) # A nyomtat\u00f3sz\u00e1l \u00e1tm\u00e9r\u0151j\u00e9nek megengedett legnagyobb # elt\u00e9r\u00e9se mm-ben. #max_difference: 0.2 # Az \u00e9rz\u00e9kel\u0151 \u00e9s a f\u00fav\u00f3ka k\u00f6z\u00f6tti t\u00e1vols\u00e1g mm-ben. #measurement_delay: 100 [hall_filament_width_sensor] \u00b6 Hall sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 (l\u00e1sd Hall sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 ). [hall_filament_width_sensor] adc1: adc2: # Az \u00e9rz\u00e9kel\u0151h\u00f6z csatlakoztatott anal\u00f3g bemeneti \u00e9rintkez\u0151k. Ezeket a # param\u00e9tereket meg kell adni. #cal_dia1: 1.50 #cal_dia2: 2.00 # Az \u00e9rz\u00e9kel\u0151k kalibr\u00e1ci\u00f3s \u00e9rt\u00e9kei (mm-ben). Az alap\u00e9rtelmezett \u00e9rt\u00e9k # 1,50 a cal_dia1 \u00e9s 2,00 a cal_dia2 eset\u00e9n. #raw_dia1: 9500 #raw_dia2: 10500 # Az \u00e9rz\u00e9kel\u0151k nyers kalibr\u00e1ci\u00f3s \u00e9rt\u00e9kei. Az alap\u00e9rtelmezett \u00e9rt\u00e9k # 9500 a raw_dia1 \u00e9s 10500 a raw_dia2 eset\u00e9n. #default_nominal_filament_diameter: 1.75 # A nyomtat\u00f3sz\u00e1l n\u00e9vleges \u00e1tm\u00e9r\u0151je. Ezt a param\u00e9tert meg kell adni. #max_difference: 0.200 # Az izz\u00f3sz\u00e1l \u00e1tm\u00e9r\u0151j\u00e9nek megengedett legnagyobb elt\u00e9r\u00e9se # millim\u00e9terben (mm). # Ha az izz\u00f3sz\u00e1l n\u00e9vleges \u00e1tm\u00e9r\u0151je \u00e9s az \u00e9rz\u00e9kel\u0151 kimenete k\u00f6z\u00f6tti # k\u00fcl\u00f6nbs\u00e9g nagyobb, mint +- max_difference, az extrud\u00e1l\u00e1si szorz\u00f3 # vissza\u00e1ll %100-ra. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,200. #measurement_delay: 70 # Az \u00e9rz\u00e9kel\u0151 \u00e9s a nyomtat\u00f3fej/forr\u00f3 v\u00e9ge (nozzle) k\u00f6z\u00f6tti t\u00e1vols\u00e1g # millim\u00e9terben (mm). Az \u00e9rz\u00e9kel\u0151 \u00e9s a nyomtat\u00f3fej k\u00f6z\u00f6tti # nyomtat\u00f3sz\u00e1l default_nominal_filament_diameter-k\u00e9nt lesz kezelve. # A gazdag\u00e9p modul FIFO logik\u00e1val m\u0171k\u00f6dik. Minden szenzor\u00e9rt\u00e9ket # \u00e9s poz\u00edci\u00f3t egy t\u00f6mbben tart, \u00e9s vissza\u00e1ll\u00edtja \u0151ket a megfelel\u0151 poz\u00edci\u00f3ba. # Ezt a param\u00e9tert meg kell adni. #enable: False # Az \u00e9rz\u00e9kel\u0151 enged\u00e9lyezve vagy letiltva a bekapcsol\u00e1s ut\u00e1n. # Az alap\u00e9rtelmezett a letilt\u00e1sa. #measurement_interval: 10 # Hozz\u00e1vet\u0151leges t\u00e1vols\u00e1g (mm-ben) az \u00e9rz\u00e9kel\u0151 leolvas\u00e1sai k\u00f6z\u00f6tt. # Az alap\u00e9rtelmezett 10 mm. #logging: False # Kimeneti \u00e1tm\u00e9r\u0151 a termin\u00e1lhoz \u00e9s a klipper.log-hoz k\u00fcld, amit ki # lehet kapcsolni. #min_diameter: 1.0 # A virtu\u00e1lis trigger minim\u00e1lis \u00e1tm\u00e9r\u0151je filament_switch_sensor. #use_current_dia_while_delay: False # Haszn\u00e1ld az aktu\u00e1lis \u00e1tm\u00e9r\u0151t a n\u00e9vleges \u00e1tm\u00e9r\u0151 helyett, am\u00edg a # m\u00e9r\u00e9si k\u00e9sleltet\u00e9s nem futott \u00e1t. #pause_on_runout: #runout_gcode: #insert_gcode: #event_delay: #pause_delay: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"filament_switch_sensor\" r\u00e9szben. Alaplap specifikus hardvert\u00e1mogat\u00e1s \u00b6 [sx1509] \u00b6 Konfigur\u00e1ljon egy SX1509 I2C-GPIO b\u0151v\u00edt\u0151t. Az I2C-kommunik\u00e1ci\u00f3 \u00e1ltal okozott k\u00e9sleltet\u00e9s miatt NEM szabad az SX1509 t\u0171it motorvez\u00e9rl\u0151 enged\u00e9lyez\u0151, STEP vagy DIR t\u0171k\u00e9nt vagy b\u00e1rmilyen m\u00e1s olyan t\u0171k\u00e9nt haszn\u00e1lni, amely gyors bit-impulzust ig\u00e9nyel. Legjobban statikus vagy G-k\u00f3d vez\u00e9relt digit\u00e1lis kimenetekk\u00e9nt vagy hardveres PWM t\u0171k\u00e9nt haszn\u00e1lhat\u00f3k pl. ventil\u00e1torokhoz. B\u00e1rmennyi szekci\u00f3t defini\u00e1lhatunk \"sx1509\" el\u0151taggal. Minden egyes b\u0151v\u00edt\u0151 egy 16 t\u0171b\u0151l \u00e1ll\u00f3 k\u00e9szletet biztos\u00edt (sx1509_my_sx1509:PIN_0-t\u00f3l sx1509_my_sx1509:PIN_15-ig), amelyek a nyomtat\u00f3 konfigur\u00e1ci\u00f3j\u00e1ban haszn\u00e1lhat\u00f3k. L\u00e1sd a generic-duet2-duex.cfg f\u00e1jlt egy p\u00e9ld\u00e1\u00e9rt. [sx1509 my_sx1509] i2c_address: # A b\u0151v\u00edt\u0151 \u00e1ltal haszn\u00e1lt I2C c\u00edm. A hardveres jumperekt\u0151l # f\u00fcgg\u0151en ez a k\u00f6vetkez\u0151 c\u00edmek egyike: 62 63 112 113. # Ezt a param\u00e9tert meg kell adni. #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #i2c_bus: # Ha a mikrovez\u00e9rl\u0151 I2C megval\u00f3s\u00edt\u00e1sa t\u00f6bb I2C buszt is t\u00e1mogat, # itt megadhatod a busz nev\u00e9t. # Az alap\u00e9rtelmezett a mikrovez\u00e9rl\u0151 I2C busz haszn\u00e1lata. [samd_sercom] \u00b6 SAMD SERCOM konfigur\u00e1ci\u00f3 annak megad\u00e1s\u00e1ra, hogy mely t\u0171ket kell haszn\u00e1lni egy adott SERCOM-on. A \"samd_sercom\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t defini\u00e1lhatunk. Minden SERCOM-ot konfigur\u00e1lni kell, miel\u0151tt SPI vagy I2C perif\u00e9riak\u00e9nt haszn\u00e1ln\u00e1nk. Helyezd ezt a konfigur\u00e1ci\u00f3s szekci\u00f3t minden m\u00e1s, SPI vagy I2C buszokat haszn\u00e1l\u00f3 szekci\u00f3 f\u00f6l\u00e9. [samd_sercom my_sercom] sercom: # A mikrovez\u00e9rl\u0151ben konfigur\u00e1land\u00f3 sercom busz neve. # A rendelkez\u00e9sre \u00e1ll\u00f3 nevek \"sercom0\", \"sercom1\" stb. # Ezt a param\u00e9tert meg kell adni. tx_pin: # MOSI \u00e9rintkez\u0151 SPI kommunik\u00e1ci\u00f3hoz, vagy SDA (adat) \u00e9rintkez\u0151 # I2C kommunik\u00e1ci\u00f3hoz. A l\u00e1bnak \u00e9rv\u00e9nyes pinmux konfigur\u00e1ci\u00f3val # kell rendelkeznie az adott SERCOM perif\u00e9ri\u00e1hoz. # Ezt a param\u00e9tert meg kell adni. #rx_pin: # MISO t\u0171 az SPI kommunik\u00e1ci\u00f3hoz. Ezt a t\u0171t nem haszn\u00e1lj\u00e1k I2C # kommunik\u00e1ci\u00f3hoz (az I2C a tx_pin k\u00f3dot haszn\u00e1lja mind a # k\u00fcld\u00e9shez, mind a fogad\u00e1shoz). A l\u00e1bnak \u00e9rv\u00e9nyes pinmux # konfigur\u00e1ci\u00f3val kell rendelkeznie az adott SERCOM perif\u00e9ri\u00e1hoz. # Ez a param\u00e9ter nem k\u00f6telez\u0151. clk_pin: # CLK \u00e9rintkez\u0151 az SPI kommunik\u00e1ci\u00f3hoz, vagy SCL (\u00f3ra) \u00e9rintkez\u0151 # az I2C kommunik\u00e1ci\u00f3hoz. A l\u00e1bnak \u00e9rv\u00e9nyes pinmux # konfigur\u00e1ci\u00f3val kell rendelkeznie az adott SERCOM perif\u00e9ri\u00e1hoz. # Ezt a param\u00e9tert meg kell adni. [adc_scaled] \u00b6 Duet2 Maestro anal\u00f3g sk\u00e1l\u00e1z\u00e1s vref \u00e9s vssa leolvas\u00e1sok alapj\u00e1n. Az adc_scaled szakasz defini\u00e1l\u00e1sa virtu\u00e1lis adc-t\u0171k\u00e9nt (p\u00e9ld\u00e1ul \"my_name:PB0\") tesz lehet\u0151v\u00e9, amelyeket automatikusan a k\u00e1rtya vref \u00e9s vssa figyel\u0151t\u0171i \u00e1ll\u00edtanak be. \u00dcgyelj arra, hogy ezt a konfigur\u00e1ci\u00f3s szakaszt minden olyan konfigur\u00e1ci\u00f3s szakasz felett defini\u00e1ld, amely ezeket a virtu\u00e1lis t\u0171ket haszn\u00e1lja. L\u00e1sd a generic-duet2-maestro.cfg f\u00e1jlt egy p\u00e9ld\u00e1\u00e9rt. [adc_scaled my_name] vref_pin: # A VREF monitoroz\u00e1s\u00e1hoz haszn\u00e1lt ADC t\u0171. Ezt a param\u00e9tert meg kell adni. vssa_pin: # A VSSA monitoroz\u00e1s\u00e1hoz haszn\u00e1land\u00f3 ADC t\u0171. Ezt a param\u00e9tert meg kell adni. #smooth_time: 2.0 # Egy id\u0151\u00e9rt\u00e9k (m\u00e1sodpercben), amely alatt a vref \u00e9s a vssa # m\u00e9r\u00e9sek sim\u00edt\u00e1sra ker\u00fclnek, hogy cs\u00f6kkents\u00e9k a m\u00e9r\u00e9s hat\u00e1s\u00e1t # zaj cs\u00f6kkent\u00e9se \u00e9rdek\u00e9ben. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 2 m\u00e1sodperc. [replicape] \u00b6 Replicape t\u00e1mogat\u00e1s. L\u00e1sd a beaglebone \u00fatmutat\u00f3t \u00e9s a generic-replicape.cfg f\u00e1jlt egy p\u00e9ld\u00e1\u00e9rt. # A \"replicape\" konfigur\u00e1ci\u00f3s r\u00e9sz hozz\u00e1adja a # \"replicape:stepper_x_enable\" virtu\u00e1lis l\u00e9ptet\u0151t enged\u00e9lyez\u0151 t\u0171ket # (X, Y, Z, E \u00e9s H l\u00e9ptet\u0151kh\u00f6z) \u00e9s a \"replicape:power_x\" PWM kimeneti # t\u0171ket (hotbed, e, h, fan0, fan1 sz\u00e1m\u00e1ra , fan2 \u00e9s fan3), a # konfigur\u00e1ci\u00f3s f\u00e1jlhoz amelyet ezut\u00e1n m\u00e1shol is haszn\u00e1lhatunk. [replicape] revision: # A replik\u00e1lt hardververzi\u00f3. Jelenleg csak a \"B3\" verzi\u00f3 t\u00e1mogatott. # Ezt a param\u00e9tert meg kell adni. #enable_pin: !gpio0_20 # A glob\u00e1lis enged\u00e9lyez\u00e9si PIN replik\u00e1ja. # Az alap\u00e9rtelmezett !gpio0_20 (m\u00e1s n\u00e9ven P9_41). host_mcu: # Az MCU konfigur\u00e1ci\u00f3s szakasz neve, amely kommunik\u00e1l a Klipper # \"linux folyamat\" MCU p\u00e9ld\u00e1ny\u00e1val. Ezt a param\u00e9tert meg kell adni. #standstill_power_down: False # Ez a param\u00e9ter vez\u00e9rli a CFG6_ENN vonalat az \u00f6sszes # l\u00e9ptet\u0151motoron. A True az enged\u00e9lyez\u00e9si sorokat \"nyit\u00e1sra\" \u00e1ll\u00edtja. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #stepper_x_microstep_mode: #stepper_y_microstep_mode: #stepper_z_microstep_mode: #stepper_e_microstep_mode: #stepper_h_microstep_mode: # Ez a param\u00e9ter az adott l\u00e9ptet\u0151motor meghajt\u00f3 CFG1 \u00e9s CFG2 # \u00e9rintkez\u0151it vez\u00e9rli. A v\u00e1laszthat\u00f3 lehet\u0151s\u00e9gek a k\u00f6vetkez\u0151k: # disable, 1, 2, spread2, 4, 16, spread4, spread16, stealth4 \u00e9s # stealth16. Az alap\u00e9rtelmezett \u00e9rt\u00e9k a disable. #stepper_x_current: #stepper_y_current: #stepper_z_current: #stepper_e_current: #stepper_h_current: # A l\u00e9ptet\u0151motor meghajt\u00f3j\u00e1nak konfigur\u00e1lt maxim\u00e1lis \u00e1rama # (amperben). Ezt a param\u00e9tert akkor kell megadni, ha a l\u00e9ptet\u0151 # nincs letilt\u00e1si m\u00f3dban. #stepper_x_chopper_off_time_high: #stepper_y_chopper_off_time_high: #stepper_z_chopper_off_time_high: #stepper_e_chopper_off_time_high: #stepper_h_chopper_off_time_high: # Ez a param\u00e9ter a l\u00e9ptet\u0151motor meghajt\u00f3 CFG0 l\u00e1b\u00e1t vez\u00e9rli # (a True a CFG0 \u00e9rt\u00e9ket magasra, a False pedig alacsonyra \u00e1ll\u00edtja). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #stepper_x_chopper_hysteresis_high: #stepper_y_chopper_hysteresis_high: #stepper_z_chopper_hysteresis_high: #stepper_e_chopper_hysteresis_high: #stepper_h_chopper_hysteresis_high: # Ez a param\u00e9ter a l\u00e9ptet\u0151motor meghajt\u00f3 CFG4 l\u00e1b\u00e1t vez\u00e9rli # (a True a CFG4 \u00e9rt\u00e9ket magasra, a False pedig alacsonyra \u00e1ll\u00edtja). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #stepper_x_chopper_blank_time_high: #stepper_y_chopper_blank_time_high: #stepper_z_chopper_blank_time_high: #stepper_e_chopper_blank_time_high: #stepper_h_chopper_blank_time_high: # Ez a param\u00e9ter a l\u00e9ptet\u0151motor meghajt\u00f3 CFG5 l\u00e1b\u00e1t vez\u00e9rli # (a True a CFG5 \u00e9rt\u00e9ket magasra, a False pedig alacsonyra \u00e1ll\u00edtja). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. Egy\u00e9b egyedi modulok \u00b6 [palette2] \u00b6 Palette 2 multimaterial t\u00e1mogat\u00e1s szorosabb integr\u00e1ci\u00f3t biztos\u00edt, amely t\u00e1mogatja a Palette 2 eszk\u00f6z\u00f6ket csatlakoztatott m\u00f3dban. Ez a modul a teljes funkcionalit\u00e1shoz a [virtual_sdcard] \u00e9s [pause_resume] modulokat is ig\u00e9nyli. Ha ezt a modult haszn\u00e1lod, ne haszn\u00e1ld a Palette 2 plugint az Octoprinthez, mivel ezek \u00fctk\u00f6zni fognak, \u00e9s az egyik nem fog megfelel\u0151en inicializ\u00e1l\u00f3dni, ami val\u00f3sz\u00edn\u0171leg megszak\u00edtja a nyomtat\u00e1st. Ha az Octoprintet haszn\u00e1lod \u00e9s a G-k\u00f3dot a soros porton kereszt\u00fcl streameli a virtual_sd-r\u0151l val\u00f3 nyomtat\u00e1s helyett, akkor a M1 \u00e9s M0 parancsok Pausing parancsok a Settings >. alatt remo; Serial Connection > Firmware & protocol megakad\u00e1lyozz\u00e1k, hogy a nyomtat\u00e1s megkezd\u00e9s\u00e9hez a Paletta 2-n el kelljen ind\u00edtani a nyomtat\u00e1st, \u00e9s az Octoprintben fel kelljen oldani a sz\u00fcnetet. [paletta2] serial: # A soros port, amelyhez a Palette 2 csatlakozik. #baud: 115200 # A haszn\u00e1land\u00f3 baud-r\u00e1ta. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 115200. #feedrate_splice: 0.8 # A told\u00e1skor haszn\u00e1land\u00f3 feedrate, alap\u00e9rtelmezett 0.8. #feedrate_normal: 1.0 # A told\u00e1s ut\u00e1n haszn\u00e1land\u00f3 feedrate, alap\u00e9rtelmezett \u00e9rt\u00e9ke 1.0. #auto_load_speed: 2 # Extrud\u00e1l\u00e1si el\u0151tol\u00e1si sebess\u00e9g automatikus bet\u00f6lt\u00e9skor, alap\u00e9rtelmezett 2 (mm/sec) #auto_cancel_variation: 0.1 # Automatikusan t\u00f6rli a nyomtat\u00e1st, ha a ping meghaladja ezt a k\u00fcsz\u00f6b\u00e9rt\u00e9ket. [angle] \u00b6 M\u00e1gneses Hall-sz\u00f6g\u00e9rz\u00e9kel\u0151 t\u00e1mogat\u00e1sa A1333, AS5047D vagy TLE5012B SPI-chipek haszn\u00e1lat\u00e1val a l\u00e9ptet\u0151motorok sz\u00f6gtengely\u00e9nek m\u00e9r\u00e9seinek leolvas\u00e1s\u00e1hoz. A m\u00e9r\u00e9sek az API Szerver \u00e9s a mozg\u00e1selemz\u0151 eszk\u00f6z seg\u00edts\u00e9g\u00e9vel \u00e9rhet\u0151k el. A rendelkez\u00e9sre \u00e1ll\u00f3 parancsokat l\u00e1sd a G-k\u00f3d hivatkoz\u00e1sban . [angle my_angle_sensor] sensor_type: # A m\u00e1gneses Hall \u00e9rz\u00e9kel\u0151 chip t\u00edpusa. A v\u00e1laszthat\u00f3 lehet\u0151s\u00e9gek: # \u201ea1333\u201d, \u201eas5047d\u201d \u00e9s \u201etle5012b\u201d. Ezt a param\u00e9tert meg kell adni. #sample_period: 0.000400 # A m\u00e9r\u00e9sek sor\u00e1n haszn\u00e1land\u00f3 lek\u00e9rdez\u00e9si id\u0151szak (m\u00e1sodpercben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,000400 (ami m\u00e1sodpercenk\u00e9nt # 2500 minta). #stepper: # Annak a l\u00e9ptet\u0151nek a neve, amelyhez a sz\u00f6g\u00e9rz\u00e9kel\u0151 csatlakoztatva # van (pl. \"stepper_x\"). Ennek az \u00e9rt\u00e9knek a be\u00e1ll\u00edt\u00e1sa enged\u00e9lyezi a # sz\u00f6gkalibr\u00e1l\u00f3 eszk\u00f6zt. A funkci\u00f3 haszn\u00e1lat\u00e1hoz telep\u00edteni kell a # Python \"numpy\" csomagot. Az alap\u00e9rtelmezett be\u00e1ll\u00edt\u00e1s nem # enged\u00e9lyezi a sz\u00f6g\u00e9rz\u00e9kel\u0151 sz\u00f6gkalibr\u00e1l\u00e1s\u00e1t. cs_pin: # Az \u00e9rz\u00e9kel\u0151 SPI enged\u00e9lyez\u0151 t\u0171je. Ezt a param\u00e9tert meg kell adni. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t az \u201e\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\u201d # r\u00e9szben tal\u00e1lja. Gyakori buszparam\u00e9terek \u00b6 Gyakori SPI be\u00e1ll\u00edt\u00e1sok \u00b6 Az SPI-buszt haszn\u00e1l\u00f3 eszk\u00f6z\u00f6k eset\u00e9ben \u00e1ltal\u00e1ban a k\u00f6vetkez\u0151 param\u00e9terek \u00e1llnak rendelkez\u00e9sre. #spi_speed: # Az eszk\u00f6zzel val\u00f3 kommunik\u00e1ci\u00f3 sor\u00e1n haszn\u00e1land\u00f3 # SPI-sebess\u00e9g (hz-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k az eszk\u00f6z t\u00edpus\u00e1t\u00f3l f\u00fcgg. #spi_bus: # Ha a mikrovez\u00e9rl\u0151 t\u00f6bb SPI buszt t\u00e1mogat, akkor itt megadhatod a # mikrovez\u00e9rl\u0151 busz nev\u00e9t. Az alap\u00e9rtelmezett \u00e9rt\u00e9k a mikrovez\u00e9rl\u0151 # t\u00edpus\u00e1t\u00f3l f\u00fcgg. #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Add meg a fenti param\u00e9tereket a \"szoftver alap\u00fa SPI\" haszn\u00e1lat\u00e1hoz. # Ez a m\u00f3d nem ig\u00e9nyel mikrovez\u00e9rl\u0151 hardver t\u00e1mogat\u00e1st (\u00e1ltal\u00e1ban # b\u00e1rmilyen \u00e1ltal\u00e1nos c\u00e9l\u00fa \u00e9rintkez\u0151 haszn\u00e1lhat\u00f3). Az alap\u00e9rtelmez\u00e9s # szerint nem haszn\u00e1lja a \"software SPI\"-t. Gyakori I2C be\u00e1ll\u00edt\u00e1sok \u00b6 A k\u00f6vetkez\u0151 param\u00e9terek \u00e1ltal\u00e1ban az I2C-buszt haszn\u00e1l\u00f3 eszk\u00f6z\u00f6kh\u00f6z \u00e1llnak rendelkez\u00e9sre. Vedd figyelembe, hogy a Klipper jelenlegi mikrokontrollerek i2c t\u00e1mogat\u00e1sa nem toler\u00e1lja a h\u00e1l\u00f3zati zajt. Az i2c vezet\u00e9kek nem v\u00e1rt hib\u00e1i a Klipper fut\u00e1sidej\u0171 hiba\u00fczenet\u00e9t eredm\u00e9nyezhetik. A Klipper hibaelh\u00e1r\u00edt\u00e1s t\u00e1mogat\u00e1sa az egyes mikrokontroller-t\u00edpusok k\u00f6z\u00f6tt v\u00e1ltozik. \u00c1ltal\u00e1ban csak olyan i2c eszk\u00f6z\u00f6k haszn\u00e1lata aj\u00e1nlott, amelyek ugyanazon a nyomtatott \u00e1ramk\u00f6ri lapon vannak, mint a mikrokontroller. A legt\u00f6bb Klipper mikrokontroller implement\u00e1ci\u00f3 csak 100000 i2c_speed \u00e9rt\u00e9ket t\u00e1mogat. A Klipper \"linux\" mikrokontroller t\u00e1mogatja a 400000-es sebess\u00e9get, de ezt az oper\u00e1ci\u00f3s rendszerben kell be\u00e1ll\u00edtani , \u00e9s az i2c_speed param\u00e9tert egy\u00e9bk\u00e9nt figyelmen k\u00edv\u00fcl hagyja. A Klipper \"rp2040\" mikrokontroller az i2c_speed param\u00e9teren kereszt\u00fcl 400000-es sebess\u00e9get t\u00e1mogat. Az \u00f6sszes t\u00f6bbi Klipper mikrovez\u00e9rl\u0151 100000-es sebess\u00e9get haszn\u00e1l, \u00e9s figyelmen k\u00edv\u00fcl hagyja az i2c_speed param\u00e9tert. #i2c_address: # Az eszk\u00f6z i2c c\u00edme. Ezt decim\u00e1lis sz\u00e1mk\u00e9nt kell megadni # (nem hexadecim\u00e1lis form\u00e1ban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k az eszk\u00f6z t\u00edpus\u00e1t\u00f3l f\u00fcgg. #i2c_mcu: # Annak a mikrovez\u00e9rl\u0151nek a neve, amelyhez a chip csatlakozik. # Az alap\u00e9rtelmezett az \"mcu\". #i2c_bus: # Ha a mikrovez\u00e9rl\u0151 t\u00f6bb I2C buszt t\u00e1mogat, akkor itt megadhatod a # mikrovez\u00e9rl\u0151 busz nev\u00e9t. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a mikrovez\u00e9rl\u0151 t\u00edpus\u00e1t\u00f3l f\u00fcgg. #i2c_speed: # Az eszk\u00f6zzel val\u00f3 kommunik\u00e1ci\u00f3 sor\u00e1n haszn\u00e1land\u00f3 I2C sebess\u00e9g # (Hz-ben). A Klipper implement\u00e1ci\u00f3ja a legt\u00f6bb mikrovez\u00e9rl\u0151n k\u00f3dolt # \u00e9rt\u00e9ke 100000, \u00e9s ennek az \u00e9rt\u00e9knek nincs hat\u00e1sa. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 100 000.","title":"Konfigur\u00e1ci\u00f3s hivatkoz\u00e1s"},{"location":"Config_Reference.html#konfiguracios-hivatkozas","text":"Ez a dokumentum a Klipper konfigur\u00e1ci\u00f3s f\u00e1jlban el\u00e9rhet\u0151 be\u00e1ll\u00edt\u00e1sok referenci\u00e1ja. Az ebben a dokumentumban tal\u00e1lhat\u00f3 le\u00edr\u00e1sok \u00fagy vannak form\u00e1zva, hogy kiv\u00e1ghat\u00f3ak \u00e9s beilleszthet\u0151ek legyenek egy nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1ba. A Klipper be\u00e1ll\u00edt\u00e1s\u00e1val \u00e9s a kezdeti konfigur\u00e1ci\u00f3s f\u00e1jl kiv\u00e1laszt\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a telep\u00edt\u00e9si dokumentumot .","title":"Konfigur\u00e1ci\u00f3s hivatkoz\u00e1s"},{"location":"Config_Reference.html#mikrokontroller-konfiguracio","text":"","title":"Mikrokontroller konfigur\u00e1ci\u00f3"},{"location":"Config_Reference.html#a-mikrokontroller-tu-neveinek-formatuma","text":"Sz\u00e1mos konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1shoz egy mikrokontroller-t\u0171 nev\u00e9re van sz\u00fcks\u00e9g. A Klipper a hardveres neveket haszn\u00e1lja ezekhez a t\u0171kh\u00f6z - p\u00e9ld\u00e1ul PA4 . A t\u0171 nevek el\u0151tt ! \u00e1llhat, hogy jelezze ilyenkor ford\u00edtott polarit\u00e1st haszn\u00e1l (pl. magas helyett alacsony \u00e9rt\u00e9ken t\u00f6rt\u00e9n\u0151 trigger). A bemeneti t\u0171k el\u0151tt ^ jelezheti, hogy a t\u0171h\u00f6z hardveres pull-up ellen\u00e1ll\u00e1st kell enged\u00e9lyezni. Ha a mikrokontroller t\u00e1mogatja a pull-down ellen\u00e1ll\u00e1sokat, akkor egy bemeneti t\u0171 el\u0151tt ~ \u00e1llhat. Megjegyz\u00e9s: egyes konfigur\u00e1ci\u00f3s szakaszok tov\u00e1bbi t\u0171ket hozhatnak l\u00e9tre. Ahol ez el\u0151fordul, ott a t\u0171ket defini\u00e1l\u00f3 konfigur\u00e1ci\u00f3s szekci\u00f3t a konfigur\u00e1ci\u00f3s f\u00e1jlban az ezeket a t\u0171ket haszn\u00e1l\u00f3 szekci\u00f3k el\u0151tt kell felsorolni.","title":"A mikrokontroller t\u0171 neveinek form\u00e1tuma"},{"location":"Config_Reference.html#mcu","text":"Az els\u0151dleges mikrokontroller konfigur\u00e1l\u00e1sa. [mcu] serial: # Az MCU-hoz csatlakoztatand\u00f3 soros port. Ha bizonytalan (vagy a # v\u00e1ltoztat\u00e1sban), l\u00e1sd a GYIK \"Hol van a soros port?\" r\u00e9sz\u00e9t. # Ezt a param\u00e9tert soros port haszn\u00e1lata eset\u00e9n meg kell adni. #baud: 250000 # A haszn\u00e1land\u00f3 \u00e1tviteli sebess\u00e9g. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 250000. #canbus_uuid: # Ha CAN-buszra csatlakoztatott eszk\u00f6zt haszn\u00e1lunk, akkor ez \u00e1ll\u00edtja # be az egyedi chip azonos\u00edt\u00f3j\u00e1t, amelyhez csatlakozni kell. # Ezt az \u00e9rt\u00e9ket meg kell adni, a CAN busz haszn\u00e1lata eset\u00e9n. #canbus_interface: # Ha CAN-buszra csatlakoztatott eszk\u00f6zt haszn\u00e1lunk, akkor ez \u00e1ll\u00edtja # be a CAN h\u00e1l\u00f3zati interf\u00e9szt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 'can0'. #restart_method: # Ez szab\u00e1lyozza azt a mechanizmust, amelyet a gazdag\u00e9p haszn\u00e1ljon a # mikrokontroller \u00fajraind\u00edt\u00e1s\u00e1hoz. A v\u00e1laszthat\u00f3 lehet\u0151s\u00e9gek: 'arduino', # 'cheetah', 'rpi_usb', \u00e9s 'command'. Az 'arduino' m\u00f3dszer # (DTR kapcsol\u00e1sa) a k\u00f6vetkez\u0151 eszk\u00f6z\u00f6k\u00f6n gyakori. Arduino k\u00e1rty\u00e1k # \u00e9s kl\u00f3nok. A 'cheetah' m\u00f3dszer egy speci\u00e1lis m\u00f3dszer, amely n\u00e9h\u00e1ny # Fysetc Cheetah k\u00e1rty\u00e1hoz sz\u00fcks\u00e9ges. Az 'rpi_usb' m\u00f3dszer hasznos # a Raspberry Pi lapokon, amelyek mikrovez\u00e9rl\u0151kkel vannak ell\u00e1tva. # USB-n kereszt\u00fcl r\u00f6vid id\u0151re kikapcsolja az \u00f6sszes USB port # \u00e1ramell\u00e1t\u00e1s\u00e1t, hogy a mikrokontroller \u00fajrainduljon. A 'command' # m\u00f3dszer a k\u00f6vetkez\u0151ket foglalja mag\u00e1ban. Klipper parancsot k\u00fcld # a mikrokontrollernek, hogy az k\u00e9pes legyen \u00fajraind\u00edtani mag\u00e1t. # Az alap\u00e9rtelmezett be\u00e1ll\u00edt\u00e1s az 'arduino' ha a mikrokontroller # soros porton kereszt\u00fcl kommunik\u00e1l, egy\u00e9bk\u00e9nt 'command'.","title":"[mcu]"},{"location":"Config_Reference.html#mcu-my_extra_mcu","text":"Tov\u00e1bbi mikrovez\u00e9rl\u0151k (az \"mcu\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni). A tov\u00e1bbi mikrovez\u00e9rl\u0151k tov\u00e1bbi t\u0171ket vezetnek be, amelyek f\u0171t\u0151berendez\u00e9sk\u00e9nt, l\u00e9ptet\u0151berendez\u00e9sk\u00e9nt, ventil\u00e1tork\u00e9nt stb. konfigur\u00e1lhat\u00f3k. P\u00e9ld\u00e1ul, ha egy \"[mcu extra_mcu]\" szekci\u00f3t vezet\u00fcnk be, akkor az olyan t\u0171ket, mint az \"extra_mcu:ar9\" a konfigur\u00e1ci\u00f3ban m\u00e1shol is haszn\u00e1lhat\u00f3k (ahol \"ar9\" az adott mcu hardveres t\u0171 neve vagy \u00e1lneve). [mcu my_extra_mcu] # A konfigur\u00e1ci\u00f3s param\u00e9tereket l\u00e1sd az \"mcu\" szakaszban.","title":"[mcu my_extra_mcu]"},{"location":"Config_Reference.html#kozos-kinematikai-beallitasok","text":"","title":"K\u00f6z\u00f6s kinematikai be\u00e1ll\u00edt\u00e1sok"},{"location":"Config_Reference.html#printer","text":"A nyomtat\u00f3 szakasz a nyomtat\u00f3 magas szint\u0171 be\u00e1ll\u00edt\u00e1sait vez\u00e9rli. [printer] kinematics: # A haszn\u00e1lt nyomtat\u00f3 t\u00edpusa. Ez az opci\u00f3 a k\u00f6vetkez\u0151k egyike lehet: # cartesian, corexy, corexz, hybrid_corexy, hybrid_corexz, rotary_delta, # delta, delta, polar, cs\u00f6rl\u0151, vagy egyik sem. # Ezt a param\u00e9tert meg kell adni. max_velocity: # A nyomtat\u00f3fej maxim\u00e1lis sebess\u00e9ge (mm/s-ban) # (a nyomathoz viszony\u00edtva). Ezt a param\u00e9tert meg kell adni. max_accel: # A nyomtat\u00f3fej maxim\u00e1lis gyorsul\u00e1sa (mm/s^2-ben) # (a nyomtat\u00f3hoz viszony\u00edtva). Ezt a param\u00e9tert meg kell adni. #max_accel_to_decel: # \u00c1lgyorsul\u00e1s (mm/s^2-ben), amely azt szab\u00e1lyozza, hogy a nyomtat\u00f3fej # milyen gyorsan haladjon gyorsul\u00e1sr\u00f3l a lass\u00edt\u00e1sra. A r\u00f6vid cikk-cakk # mozg\u00e1sok maxim\u00e1lis sebess\u00e9g\u00e9nek cs\u00f6kkent\u00e9s\u00e9re szolg\u00e1l # (\u00e9s ez\u00e1ltal cs\u00f6kkenti a nyomtat\u00f3 rezg\u00e9s\u00e9t ezekb\u0151l a l\u00e9p\u00e9sekb\u0151l). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a max_accel fele. #square_corner_velocity: 5.0 # Az a maxim\u00e1lis sebess\u00e9g (mm/s-ban), amellyel a nyomtat\u00f3fej egy # 90 fokos sarokban haladhat. A null\u00e1t\u00f3l elt\u00e9r\u0151 \u00e9rt\u00e9k cs\u00f6kkentheti az # extruder \u00e1raml\u00e1si sebess\u00e9g\u00e9nek v\u00e1ltoz\u00e1sait az\u00e1ltal, hogy lehet\u0151v\u00e9 teszi # a nyomtat\u00f3fej azonnali sebess\u00e9gv\u00e1ltoz\u00e1s\u00e1t kanyarod\u00e1s k\u00f6zben. # Ez az \u00e9rt\u00e9k konfigur\u00e1lja a bels\u0151 centripet\u00e1lis sebess\u00e9g # kanyarod\u00e1si algoritmus\u00e1t; a 90 fokn\u00e1l nagyobb sz\u00f6g\u0171 sarkok # kanyarod\u00e1si sebess\u00e9ge nagyobb, m\u00edg a 90 fokn\u00e1l kisebb sz\u00f6g\u0171 sarkok # kanyarsebess\u00e9ge kisebb. Ha ez null\u00e1ra van \u00e1ll\u00edtva, akkor a nyomtat\u00f3fej # minden sark\u00e1n\u00e1l null\u00e1ra lassul. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5 mm/s.","title":"[printer]"},{"location":"Config_Reference.html#stepper","text":"L\u00e9ptet\u0151motor meghat\u00e1roz\u00e1sok. A k\u00fcl\u00f6nb\u00f6z\u0151 nyomtat\u00f3t\u00edpusok (a [printer] config szakasz \"kinematika\" opci\u00f3ja \u00e1ltal meghat\u00e1rozottak szerint) elt\u00e9r\u0151 neveket ig\u00e9nyelnek a l\u00e9ptet\u0151 sz\u00e1m\u00e1ra (pl. stepper_x vs stepper_a ). Az al\u00e1bbiakban a stepperek \u00e1ltal\u00e1nos defin\u00edci\u00f3i k\u00f6vetkeznek. A rotation_distance param\u00e9ter kisz\u00e1m\u00edt\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a forgat\u00e1si t\u00e1vols\u00e1g dokumentumot . A t\u00f6bb mikrovez\u00e9rl\u0151vel t\u00f6rt\u00e9n\u0151 kezd\u0151pont felv\u00e9tellel kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a Multi-MCU kezd\u0151pont dokumentumot. [stepper_x] step_pin: # L\u00e9p\u00e9s GPIO t\u0171 (magasan aktiv\u00e1lva). Ezt a param\u00e9tert meg kell adni. dir_pin: # Ir\u00e1ny GPIO t\u0171 (magas pozit\u00edv ir\u00e1nyt jelez). Ezt a param\u00e9tert meg kell adni. enable_pin: # Enged\u00e9lyezett t\u0171 (az alap\u00e9rtelmezett enged\u00e9lyez\u00e9s magas; haszn\u00e1ld a # \"!\" jelet az enged\u00e9lyez\u00e9s alacsony szintj\u00e9nek jelz\u00e9s\u00e9re). Ha ez a # param\u00e9ter nincs megadva, akkor a l\u00e9ptet\u0151motor meghajt\u00f3t mindig # enged\u00e9lyezni kell. rotation_distance: # Az a t\u00e1vols\u00e1g (mm-ben), amelyet a tengely megtesz a l\u00e9ptet\u0151motor egy # teljes fordulat\u00e1val (vagy v\u00e9gs\u0151 sebess\u00e9gfokozattal, ha a gear_ratio meg # van adva). Ezt a param\u00e9tert meg kell adni. microsteps: # A l\u00e9ptet\u0151motor-vez\u00e9rl\u0151 \u00e1ltal haszn\u00e1lt mikrol\u00e9p\u00e9sek sz\u00e1ma. # Ezt a param\u00e9tert meg kell adni. #full_steps_per_rotation: 200 # A l\u00e9ptet\u0151motor egy fordulat\u00e1hoz tartoz\u00f3 teljes l\u00e9p\u00e9sek sz\u00e1ma. \u00c1ll\u00edtsd ezt # 200-ra 1,8 fokos l\u00e9ptet\u0151motor eset\u00e9n, vagy 400-ra 0,9 fokos motor eset\u00e9n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 200. #gear_ratio: # Az \u00e1tt\u00e9tel, ha a l\u00e9ptet\u0151motor egy sebess\u00e9gv\u00e1lt\u00f3n kereszt\u00fcl csatlakozik a # tengelyhez. P\u00e9ld\u00e1ul megadhatod az \"5:1\" \u00e9rt\u00e9ket, ha 5:1 sebess\u00e9gv\u00e1lt\u00f3t # haszn\u00e1lnak. Ha a tengely t\u00f6bb sebess\u00e9gv\u00e1lt\u00f3val rendelkezik, megadhat # egy vessz\u0151vel elv\u00e1lasztott \u00e1tt\u00e9teli list\u00e1t (p\u00e9ld\u00e1ul \"57:11, 2:1\"). Ha a # gear_ratio meg van adva, akkor a rotation_distance azt a t\u00e1vols\u00e1got # hat\u00e1rozza meg, amelyet a tengely megtesz a v\u00e9gs\u0151 fogasker\u00e9k egy teljes # fordulat\u00e1n\u00e1l. Az alap\u00e9rtelmez\u00e9s szerint nem haszn\u00e1l \u00e1tt\u00e9teli ar\u00e1nyt. #step_pulse_duration: # A minim\u00e1lis id\u0151 a l\u00e9ptet\u0151 impulzus jel \u00e9le \u00e9s a k\u00f6vetkez\u0151 \"l\u00e9p\u00e9sk\u00f6z\" jel # \u00e9le k\u00f6z\u00f6tt. Ez a l\u00e9p\u00e9s impulzus \u00e9s az ir\u00e1nyv\u00e1lt\u00f3 jel k\u00f6z\u00f6tti minim\u00e1lis id\u0151 # be\u00e1ll\u00edt\u00e1s\u00e1ra is haszn\u00e1lhat\u00f3. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,000000100 (100 ns) # az UART vagy SPI m\u00f3dban konfigur\u00e1lt TMC l\u00e9ptet\u0151k eset\u00e9ben, \u00e9s az # alap\u00e9rtelmezett 0,000002 (ami 2us) az \u00f6sszes t\u00f6bbi l\u00e9ptet\u0151 eset\u00e9ben. endstop_pin: # V\u00e9g\u00e1ll\u00e1skapcsol\u00f3 \u00e9rz\u00e9kel\u00e9si t\u0171. Ha ez a v\u00e9g\u00fctk\u00f6z\u0151 t\u0171 m\u00e1s MCU-n van, # mint a l\u00e9ptet\u0151motor, akkor enged\u00e9lyezi a \"multi-mcu homing\"-ot. # Ezt a param\u00e9tert meg kell adni a der\u00e9ksz\u00f6g\u0171 nyomtat\u00f3k X, Y \u00e9s Z # l\u00e9ptet\u0151ihez. #position_min: 0 # Minim\u00e1lis \u00e9rv\u00e9nyes t\u00e1vols\u00e1g (mm-ben), amelyre a felhaszn\u00e1l\u00f3 utas\u00edthatja # a l\u00e9ptet\u0151t, hogy mozogjon. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0 mm. position_endstop: # A v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 helye (mm-ben). # Ezt a param\u00e9tert meg kell adni a der\u00e9ksz\u00f6g\u0171 nyomtat\u00f3k X, Y \u00e9s Z # l\u00e9ptet\u0151ihez. position_max: # Maxim\u00e1lis \u00e9rv\u00e9nyes t\u00e1vols\u00e1g (mm-ben), amelyre a felhaszn\u00e1l\u00f3 utas\u00edthatja # a l\u00e9ptet\u0151t, hogy mozogjon. Ezt a param\u00e9tert meg kell adni a der\u00e9ksz\u00f6g\u0171 # nyomtat\u00f3k X, Y \u00e9s Z l\u00e9ptet\u0151ihez. #homing_speed: 5.0 # A l\u00e9ptet\u0151 maxim\u00e1lis sebess\u00e9ge (mm/sec-ben) kezd\u0151pont felv\u00e9telkor. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5 mm/sec. #homing_retract_dist: 5.0 # T\u00e1vols\u00e1g a visszal\u00e9p\u00e9sig (mm-ben), miel\u0151tt m\u00e1sodszor is be\u00e1ll\u00edtan\u00e1. # \u00c1ll\u00edtsd ezt null\u00e1ra a m\u00e1sodik kezd\u0151pont felv\u00e9tel letilt\u00e1s\u00e1hoz. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5 mm. #homing_retract_speed: # Sebess\u00e9g, amelyet a visszah\u00faz\u00e1sn\u00e1l kell haszn\u00e1lni a kezd\u0151pont felv\u00e9tel # ut\u00e1n arra az esetre, ha ez elt\u00e9rne a be\u00e1ll\u00edt\u00e1si sebess\u00e9gt\u0151l, amely ehhez a # param\u00e9terhez az alap\u00e9rtelmezett. #second_homing_speed: # A l\u00e9ptet\u0151 sebess\u00e9ge (mm/sec-ben) a m\u00e1sodik kezd\u0151pont felv\u00e9tel # v\u00e9grehajt\u00e1sakor. Az alap\u00e9rtelmez\u00e9s a homing_speed/2. #homing_positive_dir: # Ha ez True, a kezd\u0151pont felv\u00e9tel hat\u00e1s\u00e1ra a l\u00e9ptet\u0151 pozit\u00edv ir\u00e1nyba mozdul # el (el a null\u00e1t\u00f3l) ha False, akkor kezd\u0151pontra a nulla fel\u00e9. Jobb az # alap\u00e9rtelmezettet haszn\u00e1lni, mint ezt a param\u00e9tert megadni. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k True, ha a position_endstop a position_max # k\u00f6zel\u00e9ben van, \u00e9s False, ha a position_min k\u00f6zel\u00e9ben van.","title":"[stepper]"},{"location":"Config_Reference.html#cartesian-kinematika","text":"L\u00e1sd example-cartesian.cfg egy p\u00e9lda cartesian kinematika konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Itt csak a cartesian nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd a \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: cartesian max_z_velocity: # Ez \u00e1ll\u00edtja be a Z ir\u00e1ny\u00fa mozg\u00e1s maxim\u00e1lis sebess\u00e9g\u00e9t (mm/sec-ben). # Ez a be\u00e1ll\u00edt\u00e1s haszn\u00e1lhat\u00f3 a maxim\u00e1lis sebess\u00e9g korl\u00e1toz\u00e1s\u00e1ra a # a Z l\u00e9ptet\u0151motor eset\u00e9ben. Az alap\u00e9rtelmez\u00e9s szerint a max_velocity a k\u00f6vetkez\u0151 \u00e9rt\u00e9kekre vonatkozik # max_z_velocity. max_z_accel: # Ez \u00e1ll\u00edtja be a mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t (mm/sec^2-ben) # a Z tengely ment\u00e9n. Korl\u00e1tozza a Z l\u00e9ptet\u0151motor gyorsul\u00e1s\u00e1t. Az # alap\u00e9rtelmezett a max_accel haszn\u00e1lata a max_z_accel eset\u00e9ben. # A stepper_x szakasz a l\u00e9ptet\u0151motor vez\u00e9rl\u00e9s\u00e9re szolg\u00e1l. # X tengely egy cartesian g\u00e9pen. [stepper_x] # A stepper_y szakasz a l\u00e9ptet\u0151motor vez\u00e9rl\u00e9s\u00e9re szolg\u00e1l. # Y t\u00edngely egy cartesian g\u00e9pen. [stepper_y] # A stepper_z szakasz a l\u00e9ptet\u0151motor vez\u00e9rl\u00e9s\u00e9re szolg\u00e1l. # Z tengely egy cartesian g\u00e9pen. [stepper_z]","title":"Cartesian Kinematika"},{"location":"Config_Reference.html#linearis-delta-kinematika","text":"L\u00e1sd az example-delta.cfg p\u00e9ld\u00e1t a line\u00e1ris delta kinematika konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1hoz. A kalibr\u00e1l\u00e1ssal kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a delta kalibr\u00e1ci\u00f3s \u00fatmutat\u00f3 dokumentumot. Itt csak a line\u00e1ris delta nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: delta max_z_velocity: # A delta nyomtat\u00f3kn\u00e1l ez korl\u00e1tozza a Z tengely mozg\u00e1s\u00e1nak maxim\u00e1lis # sebess\u00e9g\u00e9t (mm/sec-ben). Ezzel a be\u00e1ll\u00edt\u00e1ssal cs\u00f6kkenthet\u0151 a fel/le # mozg\u00e1sok maxim\u00e1lis sebess\u00e9ge (amely nagyobb l\u00e9p\u00e9ssz\u00e1mot ig\u00e9nyel, # mint a deltanyomtat\u00f3k egy\u00e9b mozg\u00e1sai). Az alap\u00e9rtelmezett \u00e9rt\u00e9k a # max_velocity haszn\u00e1lata a max_z_velocity \u00e9rt\u00e9khez. #max_z_accel: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t # (mm/sec^2-en). Ennek be\u00e1ll\u00edt\u00e1sa akkor lehet hasznos, ha a nyomtat\u00f3 # nagyobb gyorsul\u00e1st tud el\u00e9rni XY mozg\u00e1sn\u00e1l, mint Z mozg\u00e1sn\u00e1l (pl. # bemeneti alakform\u00e1l\u00f3 haszn\u00e1latakor). # Az alap\u00e9rtelmez\u00e9s szerinti \u00e9rt\u00e9ke a max_accel a max_z_accel \u00e9rt\u00e9khez. #minimum_z_position: 0 # Az a minim\u00e1lis Z poz\u00edci\u00f3, amelybe a felhaszn\u00e1l\u00f3 utas\u00edthatja a fejet, # hogy mozogjon. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. delta_radius: # A h\u00e1rom line\u00e1ris tengely torony \u00e1ltal alkotott v\u00edzszintes k\u00f6r sugara # (mm-ben). Ez a param\u00e9ter a k\u00f6vetkez\u0151k\u00e9ppen is kisz\u00e1m\u00edthat\u00f3: # delta_radius = smooth_rod_offset - effector_offset - carriage_offset. # Ezt a param\u00e9tert meg kell adni. #print_radius: # Az \u00e9rv\u00e9nyes XY nyomtat\u00f3fej koordin\u00e1t\u00e1k sugara (mm-ben). Ezzel a # be\u00e1ll\u00edt\u00e1ssal testreszabhat\u00f3 a nyomtat\u00f3fej mozg\u00e1sok tartom\u00e1ny # ellen\u0151rz\u00e9se. Ha itt nagy \u00e9rt\u00e9ket adunk meg, akkor lehets\u00e9ges lehet # a nyomtat\u00f3fejet toronnyal val\u00f3 \u00fctk\u00f6z\u00e9sre utas\u00edtani. # Az alap\u00e9rtelmezett a delta_radius a print_radius \u00e9rt\u00e9khez (ami # \u00e1ltal\u00e1ban megakad\u00e1lyozza a torony \u00fctk\u00f6z\u00e9s\u00e9t). # A stepper_a szakasz a bal els\u0151 tornyot vez\u00e9rl\u0151 l\u00e9ptet\u0151t \u00edrja le # (210 fokban). Ez a szakasz az \u00f6sszes toronyhoz tartoz\u00f3 kezd\u0151pont # param\u00e9tereket (homing_speed, homing_retract_dist) is szab\u00e1lyozza. [stepper_a] position_endstop: # T\u00e1vols\u00e1g (mm-ben) a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tt, ha a f\u00fav\u00f3ka az \u00e9p\u00edt\u00e9si # ter\u00fclet k\u00f6zep\u00e9n van, \u00e9s a v\u00e9g\u00fctk\u00f6z\u0151 kiold. Ezt a param\u00e9tert meg kell # adni a stepper_a; a stepper_b \u00e9s a stepper_c eset\u00e9n ez a param\u00e9ter # alap\u00e9rtelmezett \u00e9rt\u00e9ke a stepper_a param\u00e9terben megadott \u00e9rt\u00e9k. arm_length: # A tornyot a nyomtat\u00f3fejjel \u00f6sszek\u00f6t\u0151 \u00e1tl\u00f3s r\u00fad hossza (mm-ben). # Ezt a param\u00e9tert meg kell adni a stepper_a; a stepper_b \u00e9s a stepper_c # eset\u00e9n ez a param\u00e9ter alap\u00e9rtelmezett \u00e9rt\u00e9ke a stepper_a # param\u00e9terben megadott \u00e9rt\u00e9k. #angle: # Ez az opci\u00f3 azt a sz\u00f6get adja meg (fokban), amelyben a torony \u00e1ll. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 210 a stepper_a, 330 a stepper_b \u00e9s # 90 a stepper_c. # A stepper_b szakasz a jobb els\u0151 tornyot vez\u00e9rl\u0151 l\u00e9ptet\u0151t \u00edrja le # (330 fokban). [stepper_b] # A stepper_c szakasz a h\u00e1ts\u00f3 tornyot vez\u00e9rl\u0151 l\u00e9ptet\u0151t \u00edrja le (90 fokban). [stepper_c] # A delta_calibrate szakasz lehet\u0151v\u00e9 teszi a DELTA_CALIBRATE # kiterjesztett G-k\u00f3d parancsot, amely k\u00e9pes kalibr\u00e1lni a torony # v\u00e9g\u00e1ll\u00e1s\u00e1nak poz\u00edci\u00f3it \u00e9s sz\u00f6geit. [delta_calibrate] radius: # A vizsg\u00e1lhat\u00f3 ter\u00fclet sugara (mm-ben). Ez a vizsg\u00e1land\u00f3 # f\u00fav\u00f3kakoordin\u00e1t\u00e1k sugara; Ha XY eltol\u00e1s\u00fa automata szond\u00e1t haszn\u00e1l, # akkor v\u00e1lasszon el\u00e9g kicsi sugarat, hogy a szonda mindig a t\u00e1rgyasztal f\u00f6l\u00e9 # f\u00e9rjen. Ezt a param\u00e9tert meg kell adni. #speed: 50 # A nem szond\u00e1z\u00e1s sebess\u00e9ge (mm/sec-ben) mozog a kalibr\u00e1l\u00e1s sor\u00e1n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), ameddig a fejnek el kell mozdulnia # k\u00f6zvetlen\u00fcl a szondam\u0171velet megkezd\u00e9se el\u0151tt. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5.","title":"Line\u00e1ris delta kinematika"},{"location":"Config_Reference.html#deltesian-kinematika","text":"L\u00e1sd example-deltesian.cfg egy p\u00e9lda deltesian kinematika konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Itt csak a deltesian nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd a \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: deltesian max_z_velocity: # Deltesian nyomtat\u00f3kn\u00e1l ez korl\u00e1tozza a Z tengely mozg\u00e1s\u00e1nak maxim\u00e1lis # sebess\u00e9g\u00e9t (mm/s-ban). Ezzel a be\u00e1ll\u00edt\u00e1ssal cs\u00f6kkenthet\u0151 a fel/le # mozg\u00e1sok maxim\u00e1lis sebess\u00e9ge (amelyek nagyobb l\u00e9p\u00e9ssz\u00e1mot # ig\u00e9nyelnek, mint egy deltesian nyomtat\u00f3 egy\u00e9b l\u00e9p\u00e9sei). # Az alap\u00e9rtelmezett a max_velocity a max_z_velocity \u00e9rt\u00e9khez. #max_z_accel: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t # (mm/s^2-ben). Ennek be\u00e1ll\u00edt\u00e1sa akkor lehet hasznos, ha a nyomtat\u00f3 # nagyobb gyorsul\u00e1st tud el\u00e9rni XY mozg\u00e1sn\u00e1l, mint Z mozg\u00e1sn\u00e1l # (pl. bemeneti alakform\u00e1l\u00f3 haszn\u00e1latakor). # Az alap\u00e9rtelmezett a max_accel a max_z_accel \u00e9rt\u00e9khez. #minim\u00e1lis_z_poz\u00edci\u00f3: 0 # Az a minim\u00e1lis Z poz\u00edci\u00f3, amelybe a felhaszn\u00e1l\u00f3 utas\u00edthatja a fejet, hogy # mozogjon. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #min_angle: 5 # Ez azt a minim\u00e1lis sz\u00f6get (fokban) jelenti a v\u00edzszinteshez k\u00e9pest, amelyet # a deltesian karok el\u00e9rhetnek. Ennek a param\u00e9ternek az a c\u00e9lja, hogy # megakad\u00e1lyozza, a karok teljesen v\u00edzszintesbe mozgat\u00e1s\u00e1t, ami az XZ # tengely v\u00e9letlen megfordul\u00e1s\u00e1t kock\u00e1ztatn\u00e1. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #print_width: # Az \u00e9rv\u00e9nyes nyomtat\u00f3fej X koordin\u00e1t\u00e1k t\u00e1vols\u00e1ga (mm-ben). Ezzel a # be\u00e1ll\u00edt\u00e1ssal testreszabhat\u00f3 a nyomtat\u00f3fej mozg\u00e1sok tartom\u00e1nyellen\u0151rz\u00e9se. # Ha itt nagy \u00e9rt\u00e9ket adunk meg, akkor el\u0151fordulhat, hogy a nyomtat\u00f3fejet a # toronnyal val\u00f3 \u00fctk\u00f6z\u00e9sre utas\u00edthatjuk. # Ez a be\u00e1ll\u00edt\u00e1s \u00e1ltal\u00e1ban a t\u00e1rgyasztal sz\u00e9less\u00e9gnek felel meg (mm-ben). #slow_ratio: 3 # Az az ar\u00e1ny, amely korl\u00e1tozza a sebess\u00e9get \u00e9s a gyorsul\u00e1st az X tengely # sz\u00e9ls\u0151 pontjaihoz k\u00f6zeli mozg\u00e1sokn\u00e1l. Ha a f\u00fcgg\u0151leges t\u00e1vols\u00e1g osztva a # v\u00edzszintes t\u00e1vols\u00e1ggal meghaladja a slow_ratio \u00e9rt\u00e9k\u00e9t, akkor a sebess\u00e9g \u00e9s # a gyorsul\u00e1s a n\u00e9vleges \u00e9rt\u00e9k\u00fck fel\u00e9re korl\u00e1toz\u00f3dik. Ha a f\u00fcgg\u0151leges t\u00e1vols\u00e1g # osztva a v\u00edzszintes t\u00e1vols\u00e1ggal meghaladja a slow_ratio \u00e9rt\u00e9k\u00e9nek # k\u00e9tszeres\u00e9t, akkor a sebess\u00e9g \u00e9s a gyorsul\u00e1s a n\u00e9vleges \u00e9rt\u00e9k\u00fck # egynegyed\u00e9re korl\u00e1toz\u00f3dik. Az alap\u00e9rtelmezett \u00e9rt\u00e9k a 3. # A stepper_left szakasz a bal tornyot vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. # Ez a szakasz az \u00f6sszes toronyhoz tartoz\u00f3 homing param\u00e9tereket # (homing_speed, homing_retract_dist) is szab\u00e1lyozza. [stepper_left] position_endstop: # T\u00e1vols\u00e1g (mm-ben) a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tt, ha a f\u00fav\u00f3ka az \u00e9p\u00edt\u00e9si ter\u00fclet # k\u00f6zep\u00e9n van, \u00e9s a v\u00e9g\u00fctk\u00f6z\u0151k kiold\u00f3dnak. Ezt a param\u00e9tert meg kell adni a # stepper_left; a stepper_right eset\u00e9n ez a param\u00e9ter alap\u00e9rtelmezett \u00e9rt\u00e9ke # a stepper_left param\u00e9terben megadott \u00e9rt\u00e9k. arm_length: # A toronykocsit a nyomtat\u00f3fejjel \u00f6sszek\u00f6t\u0151 \u00e1tl\u00f3s r\u00fad hossza (mm-ben). # Ezt a param\u00e9tert meg kell adni a stepper_left; a stepper_right eset\u00e9n ez a # param\u00e9ter alap\u00e9rtelmezett \u00e9rt\u00e9ke a stepper_left param\u00e9ter megadott \u00e9rt\u00e9ke. arm_x_length: # V\u00edzszintes t\u00e1vols\u00e1g a nyomtat\u00f3fej \u00e9s a torony k\u00f6z\u00f6tt, ha minden # kezd\u0151ponton van. Ezt a param\u00e9tert meg kell adni a stepper_left; a # stepper_right eset\u00e9n ez a param\u00e9ter alap\u00e9rtelmezett \u00e9rt\u00e9ke a # stepper_left param\u00e9terben megadott \u00e9rt\u00e9k. # A stepper_right szekci\u00f3 a jobb oldali tornyot vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_right] # A stepper_y szakasz az Y tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l # egy deltesian g\u00e9pen. [stepper_y]","title":"Deltesian Kinematika"},{"location":"Config_Reference.html#corexy-kinematika","text":"L\u00e1sd example-corexy.cfg egy p\u00e9lda corexy (\u00e9s h-bot) kinematikai f\u00e1jlt. Itt csak a CoreXY nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: corexy max_z_velocity: # Ez \u00e1ll\u00edtja be a Z ir\u00e1ny\u00fa mozg\u00e1s maxim\u00e1lis sebess\u00e9g\u00e9t (mm/sec-ben). # Ez a be\u00e1ll\u00edt\u00e1s haszn\u00e1lhat\u00f3 a Z l\u00e9ptet\u0151motor maxim\u00e1lis sebess\u00e9gkorl\u00e1toz\u00e1s\u00e1ra. # Az alap\u00e9rtelmez\u00e9s szerint a max_velocity a k\u00f6vetkez\u0151 \u00e9rt\u00e9kekre vonatkozik # amely a max_z_velocity. max_z_accel: # Ez \u00e1ll\u00edtja be a mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t (mm/sec^2 -ben) # a Z tengely ment\u00e9n. Korl\u00e1tozza a Z l\u00e9ptet\u0151motor gyorsul\u00e1s\u00e1t. # Az alap\u00e9rtelmezett max_accel haszn\u00e1lata a max_z_accel paranccsal t\u00f6rt\u00e9nik. # A stepper_x szakasz az X tengely, valamint az X+Y mozg\u00e1st vez\u00e9rl\u0151 # l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_x] # A stepper_y szakasz az Y tengely, valamint az X+Y mozg\u00e1st vez\u00e9rl\u0151 # l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_y] # A stepper_z szakasz a Z tengely, mozg\u00e1st vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_z]","title":"CoreXY Kinematika"},{"location":"Config_Reference.html#corexz-kinematika","text":"L\u00e1sd example-corexz.cfg egy p\u00e9lda CoreXZ kinematikai konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Itt csak a CoreXZ nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: corexz max_z_velocity: # Ez \u00e1ll\u00edtja be a Z ir\u00e1ny\u00fa mozg\u00e1s maxim\u00e1lis sebess\u00e9g\u00e9t (mm/sec-ben). # Ez a be\u00e1ll\u00edt\u00e1s haszn\u00e1lhat\u00f3 a Z l\u00e9ptet\u0151motor maxim\u00e1lis sebess\u00e9gkorl\u00e1toz\u00e1s\u00e1ra. # Az alap\u00e9rtelmez\u00e9s szerint a max_velocity a k\u00f6vetkez\u0151 \u00e9rt\u00e9kekre vonatkozik # amely a max_z_velocity. max_z_accel: # Ez \u00e1ll\u00edtja be a mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t (mm/sec^2 -ben) # a Z tengely ment\u00e9n. Korl\u00e1tozza a Z l\u00e9ptet\u0151motor gyorsul\u00e1s\u00e1t. # Az alap\u00e9rtelmezett max_accel haszn\u00e1lata a max_z_accel paranccsal t\u00f6rt\u00e9nik. # A stepper_x szakasz az X tengely, valamint az X+Z mozg\u00e1st vez\u00e9rl\u0151 # l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_x] # A stepper_y szakasz az Y tengely l\u00e9ptet\u0151 vez\u00e9rl\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_y] # A stepper_z szakasz a Z tengely le\u00edr\u00e1s\u00e1ra szolg\u00e1l, valamint a # l\u00e9ptet\u0151, amely az X-Z mozg\u00e1st vez\u00e9rli. [stepper_z]","title":"CoreXZ Kinematika"},{"location":"Config_Reference.html#hybrid-corexy-kinematika","text":"L\u00e1sd az example-hybrid-corexy.cfg p\u00e9ld\u00e1t egy hibrid CoreXY kinematikai konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Ez a kinematika Markforged kinematikak\u00e9nt is ismert. Itt csak a hibrid CoreXY nyomtat\u00f3kra jellemz\u0151 param\u00e9tereket \u00edrjuk le, a rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: hybrid_corexy max_z_velocity: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis sebess\u00e9g\u00e9t (mm/sec-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a max_velocity haszn\u00e1lata a max_z_velocity \u00e9rt\u00e9khez. max_z_accel: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t (mm/sec^2-en). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a max_accel haszn\u00e1lata a max_z_accel \u00e9rt\u00e9khez. # A stepper_x szakasz az X tengely, valamint az X-Y mozg\u00e1st vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [l\u00e9pcs\u0151_x] # A stepper_y szakasz az Y tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [l\u00e9p\u00e9s_y] # A stepper_z szakasz a Z tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_z]","title":"Hybrid-CoreXY Kinematika"},{"location":"Config_Reference.html#hybrid-corexz-kinematika","text":"L\u00e1sd az example-hybrid-corexz.cfg p\u00e9ld\u00e1t egy hibrid CoreXZ kinematikai konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Ez a kinematika Markforged kinematikak\u00e9nt is ismert. Itt csak a hibrid CoreXY nyomtat\u00f3kra jellemz\u0151 param\u00e9tereket \u00edrjuk le, a rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. [printer] kinematics: hybrid_corexz max_z_velocity: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis sebess\u00e9g\u00e9t (mm/sec-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a max_velocity haszn\u00e1lata a max_z_velocity \u00e9rt\u00e9khez. max_z_accel: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t (mm/sec^2-en). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a max_accel haszn\u00e1lata a max_z_accel \u00e9rt\u00e9khez. # A stepper_x szakasz az X tengely, valamint az X-Z mozg\u00e1st vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [l\u00e9pcs\u0151_x] # A stepper_y szakasz az Y tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [l\u00e9p\u00e9s_y] # A stepper_z szakasz a Z tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_z]","title":"Hybrid-CoreXZ Kinematika"},{"location":"Config_Reference.html#polar-kinematika","text":"L\u00e1sd az example-polar.cfg egy p\u00e9lda a Polar kinematika konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1hoz. Itt csak a Polar nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. A POL\u00c1RIS KINEMATIKA M\u00c9G FOLYAMATBAN VAN. A 0, 0 poz\u00edci\u00f3 k\u00f6r\u00fcli mozg\u00e1sokr\u00f3l ismert, hogy nem m\u0171k\u00f6dnek megfelel\u0151en. [printer] kinematics: polar max_z_velocity: # Ez be\u00e1ll\u00edtja a maxim\u00e1lis mozg\u00e1si sebess\u00e9get (mm/sec-ben) a Z tengely # ment\u00e9n. Ezzel a be\u00e1ll\u00edt\u00e1ssal korl\u00e1tozhat\u00f3 a Z l\u00e9ptet\u0151motor maxim\u00e1lis # sebess\u00e9ge. Az alap\u00e9rtelmezett \u00e9rt\u00e9k a max_velocity haszn\u00e1lata a # max_z_velocity \u00e9rt\u00e9khez. max_z_accel: # Ez be\u00e1ll\u00edtja a Z tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s maxim\u00e1lis gyorsul\u00e1s\u00e1t # (mm/sec^2-en). Korl\u00e1tozza a Z l\u00e9ptet\u0151motor gyorsul\u00e1s\u00e1t. # Az alap\u00e9rtelmez\u00e9s szerint a max_accel \u00e9rt\u00e9ke a max_z_accel. # A stepper_bed szakasz a t\u00e1rgyasztalt vez\u00e9rl\u0151 stepper le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_bed] gear_ratio: # Meg kell adni a gear_ratio \u00e9rt\u00e9ket, \u00e9s a rotation_distance nem adhat\u00f3 # meg. P\u00e9ld\u00e1ul, ha a t\u00e1rgyasztal egy 80 fogas ker\u00e9kkel rendelkezik, amelyet # egy l\u00e9ptet\u0151motor hajt meg egy 16 fogas ker\u00e9kkel, akkor a \u201e80:16\u201d # \u00e1tt\u00e9teli ar\u00e1nyt kell megadni. Ezt a param\u00e9tert meg kell adni. # A stepper_arm szakasz a karon l\u00e9v\u0151 kocsit vez\u00e9rl\u0151 l\u00e9ptet\u0151 # le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_arm] # A stepper_z szakasz a Z tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 le\u00edr\u00e1s\u00e1ra szolg\u00e1l. [stepper_z]","title":"Polar Kinematika"},{"location":"Config_Reference.html#forgo-delta-kinematika","text":"L\u00e1sd az example-rotary-delta.cfg egy p\u00e9lda a forg\u00f3 delta kinematika konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1hoz. Itt csak a forg\u00f3 delta nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. A FORG\u00d3 DELTA KINEMATIKA M\u00c9G FOLYAMATBAN VAN. A c\u00e9lk\u00f6vet\u0151 mozg\u00e1sok id\u0151z\u00edtettek lehetnek, \u00e9s n\u00e9h\u00e1ny hat\u00e1rellen\u0151rz\u00e9s nincs implement\u00e1lva. [printer] kinematics: rotary_delta max_z_velocity: # Delta nyomtat\u00f3kn\u00e1l ez korl\u00e1tozza a Z tengely mozg\u00e1s\u00e1nak maxim\u00e1lis # sebess\u00e9g\u00e9t (mm/sec-ben). Ezzel a be\u00e1ll\u00edt\u00e1ssal cs\u00f6kkenthet\u0151 a fel/le # mozg\u00e1sok maxim\u00e1lis sebess\u00e9ge (amely nagyobb l\u00e9p\u00e9ssz\u00e1mot ig\u00e9nyel, # mint a deltanyomtat\u00f3k egy\u00e9b mozg\u00e1sai). Az alap\u00e9rtelmezett \u00e9rt\u00e9k a # max_velocity haszn\u00e1lata a max_z_velocity \u00e9rt\u00e9khez. #minimum_z_position: 0 # A minim\u00e1lis Z poz\u00edci\u00f3, amelybe a felhaszn\u00e1l\u00f3 utas\u00edthatja a fejet, hogy # mozduljon el. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. shoulder_radius: # A h\u00e1rom g\u00f6mbcsukl\u00f3 \u00e1ltal alkotott v\u00edzszintes k\u00f6r sugara (mm-ben), # m\u00ednusz az effektor csukl\u00f3k \u00e1ltal alkotott k\u00f6r sugara. Ez a param\u00e9ter a # k\u00f6vetkez\u0151k\u00e9ppen is kisz\u00e1m\u00edthat\u00f3: # shoulder_radius = (delta_f - delta_e) / sqrt(12) # Ezt a param\u00e9tert meg kell adni. shoulder_height: # A g\u00f6mbcsukl\u00f3k t\u00e1vols\u00e1ga (mm-ben) a t\u00e1rgyasztalt\u00f3l, m\u00ednusz az effektor # nyomtat\u00f3fej magass\u00e1ga. Ezt a param\u00e9tert meg kell adni. # A stepper_a szakasz a jobb h\u00e1ts\u00f3 kart vez\u00e9rl\u0151 l\u00e9ptet\u0151t \u00edrja le (30 fokban). # Ez a szakasz szab\u00e1lyozza az \u00f6sszes karhoz tartoz\u00f3 kezd\u0151pont felv\u00e9teli # param\u00e9tereket (homing_speed, homing_retract_dist). [stepper_a] gear_ratio: # Meg kell adni a gear_ratio \u00e9rt\u00e9ket, \u00e9s nem lehet megadni a rotation_distance # \u00e9rt\u00e9ket. P\u00e9ld\u00e1ul, ha a karban van egy 80 fog\u00fa ker\u00e9k, amelyet egy 16 fog\u00fa # ker\u00e9k hajt meg, \u00e9s amely egy 60 fog\u00fa sz\u00edjt\u00e1rcs\u00e1val van \u00f6sszek\u00f6tve, amelyet # egy 16 fog\u00fa fogasker\u00e9kkel ell\u00e1tott l\u00e9ptet\u0151motor hajt meg, akkor a \"80-as\" # \u00e1tt\u00e9teli ar\u00e1nyt kell megadni: 16, 60:16\". Ezt a param\u00e9tert meg kell adni. position_endstop: # T\u00e1vols\u00e1g (mm-ben) a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tt, ha a f\u00fav\u00f3ka az \u00e9p\u00edt\u00e9si ter\u00fclet # k\u00f6zep\u00e9n van, \u00e9s a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 kiold. Ezt a param\u00e9tert meg kell adni a # stepper_a; a stepper_b \u00e9s stepper_c eset\u00e9n ez a param\u00e9ter alap\u00e9rtelmezett # \u00e9rt\u00e9ke a stepper_a param\u00e9terben megadott \u00e9rt\u00e9k. upper_arm_length: # A \u201efels\u0151 g\u00f6mbcsukl\u00f3t\u201d az \u201eals\u00f3 g\u00f6mbcsukl\u00f3val\u201d \u00f6sszek\u00f6t\u0151 kar hossza (mm-ben). # Ezt a param\u00e9tert meg kell adni a stepper_a; a stepper_b \u00e9s stepper_c eset\u00e9n ez # a param\u00e9ter alap\u00e9rtelmezett \u00e9rt\u00e9ke a stepper_a param\u00e9terben megadott \u00e9rt\u00e9k. lower_arm_length: # A \u201efels\u0151 g\u00f6mbcsukl\u00f3\u201d az \u201eeffekt\u00edv csukl\u00f3val\u201d \u00f6sszek\u00f6t\u0151 kar hossza (mm-ben). # Ezt a param\u00e9tert meg kell adni a stepper_a; a stepper_b \u00e9s stepper_c eset\u00e9n # ez a param\u00e9ter alap\u00e9rtelmezett \u00e9rt\u00e9ke a stepper_a param\u00e9terben megadott \u00e9rt\u00e9k. #angle: # Ez az opci\u00f3 azt a sz\u00f6get adja meg (fokban), amelyben a kar \u00e1ll. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 30 a stepper_a, 150 a stepper_b \u00e9s 270 a stepper_c. # A stepper_b szakasz a bal h\u00e1ts\u00f3 kart vez\u00e9rl\u0151 l\u00e9ptet\u0151t \u00edrja le (150 fokban). [stepper_b] # A stepper_c szakasz az els\u0151 kart vez\u00e9rl\u0151 l\u00e9ptet\u0151t \u00edrja le (270 fokban). [stepper_c] # A delta_calibrate szakasz lehet\u0151v\u00e9 teszi a DELTA_CALIBRATE kiterjesztett G-k\u00f3d # parancsot, amely k\u00e9pes kalibr\u00e1lni a fels\u0151 g\u00f6mbcsukl\u00f3k v\u00e9g\u00e1ll\u00e1s poz\u00edci\u00f3it. [delta_calibrate] radius: # A vizsg\u00e1lhat\u00f3 ter\u00fclet sugara (mm-ben). Ez a vizsg\u00e1land\u00f3 f\u00fav\u00f3kakoordin\u00e1t\u00e1k # sugara; Ha X-Y eltol\u00e1s\u00fa automata szond\u00e1t haszn\u00e1l, akkor v\u00e1lasszon el\u00e9g kicsi # sugarat, hogy a szonda mindig a t\u00e1rgyasztal f\u00f6l\u00e9 f\u00e9rjen. Ezt a param\u00e9tert meg kell adni. #speed: 50 # A nem tapint\u00f3 mozg\u00e1s sebess\u00e9ge (mm/sec-ben) a kalibr\u00e1l\u00e1s sor\u00e1n. # Az alap\u00e9rtelmezett 50. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), ameddig a fejet utas\u00edtani kell, hogy mozduljon el # k\u00f6zvetlen\u00fcl a m\u00e9r\u0151m\u0171velet megkezd\u00e9se el\u0151tt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5.","title":"Forg\u00f3 delta Kinematika"},{"location":"Config_Reference.html#kabelcsorlos-kinematika","text":"L\u00e1sd az example-winch.cfg egy p\u00e9ld\u00e1t a k\u00e1belcs\u00f6rl\u0151s kinematika konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1hoz. Itt csak a k\u00e1belcs\u00f6rl\u0151s nyomtat\u00f3kra jellemz\u0151 param\u00e9terek ker\u00fclnek le\u00edr\u00e1sra. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd az \u00e1ltal\u00e1nos kinematikai be\u00e1ll\u00edt\u00e1sok pontban. A K\u00c1BELCS\u00d6RL\u0150 T\u00c1MOGAT\u00c1SA K\u00cdS\u00c9RLETI JELLEG\u0170. A helymeghat\u00e1roz\u00e1s nem val\u00f3sul meg a k\u00e1belcs\u00f6rl\u0151 kinematik\u00e1j\u00e1n. A nyomtat\u00f3 kezd\u0151pont felv\u00e9tel\u00e9hez manu\u00e1lisan k\u00fcldj\u00f6n mozgat\u00e1si parancsokat, am\u00edg a nyomtat\u00f3fej a 0, 0, 0, 0 ponton van, majd adj ki egy G28 parancsot. [printer] kinematics: winch (cs\u00f6rl\u0151s) # A stepper_a szakasz az els\u0151 k\u00e1belcs\u00f6rl\u0151h\u00f6z csatlakoztatott l\u00e9ptet\u0151t \u00edrja le. # Legal\u00e1bb 3 \u00e9s legfeljebb 26 k\u00e1belcs\u00f6rl\u0151 defini\u00e1lhat\u00f3 (stepper_a-t\u00f3l # stepper_z-ig), b\u00e1r \u00e1ltal\u00e1ban 4-et defini\u00e1lnak. [stepper_a] rotation_distance: # A rotation_distance az a n\u00e9vleges t\u00e1vols\u00e1g (mm-ben), amellyel a # nyomtat\u00f3fej elmozdul a k\u00e1belcs\u00f6rl\u0151 fel\u00e9 a l\u00e9ptet\u0151motor minden egyes # teljes fordulat\u00e1n\u00e1l. Ezt a param\u00e9tert meg kell adni. anchor_x: anchor_y: anchor_z: # A k\u00e1belcs\u00f6rl\u0151 X, Y \u00e9s Z helyzete der\u00e9ksz\u00f6g\u0171 t\u00e9rben. # Ezeket a param\u00e9tereket meg kell adni.","title":"K\u00e1belcs\u00f6rl\u0151s Kinematika"},{"location":"Config_Reference.html#nincs-kinematika","text":"Lehet\u0151s\u00e9g van egy speci\u00e1lis \"none\" kinematika defini\u00e1l\u00e1s\u00e1ra a Klipper kinematikai t\u00e1mogat\u00e1s\u00e1nak kikapcsol\u00e1s\u00e1hoz. Ez hasznos lehet olyan eszk\u00f6z\u00f6k vez\u00e9rl\u00e9s\u00e9hez, amelyek nem tipikus 3D nyomtat\u00f3k, vagy hibakeres\u00e9si c\u00e9lok. [printer] kinematics: none max_velocity: 1 max_accel: 1 # A max_velocity \u00e9s max_accel param\u00e9tereket meg kell hat\u00e1rozni. # Az \u00e9rt\u00e9keket nem haszn\u00e1ljuk a \"none\" kinematika eset\u00e9n.","title":"Nincs Kinematika"},{"location":"Config_Reference.html#kozos-extruder-es-futott-targyasztal-tamogatas","text":"","title":"K\u00f6z\u00f6s extruder \u00e9s f\u0171t\u00f6tt t\u00e1rgyasztal t\u00e1mogat\u00e1s"},{"location":"Config_Reference.html#extruder","text":"Az extruder szakasz a f\u00fav\u00f3ka f\u0171t\u0151berendez\u00e9s param\u00e9tereinek le\u00edr\u00e1s\u00e1ra szolg\u00e1l, az extruder vez\u00e9rl\u00e9s\u00e9t v\u00e9gz\u0151 l\u00e9ptet\u0151vel egy\u00fctt. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1s c\u00edm\u0171 r\u00e9szt. A nyom\u00e1s el\u0151tol\u00e1s hangol\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a nyom\u00e1s el\u0151tol\u00e1si \u00fatmutat\u00f3t . [extruder] step_pin: dir_pin: enable_pin: microsteps: rotation_distance: #full_steps_per_rotation: #gear_ratio: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"l\u00e9ptet\u0151\" r\u00e9szben. Ha a fenti param\u00e9terek # egyike sincs megadva, akkor nem lesz l\u00e9ptet\u0151motor t\u00e1rs\u00edtva a nyomtat\u00f3fejhez # (b\u00e1r a SYNC_EXTRUDER_MOTION parancs fut\u00e1s k\u00f6zben t\u00e1rs\u00edthat egyet). nozzle_diameter: # A f\u00fav\u00f3ka ny\u00edl\u00e1s\u00e1nak \u00e1tm\u00e9r\u0151je (mm-ben). Ezt a param\u00e9tert meg kell adni. filament_diameter: # A nyers sz\u00e1l n\u00e9vleges \u00e1tm\u00e9r\u0151je (mm-ben), amikor az extruderbe ker\u00fcl. # Ezt a param\u00e9tert meg kell adni. #max_extrude_cross_section: # Az extrud\u00e1l\u00e1si keresztmetszet maxim\u00e1lis ter\u00fclete (mm^2-ben) (pl. az # extrud\u00e1l\u00e1si sz\u00e9less\u00e9g szorozva a r\u00e9teg magass\u00e1g\u00e1val). Ez a be\u00e1ll\u00edt\u00e1s # megakad\u00e1lyozza a t\u00falzott m\u00e9rt\u00e9k\u0171 extrud\u00e1l\u00e1st viszonylag kis XY mozg\u00e1sok # sor\u00e1n. Ha egy \u00e1thelyez\u00e9s olyan kih\u00faz\u00e1si sebess\u00e9get k\u00e9r, amely meghaladja # ezt az \u00e9rt\u00e9ket, akkor hiba\u00fczenet jelenik meg. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k: 4.0 * nozzle_diameter^2 #instantaneous_corner_velocity: 1.000 # Az extruder maxim\u00e1lis pillanatnyi sebess\u00e9gv\u00e1ltoz\u00e1sa (mm/sec-ben) # k\u00e9t mozg\u00e1s tal\u00e1lkoz\u00e1s\u00e1n\u00e1l. Az alap\u00e9rtelmezett 1 mm/sec. #max_extrude_only_distance: 50.0 # Maxim\u00e1lis hossza (a nyers nyomtat\u00f3sz\u00e1lnak mm-ben), amely egy # visszah\u00faz\u00e1s vagy csak extrud\u00e1l\u00e1s eset\u00e9n lehets\u00e9ges. Ha egy visszah\u00faz\u00e1s # vagy csak extrud\u00e1l\u00e1si mozg\u00e1s enn\u00e9l az \u00e9rt\u00e9kn\u00e9l nagyobb t\u00e1vols\u00e1got k\u00e9r, # hiba\u00fczenetet ad vissza. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50 mm. #max_extrude_only_velocity: #max_extrude_only_accel: # Az extrudermotor maxim\u00e1lis sebess\u00e9ge (mm/sec-ben) \u00e9s gyorsul\u00e1sa # (mm/sec^2-en) a visszah\u00faz\u00e1sokhoz \u00e9s a csak extrud\u00e1lt mozg\u00e1sokhoz. # Ezek a be\u00e1ll\u00edt\u00e1sok nincsenek hat\u00e1ssal a norm\u00e1l nyomtat\u00e1si sebess\u00e9gekre. # Ha nincs megadva, akkor a sz\u00e1m\u00edt\u00e1sok megfelelnek a 4.0*nozzle_diameter^2 # keresztmetszet\u0171 XY nyomtat\u00e1si mozg\u00e1s hat\u00e1r\u00e1nak. #pressure_advance: 0.0 # Az extruder gyors\u00edt\u00e1sa sor\u00e1n a nyomtat\u00f3fejbe nyomand\u00f3 nyers sz\u00e1l # mennyis\u00e9ge. A lass\u00edt\u00e1s sor\u00e1n azonos mennyis\u00e9g\u0171 izz\u00f3sz\u00e1l h\u00faz\u00f3dik vissza. # M\u00e9rete millim\u00e9ter per millim\u00e9ter/m\u00e1sodperc. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, ami letiltja a nyom\u00e1sn\u00f6vel\u00e9st. #pressure_advance_smooth_time: 0.040 # Id\u0151tartom\u00e1ny (m\u00e1sodpercben), amelyet az extruder \u00e1tlagos sebess\u00e9g\u00e9nek # kisz\u00e1m\u00edt\u00e1s\u00e1hoz haszn\u00e1lnak a nyom\u00e1s el\u0151tol\u00e1shoz. A nagyobb \u00e9rt\u00e9k sim\u00e1bb # extrudermozg\u00e1sokat eredm\u00e9nyez. Ez a param\u00e9ter nem haladhatja meg a # 200 ezredm\u00e1sodpercet. Ez a be\u00e1ll\u00edt\u00e1s csak akkor \u00e9rv\u00e9nyes, ha a # pressure_advance \u00e9rt\u00e9ke nem nulla. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,040 (40 ezredm\u00e1sodperc). # # A fennmarad\u00f3 v\u00e1ltoz\u00f3k az extruder f\u0171t\u00e9s\u00e9t \u00edrj\u00e1k le. heater_pin: # PWM kimeneti \u00e9rintkez\u0151, amely a f\u0171t\u00e9st vez\u00e9rli. # Ezt a param\u00e9tert meg kell adni. #max_power: 1.0 # Az a maxim\u00e1lis teljes\u00edtm\u00e9ny (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), amelyre a # heater_pin be\u00e1ll\u00edthat\u00f3. Az 1,0 \u00e9rt\u00e9k lehet\u0151v\u00e9 teszi, hogy a t\u0171t hosszabb ideig # teljesen enged\u00e9lyezettre lehessen \u00e1ll\u00edtani, m\u00edg a 0,5 \u00e9rt\u00e9k legfeljebb a fele # ideig enged\u00e9lyezi a t\u0171t. Ezzel a be\u00e1ll\u00edt\u00e1ssal korl\u00e1tozhat\u00f3 a f\u0171t\u0151k\u00e9sz\u00fcl\u00e9k teljes # kimen\u0151 teljes\u00edtm\u00e9nye (hosszabb ideig). Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0. sensor_type: # \u00c9rz\u00e9kel\u0151 t\u00edpusa. \u00c1ltal\u00e1nos termisztorok: \u201eEPCOS 100K B57560G104F\u201d, # \u201eATC Semitec 104GT-2\u201d, \u201eATC Semitec 104NT-4-R025H42G\u201d, \u201eGeneric 3950\u201d, # \u201eHoneywell 100K 135-JGBC10K135-1010LAG18 -104F39050L32\", # \"SliceEngineering 450\" \u00e9s \"TDK NTCG104LH104JT1\". Tov\u00e1bbi \u00e9rz\u00e9kel\u0151k\u00e9rt # l\u00e1sd a \"H\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k\" r\u00e9szt. Ezt a param\u00e9tert meg kell adni. sensor_pin: # Anal\u00f3g bemeneti \u00e9rintkez\u0151 csatlakozik az \u00e9rz\u00e9kel\u0151h\u00f6z. # Ezt a param\u00e9tert meg kell adni. #pullup_resistor: 4700 # A termisztorhoz csatlakoztatott felh\u00faz\u00f3 ellen\u00e1ll\u00e1sa (ohmban). # Ez a param\u00e9ter csak akkor \u00e9rv\u00e9nyes, ha az \u00e9rz\u00e9kel\u0151 termisztor. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 4700 ohm. #smooth_time: 1.0 # Egy id\u0151\u00e9rt\u00e9k (m\u00e1sodpercben), amely alatt a h\u0151m\u00e9rs\u00e9kletm\u00e9r\u00e9s sim\u00edt\u00e1sra ker\u00fcl # a m\u00e9r\u00e9si zaj hat\u00e1s\u00e1nak cs\u00f6kkent\u00e9se \u00e9rdek\u00e9ben. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1 m\u00e1sodperc. control: # Vez\u00e9rl\u00e9si algoritmus (pid vagy watermark). Ezt a param\u00e9tert meg kell adni. pid_Kp: pid_Ki: pid_Kd: # Az ar\u00e1nyos (pid_Kp), az integr\u00e1l (pid_Ki) \u00e9s a deriv\u00e1lt (pid_Kd) be\u00e1ll\u00edt\u00e1sai a PID # visszacsatol\u00e1s vez\u00e9rl\u0151 rendszerhez. A Klipper a PID be\u00e1ll\u00edt\u00e1sokat a k\u00f6vetkez\u0151 # \u00e1ltal\u00e1nos k\u00e9plettel \u00e9rt\u00e9keli ki: heater_pwm = (Kp*error+ Ki*integral(error) vagy # Kd*derivative(error)) / 255 Ahol az \u201eerror\u201d a \u201erequested_temperature \u00e9s # measured_temperature\u201d \u00e9s a \u201eheater_pwm\u201d a k\u00e9rt f\u0171t\u00e9si sebess\u00e9g 0,0 teljes # kikapcsolt \u00e9s 1,0 teljes bekapcsolva. Fontold meg a PID_CALIBRATE parancs # haszn\u00e1lat\u00e1t a param\u00e9terek lek\u00e9r\u00e9s\u00e9hez. A pid_Kp, pid_Ki \u00e9s pid_Kd # param\u00e9tereket meg kell adni a PID f\u0171t\u0151berendez\u00e9sekhez. #max_delta: 2.0 # A \u201ewatermark\u201d vez\u00e9rl\u00e9s\u0171 f\u0171t\u0151berendez\u00e9seken ez a f\u0171t\u0151elem kikapcsol\u00e1sa # el\u0151tti c\u00e9lh\u0151m\u00e9rs\u00e9klet feletti Celsius-fokkal, valamint a f\u0171t\u0151elem \u00fajb\u00f3li # bekapcsol\u00e1sa el\u0151tti c\u00e9lh\u0151m\u00e9rs\u00e9klet alatti fokok sz\u00e1ma. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 2 Celsius-fok. #pwm_cycle_time: 0.100 # Id\u0151 m\u00e1sodpercben a f\u0171t\u0151elem minden szoftveres PWM-ciklus\u00e1hoz. # Nem aj\u00e1nlott ezt be\u00e1ll\u00edtani, hacsak nincs elektromos k\u00f6vetelm\u00e9ny # a f\u0171t\u0151elem m\u00e1sodpercenk\u00e9nti 10-n\u00e9l gyorsabb kapcsol\u00e1s\u00e1ra. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,100 m\u00e1sodperc. #min_extrude_temp: 170 # Az a minim\u00e1lis h\u0151m\u00e9rs\u00e9klet (Celsiusban), amelyen az extruder mozgat\u00e1si # parancsai kiadhat\u00f3k. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 170 Celsius. min_temp: max_temp: # Az \u00e9rv\u00e9nyes h\u0151m\u00e9rs\u00e9kletek maxim\u00e1lis tartom\u00e1nya (Celsiusban), amelyen # bel\u00fcl a f\u0171t\u0151elemnek maradnia kell. Ez egy, a mikrovez\u00e9rl\u0151 k\u00f3dj\u00e1ban # be\u00e9p\u00edtett biztons\u00e1gi funkci\u00f3t vez\u00e9rel. Ha a m\u00e9rt h\u0151m\u00e9rs\u00e9klet ezen a # tartom\u00e1nyon k\u00edv\u00fcl esik, akkor a mikrovez\u00e9rl\u0151 le\u00e1ll\u00e1si \u00e1llapotba ker\u00fcl. # Ez az ellen\u0151rz\u00e9s seg\u00edthet bizonyos f\u0171t\u0151 \u00e9s \u00e9rz\u00e9kel\u0151 hardverhib\u00e1k \u00e9szlel\u00e9s\u00e9ben. # \u00c1ll\u00edtsd be ezt a tartom\u00e1nyt el\u00e9g sz\u00e9lesre, hogy a norm\u00e1lis h\u0151m\u00e9rs\u00e9klet ne # okozzon hib\u00e1t. Ezeket a param\u00e9tereket meg kell adni.","title":"[extruder]"},{"location":"Config_Reference.html#heater_bed","text":"A heater_bed szakasz egy f\u0171t\u00f6tt t\u00e1rgyasztalt \u00edr le. Ugyanazokat a f\u0171t\u00e9si be\u00e1ll\u00edt\u00e1sokat haszn\u00e1lja, amelyeket az \"extruder\" szakaszban le\u00edrtunk. [heater_bed] heater_pin: sensor_type: sensor_pin: control: min_temp: max_temp: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"extruder\" szakaszban.","title":"[heater_bed]"},{"location":"Config_Reference.html#targyasztal-szint-tamogatas","text":"","title":"T\u00e1rgyasztal szint t\u00e1mogat\u00e1s"},{"location":"Config_Reference.html#bed_mesh","text":"T\u00e1rgyasztal H\u00e1l\u00f3 Kiegyenl\u00edt\u00e9s. Defini\u00e1lhatunk egy bed_mesh konfigur\u00e1ci\u00f3s szakaszt, hogy enged\u00e9lyezz\u00fck a Z tengelyt eltol\u00f3 mozgat\u00e1si transzform\u00e1ci\u00f3kat a m\u00e9rt pontokb\u00f3l gener\u00e1lt h\u00e1l\u00f3 alapj\u00e1n. Ha szond\u00e1t haszn\u00e1lunk a Z-tengely alaphelyzetbe \u00e1ll\u00edt\u00e1s\u00e1ra, aj\u00e1nlott a printer.cfg f\u00e1jlban egy safe_z_home szakaszt defini\u00e1lni a nyomtat\u00e1si ter\u00fclet k\u00f6zep\u00e9re t\u00f6rt\u00e9n\u0151 alaphelyzetbe \u00e1ll\u00edt\u00e1shoz. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd az t\u00e1rgyasztal h\u00e1l\u00f3 \u00fatmutat\u00f3 \u00e9s a parancsreferencia dokumentumokat. Vizu\u00e1lis p\u00e9ld\u00e1k: t\u00e9glalap alak\u00fa t\u00e1rgyasztal, probe_count = 3, 3: x---x---x (max_point) | x---x---x | (min_point) x---x---x kerek t\u00e1rgyasztal, round_probe_count = 5, bed_radius = r: x (0, r) end / x---x---x \\ (-r, 0) x---x---x---x---x (r, 0) \\ x---x---x / x (0, -r) start [bed_mesh] #speed: 50 # A kalibr\u00e1l\u00e1s sor\u00e1n a nem pr\u00f3bamozg\u00e1sok sebess\u00e9ge (mm/sec-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), amelyre a fejnek parancsot kell adni a # mozg\u00e1sra k\u00f6zvetlen\u00fcl a szondam\u0171velet megkezd\u00e9se el\u0151tt. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #mesh_radius: # Meghat\u00e1rozza a h\u00e1l\u00f3 sugar\u00e1t a kerek t\u00e1rgyasztalokhoz. Ne feledd, hogy a # sug\u00e1r a mesh_origin param\u00e9ter \u00e1ltal megadott koordin\u00e1t\u00e1hoz # viszony\u00edtott. Ezt a param\u00e9tert a kerek t\u00e1rgyasztalokn\u00e1l meg kell adni, # a t\u00e9glalap alak\u00fa t\u00e1rgyasztalokn\u00e1l pedig ki kell hagyni. # mesh_origin # Az opci\u00f3 \u00e1ltal meghat\u00e1rozott koordin\u00e1ta. # Ezt a param\u00e9tert kerek t\u00e1rgyasztalok eset\u00e9ben meg kell adni. # De elhagyhat\u00f3 a t\u00e9glalap alak\u00fa t\u00e1rgyasztalok eset\u00e9ben. #mesh_origin: # Meghat\u00e1rozza a h\u00e1l\u00f3 k\u00f6z\u00e9ppontj\u00e1nak X, Y koordin\u00e1t\u00e1j\u00e1t kerek t\u00e1rgyasztalok # eset\u00e9n. Ez a koordin\u00e1ta a szonda hely\u00e9hez k\u00e9pest relat\u00edv. Hasznos # lehet a mesh_origin be\u00e1ll\u00edt\u00e1sa, hogy maximaliz\u00e1ljuk a h\u00e1l\u00f3 m\u00e9ret\u00e9t. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, 0. Ezt a param\u00e9tert el kell hagyni # t\u00e9glalap alak\u00fa t\u00e1rgyasztalok eset\u00e9n. #mesh_min: # Meghat\u00e1rozza a h\u00e1l\u00f3 minim\u00e1lis X, Y koordin\u00e1t\u00e1j\u00e1t t\u00e9glalap alak\u00fa # t\u00e1rgyasztalok eset\u00e9n. Ez a koordin\u00e1ta a szonda hely\u00e9hez k\u00e9pest relat\u00edv. # Ez lesz az els\u0151 szond\u00e1zott pont, amely a legk\u00f6zelebb van az orig\u00f3hoz. # Ezt a param\u00e9tert t\u00e9glalap alak\u00fa t\u00e1rgyasztalok eset\u00e9n meg kell adni. #mesh_max: # Meghat\u00e1rozza a h\u00e1l\u00f3 maxim\u00e1lis X, Y koordin\u00e1t\u00e1j\u00e1t t\u00e9glalap alak\u00fa # t\u00e1rgyasztalok eset\u00e9n. Ugyanazon az elven m\u0171k\u00f6dik, mint a mesh_min, # azonban ez a param\u00e9ter a legt\u00e1volabbi pont lesz, amelyet a t\u00e1rgyasztal # orig\u00f3j\u00e1t\u00f3l vizsg\u00e1lunk. Ezt a param\u00e9tert t\u00e9glalap alak\u00fa t\u00e1rgyasztalok # eset\u00e9n meg kell adni. #probe_count: 3, 3 # T\u00e9glalap alak\u00fa t\u00e1rgyasztalok eset\u00e9n ez egy vessz\u0151vel elv\u00e1lasztott eg\u00e9sz # sz\u00e1mp\u00e1r. X, Y \u00e9rt\u00e9kek, amelyek meghat\u00e1rozz\u00e1k a m\u00e9rni k\u00edv\u00e1nt # pontok sz\u00e1m\u00e1t az egyes tengelyek ment\u00e9n. Egyetlen \u00e9rt\u00e9k is # \u00e9rv\u00e9nyes, ebben az esetben ez az \u00e9rt\u00e9k mindk\u00e9t tengelyre vonatkozik. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 3, 3. #round_probe_count: 5 # A kerek t\u00e1rgyasztalok eset\u00e9ben ez az eg\u00e9sz \u00e9rt\u00e9k hat\u00e1rozza meg a # maxim\u00e1lis sz\u00e1m\u00fa pontok sz\u00e1m\u00e1t, amelyeket minden tengely ment\u00e9n # meg kell vizsg\u00e1lni. Ennek az \u00e9rt\u00e9knek p\u00e1ratlan sz\u00e1mnak kell lennie. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #fade_start: 1.0 # A G-k\u00f3d Z poz\u00edci\u00f3ja, ahol a Z-korrekci\u00f3 fokozatos megsz\u00fcntet\u00e9se # elkezd\u0151dik amikor a fade enged\u00e9lyezve van. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0. #fade_end: 0.0 # A G-k\u00f3d Z poz\u00edci\u00f3ja, amelyben a fading out befejez\u0151dik. Ha be van # \u00e1ll\u00edtva egy fade_start alatti \u00e9rt\u00e9kre a fade ki van kapcsolva. # Meg kell jegyezni, hogy a fade nem k\u00edv\u00e1nt sk\u00e1l\u00e1z\u00e1st adhat a # nyomtat\u00e1s Z tengelye ment\u00e9n. Ha egy felhaszn\u00e1l\u00f3 enged\u00e9lyezni # k\u00edv\u00e1nja a fade-et, a 10.0 \u00e9rt\u00e9k aj\u00e1nlott. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0.0, amely kikapcsolja a fade-et. #fade_target: # A Z poz\u00edci\u00f3, amelyben a fade-nek konverg\u00e1lnia kell. Ha ez az \u00e9rt\u00e9k # nem nulla \u00e9rt\u00e9kre van be\u00e1ll\u00edtva, akkor annak a Z-\u00e9rt\u00e9kek tartom\u00e1ny\u00e1n # bel\u00fcl kell lennie a h\u00e1l\u00f3ban. Azok a felhaszn\u00e1l\u00f3k, akik a Z kezd\u0151ponthoz # k\u00edv\u00e1nnak konverg\u00e1lni, 0-ra kell \u00e1ll\u00edtaniuk. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a h\u00e1l\u00f3 \u00e1tlagos Z \u00e9rt\u00e9ke. #split_delta_z: .025 # A Z k\u00fcl\u00f6nbs\u00e9g m\u00e9rt\u00e9ke (mm-ben) a mozg\u00e1s ment\u00e9n, amely kiv\u00e1lt # egy oszt\u00e1st. Az alap\u00e9rtelmezett \u00e9rt\u00e9k .025. #move_check_distance: 5.0 # A t\u00e1vols\u00e1g (mm-ben) a mozg\u00e1s ment\u00e9n, amelyn\u00e9l a split_delta_z-t # ellen\u0151rizni kell. Ez egyben a minim\u00e1lis hossz, ameddig egy mozg\u00e1st # fel lehet osztani. Alap\u00e9rtelmezett \u00e9rt\u00e9k 5.0. #mesh_pps: 2, 2 # Egy vessz\u0151vel elv\u00e1lasztott eg\u00e9sz sz\u00e1mp\u00e1r X, Y, amely meghat\u00e1rozza a # k\u00f6vetkez\u0151 pontok sz\u00e1m\u00e1t szegmensenk\u00e9nt, amelyeket interpol\u00e1lni kell # a h\u00e1l\u00f3ban az egyes tengelyek ment\u00e9n. A \"szegmens\" \u00fagy defini\u00e1lhat\u00f3, # mint az egyes m\u00e9rt pontok k\u00f6z\u00f6tti t\u00e9r. A felhaszn\u00e1l\u00f3 egyetlen \u00e9rt\u00e9ket # adhat meg, amely mindk\u00e9t tengelyre vonatkozik. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 2, 2. #algoritmus: lagrange # Az alkalmazand\u00f3 interpol\u00e1ci\u00f3s algoritmus. Lehet ak\u00e1r \"lagrange\" vagy # \"bicubic\". Ez az opci\u00f3 nem \u00e9rinti a 3x3-as r\u00e1csokat, amelyek k\u00e9nyszer\u00edtett # lagrange mintav\u00e9telt haszn\u00e1lnak. Az alap\u00e9rtelmezett lagrange. #bicubic_tension: .2 # A bikubik algoritmus haszn\u00e1latakor a fenti fesz\u00fclts\u00e9g param\u00e9ter # alkalmazhat\u00f3 az interpol\u00e1lt meredeks\u00e9g m\u00e9rt\u00e9k\u00e9nek megv\u00e1ltoztat\u00e1s\u00e1ra. # Nagyobb sz\u00e1mok n\u00f6velik a meredeks\u00e9g m\u00e9rt\u00e9k\u00e9t, ami nagyobb # g\u00f6rb\u00fcletet eredm\u00e9nyez a h\u00e1l\u00f3ban. Az alap\u00e9rtelmezett \u00e9rt\u00e9k .2. #relative_reference_index: # Egy pontindex a h\u00e1l\u00f3ban, amelyre minden Z \u00e9rt\u00e9ket hivatkozni kell. # Az enged\u00e9lyez\u00e9se ennek a param\u00e9ternek a bekapcsol\u00e1sa a vizsg\u00e1lt # Z poz\u00edci\u00f3hoz viszony\u00edtott h\u00e1l\u00f3t eredm\u00e9nyez a megadott indexhez k\u00e9pest. #faulty_region_1_min: #faulty_region_1_max: # A hib\u00e1s r\u00e9gi\u00f3t meghat\u00e1roz\u00f3 opcion\u00e1lis pontok. L\u00e1sd docs/Bed_Mesh.md # A hib\u00e1s r\u00e9gi\u00f3kkal kapcsolatos r\u00e9szletek\u00e9rt. Legfeljebb 99 hib\u00e1s r\u00e9gi\u00f3 # adhat\u00f3 hozz\u00e1. Alap\u00e9rtelmez\u00e9s szerint nincsenek hib\u00e1s r\u00e9gi\u00f3k be\u00e1ll\u00edtva.","title":"[bed_mesh]"},{"location":"Config_Reference.html#bed_tilt","text":"T\u00e1rgyasztal d\u0151l\u00e9s kompenz\u00e1ci\u00f3. Defini\u00e1lhatunk egy bed_tilt config szekci\u00f3t, hogy lehet\u0151v\u00e9 tegy\u00fck a ferde t\u00e1rgyasztalt figyelembe vev\u0151 mozg\u00e1stranszform\u00e1ci\u00f3kat. Vedd figyelembe, hogy a bed_mesh \u00e9s a bed_tilt nem kompatibilisek. Mindkett\u0151 nem defini\u00e1lhat\u00f3. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancsreferencia dokumentumot. [bed_tilt] #x_adjust: 0 # Az az \u00e9rt\u00e9k, amit hozz\u00e1 kell adni az egyes mozg\u00e1sok Z # magass\u00e1g\u00e1hoz az X tengely minden mm-\u00e9n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #y_adjust: 0 # Az az \u00e9rt\u00e9k, amit hozz\u00e1 kell adni az egyes mozg\u00e1sok Z # magass\u00e1g\u00e1hoz az Y tengely minden mm-\u00e9n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #z_adjust: 0 # A Z magass\u00e1ghoz hozz\u00e1adand\u00f3 \u00e9rt\u00e9k, amikor a f\u00fav\u00f3ka n\u00e9vlegesen 0, 0. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. # A t\u00f6bbi param\u00e9ter egy BED_TILT_CALIBRATE kiterjesztett G-k\u00f3d # parancsot vez\u00e9rel, amely a megfelel\u0151 X \u00e9s Y be\u00e1ll\u00edt\u00e1si param\u00e9terek # kalibr\u00e1l\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. #points: # Az X, Y koordin\u00e1t\u00e1k list\u00e1ja (soronk\u00e9nt egy a k\u00f6vetkez\u0151 sorokat beh\u00fazva), # amelyeket a BED_TILT_CALIBRATE parancs sor\u00e1n meg kell vizsg\u00e1lni. # Add meg a f\u00fav\u00f3ka koordin\u00e1t\u00e1it, \u00e9s gy\u0151z\u0151dj meg arr\u00f3l, hogy a szonda # a t\u00e1rgyasztal felett van a megadott f\u00fav\u00f3kakoordin\u00e1t\u00e1kon. # Az alap\u00e9rtelmezett az, hogy nem enged\u00e9lyezi a parancsot. #speed: 50 # A nem szond\u00e1z\u00e1s sebess\u00e9ge (mm/sec-ben) mozog a kalibr\u00e1l\u00e1s sor\u00e1n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), ameddig a fejnek el kell mozdulnia # k\u00f6zvetlen\u00fcl a szondam\u0171velet megkezd\u00e9se el\u0151tt. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5.","title":"[bed_tilt]"},{"location":"Config_Reference.html#bed_screws","text":"Szersz\u00e1m a t\u00e1rgyasztal szintbe\u00e1ll\u00edt\u00f3 csavarok be\u00e1ll\u00edt\u00e1s\u00e1hoz. Meghat\u00e1rozhat\u00f3 egy [bed_screws] config szakasz a BED_SCREWS_ADJUST G-k\u00f3d parancs enged\u00e9lyez\u00e9s\u00e9hez. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a szintez\u00e9si \u00fatmutat\u00f3 \u00e9s a parancs hivatkoz\u00e1s dokumentumot. [bed_screws] #screw1: # Az els\u0151 t\u00e1rgyasztal kiegyenl\u00edt\u0151 csavar X, Y koordin\u00e1t\u00e1ja. Ez egy # olyan poz\u00edci\u00f3, ahov\u00e1 a f\u00fav\u00f3k\u00e1t kell ir\u00e1ny\u00edtani, mely k\u00f6zvetlen\u00fcl a t\u00e1rgyasztal felett van # (vagy a lehet\u0151 legk\u00f6zelebb, de m\u00e9g mindig a t\u00e1rgyasztal felett). # Ezt a param\u00e9tert meg kell adni. #screw1_name: # Az adott csavar tetsz\u0151leges neve. Ez a n\u00e9v jelenik meg, amikor a seg\u00e9dszkript fut. # Az alap\u00e9rtelmez\u00e9s szerint a n\u00e9v alapja a csavar XY helye. #screw1_fine_adjust: # Egy X, Y koordin\u00e1ta, amelyre a f\u00fav\u00f3k\u00e1t ir\u00e1ny\u00edtani # kell, hogy finom\u00edtani lehessen a t\u00e1rgyasztal szintez\u0151 csavart. # Az alap\u00e9rtelmez\u00e9s szerint a finombe\u00e1ll\u00edt\u00e1s nem t\u00f6rt\u00e9nik meg a t\u00e1rgyasztal csavarj\u00e1n. #screw2: #screw2_name: #screw2_fine_adjust: #... # Tov\u00e1bbi t\u00e1rgyasztal szint\u00e1ll\u00edt\u00f3 csavarok. Legal\u00e1bb h\u00e1rom csavarnak kell lennie. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), ahov\u00e1 a fejnek parancsot kell adni a mozg\u00e1sra amikor az egyik # csavar hely\u00e9r\u0151l a m\u00e1sikra mozog. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #probe_height: 0 # A szonda magass\u00e1ga (mm-ben) a h\u0151fokszab\u00e1lyoz\u00e1s ut\u00e1n. # A t\u00e1rgyasztal \u00e9s a f\u00fav\u00f3ka h\u0151t\u00e1gul\u00e1sa ut\u00e1n. Az alap\u00e9rtelmezett \u00e9rt\u00e9k nulla. #speed: 50 # A kalibr\u00e1l\u00e1s sor\u00e1n a nem m\u00e9r\u00e9si mozg\u00e1sok sebess\u00e9ge (mm/sec-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #probe_speed: 5 # A sebess\u00e9g (mm/sec-ben) a horizont\u00e1lis_move_z poz\u00edci\u00f3b\u00f3l t\u00f6rt\u00e9n\u0151 mozg\u00e1skor. # A probe_height poz\u00edci\u00f3ja. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5.","title":"[bed_screws]"},{"location":"Config_Reference.html#screws_tilt_adjust","text":"Eszk\u00f6z a t\u00e1rgyasztal csavarok d\u0151l\u00e9ssz\u00f6g\u00e9nek be\u00e1ll\u00edt\u00e1s\u00e1hoz Z-szond\u00e1val. Meghat\u00e1rozhat\u00f3 egy screws_tilt_adjust konfigur\u00e1ci\u00f3s szakasz a SCREWS_TILT_CALCULATE G-k\u00f3d parancsal. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a szintez\u00e9si \u00fatmutat\u00f3 \u00e9s a parancs hivatkoz\u00e1s dokumentumot. [screws_tilt_adjust] #screw1: # Az els\u0151 t\u00e1rgyasztal kiegyenl\u00edt\u0151 csavar (X, Y) koordin\u00e1t\u00e1ja. Ez a helyzet a f\u00fav\u00f3ka # utas\u00edt\u00e1s\u00e1hoz \u00fagy, hogy a szonda k\u00f6zvetlen\u00fcl a t\u00e1rgyasztal csavar felett # legyen (vagy a lehet\u0151 legk\u00f6zelebb, mik\u00f6zben tov\u00e1bbra is a t\u00e1rgyasztal felett # van). Ez a sz\u00e1m\u00edt\u00e1sokn\u00e1l haszn\u00e1lt alapcsavar. # Ezt a param\u00e9tert meg kell adni. #screw1_name: # Az adott csavar tetsz\u0151leges neve. Ez a n\u00e9v jelenik meg a seg\u00e9dszkript # futtat\u00e1sakor. Az alap\u00e9rtelmez\u00e9s szerint a n\u00e9v a a csavar X-Y # hely\u00e9re \u00e9p\u00fcl. #screw2: #screw2_name: #... # Tov\u00e1bbi t\u00e1rgyasztal kiegyenl\u00edt\u0151 csavarok. # Legal\u00e1bb k\u00e9t csavart kell meghat\u00e1rozott. #speed: 50 # A kalibr\u00e1l\u00e1s sor\u00e1n a nem m\u00e9r\u0151 mozg\u00e1sok sebess\u00e9ge (mm/sec-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #horizontal_move_z: 5 # A magass\u00e1g (mm-ben), ahov\u00e1 a fejnek el kell mozdulnia. # K\u00f6zvetlen\u00fcl a szondam\u0171velet megkezd\u00e9se el\u0151tt. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #screw_thread: CW-M3 # A t\u00e1rgyasztal szintj\u00e9hez haszn\u00e1lt csavar t\u00edpusa, M3, M4 vagy M5, valamint a # t\u00e1rgyasztal szintbe\u00e1ll\u00edt\u00e1s\u00e1hoz haszn\u00e1lt gomb ir\u00e1nya, az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val # megegyez\u0151 ir\u00e1ny\u00fa cs\u00f6kken\u00e9s az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1ny\u00fa # cs\u00f6kken\u00e9s. Elfogadott \u00e9rt\u00e9kek: CW-M3, CCW-M3, CW-M4, CCW-M4, # CW-M5, CCW-M5. Az alap\u00e9rtelmezett \u00e9rt\u00e9k CW-M3, a legt\u00f6bb nyomtat\u00f3 # M3-as csavart \u00e9s a gombot az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val megegyez\u0151 ir\u00e1nyba # forgatva cs\u00f6kken a t\u00e1vols\u00e1g.","title":"[screws_tilt_adjust]"},{"location":"Config_Reference.html#z_tilt","text":"T\u00f6bbsz\u00f6r\u00f6s Z l\u00e9ptet\u0151 d\u0151l\u00e9ssz\u00f6g be\u00e1ll\u00edt\u00e1sa. Ez a funkci\u00f3 lehet\u0151v\u00e9 teszi t\u00f6bb Z l\u00e9ptet\u0151 f\u00fcggetlen be\u00e1ll\u00edt\u00e1s\u00e1t (l\u00e1sd a \"stepper_z1\" szakaszt) a d\u0151l\u00e9s be\u00e1ll\u00edt\u00e1s\u00e1hoz. Ha ez a szakasz jelen van, akkor el\u00e9rhet\u0151v\u00e9 v\u00e1lik a Z_TILT_ADJUST kiterjesztett G-k\u00f3d parancs . [z_tilt] #z_positions: # Az X, Y koordin\u00e1t\u00e1k list\u00e1ja (soronk\u00e9nt egy a k\u00f6vetkez\u0151 sorokat beh\u00fazva), # amelyek le\u00edrj\u00e1k az egyes t\u00e1rgyasztalok \"forg\u00e1spontjainak\" hely\u00e9t. # A \"forg\u00e1spont\" az a pont, ahol a t\u00e1rgyasztal az adott Z l\u00e9ptet\u0151h\u00f6z # kapcsol\u00f3dik. Ezt a f\u00fav\u00f3ka koordin\u00e1t\u00e1ival \u00edrj\u00e1k le (a f\u00fav\u00f3ka X, Y # poz\u00edci\u00f3ja, ha k\u00f6zvetlen\u00fcl a pont felett mozoghat). Az els\u0151 bejegyz\u00e9s a # stepper_z, a m\u00e1sodik a stepper_z1, a harmadik a stepper_z2 stb. # \u00e9rt\u00e9knek felel meg. Ezt a param\u00e9tert meg kell adni. #points: # Az X, Y koordin\u00e1t\u00e1k list\u00e1ja (soronk\u00e9nt egy a k\u00f6vetkez\u0151 sorokat beh\u00fazva), # amelyeket a Z_TILT_ADJUST parancs sor\u00e1n meg kell vizsg\u00e1lni. Add meg # a f\u00fav\u00f3ka koordin\u00e1t\u00e1it, \u00e9s gy\u0151z\u0151dj meg arr\u00f3l, hogy a szonda a t\u00e1rgyasztal # felett van a megadott f\u00fav\u00f3kakoordin\u00e1t\u00e1kon. # Ezt a param\u00e9tert meg kell adni. #speed: 50 # A nem m\u00e9r\u00e9si mozg\u00e1s sebess\u00e9ge (mm/sec-ben) mozog a kalibr\u00e1l\u00e1skor. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), ameddig a fejnek el kell mozdulnia # k\u00f6zvetlen\u00fcl a m\u00e9r\u00e9sek megkezd\u00e9se el\u0151tt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #retries: 0 # Az \u00fajrapr\u00f3b\u00e1lkoz\u00e1sok sz\u00e1ma, ha a vizsg\u00e1lt pontok nincsenek a # t\u0171r\u00e9shat\u00e1ron bel\u00fcl. #retry_tolerance: 0 # Ha az \u00fajrapr\u00f3b\u00e1lkoz\u00e1s enged\u00e9lyezve van, pr\u00f3b\u00e1lkozzon \u00fajra, ha a # legnagyobb \u00e9s a legkisebb vizsg\u00e1lt pont jobban elt\u00e9r, mint a # retry_tolerance. Vedd figyelembe, hogy a v\u00e1ltoz\u00e1s legkisebb egys\u00e9ge # itt egyetlen l\u00e9p\u00e9s lenne. Ha azonban t\u00f6bb pontot vizsg\u00e1l, mint l\u00e9ptet\u0151t, # akkor val\u00f3sz\u00edn\u0171leg lesz egy r\u00f6gz\u00edtett minim\u00e1lis \u00e9rt\u00e9ke a vizsg\u00e1lt pontok # tartom\u00e1ny\u00e1hoz, amelyet a parancs kimenet\u00e9nek megfigyel\u00e9s\u00e9vel # tanulhat meg.","title":"[z_tilt]"},{"location":"Config_Reference.html#quad_gantry_level","text":"Mozg\u00f3 \u00e1llv\u00e1ny szintez\u00e9se 4 egym\u00e1st\u00f3l f\u00fcggetlen\u00fcl vez\u00e9relt Z-motorral. Korrig\u00e1lja a hiperbolikus parabola hat\u00e1s\u00e1t (krumplichip) a mozg\u00f3 port\u00e1lon, amely rugalmasabb. FIGYELMEZTET\u00c9S: Mozg\u00f3 t\u00e1rgyasztalon t\u00f6rt\u00e9n\u0151 haszn\u00e1lata nemk\u00edv\u00e1natos eredm\u00e9nyekhez vezethet. Ha ez a szakasz jelen van, akkor el\u00e9rhet\u0151v\u00e9 v\u00e1lik a QUAD_GANTRY_LEVEL kiterjesztett G-k\u00f3d parancs. Ez a rutin a k\u00f6vetkez\u0151 Z motor konfigur\u00e1ci\u00f3t felt\u00e9telezi: ---------------- |Z1 Z2| | --------- | | | | | | | | | | x-------- | |Z Z3| ---------------- Ahol X a t\u00e1rgyasztal 0, 0 pontja [quad_gantry_level] #gantry_corners: # Az X, Y koordin\u00e1t\u00e1k \u00faj sorral elv\u00e1lasztott list\u00e1ja, amely le\u00edrja a port\u00e1l # k\u00e9t ellent\u00e9tes sark\u00e1t. Az els\u0151 bejegyz\u00e9s a Z-nek, a m\u00e1sodik a Z2-nek # felel meg. Ezt a param\u00e9tert meg kell adni. #points: # Egy \u00faj sorral elv\u00e1lasztott lista n\u00e9gy X, Y pontb\u00f3l, amelyeket meg kell # vizsg\u00e1lni a QUAD_GANTRY_LEVEL parancs sor\u00e1n. A helyek sorrendje # fontos, \u00e9s sorrendben meg kell egyeznie a Z, Z1, Z2 \u00e9s Z3 helyekkel. # Ezt a param\u00e9tert meg kell adni. A maxim\u00e1lis pontoss\u00e1g \u00e9rdek\u00e9ben # gy\u0151z\u0151dj meg arr\u00f3l, hogy a szonda eltol\u00e1sa be van \u00e1ll\u00edtva. #speed: 50 # A nem m\u00e9r\u00e9si mozg\u00e1sok sebess\u00e9ge (mm/sec-ben) mozog a kalibr\u00e1l\u00e1skor. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50. #horizontal_move_z: 5 # Az a magass\u00e1g (mm-ben), ameddig a fejnek el kell mozdulnia k\u00f6zvetlen\u00fcl # a m\u00e9r\u00e9s megkezd\u00e9se el\u0151tt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #max_adjust: 4 # Biztons\u00e1gi korl\u00e1t, ha enn\u00e9l az \u00e9rt\u00e9kn\u00e9l nagyobb korrekci\u00f3t k\u00e9rnek, # a quad_gantry_level megszakad. #retries: 0 # Az \u00fajrapr\u00f3b\u00e1lkoz\u00e1sok sz\u00e1ma, ha a vizsg\u00e1lt pontok nincsenek a # t\u0171r\u00e9shat\u00e1ron bel\u00fcl. #retry_tolerance: 0 # Ha az \u00fajrapr\u00f3b\u00e1lkoz\u00e1s enged\u00e9lyezve van, pr\u00f3b\u00e1lkozzon \u00fajra, ha a # legnagyobb \u00e9s a legkisebb vizsg\u00e1lt pont jobban elt\u00e9r, # mint a retry_tolerance \u00e9rt\u00e9ke.","title":"[quad_gantry_level]"},{"location":"Config_Reference.html#skew_correction","text":"Nyomtat\u00f3 ferdes\u00e9gkorrekci\u00f3. Lehet\u0151s\u00e9g van a nyomtat\u00f3 ferdes\u00e9g\u00e9nek szoftveres korrekci\u00f3j\u00e1ra 3 s\u00edkban: XY, XZ, YZ. Ez \u00fagy t\u00f6rt\u00e9nik, hogy egy kalibr\u00e1ci\u00f3s modellt nyomtatunk egy s\u00edk ment\u00e9n, \u00e9s h\u00e1rom hossz\u00fas\u00e1got m\u00e9r\u00fcnk. A ferdes\u00e9gkorrekci\u00f3 jelleg\u00e9b\u0151l ad\u00f3d\u00f3an ezeket a hosszokat G-k\u00f3dal kell be\u00e1ll\u00edtani. L\u00e1sd a Ferdes\u00e9g korrekci\u00f3 \u00e9s a Parancs hivatkoz\u00e1s c\u00edm\u0171 fejezetekben tal\u00e1lhat\u00f3 r\u00e9szleteket. [skew_correction]","title":"[skew_correction]"},{"location":"Config_Reference.html#z_thermal_adjust","text":"H\u0151m\u00e9rs\u00e9kletf\u00fcgg\u0151 nyomtat\u00f3fej Z poz\u00edci\u00f3 be\u00e1ll\u00edt\u00e1sa. Kompenz\u00e1lja a nyomtat\u00f3 keret\u00e9nek h\u0151t\u00e1gul\u00e1sa \u00e1ltal okozott f\u00fcgg\u0151leges nyomtat\u00f3fej elmozdul\u00e1st val\u00f3s id\u0151ben egy h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 seg\u00edts\u00e9g\u00e9vel (jellemz\u0151en a keret f\u00fcgg\u0151leges szakasz\u00e1hoz csatlakoztatva). L\u00e1sd m\u00e9g: b\u0151v\u00edtett G-k\u00f3d parancsok . [z_thermal_adjust] #temp_coeff: # A h\u0151m\u00e9rs\u00e9kleti t\u00e1gul\u00e1si egy\u00fctthat\u00f3, mm/\u00b0C-ban. P\u00e9ld\u00e1ul a 0,01 mm/\u00b0C # temp_coeff a Z tengelyt 0,01 mm-rel lefel\u00e9 mozgatja minden Celsius-fok # ut\u00e1n, amelyet a h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 n\u00f6vel. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,0 mm/\u00b0C, amely nem alkalmaz be\u00e1ll\u00edt\u00e1st. #smooth_time: # Sim\u00edt\u00e1si ablak a h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151re, m\u00e1sodpercek alatt. # Cs\u00f6kkentheti a motorzajt a t\u00falzottan kis korrekci\u00f3kb\u00f3l # az \u00e9rz\u00e9kel\u0151 zaj\u00e1ra reag\u00e1lva. # Az alap\u00e9rtelmezett 2,0 m\u00e1sodperc. #z_adjust_off_above: # Letiltja a Z magass\u00e1g [mm] feletti be\u00e1ll\u00edt\u00e1sokat. # Az utolj\u00e1ra sz\u00e1m\u00edtott korrekci\u00f3 mindaddig \u00e9rv\u00e9nyes marad, am\u00edg a # nyomtat\u00f3fej ism\u00e9t a megadott Z magass\u00e1g al\u00e1 nem ker\u00fcl. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 99999999,0 mm (mindig bekapcsolva). #max_z_adjustment: # A Z tengelyre alkalmazhat\u00f3 maxim\u00e1lis abszol\u00fat be\u00e1ll\u00edt\u00e1s [mm]. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 99999999,0 mm (korl\u00e1tlan). #sensor_type: #sensor_pin: #min_temp: #max_temp: # H\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 konfigur\u00e1ci\u00f3ja. # A fenti param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd az \"extruder\" r\u00e9szt. #gcode_id: # L\u00e1sd a \"heater_generic\" r\u00e9szt a param\u00e9ter meghat\u00e1roz\u00e1s\u00e1hoz.","title":"[z_thermal_adjust]"},{"location":"Config_Reference.html#testreszabott-kezdopont-felvetel","text":"","title":"Testreszabott kezd\u0151pont felv\u00e9tel"},{"location":"Config_Reference.html#safe_z_home","text":"Biztons\u00e1gos Z kezd\u0151pont felv\u00e9tel. Ezzel a mechanizmussal a Z tengelyt egy adott X, Y koordin\u00e1t\u00e1ra lehet \u00e1ll\u00edtani. Ez akkor hasznos, ha p\u00e9ld\u00e1ul a nyomtat\u00f3fejnek a t\u00e1rgyasztal k\u00f6zep\u00e9re kell mozognia, miel\u0151tt a Z-tengelyt kezd\u0151pontpba ir\u00e1ny\u00edtan\u00e1. [safe_z_home] home_xy_position: # Egy X, Y koordin\u00e1ta (pl. 100, 100), ahol a Z homingot v\u00e9gre kell hajtani. # Ezt a param\u00e9tert meg kell adni. #speed: 50.0 # Az a sebess\u00e9g, amellyel a nyomtat\u00f3fej a biztons\u00e1gos Z # kezd\u0151koordin\u00e1t\u00e1ra ker\u00fcl. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50 mm/sec #z_hop: # T\u00e1vols\u00e1g (mm-ben) a Z tengely felemel\u00e9s\u00e9hez a be\u00e1ll\u00edt\u00e1s el\u0151tt. # Ez minden ir\u00e1nyad\u00f3 parancsra vonatkozik, m\u00e9g akkor is, ha nem # a Z tengelyre ir\u00e1nyul. # Ha a Z tengely m\u00e1r be van \u00e1ll\u00edtva, \u00e9s az aktu\u00e1lis Z poz\u00edci\u00f3 kisebb, # mint z_hop, akkor ez a fejet z_hop magass\u00e1gba emeli. # Ha a Z tengely m\u00e9g nincs behelyezve, a fejet a z_hop felemeli. # Az alap\u00e9rtelmezett az, hogy nem val\u00f3s\u00edtja meg a Z ugr\u00e1st. #z_hop_speed: 15.0 # Sebess\u00e9g (mm/sec-ben), amellyel a Z tengely megemelkedik # a homing el\u0151tt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 15mm/sec. #move_to_previous: False # Ha True \u00e9rt\u00e9kre van \u00e1ll\u00edtva, az X \u00e9s Y tengelyek vissza\u00e1llnak # az el\u0151z\u0151 poz\u00edci\u00f3jukra a Z tengely kezd\u0151pont felv\u00e9tele ut\u00e1n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False.","title":"[safe_z_home]"},{"location":"Config_Reference.html#homing_override","text":"Kezd\u0151pont felv\u00e9tel fel\u00fclb\u00edr\u00e1l\u00e1sa. Ezt a mechanizmust arra lehet haszn\u00e1lni, hogy a norm\u00e1l G-k\u00f3d bemenetben tal\u00e1lhat\u00f3 G28 helyett egy sor G-k\u00f3d parancsot futtassunk. Ez olyan nyomtat\u00f3kn\u00e1l lehet hasznos, amelyekn\u00e9l a g\u00e9p beind\u00edt\u00e1s\u00e1hoz speci\u00e1lis elj\u00e1r\u00e1sra van sz\u00fcks\u00e9g. [homing_override] gcode: # A norm\u00e1l G-k\u00f3d bemenetben tal\u00e1lhat\u00f3 G28 parancsok helyett # v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. L\u00e1sd a # docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d form\u00e1tumokhoz. # Ha a parancsok list\u00e1ja G28-at tartalmaz, akkor az a nyomtat\u00f3fej norm\u00e1l # elhelyez\u00e9si elj\u00e1r\u00e1s\u00e1t ind\u00edtja el. Az itt felsorolt parancsoknak minden # tengelyt kezd\u0151ponthoz kell ir\u00e1ny\u00edtaniuk. Ezt a param\u00e9tert meg kell adni. #axes: xyz # A fel\u00fcl\u00edrand\u00f3 tengelyek. P\u00e9ld\u00e1ul, ha ez \"Z\"-re van \u00e1ll\u00edtva, akkor a # fel\u00fcl\u00edr\u00e1si parancsf\u00e1jl csak akkor fut le, ha a Z tengely be van \u00e1ll\u00edtva # (pl. \"G28\" vagy \"G28 Z0\" paranccsal). Ne feledd, hogy a fel\u00fcl\u00edr\u00e1si # szkriptnek tov\u00e1bbra is minden tengelyt kell tartalmaznia. # Az alap\u00e9rtelmez\u00e9s az \"xyz\", ami azt eredm\u00e9nyezi, hogy a fel\u00fclb\u00edr\u00e1l\u00f3 # szkript fut minden G28 parancs helyett. #set_position_x: #set_position_y: #set_position_z: # Ha meg van adva, a nyomtat\u00f3 felt\u00e9telezi, hogy a tengely a megadott # poz\u00edci\u00f3ban van a fenti G-k\u00f3d parancsok futtat\u00e1sa el\u0151tt. Ennek a # be\u00e1ll\u00edt\u00e1s\u00e1val letiltja az adott tengelyre vonatkoz\u00f3 kezd\u0151pont # ellen\u0151rz\u00e9seket. Ez akkor lehet hasznos, ha a nyomtat\u00f3fejnek el kell # mozdulnia, miel\u0151tt a norm\u00e1l G28 parancsot megh\u00edvn\u00e1 egy tengelyre. # Az alap\u00e9rtelmez\u00e9s az, hogy nem er\u0151ltetik a tengely poz\u00edci\u00f3j\u00e1t.","title":"[homing_override]"},{"location":"Config_Reference.html#endstop_phase","text":"L\u00e9ptet\u0151 f\u00e1zissal be\u00e1ll\u00edtott v\u00e9g\u00e1ll\u00e1sok. A funkci\u00f3 haszn\u00e1lat\u00e1hoz defini\u00e1ljon egy konfigur\u00e1ci\u00f3s r\u00e9szt egy \"endstop_phase\" el\u0151taggal, amelyet a megfelel\u0151 stepper konfigur\u00e1ci\u00f3s r\u00e9sz neve k\u00f6vet (p\u00e9ld\u00e1ul \"[endstop_phase stepper_z]\"). Ez a funkci\u00f3 jav\u00edthatja a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3k pontoss\u00e1g\u00e1t. Adj hozz\u00e1 egy csupasz \"[endstop_phase]\" deklar\u00e1ci\u00f3t az ENDSTOP_PHASE_CALIBRATE parancs enged\u00e9lyez\u00e9s\u00e9hez. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a v\u00e9g\u00e1ll\u00e1si f\u00e1zisok \u00fatmutat\u00f3 \u00e9s a Parancs hivatkoz\u00e1s dokumentumot. [endstop_phase stepper_z] #endstop_accuracy: # Be\u00e1ll\u00edtja a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 v\u00e1rhat\u00f3 pontoss\u00e1g\u00e1t (mm-ben). Ez azt a # maxim\u00e1lis hibat\u00e1vols\u00e1got jel\u00f6li, amelyet a v\u00e9g\u00e1ll\u00e1s kiv\u00e1lthat (pl. ha # egy v\u00e9g\u00e1ll\u00e1s id\u0151nk\u00e9nt 100 um kor\u00e1n vagy legfeljebb 100 um k\u00e9s\u00e9ssel # v\u00e1lthat ki, akkor \u00e1ll\u00edtsd ezt 0,200-ra 200 um eset\u00e9n). Az alap\u00e9rtelmezett # 4*rotation_distance/full_steps_per_rotation. #trigger_phase: # Ez hat\u00e1rozza meg a l\u00e9ptet\u0151motor meghajt\u00f3j\u00e1nak azt az \u00e1ramot, # amelyre sz\u00e1m\u00edtani kell, amikor meg\u00fcti a v\u00e9g\u00e1ll\u00e1st. K\u00e9t sz\u00e1mb\u00f3l \u00e1ll, # amelyeket egy perjel v\u00e1laszt el. Az \u00e1ramb\u00f3l \u00e9s \u00e1ramok teljes sz\u00e1m\u00e1b\u00f3l # (pl. \"7/64\"). Csak akkor \u00e1ll\u00edtsd be ezt az \u00e9rt\u00e9ket, ha biztos abban, hogy a # motorvez\u00e9rl\u0151 minden alkalommal alaphelyzetbe \u00e1ll az MCU # alaphelyzetbe \u00e1ll\u00edt\u00e1sakor. Ha ez nincs be\u00e1ll\u00edtva, akkor a l\u00e9ptet\u0151 f\u00e1zist a # rendszer az els\u0151 kezd\u0151pontban \u00e9rz\u00e9keli, \u00e9s ezt az \u00e1ramot haszn\u00e1lja az # \u00f6sszes k\u00f6vetkez\u0151 kezd\u0151pontfelv\u00e9telkor. #endstop_align_zero: False # Ha True, akkor a tengely position_endstop \u00e9rt\u00e9ke t\u00e9nylegesen m\u00f3dosul, # \u00edgy a tengely nulla poz\u00edci\u00f3ja a l\u00e9ptet\u0151motor teljes l\u00e9p\u00e9s\u00e9n\u00e9l megjelenik. # (Ha a Z tengelyen haszn\u00e1ljuk, \u00e9s a nyomtat\u00e1si r\u00e9teg magass\u00e1ga a teljes # l\u00e9p\u00e9st\u00e1vols\u00e1g t\u00f6bbsz\u00f6r\u00f6se, akkor minden r\u00e9teg egy teljes l\u00e9p\u00e9sben # jelenik meg.) Az alap\u00e9rtelmezett \u00e9rt\u00e9k False.","title":"[endstop_phase]"},{"location":"Config_Reference.html#g-kod-makrok-es-esemenyek","text":"","title":"G-k\u00f3d makr\u00f3k \u00e9s esem\u00e9nyek"},{"location":"Config_Reference.html#gcode_macro","text":"G-k\u00f3d makr\u00f3k (a \"gcode_macro\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3). Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancssablonok \u00fatmutat\u00f3j\u00e1t . [gcode_macro my_cmd] #gcode: # A \"my_cmd\" helyett v\u00e9grehajtand\u00f3 G-k\u00f3d-parancsok list\u00e1ja. L\u00e1sd a # docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d form\u00e1tumhoz. # Ezt a param\u00e9tert meg kell adni. #variable_<name>: # B\u00e1rmilyen sz\u00e1m\u00fa be\u00e1ll\u00edt\u00e1s megadhat\u00f3 a \"v\u00e1ltoz\u00f3_\" el\u0151taggal. # Az adott v\u00e1ltoz\u00f3n\u00e9vhez a rendszer hozz\u00e1rendeli az adott \u00e9rt\u00e9ket # (Python liter\u00e1lk\u00e9nt \u00e9rtelmezi), \u00e9s el\u00e9rhet\u0151 lesz a makr\u00f3b\u0151v\u00edt\u00e9s # sor\u00e1n. P\u00e9ld\u00e1ul egy \"variable_fan_speed = 75\" konfigur\u00e1ci\u00f3j\u00fa G-k\u00f3d # parancsok tartalmazhatj\u00e1k az \"M106 S{ fan_speed * 255 }\" \u00e9rt\u00e9ket. # A v\u00e1ltoz\u00f3k fut\u00e1s k\u00f6zben m\u00f3dos\u00edthat\u00f3k a SET_GCODE_VARIABLE # paranccsal (a r\u00e9szletek\u00e9rt l\u00e1sd a docs/Command_Templates.md f\u00e1jlt). # A v\u00e1ltoz\u00f3nevek nem tartalmazhatnak nagybet\u0171ket. #rename_existing: # Ezzel az opci\u00f3val a makr\u00f3 fel\u00fcl\u00edr egy megl\u00e9v\u0151 G-k\u00f3d parancsot, \u00e9s # megadja a parancs kor\u00e1bbi defin\u00edci\u00f3j\u00e1t az itt megadott n\u00e9ven. Ez # haszn\u00e1lhat\u00f3 a be\u00e9p\u00edtett G-k\u00f3d parancsok fel\u00fclb\u00edr\u00e1l\u00e1s\u00e1ra. \u00d3vatosan # kell elj\u00e1rni a parancsok fel\u00fclb\u00edr\u00e1l\u00e1sakor, mivel az \u00f6sszetett \u00e9s v\u00e1ratlan # eredm\u00e9nyeket okozhat. Az alap\u00e9rtelmez\u00e9s szerint nem \u00edrnak fel\u00fcl # megl\u00e9v\u0151 G-k\u00f3d parancsot. #description: G-Code macro # Ez hozz\u00e1ad egy r\u00f6vid le\u00edr\u00e1st, amelyet a HELP parancsn\u00e1l vagy az # automatikus kieg\u00e9sz\u00edt\u00e9s funkci\u00f3 haszn\u00e1latakor haszn\u00e1lnak. # Alap\u00e9rtelmezett a \"G-Code macro\"","title":"[gcode_macro]"},{"location":"Config_Reference.html#delayed_gcode","text":"Egy G-k\u00f3d v\u00e9grehajt\u00e1sa be\u00e1ll\u00edtott k\u00e9sleltet\u00e9ssel. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancssablon \u00fatmutat\u00f3 \u00e9s a Parancs hivatkoz\u00e1s dokumentumot. [delayed_gcode my_delayed_gcode] gcode: # A k\u00e9sleltet\u00e9si id\u0151 letelte ut\u00e1n v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. # A G-Code sablonok t\u00e1mogatottak. Ezt a param\u00e9tert meg kell adni. #initial_duration: 0.0 # A kezdeti k\u00e9sleltet\u00e9s id\u0151tartama (m\u00e1sodpercben). Ha null\u00e1t\u00f3l elt\u00e9r\u0151 # \u00e9rt\u00e9kre van \u00e1ll\u00edtva, a delayed_gcode a megadott sz\u00e1m\u00fa m\u00e1sodpercet # hajtja v\u00e9gre, miut\u00e1n a nyomtat\u00f3 \u201ek\u00e9sz\u201d \u00e1llapotba l\u00e9p. Ez hasznos lehet # inicializ\u00e1l\u00e1si elj\u00e1r\u00e1sok vagy ism\u00e9tl\u0151d\u0151 delayed_gcode eset\u00e9n. Ha 0-ra # van \u00e1ll\u00edtva, a delayed_gcode nem fut le az ind\u00edt\u00e1skor. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0.","title":"[delayed_gcode]"},{"location":"Config_Reference.html#save_variables","text":"A v\u00e1ltoz\u00f3k lemezre ment\u00e9s\u00e9nek t\u00e1mogat\u00e1sa, hogy azok az \u00fajraind\u00edt\u00e1sok sor\u00e1n is megmaradjanak. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd Parancs hivatkoz\u00e1s \u00e9s a G-k\u00f3d hivatkoz\u00e1s dokumentumot. [save_variables] filename: # K\u00f6telez\u0151 - adj meg egy f\u00e1jlnevet, amelyet a v\u00e1ltoz\u00f3k # lemezre ment\u00e9s\u00e9hez haszn\u00e1lna, pl. ~/variables.cfg","title":"[save_variables]"},{"location":"Config_Reference.html#idle_timeout","text":"\u00dcresj\u00e1rati id\u0151t\u00fall\u00e9p\u00e9s. Az \u00fcresj\u00e1rati id\u0151t\u00fall\u00e9p\u00e9s automatikusan enged\u00e9lyezve van. Az alap\u00e9rtelmezett be\u00e1ll\u00edt\u00e1sok m\u00f3dos\u00edt\u00e1s\u00e1hoz adj hozz\u00e1 egy explicit idle_timeout konfigur\u00e1ci\u00f3s szakaszt. [idle_timeout] #gcode: # Az \u00fcresj\u00e1rati id\u0151t\u00fall\u00e9p\u00e9skor v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. # L\u00e1sd a docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d form\u00e1tumhoz. # Az alap\u00e9rtelmezett a \u201eTURN_OFF_HEATERS\u201d \u00e9s \u201eM84\u201d futtat\u00e1sa. #timeout: 600 # A fenti G-k\u00f3d parancsok futtat\u00e1sa el\u0151tti v\u00e1rakoz\u00e1si id\u0151 (m\u00e1sodpercben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a 600 m\u00e1sodperc.","title":"[idle_timeout]"},{"location":"Config_Reference.html#valaszthato-g-kod-funkciok","text":"","title":"V\u00e1laszthat\u00f3 G-k\u00f3d funkci\u00f3k"},{"location":"Config_Reference.html#virtual_sdcard","text":"A virtu\u00e1lis sdcard hasznos lehet, ha a gazdasz\u00e1m\u00edt\u00f3g\u00e9p nem el\u00e9g gyors az OctoPrint megfelel\u0151 futtat\u00e1s\u00e1hoz. Ez lehet\u0151v\u00e9 teszi a Klipper gazdag\u00e9p szoftver sz\u00e1m\u00e1ra, hogy k\u00f6zvetlen\u00fcl kinyomtasd a G-k\u00f3d f\u00e1jlokat, amelyeket a gazdag\u00e9pen l\u00e9v\u0151 k\u00f6nyvt\u00e1rban t\u00e1rolnak a szabv\u00e1nyos sdcard G-k\u00f3d parancsok (pl. M24) haszn\u00e1lat\u00e1val. [virtual_sdcard] path: # A gazdag\u00e9p helyi k\u00f6nyvt\u00e1r\u00e1nak el\u00e9r\u00e9si \u00fatja a G-k\u00f3d f\u00e1jlok keres\u00e9s\u00e9hez. # Ez egy csak olvashat\u00f3 k\u00f6nyvt\u00e1r (az sdcard f\u00e1jl \u00edr\u00e1sa nem t\u00e1mogatott). # Ezt r\u00e1mutathatjuk az OctoPrint felt\u00f6lt\u00e9si k\u00f6nyvt\u00e1r\u00e1ra # (\u00e1ltal\u00e1ban ~/.octoprint/uploads/ ). Ezt a param\u00e9tert meg kell adni. #on_error_gcode: # A hibajelent\u00e9skor v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja.","title":"[virtual_sdcard]"},{"location":"Config_Reference.html#sdcard_loop","text":"N\u00e9h\u00e1ny szakaszok t\u00f6rl\u00e9s\u00e9vel rendelkez\u0151 nyomtat\u00f3, p\u00e9ld\u00e1ul alkatr\u00e9sz-kidob\u00f3 vagy szalagnyomtat\u00f3, haszn\u00e1t veheti az SD-k\u00e1rtya f\u00e1jl hurkolt szakaszainak. (P\u00e9ld\u00e1ul ugyanazon alkatr\u00e9sz \u00fajra \u00e9s \u00fajra t\u00f6rt\u00e9n\u0151 kinyomtat\u00e1s\u00e1hoz, vagy egy alkatr\u00e9sz egy szakasz\u00e1nak megism\u00e9tl\u00e9s\u00e9hez egy l\u00e1nc vagy m\u00e1s ism\u00e9tl\u0151d\u0151 mint\u00e1hoz). A t\u00e1mogatott parancsokat l\u00e1sd a Parancs hivatkoz\u00e1sban . Vagy l\u00e1sd a sample-macros.cfg f\u00e1jlt egy Marlin kompatibilis M808 G-k\u00f3d makr\u00f3\u00e9rt. [sdcard_loop]","title":"[sdcard_loop]"},{"location":"Config_Reference.html#force_move","text":"T\u00e1mogatja a l\u00e9peget\u0151motorok k\u00e9zi mozgat\u00e1s\u00e1t diagnosztikai c\u00e9lokra. Figyelem, ennek a funkci\u00f3nak a haszn\u00e1lata a nyomtat\u00f3t \u00e9rv\u00e9nytelen \u00e1llapotba hozhatja. A fontos r\u00e9szletek\u00e9rt l\u00e1sd a Parancs hivatkoz\u00e1s dokumentumot. [force_move] #enable_force_move: False # A FORCE_MOVE \u00e9s a SET_KINEMATIC_POSITION enged\u00e9lyez\u00e9s\u00e9hez # \u00e1ll\u00edtsuk True-ra a kiterjesztett G-k\u00f3d parancsot. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False.","title":"[force_move]"},{"location":"Config_Reference.html#pause_resume","text":"Sz\u00fcneteltet\u00e9si/folytat\u00e1si funkci\u00f3 a poz\u00edci\u00f3 r\u00f6gz\u00edt\u00e9s\u00e9nek \u00e9s vissza\u00e1ll\u00edt\u00e1s\u00e1nak t\u00e1mogat\u00e1s\u00e1val. Tov\u00e1bbi inform\u00e1ci\u00f3\u00e9rt l\u00e1sd a Parancs hivatkoz\u00e1s dokumentumot. [pause_resume] #recover_velocity: 50. # Ha a r\u00f6gz\u00edt\u00e9s/vissza\u00e1ll\u00edt\u00e1s enged\u00e9lyezve van, akkor a megadott # sebess\u00e9ggel, t\u00e9r vissza a r\u00f6gz\u00edtett poz\u00edci\u00f3hoz (mm/sec-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50,0 mm/sec.","title":"[pause_resume]"},{"location":"Config_Reference.html#firmware_retraction","text":"Firmware sz\u00e1l visszah\u00faz\u00e1s. Ez lehet\u0151v\u00e9 teszi a G10 (visszah\u00faz\u00e1s) \u00e9s G11 (visszah\u00faz\u00e1s megsz\u00fcntet\u00e9se) G-k\u00f3d parancsokat, amelyeket sok szeletel\u0151 program haszn\u00e1l. Az al\u00e1bbi param\u00e9terek az ind\u00edt\u00e1si alap\u00e9rtelmezett \u00e9rt\u00e9keket adj\u00e1k meg, b\u00e1r az \u00e9rt\u00e9kek a SET_RETRACTION parancs ) seg\u00edts\u00e9g\u00e9vel m\u00f3dos\u00edthat\u00f3k, lehet\u0151v\u00e9 t\u00e9ve a sz\u00e1lank\u00e9nti be\u00e1ll\u00edt\u00e1sokat \u00e9s a fut\u00e1sidej\u0171 hangol\u00e1st. [firmware_retraction] #retract_length: 0 # A G10 aktiv\u00e1l\u00e1sakor visszah\u00fazand\u00f3 sz\u00e1l hossza (mm-ben), # \u00e9s a G11 aktiv\u00e1l\u00e1sakor visszah\u00fazand\u00f3 (de l\u00e1sd: G11). # unretract_extra_length al\u00e1bb). Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0 mm. #retract_speed: 20 # A beh\u00faz\u00e1s sebess\u00e9ge mm/sec-ben. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 20 mm/sec. #unretract_extra_length: 0 # Az *additional* sz\u00e1l hossza (mm-ben), amelyet hozz\u00e1adunk, # a visszah\u00faz\u00e1s felold\u00e1sakor. #unretract_speed: 10 # A visszah\u00faz\u00e1s felold\u00e1s\u00e1nak sebess\u00e9ge mm/sec-ben. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 10 mm/sec.","title":"[firmware_retraction]"},{"location":"Config_Reference.html#gcode_arcs","text":"A G-k\u00f3d \u00edv (G2/G3) parancsok t\u00e1mogat\u00e1sa. [gcode_arcs] #resolution: 1.0 # Egy \u00edv szegmensekre lesz felosztva. Minden szegmens hossza # megegyezik a fent be\u00e1ll\u00edtott felbont\u00e1ssal, mm-ben. Az alacsonyabb # \u00e9rt\u00e9kek finomabb \u00edvet eredm\u00e9nyeznek, de t\u00f6bb munk\u00e1t is v\u00e9geznek # a g\u00e9pen. A be\u00e1ll\u00edtott \u00e9rt\u00e9kn\u00e9l kisebb \u00edvek egyenesekk\u00e9 v\u00e1lnak. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1 mm.","title":"[gcode_arcs]"},{"location":"Config_Reference.html#respond","text":"Enged\u00e9lyezd az \"M118\" \u00e9s \"RESPOND\" kiterjesztett parancsokat . [respond] #default_type: echo # Be\u00e1ll\u00edtja az \"M118\" \u00e9s a \"RESPOND\" kimenet alap\u00e9rtelmezett el\u0151tagj\u00e1t # a k\u00f6vetkez\u0151k egyik\u00e9re: # echo: \"echo: \" (Ez az alap\u00e9rtelmezett) # command: \"// \" # error: \"!! \" #default_prefix: echo: # K\u00f6zvetlen\u00fcl be\u00e1ll\u00edtja az alap\u00e9rtelmezett el\u0151tagot. Ha jelen van, ez az # \u00e9rt\u00e9k fel\u00fcl\u00edrja a \u201edefault_type\u201d \u00e9rt\u00e9ket.","title":"[respond]"},{"location":"Config_Reference.html#exclude_object","text":"Lehet\u0151v\u00e9 teszi az egyes objektumok kiz\u00e1r\u00e1s\u00e1nak vagy t\u00f6rl\u00e9s\u00e9nek t\u00e1mogat\u00e1s\u00e1t a nyomtat\u00e1si folyamat sor\u00e1n. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a kiz\u00e1rand\u00f3 objektumok \u00fatmutat\u00f3t \u00e9s a parancsreferenci\u00e1t . L\u00e1sd a sample-macros.cfg f\u00e1jlt egy Marlin/RepRapFirmware kompatibilis M486 G-k\u00f3d makr\u00f3hoz. [exclude_object]","title":"[exclude_object]"},{"location":"Config_Reference.html#rezonancia-kompenzacio","text":"","title":"Rezonancia kompenz\u00e1ci\u00f3"},{"location":"Config_Reference.html#input_shaper","text":"Enged\u00e9lyezi a rezonancia kompenz\u00e1ci\u00f3t . L\u00e1sd m\u00e9g a parancsreferencia dokumentumot. [input_shaper] #shaper_freq_x: 0 # A bemeneti v\u00e1ltoz\u00f3 frekvenci\u00e1ja (Hz-ben) az X tengelyhez. Ez \u00e1ltal\u00e1ban # az X tengely rezonanciafrekvenci\u00e1ja, amelyet a bemeneti v\u00e1ltoz\u00f3knak # el kell nyomnia. Bonyolultabb v\u00e1ltoz\u00f3k, p\u00e9ld\u00e1ul 2- \u00e9s 3-hull\u00e1mos EI # bemeneti v\u00e1ltoz\u00f3k eset\u00e9n ez a param\u00e9ter k\u00fcl\u00f6nb\u00f6z\u0151 szempontok # alapj\u00e1n \u00e1ll\u00edthat\u00f3 be. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, ami letiltja az X # tengely bemeneti v\u00e1ltoz\u00e1s\u00e1t. #shaper_freq_y: 0 # Az Y tengely bemeneti v\u00e1ltoz\u00f3j\u00e1nak frekvenci\u00e1ja (Hz-ben). Ez \u00e1ltal\u00e1ban # az Y tengely rezonanciafrekvenci\u00e1ja, amelyet a bemeneti v\u00e1ltoz\u00f3knak # el kell nyomnia. Bonyolultabb v\u00e1ltoz\u00f3k, p\u00e9ld\u00e1ul 2- \u00e9s 3-hull\u00e1mos EI # bemeneti v\u00e1ltoz\u00f3k eset\u00e9n ez a param\u00e9ter k\u00fcl\u00f6nb\u00f6z\u0151 szempontok # alapj\u00e1n \u00e1ll\u00edthat\u00f3 be. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, ami letiltja az Y # tengely bemeneti v\u00e1ltoz\u00e1s\u00e1t. #shaper_type: mzv # A bemeneti v\u00e1ltoz\u00f3k t\u00edpusa az X \u00e9s az Y tengelyekhez. A t\u00e1mogatott # v\u00e1ltoz\u00f3k a zv, mzv, zvd, ei, 2hump_ei \u00e9s 3hump_ei. Az alap\u00e9rtelmezett # bemeneti v\u00e1ltoz\u00f3 az mzv. #shaper_type_x: #shaper_type_y: # Ha a shaper_type nincs be\u00e1ll\u00edtva, akkor ez a k\u00e9t param\u00e9ter haszn\u00e1lhat\u00f3 # k\u00fcl\u00f6nb\u00f6z\u0151 bemeneti v\u00e1ltoz\u00f3k konfigur\u00e1l\u00e1s\u00e1ra az X \u00e9s Y tengelyekhez. # Ugyanazok az \u00e9rt\u00e9kek t\u00e1mogatottak, mint a shaper_type param\u00e9tern\u00e9l. #damping_ratio_x: 0,1 #damping_ratio_y: 0,1 # Az X \u00e9s Y tengely rezg\u00e9s\u00e9nek csillap\u00edt\u00e1si ar\u00e1nyai, amelyeket a bemeneti # v\u00e1ltoz\u00f3k haszn\u00e1lnak a rezg\u00e9selnyom\u00e1s jav\u00edt\u00e1s\u00e1ra. Az alap\u00e9rtelmezett # \u00e9rt\u00e9k 0,1, ami a legt\u00f6bb nyomtat\u00f3 sz\u00e1m\u00e1ra j\u00f3 \u00e1ltal\u00e1nos \u00e9rt\u00e9k. A legt\u00f6bb # esetben ez a param\u00e9ter nem ig\u00e9nyel hangol\u00e1st, \u00e9s nem szabad # megv\u00e1ltoztatni.","title":"[input_shaper]"},{"location":"Config_Reference.html#adxl345","text":"ADXL345 gyorsul\u00e1sm\u00e9r\u0151k t\u00e1mogat\u00e1sa. Ez a t\u00e1mogat\u00e1s lehet\u0151v\u00e9 teszi a gyorsul\u00e1sm\u00e9r\u0151 m\u00e9r\u00e9seinek lek\u00e9rdez\u00e9s\u00e9t az \u00e9rz\u00e9kel\u0151t\u0151l. Ez lehet\u0151v\u00e9 teszi az ACCELEROMETER_MEASURE parancsot (tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a G-k\u00f3dok dokumentumot). Az alap\u00e9rtelmezett chipn\u00e9v \"default\", de megadhatunk egy explicit nevet (pl. [adxl345 my_chip_name]). [adxl345] cs_pin: # Az \u00e9rz\u00e9kel\u0151 SPI enged\u00e9lyez\u0151 t\u0171je. Ezt a param\u00e9tert meg kell adni. #spi_speed: 5000000 # A chippel val\u00f3 kommunik\u00e1ci\u00f3 sor\u00e1n haszn\u00e1land\u00f3 SPI sebess\u00e9g (hz-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5000000. #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # L\u00e1sd az \"\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\" c\u00edm\u0171 szakaszt a # fenti param\u00e9terek le\u00edr\u00e1s\u00e1hoz. #axes_map: x, y, z # A gyorsul\u00e1sm\u00e9r\u0151 a nyomtat\u00f3 X, Y \u00e9s Z tengelyeihez kell. # Ez akkor lehet hasznos, ha a gyorsul\u00e1sm\u00e9r\u0151 olyan # orient\u00e1ci\u00f3ban van beszerelve, amely nem egyezik a nyomtat\u00f3\u00e9val. # Ebben az eset\u00e9ben p\u00e9ld\u00e1ul be\u00e1ll\u00edthatjuk ezt az \"Y, X, Z\" \u00e9rt\u00e9kre, # hogy felcser\u00e9lj\u00fck az X \u00e9s Y tengelyeket. Lehet\u0151s\u00e9g van arra is, hogy # neg\u00e1ljunk egy tengelyt, ha a gyorsul\u00e1sm\u00e9r\u0151 ir\u00e1nya ford\u00edtott # (pl. \"X, Z, -Y\"). Az alap\u00e9rtelmezett \u00e9rt\u00e9k \"X, Y, Z\",. #rate: 3200 # Kimeneti adat\u00e1tviteli sebess\u00e9g az ADXL345 eset\u00e9ben. Az ADXL345 # a k\u00f6vetkez\u0151 sebess\u00e9geket t\u00e1mogatja: 3200, 1600, 800, 400, 200, # 100, 50 \u00e9s 25. Vedd figyelembe, hogy nem aj\u00e1nlott megv\u00e1ltoztatni # ezt a sebess\u00e9get az alap\u00e9rtelmezett 3200-r\u00f3l, \u00e9s a 800 alatti # sebess\u00e9gek jelent\u0151sen befoly\u00e1solj\u00e1k a rezonancia m\u00e9r\u00e9s # eredm\u00e9nyeinek min\u0151s\u00e9g\u00e9t.","title":"[adxl345]"},{"location":"Config_Reference.html#mpu9250","text":"Az mpu9250 \u00e9s mpu6050 gyorsul\u00e1sm\u00e9r\u0151k t\u00e1mogat\u00e1sa (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"mpu9250\" el\u0151taggal). [mpu9250 my_accelerometer] #i2c_address: # Az alap\u00e9rtelmezett 104 (0x68). #i2c_mcu: #i2c_bus: #i2c_speed: 400000 # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az # \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" r\u00e9szben. # Az alap\u00e9rtelmezett \"i2c_speed\" 400000. #axes_map: x, y, z # Err\u0151l a param\u00e9terr\u0151l az \"adxl345\" szakaszban olvashat b\u0151vebben.","title":"[mpu9250]"},{"location":"Config_Reference.html#resonance_tester","text":"A rezonancia tesztel\u00e9s \u00e9s az automatikus bemeneti alak\u00edt\u00f3 kalibr\u00e1ci\u00f3 t\u00e1mogat\u00e1sa. A modul legt\u00f6bb funkci\u00f3j\u00e1nak haszn\u00e1lat\u00e1hoz tov\u00e1bbi szoftverf\u00fcgg\u0151s\u00e9geket kell telep\u00edteni; tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt olvasd el a Rezonanci\u00e1k m\u00e9r\u00e9se \u00e9s a parancs hivatkoz\u00e1s c\u00edm\u0171 dokumentumot. A rezonanci\u00e1k m\u00e9r\u00e9se c\u00edm\u0171 \u00fatmutat\u00f3 Max sim\u00edt\u00e1s szakasz\u00e1ban tov\u00e1bbi inform\u00e1ci\u00f3kat tal\u00e1l a max_smoothing param\u00e9terr\u0151l \u00e9s annak haszn\u00e1lat\u00e1r\u00f3l. [resonance_tester] #probe_points: # A rezonanci\u00e1k tesztel\u00e9s\u00e9hez sz\u00fcks\u00e9ges pontok X, Y, Z koordin\u00e1t\u00e1inak # list\u00e1ja (soronk\u00e9nt egy pont). Legal\u00e1bb egy pont sz\u00fcks\u00e9ges. # Gy\u0151z\u0151dj meg r\u00f3la, hogy minden pont az X-Y s\u00edkban n\u00e9mi # biztons\u00e1gi tartal\u00e9kkal rendelkezik \u00e9s (~ n\u00e9h\u00e1ny centim\u00e9ter) # el\u00e9rhet\u0151ek a nyomtat\u00f3fejjel. #accel_chip: # A m\u00e9r\u00e9sekhez haszn\u00e1lt gyorsul\u00e1sm\u00e9r\u0151 chip neve. Ha adxl345 chipet # explicit n\u00e9v n\u00e9lk\u00fcl defini\u00e1lt\u00e1k, ez a param\u00e9ter egyszer\u0171en # hivatkozhat r\u00e1 \"accel_chip: adxl345\"-k\u00e9nt, ellenkez\u0151 esetben egy # \"accel_chip: adxl345\" param\u00e9tert kell megadni. Explicit nevet is meg # kell adni, pl. \"accel_chip: adxl345\" my_chip_n\u00e9v\". # Vagy ezt, vagy a k\u00f6vetkez\u0151 k\u00e9t param\u00e9tert kell be\u00e1ll\u00edtani. #accel_chip_x: #accel_chip_y: # Az egyes tengelyek m\u00e9r\u00e9s\u00e9hez haszn\u00e1land\u00f3 gyorsul\u00e1sm\u00e9r\u0151 chipek # neve. Hasznos lehet p\u00e9ld\u00e1ul a t\u00e1rgyasztal cs\u00fasztat\u00f3s nyomtat\u00f3n\u00e1l, ha k\u00e9t # k\u00fcl\u00f6n gyorsul\u00e1sm\u00e9r\u0151 van felszerelve a t\u00e1rgyasztalra (az Y tengelyhez) \u00e9s a # nyomtat\u00f3fejre (az X tengelyhez). Ezek a param\u00e9terek ugyanolyan # form\u00e1tum\u00faak, mint az \"accel_chip\" param\u00e9ter. Csak az 'accel_chip' # vagy ez a k\u00e9t param\u00e9tert kell megadni. #max_smoothing: # Az egyes tengelyek maxim\u00e1lis bemeneti alak\u00edt\u00f3 sim\u00edt\u00e1sa az alak\u00edt\u00f3 # automatikus kalibr\u00e1l\u00e1sa sor\u00e1n (a 'SHAPER_CALIBRATE' paranccsal). # Alap\u00e9rtelmez\u00e9s szerint nincs megadva maxim\u00e1lis sim\u00edt\u00e1s. # L\u00e1sd a Measuring_Resonances \u00fatmutat\u00f3t. a funkci\u00f3 haszn\u00e1lat\u00e1nak # tov\u00e1bbi r\u00e9szletei\u00e9rt. #min_freq: 5 # Minim\u00e1lis frekvencia a rezonancia vizsg\u00e1lat\u00e1hoz. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5 Hz. #max_freq: 133.33 # Maxim\u00e1lis frekvencia a rezonancia vizsg\u00e1lat\u00e1hoz. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 133,33 Hz. #accel_per_hz: 75 # Ez a param\u00e9ter annak meghat\u00e1roz\u00e1s\u00e1ra szolg\u00e1l, hogy egy adott # frekvencia tesztel\u00e9s\u00e9hez milyen gyorsul\u00e1st haszn\u00e1ljunk: # accel = accel_per_hz * freq. Min\u00e9l nagyobb az \u00e9rt\u00e9k, ann\u00e1l nagyobb # a rezg\u00e9sek energi\u00e1ja. Az alap\u00e9rtelmezett \u00e9rt\u00e9kn\u00e9l alacsonyabbra is # be\u00e1ll\u00edthat\u00f3, ha a rezonanci\u00e1k t\u00fal er\u0151sek lesznek a nyomtat\u00f3n. # Az alacsonyabb \u00e9rt\u00e9kek azonban a nagyfrekvenci\u00e1s rezonanci\u00e1k # m\u00e9r\u00e9s\u00e9t pontatlanabb\u00e1 teszik. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 75 (mm/sec). #hz_per_sec: 1 # Meghat\u00e1rozza a teszt sebess\u00e9g\u00e9t. A [min_freq, max_freq] # tartom\u00e1nyban l\u00e9v\u0151 \u00f6sszes frekvencia tesztel\u00e9sekor a frekvencia # minden m\u00e1sodpercben hz_per_sec \u00e9rt\u00e9kkel n\u0151. A kis \u00e9rt\u00e9kek # lass\u00fav\u00e1 teszik a tesztet, a nagy \u00e9rt\u00e9kek pedig cs\u00f6kkentik a teszt # pontoss\u00e1g\u00e1t. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0 (Hz/sec == sec^-2).","title":"[resonance_tester]"},{"location":"Config_Reference.html#konfiguracios-fajl-segedletek","text":"","title":"Konfigur\u00e1ci\u00f3s f\u00e1jl seg\u00e9dletek"},{"location":"Config_Reference.html#board_pins","text":"Alaplap t\u0171 \u00e1lnevek (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t defini\u00e1lhatunk \"board_pins\" el\u0151taggal). Ezzel defini\u00e1lhat \u00e1lneveket a mikrokontroller t\u0171ihez. [board_pins my_aliases] mcu: mcu # Az \u00e1lneveket haszn\u00e1l\u00f3 mikrovez\u00e9rl\u0151k vessz\u0151vel elv\u00e1lasztott list\u00e1ja. # Az alap\u00e9rtelmez\u00e9s szerint az \u00e1lneveket a f\u0151 \"mcu\"-ra kell alkalmazni. aliases: aliases_<name>: # A \"name=value\" \u00e1lnevek vessz\u0151vel elv\u00e1lasztott list\u00e1ja, amelyet az # adott mikrovez\u00e9rl\u0151h\u00f6z kell l\u00e9trehozni. P\u00e9ld\u00e1ul az \"EXP1_1=PE6\" # egy \"EXP1_1\" \u00e1lnevet hoz l\u00e9tre a \"PE6\" t\u0171h\u00f6z. Ha azonban a \"value\" # a \"<>\" k\u00f6z\u00e9 van z\u00e1rva, akkor a \"name\" lefoglalt t\u0171k\u00e9nt j\u00f6n l\u00e9tre # (p\u00e9ld\u00e1ul az \"EXP1_9=<GND>\" az \"EXP1_9\"-et foglaln\u00e1 le). B\u00e1rmilyen # sz\u00e1m\u00fa \"aliases_\" karakterrel kezd\u0151d\u0151 opci\u00f3 megadhat\u00f3.","title":"[board_pins]"},{"location":"Config_Reference.html#include","text":"Include f\u00e1jl t\u00e1mogat\u00e1s. A nyomtat\u00f3 f\u0151 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1hoz tov\u00e1bbi konfigur\u00e1ci\u00f3s f\u00e1jlokat lehet csatolni. Helyettes\u00edt\u0151 karakterek is haszn\u00e1lhat\u00f3k (pl. \"configs/*.cfg\"). [include my_other_config.cfg]","title":"[include]"},{"location":"Config_Reference.html#duplicate_pin_override","text":"Ez az eszk\u00f6z lehet\u0151v\u00e9 teszi, hogy egyetlen mikrokontroller-t\u0171t t\u00f6bbsz\u00f6r defini\u00e1ljon egy konfigur\u00e1ci\u00f3s f\u00e1jlban a szok\u00e1sos hibajelent\u00e9s n\u00e9lk\u00fcl. Ez diagnosztikai \u00e9s hibakeres\u00e9si c\u00e9lokra szolg\u00e1l. Erre a szakaszra nincs sz\u00fcks\u00e9g ott, ahol a Klipper t\u00e1mogatja ugyanazon t\u0171 t\u00f6bbsz\u00f6ri haszn\u00e1lat\u00e1t, \u00e9s ennek a fel\u00fclb\u00edr\u00e1latnak a haszn\u00e1lata zavaros \u00e9s v\u00e1ratlan eredm\u00e9nyeket okozhat. [duplicate_pin_override] pins: # Azok a t\u0171k vessz\u0151vel elv\u00e1lasztott list\u00e1ja, amelyek t\u00f6bbsz\u00f6r # haszn\u00e1lhat\u00f3k egy konfigur\u00e1ci\u00f3s f\u00e1jlban norm\u00e1l hibajelent\u00e9s # n\u00e9lk\u00fcl. Ezt a param\u00e9tert meg kell adni.","title":"[duplicate_pin_override]"},{"location":"Config_Reference.html#targyasztal-szintezo-hardver","text":"","title":"T\u00e1rgyasztal szintez\u0151 hardver"},{"location":"Config_Reference.html#probe","text":"Z magass\u00e1gm\u00e9r\u0151 szonda. Ezt a szakaszt a Z magass\u00e1gm\u00e9r\u0151 hardver enged\u00e9lyez\u00e9s\u00e9hez lehet defini\u00e1lni. Ha ez a szakasz enged\u00e9lyezve van, a PROBE \u00e9s a QUERY_PROBE kiterjesztett G-k\u00f3d parancsok el\u00e9rhet\u0151v\u00e9 v\u00e1lnak. L\u00e1sd m\u00e9g a szonda kalibr\u00e1l\u00e1si \u00fatmutat\u00f3t . A szondaszekci\u00f3 l\u00e9trehoz egy virtu\u00e1lis \"probe:z_virtual_endstop\" t\u0171t is. A stepper_z endstop_pin-t erre a virtu\u00e1lis t\u0171re \u00e1ll\u00edthatjuk a cartesian st\u00edlus\u00fa nyomtat\u00f3kon, amelyek a szond\u00e1t haszn\u00e1lj\u00e1k a Z v\u00e9g\u00e1ll\u00e1s helyett. Ha a \"probe:z_virtual_endstop\" t\u00edpust haszn\u00e1ljuk, akkor ne defini\u00e1ljunk position_endsto-pot a stepper_z konfigur\u00e1ci\u00f3s szakaszban. [probe] pin: # Szonda \u00e9rz\u00e9kel\u00e9si t\u0171. Ha a t\u0171 m\u00e1s mikrokontrolleren van, mint a Z # l\u00e9ptet\u0151k\u00f6n, akkor enged\u00e9lyezi a \"multi-mcu homing\"-ot. # Ezt a param\u00e9tert meg kell adni. #deactivate_on_each_sample: True # Ez hat\u00e1rozza meg, hogy a Klippernek v\u00e9gre kell-e hajtania a deaktiv\u00e1l\u00f3 # G-k\u00f3dot minden egyes vizsg\u00e1lati k\u00eds\u00e9rlet k\u00f6z\u00f6tt, amikor t\u00f6bb vizsg\u00e1lati # sorozatot hajt v\u00e9gre. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #x_offset: 0.0 # A t\u00e1vols\u00e1g (mm-ben) a szonda \u00e9s a f\u00fav\u00f3ka k\u00f6z\u00f6tt az X tengely ment\u00e9n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #y_offset: 0.0 # A szonda \u00e9s a f\u00fav\u00f3ka k\u00f6z\u00f6tti t\u00e1vols\u00e1g (mm-ben) az Y tengely ment\u00e9n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. z_offset: # A t\u00e1rgyasztal \u00e9s a f\u00fav\u00f3ka k\u00f6z\u00f6tti t\u00e1vols\u00e1g (mm-ben), amikor a szonda kiold. # Ezt a param\u00e9tert meg kell adni. #speed: 5.0 # A Z tengely sebess\u00e9ge (mm/sec-ben) tapint\u00e1skor. # Az alap\u00e9rtelmezett 5 mm/sec. #samples: 1 # Az egyes pontok m\u00e9r\u00e9s\u00e9nek sz\u00e1ma. # A vizsg\u00e1lt Z-\u00e9rt\u00e9kek \u00e1tlagol\u00e1sra ker\u00fclnek. # Az alap\u00e9rtelmezett az 1-szeri m\u00e9r\u00e9s. #sample_retract_dist: 2.0 # A nyomtat\u00f3fej felemel\u00e9s\u00e9nek t\u00e1vols\u00e1ga (mm-ben) az egyes m\u00e9r\u00e9sek # k\u00f6z\u00f6tt (egyn\u00e9l t\u00f6bbsz\u00f6ri m\u00e9r\u00e9s eset\u00e9n). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 2 mm. #lift_speed: # A Z tengely sebess\u00e9ge (mm/sec-ben) a szonda felemel\u00e9sekor a m\u00e9r\u00e9sek # k\u00f6z\u00f6tt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k ugyanaz, mint a \u201espeed\u201d param\u00e9tern\u00e9l. #samples_result: average # A sz\u00e1m\u00edt\u00e1si m\u00f3dszer t\u00f6bbsz\u00f6ri m\u00e9r\u00e9s eset\u00e9n \u201emedian\u201d vagy \u201eaverage\u201d. # Az alap\u00e9rtelmezett az average. #samples_tolerance: 0.100 # Az a maxim\u00e1lis Z t\u00e1vols\u00e1g (mm-ben), amellyel egy minta elt\u00e9rhet m\u00e1s # mint\u00e1kt\u00f3l. Ha ezt a t\u0171r\u00e9shat\u00e1rt t\u00fall\u00e9pik, akkor vagy hib\u00e1t jelez, vagy a # k\u00eds\u00e9rlet \u00fajraindul (l\u00e1sd: samples_tolerance_retries). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a 0,100 mm. #samples_tolerance_retries: 0 # Az \u00fajrapr\u00f3b\u00e1lkoz\u00e1sok sz\u00e1ma, ha olyan m\u00e9r\u00e9st csin\u00e1l, amely meghaladja a # samples_tolerance \u00e9rt\u00e9ket. \u00dajrapr\u00f3b\u00e1lkoz\u00e1skor az \u00f6sszes jelenlegi m\u00e9r\u00e9st # eldobja, \u00e9s a m\u00e9r\u00e9si k\u00eds\u00e9rlet \u00fajraindul. Ha a megadott sz\u00e1m\u00fa # \u00fajrapr\u00f3b\u00e1lkoz\u00e1s sor\u00e1n nem \u00e9rkezik \u00e9rv\u00e9nyes m\u00e9r\u00e9sk\u00e9szlet, akkor # hiba\u00fczenet jelenik meg. Az alap\u00e9rtelmezett nulla, ami hib\u00e1t okoz az els\u0151 # m\u00e9r\u00e9sen, amely meghaladja a samples_tolerance \u00e9rt\u00e9ket. #activate_gcode: # Az egyes m\u00e9r\u00e9si k\u00eds\u00e9rletek el\u0151tt v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. # L\u00e1sd a docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d form\u00e1tumhoz. Ez # akkor lehet hasznos, ha a szond\u00e1t valamilyen m\u00f3don aktiv\u00e1lni kell. Ne # adj ki itt olyan parancsot, amely mozgatja a nyomtat\u00f3fejet (pl. G1). # Az alap\u00e9rtelmez\u00e9s szerint nem fut semmilyen speci\u00e1lis G-k\u00f3d parancs # aktiv\u00e1l\u00e1skor. #deactivate_gcode: # Az egyes m\u00e9r\u00e9si k\u00eds\u00e9rletek befejez\u00e9se ut\u00e1n v\u00e9grehajtand\u00f3 G-k\u00f3d # parancsok list\u00e1ja. L\u00e1sd a docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d # form\u00e1tumhoz. Ne adj ki itt olyan parancsot, amely mozgatja a # nyomtat\u00f3fejet. Az alap\u00e9rtelmez\u00e9s az, hogy deaktiv\u00e1l\u00e1skor ne futtassunk # semmilyen speci\u00e1lis G-k\u00f3d parancsot.","title":"[probe]"},{"location":"Config_Reference.html#bltouch","text":"BLTouch szonda. Ezt a szakaszt (a szondaszakasz helyett) a BLTouch szonda enged\u00e9lyez\u00e9s\u00e9hez lehet defini\u00e1lni. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a BL-Touch \u00fatmutat\u00f3 \u00e9s a parancsreferencia c\u00edm\u0171 dokumentumot. Egy virtu\u00e1lis \"probe:z_virtual_endstop\" t\u0171 is l\u00e9trej\u00f6n (a r\u00e9szleteket l\u00e1sd a \"probe\" szakaszban). [bltouch] sensor_pin: # A BLTouch \u00e9rz\u00e9kel\u0151 \u00e9rintkez\u0151j\u00e9hez csatlakoztatott t\u0171. A legt\u00f6bb # BLTouch eszk\u00f6z megk\u00f6veteli az \u00e9rz\u00e9kel\u0151 \u00e9rintkez\u0151j\u00e9nek felh\u00faz\u00e1s\u00e1t # (a t\u0171n\u00e9v el\u00e9 illessze be a \"^\" karaktert). # Ezt a param\u00e9tert meg kell adni. control_pin: # A BLTouch vez\u00e9rl\u0151t\u0171j\u00e9hez csatlakoztatott t\u0171. # Ezt a param\u00e9tert meg kell adni. #pin_move_time: 0.680 # Az az id\u0151 (m\u00e1sodpercben), ameddig v\u00e1rni kell, am\u00edg a BLTouch t\u0171 # felfel\u00e9 vagy lefel\u00e9 mozog. Az alap\u00e9rtelmezett 0,680 m\u00e1sodperc. #stow_on_each_sample: True # Ez hat\u00e1rozza meg, hogy a Klippernek utas\u00edtania kell-e a t\u0171t, hogy # mozogjon felfel\u00e9 az egyes m\u00e9r\u00e9si k\u00eds\u00e9rletek k\u00f6z\u00f6tt, amikor t\u00f6bb # m\u00e9r\u00e9si sorozatot hajt v\u00e9gre. Miel\u0151tt False \u00e9rt\u00e9kre \u00e1ll\u00edtan\u00e1, olvasd # el a docs/BLTouch.md utas\u00edt\u00e1sait. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #probe_with_touch_mode: False # Ha ez True \u00e9rt\u00e9kre van \u00e1ll\u00edtva, akkor a Klipper \"touch_mode\" # m\u00f3dban vizsg\u00e1lja az eszk\u00f6zt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k False # (tapint\u00e1s \"pin_down\" m\u00f3dban). #pin_up_reports_not_triggered: True # \u00c1ll\u00edtsd be, hogy a BLTouch k\u00f6vetkezetesen \u201enot triggered\u201d # \u00e1llapotban jelentse-e a m\u00e9r\u00e9st a sikeres \u201epin_up\u201d parancs ut\u00e1n. # Ennek True-nak kell lennie minden eredeti BLTouch eszk\u00f6zn\u00e9l. # Miel\u0151tt False \u00e9rt\u00e9kre \u00e1ll\u00edtan\u00e1, olvasd el a docs/BLTouch.md # utas\u00edt\u00e1sait. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #pin_up_touch_mode_reports_triggered: True # \u00c1ll\u00edtsd be, hogy a BLTouch k\u00f6vetkezetesen \"triggered\" \u00e1llapotot # jelentse-e a \"pin_up\" parancs k\u00f6vesse a \"touch_mode\" parancsot. # Ennek True-nak kell lennie minden eredeti BLTouch eszk\u00f6zn\u00e9l. # Miel\u0151tt False \u00e9rt\u00e9kre \u00e1ll\u00edtan\u00e1, olvasd el a docs/BLTouch.md # utas\u00edt\u00e1sait. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #set_output_mode: # K\u00e9rj egy adott \u00e9rz\u00e9kel\u0151t\u0171s kimeneti m\u00f3dot a BLTouch V3.0 # (\u00e9s \u00fajabb) k\u00e9sz\u00fcl\u00e9ken. Ezt a be\u00e1ll\u00edt\u00e1st nem szabad m\u00e1s t\u00edpus\u00fa # szond\u00e1kon haszn\u00e1lni. \u00c1ll\u00edtsd \"5V\"-ra, ha 5 V-os \u00e9rz\u00e9kel\u0151t\u0171s # kimenetet k\u00edv\u00e1n k\u00e9rni (csak akkor haszn\u00e1ld, ha a vez\u00e9rl\u0151k\u00e1rty\u00e1nak # 5 V-os \u00fczemm\u00f3dra van sz\u00fcks\u00e9ge, \u00e9s 5 V-ot toler\u00e1l a bemeneti # jelvezet\u00e9k\u00e9n). \u00c1ll\u00edtsd \u201eOD\u201d \u00e9rt\u00e9kre, hogy az \u00e9rz\u00e9kel\u0151 \u00e9rintkez\u0151j\u00e9nek # kimenete nyitott leereszt\u00e9si m\u00f3dot haszn\u00e1ljon. # Az alap\u00e9rtelmezett az, hogy nem k\u00e9r kimeneti m\u00f3dot. #x_offset: #y_offset: #z_offset: #speed: #lift_speed: #samples: #sample_retract_dist: #samples_result: #samples_tolerance: #samples_tolerance_retries: # A param\u00e9terekkel kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a \"szonda\" r\u00e9szt.","title":"[bltouch]"},{"location":"Config_Reference.html#smart_effector","text":"A \"Smart Effector\" a Duet3d-t\u0151l egy Z-szond\u00e1t val\u00f3s\u00edt meg egy er\u0151\u00e9rz\u00e9kel\u0151 seg\u00edts\u00e9g\u00e9vel. Ezt a r\u00e9szt a [probe] helyett defini\u00e1lhatjuk a Smart Effector specifikus funkci\u00f3inak enged\u00e9lyez\u00e9s\u00e9hez. Ez lehet\u0151v\u00e9 teszi a fut\u00e1sidej\u0171 parancsok haszn\u00e1lat\u00e1t is a Smart Effector param\u00e9tereinek fut\u00e1sidej\u0171 be\u00e1ll\u00edt\u00e1s\u00e1hoz. [smart_effector] pin: # A Smart Effector Z Probe kimeneti t\u0171j\u00e9hez (5. csap) csatlakoztatott t\u0171. Vedd # figyelembe, hogy a lapon l\u00e9v\u0151 pullup ellen\u00e1ll\u00e1s \u00e1ltal\u00e1ban nem sz\u00fcks\u00e9ges. # Ha azonban a kimeneti t\u0171n pullup ellen\u00e1ll\u00e1ssal csatlakoztatj\u00e1k a lapon # l\u00e9v\u0151 t\u0171h\u00f6z, akkor ennek az ellen\u00e1ll\u00e1snak nagy \u00e9rt\u00e9k\u0171nek kell lennie # (pl. 10K Ohm vagy t\u00f6bb). N\u00e9h\u00e1ny lapon alacsony \u00e9rt\u00e9k\u0171 pullup ellen\u00e1ll\u00e1s # van a Z szonda bemenet\u00e9n, ami val\u00f3sz\u00edn\u0171leg egy mindig kioldott szonda # \u00e1llapotot fog eredm\u00e9nyezni. Ebben az esetben csatlakoztassa a # Smart Effector-t a k\u00f6vetkez\u0151h\u00f6z a k\u00e1rtya egy m\u00e1sik t\u0171j\u00e9hez. # Ez a param\u00e9ter sz\u00fcks\u00e9ges. #control_pin: # A Smart Effector vez\u00e9rl\u0151 bemeneti pinj\u00e9hez (7-es pin) csatlakoztatott pin. # Ha van, a Smart Effector \u00e9rz\u00e9kenys\u00e9g programoz\u00e1si parancsai v\u00e1lnak # el\u00e9rhet\u0151v\u00e9. #probe_accel: # Ha be van \u00e1ll\u00edtva, korl\u00e1tozza a tapogat\u00f3 mozg\u00e1sok gyorsul\u00e1s\u00e1t # (mm/sec^2-ben). A hirtelen nagy gyorsul\u00e1s a tapogat\u00f3 mozg\u00e1s kezdet\u00e9n # t\u00e9ves tapint\u00e1sind\u00edt\u00e1st okozhat, k\u00fcl\u00f6n\u00f6sen, ha a hotend neh\u00e9z. Ennek # megakad\u00e1lyoz\u00e1s\u00e1ra sz\u00fcks\u00e9g lehet a gyorsul\u00e1s cs\u00f6kkent\u00e9s\u00e9re a # szond\u00e1z\u00f3 mozg\u00e1sok gyorsul\u00e1s\u00e1val ezzel a param\u00e9terrel. #recovery_time: 0.4 # Az utaz\u00e1si mozg\u00e1sok \u00e9s a tapogat\u00f3 mozg\u00e1sok k\u00f6z\u00f6tti k\u00e9sleltet\u00e9s # m\u00e1sodpercben. A szond\u00e1z\u00e1s el\u0151tti gyors mozgat\u00e1s t\u00e9ves # szondakapcsol\u00e1st eredm\u00e9nyezhet. Ez \"A szonda a mozg\u00e1st megel\u0151z\u0151en # kioldott\" hib\u00e1t okozhat, ha nincs k\u00e9sleltet\u00e9s be\u00e1ll\u00edtva. # A 0 \u00e9rt\u00e9k kikapcsolja a helyre\u00e1ll\u00edt\u00e1si k\u00e9sleltet\u00e9st. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,4. #x_offset: #y_offset: # Nem kell be\u00e1ll\u00edtani (vagy 0-ra kell \u00e1ll\u00edtani). z_offset: # A szonda kiold\u00e1si magass\u00e1ga. Kezd -0,1 (mm) \u00e9rt\u00e9kkel, \u00e9s k\u00e9s\u0151bb # \u00e1ll\u00edtsd be a k\u00f6vetkez\u0151vel `PROBE_CALIBRATE` paranccsal. # Ezt a param\u00e9tert meg kell adni. #speed: # A Z tengely sebess\u00e9ge (mm/sec-ben) tapogat\u00e1skor. Javasoljuk, hogy a # tapint\u00e1si sebess\u00e9get 20 mm/sec sebess\u00e9ggel kezdj\u00fck, \u00e9s sz\u00fcks\u00e9g # szerint \u00e1ll\u00edtsuk be, hogy jav\u00edtsuk a a tapint\u00e1s kiold\u00e1s\u00e1nak pontoss\u00e1g\u00e1t # \u00e9s megism\u00e9telhet\u0151s\u00e9g\u00e9t. #samples: #sample_retract_dist: #samples_result: #samples_tolerance: #samples_tolerance_retries: #activate_gcode: #deactivate_gcode: #deactivate_on_each_sample: # A fenti param\u00e9terekkel kapcsolatos tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt # l\u00e1sd a \"szonda\" r\u00e9szt.","title":"[smart_effector]"},{"location":"Config_Reference.html#tovabbi-leptetomotorok-es-extruderek","text":"","title":"Tov\u00e1bbi l\u00e9ptet\u0151motorok \u00e9s extruderek"},{"location":"Config_Reference.html#stepper_z1","text":"T\u00f6bb l\u00e9ptet\u0151motoros tengelyek. Egy cartesian st\u00edlus\u00fa nyomtat\u00f3n\u00e1l az adott tengelyt vez\u00e9rl\u0151 l\u00e9ptet\u0151 tov\u00e1bbi konfigur\u00e1ci\u00f3s blokkokkal rendelkezhet, amelyek olyan l\u00e9ptet\u0151ket hat\u00e1roznak meg, amelyeket az els\u0151dleges l\u00e9ptet\u0151vel egy\u00fctt kell l\u00e9ptetni. B\u00e1rmennyi szakasz defini\u00e1lhat\u00f3 1-t\u0151l kezd\u0151d\u0151 numerikus ut\u00f3taggal (p\u00e9ld\u00e1ul \"stepper_z1\", \"stepper_z2\" stb.). [stepper_z1] #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: # A fenti param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd a \"l\u00e9ptet\u0151\" r\u00e9szt. #endstop_pin: # Ha egy endstop_pin defini\u00e1lva van a kieg\u00e9sz\u00edt\u0151 l\u00e9ptet\u0151h\u00f6z, akkor # a l\u00e9ptet\u0151 visszat\u00e9r, am\u00edg az v\u00e9g\u00e1ll\u00e1s ki nem v\u00e1lt. Ellenkez\u0151 esetben # a l\u00e9ptet\u0151 mindaddig visszat\u00e9r, am\u00edg a tengely els\u0151dleges # l\u00e9ptet\u0151j\u00e9nek v\u00e9g\u00e1ll\u00e1skapcsol\u00f3ja ki nem v\u00e1lt.","title":"[stepper_z1]"},{"location":"Config_Reference.html#extruder1","text":"T\u00f6bb extruderes nyomtat\u00f3 eset\u00e9n minden tov\u00e1bbi extruder ut\u00e1n adj hozz\u00e1 egy \u00faj extruder szakaszt. A tov\u00e1bbi extruder szakaszok neve legyen \"extruder1\", \"extruder2\", \"extruder3\", \u00e9s \u00edgy tov\u00e1bb. A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"extruder\" szakaszban. L\u00e1sd a sample-multi-extruder.cfg p\u00e9ldakonfigur\u00e1ci\u00f3t. [extruder1] #step_pin: #dir_pin: #... # Tekintsd meg az \"extruder\" r\u00e9szt az el\u00e9rhet\u0151 l\u00e9ptet\u0151 \u00e9s # f\u0171t\u0151param\u00e9terek\u00e9rt. #shared_heater: # Ez az opci\u00f3 elavult, \u00e9s t\u00f6bb\u00e9 nem kell megadni.","title":"[extruder1]"},{"location":"Config_Reference.html#dual_carriage","text":"Az egy tengelyen k\u00e9t kocsival rendelkez\u0151 cartesian nyomtat\u00f3k t\u00e1mogat\u00e1sa. Az akt\u00edv kocsit a SET_DUAL_CARRIAGE kiterjesztett G-k\u00f3d parancs seg\u00edts\u00e9g\u00e9vel \u00e1ll\u00edthatjuk be. A \"SET_DUAL_CARRIAGE CARRIAGE=1\" parancs az ebben a szakaszban meghat\u00e1rozott kocsit aktiv\u00e1lja (a CARRIAGE=0 az els\u0151dleges kocsi aktiv\u00e1l\u00e1s\u00e1t \u00e1ll\u00edtja vissza). A kett\u0151s kocsit\u00e1mogat\u00e1st \u00e1ltal\u00e1ban extra extruderekkel kombin\u00e1lj\u00e1k. A SET_DUAL_CARRIAGE parancsot gyakran az ACTIVATE_EXTRUDER paranccsal egyidej\u0171leg h\u00edvj\u00e1k meg. \u00dcgyelj arra, hogy a kocsikat a deaktiv\u00e1l\u00e1s sor\u00e1n parkol\u00f3 \u00e1ll\u00e1sba k\u00fcldje. L\u00e1sd a sample-idex.cfg p\u00e9ldakonfigur\u00e1ci\u00f3t. [dual_carriage] axis: # Azon a tengelyen, amelyen ez az extra kocsi van (X vagy Y). # Ezt a param\u00e9tert meg kell adni. #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: #endstop_pin: #position_endstop: #position_min: #position_max: # A fenti param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd a \"l\u00e9ptet\u0151\" r\u00e9szt.","title":"[dual_carriage]"},{"location":"Config_Reference.html#extruder_stepper","text":"Az extruder mozg\u00e1s\u00e1hoz szinkroniz\u00e1lt tov\u00e1bbi l\u00e9ptet\u0151k t\u00e1mogat\u00e1sa (tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3 \"extruder_stepper\" el\u0151taggal). Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancshivatkoz\u00e1s dokumentumot. [extruder_stepper my_extra_stepper] extruder: # Az extruder, amelyhez ez a l\u00e9ptet\u0151 szinkroniz\u00e1lva van. Ha ez # \u00fcres karakterl\u00e1ncra van \u00e1ll\u00edtva, akkor a l\u00e9ptet\u0151 nem lesz # szinkroniz\u00e1lva az extruderrel. Ezt a param\u00e9tert meg kell adni. #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: # A fenti param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd a \"l\u00e9ptet\u0151\" r\u00e9szt.","title":"[extruder_stepper]"},{"location":"Config_Reference.html#manual_stepper","text":"K\u00e9zi l\u00e9ptet\u0151k (tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3 \"manual_stepper\" el\u0151taggal). Ezeket a l\u00e9ptet\u0151ket a MANUAL_STEPPER G-k\u00f3d parancs vez\u00e9rli. P\u00e9ld\u00e1ul: \"MANUAL_STEPPER STEPPER=my_stepper MOVE=10 SPEED=5\". A MANUAL_STEPPER parancs le\u00edr\u00e1s\u00e1t l\u00e1sd a G-k\u00f3dok f\u00e1jlban. A l\u00e9ptet\u0151k nem kapcsol\u00f3dnak a nyomtat\u00f3 norm\u00e1l kinematik\u00e1j\u00e1hoz. [manual_stepper my_stepper] #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: # A param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"l\u00e9ptet\u0151\" r\u00e9szben. #velocity: # \u00c1ll\u00edtsd be a l\u00e9ptet\u0151 alap\u00e9rtelmezett sebess\u00e9g\u00e9t (mm/sec-ben). # Ezt az \u00e9rt\u00e9ket haszn\u00e1lja a rendszer, ha a MANUAL_STEPPER parancs nem # ad meg SPEED param\u00e9tert. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5 mm/sec. #accel: # \u00c1ll\u00edtsd be a l\u00e9ptet\u0151 alap\u00e9rtelmezett gyorsul\u00e1s\u00e1t (mm/sec^2-en). A nulla # gyorsul\u00e1s nem eredm\u00e9nyez gyorsul\u00e1st. Ezt az \u00e9rt\u00e9ket haszn\u00e1lja a rendszer, # ha a MANUAL_STEPPER parancs nem ad meg ACCEL param\u00e9tert. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #endstop_pin: # V\u00e9g\u00e1ll\u00e1skapcsol\u00f3 csatlakoz\u00e1si t\u0171. Ha meg van adva, akkor egy # STOP_ON_ENDSTOP param\u00e9ter hozz\u00e1ad\u00e1s\u00e1val a MANUAL_STEPPER # mozg\u00e1sparancsokhoz \"kezd\u0151pont felv\u00e9teli mozg\u00e1sok\" hajthat\u00f3k v\u00e9gre.","title":"[manual_stepper]"},{"location":"Config_Reference.html#egyedi-futotestek-es-erzekelok","text":"","title":"Egyedi f\u0171t\u0151testek \u00e9s \u00e9rz\u00e9kel\u0151k"},{"location":"Config_Reference.html#verify_heater","text":"A f\u0171t\u00e9s \u00e9s a h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 ellen\u0151rz\u00e9se. A f\u0171t\u0151elemek ellen\u0151rz\u00e9se automatikusan enged\u00e9lyezve van minden olyan f\u0171t\u0151elemhez, amely a nyomtat\u00f3n be van \u00e1ll\u00edtva. Az alap\u00e9rtelmezett be\u00e1ll\u00edt\u00e1sok m\u00f3dos\u00edt\u00e1s\u00e1hoz haszn\u00e1ld a verify_heater szakaszokat. [verify_heater heater_config_name] #max_error: 120 # A maxim\u00e1lis \u201ehalmozott h\u0151m\u00e9rs\u00e9kleti hiba\u201d a hiba emel\u00e9se el\u0151tt. # A kisebb \u00e9rt\u00e9kek szigor\u00fabb ellen\u0151rz\u00e9st eredm\u00e9nyeznek, a nagyobb # \u00e9rt\u00e9kek pedig t\u00f6bb id\u0151t biztos\u00edtanak a hibajelent\u00e9s el\u0151tt. # Pontosabban, a h\u0151m\u00e9rs\u00e9kletet m\u00e1sodpercenk\u00e9nt egyszer ellen\u0151rzik, # \u00e9s ha k\u00f6zel van a c\u00e9lh\u0151m\u00e9rs\u00e9klethez, akkor a bels\u0151 \"hibasz\u00e1ml\u00e1l\u00f3\" # null\u00e1z\u00f3dik. Ellenkez\u0151 esetben, ha a h\u0151m\u00e9rs\u00e9klet a c\u00e9ltartom\u00e1ny alatt # van, akkor a sz\u00e1ml\u00e1l\u00f3t annyival n\u00f6velj\u00fck, amennyivel a jelentett # h\u0151m\u00e9rs\u00e9klet elt\u00e9r ett\u0151l a tartom\u00e1nyt\u00f3l. Ha a sz\u00e1ml\u00e1l\u00f3 meghaladja ezt # a \"max_error\" \u00e9rt\u00e9ket, hiba\u00fczenet jelenik meg. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 120. #check_gain_time: # Ez szab\u00e1lyozza a f\u0171t\u0151elem ellen\u0151rz\u00e9s\u00e9t a kezdeti f\u0171t\u00e9s sor\u00e1n. # A kisebb \u00e9rt\u00e9kek szigor\u00fabb ellen\u0151rz\u00e9st eredm\u00e9nyeznek, a nagyobb # \u00e9rt\u00e9kek pedig t\u00f6bb id\u0151t biztos\u00edtanak a hibajelent\u00e9s el\u0151tt. # Pontosabban, a kezdeti f\u0171t\u00e9s sor\u00e1n, am\u00edg a f\u0171t\u0151elem h\u0151m\u00e9rs\u00e9klete # ezen id\u0151kereten bel\u00fcl (m\u00e1sodpercben van megadva) megemelkedik, # a bels\u0151 \"hibasz\u00e1ml\u00e1l\u00f3\" null\u00e1z\u00f3dik. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 20 # m\u00e1sodperc az extruder-ekn\u00e9l \u00e9s 60 m\u00e1sodperc a heater_bed # eset\u00e9ben. #hysteresis: 5 # A maxim\u00e1lis h\u0151m\u00e9rs\u00e9klet-k\u00fcl\u00f6nbs\u00e9g (Celsius fokban) a # c\u00e9lh\u0151m\u00e9rs\u00e9klethez k\u00e9pest, amely a c\u00e9l tartom\u00e1ny\u00e1ban van. Ez # szab\u00e1lyozza a max_error tartom\u00e1ny ellen\u0151rz\u00e9s\u00e9t. Ritka az \u00e9rt\u00e9k # testreszab\u00e1sa. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #heating_gain: 2 # Az a minim\u00e1lis h\u0151m\u00e9rs\u00e9klet (Celsiusban), amellyel a f\u0171t\u00e9snek # n\u00f6velnie kell a check_gain_time ellen\u0151rz\u00e9s sor\u00e1n. # Ritka az \u00e9rt\u00e9k testreszab\u00e1sa. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 2.","title":"[verify_heater]"},{"location":"Config_Reference.html#homing_heaters","text":"Eszk\u00f6z a f\u0171t\u0151berendez\u00e9sek letilt\u00e1s\u00e1ra, amikor egy tengely kezd\u0151pont felv\u00e9telt vagy szintez\u00e9st csin\u00e1l. [homing_heaters] #steppers: # A f\u0171t\u0151elemek vessz\u0151vel elv\u00e1lasztott list\u00e1ja, amelyek miatt le kell # tiltani a f\u0171t\u00e9st. Az alap\u00e9rtelmez\u00e9s az, hogy letiltja a f\u0171t\u0151elemeket # minden ind\u00edt\u00e1si/m\u00e9r\u00e9si l\u00e9p\u00e9shez. # Tipikus p\u00e9lda: stepper_z #heaters: # A f\u0171t\u0151testek vessz\u0151vel elv\u00e1lasztott list\u00e1ja, amelyet le kell tiltani # az elhelyez\u00e9si/m\u00e9r\u00e9si l\u00e9p\u00e9sek sor\u00e1n. Az alap\u00e9rtelmezett az \u00f6sszes # f\u0171t\u0151elem letilt\u00e1sa. Tipikus p\u00e9lda: extruder, heater_bed","title":"[homing_heaters]"},{"location":"Config_Reference.html#thermistor","text":"Egy\u00e9ni termisztorok (tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3 \"termisztor\" el\u0151taggal). Egy\u00e9ni termisztor haszn\u00e1lhat\u00f3 a f\u0171t\u0151berendez\u00e9s konfigur\u00e1ci\u00f3s szakasz\u00e1nak sensor_type mez\u0151j\u00e9ben. (Ha p\u00e9ld\u00e1ul egy \"[thermistor my_thermistor]\" szekci\u00f3t defini\u00e1lunk, akkor a f\u0171t\u0151elem defini\u00e1l\u00e1sakor haszn\u00e1lhatjuk a \"sensor_type: my_thermistor\" mez\u0151t.). \u00dcgyelj arra, hogy a termisztor szekci\u00f3t a konfigur\u00e1ci\u00f3s f\u00e1jlban az els\u0151 f\u0171t\u0151szekci\u00f3ban val\u00f3 haszn\u00e1lata f\u00f6l\u00e9 helyezd. [thermistor my_thermistor] #temperature1: #resistance1: #temperature2: #resistance2: #temperature3: #resistance3: # H\u00e1rom ellen\u00e1ll\u00e1sm\u00e9r\u00e9s (ohmban) adott h\u0151m\u00e9rs\u00e9kleten (Celsiusban). # A h\u00e1rom m\u00e9r\u00e9st a termisztor Steinhart-Hart egy\u00fctthat\u00f3inak # kisz\u00e1m\u00edt\u00e1s\u00e1hoz haszn\u00e1ljuk fel. Ezeket a param\u00e9tereket meg kell adni, # ha Steinhart-Hartot haszn\u00e1lunk a termisztor meghat\u00e1roz\u00e1s\u00e1hoz. #beta: # Alternat\u00edv megold\u00e1sk\u00e9nt a temperature1, resistance1, \u00e9s beta # megadhat\u00f3 a termisztor param\u00e9tereinek meghat\u00e1roz\u00e1s\u00e1hoz. Ezt a # param\u00e9tert akkor kell megadni, ha \"beta\"-t haszn\u00e1l a termisztor # meghat\u00e1roz\u00e1s\u00e1hoz.","title":"[thermistor]"},{"location":"Config_Reference.html#adc_temperature","text":"Egyedi ADC h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"adc_temperature\" el\u0151taggal). Ez lehet\u0151v\u00e9 teszi egy olyan egy\u00e9ni h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 defini\u00e1l\u00e1s\u00e1t, amely egy fesz\u00fclts\u00e9get m\u00e9r egy anal\u00f3g-digit\u00e1lis \u00e1talak\u00edt\u00f3 (ADC) t\u0171n, \u00e9s line\u00e1ris interpol\u00e1ci\u00f3t haszn\u00e1l a konfigur\u00e1lt h\u0151m\u00e9rs\u00e9klet/fesz\u00fclts\u00e9g (vagy h\u0151m\u00e9rs\u00e9klet/ellen\u00e1ll\u00e1s) m\u00e9r\u00e9sek k\u00f6z\u00f6tt a h\u0151m\u00e9rs\u00e9klet meghat\u00e1roz\u00e1s\u00e1hoz. Az \u00edgy kapott \u00e9rz\u00e9kel\u0151 sensor_type-k\u00e9nt haszn\u00e1lhat\u00f3 egy f\u0171t\u0151szekci\u00f3ban. (Ha p\u00e9ld\u00e1ul egy \"[adc_temperature my_sensor]\" szekci\u00f3t defini\u00e1lunk, akkor egy f\u0171t\u0151elem defini\u00e1l\u00e1sakor haszn\u00e1lhatjuk a \"sensor_type: my_sensor\" szekci\u00f3t). \u00dcgyelj arra, hogy a szenzor szekci\u00f3t a config f\u00e1jlban az els\u0151 felhaszn\u00e1l\u00e1sa f\u00f6l\u00e9 helyezd a f\u0171t\u0151szekci\u00f3ban. [adc_temperature my_sensor] #temperature1: #voltage1: #temperature2: #voltage2: #... # H\u0151m\u00e9rs\u00e9kletek (Celsiusban) \u00e9s fesz\u00fclts\u00e9gek (V-ban) k\u00e9szlete referenciak\u00e9nt # a h\u0151m\u00e9rs\u00e9klet konvert\u00e1l\u00e1sakor. Az \u00e9rz\u00e9kel\u0151t haszn\u00e1l\u00f3 f\u0171t\u0151r\u00e9sz az adc_voltage # \u00e9s a voltage_offset param\u00e9tereket is megadhatja az ADC fesz\u00fclts\u00e9g meghat\u00e1roz\u00e1s\u00e1hoz # (a r\u00e9szletek\u00e9rt l\u00e1sd a \"\u00c1ltal\u00e1nos h\u0151m\u00e9rs\u00e9kleter\u0151s\u00edt\u0151k\" r\u00e9szt). # Legal\u00e1bb k\u00e9t m\u00e9r\u00e9st kell megadni. #temperature1: #resistance1: #temperature2: #resistance2: #... # Alternat\u00edvak\u00e9nt megadhatunk egy sorban h\u0151m\u00e9rs\u00e9kletet (Celsiusban) is # \u00e9s ellen\u00e1ll\u00e1st (Ohmban), hogy referenciak\u00e9nt haszn\u00e1lhassuk, amikor \u00e1talak\u00edtunk egy # h\u0151m\u00e9rs\u00e9kletet. Ezt az \u00e9rz\u00e9kel\u0151t haszn\u00e1l\u00f3 f\u0171t\u0151szekci\u00f3ban megadhatunk egy # pullup_resistor param\u00e9tert (a r\u00e9szleteket l\u00e1sd az \"extruder\" szakaszban). # A c\u00edmen legal\u00e1bb k\u00e9t m\u00e9r\u00e9st kell megadni.","title":"[adc_temperature]"},{"location":"Config_Reference.html#heater_generic","text":"\u00c1ltal\u00e1nos f\u0171t\u0151testek (tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3 a \"heater_generic\" el\u0151taggal). Ezek a f\u0171t\u0151berendez\u00e9sek a standard f\u0171t\u0151berendez\u00e9sekhez (extruderek, f\u0171t\u00f6tt t\u00e1rgyasztal) hasonl\u00f3an viselkednek. A SET_HEATER_TEMPERATURE paranccsal (l\u00e1sd a G-k\u00f3dok dokumentumban) \u00e1ll\u00edthatjuk be a c\u00e9lh\u0151m\u00e9rs\u00e9kletet. [heater_generic my_generic_heater] #gcode_id: # A h\u0151m\u00e9rs\u00e9klet jelent\u00e9s\u00e9n\u00e9l az M105 parancsban # haszn\u00e1land\u00f3 azonos\u00edt\u00f3. # Ezt a param\u00e9tert meg kell adni. #heater_pin: #max_power: #sensor_type: #sensor_pin: #smooth_time: #control: #pid_Kp: #pid_Ki: #pid_Kd: #pwm_cycle_time: #min_temp: #max_temp: # A fenti param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz # l\u00e1sd az \"extruder\" r\u00e9szt.","title":"[heater_generic]"},{"location":"Config_Reference.html#temperature_sensor","text":"\u00c1ltal\u00e1nos h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k. Tetsz\u0151leges sz\u00e1m\u00fa tov\u00e1bbi h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151t lehet defini\u00e1lni, amelyek az M105 parancson kereszt\u00fcl jelentenek. [temperature_sensor my_sensor] #sensor_type: #sensor_pin: #min_temp: #max_temp: # A fenti param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd az # \"extruder\" r\u00e9szt. #gcode_id: # L\u00e1sd a \"heater_generic\" r\u00e9szt a param\u00e9ter # meghat\u00e1roz\u00e1s\u00e1hoz.","title":"[temperature_sensor]"},{"location":"Config_Reference.html#homerseklet-erzekelok","text":"A Klipper sz\u00e1mos t\u00edpus\u00fa h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 defin\u00edci\u00f3j\u00e1t tartalmazza. Ezek az \u00e9rz\u00e9kel\u0151k b\u00e1rmely olyan konfigur\u00e1ci\u00f3s szakaszban haszn\u00e1lhat\u00f3k, amely h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151t ig\u00e9nyel (p\u00e9ld\u00e1ul az [extruder] vagy a [heater_bed] szakaszban).","title":"H\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k"},{"location":"Config_Reference.html#kozos-termisztorok","text":"K\u00f6z\u00f6ns\u00e9ges termisztorok. A k\u00f6vetkez\u0151 param\u00e9terek \u00e1llnak rendelkez\u00e9sre azokban a f\u0171t\u0151szakaszban, amelyek ezen \u00e9rz\u00e9kel\u0151k valamelyik\u00e9t haszn\u00e1lj\u00e1k. sensor_type: # Az egyik \"EPCOS 100K B57560G104F\", \"ATC Semitec 104GT-2\", # \"ATC Semitec 104NT-4-R025H42G\", \"Generic 3950\", # \"Honeywell 100K 135-104LAG-J01\", \"NTC 100K MGB18-104F39050L32\", # \"SliceEngineering 450\", vagy \"TDK NTCG104LH104JT1\" sensor_pin: # Anal\u00f3g bemeneti \u00e9rintkez\u0151 csatlakozik a termisztorhoz. # Ezt a param\u00e9tert meg kell adni. #pullup_resistor: 4700 # A termisztorhoz csatlakoztatott felh\u00faz\u00f3 ellen\u00e1ll\u00e1sa (ohmban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 4700 ohm. #inline_resistor: 0 # A termisztorral egy vonalban elhelyezett extra (nem h\u0151v\u00e1ltoz\u00f3) # ellen\u00e1ll\u00e1s ellen\u00e1ll\u00e1sa (ohmban). Ritka az ilyen be\u00e1ll\u00edt\u00e1s. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0 ohm.","title":"K\u00f6z\u00f6s termisztorok"},{"location":"Config_Reference.html#kozos-homerseklet-erositok","text":"K\u00f6z\u00f6s h\u0151m\u00e9rs\u00e9klet\u0171 er\u0151s\u00edt\u0151k. A k\u00f6vetkez\u0151 param\u00e9terek \u00e1llnak rendelkez\u00e9sre azokban a f\u0171t\u0151szakaszokban, amelyek ezen \u00e9rz\u00e9kel\u0151k valamelyik\u00e9t haszn\u00e1lj\u00e1k. sensor_type: # A \u201ePT100 INA826\u201d, \u201eAD595\u201d, \u201eAD597\u201d, \u201eAD8494\u201d, \u201eAD8495\u201d, # \u201eAD8496\u201d vagy \u201eAD8497\u201d k\u00f6z\u00fcl az egyik. sensor_pin: # Anal\u00f3g bemeneti \u00e9rintkez\u0151 csatlakozik az \u00e9rz\u00e9kel\u0151h\u00f6z. # Ezt a param\u00e9tert meg kell adni. #adc_voltage: 5.0 # Az ADC \u00f6sszehasonl\u00edt\u00f3 fesz\u00fclts\u00e9ge (V-ban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 5. #voltage_offset: 0 # Az ADC fesz\u00fclts\u00e9g eltol\u00e1sa (V-ban). Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0.","title":"K\u00f6z\u00f6s h\u0151m\u00e9rs\u00e9klet er\u0151s\u00edt\u0151k"},{"location":"Config_Reference.html#kozvetlenul-csatlakoztatott-pt1000-erzekelo","text":"K\u00f6zvetlen\u00fcl csatlakoztatott PT1000 \u00e9rz\u00e9kel\u0151. A k\u00f6vetkez\u0151 param\u00e9terek \u00e1llnak rendelkez\u00e9sre azokban a f\u0171t\u00e9si szakaszokban, amelyek valamelyik \u00e9rz\u00e9kel\u0151t haszn\u00e1lj\u00e1k. sensor_type: PT1000 sensor_pin: # Anal\u00f3g bemeneti \u00e9rintkez\u0151 csatlakozik az \u00e9rz\u00e9kel\u0151h\u00f6z. # Ezt a param\u00e9tert meg kell adni. #pullup_resistor: 4700 # Az \u00e9rz\u00e9kel\u0151h\u00f6z csatlakoztatott felh\u00faz\u00f3 ellen\u00e1ll\u00e1s (ohmban). # Az alap\u00e9rtelmezett 4700 ohm.","title":"K\u00f6zvetlen\u00fcl csatlakoztatott PT1000 \u00e9rz\u00e9kel\u0151"},{"location":"Config_Reference.html#maxxxxxx-homerseklet-erzekelok","text":"MAXxxxxx soros perif\u00e9ri\u00e1s interf\u00e9sz (SPI) h\u0151m\u00e9rs\u00e9klet-alap\u00fa \u00e9rz\u00e9kel\u0151k. A k\u00f6vetkez\u0151 param\u00e9terek \u00e1llnak rendelkez\u00e9sre azokban a f\u0171t\u00e9si szakaszokban, amelyek ezen \u00e9rz\u00e9kel\u0151t\u00edpusok valamelyik\u00e9t haszn\u00e1lj\u00e1k. sensor_type: # A \u201eMAX6675\u201d, \u201eMAX31855\u201d, \u201eMAX31856\u201d vagy \u201eMAX31865\u201d egyike. sensor_pin: # Az \u00e9rz\u00e9kel\u0151 chip kiv\u00e1laszt\u00e1si sora. Ezt a param\u00e9tert meg kell adni. #spi_speed: 4000000 # A chippel val\u00f3 kommunik\u00e1ci\u00f3 sor\u00e1n haszn\u00e1land\u00f3 SPI-sebess\u00e9g # (hz-ben). Az alap\u00e9rtelmezett \u00e9rt\u00e9k 4000000. #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t az \"\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben tal\u00e1lja. #tc_type: K #tc_use_50Hz_filter: False #tc_averaging_count: 1 # A fenti param\u00e9terek a MAX31856 chipek \u00e9rz\u00e9kel\u0151param\u00e9tereit # szab\u00e1lyozz\u00e1k. Az egyes param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a # param\u00e9ter neve mellett tal\u00e1lhat\u00f3k a fenti list\u00e1ban. #rtd_nominal_r: 100 #rtd_reference_r: 430 #rtd_num_of_wires: 2 #rtd_use_50Hz_filter: False # A fenti param\u00e9terek a MAX31865 chipek \u00e9rz\u00e9kel\u0151param\u00e9tereit # szab\u00e1lyozz\u00e1k. Az egyes param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a # param\u00e9ter neve mellett tal\u00e1lhat\u00f3k a fenti list\u00e1ban.","title":"MAXxxxxx h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k"},{"location":"Config_Reference.html#bmp280bme280bme680-homerseklet-erzekelo","text":"BMP280/BME280/BME680 k\u00e9tvezet\u00e9kes interf\u00e9sz (I2C) k\u00f6rnyezeti \u00e9rz\u00e9kel\u0151k. Vedd figyelembe, hogy ezeket az \u00e9rz\u00e9kel\u0151ket nem extruderekkel \u00e9s f\u0171t\u00f6tt t\u00e1rgyasztalokkal val\u00f3 haszn\u00e1latra sz\u00e1nj\u00e1k, hanem a k\u00f6rnyezeti h\u0151m\u00e9rs\u00e9klet (C), a nyom\u00e1s (hPa), a relat\u00edv p\u00e1ratartalom \u00e9s a BME680 eset\u00e9ben a g\u00e1zszint ellen\u0151rz\u00e9s\u00e9re. L\u00e1sd sample-macros.cfg egy gcode_macro-t, amely a h\u0151m\u00e9rs\u00e9klet mellett a nyom\u00e1s \u00e9s a p\u00e1ratartalom m\u00e9r\u00e9s\u00e9re is haszn\u00e1lhat\u00f3. sensor_type: BME280 #i2c_address: # Az alap\u00e9rtelmezett 118 (0x76). Egyes BME280 \u00e9rz\u00e9kel\u0151k c\u00edme 119 # (0x77). #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben.","title":"BMP280/BME280/BME680 h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151"},{"location":"Config_Reference.html#htu21d-erzekelo","text":"HTU21D k\u00e9tvezet\u00e9kes interf\u00e9sz (I2C) k\u00f6rnyezeti \u00e9rz\u00e9kel\u0151. Vedd figyelembe, hogy ezt az \u00e9rz\u00e9kel\u0151t nem extruderekkel \u00e9s f\u0171t\u00f6tt t\u00e1rgyasztalokkal val\u00f3 haszn\u00e1latra sz\u00e1nj\u00e1k, hanem a k\u00f6rnyezeti h\u0151m\u00e9rs\u00e9klet (C) \u00e9s a relat\u00edv p\u00e1ratartalom ellen\u0151rz\u00e9s\u00e9re. L\u00e1sd sample-macros.cfg egy gcode_macro-t, amely a h\u0151m\u00e9rs\u00e9klet mellett a p\u00e1ratartalom jelent\u00e9s\u00e9re is haszn\u00e1lhat\u00f3. sensor_type: # A k\u00f6vetkez\u0151nek kell lennie: \"HTU21D\", \"SI7013\", \"SI7020\", # \"SI7021\" vagy \"SHT21\" #i2c_address: # Az alap\u00e9rtelmezett 64 (0x40). #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #htu21d_hold_master: # Ha az \u00e9rz\u00e9kel\u0151 k\u00e9pes megtartani az I2C buffot olvas\u00e1s k\u00f6zben. # Ha True, az olvas\u00e1s k\u00f6zben m\u00e1s buszkommunik\u00e1ci\u00f3 nem # hajthat\u00f3 v\u00e9gre. Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #htu21d_resolution: # A h\u0151m\u00e9rs\u00e9klet \u00e9s a p\u00e1ratartalom leolvas\u00e1s\u00e1nak felbont\u00e1sa. # Az \u00e9rv\u00e9nyes \u00e9rt\u00e9kek a k\u00f6vetkez\u0151k: # 'TEMP14_HUM12' -> 14 bit a h\u0151m\u00e9rs\u00e9klethez \u00e9s 12 bit a p\u00e1ratartalomhoz # 'TEMP13_HUM10' -> 13 bit a h\u0151m\u00e9rs\u00e9klethez \u00e9s 10 bit a p\u00e1ratartalomhoz # 'TEMP12_HUM08' -> 12 bit a h\u0151m\u00e9rs\u00e9klethez \u00e9s 08 bit a p\u00e1ratartalomhoz # 'TEMP11_HUM11' -> 11 bit a h\u0151m\u00e9rs\u00e9klethez \u00e9s 11 bit a p\u00e1ratartalomhoz # Az alap\u00e9rtelmezett \u00e9rt\u00e9k: \"TEMP11_HUM11\" #htu21d_report_time: # A leolvas\u00e1sok k\u00f6z\u00f6tti intervallum m\u00e1sodpercben. # Az alap\u00e9rtelmezett a 30","title":"HTU21D \u00e9rz\u00e9kel\u0151"},{"location":"Config_Reference.html#lm75-homerseklet-erzekelo","text":"LM75/LM75A k\u00e9tvezet\u00e9kes (I2C) csatlakoz\u00e1s\u00fa h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151k. Ezek az \u00e9rz\u00e9kel\u0151k -55~125 C tartom\u00e1nyban m\u0171k\u00f6dnek, \u00edgy pl. kamrah\u0151m\u00e9rs\u00e9klet ellen\u0151rz\u00e9sre haszn\u00e1lhat\u00f3k. Egyszer\u0171 ventil\u00e1tor/f\u0171t\u00e9svez\u00e9rl\u0151k\u00e9nt is m\u0171k\u00f6dhetnek. sensor_type: LM75 #i2c_address: # Az alap\u00e9rtelmezett 72 (0x48). A norm\u00e1l tartom\u00e1ny 72-79 (0x48-0x4F), # \u00e9s a c\u00edm 3 alacsony bitje a chipen tal\u00e1lhat\u00f3 \u00e9rintkez\u0151k\u00f6n kereszt\u00fcl # van konfigur\u00e1lva (\u00e1ltal\u00e1ban jumperekkel vagy \u00e1thidal\u00f3 vezet\u00e9kekkel). #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #lm75_report_time: # A leolvas\u00e1sok k\u00f6z\u00f6tti intervallum m\u00e1sodpercben. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,8 de a minimum \u00e9rt\u00e9k 0,5.","title":"LM75 h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151"},{"location":"Config_Reference.html#beepitett-mikrokontroller-homerseklet-erzekelo","text":"Az atsam, atsamd \u00e9s stm32 mikrovez\u00e9rl\u0151k bels\u0151 h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151t tartalmaznak. A \"temperature_mcu\" parancsot haszn\u00e1lhatjuk e h\u0151m\u00e9rs\u00e9kletek megjelen\u00edt\u00e9s\u00e9re. sensor_type: temperature_mcu #sensor_mcu: mcu # A mikrokontroller, amelyb\u0151l olvasni lehet. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k az \"mcu\". #sensor_temperature1: #sensor_adc1: # Add meg a fenti k\u00e9t param\u00e9tert (a h\u0151m\u00e9rs\u00e9kletet Celsiusban \u00e9s egy # ADC-\u00e9rt\u00e9ket \u00fasz\u00f3k\u00e9nt 0,0 \u00e9s 1,0 k\u00f6z\u00f6tt) a mikrovez\u00e9rl\u0151 # h\u0151m\u00e9rs\u00e9klet\u00e9nek kalibr\u00e1l\u00e1s\u00e1hoz. Ez egyes chipekn\u00e9l jav\u00edthatja a # jelentett h\u0151m\u00e9rs\u00e9kleti pontoss\u00e1got. A kalibr\u00e1ci\u00f3s adatok # megszerz\u00e9s\u00e9nek tipikus m\u00f3dja az, hogy n\u00e9h\u00e1ny \u00f3r\u00e1ra teljesen # \u00e1ramtalan\u00edtja a nyomtat\u00f3t (hogy megbizonyosodj arr\u00f3l, hogy az # k\u00f6rnyezeti h\u0151m\u00e9rs\u00e9kleten van), majd bekapcsolja, \u00e9s a QUERY_ADC # paranccsal megkapja az ADC m\u00e9r\u00e9st. Haszn\u00e1lj m\u00e1s h\u0151m\u00e9rs\u00e9klet # \u00e9rz\u00e9kel\u0151t a nyomtat\u00f3n a megfelel\u0151 k\u00f6rnyezeti h\u0151m\u00e9rs\u00e9klet # meghat\u00e1roz\u00e1s\u00e1hoz. Alap\u00e9rtelmez\u00e9s szerint a mikrokontroller gy\u00e1ri # kalibr\u00e1l\u00e1si adatait (ha van) vagy a mikrovez\u00e9rl\u0151 specifik\u00e1ci\u00f3j\u00e1b\u00f3l # sz\u00e1rmaz\u00f3 n\u00e9vleges \u00e9rt\u00e9keket kell haszn\u00e1lni. #sensor_temperature2: #sensor_adc2: # Ha a sensor_temperature1/sensor_adc1 meg van adva, akkor # megadhat\u00f3k a sensor_temperature2/sensor_adc2 kalibr\u00e1ci\u00f3s adatai # is. Ezzel kalibr\u00e1lt \"temperature slope\" inform\u00e1ci\u00f3t kaphat. # Alap\u00e9rtelmez\u00e9s szerint a mikrokontroller gy\u00e1ri kalibr\u00e1l\u00e1si adatait # (ha van) vagy a mikrovez\u00e9rl\u0151 specifik\u00e1ci\u00f3j\u00e1b\u00f3l sz\u00e1rmaz\u00f3 n\u00e9vleges # \u00e9rt\u00e9keket kell haszn\u00e1lni.","title":"Be\u00e9p\u00edtett mikrokontroller h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151"},{"location":"Config_Reference.html#gazdagep-homerseklet-erzekelo","text":"Gazdag\u00e9p h\u0151m\u00e9rs\u00e9klet (pl. Raspberry Pi), amelyen a gazdaszoftver fut. sensor_type: temperature_host #sensor_path: # A h\u0151m\u00e9rs\u00e9kleti rendszerf\u00e1jl el\u00e9r\u00e9si \u00fatja. Az alap\u00e9rtelmez\u00e9s # a \"/sys/class/thermal/thermal_zone0/temp\", amely a Raspberry Pi # sz\u00e1m\u00edt\u00f3g\u00e9p h\u0151m\u00e9rs\u00e9kleti rendszerf\u00e1jlja.","title":"Gazdag\u00e9p h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151"},{"location":"Config_Reference.html#ds18b20-homerseklet-erzekelo","text":"A DS18B20 egy 1 vezet\u00e9kes (w1) digit\u00e1lis h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151. Vedd figyelembe, hogy ezt az \u00e9rz\u00e9kel\u0151t nem extruderekkel \u00e9s f\u0171t\u00f6tt t\u00e1rgyasztalokkal val\u00f3 haszn\u00e1latra sz\u00e1nj\u00e1k, hanem ink\u00e1bb a k\u00f6rnyezeti h\u0151m\u00e9rs\u00e9klet (C) ellen\u0151rz\u00e9s\u00e9re. Ezek az \u00e9rz\u00e9kel\u0151k 125 C-ig terjed\u0151 tartom\u00e1nyban m\u0171k\u00f6dnek, \u00edgy pl. kamrah\u0151m\u00e9rs\u00e9klet ellen\u0151rz\u00e9sre haszn\u00e1lhat\u00f3k. Egyszer\u0171 ventil\u00e1tor/f\u0171t\u0151berendez\u00e9s szab\u00e1lyoz\u00f3k\u00e9nt is m\u0171k\u00f6dhetnek. A DS18B20 \u00e9rz\u00e9kel\u0151ket csak a \"host mcu\", pl. a Raspberry Pi t\u00e1mogatja. A w1-gpio Linux kernel modult kell telep\u00edteni hozz\u00e1. sensor_type: DS18B20 serial_no: # Minden 1 vezet\u00e9kes eszk\u00f6z egyedi sorozatsz\u00e1mmal rendelkezik, amely az # eszk\u00f6z azonos\u00edt\u00e1s\u00e1ra szolg\u00e1l, \u00e1ltal\u00e1ban 28-031674b175ff form\u00e1tumban. # Ezt a param\u00e9tert meg kell adni. A csatlakoztatott egyvezet\u00e9kes eszk\u00f6z\u00f6k a # k\u00f6vetkez\u0151 Linux-paranccsal list\u00e1zhat\u00f3k: # ls /sys/bus/w1/devices/ #ds18_report_time: # A leolvas\u00e1sok k\u00f6z\u00f6tti intervallum m\u00e1sodpercben. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 3.0, a minimum 1.0 #sensor_mcu: # A mikrokontroller, amelyb\u0151l olvasni lehet. A host_mcu legyen","title":"DS18B20 h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151"},{"location":"Config_Reference.html#hutoventilatorok","text":"","title":"H\u0171t\u0151ventil\u00e1torok"},{"location":"Config_Reference.html#fan","text":"Nyomtat\u00e1s h\u0171t\u0151ventil\u00e1tor. [fan] pin: # A ventil\u00e1tort vez\u00e9rl\u0151 kimeneti \u00e9rintkez\u0151. Ezt a param\u00e9tert meg kell adni. #max_power: 1.0 # Az a maxim\u00e1lis teljes\u00edtm\u00e9ny (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), # amelyre a t\u0171 be\u00e1ll\u00edthat\u00f3. Az 1,0 \u00e9rt\u00e9k lehet\u0151v\u00e9 teszi, hogy a t\u0171t hosszabb # ideig teljesen enged\u00e9lyezettre lehessen \u00e1ll\u00edtani, m\u00edg a 0,5 \u00e9rt\u00e9k legfeljebb # a fele ideig enged\u00e9lyezi a t\u0171t. Ez a be\u00e1ll\u00edt\u00e1s haszn\u00e1lhat\u00f3 a ventil\u00e1tor # teljes kimeneti teljes\u00edtm\u00e9ny\u00e9nek korl\u00e1toz\u00e1s\u00e1ra (hosszabb ideig). Ha ez az # \u00e9rt\u00e9k kisebb, mint 1,0, akkor a ventil\u00e1torsebess\u00e9g-k\u00e9relmek nulla \u00e9s # max_power k\u00f6z\u00f6tt lesznek sk\u00e1l\u00e1zva (p\u00e9ld\u00e1ul ha a max_power \u00e9rt\u00e9ke 0,9, # \u00e9s 80%-os ventil\u00e1torsebess\u00e9gre van sz\u00fcks\u00e9g, akkor a ventil\u00e1tor # teljes\u00edtm\u00e9nye 72%-ra lesz \u00e1ll\u00edtva). Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0. #shutdown_speed: 0 # A k\u00edv\u00e1nt ventil\u00e1torsebess\u00e9g (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), ha a # mikrovez\u00e9rl\u0151 szoftvere hiba\u00e1llapotba ker\u00fcl. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #cycle_time: 0,010 # Az id\u0151 (m\u00e1sodpercben) minden egyes PWM t\u00e1pciklushoz a ventil\u00e1tornak. # Szoftver alap\u00fa PWM haszn\u00e1latakor aj\u00e1nlott 10 ezredm\u00e1sodperc vagy t\u00f6bb. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,010 m\u00e1sodperc. #hardware_pwm: False # Enged\u00e9lyezd ezt hardveres PWM haszn\u00e1lat\u00e1hoz a szoftveres PWM helyett. # A legt\u00f6bb ventil\u00e1tor nem m\u0171k\u00f6dik j\u00f3l a hardveres PWM-mel, ez\u00e9rt nem # aj\u00e1nlott ezt enged\u00e9lyezni, hacsak nincs elektromos k\u00f6vetelm\u00e9ny a nagyon # nagy sebess\u00e9g\u0171 kapcsol\u00e1shoz. Hardveres PWM haszn\u00e1latakor a t\u00e9nyleges # ciklusid\u0151t a megval\u00f3s\u00edt\u00e1s korl\u00e1tozza, \u00e9s jelent\u0151sen elt\u00e9rhet a k\u00e9rt ciklusid\u0151t\u0151l. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #kick_start_time: 0,100 # Az id\u0151 (m\u00e1sodpercben), hogy a ventil\u00e1tor teljes fordulatsz\u00e1mon m\u0171k\u00f6dj\u00f6n, # amikor el\u0151sz\u00f6r enged\u00e9lyezi, vagy 50%-n\u00e1l nagyobb m\u00e9rt\u00e9kben n\u00f6veli # (seg\u00edti a ventil\u00e1tor p\u00f6rg\u00e9s\u00e9t). Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,100 m\u00e1sodperc. #off_below: 0,0 # A minim\u00e1lis bemeneti sebess\u00e9g, amely a ventil\u00e1tort t\u00e1pl\u00e1lja # (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve). Ha az off_below-n\u00e1l alacsonyabb # sebess\u00e9get k\u00e9rnek, a ventil\u00e1tor ehelyett kikapcsol. Ez a be\u00e1ll\u00edt\u00e1s haszn\u00e1lhat\u00f3 # a ventil\u00e1tor le\u00e1ll\u00e1s\u00e1nak megel\u0151z\u00e9s\u00e9re \u00e9s annak biztos\u00edt\u00e1s\u00e1ra, hogy az ind\u00edt\u00e1sok # hat\u00e9konyak legyenek. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0.0. # # Ezt a be\u00e1ll\u00edt\u00e1st \u00fajra kell kalibr\u00e1lni a max_power be\u00e1ll\u00edt\u00e1sakor. A be\u00e1ll\u00edt\u00e1s # kalibr\u00e1l\u00e1s\u00e1hoz kezd az off_below \u00e9rt\u00e9k\u00e9t 0,0-ra \u00e1ll\u00edtva, \u00e9s a ventil\u00e1tor forog. # Fokozatosan cs\u00f6kkentse a ventil\u00e1tor fordulatsz\u00e1m\u00e1t, hogy meghat\u00e1rozza a # legalacsonyabb bemeneti sebess\u00e9get, amely megb\u00edzhat\u00f3an hajtja a ventil\u00e1tort # le\u00e1ll\u00e1s n\u00e9lk\u00fcl. \u00c1ll\u00edtsd az off_below-ot az ennek az \u00e9rt\u00e9knek megfelel\u0151 # (p\u00e9ld\u00e1ul 12% -> 0,12) vagy valamivel magasabb munkaciklusra. #tachometer_pin: # Fordulatsz\u00e1mm\u00e9r\u0151 bemeneti \u00e9rintkez\u0151je a ventil\u00e1tor fordulatsz\u00e1m\u00e1nak # figyel\u00e9s\u00e9hez. \u00c1ltal\u00e1ban felh\u00faz\u00e1sra van sz\u00fcks\u00e9g. Ez a param\u00e9ter nem k\u00f6telez\u0151. #tachometer_ppr: 2 # Ha a tachometer_pin meg van adva, ez a fordulatsz\u00e1mm\u00e9r\u0151 jel\u00e9nek # fordulatonk\u00e9nti impulzusainak sz\u00e1ma. Egy BLDC ventil\u00e1tor eset\u00e9ben ez \u00e1ltal\u00e1ban # fele a p\u00f3lusok sz\u00e1m\u00e1nak. Az alap\u00e9rtelmezett \u00e9rt\u00e9k a 2. #tachometer_poll_interval: 0,0015 # Ha a tachometer_pin meg van adva, ez a fordulatsz\u00e1mm\u00e9r\u0151 t\u0171j\u00e9nek lek\u00e9rdez\u00e9si # peri\u00f3dusa, m\u00e1sodpercben. Az alap\u00e9rtelmezett 0,0015, ami el\u00e9g gyors a # 10000 RPM alatti ventil\u00e1torok sz\u00e1m\u00e1ra 2 PPR mellett. Ennek kisebbnek kell lennie, # mint 30/(tachometer_ppr*rpm), n\u00e9mi r\u00e1hagy\u00e1ssal, ahol az rpm a ventil\u00e1tor # maxim\u00e1lis fordulatsz\u00e1ma (rpm-ben). #enable_pin: # Opcion\u00e1lis t\u0171 a ventil\u00e1tor t\u00e1pell\u00e1t\u00e1s\u00e1nak biztos\u00edt\u00e1s\u00e1hoz. Ez hasznos lehet a # dedik\u00e1lt PWM bemenettel rendelkez\u0151 ventil\u00e1torok sz\u00e1m\u00e1ra. N\u00e9h\u00e1ny ilyen # ventil\u00e1tor m\u00e9g 0%-os PWM bemenetn\u00e9l is bekapcsolva marad. Ilyenkor a PWM t\u0171 # norm\u00e1lisan haszn\u00e1lhat\u00f3, \u00e9s pl. f\u00f6ldkapcsolt FET (norm\u00e1l ventil\u00e1torcsap) # haszn\u00e1lhat\u00f3 a ventil\u00e1tor t\u00e1pell\u00e1t\u00e1s\u00e1nak szab\u00e1lyoz\u00e1s\u00e1ra.","title":"[fan]"},{"location":"Config_Reference.html#heater_fan","text":"Fejh\u0171t\u0151 ventil\u00e1torok (a \"heater_fan\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3). A \"fejh\u0171t\u0151 ventil\u00e1tor\" egy olyan ventil\u00e1tor, amely akkor lesz enged\u00e9lyezve, amikor a hozz\u00e1 tartoz\u00f3 f\u0171t\u0151berendez\u00e9s akt\u00edv. Alap\u00e9rtelmez\u00e9s szerint a heater_fan alap\u00e9rtelmez\u00e9s szerint a shutdown_speed a max_power \u00e9rt\u00e9kkel egyenl\u0151. [heater_fan my_nozzle_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"ventil\u00e1tor\" szakaszban. #heater: extruder # A ventil\u00e1torhoz t\u00e1rs\u00edtott f\u0171t\u00e9st meghat\u00e1roz\u00f3 konfigur\u00e1ci\u00f3s szakasz neve. # Ha itt megadod a f\u0171t\u0151elemek vessz\u0151vel elv\u00e1lasztott nev\u00e9t, # akkor a ventil\u00e1tor enged\u00e9lyezve lesz, ha valamelyik adott f\u0171t\u0151test enged\u00e9lyezve van. # Az alap\u00e9rtelmezett az \"extruder\". #heater_temp: 50.0 # A h\u0151m\u00e9rs\u00e9klet (Celsiusban), amely al\u00e1 a f\u0171t\u0151elemnek cs\u00f6kkennie kell, miel\u0151tt # a ventil\u00e1tor kikapcsolna. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 50 Celsius fok. #fan_speed: 1.0 # A ventil\u00e1tor sebess\u00e9ge (0.0 \u00e9s 1.0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), amelyet a ventil\u00e1tor # alkalmaz, amikor a hozz\u00e1 tartoz\u00f3 f\u0171t\u0151elem be van kapcsolva. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0","title":"[heater_fan]"},{"location":"Config_Reference.html#controller_fan","text":"Vez\u00e9rl\u0151 h\u0171t\u0151ventil\u00e1tor (a \"controller_fan\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3). A \"vez\u00e9rl\u0151 h\u0171t\u0151ventil\u00e1tor\" egy olyan ventil\u00e1tor, amely akkor lesz enged\u00e9lyezve, amikor a hozz\u00e1 tartoz\u00f3 f\u0171t\u0151berendez\u00e9s vagy a hozz\u00e1 tartoz\u00f3 l\u00e9ptet\u0151 meghajt\u00f3 akt\u00edv. A ventil\u00e1tor le\u00e1ll, amikor el\u00e9r egy idle_timeout \u00e9rt\u00e9ket, hogy biztos\u00edtsa, hogy a fel\u00fcgyelt komponens kikapcsol\u00e1sa ut\u00e1n ne k\u00f6vetkezzen be t\u00falmeleged\u00e9s. [controller_fan my_controller_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"ventil\u00e1tor\" szakaszban. #fan_speed: 1.0 # A ventil\u00e1tor fordulatsz\u00e1ma (0.0 \u00e9s 1.0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), # amelyre a ventil\u00e1tor lesz be\u00e1ll\u00edtva, amikor egy f\u0171t\u0151elem vagy # l\u00e9ptet\u0151 vez\u00e9rl\u0151 akt\u00edv. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0 #idle_timeout: # Az az id\u0151 (m\u00e1sodpercben), miut\u00e1n a l\u00e9ptet\u0151-meghajt\u00f3 vagy a f\u0171t\u0151elem # akt\u00edv volt, \u00e9s a ventil\u00e1tort m\u0171k\u00f6dtetni kell m\u00e9g. # Az alap\u00e9rtelmezett 30 m\u00e1sodperc. #idle_speed: # A ventil\u00e1tor sebess\u00e9ge (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), # amelyre a ventil\u00e1tor be lesz \u00e1ll\u00edtva, amikor egy f\u0171t\u0151elem vagy # l\u00e9ptet\u0151-meghajt\u00f3 akt\u00edv volt, az idle_timeout el\u00e9r\u00e9se el\u0151tt. # Alap\u00e9rtelmezett a fan_speed. #heater: #stepper: # A ventil\u00e1torhoz t\u00e1rs\u00edtott f\u0171t\u00e9st/l\u00e9ptet\u0151t meghat\u00e1roz\u00f3 konfigur\u00e1ci\u00f3s # szakasz neve. Ha itt megadod a f\u0171t\u0151elemek/l\u00e9ptet\u0151k vessz\u0151vel # elv\u00e1lasztott nev\u00e9t, akkor a ventil\u00e1tor enged\u00e9lyezve lesz, ha az adott # f\u0171t\u0151testek/l\u00e9ptet\u0151k b\u00e1rmelyike enged\u00e9lyezett. Az alap\u00e9rtelmezett f\u0171t\u0151elem # az \"extruder\", az alap\u00e9rtelmezett l\u00e9ptet\u0151 pedig mindegyik.","title":"[controller_fan]"},{"location":"Config_Reference.html#temperature_fan","text":"H\u0151m\u00e9rs\u00e9klet vez\u00e9relt h\u0171t\u0151ventil\u00e1torok (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni a \"temperature_fan\" el\u0151taggal). A \"h\u0151m\u00e9rs\u00e9kleti ventil\u00e1tor\" olyan ventil\u00e1tor, amely akkor kapcsol be, amikor a hozz\u00e1 tartoz\u00f3 \u00e9rz\u00e9kel\u0151 egy be\u00e1ll\u00edtott h\u0151m\u00e9rs\u00e9klet felett van. Alap\u00e9rtelmez\u00e9s szerint a temperature_fan kikapcsol\u00e1si sebess\u00e9ge egyenl\u0151 a max_power \u00e9rt\u00e9kkel. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1st . [temperature_fan my_temp_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"ventil\u00e1tor\" r\u00e9szben. #sensor_type: #sensor_pin: #control: #max_delta: #min_temp: #max_temp: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"extruder\" r\u00e9szben. #pid_Kp: #pid_Ki: #pid_Kd: # Az ar\u00e1nyos (pid_Kp), az integr\u00e1l (pid_Ki) \u00e9s a deriv\u00e1lt (pid_Kd) be\u00e1ll\u00edt\u00e1sai # a PID visszacsatol\u00e1svez\u00e9rl\u0151 rendszerhez. A Klipper a PID be\u00e1ll\u00edt\u00e1sokat a # k\u00f6vetkez\u0151 \u00e1ltal\u00e1nos k\u00e9plettel \u00e9rt\u00e9keli ki: ventil\u00e1tor_pwm = max_power # - (Kp*e + Ki*integr\u00e1l(e) - Kd*deriv\u00e1lt(e)) / 255 ahol \"e\" a # \"target_temperature - measured_temperature\" \u00e9s \"fan_pwm\" a k\u00e9rt # ventil\u00e1torsebess\u00e9g, ahol a 0.0 tele van, az 1.0 pedig teljesen be van # kapcsolva. A pid_Kp, pid_Ki \u00e9s pid_Kd param\u00e9tereket akkor kell megadni, # ha a PID vez\u00e9rl\u0151 algoritmus enged\u00e9lyezve van. #pid_deriv_time: 2.0 # Az az id\u0151\u00e9rt\u00e9k (m\u00e1sodpercben), amelyen kereszt\u00fcl a h\u0151m\u00e9rs\u00e9kletm\u00e9r\u00e9s # sim\u00edt\u00e1sra ker\u00fcl a PID szab\u00e1lyoz\u00e1si algoritmus haszn\u00e1latakor. # Ez cs\u00f6kkentheti a m\u00e9r\u00e9si zaj hat\u00e1s\u00e1t. Az alap\u00e9rtelmezett a 2 m\u00e1sodperc. #target_temp: 40.0 # Egy h\u0151m\u00e9rs\u00e9klet (Celsiusban), amely a c\u00e9lh\u0151m\u00e9rs\u00e9klet lesz. # Az alap\u00e9rtelmezett a 40 fok. #max_speed: 1.0 # A ventil\u00e1tor sebess\u00e9ge (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben kifejezve), amelyre a # ventil\u00e1tor be lesz \u00e1ll\u00edtva, ha az \u00e9rz\u00e9kel\u0151 h\u0151m\u00e9rs\u00e9klete meghaladja a # be\u00e1ll\u00edtott \u00e9rt\u00e9ket. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1.0. #min_speed: 0,3 # Az a minim\u00e1lis ventil\u00e1tor fordulatsz\u00e1m (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9kben # kifejezve), amelyre a ventil\u00e1tor be lesz \u00e1ll\u00edtva a PID h\u0151m\u00e9rs\u00e9klet\u0171 # ventil\u00e1torokhoz. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0.3. #gcode_id: # Ha be van \u00e1ll\u00edtva, a h\u0151m\u00e9rs\u00e9kletet az M105 lek\u00e9rdez\u00e9sekben jelenti a # megadott azonos\u00edt\u00f3val. Az alap\u00e9rtelmez\u00e9s szerint nem jelenti a # h\u0151m\u00e9rs\u00e9kletet az M105-\u00f6n kereszt\u00fcl.","title":"[temperature_fan]"},{"location":"Config_Reference.html#fan_generic","text":"K\u00e9zi vez\u00e9rl\u00e9s\u0171 ventil\u00e1tor (a \"fan_generic\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni). A k\u00e9zi vez\u00e9rl\u00e9s\u0171 ventil\u00e1tor fordulatsz\u00e1m\u00e1t a SET_FAN_SPEED G-k\u00f3d paranccsal lehet be\u00e1ll\u00edtani. [fan_generic extruder_partfan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"ventil\u00e1tor\" r\u00e9szben.","title":"[fan_generic]"},{"location":"Config_Reference.html#led-ek","text":"","title":"LED-ek"},{"location":"Config_Reference.html#led","text":"A mikrokontroller PWM t\u0171in kereszt\u00fcl vez\u00e9relt LED-ek (\u00e9s LED-cs\u00edkok) t\u00e1mogat\u00e1sa (a \"led\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t defini\u00e1lhatunk). Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1st . [led my_led] #red_pin: #green_pin: #blue_pin: #white_pin: # Az adott LED sz\u00ednt vez\u00e9rl\u0151 t\u0171. A fenti param\u00e9terek k\u00f6z\u00fcl legal\u00e1bb # egyet meg kell adni. #cycle_time: 0.010 # Az id\u0151 (m\u00e1sodpercben) PWM ciklusonk\u00e9nt. Szoftver alap\u00fa PWM # haszn\u00e1lata eset\u00e9n aj\u00e1nlott ez 10 ezredm\u00e1sodperc vagy t\u00f6bb. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,010 m\u00e1sodperc. #hardware_pwm: False # Enged\u00e9lyezd ezt a hardveres PWM haszn\u00e1lat\u00e1hoz a szoftveres # PWM helyett. Hardveres PWM haszn\u00e1latakor a t\u00e9nyleges ciklusid\u0151t # a megval\u00f3s\u00edt\u00e1s korl\u00e1tozza, \u00e9s jelent\u0151sen elt\u00e9rhet a k\u00e9rt ciklusid\u0151t\u0151l. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Be\u00e1ll\u00edtja a LED kezdeti sz\u00edn\u00e9t. Mindegyik \u00e9rt\u00e9knek 0,0 \u00e9s 1,0 k\u00f6z\u00f6tt # kell lennie. Minden sz\u00edn alap\u00e9rtelmezett \u00e9rt\u00e9ke 0.","title":"[led]"},{"location":"Config_Reference.html#neopixel","text":"Neopixel (m\u00e1s n\u00e9ven WS2812) LED t\u00e1mogat\u00e1s (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t defini\u00e1lhatunk \"neopixel\" el\u0151taggal). Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1st . Vedd figyelembe, hogy a linux mcu implement\u00e1ci\u00f3 jelenleg nem t\u00e1mogatja a k\u00f6zvetlen\u00fcl csatlakoztatott neopixeleket. A Linux kernel interf\u00e9szt haszn\u00e1l\u00f3 jelenlegi tervezet nem teszi lehet\u0151v\u00e9 ezt a forgat\u00f3k\u00f6nyvet, mivel a kernel GPIO interf\u00e9sze nem el\u00e9g gyors a sz\u00fcks\u00e9ges impulzussz\u00e1mok biztos\u00edt\u00e1s\u00e1hoz. [neopixel my_neopixel] pin: # A neopixelhez csatlakoztatott t\u0171. # Ennek a param\u00e9ternek a k\u00f6vetkez\u0151nek kell lennie. #chain_count: # A megadott t\u0171h\u00f6z \"l\u00e1ncolt\" Neopixel chipek sz\u00e1ma. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 1 (ami azt jelenti, hogy csak egy # Neopixel csatlakozik a t\u0171h\u00f6z). #color_order: GRB # \u00c1ll\u00edtsd be a LED hardver \u00e1ltal megk\u00f6vetelt pixelsorrendj\u00e9t # (az R, G, B, W bet\u0171ket tartalmaz\u00f3 karakterl\u00e1ncot haszn\u00e1lva, a # W opcion\u00e1lis). Alternat\u00edvak\u00e9nt ez lehet a pixelsorrendek vessz\u0151vel # elv\u00e1lasztott list\u00e1ja is - egy minden egyes pixelhez LED-hez a l\u00e1ncban. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k GRB. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Ezekr\u0151l a param\u00e9terekr\u0151l l\u00e1sd a \"LED\" r\u00e9szt.","title":"[neopixel]"},{"location":"Config_Reference.html#dotstar","text":"Dotstar (m\u00e1s n\u00e9ven APA102) LED-t\u00e1mogat\u00e1s (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"dotstar\" el\u0151taggal). Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1st . [dotstar my_dotstar] data_pin: # A pont a dotstar adatvonal\u00e1hoz csatlakozik. # Ezt a param\u00e9tert meg kell adni. clock_pin: # A dotstar id\u0151jel vonal\u00e1hoz csatlakoztatott t\u0171. # Ezt a param\u00e9tert meg kell adni. #chain_count: # A param\u00e9terrel kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a \"neopixel\" r\u00e9szt. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 # Ezen param\u00e9terek le\u00edr\u00e1s\u00e1r\u00f3l n\u00e9zd meg a \"LED\" r\u00e9szt.","title":"[dotstar]"},{"location":"Config_Reference.html#pca9533","text":"PCA9533 LED-t\u00e1mogat\u00e1s. A PCA9533 a mightyboardon haszn\u00e1latos. [pca9533 my_pca9533] #i2c_address: 98 # Az I2C c\u00edm, amelyet a chip az I2C buszon haszn\u00e1l. # Haszn\u00e1ld a 98-at a PCA9533/1-hez, a 99-et a PCA9533/2-hez. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 98. #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Ezen param\u00e9terek le\u00edr\u00e1s\u00e1r\u00f3l n\u00e9zd meg a \"LED\" r\u00e9szt.","title":"[pca9533]"},{"location":"Config_Reference.html#pca9632","text":"PCA9632 LED t\u00e1mogat\u00e1s. A PCA9632-t a FlashForge Dreamer-ben haszn\u00e1lj\u00e1k. [pca9632 my_pca9632] #i2c_address: 98 # Az I2C c\u00edm, amelyet a chip az I2C buszon haszn\u00e1l. # Ez lehet 96, 97, 98 vagy 99. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 98. #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #scl_pin: #sda_pin: # Alternat\u00edv megold\u00e1sk\u00e9nt, ha a pca9632 nincs hardveres I2C # buszhoz csatlakoztatva, akkor megadhatod az \"\u00f3ra\" (scl_pin) # \u00e9s \"data\" (sda_pin) \u00e9rintkez\u0151ket. # Az alap\u00e9rtelmez\u00e9s a hardveres I2C haszn\u00e1lata. #color_order: RGBW # \u00c1ll\u00edtsd be a LED pixelsorrendj\u00e9t (egy R, G, B, W bet\u0171ket # tartalmaz\u00f3 sztring seg\u00edts\u00e9g\u00e9vel). Az alap\u00e9rtelmezett az RGBW. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Ezen param\u00e9terek le\u00edr\u00e1s\u00e1r\u00f3l n\u00e9zd meg a \"LED\" r\u00e9szt.","title":"[pca9632]"},{"location":"Config_Reference.html#tovabbi-szervok-gombok-es-egyeb-tuk","text":"","title":"Tov\u00e1bbi szerv\u00f3k, gombok \u00e9s egy\u00e9b t\u0171k"},{"location":"Config_Reference.html#servo","text":"Szerv\u00f3k (a \"servo\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni). A szerv\u00f3k a SET_SERVO G-k\u00f3d parancs seg\u00edts\u00e9g\u00e9vel vez\u00e9relhet\u0151k. P\u00e9ld\u00e1ul: SET_SERVO SERVO=my_servo ANGLE=180 [servo my_servo] pin: # PWM kimeneti \u00e9rintkez\u0151, amely a szerv\u00f3t vez\u00e9rli. # Ezt a param\u00e9tert meg kell adni. #maximum_servo_angle: 180 # A maxim\u00e1lis sz\u00f6g (fokban), amelyre ez a szerv\u00f3 be\u00e1ll\u00edthat\u00f3. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 180 fok. #minimum_pulse_width: 0.001 # A minim\u00e1lis impulzussz\u00e9less\u00e9g ideje (m\u00e1sodpercben). # Ennek 0 fokos sz\u00f6gnek kell megfelelnie. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,001 m\u00e1sodperc. #maximum_pulse_width: 0.002 # A maxim\u00e1lis impulzussz\u00e9less\u00e9g ideje (m\u00e1sodpercben). # Ennek meg kell felelnie a maximum_servo_angle sz\u00f6gnek. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,002 m\u00e1sodperc. #initial_angle: # Kezdeti sz\u00f6g (fokban) a szerv\u00f3 be\u00e1ll\u00edt\u00e1s\u00e1hoz. # Az alap\u00e9rtelmezett az, hogy ind\u00edt\u00e1skor nem k\u00fcld jelet. #initial_pulse_width: # A kezdeti impulzussz\u00e9less\u00e9g (m\u00e1sodpercben) a szerv\u00f3 be\u00e1ll\u00edt\u00e1s\u00e1hoz. # (Ez csak akkor \u00e9rv\u00e9nyes, ha a initial_angle nincs be\u00e1ll\u00edtva.) # Az alap\u00e9rtelmez\u00e9s az, hogy ind\u00edt\u00e1skor nem k\u00fcld jelet.","title":"[servo]"},{"location":"Config_Reference.html#gcode_button","text":"A G-k\u00f3d v\u00e9grehajt\u00e1sa, amikor egy gombot megnyomnak vagy elengednek (vagy amikor egy t\u0171 \u00e1llapota megv\u00e1ltozik). A gomb \u00e1llapot\u00e1t a QUERY_BUTTON button=my_gcode_button seg\u00edts\u00e9g\u00e9vel ellen\u0151rizhetj\u00fck. [gcode_button my_gcode_button] pin: # Az a t\u0171, amelyre a gomb csatlakozik. Ezt a param\u00e9tert meg kell adni. #analog_range: # K\u00e9t vessz\u0151vel elv\u00e1lasztott ellen\u00e1ll\u00e1s (ohmban), amely meghat\u00e1rozza # a gomb minim\u00e1lis \u00e9s maxim\u00e1lis ellen\u00e1ll\u00e1si tartom\u00e1ny\u00e1t. Ha meg van # adva az analog_range, akkor a l\u00e1bnak anal\u00f3g-k\u00e9pes t\u0171nek kell lennie. # Az alap\u00e9rtelmezett a digit\u00e1lis GPIO haszn\u00e1lata a gombhoz. #analog_pullup_resistor: # A felh\u00faz\u00e1si ellen\u00e1ll\u00e1s (ohmban), ha az analog_range meg van adva. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 4700 ohm. #press_gcode: # A gomb megnyom\u00e1sakor v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. # A G-k\u00f3d sablonok t\u00e1mogatottak. Ezt a param\u00e9tert meg kell adni. #release_gcode: # A gomb elenged\u00e9sekor v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. # A G-k\u00f3d sablonok t\u00e1mogatottak. Az alap\u00e9rtelmez\u00e9s szerint nem # futnak le parancsok a gombok felenged\u00e9sekor.","title":"[gcode_button]"},{"location":"Config_Reference.html#output_pin","text":"Futtat\u00e1si id\u0151ben konfigur\u00e1lhat\u00f3 kimeneti t\u0171k (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"output_pin\" el\u0151taggal). Az itt konfigur\u00e1lt t\u0171k kimeneti t\u0171kk\u00e9nt lesznek be\u00e1ll\u00edtva, \u00e9s futtat\u00e1si id\u0151ben a \"SET_PIN PIN=my_pin VALUE=.1\" t\u00edpus\u00fa kiterjesztett G-k\u00f3d parancsok seg\u00edts\u00e9g\u00e9vel m\u00f3dos\u00edthatjuk \u0151ket. [output_pin my_pin] pin: # A kimenetk\u00e9nt konfigur\u00e1land\u00f3 t\u0171. Ezt a param\u00e9tert meg kell adni. #pwm: False # \u00c1ll\u00edtsd be, hogy a kimeneti l\u00e1bnak k\u00e9pesnek kell lennie # impulzussz\u00e9less\u00e9g-modul\u00e1ci\u00f3ra. Ha ez True, az \u00e9rt\u00e9kmez\u0151knek 0 \u00e9s 1 # k\u00f6z\u00f6tt kell lenni\u00fck. Ha False, az \u00e9rt\u00e9kmez\u0151k \u00e9rt\u00e9ke 0 vagy 1 legyen. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #static_value: # Ha ez be van \u00e1ll\u00edtva, akkor a t\u0171 ehhez az \u00e9rt\u00e9khez lesz rendelve ind\u00edt\u00e1skor, # \u00e9s a t\u0171 nem m\u00f3dos\u00edthat\u00f3 m\u0171k\u00f6d\u00e9s k\u00f6zben. Egy statikus t\u0171 valamivel # kevesebb RAM-ot haszn\u00e1l a mikrokontrollerben. # Az alap\u00e9rtelmezett a l\u00e1bak fut\u00e1sidej\u0171 konfigur\u00e1ci\u00f3ja. #value: # Az az \u00e9rt\u00e9k, amelyre az MCU konfigur\u00e1l\u00e1sa sor\u00e1n el\u0151sz\u00f6r be kell \u00e1ll\u00edtani a t\u0171t. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0 (alacsony fesz\u00fclts\u00e9g eset\u00e9n). #shutdown_value: # Az az \u00e9rt\u00e9k, amelyre a t\u0171t be kell \u00e1ll\u00edtani egy MCU le\u00e1ll\u00e1si esem\u00e9nyn\u00e9l. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0 (alacsony fesz\u00fclts\u00e9g eset\u00e9n). #maximum_mcu_duration: # A nem-le\u00e1ll\u00edt\u00e1si \u00e9rt\u00e9k maxim\u00e1lis id\u0151tartama az MCU \u00e1ltal a gazdag\u00e9pt\u0151l # \u00e9rkez\u0151 nyugt\u00e1z\u00e1s n\u00e9lk\u00fcl hajthat\u00f3 v\u00e9gre. Ha a gazdag\u00e9p nem tud l\u00e9p\u00e9st # tartani a friss\u00edt\u00e9ssel, az MCU le\u00e1ll, \u00e9s az \u00f6sszes \u00e9rintkez\u0151t a megfelel\u0151 # le\u00e1ll\u00edt\u00e1si \u00e9rt\u00e9kre \u00e1ll\u00edtja. Az alap\u00e9rtelmezett \u00e9rt\u00e9k: 0 (letiltva) # A szok\u00e1sos \u00e9rt\u00e9kek 5 m\u00e1sodperc k\u00f6r\u00fcliek. #cycle_time: 0.100 # Az id\u0151 (m\u00e1sodpercben) PWM ciklusonk\u00e9nt. Szoftver alap\u00fa PWM haszn\u00e1lata # eset\u00e9n aj\u00e1nlott 10 ezredm\u00e1sodperc vagy t\u00f6bb. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,100 m\u00e1sodperc a PWM l\u00e1bak eset\u00e9n. #hardware_pwm: False # Enged\u00e9lyezd ezt a hardveres PWM haszn\u00e1lat\u00e1hoz a szoftveres PWM helyett. # Hardveres PWM haszn\u00e1latakor a t\u00e9nyleges ciklusid\u0151t a megval\u00f3s\u00edt\u00e1s # korl\u00e1tozza, \u00e9s jelent\u0151sen elt\u00e9rhet a k\u00e9rt ciklusid\u0151t\u0151l. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #scale: # Ezzel a param\u00e9terrel m\u00f3dos\u00edthat\u00f3 a 'value' \u00e9s 'shutdown_value' param\u00e9terek # \u00e9rtelmez\u00e9se a PWM l\u00e1bak eset\u00e9ben. Ha meg van adva, akkor az 'value' # param\u00e9ternek 0,0 \u00e9s 'scale' k\u00f6z\u00f6tt kell lennie. Ez hasznos lehet olyan PWM # l\u00e1b konfigur\u00e1l\u00e1sakor, amely a l\u00e9ptet\u0151 fesz\u00fclts\u00e9g referencia\u00e9rt\u00e9k\u00e9t vez\u00e9rli. # A 'scale' be\u00e1ll\u00edthat\u00f3 az egyen\u00e9rt\u00e9k\u0171 l\u00e9ptet\u0151 \u00e1ramer\u0151ss\u00e9gre, ha a PWM teljesen # enged\u00e9lyezett volt, majd az 'value' param\u00e9ter megadhat\u00f3 a l\u00e9ptet\u0151 k\u00edv\u00e1nt # \u00e1ramer\u0151ss\u00e9g\u00e9vel. # Az alap\u00e9rtelmez\u00e9s szerint nem sk\u00e1l\u00e1zzuk a 'value' param\u00e9tert.","title":"[output_pin]"},{"location":"Config_Reference.html#static_digital_output","text":"Statikusan konfigur\u00e1lt digit\u00e1lis kimeneti t\u0171k (tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3 \"static_digital_output\" el\u0151taggal). Az itt konfigur\u00e1lt t\u0171k az MCU konfigur\u00e1l\u00e1sa sor\u00e1n GPIO kimenetk\u00e9nt lesznek be\u00e1ll\u00edtva. \u00dczem k\u00f6zben nem m\u00f3dos\u00edthat\u00f3k. [static_digital_output my_output_pins] pins: # A GPIO kimeneti t\u0171k\u00e9nt be\u00e1ll\u00edtand\u00f3 t\u0171k vessz\u0151vel elv\u00e1lasztott # list\u00e1ja. A gomb t\u0171je magas szintre lesz \u00e1ll\u00edtva, hacsak a t\u0171 neve # el\u0151tt nem szerepel \"!\". Ezt a param\u00e9tert meg kell adni.","title":"[static_digital_output]"},{"location":"Config_Reference.html#multi_pin","text":"T\u00f6bb t\u0171s kimenetek (a \"multi_pin\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3). A multi_pin kimenet egy bels\u0151 t\u0171 \u00e1lnevet hoz l\u00e9tre, amely t\u00f6bb kimeneti t\u0171t is m\u00f3dos\u00edthat minden alkalommal, amikor az \u00e1ln\u00e9v t\u0171 be van \u00e1ll\u00edtva. P\u00e9ld\u00e1ul defini\u00e1lhatunk egy \"[multi_pin my_fan]\" objektumot, amely k\u00e9t t\u0171t tartalmaz, majd be\u00e1ll\u00edthatjuk a \"pin=multi_pin:my_fan\" \u00e9rt\u00e9ket a \"[fan]\" szakaszban. Minden egyes ventil\u00e1torv\u00e1lt\u00e1skor mindk\u00e9t kimeneti t\u0171 friss\u00fcl. Ezek az \u00e1lnevek nem haszn\u00e1lhat\u00f3k l\u00e9ptet\u0151motoros t\u0171kkel. [multi_pin my_multi_pin] pins: # Az ehhez az \u00e1ln\u00e9vhez t\u00e1rs\u00edtott t\u0171k vessz\u0151vel elv\u00e1lasztott list\u00e1ja. # Ezt a param\u00e9tert meg kell adni.","title":"[multi_pin]"},{"location":"Config_Reference.html#tmc-motorvezerlo-konfiguracioja","text":"Trinamic l\u00e9ptet\u0151motor meghajt\u00f3k konfigur\u00e1l\u00e1sa UART/SPI \u00fczemm\u00f3dban. Tov\u00e1bbi inform\u00e1ci\u00f3k a TMC Drivers \u00fatmutat\u00f3ban \u00e9s a parancsreferenci\u00e1ban is tal\u00e1lhat\u00f3ak.","title":"TMC motorvez\u00e9rl\u0151 konfigur\u00e1ci\u00f3ja"},{"location":"Config_Reference.html#tmc2130","text":"TMC2130 motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1sa SPI-buszon kereszt\u00fcl. A funkci\u00f3 haszn\u00e1lat\u00e1hoz defini\u00e1ljon egy konfigur\u00e1ci\u00f3s szekci\u00f3t \"tmc2130\" el\u0151taggal, amelyet a megfelel\u0151 l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3s szekci\u00f3 neve k\u00f6vet (p\u00e9ld\u00e1ul \"[tmc2130 stepper_x]\"). [tmc2130 stepper_x] cs_pin: # A TMC2130 chip kiv\u00e1laszt\u00e1si vonal\u00e1nak megfelel\u0151 t\u0171. Ez a t\u0171 alacsony # \u00e9rt\u00e9kre lesz \u00e1ll\u00edtva az SPI-\u00fczenetek elej\u00e9n, \u00e9s az \u00fczenet befejez\u00e9se # ut\u00e1n magasra lesz h\u00fazva. Ezt a param\u00e9tert meg kell adni. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t az \u201e\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\u201d r\u00e9szben # tal\u00e1lja. #chain_position: #chain_length: # Ezek a param\u00e9terek egy SPI-l\u00e1ncot konfigur\u00e1lnak. A k\u00e9t param\u00e9ter # hat\u00e1rozza meg a l\u00e9ptet\u0151 poz\u00edci\u00f3j\u00e1t a l\u00e1ncban \u00e9s a teljes l\u00e1nchosszt. # Az 1. poz\u00edci\u00f3 a MOSI jelhez csatlakoz\u00f3 l\u00e9ptet\u0151nek felel meg. # Az alap\u00e9rtelmez\u00e9s szerint nem haszn\u00e1l SPI-l\u00e1ncot. #interpolate: True # Ha True, enged\u00e9lyezd a l\u00e9p\u00e9sinterpol\u00e1ci\u00f3t (az illeszt\u0151program # bels\u0151leg 256 mikrol\u00e9p\u00e9ses sebess\u00e9ggel l\u00e9ptet). Ez az interpol\u00e1ci\u00f3 egy # kis sziszt\u00e9m\u00e1s poz\u00edci\u00f3elt\u00e9r\u00e9st vezet be. A r\u00e9szletek\u00e9rt l\u00e1sd: # TMC_Drivers.md. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. run_current: # Az \u00e1ramer\u0151ss\u00e9g (amper RMS-ben) a motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1s\u00e1hoz a # l\u00e9ptet\u0151motor mozg\u00e1sa sor\u00e1n. Ezt a param\u00e9tert meg kell adni. #hold_current: # Az az \u00e1ramer\u0151ss\u00e9g (amper RMS-ben), amelyet a motorvez\u00e9rl\u0151nek akkor # kell leadni, amikor a l\u00e9ptet\u0151motor nem mozog. A hold_current be\u00e1ll\u00edt\u00e1sa # nem aj\u00e1nlott (a r\u00e9szletek\u00e9rt l\u00e1sd: TMC_Drivers.md). Az alap\u00e9rtelmezett # az, hogy nem cs\u00f6kkenti az \u00e1ramer\u0151ss\u00e9get. #sense_resistor: 0.110 # A motor \u00e9rz\u00e9kel\u0151 ellen\u00e1ll\u00e1s\u00e1nak ellen\u00e1ll\u00e1sa (ohmban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,110 ohm. #stealthchop_threshold: 0 # A \u201eStealthChop\u201d k\u00fcsz\u00f6b\u00e9rt\u00e9k be\u00e1ll\u00edt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges sebess\u00e9g # (mm/sec-ben). Ha be van \u00e1ll\u00edtva, a \"StealthChop\" m\u00f3d enged\u00e9lyezve # lesz, ha a l\u00e9ptet\u0151motor sebess\u00e9ge ez alatt az \u00e9rt\u00e9k alatt van. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, ami letiltja a \"StealthChop\" m\u00f3dot. #driver_IHOLDDELAY: 8 #driver_TPOWERDOWN: 0 #driver_TBL: 1 #driver_TOFF: 4 #driver_HEND: 7 #driver_HSTRT: 0 #driver_PWM_AUTOSCALE: True #driver_PWM_FREQ: 1 #driver_PWM_GRAD: 4 #driver_PWM_AMPL: 128 #driver_SGT: 0 # \u00c1ll\u00edtsd be a megadott regisztert a TMC2130 chip konfigur\u00e1ci\u00f3ja sor\u00e1n. # Ez egy\u00e9ni motorparam\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. # Az egyes param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a param\u00e9ter neve mellett # tal\u00e1lhat\u00f3k a fenti list\u00e1ban. #diag0_pin: #diag1_pin: # A mikrovez\u00e9rl\u0151 t\u0171je a TMC2130 chip egyik DIAG t\u0171j\u00e9hez csatlakozik. # Csak egyetlen DIAG t\u0171t kell megadni. A t\u0171 \"active low\", ez\u00e9rt # \u00e1ltal\u00e1ban \"^!\" el\u0151tagja van. Ennek be\u00e1ll\u00edt\u00e1sa egy # \u201etmc2130_stepper_x:virtual_endstop\u201d virtu\u00e1lis t\u0171t hoz l\u00e9tre, amely a # l\u00e9ptet\u0151 endstop_pin-jek\u00e9nt haszn\u00e1lhat\u00f3. Ez lehet\u0151v\u00e9 teszi az # \u201e\u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel\u201d funkci\u00f3t. (Gy\u0151z\u0151dj meg arr\u00f3l, # hogy a driver_SGT-t is megfelel\u0151 \u00e9rz\u00e9kenys\u00e9gi \u00e9rt\u00e9kre \u00e1ll\u00edtja be.) # Az alap\u00e9rtelmez\u00e9s az, hogy nem enged\u00e9lyezi az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli # kezd\u0151pont felv\u00e9telt.","title":"[tmc2130]"},{"location":"Config_Reference.html#tmc2208","text":"TMC2208 (vagy TMC2224) motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1sa egyvezet\u00e9kes UART-on kereszt\u00fcl. A funkci\u00f3 haszn\u00e1lat\u00e1hoz defini\u00e1ljon egy konfigur\u00e1ci\u00f3s r\u00e9szt \"tmc2208\" el\u0151taggal, amelyet a megfelel\u0151 l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3s r\u00e9sz neve k\u00f6vet (p\u00e9ld\u00e1ul \"[tmc2208 stepper_x]\"). [tmc2208 stepper_x] uart_pin: # A TMC2208 PDN_UART vonalhoz csatlakoztatott t\u0171. # Ezt a param\u00e9tert meg kell adni. #tx_pin: # Ha k\u00fcl\u00f6n v\u00e9teli \u00e9s ad\u00e1si vonalat haszn\u00e1l a meghajt\u00f3val val\u00f3 # kommunik\u00e1ci\u00f3hoz, akkor \u00e1ll\u00edtsd be az uart_pin param\u00e9tert a v\u00e9teli # l\u00e1bra, \u00e9s a tx_pin \u00e9rt\u00e9ket az \u00e1tviteli l\u00e1bra. Az alap\u00e9rtelmezett az # uart_pin haszn\u00e1lata mind olvas\u00e1shoz, mind \u00edr\u00e1shoz. #select_pins: # A tmc2208 UART el\u00e9r\u00e9se el\u0151tt be\u00e1ll\u00edtand\u00f3 t\u0171k vessz\u0151vel elv\u00e1lasztott # list\u00e1ja. Ez hasznos lehet egy anal\u00f3g mux konfigur\u00e1l\u00e1sakor az UART # kommunik\u00e1ci\u00f3hoz. Az alap\u00e9rtelmezett az, hogy nem konfigur\u00e1l # semmilyen \u00e9rintkez\u0151t. #interpolate: True # Ha True, enged\u00e9lyezd a l\u00e9p\u00e9sinterpol\u00e1ci\u00f3t (a motorvez\u00e9rl\u0151 bels\u0151leg # 256 mikrol\u00e9p\u00e9ses sebess\u00e9ggel l\u00e9ptet). Ez az interpol\u00e1ci\u00f3 egy kis # sziszt\u00e9m\u00e1s poz\u00edci\u00f3elt\u00e9r\u00e9st vezet be. A r\u00e9szletek\u00e9rt l\u00e1sd: # TMC_Drivers.md. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. run_current: # Az \u00e1ramer\u0151ss\u00e9g (amper RMS-ben) a meghajt\u00f3 konfigur\u00e1l\u00e1s\u00e1hoz a # l\u00e9ptet\u0151motor mozg\u00e1sa sor\u00e1n. Ezt a param\u00e9tert meg kell adni. #hold_current: # Az az \u00e1ramer\u0151ss\u00e9g (amper RMS-ben), amelyet a motorvez\u00e9rl\u0151 akkor # ad le, amikor a l\u00e9ptet\u0151 nem mozog. A hold_current be\u00e1ll\u00edt\u00e1sa nem # aj\u00e1nlott (a r\u00e9szletek\u00e9rt l\u00e1sd: TMC_Drivers.md). # Az alap\u00e9rtelmezett az, hogy nem cs\u00f6kkenti az \u00e1ramer\u0151ss\u00e9get. #sense_resistor: 0.110 # A motor \u00e9rz\u00e9kel\u0151 ellen\u00e1ll\u00e1s\u00e1nak ellen\u00e1ll\u00e1sa (ohmban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,110 ohm. #stealthchop_threshold: 0 # A \u201eStealthChop\u201d k\u00fcsz\u00f6b\u00e9rt\u00e9k be\u00e1ll\u00edt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges sebess\u00e9g # (mm/sec-ben). Ha be van \u00e1ll\u00edtva, a \"StealthChop\" m\u00f3d enged\u00e9lyezve # lesz, ha a l\u00e9ptet\u0151motor sebess\u00e9ge ez alatt az \u00e9rt\u00e9k alatt van. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, ami letiltja a \"StealthChop\" m\u00f3dot. #driver_IHOLDDELAY: 8 #driver_TPOWERDOWN: 20 #driver_TBL: 2 #driver_TOFF: 3 #driver_HEND: 0 #driver_HSTRT: 5 #driver_PWM_AUTOGRAD: True #driver_PWM_AUTOSCALE: True #driver_PWM_LIM: 12 #driver_PWM_REG: 8 #driver_PWM_FREQ: 1 #driver_PWM_GRAD: 14 #driver_PWM_OFS: 36 # \u00c1ll\u00edtsd be a megadott regisztert a TMC2208 chip konfigur\u00e1ci\u00f3ja sor\u00e1n. # Ez egy\u00e9ni motorparam\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. Az egyes # param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a param\u00e9ter neve mellett # tal\u00e1lhat\u00f3k a fenti list\u00e1ban.","title":"[tmc2208]"},{"location":"Config_Reference.html#tmc2209","text":"TMC2209 motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1sa egyvezet\u00e9kes UART-on kereszt\u00fcl. A funkci\u00f3 haszn\u00e1lat\u00e1hoz defini\u00e1ljon egy konfigur\u00e1ci\u00f3s szekci\u00f3t \"tmc2209\" el\u0151taggal, amelyet a megfelel\u0151 l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3s szekci\u00f3 neve k\u00f6vet (p\u00e9ld\u00e1ul \"[tmc2209 stepper_x]\"). [tmc2209 stepper_x] uart_pin: #tx_pin: #select_pins: #interpolate: True run_current: #hold_current: #sense_resistor: 0.110 #stealthchop_threshold: 0 # A param\u00e9terek meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd a \"TMC2208\" r\u00e9szt. #uart_address: # A TMC2209 chip c\u00edme UART \u00fczenetekhez (0 \u00e9s 3 k\u00f6z\u00f6tti eg\u00e9sz sz\u00e1m). # Ezt \u00e1ltal\u00e1ban akkor haszn\u00e1lj\u00e1k, ha t\u00f6bb TMC2209 chip csatlakozik # ugyanahhoz az UART \u00e9rintkez\u0151h\u00f6z. Az alap\u00e9rtelmezett \u00e9rt\u00e9k nulla. #driver_IHOLDDELAY: 8 #driver_TPOWERDOWN: 20 #driver_TBL: 2 #driver_TOFF: 3 #driver_HEND: 0 #driver_HSTRT: 5 #driver_PWM_AUTOGRAD: True #driver_PWM_AUTOSCALE: True #driver_PWM_LIM: 12 #driver_PWM_REG: 8 #driver_PWM_FREQ: 1 #driver_PWM_GRAD: 14 #driver_PWM_OFS: 36 #driver_SGTHRS: 0 # \u00c1ll\u00edtsd be a megadott regisztert a TMC2209 chip konfigur\u00e1ci\u00f3ja sor\u00e1n. # Ez egy\u00e9ni motorparam\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. # Az egyes param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a param\u00e9ter neve # mellett tal\u00e1lhat\u00f3k a fenti list\u00e1ban. #diag_pin: # A TMC2209 chip DIAG t\u0171j\u00e9hez csatlakoztatott mikrovez\u00e9rl\u0151 t\u0171je. # A t\u0171 el\u0151tagja \u00e1ltal\u00e1ban \"^\"-vel t\u00f6rt\u00e9nik, hogy lehet\u0151v\u00e9 tegye a # felh\u00faz\u00e1st. Ennek be\u00e1ll\u00edt\u00e1sa egy # \"tmc2209_stepper_x:virtual_endstop\" virtu\u00e1lis t\u0171t hoz l\u00e9tre, # amely a l\u00e9ptet\u0151 endstop_pin-jek\u00e9nt haszn\u00e1lhat\u00f3. Ez lehet\u0151v\u00e9 teszi a # \"v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telt\". (Gy\u0151z\u0151dj meg arr\u00f3l, # hogy a driver_SGTHRS-t is megfelel\u0151 \u00e9rz\u00e9kenys\u00e9gi \u00e9rt\u00e9kre \u00e1ll\u00edtja be.) # Alap\u00e9rtelmez\u00e9s szerint nincs enged\u00e9lyezve a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 n\u00e9lk\u00fcli # kezd\u0151pont felv\u00e9telt.","title":"[tmc2209]"},{"location":"Config_Reference.html#tmc2660","text":"TMC2660 motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1sa SPI-buszon kereszt\u00fcl. A funkci\u00f3 haszn\u00e1lat\u00e1hoz defini\u00e1ljon egy konfigur\u00e1ci\u00f3s szekci\u00f3t tmc2660 el\u0151taggal, amelyet a megfelel\u0151 l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3s szekci\u00f3 neve k\u00f6vet (p\u00e9ld\u00e1ul \"[tmc2660 stepper_x]\"). [tmc2660 stepper_x] cs_pin: # A TMC2660 chip kiv\u00e1laszt\u00e1si vonal\u00e1nak megfelel\u0151 t\u0171. Ez a t\u0171 # alacsonyra lesz \u00e1ll\u00edtva az SPI-\u00fczenetek elej\u00e9n, \u00e9s magasra az # \u00fczenet\u00e1tvitel befejez\u00e9se ut\u00e1n. Ezt a param\u00e9tert meg kell adni. #spi_speed: 4000000 # A TMC2660 l\u00e9ptet\u0151 meghajt\u00f3val val\u00f3 kommunik\u00e1ci\u00f3hoz haszn\u00e1lt # SPI-busz-frekvencia. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 4000000. #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t a \u201e\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\u201d # r\u00e9szben tal\u00e1lja. #interpolate: True # Ha True, enged\u00e9lyezd a l\u00e9p\u00e9sinterpol\u00e1ci\u00f3t (az illeszt\u0151program # bels\u0151leg 256 mikrol\u00e9p\u00e9ses sebess\u00e9ggel l\u00e9ptet). Ez csak akkor # m\u0171k\u00f6dik, ha a mikrol\u00e9p\u00e9sek 16-ra vannak \u00e1ll\u00edtva. Az interpol\u00e1ci\u00f3 # egy kis sziszt\u00e9m\u00e1s poz\u00edci\u00f3elt\u00e9r\u00e9st vezet be. A r\u00e9szletek\u00e9rt l\u00e1sd a # TMC_Drivers.md f\u00e1jlt. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. run_current: # A motorvez\u00e9rl\u0151 \u00e1ltal a l\u00e9ptet\u0151 mozg\u00e1sa sor\u00e1n leadott \u00e1ram er\u0151ss\u00e9ge # (amper RMS-ben). Ezt a param\u00e9tert meg kell adni. #sense_resistor: # A motor \u00e9rz\u00e9kel\u0151 ellen\u00e1ll\u00e1s\u00e1nak ellen\u00e1ll\u00e1sa (ohmban). # Ezt a param\u00e9tert meg kell adni. #idle_current_percent: 100 # A motorvez\u00e9rl\u0151 run_current sz\u00e1zal\u00e9kos ar\u00e1nya lecs\u00f6kken, amikor az # \u00fcresj\u00e1rati id\u0151t\u00fall\u00e9p\u00e9s lej\u00e1r (az id\u0151t\u00fall\u00e9p\u00e9st az [idle_timeout] # konfigur\u00e1ci\u00f3s szakaszban kell be\u00e1ll\u00edtani). Az \u00e1ramer\u0151ss\u00e9g ism\u00e9t # megemelkedik, ha a l\u00e9ptet\u0151nek ism\u00e9t mozognia kell. \u00dcgyelj arra, # hogy ezt el\u00e9g magas \u00e9rt\u00e9kre \u00e1ll\u00edtsd be, hogy a l\u00e9ptet\u0151k ne vesz\u00edts\u00e9k el # poz\u00edci\u00f3jukat. Van egy kis k\u00e9sleltet\u00e9s is, am\u00edg az \u00e1ram ism\u00e9t # megemelkedik, ez\u00e9rt ezt vedd figyelembe, amikor a l\u00e9ptet\u0151 # alapj\u00e1rata k\u00f6zben gyors mozdulatokat ad parancsba. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 100 (nincs cs\u00f6kkent\u00e9s). #driver_TBL: 2 #driver_RNDTF: 0 #driver_HDEC: 0 #driver_CHM: 0 #driver_HEND: 3 #driver_HSTRT: 3 #driver_TOFF: 4 #driver_SEIMIN: 0 #driver_SEDN: 0 #driver_SEMAX: 0 #driver_SEUP: 0 #driver_SEMIN: 0 #driver_SFILT: 0 #driver_SGT: 0 #driver_SLPH: 0 #driver_SLPL: 0 #driver_DISS2G: 0 #driver_TS2G: 3 # \u00c1ll\u00edtsd be a megadott param\u00e9tert a TMC2660 chip konfigur\u00e1ci\u00f3ja sor\u00e1n. # Ez egy\u00e9ni motorvez\u00e9rl\u0151 param\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. # Az egyes param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a param\u00e9ter neve # mellett tal\u00e1lhat\u00f3k a fenti list\u00e1ban. Tekintsd meg a TMC2660 adatlapj\u00e1t # az egyes param\u00e9terek m\u0171k\u00f6d\u00e9s\u00e9r\u0151l \u00e9s a param\u00e9ter kombin\u00e1ci\u00f3k # korl\u00e1toz\u00e1sair\u00f3l. K\u00fcl\u00f6n\u00f6s figyelmet kell ford\u00edtani a CHOPCONF # regiszterre, ahol a CHM null\u00e1ra vagy egyesre \u00e1ll\u00edt\u00e1sa # elrendez\u00e9sm\u00f3dos\u00edt\u00e1sokhoz vezet (a HDEC els\u0151 bitje) ebben az esetben # a HSTRT MSB-jek\u00e9nt \u00e9rtelmez\u0151dik).","title":"[tmc2660]"},{"location":"Config_Reference.html#tmc5160","text":"TMC5160 motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1sa SPI-buszon kereszt\u00fcl. A funkci\u00f3 haszn\u00e1lat\u00e1hoz defini\u00e1ljon egy konfigur\u00e1ci\u00f3s szekci\u00f3t \"tmc5160\" el\u0151taggal, amelyet a megfelel\u0151 l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3s szekci\u00f3 neve k\u00f6vet (p\u00e9ld\u00e1ul \"[tmc5160 stepper_x]\"). [tmc5160 stepper_x] cs_pin: # A TMC5160 chip kiv\u00e1laszt\u00e1si vonal\u00e1nak megfelel\u0151 t\u0171. Ez a t\u0171 alacsony # \u00e9rt\u00e9kre lesz \u00e1ll\u00edtva az SPI-\u00fczenetek elej\u00e9n, \u00e9s az \u00fczenet befejez\u00e9se ut\u00e1n # magasra v\u00e1ltozik. Ezt a param\u00e9tert meg kell adni. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t az \u201e\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\u201d # r\u00e9szben tal\u00e1lja. #chain_position: #chain_length: # Ezek a param\u00e9terek egy SPI-l\u00e1ncot konfigur\u00e1lnak. A k\u00e9t param\u00e9ter # hat\u00e1rozza meg a l\u00e9ptet\u0151 poz\u00edci\u00f3j\u00e1t a l\u00e1ncban \u00e9s a teljes l\u00e1nchosszt. # Az 1. poz\u00edci\u00f3 a MOSI jelhez csatlakoz\u00f3 l\u00e9ptet\u0151nek felel meg. # Az alap\u00e9rtelmez\u00e9s szerint nem haszn\u00e1l SPI-l\u00e1ncot. #interpolate: True # Ha True, enged\u00e9lyezd a l\u00e9p\u00e9sinterpol\u00e1ci\u00f3t (a motorvez\u00e9rl\u0151 bels\u0151leg # 256 mikrol\u00e9p\u00e9ses sebess\u00e9ggel l\u00e9ptet). Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. run_current: # Az \u00e1ramer\u0151ss\u00e9g (amper RMS-ben) a meghajt\u00f3 konfigur\u00e1l\u00e1s\u00e1hoz a # l\u00e9ptet\u0151 mozg\u00e1sa sor\u00e1n. Ezt a param\u00e9tert meg kell adni. #hold_current: # Az az \u00e1ramer\u0151ss\u00e9g (amper RMS-ben), amelyet a motorvez\u00e9rl\u0151 akkor # ad le, amikor a l\u00e9ptet\u0151 nem mozog. A hold_current be\u00e1ll\u00edt\u00e1sa nem # aj\u00e1nlott (a r\u00e9szletek\u00e9rt l\u00e1sd: TMC_Drivers.md). # Az alap\u00e9rtelmezett az, hogy nem cs\u00f6kkenti az \u00e1ramer\u0151ss\u00e9get. #sense_resistor: 0.075 # A motor \u00e9rz\u00e9kel\u0151 ellen\u00e1ll\u00e1s\u00e1nak ellen\u00e1ll\u00e1sa (ohmban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,075 ohm. #stealthchop_threshold: 0 # A \u201eStealthChop\u201d k\u00fcsz\u00f6b\u00e9rt\u00e9k be\u00e1ll\u00edt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges sebess\u00e9g # (mm/sec-ben). Ha be van \u00e1ll\u00edtva, a \"StealthChop\" m\u00f3d enged\u00e9lyezve # lesz, ha a l\u00e9ptet\u0151motor sebess\u00e9ge ez alatt az \u00e9rt\u00e9k alatt van. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0, ami letiltja a \"StealthChop\" m\u00f3dot. #driver_IHOLDDELAY: 6 #driver_TPOWERDOWN: 10 #driver_TBL: 2 #driver_TOFF: 3 #driver_HEND: 2 #driver_HSTRT: 5 #driver_FD3: 0 #driver_TPFD: 4 #driver_CHM: 0 #driver_VHIGHFS: 0 #driver_VHIGHCHM: 0 #driver_DISS2G: 0 #driver_DISS2VS: 0 #driver_PWM_AUTOSCALE: True #driver_PWM_AUTOGRAD: True #driver_PWM_FREQ: 0 #driver_FREEWHEEL: 0 #driver_PWM_GRAD: 0 #driver_PWM_OFS: 30 #driver_PWM_REG: 4 #driver_PWM_LIM: 12 #driver_SGT: 0 #driver_SEMIN: 0 #driver_SEUP: 0 #driver_SEMAX: 0 #driver_SEDN: 0 #driver_SEIMIN: 0 #driver_SFILT: 0 # \u00c1ll\u00edtsd be a megadott regisztert a TMC5160 chip konfigur\u00e1ci\u00f3ja sor\u00e1n. # Ez egy\u00e9ni motorparam\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. Az egyes # param\u00e9terek alap\u00e9rtelmezett \u00e9rt\u00e9kei a param\u00e9ter neve mellett # tal\u00e1lhat\u00f3k a fenti list\u00e1ban. #diag0_pin: #diag1_pin: # A mikrovez\u00e9rl\u0151 t\u0171je a TMC5160 chip egyik DIAG vonal\u00e1hoz csatlakozik. # Csak egyetlen DIAG t\u0171t kell megadni. A t\u0171 \"active low\", ez\u00e9rt \u00e1ltal\u00e1ban # \"^!\" el\u0151tagja van. Ennek be\u00e1ll\u00edt\u00e1sa egy # \u201etmc5160_stepper_x:virtual_endstop\u201d virtu\u00e1lis t\u0171t hoz l\u00e9tre, amely a # l\u00e9ptet\u0151 endstop_pin-jek\u00e9nt haszn\u00e1lhat\u00f3. Ez lehet\u0151v\u00e9 teszi az \u201e\u00e9rz\u00e9kel\u0151 # n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel\u201d funkci\u00f3t. (Gy\u0151z\u0151dj meg arr\u00f3l, hogy a # driver_SGT-t is megfelel\u0151 \u00e9rz\u00e9kenys\u00e9gi \u00e9rt\u00e9kre \u00e1ll\u00edtja be.) # Az alap\u00e9rtelmez\u00e9s az, hogy nem enged\u00e9lyezi az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli # kezd\u0151pont felv\u00e9telt.","title":"[tmc5160]"},{"location":"Config_Reference.html#futas-ideju-leptetomotor-aram-konfiguracio","text":"","title":"Fut\u00e1s-idej\u0171 l\u00e9ptet\u0151motor \u00e1ram konfigur\u00e1ci\u00f3"},{"location":"Config_Reference.html#ad5206","text":"Statikusan konfigur\u00e1lt AD5206 digipotok, amelyek SPI-buszon kereszt\u00fcl csatlakoznak (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"ad5206\" el\u0151taggal). [ad5206 my_digipot] enable_pin: # Az AD5206 chip kiv\u00e1laszt\u00e1si vonal\u00e1nak megfelel\u0151 pin. Ez a pin # az SPI-\u00fczenetek elej\u00e9n alacsonyra lesz \u00e1ll\u00edtva, \u00e9s magasra emelkedik # az \u00fczenet befejez\u00e9se ut\u00e1n. Ezt a param\u00e9tert meg kell adni. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # L\u00e1sd az \"\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\" c\u00edm\u0171 le\u00edr\u00e1st a # fenti param\u00e9terek megad\u00e1s\u00e1hoz. #channel_1: #channel_2: #channel_3: #channel_4: #channel_5: #channel_6: # Az adott AD5206 csatorna statikus be\u00e1ll\u00edt\u00e1s\u00e1ra szolg\u00e1l\u00f3 \u00e9rt\u00e9k. Ez # \u00e1ltal\u00e1ban 0,0 \u00e9s 1,0 k\u00f6z\u00f6tti sz\u00e1mra van \u00e1ll\u00edtva, ahol az 1,0 a # legnagyobb ellen\u00e1ll\u00e1s \u00e9s 0,0 a legkisebb ellen\u00e1ll\u00e1s. Azonban, # a tartom\u00e1ny megv\u00e1ltoztathat\u00f3 a 'scale' param\u00e9terrel (l\u00e1sd al\u00e1bb). # Ha egy csatorna nincs megadva, akkor konfigur\u00e1latlanul marad. #scale: # Ezzel a param\u00e9terrel m\u00f3dos\u00edthat\u00f3 a 'channel_x' param\u00e9ter # \u00e9rtelmez\u00e9se. Ha megadod, akkor a 'channel_x' param\u00e9tereknek # 0,0 \u00e9s 'scale' k\u00f6z\u00f6tt kell lennie. Ez akkor lehet hasznos, ha az # AD5206 a l\u00e9ptet\u0151 fesz\u00fclts\u00e9g referenci\u00e1k be\u00e1ll\u00edt\u00e1s\u00e1ra szolg\u00e1l. A \u201em\u00e9rleg\u201d tud # egyen\u00e9rt\u00e9k\u0171 l\u00e9ptet\u0151 \u00e1ramer\u0151ss\u00e9get \u00e1ll\u00edtani, ha az AD5206 \u00e9rt\u00e9ken lenne # a legnagyobb ellen\u00e1ll\u00e1sa, majd a 'channel_x' param\u00e9terek lehetnek # megadva a l\u00e9ptet\u0151 k\u00edv\u00e1nt amper\u00e9rt\u00e9k\u00e9vel. Az # alap\u00e9rtelmez\u00e9s szerint nem sk\u00e1l\u00e1zza a 'channel_x' param\u00e9tereket.","title":"[ad5206]"},{"location":"Config_Reference.html#mcp4451","text":"Statikusan konfigur\u00e1lt MCP4451 digipot, amely I2C buszon kereszt\u00fcl csatlakozik (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"mcp4451\" el\u0151taggal). [mcp4451 my_digipot] i2c_address: # Az I2C c\u00edm, amelyet a chip az I2C buszon haszn\u00e1l. # Ezt a param\u00e9tert meg kell adni. #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #wiper_0: #wiper_1: #wiper_2: #wiper_3: # Az az \u00e9rt\u00e9k, amelyre az adott MCP4451 \"wiper\" statikusan be\u00e1ll\u00edthat\u00f3. # Ez \u00e1ltal\u00e1ban 0,0 \u00e9s 1,0 k\u00f6z\u00f6tti sz\u00e1mra van be\u00e1ll\u00edtva, ahol az 1,0 a # legnagyobb ellen\u00e1ll\u00e1s, a 0,0 pedig a legkisebb ellen\u00e1ll\u00e1s. # A tartom\u00e1ny azonban m\u00f3dos\u00edthat\u00f3 a 'scale' param\u00e9terrel (l\u00e1sd al\u00e1bb). # Ha nincs megadva 'wiper', akkor az konfigur\u00e1latlanul marad. #scale: # Ezzel a param\u00e9terrel m\u00f3dos\u00edthat\u00f3 a 'wiper_x' param\u00e9terek \u00e9rtelmez\u00e9se. # Ha meg van adva, akkor a 'wiper_x' param\u00e9ternek 0,0 \u00e9s 'scale' k\u00f6z\u00f6tt # kell lennie. Ez akkor lehet hasznos, ha az MCP4451-et a l\u00e9ptet\u0151 # fesz\u00fclts\u00e9greferenci\u00e1k be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lj\u00e1k. A 'scale' be\u00e1ll\u00edthat\u00f3 az # egyen\u00e9rt\u00e9k\u0171 l\u00e9ptet\u0151 \u00e1ramer\u0151ss\u00e9gre, ha az MCP4451 a legnagyobb # ellen\u00e1ll\u00e1son volt, majd a 'wiper_x' param\u00e9terek megadhat\u00f3k a # l\u00e9ptet\u0151 k\u00edv\u00e1nt \u00e1ramer\u0151ss\u00e9ge seg\u00edts\u00e9g\u00e9vel. # Az alap\u00e9rtelmez\u00e9s az, hogy a 'wiper_x' param\u00e9tereket nem sk\u00e1l\u00e1zzuk.","title":"[mcp4451]"},{"location":"Config_Reference.html#mcp4728","text":"Statikusan konfigur\u00e1lt MCP4728 digit\u00e1lis-anal\u00f3g \u00e1talak\u00edt\u00f3, amely I2C buszon kereszt\u00fcl csatlakozik (az \"mcp4728\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni). [mcp4728 my_dac] #i2c_address: 96 # Az I2C c\u00edm, amelyet a chip az I2C buszon haszn\u00e1l. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 96. #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #channel_a: #channel_b: #channel_c: #channel_d: # Az adott MCP4728 csatorna statikus be\u00e1ll\u00edt\u00e1s\u00e1ra szolg\u00e1l\u00f3 \u00e9rt\u00e9k. # Ez \u00e1ltal\u00e1ban 0,0 \u00e9s 1,0 k\u00f6z\u00f6tti sz\u00e1mra van be\u00e1ll\u00edtva, ahol az 1,0 a # legmagasabb fesz\u00fclts\u00e9g (2,048 V), a 0,0 pedig a legalacsonyabb # fesz\u00fclts\u00e9g. A tartom\u00e1ny azonban m\u00f3dos\u00edthat\u00f3 a 'scale' # param\u00e9terrel (l\u00e1sd al\u00e1bb). # Ha egy csatorna nincs megadva, akkor az konfigur\u00e1latlanul marad. #scale: # Ez a param\u00e9ter haszn\u00e1lhat\u00f3 a 'channel_x' param\u00e9terek # \u00e9rtelmez\u00e9s\u00e9nek megv\u00e1ltoztat\u00e1s\u00e1ra. Ha meg van adva, akkor a # 'channel_x' param\u00e9ternek 0,0 \u00e9s 'scale' k\u00f6z\u00f6tt kell lennie. Ez akkor # lehet hasznos, ha az MCP4728-at a l\u00e9ptet\u0151 fesz\u00fclts\u00e9greferenci\u00e1k # be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lj\u00e1k. A 'scale' be\u00e1ll\u00edthat\u00f3 az egyen\u00e9rt\u00e9k\u0171 l\u00e9ptet\u0151 # \u00e1ramer\u0151ss\u00e9g\u00e9re, ha az MCP4728 a legmagasabb fesz\u00fclts\u00e9gen volt # (2,048 V), majd a 'channel_x' param\u00e9terek megadhat\u00f3k a l\u00e9ptet\u0151 # k\u00edv\u00e1nt amper\u00e9rt\u00e9k\u00e9vel. Az alap\u00e9rtelmezett az, hogy nem # m\u00e9retezi a 'channel_x' param\u00e9tereket.","title":"[mcp4728]"},{"location":"Config_Reference.html#mcp4018","text":"Statikusan konfigur\u00e1lt MCP4018 digipot, amely k\u00e9t GPIO \"bit banging\" t\u0171n kereszt\u00fcl csatlakozik (tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t lehet defini\u00e1lni \"mcp4018\" el\u0151taggal). [mcp4018 my_digipot] scl_pin: # Az SCL \"\u00f3ra\" t\u0171je. Ezt a param\u00e9tert meg kell adni. sda_pin: # Az SDA \"adat\" t\u0171je. Ezt a param\u00e9tert meg kell adni. wiper: # Az az \u00e9rt\u00e9k, amelyre az adott MCP4018 \"wiper\" statikusan be\u00e1ll\u00edthat\u00f3. # Ez \u00e1ltal\u00e1ban 0,0 \u00e9s 1,0 k\u00f6z\u00f6tti sz\u00e1mra van be\u00e1ll\u00edtva, ahol az 1,0 a # legnagyobb ellen\u00e1ll\u00e1s, a 0,0 pedig a legkisebb ellen\u00e1ll\u00e1s. # A tartom\u00e1ny azonban m\u00f3dos\u00edthat\u00f3 a 'scale' param\u00e9terrel (l\u00e1sd al\u00e1bb). # Ezt a param\u00e9tert meg kell adni. #scale: # Ezzel a param\u00e9terrel m\u00f3dos\u00edthat\u00f3 a 'wiper' param\u00e9ter \u00e9rtelmez\u00e9se. # Ha van, akkor az 'wiper' param\u00e9ternek 0,0 \u00e9s 'scale' k\u00f6z\u00f6tt kell lennie. # Ez akkor lehet hasznos, ha az MCP4018-at a l\u00e9ptet\u0151 fesz\u00fclts\u00e9greferenci\u00e1k # be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lj\u00e1k. A 'scale' be\u00e1ll\u00edthat\u00f3 az egyen\u00e9rt\u00e9k\u0171 l\u00e9ptet\u0151 # \u00e1ramer\u0151ss\u00e9g\u00e9re, ha az MCP4018 a legnagyobb ellen\u00e1ll\u00e1son van, # majd a 'wiper' param\u00e9ter megadhat\u00f3 a l\u00e9ptet\u0151 k\u00edv\u00e1nt amper\u00e9rt\u00e9k\u00e9vel. # Az alap\u00e9rtelmezett be\u00e1ll\u00edt\u00e1s az, hogy nem sk\u00e1l\u00e1zza a 'wiper' param\u00e9tert.","title":"[mcp4018]"},{"location":"Config_Reference.html#kijelzotamogatas","text":"","title":"Kijelz\u0151t\u00e1mogat\u00e1s"},{"location":"Config_Reference.html#display","text":"A mikrokontrollerhez csatlakoztatott kijelz\u0151 t\u00e1mogat\u00e1sa. [display] lcd_type: # A haszn\u00e1lt LCD chip t\u00edpusa. Ez lehet \"hd44780\", \"hd44780_spi\", \"st7920\", # \"emulated_st7920\", \"uc1701\", \"ssd1306\" vagy \"sh1106\". Az egyes # t\u00edpusokr\u00f3l \u00e9s az \u00e1ltaluk biztos\u00edtott tov\u00e1bbi param\u00e9terekr\u0151l az al\u00e1bbi # k\u00e9perny\u0151szakaszokban tal\u00e1l inform\u00e1ci\u00f3kat. # Ezt a param\u00e9tert meg kell adni. #display_group: # A kijelz\u0151n megjelen\u00edtend\u0151 display_data csoport neve. Ez szab\u00e1lyozza a # k\u00e9perny\u0151 tartalm\u00e1t (tov\u00e1bbi inform\u00e1ci\u00f3\u00e9rt l\u00e1sd a \u201edisplay_data\u201d r\u00e9szt). # Az alap\u00e9rtelmezett _default_20x4 a hd44780-as kijelz\u0151kn\u00e9l \u00e9s a # _default_16x4 a t\u00f6bbi k\u00e9perny\u0151n\u00e9l. #menu_timeout: # Id\u0151korl\u00e1t a men\u00fch\u00f6z. Ha ennyi m\u00e1sodpercig inakt\u00edv, az automatikusan # kil\u00e9p a men\u00fcb\u0151l, vagy visszat\u00e9r a f\u0151men\u00fcbe, ha az automatikus ind\u00edt\u00e1s # enged\u00e9lyezve van. Az alap\u00e9rtelmezett 0 m\u00e1sodperc (letiltva) #menu_root: # A f\u0151men\u00fc r\u00e9sz neve, amely akkor jelenik meg, amikor a k\u00f3dol\u00f3ra kattint # a kezd\u0151k\u00e9perny\u0151n. Az alap\u00e9rtelmezett \u00e9rt\u00e9k a __main, \u00e9s ez a # klippy/extras/display/menu.cfg f\u00e1jlban meghat\u00e1rozott alap\u00e9rtelmezett # men\u00fcket mutatja. #menu_reverse_navigation: # Ha enged\u00e9lyezve van, a list\u00e1ban t\u00f6rt\u00e9n\u0151 navig\u00e1ci\u00f3 fel \u00e9s lefel\u00e9 ir\u00e1ny\u00e1t # v\u00e1ltja. Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. Ez a param\u00e9ter nem k\u00f6telez\u0151. #encoder_pins: # A k\u00f3dol\u00f3hoz csatlakoztatott \u00e9rintkez\u0151k. A k\u00f3dol\u00f3 haszn\u00e1latakor 2 # \u00e9rintkez\u0151t kell biztos\u00edtani. Ezt a param\u00e9tert a men\u00fc haszn\u00e1latakor kell # megadni. #encoder_steps_per_detent: # H\u00e1ny l\u00e9p\u00e9st ad ki a k\u00f3dol\u00f3 reteszel\u00e9senk\u00e9nt (\"kattint\u00e1s\"). Ha a # k\u00f3dol\u00f3nak k\u00e9t reteszre van sz\u00fcks\u00e9ge a bejegyz\u00e9sek k\u00f6z\u00f6tti mozg\u00e1shoz, # vagy k\u00e9t bejegyz\u00e9st mozgat meg egy r\u00f6gz\u00edt\u00e9sb\u0151l, pr\u00f3b\u00e1ld meg ezt # megv\u00e1ltoztatni. A megengedett \u00e9rt\u00e9kek 2 (f\u00e9ll\u00e9pcs\u0151s) vagy # 4 (teljes l\u00e9p\u00e9s). Az alap\u00e9rtelmezett \u00e9rt\u00e9k a 4. #click_pin: # Az \u201eEnter\u201d gombhoz vagy a k\u00f3dol\u00f3 \u201ekattint\u00e1s\u00e1hoz\u201d csatlakoztatott t\u0171. # Ezt a param\u00e9tert a men\u00fc haszn\u00e1latakor kell megadni. # Az \u201eanalog_range_click_pin\u201d konfigur\u00e1ci\u00f3s param\u00e9ter jelenl\u00e9te ezt a # param\u00e9tert digit\u00e1lisr\u00f3l anal\u00f3gra v\u00e1ltoztatja. #back_pin: # A \u201evissza\u201d gombhoz csatlakoztatott t\u0171. Ez a param\u00e9ter nem k\u00f6telez\u0151, # a men\u00fc en\u00e9lk\u00fcl is haszn\u00e1lhat\u00f3. Az \u201eanalog_range_back_pin\u201d # konfigur\u00e1ci\u00f3s param\u00e9ter jelenl\u00e9te ezt a param\u00e9tert digit\u00e1lisr\u00f3l # anal\u00f3gra v\u00e1ltoztatja. #up_pin: # A t\u0171 a \u201efel\u201d gombhoz csatlakozik. Ezt a param\u00e9tert k\u00f3dol\u00f3 n\u00e9lk\u00fcli men\u00fc # haszn\u00e1latakor kell megadni. Az \u201eanalog_range_up_pin\u201d konfigur\u00e1ci\u00f3s # param\u00e9ter jelenl\u00e9te ezt a param\u00e9tert digit\u00e1lisr\u00f3l anal\u00f3gra v\u00e1ltoztatja. #down_pin: # A t\u0171 a \u201ele\u201d gombhoz csatlakozik. Ezt a param\u00e9tert k\u00f3dol\u00f3 n\u00e9lk\u00fcli men\u00fc # haszn\u00e1latakor kell megadni. Az \u201eanalog_range_down_pin\u201d konfigur\u00e1ci\u00f3s # param\u00e9ter jelenl\u00e9te ezt a param\u00e9tert digit\u00e1lisr\u00f3l anal\u00f3gra v\u00e1ltoztatja. #kill_pin: # A t\u0171 a \u201ekill\u201d gombhoz csatlakozik. Ez a gomb v\u00e9szle\u00e1ll\u00edt\u00e1st h\u00edv. # Az \u201eanalog_range_kill_pin\u201d konfigur\u00e1ci\u00f3s param\u00e9ter jelenl\u00e9te ezt a # param\u00e9tert digit\u00e1lisr\u00f3l anal\u00f3gra v\u00e1ltoztatja. #analog_pullup_resistor: 4700 # Az anal\u00f3g gombhoz csatlakoztatott felh\u00faz\u00f3 ellen\u00e1ll\u00e1sa (ohmban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 4700 ohm. #analog_range_click_pin: # Az \u201eEnter\u201d gomb ellen\u00e1ll\u00e1si tartom\u00e1nya. # Anal\u00f3g gomb haszn\u00e1lata eset\u00e9n a tartom\u00e1ny minim\u00e1lis \u00e9s # maxim\u00e1lis \u00e9rt\u00e9keit vessz\u0151vel elv\u00e1lasztva kell megadni. #analog_range_back_pin: # A \u201evissza\u201d gomb ellen\u00e1ll\u00e1si tartom\u00e1nya. # Anal\u00f3g gomb haszn\u00e1lata eset\u00e9n a tartom\u00e1ny minim\u00e1lis \u00e9s # maxim\u00e1lis \u00e9rt\u00e9keit vessz\u0151vel elv\u00e1lasztva kell megadni. #analog_range_up_pin: # A \u201efel\u201d gomb ellen\u00e1ll\u00e1si tartom\u00e1nya. # Anal\u00f3g gomb haszn\u00e1lata eset\u00e9n a tartom\u00e1ny minim\u00e1lis \u00e9s # maxim\u00e1lis \u00e9rt\u00e9keit vessz\u0151vel elv\u00e1lasztva kell megadni. #analog_range_down_pin: # A \u201ele\u201d gomb ellen\u00e1ll\u00e1si tartom\u00e1nya. # Anal\u00f3g gomb haszn\u00e1lata eset\u00e9n a tartom\u00e1ny minim\u00e1lis \u00e9s # maxim\u00e1lis \u00e9rt\u00e9keit vessz\u0151vel elv\u00e1lasztva kell megadni. #analog_range_kill_pin: # A \u201ekill\u201d gomb ellen\u00e1ll\u00e1si tartom\u00e1nya. # Anal\u00f3g gomb haszn\u00e1lata eset\u00e9n a tartom\u00e1ny minim\u00e1lis \u00e9s # maxim\u00e1lis \u00e9rt\u00e9keit vessz\u0151vel elv\u00e1lasztva kell megadni.","title":"[display]"},{"location":"Config_Reference.html#hd44780-kijelzo","text":"Inform\u00e1ci\u00f3k a HD44780 kijelz\u0151k konfigur\u00e1l\u00e1s\u00e1r\u00f3l (amelyet a \"RepRapDiscount 2004 Smart Controller\" t\u00edpus\u00fa kijelz\u0151kben haszn\u00e1lnak). [display] lcd_type: hd44780 # \u00c1ll\u00edtsd \"hd44780\" \u00e9rt\u00e9kre a hd44780 kijelz\u0151kh\u00f6z. rs_pin: e_pin: d4_pin: d5_pin: d6_pin: d7_pin: # A t\u0171k egy hd44780 t\u00edpus\u00fa LCD-hez csatlakoznak. # Ezeket a param\u00e9tereket meg kell adni. #hd44780_protocol_init: True # V\u00e9gezz 8 bites/4 bites protokoll inicializ\u00e1l\u00e1st hd44780 kijelz\u0151n. # Ez sz\u00fcks\u00e9ges a val\u00f3di hd44780-as eszk\u00f6z\u00f6k\u00f6n. El\u0151fordulhat # azonban, hogy ezt bizonyos \"kl\u00f3noz\u00f3\" eszk\u00f6z\u00f6k\u00f6n le kell tiltani. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #line_length: # \u00c1ll\u00edtsd be a soronk\u00e9nti karakterek sz\u00e1m\u00e1t egy hd44780 t\u00edpus\u00fa # LCD-n. A lehets\u00e9ges \u00e9rt\u00e9kek: 20 (alap\u00e9rtelmezett) \u00e9s 16. # A sorok sz\u00e1ma 4-re van r\u00f6gz\u00edtve. ...","title":"hd44780 kijelz\u0151"},{"location":"Config_Reference.html#hd44780_spi-kijelzo","text":"Inform\u00e1ci\u00f3 a HD44780_spi kijelz\u0151 konfigur\u00e1l\u00e1s\u00e1r\u00f3l egy 20x04-es kijelz\u0151, egy hardveres \"shift register\" (amelyet a mightyboard alap\u00fa nyomtat\u00f3kban haszn\u00e1lnak). [display] lcd_type: hd44780_spi # \u00c1ll\u00edtsd be a \"hd44780_spi\" \u00e9rt\u00e9ket a hd44780_spi kijelz\u0151kh\u00f6z. latch_pin: spi_software_sclk_pin: spi_software_mosi_pin: spi_software_miso_pin: # A kijelz\u0151t vez\u00e9rl\u0151 m\u0171szakregiszterhez csatlakoztatott t\u0171k. # Az spi_software_miso_pin-t a nyomtat\u00f3 alaplapj\u00e1nak haszn\u00e1laton # k\u00edv\u00fcli t\u0171j\u00e9re kell \u00e1ll\u00edtani, mivel a shift regiszternek nincs MISO t\u0171je, # de a szoftver SPI megval\u00f3s\u00edt\u00e1s\u00e1hoz ezt a t\u0171t be kell \u00e1ll\u00edtani. #hd44780_protocol_init: True # V\u00e9gezz 8 bites/4 bites protokoll inicializ\u00e1l\u00e1st hd44780 kijelz\u0151n. # Ez sz\u00fcks\u00e9ges a val\u00f3di hd44780-as eszk\u00f6z\u00f6k\u00f6n. El\u0151fordulhat # azonban, hogy ezt bizonyos \"kl\u00f3noz\u00f3\" eszk\u00f6z\u00f6k\u00f6n le kell tiltani. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #line_length: # \u00c1ll\u00edtsd be a soronk\u00e9nti karakterek sz\u00e1m\u00e1t egy hd44780 t\u00edpus\u00fa LCD-n. # A lehets\u00e9ges \u00e9rt\u00e9kek: 20 (alap\u00e9rtelmezett) \u00e9s 16. # A sorok sz\u00e1ma 4-re van r\u00f6gz\u00edtve. ...","title":"hd44780_spi kijelz\u0151"},{"location":"Config_Reference.html#st7920-kijelzo","text":"Inform\u00e1ci\u00f3k az ST7920 kijelz\u0151k konfigur\u00e1l\u00e1s\u00e1r\u00f3l (amelyet a \"RepRapDiscount 12864 Full Graphic Smart Controller\" t\u00edpus\u00fa kijelz\u0151kn\u00e9l haszn\u00e1lnak). [display] lcd_type: st7920 # \u00c1ll\u00edtsd az \"st7920\"-ra az st7920-as kijelz\u0151kh\u00f6z. cs_pin: sclk_pin: sid_pin: # A t\u0171k egy st7920 t\u00edpus\u00fa LCD-hez csatlakoznak. # Ezeket a param\u00e9tereket meg kell adni. ...","title":"st7920 kijelz\u0151"},{"location":"Config_Reference.html#emulated_st7920-kijelzo","text":"Inform\u00e1ci\u00f3 az emul\u00e1lt ST7920 kijelz\u0151 konfigur\u00e1l\u00e1s\u00e1r\u00f3l. Megtal\u00e1lhat\u00f3 n\u00e9h\u00e1ny \"2,4 h\u00fcvelykes \u00e9rint\u0151k\u00e9perny\u0151s eszk\u00f6zben\" \u00e9s hasonl\u00f3kban. [display] lcd_type: emulated_st7920 # \u00c1ll\u00edtsd az \"emulated_st7920\" \u00e9rt\u00e9kre az emulated_st7920 kijelz\u0151kh\u00f6z. en_pin: spi_software_sclk_pin: spi_software_mosi_pin: spi_software_miso_pin: # Az emul\u00e1lt_st7920 t\u00edpus\u00fa LCD-hez csatlakoztatott \u00e9rintkez\u0151k. # Az en_pin az st7920 t\u00edpus\u00fa LCD cs_pin-j\u00e9nek, az spi_software_sclk_pin # az sclk_pin-nek, az spi_software_mosi_pin pedig a sid_pin-nek felel meg. # A spi_software_miso_pin-t a nyomtat\u00f3 alaplapj\u00e1nak egy haszn\u00e1laton # k\u00edv\u00fcli t\u0171j\u00e9re kell be\u00e1ll\u00edtani, mint az st7920-at, mivel nincs MISO-t\u0171, de a # szoftveres SPI-megval\u00f3s\u00edt\u00e1shoz ezt a t\u0171t kell konfigur\u00e1lni. ...","title":"emulated_st7920 kijelz\u0151"},{"location":"Config_Reference.html#uc1701-kijelzo","text":"Inform\u00e1ci\u00f3k az UC1701 kijelz\u0151k konfigur\u00e1l\u00e1s\u00e1r\u00f3l (amelyet az \"MKS Mini 12864\" t\u00edpus\u00fa kijelz\u0151kn\u00e9l haszn\u00e1lnak). [display] lcd_type: uc1701 # \u00c1ll\u00edtsd \"uc1701\" \u00e9rt\u00e9kre az uc1701 kijelz\u0151kh\u00f6z. cs_pin: a0_pin: # Az uc1701 t\u00edpus\u00fa LCD-hez csatlakoztatott t\u0171k. # Ezeket a param\u00e9tereket meg kell adni. #rst_pin: # Az LCD \"els\u0151\" \u00e9rintkez\u0151j\u00e9hez csatlakoztatott t\u0171. Ha nincs megadva, # akkor a hardvernek rendelkeznie kell egy felh\u00faz\u00e1ssal a # megfelel\u0151 LCD soron. #contrast: # A be\u00e1ll\u00edtand\u00f3 kontraszt. Az \u00e9rt\u00e9k 0 \u00e9s 63 k\u00f6z\u00f6tt v\u00e1ltozhat, az # alap\u00e9rtelmezett \u00e9rt\u00e9k pedig 40. ...","title":"uc1701 kijelz\u0151"},{"location":"Config_Reference.html#ssd1306-es-sh1106-kijelzok","text":"Az SSD1306 \u00e9s SH1106 kijelz\u0151k konfigur\u00e1l\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k. [display] lcd_type: # \u00c1ll\u00edtsd be az \"ssd1306\" vagy az \"sh1106\" \u00e9rt\u00e9ket az adott # megjelen\u00edt\u00e9si t\u00edpushoz. #i2c_mcu: #i2c_bus: #i2c_speed: # Opcion\u00e1lis param\u00e9terek \u00e1llnak rendelkez\u00e9sre az I2C buszon # kereszt\u00fcl csatlakoztatott kijelz\u0151kh\u00f6z. A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t # l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" r\u00e9szben. #cs_pin: #dc_pin: #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Az LCD-hez csatlakoztatott \u00e9rintkez\u0151k \u201e4 vezet\u00e9kes\u201d SPI m\u00f3dban. # Az \u201espi_\u201d karakterrel kezd\u0151d\u0151 param\u00e9terek le\u00edr\u00e1s\u00e1t a \u201e\u00e1ltal\u00e1nos # SPI-be\u00e1ll\u00edt\u00e1sok\u201d r\u00e9szben tal\u00e1lja. Az alap\u00e9rtelmezett az I2C m\u00f3d # haszn\u00e1lata a kijelz\u0151h\u00f6z. #reset_pin: # A kijelz\u0151n megadhat\u00f3 egy reset t\u0171. Ha nincs megadva, akkor a # hardvernek rendelkeznie kell egy felh\u00faz\u00e1ssal a megfelel\u0151 LCD # soron. #contrast: # A be\u00e1ll\u00edtand\u00f3 kontraszt. Az \u00e9rt\u00e9k 0 \u00e9s 256 k\u00f6z\u00f6tt v\u00e1ltozhat, \u00e9s az # alap\u00e9rtelmezett a 239. #vcomh: 0 # \u00c1ll\u00edtsd be a Vcomh \u00e9rt\u00e9ket a kijelz\u0151n. Ez az \u00e9rt\u00e9k egyes # OLED-kijelz\u0151k \"elken\u0151d\u00e9si\" hat\u00e1s\u00e1val j\u00e1r. Az \u00e9rt\u00e9k 0 \u00e9s 63 k\u00f6z\u00f6tt # v\u00e1ltozhat. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. #invert: False # A TRUE megford\u00edtja a k\u00e9ppontokat bizonyos OLED-kijelz\u0151k\u00f6n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #x_offset: 0 # \u00c1ll\u00edtsd be a v\u00edzszintes eltol\u00e1s \u00e9rt\u00e9k\u00e9t az SH1106 kijelz\u0151k\u00f6n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0. ...","title":"ssd1306 \u00e9s sh1106 kijelz\u0151k"},{"location":"Config_Reference.html#display_data","text":"Egy\u00e9ni adatok megjelen\u00edt\u00e9s\u00e9nek t\u00e1mogat\u00e1sa LCD-kijelz\u0151n. Tetsz\u0151leges sz\u00e1m\u00fa megjelen\u00edt\u00e9si csoportot \u00e9s ezek alatt tetsz\u0151leges sz\u00e1m\u00fa adatelemet lehet l\u00e9trehozni. A kijelz\u0151 egy adott csoport \u00f6sszes adatelem\u00e9t megjelen\u00edti, ha a [display] szakaszban a display_group opci\u00f3t az adott csoport nev\u00e9re \u00e1ll\u00edtjuk. Az alap\u00e9rtelmezett kijelz\u0151csoportok automatikusan l\u00e9trej\u00f6nnek. Ezeket a display_data elemeket a printer.cfg konfigur\u00e1ci\u00f3s f\u00e1jlban l\u00e9v\u0151 alap\u00e9rtelmezett \u00e9rt\u00e9kek fel\u00fcl\u00edr\u00e1s\u00e1val lehet helyettes\u00edteni vagy b\u0151v\u00edteni. [display_data my_group_name my_data_name] position: # A megjelen\u00edt\u00e9si poz\u00edci\u00f3 vessz\u0151vel elv\u00e1lasztott sora \u00e9s oszlopa, amelyet # az inform\u00e1ci\u00f3 megjelen\u00edt\u00e9s\u00e9hez kell haszn\u00e1lni. # Ezt a param\u00e9tert meg kell adni. text: # Az adott helyen megjelen\u00edtend\u0151 sz\u00f6veg. Ennek a mez\u0151nek a # ki\u00e9rt\u00e9kel\u00e9se parancssablonok seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nik # (l\u00e1sd: docs/Command_Templates.md). Ezt a param\u00e9tert meg kell adni.","title":"[display_data]"},{"location":"Config_Reference.html#display_template","text":"Megjelen\u00edtett adatok sz\u00f6vege \"makr\u00f3k\" (tetsz\u0151leges sz\u00e1m\u00fa szakasz defini\u00e1lhat\u00f3 display_template el\u0151taggal). A sablonok ki\u00e9rt\u00e9kel\u00e9s\u00e9vel kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancssablonok dokumentumot. Ez a funkci\u00f3 lehet\u0151v\u00e9 teszi az ism\u00e9tl\u0151d\u0151 defin\u00edci\u00f3k cs\u00f6kkent\u00e9s\u00e9t a display_data szakaszokban. A sablon ki\u00e9rt\u00e9kel\u00e9s\u00e9re a be\u00e9p\u00edtett render() f\u00fcggv\u00e9nyt haszn\u00e1lhatjuk a display_data szakaszokban. Ha p\u00e9ld\u00e1ul defini\u00e1ln\u00e1nk [display_template my_template] , akkor haszn\u00e1lhatn\u00e1nk a { render('my_template') } f\u00fcggv\u00e9nyt a display_data szakaszban. Ez a funkci\u00f3 a SET_LED_TEMPLATE parancs seg\u00edts\u00e9g\u00e9vel folyamatos LED-friss\u00edt\u00e9sre is haszn\u00e1lhat\u00f3. [display_template my_template_name] #param_<name>: # A \"param_\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa be\u00e1ll\u00edt\u00e1s megadhat\u00f3. A megadott # n\u00e9vhez a rendszer hozz\u00e1rendeli a megadott \u00e9rt\u00e9ket (Python liter\u00e1lk\u00e9nt # elemzi), \u00e9s a makr\u00f3b\u0151v\u00edt\u00e9s sor\u00e1n el\u00e9rhet\u0151 lesz. Ha a param\u00e9ter \u00e1tad\u00e1sra # ker\u00fcl a render() h\u00edv\u00e1sban, akkor ez az \u00e9rt\u00e9k lesz felhaszn\u00e1lva a # makr\u00f3b\u0151v\u00edt\u00e9s sor\u00e1n. P\u00e9ld\u00e1ul egy \"param_speed = 75\" konfigur\u00e1ci\u00f3ban # el\u0151fordulhat, hogy a h\u00edv\u00f3 \"render('my_template_name', param_speed=80)\". # A param\u00e9ternevek nem tartalmazhatnak nagybet\u0171ket. text: # A sablon megjelen\u00edt\u00e9sekor visszaadand\u00f3 sz\u00f6veg. Ennek a mez\u0151nek a # ki\u00e9rt\u00e9kel\u00e9se parancssablonok seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nik (l\u00e1sd: # docs/Command_Templates.md). Ezt a param\u00e9tert meg kell adni.","title":"[display_template]"},{"location":"Config_Reference.html#display_glyph","text":"Egy egy\u00e9ni \u00edr\u00e1sjel megjelen\u00edt\u00e9se az azt t\u00e1mogat\u00f3 kijelz\u0151k\u00f6n. A megadott n\u00e9vhez hozz\u00e1rendeli a megadott megjelen\u00edt\u00e9si adatokat, amelyekre azt\u00e1n a megjelen\u00edt\u00e9si sablonokban a k\u00e9t \"tilde\" szimb\u00f3lummal k\u00f6r\u00fclvett nev\u00fckkel lehet hivatkozni, pl. ~my_display_glyph~ L\u00e1sd a sample-glyphs.cfg n\u00e9h\u00e1ny p\u00e9ld\u00e1j\u00e1t. [display_glyph my_display_glyph] #data: # A megjelen\u00edt\u00e9si adatok 16 sork\u00e9nt t\u00e1rolva, amelyek 16 bitb\u0151l \u00e1llnak # (pixelenk\u00e9nt 1), ahol a '.' egy \u00fcres pixel, a '*' pedig egy bekapcsolt # k\u00e9ppont (pl. \"****************\" folyamatos v\u00edzszintes vonal # megjelen\u00edt\u00e9s\u00e9hez). Alternat\u00edv megold\u00e1sk\u00e9nt haszn\u00e1lhatunk \u201e0\u201d-t # \u00fcres pixelekhez \u00e9s \u201e1\u201d-et a bekapcsolt pixelekhez. Helyezz minden # megjelen\u00edt\u00e9si sort egy k\u00fcl\u00f6n konfigur\u00e1ci\u00f3s sorba. A karakterjelnek # pontosan 16, egyenk\u00e9nt 16 bites sorb\u00f3l kell \u00e1llnia. # Ez a param\u00e9ter nem k\u00f6telez\u0151. #hd44780_data: # Glyph haszn\u00e1lhat\u00f3 20x4 hd44780 kijelz\u0151k\u00f6n. A karakterjelnek pontosan # 8, egyenk\u00e9nt 5 bites sorb\u00f3l kell \u00e1llnia. Ez a param\u00e9ter nem k\u00f6telez\u0151. #hd44780_slot: # A hd44780 hardver indexe (0..7) a karakterjel t\u00e1rol\u00e1s\u00e1ra. Ha t\u00f6bb # k\u00fcl\u00f6n\u00e1ll\u00f3 k\u00e9p haszn\u00e1lja ugyanazt a t\u00e1rat, \u00fcgyelj arra, hogy ezek # k\u00f6z\u00fcl csak egyet haszn\u00e1lj az adott k\u00e9perny\u0151n. Ez a param\u00e9ter akkor # sz\u00fcks\u00e9ges, ha a hd44780_data meg van adva.","title":"[display_glyph]"},{"location":"Config_Reference.html#display-my_extra_display","text":"Ha a printer.cfg f\u00e1jlban a fentiek szerint egy els\u0151dleges [display] szakasz ker\u00fclt meghat\u00e1roz\u00e1sra, akkor t\u00f6bb kieg\u00e9sz\u00edt\u0151 kijelz\u0151t is lehet defini\u00e1lni. Vedd figyelembe, hogy a kieg\u00e9sz\u00edt\u0151 kijelz\u0151k jelenleg nem t\u00e1mogatj\u00e1k a men\u00fcfunkci\u00f3kat, \u00edgy nem t\u00e1mogatj\u00e1k a \"menu\" opci\u00f3kat vagy a gombok konfigur\u00e1l\u00e1s\u00e1t. [display my_extra_display] # A rendelkez\u00e9sre \u00e1ll\u00f3 param\u00e9tereket l\u00e1sd a \"kijelz\u0151\" szakaszban.","title":"[display my_extra_display]"},{"location":"Config_Reference.html#menu","text":"Testreszabhat\u00f3 LCD kijelz\u0151 men\u00fck. Egy alap\u00e9rtelmezett men\u00fck\u00e9szlet automatikusan l\u00e9trej\u00f6n. A men\u00fct a f\u0151 printer.cfg konfigur\u00e1ci\u00f3s f\u00e1jlban l\u00e9v\u0151 alap\u00e9rtelmezett \u00e9rt\u00e9kek fel\u00fclb\u00edr\u00e1l\u00e1s\u00e1val lehet helyettes\u00edteni vagy b\u0151v\u00edteni. A sablonok renderel\u00e9se sor\u00e1n el\u00e9rhet\u0151 men\u00fcattrib\u00fatumokr\u00f3l a parancssablon dokumentumban tal\u00e1lhat\u00f3 inform\u00e1ci\u00f3. # Az \u00f6sszes men\u00fc konfigur\u00e1ci\u00f3s szakaszhoz el\u00e9rhet\u0151 k\u00f6z\u00f6s param\u00e9terek. #[menu __some_list __some_name] #type: disabled # A men\u00fcelem v\u00e9gleg letiltva, csak a k\u00f6telez\u0151 attrib\u00fatum a 'type'. # Lehet\u0151v\u00e9 teszi a megl\u00e9v\u0151 men\u00fcpontok egyszer\u0171 letilt\u00e1s\u00e1t/elrejt\u00e9s\u00e9t. #[menu some_name] #type: # Az egyik parancs, input, list, text: # command - alapvet\u0151 men\u00fcelem k\u00fcl\u00f6nf\u00e9le script triggerekkel # input - ugyanaz, mint a \u201ecommand\u201d, de \u00e9rt\u00e9kv\u00e1ltoztat\u00f3 # k\u00e9pess\u00e9gekkel rendelkezik. # Nyomja meg a szerkeszt\u00e9si m\u00f3d # elind\u00edt\u00e1s\u00e1hoz/le\u00e1ll\u00edt\u00e1s\u00e1hoz. # list - lehet\u0151v\u00e9 teszi a men\u00fcelemek egy g\u00f6rgethet\u0151 list\u00e1ba # t\u00f6rt\u00e9n\u0151 csoportos\u00edt\u00e1s\u00e1t. # Adj hozz\u00e1 a list\u00e1hoz men\u00fckonfigur\u00e1ci\u00f3k l\u00e9trehoz\u00e1s\u00e1val # a \u201esome_list\u201d el\u0151tagk\u00e9nt \u2013 # p\u00e9ld\u00e1ul: [menu some_list some_item_in_the_list] # vsdlist - ugyanaz, mint a \"list\", de hozz\u00e1f\u0171zi a virtu\u00e1lis # sdcard f\u00e1jlokat (a j\u00f6v\u0151ben elt\u00e1vol\u00edtjuk) #name: # A men\u00fcpont neve - sablonk\u00e9nt \u00e9rt\u00e9kelve. #enable: # Sablon, amely igazra vagy hamisra \u00e9rt\u00e9keli. #index: # Poz\u00edci\u00f3, ahol egy elemet be kell illeszteni a list\u00e1ba. Alap\u00e9rtelmez\u00e9s # szerint az elem a v\u00e9g\u00e9re ker\u00fcl hozz\u00e1ad\u00e1sra. #[menu some_list] #type: list #name: #enable: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd fent. #[menu some_list some_command] #type: command #name: #enable: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd fent. #gcode: # Gombkattint\u00e1ssal vagy hossz\u00fa kattint\u00e1ssal futtathat\u00f3 szkript. # Sablonk\u00e9nt \u00e9rt\u00e9kelve. #[menu some_list some_input] #type: input #name: #enable: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd fent. #input: # Szerkeszt\u00e9skor haszn\u00e1land\u00f3 kezdeti \u00e9rt\u00e9k \u2013 sablonk\u00e9nt \u00e9rt\u00e9kelve. # Az eredm\u00e9nynek lebeg\u0151\u00e9rt\u00e9knek kell lennie. #input_min: # Tartom\u00e1ny minim\u00e1lis \u00e9rt\u00e9ke \u2013 sablonk\u00e9nt \u00e9rt\u00e9kelve. # Alap\u00e9rtelmezett -99999. #input_max: # Tartom\u00e1ny maxim\u00e1lis \u00e9rt\u00e9ke \u2013 sablonk\u00e9nt \u00e9rt\u00e9kelve. # Alap\u00e9rtelmezett 99999. #input_step: # Szerkeszt\u00e9si l\u00e9p\u00e9s \u2013 pozit\u00edv eg\u00e9sz sz\u00e1mnak vagy lebeg\u0151\u00e9rt\u00e9knek # kell lennie. Bels\u0151 gyorsl\u00e9p\u00e9ssel rendelkezik. # Ha \"(input_max - input_min) / input_step > 100\", akkor a gyors # sebess\u00e9g l\u00e9p\u00e9se 10 * input_step, k\u00fcl\u00f6nben a gyors \u00fctem ugyanaz # a bemeneti_l\u00e9p\u00e9s. #realtime: # Ez az attrib\u00fatum statikus logikai \u00e9rt\u00e9ket fogad el. Ha enged\u00e9lyezve # van, akkor a G-k\u00f3d szkript minden \u00e9rt\u00e9kv\u00e1ltoz\u00e1s ut\u00e1n lefut. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #gcode: # Gombkattint\u00e1ssal, hossz\u00fa kattint\u00e1ssal vagy \u00e9rt\u00e9km\u00f3dos\u00edt\u00e1ssal # futtathat\u00f3 szkript. Sablonk\u00e9nt \u00e9rt\u00e9kelve. A gomb kattint\u00e1sa elind\u00edtja # a szerkeszt\u00e9si m\u00f3d kezdet\u00e9t vagy befejez\u00e9s\u00e9t.","title":"[menu]"},{"location":"Config_Reference.html#nyomtatoszal-erzekelok","text":"","title":"Nyomtat\u00f3sz\u00e1l \u00e9rz\u00e9kel\u0151k"},{"location":"Config_Reference.html#filament_switch_sensor","text":"Nyomtat\u00f3sz\u00e1l \u00e9rz\u00e9kel\u0151. T\u00e1mogat\u00e1s a nyomtat\u00f3sz\u00e1l behelyez\u00e9s\u00e9nek \u00e9s kifut\u00e1s\u00e1nak \u00e9rz\u00e9kel\u00e9s\u00e9re kapcsol\u00f3\u00e9rz\u00e9kel\u0151, p\u00e9ld\u00e1ul v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 seg\u00edts\u00e9g\u00e9vel. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1st . [filament_switch_sensor my_sensor] #pause_on_runout: True # Ha True \u00e9rt\u00e9kre van \u00e1ll\u00edtva, a PAUSE azonnal v\u00e9grehajt\u00f3dik, miut\u00e1n a # rendszer sz\u00e1lkifut\u00e1st \u00e9szlel. Ne feledd, hogy ha a pause_on_runout # \u00e9rt\u00e9ke False, \u00e9s a runout_gcode kimarad, akkor a kifut\u00e1s \u00e9szlel\u00e9se le # van tiltva. Az alap\u00e9rtelmezett \u00e9rt\u00e9k True. #runout_gcode: # A nyomtat\u00f3sz\u00e1l kifut\u00e1s\u00e1t k\u00f6vet\u0151en v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok list\u00e1ja. # L\u00e1sd a docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d form\u00e1tumhoz. Ha a # pause_on_runout \u00e9rt\u00e9ke True, ez a G-k\u00f3d a PAUSE befejez\u00e9se ut\u00e1n fog # futni. Az alap\u00e9rtelmez\u00e9s szerint nem fut semmilyen G-k\u00f3d parancs. #insert_gcode: # A nyomtat\u00f3sz\u00e1l-beilleszt\u00e9s \u00e9szlel\u00e9se ut\u00e1n v\u00e9grehajtand\u00f3 G-k\u00f3d parancsok # list\u00e1ja. L\u00e1sd a docs/Command_Templates.md f\u00e1jlt a G-k\u00f3d form\u00e1tumhoz. # Az alap\u00e9rtelmez\u00e9s szerint nem fut semmilyen G-k\u00f3d parancs, ami letiltja # a besz\u00far\u00e1s \u00e9szlel\u00e9s\u00e9t. #event_delay: 3.0 # Az esem\u00e9nyek k\u00f6z\u00f6tti k\u00e9sleltet\u00e9s minim\u00e1lis id\u0151tartama m\u00e1sodpercben. # Az ebben az id\u0151szakban elind\u00edtott esem\u00e9nyeket a rendszer csendben # figyelmen k\u00edv\u00fcl hagyja. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 3 m\u00e1sodperc. #pause_delay: 0.5 # A sz\u00fcneteltet\u00e9si parancs kik\u00fcld\u00e9se \u00e9s a runout_gcode v\u00e9grehajt\u00e1sa # k\u00f6z\u00f6tt eltelt id\u0151 m\u00e1sodpercben. Hasznos lehet n\u00f6velni ezt a k\u00e9sleltet\u00e9st, # ha az OctoPrint furcsa sz\u00fcneteltet\u00e9st mutat. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,5 m\u00e1sodperc. #switch_pin: # Az a t\u0171, amelyre a kapcsol\u00f3 csatlakoztatva van. # Ezt a param\u00e9tert meg kell adni.","title":"[filament_switch_sensor]"},{"location":"Config_Reference.html#filament_motion_sensor","text":"Nyomtat\u00f3sz\u00e1l mozg\u00e1s\u00e9rz\u00e9kel\u0151. T\u00e1mogatja a nyomtat\u00f3sz\u00e1l behelyez\u00e9s\u00e9nek \u00e9s kifut\u00e1s\u00e1nak \u00e9rz\u00e9kel\u00e9s\u00e9t egy olyan k\u00f3dol\u00f3 seg\u00edts\u00e9g\u00e9vel, amely az \u00e9rz\u00e9kel\u0151n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 mozg\u00e1s k\u00f6zben v\u00e1ltogatja a kimeneti jelet. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a parancs hivatkoz\u00e1st . [filament_motion_sensor my_sensor] detection_length: 7.0 # Az \u00e9rz\u00e9kel\u0151n \u00e1th\u00fazott nyomtat\u00f3sz\u00e1l minim\u00e1lis hossza, amely # \u00e1llapotv\u00e1ltoz\u00e1st v\u00e1lt ki a switch_pin t\u0171n. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 7mm. extruder: # Az extruderr\u00e9sz neve, amelyhez ez az \u00e9rz\u00e9kel\u0151 kapcsol\u00f3dik. # Ezt a param\u00e9tert meg kell adni. switch_pin: #pause_on_runout: #runout_gcode: #insert_gcode: #event_delay: #pause_delay: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t a \"filament_switch_sensor\" # r\u00e9szben tal\u00e1lja.","title":"[filament_motion_sensor]"},{"location":"Config_Reference.html#tsl1401cl_filament_width_sensor","text":"TSLl401CL alap\u00fa sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd az \u00fatmutat\u00f3t . [tsl1401cl_filament_width_sensor] #pin: #default_nominal_filament_diameter: 1.75 # (mm) # A nyomtat\u00f3sz\u00e1l \u00e1tm\u00e9r\u0151j\u00e9nek megengedett legnagyobb # elt\u00e9r\u00e9se mm-ben. #max_difference: 0.2 # Az \u00e9rz\u00e9kel\u0151 \u00e9s a f\u00fav\u00f3ka k\u00f6z\u00f6tti t\u00e1vols\u00e1g mm-ben. #measurement_delay: 100","title":"[tsl1401cl_filament_width_sensor]"},{"location":"Config_Reference.html#hall_filament_width_sensor","text":"Hall sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 (l\u00e1sd Hall sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 ). [hall_filament_width_sensor] adc1: adc2: # Az \u00e9rz\u00e9kel\u0151h\u00f6z csatlakoztatott anal\u00f3g bemeneti \u00e9rintkez\u0151k. Ezeket a # param\u00e9tereket meg kell adni. #cal_dia1: 1.50 #cal_dia2: 2.00 # Az \u00e9rz\u00e9kel\u0151k kalibr\u00e1ci\u00f3s \u00e9rt\u00e9kei (mm-ben). Az alap\u00e9rtelmezett \u00e9rt\u00e9k # 1,50 a cal_dia1 \u00e9s 2,00 a cal_dia2 eset\u00e9n. #raw_dia1: 9500 #raw_dia2: 10500 # Az \u00e9rz\u00e9kel\u0151k nyers kalibr\u00e1ci\u00f3s \u00e9rt\u00e9kei. Az alap\u00e9rtelmezett \u00e9rt\u00e9k # 9500 a raw_dia1 \u00e9s 10500 a raw_dia2 eset\u00e9n. #default_nominal_filament_diameter: 1.75 # A nyomtat\u00f3sz\u00e1l n\u00e9vleges \u00e1tm\u00e9r\u0151je. Ezt a param\u00e9tert meg kell adni. #max_difference: 0.200 # Az izz\u00f3sz\u00e1l \u00e1tm\u00e9r\u0151j\u00e9nek megengedett legnagyobb elt\u00e9r\u00e9se # millim\u00e9terben (mm). # Ha az izz\u00f3sz\u00e1l n\u00e9vleges \u00e1tm\u00e9r\u0151je \u00e9s az \u00e9rz\u00e9kel\u0151 kimenete k\u00f6z\u00f6tti # k\u00fcl\u00f6nbs\u00e9g nagyobb, mint +- max_difference, az extrud\u00e1l\u00e1si szorz\u00f3 # vissza\u00e1ll %100-ra. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,200. #measurement_delay: 70 # Az \u00e9rz\u00e9kel\u0151 \u00e9s a nyomtat\u00f3fej/forr\u00f3 v\u00e9ge (nozzle) k\u00f6z\u00f6tti t\u00e1vols\u00e1g # millim\u00e9terben (mm). Az \u00e9rz\u00e9kel\u0151 \u00e9s a nyomtat\u00f3fej k\u00f6z\u00f6tti # nyomtat\u00f3sz\u00e1l default_nominal_filament_diameter-k\u00e9nt lesz kezelve. # A gazdag\u00e9p modul FIFO logik\u00e1val m\u0171k\u00f6dik. Minden szenzor\u00e9rt\u00e9ket # \u00e9s poz\u00edci\u00f3t egy t\u00f6mbben tart, \u00e9s vissza\u00e1ll\u00edtja \u0151ket a megfelel\u0151 poz\u00edci\u00f3ba. # Ezt a param\u00e9tert meg kell adni. #enable: False # Az \u00e9rz\u00e9kel\u0151 enged\u00e9lyezve vagy letiltva a bekapcsol\u00e1s ut\u00e1n. # Az alap\u00e9rtelmezett a letilt\u00e1sa. #measurement_interval: 10 # Hozz\u00e1vet\u0151leges t\u00e1vols\u00e1g (mm-ben) az \u00e9rz\u00e9kel\u0151 leolvas\u00e1sai k\u00f6z\u00f6tt. # Az alap\u00e9rtelmezett 10 mm. #logging: False # Kimeneti \u00e1tm\u00e9r\u0151 a termin\u00e1lhoz \u00e9s a klipper.log-hoz k\u00fcld, amit ki # lehet kapcsolni. #min_diameter: 1.0 # A virtu\u00e1lis trigger minim\u00e1lis \u00e1tm\u00e9r\u0151je filament_switch_sensor. #use_current_dia_while_delay: False # Haszn\u00e1ld az aktu\u00e1lis \u00e1tm\u00e9r\u0151t a n\u00e9vleges \u00e1tm\u00e9r\u0151 helyett, am\u00edg a # m\u00e9r\u00e9si k\u00e9sleltet\u00e9s nem futott \u00e1t. #pause_on_runout: #runout_gcode: #insert_gcode: #event_delay: #pause_delay: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a \"filament_switch_sensor\" r\u00e9szben.","title":"[hall_filament_width_sensor]"},{"location":"Config_Reference.html#alaplap-specifikus-hardvertamogatas","text":"","title":"Alaplap specifikus hardvert\u00e1mogat\u00e1s"},{"location":"Config_Reference.html#sx1509","text":"Konfigur\u00e1ljon egy SX1509 I2C-GPIO b\u0151v\u00edt\u0151t. Az I2C-kommunik\u00e1ci\u00f3 \u00e1ltal okozott k\u00e9sleltet\u00e9s miatt NEM szabad az SX1509 t\u0171it motorvez\u00e9rl\u0151 enged\u00e9lyez\u0151, STEP vagy DIR t\u0171k\u00e9nt vagy b\u00e1rmilyen m\u00e1s olyan t\u0171k\u00e9nt haszn\u00e1lni, amely gyors bit-impulzust ig\u00e9nyel. Legjobban statikus vagy G-k\u00f3d vez\u00e9relt digit\u00e1lis kimenetekk\u00e9nt vagy hardveres PWM t\u0171k\u00e9nt haszn\u00e1lhat\u00f3k pl. ventil\u00e1torokhoz. B\u00e1rmennyi szekci\u00f3t defini\u00e1lhatunk \"sx1509\" el\u0151taggal. Minden egyes b\u0151v\u00edt\u0151 egy 16 t\u0171b\u0151l \u00e1ll\u00f3 k\u00e9szletet biztos\u00edt (sx1509_my_sx1509:PIN_0-t\u00f3l sx1509_my_sx1509:PIN_15-ig), amelyek a nyomtat\u00f3 konfigur\u00e1ci\u00f3j\u00e1ban haszn\u00e1lhat\u00f3k. L\u00e1sd a generic-duet2-duex.cfg f\u00e1jlt egy p\u00e9ld\u00e1\u00e9rt. [sx1509 my_sx1509] i2c_address: # A b\u0151v\u00edt\u0151 \u00e1ltal haszn\u00e1lt I2C c\u00edm. A hardveres jumperekt\u0151l # f\u00fcgg\u0151en ez a k\u00f6vetkez\u0151 c\u00edmek egyike: 62 63 112 113. # Ezt a param\u00e9tert meg kell adni. #i2c_mcu: #i2c_bus: #i2c_speed: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd az \"\u00e1ltal\u00e1nos I2C be\u00e1ll\u00edt\u00e1sok\" # r\u00e9szben. #i2c_bus: # Ha a mikrovez\u00e9rl\u0151 I2C megval\u00f3s\u00edt\u00e1sa t\u00f6bb I2C buszt is t\u00e1mogat, # itt megadhatod a busz nev\u00e9t. # Az alap\u00e9rtelmezett a mikrovez\u00e9rl\u0151 I2C busz haszn\u00e1lata.","title":"[sx1509]"},{"location":"Config_Reference.html#samd_sercom","text":"SAMD SERCOM konfigur\u00e1ci\u00f3 annak megad\u00e1s\u00e1ra, hogy mely t\u0171ket kell haszn\u00e1lni egy adott SERCOM-on. A \"samd_sercom\" el\u0151taggal tetsz\u0151leges sz\u00e1m\u00fa szekci\u00f3t defini\u00e1lhatunk. Minden SERCOM-ot konfigur\u00e1lni kell, miel\u0151tt SPI vagy I2C perif\u00e9riak\u00e9nt haszn\u00e1ln\u00e1nk. Helyezd ezt a konfigur\u00e1ci\u00f3s szekci\u00f3t minden m\u00e1s, SPI vagy I2C buszokat haszn\u00e1l\u00f3 szekci\u00f3 f\u00f6l\u00e9. [samd_sercom my_sercom] sercom: # A mikrovez\u00e9rl\u0151ben konfigur\u00e1land\u00f3 sercom busz neve. # A rendelkez\u00e9sre \u00e1ll\u00f3 nevek \"sercom0\", \"sercom1\" stb. # Ezt a param\u00e9tert meg kell adni. tx_pin: # MOSI \u00e9rintkez\u0151 SPI kommunik\u00e1ci\u00f3hoz, vagy SDA (adat) \u00e9rintkez\u0151 # I2C kommunik\u00e1ci\u00f3hoz. A l\u00e1bnak \u00e9rv\u00e9nyes pinmux konfigur\u00e1ci\u00f3val # kell rendelkeznie az adott SERCOM perif\u00e9ri\u00e1hoz. # Ezt a param\u00e9tert meg kell adni. #rx_pin: # MISO t\u0171 az SPI kommunik\u00e1ci\u00f3hoz. Ezt a t\u0171t nem haszn\u00e1lj\u00e1k I2C # kommunik\u00e1ci\u00f3hoz (az I2C a tx_pin k\u00f3dot haszn\u00e1lja mind a # k\u00fcld\u00e9shez, mind a fogad\u00e1shoz). A l\u00e1bnak \u00e9rv\u00e9nyes pinmux # konfigur\u00e1ci\u00f3val kell rendelkeznie az adott SERCOM perif\u00e9ri\u00e1hoz. # Ez a param\u00e9ter nem k\u00f6telez\u0151. clk_pin: # CLK \u00e9rintkez\u0151 az SPI kommunik\u00e1ci\u00f3hoz, vagy SCL (\u00f3ra) \u00e9rintkez\u0151 # az I2C kommunik\u00e1ci\u00f3hoz. A l\u00e1bnak \u00e9rv\u00e9nyes pinmux # konfigur\u00e1ci\u00f3val kell rendelkeznie az adott SERCOM perif\u00e9ri\u00e1hoz. # Ezt a param\u00e9tert meg kell adni.","title":"[samd_sercom]"},{"location":"Config_Reference.html#adc_scaled","text":"Duet2 Maestro anal\u00f3g sk\u00e1l\u00e1z\u00e1s vref \u00e9s vssa leolvas\u00e1sok alapj\u00e1n. Az adc_scaled szakasz defini\u00e1l\u00e1sa virtu\u00e1lis adc-t\u0171k\u00e9nt (p\u00e9ld\u00e1ul \"my_name:PB0\") tesz lehet\u0151v\u00e9, amelyeket automatikusan a k\u00e1rtya vref \u00e9s vssa figyel\u0151t\u0171i \u00e1ll\u00edtanak be. \u00dcgyelj arra, hogy ezt a konfigur\u00e1ci\u00f3s szakaszt minden olyan konfigur\u00e1ci\u00f3s szakasz felett defini\u00e1ld, amely ezeket a virtu\u00e1lis t\u0171ket haszn\u00e1lja. L\u00e1sd a generic-duet2-maestro.cfg f\u00e1jlt egy p\u00e9ld\u00e1\u00e9rt. [adc_scaled my_name] vref_pin: # A VREF monitoroz\u00e1s\u00e1hoz haszn\u00e1lt ADC t\u0171. Ezt a param\u00e9tert meg kell adni. vssa_pin: # A VSSA monitoroz\u00e1s\u00e1hoz haszn\u00e1land\u00f3 ADC t\u0171. Ezt a param\u00e9tert meg kell adni. #smooth_time: 2.0 # Egy id\u0151\u00e9rt\u00e9k (m\u00e1sodpercben), amely alatt a vref \u00e9s a vssa # m\u00e9r\u00e9sek sim\u00edt\u00e1sra ker\u00fclnek, hogy cs\u00f6kkents\u00e9k a m\u00e9r\u00e9s hat\u00e1s\u00e1t # zaj cs\u00f6kkent\u00e9se \u00e9rdek\u00e9ben. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 2 m\u00e1sodperc.","title":"[adc_scaled]"},{"location":"Config_Reference.html#replicape","text":"Replicape t\u00e1mogat\u00e1s. L\u00e1sd a beaglebone \u00fatmutat\u00f3t \u00e9s a generic-replicape.cfg f\u00e1jlt egy p\u00e9ld\u00e1\u00e9rt. # A \"replicape\" konfigur\u00e1ci\u00f3s r\u00e9sz hozz\u00e1adja a # \"replicape:stepper_x_enable\" virtu\u00e1lis l\u00e9ptet\u0151t enged\u00e9lyez\u0151 t\u0171ket # (X, Y, Z, E \u00e9s H l\u00e9ptet\u0151kh\u00f6z) \u00e9s a \"replicape:power_x\" PWM kimeneti # t\u0171ket (hotbed, e, h, fan0, fan1 sz\u00e1m\u00e1ra , fan2 \u00e9s fan3), a # konfigur\u00e1ci\u00f3s f\u00e1jlhoz amelyet ezut\u00e1n m\u00e1shol is haszn\u00e1lhatunk. [replicape] revision: # A replik\u00e1lt hardververzi\u00f3. Jelenleg csak a \"B3\" verzi\u00f3 t\u00e1mogatott. # Ezt a param\u00e9tert meg kell adni. #enable_pin: !gpio0_20 # A glob\u00e1lis enged\u00e9lyez\u00e9si PIN replik\u00e1ja. # Az alap\u00e9rtelmezett !gpio0_20 (m\u00e1s n\u00e9ven P9_41). host_mcu: # Az MCU konfigur\u00e1ci\u00f3s szakasz neve, amely kommunik\u00e1l a Klipper # \"linux folyamat\" MCU p\u00e9ld\u00e1ny\u00e1val. Ezt a param\u00e9tert meg kell adni. #standstill_power_down: False # Ez a param\u00e9ter vez\u00e9rli a CFG6_ENN vonalat az \u00f6sszes # l\u00e9ptet\u0151motoron. A True az enged\u00e9lyez\u00e9si sorokat \"nyit\u00e1sra\" \u00e1ll\u00edtja. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #stepper_x_microstep_mode: #stepper_y_microstep_mode: #stepper_z_microstep_mode: #stepper_e_microstep_mode: #stepper_h_microstep_mode: # Ez a param\u00e9ter az adott l\u00e9ptet\u0151motor meghajt\u00f3 CFG1 \u00e9s CFG2 # \u00e9rintkez\u0151it vez\u00e9rli. A v\u00e1laszthat\u00f3 lehet\u0151s\u00e9gek a k\u00f6vetkez\u0151k: # disable, 1, 2, spread2, 4, 16, spread4, spread16, stealth4 \u00e9s # stealth16. Az alap\u00e9rtelmezett \u00e9rt\u00e9k a disable. #stepper_x_current: #stepper_y_current: #stepper_z_current: #stepper_e_current: #stepper_h_current: # A l\u00e9ptet\u0151motor meghajt\u00f3j\u00e1nak konfigur\u00e1lt maxim\u00e1lis \u00e1rama # (amperben). Ezt a param\u00e9tert akkor kell megadni, ha a l\u00e9ptet\u0151 # nincs letilt\u00e1si m\u00f3dban. #stepper_x_chopper_off_time_high: #stepper_y_chopper_off_time_high: #stepper_z_chopper_off_time_high: #stepper_e_chopper_off_time_high: #stepper_h_chopper_off_time_high: # Ez a param\u00e9ter a l\u00e9ptet\u0151motor meghajt\u00f3 CFG0 l\u00e1b\u00e1t vez\u00e9rli # (a True a CFG0 \u00e9rt\u00e9ket magasra, a False pedig alacsonyra \u00e1ll\u00edtja). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #stepper_x_chopper_hysteresis_high: #stepper_y_chopper_hysteresis_high: #stepper_z_chopper_hysteresis_high: #stepper_e_chopper_hysteresis_high: #stepper_h_chopper_hysteresis_high: # Ez a param\u00e9ter a l\u00e9ptet\u0151motor meghajt\u00f3 CFG4 l\u00e1b\u00e1t vez\u00e9rli # (a True a CFG4 \u00e9rt\u00e9ket magasra, a False pedig alacsonyra \u00e1ll\u00edtja). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k False. #stepper_x_chopper_blank_time_high: #stepper_y_chopper_blank_time_high: #stepper_z_chopper_blank_time_high: #stepper_e_chopper_blank_time_high: #stepper_h_chopper_blank_time_high: # Ez a param\u00e9ter a l\u00e9ptet\u0151motor meghajt\u00f3 CFG5 l\u00e1b\u00e1t vez\u00e9rli # (a True a CFG5 \u00e9rt\u00e9ket magasra, a False pedig alacsonyra \u00e1ll\u00edtja). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k True.","title":"[replicape]"},{"location":"Config_Reference.html#egyeb-egyedi-modulok","text":"","title":"Egy\u00e9b egyedi modulok"},{"location":"Config_Reference.html#palette2","text":"Palette 2 multimaterial t\u00e1mogat\u00e1s szorosabb integr\u00e1ci\u00f3t biztos\u00edt, amely t\u00e1mogatja a Palette 2 eszk\u00f6z\u00f6ket csatlakoztatott m\u00f3dban. Ez a modul a teljes funkcionalit\u00e1shoz a [virtual_sdcard] \u00e9s [pause_resume] modulokat is ig\u00e9nyli. Ha ezt a modult haszn\u00e1lod, ne haszn\u00e1ld a Palette 2 plugint az Octoprinthez, mivel ezek \u00fctk\u00f6zni fognak, \u00e9s az egyik nem fog megfelel\u0151en inicializ\u00e1l\u00f3dni, ami val\u00f3sz\u00edn\u0171leg megszak\u00edtja a nyomtat\u00e1st. Ha az Octoprintet haszn\u00e1lod \u00e9s a G-k\u00f3dot a soros porton kereszt\u00fcl streameli a virtual_sd-r\u0151l val\u00f3 nyomtat\u00e1s helyett, akkor a M1 \u00e9s M0 parancsok Pausing parancsok a Settings >. alatt remo; Serial Connection > Firmware & protocol megakad\u00e1lyozz\u00e1k, hogy a nyomtat\u00e1s megkezd\u00e9s\u00e9hez a Paletta 2-n el kelljen ind\u00edtani a nyomtat\u00e1st, \u00e9s az Octoprintben fel kelljen oldani a sz\u00fcnetet. [paletta2] serial: # A soros port, amelyhez a Palette 2 csatlakozik. #baud: 115200 # A haszn\u00e1land\u00f3 baud-r\u00e1ta. Az alap\u00e9rtelmezett \u00e9rt\u00e9k 115200. #feedrate_splice: 0.8 # A told\u00e1skor haszn\u00e1land\u00f3 feedrate, alap\u00e9rtelmezett 0.8. #feedrate_normal: 1.0 # A told\u00e1s ut\u00e1n haszn\u00e1land\u00f3 feedrate, alap\u00e9rtelmezett \u00e9rt\u00e9ke 1.0. #auto_load_speed: 2 # Extrud\u00e1l\u00e1si el\u0151tol\u00e1si sebess\u00e9g automatikus bet\u00f6lt\u00e9skor, alap\u00e9rtelmezett 2 (mm/sec) #auto_cancel_variation: 0.1 # Automatikusan t\u00f6rli a nyomtat\u00e1st, ha a ping meghaladja ezt a k\u00fcsz\u00f6b\u00e9rt\u00e9ket.","title":"[palette2]"},{"location":"Config_Reference.html#angle","text":"M\u00e1gneses Hall-sz\u00f6g\u00e9rz\u00e9kel\u0151 t\u00e1mogat\u00e1sa A1333, AS5047D vagy TLE5012B SPI-chipek haszn\u00e1lat\u00e1val a l\u00e9ptet\u0151motorok sz\u00f6gtengely\u00e9nek m\u00e9r\u00e9seinek leolvas\u00e1s\u00e1hoz. A m\u00e9r\u00e9sek az API Szerver \u00e9s a mozg\u00e1selemz\u0151 eszk\u00f6z seg\u00edts\u00e9g\u00e9vel \u00e9rhet\u0151k el. A rendelkez\u00e9sre \u00e1ll\u00f3 parancsokat l\u00e1sd a G-k\u00f3d hivatkoz\u00e1sban . [angle my_angle_sensor] sensor_type: # A m\u00e1gneses Hall \u00e9rz\u00e9kel\u0151 chip t\u00edpusa. A v\u00e1laszthat\u00f3 lehet\u0151s\u00e9gek: # \u201ea1333\u201d, \u201eas5047d\u201d \u00e9s \u201etle5012b\u201d. Ezt a param\u00e9tert meg kell adni. #sample_period: 0.000400 # A m\u00e9r\u00e9sek sor\u00e1n haszn\u00e1land\u00f3 lek\u00e9rdez\u00e9si id\u0151szak (m\u00e1sodpercben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 0,000400 (ami m\u00e1sodpercenk\u00e9nt # 2500 minta). #stepper: # Annak a l\u00e9ptet\u0151nek a neve, amelyhez a sz\u00f6g\u00e9rz\u00e9kel\u0151 csatlakoztatva # van (pl. \"stepper_x\"). Ennek az \u00e9rt\u00e9knek a be\u00e1ll\u00edt\u00e1sa enged\u00e9lyezi a # sz\u00f6gkalibr\u00e1l\u00f3 eszk\u00f6zt. A funkci\u00f3 haszn\u00e1lat\u00e1hoz telep\u00edteni kell a # Python \"numpy\" csomagot. Az alap\u00e9rtelmezett be\u00e1ll\u00edt\u00e1s nem # enged\u00e9lyezi a sz\u00f6g\u00e9rz\u00e9kel\u0151 sz\u00f6gkalibr\u00e1l\u00e1s\u00e1t. cs_pin: # Az \u00e9rz\u00e9kel\u0151 SPI enged\u00e9lyez\u0151 t\u0171je. Ezt a param\u00e9tert meg kell adni. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # A fenti param\u00e9terek le\u00edr\u00e1s\u00e1t az \u201e\u00e1ltal\u00e1nos SPI-be\u00e1ll\u00edt\u00e1sok\u201d # r\u00e9szben tal\u00e1lja.","title":"[angle]"},{"location":"Config_Reference.html#gyakori-buszparameterek","text":"","title":"Gyakori buszparam\u00e9terek"},{"location":"Config_Reference.html#gyakori-spi-beallitasok","text":"Az SPI-buszt haszn\u00e1l\u00f3 eszk\u00f6z\u00f6k eset\u00e9ben \u00e1ltal\u00e1ban a k\u00f6vetkez\u0151 param\u00e9terek \u00e1llnak rendelkez\u00e9sre. #spi_speed: # Az eszk\u00f6zzel val\u00f3 kommunik\u00e1ci\u00f3 sor\u00e1n haszn\u00e1land\u00f3 # SPI-sebess\u00e9g (hz-ben). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k az eszk\u00f6z t\u00edpus\u00e1t\u00f3l f\u00fcgg. #spi_bus: # Ha a mikrovez\u00e9rl\u0151 t\u00f6bb SPI buszt t\u00e1mogat, akkor itt megadhatod a # mikrovez\u00e9rl\u0151 busz nev\u00e9t. Az alap\u00e9rtelmezett \u00e9rt\u00e9k a mikrovez\u00e9rl\u0151 # t\u00edpus\u00e1t\u00f3l f\u00fcgg. #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Add meg a fenti param\u00e9tereket a \"szoftver alap\u00fa SPI\" haszn\u00e1lat\u00e1hoz. # Ez a m\u00f3d nem ig\u00e9nyel mikrovez\u00e9rl\u0151 hardver t\u00e1mogat\u00e1st (\u00e1ltal\u00e1ban # b\u00e1rmilyen \u00e1ltal\u00e1nos c\u00e9l\u00fa \u00e9rintkez\u0151 haszn\u00e1lhat\u00f3). Az alap\u00e9rtelmez\u00e9s # szerint nem haszn\u00e1lja a \"software SPI\"-t.","title":"Gyakori SPI be\u00e1ll\u00edt\u00e1sok"},{"location":"Config_Reference.html#gyakori-i2c-beallitasok","text":"A k\u00f6vetkez\u0151 param\u00e9terek \u00e1ltal\u00e1ban az I2C-buszt haszn\u00e1l\u00f3 eszk\u00f6z\u00f6kh\u00f6z \u00e1llnak rendelkez\u00e9sre. Vedd figyelembe, hogy a Klipper jelenlegi mikrokontrollerek i2c t\u00e1mogat\u00e1sa nem toler\u00e1lja a h\u00e1l\u00f3zati zajt. Az i2c vezet\u00e9kek nem v\u00e1rt hib\u00e1i a Klipper fut\u00e1sidej\u0171 hiba\u00fczenet\u00e9t eredm\u00e9nyezhetik. A Klipper hibaelh\u00e1r\u00edt\u00e1s t\u00e1mogat\u00e1sa az egyes mikrokontroller-t\u00edpusok k\u00f6z\u00f6tt v\u00e1ltozik. \u00c1ltal\u00e1ban csak olyan i2c eszk\u00f6z\u00f6k haszn\u00e1lata aj\u00e1nlott, amelyek ugyanazon a nyomtatott \u00e1ramk\u00f6ri lapon vannak, mint a mikrokontroller. A legt\u00f6bb Klipper mikrokontroller implement\u00e1ci\u00f3 csak 100000 i2c_speed \u00e9rt\u00e9ket t\u00e1mogat. A Klipper \"linux\" mikrokontroller t\u00e1mogatja a 400000-es sebess\u00e9get, de ezt az oper\u00e1ci\u00f3s rendszerben kell be\u00e1ll\u00edtani , \u00e9s az i2c_speed param\u00e9tert egy\u00e9bk\u00e9nt figyelmen k\u00edv\u00fcl hagyja. A Klipper \"rp2040\" mikrokontroller az i2c_speed param\u00e9teren kereszt\u00fcl 400000-es sebess\u00e9get t\u00e1mogat. Az \u00f6sszes t\u00f6bbi Klipper mikrovez\u00e9rl\u0151 100000-es sebess\u00e9get haszn\u00e1l, \u00e9s figyelmen k\u00edv\u00fcl hagyja az i2c_speed param\u00e9tert. #i2c_address: # Az eszk\u00f6z i2c c\u00edme. Ezt decim\u00e1lis sz\u00e1mk\u00e9nt kell megadni # (nem hexadecim\u00e1lis form\u00e1ban). # Az alap\u00e9rtelmezett \u00e9rt\u00e9k az eszk\u00f6z t\u00edpus\u00e1t\u00f3l f\u00fcgg. #i2c_mcu: # Annak a mikrovez\u00e9rl\u0151nek a neve, amelyhez a chip csatlakozik. # Az alap\u00e9rtelmezett az \"mcu\". #i2c_bus: # Ha a mikrovez\u00e9rl\u0151 t\u00f6bb I2C buszt t\u00e1mogat, akkor itt megadhatod a # mikrovez\u00e9rl\u0151 busz nev\u00e9t. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k a mikrovez\u00e9rl\u0151 t\u00edpus\u00e1t\u00f3l f\u00fcgg. #i2c_speed: # Az eszk\u00f6zzel val\u00f3 kommunik\u00e1ci\u00f3 sor\u00e1n haszn\u00e1land\u00f3 I2C sebess\u00e9g # (Hz-ben). A Klipper implement\u00e1ci\u00f3ja a legt\u00f6bb mikrovez\u00e9rl\u0151n k\u00f3dolt # \u00e9rt\u00e9ke 100000, \u00e9s ennek az \u00e9rt\u00e9knek nincs hat\u00e1sa. # Az alap\u00e9rtelmezett \u00e9rt\u00e9k 100 000.","title":"Gyakori I2C be\u00e1ll\u00edt\u00e1sok"},{"location":"Config_checks.html","text":"Konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9sek \u00b6 Ez a dokumentum a Klipper printer.cfg f\u00e1jl t\u0171 be\u00e1ll\u00edt\u00e1sainak meger\u0151s\u00edt\u00e9s\u00e9hez sz\u00fcks\u00e9ges l\u00e9p\u00e9sek list\u00e1j\u00e1t tartalmazza. C\u00e9lszer\u0171 ezeket a l\u00e9p\u00e9seket a telep\u00edt\u00e9si dokumentum l\u00e9p\u00e9seinek k\u00f6vet\u00e9s\u00e9vel v\u00e9grehajtani. Az \u00fatmutat\u00f3 sor\u00e1n sz\u00fcks\u00e9g lehet a Klipper konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1nak m\u00f3dos\u00edt\u00e1s\u00e1ra. \u00dcgyelj arra, hogy a konfigur\u00e1ci\u00f3s f\u00e1jl minden m\u00f3dos\u00edt\u00e1sa ut\u00e1n adj ki egy RESTART parancsot, hogy megbizonyosodj arr\u00f3l, hogy a v\u00e1ltoztat\u00e1s \u00e9rv\u00e9nybe l\u00e9p (\u00edrd be a \"restart\" kifejez\u00e9st az Octoprint termin\u00e1l lapj\u00e1ra, majd kattints a \"K\u00fcld\u00e9s\" gombra). Az is j\u00f3 \u00f6tlet, hogy minden RESTART ut\u00e1n kiadsz egy STATUS parancsot a konfigur\u00e1ci\u00f3s f\u00e1jl sikeres bet\u00f6lt\u00e9s\u00e9nek ellen\u0151rz\u00e9s\u00e9re. Ellen\u0151rizd a h\u0151m\u00e9rs\u00e9kletet \u00b6 Kezd azzal, hogy ellen\u0151rz\u00f6d, a h\u0151m\u00e9rs\u00e9klet megfelel\u0151en van-e jelentve. L\u00e9pj az Octoprint h\u0151m\u00e9rs\u00e9klet lapj\u00e1ra. Ellen\u0151rizd, hogy a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal h\u0151m\u00e9rs\u00e9klete (ha van) jelen van-e, \u00e9s nem emelkedik. Ha n\u00f6vekszik, kapcsold ki a nyomtat\u00f3t. Ha a h\u0151m\u00e9rs\u00e9kletek nem pontosak, tekintsd \u00e1t a f\u00fav\u00f3ka \u00e9s/vagy t\u00e1rgyasztal \"sensor_type\" \u00e9s \"sensor_pin\" be\u00e1ll\u00edt\u00e1sait. Ellen\u0151rz\u00e9s M112 \u00b6 Navig\u00e1lj az Octoprint termin\u00e1l f\u00fclre, \u00e9s adj ki egy M112 parancsot a termin\u00e1lmez\u0151ben. Ez a parancs arra k\u00e9ri a Klippert, hogy l\u00e9pjen \"le\u00e1ll\u00e1si\" \u00e1llapotba. Ennek hat\u00e1s\u00e1ra az Octoprint megszak\u00edtja a kapcsolatot a Klipperrel. Navig\u00e1lj a Connection (Kapcsolat) ter\u00fcletre, \u00e9s kattints a \"Kapcsol\u00f3d\u00e1s\" gombra, hogy az Octoprint \u00fajra csatlakozzon. Ezut\u00e1n navig\u00e1lj az Octoprint h\u0151m\u00e9rs\u00e9klet f\u00fclre, \u00e9s ellen\u0151rizd, hogy a h\u0151m\u00e9rs\u00e9kletek tov\u00e1bbra is friss\u00fclnek-e, \u00e9s a h\u0151m\u00e9rs\u00e9kletek nem emelkednek-e. Ha a h\u0151m\u00e9rs\u00e9kletek emelkednek, kapcsold le a nyomtat\u00f3t a h\u00e1l\u00f3zatr\u00f3l. Az M112 parancs hat\u00e1s\u00e1ra a Klipper \"le\u00e1ll\u00edt\u00e1s\" \u00e1llapotba ker\u00fcl. Ennek az \u00e1llapotnak a t\u00f6rl\u00e9s\u00e9hez adj ki egy FIRMWARE_RESTART parancsot az Octoprint termin\u00e1l lapon. Ellen\u0151rizd a f\u0171t\u0151testeket \u00b6 Navig\u00e1lj az Octoprint h\u0151m\u00e9rs\u00e9klet f\u00fclre, \u00e9s \u00edrd be az 50-et, majd nyomj Entert az \"Eszk\u00f6z\" h\u0151m\u00e9rs\u00e9klet mez\u0151be. Az extruder h\u0151m\u00e9rs\u00e9klet\u00e9nek a grafikonon n\u00f6vekednie kell (k\u00f6r\u00fclbel\u00fcl 30 m\u00e1sodpercen bel\u00fcl). Ezut\u00e1n l\u00e9pj az \"Eszk\u00f6z\" h\u0151m\u00e9rs\u00e9klet leg\u00f6rd\u00fcl\u0151 mez\u0151be, \u00e9s v\u00e1laszd az \"Off\" lehet\u0151s\u00e9get. N\u00e9h\u00e1ny perc m\u00falva a h\u0151m\u00e9rs\u00e9kletnek el kell kezdenie visszaesni a kezdeti h\u0151m\u00e9rs\u00e9klet fel\u00e9. Ha a h\u0151m\u00e9rs\u00e9klet nem emelkedik, akkor ellen\u0151rizd a \"heater_pin\" be\u00e1ll\u00edt\u00e1s\u00e1t a konfigur\u00e1ci\u00f3s f\u00e1jban. Ha a nyomtat\u00f3 f\u0171t\u00f6tt \u00e1ggyal rendelkezik, akkor v\u00e9gezd el a fenti vizsg\u00e1latot a t\u00e1rgyasztaln\u00e1l is. A l\u00e9ptet\u0151motor enged\u00e9lyez\u0151 t\u0171 ellen\u0151rz\u00e9se \u00b6 Ellen\u0151rizd, hogy a nyomtat\u00f3 minden tengelye manu\u00e1lisan szabadon mozog-e (a l\u00e9ptet\u0151motorok ki vannak kapcsolva). Ha nem, adj ki egy M84 parancsot a motorok letilt\u00e1s\u00e1ra. Ha valamelyik tengely m\u00e9g mindig nem tud szabadon mozogni, akkor ellen\u0151rizd a l\u00e9ptet\u0151 \"enable_pin\" konfigur\u00e1ci\u00f3t az adott tengelyhez. A legt\u00f6bb hagyom\u00e1nyos l\u00e9ptet\u0151motor meghajt\u00f3n\u00e1l a motor enged\u00e9lyez\u0151 t\u0171 \"active low\", ez\u00e9rt az enged\u00e9lyez\u0151 t\u0171 el\u0151tt egy \"!\" jelnek kell \u00e1llnia (p\u00e9ld\u00e1ul \"enable_pin: !ar38\"). V\u00e9g\u00e1ll\u00e1sok ellen\u0151rz\u00e9se \u00b6 K\u00e9zzel mozgasd az \u00f6sszes nyomtat\u00f3tengelyt \u00fagy, hogy egyik\u00fck se \u00e9rintkezzen v\u00e9g\u00e1ll\u00e1ssal. K\u00fcldj\u00f6n QUERY_ENDSTOPS parancsot az Octoprint termin\u00e1l lapj\u00e1n kereszt\u00fcl. A nyomtat\u00f3nak v\u00e1laszolnia kell az \u00f6sszes konfigur\u00e1lt v\u00e9g\u00e1ll\u00e1s aktu\u00e1lis \u00e1llapot\u00e1val, \u00e9s mindegyiknek \"open\" \u00e1llapotot kell jeleznie. Az egyes v\u00e9gle\u00e1ll\u00e1sok eset\u00e9ben futtassa \u00fajra a QUERY_ENDSTOPS parancsot, mik\u00f6zben manu\u00e1lisan ind\u00edtja el a v\u00e9gle\u00e1ll\u00e1st. A QUERY_ENDSTOPS parancsnak jeleznie kell a v\u00e9g\u00e1ll\u00e1st, mint \"TRIGGERED\". Ha a v\u00e9g\u00e1ll\u00e1s inverznek t\u0171nik (a kiv\u00e1lt\u00e1skor \"open\" jelz\u00e9st ad, \u00e9s ford\u00edtva), akkor adjunk hozz\u00e1 egy \"!\" -t a t\u0171 defin\u00edci\u00f3hoz (p\u00e9ld\u00e1ul \"endstop_pin: ^!ar3\"), vagy t\u00e1vol\u00edtsuk el a \"!\" -t, ha m\u00e1r van ilyen. Ha a v\u00e9g\u00e1ll\u00e1s egy\u00e1ltal\u00e1n nem v\u00e1ltozik, akkor ez \u00e1ltal\u00e1ban azt jelzi, hogy a v\u00e9g\u00e1ll\u00e1s egy m\u00e1sik t\u0171h\u00f6z van csatlakoztatva. Azonban az is el\u0151fordulhat, hogy a t\u0171 \"pullup\" be\u00e1ll\u00edt\u00e1s\u00e1nak megv\u00e1ltoztat\u00e1s\u00e1ra van sz\u00fcks\u00e9g (a '^' az endstop_pin n\u00e9v elej\u00e9n, a legt\u00f6bb nyomtat\u00f3 \"pullup\" ellen\u00e1ll\u00e1st haszn\u00e1l, \u00e9s a '^' -nek jelen kell lennie). L\u00e9ptet\u0151motorok ellen\u0151rz\u00e9se \u00b6 A STEPPER_BUZZ parancs seg\u00edts\u00e9g\u00e9vel ellen\u0151rizd az egyes l\u00e9ptet\u0151motorok csatlakoz\u00e1s\u00e1t. Kezd az adott tengely k\u00e9zi pozicion\u00e1l\u00e1s\u00e1val egy k\u00f6z\u00e9ps\u0151 pontra, majd futtassa a STEPPER_BUZZ STEPPER=stepper_x parancsot. A STEPPER_BUZZ parancs hat\u00e1s\u00e1ra az adott stepper egy millim\u00e9tert mozdul pozit\u00edv ir\u00e1nyba, majd visszat\u00e9r a kiindul\u00e1si helyzet\u00e9be. (Ha a v\u00e9g\u00e1ll\u00e1st a position_endstop=0 \u00e9rt\u00e9ken defini\u00e1ljuk, akkor minden egyes mozg\u00e1s kezdet\u00e9n a l\u00e9ptet\u0151 a v\u00e9g\u00e1ll\u00e1st\u00f3l t\u00e1volodik). Ezt a mozg\u00e1st t\u00edzszer fogja v\u00e9grehajtani. Ha a l\u00e9ptet\u0151 egy\u00e1ltal\u00e1n nem mozog, akkor ellen\u0151rizd az \"enable_pin\" \u00e9s \"step_pin\" be\u00e1ll\u00edt\u00e1sokat a l\u00e9ptet\u0151n\u00e9l. Ha a l\u00e9ptet\u0151motor mozog, de nem t\u00e9r vissza az eredeti helyzet\u00e9be, akkor ellen\u0151rizd a \"dir_pin\" be\u00e1ll\u00edt\u00e1st. Ha a l\u00e9ptet\u0151motor helytelen ir\u00e1nyban mozog, akkor ez \u00e1ltal\u00e1ban azt jelzi, hogy a tengely \"dir_pin\" be\u00e1ll\u00edt\u00e1s\u00e1t meg kell ford\u00edtani. Ezt \u00fagy lehet megtenni, hogy a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlban a \"dir_pin\" \u00e9rt\u00e9khez hozz\u00e1adunk egy '!' jelet (vagy elt\u00e1vol\u00edtjuk, ha m\u00e1r van ilyen). Ha a motor egy millim\u00e9tern\u00e9l l\u00e9nyegesen t\u00f6bbet vagy l\u00e9nyegesen kevesebbet mozog, akkor ellen\u0151rizd a \"rotation_distance\" be\u00e1ll\u00edt\u00e1st. Futtassa a fenti tesztet a konfigur\u00e1ci\u00f3s f\u00e1jlban defini\u00e1lt minden egyes l\u00e9ptet\u0151motorra. (\u00c1ll\u00edtsd a STEPPER_BUZZ parancs STEPPER param\u00e9ter\u00e9t a tesztelend\u0151 konfigur\u00e1ci\u00f3s szakasz nev\u00e9re). Ha nincs nyomtat\u00f3sz\u00e1l az extruderben, akkor a STEPPER_BUZZ paranccsal ellen\u0151rizheti az extruder motor csatlakoz\u00e1s\u00e1t (haszn\u00e1ld a STEPPER=extruder parancsot). Ellenkez\u0151 esetben a legjobb ha az extruder motort k\u00fcl\u00f6n tesztelj\u00fck (l\u00e1sd a k\u00f6vetkez\u0151 szakaszt). Az \u00f6sszes v\u00e9g\u00e1ll\u00e1s \u00e9s l\u00e9ptet\u0151motor ellen\u0151rz\u00e9se ut\u00e1n a c\u00e9lba \u00e1ll\u00edt\u00e1si mechanizmust tesztelni kell. Adj ki egy G28 parancsot az \u00f6sszes tengely alaphelyzetbe \u00e1ll\u00edt\u00e1s\u00e1hoz. Ha a nyomtat\u00f3 nem \u00e1ll\u00edthat\u00f3 be megfelel\u0151en, kapcsold ki a nyomtat\u00f3t. Ha sz\u00fcks\u00e9ges, ism\u00e9telje meg a v\u00e9g\u00e1ll\u00e1s \u00e9s a l\u00e9ptet\u0151motorok ellen\u0151rz\u00e9s\u00e9t. Extruder motor ellen\u0151rz\u00e9se \u00b6 Az extruder motor tesztel\u00e9s\u00e9hez a nyomtat\u00f3fejet nyomtat\u00e1si h\u0151m\u00e9rs\u00e9kletre kell meleg\u00edteni. Navig\u00e1lj az Octoprint h\u0151m\u00e9rs\u00e9klet f\u00fclre, \u00e9s v\u00e1lasszon ki egy c\u00e9lh\u0151m\u00e9rs\u00e9kletet a h\u0151m\u00e9rs\u00e9klet leg\u00f6rd\u00fcl\u0151 men\u00fcb\u0151l (vagy add meg manu\u00e1lisan a megfelel\u0151 h\u0151m\u00e9rs\u00e9kletet). V\u00e1rja meg, am\u00edg a nyomtat\u00f3 el\u00e9ri a k\u00edv\u00e1nt h\u0151m\u00e9rs\u00e9kletet. Ezut\u00e1n navig\u00e1lj az Octoprint vez\u00e9rl\u0151 lapra, \u00e9s kattints az \"Extrud\u00e1l\u00e1s\" gombra. Ellen\u0151rizd, hogy az extruder motorja a megfelel\u0151 ir\u00e1nyba forog-e. Ha nem, akkor az el\u0151z\u0151 szakaszban tal\u00e1lhat\u00f3 hibaelh\u00e1r\u00edt\u00e1si tippek alapj\u00e1n ellen\u0151rizd az extruder \"enable_pin\", \"step_pin\" \u00e9s \"dir_pin\" be\u00e1ll\u00edt\u00e1sait. PID be\u00e1ll\u00edt\u00e1sok kalibr\u00e1l\u00e1sa \u00b6 A Klipper t\u00e1mogatja a PID-szab\u00e1lyoz\u00e1st az extruder \u00e9s a t\u00e1rgyasztal f\u0171t\u00e9s sz\u00e1m\u00e1ra. Ahhoz, hogy ezt a vez\u00e9rl\u00e9si mechanizmust haszn\u00e1lni lehessen, a PID-be\u00e1ll\u00edt\u00e1sokat minden nyomtat\u00f3n\u00e1l kalibr\u00e1lni kell (a m\u00e1s firmware-ekben vagy a p\u00e9ldakonfigur\u00e1ci\u00f3s f\u00e1jlokban tal\u00e1lhat\u00f3 PID-be\u00e1ll\u00edt\u00e1sok gyakran rosszul m\u0171k\u00f6dnek). Az extruder kalibr\u00e1l\u00e1s\u00e1hoz navig\u00e1lj az OctoPrint termin\u00e1l f\u00fclre, \u00e9s futtassa a PID_CALIBRATE parancsot. P\u00e9ld\u00e1ul: PID_CALIBRATE HEATER=extruder TARGET=170 A hangol\u00e1si teszt v\u00e9g\u00e9n futtassa a SAVE_CONFIG parancsot a printer.cfg f\u00e1jl \u00faj PID-be\u00e1ll\u00edt\u00e1sainak friss\u00edt\u00e9s\u00e9hez. Ha a nyomtat\u00f3 f\u0171t\u00f6tt \u00e1ggyal rendelkezik, \u00e9s az t\u00e1mogatja a PWM (impulzussz\u00e9less\u00e9g-modul\u00e1ci\u00f3) vez\u00e9rl\u00e9st, akkor aj\u00e1nlott PID vez\u00e9rl\u00e9st haszn\u00e1lni a t\u00e1rgyasztalhoz. (Ha a t\u00e1rgyasztal f\u0171t\u00e9st PID algoritmussal vez\u00e9rli, akkor m\u00e1sodpercenk\u00e9nt t\u00edzszer is be- \u00e9s kikapcsolhat, ami nem biztos, hogy megfelel\u0151 a mechanikus kapcsol\u00f3t haszn\u00e1l\u00f3 f\u0171t\u0151berendez\u00e9sekhez.) A tipikus t\u00e1rgyasztal PID-kalibr\u00e1l\u00e1si parancs: PID_CALIBRATE HEATER=heater_bed TARGET=60 K\u00f6vetkez\u0151 l\u00e9p\u00e9sek \u00b6 Ez az \u00fatmutat\u00f3 a Klipper konfigur\u00e1ci\u00f3s f\u00e1jlban l\u00e9v\u0151 t\u0171-be\u00e1ll\u00edt\u00e1sok alapvet\u0151 ellen\u0151rz\u00e9s\u00e9hez ny\u00fajt seg\u00edts\u00e9get. Mindenk\u00e9ppen olvasd el a t\u00e1rgyasztal szintez\u00e9se \u00fatmutat\u00f3t. A Klipperrel t\u00f6rt\u00e9n\u0151 szeletel\u0151 konfigur\u00e1l\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k\u00e9rt olvasd el a Szeletel\u0151k dokumentumot is. Miut\u00e1n meggy\u0151z\u0151dt\u00fcnk arr\u00f3l, hogy az alapnyomtat\u00e1s m\u0171k\u00f6dik, \u00e9rdemes megfontolni a nyom\u00e1s el\u0151tol\u00e1s kalibr\u00e1l\u00e1s\u00e1t. El\u0151fordulhat, hogy m\u00e1s t\u00edpus\u00fa r\u00e9szletes nyomtat\u00f3-kalibr\u00e1l\u00e1sra is sz\u00fcks\u00e9g lehet. Ehhez sz\u00e1mos \u00fatmutat\u00f3 \u00e1ll rendelkez\u00e9sre az interneten (keressen r\u00e1 p\u00e9ld\u00e1ul a \"3d nyomtat\u00f3 kalibr\u00e1l\u00e1s\" sz\u00f6vegre). Ha p\u00e9ld\u00e1ul a gy\u0171r\u0151d\u00e9snek nevezett hat\u00e1st tapasztalod, megpr\u00f3b\u00e1lhatod k\u00f6vetni a rezonancia kompenz\u00e1ci\u00f3 hangol\u00e1si \u00fatmutat\u00f3t.","title":"Konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9sek"},{"location":"Config_checks.html#konfiguracios-ellenorzesek","text":"Ez a dokumentum a Klipper printer.cfg f\u00e1jl t\u0171 be\u00e1ll\u00edt\u00e1sainak meger\u0151s\u00edt\u00e9s\u00e9hez sz\u00fcks\u00e9ges l\u00e9p\u00e9sek list\u00e1j\u00e1t tartalmazza. C\u00e9lszer\u0171 ezeket a l\u00e9p\u00e9seket a telep\u00edt\u00e9si dokumentum l\u00e9p\u00e9seinek k\u00f6vet\u00e9s\u00e9vel v\u00e9grehajtani. Az \u00fatmutat\u00f3 sor\u00e1n sz\u00fcks\u00e9g lehet a Klipper konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1nak m\u00f3dos\u00edt\u00e1s\u00e1ra. \u00dcgyelj arra, hogy a konfigur\u00e1ci\u00f3s f\u00e1jl minden m\u00f3dos\u00edt\u00e1sa ut\u00e1n adj ki egy RESTART parancsot, hogy megbizonyosodj arr\u00f3l, hogy a v\u00e1ltoztat\u00e1s \u00e9rv\u00e9nybe l\u00e9p (\u00edrd be a \"restart\" kifejez\u00e9st az Octoprint termin\u00e1l lapj\u00e1ra, majd kattints a \"K\u00fcld\u00e9s\" gombra). Az is j\u00f3 \u00f6tlet, hogy minden RESTART ut\u00e1n kiadsz egy STATUS parancsot a konfigur\u00e1ci\u00f3s f\u00e1jl sikeres bet\u00f6lt\u00e9s\u00e9nek ellen\u0151rz\u00e9s\u00e9re.","title":"Konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9sek"},{"location":"Config_checks.html#ellenorizd-a-homersekletet","text":"Kezd azzal, hogy ellen\u0151rz\u00f6d, a h\u0151m\u00e9rs\u00e9klet megfelel\u0151en van-e jelentve. L\u00e9pj az Octoprint h\u0151m\u00e9rs\u00e9klet lapj\u00e1ra. Ellen\u0151rizd, hogy a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal h\u0151m\u00e9rs\u00e9klete (ha van) jelen van-e, \u00e9s nem emelkedik. Ha n\u00f6vekszik, kapcsold ki a nyomtat\u00f3t. Ha a h\u0151m\u00e9rs\u00e9kletek nem pontosak, tekintsd \u00e1t a f\u00fav\u00f3ka \u00e9s/vagy t\u00e1rgyasztal \"sensor_type\" \u00e9s \"sensor_pin\" be\u00e1ll\u00edt\u00e1sait.","title":"Ellen\u0151rizd a h\u0151m\u00e9rs\u00e9kletet"},{"location":"Config_checks.html#ellenorzes-m112","text":"Navig\u00e1lj az Octoprint termin\u00e1l f\u00fclre, \u00e9s adj ki egy M112 parancsot a termin\u00e1lmez\u0151ben. Ez a parancs arra k\u00e9ri a Klippert, hogy l\u00e9pjen \"le\u00e1ll\u00e1si\" \u00e1llapotba. Ennek hat\u00e1s\u00e1ra az Octoprint megszak\u00edtja a kapcsolatot a Klipperrel. Navig\u00e1lj a Connection (Kapcsolat) ter\u00fcletre, \u00e9s kattints a \"Kapcsol\u00f3d\u00e1s\" gombra, hogy az Octoprint \u00fajra csatlakozzon. Ezut\u00e1n navig\u00e1lj az Octoprint h\u0151m\u00e9rs\u00e9klet f\u00fclre, \u00e9s ellen\u0151rizd, hogy a h\u0151m\u00e9rs\u00e9kletek tov\u00e1bbra is friss\u00fclnek-e, \u00e9s a h\u0151m\u00e9rs\u00e9kletek nem emelkednek-e. Ha a h\u0151m\u00e9rs\u00e9kletek emelkednek, kapcsold le a nyomtat\u00f3t a h\u00e1l\u00f3zatr\u00f3l. Az M112 parancs hat\u00e1s\u00e1ra a Klipper \"le\u00e1ll\u00edt\u00e1s\" \u00e1llapotba ker\u00fcl. Ennek az \u00e1llapotnak a t\u00f6rl\u00e9s\u00e9hez adj ki egy FIRMWARE_RESTART parancsot az Octoprint termin\u00e1l lapon.","title":"Ellen\u0151rz\u00e9s M112"},{"location":"Config_checks.html#ellenorizd-a-futotesteket","text":"Navig\u00e1lj az Octoprint h\u0151m\u00e9rs\u00e9klet f\u00fclre, \u00e9s \u00edrd be az 50-et, majd nyomj Entert az \"Eszk\u00f6z\" h\u0151m\u00e9rs\u00e9klet mez\u0151be. Az extruder h\u0151m\u00e9rs\u00e9klet\u00e9nek a grafikonon n\u00f6vekednie kell (k\u00f6r\u00fclbel\u00fcl 30 m\u00e1sodpercen bel\u00fcl). Ezut\u00e1n l\u00e9pj az \"Eszk\u00f6z\" h\u0151m\u00e9rs\u00e9klet leg\u00f6rd\u00fcl\u0151 mez\u0151be, \u00e9s v\u00e1laszd az \"Off\" lehet\u0151s\u00e9get. N\u00e9h\u00e1ny perc m\u00falva a h\u0151m\u00e9rs\u00e9kletnek el kell kezdenie visszaesni a kezdeti h\u0151m\u00e9rs\u00e9klet fel\u00e9. Ha a h\u0151m\u00e9rs\u00e9klet nem emelkedik, akkor ellen\u0151rizd a \"heater_pin\" be\u00e1ll\u00edt\u00e1s\u00e1t a konfigur\u00e1ci\u00f3s f\u00e1jban. Ha a nyomtat\u00f3 f\u0171t\u00f6tt \u00e1ggyal rendelkezik, akkor v\u00e9gezd el a fenti vizsg\u00e1latot a t\u00e1rgyasztaln\u00e1l is.","title":"Ellen\u0151rizd a f\u0171t\u0151testeket"},{"location":"Config_checks.html#a-leptetomotor-engedelyezo-tu-ellenorzese","text":"Ellen\u0151rizd, hogy a nyomtat\u00f3 minden tengelye manu\u00e1lisan szabadon mozog-e (a l\u00e9ptet\u0151motorok ki vannak kapcsolva). Ha nem, adj ki egy M84 parancsot a motorok letilt\u00e1s\u00e1ra. Ha valamelyik tengely m\u00e9g mindig nem tud szabadon mozogni, akkor ellen\u0151rizd a l\u00e9ptet\u0151 \"enable_pin\" konfigur\u00e1ci\u00f3t az adott tengelyhez. A legt\u00f6bb hagyom\u00e1nyos l\u00e9ptet\u0151motor meghajt\u00f3n\u00e1l a motor enged\u00e9lyez\u0151 t\u0171 \"active low\", ez\u00e9rt az enged\u00e9lyez\u0151 t\u0171 el\u0151tt egy \"!\" jelnek kell \u00e1llnia (p\u00e9ld\u00e1ul \"enable_pin: !ar38\").","title":"A l\u00e9ptet\u0151motor enged\u00e9lyez\u0151 t\u0171 ellen\u0151rz\u00e9se"},{"location":"Config_checks.html#vegallasok-ellenorzese","text":"K\u00e9zzel mozgasd az \u00f6sszes nyomtat\u00f3tengelyt \u00fagy, hogy egyik\u00fck se \u00e9rintkezzen v\u00e9g\u00e1ll\u00e1ssal. K\u00fcldj\u00f6n QUERY_ENDSTOPS parancsot az Octoprint termin\u00e1l lapj\u00e1n kereszt\u00fcl. A nyomtat\u00f3nak v\u00e1laszolnia kell az \u00f6sszes konfigur\u00e1lt v\u00e9g\u00e1ll\u00e1s aktu\u00e1lis \u00e1llapot\u00e1val, \u00e9s mindegyiknek \"open\" \u00e1llapotot kell jeleznie. Az egyes v\u00e9gle\u00e1ll\u00e1sok eset\u00e9ben futtassa \u00fajra a QUERY_ENDSTOPS parancsot, mik\u00f6zben manu\u00e1lisan ind\u00edtja el a v\u00e9gle\u00e1ll\u00e1st. A QUERY_ENDSTOPS parancsnak jeleznie kell a v\u00e9g\u00e1ll\u00e1st, mint \"TRIGGERED\". Ha a v\u00e9g\u00e1ll\u00e1s inverznek t\u0171nik (a kiv\u00e1lt\u00e1skor \"open\" jelz\u00e9st ad, \u00e9s ford\u00edtva), akkor adjunk hozz\u00e1 egy \"!\" -t a t\u0171 defin\u00edci\u00f3hoz (p\u00e9ld\u00e1ul \"endstop_pin: ^!ar3\"), vagy t\u00e1vol\u00edtsuk el a \"!\" -t, ha m\u00e1r van ilyen. Ha a v\u00e9g\u00e1ll\u00e1s egy\u00e1ltal\u00e1n nem v\u00e1ltozik, akkor ez \u00e1ltal\u00e1ban azt jelzi, hogy a v\u00e9g\u00e1ll\u00e1s egy m\u00e1sik t\u0171h\u00f6z van csatlakoztatva. Azonban az is el\u0151fordulhat, hogy a t\u0171 \"pullup\" be\u00e1ll\u00edt\u00e1s\u00e1nak megv\u00e1ltoztat\u00e1s\u00e1ra van sz\u00fcks\u00e9g (a '^' az endstop_pin n\u00e9v elej\u00e9n, a legt\u00f6bb nyomtat\u00f3 \"pullup\" ellen\u00e1ll\u00e1st haszn\u00e1l, \u00e9s a '^' -nek jelen kell lennie).","title":"V\u00e9g\u00e1ll\u00e1sok ellen\u0151rz\u00e9se"},{"location":"Config_checks.html#leptetomotorok-ellenorzese","text":"A STEPPER_BUZZ parancs seg\u00edts\u00e9g\u00e9vel ellen\u0151rizd az egyes l\u00e9ptet\u0151motorok csatlakoz\u00e1s\u00e1t. Kezd az adott tengely k\u00e9zi pozicion\u00e1l\u00e1s\u00e1val egy k\u00f6z\u00e9ps\u0151 pontra, majd futtassa a STEPPER_BUZZ STEPPER=stepper_x parancsot. A STEPPER_BUZZ parancs hat\u00e1s\u00e1ra az adott stepper egy millim\u00e9tert mozdul pozit\u00edv ir\u00e1nyba, majd visszat\u00e9r a kiindul\u00e1si helyzet\u00e9be. (Ha a v\u00e9g\u00e1ll\u00e1st a position_endstop=0 \u00e9rt\u00e9ken defini\u00e1ljuk, akkor minden egyes mozg\u00e1s kezdet\u00e9n a l\u00e9ptet\u0151 a v\u00e9g\u00e1ll\u00e1st\u00f3l t\u00e1volodik). Ezt a mozg\u00e1st t\u00edzszer fogja v\u00e9grehajtani. Ha a l\u00e9ptet\u0151 egy\u00e1ltal\u00e1n nem mozog, akkor ellen\u0151rizd az \"enable_pin\" \u00e9s \"step_pin\" be\u00e1ll\u00edt\u00e1sokat a l\u00e9ptet\u0151n\u00e9l. Ha a l\u00e9ptet\u0151motor mozog, de nem t\u00e9r vissza az eredeti helyzet\u00e9be, akkor ellen\u0151rizd a \"dir_pin\" be\u00e1ll\u00edt\u00e1st. Ha a l\u00e9ptet\u0151motor helytelen ir\u00e1nyban mozog, akkor ez \u00e1ltal\u00e1ban azt jelzi, hogy a tengely \"dir_pin\" be\u00e1ll\u00edt\u00e1s\u00e1t meg kell ford\u00edtani. Ezt \u00fagy lehet megtenni, hogy a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlban a \"dir_pin\" \u00e9rt\u00e9khez hozz\u00e1adunk egy '!' jelet (vagy elt\u00e1vol\u00edtjuk, ha m\u00e1r van ilyen). Ha a motor egy millim\u00e9tern\u00e9l l\u00e9nyegesen t\u00f6bbet vagy l\u00e9nyegesen kevesebbet mozog, akkor ellen\u0151rizd a \"rotation_distance\" be\u00e1ll\u00edt\u00e1st. Futtassa a fenti tesztet a konfigur\u00e1ci\u00f3s f\u00e1jlban defini\u00e1lt minden egyes l\u00e9ptet\u0151motorra. (\u00c1ll\u00edtsd a STEPPER_BUZZ parancs STEPPER param\u00e9ter\u00e9t a tesztelend\u0151 konfigur\u00e1ci\u00f3s szakasz nev\u00e9re). Ha nincs nyomtat\u00f3sz\u00e1l az extruderben, akkor a STEPPER_BUZZ paranccsal ellen\u0151rizheti az extruder motor csatlakoz\u00e1s\u00e1t (haszn\u00e1ld a STEPPER=extruder parancsot). Ellenkez\u0151 esetben a legjobb ha az extruder motort k\u00fcl\u00f6n tesztelj\u00fck (l\u00e1sd a k\u00f6vetkez\u0151 szakaszt). Az \u00f6sszes v\u00e9g\u00e1ll\u00e1s \u00e9s l\u00e9ptet\u0151motor ellen\u0151rz\u00e9se ut\u00e1n a c\u00e9lba \u00e1ll\u00edt\u00e1si mechanizmust tesztelni kell. Adj ki egy G28 parancsot az \u00f6sszes tengely alaphelyzetbe \u00e1ll\u00edt\u00e1s\u00e1hoz. Ha a nyomtat\u00f3 nem \u00e1ll\u00edthat\u00f3 be megfelel\u0151en, kapcsold ki a nyomtat\u00f3t. Ha sz\u00fcks\u00e9ges, ism\u00e9telje meg a v\u00e9g\u00e1ll\u00e1s \u00e9s a l\u00e9ptet\u0151motorok ellen\u0151rz\u00e9s\u00e9t.","title":"L\u00e9ptet\u0151motorok ellen\u0151rz\u00e9se"},{"location":"Config_checks.html#extruder-motor-ellenorzese","text":"Az extruder motor tesztel\u00e9s\u00e9hez a nyomtat\u00f3fejet nyomtat\u00e1si h\u0151m\u00e9rs\u00e9kletre kell meleg\u00edteni. Navig\u00e1lj az Octoprint h\u0151m\u00e9rs\u00e9klet f\u00fclre, \u00e9s v\u00e1lasszon ki egy c\u00e9lh\u0151m\u00e9rs\u00e9kletet a h\u0151m\u00e9rs\u00e9klet leg\u00f6rd\u00fcl\u0151 men\u00fcb\u0151l (vagy add meg manu\u00e1lisan a megfelel\u0151 h\u0151m\u00e9rs\u00e9kletet). V\u00e1rja meg, am\u00edg a nyomtat\u00f3 el\u00e9ri a k\u00edv\u00e1nt h\u0151m\u00e9rs\u00e9kletet. Ezut\u00e1n navig\u00e1lj az Octoprint vez\u00e9rl\u0151 lapra, \u00e9s kattints az \"Extrud\u00e1l\u00e1s\" gombra. Ellen\u0151rizd, hogy az extruder motorja a megfelel\u0151 ir\u00e1nyba forog-e. Ha nem, akkor az el\u0151z\u0151 szakaszban tal\u00e1lhat\u00f3 hibaelh\u00e1r\u00edt\u00e1si tippek alapj\u00e1n ellen\u0151rizd az extruder \"enable_pin\", \"step_pin\" \u00e9s \"dir_pin\" be\u00e1ll\u00edt\u00e1sait.","title":"Extruder motor ellen\u0151rz\u00e9se"},{"location":"Config_checks.html#pid-beallitasok-kalibralasa","text":"A Klipper t\u00e1mogatja a PID-szab\u00e1lyoz\u00e1st az extruder \u00e9s a t\u00e1rgyasztal f\u0171t\u00e9s sz\u00e1m\u00e1ra. Ahhoz, hogy ezt a vez\u00e9rl\u00e9si mechanizmust haszn\u00e1lni lehessen, a PID-be\u00e1ll\u00edt\u00e1sokat minden nyomtat\u00f3n\u00e1l kalibr\u00e1lni kell (a m\u00e1s firmware-ekben vagy a p\u00e9ldakonfigur\u00e1ci\u00f3s f\u00e1jlokban tal\u00e1lhat\u00f3 PID-be\u00e1ll\u00edt\u00e1sok gyakran rosszul m\u0171k\u00f6dnek). Az extruder kalibr\u00e1l\u00e1s\u00e1hoz navig\u00e1lj az OctoPrint termin\u00e1l f\u00fclre, \u00e9s futtassa a PID_CALIBRATE parancsot. P\u00e9ld\u00e1ul: PID_CALIBRATE HEATER=extruder TARGET=170 A hangol\u00e1si teszt v\u00e9g\u00e9n futtassa a SAVE_CONFIG parancsot a printer.cfg f\u00e1jl \u00faj PID-be\u00e1ll\u00edt\u00e1sainak friss\u00edt\u00e9s\u00e9hez. Ha a nyomtat\u00f3 f\u0171t\u00f6tt \u00e1ggyal rendelkezik, \u00e9s az t\u00e1mogatja a PWM (impulzussz\u00e9less\u00e9g-modul\u00e1ci\u00f3) vez\u00e9rl\u00e9st, akkor aj\u00e1nlott PID vez\u00e9rl\u00e9st haszn\u00e1lni a t\u00e1rgyasztalhoz. (Ha a t\u00e1rgyasztal f\u0171t\u00e9st PID algoritmussal vez\u00e9rli, akkor m\u00e1sodpercenk\u00e9nt t\u00edzszer is be- \u00e9s kikapcsolhat, ami nem biztos, hogy megfelel\u0151 a mechanikus kapcsol\u00f3t haszn\u00e1l\u00f3 f\u0171t\u0151berendez\u00e9sekhez.) A tipikus t\u00e1rgyasztal PID-kalibr\u00e1l\u00e1si parancs: PID_CALIBRATE HEATER=heater_bed TARGET=60","title":"PID be\u00e1ll\u00edt\u00e1sok kalibr\u00e1l\u00e1sa"},{"location":"Config_checks.html#kovetkezo-lepesek","text":"Ez az \u00fatmutat\u00f3 a Klipper konfigur\u00e1ci\u00f3s f\u00e1jlban l\u00e9v\u0151 t\u0171-be\u00e1ll\u00edt\u00e1sok alapvet\u0151 ellen\u0151rz\u00e9s\u00e9hez ny\u00fajt seg\u00edts\u00e9get. Mindenk\u00e9ppen olvasd el a t\u00e1rgyasztal szintez\u00e9se \u00fatmutat\u00f3t. A Klipperrel t\u00f6rt\u00e9n\u0151 szeletel\u0151 konfigur\u00e1l\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k\u00e9rt olvasd el a Szeletel\u0151k dokumentumot is. Miut\u00e1n meggy\u0151z\u0151dt\u00fcnk arr\u00f3l, hogy az alapnyomtat\u00e1s m\u0171k\u00f6dik, \u00e9rdemes megfontolni a nyom\u00e1s el\u0151tol\u00e1s kalibr\u00e1l\u00e1s\u00e1t. El\u0151fordulhat, hogy m\u00e1s t\u00edpus\u00fa r\u00e9szletes nyomtat\u00f3-kalibr\u00e1l\u00e1sra is sz\u00fcks\u00e9g lehet. Ehhez sz\u00e1mos \u00fatmutat\u00f3 \u00e1ll rendelkez\u00e9sre az interneten (keressen r\u00e1 p\u00e9ld\u00e1ul a \"3d nyomtat\u00f3 kalibr\u00e1l\u00e1s\" sz\u00f6vegre). Ha p\u00e9ld\u00e1ul a gy\u0171r\u0151d\u00e9snek nevezett hat\u00e1st tapasztalod, megpr\u00f3b\u00e1lhatod k\u00f6vetni a rezonancia kompenz\u00e1ci\u00f3 hangol\u00e1si \u00fatmutat\u00f3t.","title":"K\u00f6vetkez\u0151 l\u00e9p\u00e9sek"},{"location":"Contact.html","text":"Kapcsolat \u00b6 Ez a dokumentum a Klipper csapat\u00e1nak el\u00e9rhet\u0151s\u00e9g\u00e9t tartalmazza. K\u00f6z\u00f6ss\u00e9gi F\u00f3rum Discord Cseveg\u00e9s K\u00e9rd\u00e9sem van a Klipperrel kapcsolatban Van egy funkci\u00f3k\u00e9relmem Seg\u00edts\u00e9g! Nem m\u0171k\u00f6dik! Hib\u00e1t diagnosztiz\u00e1ltam a Klipper szoftverben V\u00e1ltoztat\u00e1sokat v\u00e9gzek, amelyeket szeretn\u00e9k a Klipperbe be\u00e9p\u00edteni K\u00f6z\u00f6ss\u00e9gi F\u00f3rum \u00b6 Van egy Klipper K\u00f6z\u00f6ss\u00e9gi T\u00e1rsalg\u00f3 szerver a Klipperrel kapcsolatos besz\u00e9lget\u00e9sekhez. Discord Cseveg\u00e9s \u00b6 Van egy Klippernek szentelt Discord szerver a k\u00f6vetkez\u0151 c\u00edmen: https://discord.klipper3d.org . Ezt a szervert egy Klipper-rajong\u00f3kb\u00f3l \u00e1ll\u00f3 k\u00f6z\u00f6ss\u00e9g m\u0171k\u00f6dteti, amely a Klipperrel kapcsolatos vit\u00e1knak szenteli mag\u00e1t. Lehet\u0151v\u00e9 teszi a felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra, hogy val\u00f3s id\u0151ben csevegjenek m\u00e1s felhaszn\u00e1l\u00f3kkal. K\u00e9rd\u00e9sem van a Klipperrel kapcsolatban \u00b6 Sok k\u00e9rd\u00e9sre m\u00e1r v\u00e1laszt kaptunk a Klipper dokument\u00e1ci\u00f3ban . K\u00e9rj\u00fck, mindenk\u00e9ppen olvasd el a dokument\u00e1ci\u00f3t \u00e9s k\u00f6vesse az ott megadott utas\u00edt\u00e1sokat. Lehet\u0151s\u00e9g van hasonl\u00f3 k\u00e9rd\u00e9sek keres\u00e9s\u00e9re a Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rum oldalon is. Ha szeretn\u00e9d megosztani tud\u00e1sodat \u00e9s tapasztalataidat m\u00e1s Klipper felhaszn\u00e1l\u00f3kkal, akkor csatlakozhatsz a Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rum vagy a Discord Cseveg\u00e9s -hez. Mindkett\u0151 olyan k\u00f6z\u00f6ss\u00e9g, ahol a Klipper felhaszn\u00e1l\u00f3k megvitathatj\u00e1k a Klippert m\u00e1s felhaszn\u00e1l\u00f3kkal. Sok k\u00e9rd\u00e9s, amit kapunk, \u00e1ltal\u00e1nos 3D-nyomtat\u00e1ssal kapcsolatos, amely nem kifejezetten a Klipperre vonatkozik. Ha \u00e1ltal\u00e1nos k\u00e9rd\u00e9se van, vagy \u00e1ltal\u00e1nos nyomtat\u00e1si probl\u00e9m\u00e1kkal k\u00fczd, akkor val\u00f3sz\u00edn\u0171leg jobb v\u00e1laszt kap, ha egy \u00e1ltal\u00e1nos 3D-nyomtat\u00e1si f\u00f3rumon vagy a nyomtat\u00f3 hardver\u00e9vel foglalkoz\u00f3 f\u00f3rumon teszi fel a k\u00e9rd\u00e9st. Ne nyiss GitHub-on a Klippern\u00e9l probl\u00e9majelent\u00e9st-t, ha k\u00e9rd\u00e9st szeretn\u00e9l feltenni. Van egy funkci\u00f3k\u00e9relmem \u00b6 Minden \u00faj funkci\u00f3hoz sz\u00fcks\u00e9g van valakire, akit \u00e9rdekel \u00e9s k\u00e9pes az adott funkci\u00f3 megval\u00f3s\u00edt\u00e1s\u00e1ra. Ha szeretn\u00e9l seg\u00edteni egy \u00faj funkci\u00f3 megval\u00f3s\u00edt\u00e1s\u00e1ban vagy tesztel\u00e9s\u00e9ben, akkor a Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rum oldalon keresheted a folyamatban l\u00e9v\u0151 fejleszt\u00e9seket. A Discord Cseveg\u00e9s is rendelkez\u00e9sre \u00e1ll a munkat\u00e1rsak k\u00f6z\u00f6tti megbesz\u00e9l\u00e9sekhez. Ne nyiss GitHub-on a Klippern\u00e9l probl\u00e9majelent\u00e9st, hogy funkci\u00f3t k\u00e9rj. Seg\u00edts\u00e9g! Nem m\u0171k\u00f6dik! \u00b6 Sajnos sokkal t\u00f6bb seg\u00edts\u00e9gk\u00e9r\u00e9s \u00e9rkezik hozz\u00e1nk, mint amennyit meg tudn\u00e1nk v\u00e1laszolni. A legt\u00f6bb probl\u00e9m\u00e1s bejelent\u00e9s, amit l\u00e1tunk v\u00e9g\u00fcl a k\u00f6vetkez\u0151kre vezethet\u0151 vissza: Finom hib\u00e1k a hardverben, vagy Nem k\u00f6veti a Klipper dokument\u00e1ci\u00f3ban le\u00edrt \u00f6sszes l\u00e9p\u00e9st. Ha probl\u00e9m\u00e1kat tapasztalsz, javasoljuk, hogy figyelmesen olvasd el a Klipper dokument\u00e1ci\u00f3t , \u00e9s ellen\u0151rizd, hogy minden l\u00e9p\u00e9st k\u00f6vetett-e. Ha nyomtat\u00e1si probl\u00e9m\u00e1t tapasztalsz, akkor javasoljuk, hogy alaposan vizsg\u00e1ld meg a nyomtat\u00f3 hardver\u00e9t (minden illeszt\u00e9st, vezet\u00e9ket, csavart stb.), \u00e9s gy\u0151z\u0151dj meg arr\u00f3l, hogy semmi rendellenes nincs. \u00dagy tal\u00e1ljuk, hogy a legt\u00f6bb nyomtat\u00e1si probl\u00e9ma nem a Klipper szoftverrel kapcsolatos. Ha a nyomtat\u00f3 hardver\u00e9vel kapcsolatos probl\u00e9m\u00e1t tal\u00e1l, akkor val\u00f3sz\u00edn\u0171leg jobb v\u00e1laszt kap, ha egy \u00e1ltal\u00e1nos 3D-nyomtat\u00e1si f\u00f3rumon vagy egy, a nyomtat\u00f3 hardver\u00e9vel foglalkoz\u00f3 f\u00f3rumon keres. A Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rumban is kereshetsz hasonl\u00f3 k\u00e9rd\u00e9seket. Ha szeretn\u00e9d megosztani tud\u00e1sodat \u00e9s tapasztalataidat m\u00e1s Klipper felhaszn\u00e1l\u00f3kkal, akkor csatlakozhatsz a Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rum vagy a Discord Cseveg\u00e9s -hez. Mindkett\u0151 olyan k\u00f6z\u00f6ss\u00e9g, ahol a Klipper felhaszn\u00e1l\u00f3k megvitathatj\u00e1k a Klippert m\u00e1s felhaszn\u00e1l\u00f3kkal. Ne nyiss GitHub-on a Klippern\u00e9l probl\u00e9majelent\u00e9st, hogy seg\u00edts\u00e9get k\u00e9rj. Hib\u00e1t diagnosztiz\u00e1ltam a Klipper szoftverben \u00b6 A Klipper egy ny\u00edlt forr\u00e1sk\u00f3d\u00fa projekt, \u00e9s nagyra \u00e9rt\u00e9kelj\u00fck, ha a munkat\u00e1rsak diagnosztiz\u00e1lj\u00e1k a szoftver hib\u00e1it. Fontos inform\u00e1ci\u00f3kra lesz sz\u00fcks\u00e9g a hiba kijav\u00edt\u00e1s\u00e1hoz. K\u00e9rj\u00fck, k\u00f6vesse az al\u00e1bbi l\u00e9p\u00e9seket: Gy\u0151z\u0151dj meg r\u00f3la, hogy a hiba a Klipper szoftverben van. Ha \u00fagy gondolja, hogy \"van egy probl\u00e9ma, nem tudom kital\u00e1lni, hogy mi\u00e9rt, \u00e9s ez\u00e9rt ez egy Klipper hiba\", akkor ne nyiss egy github probl\u00e9mabejelent\u00e9st. Ebben az esetben valakinek, akit \u00e9rdekel \u00e9s k\u00e9pes r\u00e1, el\u0151sz\u00f6r fel kell kutatnia \u00e9s diagnosztiz\u00e1lnia a probl\u00e9ma kiv\u00e1lt\u00f3 ok\u00e1t. Ha szeretn\u00e9d megosztani a kutat\u00e1sod eredm\u00e9ny\u00e9t, vagy megn\u00e9zni, hogy m\u00e1s felhaszn\u00e1l\u00f3k is hasonl\u00f3 probl\u00e9m\u00e1kkal k\u00fczdenek-e, akkor keresd meg a Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rum oldal\u00e1t. Gy\u0151z\u0151dj meg r\u00f3la, hogy a https://github.com/Klipper3d/klipper v\u00e1ltozatlan k\u00f3dj\u00e1t futtatja. Ha a k\u00f3dot m\u00f3dos\u00edtott\u00e1k, vagy m\u00e1s forr\u00e1sb\u00f3l sz\u00e1rmazik, akkor a hiba bejelent\u00e9se el\u0151tt reproduk\u00e1lnia kell a probl\u00e9m\u00e1t a https://github.com/Klipper3d/klipper nem m\u00f3dos\u00edtott k\u00f3ddal. Ha lehets\u00e9ges, futtasson egy M112 parancsot az OctoPrint konzolj\u00e1ban k\u00f6zvetlen\u00fcl a nemk\u00edv\u00e1natos esem\u00e9ny bek\u00f6vetkez\u00e9se ut\u00e1n. Ennek hat\u00e1s\u00e1ra a Klipper \"le\u00e1ll\u00edt\u00e1si \u00e1llapotba\" ker\u00fcl, \u00e9s tov\u00e1bbi hibakeres\u00e9si inform\u00e1ci\u00f3k \u00edr\u00f3dnak a napl\u00f3f\u00e1jlba. Szerezd be a Klipper napl\u00f3f\u00e1jlt az esem\u00e9nyb\u0151l. A napl\u00f3f\u00e1jlt \u00fagy alak\u00edtott\u00e1k ki, hogy v\u00e1laszt adjon a Klipper fejleszt\u0151inek a szoftverrel \u00e9s k\u00f6rnyezet\u00e9vel kapcsolatos gyakori k\u00e9rd\u00e9seire (szoftver verzi\u00f3, hardvert\u00edpus, konfigur\u00e1ci\u00f3, esem\u00e9nyid\u0151z\u00edt\u00e9s \u00e9s t\u00f6bb sz\u00e1z egy\u00e9b k\u00e9rd\u00e9s). A Klipper napl\u00f3f\u00e1jlja a /tmp/klippy.log c\u00edmen tal\u00e1lhat\u00f3 a Klipper \"gazdag\u00e9pen\" (vagyis a Raspberry Pi-n). Egy \"SCP\" vagy \"SFTP\" seg\u00e9dprogram sz\u00fcks\u00e9ges a napl\u00f3f\u00e1jlnak az asztali sz\u00e1m\u00edt\u00f3g\u00e9pre val\u00f3 m\u00e1sol\u00e1s\u00e1hoz. Az \"SCP\" seg\u00e9dprogram alapfelszerelts\u00e9gk\u00e9nt j\u00e1r a Linux \u00e9s MacOS asztali sz\u00e1m\u00edt\u00f3g\u00e9pekhez. M\u00e1s asztali sz\u00e1m\u00edt\u00f3g\u00e9pekhez szabadon el\u00e9rhet\u0151 SCP seg\u00e9dprogramok is l\u00e9teznek (pl. WinSCP). Ha olyan grafikus SCP seg\u00e9dprogramot haszn\u00e1l, amely nem tudja k\u00f6zvetlen\u00fcl m\u00e1solni a /tmp/klippy.log , akkor kattints t\u00f6bbsz\u00f6r a ... vagy parent folder , am\u00edg el nem jutunk a gy\u00f6k\u00e9rk\u00f6nyvt\u00e1rba, kattintsunk a tmp mapp\u00e1ra, majd v\u00e1lasszuk ki a klippy.log f\u00e1jlt. M\u00e1solja a napl\u00f3f\u00e1jlt az asztal\u00e1ra, hogy csatolni tudja egy probl\u00e9majelent\u00e9shez. Ne m\u00f3dos\u00edtsd a napl\u00f3f\u00e1jlt semmilyen m\u00f3don; ne adj meg egy r\u00e9szletet a napl\u00f3b\u00f3l. Csak a teljes, v\u00e1ltozatlan napl\u00f3f\u00e1jl ny\u00fajtja a sz\u00fcks\u00e9ges inform\u00e1ci\u00f3kat. Ha a napl\u00f3f\u00e1jl nagyon nagy (pl. 2 MB-n\u00e1l nagyobb), akkor sz\u00fcks\u00e9g lehet a napl\u00f3 zip vagy gzip t\u00f6m\u00f6r\u00edt\u00e9s\u00e9re. Nyiss egy \u00faj GitHub probl\u00e9mabejelent\u00e9st a https://github.com/Klipper3d/klipper/issues c\u00edmen, \u00e9s \u00edrd le egy\u00e9rtelm\u0171en a probl\u00e9m\u00e1t. A Klipper fejleszt\u0151inek meg kell \u00e9rteni\u00fck, hogy milyen l\u00e9p\u00e9seket tettek, mi volt a k\u00edv\u00e1nt eredm\u00e9ny, \u00e9s milyen eredm\u00e9ny t\u00f6rt\u00e9nt val\u00f3j\u00e1ban. A Klipper napl\u00f3f\u00e1jlt csatolni kell a hibajegyhez: V\u00e1ltoztat\u00e1sokat v\u00e9gzek, amelyeket szeretn\u00e9k a Klipperbe be\u00e9p\u00edteni \u00b6 A Klipper ny\u00edlt forr\u00e1sk\u00f3d\u00fa szoftver, \u00e9s \u00f6r\u00f6mmel fogadjuk az \u00faj hozz\u00e1j\u00e1rul\u00e1sokat. Az \u00faj hozz\u00e1j\u00e1rul\u00e1sokat (mind a k\u00f3dot, mind a dokument\u00e1ci\u00f3t illet\u0151en) a GitHub Pull Requests-en kereszt\u00fcl k\u00fcldheted be. L\u00e1sd a CONTRIBUTING dokumentumot a fontos inform\u00e1ci\u00f3k\u00e9rt. Sz\u00e1mos Fejleszt\u0151i dokumentum van fejleszt\u0151knek. Ha k\u00e9rd\u00e9se van a k\u00f3ddal kapcsolatban, akkor a Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rum vagy a Discord Cseveg\u00e9s oldalon is felteheti a k\u00e9rd\u00e9st. Ha friss\u00edteni szeretn\u00e9d az aktu\u00e1lis fejleszt\u00e9st, akkor megnyithat egy GitHub-probl\u00e9m\u00e1t a k\u00f3d hely\u00e9vel, a m\u00f3dos\u00edt\u00e1sok \u00e1ttekint\u00e9s\u00e9vel \u00e9s az aktu\u00e1lis \u00e1llapot le\u00edr\u00e1s\u00e1val.","title":"Kapcsolat"},{"location":"Contact.html#kapcsolat","text":"Ez a dokumentum a Klipper csapat\u00e1nak el\u00e9rhet\u0151s\u00e9g\u00e9t tartalmazza. K\u00f6z\u00f6ss\u00e9gi F\u00f3rum Discord Cseveg\u00e9s K\u00e9rd\u00e9sem van a Klipperrel kapcsolatban Van egy funkci\u00f3k\u00e9relmem Seg\u00edts\u00e9g! Nem m\u0171k\u00f6dik! Hib\u00e1t diagnosztiz\u00e1ltam a Klipper szoftverben V\u00e1ltoztat\u00e1sokat v\u00e9gzek, amelyeket szeretn\u00e9k a Klipperbe be\u00e9p\u00edteni","title":"Kapcsolat"},{"location":"Contact.html#kozossegi-forum","text":"Van egy Klipper K\u00f6z\u00f6ss\u00e9gi T\u00e1rsalg\u00f3 szerver a Klipperrel kapcsolatos besz\u00e9lget\u00e9sekhez.","title":"K\u00f6z\u00f6ss\u00e9gi F\u00f3rum"},{"location":"Contact.html#discord-cseveges","text":"Van egy Klippernek szentelt Discord szerver a k\u00f6vetkez\u0151 c\u00edmen: https://discord.klipper3d.org . Ezt a szervert egy Klipper-rajong\u00f3kb\u00f3l \u00e1ll\u00f3 k\u00f6z\u00f6ss\u00e9g m\u0171k\u00f6dteti, amely a Klipperrel kapcsolatos vit\u00e1knak szenteli mag\u00e1t. Lehet\u0151v\u00e9 teszi a felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra, hogy val\u00f3s id\u0151ben csevegjenek m\u00e1s felhaszn\u00e1l\u00f3kkal.","title":"Discord Cseveg\u00e9s"},{"location":"Contact.html#kerdesem-van-a-klipperrel-kapcsolatban","text":"Sok k\u00e9rd\u00e9sre m\u00e1r v\u00e1laszt kaptunk a Klipper dokument\u00e1ci\u00f3ban . K\u00e9rj\u00fck, mindenk\u00e9ppen olvasd el a dokument\u00e1ci\u00f3t \u00e9s k\u00f6vesse az ott megadott utas\u00edt\u00e1sokat. Lehet\u0151s\u00e9g van hasonl\u00f3 k\u00e9rd\u00e9sek keres\u00e9s\u00e9re a Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rum oldalon is. Ha szeretn\u00e9d megosztani tud\u00e1sodat \u00e9s tapasztalataidat m\u00e1s Klipper felhaszn\u00e1l\u00f3kkal, akkor csatlakozhatsz a Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rum vagy a Discord Cseveg\u00e9s -hez. Mindkett\u0151 olyan k\u00f6z\u00f6ss\u00e9g, ahol a Klipper felhaszn\u00e1l\u00f3k megvitathatj\u00e1k a Klippert m\u00e1s felhaszn\u00e1l\u00f3kkal. Sok k\u00e9rd\u00e9s, amit kapunk, \u00e1ltal\u00e1nos 3D-nyomtat\u00e1ssal kapcsolatos, amely nem kifejezetten a Klipperre vonatkozik. Ha \u00e1ltal\u00e1nos k\u00e9rd\u00e9se van, vagy \u00e1ltal\u00e1nos nyomtat\u00e1si probl\u00e9m\u00e1kkal k\u00fczd, akkor val\u00f3sz\u00edn\u0171leg jobb v\u00e1laszt kap, ha egy \u00e1ltal\u00e1nos 3D-nyomtat\u00e1si f\u00f3rumon vagy a nyomtat\u00f3 hardver\u00e9vel foglalkoz\u00f3 f\u00f3rumon teszi fel a k\u00e9rd\u00e9st. Ne nyiss GitHub-on a Klippern\u00e9l probl\u00e9majelent\u00e9st-t, ha k\u00e9rd\u00e9st szeretn\u00e9l feltenni.","title":"K\u00e9rd\u00e9sem van a Klipperrel kapcsolatban"},{"location":"Contact.html#van-egy-funkciokerelmem","text":"Minden \u00faj funkci\u00f3hoz sz\u00fcks\u00e9g van valakire, akit \u00e9rdekel \u00e9s k\u00e9pes az adott funkci\u00f3 megval\u00f3s\u00edt\u00e1s\u00e1ra. Ha szeretn\u00e9l seg\u00edteni egy \u00faj funkci\u00f3 megval\u00f3s\u00edt\u00e1s\u00e1ban vagy tesztel\u00e9s\u00e9ben, akkor a Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rum oldalon keresheted a folyamatban l\u00e9v\u0151 fejleszt\u00e9seket. A Discord Cseveg\u00e9s is rendelkez\u00e9sre \u00e1ll a munkat\u00e1rsak k\u00f6z\u00f6tti megbesz\u00e9l\u00e9sekhez. Ne nyiss GitHub-on a Klippern\u00e9l probl\u00e9majelent\u00e9st, hogy funkci\u00f3t k\u00e9rj.","title":"Van egy funkci\u00f3k\u00e9relmem"},{"location":"Contact.html#segitseg-nem-mukodik","text":"Sajnos sokkal t\u00f6bb seg\u00edts\u00e9gk\u00e9r\u00e9s \u00e9rkezik hozz\u00e1nk, mint amennyit meg tudn\u00e1nk v\u00e1laszolni. A legt\u00f6bb probl\u00e9m\u00e1s bejelent\u00e9s, amit l\u00e1tunk v\u00e9g\u00fcl a k\u00f6vetkez\u0151kre vezethet\u0151 vissza: Finom hib\u00e1k a hardverben, vagy Nem k\u00f6veti a Klipper dokument\u00e1ci\u00f3ban le\u00edrt \u00f6sszes l\u00e9p\u00e9st. Ha probl\u00e9m\u00e1kat tapasztalsz, javasoljuk, hogy figyelmesen olvasd el a Klipper dokument\u00e1ci\u00f3t , \u00e9s ellen\u0151rizd, hogy minden l\u00e9p\u00e9st k\u00f6vetett-e. Ha nyomtat\u00e1si probl\u00e9m\u00e1t tapasztalsz, akkor javasoljuk, hogy alaposan vizsg\u00e1ld meg a nyomtat\u00f3 hardver\u00e9t (minden illeszt\u00e9st, vezet\u00e9ket, csavart stb.), \u00e9s gy\u0151z\u0151dj meg arr\u00f3l, hogy semmi rendellenes nincs. \u00dagy tal\u00e1ljuk, hogy a legt\u00f6bb nyomtat\u00e1si probl\u00e9ma nem a Klipper szoftverrel kapcsolatos. Ha a nyomtat\u00f3 hardver\u00e9vel kapcsolatos probl\u00e9m\u00e1t tal\u00e1l, akkor val\u00f3sz\u00edn\u0171leg jobb v\u00e1laszt kap, ha egy \u00e1ltal\u00e1nos 3D-nyomtat\u00e1si f\u00f3rumon vagy egy, a nyomtat\u00f3 hardver\u00e9vel foglalkoz\u00f3 f\u00f3rumon keres. A Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rumban is kereshetsz hasonl\u00f3 k\u00e9rd\u00e9seket. Ha szeretn\u00e9d megosztani tud\u00e1sodat \u00e9s tapasztalataidat m\u00e1s Klipper felhaszn\u00e1l\u00f3kkal, akkor csatlakozhatsz a Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rum vagy a Discord Cseveg\u00e9s -hez. Mindkett\u0151 olyan k\u00f6z\u00f6ss\u00e9g, ahol a Klipper felhaszn\u00e1l\u00f3k megvitathatj\u00e1k a Klippert m\u00e1s felhaszn\u00e1l\u00f3kkal. Ne nyiss GitHub-on a Klippern\u00e9l probl\u00e9majelent\u00e9st, hogy seg\u00edts\u00e9get k\u00e9rj.","title":"Seg\u00edts\u00e9g! Nem m\u0171k\u00f6dik!"},{"location":"Contact.html#hibat-diagnosztizaltam-a-klipper-szoftverben","text":"A Klipper egy ny\u00edlt forr\u00e1sk\u00f3d\u00fa projekt, \u00e9s nagyra \u00e9rt\u00e9kelj\u00fck, ha a munkat\u00e1rsak diagnosztiz\u00e1lj\u00e1k a szoftver hib\u00e1it. Fontos inform\u00e1ci\u00f3kra lesz sz\u00fcks\u00e9g a hiba kijav\u00edt\u00e1s\u00e1hoz. K\u00e9rj\u00fck, k\u00f6vesse az al\u00e1bbi l\u00e9p\u00e9seket: Gy\u0151z\u0151dj meg r\u00f3la, hogy a hiba a Klipper szoftverben van. Ha \u00fagy gondolja, hogy \"van egy probl\u00e9ma, nem tudom kital\u00e1lni, hogy mi\u00e9rt, \u00e9s ez\u00e9rt ez egy Klipper hiba\", akkor ne nyiss egy github probl\u00e9mabejelent\u00e9st. Ebben az esetben valakinek, akit \u00e9rdekel \u00e9s k\u00e9pes r\u00e1, el\u0151sz\u00f6r fel kell kutatnia \u00e9s diagnosztiz\u00e1lnia a probl\u00e9ma kiv\u00e1lt\u00f3 ok\u00e1t. Ha szeretn\u00e9d megosztani a kutat\u00e1sod eredm\u00e9ny\u00e9t, vagy megn\u00e9zni, hogy m\u00e1s felhaszn\u00e1l\u00f3k is hasonl\u00f3 probl\u00e9m\u00e1kkal k\u00fczdenek-e, akkor keresd meg a Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rum oldal\u00e1t. Gy\u0151z\u0151dj meg r\u00f3la, hogy a https://github.com/Klipper3d/klipper v\u00e1ltozatlan k\u00f3dj\u00e1t futtatja. Ha a k\u00f3dot m\u00f3dos\u00edtott\u00e1k, vagy m\u00e1s forr\u00e1sb\u00f3l sz\u00e1rmazik, akkor a hiba bejelent\u00e9se el\u0151tt reproduk\u00e1lnia kell a probl\u00e9m\u00e1t a https://github.com/Klipper3d/klipper nem m\u00f3dos\u00edtott k\u00f3ddal. Ha lehets\u00e9ges, futtasson egy M112 parancsot az OctoPrint konzolj\u00e1ban k\u00f6zvetlen\u00fcl a nemk\u00edv\u00e1natos esem\u00e9ny bek\u00f6vetkez\u00e9se ut\u00e1n. Ennek hat\u00e1s\u00e1ra a Klipper \"le\u00e1ll\u00edt\u00e1si \u00e1llapotba\" ker\u00fcl, \u00e9s tov\u00e1bbi hibakeres\u00e9si inform\u00e1ci\u00f3k \u00edr\u00f3dnak a napl\u00f3f\u00e1jlba. Szerezd be a Klipper napl\u00f3f\u00e1jlt az esem\u00e9nyb\u0151l. A napl\u00f3f\u00e1jlt \u00fagy alak\u00edtott\u00e1k ki, hogy v\u00e1laszt adjon a Klipper fejleszt\u0151inek a szoftverrel \u00e9s k\u00f6rnyezet\u00e9vel kapcsolatos gyakori k\u00e9rd\u00e9seire (szoftver verzi\u00f3, hardvert\u00edpus, konfigur\u00e1ci\u00f3, esem\u00e9nyid\u0151z\u00edt\u00e9s \u00e9s t\u00f6bb sz\u00e1z egy\u00e9b k\u00e9rd\u00e9s). A Klipper napl\u00f3f\u00e1jlja a /tmp/klippy.log c\u00edmen tal\u00e1lhat\u00f3 a Klipper \"gazdag\u00e9pen\" (vagyis a Raspberry Pi-n). Egy \"SCP\" vagy \"SFTP\" seg\u00e9dprogram sz\u00fcks\u00e9ges a napl\u00f3f\u00e1jlnak az asztali sz\u00e1m\u00edt\u00f3g\u00e9pre val\u00f3 m\u00e1sol\u00e1s\u00e1hoz. Az \"SCP\" seg\u00e9dprogram alapfelszerelts\u00e9gk\u00e9nt j\u00e1r a Linux \u00e9s MacOS asztali sz\u00e1m\u00edt\u00f3g\u00e9pekhez. M\u00e1s asztali sz\u00e1m\u00edt\u00f3g\u00e9pekhez szabadon el\u00e9rhet\u0151 SCP seg\u00e9dprogramok is l\u00e9teznek (pl. WinSCP). Ha olyan grafikus SCP seg\u00e9dprogramot haszn\u00e1l, amely nem tudja k\u00f6zvetlen\u00fcl m\u00e1solni a /tmp/klippy.log , akkor kattints t\u00f6bbsz\u00f6r a ... vagy parent folder , am\u00edg el nem jutunk a gy\u00f6k\u00e9rk\u00f6nyvt\u00e1rba, kattintsunk a tmp mapp\u00e1ra, majd v\u00e1lasszuk ki a klippy.log f\u00e1jlt. M\u00e1solja a napl\u00f3f\u00e1jlt az asztal\u00e1ra, hogy csatolni tudja egy probl\u00e9majelent\u00e9shez. Ne m\u00f3dos\u00edtsd a napl\u00f3f\u00e1jlt semmilyen m\u00f3don; ne adj meg egy r\u00e9szletet a napl\u00f3b\u00f3l. Csak a teljes, v\u00e1ltozatlan napl\u00f3f\u00e1jl ny\u00fajtja a sz\u00fcks\u00e9ges inform\u00e1ci\u00f3kat. Ha a napl\u00f3f\u00e1jl nagyon nagy (pl. 2 MB-n\u00e1l nagyobb), akkor sz\u00fcks\u00e9g lehet a napl\u00f3 zip vagy gzip t\u00f6m\u00f6r\u00edt\u00e9s\u00e9re. Nyiss egy \u00faj GitHub probl\u00e9mabejelent\u00e9st a https://github.com/Klipper3d/klipper/issues c\u00edmen, \u00e9s \u00edrd le egy\u00e9rtelm\u0171en a probl\u00e9m\u00e1t. A Klipper fejleszt\u0151inek meg kell \u00e9rteni\u00fck, hogy milyen l\u00e9p\u00e9seket tettek, mi volt a k\u00edv\u00e1nt eredm\u00e9ny, \u00e9s milyen eredm\u00e9ny t\u00f6rt\u00e9nt val\u00f3j\u00e1ban. A Klipper napl\u00f3f\u00e1jlt csatolni kell a hibajegyhez:","title":"Hib\u00e1t diagnosztiz\u00e1ltam a Klipper szoftverben"},{"location":"Contact.html#valtoztatasokat-vegzek-amelyeket-szeretnek-a-klipperbe-beepiteni","text":"A Klipper ny\u00edlt forr\u00e1sk\u00f3d\u00fa szoftver, \u00e9s \u00f6r\u00f6mmel fogadjuk az \u00faj hozz\u00e1j\u00e1rul\u00e1sokat. Az \u00faj hozz\u00e1j\u00e1rul\u00e1sokat (mind a k\u00f3dot, mind a dokument\u00e1ci\u00f3t illet\u0151en) a GitHub Pull Requests-en kereszt\u00fcl k\u00fcldheted be. L\u00e1sd a CONTRIBUTING dokumentumot a fontos inform\u00e1ci\u00f3k\u00e9rt. Sz\u00e1mos Fejleszt\u0151i dokumentum van fejleszt\u0151knek. Ha k\u00e9rd\u00e9se van a k\u00f3ddal kapcsolatban, akkor a Klipper K\u00f6z\u00f6ss\u00e9gi F\u00f3rum vagy a Discord Cseveg\u00e9s oldalon is felteheti a k\u00e9rd\u00e9st. Ha friss\u00edteni szeretn\u00e9d az aktu\u00e1lis fejleszt\u00e9st, akkor megnyithat egy GitHub-probl\u00e9m\u00e1t a k\u00f3d hely\u00e9vel, a m\u00f3dos\u00edt\u00e1sok \u00e1ttekint\u00e9s\u00e9vel \u00e9s az aktu\u00e1lis \u00e1llapot le\u00edr\u00e1s\u00e1val.","title":"V\u00e1ltoztat\u00e1sokat v\u00e9gzek, amelyeket szeretn\u00e9k a Klipperbe be\u00e9p\u00edteni"},{"location":"Debugging.html","text":"Hibakeres\u00e9s \u00b6 Ez a dokumentum a Klipper hibakeres\u00e9si eszk\u00f6zeinek egy r\u00e9sz\u00e9t ismerteti. A regresszi\u00f3s tesztek futtat\u00e1sa \u00b6 A Klipper GitHub f\u0151 t\u00e1rol\u00f3ja a \"github actions\" -t haszn\u00e1ld egy sor regresszi\u00f3s teszt futtat\u00e1s\u00e1hoz. Hasznos lehet n\u00e9h\u00e1ny ilyen tesztet helyben futtatni. A forr\u00e1sk\u00f3d \"whitespace check\" a k\u00f6vetkez\u0151vel futtathat\u00f3: ./scripts/check_whitespace.sh A Klippy regresszi\u00f3s tesztcsomag sz\u00e1mos platformr\u00f3l ig\u00e9nyel \"adatsz\u00f3t\u00e1rakat\". A legegyszer\u0171bben \u00fagy szerezhetj\u00fck be \u0151ket, ha let\u00f6ltj\u00fck \u0151ket a githubr\u00f3l . Miut\u00e1n let\u00f6lt\u00f6tt\u00fck az adatsz\u00f3t\u00e1rakat, a regresszi\u00f3s csomag futtat\u00e1s\u00e1hoz haszn\u00e1ljuk a k\u00f6vetkez\u0151ket: tar xfz klipper-dict-20??????.tar.gz ~/klippy-env/bin/python ~/klipper/scripts/test_klippy.py -d dict/ ~/klipper/test/klippy/*.test Parancsok k\u00e9zi k\u00fcld\u00e9se a mikrokontrollernek \u00b6 Norm\u00e1lis esetben a G-k\u00f3d parancsokat a klippy.py folyamat ford\u00edtja Klipper mikrokontroller parancsokra. Azonban az is lehets\u00e9ges, hogy manu\u00e1lisan k\u00fcldj\u00fck el ezeket az MCU-parancsokat (a Klipper forr\u00e1sk\u00f3dj\u00e1ban a DECL_COMMAND() makr\u00f3val jel\u00f6lt f\u00fcggv\u00e9nyek). Ehhez futtassa a k\u00f6vetkez\u0151ket: ~/klippy-env/bin/python ./klippy/console.py /tmp/pseudoserial Az eszk\u00f6z\u00f6n bel\u00fcl a \"HELP\" parancsban tal\u00e1l tov\u00e1bbi inform\u00e1ci\u00f3kat a funkci\u00f3ir\u00f3l. N\u00e9h\u00e1ny parancssori opci\u00f3 is rendelkez\u00e9sre \u00e1ll. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt futtassa a: ~/klippy-env/bin/python ./klippy/console.py --help parancsot A G-k\u00f3d f\u00e1jlok leford\u00edt\u00e1sa mikrokontroller-parancsokra \u00b6 A Klippy gazdag\u00e9p k\u00f3dja futhat k\u00f6tegelt \u00fczemm\u00f3dban, hogy el\u0151\u00e1ll\u00edtsa a G-k\u00f3d f\u00e1jlhoz tartoz\u00f3 alacsony szint\u0171 mikrokontroller-parancsokat. Ezeknek az alacsony szint\u0171 parancsoknak a vizsg\u00e1lata hasznos, amikor megpr\u00f3b\u00e1lod meg\u00e9rteni az alacsony szint\u0171 hardver m\u0171veleteit. Az is hasznos lehet, hogy \u00f6sszehasonl\u00edtsuk a mikrokontroller-parancsok k\u00f6z\u00f6tti k\u00fcl\u00f6nbs\u00e9get egy k\u00f3dv\u00e1lt\u00e1s ut\u00e1n. A Klippy futtat\u00e1s\u00e1hoz ebben a k\u00f6tegelt \u00fczemm\u00f3dban egy egyszeri l\u00e9p\u00e9s sz\u00fcks\u00e9ges a mikrokontroller \"adatsz\u00f3t\u00e1r\" l\u00e9trehoz\u00e1s\u00e1hoz. Ez a mikrokontroller k\u00f3dj\u00e1nak leford\u00edt\u00e1s\u00e1val t\u00f6rt\u00e9nik, hogy megkapjuk az out/klipper.dict f\u00e1jlt: make menuconfig make Ha a fentiek megt\u00f6rt\u00e9ntek, a Klipper futtat\u00e1sa batch \u00fczemm\u00f3dban is lehets\u00e9ges (a python virtu\u00e1lis k\u00f6rnyezet \u00e9s a printer.cfg) f\u00e1jl l\u00e9trehoz\u00e1s\u00e1hoz sz\u00fcks\u00e9ges l\u00e9p\u00e9seket l\u00e1sd Telep\u00edt\u00e9s : ~/klippy-env/bin/python ./klippy/klippy.py ~/printer.cfg -i test.gcode -o test.serial -v -d out/klipper.dict A fenti m\u0171velet egy test.serial f\u00e1jlt fog l\u00e9trehozni a bin\u00e1ris soros kimenettel. Ez a kimenet leford\u00edthat\u00f3 olvashat\u00f3 sz\u00f6vegg\u00e9 a k\u00f6vetkez\u0151vel: ~/klippy-env/bin/python ./klippy/parsedump.py out/klipper.dict test.serial > test.txt Az eredm\u00e9ny\u00fcl kapott test.txt f\u00e1jl a mikrokontroller parancsok ember \u00e1ltal olvashat\u00f3 list\u00e1j\u00e1t tartalmazza. A k\u00f6tegelt \u00fczemm\u00f3d letilt bizonyos v\u00e1lasz/k\u00e9r\u00e9si parancsokat a m\u0171k\u00f6d\u00e9s \u00e9rdek\u00e9ben. Ennek eredm\u00e9nyek\u00e9ppen a t\u00e9nyleges parancsok \u00e9s a fenti kimenet k\u00f6z\u00f6tt n\u00e9mi elt\u00e9r\u00e9s lesz. A gener\u00e1lt adatok tesztel\u00e9shez \u00e9s ellen\u0151rz\u00e9shez hasznosak; nem haszn\u00e1lhat\u00f3ak val\u00f3di mikrokontrollerhez val\u00f3 elk\u00fcld\u00e9sre. Mozg\u00e1selemz\u00e9s \u00e9s adatnapl\u00f3z\u00e1s \u00b6 A Klipper t\u00e1mogatja a bels\u0151 mozg\u00e1st\u00f6rt\u00e9net napl\u00f3z\u00e1s\u00e1t, amely k\u00e9s\u0151bb elemezhet\u0151. Ennek a funkci\u00f3nak a haszn\u00e1lat\u00e1hoz a Klippert az API Szerver enged\u00e9lyez\u00e9s\u00e9vel kell elind\u00edtani. Az adatnapl\u00f3z\u00e1st a data_logger.py eszk\u00f6zzel lehet enged\u00e9lyezni. P\u00e9ld\u00e1ul: ~/klipper/scripts/motan/data_logger.py /tmp/klippy_uds mylog Ez a parancs csatlakozik a Klipper API-kiszolg\u00e1l\u00f3hoz, feliratkozik az \u00e1llapot- \u00e9s mozg\u00e1sinform\u00e1ci\u00f3kra, \u00e9s napl\u00f3zza az eredm\u00e9nyeket. K\u00e9t f\u00e1jl j\u00f6n l\u00e9tre. Egy t\u00f6m\u00f6r\u00edtett adatf\u00e1jl \u00e9s egy indexf\u00e1jl (pl. mylog.json.gz \u00e9s mylog.index.gz ). A napl\u00f3z\u00e1s elind\u00edt\u00e1sa ut\u00e1n lehet\u0151s\u00e9g van nyomtat\u00e1sok \u00e9s egy\u00e9b m\u0171veletek elv\u00e9gz\u00e9s\u00e9re. A napl\u00f3z\u00e1s a h\u00e1tt\u00e9rben folytat\u00f3dik. Ha befejezt\u00fck a napl\u00f3z\u00e1st, nyomjuk meg a ctrl-c billenty\u0171kombin\u00e1ci\u00f3t a data_logger.py eszk\u00f6zb\u0151l val\u00f3 kil\u00e9p\u00e9shez. Az \u00edgy kapott f\u00e1jlok a motan_graph.py eszk\u00f6zzel olvashat\u00f3k \u00e9s grafikusan \u00e1br\u00e1zolhat\u00f3k. A grafikonok Raspberry Pi-n t\u00f6rt\u00e9n\u0151 gener\u00e1l\u00e1s\u00e1hoz egyszeri l\u00e9p\u00e9sben telep\u00edteni kell a \"matplotlib\" csomagot: sudo apt-get update sudo apt-get install python-matplotlib K\u00e9nyelmesebb lehet azonban az adatf\u00e1jlokat a scripts/motan/ k\u00f6nyvt\u00e1rban tal\u00e1lhat\u00f3 Python-k\u00f3ddal egy\u00fctt egy asztali g\u00e9pre m\u00e1solni. A mozg\u00e1selemz\u0151 szkripteknek minden olyan g\u00e9pen futniuk kell, amelyre a Python \u00e9s a Matplotlib leg\u00fajabb verzi\u00f3ja telep\u00edtve van. A grafikonok a k\u00f6vetkez\u0151 parancs seg\u00edts\u00e9g\u00e9vel hozhat\u00f3k l\u00e9tre: ~/klipper/scripts/motan/motan_graph.py mylog -o mygraph.png A -g opci\u00f3t haszn\u00e1lhatjuk a grafikusan \u00e1br\u00e1zoland\u00f3 adatk\u00e9szletek megad\u00e1s\u00e1ra (ez egy Python literal-t fogad el, amely list\u00e1k list\u00e1j\u00e1t tartalmazza). P\u00e9ld\u00e1ul: ~/klipper/scripts/motan/motan_graph.py mylog -g '[[\"trapq(toolhead,velocity)\"], [\"trapq(toolhead,accel)\"]]' Az el\u00e9rhet\u0151 adatk\u00e9szletek list\u00e1ja a -l opci\u00f3val \u00e9rhet\u0151 el. P\u00e9ld\u00e1ul: ~/klipper/scripts/motan/motan_graph.py -l Lehet\u0151s\u00e9g van arra is, hogy minden egyes adatk\u00e9szlethez matplotlib \u00e1br\u00e1zol\u00e1si opci\u00f3kat adj meg: ~/klipper/scripts/motan/motan_graph.py mylog -g '[[\"trapq(toolhead,velocity)?color=red&alpha=0.4\"]]' Sz\u00e1mos matplotlib opci\u00f3 \u00e1ll rendelkez\u00e9sre; n\u00e9h\u00e1ny p\u00e9lda: \"color\", \"label\", \"alpha\" \u00e9s \"linestyle\". A motan_graph.py eszk\u00f6z sz\u00e1mos m\u00e1s parancssori opci\u00f3t is t\u00e1mogat a --help opci\u00f3val megtekintheti a list\u00e1t. K\u00e9nyelmes lehet mag\u00e1t a motan_graph.py szkriptet is megtekinteni/m\u00f3dos\u00edtani. A data_logger.py eszk\u00f6z \u00e1ltal el\u0151\u00e1ll\u00edtott nyers adatnapl\u00f3k az API Szerver c\u00edm\u0171 dokumentumban le\u00edrt form\u00e1tumot k\u00f6vetik. Hasznos lehet az adatokat egy Unix-paranccsal megvizsg\u00e1lni, mint p\u00e9ld\u00e1ul a k\u00f6vetkez\u0151: gunzip < mylog.json.gz | tr '\\03' '\\n' | less Terhel\u00e9si grafikonok gener\u00e1l\u00e1sa \u00b6 A Klippy napl\u00f3f\u00e1jl (/tmp/klippy.log) t\u00e1rolja a s\u00e1vsz\u00e9less\u00e9gre, a mikrokontroller terhel\u00e9sre \u00e9s a gazdag\u00e9p pufferterhel\u00e9sre vonatkoz\u00f3 statisztik\u00e1kat. Hasznos lehet ezeket a statisztik\u00e1kat grafikusan \u00e1br\u00e1zolni a nyomtat\u00e1s ut\u00e1n. A grafikon gener\u00e1l\u00e1s\u00e1hoz egy alkalommal telep\u00edteni kell a \"matplotlib\" csomagot: sudo apt-get update sudo apt-get install python-matplotlib Ezut\u00e1n grafikonok k\u00e9sz\u00edthet\u0151k: ~/klipper/scripts/graphstats.py /tmp/klippy.log -o loadgraph.png Ezut\u00e1n megtekinthetj\u00fck az eredm\u00e9ny\u00fcl kapott loadgraph.png f\u00e1jlt. K\u00fcl\u00f6nb\u00f6z\u0151 grafikonok k\u00e9sz\u00edthet\u0151k. Tov\u00e1bbi inform\u00e1ci\u00f3\u00e9rt futtassa: ~/klipper/scripts/graphstats.py --help Inform\u00e1ci\u00f3k kinyer\u00e9se a klippy.log f\u00e1jlb\u00f3l \u00b6 A Klippy napl\u00f3f\u00e1jl (/tmp/klippy.log) szint\u00e9n tartalmaz hibakeres\u00e9si inform\u00e1ci\u00f3kat. Van egy logextract.py szkript, amely hasznos lehet egy mikrokontroller le\u00e1ll\u00e1s\u00e1nak vagy hasonl\u00f3 probl\u00e9m\u00e1nak az elemz\u00e9sekor. \u00c1ltal\u00e1ban valami ilyesmivel futtathat\u00f3: mkdir work_directory cd work_directory cp /tmp/klippy.log . ~/klipper/scripts/logextract.py ./klippy.log A szkript kinyeri a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1t, \u00e9s kinyeri az MCU le\u00e1ll\u00edt\u00e1si adatait. Az MCU le\u00e1ll\u00edt\u00e1s\u00e1b\u00f3l sz\u00e1rmaz\u00f3 inform\u00e1ci\u00f3sor (ha van ilyen) id\u0151b\u00e9lyegek szerint \u00e1t lesz rendezve, hogy seg\u00edtse az ok-okozati forgat\u00f3k\u00f6nyvek diagnosztiz\u00e1l\u00e1s\u00e1t. Tesztel\u00e9s simulavr-rel \u00b6 A simulavr eszk\u00f6z lehet\u0151v\u00e9 teszi egy Atmel ATmega mikrokontroller szimul\u00e1l\u00e1s\u00e1t. Ez a szakasz le\u00edrja, hogyan lehet teszt G-k\u00f3d f\u00e1jlokat futtatni a simulavr seg\u00edts\u00e9g\u00e9vel. Javasoljuk, hogy ezt egy asztali g\u00e9pen futtassuk (nem Raspberry Pi), mivel a hat\u00e9kony futtat\u00e1shoz er\u0151s CPU-ra van sz\u00fcks\u00e9g. A simulavr haszn\u00e1lat\u00e1hoz t\u00f6ltse le a simulavr csomagot, \u00e9s ford\u00edtsd le python t\u00e1mogat\u00e1ssal. Vedd figyelembe, hogy a build rendszernek telep\u00edtenie kell n\u00e9h\u00e1ny csomagot (p\u00e9ld\u00e1ul a swig-et) ahhoz, hogy a python modult fel tudja \u00e9p\u00edteni. git clone git://git.savannah.nongnu.org/simulavr.git cd simulavr make python make build Gy\u0151z\u0151dj\u00fcnk meg r\u00f3la, hogy a fenti ford\u00edt\u00e1s ut\u00e1n a ./build/pysimulavr/_pysimulavr.*.so f\u00e1jl j\u00f6tt l\u00e9tre: ls ./build/pysimulavr/_pysimulavr.*.so Ennek a parancsnak egy adott f\u00e1jlt kell jelentenie (pl. ./build/pysimulavr/_pysimulavr.cpython-39-x86_64-linux-gnu.so ), nem pedig hib\u00e1t. Ha Debian-alap\u00fa rendszert haszn\u00e1lsz (Debian, Ubuntu, stb.), akkor telep\u00edtheted a k\u00f6vetkez\u0151 csomagokat, \u00e9s *.deb f\u00e1jlokat gener\u00e1lhatsz a simulavr rendszerszint\u0171 telep\u00edt\u00e9s\u00e9hez: sudo apt update sudo apt install g++ make cmake swig rst2pdf help2man texinfo make cfgclean python debian sudo dpkg -i build/debian/python3-simulavr*.deb A Klipper leford\u00edt\u00e1s\u00e1hoz a simulavr-ben val\u00f3 haszn\u00e1lathoz futtassa a k\u00f6vetkez\u0151t: cd /path/to/klipper make menuconfig \u00e9s ford\u00edtsd le a mikrokontroller szoftvert egy AVR atmega644p sz\u00e1m\u00e1ra, \u00e9s v\u00e1laszd a SIMULAVR szoftver emul\u00e1ci\u00f3s t\u00e1mogat\u00e1st. Ezut\u00e1n leford\u00edthatjuk a Klippert (futtassuk make ), majd ind\u00edtsuk el a szimul\u00e1ci\u00f3t a k\u00f6vetkez\u0151kkel: PYTHONPATH=/path/to/simulavr/build/pysimulavr/ ./scripts/avrsim.py out/klipper.elf Vegy\u00fck \u00e9szre, hogy ha a python3-simulavr-t az eg\u00e9sz rendszerre telep\u00edtett\u00fck, akkor nem kell be\u00e1ll\u00edtanunk a PYTHONPATH \u00e9rt\u00e9ket, \u00e9s egyszer\u0171en futtathatjuk a szimul\u00e1tort mint ./scripts/avrsim.py out/klipper.elf Ezut\u00e1n, ha a simulavr egy m\u00e1sik ablakban fut, futtathatjuk a k\u00f6vetkez\u0151t, hogy G-k\u00f3dot olvassunk be egy f\u00e1jlb\u00f3l (pl. \"test.gcode\"), feldolgozzuk a Klippy-vel, \u00e9s elk\u00fcldj\u00fck a simulavr-ben fut\u00f3 Klipper-nek (l\u00e1sd Telep\u00edt\u00e9s a python virtu\u00e1lis k\u00f6rnyezet l\u00e9trehoz\u00e1s\u00e1hoz sz\u00fcks\u00e9ges l\u00e9p\u00e9seket): ~/klippy-env/bin/python ./klippy/klippy.py config/generic-simulavr.cfg -i test.gcode -v A simulavr haszn\u00e1lata gtkwave-vel \u00b6 A simulavr egyik hasznos funkci\u00f3ja, hogy k\u00e9pes jelhull\u00e1mgener\u00e1l\u00f3 f\u00e1jlokat l\u00e9trehozni az esem\u00e9nyek pontos id\u0151z\u00edt\u00e9s\u00e9vel. Ehhez k\u00f6vesse a fenti utas\u00edt\u00e1sokat, de futtassa az avrsim.py programot a k\u00f6vetkez\u0151 parancssorral: PYTHONPATH=/path/to/simulavr/src/python/ ./scripts/avrsim.py out/klipper.elf -t PORTA.PORT,PORTC.PORT A fentiek l\u00e9trehoznak egy avrsim.vcd f\u00e1jlt a PORTA \u00e9s PORTB GPIO-k minden egyes m\u00f3dos\u00edt\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3kkal. Ezt azt\u00e1n a gtkwave seg\u00edts\u00e9g\u00e9vel meg lehetne n\u00e9zni a k\u00f6vetkez\u0151vel: gtkwave avrsim.vcd","title":"Hibakeres\u00e9s"},{"location":"Debugging.html#hibakereses","text":"Ez a dokumentum a Klipper hibakeres\u00e9si eszk\u00f6zeinek egy r\u00e9sz\u00e9t ismerteti.","title":"Hibakeres\u00e9s"},{"location":"Debugging.html#a-regresszios-tesztek-futtatasa","text":"A Klipper GitHub f\u0151 t\u00e1rol\u00f3ja a \"github actions\" -t haszn\u00e1ld egy sor regresszi\u00f3s teszt futtat\u00e1s\u00e1hoz. Hasznos lehet n\u00e9h\u00e1ny ilyen tesztet helyben futtatni. A forr\u00e1sk\u00f3d \"whitespace check\" a k\u00f6vetkez\u0151vel futtathat\u00f3: ./scripts/check_whitespace.sh A Klippy regresszi\u00f3s tesztcsomag sz\u00e1mos platformr\u00f3l ig\u00e9nyel \"adatsz\u00f3t\u00e1rakat\". A legegyszer\u0171bben \u00fagy szerezhetj\u00fck be \u0151ket, ha let\u00f6ltj\u00fck \u0151ket a githubr\u00f3l . Miut\u00e1n let\u00f6lt\u00f6tt\u00fck az adatsz\u00f3t\u00e1rakat, a regresszi\u00f3s csomag futtat\u00e1s\u00e1hoz haszn\u00e1ljuk a k\u00f6vetkez\u0151ket: tar xfz klipper-dict-20??????.tar.gz ~/klippy-env/bin/python ~/klipper/scripts/test_klippy.py -d dict/ ~/klipper/test/klippy/*.test","title":"A regresszi\u00f3s tesztek futtat\u00e1sa"},{"location":"Debugging.html#parancsok-kezi-kuldese-a-mikrokontrollernek","text":"Norm\u00e1lis esetben a G-k\u00f3d parancsokat a klippy.py folyamat ford\u00edtja Klipper mikrokontroller parancsokra. Azonban az is lehets\u00e9ges, hogy manu\u00e1lisan k\u00fcldj\u00fck el ezeket az MCU-parancsokat (a Klipper forr\u00e1sk\u00f3dj\u00e1ban a DECL_COMMAND() makr\u00f3val jel\u00f6lt f\u00fcggv\u00e9nyek). Ehhez futtassa a k\u00f6vetkez\u0151ket: ~/klippy-env/bin/python ./klippy/console.py /tmp/pseudoserial Az eszk\u00f6z\u00f6n bel\u00fcl a \"HELP\" parancsban tal\u00e1l tov\u00e1bbi inform\u00e1ci\u00f3kat a funkci\u00f3ir\u00f3l. N\u00e9h\u00e1ny parancssori opci\u00f3 is rendelkez\u00e9sre \u00e1ll. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt futtassa a: ~/klippy-env/bin/python ./klippy/console.py --help parancsot","title":"Parancsok k\u00e9zi k\u00fcld\u00e9se a mikrokontrollernek"},{"location":"Debugging.html#a-g-kod-fajlok-leforditasa-mikrokontroller-parancsokra","text":"A Klippy gazdag\u00e9p k\u00f3dja futhat k\u00f6tegelt \u00fczemm\u00f3dban, hogy el\u0151\u00e1ll\u00edtsa a G-k\u00f3d f\u00e1jlhoz tartoz\u00f3 alacsony szint\u0171 mikrokontroller-parancsokat. Ezeknek az alacsony szint\u0171 parancsoknak a vizsg\u00e1lata hasznos, amikor megpr\u00f3b\u00e1lod meg\u00e9rteni az alacsony szint\u0171 hardver m\u0171veleteit. Az is hasznos lehet, hogy \u00f6sszehasonl\u00edtsuk a mikrokontroller-parancsok k\u00f6z\u00f6tti k\u00fcl\u00f6nbs\u00e9get egy k\u00f3dv\u00e1lt\u00e1s ut\u00e1n. A Klippy futtat\u00e1s\u00e1hoz ebben a k\u00f6tegelt \u00fczemm\u00f3dban egy egyszeri l\u00e9p\u00e9s sz\u00fcks\u00e9ges a mikrokontroller \"adatsz\u00f3t\u00e1r\" l\u00e9trehoz\u00e1s\u00e1hoz. Ez a mikrokontroller k\u00f3dj\u00e1nak leford\u00edt\u00e1s\u00e1val t\u00f6rt\u00e9nik, hogy megkapjuk az out/klipper.dict f\u00e1jlt: make menuconfig make Ha a fentiek megt\u00f6rt\u00e9ntek, a Klipper futtat\u00e1sa batch \u00fczemm\u00f3dban is lehets\u00e9ges (a python virtu\u00e1lis k\u00f6rnyezet \u00e9s a printer.cfg) f\u00e1jl l\u00e9trehoz\u00e1s\u00e1hoz sz\u00fcks\u00e9ges l\u00e9p\u00e9seket l\u00e1sd Telep\u00edt\u00e9s : ~/klippy-env/bin/python ./klippy/klippy.py ~/printer.cfg -i test.gcode -o test.serial -v -d out/klipper.dict A fenti m\u0171velet egy test.serial f\u00e1jlt fog l\u00e9trehozni a bin\u00e1ris soros kimenettel. Ez a kimenet leford\u00edthat\u00f3 olvashat\u00f3 sz\u00f6vegg\u00e9 a k\u00f6vetkez\u0151vel: ~/klippy-env/bin/python ./klippy/parsedump.py out/klipper.dict test.serial > test.txt Az eredm\u00e9ny\u00fcl kapott test.txt f\u00e1jl a mikrokontroller parancsok ember \u00e1ltal olvashat\u00f3 list\u00e1j\u00e1t tartalmazza. A k\u00f6tegelt \u00fczemm\u00f3d letilt bizonyos v\u00e1lasz/k\u00e9r\u00e9si parancsokat a m\u0171k\u00f6d\u00e9s \u00e9rdek\u00e9ben. Ennek eredm\u00e9nyek\u00e9ppen a t\u00e9nyleges parancsok \u00e9s a fenti kimenet k\u00f6z\u00f6tt n\u00e9mi elt\u00e9r\u00e9s lesz. A gener\u00e1lt adatok tesztel\u00e9shez \u00e9s ellen\u0151rz\u00e9shez hasznosak; nem haszn\u00e1lhat\u00f3ak val\u00f3di mikrokontrollerhez val\u00f3 elk\u00fcld\u00e9sre.","title":"A G-k\u00f3d f\u00e1jlok leford\u00edt\u00e1sa mikrokontroller-parancsokra"},{"location":"Debugging.html#mozgaselemzes-es-adatnaplozas","text":"A Klipper t\u00e1mogatja a bels\u0151 mozg\u00e1st\u00f6rt\u00e9net napl\u00f3z\u00e1s\u00e1t, amely k\u00e9s\u0151bb elemezhet\u0151. Ennek a funkci\u00f3nak a haszn\u00e1lat\u00e1hoz a Klippert az API Szerver enged\u00e9lyez\u00e9s\u00e9vel kell elind\u00edtani. Az adatnapl\u00f3z\u00e1st a data_logger.py eszk\u00f6zzel lehet enged\u00e9lyezni. P\u00e9ld\u00e1ul: ~/klipper/scripts/motan/data_logger.py /tmp/klippy_uds mylog Ez a parancs csatlakozik a Klipper API-kiszolg\u00e1l\u00f3hoz, feliratkozik az \u00e1llapot- \u00e9s mozg\u00e1sinform\u00e1ci\u00f3kra, \u00e9s napl\u00f3zza az eredm\u00e9nyeket. K\u00e9t f\u00e1jl j\u00f6n l\u00e9tre. Egy t\u00f6m\u00f6r\u00edtett adatf\u00e1jl \u00e9s egy indexf\u00e1jl (pl. mylog.json.gz \u00e9s mylog.index.gz ). A napl\u00f3z\u00e1s elind\u00edt\u00e1sa ut\u00e1n lehet\u0151s\u00e9g van nyomtat\u00e1sok \u00e9s egy\u00e9b m\u0171veletek elv\u00e9gz\u00e9s\u00e9re. A napl\u00f3z\u00e1s a h\u00e1tt\u00e9rben folytat\u00f3dik. Ha befejezt\u00fck a napl\u00f3z\u00e1st, nyomjuk meg a ctrl-c billenty\u0171kombin\u00e1ci\u00f3t a data_logger.py eszk\u00f6zb\u0151l val\u00f3 kil\u00e9p\u00e9shez. Az \u00edgy kapott f\u00e1jlok a motan_graph.py eszk\u00f6zzel olvashat\u00f3k \u00e9s grafikusan \u00e1br\u00e1zolhat\u00f3k. A grafikonok Raspberry Pi-n t\u00f6rt\u00e9n\u0151 gener\u00e1l\u00e1s\u00e1hoz egyszeri l\u00e9p\u00e9sben telep\u00edteni kell a \"matplotlib\" csomagot: sudo apt-get update sudo apt-get install python-matplotlib K\u00e9nyelmesebb lehet azonban az adatf\u00e1jlokat a scripts/motan/ k\u00f6nyvt\u00e1rban tal\u00e1lhat\u00f3 Python-k\u00f3ddal egy\u00fctt egy asztali g\u00e9pre m\u00e1solni. A mozg\u00e1selemz\u0151 szkripteknek minden olyan g\u00e9pen futniuk kell, amelyre a Python \u00e9s a Matplotlib leg\u00fajabb verzi\u00f3ja telep\u00edtve van. A grafikonok a k\u00f6vetkez\u0151 parancs seg\u00edts\u00e9g\u00e9vel hozhat\u00f3k l\u00e9tre: ~/klipper/scripts/motan/motan_graph.py mylog -o mygraph.png A -g opci\u00f3t haszn\u00e1lhatjuk a grafikusan \u00e1br\u00e1zoland\u00f3 adatk\u00e9szletek megad\u00e1s\u00e1ra (ez egy Python literal-t fogad el, amely list\u00e1k list\u00e1j\u00e1t tartalmazza). P\u00e9ld\u00e1ul: ~/klipper/scripts/motan/motan_graph.py mylog -g '[[\"trapq(toolhead,velocity)\"], [\"trapq(toolhead,accel)\"]]' Az el\u00e9rhet\u0151 adatk\u00e9szletek list\u00e1ja a -l opci\u00f3val \u00e9rhet\u0151 el. P\u00e9ld\u00e1ul: ~/klipper/scripts/motan/motan_graph.py -l Lehet\u0151s\u00e9g van arra is, hogy minden egyes adatk\u00e9szlethez matplotlib \u00e1br\u00e1zol\u00e1si opci\u00f3kat adj meg: ~/klipper/scripts/motan/motan_graph.py mylog -g '[[\"trapq(toolhead,velocity)?color=red&alpha=0.4\"]]' Sz\u00e1mos matplotlib opci\u00f3 \u00e1ll rendelkez\u00e9sre; n\u00e9h\u00e1ny p\u00e9lda: \"color\", \"label\", \"alpha\" \u00e9s \"linestyle\". A motan_graph.py eszk\u00f6z sz\u00e1mos m\u00e1s parancssori opci\u00f3t is t\u00e1mogat a --help opci\u00f3val megtekintheti a list\u00e1t. K\u00e9nyelmes lehet mag\u00e1t a motan_graph.py szkriptet is megtekinteni/m\u00f3dos\u00edtani. A data_logger.py eszk\u00f6z \u00e1ltal el\u0151\u00e1ll\u00edtott nyers adatnapl\u00f3k az API Szerver c\u00edm\u0171 dokumentumban le\u00edrt form\u00e1tumot k\u00f6vetik. Hasznos lehet az adatokat egy Unix-paranccsal megvizsg\u00e1lni, mint p\u00e9ld\u00e1ul a k\u00f6vetkez\u0151: gunzip < mylog.json.gz | tr '\\03' '\\n' | less","title":"Mozg\u00e1selemz\u00e9s \u00e9s adatnapl\u00f3z\u00e1s"},{"location":"Debugging.html#terhelesi-grafikonok-generalasa","text":"A Klippy napl\u00f3f\u00e1jl (/tmp/klippy.log) t\u00e1rolja a s\u00e1vsz\u00e9less\u00e9gre, a mikrokontroller terhel\u00e9sre \u00e9s a gazdag\u00e9p pufferterhel\u00e9sre vonatkoz\u00f3 statisztik\u00e1kat. Hasznos lehet ezeket a statisztik\u00e1kat grafikusan \u00e1br\u00e1zolni a nyomtat\u00e1s ut\u00e1n. A grafikon gener\u00e1l\u00e1s\u00e1hoz egy alkalommal telep\u00edteni kell a \"matplotlib\" csomagot: sudo apt-get update sudo apt-get install python-matplotlib Ezut\u00e1n grafikonok k\u00e9sz\u00edthet\u0151k: ~/klipper/scripts/graphstats.py /tmp/klippy.log -o loadgraph.png Ezut\u00e1n megtekinthetj\u00fck az eredm\u00e9ny\u00fcl kapott loadgraph.png f\u00e1jlt. K\u00fcl\u00f6nb\u00f6z\u0151 grafikonok k\u00e9sz\u00edthet\u0151k. Tov\u00e1bbi inform\u00e1ci\u00f3\u00e9rt futtassa: ~/klipper/scripts/graphstats.py --help","title":"Terhel\u00e9si grafikonok gener\u00e1l\u00e1sa"},{"location":"Debugging.html#informaciok-kinyerese-a-klippylog-fajlbol","text":"A Klippy napl\u00f3f\u00e1jl (/tmp/klippy.log) szint\u00e9n tartalmaz hibakeres\u00e9si inform\u00e1ci\u00f3kat. Van egy logextract.py szkript, amely hasznos lehet egy mikrokontroller le\u00e1ll\u00e1s\u00e1nak vagy hasonl\u00f3 probl\u00e9m\u00e1nak az elemz\u00e9sekor. \u00c1ltal\u00e1ban valami ilyesmivel futtathat\u00f3: mkdir work_directory cd work_directory cp /tmp/klippy.log . ~/klipper/scripts/logextract.py ./klippy.log A szkript kinyeri a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1t, \u00e9s kinyeri az MCU le\u00e1ll\u00edt\u00e1si adatait. Az MCU le\u00e1ll\u00edt\u00e1s\u00e1b\u00f3l sz\u00e1rmaz\u00f3 inform\u00e1ci\u00f3sor (ha van ilyen) id\u0151b\u00e9lyegek szerint \u00e1t lesz rendezve, hogy seg\u00edtse az ok-okozati forgat\u00f3k\u00f6nyvek diagnosztiz\u00e1l\u00e1s\u00e1t.","title":"Inform\u00e1ci\u00f3k kinyer\u00e9se a klippy.log f\u00e1jlb\u00f3l"},{"location":"Debugging.html#teszteles-simulavr-rel","text":"A simulavr eszk\u00f6z lehet\u0151v\u00e9 teszi egy Atmel ATmega mikrokontroller szimul\u00e1l\u00e1s\u00e1t. Ez a szakasz le\u00edrja, hogyan lehet teszt G-k\u00f3d f\u00e1jlokat futtatni a simulavr seg\u00edts\u00e9g\u00e9vel. Javasoljuk, hogy ezt egy asztali g\u00e9pen futtassuk (nem Raspberry Pi), mivel a hat\u00e9kony futtat\u00e1shoz er\u0151s CPU-ra van sz\u00fcks\u00e9g. A simulavr haszn\u00e1lat\u00e1hoz t\u00f6ltse le a simulavr csomagot, \u00e9s ford\u00edtsd le python t\u00e1mogat\u00e1ssal. Vedd figyelembe, hogy a build rendszernek telep\u00edtenie kell n\u00e9h\u00e1ny csomagot (p\u00e9ld\u00e1ul a swig-et) ahhoz, hogy a python modult fel tudja \u00e9p\u00edteni. git clone git://git.savannah.nongnu.org/simulavr.git cd simulavr make python make build Gy\u0151z\u0151dj\u00fcnk meg r\u00f3la, hogy a fenti ford\u00edt\u00e1s ut\u00e1n a ./build/pysimulavr/_pysimulavr.*.so f\u00e1jl j\u00f6tt l\u00e9tre: ls ./build/pysimulavr/_pysimulavr.*.so Ennek a parancsnak egy adott f\u00e1jlt kell jelentenie (pl. ./build/pysimulavr/_pysimulavr.cpython-39-x86_64-linux-gnu.so ), nem pedig hib\u00e1t. Ha Debian-alap\u00fa rendszert haszn\u00e1lsz (Debian, Ubuntu, stb.), akkor telep\u00edtheted a k\u00f6vetkez\u0151 csomagokat, \u00e9s *.deb f\u00e1jlokat gener\u00e1lhatsz a simulavr rendszerszint\u0171 telep\u00edt\u00e9s\u00e9hez: sudo apt update sudo apt install g++ make cmake swig rst2pdf help2man texinfo make cfgclean python debian sudo dpkg -i build/debian/python3-simulavr*.deb A Klipper leford\u00edt\u00e1s\u00e1hoz a simulavr-ben val\u00f3 haszn\u00e1lathoz futtassa a k\u00f6vetkez\u0151t: cd /path/to/klipper make menuconfig \u00e9s ford\u00edtsd le a mikrokontroller szoftvert egy AVR atmega644p sz\u00e1m\u00e1ra, \u00e9s v\u00e1laszd a SIMULAVR szoftver emul\u00e1ci\u00f3s t\u00e1mogat\u00e1st. Ezut\u00e1n leford\u00edthatjuk a Klippert (futtassuk make ), majd ind\u00edtsuk el a szimul\u00e1ci\u00f3t a k\u00f6vetkez\u0151kkel: PYTHONPATH=/path/to/simulavr/build/pysimulavr/ ./scripts/avrsim.py out/klipper.elf Vegy\u00fck \u00e9szre, hogy ha a python3-simulavr-t az eg\u00e9sz rendszerre telep\u00edtett\u00fck, akkor nem kell be\u00e1ll\u00edtanunk a PYTHONPATH \u00e9rt\u00e9ket, \u00e9s egyszer\u0171en futtathatjuk a szimul\u00e1tort mint ./scripts/avrsim.py out/klipper.elf Ezut\u00e1n, ha a simulavr egy m\u00e1sik ablakban fut, futtathatjuk a k\u00f6vetkez\u0151t, hogy G-k\u00f3dot olvassunk be egy f\u00e1jlb\u00f3l (pl. \"test.gcode\"), feldolgozzuk a Klippy-vel, \u00e9s elk\u00fcldj\u00fck a simulavr-ben fut\u00f3 Klipper-nek (l\u00e1sd Telep\u00edt\u00e9s a python virtu\u00e1lis k\u00f6rnyezet l\u00e9trehoz\u00e1s\u00e1hoz sz\u00fcks\u00e9ges l\u00e9p\u00e9seket): ~/klippy-env/bin/python ./klippy/klippy.py config/generic-simulavr.cfg -i test.gcode -v","title":"Tesztel\u00e9s simulavr-rel"},{"location":"Debugging.html#a-simulavr-hasznalata-gtkwave-vel","text":"A simulavr egyik hasznos funkci\u00f3ja, hogy k\u00e9pes jelhull\u00e1mgener\u00e1l\u00f3 f\u00e1jlokat l\u00e9trehozni az esem\u00e9nyek pontos id\u0151z\u00edt\u00e9s\u00e9vel. Ehhez k\u00f6vesse a fenti utas\u00edt\u00e1sokat, de futtassa az avrsim.py programot a k\u00f6vetkez\u0151 parancssorral: PYTHONPATH=/path/to/simulavr/src/python/ ./scripts/avrsim.py out/klipper.elf -t PORTA.PORT,PORTC.PORT A fentiek l\u00e9trehoznak egy avrsim.vcd f\u00e1jlt a PORTA \u00e9s PORTB GPIO-k minden egyes m\u00f3dos\u00edt\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3kkal. Ezt azt\u00e1n a gtkwave seg\u00edts\u00e9g\u00e9vel meg lehetne n\u00e9zni a k\u00f6vetkez\u0151vel: gtkwave avrsim.vcd","title":"A simulavr haszn\u00e1lata gtkwave-vel"},{"location":"Delta_Calibrate.html","text":"Delta kalibr\u00e1l\u00e1s \u00b6 Ez a dokumentum a Klipper \"delta\" st\u00edlus\u00fa nyomtat\u00f3k automatikus kalibr\u00e1ci\u00f3s rendszer\u00e9t \u00edrja le. A deltakalibr\u00e1l\u00e1s mag\u00e1ban foglalja a torony v\u00e9g\u00e1ll\u00e1s\u00e1nak, a torony sz\u00f6g\u00e9nek, a deltasug\u00e1rnak \u00e9s a deltakarok hossz\u00e1nak meghat\u00e1roz\u00e1s\u00e1t. Ezek a be\u00e1ll\u00edt\u00e1sok szab\u00e1lyozz\u00e1k a nyomtat\u00f3 mozg\u00e1s\u00e1t a delta nyomtat\u00f3n\u00e1l. E param\u00e9terek mindegyike nem nyilv\u00e1nval\u00f3 \u00e9s nem line\u00e1ris hat\u00e1ssal b\u00edr, \u00e9s manu\u00e1lisan neh\u00e9z kalibr\u00e1lni \u0151ket. Ezzel szemben a szoftver kalibr\u00e1ci\u00f3s k\u00f3dja n\u00e9h\u00e1ny perc r\u00e1ford\u00edt\u00e1ssal kiv\u00e1l\u00f3 eredm\u00e9nyt adhat. Nincs sz\u00fcks\u00e9g speci\u00e1lis szintez\u0151 hardverre. A delta-kalibr\u00e1l\u00e1s v\u00e9gs\u0151 soron a torony v\u00e9g\u00e1ll\u00e1skapcsol\u00f3inak pontoss\u00e1g\u00e1t\u00f3l f\u00fcgg. Ha valaki Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3kat haszn\u00e1l, akkor fontolja meg a v\u00e9g\u00e1ll\u00e1si f\u00e1zis \u00e9rz\u00e9kel\u00e9s enged\u00e9lyez\u00e9s\u00e9t, hogy jav\u00edtsa a kapcsol\u00f3k pontoss\u00e1g\u00e1t. Automatikus vagy k\u00e9zi szintez\u00e9s \u00b6 A Klipper t\u00e1mogatja a delta param\u00e9terek kalibr\u00e1l\u00e1s\u00e1t k\u00e9zi szintez\u00e9ssel vagy automatikus Z-szond\u00e1val. Sz\u00e1mos delta nyomtat\u00f3 k\u00e9szlethez automatikus Z-szond\u00e1k tartoznak, amelyek nem el\u00e9g pontosak (k\u00fcl\u00f6n\u00f6sen a karok hossz\u00e1nak kis k\u00fcl\u00f6nbs\u00e9gei okozhatnak effektor d\u0151l\u00e9st, ami elferd\u00edtheti az automatikus szond\u00e1t). Ha automatikus szond\u00e1t haszn\u00e1l, akkor el\u0151sz\u00f6r kalibr\u00e1lja a szond\u00e1t , majd ellen\u0151rizd a szonda hely\u00e9nek torz\u00edt\u00e1s\u00e1t . Ha az automatikus szonda torz\u00edt\u00e1sa t\u00f6bb mint 25 mikron (0.025mm), akkor helyette haszn\u00e1lj k\u00e9zi szintez\u00e9st. A k\u00e9zi szintez\u00e9s csak n\u00e9h\u00e1ny percet vesz ig\u00e9nybe, \u00e9s kik\u00fcsz\u00f6b\u00f6li a szonda \u00e1ltal okozott hib\u00e1t. Ha olyan szond\u00e1t haszn\u00e1l, amely a f\u0171t\u0151berendez\u00e9s oldal\u00e1ra van szerelve (azaz X vagy Y eltol\u00e1ssal rendelkezik), akkor vedd figyelembe, hogy a delta-kalibr\u00e1l\u00e1s v\u00e9grehajt\u00e1sa \u00e9rv\u00e9nytelen\u00edti a szonda kalibr\u00e1l\u00e1s\u00e1nak eredm\u00e9nyeit. Az ilyen t\u00edpus\u00fa szond\u00e1k ritk\u00e1n alkalmasak a delta haszn\u00e1lat\u00e1ra (mivel a kisebb effektor d\u0151l\u00e9s a szonda hely\u00e9nek torz\u00edt\u00e1s\u00e1t eredm\u00e9nyezi). Ha m\u00e9gis haszn\u00e1lod a szond\u00e1t, akkor a delta-kalibr\u00e1l\u00e1s ut\u00e1n mindenk\u00e9ppen v\u00e9gezd el \u00fajra a szonda kalibr\u00e1l\u00e1s\u00e1t. Alapvet\u0151 delta kalibr\u00e1l\u00e1s \u00b6 A Klipper rendelkezik egy DELTA_CALIBRATE paranccsal, amely alapvet\u0151 delta-kalibr\u00e1l\u00e1st v\u00e9gezhet. Ez a parancs a t\u00e1rgyasztal h\u00e9t k\u00fcl\u00f6nb\u00f6z\u0151 pontj\u00e1t vizsg\u00e1lja, \u00e9s \u00faj \u00e9rt\u00e9keket sz\u00e1mol ki a toronysz\u00f6gek, a toronyv\u00e9g\u00e1ll\u00e1sok \u00e9s a delta-sug\u00e1r sz\u00e1m\u00e1ra. A kalibr\u00e1l\u00e1s elv\u00e9gz\u00e9s\u00e9hez meg kell adni a kiindul\u00e1si delta param\u00e9tereket (karhossz, sug\u00e1r \u00e9s v\u00e9g\u00e1ll\u00e1sok), amelyeknek n\u00e9h\u00e1ny millim\u00e9teres pontoss\u00e1ggal kell rendelkezni\u00fck. A legt\u00f6bb delta nyomtat\u00f3 k\u00e9szlet biztos\u00edtja ezeket a param\u00e9tereket. Konfigur\u00e1ld a nyomtat\u00f3t ezekkel a kezdeti alapbe\u00e1ll\u00edt\u00e1sokkal, majd futtassa a DELTA_CALIBRATE parancsot az al\u00e1bbiakban le\u00edrtak szerint. Ha nem \u00e1llnak rendelkez\u00e9sre alap\u00e9rtelmezett \u00e9rt\u00e9kek, akkor keressen az interneten egy delta-kalibr\u00e1l\u00e1si \u00fatmutat\u00f3t, amely alapvet\u0151 kiindul\u00f3pontot adhat. A delta-kalibr\u00e1l\u00e1s sor\u00e1n el\u0151fordulhat, hogy a nyomtat\u00f3nak a t\u00e1rgyasztal s\u00edkja alatt kell szinteznie, amit egy\u00e9bk\u00e9nt a t\u00e1rgyasztal s\u00edkj\u00e1nak tekinthetn\u00e9nk. Jellemz\u0151en ezt a kalibr\u00e1l\u00e1s sor\u00e1n a konfigur\u00e1ci\u00f3 friss\u00edt\u00e9s\u00e9vel enged\u00e9lyezz\u00fck a minimum_z_position=-5 \u00e9rt\u00e9kkel. (A kalibr\u00e1l\u00e1s befejez\u00e9se ut\u00e1n ez a be\u00e1ll\u00edt\u00e1s elt\u00e1vol\u00edthat\u00f3 a konfigur\u00e1ci\u00f3b\u00f3l.) A szintez\u00e9st k\u00e9tf\u00e9lek\u00e9ppen lehet elv\u00e9gezni: k\u00e9zi szintez\u00e9s ( DELTA_CALIBRATE METHOD=manual ) \u00e9s automatikus szintez\u00e9s ( DELTA_CALIBRATE ). A k\u00e9zi szintez\u00e9si m\u00f3dszer a fejet a t\u00e1rgyasztal k\u00f6zel\u00e9be mozgatja, majd megv\u00e1rja, hogy a felhaszn\u00e1l\u00f3 k\u00f6vesse a \"a pap\u00edrteszt\" pontban le\u00edrt l\u00e9p\u00e9seket, hogy meghat\u00e1rozza a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tti t\u00e9nyleges t\u00e1vols\u00e1got az adott helyen. Az alapvet\u0151 m\u00e9r\u00e9s elv\u00e9gz\u00e9s\u00e9hez gy\u0151z\u0151dj meg arr\u00f3l, hogy a konfigur\u00e1ci\u00f3ban van-e defini\u00e1lva egy [delta_calibrate] szakasz, majd futtassa az eszk\u00f6zt: G28 DELTA_CALIBRATE METHOD=manual A h\u00e9t pont szintez\u00e9se ut\u00e1n \u00faj delta param\u00e9terek ker\u00fclnek kisz\u00e1m\u00edt\u00e1sra. Mentsd el \u00e9s alkalmazd ezeket a param\u00e9tereket a k\u00f6vetkez\u0151t futtatva: SAVE_CONFIG Az alapkalibr\u00e1ci\u00f3nak olyan delta param\u00e9tereket kell biztos\u00edtania, amelyek el\u00e9g pontosak az alapvet\u0151 nyomtat\u00e1shoz. Ha ez egy \u00faj nyomtat\u00f3, ez egy j\u00f3 alkalom n\u00e9h\u00e1ny alapvet\u0151 objektum nyomtat\u00e1s\u00e1ra \u00e9s az \u00e1ltal\u00e1nos m\u0171k\u00f6d\u00e9s ellen\u0151rz\u00e9s\u00e9re. Tov\u00e1bbfejlesztett delta kalibr\u00e1l\u00e1s \u00b6 Az alap delta-kalibr\u00e1l\u00e1s \u00e1ltal\u00e1ban j\u00f3 munk\u00e1t v\u00e9gez a delta param\u00e9terek kisz\u00e1m\u00edt\u00e1s\u00e1ban, hogy a f\u00fav\u00f3ka a megfelel\u0151 t\u00e1vols\u00e1gra legyen a t\u00e1rgyasztalt\u00f3l. Nem pr\u00f3b\u00e1lja azonban kalibr\u00e1lni az X \u00e9s Y dimenzi\u00f3 pontoss\u00e1g\u00e1t. A m\u00e9retpontoss\u00e1g ellen\u0151rz\u00e9s\u00e9re \u00e9rdemes egy kib\u0151v\u00edtett delta-kalibr\u00e1ci\u00f3t elv\u00e9gezni. Ehhez a kalibr\u00e1l\u00e1si elj\u00e1r\u00e1shoz ki kell nyomtatni egy tesztobjektumot, \u00e9s a tesztobjektum egyes r\u00e9szeit digit\u00e1lis tol\u00f3m\u00e9r\u0151vel kell megm\u00e9rni. A kib\u0151v\u00edtett delta-kalibr\u00e1l\u00e1s futtat\u00e1sa el\u0151tt le kell futtatni az alap delta-kalibr\u00e1l\u00e1st (a DELTA_CALIBRATE paranccsal) \u00e9s el kell menteni az eredm\u00e9nyeket (a SAVE_CONFIG paranccsal). Gy\u0151z\u0151dj meg r\u00f3la, hogy a nyomtat\u00f3 konfigur\u00e1ci\u00f3j\u00e1ban \u00e9s hardver\u00e9ben nem t\u00f6rt\u00e9nt semmilyen jelent\u0151s v\u00e1ltoz\u00e1s az alap delta-kalibr\u00e1l\u00e1s legut\u00f3bbi v\u00e9grehajt\u00e1sa \u00f3ta (ha nem biztos benne, futtassa le \u00fajra az alap delta-kalibr\u00e1l\u00e1s parancsot, bele\u00e9rtve a SAVE_CONFIG parancsot is, k\u00f6zvetlen\u00fcl az al\u00e1bb le\u00edrt tesztobjektum nyomtat\u00e1sa el\u0151tt.) Haszn\u00e1lj szeletel\u0151t a docs/prints/calibrate_size.stl f\u00e1jlb\u00f3l G-k\u00f3d gener\u00e1l\u00e1s\u00e1hoz. Szeletelje az objektumot lass\u00fa sebess\u00e9ggel (pl. 40mm/s). Ha lehets\u00e9ges, haszn\u00e1lj merev m\u0171anyagot (pl. PLA) a t\u00e1rgyhoz. A t\u00e1rgy \u00e1tm\u00e9r\u0151je 140 mm. Ha ez t\u00fal nagy a nyomtat\u00f3 sz\u00e1m\u00e1ra, akkor \u00e1t lehet m\u00e9retezni (de \u00fcgyelj arra, hogy mind az X, \u00e9s az Y tengelyt egyenletesen m\u00e9retezze). Ha a nyomtat\u00f3 jelent\u0151sen nagyobb nyomatokat t\u00e1mogat, akkor a t\u00e1rgy is megn\u00f6velhet\u0151. A nagyobb m\u00e9ret jav\u00edthatja a m\u00e9r\u00e9si pontoss\u00e1got, de a j\u00f3 tapad\u00e1s fontosabb, mint a nagyobb nyomtat\u00e1si m\u00e9ret. Nyomtasd ki a tesztobjektumot, \u00e9s v\u00e1rja meg, am\u00edg teljesen kih\u0171l. Az al\u00e1bb le\u00edrt parancsokat ugyanazokkal a nyomtat\u00f3be\u00e1ll\u00edt\u00e1sokkal kell futtatni, mint amelyekkel a kalibr\u00e1ci\u00f3s t\u00e1rgyat nyomtatta (ne futtassa a DELTA_CALIBRATE parancsot a nyomtat\u00e1s \u00e9s a m\u00e9r\u00e9s k\u00f6z\u00f6tt, vagy ne tegyen olyat, ami egy\u00e9bk\u00e9nt megv\u00e1ltoztatn\u00e1 a nyomtat\u00f3 konfigur\u00e1ci\u00f3j\u00e1t). Ha lehets\u00e9ges, az al\u00e1bbiakban le\u00edrt m\u00e9r\u00e9seket akkor v\u00e9gezd el, amikor a t\u00e1rgy m\u00e9g mindig a nyomtat\u00f3 t\u00e1rgyasztalhoz van r\u00f6gz\u00edtve, de ne agg\u00f3djon, ha az alkatr\u00e9sz lev\u00e1lik a t\u00e1rgyasztalr\u00f3l. Csak pr\u00f3b\u00e1ld meg elker\u00fclni a t\u00e1rgy meghajl\u00e1s\u00e1t a m\u00e9r\u00e9sek elv\u00e9gz\u00e9sekor. Kezd a k\u00f6z\u00e9ps\u0151 oszlop \u00e9s az \"A\" felirat melletti oszlop k\u00f6z\u00f6tti t\u00e1vols\u00e1g m\u00e9r\u00e9s\u00e9vel (amelynek szint\u00e9n az \"A\" torony fel\u00e9 kell mutatnia). Ezut\u00e1n menjen az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1nyba, \u00e9s m\u00e9rd meg a k\u00f6z\u00e9ps\u0151 oszlop \u00e9s a t\u00f6bbi oszlop k\u00f6z\u00f6tti t\u00e1vols\u00e1gokat (a k\u00f6z\u00e9ps\u0151t\u0151l a \"C\" felirat\u00fa oszlopig terjed\u0151 t\u00e1vols\u00e1g, a k\u00f6z\u00e9ps\u0151t\u0151l a \"B\" felirat\u00fa oszlopig terjed\u0151 t\u00e1vols\u00e1g stb.). Add meg ezeket a param\u00e9tereket a Klipperbe lebeg\u0151pontos sz\u00e1mok vessz\u0151vel elv\u00e1lasztott list\u00e1j\u00e1val: DELTA_ANALYZE CENTER_DISTS=<a_dist>,<far_c_dist>,<b_dist>,<far_a_dist>,<c_dist>,<far_b_dist> Az \u00e9rt\u00e9keket sz\u00f3k\u00f6z\u00f6k n\u00e9lk\u00fcl add meg. Ezut\u00e1n m\u00e9rd meg a t\u00e1vols\u00e1got az \"A\" oszlop \u00e9s a \"C\" c\u00edmk\u00e9vel szemben l\u00e9v\u0151 oszlop k\u00f6z\u00f6tt. Ezut\u00e1n menj\u00fcnk az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1nyba, \u00e9s m\u00e9rj\u00fck meg a t\u00e1vols\u00e1got a \"C\" oszlop \u00e9s a \"B\" oszlop k\u00f6z\u00f6tt, majd a \"B\" oszlop \u00e9s az \"A\" oszlop k\u00f6z\u00f6tt, \u00e9s \u00edgy tov\u00e1bb. Add meg ezeket a param\u00e9tereket a Klippernek: DELTA_ANALYZE OUTER_DISTS=<a_to_far_c>,<far_c_to_b>,<b_to_far_a>,<far_a_to_c>,<c_to_far_b>,<far_b_to_a> Ezen a ponton nyugodtan leveheti a t\u00e1rgyat a t\u00e1rgyasztalr\u00f3l. A v\u00e9gs\u0151 m\u00e9r\u00e9sek magukra az oszlopokra vonatkoznak. M\u00e9rd meg a k\u00f6z\u00e9ps\u0151 oszlop m\u00e9ret\u00e9t az \"A\" k\u00fcll\u0151k ment\u00e9n, majd a \"B\" k\u00fcll\u0151k ment\u00e9n, v\u00e9g\u00fcl a \"C\" k\u00fcll\u0151k ment\u00e9n. Add meg \u0151ket a Klippernek: DELTA_ANALYZE CENTER_PILLAR_WIDTHS=<a>,<b>,<c> A v\u00e9gs\u0151 m\u00e9r\u00e9sek a k\u00fcls\u0151 k\u00fcll\u0151kr\u0151l sz\u00f3lnak. Kezdj\u00fck azzal, hogy megm\u00e9rj\u00fck az \"A\" k\u00fcll\u0151 t\u00e1vols\u00e1g\u00e1t az \"A\" k\u00fcll\u0151t\u0151l a \"C\" k\u00fcll\u0151vel szemben l\u00e9v\u0151 k\u00fcll\u0151ig tart\u00f3 vonal ment\u00e9n. Ezut\u00e1n az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1nyban m\u00e9rj\u00fck meg a t\u00f6bbi k\u00fcls\u0151 oszlopot (a \"C\" k\u00fcll\u0151vel szemben l\u00e9v\u0151 oszlop a \"B\" k\u00fcll\u0151vel szembeni vonal ment\u00e9n, a \"B\" k\u00fcll\u0151 a \"B\" k\u00fcll\u0151vel szembeni vonal ment\u00e9n az \"A\" k\u00fcll\u0151vel szemben l\u00e9v\u0151 oszlopig stb.). \u00c9s add meg \u0151ket a Klippernek: DELTA_ANALYZE OUTER_PILLAR_WIDTHS=<a>,<far_c>,<b>,<far_a>,<c>,<far_b> Ha az objektumot kisebb vagy nagyobb m\u00e9retre m\u00e9retezt\u00e9k, akkor add meg az objektum szeletel\u00e9sekor haszn\u00e1lt m\u00e9retez\u00e9si t\u00e9nyez\u0151t: DELTA_ANALYZE SCALE=1.0 (A 2,0-\u00e1s m\u00e9retar\u00e1ny azt jelenti, hogy az objektum k\u00e9tszer akkora, mint az eredeti m\u00e9rete, 0,5 pedig az eredeti m\u00e9ret fele.) V\u00e9gezd el v\u00e9g\u00fcl a tov\u00e1bbfejlesztett delta-kalibr\u00e1l\u00e1st a k\u00f6vetkez\u0151 futtat\u00e1s\u00e1val: DELTA_ANALYZE CALIBRATE=extended Ez a parancs t\u00f6bb percig is eltarthat. A parancs befejez\u00e9se ut\u00e1n kisz\u00e1m\u00edtja a friss\u00edtett delta param\u00e9tereket (delta sug\u00e1r, toronysz\u00f6gek, v\u00e9g\u00e1ll\u00e1sok \u00e9s karok hossza). A SAVE_CONFIG paranccsal mentsd el \u00e9s alkalmazd a be\u00e1ll\u00edt\u00e1sokat: SAVE_CONFIG A SAVE_CONFIG parancs mind a friss\u00edtett delta param\u00e9tereket, mind a t\u00e1vols\u00e1gm\u00e9r\u00e9sekb\u0151l sz\u00e1rmaz\u00f3 inform\u00e1ci\u00f3kat elmenti. A j\u00f6v\u0151beni DELTA_CALIBRATE parancsok ezeket a t\u00e1vols\u00e1ginform\u00e1ci\u00f3kat is felhaszn\u00e1lj\u00e1k. A SAVE_CONFIG parancs futtat\u00e1sa ut\u00e1n ne pr\u00f3b\u00e1ld meg \u00fajra megadni a nyers t\u00e1vols\u00e1gm\u00e9r\u00e9seket, mivel ez a parancs megv\u00e1ltoztatja a nyomtat\u00f3 konfigur\u00e1ci\u00f3j\u00e1t, \u00e9s a nyers m\u00e9r\u00e9sek m\u00e1r nem \u00e9rv\u00e9nyesek. Tov\u00e1bbi megjegyz\u00e9sek \u00b6 Ha a delta nyomtat\u00f3 j\u00f3 m\u00e9retpontoss\u00e1ggal rendelkezik, akkor a k\u00e9t oszlop k\u00f6z\u00f6tti t\u00e1vols\u00e1gnak k\u00f6r\u00fclbel\u00fcl 74 mm-nek kell lennie, \u00e9s minden oszlop sz\u00e9less\u00e9g\u00e9nek k\u00f6r\u00fclbel\u00fcl 9 mm-nek kell lennie. (Pontosabban, a c\u00e9l az, hogy a k\u00e9t oszlop k\u00f6z\u00f6tti t\u00e1vols\u00e1g m\u00ednusz az egyik oszlop sz\u00e9less\u00e9ge pontosan 65 mm legyen.) Ha az alkatr\u00e9szben m\u00e9retpontatlans\u00e1g van, akkor a DELTA_ANALYZE rutin \u00faj delta param\u00e9tereket sz\u00e1mol ki a t\u00e1vols\u00e1gm\u00e9r\u00e9sek \u00e9s a legut\u00f3bbi DELTA_CALIBRATE parancsb\u00f3l sz\u00e1rmaz\u00f3 kor\u00e1bbi magass\u00e1gm\u00e9r\u00e9sek felhaszn\u00e1l\u00e1s\u00e1val. A DELTA_ANALYZE meglep\u0151 delta param\u00e9tereket eredm\u00e9nyezhet. P\u00e9ld\u00e1ul olyan karhossz\u00fas\u00e1gokat javasolhat, amelyek nem egyeznek a nyomtat\u00f3 t\u00e9nyleges karhossz\u00fas\u00e1g\u00e1val. Ennek ellen\u00e9re a tesztek azt mutatt\u00e1k, hogy a DELTA_ANALYZE gyakran jobb eredm\u00e9nyeket ad. \u00dagy v\u00e9lj\u00fck, hogy a kisz\u00e1m\u00edtott delta param\u00e9terek k\u00e9pesek figyelembe venni a hardver m\u00e1shol el\u0151fordul\u00f3 kisebb hib\u00e1it. P\u00e9ld\u00e1ul a karhossz kis elt\u00e9r\u00e9sei az effektor d\u0151l\u00e9s\u00e9t eredm\u00e9nyezhetik, \u00e9s ennek a d\u0151l\u00e9snek egy r\u00e9sze a karhossz param\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1val figyelembe vehet\u0151. T\u00e1rgyasztal h\u00e1l\u00f3 haszn\u00e1lata a Delt\u00e1n \u00b6 Lehet\u0151s\u00e9g van t\u00e1rgyasztal h\u00e1l\u00f3 haszn\u00e1lat\u00e1ra egy delta eset\u00e9ben. Fontos azonban, hogy j\u00f3 deltakalibr\u00e1ci\u00f3t \u00e9rj el, miel\u0151tt enged\u00e9lyezn\u00e9d a t\u00e1rgyasztal h\u00e1l\u00f3t. A bed mesh futtat\u00e1sa rossz delta-kalibr\u00e1ci\u00f3val zavaros \u00e9s rossz eredm\u00e9nyeket fog eredm\u00e9nyezni. Vedd figyelembe, hogy a delta-kalibr\u00e1l\u00e1s v\u00e9grehajt\u00e1sa \u00e9rv\u00e9nytelen\u00edti a kor\u00e1bban kapott t\u00e1rgyasztal h\u00e1l\u00f3t. Az \u00faj delta-kalibr\u00e1l\u00e1s elv\u00e9gz\u00e9se ut\u00e1n felt\u00e9tlen\u00fcl futtassa \u00fajra a BED_MESH_CALIBRATE programot.","title":"Delta kalibr\u00e1l\u00e1s"},{"location":"Delta_Calibrate.html#delta-kalibralas","text":"Ez a dokumentum a Klipper \"delta\" st\u00edlus\u00fa nyomtat\u00f3k automatikus kalibr\u00e1ci\u00f3s rendszer\u00e9t \u00edrja le. A deltakalibr\u00e1l\u00e1s mag\u00e1ban foglalja a torony v\u00e9g\u00e1ll\u00e1s\u00e1nak, a torony sz\u00f6g\u00e9nek, a deltasug\u00e1rnak \u00e9s a deltakarok hossz\u00e1nak meghat\u00e1roz\u00e1s\u00e1t. Ezek a be\u00e1ll\u00edt\u00e1sok szab\u00e1lyozz\u00e1k a nyomtat\u00f3 mozg\u00e1s\u00e1t a delta nyomtat\u00f3n\u00e1l. E param\u00e9terek mindegyike nem nyilv\u00e1nval\u00f3 \u00e9s nem line\u00e1ris hat\u00e1ssal b\u00edr, \u00e9s manu\u00e1lisan neh\u00e9z kalibr\u00e1lni \u0151ket. Ezzel szemben a szoftver kalibr\u00e1ci\u00f3s k\u00f3dja n\u00e9h\u00e1ny perc r\u00e1ford\u00edt\u00e1ssal kiv\u00e1l\u00f3 eredm\u00e9nyt adhat. Nincs sz\u00fcks\u00e9g speci\u00e1lis szintez\u0151 hardverre. A delta-kalibr\u00e1l\u00e1s v\u00e9gs\u0151 soron a torony v\u00e9g\u00e1ll\u00e1skapcsol\u00f3inak pontoss\u00e1g\u00e1t\u00f3l f\u00fcgg. Ha valaki Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3kat haszn\u00e1l, akkor fontolja meg a v\u00e9g\u00e1ll\u00e1si f\u00e1zis \u00e9rz\u00e9kel\u00e9s enged\u00e9lyez\u00e9s\u00e9t, hogy jav\u00edtsa a kapcsol\u00f3k pontoss\u00e1g\u00e1t.","title":"Delta kalibr\u00e1l\u00e1s"},{"location":"Delta_Calibrate.html#automatikus-vagy-kezi-szintezes","text":"A Klipper t\u00e1mogatja a delta param\u00e9terek kalibr\u00e1l\u00e1s\u00e1t k\u00e9zi szintez\u00e9ssel vagy automatikus Z-szond\u00e1val. Sz\u00e1mos delta nyomtat\u00f3 k\u00e9szlethez automatikus Z-szond\u00e1k tartoznak, amelyek nem el\u00e9g pontosak (k\u00fcl\u00f6n\u00f6sen a karok hossz\u00e1nak kis k\u00fcl\u00f6nbs\u00e9gei okozhatnak effektor d\u0151l\u00e9st, ami elferd\u00edtheti az automatikus szond\u00e1t). Ha automatikus szond\u00e1t haszn\u00e1l, akkor el\u0151sz\u00f6r kalibr\u00e1lja a szond\u00e1t , majd ellen\u0151rizd a szonda hely\u00e9nek torz\u00edt\u00e1s\u00e1t . Ha az automatikus szonda torz\u00edt\u00e1sa t\u00f6bb mint 25 mikron (0.025mm), akkor helyette haszn\u00e1lj k\u00e9zi szintez\u00e9st. A k\u00e9zi szintez\u00e9s csak n\u00e9h\u00e1ny percet vesz ig\u00e9nybe, \u00e9s kik\u00fcsz\u00f6b\u00f6li a szonda \u00e1ltal okozott hib\u00e1t. Ha olyan szond\u00e1t haszn\u00e1l, amely a f\u0171t\u0151berendez\u00e9s oldal\u00e1ra van szerelve (azaz X vagy Y eltol\u00e1ssal rendelkezik), akkor vedd figyelembe, hogy a delta-kalibr\u00e1l\u00e1s v\u00e9grehajt\u00e1sa \u00e9rv\u00e9nytelen\u00edti a szonda kalibr\u00e1l\u00e1s\u00e1nak eredm\u00e9nyeit. Az ilyen t\u00edpus\u00fa szond\u00e1k ritk\u00e1n alkalmasak a delta haszn\u00e1lat\u00e1ra (mivel a kisebb effektor d\u0151l\u00e9s a szonda hely\u00e9nek torz\u00edt\u00e1s\u00e1t eredm\u00e9nyezi). Ha m\u00e9gis haszn\u00e1lod a szond\u00e1t, akkor a delta-kalibr\u00e1l\u00e1s ut\u00e1n mindenk\u00e9ppen v\u00e9gezd el \u00fajra a szonda kalibr\u00e1l\u00e1s\u00e1t.","title":"Automatikus vagy k\u00e9zi szintez\u00e9s"},{"location":"Delta_Calibrate.html#alapveto-delta-kalibralas","text":"A Klipper rendelkezik egy DELTA_CALIBRATE paranccsal, amely alapvet\u0151 delta-kalibr\u00e1l\u00e1st v\u00e9gezhet. Ez a parancs a t\u00e1rgyasztal h\u00e9t k\u00fcl\u00f6nb\u00f6z\u0151 pontj\u00e1t vizsg\u00e1lja, \u00e9s \u00faj \u00e9rt\u00e9keket sz\u00e1mol ki a toronysz\u00f6gek, a toronyv\u00e9g\u00e1ll\u00e1sok \u00e9s a delta-sug\u00e1r sz\u00e1m\u00e1ra. A kalibr\u00e1l\u00e1s elv\u00e9gz\u00e9s\u00e9hez meg kell adni a kiindul\u00e1si delta param\u00e9tereket (karhossz, sug\u00e1r \u00e9s v\u00e9g\u00e1ll\u00e1sok), amelyeknek n\u00e9h\u00e1ny millim\u00e9teres pontoss\u00e1ggal kell rendelkezni\u00fck. A legt\u00f6bb delta nyomtat\u00f3 k\u00e9szlet biztos\u00edtja ezeket a param\u00e9tereket. Konfigur\u00e1ld a nyomtat\u00f3t ezekkel a kezdeti alapbe\u00e1ll\u00edt\u00e1sokkal, majd futtassa a DELTA_CALIBRATE parancsot az al\u00e1bbiakban le\u00edrtak szerint. Ha nem \u00e1llnak rendelkez\u00e9sre alap\u00e9rtelmezett \u00e9rt\u00e9kek, akkor keressen az interneten egy delta-kalibr\u00e1l\u00e1si \u00fatmutat\u00f3t, amely alapvet\u0151 kiindul\u00f3pontot adhat. A delta-kalibr\u00e1l\u00e1s sor\u00e1n el\u0151fordulhat, hogy a nyomtat\u00f3nak a t\u00e1rgyasztal s\u00edkja alatt kell szinteznie, amit egy\u00e9bk\u00e9nt a t\u00e1rgyasztal s\u00edkj\u00e1nak tekinthetn\u00e9nk. Jellemz\u0151en ezt a kalibr\u00e1l\u00e1s sor\u00e1n a konfigur\u00e1ci\u00f3 friss\u00edt\u00e9s\u00e9vel enged\u00e9lyezz\u00fck a minimum_z_position=-5 \u00e9rt\u00e9kkel. (A kalibr\u00e1l\u00e1s befejez\u00e9se ut\u00e1n ez a be\u00e1ll\u00edt\u00e1s elt\u00e1vol\u00edthat\u00f3 a konfigur\u00e1ci\u00f3b\u00f3l.) A szintez\u00e9st k\u00e9tf\u00e9lek\u00e9ppen lehet elv\u00e9gezni: k\u00e9zi szintez\u00e9s ( DELTA_CALIBRATE METHOD=manual ) \u00e9s automatikus szintez\u00e9s ( DELTA_CALIBRATE ). A k\u00e9zi szintez\u00e9si m\u00f3dszer a fejet a t\u00e1rgyasztal k\u00f6zel\u00e9be mozgatja, majd megv\u00e1rja, hogy a felhaszn\u00e1l\u00f3 k\u00f6vesse a \"a pap\u00edrteszt\" pontban le\u00edrt l\u00e9p\u00e9seket, hogy meghat\u00e1rozza a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tti t\u00e9nyleges t\u00e1vols\u00e1got az adott helyen. Az alapvet\u0151 m\u00e9r\u00e9s elv\u00e9gz\u00e9s\u00e9hez gy\u0151z\u0151dj meg arr\u00f3l, hogy a konfigur\u00e1ci\u00f3ban van-e defini\u00e1lva egy [delta_calibrate] szakasz, majd futtassa az eszk\u00f6zt: G28 DELTA_CALIBRATE METHOD=manual A h\u00e9t pont szintez\u00e9se ut\u00e1n \u00faj delta param\u00e9terek ker\u00fclnek kisz\u00e1m\u00edt\u00e1sra. Mentsd el \u00e9s alkalmazd ezeket a param\u00e9tereket a k\u00f6vetkez\u0151t futtatva: SAVE_CONFIG Az alapkalibr\u00e1ci\u00f3nak olyan delta param\u00e9tereket kell biztos\u00edtania, amelyek el\u00e9g pontosak az alapvet\u0151 nyomtat\u00e1shoz. Ha ez egy \u00faj nyomtat\u00f3, ez egy j\u00f3 alkalom n\u00e9h\u00e1ny alapvet\u0151 objektum nyomtat\u00e1s\u00e1ra \u00e9s az \u00e1ltal\u00e1nos m\u0171k\u00f6d\u00e9s ellen\u0151rz\u00e9s\u00e9re.","title":"Alapvet\u0151 delta kalibr\u00e1l\u00e1s"},{"location":"Delta_Calibrate.html#tovabbfejlesztett-delta-kalibralas","text":"Az alap delta-kalibr\u00e1l\u00e1s \u00e1ltal\u00e1ban j\u00f3 munk\u00e1t v\u00e9gez a delta param\u00e9terek kisz\u00e1m\u00edt\u00e1s\u00e1ban, hogy a f\u00fav\u00f3ka a megfelel\u0151 t\u00e1vols\u00e1gra legyen a t\u00e1rgyasztalt\u00f3l. Nem pr\u00f3b\u00e1lja azonban kalibr\u00e1lni az X \u00e9s Y dimenzi\u00f3 pontoss\u00e1g\u00e1t. A m\u00e9retpontoss\u00e1g ellen\u0151rz\u00e9s\u00e9re \u00e9rdemes egy kib\u0151v\u00edtett delta-kalibr\u00e1ci\u00f3t elv\u00e9gezni. Ehhez a kalibr\u00e1l\u00e1si elj\u00e1r\u00e1shoz ki kell nyomtatni egy tesztobjektumot, \u00e9s a tesztobjektum egyes r\u00e9szeit digit\u00e1lis tol\u00f3m\u00e9r\u0151vel kell megm\u00e9rni. A kib\u0151v\u00edtett delta-kalibr\u00e1l\u00e1s futtat\u00e1sa el\u0151tt le kell futtatni az alap delta-kalibr\u00e1l\u00e1st (a DELTA_CALIBRATE paranccsal) \u00e9s el kell menteni az eredm\u00e9nyeket (a SAVE_CONFIG paranccsal). Gy\u0151z\u0151dj meg r\u00f3la, hogy a nyomtat\u00f3 konfigur\u00e1ci\u00f3j\u00e1ban \u00e9s hardver\u00e9ben nem t\u00f6rt\u00e9nt semmilyen jelent\u0151s v\u00e1ltoz\u00e1s az alap delta-kalibr\u00e1l\u00e1s legut\u00f3bbi v\u00e9grehajt\u00e1sa \u00f3ta (ha nem biztos benne, futtassa le \u00fajra az alap delta-kalibr\u00e1l\u00e1s parancsot, bele\u00e9rtve a SAVE_CONFIG parancsot is, k\u00f6zvetlen\u00fcl az al\u00e1bb le\u00edrt tesztobjektum nyomtat\u00e1sa el\u0151tt.) Haszn\u00e1lj szeletel\u0151t a docs/prints/calibrate_size.stl f\u00e1jlb\u00f3l G-k\u00f3d gener\u00e1l\u00e1s\u00e1hoz. Szeletelje az objektumot lass\u00fa sebess\u00e9ggel (pl. 40mm/s). Ha lehets\u00e9ges, haszn\u00e1lj merev m\u0171anyagot (pl. PLA) a t\u00e1rgyhoz. A t\u00e1rgy \u00e1tm\u00e9r\u0151je 140 mm. Ha ez t\u00fal nagy a nyomtat\u00f3 sz\u00e1m\u00e1ra, akkor \u00e1t lehet m\u00e9retezni (de \u00fcgyelj arra, hogy mind az X, \u00e9s az Y tengelyt egyenletesen m\u00e9retezze). Ha a nyomtat\u00f3 jelent\u0151sen nagyobb nyomatokat t\u00e1mogat, akkor a t\u00e1rgy is megn\u00f6velhet\u0151. A nagyobb m\u00e9ret jav\u00edthatja a m\u00e9r\u00e9si pontoss\u00e1got, de a j\u00f3 tapad\u00e1s fontosabb, mint a nagyobb nyomtat\u00e1si m\u00e9ret. Nyomtasd ki a tesztobjektumot, \u00e9s v\u00e1rja meg, am\u00edg teljesen kih\u0171l. Az al\u00e1bb le\u00edrt parancsokat ugyanazokkal a nyomtat\u00f3be\u00e1ll\u00edt\u00e1sokkal kell futtatni, mint amelyekkel a kalibr\u00e1ci\u00f3s t\u00e1rgyat nyomtatta (ne futtassa a DELTA_CALIBRATE parancsot a nyomtat\u00e1s \u00e9s a m\u00e9r\u00e9s k\u00f6z\u00f6tt, vagy ne tegyen olyat, ami egy\u00e9bk\u00e9nt megv\u00e1ltoztatn\u00e1 a nyomtat\u00f3 konfigur\u00e1ci\u00f3j\u00e1t). Ha lehets\u00e9ges, az al\u00e1bbiakban le\u00edrt m\u00e9r\u00e9seket akkor v\u00e9gezd el, amikor a t\u00e1rgy m\u00e9g mindig a nyomtat\u00f3 t\u00e1rgyasztalhoz van r\u00f6gz\u00edtve, de ne agg\u00f3djon, ha az alkatr\u00e9sz lev\u00e1lik a t\u00e1rgyasztalr\u00f3l. Csak pr\u00f3b\u00e1ld meg elker\u00fclni a t\u00e1rgy meghajl\u00e1s\u00e1t a m\u00e9r\u00e9sek elv\u00e9gz\u00e9sekor. Kezd a k\u00f6z\u00e9ps\u0151 oszlop \u00e9s az \"A\" felirat melletti oszlop k\u00f6z\u00f6tti t\u00e1vols\u00e1g m\u00e9r\u00e9s\u00e9vel (amelynek szint\u00e9n az \"A\" torony fel\u00e9 kell mutatnia). Ezut\u00e1n menjen az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1nyba, \u00e9s m\u00e9rd meg a k\u00f6z\u00e9ps\u0151 oszlop \u00e9s a t\u00f6bbi oszlop k\u00f6z\u00f6tti t\u00e1vols\u00e1gokat (a k\u00f6z\u00e9ps\u0151t\u0151l a \"C\" felirat\u00fa oszlopig terjed\u0151 t\u00e1vols\u00e1g, a k\u00f6z\u00e9ps\u0151t\u0151l a \"B\" felirat\u00fa oszlopig terjed\u0151 t\u00e1vols\u00e1g stb.). Add meg ezeket a param\u00e9tereket a Klipperbe lebeg\u0151pontos sz\u00e1mok vessz\u0151vel elv\u00e1lasztott list\u00e1j\u00e1val: DELTA_ANALYZE CENTER_DISTS=<a_dist>,<far_c_dist>,<b_dist>,<far_a_dist>,<c_dist>,<far_b_dist> Az \u00e9rt\u00e9keket sz\u00f3k\u00f6z\u00f6k n\u00e9lk\u00fcl add meg. Ezut\u00e1n m\u00e9rd meg a t\u00e1vols\u00e1got az \"A\" oszlop \u00e9s a \"C\" c\u00edmk\u00e9vel szemben l\u00e9v\u0151 oszlop k\u00f6z\u00f6tt. Ezut\u00e1n menj\u00fcnk az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1nyba, \u00e9s m\u00e9rj\u00fck meg a t\u00e1vols\u00e1got a \"C\" oszlop \u00e9s a \"B\" oszlop k\u00f6z\u00f6tt, majd a \"B\" oszlop \u00e9s az \"A\" oszlop k\u00f6z\u00f6tt, \u00e9s \u00edgy tov\u00e1bb. Add meg ezeket a param\u00e9tereket a Klippernek: DELTA_ANALYZE OUTER_DISTS=<a_to_far_c>,<far_c_to_b>,<b_to_far_a>,<far_a_to_c>,<c_to_far_b>,<far_b_to_a> Ezen a ponton nyugodtan leveheti a t\u00e1rgyat a t\u00e1rgyasztalr\u00f3l. A v\u00e9gs\u0151 m\u00e9r\u00e9sek magukra az oszlopokra vonatkoznak. M\u00e9rd meg a k\u00f6z\u00e9ps\u0151 oszlop m\u00e9ret\u00e9t az \"A\" k\u00fcll\u0151k ment\u00e9n, majd a \"B\" k\u00fcll\u0151k ment\u00e9n, v\u00e9g\u00fcl a \"C\" k\u00fcll\u0151k ment\u00e9n. Add meg \u0151ket a Klippernek: DELTA_ANALYZE CENTER_PILLAR_WIDTHS=<a>,<b>,<c> A v\u00e9gs\u0151 m\u00e9r\u00e9sek a k\u00fcls\u0151 k\u00fcll\u0151kr\u0151l sz\u00f3lnak. Kezdj\u00fck azzal, hogy megm\u00e9rj\u00fck az \"A\" k\u00fcll\u0151 t\u00e1vols\u00e1g\u00e1t az \"A\" k\u00fcll\u0151t\u0151l a \"C\" k\u00fcll\u0151vel szemben l\u00e9v\u0151 k\u00fcll\u0151ig tart\u00f3 vonal ment\u00e9n. Ezut\u00e1n az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1nyban m\u00e9rj\u00fck meg a t\u00f6bbi k\u00fcls\u0151 oszlopot (a \"C\" k\u00fcll\u0151vel szemben l\u00e9v\u0151 oszlop a \"B\" k\u00fcll\u0151vel szembeni vonal ment\u00e9n, a \"B\" k\u00fcll\u0151 a \"B\" k\u00fcll\u0151vel szembeni vonal ment\u00e9n az \"A\" k\u00fcll\u0151vel szemben l\u00e9v\u0151 oszlopig stb.). \u00c9s add meg \u0151ket a Klippernek: DELTA_ANALYZE OUTER_PILLAR_WIDTHS=<a>,<far_c>,<b>,<far_a>,<c>,<far_b> Ha az objektumot kisebb vagy nagyobb m\u00e9retre m\u00e9retezt\u00e9k, akkor add meg az objektum szeletel\u00e9sekor haszn\u00e1lt m\u00e9retez\u00e9si t\u00e9nyez\u0151t: DELTA_ANALYZE SCALE=1.0 (A 2,0-\u00e1s m\u00e9retar\u00e1ny azt jelenti, hogy az objektum k\u00e9tszer akkora, mint az eredeti m\u00e9rete, 0,5 pedig az eredeti m\u00e9ret fele.) V\u00e9gezd el v\u00e9g\u00fcl a tov\u00e1bbfejlesztett delta-kalibr\u00e1l\u00e1st a k\u00f6vetkez\u0151 futtat\u00e1s\u00e1val: DELTA_ANALYZE CALIBRATE=extended Ez a parancs t\u00f6bb percig is eltarthat. A parancs befejez\u00e9se ut\u00e1n kisz\u00e1m\u00edtja a friss\u00edtett delta param\u00e9tereket (delta sug\u00e1r, toronysz\u00f6gek, v\u00e9g\u00e1ll\u00e1sok \u00e9s karok hossza). A SAVE_CONFIG paranccsal mentsd el \u00e9s alkalmazd a be\u00e1ll\u00edt\u00e1sokat: SAVE_CONFIG A SAVE_CONFIG parancs mind a friss\u00edtett delta param\u00e9tereket, mind a t\u00e1vols\u00e1gm\u00e9r\u00e9sekb\u0151l sz\u00e1rmaz\u00f3 inform\u00e1ci\u00f3kat elmenti. A j\u00f6v\u0151beni DELTA_CALIBRATE parancsok ezeket a t\u00e1vols\u00e1ginform\u00e1ci\u00f3kat is felhaszn\u00e1lj\u00e1k. A SAVE_CONFIG parancs futtat\u00e1sa ut\u00e1n ne pr\u00f3b\u00e1ld meg \u00fajra megadni a nyers t\u00e1vols\u00e1gm\u00e9r\u00e9seket, mivel ez a parancs megv\u00e1ltoztatja a nyomtat\u00f3 konfigur\u00e1ci\u00f3j\u00e1t, \u00e9s a nyers m\u00e9r\u00e9sek m\u00e1r nem \u00e9rv\u00e9nyesek.","title":"Tov\u00e1bbfejlesztett delta kalibr\u00e1l\u00e1s"},{"location":"Delta_Calibrate.html#tovabbi-megjegyzesek","text":"Ha a delta nyomtat\u00f3 j\u00f3 m\u00e9retpontoss\u00e1ggal rendelkezik, akkor a k\u00e9t oszlop k\u00f6z\u00f6tti t\u00e1vols\u00e1gnak k\u00f6r\u00fclbel\u00fcl 74 mm-nek kell lennie, \u00e9s minden oszlop sz\u00e9less\u00e9g\u00e9nek k\u00f6r\u00fclbel\u00fcl 9 mm-nek kell lennie. (Pontosabban, a c\u00e9l az, hogy a k\u00e9t oszlop k\u00f6z\u00f6tti t\u00e1vols\u00e1g m\u00ednusz az egyik oszlop sz\u00e9less\u00e9ge pontosan 65 mm legyen.) Ha az alkatr\u00e9szben m\u00e9retpontatlans\u00e1g van, akkor a DELTA_ANALYZE rutin \u00faj delta param\u00e9tereket sz\u00e1mol ki a t\u00e1vols\u00e1gm\u00e9r\u00e9sek \u00e9s a legut\u00f3bbi DELTA_CALIBRATE parancsb\u00f3l sz\u00e1rmaz\u00f3 kor\u00e1bbi magass\u00e1gm\u00e9r\u00e9sek felhaszn\u00e1l\u00e1s\u00e1val. A DELTA_ANALYZE meglep\u0151 delta param\u00e9tereket eredm\u00e9nyezhet. P\u00e9ld\u00e1ul olyan karhossz\u00fas\u00e1gokat javasolhat, amelyek nem egyeznek a nyomtat\u00f3 t\u00e9nyleges karhossz\u00fas\u00e1g\u00e1val. Ennek ellen\u00e9re a tesztek azt mutatt\u00e1k, hogy a DELTA_ANALYZE gyakran jobb eredm\u00e9nyeket ad. \u00dagy v\u00e9lj\u00fck, hogy a kisz\u00e1m\u00edtott delta param\u00e9terek k\u00e9pesek figyelembe venni a hardver m\u00e1shol el\u0151fordul\u00f3 kisebb hib\u00e1it. P\u00e9ld\u00e1ul a karhossz kis elt\u00e9r\u00e9sei az effektor d\u0151l\u00e9s\u00e9t eredm\u00e9nyezhetik, \u00e9s ennek a d\u0151l\u00e9snek egy r\u00e9sze a karhossz param\u00e9terek be\u00e1ll\u00edt\u00e1s\u00e1val figyelembe vehet\u0151.","title":"Tov\u00e1bbi megjegyz\u00e9sek"},{"location":"Delta_Calibrate.html#targyasztal-halo-hasznalata-a-deltan","text":"Lehet\u0151s\u00e9g van t\u00e1rgyasztal h\u00e1l\u00f3 haszn\u00e1lat\u00e1ra egy delta eset\u00e9ben. Fontos azonban, hogy j\u00f3 deltakalibr\u00e1ci\u00f3t \u00e9rj el, miel\u0151tt enged\u00e9lyezn\u00e9d a t\u00e1rgyasztal h\u00e1l\u00f3t. A bed mesh futtat\u00e1sa rossz delta-kalibr\u00e1ci\u00f3val zavaros \u00e9s rossz eredm\u00e9nyeket fog eredm\u00e9nyezni. Vedd figyelembe, hogy a delta-kalibr\u00e1l\u00e1s v\u00e9grehajt\u00e1sa \u00e9rv\u00e9nytelen\u00edti a kor\u00e1bban kapott t\u00e1rgyasztal h\u00e1l\u00f3t. Az \u00faj delta-kalibr\u00e1l\u00e1s elv\u00e9gz\u00e9se ut\u00e1n felt\u00e9tlen\u00fcl futtassa \u00fajra a BED_MESH_CALIBRATE programot.","title":"T\u00e1rgyasztal h\u00e1l\u00f3 haszn\u00e1lata a Delt\u00e1n"},{"location":"Endstop_Phase.html","text":"V\u00e9g\u00e1ll\u00e1s f\u00e1zis \u00b6 Ez a dokumentum a Klipper l\u00e9ptet\u0151f\u00e1zis-be\u00e1ll\u00edtott v\u00e9g\u00fctk\u00f6z\u0151 rendszer\u00e9t \u00edrja le. Ez a funkci\u00f3 jav\u00edthatja a hagyom\u00e1nyos v\u00e9g\u00e1ll\u00e1skapcsol\u00f3k pontoss\u00e1g\u00e1t. Ez a leghasznosabb olyan Trinamic l\u00e9ptet\u0151motor-illeszt\u0151program haszn\u00e1latakor, amely fut\u00e1sidej\u0171 konfigur\u00e1ci\u00f3val rendelkezik. Egy tipikus v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 pontoss\u00e1ga k\u00f6r\u00fclbel\u00fcl 100 mikron. (A tengely minden egyes ind\u00edt\u00e1sakor a kapcsol\u00f3 valamivel kor\u00e1bban vagy valamivel k\u00e9s\u0151bb l\u00e9phet m\u0171k\u00f6d\u00e9sbe). B\u00e1r ez viszonylag kis hiba, nem k\u00edv\u00e1nt nyomtatv\u00e1nyokat eredm\u00e9nyezhet. K\u00fcl\u00f6n\u00f6sen a t\u00e1rgy els\u0151 r\u00e9teg\u00e9nek nyomtat\u00e1sakor lehet \u00e9szrevehet\u0151 ez a poz\u00edci\u00f3elt\u00e9r\u00e9s. Ezzel szemben a tipikus l\u00e9ptet\u0151motorokkal l\u00e9nyegesen nagyobb pontoss\u00e1g \u00e9rhet\u0151 el. A l\u00e9ptet\u0151 f\u00e1zis\u00fa v\u00e9g\u00e1ll\u00e1s mechanizmus a l\u00e9ptet\u0151motorok pontoss\u00e1g\u00e1t haszn\u00e1lhatja a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3k pontoss\u00e1g\u00e1nak jav\u00edt\u00e1s\u00e1ra. A l\u00e9ptet\u0151motor egy sor f\u00e1zison kereszt\u00fcl ciklikusan mozog, am\u00edg n\u00e9gy \"teljes l\u00e9p\u00e9st\" nem teljes\u00edt. Teh\u00e1t egy 16 mikrol\u00e9p\u00e9st haszn\u00e1l\u00f3 l\u00e9ptet\u0151motornak 64 f\u00e1zisa lenne, \u00e9s pozit\u00edv ir\u00e1nyba t\u00f6rt\u00e9n\u0151 mozg\u00e1skor a f\u00e1zisok k\u00f6z\u00f6tt ciklikusan haladna: 0, 1, 2, ... 61, 62, 63, 0, 1, 2, stb. L\u00e9nyeges, hogy amikor a l\u00e9ptet\u0151motor egy adott poz\u00edci\u00f3ban van a line\u00e1ris s\u00ednen, mindig ugyanabban a l\u00e9ptet\u0151f\u00e1zisban kell lennie. \u00cdgy amikor egy kocsi a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3t aktiv\u00e1lja, az adott kocsit vez\u00e9rl\u0151 l\u00e9ptet\u0151nek mindig ugyanabban a l\u00e9ptet\u0151motor f\u00e1zisban kell lennie. A Klipper v\u00e9g\u00e1ll\u00e1s f\u00e1zis rendszere a v\u00e9g\u00e1ll\u00e1s pontoss\u00e1g\u00e1nak jav\u00edt\u00e1sa \u00e9rdek\u00e9ben kombin\u00e1lja a l\u00e9ptet\u0151 f\u00e1zist a v\u00e9g\u00e1ll\u00e1s kiold\u00f3j\u00e1val. Ahhoz, hogy ezt a funkci\u00f3t haszn\u00e1lni lehessen, azonos\u00edtani kell a l\u00e9ptet\u0151motor f\u00e1zis\u00e1t. Ha a Trinamic TMC2130, TMC2208, TMC2224 vagy TMC2660 meghajt\u00f3kat fut\u00e1sidej\u0171 konfigur\u00e1ci\u00f3s m\u00f3dban haszn\u00e1lod (azaz nem \u00f6n\u00e1ll\u00f3 m\u00f3dban), akkor a Klipper le tudja k\u00e9rdezni a l\u00e9ptet\u0151motor f\u00e1zis\u00e1t a meghajt\u00f3b\u00f3l. (Ez a rendszer hagyom\u00e1nyos l\u00e9ptet\u0151 meghajt\u00f3kon is haszn\u00e1lhat\u00f3, ha megb\u00edzhat\u00f3an vissza lehet \u00e1ll\u00edtani a l\u00e9ptet\u0151 meghajt\u00f3kat - r\u00e9szleteket l\u00e1sd al\u00e1bb.) V\u00e9g\u00e1ll\u00e1si f\u00e1zisok kalibr\u00e1l\u00e1sa \u00b6 Ha Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3kat haszn\u00e1lunk fut\u00e1sidej\u0171 konfigur\u00e1ci\u00f3val, akkor az ENDSTOP_PHASE_CALIBRATE paranccsal kalibr\u00e1lhatjuk a v\u00e9g\u00e1ll\u00e1si f\u00e1zisokat. Kezd a k\u00f6vetkez\u0151k hozz\u00e1ad\u00e1s\u00e1val a konfigur\u00e1ci\u00f3s f\u00e1jlhoz: [endstop_phase] Ezut\u00e1n ind\u00edtsa \u00fajra a nyomtat\u00f3t, \u00e9s futtasson egy G28 parancsot, amelyet egy ENDSTOP_PHASE_CALIBRATE parancs k\u00f6vet. Ezut\u00e1n mozgasd a nyomtat\u00f3fejet egy \u00faj helyre, \u00e9s futtassa \u00fajra a G28 parancsot. Pr\u00f3b\u00e1lja meg a nyomtat\u00f3fejet t\u00f6bb k\u00fcl\u00f6nb\u00f6z\u0151 helyre mozgatni, \u00e9s minden egyes poz\u00edci\u00f3b\u00f3l futtassa \u00fajra a G28 parancsot. Futtasson legal\u00e1bb \u00f6t G28 parancsot. A fentiek elv\u00e9gz\u00e9se ut\u00e1n a ENDSTOP_PHASE_CALIBRATE parancs gyakran ugyanazt (vagy k\u00f6zel ugyanazt) a f\u00e1zist fogja jelenteni a l\u00e9ptet\u0151 sz\u00e1m\u00e1ra. Ezt a f\u00e1zist el lehet menteni a konfigur\u00e1ci\u00f3s f\u00e1jlban, hogy a j\u00f6v\u0151ben minden G28 parancs ezt a f\u00e1zist haszn\u00e1lja. (\u00cdgy a j\u00f6v\u0151beni kezd\u0151pont k\u00e9r\u00e9si m\u0171veletek sor\u00e1n a Klipper ugyanazt a poz\u00edci\u00f3t fogja el\u00e9rni, m\u00e9g akkor is, ha a v\u00e9g\u00e1ll\u00e1s egy kicsit kor\u00e1bban vagy egy kicsit k\u00e9s\u0151bb l\u00e9p m\u0171k\u00f6d\u00e9sbe.) Egy adott l\u00e9ptet\u0151motor v\u00e9g\u00e1ll\u00e1si f\u00e1zis\u00e1nak elment\u00e9s\u00e9hez futtasson valami hasonl\u00f3t, mint a k\u00f6vetkez\u0151: ENDSTOP_PHASE_CALIBRATE STEPPER=stepper_z Futtassa a fenti l\u00e9p\u00e9seket az \u00f6sszes menteni k\u00edv\u00e1nt l\u00e9ptet\u0151re. \u00c1ltal\u00e1ban ezt a stepper_z-n\u00e9l haszn\u00e1ljuk cartesian \u00e9s corexy-nyomtat\u00f3khoz, illetve stepper_a, stepper_b \u00e9s stepper_c-hez delta nyomtat\u00f3khoz. V\u00e9g\u00fcl futtassa a k\u00f6vetkez\u0151t a konfigur\u00e1ci\u00f3s f\u00e1jl friss\u00edt\u00e9s\u00e9hez az adatokkal: SAVE_CONFIG Tov\u00e1bbi megjegyz\u00e9sek \u00b6 Ez a funkci\u00f3 a leghasznosabb a delta nyomtat\u00f3kon \u00e9s a cartesian/corexy nyomtat\u00f3k Z v\u00e9gpontj\u00e1n. A funkci\u00f3t a cartesian nyomtat\u00f3k XY v\u00e9g\u00e1ll\u00e1sain\u00e1l is lehet haszn\u00e1lni, de ez nem t\u00fal hasznos, mivel az X/Y v\u00e9g\u00e1ll\u00e1s poz\u00edci\u00f3j\u00e1nak kisebb hib\u00e1ja val\u00f3sz\u00edn\u0171leg nem befoly\u00e1solja a nyomtat\u00e1s min\u0151s\u00e9g\u00e9t. Nem \u00e9rv\u00e9nyes ezt a funkci\u00f3t a corexy nyomtat\u00f3k XY v\u00e9g\u00e1ll\u00e1sain\u00e1l haszn\u00e1lni (mivel az XY poz\u00edci\u00f3t nem egyetlen l\u00e9ptet\u0151 hat\u00e1rozza meg a corexy kinematik\u00e1n\u00e1l). Nem \u00e9rv\u00e9nyes ezt a funkci\u00f3t olyan nyomtat\u00f3kon haszn\u00e1lni, amelyek \"probe:z_virtual_endstop\" Z v\u00e9g\u00e1ll\u00e1st haszn\u00e1lnak (mivel a l\u00e9ptet\u0151f\u00e1zis csak akkor stabil, ha a v\u00e9g\u00e1ll\u00e1s egy s\u00edn statikus hely\u00e9n van). A v\u00e9g\u00e1ll\u00e1sf\u00e1zis kalibr\u00e1l\u00e1sa ut\u00e1n, ha a v\u00e9g\u00e1ll\u00e1st k\u00e9s\u0151bb elmozd\u00edtj\u00e1k vagy be\u00e1ll\u00edtj\u00e1k, akkor a v\u00e9g\u00e1ll\u00e1st \u00fajra kell kalibr\u00e1lni. T\u00e1vol\u00edtsa el a kalibr\u00e1l\u00e1si adatokat a konfigur\u00e1ci\u00f3s f\u00e1jlb\u00f3l, \u00e9s futtassa \u00fajra a fenti l\u00e9p\u00e9seket. A rendszer haszn\u00e1lat\u00e1hoz a v\u00e9g\u00e1ll\u00e1snak el\u00e9g pontosnak kell lennie ahhoz, hogy a l\u00e9ptet\u0151 poz\u00edci\u00f3j\u00e1t k\u00e9t \"teljes l\u00e9p\u00e9sen\" bel\u00fcl azonos\u00edtsa. \u00cdgy p\u00e9ld\u00e1ul, ha egy l\u00e9ptet\u0151 16 mikrol\u00e9p\u00e9st haszn\u00e1l 0,005 mm-es l\u00e9p\u00e9sk\u00f6zzel, akkor a v\u00e9g\u00e1ll\u00e1snak legal\u00e1bb 0,160 mm-es pontoss\u00e1ggal kell rendelkeznie. Ha a \"Endstop stepper_z incorrect phase\" t\u00edpus\u00fa hiba\u00fczeneteket kapunk, akkor ez egy nem kell\u0151en pontos v\u00e9g\u00e1ll\u00e1s miatt lehet. Ha az \u00fajrakalibr\u00e1l\u00e1s nem seg\u00edt, akkor tiltsa le az endstop f\u00e1zisbe\u00e1ll\u00edt\u00e1s\u00e1t a konfigur\u00e1ci\u00f3s f\u00e1jlb\u00f3l val\u00f3 elt\u00e1vol\u00edt\u00e1ssal. Ha valaki hagyom\u00e1nyos l\u00e9ptet\u0151 vez\u00e9rl\u00e9s\u0171 Z tengelyt haszn\u00e1l (mint egy cartesian vagy corexy nyomtat\u00f3n) hagyom\u00e1nyos t\u00e1rgyasztal kiegyenl\u00edt\u0151 csavarokkal egy\u00fctt, akkor az is lehets\u00e9ges, hogy ezt a rendszert \u00fagy haszn\u00e1lja, hogy minden egyes nyomtat\u00e1si r\u00e9teget egy \"teljes l\u00e9p\u00e9s\" hat\u00e1ron v\u00e9gezzen el. Ennek a funkci\u00f3nak az enged\u00e9lyez\u00e9s\u00e9hez gy\u0151z\u0151dj meg arr\u00f3l, hogy a G-k\u00f3d szeletel\u0151 olyan r\u00e9tegmagass\u00e1ggal van konfigur\u00e1lva, amely a \"teljes l\u00e9p\u00e9s\" t\u00f6bbsz\u00f6r\u00f6se, manu\u00e1lisan enged\u00e9lyezd az endstop_align_zero opci\u00f3t az endstop_phase config szakaszban (tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st ), majd szintezze \u00fajra a t\u00e1rgyasztal csavarjait. Ez a rendszer hagyom\u00e1nyos (nem Trinamic) l\u00e9ptet\u0151motor-meghajt\u00f3kkal is haszn\u00e1lhat\u00f3. Ehhez azonban gondoskodni kell arr\u00f3l, hogy a l\u00e9ptet\u0151motor-meghajt\u00f3k a mikrokontroller minden egyes resetel\u00e9sekor \u00fajrainduljanak. (Ha a kett\u0151 mindig egy\u00fctt van resetelve, akkor a Klipper a l\u00e9ptet\u0151 f\u00e1zis\u00e1t \u00fagy tudja meghat\u00e1rozni, hogy nyomon k\u00f6veti a l\u00e9ptet\u0151nek adott parancsok teljes l\u00e9p\u00e9ssz\u00e1m\u00e1t). Jelenleg ez csak akkor lehets\u00e9ges megb\u00edzhat\u00f3an, ha mind a mikrokontroller, mind a l\u00e9ptet\u0151motor-meghajt\u00f3k kiz\u00e1r\u00f3lag USB-r\u0151l kapnak \u00e1ramot, \u00e9s az USB-r\u0151l egy Raspberry Pi-n fut\u00f3 hostr\u00f3l kapjuk az \u00e1ramot. Ebben a helyzetben meg lehet adni egy MCU konfigur\u00e1ci\u00f3t a \"restart_method: rpi_usb\" - ez az opci\u00f3 gondoskodik arr\u00f3l, hogy a mikrokontrollert mindig USB t\u00e1pell\u00e1t\u00e1s-vissza\u00e1ll\u00edt\u00e1ssal \u00e1ll\u00edts\u00e1k vissza, ami gondoskodik arr\u00f3l, hogy a mikrokontroller \u00e9s a l\u00e9ptet\u0151motor-illeszt\u0151programok egy\u00fctt \u00e1lljanak vissza. Ha ezt a mechanizmust haszn\u00e1ljuk, akkor manu\u00e1lisan kell konfigur\u00e1lni a \"trigger_phase\" konfigur\u00e1ci\u00f3s szakaszokat (a r\u00e9szleteket l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st ).","title":"V\u00e9g\u00e1ll\u00e1s f\u00e1zis"},{"location":"Endstop_Phase.html#vegallas-fazis","text":"Ez a dokumentum a Klipper l\u00e9ptet\u0151f\u00e1zis-be\u00e1ll\u00edtott v\u00e9g\u00fctk\u00f6z\u0151 rendszer\u00e9t \u00edrja le. Ez a funkci\u00f3 jav\u00edthatja a hagyom\u00e1nyos v\u00e9g\u00e1ll\u00e1skapcsol\u00f3k pontoss\u00e1g\u00e1t. Ez a leghasznosabb olyan Trinamic l\u00e9ptet\u0151motor-illeszt\u0151program haszn\u00e1latakor, amely fut\u00e1sidej\u0171 konfigur\u00e1ci\u00f3val rendelkezik. Egy tipikus v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 pontoss\u00e1ga k\u00f6r\u00fclbel\u00fcl 100 mikron. (A tengely minden egyes ind\u00edt\u00e1sakor a kapcsol\u00f3 valamivel kor\u00e1bban vagy valamivel k\u00e9s\u0151bb l\u00e9phet m\u0171k\u00f6d\u00e9sbe). B\u00e1r ez viszonylag kis hiba, nem k\u00edv\u00e1nt nyomtatv\u00e1nyokat eredm\u00e9nyezhet. K\u00fcl\u00f6n\u00f6sen a t\u00e1rgy els\u0151 r\u00e9teg\u00e9nek nyomtat\u00e1sakor lehet \u00e9szrevehet\u0151 ez a poz\u00edci\u00f3elt\u00e9r\u00e9s. Ezzel szemben a tipikus l\u00e9ptet\u0151motorokkal l\u00e9nyegesen nagyobb pontoss\u00e1g \u00e9rhet\u0151 el. A l\u00e9ptet\u0151 f\u00e1zis\u00fa v\u00e9g\u00e1ll\u00e1s mechanizmus a l\u00e9ptet\u0151motorok pontoss\u00e1g\u00e1t haszn\u00e1lhatja a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3k pontoss\u00e1g\u00e1nak jav\u00edt\u00e1s\u00e1ra. A l\u00e9ptet\u0151motor egy sor f\u00e1zison kereszt\u00fcl ciklikusan mozog, am\u00edg n\u00e9gy \"teljes l\u00e9p\u00e9st\" nem teljes\u00edt. Teh\u00e1t egy 16 mikrol\u00e9p\u00e9st haszn\u00e1l\u00f3 l\u00e9ptet\u0151motornak 64 f\u00e1zisa lenne, \u00e9s pozit\u00edv ir\u00e1nyba t\u00f6rt\u00e9n\u0151 mozg\u00e1skor a f\u00e1zisok k\u00f6z\u00f6tt ciklikusan haladna: 0, 1, 2, ... 61, 62, 63, 0, 1, 2, stb. L\u00e9nyeges, hogy amikor a l\u00e9ptet\u0151motor egy adott poz\u00edci\u00f3ban van a line\u00e1ris s\u00ednen, mindig ugyanabban a l\u00e9ptet\u0151f\u00e1zisban kell lennie. \u00cdgy amikor egy kocsi a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3t aktiv\u00e1lja, az adott kocsit vez\u00e9rl\u0151 l\u00e9ptet\u0151nek mindig ugyanabban a l\u00e9ptet\u0151motor f\u00e1zisban kell lennie. A Klipper v\u00e9g\u00e1ll\u00e1s f\u00e1zis rendszere a v\u00e9g\u00e1ll\u00e1s pontoss\u00e1g\u00e1nak jav\u00edt\u00e1sa \u00e9rdek\u00e9ben kombin\u00e1lja a l\u00e9ptet\u0151 f\u00e1zist a v\u00e9g\u00e1ll\u00e1s kiold\u00f3j\u00e1val. Ahhoz, hogy ezt a funkci\u00f3t haszn\u00e1lni lehessen, azonos\u00edtani kell a l\u00e9ptet\u0151motor f\u00e1zis\u00e1t. Ha a Trinamic TMC2130, TMC2208, TMC2224 vagy TMC2660 meghajt\u00f3kat fut\u00e1sidej\u0171 konfigur\u00e1ci\u00f3s m\u00f3dban haszn\u00e1lod (azaz nem \u00f6n\u00e1ll\u00f3 m\u00f3dban), akkor a Klipper le tudja k\u00e9rdezni a l\u00e9ptet\u0151motor f\u00e1zis\u00e1t a meghajt\u00f3b\u00f3l. (Ez a rendszer hagyom\u00e1nyos l\u00e9ptet\u0151 meghajt\u00f3kon is haszn\u00e1lhat\u00f3, ha megb\u00edzhat\u00f3an vissza lehet \u00e1ll\u00edtani a l\u00e9ptet\u0151 meghajt\u00f3kat - r\u00e9szleteket l\u00e1sd al\u00e1bb.)","title":"V\u00e9g\u00e1ll\u00e1s f\u00e1zis"},{"location":"Endstop_Phase.html#vegallasi-fazisok-kalibralasa","text":"Ha Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3kat haszn\u00e1lunk fut\u00e1sidej\u0171 konfigur\u00e1ci\u00f3val, akkor az ENDSTOP_PHASE_CALIBRATE paranccsal kalibr\u00e1lhatjuk a v\u00e9g\u00e1ll\u00e1si f\u00e1zisokat. Kezd a k\u00f6vetkez\u0151k hozz\u00e1ad\u00e1s\u00e1val a konfigur\u00e1ci\u00f3s f\u00e1jlhoz: [endstop_phase] Ezut\u00e1n ind\u00edtsa \u00fajra a nyomtat\u00f3t, \u00e9s futtasson egy G28 parancsot, amelyet egy ENDSTOP_PHASE_CALIBRATE parancs k\u00f6vet. Ezut\u00e1n mozgasd a nyomtat\u00f3fejet egy \u00faj helyre, \u00e9s futtassa \u00fajra a G28 parancsot. Pr\u00f3b\u00e1lja meg a nyomtat\u00f3fejet t\u00f6bb k\u00fcl\u00f6nb\u00f6z\u0151 helyre mozgatni, \u00e9s minden egyes poz\u00edci\u00f3b\u00f3l futtassa \u00fajra a G28 parancsot. Futtasson legal\u00e1bb \u00f6t G28 parancsot. A fentiek elv\u00e9gz\u00e9se ut\u00e1n a ENDSTOP_PHASE_CALIBRATE parancs gyakran ugyanazt (vagy k\u00f6zel ugyanazt) a f\u00e1zist fogja jelenteni a l\u00e9ptet\u0151 sz\u00e1m\u00e1ra. Ezt a f\u00e1zist el lehet menteni a konfigur\u00e1ci\u00f3s f\u00e1jlban, hogy a j\u00f6v\u0151ben minden G28 parancs ezt a f\u00e1zist haszn\u00e1lja. (\u00cdgy a j\u00f6v\u0151beni kezd\u0151pont k\u00e9r\u00e9si m\u0171veletek sor\u00e1n a Klipper ugyanazt a poz\u00edci\u00f3t fogja el\u00e9rni, m\u00e9g akkor is, ha a v\u00e9g\u00e1ll\u00e1s egy kicsit kor\u00e1bban vagy egy kicsit k\u00e9s\u0151bb l\u00e9p m\u0171k\u00f6d\u00e9sbe.) Egy adott l\u00e9ptet\u0151motor v\u00e9g\u00e1ll\u00e1si f\u00e1zis\u00e1nak elment\u00e9s\u00e9hez futtasson valami hasonl\u00f3t, mint a k\u00f6vetkez\u0151: ENDSTOP_PHASE_CALIBRATE STEPPER=stepper_z Futtassa a fenti l\u00e9p\u00e9seket az \u00f6sszes menteni k\u00edv\u00e1nt l\u00e9ptet\u0151re. \u00c1ltal\u00e1ban ezt a stepper_z-n\u00e9l haszn\u00e1ljuk cartesian \u00e9s corexy-nyomtat\u00f3khoz, illetve stepper_a, stepper_b \u00e9s stepper_c-hez delta nyomtat\u00f3khoz. V\u00e9g\u00fcl futtassa a k\u00f6vetkez\u0151t a konfigur\u00e1ci\u00f3s f\u00e1jl friss\u00edt\u00e9s\u00e9hez az adatokkal: SAVE_CONFIG","title":"V\u00e9g\u00e1ll\u00e1si f\u00e1zisok kalibr\u00e1l\u00e1sa"},{"location":"Endstop_Phase.html#tovabbi-megjegyzesek","text":"Ez a funkci\u00f3 a leghasznosabb a delta nyomtat\u00f3kon \u00e9s a cartesian/corexy nyomtat\u00f3k Z v\u00e9gpontj\u00e1n. A funkci\u00f3t a cartesian nyomtat\u00f3k XY v\u00e9g\u00e1ll\u00e1sain\u00e1l is lehet haszn\u00e1lni, de ez nem t\u00fal hasznos, mivel az X/Y v\u00e9g\u00e1ll\u00e1s poz\u00edci\u00f3j\u00e1nak kisebb hib\u00e1ja val\u00f3sz\u00edn\u0171leg nem befoly\u00e1solja a nyomtat\u00e1s min\u0151s\u00e9g\u00e9t. Nem \u00e9rv\u00e9nyes ezt a funkci\u00f3t a corexy nyomtat\u00f3k XY v\u00e9g\u00e1ll\u00e1sain\u00e1l haszn\u00e1lni (mivel az XY poz\u00edci\u00f3t nem egyetlen l\u00e9ptet\u0151 hat\u00e1rozza meg a corexy kinematik\u00e1n\u00e1l). Nem \u00e9rv\u00e9nyes ezt a funkci\u00f3t olyan nyomtat\u00f3kon haszn\u00e1lni, amelyek \"probe:z_virtual_endstop\" Z v\u00e9g\u00e1ll\u00e1st haszn\u00e1lnak (mivel a l\u00e9ptet\u0151f\u00e1zis csak akkor stabil, ha a v\u00e9g\u00e1ll\u00e1s egy s\u00edn statikus hely\u00e9n van). A v\u00e9g\u00e1ll\u00e1sf\u00e1zis kalibr\u00e1l\u00e1sa ut\u00e1n, ha a v\u00e9g\u00e1ll\u00e1st k\u00e9s\u0151bb elmozd\u00edtj\u00e1k vagy be\u00e1ll\u00edtj\u00e1k, akkor a v\u00e9g\u00e1ll\u00e1st \u00fajra kell kalibr\u00e1lni. T\u00e1vol\u00edtsa el a kalibr\u00e1l\u00e1si adatokat a konfigur\u00e1ci\u00f3s f\u00e1jlb\u00f3l, \u00e9s futtassa \u00fajra a fenti l\u00e9p\u00e9seket. A rendszer haszn\u00e1lat\u00e1hoz a v\u00e9g\u00e1ll\u00e1snak el\u00e9g pontosnak kell lennie ahhoz, hogy a l\u00e9ptet\u0151 poz\u00edci\u00f3j\u00e1t k\u00e9t \"teljes l\u00e9p\u00e9sen\" bel\u00fcl azonos\u00edtsa. \u00cdgy p\u00e9ld\u00e1ul, ha egy l\u00e9ptet\u0151 16 mikrol\u00e9p\u00e9st haszn\u00e1l 0,005 mm-es l\u00e9p\u00e9sk\u00f6zzel, akkor a v\u00e9g\u00e1ll\u00e1snak legal\u00e1bb 0,160 mm-es pontoss\u00e1ggal kell rendelkeznie. Ha a \"Endstop stepper_z incorrect phase\" t\u00edpus\u00fa hiba\u00fczeneteket kapunk, akkor ez egy nem kell\u0151en pontos v\u00e9g\u00e1ll\u00e1s miatt lehet. Ha az \u00fajrakalibr\u00e1l\u00e1s nem seg\u00edt, akkor tiltsa le az endstop f\u00e1zisbe\u00e1ll\u00edt\u00e1s\u00e1t a konfigur\u00e1ci\u00f3s f\u00e1jlb\u00f3l val\u00f3 elt\u00e1vol\u00edt\u00e1ssal. Ha valaki hagyom\u00e1nyos l\u00e9ptet\u0151 vez\u00e9rl\u00e9s\u0171 Z tengelyt haszn\u00e1l (mint egy cartesian vagy corexy nyomtat\u00f3n) hagyom\u00e1nyos t\u00e1rgyasztal kiegyenl\u00edt\u0151 csavarokkal egy\u00fctt, akkor az is lehets\u00e9ges, hogy ezt a rendszert \u00fagy haszn\u00e1lja, hogy minden egyes nyomtat\u00e1si r\u00e9teget egy \"teljes l\u00e9p\u00e9s\" hat\u00e1ron v\u00e9gezzen el. Ennek a funkci\u00f3nak az enged\u00e9lyez\u00e9s\u00e9hez gy\u0151z\u0151dj meg arr\u00f3l, hogy a G-k\u00f3d szeletel\u0151 olyan r\u00e9tegmagass\u00e1ggal van konfigur\u00e1lva, amely a \"teljes l\u00e9p\u00e9s\" t\u00f6bbsz\u00f6r\u00f6se, manu\u00e1lisan enged\u00e9lyezd az endstop_align_zero opci\u00f3t az endstop_phase config szakaszban (tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st ), majd szintezze \u00fajra a t\u00e1rgyasztal csavarjait. Ez a rendszer hagyom\u00e1nyos (nem Trinamic) l\u00e9ptet\u0151motor-meghajt\u00f3kkal is haszn\u00e1lhat\u00f3. Ehhez azonban gondoskodni kell arr\u00f3l, hogy a l\u00e9ptet\u0151motor-meghajt\u00f3k a mikrokontroller minden egyes resetel\u00e9sekor \u00fajrainduljanak. (Ha a kett\u0151 mindig egy\u00fctt van resetelve, akkor a Klipper a l\u00e9ptet\u0151 f\u00e1zis\u00e1t \u00fagy tudja meghat\u00e1rozni, hogy nyomon k\u00f6veti a l\u00e9ptet\u0151nek adott parancsok teljes l\u00e9p\u00e9ssz\u00e1m\u00e1t). Jelenleg ez csak akkor lehets\u00e9ges megb\u00edzhat\u00f3an, ha mind a mikrokontroller, mind a l\u00e9ptet\u0151motor-meghajt\u00f3k kiz\u00e1r\u00f3lag USB-r\u0151l kapnak \u00e1ramot, \u00e9s az USB-r\u0151l egy Raspberry Pi-n fut\u00f3 hostr\u00f3l kapjuk az \u00e1ramot. Ebben a helyzetben meg lehet adni egy MCU konfigur\u00e1ci\u00f3t a \"restart_method: rpi_usb\" - ez az opci\u00f3 gondoskodik arr\u00f3l, hogy a mikrokontrollert mindig USB t\u00e1pell\u00e1t\u00e1s-vissza\u00e1ll\u00edt\u00e1ssal \u00e1ll\u00edts\u00e1k vissza, ami gondoskodik arr\u00f3l, hogy a mikrokontroller \u00e9s a l\u00e9ptet\u0151motor-illeszt\u0151programok egy\u00fctt \u00e1lljanak vissza. Ha ezt a mechanizmust haszn\u00e1ljuk, akkor manu\u00e1lisan kell konfigur\u00e1lni a \"trigger_phase\" konfigur\u00e1ci\u00f3s szakaszokat (a r\u00e9szleteket l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st ).","title":"Tov\u00e1bbi megjegyz\u00e9sek"},{"location":"Example_Configs.html","text":"P\u00e9lda konfigur\u00e1ci\u00f3k \u00b6 Ez a dokumentum a Klipper github t\u00e1rhoz (a config k\u00f6nyvt\u00e1rban tal\u00e1lhat\u00f3) egy Klipper p\u00e9ldakonfigur\u00e1ci\u00f3hoz val\u00f3 hozz\u00e1j\u00e1rul\u00e1shoz tartalmaz \u00fatmutat\u00e1st. Ne feledd, hogy a Klipper Community Discourse szerver szint\u00e9n hasznos forr\u00e1s a konfigur\u00e1ci\u00f3s f\u00e1jlok keres\u00e9s\u00e9hez \u00e9s megoszt\u00e1s\u00e1hoz. Ir\u00e1nyelvek \u00b6 V\u00e1laszd ki a megfelel\u0151 konfigur\u00e1ci\u00f3s f\u00e1jln\u00e9v el\u0151tagot: A printer el\u0151tagot az \u00e1ltal\u00e1nos gy\u00e1rt\u00f3 \u00e1ltal \u00e9rt\u00e9kes\u00edtett nyomtat\u00f3kra haszn\u00e1lj\u00e1k. Az \u00e1ltal\u00e1nos el\u0151tagot olyan 3D nyomtat\u00f3 alaplapra haszn\u00e1lj\u00e1k, amely sz\u00e1mos k\u00fcl\u00f6nb\u00f6z\u0151 t\u00edpus\u00fa nyomtat\u00f3ban haszn\u00e1lhat\u00f3. A kit el\u0151tag olyan 3D nyomtat\u00f3kra vonatkozik, amelyeket egy sz\u00e9les k\u00f6rben haszn\u00e1lt specifik\u00e1ci\u00f3 szerint \u00e1ll\u00edtanak \u00f6ssze. Ezek a \"kit\" nyomtat\u00f3k \u00e1ltal\u00e1ban abban k\u00fcl\u00f6nb\u00f6znek a norm\u00e1l \"nyomtat\u00f3kt\u00f3l\", hogy nem egy gy\u00e1rt\u00f3 \u00e9rt\u00e9kes\u00edti \u0151ket. A sample el\u0151tagot a konfigur\u00e1ci\u00f3s \"snippetek\" sz\u00e1m\u00e1ra haszn\u00e1ljuk, amelyeket m\u00e1solva beilleszthet\u00fcnk a f\u0151 konfigur\u00e1ci\u00f3s f\u00e1jlba. A p\u00e9lda el\u0151tag a nyomtat\u00f3 kinematik\u00e1j\u00e1nak le\u00edr\u00e1s\u00e1ra szolg\u00e1l. Az ilyen t\u00edpus\u00fa konfigur\u00e1ci\u00f3 jellemz\u0151en csak a nyomtat\u00f3 kinematik\u00e1j\u00e1nak \u00faj t\u00edpus\u00e1hoz tartoz\u00f3 k\u00f3ddal egy\u00fctt ker\u00fcl hozz\u00e1ad\u00e1sra. Minden konfigur\u00e1ci\u00f3s f\u00e1jlnak .cfg v\u00e9gz\u0151d\u00e9ssel kell v\u00e9gz\u0151dnie. A printer konfigur\u00e1ci\u00f3s f\u00e1jloknak egy \u00e9vsz\u00e1mmal kell v\u00e9gz\u0151dni\u00fck, amelyet a .cfg v\u00e9gz\u0151d\u00e9s k\u00f6vet (pl. -2019.cfg ). Ebben az esetben az \u00e9vsz\u00e1m az adott nyomtat\u00f3 elad\u00e1s\u00e1nak hozz\u00e1vet\u0151leges \u00e9ve. Ne haszn\u00e1lj sz\u00f3k\u00f6z\u00f6ket vagy speci\u00e1lis karaktereket a konfigur\u00e1ci\u00f3s f\u00e1jln\u00e9vben. A f\u00e1jln\u00e9v csak a A-Z , a-z , 0-9 , - \u00e9s karaktereket tartalmazhatja. . A Klippernek hiba n\u00e9lk\u00fcl el kell tudnia ind\u00edtani a printer , generic \u00e9s kit p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jlt. Ezeket a konfigur\u00e1ci\u00f3s f\u00e1jlokat hozz\u00e1 kell adni a test/klippy/printers.test regresszi\u00f3s tesztesethez. Add hozz\u00e1 az \u00faj konfigur\u00e1ci\u00f3s f\u00e1jlokat ehhez a tesztesethez a megfelel\u0151 szakaszban \u00e9s a szakaszon bel\u00fcl \u00e1b\u00e9c\u00e9 sorrendben. A p\u00e9ldakonfigur\u00e1ci\u00f3nak a nyomtat\u00f3 \"stock\" konfigur\u00e1ci\u00f3j\u00e1ra kell vonatkoznia. (T\u00fal sok \"testreszabott\" konfigur\u00e1ci\u00f3 van ahhoz, hogy a Klipper f\u0151 t\u00e1rol\u00f3j\u00e1ban nyomon lehessen k\u00f6vetni.) Hasonl\u00f3k\u00e9ppen, csak olyan nyomtat\u00f3k, k\u00e9szletek \u00e9s k\u00e1rty\u00e1k p\u00e9ldakonfigur\u00e1ci\u00f3s f\u00e1jljait adjuk hozz\u00e1, amelyek n\u00e9pszer\u0171ek (pl. legal\u00e1bb 100 darabnak kell lennie bel\u0151l\u00fck akt\u00edv haszn\u00e1latban). Fontold meg a Klipper Community Discourse szerver haszn\u00e1lat\u00e1t m\u00e1s konfigur\u00e1ci\u00f3khoz. Only specify those devices present on the given printer or board. Do not specify settings specific to your particular setup. For generic config files, only those devices on the mainboard should be described. For example, it would not make sense to add a display config section to a \"generic\" config as there is no way to know if the board will be attached to that type of display. If the board has a specific hardware port to facilitate an optional peripheral (eg, a bltouch port) then one can add a \"commented out\" config section for the given device. Ne add meg a pressure_advance \u00e9rt\u00e9ket egy p\u00e9ldakonfigur\u00e1ci\u00f3ban, mivel ez az \u00e9rt\u00e9k a sz\u00e1lra, nem pedig a nyomtat\u00f3 hardver\u00e9re jellemz\u0151. Hasonl\u00f3k\u00e9ppen ne adj meg max_extrude_only_velocity \u00e9s max_extrude_only_accel be\u00e1ll\u00edt\u00e1sokat. Ne adj meg olyan konfigur\u00e1ci\u00f3s r\u00e9szt, amely \u00e1llom\u00e1s el\u00e9r\u00e9si \u00fatvonalat vagy \u00e1llom\u00e1shardvert tartalmaz. P\u00e9ld\u00e1ul ne adj meg [virtual_sdcard] \u00e9s [temperature_host] konfigur\u00e1ci\u00f3s szakaszokat. Csak olyan makr\u00f3kat defini\u00e1ljon, amelyek az adott nyomtat\u00f3ra jellemz\u0151 funkci\u00f3kat haszn\u00e1lj\u00e1k, vagy olyan g-k\u00f3dokat defini\u00e1ljon, amelyeket az adott nyomtat\u00f3hoz konfigur\u00e1lt szeletel\u0151k \u00e1ltal\u00e1ban kiadnak. Where possible, it is best to use the same wording, phrasing, indentation, and section ordering as the existing config files. The top of each config file should list the type of micro-controller the user should select during \"make menuconfig\". It should also have a reference to \"docs/Config_Reference.md\". Ne m\u00e1sold be a mez\u0151 dokument\u00e1ci\u00f3j\u00e1t a p\u00e9ldakonfigur\u00e1ci\u00f3s f\u00e1jlokba. (Ez karbantart\u00e1si terhet jelent, mivel a dokument\u00e1ci\u00f3 friss\u00edt\u00e9se sok helyen v\u00e1ltoztat\u00e1st ig\u00e9nyelne.) A p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jlok nem tartalmazhatnak \"SAVE_CONFIG\" r\u00e9szt. Ha sz\u00fcks\u00e9ges, m\u00e1sold \u00e1t a SAVE_CONFIG szakaszb\u00f3l a megfelel\u0151 mez\u0151ket a f\u0151 konfigur\u00e1ci\u00f3s ter\u00fclet megfelel\u0151 szakasz\u00e1ba. Haszn\u00e1ld a field: value szintaxist a field=value helyett. Extruder rotation_distance hozz\u00e1ad\u00e1sakor c\u00e9lszer\u0171 megadni a gear_ratio \u00e9rt\u00e9ket, ha az extruder fogasker\u00e9kkel rendelkezik. A p\u00e9ldakonfigur\u00e1ci\u00f3kban szerepl\u0151 rotation_distance \u00e9rt\u00e9kt\u0151l azt v\u00e1rjuk, hogy korrel\u00e1ljon az extruderben l\u00e9v\u0151 fogasker\u00e9k ker\u00fclet\u00e9vel. Ez \u00e1ltal\u00e1ban 20 \u00e9s 35 mm k\u00f6z\u00f6tti tartom\u00e1nyban van. A gear_ratio megad\u00e1sakor el\u0151ny\u00f6sebb a mechanizmuson l\u00e9v\u0151 t\u00e9nyleges fogaskerekek fogsz\u00e1m\u00e1nak megad\u00e1sa (pl. ink\u00e1bb gear_ratio: 80:20 , mint gear_ratio: 4:1 ). Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a forgat\u00e1si t\u00e1vols\u00e1g dokumentumot . Ker\u00fclje az alap\u00e9rtelmezett \u00e9rt\u00e9kre be\u00e1ll\u00edtott mez\u0151\u00e9rt\u00e9kek meghat\u00e1roz\u00e1s\u00e1t. P\u00e9ld\u00e1ul nem szabad megadni min_extrude_temp: 170 , mivel ez m\u00e1r az alap\u00e9rtelmezett \u00e9rt\u00e9k. Ahol lehets\u00e9ges, a sorok sz\u00e1ma nem haladhatja meg a 80 oszlopot. Ker\u00fclje el az attrib\u00faci\u00f3s vagy rev\u00edzi\u00f3s \u00fczenetek hozz\u00e1ad\u00e1s\u00e1t a konfigur\u00e1ci\u00f3s f\u00e1jlokhoz. (P\u00e9ld\u00e1ul ker\u00fclje az olyan sorok hozz\u00e1ad\u00e1s\u00e1t, mint a \"this file was created by ...\"). Helyezd el az attrib\u00faci\u00f3t \u00e9s a v\u00e1ltoztat\u00e1si el\u0151zm\u00e9nyeket a git commit \u00fczenetben. Ne haszn\u00e1lj semmilyen elavult funkci\u00f3t a p\u00e9ldakonfigur\u00e1ci\u00f3s f\u00e1jlban. Ne tiltson le egy alap\u00e9rtelmezett biztons\u00e1gi rendszert egy p\u00e9ldakonfig-f\u00e1jlban. P\u00e9ld\u00e1ul egy konfigur\u00e1ci\u00f3 nem adhat meg egy egy\u00e9ni max_extrude_cross_section \u00e9rt\u00e9ket. Ne enged\u00e9lyezd a hibakeres\u00e9si funkci\u00f3kat. P\u00e9ld\u00e1ul ne legyen force_move config szakasz. A Klipper \u00e1ltal t\u00e1mogatott \u00f6sszes ismert k\u00e1rtya az alap\u00e9rtelmezett 250000-es soros adat\u00e1tvitelt tudja haszn\u00e1lni. Ne javasoljon elt\u00e9r\u0151 adat\u00e1tvitel be\u00e1ll\u00edt\u00e1s\u00e1t egy p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jlban. A p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jlok elk\u00fcld\u00e9se egy github \"pull request\" l\u00e9trehoz\u00e1s\u00e1val t\u00f6rt\u00e9nik. K\u00e9rj\u00fck, k\u00f6vesse a k\u00f6zrem\u0171k\u00f6d\u0151 dokumentum utas\u00edt\u00e1sait is.","title":"P\u00e9lda konfigur\u00e1ci\u00f3k"},{"location":"Example_Configs.html#pelda-konfiguraciok","text":"Ez a dokumentum a Klipper github t\u00e1rhoz (a config k\u00f6nyvt\u00e1rban tal\u00e1lhat\u00f3) egy Klipper p\u00e9ldakonfigur\u00e1ci\u00f3hoz val\u00f3 hozz\u00e1j\u00e1rul\u00e1shoz tartalmaz \u00fatmutat\u00e1st. Ne feledd, hogy a Klipper Community Discourse szerver szint\u00e9n hasznos forr\u00e1s a konfigur\u00e1ci\u00f3s f\u00e1jlok keres\u00e9s\u00e9hez \u00e9s megoszt\u00e1s\u00e1hoz.","title":"P\u00e9lda konfigur\u00e1ci\u00f3k"},{"location":"Example_Configs.html#iranyelvek","text":"V\u00e1laszd ki a megfelel\u0151 konfigur\u00e1ci\u00f3s f\u00e1jln\u00e9v el\u0151tagot: A printer el\u0151tagot az \u00e1ltal\u00e1nos gy\u00e1rt\u00f3 \u00e1ltal \u00e9rt\u00e9kes\u00edtett nyomtat\u00f3kra haszn\u00e1lj\u00e1k. Az \u00e1ltal\u00e1nos el\u0151tagot olyan 3D nyomtat\u00f3 alaplapra haszn\u00e1lj\u00e1k, amely sz\u00e1mos k\u00fcl\u00f6nb\u00f6z\u0151 t\u00edpus\u00fa nyomtat\u00f3ban haszn\u00e1lhat\u00f3. A kit el\u0151tag olyan 3D nyomtat\u00f3kra vonatkozik, amelyeket egy sz\u00e9les k\u00f6rben haszn\u00e1lt specifik\u00e1ci\u00f3 szerint \u00e1ll\u00edtanak \u00f6ssze. Ezek a \"kit\" nyomtat\u00f3k \u00e1ltal\u00e1ban abban k\u00fcl\u00f6nb\u00f6znek a norm\u00e1l \"nyomtat\u00f3kt\u00f3l\", hogy nem egy gy\u00e1rt\u00f3 \u00e9rt\u00e9kes\u00edti \u0151ket. A sample el\u0151tagot a konfigur\u00e1ci\u00f3s \"snippetek\" sz\u00e1m\u00e1ra haszn\u00e1ljuk, amelyeket m\u00e1solva beilleszthet\u00fcnk a f\u0151 konfigur\u00e1ci\u00f3s f\u00e1jlba. A p\u00e9lda el\u0151tag a nyomtat\u00f3 kinematik\u00e1j\u00e1nak le\u00edr\u00e1s\u00e1ra szolg\u00e1l. Az ilyen t\u00edpus\u00fa konfigur\u00e1ci\u00f3 jellemz\u0151en csak a nyomtat\u00f3 kinematik\u00e1j\u00e1nak \u00faj t\u00edpus\u00e1hoz tartoz\u00f3 k\u00f3ddal egy\u00fctt ker\u00fcl hozz\u00e1ad\u00e1sra. Minden konfigur\u00e1ci\u00f3s f\u00e1jlnak .cfg v\u00e9gz\u0151d\u00e9ssel kell v\u00e9gz\u0151dnie. A printer konfigur\u00e1ci\u00f3s f\u00e1jloknak egy \u00e9vsz\u00e1mmal kell v\u00e9gz\u0151dni\u00fck, amelyet a .cfg v\u00e9gz\u0151d\u00e9s k\u00f6vet (pl. -2019.cfg ). Ebben az esetben az \u00e9vsz\u00e1m az adott nyomtat\u00f3 elad\u00e1s\u00e1nak hozz\u00e1vet\u0151leges \u00e9ve. Ne haszn\u00e1lj sz\u00f3k\u00f6z\u00f6ket vagy speci\u00e1lis karaktereket a konfigur\u00e1ci\u00f3s f\u00e1jln\u00e9vben. A f\u00e1jln\u00e9v csak a A-Z , a-z , 0-9 , - \u00e9s karaktereket tartalmazhatja. . A Klippernek hiba n\u00e9lk\u00fcl el kell tudnia ind\u00edtani a printer , generic \u00e9s kit p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jlt. Ezeket a konfigur\u00e1ci\u00f3s f\u00e1jlokat hozz\u00e1 kell adni a test/klippy/printers.test regresszi\u00f3s tesztesethez. Add hozz\u00e1 az \u00faj konfigur\u00e1ci\u00f3s f\u00e1jlokat ehhez a tesztesethez a megfelel\u0151 szakaszban \u00e9s a szakaszon bel\u00fcl \u00e1b\u00e9c\u00e9 sorrendben. A p\u00e9ldakonfigur\u00e1ci\u00f3nak a nyomtat\u00f3 \"stock\" konfigur\u00e1ci\u00f3j\u00e1ra kell vonatkoznia. (T\u00fal sok \"testreszabott\" konfigur\u00e1ci\u00f3 van ahhoz, hogy a Klipper f\u0151 t\u00e1rol\u00f3j\u00e1ban nyomon lehessen k\u00f6vetni.) Hasonl\u00f3k\u00e9ppen, csak olyan nyomtat\u00f3k, k\u00e9szletek \u00e9s k\u00e1rty\u00e1k p\u00e9ldakonfigur\u00e1ci\u00f3s f\u00e1jljait adjuk hozz\u00e1, amelyek n\u00e9pszer\u0171ek (pl. legal\u00e1bb 100 darabnak kell lennie bel\u0151l\u00fck akt\u00edv haszn\u00e1latban). Fontold meg a Klipper Community Discourse szerver haszn\u00e1lat\u00e1t m\u00e1s konfigur\u00e1ci\u00f3khoz. Only specify those devices present on the given printer or board. Do not specify settings specific to your particular setup. For generic config files, only those devices on the mainboard should be described. For example, it would not make sense to add a display config section to a \"generic\" config as there is no way to know if the board will be attached to that type of display. If the board has a specific hardware port to facilitate an optional peripheral (eg, a bltouch port) then one can add a \"commented out\" config section for the given device. Ne add meg a pressure_advance \u00e9rt\u00e9ket egy p\u00e9ldakonfigur\u00e1ci\u00f3ban, mivel ez az \u00e9rt\u00e9k a sz\u00e1lra, nem pedig a nyomtat\u00f3 hardver\u00e9re jellemz\u0151. Hasonl\u00f3k\u00e9ppen ne adj meg max_extrude_only_velocity \u00e9s max_extrude_only_accel be\u00e1ll\u00edt\u00e1sokat. Ne adj meg olyan konfigur\u00e1ci\u00f3s r\u00e9szt, amely \u00e1llom\u00e1s el\u00e9r\u00e9si \u00fatvonalat vagy \u00e1llom\u00e1shardvert tartalmaz. P\u00e9ld\u00e1ul ne adj meg [virtual_sdcard] \u00e9s [temperature_host] konfigur\u00e1ci\u00f3s szakaszokat. Csak olyan makr\u00f3kat defini\u00e1ljon, amelyek az adott nyomtat\u00f3ra jellemz\u0151 funkci\u00f3kat haszn\u00e1lj\u00e1k, vagy olyan g-k\u00f3dokat defini\u00e1ljon, amelyeket az adott nyomtat\u00f3hoz konfigur\u00e1lt szeletel\u0151k \u00e1ltal\u00e1ban kiadnak. Where possible, it is best to use the same wording, phrasing, indentation, and section ordering as the existing config files. The top of each config file should list the type of micro-controller the user should select during \"make menuconfig\". It should also have a reference to \"docs/Config_Reference.md\". Ne m\u00e1sold be a mez\u0151 dokument\u00e1ci\u00f3j\u00e1t a p\u00e9ldakonfigur\u00e1ci\u00f3s f\u00e1jlokba. (Ez karbantart\u00e1si terhet jelent, mivel a dokument\u00e1ci\u00f3 friss\u00edt\u00e9se sok helyen v\u00e1ltoztat\u00e1st ig\u00e9nyelne.) A p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jlok nem tartalmazhatnak \"SAVE_CONFIG\" r\u00e9szt. Ha sz\u00fcks\u00e9ges, m\u00e1sold \u00e1t a SAVE_CONFIG szakaszb\u00f3l a megfelel\u0151 mez\u0151ket a f\u0151 konfigur\u00e1ci\u00f3s ter\u00fclet megfelel\u0151 szakasz\u00e1ba. Haszn\u00e1ld a field: value szintaxist a field=value helyett. Extruder rotation_distance hozz\u00e1ad\u00e1sakor c\u00e9lszer\u0171 megadni a gear_ratio \u00e9rt\u00e9ket, ha az extruder fogasker\u00e9kkel rendelkezik. A p\u00e9ldakonfigur\u00e1ci\u00f3kban szerepl\u0151 rotation_distance \u00e9rt\u00e9kt\u0151l azt v\u00e1rjuk, hogy korrel\u00e1ljon az extruderben l\u00e9v\u0151 fogasker\u00e9k ker\u00fclet\u00e9vel. Ez \u00e1ltal\u00e1ban 20 \u00e9s 35 mm k\u00f6z\u00f6tti tartom\u00e1nyban van. A gear_ratio megad\u00e1sakor el\u0151ny\u00f6sebb a mechanizmuson l\u00e9v\u0151 t\u00e9nyleges fogaskerekek fogsz\u00e1m\u00e1nak megad\u00e1sa (pl. ink\u00e1bb gear_ratio: 80:20 , mint gear_ratio: 4:1 ). Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a forgat\u00e1si t\u00e1vols\u00e1g dokumentumot . Ker\u00fclje az alap\u00e9rtelmezett \u00e9rt\u00e9kre be\u00e1ll\u00edtott mez\u0151\u00e9rt\u00e9kek meghat\u00e1roz\u00e1s\u00e1t. P\u00e9ld\u00e1ul nem szabad megadni min_extrude_temp: 170 , mivel ez m\u00e1r az alap\u00e9rtelmezett \u00e9rt\u00e9k. Ahol lehets\u00e9ges, a sorok sz\u00e1ma nem haladhatja meg a 80 oszlopot. Ker\u00fclje el az attrib\u00faci\u00f3s vagy rev\u00edzi\u00f3s \u00fczenetek hozz\u00e1ad\u00e1s\u00e1t a konfigur\u00e1ci\u00f3s f\u00e1jlokhoz. (P\u00e9ld\u00e1ul ker\u00fclje az olyan sorok hozz\u00e1ad\u00e1s\u00e1t, mint a \"this file was created by ...\"). Helyezd el az attrib\u00faci\u00f3t \u00e9s a v\u00e1ltoztat\u00e1si el\u0151zm\u00e9nyeket a git commit \u00fczenetben. Ne haszn\u00e1lj semmilyen elavult funkci\u00f3t a p\u00e9ldakonfigur\u00e1ci\u00f3s f\u00e1jlban. Ne tiltson le egy alap\u00e9rtelmezett biztons\u00e1gi rendszert egy p\u00e9ldakonfig-f\u00e1jlban. P\u00e9ld\u00e1ul egy konfigur\u00e1ci\u00f3 nem adhat meg egy egy\u00e9ni max_extrude_cross_section \u00e9rt\u00e9ket. Ne enged\u00e9lyezd a hibakeres\u00e9si funkci\u00f3kat. P\u00e9ld\u00e1ul ne legyen force_move config szakasz. A Klipper \u00e1ltal t\u00e1mogatott \u00f6sszes ismert k\u00e1rtya az alap\u00e9rtelmezett 250000-es soros adat\u00e1tvitelt tudja haszn\u00e1lni. Ne javasoljon elt\u00e9r\u0151 adat\u00e1tvitel be\u00e1ll\u00edt\u00e1s\u00e1t egy p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jlban. A p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jlok elk\u00fcld\u00e9se egy github \"pull request\" l\u00e9trehoz\u00e1s\u00e1val t\u00f6rt\u00e9nik. K\u00e9rj\u00fck, k\u00f6vesse a k\u00f6zrem\u0171k\u00f6d\u0151 dokumentum utas\u00edt\u00e1sait is.","title":"Ir\u00e1nyelvek"},{"location":"Exclude_Object.html","text":"Objektumok kiz\u00e1r\u00e1sa \u00b6 The [exclude_object] module allows Klipper to exclude objects while a print is in progress. To enable this feature include an exclude_object config section (also see the command reference and sample-macros.cfg file for a Marlin/RepRapFirmware compatible M486 G-Code macro.) M\u00e1s 3D nyomtat\u00f3k firmware opci\u00f3it\u00f3l elt\u00e9r\u0151en a Klippert futtat\u00f3 nyomtat\u00f3 komponenscsomagot haszn\u00e1l, \u00e9s a felhaszn\u00e1l\u00f3k sz\u00e1mos lehet\u0151s\u00e9g k\u00f6z\u00fcl v\u00e1laszthatnak. Ez\u00e9rt az egys\u00e9ges felhaszn\u00e1l\u00f3i \u00e9lm\u00e9ny biztos\u00edt\u00e1sa \u00e9rdek\u00e9ben az [exclude_object] modul egyfajta szerz\u0151d\u00e9st vagy API-t hoz l\u00e9tre. A szerz\u0151d\u00e9s tartalmazza a G-k\u00f3d f\u00e1jl tartalm\u00e1t, a modul bels\u0151 \u00e1llapot\u00e1nak vez\u00e9rl\u00e9s\u00e9t \u00e9s azt, hogy ez az \u00e1llapot hogyan ker\u00fcl a kliensek rendelkez\u00e9sre bocs\u00e1t\u00e1sra. Munkafolyamat \u00e1ttekint\u00e9se \u00b6 Egy tipikus munkafolyamat egy f\u00e1jl nyomtat\u00e1s\u00e1hoz \u00edgy n\u00e9zhet ki: A szeletel\u00e9s befejez\u0151dik, \u00e9s a f\u00e1jl felt\u00f6lt\u00e9sre ker\u00fcl nyomtat\u00e1sra. A felt\u00f6lt\u00e9s sor\u00e1n a f\u00e1jl feldolgoz\u00e1sa megt\u00f6rt\u00e9nik, \u00e9s [exclude_object] jel\u00f6l\u00e9sek ker\u00fclnek a f\u00e1jlhoz. A szeletel\u0151ket \u00fagy is be lehet \u00e1ll\u00edtani, hogy az objektumkiz\u00e1r\u00f3 jel\u00f6l\u00e9seket nat\u00edvan vagy saj\u00e1t el\u0151feldolgoz\u00e1si l\u00e9p\u00e9sben k\u00e9sz\u00edts\u00e9k el. A nyomtat\u00e1s megkezd\u00e9sekor a Klipper vissza\u00e1ll\u00edtja az [exclude_object] st\u00e1tuszt . Amikor a Klipper feldolgozza az EXCLUDE_OBJECT_DEFINE blokkot, friss\u00edti a st\u00e1tuszt az ismert objektumokkal, \u00e9s tov\u00e1bb\u00edtja azt az \u00fcgyfeleknek. Az \u00fcgyf\u00e9l felhaszn\u00e1lhatja ezeket az inform\u00e1ci\u00f3kat arra, hogy egy felhaszn\u00e1l\u00f3i fel\u00fcletet jelen\u00edtsen meg a felhaszn\u00e1l\u00f3nak, hogy nyomon k\u00f6vethesse az el\u0151rehalad\u00e1st. A Klipper friss\u00edti az \u00e1llapotot, hogy tartalmazza az aktu\u00e1lisan nyomtatott objektumot, amelyet az \u00fcgyf\u00e9l megjelen\u00edt\u00e9si c\u00e9lokra haszn\u00e1lhat. Ha a felhaszn\u00e1l\u00f3 egy objektum t\u00f6rl\u00e9s\u00e9t k\u00e9ri, a kliens egy EXCLUDE_OBJECT NAME=<name> parancsot ad a Klippernek. Amikor a Klipper feldolgozza a parancsot, hozz\u00e1adja az objektumot a kiz\u00e1rt objektumok list\u00e1j\u00e1hoz, \u00e9s friss\u00edti \u00e1llapot\u00e1t az \u00fcgyf\u00e9l fel\u00e9. Az \u00fcgyf\u00e9l megkapja a Klipper friss\u00edtett \u00e1llapot\u00e1t, \u00e9s ezt az inform\u00e1ci\u00f3t felhaszn\u00e1lhatja az objektum \u00e1llapot\u00e1nak megjelen\u00edt\u00e9s\u00e9hez a felhaszn\u00e1l\u00f3i fel\u00fcleten. A nyomtat\u00e1s befejez\u00e9sekor az [exclude_object] \u00e1llapot tov\u00e1bbra is el\u00e9rhet\u0151 marad, am\u00edg egy m\u00e1sik m\u0171velet vissza nem \u00e1ll\u00edtja. A GCode f\u00e1jl \u00b6 Az objektumok kiz\u00e1r\u00e1s\u00e1hoz sz\u00fcks\u00e9ges speci\u00e1lis G-k\u00f3d feldolgoz\u00e1s nem illeszkedik a Klipper alapvet\u0151 tervez\u00e9si c\u00e9ljaihoz. Ez\u00e9rt ez a modul megk\u00f6veteli a f\u00e1jl feldolgoz\u00e1s\u00e1t, miel\u0151tt a Klippernek nyomtat\u00e1sra elk\u00fcldi. A f\u00e1jl Klipper sz\u00e1m\u00e1ra t\u00f6rt\u00e9n\u0151 el\u0151k\u00e9sz\u00edt\u00e9s\u00e9re k\u00e9t lehet\u0151s\u00e9g egy ut\u00f3feldolgoz\u00f3 szkript haszn\u00e1lata a szeletel\u0151ben, vagy a f\u00e1jl felt\u00f6lt\u00e9skor t\u00f6rt\u00e9n\u0151 feldolgoz\u00e1sa a middleware seg\u00edts\u00e9g\u00e9vel. Egy referencia ut\u00f3feldolgoz\u00f3 szkript el\u00e9rhet\u0151 futtathat\u00f3 \u00e9s python k\u00f6nyvt\u00e1rk\u00e9nt is, l\u00e1sd az objektum el\u0151feldolgoz\u00f3 t\u00f6rl\u00e9se . Objektum meghat\u00e1roz\u00e1sok \u00b6 Az EXCLUDE_OBJECT_DEFINE parancsot arra haszn\u00e1ljuk, hogy a G-k\u00f3d f\u00e1jlban l\u00e9v\u0151 minden egyes objektumr\u00f3l \u00f6sszefoglal\u00f3t adjunk a nyomtat\u00e1shoz. A f\u00e1jlban l\u00e9v\u0151 objektumok \u00f6sszefoglal\u00f3j\u00e1t adja meg. Az objektumokat nem kell defini\u00e1lni ahhoz, hogy m\u00e1s parancsok hivatkozhassanak r\u00e1juk. Ennek a parancsnak az els\u0151dleges c\u00e9lja, hogy inform\u00e1ci\u00f3t szolg\u00e1ltasson a felhaszn\u00e1l\u00f3i fel\u00fcletnek an\u00e9lk\u00fcl, hogy a teljes G-k\u00f3d f\u00e1jlt elemeznie kellene. Az objektumdefin\u00edci\u00f3kat elnevezik, hogy a felhaszn\u00e1l\u00f3k k\u00f6nnyen kiv\u00e1laszthass\u00e1k a kiz\u00e1rand\u00f3 objektumot, \u00e9s tov\u00e1bbi metaadatokat is megadhatnak a grafikus t\u00f6rl\u00e9smegjelen\u00edt\u00e9shez. A jelenleg defini\u00e1lt metaadatok k\u00f6z\u00e9 tartozik egy CENTER X,Y koordin\u00e1ta, valamint egy POLYGON X,Y pontok list\u00e1ja, amely az objektum minim\u00e1lis k\u00f6rvonal\u00e1t \u00e1br\u00e1zolja. Ez lehet egy egyszer\u0171 hat\u00e1rol\u00f3 doboz, vagy egy bonyolult burkolat a nyomtatott objektumok r\u00e9szletesebb megjelen\u00edt\u00e9s\u00e9hez. K\u00fcl\u00f6n\u00f6sen akkor, ha a G-k\u00f3d f\u00e1jlok t\u00f6bb, egym\u00e1st \u00e1tfed\u0151 hat\u00e1rol\u00f3 r\u00e9gi\u00f3kkal rendelkez\u0151 alkatr\u00e9szt tartalmaznak, a k\u00f6z\u00e9ppontok vizu\u00e1lisan nehezen megk\u00fcl\u00f6nb\u00f6ztethet\u0151k. POLYGONS pontokb\u00f3l \u00e1ll\u00f3 json-kompatibilis t\u00f6mbnek kell lennie [X,Y] sz\u00f3k\u00f6z\u00f6k n\u00e9lk\u00fcl. A tov\u00e1bbi param\u00e9terek karakterl\u00e1ncokk\u00e9nt ker\u00fclnek elment\u00e9sre az objektumdefin\u00edci\u00f3ban, \u00e9s \u00e1llapotfriss\u00edt\u00e9sekben lesznek megadva. EXCLUDE_OBJECT_DEFINE NAME=calibration_pyramid CENTER=50,50 POLYGON=[[40,40],[50,60],[60,40]] All available G-Code commands are documented in the G-Code Reference \u00c1llapotinform\u00e1ci\u00f3 \u00b6 The state of this module is provided to clients by the exclude_object status . Az \u00e1llapot vissza\u00e1ll, amikor: A Klipper firmware \u00fajraindul. A [virtual_sdcard] vissza\u00e1ll\u00edt\u00e1sa megt\u00f6rt\u00e9nt. Figyelemre m\u00e9lt\u00f3, hogy ezt a Klipper a nyomtat\u00e1s kezdet\u00e9n vissza\u00e1ll\u00edtja. Amikor egy EXCLUDE_OBJECT_DEFINE RESET=1 parancsot adunk ki. A meghat\u00e1rozott objektumok list\u00e1ja az exclude_object.objects \u00e1llapotmez\u0151ben jelenik meg. Egy j\u00f3l defini\u00e1lt G-k\u00f3d f\u00e1jlban ez a f\u00e1jl elej\u00e9n tal\u00e1lhat\u00f3 EXCLUDE_OBJECT_DEFINE parancsokkal t\u00f6rt\u00e9nik. Ez biztos\u00edtja a kliensek sz\u00e1m\u00e1ra az objektumok nev\u00e9t \u00e9s koordin\u00e1t\u00e1it, \u00edgy a felhaszn\u00e1l\u00f3i fel\u00fclet k\u00edv\u00e1ns\u00e1g szerint grafikusan is megjelen\u00edtheti az objektumokat. A nyomtat\u00e1s el\u0151rehaladt\u00e1val az exclude_object.current_object \u00e1llapotmez\u0151 friss\u00fcl, ahogy a Klipper feldolgozza az EXCLUDE_OBJECT_START \u00e9s EXCLUDE_OBJECT_END parancsokat. A current_object mez\u0151 akkor is be lesz \u00e1ll\u00edtva, ha az objektumot kiz\u00e1rt\u00e1k. Az EXCLUDE_OBJECT_START mez\u0151vel jel\u00f6lt nem defini\u00e1lt objektumok hozz\u00e1 lesznek adva az ismert objektumokhoz, hogy seg\u00edts\u00e9k a felhaszn\u00e1l\u00f3i fel\u00fcletre val\u00f3 utal\u00e1sukat, minden tov\u00e1bbi metaadat n\u00e9lk\u00fcl. Az EXCLUDE_OBJECT parancsok kiad\u00e1sakor a kiz\u00e1rt objektumok list\u00e1j\u00e1t az exclude_object.excluded_objects t\u00f6mb tartalmazza. Mivel a Klipper el\u0151re tekint, hogy feldolgozza a k\u00f6zelg\u0151 G-k\u00f3dot, a parancs kiad\u00e1sa \u00e9s az \u00e1llapot friss\u00edt\u00e9se k\u00f6z\u00f6tt k\u00e9s\u00e9s lehet.","title":"Objektumok kiz\u00e1r\u00e1sa"},{"location":"Exclude_Object.html#objektumok-kizarasa","text":"The [exclude_object] module allows Klipper to exclude objects while a print is in progress. To enable this feature include an exclude_object config section (also see the command reference and sample-macros.cfg file for a Marlin/RepRapFirmware compatible M486 G-Code macro.) M\u00e1s 3D nyomtat\u00f3k firmware opci\u00f3it\u00f3l elt\u00e9r\u0151en a Klippert futtat\u00f3 nyomtat\u00f3 komponenscsomagot haszn\u00e1l, \u00e9s a felhaszn\u00e1l\u00f3k sz\u00e1mos lehet\u0151s\u00e9g k\u00f6z\u00fcl v\u00e1laszthatnak. Ez\u00e9rt az egys\u00e9ges felhaszn\u00e1l\u00f3i \u00e9lm\u00e9ny biztos\u00edt\u00e1sa \u00e9rdek\u00e9ben az [exclude_object] modul egyfajta szerz\u0151d\u00e9st vagy API-t hoz l\u00e9tre. A szerz\u0151d\u00e9s tartalmazza a G-k\u00f3d f\u00e1jl tartalm\u00e1t, a modul bels\u0151 \u00e1llapot\u00e1nak vez\u00e9rl\u00e9s\u00e9t \u00e9s azt, hogy ez az \u00e1llapot hogyan ker\u00fcl a kliensek rendelkez\u00e9sre bocs\u00e1t\u00e1sra.","title":"Objektumok kiz\u00e1r\u00e1sa"},{"location":"Exclude_Object.html#munkafolyamat-attekintese","text":"Egy tipikus munkafolyamat egy f\u00e1jl nyomtat\u00e1s\u00e1hoz \u00edgy n\u00e9zhet ki: A szeletel\u00e9s befejez\u0151dik, \u00e9s a f\u00e1jl felt\u00f6lt\u00e9sre ker\u00fcl nyomtat\u00e1sra. A felt\u00f6lt\u00e9s sor\u00e1n a f\u00e1jl feldolgoz\u00e1sa megt\u00f6rt\u00e9nik, \u00e9s [exclude_object] jel\u00f6l\u00e9sek ker\u00fclnek a f\u00e1jlhoz. A szeletel\u0151ket \u00fagy is be lehet \u00e1ll\u00edtani, hogy az objektumkiz\u00e1r\u00f3 jel\u00f6l\u00e9seket nat\u00edvan vagy saj\u00e1t el\u0151feldolgoz\u00e1si l\u00e9p\u00e9sben k\u00e9sz\u00edts\u00e9k el. A nyomtat\u00e1s megkezd\u00e9sekor a Klipper vissza\u00e1ll\u00edtja az [exclude_object] st\u00e1tuszt . Amikor a Klipper feldolgozza az EXCLUDE_OBJECT_DEFINE blokkot, friss\u00edti a st\u00e1tuszt az ismert objektumokkal, \u00e9s tov\u00e1bb\u00edtja azt az \u00fcgyfeleknek. Az \u00fcgyf\u00e9l felhaszn\u00e1lhatja ezeket az inform\u00e1ci\u00f3kat arra, hogy egy felhaszn\u00e1l\u00f3i fel\u00fcletet jelen\u00edtsen meg a felhaszn\u00e1l\u00f3nak, hogy nyomon k\u00f6vethesse az el\u0151rehalad\u00e1st. A Klipper friss\u00edti az \u00e1llapotot, hogy tartalmazza az aktu\u00e1lisan nyomtatott objektumot, amelyet az \u00fcgyf\u00e9l megjelen\u00edt\u00e9si c\u00e9lokra haszn\u00e1lhat. Ha a felhaszn\u00e1l\u00f3 egy objektum t\u00f6rl\u00e9s\u00e9t k\u00e9ri, a kliens egy EXCLUDE_OBJECT NAME=<name> parancsot ad a Klippernek. Amikor a Klipper feldolgozza a parancsot, hozz\u00e1adja az objektumot a kiz\u00e1rt objektumok list\u00e1j\u00e1hoz, \u00e9s friss\u00edti \u00e1llapot\u00e1t az \u00fcgyf\u00e9l fel\u00e9. Az \u00fcgyf\u00e9l megkapja a Klipper friss\u00edtett \u00e1llapot\u00e1t, \u00e9s ezt az inform\u00e1ci\u00f3t felhaszn\u00e1lhatja az objektum \u00e1llapot\u00e1nak megjelen\u00edt\u00e9s\u00e9hez a felhaszn\u00e1l\u00f3i fel\u00fcleten. A nyomtat\u00e1s befejez\u00e9sekor az [exclude_object] \u00e1llapot tov\u00e1bbra is el\u00e9rhet\u0151 marad, am\u00edg egy m\u00e1sik m\u0171velet vissza nem \u00e1ll\u00edtja.","title":"Munkafolyamat \u00e1ttekint\u00e9se"},{"location":"Exclude_Object.html#a-gcode-fajl","text":"Az objektumok kiz\u00e1r\u00e1s\u00e1hoz sz\u00fcks\u00e9ges speci\u00e1lis G-k\u00f3d feldolgoz\u00e1s nem illeszkedik a Klipper alapvet\u0151 tervez\u00e9si c\u00e9ljaihoz. Ez\u00e9rt ez a modul megk\u00f6veteli a f\u00e1jl feldolgoz\u00e1s\u00e1t, miel\u0151tt a Klippernek nyomtat\u00e1sra elk\u00fcldi. A f\u00e1jl Klipper sz\u00e1m\u00e1ra t\u00f6rt\u00e9n\u0151 el\u0151k\u00e9sz\u00edt\u00e9s\u00e9re k\u00e9t lehet\u0151s\u00e9g egy ut\u00f3feldolgoz\u00f3 szkript haszn\u00e1lata a szeletel\u0151ben, vagy a f\u00e1jl felt\u00f6lt\u00e9skor t\u00f6rt\u00e9n\u0151 feldolgoz\u00e1sa a middleware seg\u00edts\u00e9g\u00e9vel. Egy referencia ut\u00f3feldolgoz\u00f3 szkript el\u00e9rhet\u0151 futtathat\u00f3 \u00e9s python k\u00f6nyvt\u00e1rk\u00e9nt is, l\u00e1sd az objektum el\u0151feldolgoz\u00f3 t\u00f6rl\u00e9se .","title":"A GCode f\u00e1jl"},{"location":"Exclude_Object.html#objektum-meghatarozasok","text":"Az EXCLUDE_OBJECT_DEFINE parancsot arra haszn\u00e1ljuk, hogy a G-k\u00f3d f\u00e1jlban l\u00e9v\u0151 minden egyes objektumr\u00f3l \u00f6sszefoglal\u00f3t adjunk a nyomtat\u00e1shoz. A f\u00e1jlban l\u00e9v\u0151 objektumok \u00f6sszefoglal\u00f3j\u00e1t adja meg. Az objektumokat nem kell defini\u00e1lni ahhoz, hogy m\u00e1s parancsok hivatkozhassanak r\u00e1juk. Ennek a parancsnak az els\u0151dleges c\u00e9lja, hogy inform\u00e1ci\u00f3t szolg\u00e1ltasson a felhaszn\u00e1l\u00f3i fel\u00fcletnek an\u00e9lk\u00fcl, hogy a teljes G-k\u00f3d f\u00e1jlt elemeznie kellene. Az objektumdefin\u00edci\u00f3kat elnevezik, hogy a felhaszn\u00e1l\u00f3k k\u00f6nnyen kiv\u00e1laszthass\u00e1k a kiz\u00e1rand\u00f3 objektumot, \u00e9s tov\u00e1bbi metaadatokat is megadhatnak a grafikus t\u00f6rl\u00e9smegjelen\u00edt\u00e9shez. A jelenleg defini\u00e1lt metaadatok k\u00f6z\u00e9 tartozik egy CENTER X,Y koordin\u00e1ta, valamint egy POLYGON X,Y pontok list\u00e1ja, amely az objektum minim\u00e1lis k\u00f6rvonal\u00e1t \u00e1br\u00e1zolja. Ez lehet egy egyszer\u0171 hat\u00e1rol\u00f3 doboz, vagy egy bonyolult burkolat a nyomtatott objektumok r\u00e9szletesebb megjelen\u00edt\u00e9s\u00e9hez. K\u00fcl\u00f6n\u00f6sen akkor, ha a G-k\u00f3d f\u00e1jlok t\u00f6bb, egym\u00e1st \u00e1tfed\u0151 hat\u00e1rol\u00f3 r\u00e9gi\u00f3kkal rendelkez\u0151 alkatr\u00e9szt tartalmaznak, a k\u00f6z\u00e9ppontok vizu\u00e1lisan nehezen megk\u00fcl\u00f6nb\u00f6ztethet\u0151k. POLYGONS pontokb\u00f3l \u00e1ll\u00f3 json-kompatibilis t\u00f6mbnek kell lennie [X,Y] sz\u00f3k\u00f6z\u00f6k n\u00e9lk\u00fcl. A tov\u00e1bbi param\u00e9terek karakterl\u00e1ncokk\u00e9nt ker\u00fclnek elment\u00e9sre az objektumdefin\u00edci\u00f3ban, \u00e9s \u00e1llapotfriss\u00edt\u00e9sekben lesznek megadva. EXCLUDE_OBJECT_DEFINE NAME=calibration_pyramid CENTER=50,50 POLYGON=[[40,40],[50,60],[60,40]] All available G-Code commands are documented in the G-Code Reference","title":"Objektum meghat\u00e1roz\u00e1sok"},{"location":"Exclude_Object.html#allapotinformacio","text":"The state of this module is provided to clients by the exclude_object status . Az \u00e1llapot vissza\u00e1ll, amikor: A Klipper firmware \u00fajraindul. A [virtual_sdcard] vissza\u00e1ll\u00edt\u00e1sa megt\u00f6rt\u00e9nt. Figyelemre m\u00e9lt\u00f3, hogy ezt a Klipper a nyomtat\u00e1s kezdet\u00e9n vissza\u00e1ll\u00edtja. Amikor egy EXCLUDE_OBJECT_DEFINE RESET=1 parancsot adunk ki. A meghat\u00e1rozott objektumok list\u00e1ja az exclude_object.objects \u00e1llapotmez\u0151ben jelenik meg. Egy j\u00f3l defini\u00e1lt G-k\u00f3d f\u00e1jlban ez a f\u00e1jl elej\u00e9n tal\u00e1lhat\u00f3 EXCLUDE_OBJECT_DEFINE parancsokkal t\u00f6rt\u00e9nik. Ez biztos\u00edtja a kliensek sz\u00e1m\u00e1ra az objektumok nev\u00e9t \u00e9s koordin\u00e1t\u00e1it, \u00edgy a felhaszn\u00e1l\u00f3i fel\u00fclet k\u00edv\u00e1ns\u00e1g szerint grafikusan is megjelen\u00edtheti az objektumokat. A nyomtat\u00e1s el\u0151rehaladt\u00e1val az exclude_object.current_object \u00e1llapotmez\u0151 friss\u00fcl, ahogy a Klipper feldolgozza az EXCLUDE_OBJECT_START \u00e9s EXCLUDE_OBJECT_END parancsokat. A current_object mez\u0151 akkor is be lesz \u00e1ll\u00edtva, ha az objektumot kiz\u00e1rt\u00e1k. Az EXCLUDE_OBJECT_START mez\u0151vel jel\u00f6lt nem defini\u00e1lt objektumok hozz\u00e1 lesznek adva az ismert objektumokhoz, hogy seg\u00edts\u00e9k a felhaszn\u00e1l\u00f3i fel\u00fcletre val\u00f3 utal\u00e1sukat, minden tov\u00e1bbi metaadat n\u00e9lk\u00fcl. Az EXCLUDE_OBJECT parancsok kiad\u00e1sakor a kiz\u00e1rt objektumok list\u00e1j\u00e1t az exclude_object.excluded_objects t\u00f6mb tartalmazza. Mivel a Klipper el\u0151re tekint, hogy feldolgozza a k\u00f6zelg\u0151 G-k\u00f3dot, a parancs kiad\u00e1sa \u00e9s az \u00e1llapot friss\u00edt\u00e9se k\u00f6z\u00f6tt k\u00e9s\u00e9s lehet.","title":"\u00c1llapotinform\u00e1ci\u00f3"},{"location":"FAQ.html","text":"Gyakran ism\u00e9telt k\u00e9rd\u00e9sek \u00b6 Hogyan adom\u00e1nyozhatok a projektnek? \u00b6 K\u00f6sz\u00f6nj\u00fck a t\u00e1mogat\u00e1st. A Szponzorok oldalon tal\u00e1lsz inform\u00e1ci\u00f3kat. Hogyan sz\u00e1m\u00edthatom ki a rotation_distance konfigur\u00e1ci\u00f3s param\u00e9tert? \u00b6 L\u00e1sd a forgat\u00e1si t\u00e1vols\u00e1g dokumentumot . Hol van a soros portom? \u00b6 Az USB soros port megtal\u00e1l\u00e1s\u00e1nak \u00e1ltal\u00e1nos m\u00f3dja az ls /dev/serial/by-id/* futtat\u00e1sa a gazdasz\u00e1m\u00edt\u00f3g\u00e9p SSH termin\u00e1lj\u00e1r\u00f3l. Val\u00f3sz\u00edn\u0171leg a k\u00f6vetkez\u0151h\u00f6z hasonl\u00f3 kimenetet fog eredm\u00e9nyezni: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 A fenti parancsban tal\u00e1lhat\u00f3 n\u00e9v stabil, \u00e9s haszn\u00e1lhat\u00f3 a konfigur\u00e1ci\u00f3s f\u00e1jlban \u00e9s a mikrokontroller k\u00f3dj\u00e1nak \u00e9get\u00e9se sor\u00e1n. Egy \u00e9get\u00e9s parancs p\u00e9ld\u00e1ul \u00edgy n\u00e9zhet ki: sudo service klipper stop make flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 sudo service klipper start \u00e9s a friss\u00edtett konfigur\u00e1ci\u00f3 \u00edgy n\u00e9zhet ki: [mcu] serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 \u00dcgyelj arra, hogy a fent lefuttatott \"ls\" parancsb\u00f3l m\u00e1sold be a nevet, mivel a n\u00e9v minden nyomtat\u00f3n\u00e1l m\u00e1s lesz. Ha t\u00f6bb mikrovez\u00e9rl\u0151t haszn\u00e1lsz, \u00e9s ezek nem rendelkeznek egyedi azonos\u00edt\u00f3val (ez gyakori a CH340 USB-chippel ell\u00e1tott lapokon), akkor k\u00f6vesd a fenti utas\u00edt\u00e1sokat a ls /dev/serial/by-path/* parancs haszn\u00e1lat\u00e1val. A mikrokontroller \u00fajraind\u00edt\u00e1sakor az eszk\u00f6z /dev/ttyUSB1-re v\u00e1lt \u00b6 K\u00f6vesse a \" Hol van a soros portom? \" szakaszban tal\u00e1lhat\u00f3 utas\u00edt\u00e1sokat, hogy ezt megakad\u00e1lyozza. A \"make flash\" parancs nem m\u0171k\u00f6dik \u00b6 A k\u00f3d megpr\u00f3b\u00e1lja az eszk\u00f6zt az egyes platformok eset\u00e9ben legelterjedtebb m\u00f3dszerrel \u00e9getni. Sajnos az \u00e9get\u00e9si m\u00f3dszerek k\u00f6z\u00f6tt nagy elt\u00e9r\u00e9sek vannak, \u00edgy a \"make flash\" parancs nem biztos, hogy minden lapon m\u0171k\u00f6dik. Ha id\u0151szakos hiba van, vagy szabv\u00e1nyos be\u00e1ll\u00edt\u00e1sod van, akkor ellen\u0151rizd, hogy a Klipper nem fut-e \u00e9get\u00e9s k\u00f6zben (sudo service klipper stop), gy\u0151z\u0151dj meg r\u00f3la, hogy az OctoPrint nem pr\u00f3b\u00e1l k\u00f6zvetlen\u00fcl az eszk\u00f6zh\u00f6z csatlakozni (nyisd meg a weblapon a Kapcsolat lapot, \u00e9s kattints a Kapcsolat megszak\u00edt\u00e1sa gombra, ha a soros port az eszk\u00f6zh\u00f6z van be\u00e1ll\u00edtva), \u00e9s gy\u0151z\u0151dj meg r\u00f3la, hogy a FLASH_DEVICE helyesen van be\u00e1ll\u00edtva a lapodhoz (l\u00e1sd a fenti k\u00e9rd\u00e9st ). Ha azonban a \"make flash\" egyszer\u0171en nem m\u0171k\u00f6dik az alaplapj\u00e1n, akkor manu\u00e1lisan kell \u00e9getnie. N\u00e9zze meg, hogy van-e a config k\u00f6nyvt\u00e1rban egy config f\u00e1jl, amely konkr\u00e9t utas\u00edt\u00e1sokat tartalmaz az eszk\u00f6z \u00e9get\u00e9s\u00e9re. Ellen\u0151rizd a k\u00e1rtya gy\u00e1rt\u00f3j\u00e1nak dokument\u00e1ci\u00f3j\u00e1t is, hogy le\u00edrja-e, hogyan kell \u00e9getni az eszk\u00f6zt. V\u00e9g\u00fcl, lehets\u00e9ges lehet, hogy manu\u00e1lisan \u00e9gess\u00fck az eszk\u00f6zt olyan eszk\u00f6z\u00f6kkel, mint az \"avrdude\" vagy a \"bossac\" - tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a bootloader dokumentumot . Hogyan v\u00e1ltoztathatom meg a soros port \u00e1tviteli sebess\u00e9g\u00e9t? \u00b6 A Klipper aj\u00e1nlott \u00e1tviteli sebess\u00e9ge 250000. Ez az \u00e1tviteli r\u00e1ta j\u00f3l m\u0171k\u00f6dik minden olyan mikrokontroller k\u00e1rty\u00e1n, amelyet a Klipper t\u00e1mogat. Ha tal\u00e1lt egy online \u00fatmutat\u00f3t, amely m\u00e1s \u00e1tviteli sebess\u00e9get javasol, akkor hagyja figyelmen k\u00edv\u00fcl az \u00fatmutat\u00f3nak ezt a r\u00e9sz\u00e9t, \u00e9s folytasd az alap\u00e9rtelmezett 250000 \u00e9rt\u00e9kkel. Ha mindenk\u00e9ppen meg akarja v\u00e1ltoztatni az \u00e1tviteli sebess\u00e9get, akkor az \u00faj sebess\u00e9get a mikrokontrollerben kell be\u00e1ll\u00edtani (a make menuconfig alatt), \u00e9s a friss\u00edtett k\u00f3dot le kell ford\u00edtani \u00e9s be kell \u00e9getni a mikrokontrollerbe. A Klipper printer.cfg f\u00e1jlt is friss\u00edteni kell, hogy megfeleljen ennek az \u00e1tviteli sebess\u00e9gnek (l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st a r\u00e9szleteket). P\u00e9ld\u00e1ul: [mcu] baud: 250000 Az OctoPrint weboldalon felt\u00fcntetett \u00e1tviteli sebess\u00e9g nincs hat\u00e1ssal a Klipper mikrokontroller bels\u0151 \u00e1tviteli sebess\u00e9g\u00e9re. Klipper haszn\u00e1latakor az OctoPrint \u00e1tviteli sebess\u00e9g\u00e9t mindig 250000-re \u00e1ll\u00edtsd be. A Klipper mikrovez\u00e9rl\u0151 \u00e1tviteli sebess\u00e9ge nem f\u00fcgg a mikrovez\u00e9rl\u0151 bootloader \u00e1tviteli sebess\u00e9g\u00e9t\u0151l. A bootloader dokumentum tov\u00e1bbi inform\u00e1ci\u00f3kat tartalmaz a bootloaderekkel kapcsolatban. Futtathatom a Klippert a Raspberry Pi 3-on k\u00edv\u00fcl m\u00e1son is? \u00b6 Az aj\u00e1nlott hardver egy Raspberry Pi 2, Raspberry Pi 3 vagy Raspberry Pi 4. A Klipper fut a Raspberry Pi 1-en \u00e9s a Raspberry Pi Zero-n, de ezek a lapok nem tartalmaznak elegend\u0151 feldolgoz\u00e1si teljes\u00edtm\u00e9nyt az OctoPrint j\u00f3 futtat\u00e1s\u00e1hoz. Gyakori, hogy ezeken a lassabb g\u00e9peken a nyomtat\u00e1s akadozik, amikor k\u00f6zvetlen\u00fcl az OctoPrintb\u0151l nyomtat. (El\u0151fordulhat, hogy a nyomtat\u00f3 gyorsabban mozog, mint ahogy az OctoPrint a mozg\u00e1sparancsokat el tudja k\u00fcldeni.) Ha mindenk\u00e9ppen ezek k\u00f6z\u00fcl a lassabb lapok k\u00f6z\u00fcl valamelyiket szeretn\u00e9d haszn\u00e1lni, fontold meg a \"virtual_sdcard\" funkci\u00f3 haszn\u00e1lat\u00e1t nyomtat\u00e1skor (a r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st ). A Beaglebone-on val\u00f3 futtat\u00e1shoz l\u00e1sd a Beaglebone-specifikus telep\u00edt\u00e9si utas\u00edt\u00e1sokat . A Klipper m\u00e1s g\u00e9peken is futott. A Klipper gazdag\u00e9p szoftverhez csak Python sz\u00fcks\u00e9ges, amely Linux (vagy hasonl\u00f3) sz\u00e1m\u00edt\u00f3g\u00e9pen fut. Ha azonban m\u00e1s g\u00e9pen szeretn\u00e9d futtatni, akkor Linux adminisztr\u00e1tori ismeretekre lesz sz\u00fcks\u00e9ge az adott g\u00e9p rendszerk\u00f6vetelm\u00e9nyeinek telep\u00edt\u00e9s\u00e9hez. A sz\u00fcks\u00e9ges Linux-adminisztr\u00e1tori l\u00e9p\u00e9sekr\u0151l tov\u00e1bbi inform\u00e1ci\u00f3t az install-octopi.sh szkriptben tal\u00e1l. Ha a Klipper gazdag\u00e9p szoftvert egy low-end chipen szeretn\u00e9d futtatni, akkor vedd figyelembe, hogy legal\u00e1bb egy \"dupla pontoss\u00e1g\u00fa lebeg\u0151pontos\" hardverrel rendelkez\u0151 g\u00e9pre van sz\u00fcks\u00e9g. Ha a Klipper gazdag\u00e9p szoftvert egy megosztott \u00e1ltal\u00e1nos c\u00e9l\u00fa asztali vagy szerver oszt\u00e1ly\u00fa g\u00e9pen szeretn\u00e9d futtatni, akkor vedd figyelembe, hogy a Klippernek vannak bizonyos val\u00f3s idej\u0171 \u00fctemez\u00e9si k\u00f6vetelm\u00e9nyei. Ha a nyomtat\u00e1s sor\u00e1n a gazdasz\u00e1m\u00edt\u00f3g\u00e9p egyidej\u0171leg intenz\u00edv \u00e1ltal\u00e1nos c\u00e9l\u00fa sz\u00e1m\u00edt\u00e1si feladatot is v\u00e9gez (p\u00e9ld\u00e1ul merevlemez defragment\u00e1l\u00e1sa, 3D renderel\u00e9s, nagym\u00e9rt\u00e9k\u0171 swapol\u00e1s stb.), akkor a Klipper nyomtat\u00e1si hib\u00e1kat jelenthet. Megjegyz\u00e9s: Ha nem OctoPi-k\u00e9pet haszn\u00e1lsz, vedd figyelembe, hogy sz\u00e1mos Linux-disztrib\u00faci\u00f3 enged\u00e9lyez egy \"ModemManager\" (vagy hasonl\u00f3) csomagot, amely megzavarhatja a soros kommunik\u00e1ci\u00f3t. (Ami miatt a Klipper v\u00e9letlenszer\u0171nek t\u0171n\u0151 \"Elveszett a kommunik\u00e1ci\u00f3 az MCU-val\" hib\u00e1kat jelenthet.) Ha a Klippert ilyen disztrib\u00faci\u00f3ra telep\u00edti, akkor lehet, hogy le kell tiltania ezt a csomagot. Futtathatom a Klipper t\u00f6bb p\u00e9ld\u00e1ny\u00e1t ugyanazon a g\u00e9pen? \u00b6 Lehets\u00e9ges a Klipper gazdag\u00e9p szoftver t\u00f6bb p\u00e9ld\u00e1ny\u00e1nak futtat\u00e1sa, de ehhez Linux adminisztr\u00e1tori ismeretekre van sz\u00fcks\u00e9g. A Klipper telep\u00edt\u00e9si szkriptek v\u00e9g\u00fcl a k\u00f6vetkez\u0151 Unix parancs futtat\u00e1s\u00e1t eredm\u00e9nyezik: ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer.cfg -l /tmp/klippy.log A fenti parancs t\u00f6bb p\u00e9ld\u00e1nyban is futtathat\u00f3, amennyiben minden p\u00e9ld\u00e1nynak saj\u00e1t nyomtat\u00f3-konfigur\u00e1ci\u00f3s f\u00e1jlja, saj\u00e1t napl\u00f3f\u00e1jlja \u00e9s saj\u00e1t pszeudo-tty-je van. P\u00e9ld\u00e1ul: ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer2.cfg -l /tmp/klippy2.log -I /tmp/printer2 Ha ezt v\u00e1lasztja, akkor a sz\u00fcks\u00e9ges ind\u00edt\u00e1si, le\u00e1ll\u00edt\u00e1si \u00e9s telep\u00edt\u00e9si parancsf\u00e1jlokat (ha vannak ilyenek) kell v\u00e9grehajtania. Az install-octopi.sh szkript \u00e9s a klipper-start.sh szkript hasznos lehet p\u00e9ldak\u00e9nt. Musz\u00e1j az OctoPrintet haszn\u00e1lnom? \u00b6 A Klipper szoftver nem f\u00fcgg az OctoPrint-t\u0151l. Lehets\u00e9ges alternat\u00edv szoftvereket haszn\u00e1lni a Klipper parancsok k\u00fcld\u00e9s\u00e9re, de ehhez Linux adminisztr\u00e1tori ismeretekre van sz\u00fcks\u00e9g. A Klipper l\u00e9trehoz egy \"virtu\u00e1lis soros portot\" a \"/tmp/printer\" f\u00e1jlon kereszt\u00fcl, \u00e9s ezen kereszt\u00fcl emul\u00e1l egy klasszikus 3D nyomtat\u00f3 soros interf\u00e9szt. \u00c1ltal\u00e1noss\u00e1gban elmondhat\u00f3, hogy alternat\u00edv szoftverek is m\u0171k\u00f6dhetnek a Klipperrel, amennyiben konfigur\u00e1lhat\u00f3ak \u00fagy, hogy a \"/tmp/printer\" -t haszn\u00e1lj\u00e1k a nyomtat\u00f3 soros portjak\u00e9nt. Mi\u00e9rt nem tudom mozgatni a l\u00e9ptet\u0151motort a nyomtat\u00f3 kezd\u0151pont felv\u00e9tele el\u0151tt? \u00b6 A k\u00f3d ezt az\u00e9rt teszi, hogy cs\u00f6kkentse annak es\u00e9ly\u00e9t, hogy a fejet v\u00e9letlen\u00fcl a t\u00e1rgyasztalba vagy a falba \u00fctk\u00f6ztesse. Miut\u00e1n a nyomtat\u00f3 kezd\u0151ponthoz \u00e9rt, a szoftver megpr\u00f3b\u00e1lja ellen\u0151rizni, hogy minden egyes mozg\u00e1s a konfigur\u00e1ci\u00f3s f\u00e1jlban meghat\u00e1rozott position_min/max \u00e9rt\u00e9ken bel\u00fcl van-e. Ha a motorok ki vannak kapcsolva (M84 vagy M18 parancs seg\u00edts\u00e9g\u00e9vel), akkor a motorokat a mozg\u00e1s el\u0151tt \u00fajra be kell \u00e1ll\u00edtani. Ha a fejet az OctoPrint seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9n\u0151 nyomtat\u00e1s t\u00f6rl\u00e9se ut\u00e1n szeretn\u00e9d elmozd\u00edtani, fontold meg az OctoPrint t\u00f6rl\u00e9si sorrendj\u00e9nek m\u00f3dos\u00edt\u00e1s\u00e1t, hogy ezt megtegye helyetted. Ez az OctoPrintben a webb\u00f6ng\u00e9sz\u0151n kereszt\u00fcl konfigur\u00e1lhat\u00f3 a k\u00f6vetkez\u0151 men\u00fcpont alatt: Be\u00e1ll\u00edt\u00e1sok->GCODE szkriptek Ha a nyomtat\u00e1s befejez\u00e9se ut\u00e1n szeretn\u00e9d mozgatni a fejet, fontold meg a k\u00edv\u00e1nt mozg\u00e1s hozz\u00e1ad\u00e1s\u00e1t a szeletel\u0151 \"custom g-code\" szakasz\u00e1hoz. Ha a nyomtat\u00f3nak sz\u00fcks\u00e9ge van tov\u00e1bbi mozgat\u00e1sra a kezd\u0151pont felv\u00e9teli folyamat r\u00e9szek\u00e9nt (vagy alapvet\u0151en nincs kezd\u0151pont felv\u00e9teli folyamat), akkor fontold meg a safe_z_home vagy homing_override szakasz haszn\u00e1lat\u00e1t a konfigur\u00e1ci\u00f3s f\u00e1jlban. Ha diagnosztikai vagy hibakeres\u00e9si c\u00e9lokra kell mozgatni egy l\u00e9ptet\u0151motort, akkor fontold meg egy force_move szakasz hozz\u00e1ad\u00e1s\u00e1t a konfigur\u00e1ci\u00f3s f\u00e1jlhoz. L\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st az ezen opci\u00f3kkal kapcsolatos tov\u00e1bbi r\u00e9szletek\u00e9rt. Mi\u00e9rt van a Z position_endstop 0,5-re \u00e1ll\u00edtva az alap\u00e9rtelmezett konfigur\u00e1ci\u00f3ban? \u00b6 A cartesian st\u00edlus\u00fa nyomtat\u00f3k eset\u00e9ben a Z position_endstop megadja, hogy a f\u00fav\u00f3ka milyen messze van a t\u00e1rgyasztalt\u00f3l, amikor a v\u00e9g\u00e1ll\u00e1s m\u0171k\u00f6d\u00e9sbe l\u00e9p. Ha lehets\u00e9ges, aj\u00e1nlott Z-max v\u00e9g\u00e1ll\u00e1st haszn\u00e1lni, \u00e9s a t\u00e1rgyasztalt\u00f3l t\u00e1volabb elhelyezni (mivel ez cs\u00f6kkenti a t\u00e1rgyasztal \u00fctk\u00f6z\u00e9s lehet\u0151s\u00e9g\u00e9t). Ha azonban a t\u00e1rgyasztal fel\u00e9 kell elindulni, akkor a v\u00e9g\u00e1ll\u00e1st \u00fagy kell be\u00e1ll\u00edtani, hogy akkor l\u00e9pjen m\u0171k\u00f6d\u00e9sbe, amikor a f\u00fav\u00f3ka m\u00e9g mindig kis t\u00e1vols\u00e1gra van a t\u00e1rgyasztalt\u00f3l. \u00cdgy a tengely homingol\u00e1sakor a f\u00fav\u00f3ka m\u00e9g azel\u0151tt meg\u00e1ll, hogy a f\u00fav\u00f3ka hozz\u00e1\u00e9rne a t\u00e1rgyasztalhoz. Tov\u00e1bbi inform\u00e1ci\u00f3\u00e9rt l\u00e1sd a t\u00e1rgyasztal szintez\u00e9s dokumentumot . \u00c1tkonvert\u00e1ltam a konfigur\u00e1ci\u00f3mat Marlinb\u00f3l, \u00e9s az X/Y tengelyek j\u00f3l m\u0171k\u00f6dnek, de a Z tengely kezd\u0151pont felv\u00e9telekor csak egy csikorg\u00f3 zajt hallok \u00b6 R\u00f6vid v\u00e1lasz: El\u0151sz\u00f6r is ellen\u0151rizd, hogy a konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9sek dokumentumban le\u00edrtak szerint ellen\u0151rizted-e a l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3j\u00e1t. Ha a probl\u00e9ma tov\u00e1bbra is fenn\u00e1ll, pr\u00f3b\u00e1ld meg cs\u00f6kkenteni a max_z_velocity \u00e9rt\u00e9ket a nyomtat\u00f3 konfigur\u00e1ci\u00f3j\u00e1ban. Hossz\u00fa v\u00e1lasz: A gyakorlatban a Marlin jellemz\u0151en csak k\u00f6r\u00fclbel\u00fcl 10000 l\u00e9p\u00e9s/m\u00e1sodperc sebess\u00e9ggel tud l\u00e9pni. Ha olyan sebess\u00e9ggel kell mozognia, amely nagyobb l\u00e9p\u00e9ssz\u00e1mot ig\u00e9nyel, akkor a Marlin \u00e1ltal\u00e1ban csak olyan gyorsan l\u00e9p, amilyen gyorsan csak tud. A Klipper sokkal nagyobb l\u00e9p\u00e9ssz\u00e1mot k\u00e9pes el\u00e9rni, de a l\u00e9ptet\u0151motornak nem biztos, hogy elegend\u0151 nyomat\u00e9ka van a nagyobb sebess\u00e9g\u0171 mozg\u00e1shoz. Teh\u00e1t egy nagy \u00e1tt\u00e9telsz\u00e1m\u00fa vagy nagy mikrol\u00e9p\u00e9ssz\u00e1m\u00fa Z tengely eset\u00e9ben a t\u00e9nylegesen el\u00e9rhet\u0151 max_z_sebess\u00e9g kisebb lehet, mint ami a Marlinban be van \u00e1ll\u00edtva. A TMC motorvez\u00e9rl\u0151 kikapcsol nyomtat\u00e1s k\u00f6zben \u00b6 Ha a TMC2208 (vagy TMC2224) motorvez\u00e9rl\u0151t \"standalone m\u00f3dban\" haszn\u00e1lod, akkor gy\u0151z\u0151dj meg r\u00f3la, hogy a Klipper leg\u00fajabb verzi\u00f3j\u00e1t haszn\u00e1ld. A TMC2208 \"stealthchop\" motorvez\u00e9rl\u0151 probl\u00e9m\u00e1j\u00e1nak megold\u00e1sa 2020 m\u00e1rcius k\u00f6zep\u00e9n ker\u00fclt hozz\u00e1 a Klipperhez. V\u00e9letlenszer\u0171 \"Elveszett a kommunik\u00e1ci\u00f3 az MCU-val\" hib\u00e1k \u00b6 Ezt \u00e1ltal\u00e1ban a gazdag\u00e9p \u00e9s a mikrokontroller k\u00f6z\u00f6tti USB-kapcsolat hardverhib\u00e1i okozz\u00e1k. Amit keresni kell: Haszn\u00e1lj j\u00f3 min\u0151s\u00e9g\u0171 USB-k\u00e1belt a gazdag\u00e9p \u00e9s a mikrokontroller k\u00f6z\u00f6tt. Gy\u0151z\u0151dj meg r\u00f3la, hogy a csatlakoz\u00f3k biztons\u00e1gosan csatlakoznak. Ha Raspberry Pi-t haszn\u00e1l, haszn\u00e1lj j\u00f3 min\u0151s\u00e9g\u0171 t\u00e1pegys\u00e9get a Raspberry Pi sz\u00e1m\u00e1ra, \u00e9s egy j\u00f3 min\u0151s\u00e9g\u0171 USB-k\u00e1bellel csatlakoztassa a t\u00e1pegys\u00e9get a Pihez. Ha az OctoPrint \"fesz\u00fclts\u00e9g alatt\" figyelmeztet\u00e9seket kap, az a t\u00e1pegys\u00e9ggel f\u00fcgg \u00f6ssze, \u00e9s ezt meg kell jav\u00edtani. Gy\u0151z\u0151dj meg r\u00f3la, hogy a nyomtat\u00f3 \u00e1ramell\u00e1t\u00e1sa nincs t\u00falterhelve. (A mikrovez\u00e9rl\u0151 USB-chip \u00e1ramell\u00e1t\u00e1s\u00e1nak ingadoz\u00e1sa a chip \u00fajraind\u00edt\u00e1s\u00e1t eredm\u00e9nyezheti.) Ellen\u0151rizd, hogy a l\u00e9ptet\u0151, f\u0171t\u0151 \u00e9s egy\u00e9b nyomtat\u00f3vezet\u00e9kek nem szakadtak vagy rong\u00e1l\u00f3dtak. (A nyomtat\u00f3 mozg\u00e1sa megterhelheti a hib\u00e1s vezet\u00e9ket, ami \u00e9rintkez\u00e9si hib\u00e1khoz, r\u00f6vidz\u00e1rlathoz vagy t\u00falzott zajkelt\u00e9shez vezethet.) Jelent\u00e9seket kaptunk magas USB-zajr\u00f3l, amikor a nyomtat\u00f3, \u00e9s a gazdag\u00e9p 5V-os t\u00e1pell\u00e1t\u00e1sa keveredik. (Ha azt tapasztalod, hogy a mikrokontroller bekapcsol, amikor a gazdag\u00e9p t\u00e1pell\u00e1t\u00e1sa be van kapcsolva, vagy az USB-k\u00e1bel be van dugva, akkor ez azt jelzi, hogy az 5V-os t\u00e1pegys\u00e9gek keverednek.) Seg\u00edthet, ha \u00fagy konfigur\u00e1lod a mikrokontrollert, hogy csak az egyik forr\u00e1sb\u00f3l sz\u00e1rmaz\u00f3 \u00e1ramot haszn\u00e1lod. (Alternat\u00edv megold\u00e1sk\u00e9nt, ha a mikrokontroller lapja nem tudja konfigur\u00e1lni az \u00e1ramforr\u00e1s\u00e1t, m\u00f3dos\u00edthatunk egy USB-k\u00e1belt \u00fagy, hogy az ne sz\u00e1ll\u00edtson 5V-os \u00e1ramot a gazdag\u00e9p \u00e9s a mikrokontroller k\u00f6z\u00f6tt.) A Raspberry Pi \u00fajraindul nyomtat\u00e1s k\u00f6zben \u00b6 Ez val\u00f3sz\u00edn\u0171leg a fesz\u00fclts\u00e9gingadoz\u00e1sok miatt van. K\u00f6vesse ugyanazokat a hibaelh\u00e1r\u00edt\u00e1si l\u00e9p\u00e9seket a V\u00e9letlenszer\u0171 \"Elveszett a kommunik\u00e1ci\u00f3 az MCU-val\" hib\u00e1k eset\u00e9n. Amikor be\u00e1ll\u00edtom a restart_method=command az AVR k\u00e9sz\u00fcl\u00e9kem \u00fajraind\u00edt\u00e1skor lefagy \u00b6 Az AVR bootloader n\u00e9h\u00e1ny r\u00e9gi verzi\u00f3j\u00e1nak ismert hib\u00e1ja van a watchdog esem\u00e9ny kezel\u00e9s\u00e9ben. Ez \u00e1ltal\u00e1ban akkor jelentkezik, ha a printer.cfg f\u00e1jlban a restart_method be\u00e1ll\u00edt\u00e1sa \"command\". Amikor a hiba el\u0151fordul, az AVR eszk\u00f6z nem reag\u00e1l, am\u00edg a t\u00e1pell\u00e1t\u00e1st el nem veszik \u00e9s \u00fajra be nem kapcsolj\u00e1k az eszk\u00f6zbe (a t\u00e1pell\u00e1t\u00e1s vagy az \u00e1llapotjelz\u0151 LED-ek is t\u00f6bbsz\u00f6r villoghatnak, am\u00edg a t\u00e1pell\u00e1t\u00e1st el nem veszik). A megold\u00e1s a \"command\" -t\u00f3l elt\u00e9r\u0151 restart_method haszn\u00e1lata, vagy egy friss\u00edtett bootloader \u00e9get\u00e9se az AVR eszk\u00f6zre. Egy \u00faj bootloader \u00e9get\u00e9se egy egyszeri l\u00e9p\u00e9s, amelyhez \u00e1ltal\u00e1ban k\u00fcls\u0151 programoz\u00f3ra van sz\u00fcks\u00e9g - tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd Bootloaderek dokumentumot. A f\u0171t\u0151elemek bekapcsolva maradnak, ha a Raspberry Pi \u00f6sszeomlik? \u00b6 A szoftvert \u00fagy tervezt\u00e9k, hogy ezt megakad\u00e1lyozza. Ha a gazdag\u00e9p egyszer enged\u00e9lyezi a f\u0171t\u0151berendez\u00e9st, a szoftver\u00e9nek 5 m\u00e1sodpercenk\u00e9nt meg kell er\u0151s\u00edtenie az enged\u00e9lyez\u00e9st. Ha a mikrokontroller nem kap 5 m\u00e1sodpercenk\u00e9nt meger\u0151s\u00edt\u00e9st, akkor \"le\u00e1ll\u00edt\u00e1s\" \u00e1llapotba ker\u00fcl, amelynek c\u00e9lja, hogy kikapcsolja az \u00f6sszes f\u0171t\u0151berendez\u00e9st \u00e9s l\u00e9ptet\u0151motort. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd az MCU-parancsok dokumentumban tal\u00e1lhat\u00f3 \"config_digital_out\" parancsot. Ezenk\u00edv\u00fcl a mikrovez\u00e9rl\u0151 szoftver ind\u00edt\u00e1skor minden f\u0171t\u0151berendez\u00e9shez be van \u00e1ll\u00edtva egy minim\u00e1lis \u00e9s maxim\u00e1lis h\u0151m\u00e9rs\u00e9klettartom\u00e1ny (a r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1sban tal\u00e1lhat\u00f3 min_temp \u00e9s max_temp param\u00e9tereket). Ha a mikrokontroller azt \u00e9rz\u00e9keli, hogy a h\u0151m\u00e9rs\u00e9klet e tartom\u00e1nyon k\u00edv\u00fcl esik, akkor szint\u00e9n \"le\u00e1ll\u00edt\u00e1s\" \u00e1llapotba l\u00e9p. A gazdaszoftver k\u00fcl\u00f6n k\u00f3dot is tartalmaz a f\u0171t\u0151elemek \u00e9s a h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151k helyes m\u0171k\u00f6d\u00e9s\u00e9nek ellen\u0151rz\u00e9s\u00e9re. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1s dokumentumot. Hogyan alak\u00edthatok \u00e1t egy Marlin t\u0171 sz\u00e1mot Klipper t\u0171 n\u00e9vre? \u00b6 R\u00f6vid v\u00e1lasz: sample-aliases.cfg f\u00e1jlban tal\u00e1lhat\u00f3 lek\u00e9pez\u00e9s. Haszn\u00e1ld ezt a f\u00e1jlt \u00fatmutat\u00f3k\u00e9nt a t\u00e9nyleges mikrokontroller t\u0171 nevek megtal\u00e1l\u00e1s\u00e1hoz. (Az is lehets\u00e9ges, hogy a vonatkoz\u00f3 board_pins config szakaszt \u00e1tm\u00e1sold a config f\u00e1jlj\u00e1ba, \u00e9s haszn\u00e1ld az \u00e1lneveket a configban, de el\u0151ny\u00f6sebb a t\u00e9nyleges mikrokontroller t\u0171 nevek leford\u00edt\u00e1sa \u00e9s haszn\u00e1lata.) Vedd figyelembe, hogy a sample-aliases.cfg f\u00e1jl olyan t\u0171 neveket haszn\u00e1l, amelyek \"ar\" el\u0151taggal kezd\u0151dnek \"D\" helyett (pl. az Arduino t\u0171 D23 a Klipper \u00e1ln\u00e9v ar23 ) \u00e9s az \"analog\" helyett \"A\" (pl. az Arduino t\u0171 A14 a Klipper \u00e1ln\u00e9v analog14 ). Hossz\u00fa v\u00e1lasz: Klipper a mikrokontroller \u00e1ltal meghat\u00e1rozott szabv\u00e1nyos t\u0171 neveket haszn\u00e1lja. Az Atmega chipeken ezek a hardveres t\u0171k olyan neveket viselnek, mint PA4 , PC7 , vagy PD2 . R\u00e9gen az Arduino projekt \u00fagy d\u00f6nt\u00f6tt, hogy nem haszn\u00e1lja a szabv\u00e1nyos hardverneveket, hanem saj\u00e1t, n\u00f6vekv\u0151 sz\u00e1mokon alapul\u00f3 t\u0171 neveket haszn\u00e1l. Ezek az Arduino nevek \u00e1ltal\u00e1ban \u00fagy n\u00e9znek ki, mint D23 vagy A14 . Ez egy szerencs\u00e9tlen v\u00e1laszt\u00e1s volt, amely sok zavart okozott. K\u00fcl\u00f6n\u00f6sen az Arduino t\u0171-sz\u00e1mok gyakran nem ford\u00edtj\u00e1k le ugyanazokat a hardveres neveket. P\u00e9ld\u00e1ul a D21 az PD0 egy k\u00f6z\u00f6s Arduino lapon, de PC7 egy m\u00e1sik k\u00f6z\u00f6s Arduino lapon. A zavar elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a Klipper alapk\u00f3dja a mikrokontroller \u00e1ltal meghat\u00e1rozott szabv\u00e1nyos t\u0171 neveket haszn\u00e1lja. Az eszk\u00f6z\u00f6met egy adott t\u00edpus\u00fa mikrokontroller t\u0171h\u00f6z kell csatlakoztatnom? \u00b6 Ez az eszk\u00f6z t\u00edpus\u00e1t\u00f3l \u00e9s a t\u0171 t\u00edpus\u00e1t\u00f3l f\u00fcgg: ADC t\u0171k (vagy anal\u00f3g t\u0171k): Termisztorok \u00e9s hasonl\u00f3 \"anal\u00f3g\" \u00e9rz\u00e9kel\u0151k eset\u00e9n az eszk\u00f6zt a mikrokontroller egy \"anal\u00f3g\" vagy \"ADC\" -k\u00e9pes t\u0171j\u00e9re kell csatlakoztatni. Ha a Klippert olyan t\u0171 haszn\u00e1lat\u00e1ra konfigur\u00e1lod, amely nem anal\u00f3g k\u00e9pes, a Klipper egy \"Nem \u00e9rv\u00e9nyes ADC t\u0171\" hib\u00e1t fog jelenteni. PWM t\u0171k (vagy id\u0151z\u00edt\u0151 t\u0171k): A Klipper alap\u00e9rtelmez\u00e9s szerint nem haszn\u00e1l hardveres PWM-et egyetlen eszk\u00f6z eset\u00e9ben sem. Teh\u00e1t \u00e1ltal\u00e1ban a f\u0171t\u0151testeket, ventil\u00e1torokat \u00e9s hasonl\u00f3 eszk\u00f6z\u00f6ket b\u00e1rmelyik \u00e1ltal\u00e1nos c\u00e9l\u00fa IO t\u0171re lehet vezet\u00e9kezni. A ventil\u00e1torok \u00e9s az output_pin eszk\u00f6z\u00f6k azonban opcion\u00e1lisan \u00fagy konfigur\u00e1lhat\u00f3k, hogy hardware_pwm: True \u00e9rt\u00e9ket haszn\u00e1lnak, amely esetben a mikrokontrollernek t\u00e1mogatnia kell a hardveres PWM-et a t\u0171n (ellenkez\u0151 esetben a Klipper egy \"Not a valid PWM pin\" hib\u00e1t fog jelezni). IRQ-t\u0171k (vagy megszak\u00edt\u00e1si t\u0171k): A Klipper nem haszn\u00e1l hardveres megszak\u00edt\u00e1sokat az IO t\u0171k\u00f6n, ez\u00e9rt soha nem sz\u00fcks\u00e9ges egy eszk\u00f6zt ezen mikrokontroller t\u0171k egyik\u00e9re vezetni. SPI-t\u0171k: A hardveres SPI haszn\u00e1latakor a t\u0171ket a mikrokontroller SPI-k\u00e9pes t\u0171ihez kell csatlakoztatni. A legt\u00f6bb eszk\u00f6z azonban konfigur\u00e1lhat\u00f3 a \"szoftveres SPI\" haszn\u00e1lat\u00e1ra, amely esetben b\u00e1rmely \u00e1ltal\u00e1nos c\u00e9l\u00fa IO-t\u0171 haszn\u00e1lhat\u00f3. I2C t\u0171k: I2C haszn\u00e1latakor a t\u0171ket a mikrokontroller I2C-k\u00e9pes t\u0171ihez kell csatlakoztatni. M\u00e1s eszk\u00f6z\u00f6k b\u00e1rmelyik \u00e1ltal\u00e1nos c\u00e9l\u00fa IO t\u0171re csatlakoztathat\u00f3k. P\u00e9ld\u00e1ul l\u00e9ptet\u0151k, f\u0171t\u0151k, ventil\u00e1torok, Z-szond\u00e1k, szerv\u00f3k, LED-ek, k\u00f6z\u00f6s hd44780/st7920 LCD-kijelz\u0151k, a Trinamic UART vez\u00e9rl\u0151vonal b\u00e1rmely \u00e1ltal\u00e1nos c\u00e9l\u00fa IO-t\u0171h\u00f6z csatlakoztathat\u00f3. Hogyan tudom t\u00f6r\u00f6lni az M109/M190 \"v\u00e1rakoz\u00e1s a h\u0151m\u00e9rs\u00e9kletre\" k\u00e9r\u00e9st? \u00b6 Navig\u00e1lj az OctoPrint termin\u00e1l f\u00fclre, \u00e9s adj ki egy M112 parancsot a termin\u00e1lmez\u0151ben. Az M112 parancs hat\u00e1s\u00e1ra a Klipper \"le\u00e1ll\u00edt\u00e1s\" \u00e1llapotba ker\u00fcl, \u00e9s az OctoPrint megszak\u00edtja a kapcsolatot a Klipperrel. Navig\u00e1lj az OctoPrint csatlakoz\u00e1si ter\u00fclet\u00e9re, \u00e9s kattints a \"Kapcsol\u00f3d\u00e1s\" gombra, hogy az OctoPrint \u00fajra csatlakozzon. Navig\u00e1lj vissza a termin\u00e1l f\u00fclre, \u00e9s adj ki egy FIRMWARE_RESTART parancsot a Klipper hiba\u00e1llapot\u00e1nak t\u00f6rl\u00e9s\u00e9hez. E m\u0171veletsor befejez\u00e9se ut\u00e1n az el\u0151z\u0151 f\u0171t\u00e9sk\u00e9r\u00e9s t\u00f6rl\u0151dik, \u00e9s \u00faj nyomtat\u00e1s ind\u00edthat\u00f3. Meg tudom \u00e1llap\u00edtani, hogy a nyomtat\u00f3 vesztett-e l\u00e9p\u00e9seket? \u00b6 Bizonyos \u00e9rtelemben igen. Ind\u00edtsa el a nyomtat\u00f3t, adj ki egy GET_POSITION parancsot, ind\u00edtsa el a nyomtat\u00e1st, ind\u00edtsa el \u00fajra, \u00e9s adj ki egy \u00fajabb GET_POSITION parancsot. Ezut\u00e1n hasonl\u00edtsa \u00f6ssze az mcu: sorban szerepl\u0151 \u00e9rt\u00e9keket. Ez hasznos lehet a be\u00e1ll\u00edt\u00e1sok, p\u00e9ld\u00e1ul a l\u00e9ptet\u0151motorok \u00e1ram\u00e1nak, gyorsul\u00e1s\u00e1nak \u00e9s sebess\u00e9g\u00e9nek be\u00e1ll\u00edt\u00e1s\u00e1hoz an\u00e9lk\u00fcl, hogy t\u00e9nylegesen nyomtatnod kellene valamit \u00e9s pazarolnod kellene a sz\u00e1lakat: csak futtass n\u00e9h\u00e1ny nagy sebess\u00e9g\u0171 mozg\u00e1st a GET_POSITION parancsok k\u00f6z\u00f6tt. Vedd figyelembe, hogy a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3k maguk is hajlamosak kiss\u00e9 elt\u00e9r\u0151 poz\u00edci\u00f3ban kioldani, \u00edgy a n\u00e9h\u00e1ny mikrol\u00e9p\u00e9snyi k\u00fcl\u00f6nbs\u00e9g val\u00f3sz\u00edn\u0171leg a v\u00e9g\u00e1ll\u00e1s pontatlans\u00e1g\u00e1nak eredm\u00e9nye. Maga a l\u00e9ptet\u0151motor csak 4 teljes l\u00e9p\u00e9senk\u00e9nt k\u00e9pes l\u00e9p\u00e9seket vesz\u00edteni. (Teh\u00e1t, ha 16 mikrol\u00e9p\u00e9st haszn\u00e1lunk, akkor a l\u00e9ptet\u0151 egy elvesztett l\u00e9p\u00e9se azt eredm\u00e9nyezi, hogy az \"mcu:\" l\u00e9p\u00e9ssz\u00e1ml\u00e1l\u00f3 64 mikrol\u00e9p\u00e9s t\u00f6bbsz\u00f6r\u00f6s\u00e9vel t\u00e9ved.) Mi\u00e9rt jelent hib\u00e1t a Klipper? Elrontotta a nyomtat\u00e1somat! \u00b6 R\u00f6vid v\u00e1lasz: A nyomtat\u00f3ink probl\u00e9m\u00e1kat \u00e9szlelnek, hogy a m\u00f6g\u00f6ttes probl\u00e9m\u00e1t orvosolni lehessen, \u00e9s kiv\u00e1l\u00f3 min\u0151s\u00e9g\u0171 nyomatokat kaphassunk. Semmik\u00e9ppen sem szeretn\u00e9nk, ha a nyomtat\u00f3ink csendben rossz min\u0151s\u00e9g\u0171 nyomatokat k\u00e9sz\u00edten\u00e9nek. Hossz\u00fa v\u00e1lasz: A Klipper \u00fagy lett megtervezve, hogy automatikusan megoldjon sz\u00e1mos \u00e1tmeneti probl\u00e9m\u00e1t. P\u00e9ld\u00e1ul automatikusan \u00e9szleli a kommunik\u00e1ci\u00f3s hib\u00e1kat, \u00e9s \u00fajratov\u00e1bb\u00edtja azokat; el\u0151re \u00fctemezi a m\u0171veleteket, \u00e9s t\u00f6bb r\u00e9tegben puffereli a parancsokat, hogy m\u00e9g id\u0151szakos interferencia eset\u00e9n is pontos id\u0151z\u00edt\u00e9st tegyen lehet\u0151v\u00e9. Ha azonban a szoftver olyan hib\u00e1t \u00e9szlel, amelyb\u0151l nem tud helyre\u00e1llni, ha \u00e9rv\u00e9nytelen m\u0171veletre kap parancsot, vagy ha azt \u00e9szleli, hogy rem\u00e9nytelen\u00fcl k\u00e9ptelen v\u00e9grehajtani a parancsolt feladatot, akkor a Klipper hib\u00e1t jelent. Ezekben a helyzetekben nagy a kock\u00e1zata annak, hogy rossz min\u0151s\u00e9g\u0171 nyomtat\u00e1s k\u00e9sz\u00fcl (vagy rosszabb). Rem\u00e9lj\u00fck, hogy a felhaszn\u00e1l\u00f3 figyelmeztet\u00e9se lehet\u0151v\u00e9 teszi sz\u00e1m\u00e1ra, hogy megoldja a kiv\u00e1lt\u00f3 probl\u00e9m\u00e1t, \u00e9s jav\u00edtsa a nyomatok \u00e1ltal\u00e1nos min\u0151s\u00e9g\u00e9t. Van n\u00e9h\u00e1ny kapcsol\u00f3d\u00f3 k\u00e9rd\u00e9s: Mi\u00e9rt nem sz\u00fcnetelteti a Klipper a nyomtat\u00e1st? Nem jelent figyelmeztet\u00e9st helyette? A nyomtat\u00e1s el\u0151tt nem ellen\u0151rzi a hib\u00e1kat? Figyelmen k\u00edv\u00fcl hagyja a hib\u00e1kat a felhaszn\u00e1l\u00f3 \u00e1ltal beg\u00e9pelt parancsokban? stb. Jelenleg a Klipper a G-k\u00f3d protokollt haszn\u00e1lva olvassa a parancsokat, \u00e9s sajnos a G-k\u00f3d parancsprotokoll nem el\u00e9g rugalmas ahhoz, hogy ezek az alternat\u00edv\u00e1k ma m\u00e1r praktikusak legyenek. A fejleszt\u0151k \u00e9rdekl\u0151dnek a felhaszn\u00e1l\u00f3i \u00e9lm\u00e9ny jav\u00edt\u00e1sa ir\u00e1nt a rendellenes esem\u00e9nyek sor\u00e1n, de ez v\u00e1rhat\u00f3an jelent\u0151s infrastruktur\u00e1lis munk\u00e1t ig\u00e9nyel (bele\u00e9rtve a G-k\u00f3dt\u00f3l val\u00f3 elt\u00e1volod\u00e1st). Hogyan friss\u00edthetek a leg\u00fajabb szoftverre? \u00b6 A szoftver friss\u00edt\u00e9s\u00e9nek els\u0151 l\u00e9p\u00e9se a legfrissebb konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00e1sok dokumentum \u00e1ttekint\u00e9se. Alkalmank\u00e9nt olyan v\u00e1ltoz\u00e1sok t\u00f6rt\u00e9nnek a szoftverben, amelyek miatt a felhaszn\u00e1l\u00f3knak friss\u00edteni\u00fck kell a be\u00e1ll\u00edt\u00e1saikat a szoftverfriss\u00edt\u00e9s r\u00e9szek\u00e9nt. A friss\u00edt\u00e9s el\u0151tt \u00e9rdemes \u00e1tn\u00e9zni ezt a dokumentumot. Ha k\u00e9szen \u00e1ll a friss\u00edt\u00e9sre, az \u00e1ltal\u00e1nos m\u00f3dszer az, hogy SSH-t haszn\u00e1lunk a Raspberry Pi-n, \u00e9s futtatjuk: cd ~/klipper git pull ~/klipper/scripts/install-octopi.sh Ezut\u00e1n \u00fajraford\u00edthatjuk \u00e9s \u00e9gethetj\u00fck a mikrokontroller k\u00f3dj\u00e1t. P\u00e9ld\u00e1ul: make menuconfig make clean make sudo service klipper stop make flash FLASH_DEVICE=/dev/ttyACM0 sudo service klipper start Azonban gyakran el\u0151fordul, hogy csak a gazdaszoftver v\u00e1ltozik. Ebben az esetben csak a gazdaszoftvert friss\u00edthetj\u00fck \u00e9s ind\u00edthatjuk \u00fajra: cd ~/klipper git pull sudo service klipper restart Ha e parancs haszn\u00e1lata ut\u00e1n a szoftver arra figyelmeztet, hogy a mikrokontrollert \u00fajra kell \u00e9getni, vagy m\u00e1s szokatlan hiba l\u00e9p fel, akkor k\u00f6vesse a fent le\u00edrt teljes friss\u00edt\u00e9si l\u00e9p\u00e9seket. Ha tov\u00e1bbra is fenn\u00e1llnak a hib\u00e1k, akkor ellen\u0151rizd a konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00e1sok dokumentumot, mivel lehet, hogy m\u00f3dos\u00edtani kell a nyomtat\u00f3 konfigur\u00e1ci\u00f3j\u00e1t. Ne feledd, hogy a RESTART \u00e9s FIRMWARE_RESTART G-k\u00f3d parancsok nem t\u00f6ltenek be \u00faj szoftvert a fenti \"sudo service klipper restart\" \u00e9s \"make flash\" parancsok sz\u00fcks\u00e9gesek a szoftverv\u00e1lt\u00e1s \u00e9rv\u00e9nybe l\u00e9p\u00e9s\u00e9hez. Hogyan t\u00e1vol\u00edtsam el a klippert? \u00b6 A firmware oldalon semmi k\u00fcl\u00f6n\u00f6snek nem kell t\u00f6rt\u00e9nnie. Csak k\u00f6vesse az \u00faj firmware \u00e9get\u00e9si utas\u00edt\u00e1sait. A Raspberry Pi oldalon egy elt\u00e1vol\u00edt\u00f3 szkript el\u00e9rhet\u0151 a scripts/klipper-uninstall.sh alatt. P\u00e9ld\u00e1ul: sudo ~/klipper/scripts/klipper-uninstall.sh rm -rf ~/klippy-env ~/klipper","title":"Gyakran ism\u00e9telt k\u00e9rd\u00e9sek"},{"location":"FAQ.html#gyakran-ismetelt-kerdesek","text":"","title":"Gyakran ism\u00e9telt k\u00e9rd\u00e9sek"},{"location":"FAQ.html#hogyan-adomanyozhatok-a-projektnek","text":"K\u00f6sz\u00f6nj\u00fck a t\u00e1mogat\u00e1st. A Szponzorok oldalon tal\u00e1lsz inform\u00e1ci\u00f3kat.","title":"Hogyan adom\u00e1nyozhatok a projektnek?"},{"location":"FAQ.html#hogyan-szamithatom-ki-a-rotation_distance-konfiguracios-parametert","text":"L\u00e1sd a forgat\u00e1si t\u00e1vols\u00e1g dokumentumot .","title":"Hogyan sz\u00e1m\u00edthatom ki a rotation_distance konfigur\u00e1ci\u00f3s param\u00e9tert?"},{"location":"FAQ.html#hol-van-a-soros-portom","text":"Az USB soros port megtal\u00e1l\u00e1s\u00e1nak \u00e1ltal\u00e1nos m\u00f3dja az ls /dev/serial/by-id/* futtat\u00e1sa a gazdasz\u00e1m\u00edt\u00f3g\u00e9p SSH termin\u00e1lj\u00e1r\u00f3l. Val\u00f3sz\u00edn\u0171leg a k\u00f6vetkez\u0151h\u00f6z hasonl\u00f3 kimenetet fog eredm\u00e9nyezni: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 A fenti parancsban tal\u00e1lhat\u00f3 n\u00e9v stabil, \u00e9s haszn\u00e1lhat\u00f3 a konfigur\u00e1ci\u00f3s f\u00e1jlban \u00e9s a mikrokontroller k\u00f3dj\u00e1nak \u00e9get\u00e9se sor\u00e1n. Egy \u00e9get\u00e9s parancs p\u00e9ld\u00e1ul \u00edgy n\u00e9zhet ki: sudo service klipper stop make flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 sudo service klipper start \u00e9s a friss\u00edtett konfigur\u00e1ci\u00f3 \u00edgy n\u00e9zhet ki: [mcu] serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 \u00dcgyelj arra, hogy a fent lefuttatott \"ls\" parancsb\u00f3l m\u00e1sold be a nevet, mivel a n\u00e9v minden nyomtat\u00f3n\u00e1l m\u00e1s lesz. Ha t\u00f6bb mikrovez\u00e9rl\u0151t haszn\u00e1lsz, \u00e9s ezek nem rendelkeznek egyedi azonos\u00edt\u00f3val (ez gyakori a CH340 USB-chippel ell\u00e1tott lapokon), akkor k\u00f6vesd a fenti utas\u00edt\u00e1sokat a ls /dev/serial/by-path/* parancs haszn\u00e1lat\u00e1val.","title":"Hol van a soros portom?"},{"location":"FAQ.html#a-mikrokontroller-ujrainditasakor-az-eszkoz-devttyusb1-re-valt","text":"K\u00f6vesse a \" Hol van a soros portom? \" szakaszban tal\u00e1lhat\u00f3 utas\u00edt\u00e1sokat, hogy ezt megakad\u00e1lyozza.","title":"A mikrokontroller \u00fajraind\u00edt\u00e1sakor az eszk\u00f6z /dev/ttyUSB1-re v\u00e1lt"},{"location":"FAQ.html#a-make-flash-parancs-nem-mukodik","text":"A k\u00f3d megpr\u00f3b\u00e1lja az eszk\u00f6zt az egyes platformok eset\u00e9ben legelterjedtebb m\u00f3dszerrel \u00e9getni. Sajnos az \u00e9get\u00e9si m\u00f3dszerek k\u00f6z\u00f6tt nagy elt\u00e9r\u00e9sek vannak, \u00edgy a \"make flash\" parancs nem biztos, hogy minden lapon m\u0171k\u00f6dik. Ha id\u0151szakos hiba van, vagy szabv\u00e1nyos be\u00e1ll\u00edt\u00e1sod van, akkor ellen\u0151rizd, hogy a Klipper nem fut-e \u00e9get\u00e9s k\u00f6zben (sudo service klipper stop), gy\u0151z\u0151dj meg r\u00f3la, hogy az OctoPrint nem pr\u00f3b\u00e1l k\u00f6zvetlen\u00fcl az eszk\u00f6zh\u00f6z csatlakozni (nyisd meg a weblapon a Kapcsolat lapot, \u00e9s kattints a Kapcsolat megszak\u00edt\u00e1sa gombra, ha a soros port az eszk\u00f6zh\u00f6z van be\u00e1ll\u00edtva), \u00e9s gy\u0151z\u0151dj meg r\u00f3la, hogy a FLASH_DEVICE helyesen van be\u00e1ll\u00edtva a lapodhoz (l\u00e1sd a fenti k\u00e9rd\u00e9st ). Ha azonban a \"make flash\" egyszer\u0171en nem m\u0171k\u00f6dik az alaplapj\u00e1n, akkor manu\u00e1lisan kell \u00e9getnie. N\u00e9zze meg, hogy van-e a config k\u00f6nyvt\u00e1rban egy config f\u00e1jl, amely konkr\u00e9t utas\u00edt\u00e1sokat tartalmaz az eszk\u00f6z \u00e9get\u00e9s\u00e9re. Ellen\u0151rizd a k\u00e1rtya gy\u00e1rt\u00f3j\u00e1nak dokument\u00e1ci\u00f3j\u00e1t is, hogy le\u00edrja-e, hogyan kell \u00e9getni az eszk\u00f6zt. V\u00e9g\u00fcl, lehets\u00e9ges lehet, hogy manu\u00e1lisan \u00e9gess\u00fck az eszk\u00f6zt olyan eszk\u00f6z\u00f6kkel, mint az \"avrdude\" vagy a \"bossac\" - tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a bootloader dokumentumot .","title":"A \"make flash\" parancs nem m\u0171k\u00f6dik"},{"location":"FAQ.html#hogyan-valtoztathatom-meg-a-soros-port-atviteli-sebesseget","text":"A Klipper aj\u00e1nlott \u00e1tviteli sebess\u00e9ge 250000. Ez az \u00e1tviteli r\u00e1ta j\u00f3l m\u0171k\u00f6dik minden olyan mikrokontroller k\u00e1rty\u00e1n, amelyet a Klipper t\u00e1mogat. Ha tal\u00e1lt egy online \u00fatmutat\u00f3t, amely m\u00e1s \u00e1tviteli sebess\u00e9get javasol, akkor hagyja figyelmen k\u00edv\u00fcl az \u00fatmutat\u00f3nak ezt a r\u00e9sz\u00e9t, \u00e9s folytasd az alap\u00e9rtelmezett 250000 \u00e9rt\u00e9kkel. Ha mindenk\u00e9ppen meg akarja v\u00e1ltoztatni az \u00e1tviteli sebess\u00e9get, akkor az \u00faj sebess\u00e9get a mikrokontrollerben kell be\u00e1ll\u00edtani (a make menuconfig alatt), \u00e9s a friss\u00edtett k\u00f3dot le kell ford\u00edtani \u00e9s be kell \u00e9getni a mikrokontrollerbe. A Klipper printer.cfg f\u00e1jlt is friss\u00edteni kell, hogy megfeleljen ennek az \u00e1tviteli sebess\u00e9gnek (l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st a r\u00e9szleteket). P\u00e9ld\u00e1ul: [mcu] baud: 250000 Az OctoPrint weboldalon felt\u00fcntetett \u00e1tviteli sebess\u00e9g nincs hat\u00e1ssal a Klipper mikrokontroller bels\u0151 \u00e1tviteli sebess\u00e9g\u00e9re. Klipper haszn\u00e1latakor az OctoPrint \u00e1tviteli sebess\u00e9g\u00e9t mindig 250000-re \u00e1ll\u00edtsd be. A Klipper mikrovez\u00e9rl\u0151 \u00e1tviteli sebess\u00e9ge nem f\u00fcgg a mikrovez\u00e9rl\u0151 bootloader \u00e1tviteli sebess\u00e9g\u00e9t\u0151l. A bootloader dokumentum tov\u00e1bbi inform\u00e1ci\u00f3kat tartalmaz a bootloaderekkel kapcsolatban.","title":"Hogyan v\u00e1ltoztathatom meg a soros port \u00e1tviteli sebess\u00e9g\u00e9t?"},{"location":"FAQ.html#futtathatom-a-klippert-a-raspberry-pi-3-on-kivul-mason-is","text":"Az aj\u00e1nlott hardver egy Raspberry Pi 2, Raspberry Pi 3 vagy Raspberry Pi 4. A Klipper fut a Raspberry Pi 1-en \u00e9s a Raspberry Pi Zero-n, de ezek a lapok nem tartalmaznak elegend\u0151 feldolgoz\u00e1si teljes\u00edtm\u00e9nyt az OctoPrint j\u00f3 futtat\u00e1s\u00e1hoz. Gyakori, hogy ezeken a lassabb g\u00e9peken a nyomtat\u00e1s akadozik, amikor k\u00f6zvetlen\u00fcl az OctoPrintb\u0151l nyomtat. (El\u0151fordulhat, hogy a nyomtat\u00f3 gyorsabban mozog, mint ahogy az OctoPrint a mozg\u00e1sparancsokat el tudja k\u00fcldeni.) Ha mindenk\u00e9ppen ezek k\u00f6z\u00fcl a lassabb lapok k\u00f6z\u00fcl valamelyiket szeretn\u00e9d haszn\u00e1lni, fontold meg a \"virtual_sdcard\" funkci\u00f3 haszn\u00e1lat\u00e1t nyomtat\u00e1skor (a r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st ). A Beaglebone-on val\u00f3 futtat\u00e1shoz l\u00e1sd a Beaglebone-specifikus telep\u00edt\u00e9si utas\u00edt\u00e1sokat . A Klipper m\u00e1s g\u00e9peken is futott. A Klipper gazdag\u00e9p szoftverhez csak Python sz\u00fcks\u00e9ges, amely Linux (vagy hasonl\u00f3) sz\u00e1m\u00edt\u00f3g\u00e9pen fut. Ha azonban m\u00e1s g\u00e9pen szeretn\u00e9d futtatni, akkor Linux adminisztr\u00e1tori ismeretekre lesz sz\u00fcks\u00e9ge az adott g\u00e9p rendszerk\u00f6vetelm\u00e9nyeinek telep\u00edt\u00e9s\u00e9hez. A sz\u00fcks\u00e9ges Linux-adminisztr\u00e1tori l\u00e9p\u00e9sekr\u0151l tov\u00e1bbi inform\u00e1ci\u00f3t az install-octopi.sh szkriptben tal\u00e1l. Ha a Klipper gazdag\u00e9p szoftvert egy low-end chipen szeretn\u00e9d futtatni, akkor vedd figyelembe, hogy legal\u00e1bb egy \"dupla pontoss\u00e1g\u00fa lebeg\u0151pontos\" hardverrel rendelkez\u0151 g\u00e9pre van sz\u00fcks\u00e9g. Ha a Klipper gazdag\u00e9p szoftvert egy megosztott \u00e1ltal\u00e1nos c\u00e9l\u00fa asztali vagy szerver oszt\u00e1ly\u00fa g\u00e9pen szeretn\u00e9d futtatni, akkor vedd figyelembe, hogy a Klippernek vannak bizonyos val\u00f3s idej\u0171 \u00fctemez\u00e9si k\u00f6vetelm\u00e9nyei. Ha a nyomtat\u00e1s sor\u00e1n a gazdasz\u00e1m\u00edt\u00f3g\u00e9p egyidej\u0171leg intenz\u00edv \u00e1ltal\u00e1nos c\u00e9l\u00fa sz\u00e1m\u00edt\u00e1si feladatot is v\u00e9gez (p\u00e9ld\u00e1ul merevlemez defragment\u00e1l\u00e1sa, 3D renderel\u00e9s, nagym\u00e9rt\u00e9k\u0171 swapol\u00e1s stb.), akkor a Klipper nyomtat\u00e1si hib\u00e1kat jelenthet. Megjegyz\u00e9s: Ha nem OctoPi-k\u00e9pet haszn\u00e1lsz, vedd figyelembe, hogy sz\u00e1mos Linux-disztrib\u00faci\u00f3 enged\u00e9lyez egy \"ModemManager\" (vagy hasonl\u00f3) csomagot, amely megzavarhatja a soros kommunik\u00e1ci\u00f3t. (Ami miatt a Klipper v\u00e9letlenszer\u0171nek t\u0171n\u0151 \"Elveszett a kommunik\u00e1ci\u00f3 az MCU-val\" hib\u00e1kat jelenthet.) Ha a Klippert ilyen disztrib\u00faci\u00f3ra telep\u00edti, akkor lehet, hogy le kell tiltania ezt a csomagot.","title":"Futtathatom a Klippert a Raspberry Pi 3-on k\u00edv\u00fcl m\u00e1son is?"},{"location":"FAQ.html#futtathatom-a-klipper-tobb-peldanyat-ugyanazon-a-gepen","text":"Lehets\u00e9ges a Klipper gazdag\u00e9p szoftver t\u00f6bb p\u00e9ld\u00e1ny\u00e1nak futtat\u00e1sa, de ehhez Linux adminisztr\u00e1tori ismeretekre van sz\u00fcks\u00e9g. A Klipper telep\u00edt\u00e9si szkriptek v\u00e9g\u00fcl a k\u00f6vetkez\u0151 Unix parancs futtat\u00e1s\u00e1t eredm\u00e9nyezik: ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer.cfg -l /tmp/klippy.log A fenti parancs t\u00f6bb p\u00e9ld\u00e1nyban is futtathat\u00f3, amennyiben minden p\u00e9ld\u00e1nynak saj\u00e1t nyomtat\u00f3-konfigur\u00e1ci\u00f3s f\u00e1jlja, saj\u00e1t napl\u00f3f\u00e1jlja \u00e9s saj\u00e1t pszeudo-tty-je van. P\u00e9ld\u00e1ul: ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer2.cfg -l /tmp/klippy2.log -I /tmp/printer2 Ha ezt v\u00e1lasztja, akkor a sz\u00fcks\u00e9ges ind\u00edt\u00e1si, le\u00e1ll\u00edt\u00e1si \u00e9s telep\u00edt\u00e9si parancsf\u00e1jlokat (ha vannak ilyenek) kell v\u00e9grehajtania. Az install-octopi.sh szkript \u00e9s a klipper-start.sh szkript hasznos lehet p\u00e9ldak\u00e9nt.","title":"Futtathatom a Klipper t\u00f6bb p\u00e9ld\u00e1ny\u00e1t ugyanazon a g\u00e9pen?"},{"location":"FAQ.html#muszaj-az-octoprintet-hasznalnom","text":"A Klipper szoftver nem f\u00fcgg az OctoPrint-t\u0151l. Lehets\u00e9ges alternat\u00edv szoftvereket haszn\u00e1lni a Klipper parancsok k\u00fcld\u00e9s\u00e9re, de ehhez Linux adminisztr\u00e1tori ismeretekre van sz\u00fcks\u00e9g. A Klipper l\u00e9trehoz egy \"virtu\u00e1lis soros portot\" a \"/tmp/printer\" f\u00e1jlon kereszt\u00fcl, \u00e9s ezen kereszt\u00fcl emul\u00e1l egy klasszikus 3D nyomtat\u00f3 soros interf\u00e9szt. \u00c1ltal\u00e1noss\u00e1gban elmondhat\u00f3, hogy alternat\u00edv szoftverek is m\u0171k\u00f6dhetnek a Klipperrel, amennyiben konfigur\u00e1lhat\u00f3ak \u00fagy, hogy a \"/tmp/printer\" -t haszn\u00e1lj\u00e1k a nyomtat\u00f3 soros portjak\u00e9nt.","title":"Musz\u00e1j az OctoPrintet haszn\u00e1lnom?"},{"location":"FAQ.html#miert-nem-tudom-mozgatni-a-leptetomotort-a-nyomtato-kezdopont-felvetele-elott","text":"A k\u00f3d ezt az\u00e9rt teszi, hogy cs\u00f6kkentse annak es\u00e9ly\u00e9t, hogy a fejet v\u00e9letlen\u00fcl a t\u00e1rgyasztalba vagy a falba \u00fctk\u00f6ztesse. Miut\u00e1n a nyomtat\u00f3 kezd\u0151ponthoz \u00e9rt, a szoftver megpr\u00f3b\u00e1lja ellen\u0151rizni, hogy minden egyes mozg\u00e1s a konfigur\u00e1ci\u00f3s f\u00e1jlban meghat\u00e1rozott position_min/max \u00e9rt\u00e9ken bel\u00fcl van-e. Ha a motorok ki vannak kapcsolva (M84 vagy M18 parancs seg\u00edts\u00e9g\u00e9vel), akkor a motorokat a mozg\u00e1s el\u0151tt \u00fajra be kell \u00e1ll\u00edtani. Ha a fejet az OctoPrint seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9n\u0151 nyomtat\u00e1s t\u00f6rl\u00e9se ut\u00e1n szeretn\u00e9d elmozd\u00edtani, fontold meg az OctoPrint t\u00f6rl\u00e9si sorrendj\u00e9nek m\u00f3dos\u00edt\u00e1s\u00e1t, hogy ezt megtegye helyetted. Ez az OctoPrintben a webb\u00f6ng\u00e9sz\u0151n kereszt\u00fcl konfigur\u00e1lhat\u00f3 a k\u00f6vetkez\u0151 men\u00fcpont alatt: Be\u00e1ll\u00edt\u00e1sok->GCODE szkriptek Ha a nyomtat\u00e1s befejez\u00e9se ut\u00e1n szeretn\u00e9d mozgatni a fejet, fontold meg a k\u00edv\u00e1nt mozg\u00e1s hozz\u00e1ad\u00e1s\u00e1t a szeletel\u0151 \"custom g-code\" szakasz\u00e1hoz. Ha a nyomtat\u00f3nak sz\u00fcks\u00e9ge van tov\u00e1bbi mozgat\u00e1sra a kezd\u0151pont felv\u00e9teli folyamat r\u00e9szek\u00e9nt (vagy alapvet\u0151en nincs kezd\u0151pont felv\u00e9teli folyamat), akkor fontold meg a safe_z_home vagy homing_override szakasz haszn\u00e1lat\u00e1t a konfigur\u00e1ci\u00f3s f\u00e1jlban. Ha diagnosztikai vagy hibakeres\u00e9si c\u00e9lokra kell mozgatni egy l\u00e9ptet\u0151motort, akkor fontold meg egy force_move szakasz hozz\u00e1ad\u00e1s\u00e1t a konfigur\u00e1ci\u00f3s f\u00e1jlhoz. L\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st az ezen opci\u00f3kkal kapcsolatos tov\u00e1bbi r\u00e9szletek\u00e9rt.","title":"Mi\u00e9rt nem tudom mozgatni a l\u00e9ptet\u0151motort a nyomtat\u00f3 kezd\u0151pont felv\u00e9tele el\u0151tt?"},{"location":"FAQ.html#miert-van-a-z-position_endstop-05-re-allitva-az-alapertelmezett-konfiguracioban","text":"A cartesian st\u00edlus\u00fa nyomtat\u00f3k eset\u00e9ben a Z position_endstop megadja, hogy a f\u00fav\u00f3ka milyen messze van a t\u00e1rgyasztalt\u00f3l, amikor a v\u00e9g\u00e1ll\u00e1s m\u0171k\u00f6d\u00e9sbe l\u00e9p. Ha lehets\u00e9ges, aj\u00e1nlott Z-max v\u00e9g\u00e1ll\u00e1st haszn\u00e1lni, \u00e9s a t\u00e1rgyasztalt\u00f3l t\u00e1volabb elhelyezni (mivel ez cs\u00f6kkenti a t\u00e1rgyasztal \u00fctk\u00f6z\u00e9s lehet\u0151s\u00e9g\u00e9t). Ha azonban a t\u00e1rgyasztal fel\u00e9 kell elindulni, akkor a v\u00e9g\u00e1ll\u00e1st \u00fagy kell be\u00e1ll\u00edtani, hogy akkor l\u00e9pjen m\u0171k\u00f6d\u00e9sbe, amikor a f\u00fav\u00f3ka m\u00e9g mindig kis t\u00e1vols\u00e1gra van a t\u00e1rgyasztalt\u00f3l. \u00cdgy a tengely homingol\u00e1sakor a f\u00fav\u00f3ka m\u00e9g azel\u0151tt meg\u00e1ll, hogy a f\u00fav\u00f3ka hozz\u00e1\u00e9rne a t\u00e1rgyasztalhoz. Tov\u00e1bbi inform\u00e1ci\u00f3\u00e9rt l\u00e1sd a t\u00e1rgyasztal szintez\u00e9s dokumentumot .","title":"Mi\u00e9rt van a Z position_endstop 0,5-re \u00e1ll\u00edtva az alap\u00e9rtelmezett konfigur\u00e1ci\u00f3ban?"},{"location":"FAQ.html#atkonvertaltam-a-konfiguraciomat-marlinbol-es-az-xy-tengelyek-jol-mukodnek-de-a-z-tengely-kezdopont-felvetelekor-csak-egy-csikorgo-zajt-hallok","text":"R\u00f6vid v\u00e1lasz: El\u0151sz\u00f6r is ellen\u0151rizd, hogy a konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9sek dokumentumban le\u00edrtak szerint ellen\u0151rizted-e a l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3j\u00e1t. Ha a probl\u00e9ma tov\u00e1bbra is fenn\u00e1ll, pr\u00f3b\u00e1ld meg cs\u00f6kkenteni a max_z_velocity \u00e9rt\u00e9ket a nyomtat\u00f3 konfigur\u00e1ci\u00f3j\u00e1ban. Hossz\u00fa v\u00e1lasz: A gyakorlatban a Marlin jellemz\u0151en csak k\u00f6r\u00fclbel\u00fcl 10000 l\u00e9p\u00e9s/m\u00e1sodperc sebess\u00e9ggel tud l\u00e9pni. Ha olyan sebess\u00e9ggel kell mozognia, amely nagyobb l\u00e9p\u00e9ssz\u00e1mot ig\u00e9nyel, akkor a Marlin \u00e1ltal\u00e1ban csak olyan gyorsan l\u00e9p, amilyen gyorsan csak tud. A Klipper sokkal nagyobb l\u00e9p\u00e9ssz\u00e1mot k\u00e9pes el\u00e9rni, de a l\u00e9ptet\u0151motornak nem biztos, hogy elegend\u0151 nyomat\u00e9ka van a nagyobb sebess\u00e9g\u0171 mozg\u00e1shoz. Teh\u00e1t egy nagy \u00e1tt\u00e9telsz\u00e1m\u00fa vagy nagy mikrol\u00e9p\u00e9ssz\u00e1m\u00fa Z tengely eset\u00e9ben a t\u00e9nylegesen el\u00e9rhet\u0151 max_z_sebess\u00e9g kisebb lehet, mint ami a Marlinban be van \u00e1ll\u00edtva.","title":"\u00c1tkonvert\u00e1ltam a konfigur\u00e1ci\u00f3mat Marlinb\u00f3l, \u00e9s az X/Y tengelyek j\u00f3l m\u0171k\u00f6dnek, de a Z tengely kezd\u0151pont felv\u00e9telekor csak egy csikorg\u00f3 zajt hallok"},{"location":"FAQ.html#a-tmc-motorvezerlo-kikapcsol-nyomtatas-kozben","text":"Ha a TMC2208 (vagy TMC2224) motorvez\u00e9rl\u0151t \"standalone m\u00f3dban\" haszn\u00e1lod, akkor gy\u0151z\u0151dj meg r\u00f3la, hogy a Klipper leg\u00fajabb verzi\u00f3j\u00e1t haszn\u00e1ld. A TMC2208 \"stealthchop\" motorvez\u00e9rl\u0151 probl\u00e9m\u00e1j\u00e1nak megold\u00e1sa 2020 m\u00e1rcius k\u00f6zep\u00e9n ker\u00fclt hozz\u00e1 a Klipperhez.","title":"A TMC motorvez\u00e9rl\u0151 kikapcsol nyomtat\u00e1s k\u00f6zben"},{"location":"FAQ.html#veletlenszeru-elveszett-a-kommunikacio-az-mcu-val-hibak","text":"Ezt \u00e1ltal\u00e1ban a gazdag\u00e9p \u00e9s a mikrokontroller k\u00f6z\u00f6tti USB-kapcsolat hardverhib\u00e1i okozz\u00e1k. Amit keresni kell: Haszn\u00e1lj j\u00f3 min\u0151s\u00e9g\u0171 USB-k\u00e1belt a gazdag\u00e9p \u00e9s a mikrokontroller k\u00f6z\u00f6tt. Gy\u0151z\u0151dj meg r\u00f3la, hogy a csatlakoz\u00f3k biztons\u00e1gosan csatlakoznak. Ha Raspberry Pi-t haszn\u00e1l, haszn\u00e1lj j\u00f3 min\u0151s\u00e9g\u0171 t\u00e1pegys\u00e9get a Raspberry Pi sz\u00e1m\u00e1ra, \u00e9s egy j\u00f3 min\u0151s\u00e9g\u0171 USB-k\u00e1bellel csatlakoztassa a t\u00e1pegys\u00e9get a Pihez. Ha az OctoPrint \"fesz\u00fclts\u00e9g alatt\" figyelmeztet\u00e9seket kap, az a t\u00e1pegys\u00e9ggel f\u00fcgg \u00f6ssze, \u00e9s ezt meg kell jav\u00edtani. Gy\u0151z\u0151dj meg r\u00f3la, hogy a nyomtat\u00f3 \u00e1ramell\u00e1t\u00e1sa nincs t\u00falterhelve. (A mikrovez\u00e9rl\u0151 USB-chip \u00e1ramell\u00e1t\u00e1s\u00e1nak ingadoz\u00e1sa a chip \u00fajraind\u00edt\u00e1s\u00e1t eredm\u00e9nyezheti.) Ellen\u0151rizd, hogy a l\u00e9ptet\u0151, f\u0171t\u0151 \u00e9s egy\u00e9b nyomtat\u00f3vezet\u00e9kek nem szakadtak vagy rong\u00e1l\u00f3dtak. (A nyomtat\u00f3 mozg\u00e1sa megterhelheti a hib\u00e1s vezet\u00e9ket, ami \u00e9rintkez\u00e9si hib\u00e1khoz, r\u00f6vidz\u00e1rlathoz vagy t\u00falzott zajkelt\u00e9shez vezethet.) Jelent\u00e9seket kaptunk magas USB-zajr\u00f3l, amikor a nyomtat\u00f3, \u00e9s a gazdag\u00e9p 5V-os t\u00e1pell\u00e1t\u00e1sa keveredik. (Ha azt tapasztalod, hogy a mikrokontroller bekapcsol, amikor a gazdag\u00e9p t\u00e1pell\u00e1t\u00e1sa be van kapcsolva, vagy az USB-k\u00e1bel be van dugva, akkor ez azt jelzi, hogy az 5V-os t\u00e1pegys\u00e9gek keverednek.) Seg\u00edthet, ha \u00fagy konfigur\u00e1lod a mikrokontrollert, hogy csak az egyik forr\u00e1sb\u00f3l sz\u00e1rmaz\u00f3 \u00e1ramot haszn\u00e1lod. (Alternat\u00edv megold\u00e1sk\u00e9nt, ha a mikrokontroller lapja nem tudja konfigur\u00e1lni az \u00e1ramforr\u00e1s\u00e1t, m\u00f3dos\u00edthatunk egy USB-k\u00e1belt \u00fagy, hogy az ne sz\u00e1ll\u00edtson 5V-os \u00e1ramot a gazdag\u00e9p \u00e9s a mikrokontroller k\u00f6z\u00f6tt.)","title":"V\u00e9letlenszer\u0171 \"Elveszett a kommunik\u00e1ci\u00f3 az MCU-val\" hib\u00e1k"},{"location":"FAQ.html#a-raspberry-pi-ujraindul-nyomtatas-kozben","text":"Ez val\u00f3sz\u00edn\u0171leg a fesz\u00fclts\u00e9gingadoz\u00e1sok miatt van. K\u00f6vesse ugyanazokat a hibaelh\u00e1r\u00edt\u00e1si l\u00e9p\u00e9seket a V\u00e9letlenszer\u0171 \"Elveszett a kommunik\u00e1ci\u00f3 az MCU-val\" hib\u00e1k eset\u00e9n.","title":"A Raspberry Pi \u00fajraindul nyomtat\u00e1s k\u00f6zben"},{"location":"FAQ.html#amikor-beallitom-a-restart_methodcommand-az-avr-keszulekem-ujrainditaskor-lefagy","text":"Az AVR bootloader n\u00e9h\u00e1ny r\u00e9gi verzi\u00f3j\u00e1nak ismert hib\u00e1ja van a watchdog esem\u00e9ny kezel\u00e9s\u00e9ben. Ez \u00e1ltal\u00e1ban akkor jelentkezik, ha a printer.cfg f\u00e1jlban a restart_method be\u00e1ll\u00edt\u00e1sa \"command\". Amikor a hiba el\u0151fordul, az AVR eszk\u00f6z nem reag\u00e1l, am\u00edg a t\u00e1pell\u00e1t\u00e1st el nem veszik \u00e9s \u00fajra be nem kapcsolj\u00e1k az eszk\u00f6zbe (a t\u00e1pell\u00e1t\u00e1s vagy az \u00e1llapotjelz\u0151 LED-ek is t\u00f6bbsz\u00f6r villoghatnak, am\u00edg a t\u00e1pell\u00e1t\u00e1st el nem veszik). A megold\u00e1s a \"command\" -t\u00f3l elt\u00e9r\u0151 restart_method haszn\u00e1lata, vagy egy friss\u00edtett bootloader \u00e9get\u00e9se az AVR eszk\u00f6zre. Egy \u00faj bootloader \u00e9get\u00e9se egy egyszeri l\u00e9p\u00e9s, amelyhez \u00e1ltal\u00e1ban k\u00fcls\u0151 programoz\u00f3ra van sz\u00fcks\u00e9g - tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd Bootloaderek dokumentumot.","title":"Amikor be\u00e1ll\u00edtom a restart_method=command az AVR k\u00e9sz\u00fcl\u00e9kem \u00fajraind\u00edt\u00e1skor lefagy"},{"location":"FAQ.html#a-futoelemek-bekapcsolva-maradnak-ha-a-raspberry-pi-osszeomlik","text":"A szoftvert \u00fagy tervezt\u00e9k, hogy ezt megakad\u00e1lyozza. Ha a gazdag\u00e9p egyszer enged\u00e9lyezi a f\u0171t\u0151berendez\u00e9st, a szoftver\u00e9nek 5 m\u00e1sodpercenk\u00e9nt meg kell er\u0151s\u00edtenie az enged\u00e9lyez\u00e9st. Ha a mikrokontroller nem kap 5 m\u00e1sodpercenk\u00e9nt meger\u0151s\u00edt\u00e9st, akkor \"le\u00e1ll\u00edt\u00e1s\" \u00e1llapotba ker\u00fcl, amelynek c\u00e9lja, hogy kikapcsolja az \u00f6sszes f\u0171t\u0151berendez\u00e9st \u00e9s l\u00e9ptet\u0151motort. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd az MCU-parancsok dokumentumban tal\u00e1lhat\u00f3 \"config_digital_out\" parancsot. Ezenk\u00edv\u00fcl a mikrovez\u00e9rl\u0151 szoftver ind\u00edt\u00e1skor minden f\u0171t\u0151berendez\u00e9shez be van \u00e1ll\u00edtva egy minim\u00e1lis \u00e9s maxim\u00e1lis h\u0151m\u00e9rs\u00e9klettartom\u00e1ny (a r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1sban tal\u00e1lhat\u00f3 min_temp \u00e9s max_temp param\u00e9tereket). Ha a mikrokontroller azt \u00e9rz\u00e9keli, hogy a h\u0151m\u00e9rs\u00e9klet e tartom\u00e1nyon k\u00edv\u00fcl esik, akkor szint\u00e9n \"le\u00e1ll\u00edt\u00e1s\" \u00e1llapotba l\u00e9p. A gazdaszoftver k\u00fcl\u00f6n k\u00f3dot is tartalmaz a f\u0171t\u0151elemek \u00e9s a h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151k helyes m\u0171k\u00f6d\u00e9s\u00e9nek ellen\u0151rz\u00e9s\u00e9re. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1s dokumentumot.","title":"A f\u0171t\u0151elemek bekapcsolva maradnak, ha a Raspberry Pi \u00f6sszeomlik?"},{"location":"FAQ.html#hogyan-alakithatok-at-egy-marlin-tu-szamot-klipper-tu-nevre","text":"R\u00f6vid v\u00e1lasz: sample-aliases.cfg f\u00e1jlban tal\u00e1lhat\u00f3 lek\u00e9pez\u00e9s. Haszn\u00e1ld ezt a f\u00e1jlt \u00fatmutat\u00f3k\u00e9nt a t\u00e9nyleges mikrokontroller t\u0171 nevek megtal\u00e1l\u00e1s\u00e1hoz. (Az is lehets\u00e9ges, hogy a vonatkoz\u00f3 board_pins config szakaszt \u00e1tm\u00e1sold a config f\u00e1jlj\u00e1ba, \u00e9s haszn\u00e1ld az \u00e1lneveket a configban, de el\u0151ny\u00f6sebb a t\u00e9nyleges mikrokontroller t\u0171 nevek leford\u00edt\u00e1sa \u00e9s haszn\u00e1lata.) Vedd figyelembe, hogy a sample-aliases.cfg f\u00e1jl olyan t\u0171 neveket haszn\u00e1l, amelyek \"ar\" el\u0151taggal kezd\u0151dnek \"D\" helyett (pl. az Arduino t\u0171 D23 a Klipper \u00e1ln\u00e9v ar23 ) \u00e9s az \"analog\" helyett \"A\" (pl. az Arduino t\u0171 A14 a Klipper \u00e1ln\u00e9v analog14 ). Hossz\u00fa v\u00e1lasz: Klipper a mikrokontroller \u00e1ltal meghat\u00e1rozott szabv\u00e1nyos t\u0171 neveket haszn\u00e1lja. Az Atmega chipeken ezek a hardveres t\u0171k olyan neveket viselnek, mint PA4 , PC7 , vagy PD2 . R\u00e9gen az Arduino projekt \u00fagy d\u00f6nt\u00f6tt, hogy nem haszn\u00e1lja a szabv\u00e1nyos hardverneveket, hanem saj\u00e1t, n\u00f6vekv\u0151 sz\u00e1mokon alapul\u00f3 t\u0171 neveket haszn\u00e1l. Ezek az Arduino nevek \u00e1ltal\u00e1ban \u00fagy n\u00e9znek ki, mint D23 vagy A14 . Ez egy szerencs\u00e9tlen v\u00e1laszt\u00e1s volt, amely sok zavart okozott. K\u00fcl\u00f6n\u00f6sen az Arduino t\u0171-sz\u00e1mok gyakran nem ford\u00edtj\u00e1k le ugyanazokat a hardveres neveket. P\u00e9ld\u00e1ul a D21 az PD0 egy k\u00f6z\u00f6s Arduino lapon, de PC7 egy m\u00e1sik k\u00f6z\u00f6s Arduino lapon. A zavar elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a Klipper alapk\u00f3dja a mikrokontroller \u00e1ltal meghat\u00e1rozott szabv\u00e1nyos t\u0171 neveket haszn\u00e1lja.","title":"Hogyan alak\u00edthatok \u00e1t egy Marlin t\u0171 sz\u00e1mot Klipper t\u0171 n\u00e9vre?"},{"location":"FAQ.html#az-eszkozomet-egy-adott-tipusu-mikrokontroller-tuhoz-kell-csatlakoztatnom","text":"Ez az eszk\u00f6z t\u00edpus\u00e1t\u00f3l \u00e9s a t\u0171 t\u00edpus\u00e1t\u00f3l f\u00fcgg: ADC t\u0171k (vagy anal\u00f3g t\u0171k): Termisztorok \u00e9s hasonl\u00f3 \"anal\u00f3g\" \u00e9rz\u00e9kel\u0151k eset\u00e9n az eszk\u00f6zt a mikrokontroller egy \"anal\u00f3g\" vagy \"ADC\" -k\u00e9pes t\u0171j\u00e9re kell csatlakoztatni. Ha a Klippert olyan t\u0171 haszn\u00e1lat\u00e1ra konfigur\u00e1lod, amely nem anal\u00f3g k\u00e9pes, a Klipper egy \"Nem \u00e9rv\u00e9nyes ADC t\u0171\" hib\u00e1t fog jelenteni. PWM t\u0171k (vagy id\u0151z\u00edt\u0151 t\u0171k): A Klipper alap\u00e9rtelmez\u00e9s szerint nem haszn\u00e1l hardveres PWM-et egyetlen eszk\u00f6z eset\u00e9ben sem. Teh\u00e1t \u00e1ltal\u00e1ban a f\u0171t\u0151testeket, ventil\u00e1torokat \u00e9s hasonl\u00f3 eszk\u00f6z\u00f6ket b\u00e1rmelyik \u00e1ltal\u00e1nos c\u00e9l\u00fa IO t\u0171re lehet vezet\u00e9kezni. A ventil\u00e1torok \u00e9s az output_pin eszk\u00f6z\u00f6k azonban opcion\u00e1lisan \u00fagy konfigur\u00e1lhat\u00f3k, hogy hardware_pwm: True \u00e9rt\u00e9ket haszn\u00e1lnak, amely esetben a mikrokontrollernek t\u00e1mogatnia kell a hardveres PWM-et a t\u0171n (ellenkez\u0151 esetben a Klipper egy \"Not a valid PWM pin\" hib\u00e1t fog jelezni). IRQ-t\u0171k (vagy megszak\u00edt\u00e1si t\u0171k): A Klipper nem haszn\u00e1l hardveres megszak\u00edt\u00e1sokat az IO t\u0171k\u00f6n, ez\u00e9rt soha nem sz\u00fcks\u00e9ges egy eszk\u00f6zt ezen mikrokontroller t\u0171k egyik\u00e9re vezetni. SPI-t\u0171k: A hardveres SPI haszn\u00e1latakor a t\u0171ket a mikrokontroller SPI-k\u00e9pes t\u0171ihez kell csatlakoztatni. A legt\u00f6bb eszk\u00f6z azonban konfigur\u00e1lhat\u00f3 a \"szoftveres SPI\" haszn\u00e1lat\u00e1ra, amely esetben b\u00e1rmely \u00e1ltal\u00e1nos c\u00e9l\u00fa IO-t\u0171 haszn\u00e1lhat\u00f3. I2C t\u0171k: I2C haszn\u00e1latakor a t\u0171ket a mikrokontroller I2C-k\u00e9pes t\u0171ihez kell csatlakoztatni. M\u00e1s eszk\u00f6z\u00f6k b\u00e1rmelyik \u00e1ltal\u00e1nos c\u00e9l\u00fa IO t\u0171re csatlakoztathat\u00f3k. P\u00e9ld\u00e1ul l\u00e9ptet\u0151k, f\u0171t\u0151k, ventil\u00e1torok, Z-szond\u00e1k, szerv\u00f3k, LED-ek, k\u00f6z\u00f6s hd44780/st7920 LCD-kijelz\u0151k, a Trinamic UART vez\u00e9rl\u0151vonal b\u00e1rmely \u00e1ltal\u00e1nos c\u00e9l\u00fa IO-t\u0171h\u00f6z csatlakoztathat\u00f3.","title":"Az eszk\u00f6z\u00f6met egy adott t\u00edpus\u00fa mikrokontroller t\u0171h\u00f6z kell csatlakoztatnom?"},{"location":"FAQ.html#hogyan-tudom-torolni-az-m109m190-varakozas-a-homersekletre-kerest","text":"Navig\u00e1lj az OctoPrint termin\u00e1l f\u00fclre, \u00e9s adj ki egy M112 parancsot a termin\u00e1lmez\u0151ben. Az M112 parancs hat\u00e1s\u00e1ra a Klipper \"le\u00e1ll\u00edt\u00e1s\" \u00e1llapotba ker\u00fcl, \u00e9s az OctoPrint megszak\u00edtja a kapcsolatot a Klipperrel. Navig\u00e1lj az OctoPrint csatlakoz\u00e1si ter\u00fclet\u00e9re, \u00e9s kattints a \"Kapcsol\u00f3d\u00e1s\" gombra, hogy az OctoPrint \u00fajra csatlakozzon. Navig\u00e1lj vissza a termin\u00e1l f\u00fclre, \u00e9s adj ki egy FIRMWARE_RESTART parancsot a Klipper hiba\u00e1llapot\u00e1nak t\u00f6rl\u00e9s\u00e9hez. E m\u0171veletsor befejez\u00e9se ut\u00e1n az el\u0151z\u0151 f\u0171t\u00e9sk\u00e9r\u00e9s t\u00f6rl\u0151dik, \u00e9s \u00faj nyomtat\u00e1s ind\u00edthat\u00f3.","title":"Hogyan tudom t\u00f6r\u00f6lni az M109/M190 \"v\u00e1rakoz\u00e1s a h\u0151m\u00e9rs\u00e9kletre\" k\u00e9r\u00e9st?"},{"location":"FAQ.html#meg-tudom-allapitani-hogy-a-nyomtato-vesztett-e-lepeseket","text":"Bizonyos \u00e9rtelemben igen. Ind\u00edtsa el a nyomtat\u00f3t, adj ki egy GET_POSITION parancsot, ind\u00edtsa el a nyomtat\u00e1st, ind\u00edtsa el \u00fajra, \u00e9s adj ki egy \u00fajabb GET_POSITION parancsot. Ezut\u00e1n hasonl\u00edtsa \u00f6ssze az mcu: sorban szerepl\u0151 \u00e9rt\u00e9keket. Ez hasznos lehet a be\u00e1ll\u00edt\u00e1sok, p\u00e9ld\u00e1ul a l\u00e9ptet\u0151motorok \u00e1ram\u00e1nak, gyorsul\u00e1s\u00e1nak \u00e9s sebess\u00e9g\u00e9nek be\u00e1ll\u00edt\u00e1s\u00e1hoz an\u00e9lk\u00fcl, hogy t\u00e9nylegesen nyomtatnod kellene valamit \u00e9s pazarolnod kellene a sz\u00e1lakat: csak futtass n\u00e9h\u00e1ny nagy sebess\u00e9g\u0171 mozg\u00e1st a GET_POSITION parancsok k\u00f6z\u00f6tt. Vedd figyelembe, hogy a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3k maguk is hajlamosak kiss\u00e9 elt\u00e9r\u0151 poz\u00edci\u00f3ban kioldani, \u00edgy a n\u00e9h\u00e1ny mikrol\u00e9p\u00e9snyi k\u00fcl\u00f6nbs\u00e9g val\u00f3sz\u00edn\u0171leg a v\u00e9g\u00e1ll\u00e1s pontatlans\u00e1g\u00e1nak eredm\u00e9nye. Maga a l\u00e9ptet\u0151motor csak 4 teljes l\u00e9p\u00e9senk\u00e9nt k\u00e9pes l\u00e9p\u00e9seket vesz\u00edteni. (Teh\u00e1t, ha 16 mikrol\u00e9p\u00e9st haszn\u00e1lunk, akkor a l\u00e9ptet\u0151 egy elvesztett l\u00e9p\u00e9se azt eredm\u00e9nyezi, hogy az \"mcu:\" l\u00e9p\u00e9ssz\u00e1ml\u00e1l\u00f3 64 mikrol\u00e9p\u00e9s t\u00f6bbsz\u00f6r\u00f6s\u00e9vel t\u00e9ved.)","title":"Meg tudom \u00e1llap\u00edtani, hogy a nyomtat\u00f3 vesztett-e l\u00e9p\u00e9seket?"},{"location":"FAQ.html#miert-jelent-hibat-a-klipper-elrontotta-a-nyomtatasomat","text":"R\u00f6vid v\u00e1lasz: A nyomtat\u00f3ink probl\u00e9m\u00e1kat \u00e9szlelnek, hogy a m\u00f6g\u00f6ttes probl\u00e9m\u00e1t orvosolni lehessen, \u00e9s kiv\u00e1l\u00f3 min\u0151s\u00e9g\u0171 nyomatokat kaphassunk. Semmik\u00e9ppen sem szeretn\u00e9nk, ha a nyomtat\u00f3ink csendben rossz min\u0151s\u00e9g\u0171 nyomatokat k\u00e9sz\u00edten\u00e9nek. Hossz\u00fa v\u00e1lasz: A Klipper \u00fagy lett megtervezve, hogy automatikusan megoldjon sz\u00e1mos \u00e1tmeneti probl\u00e9m\u00e1t. P\u00e9ld\u00e1ul automatikusan \u00e9szleli a kommunik\u00e1ci\u00f3s hib\u00e1kat, \u00e9s \u00fajratov\u00e1bb\u00edtja azokat; el\u0151re \u00fctemezi a m\u0171veleteket, \u00e9s t\u00f6bb r\u00e9tegben puffereli a parancsokat, hogy m\u00e9g id\u0151szakos interferencia eset\u00e9n is pontos id\u0151z\u00edt\u00e9st tegyen lehet\u0151v\u00e9. Ha azonban a szoftver olyan hib\u00e1t \u00e9szlel, amelyb\u0151l nem tud helyre\u00e1llni, ha \u00e9rv\u00e9nytelen m\u0171veletre kap parancsot, vagy ha azt \u00e9szleli, hogy rem\u00e9nytelen\u00fcl k\u00e9ptelen v\u00e9grehajtani a parancsolt feladatot, akkor a Klipper hib\u00e1t jelent. Ezekben a helyzetekben nagy a kock\u00e1zata annak, hogy rossz min\u0151s\u00e9g\u0171 nyomtat\u00e1s k\u00e9sz\u00fcl (vagy rosszabb). Rem\u00e9lj\u00fck, hogy a felhaszn\u00e1l\u00f3 figyelmeztet\u00e9se lehet\u0151v\u00e9 teszi sz\u00e1m\u00e1ra, hogy megoldja a kiv\u00e1lt\u00f3 probl\u00e9m\u00e1t, \u00e9s jav\u00edtsa a nyomatok \u00e1ltal\u00e1nos min\u0151s\u00e9g\u00e9t. Van n\u00e9h\u00e1ny kapcsol\u00f3d\u00f3 k\u00e9rd\u00e9s: Mi\u00e9rt nem sz\u00fcnetelteti a Klipper a nyomtat\u00e1st? Nem jelent figyelmeztet\u00e9st helyette? A nyomtat\u00e1s el\u0151tt nem ellen\u0151rzi a hib\u00e1kat? Figyelmen k\u00edv\u00fcl hagyja a hib\u00e1kat a felhaszn\u00e1l\u00f3 \u00e1ltal beg\u00e9pelt parancsokban? stb. Jelenleg a Klipper a G-k\u00f3d protokollt haszn\u00e1lva olvassa a parancsokat, \u00e9s sajnos a G-k\u00f3d parancsprotokoll nem el\u00e9g rugalmas ahhoz, hogy ezek az alternat\u00edv\u00e1k ma m\u00e1r praktikusak legyenek. A fejleszt\u0151k \u00e9rdekl\u0151dnek a felhaszn\u00e1l\u00f3i \u00e9lm\u00e9ny jav\u00edt\u00e1sa ir\u00e1nt a rendellenes esem\u00e9nyek sor\u00e1n, de ez v\u00e1rhat\u00f3an jelent\u0151s infrastruktur\u00e1lis munk\u00e1t ig\u00e9nyel (bele\u00e9rtve a G-k\u00f3dt\u00f3l val\u00f3 elt\u00e1volod\u00e1st).","title":"Mi\u00e9rt jelent hib\u00e1t a Klipper? Elrontotta a nyomtat\u00e1somat!"},{"location":"FAQ.html#hogyan-frissithetek-a-legujabb-szoftverre","text":"A szoftver friss\u00edt\u00e9s\u00e9nek els\u0151 l\u00e9p\u00e9se a legfrissebb konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00e1sok dokumentum \u00e1ttekint\u00e9se. Alkalmank\u00e9nt olyan v\u00e1ltoz\u00e1sok t\u00f6rt\u00e9nnek a szoftverben, amelyek miatt a felhaszn\u00e1l\u00f3knak friss\u00edteni\u00fck kell a be\u00e1ll\u00edt\u00e1saikat a szoftverfriss\u00edt\u00e9s r\u00e9szek\u00e9nt. A friss\u00edt\u00e9s el\u0151tt \u00e9rdemes \u00e1tn\u00e9zni ezt a dokumentumot. Ha k\u00e9szen \u00e1ll a friss\u00edt\u00e9sre, az \u00e1ltal\u00e1nos m\u00f3dszer az, hogy SSH-t haszn\u00e1lunk a Raspberry Pi-n, \u00e9s futtatjuk: cd ~/klipper git pull ~/klipper/scripts/install-octopi.sh Ezut\u00e1n \u00fajraford\u00edthatjuk \u00e9s \u00e9gethetj\u00fck a mikrokontroller k\u00f3dj\u00e1t. P\u00e9ld\u00e1ul: make menuconfig make clean make sudo service klipper stop make flash FLASH_DEVICE=/dev/ttyACM0 sudo service klipper start Azonban gyakran el\u0151fordul, hogy csak a gazdaszoftver v\u00e1ltozik. Ebben az esetben csak a gazdaszoftvert friss\u00edthetj\u00fck \u00e9s ind\u00edthatjuk \u00fajra: cd ~/klipper git pull sudo service klipper restart Ha e parancs haszn\u00e1lata ut\u00e1n a szoftver arra figyelmeztet, hogy a mikrokontrollert \u00fajra kell \u00e9getni, vagy m\u00e1s szokatlan hiba l\u00e9p fel, akkor k\u00f6vesse a fent le\u00edrt teljes friss\u00edt\u00e9si l\u00e9p\u00e9seket. Ha tov\u00e1bbra is fenn\u00e1llnak a hib\u00e1k, akkor ellen\u0151rizd a konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00e1sok dokumentumot, mivel lehet, hogy m\u00f3dos\u00edtani kell a nyomtat\u00f3 konfigur\u00e1ci\u00f3j\u00e1t. Ne feledd, hogy a RESTART \u00e9s FIRMWARE_RESTART G-k\u00f3d parancsok nem t\u00f6ltenek be \u00faj szoftvert a fenti \"sudo service klipper restart\" \u00e9s \"make flash\" parancsok sz\u00fcks\u00e9gesek a szoftverv\u00e1lt\u00e1s \u00e9rv\u00e9nybe l\u00e9p\u00e9s\u00e9hez.","title":"Hogyan friss\u00edthetek a leg\u00fajabb szoftverre?"},{"location":"FAQ.html#hogyan-tavolitsam-el-a-klippert","text":"A firmware oldalon semmi k\u00fcl\u00f6n\u00f6snek nem kell t\u00f6rt\u00e9nnie. Csak k\u00f6vesse az \u00faj firmware \u00e9get\u00e9si utas\u00edt\u00e1sait. A Raspberry Pi oldalon egy elt\u00e1vol\u00edt\u00f3 szkript el\u00e9rhet\u0151 a scripts/klipper-uninstall.sh alatt. P\u00e9ld\u00e1ul: sudo ~/klipper/scripts/klipper-uninstall.sh rm -rf ~/klippy-env ~/klipper","title":"Hogyan t\u00e1vol\u00edtsam el a klippert?"},{"location":"Features.html","text":"Funkci\u00f3k \u00b6 A Klipper sz\u00e1mos leny\u0171g\u00f6z\u0151 tulajdons\u00e1ggal rendelkezik: Nagy pontoss\u00e1g\u00fa l\u00e9ptet\u0151 mozg\u00e1s. A Klipper egy alkalmaz\u00e1sprocesszort (p\u00e9ld\u00e1ul egy olcs\u00f3 Raspberry Pi-t) haszn\u00e1l a nyomtat\u00f3 mozg\u00e1s\u00e1nak kisz\u00e1m\u00edt\u00e1s\u00e1hoz. Az alkalmaz\u00e1sprocesszor hat\u00e1rozza meg, hogy mikor l\u00e9pjenek az egyes l\u00e9ptet\u0151motorok, t\u00f6m\u00f6r\u00edti ezeket az esem\u00e9nyeket, tov\u00e1bb\u00edtja \u0151ket a mikrokontrollerhez, majd a mikrokontroller v\u00e9grehajtja az esem\u00e9nyeket a k\u00e9rt id\u0151pontban. Minden egyes l\u00e9ptet\u0151mozg\u00e1st 25 mikroszekundumos vagy ann\u00e1l jobb pontoss\u00e1ggal \u00fctemez\u00fcnk. A szoftver nem haszn\u00e1l kinematikai becsl\u00e9seket (mint p\u00e9ld\u00e1ul a Bresenham-algoritmus). Ehelyett a gyorsul\u00e1s fizik\u00e1ja \u00e9s a g\u00e9p kinematik\u00e1j\u00e1nak fizik\u00e1ja alapj\u00e1n sz\u00e1m\u00edtja ki a pontos l\u00e9p\u00e9sid\u0151ket. A pontosabb l\u00e9ptet\u0151mozg\u00e1s a nyomtat\u00f3 csendesebb \u00e9s stabilabb m\u0171k\u00f6d\u00e9s\u00e9t eredm\u00e9nyezi. Kateg\u00f3ri\u00e1j\u00e1ban legjobb teljes\u00edtm\u00e9ny. A Klipper k\u00e9pes magas l\u00e9ptet\u00e9si sebess\u00e9get el\u00e9rni mind az \u00faj, mind a r\u00e9gi mikrokontrollereken. M\u00e9g a r\u00e9gi 8 bites mikrovez\u00e9rl\u0151k is k\u00e9pesek 175 000 l\u00e9p\u00e9s/m\u00e1sodperc feletti sebess\u00e9get el\u00e9rni. Az \u00fajabb mikrokontrollereken m\u00e1sodpercenk\u00e9nt t\u00f6bb milli\u00f3 l\u00e9p\u00e9s is lehets\u00e9ges. A nagyobb l\u00e9ptet\u00e9si sebess\u00e9g nagyobb nyomtat\u00e1si sebess\u00e9get tesz lehet\u0151v\u00e9. A l\u00e9ptet\u00e9sek id\u0151z\u00edt\u00e9se m\u00e9g nagy sebess\u00e9gn\u00e9l is pontos marad, ami jav\u00edtja az \u00e1ltal\u00e1nos stabilit\u00e1st. A Klipper t\u00e1mogatja a t\u00f6bb mikrovez\u00e9rl\u0151vel rendelkez\u0151 nyomtat\u00f3kat. P\u00e9ld\u00e1ul egy mikrokontroller haszn\u00e1lhat\u00f3 az extruder vez\u00e9rl\u00e9s\u00e9re, m\u00edg egy m\u00e1sik a nyomtat\u00f3 f\u0171t\u0151berendez\u00e9s\u00e9t, m\u00edg egy harmadik a nyomtat\u00f3 t\u00f6bbi r\u00e9sz\u00e9t vez\u00e9rli. A Klipper gazdaszoftver \u00f3rajel-szinkroniz\u00e1ci\u00f3t val\u00f3s\u00edt meg a mikrovez\u00e9rl\u0151k k\u00f6z\u00f6tti \u00f3rajel-eltol\u00f3d\u00e1s figyelembev\u00e9tele \u00e9rdek\u00e9ben. A t\u00f6bb mikrovez\u00e9rl\u0151 enged\u00e9lyez\u00e9s\u00e9hez nincs sz\u00fcks\u00e9g k\u00fcl\u00f6n k\u00f3dra, csak n\u00e9h\u00e1ny extra sorra a konfigur\u00e1ci\u00f3s f\u00e1jlban. Konfigur\u00e1ci\u00f3 egyszer\u0171 konfigur\u00e1ci\u00f3s f\u00e1jlon kereszt\u00fcl. Nincs sz\u00fcks\u00e9g a mikrokontroller \u00fajrafriss\u00edt\u00e9s\u00e9re a be\u00e1ll\u00edt\u00e1sok megv\u00e1ltoztat\u00e1s\u00e1hoz. Az \u00f6sszes Klipper konfigur\u00e1ci\u00f3 egy szabv\u00e1nyos konfigur\u00e1ci\u00f3s f\u00e1jlban van t\u00e1rolva, amely k\u00f6nnyen szerkeszthet\u0151. Ez megk\u00f6nny\u00edti a hardver be\u00e1ll\u00edt\u00e1s\u00e1t \u00e9s karbantart\u00e1s\u00e1t. A Klipper t\u00e1mogatja a \"Smooth Pressure Advance\" - egy olyan mechanizmust, amely figyelembe veszi a nyom\u00e1st az extruderben. Ez cs\u00f6kkenti az extruder \"sziv\u00e1rg\u00e1s\u00e1t\" \u00e9s jav\u00edtja a nyomtat\u00e1si sarkok min\u0151s\u00e9g\u00e9t. A Klipper beavatkoz\u00e1sa nem vezet be pillanatnyi extruder sebess\u00e9gv\u00e1ltoz\u00e1st, ami jav\u00edtja az \u00e1ltal\u00e1nos stabilit\u00e1st \u00e9s robusztuss\u00e1got. A Klipper t\u00e1mogatja az \"Input Shaping\" funkci\u00f3t a rezg\u00e9sek nyomtat\u00e1si min\u0151s\u00e9gre gyakorolt hat\u00e1s\u00e1nak cs\u00f6kkent\u00e9se \u00e9rdek\u00e9ben. Ez cs\u00f6kkentheti vagy kik\u00fcsz\u00f6b\u00f6lheti a \"gy\u0171r\u0151d\u00e9st\" (m\u00e1s n\u00e9ven \"szellemk\u00e9p\", \"visszhang\" vagy \"hull\u00e1mz\u00e1s\") a nyomatokon. Lehet\u0151v\u00e9 teheti a gyorsabb nyomtat\u00e1si sebess\u00e9g el\u00e9r\u00e9s\u00e9t is, mik\u00f6zben a nyomtat\u00e1s min\u0151s\u00e9ge tov\u00e1bbra is magas marad. A Klipper egy \"interakt\u00edv megold\u00e1st\" haszn\u00e1l a pontos l\u00e9p\u00e9sid\u0151k kisz\u00e1m\u00edt\u00e1s\u00e1hoz egyszer\u0171 kinematikai egyenletekb\u0151l. Ez megk\u00f6nny\u00edti a Klipper \u00e1t\u00fcltet\u00e9s\u00e9t \u00faj t\u00edpus\u00fa robotokra, \u00e9s az id\u0151z\u00edt\u00e9st m\u00e9g \u00f6sszetett kinematika eset\u00e9n is pontosan tartja (nincs sz\u00fcks\u00e9g \"vonalszegment\u00e1l\u00e1sra\"). \u00c1tvihet\u0151 k\u00f3d. A Klipper ARM, AVR \u00e9s PRU alap\u00fa mikrovez\u00e9rl\u0151k\u00f6n is m\u0171k\u00f6dik. A megl\u00e9v\u0151 \"RepRap\" st\u00edlus\u00fa nyomtat\u00f3k hardveres m\u00f3dos\u00edt\u00e1s n\u00e9lk\u00fcl futtathatj\u00e1k a Klippert. Csak egy Raspberry Pi-t kell hozz\u00e1adni. A Klipper bels\u0151 k\u00f3delrendez\u00e9se megk\u00f6nny\u00edti m\u00e1s mikrokontroller-architekt\u00far\u00e1k t\u00e1mogat\u00e1s\u00e1t is. Egyszer\u0171bb k\u00f3d. A Klipper egy nagyon magas szint\u0171 nyelvet (Python) haszn\u00e1l a legt\u00f6bb k\u00f3dhoz. A kinematikai algoritmusok, a G-k\u00f3d elemz\u00e9se, a f\u0171t\u00e9si \u00e9s termisztor algoritmusok stb. mind Pythonban \u00edr\u00f3dnak. Ez megk\u00f6nny\u00edti az \u00faj funkci\u00f3k fejleszt\u00e9s\u00e9t is. Egy\u00e9ni programozhat\u00f3 makr\u00f3k. \u00daj G-k\u00f3d parancsok defini\u00e1lhat\u00f3k a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1ban (nincs sz\u00fcks\u00e9g k\u00f3dm\u00f3dos\u00edt\u00e1sra). Ezek a parancsok programozhat\u00f3k lehet\u0151v\u00e9 t\u00e9ve, hogy a nyomtat\u00f3 \u00e1llapot\u00e1t\u00f3l f\u00fcgg\u0151en k\u00fcl\u00f6nb\u00f6z\u0151 m\u0171veleteket hajtsanak v\u00e9gre. Be\u00e9p\u00edtett API-kiszolg\u00e1l\u00f3. A Klipper a szabv\u00e1nyos G-k\u00f3dos interf\u00e9sz mellett egy gazdag JSON-alap\u00fa alkalmaz\u00e1si fel\u00fcletet is t\u00e1mogat. Ez lehet\u0151v\u00e9 teszi a programoz\u00f3k sz\u00e1m\u00e1ra, hogy k\u00fcls\u0151 alkalmaz\u00e1sokat k\u00e9sz\u00edtsenek a nyomtat\u00f3 r\u00e9szletes vez\u00e9rl\u00e9s\u00e9vel. Tov\u00e1bbi funkci\u00f3k \u00b6 A Klipper sz\u00e1mos szabv\u00e1nyos 3D nyomtat\u00f3 funkci\u00f3t t\u00e1mogat: Egy\u00fcttm\u0171k\u00f6dik az Octoprint-tel. Ez lehet\u0151v\u00e9 teszi a nyomtat\u00f3 vez\u00e9rl\u00e9s\u00e9t egy hagyom\u00e1nyos webb\u00f6ng\u00e9sz\u0151vel. Ugyanaz a Raspberry Pi, amelyen a Klipper fut, k\u00e9pes az Octoprint futtat\u00e1s\u00e1ra is. Standard G-k\u00f3d t\u00e1mogat\u00e1s. A tipikus \"szeletel\u0151k\" (SuperSlicer, Cura, PrusaSlicer, stb.) \u00e1ltal el\u0151\u00e1ll\u00edtott \u00e1ltal\u00e1nos G-k\u00f3d parancsok t\u00e1mogatottak. T\u00f6bb extruder t\u00e1mogat\u00e1sa. A k\u00f6z\u00f6s f\u0171t\u0151berendez\u00e9ssel rendelkez\u0151 extrudereket \u00e9s a f\u00fcggetlen kocsikon (IDEX) l\u00e9v\u0151 extrudereket is t\u00e1mogatj\u00e1k. T\u00e1mogatja a cartesian, delta, corexy, corexz, hybrid-corexy, hybrid-corexz, rotary delta, pol\u00e1r \u00e9s k\u00e1belcs\u00f6rl\u0151 st\u00edlus\u00fa nyomtat\u00f3kat. T\u00e1rgyasztal szintez\u00e9s\u00e9nek automatikus t\u00e1mogat\u00e1sa. A Klipper konfigur\u00e1lhat\u00f3 alapszint\u0171 t\u00e1rgyasztal d\u0151l\u00e9s-\u00e9rz\u00e9kel\u00e9sre vagy a t\u00e1rgyasztal teljes h\u00e1l\u00f3s szintez\u00e9s\u00e9re. Ha a t\u00e1rgyasztal t\u00f6bb Z steppert haszn\u00e1l, akkor a Klipper a Z stepperek f\u00fcggetlen manipul\u00e1l\u00e1s\u00e1val is k\u00e9pes szintezni. A legt\u00f6bb Z magass\u00e1gm\u00e9r\u0151 szonda t\u00e1mogatott, bele\u00e9rtve a BL-Touch szond\u00e1kat \u00e9s a szerv\u00f3motoros szond\u00e1kat is. Automatikus delta kalibr\u00e1ci\u00f3 t\u00e1mogat\u00e1sa. A kalibr\u00e1l\u00f3 eszk\u00f6z alapvet\u0151 magass\u00e1gi kalibr\u00e1l\u00e1st, valamint tov\u00e1bbfejlesztett X \u00e9s Y dimenzi\u00f3 kalibr\u00e1l\u00e1st v\u00e9gezhet. A kalibr\u00e1l\u00e1s elv\u00e9gezhet\u0151 Z magass\u00e1gm\u00e9r\u0151vel vagy k\u00e9zi szintez\u0151vel. Az \u00e1ltal\u00e1nos h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k t\u00e1mogat\u00e1sa (pl. \u00e1ltal\u00e1nos termisztorok, AD595, AD597, AD849x, PT100, PT1000, MAX6675, MAX31855, MAX31856, MAX31865, BME280, HTU21D, DS18B20 \u00e9s LM75). Egyedi termisztorok \u00e9s egyedi anal\u00f3g h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k is konfigur\u00e1lhat\u00f3k. Lehet figyelni a mikrokontroller h\u0151m\u00e9rs\u00e9klet\u00e9t \u00e9s a Raspberry Pi processzor h\u0151m\u00e9rs\u00e9klet\u00e9t. Alap\u00e9rtelmez\u00e9s szerint a f\u0171t\u00e9sv\u00e9delem enged\u00e9lyezett. Standard ventil\u00e1torok, fejh\u0171t\u0151 ventil\u00e1torok \u00e9s h\u0151m\u00e9rs\u00e9klet-szab\u00e1lyozott ventil\u00e1torok t\u00e1mogat\u00e1sa. Nincs sz\u00fcks\u00e9g arra, hogy a ventil\u00e1torok folyamatosan m\u0171k\u00f6djenek, amikor a nyomtat\u00f3 \u00fcresj\u00e1ratban van. A fordulatsz\u00e1mm\u00e9r\u0151vel ell\u00e1tott ventil\u00e1torokn\u00e1l a ventil\u00e1torok fordulatsz\u00e1ma ellen\u0151rizhet\u0151. A TMC2130, TMC2208/TMC2224, TMC2209, TMC2660 \u00e9s TMC5160 l\u00e9ptet\u0151motor-meghajt\u00f3k fut\u00e1sidej\u0171 konfigur\u00e1ci\u00f3j\u00e1nak t\u00e1mogat\u00e1sa. A hagyom\u00e1nyos l\u00e9ptet\u0151motor-meghajt\u00f3k AD5206, MCP4451, MCP4728, MCP4018 \u00e9s PWM-t\u0171k\u00f6n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 \u00e1ramszab\u00e1lyoz\u00e1s\u00e1nak t\u00e1mogat\u00e1sa is biztos\u00edtott. K\u00f6zvetlen\u00fcl a nyomtat\u00f3hoz csatlakoztatott \u00e1ltal\u00e1nos LCD-kijelz\u0151k t\u00e1mogat\u00e1sa. Egy alap\u00e9rtelmezett men\u00fc is rendelkez\u00e9sre \u00e1ll. A kijelz\u0151 \u00e9s a men\u00fc tartalma a konfigur\u00e1ci\u00f3s f\u00e1jlon kereszt\u00fcl teljesen testreszabhat\u00f3. \u00c1lland\u00f3 gyorsul\u00e1s \u00e9s \"look-ahead\" t\u00e1mogat\u00e1s. Minden mozg\u00e1s fokozatosan gyorsul fel \u00e1ll\u00f3 helyzetb\u0151l utaz\u00f3sebess\u00e9gre, majd lassul vissza \u00e1ll\u00f3 helyzetbe. A be\u00e9rkez\u0151 G-k\u00f3dos mozg\u00e1sparancsok sorba ker\u00fclnek \u00e9s elemzik \u0151ket. A hasonl\u00f3 ir\u00e1ny\u00fa mozg\u00e1sok k\u00f6z\u00f6tti gyorsul\u00e1s optimaliz\u00e1lva lesz a nyomtat\u00e1si hib\u00e1k cs\u00f6kkent\u00e9se \u00e9s a teljes nyomtat\u00e1si id\u0151 jav\u00edt\u00e1sa \u00e9rdek\u00e9ben. A Klipper egy olyan \"l\u00e9ptet\u0151f\u00e1zis v\u00e9g\u00e1ll\u00e1s\" algoritmust val\u00f3s\u00edt meg, amely jav\u00edthatja a tipikus v\u00e9g\u00e1ll\u00e1skapcsol\u00f3k pontoss\u00e1g\u00e1t. Megfelel\u0151 be\u00e1ll\u00edt\u00e1s eset\u00e9n jav\u00edthatja a nyomtat\u00e1s els\u0151 r\u00e9teg t\u00e1rgyasztalhoz tapad\u00e1s\u00e1t. Sz\u00e1ljelenl\u00e9t-, sz\u00e1lmozg\u00e1s- \u00e9s sz\u00e1lsz\u00e9less\u00e9g-\u00e9rz\u00e9kel\u0151k t\u00e1mogat\u00e1sa. A rezg\u00e9sek m\u00e9r\u00e9s\u00e9nek \u00e9s r\u00f6gz\u00edt\u00e9s\u00e9nek t\u00e1mogat\u00e1sa adxl345 gyorsul\u00e1sm\u00e9r\u0151vel. A nyomtat\u00f3 rezg\u00e9s\u00e9nek \u00e9s zaj\u00e1nak cs\u00f6kkent\u00e9se \u00e9rdek\u00e9ben a r\u00f6vid \"cikcakk\" mozg\u00e1sok cs\u00facssebess\u00e9g\u00e9nek korl\u00e1toz\u00e1s\u00e1nak t\u00e1mogat\u00e1sa. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a Kinematika dokumentumot. Sz\u00e1mos gyakori nyomtat\u00f3hoz rendelkez\u00e9sre \u00e1llnak minta konfigur\u00e1ci\u00f3s f\u00e1jlok. List\u00e1t a config k\u00f6nyvt\u00e1rban tal\u00e1lja. A Klipper haszn\u00e1lata el\u0151tt olvasd el a telep\u00edt\u00e9si \u00fatmutat\u00f3t. L\u00e9p\u00e9s Teljes\u00edtm\u00e9ny\u00e9rt\u00e9k \u00b6 Az al\u00e1bbiakban a l\u00e9ptet\u0151 teljes\u00edtm\u00e9nytesztek eredm\u00e9nyeit mutatjuk be. A felt\u00fcntetett sz\u00e1mok a mikrokontroller m\u00e1sodpercenk\u00e9nti \u00f6sszes l\u00e9p\u00e9ssz\u00e1m\u00e1t jelentik. Mikrokontroller 1 akt\u00edv l\u00e9ptet\u0151 3 akt\u00edv l\u00e9ptet\u0151 16Mhz AVR 157K 99K 20Mhz AVR 196K 123K SAMD21 686K 471K STM32F042 814K 578K Beaglebone PRU 866K 708K STM32G0B1 1103K 790K STM32F103 1180K 818K SAM3X8E 1273K 981K SAM4S8C 1690K 1385K LPC1768 1923K 1351K LPC1769 2353K 1622K RP2040 2400K 1636K SAM4E8E 2500K 1674K SAMD51 3077K 1885K STM32F407 3652K 2459K STM32F446 3913K 2634K STM32H743 9091K 6061K Ha nem tudja, hogy egy adott lapon milyen mikrokontroller van, keresse meg a megfelel\u0151 config f\u00e1jlt , \u00e9s keresse meg a mikrokontroller nev\u00e9t a f\u00e1jl tetej\u00e9n l\u00e9v\u0151 megjegyz\u00e9sekben. A referencia\u00e9rt\u00e9kekkel kapcsolatos tov\u00e1bbi r\u00e9szletek a Referencia\u00e9rt\u00e9kek dokumentumban tal\u00e1lhat\u00f3k.","title":"Funkci\u00f3k"},{"location":"Features.html#funkciok","text":"A Klipper sz\u00e1mos leny\u0171g\u00f6z\u0151 tulajdons\u00e1ggal rendelkezik: Nagy pontoss\u00e1g\u00fa l\u00e9ptet\u0151 mozg\u00e1s. A Klipper egy alkalmaz\u00e1sprocesszort (p\u00e9ld\u00e1ul egy olcs\u00f3 Raspberry Pi-t) haszn\u00e1l a nyomtat\u00f3 mozg\u00e1s\u00e1nak kisz\u00e1m\u00edt\u00e1s\u00e1hoz. Az alkalmaz\u00e1sprocesszor hat\u00e1rozza meg, hogy mikor l\u00e9pjenek az egyes l\u00e9ptet\u0151motorok, t\u00f6m\u00f6r\u00edti ezeket az esem\u00e9nyeket, tov\u00e1bb\u00edtja \u0151ket a mikrokontrollerhez, majd a mikrokontroller v\u00e9grehajtja az esem\u00e9nyeket a k\u00e9rt id\u0151pontban. Minden egyes l\u00e9ptet\u0151mozg\u00e1st 25 mikroszekundumos vagy ann\u00e1l jobb pontoss\u00e1ggal \u00fctemez\u00fcnk. A szoftver nem haszn\u00e1l kinematikai becsl\u00e9seket (mint p\u00e9ld\u00e1ul a Bresenham-algoritmus). Ehelyett a gyorsul\u00e1s fizik\u00e1ja \u00e9s a g\u00e9p kinematik\u00e1j\u00e1nak fizik\u00e1ja alapj\u00e1n sz\u00e1m\u00edtja ki a pontos l\u00e9p\u00e9sid\u0151ket. A pontosabb l\u00e9ptet\u0151mozg\u00e1s a nyomtat\u00f3 csendesebb \u00e9s stabilabb m\u0171k\u00f6d\u00e9s\u00e9t eredm\u00e9nyezi. Kateg\u00f3ri\u00e1j\u00e1ban legjobb teljes\u00edtm\u00e9ny. A Klipper k\u00e9pes magas l\u00e9ptet\u00e9si sebess\u00e9get el\u00e9rni mind az \u00faj, mind a r\u00e9gi mikrokontrollereken. M\u00e9g a r\u00e9gi 8 bites mikrovez\u00e9rl\u0151k is k\u00e9pesek 175 000 l\u00e9p\u00e9s/m\u00e1sodperc feletti sebess\u00e9get el\u00e9rni. Az \u00fajabb mikrokontrollereken m\u00e1sodpercenk\u00e9nt t\u00f6bb milli\u00f3 l\u00e9p\u00e9s is lehets\u00e9ges. A nagyobb l\u00e9ptet\u00e9si sebess\u00e9g nagyobb nyomtat\u00e1si sebess\u00e9get tesz lehet\u0151v\u00e9. A l\u00e9ptet\u00e9sek id\u0151z\u00edt\u00e9se m\u00e9g nagy sebess\u00e9gn\u00e9l is pontos marad, ami jav\u00edtja az \u00e1ltal\u00e1nos stabilit\u00e1st. A Klipper t\u00e1mogatja a t\u00f6bb mikrovez\u00e9rl\u0151vel rendelkez\u0151 nyomtat\u00f3kat. P\u00e9ld\u00e1ul egy mikrokontroller haszn\u00e1lhat\u00f3 az extruder vez\u00e9rl\u00e9s\u00e9re, m\u00edg egy m\u00e1sik a nyomtat\u00f3 f\u0171t\u0151berendez\u00e9s\u00e9t, m\u00edg egy harmadik a nyomtat\u00f3 t\u00f6bbi r\u00e9sz\u00e9t vez\u00e9rli. A Klipper gazdaszoftver \u00f3rajel-szinkroniz\u00e1ci\u00f3t val\u00f3s\u00edt meg a mikrovez\u00e9rl\u0151k k\u00f6z\u00f6tti \u00f3rajel-eltol\u00f3d\u00e1s figyelembev\u00e9tele \u00e9rdek\u00e9ben. A t\u00f6bb mikrovez\u00e9rl\u0151 enged\u00e9lyez\u00e9s\u00e9hez nincs sz\u00fcks\u00e9g k\u00fcl\u00f6n k\u00f3dra, csak n\u00e9h\u00e1ny extra sorra a konfigur\u00e1ci\u00f3s f\u00e1jlban. Konfigur\u00e1ci\u00f3 egyszer\u0171 konfigur\u00e1ci\u00f3s f\u00e1jlon kereszt\u00fcl. Nincs sz\u00fcks\u00e9g a mikrokontroller \u00fajrafriss\u00edt\u00e9s\u00e9re a be\u00e1ll\u00edt\u00e1sok megv\u00e1ltoztat\u00e1s\u00e1hoz. Az \u00f6sszes Klipper konfigur\u00e1ci\u00f3 egy szabv\u00e1nyos konfigur\u00e1ci\u00f3s f\u00e1jlban van t\u00e1rolva, amely k\u00f6nnyen szerkeszthet\u0151. Ez megk\u00f6nny\u00edti a hardver be\u00e1ll\u00edt\u00e1s\u00e1t \u00e9s karbantart\u00e1s\u00e1t. A Klipper t\u00e1mogatja a \"Smooth Pressure Advance\" - egy olyan mechanizmust, amely figyelembe veszi a nyom\u00e1st az extruderben. Ez cs\u00f6kkenti az extruder \"sziv\u00e1rg\u00e1s\u00e1t\" \u00e9s jav\u00edtja a nyomtat\u00e1si sarkok min\u0151s\u00e9g\u00e9t. A Klipper beavatkoz\u00e1sa nem vezet be pillanatnyi extruder sebess\u00e9gv\u00e1ltoz\u00e1st, ami jav\u00edtja az \u00e1ltal\u00e1nos stabilit\u00e1st \u00e9s robusztuss\u00e1got. A Klipper t\u00e1mogatja az \"Input Shaping\" funkci\u00f3t a rezg\u00e9sek nyomtat\u00e1si min\u0151s\u00e9gre gyakorolt hat\u00e1s\u00e1nak cs\u00f6kkent\u00e9se \u00e9rdek\u00e9ben. Ez cs\u00f6kkentheti vagy kik\u00fcsz\u00f6b\u00f6lheti a \"gy\u0171r\u0151d\u00e9st\" (m\u00e1s n\u00e9ven \"szellemk\u00e9p\", \"visszhang\" vagy \"hull\u00e1mz\u00e1s\") a nyomatokon. Lehet\u0151v\u00e9 teheti a gyorsabb nyomtat\u00e1si sebess\u00e9g el\u00e9r\u00e9s\u00e9t is, mik\u00f6zben a nyomtat\u00e1s min\u0151s\u00e9ge tov\u00e1bbra is magas marad. A Klipper egy \"interakt\u00edv megold\u00e1st\" haszn\u00e1l a pontos l\u00e9p\u00e9sid\u0151k kisz\u00e1m\u00edt\u00e1s\u00e1hoz egyszer\u0171 kinematikai egyenletekb\u0151l. Ez megk\u00f6nny\u00edti a Klipper \u00e1t\u00fcltet\u00e9s\u00e9t \u00faj t\u00edpus\u00fa robotokra, \u00e9s az id\u0151z\u00edt\u00e9st m\u00e9g \u00f6sszetett kinematika eset\u00e9n is pontosan tartja (nincs sz\u00fcks\u00e9g \"vonalszegment\u00e1l\u00e1sra\"). \u00c1tvihet\u0151 k\u00f3d. A Klipper ARM, AVR \u00e9s PRU alap\u00fa mikrovez\u00e9rl\u0151k\u00f6n is m\u0171k\u00f6dik. A megl\u00e9v\u0151 \"RepRap\" st\u00edlus\u00fa nyomtat\u00f3k hardveres m\u00f3dos\u00edt\u00e1s n\u00e9lk\u00fcl futtathatj\u00e1k a Klippert. Csak egy Raspberry Pi-t kell hozz\u00e1adni. A Klipper bels\u0151 k\u00f3delrendez\u00e9se megk\u00f6nny\u00edti m\u00e1s mikrokontroller-architekt\u00far\u00e1k t\u00e1mogat\u00e1s\u00e1t is. Egyszer\u0171bb k\u00f3d. A Klipper egy nagyon magas szint\u0171 nyelvet (Python) haszn\u00e1l a legt\u00f6bb k\u00f3dhoz. A kinematikai algoritmusok, a G-k\u00f3d elemz\u00e9se, a f\u0171t\u00e9si \u00e9s termisztor algoritmusok stb. mind Pythonban \u00edr\u00f3dnak. Ez megk\u00f6nny\u00edti az \u00faj funkci\u00f3k fejleszt\u00e9s\u00e9t is. Egy\u00e9ni programozhat\u00f3 makr\u00f3k. \u00daj G-k\u00f3d parancsok defini\u00e1lhat\u00f3k a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1ban (nincs sz\u00fcks\u00e9g k\u00f3dm\u00f3dos\u00edt\u00e1sra). Ezek a parancsok programozhat\u00f3k lehet\u0151v\u00e9 t\u00e9ve, hogy a nyomtat\u00f3 \u00e1llapot\u00e1t\u00f3l f\u00fcgg\u0151en k\u00fcl\u00f6nb\u00f6z\u0151 m\u0171veleteket hajtsanak v\u00e9gre. Be\u00e9p\u00edtett API-kiszolg\u00e1l\u00f3. A Klipper a szabv\u00e1nyos G-k\u00f3dos interf\u00e9sz mellett egy gazdag JSON-alap\u00fa alkalmaz\u00e1si fel\u00fcletet is t\u00e1mogat. Ez lehet\u0151v\u00e9 teszi a programoz\u00f3k sz\u00e1m\u00e1ra, hogy k\u00fcls\u0151 alkalmaz\u00e1sokat k\u00e9sz\u00edtsenek a nyomtat\u00f3 r\u00e9szletes vez\u00e9rl\u00e9s\u00e9vel.","title":"Funkci\u00f3k"},{"location":"Features.html#tovabbi-funkciok","text":"A Klipper sz\u00e1mos szabv\u00e1nyos 3D nyomtat\u00f3 funkci\u00f3t t\u00e1mogat: Egy\u00fcttm\u0171k\u00f6dik az Octoprint-tel. Ez lehet\u0151v\u00e9 teszi a nyomtat\u00f3 vez\u00e9rl\u00e9s\u00e9t egy hagyom\u00e1nyos webb\u00f6ng\u00e9sz\u0151vel. Ugyanaz a Raspberry Pi, amelyen a Klipper fut, k\u00e9pes az Octoprint futtat\u00e1s\u00e1ra is. Standard G-k\u00f3d t\u00e1mogat\u00e1s. A tipikus \"szeletel\u0151k\" (SuperSlicer, Cura, PrusaSlicer, stb.) \u00e1ltal el\u0151\u00e1ll\u00edtott \u00e1ltal\u00e1nos G-k\u00f3d parancsok t\u00e1mogatottak. T\u00f6bb extruder t\u00e1mogat\u00e1sa. A k\u00f6z\u00f6s f\u0171t\u0151berendez\u00e9ssel rendelkez\u0151 extrudereket \u00e9s a f\u00fcggetlen kocsikon (IDEX) l\u00e9v\u0151 extrudereket is t\u00e1mogatj\u00e1k. T\u00e1mogatja a cartesian, delta, corexy, corexz, hybrid-corexy, hybrid-corexz, rotary delta, pol\u00e1r \u00e9s k\u00e1belcs\u00f6rl\u0151 st\u00edlus\u00fa nyomtat\u00f3kat. T\u00e1rgyasztal szintez\u00e9s\u00e9nek automatikus t\u00e1mogat\u00e1sa. A Klipper konfigur\u00e1lhat\u00f3 alapszint\u0171 t\u00e1rgyasztal d\u0151l\u00e9s-\u00e9rz\u00e9kel\u00e9sre vagy a t\u00e1rgyasztal teljes h\u00e1l\u00f3s szintez\u00e9s\u00e9re. Ha a t\u00e1rgyasztal t\u00f6bb Z steppert haszn\u00e1l, akkor a Klipper a Z stepperek f\u00fcggetlen manipul\u00e1l\u00e1s\u00e1val is k\u00e9pes szintezni. A legt\u00f6bb Z magass\u00e1gm\u00e9r\u0151 szonda t\u00e1mogatott, bele\u00e9rtve a BL-Touch szond\u00e1kat \u00e9s a szerv\u00f3motoros szond\u00e1kat is. Automatikus delta kalibr\u00e1ci\u00f3 t\u00e1mogat\u00e1sa. A kalibr\u00e1l\u00f3 eszk\u00f6z alapvet\u0151 magass\u00e1gi kalibr\u00e1l\u00e1st, valamint tov\u00e1bbfejlesztett X \u00e9s Y dimenzi\u00f3 kalibr\u00e1l\u00e1st v\u00e9gezhet. A kalibr\u00e1l\u00e1s elv\u00e9gezhet\u0151 Z magass\u00e1gm\u00e9r\u0151vel vagy k\u00e9zi szintez\u0151vel. Az \u00e1ltal\u00e1nos h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k t\u00e1mogat\u00e1sa (pl. \u00e1ltal\u00e1nos termisztorok, AD595, AD597, AD849x, PT100, PT1000, MAX6675, MAX31855, MAX31856, MAX31865, BME280, HTU21D, DS18B20 \u00e9s LM75). Egyedi termisztorok \u00e9s egyedi anal\u00f3g h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151k is konfigur\u00e1lhat\u00f3k. Lehet figyelni a mikrokontroller h\u0151m\u00e9rs\u00e9klet\u00e9t \u00e9s a Raspberry Pi processzor h\u0151m\u00e9rs\u00e9klet\u00e9t. Alap\u00e9rtelmez\u00e9s szerint a f\u0171t\u00e9sv\u00e9delem enged\u00e9lyezett. Standard ventil\u00e1torok, fejh\u0171t\u0151 ventil\u00e1torok \u00e9s h\u0151m\u00e9rs\u00e9klet-szab\u00e1lyozott ventil\u00e1torok t\u00e1mogat\u00e1sa. Nincs sz\u00fcks\u00e9g arra, hogy a ventil\u00e1torok folyamatosan m\u0171k\u00f6djenek, amikor a nyomtat\u00f3 \u00fcresj\u00e1ratban van. A fordulatsz\u00e1mm\u00e9r\u0151vel ell\u00e1tott ventil\u00e1torokn\u00e1l a ventil\u00e1torok fordulatsz\u00e1ma ellen\u0151rizhet\u0151. A TMC2130, TMC2208/TMC2224, TMC2209, TMC2660 \u00e9s TMC5160 l\u00e9ptet\u0151motor-meghajt\u00f3k fut\u00e1sidej\u0171 konfigur\u00e1ci\u00f3j\u00e1nak t\u00e1mogat\u00e1sa. A hagyom\u00e1nyos l\u00e9ptet\u0151motor-meghajt\u00f3k AD5206, MCP4451, MCP4728, MCP4018 \u00e9s PWM-t\u0171k\u00f6n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 \u00e1ramszab\u00e1lyoz\u00e1s\u00e1nak t\u00e1mogat\u00e1sa is biztos\u00edtott. K\u00f6zvetlen\u00fcl a nyomtat\u00f3hoz csatlakoztatott \u00e1ltal\u00e1nos LCD-kijelz\u0151k t\u00e1mogat\u00e1sa. Egy alap\u00e9rtelmezett men\u00fc is rendelkez\u00e9sre \u00e1ll. A kijelz\u0151 \u00e9s a men\u00fc tartalma a konfigur\u00e1ci\u00f3s f\u00e1jlon kereszt\u00fcl teljesen testreszabhat\u00f3. \u00c1lland\u00f3 gyorsul\u00e1s \u00e9s \"look-ahead\" t\u00e1mogat\u00e1s. Minden mozg\u00e1s fokozatosan gyorsul fel \u00e1ll\u00f3 helyzetb\u0151l utaz\u00f3sebess\u00e9gre, majd lassul vissza \u00e1ll\u00f3 helyzetbe. A be\u00e9rkez\u0151 G-k\u00f3dos mozg\u00e1sparancsok sorba ker\u00fclnek \u00e9s elemzik \u0151ket. A hasonl\u00f3 ir\u00e1ny\u00fa mozg\u00e1sok k\u00f6z\u00f6tti gyorsul\u00e1s optimaliz\u00e1lva lesz a nyomtat\u00e1si hib\u00e1k cs\u00f6kkent\u00e9se \u00e9s a teljes nyomtat\u00e1si id\u0151 jav\u00edt\u00e1sa \u00e9rdek\u00e9ben. A Klipper egy olyan \"l\u00e9ptet\u0151f\u00e1zis v\u00e9g\u00e1ll\u00e1s\" algoritmust val\u00f3s\u00edt meg, amely jav\u00edthatja a tipikus v\u00e9g\u00e1ll\u00e1skapcsol\u00f3k pontoss\u00e1g\u00e1t. Megfelel\u0151 be\u00e1ll\u00edt\u00e1s eset\u00e9n jav\u00edthatja a nyomtat\u00e1s els\u0151 r\u00e9teg t\u00e1rgyasztalhoz tapad\u00e1s\u00e1t. Sz\u00e1ljelenl\u00e9t-, sz\u00e1lmozg\u00e1s- \u00e9s sz\u00e1lsz\u00e9less\u00e9g-\u00e9rz\u00e9kel\u0151k t\u00e1mogat\u00e1sa. A rezg\u00e9sek m\u00e9r\u00e9s\u00e9nek \u00e9s r\u00f6gz\u00edt\u00e9s\u00e9nek t\u00e1mogat\u00e1sa adxl345 gyorsul\u00e1sm\u00e9r\u0151vel. A nyomtat\u00f3 rezg\u00e9s\u00e9nek \u00e9s zaj\u00e1nak cs\u00f6kkent\u00e9se \u00e9rdek\u00e9ben a r\u00f6vid \"cikcakk\" mozg\u00e1sok cs\u00facssebess\u00e9g\u00e9nek korl\u00e1toz\u00e1s\u00e1nak t\u00e1mogat\u00e1sa. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a Kinematika dokumentumot. Sz\u00e1mos gyakori nyomtat\u00f3hoz rendelkez\u00e9sre \u00e1llnak minta konfigur\u00e1ci\u00f3s f\u00e1jlok. List\u00e1t a config k\u00f6nyvt\u00e1rban tal\u00e1lja. A Klipper haszn\u00e1lata el\u0151tt olvasd el a telep\u00edt\u00e9si \u00fatmutat\u00f3t.","title":"Tov\u00e1bbi funkci\u00f3k"},{"location":"Features.html#lepes-teljesitmenyertek","text":"Az al\u00e1bbiakban a l\u00e9ptet\u0151 teljes\u00edtm\u00e9nytesztek eredm\u00e9nyeit mutatjuk be. A felt\u00fcntetett sz\u00e1mok a mikrokontroller m\u00e1sodpercenk\u00e9nti \u00f6sszes l\u00e9p\u00e9ssz\u00e1m\u00e1t jelentik. Mikrokontroller 1 akt\u00edv l\u00e9ptet\u0151 3 akt\u00edv l\u00e9ptet\u0151 16Mhz AVR 157K 99K 20Mhz AVR 196K 123K SAMD21 686K 471K STM32F042 814K 578K Beaglebone PRU 866K 708K STM32G0B1 1103K 790K STM32F103 1180K 818K SAM3X8E 1273K 981K SAM4S8C 1690K 1385K LPC1768 1923K 1351K LPC1769 2353K 1622K RP2040 2400K 1636K SAM4E8E 2500K 1674K SAMD51 3077K 1885K STM32F407 3652K 2459K STM32F446 3913K 2634K STM32H743 9091K 6061K Ha nem tudja, hogy egy adott lapon milyen mikrokontroller van, keresse meg a megfelel\u0151 config f\u00e1jlt , \u00e9s keresse meg a mikrokontroller nev\u00e9t a f\u00e1jl tetej\u00e9n l\u00e9v\u0151 megjegyz\u00e9sekben. A referencia\u00e9rt\u00e9kekkel kapcsolatos tov\u00e1bbi r\u00e9szletek a Referencia\u00e9rt\u00e9kek dokumentumban tal\u00e1lhat\u00f3k.","title":"L\u00e9p\u00e9s Teljes\u00edtm\u00e9ny\u00e9rt\u00e9k"},{"location":"G-Codes.html","text":"G-k\u00f3dok \u00b6 Ez a dokumentum a Klipper \u00e1ltal t\u00e1mogatott parancsokat \u00edrja le. Ezek olyan parancsok, amelyeket az OctoPrint konzolj\u00e1ba lehet be\u00edrni. G-k\u00f3d parancsok \u00b6 A Klipper a k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d parancsokat t\u00e1mogatja: Move (G0 or G1): G1 [X<pos>] [Y<pos>] [Z<pos>] [E<pos>] [F<speed>] Tart\u00f3zkod\u00e1s: G4 P<milliszekundum> Ugr\u00e1s a forr\u00e1sra: G28 [X] [Y] [Z] Kapcsold ki a motorokat: M18 vagy M84 V\u00e1rja meg, am\u00edg az aktu\u00e1lis mozdulat befejez\u0151dik: M400 Haszn\u00e1lj abszol\u00fat/relat\u00edv t\u00e1vols\u00e1gokat az extrud\u00e1l\u00e1shoz: M82 , M83 Abszol\u00fat/relat\u00edv koordin\u00e1t\u00e1k haszn\u00e1lata: G90 , G91 \u00c1ll\u00edtsd be a poz\u00edci\u00f3t: G92 [X<pos>] [Y<pos>] [Z<pos>] [E<pos>] A sebess\u00e9gt\u00e9nyez\u0151 fel\u00fclb\u00edr\u00e1l\u00e1si sz\u00e1zal\u00e9k\u00e1nak be\u00e1ll\u00edt\u00e1sa: M220 S<percent> Extrud\u00e1l\u00e1si t\u00e9nyez\u0151 fel\u00fclb\u00edr\u00e1l\u00e1si sz\u00e1zal\u00e9k\u00e1nak be\u00e1ll\u00edt\u00e1sa: M221 S<percent> Gyors\u00edt\u00e1s be\u00e1ll\u00edt\u00e1sa: M204 S<value> VAGY M204 P<value> T<value> Megjegyz\u00e9s: Ha az S nincs megadva, de a P \u00e9s a T meg van adva, akkor a gyorsul\u00e1s a P \u00e9s a T k\u00f6z\u00fcl a minimumra van be\u00e1ll\u00edtva. Ha a P vagy a T k\u00f6z\u00fcl csak az egyik van megadva, a parancsnak nincs hat\u00e1sa. Extruder h\u0151m\u00e9rs\u00e9klet\u00e9nek lek\u00e9rdez\u00e9se: M105 Az extruder h\u0151m\u00e9rs\u00e9klet\u00e9nek be\u00e1ll\u00edt\u00e1sa: M104 [T<index>] [S<temperature>] Be\u00e1ll\u00edtja az extruder h\u0151m\u00e9rs\u00e9klet\u00e9t \u00e9s v\u00e1rakozik: M109 [T<index>] S<temperature> Megjegyz\u00e9s: Az M109 mindig megv\u00e1rja, m\u00edg a h\u0151m\u00e9rs\u00e9klet be\u00e1ll a k\u00e9rt \u00e9rt\u00e9kre Be\u00e1ll\u00edtja a t\u00e1rgyasztal h\u0151m\u00e9rs\u00e9klet\u00e9t: M140 [S<temperature>] Be\u00e1ll\u00edtja a t\u00e1rgyasztal h\u0151m\u00e9rs\u00e9klet\u00e9t \u00e9s v\u00e1rakozik: M190 S<temperature> Megjegyz\u00e9s: Az M190 mindig megv\u00e1rja, hogy a h\u0151m\u00e9rs\u00e9klet be\u00e1lljon a k\u00e9rt \u00e9rt\u00e9kre A ventil\u00e1tor sebess\u00e9g\u00e9nek be\u00e1ll\u00edt\u00e1sa: M106 S<value> Kikapcsolja a ventil\u00e1tort: M107 V\u00e9szle\u00e1ll\u00edt\u00f3: M112 Jelenlegi poz\u00edci\u00f3 lek\u00e9rdez\u00e9se: M114 A firmware verzi\u00f3j\u00e1nak lek\u00e9rdez\u00e9se: M115 A fenti parancsokkal kapcsolatos tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a RepRap G-k\u00f3d dokument\u00e1ci\u00f3 f\u00e1jlt. A Klipper c\u00e9lja, hogy t\u00e1mogassa az \u00e1ltal\u00e1nos 3. f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 szoftverek (pl. OctoPrint, Printrun, Slic3r, Cura, stb.) \u00e1ltal gener\u00e1lt G-k\u00f3d parancsokat a szabv\u00e1nyos konfigur\u00e1ci\u00f3ikban. Nem c\u00e9l, hogy minden lehets\u00e9ges G-k\u00f3d parancsot t\u00e1mogasson. Ehelyett a Klipper az ember \u00e1ltal olvashat\u00f3 \"kiterjesztett G-k\u00f3d\" parancsokat r\u00e9szes\u00edti el\u0151nyben. Hasonl\u00f3k\u00e9ppen, a G-k\u00f3d termin\u00e1l kimenete is csak ember \u00e1ltal olvashat\u00f3. L\u00e1sd az API Szerver dokumentumot , ha a Klippert k\u00fcls\u0151 szoftverb\u0151l ir\u00e1ny\u00edtod. Ha egy kev\u00e9sb\u00e9 gyakori G-k\u00f3d parancsra van sz\u00fcks\u00e9g, akkor azt egy egy\u00e9ni gcode_macro config section seg\u00edts\u00e9g\u00e9vel lehet megval\u00f3s\u00edtani. P\u00e9ld\u00e1ul ezt haszn\u00e1lhatn\u00e1nk a k\u00f6vetkez\u0151kre: G12 , G29 , G30 , G31 , M42 , M80 , M81 , T1 stb. Tov\u00e1bbi parancsok \u00b6 A Klipper \"kiterjesztett\" G-k\u00f3d parancsokat haszn\u00e1l az \u00e1ltal\u00e1nos konfigur\u00e1ci\u00f3hoz \u00e9s \u00e1llapothoz. Ezek a kiterjesztett parancsok mind hasonl\u00f3 form\u00e1tumot k\u00f6vetnek, egy parancsn\u00e9vvel kezd\u0151dnek, \u00e9s egy vagy t\u00f6bb param\u00e9ter k\u00f6vetheti \u0151ket. P\u00e9ld\u00e1ul: SET_SERVO SERVO=myservo ANGLE=5.3 . Ebben a parancssorban a parancsok \u00e9s param\u00e9terek nagybet\u0171vel szerepelnek, azonban a nagy- \u00e9s kisbet\u0171ket nem kell figyelembe venni. (Teh\u00e1t a \"SET_SERVO\" \u00e9s a \"set_servo\" mindkett\u0151 ugyanazt jelenti.) Ez a szakasz a Klipper modul neve szerint van rendezve, amely \u00e1ltal\u00e1ban a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlban megadott szakaszneveket k\u00f6veti. Vedd figyelembe, hogy egyes modulok automatikusan bet\u00f6lt\u0151dnek. [adxl345] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha az adxl345 konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. ACCELEROMETER_MEASURE \u00b6 ACCELEROMETER_MEASURE [CHIP=<config_name>] [NAME=<value>] : A gyorsul\u00e1sm\u00e9r\u0151 m\u00e9r\u00e9sek elind\u00edt\u00e1sa a k\u00e9rt m\u00e1sodpercenk\u00e9nti mintav\u00e9telek sz\u00e1m\u00e1val. Ha a CHIP nincs megadva, az alap\u00e9rtelmezett \u00e9rt\u00e9k \"adxl345\". A parancs start-stop \u00fczemm\u00f3dban m\u0171k\u00f6dik: az els\u0151 v\u00e9grehajt\u00e1skor elind\u00edtja a m\u00e9r\u00e9seket, a k\u00f6vetkez\u0151 v\u00e9grehajt\u00e1skor le\u00e1ll\u00edtja azokat. A m\u00e9r\u00e9sek eredm\u00e9nyei a /tmp/adxl345-<chip>-<name> .csv nev\u0171 f\u00e1jlba ker\u00fclnek ki\u00edr\u00e1sra , ahol <chip> a gyorsul\u00e1sm\u00e9r\u0151 chip neve ( my_chip_name from [adxl345 my_chip_name] ) \u00e9s <name> az opcion\u00e1lis NAME param\u00e9ter. Ha a NAME nincs megadva, akkor az alap\u00e9rtelmezett \u00e9rt\u00e9k az aktu\u00e1lis id\u0151 \"\u00c9\u00c9\u00c9\u00c9\u00c9HHNN_\u00d3\u00d3PPMM\" form\u00e1tumban. Ha a gyorsul\u00e1sm\u00e9r\u0151nek nincs neve a konfigur\u00e1ci\u00f3s szakaszban (egyszer\u0171en [adxl345] ), akkor a <chip> n\u00e9vr\u00e9sz nem gener\u00e1l\u00f3dik. ACCELEROMETER_QUERY \u00b6 ACCELEROMETER_QUERY [CHIP=<config_name>] [RATE=<value>] : lek\u00e9rdezi a gyorsul\u00e1sm\u00e9r\u0151 aktu\u00e1lis \u00e9rt\u00e9k\u00e9t. Ha a CHIP nincs megadva, az alap\u00e9rtelmezett\"adxl345\". Ha a RATE nincs megadva, az alap\u00e9rtelmezett \u00e9rt\u00e9ket haszn\u00e1lja. Ez a parancs hasznos az ADXL345 gyorsul\u00e1sm\u00e9r\u0151vel val\u00f3 kapcsolat tesztel\u00e9s\u00e9re. A visszaadott \u00e9rt\u00e9kek egyik\u00e9nek a szabades\u00e9ses gyorsul\u00e1snak kell lennie (+/- a chip alapzaja). ACCELEROMETER_DEBUG_READ \u00b6 ACCELEROMETER_DEBUG_READ [CHIP=<config_name>] REG=<register> : lek\u00e9rdezi az ADXL345 \"register\" (pl. 44 vagy 0x2C) regiszter\u00e9t. Hasznos lehet hibakeres\u00e9si c\u00e9lokra. ACCELEROMETER_DEBUG_WRITE \u00b6 ACCELEROMETER_DEBUG_WRITE [CHIP=<config_name>] REG=<register> VAL=<value> : Nyers \"\u00e9rt\u00e9k\" \u00edr\u00e1sa a \"register\"-be. Mind az \"\u00e9rt\u00e9k\", mind a \"register\" lehet decim\u00e1lis vagy hexadecim\u00e1lis eg\u00e9sz sz\u00e1m. Haszn\u00e1ld \u00f3vatosan, \u00e9s hivatkozzon az ADXL345 adatlapj\u00e1ra. [angle] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha az sz\u00f6g konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. ANGLE_CALIBRATE \u00b6 ANGLE_CALIBRATE CHIP=<chip_name> : Sz\u00f6gkalibr\u00e1l\u00e1s v\u00e9grehajt\u00e1sa az adott \u00e9rz\u00e9kel\u0151n (kell lennie egy [angle chip_name] konfigur\u00e1ci\u00f3s szakasznak, amely megadta a stepper param\u00e9tert). FONTOS! Ez az eszk\u00f6z a norm\u00e1l kinematikai hat\u00e1r\u00e9rt\u00e9kek ellen\u0151rz\u00e9se n\u00e9lk\u00fcl adja ki a l\u00e9ptet\u0151motor mozg\u00e1s\u00e1t. Ide\u00e1lis esetben a motort a kalibr\u00e1l\u00e1s elv\u00e9gz\u00e9se el\u0151tt le kell v\u00e1lasztani az adott kocsir\u00f3l. Ha a l\u00e9ptet\u0151motor nem kapcsolhat\u00f3 le a nyomtat\u00f3r\u00f3l, gy\u0151z\u0151dj meg r\u00f3la, hogy a kocsi a kalibr\u00e1l\u00e1s megkezd\u00e9se el\u0151tt a s\u00edn k\u00f6zep\u00e9n\u00e9l van. (A l\u00e9ptet\u0151motor k\u00e9t teljes fordulatot el\u0151re vagy h\u00e1tra mozoghat a teszt sor\u00e1n.) A teszt elv\u00e9gz\u00e9se ut\u00e1n haszn\u00e1ld a SAVE_CONFIG parancsot a kalibr\u00e1ci\u00f3s adatok printer.cfg f\u00e1jlba t\u00f6rt\u00e9n\u0151 ment\u00e9s\u00e9hez. Az eszk\u00f6z haszn\u00e1lat\u00e1hoz telep\u00edteni kell a Python \"numpy\" csomagot (tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a rezonancia m\u00e9r\u00e9se dokumentumot . ANGLE_DEBUG_READ \u00b6 ANGLE_DEBUG_READ CHIP=<config_name> REG=<register> : A \"regiszter\" (pl. 44 vagy 0x2C) \u00e9rz\u00e9kel\u0151regiszter lek\u00e9rdez\u00e9se. Hasznos lehet hibakeres\u00e9si c\u00e9lokra. Ez csak a TLE5012B chipek eset\u00e9ben \u00e9rhet\u0151 el. ANGLE_DEBUG_WRITE \u00b6 ANGLE_DEBUG_WRITE CHIP=<config_name> REG=<register> VAL=<value> : Nyers \"\u00e9rt\u00e9k\" \u00edr\u00e1sa a \"register\" regiszter\u00e9be. Mind az \"\u00e9rt\u00e9k\", mind a \"regiszter\" lehet decim\u00e1lis vagy hexadecim\u00e1lis eg\u00e9sz sz\u00e1m. Haszn\u00e1ld \u00f3vatosan, \u00e9s hivatkozzon az \u00e9rz\u00e9kel\u0151 adatlapj\u00e1ra. Ez csak a TLE5012B chipek eset\u00e9ben \u00e9rhet\u0151 el. [bed_mesh] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a bed_mesh konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g az t\u00e1rgyasztal h\u00e1l\u00f3 \u00fatmutat\u00f3t ). BED_MESH_CALIBRATE \u00b6 BED_MESH_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>] [<mesh_parameter>=<value>] : Ez a parancs a t\u00e1rgyasztalt a konfigur\u00e1ci\u00f3ban megadott param\u00e9terek \u00e1ltal gener\u00e1lt pontok seg\u00edts\u00e9g\u00e9vel szintezi. A szintez\u00e9s ut\u00e1n egy h\u00e1l\u00f3 gener\u00e1l\u00f3dik, \u00e9s a Z elmozdul\u00e1s a h\u00e1l\u00f3nak megfelel\u0151en ker\u00fcl be\u00e1ll\u00edt\u00e1sra. Az opcion\u00e1lis szintez\u0151 param\u00e9terekkel kapcsolatos r\u00e9szletek\u00e9rt l\u00e1sd a PROBE parancsot. Ha a METHOD=manual parancsot adta meg, akkor a k\u00e9zi szintez\u0151 eszk\u00f6z aktiv\u00e1l\u00f3dik. Az eszk\u00f6z aktiv\u00e1l\u00e1sa k\u00f6zben el\u00e9rhet\u0151 tov\u00e1bbi parancsok r\u00e9szleteit l\u00e1sd a fenti MANUAL_PROBE parancsban. BED_MESH_OUTPUT \u00b6 BED_MESH_OUTPUT PGP=[<0:1>] : Ez a parancs az aktu\u00e1lis m\u00e9rt Z \u00e9rt\u00e9keket \u00e9s az aktu\u00e1lis h\u00e1l\u00f3\u00e9rt\u00e9keket adja ki a termin\u00e1lra. A PGP=1 megad\u00e1sa eset\u00e9n a bed_mesh \u00e1ltal gener\u00e1lt X, Y koordin\u00e1t\u00e1k \u00e9s a hozz\u00e1juk tartoz\u00f3 indexek ker\u00fclnek a termin\u00e1lra. BED_MESH_MAP \u00b6 BED_MESH_MAP : Ez a parancs a BED_MESH_OUTPUT-hoz hasonl\u00f3an a h\u00e1l\u00f3 aktu\u00e1lis \u00e1llapot\u00e1t \u00edrja ki a termin\u00e1lra. Az \u00e9rt\u00e9kek ember \u00e1ltal olvashat\u00f3 form\u00e1tumban t\u00f6rt\u00e9n\u0151 ki\u00edr\u00e1sa helyett az \u00e1llapotot JSON form\u00e1tumban szerializ\u00e1lja. Ez lehet\u0151v\u00e9 teszi az OctoPrint pluginek sz\u00e1m\u00e1ra, hogy k\u00f6nnyen r\u00f6gz\u00edts\u00e9k az adatokat, \u00e9s a t\u00e1rgyasztal felsz\u00edn\u00e9t k\u00f6zel\u00edt\u0151 magass\u00e1gi t\u00e9rk\u00e9peket hozzanak l\u00e9tre. BED_MESH_CLEAR \u00b6 BED_MESH_CLEAR : Ez a parancs t\u00f6rli a h\u00e1l\u00f3t \u00e9s elt\u00e1vol\u00edt minden Z-be\u00e1ll\u00edt\u00e1st. Aj\u00e1nlott ezt a parancsot befejez\u0151 G-k\u00f3dba tenni. BED_MESH_PROFILE \u00b6 BED_MESH_PROFILE LOAD=<name> SAVE=<name> REMOVE=<name> : Ez a parancs a h\u00e1l\u00f3 \u00e1llapot\u00e1nak profilkezel\u00e9s\u00e9t biztos\u00edtja. A LOAD a h\u00e1l\u00f3 \u00e1llapot\u00e1t a megadott n\u00e9vnek megfelel\u0151 profilb\u00f3l \u00e1ll\u00edtja vissza. A SAVE parancs az aktu\u00e1lis h\u00e1l\u00f3\u00e1llapotot a megadott n\u00e9vnek megfelel\u0151 profilba menti. A REMOVE a megadott n\u00e9vnek megfelel\u0151 profilt t\u00f6rli a tart\u00f3s mem\u00f3ri\u00e1b\u00f3l. Megjegyzend\u0151, hogy a SAVE vagy REMOVE m\u0171veletek lefuttat\u00e1sa ut\u00e1n a SAVE_CONFIG parancsot kell futtatni, hogy a tart\u00f3s mem\u00f3ri\u00e1ban v\u00e9grehajtott v\u00e1ltoztat\u00e1sok v\u00e9glegesek legyenek. BED_MESH_OFFSET \u00b6 BED_MESH_OFFSET [X=<value>] [Y=<value>] : X \u00e9s/vagy Y eltol\u00e1st alkalmazza a h\u00e1l\u00f3keres\u00e9shez. Ez a f\u00fcggetlen extruderekkel rendelkez\u0151 nyomtat\u00f3kn\u00e1l hasznos, mivel az eltol\u00e1s sz\u00fcks\u00e9ges a szersz\u00e1mcsere ut\u00e1ni helyes Z-be\u00e1ll\u00edt\u00e1shoz. [bed_screws] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha az t\u00e1rgyasztal szintez\u0151 csavarok konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a k\u00e9zi szintez\u00e9s \u00fatmutat\u00f3t ). BED_SCREWS_ADJUST \u00b6 BED_SCREWS_ADJUST : Ez a parancs a t\u00e1rgyasztal \u00e1ll\u00edt\u00f3csavarok be\u00e1ll\u00edt\u00e1si eszk\u00f6z\u00e9t h\u00edvja el\u0151. A f\u00fav\u00f3k\u00e1t k\u00fcl\u00f6nb\u00f6z\u0151 helyekre k\u00fcldi (a konfigur\u00e1ci\u00f3s f\u00e1jlban meghat\u00e1rozottak szerint), \u00e9s lehet\u0151v\u00e9 teszi a t\u00e1rgyasztal \u00e1ll\u00edt\u00f3csavarok be\u00e1ll\u00edt\u00e1s\u00e1t, hogy a t\u00e1rgyasztal \u00e1lland\u00f3 t\u00e1vols\u00e1gra legyen a f\u00fav\u00f3k\u00e1t\u00f3l. [bed_tilt] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a bed_tilt konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. BED_TILT_CALIBRATE \u00b6 BED_TILT_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>] : Ez a parancs a konfigur\u00e1ci\u00f3ban megadott pontokat vizsg\u00e1lja, majd friss\u00edtett X \u00e9s Y d\u0151l\u00e9sbe\u00e1ll\u00edt\u00e1sokat javasol. Az opcion\u00e1lis m\u00e9r\u00e9si param\u00e9terekkel kapcsolatos r\u00e9szletek\u00e9rt l\u00e1sd a PROBE parancsot. Ha a METHOD=manual van megadva, akkor a k\u00e9zi szintez\u0151 aktiv\u00e1l\u00f3dik. Az ezen eszk\u00f6z aktiv\u00e1l\u00e1sakor el\u00e9rhet\u0151 tov\u00e1bbi parancsok r\u00e9szleteit l\u00e1sd a fenti MANUAL_PROBE parancsban. [bltouch] \u00b6 A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a bltouch konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a BL-Touch \u00fatmutat\u00f3t ). BLTOUCH_DEBUG \u00b6 BLTOUCH_DEBUG COMMAND=<command> : Ez egy parancsot k\u00fcld a BLTouch-nak. Hasznos lehet a hibakeres\u00e9shez. A rendelkez\u00e9sre \u00e1ll\u00f3 parancsok a k\u00f6vetkez\u0151k: pin_down , touch_mode , pin_up , self_test , reset . A BL-Touch V3.0 vagy V3.1 t\u00e1mogathatja a set_5V_output_mode , set_OD_output_mode , output_mode_store parancsokat is. BLTOUCH_STORE \u00b6 BLTOUCH_STORE MODE=<output_mode> : Ez egy kimeneti m\u00f3dot t\u00e1rol a BLTouch V3.1 EEPROM-j\u00e1ban: 5V , OD [configfile] \u00b6 A configfile modul automatikusan bet\u00f6lt\u0151dik. SAVE_CONFIG \u00b6 SAVE_CONFIG : Ez a parancs fel\u00fcl\u00edrja a nyomtat\u00f3 f\u0151 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1t \u00e9s \u00fajraind\u00edtja a gazdaszoftvert. Ez a parancs m\u00e1s kalibr\u00e1l\u00e1si parancsokkal egy\u00fctt haszn\u00e1lhat\u00f3 a kalibr\u00e1ci\u00f3s tesztek eredm\u00e9nyeinek t\u00e1rol\u00e1s\u00e1ra. [delayed_gcode] \u00b6 A k\u00f6vetkez\u0151 parancs akkor enged\u00e9lyezett, ha a delayed_gcode konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a parancssablon \u00fatmutat\u00f3t ). UPDATE_DELAYED_GCODE \u00b6 UPDATE_DELAYED_GCODE [ID=<name>] [DURATION=<seconds>] : Friss\u00edti az azonos\u00edtott [delayed_gcode] k\u00e9sleltet\u00e9si id\u0151tartam\u00e1t \u00e9s elind\u00edtja a G-k\u00f3d v\u00e9grehajt\u00e1s\u00e1nak id\u0151z\u00edt\u0151j\u00e9t. A 0 \u00e9rt\u00e9k t\u00f6rli a f\u00fcgg\u0151ben l\u00e9v\u0151 k\u00e9sleltetett G-k\u00f3d v\u00e9grehajt\u00e1s\u00e1t. [delta_calibrate] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a delta_kalibrate konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a delta kalibr\u00e1ci\u00f3s \u00fatmutat\u00f3t ). DELTA_CALIBRATE \u00b6 DELTA_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>] : Ez a parancs a t\u00e1rgyasztal h\u00e9t pontj\u00e1t vizsg\u00e1lja meg, \u00e9s friss\u00edtett v\u00e9g\u00e1ll\u00e1sok, toronysz\u00f6gek \u00e9s sugarak aj\u00e1nl\u00e1s\u00e1ra szolg\u00e1l. Az opcion\u00e1lis m\u00e9r\u00e9si param\u00e9terekkel kapcsolatos r\u00e9szletek\u00e9rt l\u00e1sd a PROBE parancsot. Ha a METHOD=manual \u00e9rt\u00e9k van megadva, akkor a k\u00e9zi szintez\u00e9s aktiv\u00e1l\u00f3dik. L\u00e1sd a fenti MANUAL_PROBE parancsot a tov\u00e1bbi parancsok r\u00e9szletei\u00e9rt, amelyek akkor \u00e1llnak rendelkez\u00e9sre, amikor ez az eszk\u00f6z akt\u00edv. DELTA_ANALYZE \u00b6 DELTA_ANALYZE : Ez a parancs a fokozott delta-kalibr\u00e1l\u00e1s sor\u00e1n haszn\u00e1latos. A r\u00e9szletek\u00e9rt l\u00e1sd a Delta kalibr\u00e1l\u00e1s c\u00edm\u0171 dokumentumot. [display] \u00b6 A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a konfigur\u00e1ci\u00f3s szakasz megjelen\u00edt\u00e9se enged\u00e9lyezve van. SET_DISPLAY_GROUP \u00b6 SET_DISPLAY_GROUP [DISPLAY=<display>] GROUP=<group> : Az LCD-kijelz\u0151 akt\u00edv kijelz\u0151csoportj\u00e1nak be\u00e1ll\u00edt\u00e1sa. Ez lehet\u0151v\u00e9 teszi t\u00f6bb kijelz\u0151 adatcsoport defini\u00e1l\u00e1s\u00e1t a konfigur\u00e1ci\u00f3ban, pl. [display_data <group> <elementname>] \u00e9s a k\u00f6zt\u00fck val\u00f3 v\u00e1lt\u00e1st ezzel a kiterjesztett G-k\u00f3d paranccsal. Ha a DISPLAY nincs megadva, akkor alap\u00e9rtelmez\u00e9s szerint \"display\" (az els\u0151dleges kijelz\u0151). [display_status] \u00b6 A display_status modul automatikusan bet\u00f6lt\u0151dik, ha a display konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. A k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d parancsokat biztos\u00edtja: \u00dczenet megjelen\u00edt\u00e9se: M117 <message> Nyomtat\u00e1si folyamat sz\u00e1zal\u00e9kos ar\u00e1ny be\u00e1ll\u00edt\u00e1sa: M73 P<percent> A k\u00f6vetkez\u0151 kiterjesztett G-k\u00f3d parancs is rendelkez\u00e9sre \u00e1ll: SET_DISPLAY_TEXT MSG=<message> : Az M117 paranccsal egyen\u00e9rt\u00e9k\u0171 m\u0171velet, amely az MSG c\u00edmen megadott \u00fczenetet \u00e1ll\u00edtja be aktu\u00e1lis kijelz\u0151\u00fczenetk\u00e9nt. Ha az MSG elmarad, a kijelz\u0151 t\u00f6rl\u0151dik. [dual_carriage] \u00b6 A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a dual_carriage konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. SET_DUAL_CARRIAGE \u00b6 SET_DUAL_CARRIAGE CARRIAGE=[0|1] : Ez a parancs be\u00e1ll\u00edtja az akt\u00edv kocsit. \u00c1ltal\u00e1ban az activate_gcode \u00e9s deactivate_gcode mez\u0151kb\u0151l h\u00edvhat\u00f3 el\u0151 t\u00f6bb extruder konfigur\u00e1ci\u00f3ban. [endstop_phase] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha az endstop_phase konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a v\u00e9g\u00e1ll\u00e1s f\u00e1zis \u00fatmutat\u00f3t ). ENDSTOP_PHASE_CALIBRATE \u00b6 ENDSTOP_PHASE_CALIBRATE [STEPPER=<config_name>] : Ha nincs megadva STEPPER param\u00e9ter, akkor ez a parancs a m\u00faltbeli kezd\u0151pont felv\u00e9teli m\u0171veletek sor\u00e1n a v\u00e9g\u00e1ll\u00e1si l\u00e9pcs\u0151f\u00e1zisok statisztik\u00e1it jelenti. STEPPER param\u00e9ter megad\u00e1sa eset\u00e9n gondoskodik arr\u00f3l, hogy a megadott v\u00e9g\u00e1ll\u00e1sf\u00e1zis-be\u00e1ll\u00edt\u00e1s a konfigur\u00e1ci\u00f3s f\u00e1jlba \u00edr\u00f3djon (a SAVE_CONFIG parancs seg\u00edts\u00e9g\u00e9vel). [exclude_object] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha az exclude_object konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a t\u00e1rgy\u00fatmutat\u00f3 kiz\u00e1r\u00e1sa ): EXCLUDE_OBJECT \u00b6 EXCLUDE_OBJECT [NAME=object_name] [CURRENT=1] [RESET=1] : Param\u00e9terek n\u00e9lk\u00fcl az \u00f6sszes jelenleg kiz\u00e1rt objektum list\u00e1j\u00e1t adja vissza. Ha a NAME param\u00e9tert adjuk meg, a megnevezett objektumot kiz\u00e1rjuk a nyomtat\u00e1sb\u00f3l. A CURRENT param\u00e9ter megad\u00e1sakor az aktu\u00e1lis objektumot kiz\u00e1rja a nyomtat\u00e1sb\u00f3l. A RESET param\u00e9ter megad\u00e1sakor a kiz\u00e1rt objektumok list\u00e1ja t\u00f6rl\u0151dik. Ezen k\u00edv\u00fcl a NAME bevon\u00e1sa csak a megnevezett objektumot fogja vissza\u00e1ll\u00edtani. Ez nyomtat\u00e1si hib\u00e1kat okozhat, ha a r\u00e9tegek m\u00e1r kihagy\u00e1sra ker\u00fcltek. EXCLUDE_OBJECT_DEFINE \u00b6 EXCLUDE_OBJECT_DEFINE [NAME=object_name [CENTER=X,Y] [POLYGON=[[x,y],...]] [RESET=1] [JSON=1] : A f\u00e1jlban l\u00e9v\u0151 objektum \u00f6sszefoglal\u00f3j\u00e1t adja meg. Ha nem adunk meg param\u00e9tereket, akkor a Klipper \u00e1ltal ismert, defini\u00e1lt objektumok list\u00e1ja jelenik meg. Sztringek list\u00e1j\u00e1t adja vissza, kiv\u00e9ve, ha a JSON param\u00e9tert adjuk meg, ekkor az objektumok adatait JSON form\u00e1tumban adja vissza. Ha a NAME param\u00e9ter szerepel, ez egy kiz\u00e1rand\u00f3 objektumot hat\u00e1roz meg. NAME : Ez a param\u00e9ter k\u00f6telez\u0151. Ez a modul m\u00e1s parancsai \u00e1ltal haszn\u00e1lt azonos\u00edt\u00f3. CENTER : Az objektum X,Y koordin\u00e1t\u00e1ja. POLYGON : X,Y koordin\u00e1t\u00e1k t\u00f6mbje, amely az objektum k\u00f6rvonal\u00e1t adja. A RESET param\u00e9ter megad\u00e1sakor az \u00f6sszes defini\u00e1lt objektum t\u00f6rl\u0151dik, \u00e9s az [exclude_object] modul vissza\u00e1ll. EXCLUDE_OBJECT_START \u00b6 EXCLUDE_OBJECT_START NAME=object_name : Ez a parancs egy NAME param\u00e9tert vesz fel, \u00e9s az aktu\u00e1lis r\u00e9tegen l\u00e9v\u0151 objektum G-k\u00f3dj\u00e1nak kezdet\u00e9t jel\u00f6li. EXCLUDE_OBJECT_END \u00b6 EXCLUDE_OBJECT_END [NAME=object_name] : Az objektum G-k\u00f3dj\u00e1nak v\u00e9g\u00e9t jel\u00f6li a r\u00e9teghez. Az EXCLUDE_OBJECT_START -al p\u00e1rosul. A NAME param\u00e9ter opcion\u00e1lis, \u00e9s csak akkor figyelmeztet, ha a megadott n\u00e9v nem egyezik az aktu\u00e1lis objektummal. [extruder] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha az extruder konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van: ACTIVATE_EXTRUDER \u00b6 ACTIVATE_EXTRUDER EXTRUDER=<config_name> : T\u00f6bb extruder konfigur\u00e1ci\u00f3s szakaszokkal rendelkez\u0151 nyomtat\u00f3ban ez a parancs megv\u00e1ltoztatja az akt\u00edv nyomtat\u00f3fejet. SET_PRESSURE_ADVANCE \u00b6 SET_PRESSURE_ADVANCE [EXTRUDER=<config_name>] [ADVANCE=<pressure_advance>] [SMOOTH_TIME=<pressure_advance_smooth_time>] : Egy extruder l\u00e9ptet\u0151 nyom\u00e1stov\u00e1bb\u00edt\u00e1si param\u00e9tereinek be\u00e1ll\u00edt\u00e1sa (ahogyan az egy extruder vagy extruder_stepper konfigur\u00e1ci\u00f3s szakaszban szerepel). Ha az EXTRUDER nincs megadva, akkor az alap\u00e9rtelmezett \u00e9rt\u00e9k az akt\u00edv hotendben defini\u00e1lt stepper. SET_EXTRUDER_ROTATION_DISTANCE \u00b6 SET_EXTRUDER_ROTATION_DISTANCE EXTRUDER=<config_name> [DISTANCE=<distance>] : A megadott extruder l\u00e9ptet\u0151k \"forg\u00e1si t\u00e1vols\u00e1g\" \u00faj \u00e9rt\u00e9k\u00e9nek be\u00e1ll\u00edt\u00e1sa (ahogyan az extruder vagy extruder_stepper konfigur\u00e1ci\u00f3s szakaszban meghat\u00e1rozott). Ha a forg\u00e1si t\u00e1vols\u00e1g negat\u00edv sz\u00e1m, akkor a l\u00e9ptet\u0151 mozg\u00e1sa inverz lesz (a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott l\u00e9ptet\u0151 ir\u00e1nyhoz k\u00e9pest). A megv\u00e1ltoztatott be\u00e1ll\u00edt\u00e1sok nem maradnak meg a Klipper vissza\u00e1ll\u00edt\u00e1sakor. \u00d3vatosan haszn\u00e1ld, mivel a kis v\u00e1ltoztat\u00e1sok t\u00falzott nyom\u00e1st eredm\u00e9nyezhetnek az extruder \u00e9s a hotend k\u00f6z\u00f6tt. Haszn\u00e1lat el\u0151tt v\u00e9gezd el a megfelel\u0151 kalibr\u00e1ci\u00f3t a filamenttel. Ha a 'DISTANCE' \u00e9rt\u00e9k nincs megadva, akkor ez a parancs az aktu\u00e1lis forg\u00e1si t\u00e1vols\u00e1got adja meg. SYNC_EXTRUDER_MOTION \u00b6 SYNC_EXTRUDER_MOTION EXTRUDER=<name> MOTION_QUEUE=<name> : Ez a parancs az EXTRUDER \u00e1ltal meghat\u00e1rozott l\u00e9ptet\u0151t (ahogyan az extruder vagy extruder_stepper konfigur\u00e1ci\u00f3s szakaszban) meghat\u00e1rozott extruder mozg\u00e1s\u00e1hoz szinkroniz\u00e1l\u00f3dik a MOTION_QUEUE \u00e1ltal meghat\u00e1rozott extruder mozg\u00e1s\u00e1hoz (ahogyan az extruder konfigur\u00e1ci\u00f3s szakaszban defini\u00e1lt\u00e1k). Ha a MOTION_QUEUE \u00fcres karakterl\u00e1nc, akkor a l\u00e9ptet\u0151 deszinkroniz\u00e1l\u00f3dik az extruder minden mozg\u00e1s\u00e1ra. SET_EXTRUDER_STEP_DISTANCE \u00b6 Ez a parancs elavult, \u00e9s a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fcl. SYNC_STEPPER_TO_EXTRUDER \u00b6 Ez a parancs elavult, \u00e9s a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fcl. [fan_generic] \u00b6 A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a fan_generic konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. SET_FAN_SPEED \u00b6 SET_FAN_SPEED FAN=config_name SPEED=<speed> Ez a parancs be\u00e1ll\u00edtja a ventil\u00e1tor sebess\u00e9g\u00e9t. \"speed\" 0.0 \u00e9s 1.0 k\u00f6z\u00f6tt kell lennie. [filament_switch_sensor] \u00b6 A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a filament_switch_sensor vagy filament_motion_sensor konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. QUERY_FILAMENT_SENSOR \u00b6 QUERY_FILAMENT_SENSOR SENSOR=<sensor_name> : A nyomtat\u00f3sz\u00e1l-\u00e9rz\u00e9kel\u0151 aktu\u00e1lis \u00e1llapot\u00e1nak lek\u00e9rdez\u00e9se. A termin\u00e1lon megjelen\u0151 adatok a konfigur\u00e1ci\u00f3ban meghat\u00e1rozott \u00e9rz\u00e9kel\u0151t\u00edpust\u00f3l f\u00fcggnek. SET_FILAMENT_SENSOR \u00b6 SET_FILAMENT_SENSOR SENSOR=<sensor_name> ENABLE=[0|1] : A nyomtat\u00f3sz\u00e1l \u00e9rz\u00e9kel\u0151 be/ki kapcsol\u00e1sa. Ha az ENABLE \u00e9rt\u00e9ke 0, akkor a nyomtat\u00f3sz\u00e1l-\u00e9rz\u00e9kel\u0151 ki lesz kapcsolva, ha 1-re van \u00e1ll\u00edtva, akkor bekapcsol. [firmware_retraction] \u00b6 A k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d\u00fa parancsok \u00e1llnak rendelkez\u00e9sre, ha a firmware_retraction konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. Ezek a parancsok lehet\u0151v\u00e9 teszik a szeletel\u0151kben el\u00e9rhet\u0151 firmware retraction funkci\u00f3 kihaszn\u00e1l\u00e1s\u00e1t, hogy cs\u00f6kkentse a h\u00farosod\u00e1st a nem extrud\u00e1l\u00e1sos mozg\u00e1sok sor\u00e1n a nyomtat\u00e1s egyik r\u00e9sz\u00e9b\u0151l a m\u00e1sikba. A nyom\u00e1s el\u0151tol\u00e1s megfelel\u0151 be\u00e1ll\u00edt\u00e1sa cs\u00f6kkenti a sz\u00fcks\u00e9ges visszah\u00faz\u00e1s hossz\u00e1t. G10 : Visszah\u00fazza a nyomtat\u00f3sz\u00e1lat a konfigur\u00e1lt param\u00e9terek szerint. G11 : Bet\u00f6lti a nyomtat\u00f3sz\u00e1lat a konfigur\u00e1lt param\u00e9terek szerint. A k\u00f6vetkez\u0151 tov\u00e1bbi parancsok is rendelkez\u00e9sre \u00e1llnak. SET_RETRACTION \u00b6 SET_RETRACTION [RETRACT_LENGTH=<mm>] [RETRACT_SPEED=<mm/s>] [UNRETRACT_EXTRA_LENGTH=<mm>] [UNRETRACT_SPEED=<mm/s>] : A firmware visszah\u00faz\u00e1s \u00e1ltal haszn\u00e1lt param\u00e9terek be\u00e1ll\u00edt\u00e1sa. A RETRACT_LENGTH hat\u00e1rozza meg a visszah\u00fazand\u00f3 \u00e9s a visszah\u00faz\u00e1st megsz\u00fcntet\u0151 sz\u00e1l hossz\u00e1t. A visszah\u00faz\u00e1s sebess\u00e9ge a RETRACT_SPEED seg\u00edts\u00e9g\u00e9vel \u00e1ll\u00edthat\u00f3 be, \u00e9s \u00e1ltal\u00e1ban viszonylag magasra van \u00e1ll\u00edtva. A visszah\u00faz\u00e1s sebess\u00e9g\u00e9t az UNRETRACT_SPEED seg\u00edts\u00e9g\u00e9vel \u00e1ll\u00edtjuk be, \u00e9s nem k\u00fcl\u00f6n\u00f6sebben kritikus, b\u00e1r gyakran alacsonyabb, mint a RETRACT_SPEED. Bizonyos esetekben hasznos, ha a visszah\u00faz\u00e1skor egy kis plusz hossz\u00fas\u00e1got adunk hozz\u00e1, \u00e9s ezt az UNRETRACT_EXTRA_LENGTH seg\u00edts\u00e9g\u00e9vel \u00e1ll\u00edtjuk be. A SET_RETRACTION \u00e1ltal\u00e1ban a szeletel\u0151 sz\u00e1lank\u00e9nti konfigur\u00e1ci\u00f3 r\u00e9szek\u00e9nt ker\u00fcl be\u00e1ll\u00edt\u00e1sra, mivel a k\u00fcl\u00f6nb\u00f6z\u0151 sz\u00e1lak k\u00fcl\u00f6nb\u00f6z\u0151 param\u00e9terbe\u00e1ll\u00edt\u00e1sokat ig\u00e9nyelnek. GET_RETRACTION \u00b6 GET_RETRACTION : A firmware visszah\u00faz\u00e1s \u00e1ltal haszn\u00e1lt aktu\u00e1lis param\u00e9terek lek\u00e9rdez\u00e9se \u00e9s megjelen\u00edt\u00e9se a termin\u00e1lon. [force_move] \u00b6 A force_move modul automatikusan bet\u00f6lt\u0151dik, azonban n\u00e9h\u00e1ny parancshoz sz\u00fcks\u00e9ges az enable_force_move be\u00e1ll\u00edt\u00e1sa a nyomtat\u00f3 konfig -ban. STEPPER_BUZZ \u00b6 STEPPER_BUZZ STEPPER=<config_name> : Az adott l\u00e9ptet\u0151motor mozgat\u00e1sa egy mm-t el\u0151re, majd egy mm-t h\u00e1tra, 10 alkalommal megism\u00e9telve. Ez egy diagnosztikai eszk\u00f6z, amely seg\u00edt a l\u00e9ptet\u0151 kapcsolat\u00e1nak ellen\u0151rz\u00e9s\u00e9ben. FORCE_MOVE \u00b6 FORCE_MOVE STEPPER=<config_name> DISTANCE=<value> VELOCITY=<value> [ACCEL=<value>] : Ez a parancs az adott l\u00e9ptet\u0151motort az adott t\u00e1vols\u00e1gon (mm-ben) a megadott \u00e1lland\u00f3 sebess\u00e9ggel (mm/sec-ben) k\u00e9nyszerrel mozgatja. Ha az ACCEL meg van adva, \u00e9s nagyobb, mint nulla, akkor a megadott gyorsul\u00e1s (mm/sec^2-en) ker\u00fcl alkalmaz\u00e1sra; egy\u00e9bk\u00e9nt nem t\u00f6rt\u00e9nik gyors\u00edt\u00e1s. Nem t\u00f6rt\u00e9nik hat\u00e1r\u00e9rt\u00e9k ellen\u0151rz\u00e9s; nem t\u00f6rt\u00e9nik kinematikai friss\u00edt\u00e9s; a tengelyen l\u00e9v\u0151 m\u00e1s p\u00e1rhuzamos l\u00e9ptet\u0151k nem ker\u00fclnek mozgat\u00e1sra. Legyen \u00f3vatos, mert a helytelen parancs k\u00e1rt okozhat! A parancs haszn\u00e1lata szinte biztosan helytelen \u00e1llapotba hozza az alacsony szint\u0171 kinematik\u00e1t; a kinematika vissza\u00e1ll\u00edt\u00e1s\u00e1hoz adj ki ut\u00e1na egy G28 parancsot. Ez a parancs alacsony szint\u0171 diagnosztik\u00e1ra \u00e9s hibakeres\u00e9sre szolg\u00e1l. SET_KINEMATIC_POSITION \u00b6 SET_KINEMATIC_POSITION [X=<value>] [Y=<value>] [Z=<value>] : K\u00e9nyszer\u00edti az alacsony szint\u0171 kinematikai k\u00f3dot, hogy azt higgye, a nyomtat\u00f3fej a megadott cartesian poz\u00edci\u00f3ban van. Ez egy diagnosztikai \u00e9s hibakeres\u00e9si parancs; haszn\u00e1ld a SET_GCODE_OFFSET \u00e9s/vagy a G92 parancsot a norm\u00e1l tengelytranszform\u00e1ci\u00f3khoz. Ha egy tengely nincs megadva, akkor alap\u00e9rtelmez\u00e9s szerint az a poz\u00edci\u00f3 lesz, ahov\u00e1 a fejet utolj\u00e1ra parancsolt\u00e1k. A helytelen vagy \u00e9rv\u00e9nytelen poz\u00edci\u00f3 be\u00e1ll\u00edt\u00e1sa bels\u0151 szoftverhib\u00e1hoz vezethet. Ez a parancs \u00e9rv\u00e9nytelen\u00edtheti a k\u00e9s\u0151bbi hat\u00e1r\u00e9rt\u00e9k ellen\u0151rz\u00e9seket; a kinematika vissza\u00e1ll\u00edt\u00e1s\u00e1hoz adj ki egy G28 parancsot. [gcode] \u00b6 A G-k\u00f3d modul automatikusan bet\u00f6lt\u0151dik. RESTART \u00b6 RESTART : Ez arra k\u00e9szteti a gazdaszoftvert, hogy \u00fajrat\u00f6ltse a konfigur\u00e1ci\u00f3j\u00e1t \u00e9s bels\u0151 alaphelyzetbe \u00e1ll\u00edt\u00e1st v\u00e9gezzen. Ez a parancs nem t\u00f6rli a mikrokontroller hiba\u00e1llapot\u00e1t (l\u00e1sd FIRMWARE_RESTART), \u00e9s nem t\u00f6lt be \u00faj szoftvert (l\u00e1sd a GYIK oldalt). FIRMWARE_RESTART \u00b6 FIRMWARE_RESTART : Ez hasonl\u00f3 a RESTART parancshoz, de a mikrokontroller hiba\u00e1llapot\u00e1t is t\u00f6rli. STATUS \u00b6 STATUS : Jelentse a Klipper gazdag\u00e9p szoftver \u00e1llapot\u00e1t. S\u00daG\u00d3 \u00b6 HELP : A rendelkez\u00e9sre \u00e1ll\u00f3 kiterjesztett G-k\u00f3d parancsok list\u00e1j\u00e1nak megjelen\u00edt\u00e9se. [gcode_arcs] \u00b6 A k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d parancsok el\u00e9rhet\u0151k, ha a gcode_arcs config section enged\u00e9lyezve van: Vez\u00e9relt \u00edvmozg\u00e1s (G2 vagy G3): G2 [X<pos>] [Y<pos>] [Z<pos>] [E<pos>] [F<speed>] I<value> J<value> [gcode_macro] \u00b6 A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a gcode_macro konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a parancssablonok \u00fatmutat\u00f3j\u00e1t ). SET_GCODE_VARIABLE \u00b6 SET_GCODE_VARIABLE MACRO=<macro_name> VARIABLE=<name> VALUE=<value> : Ez a parancs lehet\u0151v\u00e9 teszi a gcode_macro v\u00e1ltoz\u00f3 \u00e9rt\u00e9k\u00e9nek megv\u00e1ltoztat\u00e1s\u00e1t \u00fczem k\u00f6zben. A megadott VALUE-t Python liter\u00e1lk\u00e9nt elemzi a program. [gcode_move] \u00b6 A gcode_move modul automatikusan bet\u00f6lt\u0151dik. GET_POSITION \u00b6 GET_POSITION : A nyomtat\u00f3fej aktu\u00e1lis helyzet\u00e9re vonatkoz\u00f3 inform\u00e1ci\u00f3k visszaad\u00e1sa. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a GET_POSITION kimenet fejleszt\u0151i dokument\u00e1ci\u00f3j\u00e1t. SET_GCODE_OFFSET \u00b6 SET_GCODE_OFFSET [X=<pos>|X_ADJUST=<adjust>] [Y=<pos>|Y_ADJUST=<adjust>] [Z=<pos>|Z_ADJUST=<adjust>] [MOVE=1 [MOVE_SPEED=<speed>]] : Poz\u00edci\u00f3s eltol\u00e1s be\u00e1ll\u00edt\u00e1sa, amelyet a k\u00e9s\u0151bbi G-k\u00f3d parancsokra kell alkalmazni. Ezt \u00e1ltal\u00e1ban a Z t\u00e1rgyasztal eltol\u00e1s virtu\u00e1lis megv\u00e1ltoztat\u00e1s\u00e1ra vagy a f\u00fav\u00f3k\u00e1k XY eltol\u00e1s\u00e1nak be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lj\u00e1k extruder v\u00e1lt\u00e1skor. P\u00e9ld\u00e1ul, ha a \"SET_GCODE_OFFSET Z=0.2\" parancsot k\u00fcldj\u00fck, akkor a j\u00f6v\u0151beli G-k\u00f3d mozg\u00e1sok Z magass\u00e1g\u00e1hoz 0,2 mm-t adunk hozz\u00e1. Ha az X_ADJUST st\u00edlusparam\u00e9tereket haszn\u00e1ljuk, akkor a kiigaz\u00edt\u00e1s hozz\u00e1ad\u00f3dik a megl\u00e9v\u0151 eltol\u00e1shoz (pl. a \"SET_GCODE_OFFSET Z=-0.2\" \u00e9s a \"SET_GCODE_OFFSET Z_ADJUST=0.3\" ut\u00e1na a teljes Z eltol\u00e1s 0.1 lesz). Ha a \"MOVE=1\" van megadva, akkor a nyomtat\u00f3fej mozgat\u00e1sa a megadott eltol\u00e1s alkalmaz\u00e1s\u00e1ra t\u00f6rt\u00e9nik (egy\u00e9bk\u00e9nt az eltol\u00e1s a k\u00f6vetkez\u0151 abszol\u00fat G-k\u00f3d\u00fa mozgat\u00e1skor l\u00e9p hat\u00e1lyba, amely az adott tengelyt adja meg). Ha a \"MOVE_SPEED\" meg van adva, akkor a nyomtat\u00f3fej mozgat\u00e1sa a megadott sebess\u00e9ggel (mm/sec-ben) t\u00f6rt\u00e9nik; egy\u00e9bk\u00e9nt a nyomtat\u00f3fej mozgat\u00e1sa az utolj\u00e1ra megadott G-k\u00f3d sebess\u00e9get fogja haszn\u00e1lni. SAVE_GCODE_STATE \u00b6 SAVE_GCODE_STATE [NAME=<state_name>] : Az aktu\u00e1lis G-k\u00f3d koordin\u00e1t\u00e1k elemz\u00e9si \u00e1llapot\u00e1nak ment\u00e9se. A G-k\u00f3d \u00e1llapot\u00e1nak ment\u00e9se \u00e9s vissza\u00e1ll\u00edt\u00e1sa hasznos a szkriptekben \u00e9s makr\u00f3kban. Ez a parancs elmenti az aktu\u00e1lis G-k\u00f3d abszol\u00fat koordin\u00e1tam\u00f3dot (G90/G91), az abszol\u00fat extrud\u00e1l\u00e1si m\u00f3dot (M82/M83), az orig\u00f3t (G92), az eltol\u00e1st (SET_GCODE_OFFSET), a sebess\u00e9g fel\u00fclb\u00edr\u00e1l\u00e1s\u00e1t (M220), az extruder fel\u00fclb\u00edr\u00e1l\u00e1s\u00e1t (M221), a mozg\u00e1si sebess\u00e9get, az aktu\u00e1lis XYZ poz\u00edci\u00f3t \u00e9s a relat\u00edv extruder \"E\" poz\u00edci\u00f3t. A NAME megad\u00e1sa eset\u00e9n lehet\u0151v\u00e9 teszi, hogy a mentett \u00e1llapotot a megadott karakterl\u00e1ncnak nevezz\u00fck el. Ha a NAME nincs megadva, az alap\u00e9rtelmezett \u00e9rt\u00e9k \"default\". RESTORE_GCODE_STATE \u00b6 RESTORE_GCODE_STATE [NAME=<state_name>] [MOVE=1 [MOVE_SPEED=<speed>]] : A SAVE_GCODE_STATE seg\u00edts\u00e9g\u00e9vel kor\u00e1bban elmentett \u00e1llapot vissza\u00e1ll\u00edt\u00e1sa. Ha \"MOVE=1\" van megadva, akkor a nyomtat\u00f3fej mozgat\u00e1sa az el\u0151z\u0151 XYZ-poz\u00edci\u00f3ba val\u00f3 visszal\u00e9p\u00e9shez t\u00f6rt\u00e9nik. Ha \"MOVE_SPEED\" van megadva, akkor a nyomtat\u00f3fej mozgat\u00e1sa a megadott sebess\u00e9ggel (mm/sec-ben) t\u00f6rt\u00e9nik; egy\u00e9bk\u00e9nt a nyomtat\u00f3fej mozgat\u00e1sa a vissza\u00e1ll\u00edtott G-k\u00f3d sebess\u00e9g\u00e9t haszn\u00e1lja. [hall_filament_width_sensor] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a tsl1401cl sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 konfigur\u00e1ci\u00f3s szakasz vagy a hall sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g TSLll401CL Sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 \u00e9s a Hall Sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 dokumentumot): QUERY_FILAMENT_WIDTH \u00b6 QUERY_FILAMENT_WIDTH : Visszaadja az aktu\u00e1lisan m\u00e9rt izz\u00f3sz\u00e1l sz\u00e9less\u00e9get. RESET_FILAMENT_WIDTH_SENSOR \u00b6 RESET_FILAMENT_WIDTH_SENSOR : T\u00f6rli az \u00f6sszes \u00e9rz\u00e9kel\u0151 leolvas\u00e1s\u00e1t. Hasznos nyomtat\u00f3sz\u00e1l csere ut\u00e1n. DISABLE_FILAMENT_WIDTH_SENSOR \u00b6 DISABLE_FILAMENT_WIDTH_SENSOR : Kapcsold ki a sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151t, \u00e9s ne haszn\u00e1ld \u00e1raml\u00e1sszab\u00e1lyoz\u00e1shoz. ENABLE_FILAMENT_WIDTH_SENSOR \u00b6 ENABLE_FILAMENT_WIDTH_SENSOR : Kapcsold be a sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151t, \u00e9s kezd el haszn\u00e1lni az \u00e1raml\u00e1sszab\u00e1lyoz\u00e1shoz. QUERY_RAW_FILAMENT_WIDTH \u00b6 QUERY_RAW_FILAMENT_WIDTH : Visszaadja az ADC-csatorna aktu\u00e1lis leolvas\u00e1s\u00e1t \u00e9s a RAW-\u00e9rz\u00e9kel\u0151 \u00e9rt\u00e9k\u00e9t a kalibr\u00e1ci\u00f3s pontokhoz. ENABLE_FILAMENT_WIDTH_LOG \u00b6 ENABLE_FILAMENT_WIDTH_LOG : Az \u00e1tm\u00e9r\u0151 napl\u00f3z\u00e1s\u00e1nak bekapcsol\u00e1sa. DISABLE_FILAMENT_WIDTH_LOG \u00b6 DISABLE_FILAMENT_WIDTH_LOG : Az \u00e1tm\u00e9r\u0151 napl\u00f3z\u00e1s\u00e1nak kikapcsol\u00e1sa. [heaters] \u00b6 A f\u0171t\u0151modul automatikusan bet\u00f6lt\u0151dik, ha a konfigur\u00e1ci\u00f3s f\u00e1jlban van f\u0171t\u0151elem defini\u00e1lva. TURN_OFF_HEATERS \u00b6 TURN_OFF_HEATERS : Kapcsold ki az \u00f6sszes f\u0171t\u0151berendez\u00e9st. TEMPERATURE_WAIT \u00b6 TEMPERATURE_WAIT SENSOR=<config_name> [MINIMUM=<target>] [MAXIMUM=<target>] : V\u00e1rj, am\u00edg az adott h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 a megadott MINIMUM \u00e9rt\u00e9ken vagy a megadott MINIMUM \u00e9rt\u00e9k felett \u00e9s/vagy a megadott MAXIMUM \u00e9rt\u00e9ken vagy az alatt van. SET_HEATER_TEMPERATURE \u00b6 SET_HEATER_TEMPERATURE HEATER=<heater_name> [TARGET=<target_temperature>] : A f\u0171t\u0151test c\u00e9lh\u0151m\u00e9rs\u00e9klet\u00e9nek be\u00e1ll\u00edt\u00e1sa. Ha nincs megadva c\u00e9lh\u0151m\u00e9rs\u00e9klet, akkor az \u00e9rt\u00e9k 0. [idle_timeout] \u00b6 Az idle_timeout modul automatikusan bet\u00f6lt\u0151dik. SET_IDLE_TIMEOUT \u00b6 SET_IDLE_TIMEOUT [TIMEOUT=<timeout>] : Lehet\u0151v\u00e9 teszi a felhaszn\u00e1l\u00f3 sz\u00e1m\u00e1ra az \u00fcresj\u00e1rati id\u0151korl\u00e1t be\u00e1ll\u00edt\u00e1s\u00e1t (m\u00e1sodpercben). [input_shaper] \u00b6 A k\u00f6vetkez\u0151 parancs akkor enged\u00e9lyezett, ha az input_shaper konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a rezonancia kompenz\u00e1ci\u00f3s \u00fatmutat\u00f3t ). SET_INPUT_SHAPER \u00b6 SET_INPUT_SHAPER [SHAPER_FREQ_X=<shaper_freq_x>] [SHAPER_FREQ_Y=<shaper_freq_y>] [DAMPING_RATIO_X=<damping_ratio_x>] [DAMPING_RATIO_Y=<damping_ratio_y>] [SHAPER_TYPE=<shaper>] [SHAPER_TYPE_X=<shaper_type_x>] [SHAPER_TYPE_Y=<shaper_type_y>] : A bemeneti form\u00e1l\u00f3 param\u00e9terek m\u00f3dos\u00edt\u00e1sa. Vedd figyelembe, hogy a SHAPER_TYPE param\u00e9ter vissza\u00e1ll\u00edtja a bemeneti form\u00e1l\u00f3t mind az X, mind az Y tengelyre, m\u00e9g akkor is, ha az [input_shaper] szakaszban k\u00fcl\u00f6nb\u00f6z\u0151 form\u00e1l\u00f3t\u00edpusok lettek be\u00e1ll\u00edtva. A SHAPER_TYPE nem haszn\u00e1lhat\u00f3 egy\u00fctt a SHAPER_TYPE_X \u00e9s SHAPER_TYPE_Y param\u00e9terekkel. Az egyes param\u00e9terekkel kapcsolatos tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st . [manual_probe] \u00b6 A manual_probe modul automatikusan bet\u00f6lt\u0151dik. MANUAL_PROBE \u00b6 MANUAL_PROBE [SPEED=<speed>] : Egy seg\u00e9dszkript futtat\u00e1sa, amely hasznos a f\u00fav\u00f3ka magass\u00e1g\u00e1nak m\u00e9r\u00e9s\u00e9hez egy adott helyen. Ha SPEED van megadva, akkor a TESTZ parancsok sebess\u00e9g\u00e9t \u00e1ll\u00edtja be (az alap\u00e9rtelmezett 5 mm/sec). A k\u00e9zi m\u00e9r\u00e9s sor\u00e1n a k\u00f6vetkez\u0151 tov\u00e1bbi parancsok \u00e1llnak rendelkez\u00e9sre: ACCEPT : Ez a parancs elfogadja az aktu\u00e1lis Z poz\u00edci\u00f3t, \u00e9s lez\u00e1rja a k\u00e9zi szintez\u0151 eszk\u00f6zt. ABORT : Ez a parancs megszak\u00edtja a k\u00e9zi szintez\u00e9st. TESTZ Z=<value> : Ez a parancs a f\u00fav\u00f3k\u00e1t a \"value\" \u00e9rt\u00e9kben megadott \u00e9rt\u00e9kkel felfel\u00e9 vagy lefel\u00e9 mozgatja. P\u00e9ld\u00e1ul a TESTZ Z=-.1 a f\u00fav\u00f3k\u00e1t 0,1 mm-rel lefel\u00e9, m\u00edg a TESTZ Z=.1 a f\u00fav\u00f3k\u00e1t 0,1 mm-rel felfel\u00e9 mozgatja. Az \u00e9rt\u00e9k lehet + , - , ++ , vagy -- is, hogy a f\u00fav\u00f3k\u00e1t a kor\u00e1bbi pr\u00f3b\u00e1lkoz\u00e1sokhoz k\u00e9pest felfel\u00e9 vagy lefel\u00e9 mozd\u00edtsa. Z_ENDSTOP_CALIBRATE \u00b6 Z_ENDSTOP_CALIBRATE [SPEED=<speed>] : Egy seg\u00e9dszkript futtat\u00e1sa, amely hasznos a Z poz\u00edci\u00f3 v\u00e9g\u00e1ll\u00e1s konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1s\u00e1nak kalibr\u00e1l\u00e1s\u00e1hoz. A param\u00e9terekkel \u00e9s az eszk\u00f6z akt\u00edv m\u0171k\u00f6d\u00e9se k\u00f6zben el\u00e9rhet\u0151 tov\u00e1bbi parancsokkal kapcsolatos r\u00e9szletek\u00e9rt haszn\u00e1ld a MANUAL_PROBE parancsot. Z_OFFSET_APPLY_ENDSTOP \u00b6 Z_OFFSET_APPLY_ENDSTOP : Vegy\u00fck az aktu\u00e1lis Z G-k\u00f3d eltol\u00e1st (m\u00e1s n\u00e9ven mikrol\u00e9p\u00e9s), \u00e9s vonjuk ki a stepper_z endstop_positionb\u00f3l. Ez egy gyakran haszn\u00e1lt mikrol\u00e9p\u00e9s \u00e9rt\u00e9ket vesz, \u00e9s \"\u00e1lland\u00f3v\u00e1 teszi\". Egy SAVE_CONFIG sz\u00fcks\u00e9ges a hat\u00e1lybal\u00e9p\u00e9shez. [manual_stepper] \u00b6 A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a manual_stepper konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. MANUAL_STEPPER \u00b6 MANUAL_STEPPER STEPPER=config_name [ENABLE=[0|1]] [SET_POSITION=<pos>] [SPEED=<speed>] [ACCEL=<accel>] [MOVE=<pos> [STOP_ON_ENDSTOP=[1|2|2|-1|-2]] [SYNC=0]]] : Ez a parancs megv\u00e1ltoztatja a l\u00e9ptet\u0151 \u00e1llapot\u00e1t. Az ENABLE param\u00e9terrel enged\u00e9lyezheti/letilthatja a l\u00e9ptet\u0151t. A SET_POSITION param\u00e9terrel k\u00e9nyszer\u00edtheti a l\u00e9ptet\u0151t arra, hogy azt higgye, az adott helyzetben van. A MOVE param\u00e9terrel kezdem\u00e9nyezhet mozg\u00e1st egy adott poz\u00edci\u00f3ba. Ha a SPEED \u00e9s/vagy az ACCEL param\u00e9ter meg van adva, akkor a rendszer a megadott \u00e9rt\u00e9keket haszn\u00e1lja a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott alap\u00e9rtelmezett \u00e9rt\u00e9kek helyett. Ha nulla ACCEL-t ad meg, akkor nem t\u00f6rt\u00e9nik gyors\u00edt\u00e1s. Ha STOP_ON_ENDSTOP=1 van megadva, akkor a l\u00e9p\u00e9s kor\u00e1n v\u00e9get \u00e9r. Ha a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 aktiv\u00e1l\u00f3dik (a STOP_ON_ENDSTOP=2 paranccsal hiba n\u00e9lk\u00fcl befejezheti a mozg\u00e1st, m\u00e9g akkor is, ha a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 nem aktiv\u00e1l\u00f3dott. Haszn\u00e1ld a -1 vagy a -2 jel\u00f6l\u00e9st, hogy le\u00e1lljon, amikor a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 m\u00e9g nem aktiv\u00e1l\u00f3dott). Norm\u00e1lis esetben a k\u00e9s\u0151bbi G-k\u00f3d parancsok a l\u00e9ptet\u0151mozg\u00e1s befejez\u00e9se ut\u00e1n ker\u00fclnek \u00fctemez\u00e9sre, azonban ha a k\u00e9zi l\u00e9ptet\u0151mozg\u00e1s parancs a SYNC=0 \u00e9rt\u00e9ket haszn\u00e1lod, akkor a k\u00e9s\u0151bbi G-k\u00f3d mozgat\u00e1si parancsok a l\u00e9ptet\u0151mozg\u00e1ssal p\u00e1rhuzamosan is futhatnak. [mcp4018] \u00b6 A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha az mcp4018 config szekci\u00f3 enged\u00e9lyezve van. SET_DIGIPOT \u00b6 SET_DIGIPOT DIGIPOT=config_name WIPER=<value> : Ez a parancs megv\u00e1ltoztatja a digipot aktu\u00e1lis \u00e9rt\u00e9k\u00e9t. Ennek az \u00e9rt\u00e9knek \u00e1ltal\u00e1ban 0.0 \u00e9s 1.0 k\u00f6z\u00f6tt kell lennie, hacsak a configban nincs defini\u00e1lva 'scale'. Ha 'scale' van defini\u00e1lva, akkor ennek az \u00e9rt\u00e9knek 0.0 \u00e9s a 'scale' \u00e9rt\u00e9k k\u00f6z\u00f6tt kell lennie. [led] \u00b6 A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a LED konfigur\u00e1ci\u00f3s szakaszok b\u00e1rmelyike enged\u00e9lyezve van. SET_LED \u00b6 SET_LED LED=<config_name> RED=<value> GREEN=<value> BLUE=<value> WHITE=<value> [INDEX=<index>] [TRANSMIT=0] [SYNC=1] : Ez \u00e1ll\u00edtja be a LED kimenetet. Minden sz\u00edn <value> 0,0 \u00e9s 1,0 k\u00f6z\u00f6tt kell lennie. A WHITE opci\u00f3 csak RGBW LED-ek eset\u00e9n \u00e9rv\u00e9nyes. Ha a LED t\u00f6bb chipet t\u00e1mogat egy daisy-chainben, akkor megadhatjuk az INDEX-et, hogy csak az adott chip sz\u00edn\u00e9t v\u00e1ltoztassuk meg (1 az els\u0151 chiphez, 2 a m\u00e1sodikhoz stb.). Ha az INDEX nincs megadva, akkor a daisy-chain \u00f6sszes LED-je a megadott sz\u00ednre lesz be\u00e1ll\u00edtva. Ha TRANSMIT=0 van megadva, akkor a sz\u00ednv\u00e1ltoztat\u00e1s csak a k\u00f6vetkez\u0151 SET_LED parancsn\u00e1l t\u00f6rt\u00e9nik meg, amely nem ad meg TRANSMIT=0-t. Ez hasznos lehet az INDEX param\u00e9terrel kombin\u00e1lva, ha egy daisy-chainben t\u00f6bb friss\u00edt\u00e9st szeretn\u00e9nk k\u00f6tegelni. Alap\u00e9rtelmez\u00e9s szerint a SET_LED parancs szinkroniz\u00e1lja a v\u00e1ltoztat\u00e1sokat a t\u00f6bbi folyamatban l\u00e9v\u0151 G-k\u00f3d paranccsal. Ez nemk\u00edv\u00e1natos viselked\u00e9shez vezethet, ha a LED-ek be\u00e1ll\u00edt\u00e1sa akkor t\u00f6rt\u00e9nik, amikor a nyomtat\u00f3 nem nyomtat, mivel ez vissza\u00e1ll\u00edtja az \u00fcresj\u00e1rati id\u0151korl\u00e1tot. Ha nincs sz\u00fcks\u00e9g gondos id\u0151z\u00edt\u00e9sre, az opcion\u00e1lis SYNC=0 param\u00e9ter megadhat\u00f3, hogy a m\u00f3dos\u00edt\u00e1sokat az \u00fcresj\u00e1rati id\u0151korl\u00e1t vissza\u00e1ll\u00edt\u00e1sa n\u00e9lk\u00fcl alkalmazd. SET_LED_TEMPLATE \u00b6 SET_LED_TEMPLATE LED=<led_name> TEMPLATE=<template_name> [<param_x>=<literal>] [INDEX=<index>] : Egy display_template hozz\u00e1rendel\u00e9se egy adott LED-hez . P\u00e9ld\u00e1ul, ha defini\u00e1ltunk egy [display_template my_led_template] konfigur\u00e1ci\u00f3s szakaszt, akkor itt hozz\u00e1rendelhetj\u00fck a TEMPLATE=my_led_template . A display_template-nek egy vessz\u0151vel elv\u00e1lasztott karakterl\u00e1ncot kell l\u00e9trehoznia, amely n\u00e9gy lebeg\u0151pontos sz\u00e1mot tartalmaz, amelyek megfelelnek a piros, z\u00f6ld, k\u00e9k \u00e9s feh\u00e9r sz\u00ednbe\u00e1ll\u00edt\u00e1soknak. A sablon folyamatosan ki\u00e9rt\u00e9kel\u00e9sre ker\u00fcl, \u00e9s a LED automatikusan az \u00edgy kapott sz\u00ednekre lesz be\u00e1ll\u00edtva. A sablon ki\u00e9rt\u00e9kel\u00e9se sor\u00e1n haszn\u00e1land\u00f3 display_template param\u00e9tereket lehet be\u00e1ll\u00edtani (a param\u00e9terek Python liter\u00e1lokk\u00e9nt lesznek elemezve). Ha az INDEX nincs megadva, akkor a LED's daisy-chain \u00f6sszes chipje a sablonra lesz be\u00e1ll\u00edtva, ellenkez\u0151 esetben csak a megadott indexszel rendelkez\u0151 chip lesz friss\u00edtve. Ha a TEMPLATE \u00fcres karakterl\u00e1nc, akkor ez a parancs t\u00f6rli a LED-hez rendelt kor\u00e1bbi sablonokat (ekkor a SET_LED parancsokat haszn\u00e1lhatjuk a LED sz\u00ednbe\u00e1ll\u00edt\u00e1sainak kezel\u00e9s\u00e9re). [output_pin] \u00b6 A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha az output_pin konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. SET_PIN \u00b6 SET_PIN PIN=config_name VALUE=<value> CYCLE_TIME=<cycle_time> : Megjegyz\u00e9s: A hardveres PWM jelenleg nem t\u00e1mogatja a CYCLE_TIME param\u00e9tert, \u00e9s a konfigur\u00e1ci\u00f3ban meghat\u00e1rozott ciklusid\u0151t haszn\u00e1lja. [palette2] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a palette2 konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. A paletta nyomtat\u00e1sok speci\u00e1lis OCode-ok (Omega-k\u00f3dok) be\u00e1gyaz\u00e1s\u00e1val m\u0171k\u00f6dnek a G-k\u00f3d f\u00e1jlban: O1 ... O32 : Ezeket a k\u00f3dokat a G-k\u00f3d folyamatb\u00f3l olvassa be \u00e9s dolgozza fel ez a modul, majd tov\u00e1bb\u00edtja a Palette 2 eszk\u00f6znek. A k\u00f6vetkez\u0151 tov\u00e1bbi parancsok is rendelkez\u00e9sre \u00e1llnak. PALETTE_CONNECT \u00b6 PALETTE_CONNECT : Ez a parancs inicializ\u00e1lja a kapcsolatot a Palette 2-vel. PALETTE_DISCONNECT \u00b6 PALETTE_DISCONNECT : Ez a parancs megszak\u00edtja a kapcsolatot a Paletta 2-vel. PALETTE_CLEAR \u00b6 PALETTE_CLEAR : Ez a parancs arra utas\u00edtja a Palette 2-t, hogy t\u00f6r\u00f6lje az \u00f6sszes sz\u00e1lat a bemeneti \u00e9s kimeneti \u00fatvonalb\u00f3l. PALETTE_CUT \u00b6 PALETTE_CUT : Ez a parancs utas\u00edtja a Palette 2-t, hogy v\u00e1gja el az illeszt\u00e9si magba t\u00f6lt\u00f6tt sz\u00e1lat. PALETTE_SMART_LOAD \u00b6 PALETTE_SMART_LOAD : Ez a parancs elind\u00edtja az intelligens bet\u00f6lt\u00e9si sorozatot a Paletta 2-n. A nyomtat\u00f3sz\u00e1l bet\u00f6lt\u00e9se automatikusan t\u00f6rt\u00e9nik a k\u00e9sz\u00fcl\u00e9kben a nyomtat\u00f3hoz kalibr\u00e1lt t\u00e1vols\u00e1g extrud\u00e1l\u00e1s\u00e1val, \u00e9s utas\u00edtja a Palette 2-t, amint a bet\u00f6lt\u00e9s befejez\u0151d\u00f6tt. Ez a parancs megegyezik a Smart Load megnyom\u00e1s\u00e1val k\u00f6zvetlen\u00fcl a Palette 2 k\u00e9perny\u0151j\u00e9n, miut\u00e1n a nyomtat\u00f3sz\u00e1l bet\u00f6lt\u00e9se befejez\u0151d\u00f6tt. [pid_calibrate] \u00b6 A pid_calibrate modul automatikusan bet\u00f6lt\u0151dik, ha a konfigur\u00e1ci\u00f3s f\u00e1jlban van egy f\u0171t\u00e9s defini\u00e1lva. PID_CALIBRATE \u00b6 PID_CALIBRATE HEATER=<config_name> TARGET=<temperature> [WRITE_FILE=1] : A PID kalibr\u00e1ci\u00f3s teszt elv\u00e9gz\u00e9se. A megadott f\u0171t\u0151berendez\u00e9s a megadott c\u00e9lh\u0151m\u00e9rs\u00e9klet el\u00e9r\u00e9s\u00e9ig enged\u00e9lyezve lesz, majd a f\u0171t\u0151berendez\u00e9s t\u00f6bb cikluson kereszt\u00fcl ki- \u00e9s bekapcsol. Ha a WRITE_FILE param\u00e9ter enged\u00e9lyezve van, akkor l\u00e9trej\u00f6n a /tmp/heattest.txt f\u00e1jl a teszt sor\u00e1n vett \u00f6sszes h\u0151m\u00e9rs\u00e9klet-mint\u00e1t tartalmaz\u00f3 napl\u00f3val. [pause_resume] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a pause_resume konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van: PAUSE \u00b6 PAUSE : Az aktu\u00e1lis nyomtat\u00e1s sz\u00fcneteltet\u00e9se. Az aktu\u00e1lis poz\u00edci\u00f3 r\u00f6gz\u00edt\u00e9sre ker\u00fcl, hogy a folytat\u00e1skor vissza\u00e1ll\u00edthat\u00f3 legyen. RESUME \u00b6 RESUME [VELOCITY=<value>] : Folytatja a nyomtat\u00e1st sz\u00fcnet ut\u00e1n, el\u0151sz\u00f6r vissza\u00e1ll\u00edtva a kor\u00e1bban r\u00f6gz\u00edtett poz\u00edci\u00f3t. A VELOCITY param\u00e9ter hat\u00e1rozza meg, hogy a f\u00fav\u00f3ka milyen sebess\u00e9ggel t\u00e9rjen vissza az eredeti r\u00f6gz\u00edtett poz\u00edci\u00f3ba. CLEAR_PAUSE \u00b6 CLEAR_PAUSE : T\u00f6rli az aktu\u00e1lis sz\u00fcneteltetett \u00e1llapotot a nyomtat\u00e1s folytat\u00e1sa n\u00e9lk\u00fcl. Ez akkor hasznos, ha valaki \u00fagy d\u00f6nt, hogy PAUSE ut\u00e1n megszak\u00edtja a nyomtat\u00e1st. Aj\u00e1nlatos ezt hozz\u00e1adni az ind\u00edt\u00f3 G-k\u00f3dhoz, hogy a sz\u00fcneteltetett \u00e1llapot minden nyomtat\u00e1sn\u00e1l friss legyen. CANCEL_PRINT \u00b6 CANCEL_PRINT : Az aktu\u00e1lis nyomtat\u00e1s t\u00f6rl\u00e9se. [print_stats] \u00b6 A print_stats modul automatikusan bet\u00f6lt\u0151dik. SET_PRINT_STATS_INFO \u00b6 SET_PRINT_STATS_INFO [TOTAL_LAYER=<total_layer_count>] [CURRENT_LAYER= <current_layer>] : \u00c1tadja a szeletel\u0151 adatait, a Klippernek, mint p\u00e9ld\u00e1ul az aktu\u00e1lis \u00e9s \u00f6sszes r\u00e9teg. Add hozz\u00e1 a SET_PRINT_STATS_INFO [TOTAL_LAYER=<total_layer_count>] a szeletel\u0151 ind\u00edt\u00f3 G-k\u00f3d szakasz\u00e1hoz \u00e9s a SET_PRINT_STATS_INFO [CURRENT_LAYER= <current_layer>] a r\u00e9tegv\u00e1lt\u00e1s G-k\u00f3d szakasz\u00e1hoz, hogy \u00e1tadja a r\u00e9teginform\u00e1ci\u00f3t a szeletel\u0151 a Klippernek. [probe] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a szonda konfigur\u00e1ci\u00f3s szakasz vagy a bltouch konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a szonda kalibr\u00e1ci\u00f3s \u00fatmutat\u00f3t ). PROBE \u00b6 PROBE [PROBE_SPEED=<mm/s>] [LIFT_SPEED=<mm/s>] [SAMPLES=<count>] [SAMPLE_RETRACT_DIST=<mm>] [SAMPLES_TOLERANCE=<mm>] [SAMPLES_TOLERANCE_RETRIES=<count>] [SAMPLES_RESULT=median|average] : Mozgasd a f\u00fav\u00f3k\u00e1t lefel\u00e9, am\u00edg a szonda nem \u00e9rz\u00e9kel. Ha b\u00e1rmelyik opcion\u00e1lis param\u00e9tert megadjuk, azok fel\u00fcl\u00edrj\u00e1k a szonda konfigur\u00e1ci\u00f3s szakasz\u00e1ban megadott megfelel\u0151 be\u00e1ll\u00edt\u00e1sokat. QUERY_PROBE \u00b6 QUERY_PROBE : Jelentse a szonda aktu\u00e1lis \u00e1llapot\u00e1t (\"triggered\" vagy \"open\"). PROBE_ACCURACY \u00b6 PROBE_ACCURACY [PROBE_SPEED=<mm/s>] [SAMPLES=<count>] [SAMPLE_RETRACT_DIST=<mm>] : T\u00f6bb m\u00e9r\u00e9si minta maximum\u00e1nak, minimum\u00e1nak, \u00e1tlag\u00e1nak, medi\u00e1nj\u00e1nak \u00e9s sz\u00f3r\u00e1s\u00e1nak kisz\u00e1m\u00edt\u00e1sa. Alap\u00e9rtelmez\u00e9s szerint 10 MINT\u00c1T vesz\u00fcnk. Egy\u00e9bk\u00e9nt az opcion\u00e1lis param\u00e9terek alap\u00e9rtelmez\u00e9s szerint a szonda konfigur\u00e1ci\u00f3s szakasz\u00e1ban szerepl\u0151 megfelel\u0151 be\u00e1ll\u00edt\u00e1sokat haszn\u00e1lj\u00e1k. PROBE_CALIBRATE \u00b6 PROBE_CALIBRATE [SPEED=<speed>] [<probe_parameter>=<value>] : A szonda z_offset kalibr\u00e1l\u00e1s\u00e1hoz hasznos seg\u00e9dszkript futtat\u00e1sa. Az opcion\u00e1lis szondaparam\u00e9terekkel kapcsolatos r\u00e9szletek\u00e9rt l\u00e1sd a PROBE parancsot. L\u00e1sd a MANUAL_PROBE parancsot a SPEED param\u00e9terre \u00e9s az eszk\u00f6z akt\u00edv m\u0171k\u00f6d\u00e9se k\u00f6zben el\u00e9rhet\u0151 tov\u00e1bbi parancsokra vonatkoz\u00f3 r\u00e9szletek\u00e9rt. Felh\u00edvjuk a figyelmet, hogy a PROBE_CALIBRATE parancs a sebess\u00e9g v\u00e1ltoz\u00f3t haszn\u00e1lja az XY ir\u00e1ny\u00fa \u00e9s a Z ir\u00e1ny\u00fa mozg\u00e1shoz. Z_OFFSET_APPLY_PROBE \u00b6 Z_OFFSET_APPLY_PROBE : Vegy\u00fck az aktu\u00e1lis Z G-k\u00f3d eltol\u00e1st (m\u00e1s n\u00e9ven mikrol\u00e9p\u00e9s), \u00e9s vonjuk ki a szonda z_offset-j\u00e9b\u0151l. Ez egy gyakran haszn\u00e1lt mikrol\u00e9p\u00e9s \u00e9rt\u00e9ket vesz, \u00e9s \"\u00e1lland\u00f3v\u00e1 teszi\". Egy SAVE_CONFIG sz\u00fcks\u00e9ges a hat\u00e1lybal\u00e9p\u00e9shez. [query_adc] \u00b6 A query_adc modul automatikusan bet\u00f6lt\u0151dik. QUERY_ADC \u00b6 QUERY_ADC [NAME=<config_name>] [PULLUP=<value>] : Jelenti a konfigur\u00e1lt anal\u00f3g t\u0171h\u00f6z utolj\u00e1ra kapott anal\u00f3g \u00e9rt\u00e9ket. Ha NAME nincs megadva, a rendelkez\u00e9sre \u00e1ll\u00f3 ADC nevek list\u00e1ja ker\u00fcl jelent\u00e9sre. Ha a PULLUP meg van adva (ohmban megadott \u00e9rt\u00e9kk\u00e9nt), akkor a nyers anal\u00f3g \u00e9rt\u00e9ket \u00e9s a pullup adott egyen\u00e9rt\u00e9k\u0171 ellen\u00e1ll\u00e1st jelenti. [query_endstops] \u00b6 A query_endstops modul automatikusan bet\u00f6lt\u0151dik. Jelenleg a k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d parancsok \u00e1llnak rendelkez\u00e9sre, de haszn\u00e1latuk nem aj\u00e1nlott: V\u00e9g\u00e1ll\u00e1s \u00e1llapot\u00e1nak lek\u00e9rdez\u00e9se: M119 (Haszn\u00e1ld QUERY_ENDSTOPS helyett.) QUERY_ENDSTOPS \u00b6 QUERY_ENDSTOPS : M\u00e9ri a tengelyv\u00e9g\u00e1ll\u00e1sokat \u00e9s jelenti, ha azok \"kioldottak\" vagy \"nyitott\" \u00e1llapotban vannak. Ezt a parancsot \u00e1ltal\u00e1ban annak ellen\u0151rz\u00e9s\u00e9re haszn\u00e1lj\u00e1k, hogy egy v\u00e9g\u00e1ll\u00e1s megfelel\u0151en m\u0171k\u00f6dik-e. [resonance_tester] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a resonance_tester konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a rezonanci\u00e1k m\u00e9r\u00e9se \u00fatmutat\u00f3t ). MEASURE_AXES_NOISE \u00b6 MEASURE_AXES_NOISE : Az \u00f6sszes enged\u00e9lyezett gyorsul\u00e1sm\u00e9r\u0151 chip \u00f6sszes tengely\u00e9nek zaj\u00e1t m\u00e9ri \u00e9s adja ki. TEST_RESONANCES \u00b6 TEST_RESONANCES AXIS=<axis> OUTPUT=<resonances,raw_data> [NAME=<name>] [FREQ_START=<min_freq>] [FREQ_END=<max_freq>] [HZ_PER_SEC=<hz_per_sec>] [CHIPS=<adxl345_chip_name>] [POINT=x,y,z] [INPUT_SHAPING=[<0:1>]] : Lefuttatja a rezonanciatesztet a k\u00e9rt \"tengely\" \u00f6sszes konfigur\u00e1lt m\u00e9r\u0151pontj\u00e1ban, \u00e9s m\u00e9ri a gyorsul\u00e1st az adott tengelyhez konfigur\u00e1lt gyorsul\u00e1sm\u00e9r\u0151 chipek seg\u00edts\u00e9g\u00e9vel. A \"tengely\" lehet X vagy Y, vagy megadhat egy tetsz\u0151leges ir\u00e1nyt AXIS=dx,dy , ahol dx \u00e9s dy egy ir\u00e1nyvektort meghat\u00e1roz\u00f3 lebeg\u0151pontos sz\u00e1m (pl. AXIS=X , AXIS=Y , vagy AXIS=1,-1 az \u00e1tl\u00f3s ir\u00e1ny meghat\u00e1roz\u00e1s\u00e1hoz). Vegy\u00fck figyelembe, hogy az AXIS=dx,dy \u00e9s az AXIS=-dx,-dy egyen\u00e9rt\u00e9k\u0171. Az adxl345_chip_name lehet egy vagy t\u00f6bb konfigur\u00e1lt adxl345 chip, vessz\u0151vel elv\u00e1lasztva, p\u00e9ld\u00e1ul CHIPS=\"adxl345, adxl345 rpi\" . Megjegyzend\u0151, hogy az adxl345 elhagyhat\u00f3 a neves\u00edtett adxl345 chipekn\u00e9l. Ha POINT van megadva, az fel\u00fcl\u00edrja a [resonance_tester] alatt konfigur\u00e1lt pontokat. Ha INPUT_SHAPING=0 vagy nincs be\u00e1ll\u00edtva (alap\u00e9rtelmezett), letiltja a bemeneti alak\u00edt\u00e1st a rezonancia tesztel\u00e9shez, mert a rezonancia tesztel\u00e9s nem \u00e9rv\u00e9nyes a bemeneti alak\u00edt\u00f3 enged\u00e9lyez\u00e9s\u00e9vel. Az OUTPUT param\u00e9ter egy vessz\u0151vel elv\u00e1lasztott lista arr\u00f3l, hogy mely kimenetek ker\u00fclnek ki\u00edr\u00e1sra. Ha raw_data param\u00e9tert k\u00e9r, akkor a nyers gyorsul\u00e1sm\u00e9r\u0151 adatok egy /tmp/raw_data_<axis>_[<chip_name>_][<point>_]<name>.csv f\u00e1jlba vagy f\u00e1jlsorozatba \u00edr\u00f3dnak. A ( <point>_ n\u00e9v r\u00e9sz\u00e9vel, amely csak akkor gener\u00e1l\u00f3dik, ha 1-n\u00e9l t\u00f6bb m\u00e9r\u0151pont van konfigur\u00e1lva vagy POINT van megadva). Ha resonances van megadva, a frekvenciav\u00e1lasz kisz\u00e1m\u00edt\u00e1sra ker\u00fcl (az \u00f6sszes m\u00e9r\u0151pontra vonatkoz\u00f3an), \u00e9s a /tmp/resonances_<axis>_<name>.csv f\u00e1jlba \u00edr\u00f3dik. Ha nincs be\u00e1ll\u00edtva, az OUTPUT alap\u00e9rtelmez\u00e9s szerinti resonances , a NAME pedig alap\u00e9rtelmez\u00e9s szerint az aktu\u00e1lis id\u0151pontot jelenti \"\u00c9\u00c9\u00c9\u00c9HHNN_\u00d3\u00d3PPMPMP\" form\u00e1tumban. SHAPER_CALIBRATE \u00b6 SHAPER_CALIBRATE [AXIS=<axis>] [NAME=<name>] [FREQ_START=<min_freq>] [FREQ_END=<max_freq>] [HZ_PER_SEC=<hz_per_sec>] [MAX_SMOOTHING=<max_smoothing>] : A TEST_RESONANCES param\u00e9terhez hasonl\u00f3an lefuttatja a rezonancia tesztet a konfigur\u00e1ltak szerint, \u00e9s megpr\u00f3b\u00e1lja megtal\u00e1lni a bemeneti v\u00e1ltoz\u00f3 optim\u00e1lis param\u00e9tereit a k\u00e9rt tengelyre (vagy mind az X, mind az Y tengelyre, ha az AXIS param\u00e9ter nincs be\u00e1ll\u00edtva). Ha a MAX_SMOOTHING nincs be\u00e1ll\u00edtva, az \u00e9rt\u00e9k\u00e9t a [resonance_tester] szakaszb\u00f3l veszi, az alap\u00e9rtelmezett \u00e9rt\u00e9k pedig a be nem \u00e1ll\u00edtott \u00e9rt\u00e9k. L\u00e1sd a Max sim\u00edt\u00e1s a rezonanci\u00e1k m\u00e9r\u00e9se c\u00edm\u0171 \u00fatmutat\u00f3ban a funkci\u00f3 haszn\u00e1lat\u00e1r\u00f3l sz\u00f3l\u00f3 tov\u00e1bbi inform\u00e1ci\u00f3kat. A hangol\u00e1s eredm\u00e9nyei ki\u00edr\u00f3dnak a konzolra, a frekvenciav\u00e1laszok \u00e9s a k\u00fcl\u00f6nb\u00f6z\u0151 bemeneti alak\u00edt\u00f3k \u00e9rt\u00e9kei pedig egy vagy t\u00f6bb CSV-f\u00e1jlba \u00edr\u00f3dnak /tmp/calibration_data_<axis>_<name>.csv . Hacsak nincs megadva, a NAME alap\u00e9rtelmez\u00e9s szerint az aktu\u00e1lis id\u0151pontot jelenti \"YYYYMMDD_HHMMSS\" form\u00e1tumban. Vedd figyelembe, hogy a javasolt bemeneti v\u00e1ltoz\u00f3 param\u00e9terek a SAVE_CONFIG parancs kiad\u00e1s\u00e1val meg\u0151rizhet\u0151k a konfigur\u00e1ci\u00f3s f\u00e1jlban. [respond] \u00b6 A k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d\u00fa parancsok \u00e1llnak rendelkez\u00e9sre, ha a respond konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van: M118 <message> : visszhangozza az \u00fczenetet a konfigur\u00e1lt alap\u00e9rtelmezett el\u0151taggal (vagy echo: , ha nincs konfigur\u00e1lva el\u0151tag). A k\u00f6vetkez\u0151 tov\u00e1bbi parancsok is rendelkez\u00e9sre \u00e1llnak. RESPOND \u00b6 RESPOND MSG=\"<message>\" : visszhangozza az \u00fczenetet a konfigur\u00e1lt alap\u00e9rtelmezett el\u0151taggal kieg\u00e9sz\u00edtve (vagy echo: , ha nincs konfigur\u00e1lva el\u0151tag). RESPOND TYPE=echo MSG=\"<message>\" : visszhangozza az \u00fczenetet, amelyet echo: k\u00fcld. RESPOND TYPE=echo_no_space MSG=\"<message>\" : az \u00fczenet visszhangja az el\u0151taggal kieg\u00e9sz\u00edtve echo: sz\u00f3k\u00f6z n\u00e9lk\u00fcl az el\u0151tag \u00e9s az \u00fczenet k\u00f6z\u00f6tt, hasznos a kompatibilit\u00e1s n\u00e9h\u00e1ny olyan octoprint pluginnal, amelyek nagyon speci\u00e1lis form\u00e1z\u00e1st v\u00e1rnak el. RESPOND TYPE=command MSG=\"<message>\" : visszhangozza az \u00fczenetet // . Az OctoPrint konfigur\u00e1lhat\u00f3 \u00fagy, hogy v\u00e1laszoljon ezekre az \u00fczenetekre (pl. RESPOND TYPE=command MSG=action:pause ). RESPOND TYPE=error MSG=\"<message>\" : visszhangozza az \u00fczenetet !! . RESPOND PREFIX=<prefix> MSG=\"<message>\" : visszhangozza az \u00fczenetet <prefix> el\u0151taggal kieg\u00e9sz\u00edtve. (A PREFIX param\u00e9ter els\u0151bbs\u00e9get \u00e9lvez a TYPE param\u00e9terrel szemben.) [save_variables] \u00b6 A k\u00f6vetkez\u0151 parancs akkor enged\u00e9lyezett, ha a save_variables konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. SAVE_VARIABLE \u00b6 SAVE_VARIABLE VARIABLE=<name> VALUE=<value> : A v\u00e1ltoz\u00f3t a lemezre menti, hogy \u00fajraind\u00edt\u00e1skor is haszn\u00e1lhat\u00f3 legyen. Minden t\u00e1rolt v\u00e1ltoz\u00f3 bet\u00f6lt\u0151dik a printer.save_variables.variables dict ind\u00edt\u00e1skor, \u00e9s haszn\u00e1lhat\u00f3 a G-k\u00f3d makr\u00f3kban. A megadott VALUE-t Python liter\u00e1lk\u00e9nt elemzi. [screws_tilt_adjust] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a screws_tilt_adjust konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a k\u00e9zi szintbe\u00e1ll\u00edt\u00e1si \u00fatmutat\u00f3t ). SCREWS_TILT_CALCULATE \u00b6 SCREWS_TILT_CALCULATE [DIRECTION=CW|CCW] [MAX_DEVIATION=<value>] [<probe_parameter>=<value>] : Ez a parancs a t\u00e1rgyasztal csavarjainak be\u00e1ll\u00edt\u00e1si eszk\u00f6z\u00e9t h\u00edvja el\u0151. A f\u00fav\u00f3k\u00e1t k\u00fcl\u00f6nb\u00f6z\u0151 helyekre (a konfigur\u00e1ci\u00f3s f\u00e1jlban meghat\u00e1rozottak szerint) parancsolja a Z magass\u00e1got m\u00e9rve, \u00e9s kisz\u00e1m\u00edtja a t\u00e1rgyasztal szintj\u00e9nek be\u00e1ll\u00edt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges gombfordulatok sz\u00e1m\u00e1t. Ha DIRECTION van megadva, akkor a gombfordul\u00e1sok mind ugyanabba az ir\u00e1nyba, az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val megegyez\u0151 vagy az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1nyba fognak t\u00f6rt\u00e9nni. Az opcion\u00e1lis szondaparam\u00e9terekkel kapcsolatos r\u00e9szletek\u00e9rt l\u00e1sd a PROBE parancsot. FONTOS: A parancs haszn\u00e1lata el\u0151tt mindig ki kell adni egy G28 parancsot. Ha MAX_DEVIATION van megadva, a parancs G-k\u00f3d hib\u00e1t fog adni, ha a csavar magass\u00e1g\u00e1nak az alapcsavar magass\u00e1g\u00e1hoz viszony\u00edtott b\u00e1rmilyen k\u00fcl\u00f6nbs\u00e9ge nagyobb, mint a megadott \u00e9rt\u00e9k. [sdcard_loop] \u00b6 Ha az sdcard_loop konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van, a k\u00f6vetkez\u0151 kiterjesztett parancsok \u00e1llnak rendelkez\u00e9sre. SDCARD_LOOP_BEGIN \u00b6 SDCARD_LOOP_BEGIN COUNT=<count> : Egy hurokszer\u0171 szakasz kezdete az SD nyomtat\u00e1sban. A 0-\u00e1s sz\u00e1m azt jelzi, hogy a szakasz v\u00e9gtelen\u00edtett hurokba ker\u00fclj\u00f6n. SDCARD_LOOP_END \u00b6 SDCARD_LOOP_END : Az SD-nyomtat\u00e1sban egy ciklusos szakasz befejez\u00e9se. SDCARD_LOOP_DESIST \u00b6 SDCARD_LOOP_DESIST : A megl\u00e9v\u0151 ciklusok befejez\u00e9se tov\u00e1bbi iter\u00e1ci\u00f3k n\u00e9lk\u00fcl. [servo] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a szerv\u00f3 konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. SET_SERVO \u00b6 SET_SERVO SERVO=config_name [ANGLE=<degrees> | WIDTH=<seconds>] : A szerv\u00f3 poz\u00edci\u00f3j\u00e1nak be\u00e1ll\u00edt\u00e1sa a megadott sz\u00f6gre (fokban) vagy impulzussz\u00e9less\u00e9gre (m\u00e1sodpercben). A WIDTH=0 haszn\u00e1lat\u00e1val letilthatja a szerv\u00f3kimenetet. [skew_correction] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a skew_correction konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a Ferdes\u00e9gi korrekci\u00f3 \u00fatmutat\u00f3t). SET_SKEW \u00b6 SET_SKEW [XY=<ac_length,bd_length,ad_length>] [XZ=<ac,bd,ad>] [YZ=<ac,bd,ad>] [CLEAR=<0|1>] : A [skew_correction] modul konfigur\u00e1l\u00e1sa a kalibr\u00e1ci\u00f3s nyomatb\u00f3l vett m\u00e9r\u00e9sekkel (mm-ben). A m\u00e9r\u00e9sek a s\u00edkok tetsz\u0151leges kombin\u00e1ci\u00f3j\u00e1ra adhat\u00f3k meg, a be nem adott s\u00edkok megtartj\u00e1k az aktu\u00e1lis \u00e9rt\u00e9k\u00fcket. Ha CLEAR=1 van megadva, akkor minden ferdes\u00e9gkorrekci\u00f3 ki lesz kapcsolva. GET_CURRENT_SKEW \u00b6 GET_CURRENT_SKEW : A nyomtat\u00f3 aktu\u00e1lis ferdes\u00e9g\u00e9t jelenti minden s\u00edkhoz radi\u00e1nban \u00e9s fokban. A ferdes\u00e9g kisz\u00e1m\u00edt\u00e1sa a SET_SKEW G-k\u00f3dal megadott param\u00e9terek alapj\u00e1n t\u00f6rt\u00e9nik. CALC_MEASURED_SKEW \u00b6 CALC_MEASURED_SKEW [AC=<ac_length>] [BD=<bd_length>] [AD=<ad_length>] : Kisz\u00e1m\u00edtja \u00e9s jelenti a ferdes\u00e9get (radi\u00e1nban \u00e9s fokban) egy m\u00e9rt lenyomat alapj\u00e1n. Ez hasznos lehet a nyomtat\u00f3 aktu\u00e1lis ferdes\u00e9g\u00e9nek meghat\u00e1roz\u00e1s\u00e1hoz a korrekci\u00f3 alkalmaz\u00e1sa ut\u00e1n. A korrekci\u00f3 alkalmaz\u00e1sa el\u0151tt is hasznos lehet annak meghat\u00e1roz\u00e1s\u00e1hoz, hogy sz\u00fcks\u00e9ges-e a ferdes\u00e9gkorrekci\u00f3. A ferdes\u00e9g kalibr\u00e1ci\u00f3s objektumok \u00e9s m\u00e9r\u00e9sek r\u00e9szletei\u00e9rt l\u00e1sd a Ferdes\u00e9g korrekci\u00f3 dokumentumot. SKEW_PROFILE \u00b6 SKEW_PROFILE [LOAD=<name>] [SAVE=<name>] [REMOVE=<name>] : Profilkezel\u00e9s a skew_correction sz\u00e1m\u00e1ra. A LOAD vissza\u00e1ll\u00edtja a ferdes\u00e9g \u00e1llapot\u00e1t a megadott n\u00e9vnek megfelel\u0151 profilb\u00f3l. A SAVE a megadott n\u00e9vnek megfelel\u0151 profilba menti az aktu\u00e1lis ferdes\u00e9g\u00e1llapotot. A REMOVE t\u00f6rli a megadott n\u00e9vnek megfelel\u0151 profilt a tart\u00f3s mem\u00f3ri\u00e1b\u00f3l. Megjegyzend\u0151, hogy a SAVE vagy REMOVE m\u0171veletek lefuttat\u00e1sa ut\u00e1n a SAVE_CONFIG parancsot kell futtatni, hogy a tart\u00f3s mem\u00f3ri\u00e1ban v\u00e9grehajtott v\u00e1ltoztat\u00e1sok v\u00e9glegesek legyenek. [smart_effector] \u00b6 T\u00f6bb parancs is el\u00e9rhet\u0151, ha a smart_effector konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. A Smart Effector param\u00e9tereinek m\u00f3dos\u00edt\u00e1sa el\u0151tt mindenk\u00e9ppen n\u00e9zze meg a Smart Effector hivatalos dokument\u00e1ci\u00f3j\u00e1t a Duet3D Wiki oldalon. Ellen\u0151rizd tov\u00e1bb\u00e1 a szonda kalibr\u00e1ci\u00f3s \u00fatmutat\u00f3 c\u00edm\u0171 dokumenmot is. SET_SMART_EFFECTOR \u00b6 SET_SMART_EFFECTOR [SENSITIVITY=<sensitivity>] [ACCEL=<accel>] [RECOVERY_TIME=<time>] : A Smart Effector param\u00e9tereinek be\u00e1ll\u00edt\u00e1sa. Ha SENSITIVITY van megadva, a megfelel\u0151 \u00e9rt\u00e9k a SmartEffector EEPROM-ba \u00edr\u00f3dik ( control_pin biztos\u00edt\u00e1sa sz\u00fcks\u00e9ges). Az elfogadhat\u00f3 <sensitivity> \u00e9rt\u00e9kek 0..255, az alap\u00e9rtelmezett \u00e9rt\u00e9k 50..255. Az alacsonyabb \u00e9rt\u00e9kek kisebb f\u00fav\u00f3ka-\u00e9rintkez\u00e9si er\u0151t ig\u00e9nyelnek a kiold\u00e1shoz (de nagyobb a t\u00e9ves kiold\u00e1s kock\u00e1zata a szond\u00e1z\u00e1s k\u00f6zbeni rezg\u00e9sek miatt), a magasabb \u00e9rt\u00e9kek pedig cs\u00f6kkentik a t\u00e9ves kiold\u00e1st (de nagyobb \u00e9rintkez\u00e9si er\u0151t ig\u00e9nyelnek a kiold\u00e1shoz). Mivel az \u00e9rz\u00e9kenys\u00e9g az EEPROM-ba \u00edr\u00f3dik, a le\u00e1ll\u00edt\u00e1s ut\u00e1n is megmarad, \u00edgy nem kell minden nyomtat\u00f3 ind\u00edt\u00e1sakor konfigur\u00e1lni. ACCEL \u00e9s RECOVERY_TIME lehet\u0151v\u00e9 teszi a megfelel\u0151 param\u00e9terek fut\u00e1sid\u0151ben t\u00f6rt\u00e9n\u0151 fel\u00fclb\u00edr\u00e1l\u00e1s\u00e1t, a Smart Effector konfigur\u00e1ci\u00f3s szakasz tov\u00e1bbi inform\u00e1ci\u00f3kat tartalmaz ezekr\u0151l a param\u00e9terekr\u0151l. RESET_SMART_EFFECTOR \u00b6 RESET_SMART_EFFECTOR : Vissza\u00e1ll\u00edtja a Smart Effector \u00e9rz\u00e9kenys\u00e9g\u00e9t a gy\u00e1ri be\u00e1ll\u00edt\u00e1sokra. Sz\u00fcks\u00e9ges a control_pin megad\u00e1sa a config szakaszban. [stepper_enable] \u00b6 A stepper_enable modul automatikusan bet\u00f6lt\u0151dik. SET_STEPPER_ENABLE \u00b6 SET_STEPPER_ENABLE STEPPER=<config_name> ENABLE=[0|1] : Csak az adott l\u00e9ptet\u0151motor enged\u00e9lyez\u00e9se vagy letilt\u00e1sa. Ez egy diagnosztikai \u00e9s hibakeres\u00e9si eszk\u00f6z, ez\u00e9rt \u00f3vatosan kell haszn\u00e1lni. Egy l\u00e9ptet\u0151motor letilt\u00e1sa nem \u00e1ll\u00edtja vissza a kezd\u0151pont felv\u00e9teli inform\u00e1ci\u00f3kat. Egy letiltott l\u00e9ptet\u0151motor k\u00e9zi mozgat\u00e1sa azt okozhatja, hogy a g\u00e9p a biztons\u00e1gos hat\u00e1r\u00e9rt\u00e9keken k\u00edv\u00fcl m\u0171k\u00f6dteti a motort. Ez a tengely alkatr\u00e9szeinek, a nyomtat\u00f3fejnek \u00e9s a nyomtat\u00e1si fel\u00fcletnek a k\u00e1rosod\u00e1s\u00e1hoz vezethet. [temperature_fan] \u00b6 A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a temperature_fan konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. SET_TEMPERATURE_FAN_TARGET \u00b6 SET_TEMPERATURE_FAN_TARGET temperature_fan=<temperature_fan_name> [target=<target_temperature>] [min_speed=<min_speed>] [max_speed=<max_speed>] : A temperature_fan c\u00e9lh\u0151m\u00e9rs\u00e9klet\u00e9nek be\u00e1ll\u00edt\u00e1sa. Ha nincs megadva c\u00e9l\u00e9rt\u00e9k, akkor a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott h\u0151m\u00e9rs\u00e9kletet \u00e1ll\u00edtja be. Ha a sebess\u00e9gek nincsenek megadva, akkor nem t\u00f6rt\u00e9nik v\u00e1ltoz\u00e1s. [tmcXXXX] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a tmcXXXXXX konfigur\u00e1ci\u00f3s szakaszok b\u00e1rmelyike enged\u00e9lyezve van. DUMP_TMC \u00b6 DUMP_TMC STEPPER=<name> : Ez a parancs kiolvassa a TMC-motorvez\u00e9rl\u0151 regisztereit \u00e9s jelenti azok \u00e9rt\u00e9keit. INIT_TMC \u00b6 INIT_TMC STEPPER=<name> : Ez a parancs inicializ\u00e1lja a TMC regisztereket. A meghajt\u00f3 \u00fajraaktiv\u00e1l\u00e1s\u00e1hoz sz\u00fcks\u00e9ges, ha a chip \u00e1ramell\u00e1t\u00e1sa kikapcsol, majd visszakapcsol. SET_TMC_CURRENT \u00b6 SET_TMC_CURRENT STEPPER=<name> CURRENT=<amps> HOLDCURRENT=<amps> : Ez a TMC-motorvez\u00e9rl\u0151 fut\u00f3- \u00e9s tart\u00f3\u00e1ram\u00e1t \u00e1ll\u00edtja be. (A HOLDCURRENT nem alkalmazhat\u00f3 a tmc2660 motorvez\u00e9rl\u0151kre). SET_TMC_FIELD \u00b6 SET_TMC_FIELD STEPPER=<name> FIELD=<field> VALUE=<value> : Ez m\u00f3dos\u00edtja a TMC-motorvez\u00e9rl\u0151 megadott regisztermez\u0151j\u00e9nek \u00e9rt\u00e9k\u00e9t. Ez a parancs csak alacsony szint\u0171 diagnosztik\u00e1ra \u00e9s hibakeres\u00e9sre szolg\u00e1l, mivel a mez\u0151k fut\u00e1s k\u00f6zbeni m\u00f3dos\u00edt\u00e1sa a nyomtat\u00f3 nem k\u00edv\u00e1nt \u00e9s potenci\u00e1lisan vesz\u00e9lyes viselked\u00e9s\u00e9hez vezethet. A tart\u00f3s v\u00e1ltoztat\u00e1sokat ink\u00e1bb a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1nak haszn\u00e1lat\u00e1val kell elv\u00e9gezni. A megadott \u00e9rt\u00e9kek eset\u00e9ben nem t\u00f6rt\u00e9nik ellen\u0151rz\u00e9s. [toolhead] \u00b6 A nyomtat\u00f3fejmodul automatikusan bet\u00f6lt\u0151dik. SET_VELOCITY_LIMIT \u00b6 SET_VELOCITY_LIMIT [VELOCITY=<value>] [ACCEL=<value>] [ACCEL_TO_DECEL=<value>] [SQUARE_CORNER_VELOCITY=<value>] : A nyomtat\u00f3 sebess\u00e9ghat\u00e1rainak m\u00f3dos\u00edt\u00e1sa. [tuning_tower] \u00b6 A tuning_tower modul automatikusan bet\u00f6lt\u0151dik. TUNING_TOWER \u00b6 TUNING_TOWER COMMAND=<command> PARAMETER=<name> START=<value> [SKIP=<value>] [FACTOR=<value> [BAND=<value>]] | [STEP_DELTA=<value> STEP_HEIGHT=<value>] : Egy eszk\u00f6z egy param\u00e9ter be\u00e1ll\u00edt\u00e1s\u00e1ra minden egyes Z magass\u00e1gon a nyomtat\u00e1s sor\u00e1n. Az eszk\u00f6z az adott COMMAND parancsot a megadott PARAMETER \u00e9rt\u00e9khez rendelt Z \u00e9rt\u00e9kkel egy k\u00e9plet szerint v\u00e1ltoz\u00f3 \u00e9rt\u00e9kkel futtatja. Haszn\u00e1ld a FACTOR lehet\u0151s\u00e9get, ha vonalz\u00f3val vagy tol\u00f3m\u00e9r\u0151vel fogja m\u00e9rni az optim\u00e1lis Z magass\u00e1got, vagy STEP_DELTA \u00e9s STEP_HEIGHT , ha a hangol\u00f3torony modellje diszkr\u00e9t \u00e9rt\u00e9kek s\u00e1vjaival rendelkezik, mint ahogy az a h\u0151m\u00e9rs\u00e9klet-tornyokn\u00e1l gyakori. Ha SKIP=<value> van megadva, akkor a hangol\u00e1si folyamat nem kezd\u0151dik meg, am\u00edg a Z magass\u00e1g <value> el\u00e9r\u00e9s\u00e9t, \u00e9s ez alatt az \u00e9rt\u00e9k START \u00e9rt\u00e9kre lesz be\u00e1ll\u00edtva; ebben az esetben az al\u00e1bbi k\u00e9pletekben haszn\u00e1lt z_height val\u00f3j\u00e1ban max(z - skip, 0) . H\u00e1rom lehets\u00e9ges kombin\u00e1ci\u00f3 l\u00e9tezik: FACTOR : Az \u00e9rt\u00e9k factor millim\u00e9terenk\u00e9nt v\u00e1ltozik. Az alkalmazott k\u00e9plet: value = start + factor * z_height . Az optim\u00e1lis Z magass\u00e1got k\u00f6zvetlen\u00fcl a k\u00e9pletbe illesztheti az optim\u00e1lis param\u00e9ter\u00e9rt\u00e9k meghat\u00e1roz\u00e1s\u00e1hoz. FACTOR \u00e9s BAND : Az \u00e9rt\u00e9k \u00e1tlagosan Faktor millim\u00e9terenk\u00e9nt v\u00e1ltozik, de diszkr\u00e9t s\u00e1vokban, ahol a kiigaz\u00edt\u00e1s csak minden BAND millim\u00e9terenk\u00e9nt t\u00f6rt\u00e9nik a Z magass\u00e1gban. A haszn\u00e1lt k\u00e9plet a k\u00f6vetkez\u0151: value= start + factor* ((floor(z_height / band) + .5) * band) . STEP_DELTA \u00e9s STEP_HEIGHT : Az \u00e9rt\u00e9k STEP_DELTA minden STEP_HEIGHT millim\u00e9terrel v\u00e1ltozik. A haszn\u00e1lt k\u00e9plet a k\u00f6vetkez\u0151: value = start + step_delta * floor(z_height / step_height) . Az optim\u00e1lis \u00e9rt\u00e9k meghat\u00e1roz\u00e1s\u00e1hoz egyszer\u0171en megsz\u00e1molhatja a s\u00e1vokat vagy leolvashatja a hangol\u00f3torony \u00e9rt\u00e9keit. [virtual_sdcard] \u00b6 A Klipper t\u00e1mogatja a k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d parancsokat, ha a virtual_sdcard konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van: SD-k\u00e1rtya list\u00e1z\u00e1sa: M20 SD-k\u00e1rtya inicializ\u00e1l\u00e1sa: M21 V\u00e1laszd ki az SD f\u00e1jlt: M23 <filename> SD nyomtat\u00e1s ind\u00edt\u00e1sa/folytat\u00e1sa: M24 SD nyomtat\u00e1s sz\u00fcneteltet\u00e9se: M25 SD poz\u00edci\u00f3 be\u00e1ll\u00edt\u00e1sa: M26 S<offset> SD nyomtat\u00e1si st\u00e1tusz jelent\u00e9se: M27 Ezenk\u00edv\u00fcl a k\u00f6vetkez\u0151 kiterjesztett parancsok is el\u00e9rhet\u0151k, ha a \"virtual_sdcard\" konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. SDCARD_PRINT_FILE \u00b6 SDCARD_PRINT_FILE FILENAME=<filename> : Egy f\u00e1jl bet\u00f6lt\u00e9se \u00e9s az SD-nyomtat\u00e1s elind\u00edt\u00e1sa. SDCARD_RESET_FILE \u00b6 SDCARD_RESET_FILE : A f\u00e1jl elt\u00e1vol\u00edt\u00e1sa \u00e9s az SD \u00e1llapot\u00e1nak t\u00f6rl\u00e9se. [z_thermal_adjust] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a z_thermal_adjust konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. SET_Z_THERMAL_ADJUST \u00b6 SET_Z_THERMAL_ADJUST [ENABLE=<0:1>] [TEMP_COEFF=<value>] [REF_TEMP=<value>] : A Z h\u0151szab\u00e1lyoz\u00e1s enged\u00e9lyez\u00e9se vagy letilt\u00e1sa az ENABLE parancsal. A letilt\u00e1s nem t\u00e1vol\u00edtja el a m\u00e1r alkalmazott be\u00e1ll\u00edt\u00e1st, de befagyasztja az aktu\u00e1lis be\u00e1ll\u00edt\u00e1si \u00e9rt\u00e9ket. Ez megakad\u00e1lyozza a potenci\u00e1lisan nem biztons\u00e1gos Z lefel\u00e9 ir\u00e1nyul\u00f3 mozg\u00e1st. Az \u00fajb\u00f3li enged\u00e9lyez\u00e9s potenci\u00e1lisan felfel\u00e9 ir\u00e1nyul\u00f3 szersz\u00e1mmozg\u00e1st okozhat, mivel a be\u00e1ll\u00edt\u00e1s friss\u00fcl \u00e9s alkalmaz\u00e1sra ker\u00fcl. TEMP_COEFF lehet\u0151v\u00e9 teszi a be\u00e1ll\u00edt\u00e1si h\u0151m\u00e9rs\u00e9kleti egy\u00fctthat\u00f3 fut\u00e1sidej\u0171 hangol\u00e1s\u00e1t (azaz a TEMP_COEFF konfigur\u00e1ci\u00f3s param\u00e9tert). A TEMP_COEFF \u00e9rt\u00e9kek nem ker\u00fclnek ment\u00e9sre a konfigur\u00e1ci\u00f3ba. REF_TEMP manu\u00e1lisan fel\u00fclb\u00edr\u00e1lja a kezd\u0151pont felv\u00e9tel sor\u00e1n be\u00e1ll\u00edtott referencia-h\u0151m\u00e9rs\u00e9kletet (pl. nem szabv\u00e1nyos kezd\u0151pont felv\u00e9teli rutinokn\u00e1l t\u00f6rt\u00e9n\u0151 haszn\u00e1latra) - a kezd\u0151pont felv\u00e9telkor automatikusan vissza\u00e1ll. [z_tilt] \u00b6 A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a z_tilt konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. Z_TILT_ADJUST \u00b6 Z_TILT_ADJUST [<probe_parameter>=<value>] : Ez a parancs a konfigur\u00e1ci\u00f3ban megadott pontokat vizsg\u00e1lja meg, majd a d\u0151l\u00e9s kompenz\u00e1l\u00e1sa \u00e9rdek\u00e9ben minden egyes Z l\u00e9ptet\u0151n f\u00fcggetlen be\u00e1ll\u00edt\u00e1sokat v\u00e9gez. Az opcion\u00e1lis m\u00e9r\u00e9si param\u00e9terekkel kapcsolatos r\u00e9szletek\u00e9rt l\u00e1sd a PROBE parancsot.","title":"G-k\u00f3dok"},{"location":"G-Codes.html#g-kodok","text":"Ez a dokumentum a Klipper \u00e1ltal t\u00e1mogatott parancsokat \u00edrja le. Ezek olyan parancsok, amelyeket az OctoPrint konzolj\u00e1ba lehet be\u00edrni.","title":"G-k\u00f3dok"},{"location":"G-Codes.html#g-kod-parancsok","text":"A Klipper a k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d parancsokat t\u00e1mogatja: Move (G0 or G1): G1 [X<pos>] [Y<pos>] [Z<pos>] [E<pos>] [F<speed>] Tart\u00f3zkod\u00e1s: G4 P<milliszekundum> Ugr\u00e1s a forr\u00e1sra: G28 [X] [Y] [Z] Kapcsold ki a motorokat: M18 vagy M84 V\u00e1rja meg, am\u00edg az aktu\u00e1lis mozdulat befejez\u0151dik: M400 Haszn\u00e1lj abszol\u00fat/relat\u00edv t\u00e1vols\u00e1gokat az extrud\u00e1l\u00e1shoz: M82 , M83 Abszol\u00fat/relat\u00edv koordin\u00e1t\u00e1k haszn\u00e1lata: G90 , G91 \u00c1ll\u00edtsd be a poz\u00edci\u00f3t: G92 [X<pos>] [Y<pos>] [Z<pos>] [E<pos>] A sebess\u00e9gt\u00e9nyez\u0151 fel\u00fclb\u00edr\u00e1l\u00e1si sz\u00e1zal\u00e9k\u00e1nak be\u00e1ll\u00edt\u00e1sa: M220 S<percent> Extrud\u00e1l\u00e1si t\u00e9nyez\u0151 fel\u00fclb\u00edr\u00e1l\u00e1si sz\u00e1zal\u00e9k\u00e1nak be\u00e1ll\u00edt\u00e1sa: M221 S<percent> Gyors\u00edt\u00e1s be\u00e1ll\u00edt\u00e1sa: M204 S<value> VAGY M204 P<value> T<value> Megjegyz\u00e9s: Ha az S nincs megadva, de a P \u00e9s a T meg van adva, akkor a gyorsul\u00e1s a P \u00e9s a T k\u00f6z\u00fcl a minimumra van be\u00e1ll\u00edtva. Ha a P vagy a T k\u00f6z\u00fcl csak az egyik van megadva, a parancsnak nincs hat\u00e1sa. Extruder h\u0151m\u00e9rs\u00e9klet\u00e9nek lek\u00e9rdez\u00e9se: M105 Az extruder h\u0151m\u00e9rs\u00e9klet\u00e9nek be\u00e1ll\u00edt\u00e1sa: M104 [T<index>] [S<temperature>] Be\u00e1ll\u00edtja az extruder h\u0151m\u00e9rs\u00e9klet\u00e9t \u00e9s v\u00e1rakozik: M109 [T<index>] S<temperature> Megjegyz\u00e9s: Az M109 mindig megv\u00e1rja, m\u00edg a h\u0151m\u00e9rs\u00e9klet be\u00e1ll a k\u00e9rt \u00e9rt\u00e9kre Be\u00e1ll\u00edtja a t\u00e1rgyasztal h\u0151m\u00e9rs\u00e9klet\u00e9t: M140 [S<temperature>] Be\u00e1ll\u00edtja a t\u00e1rgyasztal h\u0151m\u00e9rs\u00e9klet\u00e9t \u00e9s v\u00e1rakozik: M190 S<temperature> Megjegyz\u00e9s: Az M190 mindig megv\u00e1rja, hogy a h\u0151m\u00e9rs\u00e9klet be\u00e1lljon a k\u00e9rt \u00e9rt\u00e9kre A ventil\u00e1tor sebess\u00e9g\u00e9nek be\u00e1ll\u00edt\u00e1sa: M106 S<value> Kikapcsolja a ventil\u00e1tort: M107 V\u00e9szle\u00e1ll\u00edt\u00f3: M112 Jelenlegi poz\u00edci\u00f3 lek\u00e9rdez\u00e9se: M114 A firmware verzi\u00f3j\u00e1nak lek\u00e9rdez\u00e9se: M115 A fenti parancsokkal kapcsolatos tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a RepRap G-k\u00f3d dokument\u00e1ci\u00f3 f\u00e1jlt. A Klipper c\u00e9lja, hogy t\u00e1mogassa az \u00e1ltal\u00e1nos 3. f\u00e9lt\u0151l sz\u00e1rmaz\u00f3 szoftverek (pl. OctoPrint, Printrun, Slic3r, Cura, stb.) \u00e1ltal gener\u00e1lt G-k\u00f3d parancsokat a szabv\u00e1nyos konfigur\u00e1ci\u00f3ikban. Nem c\u00e9l, hogy minden lehets\u00e9ges G-k\u00f3d parancsot t\u00e1mogasson. Ehelyett a Klipper az ember \u00e1ltal olvashat\u00f3 \"kiterjesztett G-k\u00f3d\" parancsokat r\u00e9szes\u00edti el\u0151nyben. Hasonl\u00f3k\u00e9ppen, a G-k\u00f3d termin\u00e1l kimenete is csak ember \u00e1ltal olvashat\u00f3. L\u00e1sd az API Szerver dokumentumot , ha a Klippert k\u00fcls\u0151 szoftverb\u0151l ir\u00e1ny\u00edtod. Ha egy kev\u00e9sb\u00e9 gyakori G-k\u00f3d parancsra van sz\u00fcks\u00e9g, akkor azt egy egy\u00e9ni gcode_macro config section seg\u00edts\u00e9g\u00e9vel lehet megval\u00f3s\u00edtani. P\u00e9ld\u00e1ul ezt haszn\u00e1lhatn\u00e1nk a k\u00f6vetkez\u0151kre: G12 , G29 , G30 , G31 , M42 , M80 , M81 , T1 stb.","title":"G-k\u00f3d parancsok"},{"location":"G-Codes.html#tovabbi-parancsok","text":"A Klipper \"kiterjesztett\" G-k\u00f3d parancsokat haszn\u00e1l az \u00e1ltal\u00e1nos konfigur\u00e1ci\u00f3hoz \u00e9s \u00e1llapothoz. Ezek a kiterjesztett parancsok mind hasonl\u00f3 form\u00e1tumot k\u00f6vetnek, egy parancsn\u00e9vvel kezd\u0151dnek, \u00e9s egy vagy t\u00f6bb param\u00e9ter k\u00f6vetheti \u0151ket. P\u00e9ld\u00e1ul: SET_SERVO SERVO=myservo ANGLE=5.3 . Ebben a parancssorban a parancsok \u00e9s param\u00e9terek nagybet\u0171vel szerepelnek, azonban a nagy- \u00e9s kisbet\u0171ket nem kell figyelembe venni. (Teh\u00e1t a \"SET_SERVO\" \u00e9s a \"set_servo\" mindkett\u0151 ugyanazt jelenti.) Ez a szakasz a Klipper modul neve szerint van rendezve, amely \u00e1ltal\u00e1ban a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlban megadott szakaszneveket k\u00f6veti. Vedd figyelembe, hogy egyes modulok automatikusan bet\u00f6lt\u0151dnek.","title":"Tov\u00e1bbi parancsok"},{"location":"G-Codes.html#adxl345","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha az adxl345 konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[adxl345]"},{"location":"G-Codes.html#accelerometer_measure","text":"ACCELEROMETER_MEASURE [CHIP=<config_name>] [NAME=<value>] : A gyorsul\u00e1sm\u00e9r\u0151 m\u00e9r\u00e9sek elind\u00edt\u00e1sa a k\u00e9rt m\u00e1sodpercenk\u00e9nti mintav\u00e9telek sz\u00e1m\u00e1val. Ha a CHIP nincs megadva, az alap\u00e9rtelmezett \u00e9rt\u00e9k \"adxl345\". A parancs start-stop \u00fczemm\u00f3dban m\u0171k\u00f6dik: az els\u0151 v\u00e9grehajt\u00e1skor elind\u00edtja a m\u00e9r\u00e9seket, a k\u00f6vetkez\u0151 v\u00e9grehajt\u00e1skor le\u00e1ll\u00edtja azokat. A m\u00e9r\u00e9sek eredm\u00e9nyei a /tmp/adxl345-<chip>-<name> .csv nev\u0171 f\u00e1jlba ker\u00fclnek ki\u00edr\u00e1sra , ahol <chip> a gyorsul\u00e1sm\u00e9r\u0151 chip neve ( my_chip_name from [adxl345 my_chip_name] ) \u00e9s <name> az opcion\u00e1lis NAME param\u00e9ter. Ha a NAME nincs megadva, akkor az alap\u00e9rtelmezett \u00e9rt\u00e9k az aktu\u00e1lis id\u0151 \"\u00c9\u00c9\u00c9\u00c9\u00c9HHNN_\u00d3\u00d3PPMM\" form\u00e1tumban. Ha a gyorsul\u00e1sm\u00e9r\u0151nek nincs neve a konfigur\u00e1ci\u00f3s szakaszban (egyszer\u0171en [adxl345] ), akkor a <chip> n\u00e9vr\u00e9sz nem gener\u00e1l\u00f3dik.","title":"ACCELEROMETER_MEASURE"},{"location":"G-Codes.html#accelerometer_query","text":"ACCELEROMETER_QUERY [CHIP=<config_name>] [RATE=<value>] : lek\u00e9rdezi a gyorsul\u00e1sm\u00e9r\u0151 aktu\u00e1lis \u00e9rt\u00e9k\u00e9t. Ha a CHIP nincs megadva, az alap\u00e9rtelmezett\"adxl345\". Ha a RATE nincs megadva, az alap\u00e9rtelmezett \u00e9rt\u00e9ket haszn\u00e1lja. Ez a parancs hasznos az ADXL345 gyorsul\u00e1sm\u00e9r\u0151vel val\u00f3 kapcsolat tesztel\u00e9s\u00e9re. A visszaadott \u00e9rt\u00e9kek egyik\u00e9nek a szabades\u00e9ses gyorsul\u00e1snak kell lennie (+/- a chip alapzaja).","title":"ACCELEROMETER_QUERY"},{"location":"G-Codes.html#accelerometer_debug_read","text":"ACCELEROMETER_DEBUG_READ [CHIP=<config_name>] REG=<register> : lek\u00e9rdezi az ADXL345 \"register\" (pl. 44 vagy 0x2C) regiszter\u00e9t. Hasznos lehet hibakeres\u00e9si c\u00e9lokra.","title":"ACCELEROMETER_DEBUG_READ"},{"location":"G-Codes.html#accelerometer_debug_write","text":"ACCELEROMETER_DEBUG_WRITE [CHIP=<config_name>] REG=<register> VAL=<value> : Nyers \"\u00e9rt\u00e9k\" \u00edr\u00e1sa a \"register\"-be. Mind az \"\u00e9rt\u00e9k\", mind a \"register\" lehet decim\u00e1lis vagy hexadecim\u00e1lis eg\u00e9sz sz\u00e1m. Haszn\u00e1ld \u00f3vatosan, \u00e9s hivatkozzon az ADXL345 adatlapj\u00e1ra.","title":"ACCELEROMETER_DEBUG_WRITE"},{"location":"G-Codes.html#angle","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha az sz\u00f6g konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[angle]"},{"location":"G-Codes.html#angle_calibrate","text":"ANGLE_CALIBRATE CHIP=<chip_name> : Sz\u00f6gkalibr\u00e1l\u00e1s v\u00e9grehajt\u00e1sa az adott \u00e9rz\u00e9kel\u0151n (kell lennie egy [angle chip_name] konfigur\u00e1ci\u00f3s szakasznak, amely megadta a stepper param\u00e9tert). FONTOS! Ez az eszk\u00f6z a norm\u00e1l kinematikai hat\u00e1r\u00e9rt\u00e9kek ellen\u0151rz\u00e9se n\u00e9lk\u00fcl adja ki a l\u00e9ptet\u0151motor mozg\u00e1s\u00e1t. Ide\u00e1lis esetben a motort a kalibr\u00e1l\u00e1s elv\u00e9gz\u00e9se el\u0151tt le kell v\u00e1lasztani az adott kocsir\u00f3l. Ha a l\u00e9ptet\u0151motor nem kapcsolhat\u00f3 le a nyomtat\u00f3r\u00f3l, gy\u0151z\u0151dj meg r\u00f3la, hogy a kocsi a kalibr\u00e1l\u00e1s megkezd\u00e9se el\u0151tt a s\u00edn k\u00f6zep\u00e9n\u00e9l van. (A l\u00e9ptet\u0151motor k\u00e9t teljes fordulatot el\u0151re vagy h\u00e1tra mozoghat a teszt sor\u00e1n.) A teszt elv\u00e9gz\u00e9se ut\u00e1n haszn\u00e1ld a SAVE_CONFIG parancsot a kalibr\u00e1ci\u00f3s adatok printer.cfg f\u00e1jlba t\u00f6rt\u00e9n\u0151 ment\u00e9s\u00e9hez. Az eszk\u00f6z haszn\u00e1lat\u00e1hoz telep\u00edteni kell a Python \"numpy\" csomagot (tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a rezonancia m\u00e9r\u00e9se dokumentumot .","title":"ANGLE_CALIBRATE"},{"location":"G-Codes.html#angle_debug_read","text":"ANGLE_DEBUG_READ CHIP=<config_name> REG=<register> : A \"regiszter\" (pl. 44 vagy 0x2C) \u00e9rz\u00e9kel\u0151regiszter lek\u00e9rdez\u00e9se. Hasznos lehet hibakeres\u00e9si c\u00e9lokra. Ez csak a TLE5012B chipek eset\u00e9ben \u00e9rhet\u0151 el.","title":"ANGLE_DEBUG_READ"},{"location":"G-Codes.html#angle_debug_write","text":"ANGLE_DEBUG_WRITE CHIP=<config_name> REG=<register> VAL=<value> : Nyers \"\u00e9rt\u00e9k\" \u00edr\u00e1sa a \"register\" regiszter\u00e9be. Mind az \"\u00e9rt\u00e9k\", mind a \"regiszter\" lehet decim\u00e1lis vagy hexadecim\u00e1lis eg\u00e9sz sz\u00e1m. Haszn\u00e1ld \u00f3vatosan, \u00e9s hivatkozzon az \u00e9rz\u00e9kel\u0151 adatlapj\u00e1ra. Ez csak a TLE5012B chipek eset\u00e9ben \u00e9rhet\u0151 el.","title":"ANGLE_DEBUG_WRITE"},{"location":"G-Codes.html#bed_mesh","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a bed_mesh konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g az t\u00e1rgyasztal h\u00e1l\u00f3 \u00fatmutat\u00f3t ).","title":"[bed_mesh]"},{"location":"G-Codes.html#bed_mesh_calibrate","text":"BED_MESH_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>] [<mesh_parameter>=<value>] : Ez a parancs a t\u00e1rgyasztalt a konfigur\u00e1ci\u00f3ban megadott param\u00e9terek \u00e1ltal gener\u00e1lt pontok seg\u00edts\u00e9g\u00e9vel szintezi. A szintez\u00e9s ut\u00e1n egy h\u00e1l\u00f3 gener\u00e1l\u00f3dik, \u00e9s a Z elmozdul\u00e1s a h\u00e1l\u00f3nak megfelel\u0151en ker\u00fcl be\u00e1ll\u00edt\u00e1sra. Az opcion\u00e1lis szintez\u0151 param\u00e9terekkel kapcsolatos r\u00e9szletek\u00e9rt l\u00e1sd a PROBE parancsot. Ha a METHOD=manual parancsot adta meg, akkor a k\u00e9zi szintez\u0151 eszk\u00f6z aktiv\u00e1l\u00f3dik. Az eszk\u00f6z aktiv\u00e1l\u00e1sa k\u00f6zben el\u00e9rhet\u0151 tov\u00e1bbi parancsok r\u00e9szleteit l\u00e1sd a fenti MANUAL_PROBE parancsban.","title":"BED_MESH_CALIBRATE"},{"location":"G-Codes.html#bed_mesh_output","text":"BED_MESH_OUTPUT PGP=[<0:1>] : Ez a parancs az aktu\u00e1lis m\u00e9rt Z \u00e9rt\u00e9keket \u00e9s az aktu\u00e1lis h\u00e1l\u00f3\u00e9rt\u00e9keket adja ki a termin\u00e1lra. A PGP=1 megad\u00e1sa eset\u00e9n a bed_mesh \u00e1ltal gener\u00e1lt X, Y koordin\u00e1t\u00e1k \u00e9s a hozz\u00e1juk tartoz\u00f3 indexek ker\u00fclnek a termin\u00e1lra.","title":"BED_MESH_OUTPUT"},{"location":"G-Codes.html#bed_mesh_map","text":"BED_MESH_MAP : Ez a parancs a BED_MESH_OUTPUT-hoz hasonl\u00f3an a h\u00e1l\u00f3 aktu\u00e1lis \u00e1llapot\u00e1t \u00edrja ki a termin\u00e1lra. Az \u00e9rt\u00e9kek ember \u00e1ltal olvashat\u00f3 form\u00e1tumban t\u00f6rt\u00e9n\u0151 ki\u00edr\u00e1sa helyett az \u00e1llapotot JSON form\u00e1tumban szerializ\u00e1lja. Ez lehet\u0151v\u00e9 teszi az OctoPrint pluginek sz\u00e1m\u00e1ra, hogy k\u00f6nnyen r\u00f6gz\u00edts\u00e9k az adatokat, \u00e9s a t\u00e1rgyasztal felsz\u00edn\u00e9t k\u00f6zel\u00edt\u0151 magass\u00e1gi t\u00e9rk\u00e9peket hozzanak l\u00e9tre.","title":"BED_MESH_MAP"},{"location":"G-Codes.html#bed_mesh_clear","text":"BED_MESH_CLEAR : Ez a parancs t\u00f6rli a h\u00e1l\u00f3t \u00e9s elt\u00e1vol\u00edt minden Z-be\u00e1ll\u00edt\u00e1st. Aj\u00e1nlott ezt a parancsot befejez\u0151 G-k\u00f3dba tenni.","title":"BED_MESH_CLEAR"},{"location":"G-Codes.html#bed_mesh_profile","text":"BED_MESH_PROFILE LOAD=<name> SAVE=<name> REMOVE=<name> : Ez a parancs a h\u00e1l\u00f3 \u00e1llapot\u00e1nak profilkezel\u00e9s\u00e9t biztos\u00edtja. A LOAD a h\u00e1l\u00f3 \u00e1llapot\u00e1t a megadott n\u00e9vnek megfelel\u0151 profilb\u00f3l \u00e1ll\u00edtja vissza. A SAVE parancs az aktu\u00e1lis h\u00e1l\u00f3\u00e1llapotot a megadott n\u00e9vnek megfelel\u0151 profilba menti. A REMOVE a megadott n\u00e9vnek megfelel\u0151 profilt t\u00f6rli a tart\u00f3s mem\u00f3ri\u00e1b\u00f3l. Megjegyzend\u0151, hogy a SAVE vagy REMOVE m\u0171veletek lefuttat\u00e1sa ut\u00e1n a SAVE_CONFIG parancsot kell futtatni, hogy a tart\u00f3s mem\u00f3ri\u00e1ban v\u00e9grehajtott v\u00e1ltoztat\u00e1sok v\u00e9glegesek legyenek.","title":"BED_MESH_PROFILE"},{"location":"G-Codes.html#bed_mesh_offset","text":"BED_MESH_OFFSET [X=<value>] [Y=<value>] : X \u00e9s/vagy Y eltol\u00e1st alkalmazza a h\u00e1l\u00f3keres\u00e9shez. Ez a f\u00fcggetlen extruderekkel rendelkez\u0151 nyomtat\u00f3kn\u00e1l hasznos, mivel az eltol\u00e1s sz\u00fcks\u00e9ges a szersz\u00e1mcsere ut\u00e1ni helyes Z-be\u00e1ll\u00edt\u00e1shoz.","title":"BED_MESH_OFFSET"},{"location":"G-Codes.html#bed_screws","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha az t\u00e1rgyasztal szintez\u0151 csavarok konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a k\u00e9zi szintez\u00e9s \u00fatmutat\u00f3t ).","title":"[bed_screws]"},{"location":"G-Codes.html#bed_screws_adjust","text":"BED_SCREWS_ADJUST : Ez a parancs a t\u00e1rgyasztal \u00e1ll\u00edt\u00f3csavarok be\u00e1ll\u00edt\u00e1si eszk\u00f6z\u00e9t h\u00edvja el\u0151. A f\u00fav\u00f3k\u00e1t k\u00fcl\u00f6nb\u00f6z\u0151 helyekre k\u00fcldi (a konfigur\u00e1ci\u00f3s f\u00e1jlban meghat\u00e1rozottak szerint), \u00e9s lehet\u0151v\u00e9 teszi a t\u00e1rgyasztal \u00e1ll\u00edt\u00f3csavarok be\u00e1ll\u00edt\u00e1s\u00e1t, hogy a t\u00e1rgyasztal \u00e1lland\u00f3 t\u00e1vols\u00e1gra legyen a f\u00fav\u00f3k\u00e1t\u00f3l.","title":"BED_SCREWS_ADJUST"},{"location":"G-Codes.html#bed_tilt","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a bed_tilt konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[bed_tilt]"},{"location":"G-Codes.html#bed_tilt_calibrate","text":"BED_TILT_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>] : Ez a parancs a konfigur\u00e1ci\u00f3ban megadott pontokat vizsg\u00e1lja, majd friss\u00edtett X \u00e9s Y d\u0151l\u00e9sbe\u00e1ll\u00edt\u00e1sokat javasol. Az opcion\u00e1lis m\u00e9r\u00e9si param\u00e9terekkel kapcsolatos r\u00e9szletek\u00e9rt l\u00e1sd a PROBE parancsot. Ha a METHOD=manual van megadva, akkor a k\u00e9zi szintez\u0151 aktiv\u00e1l\u00f3dik. Az ezen eszk\u00f6z aktiv\u00e1l\u00e1sakor el\u00e9rhet\u0151 tov\u00e1bbi parancsok r\u00e9szleteit l\u00e1sd a fenti MANUAL_PROBE parancsban.","title":"BED_TILT_CALIBRATE"},{"location":"G-Codes.html#bltouch","text":"A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a bltouch konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a BL-Touch \u00fatmutat\u00f3t ).","title":"[bltouch]"},{"location":"G-Codes.html#bltouch_debug","text":"BLTOUCH_DEBUG COMMAND=<command> : Ez egy parancsot k\u00fcld a BLTouch-nak. Hasznos lehet a hibakeres\u00e9shez. A rendelkez\u00e9sre \u00e1ll\u00f3 parancsok a k\u00f6vetkez\u0151k: pin_down , touch_mode , pin_up , self_test , reset . A BL-Touch V3.0 vagy V3.1 t\u00e1mogathatja a set_5V_output_mode , set_OD_output_mode , output_mode_store parancsokat is.","title":"BLTOUCH_DEBUG"},{"location":"G-Codes.html#bltouch_store","text":"BLTOUCH_STORE MODE=<output_mode> : Ez egy kimeneti m\u00f3dot t\u00e1rol a BLTouch V3.1 EEPROM-j\u00e1ban: 5V , OD","title":"BLTOUCH_STORE"},{"location":"G-Codes.html#configfile","text":"A configfile modul automatikusan bet\u00f6lt\u0151dik.","title":"[configfile]"},{"location":"G-Codes.html#save_config","text":"SAVE_CONFIG : Ez a parancs fel\u00fcl\u00edrja a nyomtat\u00f3 f\u0151 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1t \u00e9s \u00fajraind\u00edtja a gazdaszoftvert. Ez a parancs m\u00e1s kalibr\u00e1l\u00e1si parancsokkal egy\u00fctt haszn\u00e1lhat\u00f3 a kalibr\u00e1ci\u00f3s tesztek eredm\u00e9nyeinek t\u00e1rol\u00e1s\u00e1ra.","title":"SAVE_CONFIG"},{"location":"G-Codes.html#delayed_gcode","text":"A k\u00f6vetkez\u0151 parancs akkor enged\u00e9lyezett, ha a delayed_gcode konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a parancssablon \u00fatmutat\u00f3t ).","title":"[delayed_gcode]"},{"location":"G-Codes.html#update_delayed_gcode","text":"UPDATE_DELAYED_GCODE [ID=<name>] [DURATION=<seconds>] : Friss\u00edti az azonos\u00edtott [delayed_gcode] k\u00e9sleltet\u00e9si id\u0151tartam\u00e1t \u00e9s elind\u00edtja a G-k\u00f3d v\u00e9grehajt\u00e1s\u00e1nak id\u0151z\u00edt\u0151j\u00e9t. A 0 \u00e9rt\u00e9k t\u00f6rli a f\u00fcgg\u0151ben l\u00e9v\u0151 k\u00e9sleltetett G-k\u00f3d v\u00e9grehajt\u00e1s\u00e1t.","title":"UPDATE_DELAYED_GCODE"},{"location":"G-Codes.html#delta_calibrate","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a delta_kalibrate konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a delta kalibr\u00e1ci\u00f3s \u00fatmutat\u00f3t ).","title":"[delta_calibrate]"},{"location":"G-Codes.html#delta_calibrate_1","text":"DELTA_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>] : Ez a parancs a t\u00e1rgyasztal h\u00e9t pontj\u00e1t vizsg\u00e1lja meg, \u00e9s friss\u00edtett v\u00e9g\u00e1ll\u00e1sok, toronysz\u00f6gek \u00e9s sugarak aj\u00e1nl\u00e1s\u00e1ra szolg\u00e1l. Az opcion\u00e1lis m\u00e9r\u00e9si param\u00e9terekkel kapcsolatos r\u00e9szletek\u00e9rt l\u00e1sd a PROBE parancsot. Ha a METHOD=manual \u00e9rt\u00e9k van megadva, akkor a k\u00e9zi szintez\u00e9s aktiv\u00e1l\u00f3dik. L\u00e1sd a fenti MANUAL_PROBE parancsot a tov\u00e1bbi parancsok r\u00e9szletei\u00e9rt, amelyek akkor \u00e1llnak rendelkez\u00e9sre, amikor ez az eszk\u00f6z akt\u00edv.","title":"DELTA_CALIBRATE"},{"location":"G-Codes.html#delta_analyze","text":"DELTA_ANALYZE : Ez a parancs a fokozott delta-kalibr\u00e1l\u00e1s sor\u00e1n haszn\u00e1latos. A r\u00e9szletek\u00e9rt l\u00e1sd a Delta kalibr\u00e1l\u00e1s c\u00edm\u0171 dokumentumot.","title":"DELTA_ANALYZE"},{"location":"G-Codes.html#display","text":"A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a konfigur\u00e1ci\u00f3s szakasz megjelen\u00edt\u00e9se enged\u00e9lyezve van.","title":"[display]"},{"location":"G-Codes.html#set_display_group","text":"SET_DISPLAY_GROUP [DISPLAY=<display>] GROUP=<group> : Az LCD-kijelz\u0151 akt\u00edv kijelz\u0151csoportj\u00e1nak be\u00e1ll\u00edt\u00e1sa. Ez lehet\u0151v\u00e9 teszi t\u00f6bb kijelz\u0151 adatcsoport defini\u00e1l\u00e1s\u00e1t a konfigur\u00e1ci\u00f3ban, pl. [display_data <group> <elementname>] \u00e9s a k\u00f6zt\u00fck val\u00f3 v\u00e1lt\u00e1st ezzel a kiterjesztett G-k\u00f3d paranccsal. Ha a DISPLAY nincs megadva, akkor alap\u00e9rtelmez\u00e9s szerint \"display\" (az els\u0151dleges kijelz\u0151).","title":"SET_DISPLAY_GROUP"},{"location":"G-Codes.html#display_status","text":"A display_status modul automatikusan bet\u00f6lt\u0151dik, ha a display konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. A k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d parancsokat biztos\u00edtja: \u00dczenet megjelen\u00edt\u00e9se: M117 <message> Nyomtat\u00e1si folyamat sz\u00e1zal\u00e9kos ar\u00e1ny be\u00e1ll\u00edt\u00e1sa: M73 P<percent> A k\u00f6vetkez\u0151 kiterjesztett G-k\u00f3d parancs is rendelkez\u00e9sre \u00e1ll: SET_DISPLAY_TEXT MSG=<message> : Az M117 paranccsal egyen\u00e9rt\u00e9k\u0171 m\u0171velet, amely az MSG c\u00edmen megadott \u00fczenetet \u00e1ll\u00edtja be aktu\u00e1lis kijelz\u0151\u00fczenetk\u00e9nt. Ha az MSG elmarad, a kijelz\u0151 t\u00f6rl\u0151dik.","title":"[display_status]"},{"location":"G-Codes.html#dual_carriage","text":"A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a dual_carriage konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[dual_carriage]"},{"location":"G-Codes.html#set_dual_carriage","text":"SET_DUAL_CARRIAGE CARRIAGE=[0|1] : Ez a parancs be\u00e1ll\u00edtja az akt\u00edv kocsit. \u00c1ltal\u00e1ban az activate_gcode \u00e9s deactivate_gcode mez\u0151kb\u0151l h\u00edvhat\u00f3 el\u0151 t\u00f6bb extruder konfigur\u00e1ci\u00f3ban.","title":"SET_DUAL_CARRIAGE"},{"location":"G-Codes.html#endstop_phase","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha az endstop_phase konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a v\u00e9g\u00e1ll\u00e1s f\u00e1zis \u00fatmutat\u00f3t ).","title":"[endstop_phase]"},{"location":"G-Codes.html#endstop_phase_calibrate","text":"ENDSTOP_PHASE_CALIBRATE [STEPPER=<config_name>] : Ha nincs megadva STEPPER param\u00e9ter, akkor ez a parancs a m\u00faltbeli kezd\u0151pont felv\u00e9teli m\u0171veletek sor\u00e1n a v\u00e9g\u00e1ll\u00e1si l\u00e9pcs\u0151f\u00e1zisok statisztik\u00e1it jelenti. STEPPER param\u00e9ter megad\u00e1sa eset\u00e9n gondoskodik arr\u00f3l, hogy a megadott v\u00e9g\u00e1ll\u00e1sf\u00e1zis-be\u00e1ll\u00edt\u00e1s a konfigur\u00e1ci\u00f3s f\u00e1jlba \u00edr\u00f3djon (a SAVE_CONFIG parancs seg\u00edts\u00e9g\u00e9vel).","title":"ENDSTOP_PHASE_CALIBRATE"},{"location":"G-Codes.html#exclude_object","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha az exclude_object konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a t\u00e1rgy\u00fatmutat\u00f3 kiz\u00e1r\u00e1sa ):","title":"[exclude_object]"},{"location":"G-Codes.html#exclude_object_1","text":"EXCLUDE_OBJECT [NAME=object_name] [CURRENT=1] [RESET=1] : Param\u00e9terek n\u00e9lk\u00fcl az \u00f6sszes jelenleg kiz\u00e1rt objektum list\u00e1j\u00e1t adja vissza. Ha a NAME param\u00e9tert adjuk meg, a megnevezett objektumot kiz\u00e1rjuk a nyomtat\u00e1sb\u00f3l. A CURRENT param\u00e9ter megad\u00e1sakor az aktu\u00e1lis objektumot kiz\u00e1rja a nyomtat\u00e1sb\u00f3l. A RESET param\u00e9ter megad\u00e1sakor a kiz\u00e1rt objektumok list\u00e1ja t\u00f6rl\u0151dik. Ezen k\u00edv\u00fcl a NAME bevon\u00e1sa csak a megnevezett objektumot fogja vissza\u00e1ll\u00edtani. Ez nyomtat\u00e1si hib\u00e1kat okozhat, ha a r\u00e9tegek m\u00e1r kihagy\u00e1sra ker\u00fcltek.","title":"EXCLUDE_OBJECT"},{"location":"G-Codes.html#exclude_object_define","text":"EXCLUDE_OBJECT_DEFINE [NAME=object_name [CENTER=X,Y] [POLYGON=[[x,y],...]] [RESET=1] [JSON=1] : A f\u00e1jlban l\u00e9v\u0151 objektum \u00f6sszefoglal\u00f3j\u00e1t adja meg. Ha nem adunk meg param\u00e9tereket, akkor a Klipper \u00e1ltal ismert, defini\u00e1lt objektumok list\u00e1ja jelenik meg. Sztringek list\u00e1j\u00e1t adja vissza, kiv\u00e9ve, ha a JSON param\u00e9tert adjuk meg, ekkor az objektumok adatait JSON form\u00e1tumban adja vissza. Ha a NAME param\u00e9ter szerepel, ez egy kiz\u00e1rand\u00f3 objektumot hat\u00e1roz meg. NAME : Ez a param\u00e9ter k\u00f6telez\u0151. Ez a modul m\u00e1s parancsai \u00e1ltal haszn\u00e1lt azonos\u00edt\u00f3. CENTER : Az objektum X,Y koordin\u00e1t\u00e1ja. POLYGON : X,Y koordin\u00e1t\u00e1k t\u00f6mbje, amely az objektum k\u00f6rvonal\u00e1t adja. A RESET param\u00e9ter megad\u00e1sakor az \u00f6sszes defini\u00e1lt objektum t\u00f6rl\u0151dik, \u00e9s az [exclude_object] modul vissza\u00e1ll.","title":"EXCLUDE_OBJECT_DEFINE"},{"location":"G-Codes.html#exclude_object_start","text":"EXCLUDE_OBJECT_START NAME=object_name : Ez a parancs egy NAME param\u00e9tert vesz fel, \u00e9s az aktu\u00e1lis r\u00e9tegen l\u00e9v\u0151 objektum G-k\u00f3dj\u00e1nak kezdet\u00e9t jel\u00f6li.","title":"EXCLUDE_OBJECT_START"},{"location":"G-Codes.html#exclude_object_end","text":"EXCLUDE_OBJECT_END [NAME=object_name] : Az objektum G-k\u00f3dj\u00e1nak v\u00e9g\u00e9t jel\u00f6li a r\u00e9teghez. Az EXCLUDE_OBJECT_START -al p\u00e1rosul. A NAME param\u00e9ter opcion\u00e1lis, \u00e9s csak akkor figyelmeztet, ha a megadott n\u00e9v nem egyezik az aktu\u00e1lis objektummal.","title":"EXCLUDE_OBJECT_END"},{"location":"G-Codes.html#extruder","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha az extruder konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van:","title":"[extruder]"},{"location":"G-Codes.html#activate_extruder","text":"ACTIVATE_EXTRUDER EXTRUDER=<config_name> : T\u00f6bb extruder konfigur\u00e1ci\u00f3s szakaszokkal rendelkez\u0151 nyomtat\u00f3ban ez a parancs megv\u00e1ltoztatja az akt\u00edv nyomtat\u00f3fejet.","title":"ACTIVATE_EXTRUDER"},{"location":"G-Codes.html#set_pressure_advance","text":"SET_PRESSURE_ADVANCE [EXTRUDER=<config_name>] [ADVANCE=<pressure_advance>] [SMOOTH_TIME=<pressure_advance_smooth_time>] : Egy extruder l\u00e9ptet\u0151 nyom\u00e1stov\u00e1bb\u00edt\u00e1si param\u00e9tereinek be\u00e1ll\u00edt\u00e1sa (ahogyan az egy extruder vagy extruder_stepper konfigur\u00e1ci\u00f3s szakaszban szerepel). Ha az EXTRUDER nincs megadva, akkor az alap\u00e9rtelmezett \u00e9rt\u00e9k az akt\u00edv hotendben defini\u00e1lt stepper.","title":"SET_PRESSURE_ADVANCE"},{"location":"G-Codes.html#set_extruder_rotation_distance","text":"SET_EXTRUDER_ROTATION_DISTANCE EXTRUDER=<config_name> [DISTANCE=<distance>] : A megadott extruder l\u00e9ptet\u0151k \"forg\u00e1si t\u00e1vols\u00e1g\" \u00faj \u00e9rt\u00e9k\u00e9nek be\u00e1ll\u00edt\u00e1sa (ahogyan az extruder vagy extruder_stepper konfigur\u00e1ci\u00f3s szakaszban meghat\u00e1rozott). Ha a forg\u00e1si t\u00e1vols\u00e1g negat\u00edv sz\u00e1m, akkor a l\u00e9ptet\u0151 mozg\u00e1sa inverz lesz (a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott l\u00e9ptet\u0151 ir\u00e1nyhoz k\u00e9pest). A megv\u00e1ltoztatott be\u00e1ll\u00edt\u00e1sok nem maradnak meg a Klipper vissza\u00e1ll\u00edt\u00e1sakor. \u00d3vatosan haszn\u00e1ld, mivel a kis v\u00e1ltoztat\u00e1sok t\u00falzott nyom\u00e1st eredm\u00e9nyezhetnek az extruder \u00e9s a hotend k\u00f6z\u00f6tt. Haszn\u00e1lat el\u0151tt v\u00e9gezd el a megfelel\u0151 kalibr\u00e1ci\u00f3t a filamenttel. Ha a 'DISTANCE' \u00e9rt\u00e9k nincs megadva, akkor ez a parancs az aktu\u00e1lis forg\u00e1si t\u00e1vols\u00e1got adja meg.","title":"SET_EXTRUDER_ROTATION_DISTANCE"},{"location":"G-Codes.html#sync_extruder_motion","text":"SYNC_EXTRUDER_MOTION EXTRUDER=<name> MOTION_QUEUE=<name> : Ez a parancs az EXTRUDER \u00e1ltal meghat\u00e1rozott l\u00e9ptet\u0151t (ahogyan az extruder vagy extruder_stepper konfigur\u00e1ci\u00f3s szakaszban) meghat\u00e1rozott extruder mozg\u00e1s\u00e1hoz szinkroniz\u00e1l\u00f3dik a MOTION_QUEUE \u00e1ltal meghat\u00e1rozott extruder mozg\u00e1s\u00e1hoz (ahogyan az extruder konfigur\u00e1ci\u00f3s szakaszban defini\u00e1lt\u00e1k). Ha a MOTION_QUEUE \u00fcres karakterl\u00e1nc, akkor a l\u00e9ptet\u0151 deszinkroniz\u00e1l\u00f3dik az extruder minden mozg\u00e1s\u00e1ra.","title":"SYNC_EXTRUDER_MOTION"},{"location":"G-Codes.html#set_extruder_step_distance","text":"Ez a parancs elavult, \u00e9s a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fcl.","title":"SET_EXTRUDER_STEP_DISTANCE"},{"location":"G-Codes.html#sync_stepper_to_extruder","text":"Ez a parancs elavult, \u00e9s a k\u00f6zelj\u00f6v\u0151ben elt\u00e1vol\u00edt\u00e1sra ker\u00fcl.","title":"SYNC_STEPPER_TO_EXTRUDER"},{"location":"G-Codes.html#fan_generic","text":"A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a fan_generic konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[fan_generic]"},{"location":"G-Codes.html#set_fan_speed","text":"SET_FAN_SPEED FAN=config_name SPEED=<speed> Ez a parancs be\u00e1ll\u00edtja a ventil\u00e1tor sebess\u00e9g\u00e9t. \"speed\" 0.0 \u00e9s 1.0 k\u00f6z\u00f6tt kell lennie.","title":"SET_FAN_SPEED"},{"location":"G-Codes.html#filament_switch_sensor","text":"A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a filament_switch_sensor vagy filament_motion_sensor konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[filament_switch_sensor]"},{"location":"G-Codes.html#query_filament_sensor","text":"QUERY_FILAMENT_SENSOR SENSOR=<sensor_name> : A nyomtat\u00f3sz\u00e1l-\u00e9rz\u00e9kel\u0151 aktu\u00e1lis \u00e1llapot\u00e1nak lek\u00e9rdez\u00e9se. A termin\u00e1lon megjelen\u0151 adatok a konfigur\u00e1ci\u00f3ban meghat\u00e1rozott \u00e9rz\u00e9kel\u0151t\u00edpust\u00f3l f\u00fcggnek.","title":"QUERY_FILAMENT_SENSOR"},{"location":"G-Codes.html#set_filament_sensor","text":"SET_FILAMENT_SENSOR SENSOR=<sensor_name> ENABLE=[0|1] : A nyomtat\u00f3sz\u00e1l \u00e9rz\u00e9kel\u0151 be/ki kapcsol\u00e1sa. Ha az ENABLE \u00e9rt\u00e9ke 0, akkor a nyomtat\u00f3sz\u00e1l-\u00e9rz\u00e9kel\u0151 ki lesz kapcsolva, ha 1-re van \u00e1ll\u00edtva, akkor bekapcsol.","title":"SET_FILAMENT_SENSOR"},{"location":"G-Codes.html#firmware_retraction","text":"A k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d\u00fa parancsok \u00e1llnak rendelkez\u00e9sre, ha a firmware_retraction konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. Ezek a parancsok lehet\u0151v\u00e9 teszik a szeletel\u0151kben el\u00e9rhet\u0151 firmware retraction funkci\u00f3 kihaszn\u00e1l\u00e1s\u00e1t, hogy cs\u00f6kkentse a h\u00farosod\u00e1st a nem extrud\u00e1l\u00e1sos mozg\u00e1sok sor\u00e1n a nyomtat\u00e1s egyik r\u00e9sz\u00e9b\u0151l a m\u00e1sikba. A nyom\u00e1s el\u0151tol\u00e1s megfelel\u0151 be\u00e1ll\u00edt\u00e1sa cs\u00f6kkenti a sz\u00fcks\u00e9ges visszah\u00faz\u00e1s hossz\u00e1t. G10 : Visszah\u00fazza a nyomtat\u00f3sz\u00e1lat a konfigur\u00e1lt param\u00e9terek szerint. G11 : Bet\u00f6lti a nyomtat\u00f3sz\u00e1lat a konfigur\u00e1lt param\u00e9terek szerint. A k\u00f6vetkez\u0151 tov\u00e1bbi parancsok is rendelkez\u00e9sre \u00e1llnak.","title":"[firmware_retraction]"},{"location":"G-Codes.html#set_retraction","text":"SET_RETRACTION [RETRACT_LENGTH=<mm>] [RETRACT_SPEED=<mm/s>] [UNRETRACT_EXTRA_LENGTH=<mm>] [UNRETRACT_SPEED=<mm/s>] : A firmware visszah\u00faz\u00e1s \u00e1ltal haszn\u00e1lt param\u00e9terek be\u00e1ll\u00edt\u00e1sa. A RETRACT_LENGTH hat\u00e1rozza meg a visszah\u00fazand\u00f3 \u00e9s a visszah\u00faz\u00e1st megsz\u00fcntet\u0151 sz\u00e1l hossz\u00e1t. A visszah\u00faz\u00e1s sebess\u00e9ge a RETRACT_SPEED seg\u00edts\u00e9g\u00e9vel \u00e1ll\u00edthat\u00f3 be, \u00e9s \u00e1ltal\u00e1ban viszonylag magasra van \u00e1ll\u00edtva. A visszah\u00faz\u00e1s sebess\u00e9g\u00e9t az UNRETRACT_SPEED seg\u00edts\u00e9g\u00e9vel \u00e1ll\u00edtjuk be, \u00e9s nem k\u00fcl\u00f6n\u00f6sebben kritikus, b\u00e1r gyakran alacsonyabb, mint a RETRACT_SPEED. Bizonyos esetekben hasznos, ha a visszah\u00faz\u00e1skor egy kis plusz hossz\u00fas\u00e1got adunk hozz\u00e1, \u00e9s ezt az UNRETRACT_EXTRA_LENGTH seg\u00edts\u00e9g\u00e9vel \u00e1ll\u00edtjuk be. A SET_RETRACTION \u00e1ltal\u00e1ban a szeletel\u0151 sz\u00e1lank\u00e9nti konfigur\u00e1ci\u00f3 r\u00e9szek\u00e9nt ker\u00fcl be\u00e1ll\u00edt\u00e1sra, mivel a k\u00fcl\u00f6nb\u00f6z\u0151 sz\u00e1lak k\u00fcl\u00f6nb\u00f6z\u0151 param\u00e9terbe\u00e1ll\u00edt\u00e1sokat ig\u00e9nyelnek.","title":"SET_RETRACTION"},{"location":"G-Codes.html#get_retraction","text":"GET_RETRACTION : A firmware visszah\u00faz\u00e1s \u00e1ltal haszn\u00e1lt aktu\u00e1lis param\u00e9terek lek\u00e9rdez\u00e9se \u00e9s megjelen\u00edt\u00e9se a termin\u00e1lon.","title":"GET_RETRACTION"},{"location":"G-Codes.html#force_move","text":"A force_move modul automatikusan bet\u00f6lt\u0151dik, azonban n\u00e9h\u00e1ny parancshoz sz\u00fcks\u00e9ges az enable_force_move be\u00e1ll\u00edt\u00e1sa a nyomtat\u00f3 konfig -ban.","title":"[force_move]"},{"location":"G-Codes.html#stepper_buzz","text":"STEPPER_BUZZ STEPPER=<config_name> : Az adott l\u00e9ptet\u0151motor mozgat\u00e1sa egy mm-t el\u0151re, majd egy mm-t h\u00e1tra, 10 alkalommal megism\u00e9telve. Ez egy diagnosztikai eszk\u00f6z, amely seg\u00edt a l\u00e9ptet\u0151 kapcsolat\u00e1nak ellen\u0151rz\u00e9s\u00e9ben.","title":"STEPPER_BUZZ"},{"location":"G-Codes.html#force_move_1","text":"FORCE_MOVE STEPPER=<config_name> DISTANCE=<value> VELOCITY=<value> [ACCEL=<value>] : Ez a parancs az adott l\u00e9ptet\u0151motort az adott t\u00e1vols\u00e1gon (mm-ben) a megadott \u00e1lland\u00f3 sebess\u00e9ggel (mm/sec-ben) k\u00e9nyszerrel mozgatja. Ha az ACCEL meg van adva, \u00e9s nagyobb, mint nulla, akkor a megadott gyorsul\u00e1s (mm/sec^2-en) ker\u00fcl alkalmaz\u00e1sra; egy\u00e9bk\u00e9nt nem t\u00f6rt\u00e9nik gyors\u00edt\u00e1s. Nem t\u00f6rt\u00e9nik hat\u00e1r\u00e9rt\u00e9k ellen\u0151rz\u00e9s; nem t\u00f6rt\u00e9nik kinematikai friss\u00edt\u00e9s; a tengelyen l\u00e9v\u0151 m\u00e1s p\u00e1rhuzamos l\u00e9ptet\u0151k nem ker\u00fclnek mozgat\u00e1sra. Legyen \u00f3vatos, mert a helytelen parancs k\u00e1rt okozhat! A parancs haszn\u00e1lata szinte biztosan helytelen \u00e1llapotba hozza az alacsony szint\u0171 kinematik\u00e1t; a kinematika vissza\u00e1ll\u00edt\u00e1s\u00e1hoz adj ki ut\u00e1na egy G28 parancsot. Ez a parancs alacsony szint\u0171 diagnosztik\u00e1ra \u00e9s hibakeres\u00e9sre szolg\u00e1l.","title":"FORCE_MOVE"},{"location":"G-Codes.html#set_kinematic_position","text":"SET_KINEMATIC_POSITION [X=<value>] [Y=<value>] [Z=<value>] : K\u00e9nyszer\u00edti az alacsony szint\u0171 kinematikai k\u00f3dot, hogy azt higgye, a nyomtat\u00f3fej a megadott cartesian poz\u00edci\u00f3ban van. Ez egy diagnosztikai \u00e9s hibakeres\u00e9si parancs; haszn\u00e1ld a SET_GCODE_OFFSET \u00e9s/vagy a G92 parancsot a norm\u00e1l tengelytranszform\u00e1ci\u00f3khoz. Ha egy tengely nincs megadva, akkor alap\u00e9rtelmez\u00e9s szerint az a poz\u00edci\u00f3 lesz, ahov\u00e1 a fejet utolj\u00e1ra parancsolt\u00e1k. A helytelen vagy \u00e9rv\u00e9nytelen poz\u00edci\u00f3 be\u00e1ll\u00edt\u00e1sa bels\u0151 szoftverhib\u00e1hoz vezethet. Ez a parancs \u00e9rv\u00e9nytelen\u00edtheti a k\u00e9s\u0151bbi hat\u00e1r\u00e9rt\u00e9k ellen\u0151rz\u00e9seket; a kinematika vissza\u00e1ll\u00edt\u00e1s\u00e1hoz adj ki egy G28 parancsot.","title":"SET_KINEMATIC_POSITION"},{"location":"G-Codes.html#gcode","text":"A G-k\u00f3d modul automatikusan bet\u00f6lt\u0151dik.","title":"[gcode]"},{"location":"G-Codes.html#restart","text":"RESTART : Ez arra k\u00e9szteti a gazdaszoftvert, hogy \u00fajrat\u00f6ltse a konfigur\u00e1ci\u00f3j\u00e1t \u00e9s bels\u0151 alaphelyzetbe \u00e1ll\u00edt\u00e1st v\u00e9gezzen. Ez a parancs nem t\u00f6rli a mikrokontroller hiba\u00e1llapot\u00e1t (l\u00e1sd FIRMWARE_RESTART), \u00e9s nem t\u00f6lt be \u00faj szoftvert (l\u00e1sd a GYIK oldalt).","title":"RESTART"},{"location":"G-Codes.html#firmware_restart","text":"FIRMWARE_RESTART : Ez hasonl\u00f3 a RESTART parancshoz, de a mikrokontroller hiba\u00e1llapot\u00e1t is t\u00f6rli.","title":"FIRMWARE_RESTART"},{"location":"G-Codes.html#status","text":"STATUS : Jelentse a Klipper gazdag\u00e9p szoftver \u00e1llapot\u00e1t.","title":"STATUS"},{"location":"G-Codes.html#sugo","text":"HELP : A rendelkez\u00e9sre \u00e1ll\u00f3 kiterjesztett G-k\u00f3d parancsok list\u00e1j\u00e1nak megjelen\u00edt\u00e9se.","title":"S\u00daG\u00d3"},{"location":"G-Codes.html#gcode_arcs","text":"A k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d parancsok el\u00e9rhet\u0151k, ha a gcode_arcs config section enged\u00e9lyezve van: Vez\u00e9relt \u00edvmozg\u00e1s (G2 vagy G3): G2 [X<pos>] [Y<pos>] [Z<pos>] [E<pos>] [F<speed>] I<value> J<value>","title":"[gcode_arcs]"},{"location":"G-Codes.html#gcode_macro","text":"A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a gcode_macro konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a parancssablonok \u00fatmutat\u00f3j\u00e1t ).","title":"[gcode_macro]"},{"location":"G-Codes.html#set_gcode_variable","text":"SET_GCODE_VARIABLE MACRO=<macro_name> VARIABLE=<name> VALUE=<value> : Ez a parancs lehet\u0151v\u00e9 teszi a gcode_macro v\u00e1ltoz\u00f3 \u00e9rt\u00e9k\u00e9nek megv\u00e1ltoztat\u00e1s\u00e1t \u00fczem k\u00f6zben. A megadott VALUE-t Python liter\u00e1lk\u00e9nt elemzi a program.","title":"SET_GCODE_VARIABLE"},{"location":"G-Codes.html#gcode_move","text":"A gcode_move modul automatikusan bet\u00f6lt\u0151dik.","title":"[gcode_move]"},{"location":"G-Codes.html#get_position","text":"GET_POSITION : A nyomtat\u00f3fej aktu\u00e1lis helyzet\u00e9re vonatkoz\u00f3 inform\u00e1ci\u00f3k visszaad\u00e1sa. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a GET_POSITION kimenet fejleszt\u0151i dokument\u00e1ci\u00f3j\u00e1t.","title":"GET_POSITION"},{"location":"G-Codes.html#set_gcode_offset","text":"SET_GCODE_OFFSET [X=<pos>|X_ADJUST=<adjust>] [Y=<pos>|Y_ADJUST=<adjust>] [Z=<pos>|Z_ADJUST=<adjust>] [MOVE=1 [MOVE_SPEED=<speed>]] : Poz\u00edci\u00f3s eltol\u00e1s be\u00e1ll\u00edt\u00e1sa, amelyet a k\u00e9s\u0151bbi G-k\u00f3d parancsokra kell alkalmazni. Ezt \u00e1ltal\u00e1ban a Z t\u00e1rgyasztal eltol\u00e1s virtu\u00e1lis megv\u00e1ltoztat\u00e1s\u00e1ra vagy a f\u00fav\u00f3k\u00e1k XY eltol\u00e1s\u00e1nak be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lj\u00e1k extruder v\u00e1lt\u00e1skor. P\u00e9ld\u00e1ul, ha a \"SET_GCODE_OFFSET Z=0.2\" parancsot k\u00fcldj\u00fck, akkor a j\u00f6v\u0151beli G-k\u00f3d mozg\u00e1sok Z magass\u00e1g\u00e1hoz 0,2 mm-t adunk hozz\u00e1. Ha az X_ADJUST st\u00edlusparam\u00e9tereket haszn\u00e1ljuk, akkor a kiigaz\u00edt\u00e1s hozz\u00e1ad\u00f3dik a megl\u00e9v\u0151 eltol\u00e1shoz (pl. a \"SET_GCODE_OFFSET Z=-0.2\" \u00e9s a \"SET_GCODE_OFFSET Z_ADJUST=0.3\" ut\u00e1na a teljes Z eltol\u00e1s 0.1 lesz). Ha a \"MOVE=1\" van megadva, akkor a nyomtat\u00f3fej mozgat\u00e1sa a megadott eltol\u00e1s alkalmaz\u00e1s\u00e1ra t\u00f6rt\u00e9nik (egy\u00e9bk\u00e9nt az eltol\u00e1s a k\u00f6vetkez\u0151 abszol\u00fat G-k\u00f3d\u00fa mozgat\u00e1skor l\u00e9p hat\u00e1lyba, amely az adott tengelyt adja meg). Ha a \"MOVE_SPEED\" meg van adva, akkor a nyomtat\u00f3fej mozgat\u00e1sa a megadott sebess\u00e9ggel (mm/sec-ben) t\u00f6rt\u00e9nik; egy\u00e9bk\u00e9nt a nyomtat\u00f3fej mozgat\u00e1sa az utolj\u00e1ra megadott G-k\u00f3d sebess\u00e9get fogja haszn\u00e1lni.","title":"SET_GCODE_OFFSET"},{"location":"G-Codes.html#save_gcode_state","text":"SAVE_GCODE_STATE [NAME=<state_name>] : Az aktu\u00e1lis G-k\u00f3d koordin\u00e1t\u00e1k elemz\u00e9si \u00e1llapot\u00e1nak ment\u00e9se. A G-k\u00f3d \u00e1llapot\u00e1nak ment\u00e9se \u00e9s vissza\u00e1ll\u00edt\u00e1sa hasznos a szkriptekben \u00e9s makr\u00f3kban. Ez a parancs elmenti az aktu\u00e1lis G-k\u00f3d abszol\u00fat koordin\u00e1tam\u00f3dot (G90/G91), az abszol\u00fat extrud\u00e1l\u00e1si m\u00f3dot (M82/M83), az orig\u00f3t (G92), az eltol\u00e1st (SET_GCODE_OFFSET), a sebess\u00e9g fel\u00fclb\u00edr\u00e1l\u00e1s\u00e1t (M220), az extruder fel\u00fclb\u00edr\u00e1l\u00e1s\u00e1t (M221), a mozg\u00e1si sebess\u00e9get, az aktu\u00e1lis XYZ poz\u00edci\u00f3t \u00e9s a relat\u00edv extruder \"E\" poz\u00edci\u00f3t. A NAME megad\u00e1sa eset\u00e9n lehet\u0151v\u00e9 teszi, hogy a mentett \u00e1llapotot a megadott karakterl\u00e1ncnak nevezz\u00fck el. Ha a NAME nincs megadva, az alap\u00e9rtelmezett \u00e9rt\u00e9k \"default\".","title":"SAVE_GCODE_STATE"},{"location":"G-Codes.html#restore_gcode_state","text":"RESTORE_GCODE_STATE [NAME=<state_name>] [MOVE=1 [MOVE_SPEED=<speed>]] : A SAVE_GCODE_STATE seg\u00edts\u00e9g\u00e9vel kor\u00e1bban elmentett \u00e1llapot vissza\u00e1ll\u00edt\u00e1sa. Ha \"MOVE=1\" van megadva, akkor a nyomtat\u00f3fej mozgat\u00e1sa az el\u0151z\u0151 XYZ-poz\u00edci\u00f3ba val\u00f3 visszal\u00e9p\u00e9shez t\u00f6rt\u00e9nik. Ha \"MOVE_SPEED\" van megadva, akkor a nyomtat\u00f3fej mozgat\u00e1sa a megadott sebess\u00e9ggel (mm/sec-ben) t\u00f6rt\u00e9nik; egy\u00e9bk\u00e9nt a nyomtat\u00f3fej mozgat\u00e1sa a vissza\u00e1ll\u00edtott G-k\u00f3d sebess\u00e9g\u00e9t haszn\u00e1lja.","title":"RESTORE_GCODE_STATE"},{"location":"G-Codes.html#hall_filament_width_sensor","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a tsl1401cl sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 konfigur\u00e1ci\u00f3s szakasz vagy a hall sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g TSLll401CL Sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 \u00e9s a Hall Sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 dokumentumot):","title":"[hall_filament_width_sensor]"},{"location":"G-Codes.html#query_filament_width","text":"QUERY_FILAMENT_WIDTH : Visszaadja az aktu\u00e1lisan m\u00e9rt izz\u00f3sz\u00e1l sz\u00e9less\u00e9get.","title":"QUERY_FILAMENT_WIDTH"},{"location":"G-Codes.html#reset_filament_width_sensor","text":"RESET_FILAMENT_WIDTH_SENSOR : T\u00f6rli az \u00f6sszes \u00e9rz\u00e9kel\u0151 leolvas\u00e1s\u00e1t. Hasznos nyomtat\u00f3sz\u00e1l csere ut\u00e1n.","title":"RESET_FILAMENT_WIDTH_SENSOR"},{"location":"G-Codes.html#disable_filament_width_sensor","text":"DISABLE_FILAMENT_WIDTH_SENSOR : Kapcsold ki a sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151t, \u00e9s ne haszn\u00e1ld \u00e1raml\u00e1sszab\u00e1lyoz\u00e1shoz.","title":"DISABLE_FILAMENT_WIDTH_SENSOR"},{"location":"G-Codes.html#enable_filament_width_sensor","text":"ENABLE_FILAMENT_WIDTH_SENSOR : Kapcsold be a sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151t, \u00e9s kezd el haszn\u00e1lni az \u00e1raml\u00e1sszab\u00e1lyoz\u00e1shoz.","title":"ENABLE_FILAMENT_WIDTH_SENSOR"},{"location":"G-Codes.html#query_raw_filament_width","text":"QUERY_RAW_FILAMENT_WIDTH : Visszaadja az ADC-csatorna aktu\u00e1lis leolvas\u00e1s\u00e1t \u00e9s a RAW-\u00e9rz\u00e9kel\u0151 \u00e9rt\u00e9k\u00e9t a kalibr\u00e1ci\u00f3s pontokhoz.","title":"QUERY_RAW_FILAMENT_WIDTH"},{"location":"G-Codes.html#enable_filament_width_log","text":"ENABLE_FILAMENT_WIDTH_LOG : Az \u00e1tm\u00e9r\u0151 napl\u00f3z\u00e1s\u00e1nak bekapcsol\u00e1sa.","title":"ENABLE_FILAMENT_WIDTH_LOG"},{"location":"G-Codes.html#disable_filament_width_log","text":"DISABLE_FILAMENT_WIDTH_LOG : Az \u00e1tm\u00e9r\u0151 napl\u00f3z\u00e1s\u00e1nak kikapcsol\u00e1sa.","title":"DISABLE_FILAMENT_WIDTH_LOG"},{"location":"G-Codes.html#heaters","text":"A f\u0171t\u0151modul automatikusan bet\u00f6lt\u0151dik, ha a konfigur\u00e1ci\u00f3s f\u00e1jlban van f\u0171t\u0151elem defini\u00e1lva.","title":"[heaters]"},{"location":"G-Codes.html#turn_off_heaters","text":"TURN_OFF_HEATERS : Kapcsold ki az \u00f6sszes f\u0171t\u0151berendez\u00e9st.","title":"TURN_OFF_HEATERS"},{"location":"G-Codes.html#temperature_wait","text":"TEMPERATURE_WAIT SENSOR=<config_name> [MINIMUM=<target>] [MAXIMUM=<target>] : V\u00e1rj, am\u00edg az adott h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 a megadott MINIMUM \u00e9rt\u00e9ken vagy a megadott MINIMUM \u00e9rt\u00e9k felett \u00e9s/vagy a megadott MAXIMUM \u00e9rt\u00e9ken vagy az alatt van.","title":"TEMPERATURE_WAIT"},{"location":"G-Codes.html#set_heater_temperature","text":"SET_HEATER_TEMPERATURE HEATER=<heater_name> [TARGET=<target_temperature>] : A f\u0171t\u0151test c\u00e9lh\u0151m\u00e9rs\u00e9klet\u00e9nek be\u00e1ll\u00edt\u00e1sa. Ha nincs megadva c\u00e9lh\u0151m\u00e9rs\u00e9klet, akkor az \u00e9rt\u00e9k 0.","title":"SET_HEATER_TEMPERATURE"},{"location":"G-Codes.html#idle_timeout","text":"Az idle_timeout modul automatikusan bet\u00f6lt\u0151dik.","title":"[idle_timeout]"},{"location":"G-Codes.html#set_idle_timeout","text":"SET_IDLE_TIMEOUT [TIMEOUT=<timeout>] : Lehet\u0151v\u00e9 teszi a felhaszn\u00e1l\u00f3 sz\u00e1m\u00e1ra az \u00fcresj\u00e1rati id\u0151korl\u00e1t be\u00e1ll\u00edt\u00e1s\u00e1t (m\u00e1sodpercben).","title":"SET_IDLE_TIMEOUT"},{"location":"G-Codes.html#input_shaper","text":"A k\u00f6vetkez\u0151 parancs akkor enged\u00e9lyezett, ha az input_shaper konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a rezonancia kompenz\u00e1ci\u00f3s \u00fatmutat\u00f3t ).","title":"[input_shaper]"},{"location":"G-Codes.html#set_input_shaper","text":"SET_INPUT_SHAPER [SHAPER_FREQ_X=<shaper_freq_x>] [SHAPER_FREQ_Y=<shaper_freq_y>] [DAMPING_RATIO_X=<damping_ratio_x>] [DAMPING_RATIO_Y=<damping_ratio_y>] [SHAPER_TYPE=<shaper>] [SHAPER_TYPE_X=<shaper_type_x>] [SHAPER_TYPE_Y=<shaper_type_y>] : A bemeneti form\u00e1l\u00f3 param\u00e9terek m\u00f3dos\u00edt\u00e1sa. Vedd figyelembe, hogy a SHAPER_TYPE param\u00e9ter vissza\u00e1ll\u00edtja a bemeneti form\u00e1l\u00f3t mind az X, mind az Y tengelyre, m\u00e9g akkor is, ha az [input_shaper] szakaszban k\u00fcl\u00f6nb\u00f6z\u0151 form\u00e1l\u00f3t\u00edpusok lettek be\u00e1ll\u00edtva. A SHAPER_TYPE nem haszn\u00e1lhat\u00f3 egy\u00fctt a SHAPER_TYPE_X \u00e9s SHAPER_TYPE_Y param\u00e9terekkel. Az egyes param\u00e9terekkel kapcsolatos tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st .","title":"SET_INPUT_SHAPER"},{"location":"G-Codes.html#manual_probe","text":"A manual_probe modul automatikusan bet\u00f6lt\u0151dik.","title":"[manual_probe]"},{"location":"G-Codes.html#manual_probe_1","text":"MANUAL_PROBE [SPEED=<speed>] : Egy seg\u00e9dszkript futtat\u00e1sa, amely hasznos a f\u00fav\u00f3ka magass\u00e1g\u00e1nak m\u00e9r\u00e9s\u00e9hez egy adott helyen. Ha SPEED van megadva, akkor a TESTZ parancsok sebess\u00e9g\u00e9t \u00e1ll\u00edtja be (az alap\u00e9rtelmezett 5 mm/sec). A k\u00e9zi m\u00e9r\u00e9s sor\u00e1n a k\u00f6vetkez\u0151 tov\u00e1bbi parancsok \u00e1llnak rendelkez\u00e9sre: ACCEPT : Ez a parancs elfogadja az aktu\u00e1lis Z poz\u00edci\u00f3t, \u00e9s lez\u00e1rja a k\u00e9zi szintez\u0151 eszk\u00f6zt. ABORT : Ez a parancs megszak\u00edtja a k\u00e9zi szintez\u00e9st. TESTZ Z=<value> : Ez a parancs a f\u00fav\u00f3k\u00e1t a \"value\" \u00e9rt\u00e9kben megadott \u00e9rt\u00e9kkel felfel\u00e9 vagy lefel\u00e9 mozgatja. P\u00e9ld\u00e1ul a TESTZ Z=-.1 a f\u00fav\u00f3k\u00e1t 0,1 mm-rel lefel\u00e9, m\u00edg a TESTZ Z=.1 a f\u00fav\u00f3k\u00e1t 0,1 mm-rel felfel\u00e9 mozgatja. Az \u00e9rt\u00e9k lehet + , - , ++ , vagy -- is, hogy a f\u00fav\u00f3k\u00e1t a kor\u00e1bbi pr\u00f3b\u00e1lkoz\u00e1sokhoz k\u00e9pest felfel\u00e9 vagy lefel\u00e9 mozd\u00edtsa.","title":"MANUAL_PROBE"},{"location":"G-Codes.html#z_endstop_calibrate","text":"Z_ENDSTOP_CALIBRATE [SPEED=<speed>] : Egy seg\u00e9dszkript futtat\u00e1sa, amely hasznos a Z poz\u00edci\u00f3 v\u00e9g\u00e1ll\u00e1s konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1s\u00e1nak kalibr\u00e1l\u00e1s\u00e1hoz. A param\u00e9terekkel \u00e9s az eszk\u00f6z akt\u00edv m\u0171k\u00f6d\u00e9se k\u00f6zben el\u00e9rhet\u0151 tov\u00e1bbi parancsokkal kapcsolatos r\u00e9szletek\u00e9rt haszn\u00e1ld a MANUAL_PROBE parancsot.","title":"Z_ENDSTOP_CALIBRATE"},{"location":"G-Codes.html#z_offset_apply_endstop","text":"Z_OFFSET_APPLY_ENDSTOP : Vegy\u00fck az aktu\u00e1lis Z G-k\u00f3d eltol\u00e1st (m\u00e1s n\u00e9ven mikrol\u00e9p\u00e9s), \u00e9s vonjuk ki a stepper_z endstop_positionb\u00f3l. Ez egy gyakran haszn\u00e1lt mikrol\u00e9p\u00e9s \u00e9rt\u00e9ket vesz, \u00e9s \"\u00e1lland\u00f3v\u00e1 teszi\". Egy SAVE_CONFIG sz\u00fcks\u00e9ges a hat\u00e1lybal\u00e9p\u00e9shez.","title":"Z_OFFSET_APPLY_ENDSTOP"},{"location":"G-Codes.html#manual_stepper","text":"A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a manual_stepper konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[manual_stepper]"},{"location":"G-Codes.html#manual_stepper_1","text":"MANUAL_STEPPER STEPPER=config_name [ENABLE=[0|1]] [SET_POSITION=<pos>] [SPEED=<speed>] [ACCEL=<accel>] [MOVE=<pos> [STOP_ON_ENDSTOP=[1|2|2|-1|-2]] [SYNC=0]]] : Ez a parancs megv\u00e1ltoztatja a l\u00e9ptet\u0151 \u00e1llapot\u00e1t. Az ENABLE param\u00e9terrel enged\u00e9lyezheti/letilthatja a l\u00e9ptet\u0151t. A SET_POSITION param\u00e9terrel k\u00e9nyszer\u00edtheti a l\u00e9ptet\u0151t arra, hogy azt higgye, az adott helyzetben van. A MOVE param\u00e9terrel kezdem\u00e9nyezhet mozg\u00e1st egy adott poz\u00edci\u00f3ba. Ha a SPEED \u00e9s/vagy az ACCEL param\u00e9ter meg van adva, akkor a rendszer a megadott \u00e9rt\u00e9keket haszn\u00e1lja a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott alap\u00e9rtelmezett \u00e9rt\u00e9kek helyett. Ha nulla ACCEL-t ad meg, akkor nem t\u00f6rt\u00e9nik gyors\u00edt\u00e1s. Ha STOP_ON_ENDSTOP=1 van megadva, akkor a l\u00e9p\u00e9s kor\u00e1n v\u00e9get \u00e9r. Ha a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 aktiv\u00e1l\u00f3dik (a STOP_ON_ENDSTOP=2 paranccsal hiba n\u00e9lk\u00fcl befejezheti a mozg\u00e1st, m\u00e9g akkor is, ha a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 nem aktiv\u00e1l\u00f3dott. Haszn\u00e1ld a -1 vagy a -2 jel\u00f6l\u00e9st, hogy le\u00e1lljon, amikor a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 m\u00e9g nem aktiv\u00e1l\u00f3dott). Norm\u00e1lis esetben a k\u00e9s\u0151bbi G-k\u00f3d parancsok a l\u00e9ptet\u0151mozg\u00e1s befejez\u00e9se ut\u00e1n ker\u00fclnek \u00fctemez\u00e9sre, azonban ha a k\u00e9zi l\u00e9ptet\u0151mozg\u00e1s parancs a SYNC=0 \u00e9rt\u00e9ket haszn\u00e1lod, akkor a k\u00e9s\u0151bbi G-k\u00f3d mozgat\u00e1si parancsok a l\u00e9ptet\u0151mozg\u00e1ssal p\u00e1rhuzamosan is futhatnak.","title":"MANUAL_STEPPER"},{"location":"G-Codes.html#mcp4018","text":"A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha az mcp4018 config szekci\u00f3 enged\u00e9lyezve van.","title":"[mcp4018]"},{"location":"G-Codes.html#set_digipot","text":"SET_DIGIPOT DIGIPOT=config_name WIPER=<value> : Ez a parancs megv\u00e1ltoztatja a digipot aktu\u00e1lis \u00e9rt\u00e9k\u00e9t. Ennek az \u00e9rt\u00e9knek \u00e1ltal\u00e1ban 0.0 \u00e9s 1.0 k\u00f6z\u00f6tt kell lennie, hacsak a configban nincs defini\u00e1lva 'scale'. Ha 'scale' van defini\u00e1lva, akkor ennek az \u00e9rt\u00e9knek 0.0 \u00e9s a 'scale' \u00e9rt\u00e9k k\u00f6z\u00f6tt kell lennie.","title":"SET_DIGIPOT"},{"location":"G-Codes.html#led","text":"A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a LED konfigur\u00e1ci\u00f3s szakaszok b\u00e1rmelyike enged\u00e9lyezve van.","title":"[led]"},{"location":"G-Codes.html#set_led","text":"SET_LED LED=<config_name> RED=<value> GREEN=<value> BLUE=<value> WHITE=<value> [INDEX=<index>] [TRANSMIT=0] [SYNC=1] : Ez \u00e1ll\u00edtja be a LED kimenetet. Minden sz\u00edn <value> 0,0 \u00e9s 1,0 k\u00f6z\u00f6tt kell lennie. A WHITE opci\u00f3 csak RGBW LED-ek eset\u00e9n \u00e9rv\u00e9nyes. Ha a LED t\u00f6bb chipet t\u00e1mogat egy daisy-chainben, akkor megadhatjuk az INDEX-et, hogy csak az adott chip sz\u00edn\u00e9t v\u00e1ltoztassuk meg (1 az els\u0151 chiphez, 2 a m\u00e1sodikhoz stb.). Ha az INDEX nincs megadva, akkor a daisy-chain \u00f6sszes LED-je a megadott sz\u00ednre lesz be\u00e1ll\u00edtva. Ha TRANSMIT=0 van megadva, akkor a sz\u00ednv\u00e1ltoztat\u00e1s csak a k\u00f6vetkez\u0151 SET_LED parancsn\u00e1l t\u00f6rt\u00e9nik meg, amely nem ad meg TRANSMIT=0-t. Ez hasznos lehet az INDEX param\u00e9terrel kombin\u00e1lva, ha egy daisy-chainben t\u00f6bb friss\u00edt\u00e9st szeretn\u00e9nk k\u00f6tegelni. Alap\u00e9rtelmez\u00e9s szerint a SET_LED parancs szinkroniz\u00e1lja a v\u00e1ltoztat\u00e1sokat a t\u00f6bbi folyamatban l\u00e9v\u0151 G-k\u00f3d paranccsal. Ez nemk\u00edv\u00e1natos viselked\u00e9shez vezethet, ha a LED-ek be\u00e1ll\u00edt\u00e1sa akkor t\u00f6rt\u00e9nik, amikor a nyomtat\u00f3 nem nyomtat, mivel ez vissza\u00e1ll\u00edtja az \u00fcresj\u00e1rati id\u0151korl\u00e1tot. Ha nincs sz\u00fcks\u00e9g gondos id\u0151z\u00edt\u00e9sre, az opcion\u00e1lis SYNC=0 param\u00e9ter megadhat\u00f3, hogy a m\u00f3dos\u00edt\u00e1sokat az \u00fcresj\u00e1rati id\u0151korl\u00e1t vissza\u00e1ll\u00edt\u00e1sa n\u00e9lk\u00fcl alkalmazd.","title":"SET_LED"},{"location":"G-Codes.html#set_led_template","text":"SET_LED_TEMPLATE LED=<led_name> TEMPLATE=<template_name> [<param_x>=<literal>] [INDEX=<index>] : Egy display_template hozz\u00e1rendel\u00e9se egy adott LED-hez . P\u00e9ld\u00e1ul, ha defini\u00e1ltunk egy [display_template my_led_template] konfigur\u00e1ci\u00f3s szakaszt, akkor itt hozz\u00e1rendelhetj\u00fck a TEMPLATE=my_led_template . A display_template-nek egy vessz\u0151vel elv\u00e1lasztott karakterl\u00e1ncot kell l\u00e9trehoznia, amely n\u00e9gy lebeg\u0151pontos sz\u00e1mot tartalmaz, amelyek megfelelnek a piros, z\u00f6ld, k\u00e9k \u00e9s feh\u00e9r sz\u00ednbe\u00e1ll\u00edt\u00e1soknak. A sablon folyamatosan ki\u00e9rt\u00e9kel\u00e9sre ker\u00fcl, \u00e9s a LED automatikusan az \u00edgy kapott sz\u00ednekre lesz be\u00e1ll\u00edtva. A sablon ki\u00e9rt\u00e9kel\u00e9se sor\u00e1n haszn\u00e1land\u00f3 display_template param\u00e9tereket lehet be\u00e1ll\u00edtani (a param\u00e9terek Python liter\u00e1lokk\u00e9nt lesznek elemezve). Ha az INDEX nincs megadva, akkor a LED's daisy-chain \u00f6sszes chipje a sablonra lesz be\u00e1ll\u00edtva, ellenkez\u0151 esetben csak a megadott indexszel rendelkez\u0151 chip lesz friss\u00edtve. Ha a TEMPLATE \u00fcres karakterl\u00e1nc, akkor ez a parancs t\u00f6rli a LED-hez rendelt kor\u00e1bbi sablonokat (ekkor a SET_LED parancsokat haszn\u00e1lhatjuk a LED sz\u00ednbe\u00e1ll\u00edt\u00e1sainak kezel\u00e9s\u00e9re).","title":"SET_LED_TEMPLATE"},{"location":"G-Codes.html#output_pin","text":"A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha az output_pin konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[output_pin]"},{"location":"G-Codes.html#set_pin","text":"SET_PIN PIN=config_name VALUE=<value> CYCLE_TIME=<cycle_time> : Megjegyz\u00e9s: A hardveres PWM jelenleg nem t\u00e1mogatja a CYCLE_TIME param\u00e9tert, \u00e9s a konfigur\u00e1ci\u00f3ban meghat\u00e1rozott ciklusid\u0151t haszn\u00e1lja.","title":"SET_PIN"},{"location":"G-Codes.html#palette2","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a palette2 konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. A paletta nyomtat\u00e1sok speci\u00e1lis OCode-ok (Omega-k\u00f3dok) be\u00e1gyaz\u00e1s\u00e1val m\u0171k\u00f6dnek a G-k\u00f3d f\u00e1jlban: O1 ... O32 : Ezeket a k\u00f3dokat a G-k\u00f3d folyamatb\u00f3l olvassa be \u00e9s dolgozza fel ez a modul, majd tov\u00e1bb\u00edtja a Palette 2 eszk\u00f6znek. A k\u00f6vetkez\u0151 tov\u00e1bbi parancsok is rendelkez\u00e9sre \u00e1llnak.","title":"[palette2]"},{"location":"G-Codes.html#palette_connect","text":"PALETTE_CONNECT : Ez a parancs inicializ\u00e1lja a kapcsolatot a Palette 2-vel.","title":"PALETTE_CONNECT"},{"location":"G-Codes.html#palette_disconnect","text":"PALETTE_DISCONNECT : Ez a parancs megszak\u00edtja a kapcsolatot a Paletta 2-vel.","title":"PALETTE_DISCONNECT"},{"location":"G-Codes.html#palette_clear","text":"PALETTE_CLEAR : Ez a parancs arra utas\u00edtja a Palette 2-t, hogy t\u00f6r\u00f6lje az \u00f6sszes sz\u00e1lat a bemeneti \u00e9s kimeneti \u00fatvonalb\u00f3l.","title":"PALETTE_CLEAR"},{"location":"G-Codes.html#palette_cut","text":"PALETTE_CUT : Ez a parancs utas\u00edtja a Palette 2-t, hogy v\u00e1gja el az illeszt\u00e9si magba t\u00f6lt\u00f6tt sz\u00e1lat.","title":"PALETTE_CUT"},{"location":"G-Codes.html#palette_smart_load","text":"PALETTE_SMART_LOAD : Ez a parancs elind\u00edtja az intelligens bet\u00f6lt\u00e9si sorozatot a Paletta 2-n. A nyomtat\u00f3sz\u00e1l bet\u00f6lt\u00e9se automatikusan t\u00f6rt\u00e9nik a k\u00e9sz\u00fcl\u00e9kben a nyomtat\u00f3hoz kalibr\u00e1lt t\u00e1vols\u00e1g extrud\u00e1l\u00e1s\u00e1val, \u00e9s utas\u00edtja a Palette 2-t, amint a bet\u00f6lt\u00e9s befejez\u0151d\u00f6tt. Ez a parancs megegyezik a Smart Load megnyom\u00e1s\u00e1val k\u00f6zvetlen\u00fcl a Palette 2 k\u00e9perny\u0151j\u00e9n, miut\u00e1n a nyomtat\u00f3sz\u00e1l bet\u00f6lt\u00e9se befejez\u0151d\u00f6tt.","title":"PALETTE_SMART_LOAD"},{"location":"G-Codes.html#pid_calibrate","text":"A pid_calibrate modul automatikusan bet\u00f6lt\u0151dik, ha a konfigur\u00e1ci\u00f3s f\u00e1jlban van egy f\u0171t\u00e9s defini\u00e1lva.","title":"[pid_calibrate]"},{"location":"G-Codes.html#pid_calibrate_1","text":"PID_CALIBRATE HEATER=<config_name> TARGET=<temperature> [WRITE_FILE=1] : A PID kalibr\u00e1ci\u00f3s teszt elv\u00e9gz\u00e9se. A megadott f\u0171t\u0151berendez\u00e9s a megadott c\u00e9lh\u0151m\u00e9rs\u00e9klet el\u00e9r\u00e9s\u00e9ig enged\u00e9lyezve lesz, majd a f\u0171t\u0151berendez\u00e9s t\u00f6bb cikluson kereszt\u00fcl ki- \u00e9s bekapcsol. Ha a WRITE_FILE param\u00e9ter enged\u00e9lyezve van, akkor l\u00e9trej\u00f6n a /tmp/heattest.txt f\u00e1jl a teszt sor\u00e1n vett \u00f6sszes h\u0151m\u00e9rs\u00e9klet-mint\u00e1t tartalmaz\u00f3 napl\u00f3val.","title":"PID_CALIBRATE"},{"location":"G-Codes.html#pause_resume","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a pause_resume konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van:","title":"[pause_resume]"},{"location":"G-Codes.html#pause","text":"PAUSE : Az aktu\u00e1lis nyomtat\u00e1s sz\u00fcneteltet\u00e9se. Az aktu\u00e1lis poz\u00edci\u00f3 r\u00f6gz\u00edt\u00e9sre ker\u00fcl, hogy a folytat\u00e1skor vissza\u00e1ll\u00edthat\u00f3 legyen.","title":"PAUSE"},{"location":"G-Codes.html#resume","text":"RESUME [VELOCITY=<value>] : Folytatja a nyomtat\u00e1st sz\u00fcnet ut\u00e1n, el\u0151sz\u00f6r vissza\u00e1ll\u00edtva a kor\u00e1bban r\u00f6gz\u00edtett poz\u00edci\u00f3t. A VELOCITY param\u00e9ter hat\u00e1rozza meg, hogy a f\u00fav\u00f3ka milyen sebess\u00e9ggel t\u00e9rjen vissza az eredeti r\u00f6gz\u00edtett poz\u00edci\u00f3ba.","title":"RESUME"},{"location":"G-Codes.html#clear_pause","text":"CLEAR_PAUSE : T\u00f6rli az aktu\u00e1lis sz\u00fcneteltetett \u00e1llapotot a nyomtat\u00e1s folytat\u00e1sa n\u00e9lk\u00fcl. Ez akkor hasznos, ha valaki \u00fagy d\u00f6nt, hogy PAUSE ut\u00e1n megszak\u00edtja a nyomtat\u00e1st. Aj\u00e1nlatos ezt hozz\u00e1adni az ind\u00edt\u00f3 G-k\u00f3dhoz, hogy a sz\u00fcneteltetett \u00e1llapot minden nyomtat\u00e1sn\u00e1l friss legyen.","title":"CLEAR_PAUSE"},{"location":"G-Codes.html#cancel_print","text":"CANCEL_PRINT : Az aktu\u00e1lis nyomtat\u00e1s t\u00f6rl\u00e9se.","title":"CANCEL_PRINT"},{"location":"G-Codes.html#print_stats","text":"A print_stats modul automatikusan bet\u00f6lt\u0151dik.","title":"[print_stats]"},{"location":"G-Codes.html#set_print_stats_info","text":"SET_PRINT_STATS_INFO [TOTAL_LAYER=<total_layer_count>] [CURRENT_LAYER= <current_layer>] : \u00c1tadja a szeletel\u0151 adatait, a Klippernek, mint p\u00e9ld\u00e1ul az aktu\u00e1lis \u00e9s \u00f6sszes r\u00e9teg. Add hozz\u00e1 a SET_PRINT_STATS_INFO [TOTAL_LAYER=<total_layer_count>] a szeletel\u0151 ind\u00edt\u00f3 G-k\u00f3d szakasz\u00e1hoz \u00e9s a SET_PRINT_STATS_INFO [CURRENT_LAYER= <current_layer>] a r\u00e9tegv\u00e1lt\u00e1s G-k\u00f3d szakasz\u00e1hoz, hogy \u00e1tadja a r\u00e9teginform\u00e1ci\u00f3t a szeletel\u0151 a Klippernek.","title":"SET_PRINT_STATS_INFO"},{"location":"G-Codes.html#probe","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a szonda konfigur\u00e1ci\u00f3s szakasz vagy a bltouch konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a szonda kalibr\u00e1ci\u00f3s \u00fatmutat\u00f3t ).","title":"[probe]"},{"location":"G-Codes.html#probe_1","text":"PROBE [PROBE_SPEED=<mm/s>] [LIFT_SPEED=<mm/s>] [SAMPLES=<count>] [SAMPLE_RETRACT_DIST=<mm>] [SAMPLES_TOLERANCE=<mm>] [SAMPLES_TOLERANCE_RETRIES=<count>] [SAMPLES_RESULT=median|average] : Mozgasd a f\u00fav\u00f3k\u00e1t lefel\u00e9, am\u00edg a szonda nem \u00e9rz\u00e9kel. Ha b\u00e1rmelyik opcion\u00e1lis param\u00e9tert megadjuk, azok fel\u00fcl\u00edrj\u00e1k a szonda konfigur\u00e1ci\u00f3s szakasz\u00e1ban megadott megfelel\u0151 be\u00e1ll\u00edt\u00e1sokat.","title":"PROBE"},{"location":"G-Codes.html#query_probe","text":"QUERY_PROBE : Jelentse a szonda aktu\u00e1lis \u00e1llapot\u00e1t (\"triggered\" vagy \"open\").","title":"QUERY_PROBE"},{"location":"G-Codes.html#probe_accuracy","text":"PROBE_ACCURACY [PROBE_SPEED=<mm/s>] [SAMPLES=<count>] [SAMPLE_RETRACT_DIST=<mm>] : T\u00f6bb m\u00e9r\u00e9si minta maximum\u00e1nak, minimum\u00e1nak, \u00e1tlag\u00e1nak, medi\u00e1nj\u00e1nak \u00e9s sz\u00f3r\u00e1s\u00e1nak kisz\u00e1m\u00edt\u00e1sa. Alap\u00e9rtelmez\u00e9s szerint 10 MINT\u00c1T vesz\u00fcnk. Egy\u00e9bk\u00e9nt az opcion\u00e1lis param\u00e9terek alap\u00e9rtelmez\u00e9s szerint a szonda konfigur\u00e1ci\u00f3s szakasz\u00e1ban szerepl\u0151 megfelel\u0151 be\u00e1ll\u00edt\u00e1sokat haszn\u00e1lj\u00e1k.","title":"PROBE_ACCURACY"},{"location":"G-Codes.html#probe_calibrate","text":"PROBE_CALIBRATE [SPEED=<speed>] [<probe_parameter>=<value>] : A szonda z_offset kalibr\u00e1l\u00e1s\u00e1hoz hasznos seg\u00e9dszkript futtat\u00e1sa. Az opcion\u00e1lis szondaparam\u00e9terekkel kapcsolatos r\u00e9szletek\u00e9rt l\u00e1sd a PROBE parancsot. L\u00e1sd a MANUAL_PROBE parancsot a SPEED param\u00e9terre \u00e9s az eszk\u00f6z akt\u00edv m\u0171k\u00f6d\u00e9se k\u00f6zben el\u00e9rhet\u0151 tov\u00e1bbi parancsokra vonatkoz\u00f3 r\u00e9szletek\u00e9rt. Felh\u00edvjuk a figyelmet, hogy a PROBE_CALIBRATE parancs a sebess\u00e9g v\u00e1ltoz\u00f3t haszn\u00e1lja az XY ir\u00e1ny\u00fa \u00e9s a Z ir\u00e1ny\u00fa mozg\u00e1shoz.","title":"PROBE_CALIBRATE"},{"location":"G-Codes.html#z_offset_apply_probe","text":"Z_OFFSET_APPLY_PROBE : Vegy\u00fck az aktu\u00e1lis Z G-k\u00f3d eltol\u00e1st (m\u00e1s n\u00e9ven mikrol\u00e9p\u00e9s), \u00e9s vonjuk ki a szonda z_offset-j\u00e9b\u0151l. Ez egy gyakran haszn\u00e1lt mikrol\u00e9p\u00e9s \u00e9rt\u00e9ket vesz, \u00e9s \"\u00e1lland\u00f3v\u00e1 teszi\". Egy SAVE_CONFIG sz\u00fcks\u00e9ges a hat\u00e1lybal\u00e9p\u00e9shez.","title":"Z_OFFSET_APPLY_PROBE"},{"location":"G-Codes.html#query_adc","text":"A query_adc modul automatikusan bet\u00f6lt\u0151dik.","title":"[query_adc]"},{"location":"G-Codes.html#query_adc_1","text":"QUERY_ADC [NAME=<config_name>] [PULLUP=<value>] : Jelenti a konfigur\u00e1lt anal\u00f3g t\u0171h\u00f6z utolj\u00e1ra kapott anal\u00f3g \u00e9rt\u00e9ket. Ha NAME nincs megadva, a rendelkez\u00e9sre \u00e1ll\u00f3 ADC nevek list\u00e1ja ker\u00fcl jelent\u00e9sre. Ha a PULLUP meg van adva (ohmban megadott \u00e9rt\u00e9kk\u00e9nt), akkor a nyers anal\u00f3g \u00e9rt\u00e9ket \u00e9s a pullup adott egyen\u00e9rt\u00e9k\u0171 ellen\u00e1ll\u00e1st jelenti.","title":"QUERY_ADC"},{"location":"G-Codes.html#query_endstops","text":"A query_endstops modul automatikusan bet\u00f6lt\u0151dik. Jelenleg a k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d parancsok \u00e1llnak rendelkez\u00e9sre, de haszn\u00e1latuk nem aj\u00e1nlott: V\u00e9g\u00e1ll\u00e1s \u00e1llapot\u00e1nak lek\u00e9rdez\u00e9se: M119 (Haszn\u00e1ld QUERY_ENDSTOPS helyett.)","title":"[query_endstops]"},{"location":"G-Codes.html#query_endstops_1","text":"QUERY_ENDSTOPS : M\u00e9ri a tengelyv\u00e9g\u00e1ll\u00e1sokat \u00e9s jelenti, ha azok \"kioldottak\" vagy \"nyitott\" \u00e1llapotban vannak. Ezt a parancsot \u00e1ltal\u00e1ban annak ellen\u0151rz\u00e9s\u00e9re haszn\u00e1lj\u00e1k, hogy egy v\u00e9g\u00e1ll\u00e1s megfelel\u0151en m\u0171k\u00f6dik-e.","title":"QUERY_ENDSTOPS"},{"location":"G-Codes.html#resonance_tester","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a resonance_tester konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a rezonanci\u00e1k m\u00e9r\u00e9se \u00fatmutat\u00f3t ).","title":"[resonance_tester]"},{"location":"G-Codes.html#measure_axes_noise","text":"MEASURE_AXES_NOISE : Az \u00f6sszes enged\u00e9lyezett gyorsul\u00e1sm\u00e9r\u0151 chip \u00f6sszes tengely\u00e9nek zaj\u00e1t m\u00e9ri \u00e9s adja ki.","title":"MEASURE_AXES_NOISE"},{"location":"G-Codes.html#test_resonances","text":"TEST_RESONANCES AXIS=<axis> OUTPUT=<resonances,raw_data> [NAME=<name>] [FREQ_START=<min_freq>] [FREQ_END=<max_freq>] [HZ_PER_SEC=<hz_per_sec>] [CHIPS=<adxl345_chip_name>] [POINT=x,y,z] [INPUT_SHAPING=[<0:1>]] : Lefuttatja a rezonanciatesztet a k\u00e9rt \"tengely\" \u00f6sszes konfigur\u00e1lt m\u00e9r\u0151pontj\u00e1ban, \u00e9s m\u00e9ri a gyorsul\u00e1st az adott tengelyhez konfigur\u00e1lt gyorsul\u00e1sm\u00e9r\u0151 chipek seg\u00edts\u00e9g\u00e9vel. A \"tengely\" lehet X vagy Y, vagy megadhat egy tetsz\u0151leges ir\u00e1nyt AXIS=dx,dy , ahol dx \u00e9s dy egy ir\u00e1nyvektort meghat\u00e1roz\u00f3 lebeg\u0151pontos sz\u00e1m (pl. AXIS=X , AXIS=Y , vagy AXIS=1,-1 az \u00e1tl\u00f3s ir\u00e1ny meghat\u00e1roz\u00e1s\u00e1hoz). Vegy\u00fck figyelembe, hogy az AXIS=dx,dy \u00e9s az AXIS=-dx,-dy egyen\u00e9rt\u00e9k\u0171. Az adxl345_chip_name lehet egy vagy t\u00f6bb konfigur\u00e1lt adxl345 chip, vessz\u0151vel elv\u00e1lasztva, p\u00e9ld\u00e1ul CHIPS=\"adxl345, adxl345 rpi\" . Megjegyzend\u0151, hogy az adxl345 elhagyhat\u00f3 a neves\u00edtett adxl345 chipekn\u00e9l. Ha POINT van megadva, az fel\u00fcl\u00edrja a [resonance_tester] alatt konfigur\u00e1lt pontokat. Ha INPUT_SHAPING=0 vagy nincs be\u00e1ll\u00edtva (alap\u00e9rtelmezett), letiltja a bemeneti alak\u00edt\u00e1st a rezonancia tesztel\u00e9shez, mert a rezonancia tesztel\u00e9s nem \u00e9rv\u00e9nyes a bemeneti alak\u00edt\u00f3 enged\u00e9lyez\u00e9s\u00e9vel. Az OUTPUT param\u00e9ter egy vessz\u0151vel elv\u00e1lasztott lista arr\u00f3l, hogy mely kimenetek ker\u00fclnek ki\u00edr\u00e1sra. Ha raw_data param\u00e9tert k\u00e9r, akkor a nyers gyorsul\u00e1sm\u00e9r\u0151 adatok egy /tmp/raw_data_<axis>_[<chip_name>_][<point>_]<name>.csv f\u00e1jlba vagy f\u00e1jlsorozatba \u00edr\u00f3dnak. A ( <point>_ n\u00e9v r\u00e9sz\u00e9vel, amely csak akkor gener\u00e1l\u00f3dik, ha 1-n\u00e9l t\u00f6bb m\u00e9r\u0151pont van konfigur\u00e1lva vagy POINT van megadva). Ha resonances van megadva, a frekvenciav\u00e1lasz kisz\u00e1m\u00edt\u00e1sra ker\u00fcl (az \u00f6sszes m\u00e9r\u0151pontra vonatkoz\u00f3an), \u00e9s a /tmp/resonances_<axis>_<name>.csv f\u00e1jlba \u00edr\u00f3dik. Ha nincs be\u00e1ll\u00edtva, az OUTPUT alap\u00e9rtelmez\u00e9s szerinti resonances , a NAME pedig alap\u00e9rtelmez\u00e9s szerint az aktu\u00e1lis id\u0151pontot jelenti \"\u00c9\u00c9\u00c9\u00c9HHNN_\u00d3\u00d3PPMPMP\" form\u00e1tumban.","title":"TEST_RESONANCES"},{"location":"G-Codes.html#shaper_calibrate","text":"SHAPER_CALIBRATE [AXIS=<axis>] [NAME=<name>] [FREQ_START=<min_freq>] [FREQ_END=<max_freq>] [HZ_PER_SEC=<hz_per_sec>] [MAX_SMOOTHING=<max_smoothing>] : A TEST_RESONANCES param\u00e9terhez hasonl\u00f3an lefuttatja a rezonancia tesztet a konfigur\u00e1ltak szerint, \u00e9s megpr\u00f3b\u00e1lja megtal\u00e1lni a bemeneti v\u00e1ltoz\u00f3 optim\u00e1lis param\u00e9tereit a k\u00e9rt tengelyre (vagy mind az X, mind az Y tengelyre, ha az AXIS param\u00e9ter nincs be\u00e1ll\u00edtva). Ha a MAX_SMOOTHING nincs be\u00e1ll\u00edtva, az \u00e9rt\u00e9k\u00e9t a [resonance_tester] szakaszb\u00f3l veszi, az alap\u00e9rtelmezett \u00e9rt\u00e9k pedig a be nem \u00e1ll\u00edtott \u00e9rt\u00e9k. L\u00e1sd a Max sim\u00edt\u00e1s a rezonanci\u00e1k m\u00e9r\u00e9se c\u00edm\u0171 \u00fatmutat\u00f3ban a funkci\u00f3 haszn\u00e1lat\u00e1r\u00f3l sz\u00f3l\u00f3 tov\u00e1bbi inform\u00e1ci\u00f3kat. A hangol\u00e1s eredm\u00e9nyei ki\u00edr\u00f3dnak a konzolra, a frekvenciav\u00e1laszok \u00e9s a k\u00fcl\u00f6nb\u00f6z\u0151 bemeneti alak\u00edt\u00f3k \u00e9rt\u00e9kei pedig egy vagy t\u00f6bb CSV-f\u00e1jlba \u00edr\u00f3dnak /tmp/calibration_data_<axis>_<name>.csv . Hacsak nincs megadva, a NAME alap\u00e9rtelmez\u00e9s szerint az aktu\u00e1lis id\u0151pontot jelenti \"YYYYMMDD_HHMMSS\" form\u00e1tumban. Vedd figyelembe, hogy a javasolt bemeneti v\u00e1ltoz\u00f3 param\u00e9terek a SAVE_CONFIG parancs kiad\u00e1s\u00e1val meg\u0151rizhet\u0151k a konfigur\u00e1ci\u00f3s f\u00e1jlban.","title":"SHAPER_CALIBRATE"},{"location":"G-Codes.html#respond","text":"A k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d\u00fa parancsok \u00e1llnak rendelkez\u00e9sre, ha a respond konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van: M118 <message> : visszhangozza az \u00fczenetet a konfigur\u00e1lt alap\u00e9rtelmezett el\u0151taggal (vagy echo: , ha nincs konfigur\u00e1lva el\u0151tag). A k\u00f6vetkez\u0151 tov\u00e1bbi parancsok is rendelkez\u00e9sre \u00e1llnak.","title":"[respond]"},{"location":"G-Codes.html#respond_1","text":"RESPOND MSG=\"<message>\" : visszhangozza az \u00fczenetet a konfigur\u00e1lt alap\u00e9rtelmezett el\u0151taggal kieg\u00e9sz\u00edtve (vagy echo: , ha nincs konfigur\u00e1lva el\u0151tag). RESPOND TYPE=echo MSG=\"<message>\" : visszhangozza az \u00fczenetet, amelyet echo: k\u00fcld. RESPOND TYPE=echo_no_space MSG=\"<message>\" : az \u00fczenet visszhangja az el\u0151taggal kieg\u00e9sz\u00edtve echo: sz\u00f3k\u00f6z n\u00e9lk\u00fcl az el\u0151tag \u00e9s az \u00fczenet k\u00f6z\u00f6tt, hasznos a kompatibilit\u00e1s n\u00e9h\u00e1ny olyan octoprint pluginnal, amelyek nagyon speci\u00e1lis form\u00e1z\u00e1st v\u00e1rnak el. RESPOND TYPE=command MSG=\"<message>\" : visszhangozza az \u00fczenetet // . Az OctoPrint konfigur\u00e1lhat\u00f3 \u00fagy, hogy v\u00e1laszoljon ezekre az \u00fczenetekre (pl. RESPOND TYPE=command MSG=action:pause ). RESPOND TYPE=error MSG=\"<message>\" : visszhangozza az \u00fczenetet !! . RESPOND PREFIX=<prefix> MSG=\"<message>\" : visszhangozza az \u00fczenetet <prefix> el\u0151taggal kieg\u00e9sz\u00edtve. (A PREFIX param\u00e9ter els\u0151bbs\u00e9get \u00e9lvez a TYPE param\u00e9terrel szemben.)","title":"RESPOND"},{"location":"G-Codes.html#save_variables","text":"A k\u00f6vetkez\u0151 parancs akkor enged\u00e9lyezett, ha a save_variables konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[save_variables]"},{"location":"G-Codes.html#save_variable","text":"SAVE_VARIABLE VARIABLE=<name> VALUE=<value> : A v\u00e1ltoz\u00f3t a lemezre menti, hogy \u00fajraind\u00edt\u00e1skor is haszn\u00e1lhat\u00f3 legyen. Minden t\u00e1rolt v\u00e1ltoz\u00f3 bet\u00f6lt\u0151dik a printer.save_variables.variables dict ind\u00edt\u00e1skor, \u00e9s haszn\u00e1lhat\u00f3 a G-k\u00f3d makr\u00f3kban. A megadott VALUE-t Python liter\u00e1lk\u00e9nt elemzi.","title":"SAVE_VARIABLE"},{"location":"G-Codes.html#screws_tilt_adjust","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a screws_tilt_adjust konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a k\u00e9zi szintbe\u00e1ll\u00edt\u00e1si \u00fatmutat\u00f3t ).","title":"[screws_tilt_adjust]"},{"location":"G-Codes.html#screws_tilt_calculate","text":"SCREWS_TILT_CALCULATE [DIRECTION=CW|CCW] [MAX_DEVIATION=<value>] [<probe_parameter>=<value>] : Ez a parancs a t\u00e1rgyasztal csavarjainak be\u00e1ll\u00edt\u00e1si eszk\u00f6z\u00e9t h\u00edvja el\u0151. A f\u00fav\u00f3k\u00e1t k\u00fcl\u00f6nb\u00f6z\u0151 helyekre (a konfigur\u00e1ci\u00f3s f\u00e1jlban meghat\u00e1rozottak szerint) parancsolja a Z magass\u00e1got m\u00e9rve, \u00e9s kisz\u00e1m\u00edtja a t\u00e1rgyasztal szintj\u00e9nek be\u00e1ll\u00edt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges gombfordulatok sz\u00e1m\u00e1t. Ha DIRECTION van megadva, akkor a gombfordul\u00e1sok mind ugyanabba az ir\u00e1nyba, az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val megegyez\u0151 vagy az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1nyba fognak t\u00f6rt\u00e9nni. Az opcion\u00e1lis szondaparam\u00e9terekkel kapcsolatos r\u00e9szletek\u00e9rt l\u00e1sd a PROBE parancsot. FONTOS: A parancs haszn\u00e1lata el\u0151tt mindig ki kell adni egy G28 parancsot. Ha MAX_DEVIATION van megadva, a parancs G-k\u00f3d hib\u00e1t fog adni, ha a csavar magass\u00e1g\u00e1nak az alapcsavar magass\u00e1g\u00e1hoz viszony\u00edtott b\u00e1rmilyen k\u00fcl\u00f6nbs\u00e9ge nagyobb, mint a megadott \u00e9rt\u00e9k.","title":"SCREWS_TILT_CALCULATE"},{"location":"G-Codes.html#sdcard_loop","text":"Ha az sdcard_loop konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van, a k\u00f6vetkez\u0151 kiterjesztett parancsok \u00e1llnak rendelkez\u00e9sre.","title":"[sdcard_loop]"},{"location":"G-Codes.html#sdcard_loop_begin","text":"SDCARD_LOOP_BEGIN COUNT=<count> : Egy hurokszer\u0171 szakasz kezdete az SD nyomtat\u00e1sban. A 0-\u00e1s sz\u00e1m azt jelzi, hogy a szakasz v\u00e9gtelen\u00edtett hurokba ker\u00fclj\u00f6n.","title":"SDCARD_LOOP_BEGIN"},{"location":"G-Codes.html#sdcard_loop_end","text":"SDCARD_LOOP_END : Az SD-nyomtat\u00e1sban egy ciklusos szakasz befejez\u00e9se.","title":"SDCARD_LOOP_END"},{"location":"G-Codes.html#sdcard_loop_desist","text":"SDCARD_LOOP_DESIST : A megl\u00e9v\u0151 ciklusok befejez\u00e9se tov\u00e1bbi iter\u00e1ci\u00f3k n\u00e9lk\u00fcl.","title":"SDCARD_LOOP_DESIST"},{"location":"G-Codes.html#servo","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a szerv\u00f3 konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[servo]"},{"location":"G-Codes.html#set_servo","text":"SET_SERVO SERVO=config_name [ANGLE=<degrees> | WIDTH=<seconds>] : A szerv\u00f3 poz\u00edci\u00f3j\u00e1nak be\u00e1ll\u00edt\u00e1sa a megadott sz\u00f6gre (fokban) vagy impulzussz\u00e9less\u00e9gre (m\u00e1sodpercben). A WIDTH=0 haszn\u00e1lat\u00e1val letilthatja a szerv\u00f3kimenetet.","title":"SET_SERVO"},{"location":"G-Codes.html#skew_correction","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a skew_correction konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van (l\u00e1sd m\u00e9g a Ferdes\u00e9gi korrekci\u00f3 \u00fatmutat\u00f3t).","title":"[skew_correction]"},{"location":"G-Codes.html#set_skew","text":"SET_SKEW [XY=<ac_length,bd_length,ad_length>] [XZ=<ac,bd,ad>] [YZ=<ac,bd,ad>] [CLEAR=<0|1>] : A [skew_correction] modul konfigur\u00e1l\u00e1sa a kalibr\u00e1ci\u00f3s nyomatb\u00f3l vett m\u00e9r\u00e9sekkel (mm-ben). A m\u00e9r\u00e9sek a s\u00edkok tetsz\u0151leges kombin\u00e1ci\u00f3j\u00e1ra adhat\u00f3k meg, a be nem adott s\u00edkok megtartj\u00e1k az aktu\u00e1lis \u00e9rt\u00e9k\u00fcket. Ha CLEAR=1 van megadva, akkor minden ferdes\u00e9gkorrekci\u00f3 ki lesz kapcsolva.","title":"SET_SKEW"},{"location":"G-Codes.html#get_current_skew","text":"GET_CURRENT_SKEW : A nyomtat\u00f3 aktu\u00e1lis ferdes\u00e9g\u00e9t jelenti minden s\u00edkhoz radi\u00e1nban \u00e9s fokban. A ferdes\u00e9g kisz\u00e1m\u00edt\u00e1sa a SET_SKEW G-k\u00f3dal megadott param\u00e9terek alapj\u00e1n t\u00f6rt\u00e9nik.","title":"GET_CURRENT_SKEW"},{"location":"G-Codes.html#calc_measured_skew","text":"CALC_MEASURED_SKEW [AC=<ac_length>] [BD=<bd_length>] [AD=<ad_length>] : Kisz\u00e1m\u00edtja \u00e9s jelenti a ferdes\u00e9get (radi\u00e1nban \u00e9s fokban) egy m\u00e9rt lenyomat alapj\u00e1n. Ez hasznos lehet a nyomtat\u00f3 aktu\u00e1lis ferdes\u00e9g\u00e9nek meghat\u00e1roz\u00e1s\u00e1hoz a korrekci\u00f3 alkalmaz\u00e1sa ut\u00e1n. A korrekci\u00f3 alkalmaz\u00e1sa el\u0151tt is hasznos lehet annak meghat\u00e1roz\u00e1s\u00e1hoz, hogy sz\u00fcks\u00e9ges-e a ferdes\u00e9gkorrekci\u00f3. A ferdes\u00e9g kalibr\u00e1ci\u00f3s objektumok \u00e9s m\u00e9r\u00e9sek r\u00e9szletei\u00e9rt l\u00e1sd a Ferdes\u00e9g korrekci\u00f3 dokumentumot.","title":"CALC_MEASURED_SKEW"},{"location":"G-Codes.html#skew_profile","text":"SKEW_PROFILE [LOAD=<name>] [SAVE=<name>] [REMOVE=<name>] : Profilkezel\u00e9s a skew_correction sz\u00e1m\u00e1ra. A LOAD vissza\u00e1ll\u00edtja a ferdes\u00e9g \u00e1llapot\u00e1t a megadott n\u00e9vnek megfelel\u0151 profilb\u00f3l. A SAVE a megadott n\u00e9vnek megfelel\u0151 profilba menti az aktu\u00e1lis ferdes\u00e9g\u00e1llapotot. A REMOVE t\u00f6rli a megadott n\u00e9vnek megfelel\u0151 profilt a tart\u00f3s mem\u00f3ri\u00e1b\u00f3l. Megjegyzend\u0151, hogy a SAVE vagy REMOVE m\u0171veletek lefuttat\u00e1sa ut\u00e1n a SAVE_CONFIG parancsot kell futtatni, hogy a tart\u00f3s mem\u00f3ri\u00e1ban v\u00e9grehajtott v\u00e1ltoztat\u00e1sok v\u00e9glegesek legyenek.","title":"SKEW_PROFILE"},{"location":"G-Codes.html#smart_effector","text":"T\u00f6bb parancs is el\u00e9rhet\u0151, ha a smart_effector konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van. A Smart Effector param\u00e9tereinek m\u00f3dos\u00edt\u00e1sa el\u0151tt mindenk\u00e9ppen n\u00e9zze meg a Smart Effector hivatalos dokument\u00e1ci\u00f3j\u00e1t a Duet3D Wiki oldalon. Ellen\u0151rizd tov\u00e1bb\u00e1 a szonda kalibr\u00e1ci\u00f3s \u00fatmutat\u00f3 c\u00edm\u0171 dokumenmot is.","title":"[smart_effector]"},{"location":"G-Codes.html#set_smart_effector","text":"SET_SMART_EFFECTOR [SENSITIVITY=<sensitivity>] [ACCEL=<accel>] [RECOVERY_TIME=<time>] : A Smart Effector param\u00e9tereinek be\u00e1ll\u00edt\u00e1sa. Ha SENSITIVITY van megadva, a megfelel\u0151 \u00e9rt\u00e9k a SmartEffector EEPROM-ba \u00edr\u00f3dik ( control_pin biztos\u00edt\u00e1sa sz\u00fcks\u00e9ges). Az elfogadhat\u00f3 <sensitivity> \u00e9rt\u00e9kek 0..255, az alap\u00e9rtelmezett \u00e9rt\u00e9k 50..255. Az alacsonyabb \u00e9rt\u00e9kek kisebb f\u00fav\u00f3ka-\u00e9rintkez\u00e9si er\u0151t ig\u00e9nyelnek a kiold\u00e1shoz (de nagyobb a t\u00e9ves kiold\u00e1s kock\u00e1zata a szond\u00e1z\u00e1s k\u00f6zbeni rezg\u00e9sek miatt), a magasabb \u00e9rt\u00e9kek pedig cs\u00f6kkentik a t\u00e9ves kiold\u00e1st (de nagyobb \u00e9rintkez\u00e9si er\u0151t ig\u00e9nyelnek a kiold\u00e1shoz). Mivel az \u00e9rz\u00e9kenys\u00e9g az EEPROM-ba \u00edr\u00f3dik, a le\u00e1ll\u00edt\u00e1s ut\u00e1n is megmarad, \u00edgy nem kell minden nyomtat\u00f3 ind\u00edt\u00e1sakor konfigur\u00e1lni. ACCEL \u00e9s RECOVERY_TIME lehet\u0151v\u00e9 teszi a megfelel\u0151 param\u00e9terek fut\u00e1sid\u0151ben t\u00f6rt\u00e9n\u0151 fel\u00fclb\u00edr\u00e1l\u00e1s\u00e1t, a Smart Effector konfigur\u00e1ci\u00f3s szakasz tov\u00e1bbi inform\u00e1ci\u00f3kat tartalmaz ezekr\u0151l a param\u00e9terekr\u0151l.","title":"SET_SMART_EFFECTOR"},{"location":"G-Codes.html#reset_smart_effector","text":"RESET_SMART_EFFECTOR : Vissza\u00e1ll\u00edtja a Smart Effector \u00e9rz\u00e9kenys\u00e9g\u00e9t a gy\u00e1ri be\u00e1ll\u00edt\u00e1sokra. Sz\u00fcks\u00e9ges a control_pin megad\u00e1sa a config szakaszban.","title":"RESET_SMART_EFFECTOR"},{"location":"G-Codes.html#stepper_enable","text":"A stepper_enable modul automatikusan bet\u00f6lt\u0151dik.","title":"[stepper_enable]"},{"location":"G-Codes.html#set_stepper_enable","text":"SET_STEPPER_ENABLE STEPPER=<config_name> ENABLE=[0|1] : Csak az adott l\u00e9ptet\u0151motor enged\u00e9lyez\u00e9se vagy letilt\u00e1sa. Ez egy diagnosztikai \u00e9s hibakeres\u00e9si eszk\u00f6z, ez\u00e9rt \u00f3vatosan kell haszn\u00e1lni. Egy l\u00e9ptet\u0151motor letilt\u00e1sa nem \u00e1ll\u00edtja vissza a kezd\u0151pont felv\u00e9teli inform\u00e1ci\u00f3kat. Egy letiltott l\u00e9ptet\u0151motor k\u00e9zi mozgat\u00e1sa azt okozhatja, hogy a g\u00e9p a biztons\u00e1gos hat\u00e1r\u00e9rt\u00e9keken k\u00edv\u00fcl m\u0171k\u00f6dteti a motort. Ez a tengely alkatr\u00e9szeinek, a nyomtat\u00f3fejnek \u00e9s a nyomtat\u00e1si fel\u00fcletnek a k\u00e1rosod\u00e1s\u00e1hoz vezethet.","title":"SET_STEPPER_ENABLE"},{"location":"G-Codes.html#temperature_fan","text":"A k\u00f6vetkez\u0151 parancs akkor \u00e9rhet\u0151 el, ha a temperature_fan konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[temperature_fan]"},{"location":"G-Codes.html#set_temperature_fan_target","text":"SET_TEMPERATURE_FAN_TARGET temperature_fan=<temperature_fan_name> [target=<target_temperature>] [min_speed=<min_speed>] [max_speed=<max_speed>] : A temperature_fan c\u00e9lh\u0151m\u00e9rs\u00e9klet\u00e9nek be\u00e1ll\u00edt\u00e1sa. Ha nincs megadva c\u00e9l\u00e9rt\u00e9k, akkor a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott h\u0151m\u00e9rs\u00e9kletet \u00e1ll\u00edtja be. Ha a sebess\u00e9gek nincsenek megadva, akkor nem t\u00f6rt\u00e9nik v\u00e1ltoz\u00e1s.","title":"SET_TEMPERATURE_FAN_TARGET"},{"location":"G-Codes.html#tmcxxxx","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a tmcXXXXXX konfigur\u00e1ci\u00f3s szakaszok b\u00e1rmelyike enged\u00e9lyezve van.","title":"[tmcXXXX]"},{"location":"G-Codes.html#dump_tmc","text":"DUMP_TMC STEPPER=<name> : Ez a parancs kiolvassa a TMC-motorvez\u00e9rl\u0151 regisztereit \u00e9s jelenti azok \u00e9rt\u00e9keit.","title":"DUMP_TMC"},{"location":"G-Codes.html#init_tmc","text":"INIT_TMC STEPPER=<name> : Ez a parancs inicializ\u00e1lja a TMC regisztereket. A meghajt\u00f3 \u00fajraaktiv\u00e1l\u00e1s\u00e1hoz sz\u00fcks\u00e9ges, ha a chip \u00e1ramell\u00e1t\u00e1sa kikapcsol, majd visszakapcsol.","title":"INIT_TMC"},{"location":"G-Codes.html#set_tmc_current","text":"SET_TMC_CURRENT STEPPER=<name> CURRENT=<amps> HOLDCURRENT=<amps> : Ez a TMC-motorvez\u00e9rl\u0151 fut\u00f3- \u00e9s tart\u00f3\u00e1ram\u00e1t \u00e1ll\u00edtja be. (A HOLDCURRENT nem alkalmazhat\u00f3 a tmc2660 motorvez\u00e9rl\u0151kre).","title":"SET_TMC_CURRENT"},{"location":"G-Codes.html#set_tmc_field","text":"SET_TMC_FIELD STEPPER=<name> FIELD=<field> VALUE=<value> : Ez m\u00f3dos\u00edtja a TMC-motorvez\u00e9rl\u0151 megadott regisztermez\u0151j\u00e9nek \u00e9rt\u00e9k\u00e9t. Ez a parancs csak alacsony szint\u0171 diagnosztik\u00e1ra \u00e9s hibakeres\u00e9sre szolg\u00e1l, mivel a mez\u0151k fut\u00e1s k\u00f6zbeni m\u00f3dos\u00edt\u00e1sa a nyomtat\u00f3 nem k\u00edv\u00e1nt \u00e9s potenci\u00e1lisan vesz\u00e9lyes viselked\u00e9s\u00e9hez vezethet. A tart\u00f3s v\u00e1ltoztat\u00e1sokat ink\u00e1bb a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1nak haszn\u00e1lat\u00e1val kell elv\u00e9gezni. A megadott \u00e9rt\u00e9kek eset\u00e9ben nem t\u00f6rt\u00e9nik ellen\u0151rz\u00e9s.","title":"SET_TMC_FIELD"},{"location":"G-Codes.html#toolhead","text":"A nyomtat\u00f3fejmodul automatikusan bet\u00f6lt\u0151dik.","title":"[toolhead]"},{"location":"G-Codes.html#set_velocity_limit","text":"SET_VELOCITY_LIMIT [VELOCITY=<value>] [ACCEL=<value>] [ACCEL_TO_DECEL=<value>] [SQUARE_CORNER_VELOCITY=<value>] : A nyomtat\u00f3 sebess\u00e9ghat\u00e1rainak m\u00f3dos\u00edt\u00e1sa.","title":"SET_VELOCITY_LIMIT"},{"location":"G-Codes.html#tuning_tower","text":"A tuning_tower modul automatikusan bet\u00f6lt\u0151dik.","title":"[tuning_tower]"},{"location":"G-Codes.html#tuning_tower_1","text":"TUNING_TOWER COMMAND=<command> PARAMETER=<name> START=<value> [SKIP=<value>] [FACTOR=<value> [BAND=<value>]] | [STEP_DELTA=<value> STEP_HEIGHT=<value>] : Egy eszk\u00f6z egy param\u00e9ter be\u00e1ll\u00edt\u00e1s\u00e1ra minden egyes Z magass\u00e1gon a nyomtat\u00e1s sor\u00e1n. Az eszk\u00f6z az adott COMMAND parancsot a megadott PARAMETER \u00e9rt\u00e9khez rendelt Z \u00e9rt\u00e9kkel egy k\u00e9plet szerint v\u00e1ltoz\u00f3 \u00e9rt\u00e9kkel futtatja. Haszn\u00e1ld a FACTOR lehet\u0151s\u00e9get, ha vonalz\u00f3val vagy tol\u00f3m\u00e9r\u0151vel fogja m\u00e9rni az optim\u00e1lis Z magass\u00e1got, vagy STEP_DELTA \u00e9s STEP_HEIGHT , ha a hangol\u00f3torony modellje diszkr\u00e9t \u00e9rt\u00e9kek s\u00e1vjaival rendelkezik, mint ahogy az a h\u0151m\u00e9rs\u00e9klet-tornyokn\u00e1l gyakori. Ha SKIP=<value> van megadva, akkor a hangol\u00e1si folyamat nem kezd\u0151dik meg, am\u00edg a Z magass\u00e1g <value> el\u00e9r\u00e9s\u00e9t, \u00e9s ez alatt az \u00e9rt\u00e9k START \u00e9rt\u00e9kre lesz be\u00e1ll\u00edtva; ebben az esetben az al\u00e1bbi k\u00e9pletekben haszn\u00e1lt z_height val\u00f3j\u00e1ban max(z - skip, 0) . H\u00e1rom lehets\u00e9ges kombin\u00e1ci\u00f3 l\u00e9tezik: FACTOR : Az \u00e9rt\u00e9k factor millim\u00e9terenk\u00e9nt v\u00e1ltozik. Az alkalmazott k\u00e9plet: value = start + factor * z_height . Az optim\u00e1lis Z magass\u00e1got k\u00f6zvetlen\u00fcl a k\u00e9pletbe illesztheti az optim\u00e1lis param\u00e9ter\u00e9rt\u00e9k meghat\u00e1roz\u00e1s\u00e1hoz. FACTOR \u00e9s BAND : Az \u00e9rt\u00e9k \u00e1tlagosan Faktor millim\u00e9terenk\u00e9nt v\u00e1ltozik, de diszkr\u00e9t s\u00e1vokban, ahol a kiigaz\u00edt\u00e1s csak minden BAND millim\u00e9terenk\u00e9nt t\u00f6rt\u00e9nik a Z magass\u00e1gban. A haszn\u00e1lt k\u00e9plet a k\u00f6vetkez\u0151: value= start + factor* ((floor(z_height / band) + .5) * band) . STEP_DELTA \u00e9s STEP_HEIGHT : Az \u00e9rt\u00e9k STEP_DELTA minden STEP_HEIGHT millim\u00e9terrel v\u00e1ltozik. A haszn\u00e1lt k\u00e9plet a k\u00f6vetkez\u0151: value = start + step_delta * floor(z_height / step_height) . Az optim\u00e1lis \u00e9rt\u00e9k meghat\u00e1roz\u00e1s\u00e1hoz egyszer\u0171en megsz\u00e1molhatja a s\u00e1vokat vagy leolvashatja a hangol\u00f3torony \u00e9rt\u00e9keit.","title":"TUNING_TOWER"},{"location":"G-Codes.html#virtual_sdcard","text":"A Klipper t\u00e1mogatja a k\u00f6vetkez\u0151 szabv\u00e1nyos G-k\u00f3d parancsokat, ha a virtual_sdcard konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van: SD-k\u00e1rtya list\u00e1z\u00e1sa: M20 SD-k\u00e1rtya inicializ\u00e1l\u00e1sa: M21 V\u00e1laszd ki az SD f\u00e1jlt: M23 <filename> SD nyomtat\u00e1s ind\u00edt\u00e1sa/folytat\u00e1sa: M24 SD nyomtat\u00e1s sz\u00fcneteltet\u00e9se: M25 SD poz\u00edci\u00f3 be\u00e1ll\u00edt\u00e1sa: M26 S<offset> SD nyomtat\u00e1si st\u00e1tusz jelent\u00e9se: M27 Ezenk\u00edv\u00fcl a k\u00f6vetkez\u0151 kiterjesztett parancsok is el\u00e9rhet\u0151k, ha a \"virtual_sdcard\" konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[virtual_sdcard]"},{"location":"G-Codes.html#sdcard_print_file","text":"SDCARD_PRINT_FILE FILENAME=<filename> : Egy f\u00e1jl bet\u00f6lt\u00e9se \u00e9s az SD-nyomtat\u00e1s elind\u00edt\u00e1sa.","title":"SDCARD_PRINT_FILE"},{"location":"G-Codes.html#sdcard_reset_file","text":"SDCARD_RESET_FILE : A f\u00e1jl elt\u00e1vol\u00edt\u00e1sa \u00e9s az SD \u00e1llapot\u00e1nak t\u00f6rl\u00e9se.","title":"SDCARD_RESET_FILE"},{"location":"G-Codes.html#z_thermal_adjust","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a z_thermal_adjust konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[z_thermal_adjust]"},{"location":"G-Codes.html#set_z_thermal_adjust","text":"SET_Z_THERMAL_ADJUST [ENABLE=<0:1>] [TEMP_COEFF=<value>] [REF_TEMP=<value>] : A Z h\u0151szab\u00e1lyoz\u00e1s enged\u00e9lyez\u00e9se vagy letilt\u00e1sa az ENABLE parancsal. A letilt\u00e1s nem t\u00e1vol\u00edtja el a m\u00e1r alkalmazott be\u00e1ll\u00edt\u00e1st, de befagyasztja az aktu\u00e1lis be\u00e1ll\u00edt\u00e1si \u00e9rt\u00e9ket. Ez megakad\u00e1lyozza a potenci\u00e1lisan nem biztons\u00e1gos Z lefel\u00e9 ir\u00e1nyul\u00f3 mozg\u00e1st. Az \u00fajb\u00f3li enged\u00e9lyez\u00e9s potenci\u00e1lisan felfel\u00e9 ir\u00e1nyul\u00f3 szersz\u00e1mmozg\u00e1st okozhat, mivel a be\u00e1ll\u00edt\u00e1s friss\u00fcl \u00e9s alkalmaz\u00e1sra ker\u00fcl. TEMP_COEFF lehet\u0151v\u00e9 teszi a be\u00e1ll\u00edt\u00e1si h\u0151m\u00e9rs\u00e9kleti egy\u00fctthat\u00f3 fut\u00e1sidej\u0171 hangol\u00e1s\u00e1t (azaz a TEMP_COEFF konfigur\u00e1ci\u00f3s param\u00e9tert). A TEMP_COEFF \u00e9rt\u00e9kek nem ker\u00fclnek ment\u00e9sre a konfigur\u00e1ci\u00f3ba. REF_TEMP manu\u00e1lisan fel\u00fclb\u00edr\u00e1lja a kezd\u0151pont felv\u00e9tel sor\u00e1n be\u00e1ll\u00edtott referencia-h\u0151m\u00e9rs\u00e9kletet (pl. nem szabv\u00e1nyos kezd\u0151pont felv\u00e9teli rutinokn\u00e1l t\u00f6rt\u00e9n\u0151 haszn\u00e1latra) - a kezd\u0151pont felv\u00e9telkor automatikusan vissza\u00e1ll.","title":"SET_Z_THERMAL_ADJUST"},{"location":"G-Codes.html#z_tilt","text":"A k\u00f6vetkez\u0151 parancsok akkor \u00e9rhet\u0151k el, ha a z_tilt konfigur\u00e1ci\u00f3s szakasz enged\u00e9lyezve van.","title":"[z_tilt]"},{"location":"G-Codes.html#z_tilt_adjust","text":"Z_TILT_ADJUST [<probe_parameter>=<value>] : Ez a parancs a konfigur\u00e1ci\u00f3ban megadott pontokat vizsg\u00e1lja meg, majd a d\u0151l\u00e9s kompenz\u00e1l\u00e1sa \u00e9rdek\u00e9ben minden egyes Z l\u00e9ptet\u0151n f\u00fcggetlen be\u00e1ll\u00edt\u00e1sokat v\u00e9gez. Az opcion\u00e1lis m\u00e9r\u00e9si param\u00e9terekkel kapcsolatos r\u00e9szletek\u00e9rt l\u00e1sd a PROBE parancsot.","title":"Z_TILT_ADJUST"},{"location":"Hall_Filament_Width_Sensor.html","text":"Hall nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 \u00b6 Ez a dokumentum az izz\u00f3sz\u00e1lsz\u00e9less\u00e9g-\u00e9rz\u00e9kel\u0151 gazdag\u00e9p modulj\u00e1t \u00edrja le. A gazdamodul fejleszt\u00e9s\u00e9hez haszn\u00e1lt hardver k\u00e9t Hall line\u00e1ris \u00e9rz\u00e9kel\u0151n alapul (p\u00e9ld\u00e1ul ss49e). Az \u00e9rz\u00e9kel\u0151k a testben ellent\u00e9tes oldalon helyezkednek el. M\u0171k\u00f6d\u00e9si elv: k\u00e9t Hall \u00e9rz\u00e9kel\u0151 differenci\u00e1l \u00fczemm\u00f3dban m\u0171k\u00f6dik, a h\u0151m\u00e9rs\u00e9klet cs\u00fasz\u00e1s ugyanaz a szenzorn\u00e1l. Speci\u00e1lis h\u0151m\u00e9rs\u00e9klet kompenz\u00e1ci\u00f3 nem sz\u00fcks\u00e9ges. Terveket a [Thingiverse] oldalon tal\u00e1lja ( https://www.thingiverse.com/thing:4138933 ), az \u00f6sszeszerel\u00e9si vide\u00f3 a [Youtube]-on is el\u00e9rhet\u0151 ( https://www.youtube.com/watch?v=TDO9tME8vp4 ) A Hall nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 haszn\u00e1lat\u00e1hoz olvasd el a Konfigur\u00e1ci\u00f3s hivatkoz\u00e1s \u00e9s a G-k\u00f3d dokument\u00e1ci\u00f3 r\u00e9szt. Hogyan m\u0171k\u00f6dik? \u00b6 Az \u00e9rz\u00e9kel\u0151 k\u00e9t anal\u00f3g kimenetet gener\u00e1l az izz\u00f3sz\u00e1l sz\u00e1m\u00edtott sz\u00e9less\u00e9ge alapj\u00e1n. A kimeneti fesz\u00fclts\u00e9g \u00f6sszege mindig megegyezik az izz\u00f3sz\u00e1l \u00e9rz\u00e9kelt sz\u00e9less\u00e9g\u00e9vel. A gazdamodul figyeli a fesz\u00fclts\u00e9gv\u00e1ltoz\u00e1sokat \u00e9s be\u00e1ll\u00edtja az extrud\u00e1l\u00e1si szorz\u00f3t. Aux2 csatlakoz\u00f3t haszn\u00e1lok a RAMPS k\u00e1rtya anal\u00f3g11 \u00e9s anal\u00f3g12 \u00e9rintkez\u0151in. K\u00fcl\u00f6nb\u00f6z\u0151 t\u0171ket \u00e9s k\u00fcl\u00f6nb\u00f6z\u0151 t\u00e1bl\u00e1kat haszn\u00e1lhat. Men\u00fcv\u00e1ltoz\u00f3k sablonja \u00b6 [menu __main __filament __width_current] type: command enable: {'hall_filament_width_sensor' in printer} name: Dia: {'%.2F' % printer.hall_filament_width_sensor.Diameter} index: 0 [menu __main __filament __raw_width_current] type: command enable: {'hall_filament_width_sensor' in printer} name: Raw: {'%4.0F' % printer.hall_filament_width_sensor.Raw} index: 1 Kalibr\u00e1l\u00e1si elj\u00e1r\u00e1s \u00b6 Az \u00e9rz\u00e9kel\u0151 nyers \u00e9rt\u00e9k\u00e9nek meghat\u00e1roz\u00e1s\u00e1hoz haszn\u00e1lhatod a men\u00fcelemet vagy a QUERY_RAW_FILAMENT_WIDTH parancsot a termin\u00e1lban. Helyezd be az els\u0151 kalibr\u00e1l\u00f3 rudat (1,5 mm-es m\u00e9ret), hogy megkapja az els\u0151 nyers szenzor\u00e9rt\u00e9ket Helyezd be a m\u00e1sodik kalibr\u00e1l\u00f3 rudat (2,0 mm-es m\u00e9ret), hogy megkapja a m\u00e1sodik nyers szenzor\u00e9rt\u00e9k\u00e9t Mentsd a nyers szenzor\u00e9rt\u00e9keket a Raw_dia1 \u00e9s a Raw_dia2 konfigur\u00e1ci\u00f3s param\u00e9terekbe Az \u00e9rz\u00e9kel\u0151 enged\u00e9lyez\u00e9se \u00b6 Alap\u00e9rtelmez\u00e9s szerint az \u00e9rz\u00e9kel\u0151 le van tiltva bekapcsol\u00e1skor. Az \u00e9rz\u00e9kel\u0151 enged\u00e9lyez\u00e9s\u00e9hez add ki az ENABLE_FILAMENT_WIDTH_SENSOR parancsot, vagy \u00e1ll\u00edtsd az enable param\u00e9tert true \u00e9rt\u00e9kre. Napl\u00f3z\u00e1s \u00b6 Alap\u00e9rtelmez\u00e9s szerint az \u00e1tm\u00e9r\u0151 napl\u00f3z\u00e1sa bekapcsol\u00e1skor le van tiltva. Add ki az ENABLE_FILAMENT_WIDTH_LOG parancsot a napl\u00f3z\u00e1s elind\u00edt\u00e1s\u00e1hoz, \u00e9s add ki a DISABLE_FILAMENT_WIDTH_LOG parancsot a napl\u00f3z\u00e1s le\u00e1ll\u00edt\u00e1s\u00e1hoz. A bekapcsol\u00e1skor t\u00f6rt\u00e9n\u0151 napl\u00f3z\u00e1s enged\u00e9lyez\u00e9s\u00e9hez \u00e1ll\u00edtsd a logging param\u00e9tert true` \u00e9rt\u00e9kre. A nyomtat\u00f3sz\u00e1l \u00e1tm\u00e9r\u0151je minden m\u00e9r\u00e9si intervallumban napl\u00f3z\u00e1sra ker\u00fcl (alap\u00e9rtelmez\u00e9s szerint 10 mm).","title":"Hall nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151"},{"location":"Hall_Filament_Width_Sensor.html#hall-nyomtatoszal-szelesseg-erzekelo","text":"Ez a dokumentum az izz\u00f3sz\u00e1lsz\u00e9less\u00e9g-\u00e9rz\u00e9kel\u0151 gazdag\u00e9p modulj\u00e1t \u00edrja le. A gazdamodul fejleszt\u00e9s\u00e9hez haszn\u00e1lt hardver k\u00e9t Hall line\u00e1ris \u00e9rz\u00e9kel\u0151n alapul (p\u00e9ld\u00e1ul ss49e). Az \u00e9rz\u00e9kel\u0151k a testben ellent\u00e9tes oldalon helyezkednek el. M\u0171k\u00f6d\u00e9si elv: k\u00e9t Hall \u00e9rz\u00e9kel\u0151 differenci\u00e1l \u00fczemm\u00f3dban m\u0171k\u00f6dik, a h\u0151m\u00e9rs\u00e9klet cs\u00fasz\u00e1s ugyanaz a szenzorn\u00e1l. Speci\u00e1lis h\u0151m\u00e9rs\u00e9klet kompenz\u00e1ci\u00f3 nem sz\u00fcks\u00e9ges. Terveket a [Thingiverse] oldalon tal\u00e1lja ( https://www.thingiverse.com/thing:4138933 ), az \u00f6sszeszerel\u00e9si vide\u00f3 a [Youtube]-on is el\u00e9rhet\u0151 ( https://www.youtube.com/watch?v=TDO9tME8vp4 ) A Hall nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 haszn\u00e1lat\u00e1hoz olvasd el a Konfigur\u00e1ci\u00f3s hivatkoz\u00e1s \u00e9s a G-k\u00f3d dokument\u00e1ci\u00f3 r\u00e9szt.","title":"Hall nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151"},{"location":"Hall_Filament_Width_Sensor.html#hogyan-mukodik","text":"Az \u00e9rz\u00e9kel\u0151 k\u00e9t anal\u00f3g kimenetet gener\u00e1l az izz\u00f3sz\u00e1l sz\u00e1m\u00edtott sz\u00e9less\u00e9ge alapj\u00e1n. A kimeneti fesz\u00fclts\u00e9g \u00f6sszege mindig megegyezik az izz\u00f3sz\u00e1l \u00e9rz\u00e9kelt sz\u00e9less\u00e9g\u00e9vel. A gazdamodul figyeli a fesz\u00fclts\u00e9gv\u00e1ltoz\u00e1sokat \u00e9s be\u00e1ll\u00edtja az extrud\u00e1l\u00e1si szorz\u00f3t. Aux2 csatlakoz\u00f3t haszn\u00e1lok a RAMPS k\u00e1rtya anal\u00f3g11 \u00e9s anal\u00f3g12 \u00e9rintkez\u0151in. K\u00fcl\u00f6nb\u00f6z\u0151 t\u0171ket \u00e9s k\u00fcl\u00f6nb\u00f6z\u0151 t\u00e1bl\u00e1kat haszn\u00e1lhat.","title":"Hogyan m\u0171k\u00f6dik?"},{"location":"Hall_Filament_Width_Sensor.html#menuvaltozok-sablonja","text":"[menu __main __filament __width_current] type: command enable: {'hall_filament_width_sensor' in printer} name: Dia: {'%.2F' % printer.hall_filament_width_sensor.Diameter} index: 0 [menu __main __filament __raw_width_current] type: command enable: {'hall_filament_width_sensor' in printer} name: Raw: {'%4.0F' % printer.hall_filament_width_sensor.Raw} index: 1","title":"Men\u00fcv\u00e1ltoz\u00f3k sablonja"},{"location":"Hall_Filament_Width_Sensor.html#kalibralasi-eljaras","text":"Az \u00e9rz\u00e9kel\u0151 nyers \u00e9rt\u00e9k\u00e9nek meghat\u00e1roz\u00e1s\u00e1hoz haszn\u00e1lhatod a men\u00fcelemet vagy a QUERY_RAW_FILAMENT_WIDTH parancsot a termin\u00e1lban. Helyezd be az els\u0151 kalibr\u00e1l\u00f3 rudat (1,5 mm-es m\u00e9ret), hogy megkapja az els\u0151 nyers szenzor\u00e9rt\u00e9ket Helyezd be a m\u00e1sodik kalibr\u00e1l\u00f3 rudat (2,0 mm-es m\u00e9ret), hogy megkapja a m\u00e1sodik nyers szenzor\u00e9rt\u00e9k\u00e9t Mentsd a nyers szenzor\u00e9rt\u00e9keket a Raw_dia1 \u00e9s a Raw_dia2 konfigur\u00e1ci\u00f3s param\u00e9terekbe","title":"Kalibr\u00e1l\u00e1si elj\u00e1r\u00e1s"},{"location":"Hall_Filament_Width_Sensor.html#az-erzekelo-engedelyezese","text":"Alap\u00e9rtelmez\u00e9s szerint az \u00e9rz\u00e9kel\u0151 le van tiltva bekapcsol\u00e1skor. Az \u00e9rz\u00e9kel\u0151 enged\u00e9lyez\u00e9s\u00e9hez add ki az ENABLE_FILAMENT_WIDTH_SENSOR parancsot, vagy \u00e1ll\u00edtsd az enable param\u00e9tert true \u00e9rt\u00e9kre.","title":"Az \u00e9rz\u00e9kel\u0151 enged\u00e9lyez\u00e9se"},{"location":"Hall_Filament_Width_Sensor.html#naplozas","text":"Alap\u00e9rtelmez\u00e9s szerint az \u00e1tm\u00e9r\u0151 napl\u00f3z\u00e1sa bekapcsol\u00e1skor le van tiltva. Add ki az ENABLE_FILAMENT_WIDTH_LOG parancsot a napl\u00f3z\u00e1s elind\u00edt\u00e1s\u00e1hoz, \u00e9s add ki a DISABLE_FILAMENT_WIDTH_LOG parancsot a napl\u00f3z\u00e1s le\u00e1ll\u00edt\u00e1s\u00e1hoz. A bekapcsol\u00e1skor t\u00f6rt\u00e9n\u0151 napl\u00f3z\u00e1s enged\u00e9lyez\u00e9s\u00e9hez \u00e1ll\u00edtsd a logging param\u00e9tert true` \u00e9rt\u00e9kre. A nyomtat\u00f3sz\u00e1l \u00e1tm\u00e9r\u0151je minden m\u00e9r\u00e9si intervallumban napl\u00f3z\u00e1sra ker\u00fcl (alap\u00e9rtelmez\u00e9s szerint 10 mm).","title":"Napl\u00f3z\u00e1s"},{"location":"Installation.html","text":"Telep\u00edt\u00e9s \u00b6 Ezek az utas\u00edt\u00e1sok felt\u00e9telezik, hogy a szoftver egy Raspberry Pi sz\u00e1m\u00edt\u00f3g\u00e9pen fut az OctoPrint-el egy\u00fctt. Javasoljuk, hogy egy Raspberry Pi 2, 3 vagy 4-es sz\u00e1m\u00edt\u00f3g\u00e9pet haszn\u00e1lj gazdag\u00e9pk\u00e9nt (m\u00e1s g\u00e9pekre vonatkoz\u00f3an l\u00e1sd a GYIK c\u00edm\u0171 r\u00e9szt). Klipper konfigur\u00e1ci\u00f3s f\u00e1jl beszerz\u00e9se \u00b6 A legt\u00f6bb Klipper be\u00e1ll\u00edt\u00e1st egy \"nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jl\" hat\u00e1rozza meg, amelyet a Raspberry Pi t\u00e1rol. A megfelel\u0151 konfigur\u00e1ci\u00f3s f\u00e1jlt gyakran \u00fagy tal\u00e1lhatjuk meg, hogy a Klipper config k\u00f6nyvt\u00e1r\u00e1ban keres\u00fcnk egy \"printer-\" el\u0151taggal kezd\u0151d\u0151 f\u00e1jlt, amely megfelel a c\u00e9lnyomtat\u00f3nak. A Klipper konfigur\u00e1ci\u00f3s f\u00e1jl tartalmazza a nyomtat\u00f3ra vonatkoz\u00f3 technikai inform\u00e1ci\u00f3kat, amelyekre a telep\u00edt\u00e9s sor\u00e1n sz\u00fcks\u00e9g lesz. Ha nincs megfelel\u0151 nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jl a Klipper config k\u00f6nyvt\u00e1rban, akkor keresse meg a nyomtat\u00f3 gy\u00e1rt\u00f3j\u00e1nak weboldal\u00e1t, hogy van-e megfelel\u0151 Klipper konfigur\u00e1ci\u00f3s f\u00e1jljuk. Ha nem tal\u00e1lja a nyomtat\u00f3hoz tartoz\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlt, de a nyomtat\u00f3 vez\u00e9rl\u0151panel\u00e9nek t\u00edpusa ismert, akkor keressen egy megfelel\u0151 config f\u00e1jlt , amely \"generic-\" el\u0151taggal kezd\u0151dik. Ezekkel a nyomtat\u00f3 vez\u00e9rl\u0151panel p\u00e9ldaf\u00e1jlokkal sikeresen elv\u00e9gezhet\u0151 a kezdeti telep\u00edt\u00e9s, de a nyomtat\u00f3 teljes funkcionalit\u00e1s\u00e1nak el\u00e9r\u00e9s\u00e9hez n\u00e9mi testreszab\u00e1sra lesz sz\u00fcks\u00e9g. Lehet\u0151s\u00e9g van \u00faj nyomtat\u00f3konfigur\u00e1ci\u00f3 null\u00e1r\u00f3l t\u00f6rt\u00e9n\u0151 meghat\u00e1roz\u00e1s\u00e1ra is. Ehhez azonban jelent\u0151s m\u0171szaki ismeretekre van sz\u00fcks\u00e9g a nyomtat\u00f3val \u00e9s annak elektronik\u00e1j\u00e1val kapcsolatban. A legt\u00f6bb felhaszn\u00e1l\u00f3nak aj\u00e1nlott, hogy egy megfelel\u0151 konfigur\u00e1ci\u00f3s f\u00e1jllal kezd. Ha \u00faj, egy\u00e9ni nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlt hoz l\u00e9tre, akkor a legk\u00f6zelebbi p\u00e9ld\u00e1val config f\u00e1jl kezd, \u00e9s tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt haszn\u00e1ld a Klipper konfigur\u00e1ci\u00f3s hivatkoz\u00e1s c\u00edm\u0171 dokumentumot. OS k\u00e9pf\u00e1jl el\u0151k\u00e9sz\u00edt\u00e9se \u00b6 Kezd az OctoPi telep\u00edt\u00e9s\u00e9vel a Raspberry Pi sz\u00e1m\u00edt\u00f3g\u00e9p\u00e9re. Haszn\u00e1ld az OctoPi v0.17.0-s vagy \u00fajabb verzi\u00f3j\u00e1t. A kiad\u00e1sokkal kapcsolatos inform\u00e1ci\u00f3k\u00e9rt tekintsd meg az OctoPi-kiad\u00e1sokat . Ellen\u0151rizni kell, hogy az OctoPi elindul-e, \u00e9s hogy az OctoPrint webszerver m\u0171k\u00f6dik-e. Miut\u00e1n csatlakozott az OctoPrint weboldalhoz, k\u00f6vesse az utas\u00edt\u00e1sokat az OctoPrint 1.4.2-es vagy \u00fajabb verzi\u00f3j\u00e1ra val\u00f3 friss\u00edt\u00e9s\u00e9hez. Az OctoPi telep\u00edt\u00e9se \u00e9s az OctoPrint friss\u00edt\u00e9se ut\u00e1n n\u00e9h\u00e1ny rendszerparancs futtat\u00e1s\u00e1hoz sz\u00fcks\u00e9g lesz az \"SSH\" kapcsolatra a c\u00e9lg\u00e9phez. Ha Linux vagy MacOS asztali sz\u00e1m\u00edt\u00f3g\u00e9pet haszn\u00e1lsz, akkor az \"SSH\" szoftvernek m\u00e1r telep\u00edtve kell lennie a g\u00e9pen. Vannak ingyenes ssh-kliensek m\u00e1s asztali sz\u00e1m\u00edt\u00f3g\u00e9pekhez (pl. PuTTY ). Az SSH seg\u00e9dprogrammal csatlakozz a Raspberry Pi-hez (ssh pi@octopi -- a jelsz\u00f3 \"raspberry\"), \u00e9s futtasd a k\u00f6vetkez\u0151 parancsokat: git clone https://github.com/Klipper3d/klipper ./klipper/scripts/install-octopi.sh A fentiek let\u00f6ltik a Klippert, telep\u00edtenek n\u00e9h\u00e1ny rendszer\u00f6sszetev\u0151t, be\u00e1ll\u00edtj\u00e1k a Klippert, hogy a rendszer indul\u00e1sakor fusson, \u00e9s elind\u00edtja a Klipper gazdag\u00e9p szoftver\u00e9t. Internetkapcsolatra lesz sz\u00fcks\u00e9g, \u00e9s n\u00e9h\u00e1ny percet is ig\u00e9nybe vehet. A mikrokontroller fel\u00e9p\u00edt\u00e9se \u00e9s \u00e9get\u00e9se \u00b6 A mikrokontroller k\u00f3dj\u00e1nak leford\u00edt\u00e1s\u00e1hoz futtassa ezeket a parancsokat a Raspberry Pi-n: cd ~/klipper/ make menuconfig A nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jl tetej\u00e9n tal\u00e1lhat\u00f3 megjegyz\u00e9seknek le kell \u00edrniuk a be\u00e1ll\u00edt\u00e1sokat, amelyeket a \"make menuconfig\" sor\u00e1n kell be\u00e1ll\u00edtani. Nyissa meg a f\u00e1jlt egy webb\u00f6ng\u00e9sz\u0151ben vagy sz\u00f6vegszerkeszt\u0151ben, \u00e9s keresse meg ezeket az utas\u00edt\u00e1sokat a f\u00e1jl teteje k\u00f6zel\u00e9ben. Miut\u00e1n a megfelel\u0151 \"menuconfig\" be\u00e1ll\u00edt\u00e1sokat elv\u00e9gezte, nyomja meg a \"Q\" gombot a kil\u00e9p\u00e9shez, majd az \"Y\" gombot a ment\u00e9shez. Ezut\u00e1n futtassa: make Ha a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jl tetej\u00e9n tal\u00e1lhat\u00f3 megjegyz\u00e9sek egy\u00e9ni l\u00e9p\u00e9seket \u00edrnak le a \"flash\" v\u00e9gs\u0151 k\u00e9pnek a nyomtat\u00f3 vez\u00e9rl\u0151panel\u00e9re t\u00f6rt\u00e9n\u0151 \u00e9get\u00e9s\u00e9hez, akkor k\u00f6vesd ezeket a l\u00e9p\u00e9seket, majd folytasd az OctoPrint konfigur\u00e1l\u00e1sa l\u00e9p\u00e9sekkel. Ellenkez\u0151 esetben a k\u00f6vetkez\u0151 l\u00e9p\u00e9seket gyakran haszn\u00e1lj\u00e1k a nyomtat\u00f3 vez\u00e9rl\u0151lapj\u00e1nak \"flash\" \u00e9get\u00e9s\u00e9re. El\u0151sz\u00f6r meg kell hat\u00e1rozni a mikrokontrollerhez csatlakoztatott soros portot. Futtassa a k\u00f6vetkez\u0151ket: ls /dev/serial/by-id/* Valami hasonl\u00f3t kell kapnia az al\u00e1bbiakhoz: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 Gyakori, hogy minden nyomtat\u00f3nak saj\u00e1t egyedi soros port neve van. Ezt az egyedi nevet haszn\u00e1ljuk a mikrokontroller \u00e9get\u00e9s\u00e9re. Lehets\u00e9ges, hogy a fenti kimenetben t\u00f6bb sor is tal\u00e1lhat\u00f3 \u2013 ha igen, v\u00e1laszd ki a mikrovez\u00e9rl\u0151nek megfelel\u0151 sort (tov\u00e1bbi inform\u00e1ci\u00f3\u00e9rt l\u00e1sd a GYIK r\u00e9szt). Az \u00e1ltal\u00e1nos mikrokontrollerekn\u00e9l a k\u00f3dot valami hasonl\u00f3val lehet \u00e9getni: sudo service klipper stop make flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 sudo service klipper start Felt\u00e9tlen\u00fcl friss\u00edtse a FLASH_DEVICE eszk\u00f6zt a nyomtat\u00f3 egyedi soros portj\u00e1nak nev\u00e9vel. Amikor el\u0151sz\u00f6r \u00e9getsz, gy\u0151z\u0151dj meg arr\u00f3l, hogy az OctoPrint nincs k\u00f6zvetlen\u00fcl csatlakoztatva a nyomtat\u00f3hoz (az OctoPrint weboldalon a \"Kapcsolat\" r\u00e9szben kattints a \"Kapcsolat bont\u00e1sa\" gombra). Az OctoPrint be\u00e1ll\u00edt\u00e1sa a Klipper haszn\u00e1lat\u00e1hoz \u00b6 Az OctoPrint webszervert konfigur\u00e1lni kell, hogy kommunik\u00e1ljon a Klipper gazdag\u00e9p szoftver\u00e9vel. Egy webb\u00f6ng\u00e9sz\u0151vel jelentkezz be az OctoPrint weboldalra, majd konfigur\u00e1ld a k\u00f6vetkez\u0151 elemeket: L\u00e9pj a Be\u00e1ll\u00edt\u00e1sok lapra (a csavarkulcs ikon az oldal tetej\u00e9n). A \"Tov\u00e1bbi soros portok\" r\u00e9szben a \"Soros kapcsolat\" alatt add hozz\u00e1 a \"/tmp/printer\" elemet. Ezut\u00e1n kattints a \"Ment\u00e9s\" gombra. L\u00e9pj \u00fajra a Be\u00e1ll\u00edt\u00e1sok f\u00fclre, \u00e9s a \u201eSoros kapcsolat\u201d alatt m\u00f3dos\u00edtsd a \u201eSoros port\u201d be\u00e1ll\u00edt\u00e1st \u201e/tmp/printer\u201d-re. A Be\u00e1ll\u00edt\u00e1sok lapon l\u00e9pj a \u201eViselked\u00e9s\u201d allapra, \u00e9s v\u00e1laszd a \u201eFolyamatban l\u00e9v\u0151 nyomtat\u00e1s t\u00f6rl\u00e9se, de tov\u00e1bbra is csatlakozva maradjon a nyomtat\u00f3hoz\u201d lehet\u0151s\u00e9get. Kattints a \"Ment\u00e9s\" gombra. A f\u0151oldalon, a \u201eKapcsolat\u201d r\u00e9szben (az oldal bal fels\u0151 sark\u00e1ban) gy\u0151z\u0151dj meg arr\u00f3l, hogy a \u201eSoros Port\u201d be\u00e1ll\u00edt\u00e1sa \u201e/tmp/printer\u201d, majd kattints a \u201eCsatlakoz\u00e1s\u201d gombra. (Ha a \u201e/tmp/printer\u201d nem el\u00e9rhet\u0151, pr\u00f3b\u00e1ld meg \u00fajrat\u00f6lteni az oldalt.) A csatlakoz\u00e1s ut\u00e1n l\u00e9pj a \"Terminal\" f\u00fclre, \u00e9s \u00edrd be a \"status\" kifejez\u00e9st (id\u00e9z\u0151jelek n\u00e9lk\u00fcl) a parancsbeviteli mez\u0151be, majd kattints a \"K\u00fcld\u00e9s\" gombra. A termin\u00e1lablak val\u00f3sz\u00edn\u0171leg hib\u00e1t jelez a konfigur\u00e1ci\u00f3s f\u00e1jl megnyit\u00e1sakor \u2013 ez azt jelenti, hogy az OctoPrint sikeresen kommunik\u00e1l a Klipperrel. Tov\u00e1bb a k\u00f6vetkez\u0151 r\u00e9szhez. A Klipper be\u00e1ll\u00edt\u00e1sa \u00b6 A k\u00f6vetkez\u0151 l\u00e9p\u00e9s a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jl \u00e1tm\u00e1sol\u00e1sa a Raspberry Pi-re. Vitathatatlanul a Klipper konfigur\u00e1ci\u00f3s f\u00e1jl be\u00e1ll\u00edt\u00e1s\u00e1nak legegyszer\u0171bb m\u00f3dja egy olyan asztali szerkeszt\u0151 haszn\u00e1lata, amely t\u00e1mogatja a f\u00e1jlok szerkeszt\u00e9s\u00e9t az \"scp\" \u00e9s/vagy \"sftp\" protokollokon kereszt\u00fcl. Vannak szabadon el\u00e9rhet\u0151 eszk\u00f6z\u00f6k, amelyek t\u00e1mogatj\u00e1k ezt (pl. Notepad++, WinSCP \u00e9s Cyberduck). T\u00f6ltse be a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1t a szerkeszt\u0151programba, majd mentsd el egy \"printer.cfg\" nev\u0171 f\u00e1jlk\u00e9nt a pi felhaszn\u00e1l\u00f3 home k\u00f6nyvt\u00e1r\u00e1ba (pl. /home/pi/printer.cfg). Alternat\u00edvak\u00e9nt a f\u00e1jlt k\u00f6zvetlen\u00fcl a Raspberry Pi-n is lehet m\u00e1solni \u00e9s szerkeszteni SSH-n kereszt\u00fcl. Ez valahogy \u00edgy n\u00e9zhet ki (\u00fcgyelj\u00fcnk arra, hogy a parancsot friss\u00edts\u00fck a megfelel\u0151 nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jln\u00e9vvel): cp ~/klipper/config/example-cartesian.cfg ~/printer.cfg nano ~/printer.cfg Gyakori, hogy minden nyomtat\u00f3nak saj\u00e1t egyedi neve van a mikrokontroller sz\u00e1m\u00e1ra. A n\u00e9v a Klipper \u00e9get\u00e9se ut\u00e1n megv\u00e1ltozhat, ez\u00e9rt futtassa \u00fajra ezeket a l\u00e9p\u00e9seket, m\u00e9g akkor is, ha m\u00e1r az \u00e9get\u00e9skor elv\u00e9gezte \u0151ket. Futtat\u00e1s: ls /dev/serial/by-id/* Valami hasonl\u00f3t kell kapnia az al\u00e1bbiakhoz: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 Ezut\u00e1n friss\u00edtse a konfigur\u00e1ci\u00f3s f\u00e1jlt az egyedi n\u00e9vvel. P\u00e9ld\u00e1ul friss\u00edtse az [mcu] r\u00e9szt, hogy valami hasonl\u00f3t kapjon: [mcu] serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 A f\u00e1jl l\u00e9trehoz\u00e1sa \u00e9s szerkeszt\u00e9se ut\u00e1n az OctoPrint webes termin\u00e1lj\u00e1n ki kell adni egy \"\u00fajraind\u00edt\u00e1s\" parancsot a konfigur\u00e1ci\u00f3 bet\u00f6lt\u00e9s\u00e9hez. A \"status\" parancs azt jelenti, hogy a nyomtat\u00f3 k\u00e9szen \u00e1ll, ha a Klipper config f\u00e1jl sikeresen beolvas\u00e1sra ker\u00fclt, \u00e9s a mikrokontroller sikeresen meg lett tal\u00e1lva \u00e9s konfigur\u00e1lva. A nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1nak testreszab\u00e1sakor nem ritka, hogy a Klipper konfigur\u00e1ci\u00f3s hib\u00e1t jelez. Ha hiba l\u00e9p fel, v\u00e9gezd el a sz\u00fcks\u00e9ges jav\u00edt\u00e1sokat a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1ban, \u00e9s add ki az \"\u00fajraind\u00edt\u00e1s\" parancsot, am\u00edg az \"\u00e1llapot\" nem jelzi, hogy a nyomtat\u00f3 k\u00e9szen \u00e1ll. A Klipper az OctoPrint termin\u00e1llapon kereszt\u00fcl jelenti a hiba\u00fczeneteket. A \"status\" paranccsal a hiba\u00fczenetek \u00fajra jelenthet\u0151k. A Klipper alap\u00e9rtelmezett ind\u00edt\u00f3szkriptje egy napl\u00f3t is elhelyez a /tmp/klippy.log f\u00e1jlban, amely r\u00e9szletesebb inform\u00e1ci\u00f3kat tartalmaz. Miut\u00e1n a Klipper jelenti, hogy a nyomtat\u00f3 k\u00e9szen \u00e1ll, folytasd a konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9s c\u00edm\u0171 dokumentumal, hogy elv\u00e9gezz n\u00e9h\u00e1ny alapvet\u0151 ellen\u0151rz\u00e9st a config f\u00e1jlban l\u00e9v\u0151 defin\u00edci\u00f3kon. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a f\u0151 dokument\u00e1ci\u00f3s hivatkoz\u00e1s c\u00edm\u0171 r\u00e9sz.","title":"Telep\u00edt\u00e9s"},{"location":"Installation.html#telepites","text":"Ezek az utas\u00edt\u00e1sok felt\u00e9telezik, hogy a szoftver egy Raspberry Pi sz\u00e1m\u00edt\u00f3g\u00e9pen fut az OctoPrint-el egy\u00fctt. Javasoljuk, hogy egy Raspberry Pi 2, 3 vagy 4-es sz\u00e1m\u00edt\u00f3g\u00e9pet haszn\u00e1lj gazdag\u00e9pk\u00e9nt (m\u00e1s g\u00e9pekre vonatkoz\u00f3an l\u00e1sd a GYIK c\u00edm\u0171 r\u00e9szt).","title":"Telep\u00edt\u00e9s"},{"location":"Installation.html#klipper-konfiguracios-fajl-beszerzese","text":"A legt\u00f6bb Klipper be\u00e1ll\u00edt\u00e1st egy \"nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jl\" hat\u00e1rozza meg, amelyet a Raspberry Pi t\u00e1rol. A megfelel\u0151 konfigur\u00e1ci\u00f3s f\u00e1jlt gyakran \u00fagy tal\u00e1lhatjuk meg, hogy a Klipper config k\u00f6nyvt\u00e1r\u00e1ban keres\u00fcnk egy \"printer-\" el\u0151taggal kezd\u0151d\u0151 f\u00e1jlt, amely megfelel a c\u00e9lnyomtat\u00f3nak. A Klipper konfigur\u00e1ci\u00f3s f\u00e1jl tartalmazza a nyomtat\u00f3ra vonatkoz\u00f3 technikai inform\u00e1ci\u00f3kat, amelyekre a telep\u00edt\u00e9s sor\u00e1n sz\u00fcks\u00e9g lesz. Ha nincs megfelel\u0151 nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jl a Klipper config k\u00f6nyvt\u00e1rban, akkor keresse meg a nyomtat\u00f3 gy\u00e1rt\u00f3j\u00e1nak weboldal\u00e1t, hogy van-e megfelel\u0151 Klipper konfigur\u00e1ci\u00f3s f\u00e1jljuk. Ha nem tal\u00e1lja a nyomtat\u00f3hoz tartoz\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlt, de a nyomtat\u00f3 vez\u00e9rl\u0151panel\u00e9nek t\u00edpusa ismert, akkor keressen egy megfelel\u0151 config f\u00e1jlt , amely \"generic-\" el\u0151taggal kezd\u0151dik. Ezekkel a nyomtat\u00f3 vez\u00e9rl\u0151panel p\u00e9ldaf\u00e1jlokkal sikeresen elv\u00e9gezhet\u0151 a kezdeti telep\u00edt\u00e9s, de a nyomtat\u00f3 teljes funkcionalit\u00e1s\u00e1nak el\u00e9r\u00e9s\u00e9hez n\u00e9mi testreszab\u00e1sra lesz sz\u00fcks\u00e9g. Lehet\u0151s\u00e9g van \u00faj nyomtat\u00f3konfigur\u00e1ci\u00f3 null\u00e1r\u00f3l t\u00f6rt\u00e9n\u0151 meghat\u00e1roz\u00e1s\u00e1ra is. Ehhez azonban jelent\u0151s m\u0171szaki ismeretekre van sz\u00fcks\u00e9g a nyomtat\u00f3val \u00e9s annak elektronik\u00e1j\u00e1val kapcsolatban. A legt\u00f6bb felhaszn\u00e1l\u00f3nak aj\u00e1nlott, hogy egy megfelel\u0151 konfigur\u00e1ci\u00f3s f\u00e1jllal kezd. Ha \u00faj, egy\u00e9ni nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlt hoz l\u00e9tre, akkor a legk\u00f6zelebbi p\u00e9ld\u00e1val config f\u00e1jl kezd, \u00e9s tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt haszn\u00e1ld a Klipper konfigur\u00e1ci\u00f3s hivatkoz\u00e1s c\u00edm\u0171 dokumentumot.","title":"Klipper konfigur\u00e1ci\u00f3s f\u00e1jl beszerz\u00e9se"},{"location":"Installation.html#os-kepfajl-elokeszitese","text":"Kezd az OctoPi telep\u00edt\u00e9s\u00e9vel a Raspberry Pi sz\u00e1m\u00edt\u00f3g\u00e9p\u00e9re. Haszn\u00e1ld az OctoPi v0.17.0-s vagy \u00fajabb verzi\u00f3j\u00e1t. A kiad\u00e1sokkal kapcsolatos inform\u00e1ci\u00f3k\u00e9rt tekintsd meg az OctoPi-kiad\u00e1sokat . Ellen\u0151rizni kell, hogy az OctoPi elindul-e, \u00e9s hogy az OctoPrint webszerver m\u0171k\u00f6dik-e. Miut\u00e1n csatlakozott az OctoPrint weboldalhoz, k\u00f6vesse az utas\u00edt\u00e1sokat az OctoPrint 1.4.2-es vagy \u00fajabb verzi\u00f3j\u00e1ra val\u00f3 friss\u00edt\u00e9s\u00e9hez. Az OctoPi telep\u00edt\u00e9se \u00e9s az OctoPrint friss\u00edt\u00e9se ut\u00e1n n\u00e9h\u00e1ny rendszerparancs futtat\u00e1s\u00e1hoz sz\u00fcks\u00e9g lesz az \"SSH\" kapcsolatra a c\u00e9lg\u00e9phez. Ha Linux vagy MacOS asztali sz\u00e1m\u00edt\u00f3g\u00e9pet haszn\u00e1lsz, akkor az \"SSH\" szoftvernek m\u00e1r telep\u00edtve kell lennie a g\u00e9pen. Vannak ingyenes ssh-kliensek m\u00e1s asztali sz\u00e1m\u00edt\u00f3g\u00e9pekhez (pl. PuTTY ). Az SSH seg\u00e9dprogrammal csatlakozz a Raspberry Pi-hez (ssh pi@octopi -- a jelsz\u00f3 \"raspberry\"), \u00e9s futtasd a k\u00f6vetkez\u0151 parancsokat: git clone https://github.com/Klipper3d/klipper ./klipper/scripts/install-octopi.sh A fentiek let\u00f6ltik a Klippert, telep\u00edtenek n\u00e9h\u00e1ny rendszer\u00f6sszetev\u0151t, be\u00e1ll\u00edtj\u00e1k a Klippert, hogy a rendszer indul\u00e1sakor fusson, \u00e9s elind\u00edtja a Klipper gazdag\u00e9p szoftver\u00e9t. Internetkapcsolatra lesz sz\u00fcks\u00e9g, \u00e9s n\u00e9h\u00e1ny percet is ig\u00e9nybe vehet.","title":"OS k\u00e9pf\u00e1jl el\u0151k\u00e9sz\u00edt\u00e9se"},{"location":"Installation.html#a-mikrokontroller-felepitese-es-egetese","text":"A mikrokontroller k\u00f3dj\u00e1nak leford\u00edt\u00e1s\u00e1hoz futtassa ezeket a parancsokat a Raspberry Pi-n: cd ~/klipper/ make menuconfig A nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jl tetej\u00e9n tal\u00e1lhat\u00f3 megjegyz\u00e9seknek le kell \u00edrniuk a be\u00e1ll\u00edt\u00e1sokat, amelyeket a \"make menuconfig\" sor\u00e1n kell be\u00e1ll\u00edtani. Nyissa meg a f\u00e1jlt egy webb\u00f6ng\u00e9sz\u0151ben vagy sz\u00f6vegszerkeszt\u0151ben, \u00e9s keresse meg ezeket az utas\u00edt\u00e1sokat a f\u00e1jl teteje k\u00f6zel\u00e9ben. Miut\u00e1n a megfelel\u0151 \"menuconfig\" be\u00e1ll\u00edt\u00e1sokat elv\u00e9gezte, nyomja meg a \"Q\" gombot a kil\u00e9p\u00e9shez, majd az \"Y\" gombot a ment\u00e9shez. Ezut\u00e1n futtassa: make Ha a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jl tetej\u00e9n tal\u00e1lhat\u00f3 megjegyz\u00e9sek egy\u00e9ni l\u00e9p\u00e9seket \u00edrnak le a \"flash\" v\u00e9gs\u0151 k\u00e9pnek a nyomtat\u00f3 vez\u00e9rl\u0151panel\u00e9re t\u00f6rt\u00e9n\u0151 \u00e9get\u00e9s\u00e9hez, akkor k\u00f6vesd ezeket a l\u00e9p\u00e9seket, majd folytasd az OctoPrint konfigur\u00e1l\u00e1sa l\u00e9p\u00e9sekkel. Ellenkez\u0151 esetben a k\u00f6vetkez\u0151 l\u00e9p\u00e9seket gyakran haszn\u00e1lj\u00e1k a nyomtat\u00f3 vez\u00e9rl\u0151lapj\u00e1nak \"flash\" \u00e9get\u00e9s\u00e9re. El\u0151sz\u00f6r meg kell hat\u00e1rozni a mikrokontrollerhez csatlakoztatott soros portot. Futtassa a k\u00f6vetkez\u0151ket: ls /dev/serial/by-id/* Valami hasonl\u00f3t kell kapnia az al\u00e1bbiakhoz: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 Gyakori, hogy minden nyomtat\u00f3nak saj\u00e1t egyedi soros port neve van. Ezt az egyedi nevet haszn\u00e1ljuk a mikrokontroller \u00e9get\u00e9s\u00e9re. Lehets\u00e9ges, hogy a fenti kimenetben t\u00f6bb sor is tal\u00e1lhat\u00f3 \u2013 ha igen, v\u00e1laszd ki a mikrovez\u00e9rl\u0151nek megfelel\u0151 sort (tov\u00e1bbi inform\u00e1ci\u00f3\u00e9rt l\u00e1sd a GYIK r\u00e9szt). Az \u00e1ltal\u00e1nos mikrokontrollerekn\u00e9l a k\u00f3dot valami hasonl\u00f3val lehet \u00e9getni: sudo service klipper stop make flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 sudo service klipper start Felt\u00e9tlen\u00fcl friss\u00edtse a FLASH_DEVICE eszk\u00f6zt a nyomtat\u00f3 egyedi soros portj\u00e1nak nev\u00e9vel. Amikor el\u0151sz\u00f6r \u00e9getsz, gy\u0151z\u0151dj meg arr\u00f3l, hogy az OctoPrint nincs k\u00f6zvetlen\u00fcl csatlakoztatva a nyomtat\u00f3hoz (az OctoPrint weboldalon a \"Kapcsolat\" r\u00e9szben kattints a \"Kapcsolat bont\u00e1sa\" gombra).","title":"A mikrokontroller fel\u00e9p\u00edt\u00e9se \u00e9s \u00e9get\u00e9se"},{"location":"Installation.html#az-octoprint-beallitasa-a-klipper-hasznalatahoz","text":"Az OctoPrint webszervert konfigur\u00e1lni kell, hogy kommunik\u00e1ljon a Klipper gazdag\u00e9p szoftver\u00e9vel. Egy webb\u00f6ng\u00e9sz\u0151vel jelentkezz be az OctoPrint weboldalra, majd konfigur\u00e1ld a k\u00f6vetkez\u0151 elemeket: L\u00e9pj a Be\u00e1ll\u00edt\u00e1sok lapra (a csavarkulcs ikon az oldal tetej\u00e9n). A \"Tov\u00e1bbi soros portok\" r\u00e9szben a \"Soros kapcsolat\" alatt add hozz\u00e1 a \"/tmp/printer\" elemet. Ezut\u00e1n kattints a \"Ment\u00e9s\" gombra. L\u00e9pj \u00fajra a Be\u00e1ll\u00edt\u00e1sok f\u00fclre, \u00e9s a \u201eSoros kapcsolat\u201d alatt m\u00f3dos\u00edtsd a \u201eSoros port\u201d be\u00e1ll\u00edt\u00e1st \u201e/tmp/printer\u201d-re. A Be\u00e1ll\u00edt\u00e1sok lapon l\u00e9pj a \u201eViselked\u00e9s\u201d allapra, \u00e9s v\u00e1laszd a \u201eFolyamatban l\u00e9v\u0151 nyomtat\u00e1s t\u00f6rl\u00e9se, de tov\u00e1bbra is csatlakozva maradjon a nyomtat\u00f3hoz\u201d lehet\u0151s\u00e9get. Kattints a \"Ment\u00e9s\" gombra. A f\u0151oldalon, a \u201eKapcsolat\u201d r\u00e9szben (az oldal bal fels\u0151 sark\u00e1ban) gy\u0151z\u0151dj meg arr\u00f3l, hogy a \u201eSoros Port\u201d be\u00e1ll\u00edt\u00e1sa \u201e/tmp/printer\u201d, majd kattints a \u201eCsatlakoz\u00e1s\u201d gombra. (Ha a \u201e/tmp/printer\u201d nem el\u00e9rhet\u0151, pr\u00f3b\u00e1ld meg \u00fajrat\u00f6lteni az oldalt.) A csatlakoz\u00e1s ut\u00e1n l\u00e9pj a \"Terminal\" f\u00fclre, \u00e9s \u00edrd be a \"status\" kifejez\u00e9st (id\u00e9z\u0151jelek n\u00e9lk\u00fcl) a parancsbeviteli mez\u0151be, majd kattints a \"K\u00fcld\u00e9s\" gombra. A termin\u00e1lablak val\u00f3sz\u00edn\u0171leg hib\u00e1t jelez a konfigur\u00e1ci\u00f3s f\u00e1jl megnyit\u00e1sakor \u2013 ez azt jelenti, hogy az OctoPrint sikeresen kommunik\u00e1l a Klipperrel. Tov\u00e1bb a k\u00f6vetkez\u0151 r\u00e9szhez.","title":"Az OctoPrint be\u00e1ll\u00edt\u00e1sa a Klipper haszn\u00e1lat\u00e1hoz"},{"location":"Installation.html#a-klipper-beallitasa","text":"A k\u00f6vetkez\u0151 l\u00e9p\u00e9s a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jl \u00e1tm\u00e1sol\u00e1sa a Raspberry Pi-re. Vitathatatlanul a Klipper konfigur\u00e1ci\u00f3s f\u00e1jl be\u00e1ll\u00edt\u00e1s\u00e1nak legegyszer\u0171bb m\u00f3dja egy olyan asztali szerkeszt\u0151 haszn\u00e1lata, amely t\u00e1mogatja a f\u00e1jlok szerkeszt\u00e9s\u00e9t az \"scp\" \u00e9s/vagy \"sftp\" protokollokon kereszt\u00fcl. Vannak szabadon el\u00e9rhet\u0151 eszk\u00f6z\u00f6k, amelyek t\u00e1mogatj\u00e1k ezt (pl. Notepad++, WinSCP \u00e9s Cyberduck). T\u00f6ltse be a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1t a szerkeszt\u0151programba, majd mentsd el egy \"printer.cfg\" nev\u0171 f\u00e1jlk\u00e9nt a pi felhaszn\u00e1l\u00f3 home k\u00f6nyvt\u00e1r\u00e1ba (pl. /home/pi/printer.cfg). Alternat\u00edvak\u00e9nt a f\u00e1jlt k\u00f6zvetlen\u00fcl a Raspberry Pi-n is lehet m\u00e1solni \u00e9s szerkeszteni SSH-n kereszt\u00fcl. Ez valahogy \u00edgy n\u00e9zhet ki (\u00fcgyelj\u00fcnk arra, hogy a parancsot friss\u00edts\u00fck a megfelel\u0151 nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jln\u00e9vvel): cp ~/klipper/config/example-cartesian.cfg ~/printer.cfg nano ~/printer.cfg Gyakori, hogy minden nyomtat\u00f3nak saj\u00e1t egyedi neve van a mikrokontroller sz\u00e1m\u00e1ra. A n\u00e9v a Klipper \u00e9get\u00e9se ut\u00e1n megv\u00e1ltozhat, ez\u00e9rt futtassa \u00fajra ezeket a l\u00e9p\u00e9seket, m\u00e9g akkor is, ha m\u00e1r az \u00e9get\u00e9skor elv\u00e9gezte \u0151ket. Futtat\u00e1s: ls /dev/serial/by-id/* Valami hasonl\u00f3t kell kapnia az al\u00e1bbiakhoz: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 Ezut\u00e1n friss\u00edtse a konfigur\u00e1ci\u00f3s f\u00e1jlt az egyedi n\u00e9vvel. P\u00e9ld\u00e1ul friss\u00edtse az [mcu] r\u00e9szt, hogy valami hasonl\u00f3t kapjon: [mcu] serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 A f\u00e1jl l\u00e9trehoz\u00e1sa \u00e9s szerkeszt\u00e9se ut\u00e1n az OctoPrint webes termin\u00e1lj\u00e1n ki kell adni egy \"\u00fajraind\u00edt\u00e1s\" parancsot a konfigur\u00e1ci\u00f3 bet\u00f6lt\u00e9s\u00e9hez. A \"status\" parancs azt jelenti, hogy a nyomtat\u00f3 k\u00e9szen \u00e1ll, ha a Klipper config f\u00e1jl sikeresen beolvas\u00e1sra ker\u00fclt, \u00e9s a mikrokontroller sikeresen meg lett tal\u00e1lva \u00e9s konfigur\u00e1lva. A nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1nak testreszab\u00e1sakor nem ritka, hogy a Klipper konfigur\u00e1ci\u00f3s hib\u00e1t jelez. Ha hiba l\u00e9p fel, v\u00e9gezd el a sz\u00fcks\u00e9ges jav\u00edt\u00e1sokat a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1ban, \u00e9s add ki az \"\u00fajraind\u00edt\u00e1s\" parancsot, am\u00edg az \"\u00e1llapot\" nem jelzi, hogy a nyomtat\u00f3 k\u00e9szen \u00e1ll. A Klipper az OctoPrint termin\u00e1llapon kereszt\u00fcl jelenti a hiba\u00fczeneteket. A \"status\" paranccsal a hiba\u00fczenetek \u00fajra jelenthet\u0151k. A Klipper alap\u00e9rtelmezett ind\u00edt\u00f3szkriptje egy napl\u00f3t is elhelyez a /tmp/klippy.log f\u00e1jlban, amely r\u00e9szletesebb inform\u00e1ci\u00f3kat tartalmaz. Miut\u00e1n a Klipper jelenti, hogy a nyomtat\u00f3 k\u00e9szen \u00e1ll, folytasd a konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9s c\u00edm\u0171 dokumentumal, hogy elv\u00e9gezz n\u00e9h\u00e1ny alapvet\u0151 ellen\u0151rz\u00e9st a config f\u00e1jlban l\u00e9v\u0151 defin\u00edci\u00f3kon. Tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a f\u0151 dokument\u00e1ci\u00f3s hivatkoz\u00e1s c\u00edm\u0171 r\u00e9sz.","title":"A Klipper be\u00e1ll\u00edt\u00e1sa"},{"location":"Kinematics.html","text":"Kinematika \u00b6 Ez a dokumentum \u00e1ttekint\u00e9st ny\u00fajt arr\u00f3l, hogy a Klipper hogyan val\u00f3s\u00edtja meg a robot mozg\u00e1s\u00e1t (a kinematika ). A tartalom mind a Klipper szoftveren dolgozni k\u00edv\u00e1n\u00f3 fejleszt\u0151k, mind a g\u00e9p\u00fck mechanik\u00e1j\u00e1nak jobb meg\u00e9rt\u00e9se ir\u00e1nt \u00e9rdekl\u0151d\u0151 felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra \u00e9rdekes lehet. Gyorsul\u00e1s \u00b6 A Klipper \u00e1lland\u00f3 gyors\u00edt\u00e1si rendszert alkalmaz, amikor a nyomtat\u00f3fej sebess\u00e9get v\u00e1ltoztat. A sebess\u00e9g fokozatosan v\u00e1ltozik az \u00faj sebess\u00e9gre, ahelyett, hogy hirtelen r\u00e1ngat\u00f3zna. A Klipper mindig kik\u00e9nyszer\u00edti a gyorsul\u00e1st a nyomtat\u00f3fej \u00e9s a nyomtat\u00e1s k\u00f6z\u00f6tt. Az extruderb\u0151l kil\u00e9p\u0151 sz\u00e1l meglehet\u0151sen t\u00f6r\u00e9keny lehet. A gyors r\u00e1ng\u00e1sok \u00e9s/vagy az extruder \u00e1raml\u00e1s\u00e1nak v\u00e1ltoz\u00e1sa rossz min\u0151s\u00e9ghez \u00e9s rossz tapad\u00e1shoz vezet. M\u00e9g ha nem is extrud\u00e1l, ha a nyomtat\u00f3fej a nyomtat\u00e1ssal egy magass\u00e1gban van, akkor a fej gyors r\u00e1ng\u00e1sa a nemr\u00e9g letapadt anyag felv\u00e1l\u00e1s\u00e1t okozhatja. A nyomtat\u00f3fej sebess\u00e9gv\u00e1ltoztat\u00e1s\u00e1nak korl\u00e1toz\u00e1sa (a nyomtat\u00e1shoz k\u00e9pest) cs\u00f6kkenti a nyomat felv\u00e1l\u00e1s\u00e1nak kock\u00e1zat\u00e1t. Fontos a gyorsul\u00e1s korl\u00e1toz\u00e1sa is, hogy a l\u00e9ptet\u0151motorok ne ugorjanak, \u00e9s ne terhelj\u00e9k t\u00falzottan a g\u00e9pet. A Klipper a nyomtat\u00f3fej gyorsul\u00e1s\u00e1nak korl\u00e1toz\u00e1s\u00e1val korl\u00e1tozza az egyes l\u00e9ptet\u0151motorok nyomat\u00e9k\u00e1t. A nyomtat\u00f3fej gyorsul\u00e1s\u00e1nak kik\u00e9nyszer\u00edt\u00e9se term\u00e9szetesen a nyomtat\u00f3fejet mozgat\u00f3 l\u00e9ptet\u0151motorok nyomat\u00e9k\u00e1t is korl\u00e1tozza (a ford\u00edtottja nem mindig igaz). A Klipper \u00e1lland\u00f3 gyorsul\u00e1st val\u00f3s\u00edt meg. Az \u00e1lland\u00f3 gyorsul\u00e1s legfontosabb k\u00e9plete a k\u00f6vetkez\u0151: velocity(time) = start_velocity + accel*time Trap\u00e9z gener\u00e1tor \u00b6 A Klipper hagyom\u00e1nyos \"trap\u00e9zgener\u00e1tort\" haszn\u00e1l az egyes mozg\u00e1sok modellez\u00e9s\u00e9re. Minden l\u00e9p\u00e9snek van kezd\u0151sebess\u00e9ge, \u00e1lland\u00f3 gyors\u00edt\u00e1s mellett utaz\u00f3sebess\u00e9gre gyorsul, \u00e1lland\u00f3 sebess\u00e9ggel utazik, majd \u00e1lland\u00f3 gyors\u00edt\u00e1ssal lelass\u00edt a v\u00e9gsebess\u00e9gre . Ezt \"trap\u00e9zgener\u00e1tornak\" nevezik, mert a mozg\u00e1s sebess\u00e9gdiagramja \u00fagy n\u00e9z ki, mint egy trap\u00e9z. Az utaz\u00f3sebess\u00e9g mindig nagyobb vagy egyenl\u0151 a kezd\u0151- \u00e9s a v\u00e9gsebess\u00e9ggel. A gyorsul\u00e1si f\u00e1zis lehet nulla id\u0151tartam\u00fa (ha a kezd\u0151sebess\u00e9g egyenl\u0151 az utaz\u00f3sebess\u00e9ggel), az utaz\u00e1si f\u00e1zis lehet nulla id\u0151tartam\u00fa (ha a mozg\u00e1s a gyorsul\u00e1s ut\u00e1n azonnal lassulni kezd), \u00e9s/vagy a lassul\u00e1si f\u00e1zis lehet nulla id\u0151tartam\u00fa (ha a v\u00e9gsebess\u00e9g egyenl\u0151 az utaz\u00f3sebess\u00e9ggel). El\u0151retekint\u0151 \u00b6 A \"look-ahead\" rendszert a kanyarsebess\u00e9gek meghat\u00e1roz\u00e1s\u00e1ra haszn\u00e1lj\u00e1k a mozg\u00e1sok k\u00f6z\u00f6tt. N\u00e9zz\u00fck meg a k\u00f6vetkez\u0151 k\u00e9t mozg\u00e1st, amelyek egy X-Y-s\u00edkon helyezkednek el: A fenti helyzetben lehets\u00e9ges az els\u0151 l\u00e9p\u00e9s ut\u00e1n teljesen lelass\u00edtani, majd a k\u00f6vetkez\u0151 l\u00e9p\u00e9s kezdet\u00e9n teljesen felgyors\u00edtani, de ez nem ide\u00e1lis, mivel ez a sok gyors\u00edt\u00e1s \u00e9s lass\u00edt\u00e1s jelent\u0151sen megn\u00f6veln\u00e9 a nyomtat\u00e1si id\u0151t, \u00e9s az anyag\u00e1raml\u00e1s gyakori v\u00e1ltoz\u00e1sa rossz nyomtat\u00e1si min\u0151s\u00e9get eredm\u00e9nyezne. Ennek megold\u00e1s\u00e1ra a \"look-ahead\" mechanizmus t\u00f6bb bej\u00f6v\u0151 mozg\u00e1st sorba \u00e1ll\u00edt, \u00e9s elemzi a mozg\u00e1sok k\u00f6z\u00f6tti sz\u00f6geket, hogy meghat\u00e1rozzon egy \u00e9sszer\u0171 sebess\u00e9get, amelyet a k\u00e9t mozg\u00e1s k\u00f6z\u00f6tti \"keresztez\u0151d\u00e9s\" alatt lehet el\u00e9rni. Ha a k\u00f6vetkez\u0151 l\u00e9p\u00e9s k\u00f6zel azonos ir\u00e1nyba mutat, akkor a fejnek csak egy kicsit kell lass\u00edtania (ha egy\u00e1ltal\u00e1n kell). Ha azonban a k\u00f6vetkez\u0151 mozdulat hegyessz\u00f6get z\u00e1r be (a fej a k\u00f6vetkez\u0151 mozdulatn\u00e1l majdnem ford\u00edtott ir\u00e1nyban fog haladni), akkor csak egy kis csom\u00f3ponti sebess\u00e9g a megengedett. A csom\u00f3ponti sebess\u00e9geket a \"k\u00f6zel\u00edt\u0151 centripet\u00e1lis gyorsul\u00e1s\" seg\u00edts\u00e9g\u00e9vel hat\u00e1rozzuk meg. Legjobb a szerz\u0151 \u00e1ltal le\u00edrt . A Klipperben azonban a csom\u00f3ponti sebess\u00e9gek \u00fagy ker\u00fclnek be\u00e1ll\u00edt\u00e1sra, hogy megadjuk a 90\u00b0-os sarok k\u00edv\u00e1nt sebess\u00e9g\u00e9t (a \"n\u00e9gyzetes saroksebess\u00e9g\"), \u00e9s a t\u00f6bbi sz\u00f6gre vonatkoz\u00f3 csom\u00f3ponti sebess\u00e9geket ebb\u0151l vezetj\u00fck le. Kulcsk\u00e9plet az el\u0151retekint\u00e9shez: end_velocity^2 = start_velocity^2 + 2*accel*move_distance Sim\u00edtott el\u0151retekint\u00e9s \u00b6 A Klipper egy olyan mechanizmust is megval\u00f3s\u00edt, amely kisim\u00edtja a r\u00f6vid \"cikkcakk\" mozg\u00e1sokat. Tekints\u00fck a k\u00f6vetkez\u0151 mozg\u00e1sokat: A fentiekben a gyors\u00edt\u00e1sr\u00f3l lass\u00edt\u00e1sra t\u00f6rt\u00e9n\u0151 gyakori v\u00e1lt\u00e1s a g\u00e9p rezg\u00e9s\u00e9t okozhatja, ami a g\u00e9pet terheli, \u00e9s n\u00f6veli a zajt. Ennek cs\u00f6kkent\u00e9se \u00e9rdek\u00e9ben a Klipper mind a rendszeres mozg\u00e1si gyorsul\u00e1st, mind pedig a virtu\u00e1lis \"gyors\u00edt\u00e1sr\u00f3l lass\u00edt\u00e1sra\" sebess\u00e9get k\u00f6veti. Ezzel a rendszerrel a nyomtat\u00f3 mozg\u00e1s\u00e1nak kiegyenl\u00edt\u00e9se \u00e9rdek\u00e9ben a r\u00f6vid \"cikkcakkos\" mozg\u00e1sok cs\u00facssebess\u00e9ge korl\u00e1tozott: Konkr\u00e9tan, a k\u00f3d kisz\u00e1m\u00edtja, hogy mi lenne az egyes mozg\u00e1sok sebess\u00e9ge, ha az adott virtu\u00e1lis \"gyorsul\u00e1s-lassul\u00e1s\" sebess\u00e9gre korl\u00e1toz\u00f3dna (alap\u00e9rtelmez\u00e9s szerint a norm\u00e1l gyorsul\u00e1si sebess\u00e9g fele). A fenti k\u00e9pen a szaggatott sz\u00fcrke vonalak ezt a virtu\u00e1lis gyorsul\u00e1si sebess\u00e9get jel\u00f6lik az els\u0151 mozdulatn\u00e1l. Ha egy mozg\u00e1s nem tudja el\u00e9rni a teljes utaz\u00f3sebess\u00e9g\u00e9t ezzel a virtu\u00e1lis gyorsul\u00e1si sebess\u00e9ggel, akkor a v\u00e9gsebess\u00e9ge arra a maxim\u00e1lis sebess\u00e9gre cs\u00f6kken, amelyet ezzel a virtu\u00e1lis gyorsul\u00e1si sebess\u00e9ggel el\u00e9rhetne. A legt\u00f6bb mozg\u00e1s eset\u00e9ben ez a hat\u00e1r\u00e9rt\u00e9k a mozg\u00e1s megl\u00e9v\u0151 hat\u00e1r\u00e9rt\u00e9kein\u00e9l vagy azok felett lesz, \u00e9s nem v\u00e1ltozik a viselked\u00e9s. R\u00f6vid cikk-cakk mozg\u00e1sok eset\u00e9n azonban ez a hat\u00e1r cs\u00f6kkenti a cs\u00facssebess\u00e9get. Vedd figyelembe, hogy ez nem v\u00e1ltoztatja meg a t\u00e9nyleges gyorsul\u00e1st a mozg\u00e1son bel\u00fcl. A mozg\u00e1s tov\u00e1bbra is a norm\u00e1l gyorsul\u00e1si s\u00e9m\u00e1t haszn\u00e1lja a be\u00e1ll\u00edtott cs\u00facssebess\u00e9gig. L\u00e9p\u00e9sek gener\u00e1l\u00e1sa \u00b6 Miut\u00e1n a look-ahead folyamat befejez\u0151d\u00f6tt, a nyomtat\u00f3fej mozg\u00e1sa az adott mozg\u00e1shoz teljes m\u00e9rt\u00e9kben ismert (id\u0151, kezd\u0151 poz\u00edci\u00f3, v\u00e9gpoz\u00edci\u00f3, sebess\u00e9g minden egyes ponton), \u00e9s lehets\u00e9ges a l\u00e9p\u00e9sid\u0151k gener\u00e1l\u00e1sa a mozg\u00e1shoz. Ez a folyamat a Klipper k\u00f3dban a \"kinematikai oszt\u00e1lyokon\" bel\u00fcl t\u00f6rt\u00e9nik. Ezeken a kinematikai oszt\u00e1lyokon k\u00edv\u00fcl minden millim\u00e9terben, m\u00e1sodpercben \u00e9s cartesian koordin\u00e1ta t\u00e9rben k\u00f6vethet\u0151. A kinematikai oszt\u00e1lyok feladata, hogy ebb\u0151l az \u00e1ltal\u00e1nos koordin\u00e1ta-rendszerb\u0151l az adott nyomtat\u00f3 hardveres saj\u00e1toss\u00e1gaihoz igaz\u00edts\u00e1k. A Klipper egy iterat\u00edv megold\u00f3t haszn\u00e1l az egyes l\u00e9ptet\u0151k l\u00e9p\u00e9sidej\u00e9nek l\u00e9trehoz\u00e1s\u00e1hoz. A k\u00f3d tartalmazza a k\u00e9pleteket a fej ide\u00e1lis cartesian koordin\u00e1t\u00e1inak kisz\u00e1m\u00edt\u00e1s\u00e1hoz minden egyes id\u0151pontban, \u00e9s rendelkezik a kinematikai k\u00e9pletekkel az ide\u00e1lis stepper poz\u00edci\u00f3k kisz\u00e1m\u00edt\u00e1s\u00e1hoz ezen cartesian koordin\u00e1t\u00e1k alapj\u00e1n. Ezekkel a k\u00e9pletekkel a Klipper meg tudja hat\u00e1rozni azt az ide\u00e1lis id\u0151t, amikor a steppernek az egyes l\u00e9p\u00e9shelyzetekben kell lennie. Az adott l\u00e9p\u00e9seket ezut\u00e1n ezekre a kisz\u00e1m\u00edtott id\u0151pontokra \u00fctemezi. A legfontosabb k\u00e9plet annak meghat\u00e1roz\u00e1s\u00e1ra, hogy egy mozg\u00e1snak milyen messzire kell eljutnia \u00e1lland\u00f3 gyorsul\u00e1s mellett, a k\u00f6vetkez\u0151: move_distance = (start_velocity + .5 * accel * move_time) * move_time \u00e9s az \u00e1lland\u00f3 sebess\u00e9g\u0171 mozg\u00e1sra vonatkoz\u00f3 kulcsk\u00e9plet a k\u00f6vetkez\u0151: move_distance = cruise_velocity * move_time A mozg\u00e1sok cartesian koordin\u00e1t\u00e1inak meghat\u00e1roz\u00e1s\u00e1ra szolg\u00e1l\u00f3 kulcsk\u00e9pletek a k\u00f6vetkez\u0151k: cartesian_x_position = start_x + move_distance * total_x_movement / total_movement cartesian_y_position = start_y + move_distance * total_y_movement / total_movement cartesian_z_position = start_z + move_distance * total_z_movement / total_movement Cartesian robotok \u00b6 A legegyszer\u0171bb eset a l\u00e9p\u00e9sek gener\u00e1l\u00e1sa a kartot\u00e9knyomtat\u00f3khoz. Az egyes tengelyeken t\u00f6rt\u00e9n\u0151 mozg\u00e1s k\u00f6zvetlen\u00fcl kapcsol\u00f3dik a cartesian t\u00e9rben t\u00f6rt\u00e9n\u0151 mozg\u00e1shoz. Kulcsk\u00e9pletek: stepper_x_position = cartesian_x_position stepper_y_position = cartesian_y_position stepper_z_position = cartesian_z_position CoreXY robotok \u00b6 A l\u00e9p\u00e9sek gener\u00e1l\u00e1sa egy CoreXY g\u00e9pen csak egy kicsit bonyolultabb, mint az egyszer\u0171 cartesian robotok\u00e9. A legfontosabb k\u00e9pletek a k\u00f6vetkez\u0151k: stepper_a_position = cartesian_x_position + cartesian_y_position stepper_b_position = cartesian_x_position - cartesian_y_position stepper_z_position = cartesian_z_position Delta robotok \u00b6 A delta roboton t\u00f6rt\u00e9n\u0151 l\u00e9p\u00e9sgener\u00e1l\u00e1s a Pitagorasz-t\u00e9telen alapul: stepper_position = (sqrt(arm_length^2 - (cartesian_x_position - tower_x_position)^2 - (cartesian_y_position - tower_y_position)^2) + cartesian_z_position) L\u00e9ptet\u0151motor gyorsul\u00e1si hat\u00e1r\u00e9rt\u00e9kei \u00b6 A delta kinematik\u00e1val lehets\u00e9ges, hogy egy cartesian t\u00e9rben gyorsul\u00f3 mozg\u00e1s nagyobb gyorsul\u00e1st ig\u00e9nyel egy adott l\u00e9ptet\u0151motoron, mint a mozg\u00e1s gyorsul\u00e1sa. Ez akkor fordulhat el\u0151, ha egy mozgatott kar ink\u00e1bb v\u00edzszintes, mint f\u00fcgg\u0151leges, \u00e9s a mozg\u00e1s vonala az adott l\u00e9ptet\u0151 torony k\u00f6zel\u00e9ben halad el. B\u00e1r ezekhez a mozg\u00e1sokhoz nagyobb l\u00e9ptet\u0151motor-gyorsul\u00e1sra lehet sz\u00fcks\u00e9g, mint a nyomtat\u00f3 maxim\u00e1lisan konfigur\u00e1lt mozg\u00e1sgyorsul\u00e1sa, az adott l\u00e9ptet\u0151 \u00e1ltal mozgatott effekt\u00edv t\u00f6meg kisebb lesz. \u00cdgy a nagyobb l\u00e9ptet\u0151 gyorsul\u00e1s nem eredm\u00e9nyez jelent\u0151sen nagyobb l\u00e9ptet\u0151 nyomat\u00e9kot, \u00e9s ez\u00e9rt \u00e1rtalmatlannak tekinthet\u0151. A sz\u00e9ls\u0151s\u00e9ges esetek elker\u00fcl\u00e9se \u00e9rdek\u00e9ben azonban a Klipper a nyomtat\u00f3 konfigur\u00e1lt maxim\u00e1lis mozg\u00e1si gyorsul\u00e1s\u00e1nak h\u00e1romszoros\u00e1ban hat\u00e1rozza meg a l\u00e9ptet\u0151 gyorsul\u00e1s\u00e1nak fels\u0151 hat\u00e1r\u00e1t. (Hasonl\u00f3k\u00e9ppen, a l\u00e9ptet\u0151 maxim\u00e1lis sebess\u00e9ge a maxim\u00e1lis mozgat\u00e1si sebess\u00e9g h\u00e1romszoros\u00e1ra van korl\u00e1tozva). E korl\u00e1t betart\u00e1sa \u00e9rdek\u00e9ben az \u00e9p\u00edt\u00e9si ter\u00fclet sz\u00e9ls\u0151 sz\u00e9l\u00e9n (ahol a l\u00e9ptet\u0151 kar k\u00f6zel v\u00edzszintes lehet) a mozg\u00e1sok maxim\u00e1lis gyorsul\u00e1sa \u00e9s sebess\u00e9ge alacsonyabb lesz. Extruder kinematika \u00b6 A Klipper az extruder mozg\u00e1s\u00e1t saj\u00e1t kinematikai oszt\u00e1ly\u00e1ban val\u00f3s\u00edtja meg. Mivel a nyomtat\u00f3fej mozg\u00e1s\u00e1nak id\u0151z\u00edt\u00e9se \u00e9s sebess\u00e9ge minden egyes mozg\u00e1sn\u00e1l teljesen ismert, az extruder l\u00e9p\u00e9sidej\u00e9t a nyomtat\u00f3fej mozg\u00e1s\u00e1nak l\u00e9p\u00e9sid\u0151-sz\u00e1m\u00edt\u00e1sait\u00f3l f\u00fcggetlen\u00fcl lehet kisz\u00e1m\u00edtani. Az extruder alapmozg\u00e1sa egyszer\u0171en kisz\u00e1m\u00edthat\u00f3. A l\u00e9p\u00e9sid\u0151 gener\u00e1l\u00e1sa ugyanazokat a k\u00e9pleteket haszn\u00e1lja, mint a cartesian g\u00e9pek: stepper_position = requested_e_position Nyom\u00e1s el\u0151tol\u00e1s \u00b6 A k\u00eds\u00e9rletek azt mutatt\u00e1k, hogy az extruder modellez\u00e9s\u00e9t az alap extruder k\u00e9pleten t\u00fal is lehet jav\u00edtani. Ide\u00e1lis esetben az extrud\u00e1l\u00e1si mozg\u00e1s el\u0151rehaladt\u00e1val a mozg\u00e1s minden egyes pontj\u00e1n ugyanannyi sz\u00e1lnak kell lerak\u00f3dnia, \u00e9s a mozg\u00e1s ut\u00e1n nem szabad extrud\u00e1l\u00f3dnia. Sajnos gyakran el\u0151fordul, hogy az alap extrud\u00e1l\u00e1si k\u00e9pletek miatt az extrud\u00e1l\u00e1si mozg\u00e1sok kezdet\u00e9n t\u00fal kev\u00e9s sz\u00e1l ker\u00fcl ki az extruderb\u0151l, \u00e9s az extrud\u00e1l\u00e1s befejez\u00e9se ut\u00e1n t\u00f6bbletsz\u00e1l ker\u00fcl extrud\u00e1l\u00e1sra. Ezt gyakran nevezik \"ooze\"-nak. A \"nyom\u00e1s el\u0151tol\u00e1s\" rendszer ezt \u00fagy pr\u00f3b\u00e1lja figyelembe venni, hogy az extruderhez egy m\u00e1sik modellt haszn\u00e1l. Ahelyett, hogy naivan azt hinn\u00e9, hogy az extruderbe t\u00e1pl\u00e1lt minden egyes mm^3 sz\u00e1lat az extruderb\u0151l azonnal ugyanannyi mm^3 fog kil\u00e9pni, a rendszer egy nyom\u00e1son alapul\u00f3 modellt haszn\u00e1l. A nyom\u00e1s n\u0151, amikor a sz\u00e1l az extruderbe ker\u00fcl (mint a Hooke t\u00f6rv\u00e9ny szerint), \u00e9s az extrud\u00e1l\u00e1shoz sz\u00fcks\u00e9ges nyom\u00e1st a f\u00fav\u00f3ka ny\u00edl\u00e1s\u00e1n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 \u00e1raml\u00e1si sebess\u00e9g uralja (mint a Poiseuille t\u00f6rv\u00e9ny szerint). A kulcsgondolat az, hogy a sz\u00e1l, a nyom\u00e1s \u00e9s az \u00e1raml\u00e1si sebess\u00e9g k\u00f6z\u00f6tti kapcsolat egy line\u00e1ris egy\u00fctthat\u00f3val modellezhet\u0151: pa_position = nominal_position + pressure_advance_coefficient * nominal_velocity A nyom\u00e1s el\u0151tol\u00e1s egy\u00fctthat\u00f3 meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd a nyom\u00e1s el\u0151tol\u00e1s dokumentumot. Az alapvet\u0151 nyom\u00e1s el\u0151tol\u00e1s k\u00e9plete az extruder motorj\u00e1nak hirtelen sebess\u00e9gv\u00e1ltoz\u00e1sait okozhatja. A Klipper ennek elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az extruder mozg\u00e1s\u00e1nak \"sim\u00edt\u00e1s\u00e1t\" alkalmazza. A fenti grafikon egy p\u00e9ld\u00e1t mutat k\u00e9t olyan extrud\u00e1l\u00e1si mozg\u00e1sra, amelyek k\u00f6z\u00f6tt a kanyarsebess\u00e9g nem nulla. Vedd figyelembe, hogy a nyom\u00e1s el\u0151tol\u00e1s rendszer miatt a gyors\u00edt\u00e1s sor\u00e1n tov\u00e1bbi sz\u00e1lak ker\u00fclnek az extruderbe. Min\u00e9l nagyobb a k\u00edv\u00e1nt sz\u00e1l\u00e1raml\u00e1si sebess\u00e9g, ann\u00e1l t\u00f6bb sz\u00e1lat kell betolni a gyors\u00edt\u00e1s sor\u00e1n a nyom\u00e1s miatt. A fej lass\u00edt\u00e1sa sor\u00e1n a plusz sz\u00e1l visszah\u00faz\u00f3dik (az extruder sebess\u00e9ge negat\u00edv lesz). A \"sim\u00edt\u00e1s\" az extruder poz\u00edci\u00f3j\u00e1nak s\u00falyozott \u00e1tlag\u00e1val t\u00f6rt\u00e9nik egy kis id\u0151intervallumban (ahogyan azt a pressure_advance_smooth_time konfigur\u00e1ci\u00f3s param\u00e9ter megadja). Ez az \u00e1tlagol\u00e1s t\u00f6bb G-k\u00f3d mozg\u00e1st is \u00e1tfoghat. Figyelje meg, hogy az extrudermotor az els\u0151 extrudermozg\u00e1s n\u00e9vleges kezdete el\u0151tt elkezd mozogni, \u00e9s az utols\u00f3 extrudermozg\u00e1s n\u00e9vleges v\u00e9ge ut\u00e1n is mozogni fog. Kulcsk\u00e9plet a \"sim\u00edtott nyom\u00e1s el\u0151tol\u00e1shoz\": smooth_pa_position(t) = ( definitive_integral(pa_position(x) * (smooth_time/2 - abs(t - x)) * dx, from=t-smooth_time/2, to=t+smooth_time/2) / (smooth_time/2)^2 )","title":"Kinematika"},{"location":"Kinematics.html#kinematika","text":"Ez a dokumentum \u00e1ttekint\u00e9st ny\u00fajt arr\u00f3l, hogy a Klipper hogyan val\u00f3s\u00edtja meg a robot mozg\u00e1s\u00e1t (a kinematika ). A tartalom mind a Klipper szoftveren dolgozni k\u00edv\u00e1n\u00f3 fejleszt\u0151k, mind a g\u00e9p\u00fck mechanik\u00e1j\u00e1nak jobb meg\u00e9rt\u00e9se ir\u00e1nt \u00e9rdekl\u0151d\u0151 felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra \u00e9rdekes lehet.","title":"Kinematika"},{"location":"Kinematics.html#gyorsulas","text":"A Klipper \u00e1lland\u00f3 gyors\u00edt\u00e1si rendszert alkalmaz, amikor a nyomtat\u00f3fej sebess\u00e9get v\u00e1ltoztat. A sebess\u00e9g fokozatosan v\u00e1ltozik az \u00faj sebess\u00e9gre, ahelyett, hogy hirtelen r\u00e1ngat\u00f3zna. A Klipper mindig kik\u00e9nyszer\u00edti a gyorsul\u00e1st a nyomtat\u00f3fej \u00e9s a nyomtat\u00e1s k\u00f6z\u00f6tt. Az extruderb\u0151l kil\u00e9p\u0151 sz\u00e1l meglehet\u0151sen t\u00f6r\u00e9keny lehet. A gyors r\u00e1ng\u00e1sok \u00e9s/vagy az extruder \u00e1raml\u00e1s\u00e1nak v\u00e1ltoz\u00e1sa rossz min\u0151s\u00e9ghez \u00e9s rossz tapad\u00e1shoz vezet. M\u00e9g ha nem is extrud\u00e1l, ha a nyomtat\u00f3fej a nyomtat\u00e1ssal egy magass\u00e1gban van, akkor a fej gyors r\u00e1ng\u00e1sa a nemr\u00e9g letapadt anyag felv\u00e1l\u00e1s\u00e1t okozhatja. A nyomtat\u00f3fej sebess\u00e9gv\u00e1ltoztat\u00e1s\u00e1nak korl\u00e1toz\u00e1sa (a nyomtat\u00e1shoz k\u00e9pest) cs\u00f6kkenti a nyomat felv\u00e1l\u00e1s\u00e1nak kock\u00e1zat\u00e1t. Fontos a gyorsul\u00e1s korl\u00e1toz\u00e1sa is, hogy a l\u00e9ptet\u0151motorok ne ugorjanak, \u00e9s ne terhelj\u00e9k t\u00falzottan a g\u00e9pet. A Klipper a nyomtat\u00f3fej gyorsul\u00e1s\u00e1nak korl\u00e1toz\u00e1s\u00e1val korl\u00e1tozza az egyes l\u00e9ptet\u0151motorok nyomat\u00e9k\u00e1t. A nyomtat\u00f3fej gyorsul\u00e1s\u00e1nak kik\u00e9nyszer\u00edt\u00e9se term\u00e9szetesen a nyomtat\u00f3fejet mozgat\u00f3 l\u00e9ptet\u0151motorok nyomat\u00e9k\u00e1t is korl\u00e1tozza (a ford\u00edtottja nem mindig igaz). A Klipper \u00e1lland\u00f3 gyorsul\u00e1st val\u00f3s\u00edt meg. Az \u00e1lland\u00f3 gyorsul\u00e1s legfontosabb k\u00e9plete a k\u00f6vetkez\u0151: velocity(time) = start_velocity + accel*time","title":"Gyorsul\u00e1s"},{"location":"Kinematics.html#trapez-generator","text":"A Klipper hagyom\u00e1nyos \"trap\u00e9zgener\u00e1tort\" haszn\u00e1l az egyes mozg\u00e1sok modellez\u00e9s\u00e9re. Minden l\u00e9p\u00e9snek van kezd\u0151sebess\u00e9ge, \u00e1lland\u00f3 gyors\u00edt\u00e1s mellett utaz\u00f3sebess\u00e9gre gyorsul, \u00e1lland\u00f3 sebess\u00e9ggel utazik, majd \u00e1lland\u00f3 gyors\u00edt\u00e1ssal lelass\u00edt a v\u00e9gsebess\u00e9gre . Ezt \"trap\u00e9zgener\u00e1tornak\" nevezik, mert a mozg\u00e1s sebess\u00e9gdiagramja \u00fagy n\u00e9z ki, mint egy trap\u00e9z. Az utaz\u00f3sebess\u00e9g mindig nagyobb vagy egyenl\u0151 a kezd\u0151- \u00e9s a v\u00e9gsebess\u00e9ggel. A gyorsul\u00e1si f\u00e1zis lehet nulla id\u0151tartam\u00fa (ha a kezd\u0151sebess\u00e9g egyenl\u0151 az utaz\u00f3sebess\u00e9ggel), az utaz\u00e1si f\u00e1zis lehet nulla id\u0151tartam\u00fa (ha a mozg\u00e1s a gyorsul\u00e1s ut\u00e1n azonnal lassulni kezd), \u00e9s/vagy a lassul\u00e1si f\u00e1zis lehet nulla id\u0151tartam\u00fa (ha a v\u00e9gsebess\u00e9g egyenl\u0151 az utaz\u00f3sebess\u00e9ggel).","title":"Trap\u00e9z gener\u00e1tor"},{"location":"Kinematics.html#eloretekinto","text":"A \"look-ahead\" rendszert a kanyarsebess\u00e9gek meghat\u00e1roz\u00e1s\u00e1ra haszn\u00e1lj\u00e1k a mozg\u00e1sok k\u00f6z\u00f6tt. N\u00e9zz\u00fck meg a k\u00f6vetkez\u0151 k\u00e9t mozg\u00e1st, amelyek egy X-Y-s\u00edkon helyezkednek el: A fenti helyzetben lehets\u00e9ges az els\u0151 l\u00e9p\u00e9s ut\u00e1n teljesen lelass\u00edtani, majd a k\u00f6vetkez\u0151 l\u00e9p\u00e9s kezdet\u00e9n teljesen felgyors\u00edtani, de ez nem ide\u00e1lis, mivel ez a sok gyors\u00edt\u00e1s \u00e9s lass\u00edt\u00e1s jelent\u0151sen megn\u00f6veln\u00e9 a nyomtat\u00e1si id\u0151t, \u00e9s az anyag\u00e1raml\u00e1s gyakori v\u00e1ltoz\u00e1sa rossz nyomtat\u00e1si min\u0151s\u00e9get eredm\u00e9nyezne. Ennek megold\u00e1s\u00e1ra a \"look-ahead\" mechanizmus t\u00f6bb bej\u00f6v\u0151 mozg\u00e1st sorba \u00e1ll\u00edt, \u00e9s elemzi a mozg\u00e1sok k\u00f6z\u00f6tti sz\u00f6geket, hogy meghat\u00e1rozzon egy \u00e9sszer\u0171 sebess\u00e9get, amelyet a k\u00e9t mozg\u00e1s k\u00f6z\u00f6tti \"keresztez\u0151d\u00e9s\" alatt lehet el\u00e9rni. Ha a k\u00f6vetkez\u0151 l\u00e9p\u00e9s k\u00f6zel azonos ir\u00e1nyba mutat, akkor a fejnek csak egy kicsit kell lass\u00edtania (ha egy\u00e1ltal\u00e1n kell). Ha azonban a k\u00f6vetkez\u0151 mozdulat hegyessz\u00f6get z\u00e1r be (a fej a k\u00f6vetkez\u0151 mozdulatn\u00e1l majdnem ford\u00edtott ir\u00e1nyban fog haladni), akkor csak egy kis csom\u00f3ponti sebess\u00e9g a megengedett. A csom\u00f3ponti sebess\u00e9geket a \"k\u00f6zel\u00edt\u0151 centripet\u00e1lis gyorsul\u00e1s\" seg\u00edts\u00e9g\u00e9vel hat\u00e1rozzuk meg. Legjobb a szerz\u0151 \u00e1ltal le\u00edrt . A Klipperben azonban a csom\u00f3ponti sebess\u00e9gek \u00fagy ker\u00fclnek be\u00e1ll\u00edt\u00e1sra, hogy megadjuk a 90\u00b0-os sarok k\u00edv\u00e1nt sebess\u00e9g\u00e9t (a \"n\u00e9gyzetes saroksebess\u00e9g\"), \u00e9s a t\u00f6bbi sz\u00f6gre vonatkoz\u00f3 csom\u00f3ponti sebess\u00e9geket ebb\u0151l vezetj\u00fck le. Kulcsk\u00e9plet az el\u0151retekint\u00e9shez: end_velocity^2 = start_velocity^2 + 2*accel*move_distance","title":"El\u0151retekint\u0151"},{"location":"Kinematics.html#simitott-eloretekintes","text":"A Klipper egy olyan mechanizmust is megval\u00f3s\u00edt, amely kisim\u00edtja a r\u00f6vid \"cikkcakk\" mozg\u00e1sokat. Tekints\u00fck a k\u00f6vetkez\u0151 mozg\u00e1sokat: A fentiekben a gyors\u00edt\u00e1sr\u00f3l lass\u00edt\u00e1sra t\u00f6rt\u00e9n\u0151 gyakori v\u00e1lt\u00e1s a g\u00e9p rezg\u00e9s\u00e9t okozhatja, ami a g\u00e9pet terheli, \u00e9s n\u00f6veli a zajt. Ennek cs\u00f6kkent\u00e9se \u00e9rdek\u00e9ben a Klipper mind a rendszeres mozg\u00e1si gyorsul\u00e1st, mind pedig a virtu\u00e1lis \"gyors\u00edt\u00e1sr\u00f3l lass\u00edt\u00e1sra\" sebess\u00e9get k\u00f6veti. Ezzel a rendszerrel a nyomtat\u00f3 mozg\u00e1s\u00e1nak kiegyenl\u00edt\u00e9se \u00e9rdek\u00e9ben a r\u00f6vid \"cikkcakkos\" mozg\u00e1sok cs\u00facssebess\u00e9ge korl\u00e1tozott: Konkr\u00e9tan, a k\u00f3d kisz\u00e1m\u00edtja, hogy mi lenne az egyes mozg\u00e1sok sebess\u00e9ge, ha az adott virtu\u00e1lis \"gyorsul\u00e1s-lassul\u00e1s\" sebess\u00e9gre korl\u00e1toz\u00f3dna (alap\u00e9rtelmez\u00e9s szerint a norm\u00e1l gyorsul\u00e1si sebess\u00e9g fele). A fenti k\u00e9pen a szaggatott sz\u00fcrke vonalak ezt a virtu\u00e1lis gyorsul\u00e1si sebess\u00e9get jel\u00f6lik az els\u0151 mozdulatn\u00e1l. Ha egy mozg\u00e1s nem tudja el\u00e9rni a teljes utaz\u00f3sebess\u00e9g\u00e9t ezzel a virtu\u00e1lis gyorsul\u00e1si sebess\u00e9ggel, akkor a v\u00e9gsebess\u00e9ge arra a maxim\u00e1lis sebess\u00e9gre cs\u00f6kken, amelyet ezzel a virtu\u00e1lis gyorsul\u00e1si sebess\u00e9ggel el\u00e9rhetne. A legt\u00f6bb mozg\u00e1s eset\u00e9ben ez a hat\u00e1r\u00e9rt\u00e9k a mozg\u00e1s megl\u00e9v\u0151 hat\u00e1r\u00e9rt\u00e9kein\u00e9l vagy azok felett lesz, \u00e9s nem v\u00e1ltozik a viselked\u00e9s. R\u00f6vid cikk-cakk mozg\u00e1sok eset\u00e9n azonban ez a hat\u00e1r cs\u00f6kkenti a cs\u00facssebess\u00e9get. Vedd figyelembe, hogy ez nem v\u00e1ltoztatja meg a t\u00e9nyleges gyorsul\u00e1st a mozg\u00e1son bel\u00fcl. A mozg\u00e1s tov\u00e1bbra is a norm\u00e1l gyorsul\u00e1si s\u00e9m\u00e1t haszn\u00e1lja a be\u00e1ll\u00edtott cs\u00facssebess\u00e9gig.","title":"Sim\u00edtott el\u0151retekint\u00e9s"},{"location":"Kinematics.html#lepesek-generalasa","text":"Miut\u00e1n a look-ahead folyamat befejez\u0151d\u00f6tt, a nyomtat\u00f3fej mozg\u00e1sa az adott mozg\u00e1shoz teljes m\u00e9rt\u00e9kben ismert (id\u0151, kezd\u0151 poz\u00edci\u00f3, v\u00e9gpoz\u00edci\u00f3, sebess\u00e9g minden egyes ponton), \u00e9s lehets\u00e9ges a l\u00e9p\u00e9sid\u0151k gener\u00e1l\u00e1sa a mozg\u00e1shoz. Ez a folyamat a Klipper k\u00f3dban a \"kinematikai oszt\u00e1lyokon\" bel\u00fcl t\u00f6rt\u00e9nik. Ezeken a kinematikai oszt\u00e1lyokon k\u00edv\u00fcl minden millim\u00e9terben, m\u00e1sodpercben \u00e9s cartesian koordin\u00e1ta t\u00e9rben k\u00f6vethet\u0151. A kinematikai oszt\u00e1lyok feladata, hogy ebb\u0151l az \u00e1ltal\u00e1nos koordin\u00e1ta-rendszerb\u0151l az adott nyomtat\u00f3 hardveres saj\u00e1toss\u00e1gaihoz igaz\u00edts\u00e1k. A Klipper egy iterat\u00edv megold\u00f3t haszn\u00e1l az egyes l\u00e9ptet\u0151k l\u00e9p\u00e9sidej\u00e9nek l\u00e9trehoz\u00e1s\u00e1hoz. A k\u00f3d tartalmazza a k\u00e9pleteket a fej ide\u00e1lis cartesian koordin\u00e1t\u00e1inak kisz\u00e1m\u00edt\u00e1s\u00e1hoz minden egyes id\u0151pontban, \u00e9s rendelkezik a kinematikai k\u00e9pletekkel az ide\u00e1lis stepper poz\u00edci\u00f3k kisz\u00e1m\u00edt\u00e1s\u00e1hoz ezen cartesian koordin\u00e1t\u00e1k alapj\u00e1n. Ezekkel a k\u00e9pletekkel a Klipper meg tudja hat\u00e1rozni azt az ide\u00e1lis id\u0151t, amikor a steppernek az egyes l\u00e9p\u00e9shelyzetekben kell lennie. Az adott l\u00e9p\u00e9seket ezut\u00e1n ezekre a kisz\u00e1m\u00edtott id\u0151pontokra \u00fctemezi. A legfontosabb k\u00e9plet annak meghat\u00e1roz\u00e1s\u00e1ra, hogy egy mozg\u00e1snak milyen messzire kell eljutnia \u00e1lland\u00f3 gyorsul\u00e1s mellett, a k\u00f6vetkez\u0151: move_distance = (start_velocity + .5 * accel * move_time) * move_time \u00e9s az \u00e1lland\u00f3 sebess\u00e9g\u0171 mozg\u00e1sra vonatkoz\u00f3 kulcsk\u00e9plet a k\u00f6vetkez\u0151: move_distance = cruise_velocity * move_time A mozg\u00e1sok cartesian koordin\u00e1t\u00e1inak meghat\u00e1roz\u00e1s\u00e1ra szolg\u00e1l\u00f3 kulcsk\u00e9pletek a k\u00f6vetkez\u0151k: cartesian_x_position = start_x + move_distance * total_x_movement / total_movement cartesian_y_position = start_y + move_distance * total_y_movement / total_movement cartesian_z_position = start_z + move_distance * total_z_movement / total_movement","title":"L\u00e9p\u00e9sek gener\u00e1l\u00e1sa"},{"location":"Kinematics.html#cartesian-robotok","text":"A legegyszer\u0171bb eset a l\u00e9p\u00e9sek gener\u00e1l\u00e1sa a kartot\u00e9knyomtat\u00f3khoz. Az egyes tengelyeken t\u00f6rt\u00e9n\u0151 mozg\u00e1s k\u00f6zvetlen\u00fcl kapcsol\u00f3dik a cartesian t\u00e9rben t\u00f6rt\u00e9n\u0151 mozg\u00e1shoz. Kulcsk\u00e9pletek: stepper_x_position = cartesian_x_position stepper_y_position = cartesian_y_position stepper_z_position = cartesian_z_position","title":"Cartesian robotok"},{"location":"Kinematics.html#corexy-robotok","text":"A l\u00e9p\u00e9sek gener\u00e1l\u00e1sa egy CoreXY g\u00e9pen csak egy kicsit bonyolultabb, mint az egyszer\u0171 cartesian robotok\u00e9. A legfontosabb k\u00e9pletek a k\u00f6vetkez\u0151k: stepper_a_position = cartesian_x_position + cartesian_y_position stepper_b_position = cartesian_x_position - cartesian_y_position stepper_z_position = cartesian_z_position","title":"CoreXY robotok"},{"location":"Kinematics.html#delta-robotok","text":"A delta roboton t\u00f6rt\u00e9n\u0151 l\u00e9p\u00e9sgener\u00e1l\u00e1s a Pitagorasz-t\u00e9telen alapul: stepper_position = (sqrt(arm_length^2 - (cartesian_x_position - tower_x_position)^2 - (cartesian_y_position - tower_y_position)^2) + cartesian_z_position)","title":"Delta robotok"},{"location":"Kinematics.html#leptetomotor-gyorsulasi-hatarertekei","text":"A delta kinematik\u00e1val lehets\u00e9ges, hogy egy cartesian t\u00e9rben gyorsul\u00f3 mozg\u00e1s nagyobb gyorsul\u00e1st ig\u00e9nyel egy adott l\u00e9ptet\u0151motoron, mint a mozg\u00e1s gyorsul\u00e1sa. Ez akkor fordulhat el\u0151, ha egy mozgatott kar ink\u00e1bb v\u00edzszintes, mint f\u00fcgg\u0151leges, \u00e9s a mozg\u00e1s vonala az adott l\u00e9ptet\u0151 torony k\u00f6zel\u00e9ben halad el. B\u00e1r ezekhez a mozg\u00e1sokhoz nagyobb l\u00e9ptet\u0151motor-gyorsul\u00e1sra lehet sz\u00fcks\u00e9g, mint a nyomtat\u00f3 maxim\u00e1lisan konfigur\u00e1lt mozg\u00e1sgyorsul\u00e1sa, az adott l\u00e9ptet\u0151 \u00e1ltal mozgatott effekt\u00edv t\u00f6meg kisebb lesz. \u00cdgy a nagyobb l\u00e9ptet\u0151 gyorsul\u00e1s nem eredm\u00e9nyez jelent\u0151sen nagyobb l\u00e9ptet\u0151 nyomat\u00e9kot, \u00e9s ez\u00e9rt \u00e1rtalmatlannak tekinthet\u0151. A sz\u00e9ls\u0151s\u00e9ges esetek elker\u00fcl\u00e9se \u00e9rdek\u00e9ben azonban a Klipper a nyomtat\u00f3 konfigur\u00e1lt maxim\u00e1lis mozg\u00e1si gyorsul\u00e1s\u00e1nak h\u00e1romszoros\u00e1ban hat\u00e1rozza meg a l\u00e9ptet\u0151 gyorsul\u00e1s\u00e1nak fels\u0151 hat\u00e1r\u00e1t. (Hasonl\u00f3k\u00e9ppen, a l\u00e9ptet\u0151 maxim\u00e1lis sebess\u00e9ge a maxim\u00e1lis mozgat\u00e1si sebess\u00e9g h\u00e1romszoros\u00e1ra van korl\u00e1tozva). E korl\u00e1t betart\u00e1sa \u00e9rdek\u00e9ben az \u00e9p\u00edt\u00e9si ter\u00fclet sz\u00e9ls\u0151 sz\u00e9l\u00e9n (ahol a l\u00e9ptet\u0151 kar k\u00f6zel v\u00edzszintes lehet) a mozg\u00e1sok maxim\u00e1lis gyorsul\u00e1sa \u00e9s sebess\u00e9ge alacsonyabb lesz.","title":"L\u00e9ptet\u0151motor gyorsul\u00e1si hat\u00e1r\u00e9rt\u00e9kei"},{"location":"Kinematics.html#extruder-kinematika","text":"A Klipper az extruder mozg\u00e1s\u00e1t saj\u00e1t kinematikai oszt\u00e1ly\u00e1ban val\u00f3s\u00edtja meg. Mivel a nyomtat\u00f3fej mozg\u00e1s\u00e1nak id\u0151z\u00edt\u00e9se \u00e9s sebess\u00e9ge minden egyes mozg\u00e1sn\u00e1l teljesen ismert, az extruder l\u00e9p\u00e9sidej\u00e9t a nyomtat\u00f3fej mozg\u00e1s\u00e1nak l\u00e9p\u00e9sid\u0151-sz\u00e1m\u00edt\u00e1sait\u00f3l f\u00fcggetlen\u00fcl lehet kisz\u00e1m\u00edtani. Az extruder alapmozg\u00e1sa egyszer\u0171en kisz\u00e1m\u00edthat\u00f3. A l\u00e9p\u00e9sid\u0151 gener\u00e1l\u00e1sa ugyanazokat a k\u00e9pleteket haszn\u00e1lja, mint a cartesian g\u00e9pek: stepper_position = requested_e_position","title":"Extruder kinematika"},{"location":"Kinematics.html#nyomas-elotolas","text":"A k\u00eds\u00e9rletek azt mutatt\u00e1k, hogy az extruder modellez\u00e9s\u00e9t az alap extruder k\u00e9pleten t\u00fal is lehet jav\u00edtani. Ide\u00e1lis esetben az extrud\u00e1l\u00e1si mozg\u00e1s el\u0151rehaladt\u00e1val a mozg\u00e1s minden egyes pontj\u00e1n ugyanannyi sz\u00e1lnak kell lerak\u00f3dnia, \u00e9s a mozg\u00e1s ut\u00e1n nem szabad extrud\u00e1l\u00f3dnia. Sajnos gyakran el\u0151fordul, hogy az alap extrud\u00e1l\u00e1si k\u00e9pletek miatt az extrud\u00e1l\u00e1si mozg\u00e1sok kezdet\u00e9n t\u00fal kev\u00e9s sz\u00e1l ker\u00fcl ki az extruderb\u0151l, \u00e9s az extrud\u00e1l\u00e1s befejez\u00e9se ut\u00e1n t\u00f6bbletsz\u00e1l ker\u00fcl extrud\u00e1l\u00e1sra. Ezt gyakran nevezik \"ooze\"-nak. A \"nyom\u00e1s el\u0151tol\u00e1s\" rendszer ezt \u00fagy pr\u00f3b\u00e1lja figyelembe venni, hogy az extruderhez egy m\u00e1sik modellt haszn\u00e1l. Ahelyett, hogy naivan azt hinn\u00e9, hogy az extruderbe t\u00e1pl\u00e1lt minden egyes mm^3 sz\u00e1lat az extruderb\u0151l azonnal ugyanannyi mm^3 fog kil\u00e9pni, a rendszer egy nyom\u00e1son alapul\u00f3 modellt haszn\u00e1l. A nyom\u00e1s n\u0151, amikor a sz\u00e1l az extruderbe ker\u00fcl (mint a Hooke t\u00f6rv\u00e9ny szerint), \u00e9s az extrud\u00e1l\u00e1shoz sz\u00fcks\u00e9ges nyom\u00e1st a f\u00fav\u00f3ka ny\u00edl\u00e1s\u00e1n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 \u00e1raml\u00e1si sebess\u00e9g uralja (mint a Poiseuille t\u00f6rv\u00e9ny szerint). A kulcsgondolat az, hogy a sz\u00e1l, a nyom\u00e1s \u00e9s az \u00e1raml\u00e1si sebess\u00e9g k\u00f6z\u00f6tti kapcsolat egy line\u00e1ris egy\u00fctthat\u00f3val modellezhet\u0151: pa_position = nominal_position + pressure_advance_coefficient * nominal_velocity A nyom\u00e1s el\u0151tol\u00e1s egy\u00fctthat\u00f3 meghat\u00e1roz\u00e1s\u00e1hoz l\u00e1sd a nyom\u00e1s el\u0151tol\u00e1s dokumentumot. Az alapvet\u0151 nyom\u00e1s el\u0151tol\u00e1s k\u00e9plete az extruder motorj\u00e1nak hirtelen sebess\u00e9gv\u00e1ltoz\u00e1sait okozhatja. A Klipper ennek elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az extruder mozg\u00e1s\u00e1nak \"sim\u00edt\u00e1s\u00e1t\" alkalmazza. A fenti grafikon egy p\u00e9ld\u00e1t mutat k\u00e9t olyan extrud\u00e1l\u00e1si mozg\u00e1sra, amelyek k\u00f6z\u00f6tt a kanyarsebess\u00e9g nem nulla. Vedd figyelembe, hogy a nyom\u00e1s el\u0151tol\u00e1s rendszer miatt a gyors\u00edt\u00e1s sor\u00e1n tov\u00e1bbi sz\u00e1lak ker\u00fclnek az extruderbe. Min\u00e9l nagyobb a k\u00edv\u00e1nt sz\u00e1l\u00e1raml\u00e1si sebess\u00e9g, ann\u00e1l t\u00f6bb sz\u00e1lat kell betolni a gyors\u00edt\u00e1s sor\u00e1n a nyom\u00e1s miatt. A fej lass\u00edt\u00e1sa sor\u00e1n a plusz sz\u00e1l visszah\u00faz\u00f3dik (az extruder sebess\u00e9ge negat\u00edv lesz). A \"sim\u00edt\u00e1s\" az extruder poz\u00edci\u00f3j\u00e1nak s\u00falyozott \u00e1tlag\u00e1val t\u00f6rt\u00e9nik egy kis id\u0151intervallumban (ahogyan azt a pressure_advance_smooth_time konfigur\u00e1ci\u00f3s param\u00e9ter megadja). Ez az \u00e1tlagol\u00e1s t\u00f6bb G-k\u00f3d mozg\u00e1st is \u00e1tfoghat. Figyelje meg, hogy az extrudermotor az els\u0151 extrudermozg\u00e1s n\u00e9vleges kezdete el\u0151tt elkezd mozogni, \u00e9s az utols\u00f3 extrudermozg\u00e1s n\u00e9vleges v\u00e9ge ut\u00e1n is mozogni fog. Kulcsk\u00e9plet a \"sim\u00edtott nyom\u00e1s el\u0151tol\u00e1shoz\": smooth_pa_position(t) = ( definitive_integral(pa_position(x) * (smooth_time/2 - abs(t - x)) * dx, from=t-smooth_time/2, to=t+smooth_time/2) / (smooth_time/2)^2 )","title":"Nyom\u00e1s el\u0151tol\u00e1s"},{"location":"MCU_Commands.html","text":"MCU parancsok \u00b6 Ez a dokumentum a Klipper \"gazdag\u00e9p\" szoftvere \u00e1ltal k\u00fcld\u00f6tt \u00e9s a Klipper mikrokontroller szoftvere \u00e1ltal feldolgozott alacsony szint\u0171 mikrokontroller-parancsokr\u00f3l ny\u00fajt inform\u00e1ci\u00f3t. Ez a dokumentum nem hiteles hivatkoz\u00e1s ezekre a parancsokra, \u00e9s nem is az \u00f6sszes rendelkez\u00e9sre \u00e1ll\u00f3 parancs kiz\u00e1r\u00f3lagos list\u00e1ja. Ez a dokumentum hasznos lehet az alacsony szint\u0171 mikrokontroller-parancsok meg\u00e9rt\u00e9se ir\u00e1nt \u00e9rdekl\u0151d\u0151 fejleszt\u0151k sz\u00e1m\u00e1ra. A parancsok form\u00e1tum\u00e1val \u00e9s tov\u00e1bb\u00edt\u00e1s\u00e1val kapcsolatos tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a protokol dokumentumot. A parancsok itt a \"printf\" st\u00edlus\u00fa szintaxisukkal vannak le\u00edrva - azok sz\u00e1m\u00e1ra, akik nem ismerik ezt a form\u00e1tumot, csak azt kell megjegyezni, hogy ahol egy '%...' szekvencia l\u00e1that\u00f3, azt egy t\u00e9nyleges eg\u00e9sz sz\u00e1mmal kell helyettes\u00edteni. P\u00e9ld\u00e1ul a \"count=%c\" le\u00edr\u00e1st a \"count=10\" sz\u00f6veggel lehet helyettes\u00edteni. Vegy\u00fck figyelembe, hogy a \"felsorol\u00e1snak\" tekintett param\u00e9terek (l\u00e1sd a fenti protokolldokumentumot) string \u00e9rt\u00e9ket vesznek fel, amelyet a mikrokontroller automatikusan eg\u00e9sz \u00e9rt\u00e9kk\u00e9 konvert\u00e1l. Ez a \"pin\" nev\u0171 (vagy \"_pin\" ut\u00f3taggal rendelkez\u0151) param\u00e9terekn\u00e9l gyakori. Ind\u00edt\u00e1si parancsok \u00b6 A mikrokontroller \u00e9s perif\u00e9ri\u00e1i konfigur\u00e1l\u00e1s\u00e1hoz sz\u00fcks\u00e9g lehet bizonyos egyszeri m\u0171veletek elv\u00e9gz\u00e9s\u00e9re. Ez a szakasz erre a c\u00e9lra rendelkez\u00e9sre \u00e1ll\u00f3 \u00e1ltal\u00e1nos parancsokat sorolja fel. A mikrokontroller legt\u00f6bb parancs\u00e1t\u00f3l elt\u00e9r\u0151en ezek a parancsok a fogad\u00e1suk ut\u00e1n azonnal lefutnak, \u00e9s nem ig\u00e9nyelnek k\u00fcl\u00f6n\u00f6sebb be\u00e1ll\u00edt\u00e1sokat. Gyakori ind\u00edt\u00e1si parancsok: set_digital_out pin=%u value=%c : Ez a parancs az adott t\u0171t azonnal digit\u00e1lis kimeneti GPIO-k\u00e9nt konfigur\u00e1lja, \u00e9s vagy alacsony (value=0) vagy magas (value=1) szintre \u00e1ll\u00edtja. Ez a parancs hasznos lehet a LED-ek kezdeti \u00e9rt\u00e9k\u00e9nek konfigur\u00e1l\u00e1s\u00e1hoz \u00e9s a l\u00e9ptet\u0151 vez\u00e9rl\u0151 mikrol\u00e9p\u00e9s t\u0171k kezdeti \u00e9rt\u00e9k\u00e9nek konfigur\u00e1l\u00e1s\u00e1hoz. set_pwm_out pin=%u cycle_ticks=%u value=%hu : Ez a parancs azonnal be\u00e1ll\u00edtja az adott t\u0171t, hogy hardveres impulzussz\u00e9less\u00e9g-modul\u00e1ci\u00f3t (PWM) haszn\u00e1ljon a megadott sz\u00e1m\u00fa cycle_tickkel. A \"cycle_ticks\" az MCU \u00f3rajel\u00e9nek a sz\u00e1ma, ameddig az egyes bekapcsol\u00e1si \u00e9s kikapcsol\u00e1si ciklusoknak tartaniuk kell. Az 1-es cycle_ticks \u00e9rt\u00e9kkel a lehet\u0151 leggyorsabb ciklusid\u0151 k\u00e9rhet\u0151. A \"value\" param\u00e9ter 0 \u00e9s 255 k\u00f6z\u00f6tt van, 0 a teljesen kikapcsolt \u00e1llapotot, 255 pedig a teljesen bekapcsolt \u00e1llapotot jelenti. Ez a parancs hasznos lehet a CPU \u00e9s a nyomtat\u00f3fej h\u0171t\u0151 ventil\u00e1torok enged\u00e9lyez\u00e9s\u00e9hez. Alacsony szint\u0171 mikrokontroller konfigur\u00e1ci\u00f3 \u00b6 A mikrokontroller legt\u00f6bb parancsa a sikeres ind\u00edt\u00e1s el\u0151tt kezdeti be\u00e1ll\u00edt\u00e1st ig\u00e9nyel. Ez a szakasz \u00e1ttekint\u00e9st ny\u00fajt a konfigur\u00e1ci\u00f3s folyamatr\u00f3l. Ez \u00e9s a k\u00f6vetkez\u0151 szakaszok val\u00f3sz\u00edn\u0171leg csak a Klipper bels\u0151 r\u00e9szletei ir\u00e1nt \u00e9rdekl\u0151d\u0151 fejleszt\u0151k sz\u00e1m\u00e1ra \u00e9rdekesek. Amikor a gazdag\u00e9p el\u0151sz\u00f6r csatlakozik a mikrokontrollerhez, mindig egy adatsz\u00f3t\u00e1r lek\u00e9r\u00e9s\u00e9vel kezdi (tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd protokolt ). Az adatsz\u00f3t\u00e1r lek\u00e9r\u00e9se ut\u00e1n a gazdag\u00e9p ellen\u0151rzi, hogy a mikrokontroller \"konfigur\u00e1lt\" \u00e1llapotban van-e, \u00e9s ha nem, akkor konfigur\u00e1lja. A konfigur\u00e1l\u00e1s a k\u00f6vetkez\u0151 f\u00e1zisokat foglalja mag\u00e1ban: get_config : A gazdag\u00e9p ellen\u0151rzi, hogy a mikrokontroller m\u00e1r konfigur\u00e1lva van-e. A mikrokontroller erre a parancsra egy \"config\" v\u00e1lasz\u00fczenettel v\u00e1laszol. A mikrokontroller szoftvere bekapcsol\u00e1skor mindig konfigur\u00e1latlan \u00e1llapotban indul. Ebben az \u00e1llapotban marad mindaddig, am\u00edg a gazdag\u00e9p be nem fejezi a konfigur\u00e1ci\u00f3s folyamatokat (a finalize_config parancs kiad\u00e1s\u00e1val). Ha a mikrokontroller m\u00e1r konfigur\u00e1lva van egy kor\u00e1bbi munkamenetb\u0151l (\u00e9s a k\u00edv\u00e1nt be\u00e1ll\u00edt\u00e1sokkal van konfigur\u00e1lva), akkor a gazdag\u00e9pnek nincs sz\u00fcks\u00e9ge tov\u00e1bbi l\u00e9p\u00e9sekre, \u00e9s a konfigur\u00e1ci\u00f3s folyamat sikeresen befejez\u0151dik. allocate_oids count=%c : Ezt a parancsot az\u00e9rt adjuk ki, hogy t\u00e1j\u00e9koztassuk a mikrokontrollert az objektum-id-k (oid) maxim\u00e1lis sz\u00e1m\u00e1r\u00f3l, amelyre a gazdag\u00e9pnek sz\u00fcks\u00e9ge van. Ezt a parancsot csak egyszer lehet kiadni. Az oid egy eg\u00e9sz sz\u00e1m\u00fa azonos\u00edt\u00f3, amely minden egyes l\u00e9ptet\u0151h\u00f6z, minden v\u00e9g\u00e1ll\u00e1shoz \u00e9s minden \u00fctemezhet\u0151 GPIO t\u0171h\u00f6z hozz\u00e1rendelt. A gazdag\u00e9p el\u0151re meghat\u00e1rozza a hardver m\u0171k\u00f6dtet\u00e9s\u00e9hez sz\u00fcks\u00e9ges oid-ek sz\u00e1m\u00e1t, \u00e9s ezt \u00e1tadja a mikrokontrollernek, hogy az elegend\u0151 mem\u00f3ri\u00e1t rendelhessen az oid-r\u0151l a bels\u0151 objektumra val\u00f3 lek\u00e9pez\u00e9s t\u00e1rol\u00e1s\u00e1hoz. config_XXX oid=%c ... : A konvenci\u00f3 szerint minden \"config_\" el\u0151taggal kezd\u0151d\u0151 parancs l\u00e9trehoz egy \u00faj mikrokontroller objektumot, \u00e9s hozz\u00e1rendeli a megadott oid-et. P\u00e9ld\u00e1ul a config_digital_out parancs a megadott t\u0171t digit\u00e1lis kimeneti GPIO-k\u00e9nt konfigur\u00e1lja, \u00e9s l\u00e9trehoz egy bels\u0151 objektumot, amelyet a gazdag\u00e9p haszn\u00e1lhat az adott GPIO m\u00f3dos\u00edt\u00e1sainak \u00fctemez\u00e9s\u00e9re. A config parancsba \u00e1tadott oid param\u00e9tert a gazdag\u00e9p v\u00e1lasztja ki, \u00e9s annak nulla \u00e9s az allocate_oids parancsban megadott maxim\u00e1lis sz\u00e1m k\u00f6z\u00f6tt kell lennie. A config parancsok csak akkor futtathat\u00f3k, ha a mikrokontroller nincs konfigur\u00e1lt \u00e1llapotban (azaz a gazdag\u00e9p \u00e1ltal elk\u00fcld\u00f6tt finalize_config parancs el\u0151tt) \u00e9s az allocate_oids parancs elk\u00fcld\u00e9se ut\u00e1n. finalize_config crc=%u : A finalize_config parancs a mikrokontrollert egy konfigur\u00e1latlan \u00e1llapotb\u00f3l egy konfigur\u00e1lt \u00e1llapotba helyezi \u00e1t. A mikrokontrollernek \u00e1tadott crc param\u00e9ter t\u00e1rol\u00e1sra ker\u00fcl, \u00e9s a \"config\" v\u00e1lasz\u00fczenetekben visszak\u00fcld\u00e9sre ker\u00fcl a gazdag\u00e9pnek. A konvenci\u00f3 szerint az \u00e1llom\u00e1s 32 bites CRC-t vesz az \u00e1ltala k\u00e9rt konfigur\u00e1ci\u00f3r\u00f3l, \u00e9s a k\u00e9s\u0151bbi kommunik\u00e1ci\u00f3s munkamenetek kezdet\u00e9n ellen\u0151rzi, hogy a mikrokontrollerben t\u00e1rolt CRC pontosan megegyezik-e a k\u00edv\u00e1nt CRC-vel. Ha a CRC nem egyezik, akkor a gazdag\u00e9p tudja, hogy a mikrokontroller nem az \u00e1ltala k\u00edv\u00e1nt \u00e1llapotba lett konfigur\u00e1lva. Gyakori mikrokontroller objektumok \u00b6 Ez a szakasz n\u00e9h\u00e1ny gyakran haszn\u00e1lt konfigur\u00e1ci\u00f3s parancsot sorol fel. config_digital_out oid=%c pin=%u value=%c default_value=%c max_duration=%u : Ez a parancs l\u00e9trehoz egy bels\u0151 mikrokontroller objektumot a megadott GPIO 't\u0171' sz\u00e1m\u00e1ra. A t\u0171 digit\u00e1lis kimeneti m\u00f3dban lesz konfigur\u00e1lva, \u00e9s a 'value' \u00e1ltal megadott kezdeti \u00e9rt\u00e9kre lesz be\u00e1ll\u00edtva (0 az alacsony, 1 a magas). A digital_out objektum l\u00e9trehoz\u00e1sa lehet\u0151v\u00e9 teszi a gazdag\u00e9p sz\u00e1m\u00e1ra, hogy az adott t\u0171 GPIO friss\u00edt\u00e9seit meghat\u00e1rozott id\u0151pontokban \u00fctemezze (l\u00e1sd az al\u00e1bb ismertetett queue_digital_out parancsot). Ha a mikrokontroller szoftvere kikapcsol\u00e1si m\u00f3dba ker\u00fcl, akkor az \u00f6sszes konfigur\u00e1lt digital_out objektum 'default_value' \u00e9rt\u00e9kre ker\u00fcl. A 'max_duration' param\u00e9ter egy biztons\u00e1gi ellen\u0151rz\u00e9s megval\u00f3s\u00edt\u00e1s\u00e1ra szolg\u00e1l. Ha nem nulla, akkor ez a maxim\u00e1lis \u00f3rajelek sz\u00e1ma, amelyet a gazdag\u00e9p tov\u00e1bbi friss\u00edt\u00e9s n\u00e9lk\u00fcl az adott GPIO-t nem alap\u00e9rtelmezett \u00e9rt\u00e9kre \u00e1ll\u00edthatja. P\u00e9ld\u00e1ul, ha az alap\u00e9rtelmezett \u00e9rt\u00e9k nulla, a max_duration pedig 16000, akkor ha egy \u00e9rt\u00e9kre \u00e1ll\u00edtja a GPIO-t, akkor 16000 \u00f3rajelen bel\u00fcl \u00fajabb friss\u00edt\u00e9st kell \u00fctemeznie a GPIO-n (null\u00e1ra vagy egyre). Ez a biztons\u00e1gi funkci\u00f3 haszn\u00e1lhat\u00f3 a f\u0171t\u00e9si kimenetek biztos\u00edt\u00e1s\u00e1ra, hogy a gazdag\u00e9p ne kapcsolja be a f\u0171t\u00e9st, majd ne kapcsoljon ki. config_pwm_out oid=%c pin=%u cycle_ticks=%u value=%hu default_value=%hu max_duration=%u : Ez a parancs l\u00e9trehoz egy bels\u0151 objektumot a hardveralap\u00fa PWM-t\u0171kh\u00f6z, amelyek friss\u00edt\u00e9s\u00e9t a gazdag\u00e9p be tudja \u00fctemezni. Haszn\u00e1lata anal\u00f3g a config_digital_out paranccsal. A param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a 'set_pwm_out' \u00e9s a 'config_digital_out' parancsok le\u00edr\u00e1s\u00e1ban. config_analog_in oid=%c pin=%u : Ez a parancs egy t\u0171 anal\u00f3g bemeneti mintav\u00e9telez\u00e9si m\u00f3dban t\u00f6rt\u00e9n\u0151 konfigur\u00e1l\u00e1s\u00e1ra szolg\u00e1l. A konfigur\u00e1l\u00e1s ut\u00e1n a t\u0171 rendszeres id\u0151k\u00f6z\u00f6nk\u00e9nt mintav\u00e9telezhet\u0151 a query_analog_in paranccsal (l\u00e1sd al\u00e1bb). config_stepper oid=%c step_pin=%c dir_pin=%c invert_step=%c step_pulse_ticks=%u : Ez a parancs l\u00e9trehoz egy bels\u0151 l\u00e9ptet\u0151 objektumot. A 'step_pin' \u00e9s 'dir_pin' param\u00e9terek megadj\u00e1k a l\u00e9p\u00e9st \u00e9s ir\u00e1nyokat; ez a parancs digit\u00e1lis kimeneti m\u00f3dban konfigur\u00e1lja \u0151ket. Az 'invert_step' param\u00e9ter meghat\u00e1rozza, hogy a l\u00e9p\u00e9s emelked\u0151 \u00e9lre (invert_step=0) vagy cs\u00f6kken\u0151 \u00e9lre (invert_step=1) t\u00f6rt\u00e9njen. A 'step_pulse_ticks' param\u00e9ter a l\u00e9p\u00e9simpulzus minim\u00e1lis id\u0151tartam\u00e1t hat\u00e1rozza meg. Ha az MCU a 'STEPPER_BOTH_EDGE=1' konstansot export\u00e1lja, akkor a step_pulse_ticks=0 \u00e9s az invert_step=-1 be\u00e1ll\u00edt\u00e1sa a step_pin emelked\u0151 \u00e9s cs\u00f6kken\u0151 \u00e9leire t\u00f6rt\u00e9n\u0151 l\u00e9p\u00e9st is be\u00e1ll\u00edtja. config_endstop oid=%c pin=%c pull_up=%c stepper_count=%c : Ez a parancs l\u00e9trehoz egy bels\u0151 \"endstop\" objektumot. Ez a v\u00e9g\u00e1ll\u00e1si t\u0171k megad\u00e1s\u00e1ra \u00e9s a \"kezd\u0151pont\" m\u0171veletek enged\u00e9lyez\u00e9s\u00e9re szolg\u00e1l (l\u00e1sd al\u00e1bb az endstop_home parancsot). A parancs a megadott t\u0171t digit\u00e1lis bemeneti m\u00f3dban konfigur\u00e1lja. A 'pull_up' param\u00e9ter hat\u00e1rozza meg, hogy a hardver \u00e1ltal biztos\u00edtott pullup ellen\u00e1ll\u00e1sok a t\u0171h\u00f6z (ha vannak) enged\u00e9lyezve lesznek-e. A 'stepper_count' param\u00e9ter meghat\u00e1rozza a maxim\u00e1lis sz\u00e1m\u00fa steppert, amelyet ennek a v\u00e9g\u00e1ll\u00e1snak meg kell \u00e1ll\u00edtania egy kezd\u0151pont m\u0171velet sor\u00e1n (l\u00e1sd az endstop_home parancsot al\u00e1bb). config_spi oid=%c bus=%u pin=%u mode=%u rate=%u shutdown_msg=%*s : Ez a parancs l\u00e9trehoz egy bels\u0151 SPI objektumot. A spi_transfer \u00e9s spi_send parancsokkal egy\u00fctt haszn\u00e1lhat\u00f3 (l\u00e1sd al\u00e1bb). A \"bus\" azonos\u00edtja a haszn\u00e1lni k\u00edv\u00e1nt SPI-buszt (ha a mikrokontroller egyn\u00e9l t\u00f6bb SPI-busszal rendelkezik). A \"pin\" az eszk\u00f6z chipkiv\u00e1laszt\u00f3 (CS) t\u0171j\u00e9t hat\u00e1rozza meg. A \"mode\" az SPI m\u00f3dot jel\u00f6li (0 \u00e9s 3 k\u00f6z\u00f6tt kell lennie). A \"rate\" param\u00e9ter az SPI-busz sebess\u00e9g\u00e9t adja meg (m\u00e1sodpercenk\u00e9nti ciklusokban). V\u00e9g\u00fcl a \"shutdown_msg\" egy SPI-parancs, amelyet az adott eszk\u00f6znek kell k\u00fcldeni, ha a mikrokontroller le\u00e1ll\u00e1si \u00e1llapotba ker\u00fcl. config_spi_without_cs oid=%c bus=%u mode=%u rate=%u shutdown_msg=%*s : Ez a parancs hasonl\u00f3 a config_spi parancshoz, de CS t\u0171 defin\u00edci\u00f3 n\u00e9lk\u00fcl. Hasznos olyan SPI eszk\u00f6z\u00f6kn\u00e9l, amelyek nem rendelkeznek Chip Select vonallal. Gyakori parancsok \u00b6 Ez a szakasz n\u00e9h\u00e1ny gyakran haszn\u00e1lt fut\u00e1sidej\u0171 parancsot sorol fel. Val\u00f3sz\u00edn\u0171leg csak a Klipperbe betekint\u00e9st nyerni k\u00edv\u00e1n\u00f3 fejleszt\u0151k sz\u00e1m\u00e1ra \u00e9rdekes. set_digital_out_pwm_cycle oid=%c cycle_ticks=%u : Ez a parancs egy (config_digital_out \u00e1ltal l\u00e9trehozott) digit\u00e1lis kimeneti t\u0171t \u00fagy konfigur\u00e1l, hogy \"szoftveres PWM\"-et haszn\u00e1ljon. A 'cycle_ticks' a PWM-ciklushoz tartoz\u00f3 \u00f3rajelek sz\u00e1ma. Mivel a kimeneti kapcsol\u00e1s a mikrokontroller szoftver\u00e9ben val\u00f3sul meg, aj\u00e1nlott, hogy a 'cycle_ticks' 10 ms vagy ann\u00e1l nagyobb id\u0151nek feleljen meg. queue_digital_out oid=%c clock=%u on_ticks=%u : Ez a parancs egy digit\u00e1lis kimeneti GPIO t\u0171 v\u00e1lt\u00e1s\u00e1t \u00fctemezi a megadott \u00f3rajelen. A parancs haszn\u00e1lat\u00e1hoz a mikrokontroller konfigur\u00e1l\u00e1sa sor\u00e1n ki kell adni egy 'config_digital_out' parancsot ugyanazzal a 'oid' param\u00e9terrel. Ha a 'set_digital_out_pwm_cycle' parancsot h\u00edvt\u00e1k, akkor az 'on_ticks' a pwm-ciklus bekapcsol\u00e1si id\u0151tartama (\u00f3rajelekben). Ellenkez\u0151 esetben az 'on_ticks' \u00e9rt\u00e9k\u00e9nek vagy 0-nak (alacsony fesz\u00fclts\u00e9g eset\u00e9n) vagy 1-nek (magas fesz\u00fclts\u00e9g eset\u00e9n) kell lennie. queue_pwm_out oid=%c clock=%u value=%hu : Be\u00fctemezi a hardveres PWM kimeneti t\u0171 v\u00e1ltoz\u00e1s\u00e1t. L\u00e1sd a 'queue_digital_out' \u00e9s a 'config_pwm_out' parancsokat tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt. query_analog_in oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u min_value=%hu max_value=%hu : Ez a parancs be\u00e1ll\u00edtja az anal\u00f3g bemeneti mint\u00e1k ism\u00e9tl\u0151d\u0151 \u00fctemez\u00e9s\u00e9t. A parancs haszn\u00e1lat\u00e1hoz a mikrokontroller konfigur\u00e1l\u00e1sa sor\u00e1n ki kell adni egy 'config_analog_in' parancsot ugyanazzal az 'oid' param\u00e9terrel. A mint\u00e1k a 'clock' id\u0151pontt\u00f3l kezd\u0151dnek, a kapott \u00e9rt\u00e9kr\u0151l minden 'rest_ticks' \u00f3ra\u00fctemenk\u00e9nt jelent\u00e9st k\u00e9sz\u00edt, a 'sample_count' sz\u00e1m\u00fa alkalommal t\u00falmint\u00e1zza a mint\u00e1t, \u00e9s a t\u00falmint\u00e1zott mint\u00e1k k\u00f6z\u00f6tt 'sample_ticks' sz\u00e1m\u00fa \u00f3ra\u00fctemnyi sz\u00fcnetet tart. A 'min_value' \u00e9s 'max_value' param\u00e9terek egy biztons\u00e1gi funkci\u00f3t val\u00f3s\u00edtanak meg. A mikrokontroller szoftvere ellen\u0151rizni fogja, hogy a mintav\u00e9telezett \u00e9rt\u00e9k (az esetleges t\u00falmintav\u00e9telez\u00e9s ut\u00e1n) mindig a megadott tartom\u00e1nyon bel\u00fcl van-e. Ezt a f\u0171t\u0151testeket vez\u00e9rl\u0151 h\u0151szenzorokhoz csatlakoztatott t\u0171kkel val\u00f3 haszn\u00e1latra sz\u00e1nj\u00e1k. Ezzel ellen\u0151rizhet\u0151, hogy a f\u0171t\u0151test egy h\u0151m\u00e9rs\u00e9klet tartom\u00e1nyon bel\u00fcl van-e. get_clock : E parancs hat\u00e1s\u00e1ra a mikrokontroller egy \"\u00f3rajel\" v\u00e1lasz\u00fczenetet gener\u00e1l. A gazdag\u00e9p m\u00e1sodpercenk\u00e9nt egyszer k\u00fcldi el ezt a parancsot, hogy megkapja a mikrokontroller \u00f3rajel \u00e9rt\u00e9k\u00e9t, \u00e9s megbecs\u00fclje a gazdag\u00e9p \u00e9s a mikrokontroller \u00f3rajelei k\u00f6z\u00f6tti elt\u00e9r\u00e9st. Ez lehet\u0151v\u00e9 teszi a gazdag\u00e9p sz\u00e1m\u00e1ra a mikrokontroller \u00f3rajel\u00e9nek pontos becsl\u00e9s\u00e9t. L\u00e9ptet\u0151 parancsok \u00b6 queue_step oid=%c interval=%u count=%hu add=%hi : Ez a parancs \u00fctemezi a 'sz\u00e1m\u00edt\u00e1si' l\u00e9p\u00e9st az adott l\u00e9ptet\u0151h\u00f6z, az 'intervallum' l\u00e9p\u00e9sek k\u00f6z\u00f6tti \u00f3rajellel. Az els\u0151 l\u00e9p\u00e9s az 'intervallum' \u00f3rajelek sz\u00e1ma lesz az adott l\u00e9ptet\u0151 utols\u00f3 \u00fctemezett l\u00e9p\u00e9se \u00f3ta. Ha az 'add' nem nulla, akkor az intervallum minden l\u00e9p\u00e9s ut\u00e1n az 'add' \u00e9rt\u00e9kkel m\u00f3dosul. Ez a parancs a megadott intervallum/count/add szekvenci\u00e1t egy l\u00e9ptet\u0151k\u00e9nti sorba illeszti. A norm\u00e1l m\u0171k\u00f6d\u00e9s sor\u00e1n t\u00f6bb sz\u00e1z ilyen szekvencia \u00e1llhat a sorban. Az \u00faj szekvenci\u00e1k a sor v\u00e9g\u00e9re ker\u00fclnek, \u00e9s amint minden szekvencia teljes\u00edti a 'sz\u00e1m' l\u00e9p\u00e9sek sz\u00e1m\u00e1t, a sor elej\u00e9re ker\u00fclnek. Ez a rendszer lehet\u0151v\u00e9 teszi a mikrokontroller sz\u00e1m\u00e1ra, hogy t\u00f6bb sz\u00e1zezer l\u00e9p\u00e9st \u00e1ll\u00edtson sorba. Mindezt megb\u00edzhat\u00f3 \u00e9s kisz\u00e1m\u00edthat\u00f3 \u00fctemez\u00e9si id\u0151vel. set_next_step_dir oid=%c dir=%c : Ez a parancs adja meg a k\u00f6vetkez\u0151 queue_step parancs \u00e1ltal haszn\u00e1lt dir_pin \u00e9rt\u00e9k\u00e9t. reset_step_clock oid=%c clock=%u : Norm\u00e1lis esetben a l\u00e9p\u00e9s id\u0151z\u00edt\u00e9se az adott l\u00e9ptet\u0151 utols\u00f3 l\u00e9p\u00e9s\u00e9hez viszony\u00edtva t\u00f6rt\u00e9nik. Ez a parancs vissza\u00e1ll\u00edtja az \u00f3rajelet, \u00edgy a k\u00f6vetkez\u0151 l\u00e9p\u00e9s a megadott '\u00f3rajel' id\u0151ponthoz k\u00e9pest t\u00f6rt\u00e9nik. A gazdag\u00e9p \u00e1ltal\u00e1ban csak a nyomtat\u00e1s kezdet\u00e9n k\u00fcldi ezt a parancsot. stepper_get_position oid=%c : E parancs hat\u00e1s\u00e1ra a mikrokontroller egy \"stepper_position\" v\u00e1lasz\u00fczenetet gener\u00e1l a l\u00e9ptet\u0151 aktu\u00e1lis poz\u00edci\u00f3j\u00e1val. A poz\u00edci\u00f3 a dir=1-gyel gener\u00e1lt l\u00e9p\u00e9sek teljes sz\u00e1ma m\u00ednusz a dir=0-val gener\u00e1lt l\u00e9p\u00e9sek teljes sz\u00e1ma. endstop_home oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u pin_value=%c : Ezt a parancsot a l\u00e9ptet\u0151 \"kezd\u0151pont\" m\u0171veletek sor\u00e1n haszn\u00e1lj\u00e1k. A parancs haszn\u00e1lat\u00e1hoz a mikrokontroller konfigur\u00e1l\u00e1sa sor\u00e1n ki kell adni egy 'config_endstop' parancsot ugyanazzal az 'oid' param\u00e9terrel. Amikor ez a parancs megh\u00edv\u00e1sra ker\u00fcl, a mikrokontroller minden 'rest_ticks' \u00f3rajelenk\u00e9nt mintav\u00e9telezi az endstop-t\u0171t, \u00e9s ellen\u0151rzi, hogy annak \u00e9rt\u00e9ke megegyezik-e a 'pin_value' \u00e9rt\u00e9kkel. Ha az \u00e9rt\u00e9k megegyezik (\u00e9s tov\u00e1bbra is megegyezik a 'sample_count' tov\u00e1bbi 'sample_ticks' t\u00e1vols\u00e1gra elosztott mint\u00e1kon kereszt\u00fcl), akkor a kapcsol\u00f3d\u00f3 l\u00e9ptet\u0151 mozg\u00e1si sora t\u00f6rl\u0151dik, \u00e9s a l\u00e9ptet\u0151 azonnal meg\u00e1ll. A gazdag\u00e9p ezt a parancsot a kezd\u0151pont megval\u00f3s\u00edt\u00e1s\u00e1ra haszn\u00e1lja. A gazdag\u00e9p utas\u00edtja a v\u00e9g\u00e1ll\u00e1st, hogy mintav\u00e9telezzen a v\u00e9g\u00e1ll\u00e1si triggerre, majd egy sor queue_step parancsot ad ki a l\u00e9ptet\u0151 mozgat\u00e1s\u00e1ra a v\u00e9g\u00e1ll\u00e1s fel\u00e9. Amint a l\u00e9ptet\u0151 el\u00e9ri a v\u00e9g\u00e1ll\u00e1st, a kapcsol\u00f3 \u00e9rz\u00e9keli, a mozg\u00e1s meg\u00e1ll, \u00e9s a gazdag\u00e9pet \u00e9rtes\u00edti. Sor \u00e1thelyez\u00e9se \u00b6 Minden queue_step parancs a mikrovez\u00e9rl\u0151 \"move queue\" sor\u00e1ban l\u00e9v\u0151 bejegyz\u00e9st haszn\u00e1lja. Ez a v\u00e1r\u00f3lista a \"finalize_config\" parancs fogad\u00e1sakor ker\u00fcl kioszt\u00e1sra, \u00e9s a \"config\" v\u00e1lasz\u00fczenetekben jelenti a rendelkez\u00e9sre \u00e1ll\u00f3 v\u00e1r\u00f3lista-bejegyz\u00e9sek sz\u00e1m\u00e1t. A gazdag\u00e9p felel\u0151ss\u00e9ge, hogy a queue_step parancs elk\u00fcld\u00e9se el\u0151tt megbizonyosodjon arr\u00f3l, hogy van-e szabad hely a v\u00e1r\u00f3list\u00e1n. A gazdag\u00e9p ezt \u00fagy teszi, hogy kisz\u00e1m\u00edtja az egyes queue_step parancsok mikor fejez\u0151dnek be, \u00e9s ennek megfelel\u0151en \u00fctemezi az \u00faj queue_step parancsokat. SPI parancsok \u00b6 spi_transfer oid=%c data=%*s : Ez a parancs arra k\u00e9szteti a mikrokontrollert, hogy a 'data'-t a 'oid' \u00e1ltal megadott SPI eszk\u00f6zre k\u00fcldje, \u00e9s egy \"spi_transfer_response\" v\u00e1lasz\u00fczenetet gener\u00e1l az \u00e1tvitel sor\u00e1n visszak\u00fcld\u00f6tt adatokkal. spi_send oid=%c data=%*s : Ez a parancs hasonl\u00f3 az \"spi_transfer\" parancshoz, de nem gener\u00e1l \"spi_transfer_response\" \u00fczenetet.","title":"MCU parancsok"},{"location":"MCU_Commands.html#mcu-parancsok","text":"Ez a dokumentum a Klipper \"gazdag\u00e9p\" szoftvere \u00e1ltal k\u00fcld\u00f6tt \u00e9s a Klipper mikrokontroller szoftvere \u00e1ltal feldolgozott alacsony szint\u0171 mikrokontroller-parancsokr\u00f3l ny\u00fajt inform\u00e1ci\u00f3t. Ez a dokumentum nem hiteles hivatkoz\u00e1s ezekre a parancsokra, \u00e9s nem is az \u00f6sszes rendelkez\u00e9sre \u00e1ll\u00f3 parancs kiz\u00e1r\u00f3lagos list\u00e1ja. Ez a dokumentum hasznos lehet az alacsony szint\u0171 mikrokontroller-parancsok meg\u00e9rt\u00e9se ir\u00e1nt \u00e9rdekl\u0151d\u0151 fejleszt\u0151k sz\u00e1m\u00e1ra. A parancsok form\u00e1tum\u00e1val \u00e9s tov\u00e1bb\u00edt\u00e1s\u00e1val kapcsolatos tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a protokol dokumentumot. A parancsok itt a \"printf\" st\u00edlus\u00fa szintaxisukkal vannak le\u00edrva - azok sz\u00e1m\u00e1ra, akik nem ismerik ezt a form\u00e1tumot, csak azt kell megjegyezni, hogy ahol egy '%...' szekvencia l\u00e1that\u00f3, azt egy t\u00e9nyleges eg\u00e9sz sz\u00e1mmal kell helyettes\u00edteni. P\u00e9ld\u00e1ul a \"count=%c\" le\u00edr\u00e1st a \"count=10\" sz\u00f6veggel lehet helyettes\u00edteni. Vegy\u00fck figyelembe, hogy a \"felsorol\u00e1snak\" tekintett param\u00e9terek (l\u00e1sd a fenti protokolldokumentumot) string \u00e9rt\u00e9ket vesznek fel, amelyet a mikrokontroller automatikusan eg\u00e9sz \u00e9rt\u00e9kk\u00e9 konvert\u00e1l. Ez a \"pin\" nev\u0171 (vagy \"_pin\" ut\u00f3taggal rendelkez\u0151) param\u00e9terekn\u00e9l gyakori.","title":"MCU parancsok"},{"location":"MCU_Commands.html#inditasi-parancsok","text":"A mikrokontroller \u00e9s perif\u00e9ri\u00e1i konfigur\u00e1l\u00e1s\u00e1hoz sz\u00fcks\u00e9g lehet bizonyos egyszeri m\u0171veletek elv\u00e9gz\u00e9s\u00e9re. Ez a szakasz erre a c\u00e9lra rendelkez\u00e9sre \u00e1ll\u00f3 \u00e1ltal\u00e1nos parancsokat sorolja fel. A mikrokontroller legt\u00f6bb parancs\u00e1t\u00f3l elt\u00e9r\u0151en ezek a parancsok a fogad\u00e1suk ut\u00e1n azonnal lefutnak, \u00e9s nem ig\u00e9nyelnek k\u00fcl\u00f6n\u00f6sebb be\u00e1ll\u00edt\u00e1sokat. Gyakori ind\u00edt\u00e1si parancsok: set_digital_out pin=%u value=%c : Ez a parancs az adott t\u0171t azonnal digit\u00e1lis kimeneti GPIO-k\u00e9nt konfigur\u00e1lja, \u00e9s vagy alacsony (value=0) vagy magas (value=1) szintre \u00e1ll\u00edtja. Ez a parancs hasznos lehet a LED-ek kezdeti \u00e9rt\u00e9k\u00e9nek konfigur\u00e1l\u00e1s\u00e1hoz \u00e9s a l\u00e9ptet\u0151 vez\u00e9rl\u0151 mikrol\u00e9p\u00e9s t\u0171k kezdeti \u00e9rt\u00e9k\u00e9nek konfigur\u00e1l\u00e1s\u00e1hoz. set_pwm_out pin=%u cycle_ticks=%u value=%hu : Ez a parancs azonnal be\u00e1ll\u00edtja az adott t\u0171t, hogy hardveres impulzussz\u00e9less\u00e9g-modul\u00e1ci\u00f3t (PWM) haszn\u00e1ljon a megadott sz\u00e1m\u00fa cycle_tickkel. A \"cycle_ticks\" az MCU \u00f3rajel\u00e9nek a sz\u00e1ma, ameddig az egyes bekapcsol\u00e1si \u00e9s kikapcsol\u00e1si ciklusoknak tartaniuk kell. Az 1-es cycle_ticks \u00e9rt\u00e9kkel a lehet\u0151 leggyorsabb ciklusid\u0151 k\u00e9rhet\u0151. A \"value\" param\u00e9ter 0 \u00e9s 255 k\u00f6z\u00f6tt van, 0 a teljesen kikapcsolt \u00e1llapotot, 255 pedig a teljesen bekapcsolt \u00e1llapotot jelenti. Ez a parancs hasznos lehet a CPU \u00e9s a nyomtat\u00f3fej h\u0171t\u0151 ventil\u00e1torok enged\u00e9lyez\u00e9s\u00e9hez.","title":"Ind\u00edt\u00e1si parancsok"},{"location":"MCU_Commands.html#alacsony-szintu-mikrokontroller-konfiguracio","text":"A mikrokontroller legt\u00f6bb parancsa a sikeres ind\u00edt\u00e1s el\u0151tt kezdeti be\u00e1ll\u00edt\u00e1st ig\u00e9nyel. Ez a szakasz \u00e1ttekint\u00e9st ny\u00fajt a konfigur\u00e1ci\u00f3s folyamatr\u00f3l. Ez \u00e9s a k\u00f6vetkez\u0151 szakaszok val\u00f3sz\u00edn\u0171leg csak a Klipper bels\u0151 r\u00e9szletei ir\u00e1nt \u00e9rdekl\u0151d\u0151 fejleszt\u0151k sz\u00e1m\u00e1ra \u00e9rdekesek. Amikor a gazdag\u00e9p el\u0151sz\u00f6r csatlakozik a mikrokontrollerhez, mindig egy adatsz\u00f3t\u00e1r lek\u00e9r\u00e9s\u00e9vel kezdi (tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd protokolt ). Az adatsz\u00f3t\u00e1r lek\u00e9r\u00e9se ut\u00e1n a gazdag\u00e9p ellen\u0151rzi, hogy a mikrokontroller \"konfigur\u00e1lt\" \u00e1llapotban van-e, \u00e9s ha nem, akkor konfigur\u00e1lja. A konfigur\u00e1l\u00e1s a k\u00f6vetkez\u0151 f\u00e1zisokat foglalja mag\u00e1ban: get_config : A gazdag\u00e9p ellen\u0151rzi, hogy a mikrokontroller m\u00e1r konfigur\u00e1lva van-e. A mikrokontroller erre a parancsra egy \"config\" v\u00e1lasz\u00fczenettel v\u00e1laszol. A mikrokontroller szoftvere bekapcsol\u00e1skor mindig konfigur\u00e1latlan \u00e1llapotban indul. Ebben az \u00e1llapotban marad mindaddig, am\u00edg a gazdag\u00e9p be nem fejezi a konfigur\u00e1ci\u00f3s folyamatokat (a finalize_config parancs kiad\u00e1s\u00e1val). Ha a mikrokontroller m\u00e1r konfigur\u00e1lva van egy kor\u00e1bbi munkamenetb\u0151l (\u00e9s a k\u00edv\u00e1nt be\u00e1ll\u00edt\u00e1sokkal van konfigur\u00e1lva), akkor a gazdag\u00e9pnek nincs sz\u00fcks\u00e9ge tov\u00e1bbi l\u00e9p\u00e9sekre, \u00e9s a konfigur\u00e1ci\u00f3s folyamat sikeresen befejez\u0151dik. allocate_oids count=%c : Ezt a parancsot az\u00e9rt adjuk ki, hogy t\u00e1j\u00e9koztassuk a mikrokontrollert az objektum-id-k (oid) maxim\u00e1lis sz\u00e1m\u00e1r\u00f3l, amelyre a gazdag\u00e9pnek sz\u00fcks\u00e9ge van. Ezt a parancsot csak egyszer lehet kiadni. Az oid egy eg\u00e9sz sz\u00e1m\u00fa azonos\u00edt\u00f3, amely minden egyes l\u00e9ptet\u0151h\u00f6z, minden v\u00e9g\u00e1ll\u00e1shoz \u00e9s minden \u00fctemezhet\u0151 GPIO t\u0171h\u00f6z hozz\u00e1rendelt. A gazdag\u00e9p el\u0151re meghat\u00e1rozza a hardver m\u0171k\u00f6dtet\u00e9s\u00e9hez sz\u00fcks\u00e9ges oid-ek sz\u00e1m\u00e1t, \u00e9s ezt \u00e1tadja a mikrokontrollernek, hogy az elegend\u0151 mem\u00f3ri\u00e1t rendelhessen az oid-r\u0151l a bels\u0151 objektumra val\u00f3 lek\u00e9pez\u00e9s t\u00e1rol\u00e1s\u00e1hoz. config_XXX oid=%c ... : A konvenci\u00f3 szerint minden \"config_\" el\u0151taggal kezd\u0151d\u0151 parancs l\u00e9trehoz egy \u00faj mikrokontroller objektumot, \u00e9s hozz\u00e1rendeli a megadott oid-et. P\u00e9ld\u00e1ul a config_digital_out parancs a megadott t\u0171t digit\u00e1lis kimeneti GPIO-k\u00e9nt konfigur\u00e1lja, \u00e9s l\u00e9trehoz egy bels\u0151 objektumot, amelyet a gazdag\u00e9p haszn\u00e1lhat az adott GPIO m\u00f3dos\u00edt\u00e1sainak \u00fctemez\u00e9s\u00e9re. A config parancsba \u00e1tadott oid param\u00e9tert a gazdag\u00e9p v\u00e1lasztja ki, \u00e9s annak nulla \u00e9s az allocate_oids parancsban megadott maxim\u00e1lis sz\u00e1m k\u00f6z\u00f6tt kell lennie. A config parancsok csak akkor futtathat\u00f3k, ha a mikrokontroller nincs konfigur\u00e1lt \u00e1llapotban (azaz a gazdag\u00e9p \u00e1ltal elk\u00fcld\u00f6tt finalize_config parancs el\u0151tt) \u00e9s az allocate_oids parancs elk\u00fcld\u00e9se ut\u00e1n. finalize_config crc=%u : A finalize_config parancs a mikrokontrollert egy konfigur\u00e1latlan \u00e1llapotb\u00f3l egy konfigur\u00e1lt \u00e1llapotba helyezi \u00e1t. A mikrokontrollernek \u00e1tadott crc param\u00e9ter t\u00e1rol\u00e1sra ker\u00fcl, \u00e9s a \"config\" v\u00e1lasz\u00fczenetekben visszak\u00fcld\u00e9sre ker\u00fcl a gazdag\u00e9pnek. A konvenci\u00f3 szerint az \u00e1llom\u00e1s 32 bites CRC-t vesz az \u00e1ltala k\u00e9rt konfigur\u00e1ci\u00f3r\u00f3l, \u00e9s a k\u00e9s\u0151bbi kommunik\u00e1ci\u00f3s munkamenetek kezdet\u00e9n ellen\u0151rzi, hogy a mikrokontrollerben t\u00e1rolt CRC pontosan megegyezik-e a k\u00edv\u00e1nt CRC-vel. Ha a CRC nem egyezik, akkor a gazdag\u00e9p tudja, hogy a mikrokontroller nem az \u00e1ltala k\u00edv\u00e1nt \u00e1llapotba lett konfigur\u00e1lva.","title":"Alacsony szint\u0171 mikrokontroller konfigur\u00e1ci\u00f3"},{"location":"MCU_Commands.html#gyakori-mikrokontroller-objektumok","text":"Ez a szakasz n\u00e9h\u00e1ny gyakran haszn\u00e1lt konfigur\u00e1ci\u00f3s parancsot sorol fel. config_digital_out oid=%c pin=%u value=%c default_value=%c max_duration=%u : Ez a parancs l\u00e9trehoz egy bels\u0151 mikrokontroller objektumot a megadott GPIO 't\u0171' sz\u00e1m\u00e1ra. A t\u0171 digit\u00e1lis kimeneti m\u00f3dban lesz konfigur\u00e1lva, \u00e9s a 'value' \u00e1ltal megadott kezdeti \u00e9rt\u00e9kre lesz be\u00e1ll\u00edtva (0 az alacsony, 1 a magas). A digital_out objektum l\u00e9trehoz\u00e1sa lehet\u0151v\u00e9 teszi a gazdag\u00e9p sz\u00e1m\u00e1ra, hogy az adott t\u0171 GPIO friss\u00edt\u00e9seit meghat\u00e1rozott id\u0151pontokban \u00fctemezze (l\u00e1sd az al\u00e1bb ismertetett queue_digital_out parancsot). Ha a mikrokontroller szoftvere kikapcsol\u00e1si m\u00f3dba ker\u00fcl, akkor az \u00f6sszes konfigur\u00e1lt digital_out objektum 'default_value' \u00e9rt\u00e9kre ker\u00fcl. A 'max_duration' param\u00e9ter egy biztons\u00e1gi ellen\u0151rz\u00e9s megval\u00f3s\u00edt\u00e1s\u00e1ra szolg\u00e1l. Ha nem nulla, akkor ez a maxim\u00e1lis \u00f3rajelek sz\u00e1ma, amelyet a gazdag\u00e9p tov\u00e1bbi friss\u00edt\u00e9s n\u00e9lk\u00fcl az adott GPIO-t nem alap\u00e9rtelmezett \u00e9rt\u00e9kre \u00e1ll\u00edthatja. P\u00e9ld\u00e1ul, ha az alap\u00e9rtelmezett \u00e9rt\u00e9k nulla, a max_duration pedig 16000, akkor ha egy \u00e9rt\u00e9kre \u00e1ll\u00edtja a GPIO-t, akkor 16000 \u00f3rajelen bel\u00fcl \u00fajabb friss\u00edt\u00e9st kell \u00fctemeznie a GPIO-n (null\u00e1ra vagy egyre). Ez a biztons\u00e1gi funkci\u00f3 haszn\u00e1lhat\u00f3 a f\u0171t\u00e9si kimenetek biztos\u00edt\u00e1s\u00e1ra, hogy a gazdag\u00e9p ne kapcsolja be a f\u0171t\u00e9st, majd ne kapcsoljon ki. config_pwm_out oid=%c pin=%u cycle_ticks=%u value=%hu default_value=%hu max_duration=%u : Ez a parancs l\u00e9trehoz egy bels\u0151 objektumot a hardveralap\u00fa PWM-t\u0171kh\u00f6z, amelyek friss\u00edt\u00e9s\u00e9t a gazdag\u00e9p be tudja \u00fctemezni. Haszn\u00e1lata anal\u00f3g a config_digital_out paranccsal. A param\u00e9terek le\u00edr\u00e1s\u00e1t l\u00e1sd a 'set_pwm_out' \u00e9s a 'config_digital_out' parancsok le\u00edr\u00e1s\u00e1ban. config_analog_in oid=%c pin=%u : Ez a parancs egy t\u0171 anal\u00f3g bemeneti mintav\u00e9telez\u00e9si m\u00f3dban t\u00f6rt\u00e9n\u0151 konfigur\u00e1l\u00e1s\u00e1ra szolg\u00e1l. A konfigur\u00e1l\u00e1s ut\u00e1n a t\u0171 rendszeres id\u0151k\u00f6z\u00f6nk\u00e9nt mintav\u00e9telezhet\u0151 a query_analog_in paranccsal (l\u00e1sd al\u00e1bb). config_stepper oid=%c step_pin=%c dir_pin=%c invert_step=%c step_pulse_ticks=%u : Ez a parancs l\u00e9trehoz egy bels\u0151 l\u00e9ptet\u0151 objektumot. A 'step_pin' \u00e9s 'dir_pin' param\u00e9terek megadj\u00e1k a l\u00e9p\u00e9st \u00e9s ir\u00e1nyokat; ez a parancs digit\u00e1lis kimeneti m\u00f3dban konfigur\u00e1lja \u0151ket. Az 'invert_step' param\u00e9ter meghat\u00e1rozza, hogy a l\u00e9p\u00e9s emelked\u0151 \u00e9lre (invert_step=0) vagy cs\u00f6kken\u0151 \u00e9lre (invert_step=1) t\u00f6rt\u00e9njen. A 'step_pulse_ticks' param\u00e9ter a l\u00e9p\u00e9simpulzus minim\u00e1lis id\u0151tartam\u00e1t hat\u00e1rozza meg. Ha az MCU a 'STEPPER_BOTH_EDGE=1' konstansot export\u00e1lja, akkor a step_pulse_ticks=0 \u00e9s az invert_step=-1 be\u00e1ll\u00edt\u00e1sa a step_pin emelked\u0151 \u00e9s cs\u00f6kken\u0151 \u00e9leire t\u00f6rt\u00e9n\u0151 l\u00e9p\u00e9st is be\u00e1ll\u00edtja. config_endstop oid=%c pin=%c pull_up=%c stepper_count=%c : Ez a parancs l\u00e9trehoz egy bels\u0151 \"endstop\" objektumot. Ez a v\u00e9g\u00e1ll\u00e1si t\u0171k megad\u00e1s\u00e1ra \u00e9s a \"kezd\u0151pont\" m\u0171veletek enged\u00e9lyez\u00e9s\u00e9re szolg\u00e1l (l\u00e1sd al\u00e1bb az endstop_home parancsot). A parancs a megadott t\u0171t digit\u00e1lis bemeneti m\u00f3dban konfigur\u00e1lja. A 'pull_up' param\u00e9ter hat\u00e1rozza meg, hogy a hardver \u00e1ltal biztos\u00edtott pullup ellen\u00e1ll\u00e1sok a t\u0171h\u00f6z (ha vannak) enged\u00e9lyezve lesznek-e. A 'stepper_count' param\u00e9ter meghat\u00e1rozza a maxim\u00e1lis sz\u00e1m\u00fa steppert, amelyet ennek a v\u00e9g\u00e1ll\u00e1snak meg kell \u00e1ll\u00edtania egy kezd\u0151pont m\u0171velet sor\u00e1n (l\u00e1sd az endstop_home parancsot al\u00e1bb). config_spi oid=%c bus=%u pin=%u mode=%u rate=%u shutdown_msg=%*s : Ez a parancs l\u00e9trehoz egy bels\u0151 SPI objektumot. A spi_transfer \u00e9s spi_send parancsokkal egy\u00fctt haszn\u00e1lhat\u00f3 (l\u00e1sd al\u00e1bb). A \"bus\" azonos\u00edtja a haszn\u00e1lni k\u00edv\u00e1nt SPI-buszt (ha a mikrokontroller egyn\u00e9l t\u00f6bb SPI-busszal rendelkezik). A \"pin\" az eszk\u00f6z chipkiv\u00e1laszt\u00f3 (CS) t\u0171j\u00e9t hat\u00e1rozza meg. A \"mode\" az SPI m\u00f3dot jel\u00f6li (0 \u00e9s 3 k\u00f6z\u00f6tt kell lennie). A \"rate\" param\u00e9ter az SPI-busz sebess\u00e9g\u00e9t adja meg (m\u00e1sodpercenk\u00e9nti ciklusokban). V\u00e9g\u00fcl a \"shutdown_msg\" egy SPI-parancs, amelyet az adott eszk\u00f6znek kell k\u00fcldeni, ha a mikrokontroller le\u00e1ll\u00e1si \u00e1llapotba ker\u00fcl. config_spi_without_cs oid=%c bus=%u mode=%u rate=%u shutdown_msg=%*s : Ez a parancs hasonl\u00f3 a config_spi parancshoz, de CS t\u0171 defin\u00edci\u00f3 n\u00e9lk\u00fcl. Hasznos olyan SPI eszk\u00f6z\u00f6kn\u00e9l, amelyek nem rendelkeznek Chip Select vonallal.","title":"Gyakori mikrokontroller objektumok"},{"location":"MCU_Commands.html#gyakori-parancsok","text":"Ez a szakasz n\u00e9h\u00e1ny gyakran haszn\u00e1lt fut\u00e1sidej\u0171 parancsot sorol fel. Val\u00f3sz\u00edn\u0171leg csak a Klipperbe betekint\u00e9st nyerni k\u00edv\u00e1n\u00f3 fejleszt\u0151k sz\u00e1m\u00e1ra \u00e9rdekes. set_digital_out_pwm_cycle oid=%c cycle_ticks=%u : Ez a parancs egy (config_digital_out \u00e1ltal l\u00e9trehozott) digit\u00e1lis kimeneti t\u0171t \u00fagy konfigur\u00e1l, hogy \"szoftveres PWM\"-et haszn\u00e1ljon. A 'cycle_ticks' a PWM-ciklushoz tartoz\u00f3 \u00f3rajelek sz\u00e1ma. Mivel a kimeneti kapcsol\u00e1s a mikrokontroller szoftver\u00e9ben val\u00f3sul meg, aj\u00e1nlott, hogy a 'cycle_ticks' 10 ms vagy ann\u00e1l nagyobb id\u0151nek feleljen meg. queue_digital_out oid=%c clock=%u on_ticks=%u : Ez a parancs egy digit\u00e1lis kimeneti GPIO t\u0171 v\u00e1lt\u00e1s\u00e1t \u00fctemezi a megadott \u00f3rajelen. A parancs haszn\u00e1lat\u00e1hoz a mikrokontroller konfigur\u00e1l\u00e1sa sor\u00e1n ki kell adni egy 'config_digital_out' parancsot ugyanazzal a 'oid' param\u00e9terrel. Ha a 'set_digital_out_pwm_cycle' parancsot h\u00edvt\u00e1k, akkor az 'on_ticks' a pwm-ciklus bekapcsol\u00e1si id\u0151tartama (\u00f3rajelekben). Ellenkez\u0151 esetben az 'on_ticks' \u00e9rt\u00e9k\u00e9nek vagy 0-nak (alacsony fesz\u00fclts\u00e9g eset\u00e9n) vagy 1-nek (magas fesz\u00fclts\u00e9g eset\u00e9n) kell lennie. queue_pwm_out oid=%c clock=%u value=%hu : Be\u00fctemezi a hardveres PWM kimeneti t\u0171 v\u00e1ltoz\u00e1s\u00e1t. L\u00e1sd a 'queue_digital_out' \u00e9s a 'config_pwm_out' parancsokat tov\u00e1bbi inform\u00e1ci\u00f3k\u00e9rt. query_analog_in oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u min_value=%hu max_value=%hu : Ez a parancs be\u00e1ll\u00edtja az anal\u00f3g bemeneti mint\u00e1k ism\u00e9tl\u0151d\u0151 \u00fctemez\u00e9s\u00e9t. A parancs haszn\u00e1lat\u00e1hoz a mikrokontroller konfigur\u00e1l\u00e1sa sor\u00e1n ki kell adni egy 'config_analog_in' parancsot ugyanazzal az 'oid' param\u00e9terrel. A mint\u00e1k a 'clock' id\u0151pontt\u00f3l kezd\u0151dnek, a kapott \u00e9rt\u00e9kr\u0151l minden 'rest_ticks' \u00f3ra\u00fctemenk\u00e9nt jelent\u00e9st k\u00e9sz\u00edt, a 'sample_count' sz\u00e1m\u00fa alkalommal t\u00falmint\u00e1zza a mint\u00e1t, \u00e9s a t\u00falmint\u00e1zott mint\u00e1k k\u00f6z\u00f6tt 'sample_ticks' sz\u00e1m\u00fa \u00f3ra\u00fctemnyi sz\u00fcnetet tart. A 'min_value' \u00e9s 'max_value' param\u00e9terek egy biztons\u00e1gi funkci\u00f3t val\u00f3s\u00edtanak meg. A mikrokontroller szoftvere ellen\u0151rizni fogja, hogy a mintav\u00e9telezett \u00e9rt\u00e9k (az esetleges t\u00falmintav\u00e9telez\u00e9s ut\u00e1n) mindig a megadott tartom\u00e1nyon bel\u00fcl van-e. Ezt a f\u0171t\u0151testeket vez\u00e9rl\u0151 h\u0151szenzorokhoz csatlakoztatott t\u0171kkel val\u00f3 haszn\u00e1latra sz\u00e1nj\u00e1k. Ezzel ellen\u0151rizhet\u0151, hogy a f\u0171t\u0151test egy h\u0151m\u00e9rs\u00e9klet tartom\u00e1nyon bel\u00fcl van-e. get_clock : E parancs hat\u00e1s\u00e1ra a mikrokontroller egy \"\u00f3rajel\" v\u00e1lasz\u00fczenetet gener\u00e1l. A gazdag\u00e9p m\u00e1sodpercenk\u00e9nt egyszer k\u00fcldi el ezt a parancsot, hogy megkapja a mikrokontroller \u00f3rajel \u00e9rt\u00e9k\u00e9t, \u00e9s megbecs\u00fclje a gazdag\u00e9p \u00e9s a mikrokontroller \u00f3rajelei k\u00f6z\u00f6tti elt\u00e9r\u00e9st. Ez lehet\u0151v\u00e9 teszi a gazdag\u00e9p sz\u00e1m\u00e1ra a mikrokontroller \u00f3rajel\u00e9nek pontos becsl\u00e9s\u00e9t.","title":"Gyakori parancsok"},{"location":"MCU_Commands.html#lepteto-parancsok","text":"queue_step oid=%c interval=%u count=%hu add=%hi : Ez a parancs \u00fctemezi a 'sz\u00e1m\u00edt\u00e1si' l\u00e9p\u00e9st az adott l\u00e9ptet\u0151h\u00f6z, az 'intervallum' l\u00e9p\u00e9sek k\u00f6z\u00f6tti \u00f3rajellel. Az els\u0151 l\u00e9p\u00e9s az 'intervallum' \u00f3rajelek sz\u00e1ma lesz az adott l\u00e9ptet\u0151 utols\u00f3 \u00fctemezett l\u00e9p\u00e9se \u00f3ta. Ha az 'add' nem nulla, akkor az intervallum minden l\u00e9p\u00e9s ut\u00e1n az 'add' \u00e9rt\u00e9kkel m\u00f3dosul. Ez a parancs a megadott intervallum/count/add szekvenci\u00e1t egy l\u00e9ptet\u0151k\u00e9nti sorba illeszti. A norm\u00e1l m\u0171k\u00f6d\u00e9s sor\u00e1n t\u00f6bb sz\u00e1z ilyen szekvencia \u00e1llhat a sorban. Az \u00faj szekvenci\u00e1k a sor v\u00e9g\u00e9re ker\u00fclnek, \u00e9s amint minden szekvencia teljes\u00edti a 'sz\u00e1m' l\u00e9p\u00e9sek sz\u00e1m\u00e1t, a sor elej\u00e9re ker\u00fclnek. Ez a rendszer lehet\u0151v\u00e9 teszi a mikrokontroller sz\u00e1m\u00e1ra, hogy t\u00f6bb sz\u00e1zezer l\u00e9p\u00e9st \u00e1ll\u00edtson sorba. Mindezt megb\u00edzhat\u00f3 \u00e9s kisz\u00e1m\u00edthat\u00f3 \u00fctemez\u00e9si id\u0151vel. set_next_step_dir oid=%c dir=%c : Ez a parancs adja meg a k\u00f6vetkez\u0151 queue_step parancs \u00e1ltal haszn\u00e1lt dir_pin \u00e9rt\u00e9k\u00e9t. reset_step_clock oid=%c clock=%u : Norm\u00e1lis esetben a l\u00e9p\u00e9s id\u0151z\u00edt\u00e9se az adott l\u00e9ptet\u0151 utols\u00f3 l\u00e9p\u00e9s\u00e9hez viszony\u00edtva t\u00f6rt\u00e9nik. Ez a parancs vissza\u00e1ll\u00edtja az \u00f3rajelet, \u00edgy a k\u00f6vetkez\u0151 l\u00e9p\u00e9s a megadott '\u00f3rajel' id\u0151ponthoz k\u00e9pest t\u00f6rt\u00e9nik. A gazdag\u00e9p \u00e1ltal\u00e1ban csak a nyomtat\u00e1s kezdet\u00e9n k\u00fcldi ezt a parancsot. stepper_get_position oid=%c : E parancs hat\u00e1s\u00e1ra a mikrokontroller egy \"stepper_position\" v\u00e1lasz\u00fczenetet gener\u00e1l a l\u00e9ptet\u0151 aktu\u00e1lis poz\u00edci\u00f3j\u00e1val. A poz\u00edci\u00f3 a dir=1-gyel gener\u00e1lt l\u00e9p\u00e9sek teljes sz\u00e1ma m\u00ednusz a dir=0-val gener\u00e1lt l\u00e9p\u00e9sek teljes sz\u00e1ma. endstop_home oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u pin_value=%c : Ezt a parancsot a l\u00e9ptet\u0151 \"kezd\u0151pont\" m\u0171veletek sor\u00e1n haszn\u00e1lj\u00e1k. A parancs haszn\u00e1lat\u00e1hoz a mikrokontroller konfigur\u00e1l\u00e1sa sor\u00e1n ki kell adni egy 'config_endstop' parancsot ugyanazzal az 'oid' param\u00e9terrel. Amikor ez a parancs megh\u00edv\u00e1sra ker\u00fcl, a mikrokontroller minden 'rest_ticks' \u00f3rajelenk\u00e9nt mintav\u00e9telezi az endstop-t\u0171t, \u00e9s ellen\u0151rzi, hogy annak \u00e9rt\u00e9ke megegyezik-e a 'pin_value' \u00e9rt\u00e9kkel. Ha az \u00e9rt\u00e9k megegyezik (\u00e9s tov\u00e1bbra is megegyezik a 'sample_count' tov\u00e1bbi 'sample_ticks' t\u00e1vols\u00e1gra elosztott mint\u00e1kon kereszt\u00fcl), akkor a kapcsol\u00f3d\u00f3 l\u00e9ptet\u0151 mozg\u00e1si sora t\u00f6rl\u0151dik, \u00e9s a l\u00e9ptet\u0151 azonnal meg\u00e1ll. A gazdag\u00e9p ezt a parancsot a kezd\u0151pont megval\u00f3s\u00edt\u00e1s\u00e1ra haszn\u00e1lja. A gazdag\u00e9p utas\u00edtja a v\u00e9g\u00e1ll\u00e1st, hogy mintav\u00e9telezzen a v\u00e9g\u00e1ll\u00e1si triggerre, majd egy sor queue_step parancsot ad ki a l\u00e9ptet\u0151 mozgat\u00e1s\u00e1ra a v\u00e9g\u00e1ll\u00e1s fel\u00e9. Amint a l\u00e9ptet\u0151 el\u00e9ri a v\u00e9g\u00e1ll\u00e1st, a kapcsol\u00f3 \u00e9rz\u00e9keli, a mozg\u00e1s meg\u00e1ll, \u00e9s a gazdag\u00e9pet \u00e9rtes\u00edti.","title":"L\u00e9ptet\u0151 parancsok"},{"location":"MCU_Commands.html#sor-athelyezese","text":"Minden queue_step parancs a mikrovez\u00e9rl\u0151 \"move queue\" sor\u00e1ban l\u00e9v\u0151 bejegyz\u00e9st haszn\u00e1lja. Ez a v\u00e1r\u00f3lista a \"finalize_config\" parancs fogad\u00e1sakor ker\u00fcl kioszt\u00e1sra, \u00e9s a \"config\" v\u00e1lasz\u00fczenetekben jelenti a rendelkez\u00e9sre \u00e1ll\u00f3 v\u00e1r\u00f3lista-bejegyz\u00e9sek sz\u00e1m\u00e1t. A gazdag\u00e9p felel\u0151ss\u00e9ge, hogy a queue_step parancs elk\u00fcld\u00e9se el\u0151tt megbizonyosodjon arr\u00f3l, hogy van-e szabad hely a v\u00e1r\u00f3list\u00e1n. A gazdag\u00e9p ezt \u00fagy teszi, hogy kisz\u00e1m\u00edtja az egyes queue_step parancsok mikor fejez\u0151dnek be, \u00e9s ennek megfelel\u0151en \u00fctemezi az \u00faj queue_step parancsokat.","title":"Sor \u00e1thelyez\u00e9se"},{"location":"MCU_Commands.html#spi-parancsok","text":"spi_transfer oid=%c data=%*s : Ez a parancs arra k\u00e9szteti a mikrokontrollert, hogy a 'data'-t a 'oid' \u00e1ltal megadott SPI eszk\u00f6zre k\u00fcldje, \u00e9s egy \"spi_transfer_response\" v\u00e1lasz\u00fczenetet gener\u00e1l az \u00e1tvitel sor\u00e1n visszak\u00fcld\u00f6tt adatokkal. spi_send oid=%c data=%*s : Ez a parancs hasonl\u00f3 az \"spi_transfer\" parancshoz, de nem gener\u00e1l \"spi_transfer_response\" \u00fczenetet.","title":"SPI parancsok"},{"location":"Manual_Level.html","text":"K\u00e9zi szintez\u00e9s \u00b6 Ez a dokumentum a Z v\u00e9g\u00e1ll\u00e1s kalibr\u00e1l\u00e1s\u00e1hoz \u00e9s a t\u00e1rgyasztalt kiegyenl\u00edt\u0151 csavarok be\u00e1ll\u00edt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges eszk\u00f6z\u00f6ket ismerteti. Z v\u00e9g\u00e1ll\u00e1s kalibr\u00e1l\u00e1sa \u00b6 A pontos Z v\u00e9g\u00e1ll\u00e1s poz\u00edci\u00f3ja kritikus fontoss\u00e1g\u00fa a j\u00f3 min\u0151s\u00e9g\u0171 nyomatok elk\u00e9sz\u00edt\u00e9s\u00e9hez. Vedd figyelembe azonban, hogy maga a Z v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 pontoss\u00e1ga korl\u00e1toz\u00f3 t\u00e9nyez\u0151 lehet. Ha Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3kat haszn\u00e1lunk, akkor fontoljuk meg a v\u00e9gstop f\u00e1zis \u00e9rz\u00e9kel\u00e9s enged\u00e9lyez\u00e9s\u00e9t a kapcsol\u00f3 pontoss\u00e1g\u00e1nak jav\u00edt\u00e1sa \u00e9rdek\u00e9ben. A Z v\u00e9gpont kalibr\u00e1l\u00e1s\u00e1nak v\u00e9grehajt\u00e1s\u00e1hoz kapcsold be a nyomtat\u00f3t, utas\u00edtsa a fejet, hogy mozogjon egy Z poz\u00edci\u00f3ba, amely legal\u00e1bb \u00f6t millim\u00e9terrel a t\u00e1rgyasztal felett van (ha m\u00e9g nincs), utas\u00edtsa a fejet, hogy mozogjon egy X-Y poz\u00edci\u00f3ba, k\u00f6zel a nyomtat\u00f3 k\u00f6zep\u00e9hez a t\u00e1rgyasztalra, majd navig\u00e1lj az OctoPrint termin\u00e1l f\u00fclre, \u00e9s futtassa: Z_ENDSTOP_CALIBRATE Ezut\u00e1n k\u00f6vesse a \"a pap\u00edrteszt\" pontban le\u00edrt l\u00e9p\u00e9seket a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tti t\u00e9nyleges t\u00e1vols\u00e1g meghat\u00e1roz\u00e1s\u00e1hoz az adott helyen. Ha ezek a l\u00e9p\u00e9sek befejez\u0151dtek, akkor ACCEPT \u00e9s elmentheti az eredm\u00e9nyeket a config f\u00e1jlba a k\u00f6vetkez\u0151vel: SAVE_CONFIG El\u0151ny\u00f6sebb, ha a Z v\u00e9g\u00e1ll\u00e1skapcsol\u00f3t a Z tengelynek az \u00e1ggyal ellent\u00e9tes v\u00e9g\u00e9re helyezz\u00fck. (A t\u00e1rgyasztalt\u00f3l t\u00e1volabb t\u00f6rt\u00e9n\u0151 kezd\u0151pont keres\u00e9s robusztusabb, mivel akkor \u00e1ltal\u00e1ban mindig biztons\u00e1gosan lehet a Z-t kezd\u0151pontra \u00e1ll\u00edtani.) Ha azonban a t\u00e1rgyasztal fel\u00e9 kell kezd\u0151pontot felvenni, aj\u00e1nlott a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3t \u00fagy be\u00e1ll\u00edtani, hogy az kis t\u00e1vols\u00e1gra (pl. 0,5 mm-re) a t\u00e1rgyasztal f\u00f6l\u00f6tt kapcsoljon. Majdnem minden v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 biztons\u00e1gosan lenyomhat\u00f3 egy kis t\u00e1vols\u00e1ggal a kiold\u00e1si ponton t\u00fal. Ha ez megt\u00f6rt\u00e9nt, azt kell tapasztalni, hogy a Z_ENDSTOP_CALIBRATE parancs egy kis pozit\u00edv \u00e9rt\u00e9ket (pl. .5mm) jelez a Z poz\u00edci\u00f3 v\u00e9g\u00e1ll\u00e1shoz. A v\u00e9g\u00e1ll\u00e1s \u00e9rz\u00e9kel\u00e9se akkor, amikor az m\u00e9g bizonyos t\u00e1vols\u00e1gra van a t\u00e1rgyasztalt\u00f3l, cs\u00f6kkenti a v\u00e9letlen t\u00e1rgyasztalba \u00fctk\u00f6z\u00e9sek kock\u00e1zat\u00e1t. Egyes nyomtat\u00f3kon lehet\u0151s\u00e9g van a fizikai v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 hely\u00e9nek k\u00e9zi be\u00e1ll\u00edt\u00e1s\u00e1ra. Azonban aj\u00e1nlott a Z v\u00e9g\u00e1ll\u00e1s poz\u00edci\u00f3n\u00e1l\u00e1s\u00e1t szoftveresen elv\u00e9gezni a Klipperrel. Ha a v\u00e9g\u00e1ll\u00e1s fizikai helyzete megfelel\u0151 helyen van, a tov\u00e1bbi be\u00e1ll\u00edt\u00e1sokat a Z_ENDSTOP_CALIBRATE futtat\u00e1s\u00e1val vagy a Z position_endstop konfigur\u00e1ci\u00f3s f\u00e1jlban l\u00e9v\u0151 Z position_endstop manu\u00e1lis friss\u00edt\u00e9s\u00e9vel lehet elv\u00e9gezni. T\u00e1rgyasztal szintez\u0151csavarok be\u00e1ll\u00edt\u00e1sa \u00b6 A t\u00e1rgyasztalt kiegyenl\u00edt\u0151 csavarokkal t\u00f6rt\u00e9n\u0151 j\u00f3 szintez\u00e9s titka a nyomtat\u00f3 nagy pontoss\u00e1g\u00fa mozg\u00e1srendszer\u00e9nek kihaszn\u00e1l\u00e1sa a szintez\u00e9si folyamat sor\u00e1n. Ez \u00fagy t\u00f6rt\u00e9nik, hogy a f\u00fav\u00f3k\u00e1t az egyes szintez\u0151csavarok k\u00f6zel\u00e9ben l\u00e9v\u0151 poz\u00edci\u00f3ba navig\u00e1ljuk, majd az adott csavart addig \u00e1ll\u00edtjuk, am\u00edg a t\u00e1rgyasztal egy meghat\u00e1rozott t\u00e1vols\u00e1gra nem ker\u00fcl a f\u00fav\u00f3k\u00e1t\u00f3l. A Klipper rendelkezik egy eszk\u00f6zzel, amely ezt seg\u00edti. Az eszk\u00f6z haszn\u00e1lat\u00e1hoz meg kell adni az egyes csavarok X-Y helyzet\u00e9t. Ezt egy [bed_screws] konfigur\u00e1ci\u00f3s szakasz l\u00e9trehoz\u00e1s\u00e1val \u00e9rhetj\u00fck el. Ez p\u00e9ld\u00e1ul valahogy \u00edgy n\u00e9zhet ki: [bed_screws] screw1: 100, 50 screw2: 100, 150 screw3: 150, 100 Ha egy t\u00e1rgyasztal csavar a t\u00e1rgyasztal alatt van, akkor add meg az X-Y poz\u00edci\u00f3t k\u00f6zvetlen\u00fcl a csavar felett. Ha a csavar a t\u00e1rgyasztalon k\u00edv\u00fcl van, akkor add meg a csavarhoz legk\u00f6zelebbi X-Y-poz\u00edci\u00f3t, amely m\u00e9g a t\u00e1rgyasztal hat\u00f3t\u00e1vols\u00e1g\u00e1n bel\u00fcl van. Miut\u00e1n a konfigur\u00e1ci\u00f3s f\u00e1jl k\u00e9szen \u00e1ll, futtassa a RESTART parancsot a konfigur\u00e1ci\u00f3 bet\u00f6lt\u00e9s\u00e9hez, majd elind\u00edthatja az eszk\u00f6zt a k\u00f6vetkez\u0151 futtat\u00e1s\u00e1val: BED_SCREWS_ADJUST Ez az eszk\u00f6z a nyomtat\u00f3 f\u00fav\u00f3k\u00e1t minden egyes csavar X-Y hely\u00e9re mozgatja, majd a f\u00fav\u00f3k\u00e1t Z=0 magass\u00e1gba mozgatja. Ezen a ponton a \"pap\u00edrteszt\" seg\u00edts\u00e9g\u00e9vel k\u00f6zvetlen\u00fcl a f\u00fav\u00f3ka alatt lehet be\u00e1ll\u00edtani a t\u00e1rgyasztal csavarj\u00e1t. L\u00e1sd a \"a pap\u00edrteszt\" -ben le\u00edrtakat. De a f\u00fav\u00f3ka k\u00fcl\u00f6nb\u00f6z\u0151 magass\u00e1gokba navig\u00e1l\u00e1sa helyett a t\u00e1rgyasztalcsavart \u00e1ll\u00edtsd be. Addig \u00e1ll\u00edtsd a csavart, am\u00edg a pap\u00edr el\u0151re-h\u00e1tra tol\u00e1sa k\u00f6zben kis s\u00farl\u00f3d\u00e1s nem keletkezik. Miut\u00e1n a csavart \u00fagy \u00e1ll\u00edtottuk be, hogy egy kis s\u00farl\u00f3d\u00e1s \u00e9rezhet\u0151 legyen, futtassuk az ACCEPT vagy az ADJUSTED parancsot. Haszn\u00e1ld az ADJUSTED parancsot, ha a szintez\u0151csavar be\u00e1ll\u00edt\u00e1s\u00e1ra van sz\u00fcks\u00e9g (\u00e1ltal\u00e1ban b\u00e1rmi, ami t\u00f6bb mint 1/8 csavarfordulat). Haszn\u00e1ld az ACCEPT parancsot, ha nincs sz\u00fcks\u00e9g jelent\u0151s be\u00e1ll\u00edt\u00e1sra. Mindk\u00e9t parancs hat\u00e1s\u00e1ra a szersz\u00e1m a k\u00f6vetkez\u0151 csavarhoz l\u00e9p. (Ha az ADJUSTED parancsot haszn\u00e1lod, a szersz\u00e1m egy tov\u00e1bbi szintez\u0151csavar-be\u00e1ll\u00edt\u00e1si ciklust \u00fctemez be. A szersz\u00e1m sikeresen befejezi, ha az \u00f6sszes szintez\u0151csavarr\u00f3l bebizonyosodik, hogy nem ig\u00e9nyel jelent\u0151s be\u00e1ll\u00edt\u00e1st.) Az ABORT paranccsal id\u0151 el\u0151tt ki lehet l\u00e9pni a szintez\u00e9sb\u0151l. Ez a rendszer akkor m\u0171k\u00f6dik a legjobban, ha a nyomtat\u00f3 s\u00edk nyomtat\u00e1si fel\u00fclettel (p\u00e9ld\u00e1ul \u00fcveggel) \u00e9s egyenes s\u00ednekkel rendelkezik. A t\u00e1rgyasztal szintez\u0151 eszk\u00f6z sikeres elv\u00e9gz\u00e9se ut\u00e1n a t\u00e1rgyasztal k\u00e9szen \u00e1ll a nyomtat\u00e1sra. Finom menetes t\u00e1rgyasztal csavar be\u00e1ll\u00edt\u00e1sok \u00b6 Ha a nyomtat\u00f3 h\u00e1rom szintez\u0151csavart haszn\u00e1l, \u00e9s mindh\u00e1rom csavar a t\u00e1rgyasztal alatt van, akkor lehets\u00e9ges egy m\u00e1sodik \"nagy pontoss\u00e1g\u00fa\" szintez\u00e9si l\u00e9p\u00e9s elv\u00e9gz\u00e9se. Ez \u00fagy t\u00f6rt\u00e9nik, hogy a f\u00fav\u00f3k\u00e1t olyan helyekre ir\u00e1ny\u00edtja, ahol a t\u00e1rgyasztal minden egyes szintez\u0151csavar be\u00e1ll\u00edt\u00e1ssal nagyobb t\u00e1vols\u00e1got mozdul el. Vegy\u00fcnk p\u00e9ld\u00e1ul egy t\u00e1rgyasztalt, amelynek A, B \u00e9s C hely\u00e9n csavarok vannak: A C helyen l\u00e9v\u0151 szintez\u0151csavar minden egyes be\u00e1ll\u00edt\u00e1sa eset\u00e9n a t\u00e1rgyasztal a fennmarad\u00f3 k\u00e9t szintez\u0151csavar \u00e1ltal meghat\u00e1rozott inga ment\u00e9n fog lengeni (itt z\u00f6ld vonalk\u00e9nt l\u00e1that\u00f3). Ebben a helyzetben a szintez\u0151csavar \u00e1ll\u00edt\u00e1sa a C helyzetben a t\u00e1rgyasztalt kissebb a D helyzetben egy nagyobb m\u00e9rt\u00e9kben mozd\u00edtja el. A funkci\u00f3 enged\u00e9lyez\u00e9s\u00e9hez meg kell hat\u00e1rozni a tov\u00e1bbi f\u00fav\u00f3kakoordin\u00e1t\u00e1kat, \u00e9s hozz\u00e1 kell adni \u0151ket a konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Ez p\u00e9ld\u00e1ul \u00edgy n\u00e9zhet ki: [bed_screws] screw1: 100, 50 screw1_fine_adjust: 0, 0 screw2: 100, 150 screw2_fine_adjust: 300, 300 screw3: 150, 100 screw3_fine_adjust: 0, 100 Ha ez a funkci\u00f3 enged\u00e9lyezve van, a BED_SCREWS_ADJUST eszk\u00f6z el\u0151sz\u00f6r k\u00f6zvetlen\u00fcl az egyes csavarok poz\u00edci\u00f3i felett k\u00e9r durva be\u00e1ll\u00edt\u00e1sokat, \u00e9s ha ezeket elfogadta, akkor a tov\u00e1bbi helyeken finom be\u00e1ll\u00edt\u00e1sokat k\u00e9r. Folytassa az ACCEPT \u00e9s ADJUSTED haszn\u00e1lat\u00e1val minden egyes poz\u00edci\u00f3ban. A t\u00e1rgyasztal szintez\u0151csavarjainak be\u00e1ll\u00edt\u00e1sa m\u00e9r\u0151szonda seg\u00edts\u00e9g\u00e9vel \u00b6 Ez egy m\u00e1sik m\u00f3dja a t\u00e1rgyasztal szint kalibr\u00e1l\u00e1s\u00e1nak a m\u00e9r\u0151szonda seg\u00edts\u00e9g\u00e9vel. Haszn\u00e1lat\u00e1hoz rendelkeznie kell Z-szond\u00e1val (BL Touch, indukt\u00edv \u00e9rz\u00e9kel\u0151 stb.). A funkci\u00f3 enged\u00e9lyez\u00e9s\u00e9hez meg kell hat\u00e1rozni a f\u00fav\u00f3ka koordin\u00e1t\u00e1it \u00fagy, hogy a Z szonda a csavarok felett legyen, majd hozz\u00e1 kell adni a konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Ez p\u00e9ld\u00e1ul \u00edgy n\u00e9zhet ki: [screws_tilt_adjust] screw1: -5, 30 screw1_name: front left screw screw2: 155, 30 screw2_name: front right screw screw3: 155, 190 screw3_name: rear right screw screw4: -5, 190 screw4_name: rear left screw horizontal_move_z: 10. speed: 50. screw_thread: CW-M3 Az 1. csavar mindig a referenciapont a t\u00f6bbi csavar sz\u00e1m\u00e1ra, \u00edgy a rendszer felt\u00e9telezi, hogy az 1. csavar a megfelel\u0151 magass\u00e1gban van. El\u0151sz\u00f6r mindig futtassa le a G28 G-k\u00f3dot, majd futtassa le a SCREWS_TILT_CALCULATE parancsot. Ennek a k\u00f6vetkez\u0151h\u00f6z hasonl\u00f3 kimenetet kell eredm\u00e9nyeznie: Send: G28 Recv: ok Send: SCREWS_TILT_CALCULATE Recv: // 01:20 means 1 full turn and 20 minutes, CW=clockwise, CCW=counter-clockwise Recv: // front left screw (base) : x=-5.0, y=30.0, z=2.48750 Recv: // front right screw : x=155.0, y=30.0, z=2.36000 : adjust CW 01:15 Recv: // rear right screw : y=155.0, y=190.0, z=2.71500 : adjust CCW 00:50 Recv: // read left screw : x=-5.0, y=190.0, z=2.47250 : adjust CW 00:02 Recv: ok Ez azt jelenti, hogy: a bal els\u0151 csavar a referenciapont, nem szabad megv\u00e1ltoztatni. a jobb els\u0151 csavart az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val megegyez\u0151 ir\u00e1nyban kell elford\u00edtani 1 teljes \u00e9s negyed fordulatot a jobb h\u00e1ts\u00f3 csavart az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1nyba kell forgatni 50 percnyi fordulatot bal h\u00e1ts\u00f3 csavart az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val megegyez\u0151 ir\u00e1nyba kell forgatni 2 percnyit (nem kell t\u00f6k\u00e9letesnek lennie) Vedd figyelembe, hogy a \"percek\" az \"\u00f3ra sz\u00e1mlapj\u00e1nak perceire\" utalnak. \u00cdgy p\u00e9ld\u00e1ul 15 perc egy teljes fordulat negyed\u00e9nek felel meg. Ism\u00e9telje meg a folyamatot t\u00f6bbsz\u00f6r, am\u00edg egy j\u00f3 v\u00edzszintes t\u00e1rgyasztalt nem kap. \u00c1ltal\u00e1ban akkor j\u00f3, ha minden be\u00e1ll\u00edt\u00e1s 6 percnyi fordulat alatt van. Ha olyan szond\u00e1t haszn\u00e1l, amely a nyomtat\u00f3fej oldal\u00e1ra van szerelve (azaz X vagy Y eltol\u00e1ssal rendelkezik), akkor vedd figyelembe, hogy a t\u00e1rgyasztal d\u0151l\u00e9s\u00e9nek be\u00e1ll\u00edt\u00e1sa \u00e9rv\u00e9nytelen\u00edti a kor\u00e1bbi, d\u0151l\u00e9ssz\u00f6g\u0171 t\u00e1rgyasztalon v\u00e9gzett szintkalibr\u00e1l\u00e1st. A t\u00e1rgyasztal csavarjainak be\u00e1ll\u00edt\u00e1sa ut\u00e1n mindenk\u00e9ppen futtassa le a szonda kalibr\u00e1l\u00e1sa parancsot. A MAX_DEVIATION param\u00e9ter akkor hasznos, ha egy mentett t\u00e1rgyasztal h\u00e1l\u00f3t haszn\u00e1lunk, hogy biztos\u00edtsuk, hogy a t\u00e1rgyasztal szintje ne t\u00e9rj el t\u00fals\u00e1gosan att\u00f3l a helyt\u0151l, ahol a h\u00e1l\u00f3 l\u00e9trehoz\u00e1sakor volt. P\u00e9ld\u00e1ul a SCREWS_TILT_CALCULATE MAX_DEVIATION=0.01 hozz\u00e1adhat\u00f3 a szeletel\u0151 egy\u00e9ni ind\u00edt\u00f3 G-k\u00f3dj\u00e1hoz a h\u00e1l\u00f3 bet\u00f6lt\u00e9se el\u0151tt. Ez megszak\u00edtja a nyomtat\u00e1st, ha a be\u00e1ll\u00edtott hat\u00e1r\u00e9rt\u00e9ket t\u00fall\u00e9pi (ebben a p\u00e9ld\u00e1ban 0,01 mm), lehet\u0151s\u00e9get adva a felhaszn\u00e1l\u00f3nak a csavarok be\u00e1ll\u00edt\u00e1s\u00e1ra \u00e9s a nyomtat\u00e1s \u00fajraind\u00edt\u00e1s\u00e1ra. A DIRECTION param\u00e9ter akkor hasznos, ha a t\u00e1rgyasztal szintez\u0151 csavarjait csak egy ir\u00e1nyba tudja elford\u00edtani. P\u00e9ld\u00e1ul lehetnek olyan csavarjai, amelyek a lehet\u0151 legalacsonyabb (vagy legmagasabb) poz\u00edci\u00f3ban vannak megh\u00fazva, \u00e9s csak egy ir\u00e1nyba forgathat\u00f3k a t\u00e1rgyasztal emel\u00e9s\u00e9hez (vagy s\u00fcllyeszt\u00e9s\u00e9hez). Ha a csavarokat csak az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val megegyez\u0151 ir\u00e1nyban tudja elford\u00edtani, futtassa a SCREWS_TILT_CALCULATE DIRECTION=CW parancsot. Ha csak az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1nyban tudja elforgatni \u0151ket, futtassa a SCREWS_TILT_CALCULATE DIRECTION=CCW parancsot. A program kiv\u00e1laszt egy megfelel\u0151 referenciapontot, hogy a t\u00e1rgyasztalt az \u00f6sszes csavar adott ir\u00e1nyba t\u00f6rt\u00e9n\u0151 elford\u00edt\u00e1s\u00e1val szintezhesse.","title":"K\u00e9zi szintez\u00e9s"},{"location":"Manual_Level.html#kezi-szintezes","text":"Ez a dokumentum a Z v\u00e9g\u00e1ll\u00e1s kalibr\u00e1l\u00e1s\u00e1hoz \u00e9s a t\u00e1rgyasztalt kiegyenl\u00edt\u0151 csavarok be\u00e1ll\u00edt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges eszk\u00f6z\u00f6ket ismerteti.","title":"K\u00e9zi szintez\u00e9s"},{"location":"Manual_Level.html#z-vegallas-kalibralasa","text":"A pontos Z v\u00e9g\u00e1ll\u00e1s poz\u00edci\u00f3ja kritikus fontoss\u00e1g\u00fa a j\u00f3 min\u0151s\u00e9g\u0171 nyomatok elk\u00e9sz\u00edt\u00e9s\u00e9hez. Vedd figyelembe azonban, hogy maga a Z v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 pontoss\u00e1ga korl\u00e1toz\u00f3 t\u00e9nyez\u0151 lehet. Ha Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3kat haszn\u00e1lunk, akkor fontoljuk meg a v\u00e9gstop f\u00e1zis \u00e9rz\u00e9kel\u00e9s enged\u00e9lyez\u00e9s\u00e9t a kapcsol\u00f3 pontoss\u00e1g\u00e1nak jav\u00edt\u00e1sa \u00e9rdek\u00e9ben. A Z v\u00e9gpont kalibr\u00e1l\u00e1s\u00e1nak v\u00e9grehajt\u00e1s\u00e1hoz kapcsold be a nyomtat\u00f3t, utas\u00edtsa a fejet, hogy mozogjon egy Z poz\u00edci\u00f3ba, amely legal\u00e1bb \u00f6t millim\u00e9terrel a t\u00e1rgyasztal felett van (ha m\u00e9g nincs), utas\u00edtsa a fejet, hogy mozogjon egy X-Y poz\u00edci\u00f3ba, k\u00f6zel a nyomtat\u00f3 k\u00f6zep\u00e9hez a t\u00e1rgyasztalra, majd navig\u00e1lj az OctoPrint termin\u00e1l f\u00fclre, \u00e9s futtassa: Z_ENDSTOP_CALIBRATE Ezut\u00e1n k\u00f6vesse a \"a pap\u00edrteszt\" pontban le\u00edrt l\u00e9p\u00e9seket a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tti t\u00e9nyleges t\u00e1vols\u00e1g meghat\u00e1roz\u00e1s\u00e1hoz az adott helyen. Ha ezek a l\u00e9p\u00e9sek befejez\u0151dtek, akkor ACCEPT \u00e9s elmentheti az eredm\u00e9nyeket a config f\u00e1jlba a k\u00f6vetkez\u0151vel: SAVE_CONFIG El\u0151ny\u00f6sebb, ha a Z v\u00e9g\u00e1ll\u00e1skapcsol\u00f3t a Z tengelynek az \u00e1ggyal ellent\u00e9tes v\u00e9g\u00e9re helyezz\u00fck. (A t\u00e1rgyasztalt\u00f3l t\u00e1volabb t\u00f6rt\u00e9n\u0151 kezd\u0151pont keres\u00e9s robusztusabb, mivel akkor \u00e1ltal\u00e1ban mindig biztons\u00e1gosan lehet a Z-t kezd\u0151pontra \u00e1ll\u00edtani.) Ha azonban a t\u00e1rgyasztal fel\u00e9 kell kezd\u0151pontot felvenni, aj\u00e1nlott a v\u00e9g\u00e1ll\u00e1skapcsol\u00f3t \u00fagy be\u00e1ll\u00edtani, hogy az kis t\u00e1vols\u00e1gra (pl. 0,5 mm-re) a t\u00e1rgyasztal f\u00f6l\u00f6tt kapcsoljon. Majdnem minden v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 biztons\u00e1gosan lenyomhat\u00f3 egy kis t\u00e1vols\u00e1ggal a kiold\u00e1si ponton t\u00fal. Ha ez megt\u00f6rt\u00e9nt, azt kell tapasztalni, hogy a Z_ENDSTOP_CALIBRATE parancs egy kis pozit\u00edv \u00e9rt\u00e9ket (pl. .5mm) jelez a Z poz\u00edci\u00f3 v\u00e9g\u00e1ll\u00e1shoz. A v\u00e9g\u00e1ll\u00e1s \u00e9rz\u00e9kel\u00e9se akkor, amikor az m\u00e9g bizonyos t\u00e1vols\u00e1gra van a t\u00e1rgyasztalt\u00f3l, cs\u00f6kkenti a v\u00e9letlen t\u00e1rgyasztalba \u00fctk\u00f6z\u00e9sek kock\u00e1zat\u00e1t. Egyes nyomtat\u00f3kon lehet\u0151s\u00e9g van a fizikai v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 hely\u00e9nek k\u00e9zi be\u00e1ll\u00edt\u00e1s\u00e1ra. Azonban aj\u00e1nlott a Z v\u00e9g\u00e1ll\u00e1s poz\u00edci\u00f3n\u00e1l\u00e1s\u00e1t szoftveresen elv\u00e9gezni a Klipperrel. Ha a v\u00e9g\u00e1ll\u00e1s fizikai helyzete megfelel\u0151 helyen van, a tov\u00e1bbi be\u00e1ll\u00edt\u00e1sokat a Z_ENDSTOP_CALIBRATE futtat\u00e1s\u00e1val vagy a Z position_endstop konfigur\u00e1ci\u00f3s f\u00e1jlban l\u00e9v\u0151 Z position_endstop manu\u00e1lis friss\u00edt\u00e9s\u00e9vel lehet elv\u00e9gezni.","title":"Z v\u00e9g\u00e1ll\u00e1s kalibr\u00e1l\u00e1sa"},{"location":"Manual_Level.html#targyasztal-szintezocsavarok-beallitasa","text":"A t\u00e1rgyasztalt kiegyenl\u00edt\u0151 csavarokkal t\u00f6rt\u00e9n\u0151 j\u00f3 szintez\u00e9s titka a nyomtat\u00f3 nagy pontoss\u00e1g\u00fa mozg\u00e1srendszer\u00e9nek kihaszn\u00e1l\u00e1sa a szintez\u00e9si folyamat sor\u00e1n. Ez \u00fagy t\u00f6rt\u00e9nik, hogy a f\u00fav\u00f3k\u00e1t az egyes szintez\u0151csavarok k\u00f6zel\u00e9ben l\u00e9v\u0151 poz\u00edci\u00f3ba navig\u00e1ljuk, majd az adott csavart addig \u00e1ll\u00edtjuk, am\u00edg a t\u00e1rgyasztal egy meghat\u00e1rozott t\u00e1vols\u00e1gra nem ker\u00fcl a f\u00fav\u00f3k\u00e1t\u00f3l. A Klipper rendelkezik egy eszk\u00f6zzel, amely ezt seg\u00edti. Az eszk\u00f6z haszn\u00e1lat\u00e1hoz meg kell adni az egyes csavarok X-Y helyzet\u00e9t. Ezt egy [bed_screws] konfigur\u00e1ci\u00f3s szakasz l\u00e9trehoz\u00e1s\u00e1val \u00e9rhetj\u00fck el. Ez p\u00e9ld\u00e1ul valahogy \u00edgy n\u00e9zhet ki: [bed_screws] screw1: 100, 50 screw2: 100, 150 screw3: 150, 100 Ha egy t\u00e1rgyasztal csavar a t\u00e1rgyasztal alatt van, akkor add meg az X-Y poz\u00edci\u00f3t k\u00f6zvetlen\u00fcl a csavar felett. Ha a csavar a t\u00e1rgyasztalon k\u00edv\u00fcl van, akkor add meg a csavarhoz legk\u00f6zelebbi X-Y-poz\u00edci\u00f3t, amely m\u00e9g a t\u00e1rgyasztal hat\u00f3t\u00e1vols\u00e1g\u00e1n bel\u00fcl van. Miut\u00e1n a konfigur\u00e1ci\u00f3s f\u00e1jl k\u00e9szen \u00e1ll, futtassa a RESTART parancsot a konfigur\u00e1ci\u00f3 bet\u00f6lt\u00e9s\u00e9hez, majd elind\u00edthatja az eszk\u00f6zt a k\u00f6vetkez\u0151 futtat\u00e1s\u00e1val: BED_SCREWS_ADJUST Ez az eszk\u00f6z a nyomtat\u00f3 f\u00fav\u00f3k\u00e1t minden egyes csavar X-Y hely\u00e9re mozgatja, majd a f\u00fav\u00f3k\u00e1t Z=0 magass\u00e1gba mozgatja. Ezen a ponton a \"pap\u00edrteszt\" seg\u00edts\u00e9g\u00e9vel k\u00f6zvetlen\u00fcl a f\u00fav\u00f3ka alatt lehet be\u00e1ll\u00edtani a t\u00e1rgyasztal csavarj\u00e1t. L\u00e1sd a \"a pap\u00edrteszt\" -ben le\u00edrtakat. De a f\u00fav\u00f3ka k\u00fcl\u00f6nb\u00f6z\u0151 magass\u00e1gokba navig\u00e1l\u00e1sa helyett a t\u00e1rgyasztalcsavart \u00e1ll\u00edtsd be. Addig \u00e1ll\u00edtsd a csavart, am\u00edg a pap\u00edr el\u0151re-h\u00e1tra tol\u00e1sa k\u00f6zben kis s\u00farl\u00f3d\u00e1s nem keletkezik. Miut\u00e1n a csavart \u00fagy \u00e1ll\u00edtottuk be, hogy egy kis s\u00farl\u00f3d\u00e1s \u00e9rezhet\u0151 legyen, futtassuk az ACCEPT vagy az ADJUSTED parancsot. Haszn\u00e1ld az ADJUSTED parancsot, ha a szintez\u0151csavar be\u00e1ll\u00edt\u00e1s\u00e1ra van sz\u00fcks\u00e9g (\u00e1ltal\u00e1ban b\u00e1rmi, ami t\u00f6bb mint 1/8 csavarfordulat). Haszn\u00e1ld az ACCEPT parancsot, ha nincs sz\u00fcks\u00e9g jelent\u0151s be\u00e1ll\u00edt\u00e1sra. Mindk\u00e9t parancs hat\u00e1s\u00e1ra a szersz\u00e1m a k\u00f6vetkez\u0151 csavarhoz l\u00e9p. (Ha az ADJUSTED parancsot haszn\u00e1lod, a szersz\u00e1m egy tov\u00e1bbi szintez\u0151csavar-be\u00e1ll\u00edt\u00e1si ciklust \u00fctemez be. A szersz\u00e1m sikeresen befejezi, ha az \u00f6sszes szintez\u0151csavarr\u00f3l bebizonyosodik, hogy nem ig\u00e9nyel jelent\u0151s be\u00e1ll\u00edt\u00e1st.) Az ABORT paranccsal id\u0151 el\u0151tt ki lehet l\u00e9pni a szintez\u00e9sb\u0151l. Ez a rendszer akkor m\u0171k\u00f6dik a legjobban, ha a nyomtat\u00f3 s\u00edk nyomtat\u00e1si fel\u00fclettel (p\u00e9ld\u00e1ul \u00fcveggel) \u00e9s egyenes s\u00ednekkel rendelkezik. A t\u00e1rgyasztal szintez\u0151 eszk\u00f6z sikeres elv\u00e9gz\u00e9se ut\u00e1n a t\u00e1rgyasztal k\u00e9szen \u00e1ll a nyomtat\u00e1sra.","title":"T\u00e1rgyasztal szintez\u0151csavarok be\u00e1ll\u00edt\u00e1sa"},{"location":"Manual_Level.html#finom-menetes-targyasztal-csavar-beallitasok","text":"Ha a nyomtat\u00f3 h\u00e1rom szintez\u0151csavart haszn\u00e1l, \u00e9s mindh\u00e1rom csavar a t\u00e1rgyasztal alatt van, akkor lehets\u00e9ges egy m\u00e1sodik \"nagy pontoss\u00e1g\u00fa\" szintez\u00e9si l\u00e9p\u00e9s elv\u00e9gz\u00e9se. Ez \u00fagy t\u00f6rt\u00e9nik, hogy a f\u00fav\u00f3k\u00e1t olyan helyekre ir\u00e1ny\u00edtja, ahol a t\u00e1rgyasztal minden egyes szintez\u0151csavar be\u00e1ll\u00edt\u00e1ssal nagyobb t\u00e1vols\u00e1got mozdul el. Vegy\u00fcnk p\u00e9ld\u00e1ul egy t\u00e1rgyasztalt, amelynek A, B \u00e9s C hely\u00e9n csavarok vannak: A C helyen l\u00e9v\u0151 szintez\u0151csavar minden egyes be\u00e1ll\u00edt\u00e1sa eset\u00e9n a t\u00e1rgyasztal a fennmarad\u00f3 k\u00e9t szintez\u0151csavar \u00e1ltal meghat\u00e1rozott inga ment\u00e9n fog lengeni (itt z\u00f6ld vonalk\u00e9nt l\u00e1that\u00f3). Ebben a helyzetben a szintez\u0151csavar \u00e1ll\u00edt\u00e1sa a C helyzetben a t\u00e1rgyasztalt kissebb a D helyzetben egy nagyobb m\u00e9rt\u00e9kben mozd\u00edtja el. A funkci\u00f3 enged\u00e9lyez\u00e9s\u00e9hez meg kell hat\u00e1rozni a tov\u00e1bbi f\u00fav\u00f3kakoordin\u00e1t\u00e1kat, \u00e9s hozz\u00e1 kell adni \u0151ket a konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Ez p\u00e9ld\u00e1ul \u00edgy n\u00e9zhet ki: [bed_screws] screw1: 100, 50 screw1_fine_adjust: 0, 0 screw2: 100, 150 screw2_fine_adjust: 300, 300 screw3: 150, 100 screw3_fine_adjust: 0, 100 Ha ez a funkci\u00f3 enged\u00e9lyezve van, a BED_SCREWS_ADJUST eszk\u00f6z el\u0151sz\u00f6r k\u00f6zvetlen\u00fcl az egyes csavarok poz\u00edci\u00f3i felett k\u00e9r durva be\u00e1ll\u00edt\u00e1sokat, \u00e9s ha ezeket elfogadta, akkor a tov\u00e1bbi helyeken finom be\u00e1ll\u00edt\u00e1sokat k\u00e9r. Folytassa az ACCEPT \u00e9s ADJUSTED haszn\u00e1lat\u00e1val minden egyes poz\u00edci\u00f3ban.","title":"Finom menetes t\u00e1rgyasztal csavar be\u00e1ll\u00edt\u00e1sok"},{"location":"Manual_Level.html#a-targyasztal-szintezocsavarjainak-beallitasa-meroszonda-segitsegevel","text":"Ez egy m\u00e1sik m\u00f3dja a t\u00e1rgyasztal szint kalibr\u00e1l\u00e1s\u00e1nak a m\u00e9r\u0151szonda seg\u00edts\u00e9g\u00e9vel. Haszn\u00e1lat\u00e1hoz rendelkeznie kell Z-szond\u00e1val (BL Touch, indukt\u00edv \u00e9rz\u00e9kel\u0151 stb.). A funkci\u00f3 enged\u00e9lyez\u00e9s\u00e9hez meg kell hat\u00e1rozni a f\u00fav\u00f3ka koordin\u00e1t\u00e1it \u00fagy, hogy a Z szonda a csavarok felett legyen, majd hozz\u00e1 kell adni a konfigur\u00e1ci\u00f3s f\u00e1jlhoz. Ez p\u00e9ld\u00e1ul \u00edgy n\u00e9zhet ki: [screws_tilt_adjust] screw1: -5, 30 screw1_name: front left screw screw2: 155, 30 screw2_name: front right screw screw3: 155, 190 screw3_name: rear right screw screw4: -5, 190 screw4_name: rear left screw horizontal_move_z: 10. speed: 50. screw_thread: CW-M3 Az 1. csavar mindig a referenciapont a t\u00f6bbi csavar sz\u00e1m\u00e1ra, \u00edgy a rendszer felt\u00e9telezi, hogy az 1. csavar a megfelel\u0151 magass\u00e1gban van. El\u0151sz\u00f6r mindig futtassa le a G28 G-k\u00f3dot, majd futtassa le a SCREWS_TILT_CALCULATE parancsot. Ennek a k\u00f6vetkez\u0151h\u00f6z hasonl\u00f3 kimenetet kell eredm\u00e9nyeznie: Send: G28 Recv: ok Send: SCREWS_TILT_CALCULATE Recv: // 01:20 means 1 full turn and 20 minutes, CW=clockwise, CCW=counter-clockwise Recv: // front left screw (base) : x=-5.0, y=30.0, z=2.48750 Recv: // front right screw : x=155.0, y=30.0, z=2.36000 : adjust CW 01:15 Recv: // rear right screw : y=155.0, y=190.0, z=2.71500 : adjust CCW 00:50 Recv: // read left screw : x=-5.0, y=190.0, z=2.47250 : adjust CW 00:02 Recv: ok Ez azt jelenti, hogy: a bal els\u0151 csavar a referenciapont, nem szabad megv\u00e1ltoztatni. a jobb els\u0151 csavart az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val megegyez\u0151 ir\u00e1nyban kell elford\u00edtani 1 teljes \u00e9s negyed fordulatot a jobb h\u00e1ts\u00f3 csavart az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1nyba kell forgatni 50 percnyi fordulatot bal h\u00e1ts\u00f3 csavart az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val megegyez\u0151 ir\u00e1nyba kell forgatni 2 percnyit (nem kell t\u00f6k\u00e9letesnek lennie) Vedd figyelembe, hogy a \"percek\" az \"\u00f3ra sz\u00e1mlapj\u00e1nak perceire\" utalnak. \u00cdgy p\u00e9ld\u00e1ul 15 perc egy teljes fordulat negyed\u00e9nek felel meg. Ism\u00e9telje meg a folyamatot t\u00f6bbsz\u00f6r, am\u00edg egy j\u00f3 v\u00edzszintes t\u00e1rgyasztalt nem kap. \u00c1ltal\u00e1ban akkor j\u00f3, ha minden be\u00e1ll\u00edt\u00e1s 6 percnyi fordulat alatt van. Ha olyan szond\u00e1t haszn\u00e1l, amely a nyomtat\u00f3fej oldal\u00e1ra van szerelve (azaz X vagy Y eltol\u00e1ssal rendelkezik), akkor vedd figyelembe, hogy a t\u00e1rgyasztal d\u0151l\u00e9s\u00e9nek be\u00e1ll\u00edt\u00e1sa \u00e9rv\u00e9nytelen\u00edti a kor\u00e1bbi, d\u0151l\u00e9ssz\u00f6g\u0171 t\u00e1rgyasztalon v\u00e9gzett szintkalibr\u00e1l\u00e1st. A t\u00e1rgyasztal csavarjainak be\u00e1ll\u00edt\u00e1sa ut\u00e1n mindenk\u00e9ppen futtassa le a szonda kalibr\u00e1l\u00e1sa parancsot. A MAX_DEVIATION param\u00e9ter akkor hasznos, ha egy mentett t\u00e1rgyasztal h\u00e1l\u00f3t haszn\u00e1lunk, hogy biztos\u00edtsuk, hogy a t\u00e1rgyasztal szintje ne t\u00e9rj el t\u00fals\u00e1gosan att\u00f3l a helyt\u0151l, ahol a h\u00e1l\u00f3 l\u00e9trehoz\u00e1sakor volt. P\u00e9ld\u00e1ul a SCREWS_TILT_CALCULATE MAX_DEVIATION=0.01 hozz\u00e1adhat\u00f3 a szeletel\u0151 egy\u00e9ni ind\u00edt\u00f3 G-k\u00f3dj\u00e1hoz a h\u00e1l\u00f3 bet\u00f6lt\u00e9se el\u0151tt. Ez megszak\u00edtja a nyomtat\u00e1st, ha a be\u00e1ll\u00edtott hat\u00e1r\u00e9rt\u00e9ket t\u00fall\u00e9pi (ebben a p\u00e9ld\u00e1ban 0,01 mm), lehet\u0151s\u00e9get adva a felhaszn\u00e1l\u00f3nak a csavarok be\u00e1ll\u00edt\u00e1s\u00e1ra \u00e9s a nyomtat\u00e1s \u00fajraind\u00edt\u00e1s\u00e1ra. A DIRECTION param\u00e9ter akkor hasznos, ha a t\u00e1rgyasztal szintez\u0151 csavarjait csak egy ir\u00e1nyba tudja elford\u00edtani. P\u00e9ld\u00e1ul lehetnek olyan csavarjai, amelyek a lehet\u0151 legalacsonyabb (vagy legmagasabb) poz\u00edci\u00f3ban vannak megh\u00fazva, \u00e9s csak egy ir\u00e1nyba forgathat\u00f3k a t\u00e1rgyasztal emel\u00e9s\u00e9hez (vagy s\u00fcllyeszt\u00e9s\u00e9hez). Ha a csavarokat csak az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val megegyez\u0151 ir\u00e1nyban tudja elford\u00edtani, futtassa a SCREWS_TILT_CALCULATE DIRECTION=CW parancsot. Ha csak az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tes ir\u00e1nyban tudja elforgatni \u0151ket, futtassa a SCREWS_TILT_CALCULATE DIRECTION=CCW parancsot. A program kiv\u00e1laszt egy megfelel\u0151 referenciapontot, hogy a t\u00e1rgyasztalt az \u00f6sszes csavar adott ir\u00e1nyba t\u00f6rt\u00e9n\u0151 elford\u00edt\u00e1s\u00e1val szintezhesse.","title":"A t\u00e1rgyasztal szintez\u0151csavarjainak be\u00e1ll\u00edt\u00e1sa m\u00e9r\u0151szonda seg\u00edts\u00e9g\u00e9vel"},{"location":"Measuring_Resonances.html","text":"Rezonanci\u00e1k m\u00e9r\u00e9se \u00b6 A Klipper be\u00e9p\u00edtett t\u00e1mogat\u00e1ssal rendelkezik az ADXL345 gyorsul\u00e1sm\u00e9r\u0151h\u00f6z, amely a nyomtat\u00f3 rezonanci\u00e1inak m\u00e9r\u00e9s\u00e9re haszn\u00e1lhat\u00f3 a k\u00fcl\u00f6nb\u00f6z\u0151 tengelyek eset\u00e9ben, \u00e9s automatikus hangol\u00e1ssal rezonancia kompenz\u00e1ci\u00f3val a rezonanci\u00e1k kompenz\u00e1l\u00e1s\u00e1ra. Vedd figyelembe, hogy az ADXL345 haszn\u00e1lata n\u00e9mi forraszt\u00e1st \u00e9s krimpel\u00e9st ig\u00e9nyel. Az ADXL345 k\u00f6zvetlen\u00fcl csatlakoztathat\u00f3 egy Raspberry Pi-hez, vagy egy MCU-k\u00e1rtya SPI-interf\u00e9sz\u00e9hez (meglehet\u0151sen gyorsnak kell lennie). Az ADXL345 beszerz\u00e9sekor vedd figyelembe, hogy sz\u00e1mos k\u00fcl\u00f6nb\u00f6z\u0151 NY\u00c1K lapkakialak\u00edt\u00e1s \u00e9s k\u00fcl\u00f6nb\u00f6z\u0151 kl\u00f3nok l\u00e9teznek. Gy\u0151z\u0151dj meg r\u00f3la, hogy a k\u00e1rtya t\u00e1mogatja az SPI m\u00f3dot (kis sz\u00e1m\u00fa k\u00e1rtya \u00fagy t\u0171nik, hogy szorosan konfigur\u00e1lva van az I2C-re az SDO GND-re h\u00faz\u00e1s\u00e1val), \u00e9s ha 5V-os nyomtat\u00f3 MCU-hoz csatlakozik ellen\u0151rizd,hogy rendelkezik fesz\u00fclts\u00e9gszab\u00e1lyoz\u00f3val \u00e9s szintv\u00e1laszt\u00f3val. Telep\u00edt\u00e9si utas\u00edt\u00e1sok \u00b6 Vezet\u00e9kek \u00b6 Az ADXL345-\u00f6t SPI-n kereszt\u00fcl kell csatlakoztatnod a Raspberry Pi-hez. Vedd figyelembe, hogy az ADXL345 dokument\u00e1ci\u00f3ja \u00e1ltal javasolt I2C kapcsolatnak t\u00fal alacsony az adatforgalmi k\u00e9pess\u00e9ge, \u00e9s nem fog m\u0171k\u00f6dni . Az aj\u00e1nlott kapcsol\u00e1si s\u00e9ma: ADXL345 t\u0171 RPi t\u0171 RPi t\u0171 n\u00e9v 3V3 (or VCC) 01 3.3v DC fesz\u00fclts\u00e9g GND 06 F\u00f6ld CS 24 GPIO08 (SPI0_CE0_N) SDO 21 GPIO09 (SPI0_MISO) SDA 19 GPIO10 (SPI0_MOSI) SCL 23 GPIO11 (SPI0_SCLK) Az ADXL345 alternat\u00edv\u00e1ja az MPU-9250 (vagy MPU-6050). Ezt a gyorsul\u00e1sm\u00e9r\u0151t \u00fagy tesztelt\u00e9k, hogy az RPi-n 400kbaud-on kereszt\u00fcl I2C-n kereszt\u00fcl m\u0171k\u00f6dik. Aj\u00e1nlott csatlakoz\u00e1si s\u00e9ma az I2C-hez: MPU-9250 t\u0171 RPi t\u0171 RPi t\u0171 n\u00e9v 3V3 (or VCC) 01 3.3v DC fesz\u00fclts\u00e9g GND 09 F\u00f6ld SDA 03 GPIO02 (SDA1) SCL 05 GPIO03 (SCL1) Fritzing kapcsol\u00e1si rajzok n\u00e9h\u00e1ny ADXL345 laphoz: A Raspberry Pi bekapcsol\u00e1sa el\u0151tt ellen\u0151rizd k\u00e9tszer is a vezet\u00e9keket, nehogy megs\u00e9r\u00fclj\u00f6n a Raspberry Pi vagy a gyorsul\u00e1sm\u00e9r\u0151. A gyorsul\u00e1sm\u00e9r\u0151 felszerel\u00e9se \u00b6 A gyorsul\u00e1sm\u00e9r\u0151t a nyomtat\u00f3fejhez kell csatlakoztatni. Meg kell tervezni egy megfelel\u0151 r\u00f6gz\u00edt\u00e9st, amely illeszkedik a saj\u00e1t 3D nyomtat\u00f3hoz. A gyorsul\u00e1sm\u00e9r\u0151 tengelyeit jobb a nyomtat\u00f3 tengelyeihez igaz\u00edtani (de ha ez k\u00e9nyelmesebb\u00e9 teszi, a tengelyek felcser\u00e9lhet\u0151k - azaz nem kell az X tengelyt X-hez igaz\u00edtani, \u00e9s \u00edgy tov\u00e1bb. Akkor is rendben kell lennie, ha a gyorsul\u00e1sm\u00e9r\u0151 Z tengelye a nyomtat\u00f3 X tengelye, stb). P\u00e9lda az ADXL345 SmartEffectorra t\u00f6rt\u00e9n\u0151 felszerel\u00e9s\u00e9re: Vedd figyelembe, hogy egy t\u00e1rgyasztal cs\u00fasztat\u00f3s nyomtat\u00f3n\u00e1l 2 r\u00f6gz\u00edt\u00e9st kell tervezni: egyet a nyomtat\u00f3fejhez \u00e9s egyet a t\u00e1rgyasztalhoz, \u00e9s a m\u00e9r\u00e9seket k\u00e9tszer kell elv\u00e9gezni. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a megfelel\u0151 szakaszt . Figyelem: gy\u0151z\u0151dj meg arr\u00f3l, hogy a gyorsul\u00e1sm\u00e9r\u0151 \u00e9s a hely\u00e9re r\u00f6gz\u00edt\u0151 csavarok nem \u00e9rnek a nyomtat\u00f3 f\u00e9m r\u00e9szeihez. Alapvet\u0151en a r\u00f6gz\u00edt\u00e9st \u00fagy kell kialak\u00edtani, hogy biztos\u00edtsa a gyorsul\u00e1sm\u00e9r\u0151 elektromos szigetel\u00e9s\u00e9t a nyomtat\u00f3 keret\u00e9t\u0151l. Ennek elmulaszt\u00e1sa f\u00f6ldhurkot hozhat l\u00e9tre a rendszerben, ami k\u00e1ros\u00edthatja az elektronik\u00e1t. Szoftver telep\u00edt\u00e9se \u00b6 Vedd figyelembe, hogy a rezonanciam\u00e9r\u00e9sek \u00e9s a shaper automatikus kalibr\u00e1l\u00e1sa tov\u00e1bbi, alap\u00e9rtelmez\u00e9s szerint nem telep\u00edtett szoftverf\u00fcgg\u0151s\u00e9geket ig\u00e9nyel. El\u0151sz\u00f6r futtassa a Raspberry Pi sz\u00e1m\u00edt\u00f3g\u00e9p\u00e9n a k\u00f6vetkez\u0151 parancsokat: sudo apt update sudo apt install python3-numpy python3-matplotlib libatlas-base-dev Ezut\u00e1n a NumPy telep\u00edt\u00e9s\u00e9hez a Klipper k\u00f6rnyezetbe futtassuk a parancsot: ~/klippy-env/bin/pip install -v numpy Vedd figyelembe, hogy a CPU teljes\u00edtm\u00e9ny\u00e9t\u0151l f\u00fcgg\u0151en ez sok id\u0151t vehet ig\u00e9nybe, ak\u00e1r 10-20 percet is. Legyen t\u00fcrelmes, \u00e9s v\u00e1rja meg a telep\u00edt\u00e9s befejez\u00e9s\u00e9t. Bizonyos esetekben, ha a k\u00e1rty\u00e1n t\u00fal kev\u00e9s RAM van, a telep\u00edt\u00e9s meghi\u00fasulhat, \u00e9s enged\u00e9lyeznie kell a swapot. Ezut\u00e1n ellen\u0151rizd \u00e9s k\u00f6vesse az RPi Microcontroller dokumentum utas\u00edt\u00e1sait a \"linux mcu\" be\u00e1ll\u00edt\u00e1s\u00e1hoz a Raspberry Pi-n. Gy\u0151z\u0151dj\u00fcnk meg r\u00f3la, hogy a Linux SPI-illeszt\u0151program enged\u00e9lyezve van a sudo raspi-config futtat\u00e1s\u00e1val \u00e9s az SPI enged\u00e9lyez\u00e9s\u00e9vel az \"Interfacing options\" men\u00fcben. Az ADXL345 eset\u00e9ben add hozz\u00e1 a k\u00f6vetkez\u0151ket a printer.cfg f\u00e1jlhoz: [mcu rpi] serial: /tmp/klipper_host_mcu [adxl345] cs_pin: rpi:None [resonance_tester] accel_chip: adxl345 probe_points: 100, 100, 20 # egy p\u00e9lda Javasoljuk, hogy 1 m\u00e9r\u0151pontal kezd, a nyomtat\u00e1si t\u00e1rgyasztal k\u00f6zep\u00e9n, kiss\u00e9 felette. Az MPU-9250 eset\u00e9ben gy\u0151z\u0151dj meg r\u00f3la, hogy a Linux I2C illeszt\u0151program enged\u00e9lyezve van, \u00e9s az \u00e1tviteli sebess\u00e9g 400000-re van \u00e1ll\u00edtva (tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd az I2C enged\u00e9lyez\u00e9se r\u00e9szt). Ezut\u00e1n adjuk hozz\u00e1 a k\u00f6vetkez\u0151ket a printer.cfg f\u00e1jlhoz: [mcu rpi] serial: /tmp/klipper_host_mcu [mpu9250] i2c_mcu: rpi i2c_bus: i2c.1 [resonance_tester] accel_chip: mpu9250 probe_points: 100, 100, 20 # an example Ind\u00edtsa \u00fajra a Klippert a RESTART paranccsal. A rezonanci\u00e1k m\u00e9r\u00e9se \u00b6 A be\u00e1ll\u00edt\u00e1s ellen\u0151rz\u00e9se \u00b6 Most m\u00e1r tesztelheti a kapcsolatot. A \"nem t\u00e1rgyasztalt \u00e9rint\u0151\" (pl. egy gyorsul\u00e1sm\u00e9r\u0151), az Octoprintbe \u00edrd be az ACCELEROMETER_QUERY parancsot A \"bed-slingers\" (pl. egyn\u00e9l t\u00f6bb gyorsul\u00e1sm\u00e9r\u0151) eset\u00e9ben \u00edrd be az ACCELEROMETER_QUERY CHIP=<chip> ahol <chip> a chip neve a be\u00edrt form\u00e1ban, pl. CHIP=bed (l\u00e1sd: bed-slinger nyomtat\u00f3k ) az \u00f6sszes telep\u00edtett gyorsul\u00e1sm\u00e9r\u0151 chiphez. A gyorsul\u00e1sm\u00e9r\u0151 aktu\u00e1lis m\u00e9r\u00e9seit kell l\u00e1tnia, bele\u00e9rtve a szabades\u00e9s gyorsul\u00e1s\u00e1t is, pl. Visszah\u00edv\u00e1s: // adxl345 \u00e9rt\u00e9kek (x, y, z): 470.719200, 941.438400, 9728.196800 Ha olyan hib\u00e1t kap, mint Invalid adxl345 id (got xx vs e5) , ahol xx valami m\u00e1s azonos\u00edt\u00f3, azaz ADXL345-\u00f6t \u00e9rint\u0151 kapcsolati probl\u00e9m\u00e1ra vagy a hib\u00e1s \u00e9rz\u00e9kel\u0151re utal. Ellen\u0151rizd k\u00e9tszer is a t\u00e1pell\u00e1t\u00e1st, a k\u00e1belez\u00e9st (hogy megfelel-e a kapcsol\u00e1si rajzoknak, nincs-e t\u00f6r\u00f6tt vagy laza vezet\u00e9k stb.) \u00e9s a forraszt\u00e1s min\u0151s\u00e9g\u00e9t. Ezut\u00e1n pr\u00f3b\u00e1ld meg futtatni a MEASURE_AXES_NOISE parancsot az Octoprintben, \u00edgy kaphatsz n\u00e9h\u00e1ny alapsz\u00e1mot a gyorsul\u00e1sm\u00e9r\u0151 zaj\u00e1ra a tengelyeken (valahol a ~1-100-as tartom\u00e1nyban kell lennie). A t\u00fal magas tengelyzaj (pl. 1000 \u00e9s t\u00f6bb) az \u00e9rz\u00e9kel\u0151 probl\u00e9m\u00e1ira, a t\u00e1pell\u00e1t\u00e1s\u00e1val kapcsolatos probl\u00e9m\u00e1kra vagy a 3D nyomtat\u00f3 t\u00fal zajos, kiegyens\u00falyozatlan ventil\u00e1toraira utalhat. A rezonanci\u00e1k m\u00e9r\u00e9se \u00b6 Most m\u00e1r lefuttathat n\u00e9h\u00e1ny val\u00f3s tesztet. Futtassa a k\u00f6vetkez\u0151 parancsot: TEST_RESONANCES AXIS=X Vedd figyelembe, hogy az X tengelyen rezg\u00e9seket hoz l\u00e9tre. A bemeneti alak\u00edt\u00e1st is letiltja, ha az kor\u00e1bban enged\u00e9lyezve volt, mivel a rezonancia tesztel\u00e9s nem \u00e9rv\u00e9nyes a bemeneti alak\u00edt\u00f3 enged\u00e9lyez\u00e9s\u00e9vel. Figyelem! Az els\u0151 alkalommal mindenk\u00e9ppen figyelje meg a nyomtat\u00f3t, hogy a rezg\u00e9sek ne legyenek t\u00fal hevesek (az M112 paranccsal v\u00e9szhelyzet eset\u00e9n megszak\u00edthat\u00f3 a teszt; rem\u00e9lhet\u0151leg azonban erre nem ker\u00fcl sor). Ha a rezg\u00e9sek m\u00e9gis t\u00fal er\u0151sek lesznek, megpr\u00f3b\u00e1lhat az alap\u00e9rtelmezettn\u00e9l alacsonyabb \u00e9rt\u00e9ket megadni az accel_per_hz param\u00e9terhez a [resonance_tester] szakaszban, pl. [resonance_tester] accel_chip: adxl345 accel_per_hz: 50 # default is 75 probe_points: ... Ha az X tengelyen m\u0171k\u00f6dik, futtassa az Y tengelyen is: TEST_RESONANCES AXIS=Y Ez 2 CSV f\u00e1jlt fog l\u00e9trehozni ( /tmp/resonances_x_*.csv \u00e9s /tmp/resonances_y_*.csv ) Ezeket a f\u00e1jlokat a Raspberry Pi-n l\u00e9v\u0151 \u00f6n\u00e1ll\u00f3 szkript seg\u00edts\u00e9g\u00e9vel lehet feldolgozni. Ehhez futtassa a k\u00f6vetkez\u0151 parancsokat: ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_y_*.csv -o /tmp/shaper_calibrate_y.png Ez a szkript l\u00e9trehozza a /tmp/shaper_calibrate_x.png \u00e9s /tmp/shaper_calibrate_y.png diagramokat a frekvenciav\u00e1laszokkal. Az egyes bemeneti shaperek javasolt frekvenci\u00e1it is megkapja, valamint azt, hogy melyik bemeneti shaper aj\u00e1nlott a te be\u00e1ll\u00edt\u00e1sodhoz. P\u00e9ld\u00e1ul: Illesztett alak\u00edt\u00f3 'zv' frekvencia = 34,4 Hz (rezg\u00e9sek = 4,0%, sim\u00edt\u00e1s ~= 0,132) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a 'zv', javasolt max_accel <= 4500 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'mzv' frekvencia = 34,6 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,170) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'mzv' eset\u00e9ben javasolt max_accel <= 3500 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'ei' frekvencia = 41,4 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,188) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'ei', javasolt max_accel <= 3200 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '2hump_ei' frekvencia = 51,8 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,201) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '2hump_ei' eset\u00e9ben javasolt max_accel <= 3000 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '3hump_ei' frekvencia = 61,8 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,215) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '3hump_ei' eset\u00e9ben javasolt max_accel <= 2800 mm/sec^2 Az aj\u00e1nlott shaper az mzv @ 34,6 Hz. A javasolt konfigur\u00e1ci\u00f3 hozz\u00e1adhat\u00f3 az [input_shaper] szakaszhoz a printer.cfg r\u00e9szben, p\u00e9ld\u00e1ul: [input_shaper] shaper_freq_x: ... shaper_type_x: ... shaper_freq_y: 34.6 shaper_type_y: mzv [printer] max_accel: 3000 # nem haladhatja meg a becs\u00fclt max_accel \u00e9rt\u00e9ket az X \u00e9s Y tengelyekn\u00e9l. vagy v\u00e1laszthat m\u00e1s konfigur\u00e1ci\u00f3t is a gener\u00e1lt diagramok alapj\u00e1n: a diagramokon a teljes\u00edtm\u00e9nyspektr\u00e1lis s\u0171r\u0171s\u00e9g cs\u00facsai megfelelnek a nyomtat\u00f3 rezonanciafrekvenci\u00e1inak. Megjegyzend\u0151, hogy alternat\u00edvak\u00e9nt a bemeneti alak\u00edt\u00f3 automatikus kalibr\u00e1ci\u00f3j\u00e1t a Klipperb\u0151l k\u00f6zvetlen\u00fcl is futtathatja, ami p\u00e9ld\u00e1ul a bemeneti form\u00e1z\u00f3 \u00fajrakalibr\u00e1l\u00e1s\u00e1hoz lehet hasznos. Bed-slinger nyomtat\u00f3k \u00b6 Ha a nyomtat\u00f3d t\u00e1rgyasztala Y tengelyen van, akkor meg kell v\u00e1ltoztatnod a gyorsul\u00e1sm\u00e9r\u0151 hely\u00e9t az X \u00e9s Y tengelyek m\u00e9r\u00e9sei k\u00f6z\u00f6tt: az X tengely rezonanci\u00e1it a nyomtat\u00f3fejre szerelt gyorsul\u00e1sm\u00e9r\u0151vel, az Y tengely rezonanci\u00e1it pedig a t\u00e1rgyasztalra szerelt gyorsul\u00e1sm\u00e9r\u0151vel kell m\u00e9rned (a szok\u00e1sos nyomtat\u00f3 be\u00e1ll\u00edt\u00e1ssal). Azonban k\u00e9t gyorsul\u00e1sm\u00e9r\u0151t is csatlakoztathatsz egyszerre, b\u00e1r ezeket k\u00fcl\u00f6nb\u00f6z\u0151 lapokhoz kell csatlakoztatni (mondjuk egy RPi \u00e9s egy nyomtat\u00f3 MCU laphoz), vagy k\u00e9t k\u00fcl\u00f6nb\u00f6z\u0151 fizikai SPI interf\u00e9szhez ugyanazon a lapon (ritk\u00e1n el\u00e9rhet\u0151). Ezut\u00e1n a k\u00f6vetkez\u0151 m\u00f3don lehet \u0151ket konfigur\u00e1lni: [adxl345 hotend] # Felt\u00e9telezve, hogy a `hotend` chip egy RPi-hez van csatlakoztatva. cs_pin: rpi:None [adxl345 bed] # Felt\u00e9telezve, hogy a `bed` chip egy nyomtat\u00f3 MCU lapk\u00e1hoz van csatlakoztatva. cs_pin: ... # nyomtat\u00f3 alaplap SPI chip kiv\u00e1laszt\u00f3 (CS) t\u0171je [resonance_tester] # Felt\u00e9telezve az Y t\u00e1rgyasztalos nyomtat\u00f3 tipikus be\u00e1ll\u00edt\u00e1s\u00e1t. accel_chip_x: adxl345 hotend accel_chip_y: adxl345 bed probe_points: ... Ekkor a TEST_RESONANCES AXIS=X \u00e9s TEST_RESONANCES AXIS=Y parancsok a megfelel\u0151 gyorsul\u00e1sm\u00e9r\u0151t fogj\u00e1k haszn\u00e1lni minden tengelyhez. Max sim\u00edt\u00e1s \u00b6 Ne feledd, hogy a bemeneti form\u00e1z\u00f3 sim\u00edt\u00e1st hozhat l\u00e9tre az alkatr\u00e9szekben. A calibrate_shaper.py szkript vagy SHAPER_CALIBRATE parancs \u00e1ltal v\u00e9grehajtott bemeneti form\u00e1z\u00f3 automatikus hangol\u00e1sa nem s\u00falyosb\u00edtja a sim\u00edt\u00e1st, ugyanakkor megpr\u00f3b\u00e1lja minimaliz\u00e1lni az ebb\u0151l ered\u0151 rezg\u00e9seket. N\u00e9ha az alakform\u00e1l\u00f3 frekvencia optim\u00e1list\u00f3l elmarad\u00f3 v\u00e1laszt\u00e1s\u00e1t hozhatj\u00e1k, vagy tal\u00e1n egyszer\u0171en csak kev\u00e9sb\u00e9 sim\u00edtj\u00e1k az alkatr\u00e9szeket a nagyobb fennmarad\u00f3 rezg\u00e9sek rov\u00e1s\u00e1ra. Ezekben az esetekben k\u00e9rheti a bemeneti form\u00e1z\u00f3 maxim\u00e1lis sim\u00edt\u00e1s\u00e1nak korl\u00e1toz\u00e1s\u00e1t. N\u00e9zz\u00fck meg az automatikus hangol\u00e1s k\u00f6vetkez\u0151 eredm\u00e9nyeit: Illesztett alak\u00edt\u00f3 'zv' frekvencia = 57,8 Hz (rezg\u00e9sek = 20,3%, sim\u00edt\u00e1s ~= 0,053) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a 'zv', javasolt max_accel <= 13000 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'mzv' frekvencia = 34,8 Hz (rezg\u00e9sek = 3,6%, sim\u00edt\u00e1s ~= 0,168) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'mzv' eset\u00e9ben javasolt max_accel <= 3600 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'ei' frekvencia = 48,8 Hz (rezg\u00e9sek = 4,9%, sim\u00edt\u00e1s ~= 0,135) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'ei', javasolt max_accel <= 4400 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '2hump_ei' frekvencia = 45,2 Hz (rezg\u00e9sek = 0,1%, sim\u00edt\u00e1s ~= 0,264) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '2hump_ei' eset\u00e9ben javasolt max_accel <= 2200 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '3hump_ei' frekvencia = 48,0 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,356) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '3hump_ei' eset\u00e9ben javasolt max_accel <= 1500 mm/sec^2 Az aj\u00e1nlott alak\u00edt\u00f3 2hump_ei @ 45,2 Hz. Vedd figyelembe, hogy a bejelentett sim\u00edt\u00e1s \u00e9rt\u00e9kek absztrakt vet\u00edtett \u00e9rt\u00e9kek. Ezek az \u00e9rt\u00e9kek k\u00fcl\u00f6nb\u00f6z\u0151 konfigur\u00e1ci\u00f3k \u00f6sszehasonl\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3k: min\u00e9l magasabb az \u00e9rt\u00e9k, ann\u00e1l nagyobb sim\u00edt\u00e1st hoz l\u00e9tre a form\u00e1z\u00f3. Ezek a sim\u00edt\u00e1si \u00e9rt\u00e9kek azonban nem jelentik a sim\u00edt\u00e1s val\u00f3di m\u00e9rt\u00e9k\u00e9t, mivel a t\u00e9nyleges sim\u00edt\u00e1s a max_accel \u00e9s square_corner_velocity param\u00e9terekt\u0151l f\u00fcgg. Ez\u00e9rt \u00e9rdemes n\u00e9h\u00e1ny tesztnyomatot nyomtatni, hogy l\u00e1ssuk, pontosan mekkora sim\u00edt\u00e1st hoz l\u00e9tre a kiv\u00e1lasztott konfigur\u00e1ci\u00f3. A fenti p\u00e9ld\u00e1ban a javasolt alak\u00edt\u00f3 param\u00e9terek nem rosszak, de mi van akkor, ha az X tengelyen kevesebb sim\u00edt\u00e1st szeretn\u00e9l el\u00e9rni? Megpr\u00f3b\u00e1lhatod korl\u00e1tozni a maxim\u00e1lis alak\u00edt\u00f3 sim\u00edt\u00e1st a k\u00f6vetkez\u0151 paranccsal: ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png --max_smoothing=0.2 amely a sim\u00edt\u00e1st 0,2 pontsz\u00e1mra korl\u00e1tozza. Most a k\u00f6vetkez\u0151 eredm\u00e9nyt kaphatja: Illesztett alak\u00edt\u00f3 'zv' frekvencia = 55,4 Hz (rezg\u00e9sek = 19,7%, sim\u00edt\u00e1s ~= 0,057) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a 'zv', javasolt max_accel <= 12000 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'mzv' frekvencia = 34,6 Hz (rezg\u00e9sek = 3,6%, sim\u00edt\u00e1s ~= 0,170) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'mzv' eset\u00e9ben javasolt max_accel <= 3500 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'ei' frekvencia = 48,2 Hz (rezg\u00e9sek = 4,8%, sim\u00edt\u00e1s ~= 0,139) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'ei' eset\u00e9ben javasolt max_accel <= 4300 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '2hump_ei' frekvencia = 52,0 Hz (rezg\u00e9sek = 2,7%, sim\u00edt\u00e1s ~= 0,200) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '2hump_ei' eset\u00e9ben javasolt max_accel <= 3000 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '3hump_ei' frekvencia = 72,6 Hz (rezg\u00e9sek = 1,4%, sim\u00edt\u00e1s ~= 0,155) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '3hump_ei' eset\u00e9ben javasolt max_accel <= 3900 mm/sec^2 Az aj\u00e1nlott alak\u00edt\u00f3 3hump_ei @ 72,6 Hz. Ha \u00f6sszehasonl\u00edtjuk a kor\u00e1bban javasolt param\u00e9terekkel, a rezg\u00e9sek kicsit nagyobbak, de a sim\u00edt\u00e1s l\u00e9nyegesen kisebb, mint kor\u00e1bban, ami nagyobb maxim\u00e1lis gyorsul\u00e1st tesz lehet\u0151v\u00e9. A max_smoothing param\u00e9ter kiv\u00e1laszt\u00e1sakor a pr\u00f3b\u00e1lgat\u00e1s \u00e9s a t\u00e9ved\u00e9s m\u00f3dszer\u00e9t alkalmazhatjuk. Pr\u00f3b\u00e1ljon ki n\u00e9h\u00e1ny k\u00fcl\u00f6nb\u00f6z\u0151 \u00e9rt\u00e9ket, \u00e9s n\u00e9zze meg, milyen eredm\u00e9nyeket kap. Vedd figyelembe, hogy a bemeneti alak\u00edt\u00f3 \u00e1ltal el\u0151\u00e1ll\u00edtott t\u00e9nyleges sim\u00edt\u00e1s els\u0151sorban a nyomtat\u00f3 legalacsonyabb rezonanciafrekvenci\u00e1j\u00e1t\u00f3l f\u00fcgg: min\u00e9l magasabb a legalacsonyabb rezonancia frekvenci\u00e1ja - ann\u00e1l kisebb a sim\u00edt\u00e1s. Ez\u00e9rt ha azt k\u00e9ri a parancsf\u00e1jlt\u00f3l, hogy a bemeneti alak\u00edt\u00f3 olyan konfigur\u00e1ci\u00f3j\u00e1t keresse meg, amely irre\u00e1lisan kis sim\u00edt\u00e1ssal rendelkezik, akkor ez a legalacsonyabb rezonanciafrekvenci\u00e1kon (amelyek jellemz\u0151en a nyomatokon is jobban l\u00e1that\u00f3ak) megn\u00f6vekedett rezg\u00e9s \u00e1r\u00e1n fog t\u00f6rt\u00e9nni. Ez\u00e9rt mindig ellen\u0151rizd k\u00e9tszeresen a szkript \u00e1ltal jelzett vet\u00edtett marad\u00f3 rezg\u00e9seket, \u00e9s gy\u0151z\u0151dj meg r\u00f3la, hogy azok nem t\u00fal magasak. Ha mindk\u00e9t tengelyhez j\u00f3 max_smoothing \u00e9rt\u00e9ket v\u00e1lasztott, akkor azt a printer.cfg \u00e1llom\u00e1nyban t\u00e1rolhatja a k\u00f6vetkez\u0151 m\u00f3don [resonance_tester] accel_chip: ... probe_points: ... max_smoothing: 0.25 # egy p\u00e9lda Ezut\u00e1n, ha a j\u00f6v\u0151ben \u00fajraind\u00edtja a bemeneti alak\u00edt\u00f3 automatikus hangol\u00e1s\u00e1t a SHAPER_CALIBRATE Klipper parancs seg\u00edts\u00e9g\u00e9vel, akkor a t\u00e1rolt max_smoothing \u00e9rt\u00e9ket fogja referenciak\u00e9nt haszn\u00e1lni. A max_accel kiv\u00e1laszt\u00e1sa \u00b6 Mivel a bemeneti alak\u00edt\u00f3 n\u00e9mi sim\u00edt\u00e1st okozhat az elemekben, k\u00fcl\u00f6n\u00f6sen nagy gyorsul\u00e1sokn\u00e1l, tov\u00e1bbra is meg kell v\u00e1lasztani a max_accel \u00e9rt\u00e9ket, amely nem okoz t\u00fal nagy sim\u00edt\u00e1st a nyomtatott alkatr\u00e9szekben. Egy kalibr\u00e1ci\u00f3s szkript becsl\u00e9st ad a max_accel param\u00e9terre, amely nem okozhat t\u00fal nagy sim\u00edt\u00e1st. Vedd figyelembe, hogy a kalibr\u00e1ci\u00f3s szkript \u00e1ltal megjelen\u00edtett max_accel csak egy elm\u00e9leti maximum, amelyn\u00e9l az adott alak\u00edt\u00f3 m\u00e9g k\u00e9pes \u00fagy dolgozni, hogy nem okoz t\u00fal nagy sim\u00edt\u00e1st. Semmik\u00e9ppen sem aj\u00e1nlott ezt a gyorsul\u00e1st be\u00e1ll\u00edtani a nyomtat\u00e1shoz. A nyomtat\u00f3ja \u00e1ltal elviselhet\u0151 maxim\u00e1lis gyorsul\u00e1s a nyomtat\u00f3 mechanikai tulajdons\u00e1gait\u00f3l \u00e9s a haszn\u00e1lt l\u00e9ptet\u0151motorok maxim\u00e1lis nyomat\u00e9k\u00e1t\u00f3l f\u00fcgg. Ez\u00e9rt javasolt a max_accel be\u00e1ll\u00edt\u00e1sa a [nyomtat\u00f3] szakaszban, amely nem haladja meg az X \u00e9s Y tengelyek becs\u00fclt \u00e9rt\u00e9keit, val\u00f3sz\u00edn\u0171leg n\u00e9mi konzervat\u00edv biztons\u00e1gi tartal\u00e9kkal. Alternat\u00edvak\u00e9nt k\u00f6vesse ezt a r\u00e9szt a bemeneti alak\u00edt\u00f3 hangol\u00e1si \u00fatmutat\u00f3j\u00e1ban, \u00e9s nyomtasd ki a tesztmodellt a max_accel param\u00e9ter k\u00eds\u00e9rleti kiv\u00e1laszt\u00e1s\u00e1hoz. Ugyanez a figyelmeztet\u00e9s vonatkozik a bemeneti alak\u00edt\u00f3 automatikus kalibr\u00e1l\u00e1s SHAPER_CALIBRATE paranccsal t\u00f6rt\u00e9n\u0151 haszn\u00e1lat\u00e1ra is: az automatikus kalibr\u00e1l\u00e1s ut\u00e1n tov\u00e1bbra is sz\u00fcks\u00e9ges a megfelel\u0151 max_accel \u00e9rt\u00e9k kiv\u00e1laszt\u00e1sa, \u00e9s a javasolt gyorsul\u00e1si korl\u00e1tok nem lesznek automatikusan alkalmazva. Ha a form\u00e1z\u00f3 \u00fajrakalibr\u00e1l\u00e1s\u00e1t v\u00e9gzi, \u00e9s a javasolt form\u00e1z\u00f3 konfigur\u00e1ci\u00f3hoz tartoz\u00f3 sim\u00edt\u00e1s majdnem megegyezik az el\u0151z\u0151 kalibr\u00e1l\u00e1s sor\u00e1n kapott \u00e9rt\u00e9kkel, ez a l\u00e9p\u00e9s kihagyhat\u00f3. Egy\u00e9ni tengelyek tesztel\u00e9se \u00b6 TEST_RESONANCES parancs t\u00e1mogatja az egy\u00e9ni tengelyeket. B\u00e1r ez nem igaz\u00e1n hasznos a bemeneti alak\u00edt\u00f3 kalibr\u00e1l\u00e1s\u00e1hoz, a nyomtat\u00f3 rezonanci\u00e1inak alapos tanulm\u00e1nyoz\u00e1s\u00e1ra \u00e9s p\u00e9ld\u00e1ul a sz\u00edjfesz\u00edt\u00e9s ellen\u0151rz\u00e9s\u00e9re haszn\u00e1lhat\u00f3. A CoreXY nyomtat\u00f3kon a sz\u00edjfesz\u00edt\u00e9s ellen\u0151rz\u00e9s\u00e9hez hajtsd v\u00e9gre a k\u00f6vetkez\u0151t TEST_RESONANCES AXIS=1,1 OUTPUT=raw_data TEST_RESONANCES AXIS=1,-1 OUTPUT=raw_data \u00e9s haszn\u00e1ljuk a graph_accelerometer.py f\u00e1jlt a gener\u00e1lt f\u00e1jlok feldolgoz\u00e1s\u00e1hoz, pl. ~/klipper/scripts/graph_accelerometer.py -c /tmp/raw_data_axis*.csv -o /tmp/resonances.png amely a rezonanci\u00e1kat \u00f6sszehasonl\u00edtva /tmp/resonances.png k\u00e9pet hoz l\u00e9tre. Az alap\u00e9rtelmezett toronyelhelyez\u00e9s\u0171 Delta nyomtat\u00f3k eset\u00e9ben (A torony ~= 210 fok, B ~= 330 fok \u00e9s C ~= 90 fok), hajtsd v\u00e9gre a k\u00f6vetkez\u0151t TEST_RESONANCES AXIS=0,1 OUTPUT=raw_data TEST_RESONANCES AXIS=-0.866025404,-0.5 OUTPUT=raw_data TEST_RESONANCES AXIS=0.866025404,-0.5 OUTPUT=raw_data majd haszn\u00e1ld ugyanazt a parancsot ~/klipper/scripts/graph_accelerometer.py -c /tmp/raw_data_axis*.csv -o /tmp/resonances.png /tmp/resonances.png l\u00e9trehoz\u00e1s\u00e1hoz, amely \u00f6sszehasonl\u00edtja a rezonanci\u00e1kat. Bemeneti form\u00e1z\u00f3 automatikus kalibr\u00e1l\u00e1sa \u00b6 A bemeneti form\u00e1z\u00f3 funkci\u00f3 megfelel\u0151 param\u00e9tereinek k\u00e9zi kiv\u00e1laszt\u00e1sa mellett a bemeneti alak\u00edt\u00f3 automatikus hangol\u00e1sa k\u00f6zvetlen\u00fcl a Klipperb\u0151l is elv\u00e9gezhet\u0151. Futtassa a k\u00f6vetkez\u0151 parancsot az Octoprint termin\u00e1lon kereszt\u00fcl: SHAPER_CALIBRATE Ez lefuttatja a teljes tesztet mindk\u00e9t tengelyre, \u00e9s l\u00e9trehozza a csv-kimenetet ( /tmp/calibration_data_*.csv alap\u00e9rtelmez\u00e9s szerint) a frekvenciav\u00e1laszr\u00f3l \u00e9s a javasolt bemeneti alak\u00edt\u00f3kr\u00f3l. Az Octoprint konzolon megkapja az egyes bemeneti alak\u00edt\u00f3k javasolt frekvenci\u00e1it is, valamint azt, hogy melyik bemeneti alak\u00edt\u00f3t aj\u00e1nljuk az \u00d6n be\u00e1ll\u00edt\u00e1s\u00e1hoz. P\u00e9ld\u00e1ul: A legjobb bemeneti alak\u00edt\u00f3 param\u00e9terek kisz\u00e1m\u00edt\u00e1sa az y tengelyhez Beillesztett alak\u00edt\u00f3 'zv' frekvencia = 39,0 Hz (rezg\u00e9sek = 13,2%, sim\u00edt\u00e1s ~= 0,105) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a 'zv', javasolt max_accel <= 5900 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'mzv' frekvencia = 36,8 Hz (rezg\u00e9sek = 1,7%, sim\u00edt\u00e1s ~= 0,150) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'mzv' eset\u00e9ben javasolt max_accel <= 4000 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'ei' frekvencia = 36,6 Hz (rezg\u00e9sek = 2,2%, sim\u00edt\u00e1s ~= 0,240) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'ei', javasolt max_accel <= 2500 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '2hump_ei' frekvencia = 48,0 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,234) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '2hump_ei' eset\u00e9ben javasolt max_accel <= 2500 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '3hump_ei' frekvencia = 59,0 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,235) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '3hump_ei' eset\u00e9ben javasolt max_accel <= 2500 mm/sec^2 Aj\u00e1nlott shaper_type_y = mzv, shaper_freq_y = 36,8 Hz Ha egyet\u00e9rt a javasolt param\u00e9terekkel, akkor a SAVE_CONFIG parancsot most v\u00e9gre lehet hajtani a param\u00e9terek ment\u00e9s\u00e9hez \u00e9s a Klipper \u00fajraind\u00edt\u00e1s\u00e1hoz. Vedd figyelembe, hogy ez nem friss\u00edti a max_accel \u00e9rt\u00e9ket a [printer] szakaszban. Ezt manu\u00e1lisan kell friss\u00edtenie a max_accel kiv\u00e1laszt\u00e1sa szakaszban le\u00edrtak szerint. Ha a nyomtat\u00f3ja Y tengely\u00e9n van a t\u00e1rgyasztal akkor megadhatod, hogy melyik tengelyt k\u00edv\u00e1nod tesztelni, \u00edgy a tesztek k\u00f6z\u00f6tt megv\u00e1ltoztathatja a gyorsul\u00e1sm\u00e9r\u0151 r\u00f6gz\u00edt\u00e9si pontj\u00e1t (alap\u00e9rtelmez\u00e9s szerint a teszt mindk\u00e9t tengelyen v\u00e9grehajt\u00e1sra ker\u00fcl): SHAPER_CALIBRATE AXIS=Y A SAVE_CONFIG parancsot k\u00e9tszer - minden egyes tengely kalibr\u00e1l\u00e1sa ut\u00e1n - lehet v\u00e9grehajtani. Ha azonban egyszerre k\u00e9t gyorsul\u00e1sm\u00e9r\u0151t csatlakoztatott, egyszer\u0171en futtassa a SHAPER_CALIBRATE parancsot tengely megad\u00e1sa n\u00e9lk\u00fcl, hogy a bemeneti alak\u00edt\u00f3t mindk\u00e9t tengelyre egy menetben kalibr\u00e1lja. Bemeneti form\u00e1z\u00f3 \u00fajrakalibr\u00e1l\u00e1sa \u00b6 SHAPER_CALIBRATE parancs arra is haszn\u00e1lhat\u00f3, hogy a bemeneti alak\u00edt\u00f3t a j\u00f6v\u0151ben \u00fajra kalibr\u00e1lja, k\u00fcl\u00f6n\u00f6sen akkor, ha a nyomtat\u00f3 kinematik\u00e1j\u00e1t befoly\u00e1sol\u00f3 v\u00e1ltoz\u00e1sok t\u00f6rt\u00e9nnek. A teljes kalibr\u00e1ci\u00f3t vagy a SHAPER_CALIBRATE paranccsal lehet \u00fajra lefuttatni, vagy az automatikus kalibr\u00e1l\u00e1st egyetlen tengelyre lehet korl\u00e1tozni az AXIS= param\u00e9ter megad\u00e1s\u00e1val, p\u00e9ld\u00e1ul a k\u00f6vetkez\u0151 m\u00f3don SHAPER_CALIBRATE AXIS=X Figyelmeztet\u00e9s! Nem tan\u00e1csos a g\u00e9pen az automatikus kalibr\u00e1ci\u00f3t nagyon gyakran futtatni (pl. minden nyomtat\u00e1s el\u0151tt vagy minden nap). A rezonanciafrekvenci\u00e1k meghat\u00e1roz\u00e1sa \u00e9rdek\u00e9ben az automatikus kalibr\u00e1l\u00e1s intenz\u00edv rezg\u00e9seket hoz l\u00e9tre az egyes tengelyeken. A 3D nyomtat\u00f3kat \u00e1ltal\u00e1ban nem \u00fagy tervezt\u00e9k, hogy a rezonanciafrekvenci\u00e1khoz k\u00f6zeli rezg\u00e9seknek tart\u00f3san ellen\u00e1lljanak. Ez n\u00f6velheti a nyomtat\u00f3 alkatr\u00e9szeinek kop\u00e1s\u00e1t \u00e9s cs\u00f6kkentheti \u00e9lettartamukat. Megn\u0151 a kock\u00e1zata annak is, hogy egyes alkatr\u00e9szek kicsavarodnak vagy meglazulnak. Minden egyes automatikus hangol\u00e1s ut\u00e1n mindig ellen\u0151rizd, hogy a nyomtat\u00f3 minden alkatr\u00e9sze (bele\u00e9rtve azokat is, amelyek norm\u00e1l esetben nem mozoghatnak) biztons\u00e1gosan a hely\u00e9n van-e r\u00f6gz\u00edtve. Tov\u00e1bb\u00e1 a m\u00e9r\u00e9sek zajoss\u00e1ga miatt lehets\u00e9ges, hogy a hangol\u00e1si eredm\u00e9nyek kiss\u00e9 elt\u00e9rnek az egyes kalibr\u00e1l\u00e1si folyamatok k\u00f6z\u00f6tt. Ennek ellen\u00e9re nem v\u00e1rhat\u00f3, hogy a zaj t\u00fals\u00e1gosan befoly\u00e1solja a nyomtat\u00e1si min\u0151s\u00e9get. Mindazon\u00e1ltal tov\u00e1bbra is tan\u00e1csos k\u00e9tszer is ellen\u0151rizni a javasolt param\u00e9tereket, \u00e9s haszn\u00e1lat el\u0151tt nyomtatni n\u00e9h\u00e1ny pr\u00f3banyomatot, hogy megbizonyosodj arr\u00f3l, hogy azok megfelel\u0151ek. A gyorsul\u00e1sm\u00e9r\u0151 adatainak offline feldolgoz\u00e1sa \u00b6 Lehet\u0151s\u00e9g van a nyers gyorsul\u00e1sm\u00e9r\u0151 adatok el\u0151\u00e1ll\u00edt\u00e1s\u00e1ra \u00e9s offline feldolgoz\u00e1s\u00e1ra (pl. egy k\u00f6zponti g\u00e9pen), p\u00e9ld\u00e1ul rezonanci\u00e1k keres\u00e9s\u00e9re. Ehhez futtassa a k\u00f6vetkez\u0151 parancsokat az Octoprint termin\u00e1lon kereszt\u00fcl: SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0 TEST_RESONANCES AXIS=X OUTPUT=raw_data a SET_INPUT_SHAPER parancs hib\u00e1inak figyelmen k\u00edv\u00fcl hagy\u00e1sa. A TEST_RESONANCES parancshoz add meg a k\u00edv\u00e1nt teszttengelyt. A nyers adatok az RPi /tmp k\u00f6nyvt\u00e1r\u00e1ba ker\u00fclnek ki\u00edr\u00e1sra. A nyers adatokat \u00fagy is megkaphatjuk, ha a ACCELEROMETER_MEASURE parancsot k\u00e9tszer futtatjuk valamilyen norm\u00e1l nyomtat\u00e1si tev\u00e9kenys\u00e9g k\u00f6zben - el\u0151sz\u00f6r a m\u00e9r\u00e9sek elind\u00edt\u00e1s\u00e1hoz, majd azok le\u00e1ll\u00edt\u00e1s\u00e1hoz \u00e9s a kimeneti f\u00e1jl \u00edr\u00e1s\u00e1hoz. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a G-k\u00f3dok c\u00edm\u0171 dokumentumot. Az adatokat k\u00e9s\u0151bb a k\u00f6vetkez\u0151 szkriptekkel lehet feldolgozni: scripts/graph_accelerometer.py \u00e9s scripts/calibrate_shaper.py . Mindkett\u0151 egy vagy t\u00f6bb nyers csv-f\u00e1jlt fogad el bemenetk\u00e9nt a m\u00f3dt\u00f3l f\u00fcgg\u0151en. A graph_accelerometer.py szkript t\u00f6bbf\u00e9le \u00fczemm\u00f3dot t\u00e1mogat: nyers gyorsul\u00e1sm\u00e9r\u0151 adatok \u00e1br\u00e1zol\u00e1sa (haszn\u00e1ld a -r param\u00e9tert), csak 1 bemenet t\u00e1mogatott; frekvenciav\u00e1lasz \u00e1br\u00e1zol\u00e1sa (nincs sz\u00fcks\u00e9g tov\u00e1bbi param\u00e9terekre), ha t\u00f6bb bemenet van megadva, az \u00e1tlagos frekvenciav\u00e1lasz ker\u00fcl kisz\u00e1m\u00edt\u00e1sra; t\u00f6bb bemenet frekvenciav\u00e1lasz\u00e1nak \u00f6sszehasonl\u00edt\u00e1sa (haszn\u00e1ld a -c param\u00e9tert); a -a x , -a y vagy -a z param\u00e9terrel ezen fel\u00fcl megadhatod, hogy melyik gyorsul\u00e1sm\u00e9r\u0151 tengelyt vegye figyelembe (ha nincs megadva, az \u00f6sszes tengely rezg\u00e9seinek \u00f6sszeg\u00e9t haszn\u00e1lja); a spektrogram \u00e1br\u00e1zol\u00e1sa (haszn\u00e1ld a -s param\u00e9tert), csak 1 bemenet t\u00e1mogatott; a -a x , -a y vagy -a z param\u00e9terrel ezen fel\u00fcl megadhatod, hogy melyik gyorsul\u00e1sm\u00e9r\u0151 tengelyt vegye figyelembe (ha nincs megadva, akkor az \u00f6sszes tengely rezg\u00e9seinek \u00f6sszeg\u00e9t haszn\u00e1lja). Vedd figyelembe, hogy a graph_accelerometer.py szkript csak a raw_data*.csv f\u00e1jlokat t\u00e1mogatja, a resonances*.csv vagy calibration_data*.csv f\u00e1jlokat nem. P\u00e9ld\u00e1ul, ~/klipper/scripts/graph_accelerometer.py /tmp/raw_data_x_*.csv -o /tmp/resonances_x.png -c -a z t\u00f6bb /tmp/raw_data_x_*.csv f\u00e1jl \u00e9s /tmp/resonances_x.png f\u00e1jl \u00f6sszehasonl\u00edt\u00e1s\u00e1t \u00e1br\u00e1zolja a Z tengelyen. A shaper_calibrate.py szkript 1 vagy t\u00f6bb bemenetet fogad el, \u00e9s k\u00e9pes a bemeneti form\u00e1z\u00f3 automatikus hangol\u00e1s\u00e1ra, valamint a legjobb param\u00e9terek kiv\u00e1laszt\u00e1s\u00e1ra, amelyek j\u00f3l m\u0171k\u00f6dnek az \u00f6sszes megadott bemeneten. A javasolt param\u00e9tereket ki\u00edrja a konzolra, \u00e9s emellett k\u00e9pes l\u00e9trehozni a grafikont, ha -o output.png param\u00e9tert adunk meg, vagy a CSV f\u00e1jlt, ha -c output.csv param\u00e9tert adunk meg. T\u00f6bb bemenet megad\u00e1sa a shaper_calibrate.py szkriptnek hasznos lehet, ha p\u00e9ld\u00e1ul a bemeneti form\u00e1z\u00f3k halad\u00f3 hangol\u00e1s\u00e1t v\u00e9gezz\u00fck: A TEST_RESONANCES AXIS=X OUTPUT=raw_data (\u00e9s Y tengely) futtat\u00e1sa egy tengelyre k\u00e9tszer egy Y t\u00e1rgyasztalos nyomtat\u00f3n \u00fagy, hogy a gyorsul\u00e1sm\u00e9r\u0151 el\u0151sz\u00f6r a nyomtat\u00f3fejhez, m\u00e1sodszor pedig a t\u00e1rgyasztalhoz csatlakozik, hogy a tengelyek keresztrezonanci\u00e1it felismerj\u00fck, \u00e9s megpr\u00f3b\u00e1ljuk azokat a bemeneti alak\u00edt\u00f3kkal megsz\u00fcntetni. A TEST_RESONANCES AXIS=Y OUTPUT=raw_data k\u00e9tszeri futtat\u00e1sa egy \u00fcveg t\u00e1rgyasztalos \u00e9s egy m\u00e1gneses fel\u00fclet\u0171 (amelyik k\u00f6nnyebb) t\u00e1rgyasztalon, hogy megtal\u00e1ljuk azokat a bemeneti alak\u00edt\u00f3 param\u00e9tereket, amelyek j\u00f3l m\u0171k\u00f6dnek b\u00e1rmilyen nyomtat\u00e1si fel\u00fcletkonfigur\u00e1ci\u00f3 eset\u00e9n. A t\u00f6bb vizsg\u00e1lati pontb\u00f3l sz\u00e1rmaz\u00f3 rezonanciaadatok kombin\u00e1l\u00e1sa. A 2 tengely rezonanciaadatainak kombin\u00e1l\u00e1sa (pl. egy Y tengelyen l\u00e9v\u0151 t\u00e1rgyasztalos nyomtat\u00f3n\u00e1l az X-tengely input_shaper konfigur\u00e1l\u00e1sa mind az X-, mind az Y-tengely rezonanci\u00e1ib\u00f3l, hogy a t\u00e1rgyasztal rezg\u00e9seit megsz\u00fcntesse, ha a f\u00fav\u00f3ka 'elkap' egy nyomtat\u00e1st, amikor X tengely ir\u00e1ny\u00e1ban mozog).","title":"Rezonanci\u00e1k m\u00e9r\u00e9se"},{"location":"Measuring_Resonances.html#rezonanciak-merese","text":"A Klipper be\u00e9p\u00edtett t\u00e1mogat\u00e1ssal rendelkezik az ADXL345 gyorsul\u00e1sm\u00e9r\u0151h\u00f6z, amely a nyomtat\u00f3 rezonanci\u00e1inak m\u00e9r\u00e9s\u00e9re haszn\u00e1lhat\u00f3 a k\u00fcl\u00f6nb\u00f6z\u0151 tengelyek eset\u00e9ben, \u00e9s automatikus hangol\u00e1ssal rezonancia kompenz\u00e1ci\u00f3val a rezonanci\u00e1k kompenz\u00e1l\u00e1s\u00e1ra. Vedd figyelembe, hogy az ADXL345 haszn\u00e1lata n\u00e9mi forraszt\u00e1st \u00e9s krimpel\u00e9st ig\u00e9nyel. Az ADXL345 k\u00f6zvetlen\u00fcl csatlakoztathat\u00f3 egy Raspberry Pi-hez, vagy egy MCU-k\u00e1rtya SPI-interf\u00e9sz\u00e9hez (meglehet\u0151sen gyorsnak kell lennie). Az ADXL345 beszerz\u00e9sekor vedd figyelembe, hogy sz\u00e1mos k\u00fcl\u00f6nb\u00f6z\u0151 NY\u00c1K lapkakialak\u00edt\u00e1s \u00e9s k\u00fcl\u00f6nb\u00f6z\u0151 kl\u00f3nok l\u00e9teznek. Gy\u0151z\u0151dj meg r\u00f3la, hogy a k\u00e1rtya t\u00e1mogatja az SPI m\u00f3dot (kis sz\u00e1m\u00fa k\u00e1rtya \u00fagy t\u0171nik, hogy szorosan konfigur\u00e1lva van az I2C-re az SDO GND-re h\u00faz\u00e1s\u00e1val), \u00e9s ha 5V-os nyomtat\u00f3 MCU-hoz csatlakozik ellen\u0151rizd,hogy rendelkezik fesz\u00fclts\u00e9gszab\u00e1lyoz\u00f3val \u00e9s szintv\u00e1laszt\u00f3val.","title":"Rezonanci\u00e1k m\u00e9r\u00e9se"},{"location":"Measuring_Resonances.html#telepitesi-utasitasok","text":"","title":"Telep\u00edt\u00e9si utas\u00edt\u00e1sok"},{"location":"Measuring_Resonances.html#vezetekek","text":"Az ADXL345-\u00f6t SPI-n kereszt\u00fcl kell csatlakoztatnod a Raspberry Pi-hez. Vedd figyelembe, hogy az ADXL345 dokument\u00e1ci\u00f3ja \u00e1ltal javasolt I2C kapcsolatnak t\u00fal alacsony az adatforgalmi k\u00e9pess\u00e9ge, \u00e9s nem fog m\u0171k\u00f6dni . Az aj\u00e1nlott kapcsol\u00e1si s\u00e9ma: ADXL345 t\u0171 RPi t\u0171 RPi t\u0171 n\u00e9v 3V3 (or VCC) 01 3.3v DC fesz\u00fclts\u00e9g GND 06 F\u00f6ld CS 24 GPIO08 (SPI0_CE0_N) SDO 21 GPIO09 (SPI0_MISO) SDA 19 GPIO10 (SPI0_MOSI) SCL 23 GPIO11 (SPI0_SCLK) Az ADXL345 alternat\u00edv\u00e1ja az MPU-9250 (vagy MPU-6050). Ezt a gyorsul\u00e1sm\u00e9r\u0151t \u00fagy tesztelt\u00e9k, hogy az RPi-n 400kbaud-on kereszt\u00fcl I2C-n kereszt\u00fcl m\u0171k\u00f6dik. Aj\u00e1nlott csatlakoz\u00e1si s\u00e9ma az I2C-hez: MPU-9250 t\u0171 RPi t\u0171 RPi t\u0171 n\u00e9v 3V3 (or VCC) 01 3.3v DC fesz\u00fclts\u00e9g GND 09 F\u00f6ld SDA 03 GPIO02 (SDA1) SCL 05 GPIO03 (SCL1) Fritzing kapcsol\u00e1si rajzok n\u00e9h\u00e1ny ADXL345 laphoz: A Raspberry Pi bekapcsol\u00e1sa el\u0151tt ellen\u0151rizd k\u00e9tszer is a vezet\u00e9keket, nehogy megs\u00e9r\u00fclj\u00f6n a Raspberry Pi vagy a gyorsul\u00e1sm\u00e9r\u0151.","title":"Vezet\u00e9kek"},{"location":"Measuring_Resonances.html#a-gyorsulasmero-felszerelese","text":"A gyorsul\u00e1sm\u00e9r\u0151t a nyomtat\u00f3fejhez kell csatlakoztatni. Meg kell tervezni egy megfelel\u0151 r\u00f6gz\u00edt\u00e9st, amely illeszkedik a saj\u00e1t 3D nyomtat\u00f3hoz. A gyorsul\u00e1sm\u00e9r\u0151 tengelyeit jobb a nyomtat\u00f3 tengelyeihez igaz\u00edtani (de ha ez k\u00e9nyelmesebb\u00e9 teszi, a tengelyek felcser\u00e9lhet\u0151k - azaz nem kell az X tengelyt X-hez igaz\u00edtani, \u00e9s \u00edgy tov\u00e1bb. Akkor is rendben kell lennie, ha a gyorsul\u00e1sm\u00e9r\u0151 Z tengelye a nyomtat\u00f3 X tengelye, stb). P\u00e9lda az ADXL345 SmartEffectorra t\u00f6rt\u00e9n\u0151 felszerel\u00e9s\u00e9re: Vedd figyelembe, hogy egy t\u00e1rgyasztal cs\u00fasztat\u00f3s nyomtat\u00f3n\u00e1l 2 r\u00f6gz\u00edt\u00e9st kell tervezni: egyet a nyomtat\u00f3fejhez \u00e9s egyet a t\u00e1rgyasztalhoz, \u00e9s a m\u00e9r\u00e9seket k\u00e9tszer kell elv\u00e9gezni. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a megfelel\u0151 szakaszt . Figyelem: gy\u0151z\u0151dj meg arr\u00f3l, hogy a gyorsul\u00e1sm\u00e9r\u0151 \u00e9s a hely\u00e9re r\u00f6gz\u00edt\u0151 csavarok nem \u00e9rnek a nyomtat\u00f3 f\u00e9m r\u00e9szeihez. Alapvet\u0151en a r\u00f6gz\u00edt\u00e9st \u00fagy kell kialak\u00edtani, hogy biztos\u00edtsa a gyorsul\u00e1sm\u00e9r\u0151 elektromos szigetel\u00e9s\u00e9t a nyomtat\u00f3 keret\u00e9t\u0151l. Ennek elmulaszt\u00e1sa f\u00f6ldhurkot hozhat l\u00e9tre a rendszerben, ami k\u00e1ros\u00edthatja az elektronik\u00e1t.","title":"A gyorsul\u00e1sm\u00e9r\u0151 felszerel\u00e9se"},{"location":"Measuring_Resonances.html#szoftver-telepitese","text":"Vedd figyelembe, hogy a rezonanciam\u00e9r\u00e9sek \u00e9s a shaper automatikus kalibr\u00e1l\u00e1sa tov\u00e1bbi, alap\u00e9rtelmez\u00e9s szerint nem telep\u00edtett szoftverf\u00fcgg\u0151s\u00e9geket ig\u00e9nyel. El\u0151sz\u00f6r futtassa a Raspberry Pi sz\u00e1m\u00edt\u00f3g\u00e9p\u00e9n a k\u00f6vetkez\u0151 parancsokat: sudo apt update sudo apt install python3-numpy python3-matplotlib libatlas-base-dev Ezut\u00e1n a NumPy telep\u00edt\u00e9s\u00e9hez a Klipper k\u00f6rnyezetbe futtassuk a parancsot: ~/klippy-env/bin/pip install -v numpy Vedd figyelembe, hogy a CPU teljes\u00edtm\u00e9ny\u00e9t\u0151l f\u00fcgg\u0151en ez sok id\u0151t vehet ig\u00e9nybe, ak\u00e1r 10-20 percet is. Legyen t\u00fcrelmes, \u00e9s v\u00e1rja meg a telep\u00edt\u00e9s befejez\u00e9s\u00e9t. Bizonyos esetekben, ha a k\u00e1rty\u00e1n t\u00fal kev\u00e9s RAM van, a telep\u00edt\u00e9s meghi\u00fasulhat, \u00e9s enged\u00e9lyeznie kell a swapot. Ezut\u00e1n ellen\u0151rizd \u00e9s k\u00f6vesse az RPi Microcontroller dokumentum utas\u00edt\u00e1sait a \"linux mcu\" be\u00e1ll\u00edt\u00e1s\u00e1hoz a Raspberry Pi-n. Gy\u0151z\u0151dj\u00fcnk meg r\u00f3la, hogy a Linux SPI-illeszt\u0151program enged\u00e9lyezve van a sudo raspi-config futtat\u00e1s\u00e1val \u00e9s az SPI enged\u00e9lyez\u00e9s\u00e9vel az \"Interfacing options\" men\u00fcben. Az ADXL345 eset\u00e9ben add hozz\u00e1 a k\u00f6vetkez\u0151ket a printer.cfg f\u00e1jlhoz: [mcu rpi] serial: /tmp/klipper_host_mcu [adxl345] cs_pin: rpi:None [resonance_tester] accel_chip: adxl345 probe_points: 100, 100, 20 # egy p\u00e9lda Javasoljuk, hogy 1 m\u00e9r\u0151pontal kezd, a nyomtat\u00e1si t\u00e1rgyasztal k\u00f6zep\u00e9n, kiss\u00e9 felette. Az MPU-9250 eset\u00e9ben gy\u0151z\u0151dj meg r\u00f3la, hogy a Linux I2C illeszt\u0151program enged\u00e9lyezve van, \u00e9s az \u00e1tviteli sebess\u00e9g 400000-re van \u00e1ll\u00edtva (tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd az I2C enged\u00e9lyez\u00e9se r\u00e9szt). Ezut\u00e1n adjuk hozz\u00e1 a k\u00f6vetkez\u0151ket a printer.cfg f\u00e1jlhoz: [mcu rpi] serial: /tmp/klipper_host_mcu [mpu9250] i2c_mcu: rpi i2c_bus: i2c.1 [resonance_tester] accel_chip: mpu9250 probe_points: 100, 100, 20 # an example Ind\u00edtsa \u00fajra a Klippert a RESTART paranccsal.","title":"Szoftver telep\u00edt\u00e9se"},{"location":"Measuring_Resonances.html#a-rezonanciak-merese","text":"","title":"A rezonanci\u00e1k m\u00e9r\u00e9se"},{"location":"Measuring_Resonances.html#a-beallitas-ellenorzese","text":"Most m\u00e1r tesztelheti a kapcsolatot. A \"nem t\u00e1rgyasztalt \u00e9rint\u0151\" (pl. egy gyorsul\u00e1sm\u00e9r\u0151), az Octoprintbe \u00edrd be az ACCELEROMETER_QUERY parancsot A \"bed-slingers\" (pl. egyn\u00e9l t\u00f6bb gyorsul\u00e1sm\u00e9r\u0151) eset\u00e9ben \u00edrd be az ACCELEROMETER_QUERY CHIP=<chip> ahol <chip> a chip neve a be\u00edrt form\u00e1ban, pl. CHIP=bed (l\u00e1sd: bed-slinger nyomtat\u00f3k ) az \u00f6sszes telep\u00edtett gyorsul\u00e1sm\u00e9r\u0151 chiphez. A gyorsul\u00e1sm\u00e9r\u0151 aktu\u00e1lis m\u00e9r\u00e9seit kell l\u00e1tnia, bele\u00e9rtve a szabades\u00e9s gyorsul\u00e1s\u00e1t is, pl. Visszah\u00edv\u00e1s: // adxl345 \u00e9rt\u00e9kek (x, y, z): 470.719200, 941.438400, 9728.196800 Ha olyan hib\u00e1t kap, mint Invalid adxl345 id (got xx vs e5) , ahol xx valami m\u00e1s azonos\u00edt\u00f3, azaz ADXL345-\u00f6t \u00e9rint\u0151 kapcsolati probl\u00e9m\u00e1ra vagy a hib\u00e1s \u00e9rz\u00e9kel\u0151re utal. Ellen\u0151rizd k\u00e9tszer is a t\u00e1pell\u00e1t\u00e1st, a k\u00e1belez\u00e9st (hogy megfelel-e a kapcsol\u00e1si rajzoknak, nincs-e t\u00f6r\u00f6tt vagy laza vezet\u00e9k stb.) \u00e9s a forraszt\u00e1s min\u0151s\u00e9g\u00e9t. Ezut\u00e1n pr\u00f3b\u00e1ld meg futtatni a MEASURE_AXES_NOISE parancsot az Octoprintben, \u00edgy kaphatsz n\u00e9h\u00e1ny alapsz\u00e1mot a gyorsul\u00e1sm\u00e9r\u0151 zaj\u00e1ra a tengelyeken (valahol a ~1-100-as tartom\u00e1nyban kell lennie). A t\u00fal magas tengelyzaj (pl. 1000 \u00e9s t\u00f6bb) az \u00e9rz\u00e9kel\u0151 probl\u00e9m\u00e1ira, a t\u00e1pell\u00e1t\u00e1s\u00e1val kapcsolatos probl\u00e9m\u00e1kra vagy a 3D nyomtat\u00f3 t\u00fal zajos, kiegyens\u00falyozatlan ventil\u00e1toraira utalhat.","title":"A be\u00e1ll\u00edt\u00e1s ellen\u0151rz\u00e9se"},{"location":"Measuring_Resonances.html#a-rezonanciak-merese_1","text":"Most m\u00e1r lefuttathat n\u00e9h\u00e1ny val\u00f3s tesztet. Futtassa a k\u00f6vetkez\u0151 parancsot: TEST_RESONANCES AXIS=X Vedd figyelembe, hogy az X tengelyen rezg\u00e9seket hoz l\u00e9tre. A bemeneti alak\u00edt\u00e1st is letiltja, ha az kor\u00e1bban enged\u00e9lyezve volt, mivel a rezonancia tesztel\u00e9s nem \u00e9rv\u00e9nyes a bemeneti alak\u00edt\u00f3 enged\u00e9lyez\u00e9s\u00e9vel. Figyelem! Az els\u0151 alkalommal mindenk\u00e9ppen figyelje meg a nyomtat\u00f3t, hogy a rezg\u00e9sek ne legyenek t\u00fal hevesek (az M112 paranccsal v\u00e9szhelyzet eset\u00e9n megszak\u00edthat\u00f3 a teszt; rem\u00e9lhet\u0151leg azonban erre nem ker\u00fcl sor). Ha a rezg\u00e9sek m\u00e9gis t\u00fal er\u0151sek lesznek, megpr\u00f3b\u00e1lhat az alap\u00e9rtelmezettn\u00e9l alacsonyabb \u00e9rt\u00e9ket megadni az accel_per_hz param\u00e9terhez a [resonance_tester] szakaszban, pl. [resonance_tester] accel_chip: adxl345 accel_per_hz: 50 # default is 75 probe_points: ... Ha az X tengelyen m\u0171k\u00f6dik, futtassa az Y tengelyen is: TEST_RESONANCES AXIS=Y Ez 2 CSV f\u00e1jlt fog l\u00e9trehozni ( /tmp/resonances_x_*.csv \u00e9s /tmp/resonances_y_*.csv ) Ezeket a f\u00e1jlokat a Raspberry Pi-n l\u00e9v\u0151 \u00f6n\u00e1ll\u00f3 szkript seg\u00edts\u00e9g\u00e9vel lehet feldolgozni. Ehhez futtassa a k\u00f6vetkez\u0151 parancsokat: ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_y_*.csv -o /tmp/shaper_calibrate_y.png Ez a szkript l\u00e9trehozza a /tmp/shaper_calibrate_x.png \u00e9s /tmp/shaper_calibrate_y.png diagramokat a frekvenciav\u00e1laszokkal. Az egyes bemeneti shaperek javasolt frekvenci\u00e1it is megkapja, valamint azt, hogy melyik bemeneti shaper aj\u00e1nlott a te be\u00e1ll\u00edt\u00e1sodhoz. P\u00e9ld\u00e1ul: Illesztett alak\u00edt\u00f3 'zv' frekvencia = 34,4 Hz (rezg\u00e9sek = 4,0%, sim\u00edt\u00e1s ~= 0,132) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a 'zv', javasolt max_accel <= 4500 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'mzv' frekvencia = 34,6 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,170) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'mzv' eset\u00e9ben javasolt max_accel <= 3500 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'ei' frekvencia = 41,4 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,188) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'ei', javasolt max_accel <= 3200 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '2hump_ei' frekvencia = 51,8 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,201) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '2hump_ei' eset\u00e9ben javasolt max_accel <= 3000 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '3hump_ei' frekvencia = 61,8 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,215) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '3hump_ei' eset\u00e9ben javasolt max_accel <= 2800 mm/sec^2 Az aj\u00e1nlott shaper az mzv @ 34,6 Hz. A javasolt konfigur\u00e1ci\u00f3 hozz\u00e1adhat\u00f3 az [input_shaper] szakaszhoz a printer.cfg r\u00e9szben, p\u00e9ld\u00e1ul: [input_shaper] shaper_freq_x: ... shaper_type_x: ... shaper_freq_y: 34.6 shaper_type_y: mzv [printer] max_accel: 3000 # nem haladhatja meg a becs\u00fclt max_accel \u00e9rt\u00e9ket az X \u00e9s Y tengelyekn\u00e9l. vagy v\u00e1laszthat m\u00e1s konfigur\u00e1ci\u00f3t is a gener\u00e1lt diagramok alapj\u00e1n: a diagramokon a teljes\u00edtm\u00e9nyspektr\u00e1lis s\u0171r\u0171s\u00e9g cs\u00facsai megfelelnek a nyomtat\u00f3 rezonanciafrekvenci\u00e1inak. Megjegyzend\u0151, hogy alternat\u00edvak\u00e9nt a bemeneti alak\u00edt\u00f3 automatikus kalibr\u00e1ci\u00f3j\u00e1t a Klipperb\u0151l k\u00f6zvetlen\u00fcl is futtathatja, ami p\u00e9ld\u00e1ul a bemeneti form\u00e1z\u00f3 \u00fajrakalibr\u00e1l\u00e1s\u00e1hoz lehet hasznos.","title":"A rezonanci\u00e1k m\u00e9r\u00e9se"},{"location":"Measuring_Resonances.html#bed-slinger-nyomtatok","text":"Ha a nyomtat\u00f3d t\u00e1rgyasztala Y tengelyen van, akkor meg kell v\u00e1ltoztatnod a gyorsul\u00e1sm\u00e9r\u0151 hely\u00e9t az X \u00e9s Y tengelyek m\u00e9r\u00e9sei k\u00f6z\u00f6tt: az X tengely rezonanci\u00e1it a nyomtat\u00f3fejre szerelt gyorsul\u00e1sm\u00e9r\u0151vel, az Y tengely rezonanci\u00e1it pedig a t\u00e1rgyasztalra szerelt gyorsul\u00e1sm\u00e9r\u0151vel kell m\u00e9rned (a szok\u00e1sos nyomtat\u00f3 be\u00e1ll\u00edt\u00e1ssal). Azonban k\u00e9t gyorsul\u00e1sm\u00e9r\u0151t is csatlakoztathatsz egyszerre, b\u00e1r ezeket k\u00fcl\u00f6nb\u00f6z\u0151 lapokhoz kell csatlakoztatni (mondjuk egy RPi \u00e9s egy nyomtat\u00f3 MCU laphoz), vagy k\u00e9t k\u00fcl\u00f6nb\u00f6z\u0151 fizikai SPI interf\u00e9szhez ugyanazon a lapon (ritk\u00e1n el\u00e9rhet\u0151). Ezut\u00e1n a k\u00f6vetkez\u0151 m\u00f3don lehet \u0151ket konfigur\u00e1lni: [adxl345 hotend] # Felt\u00e9telezve, hogy a `hotend` chip egy RPi-hez van csatlakoztatva. cs_pin: rpi:None [adxl345 bed] # Felt\u00e9telezve, hogy a `bed` chip egy nyomtat\u00f3 MCU lapk\u00e1hoz van csatlakoztatva. cs_pin: ... # nyomtat\u00f3 alaplap SPI chip kiv\u00e1laszt\u00f3 (CS) t\u0171je [resonance_tester] # Felt\u00e9telezve az Y t\u00e1rgyasztalos nyomtat\u00f3 tipikus be\u00e1ll\u00edt\u00e1s\u00e1t. accel_chip_x: adxl345 hotend accel_chip_y: adxl345 bed probe_points: ... Ekkor a TEST_RESONANCES AXIS=X \u00e9s TEST_RESONANCES AXIS=Y parancsok a megfelel\u0151 gyorsul\u00e1sm\u00e9r\u0151t fogj\u00e1k haszn\u00e1lni minden tengelyhez.","title":"Bed-slinger nyomtat\u00f3k"},{"location":"Measuring_Resonances.html#max-simitas","text":"Ne feledd, hogy a bemeneti form\u00e1z\u00f3 sim\u00edt\u00e1st hozhat l\u00e9tre az alkatr\u00e9szekben. A calibrate_shaper.py szkript vagy SHAPER_CALIBRATE parancs \u00e1ltal v\u00e9grehajtott bemeneti form\u00e1z\u00f3 automatikus hangol\u00e1sa nem s\u00falyosb\u00edtja a sim\u00edt\u00e1st, ugyanakkor megpr\u00f3b\u00e1lja minimaliz\u00e1lni az ebb\u0151l ered\u0151 rezg\u00e9seket. N\u00e9ha az alakform\u00e1l\u00f3 frekvencia optim\u00e1list\u00f3l elmarad\u00f3 v\u00e1laszt\u00e1s\u00e1t hozhatj\u00e1k, vagy tal\u00e1n egyszer\u0171en csak kev\u00e9sb\u00e9 sim\u00edtj\u00e1k az alkatr\u00e9szeket a nagyobb fennmarad\u00f3 rezg\u00e9sek rov\u00e1s\u00e1ra. Ezekben az esetekben k\u00e9rheti a bemeneti form\u00e1z\u00f3 maxim\u00e1lis sim\u00edt\u00e1s\u00e1nak korl\u00e1toz\u00e1s\u00e1t. N\u00e9zz\u00fck meg az automatikus hangol\u00e1s k\u00f6vetkez\u0151 eredm\u00e9nyeit: Illesztett alak\u00edt\u00f3 'zv' frekvencia = 57,8 Hz (rezg\u00e9sek = 20,3%, sim\u00edt\u00e1s ~= 0,053) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a 'zv', javasolt max_accel <= 13000 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'mzv' frekvencia = 34,8 Hz (rezg\u00e9sek = 3,6%, sim\u00edt\u00e1s ~= 0,168) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'mzv' eset\u00e9ben javasolt max_accel <= 3600 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'ei' frekvencia = 48,8 Hz (rezg\u00e9sek = 4,9%, sim\u00edt\u00e1s ~= 0,135) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'ei', javasolt max_accel <= 4400 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '2hump_ei' frekvencia = 45,2 Hz (rezg\u00e9sek = 0,1%, sim\u00edt\u00e1s ~= 0,264) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '2hump_ei' eset\u00e9ben javasolt max_accel <= 2200 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '3hump_ei' frekvencia = 48,0 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,356) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '3hump_ei' eset\u00e9ben javasolt max_accel <= 1500 mm/sec^2 Az aj\u00e1nlott alak\u00edt\u00f3 2hump_ei @ 45,2 Hz. Vedd figyelembe, hogy a bejelentett sim\u00edt\u00e1s \u00e9rt\u00e9kek absztrakt vet\u00edtett \u00e9rt\u00e9kek. Ezek az \u00e9rt\u00e9kek k\u00fcl\u00f6nb\u00f6z\u0151 konfigur\u00e1ci\u00f3k \u00f6sszehasonl\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3k: min\u00e9l magasabb az \u00e9rt\u00e9k, ann\u00e1l nagyobb sim\u00edt\u00e1st hoz l\u00e9tre a form\u00e1z\u00f3. Ezek a sim\u00edt\u00e1si \u00e9rt\u00e9kek azonban nem jelentik a sim\u00edt\u00e1s val\u00f3di m\u00e9rt\u00e9k\u00e9t, mivel a t\u00e9nyleges sim\u00edt\u00e1s a max_accel \u00e9s square_corner_velocity param\u00e9terekt\u0151l f\u00fcgg. Ez\u00e9rt \u00e9rdemes n\u00e9h\u00e1ny tesztnyomatot nyomtatni, hogy l\u00e1ssuk, pontosan mekkora sim\u00edt\u00e1st hoz l\u00e9tre a kiv\u00e1lasztott konfigur\u00e1ci\u00f3. A fenti p\u00e9ld\u00e1ban a javasolt alak\u00edt\u00f3 param\u00e9terek nem rosszak, de mi van akkor, ha az X tengelyen kevesebb sim\u00edt\u00e1st szeretn\u00e9l el\u00e9rni? Megpr\u00f3b\u00e1lhatod korl\u00e1tozni a maxim\u00e1lis alak\u00edt\u00f3 sim\u00edt\u00e1st a k\u00f6vetkez\u0151 paranccsal: ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png --max_smoothing=0.2 amely a sim\u00edt\u00e1st 0,2 pontsz\u00e1mra korl\u00e1tozza. Most a k\u00f6vetkez\u0151 eredm\u00e9nyt kaphatja: Illesztett alak\u00edt\u00f3 'zv' frekvencia = 55,4 Hz (rezg\u00e9sek = 19,7%, sim\u00edt\u00e1s ~= 0,057) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a 'zv', javasolt max_accel <= 12000 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'mzv' frekvencia = 34,6 Hz (rezg\u00e9sek = 3,6%, sim\u00edt\u00e1s ~= 0,170) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'mzv' eset\u00e9ben javasolt max_accel <= 3500 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'ei' frekvencia = 48,2 Hz (rezg\u00e9sek = 4,8%, sim\u00edt\u00e1s ~= 0,139) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'ei' eset\u00e9ben javasolt max_accel <= 4300 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '2hump_ei' frekvencia = 52,0 Hz (rezg\u00e9sek = 2,7%, sim\u00edt\u00e1s ~= 0,200) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '2hump_ei' eset\u00e9ben javasolt max_accel <= 3000 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '3hump_ei' frekvencia = 72,6 Hz (rezg\u00e9sek = 1,4%, sim\u00edt\u00e1s ~= 0,155) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '3hump_ei' eset\u00e9ben javasolt max_accel <= 3900 mm/sec^2 Az aj\u00e1nlott alak\u00edt\u00f3 3hump_ei @ 72,6 Hz. Ha \u00f6sszehasonl\u00edtjuk a kor\u00e1bban javasolt param\u00e9terekkel, a rezg\u00e9sek kicsit nagyobbak, de a sim\u00edt\u00e1s l\u00e9nyegesen kisebb, mint kor\u00e1bban, ami nagyobb maxim\u00e1lis gyorsul\u00e1st tesz lehet\u0151v\u00e9. A max_smoothing param\u00e9ter kiv\u00e1laszt\u00e1sakor a pr\u00f3b\u00e1lgat\u00e1s \u00e9s a t\u00e9ved\u00e9s m\u00f3dszer\u00e9t alkalmazhatjuk. Pr\u00f3b\u00e1ljon ki n\u00e9h\u00e1ny k\u00fcl\u00f6nb\u00f6z\u0151 \u00e9rt\u00e9ket, \u00e9s n\u00e9zze meg, milyen eredm\u00e9nyeket kap. Vedd figyelembe, hogy a bemeneti alak\u00edt\u00f3 \u00e1ltal el\u0151\u00e1ll\u00edtott t\u00e9nyleges sim\u00edt\u00e1s els\u0151sorban a nyomtat\u00f3 legalacsonyabb rezonanciafrekvenci\u00e1j\u00e1t\u00f3l f\u00fcgg: min\u00e9l magasabb a legalacsonyabb rezonancia frekvenci\u00e1ja - ann\u00e1l kisebb a sim\u00edt\u00e1s. Ez\u00e9rt ha azt k\u00e9ri a parancsf\u00e1jlt\u00f3l, hogy a bemeneti alak\u00edt\u00f3 olyan konfigur\u00e1ci\u00f3j\u00e1t keresse meg, amely irre\u00e1lisan kis sim\u00edt\u00e1ssal rendelkezik, akkor ez a legalacsonyabb rezonanciafrekvenci\u00e1kon (amelyek jellemz\u0151en a nyomatokon is jobban l\u00e1that\u00f3ak) megn\u00f6vekedett rezg\u00e9s \u00e1r\u00e1n fog t\u00f6rt\u00e9nni. Ez\u00e9rt mindig ellen\u0151rizd k\u00e9tszeresen a szkript \u00e1ltal jelzett vet\u00edtett marad\u00f3 rezg\u00e9seket, \u00e9s gy\u0151z\u0151dj meg r\u00f3la, hogy azok nem t\u00fal magasak. Ha mindk\u00e9t tengelyhez j\u00f3 max_smoothing \u00e9rt\u00e9ket v\u00e1lasztott, akkor azt a printer.cfg \u00e1llom\u00e1nyban t\u00e1rolhatja a k\u00f6vetkez\u0151 m\u00f3don [resonance_tester] accel_chip: ... probe_points: ... max_smoothing: 0.25 # egy p\u00e9lda Ezut\u00e1n, ha a j\u00f6v\u0151ben \u00fajraind\u00edtja a bemeneti alak\u00edt\u00f3 automatikus hangol\u00e1s\u00e1t a SHAPER_CALIBRATE Klipper parancs seg\u00edts\u00e9g\u00e9vel, akkor a t\u00e1rolt max_smoothing \u00e9rt\u00e9ket fogja referenciak\u00e9nt haszn\u00e1lni.","title":"Max sim\u00edt\u00e1s"},{"location":"Measuring_Resonances.html#a-max_accel-kivalasztasa","text":"Mivel a bemeneti alak\u00edt\u00f3 n\u00e9mi sim\u00edt\u00e1st okozhat az elemekben, k\u00fcl\u00f6n\u00f6sen nagy gyorsul\u00e1sokn\u00e1l, tov\u00e1bbra is meg kell v\u00e1lasztani a max_accel \u00e9rt\u00e9ket, amely nem okoz t\u00fal nagy sim\u00edt\u00e1st a nyomtatott alkatr\u00e9szekben. Egy kalibr\u00e1ci\u00f3s szkript becsl\u00e9st ad a max_accel param\u00e9terre, amely nem okozhat t\u00fal nagy sim\u00edt\u00e1st. Vedd figyelembe, hogy a kalibr\u00e1ci\u00f3s szkript \u00e1ltal megjelen\u00edtett max_accel csak egy elm\u00e9leti maximum, amelyn\u00e9l az adott alak\u00edt\u00f3 m\u00e9g k\u00e9pes \u00fagy dolgozni, hogy nem okoz t\u00fal nagy sim\u00edt\u00e1st. Semmik\u00e9ppen sem aj\u00e1nlott ezt a gyorsul\u00e1st be\u00e1ll\u00edtani a nyomtat\u00e1shoz. A nyomtat\u00f3ja \u00e1ltal elviselhet\u0151 maxim\u00e1lis gyorsul\u00e1s a nyomtat\u00f3 mechanikai tulajdons\u00e1gait\u00f3l \u00e9s a haszn\u00e1lt l\u00e9ptet\u0151motorok maxim\u00e1lis nyomat\u00e9k\u00e1t\u00f3l f\u00fcgg. Ez\u00e9rt javasolt a max_accel be\u00e1ll\u00edt\u00e1sa a [nyomtat\u00f3] szakaszban, amely nem haladja meg az X \u00e9s Y tengelyek becs\u00fclt \u00e9rt\u00e9keit, val\u00f3sz\u00edn\u0171leg n\u00e9mi konzervat\u00edv biztons\u00e1gi tartal\u00e9kkal. Alternat\u00edvak\u00e9nt k\u00f6vesse ezt a r\u00e9szt a bemeneti alak\u00edt\u00f3 hangol\u00e1si \u00fatmutat\u00f3j\u00e1ban, \u00e9s nyomtasd ki a tesztmodellt a max_accel param\u00e9ter k\u00eds\u00e9rleti kiv\u00e1laszt\u00e1s\u00e1hoz. Ugyanez a figyelmeztet\u00e9s vonatkozik a bemeneti alak\u00edt\u00f3 automatikus kalibr\u00e1l\u00e1s SHAPER_CALIBRATE paranccsal t\u00f6rt\u00e9n\u0151 haszn\u00e1lat\u00e1ra is: az automatikus kalibr\u00e1l\u00e1s ut\u00e1n tov\u00e1bbra is sz\u00fcks\u00e9ges a megfelel\u0151 max_accel \u00e9rt\u00e9k kiv\u00e1laszt\u00e1sa, \u00e9s a javasolt gyorsul\u00e1si korl\u00e1tok nem lesznek automatikusan alkalmazva. Ha a form\u00e1z\u00f3 \u00fajrakalibr\u00e1l\u00e1s\u00e1t v\u00e9gzi, \u00e9s a javasolt form\u00e1z\u00f3 konfigur\u00e1ci\u00f3hoz tartoz\u00f3 sim\u00edt\u00e1s majdnem megegyezik az el\u0151z\u0151 kalibr\u00e1l\u00e1s sor\u00e1n kapott \u00e9rt\u00e9kkel, ez a l\u00e9p\u00e9s kihagyhat\u00f3.","title":"A max_accel kiv\u00e1laszt\u00e1sa"},{"location":"Measuring_Resonances.html#egyeni-tengelyek-tesztelese","text":"TEST_RESONANCES parancs t\u00e1mogatja az egy\u00e9ni tengelyeket. B\u00e1r ez nem igaz\u00e1n hasznos a bemeneti alak\u00edt\u00f3 kalibr\u00e1l\u00e1s\u00e1hoz, a nyomtat\u00f3 rezonanci\u00e1inak alapos tanulm\u00e1nyoz\u00e1s\u00e1ra \u00e9s p\u00e9ld\u00e1ul a sz\u00edjfesz\u00edt\u00e9s ellen\u0151rz\u00e9s\u00e9re haszn\u00e1lhat\u00f3. A CoreXY nyomtat\u00f3kon a sz\u00edjfesz\u00edt\u00e9s ellen\u0151rz\u00e9s\u00e9hez hajtsd v\u00e9gre a k\u00f6vetkez\u0151t TEST_RESONANCES AXIS=1,1 OUTPUT=raw_data TEST_RESONANCES AXIS=1,-1 OUTPUT=raw_data \u00e9s haszn\u00e1ljuk a graph_accelerometer.py f\u00e1jlt a gener\u00e1lt f\u00e1jlok feldolgoz\u00e1s\u00e1hoz, pl. ~/klipper/scripts/graph_accelerometer.py -c /tmp/raw_data_axis*.csv -o /tmp/resonances.png amely a rezonanci\u00e1kat \u00f6sszehasonl\u00edtva /tmp/resonances.png k\u00e9pet hoz l\u00e9tre. Az alap\u00e9rtelmezett toronyelhelyez\u00e9s\u0171 Delta nyomtat\u00f3k eset\u00e9ben (A torony ~= 210 fok, B ~= 330 fok \u00e9s C ~= 90 fok), hajtsd v\u00e9gre a k\u00f6vetkez\u0151t TEST_RESONANCES AXIS=0,1 OUTPUT=raw_data TEST_RESONANCES AXIS=-0.866025404,-0.5 OUTPUT=raw_data TEST_RESONANCES AXIS=0.866025404,-0.5 OUTPUT=raw_data majd haszn\u00e1ld ugyanazt a parancsot ~/klipper/scripts/graph_accelerometer.py -c /tmp/raw_data_axis*.csv -o /tmp/resonances.png /tmp/resonances.png l\u00e9trehoz\u00e1s\u00e1hoz, amely \u00f6sszehasonl\u00edtja a rezonanci\u00e1kat.","title":"Egy\u00e9ni tengelyek tesztel\u00e9se"},{"location":"Measuring_Resonances.html#bemeneti-formazo-automatikus-kalibralasa","text":"A bemeneti form\u00e1z\u00f3 funkci\u00f3 megfelel\u0151 param\u00e9tereinek k\u00e9zi kiv\u00e1laszt\u00e1sa mellett a bemeneti alak\u00edt\u00f3 automatikus hangol\u00e1sa k\u00f6zvetlen\u00fcl a Klipperb\u0151l is elv\u00e9gezhet\u0151. Futtassa a k\u00f6vetkez\u0151 parancsot az Octoprint termin\u00e1lon kereszt\u00fcl: SHAPER_CALIBRATE Ez lefuttatja a teljes tesztet mindk\u00e9t tengelyre, \u00e9s l\u00e9trehozza a csv-kimenetet ( /tmp/calibration_data_*.csv alap\u00e9rtelmez\u00e9s szerint) a frekvenciav\u00e1laszr\u00f3l \u00e9s a javasolt bemeneti alak\u00edt\u00f3kr\u00f3l. Az Octoprint konzolon megkapja az egyes bemeneti alak\u00edt\u00f3k javasolt frekvenci\u00e1it is, valamint azt, hogy melyik bemeneti alak\u00edt\u00f3t aj\u00e1nljuk az \u00d6n be\u00e1ll\u00edt\u00e1s\u00e1hoz. P\u00e9ld\u00e1ul: A legjobb bemeneti alak\u00edt\u00f3 param\u00e9terek kisz\u00e1m\u00edt\u00e1sa az y tengelyhez Beillesztett alak\u00edt\u00f3 'zv' frekvencia = 39,0 Hz (rezg\u00e9sek = 13,2%, sim\u00edt\u00e1s ~= 0,105) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a 'zv', javasolt max_accel <= 5900 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'mzv' frekvencia = 36,8 Hz (rezg\u00e9sek = 1,7%, sim\u00edt\u00e1s ~= 0,150) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'mzv' eset\u00e9ben javasolt max_accel <= 4000 mm/sec^2 Alkalmazott alak\u00edt\u00f3 'ei' frekvencia = 36,6 Hz (rezg\u00e9sek = 2,2%, sim\u00edt\u00e1s ~= 0,240) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben az 'ei', javasolt max_accel <= 2500 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '2hump_ei' frekvencia = 48,0 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,234) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '2hump_ei' eset\u00e9ben javasolt max_accel <= 2500 mm/sec^2 Alkalmazott alak\u00edt\u00f3 '3hump_ei' frekvencia = 59,0 Hz (rezg\u00e9sek = 0,0%, sim\u00edt\u00e1s ~= 0,235) A t\u00fal nagy sim\u00edt\u00e1s elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a '3hump_ei' eset\u00e9ben javasolt max_accel <= 2500 mm/sec^2 Aj\u00e1nlott shaper_type_y = mzv, shaper_freq_y = 36,8 Hz Ha egyet\u00e9rt a javasolt param\u00e9terekkel, akkor a SAVE_CONFIG parancsot most v\u00e9gre lehet hajtani a param\u00e9terek ment\u00e9s\u00e9hez \u00e9s a Klipper \u00fajraind\u00edt\u00e1s\u00e1hoz. Vedd figyelembe, hogy ez nem friss\u00edti a max_accel \u00e9rt\u00e9ket a [printer] szakaszban. Ezt manu\u00e1lisan kell friss\u00edtenie a max_accel kiv\u00e1laszt\u00e1sa szakaszban le\u00edrtak szerint. Ha a nyomtat\u00f3ja Y tengely\u00e9n van a t\u00e1rgyasztal akkor megadhatod, hogy melyik tengelyt k\u00edv\u00e1nod tesztelni, \u00edgy a tesztek k\u00f6z\u00f6tt megv\u00e1ltoztathatja a gyorsul\u00e1sm\u00e9r\u0151 r\u00f6gz\u00edt\u00e9si pontj\u00e1t (alap\u00e9rtelmez\u00e9s szerint a teszt mindk\u00e9t tengelyen v\u00e9grehajt\u00e1sra ker\u00fcl): SHAPER_CALIBRATE AXIS=Y A SAVE_CONFIG parancsot k\u00e9tszer - minden egyes tengely kalibr\u00e1l\u00e1sa ut\u00e1n - lehet v\u00e9grehajtani. Ha azonban egyszerre k\u00e9t gyorsul\u00e1sm\u00e9r\u0151t csatlakoztatott, egyszer\u0171en futtassa a SHAPER_CALIBRATE parancsot tengely megad\u00e1sa n\u00e9lk\u00fcl, hogy a bemeneti alak\u00edt\u00f3t mindk\u00e9t tengelyre egy menetben kalibr\u00e1lja.","title":"Bemeneti form\u00e1z\u00f3 automatikus kalibr\u00e1l\u00e1sa"},{"location":"Measuring_Resonances.html#bemeneti-formazo-ujrakalibralasa","text":"SHAPER_CALIBRATE parancs arra is haszn\u00e1lhat\u00f3, hogy a bemeneti alak\u00edt\u00f3t a j\u00f6v\u0151ben \u00fajra kalibr\u00e1lja, k\u00fcl\u00f6n\u00f6sen akkor, ha a nyomtat\u00f3 kinematik\u00e1j\u00e1t befoly\u00e1sol\u00f3 v\u00e1ltoz\u00e1sok t\u00f6rt\u00e9nnek. A teljes kalibr\u00e1ci\u00f3t vagy a SHAPER_CALIBRATE paranccsal lehet \u00fajra lefuttatni, vagy az automatikus kalibr\u00e1l\u00e1st egyetlen tengelyre lehet korl\u00e1tozni az AXIS= param\u00e9ter megad\u00e1s\u00e1val, p\u00e9ld\u00e1ul a k\u00f6vetkez\u0151 m\u00f3don SHAPER_CALIBRATE AXIS=X Figyelmeztet\u00e9s! Nem tan\u00e1csos a g\u00e9pen az automatikus kalibr\u00e1ci\u00f3t nagyon gyakran futtatni (pl. minden nyomtat\u00e1s el\u0151tt vagy minden nap). A rezonanciafrekvenci\u00e1k meghat\u00e1roz\u00e1sa \u00e9rdek\u00e9ben az automatikus kalibr\u00e1l\u00e1s intenz\u00edv rezg\u00e9seket hoz l\u00e9tre az egyes tengelyeken. A 3D nyomtat\u00f3kat \u00e1ltal\u00e1ban nem \u00fagy tervezt\u00e9k, hogy a rezonanciafrekvenci\u00e1khoz k\u00f6zeli rezg\u00e9seknek tart\u00f3san ellen\u00e1lljanak. Ez n\u00f6velheti a nyomtat\u00f3 alkatr\u00e9szeinek kop\u00e1s\u00e1t \u00e9s cs\u00f6kkentheti \u00e9lettartamukat. Megn\u0151 a kock\u00e1zata annak is, hogy egyes alkatr\u00e9szek kicsavarodnak vagy meglazulnak. Minden egyes automatikus hangol\u00e1s ut\u00e1n mindig ellen\u0151rizd, hogy a nyomtat\u00f3 minden alkatr\u00e9sze (bele\u00e9rtve azokat is, amelyek norm\u00e1l esetben nem mozoghatnak) biztons\u00e1gosan a hely\u00e9n van-e r\u00f6gz\u00edtve. Tov\u00e1bb\u00e1 a m\u00e9r\u00e9sek zajoss\u00e1ga miatt lehets\u00e9ges, hogy a hangol\u00e1si eredm\u00e9nyek kiss\u00e9 elt\u00e9rnek az egyes kalibr\u00e1l\u00e1si folyamatok k\u00f6z\u00f6tt. Ennek ellen\u00e9re nem v\u00e1rhat\u00f3, hogy a zaj t\u00fals\u00e1gosan befoly\u00e1solja a nyomtat\u00e1si min\u0151s\u00e9get. Mindazon\u00e1ltal tov\u00e1bbra is tan\u00e1csos k\u00e9tszer is ellen\u0151rizni a javasolt param\u00e9tereket, \u00e9s haszn\u00e1lat el\u0151tt nyomtatni n\u00e9h\u00e1ny pr\u00f3banyomatot, hogy megbizonyosodj arr\u00f3l, hogy azok megfelel\u0151ek.","title":"Bemeneti form\u00e1z\u00f3 \u00fajrakalibr\u00e1l\u00e1sa"},{"location":"Measuring_Resonances.html#a-gyorsulasmero-adatainak-offline-feldolgozasa","text":"Lehet\u0151s\u00e9g van a nyers gyorsul\u00e1sm\u00e9r\u0151 adatok el\u0151\u00e1ll\u00edt\u00e1s\u00e1ra \u00e9s offline feldolgoz\u00e1s\u00e1ra (pl. egy k\u00f6zponti g\u00e9pen), p\u00e9ld\u00e1ul rezonanci\u00e1k keres\u00e9s\u00e9re. Ehhez futtassa a k\u00f6vetkez\u0151 parancsokat az Octoprint termin\u00e1lon kereszt\u00fcl: SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0 TEST_RESONANCES AXIS=X OUTPUT=raw_data a SET_INPUT_SHAPER parancs hib\u00e1inak figyelmen k\u00edv\u00fcl hagy\u00e1sa. A TEST_RESONANCES parancshoz add meg a k\u00edv\u00e1nt teszttengelyt. A nyers adatok az RPi /tmp k\u00f6nyvt\u00e1r\u00e1ba ker\u00fclnek ki\u00edr\u00e1sra. A nyers adatokat \u00fagy is megkaphatjuk, ha a ACCELEROMETER_MEASURE parancsot k\u00e9tszer futtatjuk valamilyen norm\u00e1l nyomtat\u00e1si tev\u00e9kenys\u00e9g k\u00f6zben - el\u0151sz\u00f6r a m\u00e9r\u00e9sek elind\u00edt\u00e1s\u00e1hoz, majd azok le\u00e1ll\u00edt\u00e1s\u00e1hoz \u00e9s a kimeneti f\u00e1jl \u00edr\u00e1s\u00e1hoz. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a G-k\u00f3dok c\u00edm\u0171 dokumentumot. Az adatokat k\u00e9s\u0151bb a k\u00f6vetkez\u0151 szkriptekkel lehet feldolgozni: scripts/graph_accelerometer.py \u00e9s scripts/calibrate_shaper.py . Mindkett\u0151 egy vagy t\u00f6bb nyers csv-f\u00e1jlt fogad el bemenetk\u00e9nt a m\u00f3dt\u00f3l f\u00fcgg\u0151en. A graph_accelerometer.py szkript t\u00f6bbf\u00e9le \u00fczemm\u00f3dot t\u00e1mogat: nyers gyorsul\u00e1sm\u00e9r\u0151 adatok \u00e1br\u00e1zol\u00e1sa (haszn\u00e1ld a -r param\u00e9tert), csak 1 bemenet t\u00e1mogatott; frekvenciav\u00e1lasz \u00e1br\u00e1zol\u00e1sa (nincs sz\u00fcks\u00e9g tov\u00e1bbi param\u00e9terekre), ha t\u00f6bb bemenet van megadva, az \u00e1tlagos frekvenciav\u00e1lasz ker\u00fcl kisz\u00e1m\u00edt\u00e1sra; t\u00f6bb bemenet frekvenciav\u00e1lasz\u00e1nak \u00f6sszehasonl\u00edt\u00e1sa (haszn\u00e1ld a -c param\u00e9tert); a -a x , -a y vagy -a z param\u00e9terrel ezen fel\u00fcl megadhatod, hogy melyik gyorsul\u00e1sm\u00e9r\u0151 tengelyt vegye figyelembe (ha nincs megadva, az \u00f6sszes tengely rezg\u00e9seinek \u00f6sszeg\u00e9t haszn\u00e1lja); a spektrogram \u00e1br\u00e1zol\u00e1sa (haszn\u00e1ld a -s param\u00e9tert), csak 1 bemenet t\u00e1mogatott; a -a x , -a y vagy -a z param\u00e9terrel ezen fel\u00fcl megadhatod, hogy melyik gyorsul\u00e1sm\u00e9r\u0151 tengelyt vegye figyelembe (ha nincs megadva, akkor az \u00f6sszes tengely rezg\u00e9seinek \u00f6sszeg\u00e9t haszn\u00e1lja). Vedd figyelembe, hogy a graph_accelerometer.py szkript csak a raw_data*.csv f\u00e1jlokat t\u00e1mogatja, a resonances*.csv vagy calibration_data*.csv f\u00e1jlokat nem. P\u00e9ld\u00e1ul, ~/klipper/scripts/graph_accelerometer.py /tmp/raw_data_x_*.csv -o /tmp/resonances_x.png -c -a z t\u00f6bb /tmp/raw_data_x_*.csv f\u00e1jl \u00e9s /tmp/resonances_x.png f\u00e1jl \u00f6sszehasonl\u00edt\u00e1s\u00e1t \u00e1br\u00e1zolja a Z tengelyen. A shaper_calibrate.py szkript 1 vagy t\u00f6bb bemenetet fogad el, \u00e9s k\u00e9pes a bemeneti form\u00e1z\u00f3 automatikus hangol\u00e1s\u00e1ra, valamint a legjobb param\u00e9terek kiv\u00e1laszt\u00e1s\u00e1ra, amelyek j\u00f3l m\u0171k\u00f6dnek az \u00f6sszes megadott bemeneten. A javasolt param\u00e9tereket ki\u00edrja a konzolra, \u00e9s emellett k\u00e9pes l\u00e9trehozni a grafikont, ha -o output.png param\u00e9tert adunk meg, vagy a CSV f\u00e1jlt, ha -c output.csv param\u00e9tert adunk meg. T\u00f6bb bemenet megad\u00e1sa a shaper_calibrate.py szkriptnek hasznos lehet, ha p\u00e9ld\u00e1ul a bemeneti form\u00e1z\u00f3k halad\u00f3 hangol\u00e1s\u00e1t v\u00e9gezz\u00fck: A TEST_RESONANCES AXIS=X OUTPUT=raw_data (\u00e9s Y tengely) futtat\u00e1sa egy tengelyre k\u00e9tszer egy Y t\u00e1rgyasztalos nyomtat\u00f3n \u00fagy, hogy a gyorsul\u00e1sm\u00e9r\u0151 el\u0151sz\u00f6r a nyomtat\u00f3fejhez, m\u00e1sodszor pedig a t\u00e1rgyasztalhoz csatlakozik, hogy a tengelyek keresztrezonanci\u00e1it felismerj\u00fck, \u00e9s megpr\u00f3b\u00e1ljuk azokat a bemeneti alak\u00edt\u00f3kkal megsz\u00fcntetni. A TEST_RESONANCES AXIS=Y OUTPUT=raw_data k\u00e9tszeri futtat\u00e1sa egy \u00fcveg t\u00e1rgyasztalos \u00e9s egy m\u00e1gneses fel\u00fclet\u0171 (amelyik k\u00f6nnyebb) t\u00e1rgyasztalon, hogy megtal\u00e1ljuk azokat a bemeneti alak\u00edt\u00f3 param\u00e9tereket, amelyek j\u00f3l m\u0171k\u00f6dnek b\u00e1rmilyen nyomtat\u00e1si fel\u00fcletkonfigur\u00e1ci\u00f3 eset\u00e9n. A t\u00f6bb vizsg\u00e1lati pontb\u00f3l sz\u00e1rmaz\u00f3 rezonanciaadatok kombin\u00e1l\u00e1sa. A 2 tengely rezonanciaadatainak kombin\u00e1l\u00e1sa (pl. egy Y tengelyen l\u00e9v\u0151 t\u00e1rgyasztalos nyomtat\u00f3n\u00e1l az X-tengely input_shaper konfigur\u00e1l\u00e1sa mind az X-, mind az Y-tengely rezonanci\u00e1ib\u00f3l, hogy a t\u00e1rgyasztal rezg\u00e9seit megsz\u00fcntesse, ha a f\u00fav\u00f3ka 'elkap' egy nyomtat\u00e1st, amikor X tengely ir\u00e1ny\u00e1ban mozog).","title":"A gyorsul\u00e1sm\u00e9r\u0151 adatainak offline feldolgoz\u00e1sa"},{"location":"Multi_MCU_Homing.html","text":"T\u00f6bb mikrovez\u00e9l\u0151s kezd\u0151pont \u00e9s szond\u00e1z\u00e1s \u00b6 A Klipper t\u00e1mogatja a kezd\u0151pont mechanizmus\u00e1t egy v\u00e9g\u00e1ll\u00e1ssal, amely egy mikrokontrollerhez van csatlakoztatva, m\u00edg a l\u00e9ptet\u0151motorok egy m\u00e1sik mikrokontrollerhez vannak csatlakoztatva. Ezt a t\u00e1mogat\u00e1st nevezik \"multi-mcu homing\" -nak. Ez a funkci\u00f3 akkor is haszn\u00e1latos, ha a Z-\u00e9rz\u00e9kel\u0151 m\u00e1s mikrokontrollerre van k\u00f6tve, mint a Z l\u00e9ptet\u0151motorok. Ez a funkci\u00f3 hasznos lehet a vezet\u00e9kez\u00e9s egyszer\u0171s\u00edt\u00e9se \u00e9rdek\u00e9ben, mivel k\u00e9nyelmesebb lehet egy v\u00e9g\u00e1ll\u00e1skapcsol\u00f3t vagy szond\u00e1t egy k\u00f6zelebbi mikrokontrollerhez csatlakoztatni. Ennek a funkci\u00f3nak a haszn\u00e1lata azonban a l\u00e9ptet\u0151motorok \"t\u00fallend\u00fcl\u00e9s\u00e9t\" eredm\u00e9nyezheti a kezd\u0151pontfelv\u00e9teli \u00e9s m\u00e9r\u00e9si m\u0171veletek sor\u00e1n. A t\u00fallend\u00fcl\u00e9s a v\u00e9g\u00e1ll\u00e1st figyel\u0151 mikrovez\u00e9rl\u0151 \u00e9s a l\u00e9ptet\u0151motorokat mozgat\u00f3 mikrovez\u00e9rl\u0151k k\u00f6z\u00f6tti esetleges \u00fczenet\u00e1tviteli k\u00e9s\u00e9sek miatt k\u00f6vetkezik be. A Klipper k\u00f3dot \u00fagy tervezt\u00e9k, hogy ezt a k\u00e9sleltet\u00e9st legfeljebb 25 ms-ra korl\u00e1tozza. (Ha a multi-mcu homing aktiv\u00e1lva van, a mikrovez\u00e9rl\u0151k id\u0151szakos \u00e1llapot\u00fczeneteket k\u00fcldenek, \u00e9s ellen\u0151rzik, hogy a megfelel\u0151 \u00e1llapot\u00fczenetek 25 ms-on bel\u00fcl \u00e9rkeznek-e meg.) \u00cdgy p\u00e9ld\u00e1ul, ha 10 mm/sec sebess\u00e9ggel t\u00f6rt\u00e9nik a kezd\u0151pont felv\u00e9tele, akkor ak\u00e1r 0,250 mm-es t\u00fallend\u00fcl\u00e9s is lehets\u00e9ges (10 mm/sec * .025mp == 0,250 mm). A multi-mcu homing konfigur\u00e1l\u00e1sakor gondosan kell elj\u00e1rni, hogy az ilyen t\u00edpus\u00fa t\u00fallend\u00fcl\u00e9sn\u00e9l figyelembe vegy\u00fck. Lassabb kezd\u0151pont felv\u00e9tel vagy tapint\u00e1si sebess\u00e9gek haszn\u00e1lata cs\u00f6kkentheti a t\u00fallend\u00fcl\u00e9st. A l\u00e9ptet\u0151motor t\u00fallend\u00fcl\u00e9se nem befoly\u00e1solhatja h\u00e1tr\u00e1nyosan az alaphelyzetbe \u00e1ll\u00edt\u00e1si \u00e9s tapint\u00e1si elj\u00e1r\u00e1s pontoss\u00e1g\u00e1t. A Klipper k\u00f3d \u00e9szleli a t\u00fallend\u00fcl\u00e9st, \u00e9s sz\u00e1m\u00edt\u00e1sai sor\u00e1n figyelembe veszi azt. Fontos azonban, hogy a hardvertervez\u00e9s k\u00e9pes legyen kezelni a t\u00fallend\u00fcl\u00e9st an\u00e9lk\u00fcl, hogy a g\u00e9pben k\u00e1rt okozna. Ha a Klipper kommunik\u00e1ci\u00f3s probl\u00e9m\u00e1t \u00e9szlel a mikrovez\u00e9rl\u0151k k\u00f6z\u00f6tt a multi-mcu homing sor\u00e1n, akkor egy \"Kommunik\u00e1ci\u00f3s id\u0151kies\u00e9s a kezd\u0151pont felv\u00e9tel sor\u00e1n\" hib\u00e1t jelez. Vedd figyelembe, hogy a t\u00f6bb l\u00e9ptet\u0151vel rendelkez\u0151 tengelyeknek (pl. stepper_z \u00e9s stepper_z1 ) ugyanazon a mikrokontrolleren kell lenni\u00fck a multi-mcu homing haszn\u00e1lat\u00e1hoz. P\u00e9ld\u00e1ul, ha egy v\u00e9g\u00e1ll\u00e1s a stepper_z mikrokontrollert\u0151l k\u00fcl\u00f6n mikrokontrolleren van, akkor a stepper_z1 -nek ugyanazon a mikrokontrolleren kell lennie, mint a stepper_z .","title":"T\u00f6bb mikrovez\u00e9l\u0151s kezd\u0151pont \u00e9s szond\u00e1z\u00e1s"},{"location":"Multi_MCU_Homing.html#tobb-mikrovezelos-kezdopont-es-szondazas","text":"A Klipper t\u00e1mogatja a kezd\u0151pont mechanizmus\u00e1t egy v\u00e9g\u00e1ll\u00e1ssal, amely egy mikrokontrollerhez van csatlakoztatva, m\u00edg a l\u00e9ptet\u0151motorok egy m\u00e1sik mikrokontrollerhez vannak csatlakoztatva. Ezt a t\u00e1mogat\u00e1st nevezik \"multi-mcu homing\" -nak. Ez a funkci\u00f3 akkor is haszn\u00e1latos, ha a Z-\u00e9rz\u00e9kel\u0151 m\u00e1s mikrokontrollerre van k\u00f6tve, mint a Z l\u00e9ptet\u0151motorok. Ez a funkci\u00f3 hasznos lehet a vezet\u00e9kez\u00e9s egyszer\u0171s\u00edt\u00e9se \u00e9rdek\u00e9ben, mivel k\u00e9nyelmesebb lehet egy v\u00e9g\u00e1ll\u00e1skapcsol\u00f3t vagy szond\u00e1t egy k\u00f6zelebbi mikrokontrollerhez csatlakoztatni. Ennek a funkci\u00f3nak a haszn\u00e1lata azonban a l\u00e9ptet\u0151motorok \"t\u00fallend\u00fcl\u00e9s\u00e9t\" eredm\u00e9nyezheti a kezd\u0151pontfelv\u00e9teli \u00e9s m\u00e9r\u00e9si m\u0171veletek sor\u00e1n. A t\u00fallend\u00fcl\u00e9s a v\u00e9g\u00e1ll\u00e1st figyel\u0151 mikrovez\u00e9rl\u0151 \u00e9s a l\u00e9ptet\u0151motorokat mozgat\u00f3 mikrovez\u00e9rl\u0151k k\u00f6z\u00f6tti esetleges \u00fczenet\u00e1tviteli k\u00e9s\u00e9sek miatt k\u00f6vetkezik be. A Klipper k\u00f3dot \u00fagy tervezt\u00e9k, hogy ezt a k\u00e9sleltet\u00e9st legfeljebb 25 ms-ra korl\u00e1tozza. (Ha a multi-mcu homing aktiv\u00e1lva van, a mikrovez\u00e9rl\u0151k id\u0151szakos \u00e1llapot\u00fczeneteket k\u00fcldenek, \u00e9s ellen\u0151rzik, hogy a megfelel\u0151 \u00e1llapot\u00fczenetek 25 ms-on bel\u00fcl \u00e9rkeznek-e meg.) \u00cdgy p\u00e9ld\u00e1ul, ha 10 mm/sec sebess\u00e9ggel t\u00f6rt\u00e9nik a kezd\u0151pont felv\u00e9tele, akkor ak\u00e1r 0,250 mm-es t\u00fallend\u00fcl\u00e9s is lehets\u00e9ges (10 mm/sec * .025mp == 0,250 mm). A multi-mcu homing konfigur\u00e1l\u00e1sakor gondosan kell elj\u00e1rni, hogy az ilyen t\u00edpus\u00fa t\u00fallend\u00fcl\u00e9sn\u00e9l figyelembe vegy\u00fck. Lassabb kezd\u0151pont felv\u00e9tel vagy tapint\u00e1si sebess\u00e9gek haszn\u00e1lata cs\u00f6kkentheti a t\u00fallend\u00fcl\u00e9st. A l\u00e9ptet\u0151motor t\u00fallend\u00fcl\u00e9se nem befoly\u00e1solhatja h\u00e1tr\u00e1nyosan az alaphelyzetbe \u00e1ll\u00edt\u00e1si \u00e9s tapint\u00e1si elj\u00e1r\u00e1s pontoss\u00e1g\u00e1t. A Klipper k\u00f3d \u00e9szleli a t\u00fallend\u00fcl\u00e9st, \u00e9s sz\u00e1m\u00edt\u00e1sai sor\u00e1n figyelembe veszi azt. Fontos azonban, hogy a hardvertervez\u00e9s k\u00e9pes legyen kezelni a t\u00fallend\u00fcl\u00e9st an\u00e9lk\u00fcl, hogy a g\u00e9pben k\u00e1rt okozna. Ha a Klipper kommunik\u00e1ci\u00f3s probl\u00e9m\u00e1t \u00e9szlel a mikrovez\u00e9rl\u0151k k\u00f6z\u00f6tt a multi-mcu homing sor\u00e1n, akkor egy \"Kommunik\u00e1ci\u00f3s id\u0151kies\u00e9s a kezd\u0151pont felv\u00e9tel sor\u00e1n\" hib\u00e1t jelez. Vedd figyelembe, hogy a t\u00f6bb l\u00e9ptet\u0151vel rendelkez\u0151 tengelyeknek (pl. stepper_z \u00e9s stepper_z1 ) ugyanazon a mikrokontrolleren kell lenni\u00fck a multi-mcu homing haszn\u00e1lat\u00e1hoz. P\u00e9ld\u00e1ul, ha egy v\u00e9g\u00e1ll\u00e1s a stepper_z mikrokontrollert\u0151l k\u00fcl\u00f6n mikrokontrolleren van, akkor a stepper_z1 -nek ugyanazon a mikrokontrolleren kell lennie, mint a stepper_z .","title":"T\u00f6bb mikrovez\u00e9l\u0151s kezd\u0151pont \u00e9s szond\u00e1z\u00e1s"},{"location":"Navigation.html","text":"Klipper dokument\u00e1ci\u00f3 Telep\u00edt\u00e9s \u00e9s Konfigur\u00e1ci\u00f3 Konfigur\u00e1ci\u00f3s Hivatkoz\u00e1s T\u00e1rgyasztal szint Rezonancia Kompenz\u00e1ci\u00f3 Parancssablonok Fejleszt\u0151i Dokument\u00e1ci\u00f3 Eszk\u00f6zspecifikus Dokumentumok","title":"Navigation"},{"location":"Overview.html","text":"\u00c1ttekint\u00e9s \u00b6 \u00dcdv\u00f6zl\u00fcnk a Klipper dokument\u00e1ci\u00f3j\u00e1ban. Ha m\u00e9g nem ismered a Klippert, kezd a funkci\u00f3k \u00e9s telep\u00edt\u00e9s dokumentumokkal. \u00c1ttekint\u0151 inform\u00e1ci\u00f3k \u00b6 Funkci\u00f3k : A Klipper funkci\u00f3inak magas szint\u0171 list\u00e1ja. GYIK : Gyakran ism\u00e9telt k\u00e9rd\u00e9sek. Kiad\u00e1sok : Klipper kiad\u00e1sok t\u00f6rt\u00e9nete. Konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00e1sok : A leg\u00fajabb szoftverv\u00e1ltoz\u00e1sok, amelyek miatt a felhaszn\u00e1l\u00f3knak friss\u00edteni\u00fck kell a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1t. Kapcsolat : Inform\u00e1ci\u00f3k a hibajelent\u00e9sekr\u0151l \u00e9s a Klipper fejleszt\u0151ivel val\u00f3 \u00e1ltal\u00e1nos kommunik\u00e1ci\u00f3r\u00f3l. Telep\u00edt\u00e9s \u00e9s Konfigur\u00e1ci\u00f3 \u00b6 Telep\u00edt\u00e9s : Klipper telep\u00edt\u00e9si \u00fatmutat\u00f3. Konfigur\u00e1ci\u00f3s hivatkoz\u00e1s : A konfigur\u00e1ci\u00f3s param\u00e9terek le\u00edr\u00e1sa. Forgat\u00e1si t\u00e1vols\u00e1g : A rotation_distance l\u00e9ptet\u0151 param\u00e9ter kisz\u00e1m\u00edt\u00e1sa. Konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9sek : Alapvet\u0151 t\u0171be\u00e1ll\u00edt\u00e1sok ellen\u0151rz\u00e9se a konfigur\u00e1ci\u00f3s f\u00e1jlban. T\u00e1rgyasztal szintez\u00e9se : Inform\u00e1ci\u00f3 az \"t\u00e1rgyasztal szintez\u00e9s\u00e9r\u0151l\" a Klipperben. Delta kalibr\u00e1l\u00e1s : A delta kinematika kalibr\u00e1l\u00e1sa. Szonda kalibr\u00e1l\u00e1sa : Automatikus Z-szond\u00e1k kalibr\u00e1l\u00e1sa. BL-Touch : \"BL-Touch\" Z szonda konfigur\u00e1l\u00e1sa. K\u00e9zi szintez\u00e9s : Z v\u00e9g\u00e1ll\u00e1sok kalibr\u00e1l\u00e1sa (\u00e9s hasonl\u00f3k). T\u00e1rgyasztal h\u00e1l\u00f3 : X-Y-helyeken alapul\u00f3 t\u00e1rgyasztal szintkorrekci\u00f3. V\u00e9g\u00e1ll\u00e1s f\u00e1zis : Z v\u00e9g\u00e1ll\u00e1s poz\u00edcion\u00e1l\u00e1sa l\u00e9p\u00e9sseg\u00e9dlettel. Rezonancia kompenz\u00e1ci\u00f3 : Egy eszk\u00f6z a nyomatok gy\u0171r\u0151d\u00e9s\u00e9nek (ringing) cs\u00f6kkent\u00e9s\u00e9re. Rezonanci\u00e1k m\u00e9r\u00e9se : adxl345 gyorsul\u00e1sm\u00e9r\u0151 hardver haszn\u00e1lat\u00e1val kapcsolatos inform\u00e1ci\u00f3k a rezonancia m\u00e9r\u00e9s\u00e9hez. Nyom\u00e1s el\u0151tol\u00e1s : Az extruder nyom\u00e1s\u00e1nak kalibr\u00e1l\u00e1sa. G-k\u00f3dok : Inform\u00e1ci\u00f3k a Klipper \u00e1ltal t\u00e1mogatott parancsokr\u00f3l. Parancssablonok : G-k\u00f3d makr\u00f3k \u00e9s felt\u00e9teles ki\u00e9rt\u00e9kel\u00e9s. \u00c1llapot referencia : A makr\u00f3k (\u00e9s hasonl\u00f3k) sz\u00e1m\u00e1ra el\u00e9rhet\u0151 inform\u00e1ci\u00f3k. TMC Meghajt\u00f3k : Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3k haszn\u00e1lata Klipperrel. Multi-MCU Kezd\u0151pont : Kezd\u0151pont felv\u00e9tel \u00e9s szintez\u00e9s t\u00f6bb mikrovez\u00e9rl\u0151 haszn\u00e1lat\u00e1val. Szeletel\u0151k : A \u201eszeletel\u0151\u201d szoftverek konfigur\u00e1l\u00e1sa a Klipper sz\u00e1m\u00e1ra. Ferdes\u00e9g korrekci\u00f3 : A nem t\u00f6k\u00e9letesen der\u00e9ksz\u00f6g\u0171 tengelyek korrekci\u00f3ja. PWM eszk\u00f6z\u00f6k : \u00datmutat\u00f3 a PWM vez\u00e9relt szersz\u00e1mok, p\u00e9ld\u00e1ul l\u00e9zerek vagy ors\u00f3k haszn\u00e1lat\u00e1hoz. Objektum kiz\u00e1r\u00e1sa : Az Objektum kiz\u00e1r\u00e1sa implement\u00e1ci\u00f3j\u00e1nak \u00fatmutat\u00f3ja. Fejleszt\u0151i Dokument\u00e1ci\u00f3 \u00b6 K\u00f3d\u00e1ttekint\u00e9s : A fejleszt\u0151knek el\u0151sz\u00f6r ezt kell elolvasniuk. Kinematika : Technikai r\u00e9szletek arr\u00f3l, hogyan val\u00f3s\u00edtja meg a Klipper a mozg\u00e1st. Protokoll : A gazdag\u00e9p \u00e9s a mikrokontroller k\u00f6z\u00f6tti alacsony szint\u0171 \u00fczenetk\u00fcld\u00e9si protokollr\u00f3l sz\u00f3l\u00f3 inform\u00e1ci\u00f3k. API-kiszolg\u00e1l\u00f3 : Inform\u00e1ci\u00f3 a Klipper parancs \u00e9s vez\u00e9rl\u0151 API-j\u00e1r\u00f3l. MCU-parancsok : A mikrokontroller szoftver\u00e9ben megval\u00f3s\u00edtott alacsony szint\u0171 parancsok le\u00edr\u00e1sa. CAN-busz protokoll : Klipper CAN-busz \u00fczenetform\u00e1tum. Hibakeres\u00e9s : Klipper tesztel\u00e9s\u00e9vel \u00e9s hibakeres\u00e9s\u00e9vel kapcsolatos inform\u00e1ci\u00f3k. Jelszintek : Klipper jelszint m\u00f3dszerrel kapcsolatos inform\u00e1ci\u00f3k. Hozz\u00e1j\u00e1rul\u00e1s : Inform\u00e1ci\u00f3 arr\u00f3l, hogyan k\u00fcldhetsz fejleszt\u00e9seket a Klipperhez. Csomagol\u00e1s : Az oper\u00e1ci\u00f3s rendszer csomagjainak \u00f6ssze\u00e1ll\u00edt\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k. Eszk\u00f6zspecifikus Dokumentumok \u00b6 P\u00e9lda konfigur\u00e1ci\u00f3k : Inform\u00e1ci\u00f3 egy p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jl Klipperhez val\u00f3 hozz\u00e1ad\u00e1s\u00e1val kapcsolatban. SD-k\u00e1rtya Friss\u00edt\u00e9sek : Mikrokontroller \u00e9get\u00e9se egy bin\u00e1ris \u00e1llom\u00e1nynak a mikrokontroller SD-k\u00e1rty\u00e1ra t\u00f6rt\u00e9n\u0151 m\u00e1sol\u00e1s\u00e1val. Raspberry Pi mint mikrokontroller : A Raspberry Pi GPIO-t\u0171ire csatlakoztatott eszk\u00f6z\u00f6k vez\u00e9rl\u00e9s\u00e9nek r\u00e9szletei. Beaglebone : Klipper futtat\u00e1s\u00e1nak r\u00e9szletei a Beaglebone PRU-n. Bootloaderek : Fejleszt\u0151i inform\u00e1ci\u00f3k a mikrokontrollerek \u00e9get\u00e9s\u00e9r\u0151l. CAN-busz : Inform\u00e1ci\u00f3k a CAN-busz Klipperrel val\u00f3 haszn\u00e1lat\u00e1r\u00f3l. TSL1401CL sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 Hall sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151","title":"\u00c1ttekint\u00e9s"},{"location":"Overview.html#attekintes","text":"\u00dcdv\u00f6zl\u00fcnk a Klipper dokument\u00e1ci\u00f3j\u00e1ban. Ha m\u00e9g nem ismered a Klippert, kezd a funkci\u00f3k \u00e9s telep\u00edt\u00e9s dokumentumokkal.","title":"\u00c1ttekint\u00e9s"},{"location":"Overview.html#attekinto-informaciok","text":"Funkci\u00f3k : A Klipper funkci\u00f3inak magas szint\u0171 list\u00e1ja. GYIK : Gyakran ism\u00e9telt k\u00e9rd\u00e9sek. Kiad\u00e1sok : Klipper kiad\u00e1sok t\u00f6rt\u00e9nete. Konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00e1sok : A leg\u00fajabb szoftverv\u00e1ltoz\u00e1sok, amelyek miatt a felhaszn\u00e1l\u00f3knak friss\u00edteni\u00fck kell a nyomtat\u00f3 konfigur\u00e1ci\u00f3s f\u00e1jlj\u00e1t. Kapcsolat : Inform\u00e1ci\u00f3k a hibajelent\u00e9sekr\u0151l \u00e9s a Klipper fejleszt\u0151ivel val\u00f3 \u00e1ltal\u00e1nos kommunik\u00e1ci\u00f3r\u00f3l.","title":"\u00c1ttekint\u0151 inform\u00e1ci\u00f3k"},{"location":"Overview.html#telepites-es-konfiguracio","text":"Telep\u00edt\u00e9s : Klipper telep\u00edt\u00e9si \u00fatmutat\u00f3. Konfigur\u00e1ci\u00f3s hivatkoz\u00e1s : A konfigur\u00e1ci\u00f3s param\u00e9terek le\u00edr\u00e1sa. Forgat\u00e1si t\u00e1vols\u00e1g : A rotation_distance l\u00e9ptet\u0151 param\u00e9ter kisz\u00e1m\u00edt\u00e1sa. Konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9sek : Alapvet\u0151 t\u0171be\u00e1ll\u00edt\u00e1sok ellen\u0151rz\u00e9se a konfigur\u00e1ci\u00f3s f\u00e1jlban. T\u00e1rgyasztal szintez\u00e9se : Inform\u00e1ci\u00f3 az \"t\u00e1rgyasztal szintez\u00e9s\u00e9r\u0151l\" a Klipperben. Delta kalibr\u00e1l\u00e1s : A delta kinematika kalibr\u00e1l\u00e1sa. Szonda kalibr\u00e1l\u00e1sa : Automatikus Z-szond\u00e1k kalibr\u00e1l\u00e1sa. BL-Touch : \"BL-Touch\" Z szonda konfigur\u00e1l\u00e1sa. K\u00e9zi szintez\u00e9s : Z v\u00e9g\u00e1ll\u00e1sok kalibr\u00e1l\u00e1sa (\u00e9s hasonl\u00f3k). T\u00e1rgyasztal h\u00e1l\u00f3 : X-Y-helyeken alapul\u00f3 t\u00e1rgyasztal szintkorrekci\u00f3. V\u00e9g\u00e1ll\u00e1s f\u00e1zis : Z v\u00e9g\u00e1ll\u00e1s poz\u00edcion\u00e1l\u00e1sa l\u00e9p\u00e9sseg\u00e9dlettel. Rezonancia kompenz\u00e1ci\u00f3 : Egy eszk\u00f6z a nyomatok gy\u0171r\u0151d\u00e9s\u00e9nek (ringing) cs\u00f6kkent\u00e9s\u00e9re. Rezonanci\u00e1k m\u00e9r\u00e9se : adxl345 gyorsul\u00e1sm\u00e9r\u0151 hardver haszn\u00e1lat\u00e1val kapcsolatos inform\u00e1ci\u00f3k a rezonancia m\u00e9r\u00e9s\u00e9hez. Nyom\u00e1s el\u0151tol\u00e1s : Az extruder nyom\u00e1s\u00e1nak kalibr\u00e1l\u00e1sa. G-k\u00f3dok : Inform\u00e1ci\u00f3k a Klipper \u00e1ltal t\u00e1mogatott parancsokr\u00f3l. Parancssablonok : G-k\u00f3d makr\u00f3k \u00e9s felt\u00e9teles ki\u00e9rt\u00e9kel\u00e9s. \u00c1llapot referencia : A makr\u00f3k (\u00e9s hasonl\u00f3k) sz\u00e1m\u00e1ra el\u00e9rhet\u0151 inform\u00e1ci\u00f3k. TMC Meghajt\u00f3k : Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3k haszn\u00e1lata Klipperrel. Multi-MCU Kezd\u0151pont : Kezd\u0151pont felv\u00e9tel \u00e9s szintez\u00e9s t\u00f6bb mikrovez\u00e9rl\u0151 haszn\u00e1lat\u00e1val. Szeletel\u0151k : A \u201eszeletel\u0151\u201d szoftverek konfigur\u00e1l\u00e1sa a Klipper sz\u00e1m\u00e1ra. Ferdes\u00e9g korrekci\u00f3 : A nem t\u00f6k\u00e9letesen der\u00e9ksz\u00f6g\u0171 tengelyek korrekci\u00f3ja. PWM eszk\u00f6z\u00f6k : \u00datmutat\u00f3 a PWM vez\u00e9relt szersz\u00e1mok, p\u00e9ld\u00e1ul l\u00e9zerek vagy ors\u00f3k haszn\u00e1lat\u00e1hoz. Objektum kiz\u00e1r\u00e1sa : Az Objektum kiz\u00e1r\u00e1sa implement\u00e1ci\u00f3j\u00e1nak \u00fatmutat\u00f3ja.","title":"Telep\u00edt\u00e9s \u00e9s Konfigur\u00e1ci\u00f3"},{"location":"Overview.html#fejlesztoi-dokumentacio","text":"K\u00f3d\u00e1ttekint\u00e9s : A fejleszt\u0151knek el\u0151sz\u00f6r ezt kell elolvasniuk. Kinematika : Technikai r\u00e9szletek arr\u00f3l, hogyan val\u00f3s\u00edtja meg a Klipper a mozg\u00e1st. Protokoll : A gazdag\u00e9p \u00e9s a mikrokontroller k\u00f6z\u00f6tti alacsony szint\u0171 \u00fczenetk\u00fcld\u00e9si protokollr\u00f3l sz\u00f3l\u00f3 inform\u00e1ci\u00f3k. API-kiszolg\u00e1l\u00f3 : Inform\u00e1ci\u00f3 a Klipper parancs \u00e9s vez\u00e9rl\u0151 API-j\u00e1r\u00f3l. MCU-parancsok : A mikrokontroller szoftver\u00e9ben megval\u00f3s\u00edtott alacsony szint\u0171 parancsok le\u00edr\u00e1sa. CAN-busz protokoll : Klipper CAN-busz \u00fczenetform\u00e1tum. Hibakeres\u00e9s : Klipper tesztel\u00e9s\u00e9vel \u00e9s hibakeres\u00e9s\u00e9vel kapcsolatos inform\u00e1ci\u00f3k. Jelszintek : Klipper jelszint m\u00f3dszerrel kapcsolatos inform\u00e1ci\u00f3k. Hozz\u00e1j\u00e1rul\u00e1s : Inform\u00e1ci\u00f3 arr\u00f3l, hogyan k\u00fcldhetsz fejleszt\u00e9seket a Klipperhez. Csomagol\u00e1s : Az oper\u00e1ci\u00f3s rendszer csomagjainak \u00f6ssze\u00e1ll\u00edt\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3k.","title":"Fejleszt\u0151i Dokument\u00e1ci\u00f3"},{"location":"Overview.html#eszkozspecifikus-dokumentumok","text":"P\u00e9lda konfigur\u00e1ci\u00f3k : Inform\u00e1ci\u00f3 egy p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jl Klipperhez val\u00f3 hozz\u00e1ad\u00e1s\u00e1val kapcsolatban. SD-k\u00e1rtya Friss\u00edt\u00e9sek : Mikrokontroller \u00e9get\u00e9se egy bin\u00e1ris \u00e1llom\u00e1nynak a mikrokontroller SD-k\u00e1rty\u00e1ra t\u00f6rt\u00e9n\u0151 m\u00e1sol\u00e1s\u00e1val. Raspberry Pi mint mikrokontroller : A Raspberry Pi GPIO-t\u0171ire csatlakoztatott eszk\u00f6z\u00f6k vez\u00e9rl\u00e9s\u00e9nek r\u00e9szletei. Beaglebone : Klipper futtat\u00e1s\u00e1nak r\u00e9szletei a Beaglebone PRU-n. Bootloaderek : Fejleszt\u0151i inform\u00e1ci\u00f3k a mikrokontrollerek \u00e9get\u00e9s\u00e9r\u0151l. CAN-busz : Inform\u00e1ci\u00f3k a CAN-busz Klipperrel val\u00f3 haszn\u00e1lat\u00e1r\u00f3l. TSL1401CL sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 Hall sz\u00e1lsz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151","title":"Eszk\u00f6zspecifikus Dokumentumok"},{"location":"Packaging.html","text":"Klipper csomagol\u00e1s \u00b6 A Klipper egyfajta csomagol\u00e1si anom\u00e1lia a python programok k\u00f6z\u00f6tt, mivel nem haszn\u00e1lja a setuptools-t a szerkeszt\u00e9shez \u00e9s a telep\u00edt\u00e9shez. N\u00e9h\u00e1ny megjegyz\u00e9s arra vonatkoz\u00f3an, hogy hogyan lehet a legjobban csomagolni, a k\u00f6vetkez\u0151: C modulok \u00b6 A Klipper egy C modult haszn\u00e1l n\u00e9h\u00e1ny kinematikai sz\u00e1m\u00edt\u00e1s gyorsabb elv\u00e9gz\u00e9s\u00e9re. Ezt a modult a csomagol\u00e1si id\u0151ben kell leford\u00edtani, hogy elker\u00fclj\u00fck a ford\u00edt\u00f3programt\u00f3l val\u00f3 fut\u00e1sidej\u0171 f\u00fcgg\u0151s\u00e9get. A C modul leford\u00edt\u00e1s\u00e1hoz futtassuk a python2 klippy/chelper/__init__.py f\u00e1jlt. Python-k\u00f3d \u00f6ssze\u00e1ll\u00edt\u00e1sa \u00b6 Sok disztrib\u00faci\u00f3nak van egy olyan ir\u00e1nyelve, hogy az ind\u00edt\u00e1si id\u0151 jav\u00edt\u00e1sa \u00e9rdek\u00e9ben minden python k\u00f3dot leford\u00edt a csomagol\u00e1s el\u0151tt. Ezt a python2 -m compileall klippy futtat\u00e1s\u00e1val \u00e9rheted el. Verzi\u00f3kezel\u00e9s \u00b6 Ha a Klipper csomagot git-b\u0151l \u00e9p\u00edted, a szok\u00e1sos gyakorlat szerint nem sz\u00e1ll\u00edtasz .git k\u00f6nyvt\u00e1rat, \u00edgy a verzi\u00f3kezel\u00e9st git n\u00e9lk\u00fcl kell megoldanod. Ehhez haszn\u00e1ld a scripts/make_version.py alatt sz\u00e1ll\u00edtott szkriptet, amelyet a k\u00f6vetkez\u0151k\u00e9ppen kell futtatni: python2 scripts/make_version.py YOURDISTRONAME > klippy/.version . Minta csomagol\u00e1si szkript \u00b6 a klipper-git az Arch Linuxhoz van csomagolva, \u00e9s a PKGBUILD (csomag\u00e9p\u00edt\u0151 szkript) el\u00e9rhet\u0151 az Arch Felhaszn\u00e1l\u00f3i adatt\u00e1r oldalon.","title":"Klipper csomagol\u00e1s"},{"location":"Packaging.html#klipper-csomagolas","text":"A Klipper egyfajta csomagol\u00e1si anom\u00e1lia a python programok k\u00f6z\u00f6tt, mivel nem haszn\u00e1lja a setuptools-t a szerkeszt\u00e9shez \u00e9s a telep\u00edt\u00e9shez. N\u00e9h\u00e1ny megjegyz\u00e9s arra vonatkoz\u00f3an, hogy hogyan lehet a legjobban csomagolni, a k\u00f6vetkez\u0151:","title":"Klipper csomagol\u00e1s"},{"location":"Packaging.html#c-modulok","text":"A Klipper egy C modult haszn\u00e1l n\u00e9h\u00e1ny kinematikai sz\u00e1m\u00edt\u00e1s gyorsabb elv\u00e9gz\u00e9s\u00e9re. Ezt a modult a csomagol\u00e1si id\u0151ben kell leford\u00edtani, hogy elker\u00fclj\u00fck a ford\u00edt\u00f3programt\u00f3l val\u00f3 fut\u00e1sidej\u0171 f\u00fcgg\u0151s\u00e9get. A C modul leford\u00edt\u00e1s\u00e1hoz futtassuk a python2 klippy/chelper/__init__.py f\u00e1jlt.","title":"C modulok"},{"location":"Packaging.html#python-kod-osszeallitasa","text":"Sok disztrib\u00faci\u00f3nak van egy olyan ir\u00e1nyelve, hogy az ind\u00edt\u00e1si id\u0151 jav\u00edt\u00e1sa \u00e9rdek\u00e9ben minden python k\u00f3dot leford\u00edt a csomagol\u00e1s el\u0151tt. Ezt a python2 -m compileall klippy futtat\u00e1s\u00e1val \u00e9rheted el.","title":"Python-k\u00f3d \u00f6ssze\u00e1ll\u00edt\u00e1sa"},{"location":"Packaging.html#verziokezeles","text":"Ha a Klipper csomagot git-b\u0151l \u00e9p\u00edted, a szok\u00e1sos gyakorlat szerint nem sz\u00e1ll\u00edtasz .git k\u00f6nyvt\u00e1rat, \u00edgy a verzi\u00f3kezel\u00e9st git n\u00e9lk\u00fcl kell megoldanod. Ehhez haszn\u00e1ld a scripts/make_version.py alatt sz\u00e1ll\u00edtott szkriptet, amelyet a k\u00f6vetkez\u0151k\u00e9ppen kell futtatni: python2 scripts/make_version.py YOURDISTRONAME > klippy/.version .","title":"Verzi\u00f3kezel\u00e9s"},{"location":"Packaging.html#minta-csomagolasi-szkript","text":"a klipper-git az Arch Linuxhoz van csomagolva, \u00e9s a PKGBUILD (csomag\u00e9p\u00edt\u0151 szkript) el\u00e9rhet\u0151 az Arch Felhaszn\u00e1l\u00f3i adatt\u00e1r oldalon.","title":"Minta csomagol\u00e1si szkript"},{"location":"Pressure_Advance.html","text":"Nyom\u00e1s el\u0151tol\u00e1s \u00b6 Ez a dokumentum a \"nyom\u00e1s el\u0151tol\u00e1s\" konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00f3 adott f\u00fav\u00f3k\u00e1hoz \u00e9s nyomtat\u00f3sz\u00e1lhoz val\u00f3 be\u00e1ll\u00edt\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3kat tartalmaz. A nyom\u00e1s el\u0151tol\u00e1s funkci\u00f3 hasznos lehet a sz\u00e1laz\u00e1s cs\u00f6kkent\u00e9s\u00e9ben. A nyom\u00e1s el\u0151tol\u00e1s megval\u00f3s\u00edt\u00e1s\u00e1r\u00f3l tov\u00e1bbi inform\u00e1ci\u00f3kat a kinematika dokumentumban tal\u00e1lsz. Nyom\u00e1s el\u0151tol\u00e1s hangol\u00e1sa \u00b6 A nyom\u00e1s el\u0151tol\u00e1s k\u00e9t hasznos dolgot tesz. Cs\u00f6kkenti a nem extrud\u00e1lt mozg\u00e1sok sor\u00e1n fell\u00e9p\u0151 sz\u00e1laz\u00e1st, \u00e9s cs\u00f6kkenti a kanyarod\u00e1s sor\u00e1n fell\u00e9p\u0151 puffad\u00e1st. Ez az \u00fatmutat\u00f3 a m\u00e1sodik funkci\u00f3t (kanyarod\u00e1s k\u00f6zbeni puffad\u00e1s cs\u00f6kkent\u00e9se) haszn\u00e1lja a hangol\u00e1s mechanizmusak\u00e9nt. A nyom\u00e1s el\u0151tol\u00e1s kalibr\u00e1l\u00e1s\u00e1hoz a nyomtat\u00f3nak konfigur\u00e1ltnak \u00e9s m\u0171k\u00f6d\u0151k\u00e9pesnek kell lennie, mivel a hangol\u00e1si teszt egy tesztobjektum nyomtat\u00e1s\u00e1val \u00e9s vizsg\u00e1lat\u00e1val j\u00e1r. A teszt lefuttat\u00e1sa el\u0151tt \u00e9rdemes ezt a dokumentumot teljes eg\u00e9sz\u00e9ben elolvasni. A docs/prints/square_tower.stl f\u00e1jlban tal\u00e1lhat\u00f3 nagy \u00fcreges n\u00e9gyzet G-k\u00f3dj\u00e1nak l\u00e9trehoz\u00e1s\u00e1hoz haszn\u00e1lj egy szeletel\u0151t. Haszn\u00e1lj nagy sebess\u00e9get (pl. 100 mm/s), nulla kit\u00f6lt\u00e9st \u00e9s durva r\u00e9tegmagass\u00e1got (a r\u00e9tegmagass\u00e1gnak a f\u00fav\u00f3ka \u00e1tm\u00e9r\u0151j\u00e9nek 75%-a k\u00f6r\u00fcl kell lennie). Gy\u0151z\u0151dj meg r\u00f3la, hogy a szeletel\u0151ben minden \"dinamikus gyors\u00edt\u00e1svez\u00e9rl\u00e9s\" ki van kapcsolva. K\u00e9sz\u00fclj fel a tesztre a k\u00f6vetkez\u0151 G-k\u00f3d parancs kiad\u00e1s\u00e1val: SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500 Ezzel a paranccsal a f\u00fav\u00f3ka lassabban halad \u00e1t a kanyarokon, hogy kiemelje az extrudernyom\u00e1s hat\u00e1s\u00e1t. Ezut\u00e1n a direkt extruderrel rendelkez\u0151 nyomtat\u00f3k eset\u00e9ben futtassa az al\u00e1bbi parancsot: TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.005 Hossz\u00fa bowdenes extruderekhez: TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.020 Ezut\u00e1n nyomtasd ki az objektumot. Teljesen kinyomtatva a tesztnyomat \u00edgy n\u00e9z ki: A fenti TUNING_TOWER parancs utas\u00edtja a Klippert, hogy a nyomtat\u00e1s minden egyes r\u00e9teg\u00e9n\u00e9l m\u00f3dos\u00edtsa a pressure_advance be\u00e1ll\u00edt\u00e1st. A nyomtat\u00e1s magasabb r\u00e9tegeire nagyobb nyom\u00e1sel\u0151tol\u00e1si \u00e9rt\u00e9k lesz be\u00e1ll\u00edtva. Az ide\u00e1lis pressure_advance be\u00e1ll\u00edt\u00e1s alatti r\u00e9tegekn\u00e9l a sarkokn\u00e1l pattog\u00e1s, az ide\u00e1lis be\u00e1ll\u00edt\u00e1s feletti r\u00e9tegekn\u00e9l pedig lekerek\u00edtett sarkok \u00e9s gyenge extrud\u00e1l\u00e1s alakulhat ki a sarokig. A nyomtat\u00e1st id\u0151 el\u0151tt megszak\u00edthatja, ha azt \u00e9szleli, hogy a sarkok m\u00e1r nem nyomtatnak j\u00f3l (\u00e9s \u00edgy elker\u00fclheti az olyan r\u00e9tegek nyomtat\u00e1s\u00e1t, amelyekr\u0151l ismert, hogy az ide\u00e1lis pressure_advance \u00e9rt\u00e9k felett vannak). Ellen\u0151rizd az objektumot, majd digit\u00e1lis tol\u00f3m\u00e9r\u0151vel m\u00e9rd meg azt a magass\u00e1got, amely a legjobb min\u0151s\u00e9g\u0171 sarkokkal rendelkezik. Ha k\u00e9ts\u00e9geid vannak, v\u00e1laszd az alacsonyabb magass\u00e1got. A pressure_advance \u00e9rt\u00e9ket ezut\u00e1n a k\u00f6vetkez\u0151k\u00e9ppen lehet kisz\u00e1m\u00edtani: pressure_advance = <start> + <measured_height> * <factor> . (P\u00e9ld\u00e1ul 0 + 12,90 * .020 lenne .258 .) Lehet\u0151s\u00e9g van a START \u00e9s a FACTOR egy\u00e9ni be\u00e1ll\u00edt\u00e1sainak kiv\u00e1laszt\u00e1s\u00e1ra, ha ez seg\u00edt a legjobb nyom\u00e1s el\u0151tol\u00e1s be\u00e1ll\u00edt\u00e1s meghat\u00e1roz\u00e1s\u00e1ban. Ennek sor\u00e1n \u00fcgyelj arra, hogy a TUNING_TOWER parancsot minden egyes pr\u00f3banyomtat\u00e1s elej\u00e9n ki kell adni. A tipikus nyom\u00e1s el\u0151tol\u00e1s \u00e9rt\u00e9kek 0,050 \u00e9s 1,000 k\u00f6z\u00f6tt vannak (a legmagasabb \u00e9rt\u00e9kek \u00e1ltal\u00e1ban csak a bowdenes extruderekn\u00e9l). Ha az 1,000-ig terjed\u0151 nyom\u00e1s el\u0151tol\u00e1ssal nem tapasztalhat\u00f3 jelent\u0151s javul\u00e1s, akkor a nyom\u00e1s el\u0151tol\u00e1s val\u00f3sz\u00edn\u0171leg nem jav\u00edtja a nyomatok min\u0151s\u00e9g\u00e9t. T\u00e9rj vissza az alap\u00e9rtelmezett konfigur\u00e1ci\u00f3hoz, ahol a nyom\u00e1s el\u0151tol\u00e1s ki van kapcsolva. B\u00e1r ez a hangol\u00e1si gyakorlat k\u00f6zvetlen\u00fcl jav\u00edtja a sarkok min\u0151s\u00e9g\u00e9t, \u00e9rdemes megjegyezni, hogy a j\u00f3 nyom\u00e1s el\u0151tol\u00e1si konfigur\u00e1ci\u00f3 cs\u00f6kkenti a nyomat teljes terjedelm\u00e9t. A teszt befejez\u00e9sekor \u00e1ll\u00edtsd be a pressure_advance = <calculated_value> \u00e9rt\u00e9ket a konfigur\u00e1ci\u00f3s f\u00e1jl [extruder] szakasz\u00e1ban, \u00e9s adj ki egy RESTART parancsot. A RESTART parancs t\u00f6rli a teszt\u00e1llapotot, \u00e9s vissza\u00e1ll\u00edtja a gyorsul\u00e1si \u00e9s kanyarod\u00e1si sebess\u00e9geket a norm\u00e1l \u00e9rt\u00e9kekre. Fontos megjegyz\u00e9sek \u00b6 A nyom\u00e1s el\u0151tol\u00e1s \u00e9rt\u00e9ke az extruder, a f\u00fav\u00f3ka \u00e9s a sz\u00e1l f\u00fcggv\u00e9nye. Gyakori, hogy a k\u00fcl\u00f6nb\u00f6z\u0151 gy\u00e1rt\u00f3kt\u00f3l sz\u00e1rmaz\u00f3 vagy k\u00fcl\u00f6nb\u00f6z\u0151 pigmenteket tartalmaz\u00f3 nyomtat\u00f3sz\u00e1lak jelent\u0151sen elt\u00e9r\u0151 nyom\u00e1s el\u0151tol\u00e1si \u00e9rt\u00e9keket ig\u00e9nyelnek. Ez\u00e9rt minden nyomtat\u00f3n\u00e1l \u00e9s minden egyes tekercs nyomtat\u00f3sz\u00e1ln\u00e1l kalibr\u00e1lni kell a nyom\u00e1s el\u0151tol\u00e1st. A nyomtat\u00e1si h\u0151m\u00e9rs\u00e9klet \u00e9s az extrud\u00e1l\u00e1si sebess\u00e9g befoly\u00e1solhatja a nyom\u00e1st. A nyom\u00e1s el\u0151tol\u00e1s be\u00e1ll\u00edt\u00e1sa el\u0151tt mindenk\u00e9ppen hangolja be az extruder rotation_distance \u00e9s a f\u00fav\u00f3ka h\u0151m\u00e9rs\u00e9klet \u00e9rt\u00e9keket. A tesztnyomtat\u00e1st \u00fagy tervezt\u00e9k, hogy nagy extruder-\u00e1raml\u00e1si sebess\u00e9ggel, de egy\u00e9bk\u00e9nt \"norm\u00e1l\" szeletel\u0151 be\u00e1ll\u00edt\u00e1sokkal fusson. A nagy \u00e1raml\u00e1si sebess\u00e9get nagy nyomtat\u00e1si sebess\u00e9g (pl. 100 mm/s) \u00e9s durva r\u00e9tegmagass\u00e1g (jellemz\u0151en a f\u00fav\u00f3ka \u00e1tm\u00e9r\u0151j\u00e9nek kb. 75%-a) alkalmaz\u00e1s\u00e1val \u00e9rj\u00fck el. A t\u00f6bbi szeletel\u0151be\u00e1ll\u00edt\u00e1snak hasonl\u00f3nak kell lennie az alap\u00e9rtelmezettekhez (pl. 2 vagy 3 soros ker\u00fclet, norm\u00e1l beh\u00faz\u00e1si mennyis\u00e9g). Hasznos lehet a k\u00fcls\u0151 ker\u00fclet sebess\u00e9g\u00e9t a nyomtat\u00e1s t\u00f6bbi r\u00e9sz\u00e9vel megegyez\u0151 sebess\u00e9gre \u00e1ll\u00edtani, de ez nem k\u00f6vetelm\u00e9ny. Gyakori, hogy a tesztnyomtat\u00e1s minden egyes sarkon elt\u00e9r\u0151 viselked\u00e9st mutat. Gyakran el\u0151fordul, hogy a szeletel\u0151 az egyik sarkon r\u00e9tegv\u00e1lt\u00e1st hajt v\u00e9gre, ami azt eredm\u00e9nyezheti, hogy az a sarok jelent\u0151sen elt\u00e9r a t\u00f6bbi h\u00e1rom sarokt\u00f3l. Ha ez el\u0151fordul, akkor hagyja figyelmen k\u00edv\u00fcl ezt a sarkot, \u00e9s a m\u00e1sik h\u00e1rom sarkot haszn\u00e1lva hangolja a nyom\u00e1s el\u0151tol\u00e1st. Az is gyakori, hogy a fennmarad\u00f3 sarkok kiss\u00e9 elt\u00e9rnek. (Ez az\u00e9rt fordulhat el\u0151, mert a nyomtat\u00f3 kerete kis elt\u00e9r\u00e9sekkel reag\u00e1l a bizonyos ir\u00e1nyokba t\u00f6rt\u00e9n\u0151 kanyarod\u00e1sra.) Pr\u00f3b\u00e1ljon meg olyan \u00e9rt\u00e9ket v\u00e1lasztani, amely az \u00f6sszes t\u00f6bbi sarokn\u00e1l j\u00f3l m\u0171k\u00f6dik. Ha k\u00e9ts\u00e9geid vannak, v\u00e1lasszon ink\u00e1bb egy alacsonyabb nyom\u00e1s el\u0151tol\u00e1si \u00e9rt\u00e9ket. Ha magas nyom\u00e1s el\u0151tol\u00e1si \u00e9rt\u00e9ket (pl. 0,200 f\u00f6l\u00f6tt) haszn\u00e1lunk, akkor el\u0151fordulhat, hogy az extruder kihagy, amikor visszat\u00e9r a nyomtat\u00f3 norm\u00e1l gyorsul\u00e1shoz. A nyom\u00e1s el\u0151tol\u00e1si rendszer \u00fagy veszi figyelembe a nyom\u00e1st, hogy gyors\u00edt\u00e1skor extra sz\u00e1lat tol, \u00e9s lass\u00edt\u00e1skor visszah\u00fazza ezt a sz\u00e1lat. Nagy gyors\u00edt\u00e1s \u00e9s nagy nyom\u00e1s el\u0151tol\u00e1s eset\u00e9n el\u0151fordulhat, hogy az extruder nem rendelkezik elegend\u0151 nyomat\u00e9kkal a sz\u00fcks\u00e9ges sz\u00e1lak kinyom\u00e1s\u00e1hoz. Ha ez bek\u00f6vetkezik, vagy haszn\u00e1lj alacsonyabb gyors\u00edt\u00e1si \u00e9rt\u00e9ket, vagy tiltsa le a nyom\u00e1s el\u0151tol\u00e1si funkci\u00f3t. Miut\u00e1n a Klipperben be\u00e1ll\u00edtottuk a nyom\u00e1s el\u0151tol\u00e1st, hasznos lehet kisebb visszah\u00faz\u00e1si \u00e9rt\u00e9ket be\u00e1ll\u00edtani a szeletel\u0151ben (pl. 0,75 mm), \u00e9s haszn\u00e1lni a szeletel\u0151 \"wipe on retract\" opci\u00f3t, ha rendelkez\u00e9sre \u00e1ll. Ezek a szeletel\u0151 be\u00e1ll\u00edt\u00e1sok seg\u00edthetnek a sz\u00e1lak koh\u00e9zi\u00f3ja (a m\u0171anyag ragad\u00f3s volta miatt a f\u00fav\u00f3k\u00e1b\u00f3l kih\u00fazott sz\u00e1lak) okozta foly\u00e1sa ellen. Aj\u00e1nlott a szeletel\u0151 \"z-lift on retract\" opci\u00f3 kikapcsol\u00e1sa. A nyom\u00e1s el\u0151tol\u00e1si rendszer nem v\u00e1ltoztatja meg a nymtat\u00f3fej id\u0151z\u00edt\u00e9s\u00e9t vagy \u00fatj\u00e1t. A nyom\u00e1s el\u0151tol\u00e1ssal bekapcsolt \u00e1llapotban ugyanannyi id\u0151t vesz ig\u00e9nybe, mint a nyom\u00e1s el\u0151tol\u00e1s n\u00e9lk\u00fcli nyomtat\u00e1s. A nyom\u00e1s el\u0151tol\u00e1s nem v\u00e1ltoztatja meg a nyomtat\u00e1s sor\u00e1n extrud\u00e1lt sz\u00e1l teljes mennyis\u00e9g\u00e9t sem. A nyom\u00e1s el\u0151tol\u00e1s extra extrudermozg\u00e1st eredm\u00e9nyez a mozg\u00e1s gyors\u00edt\u00e1sa \u00e9s lass\u00edt\u00e1sa sor\u00e1n. Egy nagyon magas nyom\u00e1s el\u0151tol\u00e1si be\u00e1ll\u00edt\u00e1s nagyon nagy extrudermozg\u00e1st eredm\u00e9nyez a gyors\u00edt\u00e1s \u00e9s lass\u00edt\u00e1s sor\u00e1n, \u00e9s semmilyen konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1s nem szab hat\u00e1rt ennek a mozg\u00e1snak.","title":"Nyom\u00e1s el\u0151tol\u00e1s"},{"location":"Pressure_Advance.html#nyomas-elotolas","text":"Ez a dokumentum a \"nyom\u00e1s el\u0151tol\u00e1s\" konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00f3 adott f\u00fav\u00f3k\u00e1hoz \u00e9s nyomtat\u00f3sz\u00e1lhoz val\u00f3 be\u00e1ll\u00edt\u00e1s\u00e1val kapcsolatos inform\u00e1ci\u00f3kat tartalmaz. A nyom\u00e1s el\u0151tol\u00e1s funkci\u00f3 hasznos lehet a sz\u00e1laz\u00e1s cs\u00f6kkent\u00e9s\u00e9ben. A nyom\u00e1s el\u0151tol\u00e1s megval\u00f3s\u00edt\u00e1s\u00e1r\u00f3l tov\u00e1bbi inform\u00e1ci\u00f3kat a kinematika dokumentumban tal\u00e1lsz.","title":"Nyom\u00e1s el\u0151tol\u00e1s"},{"location":"Pressure_Advance.html#nyomas-elotolas-hangolasa","text":"A nyom\u00e1s el\u0151tol\u00e1s k\u00e9t hasznos dolgot tesz. Cs\u00f6kkenti a nem extrud\u00e1lt mozg\u00e1sok sor\u00e1n fell\u00e9p\u0151 sz\u00e1laz\u00e1st, \u00e9s cs\u00f6kkenti a kanyarod\u00e1s sor\u00e1n fell\u00e9p\u0151 puffad\u00e1st. Ez az \u00fatmutat\u00f3 a m\u00e1sodik funkci\u00f3t (kanyarod\u00e1s k\u00f6zbeni puffad\u00e1s cs\u00f6kkent\u00e9se) haszn\u00e1lja a hangol\u00e1s mechanizmusak\u00e9nt. A nyom\u00e1s el\u0151tol\u00e1s kalibr\u00e1l\u00e1s\u00e1hoz a nyomtat\u00f3nak konfigur\u00e1ltnak \u00e9s m\u0171k\u00f6d\u0151k\u00e9pesnek kell lennie, mivel a hangol\u00e1si teszt egy tesztobjektum nyomtat\u00e1s\u00e1val \u00e9s vizsg\u00e1lat\u00e1val j\u00e1r. A teszt lefuttat\u00e1sa el\u0151tt \u00e9rdemes ezt a dokumentumot teljes eg\u00e9sz\u00e9ben elolvasni. A docs/prints/square_tower.stl f\u00e1jlban tal\u00e1lhat\u00f3 nagy \u00fcreges n\u00e9gyzet G-k\u00f3dj\u00e1nak l\u00e9trehoz\u00e1s\u00e1hoz haszn\u00e1lj egy szeletel\u0151t. Haszn\u00e1lj nagy sebess\u00e9get (pl. 100 mm/s), nulla kit\u00f6lt\u00e9st \u00e9s durva r\u00e9tegmagass\u00e1got (a r\u00e9tegmagass\u00e1gnak a f\u00fav\u00f3ka \u00e1tm\u00e9r\u0151j\u00e9nek 75%-a k\u00f6r\u00fcl kell lennie). Gy\u0151z\u0151dj meg r\u00f3la, hogy a szeletel\u0151ben minden \"dinamikus gyors\u00edt\u00e1svez\u00e9rl\u00e9s\" ki van kapcsolva. K\u00e9sz\u00fclj fel a tesztre a k\u00f6vetkez\u0151 G-k\u00f3d parancs kiad\u00e1s\u00e1val: SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500 Ezzel a paranccsal a f\u00fav\u00f3ka lassabban halad \u00e1t a kanyarokon, hogy kiemelje az extrudernyom\u00e1s hat\u00e1s\u00e1t. Ezut\u00e1n a direkt extruderrel rendelkez\u0151 nyomtat\u00f3k eset\u00e9ben futtassa az al\u00e1bbi parancsot: TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.005 Hossz\u00fa bowdenes extruderekhez: TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.020 Ezut\u00e1n nyomtasd ki az objektumot. Teljesen kinyomtatva a tesztnyomat \u00edgy n\u00e9z ki: A fenti TUNING_TOWER parancs utas\u00edtja a Klippert, hogy a nyomtat\u00e1s minden egyes r\u00e9teg\u00e9n\u00e9l m\u00f3dos\u00edtsa a pressure_advance be\u00e1ll\u00edt\u00e1st. A nyomtat\u00e1s magasabb r\u00e9tegeire nagyobb nyom\u00e1sel\u0151tol\u00e1si \u00e9rt\u00e9k lesz be\u00e1ll\u00edtva. Az ide\u00e1lis pressure_advance be\u00e1ll\u00edt\u00e1s alatti r\u00e9tegekn\u00e9l a sarkokn\u00e1l pattog\u00e1s, az ide\u00e1lis be\u00e1ll\u00edt\u00e1s feletti r\u00e9tegekn\u00e9l pedig lekerek\u00edtett sarkok \u00e9s gyenge extrud\u00e1l\u00e1s alakulhat ki a sarokig. A nyomtat\u00e1st id\u0151 el\u0151tt megszak\u00edthatja, ha azt \u00e9szleli, hogy a sarkok m\u00e1r nem nyomtatnak j\u00f3l (\u00e9s \u00edgy elker\u00fclheti az olyan r\u00e9tegek nyomtat\u00e1s\u00e1t, amelyekr\u0151l ismert, hogy az ide\u00e1lis pressure_advance \u00e9rt\u00e9k felett vannak). Ellen\u0151rizd az objektumot, majd digit\u00e1lis tol\u00f3m\u00e9r\u0151vel m\u00e9rd meg azt a magass\u00e1got, amely a legjobb min\u0151s\u00e9g\u0171 sarkokkal rendelkezik. Ha k\u00e9ts\u00e9geid vannak, v\u00e1laszd az alacsonyabb magass\u00e1got. A pressure_advance \u00e9rt\u00e9ket ezut\u00e1n a k\u00f6vetkez\u0151k\u00e9ppen lehet kisz\u00e1m\u00edtani: pressure_advance = <start> + <measured_height> * <factor> . (P\u00e9ld\u00e1ul 0 + 12,90 * .020 lenne .258 .) Lehet\u0151s\u00e9g van a START \u00e9s a FACTOR egy\u00e9ni be\u00e1ll\u00edt\u00e1sainak kiv\u00e1laszt\u00e1s\u00e1ra, ha ez seg\u00edt a legjobb nyom\u00e1s el\u0151tol\u00e1s be\u00e1ll\u00edt\u00e1s meghat\u00e1roz\u00e1s\u00e1ban. Ennek sor\u00e1n \u00fcgyelj arra, hogy a TUNING_TOWER parancsot minden egyes pr\u00f3banyomtat\u00e1s elej\u00e9n ki kell adni. A tipikus nyom\u00e1s el\u0151tol\u00e1s \u00e9rt\u00e9kek 0,050 \u00e9s 1,000 k\u00f6z\u00f6tt vannak (a legmagasabb \u00e9rt\u00e9kek \u00e1ltal\u00e1ban csak a bowdenes extruderekn\u00e9l). Ha az 1,000-ig terjed\u0151 nyom\u00e1s el\u0151tol\u00e1ssal nem tapasztalhat\u00f3 jelent\u0151s javul\u00e1s, akkor a nyom\u00e1s el\u0151tol\u00e1s val\u00f3sz\u00edn\u0171leg nem jav\u00edtja a nyomatok min\u0151s\u00e9g\u00e9t. T\u00e9rj vissza az alap\u00e9rtelmezett konfigur\u00e1ci\u00f3hoz, ahol a nyom\u00e1s el\u0151tol\u00e1s ki van kapcsolva. B\u00e1r ez a hangol\u00e1si gyakorlat k\u00f6zvetlen\u00fcl jav\u00edtja a sarkok min\u0151s\u00e9g\u00e9t, \u00e9rdemes megjegyezni, hogy a j\u00f3 nyom\u00e1s el\u0151tol\u00e1si konfigur\u00e1ci\u00f3 cs\u00f6kkenti a nyomat teljes terjedelm\u00e9t. A teszt befejez\u00e9sekor \u00e1ll\u00edtsd be a pressure_advance = <calculated_value> \u00e9rt\u00e9ket a konfigur\u00e1ci\u00f3s f\u00e1jl [extruder] szakasz\u00e1ban, \u00e9s adj ki egy RESTART parancsot. A RESTART parancs t\u00f6rli a teszt\u00e1llapotot, \u00e9s vissza\u00e1ll\u00edtja a gyorsul\u00e1si \u00e9s kanyarod\u00e1si sebess\u00e9geket a norm\u00e1l \u00e9rt\u00e9kekre.","title":"Nyom\u00e1s el\u0151tol\u00e1s hangol\u00e1sa"},{"location":"Pressure_Advance.html#fontos-megjegyzesek","text":"A nyom\u00e1s el\u0151tol\u00e1s \u00e9rt\u00e9ke az extruder, a f\u00fav\u00f3ka \u00e9s a sz\u00e1l f\u00fcggv\u00e9nye. Gyakori, hogy a k\u00fcl\u00f6nb\u00f6z\u0151 gy\u00e1rt\u00f3kt\u00f3l sz\u00e1rmaz\u00f3 vagy k\u00fcl\u00f6nb\u00f6z\u0151 pigmenteket tartalmaz\u00f3 nyomtat\u00f3sz\u00e1lak jelent\u0151sen elt\u00e9r\u0151 nyom\u00e1s el\u0151tol\u00e1si \u00e9rt\u00e9keket ig\u00e9nyelnek. Ez\u00e9rt minden nyomtat\u00f3n\u00e1l \u00e9s minden egyes tekercs nyomtat\u00f3sz\u00e1ln\u00e1l kalibr\u00e1lni kell a nyom\u00e1s el\u0151tol\u00e1st. A nyomtat\u00e1si h\u0151m\u00e9rs\u00e9klet \u00e9s az extrud\u00e1l\u00e1si sebess\u00e9g befoly\u00e1solhatja a nyom\u00e1st. A nyom\u00e1s el\u0151tol\u00e1s be\u00e1ll\u00edt\u00e1sa el\u0151tt mindenk\u00e9ppen hangolja be az extruder rotation_distance \u00e9s a f\u00fav\u00f3ka h\u0151m\u00e9rs\u00e9klet \u00e9rt\u00e9keket. A tesztnyomtat\u00e1st \u00fagy tervezt\u00e9k, hogy nagy extruder-\u00e1raml\u00e1si sebess\u00e9ggel, de egy\u00e9bk\u00e9nt \"norm\u00e1l\" szeletel\u0151 be\u00e1ll\u00edt\u00e1sokkal fusson. A nagy \u00e1raml\u00e1si sebess\u00e9get nagy nyomtat\u00e1si sebess\u00e9g (pl. 100 mm/s) \u00e9s durva r\u00e9tegmagass\u00e1g (jellemz\u0151en a f\u00fav\u00f3ka \u00e1tm\u00e9r\u0151j\u00e9nek kb. 75%-a) alkalmaz\u00e1s\u00e1val \u00e9rj\u00fck el. A t\u00f6bbi szeletel\u0151be\u00e1ll\u00edt\u00e1snak hasonl\u00f3nak kell lennie az alap\u00e9rtelmezettekhez (pl. 2 vagy 3 soros ker\u00fclet, norm\u00e1l beh\u00faz\u00e1si mennyis\u00e9g). Hasznos lehet a k\u00fcls\u0151 ker\u00fclet sebess\u00e9g\u00e9t a nyomtat\u00e1s t\u00f6bbi r\u00e9sz\u00e9vel megegyez\u0151 sebess\u00e9gre \u00e1ll\u00edtani, de ez nem k\u00f6vetelm\u00e9ny. Gyakori, hogy a tesztnyomtat\u00e1s minden egyes sarkon elt\u00e9r\u0151 viselked\u00e9st mutat. Gyakran el\u0151fordul, hogy a szeletel\u0151 az egyik sarkon r\u00e9tegv\u00e1lt\u00e1st hajt v\u00e9gre, ami azt eredm\u00e9nyezheti, hogy az a sarok jelent\u0151sen elt\u00e9r a t\u00f6bbi h\u00e1rom sarokt\u00f3l. Ha ez el\u0151fordul, akkor hagyja figyelmen k\u00edv\u00fcl ezt a sarkot, \u00e9s a m\u00e1sik h\u00e1rom sarkot haszn\u00e1lva hangolja a nyom\u00e1s el\u0151tol\u00e1st. Az is gyakori, hogy a fennmarad\u00f3 sarkok kiss\u00e9 elt\u00e9rnek. (Ez az\u00e9rt fordulhat el\u0151, mert a nyomtat\u00f3 kerete kis elt\u00e9r\u00e9sekkel reag\u00e1l a bizonyos ir\u00e1nyokba t\u00f6rt\u00e9n\u0151 kanyarod\u00e1sra.) Pr\u00f3b\u00e1ljon meg olyan \u00e9rt\u00e9ket v\u00e1lasztani, amely az \u00f6sszes t\u00f6bbi sarokn\u00e1l j\u00f3l m\u0171k\u00f6dik. Ha k\u00e9ts\u00e9geid vannak, v\u00e1lasszon ink\u00e1bb egy alacsonyabb nyom\u00e1s el\u0151tol\u00e1si \u00e9rt\u00e9ket. Ha magas nyom\u00e1s el\u0151tol\u00e1si \u00e9rt\u00e9ket (pl. 0,200 f\u00f6l\u00f6tt) haszn\u00e1lunk, akkor el\u0151fordulhat, hogy az extruder kihagy, amikor visszat\u00e9r a nyomtat\u00f3 norm\u00e1l gyorsul\u00e1shoz. A nyom\u00e1s el\u0151tol\u00e1si rendszer \u00fagy veszi figyelembe a nyom\u00e1st, hogy gyors\u00edt\u00e1skor extra sz\u00e1lat tol, \u00e9s lass\u00edt\u00e1skor visszah\u00fazza ezt a sz\u00e1lat. Nagy gyors\u00edt\u00e1s \u00e9s nagy nyom\u00e1s el\u0151tol\u00e1s eset\u00e9n el\u0151fordulhat, hogy az extruder nem rendelkezik elegend\u0151 nyomat\u00e9kkal a sz\u00fcks\u00e9ges sz\u00e1lak kinyom\u00e1s\u00e1hoz. Ha ez bek\u00f6vetkezik, vagy haszn\u00e1lj alacsonyabb gyors\u00edt\u00e1si \u00e9rt\u00e9ket, vagy tiltsa le a nyom\u00e1s el\u0151tol\u00e1si funkci\u00f3t. Miut\u00e1n a Klipperben be\u00e1ll\u00edtottuk a nyom\u00e1s el\u0151tol\u00e1st, hasznos lehet kisebb visszah\u00faz\u00e1si \u00e9rt\u00e9ket be\u00e1ll\u00edtani a szeletel\u0151ben (pl. 0,75 mm), \u00e9s haszn\u00e1lni a szeletel\u0151 \"wipe on retract\" opci\u00f3t, ha rendelkez\u00e9sre \u00e1ll. Ezek a szeletel\u0151 be\u00e1ll\u00edt\u00e1sok seg\u00edthetnek a sz\u00e1lak koh\u00e9zi\u00f3ja (a m\u0171anyag ragad\u00f3s volta miatt a f\u00fav\u00f3k\u00e1b\u00f3l kih\u00fazott sz\u00e1lak) okozta foly\u00e1sa ellen. Aj\u00e1nlott a szeletel\u0151 \"z-lift on retract\" opci\u00f3 kikapcsol\u00e1sa. A nyom\u00e1s el\u0151tol\u00e1si rendszer nem v\u00e1ltoztatja meg a nymtat\u00f3fej id\u0151z\u00edt\u00e9s\u00e9t vagy \u00fatj\u00e1t. A nyom\u00e1s el\u0151tol\u00e1ssal bekapcsolt \u00e1llapotban ugyanannyi id\u0151t vesz ig\u00e9nybe, mint a nyom\u00e1s el\u0151tol\u00e1s n\u00e9lk\u00fcli nyomtat\u00e1s. A nyom\u00e1s el\u0151tol\u00e1s nem v\u00e1ltoztatja meg a nyomtat\u00e1s sor\u00e1n extrud\u00e1lt sz\u00e1l teljes mennyis\u00e9g\u00e9t sem. A nyom\u00e1s el\u0151tol\u00e1s extra extrudermozg\u00e1st eredm\u00e9nyez a mozg\u00e1s gyors\u00edt\u00e1sa \u00e9s lass\u00edt\u00e1sa sor\u00e1n. Egy nagyon magas nyom\u00e1s el\u0151tol\u00e1si be\u00e1ll\u00edt\u00e1s nagyon nagy extrudermozg\u00e1st eredm\u00e9nyez a gyors\u00edt\u00e1s \u00e9s lass\u00edt\u00e1s sor\u00e1n, \u00e9s semmilyen konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1s nem szab hat\u00e1rt ennek a mozg\u00e1snak.","title":"Fontos megjegyz\u00e9sek"},{"location":"Probe_Calibrate.html","text":"Szonda kalibr\u00e1l\u00e1sa \u00b6 Ez a dokumentum a Klipperben tal\u00e1lhat\u00f3 \"automatikus z szonda\" X, Y \u00e9s Z eltol\u00e1s\u00e1nak kalibr\u00e1l\u00e1si m\u00f3dszer\u00e9t \u00edrja le. Ez azon felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra hasznos, akiknek van egy [probe] vagy [bltouch] szakasz a konfigur\u00e1ci\u00f3s f\u00e1jljukban. A szonda X \u00e9s Y eltol\u00e1s\u00e1nak kalibr\u00e1l\u00e1sa \u00b6 Az X \u00e9s Y eltol\u00e1s kalibr\u00e1l\u00e1s\u00e1hoz navig\u00e1lj az OctoPrint \"Control\" f\u00fclre, \u00e1ll\u00edtsd be a nyomtat\u00f3t, majd az OctoPrint l\u00e9ptet\u0151 gombjaival mozgasd a fejet a t\u00e1rgyasztal k\u00f6zep\u00e9hez k\u00f6zeli poz\u00edci\u00f3ba. Helyezz egy darab k\u00e9k fest\u0151szalagot (vagy hasonl\u00f3t) a t\u00e1rgyasztalra a szonda al\u00e1. Navig\u00e1lj az OctoPrint \"Terminal\" f\u00fclre, \u00e9s adj ki egy PROBE parancsot: PROBE Tegy\u00e9l egy jelet a szalagra k\u00f6zvetlen\u00fcl a szonda alatt (vagy hasonl\u00f3 m\u00f3dszerrel jel\u00f6ld fel a helyet a t\u00e1rgyasztalon). Adj ki egy GET_POSITION parancsot, \u00e9s r\u00f6gz\u00edtsd a parancs \u00e1ltal jelentett nyomtat\u00f3fej X-Y poz\u00edci\u00f3j\u00e1t. P\u00e9ld\u00e1ul, ha a k\u00f6vetkez\u0151ket l\u00e1tjuk: Recv: // toolhead: X:46.500000 Y:27.000000 Z:15.000000 E:0.000000 akkor a szonda X poz\u00edci\u00f3ja 46,5 \u00e9s Y poz\u00edci\u00f3ja 27. A szonda poz\u00edci\u00f3j\u00e1nak r\u00f6gz\u00edt\u00e9se ut\u00e1n adj ki egy sor G1 parancsot, am\u00edg a f\u00fav\u00f3ka k\u00f6zvetlen\u00fcl a t\u00e1rgyasztalon l\u00e9v\u0151 jel\u00f6l\u00e9s f\u00f6l\u00e9 nem ker\u00fcl. P\u00e9ld\u00e1ul a k\u00f6vetkez\u0151ket: G1 F300 X57 Y30 Z15 a f\u00fav\u00f3ka 57-es X-poz\u00edci\u00f3ba \u00e9s 30-as Y-poz\u00edci\u00f3ba t\u00f6rt\u00e9n\u0151 mozgat\u00e1s\u00e1hoz. Ha megtal\u00e1ltuk a k\u00f6zvetlen\u00fcl a jel\u00f6l\u00e9s feletti poz\u00edci\u00f3t, a GET_POSITION paranccsal jelenthetj\u00fck ezt a poz\u00edci\u00f3t. Ez a f\u00fav\u00f3ka poz\u00edci\u00f3ja. Az x_offset ekkor a nozzle_x_position - probe_x_position \u00e9s az y_offset hasonl\u00f3an a nozzle_y_position - probe_y_position . Friss\u00edtse a printer.cfg f\u00e1jlt a megadott \u00e9rt\u00e9kekkel, t\u00e1vol\u00edtsa el a szalagot/jeleket a t\u00e1rgyasztalr\u00f3l, majd adj ki egy RESTART parancsot, hogy az \u00faj \u00e9rt\u00e9kek hat\u00e1lyba l\u00e9pjenek. A szonda Z eltol\u00e1s kalibr\u00e1l\u00e1sa \u00b6 A pontos z_offset be\u00e1ll\u00edt\u00e1sa kritikus fontos a j\u00f3 min\u0151s\u00e9g\u0171 nyomatok el\u0151\u00e1ll\u00edt\u00e1s\u00e1hoz. A z_offset a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tti t\u00e1vols\u00e1g, amikor a szonda m\u0171k\u00f6d\u00e9sbe l\u00e9p. A Klipper PROBE_CALIBRATE eszk\u00f6z haszn\u00e1lhat\u00f3 ennek az \u00e9rt\u00e9knek a meghat\u00e1roz\u00e1s\u00e1ra - ez egy automatikus szond\u00e1t futtat a szonda Z kiold\u00e1si poz\u00edci\u00f3j\u00e1nak m\u00e9r\u00e9s\u00e9re, majd egy k\u00e9zi szond\u00e1t ind\u00edt a f\u00fav\u00f3ka Z magass\u00e1g\u00e1nak meghat\u00e1roz\u00e1s\u00e1ra. A szonda z_offset \u00e9rt\u00e9k\u00e9t ezut\u00e1n ezekb\u0151l a m\u00e9r\u00e9sekb\u0151l sz\u00e1m\u00edtja ki. Kezd a nyomtat\u00f3 alaphelyzetbe \u00e1ll\u00edt\u00e1s\u00e1val, majd mozgasd a fejet a t\u00e1rgyasztal k\u00f6zep\u00e9hez k\u00f6zeli poz\u00edci\u00f3ba. Navig\u00e1lj az OctoPrint termin\u00e1l f\u00fclre, \u00e9s futtassa a PROBE_CALIBRATE parancsot az eszk\u00f6z ind\u00edt\u00e1s\u00e1hoz. Ez az eszk\u00f6z automatikus m\u00e9r\u00e9st hajt v\u00e9gre, majd felemeli a fejet, mozgatja a f\u00fav\u00f3k\u00e1t a m\u00e9r\u0151pont helye f\u00f6l\u00e9, \u00e9s elind\u00edtja a k\u00e9zi m\u00e9r\u00e9st. Ha a f\u00fav\u00f3ka nem mozdul el az automatikus m\u00e9r\u0151pont feletti poz\u00edci\u00f3ba, akkor ABORT a k\u00e9zi m\u00e9r\u0151eszk\u00f6zzel, hajtsd v\u00e9gre a fent le\u00edrt X-Y szondaeltol\u00e1s kalibr\u00e1l\u00e1s\u00e1t. Miut\u00e1n a k\u00e9zi m\u00e9r\u0151 eszk\u00f6z elindult, k\u00f6vesse a \"a pap\u00edrteszt\" ] pontban le\u00edrt l\u00e9p\u00e9seket a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tti t\u00e9nyleges t\u00e1vols\u00e1g meghat\u00e1roz\u00e1s\u00e1hoz az adott helyen. Ha ezek a l\u00e9p\u00e9sek befejez\u0151dtek, akkor ACCEPT a poz\u00edci\u00f3 \u00e9s elmentheti az eredm\u00e9nyeket a config f\u00e1jlba a k\u00f6vetkez\u0151vel: SAVE_CONFIG Vedd figyelembe, hogy ha a nyomtat\u00f3 mozg\u00e1srendszer\u00e9t, a nyomtat\u00f3fej poz\u00edci\u00f3j\u00e1t vagy a szonda hely\u00e9t megv\u00e1ltoztatja, az \u00e9rv\u00e9nytelen\u00edti a PROBE_CALIBRATE eredm\u00e9nyeit. Ha a szonda X vagy Y eltol\u00e1ssal rendelkezik, \u00e9s a t\u00e1rgyasztal d\u0151l\u00e9se megv\u00e1ltozik (pl. szintez\u0151csavarok be\u00e1ll\u00edt\u00e1s\u00e1val, DELTA_CALIBRATE futtat\u00e1s\u00e1val, Z_TILT_ADJUST futtat\u00e1s\u00e1val, QUAD_GANTRY_LEVEL futtat\u00e1s\u00e1val vagy hasonl\u00f3val), akkor ez \u00e9rv\u00e9nytelen\u00edti a PROBE_CALIBRATE eredm\u00e9nyeit. A fenti be\u00e1ll\u00edt\u00e1sok b\u00e1rmelyik\u00e9nek m\u00f3dos\u00edt\u00e1sa ut\u00e1n \u00fajra kell kezdeni a PROBE_CALIBRATE futtat\u00e1s\u00e1t. Ha a PROBE_CALIBRATE eredm\u00e9nyei \u00e9rv\u00e9nytelenek, akkor a szond\u00e1val kapott kor\u00e1bbi t\u00e1rgyasztal h\u00e1l\u00f3 eredm\u00e9nyek is \u00e9rv\u00e9nytelenek. A szonda \u00fajrakalibr\u00e1l\u00e1sa ut\u00e1n \u00fajra kell futtatni a BED_MESH_CALIBRATE programot. Ism\u00e9telt m\u00e9r\u00e9si teszt \u00b6 A szonda X, Y \u00e9s Z eltol\u00e1s\u00e1nak kalibr\u00e1l\u00e1sa ut\u00e1n \u00e9rdemes ellen\u0151rizni, hogy a szonda megism\u00e9telhet\u0151 m\u00e9r\u00e9si eredm\u00e9nyeket szolg\u00e1ltat-e. Kezd a nyomtat\u00f3 alaphelyzetbe \u00e1ll\u00edt\u00e1s\u00e1val, majd mozgasd a fejet a t\u00e1rgyasztal k\u00f6zep\u00e9hez k\u00f6zeli poz\u00edci\u00f3ba. Navig\u00e1lj az OctoPrint termin\u00e1l f\u00fclre, \u00e9s futtassa a PROBE_ACCURACY parancsot. Ez a parancs t\u00edzszer futtatja le a m\u00e9r\u00e9st, \u00e9s az al\u00e1bbiakhoz hasonl\u00f3 kimenetet ad: Recv: // probe accuracy: at X:0.000 Y:0.000 Z:10.000 Recv: // and read 10 times with speed of 5 mm/s Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe accuracy results: maximum 2.519448, minimum 2.506948, range 0.012500, average 2.513198, median 2.513198, standard deviation 0.006250 Ide\u00e1lis esetben az eszk\u00f6z azonos maxim\u00e1lis \u00e9s minim\u00e1lis \u00e9rt\u00e9ket mutat. (Vagyis ide\u00e1lis esetben a szonda mind a t\u00edz m\u00e9r\u00e9sen azonos eredm\u00e9nyt ad.) Azonban norm\u00e1lis, hogy a minim\u00e1lis \u00e9s maxim\u00e1lis \u00e9rt\u00e9kek egy Z \"l\u00e9p\u00e9sk\u00f6z\" vagy ak\u00e1r 5 mikron (.005 mm) elt\u00e9r\u00e9ssel k\u00fcl\u00f6nb\u00f6znek. A \"l\u00e9p\u00e9sk\u00f6z\" rotation_distance/(full_steps_per_rotation*microsteps) . A minim\u00e1lis \u00e9s a maxim\u00e1lis \u00e9rt\u00e9k k\u00f6z\u00f6tti t\u00e1vols\u00e1got nevezz\u00fck tartom\u00e1nynak. Teh\u00e1t a fenti p\u00e9ld\u00e1ban, mivel a nyomtat\u00f3 0,0125 Z-l\u00e9p\u00e9st\u00e1vols\u00e1got haszn\u00e1l, a 0,01252500 tartom\u00e1nyt tekintj\u00fck norm\u00e1lisnak. Ha a teszt eredm\u00e9nye 25 mikronn\u00e1l (0,025 mm-n\u00e9l) nagyobb tartom\u00e1ny\u00e9rt\u00e9ket mutat, akkor a szonda nem el\u00e9g pontos a tipikus szintez\u00e9si elj\u00e1r\u00e1sokhoz. Lehets\u00e9ges a szonda sebess\u00e9g\u00e9nek \u00e9s/vagy indul\u00e1si magass\u00e1g\u00e1nak hangol\u00e1sa a m\u00e9r\u00e9s ism\u00e9telhet\u0151s\u00e9g\u00e9nek jav\u00edt\u00e1sa \u00e9rdek\u00e9ben. A PROBE_ACCURACY parancs lehet\u0151v\u00e9 teszi a tesztek futtat\u00e1s\u00e1t k\u00fcl\u00f6nb\u00f6z\u0151 param\u00e9terekkel, hogy l\u00e1ssa a hat\u00e1sukat. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a G-k\u00f3dok dokumentumot . Ha a szonda \u00e1ltal\u00e1ban egyforma eredm\u00e9nyeket ad, de id\u0151nk\u00e9nt el\u0151fordulnak kiugr\u00f3 \u00e9rt\u00e9kek, akkor ezt \u00fagy lehet kik\u00fcsz\u00f6b\u00f6lni, hogy minden egyes m\u00e9r\u0151ponton t\u00f6bb m\u00e9r\u00e9st hajtunk v\u00e9gre. Olvasd el a szonda samples konfigur\u00e1ci\u00f3s param\u00e9tereinek le\u00edr\u00e1s\u00e1t a konfigur\u00e1ci\u00f3s hivatkoz\u00e1sban tov\u00e1bbi r\u00e9szletek\u00e9rt. Ha \u00faj m\u00e9r\u00e9si sebess\u00e9gre, m\u00e9r\u00e9ssz\u00e1mra vagy egy\u00e9b be\u00e1ll\u00edt\u00e1sokra van sz\u00fcks\u00e9g, akkor friss\u00edtse a printer.cfg f\u00e1jlt, \u00e9s adj ki egy RESTART parancsot. Ha igen, akkor \u00e9rdemes \u00fajra kalibr\u00e1lni a z_offsetet . Ha nem kap ism\u00e9tl\u0151d\u0151 eredm\u00e9nyeket, akkor ne haszn\u00e1ld a szond\u00e1t t\u00e1rgyasztal szintez\u00e9s\u00e9re. A Klipper sz\u00e1mos k\u00e9zi m\u00e9r\u0151eszk\u00f6zzel rendelkezik, amelyek helyette haszn\u00e1lhat\u00f3k - tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a T\u00e1rgyasztal szintez\u00e9se dokumentumot . Elhelyezked\u00e9s ellen\u0151rz\u00e9se \u00b6 Egyes szond\u00e1k rendszerszint\u0171 torz\u00edt\u00e1ssal rendelkezhetnek, amely bizonyos nyomtat\u00f3fej helyeken elrontja a m\u00e9r\u00e9s eredm\u00e9nyeit. P\u00e9ld\u00e1ul, ha a szonda tart\u00f3ja az Y tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s k\u00f6zben kiss\u00e9 megd\u0151l, akkor ez azt eredm\u00e9nyezheti, hogy a szonda k\u00fcl\u00f6nb\u00f6z\u0151 Y poz\u00edci\u00f3kban torz eredm\u00e9nyeket ad ki. Ez egy gyakori probl\u00e9ma a delta nyomtat\u00f3k szond\u00e1in\u00e1l, de m\u00e1s nyomtat\u00f3n\u00e1l is el\u0151fordulhat. A helyeltol\u00f3d\u00e1s ellen\u0151rz\u00e9se a PROBE_CALIBRATE parancs seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nhet a szonda z_offsetj\u00e9nek m\u00e9r\u00e9s\u00e9vel k\u00fcl\u00f6nb\u00f6z\u0151 X \u00e9s Y helyeken. Ide\u00e1lis esetben a szonda z_offset \u00e9rt\u00e9ke minden poz\u00edci\u00f3ban \u00e1lland\u00f3. A deltanyomtat\u00f3k eset\u00e9ben pr\u00f3b\u00e1ld meg a z_offset m\u00e9r\u00e9s\u00e9t az A, a B, \u00e9s a C torony k\u00f6zel\u00e9ben is. Cartesian, corexy \u00e9s hasonl\u00f3 nyomtat\u00f3k eset\u00e9ben pr\u00f3b\u00e1ld meg a z_offsetet a t\u00e1rgyasztal n\u00e9gy sark\u00e1nak k\u00f6zel\u00e9ben l\u00e9v\u0151 poz\u00edci\u00f3kban m\u00e9rni. A vizsg\u00e1lat megkezd\u00e9se el\u0151tt el\u0151sz\u00f6r kalibr\u00e1lja a szonda X-, Y- \u00e9s Z-eltol\u00f3d\u00e1s\u00e1t a dokumentum elej\u00e9n le\u00edrtak szerint. Ezut\u00e1n \u00e1ll\u00edtsd be a nyomtat\u00f3t, \u00e9s navig\u00e1lj az els\u0151 X-Y poz\u00edci\u00f3ba. A PROBE_CALIBRATE parancs futtat\u00e1s\u00e1hoz k\u00f6vesse a calibrating probe Z offset pontban le\u00edrt l\u00e9p\u00e9seket, TESTZ parancsot, \u00e9s az ACCEPT parancsot, de ne futtassa a SAVE_CONFIG parancsot. Figyelj\u00fck meg a tal\u00e1lt z_offset \u00e9rt\u00e9ket. Ezut\u00e1n navig\u00e1lj a t\u00f6bbi X-Y poz\u00edci\u00f3hoz, ism\u00e9telje meg ezeket a PROBE_CALIBRATE l\u00e9p\u00e9seket, \u00e9s jegyezze fel a m\u00e9rt z_offsetet. Ha a minim\u00e1lisan \u00e9s a maxim\u00e1lisan jelentett z_offset k\u00f6z\u00f6tti k\u00fcl\u00f6nbs\u00e9g nagyobb, mint 25 mikron (.025 mm), akkor a szonda nem alkalmas a tipikus t\u00e1rgyasztal szintez\u00e9si m\u0171veletekre. A k\u00e9zi m\u00e9r\u00e9si alternat\u00edv\u00e1kat l\u00e1sd az T\u00e1rgyasztal szintez\u00e9se dokumentumban . H\u0151m\u00e9rs\u00e9klet torz\u00edt\u00e1s \u00b6 Sok szond\u00e1nak van egy rendszerszint\u0171 torz\u00edt\u00e1sa, amikor k\u00fcl\u00f6nb\u00f6z\u0151 h\u0151m\u00e9rs\u00e9kleten m\u00e9rnek. P\u00e9ld\u00e1ul a szonda k\u00f6vetkezetesen alacsonyabb magass\u00e1gban m\u00e9rhet a magasabb h\u0151m\u00e9rs\u00e9klet k\u00f6vetkezt\u00e9ben. Javasoljuk, hogy a t\u00e1rgyasztal szintez\u0151 szersz\u00e1mokat \u00e1lland\u00f3 h\u0151m\u00e9rs\u00e9kleten m\u0171k\u00f6dtesse, hogy figyelembe vegy\u00e9k ezt a torz\u00edt\u00e1st. Vagy szobah\u0151m\u00e9rs\u00e9kleten szintezzen, vagy szintezzen miut\u00e1n a nyomtat\u00f3 el\u00e9rte a nyomtat\u00e1si h\u0151m\u00e9rs\u00e9kletet. Mindk\u00e9t esetben \u00e9rdemes n\u00e9h\u00e1ny percet v\u00e1rni a k\u00edv\u00e1nt h\u0151m\u00e9rs\u00e9klet el\u00e9r\u00e9se ut\u00e1n, hogy a berendez\u00e9s folyamatosan a k\u00edv\u00e1nt h\u0151m\u00e9rs\u00e9kleten legyen. A h\u0151m\u00e9rs\u00e9kleti torz\u00edt\u00e1s ellen\u0151rz\u00e9s\u00e9hez kezd szobah\u0151m\u00e9rs\u00e9kleten, majd \u00e1ll\u00edtsd be a nyomtat\u00f3t. Mozgasd a fejet a t\u00e1rgyasztal k\u00f6zep\u00e9hez k\u00f6zeli poz\u00edci\u00f3ba, \u00e9s futtassa a PROBE_ACCURACY parancsot. Figyelje meg az eredm\u00e9nyeket. Ezut\u00e1n a l\u00e9ptet\u0151motorok kezd\u0151pont felv\u00e9tele vagy kikapcsol\u00e1sa n\u00e9lk\u00fcl meleg\u00edtse fel a nyomtat\u00f3 f\u00fav\u00f3k\u00e1j\u00e1t \u00e9s t\u00e1rgyasztal\u00e1t nyomtat\u00e1si h\u0151m\u00e9rs\u00e9kletre, \u00e9s futtassa le ism\u00e9t a PROBE_ACCURACY parancsot. Ide\u00e1lis esetben a parancs azonos eredm\u00e9nyeket fog mutatni. A fentiekhez hasonl\u00f3an, ha a szond\u00e1nak val\u00f3ban van h\u0151m\u00e9rs\u00e9kleti torz\u00edt\u00e1sa, akkor \u00fcgyelj arra, hogy mindig egyenletes h\u0151m\u00e9rs\u00e9kleten haszn\u00e1ld m\u00e9r\u00e9skor.","title":"Szonda kalibr\u00e1l\u00e1sa"},{"location":"Probe_Calibrate.html#szonda-kalibralasa","text":"Ez a dokumentum a Klipperben tal\u00e1lhat\u00f3 \"automatikus z szonda\" X, Y \u00e9s Z eltol\u00e1s\u00e1nak kalibr\u00e1l\u00e1si m\u00f3dszer\u00e9t \u00edrja le. Ez azon felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra hasznos, akiknek van egy [probe] vagy [bltouch] szakasz a konfigur\u00e1ci\u00f3s f\u00e1jljukban.","title":"Szonda kalibr\u00e1l\u00e1sa"},{"location":"Probe_Calibrate.html#a-szonda-x-es-y-eltolasanak-kalibralasa","text":"Az X \u00e9s Y eltol\u00e1s kalibr\u00e1l\u00e1s\u00e1hoz navig\u00e1lj az OctoPrint \"Control\" f\u00fclre, \u00e1ll\u00edtsd be a nyomtat\u00f3t, majd az OctoPrint l\u00e9ptet\u0151 gombjaival mozgasd a fejet a t\u00e1rgyasztal k\u00f6zep\u00e9hez k\u00f6zeli poz\u00edci\u00f3ba. Helyezz egy darab k\u00e9k fest\u0151szalagot (vagy hasonl\u00f3t) a t\u00e1rgyasztalra a szonda al\u00e1. Navig\u00e1lj az OctoPrint \"Terminal\" f\u00fclre, \u00e9s adj ki egy PROBE parancsot: PROBE Tegy\u00e9l egy jelet a szalagra k\u00f6zvetlen\u00fcl a szonda alatt (vagy hasonl\u00f3 m\u00f3dszerrel jel\u00f6ld fel a helyet a t\u00e1rgyasztalon). Adj ki egy GET_POSITION parancsot, \u00e9s r\u00f6gz\u00edtsd a parancs \u00e1ltal jelentett nyomtat\u00f3fej X-Y poz\u00edci\u00f3j\u00e1t. P\u00e9ld\u00e1ul, ha a k\u00f6vetkez\u0151ket l\u00e1tjuk: Recv: // toolhead: X:46.500000 Y:27.000000 Z:15.000000 E:0.000000 akkor a szonda X poz\u00edci\u00f3ja 46,5 \u00e9s Y poz\u00edci\u00f3ja 27. A szonda poz\u00edci\u00f3j\u00e1nak r\u00f6gz\u00edt\u00e9se ut\u00e1n adj ki egy sor G1 parancsot, am\u00edg a f\u00fav\u00f3ka k\u00f6zvetlen\u00fcl a t\u00e1rgyasztalon l\u00e9v\u0151 jel\u00f6l\u00e9s f\u00f6l\u00e9 nem ker\u00fcl. P\u00e9ld\u00e1ul a k\u00f6vetkez\u0151ket: G1 F300 X57 Y30 Z15 a f\u00fav\u00f3ka 57-es X-poz\u00edci\u00f3ba \u00e9s 30-as Y-poz\u00edci\u00f3ba t\u00f6rt\u00e9n\u0151 mozgat\u00e1s\u00e1hoz. Ha megtal\u00e1ltuk a k\u00f6zvetlen\u00fcl a jel\u00f6l\u00e9s feletti poz\u00edci\u00f3t, a GET_POSITION paranccsal jelenthetj\u00fck ezt a poz\u00edci\u00f3t. Ez a f\u00fav\u00f3ka poz\u00edci\u00f3ja. Az x_offset ekkor a nozzle_x_position - probe_x_position \u00e9s az y_offset hasonl\u00f3an a nozzle_y_position - probe_y_position . Friss\u00edtse a printer.cfg f\u00e1jlt a megadott \u00e9rt\u00e9kekkel, t\u00e1vol\u00edtsa el a szalagot/jeleket a t\u00e1rgyasztalr\u00f3l, majd adj ki egy RESTART parancsot, hogy az \u00faj \u00e9rt\u00e9kek hat\u00e1lyba l\u00e9pjenek.","title":"A szonda X \u00e9s Y eltol\u00e1s\u00e1nak kalibr\u00e1l\u00e1sa"},{"location":"Probe_Calibrate.html#a-szonda-z-eltolas-kalibralasa","text":"A pontos z_offset be\u00e1ll\u00edt\u00e1sa kritikus fontos a j\u00f3 min\u0151s\u00e9g\u0171 nyomatok el\u0151\u00e1ll\u00edt\u00e1s\u00e1hoz. A z_offset a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tti t\u00e1vols\u00e1g, amikor a szonda m\u0171k\u00f6d\u00e9sbe l\u00e9p. A Klipper PROBE_CALIBRATE eszk\u00f6z haszn\u00e1lhat\u00f3 ennek az \u00e9rt\u00e9knek a meghat\u00e1roz\u00e1s\u00e1ra - ez egy automatikus szond\u00e1t futtat a szonda Z kiold\u00e1si poz\u00edci\u00f3j\u00e1nak m\u00e9r\u00e9s\u00e9re, majd egy k\u00e9zi szond\u00e1t ind\u00edt a f\u00fav\u00f3ka Z magass\u00e1g\u00e1nak meghat\u00e1roz\u00e1s\u00e1ra. A szonda z_offset \u00e9rt\u00e9k\u00e9t ezut\u00e1n ezekb\u0151l a m\u00e9r\u00e9sekb\u0151l sz\u00e1m\u00edtja ki. Kezd a nyomtat\u00f3 alaphelyzetbe \u00e1ll\u00edt\u00e1s\u00e1val, majd mozgasd a fejet a t\u00e1rgyasztal k\u00f6zep\u00e9hez k\u00f6zeli poz\u00edci\u00f3ba. Navig\u00e1lj az OctoPrint termin\u00e1l f\u00fclre, \u00e9s futtassa a PROBE_CALIBRATE parancsot az eszk\u00f6z ind\u00edt\u00e1s\u00e1hoz. Ez az eszk\u00f6z automatikus m\u00e9r\u00e9st hajt v\u00e9gre, majd felemeli a fejet, mozgatja a f\u00fav\u00f3k\u00e1t a m\u00e9r\u0151pont helye f\u00f6l\u00e9, \u00e9s elind\u00edtja a k\u00e9zi m\u00e9r\u00e9st. Ha a f\u00fav\u00f3ka nem mozdul el az automatikus m\u00e9r\u0151pont feletti poz\u00edci\u00f3ba, akkor ABORT a k\u00e9zi m\u00e9r\u0151eszk\u00f6zzel, hajtsd v\u00e9gre a fent le\u00edrt X-Y szondaeltol\u00e1s kalibr\u00e1l\u00e1s\u00e1t. Miut\u00e1n a k\u00e9zi m\u00e9r\u0151 eszk\u00f6z elindult, k\u00f6vesse a \"a pap\u00edrteszt\" ] pontban le\u00edrt l\u00e9p\u00e9seket a f\u00fav\u00f3ka \u00e9s a t\u00e1rgyasztal k\u00f6z\u00f6tti t\u00e9nyleges t\u00e1vols\u00e1g meghat\u00e1roz\u00e1s\u00e1hoz az adott helyen. Ha ezek a l\u00e9p\u00e9sek befejez\u0151dtek, akkor ACCEPT a poz\u00edci\u00f3 \u00e9s elmentheti az eredm\u00e9nyeket a config f\u00e1jlba a k\u00f6vetkez\u0151vel: SAVE_CONFIG Vedd figyelembe, hogy ha a nyomtat\u00f3 mozg\u00e1srendszer\u00e9t, a nyomtat\u00f3fej poz\u00edci\u00f3j\u00e1t vagy a szonda hely\u00e9t megv\u00e1ltoztatja, az \u00e9rv\u00e9nytelen\u00edti a PROBE_CALIBRATE eredm\u00e9nyeit. Ha a szonda X vagy Y eltol\u00e1ssal rendelkezik, \u00e9s a t\u00e1rgyasztal d\u0151l\u00e9se megv\u00e1ltozik (pl. szintez\u0151csavarok be\u00e1ll\u00edt\u00e1s\u00e1val, DELTA_CALIBRATE futtat\u00e1s\u00e1val, Z_TILT_ADJUST futtat\u00e1s\u00e1val, QUAD_GANTRY_LEVEL futtat\u00e1s\u00e1val vagy hasonl\u00f3val), akkor ez \u00e9rv\u00e9nytelen\u00edti a PROBE_CALIBRATE eredm\u00e9nyeit. A fenti be\u00e1ll\u00edt\u00e1sok b\u00e1rmelyik\u00e9nek m\u00f3dos\u00edt\u00e1sa ut\u00e1n \u00fajra kell kezdeni a PROBE_CALIBRATE futtat\u00e1s\u00e1t. Ha a PROBE_CALIBRATE eredm\u00e9nyei \u00e9rv\u00e9nytelenek, akkor a szond\u00e1val kapott kor\u00e1bbi t\u00e1rgyasztal h\u00e1l\u00f3 eredm\u00e9nyek is \u00e9rv\u00e9nytelenek. A szonda \u00fajrakalibr\u00e1l\u00e1sa ut\u00e1n \u00fajra kell futtatni a BED_MESH_CALIBRATE programot.","title":"A szonda Z eltol\u00e1s kalibr\u00e1l\u00e1sa"},{"location":"Probe_Calibrate.html#ismetelt-meresi-teszt","text":"A szonda X, Y \u00e9s Z eltol\u00e1s\u00e1nak kalibr\u00e1l\u00e1sa ut\u00e1n \u00e9rdemes ellen\u0151rizni, hogy a szonda megism\u00e9telhet\u0151 m\u00e9r\u00e9si eredm\u00e9nyeket szolg\u00e1ltat-e. Kezd a nyomtat\u00f3 alaphelyzetbe \u00e1ll\u00edt\u00e1s\u00e1val, majd mozgasd a fejet a t\u00e1rgyasztal k\u00f6zep\u00e9hez k\u00f6zeli poz\u00edci\u00f3ba. Navig\u00e1lj az OctoPrint termin\u00e1l f\u00fclre, \u00e9s futtassa a PROBE_ACCURACY parancsot. Ez a parancs t\u00edzszer futtatja le a m\u00e9r\u00e9st, \u00e9s az al\u00e1bbiakhoz hasonl\u00f3 kimenetet ad: Recv: // probe accuracy: at X:0.000 Y:0.000 Z:10.000 Recv: // and read 10 times with speed of 5 mm/s Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe accuracy results: maximum 2.519448, minimum 2.506948, range 0.012500, average 2.513198, median 2.513198, standard deviation 0.006250 Ide\u00e1lis esetben az eszk\u00f6z azonos maxim\u00e1lis \u00e9s minim\u00e1lis \u00e9rt\u00e9ket mutat. (Vagyis ide\u00e1lis esetben a szonda mind a t\u00edz m\u00e9r\u00e9sen azonos eredm\u00e9nyt ad.) Azonban norm\u00e1lis, hogy a minim\u00e1lis \u00e9s maxim\u00e1lis \u00e9rt\u00e9kek egy Z \"l\u00e9p\u00e9sk\u00f6z\" vagy ak\u00e1r 5 mikron (.005 mm) elt\u00e9r\u00e9ssel k\u00fcl\u00f6nb\u00f6znek. A \"l\u00e9p\u00e9sk\u00f6z\" rotation_distance/(full_steps_per_rotation*microsteps) . A minim\u00e1lis \u00e9s a maxim\u00e1lis \u00e9rt\u00e9k k\u00f6z\u00f6tti t\u00e1vols\u00e1got nevezz\u00fck tartom\u00e1nynak. Teh\u00e1t a fenti p\u00e9ld\u00e1ban, mivel a nyomtat\u00f3 0,0125 Z-l\u00e9p\u00e9st\u00e1vols\u00e1got haszn\u00e1l, a 0,01252500 tartom\u00e1nyt tekintj\u00fck norm\u00e1lisnak. Ha a teszt eredm\u00e9nye 25 mikronn\u00e1l (0,025 mm-n\u00e9l) nagyobb tartom\u00e1ny\u00e9rt\u00e9ket mutat, akkor a szonda nem el\u00e9g pontos a tipikus szintez\u00e9si elj\u00e1r\u00e1sokhoz. Lehets\u00e9ges a szonda sebess\u00e9g\u00e9nek \u00e9s/vagy indul\u00e1si magass\u00e1g\u00e1nak hangol\u00e1sa a m\u00e9r\u00e9s ism\u00e9telhet\u0151s\u00e9g\u00e9nek jav\u00edt\u00e1sa \u00e9rdek\u00e9ben. A PROBE_ACCURACY parancs lehet\u0151v\u00e9 teszi a tesztek futtat\u00e1s\u00e1t k\u00fcl\u00f6nb\u00f6z\u0151 param\u00e9terekkel, hogy l\u00e1ssa a hat\u00e1sukat. Tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a G-k\u00f3dok dokumentumot . Ha a szonda \u00e1ltal\u00e1ban egyforma eredm\u00e9nyeket ad, de id\u0151nk\u00e9nt el\u0151fordulnak kiugr\u00f3 \u00e9rt\u00e9kek, akkor ezt \u00fagy lehet kik\u00fcsz\u00f6b\u00f6lni, hogy minden egyes m\u00e9r\u0151ponton t\u00f6bb m\u00e9r\u00e9st hajtunk v\u00e9gre. Olvasd el a szonda samples konfigur\u00e1ci\u00f3s param\u00e9tereinek le\u00edr\u00e1s\u00e1t a konfigur\u00e1ci\u00f3s hivatkoz\u00e1sban tov\u00e1bbi r\u00e9szletek\u00e9rt. Ha \u00faj m\u00e9r\u00e9si sebess\u00e9gre, m\u00e9r\u00e9ssz\u00e1mra vagy egy\u00e9b be\u00e1ll\u00edt\u00e1sokra van sz\u00fcks\u00e9g, akkor friss\u00edtse a printer.cfg f\u00e1jlt, \u00e9s adj ki egy RESTART parancsot. Ha igen, akkor \u00e9rdemes \u00fajra kalibr\u00e1lni a z_offsetet . Ha nem kap ism\u00e9tl\u0151d\u0151 eredm\u00e9nyeket, akkor ne haszn\u00e1ld a szond\u00e1t t\u00e1rgyasztal szintez\u00e9s\u00e9re. A Klipper sz\u00e1mos k\u00e9zi m\u00e9r\u0151eszk\u00f6zzel rendelkezik, amelyek helyette haszn\u00e1lhat\u00f3k - tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a T\u00e1rgyasztal szintez\u00e9se dokumentumot .","title":"Ism\u00e9telt m\u00e9r\u00e9si teszt"},{"location":"Probe_Calibrate.html#elhelyezkedes-ellenorzese","text":"Egyes szond\u00e1k rendszerszint\u0171 torz\u00edt\u00e1ssal rendelkezhetnek, amely bizonyos nyomtat\u00f3fej helyeken elrontja a m\u00e9r\u00e9s eredm\u00e9nyeit. P\u00e9ld\u00e1ul, ha a szonda tart\u00f3ja az Y tengely ment\u00e9n t\u00f6rt\u00e9n\u0151 mozg\u00e1s k\u00f6zben kiss\u00e9 megd\u0151l, akkor ez azt eredm\u00e9nyezheti, hogy a szonda k\u00fcl\u00f6nb\u00f6z\u0151 Y poz\u00edci\u00f3kban torz eredm\u00e9nyeket ad ki. Ez egy gyakori probl\u00e9ma a delta nyomtat\u00f3k szond\u00e1in\u00e1l, de m\u00e1s nyomtat\u00f3n\u00e1l is el\u0151fordulhat. A helyeltol\u00f3d\u00e1s ellen\u0151rz\u00e9se a PROBE_CALIBRATE parancs seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nhet a szonda z_offsetj\u00e9nek m\u00e9r\u00e9s\u00e9vel k\u00fcl\u00f6nb\u00f6z\u0151 X \u00e9s Y helyeken. Ide\u00e1lis esetben a szonda z_offset \u00e9rt\u00e9ke minden poz\u00edci\u00f3ban \u00e1lland\u00f3. A deltanyomtat\u00f3k eset\u00e9ben pr\u00f3b\u00e1ld meg a z_offset m\u00e9r\u00e9s\u00e9t az A, a B, \u00e9s a C torony k\u00f6zel\u00e9ben is. Cartesian, corexy \u00e9s hasonl\u00f3 nyomtat\u00f3k eset\u00e9ben pr\u00f3b\u00e1ld meg a z_offsetet a t\u00e1rgyasztal n\u00e9gy sark\u00e1nak k\u00f6zel\u00e9ben l\u00e9v\u0151 poz\u00edci\u00f3kban m\u00e9rni. A vizsg\u00e1lat megkezd\u00e9se el\u0151tt el\u0151sz\u00f6r kalibr\u00e1lja a szonda X-, Y- \u00e9s Z-eltol\u00f3d\u00e1s\u00e1t a dokumentum elej\u00e9n le\u00edrtak szerint. Ezut\u00e1n \u00e1ll\u00edtsd be a nyomtat\u00f3t, \u00e9s navig\u00e1lj az els\u0151 X-Y poz\u00edci\u00f3ba. A PROBE_CALIBRATE parancs futtat\u00e1s\u00e1hoz k\u00f6vesse a calibrating probe Z offset pontban le\u00edrt l\u00e9p\u00e9seket, TESTZ parancsot, \u00e9s az ACCEPT parancsot, de ne futtassa a SAVE_CONFIG parancsot. Figyelj\u00fck meg a tal\u00e1lt z_offset \u00e9rt\u00e9ket. Ezut\u00e1n navig\u00e1lj a t\u00f6bbi X-Y poz\u00edci\u00f3hoz, ism\u00e9telje meg ezeket a PROBE_CALIBRATE l\u00e9p\u00e9seket, \u00e9s jegyezze fel a m\u00e9rt z_offsetet. Ha a minim\u00e1lisan \u00e9s a maxim\u00e1lisan jelentett z_offset k\u00f6z\u00f6tti k\u00fcl\u00f6nbs\u00e9g nagyobb, mint 25 mikron (.025 mm), akkor a szonda nem alkalmas a tipikus t\u00e1rgyasztal szintez\u00e9si m\u0171veletekre. A k\u00e9zi m\u00e9r\u00e9si alternat\u00edv\u00e1kat l\u00e1sd az T\u00e1rgyasztal szintez\u00e9se dokumentumban .","title":"Elhelyezked\u00e9s ellen\u0151rz\u00e9se"},{"location":"Probe_Calibrate.html#homerseklet-torzitas","text":"Sok szond\u00e1nak van egy rendszerszint\u0171 torz\u00edt\u00e1sa, amikor k\u00fcl\u00f6nb\u00f6z\u0151 h\u0151m\u00e9rs\u00e9kleten m\u00e9rnek. P\u00e9ld\u00e1ul a szonda k\u00f6vetkezetesen alacsonyabb magass\u00e1gban m\u00e9rhet a magasabb h\u0151m\u00e9rs\u00e9klet k\u00f6vetkezt\u00e9ben. Javasoljuk, hogy a t\u00e1rgyasztal szintez\u0151 szersz\u00e1mokat \u00e1lland\u00f3 h\u0151m\u00e9rs\u00e9kleten m\u0171k\u00f6dtesse, hogy figyelembe vegy\u00e9k ezt a torz\u00edt\u00e1st. Vagy szobah\u0151m\u00e9rs\u00e9kleten szintezzen, vagy szintezzen miut\u00e1n a nyomtat\u00f3 el\u00e9rte a nyomtat\u00e1si h\u0151m\u00e9rs\u00e9kletet. Mindk\u00e9t esetben \u00e9rdemes n\u00e9h\u00e1ny percet v\u00e1rni a k\u00edv\u00e1nt h\u0151m\u00e9rs\u00e9klet el\u00e9r\u00e9se ut\u00e1n, hogy a berendez\u00e9s folyamatosan a k\u00edv\u00e1nt h\u0151m\u00e9rs\u00e9kleten legyen. A h\u0151m\u00e9rs\u00e9kleti torz\u00edt\u00e1s ellen\u0151rz\u00e9s\u00e9hez kezd szobah\u0151m\u00e9rs\u00e9kleten, majd \u00e1ll\u00edtsd be a nyomtat\u00f3t. Mozgasd a fejet a t\u00e1rgyasztal k\u00f6zep\u00e9hez k\u00f6zeli poz\u00edci\u00f3ba, \u00e9s futtassa a PROBE_ACCURACY parancsot. Figyelje meg az eredm\u00e9nyeket. Ezut\u00e1n a l\u00e9ptet\u0151motorok kezd\u0151pont felv\u00e9tele vagy kikapcsol\u00e1sa n\u00e9lk\u00fcl meleg\u00edtse fel a nyomtat\u00f3 f\u00fav\u00f3k\u00e1j\u00e1t \u00e9s t\u00e1rgyasztal\u00e1t nyomtat\u00e1si h\u0151m\u00e9rs\u00e9kletre, \u00e9s futtassa le ism\u00e9t a PROBE_ACCURACY parancsot. Ide\u00e1lis esetben a parancs azonos eredm\u00e9nyeket fog mutatni. A fentiekhez hasonl\u00f3an, ha a szond\u00e1nak val\u00f3ban van h\u0151m\u00e9rs\u00e9kleti torz\u00edt\u00e1sa, akkor \u00fcgyelj arra, hogy mindig egyenletes h\u0151m\u00e9rs\u00e9kleten haszn\u00e1ld m\u00e9r\u00e9skor.","title":"H\u0151m\u00e9rs\u00e9klet torz\u00edt\u00e1s"},{"location":"Protocol.html","text":"Protokoll \u00b6 A Klipper \u00fczenetk\u00fcld\u0151 protokoll a Klipper gazdag\u00e9p szoftver \u00e9s a Klipper mikrovez\u00e9rl\u0151 szoftver k\u00f6z\u00f6tti alacsony szint\u0171 kommunik\u00e1ci\u00f3ra szolg\u00e1l. Magas szinten a protokoll felfoghat\u00f3 parancs \u00e9s v\u00e1laszkarakterl\u00e1ncok sorozat\u00e1nak, amelyeket t\u00f6m\u00f6r\u00edtenek, tov\u00e1bb\u00edtanak, majd feldolgoznak a fogad\u00f3 oldalon. Egy p\u00e9lda parancssorozat t\u00f6m\u00f6r\u00edtetlen, ember \u00e1ltal olvashat\u00f3 form\u00e1tumban \u00edgy n\u00e9zhet ki: set_digital_out pin=PA3 value=1 set_digital_out pin=PA7 value=1 schedule_digital_out oid=8 clock=4000000 value=0 queue_step oid=7 interval=7458 count=10 add=331 queue_step oid=7 interval=11717 count=4 add=1281 Az el\u00e9rhet\u0151 parancsokr\u00f3l az mcu parancsok dokumentumban olvashatsz b\u0151vebben. Tekintsd meg a hibakeres\u00e9s dokumentumot a G-k\u00f3d f\u00e1jl megfelel\u0151, ember \u00e1ltal olvashat\u00f3 mikrovez\u00e9rl\u0151 parancsaira t\u00f6rt\u00e9n\u0151 leford\u00edt\u00e1s\u00e1val kapcsolatban. Ez az oldal mag\u00e1nak a Klipper \u00fczenetk\u00fcld\u0151 protokollnak a magas szint\u0171 le\u00edr\u00e1s\u00e1t tartalmazza. Le\u00edrja az \u00fczenetek deklar\u00e1l\u00e1s\u00e1t, bin\u00e1ris form\u00e1tum\u00fa k\u00f3dol\u00e1s\u00e1t (a s\u00e9ma \"t\u00f6m\u00f6r\u00edt\u00e9s\u00e9t\") \u00e9s tov\u00e1bb\u00edt\u00e1s\u00e1t. A protokoll c\u00e9lja, hogy hibamentes kommunik\u00e1ci\u00f3s csatorn\u00e1t tegyen lehet\u0151v\u00e9 a gazdag\u00e9p \u00e9s a mikrovez\u00e9rl\u0151 k\u00f6z\u00f6tt, amely alacsony k\u00e9sleltet\u00e9s\u0171, alacsony s\u00e1vsz\u00e9less\u00e9g\u0171 \u00e9s alacsony bonyolults\u00e1g\u00fa a mikrovez\u00e9rl\u0151 sz\u00e1m\u00e1ra. Mikrovez\u00e9rl\u0151 interf\u00e9sz \u00b6 A Klipper \u00e1tviteli protokoll egy RPC mechanizmusnak tekinthet\u0151 a mikrovez\u00e9rl\u0151 \u00e9s a gazdag\u00e9p k\u00f6z\u00f6tt. A mikrovez\u00e9rl\u0151 szoftver deklar\u00e1lja azokat a parancsokat, amelyeket a gazdag\u00e9p megh\u00edvhat, az \u00e1ltala gener\u00e1lt v\u00e1lasz\u00fczenetekkel egy\u00fctt. A gazdag\u00e9p ezeket az inform\u00e1ci\u00f3kat arra haszn\u00e1lja fel, hogy parancsot adjon a mikrokontrollernek a m\u0171veletek v\u00e9grehajt\u00e1s\u00e1ra \u00e9s az eredm\u00e9nyek \u00e9rtelmez\u00e9s\u00e9re. Parancsok deklar\u00e1l\u00e1sa \u00b6 A mikrokontroller szoftvere deklar\u00e1l egy \"parancsot\" a DECL_COMMAND() makr\u00f3 haszn\u00e1lat\u00e1val a C k\u00f3dban. P\u00e9ld\u00e1ul: DECL_COMMAND(command_update_digital_out, \"update_digital_out oid=%c value=%c\"); A fenti egy \"update_digital_out\" nev\u0171 parancsot deklar\u00e1l. Ez lehet\u0151v\u00e9 teszi a gazdag\u00e9p sz\u00e1m\u00e1ra, hogy ezt a parancsot \"invoke\", ami a command_update_digital_out() C f\u00fcggv\u00e9ny v\u00e9grehajt\u00e1s\u00e1t eredm\u00e9nyezi a mikrovez\u00e9rl\u0151ben. A fentiek azt is jelzik, hogy a parancs k\u00e9t eg\u00e9sz param\u00e9tert vesz fel. A command_update_digital_out() C k\u00f3d v\u00e9grehajt\u00e1sakor egy t\u00f6mb ker\u00fcl \u00e1tad\u00e1sra, amely ezt a k\u00e9t eg\u00e9sz sz\u00e1mot tartalmazza. Az els\u0151 az 'oid'-nak, a m\u00e1sodik a 'value'-nak felel meg. \u00c1ltal\u00e1ban a param\u00e9terek le\u00edr\u00e1sa printf() st\u00edlus\u00fa szintaxissal t\u00f6rt\u00e9nik (pl. \"%u\"). A form\u00e1z\u00e1s k\u00f6zvetlen\u00fcl megfelel a parancsok ember \u00e1ltal olvashat\u00f3 n\u00e9zet\u00e9nek (pl. \"update_digital_out oid=7 value=1\"). A fenti p\u00e9ld\u00e1ban a \"value=\" a param\u00e9ter neve, a \"%c\" pedig azt jelzi, hogy a param\u00e9ter eg\u00e9sz sz\u00e1m. Bels\u0151leg a param\u00e9tern\u00e9v csak dokument\u00e1ci\u00f3k\u00e9nt haszn\u00e1latos. Ebben a p\u00e9ld\u00e1ban a \"%c\" is haszn\u00e1lhat\u00f3 dokument\u00e1ci\u00f3k\u00e9nt, amely jelzi, hogy a v\u00e1rt eg\u00e9sz sz\u00e1m 1 b\u00e1jt m\u00e9ret\u0171 (a deklar\u00e1lt eg\u00e9sz sz\u00e1m nem befoly\u00e1solja az elemz\u00e9st vagy a k\u00f3dol\u00e1st). A mikrovez\u00e9rl\u0151 szerkeszt\u0151 \u00f6sszegy\u0171jti a DECL_COMMAND()-al deklar\u00e1lt \u00f6sszes parancsot, meghat\u00e1rozza azok param\u00e9tereit, \u00e9s gondoskodik a megh\u00edv\u00e1sukr\u00f3l. V\u00e1laszok deklar\u00e1l\u00e1sa \u00b6 A mikrovez\u00e9rl\u0151t\u0151l a gazdag\u00e9pnek t\u00f6rt\u00e9n\u0151 inform\u00e1ci\u00f3 k\u00fcld\u00e9s\u00e9hez \"v\u00e1lasz\" j\u00f6n l\u00e9tre. Ezek deklar\u00e1l\u00e1sa \u00e9s tov\u00e1bb\u00edt\u00e1sa a sendf() C makr\u00f3 haszn\u00e1lat\u00e1val t\u00f6rt\u00e9nik. P\u00e9ld\u00e1ul: sendf(\"status clock=%u status=%c\", sched_read_time(), sched_is_shutdown()); A fenti egy \"\u00e1llapot\" v\u00e1lasz\u00fczenetet k\u00fcld, amely k\u00e9t eg\u00e9sz param\u00e9tert (\"\u00f3ra\" \u00e9s \"\u00e1llapot\") tartalmaz. A mikrovez\u00e9rl\u0151 szerkeszt\u0151 automatikusan megtal\u00e1lja az \u00f6sszes sendf() h\u00edv\u00e1st, \u00e9s k\u00f3dol\u00f3kat gener\u00e1l hozz\u00e1juk. A sendf() f\u00fcggv\u00e9ny els\u0151 param\u00e9tere \u00edrja le a v\u00e1laszt, \u00e9s form\u00e1tuma megegyezik a parancsdeklar\u00e1ci\u00f3kkal. A gazdag\u00e9p gondoskodhat arr\u00f3l, hogy minden v\u00e1laszhoz visszah\u00edv\u00e1si funkci\u00f3t regisztr\u00e1ljon. Teh\u00e1t val\u00f3j\u00e1ban a parancsok lehet\u0151v\u00e9 teszik a gazdag\u00e9p sz\u00e1m\u00e1ra, hogy megh\u00edvja a C f\u00fcggv\u00e9nyeket a mikrovez\u00e9rl\u0151ben, a v\u00e1laszok pedig lehet\u0151v\u00e9 teszik, hogy a mikrovez\u00e9rl\u0151 szoftvere k\u00f3dot h\u00edvjon meg a gazdag\u00e9pben. A sendf() makr\u00f3 csak parancs vagy feladatkezel\u0151kb\u0151l h\u00edvhat\u00f3 meg, \u00e9s nem h\u00edvhat\u00f3 meg megszak\u00edt\u00e1sokb\u00f3l vagy id\u0151z\u00edt\u0151kb\u0151l. A k\u00f3dnak nem kell sendf()-t kiadnia a kapott parancsra v\u00e1laszul, nincs korl\u00e1tozva a sendf() megh\u00edv\u00e1s\u00e1nak sz\u00e1ma, \u00e9s a sendf()-t b\u00e1rmikor megh\u00edvhatja egy feladatkezel\u0151b\u0151l. Kimeneti v\u00e1laszok \u00b6 A hibakeres\u00e9s egyszer\u0171s\u00edt\u00e9se \u00e9rdek\u00e9ben van egy output() C f\u00fcggv\u00e9ny is. P\u00e9ld\u00e1ul: output(\"The value of %u is %s with size %u.\", x, buf, buf_len); Az output() f\u00fcggv\u00e9ny a printf() f\u00fcggv\u00e9nyhez hasonl\u00f3an haszn\u00e1lhat\u00f3. C\u00e9lja tetsz\u0151leges \u00fczenetek gener\u00e1l\u00e1sa \u00e9s form\u00e1z\u00e1sa emberi feldolgoz\u00e1sra. Felsorol\u00e1sok deklar\u00e1l\u00e1sa \u00b6 A felsorol\u00e1sok lehet\u0151v\u00e9 teszik a gazdak\u00f3d sz\u00e1m\u00e1ra, hogy a mikrokontroller \u00e1ltal eg\u00e9sz sz\u00e1mokk\u00e9nt kezelt param\u00e9terekhez karakterl\u00e1nc-azonos\u00edt\u00f3kat haszn\u00e1ljon. Ezeket a mikrokontroller k\u00f3dj\u00e1ban kell deklar\u00e1lni - p\u00e9ld\u00e1ul: DECL_ENUMERATION(\"spi_bus\", \"spi\", 0); DECL_ENUMERATION_RANGE(\"pin\", \"PC0\", 16, 8); Ha az els\u0151 p\u00e9ld\u00e1ban a DECL_ENUMERATION() makr\u00f3 felsorol\u00e1st defini\u00e1l minden olyan parancs/v\u00e1lasz \u00fczenethez, amelynek param\u00e9terneve \"spi_bus\" vagy \"_spi_bus\" ut\u00f3taggal rendelkezik. E param\u00e9terek eset\u00e9ben az \"SPI\" karakterl\u00e1nc \u00e9rv\u00e9nyes \u00e9rt\u00e9k, \u00e9s null\u00e1s eg\u00e9sz sz\u00e1m\u00e9rt\u00e9kkel ker\u00fcl tov\u00e1bb\u00edt\u00e1sra. Lehet\u0151s\u00e9g van felsorol\u00e1si tartom\u00e1ny kijel\u00f6l\u00e9s\u00e9re is. A m\u00e1sodik p\u00e9ld\u00e1ban egy \"pin\" param\u00e9ter (vagy b\u00e1rmely param\u00e9ter, amelynek ut\u00f3tagja \"_pin\") elfogadn\u00e1 a PC0, PC1, PC2, ..., PC7 \u00e9rt\u00e9keket. A karakterl\u00e1ncokat a 16, 17, 18, ..., ..., 23 eg\u00e9sz sz\u00e1mokkal kell tov\u00e1bb\u00edtani. \u00c1lland\u00f3k deklar\u00e1l\u00e1sa \u00b6 A konstansok is export\u00e1lhat\u00f3k. P\u00e9ld\u00e1ul a k\u00f6vetkez\u0151k\u00e9pp: DECL_CONSTANT(\"SERIAL_BAUD\", 250000); egy \"SERIAL_BAUD\" nev\u0171, 250000 \u00e9rt\u00e9k\u0171 konstanst export\u00e1lna a mikrokontrollerb\u0151l a gazdag\u00e9pre. Lehet\u0151s\u00e9g van olyan konstans deklar\u00e1l\u00e1s\u00e1ra is, amely egy karakterl\u00e1nc - p\u00e9ld\u00e1ul: DECL_CONSTANT_STR(\"MCU\", \"pru\"); Alacsony szint\u0171 \u00fczenetk\u00f3dol\u00e1s \u00b6 A fenti RPC-mechanizmus megval\u00f3s\u00edt\u00e1s\u00e1hoz minden egyes parancs \u00e9s v\u00e1lasz bin\u00e1ris form\u00e1tumba van k\u00f3dolva az \u00e1tvitelhez. Ez a szakasz az \u00e1tviteli rendszert \u00edrja le. \u00dczenetblokkok \u00b6 A gazdag\u00e9pt\u0151l a mikrovez\u00e9rl\u0151nek \u00e9s ford\u00edtva k\u00fcld\u00f6tt \u00f6sszes adat \"\u00fczenetblokkban\" tal\u00e1lhat\u00f3. Az \u00fczenetblokk k\u00e9t b\u00e1jtos fejl\u00e9ccel \u00e9s h\u00e1rom b\u00e1jtos \u00fczenettel rendelkezik. Az \u00fczenetblokkok form\u00e1tuma a k\u00f6vetkez\u0151: <1 byte length><1 byte sequence><n-byte content><2 byte crc><1 byte sync> A hosszb\u00e1jt tartalmazza az \u00fczenetblokkban l\u00e9v\u0151 b\u00e1jtok sz\u00e1m\u00e1t, bele\u00e9rtve a fejl\u00e9cet \u00e9s a k\u00f6vet\u0151b\u00e1jtokat (\u00edgy az \u00fczenet minim\u00e1lis hossza 5 b\u00e1jt). Az \u00fczenetblokk maxim\u00e1lis hossza jelenleg 64 b\u00e1jt. A szekvencia b\u00e1jt egy 4 bites szekvencia sz\u00e1mot tartalmaz az alacsony rend\u0171 bitekben, a magas rend\u0171 bitek pedig mindig 0x10-et tartalmaznak (a magas rend\u0171 bitek k\u00e9s\u0151bbi haszn\u00e1latra vannak fenntartva). A tartalmi b\u00e1jtok tetsz\u0151leges adatokat tartalmaznak, \u00e9s form\u00e1tumukat a k\u00f6vetkez\u0151 szakasz ismerteti. A crc b\u00e1jtok tartalmazz\u00e1k az \u00fczenetblokk 16 bites CCITT CRC \u00e9rt\u00e9k\u00e9t, bele\u00e9rtve a fejl\u00e9cb\u00e1jtokat, de kiv\u00e9ve az \u00fczenetb\u00e1jtokat. A szinkroniz\u00e1l\u00e1si b\u00e1jt 0x7e. Az \u00fczenetblokk form\u00e1tum\u00e1t a HDLC \u00fczenetkeretek ihlett\u00e9k. A HDLC-hez hasonl\u00f3an az \u00fczenetblokk opcion\u00e1lisan tartalmazhat egy tov\u00e1bbi szinkroniz\u00e1l\u00e1si karaktert a blokk elej\u00e9n. A HDLC-vel ellent\u00e9tben a szinkroniz\u00e1l\u00e1si karakter nem kiz\u00e1r\u00f3lagos a keretben, \u00e9s jelen lehet az \u00fczenetblokk tartalm\u00e1ban. \u00dczenetblokk tartalma \u00b6 Minden egyes, a gazdag\u00e9pr\u0151l a mikrokontrollernek k\u00fcld\u00f6tt \u00fczenetblokk tartalma nulla vagy t\u00f6bb \u00fczenetparancsb\u00f3l \u00e1ll\u00f3 sorozatot tartalmaz. Minden parancs egy V\u00e1ltoz\u00f3 hossz\u00fas\u00e1g\u00fa mennyis\u00e9g (VLQ) k\u00f3dolt eg\u00e9sz sz\u00e1m\u00fa parancs azonos\u00edt\u00f3val kezd\u0151dik, amelyet az adott parancsra vonatkoz\u00f3 nulla vagy t\u00f6bb VLQ param\u00e9ter k\u00f6vet. A k\u00f6vetkez\u0151 n\u00e9gy parancsot p\u00e9ld\u00e1ul egyetlen \u00fczenetblokkba helyezhetj\u00fck: update_digital_out oid=6 value=1 update_digital_out oid=5 value=0 get_config get_clock \u00e9s a k\u00f6vetkez\u0151 nyolc VLQ eg\u00e9sz sz\u00e1mba k\u00f3dolva: <id_update_digital_out><6><1><id_update_digital_out><5><0><id_get_config><id_get_clock> Az \u00fczenet tartalm\u00e1nak k\u00f3dol\u00e1s\u00e1hoz \u00e9s elemz\u00e9s\u00e9hez a gazdag\u00e9pnek \u00e9s a mikrokontrollernek meg kell egyeznie a parancs azonos\u00edt\u00f3iban \u00e9s az egyes parancsok param\u00e9tereinek sz\u00e1m\u00e1ban. \u00cdgy a fenti p\u00e9ld\u00e1ban mind a gazdag\u00e9p, mind a mikrokontroller tudja, hogy az \"id_update_digital_out\" parancsot mindig k\u00e9t param\u00e9ter k\u00f6veti, \u00e9s az \"id_get_config\" \u00e9s a \"id_get_clock\" parancsnak nulla param\u00e9tere van. A gazdag\u00e9p \u00e9s a mikrokontroller megosztja az \"adatsz\u00f3t\u00e1rat\", amely a parancsle\u00edr\u00e1sokat (pl. \"update_digital_out oid=%c value=%c\") eg\u00e9sz sz\u00e1m\u00fa parancs-azonos\u00edt\u00f3kra k\u00e9pezi le. Az adatok feldolgoz\u00e1sa sor\u00e1n az elemz\u0151 tudni fogja, hogy egy adott parancs-id ut\u00e1n meghat\u00e1rozott sz\u00e1m\u00fa VLQ-k\u00f3dolt param\u00e9tert v\u00e1rjon. A mikrokontrollerr\u0151l a gazdag\u00e9pnek k\u00fcld\u00f6tt blokkok \u00fczenettartalma ugyanezt a form\u00e1tumot k\u00f6veti. Ezekben az \u00fczenetekben szerepl\u0151 azonos\u00edt\u00f3k \"v\u00e1lasz azonos\u00edt\u00f3k\", de ugyanazt a c\u00e9lt szolg\u00e1lj\u00e1k \u00e9s ugyanazokat a k\u00f3dol\u00e1si szab\u00e1lyokat k\u00f6vetik. A gyakorlatban a mikrokontrollerr\u0151l a gazdag\u00e9pnek k\u00fcld\u00f6tt \u00fczenetblokkok soha nem tartalmaznak egyn\u00e9l t\u00f6bb v\u00e1laszt az \u00fczenetblokk tartalm\u00e1ban. V\u00e1ltoz\u00f3 hossz\u00fas\u00e1g\u00fa mennyis\u00e9gek \u00b6 A VLQ k\u00f3dolt eg\u00e9sz sz\u00e1mok \u00e1ltal\u00e1nos form\u00e1tum\u00e1r\u00f3l l\u00e1sd a wikipedia cikket . A Klipper olyan k\u00f3dol\u00e1si s\u00e9m\u00e1t haszn\u00e1l, amely t\u00e1mogatja a pozit\u00edv \u00e9s negat\u00edv eg\u00e9sz sz\u00e1mokat is. A null\u00e1hoz k\u00f6zeli eg\u00e9szek kevesebb b\u00e1jtot haszn\u00e1lnak a k\u00f3dol\u00e1shoz, \u00e9s a pozit\u00edv eg\u00e9szek k\u00f3dol\u00e1sa \u00e1ltal\u00e1ban kevesebb b\u00e1jtot haszn\u00e1l, mint a negat\u00edv eg\u00e9szek\u00e9. A k\u00f6vetkez\u0151 t\u00e1bl\u00e1zat mutatja, hogy az egyes eg\u00e9sz sz\u00e1mok k\u00f3dol\u00e1s\u00e1hoz h\u00e1ny b\u00e1jtra van sz\u00fcks\u00e9g: Eg\u00e9sz K\u00f3dolt m\u00e9ret -32 .. 95 1 -4096 .. 12287 2 -524288 .. 1572863 3 -67108864 .. 201326591 4 -2147483648 .. 4294967295 5 V\u00e1ltoz\u00f3 hossz\u00fas\u00e1g\u00fa karakterl\u00e1ncok \u00b6 A fenti k\u00f3dol\u00e1si szab\u00e1lyok al\u00f3li kiv\u00e9telk\u00e9nt, ha egy parancs vagy v\u00e1lasz param\u00e9tere dinamikus karakterl\u00e1nc, akkor a param\u00e9ter nem egyszer\u0171 VLQ eg\u00e9sz sz\u00e1mk\u00e9nt k\u00f3dol\u00f3dik. Ehelyett a k\u00f3dol\u00e1s \u00fagy t\u00f6rt\u00e9nik, hogy a hosszt VLQ k\u00f3dolt eg\u00e9sz sz\u00e1mk\u00e9nt tov\u00e1bb\u00edtj\u00e1k, amelyet maga a tartalom k\u00f6vet: <VLQ encoded length><n-byte contents> Az adatsz\u00f3t\u00e1rban tal\u00e1lhat\u00f3 parancsle\u00edr\u00e1sok lehet\u0151v\u00e9 teszik a gazdag\u00e9p \u00e9s a mikrokontroller sz\u00e1m\u00e1ra, hogy tudja, mely parancsparam\u00e9terek haszn\u00e1lnak egyszer\u0171 VLQ k\u00f3dol\u00e1st, \u00e9s mely param\u00e9terek string k\u00f3dol\u00e1st. Adatsz\u00f3t\u00e1r \u00b6 Ahhoz, hogy a mikrokontroller \u00e9s a gazdag\u00e9p k\u00f6z\u00f6tt \u00e9rtelmes kommunik\u00e1ci\u00f3 j\u00f6jj\u00f6n l\u00e9tre, mindk\u00e9t f\u00e9lnek meg kell \u00e1llapodnia egy \"adatsz\u00f3t\u00e1rban\". Ez az adatsz\u00f3t\u00e1r tartalmazza a parancsok \u00e9s v\u00e1laszok eg\u00e9sz\u00e9rt\u00e9k\u0171 azonos\u00edt\u00f3it \u00e9s azok le\u00edr\u00e1s\u00e1t. A mikrokontroller buildje a DECL_COMMAND() \u00e9s sendf() makr\u00f3k tartalm\u00e1t haszn\u00e1lja az adatsz\u00f3t\u00e1r l\u00e9trehoz\u00e1s\u00e1hoz. A build automatikusan egyedi azonos\u00edt\u00f3kat rendel minden parancshoz \u00e9s v\u00e1laszhoz. Ez a rendszer lehet\u0151v\u00e9 teszi, hogy a gazdag\u00e9p, \u00e9s a mikrokontroller k\u00f3dja z\u00f6kken\u0151mentesen haszn\u00e1ljon le\u00edr\u00f3, ember \u00e1ltal olvashat\u00f3 neveket, mik\u00f6zben minim\u00e1lis s\u00e1vsz\u00e9less\u00e9get haszn\u00e1l. A gazdag\u00e9p lek\u00e9rdezi az adatsz\u00f3t\u00e1rat, amikor el\u0151sz\u00f6r csatlakozik a mikrokontrollerhez. Amint ez megt\u00f6rt\u00e9nt az adatsz\u00f3t\u00e1rat haszn\u00e1lja az \u00f6sszes parancs k\u00f3dol\u00e1s\u00e1ra \u00e9s a mikrokontroller \u00f6sszes v\u00e1lasz\u00e1nak elemz\u00e9s\u00e9re. A gazdag\u00e9pnek teh\u00e1t dinamikus adatsz\u00f3t\u00e1rat kell kezelnie. A mikrokontroller szoftver\u00e9nek egyszer\u0171s\u00e9g\u00e9nek meg\u0151rz\u00e9se \u00e9rdek\u00e9ben azonban a mikrokontroller mindig a statikus (beford\u00edtott) adatsz\u00f3t\u00e1r\u00e1t haszn\u00e1lja. Az adatsz\u00f3t\u00e1rat a mikrokontrollerhez k\u00fcld\u00f6tt \"azonos\u00edt\u00f3\" parancsok seg\u00edts\u00e9g\u00e9vel lehet lek\u00e9rdezni. A mikrokontroller minden egyes azonos\u00edt\u00f3 parancsra egy \"identify_response\" \u00fczenettel v\u00e1laszol. Mivel erre a k\u00e9t parancsra az adatsz\u00f3t\u00e1r lek\u00e9rdez\u00e9se el\u0151tt van sz\u00fcks\u00e9g, az eg\u00e9sz sz\u00e1mok azonos\u00edt\u00f3i \u00e9s a param\u00e9tert\u00edpusok mind a mikrokontrollerben, mind a gazdag\u00e9pben szorosan k\u00f3dolva vannak. Az \"identify_response\" v\u00e1lasz azonos\u00edt\u00f3ja 0, az \"azonos\u00edt\u00f3\" parancs azonos\u00edt\u00f3ja 1. A kem\u00e9nyen k\u00f3dolt azonos\u00edt\u00f3kon k\u00edv\u00fcl az azonos\u00edt\u00f3 parancs \u00e9s v\u00e1lasz ugyan\u00fagy ker\u00fcl deklar\u00e1l\u00e1sra \u00e9s tov\u00e1bb\u00edt\u00e1sra, mint a t\u00f6bbi parancs \u00e9s v\u00e1lasz. Egyetlen m\u00e1s parancs vagy v\u00e1lasz sincs szorosan k\u00f3dolva. A tov\u00e1bb\u00edtott adatsz\u00f3t\u00e1r form\u00e1tuma egy zlib t\u00f6m\u00f6r\u00edtett JSON karakterl\u00e1nc. A mikrokontroller \u00e9p\u00edt\u00e9si folyamata l\u00e9trehozza a karakterl\u00e1ncot, t\u00f6m\u00f6r\u00edti, \u00e9s a mikrokontroller flash-j\u00e9nek sz\u00f6veges r\u00e9sz\u00e9ben t\u00e1rolja. Az adatsz\u00f3t\u00e1r j\u00f3val nagyobb lehet, mint a maxim\u00e1lis \u00fczenetblokk m\u00e9rete. A gazdag\u00e9p \u00fagy t\u00f6lti le, hogy t\u00f6bb azonos\u00edt\u00f3 parancsot k\u00fcld, amelyek az adatsz\u00f3t\u00e1r progressz\u00edv darabjait k\u00e9rik. Ha az \u00f6sszes darabot megkapta, a gazdag\u00e9p \u00f6ssze\u00e1ll\u00edtja a darabokat, kit\u00f6m\u00f6r\u00edti az adatokat, \u00e9s elemzi a tartalmukat. A kommunik\u00e1ci\u00f3s protokollra vonatkoz\u00f3 inform\u00e1ci\u00f3kon k\u00edv\u00fcl az adatsz\u00f3t\u00e1r tartalmazza a szoftver verzi\u00f3j\u00e1t, a (DECL_ENUMERATION \u00e1ltal meghat\u00e1rozott) felsorol\u00e1sokat \u00e9s a (DECL_CONSTANT \u00e1ltal meghat\u00e1rozott) konstansokat is. \u00dczenet\u00e1raml\u00e1s \u00b6 A gazdag\u00e9pr\u0151l a mikrokontrollerhez k\u00fcld\u00f6tt \u00fczenetparancsok hib\u00e1tlanok. A mikrokontroller ellen\u0151rzi a CRC-t \u00e9s a sorsz\u00e1mokat minden egyes \u00fczenetblokkban, hogy biztos\u00edtsa a parancsok pontoss\u00e1g\u00e1t \u00e9s sorrendis\u00e9g\u00e9t. A mikrokontroller mindig sorrendben dolgozza fel az \u00fczenetblokkokat. Ha a sorrendt\u0151l elt\u00e9r\u0151 blokkot kap, akkor azt \u00e9s a t\u00f6bbi sorrendt\u0151l elt\u00e9r\u0151 blokkot is elveti, m\u00edg helyes sorrend\u0171 blokkokat nem kap. Az alacsony szint\u0171 gazdag\u00e9p k\u00f3d egy automatikus \u00fajrak\u00fcld\u00e9si rendszert val\u00f3s\u00edt meg a mikrokontrollerhez k\u00fcld\u00f6tt elveszett \u00e9s hib\u00e1s \u00fczenetblokkok eset\u00e9ben. Ennek megk\u00f6nny\u00edt\u00e9se \u00e9rdek\u00e9ben a mikrokontroller minden egyes sikeresen fogadott \u00fczenetblokk ut\u00e1n egy \"ack \u00fczenetblokkot\" k\u00fcld. Az \u00e1llom\u00e1s minden egyes blokk elk\u00fcld\u00e9se ut\u00e1n id\u0151korl\u00e1tot \u00e1ll\u00edt be, \u00e9s ha az id\u0151korl\u00e1t lej\u00e1r an\u00e9lk\u00fcl, hogy a megfelel\u0151 \"ack\" \u00fczenetet megkapta volna, akkor \u00fajrak\u00fcldi. Ezen t\u00falmen\u0151en, ha a mikrokontroller hib\u00e1s vagy rendellenes blokkot \u00e9szlel, a gyors \u00fajrak\u00fcld\u00e9s megk\u00f6nny\u00edt\u00e9se \u00e9rdek\u00e9ben egy \"nak \u00fczenetblokkot\" k\u00fcldhet. Az \"ack\" egy \u00fcres tartalm\u00fa (azaz 5 b\u00e1jtos) \u00fczenetblokk, amelynek sorsz\u00e1ma nagyobb, mint az utols\u00f3 fogadott gazdag\u00e9p sorsz\u00e1ma. A \"nak\" egy \u00fcres tartalm\u00fa \u00fczenetblokk, amelynek sorsz\u00e1ma kisebb, mint az utols\u00f3 fogadott gazdag\u00e9p sorsz\u00e1ma. A protokoll megk\u00f6nny\u00edti az \"ablakos\" \u00e1tviteli rendszert, \u00edgy a fogad\u00f3 egyszerre t\u00f6bb f\u00fcgg\u0151ben l\u00e9v\u0151 \u00fczenetblokkal rendelkezhet. (Ez azon a sok parancson k\u00edv\u00fcl, amelyek egy adott \u00fczenetblokkban jelen lehetnek.) Ez lehet\u0151v\u00e9 teszi a s\u00e1vsz\u00e9less\u00e9g maxim\u00e1lis kihaszn\u00e1l\u00e1s\u00e1t m\u00e9g \u00e1tviteli k\u00e9sedelem eset\u00e9n is. Az id\u0151korl\u00e1toz\u00e1s, az \u00fajrak\u00fcld\u00e9s, az ablakoz\u00e1s \u00e9s az ack mechanizmus a TCP hasonl\u00f3 mechanizmusai alapj\u00e1n k\u00e9sz\u00fclt. A m\u00e1sik ir\u00e1nyban a mikrokontrollerr\u0151l a gazdag\u00e9phez k\u00fcld\u00f6tt \u00fczenetblokkokat \u00fagy tervezt\u00e9k, hogy hibamentesek legyenek, de nincs biztos\u00edtott \u00e1tvitel\u00fck. (A v\u00e1laszok nem lehetnek hib\u00e1sak, de el\u0151fordulhat, hogy elt\u0171nnek.) Ez az\u00e9rt t\u00f6rt\u00e9nik, hogy a mikrokontrollerben egyszer\u0171 legyen a megval\u00f3s\u00edt\u00e1s. Nincs automatikus \u00fajrak\u00fcld\u00e9si rendszer a v\u00e1laszok sz\u00e1m\u00e1ra. A magas szint\u0171 k\u00f3dt\u00f3l elv\u00e1rhat\u00f3, hogy k\u00e9pes legyen kezelni az esetenk\u00e9nt hi\u00e1nyz\u00f3 v\u00e1laszokat (\u00e1ltal\u00e1ban a tartalom \u00fajrak\u00e9rdez\u00e9s\u00e9vel vagy a v\u00e1laszk\u00fcld\u00e9s ism\u00e9tl\u0151d\u0151 \u00fctemez\u00e9s\u00e9nek be\u00e1ll\u00edt\u00e1s\u00e1val). Az \u00e1llom\u00e1snak k\u00fcld\u00f6tt \u00fczenetblokkok sorsz\u00e1mmez\u0151je mindig eggyel nagyobb, mint az utols\u00f3, az \u00e1llom\u00e1sr\u00f3l kapott \u00fczenetblokkok sorsz\u00e1ma. Nem a v\u00e1lasz\u00fczenetblokkok sorrendj\u00e9nek nyomon k\u00f6vet\u00e9s\u00e9re szolg\u00e1l.","title":"Protokoll"},{"location":"Protocol.html#protokoll","text":"A Klipper \u00fczenetk\u00fcld\u0151 protokoll a Klipper gazdag\u00e9p szoftver \u00e9s a Klipper mikrovez\u00e9rl\u0151 szoftver k\u00f6z\u00f6tti alacsony szint\u0171 kommunik\u00e1ci\u00f3ra szolg\u00e1l. Magas szinten a protokoll felfoghat\u00f3 parancs \u00e9s v\u00e1laszkarakterl\u00e1ncok sorozat\u00e1nak, amelyeket t\u00f6m\u00f6r\u00edtenek, tov\u00e1bb\u00edtanak, majd feldolgoznak a fogad\u00f3 oldalon. Egy p\u00e9lda parancssorozat t\u00f6m\u00f6r\u00edtetlen, ember \u00e1ltal olvashat\u00f3 form\u00e1tumban \u00edgy n\u00e9zhet ki: set_digital_out pin=PA3 value=1 set_digital_out pin=PA7 value=1 schedule_digital_out oid=8 clock=4000000 value=0 queue_step oid=7 interval=7458 count=10 add=331 queue_step oid=7 interval=11717 count=4 add=1281 Az el\u00e9rhet\u0151 parancsokr\u00f3l az mcu parancsok dokumentumban olvashatsz b\u0151vebben. Tekintsd meg a hibakeres\u00e9s dokumentumot a G-k\u00f3d f\u00e1jl megfelel\u0151, ember \u00e1ltal olvashat\u00f3 mikrovez\u00e9rl\u0151 parancsaira t\u00f6rt\u00e9n\u0151 leford\u00edt\u00e1s\u00e1val kapcsolatban. Ez az oldal mag\u00e1nak a Klipper \u00fczenetk\u00fcld\u0151 protokollnak a magas szint\u0171 le\u00edr\u00e1s\u00e1t tartalmazza. Le\u00edrja az \u00fczenetek deklar\u00e1l\u00e1s\u00e1t, bin\u00e1ris form\u00e1tum\u00fa k\u00f3dol\u00e1s\u00e1t (a s\u00e9ma \"t\u00f6m\u00f6r\u00edt\u00e9s\u00e9t\") \u00e9s tov\u00e1bb\u00edt\u00e1s\u00e1t. A protokoll c\u00e9lja, hogy hibamentes kommunik\u00e1ci\u00f3s csatorn\u00e1t tegyen lehet\u0151v\u00e9 a gazdag\u00e9p \u00e9s a mikrovez\u00e9rl\u0151 k\u00f6z\u00f6tt, amely alacsony k\u00e9sleltet\u00e9s\u0171, alacsony s\u00e1vsz\u00e9less\u00e9g\u0171 \u00e9s alacsony bonyolults\u00e1g\u00fa a mikrovez\u00e9rl\u0151 sz\u00e1m\u00e1ra.","title":"Protokoll"},{"location":"Protocol.html#mikrovezerlo-interfesz","text":"A Klipper \u00e1tviteli protokoll egy RPC mechanizmusnak tekinthet\u0151 a mikrovez\u00e9rl\u0151 \u00e9s a gazdag\u00e9p k\u00f6z\u00f6tt. A mikrovez\u00e9rl\u0151 szoftver deklar\u00e1lja azokat a parancsokat, amelyeket a gazdag\u00e9p megh\u00edvhat, az \u00e1ltala gener\u00e1lt v\u00e1lasz\u00fczenetekkel egy\u00fctt. A gazdag\u00e9p ezeket az inform\u00e1ci\u00f3kat arra haszn\u00e1lja fel, hogy parancsot adjon a mikrokontrollernek a m\u0171veletek v\u00e9grehajt\u00e1s\u00e1ra \u00e9s az eredm\u00e9nyek \u00e9rtelmez\u00e9s\u00e9re.","title":"Mikrovez\u00e9rl\u0151 interf\u00e9sz"},{"location":"Protocol.html#parancsok-deklaralasa","text":"A mikrokontroller szoftvere deklar\u00e1l egy \"parancsot\" a DECL_COMMAND() makr\u00f3 haszn\u00e1lat\u00e1val a C k\u00f3dban. P\u00e9ld\u00e1ul: DECL_COMMAND(command_update_digital_out, \"update_digital_out oid=%c value=%c\"); A fenti egy \"update_digital_out\" nev\u0171 parancsot deklar\u00e1l. Ez lehet\u0151v\u00e9 teszi a gazdag\u00e9p sz\u00e1m\u00e1ra, hogy ezt a parancsot \"invoke\", ami a command_update_digital_out() C f\u00fcggv\u00e9ny v\u00e9grehajt\u00e1s\u00e1t eredm\u00e9nyezi a mikrovez\u00e9rl\u0151ben. A fentiek azt is jelzik, hogy a parancs k\u00e9t eg\u00e9sz param\u00e9tert vesz fel. A command_update_digital_out() C k\u00f3d v\u00e9grehajt\u00e1sakor egy t\u00f6mb ker\u00fcl \u00e1tad\u00e1sra, amely ezt a k\u00e9t eg\u00e9sz sz\u00e1mot tartalmazza. Az els\u0151 az 'oid'-nak, a m\u00e1sodik a 'value'-nak felel meg. \u00c1ltal\u00e1ban a param\u00e9terek le\u00edr\u00e1sa printf() st\u00edlus\u00fa szintaxissal t\u00f6rt\u00e9nik (pl. \"%u\"). A form\u00e1z\u00e1s k\u00f6zvetlen\u00fcl megfelel a parancsok ember \u00e1ltal olvashat\u00f3 n\u00e9zet\u00e9nek (pl. \"update_digital_out oid=7 value=1\"). A fenti p\u00e9ld\u00e1ban a \"value=\" a param\u00e9ter neve, a \"%c\" pedig azt jelzi, hogy a param\u00e9ter eg\u00e9sz sz\u00e1m. Bels\u0151leg a param\u00e9tern\u00e9v csak dokument\u00e1ci\u00f3k\u00e9nt haszn\u00e1latos. Ebben a p\u00e9ld\u00e1ban a \"%c\" is haszn\u00e1lhat\u00f3 dokument\u00e1ci\u00f3k\u00e9nt, amely jelzi, hogy a v\u00e1rt eg\u00e9sz sz\u00e1m 1 b\u00e1jt m\u00e9ret\u0171 (a deklar\u00e1lt eg\u00e9sz sz\u00e1m nem befoly\u00e1solja az elemz\u00e9st vagy a k\u00f3dol\u00e1st). A mikrovez\u00e9rl\u0151 szerkeszt\u0151 \u00f6sszegy\u0171jti a DECL_COMMAND()-al deklar\u00e1lt \u00f6sszes parancsot, meghat\u00e1rozza azok param\u00e9tereit, \u00e9s gondoskodik a megh\u00edv\u00e1sukr\u00f3l.","title":"Parancsok deklar\u00e1l\u00e1sa"},{"location":"Protocol.html#valaszok-deklaralasa","text":"A mikrovez\u00e9rl\u0151t\u0151l a gazdag\u00e9pnek t\u00f6rt\u00e9n\u0151 inform\u00e1ci\u00f3 k\u00fcld\u00e9s\u00e9hez \"v\u00e1lasz\" j\u00f6n l\u00e9tre. Ezek deklar\u00e1l\u00e1sa \u00e9s tov\u00e1bb\u00edt\u00e1sa a sendf() C makr\u00f3 haszn\u00e1lat\u00e1val t\u00f6rt\u00e9nik. P\u00e9ld\u00e1ul: sendf(\"status clock=%u status=%c\", sched_read_time(), sched_is_shutdown()); A fenti egy \"\u00e1llapot\" v\u00e1lasz\u00fczenetet k\u00fcld, amely k\u00e9t eg\u00e9sz param\u00e9tert (\"\u00f3ra\" \u00e9s \"\u00e1llapot\") tartalmaz. A mikrovez\u00e9rl\u0151 szerkeszt\u0151 automatikusan megtal\u00e1lja az \u00f6sszes sendf() h\u00edv\u00e1st, \u00e9s k\u00f3dol\u00f3kat gener\u00e1l hozz\u00e1juk. A sendf() f\u00fcggv\u00e9ny els\u0151 param\u00e9tere \u00edrja le a v\u00e1laszt, \u00e9s form\u00e1tuma megegyezik a parancsdeklar\u00e1ci\u00f3kkal. A gazdag\u00e9p gondoskodhat arr\u00f3l, hogy minden v\u00e1laszhoz visszah\u00edv\u00e1si funkci\u00f3t regisztr\u00e1ljon. Teh\u00e1t val\u00f3j\u00e1ban a parancsok lehet\u0151v\u00e9 teszik a gazdag\u00e9p sz\u00e1m\u00e1ra, hogy megh\u00edvja a C f\u00fcggv\u00e9nyeket a mikrovez\u00e9rl\u0151ben, a v\u00e1laszok pedig lehet\u0151v\u00e9 teszik, hogy a mikrovez\u00e9rl\u0151 szoftvere k\u00f3dot h\u00edvjon meg a gazdag\u00e9pben. A sendf() makr\u00f3 csak parancs vagy feladatkezel\u0151kb\u0151l h\u00edvhat\u00f3 meg, \u00e9s nem h\u00edvhat\u00f3 meg megszak\u00edt\u00e1sokb\u00f3l vagy id\u0151z\u00edt\u0151kb\u0151l. A k\u00f3dnak nem kell sendf()-t kiadnia a kapott parancsra v\u00e1laszul, nincs korl\u00e1tozva a sendf() megh\u00edv\u00e1s\u00e1nak sz\u00e1ma, \u00e9s a sendf()-t b\u00e1rmikor megh\u00edvhatja egy feladatkezel\u0151b\u0151l.","title":"V\u00e1laszok deklar\u00e1l\u00e1sa"},{"location":"Protocol.html#kimeneti-valaszok","text":"A hibakeres\u00e9s egyszer\u0171s\u00edt\u00e9se \u00e9rdek\u00e9ben van egy output() C f\u00fcggv\u00e9ny is. P\u00e9ld\u00e1ul: output(\"The value of %u is %s with size %u.\", x, buf, buf_len); Az output() f\u00fcggv\u00e9ny a printf() f\u00fcggv\u00e9nyhez hasonl\u00f3an haszn\u00e1lhat\u00f3. C\u00e9lja tetsz\u0151leges \u00fczenetek gener\u00e1l\u00e1sa \u00e9s form\u00e1z\u00e1sa emberi feldolgoz\u00e1sra.","title":"Kimeneti v\u00e1laszok"},{"location":"Protocol.html#felsorolasok-deklaralasa","text":"A felsorol\u00e1sok lehet\u0151v\u00e9 teszik a gazdak\u00f3d sz\u00e1m\u00e1ra, hogy a mikrokontroller \u00e1ltal eg\u00e9sz sz\u00e1mokk\u00e9nt kezelt param\u00e9terekhez karakterl\u00e1nc-azonos\u00edt\u00f3kat haszn\u00e1ljon. Ezeket a mikrokontroller k\u00f3dj\u00e1ban kell deklar\u00e1lni - p\u00e9ld\u00e1ul: DECL_ENUMERATION(\"spi_bus\", \"spi\", 0); DECL_ENUMERATION_RANGE(\"pin\", \"PC0\", 16, 8); Ha az els\u0151 p\u00e9ld\u00e1ban a DECL_ENUMERATION() makr\u00f3 felsorol\u00e1st defini\u00e1l minden olyan parancs/v\u00e1lasz \u00fczenethez, amelynek param\u00e9terneve \"spi_bus\" vagy \"_spi_bus\" ut\u00f3taggal rendelkezik. E param\u00e9terek eset\u00e9ben az \"SPI\" karakterl\u00e1nc \u00e9rv\u00e9nyes \u00e9rt\u00e9k, \u00e9s null\u00e1s eg\u00e9sz sz\u00e1m\u00e9rt\u00e9kkel ker\u00fcl tov\u00e1bb\u00edt\u00e1sra. Lehet\u0151s\u00e9g van felsorol\u00e1si tartom\u00e1ny kijel\u00f6l\u00e9s\u00e9re is. A m\u00e1sodik p\u00e9ld\u00e1ban egy \"pin\" param\u00e9ter (vagy b\u00e1rmely param\u00e9ter, amelynek ut\u00f3tagja \"_pin\") elfogadn\u00e1 a PC0, PC1, PC2, ..., PC7 \u00e9rt\u00e9keket. A karakterl\u00e1ncokat a 16, 17, 18, ..., ..., 23 eg\u00e9sz sz\u00e1mokkal kell tov\u00e1bb\u00edtani.","title":"Felsorol\u00e1sok deklar\u00e1l\u00e1sa"},{"location":"Protocol.html#allandok-deklaralasa","text":"A konstansok is export\u00e1lhat\u00f3k. P\u00e9ld\u00e1ul a k\u00f6vetkez\u0151k\u00e9pp: DECL_CONSTANT(\"SERIAL_BAUD\", 250000); egy \"SERIAL_BAUD\" nev\u0171, 250000 \u00e9rt\u00e9k\u0171 konstanst export\u00e1lna a mikrokontrollerb\u0151l a gazdag\u00e9pre. Lehet\u0151s\u00e9g van olyan konstans deklar\u00e1l\u00e1s\u00e1ra is, amely egy karakterl\u00e1nc - p\u00e9ld\u00e1ul: DECL_CONSTANT_STR(\"MCU\", \"pru\");","title":"\u00c1lland\u00f3k deklar\u00e1l\u00e1sa"},{"location":"Protocol.html#alacsony-szintu-uzenetkodolas","text":"A fenti RPC-mechanizmus megval\u00f3s\u00edt\u00e1s\u00e1hoz minden egyes parancs \u00e9s v\u00e1lasz bin\u00e1ris form\u00e1tumba van k\u00f3dolva az \u00e1tvitelhez. Ez a szakasz az \u00e1tviteli rendszert \u00edrja le.","title":"Alacsony szint\u0171 \u00fczenetk\u00f3dol\u00e1s"},{"location":"Protocol.html#uzenetblokkok","text":"A gazdag\u00e9pt\u0151l a mikrovez\u00e9rl\u0151nek \u00e9s ford\u00edtva k\u00fcld\u00f6tt \u00f6sszes adat \"\u00fczenetblokkban\" tal\u00e1lhat\u00f3. Az \u00fczenetblokk k\u00e9t b\u00e1jtos fejl\u00e9ccel \u00e9s h\u00e1rom b\u00e1jtos \u00fczenettel rendelkezik. Az \u00fczenetblokkok form\u00e1tuma a k\u00f6vetkez\u0151: <1 byte length><1 byte sequence><n-byte content><2 byte crc><1 byte sync> A hosszb\u00e1jt tartalmazza az \u00fczenetblokkban l\u00e9v\u0151 b\u00e1jtok sz\u00e1m\u00e1t, bele\u00e9rtve a fejl\u00e9cet \u00e9s a k\u00f6vet\u0151b\u00e1jtokat (\u00edgy az \u00fczenet minim\u00e1lis hossza 5 b\u00e1jt). Az \u00fczenetblokk maxim\u00e1lis hossza jelenleg 64 b\u00e1jt. A szekvencia b\u00e1jt egy 4 bites szekvencia sz\u00e1mot tartalmaz az alacsony rend\u0171 bitekben, a magas rend\u0171 bitek pedig mindig 0x10-et tartalmaznak (a magas rend\u0171 bitek k\u00e9s\u0151bbi haszn\u00e1latra vannak fenntartva). A tartalmi b\u00e1jtok tetsz\u0151leges adatokat tartalmaznak, \u00e9s form\u00e1tumukat a k\u00f6vetkez\u0151 szakasz ismerteti. A crc b\u00e1jtok tartalmazz\u00e1k az \u00fczenetblokk 16 bites CCITT CRC \u00e9rt\u00e9k\u00e9t, bele\u00e9rtve a fejl\u00e9cb\u00e1jtokat, de kiv\u00e9ve az \u00fczenetb\u00e1jtokat. A szinkroniz\u00e1l\u00e1si b\u00e1jt 0x7e. Az \u00fczenetblokk form\u00e1tum\u00e1t a HDLC \u00fczenetkeretek ihlett\u00e9k. A HDLC-hez hasonl\u00f3an az \u00fczenetblokk opcion\u00e1lisan tartalmazhat egy tov\u00e1bbi szinkroniz\u00e1l\u00e1si karaktert a blokk elej\u00e9n. A HDLC-vel ellent\u00e9tben a szinkroniz\u00e1l\u00e1si karakter nem kiz\u00e1r\u00f3lagos a keretben, \u00e9s jelen lehet az \u00fczenetblokk tartalm\u00e1ban.","title":"\u00dczenetblokkok"},{"location":"Protocol.html#uzenetblokk-tartalma","text":"Minden egyes, a gazdag\u00e9pr\u0151l a mikrokontrollernek k\u00fcld\u00f6tt \u00fczenetblokk tartalma nulla vagy t\u00f6bb \u00fczenetparancsb\u00f3l \u00e1ll\u00f3 sorozatot tartalmaz. Minden parancs egy V\u00e1ltoz\u00f3 hossz\u00fas\u00e1g\u00fa mennyis\u00e9g (VLQ) k\u00f3dolt eg\u00e9sz sz\u00e1m\u00fa parancs azonos\u00edt\u00f3val kezd\u0151dik, amelyet az adott parancsra vonatkoz\u00f3 nulla vagy t\u00f6bb VLQ param\u00e9ter k\u00f6vet. A k\u00f6vetkez\u0151 n\u00e9gy parancsot p\u00e9ld\u00e1ul egyetlen \u00fczenetblokkba helyezhetj\u00fck: update_digital_out oid=6 value=1 update_digital_out oid=5 value=0 get_config get_clock \u00e9s a k\u00f6vetkez\u0151 nyolc VLQ eg\u00e9sz sz\u00e1mba k\u00f3dolva: <id_update_digital_out><6><1><id_update_digital_out><5><0><id_get_config><id_get_clock> Az \u00fczenet tartalm\u00e1nak k\u00f3dol\u00e1s\u00e1hoz \u00e9s elemz\u00e9s\u00e9hez a gazdag\u00e9pnek \u00e9s a mikrokontrollernek meg kell egyeznie a parancs azonos\u00edt\u00f3iban \u00e9s az egyes parancsok param\u00e9tereinek sz\u00e1m\u00e1ban. \u00cdgy a fenti p\u00e9ld\u00e1ban mind a gazdag\u00e9p, mind a mikrokontroller tudja, hogy az \"id_update_digital_out\" parancsot mindig k\u00e9t param\u00e9ter k\u00f6veti, \u00e9s az \"id_get_config\" \u00e9s a \"id_get_clock\" parancsnak nulla param\u00e9tere van. A gazdag\u00e9p \u00e9s a mikrokontroller megosztja az \"adatsz\u00f3t\u00e1rat\", amely a parancsle\u00edr\u00e1sokat (pl. \"update_digital_out oid=%c value=%c\") eg\u00e9sz sz\u00e1m\u00fa parancs-azonos\u00edt\u00f3kra k\u00e9pezi le. Az adatok feldolgoz\u00e1sa sor\u00e1n az elemz\u0151 tudni fogja, hogy egy adott parancs-id ut\u00e1n meghat\u00e1rozott sz\u00e1m\u00fa VLQ-k\u00f3dolt param\u00e9tert v\u00e1rjon. A mikrokontrollerr\u0151l a gazdag\u00e9pnek k\u00fcld\u00f6tt blokkok \u00fczenettartalma ugyanezt a form\u00e1tumot k\u00f6veti. Ezekben az \u00fczenetekben szerepl\u0151 azonos\u00edt\u00f3k \"v\u00e1lasz azonos\u00edt\u00f3k\", de ugyanazt a c\u00e9lt szolg\u00e1lj\u00e1k \u00e9s ugyanazokat a k\u00f3dol\u00e1si szab\u00e1lyokat k\u00f6vetik. A gyakorlatban a mikrokontrollerr\u0151l a gazdag\u00e9pnek k\u00fcld\u00f6tt \u00fczenetblokkok soha nem tartalmaznak egyn\u00e9l t\u00f6bb v\u00e1laszt az \u00fczenetblokk tartalm\u00e1ban.","title":"\u00dczenetblokk tartalma"},{"location":"Protocol.html#valtozo-hosszusagu-mennyisegek","text":"A VLQ k\u00f3dolt eg\u00e9sz sz\u00e1mok \u00e1ltal\u00e1nos form\u00e1tum\u00e1r\u00f3l l\u00e1sd a wikipedia cikket . A Klipper olyan k\u00f3dol\u00e1si s\u00e9m\u00e1t haszn\u00e1l, amely t\u00e1mogatja a pozit\u00edv \u00e9s negat\u00edv eg\u00e9sz sz\u00e1mokat is. A null\u00e1hoz k\u00f6zeli eg\u00e9szek kevesebb b\u00e1jtot haszn\u00e1lnak a k\u00f3dol\u00e1shoz, \u00e9s a pozit\u00edv eg\u00e9szek k\u00f3dol\u00e1sa \u00e1ltal\u00e1ban kevesebb b\u00e1jtot haszn\u00e1l, mint a negat\u00edv eg\u00e9szek\u00e9. A k\u00f6vetkez\u0151 t\u00e1bl\u00e1zat mutatja, hogy az egyes eg\u00e9sz sz\u00e1mok k\u00f3dol\u00e1s\u00e1hoz h\u00e1ny b\u00e1jtra van sz\u00fcks\u00e9g: Eg\u00e9sz K\u00f3dolt m\u00e9ret -32 .. 95 1 -4096 .. 12287 2 -524288 .. 1572863 3 -67108864 .. 201326591 4 -2147483648 .. 4294967295 5","title":"V\u00e1ltoz\u00f3 hossz\u00fas\u00e1g\u00fa mennyis\u00e9gek"},{"location":"Protocol.html#valtozo-hosszusagu-karakterlancok","text":"A fenti k\u00f3dol\u00e1si szab\u00e1lyok al\u00f3li kiv\u00e9telk\u00e9nt, ha egy parancs vagy v\u00e1lasz param\u00e9tere dinamikus karakterl\u00e1nc, akkor a param\u00e9ter nem egyszer\u0171 VLQ eg\u00e9sz sz\u00e1mk\u00e9nt k\u00f3dol\u00f3dik. Ehelyett a k\u00f3dol\u00e1s \u00fagy t\u00f6rt\u00e9nik, hogy a hosszt VLQ k\u00f3dolt eg\u00e9sz sz\u00e1mk\u00e9nt tov\u00e1bb\u00edtj\u00e1k, amelyet maga a tartalom k\u00f6vet: <VLQ encoded length><n-byte contents> Az adatsz\u00f3t\u00e1rban tal\u00e1lhat\u00f3 parancsle\u00edr\u00e1sok lehet\u0151v\u00e9 teszik a gazdag\u00e9p \u00e9s a mikrokontroller sz\u00e1m\u00e1ra, hogy tudja, mely parancsparam\u00e9terek haszn\u00e1lnak egyszer\u0171 VLQ k\u00f3dol\u00e1st, \u00e9s mely param\u00e9terek string k\u00f3dol\u00e1st.","title":"V\u00e1ltoz\u00f3 hossz\u00fas\u00e1g\u00fa karakterl\u00e1ncok"},{"location":"Protocol.html#adatszotar","text":"Ahhoz, hogy a mikrokontroller \u00e9s a gazdag\u00e9p k\u00f6z\u00f6tt \u00e9rtelmes kommunik\u00e1ci\u00f3 j\u00f6jj\u00f6n l\u00e9tre, mindk\u00e9t f\u00e9lnek meg kell \u00e1llapodnia egy \"adatsz\u00f3t\u00e1rban\". Ez az adatsz\u00f3t\u00e1r tartalmazza a parancsok \u00e9s v\u00e1laszok eg\u00e9sz\u00e9rt\u00e9k\u0171 azonos\u00edt\u00f3it \u00e9s azok le\u00edr\u00e1s\u00e1t. A mikrokontroller buildje a DECL_COMMAND() \u00e9s sendf() makr\u00f3k tartalm\u00e1t haszn\u00e1lja az adatsz\u00f3t\u00e1r l\u00e9trehoz\u00e1s\u00e1hoz. A build automatikusan egyedi azonos\u00edt\u00f3kat rendel minden parancshoz \u00e9s v\u00e1laszhoz. Ez a rendszer lehet\u0151v\u00e9 teszi, hogy a gazdag\u00e9p, \u00e9s a mikrokontroller k\u00f3dja z\u00f6kken\u0151mentesen haszn\u00e1ljon le\u00edr\u00f3, ember \u00e1ltal olvashat\u00f3 neveket, mik\u00f6zben minim\u00e1lis s\u00e1vsz\u00e9less\u00e9get haszn\u00e1l. A gazdag\u00e9p lek\u00e9rdezi az adatsz\u00f3t\u00e1rat, amikor el\u0151sz\u00f6r csatlakozik a mikrokontrollerhez. Amint ez megt\u00f6rt\u00e9nt az adatsz\u00f3t\u00e1rat haszn\u00e1lja az \u00f6sszes parancs k\u00f3dol\u00e1s\u00e1ra \u00e9s a mikrokontroller \u00f6sszes v\u00e1lasz\u00e1nak elemz\u00e9s\u00e9re. A gazdag\u00e9pnek teh\u00e1t dinamikus adatsz\u00f3t\u00e1rat kell kezelnie. A mikrokontroller szoftver\u00e9nek egyszer\u0171s\u00e9g\u00e9nek meg\u0151rz\u00e9se \u00e9rdek\u00e9ben azonban a mikrokontroller mindig a statikus (beford\u00edtott) adatsz\u00f3t\u00e1r\u00e1t haszn\u00e1lja. Az adatsz\u00f3t\u00e1rat a mikrokontrollerhez k\u00fcld\u00f6tt \"azonos\u00edt\u00f3\" parancsok seg\u00edts\u00e9g\u00e9vel lehet lek\u00e9rdezni. A mikrokontroller minden egyes azonos\u00edt\u00f3 parancsra egy \"identify_response\" \u00fczenettel v\u00e1laszol. Mivel erre a k\u00e9t parancsra az adatsz\u00f3t\u00e1r lek\u00e9rdez\u00e9se el\u0151tt van sz\u00fcks\u00e9g, az eg\u00e9sz sz\u00e1mok azonos\u00edt\u00f3i \u00e9s a param\u00e9tert\u00edpusok mind a mikrokontrollerben, mind a gazdag\u00e9pben szorosan k\u00f3dolva vannak. Az \"identify_response\" v\u00e1lasz azonos\u00edt\u00f3ja 0, az \"azonos\u00edt\u00f3\" parancs azonos\u00edt\u00f3ja 1. A kem\u00e9nyen k\u00f3dolt azonos\u00edt\u00f3kon k\u00edv\u00fcl az azonos\u00edt\u00f3 parancs \u00e9s v\u00e1lasz ugyan\u00fagy ker\u00fcl deklar\u00e1l\u00e1sra \u00e9s tov\u00e1bb\u00edt\u00e1sra, mint a t\u00f6bbi parancs \u00e9s v\u00e1lasz. Egyetlen m\u00e1s parancs vagy v\u00e1lasz sincs szorosan k\u00f3dolva. A tov\u00e1bb\u00edtott adatsz\u00f3t\u00e1r form\u00e1tuma egy zlib t\u00f6m\u00f6r\u00edtett JSON karakterl\u00e1nc. A mikrokontroller \u00e9p\u00edt\u00e9si folyamata l\u00e9trehozza a karakterl\u00e1ncot, t\u00f6m\u00f6r\u00edti, \u00e9s a mikrokontroller flash-j\u00e9nek sz\u00f6veges r\u00e9sz\u00e9ben t\u00e1rolja. Az adatsz\u00f3t\u00e1r j\u00f3val nagyobb lehet, mint a maxim\u00e1lis \u00fczenetblokk m\u00e9rete. A gazdag\u00e9p \u00fagy t\u00f6lti le, hogy t\u00f6bb azonos\u00edt\u00f3 parancsot k\u00fcld, amelyek az adatsz\u00f3t\u00e1r progressz\u00edv darabjait k\u00e9rik. Ha az \u00f6sszes darabot megkapta, a gazdag\u00e9p \u00f6ssze\u00e1ll\u00edtja a darabokat, kit\u00f6m\u00f6r\u00edti az adatokat, \u00e9s elemzi a tartalmukat. A kommunik\u00e1ci\u00f3s protokollra vonatkoz\u00f3 inform\u00e1ci\u00f3kon k\u00edv\u00fcl az adatsz\u00f3t\u00e1r tartalmazza a szoftver verzi\u00f3j\u00e1t, a (DECL_ENUMERATION \u00e1ltal meghat\u00e1rozott) felsorol\u00e1sokat \u00e9s a (DECL_CONSTANT \u00e1ltal meghat\u00e1rozott) konstansokat is.","title":"Adatsz\u00f3t\u00e1r"},{"location":"Protocol.html#uzenetaramlas","text":"A gazdag\u00e9pr\u0151l a mikrokontrollerhez k\u00fcld\u00f6tt \u00fczenetparancsok hib\u00e1tlanok. A mikrokontroller ellen\u0151rzi a CRC-t \u00e9s a sorsz\u00e1mokat minden egyes \u00fczenetblokkban, hogy biztos\u00edtsa a parancsok pontoss\u00e1g\u00e1t \u00e9s sorrendis\u00e9g\u00e9t. A mikrokontroller mindig sorrendben dolgozza fel az \u00fczenetblokkokat. Ha a sorrendt\u0151l elt\u00e9r\u0151 blokkot kap, akkor azt \u00e9s a t\u00f6bbi sorrendt\u0151l elt\u00e9r\u0151 blokkot is elveti, m\u00edg helyes sorrend\u0171 blokkokat nem kap. Az alacsony szint\u0171 gazdag\u00e9p k\u00f3d egy automatikus \u00fajrak\u00fcld\u00e9si rendszert val\u00f3s\u00edt meg a mikrokontrollerhez k\u00fcld\u00f6tt elveszett \u00e9s hib\u00e1s \u00fczenetblokkok eset\u00e9ben. Ennek megk\u00f6nny\u00edt\u00e9se \u00e9rdek\u00e9ben a mikrokontroller minden egyes sikeresen fogadott \u00fczenetblokk ut\u00e1n egy \"ack \u00fczenetblokkot\" k\u00fcld. Az \u00e1llom\u00e1s minden egyes blokk elk\u00fcld\u00e9se ut\u00e1n id\u0151korl\u00e1tot \u00e1ll\u00edt be, \u00e9s ha az id\u0151korl\u00e1t lej\u00e1r an\u00e9lk\u00fcl, hogy a megfelel\u0151 \"ack\" \u00fczenetet megkapta volna, akkor \u00fajrak\u00fcldi. Ezen t\u00falmen\u0151en, ha a mikrokontroller hib\u00e1s vagy rendellenes blokkot \u00e9szlel, a gyors \u00fajrak\u00fcld\u00e9s megk\u00f6nny\u00edt\u00e9se \u00e9rdek\u00e9ben egy \"nak \u00fczenetblokkot\" k\u00fcldhet. Az \"ack\" egy \u00fcres tartalm\u00fa (azaz 5 b\u00e1jtos) \u00fczenetblokk, amelynek sorsz\u00e1ma nagyobb, mint az utols\u00f3 fogadott gazdag\u00e9p sorsz\u00e1ma. A \"nak\" egy \u00fcres tartalm\u00fa \u00fczenetblokk, amelynek sorsz\u00e1ma kisebb, mint az utols\u00f3 fogadott gazdag\u00e9p sorsz\u00e1ma. A protokoll megk\u00f6nny\u00edti az \"ablakos\" \u00e1tviteli rendszert, \u00edgy a fogad\u00f3 egyszerre t\u00f6bb f\u00fcgg\u0151ben l\u00e9v\u0151 \u00fczenetblokkal rendelkezhet. (Ez azon a sok parancson k\u00edv\u00fcl, amelyek egy adott \u00fczenetblokkban jelen lehetnek.) Ez lehet\u0151v\u00e9 teszi a s\u00e1vsz\u00e9less\u00e9g maxim\u00e1lis kihaszn\u00e1l\u00e1s\u00e1t m\u00e9g \u00e1tviteli k\u00e9sedelem eset\u00e9n is. Az id\u0151korl\u00e1toz\u00e1s, az \u00fajrak\u00fcld\u00e9s, az ablakoz\u00e1s \u00e9s az ack mechanizmus a TCP hasonl\u00f3 mechanizmusai alapj\u00e1n k\u00e9sz\u00fclt. A m\u00e1sik ir\u00e1nyban a mikrokontrollerr\u0151l a gazdag\u00e9phez k\u00fcld\u00f6tt \u00fczenetblokkokat \u00fagy tervezt\u00e9k, hogy hibamentesek legyenek, de nincs biztos\u00edtott \u00e1tvitel\u00fck. (A v\u00e1laszok nem lehetnek hib\u00e1sak, de el\u0151fordulhat, hogy elt\u0171nnek.) Ez az\u00e9rt t\u00f6rt\u00e9nik, hogy a mikrokontrollerben egyszer\u0171 legyen a megval\u00f3s\u00edt\u00e1s. Nincs automatikus \u00fajrak\u00fcld\u00e9si rendszer a v\u00e1laszok sz\u00e1m\u00e1ra. A magas szint\u0171 k\u00f3dt\u00f3l elv\u00e1rhat\u00f3, hogy k\u00e9pes legyen kezelni az esetenk\u00e9nt hi\u00e1nyz\u00f3 v\u00e1laszokat (\u00e1ltal\u00e1ban a tartalom \u00fajrak\u00e9rdez\u00e9s\u00e9vel vagy a v\u00e1laszk\u00fcld\u00e9s ism\u00e9tl\u0151d\u0151 \u00fctemez\u00e9s\u00e9nek be\u00e1ll\u00edt\u00e1s\u00e1val). Az \u00e1llom\u00e1snak k\u00fcld\u00f6tt \u00fczenetblokkok sorsz\u00e1mmez\u0151je mindig eggyel nagyobb, mint az utols\u00f3, az \u00e1llom\u00e1sr\u00f3l kapott \u00fczenetblokkok sorsz\u00e1ma. Nem a v\u00e1lasz\u00fczenetblokkok sorrendj\u00e9nek nyomon k\u00f6vet\u00e9s\u00e9re szolg\u00e1l.","title":"\u00dczenet\u00e1raml\u00e1s"},{"location":"RPi_microcontroller.html","text":"RPi mikrokontroller \u00b6 Ez a dokumentum le\u00edrja a Klipper futtat\u00e1s\u00e1nak folyamat\u00e1t egy RPi-n, \u00e9s ugyanazt az RPi-t haszn\u00e1lja m\u00e1sodlagos MCU-k\u00e9nt. Mi\u00e9rt \u00e9rdemes az RPi-t m\u00e1sodlagos MCU-k\u00e9nt haszn\u00e1lni? \u00b6 A 3D nyomtat\u00f3k vez\u00e9rl\u00e9s\u00e9re szolg\u00e1l\u00f3 MCU-k gyakran korl\u00e1tozott \u00e9s el\u0151re konfigur\u00e1lt sz\u00e1m\u00fa szabad kimenettel rendelkeznek a f\u0151 nyomtat\u00e1si funkci\u00f3k (h\u0151ellen\u00e1ll\u00e1sok, extruderek, l\u00e9ptet\u0151k stb.) kezel\u00e9s\u00e9re. Az RPi haszn\u00e1lata, ahol a Klipper m\u00e1sodlagos MCU-k\u00e9nt van telep\u00edtve, lehet\u0151v\u00e9 teszi a GPIO-k \u00e9s az RPi kimeneteinek (I2C, SPI) k\u00f6zvetlen haszn\u00e1lat\u00e1t a klipperben an\u00e9lk\u00fcl, hogy Octoprint b\u0151v\u00edtm\u00e9nyeket (ha van ilyen) vagy k\u00fcls\u0151 programokat haszn\u00e1lva, amelyek lehet\u0151v\u00e9 teszik, hogy mindent vez\u00e9reljen a Klipper-en bel\u00fcl a nyomtat\u00e1si G-k\u00f3d. Figyelmeztet\u00e9s : Ha a platformod egy Beaglebone , \u00e9s helyesen k\u00f6vetted a telep\u00edt\u00e9s l\u00e9p\u00e9seit, a Linux MCU m\u00e1r telep\u00edtve \u00e9s konfigur\u00e1lva van a rendszeredhez. Az rc szkript telep\u00edt\u00e9se \u00b6 Ha a gazdag\u00e9pet m\u00e1sodlagos MCU-k\u00e9nt szeretn\u00e9d haszn\u00e1lni, a klipper_mcu folyamatnak a klippy folyamat el\u0151tt kell futnia. A Klipper telep\u00edt\u00e9se ut\u00e1n telep\u00edtse a szkriptet. run: cd ~/klipper/ sudo cp \"./scripts/klipper-mcu-start.sh\" /etc/init.d/klipper_mcu sudo update-rc.d klipper_mcu defaults A mikrokontroller k\u00f3dj\u00e1nak elk\u00e9sz\u00edt\u00e9se \u00b6 A Klipper mikrokontroller k\u00f3dj\u00e1nak leford\u00edt\u00e1s\u00e1hoz kezd a \"Linux folyamat\" konfigur\u00e1l\u00e1s\u00e1val: cd ~/klipper/ make menuconfig A men\u00fcben \u00e1ll\u00edtsd be a \"Mikrokontroller architekt\u00fara\" \u00e9rt\u00e9ket \"Linux process,\"-re, majd mentsd \u00e9s l\u00e9pj ki. Az \u00faj mikrokontroller k\u00f3dj\u00e1nak elk\u00e9sz\u00edt\u00e9s\u00e9hez \u00e9s telep\u00edt\u00e9s\u00e9hez futtassa a k\u00f6vetkez\u0151t: sudo service klipper stop make flash sudo service klipper start Ha a klippy.log a /tmp/klipper_host_mcu -hoz val\u00f3 kapcsol\u00f3d\u00e1si k\u00eds\u00e9rletn\u00e9l \"Permission denied\" hib\u00e1t jelez, akkor a felhaszn\u00e1l\u00f3t hozz\u00e1 kell adnia a tty csoporthoz. A k\u00f6vetkez\u0151 parancs hozz\u00e1adja a \"pi\" felhaszn\u00e1l\u00f3t a tty csoporthoz: sudo usermod -a -G tty pi H\u00e1tralev\u0151 konfigur\u00e1ci\u00f3 \u00b6 Fejezze be a telep\u00edt\u00e9st a Klipper m\u00e1sodlagos MCU konfigur\u00e1l\u00e1s\u00e1val a RaspberryPi minta konfigur\u00e1ci\u00f3 \u00e9s a Multi MCU minta konfigur\u00e1ci\u00f3 utas\u00edt\u00e1sai szerint. V\u00e1laszthat\u00f3: SPI enged\u00e9lyez\u00e9se \u00b6 Gy\u0151z\u0151dj\u00fcnk meg r\u00f3la, hogy a Linux SPI-illeszt\u0151program enged\u00e9lyezve van a sudo raspi-config futtat\u00e1s\u00e1val \u00e9s az SPI enged\u00e9lyez\u00e9s\u00e9vel az \"Interfacing options\" men\u00fcben. V\u00e1laszthat\u00f3: I2C enged\u00e9lyez\u00e9se \u00b6 Gy\u0151z\u0151dj\u00fcnk meg r\u00f3la, hogy a Linux I2C illeszt\u0151program enged\u00e9lyezve van a sudo raspi-config futtat\u00e1s\u00e1val \u00e9s az I2C enged\u00e9lyez\u00e9s\u00e9vel az \"Interfacing options\" men\u00fcben. Ha az MPU gyorsul\u00e1sm\u00e9r\u0151j\u00e9nek I2C haszn\u00e1lat\u00e1t tervezz\u00fck, akkor a \u00e1tviteli sebess\u00e9get is 400000-re kell \u00e1ll\u00edtani a k\u00f6vetkez\u0151 m\u00f3don: dtparam=i2c_arm=on,i2c_arm_baudrate=400000 hozz\u00e1ad\u00e1sa/elhagy\u00e1sa a /boot/config-ban.txt (vagy /boot/firmware/config.txt n\u00e9h\u00e1ny disztr\u00f3ban). V\u00e1laszthat\u00f3: A megfelel\u0151 GPIO chip azonos\u00edt\u00e1sa \u00b6 A Raspberry Pi-n \u00e9s sok kl\u00f3non a GPIO-n l\u00e1that\u00f3 t\u0171k az els\u0151 GPIO chiphez tartoznak. Ez\u00e9rt a klipperben egyszer\u0171en \u00fagy haszn\u00e1lhat\u00f3k, hogy a gpio0..n n\u00e9vvel hivatkozunk r\u00e1juk. Vannak azonban olyan esetek, amikor a kitett t\u0171k az els\u0151t\u0151l elt\u00e9r\u0151 GPIO chipekhez tartoznak. P\u00e9ld\u00e1ul egyes OrangePi modellek eset\u00e9ben, vagy ha Port Expander-t haszn\u00e1lunk. Ezekben az esetekben hasznos a Linux GPIO karakteres eszk\u00f6z Linux GPIO eszk\u00f6z* el\u00e9r\u00e9s\u00e9re szolg\u00e1l\u00f3 parancsok haszn\u00e1lata a konfigur\u00e1ci\u00f3 ellen\u0151rz\u00e9s\u00e9hez. A Linux GPIO character device - binary telep\u00edt\u00e9s\u00e9hez egy debian alap\u00fa disztrib\u00faci\u00f3 kell, mint p\u00e9ld\u00e1ul az octopi. Futtassa: sudo apt-get install gpiod A rendelkez\u00e9sre \u00e1ll\u00f3 GPIO chip ellen\u0151rz\u00e9s\u00e9hez futtassa: gpiodetect A t\u0171 sz\u00e1m\u00e1nak \u00e9s a t\u0171 el\u00e9rhet\u0151s\u00e9g\u00e9nek ellen\u0151rz\u00e9s\u00e9re futtassa: gpioinfo A kiv\u00e1lasztott t\u0171 \u00edgy a konfigur\u00e1ci\u00f3n bel\u00fcl gpiochip<n>/gpio<o> n\u00e9ven haszn\u00e1lhat\u00f3; ahol n a gpiodetect \u00e1ltal l\u00e1tott chipsz\u00e1m parancs \u00e1ltal l\u00e1tott sorsz\u00e1m, \u00e9s o a gpioinfo parancs \u00e1ltal l\u00e1tott sorsz\u00e1m. Figyelmeztet\u00e9s: csak unused jel\u00f6l\u00e9ssel rendelkez\u0151 GPIO haszn\u00e1lhat\u00f3. A line nem haszn\u00e1lhat\u00f3 egyszerre t\u00f6bb folyamatban. P\u00e9ld\u00e1ul egy RPi 3B+, ahol a klipper haszn\u00e1lja a GPIO20-at, egy kapcsol\u00f3: $ gpiodetect gpiochip0 [pinctrl-bcm2835] (54 lines) gpiochip1 [raspberrypi-exp-gpio] (8 lines) $ gpioinfo gpiochip0 - 54 lines: line 0: unnamed unused input active-high line 1: unnamed unused input active-high line 2: unnamed unused input active-high line 3: unnamed unused input active-high line 4: unnamed unused input active-high line 5: unnamed unused input active-high line 6: unnamed unused input active-high line 7: unnamed unused input active-high line 8: unnamed unused input active-high line 9: unnamed unused input active-high line 10: unnamed unused input active-high line 11: unnamed unused input active-high line 12: unnamed unused input active-high line 13: unnamed unused input active-high line 14: unnamed unused input active-high line 15: unnamed unused input active-high line 16: unnamed unused input active-high line 17: unnamed unused input active-high line 18: unnamed unused input active-high line 19: unnamed unused input active-high line 20: unnamed \"klipper\" output active-high [used] line 21: unnamed unused input active-high line 22: unnamed unused input active-high line 23: unnamed unused input active-high line 24: unnamed unused input active-high line 25: unnamed unused input active-high line 26: unnamed unused input active-high line 27: unnamed unused input active-high line 28: unnamed unused input active-high line 29: unnamed \"led0\" output active-high [used] line 30: unnamed unused input active-high line 31: unnamed unused input active-high line 32: unnamed unused input active-high line 33: unnamed unused input active-high line 34: unnamed unused input active-high line 35: unnamed unused input active-high line 36: unnamed unused input active-high line 37: unnamed unused input active-high line 38: unnamed unused input active-high line 39: unnamed unused input active-high line 40: unnamed unused input active-high line 41: unnamed unused input active-high line 42: unnamed unused input active-high line 43: unnamed unused input active-high line 44: unnamed unused input active-high line 45: unnamed unused input active-high line 46: unnamed unused input active-high line 47: unnamed unused input active-high line 48: unnamed unused input active-high line 49: unnamed unused input active-high line 50: unnamed unused input active-high line 51: unnamed unused input active-high line 52: unnamed unused input active-high line 53: unnamed unused input active-high gpiochip1 - 8 lines: line 0: unnamed unused input active-high line 1: unnamed unused input active-high line 2: unnamed \"led1\" output active-low [used] line 3: unnamed unused input active-high line 4: unnamed unused input active-high line 5: unnamed unused input active-high line 6: unnamed unused input active-high line 7: unnamed unused input active-high V\u00e1laszthat\u00f3: Hardveres PWM \u00b6 A Raspberry Pi k\u00e9t PWM csatorn\u00e1val (PWM0 \u00e9s PWM1) rendelkezik, amelyek a fejl\u00e9cen l\u00e1that\u00f3k, vagy ha nem, akkor a megl\u00e9v\u0151 GPIO \u00e9rintkez\u0151kh\u00f6z ir\u00e1ny\u00edthat\u00f3k. A Linux mcu d\u00e9mon a pwmchip sysfs interf\u00e9szt haszn\u00e1lja a hardveres PWM eszk\u00f6z\u00f6k vez\u00e9rl\u00e9s\u00e9re a Linux gazdag\u00e9peken. A PWM sysfs interf\u00e9sz alap\u00e9rtelmez\u00e9s szerint nincs kit\u00e9ve a Raspberry-n, \u00e9s a /boot/config.txt egy sor hozz\u00e1ad\u00e1s\u00e1val aktiv\u00e1lhat\u00f3: # A pwmchip sysfs fel\u00fclet enged\u00e9lyez\u00e9se dtoverlay=pwm,pin=12,func=4 Ez a p\u00e9lda csak a PWM0-t enged\u00e9lyezi, \u00e9s a GPIO12-re ir\u00e1ny\u00edtja. Ha mindk\u00e9t PWM csatorn\u00e1t enged\u00e9lyezni kell, haszn\u00e1lhatod a pwm-2chan parancsot. Az \u00e1tfed\u00e9s nem teszi ki a PWM sort a sysfs-en a rendszerind\u00edt\u00e1skor, \u00e9s azt a PWM csatorna sz\u00e1m\u00e1t a /sys/class/pwm/pwmchip0/export echo'ing-be kell export\u00e1lni: echo 0 > /sys/class/pwm/pwmchip0/export Ez l\u00e9trehozza a /sys/class/pwm/pwmchip0/pwm0 eszk\u00f6zt a f\u00e1jlrendszerben. A legegyszer\u0171bb, ha ezt a /etc/rc.local sor el\u0151tt az exit 0 sorba \u00edrjuk be. Ha a sysfs a hely\u00e9n van, akkor most m\u00e1r haszn\u00e1lhatod a PWM csatorn\u00e1t vagy csatorn\u00e1kat, ha a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3t hozz\u00e1adod a printer.cfg f\u00e1jlhoz: [output_pin caselight] pin: host:pwmchip0/pwm0 pwm: True hardware_pwm: True cycle_time: 0.000001 Ez hozz\u00e1adja a hardveres PWM vez\u00e9rl\u00e9st a Pi GPIO12-h\u00f6z (mivel az \u00e1tfed\u00e9s \u00fagy volt konfigur\u00e1lva, hogy a PWM0-t a pin=12-re ir\u00e1ny\u00edtsa). A PWM0 a GPIO12 \u00e9s a GPIO18 a PWM1 a GPIO13 \u00e9s a GPIO19 fel\u00e9 ir\u00e1ny\u00edthat\u00f3: PWM gpio PIN Func 0 12 4 0 18 2 1 13 4 1 19 2","title":"RPi mikrokontroller"},{"location":"RPi_microcontroller.html#rpi-mikrokontroller","text":"Ez a dokumentum le\u00edrja a Klipper futtat\u00e1s\u00e1nak folyamat\u00e1t egy RPi-n, \u00e9s ugyanazt az RPi-t haszn\u00e1lja m\u00e1sodlagos MCU-k\u00e9nt.","title":"RPi mikrokontroller"},{"location":"RPi_microcontroller.html#miert-erdemes-az-rpi-t-masodlagos-mcu-kent-hasznalni","text":"A 3D nyomtat\u00f3k vez\u00e9rl\u00e9s\u00e9re szolg\u00e1l\u00f3 MCU-k gyakran korl\u00e1tozott \u00e9s el\u0151re konfigur\u00e1lt sz\u00e1m\u00fa szabad kimenettel rendelkeznek a f\u0151 nyomtat\u00e1si funkci\u00f3k (h\u0151ellen\u00e1ll\u00e1sok, extruderek, l\u00e9ptet\u0151k stb.) kezel\u00e9s\u00e9re. Az RPi haszn\u00e1lata, ahol a Klipper m\u00e1sodlagos MCU-k\u00e9nt van telep\u00edtve, lehet\u0151v\u00e9 teszi a GPIO-k \u00e9s az RPi kimeneteinek (I2C, SPI) k\u00f6zvetlen haszn\u00e1lat\u00e1t a klipperben an\u00e9lk\u00fcl, hogy Octoprint b\u0151v\u00edtm\u00e9nyeket (ha van ilyen) vagy k\u00fcls\u0151 programokat haszn\u00e1lva, amelyek lehet\u0151v\u00e9 teszik, hogy mindent vez\u00e9reljen a Klipper-en bel\u00fcl a nyomtat\u00e1si G-k\u00f3d. Figyelmeztet\u00e9s : Ha a platformod egy Beaglebone , \u00e9s helyesen k\u00f6vetted a telep\u00edt\u00e9s l\u00e9p\u00e9seit, a Linux MCU m\u00e1r telep\u00edtve \u00e9s konfigur\u00e1lva van a rendszeredhez.","title":"Mi\u00e9rt \u00e9rdemes az RPi-t m\u00e1sodlagos MCU-k\u00e9nt haszn\u00e1lni?"},{"location":"RPi_microcontroller.html#az-rc-szkript-telepitese","text":"Ha a gazdag\u00e9pet m\u00e1sodlagos MCU-k\u00e9nt szeretn\u00e9d haszn\u00e1lni, a klipper_mcu folyamatnak a klippy folyamat el\u0151tt kell futnia. A Klipper telep\u00edt\u00e9se ut\u00e1n telep\u00edtse a szkriptet. run: cd ~/klipper/ sudo cp \"./scripts/klipper-mcu-start.sh\" /etc/init.d/klipper_mcu sudo update-rc.d klipper_mcu defaults","title":"Az rc szkript telep\u00edt\u00e9se"},{"location":"RPi_microcontroller.html#a-mikrokontroller-kodjanak-elkeszitese","text":"A Klipper mikrokontroller k\u00f3dj\u00e1nak leford\u00edt\u00e1s\u00e1hoz kezd a \"Linux folyamat\" konfigur\u00e1l\u00e1s\u00e1val: cd ~/klipper/ make menuconfig A men\u00fcben \u00e1ll\u00edtsd be a \"Mikrokontroller architekt\u00fara\" \u00e9rt\u00e9ket \"Linux process,\"-re, majd mentsd \u00e9s l\u00e9pj ki. Az \u00faj mikrokontroller k\u00f3dj\u00e1nak elk\u00e9sz\u00edt\u00e9s\u00e9hez \u00e9s telep\u00edt\u00e9s\u00e9hez futtassa a k\u00f6vetkez\u0151t: sudo service klipper stop make flash sudo service klipper start Ha a klippy.log a /tmp/klipper_host_mcu -hoz val\u00f3 kapcsol\u00f3d\u00e1si k\u00eds\u00e9rletn\u00e9l \"Permission denied\" hib\u00e1t jelez, akkor a felhaszn\u00e1l\u00f3t hozz\u00e1 kell adnia a tty csoporthoz. A k\u00f6vetkez\u0151 parancs hozz\u00e1adja a \"pi\" felhaszn\u00e1l\u00f3t a tty csoporthoz: sudo usermod -a -G tty pi","title":"A mikrokontroller k\u00f3dj\u00e1nak elk\u00e9sz\u00edt\u00e9se"},{"location":"RPi_microcontroller.html#hatralevo-konfiguracio","text":"Fejezze be a telep\u00edt\u00e9st a Klipper m\u00e1sodlagos MCU konfigur\u00e1l\u00e1s\u00e1val a RaspberryPi minta konfigur\u00e1ci\u00f3 \u00e9s a Multi MCU minta konfigur\u00e1ci\u00f3 utas\u00edt\u00e1sai szerint.","title":"H\u00e1tralev\u0151 konfigur\u00e1ci\u00f3"},{"location":"RPi_microcontroller.html#valaszthato-spi-engedelyezese","text":"Gy\u0151z\u0151dj\u00fcnk meg r\u00f3la, hogy a Linux SPI-illeszt\u0151program enged\u00e9lyezve van a sudo raspi-config futtat\u00e1s\u00e1val \u00e9s az SPI enged\u00e9lyez\u00e9s\u00e9vel az \"Interfacing options\" men\u00fcben.","title":"V\u00e1laszthat\u00f3: SPI enged\u00e9lyez\u00e9se"},{"location":"RPi_microcontroller.html#valaszthato-i2c-engedelyezese","text":"Gy\u0151z\u0151dj\u00fcnk meg r\u00f3la, hogy a Linux I2C illeszt\u0151program enged\u00e9lyezve van a sudo raspi-config futtat\u00e1s\u00e1val \u00e9s az I2C enged\u00e9lyez\u00e9s\u00e9vel az \"Interfacing options\" men\u00fcben. Ha az MPU gyorsul\u00e1sm\u00e9r\u0151j\u00e9nek I2C haszn\u00e1lat\u00e1t tervezz\u00fck, akkor a \u00e1tviteli sebess\u00e9get is 400000-re kell \u00e1ll\u00edtani a k\u00f6vetkez\u0151 m\u00f3don: dtparam=i2c_arm=on,i2c_arm_baudrate=400000 hozz\u00e1ad\u00e1sa/elhagy\u00e1sa a /boot/config-ban.txt (vagy /boot/firmware/config.txt n\u00e9h\u00e1ny disztr\u00f3ban).","title":"V\u00e1laszthat\u00f3: I2C enged\u00e9lyez\u00e9se"},{"location":"RPi_microcontroller.html#valaszthato-a-megfelelo-gpio-chip-azonositasa","text":"A Raspberry Pi-n \u00e9s sok kl\u00f3non a GPIO-n l\u00e1that\u00f3 t\u0171k az els\u0151 GPIO chiphez tartoznak. Ez\u00e9rt a klipperben egyszer\u0171en \u00fagy haszn\u00e1lhat\u00f3k, hogy a gpio0..n n\u00e9vvel hivatkozunk r\u00e1juk. Vannak azonban olyan esetek, amikor a kitett t\u0171k az els\u0151t\u0151l elt\u00e9r\u0151 GPIO chipekhez tartoznak. P\u00e9ld\u00e1ul egyes OrangePi modellek eset\u00e9ben, vagy ha Port Expander-t haszn\u00e1lunk. Ezekben az esetekben hasznos a Linux GPIO karakteres eszk\u00f6z Linux GPIO eszk\u00f6z* el\u00e9r\u00e9s\u00e9re szolg\u00e1l\u00f3 parancsok haszn\u00e1lata a konfigur\u00e1ci\u00f3 ellen\u0151rz\u00e9s\u00e9hez. A Linux GPIO character device - binary telep\u00edt\u00e9s\u00e9hez egy debian alap\u00fa disztrib\u00faci\u00f3 kell, mint p\u00e9ld\u00e1ul az octopi. Futtassa: sudo apt-get install gpiod A rendelkez\u00e9sre \u00e1ll\u00f3 GPIO chip ellen\u0151rz\u00e9s\u00e9hez futtassa: gpiodetect A t\u0171 sz\u00e1m\u00e1nak \u00e9s a t\u0171 el\u00e9rhet\u0151s\u00e9g\u00e9nek ellen\u0151rz\u00e9s\u00e9re futtassa: gpioinfo A kiv\u00e1lasztott t\u0171 \u00edgy a konfigur\u00e1ci\u00f3n bel\u00fcl gpiochip<n>/gpio<o> n\u00e9ven haszn\u00e1lhat\u00f3; ahol n a gpiodetect \u00e1ltal l\u00e1tott chipsz\u00e1m parancs \u00e1ltal l\u00e1tott sorsz\u00e1m, \u00e9s o a gpioinfo parancs \u00e1ltal l\u00e1tott sorsz\u00e1m. Figyelmeztet\u00e9s: csak unused jel\u00f6l\u00e9ssel rendelkez\u0151 GPIO haszn\u00e1lhat\u00f3. A line nem haszn\u00e1lhat\u00f3 egyszerre t\u00f6bb folyamatban. P\u00e9ld\u00e1ul egy RPi 3B+, ahol a klipper haszn\u00e1lja a GPIO20-at, egy kapcsol\u00f3: $ gpiodetect gpiochip0 [pinctrl-bcm2835] (54 lines) gpiochip1 [raspberrypi-exp-gpio] (8 lines) $ gpioinfo gpiochip0 - 54 lines: line 0: unnamed unused input active-high line 1: unnamed unused input active-high line 2: unnamed unused input active-high line 3: unnamed unused input active-high line 4: unnamed unused input active-high line 5: unnamed unused input active-high line 6: unnamed unused input active-high line 7: unnamed unused input active-high line 8: unnamed unused input active-high line 9: unnamed unused input active-high line 10: unnamed unused input active-high line 11: unnamed unused input active-high line 12: unnamed unused input active-high line 13: unnamed unused input active-high line 14: unnamed unused input active-high line 15: unnamed unused input active-high line 16: unnamed unused input active-high line 17: unnamed unused input active-high line 18: unnamed unused input active-high line 19: unnamed unused input active-high line 20: unnamed \"klipper\" output active-high [used] line 21: unnamed unused input active-high line 22: unnamed unused input active-high line 23: unnamed unused input active-high line 24: unnamed unused input active-high line 25: unnamed unused input active-high line 26: unnamed unused input active-high line 27: unnamed unused input active-high line 28: unnamed unused input active-high line 29: unnamed \"led0\" output active-high [used] line 30: unnamed unused input active-high line 31: unnamed unused input active-high line 32: unnamed unused input active-high line 33: unnamed unused input active-high line 34: unnamed unused input active-high line 35: unnamed unused input active-high line 36: unnamed unused input active-high line 37: unnamed unused input active-high line 38: unnamed unused input active-high line 39: unnamed unused input active-high line 40: unnamed unused input active-high line 41: unnamed unused input active-high line 42: unnamed unused input active-high line 43: unnamed unused input active-high line 44: unnamed unused input active-high line 45: unnamed unused input active-high line 46: unnamed unused input active-high line 47: unnamed unused input active-high line 48: unnamed unused input active-high line 49: unnamed unused input active-high line 50: unnamed unused input active-high line 51: unnamed unused input active-high line 52: unnamed unused input active-high line 53: unnamed unused input active-high gpiochip1 - 8 lines: line 0: unnamed unused input active-high line 1: unnamed unused input active-high line 2: unnamed \"led1\" output active-low [used] line 3: unnamed unused input active-high line 4: unnamed unused input active-high line 5: unnamed unused input active-high line 6: unnamed unused input active-high line 7: unnamed unused input active-high","title":"V\u00e1laszthat\u00f3: A megfelel\u0151 GPIO chip azonos\u00edt\u00e1sa"},{"location":"RPi_microcontroller.html#valaszthato-hardveres-pwm","text":"A Raspberry Pi k\u00e9t PWM csatorn\u00e1val (PWM0 \u00e9s PWM1) rendelkezik, amelyek a fejl\u00e9cen l\u00e1that\u00f3k, vagy ha nem, akkor a megl\u00e9v\u0151 GPIO \u00e9rintkez\u0151kh\u00f6z ir\u00e1ny\u00edthat\u00f3k. A Linux mcu d\u00e9mon a pwmchip sysfs interf\u00e9szt haszn\u00e1lja a hardveres PWM eszk\u00f6z\u00f6k vez\u00e9rl\u00e9s\u00e9re a Linux gazdag\u00e9peken. A PWM sysfs interf\u00e9sz alap\u00e9rtelmez\u00e9s szerint nincs kit\u00e9ve a Raspberry-n, \u00e9s a /boot/config.txt egy sor hozz\u00e1ad\u00e1s\u00e1val aktiv\u00e1lhat\u00f3: # A pwmchip sysfs fel\u00fclet enged\u00e9lyez\u00e9se dtoverlay=pwm,pin=12,func=4 Ez a p\u00e9lda csak a PWM0-t enged\u00e9lyezi, \u00e9s a GPIO12-re ir\u00e1ny\u00edtja. Ha mindk\u00e9t PWM csatorn\u00e1t enged\u00e9lyezni kell, haszn\u00e1lhatod a pwm-2chan parancsot. Az \u00e1tfed\u00e9s nem teszi ki a PWM sort a sysfs-en a rendszerind\u00edt\u00e1skor, \u00e9s azt a PWM csatorna sz\u00e1m\u00e1t a /sys/class/pwm/pwmchip0/export echo'ing-be kell export\u00e1lni: echo 0 > /sys/class/pwm/pwmchip0/export Ez l\u00e9trehozza a /sys/class/pwm/pwmchip0/pwm0 eszk\u00f6zt a f\u00e1jlrendszerben. A legegyszer\u0171bb, ha ezt a /etc/rc.local sor el\u0151tt az exit 0 sorba \u00edrjuk be. Ha a sysfs a hely\u00e9n van, akkor most m\u00e1r haszn\u00e1lhatod a PWM csatorn\u00e1t vagy csatorn\u00e1kat, ha a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3t hozz\u00e1adod a printer.cfg f\u00e1jlhoz: [output_pin caselight] pin: host:pwmchip0/pwm0 pwm: True hardware_pwm: True cycle_time: 0.000001 Ez hozz\u00e1adja a hardveres PWM vez\u00e9rl\u00e9st a Pi GPIO12-h\u00f6z (mivel az \u00e1tfed\u00e9s \u00fagy volt konfigur\u00e1lva, hogy a PWM0-t a pin=12-re ir\u00e1ny\u00edtsa). A PWM0 a GPIO12 \u00e9s a GPIO18 a PWM1 a GPIO13 \u00e9s a GPIO19 fel\u00e9 ir\u00e1ny\u00edthat\u00f3: PWM gpio PIN Func 0 12 4 0 18 2 1 13 4 1 19 2","title":"V\u00e1laszthat\u00f3: Hardveres PWM"},{"location":"Releases.html","text":"Kiad\u00e1s \u00b6 A Klipper kiad\u00e1sok t\u00f6rt\u00e9nete. A Klipper telep\u00edt\u00e9s\u00e9vel kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a telep\u00edt\u00e9s dokumentumot. Klipper 0.10.0 \u00b6 El\u00e9rhet\u0151 a 20210929. Fontosabb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: A \"Multi-MCU Homing\" t\u00e1mogat\u00e1sa. Mostant\u00f3l lehet\u0151s\u00e9g van arra, hogy egy l\u00e9ptet\u0151motor \u00e9s a v\u00e9g\u00e1ll\u00e1s k\u00fcl\u00f6n mikrovez\u00e9rl\u0151kh\u00f6z legyen csatlakoztatva. Ez leegyszer\u0171s\u00edti a Z-\u00e9rz\u00e9kel\u0151k k\u00e1belez\u00e9s\u00e9t a \"nyomtat\u00f3fejen\". Klipper mostant\u00f3l rendelkezik egy K\u00f6z\u00f6ss\u00e9gi Discord Szerver \u00e9s egy K\u00f6z\u00f6ss\u00e9gi T\u00e1rsalg\u00f3 Szerver -rel. A Klipper weboldal mostant\u00f3l az \"mkdocs\" infrastrukt\u00far\u00e1t haszn\u00e1lja. L\u00e9tezik egy Klipper Ford\u00edt\u00e1sok projekt is. Automatiz\u00e1lt t\u00e1mogat\u00e1s a firmware SDk\u00e1rty\u00e1n kereszt\u00fcli \u00e9get\u00e9s\u00e9hez sz\u00e1mos lapon. \u00daj kinematikai t\u00e1mogat\u00e1s a \"Hybrid CoreXY\" \u00e9s \"Hybrid CoreXZ\" nyomtat\u00f3khoz. A Klipper mostant\u00f3l a rotation_distance funkci\u00f3t haszn\u00e1lja a l\u00e9ptet\u0151motorok mozg\u00e1si t\u00e1vols\u00e1g\u00e1nak be\u00e1ll\u00edt\u00e1s\u00e1hoz. A Klipper f\u0151 gazdak\u00f3dja mostant\u00f3l k\u00f6zvetlen\u00fcl kommunik\u00e1lhat a mikrovez\u00e9rl\u0151kkel a CAN-buszon kereszt\u00fcl. \u00daj \"mozg\u00e1selemz\u0151\" rendszer. A Klipper 'bels\u0151 mozg\u00e1sfriss\u00edt\u00e9sek \u00e9s az \u00e9rz\u00e9kel\u0151 eredm\u00e9nyei nyomon k\u00f6vethet\u0151k \u00e9s napl\u00f3zhat\u00f3k elemz\u00e9s c\u00e9lj\u00e1b\u00f3l. A Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3kat mostant\u00f3l folyamatosan ellen\u0151rzik a hiba\u00e1llapotok szempontj\u00e1b\u00f3l. Az rp2040 mikrokontroller t\u00e1mogat\u00e1sa (Raspberry Pi Pico lapok). A \"make menuconfig\" rendszer mostant\u00f3l a kconfiglib-et haszn\u00e1lja. Hozz\u00e1adva sz\u00e1mos tov\u00e1bbi modul: ds18b20, duplicate_pin_override, filament_motion_sensor, palette2, motion_report, pca9533, pulse_counter, save_variables, sdcard_loop, temperature_host, temperature_mcu Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s. Klipper 0.9.0 \u00b6 El\u00e9rhet\u0151 a 20201020. F\u0151bb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: Az \"Input Shaping\" a nyomtat\u00f3 rezonanci\u00e1j\u00e1nak ellens\u00falyoz\u00e1s\u00e1ra szolg\u00e1l\u00f3 mechanizmus t\u00e1mogat\u00e1sa. Cs\u00f6kkentheti vagy megsz\u00fcntetheti a \"gy\u0171r\u0151d\u00e9st\" a nyomatokon. \u00daj \"Smooth Pressure Advance\" rendszer. Ezt a \"Pressure Advance\" rendszert a pillanatnyi sebess\u00e9g v\u00e1ltoz\u00e1sok bevezet\u00e9se n\u00e9lk\u00fcl val\u00f3s\u00edtja meg. Mostant\u00f3l lehet\u0151s\u00e9g van a nyom\u00e1s el\u0151tol\u00e1s be\u00e1ll\u00edt\u00e1s\u00e1ra is a \"Tuning Tower\" m\u00f3dszerrel. \u00daj \"webhooks\" API-kiszolg\u00e1l\u00f3. Ez egy programozhat\u00f3 JSON interf\u00e9szt biztos\u00edt a Klipperhez. Az LCD kijelz\u0151 \u00e9s a men\u00fc mostant\u00f3l a Jinja2 sablonnyelv seg\u00edts\u00e9g\u00e9vel konfigur\u00e1lhat\u00f3. A TMC2208 l\u00e9ptet\u0151motor-meghajt\u00f3k mostant\u00f3l \"standalone\" \u00fczemm\u00f3dban is haszn\u00e1lhat\u00f3k a Klipperrel. Tov\u00e1bbfejlesztett BL-Touch v3 t\u00e1mogat\u00e1s. Jav\u00edtott USB-azonos\u00edt\u00e1s. A Klipper mostant\u00f3l saj\u00e1t USB-azonos\u00edt\u00f3 k\u00f3ddal rendelkezik, \u00e9s a mikrovez\u00e9rl\u0151k mostant\u00f3l az USB-azonos\u00edt\u00e1s sor\u00e1n jelenthetik egyedi sorozatsz\u00e1mukat. \u00daj kinematikai t\u00e1mogat\u00e1s a \"Rotary Delta\" \u00e9s \"CoreXZ\" nyomtat\u00f3khoz. Mikrovez\u00e9rl\u0151 fejleszt\u00e9sek: az STM32F070 t\u00e1mogat\u00e1sa, az STM32F207 t\u00e1mogat\u00e1sa, a GPIO t\u0171k t\u00e1mogat\u00e1sa a \"Linux MCU\" rendszeren, STM32 \"HID bootloader\" t\u00e1mogat\u00e1s, Chitu bootloader t\u00e1mogat\u00e1s, MKS Robin bootloader t\u00e1mogat\u00e1s. A Python \"szem\u00e9tgy\u0171jt\u00e9si\" esem\u00e9nyek jobb kezel\u00e9se. Sz\u00e1mos tov\u00e1bbi modul lett hozz\u00e1adva: adc_scaled, adxl345, bme280, display_status, extruder_stepper, fan_generic, hall_filament_width_sensor, htu21d, homing_heaters, input_shaper, lm75, print_stats, resonance_tester, shaper_calibrate, query_adc, graph_accelerometer, graph_extruder, graph_motion, graph_shaper, graph_temp_sensor, whconsole Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s. Klipper 0.9.1 \u00b6 El\u00e9rhet\u0151 a 20201028. Csak hibajav\u00edt\u00e1sokat tartalmaz\u00f3 kiad\u00e1s. Klipper 0.8.0 \u00b6 El\u00e9rhet\u0151 a 20191021. F\u0151bb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: \u00daj G-k\u00f3d parancssablon t\u00e1mogat\u00e1s. A konfigur\u00e1ci\u00f3s f\u00e1jlban l\u00e9v\u0151 G-k\u00f3dot mostant\u00f3l a Jinja2 sablonnyelvvel \u00e9rt\u00e9keli ki a rendszer. A Trinamic l\u00e9ptet\u0151 meghajt\u00f3k jav\u00edt\u00e1sa: \u00daj t\u00e1mogat\u00e1s a TMC2209 \u00e9s TMC5160 illeszt\u0151programokhoz. Tov\u00e1bbfejlesztett DUMP_TMC, SET_TMC_CURRENT \u00e9s INIT_TMC G-k\u00f3d parancsok. Jav\u00edtott t\u00e1mogat\u00e1s a TMC UART kezel\u00e9s\u00e9hez anal\u00f3g mux-al. Jav\u00edtott c\u00e9lmeghat\u00e1roz\u00e1s, m\u00e9r\u00e9s \u00e9s t\u00e1rgyasztal szintez\u00e9si t\u00e1mogat\u00e1s: \u00daj manual_probe, bed_screws, screws_tilt_adjust, skew_correction, safe_z_home modulok hozz\u00e1ad\u00e1sa. Tov\u00e1bbfejlesztett t\u00f6bbmint\u00e1s m\u00e9r\u00e9s medi\u00e1nnal, \u00e1tlagol\u00e1ssal \u00e9s \u00fajrapr\u00f3b\u00e1l\u00e1si logik\u00e1val. Jav\u00edtott dokument\u00e1ci\u00f3 a BL-Touch, a szondakalibr\u00e1l\u00e1s, a v\u00e9g\u00e1ll\u00e1s kalibr\u00e1l\u00e1s, a delta kalibr\u00e1l\u00e1s, az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont \u00e9s a v\u00e9g\u00e1ll\u00e1s f\u00e1zis kalibr\u00e1l\u00e1s\u00e1hoz. Tov\u00e1bbfejlesztett kezd\u0151pont t\u00e1mogat\u00e1s a Z tengelyen. Sz\u00e1mos Klipper mikrokontroller fejleszt\u00e9s: Klipper portolva: SAM3X8C, SAM4S8C, SAMD51, STM32F042, STM32F4 \u00daj USB CDC-illeszt\u0151programok SAM3X, SAM4, STM32F4 rendszerekhez. Tov\u00e1bbfejlesztett t\u00e1mogat\u00e1s a Klipper USB-n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 \u00e9get\u00e9s\u00e9hez. Szoftveres SPI-t\u00e1mogat\u00e1s. Jelent\u0151sen javult a h\u0151m\u00e9rs\u00e9klet-sz\u0171r\u00e9s az LPC176x-en. A korai kimeneti \u00e9rintkez\u0151k be\u00e1ll\u00edt\u00e1sai a mikrovez\u00e9rl\u0151ben konfigur\u00e1lhat\u00f3k. \u00daj weboldal a Klipper dokument\u00e1ci\u00f3val: http://klipper3d.org/ A Klippernek m\u00e1r van log\u00f3ja. A pol\u00e1ris \u00e9s a \"k\u00e1belcs\u00f6rl\u0151\" kinematika k\u00eds\u00e9rleti al\u00e1t\u00e1maszt\u00e1sa. A konfigur\u00e1ci\u00f3s f\u00e1jl mostant\u00f3l m\u00e1s konfigur\u00e1ci\u00f3s f\u00e1jlokat is tartalmazhat. Sz\u00e1mos tov\u00e1bbi modul hozz\u00e1 lett adva: board_pins, controller_fan, delayed_gcode, dotstar, filament_switch_sensor, firmware_retraction, gcode_arcs, gcode_button, heater_generic, manual_stepper, mcp4018, mcp4728, neopixel, pause_resume, respond, temperature_sensor tsl1401cl_filament_width_sensor, tuning_tower Sz\u00e1mos tov\u00e1bbi parancsot adtunk hozz\u00e1: RESTORE_GCODE_STATE, SAVE_GCODE_STATE, SET_GCODE_VARIABLE, SET_HEATER_TEMPERATURE, SET_IDLE_TIMEOUT, SET_TEMPERATURE_FAN_TARGET Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s. Klipper 0.7.0 \u00b6 El\u00e9rhet\u0151 a 20181220. F\u0151bb v\u00e1ltoz\u00e1sok a kiad\u00e1sban: A Klipper mostant\u00f3l t\u00e1mogatja a \"h\u00e1l\u00f3\" t\u00e1rgyasztal szintez\u00e9s \u00e1ll\u00edt\u00e1st \u00daj t\u00e1mogat\u00e1s a \"tov\u00e1bbfejlesztett\" delta kalibr\u00e1ci\u00f3hoz (kalibr\u00e1lja a nyomtat\u00e1s x/y m\u00e9reteit delta nyomtat\u00f3kon) A Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3k (tmc2130, tmc2208, tmc2660) fut\u00e1sidej\u0171 konfigur\u00e1ci\u00f3j\u00e1nak t\u00e1mogat\u00e1sa Jav\u00edtott h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 t\u00e1mogat\u00e1s: MAX6675, MAX31855, MAX31856, MAX31865, egyedi termisztorok, \u00e1ltal\u00e1nos PT100 t\u00edpus\u00fa \u00e9rz\u00e9kel\u0151k Sz\u00e1mos \u00faj modul: temperature_fan, sx1509, force_move, mcp4451, z_tilt, quad_gantry_level, endstop_phase, bltouch Sz\u00e1mos \u00faj parancs hozz\u00e1ad\u00e1sa: SAVE_CONFIG, SET_PRESSURE_ADVANCE, SET_GCODE_OFFSET, SET_VELOCITY_LIMIT, STEPPER_BUZZ, TURN_OFF_HEATERS, M204, egyedi g-k\u00f3d makr\u00f3k Kib\u0151v\u00edtett LCD-kijelz\u0151 t\u00e1mogat\u00e1s: Fut\u00e1sidej\u0171 men\u00fck t\u00e1mogat\u00e1sa \u00daj kijelz\u0151 ikonok A \"uc1701\" \u00e9s \"ssd1306\" kijelz\u0151k t\u00e1mogat\u00e1sa Tov\u00e1bbi mikrokontroller t\u00e1mogat\u00e1s: Klipper portolva: LPC176x (Smoothieboards), SAM4E8E (Duet2), SAMD21 (Arduino Zero), STM32F103 (\"Blue pill\" eszk\u00f6z\u00f6k), atmega32u4 \u00daj generikus USB CDC vez\u00e9rl\u0151 implement\u00e1lva AVR, LPC176x, SAMD21 \u00e9s STM32F103 platformokra Teljes\u00edtm\u00e9nyjavul\u00e1s ARM processzorokon A kinematikai k\u00f3dot \u00e1t\u00edrtuk, hogy egy \"iterat\u00edv megold\u00f3t\" haszn\u00e1ljon \u00daj automatikus tesztel\u00e9si esetek a Klipper gazdag\u00e9p szoftverhez Sz\u00e1mos \u00faj p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jl a szok\u00e1sos nyomtat\u00f3khoz Dokument\u00e1ci\u00f3friss\u00edt\u00e9sek rendszerbet\u00f6lt\u0151kh\u00f6z, teljes\u00edtm\u00e9ny\u00e9rt\u00e9kel\u00e9shez, mikrovez\u00e9rl\u0151 portol\u00e1shoz, konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9sekhez, t\u0171 hozz\u00e1rendel\u00e9shez, szeletel\u0151be\u00e1ll\u00edt\u00e1sokhoz, csomagol\u00e1shoz \u00e9s egyebekhez Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s Klipper 0.6.0 \u00b6 El\u00e9rhet\u0151 a 20180331. F\u0151bb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: Tov\u00e1bbfejlesztett f\u0171t\u0151berendez\u00e9s \u00e9s termisztor hardverhiba ellen\u0151rz\u00e9sek Z-szond\u00e1k t\u00e1mogat\u00e1sa A delt\u00e1k automatikus param\u00e9terkalibr\u00e1l\u00e1s\u00e1nak kezdeti t\u00e1mogat\u00e1sa (egy \u00faj delta_calibrate parancson kereszt\u00fcl) A t\u00e1rgyasztal d\u0151l\u00e9skiegyenl\u00edt\u00e9s\u00e9nek kezdeti t\u00e1mogat\u00e1sa (a bed_tilt_calibrate paranccsal) A \"biztons\u00e1gos kezd\u0151pont\" \u00e9s a kezd\u0151pont fel\u00fclb\u00edr\u00e1l\u00e1s\u00e1nak kezdeti t\u00e1mogat\u00e1sa Kezdeti t\u00e1mogat\u00e1s az \u00e1llapot megjelen\u00edt\u00e9s\u00e9hez a RepRapDiscount 2004 \u00e9s 12864 st\u00edlus\u00fa kijelz\u0151k\u00f6n \u00daj multi-extruder fejleszt\u00e9sek: A megosztott f\u0171t\u0151testek t\u00e1mogat\u00e1sa Kezdeti t\u00e1mogat\u00e1s kett\u0151s kocsikhoz T\u00f6bb l\u00e9ptet\u0151 tengelyenk\u00e9nti konfigur\u00e1l\u00e1s\u00e1nak t\u00e1mogat\u00e1sa (pl. kett\u0151s Z) Egyedi digit\u00e1lis \u00e9s PWM kimeneti t\u0171k t\u00e1mogat\u00e1sa (\u00faj SET_PIN paranccsal) Kezdeti t\u00e1mogat\u00e1s egy \"virtu\u00e1lis SDcard\" sz\u00e1m\u00e1ra, amely lehet\u0151v\u00e9 teszi a nyomtat\u00e1st k\u00f6zvetlen\u00fcl a Klipperr\u0151l (seg\u00edt a t\u00fal lass\u00fa g\u00e9peken, hogy az OctoPrint j\u00f3l fusson) K\u00fcl\u00f6nb\u00f6z\u0151 karhossz\u00fas\u00e1gok be\u00e1ll\u00edt\u00e1s\u00e1nak t\u00e1mogat\u00e1sa a delta minden egyes torny\u00e1n A G-k\u00f3d M220/M221 parancsok t\u00e1mogat\u00e1sa (sebess\u00e9gt\u00e9nyez\u0151 fel\u00fclb\u00edr\u00e1l\u00e1sa / extrud\u00e1l\u00e1si t\u00e9nyez\u0151 fel\u00fclb\u00edr\u00e1l\u00e1sa) Sz\u00e1mos dokument\u00e1ci\u00f3 friss\u00edt\u00e9s: Sz\u00e1mos \u00faj p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jl a szok\u00e1sos nyomtat\u00f3khoz \u00daj t\u00f6bb MCU konfigur\u00e1ci\u00f3s p\u00e9lda \u00daj BL-Touch \u00e9rz\u00e9kel\u0151 konfigur\u00e1ci\u00f3s p\u00e9lda \u00daj GYIK, konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9s \u00e9s G-k\u00f3d dokumentumok Kezdeti t\u00e1mogat\u00e1s a folyamatos integr\u00e1ci\u00f3 tesztel\u00e9s\u00e9hez az \u00f6sszes v\u00e9gleges GitHub fejleszt\u00e9sben Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s Klipper 0.5.0 \u00b6 El\u00e9rhet\u0151 a 20171025. F\u0151bb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: T\u00f6bb extruderrel rendelkez\u0151 nyomtat\u00f3k t\u00e1mogat\u00e1sa. Kezdeti t\u00e1mogat\u00e1s a Beaglebone PRU-n val\u00f3 futtat\u00e1shoz. Kezdeti t\u00e1mogat\u00e1s a Replicape alaplaphoz. Kezdeti t\u00e1mogat\u00e1s a mikrokontroller k\u00f3dj\u00e1nak val\u00f3s idej\u0171 Linux-folyamatban t\u00f6rt\u00e9n\u0151 futtat\u00e1s\u00e1hoz. T\u00f6bb mikrovez\u00e9rl\u0151 t\u00e1mogat\u00e1sa. (P\u00e9ld\u00e1ul egy extruder vez\u00e9relhet\u0151 egy mikrokontrollerrel, a nyomtat\u00f3 t\u00f6bbi r\u00e9sze pedig egy m\u00e1sikkal.) A mikrovez\u00e9rl\u0151k k\u00f6z\u00f6tti m\u0171veletek \u00f6sszehangol\u00e1s\u00e1hoz szoftveres \u00f3rajel-szinkroniz\u00e1l\u00e1s van implement\u00e1lva. L\u00e9peget\u0151 teljes\u00edtm\u00e9ny\u00e9nek jav\u00edt\u00e1sa (20Mhz-es AVR-ek ak\u00e1r 189K l\u00e9p\u00e9s/m\u00e1sodpercig). T\u00e1mogat\u00e1s a szerv\u00f3k vez\u00e9rl\u00e9s\u00e9hez \u00e9s a fejh\u0171t\u0151 ventil\u00e1torok meghat\u00e1roz\u00e1s\u00e1hoz. Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s Klipper 0.4.0 \u00b6 El\u00e9rhet\u0151 a 20170503. F\u0151bb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: Jav\u00edtott telep\u00edt\u00e9s Raspberry Pi g\u00e9pekre. A telep\u00edt\u00e9s nagy r\u00e9sze most m\u00e1r szkriptelt. A corexy kinematika t\u00e1mogat\u00e1sa Dokument\u00e1ci\u00f3 friss\u00edt\u00e9sek: \u00daj Kinematika dokumentum, \u00faj Pressure Advance tuning \u00fatmutat\u00f3, \u00faj p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jlok, stb L\u00e9ptet\u0151 teljes\u00edtm\u00e9ny javul\u00e1sa (20Mhz AVR t\u00f6bb mint 175K l\u00e9p\u00e9s/m\u00e1sodperc, Arduino Due t\u00f6bb mint 460K) A mikrokontroller automatikus vissza\u00e1ll\u00edt\u00e1s\u00e1nak t\u00e1mogat\u00e1sa. A Raspberry Pi USB t\u00e1pell\u00e1t\u00e1s\u00e1nak kapcsol\u00e1s\u00e1val t\u00f6rt\u00e9n\u0151 vissza\u00e1ll\u00edt\u00e1s t\u00e1mogat\u00e1sa. A nyom\u00e1s el\u0151tol\u00e1s algoritmus mostant\u00f3l look-ahead funkci\u00f3val m\u0171k\u00f6dik, hogy cs\u00f6kkentse a kanyarod\u00e1s k\u00f6zbeni nyom\u00e1sv\u00e1ltoz\u00e1sokat. A r\u00f6vid cikcakk mozg\u00e1sok maxim\u00e1lis sebess\u00e9g\u00e9nek korl\u00e1toz\u00e1sa AD595 \u00e9rz\u00e9kel\u0151k t\u00e1mogat\u00e1sa Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s Klipper 0.3.0 \u00b6 El\u00e9rhet\u0151 a 20161223. F\u0151bb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: Jav\u00edtott dokument\u00e1ci\u00f3 Delta kinematikai robotok t\u00e1mogat\u00e1sa Arduino Due mikrokontroller t\u00e1mogat\u00e1sa (ARM cortex-M3) USB alap\u00fa AVR mikrovez\u00e9rl\u0151k t\u00e1mogat\u00e1sa T\u00e1mogat\u00e1s a \"nyom\u00e1s el\u0151tol\u00e1s\" algoritmushoz - ez cs\u00f6kkenti a nyomatok sor\u00e1n keletkez\u0151 sziv\u00e1rg\u00e1st. \u00daj \"l\u00e9ptet\u0151f\u00e1zis-alap\u00fa v\u00e9g\u00e1ll\u00e1s\" funkci\u00f3 - nagyobb pontoss\u00e1got tesz lehet\u0151v\u00e9 a kezd\u0151pont v\u00e9g\u00e1ll\u00e1s\u00e1ban. A \"kiterjesztett G-k\u00f3d\" parancsok t\u00e1mogat\u00e1sa, mint p\u00e9ld\u00e1ul a \"help\", \"restart\" \u00e9s \"status\". A Klipper konfigur\u00e1ci\u00f3 \u00fajrat\u00f6lt\u00e9s\u00e9nek \u00e9s a gazdaszoftver \u00fajraind\u00edt\u00e1s\u00e1nak t\u00e1mogat\u00e1sa a \"restart\" parancs termin\u00e1lb\u00f3l t\u00f6rt\u00e9n\u0151 kiad\u00e1s\u00e1val. L\u00e9peget\u0151 teljes\u00edtm\u00e9ny\u00e9nek jav\u00edt\u00e1sa (20Mhz-es AVR-ek ak\u00e1r 158K l\u00e9p\u00e9s/m\u00e1sodpercig). Jav\u00edtott hibajelent\u00e9s. A legt\u00f6bb hiba mostant\u00f3l a termin\u00e1lon kereszt\u00fcl jelenik meg, a megold\u00e1sra vonatkoz\u00f3 seg\u00edts\u00e9ggel egy\u00fctt. Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s Klipper 0.2.0 \u00b6 A Klipper els\u0151 kiad\u00e1sa. El\u00e9rhet\u0151 a 20160525. A kezdeti kiad\u00e1sban el\u00e9rhet\u0151 f\u0151bb funkci\u00f3k a k\u00f6vetkez\u0151k: Alapvet\u0151 t\u00e1mogat\u00e1s cartesian nyomtat\u00f3khoz (stepperek, extruder, f\u0171t\u00f6tt t\u00e1rgyasztal, h\u0171t\u0151ventil\u00e1tor). A gyakori G-k\u00f3d parancsok t\u00e1mogat\u00e1sa. Az OctoPrint interf\u00e9sz t\u00e1mogat\u00e1sa. Gyorsul\u00e1s \u00e9s el\u0151retekint\u0151 kezel\u00e9s AVR mikrovez\u00e9rl\u0151k t\u00e1mogat\u00e1sa szabv\u00e1nyos soros portokon kereszt\u00fcl","title":"Kiad\u00e1s"},{"location":"Releases.html#kiadas","text":"A Klipper kiad\u00e1sok t\u00f6rt\u00e9nete. A Klipper telep\u00edt\u00e9s\u00e9vel kapcsolatos inform\u00e1ci\u00f3k\u00e9rt l\u00e1sd a telep\u00edt\u00e9s dokumentumot.","title":"Kiad\u00e1s"},{"location":"Releases.html#klipper-0100","text":"El\u00e9rhet\u0151 a 20210929. Fontosabb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: A \"Multi-MCU Homing\" t\u00e1mogat\u00e1sa. Mostant\u00f3l lehet\u0151s\u00e9g van arra, hogy egy l\u00e9ptet\u0151motor \u00e9s a v\u00e9g\u00e1ll\u00e1s k\u00fcl\u00f6n mikrovez\u00e9rl\u0151kh\u00f6z legyen csatlakoztatva. Ez leegyszer\u0171s\u00edti a Z-\u00e9rz\u00e9kel\u0151k k\u00e1belez\u00e9s\u00e9t a \"nyomtat\u00f3fejen\". Klipper mostant\u00f3l rendelkezik egy K\u00f6z\u00f6ss\u00e9gi Discord Szerver \u00e9s egy K\u00f6z\u00f6ss\u00e9gi T\u00e1rsalg\u00f3 Szerver -rel. A Klipper weboldal mostant\u00f3l az \"mkdocs\" infrastrukt\u00far\u00e1t haszn\u00e1lja. L\u00e9tezik egy Klipper Ford\u00edt\u00e1sok projekt is. Automatiz\u00e1lt t\u00e1mogat\u00e1s a firmware SDk\u00e1rty\u00e1n kereszt\u00fcli \u00e9get\u00e9s\u00e9hez sz\u00e1mos lapon. \u00daj kinematikai t\u00e1mogat\u00e1s a \"Hybrid CoreXY\" \u00e9s \"Hybrid CoreXZ\" nyomtat\u00f3khoz. A Klipper mostant\u00f3l a rotation_distance funkci\u00f3t haszn\u00e1lja a l\u00e9ptet\u0151motorok mozg\u00e1si t\u00e1vols\u00e1g\u00e1nak be\u00e1ll\u00edt\u00e1s\u00e1hoz. A Klipper f\u0151 gazdak\u00f3dja mostant\u00f3l k\u00f6zvetlen\u00fcl kommunik\u00e1lhat a mikrovez\u00e9rl\u0151kkel a CAN-buszon kereszt\u00fcl. \u00daj \"mozg\u00e1selemz\u0151\" rendszer. A Klipper 'bels\u0151 mozg\u00e1sfriss\u00edt\u00e9sek \u00e9s az \u00e9rz\u00e9kel\u0151 eredm\u00e9nyei nyomon k\u00f6vethet\u0151k \u00e9s napl\u00f3zhat\u00f3k elemz\u00e9s c\u00e9lj\u00e1b\u00f3l. A Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3kat mostant\u00f3l folyamatosan ellen\u0151rzik a hiba\u00e1llapotok szempontj\u00e1b\u00f3l. Az rp2040 mikrokontroller t\u00e1mogat\u00e1sa (Raspberry Pi Pico lapok). A \"make menuconfig\" rendszer mostant\u00f3l a kconfiglib-et haszn\u00e1lja. Hozz\u00e1adva sz\u00e1mos tov\u00e1bbi modul: ds18b20, duplicate_pin_override, filament_motion_sensor, palette2, motion_report, pca9533, pulse_counter, save_variables, sdcard_loop, temperature_host, temperature_mcu Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s.","title":"Klipper 0.10.0"},{"location":"Releases.html#klipper-090","text":"El\u00e9rhet\u0151 a 20201020. F\u0151bb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: Az \"Input Shaping\" a nyomtat\u00f3 rezonanci\u00e1j\u00e1nak ellens\u00falyoz\u00e1s\u00e1ra szolg\u00e1l\u00f3 mechanizmus t\u00e1mogat\u00e1sa. Cs\u00f6kkentheti vagy megsz\u00fcntetheti a \"gy\u0171r\u0151d\u00e9st\" a nyomatokon. \u00daj \"Smooth Pressure Advance\" rendszer. Ezt a \"Pressure Advance\" rendszert a pillanatnyi sebess\u00e9g v\u00e1ltoz\u00e1sok bevezet\u00e9se n\u00e9lk\u00fcl val\u00f3s\u00edtja meg. Mostant\u00f3l lehet\u0151s\u00e9g van a nyom\u00e1s el\u0151tol\u00e1s be\u00e1ll\u00edt\u00e1s\u00e1ra is a \"Tuning Tower\" m\u00f3dszerrel. \u00daj \"webhooks\" API-kiszolg\u00e1l\u00f3. Ez egy programozhat\u00f3 JSON interf\u00e9szt biztos\u00edt a Klipperhez. Az LCD kijelz\u0151 \u00e9s a men\u00fc mostant\u00f3l a Jinja2 sablonnyelv seg\u00edts\u00e9g\u00e9vel konfigur\u00e1lhat\u00f3. A TMC2208 l\u00e9ptet\u0151motor-meghajt\u00f3k mostant\u00f3l \"standalone\" \u00fczemm\u00f3dban is haszn\u00e1lhat\u00f3k a Klipperrel. Tov\u00e1bbfejlesztett BL-Touch v3 t\u00e1mogat\u00e1s. Jav\u00edtott USB-azonos\u00edt\u00e1s. A Klipper mostant\u00f3l saj\u00e1t USB-azonos\u00edt\u00f3 k\u00f3ddal rendelkezik, \u00e9s a mikrovez\u00e9rl\u0151k mostant\u00f3l az USB-azonos\u00edt\u00e1s sor\u00e1n jelenthetik egyedi sorozatsz\u00e1mukat. \u00daj kinematikai t\u00e1mogat\u00e1s a \"Rotary Delta\" \u00e9s \"CoreXZ\" nyomtat\u00f3khoz. Mikrovez\u00e9rl\u0151 fejleszt\u00e9sek: az STM32F070 t\u00e1mogat\u00e1sa, az STM32F207 t\u00e1mogat\u00e1sa, a GPIO t\u0171k t\u00e1mogat\u00e1sa a \"Linux MCU\" rendszeren, STM32 \"HID bootloader\" t\u00e1mogat\u00e1s, Chitu bootloader t\u00e1mogat\u00e1s, MKS Robin bootloader t\u00e1mogat\u00e1s. A Python \"szem\u00e9tgy\u0171jt\u00e9si\" esem\u00e9nyek jobb kezel\u00e9se. Sz\u00e1mos tov\u00e1bbi modul lett hozz\u00e1adva: adc_scaled, adxl345, bme280, display_status, extruder_stepper, fan_generic, hall_filament_width_sensor, htu21d, homing_heaters, input_shaper, lm75, print_stats, resonance_tester, shaper_calibrate, query_adc, graph_accelerometer, graph_extruder, graph_motion, graph_shaper, graph_temp_sensor, whconsole Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s.","title":"Klipper 0.9.0"},{"location":"Releases.html#klipper-091","text":"El\u00e9rhet\u0151 a 20201028. Csak hibajav\u00edt\u00e1sokat tartalmaz\u00f3 kiad\u00e1s.","title":"Klipper 0.9.1"},{"location":"Releases.html#klipper-080","text":"El\u00e9rhet\u0151 a 20191021. F\u0151bb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: \u00daj G-k\u00f3d parancssablon t\u00e1mogat\u00e1s. A konfigur\u00e1ci\u00f3s f\u00e1jlban l\u00e9v\u0151 G-k\u00f3dot mostant\u00f3l a Jinja2 sablonnyelvvel \u00e9rt\u00e9keli ki a rendszer. A Trinamic l\u00e9ptet\u0151 meghajt\u00f3k jav\u00edt\u00e1sa: \u00daj t\u00e1mogat\u00e1s a TMC2209 \u00e9s TMC5160 illeszt\u0151programokhoz. Tov\u00e1bbfejlesztett DUMP_TMC, SET_TMC_CURRENT \u00e9s INIT_TMC G-k\u00f3d parancsok. Jav\u00edtott t\u00e1mogat\u00e1s a TMC UART kezel\u00e9s\u00e9hez anal\u00f3g mux-al. Jav\u00edtott c\u00e9lmeghat\u00e1roz\u00e1s, m\u00e9r\u00e9s \u00e9s t\u00e1rgyasztal szintez\u00e9si t\u00e1mogat\u00e1s: \u00daj manual_probe, bed_screws, screws_tilt_adjust, skew_correction, safe_z_home modulok hozz\u00e1ad\u00e1sa. Tov\u00e1bbfejlesztett t\u00f6bbmint\u00e1s m\u00e9r\u00e9s medi\u00e1nnal, \u00e1tlagol\u00e1ssal \u00e9s \u00fajrapr\u00f3b\u00e1l\u00e1si logik\u00e1val. Jav\u00edtott dokument\u00e1ci\u00f3 a BL-Touch, a szondakalibr\u00e1l\u00e1s, a v\u00e9g\u00e1ll\u00e1s kalibr\u00e1l\u00e1s, a delta kalibr\u00e1l\u00e1s, az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont \u00e9s a v\u00e9g\u00e1ll\u00e1s f\u00e1zis kalibr\u00e1l\u00e1s\u00e1hoz. Tov\u00e1bbfejlesztett kezd\u0151pont t\u00e1mogat\u00e1s a Z tengelyen. Sz\u00e1mos Klipper mikrokontroller fejleszt\u00e9s: Klipper portolva: SAM3X8C, SAM4S8C, SAMD51, STM32F042, STM32F4 \u00daj USB CDC-illeszt\u0151programok SAM3X, SAM4, STM32F4 rendszerekhez. Tov\u00e1bbfejlesztett t\u00e1mogat\u00e1s a Klipper USB-n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 \u00e9get\u00e9s\u00e9hez. Szoftveres SPI-t\u00e1mogat\u00e1s. Jelent\u0151sen javult a h\u0151m\u00e9rs\u00e9klet-sz\u0171r\u00e9s az LPC176x-en. A korai kimeneti \u00e9rintkez\u0151k be\u00e1ll\u00edt\u00e1sai a mikrovez\u00e9rl\u0151ben konfigur\u00e1lhat\u00f3k. \u00daj weboldal a Klipper dokument\u00e1ci\u00f3val: http://klipper3d.org/ A Klippernek m\u00e1r van log\u00f3ja. A pol\u00e1ris \u00e9s a \"k\u00e1belcs\u00f6rl\u0151\" kinematika k\u00eds\u00e9rleti al\u00e1t\u00e1maszt\u00e1sa. A konfigur\u00e1ci\u00f3s f\u00e1jl mostant\u00f3l m\u00e1s konfigur\u00e1ci\u00f3s f\u00e1jlokat is tartalmazhat. Sz\u00e1mos tov\u00e1bbi modul hozz\u00e1 lett adva: board_pins, controller_fan, delayed_gcode, dotstar, filament_switch_sensor, firmware_retraction, gcode_arcs, gcode_button, heater_generic, manual_stepper, mcp4018, mcp4728, neopixel, pause_resume, respond, temperature_sensor tsl1401cl_filament_width_sensor, tuning_tower Sz\u00e1mos tov\u00e1bbi parancsot adtunk hozz\u00e1: RESTORE_GCODE_STATE, SAVE_GCODE_STATE, SET_GCODE_VARIABLE, SET_HEATER_TEMPERATURE, SET_IDLE_TIMEOUT, SET_TEMPERATURE_FAN_TARGET Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s.","title":"Klipper 0.8.0"},{"location":"Releases.html#klipper-070","text":"El\u00e9rhet\u0151 a 20181220. F\u0151bb v\u00e1ltoz\u00e1sok a kiad\u00e1sban: A Klipper mostant\u00f3l t\u00e1mogatja a \"h\u00e1l\u00f3\" t\u00e1rgyasztal szintez\u00e9s \u00e1ll\u00edt\u00e1st \u00daj t\u00e1mogat\u00e1s a \"tov\u00e1bbfejlesztett\" delta kalibr\u00e1ci\u00f3hoz (kalibr\u00e1lja a nyomtat\u00e1s x/y m\u00e9reteit delta nyomtat\u00f3kon) A Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3k (tmc2130, tmc2208, tmc2660) fut\u00e1sidej\u0171 konfigur\u00e1ci\u00f3j\u00e1nak t\u00e1mogat\u00e1sa Jav\u00edtott h\u0151m\u00e9rs\u00e9klet-\u00e9rz\u00e9kel\u0151 t\u00e1mogat\u00e1s: MAX6675, MAX31855, MAX31856, MAX31865, egyedi termisztorok, \u00e1ltal\u00e1nos PT100 t\u00edpus\u00fa \u00e9rz\u00e9kel\u0151k Sz\u00e1mos \u00faj modul: temperature_fan, sx1509, force_move, mcp4451, z_tilt, quad_gantry_level, endstop_phase, bltouch Sz\u00e1mos \u00faj parancs hozz\u00e1ad\u00e1sa: SAVE_CONFIG, SET_PRESSURE_ADVANCE, SET_GCODE_OFFSET, SET_VELOCITY_LIMIT, STEPPER_BUZZ, TURN_OFF_HEATERS, M204, egyedi g-k\u00f3d makr\u00f3k Kib\u0151v\u00edtett LCD-kijelz\u0151 t\u00e1mogat\u00e1s: Fut\u00e1sidej\u0171 men\u00fck t\u00e1mogat\u00e1sa \u00daj kijelz\u0151 ikonok A \"uc1701\" \u00e9s \"ssd1306\" kijelz\u0151k t\u00e1mogat\u00e1sa Tov\u00e1bbi mikrokontroller t\u00e1mogat\u00e1s: Klipper portolva: LPC176x (Smoothieboards), SAM4E8E (Duet2), SAMD21 (Arduino Zero), STM32F103 (\"Blue pill\" eszk\u00f6z\u00f6k), atmega32u4 \u00daj generikus USB CDC vez\u00e9rl\u0151 implement\u00e1lva AVR, LPC176x, SAMD21 \u00e9s STM32F103 platformokra Teljes\u00edtm\u00e9nyjavul\u00e1s ARM processzorokon A kinematikai k\u00f3dot \u00e1t\u00edrtuk, hogy egy \"iterat\u00edv megold\u00f3t\" haszn\u00e1ljon \u00daj automatikus tesztel\u00e9si esetek a Klipper gazdag\u00e9p szoftverhez Sz\u00e1mos \u00faj p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jl a szok\u00e1sos nyomtat\u00f3khoz Dokument\u00e1ci\u00f3friss\u00edt\u00e9sek rendszerbet\u00f6lt\u0151kh\u00f6z, teljes\u00edtm\u00e9ny\u00e9rt\u00e9kel\u00e9shez, mikrovez\u00e9rl\u0151 portol\u00e1shoz, konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9sekhez, t\u0171 hozz\u00e1rendel\u00e9shez, szeletel\u0151be\u00e1ll\u00edt\u00e1sokhoz, csomagol\u00e1shoz \u00e9s egyebekhez Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s","title":"Klipper 0.7.0"},{"location":"Releases.html#klipper-060","text":"El\u00e9rhet\u0151 a 20180331. F\u0151bb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: Tov\u00e1bbfejlesztett f\u0171t\u0151berendez\u00e9s \u00e9s termisztor hardverhiba ellen\u0151rz\u00e9sek Z-szond\u00e1k t\u00e1mogat\u00e1sa A delt\u00e1k automatikus param\u00e9terkalibr\u00e1l\u00e1s\u00e1nak kezdeti t\u00e1mogat\u00e1sa (egy \u00faj delta_calibrate parancson kereszt\u00fcl) A t\u00e1rgyasztal d\u0151l\u00e9skiegyenl\u00edt\u00e9s\u00e9nek kezdeti t\u00e1mogat\u00e1sa (a bed_tilt_calibrate paranccsal) A \"biztons\u00e1gos kezd\u0151pont\" \u00e9s a kezd\u0151pont fel\u00fclb\u00edr\u00e1l\u00e1s\u00e1nak kezdeti t\u00e1mogat\u00e1sa Kezdeti t\u00e1mogat\u00e1s az \u00e1llapot megjelen\u00edt\u00e9s\u00e9hez a RepRapDiscount 2004 \u00e9s 12864 st\u00edlus\u00fa kijelz\u0151k\u00f6n \u00daj multi-extruder fejleszt\u00e9sek: A megosztott f\u0171t\u0151testek t\u00e1mogat\u00e1sa Kezdeti t\u00e1mogat\u00e1s kett\u0151s kocsikhoz T\u00f6bb l\u00e9ptet\u0151 tengelyenk\u00e9nti konfigur\u00e1l\u00e1s\u00e1nak t\u00e1mogat\u00e1sa (pl. kett\u0151s Z) Egyedi digit\u00e1lis \u00e9s PWM kimeneti t\u0171k t\u00e1mogat\u00e1sa (\u00faj SET_PIN paranccsal) Kezdeti t\u00e1mogat\u00e1s egy \"virtu\u00e1lis SDcard\" sz\u00e1m\u00e1ra, amely lehet\u0151v\u00e9 teszi a nyomtat\u00e1st k\u00f6zvetlen\u00fcl a Klipperr\u0151l (seg\u00edt a t\u00fal lass\u00fa g\u00e9peken, hogy az OctoPrint j\u00f3l fusson) K\u00fcl\u00f6nb\u00f6z\u0151 karhossz\u00fas\u00e1gok be\u00e1ll\u00edt\u00e1s\u00e1nak t\u00e1mogat\u00e1sa a delta minden egyes torny\u00e1n A G-k\u00f3d M220/M221 parancsok t\u00e1mogat\u00e1sa (sebess\u00e9gt\u00e9nyez\u0151 fel\u00fclb\u00edr\u00e1l\u00e1sa / extrud\u00e1l\u00e1si t\u00e9nyez\u0151 fel\u00fclb\u00edr\u00e1l\u00e1sa) Sz\u00e1mos dokument\u00e1ci\u00f3 friss\u00edt\u00e9s: Sz\u00e1mos \u00faj p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jl a szok\u00e1sos nyomtat\u00f3khoz \u00daj t\u00f6bb MCU konfigur\u00e1ci\u00f3s p\u00e9lda \u00daj BL-Touch \u00e9rz\u00e9kel\u0151 konfigur\u00e1ci\u00f3s p\u00e9lda \u00daj GYIK, konfigur\u00e1ci\u00f3s ellen\u0151rz\u00e9s \u00e9s G-k\u00f3d dokumentumok Kezdeti t\u00e1mogat\u00e1s a folyamatos integr\u00e1ci\u00f3 tesztel\u00e9s\u00e9hez az \u00f6sszes v\u00e9gleges GitHub fejleszt\u00e9sben Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s","title":"Klipper 0.6.0"},{"location":"Releases.html#klipper-050","text":"El\u00e9rhet\u0151 a 20171025. F\u0151bb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: T\u00f6bb extruderrel rendelkez\u0151 nyomtat\u00f3k t\u00e1mogat\u00e1sa. Kezdeti t\u00e1mogat\u00e1s a Beaglebone PRU-n val\u00f3 futtat\u00e1shoz. Kezdeti t\u00e1mogat\u00e1s a Replicape alaplaphoz. Kezdeti t\u00e1mogat\u00e1s a mikrokontroller k\u00f3dj\u00e1nak val\u00f3s idej\u0171 Linux-folyamatban t\u00f6rt\u00e9n\u0151 futtat\u00e1s\u00e1hoz. T\u00f6bb mikrovez\u00e9rl\u0151 t\u00e1mogat\u00e1sa. (P\u00e9ld\u00e1ul egy extruder vez\u00e9relhet\u0151 egy mikrokontrollerrel, a nyomtat\u00f3 t\u00f6bbi r\u00e9sze pedig egy m\u00e1sikkal.) A mikrovez\u00e9rl\u0151k k\u00f6z\u00f6tti m\u0171veletek \u00f6sszehangol\u00e1s\u00e1hoz szoftveres \u00f3rajel-szinkroniz\u00e1l\u00e1s van implement\u00e1lva. L\u00e9peget\u0151 teljes\u00edtm\u00e9ny\u00e9nek jav\u00edt\u00e1sa (20Mhz-es AVR-ek ak\u00e1r 189K l\u00e9p\u00e9s/m\u00e1sodpercig). T\u00e1mogat\u00e1s a szerv\u00f3k vez\u00e9rl\u00e9s\u00e9hez \u00e9s a fejh\u0171t\u0151 ventil\u00e1torok meghat\u00e1roz\u00e1s\u00e1hoz. Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s","title":"Klipper 0.5.0"},{"location":"Releases.html#klipper-040","text":"El\u00e9rhet\u0151 a 20170503. F\u0151bb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: Jav\u00edtott telep\u00edt\u00e9s Raspberry Pi g\u00e9pekre. A telep\u00edt\u00e9s nagy r\u00e9sze most m\u00e1r szkriptelt. A corexy kinematika t\u00e1mogat\u00e1sa Dokument\u00e1ci\u00f3 friss\u00edt\u00e9sek: \u00daj Kinematika dokumentum, \u00faj Pressure Advance tuning \u00fatmutat\u00f3, \u00faj p\u00e9lda konfigur\u00e1ci\u00f3s f\u00e1jlok, stb L\u00e9ptet\u0151 teljes\u00edtm\u00e9ny javul\u00e1sa (20Mhz AVR t\u00f6bb mint 175K l\u00e9p\u00e9s/m\u00e1sodperc, Arduino Due t\u00f6bb mint 460K) A mikrokontroller automatikus vissza\u00e1ll\u00edt\u00e1s\u00e1nak t\u00e1mogat\u00e1sa. A Raspberry Pi USB t\u00e1pell\u00e1t\u00e1s\u00e1nak kapcsol\u00e1s\u00e1val t\u00f6rt\u00e9n\u0151 vissza\u00e1ll\u00edt\u00e1s t\u00e1mogat\u00e1sa. A nyom\u00e1s el\u0151tol\u00e1s algoritmus mostant\u00f3l look-ahead funkci\u00f3val m\u0171k\u00f6dik, hogy cs\u00f6kkentse a kanyarod\u00e1s k\u00f6zbeni nyom\u00e1sv\u00e1ltoz\u00e1sokat. A r\u00f6vid cikcakk mozg\u00e1sok maxim\u00e1lis sebess\u00e9g\u00e9nek korl\u00e1toz\u00e1sa AD595 \u00e9rz\u00e9kel\u0151k t\u00e1mogat\u00e1sa Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s","title":"Klipper 0.4.0"},{"location":"Releases.html#klipper-030","text":"El\u00e9rhet\u0151 a 20161223. F\u0151bb v\u00e1ltoz\u00e1sok ebben a kiad\u00e1sban: Jav\u00edtott dokument\u00e1ci\u00f3 Delta kinematikai robotok t\u00e1mogat\u00e1sa Arduino Due mikrokontroller t\u00e1mogat\u00e1sa (ARM cortex-M3) USB alap\u00fa AVR mikrovez\u00e9rl\u0151k t\u00e1mogat\u00e1sa T\u00e1mogat\u00e1s a \"nyom\u00e1s el\u0151tol\u00e1s\" algoritmushoz - ez cs\u00f6kkenti a nyomatok sor\u00e1n keletkez\u0151 sziv\u00e1rg\u00e1st. \u00daj \"l\u00e9ptet\u0151f\u00e1zis-alap\u00fa v\u00e9g\u00e1ll\u00e1s\" funkci\u00f3 - nagyobb pontoss\u00e1got tesz lehet\u0151v\u00e9 a kezd\u0151pont v\u00e9g\u00e1ll\u00e1s\u00e1ban. A \"kiterjesztett G-k\u00f3d\" parancsok t\u00e1mogat\u00e1sa, mint p\u00e9ld\u00e1ul a \"help\", \"restart\" \u00e9s \"status\". A Klipper konfigur\u00e1ci\u00f3 \u00fajrat\u00f6lt\u00e9s\u00e9nek \u00e9s a gazdaszoftver \u00fajraind\u00edt\u00e1s\u00e1nak t\u00e1mogat\u00e1sa a \"restart\" parancs termin\u00e1lb\u00f3l t\u00f6rt\u00e9n\u0151 kiad\u00e1s\u00e1val. L\u00e9peget\u0151 teljes\u00edtm\u00e9ny\u00e9nek jav\u00edt\u00e1sa (20Mhz-es AVR-ek ak\u00e1r 158K l\u00e9p\u00e9s/m\u00e1sodpercig). Jav\u00edtott hibajelent\u00e9s. A legt\u00f6bb hiba mostant\u00f3l a termin\u00e1lon kereszt\u00fcl jelenik meg, a megold\u00e1sra vonatkoz\u00f3 seg\u00edts\u00e9ggel egy\u00fctt. Sz\u00e1mos hibajav\u00edt\u00e1s \u00e9s k\u00f3dtiszt\u00edt\u00e1s","title":"Klipper 0.3.0"},{"location":"Releases.html#klipper-020","text":"A Klipper els\u0151 kiad\u00e1sa. El\u00e9rhet\u0151 a 20160525. A kezdeti kiad\u00e1sban el\u00e9rhet\u0151 f\u0151bb funkci\u00f3k a k\u00f6vetkez\u0151k: Alapvet\u0151 t\u00e1mogat\u00e1s cartesian nyomtat\u00f3khoz (stepperek, extruder, f\u0171t\u00f6tt t\u00e1rgyasztal, h\u0171t\u0151ventil\u00e1tor). A gyakori G-k\u00f3d parancsok t\u00e1mogat\u00e1sa. Az OctoPrint interf\u00e9sz t\u00e1mogat\u00e1sa. Gyorsul\u00e1s \u00e9s el\u0151retekint\u0151 kezel\u00e9s AVR mikrovez\u00e9rl\u0151k t\u00e1mogat\u00e1sa szabv\u00e1nyos soros portokon kereszt\u00fcl","title":"Klipper 0.2.0"},{"location":"Resonance_Compensation.html","text":"Rezonancia Kompenz\u00e1ci\u00f3 \u00b6 A Klipper t\u00e1mogatja a bemeneti form\u00e1z\u00e1st. Egy olyan technik\u00e1t, amely a nyomatok cseng\u00e9s\u00e9nek (m\u00e1s n\u00e9ven visszhang, szellemk\u00e9p vagy hull\u00e1mz\u00e1s) cs\u00f6kkent\u00e9s\u00e9re haszn\u00e1lhat\u00f3. A gy\u0171r\u0151d\u00e9s egy fel\u00fcleti nyomtat\u00e1si hiba, amikor jellemz\u0151en az olyan elemek, mint az \u00e9lek, finom 'visszhangk\u00e9nt' ism\u00e9tl\u0151dnek a nyomtatott fel\u00fcleten: | | | A gy\u0171r\u0151d\u00e9st a nyomtat\u00e1si ir\u00e1ny gyors v\u00e1ltoz\u00e1sa miatt fell\u00e9p\u0151 mechanikus rezg\u00e9sek okozz\u00e1k. Vedd figyelembe, hogy a gy\u0171r\u0151d\u00e9s \u00e1ltal\u00e1ban mechanikai eredet\u0171: nem el\u00e9g merev nyomtat\u00f3keret, nem feszes vagy t\u00fals\u00e1gosan rug\u00f3s sz\u00edjak, a mechanikus alkatr\u00e9szek be\u00e1ll\u00edt\u00e1si probl\u00e9m\u00e1i, nagy mozg\u00f3 t\u00f6meg stb. Ezeket kell el\u0151sz\u00f6r ellen\u0151rizni \u00e9s lehet\u0151s\u00e9g szerint jav\u00edtani. A Bemeneti form\u00e1z\u00e1s egy olyan ny\u00edlt hurk\u00fa vez\u00e9rl\u00e9si technika, amely olyan utas\u00edt\u00f3 jelet hoz l\u00e9tre, amely megsz\u00fcnteti a saj\u00e1t rezg\u00e9seit. A bemeneti alak\u00edt\u00e1s n\u00e9mi hangol\u00e1st \u00e9s m\u00e9r\u00e9seket ig\u00e9nyel, miel\u0151tt enged\u00e9lyezhet\u0151 lenne. A cseng\u00e9sen k\u00edv\u00fcl a Bemeneti form\u00e1z\u00e1s \u00e1ltal\u00e1ban cs\u00f6kkenti a nyomtat\u00f3 rezg\u00e9seit \u00e9s r\u00e1zk\u00f3d\u00e1s\u00e1t, \u00e9s jav\u00edthatja a Trinamic l\u00e9ptet\u0151 meghajt\u00f3k StealthChop \u00fczemm\u00f3dj\u00e1nak megb\u00edzhat\u00f3s\u00e1g\u00e1t is. Hangol\u00e1s \u00b6 Az alaphangol\u00e1shoz a nyomtat\u00f3 gy\u0171r\u0151d\u00e9si frekvenci\u00e1j\u00e1nak m\u00e9r\u00e9se sz\u00fcks\u00e9ges egy tesztmodell nyomtat\u00e1s\u00e1val. Szeletelje fel a docs/prints/ringing_tower.stl f\u00e1jlban tal\u00e1lhat\u00f3 gy\u0171r\u0151d\u00e9si tesztmodellt a szeletel\u0151ben: A javasolt r\u00e9tegmagass\u00e1g 0,2 vagy 0,25 mm. A kit\u00f6lt\u0151 \u00e9s a fels\u0151 r\u00e9tegek 0-ra \u00e1ll\u00edthat\u00f3k. Haszn\u00e1lj 1-2 falat, vagy m\u00e9g jobb a sima v\u00e1za m\u00f3d 1-2 mm-es alappal. A k\u00fcls\u0151 ker\u00fcletekn\u00e9l haszn\u00e1lj kell\u0151en nagy sebess\u00e9get, k\u00f6r\u00fclbel\u00fcl 80-100 mm/sec. Gy\u0151z\u0151dj meg r\u00f3la, hogy a minim\u00e1lis r\u00e9tegid\u0151 legfeljebb 3 m\u00e1sodperc. Gy\u0151z\u0151dj meg r\u00f3la, hogy a szeletel\u0151ben a \"dinamikus gyors\u00edt\u00e1svez\u00e9rl\u00e9s\" ki van kapcsolva. Ne ford\u00edtsd el a modellt. A modell h\u00e1tulj\u00e1n X \u00e9s Y jel\u00f6l\u00e9sek vannak. Figyelje meg a jelek szokatlan elhelyezked\u00e9s\u00e9t a nyomtat\u00f3 tengelyeihez k\u00e9pest. Ez nem hiba. A jel\u00f6l\u00e9sek k\u00e9s\u0151bb a hangol\u00e1si folyamat sor\u00e1n referenciak\u00e9nt haszn\u00e1lhat\u00f3k, mert megmutatj\u00e1k, hogy a m\u00e9r\u00e9sek melyik tengelynek felelnek meg. Gy\u0171r\u0151d\u00e9si frekvencia \u00b6 El\u0151sz\u00f6r is m\u00e9rd meg a gy\u0171r\u0151d\u00e9si frekvenci\u00e1t . Ha a square_corner_velocity param\u00e9tert megv\u00e1ltoztattuk, \u00e1ll\u00edtsuk vissza az 5.0-ra. Nem tan\u00e1csos n\u00f6velni, ha bemeneti alak\u00edt\u00f3t haszn\u00e1l, mert ez nagyobb sim\u00edt\u00e1st okozhat az alkatr\u00e9szekben - helyette jobb, ha nagyobb gyorsul\u00e1si \u00e9rt\u00e9ket haszn\u00e1l. N\u00f6velje a max_accel_to_decel \u00e9rt\u00e9ket a k\u00f6vetkez\u0151 parancs kiad\u00e1s\u00e1val: SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 Nyom\u00e1s el\u0151tol\u00e1s kikapcsol\u00e1sa: SET_PRESSURE_ADVANCE ADVANCE=0 Ha m\u00e1r hozz\u00e1adta az [input_shaper] r\u00e9szt a printer.cfg f\u00e1jlhoz, akkor hajtsd v\u00e9gre a SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0 parancsot. Ha \"Unknown command\" hib\u00e1t kap, nyugodtan figyelmen k\u00edv\u00fcl hagyhatja ezen a ponton, \u00e9s folytathatja a m\u00e9r\u00e9seket. V\u00e9gezd el a parancsot: TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Alapvet\u0151en a gyorsul\u00e1s k\u00fcl\u00f6nb\u00f6z\u0151 nagy \u00e9rt\u00e9keinek be\u00e1ll\u00edt\u00e1s\u00e1val pr\u00f3b\u00e1ljuk a gy\u0171r\u0151d\u00e9st hangs\u00falyosabb\u00e1 tenni. Ez a parancs 1500 mm/sec^2-t\u0151l kezdve 5 mm-enk\u00e9nt n\u00f6veli a gyorsul\u00e1st: 1500 mm/sec^2, 2000 mm/sec^2, 2500 mm/sec^2 \u00e9s \u00edgy tov\u00e1bb, eg\u00e9szen 7000 mm/sec^2-ig az utols\u00f3 s\u00e1vra. Nyomtasd ki a szeletelt tesztmodellt a javasolt param\u00e9terekkel. A nyomtat\u00e1st kor\u00e1bban is le\u00e1ll\u00edthatja, ha a gy\u0171r\u0151d\u00e9s j\u00f3l l\u00e1that\u00f3, \u00e9s \u00fagy l\u00e1tja, hogy a gyorsul\u00e1s t\u00fal nagy lesz a nyomtat\u00f3 sz\u00e1m\u00e1ra (pl. a nyomtat\u00f3 t\u00fals\u00e1gosan remeg, vagy elkezd l\u00e9p\u00e9seket kihagyni). Haszn\u00e1ld a modell h\u00e1tulj\u00e1n tal\u00e1lhat\u00f3 X \u00e9s Y jeleket a t\u00e1j\u00e9koz\u00f3d\u00e1shoz. Az X-jel\u00f6l\u00e9ssel ell\u00e1tott oldalr\u00f3l t\u00f6rt\u00e9n\u0151 m\u00e9r\u00e9seket kell haszn\u00e1lni az X tengely konfigur\u00e1ci\u00f3hoz , az Y-jel\u00f6l\u00e9st pedig az Y tengely konfigur\u00e1ci\u00f3j\u00e1hoz. M\u00e9rd meg a t\u00e1vols\u00e1got D (mm-ben) t\u00f6bb rezg\u00e9s k\u00f6z\u00f6tt az X jelz\u00e9s\u0171 alkatr\u00e9szen, a bev\u00e1g\u00e1sok k\u00f6zel\u00e9ben, lehet\u0151leg az els\u0151 egy-k\u00e9t rezg\u00e9st kihagyva. Az oszcill\u00e1ci\u00f3k k\u00f6z\u00f6tti t\u00e1vols\u00e1g k\u00f6nnyebb m\u00e9r\u00e9s\u00e9hez el\u0151sz\u00f6r jel\u00f6lje meg az oszcill\u00e1ci\u00f3kat, majd m\u00e9rd meg a jel\u00f6l\u00e9sek k\u00f6z\u00f6tti t\u00e1vols\u00e1got vonalz\u00f3val vagy tol\u00f3m\u00e9r\u0151vel:| | | Sz\u00e1molja meg, hogy a m\u00e9rt t\u00e1vols\u00e1g N h\u00e1ny rezg\u00e9snek D felel meg. Ha nem biztos benne, hogy hogyan sz\u00e1molja a rezg\u00e9seket, n\u00e9zze meg a fenti k\u00e9pet, ahol N = 6 rezg\u00e9s. Sz\u00e1m\u00edtsuk ki az X tengely gy\u0171r\u0151d\u00e9si frekvenci\u00e1j\u00e1t V \u00b7 N / D (Hz), ahol V a k\u00fcls\u0151 ker\u00fcletekre vonatkoz\u00f3 sebess\u00e9g (mm/sec). A fenti p\u00e9ld\u00e1n\u00e1l 6 rezg\u00e9st jel\u00f6lt\u00fcnk meg, \u00e9s a tesztet 100 mm/sec sebess\u00e9ggel nyomtattuk, \u00edgy a frekvencia 100 * 6 / 12,14 \u2248 49,4 Hz. A (8)-(10) pontokat az Y jel eset\u00e9ben is v\u00e9gezz\u00fck el. Vedd figyelembe, hogy a pr\u00f3banyomaton a gy\u0171r\u0151d\u00e9snek a fenti k\u00e9pen l\u00e1that\u00f3 \u00edves bev\u00e1g\u00e1sok mint\u00e1j\u00e1t kell k\u00f6vetnie. Ha nem \u00edgy van, akkor ez a hiba nem igaz\u00e1n gy\u0171r\u0151d\u00e9s, \u00e9s m\u00e1s eredet\u0171. Vagy mechanikai, vagy extruder probl\u00e9ma. Ezt kell el\u0151sz\u00f6r kijav\u00edtani, miel\u0151tt enged\u00e9lyezn\u00e9nk \u00e9s hangoln\u00e1nk a bemeneti form\u00e1z\u00f3kat. Ha a m\u00e9r\u00e9sek nem megb\u00edzhat\u00f3ak, mert p\u00e9ld\u00e1ul a rezg\u00e9sek k\u00f6z\u00f6tti t\u00e1vols\u00e1g nem stabil, az azt jelentheti, hogy a nyomtat\u00f3nak t\u00f6bb rezonanciafrekvenci\u00e1ja van ugyanazon a tengelyen. Megpr\u00f3b\u00e1lhatjuk helyette a A gy\u0171r\u0151d\u00e9si frekvenci\u00e1k megb\u00edzhatatlan m\u00e9r\u00e9sei szakaszban le\u00edrt hangol\u00e1si elj\u00e1r\u00e1st k\u00f6vetni, \u00e9s m\u00e9g mindig kaphatunk valami inf\u00f3t a bemeneti alak\u00edt\u00e1si technik\u00e1r\u00f3l. A gy\u0171r\u0151d\u00e9si frekvencia f\u00fcgghet a modell t\u00e1rgyasztalon bel\u00fcli helyzet\u00e9t\u0151l \u00e9s a Z magass\u00e1gt\u00f3l, k\u00fcl\u00f6n\u00f6sen a delta nyomtat\u00f3kn\u00e1l ; ellen\u0151rizheti, hogy a tesztmodell oldalai ment\u00e9n \u00e9s k\u00fcl\u00f6nb\u00f6z\u0151 magass\u00e1gokban k\u00fcl\u00f6nb\u00f6z\u0151 poz\u00edci\u00f3kban l\u00e1t-e k\u00fcl\u00f6nbs\u00e9get a frekvenci\u00e1kban. Ha ez a helyzet, akkor kisz\u00e1m\u00edthatja az X \u00e9s Y tengelyen m\u00e9rt \u00e1tlagos gy\u0171r\u0151d\u00e9si frekvenci\u00e1kat. Ha a m\u00e9rt gy\u0171r\u0151d\u00e9si frekvencia nagyon alacsony (kb. 20-25 Hz alatti), akkor \u00e9rdemes lehet a nyomtat\u00f3 merev\u00edt\u00e9s\u00e9re vagy a mozg\u00f3 t\u00f6meg cs\u00f6kkent\u00e9s\u00e9re beruh\u00e1zni - att\u00f3l f\u00fcgg\u0151en, hogy mi alkalmazhat\u00f3 a te esetedben -, miel\u0151tt a bemeneti alak\u00edt\u00e1s tov\u00e1bbi hangol\u00e1s\u00e1t folytatn\u00e1d, \u00e9s ut\u00e1na \u00fajra megm\u00e9rn\u00e9d a frekvenci\u00e1kat. Sok n\u00e9pszer\u0171 nyomtat\u00f3modell eset\u00e9ben gyakran m\u00e1r rendelkez\u00e9sre \u00e1ll n\u00e9h\u00e1ny megold\u00e1s. Vedd figyelembe, hogy a gy\u0171r\u0151d\u00e9si frekvenci\u00e1k v\u00e1ltozhatnak, ha a nyomtat\u00f3ban olyan v\u00e1ltoztat\u00e1sokat v\u00e9geznek, amelyek hat\u00e1ssal vannak a mozg\u00f3 t\u00f6megre, vagy p\u00e9ld\u00e1ul megv\u00e1ltoztatj\u00e1k a g\u00e9pv\u00e1z merevs\u00e9g\u00e9t: A nyomtat\u00f3fejre n\u00e9h\u00e1ny olyan eszk\u00f6zt telep\u00edtenek, elt\u00e1vol\u00edtanak vagy kicser\u00e9lnek, amelyek megv\u00e1ltoztatj\u00e1k annak t\u00f6meg\u00e9t, pl. \u00faj (nehezebb vagy k\u00f6nnyebb) l\u00e9ptet\u0151motor a k\u00f6zvetlen extrudernek vagy \u00faj nyomtat\u00f3fej telep\u00edt\u00e9se, neh\u00e9z, t\u00e1rgyh\u0171t\u0151vel ell\u00e1tott ventil\u00e1tor be\u00e9p\u00edt\u00e9se stb. A sz\u00edjak megh\u00faz\u00e1sa. A v\u00e1z merevs\u00e9g\u00e9nek n\u00f6vel\u00e9s\u00e9re szolg\u00e1l\u00f3 n\u00e9h\u00e1ny kieg\u00e9sz\u00edt\u00e9s telep\u00edtve van. K\u00fcl\u00f6nb\u00f6z\u0151 t\u00e1rgyasztal van telep\u00edtve egy Y t\u00e1rgyasztalos nyomtat\u00f3ra, vagy \u00fcveg hozz\u00e1ad\u00e1sa stb. Ha ilyen v\u00e1ltoztat\u00e1sokat hajtanak v\u00e9gre, akkor \u00e9rdemes legal\u00e1bb a gy\u0171r\u0151d\u00e9si frekvenci\u00e1kat megm\u00e9rni, hogy l\u00e1ss\u00e1k, v\u00e1ltoztak-e azok. Bemeneti form\u00e1z\u00f3 konfigur\u00e1ci\u00f3ja \u00b6 Az X \u00e9s Y tengelyek gy\u0171r\u0151d\u00e9si frekvenci\u00e1j\u00e1nak m\u00e9r\u00e9se ut\u00e1n a k\u00f6vetkez\u0151 szakaszt adhatja hozz\u00e1 a printer.cfg f\u00e1jlhoz: [input_shaper] shaper_freq_x: ... # a tesztmodell X jel\u00e9nek frekvenci\u00e1ja shaper_freq_y: ... # a tesztmodell Y jel\u00e9nek frekvenci\u00e1ja A fenti p\u00e9ld\u00e1ban a shaper_freq_x/y = 49.4. Bemeneti form\u00e1z\u00f3 kiv\u00e1laszt\u00e1sa \u00b6 A Klipper sz\u00e1mos bemeneti form\u00e1z\u00f3t t\u00e1mogat. Ezek a rezonanciafrekvenci\u00e1t meghat\u00e1roz\u00f3 hib\u00e1kra val\u00f3 \u00e9rz\u00e9kenys\u00e9g\u00fckben \u00e9s abban k\u00fcl\u00f6nb\u00f6znek, hogy milyen m\u00e9rt\u00e9k\u0171 sim\u00edt\u00e1st okoznak a nyomtatott alkatr\u00e9szekben. Emellett n\u00e9h\u00e1ny shapert, p\u00e9ld\u00e1ul a 2HUMP_EI \u00e9s a 3HUMP_EI form\u00e1z\u00f3kat \u00e1ltal\u00e1ban nem szabad haszn\u00e1lni shaper_freq = rezonanciafrekvenci\u00e1val - ezek k\u00fcl\u00f6nb\u00f6z\u0151 megfontol\u00e1sokb\u00f3l vannak be\u00e1ll\u00edtva, hogy egyszerre t\u00f6bb rezonanci\u00e1t cs\u00f6kkentsenek. A legt\u00f6bb nyomtat\u00f3hoz MZV vagy EI alak\u00edt\u00f3k aj\u00e1nlhat\u00f3k. Ez a szakasz egy tesztel\u00e9si elj\u00e1r\u00e1st \u00edr le a kett\u0151 k\u00f6z\u00f6tti v\u00e1laszt\u00e1shoz, valamint n\u00e9h\u00e1ny egy\u00e9b kapcsol\u00f3d\u00f3 param\u00e9ter meghat\u00e1roz\u00e1s\u00e1hoz. Nyomtasd ki a gy\u0171r\u0151d\u00e9si tesztmodellt az al\u00e1bbiak szerint: Ind\u00edtsa \u00fajra a firmware-t: RESTART K\u00e9sz\u00fclj fel a tesztre: SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 Nyom\u00e1s el\u0151tol\u00e1s kikapcsol\u00e1sa: SET_PRESSURE_ADVANCE ADVANCE=0 Add ki a parancsot: SET_INPUT_SHAPER SHAPER_TYPE=MZV Add ki a parancsot: TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Nyomtasd ki a szeletelt tesztmodellt a javasolt param\u00e9terekkel. Ha ezen a ponton nem l\u00e1t gy\u0171r\u0151d\u00e9st, akkor az MZV form\u00e1z\u00f3 haszn\u00e1lat\u00e1t lehet javasolni. Ha m\u00e9gis gy\u0171r\u0151d\u00e9st \u00e9szlelsz, m\u00e9rd meg \u00fajra a frekvenci\u00e1kat a Gy\u0171r\u0151d\u00e9si frekvencia szakaszban le\u00edrt (8)-(10) l\u00e9p\u00e9sekkel. Ha a frekvenci\u00e1k jelent\u0151sen elt\u00e9rnek a kor\u00e1bban kapott \u00e9rt\u00e9kekt\u0151l, akkor \u00f6sszetettebb bemeneti alak\u00edt\u00f3 konfigur\u00e1ci\u00f3ra van sz\u00fcks\u00e9g. L\u00e1sd a Bemeneti alak\u00edt\u00f3k szakasz m\u0171szaki r\u00e9szleteit. Ellenkez\u0151 esetben folytasd a k\u00f6vetkez\u0151 l\u00e9p\u00e9ssel. Most pr\u00f3b\u00e1ld ki az EI bemeneti alak\u00edt\u00f3t. Ehhez ism\u00e9telje meg a fenti (1)-(6) l\u00e9p\u00e9seket, de a 4. l\u00e9p\u00e9sn\u00e9l hajtsd v\u00e9gre a k\u00f6vetkez\u0151 parancsot: SET_INPUT_SHAPER SHAPER_TYPE=EI . K\u00e9t nyomat \u00f6sszehasonl\u00edt\u00e1sa MZV \u00e9s EI bemeneti alak\u00edt\u00f3val. Ha az EI \u00e9szrevehet\u0151en jobb eredm\u00e9nyt mutat, mint az MZV, akkor haszn\u00e1ld az EI alak\u00edt\u00f3t, egy\u00e9bk\u00e9nt ink\u00e1bb az MZV-t. Vedd figyelembe, hogy az EI shaper t\u00f6bb sim\u00edt\u00e1st okoz a nyomtatott alkatr\u00e9szeken (tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a k\u00f6vetkez\u0151 szakaszt). Add hozz\u00e1 a shaper_type: mzv (vagy ei) param\u00e9tert az [input_shaper] szakaszhoz, pl.: [input_shaper] shaper_freq_x: ... shaper_freq_y: ... shaper_type: mzv N\u00e9h\u00e1ny megjegyz\u00e9s a form\u00e1z\u00f3 kiv\u00e1laszt\u00e1s\u00e1r\u00f3l: Az EI-form\u00e1z\u00f3 alkalmasabb lehet az Y t\u00e1rgyasztalos nyomtat\u00f3khoz (ha a rezonanciafrekvencia \u00e9s az ebb\u0151l ered\u0151 sim\u00edt\u00e1s lehet\u0151v\u00e9 teszi): mivel t\u00f6bb sz\u00e1l ker\u00fcl a mozg\u00f3 t\u00e1rgyasztalra, a t\u00e1rgyasztal t\u00f6mege n\u0151, \u00e9s a rezonanciafrekvencia cs\u00f6kken. Mivel az EI shaper robusztusabb a rezonanciafrekvencia-v\u00e1ltoz\u00e1sokkal szemben, jobban m\u0171k\u00f6dhet nagy m\u00e9ret\u0171 alkatr\u00e9szek nyomtat\u00e1sakor. A delta kinematika term\u00e9szet\u00e9b\u0151l ad\u00f3d\u00f3an a rezonanciafrekvenci\u00e1k a t\u00e9rfogat k\u00fcl\u00f6nb\u00f6z\u0151 r\u00e9szein nagym\u00e9rt\u00e9kben elt\u00e9rhetnek. Ez\u00e9rt az EI alak\u00edt\u00f3 jobban illeszkedhet a delta nyomtat\u00f3khoz, mint az MZV vagy a ZV, \u00e9s megfontoland\u00f3 a haszn\u00e1lata. Ha a rezonanciafrekvencia kell\u0151en nagy (50-60 Hz-n\u00e9l nagyobb), akkor ak\u00e1r meg is pr\u00f3b\u00e1lkozhatunk a 2HUMP_EI shaper tesztel\u00e9s\u00e9vel (a fent javasolt teszt futtat\u00e1s\u00e1val a SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI ), de ellen\u0151rizd ebben a szakaszban tal\u00e1lhat\u00f3 megfontol\u00e1sokat, miel\u0151tt enged\u00e9lyezn\u00e9d. A max_accel kiv\u00e1laszt\u00e1sa \u00b6 Az el\u0151z\u0151 l\u00e9p\u00e9sben kiv\u00e1lasztott form\u00e1z\u00f3hoz nyomtatott tesztet kell k\u00e9sz\u00edtenie (ha nem nyomtatja ki a javasolt param\u00e9terekkel felszeletelt tesztmodellt a nyom\u00e1s el\u0151tol\u00e1s kikapcsol\u00e1s\u00e1val SET_PRESSURE_ADVANCE ADVANCE=0 \u00e9s a tuningtorony enged\u00e9lyez\u00e9s\u00e9vel TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 ). Vedd figyelembe, hogy nagyon nagy gyorsul\u00e1sokn\u00e1l a rezonanciafrekvenci\u00e1t\u00f3l \u00e9s a v\u00e1lasztott bemeneti alak\u00edt\u00f3t\u00f3l f\u00fcgg\u0151en (pl. az EI alak\u00edt\u00f3 nagyobb sim\u00edt\u00e1st hoz l\u00e9tre, mint az MZV) a bemeneti alak\u00edt\u00e1s t\u00fal nagy sim\u00edt\u00e1st \u00e9s az alkatr\u00e9szek lekerek\u00edt\u00e9s\u00e9t okozhatja. A max_accel \u00e9rt\u00e9ket teh\u00e1t \u00fagy kell megv\u00e1lasztani, hogy ezt megakad\u00e1lyozza. Egy m\u00e1sik param\u00e9ter, amely hat\u00e1ssal lehet a sim\u00edt\u00e1sra, az square_corner_velocity , ez\u00e9rt nem tan\u00e1csos az alap\u00e9rtelmezett 5 mm/sec f\u00f6l\u00e9 n\u00f6velni, hogy megakad\u00e1lyozzuk a fokozott sim\u00edt\u00e1st. A megfelel\u0151 max_accel \u00e9rt\u00e9k kiv\u00e1laszt\u00e1s\u00e1hoz vizsg\u00e1ld meg a kiv\u00e1lasztott bemeneti alak\u00edt\u00f3 modellj\u00e9t. El\u0151sz\u00f6r is jegyezze meg, hogy melyik gyorsul\u00e1sn\u00e1l m\u00e9g kicsi a gyorsul\u00e1s gy\u0171r\u0151d\u00e9se hogy Neked ez megfeleljen. Ezut\u00e1n ellen\u0151rizd a sim\u00edt\u00e1st. Ennek el\u0151seg\u00edt\u00e9se \u00e9rdek\u00e9ben a tesztmodellben egy kis r\u00e9s van a falon (0,15 mm): Ahogy n\u0151 a gyorsul\u00e1s, \u00fagy n\u0151 a sim\u00edt\u00e1s is, \u00e9s a t\u00e9nyleges r\u00e9s a nyomtat\u00e1sban kisz\u00e9lesedik: Ezen a k\u00e9pen a gyorsul\u00e1s balr\u00f3l jobbra n\u00f6vekszik, \u00e9s a r\u00e9s 3500 mm/sec^2-t\u0151l (balr\u00f3l az 5. s\u00e1v) kezd n\u0151ni. Teh\u00e1t ebben az esetben a max_accel = 3000 (mm/sec^2) a j\u00f3 \u00e9rt\u00e9k, hogy elker\u00fclj\u00fck a t\u00falzott sim\u00edt\u00e1st. Figyelje meg a gyorsul\u00e1st, amikor a r\u00e9s m\u00e9g mindig nagyon kicsi a pr\u00f3banyomaton. Ha kidudorod\u00e1sokat l\u00e1t, de a falon egy\u00e1ltal\u00e1n nincs r\u00e9s, m\u00e9g nagy gyorsul\u00e1sn\u00e1l is, az a kikapcsolt nyom\u00e1sel\u0151tol\u00e1s miatt lehet, k\u00fcl\u00f6n\u00f6sen a bowdenes extrudereken. Ha ez a helyzet, akkor lehet, hogy meg kell ism\u00e9telni a nyomtat\u00e1st enged\u00e9lyezett PA-val. Ez lehet a rosszul kalibr\u00e1lt (t\u00fal magas) nyomtat\u00f3sz\u00e1l \u00e1raml\u00e1s eredm\u00e9nye is, ez\u00e9rt ezt is \u00e9rdemes ellen\u0151rizni. V\u00e1laszd ki a k\u00e9t gyorsul\u00e1si \u00e9rt\u00e9k k\u00f6z\u00fcl a legkisebbet (a gy\u0171r\u0151d\u00e9sb\u0151l \u00e9s a sim\u00edt\u00e1sb\u00f3l), \u00e9s \u00edrd be max_accel n\u00e9ven a printer.cfg f\u00e1jlba. Megjegyzend\u0151, hogy el\u0151fordulhat k\u00fcl\u00f6n\u00f6sen alacsony gy\u0171r\u0151d\u00e9si frekvenci\u00e1kn\u00e1l, hogy az EI shaper m\u00e9g kisebb gyorsul\u00e1sokn\u00e1l is t\u00fal nagy sim\u00edt\u00e1st okoz. Ebben az esetben az MZV jobb v\u00e1laszt\u00e1s lehet, mert nagyobb gyorsul\u00e1si \u00e9rt\u00e9keket engedhet meg. Nagyon alacsony gy\u0171r\u0151d\u00e9si frekvenci\u00e1kon (~25 Hz \u00e9s az alatt) m\u00e9g az MZV shaper is t\u00fal sok sim\u00edt\u00e1st hozhat l\u00e9tre. Ha ez a helyzet, akkor megpr\u00f3b\u00e1lhatod megism\u00e9telni a Bemeneti form\u00e1z\u00f3 kiv\u00e1laszt\u00e1sa szakaszban le\u00edrt l\u00e9p\u00e9seket ZV shaper-el is, a SET_INPUT_SHAPER SHAPER_TYPE=ZV parancs haszn\u00e1lat\u00e1val. A ZV shaper-nek m\u00e9g kevesebb sim\u00edt\u00e1st kell mutatnia, mint az MZV-nek, de \u00e9rz\u00e9kenyebb a gy\u0171r\u0151d\u00e9si frekvenci\u00e1k m\u00e9r\u00e9si hib\u00e1ira. Egy m\u00e1sik szempont, hogy ha a rezonanciafrekvencia t\u00fal alacsony (20-25 Hz alatt), akkor \u00e9rdemes lehet n\u00f6velni a nyomtat\u00f3 v\u00e1z\u00e1nak merevs\u00e9g\u00e9t vagy cs\u00f6kkenteni a mozg\u00f3 t\u00f6meget. Ellenkez\u0151 esetben a gyorsul\u00e1s \u00e9s a nyomtat\u00e1si sebess\u00e9g korl\u00e1toz\u00f3dhat a t\u00fal sok sim\u00edt\u00e1s miatt most a gy\u0171r\u0151d\u00e9s helyett. A rezonanciafrekvenci\u00e1k finomhangol\u00e1sa \u00b6 Megjegyzend\u0151, hogy a rezonanciafrekvenci\u00e1k m\u00e9r\u00e9s\u00e9nek pontoss\u00e1ga a gy\u0171r\u0151d\u00e9si tesztmodell seg\u00edts\u00e9g\u00e9vel a legt\u00f6bb c\u00e9lra elegend\u0151, \u00edgy tov\u00e1bbi hangol\u00e1s nem javasolt. Ha m\u00e9gis meg akarja pr\u00f3b\u00e1lni k\u00e9tszeresen ellen\u0151rizni az eredm\u00e9nyeit (p\u00e9ld\u00e1ul ha m\u00e9g mindig l\u00e1t n\u00e9mi gy\u0171r\u0151d\u00e9st, miut\u00e1n kinyomtatott egy tesztmodellt egy tetsz\u0151leges bemeneti alak\u00edt\u00f3val, ugyanazokkal a frekvenci\u00e1kkal, mint amiket kor\u00e1bban m\u00e9rt), akkor k\u00f6vesse az ebben a szakaszban le\u00edrt l\u00e9p\u00e9seket. Vedd figyelembe, hogy ha az [input_shaper] enged\u00e9lyez\u00e9se ut\u00e1n k\u00fcl\u00f6nb\u00f6z\u0151 frekvenci\u00e1kon l\u00e1t gy\u0171r\u0151d\u00e9st, ez a szakasz nem fog seg\u00edteni. Felt\u00e9telezve, hogy felszeletelte a gy\u0171r\u0151d\u00e9si modellt a javasolt param\u00e9terekkel, hajtsd v\u00e9gre a k\u00f6vetkez\u0151 l\u00e9p\u00e9seket az X \u00e9s Y tengelyek mindegyik\u00e9n: K\u00e9sz\u00fclj fel a tesztre: SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 Gy\u0151z\u0151dj meg r\u00f3la, hogy a Pressure Advance ki van kapcsolva: SET_PRESSURE_ADVANCE ADVANCE=0 Add ki a parancsot: SET_INPUT_SHAPER SHAPER_TYPE=ZV A megl\u00e9v\u0151 gy\u0171r\u0151d\u00e9si tesztmodellb\u0151l a kiv\u00e1lasztott bemeneti alak\u00edt\u00f3val v\u00e1laszd ki azt a gyorsul\u00e1st, amely kell\u0151en j\u00f3l mutatja a gy\u0171r\u0151d\u00e9st, \u00e9s \u00e1ll\u00edtsd be a k\u00f6vetkez\u0151vel: SET_VELOCITY_LIMIT ACCEL=... Sz\u00e1m\u00edtsa ki a TUNING_TOWER parancshoz sz\u00fcks\u00e9ges param\u00e9tereket a shaper_freq_x param\u00e9ter hangol\u00e1s\u00e1hoz az al\u00e1bbiak szerint: Itt a shaper_freq_x param\u00e9ter a nyomtat\u00f3 aktu\u00e1lis \u00e9rt\u00e9ke a printer.cfg f\u00e1jlban megadva. Add ki a parancsot: TUNING_TOWER COMMAND=SET_INPUT_SHAPER PARAMETER=SHAPER_FREQ_X START=start FACTOR=factor BAND=5 a start \u00e9s factor \u00e9rt\u00e9kek felhaszn\u00e1l\u00e1s\u00e1val, amelyeket az (5.) l\u00e9p\u00e9sben sz\u00e1m\u00edtottunk. Nyomtasd ki a tesztmodellt. Az eredeti frekvencia\u00e9rt\u00e9k vissza\u00e1ll\u00edt\u00e1sa: SET_INPUT_SHAPER SHAPER_FREQ_X=... . Keresse meg azt a s\u00e1vot, amelyik a legkev\u00e9sb\u00e9 gy\u0171r\u00f6tt, \u00e9s sz\u00e1molja meg a sz\u00e1m\u00e1t alulr\u00f3l 1-t\u0151l kezdve. Az \u00faj shaper_freq_x \u00e9rt\u00e9k kisz\u00e1m\u00edt\u00e1sa a r\u00e9gi shaper_freq_x * (39 + 5 * #band-number) / 66 seg\u00edts\u00e9g\u00e9vel. Ism\u00e9telje meg ezeket a l\u00e9p\u00e9seket az Y tengelyre ugyan\u00edgy, az X tengelyre val\u00f3 hivatkoz\u00e1sokat az Y tengelyre val\u00f3 hivatkoz\u00e1ssal helyettes\u00edtve (pl. cser\u00e9lje ki a shaper_freq_x -t shaper_freq_y -ra a k\u00e9pletekben \u00e9s a TUNING_TOWER parancsban). P\u00e9ldak\u00e9nt tegy\u00fck fel, hogy az egyik tengelyen 45 Hz-es gy\u0171r\u0151d\u00e9si frekvenci\u00e1t m\u00e9rt\u00fcnk. Ez a start = 45 * 83 / 132 = 28,30 \u00e9s a faktor = 45 / 66 = 0,6818 \u00e9rt\u00e9ket ad a TUNING_TOWER parancshoz. Most tegy\u00fck fel, hogy a tesztmodell kinyomtat\u00e1sa ut\u00e1n az alulr\u00f3l sz\u00e1m\u00edtott negyedik s\u00e1v adja a legkevesebb gy\u0171r\u0151d\u00e9st. Ekkor a friss\u00edtett shaper_freq_? \u00e9rt\u00e9k 45 * (39 + 5 * 4) / 66 \u2248 40,23. Miut\u00e1n mindk\u00e9t \u00faj shaper_freq_x \u00e9s shaper_freq_y param\u00e9tert kisz\u00e1m\u00edtotta, friss\u00edtheti az [input_shaper] szakasz\u00e1t a nyomtat\u00f3 printer.cfg f\u00e1jlj\u00e1ban az \u00faj shaper_freq_x \u00e9s shaper_freq_y \u00e9rt\u00e9kekkel. Nyom\u00e1s el\u0151tol\u00e1s \u00b6 Ha Pressure Advance-t haszn\u00e1l, akkor lehet, hogy \u00fajra kell hangolni. K\u00f6vesse az utas\u00edt\u00e1sokat az \u00faj \u00e9rt\u00e9k megtal\u00e1l\u00e1s\u00e1hoz, ha az elt\u00e9r az el\u0151z\u0151t\u0151l. A Pressure Advance be\u00e1ll\u00edt\u00e1sa el\u0151tt mindenk\u00e9ppen ind\u00edtsa \u00fajra a Klippert. A gy\u0171r\u0151d\u00e9si frekvenci\u00e1k megb\u00edzhatatlan m\u00e9r\u00e9sei \u00b6 Ha nem tudja m\u00e9rni a gy\u0171r\u0151d\u00e9si frekvenci\u00e1kat, pl. ha a rezg\u00e9sek k\u00f6z\u00f6tti t\u00e1vols\u00e1g nem stabil, akkor m\u00e9g mindig kihaszn\u00e1lhatod a bemeneti alak\u00edt\u00e1si technik\u00e1kat, de az eredm\u00e9nyek nem biztos, hogy olyan j\u00f3k lesznek, mint a frekvenci\u00e1k megfelel\u0151 m\u00e9r\u00e9s\u00e9vel. Valamint egy kicsit t\u00f6bb hangol\u00e1st \u00e9s a tesztmodell nyomtat\u00e1s\u00e1t ig\u00e9nyli. Megjegyzend\u0151, hogy egy m\u00e1sik lehet\u0151s\u00e9g egy gyorsul\u00e1sm\u00e9r\u0151 beszerz\u00e9se \u00e9s felszerel\u00e9se, valamint a rezonanci\u00e1k m\u00e9r\u00e9se (l\u00e1sd a dokumentumot , amely le\u00edrja a sz\u00fcks\u00e9ges hardvert \u00e9s a be\u00e1ll\u00edt\u00e1si folyamatot) - de ez a lehet\u0151s\u00e9g n\u00e9mi k\u00e9z\u00fcgyess\u00e9get, krimpel\u00e9st \u00e9s forraszt\u00e1st ig\u00e9nyel. A hangol\u00e1shoz adjunk hozz\u00e1 \u00fcres [input_shaper] szakaszt a printer.cfg f\u00e1jlhoz. Ezut\u00e1n, felt\u00e9telezve, hogy a javasolt param\u00e9terekkel felszeletelte a gy\u0171r\u0151d\u00e9si modellt, nyomtasd ki 3-szor az al\u00e1bbiak szerint. Els\u0151 alkalommal, a nyomtat\u00e1s el\u0151tt futtassa le a RESTART SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 SET_PRESSURE_ADVANCE ADVANCE=0 SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=60 SHAPER_FREQ_Y=60 TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 \u00e9s nyomtasd ki a modellt. Ezut\u00e1n nyomtasd ki a modellt \u00fajra, de a nyomtat\u00e1s el\u0151tt futtassa az al\u00e1bbiakat SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=50 SHAPER_FREQ_Y=50 TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Ezut\u00e1n nyomtassuk ki a modellt harmadszorra, de most futtassuk le a k\u00f6vetkez\u0151t SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=40 SHAPER_FREQ_Y=40 TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 L\u00e9nyeg\u00e9ben a gy\u0171r\u0151d\u00e9si tesztmodellt TUNING_TOWER seg\u00edts\u00e9g\u00e9vel nyomtatjuk ki, 2HUMP_EI shaperrel, shaper_freq = 60 Hz, 50 Hz \u00e9s 40 Hz. Ha egyik modell sem mutat javul\u00e1st a gy\u0171r\u0151d\u00e9sben, akkor sajnos \u00fagy t\u0171nik, hogy a bemeneti alak\u00edt\u00e1si technik\u00e1k nem seg\u00edthetnek az \u00d6n eset\u00e9ben. M\u00e1sk\u00fcl\u00f6nben el\u0151fordulhat, hogy az \u00f6sszes modell nem mutat gy\u0171r\u0151d\u00e9st, vagy n\u00e9h\u00e1ny modell gy\u0171r\u0151d\u00e9st mutat, n\u00e9h\u00e1ny pedig nem annyira. V\u00e1laszd ki azt a tesztmodellt, amelyik a legmagasabb frekvenci\u00e1val k\u00e9sz\u00fclt, \u00e9s m\u00e9g mindig j\u00f3 javul\u00e1st mutat a gy\u0171r\u0151d\u00e9sek tekintet\u00e9ben. Ha p\u00e9ld\u00e1ul a 40 Hz-es \u00e9s az 50 Hz-es modellek szinte egy\u00e1ltal\u00e1n nem mutatnak gy\u0171r\u0151d\u00e9st, a 60 Hz-es modell pedig m\u00e1r n\u00e9mileg t\u00f6bb gy\u0171r\u0151d\u00e9st mutat, maradj az 50 Hz-esn\u00e9l. Most ellen\u0151rizd, hogy az EI alak\u00edt\u00f3 el\u00e9g j\u00f3 lenne-e az esetedben. V\u00e1laszd ki az EI alak\u00edt\u00f3 frekvenci\u00e1j\u00e1t az \u00e1ltalad v\u00e1lasztott 2HUMP_EI alak\u00edt\u00f3 frekvenci\u00e1ja alapj\u00e1n: A 2HUMP_EI 60 Hz-es form\u00e1z\u00f3 eset\u00e9ben haszn\u00e1lj EI form\u00e1z\u00f3t shaper_freq = 50 Hz-es frekvenci\u00e1val. A 2HUMP_EI 50 Hz-es form\u00e1z\u00f3hoz haszn\u00e1lj EI form\u00e1z\u00f3t shaper_freq = 40 Hz \u00e9rt\u00e9kkel. A 2HUMP_EI 40 Hz-es form\u00e1z\u00f3hoz haszn\u00e1lj EI form\u00e1z\u00f3t shaper_freq = 33 Hz \u00e9rt\u00e9kkel. Most nyomtassuk ki a tesztmodellt m\u00e9g egyszer, a k\u00f6vetkez\u0151 futtat\u00e1s\u00e1val SET_INPUT_SHAPER SHAPER_TYPE=EI SHAPER_FREQ_X=... SHAPER_FREQ_Y=... TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 a kor\u00e1bban meghat\u00e1rozott shaper_freq_x=... \u00e9s shaper_freq_y=... \u00e9rt\u00e9kek megad\u00e1s\u00e1val. Ha az EI alak\u00edt\u00f3 a 2HUMP_EI alak\u00edt\u00f3hoz hasonl\u00f3an j\u00f3 eredm\u00e9nyeket mutat, maradj az EI alak\u00edt\u00f3 \u00e9s a kor\u00e1bban meghat\u00e1rozott frekvencia mellett, ellenkez\u0151 esetben haszn\u00e1ld a 2HUMP_EI alak\u00edt\u00f3t a megfelel\u0151 frekvenci\u00e1val. Add hozz\u00e1 az eredm\u00e9nyeket a printer.cfg f\u00e1jlhoz, pl. a k\u00f6vetkez\u0151 m\u00f3don. [input_shaper] shaper_freq_x: 50 shaper_freq_y: 50 shaper_type: 2hump_ei Folytassa a hangol\u00e1st a A max_accel kiv\u00e1laszt\u00e1sa szakaszban. Hibaelh\u00e1r\u00edt\u00e1s \u00e9s GYIK \u00b6 Nem tudok megb\u00edzhat\u00f3 m\u00e9r\u00e9seket v\u00e9gezni a rezonanciafrekvenci\u00e1kr\u00f3l \u00b6 El\u0151sz\u00f6r is gy\u0151z\u0151dj meg r\u00f3la, hogy a gy\u0171r\u0151d\u00e9s helyett nem m\u00e1s probl\u00e9ma van a nyomtat\u00f3val. Ha a m\u00e9r\u00e9sek nem megb\u00edzhat\u00f3ak, mert p\u00e9ld\u00e1ul a rezg\u00e9sek k\u00f6z\u00f6tti t\u00e1vols\u00e1g nem stabil, az azt jelentheti, hogy a nyomtat\u00f3nak t\u00f6bb rezonanciafrekvenci\u00e1ja van ugyanazon a tengelyen. Megpr\u00f3b\u00e1lhatjuk k\u00f6vetni a A gy\u0171r\u0151d\u00e9si frekvenci\u00e1k megb\u00edzhatatlan m\u00e9r\u00e9sei szakaszban le\u00edrt hangol\u00e1si elj\u00e1r\u00e1st, \u00e9s m\u00e9g mindig ki lehet hozni valamit a bemeneti alak\u00edt\u00e1si technik\u00e1b\u00f3l. Egy m\u00e1sik lehet\u0151s\u00e9g egy gyorsul\u00e1sm\u00e9r\u0151 beszerel\u00e9se, majd rezonanci\u00e1k m\u00e9r\u00e9se vele, \u00e9s a bemeneti alak\u00edt\u00f3 automatikus hangol\u00e1sa e m\u00e9r\u00e9sek eredm\u00e9nyeinek felhaszn\u00e1l\u00e1s\u00e1val. Az [input_shaper] enged\u00e9lyez\u00e9se ut\u00e1n t\u00fals\u00e1gosan sim\u00edtott nyomtatott alkatr\u00e9szeket kapok, \u00e9s a finom r\u00e9szletek elvesznek \u00b6 Ellen\u0151rizd a Max_accel kiv\u00e1laszt\u00e1sa szakaszban tal\u00e1lhat\u00f3 szempontokat. Ha a rezonanciafrekvencia alacsony, nem szabad t\u00fal magas max_accel \u00e9rt\u00e9ket be\u00e1ll\u00edtani, vagy n\u00f6velni a square_corner_velocity param\u00e9tereket. Az is lehet, hogy az EI (vagy a 2HUMP_EI \u00e9s 3HUMP_EI) v\u00e1ltoz\u00f3k helyett jobb az MZV vagy ak\u00e1r a ZV bemeneti v\u00e1ltoz\u00f3kat v\u00e1lasztani. Miut\u00e1n egy ideig sikeresen nyomtatott gy\u0171r\u0151d\u00e9sek n\u00e9lk\u00fcl, most \u00fagy t\u0171nik, hogy visszaj\u00f6tt \u00b6 Lehets\u00e9ges, hogy egy id\u0151 ut\u00e1n a rezonanciafrekvenci\u00e1k megv\u00e1ltoztak. Pl. tal\u00e1n a sz\u00edjak feszess\u00e9ge megv\u00e1ltozott (a sz\u00edjak laz\u00e1bbak lettek) stb. J\u00f3 \u00f6tlet a Gy\u0171r\u0151d\u00e9si frekvencia szakaszban le\u00edrtak szerint ellen\u0151rizni \u00e9s \u00fajra megm\u00e9rni a rezonanciafrekvenci\u00e1kat, \u00e9s sz\u00fcks\u00e9g eset\u00e9n friss\u00edteni a konfigur\u00e1ci\u00f3s f\u00e1jlt. T\u00e1mogatott a kett\u0151s kocsi be\u00e1ll\u00edt\u00e1sa a bemeneti form\u00e1z\u00f3kkal? \u00b6 Nincs k\u00fcl\u00f6n t\u00e1mogat\u00e1s a bemeneti form\u00e1z\u00f3kkal ell\u00e1tott kett\u0151s kocsikhoz, de ez nem jelenti azt, hogy ez a be\u00e1ll\u00edt\u00e1s nem fog m\u0171k\u00f6dni. A hangol\u00e1st k\u00e9tszer kell lefuttatni mindk\u00e9t kocsira, \u00e9s az X- \u00e9s Y-tengelyek gy\u0171r\u0151d\u00e9si frekvenci\u00e1it mindk\u00e9t kocsira f\u00fcggetlen\u00fcl kell kisz\u00e1m\u00edtani. Ezut\u00e1n a 0. kocsira vonatkoz\u00f3 \u00e9rt\u00e9keket tegye az [input_shaper] szakaszba, \u00e9s a kocsik v\u00e1lt\u00e1sakor menet k\u00f6zben v\u00e1ltoztassa meg az \u00e9rt\u00e9keket, p\u00e9ld\u00e1ul valamilyen makr\u00f3 seg\u00edts\u00e9g\u00e9vel: SET_DUAL_CARRIAGE CARRIAGE=1 SET_INPUT_SHAPER SHAPER_FREQ_X=... SHAPER_FREQ_Y=... \u00c9s ugyan\u00edgy a 0 kocsira val\u00f3 visszakapcsol\u00e1skor is. Az input_shaper befoly\u00e1solja a nyomtat\u00e1si id\u0151t? \u00b6 Nem, a input_shaper funkci\u00f3 \u00f6nmag\u00e1ban nincs hat\u00e1ssal a nyomtat\u00e1si id\u0151re. A max_accel \u00e9rt\u00e9ke azonban bizonyosan befoly\u00e1solja (ennek a param\u00e9ternek a hangol\u00e1sa ebben a szakaszban le van \u00edrva). M\u0171szaki r\u00e9szletek \u00b6 Bemeneti v\u00e1ltoz\u00f3k \u00b6 A Klipperben haszn\u00e1lt bemeneti form\u00e1z\u00f3k meglehet\u0151sen szabv\u00e1nyosak, \u00e9s r\u00e9szletesebb \u00e1ttekint\u00e9st a megfelel\u0151 form\u00e1z\u00f3kat le\u00edr\u00f3 cikkekben tal\u00e1lhatunk. Ez a szakasz a t\u00e1mogatott bemeneti form\u00e1z\u00f3k n\u00e9h\u00e1ny technikai szempontj\u00e1nak r\u00f6vid \u00e1ttekint\u00e9s\u00e9t tartalmazza. Az al\u00e1bbi t\u00e1bl\u00e1zat az egyes shaperek n\u00e9h\u00e1ny (\u00e1ltal\u00e1ban hozz\u00e1vet\u0151leges) param\u00e9ter\u00e9t mutatja. Bemeneti v\u00e1ltoz\u00f3 V\u00e1ltoz\u00f3 id\u0151tartam Rezonancia cs\u00f6kkent\u00e9s 20x (5% rezg\u00e9st\u0171r\u00e9s) Rezonancia cs\u00f6kkent\u00e9s 10x (10% rezg\u00e9st\u0171r\u00e9s) ZV 0.5 / shaper_freq N/A \u00b1 5% shaper_freq MZV 0.75 / shaper_freq \u00b1 4% shaper_freq -10%...+15% shaper_freq ZVD 1 / shaper_freq \u00b1 15% shaper_freq \u00b1 22% shaper_freq EI 1 / shaper_freq \u00b1 20% shaper_freq \u00b1 25% shaper_freq 2HUMP_EI 1.5 / shaper_freq \u00b1 35% shaper_freq \u00b1 40 shaper_freq 3HUMP_EI 2 / shaper_freq -45...+50% shaper_freq -50%...+55% shaper_freq Megjegyz\u00e9s a rezonancia cs\u00f6kkent\u00e9ssel kapcsolatban: a fenti t\u00e1bl\u00e1zatban szerepl\u0151 \u00e9rt\u00e9kek hozz\u00e1vet\u0151legesek. Ha a nyomtat\u00f3 csillap\u00edt\u00e1si ar\u00e1nya minden egyes tengely eset\u00e9ben ismert, akkor a form\u00e1z\u00f3 pontosabban konfigur\u00e1lhat\u00f3, \u00e9s ekkor a rezonanci\u00e1kat egy kicsit sz\u00e9lesebb frekvenciatartom\u00e1nyban cs\u00f6kkenti. A csillap\u00edt\u00e1si ar\u00e1ny azonban \u00e1ltal\u00e1ban ismeretlen, \u00e9s speci\u00e1lis berendez\u00e9s n\u00e9lk\u00fcl neh\u00e9z megbecs\u00fclni, ez\u00e9rt a Klipper alap\u00e9rtelmez\u00e9s szerint 0,1 \u00e9rt\u00e9ket haszn\u00e1l, ami egy j\u00f3 \u00e1ltal\u00e1nos \u00e9rt\u00e9k. A t\u00e1bl\u00e1zatban szerepl\u0151 frekvenciatartom\u00e1nyok sz\u00e1mos k\u00fcl\u00f6nb\u00f6z\u0151 lehets\u00e9ges csillap\u00edt\u00e1si ar\u00e1nyt fednek le ezen \u00e9rt\u00e9k k\u00f6r\u00fcl (kb. 0,05-t\u0151l 0,2-ig). Vedd figyelembe azt is, hogy az EI, 2HUMP_EI \u00e9s 3HUMP_EI \u00fagy van be\u00e1ll\u00edtva, hogy a rezonanci\u00e1kat 5%-ra cs\u00f6kkentse, ez\u00e9rt a 10%-os rezonanci\u00e1ra vonatkoz\u00f3 \u00e9rt\u00e9kek csak referenciak\u00e9nt szolg\u00e1lnak. Hogyan haszn\u00e1ljuk ezt a t\u00e1bl\u00e1zatot: A form\u00e1z\u00f3 id\u0151tartama befoly\u00e1solja az alkatr\u00e9szek sim\u00edt\u00e1s\u00e1t - min\u00e9l nagyobb, ann\u00e1l sim\u00e1bbak az alkatr\u00e9szek. Ez a f\u00fcgg\u0151s\u00e9g nem line\u00e1ris, de \u00e9rz\u00e9kelteti, hogy ugyanazon frekvencia eset\u00e9n melyik shaper 'sim\u00edt\u00f3' sim\u00edt jobban. A sim\u00edt\u00e1s szerinti sorrend \u00edgy n\u00e9z ki: ZV < MZV < ZVD \u2248 EI < 2HUMP_EI < 3HUMP_EI. Tov\u00e1bb\u00e1, a 2HUMP_EI \u00e9s 3HUMP_EI alak\u00edt\u00f3k eset\u00e9ben ritk\u00e1n praktikus a shaper_freq = rezonancia frekvencia \u00e9rt\u00e9ket be\u00e1ll\u00edtani (ezeket t\u00f6bb frekvencia rezg\u00e9seinek cs\u00f6kkent\u00e9s\u00e9re kell haszn\u00e1lni). Megbecs\u00fclhet\u0151 az a frekvenciatartom\u00e1ny, amelyben a form\u00e1z\u00f3 cs\u00f6kkenti a rezg\u00e9seket. P\u00e9ld\u00e1ul a shaper_freq = 35 Hz-es MZV a [33,6, 36,4] Hz-es frekvenci\u00e1n 5%-ra cs\u00f6kkenti a rezg\u00e9seket. A 3HUMP_EI shaper_freq = 50 Hz eset\u00e9n a [27,5, 75] Hz tartom\u00e1nyban 5%-ra cs\u00f6kkenti a rezg\u00e9seket. A t\u00e1bl\u00e1zat seg\u00edts\u00e9g\u00e9vel ellen\u0151rizheti, hogy melyik v\u00e1ltoz\u00f3t kell haszn\u00e1lnia, ha t\u00f6bb frekvenci\u00e1n kell cs\u00f6kkentenie a rezg\u00e9seket. P\u00e9ld\u00e1ul, ha ugyanazon a tengelyen 35 Hz-es \u00e9s 60 Hz-es rezonanci\u00e1k vannak: a) az EI alak\u00edt\u00f3nak a shaper_freq = 35 / (1 - 0,2) = 43,75 Hz-re van sz\u00fcks\u00e9ge, \u00e9s 43,75 * (1 + 0,2) = 52-ig cs\u00f6kkenti a rezonanci\u00e1kat teh\u00e1t az 52.5 Hz, nem elegend\u0151. b) a 2HUMP_EI alak\u00edt\u00f3nak shaper_freq = 35 / (1 - 0,35) = 53,85 Hz-nek kell lennie, \u00e9s 53,85 * (1 + 0,35) = 72,7 Hz-ig cs\u00f6kkenti a rezg\u00e9seket - teh\u00e1t ez egy elfogadhat\u00f3 konfigur\u00e1ci\u00f3. Mindig pr\u00f3b\u00e1ljon meg min\u00e9l magasabb shaper_freq \u00e9rt\u00e9ket haszn\u00e1lni egy adott shaper-hez (esetleg n\u00e9mi biztons\u00e1gi tartal\u00e9kkal, \u00edgy ebben a p\u00e9ld\u00e1ban a shaper_freq \u2248 50-52 Hz lenne a legjobb), \u00e9s pr\u00f3b\u00e1ljon meg min\u00e9l kisebb shaper id\u0151tartam\u00fa \u00e9rt\u00e9ket haszn\u00e1lni. Ha valakinek t\u00f6bb nagyon k\u00fcl\u00f6nb\u00f6z\u0151 frekvenci\u00e1n (mondjuk 30 Hz \u00e9s 100 Hz) kell cs\u00f6kkentenie a rezg\u00e9seket, l\u00e1thatja, hogy a fenti t\u00e1bl\u00e1zat nem ny\u00fajt elegend\u0151 inform\u00e1ci\u00f3t. Ebben az esetben t\u00f6bb szerencs\u00e9nk lehet a scripts/graph_shaper.py szkripttel, amely rugalmasabb.","title":"Rezonancia Kompenz\u00e1ci\u00f3"},{"location":"Resonance_Compensation.html#rezonancia-kompenzacio","text":"A Klipper t\u00e1mogatja a bemeneti form\u00e1z\u00e1st. Egy olyan technik\u00e1t, amely a nyomatok cseng\u00e9s\u00e9nek (m\u00e1s n\u00e9ven visszhang, szellemk\u00e9p vagy hull\u00e1mz\u00e1s) cs\u00f6kkent\u00e9s\u00e9re haszn\u00e1lhat\u00f3. A gy\u0171r\u0151d\u00e9s egy fel\u00fcleti nyomtat\u00e1si hiba, amikor jellemz\u0151en az olyan elemek, mint az \u00e9lek, finom 'visszhangk\u00e9nt' ism\u00e9tl\u0151dnek a nyomtatott fel\u00fcleten: | | | A gy\u0171r\u0151d\u00e9st a nyomtat\u00e1si ir\u00e1ny gyors v\u00e1ltoz\u00e1sa miatt fell\u00e9p\u0151 mechanikus rezg\u00e9sek okozz\u00e1k. Vedd figyelembe, hogy a gy\u0171r\u0151d\u00e9s \u00e1ltal\u00e1ban mechanikai eredet\u0171: nem el\u00e9g merev nyomtat\u00f3keret, nem feszes vagy t\u00fals\u00e1gosan rug\u00f3s sz\u00edjak, a mechanikus alkatr\u00e9szek be\u00e1ll\u00edt\u00e1si probl\u00e9m\u00e1i, nagy mozg\u00f3 t\u00f6meg stb. Ezeket kell el\u0151sz\u00f6r ellen\u0151rizni \u00e9s lehet\u0151s\u00e9g szerint jav\u00edtani. A Bemeneti form\u00e1z\u00e1s egy olyan ny\u00edlt hurk\u00fa vez\u00e9rl\u00e9si technika, amely olyan utas\u00edt\u00f3 jelet hoz l\u00e9tre, amely megsz\u00fcnteti a saj\u00e1t rezg\u00e9seit. A bemeneti alak\u00edt\u00e1s n\u00e9mi hangol\u00e1st \u00e9s m\u00e9r\u00e9seket ig\u00e9nyel, miel\u0151tt enged\u00e9lyezhet\u0151 lenne. A cseng\u00e9sen k\u00edv\u00fcl a Bemeneti form\u00e1z\u00e1s \u00e1ltal\u00e1ban cs\u00f6kkenti a nyomtat\u00f3 rezg\u00e9seit \u00e9s r\u00e1zk\u00f3d\u00e1s\u00e1t, \u00e9s jav\u00edthatja a Trinamic l\u00e9ptet\u0151 meghajt\u00f3k StealthChop \u00fczemm\u00f3dj\u00e1nak megb\u00edzhat\u00f3s\u00e1g\u00e1t is.","title":"Rezonancia Kompenz\u00e1ci\u00f3"},{"location":"Resonance_Compensation.html#hangolas","text":"Az alaphangol\u00e1shoz a nyomtat\u00f3 gy\u0171r\u0151d\u00e9si frekvenci\u00e1j\u00e1nak m\u00e9r\u00e9se sz\u00fcks\u00e9ges egy tesztmodell nyomtat\u00e1s\u00e1val. Szeletelje fel a docs/prints/ringing_tower.stl f\u00e1jlban tal\u00e1lhat\u00f3 gy\u0171r\u0151d\u00e9si tesztmodellt a szeletel\u0151ben: A javasolt r\u00e9tegmagass\u00e1g 0,2 vagy 0,25 mm. A kit\u00f6lt\u0151 \u00e9s a fels\u0151 r\u00e9tegek 0-ra \u00e1ll\u00edthat\u00f3k. Haszn\u00e1lj 1-2 falat, vagy m\u00e9g jobb a sima v\u00e1za m\u00f3d 1-2 mm-es alappal. A k\u00fcls\u0151 ker\u00fcletekn\u00e9l haszn\u00e1lj kell\u0151en nagy sebess\u00e9get, k\u00f6r\u00fclbel\u00fcl 80-100 mm/sec. Gy\u0151z\u0151dj meg r\u00f3la, hogy a minim\u00e1lis r\u00e9tegid\u0151 legfeljebb 3 m\u00e1sodperc. Gy\u0151z\u0151dj meg r\u00f3la, hogy a szeletel\u0151ben a \"dinamikus gyors\u00edt\u00e1svez\u00e9rl\u00e9s\" ki van kapcsolva. Ne ford\u00edtsd el a modellt. A modell h\u00e1tulj\u00e1n X \u00e9s Y jel\u00f6l\u00e9sek vannak. Figyelje meg a jelek szokatlan elhelyezked\u00e9s\u00e9t a nyomtat\u00f3 tengelyeihez k\u00e9pest. Ez nem hiba. A jel\u00f6l\u00e9sek k\u00e9s\u0151bb a hangol\u00e1si folyamat sor\u00e1n referenciak\u00e9nt haszn\u00e1lhat\u00f3k, mert megmutatj\u00e1k, hogy a m\u00e9r\u00e9sek melyik tengelynek felelnek meg.","title":"Hangol\u00e1s"},{"location":"Resonance_Compensation.html#gyurodesi-frekvencia","text":"El\u0151sz\u00f6r is m\u00e9rd meg a gy\u0171r\u0151d\u00e9si frekvenci\u00e1t . Ha a square_corner_velocity param\u00e9tert megv\u00e1ltoztattuk, \u00e1ll\u00edtsuk vissza az 5.0-ra. Nem tan\u00e1csos n\u00f6velni, ha bemeneti alak\u00edt\u00f3t haszn\u00e1l, mert ez nagyobb sim\u00edt\u00e1st okozhat az alkatr\u00e9szekben - helyette jobb, ha nagyobb gyorsul\u00e1si \u00e9rt\u00e9ket haszn\u00e1l. N\u00f6velje a max_accel_to_decel \u00e9rt\u00e9ket a k\u00f6vetkez\u0151 parancs kiad\u00e1s\u00e1val: SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 Nyom\u00e1s el\u0151tol\u00e1s kikapcsol\u00e1sa: SET_PRESSURE_ADVANCE ADVANCE=0 Ha m\u00e1r hozz\u00e1adta az [input_shaper] r\u00e9szt a printer.cfg f\u00e1jlhoz, akkor hajtsd v\u00e9gre a SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0 parancsot. Ha \"Unknown command\" hib\u00e1t kap, nyugodtan figyelmen k\u00edv\u00fcl hagyhatja ezen a ponton, \u00e9s folytathatja a m\u00e9r\u00e9seket. V\u00e9gezd el a parancsot: TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Alapvet\u0151en a gyorsul\u00e1s k\u00fcl\u00f6nb\u00f6z\u0151 nagy \u00e9rt\u00e9keinek be\u00e1ll\u00edt\u00e1s\u00e1val pr\u00f3b\u00e1ljuk a gy\u0171r\u0151d\u00e9st hangs\u00falyosabb\u00e1 tenni. Ez a parancs 1500 mm/sec^2-t\u0151l kezdve 5 mm-enk\u00e9nt n\u00f6veli a gyorsul\u00e1st: 1500 mm/sec^2, 2000 mm/sec^2, 2500 mm/sec^2 \u00e9s \u00edgy tov\u00e1bb, eg\u00e9szen 7000 mm/sec^2-ig az utols\u00f3 s\u00e1vra. Nyomtasd ki a szeletelt tesztmodellt a javasolt param\u00e9terekkel. A nyomtat\u00e1st kor\u00e1bban is le\u00e1ll\u00edthatja, ha a gy\u0171r\u0151d\u00e9s j\u00f3l l\u00e1that\u00f3, \u00e9s \u00fagy l\u00e1tja, hogy a gyorsul\u00e1s t\u00fal nagy lesz a nyomtat\u00f3 sz\u00e1m\u00e1ra (pl. a nyomtat\u00f3 t\u00fals\u00e1gosan remeg, vagy elkezd l\u00e9p\u00e9seket kihagyni). Haszn\u00e1ld a modell h\u00e1tulj\u00e1n tal\u00e1lhat\u00f3 X \u00e9s Y jeleket a t\u00e1j\u00e9koz\u00f3d\u00e1shoz. Az X-jel\u00f6l\u00e9ssel ell\u00e1tott oldalr\u00f3l t\u00f6rt\u00e9n\u0151 m\u00e9r\u00e9seket kell haszn\u00e1lni az X tengely konfigur\u00e1ci\u00f3hoz , az Y-jel\u00f6l\u00e9st pedig az Y tengely konfigur\u00e1ci\u00f3j\u00e1hoz. M\u00e9rd meg a t\u00e1vols\u00e1got D (mm-ben) t\u00f6bb rezg\u00e9s k\u00f6z\u00f6tt az X jelz\u00e9s\u0171 alkatr\u00e9szen, a bev\u00e1g\u00e1sok k\u00f6zel\u00e9ben, lehet\u0151leg az els\u0151 egy-k\u00e9t rezg\u00e9st kihagyva. Az oszcill\u00e1ci\u00f3k k\u00f6z\u00f6tti t\u00e1vols\u00e1g k\u00f6nnyebb m\u00e9r\u00e9s\u00e9hez el\u0151sz\u00f6r jel\u00f6lje meg az oszcill\u00e1ci\u00f3kat, majd m\u00e9rd meg a jel\u00f6l\u00e9sek k\u00f6z\u00f6tti t\u00e1vols\u00e1got vonalz\u00f3val vagy tol\u00f3m\u00e9r\u0151vel:| | | Sz\u00e1molja meg, hogy a m\u00e9rt t\u00e1vols\u00e1g N h\u00e1ny rezg\u00e9snek D felel meg. Ha nem biztos benne, hogy hogyan sz\u00e1molja a rezg\u00e9seket, n\u00e9zze meg a fenti k\u00e9pet, ahol N = 6 rezg\u00e9s. Sz\u00e1m\u00edtsuk ki az X tengely gy\u0171r\u0151d\u00e9si frekvenci\u00e1j\u00e1t V \u00b7 N / D (Hz), ahol V a k\u00fcls\u0151 ker\u00fcletekre vonatkoz\u00f3 sebess\u00e9g (mm/sec). A fenti p\u00e9ld\u00e1n\u00e1l 6 rezg\u00e9st jel\u00f6lt\u00fcnk meg, \u00e9s a tesztet 100 mm/sec sebess\u00e9ggel nyomtattuk, \u00edgy a frekvencia 100 * 6 / 12,14 \u2248 49,4 Hz. A (8)-(10) pontokat az Y jel eset\u00e9ben is v\u00e9gezz\u00fck el. Vedd figyelembe, hogy a pr\u00f3banyomaton a gy\u0171r\u0151d\u00e9snek a fenti k\u00e9pen l\u00e1that\u00f3 \u00edves bev\u00e1g\u00e1sok mint\u00e1j\u00e1t kell k\u00f6vetnie. Ha nem \u00edgy van, akkor ez a hiba nem igaz\u00e1n gy\u0171r\u0151d\u00e9s, \u00e9s m\u00e1s eredet\u0171. Vagy mechanikai, vagy extruder probl\u00e9ma. Ezt kell el\u0151sz\u00f6r kijav\u00edtani, miel\u0151tt enged\u00e9lyezn\u00e9nk \u00e9s hangoln\u00e1nk a bemeneti form\u00e1z\u00f3kat. Ha a m\u00e9r\u00e9sek nem megb\u00edzhat\u00f3ak, mert p\u00e9ld\u00e1ul a rezg\u00e9sek k\u00f6z\u00f6tti t\u00e1vols\u00e1g nem stabil, az azt jelentheti, hogy a nyomtat\u00f3nak t\u00f6bb rezonanciafrekvenci\u00e1ja van ugyanazon a tengelyen. Megpr\u00f3b\u00e1lhatjuk helyette a A gy\u0171r\u0151d\u00e9si frekvenci\u00e1k megb\u00edzhatatlan m\u00e9r\u00e9sei szakaszban le\u00edrt hangol\u00e1si elj\u00e1r\u00e1st k\u00f6vetni, \u00e9s m\u00e9g mindig kaphatunk valami inf\u00f3t a bemeneti alak\u00edt\u00e1si technik\u00e1r\u00f3l. A gy\u0171r\u0151d\u00e9si frekvencia f\u00fcgghet a modell t\u00e1rgyasztalon bel\u00fcli helyzet\u00e9t\u0151l \u00e9s a Z magass\u00e1gt\u00f3l, k\u00fcl\u00f6n\u00f6sen a delta nyomtat\u00f3kn\u00e1l ; ellen\u0151rizheti, hogy a tesztmodell oldalai ment\u00e9n \u00e9s k\u00fcl\u00f6nb\u00f6z\u0151 magass\u00e1gokban k\u00fcl\u00f6nb\u00f6z\u0151 poz\u00edci\u00f3kban l\u00e1t-e k\u00fcl\u00f6nbs\u00e9get a frekvenci\u00e1kban. Ha ez a helyzet, akkor kisz\u00e1m\u00edthatja az X \u00e9s Y tengelyen m\u00e9rt \u00e1tlagos gy\u0171r\u0151d\u00e9si frekvenci\u00e1kat. Ha a m\u00e9rt gy\u0171r\u0151d\u00e9si frekvencia nagyon alacsony (kb. 20-25 Hz alatti), akkor \u00e9rdemes lehet a nyomtat\u00f3 merev\u00edt\u00e9s\u00e9re vagy a mozg\u00f3 t\u00f6meg cs\u00f6kkent\u00e9s\u00e9re beruh\u00e1zni - att\u00f3l f\u00fcgg\u0151en, hogy mi alkalmazhat\u00f3 a te esetedben -, miel\u0151tt a bemeneti alak\u00edt\u00e1s tov\u00e1bbi hangol\u00e1s\u00e1t folytatn\u00e1d, \u00e9s ut\u00e1na \u00fajra megm\u00e9rn\u00e9d a frekvenci\u00e1kat. Sok n\u00e9pszer\u0171 nyomtat\u00f3modell eset\u00e9ben gyakran m\u00e1r rendelkez\u00e9sre \u00e1ll n\u00e9h\u00e1ny megold\u00e1s. Vedd figyelembe, hogy a gy\u0171r\u0151d\u00e9si frekvenci\u00e1k v\u00e1ltozhatnak, ha a nyomtat\u00f3ban olyan v\u00e1ltoztat\u00e1sokat v\u00e9geznek, amelyek hat\u00e1ssal vannak a mozg\u00f3 t\u00f6megre, vagy p\u00e9ld\u00e1ul megv\u00e1ltoztatj\u00e1k a g\u00e9pv\u00e1z merevs\u00e9g\u00e9t: A nyomtat\u00f3fejre n\u00e9h\u00e1ny olyan eszk\u00f6zt telep\u00edtenek, elt\u00e1vol\u00edtanak vagy kicser\u00e9lnek, amelyek megv\u00e1ltoztatj\u00e1k annak t\u00f6meg\u00e9t, pl. \u00faj (nehezebb vagy k\u00f6nnyebb) l\u00e9ptet\u0151motor a k\u00f6zvetlen extrudernek vagy \u00faj nyomtat\u00f3fej telep\u00edt\u00e9se, neh\u00e9z, t\u00e1rgyh\u0171t\u0151vel ell\u00e1tott ventil\u00e1tor be\u00e9p\u00edt\u00e9se stb. A sz\u00edjak megh\u00faz\u00e1sa. A v\u00e1z merevs\u00e9g\u00e9nek n\u00f6vel\u00e9s\u00e9re szolg\u00e1l\u00f3 n\u00e9h\u00e1ny kieg\u00e9sz\u00edt\u00e9s telep\u00edtve van. K\u00fcl\u00f6nb\u00f6z\u0151 t\u00e1rgyasztal van telep\u00edtve egy Y t\u00e1rgyasztalos nyomtat\u00f3ra, vagy \u00fcveg hozz\u00e1ad\u00e1sa stb. Ha ilyen v\u00e1ltoztat\u00e1sokat hajtanak v\u00e9gre, akkor \u00e9rdemes legal\u00e1bb a gy\u0171r\u0151d\u00e9si frekvenci\u00e1kat megm\u00e9rni, hogy l\u00e1ss\u00e1k, v\u00e1ltoztak-e azok.","title":"Gy\u0171r\u0151d\u00e9si frekvencia"},{"location":"Resonance_Compensation.html#bemeneti-formazo-konfiguracioja","text":"Az X \u00e9s Y tengelyek gy\u0171r\u0151d\u00e9si frekvenci\u00e1j\u00e1nak m\u00e9r\u00e9se ut\u00e1n a k\u00f6vetkez\u0151 szakaszt adhatja hozz\u00e1 a printer.cfg f\u00e1jlhoz: [input_shaper] shaper_freq_x: ... # a tesztmodell X jel\u00e9nek frekvenci\u00e1ja shaper_freq_y: ... # a tesztmodell Y jel\u00e9nek frekvenci\u00e1ja A fenti p\u00e9ld\u00e1ban a shaper_freq_x/y = 49.4.","title":"Bemeneti form\u00e1z\u00f3 konfigur\u00e1ci\u00f3ja"},{"location":"Resonance_Compensation.html#bemeneti-formazo-kivalasztasa","text":"A Klipper sz\u00e1mos bemeneti form\u00e1z\u00f3t t\u00e1mogat. Ezek a rezonanciafrekvenci\u00e1t meghat\u00e1roz\u00f3 hib\u00e1kra val\u00f3 \u00e9rz\u00e9kenys\u00e9g\u00fckben \u00e9s abban k\u00fcl\u00f6nb\u00f6znek, hogy milyen m\u00e9rt\u00e9k\u0171 sim\u00edt\u00e1st okoznak a nyomtatott alkatr\u00e9szekben. Emellett n\u00e9h\u00e1ny shapert, p\u00e9ld\u00e1ul a 2HUMP_EI \u00e9s a 3HUMP_EI form\u00e1z\u00f3kat \u00e1ltal\u00e1ban nem szabad haszn\u00e1lni shaper_freq = rezonanciafrekvenci\u00e1val - ezek k\u00fcl\u00f6nb\u00f6z\u0151 megfontol\u00e1sokb\u00f3l vannak be\u00e1ll\u00edtva, hogy egyszerre t\u00f6bb rezonanci\u00e1t cs\u00f6kkentsenek. A legt\u00f6bb nyomtat\u00f3hoz MZV vagy EI alak\u00edt\u00f3k aj\u00e1nlhat\u00f3k. Ez a szakasz egy tesztel\u00e9si elj\u00e1r\u00e1st \u00edr le a kett\u0151 k\u00f6z\u00f6tti v\u00e1laszt\u00e1shoz, valamint n\u00e9h\u00e1ny egy\u00e9b kapcsol\u00f3d\u00f3 param\u00e9ter meghat\u00e1roz\u00e1s\u00e1hoz. Nyomtasd ki a gy\u0171r\u0151d\u00e9si tesztmodellt az al\u00e1bbiak szerint: Ind\u00edtsa \u00fajra a firmware-t: RESTART K\u00e9sz\u00fclj fel a tesztre: SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 Nyom\u00e1s el\u0151tol\u00e1s kikapcsol\u00e1sa: SET_PRESSURE_ADVANCE ADVANCE=0 Add ki a parancsot: SET_INPUT_SHAPER SHAPER_TYPE=MZV Add ki a parancsot: TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Nyomtasd ki a szeletelt tesztmodellt a javasolt param\u00e9terekkel. Ha ezen a ponton nem l\u00e1t gy\u0171r\u0151d\u00e9st, akkor az MZV form\u00e1z\u00f3 haszn\u00e1lat\u00e1t lehet javasolni. Ha m\u00e9gis gy\u0171r\u0151d\u00e9st \u00e9szlelsz, m\u00e9rd meg \u00fajra a frekvenci\u00e1kat a Gy\u0171r\u0151d\u00e9si frekvencia szakaszban le\u00edrt (8)-(10) l\u00e9p\u00e9sekkel. Ha a frekvenci\u00e1k jelent\u0151sen elt\u00e9rnek a kor\u00e1bban kapott \u00e9rt\u00e9kekt\u0151l, akkor \u00f6sszetettebb bemeneti alak\u00edt\u00f3 konfigur\u00e1ci\u00f3ra van sz\u00fcks\u00e9g. L\u00e1sd a Bemeneti alak\u00edt\u00f3k szakasz m\u0171szaki r\u00e9szleteit. Ellenkez\u0151 esetben folytasd a k\u00f6vetkez\u0151 l\u00e9p\u00e9ssel. Most pr\u00f3b\u00e1ld ki az EI bemeneti alak\u00edt\u00f3t. Ehhez ism\u00e9telje meg a fenti (1)-(6) l\u00e9p\u00e9seket, de a 4. l\u00e9p\u00e9sn\u00e9l hajtsd v\u00e9gre a k\u00f6vetkez\u0151 parancsot: SET_INPUT_SHAPER SHAPER_TYPE=EI . K\u00e9t nyomat \u00f6sszehasonl\u00edt\u00e1sa MZV \u00e9s EI bemeneti alak\u00edt\u00f3val. Ha az EI \u00e9szrevehet\u0151en jobb eredm\u00e9nyt mutat, mint az MZV, akkor haszn\u00e1ld az EI alak\u00edt\u00f3t, egy\u00e9bk\u00e9nt ink\u00e1bb az MZV-t. Vedd figyelembe, hogy az EI shaper t\u00f6bb sim\u00edt\u00e1st okoz a nyomtatott alkatr\u00e9szeken (tov\u00e1bbi r\u00e9szletek\u00e9rt l\u00e1sd a k\u00f6vetkez\u0151 szakaszt). Add hozz\u00e1 a shaper_type: mzv (vagy ei) param\u00e9tert az [input_shaper] szakaszhoz, pl.: [input_shaper] shaper_freq_x: ... shaper_freq_y: ... shaper_type: mzv N\u00e9h\u00e1ny megjegyz\u00e9s a form\u00e1z\u00f3 kiv\u00e1laszt\u00e1s\u00e1r\u00f3l: Az EI-form\u00e1z\u00f3 alkalmasabb lehet az Y t\u00e1rgyasztalos nyomtat\u00f3khoz (ha a rezonanciafrekvencia \u00e9s az ebb\u0151l ered\u0151 sim\u00edt\u00e1s lehet\u0151v\u00e9 teszi): mivel t\u00f6bb sz\u00e1l ker\u00fcl a mozg\u00f3 t\u00e1rgyasztalra, a t\u00e1rgyasztal t\u00f6mege n\u0151, \u00e9s a rezonanciafrekvencia cs\u00f6kken. Mivel az EI shaper robusztusabb a rezonanciafrekvencia-v\u00e1ltoz\u00e1sokkal szemben, jobban m\u0171k\u00f6dhet nagy m\u00e9ret\u0171 alkatr\u00e9szek nyomtat\u00e1sakor. A delta kinematika term\u00e9szet\u00e9b\u0151l ad\u00f3d\u00f3an a rezonanciafrekvenci\u00e1k a t\u00e9rfogat k\u00fcl\u00f6nb\u00f6z\u0151 r\u00e9szein nagym\u00e9rt\u00e9kben elt\u00e9rhetnek. Ez\u00e9rt az EI alak\u00edt\u00f3 jobban illeszkedhet a delta nyomtat\u00f3khoz, mint az MZV vagy a ZV, \u00e9s megfontoland\u00f3 a haszn\u00e1lata. Ha a rezonanciafrekvencia kell\u0151en nagy (50-60 Hz-n\u00e9l nagyobb), akkor ak\u00e1r meg is pr\u00f3b\u00e1lkozhatunk a 2HUMP_EI shaper tesztel\u00e9s\u00e9vel (a fent javasolt teszt futtat\u00e1s\u00e1val a SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI ), de ellen\u0151rizd ebben a szakaszban tal\u00e1lhat\u00f3 megfontol\u00e1sokat, miel\u0151tt enged\u00e9lyezn\u00e9d.","title":"Bemeneti form\u00e1z\u00f3 kiv\u00e1laszt\u00e1sa"},{"location":"Resonance_Compensation.html#a-max_accel-kivalasztasa","text":"Az el\u0151z\u0151 l\u00e9p\u00e9sben kiv\u00e1lasztott form\u00e1z\u00f3hoz nyomtatott tesztet kell k\u00e9sz\u00edtenie (ha nem nyomtatja ki a javasolt param\u00e9terekkel felszeletelt tesztmodellt a nyom\u00e1s el\u0151tol\u00e1s kikapcsol\u00e1s\u00e1val SET_PRESSURE_ADVANCE ADVANCE=0 \u00e9s a tuningtorony enged\u00e9lyez\u00e9s\u00e9vel TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 ). Vedd figyelembe, hogy nagyon nagy gyorsul\u00e1sokn\u00e1l a rezonanciafrekvenci\u00e1t\u00f3l \u00e9s a v\u00e1lasztott bemeneti alak\u00edt\u00f3t\u00f3l f\u00fcgg\u0151en (pl. az EI alak\u00edt\u00f3 nagyobb sim\u00edt\u00e1st hoz l\u00e9tre, mint az MZV) a bemeneti alak\u00edt\u00e1s t\u00fal nagy sim\u00edt\u00e1st \u00e9s az alkatr\u00e9szek lekerek\u00edt\u00e9s\u00e9t okozhatja. A max_accel \u00e9rt\u00e9ket teh\u00e1t \u00fagy kell megv\u00e1lasztani, hogy ezt megakad\u00e1lyozza. Egy m\u00e1sik param\u00e9ter, amely hat\u00e1ssal lehet a sim\u00edt\u00e1sra, az square_corner_velocity , ez\u00e9rt nem tan\u00e1csos az alap\u00e9rtelmezett 5 mm/sec f\u00f6l\u00e9 n\u00f6velni, hogy megakad\u00e1lyozzuk a fokozott sim\u00edt\u00e1st. A megfelel\u0151 max_accel \u00e9rt\u00e9k kiv\u00e1laszt\u00e1s\u00e1hoz vizsg\u00e1ld meg a kiv\u00e1lasztott bemeneti alak\u00edt\u00f3 modellj\u00e9t. El\u0151sz\u00f6r is jegyezze meg, hogy melyik gyorsul\u00e1sn\u00e1l m\u00e9g kicsi a gyorsul\u00e1s gy\u0171r\u0151d\u00e9se hogy Neked ez megfeleljen. Ezut\u00e1n ellen\u0151rizd a sim\u00edt\u00e1st. Ennek el\u0151seg\u00edt\u00e9se \u00e9rdek\u00e9ben a tesztmodellben egy kis r\u00e9s van a falon (0,15 mm): Ahogy n\u0151 a gyorsul\u00e1s, \u00fagy n\u0151 a sim\u00edt\u00e1s is, \u00e9s a t\u00e9nyleges r\u00e9s a nyomtat\u00e1sban kisz\u00e9lesedik: Ezen a k\u00e9pen a gyorsul\u00e1s balr\u00f3l jobbra n\u00f6vekszik, \u00e9s a r\u00e9s 3500 mm/sec^2-t\u0151l (balr\u00f3l az 5. s\u00e1v) kezd n\u0151ni. Teh\u00e1t ebben az esetben a max_accel = 3000 (mm/sec^2) a j\u00f3 \u00e9rt\u00e9k, hogy elker\u00fclj\u00fck a t\u00falzott sim\u00edt\u00e1st. Figyelje meg a gyorsul\u00e1st, amikor a r\u00e9s m\u00e9g mindig nagyon kicsi a pr\u00f3banyomaton. Ha kidudorod\u00e1sokat l\u00e1t, de a falon egy\u00e1ltal\u00e1n nincs r\u00e9s, m\u00e9g nagy gyorsul\u00e1sn\u00e1l is, az a kikapcsolt nyom\u00e1sel\u0151tol\u00e1s miatt lehet, k\u00fcl\u00f6n\u00f6sen a bowdenes extrudereken. Ha ez a helyzet, akkor lehet, hogy meg kell ism\u00e9telni a nyomtat\u00e1st enged\u00e9lyezett PA-val. Ez lehet a rosszul kalibr\u00e1lt (t\u00fal magas) nyomtat\u00f3sz\u00e1l \u00e1raml\u00e1s eredm\u00e9nye is, ez\u00e9rt ezt is \u00e9rdemes ellen\u0151rizni. V\u00e1laszd ki a k\u00e9t gyorsul\u00e1si \u00e9rt\u00e9k k\u00f6z\u00fcl a legkisebbet (a gy\u0171r\u0151d\u00e9sb\u0151l \u00e9s a sim\u00edt\u00e1sb\u00f3l), \u00e9s \u00edrd be max_accel n\u00e9ven a printer.cfg f\u00e1jlba. Megjegyzend\u0151, hogy el\u0151fordulhat k\u00fcl\u00f6n\u00f6sen alacsony gy\u0171r\u0151d\u00e9si frekvenci\u00e1kn\u00e1l, hogy az EI shaper m\u00e9g kisebb gyorsul\u00e1sokn\u00e1l is t\u00fal nagy sim\u00edt\u00e1st okoz. Ebben az esetben az MZV jobb v\u00e1laszt\u00e1s lehet, mert nagyobb gyorsul\u00e1si \u00e9rt\u00e9keket engedhet meg. Nagyon alacsony gy\u0171r\u0151d\u00e9si frekvenci\u00e1kon (~25 Hz \u00e9s az alatt) m\u00e9g az MZV shaper is t\u00fal sok sim\u00edt\u00e1st hozhat l\u00e9tre. Ha ez a helyzet, akkor megpr\u00f3b\u00e1lhatod megism\u00e9telni a Bemeneti form\u00e1z\u00f3 kiv\u00e1laszt\u00e1sa szakaszban le\u00edrt l\u00e9p\u00e9seket ZV shaper-el is, a SET_INPUT_SHAPER SHAPER_TYPE=ZV parancs haszn\u00e1lat\u00e1val. A ZV shaper-nek m\u00e9g kevesebb sim\u00edt\u00e1st kell mutatnia, mint az MZV-nek, de \u00e9rz\u00e9kenyebb a gy\u0171r\u0151d\u00e9si frekvenci\u00e1k m\u00e9r\u00e9si hib\u00e1ira. Egy m\u00e1sik szempont, hogy ha a rezonanciafrekvencia t\u00fal alacsony (20-25 Hz alatt), akkor \u00e9rdemes lehet n\u00f6velni a nyomtat\u00f3 v\u00e1z\u00e1nak merevs\u00e9g\u00e9t vagy cs\u00f6kkenteni a mozg\u00f3 t\u00f6meget. Ellenkez\u0151 esetben a gyorsul\u00e1s \u00e9s a nyomtat\u00e1si sebess\u00e9g korl\u00e1toz\u00f3dhat a t\u00fal sok sim\u00edt\u00e1s miatt most a gy\u0171r\u0151d\u00e9s helyett.","title":"A max_accel kiv\u00e1laszt\u00e1sa"},{"location":"Resonance_Compensation.html#a-rezonanciafrekvenciak-finomhangolasa","text":"Megjegyzend\u0151, hogy a rezonanciafrekvenci\u00e1k m\u00e9r\u00e9s\u00e9nek pontoss\u00e1ga a gy\u0171r\u0151d\u00e9si tesztmodell seg\u00edts\u00e9g\u00e9vel a legt\u00f6bb c\u00e9lra elegend\u0151, \u00edgy tov\u00e1bbi hangol\u00e1s nem javasolt. Ha m\u00e9gis meg akarja pr\u00f3b\u00e1lni k\u00e9tszeresen ellen\u0151rizni az eredm\u00e9nyeit (p\u00e9ld\u00e1ul ha m\u00e9g mindig l\u00e1t n\u00e9mi gy\u0171r\u0151d\u00e9st, miut\u00e1n kinyomtatott egy tesztmodellt egy tetsz\u0151leges bemeneti alak\u00edt\u00f3val, ugyanazokkal a frekvenci\u00e1kkal, mint amiket kor\u00e1bban m\u00e9rt), akkor k\u00f6vesse az ebben a szakaszban le\u00edrt l\u00e9p\u00e9seket. Vedd figyelembe, hogy ha az [input_shaper] enged\u00e9lyez\u00e9se ut\u00e1n k\u00fcl\u00f6nb\u00f6z\u0151 frekvenci\u00e1kon l\u00e1t gy\u0171r\u0151d\u00e9st, ez a szakasz nem fog seg\u00edteni. Felt\u00e9telezve, hogy felszeletelte a gy\u0171r\u0151d\u00e9si modellt a javasolt param\u00e9terekkel, hajtsd v\u00e9gre a k\u00f6vetkez\u0151 l\u00e9p\u00e9seket az X \u00e9s Y tengelyek mindegyik\u00e9n: K\u00e9sz\u00fclj fel a tesztre: SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 Gy\u0151z\u0151dj meg r\u00f3la, hogy a Pressure Advance ki van kapcsolva: SET_PRESSURE_ADVANCE ADVANCE=0 Add ki a parancsot: SET_INPUT_SHAPER SHAPER_TYPE=ZV A megl\u00e9v\u0151 gy\u0171r\u0151d\u00e9si tesztmodellb\u0151l a kiv\u00e1lasztott bemeneti alak\u00edt\u00f3val v\u00e1laszd ki azt a gyorsul\u00e1st, amely kell\u0151en j\u00f3l mutatja a gy\u0171r\u0151d\u00e9st, \u00e9s \u00e1ll\u00edtsd be a k\u00f6vetkez\u0151vel: SET_VELOCITY_LIMIT ACCEL=... Sz\u00e1m\u00edtsa ki a TUNING_TOWER parancshoz sz\u00fcks\u00e9ges param\u00e9tereket a shaper_freq_x param\u00e9ter hangol\u00e1s\u00e1hoz az al\u00e1bbiak szerint: Itt a shaper_freq_x param\u00e9ter a nyomtat\u00f3 aktu\u00e1lis \u00e9rt\u00e9ke a printer.cfg f\u00e1jlban megadva. Add ki a parancsot: TUNING_TOWER COMMAND=SET_INPUT_SHAPER PARAMETER=SHAPER_FREQ_X START=start FACTOR=factor BAND=5 a start \u00e9s factor \u00e9rt\u00e9kek felhaszn\u00e1l\u00e1s\u00e1val, amelyeket az (5.) l\u00e9p\u00e9sben sz\u00e1m\u00edtottunk. Nyomtasd ki a tesztmodellt. Az eredeti frekvencia\u00e9rt\u00e9k vissza\u00e1ll\u00edt\u00e1sa: SET_INPUT_SHAPER SHAPER_FREQ_X=... . Keresse meg azt a s\u00e1vot, amelyik a legkev\u00e9sb\u00e9 gy\u0171r\u00f6tt, \u00e9s sz\u00e1molja meg a sz\u00e1m\u00e1t alulr\u00f3l 1-t\u0151l kezdve. Az \u00faj shaper_freq_x \u00e9rt\u00e9k kisz\u00e1m\u00edt\u00e1sa a r\u00e9gi shaper_freq_x * (39 + 5 * #band-number) / 66 seg\u00edts\u00e9g\u00e9vel. Ism\u00e9telje meg ezeket a l\u00e9p\u00e9seket az Y tengelyre ugyan\u00edgy, az X tengelyre val\u00f3 hivatkoz\u00e1sokat az Y tengelyre val\u00f3 hivatkoz\u00e1ssal helyettes\u00edtve (pl. cser\u00e9lje ki a shaper_freq_x -t shaper_freq_y -ra a k\u00e9pletekben \u00e9s a TUNING_TOWER parancsban). P\u00e9ldak\u00e9nt tegy\u00fck fel, hogy az egyik tengelyen 45 Hz-es gy\u0171r\u0151d\u00e9si frekvenci\u00e1t m\u00e9rt\u00fcnk. Ez a start = 45 * 83 / 132 = 28,30 \u00e9s a faktor = 45 / 66 = 0,6818 \u00e9rt\u00e9ket ad a TUNING_TOWER parancshoz. Most tegy\u00fck fel, hogy a tesztmodell kinyomtat\u00e1sa ut\u00e1n az alulr\u00f3l sz\u00e1m\u00edtott negyedik s\u00e1v adja a legkevesebb gy\u0171r\u0151d\u00e9st. Ekkor a friss\u00edtett shaper_freq_? \u00e9rt\u00e9k 45 * (39 + 5 * 4) / 66 \u2248 40,23. Miut\u00e1n mindk\u00e9t \u00faj shaper_freq_x \u00e9s shaper_freq_y param\u00e9tert kisz\u00e1m\u00edtotta, friss\u00edtheti az [input_shaper] szakasz\u00e1t a nyomtat\u00f3 printer.cfg f\u00e1jlj\u00e1ban az \u00faj shaper_freq_x \u00e9s shaper_freq_y \u00e9rt\u00e9kekkel.","title":"A rezonanciafrekvenci\u00e1k finomhangol\u00e1sa"},{"location":"Resonance_Compensation.html#nyomas-elotolas","text":"Ha Pressure Advance-t haszn\u00e1l, akkor lehet, hogy \u00fajra kell hangolni. K\u00f6vesse az utas\u00edt\u00e1sokat az \u00faj \u00e9rt\u00e9k megtal\u00e1l\u00e1s\u00e1hoz, ha az elt\u00e9r az el\u0151z\u0151t\u0151l. A Pressure Advance be\u00e1ll\u00edt\u00e1sa el\u0151tt mindenk\u00e9ppen ind\u00edtsa \u00fajra a Klippert.","title":"Nyom\u00e1s el\u0151tol\u00e1s"},{"location":"Resonance_Compensation.html#a-gyurodesi-frekvenciak-megbizhatatlan-meresei","text":"Ha nem tudja m\u00e9rni a gy\u0171r\u0151d\u00e9si frekvenci\u00e1kat, pl. ha a rezg\u00e9sek k\u00f6z\u00f6tti t\u00e1vols\u00e1g nem stabil, akkor m\u00e9g mindig kihaszn\u00e1lhatod a bemeneti alak\u00edt\u00e1si technik\u00e1kat, de az eredm\u00e9nyek nem biztos, hogy olyan j\u00f3k lesznek, mint a frekvenci\u00e1k megfelel\u0151 m\u00e9r\u00e9s\u00e9vel. Valamint egy kicsit t\u00f6bb hangol\u00e1st \u00e9s a tesztmodell nyomtat\u00e1s\u00e1t ig\u00e9nyli. Megjegyzend\u0151, hogy egy m\u00e1sik lehet\u0151s\u00e9g egy gyorsul\u00e1sm\u00e9r\u0151 beszerz\u00e9se \u00e9s felszerel\u00e9se, valamint a rezonanci\u00e1k m\u00e9r\u00e9se (l\u00e1sd a dokumentumot , amely le\u00edrja a sz\u00fcks\u00e9ges hardvert \u00e9s a be\u00e1ll\u00edt\u00e1si folyamatot) - de ez a lehet\u0151s\u00e9g n\u00e9mi k\u00e9z\u00fcgyess\u00e9get, krimpel\u00e9st \u00e9s forraszt\u00e1st ig\u00e9nyel. A hangol\u00e1shoz adjunk hozz\u00e1 \u00fcres [input_shaper] szakaszt a printer.cfg f\u00e1jlhoz. Ezut\u00e1n, felt\u00e9telezve, hogy a javasolt param\u00e9terekkel felszeletelte a gy\u0171r\u0151d\u00e9si modellt, nyomtasd ki 3-szor az al\u00e1bbiak szerint. Els\u0151 alkalommal, a nyomtat\u00e1s el\u0151tt futtassa le a RESTART SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 SET_PRESSURE_ADVANCE ADVANCE=0 SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=60 SHAPER_FREQ_Y=60 TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 \u00e9s nyomtasd ki a modellt. Ezut\u00e1n nyomtasd ki a modellt \u00fajra, de a nyomtat\u00e1s el\u0151tt futtassa az al\u00e1bbiakat SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=50 SHAPER_FREQ_Y=50 TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Ezut\u00e1n nyomtassuk ki a modellt harmadszorra, de most futtassuk le a k\u00f6vetkez\u0151t SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=40 SHAPER_FREQ_Y=40 TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 L\u00e9nyeg\u00e9ben a gy\u0171r\u0151d\u00e9si tesztmodellt TUNING_TOWER seg\u00edts\u00e9g\u00e9vel nyomtatjuk ki, 2HUMP_EI shaperrel, shaper_freq = 60 Hz, 50 Hz \u00e9s 40 Hz. Ha egyik modell sem mutat javul\u00e1st a gy\u0171r\u0151d\u00e9sben, akkor sajnos \u00fagy t\u0171nik, hogy a bemeneti alak\u00edt\u00e1si technik\u00e1k nem seg\u00edthetnek az \u00d6n eset\u00e9ben. M\u00e1sk\u00fcl\u00f6nben el\u0151fordulhat, hogy az \u00f6sszes modell nem mutat gy\u0171r\u0151d\u00e9st, vagy n\u00e9h\u00e1ny modell gy\u0171r\u0151d\u00e9st mutat, n\u00e9h\u00e1ny pedig nem annyira. V\u00e1laszd ki azt a tesztmodellt, amelyik a legmagasabb frekvenci\u00e1val k\u00e9sz\u00fclt, \u00e9s m\u00e9g mindig j\u00f3 javul\u00e1st mutat a gy\u0171r\u0151d\u00e9sek tekintet\u00e9ben. Ha p\u00e9ld\u00e1ul a 40 Hz-es \u00e9s az 50 Hz-es modellek szinte egy\u00e1ltal\u00e1n nem mutatnak gy\u0171r\u0151d\u00e9st, a 60 Hz-es modell pedig m\u00e1r n\u00e9mileg t\u00f6bb gy\u0171r\u0151d\u00e9st mutat, maradj az 50 Hz-esn\u00e9l. Most ellen\u0151rizd, hogy az EI alak\u00edt\u00f3 el\u00e9g j\u00f3 lenne-e az esetedben. V\u00e1laszd ki az EI alak\u00edt\u00f3 frekvenci\u00e1j\u00e1t az \u00e1ltalad v\u00e1lasztott 2HUMP_EI alak\u00edt\u00f3 frekvenci\u00e1ja alapj\u00e1n: A 2HUMP_EI 60 Hz-es form\u00e1z\u00f3 eset\u00e9ben haszn\u00e1lj EI form\u00e1z\u00f3t shaper_freq = 50 Hz-es frekvenci\u00e1val. A 2HUMP_EI 50 Hz-es form\u00e1z\u00f3hoz haszn\u00e1lj EI form\u00e1z\u00f3t shaper_freq = 40 Hz \u00e9rt\u00e9kkel. A 2HUMP_EI 40 Hz-es form\u00e1z\u00f3hoz haszn\u00e1lj EI form\u00e1z\u00f3t shaper_freq = 33 Hz \u00e9rt\u00e9kkel. Most nyomtassuk ki a tesztmodellt m\u00e9g egyszer, a k\u00f6vetkez\u0151 futtat\u00e1s\u00e1val SET_INPUT_SHAPER SHAPER_TYPE=EI SHAPER_FREQ_X=... SHAPER_FREQ_Y=... TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 a kor\u00e1bban meghat\u00e1rozott shaper_freq_x=... \u00e9s shaper_freq_y=... \u00e9rt\u00e9kek megad\u00e1s\u00e1val. Ha az EI alak\u00edt\u00f3 a 2HUMP_EI alak\u00edt\u00f3hoz hasonl\u00f3an j\u00f3 eredm\u00e9nyeket mutat, maradj az EI alak\u00edt\u00f3 \u00e9s a kor\u00e1bban meghat\u00e1rozott frekvencia mellett, ellenkez\u0151 esetben haszn\u00e1ld a 2HUMP_EI alak\u00edt\u00f3t a megfelel\u0151 frekvenci\u00e1val. Add hozz\u00e1 az eredm\u00e9nyeket a printer.cfg f\u00e1jlhoz, pl. a k\u00f6vetkez\u0151 m\u00f3don. [input_shaper] shaper_freq_x: 50 shaper_freq_y: 50 shaper_type: 2hump_ei Folytassa a hangol\u00e1st a A max_accel kiv\u00e1laszt\u00e1sa szakaszban.","title":"A gy\u0171r\u0151d\u00e9si frekvenci\u00e1k megb\u00edzhatatlan m\u00e9r\u00e9sei"},{"location":"Resonance_Compensation.html#hibaelharitas-es-gyik","text":"","title":"Hibaelh\u00e1r\u00edt\u00e1s \u00e9s GYIK"},{"location":"Resonance_Compensation.html#nem-tudok-megbizhato-mereseket-vegezni-a-rezonanciafrekvenciakrol","text":"El\u0151sz\u00f6r is gy\u0151z\u0151dj meg r\u00f3la, hogy a gy\u0171r\u0151d\u00e9s helyett nem m\u00e1s probl\u00e9ma van a nyomtat\u00f3val. Ha a m\u00e9r\u00e9sek nem megb\u00edzhat\u00f3ak, mert p\u00e9ld\u00e1ul a rezg\u00e9sek k\u00f6z\u00f6tti t\u00e1vols\u00e1g nem stabil, az azt jelentheti, hogy a nyomtat\u00f3nak t\u00f6bb rezonanciafrekvenci\u00e1ja van ugyanazon a tengelyen. Megpr\u00f3b\u00e1lhatjuk k\u00f6vetni a A gy\u0171r\u0151d\u00e9si frekvenci\u00e1k megb\u00edzhatatlan m\u00e9r\u00e9sei szakaszban le\u00edrt hangol\u00e1si elj\u00e1r\u00e1st, \u00e9s m\u00e9g mindig ki lehet hozni valamit a bemeneti alak\u00edt\u00e1si technik\u00e1b\u00f3l. Egy m\u00e1sik lehet\u0151s\u00e9g egy gyorsul\u00e1sm\u00e9r\u0151 beszerel\u00e9se, majd rezonanci\u00e1k m\u00e9r\u00e9se vele, \u00e9s a bemeneti alak\u00edt\u00f3 automatikus hangol\u00e1sa e m\u00e9r\u00e9sek eredm\u00e9nyeinek felhaszn\u00e1l\u00e1s\u00e1val.","title":"Nem tudok megb\u00edzhat\u00f3 m\u00e9r\u00e9seket v\u00e9gezni a rezonanciafrekvenci\u00e1kr\u00f3l"},{"location":"Resonance_Compensation.html#az-input_shaper-engedelyezese-utan-tulsagosan-simitott-nyomtatott-alkatreszeket-kapok-es-a-finom-reszletek-elvesznek","text":"Ellen\u0151rizd a Max_accel kiv\u00e1laszt\u00e1sa szakaszban tal\u00e1lhat\u00f3 szempontokat. Ha a rezonanciafrekvencia alacsony, nem szabad t\u00fal magas max_accel \u00e9rt\u00e9ket be\u00e1ll\u00edtani, vagy n\u00f6velni a square_corner_velocity param\u00e9tereket. Az is lehet, hogy az EI (vagy a 2HUMP_EI \u00e9s 3HUMP_EI) v\u00e1ltoz\u00f3k helyett jobb az MZV vagy ak\u00e1r a ZV bemeneti v\u00e1ltoz\u00f3kat v\u00e1lasztani.","title":"Az [input_shaper] enged\u00e9lyez\u00e9se ut\u00e1n t\u00fals\u00e1gosan sim\u00edtott nyomtatott alkatr\u00e9szeket kapok, \u00e9s a finom r\u00e9szletek elvesznek"},{"location":"Resonance_Compensation.html#miutan-egy-ideig-sikeresen-nyomtatott-gyurodesek-nelkul-most-ugy-tunik-hogy-visszajott","text":"Lehets\u00e9ges, hogy egy id\u0151 ut\u00e1n a rezonanciafrekvenci\u00e1k megv\u00e1ltoztak. Pl. tal\u00e1n a sz\u00edjak feszess\u00e9ge megv\u00e1ltozott (a sz\u00edjak laz\u00e1bbak lettek) stb. J\u00f3 \u00f6tlet a Gy\u0171r\u0151d\u00e9si frekvencia szakaszban le\u00edrtak szerint ellen\u0151rizni \u00e9s \u00fajra megm\u00e9rni a rezonanciafrekvenci\u00e1kat, \u00e9s sz\u00fcks\u00e9g eset\u00e9n friss\u00edteni a konfigur\u00e1ci\u00f3s f\u00e1jlt.","title":"Miut\u00e1n egy ideig sikeresen nyomtatott gy\u0171r\u0151d\u00e9sek n\u00e9lk\u00fcl, most \u00fagy t\u0171nik, hogy visszaj\u00f6tt"},{"location":"Resonance_Compensation.html#tamogatott-a-kettos-kocsi-beallitasa-a-bemeneti-formazokkal","text":"Nincs k\u00fcl\u00f6n t\u00e1mogat\u00e1s a bemeneti form\u00e1z\u00f3kkal ell\u00e1tott kett\u0151s kocsikhoz, de ez nem jelenti azt, hogy ez a be\u00e1ll\u00edt\u00e1s nem fog m\u0171k\u00f6dni. A hangol\u00e1st k\u00e9tszer kell lefuttatni mindk\u00e9t kocsira, \u00e9s az X- \u00e9s Y-tengelyek gy\u0171r\u0151d\u00e9si frekvenci\u00e1it mindk\u00e9t kocsira f\u00fcggetlen\u00fcl kell kisz\u00e1m\u00edtani. Ezut\u00e1n a 0. kocsira vonatkoz\u00f3 \u00e9rt\u00e9keket tegye az [input_shaper] szakaszba, \u00e9s a kocsik v\u00e1lt\u00e1sakor menet k\u00f6zben v\u00e1ltoztassa meg az \u00e9rt\u00e9keket, p\u00e9ld\u00e1ul valamilyen makr\u00f3 seg\u00edts\u00e9g\u00e9vel: SET_DUAL_CARRIAGE CARRIAGE=1 SET_INPUT_SHAPER SHAPER_FREQ_X=... SHAPER_FREQ_Y=... \u00c9s ugyan\u00edgy a 0 kocsira val\u00f3 visszakapcsol\u00e1skor is.","title":"T\u00e1mogatott a kett\u0151s kocsi be\u00e1ll\u00edt\u00e1sa a bemeneti form\u00e1z\u00f3kkal?"},{"location":"Resonance_Compensation.html#az-input_shaper-befolyasolja-a-nyomtatasi-idot","text":"Nem, a input_shaper funkci\u00f3 \u00f6nmag\u00e1ban nincs hat\u00e1ssal a nyomtat\u00e1si id\u0151re. A max_accel \u00e9rt\u00e9ke azonban bizonyosan befoly\u00e1solja (ennek a param\u00e9ternek a hangol\u00e1sa ebben a szakaszban le van \u00edrva).","title":"Az input_shaper befoly\u00e1solja a nyomtat\u00e1si id\u0151t?"},{"location":"Resonance_Compensation.html#muszaki-reszletek","text":"","title":"M\u0171szaki r\u00e9szletek"},{"location":"Resonance_Compensation.html#bemeneti-valtozok","text":"A Klipperben haszn\u00e1lt bemeneti form\u00e1z\u00f3k meglehet\u0151sen szabv\u00e1nyosak, \u00e9s r\u00e9szletesebb \u00e1ttekint\u00e9st a megfelel\u0151 form\u00e1z\u00f3kat le\u00edr\u00f3 cikkekben tal\u00e1lhatunk. Ez a szakasz a t\u00e1mogatott bemeneti form\u00e1z\u00f3k n\u00e9h\u00e1ny technikai szempontj\u00e1nak r\u00f6vid \u00e1ttekint\u00e9s\u00e9t tartalmazza. Az al\u00e1bbi t\u00e1bl\u00e1zat az egyes shaperek n\u00e9h\u00e1ny (\u00e1ltal\u00e1ban hozz\u00e1vet\u0151leges) param\u00e9ter\u00e9t mutatja. Bemeneti v\u00e1ltoz\u00f3 V\u00e1ltoz\u00f3 id\u0151tartam Rezonancia cs\u00f6kkent\u00e9s 20x (5% rezg\u00e9st\u0171r\u00e9s) Rezonancia cs\u00f6kkent\u00e9s 10x (10% rezg\u00e9st\u0171r\u00e9s) ZV 0.5 / shaper_freq N/A \u00b1 5% shaper_freq MZV 0.75 / shaper_freq \u00b1 4% shaper_freq -10%...+15% shaper_freq ZVD 1 / shaper_freq \u00b1 15% shaper_freq \u00b1 22% shaper_freq EI 1 / shaper_freq \u00b1 20% shaper_freq \u00b1 25% shaper_freq 2HUMP_EI 1.5 / shaper_freq \u00b1 35% shaper_freq \u00b1 40 shaper_freq 3HUMP_EI 2 / shaper_freq -45...+50% shaper_freq -50%...+55% shaper_freq Megjegyz\u00e9s a rezonancia cs\u00f6kkent\u00e9ssel kapcsolatban: a fenti t\u00e1bl\u00e1zatban szerepl\u0151 \u00e9rt\u00e9kek hozz\u00e1vet\u0151legesek. Ha a nyomtat\u00f3 csillap\u00edt\u00e1si ar\u00e1nya minden egyes tengely eset\u00e9ben ismert, akkor a form\u00e1z\u00f3 pontosabban konfigur\u00e1lhat\u00f3, \u00e9s ekkor a rezonanci\u00e1kat egy kicsit sz\u00e9lesebb frekvenciatartom\u00e1nyban cs\u00f6kkenti. A csillap\u00edt\u00e1si ar\u00e1ny azonban \u00e1ltal\u00e1ban ismeretlen, \u00e9s speci\u00e1lis berendez\u00e9s n\u00e9lk\u00fcl neh\u00e9z megbecs\u00fclni, ez\u00e9rt a Klipper alap\u00e9rtelmez\u00e9s szerint 0,1 \u00e9rt\u00e9ket haszn\u00e1l, ami egy j\u00f3 \u00e1ltal\u00e1nos \u00e9rt\u00e9k. A t\u00e1bl\u00e1zatban szerepl\u0151 frekvenciatartom\u00e1nyok sz\u00e1mos k\u00fcl\u00f6nb\u00f6z\u0151 lehets\u00e9ges csillap\u00edt\u00e1si ar\u00e1nyt fednek le ezen \u00e9rt\u00e9k k\u00f6r\u00fcl (kb. 0,05-t\u0151l 0,2-ig). Vedd figyelembe azt is, hogy az EI, 2HUMP_EI \u00e9s 3HUMP_EI \u00fagy van be\u00e1ll\u00edtva, hogy a rezonanci\u00e1kat 5%-ra cs\u00f6kkentse, ez\u00e9rt a 10%-os rezonanci\u00e1ra vonatkoz\u00f3 \u00e9rt\u00e9kek csak referenciak\u00e9nt szolg\u00e1lnak. Hogyan haszn\u00e1ljuk ezt a t\u00e1bl\u00e1zatot: A form\u00e1z\u00f3 id\u0151tartama befoly\u00e1solja az alkatr\u00e9szek sim\u00edt\u00e1s\u00e1t - min\u00e9l nagyobb, ann\u00e1l sim\u00e1bbak az alkatr\u00e9szek. Ez a f\u00fcgg\u0151s\u00e9g nem line\u00e1ris, de \u00e9rz\u00e9kelteti, hogy ugyanazon frekvencia eset\u00e9n melyik shaper 'sim\u00edt\u00f3' sim\u00edt jobban. A sim\u00edt\u00e1s szerinti sorrend \u00edgy n\u00e9z ki: ZV < MZV < ZVD \u2248 EI < 2HUMP_EI < 3HUMP_EI. Tov\u00e1bb\u00e1, a 2HUMP_EI \u00e9s 3HUMP_EI alak\u00edt\u00f3k eset\u00e9ben ritk\u00e1n praktikus a shaper_freq = rezonancia frekvencia \u00e9rt\u00e9ket be\u00e1ll\u00edtani (ezeket t\u00f6bb frekvencia rezg\u00e9seinek cs\u00f6kkent\u00e9s\u00e9re kell haszn\u00e1lni). Megbecs\u00fclhet\u0151 az a frekvenciatartom\u00e1ny, amelyben a form\u00e1z\u00f3 cs\u00f6kkenti a rezg\u00e9seket. P\u00e9ld\u00e1ul a shaper_freq = 35 Hz-es MZV a [33,6, 36,4] Hz-es frekvenci\u00e1n 5%-ra cs\u00f6kkenti a rezg\u00e9seket. A 3HUMP_EI shaper_freq = 50 Hz eset\u00e9n a [27,5, 75] Hz tartom\u00e1nyban 5%-ra cs\u00f6kkenti a rezg\u00e9seket. A t\u00e1bl\u00e1zat seg\u00edts\u00e9g\u00e9vel ellen\u0151rizheti, hogy melyik v\u00e1ltoz\u00f3t kell haszn\u00e1lnia, ha t\u00f6bb frekvenci\u00e1n kell cs\u00f6kkentenie a rezg\u00e9seket. P\u00e9ld\u00e1ul, ha ugyanazon a tengelyen 35 Hz-es \u00e9s 60 Hz-es rezonanci\u00e1k vannak: a) az EI alak\u00edt\u00f3nak a shaper_freq = 35 / (1 - 0,2) = 43,75 Hz-re van sz\u00fcks\u00e9ge, \u00e9s 43,75 * (1 + 0,2) = 52-ig cs\u00f6kkenti a rezonanci\u00e1kat teh\u00e1t az 52.5 Hz, nem elegend\u0151. b) a 2HUMP_EI alak\u00edt\u00f3nak shaper_freq = 35 / (1 - 0,35) = 53,85 Hz-nek kell lennie, \u00e9s 53,85 * (1 + 0,35) = 72,7 Hz-ig cs\u00f6kkenti a rezg\u00e9seket - teh\u00e1t ez egy elfogadhat\u00f3 konfigur\u00e1ci\u00f3. Mindig pr\u00f3b\u00e1ljon meg min\u00e9l magasabb shaper_freq \u00e9rt\u00e9ket haszn\u00e1lni egy adott shaper-hez (esetleg n\u00e9mi biztons\u00e1gi tartal\u00e9kkal, \u00edgy ebben a p\u00e9ld\u00e1ban a shaper_freq \u2248 50-52 Hz lenne a legjobb), \u00e9s pr\u00f3b\u00e1ljon meg min\u00e9l kisebb shaper id\u0151tartam\u00fa \u00e9rt\u00e9ket haszn\u00e1lni. Ha valakinek t\u00f6bb nagyon k\u00fcl\u00f6nb\u00f6z\u0151 frekvenci\u00e1n (mondjuk 30 Hz \u00e9s 100 Hz) kell cs\u00f6kkentenie a rezg\u00e9seket, l\u00e1thatja, hogy a fenti t\u00e1bl\u00e1zat nem ny\u00fajt elegend\u0151 inform\u00e1ci\u00f3t. Ebben az esetben t\u00f6bb szerencs\u00e9nk lehet a scripts/graph_shaper.py szkripttel, amely rugalmasabb.","title":"Bemeneti v\u00e1ltoz\u00f3k"},{"location":"Rotation_Distance.html","text":"Forgat\u00e1si t\u00e1vols\u00e1g \u00b6 A Klipper l\u00e9ptet\u0151motor meghajt\u00f3k minden l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3s szakaszban megk\u00f6vetelnek egy rotation_distance param\u00e9tert. A rotation_distance az a t\u00e1vols\u00e1g, amelyet a tengely a l\u00e9ptet\u0151motor egy teljes fordulat\u00e1val elmozd\u00edt. Ez a dokumentum le\u00edrja, hogyan lehet ezt az \u00e9rt\u00e9ket be\u00e1ll\u00edtani. A rotation_distance kinyer\u00e9se a steps_per_mm (vagy step_distance) \u00e9rt\u00e9kb\u0151l \u00b6 A 3D nyomtat\u00f3 tervez\u0151i eredetileg steps_per_mm forgat\u00e1si t\u00e1vols\u00e1gb\u00f3l sz\u00e1m\u00edtott\u00e1k ki. Ha ismered a steps_per_mm \u00e9rt\u00e9ket, akkor ezzel az \u00e1ltal\u00e1nos k\u00e9plettel megkaphatod az eredeti forgat\u00e1si t\u00e1vols\u00e1got: rotation_distance = <full_steps_per_rotation> * <microsteps> / <steps_per_mm> Vagy ha r\u00e9gebbi Klipper konfigur\u00e1ci\u00f3val rendelkezel, \u00e9s ismered a step_distance param\u00e9tert, akkor haszn\u00e1lhatod ezt a k\u00e9pletet: rotation_distance = <full_steps_per_rotation> * <microsteps> * <step_distance> A <full_steps_per_rotation> be\u00e1ll\u00edt\u00e1st a l\u00e9ptet\u0151motor t\u00edpusa hat\u00e1rozza meg. A legt\u00f6bb l\u00e9ptet\u0151motor \"1,8 fokos l\u00e9p\u00e9ssz\u00f6g\u0171\" \u00e9s ez\u00e9rt 200 teljes l\u00e9p\u00e9s/fordulat (360 osztva 1,8-al az a 200). Egyes l\u00e9ptet\u0151motorok \"0,9 fokos l\u00e9p\u00e9ssz\u00f6g\u0171ek\" \u00e9s \u00edgy 400 teljes l\u00e9p\u00e9st tesznek meg fordulatonk\u00e9nt. M\u00e1s l\u00e9ptet\u0151motorok ritk\u00e1bbak. Ha bizonytalan vagy, ne \u00e1ll\u00edtsd be a full_steps_per_rotation \u00e9rt\u00e9ket a konfigur\u00e1ci\u00f3s f\u00e1jlban, \u00e9s haszn\u00e1ld a 200-at a fenti k\u00e9pletben. A <mikrol\u00e9p\u00e9sek> be\u00e1ll\u00edt\u00e1st a l\u00e9ptet\u0151motor-meghajt\u00f3 hat\u00e1rozza meg. A legt\u00f6bb meghajt\u00f3 16 mikrol\u00e9p\u00e9st haszn\u00e1l. Ha bizonytalan vagy, \u00e1ll\u00edtsd be a microsteps: 16 a konfigur\u00e1ci\u00f3ban, \u00e9s haszn\u00e1ld a 16-ot a fenti k\u00e9pletben. Szinte minden nyomtat\u00f3nak eg\u00e9sz sz\u00e1mot kell megadnia a rotation_distance X, Y \u00e9s Z t\u00edpus\u00fa tengelyekn\u00e9l. Ha a fenti k\u00e9plet olyan rotation_distance-ot eredm\u00e9nyez, amely 0,01 eg\u00e9sz sz\u00e1mon bel\u00fcl van, akkor kerek\u00edtse a v\u00e9gs\u0151 \u00e9rt\u00e9ket erre az eg\u00e9sz sz\u00e1mra. A rotation_distance kalibr\u00e1l\u00e1sa extrudereken \u00b6 Egy extruder eset\u00e9ben a rotation_distance az a t\u00e1vols\u00e1g, amelyet a nyomtat\u00f3sz\u00e1l l\u00e9ptet\u0151motor egy teljes fordulat\u00e1n megtesz. Ennek a be\u00e1ll\u00edt\u00e1snak a pontos \u00e9rt\u00e9k\u00e9t a \"m\u00e9r\u00e9s \u00e9s igaz\u00edt\u00e1s\" elj\u00e1r\u00e1ssal lehet a legjobban meghat\u00e1rozni. El\u0151sz\u00f6r is kezdj\u00fck a forgat\u00e1si t\u00e1vols\u00e1g kezdeti becsl\u00e9s\u00e9vel. Ezt a steps_per_mm vagy a hardver vizsg\u00e1lata seg\u00edts\u00e9g\u00e9vel kaphatjuk meg. Ezut\u00e1n a k\u00f6vetkez\u0151 elj\u00e1r\u00e1st alkalmazd a \"m\u00e9r\u00e9s \u00e9s igaz\u00edt\u00e1s\" elv\u00e9gz\u00e9s\u00e9hez: Gy\u0151z\u0151dj meg arr\u00f3l, hogy az extruderben van-e nyomtat\u00f3sz\u00e1l, a hotend megfelel\u0151 h\u0151m\u00e9rs\u00e9kletre van-e meleg\u00edtve, \u00e9s a nyomtat\u00f3 k\u00e9szen \u00e1ll-e az extrud\u00e1l\u00e1sra. Jel\u00f6lje meg a nyomtat\u00f3sz\u00e1lat egy jel\u00f6l\u0151vel az extrudertest bemen\u0151 ny\u00edl\u00e1s\u00e1t\u00f3l kb. 70 mm-re. Ezut\u00e1n egy digit\u00e1lis tol\u00f3m\u00e9r\u0151vel m\u00e9rd meg a lehet\u0151 legpontosabban ennek a jel\u00f6l\u00e9snek a t\u00e9nyleges t\u00e1vols\u00e1g\u00e1t. Ezt jegyezze fel <initial_mark_distance> . Extrud\u00e1ljon 50 mm nyomtat\u00f3sz\u00e1lat a k\u00f6vetkez\u0151 parancsokkal: G91 , majd G1 E50 F60 . Az 50 mm-t jegyezze meg <requested_extrude_distance> . V\u00e1rja meg, am\u00edg az extruder befejezi a mozg\u00e1st (ez k\u00f6r\u00fclbel\u00fcl 50 m\u00e1sodpercig tart). Fontos, hogy lass\u00fa extrud\u00e1l\u00e1si sebess\u00e9get haszn\u00e1lj ehhez a teszthez, mivel a gyorsabb sebess\u00e9g magas nyom\u00e1st okozhat az extruderben, ami torz\u00edtja az eredm\u00e9nyeket. (Ne haszn\u00e1lod az \"extrude gombot\" a grafikus el\u0151lapon ehhez a teszthez, mivel azok gyors \u00fctemben extrud\u00e1lnak.) A digit\u00e1lis tol\u00f3m\u00e9r\u0151vel m\u00e9rd meg az extruder teste \u00e9s a sz\u00e1lon l\u00e9v\u0151 jel\u00f6l\u00e9s k\u00f6z\u00f6tti \u00faj t\u00e1vols\u00e1got. Ezt jegyezze fel <subsequent_mark_distance> . Ezut\u00e1n sz\u00e1m\u00edtsa ki: actual_extrude_distance = <initial_mark_distance> - <subsequent_mark_distance> A rotation_distance kisz\u00e1m\u00edt\u00e1sa: rotation_distance = <previous_rotation_distance> * <actual_extrude_distance> / <requested_extrude_distance> Az \u00faj rotation_distance-t h\u00e1rom tizedesjegyre kerek\u00edtj\u00fck. Ha az actual_extrude_distance t\u00f6bb mint 2 mm-rel elt\u00e9r a requested_extrude_distance-t\u00f3l, akkor \u00e9rdemes a fenti l\u00e9p\u00e9seket m\u00e1sodszor is elv\u00e9gezni. Megjegyz\u00e9s: Ne haszn\u00e1lj \"m\u00e9r\u00e9s \u00e9s trimmel\u00e9s\" t\u00edpus\u00fa m\u00f3dszert az X, Y vagy Z t\u00edpus\u00fa tengelyek kalibr\u00e1l\u00e1s\u00e1ra. A \"measure and trim\" m\u00f3dszer nem el\u00e9g pontos ezekhez a tengelyekhez, \u00e9s val\u00f3sz\u00edn\u0171leg rosszabb konfigur\u00e1ci\u00f3hoz vezet. Ehelyett, ha sz\u00fcks\u00e9ges, ezeket a tengelyeket a sz\u00edjak, sz\u00edjt\u00e1rcs\u00e1k \u00e9s az ors\u00f3k hardver\u00e9nek m\u00e9r\u00e9s\u00e9vel lehet meghat\u00e1rozni. A rotation_distance meghat\u00e1roz\u00e1sa a hardver vizsg\u00e1lat\u00e1val \u00b6 Lehets\u00e9ges a rotation_distance kisz\u00e1m\u00edt\u00e1sa a l\u00e9ptet\u0151motorok \u00e9s a nyomtat\u00f3 kinematik\u00e1j\u00e1nak ismeret\u00e9ben. Ez hasznos lehet, ha a steps_per_mm nem ismert, vagy ha \u00faj nyomtat\u00f3t tervez\u00fcnk. Sz\u00edjhajt\u00e1s\u00fa tengelyek \u00b6 Egyszer\u0171 kisz\u00e1m\u00edtani a rotation_distance-t egy sz\u00edjat \u00e9s csig\u00e1t haszn\u00e1l\u00f3 line\u00e1ris tengely eset\u00e9ben. El\u0151sz\u00f6r hat\u00e1rozza meg a sz\u00edj t\u00edpus\u00e1t. A legt\u00f6bb nyomtat\u00f3 2 mm-es fogoszt\u00e1st haszn\u00e1l (azaz a sz\u00edj minden egyes foga 2 mm t\u00e1vols\u00e1gra van egym\u00e1st\u00f3l). Ezut\u00e1n sz\u00e1molja meg a l\u00e9ptet\u0151motor sz\u00edjt\u00e1rcs\u00e1ja fogainak sz\u00e1m\u00e1t. A rotation_distance ezut\u00e1n a k\u00f6vetkez\u0151k\u00e9ppen sz\u00e1m\u00edthat\u00f3 ki: rotation_distance = <belt_pitch> * <number_of_teeth_on_pulley> Ha p\u00e9ld\u00e1ul egy nyomtat\u00f3 2 mm-es fogoszt\u00e1s\u00fa sz\u00edjjal rendelkezik, \u00e9s 20 fog\u00fa t\u00e1rcs\u00e1t haszn\u00e1l, akkor a forgat\u00e1si t\u00e1vols\u00e1g 40. Tengelyek trap\u00e9zmenetes ors\u00f3val \u00b6 A rotation_distance a szok\u00e1sos csavarok eset\u00e9ben k\u00f6nnyen kisz\u00e1m\u00edthat\u00f3 a k\u00f6vetkez\u0151 k\u00e9plet seg\u00edts\u00e9g\u00e9vel: rotation_distance = <screw_pitch> * <number_of_separate_threads> P\u00e9ld\u00e1ul a szok\u00e1sos \"T8-as trap\u00e9zmenetes ors\u00f3\" forgat\u00e1si t\u00e1vols\u00e1ga 8 (2 mm-es l\u00e9p\u00e9sk\u00f6zzel \u00e9s 4 k\u00fcl\u00f6n\u00e1ll\u00f3 menettel rendelkezik). A \"menetes sz\u00e1rakkal\" ell\u00e1tott r\u00e9gebbi nyomtat\u00f3knak csak egy \"menet\" van a menetes sz\u00e1ron, \u00e9s \u00edgy a forgat\u00e1si t\u00e1vols\u00e1g a csavar l\u00e9p\u00e9ssz\u00f6ge. (A csavar l\u00e9p\u00e9sk\u00f6ze a csavaron l\u00e9v\u0151 egyes hornyok k\u00f6z\u00f6tti t\u00e1vols\u00e1g.) \u00cdgy p\u00e9ld\u00e1ul egy M6-os metrikus menetes sz\u00e1r forgat\u00e1si t\u00e1vols\u00e1ga 1, \u00e9s egy M8-as menetes sz\u00e1r\u00e9 pedig 1,25mm-es. Extruder \u00b6 Az extruderek kezdeti forgat\u00e1si t\u00e1vols\u00e1g\u00e1t \u00fagy lehet meghat\u00e1rozni, hogy megm\u00e9rj\u00fck a \"sz\u00e1lmozgat\u00f3 ker\u00e9k\" \u00e1tm\u00e9r\u0151j\u00e9t, amely a sz\u00e1lakat tolja, \u00e9s a k\u00f6vetkez\u0151 k\u00e9pletet haszn\u00e1ljuk: rotation_distance = <diameter> * 3.14 Ha az extruder fogaskerekeket haszn\u00e1l, akkor meg kell hat\u00e1rozni \u00e9s be kell \u00e1ll\u00edtani a gear_ratio \u00e9rt\u00e9ket az extruderhez. Az extruder t\u00e9nyleges forgat\u00e1si t\u00e1vols\u00e1ga nyomtat\u00f3r\u00f3l nyomtat\u00f3ra v\u00e1ltozik, mivel a \"sz\u00e1lmozgat\u00f3 ker\u00e9k\" fogaz\u00e1sa, amely a sz\u00e1lakkal \u00e9rintkezik, v\u00e1ltozhat. Ez m\u00e9g az egyes sz\u00e1ltekercsek k\u00f6z\u00f6tt is v\u00e1ltozhat. A kezdeti rotation_distance meghat\u00e1roz\u00e1sa ut\u00e1n haszn\u00e1ld a m\u00e9r\u00e9s \u00e9s trimmel\u00e9s elj\u00e1r\u00e1s m\u0171veletet a pontosabb be\u00e1ll\u00edt\u00e1shoz. A gear_ratio haszn\u00e1lata \u00b6 A gear_ratio be\u00e1ll\u00edt\u00e1sa megk\u00f6nny\u00edtheti a rotation_distance konfigur\u00e1l\u00e1s\u00e1t olyan l\u00e9ptet\u0151kn\u00e9l, amelyekhez \u00e1tt\u00e9tel (vagy hasonl\u00f3) van csatlakoztatva. A legt\u00f6bb l\u00e9ptet\u0151 nem rendelkezik \u00e1tt\u00e9tellel. Ha nem biztos benne, akkor ne \u00e1ll\u00edtsd be a gear_ratio \u00e9rt\u00e9ket a konfigur\u00e1ci\u00f3ban. Ha gear_ratio be van \u00e1ll\u00edtva, a rotation_distance azt a t\u00e1vols\u00e1got jel\u00f6li, amelyet a tengely az \u00e1tt\u00e9telen l\u00e9v\u0151 utols\u00f3 fogasker\u00e9k egy teljes elfordul\u00e1s\u00e1val megtesz. Ha p\u00e9ld\u00e1ul egy \"5:1\"-es \u00e1tt\u00e9telt haszn\u00e1lunk, akkor kisz\u00e1m\u00edthatjuk a rotation_distance-ot a hardver ismeret\u00e9ben , majd hozz\u00e1adhatjuk a gear_ratio: 5:1 \u00e9rt\u00e9ket a konfigur\u00e1ci\u00f3s f\u00e1jlhoz. A sz\u00edjakkal \u00e9s sz\u00edjt\u00e1rcs\u00e1kkal megval\u00f3s\u00edtott hajt\u00f3m\u0171vek eset\u00e9ben a fogaskerekek fogainak megsz\u00e1ml\u00e1l\u00e1s\u00e1val lehet meghat\u00e1rozni a gear_ratio-t. Ha p\u00e9ld\u00e1ul egy 16 fogaz\u00e1s\u00fa sz\u00edjt\u00e1rcs\u00e1val rendelkez\u0151 l\u00e9ptet\u0151 meghajtja a, 80 fogaz\u00e1s\u00fa sz\u00edjt\u00e1rcs\u00e1t, akkor a gear_ratio: 80:16 \u00e9rt\u00e9ket haszn\u00e1ljuk. Val\u00f3ban, ki lehetne nyitni egy k\u00f6z\u00f6ns\u00e9ges, \"fogasker\u00e9kdobozt\" \u00e9s megsz\u00e1molni a benne l\u00e9v\u0151 fogakat, hogy meger\u0151s\u00edts\u00fck a fogasker\u00e9k \u00e1tt\u00e9tel\u00e9t. Vedd figyelembe, hogy n\u00e9ha egy \u00e1tt\u00e9tel kiss\u00e9 elt\u00e9r a hirdetett \u00e9rt\u00e9kt\u0151l. A BMG extrudermotorok k\u00f6z\u00f6s fogaskerekei p\u00e9ld\u00e1t mutatnak erre. A rekl\u00e1mok szerint \"3:1\", de val\u00f3j\u00e1ban \"50:17\" \u00e1tt\u00e9telt haszn\u00e1lnak. (A k\u00f6z\u00f6s nevez\u0151 n\u00e9lk\u00fcli fogsz\u00e1mok haszn\u00e1lata jav\u00edthatja a fogaskerekek \u00e1ltal\u00e1nos kop\u00e1s\u00e1t, mivel a fogak nem mindig ugyan\u00fagy fognak \u00f6ssze minden egyes fordulatn\u00e1l.) A gyakori \"5,18:1 bolyg\u00f3m\u0171ves sebess\u00e9gv\u00e1lt\u00f3\", pontosabban a gear_ratio: 57:11 \u00e9rt\u00e9kkel van konfigur\u00e1lva. Ha egy tengelyen t\u00f6bb fogasker\u00e9k van haszn\u00e1latban, akkor a gear_ratio-nak egy vessz\u0151vel elv\u00e1lasztott list\u00e1t lehet megadni. P\u00e9ld\u00e1ul egy \"5:1\" fogasker\u00e9k, amely egy 16 fogaz\u00e1s\u00fa \u00e9s egy 80 fogaz\u00e1s\u00fa t\u00e1rcs\u00e1t hajt, haszn\u00e1lhatod a gear_ratio: 5:1, 80:16 \u00e9rt\u00e9keket. A legt\u00f6bb esetben a gear_ratio \u00e9rt\u00e9k\u00e9t eg\u00e9sz sz\u00e1mokkal kell megadni, mivel a fogaskerekek \u00e9s a sz\u00edjt\u00e1rcs\u00e1k fogainak sz\u00e1ma \u00e1ltal\u00e1ban eg\u00e9sz. Azokban az esetekben azonban, amikor a sz\u00edj fogak helyett s\u00farl\u00f3d\u00e1ssal hajtja a sz\u00edjt\u00e1rcs\u00e1t, \u00e9rdemes lehet lebeg\u0151pontos sz\u00e1mot haszn\u00e1lni a fogasker\u00e9k-\u00e1tt\u00e9telben (pl. gear_ratio: 107,237:16 ).","title":"Forgat\u00e1si t\u00e1vols\u00e1g"},{"location":"Rotation_Distance.html#forgatasi-tavolsag","text":"A Klipper l\u00e9ptet\u0151motor meghajt\u00f3k minden l\u00e9ptet\u0151 konfigur\u00e1ci\u00f3s szakaszban megk\u00f6vetelnek egy rotation_distance param\u00e9tert. A rotation_distance az a t\u00e1vols\u00e1g, amelyet a tengely a l\u00e9ptet\u0151motor egy teljes fordulat\u00e1val elmozd\u00edt. Ez a dokumentum le\u00edrja, hogyan lehet ezt az \u00e9rt\u00e9ket be\u00e1ll\u00edtani.","title":"Forgat\u00e1si t\u00e1vols\u00e1g"},{"location":"Rotation_Distance.html#a-rotation_distance-kinyerese-a-steps_per_mm-vagy-step_distance-ertekbol","text":"A 3D nyomtat\u00f3 tervez\u0151i eredetileg steps_per_mm forgat\u00e1si t\u00e1vols\u00e1gb\u00f3l sz\u00e1m\u00edtott\u00e1k ki. Ha ismered a steps_per_mm \u00e9rt\u00e9ket, akkor ezzel az \u00e1ltal\u00e1nos k\u00e9plettel megkaphatod az eredeti forgat\u00e1si t\u00e1vols\u00e1got: rotation_distance = <full_steps_per_rotation> * <microsteps> / <steps_per_mm> Vagy ha r\u00e9gebbi Klipper konfigur\u00e1ci\u00f3val rendelkezel, \u00e9s ismered a step_distance param\u00e9tert, akkor haszn\u00e1lhatod ezt a k\u00e9pletet: rotation_distance = <full_steps_per_rotation> * <microsteps> * <step_distance> A <full_steps_per_rotation> be\u00e1ll\u00edt\u00e1st a l\u00e9ptet\u0151motor t\u00edpusa hat\u00e1rozza meg. A legt\u00f6bb l\u00e9ptet\u0151motor \"1,8 fokos l\u00e9p\u00e9ssz\u00f6g\u0171\" \u00e9s ez\u00e9rt 200 teljes l\u00e9p\u00e9s/fordulat (360 osztva 1,8-al az a 200). Egyes l\u00e9ptet\u0151motorok \"0,9 fokos l\u00e9p\u00e9ssz\u00f6g\u0171ek\" \u00e9s \u00edgy 400 teljes l\u00e9p\u00e9st tesznek meg fordulatonk\u00e9nt. M\u00e1s l\u00e9ptet\u0151motorok ritk\u00e1bbak. Ha bizonytalan vagy, ne \u00e1ll\u00edtsd be a full_steps_per_rotation \u00e9rt\u00e9ket a konfigur\u00e1ci\u00f3s f\u00e1jlban, \u00e9s haszn\u00e1ld a 200-at a fenti k\u00e9pletben. A <mikrol\u00e9p\u00e9sek> be\u00e1ll\u00edt\u00e1st a l\u00e9ptet\u0151motor-meghajt\u00f3 hat\u00e1rozza meg. A legt\u00f6bb meghajt\u00f3 16 mikrol\u00e9p\u00e9st haszn\u00e1l. Ha bizonytalan vagy, \u00e1ll\u00edtsd be a microsteps: 16 a konfigur\u00e1ci\u00f3ban, \u00e9s haszn\u00e1ld a 16-ot a fenti k\u00e9pletben. Szinte minden nyomtat\u00f3nak eg\u00e9sz sz\u00e1mot kell megadnia a rotation_distance X, Y \u00e9s Z t\u00edpus\u00fa tengelyekn\u00e9l. Ha a fenti k\u00e9plet olyan rotation_distance-ot eredm\u00e9nyez, amely 0,01 eg\u00e9sz sz\u00e1mon bel\u00fcl van, akkor kerek\u00edtse a v\u00e9gs\u0151 \u00e9rt\u00e9ket erre az eg\u00e9sz sz\u00e1mra.","title":"A rotation_distance kinyer\u00e9se a steps_per_mm (vagy step_distance) \u00e9rt\u00e9kb\u0151l"},{"location":"Rotation_Distance.html#a-rotation_distance-kalibralasa-extrudereken","text":"Egy extruder eset\u00e9ben a rotation_distance az a t\u00e1vols\u00e1g, amelyet a nyomtat\u00f3sz\u00e1l l\u00e9ptet\u0151motor egy teljes fordulat\u00e1n megtesz. Ennek a be\u00e1ll\u00edt\u00e1snak a pontos \u00e9rt\u00e9k\u00e9t a \"m\u00e9r\u00e9s \u00e9s igaz\u00edt\u00e1s\" elj\u00e1r\u00e1ssal lehet a legjobban meghat\u00e1rozni. El\u0151sz\u00f6r is kezdj\u00fck a forgat\u00e1si t\u00e1vols\u00e1g kezdeti becsl\u00e9s\u00e9vel. Ezt a steps_per_mm vagy a hardver vizsg\u00e1lata seg\u00edts\u00e9g\u00e9vel kaphatjuk meg. Ezut\u00e1n a k\u00f6vetkez\u0151 elj\u00e1r\u00e1st alkalmazd a \"m\u00e9r\u00e9s \u00e9s igaz\u00edt\u00e1s\" elv\u00e9gz\u00e9s\u00e9hez: Gy\u0151z\u0151dj meg arr\u00f3l, hogy az extruderben van-e nyomtat\u00f3sz\u00e1l, a hotend megfelel\u0151 h\u0151m\u00e9rs\u00e9kletre van-e meleg\u00edtve, \u00e9s a nyomtat\u00f3 k\u00e9szen \u00e1ll-e az extrud\u00e1l\u00e1sra. Jel\u00f6lje meg a nyomtat\u00f3sz\u00e1lat egy jel\u00f6l\u0151vel az extrudertest bemen\u0151 ny\u00edl\u00e1s\u00e1t\u00f3l kb. 70 mm-re. Ezut\u00e1n egy digit\u00e1lis tol\u00f3m\u00e9r\u0151vel m\u00e9rd meg a lehet\u0151 legpontosabban ennek a jel\u00f6l\u00e9snek a t\u00e9nyleges t\u00e1vols\u00e1g\u00e1t. Ezt jegyezze fel <initial_mark_distance> . Extrud\u00e1ljon 50 mm nyomtat\u00f3sz\u00e1lat a k\u00f6vetkez\u0151 parancsokkal: G91 , majd G1 E50 F60 . Az 50 mm-t jegyezze meg <requested_extrude_distance> . V\u00e1rja meg, am\u00edg az extruder befejezi a mozg\u00e1st (ez k\u00f6r\u00fclbel\u00fcl 50 m\u00e1sodpercig tart). Fontos, hogy lass\u00fa extrud\u00e1l\u00e1si sebess\u00e9get haszn\u00e1lj ehhez a teszthez, mivel a gyorsabb sebess\u00e9g magas nyom\u00e1st okozhat az extruderben, ami torz\u00edtja az eredm\u00e9nyeket. (Ne haszn\u00e1lod az \"extrude gombot\" a grafikus el\u0151lapon ehhez a teszthez, mivel azok gyors \u00fctemben extrud\u00e1lnak.) A digit\u00e1lis tol\u00f3m\u00e9r\u0151vel m\u00e9rd meg az extruder teste \u00e9s a sz\u00e1lon l\u00e9v\u0151 jel\u00f6l\u00e9s k\u00f6z\u00f6tti \u00faj t\u00e1vols\u00e1got. Ezt jegyezze fel <subsequent_mark_distance> . Ezut\u00e1n sz\u00e1m\u00edtsa ki: actual_extrude_distance = <initial_mark_distance> - <subsequent_mark_distance> A rotation_distance kisz\u00e1m\u00edt\u00e1sa: rotation_distance = <previous_rotation_distance> * <actual_extrude_distance> / <requested_extrude_distance> Az \u00faj rotation_distance-t h\u00e1rom tizedesjegyre kerek\u00edtj\u00fck. Ha az actual_extrude_distance t\u00f6bb mint 2 mm-rel elt\u00e9r a requested_extrude_distance-t\u00f3l, akkor \u00e9rdemes a fenti l\u00e9p\u00e9seket m\u00e1sodszor is elv\u00e9gezni. Megjegyz\u00e9s: Ne haszn\u00e1lj \"m\u00e9r\u00e9s \u00e9s trimmel\u00e9s\" t\u00edpus\u00fa m\u00f3dszert az X, Y vagy Z t\u00edpus\u00fa tengelyek kalibr\u00e1l\u00e1s\u00e1ra. A \"measure and trim\" m\u00f3dszer nem el\u00e9g pontos ezekhez a tengelyekhez, \u00e9s val\u00f3sz\u00edn\u0171leg rosszabb konfigur\u00e1ci\u00f3hoz vezet. Ehelyett, ha sz\u00fcks\u00e9ges, ezeket a tengelyeket a sz\u00edjak, sz\u00edjt\u00e1rcs\u00e1k \u00e9s az ors\u00f3k hardver\u00e9nek m\u00e9r\u00e9s\u00e9vel lehet meghat\u00e1rozni.","title":"A rotation_distance kalibr\u00e1l\u00e1sa extrudereken"},{"location":"Rotation_Distance.html#a-rotation_distance-meghatarozasa-a-hardver-vizsgalataval","text":"Lehets\u00e9ges a rotation_distance kisz\u00e1m\u00edt\u00e1sa a l\u00e9ptet\u0151motorok \u00e9s a nyomtat\u00f3 kinematik\u00e1j\u00e1nak ismeret\u00e9ben. Ez hasznos lehet, ha a steps_per_mm nem ismert, vagy ha \u00faj nyomtat\u00f3t tervez\u00fcnk.","title":"A rotation_distance meghat\u00e1roz\u00e1sa a hardver vizsg\u00e1lat\u00e1val"},{"location":"Rotation_Distance.html#szijhajtasu-tengelyek","text":"Egyszer\u0171 kisz\u00e1m\u00edtani a rotation_distance-t egy sz\u00edjat \u00e9s csig\u00e1t haszn\u00e1l\u00f3 line\u00e1ris tengely eset\u00e9ben. El\u0151sz\u00f6r hat\u00e1rozza meg a sz\u00edj t\u00edpus\u00e1t. A legt\u00f6bb nyomtat\u00f3 2 mm-es fogoszt\u00e1st haszn\u00e1l (azaz a sz\u00edj minden egyes foga 2 mm t\u00e1vols\u00e1gra van egym\u00e1st\u00f3l). Ezut\u00e1n sz\u00e1molja meg a l\u00e9ptet\u0151motor sz\u00edjt\u00e1rcs\u00e1ja fogainak sz\u00e1m\u00e1t. A rotation_distance ezut\u00e1n a k\u00f6vetkez\u0151k\u00e9ppen sz\u00e1m\u00edthat\u00f3 ki: rotation_distance = <belt_pitch> * <number_of_teeth_on_pulley> Ha p\u00e9ld\u00e1ul egy nyomtat\u00f3 2 mm-es fogoszt\u00e1s\u00fa sz\u00edjjal rendelkezik, \u00e9s 20 fog\u00fa t\u00e1rcs\u00e1t haszn\u00e1l, akkor a forgat\u00e1si t\u00e1vols\u00e1g 40.","title":"Sz\u00edjhajt\u00e1s\u00fa tengelyek"},{"location":"Rotation_Distance.html#tengelyek-trapezmenetes-orsoval","text":"A rotation_distance a szok\u00e1sos csavarok eset\u00e9ben k\u00f6nnyen kisz\u00e1m\u00edthat\u00f3 a k\u00f6vetkez\u0151 k\u00e9plet seg\u00edts\u00e9g\u00e9vel: rotation_distance = <screw_pitch> * <number_of_separate_threads> P\u00e9ld\u00e1ul a szok\u00e1sos \"T8-as trap\u00e9zmenetes ors\u00f3\" forgat\u00e1si t\u00e1vols\u00e1ga 8 (2 mm-es l\u00e9p\u00e9sk\u00f6zzel \u00e9s 4 k\u00fcl\u00f6n\u00e1ll\u00f3 menettel rendelkezik). A \"menetes sz\u00e1rakkal\" ell\u00e1tott r\u00e9gebbi nyomtat\u00f3knak csak egy \"menet\" van a menetes sz\u00e1ron, \u00e9s \u00edgy a forgat\u00e1si t\u00e1vols\u00e1g a csavar l\u00e9p\u00e9ssz\u00f6ge. (A csavar l\u00e9p\u00e9sk\u00f6ze a csavaron l\u00e9v\u0151 egyes hornyok k\u00f6z\u00f6tti t\u00e1vols\u00e1g.) \u00cdgy p\u00e9ld\u00e1ul egy M6-os metrikus menetes sz\u00e1r forgat\u00e1si t\u00e1vols\u00e1ga 1, \u00e9s egy M8-as menetes sz\u00e1r\u00e9 pedig 1,25mm-es.","title":"Tengelyek trap\u00e9zmenetes ors\u00f3val"},{"location":"Rotation_Distance.html#extruder","text":"Az extruderek kezdeti forgat\u00e1si t\u00e1vols\u00e1g\u00e1t \u00fagy lehet meghat\u00e1rozni, hogy megm\u00e9rj\u00fck a \"sz\u00e1lmozgat\u00f3 ker\u00e9k\" \u00e1tm\u00e9r\u0151j\u00e9t, amely a sz\u00e1lakat tolja, \u00e9s a k\u00f6vetkez\u0151 k\u00e9pletet haszn\u00e1ljuk: rotation_distance = <diameter> * 3.14 Ha az extruder fogaskerekeket haszn\u00e1l, akkor meg kell hat\u00e1rozni \u00e9s be kell \u00e1ll\u00edtani a gear_ratio \u00e9rt\u00e9ket az extruderhez. Az extruder t\u00e9nyleges forgat\u00e1si t\u00e1vols\u00e1ga nyomtat\u00f3r\u00f3l nyomtat\u00f3ra v\u00e1ltozik, mivel a \"sz\u00e1lmozgat\u00f3 ker\u00e9k\" fogaz\u00e1sa, amely a sz\u00e1lakkal \u00e9rintkezik, v\u00e1ltozhat. Ez m\u00e9g az egyes sz\u00e1ltekercsek k\u00f6z\u00f6tt is v\u00e1ltozhat. A kezdeti rotation_distance meghat\u00e1roz\u00e1sa ut\u00e1n haszn\u00e1ld a m\u00e9r\u00e9s \u00e9s trimmel\u00e9s elj\u00e1r\u00e1s m\u0171veletet a pontosabb be\u00e1ll\u00edt\u00e1shoz.","title":"Extruder"},{"location":"Rotation_Distance.html#a-gear_ratio-hasznalata","text":"A gear_ratio be\u00e1ll\u00edt\u00e1sa megk\u00f6nny\u00edtheti a rotation_distance konfigur\u00e1l\u00e1s\u00e1t olyan l\u00e9ptet\u0151kn\u00e9l, amelyekhez \u00e1tt\u00e9tel (vagy hasonl\u00f3) van csatlakoztatva. A legt\u00f6bb l\u00e9ptet\u0151 nem rendelkezik \u00e1tt\u00e9tellel. Ha nem biztos benne, akkor ne \u00e1ll\u00edtsd be a gear_ratio \u00e9rt\u00e9ket a konfigur\u00e1ci\u00f3ban. Ha gear_ratio be van \u00e1ll\u00edtva, a rotation_distance azt a t\u00e1vols\u00e1got jel\u00f6li, amelyet a tengely az \u00e1tt\u00e9telen l\u00e9v\u0151 utols\u00f3 fogasker\u00e9k egy teljes elfordul\u00e1s\u00e1val megtesz. Ha p\u00e9ld\u00e1ul egy \"5:1\"-es \u00e1tt\u00e9telt haszn\u00e1lunk, akkor kisz\u00e1m\u00edthatjuk a rotation_distance-ot a hardver ismeret\u00e9ben , majd hozz\u00e1adhatjuk a gear_ratio: 5:1 \u00e9rt\u00e9ket a konfigur\u00e1ci\u00f3s f\u00e1jlhoz. A sz\u00edjakkal \u00e9s sz\u00edjt\u00e1rcs\u00e1kkal megval\u00f3s\u00edtott hajt\u00f3m\u0171vek eset\u00e9ben a fogaskerekek fogainak megsz\u00e1ml\u00e1l\u00e1s\u00e1val lehet meghat\u00e1rozni a gear_ratio-t. Ha p\u00e9ld\u00e1ul egy 16 fogaz\u00e1s\u00fa sz\u00edjt\u00e1rcs\u00e1val rendelkez\u0151 l\u00e9ptet\u0151 meghajtja a, 80 fogaz\u00e1s\u00fa sz\u00edjt\u00e1rcs\u00e1t, akkor a gear_ratio: 80:16 \u00e9rt\u00e9ket haszn\u00e1ljuk. Val\u00f3ban, ki lehetne nyitni egy k\u00f6z\u00f6ns\u00e9ges, \"fogasker\u00e9kdobozt\" \u00e9s megsz\u00e1molni a benne l\u00e9v\u0151 fogakat, hogy meger\u0151s\u00edts\u00fck a fogasker\u00e9k \u00e1tt\u00e9tel\u00e9t. Vedd figyelembe, hogy n\u00e9ha egy \u00e1tt\u00e9tel kiss\u00e9 elt\u00e9r a hirdetett \u00e9rt\u00e9kt\u0151l. A BMG extrudermotorok k\u00f6z\u00f6s fogaskerekei p\u00e9ld\u00e1t mutatnak erre. A rekl\u00e1mok szerint \"3:1\", de val\u00f3j\u00e1ban \"50:17\" \u00e1tt\u00e9telt haszn\u00e1lnak. (A k\u00f6z\u00f6s nevez\u0151 n\u00e9lk\u00fcli fogsz\u00e1mok haszn\u00e1lata jav\u00edthatja a fogaskerekek \u00e1ltal\u00e1nos kop\u00e1s\u00e1t, mivel a fogak nem mindig ugyan\u00fagy fognak \u00f6ssze minden egyes fordulatn\u00e1l.) A gyakori \"5,18:1 bolyg\u00f3m\u0171ves sebess\u00e9gv\u00e1lt\u00f3\", pontosabban a gear_ratio: 57:11 \u00e9rt\u00e9kkel van konfigur\u00e1lva. Ha egy tengelyen t\u00f6bb fogasker\u00e9k van haszn\u00e1latban, akkor a gear_ratio-nak egy vessz\u0151vel elv\u00e1lasztott list\u00e1t lehet megadni. P\u00e9ld\u00e1ul egy \"5:1\" fogasker\u00e9k, amely egy 16 fogaz\u00e1s\u00fa \u00e9s egy 80 fogaz\u00e1s\u00fa t\u00e1rcs\u00e1t hajt, haszn\u00e1lhatod a gear_ratio: 5:1, 80:16 \u00e9rt\u00e9keket. A legt\u00f6bb esetben a gear_ratio \u00e9rt\u00e9k\u00e9t eg\u00e9sz sz\u00e1mokkal kell megadni, mivel a fogaskerekek \u00e9s a sz\u00edjt\u00e1rcs\u00e1k fogainak sz\u00e1ma \u00e1ltal\u00e1ban eg\u00e9sz. Azokban az esetekben azonban, amikor a sz\u00edj fogak helyett s\u00farl\u00f3d\u00e1ssal hajtja a sz\u00edjt\u00e1rcs\u00e1t, \u00e9rdemes lehet lebeg\u0151pontos sz\u00e1mot haszn\u00e1lni a fogasker\u00e9k-\u00e1tt\u00e9telben (pl. gear_ratio: 107,237:16 ).","title":"A gear_ratio haszn\u00e1lata"},{"location":"SDCard_Updates.html","text":"SD-k\u00e1rtya friss\u00edt\u00e9sek \u00b6 A manaps\u00e1g n\u00e9pszer\u0171 vez\u00e9rl\u0151lapok k\u00f6z\u00fcl sokan olyan bootloaderrel rendelkeznek, amely k\u00e9pes a firmware SD-k\u00e1rty\u00e1n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 friss\u00edt\u00e9s\u00e9re. B\u00e1r ez sok esetben k\u00e9nyelmes, ezek a bootloaderek \u00e1ltal\u00e1ban nem biztos\u00edtanak m\u00e1s m\u00f3dot a firmware friss\u00edt\u00e9s\u00e9re. Ez kellemetlen lehet, ha a k\u00e1rtyaolvas\u00f3t \u00fagy helyezt\u00e9k, hogy neh\u00e9z hozz\u00e1f\u00e9rni, f\u0151leg ha gyakran kell friss\u00edteni a firmware-t. Miut\u00e1n a Klipper eredetileg egy vez\u00e9rl\u0151re lett \u00e9getve, lehet\u0151s\u00e9g van az \u00faj firmware \u00e1tvitel\u00e9re az SD-k\u00e1rty\u00e1ra, \u00e9s a \u00e9get\u00e9si elj\u00e1r\u00e1s elind\u00edt\u00e1s\u00e1ra SSH-n kereszt\u00fcl. Tipikus friss\u00edt\u00e9si elj\u00e1r\u00e1s \u00b6 Az MCU firmware SD-k\u00e1rtya haszn\u00e1lat\u00e1val t\u00f6rt\u00e9n\u0151 friss\u00edt\u00e9s\u00e9nek menete hasonl\u00f3 a t\u00f6bbi m\u00f3dszerhez. A make flash haszn\u00e1lata helyett egy seg\u00e9dszkriptet kell futtatni, flash-sdcard.sh . Egy BigTreeTech SKR 1.3 friss\u00edt\u00e9se a k\u00f6vetkez\u0151k\u00e9ppen n\u00e9z ki: sudo service klipper stop cd ~/klipper git pull make clean make menuconfig make ./scripts/flash-sdcard.sh /dev/ttyACM0 btt-skr-v1.3 sudo service klipper start Az eszk\u00f6z hely\u00e9nek \u00e9s az alaplap nev\u00e9nek meghat\u00e1roz\u00e1sa a felhaszn\u00e1l\u00f3 feladata. Ha a felhaszn\u00e1l\u00f3nak t\u00f6bb alaplapot kell \u00e9getnie, akkor a Klipper szolg\u00e1ltat\u00e1s \u00fajraind\u00edt\u00e1sa el\u0151tt a flash-sdcard.sh (vagy make flash , ha sz\u00fcks\u00e9ges) programot kell futtatni minden egyes alaplaphoz. A t\u00e1mogatott alaplapok a k\u00f6vetkez\u0151 paranccsal list\u00e1zhat\u00f3k: ./scripts/flash-sdcard.sh -l Ha nem l\u00e1tod az alaplapodat a list\u00e1ban, akkor lehet, hogy \u00faj alaplap defin\u00edci\u00f3t kell hozz\u00e1adnod a lentebb le\u00edrtak szerint . Fejlett felhaszn\u00e1l\u00e1s \u00b6 A fenti parancsok felt\u00e9telezik, hogy az MCU az alap\u00e9rtelmezett 250000-es \u00e1tviteli sebess\u00e9ggel csatlakozik, \u00e9s a firmware a ~/klipper/out/klipper.bin c\u00edmen tal\u00e1lhat\u00f3. A flash-sdcard.sh szkript lehet\u0151s\u00e9get biztos\u00edt ezen alap\u00e9rtelmez\u00e9sek megv\u00e1ltoztat\u00e1s\u00e1ra. Az \u00f6sszes opci\u00f3t a s\u00fag\u00f3 k\u00e9perny\u0151n lehet megtekinteni: ./scripts/flash-sdcard.sh -h SD-k\u00e1rtya felt\u00f6lt\u0151 seg\u00e9dprogram Klipperhez haszn\u00e1lat: flash_sdcard.sh [-h] [-l] [-c] [-b <baud>] [-f <firmware>] <device> <board> pozicion\u00e1lis argumentumok: <device> eszk\u00f6z soros port <board> alaplap t\u00edpus opcion\u00e1lis argumentumok: -h mutatja az \u00fczenetet -l list\u00e1zza a rendelkez\u00e9sre \u00e1ll\u00f3 k\u00e1rty\u00e1kat -c csak a flash ellen\u0151rz\u00e9s/ellen\u0151rz\u00e9s futtat\u00e1sa (a felt\u00f6lt\u00e9st kihagyja) -b <baud> soros \u00e1tviteli sebess\u00e9g (alap\u00e9rtelmezett 250000) -f <firmware> a klipper.bin el\u00e9r\u00e9si \u00fatja Ha az alaplapod olyan firmware-vel \u00e9getted, amely egy\u00e9ni \u00e1tviteli sebess\u00e9g mellett csatlakozik, akkor a -b opci\u00f3 megad\u00e1s\u00e1val friss\u00edtheted: ./scripts/flash-sdcard.sh -b 115200 /dev/ttyAMA0 btt-skr-v1.3 Ha a Klipper egy, az alap\u00e9rtelmezett helyt\u0151l elt\u00e9r\u0151 helyen tal\u00e1lhat\u00f3 k\u00e9szlet\u00e9t szeretn\u00e9d \u00e9getni, akkor ezt a -f opci\u00f3 megad\u00e1s\u00e1val teheti meg: ./scripts/flash-sdcard.sh -f ~/downloads/klipper.bin /dev/ttyAMA0 btt-skr-v1.3 Ne feledd, hogy az MKS Robin E3 friss\u00edt\u00e9sekor nem sz\u00fcks\u00e9ges manu\u00e1lisan futtatni az update_mks_robin.py f\u00e1jlt, \u00e9s az \u00edgy kapott bin\u00e1ris \u00e1llom\u00e1nyt a flash-sdcard.sh f\u00e1jlba t\u00e1pl\u00e1lni. Ez az elj\u00e1r\u00e1s a felt\u00f6lt\u00e9si folyamat sor\u00e1n automatikusan megt\u00f6rt\u00e9nik. A -c opci\u00f3val egy ellen\u0151rz\u0151 vagy csak ellen\u0151rz\u00e9sre szolg\u00e1l\u00f3 m\u0171veletet v\u00e9gezhetsz, amellyel tesztelheted, hogy a k\u00e1rtya helyesen futtatja-e a megadott firmware-t. Ezt az opci\u00f3t els\u0151sorban olyan esetekre sz\u00e1njuk, amikor k\u00e9zi bekapcsol\u00e1s sz\u00fcks\u00e9ges az \u00e9get\u00e9si elj\u00e1r\u00e1s befejez\u00e9s\u00e9hez, p\u00e9ld\u00e1ul olyan bootloaderek eset\u00e9ben, amelyek SDIO m\u00f3dot haszn\u00e1lnak SPI helyett az SD-k\u00e1rty\u00e1k el\u00e9r\u00e9sekor. (L\u00e1sd a figyelmeztet\u00e9seket al\u00e1bb.) De b\u00e1rmikor haszn\u00e1lhat\u00f3 annak ellen\u0151rz\u00e9s\u00e9re is, hogy a k\u00e1rty\u00e1ra \u00e9getett k\u00f3d megegyezik-e a build mapp\u00e1ban l\u00e9v\u0151 verzi\u00f3val b\u00e1rmely t\u00e1mogatott k\u00e1rty\u00e1n. \u00d3vint\u00e9zked\u00e9sek \u00b6 Ahogy a bevezet\u0151ben eml\u00edtett\u00fck, ez a m\u00f3dszer csak a firmware friss\u00edt\u00e9s\u00e9re alkalmas. A kezdeti \u00e9get\u00e9si elj\u00e1r\u00e1st k\u00e9zzel kell elv\u00e9gezni az alaplapra vonatkoz\u00f3 utas\u00edt\u00e1sok szerint. B\u00e1r lehets\u00e9ges a soros adat\u00e1tvitelt vagy a csatlakoz\u00e1si interf\u00e9szt (pl. USB-r\u0151l UART-ra) m\u00f3dos\u00edt\u00f3 k\u00e9szlet \u00e9get\u00e9se, az ellen\u0151rz\u00e9s mindig sikertelen lesz, mivel a szkript nem tud \u00fajra csatlakozni az MCU-hoz az aktu\u00e1lis verzi\u00f3 ellen\u0151rz\u00e9s\u00e9hez. Csak az SD-k\u00e1rtya SPI kommunik\u00e1ci\u00f3t haszn\u00e1l\u00f3 alaplapok t\u00e1mogatottak. Az SDIO-t haszn\u00e1l\u00f3 alaplapok, mint p\u00e9ld\u00e1ul a Flymaker Flyboard \u00e9s az MKS Robin Nano V1/V2, nem m\u0171k\u00f6dnek SDIO m\u00f3dban. Az ilyen alaplapok azonban \u00e1ltal\u00e1ban a szoftveres SPI m\u00f3d haszn\u00e1lat\u00e1val \u00e9gethet\u0151k. Ha azonban az alaplap bootloadere csak SDIO m\u00f3dot haszn\u00e1l az SD-k\u00e1rtya el\u00e9r\u00e9s\u00e9hez, akkor az alaplap \u00e9s az SD-k\u00e1rtya bekapcsol\u00e1sa sz\u00fcks\u00e9ges ahhoz, hogy az SPI-r\u0151l vissza tudjon \u00e1llni SDIO m\u00f3dra az \u00fajrafriss\u00edt\u00e9s befejez\u00e9s\u00e9hez. Az ilyen alaplapokat a skip_verify enged\u00e9lyez\u00e9s\u00e9vel kell defini\u00e1lni, hogy az \u00e9get\u00e9s ut\u00e1n azonnal kihagyhat\u00f3 legyen a verify l\u00e9p\u00e9s. Ezut\u00e1n a k\u00e9zi bekapcsol\u00e1s ut\u00e1n \u00fajra lefuttathatod pontosan ugyanazt a ./scripts/flash-sdcard.sh parancsot, de hozz\u00e1adhatod a -c opci\u00f3t az ellen\u0151rz\u00e9s/ellen\u0151rz\u00e9s m\u0171velet befejez\u00e9s\u00e9hez. P\u00e9ld\u00e1k\u00e9rt l\u00e1sd az SDIO-val \u00e9get\u0151 alaplapok r\u00e9szt. Alaplap defin\u00edci\u00f3k \u00b6 A legt\u00f6bb \u00e1ltal\u00e1nos alaplapnak rendelkez\u00e9sre kell \u00e1llnia, azonban sz\u00fcks\u00e9g eset\u00e9n \u00faj alaplap defin\u00edci\u00f3t is hozz\u00e1adhat. Az alaplapdefin\u00edci\u00f3k a ~/klipper/scripts/spi_flash/board_defs.py \u00e1llom\u00e1nyban tal\u00e1lhat\u00f3k. A defin\u00edci\u00f3kat p\u00e9ld\u00e1ul lexikonban t\u00e1roljuk: BOARD_DEFS = { 'generic-lpc1768' : { 'mcu' : \"lpc1768\" , 'spi_bus' : \"ssp1\" , \"cs_pin\" : \"P0.6\" }, ...< further definitions > } A k\u00f6vetkez\u0151 mez\u0151k adhat\u00f3k meg: mcu : Az mcu t\u00edpusa. Ezt a k\u00e9szlet make menuconfig seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9n\u0151 konfigur\u00e1l\u00e1sa ut\u00e1n a cat .config | grep CONFIG_MCU futtat\u00e1s\u00e1val lehet visszakeresni. Ez a mez\u0151 k\u00f6telez\u0151en kit\u00f6ltend\u0151. spi_bus : Az SD-k\u00e1rty\u00e1hoz csatlakoztatott SPI-busz. Ezt a t\u00e1bla kapcsol\u00e1si rajz\u00e1b\u00f3l kell visszakeresni. Ez a mez\u0151 k\u00f6telez\u0151. cs_pin : Az SD-k\u00e1rty\u00e1hoz csatlakoztatott chipkiv\u00e1laszt\u00f3 t\u0171. Ezt a k\u00e1rtya kapcsol\u00e1si rajz\u00e1b\u00f3l kell visszakeresni. Ez a mez\u0151 k\u00f6telez\u0151. firmware_path : Az SD-k\u00e1rty\u00e1n l\u00e9v\u0151 el\u00e9r\u00e9si \u00fatvonal, ahov\u00e1 a firmware-t \u00e1t kell vinni. Az alap\u00e9rtelmezett \u00e9rt\u00e9k firmware.bin . current_firmware_path : Az SD-k\u00e1rty\u00e1n l\u00e9v\u0151 el\u00e9r\u00e9si \u00fatvonal, ahol az \u00e1tnevezett firmware f\u00e1jl tal\u00e1lhat\u00f3 a sikeres \u00e9get\u00e9s ut\u00e1n. Az alap\u00e9rtelmezett n\u00e9v: firmware.cur . skip_verify : Ez egy logikai \u00e9rt\u00e9ket hat\u00e1roz meg, amely a szkripteknek azt mondja meg, hogy hagyja ki a firmware ellen\u0151rz\u00e9s\u00e9nek l\u00e9p\u00e9s\u00e9t az \u00e9get\u00e9si folyamat sor\u00e1n. Az alap\u00e9rtelmezett \u00e9rt\u00e9k False . Ez az \u00e9rt\u00e9k True \u00e9rt\u00e9kre \u00e1ll\u00edthat\u00f3 olyan k\u00e1rty\u00e1k eset\u00e9ben, amelyekn\u00e9l az \u00e9get\u00e9s befejez\u00e9s\u00e9hez k\u00e9zi bekapcsol\u00e1s sz\u00fcks\u00e9ges. A firmware ut\u00f3lagos ellen\u0151rz\u00e9s\u00e9hez futtasd \u00fajra a szkriptet a -c opci\u00f3val, hogy elv\u00e9gezd az ellen\u0151rz\u00e9si l\u00e9p\u00e9st. L\u00e1sd az SDIO k\u00e1rty\u00e1kkal kapcsolatos figyelmeztet\u00e9seket Ha szoftveres SPI-re van sz\u00fcks\u00e9g, az spi_bus mez\u0151t swspi \u00e9s a k\u00f6vetkez\u0151 kieg\u00e9sz\u00edt\u0151 mez\u0151t kell megadni: spi_pins : Ennek 3 vessz\u0151vel elv\u00e1lasztott t\u0171nek kell lennie, amelyek miso,mosi,sclk form\u00e1tumban csatlakoznak az SD-k\u00e1rty\u00e1hoz. Rendk\u00edv\u00fcl ritk\u00e1n van sz\u00fcks\u00e9g a szoftveres SPI-re, jellemz\u0151en csak a tervez\u00e9si hib\u00e1s vagy az SD-k\u00e1rty\u00e1juk SDIO m\u00f3dj\u00e1t t\u00e1mogat\u00f3 k\u00e1rty\u00e1kn\u00e1l lesz r\u00e1 sz\u00fcks\u00e9g. A btt-skr-pro alaplap defin\u00edci\u00f3ja az el\u0151bbire ad p\u00e9ld\u00e1t, a btt-octopus-f446-v1 alaplap defin\u00edci\u00f3ja pedig az ut\u00f3bbira. Egy \u00faj alaplap defin\u00edci\u00f3 l\u00e9trehoz\u00e1sa el\u0151tt ellen\u0151rizni kell, hogy egy megl\u00e9v\u0151 alaplap defin\u00edci\u00f3 megfelel-e az \u00faj alaplap sz\u00e1m\u00e1ra sz\u00fcks\u00e9ges krit\u00e9riumoknak. Ha ez a helyzet, akkor egy BOARD_ALIAS adhat\u00f3 meg. P\u00e9ld\u00e1ul a k\u00f6vetkez\u0151 \u00e1ln\u00e9v adhat\u00f3 hozz\u00e1 az \u00e9n-\u00faj alaplapom \u00e1lnevek\u00e9nt a generic-lpc1768 meghat\u00e1roz\u00e1s\u00e1hoz: BOARD_ALIASES = { ...< previous aliases > , 'my-new-board' : BOARD_DEFS [ 'generic-lpc1768' ], } Ha \u00faj alaplap defin\u00edci\u00f3ra van sz\u00fcks\u00e9ged, \u00e9s nem tetszik a fent le\u00edrt elj\u00e1r\u00e1s, akkor aj\u00e1nlott, hogy a Klipper K\u00f6z\u00f6ss\u00e9gi Discord seg\u00edts\u00e9g\u00e9vel k\u00e9rj egyet. SDIO-val \u00e9get\u0151 alaplapok \u00b6 Ahogyan a figyelmeztet\u00e9sek is eml\u00edtik, azok az alaplapok, amelyek bootloadere SDIO m\u00f3dot haszn\u00e1l az SD-k\u00e1rty\u00e1hoz val\u00f3 hozz\u00e1f\u00e9r\u00e9shez, az alaplapot, \u00e9s k\u00fcl\u00f6n\u00f6sen mag\u00e1t az SD-k\u00e1rty\u00e1t ki kell kapcsolni, hogy a f\u00e1jl SD-k\u00e1rty\u00e1ra \u00edr\u00e1sa k\u00f6zben haszn\u00e1lt SPI m\u00f3db\u00f3l vissza lehessen v\u00e1ltani SDIO m\u00f3dba, hogy a bootloader be tudja \u00e9getni az alaplapra. Ezek az alaplap defin\u00edci\u00f3k a skip_verify flag-et haszn\u00e1lj\u00e1k, amely azt mondja az \u00e9get\u0151 eszk\u00f6znek, hogy \u00e1lljon le a firmware SD-k\u00e1rty\u00e1ra \u00edr\u00e1sa ut\u00e1n, hogy az alaplapot k\u00e9zzel lehessen bekapcsolni, \u00e9s az ellen\u0151rz\u00e9s l\u00e9p\u00e9s\u00e9t elhalasztani, am\u00edg ez be nem fejez\u0151dik. K\u00e9t forgat\u00f3k\u00f6nyv van -- az egyik, amikor az RPi Gazdag\u00e9p k\u00fcl\u00f6n t\u00e1pegys\u00e9gr\u0151l megy, a m\u00e1sik, amikor az RPi Gazdag\u00e9p ugyanazon t\u00e1pegys\u00e9gr\u0151l megy, mint az \u00e9getni k\u00edv\u00e1nt alaplap. A k\u00fcl\u00f6nbs\u00e9g az, hogy az \u00e9get\u00e9s befejez\u00e9se ut\u00e1n le kell-e kapcsolni az RPi-t is, majd \u00fajra ssh , hogy elv\u00e9gezhess\u00fck az ellen\u0151rz\u0151 l\u00e9p\u00e9st, vagy az ellen\u0151rz\u00e9s azonnal elv\u00e9gezhet\u0151. \u00cdme p\u00e9ld\u00e1k a k\u00e9t forgat\u00f3k\u00f6nyvre: SDIO programoz\u00e1s RPi-vel k\u00fcl\u00f6n t\u00e1pegys\u00e9ggel \u00b6 Egy tipikus munkamenet az RPi-vel egy k\u00fcl\u00f6n\u00e1ll\u00f3 t\u00e1pegys\u00e9gen a k\u00f6vetkez\u0151k\u00e9ppen n\u00e9z ki. Term\u00e9szetesen a megfelel\u0151 eszk\u00f6z el\u00e9r\u00e9si \u00fatvonal\u00e1t \u00e9s az alaplap nev\u00e9t kell haszn\u00e1lnod: sudo service klipper stop cd ~/klipper git pull make clean make menuconfig make ./scripts/flash-sdcard.sh /dev/ttyACM0 btt-octopus-f446-v1 [[[manually power-cycle the printer board here when instructed]]] ./scripts/flash-sdcard.sh -c /dev/ttyACM0 btt-octopus-f446-v1 sudo service klipper start SDIO programoz\u00e1s RPi-vel ugyanazon t\u00e1pegys\u00e9ggel \u00b6 Egy tipikus munkamenet az RPi-vel ugyanazon a t\u00e1pegys\u00e9gen a k\u00f6vetkez\u0151k\u00e9ppen n\u00e9z ki. Term\u00e9szetesen a megfelel\u0151 eszk\u00f6z el\u00e9r\u00e9si \u00fatvonal\u00e1t \u00e9s az alaplap nev\u00e9t kell haszn\u00e1lnod: sudo service klipper stop cd ~/klipper git pull make clean make menuconfig make ./scripts/flash-sdcard.sh /dev/ttyACM0 btt-octopus-f446-v1 sudo shutdown -h now [[[wait for the RPi to shutdown, then power-cycle and ssh again to the RPi when it restarts]]] sudo service klipper stop cd ~/klipper ./scripts/flash-sdcard.sh -c /dev/ttyACM0 btt-octopus-f446-v1 sudo service klipper start Ebben az esetben, mivel az RPi Gazdag\u00e9p \u00fajraindul, ami \u00fajraind\u00edtja a klipper szolg\u00e1ltat\u00e1st, az ellen\u0151rz\u00e9s l\u00e9p\u00e9se el\u0151tt \u00fajra le kell \u00e1ll\u00edtani a klipper szolg\u00e1ltat\u00e1st, \u00e9s az ellen\u0151rz\u00e9s befejez\u00e9se ut\u00e1n \u00fajra kell ind\u00edtani. SDIO-b\u00f3l SPI-re l\u00e1bkioszt\u00e1s \u00b6 Ha az alaplap kapcsol\u00e1si rajza SDIO-t haszn\u00e1l az SD-k\u00e1rty\u00e1hoz, akkor az al\u00e1bbi t\u00e1bl\u00e1zatban le\u00edrtak szerint lek\u00e9rheted a t\u0171ket, hogy meghat\u00e1rozhasd a board_defs.py f\u00e1jlban hozz\u00e1rendelend\u0151 kompatibilis szoftver SPI t\u0171it: SD-k\u00e1rtya t\u0171 Micro SD-k\u00e1rtya t\u0171 SDIO t\u0171 neve SPI t\u0171 neve 9 1 DATA2 None (PU)* 1 2 CD/DATA3 CS 2 3 CMD MOSI 4 4 +3.3V (VDD) +3.3V (VDD) 5 5 CLK SCLK 3 6 GND (VSS) GND (VSS) 7 7 DATA0 MISO 8 8 DATA1 None (PU)* N/A 9 Card Detect (CD) Card Detect (CD) 6 10 GND GND * None (PU) egy nem haszn\u00e1lt, felh\u00faz\u00e1si ellen\u00e1ll\u00e1ssal ell\u00e1tott t\u0171t jelez.","title":"SD-k\u00e1rtya friss\u00edt\u00e9sek"},{"location":"SDCard_Updates.html#sd-kartya-frissitesek","text":"A manaps\u00e1g n\u00e9pszer\u0171 vez\u00e9rl\u0151lapok k\u00f6z\u00fcl sokan olyan bootloaderrel rendelkeznek, amely k\u00e9pes a firmware SD-k\u00e1rty\u00e1n kereszt\u00fcl t\u00f6rt\u00e9n\u0151 friss\u00edt\u00e9s\u00e9re. B\u00e1r ez sok esetben k\u00e9nyelmes, ezek a bootloaderek \u00e1ltal\u00e1ban nem biztos\u00edtanak m\u00e1s m\u00f3dot a firmware friss\u00edt\u00e9s\u00e9re. Ez kellemetlen lehet, ha a k\u00e1rtyaolvas\u00f3t \u00fagy helyezt\u00e9k, hogy neh\u00e9z hozz\u00e1f\u00e9rni, f\u0151leg ha gyakran kell friss\u00edteni a firmware-t. Miut\u00e1n a Klipper eredetileg egy vez\u00e9rl\u0151re lett \u00e9getve, lehet\u0151s\u00e9g van az \u00faj firmware \u00e1tvitel\u00e9re az SD-k\u00e1rty\u00e1ra, \u00e9s a \u00e9get\u00e9si elj\u00e1r\u00e1s elind\u00edt\u00e1s\u00e1ra SSH-n kereszt\u00fcl.","title":"SD-k\u00e1rtya friss\u00edt\u00e9sek"},{"location":"SDCard_Updates.html#tipikus-frissitesi-eljaras","text":"Az MCU firmware SD-k\u00e1rtya haszn\u00e1lat\u00e1val t\u00f6rt\u00e9n\u0151 friss\u00edt\u00e9s\u00e9nek menete hasonl\u00f3 a t\u00f6bbi m\u00f3dszerhez. A make flash haszn\u00e1lata helyett egy seg\u00e9dszkriptet kell futtatni, flash-sdcard.sh . Egy BigTreeTech SKR 1.3 friss\u00edt\u00e9se a k\u00f6vetkez\u0151k\u00e9ppen n\u00e9z ki: sudo service klipper stop cd ~/klipper git pull make clean make menuconfig make ./scripts/flash-sdcard.sh /dev/ttyACM0 btt-skr-v1.3 sudo service klipper start Az eszk\u00f6z hely\u00e9nek \u00e9s az alaplap nev\u00e9nek meghat\u00e1roz\u00e1sa a felhaszn\u00e1l\u00f3 feladata. Ha a felhaszn\u00e1l\u00f3nak t\u00f6bb alaplapot kell \u00e9getnie, akkor a Klipper szolg\u00e1ltat\u00e1s \u00fajraind\u00edt\u00e1sa el\u0151tt a flash-sdcard.sh (vagy make flash , ha sz\u00fcks\u00e9ges) programot kell futtatni minden egyes alaplaphoz. A t\u00e1mogatott alaplapok a k\u00f6vetkez\u0151 paranccsal list\u00e1zhat\u00f3k: ./scripts/flash-sdcard.sh -l Ha nem l\u00e1tod az alaplapodat a list\u00e1ban, akkor lehet, hogy \u00faj alaplap defin\u00edci\u00f3t kell hozz\u00e1adnod a lentebb le\u00edrtak szerint .","title":"Tipikus friss\u00edt\u00e9si elj\u00e1r\u00e1s"},{"location":"SDCard_Updates.html#fejlett-felhasznalas","text":"A fenti parancsok felt\u00e9telezik, hogy az MCU az alap\u00e9rtelmezett 250000-es \u00e1tviteli sebess\u00e9ggel csatlakozik, \u00e9s a firmware a ~/klipper/out/klipper.bin c\u00edmen tal\u00e1lhat\u00f3. A flash-sdcard.sh szkript lehet\u0151s\u00e9get biztos\u00edt ezen alap\u00e9rtelmez\u00e9sek megv\u00e1ltoztat\u00e1s\u00e1ra. Az \u00f6sszes opci\u00f3t a s\u00fag\u00f3 k\u00e9perny\u0151n lehet megtekinteni: ./scripts/flash-sdcard.sh -h SD-k\u00e1rtya felt\u00f6lt\u0151 seg\u00e9dprogram Klipperhez haszn\u00e1lat: flash_sdcard.sh [-h] [-l] [-c] [-b <baud>] [-f <firmware>] <device> <board> pozicion\u00e1lis argumentumok: <device> eszk\u00f6z soros port <board> alaplap t\u00edpus opcion\u00e1lis argumentumok: -h mutatja az \u00fczenetet -l list\u00e1zza a rendelkez\u00e9sre \u00e1ll\u00f3 k\u00e1rty\u00e1kat -c csak a flash ellen\u0151rz\u00e9s/ellen\u0151rz\u00e9s futtat\u00e1sa (a felt\u00f6lt\u00e9st kihagyja) -b <baud> soros \u00e1tviteli sebess\u00e9g (alap\u00e9rtelmezett 250000) -f <firmware> a klipper.bin el\u00e9r\u00e9si \u00fatja Ha az alaplapod olyan firmware-vel \u00e9getted, amely egy\u00e9ni \u00e1tviteli sebess\u00e9g mellett csatlakozik, akkor a -b opci\u00f3 megad\u00e1s\u00e1val friss\u00edtheted: ./scripts/flash-sdcard.sh -b 115200 /dev/ttyAMA0 btt-skr-v1.3 Ha a Klipper egy, az alap\u00e9rtelmezett helyt\u0151l elt\u00e9r\u0151 helyen tal\u00e1lhat\u00f3 k\u00e9szlet\u00e9t szeretn\u00e9d \u00e9getni, akkor ezt a -f opci\u00f3 megad\u00e1s\u00e1val teheti meg: ./scripts/flash-sdcard.sh -f ~/downloads/klipper.bin /dev/ttyAMA0 btt-skr-v1.3 Ne feledd, hogy az MKS Robin E3 friss\u00edt\u00e9sekor nem sz\u00fcks\u00e9ges manu\u00e1lisan futtatni az update_mks_robin.py f\u00e1jlt, \u00e9s az \u00edgy kapott bin\u00e1ris \u00e1llom\u00e1nyt a flash-sdcard.sh f\u00e1jlba t\u00e1pl\u00e1lni. Ez az elj\u00e1r\u00e1s a felt\u00f6lt\u00e9si folyamat sor\u00e1n automatikusan megt\u00f6rt\u00e9nik. A -c opci\u00f3val egy ellen\u0151rz\u0151 vagy csak ellen\u0151rz\u00e9sre szolg\u00e1l\u00f3 m\u0171veletet v\u00e9gezhetsz, amellyel tesztelheted, hogy a k\u00e1rtya helyesen futtatja-e a megadott firmware-t. Ezt az opci\u00f3t els\u0151sorban olyan esetekre sz\u00e1njuk, amikor k\u00e9zi bekapcsol\u00e1s sz\u00fcks\u00e9ges az \u00e9get\u00e9si elj\u00e1r\u00e1s befejez\u00e9s\u00e9hez, p\u00e9ld\u00e1ul olyan bootloaderek eset\u00e9ben, amelyek SDIO m\u00f3dot haszn\u00e1lnak SPI helyett az SD-k\u00e1rty\u00e1k el\u00e9r\u00e9sekor. (L\u00e1sd a figyelmeztet\u00e9seket al\u00e1bb.) De b\u00e1rmikor haszn\u00e1lhat\u00f3 annak ellen\u0151rz\u00e9s\u00e9re is, hogy a k\u00e1rty\u00e1ra \u00e9getett k\u00f3d megegyezik-e a build mapp\u00e1ban l\u00e9v\u0151 verzi\u00f3val b\u00e1rmely t\u00e1mogatott k\u00e1rty\u00e1n.","title":"Fejlett felhaszn\u00e1l\u00e1s"},{"location":"SDCard_Updates.html#ovintezkedesek","text":"Ahogy a bevezet\u0151ben eml\u00edtett\u00fck, ez a m\u00f3dszer csak a firmware friss\u00edt\u00e9s\u00e9re alkalmas. A kezdeti \u00e9get\u00e9si elj\u00e1r\u00e1st k\u00e9zzel kell elv\u00e9gezni az alaplapra vonatkoz\u00f3 utas\u00edt\u00e1sok szerint. B\u00e1r lehets\u00e9ges a soros adat\u00e1tvitelt vagy a csatlakoz\u00e1si interf\u00e9szt (pl. USB-r\u0151l UART-ra) m\u00f3dos\u00edt\u00f3 k\u00e9szlet \u00e9get\u00e9se, az ellen\u0151rz\u00e9s mindig sikertelen lesz, mivel a szkript nem tud \u00fajra csatlakozni az MCU-hoz az aktu\u00e1lis verzi\u00f3 ellen\u0151rz\u00e9s\u00e9hez. Csak az SD-k\u00e1rtya SPI kommunik\u00e1ci\u00f3t haszn\u00e1l\u00f3 alaplapok t\u00e1mogatottak. Az SDIO-t haszn\u00e1l\u00f3 alaplapok, mint p\u00e9ld\u00e1ul a Flymaker Flyboard \u00e9s az MKS Robin Nano V1/V2, nem m\u0171k\u00f6dnek SDIO m\u00f3dban. Az ilyen alaplapok azonban \u00e1ltal\u00e1ban a szoftveres SPI m\u00f3d haszn\u00e1lat\u00e1val \u00e9gethet\u0151k. Ha azonban az alaplap bootloadere csak SDIO m\u00f3dot haszn\u00e1l az SD-k\u00e1rtya el\u00e9r\u00e9s\u00e9hez, akkor az alaplap \u00e9s az SD-k\u00e1rtya bekapcsol\u00e1sa sz\u00fcks\u00e9ges ahhoz, hogy az SPI-r\u0151l vissza tudjon \u00e1llni SDIO m\u00f3dra az \u00fajrafriss\u00edt\u00e9s befejez\u00e9s\u00e9hez. Az ilyen alaplapokat a skip_verify enged\u00e9lyez\u00e9s\u00e9vel kell defini\u00e1lni, hogy az \u00e9get\u00e9s ut\u00e1n azonnal kihagyhat\u00f3 legyen a verify l\u00e9p\u00e9s. Ezut\u00e1n a k\u00e9zi bekapcsol\u00e1s ut\u00e1n \u00fajra lefuttathatod pontosan ugyanazt a ./scripts/flash-sdcard.sh parancsot, de hozz\u00e1adhatod a -c opci\u00f3t az ellen\u0151rz\u00e9s/ellen\u0151rz\u00e9s m\u0171velet befejez\u00e9s\u00e9hez. P\u00e9ld\u00e1k\u00e9rt l\u00e1sd az SDIO-val \u00e9get\u0151 alaplapok r\u00e9szt.","title":"\u00d3vint\u00e9zked\u00e9sek"},{"location":"SDCard_Updates.html#alaplap-definiciok","text":"A legt\u00f6bb \u00e1ltal\u00e1nos alaplapnak rendelkez\u00e9sre kell \u00e1llnia, azonban sz\u00fcks\u00e9g eset\u00e9n \u00faj alaplap defin\u00edci\u00f3t is hozz\u00e1adhat. Az alaplapdefin\u00edci\u00f3k a ~/klipper/scripts/spi_flash/board_defs.py \u00e1llom\u00e1nyban tal\u00e1lhat\u00f3k. A defin\u00edci\u00f3kat p\u00e9ld\u00e1ul lexikonban t\u00e1roljuk: BOARD_DEFS = { 'generic-lpc1768' : { 'mcu' : \"lpc1768\" , 'spi_bus' : \"ssp1\" , \"cs_pin\" : \"P0.6\" }, ...< further definitions > } A k\u00f6vetkez\u0151 mez\u0151k adhat\u00f3k meg: mcu : Az mcu t\u00edpusa. Ezt a k\u00e9szlet make menuconfig seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9n\u0151 konfigur\u00e1l\u00e1sa ut\u00e1n a cat .config | grep CONFIG_MCU futtat\u00e1s\u00e1val lehet visszakeresni. Ez a mez\u0151 k\u00f6telez\u0151en kit\u00f6ltend\u0151. spi_bus : Az SD-k\u00e1rty\u00e1hoz csatlakoztatott SPI-busz. Ezt a t\u00e1bla kapcsol\u00e1si rajz\u00e1b\u00f3l kell visszakeresni. Ez a mez\u0151 k\u00f6telez\u0151. cs_pin : Az SD-k\u00e1rty\u00e1hoz csatlakoztatott chipkiv\u00e1laszt\u00f3 t\u0171. Ezt a k\u00e1rtya kapcsol\u00e1si rajz\u00e1b\u00f3l kell visszakeresni. Ez a mez\u0151 k\u00f6telez\u0151. firmware_path : Az SD-k\u00e1rty\u00e1n l\u00e9v\u0151 el\u00e9r\u00e9si \u00fatvonal, ahov\u00e1 a firmware-t \u00e1t kell vinni. Az alap\u00e9rtelmezett \u00e9rt\u00e9k firmware.bin . current_firmware_path : Az SD-k\u00e1rty\u00e1n l\u00e9v\u0151 el\u00e9r\u00e9si \u00fatvonal, ahol az \u00e1tnevezett firmware f\u00e1jl tal\u00e1lhat\u00f3 a sikeres \u00e9get\u00e9s ut\u00e1n. Az alap\u00e9rtelmezett n\u00e9v: firmware.cur . skip_verify : Ez egy logikai \u00e9rt\u00e9ket hat\u00e1roz meg, amely a szkripteknek azt mondja meg, hogy hagyja ki a firmware ellen\u0151rz\u00e9s\u00e9nek l\u00e9p\u00e9s\u00e9t az \u00e9get\u00e9si folyamat sor\u00e1n. Az alap\u00e9rtelmezett \u00e9rt\u00e9k False . Ez az \u00e9rt\u00e9k True \u00e9rt\u00e9kre \u00e1ll\u00edthat\u00f3 olyan k\u00e1rty\u00e1k eset\u00e9ben, amelyekn\u00e9l az \u00e9get\u00e9s befejez\u00e9s\u00e9hez k\u00e9zi bekapcsol\u00e1s sz\u00fcks\u00e9ges. A firmware ut\u00f3lagos ellen\u0151rz\u00e9s\u00e9hez futtasd \u00fajra a szkriptet a -c opci\u00f3val, hogy elv\u00e9gezd az ellen\u0151rz\u00e9si l\u00e9p\u00e9st. L\u00e1sd az SDIO k\u00e1rty\u00e1kkal kapcsolatos figyelmeztet\u00e9seket Ha szoftveres SPI-re van sz\u00fcks\u00e9g, az spi_bus mez\u0151t swspi \u00e9s a k\u00f6vetkez\u0151 kieg\u00e9sz\u00edt\u0151 mez\u0151t kell megadni: spi_pins : Ennek 3 vessz\u0151vel elv\u00e1lasztott t\u0171nek kell lennie, amelyek miso,mosi,sclk form\u00e1tumban csatlakoznak az SD-k\u00e1rty\u00e1hoz. Rendk\u00edv\u00fcl ritk\u00e1n van sz\u00fcks\u00e9g a szoftveres SPI-re, jellemz\u0151en csak a tervez\u00e9si hib\u00e1s vagy az SD-k\u00e1rty\u00e1juk SDIO m\u00f3dj\u00e1t t\u00e1mogat\u00f3 k\u00e1rty\u00e1kn\u00e1l lesz r\u00e1 sz\u00fcks\u00e9g. A btt-skr-pro alaplap defin\u00edci\u00f3ja az el\u0151bbire ad p\u00e9ld\u00e1t, a btt-octopus-f446-v1 alaplap defin\u00edci\u00f3ja pedig az ut\u00f3bbira. Egy \u00faj alaplap defin\u00edci\u00f3 l\u00e9trehoz\u00e1sa el\u0151tt ellen\u0151rizni kell, hogy egy megl\u00e9v\u0151 alaplap defin\u00edci\u00f3 megfelel-e az \u00faj alaplap sz\u00e1m\u00e1ra sz\u00fcks\u00e9ges krit\u00e9riumoknak. Ha ez a helyzet, akkor egy BOARD_ALIAS adhat\u00f3 meg. P\u00e9ld\u00e1ul a k\u00f6vetkez\u0151 \u00e1ln\u00e9v adhat\u00f3 hozz\u00e1 az \u00e9n-\u00faj alaplapom \u00e1lnevek\u00e9nt a generic-lpc1768 meghat\u00e1roz\u00e1s\u00e1hoz: BOARD_ALIASES = { ...< previous aliases > , 'my-new-board' : BOARD_DEFS [ 'generic-lpc1768' ], } Ha \u00faj alaplap defin\u00edci\u00f3ra van sz\u00fcks\u00e9ged, \u00e9s nem tetszik a fent le\u00edrt elj\u00e1r\u00e1s, akkor aj\u00e1nlott, hogy a Klipper K\u00f6z\u00f6ss\u00e9gi Discord seg\u00edts\u00e9g\u00e9vel k\u00e9rj egyet.","title":"Alaplap defin\u00edci\u00f3k"},{"location":"SDCard_Updates.html#sdio-val-egeto-alaplapok","text":"Ahogyan a figyelmeztet\u00e9sek is eml\u00edtik, azok az alaplapok, amelyek bootloadere SDIO m\u00f3dot haszn\u00e1l az SD-k\u00e1rty\u00e1hoz val\u00f3 hozz\u00e1f\u00e9r\u00e9shez, az alaplapot, \u00e9s k\u00fcl\u00f6n\u00f6sen mag\u00e1t az SD-k\u00e1rty\u00e1t ki kell kapcsolni, hogy a f\u00e1jl SD-k\u00e1rty\u00e1ra \u00edr\u00e1sa k\u00f6zben haszn\u00e1lt SPI m\u00f3db\u00f3l vissza lehessen v\u00e1ltani SDIO m\u00f3dba, hogy a bootloader be tudja \u00e9getni az alaplapra. Ezek az alaplap defin\u00edci\u00f3k a skip_verify flag-et haszn\u00e1lj\u00e1k, amely azt mondja az \u00e9get\u0151 eszk\u00f6znek, hogy \u00e1lljon le a firmware SD-k\u00e1rty\u00e1ra \u00edr\u00e1sa ut\u00e1n, hogy az alaplapot k\u00e9zzel lehessen bekapcsolni, \u00e9s az ellen\u0151rz\u00e9s l\u00e9p\u00e9s\u00e9t elhalasztani, am\u00edg ez be nem fejez\u0151dik. K\u00e9t forgat\u00f3k\u00f6nyv van -- az egyik, amikor az RPi Gazdag\u00e9p k\u00fcl\u00f6n t\u00e1pegys\u00e9gr\u0151l megy, a m\u00e1sik, amikor az RPi Gazdag\u00e9p ugyanazon t\u00e1pegys\u00e9gr\u0151l megy, mint az \u00e9getni k\u00edv\u00e1nt alaplap. A k\u00fcl\u00f6nbs\u00e9g az, hogy az \u00e9get\u00e9s befejez\u00e9se ut\u00e1n le kell-e kapcsolni az RPi-t is, majd \u00fajra ssh , hogy elv\u00e9gezhess\u00fck az ellen\u0151rz\u0151 l\u00e9p\u00e9st, vagy az ellen\u0151rz\u00e9s azonnal elv\u00e9gezhet\u0151. \u00cdme p\u00e9ld\u00e1k a k\u00e9t forgat\u00f3k\u00f6nyvre:","title":"SDIO-val \u00e9get\u0151 alaplapok"},{"location":"SDCard_Updates.html#sdio-programozas-rpi-vel-kulon-tapegyseggel","text":"Egy tipikus munkamenet az RPi-vel egy k\u00fcl\u00f6n\u00e1ll\u00f3 t\u00e1pegys\u00e9gen a k\u00f6vetkez\u0151k\u00e9ppen n\u00e9z ki. Term\u00e9szetesen a megfelel\u0151 eszk\u00f6z el\u00e9r\u00e9si \u00fatvonal\u00e1t \u00e9s az alaplap nev\u00e9t kell haszn\u00e1lnod: sudo service klipper stop cd ~/klipper git pull make clean make menuconfig make ./scripts/flash-sdcard.sh /dev/ttyACM0 btt-octopus-f446-v1 [[[manually power-cycle the printer board here when instructed]]] ./scripts/flash-sdcard.sh -c /dev/ttyACM0 btt-octopus-f446-v1 sudo service klipper start","title":"SDIO programoz\u00e1s RPi-vel k\u00fcl\u00f6n t\u00e1pegys\u00e9ggel"},{"location":"SDCard_Updates.html#sdio-programozas-rpi-vel-ugyanazon-tapegyseggel","text":"Egy tipikus munkamenet az RPi-vel ugyanazon a t\u00e1pegys\u00e9gen a k\u00f6vetkez\u0151k\u00e9ppen n\u00e9z ki. Term\u00e9szetesen a megfelel\u0151 eszk\u00f6z el\u00e9r\u00e9si \u00fatvonal\u00e1t \u00e9s az alaplap nev\u00e9t kell haszn\u00e1lnod: sudo service klipper stop cd ~/klipper git pull make clean make menuconfig make ./scripts/flash-sdcard.sh /dev/ttyACM0 btt-octopus-f446-v1 sudo shutdown -h now [[[wait for the RPi to shutdown, then power-cycle and ssh again to the RPi when it restarts]]] sudo service klipper stop cd ~/klipper ./scripts/flash-sdcard.sh -c /dev/ttyACM0 btt-octopus-f446-v1 sudo service klipper start Ebben az esetben, mivel az RPi Gazdag\u00e9p \u00fajraindul, ami \u00fajraind\u00edtja a klipper szolg\u00e1ltat\u00e1st, az ellen\u0151rz\u00e9s l\u00e9p\u00e9se el\u0151tt \u00fajra le kell \u00e1ll\u00edtani a klipper szolg\u00e1ltat\u00e1st, \u00e9s az ellen\u0151rz\u00e9s befejez\u00e9se ut\u00e1n \u00fajra kell ind\u00edtani.","title":"SDIO programoz\u00e1s RPi-vel ugyanazon t\u00e1pegys\u00e9ggel"},{"location":"SDCard_Updates.html#sdio-bol-spi-re-labkiosztas","text":"Ha az alaplap kapcsol\u00e1si rajza SDIO-t haszn\u00e1l az SD-k\u00e1rty\u00e1hoz, akkor az al\u00e1bbi t\u00e1bl\u00e1zatban le\u00edrtak szerint lek\u00e9rheted a t\u0171ket, hogy meghat\u00e1rozhasd a board_defs.py f\u00e1jlban hozz\u00e1rendelend\u0151 kompatibilis szoftver SPI t\u0171it: SD-k\u00e1rtya t\u0171 Micro SD-k\u00e1rtya t\u0171 SDIO t\u0171 neve SPI t\u0171 neve 9 1 DATA2 None (PU)* 1 2 CD/DATA3 CS 2 3 CMD MOSI 4 4 +3.3V (VDD) +3.3V (VDD) 5 5 CLK SCLK 3 6 GND (VSS) GND (VSS) 7 7 DATA0 MISO 8 8 DATA1 None (PU)* N/A 9 Card Detect (CD) Card Detect (CD) 6 10 GND GND * None (PU) egy nem haszn\u00e1lt, felh\u00faz\u00e1si ellen\u00e1ll\u00e1ssal ell\u00e1tott t\u0171t jelez.","title":"SDIO-b\u00f3l SPI-re l\u00e1bkioszt\u00e1s"},{"location":"Skew_Correction.html","text":"Ferdes\u00e9g korrekci\u00f3 \u00b6 A szoftveralap\u00fa ferdes\u00e9g korrekci\u00f3 seg\u00edthet a nem t\u00f6k\u00e9letesen sz\u00f6gletes nyomtat\u00f3egys\u00e9gb\u0151l ered\u0151 m\u00e9retpontatlans\u00e1gok felold\u00e1s\u00e1ban. Vedd figyelembe, hogy ha a nyomtat\u00f3d jelent\u0151sen ferde, er\u0151sen aj\u00e1nlott el\u0151sz\u00f6r mechanikai eszk\u00f6z\u00f6kkel a nyomtat\u00f3t a lehet\u0151 legegyenletesebbre \u00e1ll\u00edtani, miel\u0151tt a szoftveralap\u00fa korrekci\u00f3t alkalmazn\u00e1d. Kalibr\u00e1ci\u00f3s objektum nyomtat\u00e1sa \u00b6 A ferdes\u00e9g korrekci\u00f3j\u00e1nak els\u0151 l\u00e9p\u00e9se egy kalibr\u00e1ci\u00f3s objektum nyomtat\u00e1sa a korrig\u00e1lni k\u00edv\u00e1nt s\u00edk ment\u00e9n. L\u00e9tezik egy m\u00e1sik kalibr\u00e1ci\u00f3s objektum is, amely egy modell \u00f6sszes s\u00edkj\u00e1t tartalmazza. Az objektumot \u00fagy kell t\u00e1jolni, hogy az A sarok a s\u00edk orig\u00f3ja fel\u00e9 legyen. Gy\u0151z\u0151dj meg r\u00f3la, hogy a nyomtat\u00e1s sor\u00e1n nem alkalmaz ferdes\u00e9gkorrekci\u00f3t. Ezt \u00fagy teheti meg, hogy vagy elt\u00e1vol\u00edtja a [skew_correction] modult a printer.cfg f\u00e1jlb\u00f3l, vagy kiadsz egy SET_SKEW CLEAR=1 parancsot. M\u00e9rd meg \u00b6 A [skew_correcton] modul minden egyes korrig\u00e1land\u00f3 s\u00edkhoz 3 m\u00e9r\u00e9st ig\u00e9nyel; az A sarokt\u00f3l a C sarokig terjed\u0151 hossz\u00fas\u00e1got, a B sarokt\u00f3l a D sarokig terjed\u0151 hossz\u00fas\u00e1got \u00e9s az A sarokt\u00f3l a D sarokig terjed\u0151 hossz\u00fas\u00e1got. Az AD hosszm\u00e9r\u00e9sn\u00e9l ne vedd figyelembe a sarkokon l\u00e9v\u0151 s\u00edkokat, amelyeket n\u00e9h\u00e1ny tesztobjektum mutat. Konfigur\u00e1ld a ferdes\u00e9get \u00b6 Gy\u0151z\u0151dj meg r\u00f3la, hogy a [skew_correction] szerepel a printer.cfg f\u00e1jlban. Most m\u00e1r haszn\u00e1lhatod a SET_SKEW G-k\u00f3dot a skew_correction be\u00e1ll\u00edt\u00e1s\u00e1hoz. P\u00e9ld\u00e1ul, ha az XY ment\u00e9n m\u00e9rt hosszok a k\u00f6vetkez\u0151k: Length AC = 140.4 Length BD = 142.8 Length AD = 99.8 SET_SKEW az XY-s\u00edk ferdes\u00e9gkorrekci\u00f3j\u00e1nak be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. SET_SKEW XY=140.4,142.8,99.8 Az XZ \u00e9s YZ m\u00e9r\u00e9seket is hozz\u00e1adhatja a G-k\u00f3dhoz: SET_SKEW XY=140.4,142.8,99.8 XZ=141.6,141.4,99.8 YZ=142.4,140.5,99.5 A [skew_correction] modul a [bed_mesh] modulhoz hasonl\u00f3 m\u00f3don t\u00e1mogatja a profilkezel\u00e9st is. Miut\u00e1n a SET_SKEW G-k\u00f3ddal be\u00e1ll\u00edtotta a ferdes\u00e9get, a SKEW_PROFILE G-k\u00f3ddal elmentheti azt: SKEW_PROFILE SAVE=my_skew_profile A parancs ut\u00e1n a rendszer felsz\u00f3l\u00edtja a SAVE_CONFIG G-k\u00f3d kiad\u00e1s\u00e1t a profil tart\u00f3s t\u00e1rol\u00f3ba t\u00f6rt\u00e9n\u0151 ment\u00e9s\u00e9hez. Ha nincs my_skew_profile nev\u0171 profil, akkor egy \u00faj profil j\u00f6n l\u00e9tre. Ha a megnevezett profil l\u00e9tezik, akkor azt fel\u00fcl\u00edrja. Ha m\u00e1r van mentett profilja, bet\u00f6ltheti azt: SKEW_PROFILE LOAD=my_skew_profile Lehet\u0151s\u00e9g van r\u00e9gi vagy elavult profilok elt\u00e1vol\u00edt\u00e1s\u00e1ra is: SKEW_PROFILE REMOVE=my_skew_profile A profil elt\u00e1vol\u00edt\u00e1sa ut\u00e1n a rendszer felsz\u00f3l\u00edtja, hogy adj ki egy SAVE_CONFIG parancsot, hogy a m\u00f3dos\u00edt\u00e1s ment\u00e9sre ker\u00fclj\u00f6n. A korrekci\u00f3 ellen\u0151rz\u00e9se \u00b6 A skew_correction be\u00e1ll\u00edt\u00e1sa ut\u00e1n \u00fajra kinyomtathatja a kalibr\u00e1ci\u00f3s r\u00e9szt a korrekci\u00f3 enged\u00e9lyez\u00e9s\u00e9vel. A k\u00f6vetkez\u0151 G-k\u00f3ddal ellen\u0151rizheti a ferdes\u00e9get minden s\u00edkban. Az eredm\u00e9nyeknek alacsonyabbaknak kell lenni\u00fck, mint a GET_CURRENT_SKEW seg\u00edts\u00e9g\u00e9vel jelentett eredm\u00e9nyek. CALC_MEASURED_SKEW AC=<ac_length> BD=<bd_length> AD=<ad_length> \u00d3vint\u00e9zked\u00e9sek \u00b6 A ferdes\u00e9gkorrekci\u00f3 term\u00e9szet\u00e9b\u0151l ad\u00f3d\u00f3an aj\u00e1nlott a ferdes\u00e9get az ind\u00edt\u00f3 G-k\u00f3dban konfigur\u00e1lni, a kezd\u0151pont felv\u00e9tel \u00e9s minden olyan mozg\u00e1s ut\u00e1n, amely a nyomtat\u00e1si ter\u00fclet sz\u00e9l\u00e9hez k\u00f6zel\u00edt, mint p\u00e9ld\u00e1ul a tiszt\u00edt\u00e1s vagy a f\u00fav\u00f3ka t\u00f6rl\u00e9se. Ehhez haszn\u00e1lhatod a SET_SKEW vagy a SKEW_PROFILE G-k\u00f3dokat. Aj\u00e1nlott tov\u00e1bb\u00e1 a SET_SKEW CLEAR=1 parancs kiad\u00e1sa a befejez\u0151 G-k\u00f3dban. Ne feledd! Lehets\u00e9ges, hogy a [skew_correction] olyan korrekci\u00f3t gener\u00e1l, amely a fejet az X \u00e9s/vagy Y tengelyen a nyomtat\u00f3 hat\u00e1rain t\u00falra helyezi. A [skew_correction] haszn\u00e1latakor aj\u00e1nlott a nyomtat\u00f3fejet a sz\u00e9lekt\u0151l t\u00e1volabb elhelyezni.","title":"Ferdes\u00e9g korrekci\u00f3"},{"location":"Skew_Correction.html#ferdeseg-korrekcio","text":"A szoftveralap\u00fa ferdes\u00e9g korrekci\u00f3 seg\u00edthet a nem t\u00f6k\u00e9letesen sz\u00f6gletes nyomtat\u00f3egys\u00e9gb\u0151l ered\u0151 m\u00e9retpontatlans\u00e1gok felold\u00e1s\u00e1ban. Vedd figyelembe, hogy ha a nyomtat\u00f3d jelent\u0151sen ferde, er\u0151sen aj\u00e1nlott el\u0151sz\u00f6r mechanikai eszk\u00f6z\u00f6kkel a nyomtat\u00f3t a lehet\u0151 legegyenletesebbre \u00e1ll\u00edtani, miel\u0151tt a szoftveralap\u00fa korrekci\u00f3t alkalmazn\u00e1d.","title":"Ferdes\u00e9g korrekci\u00f3"},{"location":"Skew_Correction.html#kalibracios-objektum-nyomtatasa","text":"A ferdes\u00e9g korrekci\u00f3j\u00e1nak els\u0151 l\u00e9p\u00e9se egy kalibr\u00e1ci\u00f3s objektum nyomtat\u00e1sa a korrig\u00e1lni k\u00edv\u00e1nt s\u00edk ment\u00e9n. L\u00e9tezik egy m\u00e1sik kalibr\u00e1ci\u00f3s objektum is, amely egy modell \u00f6sszes s\u00edkj\u00e1t tartalmazza. Az objektumot \u00fagy kell t\u00e1jolni, hogy az A sarok a s\u00edk orig\u00f3ja fel\u00e9 legyen. Gy\u0151z\u0151dj meg r\u00f3la, hogy a nyomtat\u00e1s sor\u00e1n nem alkalmaz ferdes\u00e9gkorrekci\u00f3t. Ezt \u00fagy teheti meg, hogy vagy elt\u00e1vol\u00edtja a [skew_correction] modult a printer.cfg f\u00e1jlb\u00f3l, vagy kiadsz egy SET_SKEW CLEAR=1 parancsot.","title":"Kalibr\u00e1ci\u00f3s objektum nyomtat\u00e1sa"},{"location":"Skew_Correction.html#merd-meg","text":"A [skew_correcton] modul minden egyes korrig\u00e1land\u00f3 s\u00edkhoz 3 m\u00e9r\u00e9st ig\u00e9nyel; az A sarokt\u00f3l a C sarokig terjed\u0151 hossz\u00fas\u00e1got, a B sarokt\u00f3l a D sarokig terjed\u0151 hossz\u00fas\u00e1got \u00e9s az A sarokt\u00f3l a D sarokig terjed\u0151 hossz\u00fas\u00e1got. Az AD hosszm\u00e9r\u00e9sn\u00e9l ne vedd figyelembe a sarkokon l\u00e9v\u0151 s\u00edkokat, amelyeket n\u00e9h\u00e1ny tesztobjektum mutat.","title":"M\u00e9rd meg"},{"location":"Skew_Correction.html#konfigurald-a-ferdeseget","text":"Gy\u0151z\u0151dj meg r\u00f3la, hogy a [skew_correction] szerepel a printer.cfg f\u00e1jlban. Most m\u00e1r haszn\u00e1lhatod a SET_SKEW G-k\u00f3dot a skew_correction be\u00e1ll\u00edt\u00e1s\u00e1hoz. P\u00e9ld\u00e1ul, ha az XY ment\u00e9n m\u00e9rt hosszok a k\u00f6vetkez\u0151k: Length AC = 140.4 Length BD = 142.8 Length AD = 99.8 SET_SKEW az XY-s\u00edk ferdes\u00e9gkorrekci\u00f3j\u00e1nak be\u00e1ll\u00edt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3. SET_SKEW XY=140.4,142.8,99.8 Az XZ \u00e9s YZ m\u00e9r\u00e9seket is hozz\u00e1adhatja a G-k\u00f3dhoz: SET_SKEW XY=140.4,142.8,99.8 XZ=141.6,141.4,99.8 YZ=142.4,140.5,99.5 A [skew_correction] modul a [bed_mesh] modulhoz hasonl\u00f3 m\u00f3don t\u00e1mogatja a profilkezel\u00e9st is. Miut\u00e1n a SET_SKEW G-k\u00f3ddal be\u00e1ll\u00edtotta a ferdes\u00e9get, a SKEW_PROFILE G-k\u00f3ddal elmentheti azt: SKEW_PROFILE SAVE=my_skew_profile A parancs ut\u00e1n a rendszer felsz\u00f3l\u00edtja a SAVE_CONFIG G-k\u00f3d kiad\u00e1s\u00e1t a profil tart\u00f3s t\u00e1rol\u00f3ba t\u00f6rt\u00e9n\u0151 ment\u00e9s\u00e9hez. Ha nincs my_skew_profile nev\u0171 profil, akkor egy \u00faj profil j\u00f6n l\u00e9tre. Ha a megnevezett profil l\u00e9tezik, akkor azt fel\u00fcl\u00edrja. Ha m\u00e1r van mentett profilja, bet\u00f6ltheti azt: SKEW_PROFILE LOAD=my_skew_profile Lehet\u0151s\u00e9g van r\u00e9gi vagy elavult profilok elt\u00e1vol\u00edt\u00e1s\u00e1ra is: SKEW_PROFILE REMOVE=my_skew_profile A profil elt\u00e1vol\u00edt\u00e1sa ut\u00e1n a rendszer felsz\u00f3l\u00edtja, hogy adj ki egy SAVE_CONFIG parancsot, hogy a m\u00f3dos\u00edt\u00e1s ment\u00e9sre ker\u00fclj\u00f6n.","title":"Konfigur\u00e1ld a ferdes\u00e9get"},{"location":"Skew_Correction.html#a-korrekcio-ellenorzese","text":"A skew_correction be\u00e1ll\u00edt\u00e1sa ut\u00e1n \u00fajra kinyomtathatja a kalibr\u00e1ci\u00f3s r\u00e9szt a korrekci\u00f3 enged\u00e9lyez\u00e9s\u00e9vel. A k\u00f6vetkez\u0151 G-k\u00f3ddal ellen\u0151rizheti a ferdes\u00e9get minden s\u00edkban. Az eredm\u00e9nyeknek alacsonyabbaknak kell lenni\u00fck, mint a GET_CURRENT_SKEW seg\u00edts\u00e9g\u00e9vel jelentett eredm\u00e9nyek. CALC_MEASURED_SKEW AC=<ac_length> BD=<bd_length> AD=<ad_length>","title":"A korrekci\u00f3 ellen\u0151rz\u00e9se"},{"location":"Skew_Correction.html#ovintezkedesek","text":"A ferdes\u00e9gkorrekci\u00f3 term\u00e9szet\u00e9b\u0151l ad\u00f3d\u00f3an aj\u00e1nlott a ferdes\u00e9get az ind\u00edt\u00f3 G-k\u00f3dban konfigur\u00e1lni, a kezd\u0151pont felv\u00e9tel \u00e9s minden olyan mozg\u00e1s ut\u00e1n, amely a nyomtat\u00e1si ter\u00fclet sz\u00e9l\u00e9hez k\u00f6zel\u00edt, mint p\u00e9ld\u00e1ul a tiszt\u00edt\u00e1s vagy a f\u00fav\u00f3ka t\u00f6rl\u00e9se. Ehhez haszn\u00e1lhatod a SET_SKEW vagy a SKEW_PROFILE G-k\u00f3dokat. Aj\u00e1nlott tov\u00e1bb\u00e1 a SET_SKEW CLEAR=1 parancs kiad\u00e1sa a befejez\u0151 G-k\u00f3dban. Ne feledd! Lehets\u00e9ges, hogy a [skew_correction] olyan korrekci\u00f3t gener\u00e1l, amely a fejet az X \u00e9s/vagy Y tengelyen a nyomtat\u00f3 hat\u00e1rain t\u00falra helyezi. A [skew_correction] haszn\u00e1latakor aj\u00e1nlott a nyomtat\u00f3fejet a sz\u00e9lekt\u0151l t\u00e1volabb elhelyezni.","title":"\u00d3vint\u00e9zked\u00e9sek"},{"location":"Slicers.html","text":"Szeletel\u0151k \u00b6 Ez a dokumentum n\u00e9h\u00e1ny tippet ad a Klipperrel haszn\u00e1lhat\u00f3 \"szeletel\u0151\" alkalmaz\u00e1s konfigur\u00e1l\u00e1s\u00e1hoz. A Klipperrel egy\u00fctt haszn\u00e1lt gyakori szeletel\u0151programok a Slic3r, Cura, Simplify3D stb. \u00c1ll\u00edtsd be a G-k\u00f3d \u00edz\u00e9t Marlinra \u00b6 Sok szeletel\u0151program rendelkezik a \"G-k\u00f3d \u00edz\u00e9nek\" konfigur\u00e1l\u00e1si lehet\u0151s\u00e9ggel. Az alap\u00e9rtelmezett gyakran a \"Marlin\", \u00e9s ez j\u00f3l m\u0171k\u00f6dik a Klipperrel. A \"Smoothieware\" be\u00e1ll\u00edt\u00e1s szint\u00e9n j\u00f3l m\u0171k\u00f6dik a Klipperrel. Klipper gcode_macro \u00b6 A szeletel\u0151k gyakran lehet\u0151v\u00e9 teszik a \"Start G-k\u00f3d\" \u00e9s \"End G-k\u00f3d\" szekvenci\u00e1k konfigur\u00e1l\u00e1s\u00e1t. Ehelyett gyakran k\u00e9nyelmes egy\u00e9ni makr\u00f3kat defini\u00e1lni a Klipper config f\u00e1jlban - p\u00e9ld\u00e1ul: [gcode_macro START_PRINT] \u00e9s [gcode_macro END_PRINT] . Ezut\u00e1n csak a START_PRINT \u00e9s END_PRINT futtat\u00e1s\u00e1t kell elv\u00e9gezni a szeletel\u0151 konfigur\u00e1ci\u00f3j\u00e1ban. Ha ezeket a m\u0171veleteket a Klipper konfigur\u00e1ci\u00f3ban defini\u00e1ljuk, k\u00f6nnyebb\u00e9 v\u00e1lhat a nyomtat\u00f3 ind\u00edt\u00e1si \u00e9s befejez\u00e9si l\u00e9p\u00e9seinek finomhangol\u00e1sa, mivel a v\u00e1ltoztat\u00e1sok nem ig\u00e9nyelnek \u00fajb\u00f3li szeletel\u00e9st. L\u00e1sd a sample-macros.cfg a START_PRINT \u00e9s END_PRINT makr\u00f3k p\u00e9ld\u00e1j\u00e1t. A gcode_macro defini\u00e1l\u00e1s\u00e1nak r\u00e9szletei\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st . Nagy visszah\u00faz\u00e1si \u00e9rt\u00e9kek be\u00e1ll\u00edt\u00e1sa sz\u00fcks\u00e9gess\u00e9 tehetik a Klipper hangol\u00e1s\u00e1t \u00b6 A beh\u00faz\u00e1si mozg\u00e1sok maxim\u00e1lis sebess\u00e9g\u00e9t \u00e9s gyorsul\u00e1s\u00e1t a Klipperben a max_extrude_only_velocity \u00e9s max_extrude_only_accel konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sok szab\u00e1lyozz\u00e1k. Ezeknek a be\u00e1ll\u00edt\u00e1soknak van egy alap\u00e9rtelmezett \u00e9rt\u00e9ke, amely sok nyomtat\u00f3n\u00e1l j\u00f3l fog m\u0171k\u00f6dni. Ha azonban valaki nagy beh\u00faz\u00e1st \u00e1ll\u00edtott be a szeletel\u0151ben (pl. 5 mm vagy nagyobb), akkor el\u0151fordulhat, hogy ezek korl\u00e1tozz\u00e1k a k\u00edv\u00e1nt beh\u00faz\u00e1si sebess\u00e9get. Ha nagy visszah\u00faz\u00e1st haszn\u00e1l, fontold meg a Klipper nyom\u00e1s el\u0151tol\u00e1s be\u00e1ll\u00edt\u00e1s\u00e1t. Ellenkez\u0151 esetben, ha \u00fagy tal\u00e1ljuk, hogy a nyomtat\u00f3fej \u00fagy t\u0171nik, hogy \"sz\u00fcnetel\" a beh\u00faz\u00e1s \u00e9s az alapoz\u00e1s sor\u00e1n, akkor fontold meg a max_extrude_only_velocity \u00e9s max_extrude_only_accel kifejezett meghat\u00e1roz\u00e1s\u00e1t a Klipper konfigur\u00e1ci\u00f3s f\u00e1jlban. Ne enged\u00e9lyezd a \"coasting-ot\" \u00b6 A \"coasting\" funkci\u00f3 val\u00f3sz\u00edn\u0171leg rossz min\u0151s\u00e9g\u0171 nyomatokat eredm\u00e9nyez a Klipperrel. Fontold meg helyette a Klipper pressure advance haszn\u00e1lat\u00e1t. Konkr\u00e9tan, ha a szeletel\u0151 drasztikusan megv\u00e1ltoztatja az extrud\u00e1l\u00e1si sebess\u00e9get a mozg\u00e1sok k\u00f6z\u00f6tt, akkor a Klipper lass\u00edt\u00e1st \u00e9s gyors\u00edt\u00e1st hajt v\u00e9gre a mozg\u00e1sok k\u00f6z\u00f6tt. Ez val\u00f3sz\u00edn\u0171leg rontja a blobbingot, nem pedig jav\u00edtja. Ezzel szemben a szeletel\u0151g\u00e9p \"visszah\u00faz\u00e1s\" be\u00e1ll\u00edt\u00e1sa, \"t\u00f6rl\u00e9s\" be\u00e1ll\u00edt\u00e1sa \u00e9s/vagy \"t\u00f6rl\u00e9s visszah\u00faz\u00e1skor\" be\u00e1ll\u00edt\u00e1sa rendben van (\u00e9s gyakran hasznos). Ne haszn\u00e1ld az \"extra \u00fajraind\u00edt\u00e1si t\u00e1vols\u00e1got\" a Simplify3d-n\u00e9l \u00b6 Ez a be\u00e1ll\u00edt\u00e1s dr\u00e1mai v\u00e1ltoz\u00e1sokat okozhat az extrud\u00e1l\u00e1si sebess\u00e9gben, ami kiv\u00e1lthatja a Klipper maxim\u00e1lis extrud\u00e1l\u00e1si keresztmetszet ellen\u0151rz\u00e9s\u00e9t. Fontold meg a Klipper nyom\u00e1s el\u0151tol\u00e1s vagy a norm\u00e1l Simplify3d visszah\u00faz\u00e1si be\u00e1ll\u00edt\u00e1s haszn\u00e1lat\u00e1t helyette. A \"PreloadVE\" letilt\u00e1sa a KISSlicer-en \u00b6 Ha a KISSlicer szeletel\u0151szoftvert haszn\u00e1lod, akkor \u00e1ll\u00edtsd a \"PreloadVE\" \u00e9rt\u00e9ket null\u00e1ra. Fontold meg helyette a Klipper nyom\u00e1s el\u0151tol\u00e1s haszn\u00e1lat\u00e1t. Tiltja a \"fejlett nyom\u00e1s el\u0151tol\u00e1s\" be\u00e1ll\u00edt\u00e1sokat \u00b6 N\u00e9h\u00e1ny szeletel\u0151g\u00e9p \"fejlett nyom\u00e1s el\u0151tol\u00e1s\" k\u00e9pess\u00e9get hirdet. A Klipper haszn\u00e1lata eset\u00e9n aj\u00e1nlott ezeket az opci\u00f3kat kikapcsolva tartani, mivel val\u00f3sz\u00edn\u0171leg rossz min\u0151s\u00e9g\u0171 nyomatokat eredm\u00e9nyeznek. Fontold meg ehelyett a Klipper nyom\u00e1s el\u0151tol\u00e1s haszn\u00e1lat\u00e1t. Konkr\u00e9tan ezek a szeletel\u0151 be\u00e1ll\u00edt\u00e1sok utas\u00edthatj\u00e1k a firmware-t, hogy vad v\u00e1ltoztat\u00e1sokat v\u00e9gezzen az extrud\u00e1l\u00e1si sebess\u00e9gben, abban a rem\u00e9nyben, hogy a firmware k\u00f6zel\u00edteni fogja ezeket a k\u00e9r\u00e9seket, \u00e9s a nyomtat\u00f3 nagyj\u00e1b\u00f3l a k\u00edv\u00e1nt extrudernyom\u00e1st fogja el\u00e9rni. A Klipper azonban pontos kinematikai sz\u00e1m\u00edt\u00e1sokat \u00e9s id\u0151z\u00edt\u00e9st haszn\u00e1l. Amikor a Klipper parancsot kap az extrud\u00e1l\u00e1si sebess\u00e9g jelent\u0151s v\u00e1ltoztat\u00e1s\u00e1ra, megtervezi a sebess\u00e9g, a gyorsul\u00e1s \u00e9s az extruder mozg\u00e1s\u00e1nak megfelel\u0151 v\u00e1ltoz\u00e1sait - ami nem a szeletel\u0151 sz\u00e1nd\u00e9k\u00e1ban \u00e1ll. A szeletel\u0151 ak\u00e1r t\u00falzott extrud\u00e1l\u00e1si sebess\u00e9get is parancsolhat, olyannyira, hogy az kiv\u00e1ltja a Klipper maxim\u00e1lis extrud\u00e1l\u00e1si keresztmetszet ellen\u0151rz\u00e9s\u00e9t. Ezzel szemben a szeletel\u0151g\u00e9p \"visszah\u00faz\u00e1s\" be\u00e1ll\u00edt\u00e1sa, \"t\u00f6rl\u00e9s\" be\u00e1ll\u00edt\u00e1sa \u00e9s/vagy \"t\u00f6rl\u00e9s visszah\u00faz\u00e1skor\" be\u00e1ll\u00edt\u00e1sa rendben van (\u00e9s gyakran hasznos).","title":"Szeletel\u0151k"},{"location":"Slicers.html#szeletelok","text":"Ez a dokumentum n\u00e9h\u00e1ny tippet ad a Klipperrel haszn\u00e1lhat\u00f3 \"szeletel\u0151\" alkalmaz\u00e1s konfigur\u00e1l\u00e1s\u00e1hoz. A Klipperrel egy\u00fctt haszn\u00e1lt gyakori szeletel\u0151programok a Slic3r, Cura, Simplify3D stb.","title":"Szeletel\u0151k"},{"location":"Slicers.html#allitsd-be-a-g-kod-izet-marlinra","text":"Sok szeletel\u0151program rendelkezik a \"G-k\u00f3d \u00edz\u00e9nek\" konfigur\u00e1l\u00e1si lehet\u0151s\u00e9ggel. Az alap\u00e9rtelmezett gyakran a \"Marlin\", \u00e9s ez j\u00f3l m\u0171k\u00f6dik a Klipperrel. A \"Smoothieware\" be\u00e1ll\u00edt\u00e1s szint\u00e9n j\u00f3l m\u0171k\u00f6dik a Klipperrel.","title":"\u00c1ll\u00edtsd be a G-k\u00f3d \u00edz\u00e9t Marlinra"},{"location":"Slicers.html#klipper-gcode_macro","text":"A szeletel\u0151k gyakran lehet\u0151v\u00e9 teszik a \"Start G-k\u00f3d\" \u00e9s \"End G-k\u00f3d\" szekvenci\u00e1k konfigur\u00e1l\u00e1s\u00e1t. Ehelyett gyakran k\u00e9nyelmes egy\u00e9ni makr\u00f3kat defini\u00e1lni a Klipper config f\u00e1jlban - p\u00e9ld\u00e1ul: [gcode_macro START_PRINT] \u00e9s [gcode_macro END_PRINT] . Ezut\u00e1n csak a START_PRINT \u00e9s END_PRINT futtat\u00e1s\u00e1t kell elv\u00e9gezni a szeletel\u0151 konfigur\u00e1ci\u00f3j\u00e1ban. Ha ezeket a m\u0171veleteket a Klipper konfigur\u00e1ci\u00f3ban defini\u00e1ljuk, k\u00f6nnyebb\u00e9 v\u00e1lhat a nyomtat\u00f3 ind\u00edt\u00e1si \u00e9s befejez\u00e9si l\u00e9p\u00e9seinek finomhangol\u00e1sa, mivel a v\u00e1ltoztat\u00e1sok nem ig\u00e9nyelnek \u00fajb\u00f3li szeletel\u00e9st. L\u00e1sd a sample-macros.cfg a START_PRINT \u00e9s END_PRINT makr\u00f3k p\u00e9ld\u00e1j\u00e1t. A gcode_macro defini\u00e1l\u00e1s\u00e1nak r\u00e9szletei\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s hivatkoz\u00e1st .","title":"Klipper gcode_macro"},{"location":"Slicers.html#nagy-visszahuzasi-ertekek-beallitasa-szuksegesse-tehetik-a-klipper-hangolasat","text":"A beh\u00faz\u00e1si mozg\u00e1sok maxim\u00e1lis sebess\u00e9g\u00e9t \u00e9s gyorsul\u00e1s\u00e1t a Klipperben a max_extrude_only_velocity \u00e9s max_extrude_only_accel konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sok szab\u00e1lyozz\u00e1k. Ezeknek a be\u00e1ll\u00edt\u00e1soknak van egy alap\u00e9rtelmezett \u00e9rt\u00e9ke, amely sok nyomtat\u00f3n\u00e1l j\u00f3l fog m\u0171k\u00f6dni. Ha azonban valaki nagy beh\u00faz\u00e1st \u00e1ll\u00edtott be a szeletel\u0151ben (pl. 5 mm vagy nagyobb), akkor el\u0151fordulhat, hogy ezek korl\u00e1tozz\u00e1k a k\u00edv\u00e1nt beh\u00faz\u00e1si sebess\u00e9get. Ha nagy visszah\u00faz\u00e1st haszn\u00e1l, fontold meg a Klipper nyom\u00e1s el\u0151tol\u00e1s be\u00e1ll\u00edt\u00e1s\u00e1t. Ellenkez\u0151 esetben, ha \u00fagy tal\u00e1ljuk, hogy a nyomtat\u00f3fej \u00fagy t\u0171nik, hogy \"sz\u00fcnetel\" a beh\u00faz\u00e1s \u00e9s az alapoz\u00e1s sor\u00e1n, akkor fontold meg a max_extrude_only_velocity \u00e9s max_extrude_only_accel kifejezett meghat\u00e1roz\u00e1s\u00e1t a Klipper konfigur\u00e1ci\u00f3s f\u00e1jlban.","title":"Nagy visszah\u00faz\u00e1si \u00e9rt\u00e9kek be\u00e1ll\u00edt\u00e1sa sz\u00fcks\u00e9gess\u00e9 tehetik a Klipper hangol\u00e1s\u00e1t"},{"location":"Slicers.html#ne-engedelyezd-a-coasting-ot","text":"A \"coasting\" funkci\u00f3 val\u00f3sz\u00edn\u0171leg rossz min\u0151s\u00e9g\u0171 nyomatokat eredm\u00e9nyez a Klipperrel. Fontold meg helyette a Klipper pressure advance haszn\u00e1lat\u00e1t. Konkr\u00e9tan, ha a szeletel\u0151 drasztikusan megv\u00e1ltoztatja az extrud\u00e1l\u00e1si sebess\u00e9get a mozg\u00e1sok k\u00f6z\u00f6tt, akkor a Klipper lass\u00edt\u00e1st \u00e9s gyors\u00edt\u00e1st hajt v\u00e9gre a mozg\u00e1sok k\u00f6z\u00f6tt. Ez val\u00f3sz\u00edn\u0171leg rontja a blobbingot, nem pedig jav\u00edtja. Ezzel szemben a szeletel\u0151g\u00e9p \"visszah\u00faz\u00e1s\" be\u00e1ll\u00edt\u00e1sa, \"t\u00f6rl\u00e9s\" be\u00e1ll\u00edt\u00e1sa \u00e9s/vagy \"t\u00f6rl\u00e9s visszah\u00faz\u00e1skor\" be\u00e1ll\u00edt\u00e1sa rendben van (\u00e9s gyakran hasznos).","title":"Ne enged\u00e9lyezd a \"coasting-ot\""},{"location":"Slicers.html#ne-hasznald-az-extra-ujrainditasi-tavolsagot-a-simplify3d-nel","text":"Ez a be\u00e1ll\u00edt\u00e1s dr\u00e1mai v\u00e1ltoz\u00e1sokat okozhat az extrud\u00e1l\u00e1si sebess\u00e9gben, ami kiv\u00e1lthatja a Klipper maxim\u00e1lis extrud\u00e1l\u00e1si keresztmetszet ellen\u0151rz\u00e9s\u00e9t. Fontold meg a Klipper nyom\u00e1s el\u0151tol\u00e1s vagy a norm\u00e1l Simplify3d visszah\u00faz\u00e1si be\u00e1ll\u00edt\u00e1s haszn\u00e1lat\u00e1t helyette.","title":"Ne haszn\u00e1ld az \"extra \u00fajraind\u00edt\u00e1si t\u00e1vols\u00e1got\" a Simplify3d-n\u00e9l"},{"location":"Slicers.html#a-preloadve-letiltasa-a-kisslicer-en","text":"Ha a KISSlicer szeletel\u0151szoftvert haszn\u00e1lod, akkor \u00e1ll\u00edtsd a \"PreloadVE\" \u00e9rt\u00e9ket null\u00e1ra. Fontold meg helyette a Klipper nyom\u00e1s el\u0151tol\u00e1s haszn\u00e1lat\u00e1t.","title":"A \"PreloadVE\" letilt\u00e1sa a KISSlicer-en"},{"location":"Slicers.html#tiltja-a-fejlett-nyomas-elotolas-beallitasokat","text":"N\u00e9h\u00e1ny szeletel\u0151g\u00e9p \"fejlett nyom\u00e1s el\u0151tol\u00e1s\" k\u00e9pess\u00e9get hirdet. A Klipper haszn\u00e1lata eset\u00e9n aj\u00e1nlott ezeket az opci\u00f3kat kikapcsolva tartani, mivel val\u00f3sz\u00edn\u0171leg rossz min\u0151s\u00e9g\u0171 nyomatokat eredm\u00e9nyeznek. Fontold meg ehelyett a Klipper nyom\u00e1s el\u0151tol\u00e1s haszn\u00e1lat\u00e1t. Konkr\u00e9tan ezek a szeletel\u0151 be\u00e1ll\u00edt\u00e1sok utas\u00edthatj\u00e1k a firmware-t, hogy vad v\u00e1ltoztat\u00e1sokat v\u00e9gezzen az extrud\u00e1l\u00e1si sebess\u00e9gben, abban a rem\u00e9nyben, hogy a firmware k\u00f6zel\u00edteni fogja ezeket a k\u00e9r\u00e9seket, \u00e9s a nyomtat\u00f3 nagyj\u00e1b\u00f3l a k\u00edv\u00e1nt extrudernyom\u00e1st fogja el\u00e9rni. A Klipper azonban pontos kinematikai sz\u00e1m\u00edt\u00e1sokat \u00e9s id\u0151z\u00edt\u00e9st haszn\u00e1l. Amikor a Klipper parancsot kap az extrud\u00e1l\u00e1si sebess\u00e9g jelent\u0151s v\u00e1ltoztat\u00e1s\u00e1ra, megtervezi a sebess\u00e9g, a gyorsul\u00e1s \u00e9s az extruder mozg\u00e1s\u00e1nak megfelel\u0151 v\u00e1ltoz\u00e1sait - ami nem a szeletel\u0151 sz\u00e1nd\u00e9k\u00e1ban \u00e1ll. A szeletel\u0151 ak\u00e1r t\u00falzott extrud\u00e1l\u00e1si sebess\u00e9get is parancsolhat, olyannyira, hogy az kiv\u00e1ltja a Klipper maxim\u00e1lis extrud\u00e1l\u00e1si keresztmetszet ellen\u0151rz\u00e9s\u00e9t. Ezzel szemben a szeletel\u0151g\u00e9p \"visszah\u00faz\u00e1s\" be\u00e1ll\u00edt\u00e1sa, \"t\u00f6rl\u00e9s\" be\u00e1ll\u00edt\u00e1sa \u00e9s/vagy \"t\u00f6rl\u00e9s visszah\u00faz\u00e1skor\" be\u00e1ll\u00edt\u00e1sa rendben van (\u00e9s gyakran hasznos).","title":"Tiltja a \"fejlett nyom\u00e1s el\u0151tol\u00e1s\" be\u00e1ll\u00edt\u00e1sokat"},{"location":"Sponsors.html","text":"Szponzorok \u00b6 A Klipper szabad szoftver. A szponzorok nagylelk\u0171 t\u00e1mogat\u00e1s\u00e1t\u00f3l f\u00fcgg\u00fcnk. K\u00e9rj\u00fck, fontold meg a Klipper szponzor\u00e1l\u00e1s\u00e1t vagy szponzoraink t\u00e1mogat\u00e1s\u00e1t. BIGTREETECH \u00b6 [ A BIGTREETECH a Klipper hivatalos alaplapszponzora. A BIGTREETECH elk\u00f6telezett az innovat\u00edv \u00e9s versenyk\u00e9pes term\u00e9kek fejleszt\u00e9se mellett, hogy a 3D nyomtat\u00e1si k\u00f6z\u00f6ss\u00e9get jobban szolg\u00e1lj\u00e1k. K\u00f6vesse \u0151ket a Facebookon vagy a Twitteren . Klipper fejleszt\u0151k \u00b6 Kevin O'Connor \u00b6 Kevin a Klipper eredeti szerz\u0151je \u00e9s jelenlegi karbantart\u00f3ja. Adom\u00e1nyozhat a k\u00f6vetkez\u0151 c\u00edmen: https://ko-fi.com/koconnor vagy https://www.patreon.com/koconnor Eric Callahan \u00b6 Eric a bed_mesh, spi_flash \u00e9s sz\u00e1mos m\u00e1s Klipper modul szerz\u0151je. Ericnek van egy adom\u00e1nyoz\u00e1si oldala a k\u00f6vetkez\u0151 c\u00edmen: https://ko-fi.com/arksine Kapcsol\u00f3d\u00f3 Klipper projektek \u00b6 A Klippert gyakran haszn\u00e1lj\u00e1k m\u00e1s szabad szoftverekkel egy\u00fctt. Fontold meg ezeknek a projekteknek a haszn\u00e1lat\u00e1t vagy t\u00e1mogat\u00e1s\u00e1t. Moonraker Mainsail Fluidd OctoPrint KlipperScreen","title":"Szponzorok"},{"location":"Sponsors.html#szponzorok","text":"A Klipper szabad szoftver. A szponzorok nagylelk\u0171 t\u00e1mogat\u00e1s\u00e1t\u00f3l f\u00fcgg\u00fcnk. K\u00e9rj\u00fck, fontold meg a Klipper szponzor\u00e1l\u00e1s\u00e1t vagy szponzoraink t\u00e1mogat\u00e1s\u00e1t.","title":"Szponzorok"},{"location":"Sponsors.html#bigtreetech","text":"[ A BIGTREETECH a Klipper hivatalos alaplapszponzora. A BIGTREETECH elk\u00f6telezett az innovat\u00edv \u00e9s versenyk\u00e9pes term\u00e9kek fejleszt\u00e9se mellett, hogy a 3D nyomtat\u00e1si k\u00f6z\u00f6ss\u00e9get jobban szolg\u00e1lj\u00e1k. K\u00f6vesse \u0151ket a Facebookon vagy a Twitteren .","title":"BIGTREETECH"},{"location":"Sponsors.html#klipper-fejlesztok","text":"","title":"Klipper fejleszt\u0151k"},{"location":"Sponsors.html#kevin-oconnor","text":"Kevin a Klipper eredeti szerz\u0151je \u00e9s jelenlegi karbantart\u00f3ja. Adom\u00e1nyozhat a k\u00f6vetkez\u0151 c\u00edmen: https://ko-fi.com/koconnor vagy https://www.patreon.com/koconnor","title":"Kevin O'Connor"},{"location":"Sponsors.html#eric-callahan","text":"Eric a bed_mesh, spi_flash \u00e9s sz\u00e1mos m\u00e1s Klipper modul szerz\u0151je. Ericnek van egy adom\u00e1nyoz\u00e1si oldala a k\u00f6vetkez\u0151 c\u00edmen: https://ko-fi.com/arksine","title":"Eric Callahan"},{"location":"Sponsors.html#kapcsolodo-klipper-projektek","text":"A Klippert gyakran haszn\u00e1lj\u00e1k m\u00e1s szabad szoftverekkel egy\u00fctt. Fontold meg ezeknek a projekteknek a haszn\u00e1lat\u00e1t vagy t\u00e1mogat\u00e1s\u00e1t. Moonraker Mainsail Fluidd OctoPrint KlipperScreen","title":"Kapcsol\u00f3d\u00f3 Klipper projektek"},{"location":"Status_Reference.html","text":"\u00c1llapot referencia \u00b6 Ez a dokumentum a Klipper makr\u00f3k , megjelen\u00edt\u00e9si mez\u0151k \u00e9s az API Szerver seg\u00edts\u00e9g\u00e9vel el\u00e9rhet\u0151 nyomtat\u00f3 \u00e1llapotinform\u00e1ci\u00f3k referenci\u00e1ja. Az ebben a dokumentumban szerepl\u0151 mez\u0151k v\u00e1ltozhatnak. Ha egy attrib\u00fatumot haszn\u00e1lsz, a Klipper szoftver friss\u00edt\u00e9sekor mindenk\u00e9ppen n\u00e9zd \u00e1t a Konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00e1sok dokumentumot . angle \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k az angle some_name objektumban \u00e9rhet\u0151k el: temperature : A tle5012b m\u00e1gneses hall-\u00e9rz\u00e9kel\u0151 utols\u00f3 h\u0151m\u00e9rs\u00e9kleti \u00e9rt\u00e9ke (Celsiusban). Ez az \u00e9rt\u00e9k csak akkor \u00e9rhet\u0151 el, ha a sz\u00f6g\u00e9rz\u00e9kel\u0151 egy tle5012b chip, \u00e9s ha a m\u00e9r\u00e9sek folyamatban vannak (ellenkez\u0151 esetben None ). bed_mesh \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a bed_mesh objektumban \u00e9rhet\u0151k el: profile_name , mesh_min , mesh_max , probed_matrix , mesh_matrix : Az aktu\u00e1lisan akt\u00edv bed_mesh-re vonatkoz\u00f3 inform\u00e1ci\u00f3k. profiles : A BED_MESH_PROFILE haszn\u00e1lat\u00e1val be\u00e1ll\u00edtott, jelenleg defini\u00e1lt profilok halmaza. bed_screws \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a Config_Reference.md#bed_screws objektumban tal\u00e1lhat\u00f3k: is_active : True \u00e9rt\u00e9ket ad vissza, ha a t\u00e1rgyasztal csavarok be\u00e1ll\u00edt\u00e1si eszk\u00f6ze jelenleg akt\u00edv. state : A t\u00e1rgyasztal csavarok be\u00e1ll\u00edt\u00e1si szersz\u00e1m\u00e1nak \u00e1llapota. A k\u00f6vetkez\u0151 karakterl\u00e1ncok egyike: \"adjust\", \"fine\". current_screw : Az aktu\u00e1lisan be\u00e1ll\u00edtott csavar indexe. accepted_screws : Az elfogadott csavarok sz\u00e1ma. configfile \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a configfile objektumban tal\u00e1lhat\u00f3k (ez az objektum mindig el\u00e9rhet\u0151): settings.<section>.<option> : Visszaadja az adott konfigur\u00e1ci\u00f3s f\u00e1jl be\u00e1ll\u00edt\u00e1s\u00e1t (vagy alap\u00e9rtelmezett \u00e9rt\u00e9k\u00e9t) a szoftver utols\u00f3 ind\u00edt\u00e1sa vagy \u00fajraind\u00edt\u00e1sa sor\u00e1n. (A haszn\u00e1lat k\u00f6zben megv\u00e1ltoztatott be\u00e1ll\u00edt\u00e1sok nem jelennek meg itt.) config.<section>.<option> : Visszaadja az adott nyers konfigur\u00e1ci\u00f3s f\u00e1jl be\u00e1ll\u00edt\u00e1s\u00e1t, ahogyan azt a Klipper a legut\u00f3bbi szoftverind\u00edt\u00e1s vagy \u00fajraind\u00edt\u00e1s sor\u00e1n beolvasta. (A m\u0171k\u00f6d\u00e9s k\u00f6zben megv\u00e1ltoztatott be\u00e1ll\u00edt\u00e1sok nem jelennek meg itt.) Minden \u00e9rt\u00e9ket stringk\u00e9nt ad vissza. save_config_pending : True \u00e9rt\u00e9ket ad, ha vannak olyan friss\u00edt\u00e9sek, amelyeket a SAVE_CONFIG parancs a lemezen is meg\u0151rizhet. save_config_pending_items : Tartalmazza azokat a szakaszokat \u00e9s opci\u00f3kat, amelyeket megv\u00e1ltoztattak, \u00e9s amelyeket egy SAVE_CONFIG elmenthetne. figyelmeztet\u00e9sek : A konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sokkal kapcsolatos figyelmeztet\u00e9sek list\u00e1ja. A lista minden egyes bejegyz\u00e9se egy sz\u00f3t\u00e1r lesz, amely tartalmaz egy type \u00e9s egy message mez\u0151t (mindkett\u0151 karakterl\u00e1nc). A figyelmeztet\u00e9s t\u00edpus\u00e1t\u00f3l f\u00fcgg\u0151en tov\u00e1bbi mez\u0151k is rendelkez\u00e9sre \u00e1llhatnak. display_status \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a display_status objektumban \u00e9rhet\u0151k el (ez az objektum automatikusan el\u00e9rhet\u0151, ha a kijelz\u0151 konfigur\u00e1ci\u00f3s szakasz defini\u00e1lva van): progress : A legut\u00f3bbi M73 G-k\u00f3d parancs progress \u00e9rt\u00e9ke (vagy virtual_sdcard.progress , ha nem \u00e9rkezett legut\u00f3bbi M73 ). message : Az utols\u00f3 M117 G-k\u00f3d\u00fa parancsban szerepl\u0151 \u00fczenet. endstop_phase \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k az endstop_phase objektumban \u00e9rhet\u0151k el: last_home.<stepper name>.phase : A l\u00e9ptet\u0151motor f\u00e1zisa az utols\u00f3 kezd\u0151pont felv\u00e9teli k\u00eds\u00e9rlet v\u00e9g\u00e9n. last_home.<stepper name>.phases : A l\u00e9ptet\u0151motoron rendelkez\u00e9sre \u00e1ll\u00f3 f\u00e1zisok sz\u00e1ma. last_home.<stepper name>.mcu_position : A l\u00e9ptet\u0151motor poz\u00edci\u00f3ja (ahogyan azt a mikrokontroller k\u00f6veti) a legut\u00f3bbi kezd\u0151pont felv\u00e9teli k\u00eds\u00e9rlet v\u00e9g\u00e9n. A poz\u00edci\u00f3 az el\u0151remen\u0151 ir\u00e1nyban megtett l\u00e9p\u00e9sek sz\u00e1ma m\u00ednusz a mikrokontroller utols\u00f3 \u00fajraind\u00edt\u00e1sa \u00f3ta visszafel\u00e9 megtett l\u00e9p\u00e9sek sz\u00e1m\u00e1val. exclude_object \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k az exclude_object objektumban tal\u00e1lhat\u00f3k: objektumok : Az EXCLUDE_OBJECT_DEFINE parancs \u00e1ltal megadott ismert objektumok t\u00f6mbje. Ez ugyanaz az inform\u00e1ci\u00f3, amelyet az EXCLUDE_OBJECT VERBOSE=1 parancs szolg\u00e1ltat. A center \u00e9s polygon mez\u0151k csak akkor lesznek jelen, ha az eredeti EXCLUDE_OBJECT_DEFINE parancsban szerepelnek.\u00cdme egy JSON-minta: [ { \"polygon\": [ [ 156.25, 146.2511675 ], [ 156.25, 153.7488325 ], [ 163.75, 153.7488325 ], [ 163.75, 146.2511675 ] ], \"name\": \"CYLINDER_2_STL_ID_2_COPY_0\", \"center\": [ 160, 150 ] }, { \"polygon\": [ [ 146.25, 146.2511675 ], [ 146.25, 153.7488325 ], [ 153.75, 153.7488325 ], [ 153.75, 146.2511675 ] ], \"name\": \"CYLINDER_2_STL_ID_1_COPY_0\", \"center\": [ 150, 150 ] } ] excluded_objects : A kiz\u00e1rt objektumok neveit felsorol\u00f3 karakterl\u00e1ncok t\u00f6mbje. current_object : Az aktu\u00e1lisan nyomtatott objektum neve. extruder_stepper \u00b6 Az al\u00e1bbi inform\u00e1ci\u00f3k az extruder_stepper objektumok (valamint az extruder objektumok) eset\u00e9ben \u00e1llnak rendelkez\u00e9sre: pressure_advance : Az aktu\u00e1lis nyom\u00e1s el\u0151tol\u00e1s \u00e9rt\u00e9k. smooth_time : Az aktu\u00e1lis nyom\u00e1s el\u0151tol\u00e1s\u00e1nak sim\u00edt\u00e1si ideje. fan \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a ventil\u00e1tor , heater_fan some_name \u00e9s controller_fan some_name objektumokban \u00e9rhet\u0151k el: speed : A ventil\u00e1tor fordulatsz\u00e1ma lebeg\u0151\u00e9rt\u00e9kben 0.0 \u00e9s 1.0 k\u00f6z\u00f6tt. rpm : A ventil\u00e1tor m\u00e9rt fordulatsz\u00e1ma percenk\u00e9nti fordulatsz\u00e1mban, ha a ventil\u00e1tor rendelkezik tachometer_pin kimenettel. filament_switch_sensor \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a filament_switch_sensor some_name objektumokban \u00e9rhet\u0151k el: enabled : True \u00e9rt\u00e9ket ad vissza, ha a kapcsol\u00f3 enged\u00e9lyezve van. filament_detected : True \u00e9rt\u00e9ket ad ha az \u00e9rz\u00e9kel\u0151 kioldott \u00e1llapotban van. filament_motion_sensor \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a filament_motion_sensor some_name objektumokban \u00e9rhet\u0151k el: enabled : True \u00e9rt\u00e9ket ad, ha a mozg\u00e1s\u00e9rz\u00e9kel\u0151 enged\u00e9lyezve van. filament_detected : True \u00e9rt\u00e9ket ad ha az \u00e9rz\u00e9kel\u0151 kioldott \u00e1llapotban van. firmware_retraction \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a firmware_retraction objektumban tal\u00e1lhat\u00f3k: retract_length , retract_speed , unretract_extra_length , unretract_speed : A firmware_retraction modul aktu\u00e1lis be\u00e1ll\u00edt\u00e1sai. Ezek a be\u00e1ll\u00edt\u00e1sok elt\u00e9rhetnek a konfigur\u00e1ci\u00f3s \u00e1llom\u00e1nyt\u00f3l, ha a SET_RETRACTION parancs megv\u00e1ltoztatja \u0151ket. gcode_macro \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a gcode_macro some_name objektumokban \u00e9rhet\u0151k el: <variable> : Egy gcode_macro v\u00e1ltoz\u00f3 aktu\u00e1lis \u00e9rt\u00e9ke. gcode_move \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a gcode_move objektumban \u00e9rhet\u0151k el (ez az objektum mindig el\u00e9rhet\u0151): gcode_position : A nyomtat\u00f3fej aktu\u00e1lis poz\u00edci\u00f3ja az aktu\u00e1lis G-k\u00f3d orig\u00f3hoz k\u00e9pest. Vagyis olyan poz\u00edci\u00f3k, amelyeket k\u00f6zvetlen\u00fcl egy G1 parancsnak k\u00fcldhet\u00fcnk. Lehet\u0151s\u00e9g van e poz\u00edci\u00f3 X, Y, Z \u00e9s az E, komponens\u00e9nek el\u00e9r\u00e9s\u00e9re (pl. gcode_position.x ). position : A nyomtat\u00f3fej utols\u00f3 kiadott poz\u00edci\u00f3ja a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1ta rendszerrel. Lehet\u0151s\u00e9g van ennek a poz\u00edci\u00f3nak az X, Y, Z \u00e9s az E, komponens\u00e9hez hozz\u00e1f\u00e9rni (pl. position.x ). homing_origin : A G-k\u00f3d koordin\u00e1ta rendszer orig\u00f3ja (a config f\u00e1jlban megadott koordin\u00e1ta rendszerhez k\u00e9pest), amelyet a G28 parancs ut\u00e1n haszn\u00e1lni kell. A SET_GCODE_OFFSET parancs megv\u00e1ltoztathatja ezt a poz\u00edci\u00f3t. Lehet\u0151s\u00e9g van ennek a poz\u00edci\u00f3nak az X, Y \u00e9s Z komponens\u00e9hez hozz\u00e1f\u00e9rni (pl. homing_origin.x ). speed : Az utols\u00f3, G1 parancsban be\u00e1ll\u00edtott sebess\u00e9g (mm/sec-ben). speed_factor : Az M220 parancs \u00e1ltal be\u00e1ll\u00edtott \"sebess\u00e9gt\u00e9nyez\u0151 fel\u00fclb\u00edr\u00e1l\u00e1sa\". Ez egy lebeg\u0151pontos \u00e9rt\u00e9k, \u00edgy 1.0 azt jelenti, hogy nincs fel\u00fclb\u00edr\u00e1lat, \u00e9s p\u00e9ld\u00e1ul a 2.0 megdupl\u00e1zza a k\u00e9rt sebess\u00e9get. extrude_factor : Az M221 parancs \u00e1ltal be\u00e1ll\u00edtott \"extrude factor override\". Ez egy lebeg\u0151pontos \u00e9rt\u00e9k, \u00edgy 1.0 azt jelenti, hogy nincs fel\u00fclb\u00edr\u00e1lat, \u00e9s p\u00e9ld\u00e1ul a 2.0 megdupl\u00e1zza a k\u00e9rt extrud\u00e1l\u00e1sokat. absolute_coordinates : True \u00e9rt\u00e9ket ad, ha a G90 abszol\u00fat koordin\u00e1ta m\u00f3dban van, vagy False \u00e9rt\u00e9ket, ha a G91 relat\u00edv m\u00f3dban van. absolute_extrude : True \u00e9rt\u00e9ket ad, ha az M82 abszol\u00fat extrude m\u00f3dban van, vagy False \u00e9rt\u00e9ket, ha az M83 relat\u00edv m\u00f3dban van. hall_filament_width_sensor \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a hall_filament_width_sensor objektumban \u00e9rhet\u0151k el: is_active : True \u00e9rt\u00e9ket ad, ha az \u00e9rz\u00e9kel\u0151 jelenleg akt\u00edv. Diameter : Az \u00e9rz\u00e9kel\u0151 utols\u00f3 leolvas\u00e1sa mm-ben. Raw : Az \u00e9rz\u00e9kel\u0151 utols\u00f3 nyers ADC-olvas\u00e1sa. heater \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k az olyan f\u0171t\u0151elemekhez \u00e1llnak rendelkez\u00e9sre, mint az extruder , heater_bed \u00e9s heater_generic : temperature : Az adott f\u0171t\u0151berendez\u00e9s legut\u00f3bb jelentett h\u0151m\u00e9rs\u00e9klete (Celsiusban, lebeg\u0151\u00e9rt\u00e9kben). target : Az adott f\u0171t\u0151berendez\u00e9s aktu\u00e1lis c\u00e9lh\u0151m\u00e9rs\u00e9klete (Celsiusban, lebeg\u0151\u00e9rt\u00e9kben). power : A f\u0171t\u0151testhez tartoz\u00f3 PWM-t\u0171 utols\u00f3 \u00e9rt\u00e9ke (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9k). can_extrude : Ha az extruder tud extrud\u00e1lni ( min_extrude_temp hat\u00e1rozza meg), csak az extruder eset\u00e9ben el\u00e9rhet\u0151 heaters \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a heaters objektumban \u00e9rhet\u0151k el (ez az objektum akkor \u00e9rhet\u0151 el, ha b\u00e1rmilyen f\u0171t\u0151berendez\u00e9s defini\u00e1lva van): available_heaters : Visszaadja az \u00f6sszes jelenleg el\u00e9rhet\u0151 f\u0171t\u0151berendez\u00e9s list\u00e1j\u00e1t a teljes config szekci\u00f3 nev\u00e9vel, pl. [\"extruder\", \"heater_bed\", \"heater_generic my_custom_heater\"] . available_sensors : Visszaadja az \u00f6sszes jelenleg el\u00e9rhet\u0151 h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151 list\u00e1j\u00e1t a teljes config szekci\u00f3 nev\u00e9vel, pl. [\"extruder\", \"heater_bed\", \"heater_generic my_custom_heater\", \"temperature_sensor electronics_temp\"] . idle_timeout \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k az idle_timeout objektumban \u00e9rhet\u0151k el (ez az objektum mindig el\u00e9rhet\u0151): state : A nyomtat\u00f3 aktu\u00e1lis \u00e1llapota, amelyet az idle_timeout modul k\u00f6vet. A k\u00f6vetkez\u0151 karakterl\u00e1ncok egyike: \"Idle\", \"Printing\", \"Ready\". printing_time : Az az id\u0151 (m\u00e1sodpercben), am\u00edg a nyomtat\u00f3 \"nyomtat\u00e1s\" \u00e1llapotban volt (ahogyan azt az idle_timeout modul k\u00f6veti). led \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k \u00e1llnak rendelkez\u00e9sre minden egyes [led led_name] , [neopixel led_name eset\u00e9ben, [dotstar led_name] , [pca9533 led_name] , \u00e9s [pca9632 led_name] a nyomtat\u00f3ban meghat\u00e1rozott printer.cfg f\u00e1jlban: color_data : A l\u00e1ncban l\u00e9v\u0151 ledek RGBW \u00e9rt\u00e9keit tartalmaz\u00f3 sz\u00ednlist\u00e1k list\u00e1ja. Minden \u00e9rt\u00e9ket 0,0 \u00e9s 1,0 k\u00f6z\u00f6tti lebeg\u0151\u00e9rt\u00e9kben \u00e1br\u00e1zolunk. Minden sz\u00ednlista 4 elemet tartalmaz (piros, z\u00f6ld, k\u00e9k, feh\u00e9r), m\u00e9g akkor is, ha az alatta l\u00e9v\u0151 LED kevesebb sz\u00edncsatorn\u00e1t t\u00e1mogat. P\u00e9ld\u00e1ul a l\u00e1nc m\u00e1sodik neopixel\u00e9nek k\u00e9k \u00e9rt\u00e9ke (a sz\u00ednlista 3. eleme) a printer[\"neopixel <config_name>\"].color_data[1][2] c\u00edmen \u00e9rhet\u0151 el. manual_probe \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a manual_probe objektumban tal\u00e1lhat\u00f3k: is_active : True \u00e9rt\u00e9ket ad vissza, ha egy k\u00e9zi m\u00e9r\u00e9si seg\u00e9dszkript jelenleg akt\u00edv. z_position : A f\u00fav\u00f3ka aktu\u00e1lis magass\u00e1ga (ahogyan azt a nyomtat\u00f3 jelenleg \u00e9rtelmezi). z_position_lower : Az utols\u00f3 m\u00e9r\u00e9s k\u00eds\u00e9rlet \u00e9ppen az aktu\u00e1lis magass\u00e1gn\u00e1l alacsonyabb. z_position_upper : Az utols\u00f3 m\u00e9r\u00e9s k\u00eds\u00e9rlet \u00e9ppen nagyobb, mint az aktu\u00e1lis magass\u00e1g. mcu \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k az mcu \u00e9s mcu some_name objektumokban \u00e9rhet\u0151k el: mcu_version : A mikrokontroller \u00e1ltal jelentett Klipper k\u00f3d verzi\u00f3ja. mcu_build_versions : A mikrokontroller k\u00f3dj\u00e1nak gener\u00e1l\u00e1s\u00e1hoz haszn\u00e1lt \u00e9p\u00edt\u0151eszk\u00f6z\u00f6kre vonatkoz\u00f3 inform\u00e1ci\u00f3k (a mikrokontroller \u00e1ltal jelentett m\u00f3don). mcu_constants.<constant_name> : A mikrokontroller \u00e1ltal jelentett ford\u00edt\u00e1si idej\u0171 konstansok. A rendelkez\u00e9sre \u00e1ll\u00f3 konstansok mikrokontroller architekt\u00far\u00e1nk\u00e9nt \u00e9s k\u00f3drev\u00edzi\u00f3nk\u00e9nt elt\u00e9r\u0151ek lehetnek. last_stats.<statistics_name> : Statisztikai inform\u00e1ci\u00f3k a mikrokontroller kapcsolatr\u00f3l. motion_report \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a motion_report objektumban \u00e9rhet\u0151k el (ez az objektum automatikusan el\u00e9rhet\u0151, ha b\u00e1rmilyen stepper konfigur\u00e1ci\u00f3s szakasz defini\u00e1lva van): live_position : A nyomtat\u00f3fej k\u00e9rt poz\u00edci\u00f3ja az aktu\u00e1lis id\u0151re interpol\u00e1lva. live_velocity : A nyomtat\u00f3fej k\u00e9rt sebess\u00e9ge (mm/sec-ben) az aktu\u00e1lis id\u0151pontban. live_extruder_velocity : A k\u00e9rt extruder sebess\u00e9g (mm/sec-ben) az aktu\u00e1lis id\u0151pontban. output_pin \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a output_pin some_name objektumokban \u00e9rhet\u0151k el: value : A SET_PIN paranccsal be\u00e1ll\u00edtott \"value\" a t\u0171 \u00e9rt\u00e9ke. palette2 \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a palette2 objektumban \u00e9rhet\u0151k el: ping : Az utols\u00f3 jelentett Palette 2 ping \u00f6sszege sz\u00e1zal\u00e9kban. remaining_load_length : A Palette 2 nyomtat\u00e1s ind\u00edt\u00e1sakor ez lesz a nyomtat\u00f3fejbe t\u00f6ltend\u0151 nyomtat\u00f3sz\u00e1l mennyis\u00e9ge. is_splicing : True, ha a Palette 2 nyomtat\u00f3sz\u00e1lat adagol. pause_resume \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a pause_resume objektumban \u00e9rhet\u0151k el: is_paused : True, ha egy PAUSE parancsot hajtottak v\u00e9gre a megfelel\u0151 RESUME parancs n\u00e9lk\u00fcl. print_stats \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a print_stats objektumban \u00e9rhet\u0151k el (ez az objektum automatikusan el\u00e9rhet\u0151, ha a virtual_sdcard config szakasz defini\u00e1lva van): filename , total_duration , print_duration , filament_used , state , message : Becs\u00fclt inform\u00e1ci\u00f3 az aktu\u00e1lis nyomtat\u00e1sr\u00f3l, ha egy virtual_sdcard nyomtat\u00e1s akt\u00edv. info.total_layer : Az utols\u00f3 SET_PRINT_STATS_INFO TOTAL_LAYER=<value> G-k\u00f3d\u00fa parancs. info.current_layer : Az aktu\u00e1lis r\u00e9teg \u00e9rt\u00e9ke az utols\u00f3 SET_PRINT_STATS_INFO CURRENT_LAYER=<value> G-k\u00f3d\u00fa parancs. probe \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a szonda objektumban \u00e9rhet\u0151k el (ez az objektum akkor is el\u00e9rhet\u0151, ha egy bltouch konfigur\u00e1ci\u00f3s szakasz van defini\u00e1lva): last_query : True \u00e9rt\u00e9ket ad vissza, ha a szond\u00e1t az utols\u00f3 QUERY_PROBE parancs sor\u00e1n \"triggered\" -k\u00e9nt jelentett\u00e9k. Megjegyz\u00e9s: ha ezt egy makr\u00f3ban haszn\u00e1ljuk, a sablon b\u0151v\u00edt\u00e9si sorrendje miatt a QUERY_PROBE parancsot akkor ezt a hivatkoz\u00e1st tartalmaz\u00f3 makr\u00f3 el\u0151tt kell lefuttatni. last_z_result : Az utols\u00f3 PROBE parancs Z eredm\u00e9ny\u00e9nek \u00e9rt\u00e9k\u00e9t adja vissza. Figyelem, ha ezt egy makr\u00f3ban haszn\u00e1ljuk, a sablon b\u0151v\u00edt\u00e9si sorrendje miatt a PROBE (vagy hasonl\u00f3) parancsot akkor ezt a hivatkoz\u00e1st tartalmaz\u00f3 makr\u00f3 el\u0151tt kell lefuttatni. quad_gantry_level \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a quad_gantry_level objektumban \u00e9rhet\u0151k el (ez az objektum akkor \u00e9rhet\u0151 el, ha a quad_gantry_level defini\u00e1lva van): applied : True, ha a port\u00e1l szintez\u00e9si folyamata lefutott \u00e9s sikeresen befejez\u0151d\u00f6tt. query_endstops \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a query_endstops objektumban \u00e9rhet\u0151k el (ez az objektum akkor \u00e9rhet\u0151 el, ha b\u00e1rmilyen v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 defini\u00e1lva van): last_query[\"<endstop>\"] : True \u00e9rt\u00e9ket ad, ha az adott v\u00e9g\u00e1ll\u00e1skapcsol\u00f3t az utols\u00f3 QUERY_ENDSTOP parancs sor\u00e1n \"triggered\" -k\u00e9nt jelentett\u00e9k. Megjegyz\u00e9s: ha ezt egy makr\u00f3ban haszn\u00e1ljuk, a sablon b\u0151v\u00edt\u00e9si sorrendje miatt a QUERY_ENDSTOP parancsot akkor ezt a hivatkoz\u00e1st tartalmaz\u00f3 makr\u00f3 el\u0151tt kell lefuttatni. servo \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a szerv\u00f3 some_name objektumokban \u00e9rhet\u0151k el: printer[\"servo <config_name>\"].value : A szerv\u00f3hoz tartoz\u00f3 PWM t\u0171 utols\u00f3 be\u00e1ll\u00edt\u00e1sa (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9k). system_stats \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a system_stats objektumban \u00e9rhet\u0151k el (ez az objektum mindig el\u00e9rhet\u0151): sysload , cputime , memavail : Inform\u00e1ci\u00f3 a gazdag\u00e9p oper\u00e1ci\u00f3s rendszer\u00e9r\u0151l \u00e9s a folyamatok terhel\u00e9s\u00e9r\u0151l. h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151k \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a k\u00f6vetkez\u0151 dokumentumban tal\u00e1lhat\u00f3k bme280 config_section_name , htu21d config_section_name , lm75 config_section_name , \u00e9s temperature_host config_section_name objektumok: temperature : Az \u00e9rz\u00e9kel\u0151t\u0151l utolj\u00e1ra kapott h\u0151m\u00e9rs\u00e9klet. humidity , pressure , gas : Az \u00e9rz\u00e9kel\u0151t\u0151l utolj\u00e1ra kapott \u00e9rt\u00e9kek (csak a bme280, htu21d \u00e9s lm75 \u00e9rz\u00e9kel\u0151k eset\u00e9ben). temperature_fan \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a temperature_fan some_name objektumokban \u00e9rhet\u0151k el: temperature : Az \u00e9rz\u00e9kel\u0151t\u0151l utolj\u00e1ra kapott h\u0151m\u00e9rs\u00e9klet. target : A ventil\u00e1tor c\u00e9lh\u0151m\u00e9rs\u00e9klete. temperature_sensor \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a temperature_sensor some_name objektumokban \u00e9rhet\u0151k el: temperature : Az \u00e9rz\u00e9kel\u0151t\u0151l utolj\u00e1ra kapott h\u0151m\u00e9rs\u00e9klet. measured_min_temp , measured_max_temp : Az \u00e9rz\u00e9kel\u0151 \u00e1ltal a Klipper gazdag\u00e9p szoftver utols\u00f3 \u00fajraind\u00edt\u00e1sa \u00f3ta m\u00e9rt legalacsonyabb \u00e9s legmagasabb h\u0151m\u00e9rs\u00e9klet. tmc motorvez\u00e9rl\u0151k \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a TMC l\u00e9ptet\u0151 motorvez\u00e9rl\u0151k objektumban \u00e9rhet\u0151k el (pl. [tmc2208 stepper_x] ): mcu_phase_offset : A mikrokontroller l\u00e9ptet\u0151 poz\u00edci\u00f3ja, amely megfelel a meghajt\u00f3 \"nulla\" f\u00e1zis\u00e1nak. Ez a mez\u0151 lehet nulla, ha a f\u00e1ziseltol\u00e1s nem ismert. phase_offset_position : A vezet\u0151 \"nulladik\" f\u00e1zis\u00e1nak megfelel\u0151 \"parancsolt poz\u00edci\u00f3\". Ez a mez\u0151 lehet nulla, ha a f\u00e1ziseltol\u00e1s nem ismert. drv_status : A legut\u00f3bbi motorvez\u00e9rl\u0151 \u00e1llapotlek\u00e9rdez\u00e9s eredm\u00e9nyei. (Csak a nem nulla mez\u0151k ker\u00fclnek jelent\u00e9sre.) Ez a mez\u0151 nulla lesz, ha a motorvez\u00e9rl\u0151 nincs enged\u00e9lyezve (\u00e9s \u00edgy nem ker\u00fcl rendszeresen lek\u00e9rdez\u00e9sre). run_current : Az aktu\u00e1lisan be\u00e1ll\u00edtott m\u0171k\u00f6d\u00e9si \u00e1ram. hold_current : Az aktu\u00e1lisan be\u00e1ll\u00edtott tart\u00f3\u00e1ram. toolhead \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a toolhead objektumban \u00e9rhet\u0151k el (ez az objektum mindig el\u00e9rhet\u0151): position : A nyomtat\u00f3fej utols\u00f3 parancsolt poz\u00edci\u00f3ja a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1ta rendszerhez k\u00e9pest. Lehet\u0151s\u00e9g van ennek a poz\u00edci\u00f3nak az X, Y, Z \u00e9s az E, komponens\u00e9hez hozz\u00e1f\u00e9rni (pl. position.x ). extruder : A jelenleg akt\u00edv extruder neve. P\u00e9ld\u00e1ul egy makr\u00f3ban haszn\u00e1lhatjuk a printer[printer.toolhead.extruder].target parancsot, hogy megkapjuk az aktu\u00e1lis extruder c\u00e9lh\u0151m\u00e9rs\u00e9klet\u00e9t. homed_axes : Az aktu\u00e1lisan \"homed\" \u00e1llapotban l\u00e9v\u0151nek tekintett cartesian tengelyek. Ez egy karakterl\u00e1nc, amely egy vagy t\u00f6bb \"X\", \"Y\", \"Z\" \u00e9rt\u00e9ket tartalmaz. axis_minimum , axis_maximum : A tengely mozg\u00e1s\u00e1nak hat\u00e1rai (mm) a kezd\u0151pont felv\u00e9tel ut\u00e1n. Lehet\u0151s\u00e9g van e hat\u00e1r\u00e9rt\u00e9k X, Y, Z \u00f6sszetev\u0151inek el\u00e9r\u00e9s\u00e9re (pl. axis_minimum.x , axis_maximum.z ). A Delta nyomtat\u00f3k eset\u00e9ben a cone_start_z a maxim\u00e1lis sugarakn\u00e1l m\u00e9rt maxim\u00e1lis Z magass\u00e1g ( printer.toolhead.cone_start_z ). max_velocity , max_accel , max_accel_to_decel , square_corner_velocity : Az aktu\u00e1lisan \u00e9rv\u00e9nyben l\u00e9v\u0151 nyomtat\u00e1si korl\u00e1tok. Ez elt\u00e9rhet a konfigur\u00e1ci\u00f3s f\u00e1jl be\u00e1ll\u00edt\u00e1sait\u00f3l, ha a SET_VELOCITY_LIMIT (vagy M204 ) parancs megv\u00e1ltoztatja azokat haszn\u00e1lat k\u00f6zben. stalls : Az \u00f6sszes alkalom sz\u00e1ma (az utols\u00f3 \u00fajraind\u00edt\u00e1s \u00f3ta), amikor a nyomtat\u00f3t sz\u00fcneteltetni kellett, mert a nyomtat\u00f3fej gyorsabban mozgott, mint ah\u00e1ny mozdulatot a G-k\u00f3d bemenetr\u0151l be lehetett olvasni. dual_carriage \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a dual_carriage alatt \u00e9rhet\u0151ek el egy hybrid_corexy vagy hybrid_corexz g\u00e9p eset\u00e9ben mode : Az aktu\u00e1lis \u00fczemm\u00f3d. A lehets\u00e9ges \u00e9rt\u00e9kek: \"FULL_CONTROL\" active_carriage : Az aktu\u00e1lis akt\u00edv kocsi. Lehets\u00e9ges \u00e9rt\u00e9kek: \"CARRIAGE_0\", \"CARRIAGE_1\" virtual_sdcard \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a virtual_sdcard objektumban \u00e9rhet\u0151k el: is_active : True \u00e9rt\u00e9ket ad, ha a f\u00e1jlb\u00f3l val\u00f3 nyomtat\u00e1s akt\u00edv. progressz : A nyomtat\u00e1s aktu\u00e1lis el\u0151rehalad\u00e1s\u00e1nak becsl\u00e9se (a f\u00e1jlm\u00e9ret \u00e9s a f\u00e1jl poz\u00edci\u00f3ja alapj\u00e1n). file_path : Az aktu\u00e1lisan bet\u00f6lt\u00f6tt f\u00e1jl teljes el\u00e9r\u00e9si \u00fatja. file_position : Az akt\u00edv nyomtat\u00e1s aktu\u00e1lis poz\u00edci\u00f3ja (b\u00e1jtokban). file_size : Az aktu\u00e1lisan bet\u00f6lt\u00f6tt f\u00e1jl m\u00e9rete (b\u00e1jtokban). webhooks \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a webhooks objektumban \u00e9rhet\u0151k el (ez az objektum mindig el\u00e9rhet\u0151): state : A Klipper aktu\u00e1lis \u00e1llapot\u00e1t jelz\u0151 karakterl\u00e1ncot adja vissza. A lehets\u00e9ges \u00e9rt\u00e9kek: \"ready\", \"startup\", \"shutdown\", \"error\". state_message : Egy ember \u00e1ltal olvashat\u00f3 karakterl\u00e1nc, amely tov\u00e1bbi kontextust ad az aktu\u00e1lis Klipper \u00e1llapotr\u00f3l. z_thermal_adjust \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a z_thermal_adjust parancsal \u00e9rhet\u0151k el (ez a parancs akkor \u00e9rhet\u0151 el, ha a z_thermal_adjust defini\u00e1lva van). enabled : True \u00e9rt\u00e9ket ad vissza, ha a be\u00e1ll\u00edt\u00e1s enged\u00e9lyezve van. temperature : A meghat\u00e1rozott \u00e9rz\u00e9kel\u0151 aktu\u00e1lis (sim\u00edtott) h\u0151m\u00e9rs\u00e9klete. [\u00b0C] measured_min_temp : Minim\u00e1lis m\u00e9rt h\u0151m\u00e9rs\u00e9klet. [\u00b0C] measured_max_temp : Maxim\u00e1lis m\u00e9rt h\u0151m\u00e9rs\u00e9klet. [\u00b0C] current_z_adjust : Utols\u00f3 sz\u00e1m\u00edtott Z-be\u00e1ll\u00edt\u00e1s [mm]. z_adjust_ref_temperature : A Z kisz\u00e1m\u00edt\u00e1s\u00e1hoz haszn\u00e1lt aktu\u00e1lis referencia-h\u0151m\u00e9rs\u00e9klet current_z_adjust [\u00b0C]. z_tilt \u00b6 A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a z_tilt objektumban \u00e9rhet\u0151k el (ez az objektum akkor \u00e9rhet\u0151 el, ha a z_tilt defini\u00e1lva van): applied : True, ha a Z v\u00e9g\u00e1ll\u00e1s kiegyenl\u00edt\u00e9si folyamat lefutott \u00e9s sikeresen befejez\u0151d\u00f6tt.","title":"\u00c1llapot referencia"},{"location":"Status_Reference.html#allapot-referencia","text":"Ez a dokumentum a Klipper makr\u00f3k , megjelen\u00edt\u00e9si mez\u0151k \u00e9s az API Szerver seg\u00edts\u00e9g\u00e9vel el\u00e9rhet\u0151 nyomtat\u00f3 \u00e1llapotinform\u00e1ci\u00f3k referenci\u00e1ja. Az ebben a dokumentumban szerepl\u0151 mez\u0151k v\u00e1ltozhatnak. Ha egy attrib\u00fatumot haszn\u00e1lsz, a Klipper szoftver friss\u00edt\u00e9sekor mindenk\u00e9ppen n\u00e9zd \u00e1t a Konfigur\u00e1ci\u00f3s v\u00e1ltoz\u00e1sok dokumentumot .","title":"\u00c1llapot referencia"},{"location":"Status_Reference.html#angle","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k az angle some_name objektumban \u00e9rhet\u0151k el: temperature : A tle5012b m\u00e1gneses hall-\u00e9rz\u00e9kel\u0151 utols\u00f3 h\u0151m\u00e9rs\u00e9kleti \u00e9rt\u00e9ke (Celsiusban). Ez az \u00e9rt\u00e9k csak akkor \u00e9rhet\u0151 el, ha a sz\u00f6g\u00e9rz\u00e9kel\u0151 egy tle5012b chip, \u00e9s ha a m\u00e9r\u00e9sek folyamatban vannak (ellenkez\u0151 esetben None ).","title":"angle"},{"location":"Status_Reference.html#bed_mesh","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a bed_mesh objektumban \u00e9rhet\u0151k el: profile_name , mesh_min , mesh_max , probed_matrix , mesh_matrix : Az aktu\u00e1lisan akt\u00edv bed_mesh-re vonatkoz\u00f3 inform\u00e1ci\u00f3k. profiles : A BED_MESH_PROFILE haszn\u00e1lat\u00e1val be\u00e1ll\u00edtott, jelenleg defini\u00e1lt profilok halmaza.","title":"bed_mesh"},{"location":"Status_Reference.html#bed_screws","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a Config_Reference.md#bed_screws objektumban tal\u00e1lhat\u00f3k: is_active : True \u00e9rt\u00e9ket ad vissza, ha a t\u00e1rgyasztal csavarok be\u00e1ll\u00edt\u00e1si eszk\u00f6ze jelenleg akt\u00edv. state : A t\u00e1rgyasztal csavarok be\u00e1ll\u00edt\u00e1si szersz\u00e1m\u00e1nak \u00e1llapota. A k\u00f6vetkez\u0151 karakterl\u00e1ncok egyike: \"adjust\", \"fine\". current_screw : Az aktu\u00e1lisan be\u00e1ll\u00edtott csavar indexe. accepted_screws : Az elfogadott csavarok sz\u00e1ma.","title":"bed_screws"},{"location":"Status_Reference.html#configfile","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a configfile objektumban tal\u00e1lhat\u00f3k (ez az objektum mindig el\u00e9rhet\u0151): settings.<section>.<option> : Visszaadja az adott konfigur\u00e1ci\u00f3s f\u00e1jl be\u00e1ll\u00edt\u00e1s\u00e1t (vagy alap\u00e9rtelmezett \u00e9rt\u00e9k\u00e9t) a szoftver utols\u00f3 ind\u00edt\u00e1sa vagy \u00fajraind\u00edt\u00e1sa sor\u00e1n. (A haszn\u00e1lat k\u00f6zben megv\u00e1ltoztatott be\u00e1ll\u00edt\u00e1sok nem jelennek meg itt.) config.<section>.<option> : Visszaadja az adott nyers konfigur\u00e1ci\u00f3s f\u00e1jl be\u00e1ll\u00edt\u00e1s\u00e1t, ahogyan azt a Klipper a legut\u00f3bbi szoftverind\u00edt\u00e1s vagy \u00fajraind\u00edt\u00e1s sor\u00e1n beolvasta. (A m\u0171k\u00f6d\u00e9s k\u00f6zben megv\u00e1ltoztatott be\u00e1ll\u00edt\u00e1sok nem jelennek meg itt.) Minden \u00e9rt\u00e9ket stringk\u00e9nt ad vissza. save_config_pending : True \u00e9rt\u00e9ket ad, ha vannak olyan friss\u00edt\u00e9sek, amelyeket a SAVE_CONFIG parancs a lemezen is meg\u0151rizhet. save_config_pending_items : Tartalmazza azokat a szakaszokat \u00e9s opci\u00f3kat, amelyeket megv\u00e1ltoztattak, \u00e9s amelyeket egy SAVE_CONFIG elmenthetne. figyelmeztet\u00e9sek : A konfigur\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sokkal kapcsolatos figyelmeztet\u00e9sek list\u00e1ja. A lista minden egyes bejegyz\u00e9se egy sz\u00f3t\u00e1r lesz, amely tartalmaz egy type \u00e9s egy message mez\u0151t (mindkett\u0151 karakterl\u00e1nc). A figyelmeztet\u00e9s t\u00edpus\u00e1t\u00f3l f\u00fcgg\u0151en tov\u00e1bbi mez\u0151k is rendelkez\u00e9sre \u00e1llhatnak.","title":"configfile"},{"location":"Status_Reference.html#display_status","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a display_status objektumban \u00e9rhet\u0151k el (ez az objektum automatikusan el\u00e9rhet\u0151, ha a kijelz\u0151 konfigur\u00e1ci\u00f3s szakasz defini\u00e1lva van): progress : A legut\u00f3bbi M73 G-k\u00f3d parancs progress \u00e9rt\u00e9ke (vagy virtual_sdcard.progress , ha nem \u00e9rkezett legut\u00f3bbi M73 ). message : Az utols\u00f3 M117 G-k\u00f3d\u00fa parancsban szerepl\u0151 \u00fczenet.","title":"display_status"},{"location":"Status_Reference.html#endstop_phase","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k az endstop_phase objektumban \u00e9rhet\u0151k el: last_home.<stepper name>.phase : A l\u00e9ptet\u0151motor f\u00e1zisa az utols\u00f3 kezd\u0151pont felv\u00e9teli k\u00eds\u00e9rlet v\u00e9g\u00e9n. last_home.<stepper name>.phases : A l\u00e9ptet\u0151motoron rendelkez\u00e9sre \u00e1ll\u00f3 f\u00e1zisok sz\u00e1ma. last_home.<stepper name>.mcu_position : A l\u00e9ptet\u0151motor poz\u00edci\u00f3ja (ahogyan azt a mikrokontroller k\u00f6veti) a legut\u00f3bbi kezd\u0151pont felv\u00e9teli k\u00eds\u00e9rlet v\u00e9g\u00e9n. A poz\u00edci\u00f3 az el\u0151remen\u0151 ir\u00e1nyban megtett l\u00e9p\u00e9sek sz\u00e1ma m\u00ednusz a mikrokontroller utols\u00f3 \u00fajraind\u00edt\u00e1sa \u00f3ta visszafel\u00e9 megtett l\u00e9p\u00e9sek sz\u00e1m\u00e1val.","title":"endstop_phase"},{"location":"Status_Reference.html#exclude_object","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k az exclude_object objektumban tal\u00e1lhat\u00f3k: objektumok : Az EXCLUDE_OBJECT_DEFINE parancs \u00e1ltal megadott ismert objektumok t\u00f6mbje. Ez ugyanaz az inform\u00e1ci\u00f3, amelyet az EXCLUDE_OBJECT VERBOSE=1 parancs szolg\u00e1ltat. A center \u00e9s polygon mez\u0151k csak akkor lesznek jelen, ha az eredeti EXCLUDE_OBJECT_DEFINE parancsban szerepelnek.\u00cdme egy JSON-minta: [ { \"polygon\": [ [ 156.25, 146.2511675 ], [ 156.25, 153.7488325 ], [ 163.75, 153.7488325 ], [ 163.75, 146.2511675 ] ], \"name\": \"CYLINDER_2_STL_ID_2_COPY_0\", \"center\": [ 160, 150 ] }, { \"polygon\": [ [ 146.25, 146.2511675 ], [ 146.25, 153.7488325 ], [ 153.75, 153.7488325 ], [ 153.75, 146.2511675 ] ], \"name\": \"CYLINDER_2_STL_ID_1_COPY_0\", \"center\": [ 150, 150 ] } ] excluded_objects : A kiz\u00e1rt objektumok neveit felsorol\u00f3 karakterl\u00e1ncok t\u00f6mbje. current_object : Az aktu\u00e1lisan nyomtatott objektum neve.","title":"exclude_object"},{"location":"Status_Reference.html#extruder_stepper","text":"Az al\u00e1bbi inform\u00e1ci\u00f3k az extruder_stepper objektumok (valamint az extruder objektumok) eset\u00e9ben \u00e1llnak rendelkez\u00e9sre: pressure_advance : Az aktu\u00e1lis nyom\u00e1s el\u0151tol\u00e1s \u00e9rt\u00e9k. smooth_time : Az aktu\u00e1lis nyom\u00e1s el\u0151tol\u00e1s\u00e1nak sim\u00edt\u00e1si ideje.","title":"extruder_stepper"},{"location":"Status_Reference.html#fan","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a ventil\u00e1tor , heater_fan some_name \u00e9s controller_fan some_name objektumokban \u00e9rhet\u0151k el: speed : A ventil\u00e1tor fordulatsz\u00e1ma lebeg\u0151\u00e9rt\u00e9kben 0.0 \u00e9s 1.0 k\u00f6z\u00f6tt. rpm : A ventil\u00e1tor m\u00e9rt fordulatsz\u00e1ma percenk\u00e9nti fordulatsz\u00e1mban, ha a ventil\u00e1tor rendelkezik tachometer_pin kimenettel.","title":"fan"},{"location":"Status_Reference.html#filament_switch_sensor","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a filament_switch_sensor some_name objektumokban \u00e9rhet\u0151k el: enabled : True \u00e9rt\u00e9ket ad vissza, ha a kapcsol\u00f3 enged\u00e9lyezve van. filament_detected : True \u00e9rt\u00e9ket ad ha az \u00e9rz\u00e9kel\u0151 kioldott \u00e1llapotban van.","title":"filament_switch_sensor"},{"location":"Status_Reference.html#filament_motion_sensor","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a filament_motion_sensor some_name objektumokban \u00e9rhet\u0151k el: enabled : True \u00e9rt\u00e9ket ad, ha a mozg\u00e1s\u00e9rz\u00e9kel\u0151 enged\u00e9lyezve van. filament_detected : True \u00e9rt\u00e9ket ad ha az \u00e9rz\u00e9kel\u0151 kioldott \u00e1llapotban van.","title":"filament_motion_sensor"},{"location":"Status_Reference.html#firmware_retraction","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a firmware_retraction objektumban tal\u00e1lhat\u00f3k: retract_length , retract_speed , unretract_extra_length , unretract_speed : A firmware_retraction modul aktu\u00e1lis be\u00e1ll\u00edt\u00e1sai. Ezek a be\u00e1ll\u00edt\u00e1sok elt\u00e9rhetnek a konfigur\u00e1ci\u00f3s \u00e1llom\u00e1nyt\u00f3l, ha a SET_RETRACTION parancs megv\u00e1ltoztatja \u0151ket.","title":"firmware_retraction"},{"location":"Status_Reference.html#gcode_macro","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a gcode_macro some_name objektumokban \u00e9rhet\u0151k el: <variable> : Egy gcode_macro v\u00e1ltoz\u00f3 aktu\u00e1lis \u00e9rt\u00e9ke.","title":"gcode_macro"},{"location":"Status_Reference.html#gcode_move","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a gcode_move objektumban \u00e9rhet\u0151k el (ez az objektum mindig el\u00e9rhet\u0151): gcode_position : A nyomtat\u00f3fej aktu\u00e1lis poz\u00edci\u00f3ja az aktu\u00e1lis G-k\u00f3d orig\u00f3hoz k\u00e9pest. Vagyis olyan poz\u00edci\u00f3k, amelyeket k\u00f6zvetlen\u00fcl egy G1 parancsnak k\u00fcldhet\u00fcnk. Lehet\u0151s\u00e9g van e poz\u00edci\u00f3 X, Y, Z \u00e9s az E, komponens\u00e9nek el\u00e9r\u00e9s\u00e9re (pl. gcode_position.x ). position : A nyomtat\u00f3fej utols\u00f3 kiadott poz\u00edci\u00f3ja a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1ta rendszerrel. Lehet\u0151s\u00e9g van ennek a poz\u00edci\u00f3nak az X, Y, Z \u00e9s az E, komponens\u00e9hez hozz\u00e1f\u00e9rni (pl. position.x ). homing_origin : A G-k\u00f3d koordin\u00e1ta rendszer orig\u00f3ja (a config f\u00e1jlban megadott koordin\u00e1ta rendszerhez k\u00e9pest), amelyet a G28 parancs ut\u00e1n haszn\u00e1lni kell. A SET_GCODE_OFFSET parancs megv\u00e1ltoztathatja ezt a poz\u00edci\u00f3t. Lehet\u0151s\u00e9g van ennek a poz\u00edci\u00f3nak az X, Y \u00e9s Z komponens\u00e9hez hozz\u00e1f\u00e9rni (pl. homing_origin.x ). speed : Az utols\u00f3, G1 parancsban be\u00e1ll\u00edtott sebess\u00e9g (mm/sec-ben). speed_factor : Az M220 parancs \u00e1ltal be\u00e1ll\u00edtott \"sebess\u00e9gt\u00e9nyez\u0151 fel\u00fclb\u00edr\u00e1l\u00e1sa\". Ez egy lebeg\u0151pontos \u00e9rt\u00e9k, \u00edgy 1.0 azt jelenti, hogy nincs fel\u00fclb\u00edr\u00e1lat, \u00e9s p\u00e9ld\u00e1ul a 2.0 megdupl\u00e1zza a k\u00e9rt sebess\u00e9get. extrude_factor : Az M221 parancs \u00e1ltal be\u00e1ll\u00edtott \"extrude factor override\". Ez egy lebeg\u0151pontos \u00e9rt\u00e9k, \u00edgy 1.0 azt jelenti, hogy nincs fel\u00fclb\u00edr\u00e1lat, \u00e9s p\u00e9ld\u00e1ul a 2.0 megdupl\u00e1zza a k\u00e9rt extrud\u00e1l\u00e1sokat. absolute_coordinates : True \u00e9rt\u00e9ket ad, ha a G90 abszol\u00fat koordin\u00e1ta m\u00f3dban van, vagy False \u00e9rt\u00e9ket, ha a G91 relat\u00edv m\u00f3dban van. absolute_extrude : True \u00e9rt\u00e9ket ad, ha az M82 abszol\u00fat extrude m\u00f3dban van, vagy False \u00e9rt\u00e9ket, ha az M83 relat\u00edv m\u00f3dban van.","title":"gcode_move"},{"location":"Status_Reference.html#hall_filament_width_sensor","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a hall_filament_width_sensor objektumban \u00e9rhet\u0151k el: is_active : True \u00e9rt\u00e9ket ad, ha az \u00e9rz\u00e9kel\u0151 jelenleg akt\u00edv. Diameter : Az \u00e9rz\u00e9kel\u0151 utols\u00f3 leolvas\u00e1sa mm-ben. Raw : Az \u00e9rz\u00e9kel\u0151 utols\u00f3 nyers ADC-olvas\u00e1sa.","title":"hall_filament_width_sensor"},{"location":"Status_Reference.html#heater","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k az olyan f\u0171t\u0151elemekhez \u00e1llnak rendelkez\u00e9sre, mint az extruder , heater_bed \u00e9s heater_generic : temperature : Az adott f\u0171t\u0151berendez\u00e9s legut\u00f3bb jelentett h\u0151m\u00e9rs\u00e9klete (Celsiusban, lebeg\u0151\u00e9rt\u00e9kben). target : Az adott f\u0171t\u0151berendez\u00e9s aktu\u00e1lis c\u00e9lh\u0151m\u00e9rs\u00e9klete (Celsiusban, lebeg\u0151\u00e9rt\u00e9kben). power : A f\u0171t\u0151testhez tartoz\u00f3 PWM-t\u0171 utols\u00f3 \u00e9rt\u00e9ke (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9k). can_extrude : Ha az extruder tud extrud\u00e1lni ( min_extrude_temp hat\u00e1rozza meg), csak az extruder eset\u00e9ben el\u00e9rhet\u0151","title":"heater"},{"location":"Status_Reference.html#heaters","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a heaters objektumban \u00e9rhet\u0151k el (ez az objektum akkor \u00e9rhet\u0151 el, ha b\u00e1rmilyen f\u0171t\u0151berendez\u00e9s defini\u00e1lva van): available_heaters : Visszaadja az \u00f6sszes jelenleg el\u00e9rhet\u0151 f\u0171t\u0151berendez\u00e9s list\u00e1j\u00e1t a teljes config szekci\u00f3 nev\u00e9vel, pl. [\"extruder\", \"heater_bed\", \"heater_generic my_custom_heater\"] . available_sensors : Visszaadja az \u00f6sszes jelenleg el\u00e9rhet\u0151 h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151 list\u00e1j\u00e1t a teljes config szekci\u00f3 nev\u00e9vel, pl. [\"extruder\", \"heater_bed\", \"heater_generic my_custom_heater\", \"temperature_sensor electronics_temp\"] .","title":"heaters"},{"location":"Status_Reference.html#idle_timeout","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k az idle_timeout objektumban \u00e9rhet\u0151k el (ez az objektum mindig el\u00e9rhet\u0151): state : A nyomtat\u00f3 aktu\u00e1lis \u00e1llapota, amelyet az idle_timeout modul k\u00f6vet. A k\u00f6vetkez\u0151 karakterl\u00e1ncok egyike: \"Idle\", \"Printing\", \"Ready\". printing_time : Az az id\u0151 (m\u00e1sodpercben), am\u00edg a nyomtat\u00f3 \"nyomtat\u00e1s\" \u00e1llapotban volt (ahogyan azt az idle_timeout modul k\u00f6veti).","title":"idle_timeout"},{"location":"Status_Reference.html#led","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k \u00e1llnak rendelkez\u00e9sre minden egyes [led led_name] , [neopixel led_name eset\u00e9ben, [dotstar led_name] , [pca9533 led_name] , \u00e9s [pca9632 led_name] a nyomtat\u00f3ban meghat\u00e1rozott printer.cfg f\u00e1jlban: color_data : A l\u00e1ncban l\u00e9v\u0151 ledek RGBW \u00e9rt\u00e9keit tartalmaz\u00f3 sz\u00ednlist\u00e1k list\u00e1ja. Minden \u00e9rt\u00e9ket 0,0 \u00e9s 1,0 k\u00f6z\u00f6tti lebeg\u0151\u00e9rt\u00e9kben \u00e1br\u00e1zolunk. Minden sz\u00ednlista 4 elemet tartalmaz (piros, z\u00f6ld, k\u00e9k, feh\u00e9r), m\u00e9g akkor is, ha az alatta l\u00e9v\u0151 LED kevesebb sz\u00edncsatorn\u00e1t t\u00e1mogat. P\u00e9ld\u00e1ul a l\u00e1nc m\u00e1sodik neopixel\u00e9nek k\u00e9k \u00e9rt\u00e9ke (a sz\u00ednlista 3. eleme) a printer[\"neopixel <config_name>\"].color_data[1][2] c\u00edmen \u00e9rhet\u0151 el.","title":"led"},{"location":"Status_Reference.html#manual_probe","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a manual_probe objektumban tal\u00e1lhat\u00f3k: is_active : True \u00e9rt\u00e9ket ad vissza, ha egy k\u00e9zi m\u00e9r\u00e9si seg\u00e9dszkript jelenleg akt\u00edv. z_position : A f\u00fav\u00f3ka aktu\u00e1lis magass\u00e1ga (ahogyan azt a nyomtat\u00f3 jelenleg \u00e9rtelmezi). z_position_lower : Az utols\u00f3 m\u00e9r\u00e9s k\u00eds\u00e9rlet \u00e9ppen az aktu\u00e1lis magass\u00e1gn\u00e1l alacsonyabb. z_position_upper : Az utols\u00f3 m\u00e9r\u00e9s k\u00eds\u00e9rlet \u00e9ppen nagyobb, mint az aktu\u00e1lis magass\u00e1g.","title":"manual_probe"},{"location":"Status_Reference.html#mcu","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k az mcu \u00e9s mcu some_name objektumokban \u00e9rhet\u0151k el: mcu_version : A mikrokontroller \u00e1ltal jelentett Klipper k\u00f3d verzi\u00f3ja. mcu_build_versions : A mikrokontroller k\u00f3dj\u00e1nak gener\u00e1l\u00e1s\u00e1hoz haszn\u00e1lt \u00e9p\u00edt\u0151eszk\u00f6z\u00f6kre vonatkoz\u00f3 inform\u00e1ci\u00f3k (a mikrokontroller \u00e1ltal jelentett m\u00f3don). mcu_constants.<constant_name> : A mikrokontroller \u00e1ltal jelentett ford\u00edt\u00e1si idej\u0171 konstansok. A rendelkez\u00e9sre \u00e1ll\u00f3 konstansok mikrokontroller architekt\u00far\u00e1nk\u00e9nt \u00e9s k\u00f3drev\u00edzi\u00f3nk\u00e9nt elt\u00e9r\u0151ek lehetnek. last_stats.<statistics_name> : Statisztikai inform\u00e1ci\u00f3k a mikrokontroller kapcsolatr\u00f3l.","title":"mcu"},{"location":"Status_Reference.html#motion_report","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a motion_report objektumban \u00e9rhet\u0151k el (ez az objektum automatikusan el\u00e9rhet\u0151, ha b\u00e1rmilyen stepper konfigur\u00e1ci\u00f3s szakasz defini\u00e1lva van): live_position : A nyomtat\u00f3fej k\u00e9rt poz\u00edci\u00f3ja az aktu\u00e1lis id\u0151re interpol\u00e1lva. live_velocity : A nyomtat\u00f3fej k\u00e9rt sebess\u00e9ge (mm/sec-ben) az aktu\u00e1lis id\u0151pontban. live_extruder_velocity : A k\u00e9rt extruder sebess\u00e9g (mm/sec-ben) az aktu\u00e1lis id\u0151pontban.","title":"motion_report"},{"location":"Status_Reference.html#output_pin","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a output_pin some_name objektumokban \u00e9rhet\u0151k el: value : A SET_PIN paranccsal be\u00e1ll\u00edtott \"value\" a t\u0171 \u00e9rt\u00e9ke.","title":"output_pin"},{"location":"Status_Reference.html#palette2","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a palette2 objektumban \u00e9rhet\u0151k el: ping : Az utols\u00f3 jelentett Palette 2 ping \u00f6sszege sz\u00e1zal\u00e9kban. remaining_load_length : A Palette 2 nyomtat\u00e1s ind\u00edt\u00e1sakor ez lesz a nyomtat\u00f3fejbe t\u00f6ltend\u0151 nyomtat\u00f3sz\u00e1l mennyis\u00e9ge. is_splicing : True, ha a Palette 2 nyomtat\u00f3sz\u00e1lat adagol.","title":"palette2"},{"location":"Status_Reference.html#pause_resume","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a pause_resume objektumban \u00e9rhet\u0151k el: is_paused : True, ha egy PAUSE parancsot hajtottak v\u00e9gre a megfelel\u0151 RESUME parancs n\u00e9lk\u00fcl.","title":"pause_resume"},{"location":"Status_Reference.html#print_stats","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a print_stats objektumban \u00e9rhet\u0151k el (ez az objektum automatikusan el\u00e9rhet\u0151, ha a virtual_sdcard config szakasz defini\u00e1lva van): filename , total_duration , print_duration , filament_used , state , message : Becs\u00fclt inform\u00e1ci\u00f3 az aktu\u00e1lis nyomtat\u00e1sr\u00f3l, ha egy virtual_sdcard nyomtat\u00e1s akt\u00edv. info.total_layer : Az utols\u00f3 SET_PRINT_STATS_INFO TOTAL_LAYER=<value> G-k\u00f3d\u00fa parancs. info.current_layer : Az aktu\u00e1lis r\u00e9teg \u00e9rt\u00e9ke az utols\u00f3 SET_PRINT_STATS_INFO CURRENT_LAYER=<value> G-k\u00f3d\u00fa parancs.","title":"print_stats"},{"location":"Status_Reference.html#probe","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a szonda objektumban \u00e9rhet\u0151k el (ez az objektum akkor is el\u00e9rhet\u0151, ha egy bltouch konfigur\u00e1ci\u00f3s szakasz van defini\u00e1lva): last_query : True \u00e9rt\u00e9ket ad vissza, ha a szond\u00e1t az utols\u00f3 QUERY_PROBE parancs sor\u00e1n \"triggered\" -k\u00e9nt jelentett\u00e9k. Megjegyz\u00e9s: ha ezt egy makr\u00f3ban haszn\u00e1ljuk, a sablon b\u0151v\u00edt\u00e9si sorrendje miatt a QUERY_PROBE parancsot akkor ezt a hivatkoz\u00e1st tartalmaz\u00f3 makr\u00f3 el\u0151tt kell lefuttatni. last_z_result : Az utols\u00f3 PROBE parancs Z eredm\u00e9ny\u00e9nek \u00e9rt\u00e9k\u00e9t adja vissza. Figyelem, ha ezt egy makr\u00f3ban haszn\u00e1ljuk, a sablon b\u0151v\u00edt\u00e9si sorrendje miatt a PROBE (vagy hasonl\u00f3) parancsot akkor ezt a hivatkoz\u00e1st tartalmaz\u00f3 makr\u00f3 el\u0151tt kell lefuttatni.","title":"probe"},{"location":"Status_Reference.html#quad_gantry_level","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a quad_gantry_level objektumban \u00e9rhet\u0151k el (ez az objektum akkor \u00e9rhet\u0151 el, ha a quad_gantry_level defini\u00e1lva van): applied : True, ha a port\u00e1l szintez\u00e9si folyamata lefutott \u00e9s sikeresen befejez\u0151d\u00f6tt.","title":"quad_gantry_level"},{"location":"Status_Reference.html#query_endstops","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a query_endstops objektumban \u00e9rhet\u0151k el (ez az objektum akkor \u00e9rhet\u0151 el, ha b\u00e1rmilyen v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 defini\u00e1lva van): last_query[\"<endstop>\"] : True \u00e9rt\u00e9ket ad, ha az adott v\u00e9g\u00e1ll\u00e1skapcsol\u00f3t az utols\u00f3 QUERY_ENDSTOP parancs sor\u00e1n \"triggered\" -k\u00e9nt jelentett\u00e9k. Megjegyz\u00e9s: ha ezt egy makr\u00f3ban haszn\u00e1ljuk, a sablon b\u0151v\u00edt\u00e9si sorrendje miatt a QUERY_ENDSTOP parancsot akkor ezt a hivatkoz\u00e1st tartalmaz\u00f3 makr\u00f3 el\u0151tt kell lefuttatni.","title":"query_endstops"},{"location":"Status_Reference.html#servo","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a szerv\u00f3 some_name objektumokban \u00e9rhet\u0151k el: printer[\"servo <config_name>\"].value : A szerv\u00f3hoz tartoz\u00f3 PWM t\u0171 utols\u00f3 be\u00e1ll\u00edt\u00e1sa (0,0 \u00e9s 1,0 k\u00f6z\u00f6tti \u00e9rt\u00e9k).","title":"servo"},{"location":"Status_Reference.html#system_stats","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a system_stats objektumban \u00e9rhet\u0151k el (ez az objektum mindig el\u00e9rhet\u0151): sysload , cputime , memavail : Inform\u00e1ci\u00f3 a gazdag\u00e9p oper\u00e1ci\u00f3s rendszer\u00e9r\u0151l \u00e9s a folyamatok terhel\u00e9s\u00e9r\u0151l.","title":"system_stats"},{"location":"Status_Reference.html#homerseklet-erzekelok","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a k\u00f6vetkez\u0151 dokumentumban tal\u00e1lhat\u00f3k bme280 config_section_name , htu21d config_section_name , lm75 config_section_name , \u00e9s temperature_host config_section_name objektumok: temperature : Az \u00e9rz\u00e9kel\u0151t\u0151l utolj\u00e1ra kapott h\u0151m\u00e9rs\u00e9klet. humidity , pressure , gas : Az \u00e9rz\u00e9kel\u0151t\u0151l utolj\u00e1ra kapott \u00e9rt\u00e9kek (csak a bme280, htu21d \u00e9s lm75 \u00e9rz\u00e9kel\u0151k eset\u00e9ben).","title":"h\u0151m\u00e9rs\u00e9klet \u00e9rz\u00e9kel\u0151k"},{"location":"Status_Reference.html#temperature_fan","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a temperature_fan some_name objektumokban \u00e9rhet\u0151k el: temperature : Az \u00e9rz\u00e9kel\u0151t\u0151l utolj\u00e1ra kapott h\u0151m\u00e9rs\u00e9klet. target : A ventil\u00e1tor c\u00e9lh\u0151m\u00e9rs\u00e9klete.","title":"temperature_fan"},{"location":"Status_Reference.html#temperature_sensor","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a temperature_sensor some_name objektumokban \u00e9rhet\u0151k el: temperature : Az \u00e9rz\u00e9kel\u0151t\u0151l utolj\u00e1ra kapott h\u0151m\u00e9rs\u00e9klet. measured_min_temp , measured_max_temp : Az \u00e9rz\u00e9kel\u0151 \u00e1ltal a Klipper gazdag\u00e9p szoftver utols\u00f3 \u00fajraind\u00edt\u00e1sa \u00f3ta m\u00e9rt legalacsonyabb \u00e9s legmagasabb h\u0151m\u00e9rs\u00e9klet.","title":"temperature_sensor"},{"location":"Status_Reference.html#tmc-motorvezerlok","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a TMC l\u00e9ptet\u0151 motorvez\u00e9rl\u0151k objektumban \u00e9rhet\u0151k el (pl. [tmc2208 stepper_x] ): mcu_phase_offset : A mikrokontroller l\u00e9ptet\u0151 poz\u00edci\u00f3ja, amely megfelel a meghajt\u00f3 \"nulla\" f\u00e1zis\u00e1nak. Ez a mez\u0151 lehet nulla, ha a f\u00e1ziseltol\u00e1s nem ismert. phase_offset_position : A vezet\u0151 \"nulladik\" f\u00e1zis\u00e1nak megfelel\u0151 \"parancsolt poz\u00edci\u00f3\". Ez a mez\u0151 lehet nulla, ha a f\u00e1ziseltol\u00e1s nem ismert. drv_status : A legut\u00f3bbi motorvez\u00e9rl\u0151 \u00e1llapotlek\u00e9rdez\u00e9s eredm\u00e9nyei. (Csak a nem nulla mez\u0151k ker\u00fclnek jelent\u00e9sre.) Ez a mez\u0151 nulla lesz, ha a motorvez\u00e9rl\u0151 nincs enged\u00e9lyezve (\u00e9s \u00edgy nem ker\u00fcl rendszeresen lek\u00e9rdez\u00e9sre). run_current : Az aktu\u00e1lisan be\u00e1ll\u00edtott m\u0171k\u00f6d\u00e9si \u00e1ram. hold_current : Az aktu\u00e1lisan be\u00e1ll\u00edtott tart\u00f3\u00e1ram.","title":"tmc motorvez\u00e9rl\u0151k"},{"location":"Status_Reference.html#toolhead","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a toolhead objektumban \u00e9rhet\u0151k el (ez az objektum mindig el\u00e9rhet\u0151): position : A nyomtat\u00f3fej utols\u00f3 parancsolt poz\u00edci\u00f3ja a konfigur\u00e1ci\u00f3s f\u00e1jlban megadott koordin\u00e1ta rendszerhez k\u00e9pest. Lehet\u0151s\u00e9g van ennek a poz\u00edci\u00f3nak az X, Y, Z \u00e9s az E, komponens\u00e9hez hozz\u00e1f\u00e9rni (pl. position.x ). extruder : A jelenleg akt\u00edv extruder neve. P\u00e9ld\u00e1ul egy makr\u00f3ban haszn\u00e1lhatjuk a printer[printer.toolhead.extruder].target parancsot, hogy megkapjuk az aktu\u00e1lis extruder c\u00e9lh\u0151m\u00e9rs\u00e9klet\u00e9t. homed_axes : Az aktu\u00e1lisan \"homed\" \u00e1llapotban l\u00e9v\u0151nek tekintett cartesian tengelyek. Ez egy karakterl\u00e1nc, amely egy vagy t\u00f6bb \"X\", \"Y\", \"Z\" \u00e9rt\u00e9ket tartalmaz. axis_minimum , axis_maximum : A tengely mozg\u00e1s\u00e1nak hat\u00e1rai (mm) a kezd\u0151pont felv\u00e9tel ut\u00e1n. Lehet\u0151s\u00e9g van e hat\u00e1r\u00e9rt\u00e9k X, Y, Z \u00f6sszetev\u0151inek el\u00e9r\u00e9s\u00e9re (pl. axis_minimum.x , axis_maximum.z ). A Delta nyomtat\u00f3k eset\u00e9ben a cone_start_z a maxim\u00e1lis sugarakn\u00e1l m\u00e9rt maxim\u00e1lis Z magass\u00e1g ( printer.toolhead.cone_start_z ). max_velocity , max_accel , max_accel_to_decel , square_corner_velocity : Az aktu\u00e1lisan \u00e9rv\u00e9nyben l\u00e9v\u0151 nyomtat\u00e1si korl\u00e1tok. Ez elt\u00e9rhet a konfigur\u00e1ci\u00f3s f\u00e1jl be\u00e1ll\u00edt\u00e1sait\u00f3l, ha a SET_VELOCITY_LIMIT (vagy M204 ) parancs megv\u00e1ltoztatja azokat haszn\u00e1lat k\u00f6zben. stalls : Az \u00f6sszes alkalom sz\u00e1ma (az utols\u00f3 \u00fajraind\u00edt\u00e1s \u00f3ta), amikor a nyomtat\u00f3t sz\u00fcneteltetni kellett, mert a nyomtat\u00f3fej gyorsabban mozgott, mint ah\u00e1ny mozdulatot a G-k\u00f3d bemenetr\u0151l be lehetett olvasni.","title":"toolhead"},{"location":"Status_Reference.html#dual_carriage","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a dual_carriage alatt \u00e9rhet\u0151ek el egy hybrid_corexy vagy hybrid_corexz g\u00e9p eset\u00e9ben mode : Az aktu\u00e1lis \u00fczemm\u00f3d. A lehets\u00e9ges \u00e9rt\u00e9kek: \"FULL_CONTROL\" active_carriage : Az aktu\u00e1lis akt\u00edv kocsi. Lehets\u00e9ges \u00e9rt\u00e9kek: \"CARRIAGE_0\", \"CARRIAGE_1\"","title":"dual_carriage"},{"location":"Status_Reference.html#virtual_sdcard","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a virtual_sdcard objektumban \u00e9rhet\u0151k el: is_active : True \u00e9rt\u00e9ket ad, ha a f\u00e1jlb\u00f3l val\u00f3 nyomtat\u00e1s akt\u00edv. progressz : A nyomtat\u00e1s aktu\u00e1lis el\u0151rehalad\u00e1s\u00e1nak becsl\u00e9se (a f\u00e1jlm\u00e9ret \u00e9s a f\u00e1jl poz\u00edci\u00f3ja alapj\u00e1n). file_path : Az aktu\u00e1lisan bet\u00f6lt\u00f6tt f\u00e1jl teljes el\u00e9r\u00e9si \u00fatja. file_position : Az akt\u00edv nyomtat\u00e1s aktu\u00e1lis poz\u00edci\u00f3ja (b\u00e1jtokban). file_size : Az aktu\u00e1lisan bet\u00f6lt\u00f6tt f\u00e1jl m\u00e9rete (b\u00e1jtokban).","title":"virtual_sdcard"},{"location":"Status_Reference.html#webhooks","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a webhooks objektumban \u00e9rhet\u0151k el (ez az objektum mindig el\u00e9rhet\u0151): state : A Klipper aktu\u00e1lis \u00e1llapot\u00e1t jelz\u0151 karakterl\u00e1ncot adja vissza. A lehets\u00e9ges \u00e9rt\u00e9kek: \"ready\", \"startup\", \"shutdown\", \"error\". state_message : Egy ember \u00e1ltal olvashat\u00f3 karakterl\u00e1nc, amely tov\u00e1bbi kontextust ad az aktu\u00e1lis Klipper \u00e1llapotr\u00f3l.","title":"webhooks"},{"location":"Status_Reference.html#z_thermal_adjust","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a z_thermal_adjust parancsal \u00e9rhet\u0151k el (ez a parancs akkor \u00e9rhet\u0151 el, ha a z_thermal_adjust defini\u00e1lva van). enabled : True \u00e9rt\u00e9ket ad vissza, ha a be\u00e1ll\u00edt\u00e1s enged\u00e9lyezve van. temperature : A meghat\u00e1rozott \u00e9rz\u00e9kel\u0151 aktu\u00e1lis (sim\u00edtott) h\u0151m\u00e9rs\u00e9klete. [\u00b0C] measured_min_temp : Minim\u00e1lis m\u00e9rt h\u0151m\u00e9rs\u00e9klet. [\u00b0C] measured_max_temp : Maxim\u00e1lis m\u00e9rt h\u0151m\u00e9rs\u00e9klet. [\u00b0C] current_z_adjust : Utols\u00f3 sz\u00e1m\u00edtott Z-be\u00e1ll\u00edt\u00e1s [mm]. z_adjust_ref_temperature : A Z kisz\u00e1m\u00edt\u00e1s\u00e1hoz haszn\u00e1lt aktu\u00e1lis referencia-h\u0151m\u00e9rs\u00e9klet current_z_adjust [\u00b0C].","title":"z_thermal_adjust"},{"location":"Status_Reference.html#z_tilt","text":"A k\u00f6vetkez\u0151 inform\u00e1ci\u00f3k a z_tilt objektumban \u00e9rhet\u0151k el (ez az objektum akkor \u00e9rhet\u0151 el, ha a z_tilt defini\u00e1lva van): applied : True, ha a Z v\u00e9g\u00e1ll\u00e1s kiegyenl\u00edt\u00e9si folyamat lefutott \u00e9s sikeresen befejez\u0151d\u00f6tt.","title":"z_tilt"},{"location":"TMC_Drivers.html","text":"TMC meghajt\u00f3k \u00b6 Ez a dokumentum a Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3k SPI/UART \u00fczemm\u00f3dban t\u00f6rt\u00e9n\u0151 Klipper-ben val\u00f3 haszn\u00e1lat\u00e1r\u00f3l ny\u00fajt inform\u00e1ci\u00f3t. A Klipper a Trinamic motorvez\u00e9rl\u0151ket is tudja haszn\u00e1lni \"standalone m\u00f3dban\". Ha azonban a motorvez\u00e9rl\u0151k ebben az \u00fczemm\u00f3dban vannak, nincs sz\u00fcks\u00e9g speci\u00e1lis Klipper konfigur\u00e1ci\u00f3ra, \u00e9s az ebben a dokumentumban t\u00e1rgyalt fejlett Klipper funkci\u00f3k nem \u00e1llnak rendelkez\u00e9sre. Ezen a dokumentumon k\u00edv\u00fcl felt\u00e9tlen\u00fcl tekintsd \u00e1t a TMC motorvez\u00e9rl\u0151 konfigur\u00e1ci\u00f3s hivatkoz\u00e1st . Motor\u00e1ram hangol\u00e1sa \u00b6 A nagyobb meghajt\u00f3\u00e1ram n\u00f6veli a pozicion\u00e1l\u00e1si pontoss\u00e1got \u00e9s a nyomat\u00e9kot. A nagyobb \u00e1ram azonban n\u00f6veli a l\u00e9ptet\u0151motor \u00e9s a motorvez\u00e9rl\u0151 \u00e1ltal termelt h\u0151t is. Ha a motorvez\u00e9rl\u0151 t\u00fals\u00e1gosan felmelegszik, akkor kikapcsolja mag\u00e1t, \u00e9s a Klipper hib\u00e1t jelez. Ha a l\u00e9ptet\u0151motor t\u00fals\u00e1gosan felmelegszik, vesz\u00edt a nyomat\u00e9kb\u00f3l \u00e9s a poz\u00edcion\u00e1l\u00e1si pontoss\u00e1gb\u00f3l. (Ha nagyon felforr\u00f3sodik, akkor a hozz\u00e1\u00e9r\u0151 vagy a k\u00f6zel\u00e9ben l\u00e9v\u0151 m\u0171anyag alkatr\u00e9szeket is megolvaszthatja.) \u00c1ltal\u00e1nos hangol\u00e1si tippk\u00e9nt, el\u0151nyben r\u00e9szes\u00edtheti a magasabb \u00e1ram\u00e9rt\u00e9keket, am\u00edg a l\u00e9ptet\u0151motor nem melegszik t\u00fals\u00e1gosan, \u00e9s a motorvez\u00e9rl\u0151 nem jelez figyelmeztet\u00e9seket vagy hib\u00e1kat. \u00c1ltal\u00e1noss\u00e1gban elmondhat\u00f3, hogy a l\u00e9ptet\u0151motor nem baj, ha melegszik, de nem szabad annyira felforr\u00f3sodnia, hogy \u00e9rint\u00e9se f\u00e1jdalmas legyen. Ink\u00e1bb ne adj meg hold_current \u00e9rt\u00e9ket \u00b6 Ha be\u00e1ll\u00edtunk egy hold_current \u00e9rt\u00e9ket, akkor a TMC motorvez\u00e9rl\u0151 cs\u00f6kkentheti a l\u00e9ptet\u0151motor \u00e1ram\u00e1t, amikor azt \u00e9rz\u00e9keli, hogy a l\u00e9ptet\u0151 nem mozog. A motor\u00e1ram megv\u00e1ltoztat\u00e1sa azonban \u00f6nmag\u00e1ban is motormozg\u00e1st eredm\u00e9nyezhet. Ez bek\u00f6vetkezhet a \"r\u00f6gz\u00edt\u0151 er\u0151k\" miatt a l\u00e9ptet\u0151motoron bel\u00fcl (a rotorban l\u00e9v\u0151 \u00e1lland\u00f3 m\u00e1gnes az \u00e1ll\u00f3r\u00e9szben l\u00e9v\u0151 vasfogak fel\u00e9 h\u00faz) vagy a tengelykocsira hat\u00f3 k\u00fcls\u0151 er\u0151k miatt. A legt\u00f6bb l\u00e9ptet\u0151motornak a norm\u00e1l nyomtat\u00e1s sor\u00e1n nem jelent jelent\u0151s el\u0151nyt az \u00e1ram cs\u00f6kkent\u00e9se, mivel kev\u00e9s nyomtat\u00e1si m\u0171velet hagyja a l\u00e9ptet\u0151motort el\u00e9g hossz\u00fa ideig \u00fcresen ahhoz, hogy aktiv\u00e1lja a hold_current funkci\u00f3t. \u00c9s nem val\u00f3sz\u00edn\u0171, hogy az ember finom nyomtat\u00e1si m\u0171veleteket akarna bevezetni abba a n\u00e9h\u00e1ny nyomtat\u00e1si mozdulatba, amely el\u00e9g hossz\u00fa ideig hagyja \u00fcresen a l\u00e9ptet\u0151motort. Ha cs\u00f6kkenteni szeretn\u00e9d a motorok \u00e1ram\u00e1t a nyomtat\u00e1si ind\u00edt\u00e1si rutinok sor\u00e1n, akkor fontold meg a SET_TMC_CURRENT parancsok kiad\u00e1s\u00e1t egy START_PRINT makr\u00f3ban , hogy be\u00e1ll\u00edtsd az \u00e1ramot a norm\u00e1l nyomtat\u00e1si mozg\u00e1sok el\u0151tt \u00e9s ut\u00e1n. N\u00e9h\u00e1ny olyan, dedik\u00e1lt Z-motorral rendelkez\u0151 nyomtat\u00f3, amely a norm\u00e1l nyomtat\u00e1si m\u0171veletek sor\u00e1n (nincs bed_mesh, nincs bed_tilt, nincs Z skew_correction, nincs \"vase mode\" nyomtat\u00e1s stb.) \u00fcresj\u00e1ratban van, azt tapasztalhatja, hogy a Z motorok h\u0171v\u00f6sebbek a hold_current be\u00e1ll\u00edt\u00e1ssal. Ha ezt haszn\u00e1lod, akkor mindenk\u00e9ppen vedd figyelembe ezt a fajta parancs n\u00e9lk\u00fcli Z tengelymozg\u00e1st t\u00e1rgyasztal kiegyenl\u00edt\u00e9se, t\u00e1rgyasztal szintez\u00e9se, szondakalibr\u00e1l\u00e1s \u00e9s hasonl\u00f3k sor\u00e1n. A driver_TPOWERDOWN \u00e9s driver_IHOLDDELAY \u00e9rt\u00e9keket is ennek megfelel\u0151en kell kalibr\u00e1lni. Ha bizonytalan vagy, ink\u00e1bb ne add meg a hold_current \u00e9rt\u00e9ket. \"SpreadCycle\" vs \"StealthChop\" m\u00f3d be\u00e1ll\u00edt\u00e1sa \u00b6 Alap\u00e9rtelmez\u00e9s szerint a Klipper a TMC motorvez\u00e9rl\u0151ket \"SpreadCycle\" \u00fczemm\u00f3dba helyezi. Ha a motorvez\u00e9rl\u0151 t\u00e1mogatja a \"StealthChop\" m\u00f3dot, akkor azt a stealthchop_threshold hozz\u00e1ad\u00e1s\u00e1val lehet enged\u00e9lyezni: 999999 a TMC konfigur\u00e1ci\u00f3s szakasz\u00e1hoz. \u00c1ltal\u00e1ban a SpreadCycle \u00fczemm\u00f3d nagyobb nyomat\u00e9kot \u00e9s nagyobb helymeghat\u00e1roz\u00e1si pontoss\u00e1got biztos\u00edt, mint a StealthChop \u00fczemm\u00f3d. A StealthChop \u00fczemm\u00f3d azonban n\u00e9h\u00e1ny nyomtat\u00f3n\u00e1l l\u00e9nyegesen kisebb hallhat\u00f3 zajjal j\u00e1rhat. Az \u00fczemm\u00f3dok \u00f6sszehasonl\u00edt\u00f3 tesztjei azt mutatt\u00e1k, hogy a StealthChop \u00fczemm\u00f3d haszn\u00e1lata eset\u00e9n a \"poz\u00edci\u00f3s k\u00e9s\u00e9s\" az \u00e1lland\u00f3 sebess\u00e9g\u0171 mozg\u00e1sok sor\u00e1n a teljes l\u00e9p\u00e9s 75%-al n\u0151tt (p\u00e9ld\u00e1ul egy 40 mm-es forgat\u00e1si t\u00e1vols\u00e1ggal \u00e9s 200 l\u00e9p\u00e9s/fordulatsz\u00e1mmal rendelkez\u0151 nyomtat\u00f3n\u00e1l az \u00e1lland\u00f3 sebess\u00e9g\u0171 mozg\u00e1sok poz\u00edci\u00f3elt\u00e9r\u00e9se ~0,150 mm-rel n\u0151tt). Ez a \"k\u00e9sedelem a k\u00e9rt poz\u00edci\u00f3 el\u00e9r\u00e9s\u00e9ben\" azonban nem biztos, hogy jelent\u0151s nyomtat\u00e1si hibak\u00e9nt jelentkezik, \u00e9s lehet, hogy jobban tetszik a StealthChop m\u00f3d csendesebb m\u0171k\u00f6d\u00e9se. Javasoljuk, hogy mindig a \"SpreadCycle\" m\u00f3dot haszn\u00e1ld (nem megadva a stealthchop_threshold \u00e9rt\u00e9ket) vagy mindig a \"StealthChop\" m\u00f3dot (a stealthchop_threshold 999999-re \u00e1ll\u00edtva). Sajnos a meghajt\u00f3k gyakran rossz \u00e9s zavaros eredm\u00e9nyeket produk\u00e1lnak, ha a m\u00f3d v\u00e1ltozik, mik\u00f6zben a motor nem \u00e1ll\u00f3 \u00e1llapotban van. A TMC interpol\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sa kis poz\u00edci\u00f3elt\u00e9r\u00e9st eredm\u00e9nyez \u00b6 A TMC motorvez\u00e9rl\u0151 interpolate be\u00e1ll\u00edt\u00e1sa cs\u00f6kkentheti a nyomtat\u00f3 mozg\u00e1s\u00e1nak hallhat\u00f3 zaj\u00e1t, de ennek \u00e1ra egy kis rendszerszint\u0171 helyzeti hiba. Ez a rendszerszint\u0171 helyzeti hiba abb\u00f3l ad\u00f3dik, hogy a motorvez\u00e9rl\u0151 k\u00e9sve hajtja v\u00e9gre a Klipper \u00e1ltal k\u00fcld\u00f6tt \"l\u00e9p\u00e9seket\". \u00c1lland\u00f3 sebess\u00e9g\u0171 mozg\u00e1sok sor\u00e1n ez a k\u00e9sleltet\u00e9s k\u00f6zel f\u00e9l konfigur\u00e1lt mikrol\u00e9p\u00e9snyi poz\u00edci\u00f3hib\u00e1t eredm\u00e9nyez (pontosabban a hiba f\u00e9l mikrol\u00e9p\u00e9snyi t\u00e1vols\u00e1g m\u00ednusz a teljes l\u00e9p\u00e9s t\u00e1vols\u00e1g 512-ed r\u00e9sze). P\u00e9ld\u00e1ul egy 40 mm-es rotation_distance, 200 steps_per_rotation \u00e9s 16 microstep tengelyen az \u00e1lland\u00f3 sebess\u00e9g\u0171 mozg\u00e1sok sor\u00e1n bevezetett rendszerszint\u0171 hiba ~0,006 mm. A legjobb helymeghat\u00e1roz\u00e1si pontoss\u00e1g \u00e9rdek\u00e9ben fontold meg a SpreadCycle m\u00f3d haszn\u00e1lat\u00e1t \u00e9s az interpol\u00e1ci\u00f3 kikapcsol\u00e1s\u00e1t (\u00e1ll\u00edtsd be az interpolate: False \u00e9rt\u00e9ket a TMC motorvez\u00e9rl\u0151 konfigur\u00e1ci\u00f3j\u00e1ban). Ilyen konfigur\u00e1ci\u00f3 eset\u00e9n n\u00f6velhetj\u00fck a microstep be\u00e1ll\u00edt\u00e1st a l\u00e9ptet\u0151 mozg\u00e1sa k\u00f6zbeni hallhat\u00f3 zajok cs\u00f6kkent\u00e9se \u00e9rdek\u00e9ben. \u00c1ltal\u00e1ban a 64 vagy 128 mikrol\u00e9p\u00e9s be\u00e1ll\u00edt\u00e1sa az interpol\u00e1ci\u00f3hoz hasonl\u00f3 hallhat\u00f3 zajjal j\u00e1r, \u00e9s mindezt an\u00e9lk\u00fcl, hogy rendszerszint\u0171 helyzeti hib\u00e1t vezetne be. Ha a StealthChop m\u00f3dot haszn\u00e1lod, akkor az interpol\u00e1ci\u00f3b\u00f3l ered\u0151 helyzeti pontatlans\u00e1g kicsi a StealthChop m\u00f3db\u00f3l ered\u0151 helyzeti pontatlans\u00e1ghoz k\u00e9pest. Ez\u00e9rt az interpol\u00e1ci\u00f3 hangol\u00e1sa nem tekinthet\u0151 hasznosnak StealthChop \u00fczemm\u00f3dban, \u00e9s az interpol\u00e1ci\u00f3 alap\u00e9rtelmezett \u00e1llapotban hagyhat\u00f3. \u00c9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont \u00b6 Az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel lehet\u0151v\u00e9 teszi a tengely kezd\u0151pont felv\u00e9tel\u00e9t fizikai v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 n\u00e9lk\u00fcl. Ehelyett a tengelyen l\u00e9v\u0151 kocsit a mechanikus v\u00e9g\u00e1ll\u00e1sba mozgatja, \u00edgy a l\u00e9ptet\u0151motor l\u00e9p\u00e9seket vesz\u00edt. A l\u00e9ptet\u0151 meghajt\u00f3 \u00e9rz\u00e9keli az elveszett l\u00e9p\u00e9seket, \u00e9s ezt egy t\u0171 csatlakoz\u00e1son jelzi a vez\u00e9rl\u0151 MCU-nak (Klipper). Ezt az inform\u00e1ci\u00f3t a Klipper a tengely v\u00e9g\u00e1ll\u00e1sak\u00e9nt haszn\u00e1lhatja. Ez az \u00fatmutat\u00f3 az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel be\u00e1ll\u00edt\u00e1s\u00e1t mutatja be a (cartesian) nyomtat\u00f3 X tengely\u00e9re. Ez azonban ugyan\u00edgy m\u0171k\u00f6dik az \u00f6sszes t\u00f6bbi tengely eset\u00e9ben is (amelyek v\u00e9g\u00e1ll\u00e1st ig\u00e9nyelnek). Egyszerre csak egy tengelyre kell be\u00e1ll\u00edtani \u00e9s hangolni. Korl\u00e1toz\u00e1sok \u00b6 Gy\u0151z\u0151dj meg arr\u00f3l, hogy a mechanikus alkatr\u00e9szek k\u00e9pesek kezelni a tengely hat\u00e1r\u00e9rt\u00e9k\u00e9nek ism\u00e9telt \u00fctk\u00f6z\u00e9s\u00e9b\u0151l ered\u0151 terhel\u00e9st. K\u00fcl\u00f6n\u00f6sen a sz\u00edjak nagy er\u0151t fejthetnek ki. A Z tengelynek a f\u00fav\u00f3k\u00e1val a t\u00e1rgyasztalba val\u00f3 \u00fctk\u00f6z\u00e9ssel t\u00f6rt\u00e9n\u0151 szintez\u00e9se nem biztos, hogy j\u00f3 \u00f6tlet. A legjobb eredm\u00e9ny \u00e9rdek\u00e9ben ellen\u0151rizd, hogy a tengelyen l\u00e9v\u0151 kocsi szil\u00e1rdan \u00e9rintkezik-e a tengelyhat\u00e1rral. Tov\u00e1bb\u00e1, az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel nem biztos, hogy el\u00e9g pontos a nyomtat\u00f3d sz\u00e1m\u00e1ra. M\u00edg az X \u00e9s Y tengelyek kezd\u0151pont felv\u00e9tele egy cartesian g\u00e9pen j\u00f3l m\u0171k\u00f6dhet, a Z tengely kezd\u0151pont felv\u00e9tele \u00e1ltal\u00e1ban nem el\u00e9g pontos, \u00e9s k\u00f6vetkezetlen els\u0151 r\u00e9tegmagass\u00e1got eredm\u00e9nyezhet. A delta nyomtat\u00f3 \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tele a pontatlans\u00e1g miatt nem tan\u00e1csos. Tov\u00e1bb\u00e1 a l\u00e9ptet\u0151 meghajt\u00f3 elakad\u00e1s\u00e9rz\u00e9kel\u00e9se a motor mechanikai terhel\u00e9s\u00e9t\u0151l, a motor\u00e1ramt\u00f3l \u00e9s a motor h\u0151m\u00e9rs\u00e9klet\u00e9t\u0151l (tekercsellen\u00e1ll\u00e1st\u00f3l) is f\u00fcgg. Az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel k\u00f6zepes motorsebess\u00e9gn\u00e9l m\u0171k\u00f6dik a legjobban. Nagyon lass\u00fa fordulatsz\u00e1mokn\u00e1l (kevesebb mint 10 fordulat/perc) a motor nem termel jelent\u0151s ellen\u00e1ramot, \u00e9s a TMC nem k\u00e9pes megb\u00edzhat\u00f3an \u00e9rz\u00e9kelni a motor le\u00e1ll\u00e1s\u00e1t. Tov\u00e1bb\u00e1, nagyon nagy fordulatsz\u00e1mon a motor ellen-EMF-je megk\u00f6zel\u00edti a motor t\u00e1pfesz\u00fclts\u00e9g\u00e9t, \u00edgy a TMC m\u00e1r nem k\u00e9pes \u00e9rz\u00e9kelni a le\u00e1ll\u00e1st. Javasoljuk, hogy tekintsd meg az adott TMC-k adatlapj\u00e1t. Ott tov\u00e1bbi r\u00e9szleteket is tal\u00e1lhat ennek a be\u00e1ll\u00edt\u00e1snak a korl\u00e1tair\u00f3l. El\u0151felt\u00e9telek \u00b6 N\u00e9h\u00e1ny el\u0151felt\u00e9tel sz\u00fcks\u00e9ges az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel haszn\u00e1lat\u00e1hoz: StallGuard-k\u00e9pes TMC motorvez\u00e9rl\u0151 (TMC2130, TMC2209, TMC2660 vagy TMC5160). A TMC-motorvez\u00e9rl\u0151 SPI/UART interf\u00e9sze mikrokontrollerrel \u00f6sszek\u00f6tve (a stand-alone \u00fczemm\u00f3d nem m\u0171k\u00f6dik). A TMC motorvez\u00e9rl\u0151 megfelel\u0151 \"DIAG\" vagy \"SG_TST\" t\u0171je a mikrovez\u00e9rl\u0151h\u00f6z csatlakoztatva. A konfigur\u00e1ci\u00f3 ellen\u0151rz\u00e9sek dokumentumban szerepl\u0151 l\u00e9p\u00e9seket kell lefuttatni annak meger\u0151s\u00edt\u00e9s\u00e9re, hogy a l\u00e9ptet\u0151motorok megfelel\u0151en vannak konfigur\u00e1lva \u00e9s m\u0171k\u00f6dnek. Hangol\u00e1s \u00b6 Az itt le\u00edrt elj\u00e1r\u00e1s hat f\u0151 l\u00e9p\u00e9sb\u0151l \u00e1ll: V\u00e1laszd ki a kezd\u0151pont felv\u00e9teli sebess\u00e9get. Konfigur\u00e1ld a printer.cfg f\u00e1jlt, hogy enged\u00e9lyezd az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telt. Keresse meg a legnagyobb \u00e9rz\u00e9kenys\u00e9g\u0171 StallGuard be\u00e1ll\u00edt\u00e1st, amely sikeresen felveszi a kezd\u0151pontot. Keresse meg a legalacsonyabb \u00e9rz\u00e9kenys\u00e9g\u0171 StallGuard-be\u00e1ll\u00edt\u00e1st, amely egyetlen \u00e9rint\u00e9ssel sikeres meg\u00e1ll\u00e1st jelez. Friss\u00edtse a printer.cfg \u00e1llom\u00e1nyt a k\u00edv\u00e1nt StallGuard be\u00e1ll\u00edt\u00e1ssal. Hozzon l\u00e9tre vagy friss\u00edtse a printer.cfg makr\u00f3kat, hogy k\u00e9zn\u00e9l legyenek. V\u00e1laszd ki a kezd\u0151pont felv\u00e9teli sebess\u00e9get \u00b6 A kezd\u0151pont felv\u00e9teli sebess\u00e9g fontos v\u00e1laszt\u00e1s az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel sor\u00e1n. Aj\u00e1nlott lass\u00fa \u00e1ll\u00edt\u00e1si sebess\u00e9get haszn\u00e1lni, hogy a kocsi ne gyakoroljon t\u00falzott er\u0151t a keretre, amikor a s\u00edn v\u00e9g\u00e9vel \u00e9rintkezik. A TMC motorvez\u00e9rl\u0151k azonban nagyon lass\u00fa sebess\u00e9gekn\u00e9l nem k\u00e9pesek megb\u00edzhat\u00f3an \u00e9rz\u00e9kelni az elakad\u00e1st. Az ind\u00edt\u00e1si sebess\u00e9gnek j\u00f3 kiindul\u00f3pontja az, hogy a l\u00e9ptet\u0151motor k\u00e9t m\u00e1sodpercenk\u00e9nt egy teljes fordulatot v\u00e9gezzen. Sok tengely eset\u00e9ben ez a rotation_distance osztva kett\u0151vel. P\u00e9ld\u00e1ul: [stepper_x] rotation_distance: 40 homing_speed: 20 ... A printer.cfg be\u00e1ll\u00edt\u00e1sa \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telhez \u00b6 A homing_retract_dist be\u00e1ll\u00edt\u00e1st null\u00e1ra kell \u00e1ll\u00edtani a stepper_x config szakaszban a m\u00e1sodik kezd\u0151pont felv\u00e9teli mozdulat letilt\u00e1s\u00e1hoz. A m\u00e1sodik kezd\u0151pont felv\u00e9teli k\u00eds\u00e9rlet nem ad hozz\u00e1adott \u00e9rt\u00e9ket az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telhez, nem fog megb\u00edzhat\u00f3an m\u0171k\u00f6dni, \u00e9s \u00f6sszezavarja a hangol\u00e1si folyamatot. Gy\u0151z\u0151dj meg r\u00f3la, hogy a konfigur\u00e1ci\u00f3 TMC motorvez\u00e9rl\u0151 r\u00e9szleg\u00e9ben nincs megadva hold_current be\u00e1ll\u00edt\u00e1s. (Ha hold_current haszn\u00e1latban van, akkor a kapcsolat l\u00e9trej\u00f6tte ut\u00e1n a motor meg\u00e1ll, mik\u00f6zben a kocsi a s\u00edn v\u00e9g\u00e9hez van nyomva, \u00e9s az \u00e1ram cs\u00f6kkent\u00e9se ebben a helyzetben a kocsi mozg\u00e1s\u00e1t okozhatja. Ez rossz teljes\u00edtm\u00e9nyt eredm\u00e9nyez, \u00e9s \u00f6sszezavarja a hangol\u00e1si folyamatot.) Sz\u00fcks\u00e9ges a szenzor n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9teli t\u0171k konfigur\u00e1l\u00e1sa \u00e9s a kezdeti \"StallGuard\" be\u00e1ll\u00edt\u00e1sok konfigur\u00e1l\u00e1sa. Egy TMC2209 p\u00e9ldakonfigur\u00e1ci\u00f3 egy X tengelyhez \u00edgy n\u00e9zhet ki: [tmc2209 stepper_x] diag_pin: ^PA1 # A TMC DIAG t\u0171h\u00f6z csatlakoztatott MCU t\u0171re \u00e1ll\u00edtva. driver_SGTHRS: 255 # 255 a leg\u00e9rz\u00e9kenyebb \u00e9rt\u00e9k, 0 a legkev\u00e9sb\u00e9 \u00e9rz\u00e9keny. ... [stepper_x] endstop_pin: tmc2209_stepper_x:virtual_endstop homing_retract_dist: 0 ... Egy TMC2130 vagy TMC5160 konfigur\u00e1ci\u00f3 p\u00e9ld\u00e1ul \u00edgy n\u00e9zhet ki: [tmc2130 stepper_x] diag1_pin: ^!PA1 # A TMC DIAG1 t\u0171h\u00f6z csatlakoztatott t\u0171 (vagy haszn\u00e1ld a diag0_pin / DIAG0 t\u0171t) driver_SGT: -64 # -64 a leg\u00e9rz\u00e9kenyebb \u00e9rt\u00e9k, 63 a legkev\u00e9sb\u00e9 \u00e9rz\u00e9keny. ... [stepper_x] endstop_pin: tmc2130_stepper_x:virtual_endstop homing_retract_dist: 0 ... Egy TMC2660 konfigur\u00e1ci\u00f3 \u00edgy n\u00e9zhet ki: [tmc2660 stepper_x] driver_SGT: -64 # -64 a leg\u00e9rz\u00e9kenyebb \u00e9rt\u00e9k, 63 a legkev\u00e9sb\u00e9 \u00e9rz\u00e9keny. ... [stepper_x] endstop_pin: ^PA1 # A TMC SG_TST t\u0171j\u00e9hez csatlakoztatott t\u0171. homing_retract_dist: 0 ... A fenti p\u00e9ld\u00e1k csak az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telre jellemz\u0151 be\u00e1ll\u00edt\u00e1sokat mutatj\u00e1k. Az \u00f6sszes el\u00e9rhet\u0151 be\u00e1ll\u00edt\u00e1s\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s referencia dokumentumot. Keresse meg a legmagasabb \u00e9rz\u00e9kenys\u00e9get, amely sikeresen jelzi a kezd\u0151pontot \u00b6 Helyezd a kocsit a s\u00edn k\u00f6zep\u00e9hez k\u00f6zel. A SET_TMC_FIELD paranccsal \u00e1ll\u00edtsd be a legnagyobb \u00e9rz\u00e9kenys\u00e9get. A TMC2209 eset\u00e9ben: SET_TMC_FIELD STEPPER=stepper_x FIELD=SGTHRS VALUE=255 A TMC2130, TMC5160 \u00e9s a TMC2660 modellekhez: SET_TMC_FIELD STEPPER=stepper_x FIELD=sgt VALUE=-64 Ezut\u00e1n adj ki egy G28 X0 parancsot, \u00e9s ellen\u0151rizd, hogy a tengely egy\u00e1ltal\u00e1n nem mozog, vagy gyorsan meg\u00e1ll. Ha a tengely nem \u00e1ll meg, akkor adj ki egy M112 parancsot a nyomtat\u00f3 meg\u00e1ll\u00edt\u00e1s\u00e1ra. Valami nem stimmel a diag/sg_tst pin k\u00e1belez\u00e9s\u00e9vel vagy konfigur\u00e1ci\u00f3j\u00e1val, \u00e9s a folytat\u00e1s el\u0151tt ki kell jav\u00edtani. Ezut\u00e1n folyamatosan cs\u00f6kkentse a VALUE be\u00e1ll\u00edt\u00e1s \u00e9rz\u00e9kenys\u00e9g\u00e9t, \u00e9s futtassa le \u00fajra a SET_TMC_FIELD G28 X0 parancsokat, hogy megtal\u00e1lja a legnagyobb \u00e9rz\u00e9kenys\u00e9get, amely a kocsi sikeres mozg\u00e1s\u00e1t eredm\u00e9nyezi a v\u00e9g\u00e1ll\u00e1sig \u00e9s a meg\u00e1ll\u00e1sig. (A TMC2209 motorvez\u00e9rl\u0151k eset\u00e9ben ez az SGTHRS cs\u00f6kkent\u00e9se, m\u00e1s vez\u00e9rl\u0151k eset\u00e9ben az sgt n\u00f6vel\u00e9se lesz.) \u00dcgyelj arra, hogy minden k\u00eds\u00e9rletet \u00fagy kezdj, hogy a kocsi a s\u00edn k\u00f6zep\u00e9hez k\u00f6zel legyen (ha sz\u00fcks\u00e9ges, adj ki egy M84 parancsot, majd k\u00e9zzel mozgasd a kocsit k\u00f6z\u00e9p\u00e1ll\u00e1sba). Meg kell tal\u00e1lni a legnagyobb \u00e9rz\u00e9kenys\u00e9get, amely megb\u00edzhat\u00f3an jelzi a v\u00e9g\u00e1ll\u00e1st (a nagyobb \u00e9rz\u00e9kenys\u00e9g\u0171 be\u00e1ll\u00edt\u00e1sok kicsi vagy semmilyen mozg\u00e1st nem eredm\u00e9nyeznek). Jegyezze fel a kapott \u00e9rt\u00e9ket maximum_sensitivity n\u00e9ven. (Ha a lehet\u0151 legkisebb \u00e9rz\u00e9kenys\u00e9get (SGTHRS=0 vagy sgt=63) kapjuk a kocsi elmozdul\u00e1sa n\u00e9lk\u00fcl, akkor valami nincs rendben a diag/sg_tst t\u0171k bek\u00f6t\u00e9s\u00e9vel vagy konfigur\u00e1ci\u00f3j\u00e1val, \u00e9s a folytat\u00e1s el\u0151tt ki kell jav\u00edtani.) A maximum_sensitivity keres\u00e9sekor k\u00e9nyelmes lehet a k\u00fcl\u00f6nb\u00f6z\u0151 VALUE be\u00e1ll\u00edt\u00e1sokra ugrani (a VALUE param\u00e9ter kett\u00e9oszt\u00e1sa \u00e9rdek\u00e9ben). Ha ezt tessz\u00fck, akkor k\u00e9sz\u00fclj\u00fcnk fel arra, hogy a nyomtat\u00f3 le\u00e1ll\u00edt\u00e1s\u00e1hoz adjunk ki egy M112 parancsot, mivel egy nagyon alacsony \u00e9rz\u00e9kenys\u00e9g\u0171 be\u00e1ll\u00edt\u00e1s miatt a tengely t\u00f6bbsz\u00f6r \"bele\u00fctk\u00f6zhet\" a s\u00edn v\u00e9g\u00e9be. \u00dcgyelj arra, hogy v\u00e1rj n\u00e9h\u00e1ny m\u00e1sodpercet minden egyes v\u00e9g\u00e1ll\u00e1si k\u00eds\u00e9rlet k\u00f6z\u00f6tt. Miut\u00e1n a TMC motorvez\u00e9rl\u0151 \u00e9rz\u00e9keli az elakad\u00e1st, eltarthat egy kis ideig, am\u00edg a bels\u0151 visszajelz\u0151je t\u00f6rl\u0151dik, \u00e9s k\u00e9pes lesz egy \u00fajabb meg\u00e1ll\u00e1st \u00e9rz\u00e9kelni. Ha a hangol\u00e1si tesztek sor\u00e1n a G28 X0 parancs nem mozdul el eg\u00e9szen a tengelyhat\u00e1rig, akkor \u00f3vatosan kell elj\u00e1rni a szab\u00e1lyos mozgat\u00e1si parancsok kiad\u00e1s\u00e1val (pl. G1 ). A Klipper nem fogja helyesen \u00e9rtelmezni a kocsi helyzet\u00e9t, \u00e9s a mozgat\u00e1si parancs nemk\u00edv\u00e1natos \u00e9s zavaros eredm\u00e9nyeket okozhat. Keresse meg a legalacsonyabb \u00e9rz\u00e9kenys\u00e9get, amely egyetlen \u00e9rint\u00e9ssel kezd\u0151ponton van \u00b6 Ha a kapott maximum_sensitivity \u00e9rt\u00e9kkel \u00e1ll\u00edtja be a tengelyt a s\u00edn v\u00e9g\u00e9re, \u00e9s egy \"egyszeri \u00e9rint\u00e9ssel\" \u00e1ll meg, azaz nem szabad, hogy \"kattog\u00f3\" vagy \"csattan\u00f3\" hangot halljon. (Ha a maxim\u00e1lis \u00e9rz\u00e9kenys\u00e9g mellett csattan\u00f3 vagy kattog\u00f3 hang hallatszik, akkor a homing_speed t\u00fal alacsony, a meghajt\u00f3\u00e1ram t\u00fal alacsony, vagy az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel nem j\u00f3 v\u00e1laszt\u00e1s a tengely sz\u00e1m\u00e1ra.) A k\u00f6vetkez\u0151 l\u00e9p\u00e9s az, hogy a kocsit ism\u00e9t a s\u00edn k\u00f6zep\u00e9re mozgatjuk, cs\u00f6kkentj\u00fck az \u00e9rz\u00e9kenys\u00e9get, \u00e9s futtatjuk a SET_TMC_FIELD G28 X0 parancsokat. A c\u00e9l most az, hogy megtal\u00e1ljuk a legkisebb \u00e9rz\u00e9kenys\u00e9get, amely m\u00e9g mindig azt eredm\u00e9nyezi, hogy a kocsi egy \"egyetlen \u00e9rint\u00e9ssel\" sikeresen c\u00e9lba \u00e9r. Vagyis nem \"bumm\" vagy \"csatt\" a s\u00edn v\u00e9g\u00e9nek \u00e9rint\u00e9sekor. Jegyezze meg a tal\u00e1lt \u00e9rt\u00e9ket minimum_sensitivity . Friss\u00edtse a printer.cfg f\u00e1jlt az \u00e9rz\u00e9kenys\u00e9gi \u00e9rt\u00e9kkel \u00b6 A maximum_sensitivity \u00e9s minimum_sensitivity meg\u00e1llap\u00edt\u00e1sa ut\u00e1n sz\u00e1mol\u00f3g\u00e9p seg\u00edts\u00e9g\u00e9vel kapjuk meg az aj\u00e1nlott \u00e9rz\u00e9kenys\u00e9get a minimum_sensitivity + (maximum_sensitivity - minimum_sensitivity)/3 k\u00e9plettel. Az aj\u00e1nlott \u00e9rz\u00e9kenys\u00e9gnek a minim\u00e1lis \u00e9s maxim\u00e1lis \u00e9rt\u00e9kek k\u00f6z\u00f6tti tartom\u00e1nyban kell lennie, de valamivel k\u00f6zelebb a minim\u00e1lis \u00e9rt\u00e9khez. A v\u00e9gs\u0151 \u00e9rt\u00e9ket kerek\u00edtse a legk\u00f6zelebbi eg\u00e9sz \u00e9rt\u00e9kre. A TMC2209 eset\u00e9ben ezt a konfigur\u00e1ci\u00f3ban a driver_SGTHRS , m\u00e1s TMC motorvez\u00e9rl\u0151k eset\u00e9ben a driver_SGT \u00e9rt\u00e9kkel kell be\u00e1ll\u00edtani. Ha a maximum_sensitivity \u00e9s minimum_sensitivity k\u00f6z\u00f6tti tartom\u00e1ny kicsi (pl. 5-n\u00e9l kisebb), akkor ez instabil kezd\u0151pont felv\u00e9telt eredm\u00e9nyezhet. A gyorsabb kezd\u0151pont felv\u00e9teli sebess\u00e9g n\u00f6velheti a hat\u00f3t\u00e1vols\u00e1got \u00e9s stabilabb\u00e1 teheti a m\u0171k\u00f6d\u00e9st. Vedd figyelembe, hogy ha b\u00e1rmilyen v\u00e1ltoz\u00e1s t\u00f6rt\u00e9nik a motorvez\u00e9rl\u0151 \u00e1ram\u00e1ban, az ind\u00edt\u00e1si sebess\u00e9gben vagy a nyomtat\u00f3 hardver\u00e9n, akkor a hangol\u00e1si folyamatot \u00fajra el kell v\u00e9gezni. Makr\u00f3k haszn\u00e1lata a kezd\u0151pont felv\u00e9tel sor\u00e1n \u00b6 Az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel befejez\u00e9se ut\u00e1n a kocsi a s\u00edn v\u00e9g\u00e9hez lesz nyomva, \u00e9s a l\u00e9ptet\u0151 er\u0151t fejt ki a keretre, am\u00edg a kocsi el nem mozdul. J\u00f3 \u00f6tlet egy makr\u00f3t l\u00e9trehozni a tengely kezd\u0151pont felv\u00e9tel\u00e9hez, \u00e9s azonnal elmozd\u00edtani a kocsit a s\u00edn v\u00e9g\u00e9t\u0151l. J\u00f3 \u00f6tlet, ha a makr\u00f3 legal\u00e1bb 2 m\u00e1sodperc sz\u00fcnetet tart az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel elind\u00edt\u00e1sa el\u0151tt (vagy m\u00e1s m\u00f3don biztos\u00edtja, hogy a l\u00e9ptet\u0151n 2 m\u00e1sodpercig nem volt mozg\u00e1s). A k\u00e9sleltet\u00e9s n\u00e9lk\u00fcl lehets\u00e9ges, hogy a meghajt\u00f3 bels\u0151 le\u00e1ll\u00e1si jelz\u0151je m\u00e9g mindig be van \u00e1ll\u00edtva egy kor\u00e1bbi mozg\u00e1s miatt. Az is hasznos lehet, ha ez a makr\u00f3 be\u00e1ll\u00edtja a meghajt\u00f3 \u00e1ram\u00e1t a kezd\u0151pont felv\u00e9tel el\u0151tt, \u00e9s \u00faj \u00e1ramot \u00e1ll\u00edt be, miut\u00e1n a kocsi elindult. Egy p\u00e9ldamakr\u00f3 \u00edgy n\u00e9zhet 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 %} # \u00c1ll\u00edtsuk be az \u00e1ramot az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telhez SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR} # Sz\u00fcnet annak biztos\u00edt\u00e1s\u00e1ra, hogy a meghajt\u00f3 le\u00e1ll\u00e1si jelz\u0151je t\u00f6rl\u0151dj\u00f6n. G4 P2000 # Kezd\u0151pont G28 X0 # Elmozdul\u00e1s G90 G1 X5 F1200 # \u00c1ll\u00edtsd be az \u00e1ramer\u0151ss\u00e9get nyomtat\u00e1s k\u00f6zben SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CUR} Az \u00edgy kapott makr\u00f3 megh\u00edvhat\u00f3 a homing_override konfigur\u00e1ci\u00f3s szakasz vagy a START_PRINT makr\u00f3 seg\u00edts\u00e9g\u00e9vel. Vedd figyelembe, hogy ha a motorvez\u00e9rl\u0151 \u00e1ram\u00e1t a kezd\u0151pont felv\u00e9tel sor\u00e1n megv\u00e1ltoztatj\u00e1k, akkor a hangol\u00e1si folyamatot \u00fajra el kell v\u00e9gezni. Tippek CoreXY g\u00e9pek szenzor n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel\u00e9hez \u00b6 A CoreXY nyomtat\u00f3 X \u00e9s Y kocsikn\u00e1l \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telre is van lehet\u0151s\u00e9g. A Klipper a [stepper_x] l\u00e9ptet\u0151t haszn\u00e1lja az X kocsi kezd\u0151pont felv\u00e9telekor az elakad\u00e1sok \u00e9rz\u00e9kel\u00e9s\u00e9re, az Y kocsi kezd\u0151pont felv\u00e9telekor pedig a [stepper_y] l\u00e9ptet\u0151t. Haszn\u00e1ld a fent le\u00edrt hangol\u00e1si \u00fatmutat\u00f3t, hogy megtal\u00e1lja a megfelel\u0151 \"elakad\u00e1s \u00e9rz\u00e9kenys\u00e9get\" az egyes kocsikhoz, de vedd figyelembe a k\u00f6vetkez\u0151 korl\u00e1toz\u00e1sokat: Ha a CoreXY-n \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telt haszn\u00e1l, gy\u0151z\u0151dj meg r\u00f3la, hogy egyik l\u00e9ptet\u0151h\u00f6z sincs be\u00e1ll\u00edtva hold_current . A hangol\u00e1s sor\u00e1n gy\u0151z\u0151dj meg arr\u00f3l, hogy az X \u00e9s az Y kocsik a s\u00ednek k\u00f6zep\u00e9n\u00e9l vannak-e minden egyes kezd\u0151pont felv\u00e9teli k\u00eds\u00e9rlet el\u0151tt. A hangol\u00e1s befejez\u00e9se ut\u00e1n az X \u00e9s Y kezd\u0151pont felv\u00e9tel\u00e9t makr\u00f3k seg\u00edts\u00e9g\u00e9vel biztos\u00edtsa, hogy el\u0151sz\u00f6r az egyik tengely vedd fel a kezd\u0151pontot, majd mozgasd el a kocsit a tengelyhat\u00e1rt\u00f3l, tartson legal\u00e1bb 2 m\u00e1sodperc sz\u00fcnetet, majd kezd el a m\u00e1sik kocsi kezd\u0151pont felv\u00e9tel\u00e9t. A tengelyt\u0151l val\u00f3 elt\u00e1volod\u00e1ssal elker\u00fclhet\u0151, hogy az egyik tengelyt akkor ind\u00edtsuk el, amikor a m\u00e1sik a tengelyhat\u00e1rhoz van nyomva (ami eltorz\u00edthatja az akad\u00e1s\u00e9rz\u00e9kel\u00e9st). A sz\u00fcnetre az\u00e9rt van sz\u00fcks\u00e9g, hogy a meghajt\u00f3 az \u00fajraind\u00edt\u00e1s el\u0151tt t\u00f6r\u00f6lje az elakad\u00e1s \u00e9rz\u00e9kel\u0151 puffert. Egy p\u00e9lda CoreXY kezd\u0151pont felv\u00e9teli makr\u00f3 \u00edgy n\u00e9zhet ki: [gcode_macro HOME] gcode: G90 # Kezd\u0151pont Z G28 Z0 G1 Z10 F1200 # Kezd\u0151pont Y G28 Y0 G1 Y5 F1200 # Kezd\u0151pont X G4 P2000 G28 X0 G1 X5 F1200 A motorvez\u00e9rl\u0151 be\u00e1ll\u00edt\u00e1sainak lek\u00e9rdez\u00e9se \u00e9s diagnosztiz\u00e1l\u00e1sa \u00b6 A ` DUMP_TMC parancs hasznos eszk\u00f6z a motorvez\u00e9rl\u0151k konfigur\u00e1l\u00e1s\u00e1hoz \u00e9s diagnosztiz\u00e1l\u00e1s\u00e1hoz. A Klipper \u00e1ltal konfigur\u00e1lt \u00f6sszes mez\u0151t, valamint a motorvez\u00e9rl\u0151t lek\u00e9rdezhet\u0151 \u00f6sszes mez\u0151t jelenti. Az \u00f6sszes bejelentett mez\u0151t az egyes motorvez\u00e9rl\u0151k Trinamic adatlapja hat\u00e1rozza meg. Ezek az adatlapok megtal\u00e1lhat\u00f3k a Trinamic weboldal\u00e1n . A DUMP_TMC eredm\u00e9nyeinek \u00e9rtelmez\u00e9s\u00e9hez szerezd be \u00e9s tekintsd \u00e1t a meghajt\u00f3 Trinamic adatlapj\u00e1t. A driver_XXX be\u00e1ll\u00edt\u00e1sok konfigur\u00e1l\u00e1sa \u00b6 A Klipper t\u00e1mogatja sz\u00e1mos alacsony szint\u0171 motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1s\u00e1t a driver_XXX be\u00e1ll\u00edt\u00e1sok haszn\u00e1lat\u00e1val. A TMC meghajt\u00f3 konfigur\u00e1ci\u00f3s hivatkoz\u00e1s tartalmazza az egyes meghajt\u00f3t\u00edpusokhoz el\u00e9rhet\u0151 mez\u0151k teljes list\u00e1j\u00e1t. Ezenk\u00edv\u00fcl szinte minden mez\u0151 m\u00f3dos\u00edthat\u00f3 haszn\u00e1lat k\u00f6zben a SET_TMC_FIELD parancs seg\u00edts\u00e9g\u00e9vel. E mez\u0151k mindegyik\u00e9t az egyes meghajt\u00f3k Trinamic adatlapja hat\u00e1rozza meg. Ezek az adatlapok megtal\u00e1lhat\u00f3k a Trinamic weboldal\u00e1n . Vedd figyelembe, hogy a Trinamic adatlapok n\u00e9ha olyan megfogalmaz\u00e1st haszn\u00e1lnak, amely \u00f6sszet\u00e9veszthet egy magas szint\u0171 be\u00e1ll\u00edt\u00e1st (p\u00e9ld\u00e1ul \"hysteresis end\") egy alacsony szint\u0171 mez\u0151\u00e9rt\u00e9kkel (pl. \"HEND\"). A Klipperben a driver_XXX \u00e9s a SET_TMC_FIELD mindig azt az alacsony szint\u0171 mez\u0151\u00e9rt\u00e9ket \u00e1ll\u00edtja be, amely t\u00e9nylegesen a meghajt\u00f3ba \u00edr\u00f3dik. \u00cdgy p\u00e9ld\u00e1ul, ha a Trinamic adatlapja szerint 3 \u00e9rt\u00e9ket kell \u00edrni a HEND mez\u0151be, hogy a \"hiszter\u00e9zis v\u00e9ge\" 0 legyen, akkor a driver_HEND=3 be\u00e1ll\u00edt\u00e1s\u00e1val a 0 magas szint\u0171 \u00e9rt\u00e9ket kapjuk. Gyakori k\u00e9rd\u00e9sek \u00b6 Haszn\u00e1lhatom a StealthChop \u00fczemm\u00f3dot nyom\u00e1s el\u0151tol\u00e1ssal rendelkez\u0151 extruderen? \u00b6 Sokan sikeresen haszn\u00e1lj\u00e1k a \"StealthChop\" \u00fczemm\u00f3dot a Klipper nyom\u00e1s el\u0151tol\u00e1ssal. A Klipper sim\u00edtott nyom\u00e1s el\u0151tol\u00e1sa , amely nem vezet be pillanatnyi sebess\u00e9g v\u00e1ltoz\u00e1st. A \"StealthChop\" \u00fczemm\u00f3d azonban alacsonyabb motornyomat\u00e9kot \u00e9s/vagy nagyobb motorh\u0151t eredm\u00e9nyezhet. Lehet, hogy ez az \u00fczemm\u00f3d megfelel\u0151 az \u00d6n adott nyomtat\u00f3ja sz\u00e1m\u00e1ra, de az is lehet, hogy nem. Folyamatosan kap \"Nem tudom olvasni a tmc uart 'stepper_x' regiszter IFCNT\" hib\u00e1kat? \u00b6 Ez akkor fordul el\u0151, ha a Klipper nem tud kommunik\u00e1lni egy TMC2208 vagy TMC2209 meghajt\u00f3val. Gy\u0151z\u0151dj meg r\u00f3la, hogy a motor t\u00e1pell\u00e1t\u00e1sa enged\u00e9lyezve van, mivel a l\u00e9ptet\u0151motor-meghajt\u00f3nak \u00e1ltal\u00e1ban motor\u00e1ramra van sz\u00fcks\u00e9ge, miel\u0151tt kommunik\u00e1lni tudna a mikrokontrollerrel. Ha ez a hiba a Klipper els\u0151 \u00e9get\u00e9se ut\u00e1n jelentkezik, akkor a l\u00e9ptet\u0151 meghajt\u00f3 kor\u00e1bban olyan \u00e1llapotba programoz\u00f3dott, amely nem kompatibilis a Klipperrel. Az \u00e1llapot vissza\u00e1ll\u00edt\u00e1s\u00e1hoz n\u00e9h\u00e1ny m\u00e1sodpercre t\u00e1vol\u00edtsa el a nyomtat\u00f3t az \u00e1ramell\u00e1t\u00e1st\u00f3l (fizikailag h\u00fazza ki az USB-t \u00e9s a h\u00e1l\u00f3zati csatlakoz\u00f3t). Ellenkez\u0151 esetben ez a hiba \u00e1ltal\u00e1ban az UART t\u0171 helytelen vezet\u00e9kez\u00e9s\u00e9nek vagy az UART t\u0171be\u00e1ll\u00edt\u00e1sok helytelen Klipper konfigur\u00e1ci\u00f3j\u00e1nak eredm\u00e9nye. Folyamatosan kap \"Nem lehet \u00edrni tmc spi \"stepper_x\" register ...\" hib\u00e1t? \u00b6 Ez akkor fordul el\u0151, ha a Klipper nem tud kommunik\u00e1lni egy TMC2208 vagy TMC2209 motorvez\u00e9rl\u0151vel. Gy\u0151z\u0151dj meg r\u00f3la, hogy a motor t\u00e1pell\u00e1t\u00e1sa enged\u00e9lyezve van, mivel a l\u00e9ptet\u0151motor-meghajt\u00f3nak \u00e1ltal\u00e1ban motor\u00e1ramra van sz\u00fcks\u00e9ge, miel\u0151tt kommunik\u00e1lni tudna a mikrokontrollerrel. Ellenkez\u0151 esetben ez a hiba \u00e1ltal\u00e1ban a helytelen SPI vezet\u00e9kez\u00e9s, az SPI be\u00e1ll\u00edt\u00e1sok helytelen Klipper-konfigur\u00e1ci\u00f3ja vagy az SPI buszon l\u00e9v\u0151 eszk\u00f6z\u00f6k hi\u00e1nyos konfigur\u00e1ci\u00f3j\u00e1nak eredm\u00e9nye. Ne feledd, hogy ha a motorvez\u00e9rl\u0151 egy megosztott SPI buszon van t\u00f6bb eszk\u00f6zzel, akkor gy\u0151z\u0151dj meg r\u00f3la, hogy teljes m\u00e9rt\u00e9kben konfigur\u00e1ld a Klipperben l\u00e9v\u0151 megosztott SPI busz minden eszk\u00f6z\u00e9t. Ha egy megosztott SPI buszon l\u00e9v\u0151 eszk\u00f6z nincs konfigur\u00e1lva, akkor el\u0151fordulhat, hogy helytelen\u00fcl reag\u00e1l a nem erre sz\u00e1nt parancsokra, \u00e9s meghi\u00fasul a k\u00edv\u00e1nt eszk\u00f6zzel folytatott kommunik\u00e1ci\u00f3. Ha van olyan eszk\u00f6z egy megosztott SPI buszon, amelyet nem lehet konfigur\u00e1lni a Klipperben, akkor a static_digital_output konfigur\u00e1ci\u00f3s szakasz seg\u00edts\u00e9g\u00e9vel \u00e1ll\u00edtsd magasra a nem haszn\u00e1lt eszk\u00f6z CS t\u0171j\u00e9t (hogy ne k\u00eds\u00e9relje meg haszn\u00e1lni az SPI buszt). A t\u00e1bla v\u00e1zlata gyakran hasznos referencia annak meg\u00e1llap\u00edt\u00e1s\u00e1hoz, hogy mely eszk\u00f6z\u00f6k vannak egy SPI buszon \u00e9s a hozz\u00e1juk tartoz\u00f3 t\u0171k\u00f6n. Mi\u00e9rt kaptam egy \"TMC jelent\u00e9s hiba: ...\" hiba\u00fczenetet? \u00b6 Az ilyen t\u00edpus\u00fa hiba azt jelzi, hogy a TMC motorvez\u00e9rl\u0151 hib\u00e1t \u00e9szlelt, \u00e9s letiltotta mag\u00e1t. Vagyis a meghajt\u00f3 abbahagyta a poz\u00edci\u00f3j\u00e1t, \u00e9s figyelmen k\u00edv\u00fcl hagyta a mozg\u00e1si parancsokat. Ha a Klipper azt \u00e9szleli, hogy egy akt\u00edv motorvez\u00e9rl\u0151 letiltotta mag\u00e1t, a nyomtat\u00f3t \"le\u00e1ll\u00edt\u00e1s\" \u00e1llapotba \u00e1ll\u00edtja. Az is lehets\u00e9ges, hogy a TMC hiba le\u00e1ll\u00edt\u00e1sa SPI hib\u00e1k miatt k\u00f6vetkezik be, amelyek megakad\u00e1lyozz\u00e1k a motorvez\u00e9rl\u0151kkel val\u00f3 kommunik\u00e1ci\u00f3t (TMC2130, TMC5160 vagy TMC2660). Ebben az esetben gyakori, hogy a jelentett motorvez\u00e9rl\u0151 \u00e1llapota 000000000 vagy ffffffffff - p\u00e9ld\u00e1ul: TMC hib\u00e1t jelent: DRV_STATUS: ffffffff ... VAGY TMC jelent\u00e9sek hiba: READRSP@RDSEL2: 00000000 ... . Az ilyen hiba oka lehet egy SPI vezet\u00e9kez\u00e9si probl\u00e9ma, vagy lehet a vissza\u00e1ll\u00edt\u00e1s, vagy a TMC motorvez\u00e9rl\u0151. N\u00e9h\u00e1ny gyakori hiba \u00e9s tipp a diagnosztiz\u00e1l\u00e1shoz: TMC hib\u00e1t jelent: ... ot=1(OvertempError!) \u00b6 Ez azt jelzi, hogy a motorvez\u00e9rl\u0151 kikapcsolta mag\u00e1t, mert t\u00falmelegedett. A tipikus megold\u00e1sok a l\u00e9ptet\u0151motor \u00e1ram\u00e1nak cs\u00f6kkent\u00e9se, a motorvez\u00e9rl\u0151 \u00e9s/vagy a l\u00e9ptet\u0151motor h\u0171t\u00e9se. A TMC hib\u00e1t jelent: ... ShortToGND VAGY LowSideShort \u00b6 Ez azt jelzi, hogy a motorvez\u00e9rl\u0151 letiltotta mag\u00e1t, mert nagyon magas \u00e1ramot \u00e9rz\u00e9kelt a meghajt\u00f3n kereszt\u00fcl. Ez azt jelezheti, hogy meglazult vagy r\u00f6vidre z\u00e1rt vezet\u00e9k van a l\u00e9ptet\u0151motorban vagy mag\u00e1hoz a l\u00e9ptet\u0151motorhoz fut\u00f3 vezet\u00e9k hib\u00e1s. Ez a hiba akkor is el\u0151fordulhat, ha StealthChop \u00fczemm\u00f3dot haszn\u00e1l, \u00e9s a TMC motorvez\u00e9rl\u0151 nem k\u00e9pes pontosan megj\u00f3solni a motor mechanikai terhel\u00e9s\u00e9t. (Ha a motorvez\u00e9rl\u0151 rosszul j\u00f3sol, akkor el\u0151fordulhat, hogy t\u00fal nagy \u00e1ramot k\u00fcld a motoron kereszt\u00fcl, \u00e9s ezzel kiv\u00e1ltja saj\u00e1t t\u00fal\u00e1ram-\u00e9rz\u00e9kel\u00e9s\u00e9t). Ennek tesztel\u00e9s\u00e9hez kapcsold ki a StealthChop \u00fczemm\u00f3dot, \u00e9s ellen\u0151rizd, hogy a hib\u00e1k tov\u00e1bbra is el\u0151fordulnak-e. A TMC hib\u00e1t jelent: ... reset=1(Reset) VAGY CS_ACTUAL=0(Reset?) VAGY SE=0(Reset?) \u00b6 Ez azt jelzi, hogy a motorvez\u00e9rl\u0151 a nyomtat\u00e1s k\u00f6zep\u00e9n vissza\u00e1ll\u00edtotta mag\u00e1t. Ennek oka lehet fesz\u00fclts\u00e9g vagy vezet\u00e9kez\u00e9si probl\u00e9ma. A TMC hib\u00e1t jelent: ... uv_cp=1(Undervoltage!) \u00b6 Ez azt jelzi, hogy a motorvez\u00e9rl\u0151 alacsony fesz\u00fclts\u00e9get \u00e9szlelt, \u00e9s letiltotta mag\u00e1t. Ennek oka lehet vezet\u00e9kez\u00e9si vagy t\u00e1pell\u00e1t\u00e1si probl\u00e9ma. Hogyan tudom be\u00e1ll\u00edtani a spreadCycle/coolStep/etc. \u00fczemm\u00f3dot a motorvez\u00e9rl\u0151imhez? \u00b6 A Trinamic weboldal tartalmaz \u00fatmutat\u00f3kat a motorvez\u00e9rl\u0151k konfigur\u00e1l\u00e1s\u00e1hoz. Ezek az \u00fatmutat\u00f3k gyakran technikai jelleg\u0171ek, alacsony szint\u0171ek, \u00e9s speci\u00e1lis hardvert ig\u00e9nyelhetnek. Ett\u0151l f\u00fcggetlen\u00fcl ez a legjobb inform\u00e1ci\u00f3forr\u00e1s.","title":"TMC meghajt\u00f3k"},{"location":"TMC_Drivers.html#tmc-meghajtok","text":"Ez a dokumentum a Trinamic l\u00e9ptet\u0151motor-meghajt\u00f3k SPI/UART \u00fczemm\u00f3dban t\u00f6rt\u00e9n\u0151 Klipper-ben val\u00f3 haszn\u00e1lat\u00e1r\u00f3l ny\u00fajt inform\u00e1ci\u00f3t. A Klipper a Trinamic motorvez\u00e9rl\u0151ket is tudja haszn\u00e1lni \"standalone m\u00f3dban\". Ha azonban a motorvez\u00e9rl\u0151k ebben az \u00fczemm\u00f3dban vannak, nincs sz\u00fcks\u00e9g speci\u00e1lis Klipper konfigur\u00e1ci\u00f3ra, \u00e9s az ebben a dokumentumban t\u00e1rgyalt fejlett Klipper funkci\u00f3k nem \u00e1llnak rendelkez\u00e9sre. Ezen a dokumentumon k\u00edv\u00fcl felt\u00e9tlen\u00fcl tekintsd \u00e1t a TMC motorvez\u00e9rl\u0151 konfigur\u00e1ci\u00f3s hivatkoz\u00e1st .","title":"TMC meghajt\u00f3k"},{"location":"TMC_Drivers.html#motoraram-hangolasa","text":"A nagyobb meghajt\u00f3\u00e1ram n\u00f6veli a pozicion\u00e1l\u00e1si pontoss\u00e1got \u00e9s a nyomat\u00e9kot. A nagyobb \u00e1ram azonban n\u00f6veli a l\u00e9ptet\u0151motor \u00e9s a motorvez\u00e9rl\u0151 \u00e1ltal termelt h\u0151t is. Ha a motorvez\u00e9rl\u0151 t\u00fals\u00e1gosan felmelegszik, akkor kikapcsolja mag\u00e1t, \u00e9s a Klipper hib\u00e1t jelez. Ha a l\u00e9ptet\u0151motor t\u00fals\u00e1gosan felmelegszik, vesz\u00edt a nyomat\u00e9kb\u00f3l \u00e9s a poz\u00edcion\u00e1l\u00e1si pontoss\u00e1gb\u00f3l. (Ha nagyon felforr\u00f3sodik, akkor a hozz\u00e1\u00e9r\u0151 vagy a k\u00f6zel\u00e9ben l\u00e9v\u0151 m\u0171anyag alkatr\u00e9szeket is megolvaszthatja.) \u00c1ltal\u00e1nos hangol\u00e1si tippk\u00e9nt, el\u0151nyben r\u00e9szes\u00edtheti a magasabb \u00e1ram\u00e9rt\u00e9keket, am\u00edg a l\u00e9ptet\u0151motor nem melegszik t\u00fals\u00e1gosan, \u00e9s a motorvez\u00e9rl\u0151 nem jelez figyelmeztet\u00e9seket vagy hib\u00e1kat. \u00c1ltal\u00e1noss\u00e1gban elmondhat\u00f3, hogy a l\u00e9ptet\u0151motor nem baj, ha melegszik, de nem szabad annyira felforr\u00f3sodnia, hogy \u00e9rint\u00e9se f\u00e1jdalmas legyen.","title":"Motor\u00e1ram hangol\u00e1sa"},{"location":"TMC_Drivers.html#inkabb-ne-adj-meg-hold_current-erteket","text":"Ha be\u00e1ll\u00edtunk egy hold_current \u00e9rt\u00e9ket, akkor a TMC motorvez\u00e9rl\u0151 cs\u00f6kkentheti a l\u00e9ptet\u0151motor \u00e1ram\u00e1t, amikor azt \u00e9rz\u00e9keli, hogy a l\u00e9ptet\u0151 nem mozog. A motor\u00e1ram megv\u00e1ltoztat\u00e1sa azonban \u00f6nmag\u00e1ban is motormozg\u00e1st eredm\u00e9nyezhet. Ez bek\u00f6vetkezhet a \"r\u00f6gz\u00edt\u0151 er\u0151k\" miatt a l\u00e9ptet\u0151motoron bel\u00fcl (a rotorban l\u00e9v\u0151 \u00e1lland\u00f3 m\u00e1gnes az \u00e1ll\u00f3r\u00e9szben l\u00e9v\u0151 vasfogak fel\u00e9 h\u00faz) vagy a tengelykocsira hat\u00f3 k\u00fcls\u0151 er\u0151k miatt. A legt\u00f6bb l\u00e9ptet\u0151motornak a norm\u00e1l nyomtat\u00e1s sor\u00e1n nem jelent jelent\u0151s el\u0151nyt az \u00e1ram cs\u00f6kkent\u00e9se, mivel kev\u00e9s nyomtat\u00e1si m\u0171velet hagyja a l\u00e9ptet\u0151motort el\u00e9g hossz\u00fa ideig \u00fcresen ahhoz, hogy aktiv\u00e1lja a hold_current funkci\u00f3t. \u00c9s nem val\u00f3sz\u00edn\u0171, hogy az ember finom nyomtat\u00e1si m\u0171veleteket akarna bevezetni abba a n\u00e9h\u00e1ny nyomtat\u00e1si mozdulatba, amely el\u00e9g hossz\u00fa ideig hagyja \u00fcresen a l\u00e9ptet\u0151motort. Ha cs\u00f6kkenteni szeretn\u00e9d a motorok \u00e1ram\u00e1t a nyomtat\u00e1si ind\u00edt\u00e1si rutinok sor\u00e1n, akkor fontold meg a SET_TMC_CURRENT parancsok kiad\u00e1s\u00e1t egy START_PRINT makr\u00f3ban , hogy be\u00e1ll\u00edtsd az \u00e1ramot a norm\u00e1l nyomtat\u00e1si mozg\u00e1sok el\u0151tt \u00e9s ut\u00e1n. N\u00e9h\u00e1ny olyan, dedik\u00e1lt Z-motorral rendelkez\u0151 nyomtat\u00f3, amely a norm\u00e1l nyomtat\u00e1si m\u0171veletek sor\u00e1n (nincs bed_mesh, nincs bed_tilt, nincs Z skew_correction, nincs \"vase mode\" nyomtat\u00e1s stb.) \u00fcresj\u00e1ratban van, azt tapasztalhatja, hogy a Z motorok h\u0171v\u00f6sebbek a hold_current be\u00e1ll\u00edt\u00e1ssal. Ha ezt haszn\u00e1lod, akkor mindenk\u00e9ppen vedd figyelembe ezt a fajta parancs n\u00e9lk\u00fcli Z tengelymozg\u00e1st t\u00e1rgyasztal kiegyenl\u00edt\u00e9se, t\u00e1rgyasztal szintez\u00e9se, szondakalibr\u00e1l\u00e1s \u00e9s hasonl\u00f3k sor\u00e1n. A driver_TPOWERDOWN \u00e9s driver_IHOLDDELAY \u00e9rt\u00e9keket is ennek megfelel\u0151en kell kalibr\u00e1lni. Ha bizonytalan vagy, ink\u00e1bb ne add meg a hold_current \u00e9rt\u00e9ket.","title":"Ink\u00e1bb ne adj meg hold_current \u00e9rt\u00e9ket"},{"location":"TMC_Drivers.html#spreadcycle-vs-stealthchop-mod-beallitasa","text":"Alap\u00e9rtelmez\u00e9s szerint a Klipper a TMC motorvez\u00e9rl\u0151ket \"SpreadCycle\" \u00fczemm\u00f3dba helyezi. Ha a motorvez\u00e9rl\u0151 t\u00e1mogatja a \"StealthChop\" m\u00f3dot, akkor azt a stealthchop_threshold hozz\u00e1ad\u00e1s\u00e1val lehet enged\u00e9lyezni: 999999 a TMC konfigur\u00e1ci\u00f3s szakasz\u00e1hoz. \u00c1ltal\u00e1ban a SpreadCycle \u00fczemm\u00f3d nagyobb nyomat\u00e9kot \u00e9s nagyobb helymeghat\u00e1roz\u00e1si pontoss\u00e1got biztos\u00edt, mint a StealthChop \u00fczemm\u00f3d. A StealthChop \u00fczemm\u00f3d azonban n\u00e9h\u00e1ny nyomtat\u00f3n\u00e1l l\u00e9nyegesen kisebb hallhat\u00f3 zajjal j\u00e1rhat. Az \u00fczemm\u00f3dok \u00f6sszehasonl\u00edt\u00f3 tesztjei azt mutatt\u00e1k, hogy a StealthChop \u00fczemm\u00f3d haszn\u00e1lata eset\u00e9n a \"poz\u00edci\u00f3s k\u00e9s\u00e9s\" az \u00e1lland\u00f3 sebess\u00e9g\u0171 mozg\u00e1sok sor\u00e1n a teljes l\u00e9p\u00e9s 75%-al n\u0151tt (p\u00e9ld\u00e1ul egy 40 mm-es forgat\u00e1si t\u00e1vols\u00e1ggal \u00e9s 200 l\u00e9p\u00e9s/fordulatsz\u00e1mmal rendelkez\u0151 nyomtat\u00f3n\u00e1l az \u00e1lland\u00f3 sebess\u00e9g\u0171 mozg\u00e1sok poz\u00edci\u00f3elt\u00e9r\u00e9se ~0,150 mm-rel n\u0151tt). Ez a \"k\u00e9sedelem a k\u00e9rt poz\u00edci\u00f3 el\u00e9r\u00e9s\u00e9ben\" azonban nem biztos, hogy jelent\u0151s nyomtat\u00e1si hibak\u00e9nt jelentkezik, \u00e9s lehet, hogy jobban tetszik a StealthChop m\u00f3d csendesebb m\u0171k\u00f6d\u00e9se. Javasoljuk, hogy mindig a \"SpreadCycle\" m\u00f3dot haszn\u00e1ld (nem megadva a stealthchop_threshold \u00e9rt\u00e9ket) vagy mindig a \"StealthChop\" m\u00f3dot (a stealthchop_threshold 999999-re \u00e1ll\u00edtva). Sajnos a meghajt\u00f3k gyakran rossz \u00e9s zavaros eredm\u00e9nyeket produk\u00e1lnak, ha a m\u00f3d v\u00e1ltozik, mik\u00f6zben a motor nem \u00e1ll\u00f3 \u00e1llapotban van.","title":"\"SpreadCycle\" vs \"StealthChop\" m\u00f3d be\u00e1ll\u00edt\u00e1sa"},{"location":"TMC_Drivers.html#a-tmc-interpolacios-beallitasa-kis-pozicioelterest-eredmenyez","text":"A TMC motorvez\u00e9rl\u0151 interpolate be\u00e1ll\u00edt\u00e1sa cs\u00f6kkentheti a nyomtat\u00f3 mozg\u00e1s\u00e1nak hallhat\u00f3 zaj\u00e1t, de ennek \u00e1ra egy kis rendszerszint\u0171 helyzeti hiba. Ez a rendszerszint\u0171 helyzeti hiba abb\u00f3l ad\u00f3dik, hogy a motorvez\u00e9rl\u0151 k\u00e9sve hajtja v\u00e9gre a Klipper \u00e1ltal k\u00fcld\u00f6tt \"l\u00e9p\u00e9seket\". \u00c1lland\u00f3 sebess\u00e9g\u0171 mozg\u00e1sok sor\u00e1n ez a k\u00e9sleltet\u00e9s k\u00f6zel f\u00e9l konfigur\u00e1lt mikrol\u00e9p\u00e9snyi poz\u00edci\u00f3hib\u00e1t eredm\u00e9nyez (pontosabban a hiba f\u00e9l mikrol\u00e9p\u00e9snyi t\u00e1vols\u00e1g m\u00ednusz a teljes l\u00e9p\u00e9s t\u00e1vols\u00e1g 512-ed r\u00e9sze). P\u00e9ld\u00e1ul egy 40 mm-es rotation_distance, 200 steps_per_rotation \u00e9s 16 microstep tengelyen az \u00e1lland\u00f3 sebess\u00e9g\u0171 mozg\u00e1sok sor\u00e1n bevezetett rendszerszint\u0171 hiba ~0,006 mm. A legjobb helymeghat\u00e1roz\u00e1si pontoss\u00e1g \u00e9rdek\u00e9ben fontold meg a SpreadCycle m\u00f3d haszn\u00e1lat\u00e1t \u00e9s az interpol\u00e1ci\u00f3 kikapcsol\u00e1s\u00e1t (\u00e1ll\u00edtsd be az interpolate: False \u00e9rt\u00e9ket a TMC motorvez\u00e9rl\u0151 konfigur\u00e1ci\u00f3j\u00e1ban). Ilyen konfigur\u00e1ci\u00f3 eset\u00e9n n\u00f6velhetj\u00fck a microstep be\u00e1ll\u00edt\u00e1st a l\u00e9ptet\u0151 mozg\u00e1sa k\u00f6zbeni hallhat\u00f3 zajok cs\u00f6kkent\u00e9se \u00e9rdek\u00e9ben. \u00c1ltal\u00e1ban a 64 vagy 128 mikrol\u00e9p\u00e9s be\u00e1ll\u00edt\u00e1sa az interpol\u00e1ci\u00f3hoz hasonl\u00f3 hallhat\u00f3 zajjal j\u00e1r, \u00e9s mindezt an\u00e9lk\u00fcl, hogy rendszerszint\u0171 helyzeti hib\u00e1t vezetne be. Ha a StealthChop m\u00f3dot haszn\u00e1lod, akkor az interpol\u00e1ci\u00f3b\u00f3l ered\u0151 helyzeti pontatlans\u00e1g kicsi a StealthChop m\u00f3db\u00f3l ered\u0151 helyzeti pontatlans\u00e1ghoz k\u00e9pest. Ez\u00e9rt az interpol\u00e1ci\u00f3 hangol\u00e1sa nem tekinthet\u0151 hasznosnak StealthChop \u00fczemm\u00f3dban, \u00e9s az interpol\u00e1ci\u00f3 alap\u00e9rtelmezett \u00e1llapotban hagyhat\u00f3.","title":"A TMC interpol\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sa kis poz\u00edci\u00f3elt\u00e9r\u00e9st eredm\u00e9nyez"},{"location":"TMC_Drivers.html#erzekelo-nelkuli-kezdopont","text":"Az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel lehet\u0151v\u00e9 teszi a tengely kezd\u0151pont felv\u00e9tel\u00e9t fizikai v\u00e9g\u00e1ll\u00e1skapcsol\u00f3 n\u00e9lk\u00fcl. Ehelyett a tengelyen l\u00e9v\u0151 kocsit a mechanikus v\u00e9g\u00e1ll\u00e1sba mozgatja, \u00edgy a l\u00e9ptet\u0151motor l\u00e9p\u00e9seket vesz\u00edt. A l\u00e9ptet\u0151 meghajt\u00f3 \u00e9rz\u00e9keli az elveszett l\u00e9p\u00e9seket, \u00e9s ezt egy t\u0171 csatlakoz\u00e1son jelzi a vez\u00e9rl\u0151 MCU-nak (Klipper). Ezt az inform\u00e1ci\u00f3t a Klipper a tengely v\u00e9g\u00e1ll\u00e1sak\u00e9nt haszn\u00e1lhatja. Ez az \u00fatmutat\u00f3 az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel be\u00e1ll\u00edt\u00e1s\u00e1t mutatja be a (cartesian) nyomtat\u00f3 X tengely\u00e9re. Ez azonban ugyan\u00edgy m\u0171k\u00f6dik az \u00f6sszes t\u00f6bbi tengely eset\u00e9ben is (amelyek v\u00e9g\u00e1ll\u00e1st ig\u00e9nyelnek). Egyszerre csak egy tengelyre kell be\u00e1ll\u00edtani \u00e9s hangolni.","title":"\u00c9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont"},{"location":"TMC_Drivers.html#korlatozasok","text":"Gy\u0151z\u0151dj meg arr\u00f3l, hogy a mechanikus alkatr\u00e9szek k\u00e9pesek kezelni a tengely hat\u00e1r\u00e9rt\u00e9k\u00e9nek ism\u00e9telt \u00fctk\u00f6z\u00e9s\u00e9b\u0151l ered\u0151 terhel\u00e9st. K\u00fcl\u00f6n\u00f6sen a sz\u00edjak nagy er\u0151t fejthetnek ki. A Z tengelynek a f\u00fav\u00f3k\u00e1val a t\u00e1rgyasztalba val\u00f3 \u00fctk\u00f6z\u00e9ssel t\u00f6rt\u00e9n\u0151 szintez\u00e9se nem biztos, hogy j\u00f3 \u00f6tlet. A legjobb eredm\u00e9ny \u00e9rdek\u00e9ben ellen\u0151rizd, hogy a tengelyen l\u00e9v\u0151 kocsi szil\u00e1rdan \u00e9rintkezik-e a tengelyhat\u00e1rral. Tov\u00e1bb\u00e1, az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel nem biztos, hogy el\u00e9g pontos a nyomtat\u00f3d sz\u00e1m\u00e1ra. M\u00edg az X \u00e9s Y tengelyek kezd\u0151pont felv\u00e9tele egy cartesian g\u00e9pen j\u00f3l m\u0171k\u00f6dhet, a Z tengely kezd\u0151pont felv\u00e9tele \u00e1ltal\u00e1ban nem el\u00e9g pontos, \u00e9s k\u00f6vetkezetlen els\u0151 r\u00e9tegmagass\u00e1got eredm\u00e9nyezhet. A delta nyomtat\u00f3 \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tele a pontatlans\u00e1g miatt nem tan\u00e1csos. Tov\u00e1bb\u00e1 a l\u00e9ptet\u0151 meghajt\u00f3 elakad\u00e1s\u00e9rz\u00e9kel\u00e9se a motor mechanikai terhel\u00e9s\u00e9t\u0151l, a motor\u00e1ramt\u00f3l \u00e9s a motor h\u0151m\u00e9rs\u00e9klet\u00e9t\u0151l (tekercsellen\u00e1ll\u00e1st\u00f3l) is f\u00fcgg. Az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel k\u00f6zepes motorsebess\u00e9gn\u00e9l m\u0171k\u00f6dik a legjobban. Nagyon lass\u00fa fordulatsz\u00e1mokn\u00e1l (kevesebb mint 10 fordulat/perc) a motor nem termel jelent\u0151s ellen\u00e1ramot, \u00e9s a TMC nem k\u00e9pes megb\u00edzhat\u00f3an \u00e9rz\u00e9kelni a motor le\u00e1ll\u00e1s\u00e1t. Tov\u00e1bb\u00e1, nagyon nagy fordulatsz\u00e1mon a motor ellen-EMF-je megk\u00f6zel\u00edti a motor t\u00e1pfesz\u00fclts\u00e9g\u00e9t, \u00edgy a TMC m\u00e1r nem k\u00e9pes \u00e9rz\u00e9kelni a le\u00e1ll\u00e1st. Javasoljuk, hogy tekintsd meg az adott TMC-k adatlapj\u00e1t. Ott tov\u00e1bbi r\u00e9szleteket is tal\u00e1lhat ennek a be\u00e1ll\u00edt\u00e1snak a korl\u00e1tair\u00f3l.","title":"Korl\u00e1toz\u00e1sok"},{"location":"TMC_Drivers.html#elofeltetelek","text":"N\u00e9h\u00e1ny el\u0151felt\u00e9tel sz\u00fcks\u00e9ges az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel haszn\u00e1lat\u00e1hoz: StallGuard-k\u00e9pes TMC motorvez\u00e9rl\u0151 (TMC2130, TMC2209, TMC2660 vagy TMC5160). A TMC-motorvez\u00e9rl\u0151 SPI/UART interf\u00e9sze mikrokontrollerrel \u00f6sszek\u00f6tve (a stand-alone \u00fczemm\u00f3d nem m\u0171k\u00f6dik). A TMC motorvez\u00e9rl\u0151 megfelel\u0151 \"DIAG\" vagy \"SG_TST\" t\u0171je a mikrovez\u00e9rl\u0151h\u00f6z csatlakoztatva. A konfigur\u00e1ci\u00f3 ellen\u0151rz\u00e9sek dokumentumban szerepl\u0151 l\u00e9p\u00e9seket kell lefuttatni annak meger\u0151s\u00edt\u00e9s\u00e9re, hogy a l\u00e9ptet\u0151motorok megfelel\u0151en vannak konfigur\u00e1lva \u00e9s m\u0171k\u00f6dnek.","title":"El\u0151felt\u00e9telek"},{"location":"TMC_Drivers.html#hangolas","text":"Az itt le\u00edrt elj\u00e1r\u00e1s hat f\u0151 l\u00e9p\u00e9sb\u0151l \u00e1ll: V\u00e1laszd ki a kezd\u0151pont felv\u00e9teli sebess\u00e9get. Konfigur\u00e1ld a printer.cfg f\u00e1jlt, hogy enged\u00e9lyezd az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telt. Keresse meg a legnagyobb \u00e9rz\u00e9kenys\u00e9g\u0171 StallGuard be\u00e1ll\u00edt\u00e1st, amely sikeresen felveszi a kezd\u0151pontot. Keresse meg a legalacsonyabb \u00e9rz\u00e9kenys\u00e9g\u0171 StallGuard-be\u00e1ll\u00edt\u00e1st, amely egyetlen \u00e9rint\u00e9ssel sikeres meg\u00e1ll\u00e1st jelez. Friss\u00edtse a printer.cfg \u00e1llom\u00e1nyt a k\u00edv\u00e1nt StallGuard be\u00e1ll\u00edt\u00e1ssal. Hozzon l\u00e9tre vagy friss\u00edtse a printer.cfg makr\u00f3kat, hogy k\u00e9zn\u00e9l legyenek.","title":"Hangol\u00e1s"},{"location":"TMC_Drivers.html#valaszd-ki-a-kezdopont-felveteli-sebesseget","text":"A kezd\u0151pont felv\u00e9teli sebess\u00e9g fontos v\u00e1laszt\u00e1s az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel sor\u00e1n. Aj\u00e1nlott lass\u00fa \u00e1ll\u00edt\u00e1si sebess\u00e9get haszn\u00e1lni, hogy a kocsi ne gyakoroljon t\u00falzott er\u0151t a keretre, amikor a s\u00edn v\u00e9g\u00e9vel \u00e9rintkezik. A TMC motorvez\u00e9rl\u0151k azonban nagyon lass\u00fa sebess\u00e9gekn\u00e9l nem k\u00e9pesek megb\u00edzhat\u00f3an \u00e9rz\u00e9kelni az elakad\u00e1st. Az ind\u00edt\u00e1si sebess\u00e9gnek j\u00f3 kiindul\u00f3pontja az, hogy a l\u00e9ptet\u0151motor k\u00e9t m\u00e1sodpercenk\u00e9nt egy teljes fordulatot v\u00e9gezzen. Sok tengely eset\u00e9ben ez a rotation_distance osztva kett\u0151vel. P\u00e9ld\u00e1ul: [stepper_x] rotation_distance: 40 homing_speed: 20 ...","title":"V\u00e1laszd ki a kezd\u0151pont felv\u00e9teli sebess\u00e9get"},{"location":"TMC_Drivers.html#a-printercfg-beallitasa-erzekelo-nelkuli-kezdopont-felvetelhez","text":"A homing_retract_dist be\u00e1ll\u00edt\u00e1st null\u00e1ra kell \u00e1ll\u00edtani a stepper_x config szakaszban a m\u00e1sodik kezd\u0151pont felv\u00e9teli mozdulat letilt\u00e1s\u00e1hoz. A m\u00e1sodik kezd\u0151pont felv\u00e9teli k\u00eds\u00e9rlet nem ad hozz\u00e1adott \u00e9rt\u00e9ket az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telhez, nem fog megb\u00edzhat\u00f3an m\u0171k\u00f6dni, \u00e9s \u00f6sszezavarja a hangol\u00e1si folyamatot. Gy\u0151z\u0151dj meg r\u00f3la, hogy a konfigur\u00e1ci\u00f3 TMC motorvez\u00e9rl\u0151 r\u00e9szleg\u00e9ben nincs megadva hold_current be\u00e1ll\u00edt\u00e1s. (Ha hold_current haszn\u00e1latban van, akkor a kapcsolat l\u00e9trej\u00f6tte ut\u00e1n a motor meg\u00e1ll, mik\u00f6zben a kocsi a s\u00edn v\u00e9g\u00e9hez van nyomva, \u00e9s az \u00e1ram cs\u00f6kkent\u00e9se ebben a helyzetben a kocsi mozg\u00e1s\u00e1t okozhatja. Ez rossz teljes\u00edtm\u00e9nyt eredm\u00e9nyez, \u00e9s \u00f6sszezavarja a hangol\u00e1si folyamatot.) Sz\u00fcks\u00e9ges a szenzor n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9teli t\u0171k konfigur\u00e1l\u00e1sa \u00e9s a kezdeti \"StallGuard\" be\u00e1ll\u00edt\u00e1sok konfigur\u00e1l\u00e1sa. Egy TMC2209 p\u00e9ldakonfigur\u00e1ci\u00f3 egy X tengelyhez \u00edgy n\u00e9zhet ki: [tmc2209 stepper_x] diag_pin: ^PA1 # A TMC DIAG t\u0171h\u00f6z csatlakoztatott MCU t\u0171re \u00e1ll\u00edtva. driver_SGTHRS: 255 # 255 a leg\u00e9rz\u00e9kenyebb \u00e9rt\u00e9k, 0 a legkev\u00e9sb\u00e9 \u00e9rz\u00e9keny. ... [stepper_x] endstop_pin: tmc2209_stepper_x:virtual_endstop homing_retract_dist: 0 ... Egy TMC2130 vagy TMC5160 konfigur\u00e1ci\u00f3 p\u00e9ld\u00e1ul \u00edgy n\u00e9zhet ki: [tmc2130 stepper_x] diag1_pin: ^!PA1 # A TMC DIAG1 t\u0171h\u00f6z csatlakoztatott t\u0171 (vagy haszn\u00e1ld a diag0_pin / DIAG0 t\u0171t) driver_SGT: -64 # -64 a leg\u00e9rz\u00e9kenyebb \u00e9rt\u00e9k, 63 a legkev\u00e9sb\u00e9 \u00e9rz\u00e9keny. ... [stepper_x] endstop_pin: tmc2130_stepper_x:virtual_endstop homing_retract_dist: 0 ... Egy TMC2660 konfigur\u00e1ci\u00f3 \u00edgy n\u00e9zhet ki: [tmc2660 stepper_x] driver_SGT: -64 # -64 a leg\u00e9rz\u00e9kenyebb \u00e9rt\u00e9k, 63 a legkev\u00e9sb\u00e9 \u00e9rz\u00e9keny. ... [stepper_x] endstop_pin: ^PA1 # A TMC SG_TST t\u0171j\u00e9hez csatlakoztatott t\u0171. homing_retract_dist: 0 ... A fenti p\u00e9ld\u00e1k csak az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telre jellemz\u0151 be\u00e1ll\u00edt\u00e1sokat mutatj\u00e1k. Az \u00f6sszes el\u00e9rhet\u0151 be\u00e1ll\u00edt\u00e1s\u00e9rt l\u00e1sd a konfigur\u00e1ci\u00f3s referencia dokumentumot.","title":"A printer.cfg be\u00e1ll\u00edt\u00e1sa \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telhez"},{"location":"TMC_Drivers.html#keresse-meg-a-legmagasabb-erzekenyseget-amely-sikeresen-jelzi-a-kezdopontot","text":"Helyezd a kocsit a s\u00edn k\u00f6zep\u00e9hez k\u00f6zel. A SET_TMC_FIELD paranccsal \u00e1ll\u00edtsd be a legnagyobb \u00e9rz\u00e9kenys\u00e9get. A TMC2209 eset\u00e9ben: SET_TMC_FIELD STEPPER=stepper_x FIELD=SGTHRS VALUE=255 A TMC2130, TMC5160 \u00e9s a TMC2660 modellekhez: SET_TMC_FIELD STEPPER=stepper_x FIELD=sgt VALUE=-64 Ezut\u00e1n adj ki egy G28 X0 parancsot, \u00e9s ellen\u0151rizd, hogy a tengely egy\u00e1ltal\u00e1n nem mozog, vagy gyorsan meg\u00e1ll. Ha a tengely nem \u00e1ll meg, akkor adj ki egy M112 parancsot a nyomtat\u00f3 meg\u00e1ll\u00edt\u00e1s\u00e1ra. Valami nem stimmel a diag/sg_tst pin k\u00e1belez\u00e9s\u00e9vel vagy konfigur\u00e1ci\u00f3j\u00e1val, \u00e9s a folytat\u00e1s el\u0151tt ki kell jav\u00edtani. Ezut\u00e1n folyamatosan cs\u00f6kkentse a VALUE be\u00e1ll\u00edt\u00e1s \u00e9rz\u00e9kenys\u00e9g\u00e9t, \u00e9s futtassa le \u00fajra a SET_TMC_FIELD G28 X0 parancsokat, hogy megtal\u00e1lja a legnagyobb \u00e9rz\u00e9kenys\u00e9get, amely a kocsi sikeres mozg\u00e1s\u00e1t eredm\u00e9nyezi a v\u00e9g\u00e1ll\u00e1sig \u00e9s a meg\u00e1ll\u00e1sig. (A TMC2209 motorvez\u00e9rl\u0151k eset\u00e9ben ez az SGTHRS cs\u00f6kkent\u00e9se, m\u00e1s vez\u00e9rl\u0151k eset\u00e9ben az sgt n\u00f6vel\u00e9se lesz.) \u00dcgyelj arra, hogy minden k\u00eds\u00e9rletet \u00fagy kezdj, hogy a kocsi a s\u00edn k\u00f6zep\u00e9hez k\u00f6zel legyen (ha sz\u00fcks\u00e9ges, adj ki egy M84 parancsot, majd k\u00e9zzel mozgasd a kocsit k\u00f6z\u00e9p\u00e1ll\u00e1sba). Meg kell tal\u00e1lni a legnagyobb \u00e9rz\u00e9kenys\u00e9get, amely megb\u00edzhat\u00f3an jelzi a v\u00e9g\u00e1ll\u00e1st (a nagyobb \u00e9rz\u00e9kenys\u00e9g\u0171 be\u00e1ll\u00edt\u00e1sok kicsi vagy semmilyen mozg\u00e1st nem eredm\u00e9nyeznek). Jegyezze fel a kapott \u00e9rt\u00e9ket maximum_sensitivity n\u00e9ven. (Ha a lehet\u0151 legkisebb \u00e9rz\u00e9kenys\u00e9get (SGTHRS=0 vagy sgt=63) kapjuk a kocsi elmozdul\u00e1sa n\u00e9lk\u00fcl, akkor valami nincs rendben a diag/sg_tst t\u0171k bek\u00f6t\u00e9s\u00e9vel vagy konfigur\u00e1ci\u00f3j\u00e1val, \u00e9s a folytat\u00e1s el\u0151tt ki kell jav\u00edtani.) A maximum_sensitivity keres\u00e9sekor k\u00e9nyelmes lehet a k\u00fcl\u00f6nb\u00f6z\u0151 VALUE be\u00e1ll\u00edt\u00e1sokra ugrani (a VALUE param\u00e9ter kett\u00e9oszt\u00e1sa \u00e9rdek\u00e9ben). Ha ezt tessz\u00fck, akkor k\u00e9sz\u00fclj\u00fcnk fel arra, hogy a nyomtat\u00f3 le\u00e1ll\u00edt\u00e1s\u00e1hoz adjunk ki egy M112 parancsot, mivel egy nagyon alacsony \u00e9rz\u00e9kenys\u00e9g\u0171 be\u00e1ll\u00edt\u00e1s miatt a tengely t\u00f6bbsz\u00f6r \"bele\u00fctk\u00f6zhet\" a s\u00edn v\u00e9g\u00e9be. \u00dcgyelj arra, hogy v\u00e1rj n\u00e9h\u00e1ny m\u00e1sodpercet minden egyes v\u00e9g\u00e1ll\u00e1si k\u00eds\u00e9rlet k\u00f6z\u00f6tt. Miut\u00e1n a TMC motorvez\u00e9rl\u0151 \u00e9rz\u00e9keli az elakad\u00e1st, eltarthat egy kis ideig, am\u00edg a bels\u0151 visszajelz\u0151je t\u00f6rl\u0151dik, \u00e9s k\u00e9pes lesz egy \u00fajabb meg\u00e1ll\u00e1st \u00e9rz\u00e9kelni. Ha a hangol\u00e1si tesztek sor\u00e1n a G28 X0 parancs nem mozdul el eg\u00e9szen a tengelyhat\u00e1rig, akkor \u00f3vatosan kell elj\u00e1rni a szab\u00e1lyos mozgat\u00e1si parancsok kiad\u00e1s\u00e1val (pl. G1 ). A Klipper nem fogja helyesen \u00e9rtelmezni a kocsi helyzet\u00e9t, \u00e9s a mozgat\u00e1si parancs nemk\u00edv\u00e1natos \u00e9s zavaros eredm\u00e9nyeket okozhat.","title":"Keresse meg a legmagasabb \u00e9rz\u00e9kenys\u00e9get, amely sikeresen jelzi a kezd\u0151pontot"},{"location":"TMC_Drivers.html#keresse-meg-a-legalacsonyabb-erzekenyseget-amely-egyetlen-erintessel-kezdoponton-van","text":"Ha a kapott maximum_sensitivity \u00e9rt\u00e9kkel \u00e1ll\u00edtja be a tengelyt a s\u00edn v\u00e9g\u00e9re, \u00e9s egy \"egyszeri \u00e9rint\u00e9ssel\" \u00e1ll meg, azaz nem szabad, hogy \"kattog\u00f3\" vagy \"csattan\u00f3\" hangot halljon. (Ha a maxim\u00e1lis \u00e9rz\u00e9kenys\u00e9g mellett csattan\u00f3 vagy kattog\u00f3 hang hallatszik, akkor a homing_speed t\u00fal alacsony, a meghajt\u00f3\u00e1ram t\u00fal alacsony, vagy az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel nem j\u00f3 v\u00e1laszt\u00e1s a tengely sz\u00e1m\u00e1ra.) A k\u00f6vetkez\u0151 l\u00e9p\u00e9s az, hogy a kocsit ism\u00e9t a s\u00edn k\u00f6zep\u00e9re mozgatjuk, cs\u00f6kkentj\u00fck az \u00e9rz\u00e9kenys\u00e9get, \u00e9s futtatjuk a SET_TMC_FIELD G28 X0 parancsokat. A c\u00e9l most az, hogy megtal\u00e1ljuk a legkisebb \u00e9rz\u00e9kenys\u00e9get, amely m\u00e9g mindig azt eredm\u00e9nyezi, hogy a kocsi egy \"egyetlen \u00e9rint\u00e9ssel\" sikeresen c\u00e9lba \u00e9r. Vagyis nem \"bumm\" vagy \"csatt\" a s\u00edn v\u00e9g\u00e9nek \u00e9rint\u00e9sekor. Jegyezze meg a tal\u00e1lt \u00e9rt\u00e9ket minimum_sensitivity .","title":"Keresse meg a legalacsonyabb \u00e9rz\u00e9kenys\u00e9get, amely egyetlen \u00e9rint\u00e9ssel kezd\u0151ponton van"},{"location":"TMC_Drivers.html#frissitse-a-printercfg-fajlt-az-erzekenysegi-ertekkel","text":"A maximum_sensitivity \u00e9s minimum_sensitivity meg\u00e1llap\u00edt\u00e1sa ut\u00e1n sz\u00e1mol\u00f3g\u00e9p seg\u00edts\u00e9g\u00e9vel kapjuk meg az aj\u00e1nlott \u00e9rz\u00e9kenys\u00e9get a minimum_sensitivity + (maximum_sensitivity - minimum_sensitivity)/3 k\u00e9plettel. Az aj\u00e1nlott \u00e9rz\u00e9kenys\u00e9gnek a minim\u00e1lis \u00e9s maxim\u00e1lis \u00e9rt\u00e9kek k\u00f6z\u00f6tti tartom\u00e1nyban kell lennie, de valamivel k\u00f6zelebb a minim\u00e1lis \u00e9rt\u00e9khez. A v\u00e9gs\u0151 \u00e9rt\u00e9ket kerek\u00edtse a legk\u00f6zelebbi eg\u00e9sz \u00e9rt\u00e9kre. A TMC2209 eset\u00e9ben ezt a konfigur\u00e1ci\u00f3ban a driver_SGTHRS , m\u00e1s TMC motorvez\u00e9rl\u0151k eset\u00e9ben a driver_SGT \u00e9rt\u00e9kkel kell be\u00e1ll\u00edtani. Ha a maximum_sensitivity \u00e9s minimum_sensitivity k\u00f6z\u00f6tti tartom\u00e1ny kicsi (pl. 5-n\u00e9l kisebb), akkor ez instabil kezd\u0151pont felv\u00e9telt eredm\u00e9nyezhet. A gyorsabb kezd\u0151pont felv\u00e9teli sebess\u00e9g n\u00f6velheti a hat\u00f3t\u00e1vols\u00e1got \u00e9s stabilabb\u00e1 teheti a m\u0171k\u00f6d\u00e9st. Vedd figyelembe, hogy ha b\u00e1rmilyen v\u00e1ltoz\u00e1s t\u00f6rt\u00e9nik a motorvez\u00e9rl\u0151 \u00e1ram\u00e1ban, az ind\u00edt\u00e1si sebess\u00e9gben vagy a nyomtat\u00f3 hardver\u00e9n, akkor a hangol\u00e1si folyamatot \u00fajra el kell v\u00e9gezni.","title":"Friss\u00edtse a printer.cfg f\u00e1jlt az \u00e9rz\u00e9kenys\u00e9gi \u00e9rt\u00e9kkel"},{"location":"TMC_Drivers.html#makrok-hasznalata-a-kezdopont-felvetel-soran","text":"Az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel befejez\u00e9se ut\u00e1n a kocsi a s\u00edn v\u00e9g\u00e9hez lesz nyomva, \u00e9s a l\u00e9ptet\u0151 er\u0151t fejt ki a keretre, am\u00edg a kocsi el nem mozdul. J\u00f3 \u00f6tlet egy makr\u00f3t l\u00e9trehozni a tengely kezd\u0151pont felv\u00e9tel\u00e9hez, \u00e9s azonnal elmozd\u00edtani a kocsit a s\u00edn v\u00e9g\u00e9t\u0151l. J\u00f3 \u00f6tlet, ha a makr\u00f3 legal\u00e1bb 2 m\u00e1sodperc sz\u00fcnetet tart az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel elind\u00edt\u00e1sa el\u0151tt (vagy m\u00e1s m\u00f3don biztos\u00edtja, hogy a l\u00e9ptet\u0151n 2 m\u00e1sodpercig nem volt mozg\u00e1s). A k\u00e9sleltet\u00e9s n\u00e9lk\u00fcl lehets\u00e9ges, hogy a meghajt\u00f3 bels\u0151 le\u00e1ll\u00e1si jelz\u0151je m\u00e9g mindig be van \u00e1ll\u00edtva egy kor\u00e1bbi mozg\u00e1s miatt. Az is hasznos lehet, ha ez a makr\u00f3 be\u00e1ll\u00edtja a meghajt\u00f3 \u00e1ram\u00e1t a kezd\u0151pont felv\u00e9tel el\u0151tt, \u00e9s \u00faj \u00e1ramot \u00e1ll\u00edt be, miut\u00e1n a kocsi elindult. Egy p\u00e9ldamakr\u00f3 \u00edgy n\u00e9zhet 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 %} # \u00c1ll\u00edtsuk be az \u00e1ramot az \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telhez SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR} # Sz\u00fcnet annak biztos\u00edt\u00e1s\u00e1ra, hogy a meghajt\u00f3 le\u00e1ll\u00e1si jelz\u0151je t\u00f6rl\u0151dj\u00f6n. G4 P2000 # Kezd\u0151pont G28 X0 # Elmozdul\u00e1s G90 G1 X5 F1200 # \u00c1ll\u00edtsd be az \u00e1ramer\u0151ss\u00e9get nyomtat\u00e1s k\u00f6zben SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CUR} Az \u00edgy kapott makr\u00f3 megh\u00edvhat\u00f3 a homing_override konfigur\u00e1ci\u00f3s szakasz vagy a START_PRINT makr\u00f3 seg\u00edts\u00e9g\u00e9vel. Vedd figyelembe, hogy ha a motorvez\u00e9rl\u0151 \u00e1ram\u00e1t a kezd\u0151pont felv\u00e9tel sor\u00e1n megv\u00e1ltoztatj\u00e1k, akkor a hangol\u00e1si folyamatot \u00fajra el kell v\u00e9gezni.","title":"Makr\u00f3k haszn\u00e1lata a kezd\u0151pont felv\u00e9tel sor\u00e1n"},{"location":"TMC_Drivers.html#tippek-corexy-gepek-szenzor-nelkuli-kezdopont-felvetelehez","text":"A CoreXY nyomtat\u00f3 X \u00e9s Y kocsikn\u00e1l \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telre is van lehet\u0151s\u00e9g. A Klipper a [stepper_x] l\u00e9ptet\u0151t haszn\u00e1lja az X kocsi kezd\u0151pont felv\u00e9telekor az elakad\u00e1sok \u00e9rz\u00e9kel\u00e9s\u00e9re, az Y kocsi kezd\u0151pont felv\u00e9telekor pedig a [stepper_y] l\u00e9ptet\u0151t. Haszn\u00e1ld a fent le\u00edrt hangol\u00e1si \u00fatmutat\u00f3t, hogy megtal\u00e1lja a megfelel\u0151 \"elakad\u00e1s \u00e9rz\u00e9kenys\u00e9get\" az egyes kocsikhoz, de vedd figyelembe a k\u00f6vetkez\u0151 korl\u00e1toz\u00e1sokat: Ha a CoreXY-n \u00e9rz\u00e9kel\u0151 n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9telt haszn\u00e1l, gy\u0151z\u0151dj meg r\u00f3la, hogy egyik l\u00e9ptet\u0151h\u00f6z sincs be\u00e1ll\u00edtva hold_current . A hangol\u00e1s sor\u00e1n gy\u0151z\u0151dj meg arr\u00f3l, hogy az X \u00e9s az Y kocsik a s\u00ednek k\u00f6zep\u00e9n\u00e9l vannak-e minden egyes kezd\u0151pont felv\u00e9teli k\u00eds\u00e9rlet el\u0151tt. A hangol\u00e1s befejez\u00e9se ut\u00e1n az X \u00e9s Y kezd\u0151pont felv\u00e9tel\u00e9t makr\u00f3k seg\u00edts\u00e9g\u00e9vel biztos\u00edtsa, hogy el\u0151sz\u00f6r az egyik tengely vedd fel a kezd\u0151pontot, majd mozgasd el a kocsit a tengelyhat\u00e1rt\u00f3l, tartson legal\u00e1bb 2 m\u00e1sodperc sz\u00fcnetet, majd kezd el a m\u00e1sik kocsi kezd\u0151pont felv\u00e9tel\u00e9t. A tengelyt\u0151l val\u00f3 elt\u00e1volod\u00e1ssal elker\u00fclhet\u0151, hogy az egyik tengelyt akkor ind\u00edtsuk el, amikor a m\u00e1sik a tengelyhat\u00e1rhoz van nyomva (ami eltorz\u00edthatja az akad\u00e1s\u00e9rz\u00e9kel\u00e9st). A sz\u00fcnetre az\u00e9rt van sz\u00fcks\u00e9g, hogy a meghajt\u00f3 az \u00fajraind\u00edt\u00e1s el\u0151tt t\u00f6r\u00f6lje az elakad\u00e1s \u00e9rz\u00e9kel\u0151 puffert. Egy p\u00e9lda CoreXY kezd\u0151pont felv\u00e9teli makr\u00f3 \u00edgy n\u00e9zhet ki: [gcode_macro HOME] gcode: G90 # Kezd\u0151pont Z G28 Z0 G1 Z10 F1200 # Kezd\u0151pont Y G28 Y0 G1 Y5 F1200 # Kezd\u0151pont X G4 P2000 G28 X0 G1 X5 F1200","title":"Tippek CoreXY g\u00e9pek szenzor n\u00e9lk\u00fcli kezd\u0151pont felv\u00e9tel\u00e9hez"},{"location":"TMC_Drivers.html#a-motorvezerlo-beallitasainak-lekerdezese-es-diagnosztizalasa","text":"A ` DUMP_TMC parancs hasznos eszk\u00f6z a motorvez\u00e9rl\u0151k konfigur\u00e1l\u00e1s\u00e1hoz \u00e9s diagnosztiz\u00e1l\u00e1s\u00e1hoz. A Klipper \u00e1ltal konfigur\u00e1lt \u00f6sszes mez\u0151t, valamint a motorvez\u00e9rl\u0151t lek\u00e9rdezhet\u0151 \u00f6sszes mez\u0151t jelenti. Az \u00f6sszes bejelentett mez\u0151t az egyes motorvez\u00e9rl\u0151k Trinamic adatlapja hat\u00e1rozza meg. Ezek az adatlapok megtal\u00e1lhat\u00f3k a Trinamic weboldal\u00e1n . A DUMP_TMC eredm\u00e9nyeinek \u00e9rtelmez\u00e9s\u00e9hez szerezd be \u00e9s tekintsd \u00e1t a meghajt\u00f3 Trinamic adatlapj\u00e1t.","title":"A motorvez\u00e9rl\u0151 be\u00e1ll\u00edt\u00e1sainak lek\u00e9rdez\u00e9se \u00e9s diagnosztiz\u00e1l\u00e1sa"},{"location":"TMC_Drivers.html#a-driver_xxx-beallitasok-konfiguralasa","text":"A Klipper t\u00e1mogatja sz\u00e1mos alacsony szint\u0171 motorvez\u00e9rl\u0151 konfigur\u00e1l\u00e1s\u00e1t a driver_XXX be\u00e1ll\u00edt\u00e1sok haszn\u00e1lat\u00e1val. A TMC meghajt\u00f3 konfigur\u00e1ci\u00f3s hivatkoz\u00e1s tartalmazza az egyes meghajt\u00f3t\u00edpusokhoz el\u00e9rhet\u0151 mez\u0151k teljes list\u00e1j\u00e1t. Ezenk\u00edv\u00fcl szinte minden mez\u0151 m\u00f3dos\u00edthat\u00f3 haszn\u00e1lat k\u00f6zben a SET_TMC_FIELD parancs seg\u00edts\u00e9g\u00e9vel. E mez\u0151k mindegyik\u00e9t az egyes meghajt\u00f3k Trinamic adatlapja hat\u00e1rozza meg. Ezek az adatlapok megtal\u00e1lhat\u00f3k a Trinamic weboldal\u00e1n . Vedd figyelembe, hogy a Trinamic adatlapok n\u00e9ha olyan megfogalmaz\u00e1st haszn\u00e1lnak, amely \u00f6sszet\u00e9veszthet egy magas szint\u0171 be\u00e1ll\u00edt\u00e1st (p\u00e9ld\u00e1ul \"hysteresis end\") egy alacsony szint\u0171 mez\u0151\u00e9rt\u00e9kkel (pl. \"HEND\"). A Klipperben a driver_XXX \u00e9s a SET_TMC_FIELD mindig azt az alacsony szint\u0171 mez\u0151\u00e9rt\u00e9ket \u00e1ll\u00edtja be, amely t\u00e9nylegesen a meghajt\u00f3ba \u00edr\u00f3dik. \u00cdgy p\u00e9ld\u00e1ul, ha a Trinamic adatlapja szerint 3 \u00e9rt\u00e9ket kell \u00edrni a HEND mez\u0151be, hogy a \"hiszter\u00e9zis v\u00e9ge\" 0 legyen, akkor a driver_HEND=3 be\u00e1ll\u00edt\u00e1s\u00e1val a 0 magas szint\u0171 \u00e9rt\u00e9ket kapjuk.","title":"A driver_XXX be\u00e1ll\u00edt\u00e1sok konfigur\u00e1l\u00e1sa"},{"location":"TMC_Drivers.html#gyakori-kerdesek","text":"","title":"Gyakori k\u00e9rd\u00e9sek"},{"location":"TMC_Drivers.html#hasznalhatom-a-stealthchop-uzemmodot-nyomas-elotolassal-rendelkezo-extruderen","text":"Sokan sikeresen haszn\u00e1lj\u00e1k a \"StealthChop\" \u00fczemm\u00f3dot a Klipper nyom\u00e1s el\u0151tol\u00e1ssal. A Klipper sim\u00edtott nyom\u00e1s el\u0151tol\u00e1sa , amely nem vezet be pillanatnyi sebess\u00e9g v\u00e1ltoz\u00e1st. A \"StealthChop\" \u00fczemm\u00f3d azonban alacsonyabb motornyomat\u00e9kot \u00e9s/vagy nagyobb motorh\u0151t eredm\u00e9nyezhet. Lehet, hogy ez az \u00fczemm\u00f3d megfelel\u0151 az \u00d6n adott nyomtat\u00f3ja sz\u00e1m\u00e1ra, de az is lehet, hogy nem.","title":"Haszn\u00e1lhatom a StealthChop \u00fczemm\u00f3dot nyom\u00e1s el\u0151tol\u00e1ssal rendelkez\u0151 extruderen?"},{"location":"TMC_Drivers.html#folyamatosan-kap-nem-tudom-olvasni-a-tmc-uart-stepper_x-regiszter-ifcnt-hibakat","text":"Ez akkor fordul el\u0151, ha a Klipper nem tud kommunik\u00e1lni egy TMC2208 vagy TMC2209 meghajt\u00f3val. Gy\u0151z\u0151dj meg r\u00f3la, hogy a motor t\u00e1pell\u00e1t\u00e1sa enged\u00e9lyezve van, mivel a l\u00e9ptet\u0151motor-meghajt\u00f3nak \u00e1ltal\u00e1ban motor\u00e1ramra van sz\u00fcks\u00e9ge, miel\u0151tt kommunik\u00e1lni tudna a mikrokontrollerrel. Ha ez a hiba a Klipper els\u0151 \u00e9get\u00e9se ut\u00e1n jelentkezik, akkor a l\u00e9ptet\u0151 meghajt\u00f3 kor\u00e1bban olyan \u00e1llapotba programoz\u00f3dott, amely nem kompatibilis a Klipperrel. Az \u00e1llapot vissza\u00e1ll\u00edt\u00e1s\u00e1hoz n\u00e9h\u00e1ny m\u00e1sodpercre t\u00e1vol\u00edtsa el a nyomtat\u00f3t az \u00e1ramell\u00e1t\u00e1st\u00f3l (fizikailag h\u00fazza ki az USB-t \u00e9s a h\u00e1l\u00f3zati csatlakoz\u00f3t). Ellenkez\u0151 esetben ez a hiba \u00e1ltal\u00e1ban az UART t\u0171 helytelen vezet\u00e9kez\u00e9s\u00e9nek vagy az UART t\u0171be\u00e1ll\u00edt\u00e1sok helytelen Klipper konfigur\u00e1ci\u00f3j\u00e1nak eredm\u00e9nye.","title":"Folyamatosan kap \"Nem tudom olvasni a tmc uart 'stepper_x' regiszter IFCNT\" hib\u00e1kat?"},{"location":"TMC_Drivers.html#folyamatosan-kap-nem-lehet-irni-tmc-spi-stepper_x-register-hibat","text":"Ez akkor fordul el\u0151, ha a Klipper nem tud kommunik\u00e1lni egy TMC2208 vagy TMC2209 motorvez\u00e9rl\u0151vel. Gy\u0151z\u0151dj meg r\u00f3la, hogy a motor t\u00e1pell\u00e1t\u00e1sa enged\u00e9lyezve van, mivel a l\u00e9ptet\u0151motor-meghajt\u00f3nak \u00e1ltal\u00e1ban motor\u00e1ramra van sz\u00fcks\u00e9ge, miel\u0151tt kommunik\u00e1lni tudna a mikrokontrollerrel. Ellenkez\u0151 esetben ez a hiba \u00e1ltal\u00e1ban a helytelen SPI vezet\u00e9kez\u00e9s, az SPI be\u00e1ll\u00edt\u00e1sok helytelen Klipper-konfigur\u00e1ci\u00f3ja vagy az SPI buszon l\u00e9v\u0151 eszk\u00f6z\u00f6k hi\u00e1nyos konfigur\u00e1ci\u00f3j\u00e1nak eredm\u00e9nye. Ne feledd, hogy ha a motorvez\u00e9rl\u0151 egy megosztott SPI buszon van t\u00f6bb eszk\u00f6zzel, akkor gy\u0151z\u0151dj meg r\u00f3la, hogy teljes m\u00e9rt\u00e9kben konfigur\u00e1ld a Klipperben l\u00e9v\u0151 megosztott SPI busz minden eszk\u00f6z\u00e9t. Ha egy megosztott SPI buszon l\u00e9v\u0151 eszk\u00f6z nincs konfigur\u00e1lva, akkor el\u0151fordulhat, hogy helytelen\u00fcl reag\u00e1l a nem erre sz\u00e1nt parancsokra, \u00e9s meghi\u00fasul a k\u00edv\u00e1nt eszk\u00f6zzel folytatott kommunik\u00e1ci\u00f3. Ha van olyan eszk\u00f6z egy megosztott SPI buszon, amelyet nem lehet konfigur\u00e1lni a Klipperben, akkor a static_digital_output konfigur\u00e1ci\u00f3s szakasz seg\u00edts\u00e9g\u00e9vel \u00e1ll\u00edtsd magasra a nem haszn\u00e1lt eszk\u00f6z CS t\u0171j\u00e9t (hogy ne k\u00eds\u00e9relje meg haszn\u00e1lni az SPI buszt). A t\u00e1bla v\u00e1zlata gyakran hasznos referencia annak meg\u00e1llap\u00edt\u00e1s\u00e1hoz, hogy mely eszk\u00f6z\u00f6k vannak egy SPI buszon \u00e9s a hozz\u00e1juk tartoz\u00f3 t\u0171k\u00f6n.","title":"Folyamatosan kap \"Nem lehet \u00edrni tmc spi \"stepper_x\" register ...\" hib\u00e1t?"},{"location":"TMC_Drivers.html#miert-kaptam-egy-tmc-jelentes-hiba-hibauzenetet","text":"Az ilyen t\u00edpus\u00fa hiba azt jelzi, hogy a TMC motorvez\u00e9rl\u0151 hib\u00e1t \u00e9szlelt, \u00e9s letiltotta mag\u00e1t. Vagyis a meghajt\u00f3 abbahagyta a poz\u00edci\u00f3j\u00e1t, \u00e9s figyelmen k\u00edv\u00fcl hagyta a mozg\u00e1si parancsokat. Ha a Klipper azt \u00e9szleli, hogy egy akt\u00edv motorvez\u00e9rl\u0151 letiltotta mag\u00e1t, a nyomtat\u00f3t \"le\u00e1ll\u00edt\u00e1s\" \u00e1llapotba \u00e1ll\u00edtja. Az is lehets\u00e9ges, hogy a TMC hiba le\u00e1ll\u00edt\u00e1sa SPI hib\u00e1k miatt k\u00f6vetkezik be, amelyek megakad\u00e1lyozz\u00e1k a motorvez\u00e9rl\u0151kkel val\u00f3 kommunik\u00e1ci\u00f3t (TMC2130, TMC5160 vagy TMC2660). Ebben az esetben gyakori, hogy a jelentett motorvez\u00e9rl\u0151 \u00e1llapota 000000000 vagy ffffffffff - p\u00e9ld\u00e1ul: TMC hib\u00e1t jelent: DRV_STATUS: ffffffff ... VAGY TMC jelent\u00e9sek hiba: READRSP@RDSEL2: 00000000 ... . Az ilyen hiba oka lehet egy SPI vezet\u00e9kez\u00e9si probl\u00e9ma, vagy lehet a vissza\u00e1ll\u00edt\u00e1s, vagy a TMC motorvez\u00e9rl\u0151. N\u00e9h\u00e1ny gyakori hiba \u00e9s tipp a diagnosztiz\u00e1l\u00e1shoz:","title":"Mi\u00e9rt kaptam egy \"TMC jelent\u00e9s hiba: ...\" hiba\u00fczenetet?"},{"location":"TMC_Drivers.html#tmc-hibat-jelent-ot1overtemperror","text":"Ez azt jelzi, hogy a motorvez\u00e9rl\u0151 kikapcsolta mag\u00e1t, mert t\u00falmelegedett. A tipikus megold\u00e1sok a l\u00e9ptet\u0151motor \u00e1ram\u00e1nak cs\u00f6kkent\u00e9se, a motorvez\u00e9rl\u0151 \u00e9s/vagy a l\u00e9ptet\u0151motor h\u0171t\u00e9se.","title":"TMC hib\u00e1t jelent: ... ot=1(OvertempError!)"},{"location":"TMC_Drivers.html#a-tmc-hibat-jelent-shorttognd-vagy-lowsideshort","text":"Ez azt jelzi, hogy a motorvez\u00e9rl\u0151 letiltotta mag\u00e1t, mert nagyon magas \u00e1ramot \u00e9rz\u00e9kelt a meghajt\u00f3n kereszt\u00fcl. Ez azt jelezheti, hogy meglazult vagy r\u00f6vidre z\u00e1rt vezet\u00e9k van a l\u00e9ptet\u0151motorban vagy mag\u00e1hoz a l\u00e9ptet\u0151motorhoz fut\u00f3 vezet\u00e9k hib\u00e1s. Ez a hiba akkor is el\u0151fordulhat, ha StealthChop \u00fczemm\u00f3dot haszn\u00e1l, \u00e9s a TMC motorvez\u00e9rl\u0151 nem k\u00e9pes pontosan megj\u00f3solni a motor mechanikai terhel\u00e9s\u00e9t. (Ha a motorvez\u00e9rl\u0151 rosszul j\u00f3sol, akkor el\u0151fordulhat, hogy t\u00fal nagy \u00e1ramot k\u00fcld a motoron kereszt\u00fcl, \u00e9s ezzel kiv\u00e1ltja saj\u00e1t t\u00fal\u00e1ram-\u00e9rz\u00e9kel\u00e9s\u00e9t). Ennek tesztel\u00e9s\u00e9hez kapcsold ki a StealthChop \u00fczemm\u00f3dot, \u00e9s ellen\u0151rizd, hogy a hib\u00e1k tov\u00e1bbra is el\u0151fordulnak-e.","title":"A TMC hib\u00e1t jelent: ... ShortToGND VAGY LowSideShort"},{"location":"TMC_Drivers.html#a-tmc-hibat-jelent-reset1reset-vagy-cs_actual0reset-vagy-se0reset","text":"Ez azt jelzi, hogy a motorvez\u00e9rl\u0151 a nyomtat\u00e1s k\u00f6zep\u00e9n vissza\u00e1ll\u00edtotta mag\u00e1t. Ennek oka lehet fesz\u00fclts\u00e9g vagy vezet\u00e9kez\u00e9si probl\u00e9ma.","title":"A TMC hib\u00e1t jelent: ... reset=1(Reset) VAGY CS_ACTUAL=0(Reset?) VAGY SE=0(Reset?)"},{"location":"TMC_Drivers.html#a-tmc-hibat-jelent-uv_cp1undervoltage","text":"Ez azt jelzi, hogy a motorvez\u00e9rl\u0151 alacsony fesz\u00fclts\u00e9get \u00e9szlelt, \u00e9s letiltotta mag\u00e1t. Ennek oka lehet vezet\u00e9kez\u00e9si vagy t\u00e1pell\u00e1t\u00e1si probl\u00e9ma.","title":"A TMC hib\u00e1t jelent: ... uv_cp=1(Undervoltage!)"},{"location":"TMC_Drivers.html#hogyan-tudom-beallitani-a-spreadcyclecoolstepetc-uzemmodot-a-motorvezerloimhez","text":"A Trinamic weboldal tartalmaz \u00fatmutat\u00f3kat a motorvez\u00e9rl\u0151k konfigur\u00e1l\u00e1s\u00e1hoz. Ezek az \u00fatmutat\u00f3k gyakran technikai jelleg\u0171ek, alacsony szint\u0171ek, \u00e9s speci\u00e1lis hardvert ig\u00e9nyelhetnek. Ett\u0151l f\u00fcggetlen\u00fcl ez a legjobb inform\u00e1ci\u00f3forr\u00e1s.","title":"Hogyan tudom be\u00e1ll\u00edtani a spreadCycle/coolStep/etc. \u00fczemm\u00f3dot a motorvez\u00e9rl\u0151imhez?"},{"location":"TSL1401CL_Filament_Width_Sensor.html","text":"TSL1401CL nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 \u00b6 Ez a dokumentum a nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 gazdag\u00e9p modulj\u00e1t \u00edrja le. A gazdamodul fejleszt\u00e9s\u00e9hez haszn\u00e1lt hardver a TSL1401CL line\u00e1ris \u00e9rz\u00e9kel\u0151t\u00f6mb\u00f6n alapul, de b\u00e1rmilyen anal\u00f3g kimenettel rendelkez\u0151 \u00e9rz\u00e9kel\u0151t\u00f6mbbel m\u0171k\u00f6dik. Terveket a Thingiverse oldalon tal\u00e1lja. \u00c9rz\u00e9kel\u0151t\u00f6mb nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151k\u00e9nt val\u00f3 haszn\u00e1lat\u00e1hoz olvasd el a Konfigur\u00e1ci\u00f3s hivatkoz\u00e1s \u00e9s a G-k\u00f3d dokument\u00e1ci\u00f3 r\u00e9szt. Hogyan m\u0171k\u00f6dik? \u00b6 Az \u00e9rz\u00e9kel\u0151 anal\u00f3g kimenetet gener\u00e1l a sz\u00e1m\u00edtott nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9ge alapj\u00e1n. A kimeneti fesz\u00fclts\u00e9g mindig megegyezik a nyomtat\u00f3sz\u00e1l \u00e9rz\u00e9kelt sz\u00e9less\u00e9g\u00e9vel (pl. 1,65 V, 1,70 V, 3,0 V). A gazdamodul figyeli a fesz\u00fclts\u00e9gv\u00e1ltoz\u00e1sokat \u00e9s be\u00e1ll\u00edtja az extrud\u00e1l\u00e1si szorz\u00f3t. Jegyzet: \u00b6 Az \u00e9rz\u00e9kel\u0151 leolvas\u00e1sa alap\u00e9rtelmez\u00e9s szerint 10 mm-es id\u0151k\u00f6z\u00f6nk\u00e9nt t\u00f6rt\u00e9nik. Ha sz\u00fcks\u00e9ges, szabadon m\u00f3dos\u00edthatod ezt a be\u00e1ll\u00edt\u00e1st a MEASUREMENT_INTERVAL_MM param\u00e9ter szerkeszt\u00e9s\u00e9vel a filament_width_sensor.py f\u00e1jlban.","title":"TSL1401CL nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151"},{"location":"TSL1401CL_Filament_Width_Sensor.html#tsl1401cl-nyomtatoszal-szelesseg-erzekelo","text":"Ez a dokumentum a nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151 gazdag\u00e9p modulj\u00e1t \u00edrja le. A gazdamodul fejleszt\u00e9s\u00e9hez haszn\u00e1lt hardver a TSL1401CL line\u00e1ris \u00e9rz\u00e9kel\u0151t\u00f6mb\u00f6n alapul, de b\u00e1rmilyen anal\u00f3g kimenettel rendelkez\u0151 \u00e9rz\u00e9kel\u0151t\u00f6mbbel m\u0171k\u00f6dik. Terveket a Thingiverse oldalon tal\u00e1lja. \u00c9rz\u00e9kel\u0151t\u00f6mb nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151k\u00e9nt val\u00f3 haszn\u00e1lat\u00e1hoz olvasd el a Konfigur\u00e1ci\u00f3s hivatkoz\u00e1s \u00e9s a G-k\u00f3d dokument\u00e1ci\u00f3 r\u00e9szt.","title":"TSL1401CL nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9g \u00e9rz\u00e9kel\u0151"},{"location":"TSL1401CL_Filament_Width_Sensor.html#hogyan-mukodik","text":"Az \u00e9rz\u00e9kel\u0151 anal\u00f3g kimenetet gener\u00e1l a sz\u00e1m\u00edtott nyomtat\u00f3sz\u00e1l sz\u00e9less\u00e9ge alapj\u00e1n. A kimeneti fesz\u00fclts\u00e9g mindig megegyezik a nyomtat\u00f3sz\u00e1l \u00e9rz\u00e9kelt sz\u00e9less\u00e9g\u00e9vel (pl. 1,65 V, 1,70 V, 3,0 V). A gazdamodul figyeli a fesz\u00fclts\u00e9gv\u00e1ltoz\u00e1sokat \u00e9s be\u00e1ll\u00edtja az extrud\u00e1l\u00e1si szorz\u00f3t.","title":"Hogyan m\u0171k\u00f6dik?"},{"location":"TSL1401CL_Filament_Width_Sensor.html#jegyzet","text":"Az \u00e9rz\u00e9kel\u0151 leolvas\u00e1sa alap\u00e9rtelmez\u00e9s szerint 10 mm-es id\u0151k\u00f6z\u00f6nk\u00e9nt t\u00f6rt\u00e9nik. Ha sz\u00fcks\u00e9ges, szabadon m\u00f3dos\u00edthatod ezt a be\u00e1ll\u00edt\u00e1st a MEASUREMENT_INTERVAL_MM param\u00e9ter szerkeszt\u00e9s\u00e9vel a filament_width_sensor.py f\u00e1jlban.","title":"Jegyzet:"},{"location":"Using_PWM_Tools.html","text":"PWM eszk\u00f6z\u00f6k haszn\u00e1lata \u00b6 Ez a dokumentum le\u00edrja, hogyan \u00e1ll\u00edthatsz be egy PWM-vez\u00e9relt l\u00e9zert vagy ors\u00f3t az output_pin \u00e9s n\u00e9h\u00e1ny makr\u00f3 seg\u00edts\u00e9g\u00e9vel. Hogyan m\u0171k\u00f6dik? \u00b6 A nyomtat\u00f3fej ventil\u00e1tor PWM kimenet\u00e9nek felhaszn\u00e1l\u00e1s\u00e1val l\u00e9zereket vagy ors\u00f3kat vez\u00e9relhetsz. Ez akkor hasznos, ha kapcsolhat\u00f3 nyomtat\u00f3fejeket haszn\u00e1lsz, p\u00e9ld\u00e1ul az E3D szersz\u00e1mv\u00e1lt\u00f3 vagy egy bark\u00e1csmegold\u00e1s. \u00c1ltal\u00e1ban az olyan cam-tool, mint a LaserWeb, \u00fagy konfigur\u00e1lhat\u00f3k, hogy M3-M5 parancsokat haszn\u00e1ljanak, amelyek spindle speed CW ( M3 S[0-255] ), spindle speed CCW ( M4 S[0-255] ) \u00e9s spindle stop ( M5 ). Figyelmeztet\u00e9s: A l\u00e9zer haszn\u00e1latakor tarts be minden biztons\u00e1gi \u00f3vint\u00e9zked\u00e9st, amit csak lehet! A di\u00f3dal\u00e9zerek \u00e1ltal\u00e1ban invert\u00e1ltak. Ez azt jelenti, hogy amikor az MCU \u00fajraindul, a l\u00e9zer teljesen be lesz kapcsolva arra az id\u0151re. A biztons\u00e1g kedv\u00e9\u00e9rt aj\u00e1nlott mindig megfelel\u0151 hull\u00e1mhossz\u00fas\u00e1g\u00fa l\u00e9zerszem\u00fcveget viselni, ha a l\u00e9zer be van kapcsolva, \u00e9s a l\u00e9zert le kell kapcsolni, ha nincs r\u00e1 sz\u00fcks\u00e9g. Emellett be kell \u00e1ll\u00edtani egy biztons\u00e1gi id\u0151korl\u00e1tot, hogy ha a gazdag\u00e9p vagy az MCU hib\u00e1t \u00e9szlel, a szersz\u00e1m le\u00e1lljon. Egy p\u00e9ldakonfigur\u00e1ci\u00f3\u00e9rt l\u00e1sd config/sample-pwm-tool.cfg . Jelenlegi korl\u00e1toz\u00e1sok \u00b6 Korl\u00e1tozott, hogy milyen gyakoriak lehetnek a PWM-friss\u00edt\u00e9sek. B\u00e1r nagyon pontos, a PWM friss\u00edt\u00e9s csak 0,1 m\u00e1sodpercenk\u00e9nt fordulhat el\u0151, \u00edgy szinte haszn\u00e1lhatatlann\u00e1 v\u00e1lik a rasztergrav\u00edroz\u00e1shoz. L\u00e9tezik azonban egy k\u00eds\u00e9rleti \u00e1g , amelynek saj\u00e1t kompromisszumai vannak. Hossz\u00fa t\u00e1von azt tervezik, hogy ezt a funkci\u00f3t hozz\u00e1adj\u00e1k a f\u0151vonali klipperhez. Parancsok \u00b6 M3/M4 S<value> : PWM-\u00fczemm\u00f3d be\u00e1ll\u00edt\u00e1sa. \u00c9rt\u00e9kek 0 \u00e9s 255 k\u00f6z\u00f6tt. M5 : PWM kimenet le\u00e1ll\u00edt\u00e1sa a kikapcsol\u00e1si \u00e9rt\u00e9kre. Laserweb konfigur\u00e1ci\u00f3 \u00b6 Ha a Laserwebet haszn\u00e1lod, akkor a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3 m\u0171k\u00f6dhet: GCODE START: M5 ; L\u00e9zer letilt\u00e1sa G21 ;\u00c1ll\u00edtsd az egys\u00e9geket mm-re G90 ; Abszol\u00fat pozicion\u00e1l\u00e1s G0 Z0 F7000 ;\u00c1ll\u00edtsd be a nem v\u00e1g\u00e1si sebess\u00e9get GCODE END: M5 ; L\u00e9zer letilt\u00e1sa G91 ; relat\u00edv G0 Z+20 F4000 ; G90 ; abszol\u00fat GCODE HOMING: M5 ; L\u00e9zer letilt\u00e1sa G28 ; Kezd\u0151pontfelv\u00e9tel minden tengelyen TOOL ON: M3 $INTENSITY TOOL OFF: M5 ; L\u00e9zer letilt\u00e1sa LASER INTENSITY: S","title":"PWM eszk\u00f6z\u00f6k haszn\u00e1lata"},{"location":"Using_PWM_Tools.html#pwm-eszkozok-hasznalata","text":"Ez a dokumentum le\u00edrja, hogyan \u00e1ll\u00edthatsz be egy PWM-vez\u00e9relt l\u00e9zert vagy ors\u00f3t az output_pin \u00e9s n\u00e9h\u00e1ny makr\u00f3 seg\u00edts\u00e9g\u00e9vel.","title":"PWM eszk\u00f6z\u00f6k haszn\u00e1lata"},{"location":"Using_PWM_Tools.html#hogyan-mukodik","text":"A nyomtat\u00f3fej ventil\u00e1tor PWM kimenet\u00e9nek felhaszn\u00e1l\u00e1s\u00e1val l\u00e9zereket vagy ors\u00f3kat vez\u00e9relhetsz. Ez akkor hasznos, ha kapcsolhat\u00f3 nyomtat\u00f3fejeket haszn\u00e1lsz, p\u00e9ld\u00e1ul az E3D szersz\u00e1mv\u00e1lt\u00f3 vagy egy bark\u00e1csmegold\u00e1s. \u00c1ltal\u00e1ban az olyan cam-tool, mint a LaserWeb, \u00fagy konfigur\u00e1lhat\u00f3k, hogy M3-M5 parancsokat haszn\u00e1ljanak, amelyek spindle speed CW ( M3 S[0-255] ), spindle speed CCW ( M4 S[0-255] ) \u00e9s spindle stop ( M5 ). Figyelmeztet\u00e9s: A l\u00e9zer haszn\u00e1latakor tarts be minden biztons\u00e1gi \u00f3vint\u00e9zked\u00e9st, amit csak lehet! A di\u00f3dal\u00e9zerek \u00e1ltal\u00e1ban invert\u00e1ltak. Ez azt jelenti, hogy amikor az MCU \u00fajraindul, a l\u00e9zer teljesen be lesz kapcsolva arra az id\u0151re. A biztons\u00e1g kedv\u00e9\u00e9rt aj\u00e1nlott mindig megfelel\u0151 hull\u00e1mhossz\u00fas\u00e1g\u00fa l\u00e9zerszem\u00fcveget viselni, ha a l\u00e9zer be van kapcsolva, \u00e9s a l\u00e9zert le kell kapcsolni, ha nincs r\u00e1 sz\u00fcks\u00e9g. Emellett be kell \u00e1ll\u00edtani egy biztons\u00e1gi id\u0151korl\u00e1tot, hogy ha a gazdag\u00e9p vagy az MCU hib\u00e1t \u00e9szlel, a szersz\u00e1m le\u00e1lljon. Egy p\u00e9ldakonfigur\u00e1ci\u00f3\u00e9rt l\u00e1sd config/sample-pwm-tool.cfg .","title":"Hogyan m\u0171k\u00f6dik?"},{"location":"Using_PWM_Tools.html#jelenlegi-korlatozasok","text":"Korl\u00e1tozott, hogy milyen gyakoriak lehetnek a PWM-friss\u00edt\u00e9sek. B\u00e1r nagyon pontos, a PWM friss\u00edt\u00e9s csak 0,1 m\u00e1sodpercenk\u00e9nt fordulhat el\u0151, \u00edgy szinte haszn\u00e1lhatatlann\u00e1 v\u00e1lik a rasztergrav\u00edroz\u00e1shoz. L\u00e9tezik azonban egy k\u00eds\u00e9rleti \u00e1g , amelynek saj\u00e1t kompromisszumai vannak. Hossz\u00fa t\u00e1von azt tervezik, hogy ezt a funkci\u00f3t hozz\u00e1adj\u00e1k a f\u0151vonali klipperhez.","title":"Jelenlegi korl\u00e1toz\u00e1sok"},{"location":"Using_PWM_Tools.html#parancsok","text":"M3/M4 S<value> : PWM-\u00fczemm\u00f3d be\u00e1ll\u00edt\u00e1sa. \u00c9rt\u00e9kek 0 \u00e9s 255 k\u00f6z\u00f6tt. M5 : PWM kimenet le\u00e1ll\u00edt\u00e1sa a kikapcsol\u00e1si \u00e9rt\u00e9kre.","title":"Parancsok"},{"location":"Using_PWM_Tools.html#laserweb-konfiguracio","text":"Ha a Laserwebet haszn\u00e1lod, akkor a k\u00f6vetkez\u0151 konfigur\u00e1ci\u00f3 m\u0171k\u00f6dhet: GCODE START: M5 ; L\u00e9zer letilt\u00e1sa G21 ;\u00c1ll\u00edtsd az egys\u00e9geket mm-re G90 ; Abszol\u00fat pozicion\u00e1l\u00e1s G0 Z0 F7000 ;\u00c1ll\u00edtsd be a nem v\u00e1g\u00e1si sebess\u00e9get GCODE END: M5 ; L\u00e9zer letilt\u00e1sa G91 ; relat\u00edv G0 Z+20 F4000 ; G90 ; abszol\u00fat GCODE HOMING: M5 ; L\u00e9zer letilt\u00e1sa G28 ; Kezd\u0151pontfelv\u00e9tel minden tengelyen TOOL ON: M3 $INTENSITY TOOL OFF: M5 ; L\u00e9zer letilt\u00e1sa LASER INTENSITY: S","title":"Laserweb konfigur\u00e1ci\u00f3"}]} \ No newline at end of file
diff --git a/hu/sitemap.xml b/hu/sitemap.xml
index 80b77ebb9..ada401350 100644
--- a/hu/sitemap.xml
+++ b/hu/sitemap.xml
@@ -2,252 +2,252 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
</urlset> \ No newline at end of file
diff --git a/hu/sitemap.xml.gz b/hu/sitemap.xml.gz
index 03304655d..2dab411a9 100644
--- a/hu/sitemap.xml.gz
+++ b/hu/sitemap.xml.gz
Binary files differ
diff --git a/it/Benchmarks.html b/it/Benchmarks.html
index 1cf85eaa2..396f14b92 100644
--- a/it/Benchmarks.html
+++ b/it/Benchmarks.html
@@ -1096,8 +1096,8 @@
</li>
<li class="md-nav__item">
- <a href="#stm32h7-step-rate-benchmark" class="md-nav__link">
- STM32H7 step rate benchmark
+ <a href="#stm32h7-benchmark-della-velocita-di-step" class="md-nav__link">
+ STM32H7 benchmark della velocità di step
</a>
</li>
@@ -1465,8 +1465,8 @@
</li>
<li class="md-nav__item">
- <a href="#stm32h7-step-rate-benchmark" class="md-nav__link">
- STM32H7 step rate benchmark
+ <a href="#stm32h7-benchmark-della-velocita-di-step" class="md-nav__link">
+ STM32H7 benchmark della velocità di step
</a>
</li>
@@ -1833,8 +1833,8 @@ finalize_config crc=0
</tr>
</tbody>
</table>
-<h3 id="stm32h7-step-rate-benchmark">STM32H7 step rate benchmark<a class="headerlink" href="#stm32h7-step-rate-benchmark" title="Permanent link">&para;</a></h3>
-<p>The following configuration sequence is used on a STM32H743VIT6:</p>
+<h3 id="stm32h7-benchmark-della-velocita-di-step">STM32H7 benchmark della velocità di step<a class="headerlink" href="#stm32h7-benchmark-della-velocita-di-step" title="Permanent link">&para;</a></h3>
+<p>La seguente sequenza di configurazione viene utilizzata su un STM32H743VIT6:</p>
<div class="highlight"><pre><span></span><code>allocate_oids count=3
config_stepper oid=0 step_pin=PD4 dir_pin=PD3 invert_step=-1 step_pulse_ticks=0
config_stepper oid=1 step_pin=PA15 dir_pin=PA8 invert_step=-1 step_pulse_ticks=0
@@ -1842,7 +1842,7 @@ config_stepper oid=2 step_pin=PE2 dir_pin=PE3 invert_step=-1 step_pulse_ticks=0
finalize_config crc=0
</code></pre></div>
-<p>The test was last run on commit <code>00191b5c</code> with gcc version <code>arm-none-eabi-gcc (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027]</code>.</p>
+<p>Il test è stato eseguito l'ultima volta su commit <code>00191b5c</code> con versione gcc <code>arm-none-eabi-gcc (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revisione 273027]</code>.</p>
<table>
<thead>
<tr>
diff --git a/it/CANBUS.html b/it/CANBUS.html
index 072109b92..4f933ea31 100644
--- a/it/CANBUS.html
+++ b/it/CANBUS.html
@@ -1358,7 +1358,7 @@
<h1 id="canbus">CANBUS<a class="headerlink" href="#canbus" title="Permanent link">&para;</a></h1>
<p>Questo documento descrive il supporto del CAN bus di Klipper.</p>
<h2 id="hardware-del-dispositivo">Hardware del dispositivo<a class="headerlink" href="#hardware-del-dispositivo" title="Permanent link">&para;</a></h2>
-<p>Klipper currently supports CAN on stm32, same5x, and rp2040 chips. In addition, the micro-controller chip must be on a board that has a CAN transceiver.</p>
+<p>Klipper attualmente supporta CAN su chip stm32, same5x e rp2040. Inoltre, il chip del microcontrollore deve trovarsi su una scheda dotata di un ricetrasmettitore CAN.</p>
<p>Per compilare per CAN, eseguire <code>make menuconfig</code> e selezionare "CAN bus" come interfaccia di comunicazione. Infine, compila il codice del microcontrollore e flashalo sulla scheda di destinazione.</p>
<h2 id="hardware-host">Hardware Host<a class="headerlink" href="#hardware-host" title="Permanent link">&para;</a></h2>
<p>Per utilizzare un bus CAN, è necessario disporre di un adattatore sul host. Attualmente ci sono due opzioni comuni:</p>
diff --git a/it/CONTRIBUTING.html b/it/CONTRIBUTING.html
index aa0af67fd..b247ab604 100644
--- a/it/CONTRIBUTING.html
+++ b/it/CONTRIBUTING.html
@@ -1388,7 +1388,7 @@
<p>L'invio è privo di difetti ed è pronto per essere diffuso?I realizzatori dei contributi sono tenuti a testare le loro modifiche prima dell'invio. I revisori cercano gli errori, ma in generale non testano gli invii. Un invio accettato viene spesso distribuito a migliaia di stampanti entro poche settimane dall'accettazione. La qualità degli invii è quindi considerata una priorità.</p>
<p>Il repository GitHub principale <a href="https://github.com/Klipper3d/klipper">Klipper3d/klipper</a> non accetta lavori sperimentali. I realizzatori di contributi devono eseguire la sperimentazione, il debug e il test nei propri repository. Il server <a href="Contact.html">Klipper Discourse</a> è un buon posto per aumentare la consapevolezza del nuovo lavoro e per trovare utenti interessati a fornire feedback nel mondo reale.</p>
<p>Gli invii devono superare tutti i <a href="Debugging.html">test di regressione</a>.</p>
-<p>When fixing a defect in the code, submitters should have a general understanding of the root cause of that defect, and the fix should target that root cause.</p>
+<p>Quando si corregge un difetto nel codice, i submitters dovrebbero avere una comprensione generale della causa principale di tale difetto e la correzione dovrebbe mirare a tale causa principale.</p>
<p>Gli contributi di codice non devono contenere codice di debug eccessivo, opzioni di debug o registrazione del debug in fase di runtime.</p>
<p>I commenti negli invii di codice dovrebbero concentrarsi sul miglioramento della manutenzione del codice. Gli invii non devono contenere "codice commentato" né commenti eccessivi che descrivono implementazioni passate. Non dovrebbero esserci commenti "todo" eccessivi.</p>
<p>Gli aggiornamenti alla documentazione non devono dichiarare che si tratta di un "work in progress".</p>
diff --git a/it/G-Codes.html b/it/G-Codes.html
index 64a3776bf..f494f5036 100644
--- a/it/G-Codes.html
+++ b/it/G-Codes.html
@@ -4667,9 +4667,9 @@
<h4 id="cancel_print">CANCEL_PRINT<a class="headerlink" href="#cancel_print" title="Permanent link">&para;</a></h4>
<p><code>CANCEL_PRINT</code>: Annulla la stampa corrente.</p>
<h3 id="print_stats">[print_stats]<a class="headerlink" href="#print_stats" title="Permanent link">&para;</a></h3>
-<p>The print_stats module is automatically loaded.</p>
+<p>Il modulo print_stats viene caricato automaticamente.</p>
<h4 id="set_print_stats_info">SET_PRINT_STATS_INFO<a class="headerlink" href="#set_print_stats_info" title="Permanent link">&para;</a></h4>
-<p><code>SET_PRINT_STATS_INFO [TOTAL_LAYER=&lt;total_layer_count&gt;] [CURRENT_LAYER= &lt;current_layer&gt;]</code>: Pass slicer info like layer act and total to Klipper. Add <code>SET_PRINT_STATS_INFO [TOTAL_LAYER=&lt;total_layer_count&gt;]</code> to your slicer start gcode section and <code>SET_PRINT_STATS_INFO [CURRENT_LAYER= &lt;current_layer&gt;]</code> at the layer change gcode section to pass layer information from your slicer to Klipper.</p>
+<p><code>SET_PRINT_STATS_INFO [TOTAL_LAYER=&lt;total_layer_count&gt;] [CURRENT_LAYER= &lt;current_layer&gt;]</code>: passa le informazioni sulo slicer come il layer attivo ed il totale a Klipper. Aggiungi <code>SET_PRINT_STATS_INFO [TOTAL_LAYER=&lt;total_layer_count&gt;]</code> alla sezione gcode di inizio del tuo slicer e <code>SET_PRINT_STATS_INFO [CURRENT_LAYER= &lt;current_layer&gt;]</code> alla sezione gcode di cambio livello per passare le informazioni sul livello dal tuo slicer a Klipper.</p>
<h3 id="probe">[probe]<a class="headerlink" href="#probe" title="Permanent link">&para;</a></h3>
<p>I seguenti comandi sono disponibili quando è abilitata una <a href="Config_Reference.html#probe">sezione di configurazione della sonda</a> o una <a href="Config_Reference.html#bltouch">sezione di configurazione di bltouch</a> (consultare anche la <a href="Probe_Calibrate.html">guida alla calibrazione della sonda</a>).</p>
<h4 id="sonda">sonda<a class="headerlink" href="#sonda" title="Permanent link">&para;</a></h4>
@@ -4800,9 +4800,9 @@
<h4 id="sdcard_reset_file">SDCARD_RESET_FILE<a class="headerlink" href="#sdcard_reset_file" title="Permanent link">&para;</a></h4>
<p><code>SDCARD_RESET_FILE</code>: Scarica il file e cancella lo stato SD.</p>
<h3 id="z_thermal_adjust">[z_thermal_adjust]<a class="headerlink" href="#z_thermal_adjust" title="Permanent link">&para;</a></h3>
-<p>The following commands are available when the <a href="Config_Reference.html#z_thermal_adjust">z_thermal_adjust config section</a> is enabled.</p>
+<p>I seguenti comandi sono disponibili quando la <a href="Config_Reference.html#z_thermal_adjust">sezione z_thermal_adjust config</a> è abilitata.</p>
<h4 id="set_z_thermal_adjust">SET_Z_THERMAL_ADJUST<a class="headerlink" href="#set_z_thermal_adjust" title="Permanent link">&para;</a></h4>
-<p><code>SET_Z_THERMAL_ADJUST [ENABLE=&lt;0:1&gt;] [TEMP_COEFF=&lt;value&gt;] [REF_TEMP=&lt;value&gt;]</code>: Enable or disable the Z thermal adjustment with <code>ENABLE</code>. Disabling does not remove any adjustment already applied, but will freeze the current adjustment value - this prevents potentially unsafe downward Z movement. Re-enabling can potentially cause upward tool movement as the adjustment is updated and applied. <code>TEMP_COEFF</code> allows run-time tuning of the adjustment temperature coefficient (i.e. the <code>TEMP_COEFF</code> config parameter). <code>TEMP_COEFF</code> values are not saved to the config. <code>REF_TEMP</code> manually overrides the reference temperature typically set during homing (for use in e.g. non-standard homing routines) - will be reset automatically upon homing.</p>
+<p><code>SET_Z_THERMAL_ADJUST [ENABLE=&lt;0:1&gt;] [TEMP_COEFF=&lt;valore&gt;] [REF_TEMP=&lt;valore&gt;]</code>: Abilita o disabilita la regolazione termica Z con <code>ENABLE</code>. La disabilitazione non rimuove alcuna regolazione già applicata, ma congela il valore di regolazione corrente - questo impedisce il movimento Z verso il basso potenzialmente pericoloso. La riattivazione può potenzialmente causare il movimento dell'utensile verso l'alto quando la regolazione viene aggiornata e applicata. <code>TEMP_COEFF</code> consente la regolazione in tempo reale del coefficiente di temperatura di regolazione (cioè il parametro di configurazione <code>TEMP_COEFF</code>). I valori <code>TEMP_COEFF</code> non vengono salvati nella configurazione. <code>REF_TEMP</code> sovrascrive manualmente la temperatura di riferimento tipicamente impostata durante l'homing (per l'uso, ad esempio, in routine di homing non standard) - verrà ripristinata automaticamente durante l'homing.</p>
<h3 id="z_tilt">[z_tilt]<a class="headerlink" href="#z_tilt" title="Permanent link">&para;</a></h3>
<p>I seguenti comandi sono disponibili quando la <a href="Config_Reference.html#z_tilt">sezione z_tilt config</a> è abilitata.</p>
<h4 id="z_tilt_adjust">Z_TILT_ADJUST<a class="headerlink" href="#z_tilt_adjust" title="Permanent link">&para;</a></h4>
diff --git a/it/Status_Reference.html b/it/Status_Reference.html
index 0cfc5d492..39d00afe0 100644
--- a/it/Status_Reference.html
+++ b/it/Status_Reference.html
@@ -2046,8 +2046,8 @@
<p>Le seguenti informazioni sono disponibili nell'oggetto <code>print_stats</code> (questo oggetto è automaticamente disponibile se è definita una sezione di configurazione <a href="Config_Reference.html#virtual_sdcard">virtual_sdcard</a>):</p>
<ul>
<li><code>filename</code>, <code>total_duration</code>, <code>print_duration</code>, <code>filament_used</code>, <code>state</code>, <code>message</code>: informazioni stimate sulla stampa corrente quando è attiva una stampa da virtual_sdcard.</li>
-<li><code>info.total_layer</code>: The total layer value of the last <code>SET_PRINT_STATS_INFO TOTAL_LAYER=&lt;value&gt;</code> G-Code command.</li>
-<li><code>info.current_layer</code>: The current layer value of the last <code>SET_PRINT_STATS_INFO CURRENT_LAYER=&lt;value&gt;</code> G-Code command.</li>
+<li><code>info.total_layer</code>: Il valore totale del layer dell'ultimo comando G-Code <code>SET_PRINT_STATS_INFO TOTAL_LAYER=&lt;valore&gt;</code>.</li>
+<li><code>info.current_layer</code>: il valore del layer corrente dell'ultimo comando G-Code <code>SET_PRINT_STATS_INFO CURRENT_LAYER=&lt;valore&gt;</code>.</li>
</ul>
<h2 id="probe">probe<a class="headerlink" href="#probe" title="Permanent link">&para;</a></h2>
<p>Le seguenti informazioni sono disponibili nell'oggetto <a href="Config_Reference.html#probe">probe</a> (questo oggetto è disponibile anche se è definita una sezione di configurazione <a href="Config_Reference.html#bltouch">bltouch</a>):</p>
diff --git a/it/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc b/it/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc
index 5d8531f53..4d33b0a3d 100644
--- a/it/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc
+++ b/it/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc
Binary files differ
diff --git a/it/search/search_index.json b/it/search/search_index.json
index 48aca94e8..296227aa0 100644
--- a/it/search/search_index.json
+++ b/it/search/search_index.json
@@ -1 +1 @@
-{"config":{"indexing":"full","lang":["it"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"index.html","text":"Klipper \u00e8 un firmware per stampanti 3D. Combina la potenza di un computer con uno o pi\u00f9 microntrollori. Leggi la pagina sulle funzionalit\u00e0 per avere pi\u00f9 informazioni sul perch\u00e9 usare Klipper. Per iniziare ad usare Klipper comincia con la sua installazione . Klipper \u00e8 un software libero. Leggi la documentazione o visualizza il codice Klipper su github . Dipendiamo dal generoso supporto dei nostri sponsor .","title":"Benvenuto"},{"location":"API_Server.html","text":"Server API \u00b6 Questo documento descrive l'Application Programmer Interface (API) di Klipper. Questa interfaccia consente alle applicazioni esterne di interrogare e controllare il software host Klipper. Abilitazione del socket API \u00b6 Per utilizzare il server API, il software host klippy.py deve essere avviato con il parametro -a . Per esempio: ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer.cfg -a /tmp/klippy_uds -l /tmp/klippy.log Ci\u00f2 fa s\u00ec che il software host crei un socket di dominio Unix. Un client pu\u00f2 quindi aprire una connessione su quel socket e inviare comandi a Klipper. Consulta il progetto Moonraker per uno strumento popolare in grado di inoltrare richieste HTTP all'API Server Unix Domain Socket di Klipper. Formato richiesta \u00b6 I messaggi inviati e ricevuti sul socket sono stringhe codificate JSON terminate da un carattere ASCII 0x03: <json_object_1><0x03><json_object_2><0x03>... Klipper contiene uno strumento scripts/whconsole.py che pu\u00f2 eseguire il framing dei messaggi sopra. Per esempio: ~/klipper/scripts/whconsole.py /tmp/klippy_uds Questo strumento pu\u00f2 leggere una serie di comandi JSON da stdin, inviarli a Klipper e riportare i risultati. Lo strumento prevede che ogni comando JSON si trovi su una singola riga e aggiunger\u00e0 automaticamente il terminatore 0x03 durante la trasmissione di una richiesta. (Il server dell'API Klipper non ha un requisito di newline.) Protocollo API \u00b6 Il protocollo dei comandi utilizzato sul socket di comunicazione \u00e8 ispirato a json-rpc . Una richiesta potrebbe essere simile a: {\"id\": 123, \"method\": \"info\", \"params\": {}} e una risposta potrebbe essere simile a: {\"id\": 123, \"result\": {\"state_message\": \"Printer is ready\", \"klipper_path\": \"/home/pi/klipper\", \"config_file\": \"/home/pi/printer.cfg\", \"software_version\": \"v0.8.0-823-g883b1cb6\", \"hostname\": \"octopi\", \"cpu_info\": \"4 core ARMv7 Processor rev 4 (v7l)\", \"state\": \"ready\", \"python_path\": \"/home/pi/klippy-env/bin/python\", \"log_file\": \"/tmp/klippy.log\"}} Ogni richiesta deve essere un dizionario JSON. (Questo documento usa il termine Python \"dizionario\" per descrivere un \"oggetto JSON\" - una mappatura di coppie chiave/valore contenute in {} .) Il dizionario di richiesta deve contenere un parametro \"method\" che \u00e8 il nome stringa di un \"endpoint\" di Klipper disponibile. Il dizionario della richiesta pu\u00f2 contenere un parametro \"params\" che deve essere di tipo dizionario. I \"parametri\" forniscono ulteriori informazioni sui parametri all'\"endpoint\" di Klipper che gestisce la richiesta. Il suo contenuto \u00e8 specifico dell'\"endpoint\". Il dizionario delle richieste pu\u00f2 contenere un parametro \"id\" che pu\u00f2 essere di qualsiasi tipo JSON. Se \u00e8 presente \"id\", Klipper risponder\u00e0 alla richiesta con un messaggio di risposta contenente tale \"id\". Se \"id\" viene omesso (o impostato su un valore JSON \"null\"), Klipper non fornir\u00e0 alcuna risposta alla richiesta. Un messaggio di risposta \u00e8 un dizionario JSON contenente \"id\" e \"result\". Il \"risultato\" \u00e8 sempre un dizionario: i suoi contenuti sono specifici dell'\"endpoint\" che gestisce la richiesta. Se l'elaborazione di una richiesta genera un errore, il messaggio di risposta conterr\u00e0 un campo \"errore\" anzich\u00e9 un campo \"risultato\". Ad esempio, la richiesta: {\"id\": 123, \"method\": \"gcode/script\", \"params\": {\"script\": \"G1 X200\"}} potrebbe generare una risposta di errore come: {\"id\": 123, \"error\": {\"message\": \"Deve prima posizionare l'asse: 200.000 0.000 0.000 [0.000]\", \"error\": \"WebRequestError\"}} Klipper inizier\u00e0 sempre a elaborare le richieste nell'ordine in cui sono state ricevute. Tuttavia, alcune richieste potrebbero non essere completate immediatamente, il che potrebbe causare l'invio di una risposta associata non conforme rispetto alle risposte di altre richieste. Una richiesta JSON non sospender\u00e0 mai l'elaborazione di future richieste JSON. Sottoscrizioni \u00b6 Alcune richieste di \"endpoint\" di Klipper consentono di \"iscriversi\" a futuri messaggi di aggiornamento asincrono. Per esempio: {\"id\": 123, \"method\": \"gcode/subscribe_output\", \"params\": {\"response_template\":{\"key\": 345}}} inizialmente pu\u00f2 rispondere con: {\"id\": 123, \"result\": {}} e fare in modo che Klipper invii messaggi futuri simili a: {\"params\": {\"response\": \"ok B:22.8 /0.0 T0:22.4 /0.0\"}, \"key\": 345} Una richiesta di sottoscrizione accetta un dizionario \"response_template\" nel campo \"params\" della richiesta. Quel dizionario \"response_template\" viene utilizzato come modello per futuri messaggi asincroni: pu\u00f2 contenere coppie chiave/valore arbitrarie. Quando invier\u00e0 questi futuri messaggi asincroni, Klipper aggiunger\u00e0 un campo \"params\" contenente un dizionario con contenuti specifici per \"endpoint\" al modello di risposta e quindi invier\u00e0 quel modello. Se non viene fornito un campo \"response_template\", il valore predefinito \u00e8 un dizionario vuoto ( {} ). \"endpoint\" disponibili \u00b6 Per convenzione, gli \"endpoint\" di Klipper sono nella forma <module_name>/<some_name> . Quando si effettua una richiesta a un \"endpoint\", il nome completo deve essere impostato nel parametro \"method\" del dizionario di richiesta (ad esempio, {\"method\"=\"gcode/restart\"} ). info \u00b6 L'endpoint \"info\" viene utilizzato per ottenere informazioni sul sistema e sulla versione da Klipper. Viene anche utilizzato per fornire a Klipper le informazioni sulla versione del client. Ad esempio: {\"id\": 123, \"method\": \"info\", \"params\": { \"client_info\": { \"version\": \"v1\"}}} Se presente, il parametro \"client_info\" deve essere un dizionario, ma quel dizionario potrebbe avere contenuti arbitrari. I clienti sono incoraggiati a fornire il nome del client e la sua versione del software quando si connettono per la prima volta al server dell'API Klipper. emergency_stop \u00b6 L'endpoint \"emergency_stop\" viene utilizzato per indicare a Klipper di passare allo stato di \"spegnimento\". Si comporta in modo simile al comando G-Code M112 . Ad esempio: {\"id\": 123, \"method\": \"emergency_stop\"} register_remote_method \u00b6 Questo endpoint consente ai client di registrare metodi che possono essere chiamati da klipper. Restituir\u00e0 un oggetto vuoto in caso di successo. Per esempio: {\"id\": 123, \"method\": \"register_remote_method\", \"params\": {\"response_template\": {\"action\": \"run_paneldue_beep\"}, \"remote_method\": \"paneldue_beep\"}} will return: {\"id\": 123, \"result\": {}} Il metodo remoto paneldue_beep ora pu\u00f2 essere chiamato da Klipper. Nota che se il metodo accetta parametri, dovrebbero essere forniti come argomenti di parole chiave. Di seguito \u00e8 riportato un esempio di come pu\u00f2 essere chiamato da una gcode_macro: [gcode_macro PANELDUE_BEEP] gcode: {action_call_remote_method(\"paneldue_beep\", frequency=300, duration=1.0)} Quando viene eseguita la macro gcode PANELDUE_BEEP, Klipper invia qualcosa di simile al seguente tramite il socket: {\"action\": \"run_paneldue_beep\", \"params\": {\"frequency\": 300, \"duration\": 1.0}} oggetti/elenco \u00b6 Questo endpoint interroga l'elenco degli \"oggetti\" della stampante disponibili che \u00e8 possibile interrogare (tramite l'endpoint \"objects/query\"). Ad esempio: {\"id\": 123, \"method\": \"objects/list\"} potrebbe restituire: {\"id\": 123, \"result\": {\"objects\": [\"webhooks\", \"configfile\" , \"heaters\", \"gcode_move\", \"query_endstops\", \"idle_timeout\", \"toolhead\", \"extruder\"]}} oggetti/interrogazione \u00b6 Questo endpoint consente di interrogare informazioni da oggetti. Ad esempio: {\"id\": 123, \"method\": \"objects/query\", \"params\": {\"objects\": {\"toolhead\": [\"position\"], \"webhooks\": null}}} potrebbe restituire: {\"id\": 123, \"result\": {\"status\": {\"webhooks\": {\"state\": \"ready\", \"state_message\": \"Printer is ready\"}, \"toolhead\": { \"position\": [0.0, 0.0, 0.0, 0.0]}}, \"eventtime\": 3051555.377933684}} Il parametro \"objects\" nella richiesta deve essere un dizionario contenente gli oggetti stampante che devono essere interrogati - la chiave contiene il nome dell'oggetto stampante e il valore \u00e8 \"null\" (per interrogare tutti i campi) o un elenco di nomi di campo. Il messaggio di risposta conterr\u00e0 un campo \"status\" contenente un dizionario con le informazioni richieste: la chiave contiene il nome dell'oggetto stampante e il valore \u00e8 un dizionario contenente i suoi campi. Il messaggio di risposta conterr\u00e0 anche un campo \"eventtime\" contenente il timestamp da quando \u00e8 stata eseguita la query. I campi disponibili sono documentati nel documento Status Reference . oggetti/subscribe \u00b6 Questo endpoint consente di eseguire query e quindi iscriversi alle informazioni dagli oggetti stampante. La richiesta e la risposta dell'endpoint sono identiche all'endpoint \"objects/query\". Ad esempio: {\"id\": 123, \"method\": \"objects/subscribe\", \"params\": {\"objects\":{\"toolhead\": [\"position\"], \"webhooks\": [\"state\"] }, \"response_template\":{}}} potrebbe restituire: {\"id\": 123, \"result\": {\"status\": {\"webhooks\": {\"state\": \"ready\"}, \"toolhead\": {\"position\": [0.0, 0.0, 0.0, 0.0]}}, \"eventtime\": 3052153.382083195}} e generare messaggi asincroni successivi come: {\"params\": {\"status\": {\"webhooks\": {\"state\": \"shutdown\"}}, \"eventtime\": 3052165.418815847}} gcode/help \u00b6 Questo endpoint consente di interrogare i comandi G-Code disponibili che hanno una stringa di aiuto definita. Ad esempio: {\"id\": 123, \"method\": \"gcode/help\"} potrebbe restituire: {\"id\": 123, \"result\": {\"RESTORE_GCODE_STATE\": \"Restore a previously saved G-Code state\", \"PID_CALIBRATE\": \"Run PID calibration test\", \"QUERY_ADC\": \"Report the last value of an analog pin\", ...}} gcode/script \u00b6 Questo endpoint consente di eseguire una serie di comandi G-Code. Ad esempio: {\"id\": 123, \"method\": \"gcode/script\", \"params\": {\"script\": \"G90\"}} Se lo script G-Code fornito genera un errore, allora viene generata una risposta di errore. Tuttavia, se il comando G-Code produce un output del terminale, tale output del terminale non viene fornito nella risposta. (Utilizzare l'endpoint \"gcode/subscribe_output\" per ottenere l'output del terminale G-Code.) Se c'\u00e8 un comando G-Code in elaborazione quando viene ricevuta questa richiesta, lo script fornito verr\u00e0 messo in coda. Questo ritardo potrebbe essere significativo (ad esempio, se \u00e8 in esecuzione un comando di attesa del codice G per la temperatura). Il messaggio di risposta JSON viene inviato al completamento dell'elaborazione dello script. gcode/restart \u00b6 Questo endpoint consente di richiedere un riavvio: \u00e8 simile all'esecuzione del comando \"RESTART\" del codice G. Ad esempio: {\"id\": 123, \"method\": \"gcode/restart\"} Come con l'endpoint \"gcode/script\", questo endpoint viene completato solo dopo il completamento di tutti i comandi G-Code in sospeso. gcode/firmware_restart \u00b6 Questo \u00e8 simile all'endpoint \"gcode/restart\": implementa il comando G-Code \"FIRMWARE_RESTART\". Ad esempio: {\"id\": 123, \"method\": \"gcode/firmware_restart\"} Come con l'endpoint \"gcode/script\", questo endpoint viene completato solo dopo il completamento di tutti i comandi G-Code in sospeso. gcode/subscribe_output \u00b6 Questo endpoint viene utilizzato per iscriversi ai messaggi del terminale G-Code generati da Klipper. Ad esempio: {\"id\": 123, \"method\": \"gcode/subscribe_output\", \"params\": {\"response_template\":{}}} potrebbe in seguito produrre messaggi asincroni come: {\"params\": { \"response\": \"// Klipper state: Shutdown\"}} Questo endpoint ha lo scopo di supportare l'interazione umana tramite un'interfaccia \"finestra di terminale\". L'analisi del contenuto dall'output del terminale G-Code \u00e8 sconsigliata. Usa l'endpoint \"objects/subscribe\" per ottenere aggiornamenti sullo stato di Klipper. motion_report/dump_stepper \u00b6 Questo endpoint viene utilizzato per iscriversi al flusso di comandi queue_step interno di Klipper per uno stepper. L'ottenimento di questi aggiornamenti di movimento di basso livello pu\u00f2 essere utile per scopi diagnostici e di debug. L'utilizzo di questo endpoint pu\u00f2 aumentare il carico di sistema di Klipper. Una richiesta pu\u00f2 essere simile a: {\"id\": 123, \"method\":\"motion_report/dump_stepper\", \"params\": {\"name\": \"stepper_x\", \"response_template\": {}}} e potrebbe restituire: {\"id\": 123, \"result\": {\"header\": [\"interval\", \"count\", \"add\"]}} e potrebbe in seguito produrre messaggi asincroni come: {\"params\": {\" first_clock\": 179601081, \"first_time\": 8.98, \"first_position\": 0, \"last_clock\": 219686097, \"last_time\": 10.984, \"data\": [[179601081, 1, 0], [29573, 2, -8685] , [16230, 4, -1525], [10559, 6, -160], [10000, 976, 0], [10000, 1000, 0], [10000, 1000, 0], [10000, 1000, 0] , [9855, 5, 187], [11632, 4, 1534], [20756, 2, 9442]]}} Il campo \"intestazione\" nella risposta alla query iniziale viene utilizzato per descrivere i campi trovati nelle risposte \"dati\" successive. motion_report/dump_trapq \u00b6 Questo endpoint viene utilizzato per iscriversi alla \"coda di movimento trapezoidale\" interna di Klipper. L'ottenimento di questi aggiornamenti di movimento di basso livello pu\u00f2 essere utile per scopi diagnostici e di debug. L'utilizzo di questo endpoint pu\u00f2 aumentare il carico di sistema di Klipper. Una richiesta pu\u00f2 essere simile a: {\"id\": 123, \"method\": \"motion_report/dump_trapq\", \"params\": {\"name\": \"toolhead\", \"response_template\":{}}} e potrebbe restituire: {\"id\": 1, \"result\": {\"header\": [\"time\", \"duration\", \"start_velocity\", \"acceleration\", \"start_position\", \"direction\"]}} e potrebbero in seguito produrre messaggi asincroni quali: {\"params\": {\"data\": [[4.05, 1.0, 0.0, 0.0, [300.0, 0.0, 0.0], [0.0, 0.0, 0.0]], [5.054, 0.001, 0.0, 3000.0 , [300.0, 0.0, 0.0], [-1.0, 0.0, 0.0]]]}} Il campo \"intestazione\" nella risposta alla query iniziale viene utilizzato per descrivere i campi trovati nelle risposte \"dati\" successive. adxl345/dump_adxl345 \u00b6 Questo endpoint viene utilizzato per la sottoscrizione ai dati dell'accelerometro ADXL345. L'ottenimento di questi aggiornamenti di movimento di basso livello pu\u00f2 essere utile per scopi diagnostici e di debug. L'utilizzo di questo endpoint pu\u00f2 aumentare il carico di sistema di Klipper. Una richiesta pu\u00f2 essere simile a: {\"id\": 123, \"method\":\"adxl345/dump_adxl345\", \"params\": {\"sensor\": \"adxl345\", \"response_template\": {}}} e potrebbe restituire: {\"id\": 123,\"result\":{\"header\":[\"time\",\"x_acceleration\",\"y_acceleration\", \"z_acceleration\"]}} e potrebbe in seguito produrre messaggi asincroni come: {\"params \":{\"overflow\":0,\"data\":[[3292.432935,-535.44309,-1529.8374,9561.4], [3292.433256,-382.45935,-1606.32927,9561.48375]]}} Il campo \"intestazione\" nella risposta alla query iniziale viene utilizzato per descrivere i campi trovati nelle risposte \"dati\" successive. angle/dump_angle \u00b6 Questo endpoint viene utilizzato per iscriversi a dati del sensore angolare . L'ottenimento di questi aggiornamenti di movimento di basso livello pu\u00f2 essere utile per scopi diagnostici e di debug. L'utilizzo di questo endpoint pu\u00f2 aumentare il carico di sistema di Klipper. Una richiesta pu\u00f2 essere simile a: {\"id\": 123, \"method\":\"angle/dump_angle\", \"params\": {\"sensor\": \"my_angle_sensor\", \"response_template\": {}}} e potrebbe restituire: {\"id\": 123,\"result\":{\"header\":[\"time\",\"angle\"]}} e potrebbe in seguito produrre messaggi asincroni come: {\"params\":{\"position_offset\":3.151562 ,\"errori\":0, \"dati\":[[1290.951905,-5063],[1290.952321,-5065]]}} Il campo \"intestazione\" nella risposta alla query iniziale viene utilizzato per descrivere i campi trovati nelle risposte \"dati\" successive. pause_resume/cancel \u00b6 Questo endpoint \u00e8 simile all'esecuzione del comando G-Code \"PRINT_CANCEL\". Ad esempio: {\"id\": 123, \"method\": \"pause_resume/cancel\"} Come con l'endpoint \"gcode/script\", questo endpoint viene completato solo dopo il completamento di tutti i comandi G-Code in sospeso. pause_resume/pause \u00b6 Questo endpoint \u00e8 simile all'esecuzione del comando G-Code \"PAUSE\". Ad esempio: {\"id\": 123, \"method\": \"pause_resume/pause\"} Come con l'endpoint \"gcode/script\", questo endpoint viene completato solo dopo il completamento di tutti i comandi G-Code in sospeso. pause_resume/resume \u00b6 Questo endpoint \u00e8 simile all'esecuzione del comando G-Code \"RESUME\". Ad esempio: {\"id\": 123, \"method\": \"pause_resume/resume\"} Come con l'endpoint \"gcode/script\", questo endpoint viene completato solo dopo il completamento di tutti i comandi G-Code in sospeso. query_endstops/status \u00b6 Questo endpoint eseguir\u00e0 una query sugli endpoint attivi e restituir\u00e0 il loro stato. Ad esempio: {\"id\": 123, \"method\": \"query_endstops/status\"} potrebbe restituire: {\"id\": 123, \"result\": {\"y\": \"open\", \"x\": \"aperto\", \"z\": \"TRIGGERED\"}} Come con l'endpoint \"gcode/script\", questo endpoint viene completato solo dopo il completamento di tutti i comandi G-Code in sospeso.","title":"Server API"},{"location":"API_Server.html#server-api","text":"Questo documento descrive l'Application Programmer Interface (API) di Klipper. Questa interfaccia consente alle applicazioni esterne di interrogare e controllare il software host Klipper.","title":"Server API"},{"location":"API_Server.html#abilitazione-del-socket-api","text":"Per utilizzare il server API, il software host klippy.py deve essere avviato con il parametro -a . Per esempio: ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer.cfg -a /tmp/klippy_uds -l /tmp/klippy.log Ci\u00f2 fa s\u00ec che il software host crei un socket di dominio Unix. Un client pu\u00f2 quindi aprire una connessione su quel socket e inviare comandi a Klipper. Consulta il progetto Moonraker per uno strumento popolare in grado di inoltrare richieste HTTP all'API Server Unix Domain Socket di Klipper.","title":"Abilitazione del socket API"},{"location":"API_Server.html#formato-richiesta","text":"I messaggi inviati e ricevuti sul socket sono stringhe codificate JSON terminate da un carattere ASCII 0x03: <json_object_1><0x03><json_object_2><0x03>... Klipper contiene uno strumento scripts/whconsole.py che pu\u00f2 eseguire il framing dei messaggi sopra. Per esempio: ~/klipper/scripts/whconsole.py /tmp/klippy_uds Questo strumento pu\u00f2 leggere una serie di comandi JSON da stdin, inviarli a Klipper e riportare i risultati. Lo strumento prevede che ogni comando JSON si trovi su una singola riga e aggiunger\u00e0 automaticamente il terminatore 0x03 durante la trasmissione di una richiesta. (Il server dell'API Klipper non ha un requisito di newline.)","title":"Formato richiesta"},{"location":"API_Server.html#protocollo-api","text":"Il protocollo dei comandi utilizzato sul socket di comunicazione \u00e8 ispirato a json-rpc . Una richiesta potrebbe essere simile a: {\"id\": 123, \"method\": \"info\", \"params\": {}} e una risposta potrebbe essere simile a: {\"id\": 123, \"result\": {\"state_message\": \"Printer is ready\", \"klipper_path\": \"/home/pi/klipper\", \"config_file\": \"/home/pi/printer.cfg\", \"software_version\": \"v0.8.0-823-g883b1cb6\", \"hostname\": \"octopi\", \"cpu_info\": \"4 core ARMv7 Processor rev 4 (v7l)\", \"state\": \"ready\", \"python_path\": \"/home/pi/klippy-env/bin/python\", \"log_file\": \"/tmp/klippy.log\"}} Ogni richiesta deve essere un dizionario JSON. (Questo documento usa il termine Python \"dizionario\" per descrivere un \"oggetto JSON\" - una mappatura di coppie chiave/valore contenute in {} .) Il dizionario di richiesta deve contenere un parametro \"method\" che \u00e8 il nome stringa di un \"endpoint\" di Klipper disponibile. Il dizionario della richiesta pu\u00f2 contenere un parametro \"params\" che deve essere di tipo dizionario. I \"parametri\" forniscono ulteriori informazioni sui parametri all'\"endpoint\" di Klipper che gestisce la richiesta. Il suo contenuto \u00e8 specifico dell'\"endpoint\". Il dizionario delle richieste pu\u00f2 contenere un parametro \"id\" che pu\u00f2 essere di qualsiasi tipo JSON. Se \u00e8 presente \"id\", Klipper risponder\u00e0 alla richiesta con un messaggio di risposta contenente tale \"id\". Se \"id\" viene omesso (o impostato su un valore JSON \"null\"), Klipper non fornir\u00e0 alcuna risposta alla richiesta. Un messaggio di risposta \u00e8 un dizionario JSON contenente \"id\" e \"result\". Il \"risultato\" \u00e8 sempre un dizionario: i suoi contenuti sono specifici dell'\"endpoint\" che gestisce la richiesta. Se l'elaborazione di una richiesta genera un errore, il messaggio di risposta conterr\u00e0 un campo \"errore\" anzich\u00e9 un campo \"risultato\". Ad esempio, la richiesta: {\"id\": 123, \"method\": \"gcode/script\", \"params\": {\"script\": \"G1 X200\"}} potrebbe generare una risposta di errore come: {\"id\": 123, \"error\": {\"message\": \"Deve prima posizionare l'asse: 200.000 0.000 0.000 [0.000]\", \"error\": \"WebRequestError\"}} Klipper inizier\u00e0 sempre a elaborare le richieste nell'ordine in cui sono state ricevute. Tuttavia, alcune richieste potrebbero non essere completate immediatamente, il che potrebbe causare l'invio di una risposta associata non conforme rispetto alle risposte di altre richieste. Una richiesta JSON non sospender\u00e0 mai l'elaborazione di future richieste JSON.","title":"Protocollo API"},{"location":"API_Server.html#sottoscrizioni","text":"Alcune richieste di \"endpoint\" di Klipper consentono di \"iscriversi\" a futuri messaggi di aggiornamento asincrono. Per esempio: {\"id\": 123, \"method\": \"gcode/subscribe_output\", \"params\": {\"response_template\":{\"key\": 345}}} inizialmente pu\u00f2 rispondere con: {\"id\": 123, \"result\": {}} e fare in modo che Klipper invii messaggi futuri simili a: {\"params\": {\"response\": \"ok B:22.8 /0.0 T0:22.4 /0.0\"}, \"key\": 345} Una richiesta di sottoscrizione accetta un dizionario \"response_template\" nel campo \"params\" della richiesta. Quel dizionario \"response_template\" viene utilizzato come modello per futuri messaggi asincroni: pu\u00f2 contenere coppie chiave/valore arbitrarie. Quando invier\u00e0 questi futuri messaggi asincroni, Klipper aggiunger\u00e0 un campo \"params\" contenente un dizionario con contenuti specifici per \"endpoint\" al modello di risposta e quindi invier\u00e0 quel modello. Se non viene fornito un campo \"response_template\", il valore predefinito \u00e8 un dizionario vuoto ( {} ).","title":"Sottoscrizioni"},{"location":"API_Server.html#endpoint-disponibili","text":"Per convenzione, gli \"endpoint\" di Klipper sono nella forma <module_name>/<some_name> . Quando si effettua una richiesta a un \"endpoint\", il nome completo deve essere impostato nel parametro \"method\" del dizionario di richiesta (ad esempio, {\"method\"=\"gcode/restart\"} ).","title":"\"endpoint\" disponibili"},{"location":"API_Server.html#info","text":"L'endpoint \"info\" viene utilizzato per ottenere informazioni sul sistema e sulla versione da Klipper. Viene anche utilizzato per fornire a Klipper le informazioni sulla versione del client. Ad esempio: {\"id\": 123, \"method\": \"info\", \"params\": { \"client_info\": { \"version\": \"v1\"}}} Se presente, il parametro \"client_info\" deve essere un dizionario, ma quel dizionario potrebbe avere contenuti arbitrari. I clienti sono incoraggiati a fornire il nome del client e la sua versione del software quando si connettono per la prima volta al server dell'API Klipper.","title":"info"},{"location":"API_Server.html#emergency_stop","text":"L'endpoint \"emergency_stop\" viene utilizzato per indicare a Klipper di passare allo stato di \"spegnimento\". Si comporta in modo simile al comando G-Code M112 . Ad esempio: {\"id\": 123, \"method\": \"emergency_stop\"}","title":"emergency_stop"},{"location":"API_Server.html#register_remote_method","text":"Questo endpoint consente ai client di registrare metodi che possono essere chiamati da klipper. Restituir\u00e0 un oggetto vuoto in caso di successo. Per esempio: {\"id\": 123, \"method\": \"register_remote_method\", \"params\": {\"response_template\": {\"action\": \"run_paneldue_beep\"}, \"remote_method\": \"paneldue_beep\"}} will return: {\"id\": 123, \"result\": {}} Il metodo remoto paneldue_beep ora pu\u00f2 essere chiamato da Klipper. Nota che se il metodo accetta parametri, dovrebbero essere forniti come argomenti di parole chiave. Di seguito \u00e8 riportato un esempio di come pu\u00f2 essere chiamato da una gcode_macro: [gcode_macro PANELDUE_BEEP] gcode: {action_call_remote_method(\"paneldue_beep\", frequency=300, duration=1.0)} Quando viene eseguita la macro gcode PANELDUE_BEEP, Klipper invia qualcosa di simile al seguente tramite il socket: {\"action\": \"run_paneldue_beep\", \"params\": {\"frequency\": 300, \"duration\": 1.0}}","title":"register_remote_method"},{"location":"API_Server.html#oggettielenco","text":"Questo endpoint interroga l'elenco degli \"oggetti\" della stampante disponibili che \u00e8 possibile interrogare (tramite l'endpoint \"objects/query\"). Ad esempio: {\"id\": 123, \"method\": \"objects/list\"} potrebbe restituire: {\"id\": 123, \"result\": {\"objects\": [\"webhooks\", \"configfile\" , \"heaters\", \"gcode_move\", \"query_endstops\", \"idle_timeout\", \"toolhead\", \"extruder\"]}}","title":"oggetti/elenco"},{"location":"API_Server.html#oggettiinterrogazione","text":"Questo endpoint consente di interrogare informazioni da oggetti. Ad esempio: {\"id\": 123, \"method\": \"objects/query\", \"params\": {\"objects\": {\"toolhead\": [\"position\"], \"webhooks\": null}}} potrebbe restituire: {\"id\": 123, \"result\": {\"status\": {\"webhooks\": {\"state\": \"ready\", \"state_message\": \"Printer is ready\"}, \"toolhead\": { \"position\": [0.0, 0.0, 0.0, 0.0]}}, \"eventtime\": 3051555.377933684}} Il parametro \"objects\" nella richiesta deve essere un dizionario contenente gli oggetti stampante che devono essere interrogati - la chiave contiene il nome dell'oggetto stampante e il valore \u00e8 \"null\" (per interrogare tutti i campi) o un elenco di nomi di campo. Il messaggio di risposta conterr\u00e0 un campo \"status\" contenente un dizionario con le informazioni richieste: la chiave contiene il nome dell'oggetto stampante e il valore \u00e8 un dizionario contenente i suoi campi. Il messaggio di risposta conterr\u00e0 anche un campo \"eventtime\" contenente il timestamp da quando \u00e8 stata eseguita la query. I campi disponibili sono documentati nel documento Status Reference .","title":"oggetti/interrogazione"},{"location":"API_Server.html#oggettisubscribe","text":"Questo endpoint consente di eseguire query e quindi iscriversi alle informazioni dagli oggetti stampante. La richiesta e la risposta dell'endpoint sono identiche all'endpoint \"objects/query\". Ad esempio: {\"id\": 123, \"method\": \"objects/subscribe\", \"params\": {\"objects\":{\"toolhead\": [\"position\"], \"webhooks\": [\"state\"] }, \"response_template\":{}}} potrebbe restituire: {\"id\": 123, \"result\": {\"status\": {\"webhooks\": {\"state\": \"ready\"}, \"toolhead\": {\"position\": [0.0, 0.0, 0.0, 0.0]}}, \"eventtime\": 3052153.382083195}} e generare messaggi asincroni successivi come: {\"params\": {\"status\": {\"webhooks\": {\"state\": \"shutdown\"}}, \"eventtime\": 3052165.418815847}}","title":"oggetti/subscribe"},{"location":"API_Server.html#gcodehelp","text":"Questo endpoint consente di interrogare i comandi G-Code disponibili che hanno una stringa di aiuto definita. Ad esempio: {\"id\": 123, \"method\": \"gcode/help\"} potrebbe restituire: {\"id\": 123, \"result\": {\"RESTORE_GCODE_STATE\": \"Restore a previously saved G-Code state\", \"PID_CALIBRATE\": \"Run PID calibration test\", \"QUERY_ADC\": \"Report the last value of an analog pin\", ...}}","title":"gcode/help"},{"location":"API_Server.html#gcodescript","text":"Questo endpoint consente di eseguire una serie di comandi G-Code. Ad esempio: {\"id\": 123, \"method\": \"gcode/script\", \"params\": {\"script\": \"G90\"}} Se lo script G-Code fornito genera un errore, allora viene generata una risposta di errore. Tuttavia, se il comando G-Code produce un output del terminale, tale output del terminale non viene fornito nella risposta. (Utilizzare l'endpoint \"gcode/subscribe_output\" per ottenere l'output del terminale G-Code.) Se c'\u00e8 un comando G-Code in elaborazione quando viene ricevuta questa richiesta, lo script fornito verr\u00e0 messo in coda. Questo ritardo potrebbe essere significativo (ad esempio, se \u00e8 in esecuzione un comando di attesa del codice G per la temperatura). Il messaggio di risposta JSON viene inviato al completamento dell'elaborazione dello script.","title":"gcode/script"},{"location":"API_Server.html#gcoderestart","text":"Questo endpoint consente di richiedere un riavvio: \u00e8 simile all'esecuzione del comando \"RESTART\" del codice G. Ad esempio: {\"id\": 123, \"method\": \"gcode/restart\"} Come con l'endpoint \"gcode/script\", questo endpoint viene completato solo dopo il completamento di tutti i comandi G-Code in sospeso.","title":"gcode/restart"},{"location":"API_Server.html#gcodefirmware_restart","text":"Questo \u00e8 simile all'endpoint \"gcode/restart\": implementa il comando G-Code \"FIRMWARE_RESTART\". Ad esempio: {\"id\": 123, \"method\": \"gcode/firmware_restart\"} Come con l'endpoint \"gcode/script\", questo endpoint viene completato solo dopo il completamento di tutti i comandi G-Code in sospeso.","title":"gcode/firmware_restart"},{"location":"API_Server.html#gcodesubscribe_output","text":"Questo endpoint viene utilizzato per iscriversi ai messaggi del terminale G-Code generati da Klipper. Ad esempio: {\"id\": 123, \"method\": \"gcode/subscribe_output\", \"params\": {\"response_template\":{}}} potrebbe in seguito produrre messaggi asincroni come: {\"params\": { \"response\": \"// Klipper state: Shutdown\"}} Questo endpoint ha lo scopo di supportare l'interazione umana tramite un'interfaccia \"finestra di terminale\". L'analisi del contenuto dall'output del terminale G-Code \u00e8 sconsigliata. Usa l'endpoint \"objects/subscribe\" per ottenere aggiornamenti sullo stato di Klipper.","title":"gcode/subscribe_output"},{"location":"API_Server.html#motion_reportdump_stepper","text":"Questo endpoint viene utilizzato per iscriversi al flusso di comandi queue_step interno di Klipper per uno stepper. L'ottenimento di questi aggiornamenti di movimento di basso livello pu\u00f2 essere utile per scopi diagnostici e di debug. L'utilizzo di questo endpoint pu\u00f2 aumentare il carico di sistema di Klipper. Una richiesta pu\u00f2 essere simile a: {\"id\": 123, \"method\":\"motion_report/dump_stepper\", \"params\": {\"name\": \"stepper_x\", \"response_template\": {}}} e potrebbe restituire: {\"id\": 123, \"result\": {\"header\": [\"interval\", \"count\", \"add\"]}} e potrebbe in seguito produrre messaggi asincroni come: {\"params\": {\" first_clock\": 179601081, \"first_time\": 8.98, \"first_position\": 0, \"last_clock\": 219686097, \"last_time\": 10.984, \"data\": [[179601081, 1, 0], [29573, 2, -8685] , [16230, 4, -1525], [10559, 6, -160], [10000, 976, 0], [10000, 1000, 0], [10000, 1000, 0], [10000, 1000, 0] , [9855, 5, 187], [11632, 4, 1534], [20756, 2, 9442]]}} Il campo \"intestazione\" nella risposta alla query iniziale viene utilizzato per descrivere i campi trovati nelle risposte \"dati\" successive.","title":"motion_report/dump_stepper"},{"location":"API_Server.html#motion_reportdump_trapq","text":"Questo endpoint viene utilizzato per iscriversi alla \"coda di movimento trapezoidale\" interna di Klipper. L'ottenimento di questi aggiornamenti di movimento di basso livello pu\u00f2 essere utile per scopi diagnostici e di debug. L'utilizzo di questo endpoint pu\u00f2 aumentare il carico di sistema di Klipper. Una richiesta pu\u00f2 essere simile a: {\"id\": 123, \"method\": \"motion_report/dump_trapq\", \"params\": {\"name\": \"toolhead\", \"response_template\":{}}} e potrebbe restituire: {\"id\": 1, \"result\": {\"header\": [\"time\", \"duration\", \"start_velocity\", \"acceleration\", \"start_position\", \"direction\"]}} e potrebbero in seguito produrre messaggi asincroni quali: {\"params\": {\"data\": [[4.05, 1.0, 0.0, 0.0, [300.0, 0.0, 0.0], [0.0, 0.0, 0.0]], [5.054, 0.001, 0.0, 3000.0 , [300.0, 0.0, 0.0], [-1.0, 0.0, 0.0]]]}} Il campo \"intestazione\" nella risposta alla query iniziale viene utilizzato per descrivere i campi trovati nelle risposte \"dati\" successive.","title":"motion_report/dump_trapq"},{"location":"API_Server.html#adxl345dump_adxl345","text":"Questo endpoint viene utilizzato per la sottoscrizione ai dati dell'accelerometro ADXL345. L'ottenimento di questi aggiornamenti di movimento di basso livello pu\u00f2 essere utile per scopi diagnostici e di debug. L'utilizzo di questo endpoint pu\u00f2 aumentare il carico di sistema di Klipper. Una richiesta pu\u00f2 essere simile a: {\"id\": 123, \"method\":\"adxl345/dump_adxl345\", \"params\": {\"sensor\": \"adxl345\", \"response_template\": {}}} e potrebbe restituire: {\"id\": 123,\"result\":{\"header\":[\"time\",\"x_acceleration\",\"y_acceleration\", \"z_acceleration\"]}} e potrebbe in seguito produrre messaggi asincroni come: {\"params \":{\"overflow\":0,\"data\":[[3292.432935,-535.44309,-1529.8374,9561.4], [3292.433256,-382.45935,-1606.32927,9561.48375]]}} Il campo \"intestazione\" nella risposta alla query iniziale viene utilizzato per descrivere i campi trovati nelle risposte \"dati\" successive.","title":"adxl345/dump_adxl345"},{"location":"API_Server.html#angledump_angle","text":"Questo endpoint viene utilizzato per iscriversi a dati del sensore angolare . L'ottenimento di questi aggiornamenti di movimento di basso livello pu\u00f2 essere utile per scopi diagnostici e di debug. L'utilizzo di questo endpoint pu\u00f2 aumentare il carico di sistema di Klipper. Una richiesta pu\u00f2 essere simile a: {\"id\": 123, \"method\":\"angle/dump_angle\", \"params\": {\"sensor\": \"my_angle_sensor\", \"response_template\": {}}} e potrebbe restituire: {\"id\": 123,\"result\":{\"header\":[\"time\",\"angle\"]}} e potrebbe in seguito produrre messaggi asincroni come: {\"params\":{\"position_offset\":3.151562 ,\"errori\":0, \"dati\":[[1290.951905,-5063],[1290.952321,-5065]]}} Il campo \"intestazione\" nella risposta alla query iniziale viene utilizzato per descrivere i campi trovati nelle risposte \"dati\" successive.","title":"angle/dump_angle"},{"location":"API_Server.html#pause_resumecancel","text":"Questo endpoint \u00e8 simile all'esecuzione del comando G-Code \"PRINT_CANCEL\". Ad esempio: {\"id\": 123, \"method\": \"pause_resume/cancel\"} Come con l'endpoint \"gcode/script\", questo endpoint viene completato solo dopo il completamento di tutti i comandi G-Code in sospeso.","title":"pause_resume/cancel"},{"location":"API_Server.html#pause_resumepause","text":"Questo endpoint \u00e8 simile all'esecuzione del comando G-Code \"PAUSE\". Ad esempio: {\"id\": 123, \"method\": \"pause_resume/pause\"} Come con l'endpoint \"gcode/script\", questo endpoint viene completato solo dopo il completamento di tutti i comandi G-Code in sospeso.","title":"pause_resume/pause"},{"location":"API_Server.html#pause_resumeresume","text":"Questo endpoint \u00e8 simile all'esecuzione del comando G-Code \"RESUME\". Ad esempio: {\"id\": 123, \"method\": \"pause_resume/resume\"} Come con l'endpoint \"gcode/script\", questo endpoint viene completato solo dopo il completamento di tutti i comandi G-Code in sospeso.","title":"pause_resume/resume"},{"location":"API_Server.html#query_endstopsstatus","text":"Questo endpoint eseguir\u00e0 una query sugli endpoint attivi e restituir\u00e0 il loro stato. Ad esempio: {\"id\": 123, \"method\": \"query_endstops/status\"} potrebbe restituire: {\"id\": 123, \"result\": {\"y\": \"open\", \"x\": \"aperto\", \"z\": \"TRIGGERED\"}} Come con l'endpoint \"gcode/script\", questo endpoint viene completato solo dopo il completamento di tutti i comandi G-Code in sospeso.","title":"query_endstops/status"},{"location":"BLTouch.html","text":"BL-Touch \u00b6 Collegare BL-Touch \u00b6 Attenzione warning prima di cominciare : Evita di toccare la punta del BL-Touch a mani nude, \u00e8 molto sensibili al sebo delle dita. Se sei costretto usa dei guanti ed evita di spingerla o piegarla. Collega il connettore \"servo\" BL-Touch a un control_pin secondo la documentazione BL-Touch o la documentazione MCU. Usando il cablaggio originale, il filo giallo del triplo \u00e8 il control_pin e il filo bianco della coppia \u00e8 il sensor_pin . \u00c8 necessario configurare questi pin in base al cablaggio. La maggior parte dei dispositivi BL-Touch richiede un pullup sul pin del sensore (prefissare il nome del pin con \"^\"). Per esempio: [bltouch] sensor_pin: ^P1.24 control_pin: P1.26 Se il BL-Touch verr\u00e0 utilizzato per l'home dell'asse Z, impostare endstop_pin: probe:z_virtual_endstop e rimuovere position_endstop nella sezione di configurazione [stepper_z] , quindi aggiungere una sezione di configurazione [safe_z_home] per aumentare il asse z, posiziona gli assi xy, spostati al centro del letto e posizionati sull'asse z. Per esempio: [safe_z_home] home_xy_position: 100, 100 # Cambiare le coordinate per il centro del tuo piatto speed: 50 z_hop: 10 # Move up 10mm z_hop_speed: 5 \u00c8 importante che il movimento z_hop in safe_z_home sia sufficientemente alto in mode che la sonda non colpisca nulla anche se il pin della sonda si trova nel suo stato pi\u00f9 basso. Test iniziali \u00b6 Prima di proseguire, verificare che il BL-Touch sia montato all'altezza corretta, il perno dovrebbe trovarsi a circa 2 mm sopra il nozzle quando \u00e8 retratto Quando si accende la stampante, la sonda BL-Touch dovrebbe eseguire un autotest e spostare il pin su e gi\u00f9 un paio di volte. Una volta completato l'autotest, il perno deve essere retratto e il LED rosso sulla sonda deve essere acceso. In caso di errori, ad esempio la sonda lampeggia in rosso o il pin \u00e8 in basso anzich\u00e9 in alto, spegnere la stampante e controllare il cablaggio e la configurazione. Se quanto sopra sembra buono, \u00e8 il momento di verificare che il pin di controllo funzioni correttamente. Per prima cosa esegui BLTOUCH_DEBUG COMMAND=pin_down nel terminale della tua stampante. Verificare che il pin si abbassi e che il LED rosso sulla sonda si spenga. In caso contrario, controllare nuovamente il cablaggio e la configurazione. Quindi emettere un BLTOUCH_DEBUG COMMAND=pin_up , verificare che il pin si muova verso l'alto e che la luce rossa si accenda di nuovo. Se lampeggia allora c'\u00e8 qualche problema. Il passaggio successivo \u00e8 confermare che il pin del sensore funzioni correttamente. Esegui BLTOUCH_DEBUG COMMAND=pin_down , verifica che il pin si sposti verso il basso, esegui BLTOUCH_DEBUG COMMAND=touch_mode , esegui QUERY_PROBE e verifica che il comando riporti \"probe: open\". Quindi, spingendo leggermente verso l'alto il perno con l'unghia del dito, eseguire nuovamente QUERY_PROBE . Verificare che il comando riporti \"probe: TRIGGERED\". Se una delle query non riporta il messaggio corretto, di solito indica un cablaggio o una configurazione errati (sebbene alcuni clones potrebbero richiedere una gestione speciale). Al completamento di questo test, eseguire BLTOUCH_DEBUG COMMAND=pin_up e verificare che il pin si muova verso l'alto. Dopo aver completato i test del pin di controllo BL-Touch e del pin del sensore, \u00e8 ora il momento di testare il rilevamento, ma con una svolta. Invece di lasciare che il perno della sonda tocchi il piano di stampa, lascia che tocchi l'unghia del dito. Posizionare la testina lontano dal letto, emettere un G28 (o PROBE se non si utilizza probe:z_virtual_endstop), attendere che la testina inizi a muoversi verso il basso e interrompere il movimento toccando molto delicatamente il perno con l'unghia. Potrebbe essere necessario farlo due volte, poich\u00e9 la configurazione di homing predefinita esegue due sonde. Preparati a spegnere la stampante se non si ferma quando tocchi il perno. Se ha avuto successo, esegui un altro G28 (o PROBE ) ma questa volta lascia che tocchi il letto come dovrebbe. BL-Touch andato male \u00b6 Una volta che il BL-Touch \u00e8 in uno stato incoerente, inizia a lampeggiare in rosso. Puoi forzarlo a lasciare quello stato emettendo: BLTOUCH_DEBUG COMMAND=reset Ci\u00f2 pu\u00f2 accadere se la sua calibrazione viene interrotta dal blocco dell'estrazione della sonda. Tuttavia, anche il BL-Touch potrebbe non essere pi\u00f9 in grado di calibrarsi. Ci\u00f2 accade se la vite sulla sua sommit\u00e0 \u00e8 nella posizione sbagliata o se il nucleo magnetico all'interno del perno della sonda si \u00e8 spostato. Se si \u00e8 alzato in modo che si attacchi alla vite, potrebbe non essere pi\u00f9 in grado di abbassare il perno. Con questo comportamento \u00e8 necessario aprire la vite e utilizzare una penna a sfera per spingerla delicatamente in posizione. Reinserire il perno nel BL-Touch in modo che cada nella posizione estratta. Riposizionare con cura la vite senza testa in posizione. \u00c8 necessario trovare la posizione giusta in modo che sia in grado di abbassare e alzare il perno e la luce rossa si accende e si spegne. Usa i comandi reset , pin_up e pin_down per raggiungere questo obiettivo. BL-Touch \"cloni\" \u00b6 Molti dispositivi \"clone\" BL-Touch funzionano correttamente con Klipper utilizzando la configurazione predefinita. Tuttavia, alcuni dispositivi \"clone\" potrebbero non supportare il comando QUERY_PROBE e alcuni dispositivi \"clone\" potrebbero richiedere la configurazione di pin_up_reports_not_triggered o pin_up_touch_mode_reports_triggered . Importante! Non configurare pin_up_reports_not_triggered o pin_up_touch_mode_reports_triggered su False senza prima seguire queste indicazioni. Non configurare nessuno di questi su False su un BL-Touch originale. Un'impostazione errata di questi valori su False pu\u00f2 aumentare il tempo di ispezione e pu\u00f2 aumentare il rischio di danneggiare la stampante. Alcuni dispositivi \"clone\" non supportano touch_mode e di conseguenza il comando QUERY_PROBE non funziona. Nonostante ci\u00f2, potrebbe essere ancora possibile eseguire il rilevamento e l'homing con questi dispositivi. Su questi dispositivi il comando QUERY_PROBE durante i initial tests non avr\u00e0 esito positivo, tuttavia il successivo test G28 (o PROBE ) riesce. Potrebbe essere possibile utilizzare questi dispositivi \"clone\" con Klipper se non si utilizza il comando QUERY_PROBE e se non si abilita la funzione probe_with_touch_mode . Alcuni dispositivi \"clone\" non sono in grado di eseguire il test di verifica del sensore interno di Klipper. Su questi dispositivi, i tentativi di home o probe possono far s\u00ec che Klipper riporti un errore \"BLTouch non \u00e8 riuscito a verificare lo stato del sensore\". In tal caso, eseguire manualmente i passaggi per verificare che il pin del sensore funzioni come descritto nella initial tests section . Se i comandi QUERY_PROBE in quel test producono sempre i risultati attesi e si verificano ancora gli errori \"BLTouch non \u00e8 riuscito a verificare lo stato del sensore\", potrebbe essere necessario impostare pin_up_touch_mode_reports_triggered su False nel file di configurazione di Klipper. Un raro numero di vecchi dispositivi \"clone\" non \u00e8 in grado di segnalare quando hanno sollevato con successo la sonda. Su questi dispositivi Klipper segnaler\u00e0 un errore \"BLTouch non \u00e8 riuscito a sollevare la sonda\" dopo ogni tentativo di home o probe. Si pu\u00f2 testare questi dispositivi: spostare la testa lontano dal letto, eseguire BLTOUCH_DEBUG COMMAND=pin_down , verificare che il pin si sia spostato verso il basso, eseguire QUERY_PROBE , verificare che il comando riporti \"probe: open\", eseguire BLTOUCH_DEBUG COMMAND= pin_up , verifica che il pin sia stato spostato in alto ed esegui QUERY_PROBE . Se il pin rimane attivo, il dispositivo non entra in uno stato di errore e la prima query riporta \"probe: open\" mentre la seconda query riporta \"probe: TRIGGERED\", quindi indica che pin_up_reports_not_triggered dovrebbe essere impostato su False in Klipper file di configurazione. BL-Touch v3 \u00b6 Alcuni dispositivi BL-Touch v3.0 e BL-Touch 3.1 potrebbero richiedere la configurazione di probe_with_touch_mode nel file di configurazione della stampante. Se il BL-Touch v3.0 ha il cavo del segnale collegato a un pin endstop (con un condensatore di filtraggio del rumore), il BL-Touch v3.0 potrebbe non essere in grado di inviare un segnale in modo coerente durante l'homing e il probe. Se i comandi QUERY_PROBE nella initial tests section producono sempre i risultati attesi, ma il toolhead non si ferma sempre durante i comandi G28/PROBE, allora \u00e8 indicativo di questo problema. Una soluzione alternativa consiste nell'impostare probe_with_touch_mode: True nel file di configurazione. Il BL-Touch v3.1 potrebbe entrare erroneamente in uno stato di errore dopo un tentativo di probe riuscito. I sintomi sono una luce lampeggiante occasionale sul BL-Touch v3.1 che dura per un paio di secondi dopo che \u00e8 entrato in contatto con successo con il letto. Klipper dovrebbe cancellare questo errore automaticamente ed \u00e8 generalmente innocuo. Tuttavia, \u00e8 possibile impostare probe_with_touch_mode nel file di configurazione per evitare questo problema. Importante! Alcuni dispositivi \"clone\" e BL-Touch v2.0 (e precedenti) potrebbero avere una precisione ridotta quando probe_with_touch_mode \u00e8 impostato su True. L'impostazione su True aumenta anche il tempo necessario per distribuire la sonda. Se si configura questo valore su un dispositivo BL-Touch \"clone\" o precedente, assicurarsi di testare l'accuratezza della sonda prima e dopo aver impostato questo valore (utilizzare il comando PROBE_ACCURACY per eseguire il test). Multi-sondaggio senza riporre \u00b6 Per impostazione predefinita, Klipper rilascia la sonda all'inizio di ogni tentativo di sonda e poi riporr\u00e0 la sonda in seguito. Questo dispiegamento e stivaggio ripetitivo della sonda pu\u00f2 aumentare il tempo totale delle sequenze di calibrazione che coinvolgono molte misurazioni della sonda. Klipper consente di lasciare la sonda dispiegata tra test consecutivi, il che pu\u00f2 ridurre il tempo totale di rilevamento. Questa modalit\u00e0 \u00e8 abilitata configurando stow_on_each_sample su False nel file di configurazione. Importante! L'impostazione di stow_on_each_sample su False pu\u00f2 portare Klipper a fare movimenti orizzontali della testa utensile mentre la sonda \u00e8 estesa. Assicurarsi di verificare che tutte le operazioni con la probe abbiano un gioco Z sufficiente prima di impostare questo valore su False. Se lo spazio libero \u00e8 insufficiente, uno spostamento orizzontale pu\u00f2 causare l'intrappolamento del perno in un'ostruzione e causare danni alla stampante. Importante! Si consiglia di utilizzare probe_with_touch_mode configurato su True quando si utilizza stow_on_each_sample configurato su False. Alcuni dispositivi \"clone\" potrebbero non rilevare un successivo contatto con il piatto se probe_with_touch_mode non \u00e8 impostato. Su tutti i dispositivi, l'utilizzo della combinazione di queste due impostazioni semplifica la segnalazione del dispositivo, che pu\u00f2 migliorare la stabilit\u00e0 generale. Si noti, tuttavia, che alcuni dispositivi \"clone\" e BL-Touch v2.0 (e precedenti) potrebbero avere una precisione ridotta quando probe_with_touch_mode \u00e8 impostato su True. Su questi dispositivi \u00e8 una buona idea testare l'accuratezza della sonda prima e dopo aver impostato probe_with_touch_mode (usare il comando di test PROBE_ACCURACY ). Calibrazione degli offset BL-Touch \u00b6 Seguire le istruzioni nella guida Probe Calibrate per impostare i parametri di configurazione x_offset, y_offset e z_offset. \u00c8 una buona idea verificare che l'offset Z sia vicino a 1 mm. In caso contrario, probabilmente vorrai spostare la sonda su o gi\u00f9 per risolvere il problema. Si desidera che si attivi ben prima che l'ugello colpisca il piatto, in modo che un possibile filamento bloccato o un piatto deformato non influisca sull'azione della sonda. Ma allo stesso tempo, si desidera che la posizione retratta sia il pi\u00f9 possibile al di sopra dell'ugello per evitare che tocchi le parti stampate. Se viene effettuata una regolazione della posizione della sonda, eseguire nuovamente i passaggi di calibrazione della sonda. Modalit\u00e0 di output BL-Touch \u00b6 Un BL-Touch V3.0 supporta l'impostazione di una modalit\u00e0 di uscita 5V o OPEN-DRAIN, un BL-Touch V3.1 supporta anche questo, ma pu\u00f2 anche memorizzarlo nella sua EEPROM interna. Se la tua scheda controller ha bisogno del livello logico alto 5V fisso della modalit\u00e0 5V, puoi impostare il parametro 'set_output_mode' nella sezione [bltouch] del file di configurazione della stampante su \"5V\". Utilizzare la modalit\u00e0 5V solo se la linea di ingresso della scheda controller \u00e8 tollerante a 5V. Ecco perch\u00e9 la configurazione di default di queste versioni BL-Touch \u00e8 la modalit\u00e0 OPEN-DRAIN. Potresti potenzialmente danneggiare la CPU delle tue schede di controllo Quindi: se una scheda controller HA BISOGNO della modalit\u00e0 5V ED \u00e8 tollerante a 5V sulla sua linea del segnale di ingresso E se si dispone di un BL-Touch Smart V3.0, \u00e8 necessario utilizzare il parametro 'set_output_mode: 5V' per garantire questa impostazione ad ogni avvio, poich\u00e9 la sonda non ricorda l'impostazione necessaria. hai un BL-Touch Smart V3.1, puoi scegliere di usare 'set_output_mode: 5V' o memorizzare la modalit\u00e0 una volta usando un comando 'BLTOUCH_STORE MODE=5V' manualmente e NON usando il parametro 'set_output_mode:'. hai qualche altra sonda: alcune sonde hanno una traccia sul circuito stampato da tagliare o un ponticello da impostare per impostare (permanentemente) la modalit\u00e0 di uscita. In tal caso, omettere completamente il parametro 'set_output_mode'. Se hai una V3.1, non automatizzare o ripetere la memorizzazione della modalit\u00e0 di output per evitare di consumare la EEPROM della sonda. La BLTouch EEPROM \u00e8 valida per circa 100.000 aggiornamenti. 100 memorizzazioni al giorno aggiungerebbero fino a circa 3 anni di attivit\u00e0 prima di logorarlo. Pertanto, la memorizzazione della modalit\u00e0 di output in una V3.1 \u00e8 progettata dal fornitore per essere un'operazione complicata (l'impostazione predefinita di fabbrica \u00e8 una modalit\u00e0 OPEN DRAIN sicura) e non \u00e8 adatta per essere emessa ripetutamente da qualsiasi slicer, macro o altro, esso \u00e8 preferibilmente da utilizzare solo quando si integra per la prima volta la sonda nell'elettronica di una stampante.","title":"BL-Touch"},{"location":"BLTouch.html#bl-touch","text":"","title":"BL-Touch"},{"location":"BLTouch.html#collegare-bl-touch","text":"Attenzione warning prima di cominciare : Evita di toccare la punta del BL-Touch a mani nude, \u00e8 molto sensibili al sebo delle dita. Se sei costretto usa dei guanti ed evita di spingerla o piegarla. Collega il connettore \"servo\" BL-Touch a un control_pin secondo la documentazione BL-Touch o la documentazione MCU. Usando il cablaggio originale, il filo giallo del triplo \u00e8 il control_pin e il filo bianco della coppia \u00e8 il sensor_pin . \u00c8 necessario configurare questi pin in base al cablaggio. La maggior parte dei dispositivi BL-Touch richiede un pullup sul pin del sensore (prefissare il nome del pin con \"^\"). Per esempio: [bltouch] sensor_pin: ^P1.24 control_pin: P1.26 Se il BL-Touch verr\u00e0 utilizzato per l'home dell'asse Z, impostare endstop_pin: probe:z_virtual_endstop e rimuovere position_endstop nella sezione di configurazione [stepper_z] , quindi aggiungere una sezione di configurazione [safe_z_home] per aumentare il asse z, posiziona gli assi xy, spostati al centro del letto e posizionati sull'asse z. Per esempio: [safe_z_home] home_xy_position: 100, 100 # Cambiare le coordinate per il centro del tuo piatto speed: 50 z_hop: 10 # Move up 10mm z_hop_speed: 5 \u00c8 importante che il movimento z_hop in safe_z_home sia sufficientemente alto in mode che la sonda non colpisca nulla anche se il pin della sonda si trova nel suo stato pi\u00f9 basso.","title":"Collegare BL-Touch"},{"location":"BLTouch.html#test-iniziali","text":"Prima di proseguire, verificare che il BL-Touch sia montato all'altezza corretta, il perno dovrebbe trovarsi a circa 2 mm sopra il nozzle quando \u00e8 retratto Quando si accende la stampante, la sonda BL-Touch dovrebbe eseguire un autotest e spostare il pin su e gi\u00f9 un paio di volte. Una volta completato l'autotest, il perno deve essere retratto e il LED rosso sulla sonda deve essere acceso. In caso di errori, ad esempio la sonda lampeggia in rosso o il pin \u00e8 in basso anzich\u00e9 in alto, spegnere la stampante e controllare il cablaggio e la configurazione. Se quanto sopra sembra buono, \u00e8 il momento di verificare che il pin di controllo funzioni correttamente. Per prima cosa esegui BLTOUCH_DEBUG COMMAND=pin_down nel terminale della tua stampante. Verificare che il pin si abbassi e che il LED rosso sulla sonda si spenga. In caso contrario, controllare nuovamente il cablaggio e la configurazione. Quindi emettere un BLTOUCH_DEBUG COMMAND=pin_up , verificare che il pin si muova verso l'alto e che la luce rossa si accenda di nuovo. Se lampeggia allora c'\u00e8 qualche problema. Il passaggio successivo \u00e8 confermare che il pin del sensore funzioni correttamente. Esegui BLTOUCH_DEBUG COMMAND=pin_down , verifica che il pin si sposti verso il basso, esegui BLTOUCH_DEBUG COMMAND=touch_mode , esegui QUERY_PROBE e verifica che il comando riporti \"probe: open\". Quindi, spingendo leggermente verso l'alto il perno con l'unghia del dito, eseguire nuovamente QUERY_PROBE . Verificare che il comando riporti \"probe: TRIGGERED\". Se una delle query non riporta il messaggio corretto, di solito indica un cablaggio o una configurazione errati (sebbene alcuni clones potrebbero richiedere una gestione speciale). Al completamento di questo test, eseguire BLTOUCH_DEBUG COMMAND=pin_up e verificare che il pin si muova verso l'alto. Dopo aver completato i test del pin di controllo BL-Touch e del pin del sensore, \u00e8 ora il momento di testare il rilevamento, ma con una svolta. Invece di lasciare che il perno della sonda tocchi il piano di stampa, lascia che tocchi l'unghia del dito. Posizionare la testina lontano dal letto, emettere un G28 (o PROBE se non si utilizza probe:z_virtual_endstop), attendere che la testina inizi a muoversi verso il basso e interrompere il movimento toccando molto delicatamente il perno con l'unghia. Potrebbe essere necessario farlo due volte, poich\u00e9 la configurazione di homing predefinita esegue due sonde. Preparati a spegnere la stampante se non si ferma quando tocchi il perno. Se ha avuto successo, esegui un altro G28 (o PROBE ) ma questa volta lascia che tocchi il letto come dovrebbe.","title":"Test iniziali"},{"location":"BLTouch.html#bl-touch-andato-male","text":"Una volta che il BL-Touch \u00e8 in uno stato incoerente, inizia a lampeggiare in rosso. Puoi forzarlo a lasciare quello stato emettendo: BLTOUCH_DEBUG COMMAND=reset Ci\u00f2 pu\u00f2 accadere se la sua calibrazione viene interrotta dal blocco dell'estrazione della sonda. Tuttavia, anche il BL-Touch potrebbe non essere pi\u00f9 in grado di calibrarsi. Ci\u00f2 accade se la vite sulla sua sommit\u00e0 \u00e8 nella posizione sbagliata o se il nucleo magnetico all'interno del perno della sonda si \u00e8 spostato. Se si \u00e8 alzato in modo che si attacchi alla vite, potrebbe non essere pi\u00f9 in grado di abbassare il perno. Con questo comportamento \u00e8 necessario aprire la vite e utilizzare una penna a sfera per spingerla delicatamente in posizione. Reinserire il perno nel BL-Touch in modo che cada nella posizione estratta. Riposizionare con cura la vite senza testa in posizione. \u00c8 necessario trovare la posizione giusta in modo che sia in grado di abbassare e alzare il perno e la luce rossa si accende e si spegne. Usa i comandi reset , pin_up e pin_down per raggiungere questo obiettivo.","title":"BL-Touch andato male"},{"location":"BLTouch.html#bl-touch-cloni","text":"Molti dispositivi \"clone\" BL-Touch funzionano correttamente con Klipper utilizzando la configurazione predefinita. Tuttavia, alcuni dispositivi \"clone\" potrebbero non supportare il comando QUERY_PROBE e alcuni dispositivi \"clone\" potrebbero richiedere la configurazione di pin_up_reports_not_triggered o pin_up_touch_mode_reports_triggered . Importante! Non configurare pin_up_reports_not_triggered o pin_up_touch_mode_reports_triggered su False senza prima seguire queste indicazioni. Non configurare nessuno di questi su False su un BL-Touch originale. Un'impostazione errata di questi valori su False pu\u00f2 aumentare il tempo di ispezione e pu\u00f2 aumentare il rischio di danneggiare la stampante. Alcuni dispositivi \"clone\" non supportano touch_mode e di conseguenza il comando QUERY_PROBE non funziona. Nonostante ci\u00f2, potrebbe essere ancora possibile eseguire il rilevamento e l'homing con questi dispositivi. Su questi dispositivi il comando QUERY_PROBE durante i initial tests non avr\u00e0 esito positivo, tuttavia il successivo test G28 (o PROBE ) riesce. Potrebbe essere possibile utilizzare questi dispositivi \"clone\" con Klipper se non si utilizza il comando QUERY_PROBE e se non si abilita la funzione probe_with_touch_mode . Alcuni dispositivi \"clone\" non sono in grado di eseguire il test di verifica del sensore interno di Klipper. Su questi dispositivi, i tentativi di home o probe possono far s\u00ec che Klipper riporti un errore \"BLTouch non \u00e8 riuscito a verificare lo stato del sensore\". In tal caso, eseguire manualmente i passaggi per verificare che il pin del sensore funzioni come descritto nella initial tests section . Se i comandi QUERY_PROBE in quel test producono sempre i risultati attesi e si verificano ancora gli errori \"BLTouch non \u00e8 riuscito a verificare lo stato del sensore\", potrebbe essere necessario impostare pin_up_touch_mode_reports_triggered su False nel file di configurazione di Klipper. Un raro numero di vecchi dispositivi \"clone\" non \u00e8 in grado di segnalare quando hanno sollevato con successo la sonda. Su questi dispositivi Klipper segnaler\u00e0 un errore \"BLTouch non \u00e8 riuscito a sollevare la sonda\" dopo ogni tentativo di home o probe. Si pu\u00f2 testare questi dispositivi: spostare la testa lontano dal letto, eseguire BLTOUCH_DEBUG COMMAND=pin_down , verificare che il pin si sia spostato verso il basso, eseguire QUERY_PROBE , verificare che il comando riporti \"probe: open\", eseguire BLTOUCH_DEBUG COMMAND= pin_up , verifica che il pin sia stato spostato in alto ed esegui QUERY_PROBE . Se il pin rimane attivo, il dispositivo non entra in uno stato di errore e la prima query riporta \"probe: open\" mentre la seconda query riporta \"probe: TRIGGERED\", quindi indica che pin_up_reports_not_triggered dovrebbe essere impostato su False in Klipper file di configurazione.","title":"BL-Touch \"cloni\""},{"location":"BLTouch.html#bl-touch-v3","text":"Alcuni dispositivi BL-Touch v3.0 e BL-Touch 3.1 potrebbero richiedere la configurazione di probe_with_touch_mode nel file di configurazione della stampante. Se il BL-Touch v3.0 ha il cavo del segnale collegato a un pin endstop (con un condensatore di filtraggio del rumore), il BL-Touch v3.0 potrebbe non essere in grado di inviare un segnale in modo coerente durante l'homing e il probe. Se i comandi QUERY_PROBE nella initial tests section producono sempre i risultati attesi, ma il toolhead non si ferma sempre durante i comandi G28/PROBE, allora \u00e8 indicativo di questo problema. Una soluzione alternativa consiste nell'impostare probe_with_touch_mode: True nel file di configurazione. Il BL-Touch v3.1 potrebbe entrare erroneamente in uno stato di errore dopo un tentativo di probe riuscito. I sintomi sono una luce lampeggiante occasionale sul BL-Touch v3.1 che dura per un paio di secondi dopo che \u00e8 entrato in contatto con successo con il letto. Klipper dovrebbe cancellare questo errore automaticamente ed \u00e8 generalmente innocuo. Tuttavia, \u00e8 possibile impostare probe_with_touch_mode nel file di configurazione per evitare questo problema. Importante! Alcuni dispositivi \"clone\" e BL-Touch v2.0 (e precedenti) potrebbero avere una precisione ridotta quando probe_with_touch_mode \u00e8 impostato su True. L'impostazione su True aumenta anche il tempo necessario per distribuire la sonda. Se si configura questo valore su un dispositivo BL-Touch \"clone\" o precedente, assicurarsi di testare l'accuratezza della sonda prima e dopo aver impostato questo valore (utilizzare il comando PROBE_ACCURACY per eseguire il test).","title":"BL-Touch v3"},{"location":"BLTouch.html#multi-sondaggio-senza-riporre","text":"Per impostazione predefinita, Klipper rilascia la sonda all'inizio di ogni tentativo di sonda e poi riporr\u00e0 la sonda in seguito. Questo dispiegamento e stivaggio ripetitivo della sonda pu\u00f2 aumentare il tempo totale delle sequenze di calibrazione che coinvolgono molte misurazioni della sonda. Klipper consente di lasciare la sonda dispiegata tra test consecutivi, il che pu\u00f2 ridurre il tempo totale di rilevamento. Questa modalit\u00e0 \u00e8 abilitata configurando stow_on_each_sample su False nel file di configurazione. Importante! L'impostazione di stow_on_each_sample su False pu\u00f2 portare Klipper a fare movimenti orizzontali della testa utensile mentre la sonda \u00e8 estesa. Assicurarsi di verificare che tutte le operazioni con la probe abbiano un gioco Z sufficiente prima di impostare questo valore su False. Se lo spazio libero \u00e8 insufficiente, uno spostamento orizzontale pu\u00f2 causare l'intrappolamento del perno in un'ostruzione e causare danni alla stampante. Importante! Si consiglia di utilizzare probe_with_touch_mode configurato su True quando si utilizza stow_on_each_sample configurato su False. Alcuni dispositivi \"clone\" potrebbero non rilevare un successivo contatto con il piatto se probe_with_touch_mode non \u00e8 impostato. Su tutti i dispositivi, l'utilizzo della combinazione di queste due impostazioni semplifica la segnalazione del dispositivo, che pu\u00f2 migliorare la stabilit\u00e0 generale. Si noti, tuttavia, che alcuni dispositivi \"clone\" e BL-Touch v2.0 (e precedenti) potrebbero avere una precisione ridotta quando probe_with_touch_mode \u00e8 impostato su True. Su questi dispositivi \u00e8 una buona idea testare l'accuratezza della sonda prima e dopo aver impostato probe_with_touch_mode (usare il comando di test PROBE_ACCURACY ).","title":"Multi-sondaggio senza riporre"},{"location":"BLTouch.html#calibrazione-degli-offset-bl-touch","text":"Seguire le istruzioni nella guida Probe Calibrate per impostare i parametri di configurazione x_offset, y_offset e z_offset. \u00c8 una buona idea verificare che l'offset Z sia vicino a 1 mm. In caso contrario, probabilmente vorrai spostare la sonda su o gi\u00f9 per risolvere il problema. Si desidera che si attivi ben prima che l'ugello colpisca il piatto, in modo che un possibile filamento bloccato o un piatto deformato non influisca sull'azione della sonda. Ma allo stesso tempo, si desidera che la posizione retratta sia il pi\u00f9 possibile al di sopra dell'ugello per evitare che tocchi le parti stampate. Se viene effettuata una regolazione della posizione della sonda, eseguire nuovamente i passaggi di calibrazione della sonda.","title":"Calibrazione degli offset BL-Touch"},{"location":"BLTouch.html#modalita-di-output-bl-touch","text":"Un BL-Touch V3.0 supporta l'impostazione di una modalit\u00e0 di uscita 5V o OPEN-DRAIN, un BL-Touch V3.1 supporta anche questo, ma pu\u00f2 anche memorizzarlo nella sua EEPROM interna. Se la tua scheda controller ha bisogno del livello logico alto 5V fisso della modalit\u00e0 5V, puoi impostare il parametro 'set_output_mode' nella sezione [bltouch] del file di configurazione della stampante su \"5V\". Utilizzare la modalit\u00e0 5V solo se la linea di ingresso della scheda controller \u00e8 tollerante a 5V. Ecco perch\u00e9 la configurazione di default di queste versioni BL-Touch \u00e8 la modalit\u00e0 OPEN-DRAIN. Potresti potenzialmente danneggiare la CPU delle tue schede di controllo Quindi: se una scheda controller HA BISOGNO della modalit\u00e0 5V ED \u00e8 tollerante a 5V sulla sua linea del segnale di ingresso E se si dispone di un BL-Touch Smart V3.0, \u00e8 necessario utilizzare il parametro 'set_output_mode: 5V' per garantire questa impostazione ad ogni avvio, poich\u00e9 la sonda non ricorda l'impostazione necessaria. hai un BL-Touch Smart V3.1, puoi scegliere di usare 'set_output_mode: 5V' o memorizzare la modalit\u00e0 una volta usando un comando 'BLTOUCH_STORE MODE=5V' manualmente e NON usando il parametro 'set_output_mode:'. hai qualche altra sonda: alcune sonde hanno una traccia sul circuito stampato da tagliare o un ponticello da impostare per impostare (permanentemente) la modalit\u00e0 di uscita. In tal caso, omettere completamente il parametro 'set_output_mode'. Se hai una V3.1, non automatizzare o ripetere la memorizzazione della modalit\u00e0 di output per evitare di consumare la EEPROM della sonda. La BLTouch EEPROM \u00e8 valida per circa 100.000 aggiornamenti. 100 memorizzazioni al giorno aggiungerebbero fino a circa 3 anni di attivit\u00e0 prima di logorarlo. Pertanto, la memorizzazione della modalit\u00e0 di output in una V3.1 \u00e8 progettata dal fornitore per essere un'operazione complicata (l'impostazione predefinita di fabbrica \u00e8 una modalit\u00e0 OPEN DRAIN sicura) e non \u00e8 adatta per essere emessa ripetutamente da qualsiasi slicer, macro o altro, esso \u00e8 preferibilmente da utilizzare solo quando si integra per la prima volta la sonda nell'elettronica di una stampante.","title":"Modalit\u00e0 di output BL-Touch"},{"location":"Beaglebone.html","text":"Beaglebone \u00b6 Questo documento descrive il processo di esecuzione di Klipper su una PRU Beaglebone. Creazione di un'immagine del sistema operativo \u00b6 Inizia installando l'immagine Debian 9.9 2019-08-03 4GB SD IoT . \u00c8 possibile eseguire l'immagine da una scheda micro-SD o dall'eMMC integrato. Se si utilizza l'eMMC, installarlo ora nell'eMMC seguendo le istruzioni dal collegamento sopra. Quindi loggati ssh nella macchina Beaglebone ( ssh debian@beaglebone -- la password \u00e8 temppwd ) e installa Klipper eseguendo i seguenti comandi: git clone https://github.com/Klipper3d/klipper ./klipper/scripts/install-beaglebone.sh Installare Octoprint \u00b6 Si pu\u00f2 quindi installare Octoprint: git clone https://github.com/foosel/OctoPrint.git cd OctoPrint/ virtualenv venv ./venv/bin/python setup.py install E configura OctoPrint per l'avvio all'avvio: sudo cp ~/OctoPrint/scripts/octoprint.init /etc/init.d/octoprint sudo chmod +x /etc/init.d/octoprint sudo cp ~/OctoPrint/scripts/octoprint.default /etc/default/octoprint sudo update-rc.d octoprint defaults \u00c8 necessario modificare il file di configurazione /etc/default/octoprint di OctoPrint. Si deve cambiare l'utente OCTOPRINT_USER in debian , cambiare NICELEVEL in 0 , togliere il commento alle impostazioni di BASEDIR , CONFIGFILE e DAEMON e cambiare i riferimenti della home da /home/pi/ a /home/debian/ : sudo nano /etc/default/octoprint Quindi avvia il servizio Octoprint: sudo systemctl start octoprint Assicurati che il server web OctoPrint sia accessibile - dovrebbe trovarsi su: http://beaglebone:5000/ Creazione del codice del microcontrollore \u00b6 Per compilare il codice del microcontrollore Klipper, inizia configurandolo per il \"Beaglebone PRU\": cd ~/klipper/ make menuconfig Per compilare e installare il nuovo codice del microcontrollore, eseguire: sudo service klipper stop make flash sudo service klipper start \u00c8 inoltre necessario compilare e installare il codice del microcontrollore per un processo host Linux. Configuralo per un \"processo Linux\": make menuconfig Quindi installa anche questo codice del microcontrollore: sudo service klipper stop make flash sudo service klipper start Configurazione rimanente \u00b6 Completare l'installazione configurando Klipper e Octoprint seguendo le istruzioni nel documento principale Installation . Stampa sul Beaglebone \u00b6 Sfortunatamente, il processore Beaglebone a volte pu\u00f2 avere difficolt\u00e0 a far funzionare bene OctoPrint. \u00c8 noto che i blocchi di stampa si verificano su stampe complesse (la stampante potrebbe muoversi pi\u00f9 velocemente di quanto OctoPrint possa inviare comandi di movimento). In questo caso, considera l'utilizzo della funzione \"virtual_sdcard\" (consulta Config Reference per i dettagli) per stampare direttamente da Klipper.","title":"Beaglebone"},{"location":"Beaglebone.html#beaglebone","text":"Questo documento descrive il processo di esecuzione di Klipper su una PRU Beaglebone.","title":"Beaglebone"},{"location":"Beaglebone.html#creazione-di-unimmagine-del-sistema-operativo","text":"Inizia installando l'immagine Debian 9.9 2019-08-03 4GB SD IoT . \u00c8 possibile eseguire l'immagine da una scheda micro-SD o dall'eMMC integrato. Se si utilizza l'eMMC, installarlo ora nell'eMMC seguendo le istruzioni dal collegamento sopra. Quindi loggati ssh nella macchina Beaglebone ( ssh debian@beaglebone -- la password \u00e8 temppwd ) e installa Klipper eseguendo i seguenti comandi: git clone https://github.com/Klipper3d/klipper ./klipper/scripts/install-beaglebone.sh","title":"Creazione di un'immagine del sistema operativo"},{"location":"Beaglebone.html#installare-octoprint","text":"Si pu\u00f2 quindi installare Octoprint: git clone https://github.com/foosel/OctoPrint.git cd OctoPrint/ virtualenv venv ./venv/bin/python setup.py install E configura OctoPrint per l'avvio all'avvio: sudo cp ~/OctoPrint/scripts/octoprint.init /etc/init.d/octoprint sudo chmod +x /etc/init.d/octoprint sudo cp ~/OctoPrint/scripts/octoprint.default /etc/default/octoprint sudo update-rc.d octoprint defaults \u00c8 necessario modificare il file di configurazione /etc/default/octoprint di OctoPrint. Si deve cambiare l'utente OCTOPRINT_USER in debian , cambiare NICELEVEL in 0 , togliere il commento alle impostazioni di BASEDIR , CONFIGFILE e DAEMON e cambiare i riferimenti della home da /home/pi/ a /home/debian/ : sudo nano /etc/default/octoprint Quindi avvia il servizio Octoprint: sudo systemctl start octoprint Assicurati che il server web OctoPrint sia accessibile - dovrebbe trovarsi su: http://beaglebone:5000/","title":"Installare Octoprint"},{"location":"Beaglebone.html#creazione-del-codice-del-microcontrollore","text":"Per compilare il codice del microcontrollore Klipper, inizia configurandolo per il \"Beaglebone PRU\": cd ~/klipper/ make menuconfig Per compilare e installare il nuovo codice del microcontrollore, eseguire: sudo service klipper stop make flash sudo service klipper start \u00c8 inoltre necessario compilare e installare il codice del microcontrollore per un processo host Linux. Configuralo per un \"processo Linux\": make menuconfig Quindi installa anche questo codice del microcontrollore: sudo service klipper stop make flash sudo service klipper start","title":"Creazione del codice del microcontrollore"},{"location":"Beaglebone.html#configurazione-rimanente","text":"Completare l'installazione configurando Klipper e Octoprint seguendo le istruzioni nel documento principale Installation .","title":"Configurazione rimanente"},{"location":"Beaglebone.html#stampa-sul-beaglebone","text":"Sfortunatamente, il processore Beaglebone a volte pu\u00f2 avere difficolt\u00e0 a far funzionare bene OctoPrint. \u00c8 noto che i blocchi di stampa si verificano su stampe complesse (la stampante potrebbe muoversi pi\u00f9 velocemente di quanto OctoPrint possa inviare comandi di movimento). In questo caso, considera l'utilizzo della funzione \"virtual_sdcard\" (consulta Config Reference per i dettagli) per stampare direttamente da Klipper.","title":"Stampa sul Beaglebone"},{"location":"Bed_Level.html","text":"Livellamento del piatto \u00b6 La livellatura del piatto \u00e8 fondamentale per ottenere stampe di alta qualit\u00e0. Se un piatto non \u00e8 adeguatamente \"livellato\" pu\u00f2 portare a una scarsa adesione sul piatto, a una \"deformazione\" e a problemi minori durante la stampa. Questo documento serve come guida per eseguire il livellamento del piatto in Klipper. \u00c8 importante comprendere l'obiettivo del livellamento del piatto. Se alla stampante viene comandata una posizione X0 Y0 Z10 durante una stampa, l'obiettivo \u00e8 che l'ugello della stampante si trovi esattamente a 10 mm dal piatto della stampante. Inoltre, se poi la stampante dovesse essere comandata in una posizione di X50 Z10 , l'obiettivo \u00e8 che l'ugello mantenga una distanza esatta di 10 mm dal piatto durante l'intero movimento orizzontale. Per ottenere stampe di buona qualit\u00e0, la stampante deve essere calibrata in modo che le distanze Z siano precise entro circa 25 micron (0,025 mm). Questa \u00e8 una piccola distanza, significativamente pi\u00f9 piccola della larghezza di un tipico capello umano. Questa scala non pu\u00f2 essere misurata \"a occhio\". Gli effetti sottili (come l'espansione del calore) influiscono sulle misurazioni a questa scala. Il segreto per ottenere un'elevata precisione \u00e8 utilizzare un processo ripetibile e un metodo di livellamento che sfrutti l'elevata precisione del sistema di movimento della stampante. Scegliere il meccanismo di calibrazione appropriato \u00b6 Diversi tipi di stampanti utilizzano metodi diversi per eseguire il livellamento del piatto. Tutti alla fine dipendono dal \"test cartaceo\" (descritto di seguito). Tuttavia, il processo effettivo per un particolare tipo di stampante \u00e8 descritto in altri documenti. Prima di eseguire uno di questi strumenti di calibrazione, assicurarsi di eseguire i controlli descritti nel documento check di configurazione . \u00c8 necessario verificare il movimento di base della stampante prima di eseguire il livellamento del piatto. Per le stampanti con una \"sonda Z automatica\", assicurarsi di calibrare la sonda seguendo le istruzioni nel documento Probe Calibrate . Per le stampanti delta, vedere il documento Delta Calibrate . Per le stampanti con viti di fissaggio e fermi Z tradizionali, vedere il documento Manual Level . Durante la calibrazione potrebbe essere necessario impostare la Z position_min della stampante su un numero negativo (ad esempio, position_min = -2 ). La stampante applica i controlli dei confini anche durante le routine di calibrazione. L'impostazione di un numero negativo consente alla stampante di spostarsi al di sotto della posizione nominale del piatto, il che pu\u00f2 aiutare quando si tenta di determinare la posizione effettiva del piatto. Il \"test con la carta\" \u00b6 Il meccanismo primario di calibrazione del piatto primario \u00e8 il \"test della carta\". Si tratta di posizionare un normale pezzo di \"carta per fotocopiatrice\" tra il piatto della stampante e l'ugello, quindi comandare l'ugello a diverse altezze Z finch\u00e9 non si avverte una piccola quantit\u00e0 di attrito quando si spinge la carta avanti e indietro. \u00c8 importante comprendere il \"test della carta\" anche se si dispone di una \"sonda Z automatica\". La sonda stessa deve spesso essere calibrata per ottenere buoni risultati. La calibrazione della sonda viene eseguita utilizzando questo \"test della carta\". Per eseguire il test della carta, taglia un piccolo pezzo di carta rettangolare usando un paio di forbici (es. 5x3 cm). La carta ha generalmente uno spessore di circa 100 micron (0,100 mm). (Lo spessore esatto della carta non \u00e8 cruciale.) Il primo passaggio del test della carta consiste nell'ispezione dell'ugello e del piatto della stampante. Assicurati che non ci sia plastica (o altri detriti) sull'ugello o sul letto. Ispeziona l'ugello e il piatto per assicurarti che non sia presente plastica! Se si stampa sempre su un determinato nastro o superficie di stampa, \u00e8 possibile eseguire il test della carta con quel nastro/superficie in posizione. Tuttavia, tieni presente che il nastro stesso ha uno spessore e nastri diversi (o qualsiasi altra superficie di stampa) influiranno sulle misurazioni Z. Assicurati di eseguire nuovamente il test della carta per misurare ogni tipo di superficie in uso. Se c'\u00e8 della plastica sull'ugello, riscalda l'estrusore e usa una pinzetta di metallo per rimuovere quella plastica. Attendere che l'estrusore si raffreddi completamente a temperatura ambiente prima di continuare con il test della carta. Mentre l'ugello si sta raffreddando, usa le pinzette di metallo per rimuovere la plastica che potrebbe fuoriuscire. Esegui sempre il test della carta quando sia l'ugello che il letto sono a temperatura ambiente! Quando l'ugello \u00e8 riscaldato, la sua posizione (rispetto al piatto) cambia a causa dell'espansione termica. Questa espansione termica \u00e8 in genere di circa 100 micron, che ha all'incirca lo stesso spessore di un tipico pezzo di carta per stampante. L'esatta quantit\u00e0 di espansione termica non \u00e8 cruciale, cos\u00ec come lo spessore esatto della carta non \u00e8 cruciale. Inizia con il presupposto che i due siano uguali (vedi sotto per un metodo per determinare la differenza tra le due distanze). Pu\u00f2 sembrare strano calibrare la distanza a temperatura ambiente quando l'obiettivo \u00e8 avere una distanza costante quando riscaldata. Tuttavia, se si calibra quando l'ugello \u00e8 riscaldato, tende a rilasciare piccole quantit\u00e0 di plastica fusa alla carta, il che cambia la quantit\u00e0 di attrito sentito. Ci\u00f2 rende pi\u00f9 difficile ottenere una buona calibrazione. La calibrazione mentre il letto/ugello \u00e8 caldo aumenta notevolmente anche il rischio di ustione. La quantit\u00e0 di espansione termica \u00e8 stabile, quindi \u00e8 facilmente contabilizzabile pi\u00f9 avanti nel processo di calibrazione. Utilizza uno strumento automatizzato per determinare l'altezza Z precisa! Klipper ha diversi script di supporto disponibili (ad esempio, MANUAL_PROBE, Z_ENDSTOP_CALIBRATE, PROBE_CALIBRATE, DELTA_CALIBRATE). Consulta i documenti descritti sopra per sceglierne uno. Eseguire il comando appropriato nella finestra del terminale di OctoPrint. Lo script richieder\u00e0 l'interazione dell'utente nell'output del terminale OctoPrint. Sembrer\u00e0 qualcosa come: Recv: // Starting manual Z probe. Use TESTZ to adjust position. Recv: // Finish with ACCEPT or ABORT command. Recv: // Z position: ?????? --> 5.000 <-- ?????? L'altezza attuale dell'ugello (come la intende attualmente la stampante) \u00e8 mostrata tra \"--> <--\". Il numero a destra \u00e8 l'altezza dell'ultimo tentativo di sonda appena maggiore dell'altezza attuale e a sinistra \u00e8 l'ultimo tentativo di sonda inferiore all'altezza attuale (o ?????? se non \u00e8 stato effettuato alcun tentativo). Metti la carta tra l'ugello e il letto. Pu\u00f2 essere utile piegare un angolo della carta in modo che sia pi\u00f9 facile da afferrare. (Cerca di non spingere il piatto quando muovi la carta avanti e indietro.) Utilizzare il comando TESTZ per richiedere all'ugello di avvicinarsi alla carta. Per esempio: TESTZ Z=-.1 Il comando TESTZ sposter\u00e0 l'ugello di una distanza relativa dalla posizione corrente dell'ugello. (Quindi, Z=-.1 richiede che l'ugello si avvicini al piatto di 0,1 mm.) Dopo che l'ugello ha smesso di muoversi, spingere la carta avanti e indietro per controllare se l'ugello \u00e8 in contatto con la carta e per sentire la quantit\u00e0 di attrito. Continua a emettere comandi TESTZ finch\u00e9 non si avverte una piccola quantit\u00e0 di attrito durante il test con la carta. Se si trova troppo attrito, \u00e8 possibile utilizzare un valore Z positivo per spostare l'ugello verso l'alto. \u00c8 anche possibile utilizzare TESTZ Z=+ o TESTZ Z=- per \"sezionare in due\" l'ultima posizione, ovvero per spostarsi in una posizione a met\u00e0 strada tra due posizioni. Ad esempio, se si riceve il seguente prompt da un comando TESTZ: Recv: // Z position: 0.130 --> 0.230 <-- 0.280 Quindi un TESTZ Z=- sposterebbe l'ugello in una posizione Z di 0,180 (a met\u00e0 strada tra 0,130 e 0,230). \u00c8 possibile utilizzare questa funzione per ridurre rapidamente a un attrito costante. \u00c8 anche possibile usare Z=++ e Z=-- per tornare direttamente a una misurazione passata - per esempio, dopo il prompt sopra un comando TESTZ Z=-- sposterebbe l'ugello su una Z posizione di 0,130. Dopo aver trovato una piccola quantit\u00e0 di attrito, eseguire il comando ACCETTA: ACCEPT Questo accetter\u00e0 l'altezza Z data e proceder\u00e0 con lo strumento di calibrazione fornito. L'esatta quantit\u00e0 di attrito percepito non \u00e8 cruciale, cos\u00ec come la quantit\u00e0 di espansione termica e l'esatta larghezza della carta non sono cruciali. Cerca solo di ottenere la stessa quantit\u00e0 di attrito ogni volta che esegui il test. Se qualcosa va storto durante il test, \u00e8 possibile utilizzare il comando ABORT per uscire dallo strumento di calibrazione. Determinare l'espansione termica \u00b6 Dopo aver eseguito con successo il livellamento del piatto, si pu\u00f2 continuare a calcolare un valore pi\u00f9 preciso per l'impatto combinato di \"espansione termica\", \"spessore della carta\" e \"quantit\u00e0 di attrito sentito durante il test della carta\". Questo tipo di calcolo generalmente non \u00e8 necessario poich\u00e9 la maggior parte degli utenti ritiene che il semplice \"test cartaceo\" fornisca buoni risultati. Il modo pi\u00f9 semplice per eseguire questo calcolo \u00e8 stampare un oggetto di prova con pareti dritte su tutti i lati. Il cubo vuoto che si trova in docs/prints/square.stl pu\u00f2 essere usato per questo. Quando si fa lo slicing l'oggetto, assicurarsi che lo slicer utilizzi la stessa altezza del livello e la stessa larghezza di estrusione per il primo livello che utilizza per tutti i livelli successivi. Utilizzare un'altezza dello strato grossolana (l'altezza dello strato dovrebbe essere circa il 75% del diametro dell'ugello) e non utilizzare un bordo o una raft. Stampa l'oggetto di prova, attendi che si raffreddi e rimuovilo dal piatto. Ispeziona lo strato pi\u00f9 basso dell'oggetto. (Pu\u00f2 anche essere utile far scorrere un dito o un'unghia lungo il bordo inferiore.) Se si scopre che lo strato inferiore si gonfia leggermente lungo tutti i lati dell'oggetto, significa che l'ugello era leggermente pi\u00f9 vicino al piatto di quanto dovrebbe essere. Si pu\u00f2 emettere un comando SET_GCODE_OFFSET Z=+.010 per aumentare l'altezza. Nelle stampe successive \u00e8 possibile controllare questo comportamento e apportare ulteriori modifiche secondo necessit\u00e0. Le regolazioni di questo tipo sono in genere in 10 micron (0,010 mm). Se il livello inferiore appare costantemente pi\u00f9 stretto dei livelli successivi, \u00e8 possibile utilizzare il comando SET_GCODE_OFFSET per effettuare una regolazione Z negativa. Se non si \u00e8 sicuri, \u00e8 possibile diminuire la regolazione Z finch\u00e9 lo strato inferiore delle stampe non mostra un piccolo rigonfiamento, quindi arretrare finch\u00e9 non scompare. Il modo pi\u00f9 semplice per applicare la regolazione Z desiderata \u00e8 creare una macro di G-code START_PRINT, fare in modo che lo slicer chiami quella macro all'inizio di ogni stampa e aggiungere un comando SET_GCODE_OFFSET a quella macro. Per ulteriori dettagli, vedere il documento slicers .","title":"Livellamento del piatto"},{"location":"Bed_Level.html#livellamento-del-piatto","text":"La livellatura del piatto \u00e8 fondamentale per ottenere stampe di alta qualit\u00e0. Se un piatto non \u00e8 adeguatamente \"livellato\" pu\u00f2 portare a una scarsa adesione sul piatto, a una \"deformazione\" e a problemi minori durante la stampa. Questo documento serve come guida per eseguire il livellamento del piatto in Klipper. \u00c8 importante comprendere l'obiettivo del livellamento del piatto. Se alla stampante viene comandata una posizione X0 Y0 Z10 durante una stampa, l'obiettivo \u00e8 che l'ugello della stampante si trovi esattamente a 10 mm dal piatto della stampante. Inoltre, se poi la stampante dovesse essere comandata in una posizione di X50 Z10 , l'obiettivo \u00e8 che l'ugello mantenga una distanza esatta di 10 mm dal piatto durante l'intero movimento orizzontale. Per ottenere stampe di buona qualit\u00e0, la stampante deve essere calibrata in modo che le distanze Z siano precise entro circa 25 micron (0,025 mm). Questa \u00e8 una piccola distanza, significativamente pi\u00f9 piccola della larghezza di un tipico capello umano. Questa scala non pu\u00f2 essere misurata \"a occhio\". Gli effetti sottili (come l'espansione del calore) influiscono sulle misurazioni a questa scala. Il segreto per ottenere un'elevata precisione \u00e8 utilizzare un processo ripetibile e un metodo di livellamento che sfrutti l'elevata precisione del sistema di movimento della stampante.","title":"Livellamento del piatto"},{"location":"Bed_Level.html#scegliere-il-meccanismo-di-calibrazione-appropriato","text":"Diversi tipi di stampanti utilizzano metodi diversi per eseguire il livellamento del piatto. Tutti alla fine dipendono dal \"test cartaceo\" (descritto di seguito). Tuttavia, il processo effettivo per un particolare tipo di stampante \u00e8 descritto in altri documenti. Prima di eseguire uno di questi strumenti di calibrazione, assicurarsi di eseguire i controlli descritti nel documento check di configurazione . \u00c8 necessario verificare il movimento di base della stampante prima di eseguire il livellamento del piatto. Per le stampanti con una \"sonda Z automatica\", assicurarsi di calibrare la sonda seguendo le istruzioni nel documento Probe Calibrate . Per le stampanti delta, vedere il documento Delta Calibrate . Per le stampanti con viti di fissaggio e fermi Z tradizionali, vedere il documento Manual Level . Durante la calibrazione potrebbe essere necessario impostare la Z position_min della stampante su un numero negativo (ad esempio, position_min = -2 ). La stampante applica i controlli dei confini anche durante le routine di calibrazione. L'impostazione di un numero negativo consente alla stampante di spostarsi al di sotto della posizione nominale del piatto, il che pu\u00f2 aiutare quando si tenta di determinare la posizione effettiva del piatto.","title":"Scegliere il meccanismo di calibrazione appropriato"},{"location":"Bed_Level.html#il-test-con-la-carta","text":"Il meccanismo primario di calibrazione del piatto primario \u00e8 il \"test della carta\". Si tratta di posizionare un normale pezzo di \"carta per fotocopiatrice\" tra il piatto della stampante e l'ugello, quindi comandare l'ugello a diverse altezze Z finch\u00e9 non si avverte una piccola quantit\u00e0 di attrito quando si spinge la carta avanti e indietro. \u00c8 importante comprendere il \"test della carta\" anche se si dispone di una \"sonda Z automatica\". La sonda stessa deve spesso essere calibrata per ottenere buoni risultati. La calibrazione della sonda viene eseguita utilizzando questo \"test della carta\". Per eseguire il test della carta, taglia un piccolo pezzo di carta rettangolare usando un paio di forbici (es. 5x3 cm). La carta ha generalmente uno spessore di circa 100 micron (0,100 mm). (Lo spessore esatto della carta non \u00e8 cruciale.) Il primo passaggio del test della carta consiste nell'ispezione dell'ugello e del piatto della stampante. Assicurati che non ci sia plastica (o altri detriti) sull'ugello o sul letto. Ispeziona l'ugello e il piatto per assicurarti che non sia presente plastica! Se si stampa sempre su un determinato nastro o superficie di stampa, \u00e8 possibile eseguire il test della carta con quel nastro/superficie in posizione. Tuttavia, tieni presente che il nastro stesso ha uno spessore e nastri diversi (o qualsiasi altra superficie di stampa) influiranno sulle misurazioni Z. Assicurati di eseguire nuovamente il test della carta per misurare ogni tipo di superficie in uso. Se c'\u00e8 della plastica sull'ugello, riscalda l'estrusore e usa una pinzetta di metallo per rimuovere quella plastica. Attendere che l'estrusore si raffreddi completamente a temperatura ambiente prima di continuare con il test della carta. Mentre l'ugello si sta raffreddando, usa le pinzette di metallo per rimuovere la plastica che potrebbe fuoriuscire. Esegui sempre il test della carta quando sia l'ugello che il letto sono a temperatura ambiente! Quando l'ugello \u00e8 riscaldato, la sua posizione (rispetto al piatto) cambia a causa dell'espansione termica. Questa espansione termica \u00e8 in genere di circa 100 micron, che ha all'incirca lo stesso spessore di un tipico pezzo di carta per stampante. L'esatta quantit\u00e0 di espansione termica non \u00e8 cruciale, cos\u00ec come lo spessore esatto della carta non \u00e8 cruciale. Inizia con il presupposto che i due siano uguali (vedi sotto per un metodo per determinare la differenza tra le due distanze). Pu\u00f2 sembrare strano calibrare la distanza a temperatura ambiente quando l'obiettivo \u00e8 avere una distanza costante quando riscaldata. Tuttavia, se si calibra quando l'ugello \u00e8 riscaldato, tende a rilasciare piccole quantit\u00e0 di plastica fusa alla carta, il che cambia la quantit\u00e0 di attrito sentito. Ci\u00f2 rende pi\u00f9 difficile ottenere una buona calibrazione. La calibrazione mentre il letto/ugello \u00e8 caldo aumenta notevolmente anche il rischio di ustione. La quantit\u00e0 di espansione termica \u00e8 stabile, quindi \u00e8 facilmente contabilizzabile pi\u00f9 avanti nel processo di calibrazione. Utilizza uno strumento automatizzato per determinare l'altezza Z precisa! Klipper ha diversi script di supporto disponibili (ad esempio, MANUAL_PROBE, Z_ENDSTOP_CALIBRATE, PROBE_CALIBRATE, DELTA_CALIBRATE). Consulta i documenti descritti sopra per sceglierne uno. Eseguire il comando appropriato nella finestra del terminale di OctoPrint. Lo script richieder\u00e0 l'interazione dell'utente nell'output del terminale OctoPrint. Sembrer\u00e0 qualcosa come: Recv: // Starting manual Z probe. Use TESTZ to adjust position. Recv: // Finish with ACCEPT or ABORT command. Recv: // Z position: ?????? --> 5.000 <-- ?????? L'altezza attuale dell'ugello (come la intende attualmente la stampante) \u00e8 mostrata tra \"--> <--\". Il numero a destra \u00e8 l'altezza dell'ultimo tentativo di sonda appena maggiore dell'altezza attuale e a sinistra \u00e8 l'ultimo tentativo di sonda inferiore all'altezza attuale (o ?????? se non \u00e8 stato effettuato alcun tentativo). Metti la carta tra l'ugello e il letto. Pu\u00f2 essere utile piegare un angolo della carta in modo che sia pi\u00f9 facile da afferrare. (Cerca di non spingere il piatto quando muovi la carta avanti e indietro.) Utilizzare il comando TESTZ per richiedere all'ugello di avvicinarsi alla carta. Per esempio: TESTZ Z=-.1 Il comando TESTZ sposter\u00e0 l'ugello di una distanza relativa dalla posizione corrente dell'ugello. (Quindi, Z=-.1 richiede che l'ugello si avvicini al piatto di 0,1 mm.) Dopo che l'ugello ha smesso di muoversi, spingere la carta avanti e indietro per controllare se l'ugello \u00e8 in contatto con la carta e per sentire la quantit\u00e0 di attrito. Continua a emettere comandi TESTZ finch\u00e9 non si avverte una piccola quantit\u00e0 di attrito durante il test con la carta. Se si trova troppo attrito, \u00e8 possibile utilizzare un valore Z positivo per spostare l'ugello verso l'alto. \u00c8 anche possibile utilizzare TESTZ Z=+ o TESTZ Z=- per \"sezionare in due\" l'ultima posizione, ovvero per spostarsi in una posizione a met\u00e0 strada tra due posizioni. Ad esempio, se si riceve il seguente prompt da un comando TESTZ: Recv: // Z position: 0.130 --> 0.230 <-- 0.280 Quindi un TESTZ Z=- sposterebbe l'ugello in una posizione Z di 0,180 (a met\u00e0 strada tra 0,130 e 0,230). \u00c8 possibile utilizzare questa funzione per ridurre rapidamente a un attrito costante. \u00c8 anche possibile usare Z=++ e Z=-- per tornare direttamente a una misurazione passata - per esempio, dopo il prompt sopra un comando TESTZ Z=-- sposterebbe l'ugello su una Z posizione di 0,130. Dopo aver trovato una piccola quantit\u00e0 di attrito, eseguire il comando ACCETTA: ACCEPT Questo accetter\u00e0 l'altezza Z data e proceder\u00e0 con lo strumento di calibrazione fornito. L'esatta quantit\u00e0 di attrito percepito non \u00e8 cruciale, cos\u00ec come la quantit\u00e0 di espansione termica e l'esatta larghezza della carta non sono cruciali. Cerca solo di ottenere la stessa quantit\u00e0 di attrito ogni volta che esegui il test. Se qualcosa va storto durante il test, \u00e8 possibile utilizzare il comando ABORT per uscire dallo strumento di calibrazione.","title":"Il \"test con la carta\""},{"location":"Bed_Level.html#determinare-lespansione-termica","text":"Dopo aver eseguito con successo il livellamento del piatto, si pu\u00f2 continuare a calcolare un valore pi\u00f9 preciso per l'impatto combinato di \"espansione termica\", \"spessore della carta\" e \"quantit\u00e0 di attrito sentito durante il test della carta\". Questo tipo di calcolo generalmente non \u00e8 necessario poich\u00e9 la maggior parte degli utenti ritiene che il semplice \"test cartaceo\" fornisca buoni risultati. Il modo pi\u00f9 semplice per eseguire questo calcolo \u00e8 stampare un oggetto di prova con pareti dritte su tutti i lati. Il cubo vuoto che si trova in docs/prints/square.stl pu\u00f2 essere usato per questo. Quando si fa lo slicing l'oggetto, assicurarsi che lo slicer utilizzi la stessa altezza del livello e la stessa larghezza di estrusione per il primo livello che utilizza per tutti i livelli successivi. Utilizzare un'altezza dello strato grossolana (l'altezza dello strato dovrebbe essere circa il 75% del diametro dell'ugello) e non utilizzare un bordo o una raft. Stampa l'oggetto di prova, attendi che si raffreddi e rimuovilo dal piatto. Ispeziona lo strato pi\u00f9 basso dell'oggetto. (Pu\u00f2 anche essere utile far scorrere un dito o un'unghia lungo il bordo inferiore.) Se si scopre che lo strato inferiore si gonfia leggermente lungo tutti i lati dell'oggetto, significa che l'ugello era leggermente pi\u00f9 vicino al piatto di quanto dovrebbe essere. Si pu\u00f2 emettere un comando SET_GCODE_OFFSET Z=+.010 per aumentare l'altezza. Nelle stampe successive \u00e8 possibile controllare questo comportamento e apportare ulteriori modifiche secondo necessit\u00e0. Le regolazioni di questo tipo sono in genere in 10 micron (0,010 mm). Se il livello inferiore appare costantemente pi\u00f9 stretto dei livelli successivi, \u00e8 possibile utilizzare il comando SET_GCODE_OFFSET per effettuare una regolazione Z negativa. Se non si \u00e8 sicuri, \u00e8 possibile diminuire la regolazione Z finch\u00e9 lo strato inferiore delle stampe non mostra un piccolo rigonfiamento, quindi arretrare finch\u00e9 non scompare. Il modo pi\u00f9 semplice per applicare la regolazione Z desiderata \u00e8 creare una macro di G-code START_PRINT, fare in modo che lo slicer chiami quella macro all'inizio di ogni stampa e aggiungere un comando SET_GCODE_OFFSET a quella macro. Per ulteriori dettagli, vedere il documento slicers .","title":"Determinare l'espansione termica"},{"location":"Bed_Mesh.html","text":"Matrice del Piatto \u00b6 Il modulo rete piatto (bed mesh) pu\u00f2 essere usato per compensare le irregolarit\u00e0 della superficie del piatto e per ottenere un primo strato migliore su tutto il piatto. Va notato che la correzione basata sul software non raggiunger\u00e0 risultati perfetti, pu\u00f2 solo approssimare la forma del piatto. Bed mesh inoltre non pu\u00f2 compensare i problemi meccanici ed elettrici. Se un asse \u00e8 obliquo o una sonda non \u00e8 accurata, il modulo Bed mesh non ricever\u00e0 risultati accurati dal processo di ispezione. Prima della calibrazione della mesh dovrai assicurarti che l'offset Z della tua sonda sia calibrato. Se si utilizza un fine corsa per l'homing Z, anche questo dovr\u00e0 essere calibrato. Per ulteriori informazioni, vedere Probe Calibrate e Z_ENDSTOP_CALIBRATE in Manual Level . Configurazione base \u00b6 Piatti rettangolari \u00b6 Questo esempio presuppone una stampante con un piatto rettangolare di 250 mm x 220 mm e una sonda con un offset x di 24 mm e un offset y di 5 mm. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 speed: 120 Valore predefinito: 50 La velocit\u00e0 con cui la testa di stampa si sposta tra i punti. horizontal_move_z: 5 Valore predefinito: 5 La coordinata Z a cui si solleva la sonda prima di spostarsi tra i punti. mesh_min: 35, 6 Richiesto La prima coordinata rilevata, pi\u00f9 vicina all'origine. Questa coordinata \u00e8 relativa alla posizione della sonda. mesh_max: 240, 198 Richiesto La coordinata rilevata pi\u00f9 lontana dall'origine. Questo non \u00e8 necessariamente l'ultimo punto sondato, poich\u00e9 il processo di rilevamento avviene a zig-zag. Come per mesh_min , questa coordinata \u00e8 relativa alla posizione della sonda. probe_count: 5, 3 Valore predefinito: 3, 3 Il numero di punti da sondare su ciascun asse, specificato come valori interi X, Y. In questo esempio verranno tastati 5 punti lungo l'asse X, con 3 punti lungo l'asse Y, per un totale di 15 punti tastati. Nota che se desideri una griglia quadrata, ad esempio 3x3, questo potrebbe essere specificato come un singolo valore intero che viene utilizzato per entrambi gli assi, ad esempio probe_count: 3 . Si noti che una mesh richiede un probe_count minimo di 3 lungo ciascun asse. L'illustrazione seguente mostra come le opzioni mesh_min , mesh_max e probe_count vengono utilizzate per generare punti sonda. Le frecce indicano la direzione della procedura di probing, a partire da mesh_min . Per riferimento, quando la sonda \u00e8 a mesh_min , l'ugello sar\u00e0 a (11, 1), e quando la sonda \u00e8 a mesh_max , l'ugello sar\u00e0 a (206, 193). Piatti rotondi \u00b6 Questo esempio presuppone una stampante dotata di un raggio del piatto rotondo di 100 mm. Utilizzeremo gli stessi offset della sonda dell'esempio rettangolare, 24 mm su X e 5 mm su Y. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_radius: 75 mesh_origin: 0, 0 round_probe_count: 5 mesh_radius: 75 Obbligatorio Il raggio della mesh sondata in mm, relativo a mesh_origin . Si noti che gli offset della sonda limitano la dimensione del raggio della mesh. In questo esempio, un raggio maggiore di 76 sposterebbe lo strumento oltre il range della stampante. mesh_origin: 0, 0 Valore predefinito: 0, 0 Il punto centrale della mesh. Questa coordinata \u00e8 relativa alla posizione della sonda. Sebbene il valore predefinito sia 0, 0, pu\u00f2 essere utile regolare l'origine nel tentativo di sondare una porzione pi\u00f9 ampia del letto. Vedi l'illustrazione qui sotto. round_probe_count: 5 Valore predefinito: 5 Questo \u00e8 un valore intero che definisce il numero massimo di punti sondati lungo gli assi X e Y. Per \"massimo\" si intende il numero di punti tastati lungo l'origine della mesh. Questo valore deve essere un numero dispari, in quanto \u00e8 necessario che venga sondato il centro della mesh. L'illustrazione seguente mostra come vengono generati i punti sondati. Come puoi vedere, l'impostazione di mesh_origin su (-10, 0) ci consente di specificare un raggio di mesh maggiore di 85. Configurazione avanzata \u00b6 Di seguito vengono spiegate in dettaglio le opzioni di configurazione pi\u00f9 avanzate. Ciascun esempio si baser\u00e0 sulla configurazione base del piatto rettangolare mostrata sopra. Ciascuna delle opzioni avanzate si applica allo stesso modo ai piatti rotondi. Interpolazione mesh \u00b6 Sebbene sia possibile campionare la matrice sondata direttamente utilizzando una semplice interpolazione bilineare per determinare i valori Z tra i punti sondati, \u00e8 spesso utile interpolare punti extra utilizzando algoritmi di interpolazione pi\u00f9 avanzati per aumentare la densit\u00e0 della mesh. Questi algoritmi aggiungono curvatura alla mesh, tentando di simulare le propriet\u00e0 del materiale del piatto. Bed Mesh offre l'interpolazione lagrange e bicubica per ottenere questo risultato. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 mesh_pps: 2, 3 algorithm: bicubic bicubic_tension: 0.2 mesh_pps: 2, 3 Valore predefinito: 2, 2 L'opzione mesh_pps \u00e8 un'abbreviazione per Mesh Points Per Segment. Questa opzione specifica quanti punti interpolare per ciascun segmento lungo gli assi X e Y. Considera un \"segmento\" come lo spazio tra ogni punto sondato. Come probe_count , mesh_pps \u00e8 specificato come una coppia di interi X, Y e pu\u00f2 anche essere specificato un singolo intero che viene applicato a entrambi gli assi. In questo esempio ci sono 4 segmenti lungo l'asse X e 2 segmenti lungo l'asse Y. Questo restituisce 8 punti interpolati lungo X, 6 punti interpolati lungo Y, che si traduce in una mesh 13x8. Si noti che se mesh_pps \u00e8 impostato su 0, l'interpolazione della mesh \u00e8 disabilitata e la matrice sondata verr\u00e0 campionata direttamente. algoritmo: lagrange Valore predefinito: lagrange L'algoritmo utilizzato per interpolare la mesh. Pu\u00f2 essere \"lagrange\" o \"bicubico\". L'interpolazione Lagrange \u00e8 limitata a 6 punti sondati poich\u00e9 tende a verificarsi l'oscillazione con un numero maggiore di campioni. L'interpolazione bicubica richiede un minimo di 4 punti sondati lungo ciascun asse, se vengono specificati meno di 4 punti, viene forzato il campionamento lagrange. Se mesh_pps \u00e8 impostato su 0, questo valore viene ignorato poich\u00e9 non viene eseguita alcuna interpolazione della mesh. bicubic_tension: 0.2 Valore predefinito: 0.2 Se l'opzione algorithm \u00e8 impostata su bicubic \u00e8 possibile specificare il valore della tensione. Maggiore \u00e8 la tensione, maggiore \u00e8 la pendenza interpolata. Prestare attenzione durante la regolazione, poich\u00e9 valori pi\u00f9 elevati creano anche una maggiore sovraelongazione, che risulter\u00e0 in valori interpolati superiori o inferiori rispetto ai punti rilevati. L'illustrazione seguente mostra come vengono utilizzate le opzioni precedenti per generare una mesh interpolata. Divisione dei movimenti \u00b6 Bed Mesh funziona intercettando i comandi di spostamento di gcode e applicando una trasformazione alla loro coordinata Z. I movimenti lunghi devono essere suddivisi in movimenti pi\u00f9 piccoli per seguire correttamente la forma del piatto. Le opzioni seguenti controllano il comportamento di divisione. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 move_check_distance: 5 split_delta_z: .025 move_check_distance: 5 Valore predefinito: 5 La distanza minima per verificare la modifica desiderata in Z prima di eseguire una divisione. In questo esempio, un movimento pi\u00f9 lungo di 5 mm verr\u00e0 eseguito dall'algoritmo. Ogni 5 mm si verificher\u00e0 una ricerca Z della mesh, confrontandola con il valore Z del movimento precedente. Se il delta raggiunge la soglia impostata da split_delta_z , il movimento sar\u00e0 diviso e l'attraversamento continuer\u00e0. Questo processo si ripete fino al raggiungimento della fine del movimento, dove verr\u00e0 applicato un aggiustamento finale. I movimenti pi\u00f9 brevi di move_check_distance hanno la correzione Z corretta applicata direttamente alla mossa senza attraversamento o divisione. split_delta_z: .025 Valore predefinito: .025 Come accennato in precedenza, questa \u00e8 la deviazione minima richiesta per attivare una divisione del movimento. In questo esempio, qualsiasi valore Z con una deviazione +/- 0,025 mm attiver\u00e0 una divisione. Generalmente i valori di default per queste opzioni sono sufficienti, infatti il valore di default di 5mm per il move_check_distance potrebbe essere eccessivo. Tuttavia, un utente esperto potrebbe voler sperimentare queste opzioni nel tentativo di spremere un primo layer ottimale. Dissolvenza Mesh \u00b6 Quando la \"dissolvenza\" \u00e8 abilitata, la regolazione Z viene gradualmente eliminata su una distanza definita dalla configurazione. Ci\u00f2 si ottiene applicando piccole regolazioni all'altezza dello strato, aumentando o diminuendo a seconda della forma del letto. Quando la dissolvenza \u00e8 completata, la regolazione Z non viene pi\u00f9 applicata, consentendo alla parte superiore della stampa di essere piatta anzich\u00e9 rispecchiare la forma del letto. La dissolvenza pu\u00f2 anche avere alcuni tratti indesiderati, se dissolve troppo rapidamente pu\u00f2 causare artefatti visibili sulla stampa. Inoltre, se il tuo letto \u00e8 notevolmente deformato, la dissolvenza pu\u00f2 ridurre o allungare l'altezza Z della stampa. In quanto tale, la dissolvenza \u00e8 disabilitata per impostazione predefinita. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 fade_start: 1 fade_end: 10 fade_target: 0 fade_start: 1 Valore predefinito: 1 L'altezza Z in cui iniziare la regolazione graduale. \u00c8 una buona idea avere alcuni layer prima di iniziare il processo di dissolvenza. fade_end: 10 Valore predefinito: 0 L'altezza Z in cui deve essere completata la dissolvenza. Se questo valore \u00e8 inferiore a fade_start , la dissolvenza \u00e8 disabilitata. Questo valore pu\u00f2 essere regolato a seconda di quanto \u00e8 deformata la superficie di stampa. Una superficie notevolmente deformata dovrebbe dissolvere su una distanza maggiore. Una superficie quasi piatta potrebbe essere in grado di ridurre questo valore per eliminarlo gradualmente pi\u00f9 rapidamente. 10mm \u00e8 un valore ragionevole per cominciare se si utilizza il valore predefinito di 1 per fade_start . fade_target: 0 Valore predefinito: il valore Z medio della mesh Il fade_target pu\u00f2 essere pensato come un offset Z aggiuntivo applicato all'intero letto dopo il completamento della dissolvenza. In generale, vorremmo che questo valore fosse 0, tuttavia ci sono circostanze in cui non dovrebbe essere. Ad esempio, supponiamo che la tua posizione di riferimento sul letto sia un valore anomalo, 0,2 mm inferiore all'altezza media rilevata del letto. Se fade_target \u00e8 0, la dissolvenza ridurr\u00e0 la stampa di una media di 0,2 mm sul letto. Impostando fade_target su .2, l'area homed si espander\u00e0 di .2 mm, tuttavia il resto del letto avr\u00e0 una dimensione precisa. Generalmente \u00e8 una buona idea lasciare fade_target fuori dalla configurazione in modo che venga utilizzata l'altezza media della mesh, tuttavia potrebbe essere desiderabile regolare manualmente il target di dissolvenza se si desidera stampare su una parte specifica del letto. L'Indice di Riferimento Relativo \u00b6 La maggior parte delle sonde \u00e8 suscettibile alla deriva, cio\u00e8: imprecisioni nel sondaggio introdotte da calore o interferenza. Ci\u00f2 pu\u00f2 rendere difficile il calcolo dell'offset z della sonda, in particolare a diverse temperature del letto. In quanto tali, alcune stampanti utilizzano un fine corsa per l'homing dell'asse Z e una sonda per calibrare la mesh. Queste stampanti possono trarre vantaggio dalla configurazione del relativo indice di riferimento. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 relative_reference_index: 7 relative_reference_index: 7 Valore predefinito: Nessuno (disabilitato) Quando i punti sondati vengono generati, a ciascuno viene assegnato un indice. Puoi cercare questo indice in klippy.log o usando BED_MESH_OUTPUT (vedi la sezione sui GCodes Bed Mesh di seguito per maggiori informazioni). Se si assegna un indice all'opzione relative_reference_index , il valore rilevato a questa coordinata sostituir\u00e0 lo z_offset del probe. Questo rende effettivamente questa coordinata il riferimento \"zero\" per la mesh. Quando si utilizza l'indice di riferimento relativo, \u00e8 necessario scegliere l'indice pi\u00f9 vicino al punto sul letto in cui \u00e8 stata eseguita la calibrazione del fine corsa Z. Nota che quando cerchi l'indice usando il log o BED_MESH_OUTPUT, dovresti usare le coordinate elencate sotto l'intestazione \"Probe\" per trovare l'indice corretto. Regioni difettose \u00b6 \u00c8 possibile che alcune aree di un piatto riportino risultati imprecisi durante il sondaggio a causa di un \"guasto\" in punti specifici. Il miglior esempio di ci\u00f2 sono i piatti con serie di magneti integrati utilizzati per trattenere le lamiere di acciaio rimovibili. Il campo magnetico su e intorno a questi magneti pu\u00f2 causare l'attivazione di una sonda induttiva a una distanza maggiore o minore di quanto sarebbe altrimenti, risultando in una mesh che non rappresenta accuratamente la superficie in queste posizioni. Nota: questo non deve essere confuso con la distorsione della posizione della sonda, che produce risultati imprecisi sull'intero letto. Le opzioni faulty_region possono essere configurate per compensare questo effetto. Se un punto generato si trova all'interno di una regione difettosa, la mesh del letto tenter\u00e0 di sondare fino a 4 punti ai confini di questa regione. Questi valori sondati verranno mediati e inseriti nella mesh come valore Z alla coordinata generata (X, Y). [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 faulty_region_1_min: 130.0, 0.0 faulty_region_1_max: 145.0, 40.0 faulty_region_2_min: 225.0, 0.0 faulty_region_2_max: 250.0, 25.0 faulty_region_3_min: 165.0, 95.0 faulty_region_3_max: 205.0, 110.0 faulty_region_4_min: 30.0, 170.0 faulty_region_4_max: 45.0, 210.0 faulty_region_{1...99}_min faulty_region_{1..99}_max Valore predefinito: Nessuno (disabilitato) Le regioni difettose sono definite in modo simile a quello della mesh stessa, dove minimo e massimo (X , Y) delle coordinate devono essere specificate per ciascuna regione. Una regione difettosa pu\u00f2 estendersi al di fuori di una mesh, tuttavia i punti alternativi generati saranno sempre all'interno del confine della mesh. Non possono sovrapporsi due regioni. L'immagine seguente illustra come vengono generati i punti di sostituzione quando un punto generato si trova all'interno di una regione difettosa. Le regioni mostrate corrispondono a quelle nella configurazione di esempio sopra. I punti di sostituzione e le relative coordinate sono identificati in verde. GCodes della mesh del piatto \u00b6 Calibrazione \u00b6 BED_MESH_CALIBRATE PROFILE=<nome> METHOD=[manuale | automatico] [<parametro_sonda>=<valore>] [<mesh_parameter>=<valore>] Profilo predefinito: default Metodo predefinito: automatico se viene rilevata una sonda, altrimenti manuale Avvia la procedura di sondaggio per la calibrazione della mesh del piatto. La mesh verr\u00e0 salvata in un profilo specificato dal parametro PROFILE , o default se non specificato. Se viene selezionato METHOD=manual , si verificher\u00e0 il rilevamento manuale. Quando si passa dal probing automatico a quello manuale, i punti mesh generati verranno regolati automaticamente. \u00c8 possibile specificare parametri mesh per modificare l'area sondata. Sono disponibili i seguenti parametri: Piatti rettangolari (cartesiani): MESH_MIN MESH_MAX PROBE_COUNT Piatti rotondi (delta): MESH_RADIUS MESH_ORIGIN ROUND_PROBE_COUNT Tutti i piatti: RELATIVE_REFERNCE_INDEX ALGORITHM Vedere la documentazione di configurazione sopra per i dettagli su come ogni parametro si applica alla mesh. Profili \u00b6 BED_MESH_PROFILE SAVE=<name> LOAD=<name> REMOVE=<name> Dopo aver eseguito un BED_MESH_CALIBRATE, \u00e8 possibile salvare lo stato della mesh corrente in un profilo denominato. Ci\u00f2 consente di caricare una mesh senza risondare il piatto. Dopo che un profilo \u00e8 stato salvato usando BED_MESH_PROFILE SAVE=<nome> \u00e8 possibile eseguire il gcode SAVE_CONFIG per scrivere il profilo su printer.cfg. I profili possono essere caricati eseguendo BED_MESH_PROFILE LOAD=<name> . Va notato che ogni volta che si verifica un BED_MESH_CALIBRATE, lo stato corrente viene automaticamente salvato nel profilo predefinito . Se questo profilo esiste, viene caricato automaticamente all'avvio di Klipper. Se questo comportamento non \u00e8 desiderabile, il profilo predefinito pu\u00f2 essere rimosso come segue: BED_MESH_PROFILE REMOVE=default Qualsiasi altro profilo salvato pu\u00f2 essere rimosso allo stesso modo, sostituendo default con il nome del profilo che desideri rimuovere. Output \u00b6 BED_MESH_OUTPUT PGP=[0 | 1] Invia lo stato della mesh corrente al terminale. Si noti che viene emessa la mesh stessa Il parametro PGP \u00e8 un'abbreviazione per \"Print Generated Points\". Se \u00e8 impostato PGP=1 , i punti sondati generati verranno inviati al terminale: // bed_mesh: generated points // Index | Tool Adjusted | Probe // 0 | (11.0, 1.0) | (35.0, 6.0) // 1 | (62.2, 1.0) | (86.2, 6.0) // 2 | (113.5, 1.0) | (137.5, 6.0) // 3 | (164.8, 1.0) | (188.8, 6.0) // 4 | (216.0, 1.0) | (240.0, 6.0) // 5 | (216.0, 97.0) | (240.0, 102.0) // 6 | (164.8, 97.0) | (188.8, 102.0) // 7 | (113.5, 97.0) | (137.5, 102.0) // 8 | (62.2, 97.0) | (86.2, 102.0) // 9 | (11.0, 97.0) | (35.0, 102.0) // 10 | (11.0, 193.0) | (35.0, 198.0) // 11 | (62.2, 193.0) | (86.2, 198.0) // 12 | (113.5, 193.0) | (137.5, 198.0) // 13 | (164.8, 193.0) | (188.8, 198.0) // 14 | (216.0, 193.0) | (240.0, 198.0) I punti \"Tool Adjusted\" si riferiscono alla posizione dell'ugello per ciascun punto e i punti \"Probe\" si riferiscono alla posizione della sonda. Si noti che quando il probing \u00e8 manuale i punti \"sonda\" si riferiscono sia alla posizione dell'utensile che dell'ugello. Cancella stato mesh \u00b6 BED_MESH_CLEAR Questo gcode pu\u00f2 essere utilizzato per cancellare lo stato della mesh interna. Applicare gli offset X/Y \u00b6 BED_MESH_OFFSET [X=<value>] [Y=<value>] Ci\u00f2 \u00e8 utile per le stampanti con pi\u00f9 estrusori indipendenti, poich\u00e9 \u00e8 necessario un offset per produrre la corretta regolazione Z dopo un cambio utensile. Gli offset devono essere specificati rispetto all'estrusore primario. Vale a dire, \u00e8 necessario specificare un offset X positivo se l'estrusore secondario \u00e8 montato a destra dell'estrusore primario e un offset Y positivo se l'estrusore secondario \u00e8 montato \"dietro\" l'estrusore primario.","title":"Matrice del Piatto"},{"location":"Bed_Mesh.html#matrice-del-piatto","text":"Il modulo rete piatto (bed mesh) pu\u00f2 essere usato per compensare le irregolarit\u00e0 della superficie del piatto e per ottenere un primo strato migliore su tutto il piatto. Va notato che la correzione basata sul software non raggiunger\u00e0 risultati perfetti, pu\u00f2 solo approssimare la forma del piatto. Bed mesh inoltre non pu\u00f2 compensare i problemi meccanici ed elettrici. Se un asse \u00e8 obliquo o una sonda non \u00e8 accurata, il modulo Bed mesh non ricever\u00e0 risultati accurati dal processo di ispezione. Prima della calibrazione della mesh dovrai assicurarti che l'offset Z della tua sonda sia calibrato. Se si utilizza un fine corsa per l'homing Z, anche questo dovr\u00e0 essere calibrato. Per ulteriori informazioni, vedere Probe Calibrate e Z_ENDSTOP_CALIBRATE in Manual Level .","title":"Matrice del Piatto"},{"location":"Bed_Mesh.html#configurazione-base","text":"","title":"Configurazione base"},{"location":"Bed_Mesh.html#piatti-rettangolari","text":"Questo esempio presuppone una stampante con un piatto rettangolare di 250 mm x 220 mm e una sonda con un offset x di 24 mm e un offset y di 5 mm. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 speed: 120 Valore predefinito: 50 La velocit\u00e0 con cui la testa di stampa si sposta tra i punti. horizontal_move_z: 5 Valore predefinito: 5 La coordinata Z a cui si solleva la sonda prima di spostarsi tra i punti. mesh_min: 35, 6 Richiesto La prima coordinata rilevata, pi\u00f9 vicina all'origine. Questa coordinata \u00e8 relativa alla posizione della sonda. mesh_max: 240, 198 Richiesto La coordinata rilevata pi\u00f9 lontana dall'origine. Questo non \u00e8 necessariamente l'ultimo punto sondato, poich\u00e9 il processo di rilevamento avviene a zig-zag. Come per mesh_min , questa coordinata \u00e8 relativa alla posizione della sonda. probe_count: 5, 3 Valore predefinito: 3, 3 Il numero di punti da sondare su ciascun asse, specificato come valori interi X, Y. In questo esempio verranno tastati 5 punti lungo l'asse X, con 3 punti lungo l'asse Y, per un totale di 15 punti tastati. Nota che se desideri una griglia quadrata, ad esempio 3x3, questo potrebbe essere specificato come un singolo valore intero che viene utilizzato per entrambi gli assi, ad esempio probe_count: 3 . Si noti che una mesh richiede un probe_count minimo di 3 lungo ciascun asse. L'illustrazione seguente mostra come le opzioni mesh_min , mesh_max e probe_count vengono utilizzate per generare punti sonda. Le frecce indicano la direzione della procedura di probing, a partire da mesh_min . Per riferimento, quando la sonda \u00e8 a mesh_min , l'ugello sar\u00e0 a (11, 1), e quando la sonda \u00e8 a mesh_max , l'ugello sar\u00e0 a (206, 193).","title":"Piatti rettangolari"},{"location":"Bed_Mesh.html#piatti-rotondi","text":"Questo esempio presuppone una stampante dotata di un raggio del piatto rotondo di 100 mm. Utilizzeremo gli stessi offset della sonda dell'esempio rettangolare, 24 mm su X e 5 mm su Y. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_radius: 75 mesh_origin: 0, 0 round_probe_count: 5 mesh_radius: 75 Obbligatorio Il raggio della mesh sondata in mm, relativo a mesh_origin . Si noti che gli offset della sonda limitano la dimensione del raggio della mesh. In questo esempio, un raggio maggiore di 76 sposterebbe lo strumento oltre il range della stampante. mesh_origin: 0, 0 Valore predefinito: 0, 0 Il punto centrale della mesh. Questa coordinata \u00e8 relativa alla posizione della sonda. Sebbene il valore predefinito sia 0, 0, pu\u00f2 essere utile regolare l'origine nel tentativo di sondare una porzione pi\u00f9 ampia del letto. Vedi l'illustrazione qui sotto. round_probe_count: 5 Valore predefinito: 5 Questo \u00e8 un valore intero che definisce il numero massimo di punti sondati lungo gli assi X e Y. Per \"massimo\" si intende il numero di punti tastati lungo l'origine della mesh. Questo valore deve essere un numero dispari, in quanto \u00e8 necessario che venga sondato il centro della mesh. L'illustrazione seguente mostra come vengono generati i punti sondati. Come puoi vedere, l'impostazione di mesh_origin su (-10, 0) ci consente di specificare un raggio di mesh maggiore di 85.","title":"Piatti rotondi"},{"location":"Bed_Mesh.html#configurazione-avanzata","text":"Di seguito vengono spiegate in dettaglio le opzioni di configurazione pi\u00f9 avanzate. Ciascun esempio si baser\u00e0 sulla configurazione base del piatto rettangolare mostrata sopra. Ciascuna delle opzioni avanzate si applica allo stesso modo ai piatti rotondi.","title":"Configurazione avanzata"},{"location":"Bed_Mesh.html#interpolazione-mesh","text":"Sebbene sia possibile campionare la matrice sondata direttamente utilizzando una semplice interpolazione bilineare per determinare i valori Z tra i punti sondati, \u00e8 spesso utile interpolare punti extra utilizzando algoritmi di interpolazione pi\u00f9 avanzati per aumentare la densit\u00e0 della mesh. Questi algoritmi aggiungono curvatura alla mesh, tentando di simulare le propriet\u00e0 del materiale del piatto. Bed Mesh offre l'interpolazione lagrange e bicubica per ottenere questo risultato. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 mesh_pps: 2, 3 algorithm: bicubic bicubic_tension: 0.2 mesh_pps: 2, 3 Valore predefinito: 2, 2 L'opzione mesh_pps \u00e8 un'abbreviazione per Mesh Points Per Segment. Questa opzione specifica quanti punti interpolare per ciascun segmento lungo gli assi X e Y. Considera un \"segmento\" come lo spazio tra ogni punto sondato. Come probe_count , mesh_pps \u00e8 specificato come una coppia di interi X, Y e pu\u00f2 anche essere specificato un singolo intero che viene applicato a entrambi gli assi. In questo esempio ci sono 4 segmenti lungo l'asse X e 2 segmenti lungo l'asse Y. Questo restituisce 8 punti interpolati lungo X, 6 punti interpolati lungo Y, che si traduce in una mesh 13x8. Si noti che se mesh_pps \u00e8 impostato su 0, l'interpolazione della mesh \u00e8 disabilitata e la matrice sondata verr\u00e0 campionata direttamente. algoritmo: lagrange Valore predefinito: lagrange L'algoritmo utilizzato per interpolare la mesh. Pu\u00f2 essere \"lagrange\" o \"bicubico\". L'interpolazione Lagrange \u00e8 limitata a 6 punti sondati poich\u00e9 tende a verificarsi l'oscillazione con un numero maggiore di campioni. L'interpolazione bicubica richiede un minimo di 4 punti sondati lungo ciascun asse, se vengono specificati meno di 4 punti, viene forzato il campionamento lagrange. Se mesh_pps \u00e8 impostato su 0, questo valore viene ignorato poich\u00e9 non viene eseguita alcuna interpolazione della mesh. bicubic_tension: 0.2 Valore predefinito: 0.2 Se l'opzione algorithm \u00e8 impostata su bicubic \u00e8 possibile specificare il valore della tensione. Maggiore \u00e8 la tensione, maggiore \u00e8 la pendenza interpolata. Prestare attenzione durante la regolazione, poich\u00e9 valori pi\u00f9 elevati creano anche una maggiore sovraelongazione, che risulter\u00e0 in valori interpolati superiori o inferiori rispetto ai punti rilevati. L'illustrazione seguente mostra come vengono utilizzate le opzioni precedenti per generare una mesh interpolata.","title":"Interpolazione mesh"},{"location":"Bed_Mesh.html#divisione-dei-movimenti","text":"Bed Mesh funziona intercettando i comandi di spostamento di gcode e applicando una trasformazione alla loro coordinata Z. I movimenti lunghi devono essere suddivisi in movimenti pi\u00f9 piccoli per seguire correttamente la forma del piatto. Le opzioni seguenti controllano il comportamento di divisione. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 move_check_distance: 5 split_delta_z: .025 move_check_distance: 5 Valore predefinito: 5 La distanza minima per verificare la modifica desiderata in Z prima di eseguire una divisione. In questo esempio, un movimento pi\u00f9 lungo di 5 mm verr\u00e0 eseguito dall'algoritmo. Ogni 5 mm si verificher\u00e0 una ricerca Z della mesh, confrontandola con il valore Z del movimento precedente. Se il delta raggiunge la soglia impostata da split_delta_z , il movimento sar\u00e0 diviso e l'attraversamento continuer\u00e0. Questo processo si ripete fino al raggiungimento della fine del movimento, dove verr\u00e0 applicato un aggiustamento finale. I movimenti pi\u00f9 brevi di move_check_distance hanno la correzione Z corretta applicata direttamente alla mossa senza attraversamento o divisione. split_delta_z: .025 Valore predefinito: .025 Come accennato in precedenza, questa \u00e8 la deviazione minima richiesta per attivare una divisione del movimento. In questo esempio, qualsiasi valore Z con una deviazione +/- 0,025 mm attiver\u00e0 una divisione. Generalmente i valori di default per queste opzioni sono sufficienti, infatti il valore di default di 5mm per il move_check_distance potrebbe essere eccessivo. Tuttavia, un utente esperto potrebbe voler sperimentare queste opzioni nel tentativo di spremere un primo layer ottimale.","title":"Divisione dei movimenti"},{"location":"Bed_Mesh.html#dissolvenza-mesh","text":"Quando la \"dissolvenza\" \u00e8 abilitata, la regolazione Z viene gradualmente eliminata su una distanza definita dalla configurazione. Ci\u00f2 si ottiene applicando piccole regolazioni all'altezza dello strato, aumentando o diminuendo a seconda della forma del letto. Quando la dissolvenza \u00e8 completata, la regolazione Z non viene pi\u00f9 applicata, consentendo alla parte superiore della stampa di essere piatta anzich\u00e9 rispecchiare la forma del letto. La dissolvenza pu\u00f2 anche avere alcuni tratti indesiderati, se dissolve troppo rapidamente pu\u00f2 causare artefatti visibili sulla stampa. Inoltre, se il tuo letto \u00e8 notevolmente deformato, la dissolvenza pu\u00f2 ridurre o allungare l'altezza Z della stampa. In quanto tale, la dissolvenza \u00e8 disabilitata per impostazione predefinita. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 fade_start: 1 fade_end: 10 fade_target: 0 fade_start: 1 Valore predefinito: 1 L'altezza Z in cui iniziare la regolazione graduale. \u00c8 una buona idea avere alcuni layer prima di iniziare il processo di dissolvenza. fade_end: 10 Valore predefinito: 0 L'altezza Z in cui deve essere completata la dissolvenza. Se questo valore \u00e8 inferiore a fade_start , la dissolvenza \u00e8 disabilitata. Questo valore pu\u00f2 essere regolato a seconda di quanto \u00e8 deformata la superficie di stampa. Una superficie notevolmente deformata dovrebbe dissolvere su una distanza maggiore. Una superficie quasi piatta potrebbe essere in grado di ridurre questo valore per eliminarlo gradualmente pi\u00f9 rapidamente. 10mm \u00e8 un valore ragionevole per cominciare se si utilizza il valore predefinito di 1 per fade_start . fade_target: 0 Valore predefinito: il valore Z medio della mesh Il fade_target pu\u00f2 essere pensato come un offset Z aggiuntivo applicato all'intero letto dopo il completamento della dissolvenza. In generale, vorremmo che questo valore fosse 0, tuttavia ci sono circostanze in cui non dovrebbe essere. Ad esempio, supponiamo che la tua posizione di riferimento sul letto sia un valore anomalo, 0,2 mm inferiore all'altezza media rilevata del letto. Se fade_target \u00e8 0, la dissolvenza ridurr\u00e0 la stampa di una media di 0,2 mm sul letto. Impostando fade_target su .2, l'area homed si espander\u00e0 di .2 mm, tuttavia il resto del letto avr\u00e0 una dimensione precisa. Generalmente \u00e8 una buona idea lasciare fade_target fuori dalla configurazione in modo che venga utilizzata l'altezza media della mesh, tuttavia potrebbe essere desiderabile regolare manualmente il target di dissolvenza se si desidera stampare su una parte specifica del letto.","title":"Dissolvenza Mesh"},{"location":"Bed_Mesh.html#lindice-di-riferimento-relativo","text":"La maggior parte delle sonde \u00e8 suscettibile alla deriva, cio\u00e8: imprecisioni nel sondaggio introdotte da calore o interferenza. Ci\u00f2 pu\u00f2 rendere difficile il calcolo dell'offset z della sonda, in particolare a diverse temperature del letto. In quanto tali, alcune stampanti utilizzano un fine corsa per l'homing dell'asse Z e una sonda per calibrare la mesh. Queste stampanti possono trarre vantaggio dalla configurazione del relativo indice di riferimento. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 relative_reference_index: 7 relative_reference_index: 7 Valore predefinito: Nessuno (disabilitato) Quando i punti sondati vengono generati, a ciascuno viene assegnato un indice. Puoi cercare questo indice in klippy.log o usando BED_MESH_OUTPUT (vedi la sezione sui GCodes Bed Mesh di seguito per maggiori informazioni). Se si assegna un indice all'opzione relative_reference_index , il valore rilevato a questa coordinata sostituir\u00e0 lo z_offset del probe. Questo rende effettivamente questa coordinata il riferimento \"zero\" per la mesh. Quando si utilizza l'indice di riferimento relativo, \u00e8 necessario scegliere l'indice pi\u00f9 vicino al punto sul letto in cui \u00e8 stata eseguita la calibrazione del fine corsa Z. Nota che quando cerchi l'indice usando il log o BED_MESH_OUTPUT, dovresti usare le coordinate elencate sotto l'intestazione \"Probe\" per trovare l'indice corretto.","title":"L'Indice di Riferimento Relativo"},{"location":"Bed_Mesh.html#regioni-difettose","text":"\u00c8 possibile che alcune aree di un piatto riportino risultati imprecisi durante il sondaggio a causa di un \"guasto\" in punti specifici. Il miglior esempio di ci\u00f2 sono i piatti con serie di magneti integrati utilizzati per trattenere le lamiere di acciaio rimovibili. Il campo magnetico su e intorno a questi magneti pu\u00f2 causare l'attivazione di una sonda induttiva a una distanza maggiore o minore di quanto sarebbe altrimenti, risultando in una mesh che non rappresenta accuratamente la superficie in queste posizioni. Nota: questo non deve essere confuso con la distorsione della posizione della sonda, che produce risultati imprecisi sull'intero letto. Le opzioni faulty_region possono essere configurate per compensare questo effetto. Se un punto generato si trova all'interno di una regione difettosa, la mesh del letto tenter\u00e0 di sondare fino a 4 punti ai confini di questa regione. Questi valori sondati verranno mediati e inseriti nella mesh come valore Z alla coordinata generata (X, Y). [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 faulty_region_1_min: 130.0, 0.0 faulty_region_1_max: 145.0, 40.0 faulty_region_2_min: 225.0, 0.0 faulty_region_2_max: 250.0, 25.0 faulty_region_3_min: 165.0, 95.0 faulty_region_3_max: 205.0, 110.0 faulty_region_4_min: 30.0, 170.0 faulty_region_4_max: 45.0, 210.0 faulty_region_{1...99}_min faulty_region_{1..99}_max Valore predefinito: Nessuno (disabilitato) Le regioni difettose sono definite in modo simile a quello della mesh stessa, dove minimo e massimo (X , Y) delle coordinate devono essere specificate per ciascuna regione. Una regione difettosa pu\u00f2 estendersi al di fuori di una mesh, tuttavia i punti alternativi generati saranno sempre all'interno del confine della mesh. Non possono sovrapporsi due regioni. L'immagine seguente illustra come vengono generati i punti di sostituzione quando un punto generato si trova all'interno di una regione difettosa. Le regioni mostrate corrispondono a quelle nella configurazione di esempio sopra. I punti di sostituzione e le relative coordinate sono identificati in verde.","title":"Regioni difettose"},{"location":"Bed_Mesh.html#gcodes-della-mesh-del-piatto","text":"","title":"GCodes della mesh del piatto"},{"location":"Bed_Mesh.html#calibrazione","text":"BED_MESH_CALIBRATE PROFILE=<nome> METHOD=[manuale | automatico] [<parametro_sonda>=<valore>] [<mesh_parameter>=<valore>] Profilo predefinito: default Metodo predefinito: automatico se viene rilevata una sonda, altrimenti manuale Avvia la procedura di sondaggio per la calibrazione della mesh del piatto. La mesh verr\u00e0 salvata in un profilo specificato dal parametro PROFILE , o default se non specificato. Se viene selezionato METHOD=manual , si verificher\u00e0 il rilevamento manuale. Quando si passa dal probing automatico a quello manuale, i punti mesh generati verranno regolati automaticamente. \u00c8 possibile specificare parametri mesh per modificare l'area sondata. Sono disponibili i seguenti parametri: Piatti rettangolari (cartesiani): MESH_MIN MESH_MAX PROBE_COUNT Piatti rotondi (delta): MESH_RADIUS MESH_ORIGIN ROUND_PROBE_COUNT Tutti i piatti: RELATIVE_REFERNCE_INDEX ALGORITHM Vedere la documentazione di configurazione sopra per i dettagli su come ogni parametro si applica alla mesh.","title":"Calibrazione"},{"location":"Bed_Mesh.html#profili","text":"BED_MESH_PROFILE SAVE=<name> LOAD=<name> REMOVE=<name> Dopo aver eseguito un BED_MESH_CALIBRATE, \u00e8 possibile salvare lo stato della mesh corrente in un profilo denominato. Ci\u00f2 consente di caricare una mesh senza risondare il piatto. Dopo che un profilo \u00e8 stato salvato usando BED_MESH_PROFILE SAVE=<nome> \u00e8 possibile eseguire il gcode SAVE_CONFIG per scrivere il profilo su printer.cfg. I profili possono essere caricati eseguendo BED_MESH_PROFILE LOAD=<name> . Va notato che ogni volta che si verifica un BED_MESH_CALIBRATE, lo stato corrente viene automaticamente salvato nel profilo predefinito . Se questo profilo esiste, viene caricato automaticamente all'avvio di Klipper. Se questo comportamento non \u00e8 desiderabile, il profilo predefinito pu\u00f2 essere rimosso come segue: BED_MESH_PROFILE REMOVE=default Qualsiasi altro profilo salvato pu\u00f2 essere rimosso allo stesso modo, sostituendo default con il nome del profilo che desideri rimuovere.","title":"Profili"},{"location":"Bed_Mesh.html#output","text":"BED_MESH_OUTPUT PGP=[0 | 1] Invia lo stato della mesh corrente al terminale. Si noti che viene emessa la mesh stessa Il parametro PGP \u00e8 un'abbreviazione per \"Print Generated Points\". Se \u00e8 impostato PGP=1 , i punti sondati generati verranno inviati al terminale: // bed_mesh: generated points // Index | Tool Adjusted | Probe // 0 | (11.0, 1.0) | (35.0, 6.0) // 1 | (62.2, 1.0) | (86.2, 6.0) // 2 | (113.5, 1.0) | (137.5, 6.0) // 3 | (164.8, 1.0) | (188.8, 6.0) // 4 | (216.0, 1.0) | (240.0, 6.0) // 5 | (216.0, 97.0) | (240.0, 102.0) // 6 | (164.8, 97.0) | (188.8, 102.0) // 7 | (113.5, 97.0) | (137.5, 102.0) // 8 | (62.2, 97.0) | (86.2, 102.0) // 9 | (11.0, 97.0) | (35.0, 102.0) // 10 | (11.0, 193.0) | (35.0, 198.0) // 11 | (62.2, 193.0) | (86.2, 198.0) // 12 | (113.5, 193.0) | (137.5, 198.0) // 13 | (164.8, 193.0) | (188.8, 198.0) // 14 | (216.0, 193.0) | (240.0, 198.0) I punti \"Tool Adjusted\" si riferiscono alla posizione dell'ugello per ciascun punto e i punti \"Probe\" si riferiscono alla posizione della sonda. Si noti che quando il probing \u00e8 manuale i punti \"sonda\" si riferiscono sia alla posizione dell'utensile che dell'ugello.","title":"Output"},{"location":"Bed_Mesh.html#cancella-stato-mesh","text":"BED_MESH_CLEAR Questo gcode pu\u00f2 essere utilizzato per cancellare lo stato della mesh interna.","title":"Cancella stato mesh"},{"location":"Bed_Mesh.html#applicare-gli-offset-xy","text":"BED_MESH_OFFSET [X=<value>] [Y=<value>] Ci\u00f2 \u00e8 utile per le stampanti con pi\u00f9 estrusori indipendenti, poich\u00e9 \u00e8 necessario un offset per produrre la corretta regolazione Z dopo un cambio utensile. Gli offset devono essere specificati rispetto all'estrusore primario. Vale a dire, \u00e8 necessario specificare un offset X positivo se l'estrusore secondario \u00e8 montato a destra dell'estrusore primario e un offset Y positivo se l'estrusore secondario \u00e8 montato \"dietro\" l'estrusore primario.","title":"Applicare gli offset X/Y"},{"location":"Benchmarks.html","text":"Benchmark \u00b6 Questo documento descrive i benchmark di Klipper. Benchmark del microcontrollore \u00b6 Questa sezione descrive il meccanismo utilizzato per generare i benchmark della velocit\u00e0 di passaggio del microcontrollore Klipper. L'obiettivo principale dei benchmark \u00e8 fornire un meccanismo coerente per misurare l'impatto delle modifiche alla codifica all'interno del software. Un obiettivo secondario \u00e8 fornire metriche di alto livello per confrontare le prestazioni tra i chip e tra le piattaforme software. Il benchmark dello step rate \u00e8 progettato per trovare la velocit\u00e0 di stepping massima che l'hardware e il software possono raggiungere. Questa velocit\u00e0 di stepping del benchmark non \u00e8 raggiungibile nell'uso quotidiano poich\u00e9 Klipper ha bisogno di eseguire altre attivit\u00e0 (ad esempio, comunicazione mcu/host, lettura della temperatura, controllo endstop) in qualsiasi utilizzo nel mondo reale. In generale, i pin per i test di benchmark sono scelti per far lampeggiare LED o altri pin innocui. Verifica sempre che sia sicuro guidare i pin configurati prima di eseguire un benchmark. Non \u00e8 consigliabile pilotare uno stepper reale durante un benchmark. Test di riferimento della frequenza di passi \u00b6 Il test viene eseguito utilizzando lo strumento console.py (descritto in ). Il microcontrollore \u00e8 configurato per la particolare piattaforma hardware (vedi sotto) e quindi quanto segue viene tagliato e incollato nella finestra del terminale console.py: SET start_clock {clock+freq} SET ticks 1000 reset_step_clock oid=0 clock={start_clock} set_next_step_dir oid=0 dir=0 queue_step oid=0 interval={ticks} count=60000 add=0 set_next_step_dir oid=0 dir=1 queue_step oid=0 interval=3000 count=1 add=0 reset_step_clock oid=1 clock={start_clock} set_next_step_dir oid=1 dir=0 queue_step oid=1 interval={ticks} count=60000 add=0 set_next_step_dir oid=1 dir=1 queue_step oid=1 interval=3000 count=1 add=0 reset_step_clock oid=2 clock={start_clock} set_next_step_dir oid=2 dir=0 queue_step oid=2 interval={ticks} count=60000 add=0 set_next_step_dir oid=2 dir=1 queue_step oid=2 interval=3000 count=1 add=0 Quanto sopra testa tre stepper che fanno un passo simultaneo. Se l'esecuzione di quanto sopra comporta un errore \"Rescheduled timer in the past\" o \"Stepper too far in past\", indica che il parametro ticks \u00e8 troppo basso (risulta in una velocit\u00e0 di incremento troppo veloce). L'obiettivo \u00e8 trovare l'impostazione pi\u00f9 bassa del parametro tick che si traduca in modo affidabile in un completamento positivo del test. Dovrebbe essere possibile dividere in due il parametro tick fino a trovare un valore stabile. In caso di errore, \u00e8 possibile copiare e incollare quanto segue per cancellare l'errore in preparazione per il test successivo: clear_shutdown Per ottenere i benchmark del singolo stepper, viene utilizzata la stessa sequenza di configurazione, ma solo il primo blocco del test precedente viene tagliato e incollato nella finestra di console.py. Per produrre i benchmark trovati nel documento Features , il numero totale di passi al secondo viene calcolato moltiplicando il numero di stepper attivi per la frequenza nominale mcu e dividendo per il parametro tick finale. I risultati vengono arrotondati alla K pi\u00f9 vicina. Ad esempio, con tre stepper attivi: ECHO Test result is: {\"%.0fK\" % (3. * freq / ticks / 1000.)} I benchmark vengono eseguiti con parametri adatti ai driver TMC. Per i microcontrollori che supportano STEPPER_BOTH_EDGE=1 (come riportato nella riga MCU config al primo avvio di console.py) usa step_pulse_duration=0 e invert_step=-1 per abilitare lo stepping ottimizzato su entrambi i bordi del impulso di passo. Per altri microcontrollori usa un step_pulse_duration corrispondente a 100ns. Benchmark rateo passi AVR \u00b6 La seguente sequenza di configurazione viene utilizzata sui chip AVR: allocate_oids count=3 config_stepper oid=0 step_pin=PA5 dir_pin=PA4 invert_step=0 step_pulse_ticks=32 config_stepper oid=1 step_pin=PA3 dir_pin=PA2 invert_step=0 step_pulse_ticks=32 config_stepper oid=2 step_pin=PC7 dir_pin=PC6 invert_step=0 step_pulse_ticks=32 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc avr-gcc (GCC) 5.4.0 . Entrambi i test a 16Mhz e 20Mhz sono stati eseguiti utilizzando simulavr configurato per un atmega644p (i test precedenti hanno confermato i risultati del simulavr match test su entrambi un 16Mhz at90usb e un 16Mhz atmega2560). avr ticks 1 stepper 102 3 stepper 486 Benchmark rateo passi Arduino Due \u00b6 Sul Due viene utilizzata la seguente sequenza di configurazione: allocate_oids count=3 config_stepper oid=0 step_pin=PB27 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB26 dir_pin=PC30 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA21 dir_pin=PC30 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . sam3x8e ticks 1 stepper 66 3 stepper 257 Benchmark step rate Duet Maestro \u00b6 La seguente sequenza di configurazione viene utilizzata su Duet Maestro: allocate_oids count=3 config_stepper oid=0 step_pin=PC26 dir_pin=PC18 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PC26 dir_pin=PA8 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PC26 dir_pin=PB4 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . sam4s8c ticks 1 stepper 71 3 stepper 260 Benchmark step rate Duet Wifi \u00b6 La seguente sequenza di configurazione viene utilizzata su Duet Wifi: allocate_oids count=3 config_stepper oid=0 step_pin=PD6 dir_pin=PD11 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PD7 dir_pin=PD12 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PD8 dir_pin=PD13 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con gcc versione gcc versione 10.3.1 20210621 (rilascio) (GNU Arm Embedded Toolchain 10.3-2021.07) . sam4e8e ticks 1 stepper 48 3 stepper 215 Benchmark step rate Beaglebone PRU \u00b6 Sulla PRU viene utilizzata la seguente sequenza di configurazione: allocate_oids count=3 config_stepper oid=0 step_pin=gpio0_23 dir_pin=gpio1_12 invert_step=0 step_pulse_ticks=20 config_stepper oid=1 step_pin=gpio1_15 dir_pin=gpio0_26 invert_step=0 step_pulse_ticks=20 config_stepper oid=2 step_pin=gpio0_22 dir_pin=gpio2_1 invert_step=0 step_pulse_ticks=20 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc pru-gcc (GCC) 8.0.0 20170530 (sperimentale) . pru ticks 1 stepper 231 3 stepper 847 Benchmark step rate STM32F042 \u00b6 La seguente sequenza di configurazione viene utilizzata sull'STM32F042: allocate_oids count=3 config_stepper oid=0 step_pin=PA1 dir_pin=PA2 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PA3 dir_pin=PA2 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PB8 dir_pin=PA2 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . stm32f042 ticks 1 stepper 59 3 stepper 249 Benchmark step rate STM32F103 \u00b6 Sull'STM32F103 viene utilizzata la seguente sequenza di configurazione: allocate_oids count=3 config_stepper oid=0 step_pin=PC13 dir_pin=PB5 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB3 dir_pin=PB6 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA4 dir_pin=PB7 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . stm32f103 ticks 1 stepper 61 3 stepper 264 Benchmark step rate STM32F4 \u00b6 Sull'STM32F4 viene utilizzata la seguente sequenza di configurazione: allocate_oids count=3 config_stepper oid=0 step_pin=PA5 dir_pin=PB5 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB2 dir_pin=PB6 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PB3 dir_pin=PB7 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . I risultati dell'STM32F407 sono stati ottenuti eseguendo un binario STM32F407 su un STM32F446 (e quindi utilizzando un clock a 168 Mhz). stm32f446 ticks 1 stepper 46 3 stepper 205 stm32f407 ticks 1 stepper 46 3 stepper 205 STM32H7 step rate benchmark \u00b6 The following configuration sequence is used on a STM32H743VIT6: allocate_oids count=3 config_stepper oid=0 step_pin=PD4 dir_pin=PD3 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PA15 dir_pin=PA8 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PE2 dir_pin=PE3 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 The test was last run on commit 00191b5c with gcc version arm-none-eabi-gcc (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] . stm32h7 ticks 1 stepper 44 3 stepper 198 Benchmark step rate STM32G0B1 \u00b6 Sull'STM32G0B1 viene utilizzata la seguente sequenza di configurazione: allocate_oids count=3 config_stepper oid=0 step_pin=PB13 dir_pin=PB12 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB10 dir_pin=PB2 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PB0 dir_pin=PC5 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 247cd753 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . stm32g0b1 ticks 1 stepper 58 3 stepper 243 Benchmark step rate LPC176x \u00b6 La seguente sequenza di configurazione viene utilizzata sull'LPC176x: allocate_oids count=3 config_stepper oid=0 step_pin=P1.20 dir_pin=P1.18 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=P1.21 dir_pin=P1.18 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=P1.23 dir_pin=P1.18 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . I risultati a 120 Mhz LPC1769 sono stati ottenuti overclockando un LPC1768 a 120 Mhz. lpc1768 ticks 1 stepper 52 3 stepper 222 lpc1769 ticks 1 stepper 51 3 stepper 222 Benchmark step rate SAMD21 \u00b6 La seguente sequenza di configurazione viene utilizzata sul SAMD21: allocate_oids count=3 config_stepper oid=0 step_pin=PA27 dir_pin=PA20 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB3 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA17 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 su un microcontrollore SAMD21G18. samd21 ticks 1 stepper 70 3 stepper 306 Benchmark step rate SAMD51 \u00b6 La seguente sequenza di configurazione viene utilizzata sul SAMD51: allocate_oids count=3 config_stepper oid=0 step_pin=PA22 dir_pin=PA20 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PA22 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA22 dir_pin=PA19 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 su un microcontrollore SAMD51J19A. samd51 ticks 1 stepper 39 3 stepper 191 1 stepper (200Mhz) 39 3 stepper (200Mhz) 181 Benchmark step rate RP2040 \u00b6 Sull'RP2040 viene utilizzata la seguente sequenza di configurazione: allocate_oids count=3 config_stepper oid=0 step_pin=gpio25 dir_pin=gpio3 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=gpio26 dir_pin=gpio4 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=gpio27 dir_pin=gpio5 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 su una scheda Raspberry Pi Pico. rp2040 ticks 1 stepper 5 3 stepper 22 Benchmark step rate MCU Linux \u00b6 La seguente sequenza di configurazione viene utilizzata su un Raspberry Pi: allocate_oids count=3 config_stepper oid=0 step_pin=gpio2 dir_pin=gpio3 invert_step=0 step_pulse_ticks=5 config_stepper oid=1 step_pin=gpio4 dir_pin=gpio5 invert_step=0 step_pulse_ticks=5 config_stepper oid=2 step_pin=gpio6 dir_pin=gpio17 invert_step=0 step_pulse_ticks=5 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc gcc (Raspbian 8.3.0-6+rpi1) 8.3.0 su un Raspberry Pi 3 (revisione a02082). \u00c8 stato difficile ottenere risultati stabili in questo benchmark. Linux (RPi3) ticks 1 stepper 160 3 stepper 380 Benchmark dispacciamento comandi \u00b6 Il benchmark di invio dei comandi verifica quanti comandi \"fittizi\" possono elaborare il microcontrollore. \u00c8 principalmente un test del meccanismo di comunicazione hardware. Il test viene eseguito utilizzando lo strumento console.py (descritto in ). Quanto segue \u00e8 taglia e incolla nella finestra del terminale console.py: DELAY {clock + 2*freq} get_uptime FLOOD 100000 0.0 debug_nop get_uptime Al termine del test, determinare la differenza tra gli orologi riportati nei due messaggi di risposta \"uptime\". Il numero totale di comandi al secondo \u00e8 quindi 100000 * mcu_frequency / clock_diff . Nota che questo test potrebbe saturare la capacit\u00e0 USB/CPU di un Raspberry Pi. Se \u00e8 in esecuzione su un computer host Raspberry Pi, Beaglebone o simile, aumenta il ritardo (ad esempio, DELAY {clock + 20*freq} get_uptime ). Ove applicabile, i benchmark seguenti riguardano console.py in esecuzione su una macchina di classe desktop con il dispositivo connesso tramite un hub ad alta velocit\u00e0. MCU Rateo Build Build compiler stm32f042 (CAN) 18K c105adc8 arm-none-eabi-gcc (GNU Tools 7-2018-q3-update) 7.3.1 atmega2560 (serial) 23K b161a69e avr-gcc (GCC) 4.8.1 sam3x8e (serial) 23K b161a69e arm-none-eabi-gcc (Fedora 7.1.0-5.fc27) 7.1.0 at90usb1286 (USB) 75K 01d2183f avr-gcc (GCC) 5.4.0 samd21 (USB) 223K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 pru (shared memory) 260K c5968a08 pru-gcc (GCC) 8.0.0 20170530 (experimental) stm32f103 (USB) 355K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 sam3x8e (USB) 418K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 lpc1768 (USB) 534K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 lpc1769 (USB) 628K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 sam4s8c (USB) 650K 8d4a5c16 arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 samd51 (USB) 864K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 stm32f446 (USB) 870K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 rp2040 (USB) 873K c5667193 arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 Benchmark Host \u00b6 \u00c8 possibile eseguire test di temporizzazione sul software host utilizzando il meccanismo di elaborazione \"batch mode\" (descritto in ). Questo viene in genere fatto scegliendo un file G-Code grande e complesso e calcolando il tempo impiegato dal software host per elaborarlo. Per esempio: time ~/klippy-env/bin/python ./klippy/klippy.py config/example-cartesian.cfg -i something_complex.gcode -o /dev/null -d out/klipper.dict","title":"Benchmark"},{"location":"Benchmarks.html#benchmark","text":"Questo documento descrive i benchmark di Klipper.","title":"Benchmark"},{"location":"Benchmarks.html#benchmark-del-microcontrollore","text":"Questa sezione descrive il meccanismo utilizzato per generare i benchmark della velocit\u00e0 di passaggio del microcontrollore Klipper. L'obiettivo principale dei benchmark \u00e8 fornire un meccanismo coerente per misurare l'impatto delle modifiche alla codifica all'interno del software. Un obiettivo secondario \u00e8 fornire metriche di alto livello per confrontare le prestazioni tra i chip e tra le piattaforme software. Il benchmark dello step rate \u00e8 progettato per trovare la velocit\u00e0 di stepping massima che l'hardware e il software possono raggiungere. Questa velocit\u00e0 di stepping del benchmark non \u00e8 raggiungibile nell'uso quotidiano poich\u00e9 Klipper ha bisogno di eseguire altre attivit\u00e0 (ad esempio, comunicazione mcu/host, lettura della temperatura, controllo endstop) in qualsiasi utilizzo nel mondo reale. In generale, i pin per i test di benchmark sono scelti per far lampeggiare LED o altri pin innocui. Verifica sempre che sia sicuro guidare i pin configurati prima di eseguire un benchmark. Non \u00e8 consigliabile pilotare uno stepper reale durante un benchmark.","title":"Benchmark del microcontrollore"},{"location":"Benchmarks.html#test-di-riferimento-della-frequenza-di-passi","text":"Il test viene eseguito utilizzando lo strumento console.py (descritto in ). Il microcontrollore \u00e8 configurato per la particolare piattaforma hardware (vedi sotto) e quindi quanto segue viene tagliato e incollato nella finestra del terminale console.py: SET start_clock {clock+freq} SET ticks 1000 reset_step_clock oid=0 clock={start_clock} set_next_step_dir oid=0 dir=0 queue_step oid=0 interval={ticks} count=60000 add=0 set_next_step_dir oid=0 dir=1 queue_step oid=0 interval=3000 count=1 add=0 reset_step_clock oid=1 clock={start_clock} set_next_step_dir oid=1 dir=0 queue_step oid=1 interval={ticks} count=60000 add=0 set_next_step_dir oid=1 dir=1 queue_step oid=1 interval=3000 count=1 add=0 reset_step_clock oid=2 clock={start_clock} set_next_step_dir oid=2 dir=0 queue_step oid=2 interval={ticks} count=60000 add=0 set_next_step_dir oid=2 dir=1 queue_step oid=2 interval=3000 count=1 add=0 Quanto sopra testa tre stepper che fanno un passo simultaneo. Se l'esecuzione di quanto sopra comporta un errore \"Rescheduled timer in the past\" o \"Stepper too far in past\", indica che il parametro ticks \u00e8 troppo basso (risulta in una velocit\u00e0 di incremento troppo veloce). L'obiettivo \u00e8 trovare l'impostazione pi\u00f9 bassa del parametro tick che si traduca in modo affidabile in un completamento positivo del test. Dovrebbe essere possibile dividere in due il parametro tick fino a trovare un valore stabile. In caso di errore, \u00e8 possibile copiare e incollare quanto segue per cancellare l'errore in preparazione per il test successivo: clear_shutdown Per ottenere i benchmark del singolo stepper, viene utilizzata la stessa sequenza di configurazione, ma solo il primo blocco del test precedente viene tagliato e incollato nella finestra di console.py. Per produrre i benchmark trovati nel documento Features , il numero totale di passi al secondo viene calcolato moltiplicando il numero di stepper attivi per la frequenza nominale mcu e dividendo per il parametro tick finale. I risultati vengono arrotondati alla K pi\u00f9 vicina. Ad esempio, con tre stepper attivi: ECHO Test result is: {\"%.0fK\" % (3. * freq / ticks / 1000.)} I benchmark vengono eseguiti con parametri adatti ai driver TMC. Per i microcontrollori che supportano STEPPER_BOTH_EDGE=1 (come riportato nella riga MCU config al primo avvio di console.py) usa step_pulse_duration=0 e invert_step=-1 per abilitare lo stepping ottimizzato su entrambi i bordi del impulso di passo. Per altri microcontrollori usa un step_pulse_duration corrispondente a 100ns.","title":"Test di riferimento della frequenza di passi"},{"location":"Benchmarks.html#benchmark-rateo-passi-avr","text":"La seguente sequenza di configurazione viene utilizzata sui chip AVR: allocate_oids count=3 config_stepper oid=0 step_pin=PA5 dir_pin=PA4 invert_step=0 step_pulse_ticks=32 config_stepper oid=1 step_pin=PA3 dir_pin=PA2 invert_step=0 step_pulse_ticks=32 config_stepper oid=2 step_pin=PC7 dir_pin=PC6 invert_step=0 step_pulse_ticks=32 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc avr-gcc (GCC) 5.4.0 . Entrambi i test a 16Mhz e 20Mhz sono stati eseguiti utilizzando simulavr configurato per un atmega644p (i test precedenti hanno confermato i risultati del simulavr match test su entrambi un 16Mhz at90usb e un 16Mhz atmega2560). avr ticks 1 stepper 102 3 stepper 486","title":"Benchmark rateo passi AVR"},{"location":"Benchmarks.html#benchmark-rateo-passi-arduino-due","text":"Sul Due viene utilizzata la seguente sequenza di configurazione: allocate_oids count=3 config_stepper oid=0 step_pin=PB27 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB26 dir_pin=PC30 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA21 dir_pin=PC30 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . sam3x8e ticks 1 stepper 66 3 stepper 257","title":"Benchmark rateo passi Arduino Due"},{"location":"Benchmarks.html#benchmark-step-rate-duet-maestro","text":"La seguente sequenza di configurazione viene utilizzata su Duet Maestro: allocate_oids count=3 config_stepper oid=0 step_pin=PC26 dir_pin=PC18 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PC26 dir_pin=PA8 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PC26 dir_pin=PB4 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . sam4s8c ticks 1 stepper 71 3 stepper 260","title":"Benchmark step rate Duet Maestro"},{"location":"Benchmarks.html#benchmark-step-rate-duet-wifi","text":"La seguente sequenza di configurazione viene utilizzata su Duet Wifi: allocate_oids count=3 config_stepper oid=0 step_pin=PD6 dir_pin=PD11 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PD7 dir_pin=PD12 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PD8 dir_pin=PD13 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con gcc versione gcc versione 10.3.1 20210621 (rilascio) (GNU Arm Embedded Toolchain 10.3-2021.07) . sam4e8e ticks 1 stepper 48 3 stepper 215","title":"Benchmark step rate Duet Wifi"},{"location":"Benchmarks.html#benchmark-step-rate-beaglebone-pru","text":"Sulla PRU viene utilizzata la seguente sequenza di configurazione: allocate_oids count=3 config_stepper oid=0 step_pin=gpio0_23 dir_pin=gpio1_12 invert_step=0 step_pulse_ticks=20 config_stepper oid=1 step_pin=gpio1_15 dir_pin=gpio0_26 invert_step=0 step_pulse_ticks=20 config_stepper oid=2 step_pin=gpio0_22 dir_pin=gpio2_1 invert_step=0 step_pulse_ticks=20 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc pru-gcc (GCC) 8.0.0 20170530 (sperimentale) . pru ticks 1 stepper 231 3 stepper 847","title":"Benchmark step rate Beaglebone PRU"},{"location":"Benchmarks.html#benchmark-step-rate-stm32f042","text":"La seguente sequenza di configurazione viene utilizzata sull'STM32F042: allocate_oids count=3 config_stepper oid=0 step_pin=PA1 dir_pin=PA2 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PA3 dir_pin=PA2 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PB8 dir_pin=PA2 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . stm32f042 ticks 1 stepper 59 3 stepper 249","title":"Benchmark step rate STM32F042"},{"location":"Benchmarks.html#benchmark-step-rate-stm32f103","text":"Sull'STM32F103 viene utilizzata la seguente sequenza di configurazione: allocate_oids count=3 config_stepper oid=0 step_pin=PC13 dir_pin=PB5 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB3 dir_pin=PB6 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA4 dir_pin=PB7 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . stm32f103 ticks 1 stepper 61 3 stepper 264","title":"Benchmark step rate STM32F103"},{"location":"Benchmarks.html#benchmark-step-rate-stm32f4","text":"Sull'STM32F4 viene utilizzata la seguente sequenza di configurazione: allocate_oids count=3 config_stepper oid=0 step_pin=PA5 dir_pin=PB5 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB2 dir_pin=PB6 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PB3 dir_pin=PB7 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . I risultati dell'STM32F407 sono stati ottenuti eseguendo un binario STM32F407 su un STM32F446 (e quindi utilizzando un clock a 168 Mhz). stm32f446 ticks 1 stepper 46 3 stepper 205 stm32f407 ticks 1 stepper 46 3 stepper 205","title":"Benchmark step rate STM32F4"},{"location":"Benchmarks.html#stm32h7-step-rate-benchmark","text":"The following configuration sequence is used on a STM32H743VIT6: allocate_oids count=3 config_stepper oid=0 step_pin=PD4 dir_pin=PD3 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PA15 dir_pin=PA8 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PE2 dir_pin=PE3 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 The test was last run on commit 00191b5c with gcc version arm-none-eabi-gcc (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] . stm32h7 ticks 1 stepper 44 3 stepper 198","title":"STM32H7 step rate benchmark"},{"location":"Benchmarks.html#benchmark-step-rate-stm32g0b1","text":"Sull'STM32G0B1 viene utilizzata la seguente sequenza di configurazione: allocate_oids count=3 config_stepper oid=0 step_pin=PB13 dir_pin=PB12 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB10 dir_pin=PB2 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PB0 dir_pin=PC5 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 247cd753 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . stm32g0b1 ticks 1 stepper 58 3 stepper 243","title":"Benchmark step rate STM32G0B1"},{"location":"Benchmarks.html#benchmark-step-rate-lpc176x","text":"La seguente sequenza di configurazione viene utilizzata sull'LPC176x: allocate_oids count=3 config_stepper oid=0 step_pin=P1.20 dir_pin=P1.18 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=P1.21 dir_pin=P1.18 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=P1.23 dir_pin=P1.18 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . I risultati a 120 Mhz LPC1769 sono stati ottenuti overclockando un LPC1768 a 120 Mhz. lpc1768 ticks 1 stepper 52 3 stepper 222 lpc1769 ticks 1 stepper 51 3 stepper 222","title":"Benchmark step rate LPC176x"},{"location":"Benchmarks.html#benchmark-step-rate-samd21","text":"La seguente sequenza di configurazione viene utilizzata sul SAMD21: allocate_oids count=3 config_stepper oid=0 step_pin=PA27 dir_pin=PA20 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB3 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA17 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 su un microcontrollore SAMD21G18. samd21 ticks 1 stepper 70 3 stepper 306","title":"Benchmark step rate SAMD21"},{"location":"Benchmarks.html#benchmark-step-rate-samd51","text":"La seguente sequenza di configurazione viene utilizzata sul SAMD51: allocate_oids count=3 config_stepper oid=0 step_pin=PA22 dir_pin=PA20 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PA22 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA22 dir_pin=PA19 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 su un microcontrollore SAMD51J19A. samd51 ticks 1 stepper 39 3 stepper 191 1 stepper (200Mhz) 39 3 stepper (200Mhz) 181","title":"Benchmark step rate SAMD51"},{"location":"Benchmarks.html#benchmark-step-rate-rp2040","text":"Sull'RP2040 viene utilizzata la seguente sequenza di configurazione: allocate_oids count=3 config_stepper oid=0 step_pin=gpio25 dir_pin=gpio3 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=gpio26 dir_pin=gpio4 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=gpio27 dir_pin=gpio5 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 su una scheda Raspberry Pi Pico. rp2040 ticks 1 stepper 5 3 stepper 22","title":"Benchmark step rate RP2040"},{"location":"Benchmarks.html#benchmark-step-rate-mcu-linux","text":"La seguente sequenza di configurazione viene utilizzata su un Raspberry Pi: allocate_oids count=3 config_stepper oid=0 step_pin=gpio2 dir_pin=gpio3 invert_step=0 step_pulse_ticks=5 config_stepper oid=1 step_pin=gpio4 dir_pin=gpio5 invert_step=0 step_pulse_ticks=5 config_stepper oid=2 step_pin=gpio6 dir_pin=gpio17 invert_step=0 step_pulse_ticks=5 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc gcc (Raspbian 8.3.0-6+rpi1) 8.3.0 su un Raspberry Pi 3 (revisione a02082). \u00c8 stato difficile ottenere risultati stabili in questo benchmark. Linux (RPi3) ticks 1 stepper 160 3 stepper 380","title":"Benchmark step rate MCU Linux"},{"location":"Benchmarks.html#benchmark-dispacciamento-comandi","text":"Il benchmark di invio dei comandi verifica quanti comandi \"fittizi\" possono elaborare il microcontrollore. \u00c8 principalmente un test del meccanismo di comunicazione hardware. Il test viene eseguito utilizzando lo strumento console.py (descritto in ). Quanto segue \u00e8 taglia e incolla nella finestra del terminale console.py: DELAY {clock + 2*freq} get_uptime FLOOD 100000 0.0 debug_nop get_uptime Al termine del test, determinare la differenza tra gli orologi riportati nei due messaggi di risposta \"uptime\". Il numero totale di comandi al secondo \u00e8 quindi 100000 * mcu_frequency / clock_diff . Nota che questo test potrebbe saturare la capacit\u00e0 USB/CPU di un Raspberry Pi. Se \u00e8 in esecuzione su un computer host Raspberry Pi, Beaglebone o simile, aumenta il ritardo (ad esempio, DELAY {clock + 20*freq} get_uptime ). Ove applicabile, i benchmark seguenti riguardano console.py in esecuzione su una macchina di classe desktop con il dispositivo connesso tramite un hub ad alta velocit\u00e0. MCU Rateo Build Build compiler stm32f042 (CAN) 18K c105adc8 arm-none-eabi-gcc (GNU Tools 7-2018-q3-update) 7.3.1 atmega2560 (serial) 23K b161a69e avr-gcc (GCC) 4.8.1 sam3x8e (serial) 23K b161a69e arm-none-eabi-gcc (Fedora 7.1.0-5.fc27) 7.1.0 at90usb1286 (USB) 75K 01d2183f avr-gcc (GCC) 5.4.0 samd21 (USB) 223K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 pru (shared memory) 260K c5968a08 pru-gcc (GCC) 8.0.0 20170530 (experimental) stm32f103 (USB) 355K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 sam3x8e (USB) 418K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 lpc1768 (USB) 534K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 lpc1769 (USB) 628K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 sam4s8c (USB) 650K 8d4a5c16 arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 samd51 (USB) 864K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 stm32f446 (USB) 870K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 rp2040 (USB) 873K c5667193 arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0","title":"Benchmark dispacciamento comandi"},{"location":"Benchmarks.html#benchmark-host","text":"\u00c8 possibile eseguire test di temporizzazione sul software host utilizzando il meccanismo di elaborazione \"batch mode\" (descritto in ). Questo viene in genere fatto scegliendo un file G-Code grande e complesso e calcolando il tempo impiegato dal software host per elaborarlo. Per esempio: time ~/klippy-env/bin/python ./klippy/klippy.py config/example-cartesian.cfg -i something_complex.gcode -o /dev/null -d out/klipper.dict","title":"Benchmark Host"},{"location":"Bootloaders.html","text":"Bootloader \u00b6 Questo documento fornisce informazioni sui bootloader comuni scoperti sui microcontrollori che sono supportati da Klipper. Il bootloader \u00e8 un software di terze parti che viene eseguito sul microcontrollore quando viene acceso per la prima volta. Viene generalmente utilizzato per eseguire il flashing di una nuova applicazione (ad es. Klipper) sul microcontrollore senza richiedere hardware specializzato. Sfortunatamente, non esiste uno standard a livello di settore per il flashing di un microcontrollore, n\u00e9 esiste un bootloader standard che funzioni su tutti i microcontrollori. Peggio ancora, \u00e8 comune che ogni bootloader richieda una serie di passaggi diversa per eseguire il flashing di un'applicazione. Se si pu\u00f2 eseguire il flashing di un bootloader su un microcontrollore, generalmente si pu\u00f2 anche utilizzare quel meccanismo per eseguire il flashing di un'applicazione, ma \u00e8 necessario prestare attenzione quando si esegue questa operazione poich\u00e9 si potrebbe rimuovere inavvertitamente il bootloader. Al contrario, un bootloader generalmente consentir\u00e0 solo a un utente di eseguire il flashing di un'applicazione. Si consiglia pertanto di utilizzare un bootloader per eseguire il flashing di un'applicazione, ove possibile. Questo documento tenta di descrivere i bootloader comuni, i passaggi necessari per eseguire il flashing di un bootloader e i passaggi necessari per eseguire il flashing di un'applicazione. Questo documento non \u00e8 un riferimento autorevole; \u00e8 inteso come una raccolta di informazioni utili che gli sviluppatori di Klipper hanno accumulato. Microcontrollori AVR \u00b6 In generale, il progetto Arduino \u00e8 un buon riferimento per bootloader e procedure di flashing sui microcontrollori Atmel Atmega a 8 bit. In particolare, il file \"boards.txt\": https://github.com/arduino/Arduino/blob/1.8.5/hardware/arduino/avr/boards.txt \u00e8 un utile riferimento. Per eseguire il flashing di un bootloader, i chip AVR richiedono uno strumento di flashing hardware esterno (che comunica con il chip tramite SPI). Questo strumento pu\u00f2 essere acquistato (ad esempio, eseguire una ricerca sul Web per \"avr isp\", \"arduino isp\" o \"usb tiny isp\"). \u00c8 anche possibile utilizzare un altro Arduino o Raspberry Pi per eseguire il flashing di un bootloader AVR (ad esempio, eseguire una ricerca sul Web per \"programmare un avr utilizzando raspberry pi\"). Gli esempi seguenti sono scritti presupponendo che sia in uso un dispositivo di tipo \"AVR ISP Mk2\". Il programma \"avrdude\" \u00e8 lo strumento pi\u00f9 comune utilizzato per eseguire il flashing dei chip atmega (sia flash del bootloader che flash dell'applicazione). Atmega2560 \u00b6 Questo chip si trova in genere nell'\"Arduino Mega\" ed \u00e8 molto comune nelle schede per stampanti 3D. Per eseguire il flashing del bootloader stesso usa qualcosa come: wget 'https://github.com/arduino/Arduino/raw/1.8.5/hardware/arduino/avr/bootloaders/stk500v2/stk500boot_v2_mega2560.hex' avrdude -cavrispv2 -patmega2560 -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0xFD:m -U hfuse:w:0xD8:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega2560 -P/dev/ttyACM0 -b115200 -U flash:w:stk500boot_v2_mega2560.hex avrdude -cavrispv2 -patmega2560 -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: avrdude -cwiring -patmega2560 -P/dev/ttyACM0 -b115200 -D -Uflash:w:out/klipper.elf.hex:i Atmega1280 \u00b6 Questo chip si trova in genere nelle prime versioni di \"Arduino Mega\". Per eseguire il flashing del bootloader stesso usa qualcosa come: wget 'https://github.com/arduino/Arduino/raw/1.8.5/hardware/arduino/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1280.hex' avrdude -cavrispv2 -patmega1280 -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0xF5:m -U hfuse:w:0xDA:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega1280 -P/dev/ttyACM0 -b115200 -U flash:w:ATmegaBOOT_168_atmega1280.hex avrdude -cavrispv2 -patmega1280 -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: avrdude -carduino -patmega1280 -P/dev/ttyACM0 -b57600 -D -Uflash:w:out/klipper.elf.hex:i Atmega1284p \u00b6 Questo chip si trova comunemente nelle schede per stampanti 3D in stile \"Melzi\". Per eseguire il flashing del bootloader stesso usa qualcosa come: wget 'https://github.com/Lauszus/Sanguino/raw/1.0.2/bootloaders/optiboot/optiboot_atmega1284p.hex' avrdude -cavrispv2 -patmega1284p -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0xFD:m -U hfuse:w:0xDE:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega1284p -P/dev/ttyACM0 -b115200 -U flash:w:optiboot_atmega1284p.hex avrdude -cavrispv2 -patmega1284p -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: avrdude -carduino -patmega1284p -P/dev/ttyACM0 -b115200 -D -Uflash:w:out/klipper.elf.hex:i Si noti che un certo numero di schede in stile \"Melzi\" sono precaricate con un bootloader che utilizza una velocit\u00e0 di trasmissione di 57600 baud. In questo caso, per eseguire il flashing di un'applicazione utilizzare invece qualcosa di simile: avrdude -carduino -patmega1284p -P/dev/ttyACM0 -b57600 -D -Uflash:w:out/klipper.elf.hex:i At90usb1286 \u00b6 Questo documento non copre il metodo per eseguire il flashing di un bootloader su At90usb1286 n\u00e9 copre il flashing di applicazioni generali su questo dispositivo. Il dispositivo Teensy++ di pjrc.com viene fornito con un bootloader proprietario. Richiede uno strumento di flashing personalizzato da https://github.com/PaulStoffregen/teensy_loader_cli . Si pu\u00f2 eseguire il flashing di un'applicazione usando qualcosa come: teensy_loader_cli --mcu=at90usb1286 out/klipper.elf.hex -v Atmega168 \u00b6 L'atmega168 ha uno spazio flash limitato. Se si utilizza un bootloader, si consiglia di utilizzare il bootloader Optiboot. Per eseguire il flashing di quel bootloader usa qualcosa come: wget 'https://github.com/arduino/Arduino/raw/1.8.5/hardware/arduino/avr/bootloaders/optiboot/optiboot_atmega168.hex' avrdude -cavrispv2 -patmega168 -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0x04:m -U hfuse:w:0xDD:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega168 -P/dev/ttyACM0 -b115200 -U flash:w:optiboot_atmega168.hex avrdude -cavrispv2 -patmega168 -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Per eseguire il flashing di un'applicazione tramite il bootloader Optiboot, utilizzare qualcosa come: avrdude -carduino -patmega168 -P/dev/ttyACM0 -b115200 -D -Uflash:w:out/klipper.elf.hex:i Microcontrollori SAM3 (Arduino Due) \u00b6 Non \u00e8 comune utilizzare un bootloader con l'mcu SAM3. Il chip stesso ha una ROM che permette di programmare il flash da porta seriale 3.3V o da USB. Per abilitare la ROM, il pin \"erase\" viene tenuto alto durante un reset, che cancella il contenuto della flash e fa funzionare la ROM. Su un Arduino Due, questa sequenza pu\u00f2 essere realizzata impostando un baud rate di 1200 sulla \"porta usb di programmazione\" (la porta USB pi\u00f9 vicina all'alimentatore). Il codice in https://github.com/shumatech/BOSSA pu\u00f2 essere utilizzato per programmare il SAM3. Si consiglia di utilizzare la versione 1.9 o successiva. Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: bossac -U -p /dev/ttyACM0 -a -e -w out/klipper.bin -v -b bossac -U -p /dev/ttyACM0 -R Microcontrollori SAM4 (Duet Wifi) \u00b6 Non \u00e8 comune utilizzare un bootloader con l'mcu SAM4. Il chip stesso ha una ROM che permette di programmare la memoria flash da porta seriale 3.3V o da USB. Per abilitare la ROM, il pin \"erase\" viene tenuto alto durante un reset, che cancella il contenuto della memoria flash e fa funzionare la ROM. Il codice in https://github.com/shumatech/BOSSA pu\u00f2 essere utilizzato per programmare il SAM4. \u00c8 necessario utilizzare la versione 1.8.0 o successiva. Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: bossac --port=/dev/ttyACM0 -b -U -e -w -v -R out/klipper.bin Microcontrollori SAMD21 (Arduino Zero) \u00b6 Il bootloader SAMD21 viene caricato in memoria flashing tramite l'interfaccia ARM Serial Wire Debug (SWD). Questo viene fatto comunemente con un dongle hardware SWD dedicato. In alternativa, \u00e8 possibile utilizzare un Raspberry Pi con OpenOCD . Per eseguire il flashing di un bootloader con OpenOCD, utilizzare la seguente configurazione del chip: source [find target/at91samdXX.cfg] Ottieni un bootloader, ad esempio: wget 'https://github.com/arduino/ArduinoCore-samd/raw/1.8.3/bootloaders/zero/samd21_sam_ba.bin' Carica la memoria Flash con comandi OpenOCD simili a: at91samd bootloader 0 program samd21_sam_ba.bin verify Il bootloader pi\u00f9 comune sul SAMD21 \u00e8 quello che si trova sull' \"Arduino Zero\". Utilizza un bootloader da 8KiB (l'applicazione deve essere compilata con un indirizzo iniziale di 8KiB). Si pu\u00f2 entrare in questo bootloader facendo doppio clic sul pulsante di ripristino. Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: bossac -U -p /dev/ttyACM0 --offset=0x2000 -w out/klipper.bin -v -b -R Al contrario, \"Arduino M0\" utilizza un bootloader da 16 KiB (l'applicazione deve essere compilata con un indirizzo iniziale di 16 KiB). Per eseguire il flashing di un'applicazione su questo bootloader, ripristinare il microcontrollore ed eseguire il comando flash entro i primi secondi dall'avvio, qualcosa del tipo: avrdude -c stk500v2 -p atmega2560 -P /dev/ttyACM0 -u -Uflash:w:out/klipper.elf.hex:i Microcontrollori SAMD51 (Adafruit Metro-M4 e simili) \u00b6 Come il SAMD21, il bootloader SAMD51 viene eseguito il flashing tramite l'interfaccia ARM Serial Wire Debug (SWD). Per eseguire il flashing di un bootloader con OpenOCD su un Raspberry Pi utilizzare la seguente configurazione del chip: source [find target/atsame5x.cfg] Ottieni un bootloader: diversi bootloader sono disponibili da https://github.com/adafruit/uf2-samdx1/releases/latest . Per esempio: wget 'https://github.com/adafruit/uf2-samdx1/releases/download/v3.7.0/bootloader-itsybitsy_m4-v3.7.0.bin' Carica la memoria Flash con comandi OpenOCD simili a: at91samd bootloader 0 program bootloader-itsybitsy_m4-v3.7.0.bin verify at91samd bootloader 16384 Il SAMD51 utilizza un bootloader da 16 KiB (l'applicazione deve essere compilata con un indirizzo iniziale di 16 KiB). Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: bossac -U -p /dev/ttyACM0 --offset=0x4000 -w out/klipper.bin -v -b -R Microcontrollori STM32F103 (dispositivi Blue Pill) \u00b6 I dispositivi STM32F103 dispongono di una ROM che pu\u00f2 eseguire il flashing di un bootloader o di un'applicazione tramite seriale a 3,3 V. In genere si collegano i pin PA10 (MCU Rx) e PA9 (MCU Tx) a un adattatore UART da 3,3 V. Per accedere alla ROM, \u00e8 necessario collegare il pin \"boot 0\" in alto e il pin \"boot 1\" in basso, quindi ripristinare il dispositivo. Il pacchetto \"stm32flash\" pu\u00f2 quindi essere utilizzato per eseguire il flashing del dispositivo utilizzando qualcosa come: stm32flash -w out/klipper.bin -v -g 0 /dev/ttyAMA0 Si noti che se si utilizza un Raspberry Pi per la seriale da 3,3 V, il protocollo stm32flash utilizza una modalit\u00e0 di parit\u00e0 seriale che il \"mini UART\" di Raspberry Pi non supporta. Vedere https://www.raspberrypi.com/documentation/computers/configuration.html#configuring-uarts per i dettagli sull'abilitazione dell'uart completo sui pin GPIO di Raspberry Pi. Dopo aver caricato la memoria flash, imposta \"boot 0\" e \"boot 1\" su basso in modo che in futuro ripristini l'avvio da flash. STM32F103 con bootloader stm32duino \u00b6 Il progetto \"stm32duino\" ha un bootloader compatibile con USB - vedere: https://github.com/rogerclarkmelbourne/STM32duino-bootloader Questo bootloader pu\u00f2 essere flashato tramite seriale 3.3V con qualcosa come: wget 'https://github.com/rogerclarkmelbourne/STM32duino-bootloader/raw/master/binaries/generic_boot20_pc13.bin' stm32flash -w generic_boot20_pc13.bin -v -g 0 /dev/ttyAMA0 Questo bootloader utilizza 8KiB di spazio flash (l'applicazione deve essere compilata con un indirizzo iniziale di 8KiB). Caricare in memoria flash un'applicazione con qualcosa come: dfu-util -d 1eaf:0003 -a 2 -R -D out/klipper.bin Il bootloader in genere viene eseguito solo per un breve periodo dopo l'avvio. Potrebbe essere necessario sincronizzare il comando sopra in modo che venga eseguito mentre il bootloader \u00e8 ancora attivo (il bootloader far\u00e0 lampeggiare un led della scheda mentre \u00e8 in esecuzione). In alternativa, imposta il pin \"boot 0\" su basso e il pin \"boot 1\" su alto per rimanere nel bootloader dopo un ripristino. STM32F103 con bootloader HID \u00b6 Il bootloader HID \u00e8 un bootloader compatto e senza driver in grado di eseguire il flashing attraverso USB. \u00c8 inoltre disponibile un fork con build specifiche per SKR Mini E3 1.2 . Per schede STM32F103 generiche come la blue pill \u00e8 possibile eseguire il flashing del bootloader tramite seriale 3.3v utilizzando stm32flash come indicato nella sezione stm32duino sopra, sostituendo il nome del file con il binario del bootloader desiderato (es: hid_generic_pc13.bin per blue pill ). Non \u00e8 possibile utilizzare stm32flash per SKR Mini E3 poich\u00e9 il pin boot0 \u00e8 collegato direttamente a terra e non disponibile tramite pin header. Si consiglia di utilizzare un STLink V2 con STM32Cubeprogrammer per eseguire il flashing del bootloader. Se non hai accesso a un STLink \u00e8 anche possibile utilizzare un Raspberry Pi e OpenOCD con la seguente configurazione del chip: source [find target/stm32f1x.cfg] Se lo desideri puoi fare un backup della flash corrente con il seguente comando. Tieni presente che il completamento potrebbe richiedere del tempo: flash read_bank 0 btt_skr_mini_e3_backup.bin infine, puoi eseguire il flashing con comandi simili a: stm32f1x mass_erase 0 program hid_btt_skr_mini_e3.bin verify 0x08000000 NOTE: L'esempio sopra cancella il chip, quindi programma il bootloader. Indipendentemente dal metodo scelto per eseguire il flashing, si consiglia di cancellare il chip prima del flashing. Prima di eseguire il flashing di SKR Mini E3 con questo bootloader, dovresti essere consapevole che non sarai pi\u00f9 in grado di aggiornare il firmware tramite la sdcard. You may need to hold down the reset button on the board while launching OpenOCD. It should display something like: Open On-Chip Debugger 0.10.0+dev-01204-gc60252ac-dirty (2020-04-27-16:00) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html DEPRECATED! use 'adapter speed' not 'adapter_khz' Info : BCM2835 GPIO JTAG/SWD bitbang driver Info : JTAG and SWD modes enabled Info : clock speed 40 kHz Info : SWD DPIDR 0x1ba01477 Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints Info : stm32f1x.cpu: external reset detected Info : starting gdb server for stm32f1x.cpu on 3333 Info : Listening on port 3333 for gdb connections Dopodich\u00e9 puoi rilasciare il pulsante di reset. Questo bootloader richiede 2KiB di spazio flash (l'applicazione deve essere compilata con un indirizzo iniziale di 2KiB). Il programma hid-flash viene utilizzato per caricare un file binario sul bootloader. \u00c8 possibile installare questo software con i seguenti comandi: sudo apt install libusb-1.0 cd ~/klipper/lib/hidflash make Se il bootloader \u00e8 in esecuzione, puoi eseguire il flash con qualcosa del tipo: ~/klipper/lib/hidflash/hid-flash ~/klipper/out/klipper.bin in alternativa, puoi usare make flash per flashare klipper direttamente: make flash FLASH_DEVICE=1209:BEBA O se klipper \u00e8 stato precedentemente flashato: make flash FLASH_DEVICE=/dev/ttyACM0 Potrebbe essere necessario inserire manualmente il bootloader, questo pu\u00f2 essere fatto impostando \"boot 0\" basso e \"boot 1\" alto. Su SKR Mini E3 \"Boot 1\" non \u00e8 disponibile, quindi pu\u00f2 essere fatto impostando il pin PA2 basso se hai flashato \"hid_btt_skr_mini_e3.bin\". Questo pin \u00e8 etichettato \"TX0\" sull'intestazione TFT nel documento \"PIN\" di SKR Mini E3. C'\u00e8 un pin di massa accanto a PA2 che puoi usare per abbassare PA2. STM32F103/STM32F072 con bootloader MSC \u00b6 Il bootloader MSC \u00e8 un bootloader senza driver in grado di eseguire il flashing su USB. \u00c8 possibile eseguire il flashing del bootloader tramite seriale 3.3v usando stm32flash come indicato nella sezione stm32duino sopra, sostituendo il nome del file con il file binario del bootloader MSC desiderato (es: MSCboot-Bluepill.bin per la Blue pill). Per le schede STM32F072 \u00e8 anche possibile eseguire il flashing del bootloader su USB (tramite DFU) con qualcosa del tipo: dfu-util -d 0483:df11 -a 0 -R -D MSCboot-STM32F072.bin -s0x08000000:leave Questo bootloader utilizza 8KiB o 16KiB di spazio flash, vedere la descrizione del bootloader (l'applicazione deve essere compilata con l'indirizzo iniziale corrispondente). Il bootloader pu\u00f2 essere attivato premendo due volte il pulsante di reset della scheda. Non appena il bootloader viene attivato, la scheda appare come una chiavetta USB su cui \u00e8 possibile copiare il file klipper.bin. STM32F103/STM32F0x2 con bootloader CanBoot \u00b6 Il bootloader CanBoot fornisce un'opzione per caricare il firmware Klipper su CANBUS. Il bootloader stesso \u00e8 derivato dal codice sorgente di Klipper. Attualmente CanBoot supporta i modelli STM32F103, STM32F042 e STM32F072. Si consiglia di utilizzare un programmatore ST-Link per eseguire il flashing di CanBoot, tuttavia dovrebbe essere possibile eseguire il flashing utilizzando stm32flash sui dispositivi STM32F103 e dfu-util sui dispositivi STM32F042/STM32F072. Vedere le sezioni precedenti di questo documento per istruzioni su questi metodi di flashing, sostituendo canboot.bin per il nome del file ove appropriato. Il link al repository CanBoot collegato sopra fornisce istruzioni per la creazione del bootloader. La prima volta che CanBoot \u00e8 stato flashato, dovrebbe rilevare che non \u00e8 presente alcuna applicazione e accedere al bootloader. Se ci\u00f2 non accade \u00e8 possibile entrare nel bootloader premendo due volte di seguito il pulsante di reset. L'utilit\u00e0 flash_can.py fornita nella cartella lib/canboot pu\u00f2 essere utilizzata per caricare il firmware di Klipper. E' necessario l'UUID del dispositivo per eseguire il flashing. Se non si dispone di un UUID \u00e8 possibile interrogare i nodi che attualmente eseguono il bootloader: python3 flash_can.py -q Ci\u00f2 restituir\u00e0 gli UUID per tutti i nodi collegati non attualmente assegnati a un UUID. Questo dovrebbe includere tutti i nodi attualmente nel bootloader. Una volta che hai un UUID, puoi caricare il firmware con il seguente comando: python3 flash_can.py -i can0 -f ~/klipper/out/klipper.bin -u aabbccddeeff Dove aabbccddeeff \u00e8 sostituito dal tuo UUID. Nota che le opzioni -i e -f possono essere omesse, per impostazione predefinita sono rispettivamente can0 e ~/klipper/out/klipper.bin . Quando crei Klipper per l'uso con CanBoot, seleziona l'opzione Bootloader da 8 KiB. Microcontrollori STM32F4 (SKR Pro 1.1) \u00b6 I microcontrollori STM32F4 sono dotati di un bootloader di sistema integrato in grado di eseguire il flashing su USB (tramite DFU), seriale 3.3v e vari altri metodi (consultare il documento STM AN2606 per ulteriori informazioni). Alcune schede STM32F4, come SKR Pro 1.1, non sono in grado di accedere al bootloader DFU. Il bootloader HID \u00e8 disponibile per schede basate su STM32F405/407 nel caso in cui l'utente preferisca eseguire il flashing su USB anzich\u00e9 utilizzare la scheda SD. Tieni presente che potrebbe essere necessario configurare e creare una versione specifica per la tua scheda, una build per SKR Pro 1.1 \u00e8 disponibile qui . A meno che la tua scheda non sia compatibile con DFU, il metodo di flashing pi\u00f9 accessibile \u00e8 probabilmente tramite seriale 3.3v, che segue la stessa procedura di flash dell'STM32F103 usando stm32flash . Per esempio: wget https://github.com/Arksine/STM32_HID_Bootloader/releases/download/v0.5-beta/hid_bootloader_SKR_PRO.bin stm32flash -w hid_bootloader_SKR_PRO.bin -v -g 0 /dev/ttyAMA0 Questo bootloader richiede 16Kib di spazio flash sull'STM32F4 (l'applicazione deve essere compilata con un indirizzo iniziale di 16KiB). Come con l'STM32F1, l'STM32F4 utilizza lo strumento hid-flash per caricare i file binari nell'MCU. Consulta le istruzioni sopra per i dettagli su come creare e utilizzare hid-flash. Potrebbe essere necessario inserire manualmente il bootloader, questo pu\u00f2 essere fatto impostando \"boot 0\" basso, \"boot 1\" alto e collegando il dispositivo. Al termine della programmazione, scollegare il dispositivo e impostare \"boot 1\" su basso in modo che l'applicazione venga caricata. Microcontrollori LPC176x (Smoothieboards) \u00b6 Questo documento non descrive il metodo per eseguire il flashing di un bootloader stesso - vedere: http://smoothieware.org/flashing-the-bootloader per ulteriori informazioni su questo argomento. \u00c8 comune che per le Smoothieboard venga fornito con un bootloader da: https://github.com/triffid/LPC17xx-DFU-Bootloader . Quando si utilizza questo bootloader, l'applicazione deve essere compilata con un indirizzo iniziale di 16 KiB. Il modo pi\u00f9 semplice per eseguire il flashing di un'applicazione con questo bootloader \u00e8 copiare il file dell'applicazione (ad es. out/klipper.bin ) in un file denominato firmware.bin su una scheda SD, quindi riavviare il microcontrollore con quella scheda SD. Eseguire OpenOCD su Raspberry PI \u00b6 OpenOCD \u00e8 un pacchetto software in grado di eseguire il flashing e il debug di chip di basso livello. Pu\u00f2 utilizzare i pin GPIO su un Raspberry Pi per comunicare con una variet\u00e0 di chip ARM. Questa sezione descrive come installare e avviare OpenOCD. \u00c8 derivato dalle istruzioni su: https://learn.adafruit.com/programming-microcontrollers-using-openocd-on-raspberry-pi Inizia scaricando e compilando il software (ogni passaggio pu\u00f2 richiedere diversi minuti e il passaggio \"make\" pu\u00f2 richiedere pi\u00f9 di 30 minuti): sudo apt-get update sudo apt-get install autoconf libtool telnet mkdir ~/openocd cd ~/openocd/ git clone http://openocd.zylin.com/openocd cd openocd ./bootstrap ./configure --enable-sysfsgpio --enable-bcm2835gpio --prefix=/home/pi/openocd/install make make install Configurare OpenOCD \u00b6 Crea un file di configurazione OpenOCD: nano ~/openocd/openocd.cfg Utilizzare una configurazione simile alla seguente: # Uses RPi pins: GPIO25 for SWDCLK, GPIO24 for SWDIO, GPIO18 for nRST source [find interface/raspberrypi2-native.cfg] bcm2835gpio_swd_nums 25 24 bcm2835gpio_srst_num 18 transport select swd # Use hardware reset wire for chip resets reset_config srst_only adapter_nsrst_delay 100 adapter_nsrst_assert_width 100 # Specify the chip type source [find target/atsame5x.cfg] # Set the adapter speed adapter_khz 40 # Connect to chip init targets reset halt Collega il Raspberry Pi al chip di destinazione \u00b6 Spegni sia il Raspberry Pi che il chip di destinazione prima del cablaggio! Verificare che il chip di destinazione utilizzi 3,3 V prima di connettersi a un Raspberry Pi! Collega GND, SWDCLK, SWDIO e RST sul chip di destinazione rispettivamente a GND, GPIO25, GPIO24 e GPIO18 sul Raspberry Pi. Quindi accendi il Raspberry Pi e fornisci alimentazione al chip di destinazione. Eseguire OpenOCD \u00b6 Esegui OpenOCD: cd ~/openocd/ sudo ~/openocd/install/bin/openocd -f ~/openocd/openocd.cfg Quanto sopra dovrebbe far s\u00ec che OpenOCD emetta alcuni messaggi di testo e quindi attenda (non dovrebbe tornare immediatamente al prompt della shell Unix). Se OpenOCD termina da solo o se continua a emettere messaggi di testo, ricontrolla il cablaggio. Una volta che OpenOCD \u00e8 in esecuzione ed \u00e8 stabile, \u00e8 possibile inviargli comandi tramite telnet. Apri un'altra sessione ssh ed esegui quanto segue: telnet 127.0.0.1 4444 (Si pu\u00f2 uscire da telnet premendo ctrl+] e quindi eseguendo il comando \"quit\".) OpenOCD e gdb \u00b6 \u00c8 possibile utilizzare OpenOCD con gdb per eseguire il debug di Klipper. I seguenti comandi presuppongono che uno stia eseguendo gdb su una macchina di classe desktop. Aggiungi quanto segue al file di configurazione di OpenOCD: bindto 0.0.0.0 gdb_port 44444 Riavvia OpenOCD sul Raspberry Pi e quindi esegui il seguente comando Unix sul computer desktop: cd /path/to/klipper/ gdb out/klipper.elf All'interno di gdb esegui: target remote octopi:44444 (Sostituisci \"octopi\" con il nome host del Raspberry Pi.) Una volta che gdb \u00e8 in esecuzione, \u00e8 possibile impostare punti di interruzione e ispezionare i registri.","title":"Bootloader"},{"location":"Bootloaders.html#bootloader","text":"Questo documento fornisce informazioni sui bootloader comuni scoperti sui microcontrollori che sono supportati da Klipper. Il bootloader \u00e8 un software di terze parti che viene eseguito sul microcontrollore quando viene acceso per la prima volta. Viene generalmente utilizzato per eseguire il flashing di una nuova applicazione (ad es. Klipper) sul microcontrollore senza richiedere hardware specializzato. Sfortunatamente, non esiste uno standard a livello di settore per il flashing di un microcontrollore, n\u00e9 esiste un bootloader standard che funzioni su tutti i microcontrollori. Peggio ancora, \u00e8 comune che ogni bootloader richieda una serie di passaggi diversa per eseguire il flashing di un'applicazione. Se si pu\u00f2 eseguire il flashing di un bootloader su un microcontrollore, generalmente si pu\u00f2 anche utilizzare quel meccanismo per eseguire il flashing di un'applicazione, ma \u00e8 necessario prestare attenzione quando si esegue questa operazione poich\u00e9 si potrebbe rimuovere inavvertitamente il bootloader. Al contrario, un bootloader generalmente consentir\u00e0 solo a un utente di eseguire il flashing di un'applicazione. Si consiglia pertanto di utilizzare un bootloader per eseguire il flashing di un'applicazione, ove possibile. Questo documento tenta di descrivere i bootloader comuni, i passaggi necessari per eseguire il flashing di un bootloader e i passaggi necessari per eseguire il flashing di un'applicazione. Questo documento non \u00e8 un riferimento autorevole; \u00e8 inteso come una raccolta di informazioni utili che gli sviluppatori di Klipper hanno accumulato.","title":"Bootloader"},{"location":"Bootloaders.html#microcontrollori-avr","text":"In generale, il progetto Arduino \u00e8 un buon riferimento per bootloader e procedure di flashing sui microcontrollori Atmel Atmega a 8 bit. In particolare, il file \"boards.txt\": https://github.com/arduino/Arduino/blob/1.8.5/hardware/arduino/avr/boards.txt \u00e8 un utile riferimento. Per eseguire il flashing di un bootloader, i chip AVR richiedono uno strumento di flashing hardware esterno (che comunica con il chip tramite SPI). Questo strumento pu\u00f2 essere acquistato (ad esempio, eseguire una ricerca sul Web per \"avr isp\", \"arduino isp\" o \"usb tiny isp\"). \u00c8 anche possibile utilizzare un altro Arduino o Raspberry Pi per eseguire il flashing di un bootloader AVR (ad esempio, eseguire una ricerca sul Web per \"programmare un avr utilizzando raspberry pi\"). Gli esempi seguenti sono scritti presupponendo che sia in uso un dispositivo di tipo \"AVR ISP Mk2\". Il programma \"avrdude\" \u00e8 lo strumento pi\u00f9 comune utilizzato per eseguire il flashing dei chip atmega (sia flash del bootloader che flash dell'applicazione).","title":"Microcontrollori AVR"},{"location":"Bootloaders.html#atmega2560","text":"Questo chip si trova in genere nell'\"Arduino Mega\" ed \u00e8 molto comune nelle schede per stampanti 3D. Per eseguire il flashing del bootloader stesso usa qualcosa come: wget 'https://github.com/arduino/Arduino/raw/1.8.5/hardware/arduino/avr/bootloaders/stk500v2/stk500boot_v2_mega2560.hex' avrdude -cavrispv2 -patmega2560 -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0xFD:m -U hfuse:w:0xD8:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega2560 -P/dev/ttyACM0 -b115200 -U flash:w:stk500boot_v2_mega2560.hex avrdude -cavrispv2 -patmega2560 -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: avrdude -cwiring -patmega2560 -P/dev/ttyACM0 -b115200 -D -Uflash:w:out/klipper.elf.hex:i","title":"Atmega2560"},{"location":"Bootloaders.html#atmega1280","text":"Questo chip si trova in genere nelle prime versioni di \"Arduino Mega\". Per eseguire il flashing del bootloader stesso usa qualcosa come: wget 'https://github.com/arduino/Arduino/raw/1.8.5/hardware/arduino/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1280.hex' avrdude -cavrispv2 -patmega1280 -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0xF5:m -U hfuse:w:0xDA:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega1280 -P/dev/ttyACM0 -b115200 -U flash:w:ATmegaBOOT_168_atmega1280.hex avrdude -cavrispv2 -patmega1280 -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: avrdude -carduino -patmega1280 -P/dev/ttyACM0 -b57600 -D -Uflash:w:out/klipper.elf.hex:i","title":"Atmega1280"},{"location":"Bootloaders.html#atmega1284p","text":"Questo chip si trova comunemente nelle schede per stampanti 3D in stile \"Melzi\". Per eseguire il flashing del bootloader stesso usa qualcosa come: wget 'https://github.com/Lauszus/Sanguino/raw/1.0.2/bootloaders/optiboot/optiboot_atmega1284p.hex' avrdude -cavrispv2 -patmega1284p -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0xFD:m -U hfuse:w:0xDE:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega1284p -P/dev/ttyACM0 -b115200 -U flash:w:optiboot_atmega1284p.hex avrdude -cavrispv2 -patmega1284p -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: avrdude -carduino -patmega1284p -P/dev/ttyACM0 -b115200 -D -Uflash:w:out/klipper.elf.hex:i Si noti che un certo numero di schede in stile \"Melzi\" sono precaricate con un bootloader che utilizza una velocit\u00e0 di trasmissione di 57600 baud. In questo caso, per eseguire il flashing di un'applicazione utilizzare invece qualcosa di simile: avrdude -carduino -patmega1284p -P/dev/ttyACM0 -b57600 -D -Uflash:w:out/klipper.elf.hex:i","title":"Atmega1284p"},{"location":"Bootloaders.html#at90usb1286","text":"Questo documento non copre il metodo per eseguire il flashing di un bootloader su At90usb1286 n\u00e9 copre il flashing di applicazioni generali su questo dispositivo. Il dispositivo Teensy++ di pjrc.com viene fornito con un bootloader proprietario. Richiede uno strumento di flashing personalizzato da https://github.com/PaulStoffregen/teensy_loader_cli . Si pu\u00f2 eseguire il flashing di un'applicazione usando qualcosa come: teensy_loader_cli --mcu=at90usb1286 out/klipper.elf.hex -v","title":"At90usb1286"},{"location":"Bootloaders.html#atmega168","text":"L'atmega168 ha uno spazio flash limitato. Se si utilizza un bootloader, si consiglia di utilizzare il bootloader Optiboot. Per eseguire il flashing di quel bootloader usa qualcosa come: wget 'https://github.com/arduino/Arduino/raw/1.8.5/hardware/arduino/avr/bootloaders/optiboot/optiboot_atmega168.hex' avrdude -cavrispv2 -patmega168 -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0x04:m -U hfuse:w:0xDD:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega168 -P/dev/ttyACM0 -b115200 -U flash:w:optiboot_atmega168.hex avrdude -cavrispv2 -patmega168 -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Per eseguire il flashing di un'applicazione tramite il bootloader Optiboot, utilizzare qualcosa come: avrdude -carduino -patmega168 -P/dev/ttyACM0 -b115200 -D -Uflash:w:out/klipper.elf.hex:i","title":"Atmega168"},{"location":"Bootloaders.html#microcontrollori-sam3-arduino-due","text":"Non \u00e8 comune utilizzare un bootloader con l'mcu SAM3. Il chip stesso ha una ROM che permette di programmare il flash da porta seriale 3.3V o da USB. Per abilitare la ROM, il pin \"erase\" viene tenuto alto durante un reset, che cancella il contenuto della flash e fa funzionare la ROM. Su un Arduino Due, questa sequenza pu\u00f2 essere realizzata impostando un baud rate di 1200 sulla \"porta usb di programmazione\" (la porta USB pi\u00f9 vicina all'alimentatore). Il codice in https://github.com/shumatech/BOSSA pu\u00f2 essere utilizzato per programmare il SAM3. Si consiglia di utilizzare la versione 1.9 o successiva. Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: bossac -U -p /dev/ttyACM0 -a -e -w out/klipper.bin -v -b bossac -U -p /dev/ttyACM0 -R","title":"Microcontrollori SAM3 (Arduino Due)"},{"location":"Bootloaders.html#microcontrollori-sam4-duet-wifi","text":"Non \u00e8 comune utilizzare un bootloader con l'mcu SAM4. Il chip stesso ha una ROM che permette di programmare la memoria flash da porta seriale 3.3V o da USB. Per abilitare la ROM, il pin \"erase\" viene tenuto alto durante un reset, che cancella il contenuto della memoria flash e fa funzionare la ROM. Il codice in https://github.com/shumatech/BOSSA pu\u00f2 essere utilizzato per programmare il SAM4. \u00c8 necessario utilizzare la versione 1.8.0 o successiva. Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: bossac --port=/dev/ttyACM0 -b -U -e -w -v -R out/klipper.bin","title":"Microcontrollori SAM4 (Duet Wifi)"},{"location":"Bootloaders.html#microcontrollori-samd21-arduino-zero","text":"Il bootloader SAMD21 viene caricato in memoria flashing tramite l'interfaccia ARM Serial Wire Debug (SWD). Questo viene fatto comunemente con un dongle hardware SWD dedicato. In alternativa, \u00e8 possibile utilizzare un Raspberry Pi con OpenOCD . Per eseguire il flashing di un bootloader con OpenOCD, utilizzare la seguente configurazione del chip: source [find target/at91samdXX.cfg] Ottieni un bootloader, ad esempio: wget 'https://github.com/arduino/ArduinoCore-samd/raw/1.8.3/bootloaders/zero/samd21_sam_ba.bin' Carica la memoria Flash con comandi OpenOCD simili a: at91samd bootloader 0 program samd21_sam_ba.bin verify Il bootloader pi\u00f9 comune sul SAMD21 \u00e8 quello che si trova sull' \"Arduino Zero\". Utilizza un bootloader da 8KiB (l'applicazione deve essere compilata con un indirizzo iniziale di 8KiB). Si pu\u00f2 entrare in questo bootloader facendo doppio clic sul pulsante di ripristino. Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: bossac -U -p /dev/ttyACM0 --offset=0x2000 -w out/klipper.bin -v -b -R Al contrario, \"Arduino M0\" utilizza un bootloader da 16 KiB (l'applicazione deve essere compilata con un indirizzo iniziale di 16 KiB). Per eseguire il flashing di un'applicazione su questo bootloader, ripristinare il microcontrollore ed eseguire il comando flash entro i primi secondi dall'avvio, qualcosa del tipo: avrdude -c stk500v2 -p atmega2560 -P /dev/ttyACM0 -u -Uflash:w:out/klipper.elf.hex:i","title":"Microcontrollori SAMD21 (Arduino Zero)"},{"location":"Bootloaders.html#microcontrollori-samd51-adafruit-metro-m4-e-simili","text":"Come il SAMD21, il bootloader SAMD51 viene eseguito il flashing tramite l'interfaccia ARM Serial Wire Debug (SWD). Per eseguire il flashing di un bootloader con OpenOCD su un Raspberry Pi utilizzare la seguente configurazione del chip: source [find target/atsame5x.cfg] Ottieni un bootloader: diversi bootloader sono disponibili da https://github.com/adafruit/uf2-samdx1/releases/latest . Per esempio: wget 'https://github.com/adafruit/uf2-samdx1/releases/download/v3.7.0/bootloader-itsybitsy_m4-v3.7.0.bin' Carica la memoria Flash con comandi OpenOCD simili a: at91samd bootloader 0 program bootloader-itsybitsy_m4-v3.7.0.bin verify at91samd bootloader 16384 Il SAMD51 utilizza un bootloader da 16 KiB (l'applicazione deve essere compilata con un indirizzo iniziale di 16 KiB). Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: bossac -U -p /dev/ttyACM0 --offset=0x4000 -w out/klipper.bin -v -b -R","title":"Microcontrollori SAMD51 (Adafruit Metro-M4 e simili)"},{"location":"Bootloaders.html#microcontrollori-stm32f103-dispositivi-blue-pill","text":"I dispositivi STM32F103 dispongono di una ROM che pu\u00f2 eseguire il flashing di un bootloader o di un'applicazione tramite seriale a 3,3 V. In genere si collegano i pin PA10 (MCU Rx) e PA9 (MCU Tx) a un adattatore UART da 3,3 V. Per accedere alla ROM, \u00e8 necessario collegare il pin \"boot 0\" in alto e il pin \"boot 1\" in basso, quindi ripristinare il dispositivo. Il pacchetto \"stm32flash\" pu\u00f2 quindi essere utilizzato per eseguire il flashing del dispositivo utilizzando qualcosa come: stm32flash -w out/klipper.bin -v -g 0 /dev/ttyAMA0 Si noti che se si utilizza un Raspberry Pi per la seriale da 3,3 V, il protocollo stm32flash utilizza una modalit\u00e0 di parit\u00e0 seriale che il \"mini UART\" di Raspberry Pi non supporta. Vedere https://www.raspberrypi.com/documentation/computers/configuration.html#configuring-uarts per i dettagli sull'abilitazione dell'uart completo sui pin GPIO di Raspberry Pi. Dopo aver caricato la memoria flash, imposta \"boot 0\" e \"boot 1\" su basso in modo che in futuro ripristini l'avvio da flash.","title":"Microcontrollori STM32F103 (dispositivi Blue Pill)"},{"location":"Bootloaders.html#stm32f103-con-bootloader-stm32duino","text":"Il progetto \"stm32duino\" ha un bootloader compatibile con USB - vedere: https://github.com/rogerclarkmelbourne/STM32duino-bootloader Questo bootloader pu\u00f2 essere flashato tramite seriale 3.3V con qualcosa come: wget 'https://github.com/rogerclarkmelbourne/STM32duino-bootloader/raw/master/binaries/generic_boot20_pc13.bin' stm32flash -w generic_boot20_pc13.bin -v -g 0 /dev/ttyAMA0 Questo bootloader utilizza 8KiB di spazio flash (l'applicazione deve essere compilata con un indirizzo iniziale di 8KiB). Caricare in memoria flash un'applicazione con qualcosa come: dfu-util -d 1eaf:0003 -a 2 -R -D out/klipper.bin Il bootloader in genere viene eseguito solo per un breve periodo dopo l'avvio. Potrebbe essere necessario sincronizzare il comando sopra in modo che venga eseguito mentre il bootloader \u00e8 ancora attivo (il bootloader far\u00e0 lampeggiare un led della scheda mentre \u00e8 in esecuzione). In alternativa, imposta il pin \"boot 0\" su basso e il pin \"boot 1\" su alto per rimanere nel bootloader dopo un ripristino.","title":"STM32F103 con bootloader stm32duino"},{"location":"Bootloaders.html#stm32f103-con-bootloader-hid","text":"Il bootloader HID \u00e8 un bootloader compatto e senza driver in grado di eseguire il flashing attraverso USB. \u00c8 inoltre disponibile un fork con build specifiche per SKR Mini E3 1.2 . Per schede STM32F103 generiche come la blue pill \u00e8 possibile eseguire il flashing del bootloader tramite seriale 3.3v utilizzando stm32flash come indicato nella sezione stm32duino sopra, sostituendo il nome del file con il binario del bootloader desiderato (es: hid_generic_pc13.bin per blue pill ). Non \u00e8 possibile utilizzare stm32flash per SKR Mini E3 poich\u00e9 il pin boot0 \u00e8 collegato direttamente a terra e non disponibile tramite pin header. Si consiglia di utilizzare un STLink V2 con STM32Cubeprogrammer per eseguire il flashing del bootloader. Se non hai accesso a un STLink \u00e8 anche possibile utilizzare un Raspberry Pi e OpenOCD con la seguente configurazione del chip: source [find target/stm32f1x.cfg] Se lo desideri puoi fare un backup della flash corrente con il seguente comando. Tieni presente che il completamento potrebbe richiedere del tempo: flash read_bank 0 btt_skr_mini_e3_backup.bin infine, puoi eseguire il flashing con comandi simili a: stm32f1x mass_erase 0 program hid_btt_skr_mini_e3.bin verify 0x08000000 NOTE: L'esempio sopra cancella il chip, quindi programma il bootloader. Indipendentemente dal metodo scelto per eseguire il flashing, si consiglia di cancellare il chip prima del flashing. Prima di eseguire il flashing di SKR Mini E3 con questo bootloader, dovresti essere consapevole che non sarai pi\u00f9 in grado di aggiornare il firmware tramite la sdcard. You may need to hold down the reset button on the board while launching OpenOCD. It should display something like: Open On-Chip Debugger 0.10.0+dev-01204-gc60252ac-dirty (2020-04-27-16:00) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html DEPRECATED! use 'adapter speed' not 'adapter_khz' Info : BCM2835 GPIO JTAG/SWD bitbang driver Info : JTAG and SWD modes enabled Info : clock speed 40 kHz Info : SWD DPIDR 0x1ba01477 Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints Info : stm32f1x.cpu: external reset detected Info : starting gdb server for stm32f1x.cpu on 3333 Info : Listening on port 3333 for gdb connections Dopodich\u00e9 puoi rilasciare il pulsante di reset. Questo bootloader richiede 2KiB di spazio flash (l'applicazione deve essere compilata con un indirizzo iniziale di 2KiB). Il programma hid-flash viene utilizzato per caricare un file binario sul bootloader. \u00c8 possibile installare questo software con i seguenti comandi: sudo apt install libusb-1.0 cd ~/klipper/lib/hidflash make Se il bootloader \u00e8 in esecuzione, puoi eseguire il flash con qualcosa del tipo: ~/klipper/lib/hidflash/hid-flash ~/klipper/out/klipper.bin in alternativa, puoi usare make flash per flashare klipper direttamente: make flash FLASH_DEVICE=1209:BEBA O se klipper \u00e8 stato precedentemente flashato: make flash FLASH_DEVICE=/dev/ttyACM0 Potrebbe essere necessario inserire manualmente il bootloader, questo pu\u00f2 essere fatto impostando \"boot 0\" basso e \"boot 1\" alto. Su SKR Mini E3 \"Boot 1\" non \u00e8 disponibile, quindi pu\u00f2 essere fatto impostando il pin PA2 basso se hai flashato \"hid_btt_skr_mini_e3.bin\". Questo pin \u00e8 etichettato \"TX0\" sull'intestazione TFT nel documento \"PIN\" di SKR Mini E3. C'\u00e8 un pin di massa accanto a PA2 che puoi usare per abbassare PA2.","title":"STM32F103 con bootloader HID"},{"location":"Bootloaders.html#stm32f103stm32f072-con-bootloader-msc","text":"Il bootloader MSC \u00e8 un bootloader senza driver in grado di eseguire il flashing su USB. \u00c8 possibile eseguire il flashing del bootloader tramite seriale 3.3v usando stm32flash come indicato nella sezione stm32duino sopra, sostituendo il nome del file con il file binario del bootloader MSC desiderato (es: MSCboot-Bluepill.bin per la Blue pill). Per le schede STM32F072 \u00e8 anche possibile eseguire il flashing del bootloader su USB (tramite DFU) con qualcosa del tipo: dfu-util -d 0483:df11 -a 0 -R -D MSCboot-STM32F072.bin -s0x08000000:leave Questo bootloader utilizza 8KiB o 16KiB di spazio flash, vedere la descrizione del bootloader (l'applicazione deve essere compilata con l'indirizzo iniziale corrispondente). Il bootloader pu\u00f2 essere attivato premendo due volte il pulsante di reset della scheda. Non appena il bootloader viene attivato, la scheda appare come una chiavetta USB su cui \u00e8 possibile copiare il file klipper.bin.","title":"STM32F103/STM32F072 con bootloader MSC"},{"location":"Bootloaders.html#stm32f103stm32f0x2-con-bootloader-canboot","text":"Il bootloader CanBoot fornisce un'opzione per caricare il firmware Klipper su CANBUS. Il bootloader stesso \u00e8 derivato dal codice sorgente di Klipper. Attualmente CanBoot supporta i modelli STM32F103, STM32F042 e STM32F072. Si consiglia di utilizzare un programmatore ST-Link per eseguire il flashing di CanBoot, tuttavia dovrebbe essere possibile eseguire il flashing utilizzando stm32flash sui dispositivi STM32F103 e dfu-util sui dispositivi STM32F042/STM32F072. Vedere le sezioni precedenti di questo documento per istruzioni su questi metodi di flashing, sostituendo canboot.bin per il nome del file ove appropriato. Il link al repository CanBoot collegato sopra fornisce istruzioni per la creazione del bootloader. La prima volta che CanBoot \u00e8 stato flashato, dovrebbe rilevare che non \u00e8 presente alcuna applicazione e accedere al bootloader. Se ci\u00f2 non accade \u00e8 possibile entrare nel bootloader premendo due volte di seguito il pulsante di reset. L'utilit\u00e0 flash_can.py fornita nella cartella lib/canboot pu\u00f2 essere utilizzata per caricare il firmware di Klipper. E' necessario l'UUID del dispositivo per eseguire il flashing. Se non si dispone di un UUID \u00e8 possibile interrogare i nodi che attualmente eseguono il bootloader: python3 flash_can.py -q Ci\u00f2 restituir\u00e0 gli UUID per tutti i nodi collegati non attualmente assegnati a un UUID. Questo dovrebbe includere tutti i nodi attualmente nel bootloader. Una volta che hai un UUID, puoi caricare il firmware con il seguente comando: python3 flash_can.py -i can0 -f ~/klipper/out/klipper.bin -u aabbccddeeff Dove aabbccddeeff \u00e8 sostituito dal tuo UUID. Nota che le opzioni -i e -f possono essere omesse, per impostazione predefinita sono rispettivamente can0 e ~/klipper/out/klipper.bin . Quando crei Klipper per l'uso con CanBoot, seleziona l'opzione Bootloader da 8 KiB.","title":"STM32F103/STM32F0x2 con bootloader CanBoot"},{"location":"Bootloaders.html#microcontrollori-stm32f4-skr-pro-11","text":"I microcontrollori STM32F4 sono dotati di un bootloader di sistema integrato in grado di eseguire il flashing su USB (tramite DFU), seriale 3.3v e vari altri metodi (consultare il documento STM AN2606 per ulteriori informazioni). Alcune schede STM32F4, come SKR Pro 1.1, non sono in grado di accedere al bootloader DFU. Il bootloader HID \u00e8 disponibile per schede basate su STM32F405/407 nel caso in cui l'utente preferisca eseguire il flashing su USB anzich\u00e9 utilizzare la scheda SD. Tieni presente che potrebbe essere necessario configurare e creare una versione specifica per la tua scheda, una build per SKR Pro 1.1 \u00e8 disponibile qui . A meno che la tua scheda non sia compatibile con DFU, il metodo di flashing pi\u00f9 accessibile \u00e8 probabilmente tramite seriale 3.3v, che segue la stessa procedura di flash dell'STM32F103 usando stm32flash . Per esempio: wget https://github.com/Arksine/STM32_HID_Bootloader/releases/download/v0.5-beta/hid_bootloader_SKR_PRO.bin stm32flash -w hid_bootloader_SKR_PRO.bin -v -g 0 /dev/ttyAMA0 Questo bootloader richiede 16Kib di spazio flash sull'STM32F4 (l'applicazione deve essere compilata con un indirizzo iniziale di 16KiB). Come con l'STM32F1, l'STM32F4 utilizza lo strumento hid-flash per caricare i file binari nell'MCU. Consulta le istruzioni sopra per i dettagli su come creare e utilizzare hid-flash. Potrebbe essere necessario inserire manualmente il bootloader, questo pu\u00f2 essere fatto impostando \"boot 0\" basso, \"boot 1\" alto e collegando il dispositivo. Al termine della programmazione, scollegare il dispositivo e impostare \"boot 1\" su basso in modo che l'applicazione venga caricata.","title":"Microcontrollori STM32F4 (SKR Pro 1.1)"},{"location":"Bootloaders.html#microcontrollori-lpc176x-smoothieboards","text":"Questo documento non descrive il metodo per eseguire il flashing di un bootloader stesso - vedere: http://smoothieware.org/flashing-the-bootloader per ulteriori informazioni su questo argomento. \u00c8 comune che per le Smoothieboard venga fornito con un bootloader da: https://github.com/triffid/LPC17xx-DFU-Bootloader . Quando si utilizza questo bootloader, l'applicazione deve essere compilata con un indirizzo iniziale di 16 KiB. Il modo pi\u00f9 semplice per eseguire il flashing di un'applicazione con questo bootloader \u00e8 copiare il file dell'applicazione (ad es. out/klipper.bin ) in un file denominato firmware.bin su una scheda SD, quindi riavviare il microcontrollore con quella scheda SD.","title":"Microcontrollori LPC176x (Smoothieboards)"},{"location":"Bootloaders.html#eseguire-openocd-su-raspberry-pi","text":"OpenOCD \u00e8 un pacchetto software in grado di eseguire il flashing e il debug di chip di basso livello. Pu\u00f2 utilizzare i pin GPIO su un Raspberry Pi per comunicare con una variet\u00e0 di chip ARM. Questa sezione descrive come installare e avviare OpenOCD. \u00c8 derivato dalle istruzioni su: https://learn.adafruit.com/programming-microcontrollers-using-openocd-on-raspberry-pi Inizia scaricando e compilando il software (ogni passaggio pu\u00f2 richiedere diversi minuti e il passaggio \"make\" pu\u00f2 richiedere pi\u00f9 di 30 minuti): sudo apt-get update sudo apt-get install autoconf libtool telnet mkdir ~/openocd cd ~/openocd/ git clone http://openocd.zylin.com/openocd cd openocd ./bootstrap ./configure --enable-sysfsgpio --enable-bcm2835gpio --prefix=/home/pi/openocd/install make make install","title":"Eseguire OpenOCD su Raspberry PI"},{"location":"Bootloaders.html#configurare-openocd","text":"Crea un file di configurazione OpenOCD: nano ~/openocd/openocd.cfg Utilizzare una configurazione simile alla seguente: # Uses RPi pins: GPIO25 for SWDCLK, GPIO24 for SWDIO, GPIO18 for nRST source [find interface/raspberrypi2-native.cfg] bcm2835gpio_swd_nums 25 24 bcm2835gpio_srst_num 18 transport select swd # Use hardware reset wire for chip resets reset_config srst_only adapter_nsrst_delay 100 adapter_nsrst_assert_width 100 # Specify the chip type source [find target/atsame5x.cfg] # Set the adapter speed adapter_khz 40 # Connect to chip init targets reset halt","title":"Configurare OpenOCD"},{"location":"Bootloaders.html#collega-il-raspberry-pi-al-chip-di-destinazione","text":"Spegni sia il Raspberry Pi che il chip di destinazione prima del cablaggio! Verificare che il chip di destinazione utilizzi 3,3 V prima di connettersi a un Raspberry Pi! Collega GND, SWDCLK, SWDIO e RST sul chip di destinazione rispettivamente a GND, GPIO25, GPIO24 e GPIO18 sul Raspberry Pi. Quindi accendi il Raspberry Pi e fornisci alimentazione al chip di destinazione.","title":"Collega il Raspberry Pi al chip di destinazione"},{"location":"Bootloaders.html#eseguire-openocd","text":"Esegui OpenOCD: cd ~/openocd/ sudo ~/openocd/install/bin/openocd -f ~/openocd/openocd.cfg Quanto sopra dovrebbe far s\u00ec che OpenOCD emetta alcuni messaggi di testo e quindi attenda (non dovrebbe tornare immediatamente al prompt della shell Unix). Se OpenOCD termina da solo o se continua a emettere messaggi di testo, ricontrolla il cablaggio. Una volta che OpenOCD \u00e8 in esecuzione ed \u00e8 stabile, \u00e8 possibile inviargli comandi tramite telnet. Apri un'altra sessione ssh ed esegui quanto segue: telnet 127.0.0.1 4444 (Si pu\u00f2 uscire da telnet premendo ctrl+] e quindi eseguendo il comando \"quit\".)","title":"Eseguire OpenOCD"},{"location":"Bootloaders.html#openocd-e-gdb","text":"\u00c8 possibile utilizzare OpenOCD con gdb per eseguire il debug di Klipper. I seguenti comandi presuppongono che uno stia eseguendo gdb su una macchina di classe desktop. Aggiungi quanto segue al file di configurazione di OpenOCD: bindto 0.0.0.0 gdb_port 44444 Riavvia OpenOCD sul Raspberry Pi e quindi esegui il seguente comando Unix sul computer desktop: cd /path/to/klipper/ gdb out/klipper.elf All'interno di gdb esegui: target remote octopi:44444 (Sostituisci \"octopi\" con il nome host del Raspberry Pi.) Una volta che gdb \u00e8 in esecuzione, \u00e8 possibile impostare punti di interruzione e ispezionare i registri.","title":"OpenOCD e gdb"},{"location":"CANBUS.html","text":"CANBUS \u00b6 Questo documento descrive il supporto del CAN bus di Klipper. Hardware del dispositivo \u00b6 Klipper currently supports CAN on stm32, same5x, and rp2040 chips. In addition, the micro-controller chip must be on a board that has a CAN transceiver. Per compilare per CAN, eseguire make menuconfig e selezionare \"CAN bus\" come interfaccia di comunicazione. Infine, compila il codice del microcontrollore e flashalo sulla scheda di destinazione. Hardware Host \u00b6 Per utilizzare un bus CAN, \u00e8 necessario disporre di un adattatore sul host. Attualmente ci sono due opzioni comuni: Usa un Waveshare Raspberry Pi CAN o uno dei suoi tanti cloni. Utilizzare un adattatore CAN USB (ad esempio https://hacker-gadgets.com/product/cantact-usb-can-adapter/ ). Sono disponibili molti adattatori diversi da USB a CAN: quando ne scegli uno, ti consigliamo di verificare che possa eseguire il candlelight firmware . (Sfortunatamente, abbiamo riscontrato che alcuni adattatori USB eseguono firmware difettoso e sono bloccati, quindi verifica prima dell'acquisto.) \u00c8 inoltre necessario configurare il sistema operativo host per utilizzare l'adattatore. Questo viene in genere fatto creando un nuovo file chiamato /etc/network/interfaces.d/can0 con il seguente contenuto: auto can0 iface can0 can static bitrate 500000 up ifconfig $IFACE txqueuelen 128 Nota che il \"Raspberry Pi CAN hat\" richiede anche modifiche a config.txt . Resistori di terminazione \u00b6 Un bus CAN dovrebbe avere due resistori da 120 ohm tra i cavi CANH e CANL. Idealmente, un resistore situato a ciascuna estremit\u00e0 del bus. Si noti che alcuni dispositivi hanno un resistore integrato da 120 ohm (ad esempio, il \"Waveshare Raspberry Pi CAN\" ha un resistore saldato che non pu\u00f2 essere rimosso facilmente). Alcuni dispositivi non includono affatto un resistore. Altri dispositivi hanno un meccanismo per selezionare il resistore (in genere collegando un \"ponticello jumper\"). Assicurati di controllare gli schemi di tutti i dispositivi sul bus CAN per verificare che ci siano due e solo due resistori da 120 Ohm sul bus. Per verificare che i resistori siano corretti, \u00e8 possibile rimuovere l'alimentazione alla stampante e utilizzare un multimetro per controllare la resistenza tra i cavi CNH e CANL: dovrebbe riportare ~60 ohm su un bus CAN cablato correttamente. Trovare canbus_uuid per nuovi microcontrollori \u00b6 A ogni microcontrollore sul bus CAN viene assegnato un ID univoco basato sull'identificatore del chip di fabbrica codificato in ciascun microcontrollore. Per trovare l'ID di ciascun dispositivo del microcontrollore, assicurati che l'hardware sia alimentato e cablato correttamente, quindi esegui: ~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0 Se vengono rilevati dispositivi CAN non inizializzati, il comando precedente riporter\u00e0 righe come le seguenti: Found canbus_uuid=11aa22bb33cc, Application: Klipper Ogni dispositivo avr\u00e0 un identificatore univoco. Nell'esempio sopra, 11aa22bb33cc \u00e8 il \"canbus_uuid\" del microcontrollore. Nota che lo strumento canbus_query.py riporter\u00e0 solo i dispositivi non inizializzati - se Klipper (o uno strumento simile) configura il dispositivo, non apparir\u00e0 pi\u00f9 nell'elenco. Configurare Klipper \u00b6 Aggiorna Klipper configurazione mcu per utilizzare il bus CAN per comunicare con il dispositivo, ad esempio: [mcu my_can_mcu] canbus_uuid: 11aa22bb33cc Modalit\u00e0 bridge da USB a CAN bus \u00b6 Alcuni microcontrollori supportano la selezione della modalit\u00e0 \"USB to CAN bus bridge\" durante \"make menuconfig\". Questa modalit\u00e0 pu\u00f2 consentire di utilizzare un microcontrollore sia come \"adattatore bus da USB a CAN\" che come nodo Klipper. Quando Klipper utilizza questa modalit\u00e0, il microcontrollore appare come un \"adattatore bus CAN USB\" sotto Linux. Lo stesso \"Klipper bridge mcu\" apparir\u00e0 come se fosse su questo bus CAN - pu\u00f2 essere identificato tramite canbus_query.py e configurato come altri nodi Klipper del bus CAN. Apparir\u00e0 insieme ad altri dispositivi che sono effettivamente sul bus CAN. Alcune note importanti quando si utilizza questa modalit\u00e0: Il \"bridge mcu\" non \u00e8 effettivamente sul bus CAN. I messaggi in entrata e in uscita non consumano larghezza di banda sul bus CAN. L'mcu non pu\u00f2 essere visto da altri adattatori che potrebbero essere sul bus CAN. \u00c8 necessario configurare l'interfaccia can0 (o simile) in Linux per comunicare con il bus. Tuttavia, Klipper ignora la velocit\u00e0 del bus CAN di Linux e le opzioni di temporizzazione del bus CAN. Attualmente, la frequenza del bus CAN viene specificata durante \"make menuconfig\" e la velocit\u00e0 del bus specificata in Linux viene ignorata. Ogni volta che il \"bridge mcu\" viene ripristinato, Linux disabiliter\u00e0 l'interfaccia can0 corrispondente. Per garantire una corretta gestione dei comandi FIRMWARE_RESTART e RESTART, si consiglia di sostituire auto con allow-hotplug nel file /etc/network/interfaces.d/can0 . Per esempio: allow-hotplug can0 iface can0 can static bitrate 500000 up ifconfig $IFACE txqueuelen 128","title":"CANBUS"},{"location":"CANBUS.html#canbus","text":"Questo documento descrive il supporto del CAN bus di Klipper.","title":"CANBUS"},{"location":"CANBUS.html#hardware-del-dispositivo","text":"Klipper currently supports CAN on stm32, same5x, and rp2040 chips. In addition, the micro-controller chip must be on a board that has a CAN transceiver. Per compilare per CAN, eseguire make menuconfig e selezionare \"CAN bus\" come interfaccia di comunicazione. Infine, compila il codice del microcontrollore e flashalo sulla scheda di destinazione.","title":"Hardware del dispositivo"},{"location":"CANBUS.html#hardware-host","text":"Per utilizzare un bus CAN, \u00e8 necessario disporre di un adattatore sul host. Attualmente ci sono due opzioni comuni: Usa un Waveshare Raspberry Pi CAN o uno dei suoi tanti cloni. Utilizzare un adattatore CAN USB (ad esempio https://hacker-gadgets.com/product/cantact-usb-can-adapter/ ). Sono disponibili molti adattatori diversi da USB a CAN: quando ne scegli uno, ti consigliamo di verificare che possa eseguire il candlelight firmware . (Sfortunatamente, abbiamo riscontrato che alcuni adattatori USB eseguono firmware difettoso e sono bloccati, quindi verifica prima dell'acquisto.) \u00c8 inoltre necessario configurare il sistema operativo host per utilizzare l'adattatore. Questo viene in genere fatto creando un nuovo file chiamato /etc/network/interfaces.d/can0 con il seguente contenuto: auto can0 iface can0 can static bitrate 500000 up ifconfig $IFACE txqueuelen 128 Nota che il \"Raspberry Pi CAN hat\" richiede anche modifiche a config.txt .","title":"Hardware Host"},{"location":"CANBUS.html#resistori-di-terminazione","text":"Un bus CAN dovrebbe avere due resistori da 120 ohm tra i cavi CANH e CANL. Idealmente, un resistore situato a ciascuna estremit\u00e0 del bus. Si noti che alcuni dispositivi hanno un resistore integrato da 120 ohm (ad esempio, il \"Waveshare Raspberry Pi CAN\" ha un resistore saldato che non pu\u00f2 essere rimosso facilmente). Alcuni dispositivi non includono affatto un resistore. Altri dispositivi hanno un meccanismo per selezionare il resistore (in genere collegando un \"ponticello jumper\"). Assicurati di controllare gli schemi di tutti i dispositivi sul bus CAN per verificare che ci siano due e solo due resistori da 120 Ohm sul bus. Per verificare che i resistori siano corretti, \u00e8 possibile rimuovere l'alimentazione alla stampante e utilizzare un multimetro per controllare la resistenza tra i cavi CNH e CANL: dovrebbe riportare ~60 ohm su un bus CAN cablato correttamente.","title":"Resistori di terminazione"},{"location":"CANBUS.html#trovare-canbus_uuid-per-nuovi-microcontrollori","text":"A ogni microcontrollore sul bus CAN viene assegnato un ID univoco basato sull'identificatore del chip di fabbrica codificato in ciascun microcontrollore. Per trovare l'ID di ciascun dispositivo del microcontrollore, assicurati che l'hardware sia alimentato e cablato correttamente, quindi esegui: ~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0 Se vengono rilevati dispositivi CAN non inizializzati, il comando precedente riporter\u00e0 righe come le seguenti: Found canbus_uuid=11aa22bb33cc, Application: Klipper Ogni dispositivo avr\u00e0 un identificatore univoco. Nell'esempio sopra, 11aa22bb33cc \u00e8 il \"canbus_uuid\" del microcontrollore. Nota che lo strumento canbus_query.py riporter\u00e0 solo i dispositivi non inizializzati - se Klipper (o uno strumento simile) configura il dispositivo, non apparir\u00e0 pi\u00f9 nell'elenco.","title":"Trovare canbus_uuid per nuovi microcontrollori"},{"location":"CANBUS.html#configurare-klipper","text":"Aggiorna Klipper configurazione mcu per utilizzare il bus CAN per comunicare con il dispositivo, ad esempio: [mcu my_can_mcu] canbus_uuid: 11aa22bb33cc","title":"Configurare Klipper"},{"location":"CANBUS.html#modalita-bridge-da-usb-a-can-bus","text":"Alcuni microcontrollori supportano la selezione della modalit\u00e0 \"USB to CAN bus bridge\" durante \"make menuconfig\". Questa modalit\u00e0 pu\u00f2 consentire di utilizzare un microcontrollore sia come \"adattatore bus da USB a CAN\" che come nodo Klipper. Quando Klipper utilizza questa modalit\u00e0, il microcontrollore appare come un \"adattatore bus CAN USB\" sotto Linux. Lo stesso \"Klipper bridge mcu\" apparir\u00e0 come se fosse su questo bus CAN - pu\u00f2 essere identificato tramite canbus_query.py e configurato come altri nodi Klipper del bus CAN. Apparir\u00e0 insieme ad altri dispositivi che sono effettivamente sul bus CAN. Alcune note importanti quando si utilizza questa modalit\u00e0: Il \"bridge mcu\" non \u00e8 effettivamente sul bus CAN. I messaggi in entrata e in uscita non consumano larghezza di banda sul bus CAN. L'mcu non pu\u00f2 essere visto da altri adattatori che potrebbero essere sul bus CAN. \u00c8 necessario configurare l'interfaccia can0 (o simile) in Linux per comunicare con il bus. Tuttavia, Klipper ignora la velocit\u00e0 del bus CAN di Linux e le opzioni di temporizzazione del bus CAN. Attualmente, la frequenza del bus CAN viene specificata durante \"make menuconfig\" e la velocit\u00e0 del bus specificata in Linux viene ignorata. Ogni volta che il \"bridge mcu\" viene ripristinato, Linux disabiliter\u00e0 l'interfaccia can0 corrispondente. Per garantire una corretta gestione dei comandi FIRMWARE_RESTART e RESTART, si consiglia di sostituire auto con allow-hotplug nel file /etc/network/interfaces.d/can0 . Per esempio: allow-hotplug can0 iface can0 can static bitrate 500000 up ifconfig $IFACE txqueuelen 128","title":"Modalit\u00e0 bridge da USB a CAN bus"},{"location":"CANBUS_protocol.html","text":"Protocollo CANBUS \u00b6 Questo documento descrive il protocollo utilizzato da Klipper per comunicare su CAN bus . Vedere per informazioni sulla configurazione di Klipper con CANBUS. Assegnazione dell'id del microcontrollore \u00b6 Klipper utilizza solo pacchetti CAN bus di dimensioni standard CAN 2.0A, che sono limitati a 8 byte di dati e un identificatore bus CAN a 11 bit. Per supportare una comunicazione efficiente, a ogni microcontrollore viene assegnato in fase di esecuzione un ID nodo bus CAN univoco a 1 byte (\"canbus_nodeid\") per il traffico generale di comandi e risposte Klipper. I messaggi di comando di Klipper che vanno dall'host al microcontrollore utilizzano l'ID bus CAN di canbus_nodeid * 2 + 256 , mentre i messaggi di risposta di Klipper dal microcontrollore all'host usano canbus_nodeid * 2 + 256 + 1 . Ogni microcontrollore ha un identificatore di chip univoco assegnato in fabbrica che viene utilizzato durante l'assegnazione dell'ID. Questo identificatore pu\u00f2 superare la lunghezza di un pacchetto CAN, quindi una funzione hash viene utilizzata per generare un ID univoco a 6 byte ( canbus_uuid ) dall'ID di fabbrica. Messaggi dell'amministratore \u00b6 I messaggi dell'amministratore vengono utilizzati per l'assegnazione dell'ID. I messaggi di amministrazione inviati dall'host al microcontrollore utilizzano l'ID bus CAN \"0x3f0\" e i messaggi inviati dal microcontrollore all'host utilizzano l'ID bus CAN \"0x3f1\". Tutti i microcontrollori ascoltano i messaggi sull'id 0x3f0 ; quell'ID pu\u00f2 essere considerato un \"indirizzo di trasmissione\". messaggio CMD_QUERY_UNASSIGNED \u00b6 Questo comando interroga tutti i microcontrollori a cui non \u00e8 stato ancora assegnato un canbus_nodeid . I microcontrollori non assegnati risponderanno con un messaggio di risposta RESP_NEED_NODEID. Il formato del messaggio CMD_QUERY_UNASSIGNED \u00e8: <1 byte message_id = 0x00> CMD_SET_KLIPPER_NODEID messaggio \u00b6 Questo comando assegna un canbus_nodeid al microcontrollore con un dato canbus_uuid . Il formato del messaggio CMD_SET_KLIPPER_NODEID \u00e8: <1-byte message_id = 0x01><6-byte canbus_uuid><1-byte canbus_nodeid> Messaggio RESP_NEED_NODEID \u00b6 Il formato del messaggio RESP_NEED_NODEID \u00e8: <1-byte message_id = 0x20><6-byte canbus_uuid><1-byte set_klipper_nodeid = 0x01> Pacchetti dati \u00b6 Un microcontrollore a cui \u00e8 stato assegnato un nodeid tramite il comando CMD_SET_KLIPPER_NODEID pu\u00f2 inviare e ricevere pacchetti di dati. I dati del pacchetto nei messaggi che utilizzano l'ID bus CAN di ricezione del nodo ( canbus_nodeid * 2 + 256 ) vengono semplicemente aggiunti a un buffer e quando viene trovato un mcu protocol message completo, il suo contenuto viene analizzato ed elaborato . I dati vengono trattati come un flusso di byte: non \u00e8 necessario che l'inizio di un blocco di messaggi Klipper sia allineato con l'inizio di un pacchetto bus CAN. Allo stesso modo, le risposte ai messaggi del protocollo mcu vengono inviate dal microcontrollore all'host copiando i dati del messaggio in uno o pi\u00f9 pacchetti con l'ID del bus CAN di trasmissione del nodo ( canbus_nodeid * 2 + 256 + 1 ).","title":"Protocollo CANBUS"},{"location":"CANBUS_protocol.html#protocollo-canbus","text":"Questo documento descrive il protocollo utilizzato da Klipper per comunicare su CAN bus . Vedere per informazioni sulla configurazione di Klipper con CANBUS.","title":"Protocollo CANBUS"},{"location":"CANBUS_protocol.html#assegnazione-dellid-del-microcontrollore","text":"Klipper utilizza solo pacchetti CAN bus di dimensioni standard CAN 2.0A, che sono limitati a 8 byte di dati e un identificatore bus CAN a 11 bit. Per supportare una comunicazione efficiente, a ogni microcontrollore viene assegnato in fase di esecuzione un ID nodo bus CAN univoco a 1 byte (\"canbus_nodeid\") per il traffico generale di comandi e risposte Klipper. I messaggi di comando di Klipper che vanno dall'host al microcontrollore utilizzano l'ID bus CAN di canbus_nodeid * 2 + 256 , mentre i messaggi di risposta di Klipper dal microcontrollore all'host usano canbus_nodeid * 2 + 256 + 1 . Ogni microcontrollore ha un identificatore di chip univoco assegnato in fabbrica che viene utilizzato durante l'assegnazione dell'ID. Questo identificatore pu\u00f2 superare la lunghezza di un pacchetto CAN, quindi una funzione hash viene utilizzata per generare un ID univoco a 6 byte ( canbus_uuid ) dall'ID di fabbrica.","title":"Assegnazione dell'id del microcontrollore"},{"location":"CANBUS_protocol.html#messaggi-dellamministratore","text":"I messaggi dell'amministratore vengono utilizzati per l'assegnazione dell'ID. I messaggi di amministrazione inviati dall'host al microcontrollore utilizzano l'ID bus CAN \"0x3f0\" e i messaggi inviati dal microcontrollore all'host utilizzano l'ID bus CAN \"0x3f1\". Tutti i microcontrollori ascoltano i messaggi sull'id 0x3f0 ; quell'ID pu\u00f2 essere considerato un \"indirizzo di trasmissione\".","title":"Messaggi dell'amministratore"},{"location":"CANBUS_protocol.html#messaggio-cmd_query_unassigned","text":"Questo comando interroga tutti i microcontrollori a cui non \u00e8 stato ancora assegnato un canbus_nodeid . I microcontrollori non assegnati risponderanno con un messaggio di risposta RESP_NEED_NODEID. Il formato del messaggio CMD_QUERY_UNASSIGNED \u00e8: <1 byte message_id = 0x00>","title":"messaggio CMD_QUERY_UNASSIGNED"},{"location":"CANBUS_protocol.html#cmd_set_klipper_nodeid-messaggio","text":"Questo comando assegna un canbus_nodeid al microcontrollore con un dato canbus_uuid . Il formato del messaggio CMD_SET_KLIPPER_NODEID \u00e8: <1-byte message_id = 0x01><6-byte canbus_uuid><1-byte canbus_nodeid>","title":"CMD_SET_KLIPPER_NODEID messaggio"},{"location":"CANBUS_protocol.html#messaggio-resp_need_nodeid","text":"Il formato del messaggio RESP_NEED_NODEID \u00e8: <1-byte message_id = 0x20><6-byte canbus_uuid><1-byte set_klipper_nodeid = 0x01>","title":"Messaggio RESP_NEED_NODEID"},{"location":"CANBUS_protocol.html#pacchetti-dati","text":"Un microcontrollore a cui \u00e8 stato assegnato un nodeid tramite il comando CMD_SET_KLIPPER_NODEID pu\u00f2 inviare e ricevere pacchetti di dati. I dati del pacchetto nei messaggi che utilizzano l'ID bus CAN di ricezione del nodo ( canbus_nodeid * 2 + 256 ) vengono semplicemente aggiunti a un buffer e quando viene trovato un mcu protocol message completo, il suo contenuto viene analizzato ed elaborato . I dati vengono trattati come un flusso di byte: non \u00e8 necessario che l'inizio di un blocco di messaggi Klipper sia allineato con l'inizio di un pacchetto bus CAN. Allo stesso modo, le risposte ai messaggi del protocollo mcu vengono inviate dal microcontrollore all'host copiando i dati del messaggio in uno o pi\u00f9 pacchetti con l'ID del bus CAN di trasmissione del nodo ( canbus_nodeid * 2 + 256 + 1 ).","title":"Pacchetti dati"},{"location":"CONTRIBUTING.html","text":"Contribuire a Klipper \u00b6 Grazie per aver contribuito a Klipper! Questo documento descrive il processo per contribuire alle modifiche di Klipper. Consulta la contact page per informazioni sulla segnalazione di un problema o per i dettagli su come contattare gli sviluppatori. Panoramica del processo di contribuzione \u00b6 I contributi a Klipper seguono generalmente un processo di alto livello: Inizia creando una Richiesta pull GitHub quando un proposta \u00e8 pronta per la diffusione. Quando un reviewer \u00e8 disponibile per review l'invio, si assegner\u00e0 la richiesta pull su GitHub. L'obiettivo della revisione \u00e8 cercare i difetti e verificare che la proposta segua linee guida documentate. Dopo una revisione riuscita, il revisore \"approver\u00e0 la revisione\" su GitHub e un maintainer eseguir\u00e0 il commit della modifica al ramo principale di Klipper. Quando lavori sui miglioramenti, considera di iniziare (o contribuire a) un argomento su Klipper Discourse . Una discussione in corso sul forum pu\u00f2 migliorare la visibilit\u00e0 del lavoro di sviluppo e pu\u00f2 attirare altri interessati a testare nuovi lavori. Cosa aspettarsi da una revisione \u00b6 I contributi a Klipper vengono rivisti prima del merging. L'obiettivo principale del processo di revisione \u00e8 verificare la presenza di difetti e verificare che la presentazione segua le linee guida specificate nella documentazione di Klipper. Resta inteso che ci sono molti modi per portare a termine un compito; non \u00e8 intenzione della revisione discutere la \"migliore\" implementazione. Ove possibile, sono preferibili discussioni di revisione incentrate su fatti e misurazioni. La maggior parte degli invii otterr\u00e0 in feedback da una recensione. Preparati a ottenere feedback, fornire ulteriori dettagli e aggiornare l'invio, se necessario. Cose comuni che un revisore cercher\u00e0: L'invio \u00e8 privo di difetti ed \u00e8 pronto per essere diffuso?I realizzatori dei contributi sono tenuti a testare le loro modifiche prima dell'invio. I revisori cercano gli errori, ma in generale non testano gli invii. Un invio accettato viene spesso distribuito a migliaia di stampanti entro poche settimane dall'accettazione. La qualit\u00e0 degli invii \u00e8 quindi considerata una priorit\u00e0. Il repository GitHub principale Klipper3d/klipper non accetta lavori sperimentali. I realizzatori di contributi devono eseguire la sperimentazione, il debug e il test nei propri repository. Il server Klipper Discourse \u00e8 un buon posto per aumentare la consapevolezza del nuovo lavoro e per trovare utenti interessati a fornire feedback nel mondo reale. Gli invii devono superare tutti i test di regressione . When fixing a defect in the code, submitters should have a general understanding of the root cause of that defect, and the fix should target that root cause. Gli contributi di codice non devono contenere codice di debug eccessivo, opzioni di debug o registrazione del debug in fase di runtime. I commenti negli invii di codice dovrebbero concentrarsi sul miglioramento della manutenzione del codice. Gli invii non devono contenere \"codice commentato\" n\u00e9 commenti eccessivi che descrivono implementazioni passate. Non dovrebbero esserci commenti \"todo\" eccessivi. Gli aggiornamenti alla documentazione non devono dichiarare che si tratta di un \"work in progress\". L'invio fornisce un vantaggio \"ad alto impatto\" per gli utenti del mondo reale che svolgono attivit\u00e0 nel mondo reale?I revisori devono identificare, almeno nella loro mente, approssimativamente \"chi \u00e8 il pubblico di destinazione\", una scala approssimativa delle \"dimensioni di quel pubblico\", il \"beneficio\" che otterranno, come \"il beneficio viene misurato\" e i \"risultati di tali prove di misurazione\". Nella maggior parte dei casi questo sar\u00e0 ovvio sia per il mittente che per il revisore e non \u00e8 esplicitamente dichiarato durante una revisione. Le proposte al ramo principale di Klipper dovrebbero avere un pubblico di destinazione degno di nota. Come \"regola pratica\" generale, gli invii dovrebbero avere come target una base di utenti di almeno 100 utenti del mondo reale. Se un revisore chiede dettagli sul \"beneficio\" di un invio, non considerarlo una critica. Essere in grado di comprendere i vantaggi reali di un cambiamento \u00e8 una parte naturale di una revisione. Quando si discute dei benefici \u00e8 preferibile discutere di \"fatti e misurazioni\". In generale, i revisori non cercano risposte del modulo \"qualcuno potrebbe trovare utile l'opzione X\", n\u00e9 cercano risposte del modulo \"questo invio aggiunge una funzionalit\u00e0 implementata dal firmware X\". Invece, \u00e8 generalmente preferibile discutere i dettagli su come \u00e8 stato misurato il miglioramento della qualit\u00e0 e quali sono stati i risultati di tali misurazioni, ad esempio \"i test sulle stampanti Acme X1000 mostrano angoli migliorati come si vede in figura...\", o ad esempio \" il tempo di stampa dell'oggetto reale X su una stampante Foomatic X900 \u00e8 passato da 4 ore a 3,5 ore\". Resta inteso che i test di questo tipo possono richiedere molto tempo e sforzi. Alcune delle caratteristiche pi\u00f9 importanti di Klipper hanno richiesto mesi di discussioni, rielaborazioni, test e documentazione prima di essere fuse nel ramo principale. Tutti i nuovi moduli, opzioni di configurazione, comandi, parametri di comando e documenti dovrebbero avere un \"impatto elevato\". Non vogliamo appesantire gli utenti con opzioni che non possono configurare ragionevolmente n\u00e9 vogliamo appesantirli con opzioni che non forniscono un vantaggio notevole. Un revisore pu\u00f2 chiedere chiarimenti su come un utente deve configurare un'opzione - una risposta ideale conterr\u00e0 dettagli sul processo - ad esempio, \"gli utenti del MegaX500 dovrebbero impostare l'opzione X su 99,3 mentre gli utenti dell'Elite100Y dovrebbero calibrare l'opzione X usando la procedura ...\". Se l'obiettivo di un'opzione \u00e8 rendere il codice pi\u00f9 modulare, \u00e8 preferibile utilizzare le costanti del codice invece delle opzioni di configurazione rivolte all'utente. Nuovi moduli, nuove opzioni e nuovi parametri non dovrebbero fornire funzionalit\u00e0 simili ai moduli esistenti: se le differenze sono arbitrarie, \u00e8 preferibile utilizzare il sistema esistente o effettuare refactoring del codice esistente. Il copyright dell'invio \u00e8 chiaro, non gratuito e compatibile?I nuovi file C e Python dovrebbero avere una dichiarazione di copyright univoca. Vedere i file esistenti per il formato preferito. \u00c8 sconsigliato dichiarare un copyright su un file esistente quando si apportano modifiche minori a quel file. Il codice prelevato da fonti di terze parti deve essere compatibile con la licenza Klipper (GNU GPLv3). Grandi aggiunte di codice di terze parti dovrebbero essere aggiunte alla directory lib/ (e seguire il formato descritto in lib/README ). I mittenti devono fornire una Signed-off-line utilizzando il loro vero nome completo. Indica che il mittente \u00e8 d'accordo con il developer certificate of origin . L'invio segue le linee guida specificate nella documentazione di Klipper?In particolare, il codice deve seguire le linee guida in e i file di configurazione devono seguire le linee guida in . La documentazione di Klipper \u00e8 aggiornata per riflettere le nuove modifiche?Come minimo, la documentazione di riferimento deve essere aggiornata con le relative modifiche al codice: Tutti i comandi e i relativi parametri devono essere documentati in . Tutti i moduli rivolti all'utente e i relativi parametri di configurazione devono essere documentati in . Tutte le \"variabili di stato\" esportate devono essere documentate in . Tutti i nuovi \"webhook\" e i relativi parametri devono essere documentati in . Qualsiasi modifica che apporti una modifica non compatibile con le versioni precedenti a un comando o a un'impostazione del file di configurazione deve essere documentata in . I nuovi documenti dovrebbero essere aggiunti a e all'indice del sito web docs/_klipper3d/mkdocs.yml . I commit sono ben formati, affrontano un singolo argomento per commit e sono indipendenti?I messaggi di commit devono seguire il formato preferito . I commit non devono avere un conflitto in fase di merge. Le nuove aggiunte al ramo principale di Klipper vengono sempre eseguite tramite un \"rebase\" o \"squash and rebase\". In genere non \u00e8 necessario che i propositori uniscano nuovamente il loro invio ad ogni aggiornamento al repository principale di Klipper. Tuttavia, se c'\u00e8 un conflitto in fase di merge, si consiglia ai mittenti di usare git rebase per risolvere il conflitto. Ogni commit dovrebbe affrontare una singola modifica di alto livello. Le modifiche di grandi dimensioni dovrebbero essere suddivise in pi\u00f9 commit indipendenti. Ogni commit dovrebbe \"stare in piedi da solo\" in modo che strumenti come git bisect e git revert funzionino in modo affidabile. Le modifiche agli spazi bianchi non devono essere mescolate con le modifiche funzionali. In generale, le modifiche agli spazi bianchi gratuite non sono accettate a meno che non provengano dal \"proprietario\" stabilito del codice da modificare. Klipper non implementa una rigida \"guida allo stile di codifica\", ma le modifiche al codice esistente dovrebbero seguire il flusso di codice di alto livello, lo stile di indentazione del codice e il formato di quel codice esistente. Gli invii di nuovi moduli e sistemi hanno una maggiore flessibilit\u00e0 nello stile di codifica, ma \u00e8 preferibile che il nuovo codice segua uno stile internamente coerente e generalmente segua le norme di codifica. Non \u00e8 un obiettivo di una revisione discutere di \"migliori implementazioni\". Tuttavia, se un revisore ha difficolt\u00e0 a comprendere l'implementazione di un invio, pu\u00f2 richiedere modifiche per rendere l'implementazione pi\u00f9 trasparente. In particolare, se i revisori non riescono a convincersi che un contributo \u00e8 privo di difetti, potrebbero essere necessarie modifiche. Come parte di una revisione, un revisore pu\u00f2 creare una richiesta pull alternativa per un argomento. Questo pu\u00f2 essere fatto per evitare eccessivi \"avanti e indietro\" su elementi procedurali minori e quindi snellire il processo di proposta. Pu\u00f2 anche essere fatto perch\u00e9 la discussione ispira un revisore a costruire un'implementazione alternativa. Entrambe le situazioni sono il normale risultato di una revisione e non devono essere considerate critiche alla proposta originale. Aiutare con le revisioni \u00b6 Apprezziamo l'aiuto con le recensioni! Non \u00e8 necessario essere un revisore elencato per eseguire una revisione. I propositori di richieste pull di GitHub sono inoltre incoraggiati a rivedere i propri invii. Per aiutare con una revisione, segui i passaggi descritti in cosa aspettarsi in una revisione per verificare l'invio. Dopo aver completato la revisione, aggiungi un commento alla richiesta pull di GitHub con i tuoi risultati. Se l'invio supera la revisione, si prega di dichiararlo esplicitamente nel commento, ad esempio qualcosa del tipo \"Ho esaminato questa modifica in base ai passaggi del documento CONTRIBUTING e tutto mi sembra a posto\". Se non \u00e8 possibile completare alcuni passaggi della revisione, indicare esplicitamente quali passaggi sono stati rivisti e quali non sono stati rivisti, ad esempio qualcosa del tipo \"Non ho verificato la presenza di difetti nel codice, ma ho rivisto tutto il resto nel documento CONTRIBUTING e sembra buono\". Apprezziamo anche il test degli invii. Se il codice \u00e8 stato testato, aggiungi un commento alla richiesta pull di GitHub con i risultati del tuo test: successo o fallimento. Si prega di affermare esplicitamente che il codice \u00e8 stato testato e i risultati, ad esempio qualcosa del tipo \"Ho testato questo codice sulla mia stampante Acme900Z con una stampa a vaso e i risultati sono stati buoni\". Revisori \u00b6 I \"revisori\" di Klipper sono: Nome GitHub Id Aree di interesse Dmitry Butyugin @dmbutyugin Input shaping, test di risonanza, cinematica Eric Callahan @Arksine Livellamento del piatto, flashing MCU Kevin O'Connor @KevinOConnor Core motion system, codice microcontrollore Paul McGowan @mental405 File di configurazione, documentazione Si prega di non eseguire il \"ping\" di nessuno dei revisori e di non indirizzare gli invii a loro. Tutti i revisori controllano i forum e le PR e si occuperanno delle revisioni quando ne avranno il tempo. I \"manutentori\" di Klipper sono: Nome nome GitHub Kevin O'Connor @KevinOConnor Formato dei messaggi di commit \u00b6 Ogni commit dovrebbe avere un messaggio di commit formattato in modo simile al seguente: modulo: Riepilogo breve (50 caratteri o meno) in maiuscolo Testo esplicativo pi\u00f9 dettagliato, se necessario. Incolonna a circa 75 caratteri o gi\u00f9 di l\u00ec. In alcuni contesti, la prima riga \u00e8 trattata come l'oggetto di un'e-mail e il resto del testo come corpo. La riga vuota che separa il riassunto dal corpo \u00e8 critica (a meno che non si ometta del tutto il corpo); strumenti come rebase possono confondersi se li metti due insieme. Ulteriori paragrafi vengono dopo le righe vuote.. Firmato da: Il mio nome <myemail@example.org> Nell'esempio sopra, module dovrebbe essere il nome di un file o di una directory nel repository (senza un'estensione di file). Ad esempio, clocksync: fix di errore di battitura nella chiamata pause() al momento della connessione . Lo scopo di specificare un nome di modulo nel messaggio di commit \u00e8 di aiutare a fornire il contesto per i commenti di commit. \u00c8 importante avere una riga \"Signed-off-by\" su ogni commit - certifica che accetti il developer certificate of origin . Deve contenere il tuo vero nome (mi dispiace, niente pseudonimi o contributi anonimi) e contenere un indirizzo email corrente. Contribuire a Traduzioni Klipper \u00b6 Klipper-translations Project \u00e8 un progetto dedicato alla traduzione di Klipper in diverse lingue. Weblate ospita tutte le stringhe Gettext per la traduzione e la revisione. Le impostazioni locali possono essere visualizzate su klipper3d.org una volta che soddisfano i seguenti requisiti: 75% Copertura totale Tutti i titoli (H1) sono tradotti Una gerarchia di navigazione PR aggiornata nelle traduzioni klipper. Per ridurre la frustrazione di tradurre termini specifici del dominio e acquisire consapevolezza delle traduzioni in corso, puoi inviare un PR modificando il Klipper-translations Project readme.md . Una volta che una traduzione \u00e8 pronta, \u00e8 possibile apportare la modifica corrispondente al progetto Klipper. Se una traduzione esiste gi\u00e0 nel repository Klipper e non soddisfa pi\u00f9 l'elenco di controllo di cui sopra, verr\u00e0 contrassegnata come obsoleta dopo un mese senza aggiornamenti. Una volta soddisfatti i requisiti, \u00e8 necessario: aggiorna il repository di klipper-translations active_translations Opzionale: aggiungi un file manual-index.md nella cartella docs\\locals\\<lang> del repository klipper-translations per sostituire index.md specifico della lingua (il file index.md generato non viene visualizzato correttamente). Problemi noti: Al momento, non esiste un metodo per tradurre correttamente le immagini nella documentazione \u00c8 impossibile tradurre i titoli in mkdocs.yml.","title":"Contribuire a Klipper"},{"location":"CONTRIBUTING.html#contribuire-a-klipper","text":"Grazie per aver contribuito a Klipper! Questo documento descrive il processo per contribuire alle modifiche di Klipper. Consulta la contact page per informazioni sulla segnalazione di un problema o per i dettagli su come contattare gli sviluppatori.","title":"Contribuire a Klipper"},{"location":"CONTRIBUTING.html#panoramica-del-processo-di-contribuzione","text":"I contributi a Klipper seguono generalmente un processo di alto livello: Inizia creando una Richiesta pull GitHub quando un proposta \u00e8 pronta per la diffusione. Quando un reviewer \u00e8 disponibile per review l'invio, si assegner\u00e0 la richiesta pull su GitHub. L'obiettivo della revisione \u00e8 cercare i difetti e verificare che la proposta segua linee guida documentate. Dopo una revisione riuscita, il revisore \"approver\u00e0 la revisione\" su GitHub e un maintainer eseguir\u00e0 il commit della modifica al ramo principale di Klipper. Quando lavori sui miglioramenti, considera di iniziare (o contribuire a) un argomento su Klipper Discourse . Una discussione in corso sul forum pu\u00f2 migliorare la visibilit\u00e0 del lavoro di sviluppo e pu\u00f2 attirare altri interessati a testare nuovi lavori.","title":"Panoramica del processo di contribuzione"},{"location":"CONTRIBUTING.html#cosa-aspettarsi-da-una-revisione","text":"I contributi a Klipper vengono rivisti prima del merging. L'obiettivo principale del processo di revisione \u00e8 verificare la presenza di difetti e verificare che la presentazione segua le linee guida specificate nella documentazione di Klipper. Resta inteso che ci sono molti modi per portare a termine un compito; non \u00e8 intenzione della revisione discutere la \"migliore\" implementazione. Ove possibile, sono preferibili discussioni di revisione incentrate su fatti e misurazioni. La maggior parte degli invii otterr\u00e0 in feedback da una recensione. Preparati a ottenere feedback, fornire ulteriori dettagli e aggiornare l'invio, se necessario. Cose comuni che un revisore cercher\u00e0: L'invio \u00e8 privo di difetti ed \u00e8 pronto per essere diffuso?I realizzatori dei contributi sono tenuti a testare le loro modifiche prima dell'invio. I revisori cercano gli errori, ma in generale non testano gli invii. Un invio accettato viene spesso distribuito a migliaia di stampanti entro poche settimane dall'accettazione. La qualit\u00e0 degli invii \u00e8 quindi considerata una priorit\u00e0. Il repository GitHub principale Klipper3d/klipper non accetta lavori sperimentali. I realizzatori di contributi devono eseguire la sperimentazione, il debug e il test nei propri repository. Il server Klipper Discourse \u00e8 un buon posto per aumentare la consapevolezza del nuovo lavoro e per trovare utenti interessati a fornire feedback nel mondo reale. Gli invii devono superare tutti i test di regressione . When fixing a defect in the code, submitters should have a general understanding of the root cause of that defect, and the fix should target that root cause. Gli contributi di codice non devono contenere codice di debug eccessivo, opzioni di debug o registrazione del debug in fase di runtime. I commenti negli invii di codice dovrebbero concentrarsi sul miglioramento della manutenzione del codice. Gli invii non devono contenere \"codice commentato\" n\u00e9 commenti eccessivi che descrivono implementazioni passate. Non dovrebbero esserci commenti \"todo\" eccessivi. Gli aggiornamenti alla documentazione non devono dichiarare che si tratta di un \"work in progress\". L'invio fornisce un vantaggio \"ad alto impatto\" per gli utenti del mondo reale che svolgono attivit\u00e0 nel mondo reale?I revisori devono identificare, almeno nella loro mente, approssimativamente \"chi \u00e8 il pubblico di destinazione\", una scala approssimativa delle \"dimensioni di quel pubblico\", il \"beneficio\" che otterranno, come \"il beneficio viene misurato\" e i \"risultati di tali prove di misurazione\". Nella maggior parte dei casi questo sar\u00e0 ovvio sia per il mittente che per il revisore e non \u00e8 esplicitamente dichiarato durante una revisione. Le proposte al ramo principale di Klipper dovrebbero avere un pubblico di destinazione degno di nota. Come \"regola pratica\" generale, gli invii dovrebbero avere come target una base di utenti di almeno 100 utenti del mondo reale. Se un revisore chiede dettagli sul \"beneficio\" di un invio, non considerarlo una critica. Essere in grado di comprendere i vantaggi reali di un cambiamento \u00e8 una parte naturale di una revisione. Quando si discute dei benefici \u00e8 preferibile discutere di \"fatti e misurazioni\". In generale, i revisori non cercano risposte del modulo \"qualcuno potrebbe trovare utile l'opzione X\", n\u00e9 cercano risposte del modulo \"questo invio aggiunge una funzionalit\u00e0 implementata dal firmware X\". Invece, \u00e8 generalmente preferibile discutere i dettagli su come \u00e8 stato misurato il miglioramento della qualit\u00e0 e quali sono stati i risultati di tali misurazioni, ad esempio \"i test sulle stampanti Acme X1000 mostrano angoli migliorati come si vede in figura...\", o ad esempio \" il tempo di stampa dell'oggetto reale X su una stampante Foomatic X900 \u00e8 passato da 4 ore a 3,5 ore\". Resta inteso che i test di questo tipo possono richiedere molto tempo e sforzi. Alcune delle caratteristiche pi\u00f9 importanti di Klipper hanno richiesto mesi di discussioni, rielaborazioni, test e documentazione prima di essere fuse nel ramo principale. Tutti i nuovi moduli, opzioni di configurazione, comandi, parametri di comando e documenti dovrebbero avere un \"impatto elevato\". Non vogliamo appesantire gli utenti con opzioni che non possono configurare ragionevolmente n\u00e9 vogliamo appesantirli con opzioni che non forniscono un vantaggio notevole. Un revisore pu\u00f2 chiedere chiarimenti su come un utente deve configurare un'opzione - una risposta ideale conterr\u00e0 dettagli sul processo - ad esempio, \"gli utenti del MegaX500 dovrebbero impostare l'opzione X su 99,3 mentre gli utenti dell'Elite100Y dovrebbero calibrare l'opzione X usando la procedura ...\". Se l'obiettivo di un'opzione \u00e8 rendere il codice pi\u00f9 modulare, \u00e8 preferibile utilizzare le costanti del codice invece delle opzioni di configurazione rivolte all'utente. Nuovi moduli, nuove opzioni e nuovi parametri non dovrebbero fornire funzionalit\u00e0 simili ai moduli esistenti: se le differenze sono arbitrarie, \u00e8 preferibile utilizzare il sistema esistente o effettuare refactoring del codice esistente. Il copyright dell'invio \u00e8 chiaro, non gratuito e compatibile?I nuovi file C e Python dovrebbero avere una dichiarazione di copyright univoca. Vedere i file esistenti per il formato preferito. \u00c8 sconsigliato dichiarare un copyright su un file esistente quando si apportano modifiche minori a quel file. Il codice prelevato da fonti di terze parti deve essere compatibile con la licenza Klipper (GNU GPLv3). Grandi aggiunte di codice di terze parti dovrebbero essere aggiunte alla directory lib/ (e seguire il formato descritto in lib/README ). I mittenti devono fornire una Signed-off-line utilizzando il loro vero nome completo. Indica che il mittente \u00e8 d'accordo con il developer certificate of origin . L'invio segue le linee guida specificate nella documentazione di Klipper?In particolare, il codice deve seguire le linee guida in e i file di configurazione devono seguire le linee guida in . La documentazione di Klipper \u00e8 aggiornata per riflettere le nuove modifiche?Come minimo, la documentazione di riferimento deve essere aggiornata con le relative modifiche al codice: Tutti i comandi e i relativi parametri devono essere documentati in . Tutti i moduli rivolti all'utente e i relativi parametri di configurazione devono essere documentati in . Tutte le \"variabili di stato\" esportate devono essere documentate in . Tutti i nuovi \"webhook\" e i relativi parametri devono essere documentati in . Qualsiasi modifica che apporti una modifica non compatibile con le versioni precedenti a un comando o a un'impostazione del file di configurazione deve essere documentata in . I nuovi documenti dovrebbero essere aggiunti a e all'indice del sito web docs/_klipper3d/mkdocs.yml . I commit sono ben formati, affrontano un singolo argomento per commit e sono indipendenti?I messaggi di commit devono seguire il formato preferito . I commit non devono avere un conflitto in fase di merge. Le nuove aggiunte al ramo principale di Klipper vengono sempre eseguite tramite un \"rebase\" o \"squash and rebase\". In genere non \u00e8 necessario che i propositori uniscano nuovamente il loro invio ad ogni aggiornamento al repository principale di Klipper. Tuttavia, se c'\u00e8 un conflitto in fase di merge, si consiglia ai mittenti di usare git rebase per risolvere il conflitto. Ogni commit dovrebbe affrontare una singola modifica di alto livello. Le modifiche di grandi dimensioni dovrebbero essere suddivise in pi\u00f9 commit indipendenti. Ogni commit dovrebbe \"stare in piedi da solo\" in modo che strumenti come git bisect e git revert funzionino in modo affidabile. Le modifiche agli spazi bianchi non devono essere mescolate con le modifiche funzionali. In generale, le modifiche agli spazi bianchi gratuite non sono accettate a meno che non provengano dal \"proprietario\" stabilito del codice da modificare. Klipper non implementa una rigida \"guida allo stile di codifica\", ma le modifiche al codice esistente dovrebbero seguire il flusso di codice di alto livello, lo stile di indentazione del codice e il formato di quel codice esistente. Gli invii di nuovi moduli e sistemi hanno una maggiore flessibilit\u00e0 nello stile di codifica, ma \u00e8 preferibile che il nuovo codice segua uno stile internamente coerente e generalmente segua le norme di codifica. Non \u00e8 un obiettivo di una revisione discutere di \"migliori implementazioni\". Tuttavia, se un revisore ha difficolt\u00e0 a comprendere l'implementazione di un invio, pu\u00f2 richiedere modifiche per rendere l'implementazione pi\u00f9 trasparente. In particolare, se i revisori non riescono a convincersi che un contributo \u00e8 privo di difetti, potrebbero essere necessarie modifiche. Come parte di una revisione, un revisore pu\u00f2 creare una richiesta pull alternativa per un argomento. Questo pu\u00f2 essere fatto per evitare eccessivi \"avanti e indietro\" su elementi procedurali minori e quindi snellire il processo di proposta. Pu\u00f2 anche essere fatto perch\u00e9 la discussione ispira un revisore a costruire un'implementazione alternativa. Entrambe le situazioni sono il normale risultato di una revisione e non devono essere considerate critiche alla proposta originale.","title":"Cosa aspettarsi da una revisione"},{"location":"CONTRIBUTING.html#aiutare-con-le-revisioni","text":"Apprezziamo l'aiuto con le recensioni! Non \u00e8 necessario essere un revisore elencato per eseguire una revisione. I propositori di richieste pull di GitHub sono inoltre incoraggiati a rivedere i propri invii. Per aiutare con una revisione, segui i passaggi descritti in cosa aspettarsi in una revisione per verificare l'invio. Dopo aver completato la revisione, aggiungi un commento alla richiesta pull di GitHub con i tuoi risultati. Se l'invio supera la revisione, si prega di dichiararlo esplicitamente nel commento, ad esempio qualcosa del tipo \"Ho esaminato questa modifica in base ai passaggi del documento CONTRIBUTING e tutto mi sembra a posto\". Se non \u00e8 possibile completare alcuni passaggi della revisione, indicare esplicitamente quali passaggi sono stati rivisti e quali non sono stati rivisti, ad esempio qualcosa del tipo \"Non ho verificato la presenza di difetti nel codice, ma ho rivisto tutto il resto nel documento CONTRIBUTING e sembra buono\". Apprezziamo anche il test degli invii. Se il codice \u00e8 stato testato, aggiungi un commento alla richiesta pull di GitHub con i risultati del tuo test: successo o fallimento. Si prega di affermare esplicitamente che il codice \u00e8 stato testato e i risultati, ad esempio qualcosa del tipo \"Ho testato questo codice sulla mia stampante Acme900Z con una stampa a vaso e i risultati sono stati buoni\".","title":"Aiutare con le revisioni"},{"location":"CONTRIBUTING.html#revisori","text":"I \"revisori\" di Klipper sono: Nome GitHub Id Aree di interesse Dmitry Butyugin @dmbutyugin Input shaping, test di risonanza, cinematica Eric Callahan @Arksine Livellamento del piatto, flashing MCU Kevin O'Connor @KevinOConnor Core motion system, codice microcontrollore Paul McGowan @mental405 File di configurazione, documentazione Si prega di non eseguire il \"ping\" di nessuno dei revisori e di non indirizzare gli invii a loro. Tutti i revisori controllano i forum e le PR e si occuperanno delle revisioni quando ne avranno il tempo. I \"manutentori\" di Klipper sono: Nome nome GitHub Kevin O'Connor @KevinOConnor","title":"Revisori"},{"location":"CONTRIBUTING.html#formato-dei-messaggi-di-commit","text":"Ogni commit dovrebbe avere un messaggio di commit formattato in modo simile al seguente: modulo: Riepilogo breve (50 caratteri o meno) in maiuscolo Testo esplicativo pi\u00f9 dettagliato, se necessario. Incolonna a circa 75 caratteri o gi\u00f9 di l\u00ec. In alcuni contesti, la prima riga \u00e8 trattata come l'oggetto di un'e-mail e il resto del testo come corpo. La riga vuota che separa il riassunto dal corpo \u00e8 critica (a meno che non si ometta del tutto il corpo); strumenti come rebase possono confondersi se li metti due insieme. Ulteriori paragrafi vengono dopo le righe vuote.. Firmato da: Il mio nome <myemail@example.org> Nell'esempio sopra, module dovrebbe essere il nome di un file o di una directory nel repository (senza un'estensione di file). Ad esempio, clocksync: fix di errore di battitura nella chiamata pause() al momento della connessione . Lo scopo di specificare un nome di modulo nel messaggio di commit \u00e8 di aiutare a fornire il contesto per i commenti di commit. \u00c8 importante avere una riga \"Signed-off-by\" su ogni commit - certifica che accetti il developer certificate of origin . Deve contenere il tuo vero nome (mi dispiace, niente pseudonimi o contributi anonimi) e contenere un indirizzo email corrente.","title":"Formato dei messaggi di commit"},{"location":"CONTRIBUTING.html#contribuire-a-traduzioni-klipper","text":"Klipper-translations Project \u00e8 un progetto dedicato alla traduzione di Klipper in diverse lingue. Weblate ospita tutte le stringhe Gettext per la traduzione e la revisione. Le impostazioni locali possono essere visualizzate su klipper3d.org una volta che soddisfano i seguenti requisiti: 75% Copertura totale Tutti i titoli (H1) sono tradotti Una gerarchia di navigazione PR aggiornata nelle traduzioni klipper. Per ridurre la frustrazione di tradurre termini specifici del dominio e acquisire consapevolezza delle traduzioni in corso, puoi inviare un PR modificando il Klipper-translations Project readme.md . Una volta che una traduzione \u00e8 pronta, \u00e8 possibile apportare la modifica corrispondente al progetto Klipper. Se una traduzione esiste gi\u00e0 nel repository Klipper e non soddisfa pi\u00f9 l'elenco di controllo di cui sopra, verr\u00e0 contrassegnata come obsoleta dopo un mese senza aggiornamenti. Una volta soddisfatti i requisiti, \u00e8 necessario: aggiorna il repository di klipper-translations active_translations Opzionale: aggiungi un file manual-index.md nella cartella docs\\locals\\<lang> del repository klipper-translations per sostituire index.md specifico della lingua (il file index.md generato non viene visualizzato correttamente). Problemi noti: Al momento, non esiste un metodo per tradurre correttamente le immagini nella documentazione \u00c8 impossibile tradurre i titoli in mkdocs.yml.","title":"Contribuire a Traduzioni Klipper"},{"location":"Code_Overview.html","text":"Panoramica del codice \u00b6 Questo documento descrive il formato generale del codice e il flusso principale del codice di Klipper. Directory Layout \u00b6 La directory src/ contiene il sorgente C per il codice del microcontrollore. src/atsam/ , src/atsamd/ , src/avr/ , src/linux/ , src/lpc176x/ , src/ Le directory pru/ e src/stm32/ contengono il codice del microcontrollore specifico dell'architettura. src/simulator/ contiene stub di codice che consentono la compilazione di test del microcontrollore su altre architetture. La directory src/generic/ contiene codice di supporto che pu\u00f2 essere utile in diverse architetture. La build fa in modo che le include di \"board/somefile.h\" guardino prima nella directory dell'architettura corrente (ad esempio, src/avr/somefile.h) e poi nella directory generica (ad esempio, src/generic/somefile.h). La directory klippy/ contiene il software host. La maggior parte del software host \u00e8 scritto in Python, tuttavia la directory klippy/chelper/ contiene alcuni helper del codice C. La directory klippy/kinematics/ contiene il codice della cinematica del robot. La directory klippy/extras/ contiene i \"moduli\" estensibili del codice host. La directory lib/ contiene il codice della libreria di terze parti esterne necessarie per creare alcune destinazioni. La directory config/ contiene file di configurazione della stampante di esempio. La directory scripts/ contiene script di build-time utili per compilare il codice del microcontrollore. La directory test/ contiene test case automatizzati. Durante la compilazione, la build potrebbe creare una directory out/ . Questa contiene oggetti temporanei di compilazione. L'oggetto microcontrollore finale che viene creato \u00e8 out/klipper.elf.hex su AVR e out/klipper.bin su ARM. Flusso del codice del microcontrollore \u00b6 L'esecuzione del codice del microcontrollore inizia nel codice specifico dell'architettura (ad esempio, src/avr/main.c ) che alla fine chiama sched_main() che si trova in src/sched.c . Il codice sched_main() inizia eseguendo tutte le funzioni che sono state contrassegnate con la macro DECL_INIT(). Quindi continua a eseguire ripetutamente tutte le funzioni contrassegnate con la macro DECL_TASK(). Una delle principali funzioni dell'attivit\u00e0 \u00e8 command_dispatch() che si trova in src/command.c . Questa funzione viene richiamata dal codice input/output specifico della scheda (es. src/avr/serial.c , src/generic/serial_irq.c ) ed esegue le funzioni di comando associate ai comandi trovati nel flusso di input. Le funzioni di comando vengono dichiarate utilizzando la macro DECL_COMMAND() (consultare il documento protocol per ulteriori informazioni). Le funzioni task, init e comando vengono sempre eseguite con gli interrupt abilitati (tuttavia, possono disabilitare temporaneamente gli interrupt se necessario). Queste funzioni dovrebbero evitare lunghe pause, ritardi o eseguire lavori che durano un tempo significativo. (Lunghi ritardi in queste funzioni di \"attivit\u00e0\" provocano un jitter di pianificazione per altre \"attivit\u00e0\" - ritardi superiori a 100us possono diventare evidenti, ritardi superiori a 500us possono causare ritrasmissioni dei comandi, ritardi superiori a 100 ms possono causare riavvii del watchdog.) Queste funzioni pianificano il lavoro a orari specifici programmando i timer. Le funzioni timer vengono pianificate chiamando sched_add_timer() (che si trova in src/sched.c ). Il codice di pianificazione far\u00e0 in modo che la funzione data venga chiamata all'ora richiesta. Gli interrupt timer sono inizialmente gestiti in un gestore di interrupt specifico dell'architettura (ad esempio, src/avr/timer.c ) che chiama sched_timer_dispatch() situato in src/sched.c . L'interruzione del timer porta all'esecuzione delle funzioni del timer di pianificazione. Le funzioni timer vengono eseguite sempre con gli interrupt disabilitati. Le funzioni del timer dovrebbero sempre completarsi entro pochi microsecondi. Al completamento dell'evento timer, la funzione pu\u00f2 scegliere di riprogrammare se stessa. Nel caso in cui venga rilevato un errore, il codice pu\u00f2 invocare shutdown() (una macro che chiama sched_shutdown() situata in src/sched.c ). Il richiamo di shutdown() provoca l'esecuzione di tutte le funzioni contrassegnate con la macro DECL_SHUTDOWN(). Le funzioni di spegnimento vengono eseguite sempre con gli interrupt disabilitati. Gran parte delle funzionalit\u00e0 del microcontrollore implica il lavoro con pin di input/output per uso generico (GPIO). Per astrarre il codice specifico dell'architettura di basso livello dal codice dell'attivit\u00e0 di alto livello, tutti gli eventi GPIO sono implementati in wrapper specifici dell'architettura (ad esempio, src/avr/gpio.c ). Il codice \u00e8 compilato con l'ottimizzazione \"-flto -fwhole-program\" di gcc che fa un ottimo lavoro di inlining delle funzioni tra le unit\u00e0 di compilazione, quindi la maggior parte di queste minuscole funzioni gpio sono integrate nei loro chiamanti e non ci sono costi di runtime per l'utilizzo loro. Panoramica del codice Klippy \u00b6 Il codice host (Klippy) deve essere eseguito su un computer a basso costo (come un Raspberry Pi) abbinato al microcontrollore. Il codice \u00e8 scritto principalmente in Python, tuttavia utilizza CFFI per implementare alcune funzionalit\u00e0 nel codice C. L'esecuzione iniziale comincia in klippy/klippy.py . Questo legge gli argomenti della riga di comando, apre il file di configurazione della stampante, crea un'istanza degli oggetti principali della stampante e avvia la connessione seriale. L'esecuzione principale dei comandi G-code \u00e8 nel metodo process_commands() in klippy/gcode.py . Questo codice traduce i comandi del codice G in chiamate a oggetti stampante, che spesso traducono le azioni in comandi da eseguire sul microcontrollore (come dichiarato tramite la macro DECL_COMMAND nel codice del microcontrollore). Ci sono quattro thread nel codice host di Klippy. Il thread principale gestisce i comandi gcode in arrivo. Un secondo thread (che risiede interamente nel codice C klippy/chelper/serialqueue.c ) gestisce l'IO di basso livello con la porta seriale. Il terzo thread viene utilizzato per elaborare i messaggi di risposta dal microcontrollore nel codice Python (vedi klippy/serialhdl.py ). Il quarto thread scrive i messaggi di debug nel log (vedi klippy/queuelogger.py ) in modo che gli altri thread non blocchino mai le scritture del log. Flusso di codice di un comando di spostamento \u00b6 Un tipico movimento della stampante inizia quando viene inviato un comando \"G1\" all'host Klippy e si completa quando vengono prodotti i corrispondenti impulsi di passo sul microcontrollore. Questa sezione delinea il flusso di codice di un tipico comando di spostamento. Il documento cinematica fornisce ulteriori informazioni sulla meccanica dei movimenti. L'elaborazione di un comando di spostamento inizia in gcode.py. L'obiettivo di gcode.py \u00e8 tradurre il G-code in chiamate interne. Un comando G1 invocher\u00e0 cmd_G1() in klippy/extras/gcode_move.py. Il codice gcode_move.py gestisce le modifiche all'origine (ad esempio, G92), le modifiche alle posizioni relative rispetto a quelle assolute (ad esempio, G90) e le modifiche alle unit\u00e0 (ad esempio, F6000=100mm/s). Il percorso del codice per una mossa \u00e8: _process_data() -> _process_commands() -> cmd_G1() . Infine viene invocata la classe ToolHead per eseguire la richiesta effettiva: cmd_G1() -> ToolHead.move() La classe ToolHead (in toolhead.py) gestisce \"look-ahead\" e tiene traccia dei tempi delle azioni di stampa. Il percorso di codice principale per una mossa \u00e8: ToolHead.move() -> MoveQueue.add_move() -> MoveQueue.flush() -> Move.set_junction() -> ToolHead._process_moves() . ToolHead.move() crea un oggetto Move() con i parametri del movimento (in spazio cartesiano e in unit\u00e0 di secondi e millimetri). Alla classe cinematica viene data l'opportunit\u00e0 di controllare ogni movimento ( ToolHead.move() -> kin.check_move() ). Le classi cinematiche si trovano nella directory klippy/cinematica/. Il codice check_move() pu\u00f2 generare un errore se il movimento non \u00e8 valida. Se check_move() viene completato correttamente, la cinematica sottostante deve essere in grado di gestire lo spostamento. MoveQueue.add_move() posiziona l'oggetto di spostamento nella coda \"look-ahead\". MoveQueue.flush() determina le velocit\u00e0 di inizio e fine di ogni movimento. Move.set_junction() implementa il \"generatore di trapezi\" per il movimento. Il \"generatore trapezoidale\" suddivide ogni movimento in tre parti: una fase di accelerazione costante, seguita da una fase di velocit\u00e0 costante, seguita da una fase di decelerazione costante. Ogni mossa contiene queste tre fasi in questo ordine, ma alcune fasi possono avere durata zero. Quando viene chiamato ToolHead._process_moves(), tutto ci\u00f2 che riguarda lo spostamento \u00e8 noto: la sua posizione iniziale, la sua posizione finale, la sua accelerazione, la sua velocit\u00e0 di inizio/crociera/finale e la distanza percorsa durante l'accelerazione/crociera/decelerazione. Tutte le informazioni sono memorizzate nella classe Move() e sono nello spazio cartesiano in unit\u00e0 di millimetri e secondi. Klipper utilizza un risolutore iterativo per generare i tempi di passaggio per ogni stepper. Per motivi di efficienza, i tempi di impulso stepper sono generati in codice C. I movimenti vengono prima posizionati su una \"coda di movimento trapezoidale\": ToolHead._process_moves() -> trapq_append() (in klippy/chelper/trapq.c). Vengono quindi generati i tempi di passaggio: ToolHead._process_moves() -> ToolHead._update_move_time() -> MCU_Stepper.generate_steps() -> itersolve_generate_steps() -> itersolve_gen_steps_range() (in klippy/chelper/itersolve.c). L'obiettivo del risolutore iterativo \u00e8 trovare i tempi di passaggio data una funzione che calcola una posizione passo-passo da un tempo. Questo viene fatto \"indovinando\" ripetutamente varie volte fino a quando la formula della posizione dello stepper non restituisce la posizione desiderata del passaggio successivo sullo stepper. Il feedback prodotto da ciascuna ipotesi viene utilizzato per migliorare le ipotesi future in modo che il processo converga rapidamente al tempo desiderato. Le formule della posizione dello stepper cinematico si trovano nella directory klippy/chelper/ (ad es. kin_cart.c, kin_corexy.c, kin_delta.c, kin_extruder.c). Si noti che l'estrusore \u00e8 gestito nella propria classe cinematica: ToolHead._process_moves() -> PrinterExtruder.move() . Poich\u00e9 la classe Move() specifica l'esatto tempo di movimento e poich\u00e9 gli impulsi di passo vengono inviati al microcontrollore con una tempistica specifica, i movimenti passo-passo prodotti dalla classe estrusore saranno sincronizzati con il movimento della testa anche se il codice viene mantenuto separato. Dopo che il risolutore iterativo ha calcolato i tempi di passaggio, questi vengono aggiunti a un array: itersolve_gen_steps_range() -> stepcompress_append() (in klippy/chelper/stepcompress.c). L'array (struct stepcompress.queue) memorizza i corrispondenti tempi del contatore dell'orologio del microcontrollore per ogni passaggio. Qui il valore del \"contatore orologio del microcontrollore\" corrisponde direttamente al contatore hardware del microcontrollore - \u00e8 relativo a quando il microcontrollore \u00e8 stato acceso l'ultima volta. Il prossimo passo importante \u00e8 comprimere i passaggi: stepcompress_flush() -> compress_bisect_add() (in klippy/chelper/stepcompress.c). Questo codice genera e codifica una serie di comandi \"queue_step\" del microcontrollore che corrispondono all'elenco dei tempi di stepper compilati nella fase precedente. Questi comandi \"queue_step\" vengono quindi accodati, assegnati a priorit\u00e0 e inviati al microcontrollore (tramite stepcompress.c:steppersync e serialqueue.c:serialqueue). L'elaborazione dei comandi queue_step sul microcontrollore inizia in src/command.c che analizza il comando e chiama command_queue_step() . Il codice command_queue_step() (in src/stepper.c) aggiunge semplicemente i parametri di ogni comando queue_step a una coda per stepper. In condizioni normali, il comando queue_step viene analizzato e messo in coda almeno 100 ms prima dell'ora del suo primo passaggio. Infine, la generazione degli eventi stepper viene eseguita in stepper_event() . Viene chiamato dall'interruzione del timer hardware all'ora pianificata del primo passaggio. Il codice stepper_event() genera un impulso di passaggio e quindi si riprogramma per essere eseguito al momento dell'impulso di passaggio successivo per i parametri queue_step specificati. I parametri per ogni comando queue_step sono \"interval\", \"count\" e \"add\". Ad alto livello, stepper_event() esegue quanto segue, 'count' volte: do_step(); next_wake_time = last_wake_time + intervallo; intervallo += aggiungi; Quanto sopra pu\u00f2 sembrare un sacco di complessit\u00e0 per eseguire un movimento. Tuttavia, le uniche parti veramente interessanti sono nelle classi ToolHead e cinematica. \u00c8 questa parte del codice che specifica i movimenti e le loro tempistiche. Le restanti parti dell'elaborazione sono per lo pi\u00f9 solo comunicazioni e collegamenti. Aggiunta di un modulo host \u00b6 Il codice host Klippy ha una capacit\u00e0 di caricamento dinamico dei moduli. Se nel file di configurazione della stampante viene trovata una sezione di configurazione denominata \"[my_module]\", il software tenter\u00e0 automaticamente di caricare il modulo python klippy/extras/my_module.py . Questo sistema di moduli \u00e8 il metodo preferito per aggiungere nuove funzionalit\u00e0 a Klipper. Il modo pi\u00f9 semplice per aggiungere un nuovo modulo \u00e8 utilizzare un modulo esistente come riferimento - vedere klippy/extras/servo.py come esempio. Possono essere utili anche: L'esecuzione del modulo inizia nella funzione load_config() a livello di modulo (per le sezioni di configurazione del modulo [my_module]) o in load_config_prefix() (per le sezioni di configurazione del modulo [my_module my_name]). A questa funzione viene passato un oggetto \"config\" e deve restituire un nuovo \"oggetto stampante\" associato alla sezione di configurazione specificata. Durante il processo di creazione di un'istanza di un nuovo oggetto stampante, l'oggetto di configurazione pu\u00f2 essere utilizzato per leggere i parametri dalla sezione di configurazione specificata. Questo viene fatto usando i metodi config.get() , config.getfloat() , config.getint() , ecc. Assicurati di leggere tutti i valori dalla configurazione durante la costruzione dell'oggetto stampante: se l'utente specifica un parametro di configurazione che non viene letto durante questa fase, si presumer\u00e0 che si tratti di un errore di battitura nella configurazione e verr\u00e0 generato un errore. Usa il metodo config.get_printer() per ottenere un riferimento alla classe principale \"printer\". Questa classe \"stampante\" memorizza i riferimenti a tutti gli \"oggetti stampante\" di cui \u00e8 stata creata un'istanza. Usa il metodo printer.lookup_object() per trovare riferimenti ad altri oggetti stampante. Quasi tutte le funzionalit\u00e0 (anche i moduli cinematici principali) sono incapsulate in uno di questi oggetti stampante. Si noti, tuttavia, che quando viene istanziato un nuovo modulo, non saranno stati istanziati tutti gli altri oggetti stampante. I moduli \"gcode\" e \"pins\" saranno sempre disponibili, ma per altri moduli \u00e8 una buona idea rinviare la ricerca. Registra i gestori di eventi usando il metodo printer.register_event_handler() se il codice deve essere chiamato durante gli \"events\" generati da altri oggetti stampante. Ogni nome di evento \u00e8 una stringa e, per convenzione, \u00e8 il nome del modulo sorgente principale che genera l'evento insieme a un nome breve per l'azione che si sta verificando (ad esempio, \"klippy:connect\"). I parametri passati a ciascun gestore di eventi sono specifici dell'evento dato (cos\u00ec come la gestione delle eccezioni e il contesto di esecuzione). Due eventi di avvio comuni sono: klippy:connect - Questo evento viene generato dopo che tutti gli oggetti stampante sono stati istanziati. Viene comunemente utilizzato per cercare altri oggetti stampante, verificare le impostazioni di configurazione ed eseguire un \"handshake\" iniziale con l'hardware della stampante. klippy:ready - Questo evento viene generato dopo che tutti i gestori di connessione sono stati completati correttamente. Indica che la stampante sta passando a uno stato pronto per gestire le normali operazioni. Non generare un errore in questo callback. Se c'\u00e8 un errore nella configurazione dell'utente, assicurati di sollevarlo durante le fasi load_config() o \"connect event\". Utilizzare raise config.error(\"my error\") o raise printer.config_error (\"my error\") per segnalare l'errore. Utilizzare il modulo \"pin\" per configurare un pin su un microcontrollore. Questo \u00e8 in genere fatto con qualcosa di simile a printer.lookup_object(\"pins\").setup_pin(\"pwm\", config.get(\"my_pin\")) . L'oggetto restituito pu\u00f2 quindi essere comandato in fase di esecuzione. Se l'oggetto stampante definisce un metodo get_status() , il modulo pu\u00f2 esportare informazioni sullo stato tramite macro e tramite Server API . Il metodo get_status() deve restituire un dizionario Python con chiavi che sono stringhe e valori che sono interi, float, stringhe, elenchi, dizionari, True, False o None. \u00c8 possibile utilizzare anche tuple (e tuple con nome) (appaiono come elenchi quando si accede tramite il server API). Gli elenchi e i dizionari esportati devono essere trattati come \"immutabili\" - se il loro contenuto cambia, \u00e8 necessario restituire un nuovo oggetto da get_status() , altrimenti il server API non rilever\u00e0 tali modifiche. Se il modulo necessita dell'accesso alla temporizzazione del sistema o a descrittori di file esterni, utilizzare printer.get_reactor() per ottenere l'accesso alla classe globale \"event reactor\". Questa classe reattore consente di programmare i timer, attendere l'input sui descrittori di file e di \"sopprimere\" il codice host. Non utilizzare variabili globali. Tutto lo stato dovrebbe essere memorizzato nell'oggetto stampante restituito dalla funzione load_config() . Questo \u00e8 importante, altrimenti il comando RESTART potrebbe non funzionare come previsto. Inoltre, per ragioni simili, se vengono aperti file (o socket) esterni, assicurati di registrare un gestore di eventi \"klippy:disconnect\" e chiuderli da quella richiamata. Evitare di accedere alle variabili dei membri interni (o di chiamare metodi che iniziano con un trattino basso) di altri oggetti stampante. L'osservanza di questa convenzione semplifica la gestione delle modifiche future. Si consiglia di assegnare un valore a tutte le variabili membro nel costruttore Python delle classi Python. (E quindi evita di utilizzare la capacit\u00e0 di Python di creare dinamicamente nuove variabili membro.) Se una variabile Python deve memorizzare un valore in virgola mobile, si consiglia di assegnare e manipolare sempre quella variabile con costanti in virgola mobile (e non utilizzare mai costanti intere). Ad esempio, preferisci self.speed = 1. su self.speed = 1 e preferisci self.speed = 2. * x su self.speed = 2 * x . L'uso coerente di valori in virgola mobile pu\u00f2 evitare difficolt\u00e0 di debug nelle conversioni di tipo Python. Se invii il modulo per l'inclusione nel codice Klipper principale, assicurati di inserire un avviso di copyright nella parte superiore del modulo. Vedere i moduli esistenti per il formato preferito. Aggiunta di una nuova cinematica \u00b6 Questa sezione fornisce alcuni suggerimenti sull'aggiunta del supporto a Klipper per ulteriori tipi di cinematica della stampante. Questo tipo di attivit\u00e0 richiede un'ottima comprensione delle formule matematiche per la cinematica di destinazione. Richiede anche capacit\u00e0 di sviluppo software, sebbene sia necessario solo aggiornare il software host. Passi utili: Inizia studiando la sezione \" flusso di codice di un movimento \" e il documento di cinematica . Esaminare le classi cinematiche esistenti nella directory klippy/kinematics/. Le classi cinematiche hanno il compito di convertire una mossa in coordinate cartesiane nel movimento su ogni stepper. Si dovrebbe essere in grado di copiare uno di questi file come punto di partenza. Implementa in C le funzioni di posizione cinematica dello stepper per ogni stepper se non sono gi\u00e0 disponibili (vedi kin_cart.c, kin_corexy.c e kin_delta.c in klippy/chelper/). La funzione dovrebbe chiamare move_get_coord() per convertire un dato tempo di spostamento (in secondi) in una coordinata cartesiana (in millimetri), e quindi calcolare la posizione dello stepper desiderata (in millimetri) da quella coordinata cartesiana. Implementa il metodo calc_position() nella nuova classe cinematica. Questo metodo calcola la posizione della testa di stampa in coordinate cartesiane dalla posizione di ogni stepper. Non \u00e8 necessario che sia efficiente poich\u00e9 in genere viene chiamato solo durante le operazioni di homing e probing. Altri metodi. Implementa i metodi check_move() , get_status() , get_steppers() , home() e set_position() . Queste funzioni sono in genere utilizzate per fornire verifiche cinematiche specifiche. Tuttavia, all'inizio dello sviluppo \u00e8 possibile utilizzare il codice boilerplate qui. Implementare casi di prova. Crea un file g-code con una serie di movimenti che possono testare casi importanti per la cinematica data. Segui la documentazione di debug per convertire questo file di codice G in comandi del microcontrollore. Questo \u00e8 utile per esercitare corner case e per verificare la presenza di regressioni. Porting su un nuovo microcontrollore \u00b6 Questa sezione fornisce alcuni suggerimenti sul porting del codice del microcontrollore di Klipper su una nuova architettura. Questo tipo di attivit\u00e0 richiede una buona conoscenza dello sviluppo embedded e un accesso diretto al microcontrollore di destinazione. Passi utili: Inizia identificando eventuali librerie di terze parti che verranno utilizzate durante il trasferimento. Esempi comuni includono wrapper \"CMSIS\" e librerie \"HAL\" del produttore. Tutto il codice di terze parti deve essere compatibile con GNU GPLv3. Il codice di terze parti dovrebbe essere salvato nella directory lib/ di Klipper. Aggiorna il file lib/README con informazioni su dove e quando \u00e8 stata ottenuta la libreria. \u00c8 preferibile copiare il codice nel repository di Klipper senza modifiche, ma se sono necessarie modifiche, tali modifiche dovrebbero essere elencate esplicitamente nel file lib/README. Crea una nuova sottodirectory di architettura nella directory src/ e aggiungi il supporto iniziale di Kconfig e Makefile. Utilizzare le architetture esistenti come guida. src/simulator fornisce un esempio di base di un punto di partenza minimo. Il primo compito di programmazione \u00e8 portare il supporto di comunicazione alla scheda di destinazione. Questo \u00e8 il passo pi\u00f9 difficile in un nuovo porting. Una volta che la comunicazione di base funziona, i passaggi rimanenti tendono a essere molto pi\u00f9 semplici. \u00c8 tipico utilizzare un dispositivo seriale di tipo UART durante lo sviluppo iniziale poich\u00e9 questi tipi di dispositivi hardware sono generalmente pi\u00f9 facili da abilitare e controllare. Durante questa fase, fai un uso generoso del codice di supporto dalla directory src/generic/ (controlla come src/simulator/Makefile include il codice C generico nella build). \u00c8 inoltre necessario definire timer_read_time() (che restituisce l'orologio di sistema corrente) in questa fase, ma non \u00e8 necessario supportare completamente la gestione di timer irq. Acquisisci familiarit\u00e0 con lo strumento console.py (come descritto nel documento di debug ) e verifica la connettivit\u00e0 al microcontrollore con esso. Questo strumento traduce il protocollo di comunicazione del microcontrollore di basso livello in un formato leggibile dall'uomo. Aggiungi il supporto per l'invio del timer da interrupt hardware. Vedere Klipper commit 970831ee come esempio dei passaggi 1-5 eseguiti per l'architettura LPC176x. Visualizza il supporto di input e output GPIO di base. Vedi Klipper commit c78b9076 come esempio di questo. Riporta periferiche aggiuntive, ad esempio consulta il commit di Klipper 65613aed , c812a40a , e c381d03a . Crea un file di configurazione di Klipper di esempio nella directory config/. Testare il microcontrollore con il programma principale klippy.py. Prendi in considerazione l'aggiunta di build test case nella directory test/. Ulteriori suggerimenti per la programmazione: Evitare di utilizzare \"C bitfields\" per accedere ai registri IO; preferire operazioni di lettura e scrittura dirette di numeri interi a 32 bit, 16 bit o 8 bit. Le specifiche del linguaggio C non specificano chiaramente come il compilatore deve implementare campi di bit C (ad esempio, endianness e layout di bit), ed \u00e8 difficile determinare quali operazioni di I/O si verificheranno su un campo di bit C letto o scritto. Preferibilmente scrivere valori espliciti nei registri IO invece di usare operazioni di lettura-modifica-scrittura. Cio\u00e8, se si aggiorna un campo in un registro IO in cui gli altri campi hanno valori noti, \u00e8 preferibile scrivere in modo esplicito il contenuto completo del registro. Le scritture esplicite producono codice pi\u00f9 piccolo, pi\u00f9 veloce e pi\u00f9 facile da eseguire il debug. Sistemi di coordinate \u00b6 Internamente, Klipper tiene traccia principalmente della posizione della testa di stampa in coordinate cartesiane relative al sistema di coordinate specificato nel file di configurazione. Cio\u00e8, la maggior parte del codice Klipper non subir\u00e0 mai un cambiamento nei sistemi di coordinate. Se l'utente fa una richiesta per cambiare l'origine (ad esempio, un comando G92 ), allora quell'effetto si ottiene traducendo i comandi futuri nel sistema di coordinate primario. Tuttavia, in alcuni casi \u00e8 utile ottenere la posizione della testa di stampa in qualche altro sistema di coordinate e Klipper ha diversi strumenti per facilitarlo. Questo pu\u00f2 essere visto eseguendo il comando GET_POSITION. Per esempio: Send: GET_POSITION Recv: // mcu: stepper_a:-2060 stepper_b:-1169 stepper_c:-1613 Recv: // stepper: stepper_a:457.254159 stepper_b:466.085669 stepper_c:465.382132 Recv: // kinematic: X:8.339144 Y:-3.131558 Z:233.347121 Recv: // toolhead: X:8.338078 Y:-3.123175 Z:233.347878 E:0.000000 Recv: // gcode: X:8.338078 Y:-3.123175 Z:233.347878 E:0.000000 Recv: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000 Recv: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000 La posizione \"mcu\" ( stepper.get_mcu_position() nel codice) \u00e8 il numero totale di passaggi che il microcontrollore ha emesso in direzione positiva meno il numero di passaggi emessi in direzione negativa dall'ultimo microcontrollore Ripristina. Se il robot \u00e8 in movimento quando viene emessa la query, il valore riportato include le mosse memorizzate nel buffer del microcontrollore, ma non include le mosse nella coda di previsione. La posizione \"stepper\" ( stepper.get_commanded_position() ) \u00e8 la posizione del dato stepper come tracciato dal codice della cinematica. Questo corrisponde generalmente alla posizione (in mm) del carrello lungo il suo binario, rispetto a position_endstop specificato nel file di configurazione. (Alcune cinematiche tracciano le posizioni dello stepper in radianti anzich\u00e9 in millimetri.) Se il robot \u00e8 in movimento quando viene emessa la query, il valore riportato include i movimenti memorizzati nel buffer del microcontrollore, ma non include i movimenti sulla coda di previsione. Si possono usare le chiamate toolhead.flush_step_generation() o toolhead.wait_moves() per svuotare completamente il codice look-ahead e generazione di passaggi. La posizione \"cinematica\" ( kin.calc_position() ) \u00e8 la posizione cartesiana della testa di stampa come derivata dalle posizioni \"stepper\" ed \u00e8 relativa al sistema di coordinate specificato nel file di configurazione. Questo pu\u00f2 differire dalla posizione cartesiana richiesta a causa della granularit\u00e0 dei motori passo-passo. Se il robot \u00e8 in movimento quando vengono prese le posizioni \"stepper\", il valore riportato include i movimenti memorizzati nel buffer del microcontrollore, ma non include i movimenti sulla coda di previsione. Si possono usare le chiamate toolhead.flush_step_generation() o toolhead.wait_moves() per svuotare completamente il codice look-ahead e generazione di passaggi. La posizione della \"testa di stampa\" ( toolhead.get_position() ) \u00e8 l'ultima posizione richiesta della testa di stampa in coordinate cartesiane rispetto al sistema di coordinate specificato nel file di configurazione. Se il robot \u00e8 in movimento quando viene emessa la richiesta, il valore riportato include tutti i movimenti richiesti (anche quelli nei buffer in attesa di essere inviati ai driver del motore passo-passo). La posizione \"gcode\" \u00e8 l'ultima posizione richiesta da un comando G1 (o G0 ) in coordinate cartesiane relative al sistema di coordinate specificato nel file di configurazione. Questo pu\u00f2 differire dalla posizione \"toolhead\" se \u00e8 attiva una trasformazione del g-code (ad es. bed_mesh, bed_tilt, skew_correction). Questo pu\u00f2 differire dalle coordinate effettive specificate nell'ultimo comando G1 se l'origine del g-code \u00e8 stata modificata (ad esempio, G92 , SET_GCODE_OFFSET , M221 ). Il comando M114 ( gcode_move.get_status()['gcode_position'] ) riporter\u00e0 l'ultima posizione del g-code rispetto al sistema di coordinate del g-code corrente. La \"gcode base\" \u00e8 la posizione dell'origine del codice g in coordinate cartesiane rispetto al sistema di coordinate specificato nel file di configurazione. Comandi come G92 , SET_GCODE_OFFSET e M221 alterano questo valore. Il \"gcode homing\" \u00e8 la posizione da usare per l'origine del g-code (in coordinate cartesiane relative al sistema di coordinate specificato nel file di configurazione) dopo un comando home G28 . Il comando SET_GCODE_OFFSET pu\u00f2 alterare questo valore. Time \u00b6 Fondamentale per il funzionamento di Klipper \u00e8 la gestione di orologi, orari e timestamp. Klipper esegue azioni sulla stampante programmando eventi che si verificheranno nel prossimo futuro. Ad esempio, per accendere una ventola, il codice potrebbe programmare una modifica a un pin GPIO in 100 ms. \u00c8 raro che il codice tenti di eseguire un'azione istantanea. Pertanto, la gestione del tempo all'interno di Klipper \u00e8 fondamentale per il corretto funzionamento. Esistono tre tipi di tempi tracciati internamente nel software host di Klipper: Ora di sistema. L'ora del sistema utilizza l'orologio del sistema: \u00e8 un numero in virgola mobile memorizzato come secondi ed \u00e8 (generalmente) relativo all'ultimo avvio del computer host. I tempi di sistema hanno un uso limitato nel software: vengono utilizzati principalmente durante l'interazione con il sistema operativo. All'interno del codice host, gli orari di sistema sono spesso archiviati in variabili denominate eventtime o curtime . Tempo di stampa. Il tempo di stampa \u00e8 sincronizzato con l'orologio principale del microcontrollore (il microcontrollore definito nella sezione di configurazione \"[mcu]\"). \u00c8 un numero in virgola mobile memorizzato come secondi ed \u00e8 relativo all'ultimo riavvio dell'mcu principale. \u00c8 possibile convertire da un \"tempo di stampa\" all'orologio hardware del microcontrollore principale moltiplicando il tempo di stampa per la frequenza di frequenza configurata staticamente dell'mcu. Il codice host di alto livello utilizza i tempi di stampa per calcolare quasi tutte le azioni fisiche (ad es. movimento della testa, modifiche del riscaldatore, ecc.). All'interno del codice host, i tempi di stampa sono generalmente memorizzati in variabili denominate print_time o move_time . Orologio MCU. Questo \u00e8 il contatore dell'orologio hardware su ogni microcontrollore. Viene memorizzato come numero intero e la sua velocit\u00e0 di aggiornamento \u00e8 relativa alla frequenza del microcontrollore specificato. Il software host traduce i suoi tempi interni in orologi prima della trasmissione all'mcu. Il codice mcu tiene traccia del tempo solo in tick dell'orologio. All'interno del codice host, i valori di clock vengono tracciati come interi a 64 bit, mentre il codice mcu utilizza interi a 32 bit. All'interno del codice host, gli orologi sono generalmente memorizzati in variabili con nomi contenenti clock o tick . La conversione tra i diversi formati dell'ora \u00e8 implementata principalmente nel codice klippy/clocksync.py . Alcune cose da tenere presenti durante la revisione del codice: Orologi a 32 bit e 64 bit: per ridurre la larghezza di banda e migliorare l'efficienza del microcontrollore, gli orologi sul microcontrollore vengono tracciati come numeri interi a 32 bit. Quando si confrontano due orologi nel codice mcu, la funzione timer_is_before() deve essere sempre utilizzata per garantire che i rollover interi siano gestiti correttamente. Il software host converte gli orologi a 32 bit in orologi a 64 bit aggiungendo i bit di ordine superiore dall'ultimo timestamp mcu che ha ricevuto - nessun messaggio dall'mcu \u00e8 mai pi\u00f9 di 2^31 tick di clock in futuro o nel passato, quindi questa conversione non \u00e8 mai ambigua . L'host converte da clock a 64 bit a clock a 32 bit semplicemente troncando i bit di ordine superiore. Per garantire che non vi siano ambiguit\u00e0 in questa conversione, il codice klippy/chelper/serialqueue.c memorizza i messaggi nel buffer finch\u00e9 non si trovano entro 2^31 tick di clock dall'ora target. Microcontrollori multipli: il software host supporta l'utilizzo di pi\u00f9 microcontrollori su una singola stampante. In questo caso, il \"clock MCU\" di ogni microcontrollore viene tracciato separatamente. Il codice clocksync.py gestisce la deriva dell'orologio tra i microcontrollori modificando il modo in cui converte da \"tempo di stampa\" a \"orologio MCU\". Sul mcus secondario, la frequenza mcu utilizzata in questa conversione viene regolarmente aggiornata per tenere conto della deriva misurata.","title":"Panoramica del codice"},{"location":"Code_Overview.html#panoramica-del-codice","text":"Questo documento descrive il formato generale del codice e il flusso principale del codice di Klipper.","title":"Panoramica del codice"},{"location":"Code_Overview.html#directory-layout","text":"La directory src/ contiene il sorgente C per il codice del microcontrollore. src/atsam/ , src/atsamd/ , src/avr/ , src/linux/ , src/lpc176x/ , src/ Le directory pru/ e src/stm32/ contengono il codice del microcontrollore specifico dell'architettura. src/simulator/ contiene stub di codice che consentono la compilazione di test del microcontrollore su altre architetture. La directory src/generic/ contiene codice di supporto che pu\u00f2 essere utile in diverse architetture. La build fa in modo che le include di \"board/somefile.h\" guardino prima nella directory dell'architettura corrente (ad esempio, src/avr/somefile.h) e poi nella directory generica (ad esempio, src/generic/somefile.h). La directory klippy/ contiene il software host. La maggior parte del software host \u00e8 scritto in Python, tuttavia la directory klippy/chelper/ contiene alcuni helper del codice C. La directory klippy/kinematics/ contiene il codice della cinematica del robot. La directory klippy/extras/ contiene i \"moduli\" estensibili del codice host. La directory lib/ contiene il codice della libreria di terze parti esterne necessarie per creare alcune destinazioni. La directory config/ contiene file di configurazione della stampante di esempio. La directory scripts/ contiene script di build-time utili per compilare il codice del microcontrollore. La directory test/ contiene test case automatizzati. Durante la compilazione, la build potrebbe creare una directory out/ . Questa contiene oggetti temporanei di compilazione. L'oggetto microcontrollore finale che viene creato \u00e8 out/klipper.elf.hex su AVR e out/klipper.bin su ARM.","title":"Directory Layout"},{"location":"Code_Overview.html#flusso-del-codice-del-microcontrollore","text":"L'esecuzione del codice del microcontrollore inizia nel codice specifico dell'architettura (ad esempio, src/avr/main.c ) che alla fine chiama sched_main() che si trova in src/sched.c . Il codice sched_main() inizia eseguendo tutte le funzioni che sono state contrassegnate con la macro DECL_INIT(). Quindi continua a eseguire ripetutamente tutte le funzioni contrassegnate con la macro DECL_TASK(). Una delle principali funzioni dell'attivit\u00e0 \u00e8 command_dispatch() che si trova in src/command.c . Questa funzione viene richiamata dal codice input/output specifico della scheda (es. src/avr/serial.c , src/generic/serial_irq.c ) ed esegue le funzioni di comando associate ai comandi trovati nel flusso di input. Le funzioni di comando vengono dichiarate utilizzando la macro DECL_COMMAND() (consultare il documento protocol per ulteriori informazioni). Le funzioni task, init e comando vengono sempre eseguite con gli interrupt abilitati (tuttavia, possono disabilitare temporaneamente gli interrupt se necessario). Queste funzioni dovrebbero evitare lunghe pause, ritardi o eseguire lavori che durano un tempo significativo. (Lunghi ritardi in queste funzioni di \"attivit\u00e0\" provocano un jitter di pianificazione per altre \"attivit\u00e0\" - ritardi superiori a 100us possono diventare evidenti, ritardi superiori a 500us possono causare ritrasmissioni dei comandi, ritardi superiori a 100 ms possono causare riavvii del watchdog.) Queste funzioni pianificano il lavoro a orari specifici programmando i timer. Le funzioni timer vengono pianificate chiamando sched_add_timer() (che si trova in src/sched.c ). Il codice di pianificazione far\u00e0 in modo che la funzione data venga chiamata all'ora richiesta. Gli interrupt timer sono inizialmente gestiti in un gestore di interrupt specifico dell'architettura (ad esempio, src/avr/timer.c ) che chiama sched_timer_dispatch() situato in src/sched.c . L'interruzione del timer porta all'esecuzione delle funzioni del timer di pianificazione. Le funzioni timer vengono eseguite sempre con gli interrupt disabilitati. Le funzioni del timer dovrebbero sempre completarsi entro pochi microsecondi. Al completamento dell'evento timer, la funzione pu\u00f2 scegliere di riprogrammare se stessa. Nel caso in cui venga rilevato un errore, il codice pu\u00f2 invocare shutdown() (una macro che chiama sched_shutdown() situata in src/sched.c ). Il richiamo di shutdown() provoca l'esecuzione di tutte le funzioni contrassegnate con la macro DECL_SHUTDOWN(). Le funzioni di spegnimento vengono eseguite sempre con gli interrupt disabilitati. Gran parte delle funzionalit\u00e0 del microcontrollore implica il lavoro con pin di input/output per uso generico (GPIO). Per astrarre il codice specifico dell'architettura di basso livello dal codice dell'attivit\u00e0 di alto livello, tutti gli eventi GPIO sono implementati in wrapper specifici dell'architettura (ad esempio, src/avr/gpio.c ). Il codice \u00e8 compilato con l'ottimizzazione \"-flto -fwhole-program\" di gcc che fa un ottimo lavoro di inlining delle funzioni tra le unit\u00e0 di compilazione, quindi la maggior parte di queste minuscole funzioni gpio sono integrate nei loro chiamanti e non ci sono costi di runtime per l'utilizzo loro.","title":"Flusso del codice del microcontrollore"},{"location":"Code_Overview.html#panoramica-del-codice-klippy","text":"Il codice host (Klippy) deve essere eseguito su un computer a basso costo (come un Raspberry Pi) abbinato al microcontrollore. Il codice \u00e8 scritto principalmente in Python, tuttavia utilizza CFFI per implementare alcune funzionalit\u00e0 nel codice C. L'esecuzione iniziale comincia in klippy/klippy.py . Questo legge gli argomenti della riga di comando, apre il file di configurazione della stampante, crea un'istanza degli oggetti principali della stampante e avvia la connessione seriale. L'esecuzione principale dei comandi G-code \u00e8 nel metodo process_commands() in klippy/gcode.py . Questo codice traduce i comandi del codice G in chiamate a oggetti stampante, che spesso traducono le azioni in comandi da eseguire sul microcontrollore (come dichiarato tramite la macro DECL_COMMAND nel codice del microcontrollore). Ci sono quattro thread nel codice host di Klippy. Il thread principale gestisce i comandi gcode in arrivo. Un secondo thread (che risiede interamente nel codice C klippy/chelper/serialqueue.c ) gestisce l'IO di basso livello con la porta seriale. Il terzo thread viene utilizzato per elaborare i messaggi di risposta dal microcontrollore nel codice Python (vedi klippy/serialhdl.py ). Il quarto thread scrive i messaggi di debug nel log (vedi klippy/queuelogger.py ) in modo che gli altri thread non blocchino mai le scritture del log.","title":"Panoramica del codice Klippy"},{"location":"Code_Overview.html#flusso-di-codice-di-un-comando-di-spostamento","text":"Un tipico movimento della stampante inizia quando viene inviato un comando \"G1\" all'host Klippy e si completa quando vengono prodotti i corrispondenti impulsi di passo sul microcontrollore. Questa sezione delinea il flusso di codice di un tipico comando di spostamento. Il documento cinematica fornisce ulteriori informazioni sulla meccanica dei movimenti. L'elaborazione di un comando di spostamento inizia in gcode.py. L'obiettivo di gcode.py \u00e8 tradurre il G-code in chiamate interne. Un comando G1 invocher\u00e0 cmd_G1() in klippy/extras/gcode_move.py. Il codice gcode_move.py gestisce le modifiche all'origine (ad esempio, G92), le modifiche alle posizioni relative rispetto a quelle assolute (ad esempio, G90) e le modifiche alle unit\u00e0 (ad esempio, F6000=100mm/s). Il percorso del codice per una mossa \u00e8: _process_data() -> _process_commands() -> cmd_G1() . Infine viene invocata la classe ToolHead per eseguire la richiesta effettiva: cmd_G1() -> ToolHead.move() La classe ToolHead (in toolhead.py) gestisce \"look-ahead\" e tiene traccia dei tempi delle azioni di stampa. Il percorso di codice principale per una mossa \u00e8: ToolHead.move() -> MoveQueue.add_move() -> MoveQueue.flush() -> Move.set_junction() -> ToolHead._process_moves() . ToolHead.move() crea un oggetto Move() con i parametri del movimento (in spazio cartesiano e in unit\u00e0 di secondi e millimetri). Alla classe cinematica viene data l'opportunit\u00e0 di controllare ogni movimento ( ToolHead.move() -> kin.check_move() ). Le classi cinematiche si trovano nella directory klippy/cinematica/. Il codice check_move() pu\u00f2 generare un errore se il movimento non \u00e8 valida. Se check_move() viene completato correttamente, la cinematica sottostante deve essere in grado di gestire lo spostamento. MoveQueue.add_move() posiziona l'oggetto di spostamento nella coda \"look-ahead\". MoveQueue.flush() determina le velocit\u00e0 di inizio e fine di ogni movimento. Move.set_junction() implementa il \"generatore di trapezi\" per il movimento. Il \"generatore trapezoidale\" suddivide ogni movimento in tre parti: una fase di accelerazione costante, seguita da una fase di velocit\u00e0 costante, seguita da una fase di decelerazione costante. Ogni mossa contiene queste tre fasi in questo ordine, ma alcune fasi possono avere durata zero. Quando viene chiamato ToolHead._process_moves(), tutto ci\u00f2 che riguarda lo spostamento \u00e8 noto: la sua posizione iniziale, la sua posizione finale, la sua accelerazione, la sua velocit\u00e0 di inizio/crociera/finale e la distanza percorsa durante l'accelerazione/crociera/decelerazione. Tutte le informazioni sono memorizzate nella classe Move() e sono nello spazio cartesiano in unit\u00e0 di millimetri e secondi. Klipper utilizza un risolutore iterativo per generare i tempi di passaggio per ogni stepper. Per motivi di efficienza, i tempi di impulso stepper sono generati in codice C. I movimenti vengono prima posizionati su una \"coda di movimento trapezoidale\": ToolHead._process_moves() -> trapq_append() (in klippy/chelper/trapq.c). Vengono quindi generati i tempi di passaggio: ToolHead._process_moves() -> ToolHead._update_move_time() -> MCU_Stepper.generate_steps() -> itersolve_generate_steps() -> itersolve_gen_steps_range() (in klippy/chelper/itersolve.c). L'obiettivo del risolutore iterativo \u00e8 trovare i tempi di passaggio data una funzione che calcola una posizione passo-passo da un tempo. Questo viene fatto \"indovinando\" ripetutamente varie volte fino a quando la formula della posizione dello stepper non restituisce la posizione desiderata del passaggio successivo sullo stepper. Il feedback prodotto da ciascuna ipotesi viene utilizzato per migliorare le ipotesi future in modo che il processo converga rapidamente al tempo desiderato. Le formule della posizione dello stepper cinematico si trovano nella directory klippy/chelper/ (ad es. kin_cart.c, kin_corexy.c, kin_delta.c, kin_extruder.c). Si noti che l'estrusore \u00e8 gestito nella propria classe cinematica: ToolHead._process_moves() -> PrinterExtruder.move() . Poich\u00e9 la classe Move() specifica l'esatto tempo di movimento e poich\u00e9 gli impulsi di passo vengono inviati al microcontrollore con una tempistica specifica, i movimenti passo-passo prodotti dalla classe estrusore saranno sincronizzati con il movimento della testa anche se il codice viene mantenuto separato. Dopo che il risolutore iterativo ha calcolato i tempi di passaggio, questi vengono aggiunti a un array: itersolve_gen_steps_range() -> stepcompress_append() (in klippy/chelper/stepcompress.c). L'array (struct stepcompress.queue) memorizza i corrispondenti tempi del contatore dell'orologio del microcontrollore per ogni passaggio. Qui il valore del \"contatore orologio del microcontrollore\" corrisponde direttamente al contatore hardware del microcontrollore - \u00e8 relativo a quando il microcontrollore \u00e8 stato acceso l'ultima volta. Il prossimo passo importante \u00e8 comprimere i passaggi: stepcompress_flush() -> compress_bisect_add() (in klippy/chelper/stepcompress.c). Questo codice genera e codifica una serie di comandi \"queue_step\" del microcontrollore che corrispondono all'elenco dei tempi di stepper compilati nella fase precedente. Questi comandi \"queue_step\" vengono quindi accodati, assegnati a priorit\u00e0 e inviati al microcontrollore (tramite stepcompress.c:steppersync e serialqueue.c:serialqueue). L'elaborazione dei comandi queue_step sul microcontrollore inizia in src/command.c che analizza il comando e chiama command_queue_step() . Il codice command_queue_step() (in src/stepper.c) aggiunge semplicemente i parametri di ogni comando queue_step a una coda per stepper. In condizioni normali, il comando queue_step viene analizzato e messo in coda almeno 100 ms prima dell'ora del suo primo passaggio. Infine, la generazione degli eventi stepper viene eseguita in stepper_event() . Viene chiamato dall'interruzione del timer hardware all'ora pianificata del primo passaggio. Il codice stepper_event() genera un impulso di passaggio e quindi si riprogramma per essere eseguito al momento dell'impulso di passaggio successivo per i parametri queue_step specificati. I parametri per ogni comando queue_step sono \"interval\", \"count\" e \"add\". Ad alto livello, stepper_event() esegue quanto segue, 'count' volte: do_step(); next_wake_time = last_wake_time + intervallo; intervallo += aggiungi; Quanto sopra pu\u00f2 sembrare un sacco di complessit\u00e0 per eseguire un movimento. Tuttavia, le uniche parti veramente interessanti sono nelle classi ToolHead e cinematica. \u00c8 questa parte del codice che specifica i movimenti e le loro tempistiche. Le restanti parti dell'elaborazione sono per lo pi\u00f9 solo comunicazioni e collegamenti.","title":"Flusso di codice di un comando di spostamento"},{"location":"Code_Overview.html#aggiunta-di-un-modulo-host","text":"Il codice host Klippy ha una capacit\u00e0 di caricamento dinamico dei moduli. Se nel file di configurazione della stampante viene trovata una sezione di configurazione denominata \"[my_module]\", il software tenter\u00e0 automaticamente di caricare il modulo python klippy/extras/my_module.py . Questo sistema di moduli \u00e8 il metodo preferito per aggiungere nuove funzionalit\u00e0 a Klipper. Il modo pi\u00f9 semplice per aggiungere un nuovo modulo \u00e8 utilizzare un modulo esistente come riferimento - vedere klippy/extras/servo.py come esempio. Possono essere utili anche: L'esecuzione del modulo inizia nella funzione load_config() a livello di modulo (per le sezioni di configurazione del modulo [my_module]) o in load_config_prefix() (per le sezioni di configurazione del modulo [my_module my_name]). A questa funzione viene passato un oggetto \"config\" e deve restituire un nuovo \"oggetto stampante\" associato alla sezione di configurazione specificata. Durante il processo di creazione di un'istanza di un nuovo oggetto stampante, l'oggetto di configurazione pu\u00f2 essere utilizzato per leggere i parametri dalla sezione di configurazione specificata. Questo viene fatto usando i metodi config.get() , config.getfloat() , config.getint() , ecc. Assicurati di leggere tutti i valori dalla configurazione durante la costruzione dell'oggetto stampante: se l'utente specifica un parametro di configurazione che non viene letto durante questa fase, si presumer\u00e0 che si tratti di un errore di battitura nella configurazione e verr\u00e0 generato un errore. Usa il metodo config.get_printer() per ottenere un riferimento alla classe principale \"printer\". Questa classe \"stampante\" memorizza i riferimenti a tutti gli \"oggetti stampante\" di cui \u00e8 stata creata un'istanza. Usa il metodo printer.lookup_object() per trovare riferimenti ad altri oggetti stampante. Quasi tutte le funzionalit\u00e0 (anche i moduli cinematici principali) sono incapsulate in uno di questi oggetti stampante. Si noti, tuttavia, che quando viene istanziato un nuovo modulo, non saranno stati istanziati tutti gli altri oggetti stampante. I moduli \"gcode\" e \"pins\" saranno sempre disponibili, ma per altri moduli \u00e8 una buona idea rinviare la ricerca. Registra i gestori di eventi usando il metodo printer.register_event_handler() se il codice deve essere chiamato durante gli \"events\" generati da altri oggetti stampante. Ogni nome di evento \u00e8 una stringa e, per convenzione, \u00e8 il nome del modulo sorgente principale che genera l'evento insieme a un nome breve per l'azione che si sta verificando (ad esempio, \"klippy:connect\"). I parametri passati a ciascun gestore di eventi sono specifici dell'evento dato (cos\u00ec come la gestione delle eccezioni e il contesto di esecuzione). Due eventi di avvio comuni sono: klippy:connect - Questo evento viene generato dopo che tutti gli oggetti stampante sono stati istanziati. Viene comunemente utilizzato per cercare altri oggetti stampante, verificare le impostazioni di configurazione ed eseguire un \"handshake\" iniziale con l'hardware della stampante. klippy:ready - Questo evento viene generato dopo che tutti i gestori di connessione sono stati completati correttamente. Indica che la stampante sta passando a uno stato pronto per gestire le normali operazioni. Non generare un errore in questo callback. Se c'\u00e8 un errore nella configurazione dell'utente, assicurati di sollevarlo durante le fasi load_config() o \"connect event\". Utilizzare raise config.error(\"my error\") o raise printer.config_error (\"my error\") per segnalare l'errore. Utilizzare il modulo \"pin\" per configurare un pin su un microcontrollore. Questo \u00e8 in genere fatto con qualcosa di simile a printer.lookup_object(\"pins\").setup_pin(\"pwm\", config.get(\"my_pin\")) . L'oggetto restituito pu\u00f2 quindi essere comandato in fase di esecuzione. Se l'oggetto stampante definisce un metodo get_status() , il modulo pu\u00f2 esportare informazioni sullo stato tramite macro e tramite Server API . Il metodo get_status() deve restituire un dizionario Python con chiavi che sono stringhe e valori che sono interi, float, stringhe, elenchi, dizionari, True, False o None. \u00c8 possibile utilizzare anche tuple (e tuple con nome) (appaiono come elenchi quando si accede tramite il server API). Gli elenchi e i dizionari esportati devono essere trattati come \"immutabili\" - se il loro contenuto cambia, \u00e8 necessario restituire un nuovo oggetto da get_status() , altrimenti il server API non rilever\u00e0 tali modifiche. Se il modulo necessita dell'accesso alla temporizzazione del sistema o a descrittori di file esterni, utilizzare printer.get_reactor() per ottenere l'accesso alla classe globale \"event reactor\". Questa classe reattore consente di programmare i timer, attendere l'input sui descrittori di file e di \"sopprimere\" il codice host. Non utilizzare variabili globali. Tutto lo stato dovrebbe essere memorizzato nell'oggetto stampante restituito dalla funzione load_config() . Questo \u00e8 importante, altrimenti il comando RESTART potrebbe non funzionare come previsto. Inoltre, per ragioni simili, se vengono aperti file (o socket) esterni, assicurati di registrare un gestore di eventi \"klippy:disconnect\" e chiuderli da quella richiamata. Evitare di accedere alle variabili dei membri interni (o di chiamare metodi che iniziano con un trattino basso) di altri oggetti stampante. L'osservanza di questa convenzione semplifica la gestione delle modifiche future. Si consiglia di assegnare un valore a tutte le variabili membro nel costruttore Python delle classi Python. (E quindi evita di utilizzare la capacit\u00e0 di Python di creare dinamicamente nuove variabili membro.) Se una variabile Python deve memorizzare un valore in virgola mobile, si consiglia di assegnare e manipolare sempre quella variabile con costanti in virgola mobile (e non utilizzare mai costanti intere). Ad esempio, preferisci self.speed = 1. su self.speed = 1 e preferisci self.speed = 2. * x su self.speed = 2 * x . L'uso coerente di valori in virgola mobile pu\u00f2 evitare difficolt\u00e0 di debug nelle conversioni di tipo Python. Se invii il modulo per l'inclusione nel codice Klipper principale, assicurati di inserire un avviso di copyright nella parte superiore del modulo. Vedere i moduli esistenti per il formato preferito.","title":"Aggiunta di un modulo host"},{"location":"Code_Overview.html#aggiunta-di-una-nuova-cinematica","text":"Questa sezione fornisce alcuni suggerimenti sull'aggiunta del supporto a Klipper per ulteriori tipi di cinematica della stampante. Questo tipo di attivit\u00e0 richiede un'ottima comprensione delle formule matematiche per la cinematica di destinazione. Richiede anche capacit\u00e0 di sviluppo software, sebbene sia necessario solo aggiornare il software host. Passi utili: Inizia studiando la sezione \" flusso di codice di un movimento \" e il documento di cinematica . Esaminare le classi cinematiche esistenti nella directory klippy/kinematics/. Le classi cinematiche hanno il compito di convertire una mossa in coordinate cartesiane nel movimento su ogni stepper. Si dovrebbe essere in grado di copiare uno di questi file come punto di partenza. Implementa in C le funzioni di posizione cinematica dello stepper per ogni stepper se non sono gi\u00e0 disponibili (vedi kin_cart.c, kin_corexy.c e kin_delta.c in klippy/chelper/). La funzione dovrebbe chiamare move_get_coord() per convertire un dato tempo di spostamento (in secondi) in una coordinata cartesiana (in millimetri), e quindi calcolare la posizione dello stepper desiderata (in millimetri) da quella coordinata cartesiana. Implementa il metodo calc_position() nella nuova classe cinematica. Questo metodo calcola la posizione della testa di stampa in coordinate cartesiane dalla posizione di ogni stepper. Non \u00e8 necessario che sia efficiente poich\u00e9 in genere viene chiamato solo durante le operazioni di homing e probing. Altri metodi. Implementa i metodi check_move() , get_status() , get_steppers() , home() e set_position() . Queste funzioni sono in genere utilizzate per fornire verifiche cinematiche specifiche. Tuttavia, all'inizio dello sviluppo \u00e8 possibile utilizzare il codice boilerplate qui. Implementare casi di prova. Crea un file g-code con una serie di movimenti che possono testare casi importanti per la cinematica data. Segui la documentazione di debug per convertire questo file di codice G in comandi del microcontrollore. Questo \u00e8 utile per esercitare corner case e per verificare la presenza di regressioni.","title":"Aggiunta di una nuova cinematica"},{"location":"Code_Overview.html#porting-su-un-nuovo-microcontrollore","text":"Questa sezione fornisce alcuni suggerimenti sul porting del codice del microcontrollore di Klipper su una nuova architettura. Questo tipo di attivit\u00e0 richiede una buona conoscenza dello sviluppo embedded e un accesso diretto al microcontrollore di destinazione. Passi utili: Inizia identificando eventuali librerie di terze parti che verranno utilizzate durante il trasferimento. Esempi comuni includono wrapper \"CMSIS\" e librerie \"HAL\" del produttore. Tutto il codice di terze parti deve essere compatibile con GNU GPLv3. Il codice di terze parti dovrebbe essere salvato nella directory lib/ di Klipper. Aggiorna il file lib/README con informazioni su dove e quando \u00e8 stata ottenuta la libreria. \u00c8 preferibile copiare il codice nel repository di Klipper senza modifiche, ma se sono necessarie modifiche, tali modifiche dovrebbero essere elencate esplicitamente nel file lib/README. Crea una nuova sottodirectory di architettura nella directory src/ e aggiungi il supporto iniziale di Kconfig e Makefile. Utilizzare le architetture esistenti come guida. src/simulator fornisce un esempio di base di un punto di partenza minimo. Il primo compito di programmazione \u00e8 portare il supporto di comunicazione alla scheda di destinazione. Questo \u00e8 il passo pi\u00f9 difficile in un nuovo porting. Una volta che la comunicazione di base funziona, i passaggi rimanenti tendono a essere molto pi\u00f9 semplici. \u00c8 tipico utilizzare un dispositivo seriale di tipo UART durante lo sviluppo iniziale poich\u00e9 questi tipi di dispositivi hardware sono generalmente pi\u00f9 facili da abilitare e controllare. Durante questa fase, fai un uso generoso del codice di supporto dalla directory src/generic/ (controlla come src/simulator/Makefile include il codice C generico nella build). \u00c8 inoltre necessario definire timer_read_time() (che restituisce l'orologio di sistema corrente) in questa fase, ma non \u00e8 necessario supportare completamente la gestione di timer irq. Acquisisci familiarit\u00e0 con lo strumento console.py (come descritto nel documento di debug ) e verifica la connettivit\u00e0 al microcontrollore con esso. Questo strumento traduce il protocollo di comunicazione del microcontrollore di basso livello in un formato leggibile dall'uomo. Aggiungi il supporto per l'invio del timer da interrupt hardware. Vedere Klipper commit 970831ee come esempio dei passaggi 1-5 eseguiti per l'architettura LPC176x. Visualizza il supporto di input e output GPIO di base. Vedi Klipper commit c78b9076 come esempio di questo. Riporta periferiche aggiuntive, ad esempio consulta il commit di Klipper 65613aed , c812a40a , e c381d03a . Crea un file di configurazione di Klipper di esempio nella directory config/. Testare il microcontrollore con il programma principale klippy.py. Prendi in considerazione l'aggiunta di build test case nella directory test/. Ulteriori suggerimenti per la programmazione: Evitare di utilizzare \"C bitfields\" per accedere ai registri IO; preferire operazioni di lettura e scrittura dirette di numeri interi a 32 bit, 16 bit o 8 bit. Le specifiche del linguaggio C non specificano chiaramente come il compilatore deve implementare campi di bit C (ad esempio, endianness e layout di bit), ed \u00e8 difficile determinare quali operazioni di I/O si verificheranno su un campo di bit C letto o scritto. Preferibilmente scrivere valori espliciti nei registri IO invece di usare operazioni di lettura-modifica-scrittura. Cio\u00e8, se si aggiorna un campo in un registro IO in cui gli altri campi hanno valori noti, \u00e8 preferibile scrivere in modo esplicito il contenuto completo del registro. Le scritture esplicite producono codice pi\u00f9 piccolo, pi\u00f9 veloce e pi\u00f9 facile da eseguire il debug.","title":"Porting su un nuovo microcontrollore"},{"location":"Code_Overview.html#sistemi-di-coordinate","text":"Internamente, Klipper tiene traccia principalmente della posizione della testa di stampa in coordinate cartesiane relative al sistema di coordinate specificato nel file di configurazione. Cio\u00e8, la maggior parte del codice Klipper non subir\u00e0 mai un cambiamento nei sistemi di coordinate. Se l'utente fa una richiesta per cambiare l'origine (ad esempio, un comando G92 ), allora quell'effetto si ottiene traducendo i comandi futuri nel sistema di coordinate primario. Tuttavia, in alcuni casi \u00e8 utile ottenere la posizione della testa di stampa in qualche altro sistema di coordinate e Klipper ha diversi strumenti per facilitarlo. Questo pu\u00f2 essere visto eseguendo il comando GET_POSITION. Per esempio: Send: GET_POSITION Recv: // mcu: stepper_a:-2060 stepper_b:-1169 stepper_c:-1613 Recv: // stepper: stepper_a:457.254159 stepper_b:466.085669 stepper_c:465.382132 Recv: // kinematic: X:8.339144 Y:-3.131558 Z:233.347121 Recv: // toolhead: X:8.338078 Y:-3.123175 Z:233.347878 E:0.000000 Recv: // gcode: X:8.338078 Y:-3.123175 Z:233.347878 E:0.000000 Recv: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000 Recv: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000 La posizione \"mcu\" ( stepper.get_mcu_position() nel codice) \u00e8 il numero totale di passaggi che il microcontrollore ha emesso in direzione positiva meno il numero di passaggi emessi in direzione negativa dall'ultimo microcontrollore Ripristina. Se il robot \u00e8 in movimento quando viene emessa la query, il valore riportato include le mosse memorizzate nel buffer del microcontrollore, ma non include le mosse nella coda di previsione. La posizione \"stepper\" ( stepper.get_commanded_position() ) \u00e8 la posizione del dato stepper come tracciato dal codice della cinematica. Questo corrisponde generalmente alla posizione (in mm) del carrello lungo il suo binario, rispetto a position_endstop specificato nel file di configurazione. (Alcune cinematiche tracciano le posizioni dello stepper in radianti anzich\u00e9 in millimetri.) Se il robot \u00e8 in movimento quando viene emessa la query, il valore riportato include i movimenti memorizzati nel buffer del microcontrollore, ma non include i movimenti sulla coda di previsione. Si possono usare le chiamate toolhead.flush_step_generation() o toolhead.wait_moves() per svuotare completamente il codice look-ahead e generazione di passaggi. La posizione \"cinematica\" ( kin.calc_position() ) \u00e8 la posizione cartesiana della testa di stampa come derivata dalle posizioni \"stepper\" ed \u00e8 relativa al sistema di coordinate specificato nel file di configurazione. Questo pu\u00f2 differire dalla posizione cartesiana richiesta a causa della granularit\u00e0 dei motori passo-passo. Se il robot \u00e8 in movimento quando vengono prese le posizioni \"stepper\", il valore riportato include i movimenti memorizzati nel buffer del microcontrollore, ma non include i movimenti sulla coda di previsione. Si possono usare le chiamate toolhead.flush_step_generation() o toolhead.wait_moves() per svuotare completamente il codice look-ahead e generazione di passaggi. La posizione della \"testa di stampa\" ( toolhead.get_position() ) \u00e8 l'ultima posizione richiesta della testa di stampa in coordinate cartesiane rispetto al sistema di coordinate specificato nel file di configurazione. Se il robot \u00e8 in movimento quando viene emessa la richiesta, il valore riportato include tutti i movimenti richiesti (anche quelli nei buffer in attesa di essere inviati ai driver del motore passo-passo). La posizione \"gcode\" \u00e8 l'ultima posizione richiesta da un comando G1 (o G0 ) in coordinate cartesiane relative al sistema di coordinate specificato nel file di configurazione. Questo pu\u00f2 differire dalla posizione \"toolhead\" se \u00e8 attiva una trasformazione del g-code (ad es. bed_mesh, bed_tilt, skew_correction). Questo pu\u00f2 differire dalle coordinate effettive specificate nell'ultimo comando G1 se l'origine del g-code \u00e8 stata modificata (ad esempio, G92 , SET_GCODE_OFFSET , M221 ). Il comando M114 ( gcode_move.get_status()['gcode_position'] ) riporter\u00e0 l'ultima posizione del g-code rispetto al sistema di coordinate del g-code corrente. La \"gcode base\" \u00e8 la posizione dell'origine del codice g in coordinate cartesiane rispetto al sistema di coordinate specificato nel file di configurazione. Comandi come G92 , SET_GCODE_OFFSET e M221 alterano questo valore. Il \"gcode homing\" \u00e8 la posizione da usare per l'origine del g-code (in coordinate cartesiane relative al sistema di coordinate specificato nel file di configurazione) dopo un comando home G28 . Il comando SET_GCODE_OFFSET pu\u00f2 alterare questo valore.","title":"Sistemi di coordinate"},{"location":"Code_Overview.html#time","text":"Fondamentale per il funzionamento di Klipper \u00e8 la gestione di orologi, orari e timestamp. Klipper esegue azioni sulla stampante programmando eventi che si verificheranno nel prossimo futuro. Ad esempio, per accendere una ventola, il codice potrebbe programmare una modifica a un pin GPIO in 100 ms. \u00c8 raro che il codice tenti di eseguire un'azione istantanea. Pertanto, la gestione del tempo all'interno di Klipper \u00e8 fondamentale per il corretto funzionamento. Esistono tre tipi di tempi tracciati internamente nel software host di Klipper: Ora di sistema. L'ora del sistema utilizza l'orologio del sistema: \u00e8 un numero in virgola mobile memorizzato come secondi ed \u00e8 (generalmente) relativo all'ultimo avvio del computer host. I tempi di sistema hanno un uso limitato nel software: vengono utilizzati principalmente durante l'interazione con il sistema operativo. All'interno del codice host, gli orari di sistema sono spesso archiviati in variabili denominate eventtime o curtime . Tempo di stampa. Il tempo di stampa \u00e8 sincronizzato con l'orologio principale del microcontrollore (il microcontrollore definito nella sezione di configurazione \"[mcu]\"). \u00c8 un numero in virgola mobile memorizzato come secondi ed \u00e8 relativo all'ultimo riavvio dell'mcu principale. \u00c8 possibile convertire da un \"tempo di stampa\" all'orologio hardware del microcontrollore principale moltiplicando il tempo di stampa per la frequenza di frequenza configurata staticamente dell'mcu. Il codice host di alto livello utilizza i tempi di stampa per calcolare quasi tutte le azioni fisiche (ad es. movimento della testa, modifiche del riscaldatore, ecc.). All'interno del codice host, i tempi di stampa sono generalmente memorizzati in variabili denominate print_time o move_time . Orologio MCU. Questo \u00e8 il contatore dell'orologio hardware su ogni microcontrollore. Viene memorizzato come numero intero e la sua velocit\u00e0 di aggiornamento \u00e8 relativa alla frequenza del microcontrollore specificato. Il software host traduce i suoi tempi interni in orologi prima della trasmissione all'mcu. Il codice mcu tiene traccia del tempo solo in tick dell'orologio. All'interno del codice host, i valori di clock vengono tracciati come interi a 64 bit, mentre il codice mcu utilizza interi a 32 bit. All'interno del codice host, gli orologi sono generalmente memorizzati in variabili con nomi contenenti clock o tick . La conversione tra i diversi formati dell'ora \u00e8 implementata principalmente nel codice klippy/clocksync.py . Alcune cose da tenere presenti durante la revisione del codice: Orologi a 32 bit e 64 bit: per ridurre la larghezza di banda e migliorare l'efficienza del microcontrollore, gli orologi sul microcontrollore vengono tracciati come numeri interi a 32 bit. Quando si confrontano due orologi nel codice mcu, la funzione timer_is_before() deve essere sempre utilizzata per garantire che i rollover interi siano gestiti correttamente. Il software host converte gli orologi a 32 bit in orologi a 64 bit aggiungendo i bit di ordine superiore dall'ultimo timestamp mcu che ha ricevuto - nessun messaggio dall'mcu \u00e8 mai pi\u00f9 di 2^31 tick di clock in futuro o nel passato, quindi questa conversione non \u00e8 mai ambigua . L'host converte da clock a 64 bit a clock a 32 bit semplicemente troncando i bit di ordine superiore. Per garantire che non vi siano ambiguit\u00e0 in questa conversione, il codice klippy/chelper/serialqueue.c memorizza i messaggi nel buffer finch\u00e9 non si trovano entro 2^31 tick di clock dall'ora target. Microcontrollori multipli: il software host supporta l'utilizzo di pi\u00f9 microcontrollori su una singola stampante. In questo caso, il \"clock MCU\" di ogni microcontrollore viene tracciato separatamente. Il codice clocksync.py gestisce la deriva dell'orologio tra i microcontrollori modificando il modo in cui converte da \"tempo di stampa\" a \"orologio MCU\". Sul mcus secondario, la frequenza mcu utilizzata in questa conversione viene regolarmente aggiornata per tenere conto della deriva misurata.","title":"Time"},{"location":"Command_Templates.html","text":"Modelli di comandi \u00b6 Questo documento fornisce informazioni sull'implementazione di sequenze di comandi G-Code nelle sezioni di configurazione gcode_macro (e simili). Denominazione macro G-Code \u00b6 Le maiuscole non sono importanti per il nome della macro G-Code: MY_MACRO e my_macro saranno considerate allo stesso modo e possono essere chiamati in maiuscolo o minuscolo. Se nel nome della macro vengono utilizzati dei numeri, devono trovarsi tutti alla fine del nome (ad es. TEST_MACRO25 \u00e8 valido, ma MACRO25_TEST3 non lo \u00e8). Formattazione di G-Code nel config \u00b6 L'indentazione \u00e8 importante quando si definisce una macro nel file di configurazione. Per specificare una sequenza G-Code su pi\u00f9 righe \u00e8 importante che ogni riga abbia un'indentazione adeguata. Per esempio: [gcode_macro led_lampeggiante] gcode: SET_PIN PIN=my_led VALUE=1 G4 P2000 SET_PIN PIN=my_led VALUE=0 Nota come l'opzione di configurazione gcode: inizia sempre all'inizio della riga e le righe successive nella macro G-Code non iniziano mai all'inizio. Aggiungi una descrizione alla tua macro \u00b6 Per aiutare a identificare la funzionalit\u00e0 \u00e8 possibile aggiungere una breve descrizione. Aggiungi descrizione: con un breve testo per descrivere la funzionalit\u00e0. L'impostazione predefinita \u00e8 \"Macro codice G\" se non specificato. Per esempio: [gcode_macro led_lampeggiante] description: Esegue lampeggio del led una volta gcode: SET_PIN PIN=my_led VALUE=1 G4 P2000 SET_PIN PIN=my_led VALUE=0 Il terminale visualizzer\u00e0 la descrizione quando si utilizza il comando HELP o la funzione di completamento automatico. Salva/ripristina lo stato per i movimenti G-Code \u00b6 Sfortunatamente, il linguaggio di comando G-Code pu\u00f2 essere difficile da usare. Il meccanismo standard per spostare la testa di stampa \u00e8 tramite il comando G1 (il comando G0 \u00e8 un alias per G1 e pu\u00f2 essere usato in modo intercambiabile con esso). Tuttavia, questo comando si basa sull'impostazione dello \"stato di analisi del codice G\" da M82 , M83 , G90 , G91 , G92 e precedenti comandi G1 . Quando si crea una macro G-Code \u00e8 una buona idea impostare sempre in modo esplicito lo stato di analisi del G-Code prima di emettere un comando G1 . (Altrimenti, c'\u00e8 il rischio che il comando G1 faccia una richiesta indesiderabile.) Un modo comune per farlo \u00e8 avvolgere le mosse G1 in SAVE_GCODE_STATE , G91 e RESTORE_GCODE_STATE . Per esempio: [gcode_macro MOVE_UP] gcode: SAVE_GCODE_STATE NAME=my_move_up_state G91 G1 Z10 F300 RESTORE_GCODE_STATE NAME=my_move_up_state Il comando G91 pone lo stato di analisi del codice G in \"modalit\u00e0 di spostamento relativo\" e il comando RESTORE_GCODE_STATE ripristina lo stato a quello che era prima di entrare nella macro. Assicurati di specificare una velocit\u00e0 esplicita (tramite il parametro F ) sul primo comando G1 . Espansione del modello \u00b6 La sezione di configurazione di gcode_macro gcode: viene valutata utilizzando il linguaggio del modello Jinja2. \u00c8 possibile valutare le espressioni in fase di esecuzione racchiudendole in caratteri { } o utilizzando istruzioni condizionali racchiuse in {% %} . Vedere la documentazione Jinja2 per ulteriori informazioni sulla sintassi. Un esempio di macro complessa: [gcode_macro clean_nozzle] gcode: {% set wipe_count = 8 %} SAVE_GCODE_STATE NAME=clean_nozzle_state G90 G0 Z15 F300 {% for wipe in range(wipe_count) %} {% for coordinate in [(275, 4),(235, 4)] %} G0 X{coordinate[0]} Y{coordinate[1] + 0.25 * wipe} Z9.7 F12000 {% endfor %} {% endfor %} RESTORE_GCODE_STATE NAME=clean_nozzle_state Parametri Macro \u00b6 Spesso \u00e8 utile controllare i parametri passati alla macro quando viene chiamata. Questi parametri sono disponibili tramite la pseudo-variabile params . Ad esempio, se la macro: [gcode_macro SET_PERCENT] gcode: M117 Now at { params.VALUE|float * 100 }% sono stati invocati come SET_PERCENT VALUE=.2 verrebbero valutati in M117 Now at 20% . Si noti che i nomi dei parametri sono sempre in maiuscolo quando vengono valutati nella macro e vengono sempre passati come stringhe. Se si eseguono calcoli matematici, devono essere convertiti esplicitamente in numeri interi o float. \u00c8 comune usare la direttiva Jinja2 set per usare un parametro predefinito e assegnare il risultato a un nome locale. Per esempio: [gcode_macro SET_BED_TEMPERATURE] gcode: {% set bed_temp = params.TEMPERATURE|default(40)|float %} M140 S{bed_temp La variabile \"rawparams\" \u00b6 \u00c8 possibile accedere ai parametri completi non analizzati per la macro in esecuzione tramite la pseudo-variabile rawparams . Nota che questo includer\u00e0 tutti i commenti che facevano parte del comando originale. Vedere il file sample-macros.cfg per un esempio che mostra come sovrascrivere il comando M117 usando rawparams . La variabile \"printer\" \u00b6 \u00c8 possibile ispezionare (e modificare) lo stato corrente della stampante tramite la pseudo-variabile printer . Per esempio: [gcode_macro slow_fan] gcode: M106 S{ printer.fan.speed * 0.9 * 255} I campi disponibili sono definiti nel documento Status Reference . Importante! Le macro vengono prima valutate per intero e solo dopo vengono eseguiti i comandi risultanti. Se una macro emette un comando che altera lo stato della stampante, i risultati di tale cambiamento di stato non saranno visibili durante la valutazione della macro. Ci\u00f2 pu\u00f2 anche comportare un comportamento impercettibile quando una macro genera comandi che chiamano altre macro, poich\u00e9 la macro chiamata viene valutata quando viene richiamata (che avviene dopo l'intera valutazione della macro chiamante). Per convenzione, il nome immediatamente successivo a printer \u00e8 il nome di una sezione di configurazione. Quindi, ad esempio, printer.fan si riferisce all'oggetto fan creato dalla sezione di configurazione [fan] . Ci sono alcune eccezioni a questa regola, in particolare gli oggetti gcode_move e toolhead . Se la sezione di configurazione contiene spazi, \u00e8 possibile accedervi tramite l'accessor [ ] , ad esempio: printer[\"generic_heater my_chamber_heater\"].temperature . Si noti che la direttiva Jinja2 set pu\u00f2 assegnare un nome locale a un oggetto nella gerarchia printer . Ci\u00f2 pu\u00f2 rendere le macro pi\u00f9 leggibili e ridurre la digitazione. Per esempio: [gcode_macro QUERY_HTU21D] gcode: {% set sensor = printer[\"htu21d my_sensor\"] %} M117 Temp:{sensor.temperature} Humidity:{sensor.humidity} Azioni \u00b6 Sono disponibili alcuni comandi che possono alterare lo stato della stampante. Ad esempio, { action_emergency_stop() } provocherebbe l'arresto della stampante. Si noti che queste azioni vengono eseguite nel momento in cui viene valutata la macro, il che potrebbe richiedere un periodo di tempo significativo prima dell'esecuzione dei comandi g-code generati. Comandi \"azione\" disponibili: action_respond_info(msg) : scrive il dato msg sullo pseudo-terminale /tmp/printer. Ogni riga di msg verr\u00e0 inviata con un prefisso \"//\". action_raise_error(msg) : annulla la macro corrente (e qualsiasi macro chiamante) e scrivie il dato msg sullo pseudo-terminale /tmp/printer. La prima riga di msg verr\u00e0 inviata con un prefisso \"!!\" e le righe successive avranno un prefisso \"//\". action_emergency_stop(msg) : fa passare la stampante a uno stato di spegnimento. Il parametro msg \u00e8 opzionale, pu\u00f2 essere utile per descrivere il motivo dell'arresto. action_call_remote_method(method_name) : chiama un metodo registrato da un client remoto. Se il metodo accetta parametri, questi dovrebbero essere forniti tramite argomenti chiave, ad esempio: action_call_remote_method(\"print_stuff\", my_arg=\"hello_world\") Variabili \u00b6 Il comando SET_GCODE_VARIABLE pu\u00f2 essere utile per salvare lo stato tra le chiamate di macro. I nomi delle variabili non possono contenere caratteri maiuscoli. Per esempio: [gcode_macro start_probe] variable_bed_temp: 0 gcode: # Salva la temperatura target nella variabile bed_temp SET_GCODE_VARIABLE MACRO=start_probe VARIABLE=bed_temp VALUE={printer.heater_bed.target} # Disattiva il riscaldamento del piatto M140 # Esegue sonda PROBE # Chiama la macro finish_probe al completamento finish_probe [gcode_macro finish_probe] gcode: # Ripristinare la temperatura del piatto M140 S{printer[\"gcode_macro start_probe\"].bed_temp} Assicurarsi di tenere in considerazione i tempi della valutazione della macro e dell'esecuzione dei comandi quando si utilizza SET_GCODE_VARIABLE. Gcode ritardati \u00b6 L'opzione di configurazione [delayed_gcode] pu\u00f2 essere utilizzata per eseguire una sequenza gcode ritardata: [delayed_gcode clear_display] gcode: M117 [gcode_macro load_filament] gcode: G91 G1 E50 G90 M400 M117 Load Complete! UPDATE_DELAYED_GCODE ID=clear_display DURATION=10 Quando viene eseguita la macro load_filament sopra, visualizzer\u00e0 un \"Load Complete!\" messaggio al termine dell'estrusione. L'ultima riga di gcode abilita il delay_gcode \"clear_display\", impostato per essere eseguito in 10 secondi. L'opzione di configurazione initial_duration pu\u00f2 essere impostata per eseguire il delay_gcode all'avvio della stampante. Il conto alla rovescia inizia quando la stampante entra nello stato \"ready\". Ad esempio, il codice delay_g riportato di seguito verr\u00e0 eseguito 5 secondi dopo che la stampante \u00e8 pronta, inizializzando il display con un messaggio\"Welcome!\": [delayed_gcode welcome] initial_duration: 5. gcode: M117 Welcome! \u00c8 possibile che un gcode ritardato si ripeta aggiornandosi nell'opzione gcode: [delayed_gcode report_temp] initial_duration: 2. gcode: {action_respond_info(\"Extruder Temp: %.1f\" % (printer.extruder0.temperature))} UPDATE_DELAYED_GCODE ID=report_temp DURATION=2 Il codice delayed_gcode sopra riportato invier\u00e0 \"// Extruder Temp: [ex0_temp]\" a Octoprint ogni 2 secondi. Questo pu\u00f2 essere annullato con il seguente gcode: UPDATE_DELAYED_GCODE ID=report_temp DURATION=0 Modelli di menu \u00b6 Se \u00e8 abilitata una sezione di configurazione display , \u00e8 possibile personalizzare il menu con le sezioni di configurazione menu . I seguenti attributi di sola lettura sono disponibili nei modelli di menu: menu.width - larghezza dell'elemento (numero di colonne di visualizzazione) menu.ns - namespace del elemento menu.event - nome dell'evento che ha attivato lo script menu.input - valore di input, disponibile solo nel contesto dello script di input Le seguenti azioni sono disponibili nei modelli di menu: menu.back(force, update) : eseguir\u00e0 il comando menu back, parametri booleani opzionali <force> e <update> . Quando <force> \u00e8 impostato su True, interromper\u00e0 anche la modifica. Il valore predefinito \u00e8 False. Quando <update> \u00e8 impostato su False, gli elementi del contenitore padre non vengono aggiornati. Il valore predefinito \u00e8 True. menu.exit(force) - eseguir\u00e0 il comando di uscita dal menu, parametro booleano opzionale <force> valore predefinito False. Quando <force> \u00e8 impostato su True, interromper\u00e0 anche la modifica. Il valore predefinito \u00e8 False. Salvare variabili su disco \u00b6 Se \u00e8 stata abilitata una sezione di configurazione save_variables , SAVE_VARIABLE VARIABLE=<nome> VALUE=<valore> pu\u00f2 essere utilizzato per salvare la variabile su disco in modo che possa essere utilizzata tra i riavvii. Tutte le variabili memorizzate vengono caricate nel dict printer.save_variables.variables all'avvio e possono essere utilizzate nelle macro gcode. per evitare righe troppo lunghe puoi aggiungere quanto segue nella parte superiore della macro: {% set svv = printer.save_variables.variables %} Ad esempio, potrebbe essere utilizzato per salvare lo stato dell'hotend 2-in-1-out e quando si avvia una stampa assicurarsi che venga utilizzato l'estrusore attivo, anzich\u00e9 T0: [gcode_macro T1] gcode: ACTIVATE_EXTRUDER extruder=extruder1 SAVE_VARIABLE VARIABLE=currentextruder VALUE='\"extruder1\"' [gcode_macro T0] gcode: ACTIVATE_EXTRUDER extruder=extruder SAVE_VARIABLE VARIABLE=currentextruder VALUE='\"extruder\"' [gcode_macro START_GCODE] gcode: {% set svv = printer.save_variables.variables %} ACTIVATE_EXTRUDER extruder={svv.currentextruder}","title":"Modelli di comandi"},{"location":"Command_Templates.html#modelli-di-comandi","text":"Questo documento fornisce informazioni sull'implementazione di sequenze di comandi G-Code nelle sezioni di configurazione gcode_macro (e simili).","title":"Modelli di comandi"},{"location":"Command_Templates.html#denominazione-macro-g-code","text":"Le maiuscole non sono importanti per il nome della macro G-Code: MY_MACRO e my_macro saranno considerate allo stesso modo e possono essere chiamati in maiuscolo o minuscolo. Se nel nome della macro vengono utilizzati dei numeri, devono trovarsi tutti alla fine del nome (ad es. TEST_MACRO25 \u00e8 valido, ma MACRO25_TEST3 non lo \u00e8).","title":"Denominazione macro G-Code"},{"location":"Command_Templates.html#formattazione-di-g-code-nel-config","text":"L'indentazione \u00e8 importante quando si definisce una macro nel file di configurazione. Per specificare una sequenza G-Code su pi\u00f9 righe \u00e8 importante che ogni riga abbia un'indentazione adeguata. Per esempio: [gcode_macro led_lampeggiante] gcode: SET_PIN PIN=my_led VALUE=1 G4 P2000 SET_PIN PIN=my_led VALUE=0 Nota come l'opzione di configurazione gcode: inizia sempre all'inizio della riga e le righe successive nella macro G-Code non iniziano mai all'inizio.","title":"Formattazione di G-Code nel config"},{"location":"Command_Templates.html#aggiungi-una-descrizione-alla-tua-macro","text":"Per aiutare a identificare la funzionalit\u00e0 \u00e8 possibile aggiungere una breve descrizione. Aggiungi descrizione: con un breve testo per descrivere la funzionalit\u00e0. L'impostazione predefinita \u00e8 \"Macro codice G\" se non specificato. Per esempio: [gcode_macro led_lampeggiante] description: Esegue lampeggio del led una volta gcode: SET_PIN PIN=my_led VALUE=1 G4 P2000 SET_PIN PIN=my_led VALUE=0 Il terminale visualizzer\u00e0 la descrizione quando si utilizza il comando HELP o la funzione di completamento automatico.","title":"Aggiungi una descrizione alla tua macro"},{"location":"Command_Templates.html#salvaripristina-lo-stato-per-i-movimenti-g-code","text":"Sfortunatamente, il linguaggio di comando G-Code pu\u00f2 essere difficile da usare. Il meccanismo standard per spostare la testa di stampa \u00e8 tramite il comando G1 (il comando G0 \u00e8 un alias per G1 e pu\u00f2 essere usato in modo intercambiabile con esso). Tuttavia, questo comando si basa sull'impostazione dello \"stato di analisi del codice G\" da M82 , M83 , G90 , G91 , G92 e precedenti comandi G1 . Quando si crea una macro G-Code \u00e8 una buona idea impostare sempre in modo esplicito lo stato di analisi del G-Code prima di emettere un comando G1 . (Altrimenti, c'\u00e8 il rischio che il comando G1 faccia una richiesta indesiderabile.) Un modo comune per farlo \u00e8 avvolgere le mosse G1 in SAVE_GCODE_STATE , G91 e RESTORE_GCODE_STATE . Per esempio: [gcode_macro MOVE_UP] gcode: SAVE_GCODE_STATE NAME=my_move_up_state G91 G1 Z10 F300 RESTORE_GCODE_STATE NAME=my_move_up_state Il comando G91 pone lo stato di analisi del codice G in \"modalit\u00e0 di spostamento relativo\" e il comando RESTORE_GCODE_STATE ripristina lo stato a quello che era prima di entrare nella macro. Assicurati di specificare una velocit\u00e0 esplicita (tramite il parametro F ) sul primo comando G1 .","title":"Salva/ripristina lo stato per i movimenti G-Code"},{"location":"Command_Templates.html#espansione-del-modello","text":"La sezione di configurazione di gcode_macro gcode: viene valutata utilizzando il linguaggio del modello Jinja2. \u00c8 possibile valutare le espressioni in fase di esecuzione racchiudendole in caratteri { } o utilizzando istruzioni condizionali racchiuse in {% %} . Vedere la documentazione Jinja2 per ulteriori informazioni sulla sintassi. Un esempio di macro complessa: [gcode_macro clean_nozzle] gcode: {% set wipe_count = 8 %} SAVE_GCODE_STATE NAME=clean_nozzle_state G90 G0 Z15 F300 {% for wipe in range(wipe_count) %} {% for coordinate in [(275, 4),(235, 4)] %} G0 X{coordinate[0]} Y{coordinate[1] + 0.25 * wipe} Z9.7 F12000 {% endfor %} {% endfor %} RESTORE_GCODE_STATE NAME=clean_nozzle_state","title":"Espansione del modello"},{"location":"Command_Templates.html#parametri-macro","text":"Spesso \u00e8 utile controllare i parametri passati alla macro quando viene chiamata. Questi parametri sono disponibili tramite la pseudo-variabile params . Ad esempio, se la macro: [gcode_macro SET_PERCENT] gcode: M117 Now at { params.VALUE|float * 100 }% sono stati invocati come SET_PERCENT VALUE=.2 verrebbero valutati in M117 Now at 20% . Si noti che i nomi dei parametri sono sempre in maiuscolo quando vengono valutati nella macro e vengono sempre passati come stringhe. Se si eseguono calcoli matematici, devono essere convertiti esplicitamente in numeri interi o float. \u00c8 comune usare la direttiva Jinja2 set per usare un parametro predefinito e assegnare il risultato a un nome locale. Per esempio: [gcode_macro SET_BED_TEMPERATURE] gcode: {% set bed_temp = params.TEMPERATURE|default(40)|float %} M140 S{bed_temp","title":"Parametri Macro"},{"location":"Command_Templates.html#la-variabile-rawparams","text":"\u00c8 possibile accedere ai parametri completi non analizzati per la macro in esecuzione tramite la pseudo-variabile rawparams . Nota che questo includer\u00e0 tutti i commenti che facevano parte del comando originale. Vedere il file sample-macros.cfg per un esempio che mostra come sovrascrivere il comando M117 usando rawparams .","title":"La variabile \"rawparams\""},{"location":"Command_Templates.html#la-variabile-printer","text":"\u00c8 possibile ispezionare (e modificare) lo stato corrente della stampante tramite la pseudo-variabile printer . Per esempio: [gcode_macro slow_fan] gcode: M106 S{ printer.fan.speed * 0.9 * 255} I campi disponibili sono definiti nel documento Status Reference . Importante! Le macro vengono prima valutate per intero e solo dopo vengono eseguiti i comandi risultanti. Se una macro emette un comando che altera lo stato della stampante, i risultati di tale cambiamento di stato non saranno visibili durante la valutazione della macro. Ci\u00f2 pu\u00f2 anche comportare un comportamento impercettibile quando una macro genera comandi che chiamano altre macro, poich\u00e9 la macro chiamata viene valutata quando viene richiamata (che avviene dopo l'intera valutazione della macro chiamante). Per convenzione, il nome immediatamente successivo a printer \u00e8 il nome di una sezione di configurazione. Quindi, ad esempio, printer.fan si riferisce all'oggetto fan creato dalla sezione di configurazione [fan] . Ci sono alcune eccezioni a questa regola, in particolare gli oggetti gcode_move e toolhead . Se la sezione di configurazione contiene spazi, \u00e8 possibile accedervi tramite l'accessor [ ] , ad esempio: printer[\"generic_heater my_chamber_heater\"].temperature . Si noti che la direttiva Jinja2 set pu\u00f2 assegnare un nome locale a un oggetto nella gerarchia printer . Ci\u00f2 pu\u00f2 rendere le macro pi\u00f9 leggibili e ridurre la digitazione. Per esempio: [gcode_macro QUERY_HTU21D] gcode: {% set sensor = printer[\"htu21d my_sensor\"] %} M117 Temp:{sensor.temperature} Humidity:{sensor.humidity}","title":"La variabile \"printer\""},{"location":"Command_Templates.html#azioni","text":"Sono disponibili alcuni comandi che possono alterare lo stato della stampante. Ad esempio, { action_emergency_stop() } provocherebbe l'arresto della stampante. Si noti che queste azioni vengono eseguite nel momento in cui viene valutata la macro, il che potrebbe richiedere un periodo di tempo significativo prima dell'esecuzione dei comandi g-code generati. Comandi \"azione\" disponibili: action_respond_info(msg) : scrive il dato msg sullo pseudo-terminale /tmp/printer. Ogni riga di msg verr\u00e0 inviata con un prefisso \"//\". action_raise_error(msg) : annulla la macro corrente (e qualsiasi macro chiamante) e scrivie il dato msg sullo pseudo-terminale /tmp/printer. La prima riga di msg verr\u00e0 inviata con un prefisso \"!!\" e le righe successive avranno un prefisso \"//\". action_emergency_stop(msg) : fa passare la stampante a uno stato di spegnimento. Il parametro msg \u00e8 opzionale, pu\u00f2 essere utile per descrivere il motivo dell'arresto. action_call_remote_method(method_name) : chiama un metodo registrato da un client remoto. Se il metodo accetta parametri, questi dovrebbero essere forniti tramite argomenti chiave, ad esempio: action_call_remote_method(\"print_stuff\", my_arg=\"hello_world\")","title":"Azioni"},{"location":"Command_Templates.html#variabili","text":"Il comando SET_GCODE_VARIABLE pu\u00f2 essere utile per salvare lo stato tra le chiamate di macro. I nomi delle variabili non possono contenere caratteri maiuscoli. Per esempio: [gcode_macro start_probe] variable_bed_temp: 0 gcode: # Salva la temperatura target nella variabile bed_temp SET_GCODE_VARIABLE MACRO=start_probe VARIABLE=bed_temp VALUE={printer.heater_bed.target} # Disattiva il riscaldamento del piatto M140 # Esegue sonda PROBE # Chiama la macro finish_probe al completamento finish_probe [gcode_macro finish_probe] gcode: # Ripristinare la temperatura del piatto M140 S{printer[\"gcode_macro start_probe\"].bed_temp} Assicurarsi di tenere in considerazione i tempi della valutazione della macro e dell'esecuzione dei comandi quando si utilizza SET_GCODE_VARIABLE.","title":"Variabili"},{"location":"Command_Templates.html#gcode-ritardati","text":"L'opzione di configurazione [delayed_gcode] pu\u00f2 essere utilizzata per eseguire una sequenza gcode ritardata: [delayed_gcode clear_display] gcode: M117 [gcode_macro load_filament] gcode: G91 G1 E50 G90 M400 M117 Load Complete! UPDATE_DELAYED_GCODE ID=clear_display DURATION=10 Quando viene eseguita la macro load_filament sopra, visualizzer\u00e0 un \"Load Complete!\" messaggio al termine dell'estrusione. L'ultima riga di gcode abilita il delay_gcode \"clear_display\", impostato per essere eseguito in 10 secondi. L'opzione di configurazione initial_duration pu\u00f2 essere impostata per eseguire il delay_gcode all'avvio della stampante. Il conto alla rovescia inizia quando la stampante entra nello stato \"ready\". Ad esempio, il codice delay_g riportato di seguito verr\u00e0 eseguito 5 secondi dopo che la stampante \u00e8 pronta, inizializzando il display con un messaggio\"Welcome!\": [delayed_gcode welcome] initial_duration: 5. gcode: M117 Welcome! \u00c8 possibile che un gcode ritardato si ripeta aggiornandosi nell'opzione gcode: [delayed_gcode report_temp] initial_duration: 2. gcode: {action_respond_info(\"Extruder Temp: %.1f\" % (printer.extruder0.temperature))} UPDATE_DELAYED_GCODE ID=report_temp DURATION=2 Il codice delayed_gcode sopra riportato invier\u00e0 \"// Extruder Temp: [ex0_temp]\" a Octoprint ogni 2 secondi. Questo pu\u00f2 essere annullato con il seguente gcode: UPDATE_DELAYED_GCODE ID=report_temp DURATION=0","title":"Gcode ritardati"},{"location":"Command_Templates.html#modelli-di-menu","text":"Se \u00e8 abilitata una sezione di configurazione display , \u00e8 possibile personalizzare il menu con le sezioni di configurazione menu . I seguenti attributi di sola lettura sono disponibili nei modelli di menu: menu.width - larghezza dell'elemento (numero di colonne di visualizzazione) menu.ns - namespace del elemento menu.event - nome dell'evento che ha attivato lo script menu.input - valore di input, disponibile solo nel contesto dello script di input Le seguenti azioni sono disponibili nei modelli di menu: menu.back(force, update) : eseguir\u00e0 il comando menu back, parametri booleani opzionali <force> e <update> . Quando <force> \u00e8 impostato su True, interromper\u00e0 anche la modifica. Il valore predefinito \u00e8 False. Quando <update> \u00e8 impostato su False, gli elementi del contenitore padre non vengono aggiornati. Il valore predefinito \u00e8 True. menu.exit(force) - eseguir\u00e0 il comando di uscita dal menu, parametro booleano opzionale <force> valore predefinito False. Quando <force> \u00e8 impostato su True, interromper\u00e0 anche la modifica. Il valore predefinito \u00e8 False.","title":"Modelli di menu"},{"location":"Command_Templates.html#salvare-variabili-su-disco","text":"Se \u00e8 stata abilitata una sezione di configurazione save_variables , SAVE_VARIABLE VARIABLE=<nome> VALUE=<valore> pu\u00f2 essere utilizzato per salvare la variabile su disco in modo che possa essere utilizzata tra i riavvii. Tutte le variabili memorizzate vengono caricate nel dict printer.save_variables.variables all'avvio e possono essere utilizzate nelle macro gcode. per evitare righe troppo lunghe puoi aggiungere quanto segue nella parte superiore della macro: {% set svv = printer.save_variables.variables %} Ad esempio, potrebbe essere utilizzato per salvare lo stato dell'hotend 2-in-1-out e quando si avvia una stampa assicurarsi che venga utilizzato l'estrusore attivo, anzich\u00e9 T0: [gcode_macro T1] gcode: ACTIVATE_EXTRUDER extruder=extruder1 SAVE_VARIABLE VARIABLE=currentextruder VALUE='\"extruder1\"' [gcode_macro T0] gcode: ACTIVATE_EXTRUDER extruder=extruder SAVE_VARIABLE VARIABLE=currentextruder VALUE='\"extruder\"' [gcode_macro START_GCODE] gcode: {% set svv = printer.save_variables.variables %} ACTIVATE_EXTRUDER extruder={svv.currentextruder}","title":"Salvare variabili su disco"},{"location":"Config_Changes.html","text":"Modifiche alla configurazione \u00b6 Questo documento copre le modifiche software recenti al file di configurazione che non sono compatibili con le versioni precedenti. \u00c8 una buona idea rivedere questo documento durante l'aggiornamento del software Klipper. Tutte le date in questo documento sono approssimative. Cambiamenti \u00b6 20220616: in precedenza era possibile eseguire il flashing di un rp2040 in modalit\u00e0 bootloader eseguendo make flash FLASH_DEVICE=first . Il comando equivalente \u00e8 ora make flash FLASH_DEVICE=2e8a:0003 . 20220612: Il microcontrollore rp2040 ora ha una soluzione alternativa per l'errata USB \"rp2040-e5\". Ci\u00f2 dovrebbe rendere pi\u00f9 affidabili le connessioni USB iniziali. Tuttavia, potrebbe comportare un cambiamento nel comportamento del pin gpio15. \u00c8 improbabile che il cambiamento di comportamento di gpio15 sia evidente. 20220407: l'opzione di configurazione temperature_fan pid_integral_max \u00e8 stata rimossa (era deprecata su 20210612). 20220407: L'ordine dei colori predefinito per i LED pca9632 \u00e8 ora \"RGBW\". Aggiungi un'impostazione esplicita color_order: RBGW alla sezione di configurazione di pca9632 per ottenere il comportamento precedente. 20220330: Il formato delle informazioni di stato printer.neopixel.color_data per i moduli neopixel e dotstar \u00e8 cambiato. Le informazioni sono ora memorizzate come un elenco di elenchi di colori (invece di un elenco di dizionari). Per i dettagli, vedere il riferimento dello stato . 20220307: M73 non imposter\u00e0 pi\u00f9 l'avanzamento della stampa su 0 se manca P . 20220304: Non esiste pi\u00f9 un valore predefinito per il parametro extruder delle sezioni di configurazione extruder_stepper . Se lo si desidera, specificare esplicitamente extruder: extruder per associare il motore passo-passo alla coda di movimento \"estrusore\" all'avvio. 20220210: Il comando SYNC_STEPPER_TO_EXTRUDER \u00e8 deprecato; il comando SET_EXTRUDER_STEP_DISTANCE \u00e8 deprecato; l'opzione di configurazione extruder shared_heater \u00e8 deprecata. Queste funzionalit\u00e0 verranno rimosse nel prossimo futuro. Sostituisci SET_EXTRUDER_STEP_DISTANCE con SET_EXTRUDER_ROTATION_DISTANCE . Sostituisci SYNC_STEPPER_TO_EXTRUDER con SYNC_EXTRUDER_MOTION . Sostituisci le sezioni di configurazione dell'estrusore usando shared_heater con le sezioni di configurazione extruder_stepper e aggiorna le macro di attivazione per usare SYNC_EXTRUDER_MOTION . 20220116: Il codice di calcolo della run_current per tmc2130, tmc2208, tmc2209 e tmc2660 \u00e8 cambiato. Per alcune impostazioni di run_current i driver possono ora essere configurati in modo diverso. Questa nuova configurazione dovrebbe essere pi\u00f9 accurata, ma potrebbe invalidare la precedente ottimizzazione del driver tmc. 20211230: Gli script per ottimizzare l'input shaper ( scripts/calibrate_shaper.py e scripts/graph_accelerometer.py ) sono stati migrati per utilizzare Python3 per impostazione predefinita. Di conseguenza, gli utenti devono installare le versioni Python3 di determinati pacchetti (ad esempio sudo apt install python3-numpy python3-matplotlib ) per continuare a utilizzare questi script. Per maggiori dettagli, fare riferimento a Installazione del software . In alternativa, gli utenti possono forzare temporaneamente l'esecuzione di questi script in Python 2 chiamando esplicitamente l'interprete Python2 nella console: python2 ~/klipper/scripts/calibrate_shaper.py ... 20211110: Il sensore di temperatura \"NTC 100K beta 3950\" \u00e8 obsoleto. Questo sensore verr\u00e0 rimosso nel prossimo futuro. La maggior parte degli utenti trover\u00e0 il sensore di temperatura \"Generico 3950\" pi\u00f9 accurato. Per continuare a utilizzare la definizione precedente (in genere meno accurata), definire un termistore personalizzato con temperature1: 25 , resistance1: 100000 e beta: 3950 . 20211104: L'opzione \"step pulse duration\" in \"make menuconfig\" \u00e8 stata rimossa. La durata del passaggio predefinita per i driver TMC configurati in modalit\u00e0 UART o SPI \u00e8 ora di 100 ns. Una nuova impostazione step_pulse_duration nella sezione stepper config dovrebbe essere impostata per tutti gli stepper che necessitano di una durata dell'impulso personalizzata. 20211102: diverse funzionalit\u00e0 deprecate sono state rimosse. L'opzione stepper step_distance \u00e8 stata rimossa (obsoleta nel 20201222). L'alias del sensore rpi_temperature \u00e8 stato rimosso (obsoleto il 20210219). L'opzione mcu pin_map \u00e8 stata rimossa (deprecata su 20210325). La gcode_macro default_parameter_<name> e l'accesso macro ai parametri dei comandi diversi dalla pseudo-variabile params sono stati rimossi (deprecato in 20210503). L'opzione del riscaldatore pid_integral_max \u00e8 stata rimossa (obsoleta il 20210612). 20210929: Klipper v0.10.0 rilasciato. 20210903: Il valore predefinito smooth_time per i riscaldatori \u00e8 cambiato in 1 secondo (da 2 secondi). Per la maggior parte delle stampanti ci\u00f2 si tradurr\u00e0 in un controllo della temperatura pi\u00f9 stabile. 20210830: il nome adxl345 predefinito \u00e8 ora \"adxl345\". Il parametro CHIP predefinito per ACCELEROMETER_MEASURE e ACCELEROMETER_QUERY ora \u00e8 \"adxl345\". 20210830: il comando adxl345 ACCELEROMETER_MEASURE non supporta pi\u00f9 un parametro RATE. Per modificare la frequenza delle query, aggiornare il file printer.cfg ed eseguire un comando RESTART. 20210821: Diverse impostazioni di configurazione in printer.configfile.settings verranno ora riportate come elenchi anzich\u00e9 come stringhe grezze. Se si desidera la stringa grezza effettiva, utilizzare invece printer.configfile.config . 20210819: In alcuni casi, un movimento di riferimento G28 pu\u00f2 terminare in una posizione che \u00e8 nominalmente al di fuori dell'intervallo di movimento valido. In rare situazioni ci\u00f2 pu\u00f2 causare errori di \"spostamento fuori portata\" confusi dopo l'homing. In tal caso, modificare gli script di avvio per spostare la testa utensile in una posizione valida subito dopo l'homing. 20210814: Gli pseudo-pin solo analogici su atmega168 e atmega328 sono stati rinominati da PE0/PE1 a PE2/PE3. 20210720: una sezione controller_fan ora monitora tutti i motori passo-passo per impostazione predefinita (non solo i motori passo-passo cinematici). Se si desidera il comportamento precedente, vedere l'opzione di configurazione stepper nel riferimento di configurazione . 20210703: Una sezione di configurazione samd_sercom deve ora specificare il bus sercom che sta configurando tramite l'opzione sercom . 20210612: L'opzione di configurazione pid_integral_max nelle sezioni riscaldatore e temperature_fan \u00e8 obsoleta. L'opzione verr\u00e0 rimossa nel prossimo futuro. 20210503: The gcode_macro default_parameter_<name> config option is deprecated. Use the params pseudo-variable to access macro parameters. Other methods for accessing macro parameters will be removed in the near future. Most users can replace a default_parameter_NAME: VALUE config option with a line like the following in the start of the macro: {% set NAME = params.NAME|default(VALUE)|float %} . See the Command Templates document for examples. 20210430: il comando SET_VELOCITY_LIMIT (e M204) ora pu\u00f2 impostare una velocit\u00e0, un'accelerazione e una square_corner_velocity maggiori dei valori specificati nel file di configurazione. 20210325: il supporto per l'opzione di configurazione pin_map \u00e8 deprecato. Utilizzare il file sample-aliases.cfg per tradurre i nomi dei pin del microcontroller effettivi. L'opzione di configurazione pin_map verr\u00e0 rimossa nel prossimo futuro. 20210313: Il supporto di Klipper per i microcontrollori che comunicano con il bus CAN \u00e8 cambiato. Se si utilizza il bus CAN, \u00e8 necessario eseguire nuovamente il flashing di tutti i microcontrollori e la configurazione di Klipper deve essere aggiornata . 20210310: Il valore predefinito TMC2660 per driver_SFILT \u00e8 stato modificato da 1 a 0. 20210227: I driver del motore passo-passo TMC in modalit\u00e0 UART o SPI ora vengono interrogati una volta al secondo ogni volta che sono abilitati - se il driver non pu\u00f2 essere contattato o se il driver segnala un errore, Klipper passer\u00e0 allo stato di spegnimento. 20210219: Il modulo rpi_temperature \u00e8 stato rinominato in temperature_host . Sostituisci tutte le occorrenze di sensor_type: rpi_temperature con sensor_type: temperature_host . Il percorso del file di temperatura pu\u00f2 essere specificato nella variabile di configurazione sensor_path . Il nome rpi_temperature \u00e8 deprecato e verr\u00e0 rimosso nel prossimo futuro. 20210201: Il comando TEST_RESONANCES ora disabiliter\u00e0 l'input shaping se era stato precedentemente abilitato (e lo riattiver\u00e0 dopo il test). Per ignorare questo comportamento e mantenere abilitato lo shaping dell'input, \u00e8 possibile passare un parametro aggiuntivo INPUT_SHAPING=1 al comando. 20210201: Il comando ACCELEROMETER_MEASURE aggiunger\u00e0 ora il nome del chip dell'accelerometro al nome del file di output se al chip \u00e8 stato assegnato un nome nella corrispondente sezione adxl345 di printer.cfg. 20201222: L'impostazione step_distance nelle sezioni di configurazione dello stepper \u00e8 obsoleta. Si consiglia di aggiornare la configurazione per utilizzare l'impostazione rotation_distance . Il supporto per step_distance verr\u00e0 rimosso nel prossimo futuro. 20201218: L'impostazione endstop_phase nel modulo endstop_phase \u00e8 stata sostituita con trigger_phase . Se si utilizza il modulo fasi endstop, sar\u00e0 necessario convertire in rotation_distance e ricalibrare eventuali fasi endstop eseguendo il comando ENDSTOP_PHASE_CALIBRATE. 20201218: le stampanti rotanti delta e polari ora devono specificare un gear_ratio per i loro stepper rotanti e potrebbero non specificare pi\u00f9 un parametro step_distance . Vedere il riferimento di configurazione per il formato del nuovo parametro gear_ratio. 20201213: Non \u00e8 valido specificare una Z \"position_endstop\" quando si utilizza \"probe:z_virtual_endstop\". Verr\u00e0 ora generato un errore se viene specificata una Z \"position_endstop\" con \"probe:z_virtual_endstop\". Rimuovere la definizione Z \"position_endstop\" per correggere l'errore. 20201120: La sezione di configurazione [board_pins] ora specifica il nome mcu in un parametro esplicito mcu: . Se si utilizza board_pins per un mcu secondario, \u00e8 necessario aggiornare la configurazione per specificare quel nome. Vedere il riferimento di configurazione per ulteriori dettagli. 20201112: Il tempo riportato da print_stats.print_duration \u00e8 cambiato. La durata precedente alla prima estrusione rilevata \u00e8 ora esclusa. 20201029: L'opzione di configurazione color_order_GRB di neopixel \u00e8 stata rimossa. Se necessario, aggiorna la configurazione per impostare la nuova opzione color_order su RGB, GRB, RGBW o GRBW. 20201029: L'opzione seriale nella sezione di configurazione di mcu non \u00e8 pi\u00f9 impostata su /dev/ttyS0. Nella rara situazione in cui /dev/ttyS0 \u00e8 la porta seriale desiderata, deve essere specificata esplicitamente. 20201020: Klipper v0.9.0 rilasciato. 20200902: Il calcolo della resistenza-to-temperatura dell'RTD per i convertitori MAX31865 \u00e8 stato corretto in modo che non fosse basso. Se si utilizza un dispositivo di questo tipo, \u00e8 necessario ricalibrare la temperatura di stampa e le impostazioni PID. 20200816: L'oggetto printer.gcode della macro gcode \u00e8 stato rinominato in printer.gcode_move . Diverse variabili non documentate in printer.toolhead e printer.gcode sono state rimosse. Vedere docs/Command_Templates.md per un elenco delle variabili di modello disponibili. 20200816: Il sistema \"action_\" della macro gcode \u00e8 cambiato. Sostituisci tutte le chiamate a printer.gcode.action_emergency_stop() con action_emergency_stop() , printer.gcode.action_respond_info() con action_respond_info() e printer.gcode.action_respond_error() con action_raise_error( ) . 20200809: Il sistema di menu \u00e8 stato riscritto. Se il menu \u00e8 stato personalizzato sar\u00e0 necessario aggiornare alla nuova configurazione. Vedere config/example-menu.cfg per i dettagli di configurazione e vedere klippy/extras/display/menu.cfg per esempi. 20200731: Il comportamento dell'attributo progress riportato dall'oggetto stampante virtual_sdcard \u00e8 cambiato. L'avanzamento non viene pi\u00f9 reimpostato su 0 quando una stampa viene sospesa. Ora riporter\u00e0 sempre lo stato di avanzamento in base alla posizione interna del file o 0 se nessun file \u00e8 attualmente caricato. 20200725: Il parametro di configurazione servo enable e il parametro SET_SERVO ENABLE sono stati rimossi. Aggiorna qualsiasi macro per usare SET_SERVO SERVO=my_servo WIDTH=0 per disabilitare un servo. 20200608: Il supporto del display LCD ha cambiato il nome di alcuni \"glifi\" interni. Se \u00e8 stato implementato un layout di visualizzazione personalizzato, potrebbe essere necessario aggiornare ai nomi dei glifi pi\u00f9 recenti (consultare klippy/extras/display/display.cfg per un elenco dei glifi disponibili). 20200606: i nomi dei pin su Linux Mcu sono cambiati. I pin ora hanno nomi nella forma gpiochip<chipid>/gpio<gpio> . Per gpiochip0 puoi anche usare un breve gpio<gpio> . Ad esempio, ci\u00f2 che prima veniva chiamato P20 ora diventa gpio20 o gpiochip0/gpio20 . 20200603: il layout LCD 16x4 predefinito non mostrer\u00e0 pi\u00f9 il tempo rimanente stimato in una stampa. (Verr\u00e0 mostrato solo il tempo trascorso.) Se si desidera il vecchio comportamento, \u00e8 possibile personalizzare la visualizzazione del menu con tali informazioni (vedere la descrizione di display_data in config/example-extras.cfg per i dettagli). 20200531: l'ID prodotto/fornitore USB predefinito \u00e8 ora 0x1d50/0x614e. Questi nuovi ID sono riservati a Klipper (grazie al progetto openmoko). Questa modifica non dovrebbe richiedere alcuna modifica alla configurazione, ma i nuovi ID potrebbero essere visualizzati nei registri di sistema. 20200524: Il valore predefinito per il campo tmc5160 pwm_freq \u00e8 ora zero (anzich\u00e9 uno). 20200425: La variabile del modello di comando gcode_macro printer.heater \u00e8 stata rinominata printer.heaters . 20200313: Il layout lcd predefinito per le stampanti multiestrusore con schermo 16x4 \u00e8 cambiato. Il layout dello schermo del singolo estrusore \u00e8 ora quello predefinito e mostrer\u00e0 l'estrusore attualmente attivo. Per utilizzare il layout di visualizzazione precedente, impostare \"display_group: _multiextruder_16x4\" nella sezione [display] del file printer.cfg. 20200308: La voce di menu predefinita __test \u00e8 stata rimossa. Se il file di configurazione ha un menu personalizzato, assicurati di rimuovere tutti i riferimenti a questa voce di menu __test . 20200308: le opzioni del menu \"deck\" e \"card\" sono state rimosse. Per personalizzare il layout di uno schermo lcd utilizzare le nuove sezioni display_data config (vedi config/example-extras.cfg per i dettagli). 20200109: Il modulo bed_mesh ora fa riferimento alla posizione della sonda per la configurazione della mesh. Pertanto, alcune opzioni di configurazione sono state rinominate per riflettere in modo pi\u00f9 accurato la funzionalit\u00e0 prevista. Per i piatti rettangolari, min_point e max_point sono stati rinominati rispettivamente in mesh_min e mesh_max . Per i piatti rotondi, bed_radius \u00e8 stato rinominato in mesh_radius . \u00c8 stata aggiunta anche una nuova opzione mesh_origin per i piatti rotondi. Si noti che queste modifiche sono anche incompatibili con i profili mesh salvati in precedenza. Se viene rilevato un profilo incompatibile, verr\u00e0 ignorato e pianificato per la rimozione. Il processo di rimozione pu\u00f2 essere completato emettendo il comando SAVE_CONFIG. L'utente dovr\u00e0 ricalibrare ogni profilo. 20191218: la sezione di configurazione del display non supporta pi\u00f9 \"lcd_type: st7567\". Usa invece il tipo di visualizzazione \"uc1701\" - imposta \"lcd_type: uc1701\" e cambia \"rs_pin: some_pin\" in \"rst_pin: some_pin\". Potrebbe anche essere necessario aggiungere un'impostazione di configurazione \"contrasto: 60\". 20191210: I comandi integrati T0, T1, T2, ... sono stati rimossi. Le opzioni di configurazione activate_gcode e deactivate_gcode dell'estrusore sono state rimosse. Se questi comandi (e script) sono necessari, definire le singole macro di stile [gcode_macro T0] che chiamano il comando ACTIVATE_EXTRUDER. Vedere i file config/sample-idex.cfg e sample-multi-extruder.cfg per esempi. 20191210: il supporto per il comando M206 \u00e8 stato rimosso. Sostituisci con chiamate a SET_GCODE_OFFSET. Se \u00e8 necessario il supporto per M206, aggiungere una sezione di configurazione [gcode_macro M206] che richiami SET_GCODE_OFFSET. (Ad esempio \"SET_GCODE_OFFSET Z=-{params.Z}\".) 20191202: il supporto per il parametro \"S\" non documentato del comando \"G4\" \u00e8 stato rimosso. Sostituire eventuali occorrenze di S con il parametro \"P\" standard (il ritardo specificato in millisecondi). 20191126: i nomi USB sono cambiati sui microcontrollori con supporto USB nativo. Ora usano un ID chip univoco per impostazione predefinita (ove disponibile). Se una sezione di configurazione \"mcu\" utilizza un'impostazione \"serial\" che inizia con \"/dev/serial/by-id/\", potrebbe essere necessario aggiornare la configurazione. Esegui \"ls /dev/serial/by-id/*\" in un terminale ssh per determinare il nuovo ID. 20191121: il parametro pressure_advance_lookahead_time \u00e8 stato rimosso. Vedere example.cfg per impostazioni di configurazione alternative. 20191112: la funzionalit\u00e0 di abilitazione virtuale del driver stepper tmc \u00e8 ora abilitata automaticamente se lo stepper non dispone di un pin di abilitazione stepper dedicato. Rimuovere i riferimenti a tmcXXXX:virtual_enable dal file config. La possibilit\u00e0 di controllare pi\u00f9 pin nella configurazione stepper enable_pin \u00e8 stata rimossa. Se sono necessari pi\u00f9 pin, utilizzare una sezione di configurazione multi_pin. 20191107: La sezione di configurazione dell'estrusore primario deve essere specificata come \"extruder\" e non pu\u00f2 pi\u00f9 essere specificata come \"extruder0\". I modelli di comando Gcode che richiedono lo stato dell'estrusore sono ora accessibili tramite \"{printer.extruder}\". 20191021: Klipper v0.8.0 rilasciato 20191003: L'opzione move_to_previous in [safe_z_homing] ora \u00e8 impostata su False. (Era effettivamente Falso prima del 20190918.) 20190918: L'opzione zhop in [safe_z_homing] viene sempre riapplicata dopo il completamento dell'homing dell'asse Z. Ci\u00f2 potrebbe richiedere agli utenti di aggiornare gli script personalizzati basati su questo modulo. 20190806: Il comando SET_NEOPIXEL \u00e8 stato rinominato in SET_LED. 20190726: il codice del dac mcp4728 \u00e8 cambiato. L'indirizzo i2c predefinito \u00e8 ora 0x60 e il riferimento di tensione \u00e8 ora relativo al riferimento interno di 2,048 volt del mcp4728. 20190710: l'opzione z_hop \u00e8 stata rimossa dalla sezione di configurazione [firmware_retract]. Il supporto z_hop era incompleto e potrebbe causare un comportamento errato con diversi filtri dei dati comuni. 20190710: I parametri opzionali del comando PROBE_ACCURACY sono stati modificati. Potrebbe essere necessario aggiornare eventuali macro o script che utilizzano quel comando. 20190628: tutte le opzioni di configurazione sono state rimosse dalla sezione [skew_correction]. La configurazione per skew_correction viene ora eseguita tramite il gcode SET_SKEW. Vedere Correzione inclinazione per l'utilizzo consigliato. 20190607: I parametri \"variable_X\" di gcode_macro (insieme al parametro VALUE di SET_GCODE_VARIABLE) vengono ora analizzati come valori literals di Python. Se \u00e8 necessario assegnare un valore a una stringa, racchiudere il valore tra virgolette in modo che venga valutato come una stringa. 20190606: le opzioni di configurazione \"samples\", \"samples_result\" e \"sample_retract_dist\" sono state spostate nella sezione di configurazione \"probe\". Queste opzioni non sono pi\u00f9 supportate nelle sezioni di configurazione \"delta_calibrate\", \"bed_tilt\", \"bed_mesh\", \"screws_tilt_adjust\", \"z_tilt\" o \"quad_gantry_level\". 20190528: La variabile magica \"status\" nella valutazione del modello gcode_macro \u00e8 stata rinominata \"printer\". 20190520: Il comando SET_GCODE_OFFSET \u00e8 stato modificato; aggiorna tutte le macro del codice g di conseguenza. Il comando non applicher\u00e0 pi\u00f9 l'offset richiesto al successivo comando G1. Il vecchio comportamento pu\u00f2 essere approssimato utilizzando il nuovo parametro \"MOVE=1\". 20190404: i pacchetti software host Python sono stati aggiornati. Gli utenti dovranno eseguire nuovamente lo script ~/klipper/scripts/install-octopi.sh (o in altro modo aggiornare le dipendenze di Python se non si utilizza un'installazione OctoPi standard). 20190404: I parametri i2c_bus e spi_bus (in varie sezioni di configurazione) ora prendono un nome bus anzich\u00e9 un numero. 20190404: I parametri di configurazione sx1509 sono stati modificati. Il parametro 'address' ora \u00e8 'i2c_address' e deve essere specificato come numero decimale. Dove 0x3E \u00e8 stato utilizzato in precedenza, specificare 62. 20190328: Il valore min_speed nella configurazione [temperature_fan] verr\u00e0 ora rispettato e la ventola funzioner\u00e0 sempre a questa velocit\u00e0 o superiore in modalit\u00e0 PID. 20190322: il valore predefinito per \"driver_HEND\" nelle sezioni di configurazione [tmc2660] \u00e8 stato modificato da 6 a 3. Il campo \"driver_VSENSE\" \u00e8 stato rimosso (ora viene calcolato automaticamente da run_current). 20190310: La sezione di configurazione [controller_fan] ora prende sempre un nome (come [controller_fan my_controller_fan]). 20190308: Il campo \"driver_BLANK_TIME_SELECT\" nelle sezioni di configurazione [tmc2130] e [tmc2208] \u00e8 stato rinominato in \"driver_TBL\". 20190308: la sezione di configurazione [tmc2660] \u00e8 stata modificata. Ora deve essere fornito un nuovo parametro di configurazione sense_resistor. Il significato di molti dei parametri driver_XXX \u00e8 cambiato. 20190228: gli utenti di SPI o I2C su schede SAMD21 devono ora specificare i pin del bus tramite una sezione di configurazione [samd_sercom]. 20190224: l'opzione bed_shape \u00e8 stata rimossa da bed_mesh. L'opzione raggio \u00e8 stata rinominata bed_radius. Gli utenti con letti rotondi dovrebbero fornire le opzioni bed_radius e round_probe_count. 20190107: il parametro i2c_address nella sezione di configurazione mcp4451 \u00e8 stato modificato. Questa \u00e8 un'impostazione comune su Smoothieboards. Il nuovo valore \u00e8 la met\u00e0 del vecchio valore (88 dovrebbe essere cambiato in 44 e 90 dovrebbe essere cambiato in 45). 20181220: Klipper v0.7.0 rilasciato","title":"Modifiche alla configurazione"},{"location":"Config_Changes.html#modifiche-alla-configurazione","text":"Questo documento copre le modifiche software recenti al file di configurazione che non sono compatibili con le versioni precedenti. \u00c8 una buona idea rivedere questo documento durante l'aggiornamento del software Klipper. Tutte le date in questo documento sono approssimative.","title":"Modifiche alla configurazione"},{"location":"Config_Changes.html#cambiamenti","text":"20220616: in precedenza era possibile eseguire il flashing di un rp2040 in modalit\u00e0 bootloader eseguendo make flash FLASH_DEVICE=first . Il comando equivalente \u00e8 ora make flash FLASH_DEVICE=2e8a:0003 . 20220612: Il microcontrollore rp2040 ora ha una soluzione alternativa per l'errata USB \"rp2040-e5\". Ci\u00f2 dovrebbe rendere pi\u00f9 affidabili le connessioni USB iniziali. Tuttavia, potrebbe comportare un cambiamento nel comportamento del pin gpio15. \u00c8 improbabile che il cambiamento di comportamento di gpio15 sia evidente. 20220407: l'opzione di configurazione temperature_fan pid_integral_max \u00e8 stata rimossa (era deprecata su 20210612). 20220407: L'ordine dei colori predefinito per i LED pca9632 \u00e8 ora \"RGBW\". Aggiungi un'impostazione esplicita color_order: RBGW alla sezione di configurazione di pca9632 per ottenere il comportamento precedente. 20220330: Il formato delle informazioni di stato printer.neopixel.color_data per i moduli neopixel e dotstar \u00e8 cambiato. Le informazioni sono ora memorizzate come un elenco di elenchi di colori (invece di un elenco di dizionari). Per i dettagli, vedere il riferimento dello stato . 20220307: M73 non imposter\u00e0 pi\u00f9 l'avanzamento della stampa su 0 se manca P . 20220304: Non esiste pi\u00f9 un valore predefinito per il parametro extruder delle sezioni di configurazione extruder_stepper . Se lo si desidera, specificare esplicitamente extruder: extruder per associare il motore passo-passo alla coda di movimento \"estrusore\" all'avvio. 20220210: Il comando SYNC_STEPPER_TO_EXTRUDER \u00e8 deprecato; il comando SET_EXTRUDER_STEP_DISTANCE \u00e8 deprecato; l'opzione di configurazione extruder shared_heater \u00e8 deprecata. Queste funzionalit\u00e0 verranno rimosse nel prossimo futuro. Sostituisci SET_EXTRUDER_STEP_DISTANCE con SET_EXTRUDER_ROTATION_DISTANCE . Sostituisci SYNC_STEPPER_TO_EXTRUDER con SYNC_EXTRUDER_MOTION . Sostituisci le sezioni di configurazione dell'estrusore usando shared_heater con le sezioni di configurazione extruder_stepper e aggiorna le macro di attivazione per usare SYNC_EXTRUDER_MOTION . 20220116: Il codice di calcolo della run_current per tmc2130, tmc2208, tmc2209 e tmc2660 \u00e8 cambiato. Per alcune impostazioni di run_current i driver possono ora essere configurati in modo diverso. Questa nuova configurazione dovrebbe essere pi\u00f9 accurata, ma potrebbe invalidare la precedente ottimizzazione del driver tmc. 20211230: Gli script per ottimizzare l'input shaper ( scripts/calibrate_shaper.py e scripts/graph_accelerometer.py ) sono stati migrati per utilizzare Python3 per impostazione predefinita. Di conseguenza, gli utenti devono installare le versioni Python3 di determinati pacchetti (ad esempio sudo apt install python3-numpy python3-matplotlib ) per continuare a utilizzare questi script. Per maggiori dettagli, fare riferimento a Installazione del software . In alternativa, gli utenti possono forzare temporaneamente l'esecuzione di questi script in Python 2 chiamando esplicitamente l'interprete Python2 nella console: python2 ~/klipper/scripts/calibrate_shaper.py ... 20211110: Il sensore di temperatura \"NTC 100K beta 3950\" \u00e8 obsoleto. Questo sensore verr\u00e0 rimosso nel prossimo futuro. La maggior parte degli utenti trover\u00e0 il sensore di temperatura \"Generico 3950\" pi\u00f9 accurato. Per continuare a utilizzare la definizione precedente (in genere meno accurata), definire un termistore personalizzato con temperature1: 25 , resistance1: 100000 e beta: 3950 . 20211104: L'opzione \"step pulse duration\" in \"make menuconfig\" \u00e8 stata rimossa. La durata del passaggio predefinita per i driver TMC configurati in modalit\u00e0 UART o SPI \u00e8 ora di 100 ns. Una nuova impostazione step_pulse_duration nella sezione stepper config dovrebbe essere impostata per tutti gli stepper che necessitano di una durata dell'impulso personalizzata. 20211102: diverse funzionalit\u00e0 deprecate sono state rimosse. L'opzione stepper step_distance \u00e8 stata rimossa (obsoleta nel 20201222). L'alias del sensore rpi_temperature \u00e8 stato rimosso (obsoleto il 20210219). L'opzione mcu pin_map \u00e8 stata rimossa (deprecata su 20210325). La gcode_macro default_parameter_<name> e l'accesso macro ai parametri dei comandi diversi dalla pseudo-variabile params sono stati rimossi (deprecato in 20210503). L'opzione del riscaldatore pid_integral_max \u00e8 stata rimossa (obsoleta il 20210612). 20210929: Klipper v0.10.0 rilasciato. 20210903: Il valore predefinito smooth_time per i riscaldatori \u00e8 cambiato in 1 secondo (da 2 secondi). Per la maggior parte delle stampanti ci\u00f2 si tradurr\u00e0 in un controllo della temperatura pi\u00f9 stabile. 20210830: il nome adxl345 predefinito \u00e8 ora \"adxl345\". Il parametro CHIP predefinito per ACCELEROMETER_MEASURE e ACCELEROMETER_QUERY ora \u00e8 \"adxl345\". 20210830: il comando adxl345 ACCELEROMETER_MEASURE non supporta pi\u00f9 un parametro RATE. Per modificare la frequenza delle query, aggiornare il file printer.cfg ed eseguire un comando RESTART. 20210821: Diverse impostazioni di configurazione in printer.configfile.settings verranno ora riportate come elenchi anzich\u00e9 come stringhe grezze. Se si desidera la stringa grezza effettiva, utilizzare invece printer.configfile.config . 20210819: In alcuni casi, un movimento di riferimento G28 pu\u00f2 terminare in una posizione che \u00e8 nominalmente al di fuori dell'intervallo di movimento valido. In rare situazioni ci\u00f2 pu\u00f2 causare errori di \"spostamento fuori portata\" confusi dopo l'homing. In tal caso, modificare gli script di avvio per spostare la testa utensile in una posizione valida subito dopo l'homing. 20210814: Gli pseudo-pin solo analogici su atmega168 e atmega328 sono stati rinominati da PE0/PE1 a PE2/PE3. 20210720: una sezione controller_fan ora monitora tutti i motori passo-passo per impostazione predefinita (non solo i motori passo-passo cinematici). Se si desidera il comportamento precedente, vedere l'opzione di configurazione stepper nel riferimento di configurazione . 20210703: Una sezione di configurazione samd_sercom deve ora specificare il bus sercom che sta configurando tramite l'opzione sercom . 20210612: L'opzione di configurazione pid_integral_max nelle sezioni riscaldatore e temperature_fan \u00e8 obsoleta. L'opzione verr\u00e0 rimossa nel prossimo futuro. 20210503: The gcode_macro default_parameter_<name> config option is deprecated. Use the params pseudo-variable to access macro parameters. Other methods for accessing macro parameters will be removed in the near future. Most users can replace a default_parameter_NAME: VALUE config option with a line like the following in the start of the macro: {% set NAME = params.NAME|default(VALUE)|float %} . See the Command Templates document for examples. 20210430: il comando SET_VELOCITY_LIMIT (e M204) ora pu\u00f2 impostare una velocit\u00e0, un'accelerazione e una square_corner_velocity maggiori dei valori specificati nel file di configurazione. 20210325: il supporto per l'opzione di configurazione pin_map \u00e8 deprecato. Utilizzare il file sample-aliases.cfg per tradurre i nomi dei pin del microcontroller effettivi. L'opzione di configurazione pin_map verr\u00e0 rimossa nel prossimo futuro. 20210313: Il supporto di Klipper per i microcontrollori che comunicano con il bus CAN \u00e8 cambiato. Se si utilizza il bus CAN, \u00e8 necessario eseguire nuovamente il flashing di tutti i microcontrollori e la configurazione di Klipper deve essere aggiornata . 20210310: Il valore predefinito TMC2660 per driver_SFILT \u00e8 stato modificato da 1 a 0. 20210227: I driver del motore passo-passo TMC in modalit\u00e0 UART o SPI ora vengono interrogati una volta al secondo ogni volta che sono abilitati - se il driver non pu\u00f2 essere contattato o se il driver segnala un errore, Klipper passer\u00e0 allo stato di spegnimento. 20210219: Il modulo rpi_temperature \u00e8 stato rinominato in temperature_host . Sostituisci tutte le occorrenze di sensor_type: rpi_temperature con sensor_type: temperature_host . Il percorso del file di temperatura pu\u00f2 essere specificato nella variabile di configurazione sensor_path . Il nome rpi_temperature \u00e8 deprecato e verr\u00e0 rimosso nel prossimo futuro. 20210201: Il comando TEST_RESONANCES ora disabiliter\u00e0 l'input shaping se era stato precedentemente abilitato (e lo riattiver\u00e0 dopo il test). Per ignorare questo comportamento e mantenere abilitato lo shaping dell'input, \u00e8 possibile passare un parametro aggiuntivo INPUT_SHAPING=1 al comando. 20210201: Il comando ACCELEROMETER_MEASURE aggiunger\u00e0 ora il nome del chip dell'accelerometro al nome del file di output se al chip \u00e8 stato assegnato un nome nella corrispondente sezione adxl345 di printer.cfg. 20201222: L'impostazione step_distance nelle sezioni di configurazione dello stepper \u00e8 obsoleta. Si consiglia di aggiornare la configurazione per utilizzare l'impostazione rotation_distance . Il supporto per step_distance verr\u00e0 rimosso nel prossimo futuro. 20201218: L'impostazione endstop_phase nel modulo endstop_phase \u00e8 stata sostituita con trigger_phase . Se si utilizza il modulo fasi endstop, sar\u00e0 necessario convertire in rotation_distance e ricalibrare eventuali fasi endstop eseguendo il comando ENDSTOP_PHASE_CALIBRATE. 20201218: le stampanti rotanti delta e polari ora devono specificare un gear_ratio per i loro stepper rotanti e potrebbero non specificare pi\u00f9 un parametro step_distance . Vedere il riferimento di configurazione per il formato del nuovo parametro gear_ratio. 20201213: Non \u00e8 valido specificare una Z \"position_endstop\" quando si utilizza \"probe:z_virtual_endstop\". Verr\u00e0 ora generato un errore se viene specificata una Z \"position_endstop\" con \"probe:z_virtual_endstop\". Rimuovere la definizione Z \"position_endstop\" per correggere l'errore. 20201120: La sezione di configurazione [board_pins] ora specifica il nome mcu in un parametro esplicito mcu: . Se si utilizza board_pins per un mcu secondario, \u00e8 necessario aggiornare la configurazione per specificare quel nome. Vedere il riferimento di configurazione per ulteriori dettagli. 20201112: Il tempo riportato da print_stats.print_duration \u00e8 cambiato. La durata precedente alla prima estrusione rilevata \u00e8 ora esclusa. 20201029: L'opzione di configurazione color_order_GRB di neopixel \u00e8 stata rimossa. Se necessario, aggiorna la configurazione per impostare la nuova opzione color_order su RGB, GRB, RGBW o GRBW. 20201029: L'opzione seriale nella sezione di configurazione di mcu non \u00e8 pi\u00f9 impostata su /dev/ttyS0. Nella rara situazione in cui /dev/ttyS0 \u00e8 la porta seriale desiderata, deve essere specificata esplicitamente. 20201020: Klipper v0.9.0 rilasciato. 20200902: Il calcolo della resistenza-to-temperatura dell'RTD per i convertitori MAX31865 \u00e8 stato corretto in modo che non fosse basso. Se si utilizza un dispositivo di questo tipo, \u00e8 necessario ricalibrare la temperatura di stampa e le impostazioni PID. 20200816: L'oggetto printer.gcode della macro gcode \u00e8 stato rinominato in printer.gcode_move . Diverse variabili non documentate in printer.toolhead e printer.gcode sono state rimosse. Vedere docs/Command_Templates.md per un elenco delle variabili di modello disponibili. 20200816: Il sistema \"action_\" della macro gcode \u00e8 cambiato. Sostituisci tutte le chiamate a printer.gcode.action_emergency_stop() con action_emergency_stop() , printer.gcode.action_respond_info() con action_respond_info() e printer.gcode.action_respond_error() con action_raise_error( ) . 20200809: Il sistema di menu \u00e8 stato riscritto. Se il menu \u00e8 stato personalizzato sar\u00e0 necessario aggiornare alla nuova configurazione. Vedere config/example-menu.cfg per i dettagli di configurazione e vedere klippy/extras/display/menu.cfg per esempi. 20200731: Il comportamento dell'attributo progress riportato dall'oggetto stampante virtual_sdcard \u00e8 cambiato. L'avanzamento non viene pi\u00f9 reimpostato su 0 quando una stampa viene sospesa. Ora riporter\u00e0 sempre lo stato di avanzamento in base alla posizione interna del file o 0 se nessun file \u00e8 attualmente caricato. 20200725: Il parametro di configurazione servo enable e il parametro SET_SERVO ENABLE sono stati rimossi. Aggiorna qualsiasi macro per usare SET_SERVO SERVO=my_servo WIDTH=0 per disabilitare un servo. 20200608: Il supporto del display LCD ha cambiato il nome di alcuni \"glifi\" interni. Se \u00e8 stato implementato un layout di visualizzazione personalizzato, potrebbe essere necessario aggiornare ai nomi dei glifi pi\u00f9 recenti (consultare klippy/extras/display/display.cfg per un elenco dei glifi disponibili). 20200606: i nomi dei pin su Linux Mcu sono cambiati. I pin ora hanno nomi nella forma gpiochip<chipid>/gpio<gpio> . Per gpiochip0 puoi anche usare un breve gpio<gpio> . Ad esempio, ci\u00f2 che prima veniva chiamato P20 ora diventa gpio20 o gpiochip0/gpio20 . 20200603: il layout LCD 16x4 predefinito non mostrer\u00e0 pi\u00f9 il tempo rimanente stimato in una stampa. (Verr\u00e0 mostrato solo il tempo trascorso.) Se si desidera il vecchio comportamento, \u00e8 possibile personalizzare la visualizzazione del menu con tali informazioni (vedere la descrizione di display_data in config/example-extras.cfg per i dettagli). 20200531: l'ID prodotto/fornitore USB predefinito \u00e8 ora 0x1d50/0x614e. Questi nuovi ID sono riservati a Klipper (grazie al progetto openmoko). Questa modifica non dovrebbe richiedere alcuna modifica alla configurazione, ma i nuovi ID potrebbero essere visualizzati nei registri di sistema. 20200524: Il valore predefinito per il campo tmc5160 pwm_freq \u00e8 ora zero (anzich\u00e9 uno). 20200425: La variabile del modello di comando gcode_macro printer.heater \u00e8 stata rinominata printer.heaters . 20200313: Il layout lcd predefinito per le stampanti multiestrusore con schermo 16x4 \u00e8 cambiato. Il layout dello schermo del singolo estrusore \u00e8 ora quello predefinito e mostrer\u00e0 l'estrusore attualmente attivo. Per utilizzare il layout di visualizzazione precedente, impostare \"display_group: _multiextruder_16x4\" nella sezione [display] del file printer.cfg. 20200308: La voce di menu predefinita __test \u00e8 stata rimossa. Se il file di configurazione ha un menu personalizzato, assicurati di rimuovere tutti i riferimenti a questa voce di menu __test . 20200308: le opzioni del menu \"deck\" e \"card\" sono state rimosse. Per personalizzare il layout di uno schermo lcd utilizzare le nuove sezioni display_data config (vedi config/example-extras.cfg per i dettagli). 20200109: Il modulo bed_mesh ora fa riferimento alla posizione della sonda per la configurazione della mesh. Pertanto, alcune opzioni di configurazione sono state rinominate per riflettere in modo pi\u00f9 accurato la funzionalit\u00e0 prevista. Per i piatti rettangolari, min_point e max_point sono stati rinominati rispettivamente in mesh_min e mesh_max . Per i piatti rotondi, bed_radius \u00e8 stato rinominato in mesh_radius . \u00c8 stata aggiunta anche una nuova opzione mesh_origin per i piatti rotondi. Si noti che queste modifiche sono anche incompatibili con i profili mesh salvati in precedenza. Se viene rilevato un profilo incompatibile, verr\u00e0 ignorato e pianificato per la rimozione. Il processo di rimozione pu\u00f2 essere completato emettendo il comando SAVE_CONFIG. L'utente dovr\u00e0 ricalibrare ogni profilo. 20191218: la sezione di configurazione del display non supporta pi\u00f9 \"lcd_type: st7567\". Usa invece il tipo di visualizzazione \"uc1701\" - imposta \"lcd_type: uc1701\" e cambia \"rs_pin: some_pin\" in \"rst_pin: some_pin\". Potrebbe anche essere necessario aggiungere un'impostazione di configurazione \"contrasto: 60\". 20191210: I comandi integrati T0, T1, T2, ... sono stati rimossi. Le opzioni di configurazione activate_gcode e deactivate_gcode dell'estrusore sono state rimosse. Se questi comandi (e script) sono necessari, definire le singole macro di stile [gcode_macro T0] che chiamano il comando ACTIVATE_EXTRUDER. Vedere i file config/sample-idex.cfg e sample-multi-extruder.cfg per esempi. 20191210: il supporto per il comando M206 \u00e8 stato rimosso. Sostituisci con chiamate a SET_GCODE_OFFSET. Se \u00e8 necessario il supporto per M206, aggiungere una sezione di configurazione [gcode_macro M206] che richiami SET_GCODE_OFFSET. (Ad esempio \"SET_GCODE_OFFSET Z=-{params.Z}\".) 20191202: il supporto per il parametro \"S\" non documentato del comando \"G4\" \u00e8 stato rimosso. Sostituire eventuali occorrenze di S con il parametro \"P\" standard (il ritardo specificato in millisecondi). 20191126: i nomi USB sono cambiati sui microcontrollori con supporto USB nativo. Ora usano un ID chip univoco per impostazione predefinita (ove disponibile). Se una sezione di configurazione \"mcu\" utilizza un'impostazione \"serial\" che inizia con \"/dev/serial/by-id/\", potrebbe essere necessario aggiornare la configurazione. Esegui \"ls /dev/serial/by-id/*\" in un terminale ssh per determinare il nuovo ID. 20191121: il parametro pressure_advance_lookahead_time \u00e8 stato rimosso. Vedere example.cfg per impostazioni di configurazione alternative. 20191112: la funzionalit\u00e0 di abilitazione virtuale del driver stepper tmc \u00e8 ora abilitata automaticamente se lo stepper non dispone di un pin di abilitazione stepper dedicato. Rimuovere i riferimenti a tmcXXXX:virtual_enable dal file config. La possibilit\u00e0 di controllare pi\u00f9 pin nella configurazione stepper enable_pin \u00e8 stata rimossa. Se sono necessari pi\u00f9 pin, utilizzare una sezione di configurazione multi_pin. 20191107: La sezione di configurazione dell'estrusore primario deve essere specificata come \"extruder\" e non pu\u00f2 pi\u00f9 essere specificata come \"extruder0\". I modelli di comando Gcode che richiedono lo stato dell'estrusore sono ora accessibili tramite \"{printer.extruder}\". 20191021: Klipper v0.8.0 rilasciato 20191003: L'opzione move_to_previous in [safe_z_homing] ora \u00e8 impostata su False. (Era effettivamente Falso prima del 20190918.) 20190918: L'opzione zhop in [safe_z_homing] viene sempre riapplicata dopo il completamento dell'homing dell'asse Z. Ci\u00f2 potrebbe richiedere agli utenti di aggiornare gli script personalizzati basati su questo modulo. 20190806: Il comando SET_NEOPIXEL \u00e8 stato rinominato in SET_LED. 20190726: il codice del dac mcp4728 \u00e8 cambiato. L'indirizzo i2c predefinito \u00e8 ora 0x60 e il riferimento di tensione \u00e8 ora relativo al riferimento interno di 2,048 volt del mcp4728. 20190710: l'opzione z_hop \u00e8 stata rimossa dalla sezione di configurazione [firmware_retract]. Il supporto z_hop era incompleto e potrebbe causare un comportamento errato con diversi filtri dei dati comuni. 20190710: I parametri opzionali del comando PROBE_ACCURACY sono stati modificati. Potrebbe essere necessario aggiornare eventuali macro o script che utilizzano quel comando. 20190628: tutte le opzioni di configurazione sono state rimosse dalla sezione [skew_correction]. La configurazione per skew_correction viene ora eseguita tramite il gcode SET_SKEW. Vedere Correzione inclinazione per l'utilizzo consigliato. 20190607: I parametri \"variable_X\" di gcode_macro (insieme al parametro VALUE di SET_GCODE_VARIABLE) vengono ora analizzati come valori literals di Python. Se \u00e8 necessario assegnare un valore a una stringa, racchiudere il valore tra virgolette in modo che venga valutato come una stringa. 20190606: le opzioni di configurazione \"samples\", \"samples_result\" e \"sample_retract_dist\" sono state spostate nella sezione di configurazione \"probe\". Queste opzioni non sono pi\u00f9 supportate nelle sezioni di configurazione \"delta_calibrate\", \"bed_tilt\", \"bed_mesh\", \"screws_tilt_adjust\", \"z_tilt\" o \"quad_gantry_level\". 20190528: La variabile magica \"status\" nella valutazione del modello gcode_macro \u00e8 stata rinominata \"printer\". 20190520: Il comando SET_GCODE_OFFSET \u00e8 stato modificato; aggiorna tutte le macro del codice g di conseguenza. Il comando non applicher\u00e0 pi\u00f9 l'offset richiesto al successivo comando G1. Il vecchio comportamento pu\u00f2 essere approssimato utilizzando il nuovo parametro \"MOVE=1\". 20190404: i pacchetti software host Python sono stati aggiornati. Gli utenti dovranno eseguire nuovamente lo script ~/klipper/scripts/install-octopi.sh (o in altro modo aggiornare le dipendenze di Python se non si utilizza un'installazione OctoPi standard). 20190404: I parametri i2c_bus e spi_bus (in varie sezioni di configurazione) ora prendono un nome bus anzich\u00e9 un numero. 20190404: I parametri di configurazione sx1509 sono stati modificati. Il parametro 'address' ora \u00e8 'i2c_address' e deve essere specificato come numero decimale. Dove 0x3E \u00e8 stato utilizzato in precedenza, specificare 62. 20190328: Il valore min_speed nella configurazione [temperature_fan] verr\u00e0 ora rispettato e la ventola funzioner\u00e0 sempre a questa velocit\u00e0 o superiore in modalit\u00e0 PID. 20190322: il valore predefinito per \"driver_HEND\" nelle sezioni di configurazione [tmc2660] \u00e8 stato modificato da 6 a 3. Il campo \"driver_VSENSE\" \u00e8 stato rimosso (ora viene calcolato automaticamente da run_current). 20190310: La sezione di configurazione [controller_fan] ora prende sempre un nome (come [controller_fan my_controller_fan]). 20190308: Il campo \"driver_BLANK_TIME_SELECT\" nelle sezioni di configurazione [tmc2130] e [tmc2208] \u00e8 stato rinominato in \"driver_TBL\". 20190308: la sezione di configurazione [tmc2660] \u00e8 stata modificata. Ora deve essere fornito un nuovo parametro di configurazione sense_resistor. Il significato di molti dei parametri driver_XXX \u00e8 cambiato. 20190228: gli utenti di SPI o I2C su schede SAMD21 devono ora specificare i pin del bus tramite una sezione di configurazione [samd_sercom]. 20190224: l'opzione bed_shape \u00e8 stata rimossa da bed_mesh. L'opzione raggio \u00e8 stata rinominata bed_radius. Gli utenti con letti rotondi dovrebbero fornire le opzioni bed_radius e round_probe_count. 20190107: il parametro i2c_address nella sezione di configurazione mcp4451 \u00e8 stato modificato. Questa \u00e8 un'impostazione comune su Smoothieboards. Il nuovo valore \u00e8 la met\u00e0 del vecchio valore (88 dovrebbe essere cambiato in 44 e 90 dovrebbe essere cambiato in 45). 20181220: Klipper v0.7.0 rilasciato","title":"Cambiamenti"},{"location":"Config_Reference.html","text":"Riferimenti configurazione \u00b6 Questo documento \u00e8 un riferimento per le opzioni disponibili nel file di configurazione di Klipper. Le descrizioni in questo documento sono formattate in modo che sia possibile tagliarle e incollarle in un file di configurazione della stampante. Consulta il documento di installazione per informazioni sulla configurazione di Klipper e sulla scelta di un file di configurazione iniziale. Configurazione del microcontrollore \u00b6 Formato dei nomi dei pin del microcontrollore \u00b6 Molte opzioni di configurazione richiedono il nome di un pin del microcontrollore. Klipper usa i nomi hardware per questi pin, ad esempio \"PA4\". I nomi dei pin possono essere preceduti da ! per indicare che deve essere utilizzata una polarit\u00e0 inversa (ad esempio, trigger su basso anzich\u00e9 alto). I pin di input possono essere preceduti da ^ per indicare che un resistore di pull-up hardware deve essere abilitato per il pin. Se il microcontrollore supporta resistori pull-down, un pin di ingresso pu\u00f2 in alternativa essere preceduto da ~ . Nota, alcune sezioni di configurazione potrebbero \"creare\" pin aggiuntivi. Quando ci\u00f2 si verifica, la sezione di configurazione che definisce i pin deve essere elencata nel file di configurazione prima di qualsiasi sezione che utilizza tali pin. [mcu] \u00b6 Configurazione del microcontrollore primario. [mcu] serial: # La porta seriale per la connessione all'MCU. In caso di dubbi (o se # cambia) vedere \"Dov'\u00e8 la mia porta seriale?\" sezione delle FAQ. # Questo parametro deve essere fornito quando si utilizza una # porta seriale. #baud: 250000 # La velocit\u00e0 di trasmissione da utilizzare. Il valore predefinito \u00e8 250000. #canbus_uuid: # Se si utilizza un dispositivo collegato a un bus CAN, questo imposta # l'identificatore univoco del chip a cui connettersi. Questo valore deve # essere fornito quando si utilizza il bus CAN per la comunicazione. #canbus_interface: # Se si utilizza un dispositivo collegato a un bus CAN, viene impostata # l'interfaccia di rete CAN da utilizzare. L'impostazione predefinita \u00e8 'can0'. #restart_method: # Questo controlla il meccanismo che l'host utilizzer\u00e0 per reimpostare # il microcontrollore. Le scelte sono \"arduino\", \"cheetah\", \"rpi_usb\" e # \"command\". Il metodo 'arduino' (attiva/disattiva DTR) \u00e8 comune su # schede Arduino e cloni. Il metodo 'cheetah' \u00e8 un metodo speciale # necessario per alcune schede Fysetc Cheetah. Il metodo \"rpi_usb\" # \u00e8 utile sulle schede Raspberry Pi con microcontrollori alimentati # tramite USB: disabilita brevemente l'alimentazione a tutte le porte # USB per eseguire un ripristino del microcontrollore. Il metodo # \"comando\" prevede l'invio di un comando Klipper al microcontrollore # in modo che possa reimpostarsi. L'impostazione predefinita \u00e8 # 'arduino' se il microcontrollore comunica su una porta seriale, # altrimenti 'comando'. [mcu my_extra_mcu] \u00b6 Microcontrollori aggiuntivi (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"mcu\"). Microcontrollori aggiuntivi introducono pin aggiuntivi che possono essere configurati come riscaldatori, stepper, ventole, ecc. Ad esempio, se viene introdotta una sezione \"[mcu extra_mcu]\", i pin come \"extra_mcu:ar9\" possono quindi essere utilizzati altrove nella configurazione (dove \"ar9\" \u00e8 un nome pin hardware o un nome alias sul dato mcu). [mcu my_extra_mcu] # Vedere la sezione \"mcu\" per i parametri di configurazione. Impostazioni cinematiche comuni \u00b6 [printer] \u00b6 La sezione printer controlla le impostazioni di alto livello della stampante. [printer] kinematics: # Il tipo di stampante in uso. Questa opzione pu\u00f2 essere una delle # seguenti: cartesian, corexy, corexz, hybrid_corexy, hybrid_corexz, # rotary_delta, delta, deltesian, polar, winch o nessuno. # Questo parametro deve essere specificato. max_velocity: # Velocit\u00e0 massima (in mm/s) della testa di stampa (relativa alla stampa). # Questo parametro deve essere specificato. max_accel: # Accelerazione massima (in mm/s^2) della testina (relativa alla stampa). # Questo parametro deve essere specificato. #max_accel_to_decel: # Una pseudo accelerazione (in mm/s^2) che controlla la velocit\u00e0 con cui # la testa di stampa pu\u00f2 passare dall'accelerazione alla decelerazione. Viene # utilizzato per ridurre la velocit\u00e0 massima di brevi movimenti a zig-zag # (e quindi ridurre le vibrazioni della stampante dovute a questi movimenti). # Il valore predefinito \u00e8 met\u00e0 di max_accel. #square_corner_velocity: 5.0 # La velocit\u00e0 massima (in mm/s) alla quale la testa di stampa pu\u00f2 viaggiare # su un angolo di 90 gradi. Un valore diverso da zero pu\u00f2 ridurre le variazioni # delle portate dell'estrusore consentendo variazioni istantanee della velocit\u00e0 # della testa utensile durante le curve. Questo valore configura l'algoritmo # interno di cornering della velocit\u00e0 centripeta; gli angoli con angoli maggiori # di 90 gradi avranno una velocit\u00e0 in curva maggiore mentre gli angoli con # angoli inferiori a 90 gradi avranno una velocit\u00e0 in curva inferiore. Se questo # \u00e8 impostato su zero, la testa utensile decelerer\u00e0 fino a zero ad ogni angolo. # Il valore predefinito \u00e8 5 mm/s. [stepper] \u00b6 Definizioni di motori passo-passo. Diversi tipi di stampante (come specificato dall'opzione \"cinematica\" nella sezione di configurazione [stampante]) richiedono nomi diversi per lo stepper (ad esempio, stepper_x vs stepper_a ). Di seguito sono riportate le definizioni comuni di stepper. Vedere il documento distanza di rotazione per informazioni sul calcolo del parametro rotation_distance . Consultare il documento Multi-MCU homing per informazioni sull'homing utilizzando pi\u00f9 microcontrollori. [stepper_x] step_pin: # Pin GPIO Step (attivato in alto) . Questo parametro deve essere fornito. dir_pin: # Pin GPIO di direzione (alto indica una direzione positiva). # Questo parametro deve essere fornito. enable_pin: # Pin GPIO di abilitazione (l'impostazione predefinita \u00e8 abilita alto; usa ! # per indicare abilita basso). Se questo parametro non viene fornito, il # driver del motore passo-passo deve essere sempre abilitato. rotation_distance: # Distanza (in mm) che l'asse percorre con una rotazione completa del # motore passo-passo (o viene specificata la marcia finale del rapporto di # trasmissione). Questo parametro deve essere fornito. microsteps: # Il numero di micropassi utilizzati dal driver del motore passo-passo. # Questo parametro deve essere fornito. #full_steps_per_rotation: 200 # Il numero di passi completi per una rotazione del motore passo-passo. # Impostarlo su 200 per un motore passo-passo da 1.8 gradi o su 400 per # un motore da 0.9 gradi. Il valore predefinito \u00e8 200. #gear_ratio: # Il rapporto di trasmissione se il motore passo-passo \u00e8 collegato all'asse # tramite un riduttore. Ad esempio, si pu\u00f2 specificare \"5:1\" se \u00e8 in uso un # riduttore 5 a 1. Se l'asse ha pi\u00f9 riduttori, \u00e8 possibile specificare un elenco # di rapporti di trasmissione separati da virgole (ad esempio, \"57:11, 2:1\"). # Se viene specificato gear_ratio, rotation_distance specifica la distanza # percorsa dall'asse per una rotazione completa dell'ingranaggio finale. # L'impostazione predefinita \u00e8 di non utilizzare un rapporto di trasmissione. #step_pulse_duration: # Il tempo minimo tra il fronte del segnale dell'impulso del passo e il # successivo fronte del segnale \"non passo\". Viene utilizzato anche per # impostare il tempo minimo tra un impulso di passo e un segnale di cambio # di direzione. L'impostazione predefinita \u00e8 0.000000100 (100ns) per gli # stepper TMC configurati in modalit\u00e0 UART o SPI e l'impostazione # predefinita \u00e8 0.000002 (che \u00e8 2us) per tutti gli altri stepper. endstop_pin: # Pin di rilevamento interruttore di fine corsa. Se questo pin di fine corsa # si trova su un mcu diverso dal motore passo-passo, abilita il # \"homing multi-mcu\". Questo parametro deve essere fornito per gli # stepper X, Y e Z su stampanti in stile cartesiano. #position_min: 0 # Distanza minima valida (in mm) alla quale l'utente pu\u00f2 comandare # il movimento dello stepper. Il valore predefinito \u00e8 0 mm. position_endstop: # Posizione del finecorsa (in mm). Questo parametro deve essere fornito # per gli stepper X, Y e Z su stampanti in stile cartesiano. position_max: # Distanza massima valida (in mm) alla quale l'utente pu\u00f2 comandare lo # spostamento dello stepper. Questo parametro deve essere fornito per # gli stepper X, Y e Z su stampanti in stile cartesiano. #homing_speed: 5.0 # Velocit\u00e0 massima (in mm/s) dello stepper durante l'homing. # Il valore predefinito \u00e8 5 mm/s. #homing_retract_dist: 5.0 # Distanza dall'arretramento (in mm) prima della corsa di riferimento # una seconda volta durante la corsa di riferimento. Impostalo a zero per # disabilitare la seconda casa. Il valore predefinito \u00e8 5 mm. #homing_retract_speed: # Velocit\u00e0 da utilizzare nella corsa di ritorno dopo l'homing nel caso in # cui questa dovesse essere diversa dalla velocit\u00e0 di homing, che \u00e8 # l'impostazione predefinita per questo parametro #second_homing_speed: # Velocit\u00e0 (in mm/s) dello stepper durante l'esecuzione del secondo # homing. L'impostazione predefinita \u00e8 homing_speed/2. #homing_positive_dir: # Se true, l'homing far\u00e0 muovere lo stepper in una direzione positiva # (allontanandosi da zero); se falso, home verso zero. \u00c8 meglio utilizzare # l'impostazione predefinita piuttosto che specificare questo parametro. # Il valore predefinito \u00e8 true se position_endstop \u00e8 vicino a position_max # false se vicino a position_min. Cinematica cartesiana \u00b6 Vedere example-cartesian.cfg per un file di configurazione della cinematica cartesiana di esempio. Qui sono descritti solo i parametri specifici delle stampanti cartesiane - vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: cartesian max_z_velocity: # Imposta la velocit\u00e0 massima (in mm/s) di movimento lungo # l'asse z. Questa impostazione pu\u00f2 essere utilizzata per limitare # la velocit\u00e0 massima del motore passo-passo z. L'impostazione # predefinita \u00e8 utilizzare max_velocity per max_z_velocity. max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento # lungo l'asse z. Limita l'accelerazione del motore passo-passo z. # L'impostazione predefinita \u00e8 utilizzare max_accel per max_z_accel. # La sezione stepper_x viene utilizzata per descrivere lo stepper # che controlla l'asse X in un robot cartesiano. [stepper_x] # La sezione stepper_y viene utilizzata per descrivere lo stepper # che controlla l'asse Y in un robot cartesiano. [stepper_y] # La sezione stepper_z viene utilizzata per descrivere lo stepper # che controlla l'asse Z in un robot cartesiano. [stepper_z] Cinematica Delta lineare \u00b6 Vedere example-delta.cfg per un file di configurazione della cinematica delta lineare di esempio. Consultare la guida alla calibrazione delta per informazioni sulla calibrazione. Qui vengono descritti solo i parametri specifici per le stampanti delta lineari - vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: delta max_z_velocity: # Per le stampanti delta questo limita la velocit\u00e0 massima (in mm/s) dei # movimenti con movimento dell'asse z. Questa impostazione pu\u00f2 essere # utilizzata per ridurre la velocit\u00e0 massima dei movimenti su/gi\u00f9 (che # richiedono una velocit\u00e0 di incremento maggiore rispetto ad altri # movimenti su una stampante delta). L'impostazione predefinita \u00e8 # utilizzare max_velocity per max_z_velocity. #max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento lungo # l'asse z. L'impostazione pu\u00f2 essere utile se la stampante pu\u00f2 # raggiungere un'accelerazione maggiore sui movimenti XY rispetto ai # movimenti Z (ad esempio, quando si utilizza l'input shaper). # L'impostazione predefinita \u00e8 utilizzare max_accel per max_z_accel. #minimum_z_position: 0 # La posizione Z minima in cui l'utente pu\u00f2 comandare alla testa di # spostarsi. Il valore predefinito \u00e8 0. delta_radius: # Raggio (in mm) del cerchio orizzontale formato dalle tre torri ad # asse lineare. Questo parametro pu\u00f2 anche essere calcolato come: # delta_radius = smooth_rod_offset - effector_offset - carriage_offset # Questo parametro deve essere fornito. #print_radius: # Il raggio (in mm) delle coordinate XY della testa di stampa valide. # \u00c8 possibile utilizzare questa impostazione per personalizzare il # controllo dell'intervallo dei movimenti della testa. Se qui # viene specificato un valore elevato, potrebbe essere possibile # comandare la collisione della testa di stampa con una torre. # L'impostazione predefinita \u00e8 usare delta_radius per print_radius # (che normalmente impedirebbe una collisione con torri). # La sezione stepper_a descrive lo stepper che controlla la torre # anteriore sinistra (a 210 gradi). Questa sezione controlla anche i # parametri di homing (velocit\u00e0 di homing, homing retract_dist) # per tutte le torri. [stepper_a] position_endstop: # Distanza (in mm) tra l'ugello e il piatto quando l'ugello si trova al # centro dell'area di costruzione e si attiva il finecorsa. Questo # parametro deve essere fornito per stepper_a; per stepper_b e # stepper_c questo parametro \u00e8 predefinito sul valore specificato # per stepper_a. arm_length: # Lunghezza (in mm) dell'asta diagonale che collega questa torre # alla testa di stampa. Questo parametro deve essere fornito per # stepper_a; per stepper_b e stepper_c questo parametro \u00e8 predefinito sul valore specificato per stepper_a. #angle: # Questa opzione specifica l'angolo (in gradi) a cui si trova la torre. # Il valore predefinito \u00e8 210 per stepper_a, 330 per stepper_b e 90 # per stepper_c. # La sezione stepper_b descrive lo stepper che controlla la torre # anteriore destra (a 330 gradi). [stepper_b] # La sezione stepper_c descrive lo stepper che controlla la torre # posteriore (a 90 gradi). [stepper_c] # La sezione delta_calibrate abilita un comando G-code esteso # DELTA_CALIBRATE in grado di calibrare le posizioni e gli angoli # dei finecorsa della torre. [delta_calibrate] radius: # Raggio (in mm) dell'area che pu\u00f2 essere sondata. Questo \u00e8 # il raggio delle coordinate dell'ugello da sondare; se si utilizza # una sonda automatica con un offset XY, scegliere un raggio # sufficientemente piccolo in modo che la sonda si adatti sempre # al piatto. Questo parametro deve essere fornito. #speed: 50 # La velocit\u00e0 (in mm/s) degli spostamenti senza probing durante # la calibrazione. Il valore predefinito \u00e8 50. #horizontal_move_z: 5 # L'altezza (in mm) a cui la testa deve essere comandata di # spostarsi appena prima di avviare un'operazione di sonda. # L'impostazione predefinita \u00e8 5. Cinematica Deltesiana \u00b6 Vedere example-deltesian.cfg per un esempio di file di configurazione della cinematica deltesiana. Qui sono descritti solo i parametri specifici per le stampanti deltesiane - vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: deltesian max_z_velocity: # Per le stampanti deltesiane, ci\u00f2 limita la velocit\u00e0 massima (in mm/s) # dei movimenti con movimento dell'asse z. Questa impostazione pu\u00f2 # essere utilizzata per ridurre la velocit\u00e0 massima dei movimenti su/gi\u00f9 # (che richiedono una velocit\u00e0 di incremento maggiore rispetto ad altri # movimenti su una stampante deltesiana). L'impostazione predefinita # \u00e8 utilizzare max_velocity per max_z_velocity. #max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento lungo # l'asse z. L'impostazione pu\u00f2 essere utile se la stampante pu\u00f2 raggiungere # un'accelerazione maggiore sui movimenti XY rispetto ai movimenti Z # (ad esempio, quando si utilizza l'input shaper). L'impostazione # predefinita \u00e8 utilizzare max_accel per max_z_accel. #minimum_z_position: 0 # La posizione Z minima in cui l'utente pu\u00f2 comandare alla testa di # spostarsi. Il valore predefinito \u00e8 0. #min_angle: 5 # Questo rappresenta l'angolo minimo (in gradi) rispetto all'orizzontale # che le braccia deltesiane possono raggiungere. Questo parametro ha lo # scopo di impedire che i bracci diventino completamente orizzontali, il # che rischierebbe l'inversione accidentale dell'asse XZ. # L'impostazione predefinita \u00e8 5. #print_width: # La distanza (in mm) delle coordinate X della testa utensile valide. # \u00c8 possibile utilizzare questa impostazione per personalizzare il # controllo dell'intervallo dei movimenti della testa utensile. Se # qui viene specificato un valore elevato, potrebbe essere possibile # comandare la collisione della testa utensile con una torre. Questa # impostazione di solito corrisponde alla larghezza del piatto (in mm). #slow_ratio: 3 # Il rapporto utilizzato per limitare la velocit\u00e0 e l'accelerazione sui # movimenti vicini agli estremi dell'asse X. Se la distanza verticale # divisa per la distanza orizzontale supera il valore di slow_ratio, la # velocit\u00e0 e l'accelerazione sono limitate alla met\u00e0 dei loro valori # nominali. Se la distanza verticale divisa per la distanza orizzontale # supera il doppio del valore di slow_ratio, la velocit\u00e0 e l'accelerazione # sono limitate a un quarto dei loro valori nominali. # Il valore predefinito \u00e8 3. # la sezione stepper_left \u00e8 usata per descrivere lo stepper che controlla # la torre di sinistra. Questa sezione controlla anche i parametri di # homing (velocit\u00e0 di homing, homing retract_dist) per tutte le torri. [stepper_left] position_endstop: # Distanza (in mm) tra l'ugello e il piatto quando l'ugello si trova al # centro dell'area di costruzione e vengono attivati i finecorsa. Questo # parametro deve essere fornito per stepper_left; per stepper_right # questo parametro \u00e8 predefinito sul valore specificato per stepper_left. arm_length: # Lunghezza (in mm) dell'asta diagonale che collega il carrello torre # alla testina di stampa. Questo parametro deve essere fornito per # stepper_left; per stepper_right, questo parametro per impostazione # predefinita \u00e8 il valore specificato per stepper_left. arm_x_length: # Distanza orizzontale tra la testina di stampa e la torre quando le # stampanti \u00e8 in homing. Questo parametro deve essere fornito # per stepper_left; per stepper_right, questo parametro per impostazione # predefinita \u00e8 il valore specificato per stepper_left. # La sezione stepper_right \u00e8 usata per descrivere lo stepper che # controlla la torre destra. [stepper_right] # La sezione stepper_y viene utilizzata per descrivere lo stepper che # controlla l'asse Y in un robot deltesiano. [stepper_y] Cinematica CoreXY \u00b6 Vedere example-corexy.cfg per un file cinematico corexy (e h-bot) di esempio. Qui sono descritti solo i parametri specifici per le stampanti corexy - vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: corexy max_z_velocity: # Imposta la velocit\u00e0 massima (in mm/s) di movimento lungo l'asse z. # Questa impostazione pu\u00f2 essere utilizzata per limitare la velocit\u00e0 # massima del motore passo-passo z. L'impostazione predefinita \u00e8 # utilizzare max_velocity per max_z_velocity. max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento # lungo l'asse z. Limita l'accelerazione del motore passo-passo z. # L'impostazione predefinita \u00e8 utilizzare max_accel per max_z_accel. # La sezione stepper_x viene utilizzata per descrivere l'asse X e lo # stepper che controlla il movimento X+Y. [stepper_x] # La sezione stepper_y viene utilizzata per descrivere l'asse Y e lo # stepper che controlla il movimento X+Y. [stepper_y] # La sezione stepper_z viene utilizzata per descrivere l'asse Z [stepper_z] Cinematica CoreXZ \u00b6 Vedere example-corexz.cfg per un file di configurazione della cinematica corexz di esempio. Qui sono descritti solo i parametri specifici per le stampanti corexz - vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: corexz max_z_velocity: # Imposta la velocit\u00e0 massima (in mm/s) di movimento lungo l'asse z. # L'impostazione predefinita \u00e8 utilizzare max_velocity per # max_z_velocity. max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento lungo # l'asse z. L'impostazione predefinita \u00e8 utilizzare max_accel per # max_z_accel. # La sezione stepper_x viene utilizzata per descrivere l'asse X e lo # stepper che controlla il movimento X+Z. [stepper_x] # La sezione stepper_y viene utilizzata per descrivere l'asse Y [stepper_y] # La sezione stepper_z viene utilizzata per descrivere l'asse Z e lo # stepper che controlla il movimento X+Z. [stepper_z] Cinematica Hybrid-CoreXY \u00b6 Vedere example-hybrid-corexy.cfg per un file di configurazione della cinematica corexy ibrida di esempio. Questa cinematica \u00e8 anche nota come cinematica Markforged. Qui vengono descritti solo i parametri specifici delle stampanti corexy ibride, vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: hybrid_corexy max_z_velocity: # Imposta la velocit\u00e0 massima (in mm/s) di movimento lungo # l'asse z. L'impostazione predefinita \u00e8 utilizzare max_velocity # per max_z_velocity. max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento # lungo l'asse z. L'impostazione predefinita \u00e8 utilizzare max_accel # per max_z_accel. # La sezione stepper_x viene utilizzata per descrivere l'asse X e lo # stepper che controlla il movimento X-Y. [stepper_x] # La sezione stepper_y viene utilizzata per descrivere lo stepper # che controlla l'asse Y. [stepper_y] # La sezione stepper_z viene utilizzata per descrivere lo stepper # che controlla l'asse Z. [stepper_z] Cinematica Hybrid-CoreXZ \u00b6 Vedere example-hybrid-corexz.cfg per un file di configurazione della cinematica corexz ibrido di esempio. Questa cinematica \u00e8 anche nota come cinematica Markforged. Qui vengono descritti solo i parametri specifici delle stampanti corexy ibride, vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: hybrid_corexz max_z_velocity: # Questo imposta la velocit\u00e0 massima (in mm/s) di movimento lungo # l'asse z. L'impostazione predefinita \u00e8 utilizzare max_velocity per # max_z_velocity. max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento lungo # l'asse z. L'impostazione predefinita \u00e8 utilizzare max_accel per # max_z_accel. # La sezione stepper_x viene utilizzata per descrivere l'asse X e lo # stepper che controlla il movimento X-Z. [stepper_x] # La sezione stepper_y viene utilizzata per descrivere lo stepper che # controlla l'asse Y. [stepper_y] # La sezione stepper_z viene utilizzata per descrivere lo stepper che # controlla l'asse Z. [stepper_z] Cinematica polare \u00b6 Vedere example-polar.cfg per un file di configurazione della cinematica polare di esempio. Qui sono descritti solo i parametri specifici per le stampanti polari - vedere impostazioni cinematiche comuni per i parametri disponibili. LA CINEMATICA POLARE \u00c8 UN LAVORO IN CORSO. \u00c8 noto che i movimenti intorno alla posizione 0, 0 non funzionano correttamente. [printer] kinematics: polar max_z_velocity: # Imposta la velocit\u00e0 massima (in mm/s) di movimento lungo l'asse z. # Questa impostazione pu\u00f2 essere utilizzata per limitare la velocit\u00e0 # massima del motore passo-passo z. L'impostazione predefinita \u00e8 # utilizzare max_velocity per max_z_velocity. max_z_accel: # Questo imposta l'accelerazione massima (in mm/s^2) del # movimento lungo l'asse z. Limita l'accelerazione del motore # passo-passo z. L'impostazione predefinita \u00e8 utilizzare max_accel # per max_z_accel. # La sezione stepper_bed viene utilizzata per descrivere lo stepper # che controlla il piatto [stepper_bed] gear_ratio: # \u00c8 necessario specificare un gear_ratio e rotation_distance # potrebbe non essere specificato. Ad esempio, se il piatto ha una # ruota a 80 denti azionata da uno stepper con una ruota a 16 # denti, si dovrebbe specificare un rapporto di trasmissione di \"80:16\". # Questo parametro deve essere fornito. # La sezione stepper_arm \u00e8 usata per descrivere lo stepper che # controlla il carrello sul braccio. [stepper_arm] # La sezione stepper_z viene utilizzata per descrivere lo stepper che # controlla l'asse Z. [stepper_z] Rotary delta Kinematics \u00b6 See example-rotary-delta.cfg for an example rotary delta kinematics config file. Qui vengono descritti solo i parametri specifici delle stampanti delta rotative - vedere impostazioni cinematiche comuni per i parametri disponibili. ROTARY DELTA KINEMATICS ARE A WORK IN PROGRESS. Homing moves may timeout and some boundary checks are not implemented. [printer] kinematics: rotary_delta max_z_velocity: # For delta printers this limits the maximum velocity (in mm/s) of # moves with z axis movement. This setting can be used to reduce the # maximum speed of up/down moves (which require a higher step rate # than other moves on a delta printer). The default is to use # max_velocity for max_z_velocity. #minimum_z_position: 0 # The minimum Z position that the user may command the head to move # to. The default is 0. shoulder_radius: # Radius (in mm) of the horizontal circle formed by the three # shoulder joints, minus the radius of the circle formed by the # effector joints. This parameter may also be calculated as: # shoulder_radius = (delta_f - delta_e) / sqrt(12) # This parameter must be provided. shoulder_height: # Distance (in mm) of the shoulder joints from the bed, minus the # effector toolhead height. This parameter must be provided. # The stepper_a section describes the stepper controlling the rear # right arm (at 30 degrees). This section also controls the homing # parameters (homing_speed, homing_retract_dist) for all arms. [stepper_a] gear_ratio: # A gear_ratio must be specified and rotation_distance may not be # specified. For example, if the arm has an 80 toothed pulley driven # by a pulley with 16 teeth, which is in turn connected to a 60 # toothed pulley driven by a stepper with a 16 toothed pulley, then # one would specify a gear ratio of \"80:16, 60:16\". This parameter # must be provided. position_endstop: # Distance (in mm) between the nozzle and the bed when the nozzle is # in the center of the build area and the endstop triggers. This # parameter must be provided for stepper_a; for stepper_b and # stepper_c this parameter defaults to the value specified for # stepper_a. upper_arm_length: # Length (in mm) of the arm connecting the \"shoulder joint\" to the # \"elbow joint\". This parameter must be provided for stepper_a; for # stepper_b and stepper_c this parameter defaults to the value # specified for stepper_a. lower_arm_length: # Length (in mm) of the arm connecting the \"elbow joint\" to the # \"effector joint\". This parameter must be provided for stepper_a; # for stepper_b and stepper_c this parameter defaults to the value # specified for stepper_a. #angle: # This option specifies the angle (in degrees) that the arm is at. # The default is 30 for stepper_a, 150 for stepper_b, and 270 for # stepper_c. # The stepper_b section describes the stepper controlling the rear # left arm (at 150 degrees). [stepper_b] # The stepper_c section describes the stepper controlling the front # arm (at 270 degrees). [stepper_c] # The delta_calibrate section enables a DELTA_CALIBRATE extended # g-code command that can calibrate the shoulder endstop positions. [delta_calibrate] radius: # Radius (in mm) of the area that may be probed. This is the radius # of nozzle coordinates to be probed; if using an automatic probe # with an XY offset then choose a radius small enough so that the # probe always fits over the bed. This parameter must be provided. #speed: 50 # The speed (in mm/s) of non-probing moves during the calibration. # The default is 50. #horizontal_move_z: 5 # The height (in mm) that the head should be commanded to move to # just prior to starting a probe operation. The default is 5. Cable winch Kinematics \u00b6 See the example-winch.cfg for an example cable winch kinematics config file. Qui sono descritti solo i parametri specifici per le stampanti cavo verricello - vedere impostazioni comuni cinematiche per i parametri disponibili. CABLE WINCH SUPPORT IS EXPERIMENTAL. Homing is not implemented on cable winch kinematics. In order to home the printer, manually send movement commands until the toolhead is at 0, 0, 0 and then issue a G28 command. [printer] kinematics: winch # The stepper_a section describes the stepper connected to the first # cable winch. A minimum of 3 and a maximum of 26 cable winches may be # defined (stepper_a to stepper_z) though it is common to define 4. [stepper_a] rotation_distance: # The rotation_distance is the nominal distance (in mm) the toolhead # moves towards the cable winch for each full rotation of the # stepper motor. This parameter must be provided. anchor_x: anchor_y: anchor_z: # The X, Y, and Z position of the cable winch in cartesian space. # These parameters must be provided. Nessuna cinematica \u00b6 \u00c8 possibile definire una cinematica speciale \"none\" per disabilitare il supporto cinematico in Klipper. Questo pu\u00f2 essere utile per controllare dispositivi che non sono le tipiche stampanti 3D o per scopi di debug. [printer] kinematics: none max_velocity: 1 max_accel: 1 # \u00c8 necessario definire i parametri max_velocity e max_accel. I valori # non vengono utilizzati per la cinematica \"none\". Supporto per estrusore e piatto riscaldato comuni \u00b6 [extruder] \u00b6 La sezione dell'estrusore viene utilizzata per descrivere i parametri del riscaldatore per l'hotend dell'ugello insieme allo stepper che controlla l'estrusore. Per ulteriori informazioni, vedere riferimento comando . Consultare la Guida all'avanzamento della pressione per informazioni sulla regolazione dell'anticipo della pressione. [extruder] step_pin: dir_pin: enable_pin: microsteps: rotation_distance: #full_steps_per_rotation: #gear_ratio: # Vedere la sezione \"stepper\" per una descrizione di quanto sopra # Se nessuno dei parametri precedenti \u00e8 specificato, nessuno stepper # sar\u00e0 associato all'hotend dell'ugello (sebbene un comando # SYNC_EXTRUDER_MOTION possa associarne uno in fase di esecuzione). nozzle_diameter: # Diametro dell'orifizio dell'ugello (in mm). Questo parametro deve essere fornito. filament_diameter:: # Il diametro nominale del filamento grezzo (in mm) quando # entra nell'estrusore. Questo parametro deve essere fornito. #max_extrude_cross_section: # Area massima (in mm^2) di una sezione trasversale dell'estrusione # (ad es. larghezza dell'estrusione moltiplicata per l'altezza dello strato). # Questa impostazione previene quantit\u00e0 eccessive di estrusione # durante spostamenti XY relativamente piccoli. # Se un movimento richiede una velocit\u00e0 di estrusione che supererebbe questo valore # causer\u00e0 la restituzione di un errore. L'impostazione predefinita # \u00e8: 4.0 * diametro_ugello^2 instantaneous_corner_velocity: 1.000 # La variazione di velocit\u00e0 istantanea massima (in mm/s) del # estrusore durante il collegamento di due movimenti. Il valore predefinito \u00e8 1 mm/s. #max_extrude_only_distance: 50.0 # Lunghezza massima (in mm di filamento grezzo) che pu\u00f2 avere un movimento # di retrazione o di sola estrusione. Se uno spostamento di retrazione # o di sola estrusione richiede una distanza maggiore di questo valore, # verr\u00e0 restituito un errore. Il valore predefinito \u00e8 50 mm. #max_extrude_only_velocity: #max_extrude_only_accel: # Velocit\u00e0 massima (in mm/s) e accelerazione (in mm/s^2) del # motore estrusore per retrazioni e movimenti di sola estrusione. # Queste impostazioni non hanno alcun impatto sui normali movimenti di stampa. # Se non specificati, vengono calcolati per corrispondere al limite che avrebbe # un movimento di stampa XY con una sezione trasversale di 4,0*diametro_ugello^2. #pressure_advance: 0.0 # La quantit\u00e0 di filamento grezzo da spingere nell'estrusore durante # accelerazione dell'estrusore. Una uguale quantit\u00e0 di filamento viene # retratta durante la decelerazione. Si misura in millimetri per # millimetro/secondo. Il valore predefinito \u00e8 0, che disabilita l'avanzamento della pressione. #pressure_advance_smooth_time: 0,040 # Un intervallo di tempo (in secondi) da utilizzare per calcolare la velocit\u00e0 media # dell'estrusore per l'avanzamento della pressione. Un valore maggiore si traduce # in movimenti pi\u00f9 fluidi dell'estrusore. Questo parametro non pu\u00f2 superare i 200 ms. # Questa impostazione si applica solo se pressure_advance \u00e8 diverso da zero. # Il valore predefinito \u00e8 0,040 (40 millisecondi). # # Le restanti variabili descrivono il riscaldatore dell'estrusore. heater_pin: # Pin di uscita PWM che controlla il riscaldatore. Questo parametro deve essere fornito. #max_power: 1.0 # La potenza massima (espressa come un valore compreso tra 0,0 e 1,0) a cui # pu\u00f2 essere impostato il riscaldatore_pin. Il valore 1.0 consente di impostare il pin # completamente abilitato per periodi prolungati, mentre un valore di 0,5 # consentirebbe di abilitare il pin per non pi\u00f9 della met\u00e0 del tempo. Questo # l'impostazione pu\u00f2 essere utilizzata per limitare la potenza totale # (per periodi prolungati) al riscaldatore. L'impostazione predefinita \u00e8 1.0. sensor_type: # Tipo di sensore - i termistori comuni sono \"EPCOS 100K B57560G104F\", # \"ATC Semitec 104GT-2\", \"ATC Semitec 104NT-4-R025H42G\", \"Generico # 3950\",\"Honeywell 100K 135-104LAG-J01\", \"NTC 100K MGB18-104F39050L32\", # \"SliceEngineering 450\" e \"TDK NTCG104LH104JT1\". Vedere la sezione # \"Sensori di temperatura\" per altri sensori. Questo parametro deve essere fornito. sensor_pin: # Pin di ingresso analogico collegato al sensore. Questo parametro deve essere fornito. #pullup_resistor: 4700 # La resistenza (in ohm) del pullup collegato al termistore. Questo parametro # \u00e8 valido solo quando il sensore \u00e8 un termistore. Il valore predefinito \u00e8 4700 ohm. #smooth_time: 1.0 # Un valore di tempo (in secondi) durante il quale le misurazioni della # temperatura verranno uniformate per ridurre l'impatto del rumore # di misurazione. Il valore predefinito \u00e8 1 secondo. control: # Algoritmo di controllo (pid o filigrana). Questo parametro deve # essere fornito. pid_Kp: pid_Ki: pid_Kd: # Il proporzionale (pid_Kp), l'integrale (pid_Ki) e la derivata # (pid_Kd) impostazioni per il sistema di controllo del feedback PID. Klipper # valuta le impostazioni PID con la seguente formula generale: # riscaldatore_pwm = (Kp*errore + Ki*integrale(errore) - Kd*derivato(errore)) / 255 # Dove \"errore\" \u00e8 \"temperatura_richiesta - temperatura_misurata\" # e \"heater_pwm\" \u00e8 la velocit\u00e0 di riscaldamento richiesta con 0,0 completamente # off e 1.0 completamente on. Prendi in considerazione l'utilizzo di PID_CALIBRATE # comando per ottenere questi parametri. pid_Kp, pid_Ki e pid_Kd # i parametri devono essere forniti per i riscaldatori PID. #delta_max: 2.0 # Sui riscaldatori controllati questo \u00e8 il numero di gradi in # Celsius al di sopra della temperatura target prima di disattivare il riscaldatore # cos\u00ec come il numero di gradi sotto il target prima # riattivare il riscaldatore. L'impostazione predefinita \u00e8 2 gradi Celsius. #pwm_cycle_time: 0,100 # Tempo in secondi per ogni ciclo PWM software del riscaldatore. # non \u00e8 consigliabile impostarlo a meno che non ci sia necessario come # requisito accendere il riscaldatore pi\u00f9 velocemente di 10 volte al secondo. # Il valore predefinito \u00e8 0,100 secondi. #min_extrude_temp: 170 # La temperatura minima (in gradi Celsius) alla quale possono essere # impartiti comandi all'estrusore. L'impostazione predefinita \u00e8 170 gradi Celsius. min_temp: max_temp: # L'intervallo massimo di temperature valide (in gradi Celsius) in cui # il riscaldatore deve rimanere all'interno. Questo controlla una funzione di sicurezza # implementata nel codice del microcontrollore , la temperatura # non cadr\u00e0 mai al di fuori di questo intervallo, altrimenti il microcontrollore # entrer\u00e0 in uno stato di arresto. Questo controllo pu\u00f2 aiutare a rilevarne alcuni # guasti hardware del riscaldatore e del sensore. Imposta questo intervallo solo in modo ampio # abbastanza in modo che temperature ragionevoli non si traducano in un errore. # Questi parametri devono essere forniti. [heater_bed] \u00b6 La sezione heater_bed descrive un piatto riscaldato. Utilizza le stesse impostazioni del riscaldatore descritte nella sezione \"extruder\". [heater_bed] heater_pin: sensor_type: sensor_pin: control: min_temp: max_temp: # Vedere la sezione \"extruder\" per una descrizione dei parametri sopra. Supporto livellamento del piatto \u00b6 [bed_mesh] \u00b6 Mesh Bed Leveling. Si pu\u00f2 definire una sezione di configurazione bed_mesh per abilitare trasformazioni di spostamento che sfalsano l'asse z in base a una mesh generata da punti sondati. Quando si utilizza una sonda per la posizione di riferimento sull'asse z, si consiglia di definire una sezione safe_z_home in printer.cfg per la posizione di riferimento verso il centro dell'area di stampa. Per ulteriori informazioni, vedere la bed mesh guide e riferimento del comando . Esempi visivi: rectangular bed, probe_count = 3, 3: x---x---x (max_point) | x---x---x | (min_point) x---x---x round bed, round_probe_count = 5, bed_radius = r: x (0, r) end / x---x---x \\ (-r, 0) x---x---x---x---x (r, 0) \\ x---x---x / x (0, -r) start [bed_mesh] #speed: 50 # The speed (in mm/s) of non-probing moves during the calibration. # The default is 50. #horizontal_move_z: 5 # The height (in mm) that the head should be commanded to move to # just prior to starting a probe operation. The default is 5. #mesh_radius: # Defines the radius of the mesh to probe for round beds. Note that # the radius is relative to the coordinate specified by the # mesh_origin option. This parameter must be provided for round beds # and omitted for rectangular beds. #mesh_origin: # Defines the center X, Y coordinate of the mesh for round beds. This # coordinate is relative to the probe's location. It may be useful # to adjust the mesh_origin in an effort to maximize the size of the # mesh radius. Default is 0, 0. This parameter must be omitted for # rectangular beds. #mesh_min: # Defines the minimum X, Y coordinate of the mesh for rectangular # beds. This coordinate is relative to the probe's location. This # will be the first point probed, nearest to the origin. This # parameter must be provided for rectangular beds. #mesh_max: # Defines the maximum X, Y coordinate of the mesh for rectangular # beds. Adheres to the same principle as mesh_min, however this will # be the furthest point probed from the bed's origin. This parameter # must be provided for rectangular beds. #probe_count: 3, 3 # For rectangular beds, this is a comma separate pair of integer # values X, Y defining the number of points to probe along each # axis. A single value is also valid, in which case that value will # be applied to both axes. Default is 3, 3. #round_probe_count: 5 # For round beds, this integer value defines the maximum number of # points to probe along each axis. This value must be an odd number. # Default is 5. #fade_start: 1.0 # The gcode z position in which to start phasing out z-adjustment # when fade is enabled. Default is 1.0. #fade_end: 0.0 # The gcode z position in which phasing out completes. When set to a # value below fade_start, fade is disabled. It should be noted that # fade may add unwanted scaling along the z-axis of a print. If a # user wishes to enable fade, a value of 10.0 is recommended. # Default is 0.0, which disables fade. #fade_target: # The z position in which fade should converge. When this value is # set to a non-zero value it must be within the range of z-values in # the mesh. Users that wish to converge to the z homing position # should set this to 0. Default is the average z value of the mesh. #split_delta_z: .025 # The amount of Z difference (in mm) along a move that will trigger # a split. Default is .025. #move_check_distance: 5.0 # The distance (in mm) along a move to check for split_delta_z. # This is also the minimum length that a move can be split. Default # is 5.0. #mesh_pps: 2, 2 # A comma separated pair of integers X, Y defining the number of # points per segment to interpolate in the mesh along each axis. A # \"segment\" can be defined as the space between each probed point. # The user may enter a single value which will be applied to both # axes. Default is 2, 2. #algorithm: lagrange # The interpolation algorithm to use. May be either \"lagrange\" or # \"bicubic\". This option will not affect 3x3 grids, which are forced # to use lagrange sampling. Default is lagrange. #bicubic_tension: .2 # When using the bicubic algorithm the tension parameter above may # be applied to change the amount of slope interpolated. Larger # numbers will increase the amount of slope, which results in more # curvature in the mesh. Default is .2. #relative_reference_index: # A point index in the mesh to reference all z values to. Enabling # this parameter produces a mesh relative to the probed z position # at the provided index. #faulty_region_1_min: #faulty_region_1_max: # Optional points that define a faulty region. See docs/Bed_Mesh.md # for details on faulty regions. Up to 99 faulty regions may be added. # By default no faulty regions are set. [bed_tilt] \u00b6 Compensazione dell'inclinazione del piatto. Si pu\u00f2 definire una sezione di configurazione bed_tilt per abilitare le trasformazioni di movimento che tengono conto di un piatto inclinato. Nota che bed_mesh e bed_tilt sono incompatibili; entrambi non possono essere definiti. Per ulteriori informazioni, vedere riferimento comando . [bed_tilt] #x_adjust: 0 # The amount to add to each move's Z height for each mm on the X # axis. The default is 0. #y_adjust: 0 # The amount to add to each move's Z height for each mm on the Y # axis. The default is 0. #z_adjust: 0 # The amount to add to the Z height when the nozzle is nominally at # 0, 0. The default is 0. # The remaining parameters control a BED_TILT_CALIBRATE extended # g-code command that may be used to calibrate appropriate x and y # adjustment parameters. #points: # A list of X, Y coordinates (one per line; subsequent lines # indented) that should be probed during a BED_TILT_CALIBRATE # command. Specify coordinates of the nozzle and be sure the probe # is above the bed at the given nozzle coordinates. The default is # to not enable the command. #speed: 50 # The speed (in mm/s) of non-probing moves during the calibration. # The default is 50. #horizontal_move_z: 5 # The height (in mm) that the head should be commanded to move to # just prior to starting a probe operation. The default is 5. [bed_screws] \u00b6 Strumento per aiutare a regolare le viti di livellamento del letto. Si pu\u00f2 definire una sezione di configurazione [bed_screws] per abilitare un comando g-code BED_SCREWS_ADJUST. Per ulteriori informazioni, vedere la guida al livellamento e il riferimento al comando . [bed_screws] #screw1: # The X, Y coordinate of the first bed leveling screw. This is a # position to command the nozzle to that is directly above the bed # screw (or as close as possible while still being above the bed). # This parameter must be provided. #screw1_name: # An arbitrary name for the given screw. This name is displayed when # the helper script runs. The default is to use a name based upon # the screw XY location. #screw1_fine_adjust: # An X, Y coordinate to command the nozzle to so that one can fine # tune the bed leveling screw. The default is to not perform fine # adjustments on the bed screw. #screw2: #screw2_name: #screw2_fine_adjust: #... # Additional bed leveling screws. At least three screws must be # defined. #horizontal_move_z: 5 # The height (in mm) that the head should be commanded to move to # when moving from one screw location to the next. The default is 5. #probe_height: 0 # The height of the probe (in mm) after adjusting for the thermal # expansion of bed and nozzle. The default is zero. #speed: 50 # The speed (in mm/s) of non-probing moves during the calibration. # The default is 50. #probe_speed: 5 # The speed (in mm/s) when moving from a horizontal_move_z position # to a probe_height position. The default is 5. [screws_tilt_adjust] \u00b6 Strumento per aiutare a regolare l'inclinazione delle viti del piatto utilizzando la sonda Z. Si pu\u00f2 definire una sezione di configurazione Screws_tilt_adjust per abilitare un comando g-code SCREWS_TILT_CALCULATE. Per ulteriori informazioni, vedere la guida al livellamento e riferimento al comando . [screws_tilt_adjust] #screw1: # La coordinata (X, Y) della prima vite di livellamento del piatto. Questa # \u00e8 una posizione in cui comandare l'ugello in modo che la sonda sia # direttamente sopra la vite del piatto (o il pi\u00f9 vicino possibile mentre si # trova ancora sopra il piatto). Questa \u00e8 la vite di base utilizzata nei calcoli. # Questo parametro deve essere fornito. #screw1_name: # Un nome arbitrario per la vite data. Questo nome viene visualizzato # quando viene eseguito lo script di supporto. L'impostazione predefinita # prevede l'utilizzo di un nome basato sulla posizione XY della vite. #screw2: #screw2_name: #... # Viti di livellamento del piatto aggiuntive. Devono essere definite # almeno due viti. #speed: 50 # La velocit\u00e0 (in mm/s) degli spostamenti senza probing durante la # calibrazione. Il valore predefinito \u00e8 50. #horizontal_move_z: 5 # L'altezza (in mm) a cui la testa deve essere spostata appena prima # di avviare un'operazione di sonda. L'impostazione predefinita \u00e8 5. #screw_thread: CW-M3 # Il tipo di vite utilizzata per il livello del piatto, M3, M4 o M5 e la # direzione della manopola utilizzata per livellare il letto, in senso orario # decrementa in senso antiorario decrementa. Valori accettati: CW-M3, # CCW-M3, CW-M4, CCW-M4, CW-M5, CCW-M5. Il valore predefinito \u00e8 # CW-M3, la maggior parte delle stampanti utilizza una vite M3 e # ruotando la manopola in senso orario diminuisce la distanza. [z_tilt] \u00b6 Regolazione multipla dell'inclinazione dello stepper Z. Questa funzione consente la regolazione indipendente di pi\u00f9 stepper z (vedere la sezione \"stepper_z1\") per regolare l'inclinazione. Se questa sezione \u00e8 presente, diventa disponibile un comando G-Code esteso Z_TILT_ADJUST. [z_tilt] #z_positions: # Un elenco di coordinate X, Y (una per riga; le righe successive # identate) che descrivono la posizione di ciascun \"pivot point\" # del piattotto. Il \"pivot point\" \u00e8 il punto in cui il piatto si attacca # al dato stepper Z. Viene descritto utilizzando le coordinate dell'ugello # (la posizione X, Y dell'ugello se potesse spostarsi direttamente sopra # il punto). La prima voce corrisponde a stepper_z, la seconda a # stepper_z1, la terza a stepper_z2, ecc. # Questo parametro deve essere fornito. #points: # Un elenco di coordinate X, Y (una per riga; righe successive identate) # che devono essere rilevate durante un comando Z_TILT_ADJUST. # Specificare le coordinate dell'ugello e assicurarsi che la sonda sia # sopra il piatto alle coordinate dell'ugello date. # Questo parametro deve essere fornito. #speed: 50 # La velocit\u00e0 (in mm/s) degli spostamenti senza probing durante # la calibrazione. Il valore predefinito \u00e8 50. #horizontal_move_z: 5 # L'altezza (in mm) a cui la testa deve essere comandata per spostarsi # appena prima di avviare un'operazione di probing. # L'impostazione predefinita \u00e8 5. #retries: 0 # Numero di volte per riprovare se i punti rilevati non sono all'interno # della tolleranza. #retry_tolerance: 0 # Se i tentativi sono abilitati, riprovare se i punti sondati pi\u00f9 grande e # pi\u00f9 piccolo differiscono pi\u00f9 di retry_tolerance. Nota che l'unit\u00e0 di # modifica pi\u00f9 piccola qui sarebbe un singolo passaggio. # Tuttavia, se stai sondando pi\u00f9 punti rispetto agli stepper, # probabilmente avrai un valore minimo fisso per l'intervallo di punti # sondati che puoi apprendere osservando l'output del comando. [quad_gantry_level] \u00b6 Moving gantry leveling using 4 independently controlled Z motors. Corrects hyperbolic parabola effects (potato chip) on moving gantry which is more flexible. WARNING: Using this on a moving bed may lead to undesirable results. If this section is present then a QUAD_GANTRY_LEVEL extended G-Code command becomes available. This routine assumes the following Z motor configuration: ---------------- |Z1 Z2| | --------- | | | | | | | | | | x-------- | |Z Z3| ---------------- Dove x \u00e8 il punto 0, 0 sul piatto [quad_gantry_level] #gantry_corners: # A newline separated list of X, Y coordinates describing the two # opposing corners of the gantry. The first entry corresponds to Z, # the second to Z2. This parameter must be provided. #points: # A newline separated list of four X, Y points that should be probed # during a QUAD_GANTRY_LEVEL command. Order of the locations is # important, and should correspond to Z, Z1, Z2, and Z3 location in # order. This parameter must be provided. For maximum accuracy, # ensure your probe offsets are configured. #speed: 50 # The speed (in mm/s) of non-probing moves during the calibration. # The default is 50. #horizontal_move_z: 5 # The height (in mm) that the head should be commanded to move to # just prior to starting a probe operation. The default is 5. #max_adjust: 4 # Safety limit if an adjustment greater than this value is requested # quad_gantry_level will abort. #retries: 0 # Number of times to retry if the probed points aren't within # tolerance. #retry_tolerance: 0 # If retries are enabled then retry if largest and smallest probed # points differ more than retry_tolerance. [skew_correction] \u00b6 Correzione dell'inclinazione della stampante. \u00c8 possibile utilizzare il software per correggere l'inclinazione della stampante su 3 piani, xy, xz, yz. Questo viene fatto stampando un modello di calibrazione lungo un piano e misurando tre lunghezze. A causa della natura della correzione dell'inclinazione, queste lunghezze vengono impostate tramite gcode. Per i dettagli, vedere Correzione inclinazione e Command Reference . [skew_correction] [z_thermal_adjust] \u00b6 Temperature-dependant toolhead Z position adjustment. Compensate for vertical toolhead movement caused by thermal expansion of the printer's frame in real-time using a temperature sensor (typically coupled to a vertical section of frame). See also: extended g-code commands . [z_thermal_adjust] #temp_coeff: # The temperature coefficient of expansion, in mm/degC. For example, a # temp_coeff of 0.01 mm/degC will move the Z axis downwards by 0.01 mm for # every degree Celsius that the temperature sensor increases. Defaults to # 0.0 mm/degC, which applies no adjustment. #smooth_time: # Smoothing window applied to the temperature sensor, in seconds. Can reduce # motor noise from excessive small corrections in response to sensor noise. # The default is 2.0 seconds. #z_adjust_off_above: # Disables adjustments above this Z height [mm]. The last computed correction # will remain applied until the toolhead moves below the specified Z height # again. The default is 99999999.0 mm (always on). #max_z_adjustment: # Maximum absolute adjustment that can be applied to the Z axis [mm]. The # default is 99999999.0 mm (unlimited). #sensor_type: #sensor_pin: #min_temp: #max_temp: # Temperature sensor configuration. # See the \"extruder\" section for the definition of the above # parameters. #gcode_id: # See the \"heater_generic\" section for the definition of this # parameter. Homing personalizzato \u00b6 [safe_z_home] \u00b6 Homing Z sicuro. Si pu\u00f2 utilizzare questo meccanismo per posizionare l'asse Z su una specifica coordinata X, Y. Ci\u00f2 \u00e8 utile se la testa portautensili, ad esempio, deve spostarsi al centro del letto prima che Z possa essere riposizionato. [safe_z_home] home_xy_position: # Una coordinata X, Y (ad es. 100, 100) dove deve essere eseguita # homing Z. Questo parametro deve essere fornito. #speed: 50.0 # Velocit\u00e0 alla quale la testa di stampa viene spostata sulla # coordinata Z sicura. Il valore predefinito \u00e8 50 mm/s #z_hop: # Distanza (in mm) per sollevare l'asse Z prima dell'homing. # Questo si applica a qualsiasi comando di homing, anche se non # si trova sull'asse Z. Se l'asse Z \u00e8 gi\u00e0 azzerato e la posizione Z # corrente \u00e8 inferiore a z_hop, questo sollever\u00e0 la testa a un'altezza # di z_hop. Se l'asse Z non \u00e8 gi\u00e0 azzerato la testina viene sollevata # di z_hop. L'impostazione predefinita \u00e8 di non implementare Z hop. #z_hop_speed: 15.0 # Velocit\u00e0 (in mm/s) alla quale l'asse Z viene sollevato prima # del homing. Il valore predefinito \u00e8 15 mm/s. #move_to_previous: False # Quando \u00e8 impostato su True, gli assi X e Y vengono ripristinati alle # posizioni precedenti dopo l'homing dell'asse Z. # L'impostazione predefinita \u00e8 False. [homing_override] \u00b6 Homing Override. Si pu\u00f2 utilizzare questo meccanismo per eseguire una serie di comandi g-code al posto di un G28 che si trova nel normale input di g-code. Questo pu\u00f2 essere utile su stampanti che richiedono una procedura specifica per l'home della macchina. [homing_override] gcode: # Un elenco di comandi G-Code da eseguire al posto dei comandi # G28 trovati nel normale input di G-Code. # Vedi docs/Command_Templates.md per il formato G-Code. # Se un G28 \u00e8 contenuto in questo elenco di comandi, invocher\u00e0 # la normale procedura di homing per la stampante. I comandi # qui elencati devono eseguire l'home di tutti gli assi. # Questo parametro deve essere fornito. #axes: xyz # Gli assi da sovrascrivere. Ad esempio, se questo \u00e8 impostato # su \"z\", lo script di override verr\u00e0 eseguito solo quando l'asse z # \u00e8 azzerato (ad esempio, tramite un comando \"G28\" o \"G28 Z0\"). # Nota, lo script di sovrascrittura dovrebbe comunque ospitare # tutti gli assi. L'impostazione predefinita \u00e8 \"xyz\" che fa s\u00ec che lo # script di override venga eseguito al posto di tutti i comandi G28. #set_position_x: #set_position_y: #set_position_z: # Se specificato, la stampante presumer\u00e0 che l'asse si trovi # nella posizione specificata prima di eseguire i comandi g-code # precedenti. L'impostazione di questa opzione disabilita i # controlli di riferimento per quell'asse. Questo pu\u00f2 essere utile # se la testa deve muoversi prima di invocare il normale # meccanismo G28 per un asse. L'impostazione predefinita \u00e8 # di non forzare una posizione per un asse. [endstop_phase] \u00b6 Finecorsa regolati in fase stepper. Per utilizzare questa funzione, definire una sezione di configurazione con un prefisso \"endstop_phase\" seguito dal nome della corrispondente sezione di configurazione dello stepper (ad esempio, \"[endstop_phase stepper_z]\"). Questa funzione pu\u00f2 migliorare la precisione degli interruttori di fine corsa. Aggiungi una semplice dichiarazione \"[endstop_phase]\" per abilitare il comando ENDSTOP_PHASE_CALIBRATE. Per ulteriori informazioni, vedere la endstop phases guide e command reference . [endstop_phase stepper_z] #endstop_accuracy: # Imposta la precisione prevista (in mm) del finecorsa. Questo rappresenta # la distanza massima di errore che il finecorsa pu\u00f2 attivare (ad es. se un # finecorsa pu\u00f2 occasionalmente attivarsi 100um in anticipo o fino a 100um in ritardo # quindi impostalo su 0,200 per 200 um). L'impostazione predefinita \u00e8 # 4*distanza_rotazione/passi_completi_per_rotazione. #trigger_phase: # Questo specifica la fase del driver del motore passo-passo da aspettarsi # quando si raggiunge il finecorsa. \u00c8 composto da due numeri separati # da un '/' - la fase e il numero totale di # fasi (ad es. \"7/64\"). Impostare questo valore solo se si \u00e8 sicuri che il # driver del motore passo-passo viene ripristinato ogni volta che viene ripristinato l'mcu. Se questo # non \u00e8 impostato, la prima fase verr\u00e0 rilevata al primo home # e quella fase sar\u00e0 utilizzata su tutte le abitazioni successive. #endstop_align_zero: False # Se true, la posizione_endstop dell'asse sar\u00e0 effettivamente # modificato in modo che la posizione zero dell'asse avvenga a passo pieno # sul motore. (Se utilizzato sull'asse Z e la stampa # l'altezza del livello \u00e8 un multiplo di una distanza di un passo intero, allora ogni # layer si eseguir\u00e0 in un step completo.) L'impostazione predefinita \u00e8 False. Macro ed eventi G-Code \u00b6 [gcode_macro] \u00b6 Macro G-Code (\u00e8 possibile definire un numero qualsiasi di sezioni con un prefisso \"gcode_macro\"). Per ulteriori informazioni, consulta la Guida ai modelli di comando . [gcode_macro my_cmd] #gcode: # Un elenco di comandi G-Code da eseguire al posto di \"my_cmd\". # Vedi docs/Command_Templates.md per il formato G-Code. # Questo parametro deve essere fornito. #variable_<name>: # Si pu\u00f2 specificare un numero qualsiasi di opzioni con un prefisso # \"variable_\". Al nome della variabile data verr\u00e0 assegnato il valore dato # (analizzato come un valore letterale Python) e sar\u00e0 disponibile durante # l'espansione della macro. Ad esempio, una configurazione con # \"variable_fan_speed = 75\" potrebbe avere comandi gcode contenenti # \"M106 S{ fan_speed * 255 }\". Le variabili possono essere modificate in # fase di esecuzione utilizzando il comando SET_GCODE_VARIABLE # (consultare docs/Command_Templates.md per i dettagli). # I nomi delle variabili potrebbero non utilizzare caratteri maiuscoli. #rename_existing: # Questa opzione far\u00e0 s\u00ec che la macro ignori un comando G-Code # esistente e fornisca la definizione precedente del comando tramite # il nome fornito qui. Questo pu\u00f2 essere usato per sovrascrivere i # comandi G-Code integrati. Prestare attenzione quando si ignorano # i comandi poich\u00e9 possono causare risultati complessi e imprevisti. # L'impostazione predefinita \u00e8 di non sovrascrivere un comando # G-Code esistente. #description: G-Code macro # Ci\u00f2 aggiunger\u00e0 una breve descrizione utilizzata al comando HELP # o durante l'utilizzo della funzione di completamento automatico. # Predefinito \"G-Code macro\" [delayed_gcode] \u00b6 Esegui un gcode con un ritardo impostato. Per ulteriori informazioni, consulta la Guida template dei comandi e riferimento al comando . [delayed_gcode my_delayed_gcode] gcode: # A list of G-Code commands to execute when the delay duration has # elapsed. G-Code templates are supported. This parameter must be # provided. #initial_duration: 0.0 # The duration of the initial delay (in seconds). If set to a # non-zero value the delayed_gcode will execute the specified number # of seconds after the printer enters the \"ready\" state. This can be # useful for initialization procedures or a repeating delayed_gcode. # If set to 0 the delayed_gcode will not execute on startup. # Default is 0. [save_variables] \u00b6 Supporta il salvataggio delle variabili su disco in modo che vengano mantenute durante i riavvii. Per ulteriori informazioni, vedere template dei comandi e G-Code reference . [save_variables] filename: # Richiesto: fornire un nome file che verrebbe utilizzato per salvare # le variabili su disco, ad es. ~/variables.cfg [idle_timeout] \u00b6 Timeout di inattivit\u00e0. Viene automaticamente abilitato un timeout di inattivit\u00e0: aggiungi una sezione di configurazione di idle_timeout esplicita per modificare le impostazioni predefinite. [idle_timeout] #gcode: # Un elenco di comandi G-Code da eseguire in un timeout di # inattivit\u00e0. Vedi docs/Command Templates.md per il formato # G-Code. L'impostazione predefinita \u00e8 # eseguire \"TURN_OFF HEATERS\" e \"M84\". #timeout: 600 # Tempo di inattivit\u00e0 (in secondi) da attendere prima di eseguire # i comandi G-Code sopra. Il valore predefinito \u00e8 600 secondi. Funzionalit\u00e0 opzionali G-Code \u00b6 [virtual_sdcard] \u00b6 Una scheda SD virtuale pu\u00f2 essere utile se la macchina host non \u00e8 abbastanza veloce per eseguire bene OctoPrint. Consente al software host Klipper di stampare direttamente i file gcode archiviati in una directory sull'host utilizzando i comandi G-Code standard (ad esempio, M24). [virtual_sdcard] path: # Il percorso della directory locale sulla macchina host per cercare # i file di Gcode. Questa \u00e8 una directory di sola lettura (le scritture # di file sdcard non sono supportate). Si pu\u00f2 indicare questo alla # directory di caricamento di OctoPrint # (generalmente ~/.octoprint/uploads/ ). # Questo parametro deve essere fornito. #on_error_gcode: # Un elenco di comandi G-Code da eseguire quando viene segnalato # un errore. [sdcard_loop] \u00b6 Alcune stampanti con funzionalit\u00e0 di pulizia del piatto, come un espulsore di parti o una stampante a nastro, possono trovare impiego nelle sezioni di loop del file sdcard. (Ad esempio, per stampare la stessa parte pi\u00f9 e pi\u00f9 volte, o ripetere la sezione a di una parte per una catena o un altro motivo ripetuto). Consulta il command reference per i comandi supportati. Vedere il file sample-macros.cfg per una macro M808 G-Code compatibile con Marlin. [sdcard_loop] [force_move] \u00b6 Supporta lo spostamento manuale dei motori passo-passo per scopi diagnostici. Nota, l'utilizzo di questa funzione potrebbe mettere la stampante in uno stato non valido - vedere il command reference per dettagli importanti. [force_move] #enable_force_move: False # Impostare su True per abilitare FORCE_MOVE e SET_KINEMATIC_POSITION # i comandi G-Code estesi. L'impostazione predefinita \u00e8 False. [pause_resume] \u00b6 Funzionalit\u00e0 di Pause/Resume con supporto di acquisizione e ripristino della posizione. Per ulteriori informazioni, vedere riferimento comando . [pause_resume] #recover_velocity: 50. # Quando si abilita pause_resume, la velocit\u00e0 con cui tornare alla # posizione catturata (in mm/s). Il valore predefinito \u00e8 50,0 mm/s. [firmware_retraction] \u00b6 Retrazione del filamento del firmware. Ci\u00f2 abilita i comandi GCODE G10 (ritiro) e G11 (non ritirati) emessi da molti slicer. I parametri seguenti forniscono le impostazioni predefinite di avvio, sebbene i valori possano essere regolati tramite il [comando] SET_RETRACTION (G-Codes.md#firmware_retraction)), consentendo l'impostazione e l'ottimizzazione del filamento a runtime. [firmware_retraction] #retract_length: 0 # La lunghezza del filamento (in mm) da ritrarre quando G10 # \u00e8 attivato e da ritrarre quando G11 \u00e8 attivato (ma vedere # unretract_extra_length di seguito). I# l valore predefinito \u00e8 0 mm. #retract_speed: 20 # La velocit\u00e0 di retrazione, in mm/s. # Il valore predefinito \u00e8 20 mm/s. #unretract_extra_length: 0 # La lunghezza (in mm) del filamento *aggiuntivo* da # sommare quando non si ritrae. #unretract_speed: 10 # La velocit\u00e0 di srotolamento, in mm/s. # Il valore predefinito \u00e8 10 mm/s. [gcode_arcs] \u00b6 Supporto per i comandi Gcode arc (G2/G3). [gcode_arcs] #resolution: 1.0 # Un arco sar\u00e0 diviso in segmenti. La lunghezza di ciascun segmento # sar\u00e0 uguale alla risoluzione in mm impostata sopra. Valori pi\u00f9 bassi # produrranno un arco pi\u00f9 fine, ma anche pi\u00f9 lavoro per la tua macchina. # Archi pi\u00f9 piccoli del valore configurato diventer\u00e0 linee rette. # L'impostazione predefinita \u00e8 # 1mm. [respond] \u00b6 Abilita i comandi estesi \"M118\" e \"RESPOND\" commands . [respond] #default_type: echo # Imposta il prefisso predefinito dell'output \"M118\" e \"RESPOND\" su uno dei seguenti: # echo: \"echo: \" (Questa \u00e8 l'impostazione predefinita) # command: \"// \" # error: \"!! \" #default_prefix: echo: # Imposta direttamente il prefisso predefinito. Se presente # questo valore sovrascriver\u00e0 il \"default_type\". [exclude_object] \u00b6 Abilita il supporto per escludere o cancellare singoli oggetti durante il processo di stampa. Per ulteriori informazioni, vedere la guida escludi oggetti e riferimento ai comandi . Vedere il file sample-macros.cfg per una macro G-Code M486 compatibile con Marlin/RepRapFirmware. [exclude_object] Compensazione della risonanza \u00b6 [input_shaper] \u00b6 Abilita compensazione della risonanza . Vedere anche il command reference . [input_shaper] #shaper_freq_x: 0 # Una frequenza (in Hz) dell'input shaper per l'asse X. Questa \u00e8 # solitamente una frequenza di risonanza dell'asse X che l'input # shaper dovrebbe sopprimere. Per shaper pi\u00f9 complessi, come # shaper di input EI a 2 e 3 gobbe, questo parametro pu\u00f2 essere # impostato in base a diverse considerazioni. # Il valore predefinito \u00e8 0, che disabilita la modellatura dell'input # per l'asse X. #shaper_freq_y: 0 # Una frequenza (in Hz) dell'input shaper per l'asse Y. Questa \u00e8 # solitamente una frequenza di risonanza dell'asse Y che l'input # shaper dovrebbe sopprimere. Per shaper pi\u00f9 complessi, come # shaper di input EI a 2 e 3 gobbe, questo parametro pu\u00f2 essere # impostato in base a diverse considerazioni. Il valore predefinito # \u00e8 0, che disabilita la modellatura dell'input per l'asse Y. #shaper_type: mzv # Un tipo di input shaper da utilizzare per entrambi gli assi X e Y. # Gli shaper supportati sono zv, mzv, zvd, ei, 2hump_ei e # 3hump_ei. L'impostazione predefinita \u00e8 mzv input shaper. #shaper_type_x: #shaper_type_y: # Se shaper_type non \u00e8 impostato, questi due parametri possono # essere utilizzati per configurare diversi shaper di input per gli # assi X e Y. Sono supportati gli stessi valori del parametro # shaper_type. #damping_ratio_x: 0.1 #damping_ratio_y: 0.1 # Rapporti di smorzamento delle vibrazioni degli assi X e Y # utilizzati dagli shaper di input per migliorare la soppressione # delle vibrazioni. Il valore predefinito \u00e8 0,1, un buon valore per la # maggior parte delle stampanti. Nella maggior parte dei casi # questo parametro non richiede ottimizzazione e # non deve essere modificato. [adxl345] \u00b6 Supporto per accelerometri ADXL345. Questo supporto consente di interrogare le misurazioni dell'accelerometro dal sensore. Ci\u00f2 abilita un comando ACCELEROMETER_MEASURE (consultare G-Codes per ulteriori informazioni). Il nome del chip predefinito \u00e8 \"predefinito\", ma \u00e8 possibile specificare un nome esplicito (ad esempio, [adxl345 my_chip_name]). [adxl345] cs_pin: # The SPI enable pin for the sensor. This parameter must be provided. #spi_speed: 5000000 # The SPI speed (in hz) to use when communicating with the chip. # The default is 5000000. #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # See the \"common SPI settings\" section for a description of the # above parameters. #axes_map: x, y, z # The accelerometer axis for each of the printer's X, Y, and Z axes. # This may be useful if the accelerometer is mounted in an # orientation that does not match the printer orientation. For # example, one could set this to \"y, x, z\" to swap the X and Y axes. # It is also possible to negate an axis if the accelerometer # direction is reversed (eg, \"x, z, -y\"). The default is \"x, y, z\". #rate: 3200 # Output data rate for ADXL345. ADXL345 supports the following data # rates: 3200, 1600, 800, 400, 200, 100, 50, and 25. Note that it is # not recommended to change this rate from the default 3200, and # rates below 800 will considerably affect the quality of resonance # measurements. [mpu9250] \u00b6 Supporto per accelerometri mpu9250 e mpu6050 (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"mpu9250\"). [mpu9250 my_accelerometer] #i2c_address: # Il valore predefinito \u00e8 104 (0x68). #i2c_mcu: #i2c_bus: #i2c_speed: 400000 # Vedere la sezione \"impostazioni I2C comuni\" per una descrizione # dei parametri di cui sopra. Il valore predefinito \"i2c_speed\" \u00e8 400000. #axes_map: x, y, z # Vedere la sezione \"adxl345\" per informazioni su questo parametro. [resonance_tester] \u00b6 Supporto per test di risonanza e calibrazione automatica del input shaper. Per utilizzare la maggior parte delle funzionalit\u00e0 di questo modulo, devono essere installate dipendenze software aggiuntive; fare riferimento a Measuring Resonances e al command reference per ulteriori informazioni. Per ulteriori informazioni sul parametro max_smoothing e sul suo utilizzo, vedere la sezione Max smoothing della guida alla misurazione delle risonanze. [resonance_tester] #probe_points: # Un elenco di coordinate X, Y, Z di punti (un punto per linea) in cui # testare le risonanze. Almeno un punto \u00e8 richiesto. Assicurati che tutti # i punti con un margine di sicurezza nel piano XY (~ pochi centimetri) # siano raggiungibili dalla testa di stampa. #accel_chip: # Un nome del chip dell'accelerometro da utilizzare per le misurazioni. # Se il chip adxl345 \u00e8 stato definito senza un nome esplicito, questo # parametro pu\u00f2 semplicemente fare riferimento ad esso come # \"accel_chip: adxl345\", altrimenti deve essere fornito anche un nome # esplicito, ad es. \"accel_chip: adxl345 mio_chip_nome\". \u00c8 necessario # impostare questo o i due parametri successivi. #accel_chip_x: #accel_chip_y: # Nomi dei chip dell'accelerometro da utilizzare per le misurazioni per # ciascuno degli assi. Pu\u00f2 essere utile, ad esempio, su una stampante con # piatto, se due accelerometri separati sono montati sul piatto (per l'asse Y) # e sulla testa di stampa (per l'asse X). Questi parametri hanno lo stesso # formato del parametro 'accel_chip'. # \u00c8 necessario fornire solo 'accel_chip' o questi due parametri. #max_smoothing: # Maximum input shaper smoothing to allow for each axis during shaper # auto-calibration (with 'SHAPER_CALIBRATE' command). By default no # maximum smoothing is specified. Refer to Measuring_Resonances guide # for more details on using this feature. #min_freq: 5 # Frequenza minima per testare le risonanze. L'impostazione \u00e8 5 Hz. #max_freq: 133.33 # Frequenza massima per testare le risonanze. L'impostazione \u00e8 133,33 Hz. #accel_per_hz: 75 # Questo parametro viene utilizzato per determinare quale accelerazione # utilizzare per testare una frequenza specifica: accel = accel_per_hz * freq. # Maggiore \u00e8 il valore, maggiore \u00e8 l'energia delle oscillazioni. Pu\u00f2 essere # impostato su un valore inferiore al valore predefinito se le risonanze # diventano troppo forti sulla stampante. Tuttavia, valori pi\u00f9 bassi rendono # le misurazioni delle risonanze ad alta frequenza meno precise. # Il valore predefinito \u00e8 75 (mm/sec). #hz_per_sec: 1 # Determina la velocit\u00e0 del test. Quando si testano tutte le frequenze # nell'intervallo [freq_min, freq_max], ogni secondo la frequenza aumenta # di hz_per_sec. Valori piccoli rallentano il test e valori grandi diminuiscono # la precisione del test. Il valore predefinito \u00e8 1,0 (Hz/sec == sec^-2). Config file helpers \u00b6 [board_pins] \u00b6 Alias pin board (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"board_pins\"). Usalo per definire gli alias per i pin su un microcontrollore. [board_pins my_aliases] mcu: mcu # A comma separated list of micro-controllers that may use the # aliases. The default is to apply the aliases to the main \"mcu\". aliases: aliases_<name>: # A comma separated list of \"name=value\" aliases to create for the # given micro-controller. For example, \"EXP1_1=PE6\" would create an # \"EXP1_1\" alias for the \"PE6\" pin. However, if \"value\" is enclosed # in \"<>\" then \"name\" is created as a reserved pin (for example, # \"EXP1_9=<GND>\" would reserve \"EXP1_9\"). Any number of options # starting with \"aliases_\" may be specified. [include] \u00b6 Supporto per includere i file. Uno pu\u00f2 includere un file di configurazione aggiuntivo dal file di configurazione della stampante principale. Possono essere utilizzati anche caratteri jolly (ad es. \"configs/*.cfg\"). [include my_other_config.cfg] [duplicate_pin_override] \u00b6 Questo strumento consente di definire pi\u00f9 volte un singolo pin del microcontrollore in un file di configurazione senza il normale controllo degli errori. Questo \u00e8 inteso per scopi diagnostici e di debug. Questa sezione non \u00e8 necessaria laddove Klipper supporta l'utilizzo dello stesso pin pi\u00f9 volte e l'utilizzo di questa sostituzione pu\u00f2 causare risultati confusi e imprevisti. [duplicate_pin_override] pins: # Un elenco di pin separato da virgole che possono essere utilizzati pi\u00f9 volte in # un file di configurazione senza normali controlli degli errori. Questo parametro deve essere # fornito. Hardware per probing del piatto \u00b6 [probe] \u00b6 Sonda di altezza Z. Si pu\u00f2 definire questa sezione per abilitare l'hardware di rilevamento dell'altezza Z. Quando questa sezione \u00e8 abilitata, i comandi estesi PROBE e QUERY_PROBE comandi g-code diventano disponibili. Inoltre, vedere la Guida alla calibrazione della sonda . La sezione probe crea anche un pin virtuale \"probe:z_virtual_endstop\". Si pu\u00f2 impostare stepper_z endstop_pin su questo pin virtuale su stampanti in stile cartesiano che utilizzano la sonda al posto di un endstop z. Se si utilizza \"probe:z_virtual_endstop\", non definire un position_endstop nella sezione di configurazione stepper_z. [probe] pin: # Pin di rilevamento della sonda. Se il pin si trova su un # microcontrollore diverso rispetto agli stepper Z, abilita # \"homing multi-mcu\". Questo parametro deve essere fornito. #deactivate_on_each_sample: True # Questo determina se Klipper deve eseguire la disattivazione # gcode tra ogni tentativo di esplorazione durante l'esecuzione di # una sequenza di probe multiple. L'impostazione predefinita \u00e8 True. #x_offset: 0.0 # La distanza (in mm) tra la sonda e l'ugello lungo l'asse x. # Il valore predefinito \u00e8 0. #y_offset: 0.0 # La distanza (in mm) tra la sonda e l'ugello lungo l'asse y. # Il valore predefinito \u00e8 0. z_offset: # La distanza (in mm) tra il piatto e l'ugello quando la sonda si attiva. # Questo parametro deve essere fornito. #speed: 5.0 # Velocit\u00e0 (in mm/s) dell'asse Z durante probing. # Il valore predefinito \u00e8 5 mm/s. #samples: 1 # Il numero di volte in cui sondare ciascun punto. I valori z sondati # verranno mediati. L'impostazione predefinita \u00e8 sondare 1 volta. #sample_retract_dist: 2.0 # La distanza (in mm) per sollevare la testa di stampa tra ciascun # campione (se si esegue il campionamento pi\u00f9 di una volta). # Il valore predefinito \u00e8 2 mm. #lift_speed: # Velocit\u00e0 (in mm/s) dell'asse Z durante il sollevamento della sonda # tra i campioni. L'impostazione predefinita prevede l'utilizzo dello # stesso valore del parametro 'speed'. #samples_result: average # Il metodo di calcolo durante il campionamento pi\u00f9 di una volta: # \"median\" o \"average\". L'impostazione predefinita \u00e8 average. #samples_tolerance: 0.100 # La distanza Z massima (in mm) che un campione pu\u00f2 differire da # altri campioni. Se questa tolleranza viene superata, viene segnalato # un errore o il tentativo viene riavviato # (vedere samples_tolerance_retries). Il valore predefinito \u00e8 0,100 mm. #samples_tolerance_retries: 0 # Il numero di tentativi per riprovare se viene trovato un campione che # supera samples_tolerance. In un nuovo tentativo, tutti i campioni # correnti vengono eliminati e il tentativo di sonda viene riavviato. # Se non si ottiene un insieme valido di campioni nel numero di tentativi # specificato, viene segnalato un errore. Il valore predefinito \u00e8 zero che # causa la segnalazione di un errore sul primo campione che supera # samples_tolerance. #activate_gcode: # Un elenco di comandi G-Code da eseguire prima di ogni tentativo di # esplorazione. Vedi docs/Command_Templates.md per il formato # G-Code. Questo pu\u00f2 essere utile se la sonda deve essere attivata in # qualche modo. Non impartire qui alcun comando che sposti la testa # di stampa (ad es. G1). L'impostazione predefinita \u00e8 di non eseguire # alcun comando G-Code speciale all'attivazione. #deactivate_gcode: # Un elenco di comandi G-Code da eseguire dopo il completamento di # ogni tentativo di esplorazione. Vedi docs/Command_Templates.md # per il formato G-Code. Non impartire qui alcun comando che sposti # la testina. L'impostazione predefinita \u00e8 di non eseguire alcun # comando G-Code speciale alla disattivazione. [bltouch] \u00b6 Sonda BLTouch. Si pu\u00f2 definire questa sezione (anzich\u00e9 una sezione sonda) per abilitare una sonda BLTouch. Per ulteriori informazioni, vedere BL-Touch guide e command reference .. Viene anche creato un pin virtuale \"probe:z_virtual_endstop\" (consultare la sezione \"probe\" per i dettagli). [bltouch] sensor_pin: # Pin connected to the BLTouch sensor pin. Most BLTouch devices # require a pullup on the sensor pin (prefix the pin name with \"^\"). # This parameter must be provided. control_pin: # Pin connected to the BLTouch control pin. This parameter must be # provided. #pin_move_time: 0.680 # The amount of time (in seconds) to wait for the BLTouch pin to # move up or down. The default is 0.680 seconds. #stow_on_each_sample: True # This determines if Klipper should command the pin to move up # between each probe attempt when performing a multiple probe # sequence. Read the directions in docs/BLTouch.md before setting # this to False. The default is True. #probe_with_touch_mode: False # If this is set to True then Klipper will probe with the device in # \"touch_mode\". The default is False (probing in \"pin_down\" mode). #pin_up_reports_not_triggered: True # Set if the BLTouch consistently reports the probe in a \"not # triggered\" state after a successful \"pin_up\" command. This should # be True for all genuine BLTouch devices. Read the directions in # docs/BLTouch.md before setting this to False. The default is True. #pin_up_touch_mode_reports_triggered: True # Set if the BLTouch consistently reports a \"triggered\" state after # the commands \"pin_up\" followed by \"touch_mode\". This should be # True for all genuine BLTouch devices. Read the directions in # docs/BLTouch.md before setting this to False. The default is True. #set_output_mode: # Request a specific sensor pin output mode on the BLTouch V3.0 (and # later). This setting should not be used on other types of probes. # Set to \"5V\" to request a sensor pin output of 5 Volts (only use if # the controller board needs 5V mode and is 5V tolerant on its input # signal line). Set to \"OD\" to request the sensor pin output use # open drain mode. The default is to not request an output mode. #x_offset: #y_offset: #z_offset: #speed: #lift_speed: #samples: #sample_retract_dist: #samples_result: #samples_tolerance: #samples_tolerance_retries: # See the \"probe\" section for information on these parameters. [smart_effector] \u00b6 Lo \"Smart Effector\" di Duet3d implementa una sonda Z utilizzando un sensore di forza. Si pu\u00f2 definire questa sezione invece di [probe] per abilitare le funzioni specifiche di Smart Effector. Ci\u00f2 consente anche a comandi di runtime di regolare i parametri di Smart Effector in fase di esecuzione. [smart_effector] pin: # Pin collegato al pin di uscita della sonda Z Smart Effector (pin 5). Si noti # che la resistenza di pullup sulla scheda generalmente non \u00e8 richiesta. # Tuttavia, se il pin di uscita \u00e8 collegato al pin della scheda con un resistore # di pullup, tale resistore deve essere di valore elevato (ad es. 10K Ohm o pi\u00f9). # Alcune schede hanno un resistore di pullup di basso valore sull'ingresso # della sonda Z, che probabilmente far\u00e0 risultare in uno stato di sonda sempre # attivato. In questo caso, collegare lo Smart Effector a un pin diverso sulla # scheda. Questo parametro \u00e8 obbligatorio. #control_pin: # Pin collegato al pin di ingresso di controllo Smart Effector (pin 7). Se fornito, # diventano disponibili i comandi di programmazione della sensibilit\u00e0 # di Smart Effector. #probe_accel: # Se impostato, limita l'accelerazione dei movimenti di tastatura (in mm/sec^2). # Un'improvvisa grande accelerazione all'inizio del movimento di esplorazione # pu\u00f2 causare l'attivazione spuria della sonda, specialmente se l'hotend \u00e8 pesante. # Per evitarlo, potrebbe essere necessario ridurre l'accelerazione dei movimenti # di tastatura tramite questo parametro. #recovery_time: 0.4 # Un ritardo tra i movimenti di spostamento e tastatura in secondi. Un # movimento veloce prima della tastatura pu\u00f2 causare l'attivazione spuria della # sonda. Ci\u00f2 pu\u00f2 causare errori \"Sonda attivata prima del movimento\" se non # \u00e8 impostato alcun ritardo. Il valore 0 disabilita il ritardo di ripristino. # Il valore predefinito \u00e8 0.4. #x_offset: #y_offset: # Dovrebbe essere lasciato non impostato (o impostato su 0). z_offset: # Altezza di attivazione della sonda. Inizia con -0.1 (mm) e regola in seguito # usando il comando `PROBE_CALIBRATE`. Questo parametro deve essere fornito. #speed: # Velocit\u00e0 (in mm/s) dell'asse Z durante la tastatura. Si consiglia di iniziare con la # velocit\u00e0 di tastatura di 20 mm/s e di regolarla secondo necessit\u00e0 per migliorare la # precisione e la ripetibilit\u00e0 dell'attivazione della sonda. #samples: #sample_retract_dist: #samples_result: #samples_tolerance: #samples_tolerance_retries: #activate_gcode: #deactivate_gcode: #deactivate_on_each_sample: # Vedere la sezione \"probe\" per ulteriori informazioni sui parametri di cui sopra. Motori passo-passo ed estrusori aggiuntivi \u00b6 [stepper_z1] \u00b6 Assi multi-stepper. Su una stampante in stile cartesiano, lo stepper che controlla un dato asse pu\u00f2 avere blocchi di configurazione aggiuntivi che definiscono gli stepper che dovrebbero essere azionati insieme allo stepper primario. Si pu\u00f2 definire un numero qualsiasi di sezioni con un suffisso numerico che inizia da 1 (ad esempio, \"stepper_z1\", \"stepper_z2\", ecc.). [stepper_z1] #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: # Vedere la sezione \"stepper\" per la definizione dei parametri di cui sopra. #endstop_pin: # Se viene definito un endstop_pin per lo stepper aggiuntivo, lo stepper # si fermer\u00e0 fino all'attivazione dell'endstop. In caso contrario, lo stepper # si fermer\u00e0 fino a quando non verr\u00e0 attivato il finecorsa sullo stepper # primario per l'asse. [extruder1] \u00b6 In una stampante multiestrusore aggiungere una sezione estrusore aggiuntiva per ogni estrusore aggiuntivo. Le sezioni aggiuntive dell'estrusore devono essere denominate \"extruder1\", \"extruder2\", \"extruder3\" e cos\u00ec via. Vedere la sezione \"extruder\" per una descrizione dei parametri disponibili. Vedere sample-multi-extruder.cfg per un esempio di configurazione. [extruder1] #step_pin: #dir_pin: #... # Vedere la sezione \"estrusore\" per i parametri per lo stepper e il riscaldatore # disponibili. #shared_heater: # Questa opzione \u00e8 obsoleta e non deve pi\u00f9 essere specificata. [dual_carriage] \u00b6 Supporto per stampanti cartesiane con doppi carrelli su un unico asse. Il carrello attivo viene impostato tramite il comando G-code esteso SET_DUAL_CARRIAGE. Il comando \"SET_DUAL_CARRIAGE CARRIAGE=1\" attiver\u00e0 il carrello definito in questa sezione (CARRIAGE=0 riporter\u00e0 l'attivazione al carrello principale). Il supporto del doppio carrello \u00e8 in genere combinato con estrusori extra: il comando SET_DUAL_CARRIAGE viene spesso chiamato contemporaneamente al comando ACTIVATE_EXTRUDER. Assicurati di parcheggiare i carrelli durante la disattivazione. Vedere sample-idex.cfg per un esempio di configurazione. [dual_carriage] axis: # L'asse su cui si trova questo carrello aggiuntivo (x o y). Questo parametro # deve essere fornito #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: #endstop_pin: #position_endstop: #position_min: #position_max: # Vedere la sezione \"stepper\" per la definizione dei parametri di cui sopra. [extruder_stepper] \u00b6 Supporto per stepper aggiuntivi sincronizzati al movimento di un estrusore (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"extruder_stepper\"). Per ulteriori informazioni, vedere riferimento comando . [extruder_stepper my_extra_stepper] extruder: # L'estrusore con cui \u00e8 sincronizzato questo stepper. Se questo \u00e8 impostato su # una stringa vuota, lo stepper non verr\u00e0 sincronizzato con un # estrusore. Questo parametro deve essere fornito. #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: # Vedere la sezione \"stepper\" per la definizione dei parametri sopra. # . [Stepper manuali] \u00b6 Stepper manuali (\u00e8 possibile definire un numero qualsiasi di sezioni con un prefisso \"manual_stepper\"). Questi sono stepper controllati dal comando g-code MANUAL_STEPPER. Ad esempio: \"MANUAL_STEPPER STEPPER=my_stepper MOVE=10 SPEED=5\". Vedere il file G-Codes per una descrizione del comando MANUAL_STEPPER. Gli stepper non sono collegati alla normale cinematica della stampante. [manual_stepper my_stepper] #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: # Vedere la sezione \"stepper\" per una descrizione di questi parametri. #velocity: # Impostare la velocit\u00e0 predefinita (in mm/s) per lo stepper. Questo # valore verr\u00e0 utilizzato se un comando MANUAL_STEPPER non specifica # un parametro SPEED. Il valore predefinito \u00e8 5 mm/s. #accel: # Imposta l'accelerazione predefinita (in mm/s^2) per lo stepper. # Un'accelerazione pari a zero non risulter\u00e0 in nessuna accelerazione. # Questo valore verr\u00e0 utilizzato se un comando MANUAL_STEPPER non # specifica un parametro ACCEL. Il valore predefinito \u00e8 zero. #endstop_pin: # Pin di rilevamento interruttore di fine corsa. Se specificato, \u00e8 possibile # eseguire \"movimenti di riferimento\" aggiungendo un parametro # STOP_ON_ENDSTOP ai comandi di movimento MANUAL_STEPPER. Riscaldatori e sensori personalizzati \u00b6 [verify_heater] \u00b6 Verifica riscaldatore e sensore di temperatura. La verifica del riscaldatore viene abilitata automaticamente per ogni riscaldatore configurato sulla stampante. Usa le sezioni di verifica_riscaldatore per modificare le impostazioni predefinite. [verify_heater heater_config_name] #max_error: 120 # Il massimo \"errore di temperatura cumulativo\" prima di generare un # errore. Valori pi\u00f9 piccoli comportano un controllo pi\u00f9 rigoroso e valori # pi\u00f9 grandi consentono pi\u00f9 tempo prima che venga segnalato un errore. # Nello specifico la temperatura viene osservata una volta al secondo e # se \u00e8 prossima alla temperatura target viene azzerato un \"contatore errori\" # interno; in caso contrario, se la temperatura \u00e8 inferiore all'intervallo target, # il contatore viene aumentato della quantit\u00e0 in cui la temperatura riportata # differisce da tale intervallo. Se il contatore supera questo \"errore_max\", # viene generato un errore. Il valore predefinito \u00e8 120. #check_gain_time: # Questo controlla la verifica del riscaldatore durante il riscaldamento # iniziale. Valori pi\u00f9 piccoli comportano un controllo pi\u00f9 rigoroso e valori # pi\u00f9 grandi consentono pi\u00f9 tempo prima che venga segnalato un errore. # In particolare, durante il riscaldamento iniziale, fintanto che il riscaldatore # aumenta di temperatura entro questo intervallo di tempo (specificato in # secondi), il \"contatore errori\" interno viene azzerato. Il valore predefinito # \u00e8 20 secondi per gli estrusori e 60 secondi per heater_bed. #hysteresis: 5 # La differenza di temperatura massima (in gradi Celsius) rispetto a una # temperatura target considerata nell'intervallo del target. Questo controlla # nell'intervallo max_error. \u00c8 raro personalizzare questo valore. # L'impostazione predefinita \u00e8 5. #heating_gain: 2 # La temperatura minima (in gradi Celsius) di cui il riscaldatore deve # aumentare durante il check_gain_time. \u00c8 raro personalizzare questo valore. # L'impostazione predefinita \u00e8 2. [homing_heaters] \u00b6 Strumento per disabilitare i riscaldatori durante l'homing o la probing di un asse. [homing_heaters] #steppers: # Un elenco separato da virgole di stepper che dovrebbero causare # la disattivazione dei riscaldatori. L'impostazione predefinita \u00e8 # disabilitare i riscaldatori per qualsiasi spostamento di homing/sonda. # Esempio tipico: stepper_z #heaters: # Un elenco separato da virgole di riscaldatori da disabilitare # durante i movimenti di homing/probing. L'impostazione # predefinita \u00e8 disabilitare tutti i riscaldatori. # Esempio tipico: estrusore, letto riscaldatore [thermistor] \u00b6 Termistori personalizzati (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"thermistor\"). \u00c8 possibile utilizzare un termistore personalizzato nel campo sensor_type di una sezione di configurazione del riscaldatore. (Ad esempio, se si definisce una sezione \"[thermistor my_thermistor]\", \u00e8 possibile utilizzare un \"sensor_type: my_thermistor\" quando si definisce un riscaldatore.) Assicurati di posizionare la sezione del termistore nel file di configurazione sopra il suo primo utilizzo in una sezione del riscaldatore . [thermistor my_thermistor] #temperature1: #resistance1: #temperature2: #resistance2: #temperature3: #resistance3: # Tre misure di resistenza (in Ohm) alle temperature date (in Celsius). # Le tre misurazioni verranno utilizzate per calcolare i coefficienti di # Steinhart-Hart per il termistore. Questi parametri devono essere # forniti quando si utilizza Steinhart-Hart per definire il termistore. #beta: # In alternativa, \u00e8 possibile definire temperatura1, resistenza1 e beta # per definire i parametri del termistore. Questo parametro deve # essere fornito quando si utilizza \"beta\" per definire il termistore. [adc_temperature] \u00b6 Sensori di temperatura ADC personalizzati (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"adc_temperature\"). Ci\u00f2 consente di definire un sensore di temperatura personalizzato che misura una tensione su un pin del convertitore da analogico a digitale (ADC) e utilizza l'interpolazione lineare tra una serie di misurazioni di temperatura/tensione (o temperatura/resistenza) configurate per determinare la temperatura. Il sensore risultante pu\u00f2 essere utilizzato come tipo_sensore in una sezione riscaldatore. (Ad esempio, se si definisce una sezione \"[adc_temperature my_sensor]\", \u00e8 possibile utilizzare un \"sensor_type: my_sensor\" quando si definisce un riscaldatore.) Assicurati di posizionare la sezione del sensore nel file di configurazione sopra il suo primo utilizzo in una sezione del riscaldatore. [adc_temperature my_sensor] #temperature1: #voltage1: #temperature2: #voltage2: #... # A set of temperatures (in Celsius) and voltages (in Volts) to use # as reference when converting a temperature. A heater section using # this sensor may also specify adc_voltage and voltage_offset # parameters to define the ADC voltage (see \"Common temperature # amplifiers\" section for details). At least two measurements must # be provided. #temperature1: #resistance1: #temperature2: #resistance2: #... # Alternatively one may specify a set of temperatures (in Celsius) # and resistance (in Ohms) to use as reference when converting a # temperature. A heater section using this sensor may also specify a # pullup_resistor parameter (see \"extruder\" section for details). At # least two measurements must be provided. [heater_generic] \u00b6 Riscaldatori generici (si pu\u00f2 definire un numero qualsiasi di sezioni con il prefisso \"riscaldatore_generico\"). Questi riscaldatori si comportano in modo simile ai riscaldatori standard (estrusori, piatti riscaldati). Utilizzare il comando SET_HEATER_TEMPERATURE (consultare G-Codes per i dettagli) per impostare la temperatura target. [heater_generic my_generic_heater] #gcode_id: # L'ID da utilizzare quando si riporta la temperatura nel comando M105. # Questo parametro deve essere fornito. #max_power: #sensor_type: #sensor_pin: #smooth_time: #control: #pid_Kp: #pid_Ki: #pid_Kd: #pwm_cycle_time: #min_temp: #max_temp: # Vedere la sezione \"extruder\" per la definizione dei parametri sopra. [temperature_sensor] \u00b6 Sensori di temperatura generici. \u00c8 possibile definire un numero qualsiasi di sensori di temperatura aggiuntivi che vengono riportati tramite il comando M105. [temperature_sensor my_sensor] #sensor_type: #sensor_pin: #min_temp: #max_temp: # Vedi la sezione \"extruder\" per la definizione dei parametri # sopra indicati. #gcode_id: # Vedi la sezione \"heater_generic\" per la definizione dei # parametri sopra indicati. Sensori di temperatura \u00b6 Klipper include definizioni per molti tipi di sensori di temperatura. Questi sensori possono essere utilizzati in qualsiasi sezione di configurazione che richieda un sensore di temperatura (come una sezione [extruder] o [heater_bed] ). Termistori comuni \u00b6 Termistori comuni. I seguenti parametri sono disponibili nelle sezioni del riscaldatore che utilizzano uno di questi sensori. sensor_type: # Uno di \"EPCOS 100K B57560G104F\", \"ATC Semitec 104GT-2\", # \"ATC Semitec 104NT-4-R025H42G\", \"Generic 3950\", # \"Honeywell 100K 135-104LAG-J01\", \"NTC 100K MGB18-104F39050L32\", # \"SliceEngineering 450\", o \"TDK NTCG104LH104JT1\" sensor_pin: # Pin di ingresso analogico collegato al termistore. # Questo parametro deve essere fornito. #pullup_resistor: 4700 # La resistenza (in ohm) del pullup collegato al termistore. # Il valore predefinito \u00e8 4700 ohm. #inline_resistor: 0 # La resistenza (in ohm) di un resistore aggiuntivo (non a variazione di # calore) posizionato in linea con il termistore. \u00c8 raro impostare questo. # Il valore predefinito \u00e8 0 ohm. Amplificatori di temperatura comuni \u00b6 Amplificatori di temperatura comuni. I seguenti parametri sono disponibili nelle sezioni del riscaldatore che utilizzano uno di questi sensori. sensor_type: # Uno tra \"PT100 INA826\", \"AD595\", \"AD597\", \"AD8494\", \"AD8495\", # \"AD8496\", o \"AD8497\". sensor_pin: # Pin di ingresso analogico collegato al sensore. Questo parametro # deve essere fornito. #adc_voltage: 5.0 # La tensione di confronto dell'ADC (in Volt). Il valore predefinito # \u00e8 5 volt. #voltage_offset: 0 # L'offset di tensione ADC (in Volt). Il valore predefinito \u00e8 0. Sensore PT1000 collegato direttamente \u00b6 Sensore PT1000 collegato direttamente. I seguenti parametri sono disponibili nelle sezioni del riscaldatore che utilizzano uno di questi sensori. sensor_type: PT1000 sensor_pin: # Pin di ingresso analogico collegato al sensore. Questo parametro # deve essere fornito. #pullup_resistor: 4700 # La resistenza (in ohm) del pullup collegato al sensore. Il valore # predefinito \u00e8 4700 ohm. Sensori di temperatura MAXxxxxx \u00b6 Sensori temperatura MAXxxxxx con interfaccia periferica seriale (SPI). I seguenti parametri sono disponibili nelle sezioni del riscaldatore che utilizzano uno di questi tipi di sensore. sensor_type: # Uno tra \"MAX6675\", \"MAX31855\", \"MAX31856\", o \"MAX31865\". sensor_pin: # Il pin mcu collegato al pin di selezione del chip del sensore. # Questo parametro deve essere fornito. #spi_speed: 4000000 # La velocit\u00e0 SPI (in hz) da utilizzare durante la comunicazione # con il chip. Il valore predefinito \u00e8 4000000. #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Vedere la sezione \"impostazioni comuni SPI\" per una # descrizione dei parametri di cui sopra. #tc_type: K #tc_use_50Hz_filter: False #tc_averaging_count: 1 # I parametri di cui sopra controllano i parametri del sensore # dei chip MAX31856. I valori predefiniti per ciascun parametro # sono accanto al nome del parametro nell'elenco precedente. #rtd_nominal_r: 100 #rtd_reference_r: 430 #rtd_num_of_wires: 2 #rtd_use_50Hz_filter: False # I parametri di cui sopra controllano i parametri del sensore dei # chip MAX31865. I valori predefiniti per ciascun parametro sono # accanto al nome del parametro nell'elenco precedente. Sensore di temperatura BMP280/BME280/BME680 \u00b6 Sensori ambientali BMP280/BME280/BME680 con interfaccia I2C. Si noti che questi sensori non sono destinati all'uso con estrusori e letti riscaldanti, ma piuttosto per il monitoraggio della temperatura ambiente (C), della pressione (hPa), dell'umidit\u00e0 relativa (%)e di livello del gas per il BME680. Vedere sample-macros.cfg per una gcode_macro che pu\u00f2 essere utilizzata per riportare la pressione e l'umidit\u00e0 oltre alla temperatura. sensor_type: BME280 #i2c_address: # Il valore predefinito \u00e8 118 (0x76). Alcuni sensori BME280 hanno un # indirizzo di 119 (0x77). #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni comuni I2C\" per una descrizione # dei parametri di cui sopra. Sensore HTU21D \u00b6 Sensore ambientale con interfaccia a due fili (I2C) della famiglia HTU21D. Si noti che questo sensore non \u00e8 destinato all'uso con estrusori e letti riscaldanti, ma piuttosto per il monitoraggio della temperatura ambiente (C) e dell'umidit\u00e0 relativa(%). Vedere sample-macros.cfg per una gcode_macro che pu\u00f2 essere utilizzata per riportare l'umidit\u00e0 oltre alla temperatura. sensor_type: # Deve essere \"HTU21D\", \"SI7013\", \"SI7020\", \"SI7021\" o \"SHT21\" #i2c_address: # Il valore predefinito \u00e8 64 (0x40). #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni comuni I2C\" per una # descrizione dei parametri di cui sopra. #htu21d_hold_master: # Se il sensore pu\u00f2 trattenere il buf I2C durante la lettura. Se # True nessun'altra comunicazione bus pu\u00f2 essere eseguita mentre # la lettura \u00e8 in corso. L'impostazione predefinita \u00e8 False. #htu21d_resolution: # La risoluzione della lettura di temperatura e umidit\u00e0. # I valori validi sono: # 'TEMP14_HUM12' -> 14bit per Temp e 12bit per umidit\u00e0 # 'TEMP13_HUM10' -> 13bit per Temp e 10bit per umidit\u00e0 # 'TEMP12_HUM08' -> 12bit per Temp e 08bit per umidit\u00e0 # 'TEMP11_HUM11' -> 11bit per Temp e 11bit per umidit\u00e0 # L'impostazione predefinita \u00e8: \"TEMP11_HUM11\" #htu21d_report_time: # Intervallo in secondi tra le letture. Il valore predefinito \u00e8 30 Sensore di temperatura LM75 \u00b6 Sensori di temperatura (I2C) LM75/LM75A. Questi sensori hanno una gamma di -55~125 C, quindi sono utilizzabili ad es. monitoraggio della temperatura della camera. Possono anche funzionare come semplici controller per ventole/riscaldatori. sensor_type: LM75 #i2c_address: # Il valore predefinito \u00e8 72 (0x48). L'intervallo normale \u00e8 72-79 # (0x48-0x4F) e i 3 bit bassi dell'indirizzo sono configurati tramite # pin sul chip (di solito con ponticelli o cablati). #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni comuni I2C\" per una descrizione # dei parametri di cui sopra. #lm75_report_time: # Intervallo in secondi tra le letture. Il valore predefinito \u00e8 0.8 # con il minimo 0.5. Sensore di temperatura integrato nel microcontrollore \u00b6 I microcontrollori atsam, atsamd e stm32 contengono un sensore di temperatura interno. \u00c8 possibile utilizzare il sensore \"temperature_mcu\" per monitorare queste temperature. sensor_type: temperature_mcu #sensor_mcu: mcu # Il microcontrollore da cui leggere. L'impostazione predefinita \u00e8 \"mcu\". #sensor_temperature1: #sensor_adc1: # Specificare i due parametri precedenti (una temperatura in gradi # Celsius e un valore ADC come float compreso tra 0,0 e 1,0) per # calibrare la temperatura del microcontrollore. Ci\u00f2 potrebbe # migliorare la precisione della temperatura riportata su alcuni chip. # Un modo tipico per ottenere queste informazioni di calibrazione # consiste nel rimuovere completamente l'alimentazione dalla # stampante per alcune ore (per assicurarsi che sia alla temperatura # ambiente), quindi accenderla e utilizzare il comando QUERY_ADC # per ottenere una misurazione ADC. Utilizzare un altro sensore di # temperatura sulla stampante per trovare la temperatura ambiente # corrispondente. L'impostazione predefinita consiste nell'utilizzare # i dati di calibrazione di fabbrica sul microcontrollore (se applicabile) # o i valori nominali dalle specifiche del microcontrollore. #sensor_temperature2: #sensor_adc2: # Se viene specificato sensor_temperature1/sensor_adc1, \u00e8 anche # possibile specificare i dati di calibrazione sensor_temperature2/sensor_adc2. # Ci\u00f2 potrebbe fornire informazioni calibrate sulla \"curva della # temperatura\". L'impostazione predefinita consiste nell'utilizzare i dati # di calibrazione di fabbrica sul microcontrollore (se applicabile) o i # valori nominali dalle specifiche del microcontrollore. Sensore di temperatura host \u00b6 Temperatura dalla macchina (es. Raspberry Pi) che esegue il software host. sensor_type: temperature_host #sensor_path: # il percorso del file di sistema della temperatura. L'impostazione # predefinita \u00e8 \"/sys/class/thermal/thermal_zone0/temp\" che \u00e8 il file di # sistema della temperatura su un computer Raspberry Pi. Sensore di temperatura DS18B20 \u00b6 DS18B20 \u00e8 un sensore di temperatura digitale a 1 filo (w1). Si noti che questo sensore non \u00e8 destinato all'uso con estrusori e letti riscaldanti, ma piuttosto per il monitoraggio della temperatura ambiente (C). Questi sensori hanno una portata fino a 125 C, quindi sono utilizzabili ad es. monitoraggio della temperatura della camera. Possono anche funzionare come semplici controller per ventole/riscaldatori. I sensori DS18B20 sono supportati solo su \"host mcu\", ad es. il Raspberry Pi. \u00c8 necessario installare il modulo del kernel Linux w1-gpio. sensor_type: DS18B20 serial_no: # Ogni dispositivo a 1 filo ha un numero di serie univoco utilizzato per # identificare il dispositivo, solitamente nel formato 28-031674b175ff. Questo # parametro deve essere fornito. I dispositivi collegati a 1 filo possono essere # elencati utilizzando il seguente comando Linux: ls /sys/bus/w1/devices/ #ds18_report_time: # Intervallo in secondi tra le letture. Il valore predefinito \u00e8 3.0, con un # minimo di 1.0 #sensor_mcu: # Il microcontrollore da cui leggere. Deve essere host_mcu Ventole \u00b6 [fan] \u00b6 Ventola di raffreddamento della stampa. [fan] pin: # Pin di output che controlla la ventola. Questo parametro deve essere fornito. #max_power: 1.0 # La potenza massima (espressa come un valore compreso tra 0.0 e 1.0) a # cui pu\u00f2 essere impostato il pin. Il valore 1.0 consente di impostare il pin # completamente abilitato per periodi prolungati, mentre un valore di 0.5 # consentirebbe di abilitare il pin per non pi\u00f9 della met\u00e0 del tempo. Questa # impostazione pu\u00f2 essere utilizzata per limitare la potenza totale (per # periodi prolungati) della ventola. Se questo valore \u00e8 inferiore a 1.0, le # richieste di velocit\u00e0 della ventola verranno ridimensionate tra zero e # max_power (ad esempio, se max_power \u00e8 0.9 e viene richiesta una # velocit\u00e0 della ventola dell'80%, la potenza della ventola verr\u00e0 impostata # su 72%). L'impostazione predefinita \u00e8 1.0. #shutdown_speed: 0 # La velocit\u00e0 della ventola desiderata (espressa come valore da 0.0 a # 1.0) se il software del microcontrollore entra in uno stato di errore. # Il valore predefinito \u00e8 0. #cycle_time: 0.010 # La quantit\u00e0 di tempo (in secondi) per ogni ciclo di alimentazione PWM # alla ventola. Si consiglia di essere pari o superiore a 10 millisecondi # quando si utilizza il PWM basato su software. # Il valore predefinito \u00e8 0,010 secondi. #hardware_pwm: False # Abilitare questa opzione per utilizzare PWM hardware anzich\u00e9 PWM # software. La maggior parte delle ventole non funziona bene con PWM # hardware, quindi non \u00e8 consigliabile abilitarlo a meno che non vi sia # un requisito elettrico per passare a velocit\u00e0 molto elevate. Quando # si utilizza l'hardware PWM, il tempo di ciclo effettivo \u00e8 vincolato # dall'implementazione e pu\u00f2 essere notevolmente diverso dal tempo # di ciclo richiesto. L'impostazione predefinita \u00e8 False. #kick_start_time: 0.100 # Tempo (in secondi) per far funzionare la ventola a piena velocit\u00e0 # quando la si abilita per la prima volta o la si aumenta di oltre il 50% # (aiuta a far girare la ventola). Il valore predefinito \u00e8 0,100 secondi. #off_below: 0.0 # La velocit\u00e0 minima in input che alimenter\u00e0 la ventola (espressa # come un valore da 0.0 a 1.0). Quando viene richiesta una velocit\u00e0 # inferiore a off_below la ventola verr\u00e0 invece spenta. Questa # impostazione pu\u00f2 essere utilizzata per prevenire lo stallo della # ventola e per garantire che i kick start siano efficaci. # Il valore predefinito \u00e8 0.0. # # Questa impostazione deve essere ricalibrata ogni volta che # max_power viene regolato. Per calibrare questa impostazione, # inizia con off_below impostato su 0.0 e la ventola gira. Abbassare # gradualmente la velocit\u00e0 della ventola per determinare la velocit\u00e0 # di ingresso pi\u00f9 bassa che aziona la ventola in modo affidabile senza # stalli. Impostare off_below al duty cycle corrispondente a questo # valore (ad esempio, 12% -> 0,12) o leggermente superiore. #tachometer_pin: # Pin di ingresso contagiri per il monitoraggio della velocit\u00e0 della # ventola. In genere \u00e8 richiesto un pullup. Questo parametro \u00e8 facoltativo. #tachometer_ppr: 2 # Quando viene specificato tachometer_pin, questo \u00e8 il numero di # impulsi per giro del segnale del tachimetro. Per una ventola BLDC # questo \u00e8 normalmente la met\u00e0 del numero di poli. # L'impostazione predefinita \u00e8 2. #tachometer_poll_interval: 0.0015 # Quando viene specificato tachometer_pin, questo \u00e8 il periodo di polling # del pin del contagiri, in secondi. Il valore predefinito \u00e8 0.0015, che \u00e8 # abbastanza veloce per le ventole al di sotto di 10000 RPM a 2 PPR. Deve # essere inferiore a 30/(tachometer_ppr*rpm), con un certo margine, # dove rpm \u00e8 la velocit\u00e0 massima (in RPM) della ventola. #enable_pin: # Pin opzionale per abilitare l'alimentazione alla ventola. Questo pu\u00f2 # essere utile per le ventole con ingressi PWM dedicati. Alcune di queste # ventole rimangono accese anche allo 0% di ingresso PWM. In tal caso, # il pin PWM pu\u00f2 essere utilizzato normalmente e ad es. un FET commutato # a terra (pin della ventola standard) pu\u00f2 essere utilizzato per controllare # l'alimentazione alla ventola. [heater_fan] \u00b6 Ventole di raffreddamento del riscaldatore (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"heater_fan\"). Una \"ventola riscaldatore\" \u00e8 una ventola che verr\u00e0 abilitata ogni volta che il riscaldatore associato \u00e8 attivo. Per impostazione predefinita, un heater_fan ha una velocit\u00e0 di spegnimento pari a max_power. [heater_fan my_nozzle_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # Vedere la sezione \"fan\" per una descrizione dei parametri di cui sopra. #heater: extruder # Nome della sezione di configurazione che definisce il riscaldatore a cui # \u00e8 associato questa ventola. Se qui viene fornito un elenco di nomi di # riscaldatori separati da virgole, la ventola verr\u00e0 abilitata quando uno # qualsiasi dei riscaldatori indicati \u00e8 abilitato. # L'impostazione predefinita \u00e8 \"extruder\". #heater_temp: 50.0 # Una temperatura (in gradi Celsius) sotto la quale il riscaldatore deve # scendere prima che la ventola venga disattivata. # L'impostazione predefinita \u00e8 50 gradi Celsius. #fan_speed: 1.0 # La velocit\u00e0 della ventola (espressa come un valore compreso tra 0.0 e # 1.0) a cui verr\u00e0 impostato la ventola quando viene abilitato il relativo # riscaldatore. L'impostazione predefinita \u00e8 1.0 [controller_fan] \u00b6 Ventola di raffreddamento del controller (\u00e8 possibile definire un numero qualsiasi di sezioni con il prefisso \"controller_fan\"). Una \"ventola del controller\" \u00e8 una ventola che verr\u00e0 abilitata ogni volta che il riscaldatore associato o il driver stepper associato \u00e8 attivo. La ventola si fermer\u00e0 ogni volta che viene raggiunto un idle_timeout per garantire che non si verifichi alcun surriscaldamento dopo la disattivazione di un componente osservato. [controller_fan my_controller_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # Vedere la sezione \"fan\" per una descrizione dei parametri di cui sopra. #fan_speed: 1.0 # La velocit\u00e0 della ventola (espressa come un valore compreso tra 0.0 e # 1.0) a cui verr\u00e0 impostata la ventola quando \u00e8 attivo un riscaldatore # o un driver passo-passo. L'impostazione predefinita \u00e8 1.0 #idle_timeout: # La quantit\u00e0 di tempo (in secondi) dopo che un driver passo-passo o # un riscaldatore \u00e8 stato attivo per la quale la ventola deve essere tenuta # in funzione. L'impostazione predefinita \u00e8 30 secondi. #idle_speed: # La velocit\u00e0 della ventola (espressa come un valore compreso tra 0.0 # e 1.0) a cui verr\u00e0 impostata la ventola quando era attivo un riscaldatore # o un driver passo-passo e prima che venga raggiunto l'idle_timeout. # L'impostazione predefinita \u00e8 fan_speed. #heater: #stepper: # Nome della sezione di configurazione che definisce il riscaldatore/ # stepper a cui \u00e8 associata questa ventola. Se qui viene fornito un # elenco separato da virgole di nomi di riscaldatori/stepper, la ventola # sar\u00e0 abilitata quando uno qualsiasi dei riscaldatori/stepper indicati # \u00e8 abilitato. Il riscaldatore predefinito \u00e8 \"estrusore\", lo stepper # predefinito sono tutti. [temperature_fan] \u00b6 Ventole di raffreddamento attivate dalla temperatura (\u00e8 possibile definire un numero qualsiasi di sezioni con un prefisso \"temperature_fan\"). Una \"ventola di temperatura\" \u00e8 una ventola che verr\u00e0 abilitata ogni volta che il sensore associato \u00e8 al di sopra di una temperatura impostata. Per impostazione predefinita, una ventola_temperatura ha una velocit\u00e0_di_arresto pari a potenza_massima. Per ulteriori informazioni, vedere command reference . [temperature_fan my_temp_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # Vedere la sezione \"fan\" per una descrizione dei parametri di cui sopra. #sensor_type: #sensor_pin: #control: #max_delta: #min_temp: #max_temp: # Vedere la sezione \"extruder\" per una descrizione dei parametri di cui sopra. #pid_Kp: #pid_Ki: #pid_Kd: # Le impostazioni proporzionale (pid_Kp), integrale (pid_Ki) e derivata (pid_Kd) # per il sistema di controllo del feedback PID. Klipper valuta le impostazioni PID # con la seguente formula generale: fan_pwm = max_power - (Kp*e + Ki*integral(e) # - Kd*derivative(e)) / 255 Dove \"e\" \u00e8 \"target_temperature - measure_temperature\" # e \"fan_pwm\" \u00e8 la frequenza della ventola richiesta con 0.0 per spento e 1.0 al # massimo. I parametri pid_Kp, pid_Ki e pid_Kd devono essere forniti quando l# 'algoritmo di controllo PID \u00e8 abilitato. #pid_deriv_time: 2.0 # Un valore di tempo (in secondi) su cui le misurazioni della temperatura verranno # livellate quando si utilizza l'algoritmo di controllo PID. Ci\u00f2 pu\u00f2 ridurre l'impatto # del rumore di misurazione. Il valore predefinito \u00e8 2 secondi. #target_temp: 40.0 # Una temperatura (in Celsius) che sar\u00e0 la temperatura target. # L'impostazione predefinita \u00e8 40 gradi. #max_speed: 1.0 # La velocit\u00e0 della ventola (espressa come un valore compreso tra 0.0 e 1.0) a cui # verr\u00e0 impostata la ventola quando la temperatura del sensore supera il valore # impostato. L'impostazione predefinita \u00e8 1.0. #min_speed: 0.3 # La velocit\u00e0 minima della ventola (espressa come un valore compreso tra 0.0 e # 1.0) alla quale la ventola verr\u00e0 impostata per le ventole con temperatura PID. # Il valore predefinito \u00e8 0.3. #gcode_id: # Se impostata, la temperatura verr\u00e0 riportata nelle query M105 utilizzando l'id # fornito. L'impostazione predefinita \u00e8 di non riportare la temperatura tramite M105. [fan_generic] \u00b6 Ventola a controllo manuale (si pu\u00f2 definire un numero qualsiasi di sezioni con il prefisso \"fan_generic\"). La velocit\u00e0 di una ventola controllata manualmente viene impostata con SET_FAN_SPEED comando gcode . [fan_generic extruder_partfan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # Vedere la sezione \"fan\" per una descrizione dei parametri di cui sopra. LEDs \u00b6 [led] \u00b6 Supporto per LED (e strisce LED) controllati tramite pin PWM del microcontrollore (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"led\"). Per ulteriori informazioni, vedere command reference . [led my_led] #red_pin: #green_pin: #blue_pin: #white_pin: # Il pin che controlla il colore del LED specificato. Deve essere fornito # almeno uno dei parametri sopra indicati. #cycle_time: 0.010 # La quantit\u00e0 di tempo (in secondi) per ciclo PWM. Si consiglia che sia # pari o superiore a 10 millisecondi quando si utilizza il PWM basato # su software. Il valore predefinito \u00e8 0,010 secondi. #hardware_pwm: False # Abilitare questa opzione per utilizzare PWM hardware anzich\u00e9 PWM # software. Quando si utilizza l'hardware PWM, il tempo di ciclo effettivo # \u00e8 vincolato dall'implementazione e pu\u00f2 essere notevolmente diverso # dal tempo di ciclo richiesto. L'impostazione predefinita \u00e8 Falso. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Imposta il colore iniziale del LED. Ciascun valore deve essere # compreso tra 0,0 e 1,0. Il valore predefinito per ogni colore \u00e8 0. [neopixel] \u00b6 Supporto LED Neopixel (aka WS2812) (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"neopixel\"). Per ulteriori informazioni, vedere riferimento comando . Si noti che l'implementazione di linux mcu non supporta attualmente i neopixel collegati direttamente. L'attuale design che utilizza l'interfaccia del kernel Linux non consente questo scenario perch\u00e9 l'interfaccia GPIO del kernel non \u00e8 sufficientemente veloce da fornire le frequenze di impulso richieste. [neopixel my_neopixel] pin: # Il pin collegato al neopixel. Questo parametro deve essere fornito. #chain_count: # Il numero di chip Neopixel che sono \"collegati a margherita\" al # pin fornito. Il valore predefinito \u00e8 1 (che indica che un solo # Neopixel \u00e8 collegato al pin). #color_order: GRB # Impostare l'ordine dei pixel richiesto dall'hardware del LED # (utilizzando una stringa contenente le lettere R, G, B, W con W # opzionale). In alternativa, questo pu\u00f2 essere un elenco separato # da virgole di pixel, uno per ogni LED nella catena. # L'impostazione predefinita \u00e8 GRB. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Vedere la sezione \"led\" per informazioni su questi parametri. [dotstar] \u00b6 Supporto LED Dotstar (conosciuti anche come APA102) (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"dotstar\"). Per ulteriori informazioni, vedere command reference . [dotstar my_dotstar] data_pin: # Il pin connesso alla data line del dotstar. Questo parametro # deve essere fornito. clock_pin: # Il pin connesso alla clock line del dotstar. Questo parametro # deve essere fornito. #chain_count: # Vedere la sezione \"neopixel\" per informazioni su questo parametro. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 # Vedere la sezione \"led\" per informazioni su questo parametro. [pca9533] \u00b6 PCA9533 Supporto LED. Il PCA9533 viene utilizzato sulla scheda mightyboard. [pca9533 my_pca9533] #i2c_address: 98 # L'indirizzo i2c utilizzato dal chip sul bus i2c. Utilizzare 98 per # PCA9533/1, 99 per PCA9533/2. Il valore predefinito \u00e8 98. #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni comuni I2C\" per una # descrizione dei parametri di cui sopra. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Vedere la sezione \"led\" per informazioni su questi parametri. [pca9632] \u00b6 Supporto LED PCA9632. Il PCA9632 viene utilizzato su FlashForge Dreamer. [pca9632 my_pca9632] #i2c_address: 98 # L'indirizzo i2c utilizzato dal chip sul bus i2c. Pu\u00f2 essere 96, # 97, 98 o 99. Il valore predefinito \u00e8 98. #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni I2C comuni\" per una # descrizione dei parametri di cui sopra. #scl_pin: #sda_pin: # In alternativa, se il pca9632 non \u00e8 collegato a un bus I2C # hardware, \u00e8 possibile specificare i pin \"clock\" (pin scl) e \"data\" # (pin sda). L'impostazione predefinita prevede l'utilizzo # dell'hardware I2C. #color_order: RGBW # Impostare l'ordine dei pixel del LED (usando una stringa # contenente le lettere R, G, B, W). L'impostazione predefinita # \u00e8 RGBW. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Vedere la sezione \"led\" per informazioni su questi parametri. Servocomandi aggiuntivi, pulsanti e altri pin \u00b6 [servo] \u00b6 Servo (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"servo\"). I servo possono essere controllati usando SET_SERVO comando g-code . Ad esempio: SET_SERVO SERVO=my_servo ANGLE=180 [servo my_servo] pin: # Pin di uscita PWM che controlla il servo. Questo parametro deve # essere fornito. #maximum_servo_angle: 180 # L'angolo massimo (in gradi) a cui questo servo pu\u00f2 essere impostato. # L'impostazione predefinita \u00e8 180 gradi. #minimum_pulse_width: 0.001 # La durata minima dell'impulso (in secondi). Questo dovrebbe # corrispondere a un angolo di 0 gradi. Il valore predefinito \u00e8 0.001 secondi. #maximum_pulse_width: 0.002 # La durata massima dell'impulso (in secondi). Questo dovrebbe # corrispondere a un angolo di maximum_servo_angle. Il valore # predefinito \u00e8 0.002 secondi. #initial_angle: # Angolo iniziale (in gradi) su cui impostare il servo. L'impostazione # predefinita \u00e8 di non inviare alcun segnale all'avvio. #initial_pulse_width: # Durata iniziale dell'impulso (in secondi) su cui impostare il servo. # (Questo \u00e8 valido solo se initial_angle non \u00e8 impostato.) # L'impostazione predefinita \u00e8 di non inviare alcun segnale all'avvio. [gcode_button] \u00b6 Esegui gcode quando un pulsante viene premuto o rilasciato (o quando un pin cambia stato). Puoi controllare lo stato del pulsante usando QUERY_BUTTON button=my_gcode_button . [gcode_button my_gcode_button] pin: # Il pin su cui \u00e8 collegato il pulsante. Questo parametro deve essere fornito. #analog_range: # Due resistenze separate da virgole (in Ohm) che specificano l'intervallo # di resistenza minimo e massimo per il pulsante. Se viene fornito # analog_range, il pin deve essere un pin con capacit\u00e0 analogica. # L'impostazione predefinita \u00e8 utilizzare digital gpio per il pulsante. #analog_pullup_resistor: # La resistenza di pullup (in Ohm) quando \u00e8 specificato analog_range. # Il valore predefinito \u00e8 4700 ohm. #press_gcode: # Un elenco di comandi G-Code da eseguire quando si preme il pulsante. # I modelli G-Code sono supportati. Questo parametro deve essere fornito. #release_gcode: # Un elenco di comandi G-Code da eseguire quando il pulsante viene # rilasciato. I modelli G-Code sono supportati. L'impostazione predefinita # \u00e8 di non eseguire alcun comando al rilascio di un pulsante. [output_pin] \u00b6 Pin di uscita configurabili in fase di run-time (\u00e8 possibile definire un numero qualsiasi di sezioni con un prefisso \"output_pin\"). I pin configurati qui verranno impostati come pin di output e sar\u00e0 possibile modificarli in fase di esecuzione utilizzando il comando esteso \"SET_PIN PIN=my_pin VALUE=.1\" comandi g-code . [output_pin my_pin] pin: # Il pin da configurare come output. # Questo parametro deve essere fornito. #pwm: False # Impostare se il pin di uscita deve essere in grado di modulare la # larghezza di impulso PWM. Se questo \u00e8 True, i campi del valore # dovrebbero essere compresi tra 0 e 1; se \u00e8 False i campi del valore # devono essere 0 o 1. Il valore predefinito \u00e8 False. #static_value: # Se \u00e8 valorizzato, il pin viene assegnato a questo valore all'avvio e # il pin non pu\u00f2 essere modificato durante il runtime. Un pin statico # utilizza una ram leggermente inferiore nel microcontrollore. # L'impostazione predefinita prevede l'utilizzo della configurazione # di runtime dei pin. #value: # Il valore su cui impostare inizialmente il pin durante la # configurazione dell'MCU. Il valore predefinito \u00e8 0 (per bassa tensione). #shutdown_value: # Il valore su cui impostare il pin su un evento di arresto dell'MCU. # Il valore predefinito \u00e8 0 (per bassa tensione). #maximum_mcu_duration: # La durata massima di un valore di non spegnimento pu\u00f2 essere # determinato dall'MCU senza un riconoscimento da parte dell'host. # Se l'host non riesce a tenere il passo con un aggiornamento, l'MCU # si spegner\u00e0 e imposter\u00e0 tutti i pin sui rispettivi valori di spegnimento. # Default: 0 (disabilitato) I valori abituali sono circa 5 secondi. #cycle_time: 0.100 # La quantit\u00e0 di tempo (in secondi) per ciclo PWM. Si consiglia di # essere pari o superiore a 10 millisecondi quando si utilizza il PWM # basato su software. Il valore predefinito \u00e8 0.100 secondi per i pin pwm. #hardware_pwm: False # Abilitare questa opzione per utilizzare PWM hardware anzich\u00e9 PWM # software. Quando si utilizza l'hardware PWM, il tempo di ciclo effettivo # \u00e8 vincolato dall'implementazione e pu\u00f2 essere notevolmente diverso # dal tempo di ciclo richiesto. L'impostazione predefinita \u00e8 Falso. #scale: # Questo parametro pu\u00f2 essere utilizzato per modificare il modo in cui # i parametri 'value' e 'shutdown_value' vengono interpretati per i pin # pwm. Se fornito, il parametro 'value' deve essere compreso tra 0.0 e # 'scale'. Questo pu\u00f2 essere utile quando si configura un pin PWM che # controlla un riferimento di tensione stepper. La \"scala\" pu\u00f2 essere # impostata sull'amperaggio dello stepper equivalente se il PWM fosse # completamente abilitato, quindi il parametro \"value\" pu\u00f2 essere # specificato utilizzando l'amperaggio desiderato per lo stepper. # L'impostazione predefinita \u00e8 di non ridimensionare il parametro 'value'. [static_digital_output] \u00b6 Pin di uscita digitali configurati staticamente (\u00e8 possibile definire un numero qualsiasi di sezioni con un prefisso \"static_digital_output\"). I pin configurati qui verranno impostati come uscita GPIO durante la configurazione dell'MCU. Non possono essere modificati in fase di esecuzione. [static_digital_output my_output_pins] pins: # Un elenco separato da virgole di pin da impostare come pin di # output GPIO. Il pin verr\u00e0 impostato su un livello alto a meno che il # nome del pin non sia preceduto da \"!\". Questo parametro deve # essere fornito. [multi_pin] \u00b6 Uscite a pin multipli (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"multi_pin\"). Un output multi_pin crea un alias pin interno che pu\u00f2 modificare pi\u00f9 pin di output ogni volta che viene impostato il pin alias. Ad esempio, si potrebbe definire un oggetto \"[multi_pin my_fan]\" contenente due pin e quindi impostare \"pin=multi_pin:my_fan\" nella sezione \"[fan]\" - ad ogni cambio di ventola entrambi i pin di output verrebbero aggiornati. Questi alias non possono essere utilizzati con i pin del motore passo-passo. [multi_pin my_multi_pin] pins: # Un elenco separato da virgole di pin associati a questo alias. # Questo parametro deve essere fornito. Configurazione del driver TMC per stepper \u00b6 Configurazione dei driver per motori passo-passo Trinamic in modalit\u00e0 UART/SPI. Ulteriori informazioni si trovano nella TMC Drivers guide e nel command reference . [tmc2130] \u00b6 Configurare un driver per motore passo-passo TMC2130 tramite bus SPI. Per utilizzare questa funzione, definire una sezione di configurazione con un prefisso \"tmc2130\" seguito dal nome della sezione di configurazione dello stepper corrispondente (ad esempio, \"[tmc2130 stepper_x]\"). [tmc2130 stepper_x] cs_pin: # Il pin collegato al pin di selezione del chip TMC2130. # Questo pin verr\u00e0 impostato su basso all'inizio dei messaggi SPI e # portato su alto al termine del messaggio. Questo parametro deve # essere fornito. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Vedere la sezione \"impostazioni comuni SPIi\" per una descrizione # dei parametri di cui sopra. #chain_position: #chain_length: # Questi parametri configurano una daisy chain SPI. I due parametri # definiscono la posizione dello stepper nella catena e la lunghezza totale # della catena. La posizione 1 corrisponde allo stepper che si collega al # segnale MOSI. L'impostazione predefinita \u00e8 di non utilizzare un # collegamento a margherita SPI. #interpolate: True # Se True, abilita l'interpolazione del passo (il driver eseguir\u00e0 un passo # intero attraverso 256 micropassi). Questa interpolazione introduce una # piccola deviazione posizionale sistemica - vedi TMC_Drivers.md per i # dettagli. L'impostazione predefinita \u00e8 True. run_current: # La quantit\u00e0 di corrente (in ampere RMS) con cui configurare il driver e utilizzare durante il movimento passo-passo. Questo parametro deve essere fornito. #hold_current: # La quantit\u00e0 di corrente (in ampere RMS) con cui configurare il driver da # utilizzare quando lo stepper non \u00e8 in movimento. L'impostazione di # hold_current non \u00e8 consigliata (consultare TMC_Drivers.md per i # dettagli). L'impostazione predefinita \u00e8 di non ridurre la corrente. #sense_resistor: 0.110 # La resistenza (in ohm) del resistore di rilevamento del motore. # Il valore predefinito \u00e8 0,110 ohm. #stealthchop_threshold: 0 # La velocit\u00e0 (in mm/s) su cui impostare la soglia \"stealthChop\". Se # impostata, la modalit\u00e0 \"stealthChop\" sar\u00e0 abilitata se la velocit\u00e0 del # motore passo-passo \u00e8 inferiore a questo valore. Il valore predefinito # \u00e8 0, che disabilita la modalit\u00e0 \"stealthChop\". #driver_IHOLDDELAY: 8 #driver_TPOWERDOWN: 0 #driver_TBL: 1 #driver_TOFF: 4 #driver_HEND: 7 #driver_HSTRT: 0 #driver_PWM_AUTOSCALE: True #driver_PWM_FREQ: 1 #driver_PWM_GRAD: 4 #driver_PWM_AMPL: 128 #driver_SGT: 0 # Impostare il registro dato durante la configurazione del chip # TMC2130. Pu\u00f2 essere utilizzato per impostare parametri motore # personalizzati. I valori predefiniti per ciascun parametro sono # accanto al nome del parametro nell'elenco precedente. #diag0_pin: #diag1_pin: # Il pin del microcontrollore collegato a una delle linee DIAG del # chip TMC2130. \u00c8 necessario specificare un solo pin diag. Il pin \u00e8 # \"attivo basso\" ed \u00e8 quindi normalmente preceduto da \"^!\". # L'impostazione di questo crea un pin virtuale # \"tmc2130_stepper_x:virtual_endstop\" che pu\u00f2 essere utilizzato # come endstop_pin dello stepper. In questo modo si abilita # l'\"homing sensorless\". (Assicurarsi di impostare anche driver_SGT # su un valore di sensibilit\u00e0 appropriato.) L'impostazione predefinita # \u00e8 di non abilitare l'homing sensorless. [tmc2208] \u00b6 Configurare un driver per motore passo-passo TMC2208 (o TMC2224) tramite UART a filo singolo. Per utilizzare questa funzione, definire una sezione di configurazione con un prefisso \"tmc2208\" seguito dal nome della sezione di configurazione dello stepper corrispondente (ad esempio, \"[tmc2208 stepper_x]\"). [tmc2208 stepper_x] uart_pin: # Il pin collegato al PDN_UART del TMC2208 . # Questo parametro deve essere fornito. #tx_pin: # Se si utilizzano linee di ricezione e trasmissione separate per # comunicare con il driver, impostare uart_pin sul pin di ricezione e # tx_pin sul pin di trasmissione. L'impostazione predefinita \u00e8 usare uart_pin sia per la lettura che per la scrittura. #select_pins: # Un elenco separato da virgole di pin da impostare prima di accedere # all'UART tmc2208. Questo pu\u00f2 essere utile per configurare un mux # analogico per la comunicazione UART. L'impostazione predefinita \u00e8 # di non configurare alcun pin. #interpolate: True # Se True, abilita l'interpolazione del passo (il driver eseguir\u00e0 un passo # intero con 256 micropassi). Questa interpolazione # introduce una piccola deviazione posizionale sistemica - vedere # TMC_Drivers.md per i dettagli. L'impostazione predefinita \u00e8 True. run_current: # La quantit\u00e0 di corrente (in ampere RMS) per configurare il driver da # utilizzare durante il movimento passo-passo. # Questo parametro deve essere fornito. #hold_current: # La quantit\u00e0 di corrente (in ampere RMS) per configurare il driver da # utilizzare quando lo stepper non \u00e8 in movimento. L'impostazione di # hold_current non \u00e8 consigliata (consultare TMC_Drivers.md per i # dettagli). L'impostazione predefinita \u00e8 di non ridurre la corrente. #sense_resistor: 0.110 # La resistenza (in ohm) del resistore di rilevamento del motore. # Il valore predefinito \u00e8 0,110 ohm. #stealthchop_threshold: 0 # La velocit\u00e0 (in mm/s) su cui impostare la soglia \"stealthChop\". Se # impostata, la modalit\u00e0 \"stealthChop\" sar\u00e0 abilitata se la velocit\u00e0 del # motore passo-passo \u00e8 inferiore a questo valore. Il valore predefinito # \u00e8 0, che disabilita la modalit\u00e0 \"stealthChop\". #driver_IHOLDDELAY: 8 #driver_TPOWERDOWN: 20 #driver_TBL: 2 #driver_TOFF: 3 #driver_HEND: 0 #driver_HSTRT: 5 #driver_PWM_AUTOGRAD: True #driver_PWM_AUTOSCALE: True #driver_PWM_LIM: 12 #driver_PWM_REG: 8 #driver_PWM_FREQ: 1 #driver_PWM_GRAD: 14 #driver_PWM_OFS: 36 # Impostare il registro dato durante la configurazione del chip TMC2208. # Pu\u00f2 essere utilizzato per impostare parametri motore personalizzati. # I valori predefiniti per ciascun parametro sono accanto al nome del # parametro nell'elenco precedente. [tmc2209] \u00b6 Configurare un driver per motore passo-passo TMC2209 tramite UART a filo singolo. Per utilizzare questa funzione, definire una sezione di configurazione con un prefisso \"tmc2209\" seguito dal nome della sezione di configurazione dello stepper corrispondente (ad esempio, \"[tmc2209 stepper_x]\"). [tmc2209 stepper_x] uart_pin: #tx_pin: #select_pins: #interpolate: True run_current: #hold_current: #sense_resistor: 0.110 #stealthchop_threshold: 0 # Vedere la sezione \"tmc2208\" per la definizione di questi parametri. #uart_address: # L'indirizzo del chip TMC2209 per i messaggi UART (un numero intero # compreso tra 0 e 3). Viene in genere utilizzato quando pi\u00f9 chip TMC2209 # sono collegati allo stesso pin UART. Il valore predefinito \u00e8 zero #driver_IHOLDDELAY: 8 #driver_TPOWERDOWN: 20 #driver_TBL: 2 #driver_TOFF: 3 #driver_HEND: 0 #driver_HSTRT: 5 #driver_PWM_AUTOGRAD: True #driver_PWM_AUTOSCALE: True #driver_PWM_LIM: 12 #driver_PWM_REG: 8 #driver_PWM_FREQ: 1 #driver_PWM_GRAD: 14 #driver_PWM_OFS: 36 #driver_SGTHRS: 0 # Impostare il registro dato durante la configurazione del chip TMC2209. # Pu\u00f2 essere utilizzato per impostare parametri motore personalizzati. I # valori predefiniti per ciascun parametro sono accanto al nome del # parametro nell'elenco precedente. #diag_pin: # Il pin del microcontrollore collegato alla linea DIAG del chip TMC2209. # Il pin \u00e8 normalmente preceduto da \"^\" per abilitare un pullup. # L'impostazione di questo crea un pin virtuale \"tmc2209_stepper_x:virtual_endstop\" # che pu\u00f2 essere utilizzato come endstop_pin dello stepper. In questo modo # si abilita l'\"homing sensorless\". (Assicurarsi di impostare anche driver_SGTHRS # su un valore di sensibilit\u00e0 appropriato.) L'impostazione predefinita \u00e8 di non # abilitare l'homing sensorless. [tmc2660] \u00b6 Configurare un driver per motore passo-passo TMC2660 tramite bus SPI. Per utilizzare questa funzione, definire una sezione di configurazione con un prefisso tmc2660 seguito dal nome della sezione di configurazione dello stepper corrispondente (ad esempio, \"[tmc2660 stepper_x]\"). [tmc2660 stepper_x] cs_pin: # Il pin corrispondente al pin di selezione del chip TMC2660. Questo pin # verr\u00e0 impostato su basso all'inizio dei messaggi SPI e impostato su # alto al termine del trasferimento del messaggio. Questo parametro # deve essere fornito. #spi_speed: 4000000 # Frequenza bus SPI utilizzata per comunicare con il driver # passo-passo TMC2660. Il valore predefinito \u00e8 4000000. #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Vedere la sezione \"impostazioni comuni SPI\" per una descrizione # dei parametri di cui sopra. #interpolate: True # Se true, abilita l'interpolazione del passo (il driver eseguir\u00e0 un passo # interno a una velocit\u00e0 di 256 micropassi). Funziona solo se microsteps # \u00e8 impostato su 16. L'interpolazione introduce una piccola deviazione # posizionale sistemica - vedere TMC_Drivers.md per i dettagli. # L'impostazione predefinita \u00e8 Vero. run_current: # La quantit\u00e0 di corrente (in ampere RMS) utilizzata dal driver durante # il movimento passo-passo. Questo parametro deve essere fornito. #sense_resistor: # La resistenza (in ohm) del resistore di rilevamento del motore. # Questo parametro deve essere fornito. #idle_current_percent: 100 # La percentuale di run_current a cui il driver stepper sar\u00e0 ridotto allo # scadere del timeout di inattivit\u00e0 (\u00e8 necessario impostare il timeout # utilizzando una sezione di configurazione [idle_timeout]). La corrente # verr\u00e0 nuovamente aumentata una volta che lo stepper dovr\u00e0 muoversi # di nuovo. Assicurati di impostarlo su un valore sufficientemente alto in # modo che gli stepper non perdano la loro posizione. C'\u00e8 anche un piccolo # ritardo fino a quando la corrente non viene nuovamente aumentata, # quindi tienine conto quando comandi mosse veloci mentre lo stepper \u00e8 # al minimo. Il valore predefinito \u00e8 100 (nessuna riduzione). #driver_TBL: 2 #driver_RNDTF: 0 #driver_HDEC: 0 #driver_CHM: 0 #driver_HEND: 3 #driver_HSTRT: 3 #driver_TOFF: 4 #driver_SEIMIN: 0 #driver_SEDN: 0 #driver_SEMAX: 0 #driver_SEUP: 0 #driver_SEMIN: 0 #driver_SFILT: 0 #driver_SGT: 0 #driver_SLPH: 0 #driver_SLPL: 0 #driver_DISS2G: 0 #driver_TS2G: 3 # Imposta il parametro indicato durante la configurazione del chip TMC2660. # Questo pu\u00f2 essere utilizzato per impostare parametri del driver personalizzati. # Le impostazioni predefinite per ogni parametro sono accanto al nome del # parametro nell'elenco sopra. Vedere la scheda tecnica del TMC2660 su cosa # fa ogni parametro e quali sono le restrizioni sulle combinazioni di parametri. # Prestare particolare attenzione al registro CHOPCONF, dove l'impostazione # di CHM su zero o uno comporter\u00e0 modifiche al layout (il primo bit di HDEC) # viene interpretato come MSB di HSTRT in questo caso). [tmc5160] \u00b6 Configurare un driver per motore passo-passo TMC5160 tramite bus SPI. Per utilizzare questa funzione, definire una sezione di configurazione con un prefisso \"tmc5160\" seguito dal nome della sezione di configurazione dello stepper corrispondente (ad esempio, \"[tmc5160 stepper_x]\"). [tmc5160 stepper_x] cs_pin: # Il pin corrispondente al pin di selezione del chip TMC5160. Questo pin verr\u00e0 impostato su basso all'inizio dei messaggi SPI e portato su alto al termine del messaggio. Questo parametro deve essere fornito. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Vedere la sezione \"impostazioni SPI comuni\" per una # descrizione dei parametri di cui sopra. #chain_position: #chain_length: # Questi parametri configurano una daisy chain SPI. I due # parametri definiscono la posizione dello stepper nella catena # e la lunghezza totale della catena. La posizione 1 corrisponde # allo stepper che si collega al segnale MOSI. L'impostazione # predefinita \u00e8 di non utilizzare un collegamento a margherita SPI. #interpolate: True # Se true, abilita l'interpolazione del passo (il driver eseguir\u00e0 un # passo interno con 256 micropassi). # L'impostazione predefinita \u00e8 True. run_current: # La quantit\u00e0 di corrente (in ampere RMS) per configurare il driver # da utilizzare durante il movimento. # Questo parametro deve essere fornito. #hold_current: # La quantit\u00e0 di corrente (in ampere RMS) per configurare il driver # da utilizzare quando lo stepper non \u00e8 in movimento. L'impostazione # di hold_current non \u00e8 consigliata (consultare TMC_Drivers.md per i # dettagli). L'impostazione predefinita \u00e8 di non ridurre la corrente. #sense_resistor: 0.075 # La resistenza (in ohm) del resistore di rilevamento del motore. # Il valore predefinito \u00e8 0,075 ohm. #stealthchop_threshold: 0 # La velocit\u00e0 (in mm/s) su cui impostare la soglia \"stealthChop\". Se # impostata, la modalit\u00e0 \"stealthChop\" sar\u00e0 abilitata se la velocit\u00e0 del # motore passo-passo \u00e8 inferiore a questo valore. Il valore predefinito # \u00e8 0, che disabilita la modalit\u00e0 \"stealthChop\". #driver_IHOLDDELAY: 6 #driver_TPOWERDOWN: 10 #driver_TBL: 2 #driver_TOFF: 3 #driver_HEND: 2 #driver_HSTRT: 5 #driver_FD3: 0 #driver_TPFD: 4 #driver_CHM: 0 #driver_VHIGHFS: 0 #driver_VHIGHCHM: 0 #driver_DISS2G: 0 #driver_DISS2VS: 0 #driver_PWM_AUTOSCALE: True #driver_PWM_AUTOGRAD: True #driver_PWM_FREQ: 0 #driver_FREEWHEEL: 0 #driver_PWM_GRAD: 0 #driver_PWM_OFS: 30 #driver_PWM_REG: 4 #driver_PWM_LIM: 12 #driver_SGT: 0 #driver_SEMIN: 0 #driver_SEUP: 0 #driver_SEMAX: 0 #driver_SEDN: 0 #driver_SEIMIN: 0 #driver_SFILT: 0 # Impostare il registro dato durante la configurazione del chip # TMC5160. Pu\u00f2 essere utilizzato per impostare parametri motore # personalizzati. I valori predefiniti per ciascun parametro sono # accanto al nome del parametro nell'elenco precedente. #diag0_pin: #diag1_pin: # Il pin del microcontrollore collegato a una delle linee DIAG del chip # TMC5160. \u00c8 necessario specificare un solo pin diag. Il pin \u00e8 \"attivo # basso\" ed \u00e8 quindi normalmente preceduto da \"^!\". L'impostazione # di questo crea un pin virtuale \"tmc5160_stepper_x:virtual_endstop\" # che pu\u00f2 essere utilizzato come endstop_pin dello stepper. In questo # modo si abilita l'\"homing sensorless\". (Assicurarsi di impostare anche # driver_SGT su un valore di sensibilit\u00e0 appropriato.) L'impostazione # predefinita \u00e8 di non abilitare l'homing sensorless. Configurazione della corrente del motore passo-passo a run-time \u00b6 [ad5206] \u00b6 Digipot AD5206 configurati staticamente collegati tramite bus SPI (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"ad5206\"). [ad5206 my_digipot] enable_pin: # The pin corresponding to the AD5206 chip select line. This pin # will be set to low at the start of SPI messages and raised to high # after the message completes. This parameter must be provided. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # See the \"common SPI settings\" section for a description of the # above parameters. #channel_1: #channel_2: #channel_3: #channel_4: #channel_5: #channel_6: # The value to statically set the given AD5206 channel to. This is # typically set to a number between 0.0 and 1.0 with 1.0 being the # highest resistance and 0.0 being the lowest resistance. However, # the range may be changed with the 'scale' parameter (see below). # If a channel is not specified then it is left unconfigured. #scale: # This parameter can be used to alter how the 'channel_x' parameters # are interpreted. If provided, then the 'channel_x' parameters # should be between 0.0 and 'scale'. This may be useful when the # AD5206 is used to set stepper voltage references. The 'scale' can # be set to the equivalent stepper amperage if the AD5206 were at # its highest resistance, and then the 'channel_x' parameters can be # specified using the desired amperage value for the stepper. The # default is to not scale the 'channel_x' parameters. [mcp4451] \u00b6 Digipot MCP4451 configurato staticamente collegato tramite bus I2C (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"mcp4451\"). [mcp4451 my_digipot] i2c_address: # L'indirizzo i2c utilizzato dal chip sul bus i2c. Questo parametro deve # essere fornito. #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni I2C comuni\" per una descrizione # dei parametri di cui sopra. #wiper_0: #wiper_1: #wiper_2: #wiper_3: # Il valore su cui impostare staticamente il \"wiper\" MCP4451 # specificato. Questo \u00e8 in genere impostato su un numero compreso # tra 0,0 e 1,0 con 1,0 come resistenza pi\u00f9 alta e 0,0 come resistenza # pi\u00f9 bassa. Tuttavia, l'intervallo pu\u00f2 essere modificato con il parametro # 'scale' (vedi sotto). Se non viene specificato un wiper, non viene # configurato. #scale: # Questo parametro pu\u00f2 essere utilizzato per modificare il modo in # cui vengono interpretati i parametri 'wiper_x'. Se forniti, i parametri # 'wiper_x' dovrebbero essere compresi tra 0.0 e 'scale'. Questo pu\u00f2 # essere utile quando l'MCP4451 viene utilizzato per impostare i # riferimenti di tensione stepper. La \"scala\" pu\u00f2 essere impostata # sull'amperaggio stepper equivalente se l'MCP4451 fosse alla sua # massima resistenza, quindi i parametri \"wiper_x\" possono essere # specificati utilizzando il valore di amperaggio desiderato per lo # stepper. L'impostazione predefinita \u00e8 di non ridimensionare i # parametri 'wiper_x'. [mcp4728] \u00b6 Convertitore digitale-analogico MCP4728 in configurazione statica collegato tramite bus I2C (\u00e8 possibile definire un numero qualsiasi di sezioni con prefisso \"mcp4728\"). [mcp4728 my_dac] #i2c_address: 96 # L'indirizzo i2c utilizzato dal chip sul bus i2c. Il valore predefinito # \u00e8 96. #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni I2C comuni\" per una descrizione # dei parametri di cui sopra. #channel_a: #channel_b: #channel_c: #channel_d: # Il valore su cui impostare staticamente il canale MCP4728 # specificato. Questo \u00e8 in genere impostato su un numero compreso # tra 0,0 e 1,0 con 1,0 come tensione pi\u00f9 alta (2,048 V) e 0,0 come # tensione pi\u00f9 bassa. Tuttavia, l'intervallo pu\u00f2 essere modificato con # il parametro 'scale' (vedi sotto). Se un canale non \u00e8 specificato, # non viene configurato. #scale: # Questo parametro pu\u00f2 essere utilizzato per modificare il modo # in cui vengono interpretati i parametri 'channel_x'. Se forniti, i # parametri 'channel_x' dovrebbero essere compresi tra 0.0 e 'scale'. # Questo pu\u00f2 essere utile quando l'MCP4728 viene utilizzato per # impostare i riferimenti di tensione stepper. La \"scala\" pu\u00f2 essere # impostata sull'amperaggio stepper equivalente se l'MCP4728 # fosse alla sua tensione pi\u00f9 alta (2,048 V), e quindi i parametri # \"channel_x\" possono essere specificati utilizzando il valore di # amperaggio desiderato per lo stepper. L'impostazione # predefinita \u00e8 di non ridimensionare i parametri 'channel_x'. [mcp4018] \u00b6 Digipot MCP4018 configurato staticamente collegato tramite due pin gpio \"bit banging\" (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"mcp4018\"). [mcp4018 my_digipot] scl_pin: # Il pin \"clock\" SCL. Questo parametro deve essere fornito. sda_pin: # Il pin \"dati\" SDA. Questo parametro deve essere fornito. wiper: # Il valore su cui impostare staticamente il \"Wiper\" MCP4018 # specificato. Questo \u00e8 in genere impostato su un numero compreso # tra 0,0 e 1,0 con 1,0 come resistenza pi\u00f9 alta e 0,0 come resistenza # pi\u00f9 bassa. Tuttavia, l'intervallo pu\u00f2 essere modificato con il # parametro 'scale' (vedi sotto). Questo parametro deve essere fornito. #scale: # Questo parametro pu\u00f2 essere utilizzato per modificare il modo in # cui viene interpretato il parametro 'wiper'. Se fornito, il parametro # 'wiper' dovrebbe essere compreso tra 0.0 e 'scale'. Questo pu\u00f2 essere # utile quando l'MCP4018 viene utilizzato per impostare i riferimenti di # tensione stepper. La \"scala\" pu\u00f2 essere impostata sull'amperaggio # stepper equivalente se l'MCP4018 \u00e8 alla sua massima resistenza, # quindi \u00e8 possibile specificare il parametro \"wiper\" utilizzando il # valore di amperaggio desiderato per lo stepper. L'impostazione # predefinita \u00e8 di non ridimensionare il parametro 'wiper'. Supporto display \u00b6 [display] \u00b6 Supporto per un display collegato al microcontrollore. [display] lcd_type: # The type of LCD chip in use. This may be \"hd44780\", \"hd44780_spi\", # \"st7920\", \"emulated_st7920\", \"uc1701\", \"ssd1306\", or \"sh1106\". # See the display sections below for information on each type and # additional parameters they provide. This parameter must be # provided. #display_group: # The name of the display_data group to show on the display. This # controls the content of the screen (see the \"display_data\" section # for more information). The default is _default_20x4 for hd44780 # displays and _default_16x4 for other displays. #menu_timeout: # Timeout for menu. Being inactive this amount of seconds will # trigger menu exit or return to root menu when having autorun # enabled. The default is 0 seconds (disabled) #menu_root: # Name of the main menu section to show when clicking the encoder # on the home screen. The defaults is __main, and this shows the # the default menus as defined in klippy/extras/display/menu.cfg #menu_reverse_navigation: # When enabled it will reverse up and down directions for list # navigation. The default is False. This parameter is optional. #encoder_pins: # The pins connected to encoder. 2 pins must be provided when using # encoder. This parameter must be provided when using menu. #encoder_steps_per_detent: # How many steps the encoder emits per detent (\"click\"). If the # encoder takes two detents to move between entries or moves two # entries from one detent, try changing this. Allowed values are 2 # (half-stepping) or 4 (full-stepping). The default is 4. #click_pin: # The pin connected to 'enter' button or encoder 'click'. This # parameter must be provided when using menu. The presence of an # 'analog_range_click_pin' config parameter turns this parameter # from digital to analog. #back_pin: # The pin connected to 'back' button. This parameter is optional, # menu can be used without it. The presence of an # 'analog_range_back_pin' config parameter turns this parameter from # digital to analog. #up_pin: # The pin connected to 'up' button. This parameter must be provided # when using menu without encoder. The presence of an # 'analog_range_up_pin' config parameter turns this parameter from # digital to analog. #down_pin: # The pin connected to 'down' button. This parameter must be # provided when using menu without encoder. The presence of an # 'analog_range_down_pin' config parameter turns this parameter from # digital to analog. #kill_pin: # The pin connected to 'kill' button. This button will call # emergency stop. The presence of an 'analog_range_kill_pin' config # parameter turns this parameter from digital to analog. #analog_pullup_resistor: 4700 # The resistance (in ohms) of the pullup attached to the analog # button. The default is 4700 ohms. #analog_range_click_pin: # The resistance range for a 'enter' button. Range minimum and # maximum comma-separated values must be provided when using analog # button. #analog_range_back_pin: # The resistance range for a 'back' button. Range minimum and # maximum comma-separated values must be provided when using analog # button. #analog_range_up_pin: # The resistance range for a 'up' button. Range minimum and maximum # comma-separated values must be provided when using analog button. #analog_range_down_pin: # The resistance range for a 'down' button. Range minimum and # maximum comma-separated values must be provided when using analog # button. #analog_range_kill_pin: # The resistance range for a 'kill' button. Range minimum and # maximum comma-separated values must be provided when using analog # button. display hd44780 \u00b6 Informazioni sulla configurazione dei display hd44780 (utilizzati nei display di tipo \"RepRapDiscount 2004 Smart Controller\"). [display] lcd_type: hd44780 # Set to \"hd44780\" for hd44780 displays. rs_pin: e_pin: d4_pin: d5_pin: d6_pin: d7_pin: # The pins connected to an hd44780 type lcd. These parameters must # be provided. #hd44780_protocol_init: True # Perform 8-bit/4-bit protocol initialization on an hd44780 display. # This is necessary on real hd44780 devices. However, one may need # to disable this on some \"clone\" devices. The default is True. #line_length: # Set the number of characters per line for an hd44780 type lcd. # Possible values are 20 (default) and 16. The number of lines is # fixed to 4. ... display hd44780_spi \u00b6 Informazioni sulla configurazione di un display hd44780_spi - un display 20x04 controllato tramite uno \"shift register\" hardware (che viene utilizzato nelle stampanti basate su mightyboard). [display] lcd_type: hd44780_spi # Set to \"hd44780_spi\" for hd44780_spi displays. latch_pin: spi_software_sclk_pin: spi_software_mosi_pin: spi_software_miso_pin: # The pins connected to the shift register controlling the display. # The spi_software_miso_pin needs to be set to an unused pin of the # printer mainboard as the shift register does not have a MISO pin, # but the software spi implementation requires this pin to be # configured. #hd44780_protocol_init: True # Perform 8-bit/4-bit protocol initialization on an hd44780 display. # This is necessary on real hd44780 devices. However, one may need # to disable this on some \"clone\" devices. The default is True. #line_length: # Set the number of characters per line for an hd44780 type lcd. # Possible values are 20 (default) and 16. The number of lines is # fixed to 4. ... display st7920 \u00b6 Informazioni sulla configurazione dei display st7920 (utilizzati nei display di tipo \"RepRapDiscount 12864 Full Graphic Smart Controller\"). [display] lcd_type: st7920 # Set to \"st7920\" for st7920 displays. cs_pin: sclk_pin: sid_pin: # The pins connected to an st7920 type lcd. These parameters must be # provided. ... display emulazione emulated_st7920 \u00b6 Informazioni sulla configurazione di un display st7920 emulato, presenti in alcuni \"dispositivi touchscreen da 2,4 pollici\" e simili. [display] lcd_type: emulated_st7920 # Set to \"emulated_st7920\" for emulated_st7920 displays. en_pin: spi_software_sclk_pin: spi_software_mosi_pin: spi_software_miso_pin: # The pins connected to an emulated_st7920 type lcd. The en_pin # corresponds to the cs_pin of the st7920 type lcd, # spi_software_sclk_pin corresponds to sclk_pin and # spi_software_mosi_pin corresponds to sid_pin. The # spi_software_miso_pin needs to be set to an unused pin of the # printer mainboard as the st7920 as no MISO pin but the software # spi implementation requires this pin to be configured. ... display uc1701 \u00b6 Informazioni sulla configurazione dei display uc1701 (utilizzati nei display di tipo \"MKS Mini 12864\"). [display] lcd_type: uc1701 # Set to \"uc1701\" for uc1701 displays. cs_pin: a0_pin: # The pins connected to a uc1701 type lcd. These parameters must be # provided. #rst_pin: # The pin connected to the \"rst\" pin on the lcd. If it is not # specified then the hardware must have a pull-up on the # corresponding lcd line. #contrast: # The contrast to set. The value may range from 0 to 63 and the # default is 40. ... display ssd1306 e sh1106 \u00b6 Informazioni sulla configurazione dei display ssd1306 e sh1106. [display] lcd_type: # Set to either \"ssd1306\" or \"sh1106\" for the given display type. #i2c_mcu: #i2c_bus: #i2c_speed: # Optional parameters available for displays connected via an i2c # bus. See the \"common I2C settings\" section for a description of # the above parameters. #cs_pin: #dc_pin: #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # The pins connected to the lcd when in \"4-wire\" spi mode. See the # \"common SPI settings\" section for a description of the parameters # that start with \"spi_\". The default is to use i2c mode for the # display. #reset_pin: # A reset pin may be specified on the display. If it is not # specified then the hardware must have a pull-up on the # corresponding lcd line. #contrast: # The contrast to set. The value may range from 0 to 256 and the # default is 239. #vcomh: 0 # Set the Vcomh value on the display. This value is associated with # a \"smearing\" effect on some OLED displays. The value may range # from 0 to 63. Default is 0. #invert: False # TRUE inverts the pixels on certain OLED displays. The default is # False. #x_offset: 0 # Set the horizontal offset value on SH1106 displays. The default is # 0. ... [display_data] \u00b6 Supporto per la visualizzazione di dati personalizzati su uno schermo LCD. \u00c8 possibile creare un numero qualsiasi di gruppi di visualizzazione e un numero qualsiasi di elementi di dati in quei gruppi. Il display mostrer\u00e0 tutti gli elementi di dati per un determinato gruppo se l'opzione display_group nella sezione [display] \u00e8 impostata sul nome del gruppo specificato. Viene creato automaticamente un default set of display groups . \u00c8 possibile sostituire o estendere questi elementi display_data sovrascrivendo i valori predefiniti nel file di configurazione principale printer.cfg . [display_data my_group_name my_data_name] position: # Comma separated row and column of the display position that should # be used to display the information. This parameter must be # provided. text: # The text to show at the given position. This field is evaluated # using command templates (see docs/Command_Templates.md). This # parameter must be provided. [display_template] \u00b6 Visualizza il testo dei dati \"macro\" (\u00e8 possibile definire un numero qualsiasi di sezioni con un prefisso display_template). Per informazioni sul template, vedere il documento template di comandi . Questa funzione consente di ridurre le definizioni ripetitive nelle sezioni display_data. Si pu\u00f2 usare la funzione incorporata render() nelle sezioni display_data per valutare un template. Per esempio, se si dovesse definire [display_template my_template] allora si potrebbe usare { render('my_template') } in una sezione display_data. Questa funzione pu\u00f2 essere utilizzata anche per aggiornamenti LED continui utilizzando il comando SET_LED_TEMPLATE . [display_template my_template_name] #param_<name>: # One may specify any number of options with a \"param_\" prefix. The # given name will be assigned the given value (parsed as a Python # literal) and will be available during macro expansion. If the # parameter is passed in the call to render() then that value will # be used during macro expansion. For example, a config with # \"param_speed = 75\" might have a caller with # \"render('my_template_name', param_speed=80)\". Parameter names may # not use upper case characters. text: # The text to return when the this template is rendered. This field # is evaluated using command templates (see # docs/Command_Templates.md). This parameter must be provided. [display_glyph] \u00b6 Visualizza un glifo personalizzato sui display che lo supportano. Al nome dato verranno assegnati i dati di visualizzazione dati che possono quindi essere referenziati nei modelli di visualizzazione con il loro nome circondato da due simboli \"tilde\" per esempio ~my_display_glyph~ Vedere sample-glyphs.cfg per alcuni esempi. [display_glyph my_display_glyph] #data: # The display data, stored as 16 lines consisting of 16 bits (1 per # pixel) where '.' is a blank pixel and '*' is an on pixel (e.g., # \"****************\" to display a solid horizontal line). # Alternatively, one can use '0' for a blank pixel and '1' for an on # pixel. Put each display line into a separate config line. The # glyph must consist of exactly 16 lines with 16 bits each. This # parameter is optional. #hd44780_data: # Glyph to use on 20x4 hd44780 displays. The glyph must consist of # exactly 8 lines with 5 bits each. This parameter is optional. #hd44780_slot: # The hd44780 hardware index (0..7) to store the glyph at. If # multiple distinct images use the same slot then make sure to only # use one of those images in any given screen. This parameter is # required if hd44780_data is specified. [display my_extra_display] \u00b6 Se in printer.cfg \u00e8 stata definita una sezione primaria [display] come mostrato sopra, \u00e8 possibile definire pi\u00f9 display ausiliari. Si noti che i display ausiliari attualmente non supportano la funzionalit\u00e0 del menu, quindi non supportano le opzioni del \"menu\" o la configurazione dei pulsanti. [display my_extra_display] # Vedere la sezione \"display\" per i parametri disponibili. [menu] \u00b6 Menu display lcd personalizzabili. Viene creato automaticamente un default set of menus . \u00c8 possibile sostituire o estendere il menu sovrascrivendo le impostazioni predefinite nel file di configurazione principale printer.cfg . Consulta il command template document per informazioni sugli attributi di menu disponibili durante il rendering del modello. # Common parameters available for all menu config sections. #[menu __some_list __some_name] #type: disabled # Permanently disabled menu element, only required attribute is 'type'. # Allows you to easily disable/hide existing menu items. #[menu some_name] #type: # One of command, input, list, text: # command - basic menu element with various script triggers # input - same like 'command' but has value changing capabilities. # Press will start/stop edit mode. # list - it allows for menu items to be grouped together in a # scrollable list. Add to the list by creating menu # configurations using \"some_list\" as a prefix - for # example: [menu some_list some_item_in_the_list] # vsdlist - same as 'list' but will append files from virtual sdcard # (will be removed in the future) #name: # Name of menu item - evaluated as a template. #enable: # Template that evaluates to True or False. #index: # Position where an item needs to be inserted in list. By default # the item is added at the end. #[menu some_list] #type: list #name: #enable: # See above for a description of these parameters. #[menu some_list some_command] #type: command #name: #enable: # See above for a description of these parameters. #gcode: # Script to run on button click or long click. Evaluated as a # template. #[menu some_list some_input] #type: input #name: #enable: # See above for a description of these parameters. #input: # Initial value to use when editing - evaluated as a template. # Result must be float. #input_min: # Minimum value of range - evaluated as a template. Default -99999. #input_max: # Maximum value of range - evaluated as a template. Default 99999. #input_step: # Editing step - Must be a positive integer or float value. It has # internal fast rate step. When \"(input_max - input_min) / # input_step > 100\" then fast rate step is 10 * input_step else fast # rate step is same input_step. #realtime: # This attribute accepts static boolean value. When enabled then # gcode script is run after each value change. The default is False. #gcode: # Script to run on button click, long click or value change. # Evaluated as a template. The button click will trigger the edit # mode start or end. Sensori di filamento \u00b6 [filament_switch_sensor] \u00b6 Sensore del filamento a interruttore. Supporto per l'inserimento del filamento e il rilevamento dell'esaurimento tramite un sensore interruttore, come un interruttore di fine corsa. Per ulteriori informazioni, vedere command reference . [filament_switch_sensor my_sensor] #pause_on_runout: True # Se impostato su True, verr\u00e0 eseguita una PAUSA immediatamente # dopo il rilevamento di un'eccentricit\u00e0. Si noti che se pause_on_runout # \u00e8 False e runout_gcode viene omesso, il rilevamento dell'eccentricit\u00e0 # \u00e8 disabilitato. L'impostazione predefinita \u00e8 Vero. #runout_gcode: # Un elenco di comandi G-Code da eseguire dopo il rilevamento di # un'esaurimento del filamento. Vedi docs/Command_Templates.md # per il formato G-Code. Se pause_on_runout \u00e8 impostato su True, # questo codice G verr\u00e0 eseguito al termine della PAUSA. # L'impostazione predefinita \u00e8 di non eseguire alcun comando G-Code. #insert_gcode: # Un elenco di comandi G-Code da eseguire dopo il rilevamento # dell'inserimento di filamento. Vedi docs/Command_Templates.md # per il formato G-Code. L'impostazione predefinita non prevede # l'esecuzione di alcun comando G-Code, che disabilita il rilevamento # dell'inserimento. #event_delay: 3.0 # Il tempo minimo in secondi per ritardare tra gli eventi. Gli eventi # attivati durante questo periodo di tempo verranno ignorati # silenziosamente. L'impostazione predefinita \u00e8 3 secondi. #pause_delay: 0.5 # Il tempo di ritardo, in secondi, tra l'invio del comando pause e # l'esecuzione di runout_gcode. Potrebbe essere utile aumentare # questo ritardo se OctoPrint mostra uno strano comportamento # di pausa. Il valore predefinito \u00e8 0,5 secondi. #switch_pin: # Il pin su cui \u00e8 collegato l'interruttore. # Questo parametro deve essere fornito. [filament_motion_sensor] \u00b6 Sensore di movimento del filamento. Supporto per l'inserimento del filamento e il rilevamento dell'esaurimento mediante un codificatore che commuta il pin di uscita durante il movimento del filamento attraverso il sensore. Per ulteriori informazioni, vedere command reference . [filament_motion_sensor my_sensor] detection_length: 7.0 # La lunghezza minima di filamento tirato attraverso il sensore # per attivare un cambio di stato su switch_pin # Il default \u00e8 7 mm. extruder: # Nome della sezione extruder section con cui questo sensore \u00e8 associato. # Questo parametro deve essere fornito. switch_pin: #pause_on_runout: #runout_gcode: #insert_gcode: #event_delay: #pause_delay: # Vedere la sezione \"filament_switch_sensor\" per la descrizione dei # parametri riportati sopra. [tsl1401cl_filament_width_sensor] \u00b6 Sensore di larghezza del filamento basato su TSLl401CL. Consulta la guida per ulteriori informazioni. sl1401cl_filament_width_sensor] #pin: #diametro nominale del filamento predefinito: 1,75 (mm) # Differenza massima consentita del diametro del filamento in mm. #max_difference: 0.2 # La distanza dal sensore alla camera di fusione in mm. #measurement_delay: 100 [hall_filament_width_sensor] \u00b6 Sensore di larghezza del filamento ad effetto Hall (vedere Sensore di larghezza del filamento Hall ). [hall_filament_width_sensor] adc1: adc2: # Pin di ingresso analogico collegati al sensore. # Questi parametri devono essere forniti. #cal_dia1: 1.50 #cal_dia2: 2.00 # I valori di calibrazione (in mm) per i sensori. Il valore predefinito # \u00e8 1.50 per cal_dia1 e 2.00 per cal_dia2. #raw_dia1: 9500 #raw_dia2: 10500 # I valori di calibrazione grezzi per i sensori. Il valore predefinito \u00e8 # 9500 per raw_dia1 e 10500 per raw_dia2. #default_nominal_filament_diameter: 1.75 # Il diametro nominale del filamento. # Questo parametro deve essere fornito. #max_difference: 0.200 # Differenza massima consentita del diametro del filamento in # millimetri (mm). Se la differenza tra il diametro nominale del # filamento e l'uscita del sensore \u00e8 maggiore di +- max_difference, # il moltiplicatore di estrusione viene riportato a %100. # Il valore predefinito \u00e8 0,200. #measurement_delay: 70 # La distanza dal sensore alla camera di fusione/hot-end in # millimetri (mm). Il filamento tra il sensore e l'hot-end verr\u00e0 # trattato come default_nominal_filament_diameter. Il modulo # host funziona con la logica FIFO. Mantiene ogni valore e posizione # del sensore in un array e li riporta nella posizione corretta. # Questo parametro deve essere fornito. #enable: False # Sensore abilitato o disabilitato dopo l'accensione. L'impostazione predefinita \u00e8 disabilitare. #measurement_interval: 10 # La distanza approssimativa (in mm) tra le letture del sensore. # Il valore predefinito \u00e8 10 mm. #logging: False # Il log esterno al terminale e klipper.log pu\u00f2 essere # attivato|off tramite comando. #min_diameter: 1.0 # Diametro minimo per trigger filament_switch_sensor virtuale. #use_current_dia_while_delay: False # Utilizzare il diametro attuale invece del diametro nominale # mentre il ritardo di misurazione non \u00e8 trascorso. #pause_on_runout: #runout_gcode: #insert_gcode: #event_delay: #pause_delay: # Vedere la sezione \"filament_switch_sensor\" per una # descrizione dei parametri di cui sopra. Supporto hardware per specifica scheda \u00b6 [sx1509] \u00b6 Configurare un'espansione SX1509 da I2C a GPIO. A causa del ritardo dovuto alla comunicazione I2C, NON utilizzare i pin SX1509 come abilitazione stepper, pin step o dir o qualsiasi altro pin che richieda un bit banging veloce. Sono utilizzati al meglio come uscite digitali statiche o controllate da gcode o pin hardware-pwm per es. fan. Si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"sx1509\". Ogni espansione fornisce un set di 16 pin (da sx1509_my_sx1509:PIN_0 a sx1509_my_sx1509:PIN_15) che possono essere utilizzati nella configurazione della stampante. Per un esempio, vedere il file generic-duet2-duex.cfg . [sx1509 my_sx1509] i2c_address: # Indirizzo I2C utilizzato da questa espansione. A seconda dei # ponticelli hardware \u00e8 uno dei seguenti indirizzi: 62 63 112 113. # Questo parametro deve essere fornito. #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni comuni I2C\" per una # escrizione dei parametri di cui sopra. #i2c_bus: # Se l'implementazione I2C del tuo microcontrollore supporta # pi\u00f9 bus I2C, puoi specificare qui il nome del bus. L'impostazione # predefinita prevede l'utilizzo del bus i2c del microcontrollore # predefinito. [samd_sercom] \u00b6 Configurazione SAMD SERCOM per specificare quali pin utilizzare su un determinato SERCOM. Si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"samd_sercom\". Ogni SERCOM deve essere configurato prima di utilizzarlo come periferica SPI o I2C. Posiziona questa sezione di configurazione sopra qualsiasi altra sezione che fa uso di bus SPI o I2C. [samd_sercom my_sercom] sercom: # Il nome del bus Sercom da configurare nel microcontrollore. I nomi # disponibili sono \"sercom0\", \"sercom1\", ecc. # Questo parametro deve essere fornito. tx_pin: # Pin MOSI per la comunicazione SPI o pin SDA (dati) per la # comunicazione I2C. Il pin deve avere una configurazione pinmux # valida per la specifica periferica SERCOM. # Questo parametro deve essere fornito. #rx_pin: # Pin MISO per la comunicazione SPI. Questo pin non viene utilizzato # per la comunicazione I2C (I2C utilizza tx_pin sia per l'invio che per la # ricezione). Il pin deve avere una configurazione pinmux valida per la # specifica periferica SERCOM. Questo parametro \u00e8 facoltativo. clk_pin: # Pin CLK per la comunicazione SPI o pin SCL (clock) per la # comunicazione I2C. Il pin deve avere una configurazione pinmux # valida per la specifica periferica SERCOM. Questo parametro deve # essere fornito. [adc_scaled] \u00b6 Scaling analogico di Duet2 Maestro tramite letture vref e vssa. La definizione di una sezione adc_scaled abilita pin adc virtuali (come \"my_name:PB0\") che vengono regolati automaticamente dai pin di monitoraggio vref e vssa della scheda. Assicurati di definire questa sezione di configurazione sopra qualsiasi sezione di configurazione che utilizza uno di questi pin virtuali. Per un esempio, vedere il file generic-duet2-maestro.cfg . [adc_scaled my_name] vref_pin: # The ADC pin to use for VREF monitoring. This parameter must be # provided. vssa_pin: # The ADC pin to use for VSSA monitoring. This parameter must be # provided. #smooth_time: 2.0 # A time value (in seconds) over which the vref and vssa # measurements will be smoothed to reduce the impact of measurement # noise. The default is 2 seconds. [replicape] \u00b6 Supporto per Replicape: vedere la guida beaglebone e il file generic-replicape.cfg per un esempio. # La sezione di configurazione \"replicape\" aggiunge i pin di abilitazione # dello stepper virtuale \"replicape: stepper_x_enable\" (per stepper X, Y, Z, # E e H) e i pin di uscita PWM \"replicape: power_x\" (per hotbed, e, h, fan0, # fan1 , fan2 e fan3) che possono quindi essere utilizzati altrove nel file # di configurazione. [replicape] revision: # La revisione dell'hardware di replicape. Attualmente \u00e8 supportata solo # la revisione \"B3\". Questo parametro deve essere fornito. #enable_pin: !gpio0_20 # Il pin di abilitazione globale dei replicape. L'impostazione predefinita # \u00e8 !gpio0_20 (aka P9_41). host_mcu: # Il nome della sezione mcu config che comunica con l'istanza mcu # \"linux process\" di Klipper. Questo parametro deve essere fornito. #standstill_power_down: False # Questo parametro controlla la linea CFG6_ENN su tutti i motori # passo-passo. True imposta le righe di abilitazione su \"open\". # L'impostazione predefinita \u00e8 Falso. #stepper_x_microstep_mode: #stepper_y_microstep_mode: #stepper_z_microstep_mode: #stepper_e_microstep_mode: #stepper_h_microstep_mode: # Questo parametro controlla i pin CFG1 e CFG2 del driver del motore # passo-passo specificato. Le opzioni disponibili sono: disabilita, 1, 2, # spread2, 4, 16, spread4, spread16, stealth4 e stealth16. L'impostazione # predefinita \u00e8 disabilitata. #stepper_x_current: #stepper_y_current: #stepper_z_current: #stepper_e_current: #stepper_h_current: # La corrente massima configurata (in Amp) del driver del motore # passo-passo. Questo parametro deve essere fornito se lo stepper non # \u00e8 in modalit\u00e0 disabilitazione. #stepper_x_chopper_off_time_high: #stepper_y_chopper_off_time_high: #stepper_z_chopper_off_time_high: #stepper_e_chopper_off_time_high: #stepper_h_chopper_off_time_high: # Questo parametro controlla il pin CFG0 del driver del motore # passo-passo (True imposta CFG0 alto, False lo imposta basso). # L'impostazione predefinita \u00e8 False. #stepper_x_chopper_hysteresis_high: #stepper_y_chopper_hysteresis_high: #stepper_z_chopper_hysteresis_high: #stepper_e_chopper_hysteresis_high: #stepper_h_chopper_hysteresis_high: # Questo parametro controlla il pin CFG4 del driver del motore # passo-passo (True imposta CFG4 alto, False lo imposta basso). # L'impostazione predefinita \u00e8 False. #stepper_x_chopper_blank_time_high: #stepper_y_chopper_blank_time_high: #stepper_z_chopper_blank_time_high: #stepper_e_chopper_blank_time_high: #stepper_h_chopper_blank_time_high: # Questo parametro controlla il pin CFG5 del driver del motore # passo-passo (True imposta CFG5 alto, False lo imposta basso). # L'impostazione predefinita \u00e8 True. Altri moduli personalizzati \u00b6 [palette2] \u00b6 Supporto multimateriale Palette 2: fornisce un'integrazione pi\u00f9 stretta supportando i dispositivi Palette 2 in modalit\u00e0 connessa. Questo modulo richiede anche [virtual_sdcard] e [pause_resume] per la piena funzionalit\u00e0. Se si utilizza questo modulo, non utilizzare il plug-in Palette 2 per Octoprint poich\u00e9 entreranno in conflitto e 1 non si inizializzer\u00e0 correttamente, probabilmente interrompendo la stampa. Se utilizzi Octoprint e esegui lo streaming di gcode sulla porta seriale invece di stampare da virtual_sd, rimuovere M1 e M0 da Pausa dei comandi in Impostazioni > Connessione seriale > Firmware e protocollo eviter\u00e0 la necessit\u00e0 per avviare la stampa sulla tavolozza 2 e riattivare la pausa in Octoprint per avviare la stampa. [palette2] serial: # La porta seriale per la connessione alla Palette 2. #baud: 115200 # La velocit\u00e0 da utilizzare. Il valore predefinito \u00e8 115200. #feedrate_splice: 0.8 # L'avanzamento da utilizzare durante la giunzione # il valore predefinito \u00e8 0.8 #feedrate_normal: 1.0 # L'avanzamento da utilizzare dopo la giunzione # il valore predefinito \u00e8 1.0 #auto_load_speed: 2 # Avanzamento di estrusione durante il caricamento automatico # il valore predefinito \u00e8 2 (mm/s) #auto_cancel_variation: 0.1 # Annullamento automatico della stampa quando la variazione # del ping \u00e8 superiore a questa soglia [angle] \u00b6 Supporto per sensore magnetico Hall per la lettura delle misurazioni dell'angolo del motore passo-passo utilizzando i chip SPI a1333, as5047d o tle5012b. Le misurazioni sono disponibili tramite Server API e strumento di analisi del movimento . Vedere il Riferimento G-Code per i comandi disponibili. [angle my_angle_sensor] sensor_type: # The type of the magnetic hall sensor chip. Available choices are # \"a1333\", \"as5047d\", and \"tle5012b\". This parameter must be # specified. #sample_period: 0.000400 # The query period (in seconds) to use during measurements. The # default is 0.000400 (which is 2500 samples per second). #stepper: # The name of the stepper that the angle sensor is attached to (eg, # \"stepper_x\"). Setting this value enables an angle calibration # tool. To use this feature, the Python \"numpy\" package must be # installed. The default is to not enable angle calibration for the # angle sensor. cs_pin: # The SPI enable pin for the sensor. This parameter must be provided. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # See the \"common SPI settings\" section for a description of the # above parameters. Parametri bus comuni \u00b6 Impostazioni SPI comuni \u00b6 I seguenti parametri sono generalmente disponibili per i dispositivi che utilizzano un bus SPI. #spi_speed: # La velocit\u00e0 SPI (in Hz) da utilizzare durante la comunicazione con il # dispositivo. L'impostazione predefinita dipende dal tipo di dispositivo. #spi_bus: # Se il microcontrollore supporta pi\u00f9 bus SPI, \u00e8 possibile specificare # qui il nome del bus del microcontrollore. L'impostazione predefinita # dipende dal tipo di microcontrollore. #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Specificare i parametri di cui sopra per utilizzare \"SPI basato su # software\". Questa modalit\u00e0 non richiede il supporto hardware del # microcontrollore (in genere \u00e8 possibile utilizzare qualsiasi pin generico). # L'impostazione predefinita \u00e8 di non utilizzare \"spi software\". Impostazioni I2C comuni \u00b6 I seguenti parametri sono generalmente disponibili per i dispositivi che utilizzano un bus I2C. Si noti che l'attuale supporto del microcontrollore di Klipper per i2c generalmente non tollera il rumore di linea. Errori imprevisti sui cavi i2c possono causare la generazione di un errore di runtime da parte di Klipper. Il supporto di Klipper per il ripristino degli errori varia a seconda del tipo di microcontrollore. In genere si consiglia di utilizzare solo dispositivi i2c che si trovano sulla stessa scheda a circuito stampato del microcontrollore. La maggior parte delle implementazioni del microcontrollore Klipper supporta solo un i2c_speed di 100000. Il microcontrollore \"linux\" Klipper supporta una velocit\u00e0 400000, ma deve essere impostato nel sistema operativo e il parametro i2c_speed viene altrimenti ignorato. Il microcontrollore Klipper \"rp2040\" supporta una velocit\u00e0 di 400000 tramite il parametro i2c_speed . Tutti gli altri microcontrollori Klipper utilizzano una frequenza di 100000 e ignorano il parametro i2c_speed . #i2c_address: # L'indirizzo i2c del dispositivo. Questo deve essere specificato # come numero decimale (non in esadecimale). L'impostazione # predefinita dipende dal tipo di dispositivo. #i2c_mcu: # Il nome del microcontrollore a cui \u00e8 collegato il chip. # L'impostazione predefinita \u00e8 \"mcu\". #i2c_bus: # Se il microcontrollore supporta pi\u00f9 bus I2C, \u00e8 possibile # specificare qui il nome del bus del microcontrollore. # L'impostazione predefinita dipende dal tipo di microcontrollore. #i2c_speed: # La velocit\u00e0 I2C (in Hz) da utilizzare durante la comunicazione # con il dispositivo. L'implementazione di Klipper sulla maggior # parte dei microcontrollori \u00e8 codificata a 100000 e la modifica # di questo valore non ha alcun effetto. # Il valore predefinito \u00e8 100000.","title":"Riferimenti configurazione"},{"location":"Config_Reference.html#riferimenti-configurazione","text":"Questo documento \u00e8 un riferimento per le opzioni disponibili nel file di configurazione di Klipper. Le descrizioni in questo documento sono formattate in modo che sia possibile tagliarle e incollarle in un file di configurazione della stampante. Consulta il documento di installazione per informazioni sulla configurazione di Klipper e sulla scelta di un file di configurazione iniziale.","title":"Riferimenti configurazione"},{"location":"Config_Reference.html#configurazione-del-microcontrollore","text":"","title":"Configurazione del microcontrollore"},{"location":"Config_Reference.html#formato-dei-nomi-dei-pin-del-microcontrollore","text":"Molte opzioni di configurazione richiedono il nome di un pin del microcontrollore. Klipper usa i nomi hardware per questi pin, ad esempio \"PA4\". I nomi dei pin possono essere preceduti da ! per indicare che deve essere utilizzata una polarit\u00e0 inversa (ad esempio, trigger su basso anzich\u00e9 alto). I pin di input possono essere preceduti da ^ per indicare che un resistore di pull-up hardware deve essere abilitato per il pin. Se il microcontrollore supporta resistori pull-down, un pin di ingresso pu\u00f2 in alternativa essere preceduto da ~ . Nota, alcune sezioni di configurazione potrebbero \"creare\" pin aggiuntivi. Quando ci\u00f2 si verifica, la sezione di configurazione che definisce i pin deve essere elencata nel file di configurazione prima di qualsiasi sezione che utilizza tali pin.","title":"Formato dei nomi dei pin del microcontrollore"},{"location":"Config_Reference.html#mcu","text":"Configurazione del microcontrollore primario. [mcu] serial: # La porta seriale per la connessione all'MCU. In caso di dubbi (o se # cambia) vedere \"Dov'\u00e8 la mia porta seriale?\" sezione delle FAQ. # Questo parametro deve essere fornito quando si utilizza una # porta seriale. #baud: 250000 # La velocit\u00e0 di trasmissione da utilizzare. Il valore predefinito \u00e8 250000. #canbus_uuid: # Se si utilizza un dispositivo collegato a un bus CAN, questo imposta # l'identificatore univoco del chip a cui connettersi. Questo valore deve # essere fornito quando si utilizza il bus CAN per la comunicazione. #canbus_interface: # Se si utilizza un dispositivo collegato a un bus CAN, viene impostata # l'interfaccia di rete CAN da utilizzare. L'impostazione predefinita \u00e8 'can0'. #restart_method: # Questo controlla il meccanismo che l'host utilizzer\u00e0 per reimpostare # il microcontrollore. Le scelte sono \"arduino\", \"cheetah\", \"rpi_usb\" e # \"command\". Il metodo 'arduino' (attiva/disattiva DTR) \u00e8 comune su # schede Arduino e cloni. Il metodo 'cheetah' \u00e8 un metodo speciale # necessario per alcune schede Fysetc Cheetah. Il metodo \"rpi_usb\" # \u00e8 utile sulle schede Raspberry Pi con microcontrollori alimentati # tramite USB: disabilita brevemente l'alimentazione a tutte le porte # USB per eseguire un ripristino del microcontrollore. Il metodo # \"comando\" prevede l'invio di un comando Klipper al microcontrollore # in modo che possa reimpostarsi. L'impostazione predefinita \u00e8 # 'arduino' se il microcontrollore comunica su una porta seriale, # altrimenti 'comando'.","title":"[mcu]"},{"location":"Config_Reference.html#mcu-my_extra_mcu","text":"Microcontrollori aggiuntivi (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"mcu\"). Microcontrollori aggiuntivi introducono pin aggiuntivi che possono essere configurati come riscaldatori, stepper, ventole, ecc. Ad esempio, se viene introdotta una sezione \"[mcu extra_mcu]\", i pin come \"extra_mcu:ar9\" possono quindi essere utilizzati altrove nella configurazione (dove \"ar9\" \u00e8 un nome pin hardware o un nome alias sul dato mcu). [mcu my_extra_mcu] # Vedere la sezione \"mcu\" per i parametri di configurazione.","title":"[mcu my_extra_mcu]"},{"location":"Config_Reference.html#impostazioni-cinematiche-comuni","text":"","title":"Impostazioni cinematiche comuni"},{"location":"Config_Reference.html#printer","text":"La sezione printer controlla le impostazioni di alto livello della stampante. [printer] kinematics: # Il tipo di stampante in uso. Questa opzione pu\u00f2 essere una delle # seguenti: cartesian, corexy, corexz, hybrid_corexy, hybrid_corexz, # rotary_delta, delta, deltesian, polar, winch o nessuno. # Questo parametro deve essere specificato. max_velocity: # Velocit\u00e0 massima (in mm/s) della testa di stampa (relativa alla stampa). # Questo parametro deve essere specificato. max_accel: # Accelerazione massima (in mm/s^2) della testina (relativa alla stampa). # Questo parametro deve essere specificato. #max_accel_to_decel: # Una pseudo accelerazione (in mm/s^2) che controlla la velocit\u00e0 con cui # la testa di stampa pu\u00f2 passare dall'accelerazione alla decelerazione. Viene # utilizzato per ridurre la velocit\u00e0 massima di brevi movimenti a zig-zag # (e quindi ridurre le vibrazioni della stampante dovute a questi movimenti). # Il valore predefinito \u00e8 met\u00e0 di max_accel. #square_corner_velocity: 5.0 # La velocit\u00e0 massima (in mm/s) alla quale la testa di stampa pu\u00f2 viaggiare # su un angolo di 90 gradi. Un valore diverso da zero pu\u00f2 ridurre le variazioni # delle portate dell'estrusore consentendo variazioni istantanee della velocit\u00e0 # della testa utensile durante le curve. Questo valore configura l'algoritmo # interno di cornering della velocit\u00e0 centripeta; gli angoli con angoli maggiori # di 90 gradi avranno una velocit\u00e0 in curva maggiore mentre gli angoli con # angoli inferiori a 90 gradi avranno una velocit\u00e0 in curva inferiore. Se questo # \u00e8 impostato su zero, la testa utensile decelerer\u00e0 fino a zero ad ogni angolo. # Il valore predefinito \u00e8 5 mm/s.","title":"[printer]"},{"location":"Config_Reference.html#stepper","text":"Definizioni di motori passo-passo. Diversi tipi di stampante (come specificato dall'opzione \"cinematica\" nella sezione di configurazione [stampante]) richiedono nomi diversi per lo stepper (ad esempio, stepper_x vs stepper_a ). Di seguito sono riportate le definizioni comuni di stepper. Vedere il documento distanza di rotazione per informazioni sul calcolo del parametro rotation_distance . Consultare il documento Multi-MCU homing per informazioni sull'homing utilizzando pi\u00f9 microcontrollori. [stepper_x] step_pin: # Pin GPIO Step (attivato in alto) . Questo parametro deve essere fornito. dir_pin: # Pin GPIO di direzione (alto indica una direzione positiva). # Questo parametro deve essere fornito. enable_pin: # Pin GPIO di abilitazione (l'impostazione predefinita \u00e8 abilita alto; usa ! # per indicare abilita basso). Se questo parametro non viene fornito, il # driver del motore passo-passo deve essere sempre abilitato. rotation_distance: # Distanza (in mm) che l'asse percorre con una rotazione completa del # motore passo-passo (o viene specificata la marcia finale del rapporto di # trasmissione). Questo parametro deve essere fornito. microsteps: # Il numero di micropassi utilizzati dal driver del motore passo-passo. # Questo parametro deve essere fornito. #full_steps_per_rotation: 200 # Il numero di passi completi per una rotazione del motore passo-passo. # Impostarlo su 200 per un motore passo-passo da 1.8 gradi o su 400 per # un motore da 0.9 gradi. Il valore predefinito \u00e8 200. #gear_ratio: # Il rapporto di trasmissione se il motore passo-passo \u00e8 collegato all'asse # tramite un riduttore. Ad esempio, si pu\u00f2 specificare \"5:1\" se \u00e8 in uso un # riduttore 5 a 1. Se l'asse ha pi\u00f9 riduttori, \u00e8 possibile specificare un elenco # di rapporti di trasmissione separati da virgole (ad esempio, \"57:11, 2:1\"). # Se viene specificato gear_ratio, rotation_distance specifica la distanza # percorsa dall'asse per una rotazione completa dell'ingranaggio finale. # L'impostazione predefinita \u00e8 di non utilizzare un rapporto di trasmissione. #step_pulse_duration: # Il tempo minimo tra il fronte del segnale dell'impulso del passo e il # successivo fronte del segnale \"non passo\". Viene utilizzato anche per # impostare il tempo minimo tra un impulso di passo e un segnale di cambio # di direzione. L'impostazione predefinita \u00e8 0.000000100 (100ns) per gli # stepper TMC configurati in modalit\u00e0 UART o SPI e l'impostazione # predefinita \u00e8 0.000002 (che \u00e8 2us) per tutti gli altri stepper. endstop_pin: # Pin di rilevamento interruttore di fine corsa. Se questo pin di fine corsa # si trova su un mcu diverso dal motore passo-passo, abilita il # \"homing multi-mcu\". Questo parametro deve essere fornito per gli # stepper X, Y e Z su stampanti in stile cartesiano. #position_min: 0 # Distanza minima valida (in mm) alla quale l'utente pu\u00f2 comandare # il movimento dello stepper. Il valore predefinito \u00e8 0 mm. position_endstop: # Posizione del finecorsa (in mm). Questo parametro deve essere fornito # per gli stepper X, Y e Z su stampanti in stile cartesiano. position_max: # Distanza massima valida (in mm) alla quale l'utente pu\u00f2 comandare lo # spostamento dello stepper. Questo parametro deve essere fornito per # gli stepper X, Y e Z su stampanti in stile cartesiano. #homing_speed: 5.0 # Velocit\u00e0 massima (in mm/s) dello stepper durante l'homing. # Il valore predefinito \u00e8 5 mm/s. #homing_retract_dist: 5.0 # Distanza dall'arretramento (in mm) prima della corsa di riferimento # una seconda volta durante la corsa di riferimento. Impostalo a zero per # disabilitare la seconda casa. Il valore predefinito \u00e8 5 mm. #homing_retract_speed: # Velocit\u00e0 da utilizzare nella corsa di ritorno dopo l'homing nel caso in # cui questa dovesse essere diversa dalla velocit\u00e0 di homing, che \u00e8 # l'impostazione predefinita per questo parametro #second_homing_speed: # Velocit\u00e0 (in mm/s) dello stepper durante l'esecuzione del secondo # homing. L'impostazione predefinita \u00e8 homing_speed/2. #homing_positive_dir: # Se true, l'homing far\u00e0 muovere lo stepper in una direzione positiva # (allontanandosi da zero); se falso, home verso zero. \u00c8 meglio utilizzare # l'impostazione predefinita piuttosto che specificare questo parametro. # Il valore predefinito \u00e8 true se position_endstop \u00e8 vicino a position_max # false se vicino a position_min.","title":"[stepper]"},{"location":"Config_Reference.html#cinematica-cartesiana","text":"Vedere example-cartesian.cfg per un file di configurazione della cinematica cartesiana di esempio. Qui sono descritti solo i parametri specifici delle stampanti cartesiane - vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: cartesian max_z_velocity: # Imposta la velocit\u00e0 massima (in mm/s) di movimento lungo # l'asse z. Questa impostazione pu\u00f2 essere utilizzata per limitare # la velocit\u00e0 massima del motore passo-passo z. L'impostazione # predefinita \u00e8 utilizzare max_velocity per max_z_velocity. max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento # lungo l'asse z. Limita l'accelerazione del motore passo-passo z. # L'impostazione predefinita \u00e8 utilizzare max_accel per max_z_accel. # La sezione stepper_x viene utilizzata per descrivere lo stepper # che controlla l'asse X in un robot cartesiano. [stepper_x] # La sezione stepper_y viene utilizzata per descrivere lo stepper # che controlla l'asse Y in un robot cartesiano. [stepper_y] # La sezione stepper_z viene utilizzata per descrivere lo stepper # che controlla l'asse Z in un robot cartesiano. [stepper_z]","title":"Cinematica cartesiana"},{"location":"Config_Reference.html#cinematica-delta-lineare","text":"Vedere example-delta.cfg per un file di configurazione della cinematica delta lineare di esempio. Consultare la guida alla calibrazione delta per informazioni sulla calibrazione. Qui vengono descritti solo i parametri specifici per le stampanti delta lineari - vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: delta max_z_velocity: # Per le stampanti delta questo limita la velocit\u00e0 massima (in mm/s) dei # movimenti con movimento dell'asse z. Questa impostazione pu\u00f2 essere # utilizzata per ridurre la velocit\u00e0 massima dei movimenti su/gi\u00f9 (che # richiedono una velocit\u00e0 di incremento maggiore rispetto ad altri # movimenti su una stampante delta). L'impostazione predefinita \u00e8 # utilizzare max_velocity per max_z_velocity. #max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento lungo # l'asse z. L'impostazione pu\u00f2 essere utile se la stampante pu\u00f2 # raggiungere un'accelerazione maggiore sui movimenti XY rispetto ai # movimenti Z (ad esempio, quando si utilizza l'input shaper). # L'impostazione predefinita \u00e8 utilizzare max_accel per max_z_accel. #minimum_z_position: 0 # La posizione Z minima in cui l'utente pu\u00f2 comandare alla testa di # spostarsi. Il valore predefinito \u00e8 0. delta_radius: # Raggio (in mm) del cerchio orizzontale formato dalle tre torri ad # asse lineare. Questo parametro pu\u00f2 anche essere calcolato come: # delta_radius = smooth_rod_offset - effector_offset - carriage_offset # Questo parametro deve essere fornito. #print_radius: # Il raggio (in mm) delle coordinate XY della testa di stampa valide. # \u00c8 possibile utilizzare questa impostazione per personalizzare il # controllo dell'intervallo dei movimenti della testa. Se qui # viene specificato un valore elevato, potrebbe essere possibile # comandare la collisione della testa di stampa con una torre. # L'impostazione predefinita \u00e8 usare delta_radius per print_radius # (che normalmente impedirebbe una collisione con torri). # La sezione stepper_a descrive lo stepper che controlla la torre # anteriore sinistra (a 210 gradi). Questa sezione controlla anche i # parametri di homing (velocit\u00e0 di homing, homing retract_dist) # per tutte le torri. [stepper_a] position_endstop: # Distanza (in mm) tra l'ugello e il piatto quando l'ugello si trova al # centro dell'area di costruzione e si attiva il finecorsa. Questo # parametro deve essere fornito per stepper_a; per stepper_b e # stepper_c questo parametro \u00e8 predefinito sul valore specificato # per stepper_a. arm_length: # Lunghezza (in mm) dell'asta diagonale che collega questa torre # alla testa di stampa. Questo parametro deve essere fornito per # stepper_a; per stepper_b e stepper_c questo parametro \u00e8 predefinito sul valore specificato per stepper_a. #angle: # Questa opzione specifica l'angolo (in gradi) a cui si trova la torre. # Il valore predefinito \u00e8 210 per stepper_a, 330 per stepper_b e 90 # per stepper_c. # La sezione stepper_b descrive lo stepper che controlla la torre # anteriore destra (a 330 gradi). [stepper_b] # La sezione stepper_c descrive lo stepper che controlla la torre # posteriore (a 90 gradi). [stepper_c] # La sezione delta_calibrate abilita un comando G-code esteso # DELTA_CALIBRATE in grado di calibrare le posizioni e gli angoli # dei finecorsa della torre. [delta_calibrate] radius: # Raggio (in mm) dell'area che pu\u00f2 essere sondata. Questo \u00e8 # il raggio delle coordinate dell'ugello da sondare; se si utilizza # una sonda automatica con un offset XY, scegliere un raggio # sufficientemente piccolo in modo che la sonda si adatti sempre # al piatto. Questo parametro deve essere fornito. #speed: 50 # La velocit\u00e0 (in mm/s) degli spostamenti senza probing durante # la calibrazione. Il valore predefinito \u00e8 50. #horizontal_move_z: 5 # L'altezza (in mm) a cui la testa deve essere comandata di # spostarsi appena prima di avviare un'operazione di sonda. # L'impostazione predefinita \u00e8 5.","title":"Cinematica Delta lineare"},{"location":"Config_Reference.html#cinematica-deltesiana","text":"Vedere example-deltesian.cfg per un esempio di file di configurazione della cinematica deltesiana. Qui sono descritti solo i parametri specifici per le stampanti deltesiane - vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: deltesian max_z_velocity: # Per le stampanti deltesiane, ci\u00f2 limita la velocit\u00e0 massima (in mm/s) # dei movimenti con movimento dell'asse z. Questa impostazione pu\u00f2 # essere utilizzata per ridurre la velocit\u00e0 massima dei movimenti su/gi\u00f9 # (che richiedono una velocit\u00e0 di incremento maggiore rispetto ad altri # movimenti su una stampante deltesiana). L'impostazione predefinita # \u00e8 utilizzare max_velocity per max_z_velocity. #max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento lungo # l'asse z. L'impostazione pu\u00f2 essere utile se la stampante pu\u00f2 raggiungere # un'accelerazione maggiore sui movimenti XY rispetto ai movimenti Z # (ad esempio, quando si utilizza l'input shaper). L'impostazione # predefinita \u00e8 utilizzare max_accel per max_z_accel. #minimum_z_position: 0 # La posizione Z minima in cui l'utente pu\u00f2 comandare alla testa di # spostarsi. Il valore predefinito \u00e8 0. #min_angle: 5 # Questo rappresenta l'angolo minimo (in gradi) rispetto all'orizzontale # che le braccia deltesiane possono raggiungere. Questo parametro ha lo # scopo di impedire che i bracci diventino completamente orizzontali, il # che rischierebbe l'inversione accidentale dell'asse XZ. # L'impostazione predefinita \u00e8 5. #print_width: # La distanza (in mm) delle coordinate X della testa utensile valide. # \u00c8 possibile utilizzare questa impostazione per personalizzare il # controllo dell'intervallo dei movimenti della testa utensile. Se # qui viene specificato un valore elevato, potrebbe essere possibile # comandare la collisione della testa utensile con una torre. Questa # impostazione di solito corrisponde alla larghezza del piatto (in mm). #slow_ratio: 3 # Il rapporto utilizzato per limitare la velocit\u00e0 e l'accelerazione sui # movimenti vicini agli estremi dell'asse X. Se la distanza verticale # divisa per la distanza orizzontale supera il valore di slow_ratio, la # velocit\u00e0 e l'accelerazione sono limitate alla met\u00e0 dei loro valori # nominali. Se la distanza verticale divisa per la distanza orizzontale # supera il doppio del valore di slow_ratio, la velocit\u00e0 e l'accelerazione # sono limitate a un quarto dei loro valori nominali. # Il valore predefinito \u00e8 3. # la sezione stepper_left \u00e8 usata per descrivere lo stepper che controlla # la torre di sinistra. Questa sezione controlla anche i parametri di # homing (velocit\u00e0 di homing, homing retract_dist) per tutte le torri. [stepper_left] position_endstop: # Distanza (in mm) tra l'ugello e il piatto quando l'ugello si trova al # centro dell'area di costruzione e vengono attivati i finecorsa. Questo # parametro deve essere fornito per stepper_left; per stepper_right # questo parametro \u00e8 predefinito sul valore specificato per stepper_left. arm_length: # Lunghezza (in mm) dell'asta diagonale che collega il carrello torre # alla testina di stampa. Questo parametro deve essere fornito per # stepper_left; per stepper_right, questo parametro per impostazione # predefinita \u00e8 il valore specificato per stepper_left. arm_x_length: # Distanza orizzontale tra la testina di stampa e la torre quando le # stampanti \u00e8 in homing. Questo parametro deve essere fornito # per stepper_left; per stepper_right, questo parametro per impostazione # predefinita \u00e8 il valore specificato per stepper_left. # La sezione stepper_right \u00e8 usata per descrivere lo stepper che # controlla la torre destra. [stepper_right] # La sezione stepper_y viene utilizzata per descrivere lo stepper che # controlla l'asse Y in un robot deltesiano. [stepper_y]","title":"Cinematica Deltesiana"},{"location":"Config_Reference.html#cinematica-corexy","text":"Vedere example-corexy.cfg per un file cinematico corexy (e h-bot) di esempio. Qui sono descritti solo i parametri specifici per le stampanti corexy - vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: corexy max_z_velocity: # Imposta la velocit\u00e0 massima (in mm/s) di movimento lungo l'asse z. # Questa impostazione pu\u00f2 essere utilizzata per limitare la velocit\u00e0 # massima del motore passo-passo z. L'impostazione predefinita \u00e8 # utilizzare max_velocity per max_z_velocity. max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento # lungo l'asse z. Limita l'accelerazione del motore passo-passo z. # L'impostazione predefinita \u00e8 utilizzare max_accel per max_z_accel. # La sezione stepper_x viene utilizzata per descrivere l'asse X e lo # stepper che controlla il movimento X+Y. [stepper_x] # La sezione stepper_y viene utilizzata per descrivere l'asse Y e lo # stepper che controlla il movimento X+Y. [stepper_y] # La sezione stepper_z viene utilizzata per descrivere l'asse Z [stepper_z]","title":"Cinematica CoreXY"},{"location":"Config_Reference.html#cinematica-corexz","text":"Vedere example-corexz.cfg per un file di configurazione della cinematica corexz di esempio. Qui sono descritti solo i parametri specifici per le stampanti corexz - vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: corexz max_z_velocity: # Imposta la velocit\u00e0 massima (in mm/s) di movimento lungo l'asse z. # L'impostazione predefinita \u00e8 utilizzare max_velocity per # max_z_velocity. max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento lungo # l'asse z. L'impostazione predefinita \u00e8 utilizzare max_accel per # max_z_accel. # La sezione stepper_x viene utilizzata per descrivere l'asse X e lo # stepper che controlla il movimento X+Z. [stepper_x] # La sezione stepper_y viene utilizzata per descrivere l'asse Y [stepper_y] # La sezione stepper_z viene utilizzata per descrivere l'asse Z e lo # stepper che controlla il movimento X+Z. [stepper_z]","title":"Cinematica CoreXZ"},{"location":"Config_Reference.html#cinematica-hybrid-corexy","text":"Vedere example-hybrid-corexy.cfg per un file di configurazione della cinematica corexy ibrida di esempio. Questa cinematica \u00e8 anche nota come cinematica Markforged. Qui vengono descritti solo i parametri specifici delle stampanti corexy ibride, vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: hybrid_corexy max_z_velocity: # Imposta la velocit\u00e0 massima (in mm/s) di movimento lungo # l'asse z. L'impostazione predefinita \u00e8 utilizzare max_velocity # per max_z_velocity. max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento # lungo l'asse z. L'impostazione predefinita \u00e8 utilizzare max_accel # per max_z_accel. # La sezione stepper_x viene utilizzata per descrivere l'asse X e lo # stepper che controlla il movimento X-Y. [stepper_x] # La sezione stepper_y viene utilizzata per descrivere lo stepper # che controlla l'asse Y. [stepper_y] # La sezione stepper_z viene utilizzata per descrivere lo stepper # che controlla l'asse Z. [stepper_z]","title":"Cinematica Hybrid-CoreXY"},{"location":"Config_Reference.html#cinematica-hybrid-corexz","text":"Vedere example-hybrid-corexz.cfg per un file di configurazione della cinematica corexz ibrido di esempio. Questa cinematica \u00e8 anche nota come cinematica Markforged. Qui vengono descritti solo i parametri specifici delle stampanti corexy ibride, vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: hybrid_corexz max_z_velocity: # Questo imposta la velocit\u00e0 massima (in mm/s) di movimento lungo # l'asse z. L'impostazione predefinita \u00e8 utilizzare max_velocity per # max_z_velocity. max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento lungo # l'asse z. L'impostazione predefinita \u00e8 utilizzare max_accel per # max_z_accel. # La sezione stepper_x viene utilizzata per descrivere l'asse X e lo # stepper che controlla il movimento X-Z. [stepper_x] # La sezione stepper_y viene utilizzata per descrivere lo stepper che # controlla l'asse Y. [stepper_y] # La sezione stepper_z viene utilizzata per descrivere lo stepper che # controlla l'asse Z. [stepper_z]","title":"Cinematica Hybrid-CoreXZ"},{"location":"Config_Reference.html#cinematica-polare","text":"Vedere example-polar.cfg per un file di configurazione della cinematica polare di esempio. Qui sono descritti solo i parametri specifici per le stampanti polari - vedere impostazioni cinematiche comuni per i parametri disponibili. LA CINEMATICA POLARE \u00c8 UN LAVORO IN CORSO. \u00c8 noto che i movimenti intorno alla posizione 0, 0 non funzionano correttamente. [printer] kinematics: polar max_z_velocity: # Imposta la velocit\u00e0 massima (in mm/s) di movimento lungo l'asse z. # Questa impostazione pu\u00f2 essere utilizzata per limitare la velocit\u00e0 # massima del motore passo-passo z. L'impostazione predefinita \u00e8 # utilizzare max_velocity per max_z_velocity. max_z_accel: # Questo imposta l'accelerazione massima (in mm/s^2) del # movimento lungo l'asse z. Limita l'accelerazione del motore # passo-passo z. L'impostazione predefinita \u00e8 utilizzare max_accel # per max_z_accel. # La sezione stepper_bed viene utilizzata per descrivere lo stepper # che controlla il piatto [stepper_bed] gear_ratio: # \u00c8 necessario specificare un gear_ratio e rotation_distance # potrebbe non essere specificato. Ad esempio, se il piatto ha una # ruota a 80 denti azionata da uno stepper con una ruota a 16 # denti, si dovrebbe specificare un rapporto di trasmissione di \"80:16\". # Questo parametro deve essere fornito. # La sezione stepper_arm \u00e8 usata per descrivere lo stepper che # controlla il carrello sul braccio. [stepper_arm] # La sezione stepper_z viene utilizzata per descrivere lo stepper che # controlla l'asse Z. [stepper_z]","title":"Cinematica polare"},{"location":"Config_Reference.html#rotary-delta-kinematics","text":"See example-rotary-delta.cfg for an example rotary delta kinematics config file. Qui vengono descritti solo i parametri specifici delle stampanti delta rotative - vedere impostazioni cinematiche comuni per i parametri disponibili. ROTARY DELTA KINEMATICS ARE A WORK IN PROGRESS. Homing moves may timeout and some boundary checks are not implemented. [printer] kinematics: rotary_delta max_z_velocity: # For delta printers this limits the maximum velocity (in mm/s) of # moves with z axis movement. This setting can be used to reduce the # maximum speed of up/down moves (which require a higher step rate # than other moves on a delta printer). The default is to use # max_velocity for max_z_velocity. #minimum_z_position: 0 # The minimum Z position that the user may command the head to move # to. The default is 0. shoulder_radius: # Radius (in mm) of the horizontal circle formed by the three # shoulder joints, minus the radius of the circle formed by the # effector joints. This parameter may also be calculated as: # shoulder_radius = (delta_f - delta_e) / sqrt(12) # This parameter must be provided. shoulder_height: # Distance (in mm) of the shoulder joints from the bed, minus the # effector toolhead height. This parameter must be provided. # The stepper_a section describes the stepper controlling the rear # right arm (at 30 degrees). This section also controls the homing # parameters (homing_speed, homing_retract_dist) for all arms. [stepper_a] gear_ratio: # A gear_ratio must be specified and rotation_distance may not be # specified. For example, if the arm has an 80 toothed pulley driven # by a pulley with 16 teeth, which is in turn connected to a 60 # toothed pulley driven by a stepper with a 16 toothed pulley, then # one would specify a gear ratio of \"80:16, 60:16\". This parameter # must be provided. position_endstop: # Distance (in mm) between the nozzle and the bed when the nozzle is # in the center of the build area and the endstop triggers. This # parameter must be provided for stepper_a; for stepper_b and # stepper_c this parameter defaults to the value specified for # stepper_a. upper_arm_length: # Length (in mm) of the arm connecting the \"shoulder joint\" to the # \"elbow joint\". This parameter must be provided for stepper_a; for # stepper_b and stepper_c this parameter defaults to the value # specified for stepper_a. lower_arm_length: # Length (in mm) of the arm connecting the \"elbow joint\" to the # \"effector joint\". This parameter must be provided for stepper_a; # for stepper_b and stepper_c this parameter defaults to the value # specified for stepper_a. #angle: # This option specifies the angle (in degrees) that the arm is at. # The default is 30 for stepper_a, 150 for stepper_b, and 270 for # stepper_c. # The stepper_b section describes the stepper controlling the rear # left arm (at 150 degrees). [stepper_b] # The stepper_c section describes the stepper controlling the front # arm (at 270 degrees). [stepper_c] # The delta_calibrate section enables a DELTA_CALIBRATE extended # g-code command that can calibrate the shoulder endstop positions. [delta_calibrate] radius: # Radius (in mm) of the area that may be probed. This is the radius # of nozzle coordinates to be probed; if using an automatic probe # with an XY offset then choose a radius small enough so that the # probe always fits over the bed. This parameter must be provided. #speed: 50 # The speed (in mm/s) of non-probing moves during the calibration. # The default is 50. #horizontal_move_z: 5 # The height (in mm) that the head should be commanded to move to # just prior to starting a probe operation. The default is 5.","title":"Rotary delta Kinematics"},{"location":"Config_Reference.html#cable-winch-kinematics","text":"See the example-winch.cfg for an example cable winch kinematics config file. Qui sono descritti solo i parametri specifici per le stampanti cavo verricello - vedere impostazioni comuni cinematiche per i parametri disponibili. CABLE WINCH SUPPORT IS EXPERIMENTAL. Homing is not implemented on cable winch kinematics. In order to home the printer, manually send movement commands until the toolhead is at 0, 0, 0 and then issue a G28 command. [printer] kinematics: winch # The stepper_a section describes the stepper connected to the first # cable winch. A minimum of 3 and a maximum of 26 cable winches may be # defined (stepper_a to stepper_z) though it is common to define 4. [stepper_a] rotation_distance: # The rotation_distance is the nominal distance (in mm) the toolhead # moves towards the cable winch for each full rotation of the # stepper motor. This parameter must be provided. anchor_x: anchor_y: anchor_z: # The X, Y, and Z position of the cable winch in cartesian space. # These parameters must be provided.","title":"Cable winch Kinematics"},{"location":"Config_Reference.html#nessuna-cinematica","text":"\u00c8 possibile definire una cinematica speciale \"none\" per disabilitare il supporto cinematico in Klipper. Questo pu\u00f2 essere utile per controllare dispositivi che non sono le tipiche stampanti 3D o per scopi di debug. [printer] kinematics: none max_velocity: 1 max_accel: 1 # \u00c8 necessario definire i parametri max_velocity e max_accel. I valori # non vengono utilizzati per la cinematica \"none\".","title":"Nessuna cinematica"},{"location":"Config_Reference.html#supporto-per-estrusore-e-piatto-riscaldato-comuni","text":"","title":"Supporto per estrusore e piatto riscaldato comuni"},{"location":"Config_Reference.html#extruder","text":"La sezione dell'estrusore viene utilizzata per descrivere i parametri del riscaldatore per l'hotend dell'ugello insieme allo stepper che controlla l'estrusore. Per ulteriori informazioni, vedere riferimento comando . Consultare la Guida all'avanzamento della pressione per informazioni sulla regolazione dell'anticipo della pressione. [extruder] step_pin: dir_pin: enable_pin: microsteps: rotation_distance: #full_steps_per_rotation: #gear_ratio: # Vedere la sezione \"stepper\" per una descrizione di quanto sopra # Se nessuno dei parametri precedenti \u00e8 specificato, nessuno stepper # sar\u00e0 associato all'hotend dell'ugello (sebbene un comando # SYNC_EXTRUDER_MOTION possa associarne uno in fase di esecuzione). nozzle_diameter: # Diametro dell'orifizio dell'ugello (in mm). Questo parametro deve essere fornito. filament_diameter:: # Il diametro nominale del filamento grezzo (in mm) quando # entra nell'estrusore. Questo parametro deve essere fornito. #max_extrude_cross_section: # Area massima (in mm^2) di una sezione trasversale dell'estrusione # (ad es. larghezza dell'estrusione moltiplicata per l'altezza dello strato). # Questa impostazione previene quantit\u00e0 eccessive di estrusione # durante spostamenti XY relativamente piccoli. # Se un movimento richiede una velocit\u00e0 di estrusione che supererebbe questo valore # causer\u00e0 la restituzione di un errore. L'impostazione predefinita # \u00e8: 4.0 * diametro_ugello^2 instantaneous_corner_velocity: 1.000 # La variazione di velocit\u00e0 istantanea massima (in mm/s) del # estrusore durante il collegamento di due movimenti. Il valore predefinito \u00e8 1 mm/s. #max_extrude_only_distance: 50.0 # Lunghezza massima (in mm di filamento grezzo) che pu\u00f2 avere un movimento # di retrazione o di sola estrusione. Se uno spostamento di retrazione # o di sola estrusione richiede una distanza maggiore di questo valore, # verr\u00e0 restituito un errore. Il valore predefinito \u00e8 50 mm. #max_extrude_only_velocity: #max_extrude_only_accel: # Velocit\u00e0 massima (in mm/s) e accelerazione (in mm/s^2) del # motore estrusore per retrazioni e movimenti di sola estrusione. # Queste impostazioni non hanno alcun impatto sui normali movimenti di stampa. # Se non specificati, vengono calcolati per corrispondere al limite che avrebbe # un movimento di stampa XY con una sezione trasversale di 4,0*diametro_ugello^2. #pressure_advance: 0.0 # La quantit\u00e0 di filamento grezzo da spingere nell'estrusore durante # accelerazione dell'estrusore. Una uguale quantit\u00e0 di filamento viene # retratta durante la decelerazione. Si misura in millimetri per # millimetro/secondo. Il valore predefinito \u00e8 0, che disabilita l'avanzamento della pressione. #pressure_advance_smooth_time: 0,040 # Un intervallo di tempo (in secondi) da utilizzare per calcolare la velocit\u00e0 media # dell'estrusore per l'avanzamento della pressione. Un valore maggiore si traduce # in movimenti pi\u00f9 fluidi dell'estrusore. Questo parametro non pu\u00f2 superare i 200 ms. # Questa impostazione si applica solo se pressure_advance \u00e8 diverso da zero. # Il valore predefinito \u00e8 0,040 (40 millisecondi). # # Le restanti variabili descrivono il riscaldatore dell'estrusore. heater_pin: # Pin di uscita PWM che controlla il riscaldatore. Questo parametro deve essere fornito. #max_power: 1.0 # La potenza massima (espressa come un valore compreso tra 0,0 e 1,0) a cui # pu\u00f2 essere impostato il riscaldatore_pin. Il valore 1.0 consente di impostare il pin # completamente abilitato per periodi prolungati, mentre un valore di 0,5 # consentirebbe di abilitare il pin per non pi\u00f9 della met\u00e0 del tempo. Questo # l'impostazione pu\u00f2 essere utilizzata per limitare la potenza totale # (per periodi prolungati) al riscaldatore. L'impostazione predefinita \u00e8 1.0. sensor_type: # Tipo di sensore - i termistori comuni sono \"EPCOS 100K B57560G104F\", # \"ATC Semitec 104GT-2\", \"ATC Semitec 104NT-4-R025H42G\", \"Generico # 3950\",\"Honeywell 100K 135-104LAG-J01\", \"NTC 100K MGB18-104F39050L32\", # \"SliceEngineering 450\" e \"TDK NTCG104LH104JT1\". Vedere la sezione # \"Sensori di temperatura\" per altri sensori. Questo parametro deve essere fornito. sensor_pin: # Pin di ingresso analogico collegato al sensore. Questo parametro deve essere fornito. #pullup_resistor: 4700 # La resistenza (in ohm) del pullup collegato al termistore. Questo parametro # \u00e8 valido solo quando il sensore \u00e8 un termistore. Il valore predefinito \u00e8 4700 ohm. #smooth_time: 1.0 # Un valore di tempo (in secondi) durante il quale le misurazioni della # temperatura verranno uniformate per ridurre l'impatto del rumore # di misurazione. Il valore predefinito \u00e8 1 secondo. control: # Algoritmo di controllo (pid o filigrana). Questo parametro deve # essere fornito. pid_Kp: pid_Ki: pid_Kd: # Il proporzionale (pid_Kp), l'integrale (pid_Ki) e la derivata # (pid_Kd) impostazioni per il sistema di controllo del feedback PID. Klipper # valuta le impostazioni PID con la seguente formula generale: # riscaldatore_pwm = (Kp*errore + Ki*integrale(errore) - Kd*derivato(errore)) / 255 # Dove \"errore\" \u00e8 \"temperatura_richiesta - temperatura_misurata\" # e \"heater_pwm\" \u00e8 la velocit\u00e0 di riscaldamento richiesta con 0,0 completamente # off e 1.0 completamente on. Prendi in considerazione l'utilizzo di PID_CALIBRATE # comando per ottenere questi parametri. pid_Kp, pid_Ki e pid_Kd # i parametri devono essere forniti per i riscaldatori PID. #delta_max: 2.0 # Sui riscaldatori controllati questo \u00e8 il numero di gradi in # Celsius al di sopra della temperatura target prima di disattivare il riscaldatore # cos\u00ec come il numero di gradi sotto il target prima # riattivare il riscaldatore. L'impostazione predefinita \u00e8 2 gradi Celsius. #pwm_cycle_time: 0,100 # Tempo in secondi per ogni ciclo PWM software del riscaldatore. # non \u00e8 consigliabile impostarlo a meno che non ci sia necessario come # requisito accendere il riscaldatore pi\u00f9 velocemente di 10 volte al secondo. # Il valore predefinito \u00e8 0,100 secondi. #min_extrude_temp: 170 # La temperatura minima (in gradi Celsius) alla quale possono essere # impartiti comandi all'estrusore. L'impostazione predefinita \u00e8 170 gradi Celsius. min_temp: max_temp: # L'intervallo massimo di temperature valide (in gradi Celsius) in cui # il riscaldatore deve rimanere all'interno. Questo controlla una funzione di sicurezza # implementata nel codice del microcontrollore , la temperatura # non cadr\u00e0 mai al di fuori di questo intervallo, altrimenti il microcontrollore # entrer\u00e0 in uno stato di arresto. Questo controllo pu\u00f2 aiutare a rilevarne alcuni # guasti hardware del riscaldatore e del sensore. Imposta questo intervallo solo in modo ampio # abbastanza in modo che temperature ragionevoli non si traducano in un errore. # Questi parametri devono essere forniti.","title":"[extruder]"},{"location":"Config_Reference.html#heater_bed","text":"La sezione heater_bed descrive un piatto riscaldato. Utilizza le stesse impostazioni del riscaldatore descritte nella sezione \"extruder\". [heater_bed] heater_pin: sensor_type: sensor_pin: control: min_temp: max_temp: # Vedere la sezione \"extruder\" per una descrizione dei parametri sopra.","title":"[heater_bed]"},{"location":"Config_Reference.html#supporto-livellamento-del-piatto","text":"","title":"Supporto livellamento del piatto"},{"location":"Config_Reference.html#bed_mesh","text":"Mesh Bed Leveling. Si pu\u00f2 definire una sezione di configurazione bed_mesh per abilitare trasformazioni di spostamento che sfalsano l'asse z in base a una mesh generata da punti sondati. Quando si utilizza una sonda per la posizione di riferimento sull'asse z, si consiglia di definire una sezione safe_z_home in printer.cfg per la posizione di riferimento verso il centro dell'area di stampa. Per ulteriori informazioni, vedere la bed mesh guide e riferimento del comando . Esempi visivi: rectangular bed, probe_count = 3, 3: x---x---x (max_point) | x---x---x | (min_point) x---x---x round bed, round_probe_count = 5, bed_radius = r: x (0, r) end / x---x---x \\ (-r, 0) x---x---x---x---x (r, 0) \\ x---x---x / x (0, -r) start [bed_mesh] #speed: 50 # The speed (in mm/s) of non-probing moves during the calibration. # The default is 50. #horizontal_move_z: 5 # The height (in mm) that the head should be commanded to move to # just prior to starting a probe operation. The default is 5. #mesh_radius: # Defines the radius of the mesh to probe for round beds. Note that # the radius is relative to the coordinate specified by the # mesh_origin option. This parameter must be provided for round beds # and omitted for rectangular beds. #mesh_origin: # Defines the center X, Y coordinate of the mesh for round beds. This # coordinate is relative to the probe's location. It may be useful # to adjust the mesh_origin in an effort to maximize the size of the # mesh radius. Default is 0, 0. This parameter must be omitted for # rectangular beds. #mesh_min: # Defines the minimum X, Y coordinate of the mesh for rectangular # beds. This coordinate is relative to the probe's location. This # will be the first point probed, nearest to the origin. This # parameter must be provided for rectangular beds. #mesh_max: # Defines the maximum X, Y coordinate of the mesh for rectangular # beds. Adheres to the same principle as mesh_min, however this will # be the furthest point probed from the bed's origin. This parameter # must be provided for rectangular beds. #probe_count: 3, 3 # For rectangular beds, this is a comma separate pair of integer # values X, Y defining the number of points to probe along each # axis. A single value is also valid, in which case that value will # be applied to both axes. Default is 3, 3. #round_probe_count: 5 # For round beds, this integer value defines the maximum number of # points to probe along each axis. This value must be an odd number. # Default is 5. #fade_start: 1.0 # The gcode z position in which to start phasing out z-adjustment # when fade is enabled. Default is 1.0. #fade_end: 0.0 # The gcode z position in which phasing out completes. When set to a # value below fade_start, fade is disabled. It should be noted that # fade may add unwanted scaling along the z-axis of a print. If a # user wishes to enable fade, a value of 10.0 is recommended. # Default is 0.0, which disables fade. #fade_target: # The z position in which fade should converge. When this value is # set to a non-zero value it must be within the range of z-values in # the mesh. Users that wish to converge to the z homing position # should set this to 0. Default is the average z value of the mesh. #split_delta_z: .025 # The amount of Z difference (in mm) along a move that will trigger # a split. Default is .025. #move_check_distance: 5.0 # The distance (in mm) along a move to check for split_delta_z. # This is also the minimum length that a move can be split. Default # is 5.0. #mesh_pps: 2, 2 # A comma separated pair of integers X, Y defining the number of # points per segment to interpolate in the mesh along each axis. A # \"segment\" can be defined as the space between each probed point. # The user may enter a single value which will be applied to both # axes. Default is 2, 2. #algorithm: lagrange # The interpolation algorithm to use. May be either \"lagrange\" or # \"bicubic\". This option will not affect 3x3 grids, which are forced # to use lagrange sampling. Default is lagrange. #bicubic_tension: .2 # When using the bicubic algorithm the tension parameter above may # be applied to change the amount of slope interpolated. Larger # numbers will increase the amount of slope, which results in more # curvature in the mesh. Default is .2. #relative_reference_index: # A point index in the mesh to reference all z values to. Enabling # this parameter produces a mesh relative to the probed z position # at the provided index. #faulty_region_1_min: #faulty_region_1_max: # Optional points that define a faulty region. See docs/Bed_Mesh.md # for details on faulty regions. Up to 99 faulty regions may be added. # By default no faulty regions are set.","title":"[bed_mesh]"},{"location":"Config_Reference.html#bed_tilt","text":"Compensazione dell'inclinazione del piatto. Si pu\u00f2 definire una sezione di configurazione bed_tilt per abilitare le trasformazioni di movimento che tengono conto di un piatto inclinato. Nota che bed_mesh e bed_tilt sono incompatibili; entrambi non possono essere definiti. Per ulteriori informazioni, vedere riferimento comando . [bed_tilt] #x_adjust: 0 # The amount to add to each move's Z height for each mm on the X # axis. The default is 0. #y_adjust: 0 # The amount to add to each move's Z height for each mm on the Y # axis. The default is 0. #z_adjust: 0 # The amount to add to the Z height when the nozzle is nominally at # 0, 0. The default is 0. # The remaining parameters control a BED_TILT_CALIBRATE extended # g-code command that may be used to calibrate appropriate x and y # adjustment parameters. #points: # A list of X, Y coordinates (one per line; subsequent lines # indented) that should be probed during a BED_TILT_CALIBRATE # command. Specify coordinates of the nozzle and be sure the probe # is above the bed at the given nozzle coordinates. The default is # to not enable the command. #speed: 50 # The speed (in mm/s) of non-probing moves during the calibration. # The default is 50. #horizontal_move_z: 5 # The height (in mm) that the head should be commanded to move to # just prior to starting a probe operation. The default is 5.","title":"[bed_tilt]"},{"location":"Config_Reference.html#bed_screws","text":"Strumento per aiutare a regolare le viti di livellamento del letto. Si pu\u00f2 definire una sezione di configurazione [bed_screws] per abilitare un comando g-code BED_SCREWS_ADJUST. Per ulteriori informazioni, vedere la guida al livellamento e il riferimento al comando . [bed_screws] #screw1: # The X, Y coordinate of the first bed leveling screw. This is a # position to command the nozzle to that is directly above the bed # screw (or as close as possible while still being above the bed). # This parameter must be provided. #screw1_name: # An arbitrary name for the given screw. This name is displayed when # the helper script runs. The default is to use a name based upon # the screw XY location. #screw1_fine_adjust: # An X, Y coordinate to command the nozzle to so that one can fine # tune the bed leveling screw. The default is to not perform fine # adjustments on the bed screw. #screw2: #screw2_name: #screw2_fine_adjust: #... # Additional bed leveling screws. At least three screws must be # defined. #horizontal_move_z: 5 # The height (in mm) that the head should be commanded to move to # when moving from one screw location to the next. The default is 5. #probe_height: 0 # The height of the probe (in mm) after adjusting for the thermal # expansion of bed and nozzle. The default is zero. #speed: 50 # The speed (in mm/s) of non-probing moves during the calibration. # The default is 50. #probe_speed: 5 # The speed (in mm/s) when moving from a horizontal_move_z position # to a probe_height position. The default is 5.","title":"[bed_screws]"},{"location":"Config_Reference.html#screws_tilt_adjust","text":"Strumento per aiutare a regolare l'inclinazione delle viti del piatto utilizzando la sonda Z. Si pu\u00f2 definire una sezione di configurazione Screws_tilt_adjust per abilitare un comando g-code SCREWS_TILT_CALCULATE. Per ulteriori informazioni, vedere la guida al livellamento e riferimento al comando . [screws_tilt_adjust] #screw1: # La coordinata (X, Y) della prima vite di livellamento del piatto. Questa # \u00e8 una posizione in cui comandare l'ugello in modo che la sonda sia # direttamente sopra la vite del piatto (o il pi\u00f9 vicino possibile mentre si # trova ancora sopra il piatto). Questa \u00e8 la vite di base utilizzata nei calcoli. # Questo parametro deve essere fornito. #screw1_name: # Un nome arbitrario per la vite data. Questo nome viene visualizzato # quando viene eseguito lo script di supporto. L'impostazione predefinita # prevede l'utilizzo di un nome basato sulla posizione XY della vite. #screw2: #screw2_name: #... # Viti di livellamento del piatto aggiuntive. Devono essere definite # almeno due viti. #speed: 50 # La velocit\u00e0 (in mm/s) degli spostamenti senza probing durante la # calibrazione. Il valore predefinito \u00e8 50. #horizontal_move_z: 5 # L'altezza (in mm) a cui la testa deve essere spostata appena prima # di avviare un'operazione di sonda. L'impostazione predefinita \u00e8 5. #screw_thread: CW-M3 # Il tipo di vite utilizzata per il livello del piatto, M3, M4 o M5 e la # direzione della manopola utilizzata per livellare il letto, in senso orario # decrementa in senso antiorario decrementa. Valori accettati: CW-M3, # CCW-M3, CW-M4, CCW-M4, CW-M5, CCW-M5. Il valore predefinito \u00e8 # CW-M3, la maggior parte delle stampanti utilizza una vite M3 e # ruotando la manopola in senso orario diminuisce la distanza.","title":"[screws_tilt_adjust]"},{"location":"Config_Reference.html#z_tilt","text":"Regolazione multipla dell'inclinazione dello stepper Z. Questa funzione consente la regolazione indipendente di pi\u00f9 stepper z (vedere la sezione \"stepper_z1\") per regolare l'inclinazione. Se questa sezione \u00e8 presente, diventa disponibile un comando G-Code esteso Z_TILT_ADJUST. [z_tilt] #z_positions: # Un elenco di coordinate X, Y (una per riga; le righe successive # identate) che descrivono la posizione di ciascun \"pivot point\" # del piattotto. Il \"pivot point\" \u00e8 il punto in cui il piatto si attacca # al dato stepper Z. Viene descritto utilizzando le coordinate dell'ugello # (la posizione X, Y dell'ugello se potesse spostarsi direttamente sopra # il punto). La prima voce corrisponde a stepper_z, la seconda a # stepper_z1, la terza a stepper_z2, ecc. # Questo parametro deve essere fornito. #points: # Un elenco di coordinate X, Y (una per riga; righe successive identate) # che devono essere rilevate durante un comando Z_TILT_ADJUST. # Specificare le coordinate dell'ugello e assicurarsi che la sonda sia # sopra il piatto alle coordinate dell'ugello date. # Questo parametro deve essere fornito. #speed: 50 # La velocit\u00e0 (in mm/s) degli spostamenti senza probing durante # la calibrazione. Il valore predefinito \u00e8 50. #horizontal_move_z: 5 # L'altezza (in mm) a cui la testa deve essere comandata per spostarsi # appena prima di avviare un'operazione di probing. # L'impostazione predefinita \u00e8 5. #retries: 0 # Numero di volte per riprovare se i punti rilevati non sono all'interno # della tolleranza. #retry_tolerance: 0 # Se i tentativi sono abilitati, riprovare se i punti sondati pi\u00f9 grande e # pi\u00f9 piccolo differiscono pi\u00f9 di retry_tolerance. Nota che l'unit\u00e0 di # modifica pi\u00f9 piccola qui sarebbe un singolo passaggio. # Tuttavia, se stai sondando pi\u00f9 punti rispetto agli stepper, # probabilmente avrai un valore minimo fisso per l'intervallo di punti # sondati che puoi apprendere osservando l'output del comando.","title":"[z_tilt]"},{"location":"Config_Reference.html#quad_gantry_level","text":"Moving gantry leveling using 4 independently controlled Z motors. Corrects hyperbolic parabola effects (potato chip) on moving gantry which is more flexible. WARNING: Using this on a moving bed may lead to undesirable results. If this section is present then a QUAD_GANTRY_LEVEL extended G-Code command becomes available. This routine assumes the following Z motor configuration: ---------------- |Z1 Z2| | --------- | | | | | | | | | | x-------- | |Z Z3| ---------------- Dove x \u00e8 il punto 0, 0 sul piatto [quad_gantry_level] #gantry_corners: # A newline separated list of X, Y coordinates describing the two # opposing corners of the gantry. The first entry corresponds to Z, # the second to Z2. This parameter must be provided. #points: # A newline separated list of four X, Y points that should be probed # during a QUAD_GANTRY_LEVEL command. Order of the locations is # important, and should correspond to Z, Z1, Z2, and Z3 location in # order. This parameter must be provided. For maximum accuracy, # ensure your probe offsets are configured. #speed: 50 # The speed (in mm/s) of non-probing moves during the calibration. # The default is 50. #horizontal_move_z: 5 # The height (in mm) that the head should be commanded to move to # just prior to starting a probe operation. The default is 5. #max_adjust: 4 # Safety limit if an adjustment greater than this value is requested # quad_gantry_level will abort. #retries: 0 # Number of times to retry if the probed points aren't within # tolerance. #retry_tolerance: 0 # If retries are enabled then retry if largest and smallest probed # points differ more than retry_tolerance.","title":"[quad_gantry_level]"},{"location":"Config_Reference.html#skew_correction","text":"Correzione dell'inclinazione della stampante. \u00c8 possibile utilizzare il software per correggere l'inclinazione della stampante su 3 piani, xy, xz, yz. Questo viene fatto stampando un modello di calibrazione lungo un piano e misurando tre lunghezze. A causa della natura della correzione dell'inclinazione, queste lunghezze vengono impostate tramite gcode. Per i dettagli, vedere Correzione inclinazione e Command Reference . [skew_correction]","title":"[skew_correction]"},{"location":"Config_Reference.html#z_thermal_adjust","text":"Temperature-dependant toolhead Z position adjustment. Compensate for vertical toolhead movement caused by thermal expansion of the printer's frame in real-time using a temperature sensor (typically coupled to a vertical section of frame). See also: extended g-code commands . [z_thermal_adjust] #temp_coeff: # The temperature coefficient of expansion, in mm/degC. For example, a # temp_coeff of 0.01 mm/degC will move the Z axis downwards by 0.01 mm for # every degree Celsius that the temperature sensor increases. Defaults to # 0.0 mm/degC, which applies no adjustment. #smooth_time: # Smoothing window applied to the temperature sensor, in seconds. Can reduce # motor noise from excessive small corrections in response to sensor noise. # The default is 2.0 seconds. #z_adjust_off_above: # Disables adjustments above this Z height [mm]. The last computed correction # will remain applied until the toolhead moves below the specified Z height # again. The default is 99999999.0 mm (always on). #max_z_adjustment: # Maximum absolute adjustment that can be applied to the Z axis [mm]. The # default is 99999999.0 mm (unlimited). #sensor_type: #sensor_pin: #min_temp: #max_temp: # Temperature sensor configuration. # See the \"extruder\" section for the definition of the above # parameters. #gcode_id: # See the \"heater_generic\" section for the definition of this # parameter.","title":"[z_thermal_adjust]"},{"location":"Config_Reference.html#homing-personalizzato","text":"","title":"Homing personalizzato"},{"location":"Config_Reference.html#safe_z_home","text":"Homing Z sicuro. Si pu\u00f2 utilizzare questo meccanismo per posizionare l'asse Z su una specifica coordinata X, Y. Ci\u00f2 \u00e8 utile se la testa portautensili, ad esempio, deve spostarsi al centro del letto prima che Z possa essere riposizionato. [safe_z_home] home_xy_position: # Una coordinata X, Y (ad es. 100, 100) dove deve essere eseguita # homing Z. Questo parametro deve essere fornito. #speed: 50.0 # Velocit\u00e0 alla quale la testa di stampa viene spostata sulla # coordinata Z sicura. Il valore predefinito \u00e8 50 mm/s #z_hop: # Distanza (in mm) per sollevare l'asse Z prima dell'homing. # Questo si applica a qualsiasi comando di homing, anche se non # si trova sull'asse Z. Se l'asse Z \u00e8 gi\u00e0 azzerato e la posizione Z # corrente \u00e8 inferiore a z_hop, questo sollever\u00e0 la testa a un'altezza # di z_hop. Se l'asse Z non \u00e8 gi\u00e0 azzerato la testina viene sollevata # di z_hop. L'impostazione predefinita \u00e8 di non implementare Z hop. #z_hop_speed: 15.0 # Velocit\u00e0 (in mm/s) alla quale l'asse Z viene sollevato prima # del homing. Il valore predefinito \u00e8 15 mm/s. #move_to_previous: False # Quando \u00e8 impostato su True, gli assi X e Y vengono ripristinati alle # posizioni precedenti dopo l'homing dell'asse Z. # L'impostazione predefinita \u00e8 False.","title":"[safe_z_home]"},{"location":"Config_Reference.html#homing_override","text":"Homing Override. Si pu\u00f2 utilizzare questo meccanismo per eseguire una serie di comandi g-code al posto di un G28 che si trova nel normale input di g-code. Questo pu\u00f2 essere utile su stampanti che richiedono una procedura specifica per l'home della macchina. [homing_override] gcode: # Un elenco di comandi G-Code da eseguire al posto dei comandi # G28 trovati nel normale input di G-Code. # Vedi docs/Command_Templates.md per il formato G-Code. # Se un G28 \u00e8 contenuto in questo elenco di comandi, invocher\u00e0 # la normale procedura di homing per la stampante. I comandi # qui elencati devono eseguire l'home di tutti gli assi. # Questo parametro deve essere fornito. #axes: xyz # Gli assi da sovrascrivere. Ad esempio, se questo \u00e8 impostato # su \"z\", lo script di override verr\u00e0 eseguito solo quando l'asse z # \u00e8 azzerato (ad esempio, tramite un comando \"G28\" o \"G28 Z0\"). # Nota, lo script di sovrascrittura dovrebbe comunque ospitare # tutti gli assi. L'impostazione predefinita \u00e8 \"xyz\" che fa s\u00ec che lo # script di override venga eseguito al posto di tutti i comandi G28. #set_position_x: #set_position_y: #set_position_z: # Se specificato, la stampante presumer\u00e0 che l'asse si trovi # nella posizione specificata prima di eseguire i comandi g-code # precedenti. L'impostazione di questa opzione disabilita i # controlli di riferimento per quell'asse. Questo pu\u00f2 essere utile # se la testa deve muoversi prima di invocare il normale # meccanismo G28 per un asse. L'impostazione predefinita \u00e8 # di non forzare una posizione per un asse.","title":"[homing_override]"},{"location":"Config_Reference.html#endstop_phase","text":"Finecorsa regolati in fase stepper. Per utilizzare questa funzione, definire una sezione di configurazione con un prefisso \"endstop_phase\" seguito dal nome della corrispondente sezione di configurazione dello stepper (ad esempio, \"[endstop_phase stepper_z]\"). Questa funzione pu\u00f2 migliorare la precisione degli interruttori di fine corsa. Aggiungi una semplice dichiarazione \"[endstop_phase]\" per abilitare il comando ENDSTOP_PHASE_CALIBRATE. Per ulteriori informazioni, vedere la endstop phases guide e command reference . [endstop_phase stepper_z] #endstop_accuracy: # Imposta la precisione prevista (in mm) del finecorsa. Questo rappresenta # la distanza massima di errore che il finecorsa pu\u00f2 attivare (ad es. se un # finecorsa pu\u00f2 occasionalmente attivarsi 100um in anticipo o fino a 100um in ritardo # quindi impostalo su 0,200 per 200 um). L'impostazione predefinita \u00e8 # 4*distanza_rotazione/passi_completi_per_rotazione. #trigger_phase: # Questo specifica la fase del driver del motore passo-passo da aspettarsi # quando si raggiunge il finecorsa. \u00c8 composto da due numeri separati # da un '/' - la fase e il numero totale di # fasi (ad es. \"7/64\"). Impostare questo valore solo se si \u00e8 sicuri che il # driver del motore passo-passo viene ripristinato ogni volta che viene ripristinato l'mcu. Se questo # non \u00e8 impostato, la prima fase verr\u00e0 rilevata al primo home # e quella fase sar\u00e0 utilizzata su tutte le abitazioni successive. #endstop_align_zero: False # Se true, la posizione_endstop dell'asse sar\u00e0 effettivamente # modificato in modo che la posizione zero dell'asse avvenga a passo pieno # sul motore. (Se utilizzato sull'asse Z e la stampa # l'altezza del livello \u00e8 un multiplo di una distanza di un passo intero, allora ogni # layer si eseguir\u00e0 in un step completo.) L'impostazione predefinita \u00e8 False.","title":"[endstop_phase]"},{"location":"Config_Reference.html#macro-ed-eventi-g-code","text":"","title":"Macro ed eventi G-Code"},{"location":"Config_Reference.html#gcode_macro","text":"Macro G-Code (\u00e8 possibile definire un numero qualsiasi di sezioni con un prefisso \"gcode_macro\"). Per ulteriori informazioni, consulta la Guida ai modelli di comando . [gcode_macro my_cmd] #gcode: # Un elenco di comandi G-Code da eseguire al posto di \"my_cmd\". # Vedi docs/Command_Templates.md per il formato G-Code. # Questo parametro deve essere fornito. #variable_<name>: # Si pu\u00f2 specificare un numero qualsiasi di opzioni con un prefisso # \"variable_\". Al nome della variabile data verr\u00e0 assegnato il valore dato # (analizzato come un valore letterale Python) e sar\u00e0 disponibile durante # l'espansione della macro. Ad esempio, una configurazione con # \"variable_fan_speed = 75\" potrebbe avere comandi gcode contenenti # \"M106 S{ fan_speed * 255 }\". Le variabili possono essere modificate in # fase di esecuzione utilizzando il comando SET_GCODE_VARIABLE # (consultare docs/Command_Templates.md per i dettagli). # I nomi delle variabili potrebbero non utilizzare caratteri maiuscoli. #rename_existing: # Questa opzione far\u00e0 s\u00ec che la macro ignori un comando G-Code # esistente e fornisca la definizione precedente del comando tramite # il nome fornito qui. Questo pu\u00f2 essere usato per sovrascrivere i # comandi G-Code integrati. Prestare attenzione quando si ignorano # i comandi poich\u00e9 possono causare risultati complessi e imprevisti. # L'impostazione predefinita \u00e8 di non sovrascrivere un comando # G-Code esistente. #description: G-Code macro # Ci\u00f2 aggiunger\u00e0 una breve descrizione utilizzata al comando HELP # o durante l'utilizzo della funzione di completamento automatico. # Predefinito \"G-Code macro\"","title":"[gcode_macro]"},{"location":"Config_Reference.html#delayed_gcode","text":"Esegui un gcode con un ritardo impostato. Per ulteriori informazioni, consulta la Guida template dei comandi e riferimento al comando . [delayed_gcode my_delayed_gcode] gcode: # A list of G-Code commands to execute when the delay duration has # elapsed. G-Code templates are supported. This parameter must be # provided. #initial_duration: 0.0 # The duration of the initial delay (in seconds). If set to a # non-zero value the delayed_gcode will execute the specified number # of seconds after the printer enters the \"ready\" state. This can be # useful for initialization procedures or a repeating delayed_gcode. # If set to 0 the delayed_gcode will not execute on startup. # Default is 0.","title":"[delayed_gcode]"},{"location":"Config_Reference.html#save_variables","text":"Supporta il salvataggio delle variabili su disco in modo che vengano mantenute durante i riavvii. Per ulteriori informazioni, vedere template dei comandi e G-Code reference . [save_variables] filename: # Richiesto: fornire un nome file che verrebbe utilizzato per salvare # le variabili su disco, ad es. ~/variables.cfg","title":"[save_variables]"},{"location":"Config_Reference.html#idle_timeout","text":"Timeout di inattivit\u00e0. Viene automaticamente abilitato un timeout di inattivit\u00e0: aggiungi una sezione di configurazione di idle_timeout esplicita per modificare le impostazioni predefinite. [idle_timeout] #gcode: # Un elenco di comandi G-Code da eseguire in un timeout di # inattivit\u00e0. Vedi docs/Command Templates.md per il formato # G-Code. L'impostazione predefinita \u00e8 # eseguire \"TURN_OFF HEATERS\" e \"M84\". #timeout: 600 # Tempo di inattivit\u00e0 (in secondi) da attendere prima di eseguire # i comandi G-Code sopra. Il valore predefinito \u00e8 600 secondi.","title":"[idle_timeout]"},{"location":"Config_Reference.html#funzionalita-opzionali-g-code","text":"","title":"Funzionalit\u00e0 opzionali G-Code"},{"location":"Config_Reference.html#virtual_sdcard","text":"Una scheda SD virtuale pu\u00f2 essere utile se la macchina host non \u00e8 abbastanza veloce per eseguire bene OctoPrint. Consente al software host Klipper di stampare direttamente i file gcode archiviati in una directory sull'host utilizzando i comandi G-Code standard (ad esempio, M24). [virtual_sdcard] path: # Il percorso della directory locale sulla macchina host per cercare # i file di Gcode. Questa \u00e8 una directory di sola lettura (le scritture # di file sdcard non sono supportate). Si pu\u00f2 indicare questo alla # directory di caricamento di OctoPrint # (generalmente ~/.octoprint/uploads/ ). # Questo parametro deve essere fornito. #on_error_gcode: # Un elenco di comandi G-Code da eseguire quando viene segnalato # un errore.","title":"[virtual_sdcard]"},{"location":"Config_Reference.html#sdcard_loop","text":"Alcune stampanti con funzionalit\u00e0 di pulizia del piatto, come un espulsore di parti o una stampante a nastro, possono trovare impiego nelle sezioni di loop del file sdcard. (Ad esempio, per stampare la stessa parte pi\u00f9 e pi\u00f9 volte, o ripetere la sezione a di una parte per una catena o un altro motivo ripetuto). Consulta il command reference per i comandi supportati. Vedere il file sample-macros.cfg per una macro M808 G-Code compatibile con Marlin. [sdcard_loop]","title":"[sdcard_loop]"},{"location":"Config_Reference.html#force_move","text":"Supporta lo spostamento manuale dei motori passo-passo per scopi diagnostici. Nota, l'utilizzo di questa funzione potrebbe mettere la stampante in uno stato non valido - vedere il command reference per dettagli importanti. [force_move] #enable_force_move: False # Impostare su True per abilitare FORCE_MOVE e SET_KINEMATIC_POSITION # i comandi G-Code estesi. L'impostazione predefinita \u00e8 False.","title":"[force_move]"},{"location":"Config_Reference.html#pause_resume","text":"Funzionalit\u00e0 di Pause/Resume con supporto di acquisizione e ripristino della posizione. Per ulteriori informazioni, vedere riferimento comando . [pause_resume] #recover_velocity: 50. # Quando si abilita pause_resume, la velocit\u00e0 con cui tornare alla # posizione catturata (in mm/s). Il valore predefinito \u00e8 50,0 mm/s.","title":"[pause_resume]"},{"location":"Config_Reference.html#firmware_retraction","text":"Retrazione del filamento del firmware. Ci\u00f2 abilita i comandi GCODE G10 (ritiro) e G11 (non ritirati) emessi da molti slicer. I parametri seguenti forniscono le impostazioni predefinite di avvio, sebbene i valori possano essere regolati tramite il [comando] SET_RETRACTION (G-Codes.md#firmware_retraction)), consentendo l'impostazione e l'ottimizzazione del filamento a runtime. [firmware_retraction] #retract_length: 0 # La lunghezza del filamento (in mm) da ritrarre quando G10 # \u00e8 attivato e da ritrarre quando G11 \u00e8 attivato (ma vedere # unretract_extra_length di seguito). I# l valore predefinito \u00e8 0 mm. #retract_speed: 20 # La velocit\u00e0 di retrazione, in mm/s. # Il valore predefinito \u00e8 20 mm/s. #unretract_extra_length: 0 # La lunghezza (in mm) del filamento *aggiuntivo* da # sommare quando non si ritrae. #unretract_speed: 10 # La velocit\u00e0 di srotolamento, in mm/s. # Il valore predefinito \u00e8 10 mm/s.","title":"[firmware_retraction]"},{"location":"Config_Reference.html#gcode_arcs","text":"Supporto per i comandi Gcode arc (G2/G3). [gcode_arcs] #resolution: 1.0 # Un arco sar\u00e0 diviso in segmenti. La lunghezza di ciascun segmento # sar\u00e0 uguale alla risoluzione in mm impostata sopra. Valori pi\u00f9 bassi # produrranno un arco pi\u00f9 fine, ma anche pi\u00f9 lavoro per la tua macchina. # Archi pi\u00f9 piccoli del valore configurato diventer\u00e0 linee rette. # L'impostazione predefinita \u00e8 # 1mm.","title":"[gcode_arcs]"},{"location":"Config_Reference.html#respond","text":"Abilita i comandi estesi \"M118\" e \"RESPOND\" commands . [respond] #default_type: echo # Imposta il prefisso predefinito dell'output \"M118\" e \"RESPOND\" su uno dei seguenti: # echo: \"echo: \" (Questa \u00e8 l'impostazione predefinita) # command: \"// \" # error: \"!! \" #default_prefix: echo: # Imposta direttamente il prefisso predefinito. Se presente # questo valore sovrascriver\u00e0 il \"default_type\".","title":"[respond]"},{"location":"Config_Reference.html#exclude_object","text":"Abilita il supporto per escludere o cancellare singoli oggetti durante il processo di stampa. Per ulteriori informazioni, vedere la guida escludi oggetti e riferimento ai comandi . Vedere il file sample-macros.cfg per una macro G-Code M486 compatibile con Marlin/RepRapFirmware. [exclude_object]","title":"[exclude_object]"},{"location":"Config_Reference.html#compensazione-della-risonanza","text":"","title":"Compensazione della risonanza"},{"location":"Config_Reference.html#input_shaper","text":"Abilita compensazione della risonanza . Vedere anche il command reference . [input_shaper] #shaper_freq_x: 0 # Una frequenza (in Hz) dell'input shaper per l'asse X. Questa \u00e8 # solitamente una frequenza di risonanza dell'asse X che l'input # shaper dovrebbe sopprimere. Per shaper pi\u00f9 complessi, come # shaper di input EI a 2 e 3 gobbe, questo parametro pu\u00f2 essere # impostato in base a diverse considerazioni. # Il valore predefinito \u00e8 0, che disabilita la modellatura dell'input # per l'asse X. #shaper_freq_y: 0 # Una frequenza (in Hz) dell'input shaper per l'asse Y. Questa \u00e8 # solitamente una frequenza di risonanza dell'asse Y che l'input # shaper dovrebbe sopprimere. Per shaper pi\u00f9 complessi, come # shaper di input EI a 2 e 3 gobbe, questo parametro pu\u00f2 essere # impostato in base a diverse considerazioni. Il valore predefinito # \u00e8 0, che disabilita la modellatura dell'input per l'asse Y. #shaper_type: mzv # Un tipo di input shaper da utilizzare per entrambi gli assi X e Y. # Gli shaper supportati sono zv, mzv, zvd, ei, 2hump_ei e # 3hump_ei. L'impostazione predefinita \u00e8 mzv input shaper. #shaper_type_x: #shaper_type_y: # Se shaper_type non \u00e8 impostato, questi due parametri possono # essere utilizzati per configurare diversi shaper di input per gli # assi X e Y. Sono supportati gli stessi valori del parametro # shaper_type. #damping_ratio_x: 0.1 #damping_ratio_y: 0.1 # Rapporti di smorzamento delle vibrazioni degli assi X e Y # utilizzati dagli shaper di input per migliorare la soppressione # delle vibrazioni. Il valore predefinito \u00e8 0,1, un buon valore per la # maggior parte delle stampanti. Nella maggior parte dei casi # questo parametro non richiede ottimizzazione e # non deve essere modificato.","title":"[input_shaper]"},{"location":"Config_Reference.html#adxl345","text":"Supporto per accelerometri ADXL345. Questo supporto consente di interrogare le misurazioni dell'accelerometro dal sensore. Ci\u00f2 abilita un comando ACCELEROMETER_MEASURE (consultare G-Codes per ulteriori informazioni). Il nome del chip predefinito \u00e8 \"predefinito\", ma \u00e8 possibile specificare un nome esplicito (ad esempio, [adxl345 my_chip_name]). [adxl345] cs_pin: # The SPI enable pin for the sensor. This parameter must be provided. #spi_speed: 5000000 # The SPI speed (in hz) to use when communicating with the chip. # The default is 5000000. #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # See the \"common SPI settings\" section for a description of the # above parameters. #axes_map: x, y, z # The accelerometer axis for each of the printer's X, Y, and Z axes. # This may be useful if the accelerometer is mounted in an # orientation that does not match the printer orientation. For # example, one could set this to \"y, x, z\" to swap the X and Y axes. # It is also possible to negate an axis if the accelerometer # direction is reversed (eg, \"x, z, -y\"). The default is \"x, y, z\". #rate: 3200 # Output data rate for ADXL345. ADXL345 supports the following data # rates: 3200, 1600, 800, 400, 200, 100, 50, and 25. Note that it is # not recommended to change this rate from the default 3200, and # rates below 800 will considerably affect the quality of resonance # measurements.","title":"[adxl345]"},{"location":"Config_Reference.html#mpu9250","text":"Supporto per accelerometri mpu9250 e mpu6050 (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"mpu9250\"). [mpu9250 my_accelerometer] #i2c_address: # Il valore predefinito \u00e8 104 (0x68). #i2c_mcu: #i2c_bus: #i2c_speed: 400000 # Vedere la sezione \"impostazioni I2C comuni\" per una descrizione # dei parametri di cui sopra. Il valore predefinito \"i2c_speed\" \u00e8 400000. #axes_map: x, y, z # Vedere la sezione \"adxl345\" per informazioni su questo parametro.","title":"[mpu9250]"},{"location":"Config_Reference.html#resonance_tester","text":"Supporto per test di risonanza e calibrazione automatica del input shaper. Per utilizzare la maggior parte delle funzionalit\u00e0 di questo modulo, devono essere installate dipendenze software aggiuntive; fare riferimento a Measuring Resonances e al command reference per ulteriori informazioni. Per ulteriori informazioni sul parametro max_smoothing e sul suo utilizzo, vedere la sezione Max smoothing della guida alla misurazione delle risonanze. [resonance_tester] #probe_points: # Un elenco di coordinate X, Y, Z di punti (un punto per linea) in cui # testare le risonanze. Almeno un punto \u00e8 richiesto. Assicurati che tutti # i punti con un margine di sicurezza nel piano XY (~ pochi centimetri) # siano raggiungibili dalla testa di stampa. #accel_chip: # Un nome del chip dell'accelerometro da utilizzare per le misurazioni. # Se il chip adxl345 \u00e8 stato definito senza un nome esplicito, questo # parametro pu\u00f2 semplicemente fare riferimento ad esso come # \"accel_chip: adxl345\", altrimenti deve essere fornito anche un nome # esplicito, ad es. \"accel_chip: adxl345 mio_chip_nome\". \u00c8 necessario # impostare questo o i due parametri successivi. #accel_chip_x: #accel_chip_y: # Nomi dei chip dell'accelerometro da utilizzare per le misurazioni per # ciascuno degli assi. Pu\u00f2 essere utile, ad esempio, su una stampante con # piatto, se due accelerometri separati sono montati sul piatto (per l'asse Y) # e sulla testa di stampa (per l'asse X). Questi parametri hanno lo stesso # formato del parametro 'accel_chip'. # \u00c8 necessario fornire solo 'accel_chip' o questi due parametri. #max_smoothing: # Maximum input shaper smoothing to allow for each axis during shaper # auto-calibration (with 'SHAPER_CALIBRATE' command). By default no # maximum smoothing is specified. Refer to Measuring_Resonances guide # for more details on using this feature. #min_freq: 5 # Frequenza minima per testare le risonanze. L'impostazione \u00e8 5 Hz. #max_freq: 133.33 # Frequenza massima per testare le risonanze. L'impostazione \u00e8 133,33 Hz. #accel_per_hz: 75 # Questo parametro viene utilizzato per determinare quale accelerazione # utilizzare per testare una frequenza specifica: accel = accel_per_hz * freq. # Maggiore \u00e8 il valore, maggiore \u00e8 l'energia delle oscillazioni. Pu\u00f2 essere # impostato su un valore inferiore al valore predefinito se le risonanze # diventano troppo forti sulla stampante. Tuttavia, valori pi\u00f9 bassi rendono # le misurazioni delle risonanze ad alta frequenza meno precise. # Il valore predefinito \u00e8 75 (mm/sec). #hz_per_sec: 1 # Determina la velocit\u00e0 del test. Quando si testano tutte le frequenze # nell'intervallo [freq_min, freq_max], ogni secondo la frequenza aumenta # di hz_per_sec. Valori piccoli rallentano il test e valori grandi diminuiscono # la precisione del test. Il valore predefinito \u00e8 1,0 (Hz/sec == sec^-2).","title":"[resonance_tester]"},{"location":"Config_Reference.html#config-file-helpers","text":"","title":"Config file helpers"},{"location":"Config_Reference.html#board_pins","text":"Alias pin board (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"board_pins\"). Usalo per definire gli alias per i pin su un microcontrollore. [board_pins my_aliases] mcu: mcu # A comma separated list of micro-controllers that may use the # aliases. The default is to apply the aliases to the main \"mcu\". aliases: aliases_<name>: # A comma separated list of \"name=value\" aliases to create for the # given micro-controller. For example, \"EXP1_1=PE6\" would create an # \"EXP1_1\" alias for the \"PE6\" pin. However, if \"value\" is enclosed # in \"<>\" then \"name\" is created as a reserved pin (for example, # \"EXP1_9=<GND>\" would reserve \"EXP1_9\"). Any number of options # starting with \"aliases_\" may be specified.","title":"[board_pins]"},{"location":"Config_Reference.html#include","text":"Supporto per includere i file. Uno pu\u00f2 includere un file di configurazione aggiuntivo dal file di configurazione della stampante principale. Possono essere utilizzati anche caratteri jolly (ad es. \"configs/*.cfg\"). [include my_other_config.cfg]","title":"[include]"},{"location":"Config_Reference.html#duplicate_pin_override","text":"Questo strumento consente di definire pi\u00f9 volte un singolo pin del microcontrollore in un file di configurazione senza il normale controllo degli errori. Questo \u00e8 inteso per scopi diagnostici e di debug. Questa sezione non \u00e8 necessaria laddove Klipper supporta l'utilizzo dello stesso pin pi\u00f9 volte e l'utilizzo di questa sostituzione pu\u00f2 causare risultati confusi e imprevisti. [duplicate_pin_override] pins: # Un elenco di pin separato da virgole che possono essere utilizzati pi\u00f9 volte in # un file di configurazione senza normali controlli degli errori. Questo parametro deve essere # fornito.","title":"[duplicate_pin_override]"},{"location":"Config_Reference.html#hardware-per-probing-del-piatto","text":"","title":"Hardware per probing del piatto"},{"location":"Config_Reference.html#probe","text":"Sonda di altezza Z. Si pu\u00f2 definire questa sezione per abilitare l'hardware di rilevamento dell'altezza Z. Quando questa sezione \u00e8 abilitata, i comandi estesi PROBE e QUERY_PROBE comandi g-code diventano disponibili. Inoltre, vedere la Guida alla calibrazione della sonda . La sezione probe crea anche un pin virtuale \"probe:z_virtual_endstop\". Si pu\u00f2 impostare stepper_z endstop_pin su questo pin virtuale su stampanti in stile cartesiano che utilizzano la sonda al posto di un endstop z. Se si utilizza \"probe:z_virtual_endstop\", non definire un position_endstop nella sezione di configurazione stepper_z. [probe] pin: # Pin di rilevamento della sonda. Se il pin si trova su un # microcontrollore diverso rispetto agli stepper Z, abilita # \"homing multi-mcu\". Questo parametro deve essere fornito. #deactivate_on_each_sample: True # Questo determina se Klipper deve eseguire la disattivazione # gcode tra ogni tentativo di esplorazione durante l'esecuzione di # una sequenza di probe multiple. L'impostazione predefinita \u00e8 True. #x_offset: 0.0 # La distanza (in mm) tra la sonda e l'ugello lungo l'asse x. # Il valore predefinito \u00e8 0. #y_offset: 0.0 # La distanza (in mm) tra la sonda e l'ugello lungo l'asse y. # Il valore predefinito \u00e8 0. z_offset: # La distanza (in mm) tra il piatto e l'ugello quando la sonda si attiva. # Questo parametro deve essere fornito. #speed: 5.0 # Velocit\u00e0 (in mm/s) dell'asse Z durante probing. # Il valore predefinito \u00e8 5 mm/s. #samples: 1 # Il numero di volte in cui sondare ciascun punto. I valori z sondati # verranno mediati. L'impostazione predefinita \u00e8 sondare 1 volta. #sample_retract_dist: 2.0 # La distanza (in mm) per sollevare la testa di stampa tra ciascun # campione (se si esegue il campionamento pi\u00f9 di una volta). # Il valore predefinito \u00e8 2 mm. #lift_speed: # Velocit\u00e0 (in mm/s) dell'asse Z durante il sollevamento della sonda # tra i campioni. L'impostazione predefinita prevede l'utilizzo dello # stesso valore del parametro 'speed'. #samples_result: average # Il metodo di calcolo durante il campionamento pi\u00f9 di una volta: # \"median\" o \"average\". L'impostazione predefinita \u00e8 average. #samples_tolerance: 0.100 # La distanza Z massima (in mm) che un campione pu\u00f2 differire da # altri campioni. Se questa tolleranza viene superata, viene segnalato # un errore o il tentativo viene riavviato # (vedere samples_tolerance_retries). Il valore predefinito \u00e8 0,100 mm. #samples_tolerance_retries: 0 # Il numero di tentativi per riprovare se viene trovato un campione che # supera samples_tolerance. In un nuovo tentativo, tutti i campioni # correnti vengono eliminati e il tentativo di sonda viene riavviato. # Se non si ottiene un insieme valido di campioni nel numero di tentativi # specificato, viene segnalato un errore. Il valore predefinito \u00e8 zero che # causa la segnalazione di un errore sul primo campione che supera # samples_tolerance. #activate_gcode: # Un elenco di comandi G-Code da eseguire prima di ogni tentativo di # esplorazione. Vedi docs/Command_Templates.md per il formato # G-Code. Questo pu\u00f2 essere utile se la sonda deve essere attivata in # qualche modo. Non impartire qui alcun comando che sposti la testa # di stampa (ad es. G1). L'impostazione predefinita \u00e8 di non eseguire # alcun comando G-Code speciale all'attivazione. #deactivate_gcode: # Un elenco di comandi G-Code da eseguire dopo il completamento di # ogni tentativo di esplorazione. Vedi docs/Command_Templates.md # per il formato G-Code. Non impartire qui alcun comando che sposti # la testina. L'impostazione predefinita \u00e8 di non eseguire alcun # comando G-Code speciale alla disattivazione.","title":"[probe]"},{"location":"Config_Reference.html#bltouch","text":"Sonda BLTouch. Si pu\u00f2 definire questa sezione (anzich\u00e9 una sezione sonda) per abilitare una sonda BLTouch. Per ulteriori informazioni, vedere BL-Touch guide e command reference .. Viene anche creato un pin virtuale \"probe:z_virtual_endstop\" (consultare la sezione \"probe\" per i dettagli). [bltouch] sensor_pin: # Pin connected to the BLTouch sensor pin. Most BLTouch devices # require a pullup on the sensor pin (prefix the pin name with \"^\"). # This parameter must be provided. control_pin: # Pin connected to the BLTouch control pin. This parameter must be # provided. #pin_move_time: 0.680 # The amount of time (in seconds) to wait for the BLTouch pin to # move up or down. The default is 0.680 seconds. #stow_on_each_sample: True # This determines if Klipper should command the pin to move up # between each probe attempt when performing a multiple probe # sequence. Read the directions in docs/BLTouch.md before setting # this to False. The default is True. #probe_with_touch_mode: False # If this is set to True then Klipper will probe with the device in # \"touch_mode\". The default is False (probing in \"pin_down\" mode). #pin_up_reports_not_triggered: True # Set if the BLTouch consistently reports the probe in a \"not # triggered\" state after a successful \"pin_up\" command. This should # be True for all genuine BLTouch devices. Read the directions in # docs/BLTouch.md before setting this to False. The default is True. #pin_up_touch_mode_reports_triggered: True # Set if the BLTouch consistently reports a \"triggered\" state after # the commands \"pin_up\" followed by \"touch_mode\". This should be # True for all genuine BLTouch devices. Read the directions in # docs/BLTouch.md before setting this to False. The default is True. #set_output_mode: # Request a specific sensor pin output mode on the BLTouch V3.0 (and # later). This setting should not be used on other types of probes. # Set to \"5V\" to request a sensor pin output of 5 Volts (only use if # the controller board needs 5V mode and is 5V tolerant on its input # signal line). Set to \"OD\" to request the sensor pin output use # open drain mode. The default is to not request an output mode. #x_offset: #y_offset: #z_offset: #speed: #lift_speed: #samples: #sample_retract_dist: #samples_result: #samples_tolerance: #samples_tolerance_retries: # See the \"probe\" section for information on these parameters.","title":"[bltouch]"},{"location":"Config_Reference.html#smart_effector","text":"Lo \"Smart Effector\" di Duet3d implementa una sonda Z utilizzando un sensore di forza. Si pu\u00f2 definire questa sezione invece di [probe] per abilitare le funzioni specifiche di Smart Effector. Ci\u00f2 consente anche a comandi di runtime di regolare i parametri di Smart Effector in fase di esecuzione. [smart_effector] pin: # Pin collegato al pin di uscita della sonda Z Smart Effector (pin 5). Si noti # che la resistenza di pullup sulla scheda generalmente non \u00e8 richiesta. # Tuttavia, se il pin di uscita \u00e8 collegato al pin della scheda con un resistore # di pullup, tale resistore deve essere di valore elevato (ad es. 10K Ohm o pi\u00f9). # Alcune schede hanno un resistore di pullup di basso valore sull'ingresso # della sonda Z, che probabilmente far\u00e0 risultare in uno stato di sonda sempre # attivato. In questo caso, collegare lo Smart Effector a un pin diverso sulla # scheda. Questo parametro \u00e8 obbligatorio. #control_pin: # Pin collegato al pin di ingresso di controllo Smart Effector (pin 7). Se fornito, # diventano disponibili i comandi di programmazione della sensibilit\u00e0 # di Smart Effector. #probe_accel: # Se impostato, limita l'accelerazione dei movimenti di tastatura (in mm/sec^2). # Un'improvvisa grande accelerazione all'inizio del movimento di esplorazione # pu\u00f2 causare l'attivazione spuria della sonda, specialmente se l'hotend \u00e8 pesante. # Per evitarlo, potrebbe essere necessario ridurre l'accelerazione dei movimenti # di tastatura tramite questo parametro. #recovery_time: 0.4 # Un ritardo tra i movimenti di spostamento e tastatura in secondi. Un # movimento veloce prima della tastatura pu\u00f2 causare l'attivazione spuria della # sonda. Ci\u00f2 pu\u00f2 causare errori \"Sonda attivata prima del movimento\" se non # \u00e8 impostato alcun ritardo. Il valore 0 disabilita il ritardo di ripristino. # Il valore predefinito \u00e8 0.4. #x_offset: #y_offset: # Dovrebbe essere lasciato non impostato (o impostato su 0). z_offset: # Altezza di attivazione della sonda. Inizia con -0.1 (mm) e regola in seguito # usando il comando `PROBE_CALIBRATE`. Questo parametro deve essere fornito. #speed: # Velocit\u00e0 (in mm/s) dell'asse Z durante la tastatura. Si consiglia di iniziare con la # velocit\u00e0 di tastatura di 20 mm/s e di regolarla secondo necessit\u00e0 per migliorare la # precisione e la ripetibilit\u00e0 dell'attivazione della sonda. #samples: #sample_retract_dist: #samples_result: #samples_tolerance: #samples_tolerance_retries: #activate_gcode: #deactivate_gcode: #deactivate_on_each_sample: # Vedere la sezione \"probe\" per ulteriori informazioni sui parametri di cui sopra.","title":"[smart_effector]"},{"location":"Config_Reference.html#motori-passo-passo-ed-estrusori-aggiuntivi","text":"","title":"Motori passo-passo ed estrusori aggiuntivi"},{"location":"Config_Reference.html#stepper_z1","text":"Assi multi-stepper. Su una stampante in stile cartesiano, lo stepper che controlla un dato asse pu\u00f2 avere blocchi di configurazione aggiuntivi che definiscono gli stepper che dovrebbero essere azionati insieme allo stepper primario. Si pu\u00f2 definire un numero qualsiasi di sezioni con un suffisso numerico che inizia da 1 (ad esempio, \"stepper_z1\", \"stepper_z2\", ecc.). [stepper_z1] #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: # Vedere la sezione \"stepper\" per la definizione dei parametri di cui sopra. #endstop_pin: # Se viene definito un endstop_pin per lo stepper aggiuntivo, lo stepper # si fermer\u00e0 fino all'attivazione dell'endstop. In caso contrario, lo stepper # si fermer\u00e0 fino a quando non verr\u00e0 attivato il finecorsa sullo stepper # primario per l'asse.","title":"[stepper_z1]"},{"location":"Config_Reference.html#extruder1","text":"In una stampante multiestrusore aggiungere una sezione estrusore aggiuntiva per ogni estrusore aggiuntivo. Le sezioni aggiuntive dell'estrusore devono essere denominate \"extruder1\", \"extruder2\", \"extruder3\" e cos\u00ec via. Vedere la sezione \"extruder\" per una descrizione dei parametri disponibili. Vedere sample-multi-extruder.cfg per un esempio di configurazione. [extruder1] #step_pin: #dir_pin: #... # Vedere la sezione \"estrusore\" per i parametri per lo stepper e il riscaldatore # disponibili. #shared_heater: # Questa opzione \u00e8 obsoleta e non deve pi\u00f9 essere specificata.","title":"[extruder1]"},{"location":"Config_Reference.html#dual_carriage","text":"Supporto per stampanti cartesiane con doppi carrelli su un unico asse. Il carrello attivo viene impostato tramite il comando G-code esteso SET_DUAL_CARRIAGE. Il comando \"SET_DUAL_CARRIAGE CARRIAGE=1\" attiver\u00e0 il carrello definito in questa sezione (CARRIAGE=0 riporter\u00e0 l'attivazione al carrello principale). Il supporto del doppio carrello \u00e8 in genere combinato con estrusori extra: il comando SET_DUAL_CARRIAGE viene spesso chiamato contemporaneamente al comando ACTIVATE_EXTRUDER. Assicurati di parcheggiare i carrelli durante la disattivazione. Vedere sample-idex.cfg per un esempio di configurazione. [dual_carriage] axis: # L'asse su cui si trova questo carrello aggiuntivo (x o y). Questo parametro # deve essere fornito #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: #endstop_pin: #position_endstop: #position_min: #position_max: # Vedere la sezione \"stepper\" per la definizione dei parametri di cui sopra.","title":"[dual_carriage]"},{"location":"Config_Reference.html#extruder_stepper","text":"Supporto per stepper aggiuntivi sincronizzati al movimento di un estrusore (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"extruder_stepper\"). Per ulteriori informazioni, vedere riferimento comando . [extruder_stepper my_extra_stepper] extruder: # L'estrusore con cui \u00e8 sincronizzato questo stepper. Se questo \u00e8 impostato su # una stringa vuota, lo stepper non verr\u00e0 sincronizzato con un # estrusore. Questo parametro deve essere fornito. #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: # Vedere la sezione \"stepper\" per la definizione dei parametri sopra. # .","title":"[extruder_stepper]"},{"location":"Config_Reference.html#stepper-manuali","text":"Stepper manuali (\u00e8 possibile definire un numero qualsiasi di sezioni con un prefisso \"manual_stepper\"). Questi sono stepper controllati dal comando g-code MANUAL_STEPPER. Ad esempio: \"MANUAL_STEPPER STEPPER=my_stepper MOVE=10 SPEED=5\". Vedere il file G-Codes per una descrizione del comando MANUAL_STEPPER. Gli stepper non sono collegati alla normale cinematica della stampante. [manual_stepper my_stepper] #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: # Vedere la sezione \"stepper\" per una descrizione di questi parametri. #velocity: # Impostare la velocit\u00e0 predefinita (in mm/s) per lo stepper. Questo # valore verr\u00e0 utilizzato se un comando MANUAL_STEPPER non specifica # un parametro SPEED. Il valore predefinito \u00e8 5 mm/s. #accel: # Imposta l'accelerazione predefinita (in mm/s^2) per lo stepper. # Un'accelerazione pari a zero non risulter\u00e0 in nessuna accelerazione. # Questo valore verr\u00e0 utilizzato se un comando MANUAL_STEPPER non # specifica un parametro ACCEL. Il valore predefinito \u00e8 zero. #endstop_pin: # Pin di rilevamento interruttore di fine corsa. Se specificato, \u00e8 possibile # eseguire \"movimenti di riferimento\" aggiungendo un parametro # STOP_ON_ENDSTOP ai comandi di movimento MANUAL_STEPPER.","title":"[Stepper manuali]"},{"location":"Config_Reference.html#riscaldatori-e-sensori-personalizzati","text":"","title":"Riscaldatori e sensori personalizzati"},{"location":"Config_Reference.html#verify_heater","text":"Verifica riscaldatore e sensore di temperatura. La verifica del riscaldatore viene abilitata automaticamente per ogni riscaldatore configurato sulla stampante. Usa le sezioni di verifica_riscaldatore per modificare le impostazioni predefinite. [verify_heater heater_config_name] #max_error: 120 # Il massimo \"errore di temperatura cumulativo\" prima di generare un # errore. Valori pi\u00f9 piccoli comportano un controllo pi\u00f9 rigoroso e valori # pi\u00f9 grandi consentono pi\u00f9 tempo prima che venga segnalato un errore. # Nello specifico la temperatura viene osservata una volta al secondo e # se \u00e8 prossima alla temperatura target viene azzerato un \"contatore errori\" # interno; in caso contrario, se la temperatura \u00e8 inferiore all'intervallo target, # il contatore viene aumentato della quantit\u00e0 in cui la temperatura riportata # differisce da tale intervallo. Se il contatore supera questo \"errore_max\", # viene generato un errore. Il valore predefinito \u00e8 120. #check_gain_time: # Questo controlla la verifica del riscaldatore durante il riscaldamento # iniziale. Valori pi\u00f9 piccoli comportano un controllo pi\u00f9 rigoroso e valori # pi\u00f9 grandi consentono pi\u00f9 tempo prima che venga segnalato un errore. # In particolare, durante il riscaldamento iniziale, fintanto che il riscaldatore # aumenta di temperatura entro questo intervallo di tempo (specificato in # secondi), il \"contatore errori\" interno viene azzerato. Il valore predefinito # \u00e8 20 secondi per gli estrusori e 60 secondi per heater_bed. #hysteresis: 5 # La differenza di temperatura massima (in gradi Celsius) rispetto a una # temperatura target considerata nell'intervallo del target. Questo controlla # nell'intervallo max_error. \u00c8 raro personalizzare questo valore. # L'impostazione predefinita \u00e8 5. #heating_gain: 2 # La temperatura minima (in gradi Celsius) di cui il riscaldatore deve # aumentare durante il check_gain_time. \u00c8 raro personalizzare questo valore. # L'impostazione predefinita \u00e8 2.","title":"[verify_heater]"},{"location":"Config_Reference.html#homing_heaters","text":"Strumento per disabilitare i riscaldatori durante l'homing o la probing di un asse. [homing_heaters] #steppers: # Un elenco separato da virgole di stepper che dovrebbero causare # la disattivazione dei riscaldatori. L'impostazione predefinita \u00e8 # disabilitare i riscaldatori per qualsiasi spostamento di homing/sonda. # Esempio tipico: stepper_z #heaters: # Un elenco separato da virgole di riscaldatori da disabilitare # durante i movimenti di homing/probing. L'impostazione # predefinita \u00e8 disabilitare tutti i riscaldatori. # Esempio tipico: estrusore, letto riscaldatore","title":"[homing_heaters]"},{"location":"Config_Reference.html#thermistor","text":"Termistori personalizzati (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"thermistor\"). \u00c8 possibile utilizzare un termistore personalizzato nel campo sensor_type di una sezione di configurazione del riscaldatore. (Ad esempio, se si definisce una sezione \"[thermistor my_thermistor]\", \u00e8 possibile utilizzare un \"sensor_type: my_thermistor\" quando si definisce un riscaldatore.) Assicurati di posizionare la sezione del termistore nel file di configurazione sopra il suo primo utilizzo in una sezione del riscaldatore . [thermistor my_thermistor] #temperature1: #resistance1: #temperature2: #resistance2: #temperature3: #resistance3: # Tre misure di resistenza (in Ohm) alle temperature date (in Celsius). # Le tre misurazioni verranno utilizzate per calcolare i coefficienti di # Steinhart-Hart per il termistore. Questi parametri devono essere # forniti quando si utilizza Steinhart-Hart per definire il termistore. #beta: # In alternativa, \u00e8 possibile definire temperatura1, resistenza1 e beta # per definire i parametri del termistore. Questo parametro deve # essere fornito quando si utilizza \"beta\" per definire il termistore.","title":"[thermistor]"},{"location":"Config_Reference.html#adc_temperature","text":"Sensori di temperatura ADC personalizzati (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"adc_temperature\"). Ci\u00f2 consente di definire un sensore di temperatura personalizzato che misura una tensione su un pin del convertitore da analogico a digitale (ADC) e utilizza l'interpolazione lineare tra una serie di misurazioni di temperatura/tensione (o temperatura/resistenza) configurate per determinare la temperatura. Il sensore risultante pu\u00f2 essere utilizzato come tipo_sensore in una sezione riscaldatore. (Ad esempio, se si definisce una sezione \"[adc_temperature my_sensor]\", \u00e8 possibile utilizzare un \"sensor_type: my_sensor\" quando si definisce un riscaldatore.) Assicurati di posizionare la sezione del sensore nel file di configurazione sopra il suo primo utilizzo in una sezione del riscaldatore. [adc_temperature my_sensor] #temperature1: #voltage1: #temperature2: #voltage2: #... # A set of temperatures (in Celsius) and voltages (in Volts) to use # as reference when converting a temperature. A heater section using # this sensor may also specify adc_voltage and voltage_offset # parameters to define the ADC voltage (see \"Common temperature # amplifiers\" section for details). At least two measurements must # be provided. #temperature1: #resistance1: #temperature2: #resistance2: #... # Alternatively one may specify a set of temperatures (in Celsius) # and resistance (in Ohms) to use as reference when converting a # temperature. A heater section using this sensor may also specify a # pullup_resistor parameter (see \"extruder\" section for details). At # least two measurements must be provided.","title":"[adc_temperature]"},{"location":"Config_Reference.html#heater_generic","text":"Riscaldatori generici (si pu\u00f2 definire un numero qualsiasi di sezioni con il prefisso \"riscaldatore_generico\"). Questi riscaldatori si comportano in modo simile ai riscaldatori standard (estrusori, piatti riscaldati). Utilizzare il comando SET_HEATER_TEMPERATURE (consultare G-Codes per i dettagli) per impostare la temperatura target. [heater_generic my_generic_heater] #gcode_id: # L'ID da utilizzare quando si riporta la temperatura nel comando M105. # Questo parametro deve essere fornito. #max_power: #sensor_type: #sensor_pin: #smooth_time: #control: #pid_Kp: #pid_Ki: #pid_Kd: #pwm_cycle_time: #min_temp: #max_temp: # Vedere la sezione \"extruder\" per la definizione dei parametri sopra.","title":"[heater_generic]"},{"location":"Config_Reference.html#temperature_sensor","text":"Sensori di temperatura generici. \u00c8 possibile definire un numero qualsiasi di sensori di temperatura aggiuntivi che vengono riportati tramite il comando M105. [temperature_sensor my_sensor] #sensor_type: #sensor_pin: #min_temp: #max_temp: # Vedi la sezione \"extruder\" per la definizione dei parametri # sopra indicati. #gcode_id: # Vedi la sezione \"heater_generic\" per la definizione dei # parametri sopra indicati.","title":"[temperature_sensor]"},{"location":"Config_Reference.html#sensori-di-temperatura","text":"Klipper include definizioni per molti tipi di sensori di temperatura. Questi sensori possono essere utilizzati in qualsiasi sezione di configurazione che richieda un sensore di temperatura (come una sezione [extruder] o [heater_bed] ).","title":"Sensori di temperatura"},{"location":"Config_Reference.html#termistori-comuni","text":"Termistori comuni. I seguenti parametri sono disponibili nelle sezioni del riscaldatore che utilizzano uno di questi sensori. sensor_type: # Uno di \"EPCOS 100K B57560G104F\", \"ATC Semitec 104GT-2\", # \"ATC Semitec 104NT-4-R025H42G\", \"Generic 3950\", # \"Honeywell 100K 135-104LAG-J01\", \"NTC 100K MGB18-104F39050L32\", # \"SliceEngineering 450\", o \"TDK NTCG104LH104JT1\" sensor_pin: # Pin di ingresso analogico collegato al termistore. # Questo parametro deve essere fornito. #pullup_resistor: 4700 # La resistenza (in ohm) del pullup collegato al termistore. # Il valore predefinito \u00e8 4700 ohm. #inline_resistor: 0 # La resistenza (in ohm) di un resistore aggiuntivo (non a variazione di # calore) posizionato in linea con il termistore. \u00c8 raro impostare questo. # Il valore predefinito \u00e8 0 ohm.","title":"Termistori comuni"},{"location":"Config_Reference.html#amplificatori-di-temperatura-comuni","text":"Amplificatori di temperatura comuni. I seguenti parametri sono disponibili nelle sezioni del riscaldatore che utilizzano uno di questi sensori. sensor_type: # Uno tra \"PT100 INA826\", \"AD595\", \"AD597\", \"AD8494\", \"AD8495\", # \"AD8496\", o \"AD8497\". sensor_pin: # Pin di ingresso analogico collegato al sensore. Questo parametro # deve essere fornito. #adc_voltage: 5.0 # La tensione di confronto dell'ADC (in Volt). Il valore predefinito # \u00e8 5 volt. #voltage_offset: 0 # L'offset di tensione ADC (in Volt). Il valore predefinito \u00e8 0.","title":"Amplificatori di temperatura comuni"},{"location":"Config_Reference.html#sensore-pt1000-collegato-direttamente","text":"Sensore PT1000 collegato direttamente. I seguenti parametri sono disponibili nelle sezioni del riscaldatore che utilizzano uno di questi sensori. sensor_type: PT1000 sensor_pin: # Pin di ingresso analogico collegato al sensore. Questo parametro # deve essere fornito. #pullup_resistor: 4700 # La resistenza (in ohm) del pullup collegato al sensore. Il valore # predefinito \u00e8 4700 ohm.","title":"Sensore PT1000 collegato direttamente"},{"location":"Config_Reference.html#sensori-di-temperatura-maxxxxxx","text":"Sensori temperatura MAXxxxxx con interfaccia periferica seriale (SPI). I seguenti parametri sono disponibili nelle sezioni del riscaldatore che utilizzano uno di questi tipi di sensore. sensor_type: # Uno tra \"MAX6675\", \"MAX31855\", \"MAX31856\", o \"MAX31865\". sensor_pin: # Il pin mcu collegato al pin di selezione del chip del sensore. # Questo parametro deve essere fornito. #spi_speed: 4000000 # La velocit\u00e0 SPI (in hz) da utilizzare durante la comunicazione # con il chip. Il valore predefinito \u00e8 4000000. #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Vedere la sezione \"impostazioni comuni SPI\" per una # descrizione dei parametri di cui sopra. #tc_type: K #tc_use_50Hz_filter: False #tc_averaging_count: 1 # I parametri di cui sopra controllano i parametri del sensore # dei chip MAX31856. I valori predefiniti per ciascun parametro # sono accanto al nome del parametro nell'elenco precedente. #rtd_nominal_r: 100 #rtd_reference_r: 430 #rtd_num_of_wires: 2 #rtd_use_50Hz_filter: False # I parametri di cui sopra controllano i parametri del sensore dei # chip MAX31865. I valori predefiniti per ciascun parametro sono # accanto al nome del parametro nell'elenco precedente.","title":"Sensori di temperatura MAXxxxxx"},{"location":"Config_Reference.html#sensore-di-temperatura-bmp280bme280bme680","text":"Sensori ambientali BMP280/BME280/BME680 con interfaccia I2C. Si noti che questi sensori non sono destinati all'uso con estrusori e letti riscaldanti, ma piuttosto per il monitoraggio della temperatura ambiente (C), della pressione (hPa), dell'umidit\u00e0 relativa (%)e di livello del gas per il BME680. Vedere sample-macros.cfg per una gcode_macro che pu\u00f2 essere utilizzata per riportare la pressione e l'umidit\u00e0 oltre alla temperatura. sensor_type: BME280 #i2c_address: # Il valore predefinito \u00e8 118 (0x76). Alcuni sensori BME280 hanno un # indirizzo di 119 (0x77). #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni comuni I2C\" per una descrizione # dei parametri di cui sopra.","title":"Sensore di temperatura BMP280/BME280/BME680"},{"location":"Config_Reference.html#sensore-htu21d","text":"Sensore ambientale con interfaccia a due fili (I2C) della famiglia HTU21D. Si noti che questo sensore non \u00e8 destinato all'uso con estrusori e letti riscaldanti, ma piuttosto per il monitoraggio della temperatura ambiente (C) e dell'umidit\u00e0 relativa(%). Vedere sample-macros.cfg per una gcode_macro che pu\u00f2 essere utilizzata per riportare l'umidit\u00e0 oltre alla temperatura. sensor_type: # Deve essere \"HTU21D\", \"SI7013\", \"SI7020\", \"SI7021\" o \"SHT21\" #i2c_address: # Il valore predefinito \u00e8 64 (0x40). #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni comuni I2C\" per una # descrizione dei parametri di cui sopra. #htu21d_hold_master: # Se il sensore pu\u00f2 trattenere il buf I2C durante la lettura. Se # True nessun'altra comunicazione bus pu\u00f2 essere eseguita mentre # la lettura \u00e8 in corso. L'impostazione predefinita \u00e8 False. #htu21d_resolution: # La risoluzione della lettura di temperatura e umidit\u00e0. # I valori validi sono: # 'TEMP14_HUM12' -> 14bit per Temp e 12bit per umidit\u00e0 # 'TEMP13_HUM10' -> 13bit per Temp e 10bit per umidit\u00e0 # 'TEMP12_HUM08' -> 12bit per Temp e 08bit per umidit\u00e0 # 'TEMP11_HUM11' -> 11bit per Temp e 11bit per umidit\u00e0 # L'impostazione predefinita \u00e8: \"TEMP11_HUM11\" #htu21d_report_time: # Intervallo in secondi tra le letture. Il valore predefinito \u00e8 30","title":"Sensore HTU21D"},{"location":"Config_Reference.html#sensore-di-temperatura-lm75","text":"Sensori di temperatura (I2C) LM75/LM75A. Questi sensori hanno una gamma di -55~125 C, quindi sono utilizzabili ad es. monitoraggio della temperatura della camera. Possono anche funzionare come semplici controller per ventole/riscaldatori. sensor_type: LM75 #i2c_address: # Il valore predefinito \u00e8 72 (0x48). L'intervallo normale \u00e8 72-79 # (0x48-0x4F) e i 3 bit bassi dell'indirizzo sono configurati tramite # pin sul chip (di solito con ponticelli o cablati). #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni comuni I2C\" per una descrizione # dei parametri di cui sopra. #lm75_report_time: # Intervallo in secondi tra le letture. Il valore predefinito \u00e8 0.8 # con il minimo 0.5.","title":"Sensore di temperatura LM75"},{"location":"Config_Reference.html#sensore-di-temperatura-integrato-nel-microcontrollore","text":"I microcontrollori atsam, atsamd e stm32 contengono un sensore di temperatura interno. \u00c8 possibile utilizzare il sensore \"temperature_mcu\" per monitorare queste temperature. sensor_type: temperature_mcu #sensor_mcu: mcu # Il microcontrollore da cui leggere. L'impostazione predefinita \u00e8 \"mcu\". #sensor_temperature1: #sensor_adc1: # Specificare i due parametri precedenti (una temperatura in gradi # Celsius e un valore ADC come float compreso tra 0,0 e 1,0) per # calibrare la temperatura del microcontrollore. Ci\u00f2 potrebbe # migliorare la precisione della temperatura riportata su alcuni chip. # Un modo tipico per ottenere queste informazioni di calibrazione # consiste nel rimuovere completamente l'alimentazione dalla # stampante per alcune ore (per assicurarsi che sia alla temperatura # ambiente), quindi accenderla e utilizzare il comando QUERY_ADC # per ottenere una misurazione ADC. Utilizzare un altro sensore di # temperatura sulla stampante per trovare la temperatura ambiente # corrispondente. L'impostazione predefinita consiste nell'utilizzare # i dati di calibrazione di fabbrica sul microcontrollore (se applicabile) # o i valori nominali dalle specifiche del microcontrollore. #sensor_temperature2: #sensor_adc2: # Se viene specificato sensor_temperature1/sensor_adc1, \u00e8 anche # possibile specificare i dati di calibrazione sensor_temperature2/sensor_adc2. # Ci\u00f2 potrebbe fornire informazioni calibrate sulla \"curva della # temperatura\". L'impostazione predefinita consiste nell'utilizzare i dati # di calibrazione di fabbrica sul microcontrollore (se applicabile) o i # valori nominali dalle specifiche del microcontrollore.","title":"Sensore di temperatura integrato nel microcontrollore"},{"location":"Config_Reference.html#sensore-di-temperatura-host","text":"Temperatura dalla macchina (es. Raspberry Pi) che esegue il software host. sensor_type: temperature_host #sensor_path: # il percorso del file di sistema della temperatura. L'impostazione # predefinita \u00e8 \"/sys/class/thermal/thermal_zone0/temp\" che \u00e8 il file di # sistema della temperatura su un computer Raspberry Pi.","title":"Sensore di temperatura host"},{"location":"Config_Reference.html#sensore-di-temperatura-ds18b20","text":"DS18B20 \u00e8 un sensore di temperatura digitale a 1 filo (w1). Si noti che questo sensore non \u00e8 destinato all'uso con estrusori e letti riscaldanti, ma piuttosto per il monitoraggio della temperatura ambiente (C). Questi sensori hanno una portata fino a 125 C, quindi sono utilizzabili ad es. monitoraggio della temperatura della camera. Possono anche funzionare come semplici controller per ventole/riscaldatori. I sensori DS18B20 sono supportati solo su \"host mcu\", ad es. il Raspberry Pi. \u00c8 necessario installare il modulo del kernel Linux w1-gpio. sensor_type: DS18B20 serial_no: # Ogni dispositivo a 1 filo ha un numero di serie univoco utilizzato per # identificare il dispositivo, solitamente nel formato 28-031674b175ff. Questo # parametro deve essere fornito. I dispositivi collegati a 1 filo possono essere # elencati utilizzando il seguente comando Linux: ls /sys/bus/w1/devices/ #ds18_report_time: # Intervallo in secondi tra le letture. Il valore predefinito \u00e8 3.0, con un # minimo di 1.0 #sensor_mcu: # Il microcontrollore da cui leggere. Deve essere host_mcu","title":"Sensore di temperatura DS18B20"},{"location":"Config_Reference.html#ventole","text":"","title":"Ventole"},{"location":"Config_Reference.html#fan","text":"Ventola di raffreddamento della stampa. [fan] pin: # Pin di output che controlla la ventola. Questo parametro deve essere fornito. #max_power: 1.0 # La potenza massima (espressa come un valore compreso tra 0.0 e 1.0) a # cui pu\u00f2 essere impostato il pin. Il valore 1.0 consente di impostare il pin # completamente abilitato per periodi prolungati, mentre un valore di 0.5 # consentirebbe di abilitare il pin per non pi\u00f9 della met\u00e0 del tempo. Questa # impostazione pu\u00f2 essere utilizzata per limitare la potenza totale (per # periodi prolungati) della ventola. Se questo valore \u00e8 inferiore a 1.0, le # richieste di velocit\u00e0 della ventola verranno ridimensionate tra zero e # max_power (ad esempio, se max_power \u00e8 0.9 e viene richiesta una # velocit\u00e0 della ventola dell'80%, la potenza della ventola verr\u00e0 impostata # su 72%). L'impostazione predefinita \u00e8 1.0. #shutdown_speed: 0 # La velocit\u00e0 della ventola desiderata (espressa come valore da 0.0 a # 1.0) se il software del microcontrollore entra in uno stato di errore. # Il valore predefinito \u00e8 0. #cycle_time: 0.010 # La quantit\u00e0 di tempo (in secondi) per ogni ciclo di alimentazione PWM # alla ventola. Si consiglia di essere pari o superiore a 10 millisecondi # quando si utilizza il PWM basato su software. # Il valore predefinito \u00e8 0,010 secondi. #hardware_pwm: False # Abilitare questa opzione per utilizzare PWM hardware anzich\u00e9 PWM # software. La maggior parte delle ventole non funziona bene con PWM # hardware, quindi non \u00e8 consigliabile abilitarlo a meno che non vi sia # un requisito elettrico per passare a velocit\u00e0 molto elevate. Quando # si utilizza l'hardware PWM, il tempo di ciclo effettivo \u00e8 vincolato # dall'implementazione e pu\u00f2 essere notevolmente diverso dal tempo # di ciclo richiesto. L'impostazione predefinita \u00e8 False. #kick_start_time: 0.100 # Tempo (in secondi) per far funzionare la ventola a piena velocit\u00e0 # quando la si abilita per la prima volta o la si aumenta di oltre il 50% # (aiuta a far girare la ventola). Il valore predefinito \u00e8 0,100 secondi. #off_below: 0.0 # La velocit\u00e0 minima in input che alimenter\u00e0 la ventola (espressa # come un valore da 0.0 a 1.0). Quando viene richiesta una velocit\u00e0 # inferiore a off_below la ventola verr\u00e0 invece spenta. Questa # impostazione pu\u00f2 essere utilizzata per prevenire lo stallo della # ventola e per garantire che i kick start siano efficaci. # Il valore predefinito \u00e8 0.0. # # Questa impostazione deve essere ricalibrata ogni volta che # max_power viene regolato. Per calibrare questa impostazione, # inizia con off_below impostato su 0.0 e la ventola gira. Abbassare # gradualmente la velocit\u00e0 della ventola per determinare la velocit\u00e0 # di ingresso pi\u00f9 bassa che aziona la ventola in modo affidabile senza # stalli. Impostare off_below al duty cycle corrispondente a questo # valore (ad esempio, 12% -> 0,12) o leggermente superiore. #tachometer_pin: # Pin di ingresso contagiri per il monitoraggio della velocit\u00e0 della # ventola. In genere \u00e8 richiesto un pullup. Questo parametro \u00e8 facoltativo. #tachometer_ppr: 2 # Quando viene specificato tachometer_pin, questo \u00e8 il numero di # impulsi per giro del segnale del tachimetro. Per una ventola BLDC # questo \u00e8 normalmente la met\u00e0 del numero di poli. # L'impostazione predefinita \u00e8 2. #tachometer_poll_interval: 0.0015 # Quando viene specificato tachometer_pin, questo \u00e8 il periodo di polling # del pin del contagiri, in secondi. Il valore predefinito \u00e8 0.0015, che \u00e8 # abbastanza veloce per le ventole al di sotto di 10000 RPM a 2 PPR. Deve # essere inferiore a 30/(tachometer_ppr*rpm), con un certo margine, # dove rpm \u00e8 la velocit\u00e0 massima (in RPM) della ventola. #enable_pin: # Pin opzionale per abilitare l'alimentazione alla ventola. Questo pu\u00f2 # essere utile per le ventole con ingressi PWM dedicati. Alcune di queste # ventole rimangono accese anche allo 0% di ingresso PWM. In tal caso, # il pin PWM pu\u00f2 essere utilizzato normalmente e ad es. un FET commutato # a terra (pin della ventola standard) pu\u00f2 essere utilizzato per controllare # l'alimentazione alla ventola.","title":"[fan]"},{"location":"Config_Reference.html#heater_fan","text":"Ventole di raffreddamento del riscaldatore (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"heater_fan\"). Una \"ventola riscaldatore\" \u00e8 una ventola che verr\u00e0 abilitata ogni volta che il riscaldatore associato \u00e8 attivo. Per impostazione predefinita, un heater_fan ha una velocit\u00e0 di spegnimento pari a max_power. [heater_fan my_nozzle_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # Vedere la sezione \"fan\" per una descrizione dei parametri di cui sopra. #heater: extruder # Nome della sezione di configurazione che definisce il riscaldatore a cui # \u00e8 associato questa ventola. Se qui viene fornito un elenco di nomi di # riscaldatori separati da virgole, la ventola verr\u00e0 abilitata quando uno # qualsiasi dei riscaldatori indicati \u00e8 abilitato. # L'impostazione predefinita \u00e8 \"extruder\". #heater_temp: 50.0 # Una temperatura (in gradi Celsius) sotto la quale il riscaldatore deve # scendere prima che la ventola venga disattivata. # L'impostazione predefinita \u00e8 50 gradi Celsius. #fan_speed: 1.0 # La velocit\u00e0 della ventola (espressa come un valore compreso tra 0.0 e # 1.0) a cui verr\u00e0 impostato la ventola quando viene abilitato il relativo # riscaldatore. L'impostazione predefinita \u00e8 1.0","title":"[heater_fan]"},{"location":"Config_Reference.html#controller_fan","text":"Ventola di raffreddamento del controller (\u00e8 possibile definire un numero qualsiasi di sezioni con il prefisso \"controller_fan\"). Una \"ventola del controller\" \u00e8 una ventola che verr\u00e0 abilitata ogni volta che il riscaldatore associato o il driver stepper associato \u00e8 attivo. La ventola si fermer\u00e0 ogni volta che viene raggiunto un idle_timeout per garantire che non si verifichi alcun surriscaldamento dopo la disattivazione di un componente osservato. [controller_fan my_controller_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # Vedere la sezione \"fan\" per una descrizione dei parametri di cui sopra. #fan_speed: 1.0 # La velocit\u00e0 della ventola (espressa come un valore compreso tra 0.0 e # 1.0) a cui verr\u00e0 impostata la ventola quando \u00e8 attivo un riscaldatore # o un driver passo-passo. L'impostazione predefinita \u00e8 1.0 #idle_timeout: # La quantit\u00e0 di tempo (in secondi) dopo che un driver passo-passo o # un riscaldatore \u00e8 stato attivo per la quale la ventola deve essere tenuta # in funzione. L'impostazione predefinita \u00e8 30 secondi. #idle_speed: # La velocit\u00e0 della ventola (espressa come un valore compreso tra 0.0 # e 1.0) a cui verr\u00e0 impostata la ventola quando era attivo un riscaldatore # o un driver passo-passo e prima che venga raggiunto l'idle_timeout. # L'impostazione predefinita \u00e8 fan_speed. #heater: #stepper: # Nome della sezione di configurazione che definisce il riscaldatore/ # stepper a cui \u00e8 associata questa ventola. Se qui viene fornito un # elenco separato da virgole di nomi di riscaldatori/stepper, la ventola # sar\u00e0 abilitata quando uno qualsiasi dei riscaldatori/stepper indicati # \u00e8 abilitato. Il riscaldatore predefinito \u00e8 \"estrusore\", lo stepper # predefinito sono tutti.","title":"[controller_fan]"},{"location":"Config_Reference.html#temperature_fan","text":"Ventole di raffreddamento attivate dalla temperatura (\u00e8 possibile definire un numero qualsiasi di sezioni con un prefisso \"temperature_fan\"). Una \"ventola di temperatura\" \u00e8 una ventola che verr\u00e0 abilitata ogni volta che il sensore associato \u00e8 al di sopra di una temperatura impostata. Per impostazione predefinita, una ventola_temperatura ha una velocit\u00e0_di_arresto pari a potenza_massima. Per ulteriori informazioni, vedere command reference . [temperature_fan my_temp_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # Vedere la sezione \"fan\" per una descrizione dei parametri di cui sopra. #sensor_type: #sensor_pin: #control: #max_delta: #min_temp: #max_temp: # Vedere la sezione \"extruder\" per una descrizione dei parametri di cui sopra. #pid_Kp: #pid_Ki: #pid_Kd: # Le impostazioni proporzionale (pid_Kp), integrale (pid_Ki) e derivata (pid_Kd) # per il sistema di controllo del feedback PID. Klipper valuta le impostazioni PID # con la seguente formula generale: fan_pwm = max_power - (Kp*e + Ki*integral(e) # - Kd*derivative(e)) / 255 Dove \"e\" \u00e8 \"target_temperature - measure_temperature\" # e \"fan_pwm\" \u00e8 la frequenza della ventola richiesta con 0.0 per spento e 1.0 al # massimo. I parametri pid_Kp, pid_Ki e pid_Kd devono essere forniti quando l# 'algoritmo di controllo PID \u00e8 abilitato. #pid_deriv_time: 2.0 # Un valore di tempo (in secondi) su cui le misurazioni della temperatura verranno # livellate quando si utilizza l'algoritmo di controllo PID. Ci\u00f2 pu\u00f2 ridurre l'impatto # del rumore di misurazione. Il valore predefinito \u00e8 2 secondi. #target_temp: 40.0 # Una temperatura (in Celsius) che sar\u00e0 la temperatura target. # L'impostazione predefinita \u00e8 40 gradi. #max_speed: 1.0 # La velocit\u00e0 della ventola (espressa come un valore compreso tra 0.0 e 1.0) a cui # verr\u00e0 impostata la ventola quando la temperatura del sensore supera il valore # impostato. L'impostazione predefinita \u00e8 1.0. #min_speed: 0.3 # La velocit\u00e0 minima della ventola (espressa come un valore compreso tra 0.0 e # 1.0) alla quale la ventola verr\u00e0 impostata per le ventole con temperatura PID. # Il valore predefinito \u00e8 0.3. #gcode_id: # Se impostata, la temperatura verr\u00e0 riportata nelle query M105 utilizzando l'id # fornito. L'impostazione predefinita \u00e8 di non riportare la temperatura tramite M105.","title":"[temperature_fan]"},{"location":"Config_Reference.html#fan_generic","text":"Ventola a controllo manuale (si pu\u00f2 definire un numero qualsiasi di sezioni con il prefisso \"fan_generic\"). La velocit\u00e0 di una ventola controllata manualmente viene impostata con SET_FAN_SPEED comando gcode . [fan_generic extruder_partfan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # Vedere la sezione \"fan\" per una descrizione dei parametri di cui sopra.","title":"[fan_generic]"},{"location":"Config_Reference.html#leds","text":"","title":"LEDs"},{"location":"Config_Reference.html#led","text":"Supporto per LED (e strisce LED) controllati tramite pin PWM del microcontrollore (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"led\"). Per ulteriori informazioni, vedere command reference . [led my_led] #red_pin: #green_pin: #blue_pin: #white_pin: # Il pin che controlla il colore del LED specificato. Deve essere fornito # almeno uno dei parametri sopra indicati. #cycle_time: 0.010 # La quantit\u00e0 di tempo (in secondi) per ciclo PWM. Si consiglia che sia # pari o superiore a 10 millisecondi quando si utilizza il PWM basato # su software. Il valore predefinito \u00e8 0,010 secondi. #hardware_pwm: False # Abilitare questa opzione per utilizzare PWM hardware anzich\u00e9 PWM # software. Quando si utilizza l'hardware PWM, il tempo di ciclo effettivo # \u00e8 vincolato dall'implementazione e pu\u00f2 essere notevolmente diverso # dal tempo di ciclo richiesto. L'impostazione predefinita \u00e8 Falso. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Imposta il colore iniziale del LED. Ciascun valore deve essere # compreso tra 0,0 e 1,0. Il valore predefinito per ogni colore \u00e8 0.","title":"[led]"},{"location":"Config_Reference.html#neopixel","text":"Supporto LED Neopixel (aka WS2812) (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"neopixel\"). Per ulteriori informazioni, vedere riferimento comando . Si noti che l'implementazione di linux mcu non supporta attualmente i neopixel collegati direttamente. L'attuale design che utilizza l'interfaccia del kernel Linux non consente questo scenario perch\u00e9 l'interfaccia GPIO del kernel non \u00e8 sufficientemente veloce da fornire le frequenze di impulso richieste. [neopixel my_neopixel] pin: # Il pin collegato al neopixel. Questo parametro deve essere fornito. #chain_count: # Il numero di chip Neopixel che sono \"collegati a margherita\" al # pin fornito. Il valore predefinito \u00e8 1 (che indica che un solo # Neopixel \u00e8 collegato al pin). #color_order: GRB # Impostare l'ordine dei pixel richiesto dall'hardware del LED # (utilizzando una stringa contenente le lettere R, G, B, W con W # opzionale). In alternativa, questo pu\u00f2 essere un elenco separato # da virgole di pixel, uno per ogni LED nella catena. # L'impostazione predefinita \u00e8 GRB. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Vedere la sezione \"led\" per informazioni su questi parametri.","title":"[neopixel]"},{"location":"Config_Reference.html#dotstar","text":"Supporto LED Dotstar (conosciuti anche come APA102) (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"dotstar\"). Per ulteriori informazioni, vedere command reference . [dotstar my_dotstar] data_pin: # Il pin connesso alla data line del dotstar. Questo parametro # deve essere fornito. clock_pin: # Il pin connesso alla clock line del dotstar. Questo parametro # deve essere fornito. #chain_count: # Vedere la sezione \"neopixel\" per informazioni su questo parametro. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 # Vedere la sezione \"led\" per informazioni su questo parametro.","title":"[dotstar]"},{"location":"Config_Reference.html#pca9533","text":"PCA9533 Supporto LED. Il PCA9533 viene utilizzato sulla scheda mightyboard. [pca9533 my_pca9533] #i2c_address: 98 # L'indirizzo i2c utilizzato dal chip sul bus i2c. Utilizzare 98 per # PCA9533/1, 99 per PCA9533/2. Il valore predefinito \u00e8 98. #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni comuni I2C\" per una # descrizione dei parametri di cui sopra. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Vedere la sezione \"led\" per informazioni su questi parametri.","title":"[pca9533]"},{"location":"Config_Reference.html#pca9632","text":"Supporto LED PCA9632. Il PCA9632 viene utilizzato su FlashForge Dreamer. [pca9632 my_pca9632] #i2c_address: 98 # L'indirizzo i2c utilizzato dal chip sul bus i2c. Pu\u00f2 essere 96, # 97, 98 o 99. Il valore predefinito \u00e8 98. #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni I2C comuni\" per una # descrizione dei parametri di cui sopra. #scl_pin: #sda_pin: # In alternativa, se il pca9632 non \u00e8 collegato a un bus I2C # hardware, \u00e8 possibile specificare i pin \"clock\" (pin scl) e \"data\" # (pin sda). L'impostazione predefinita prevede l'utilizzo # dell'hardware I2C. #color_order: RGBW # Impostare l'ordine dei pixel del LED (usando una stringa # contenente le lettere R, G, B, W). L'impostazione predefinita # \u00e8 RGBW. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Vedere la sezione \"led\" per informazioni su questi parametri.","title":"[pca9632]"},{"location":"Config_Reference.html#servocomandi-aggiuntivi-pulsanti-e-altri-pin","text":"","title":"Servocomandi aggiuntivi, pulsanti e altri pin"},{"location":"Config_Reference.html#servo","text":"Servo (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"servo\"). I servo possono essere controllati usando SET_SERVO comando g-code . Ad esempio: SET_SERVO SERVO=my_servo ANGLE=180 [servo my_servo] pin: # Pin di uscita PWM che controlla il servo. Questo parametro deve # essere fornito. #maximum_servo_angle: 180 # L'angolo massimo (in gradi) a cui questo servo pu\u00f2 essere impostato. # L'impostazione predefinita \u00e8 180 gradi. #minimum_pulse_width: 0.001 # La durata minima dell'impulso (in secondi). Questo dovrebbe # corrispondere a un angolo di 0 gradi. Il valore predefinito \u00e8 0.001 secondi. #maximum_pulse_width: 0.002 # La durata massima dell'impulso (in secondi). Questo dovrebbe # corrispondere a un angolo di maximum_servo_angle. Il valore # predefinito \u00e8 0.002 secondi. #initial_angle: # Angolo iniziale (in gradi) su cui impostare il servo. L'impostazione # predefinita \u00e8 di non inviare alcun segnale all'avvio. #initial_pulse_width: # Durata iniziale dell'impulso (in secondi) su cui impostare il servo. # (Questo \u00e8 valido solo se initial_angle non \u00e8 impostato.) # L'impostazione predefinita \u00e8 di non inviare alcun segnale all'avvio.","title":"[servo]"},{"location":"Config_Reference.html#gcode_button","text":"Esegui gcode quando un pulsante viene premuto o rilasciato (o quando un pin cambia stato). Puoi controllare lo stato del pulsante usando QUERY_BUTTON button=my_gcode_button . [gcode_button my_gcode_button] pin: # Il pin su cui \u00e8 collegato il pulsante. Questo parametro deve essere fornito. #analog_range: # Due resistenze separate da virgole (in Ohm) che specificano l'intervallo # di resistenza minimo e massimo per il pulsante. Se viene fornito # analog_range, il pin deve essere un pin con capacit\u00e0 analogica. # L'impostazione predefinita \u00e8 utilizzare digital gpio per il pulsante. #analog_pullup_resistor: # La resistenza di pullup (in Ohm) quando \u00e8 specificato analog_range. # Il valore predefinito \u00e8 4700 ohm. #press_gcode: # Un elenco di comandi G-Code da eseguire quando si preme il pulsante. # I modelli G-Code sono supportati. Questo parametro deve essere fornito. #release_gcode: # Un elenco di comandi G-Code da eseguire quando il pulsante viene # rilasciato. I modelli G-Code sono supportati. L'impostazione predefinita # \u00e8 di non eseguire alcun comando al rilascio di un pulsante.","title":"[gcode_button]"},{"location":"Config_Reference.html#output_pin","text":"Pin di uscita configurabili in fase di run-time (\u00e8 possibile definire un numero qualsiasi di sezioni con un prefisso \"output_pin\"). I pin configurati qui verranno impostati come pin di output e sar\u00e0 possibile modificarli in fase di esecuzione utilizzando il comando esteso \"SET_PIN PIN=my_pin VALUE=.1\" comandi g-code . [output_pin my_pin] pin: # Il pin da configurare come output. # Questo parametro deve essere fornito. #pwm: False # Impostare se il pin di uscita deve essere in grado di modulare la # larghezza di impulso PWM. Se questo \u00e8 True, i campi del valore # dovrebbero essere compresi tra 0 e 1; se \u00e8 False i campi del valore # devono essere 0 o 1. Il valore predefinito \u00e8 False. #static_value: # Se \u00e8 valorizzato, il pin viene assegnato a questo valore all'avvio e # il pin non pu\u00f2 essere modificato durante il runtime. Un pin statico # utilizza una ram leggermente inferiore nel microcontrollore. # L'impostazione predefinita prevede l'utilizzo della configurazione # di runtime dei pin. #value: # Il valore su cui impostare inizialmente il pin durante la # configurazione dell'MCU. Il valore predefinito \u00e8 0 (per bassa tensione). #shutdown_value: # Il valore su cui impostare il pin su un evento di arresto dell'MCU. # Il valore predefinito \u00e8 0 (per bassa tensione). #maximum_mcu_duration: # La durata massima di un valore di non spegnimento pu\u00f2 essere # determinato dall'MCU senza un riconoscimento da parte dell'host. # Se l'host non riesce a tenere il passo con un aggiornamento, l'MCU # si spegner\u00e0 e imposter\u00e0 tutti i pin sui rispettivi valori di spegnimento. # Default: 0 (disabilitato) I valori abituali sono circa 5 secondi. #cycle_time: 0.100 # La quantit\u00e0 di tempo (in secondi) per ciclo PWM. Si consiglia di # essere pari o superiore a 10 millisecondi quando si utilizza il PWM # basato su software. Il valore predefinito \u00e8 0.100 secondi per i pin pwm. #hardware_pwm: False # Abilitare questa opzione per utilizzare PWM hardware anzich\u00e9 PWM # software. Quando si utilizza l'hardware PWM, il tempo di ciclo effettivo # \u00e8 vincolato dall'implementazione e pu\u00f2 essere notevolmente diverso # dal tempo di ciclo richiesto. L'impostazione predefinita \u00e8 Falso. #scale: # Questo parametro pu\u00f2 essere utilizzato per modificare il modo in cui # i parametri 'value' e 'shutdown_value' vengono interpretati per i pin # pwm. Se fornito, il parametro 'value' deve essere compreso tra 0.0 e # 'scale'. Questo pu\u00f2 essere utile quando si configura un pin PWM che # controlla un riferimento di tensione stepper. La \"scala\" pu\u00f2 essere # impostata sull'amperaggio dello stepper equivalente se il PWM fosse # completamente abilitato, quindi il parametro \"value\" pu\u00f2 essere # specificato utilizzando l'amperaggio desiderato per lo stepper. # L'impostazione predefinita \u00e8 di non ridimensionare il parametro 'value'.","title":"[output_pin]"},{"location":"Config_Reference.html#static_digital_output","text":"Pin di uscita digitali configurati staticamente (\u00e8 possibile definire un numero qualsiasi di sezioni con un prefisso \"static_digital_output\"). I pin configurati qui verranno impostati come uscita GPIO durante la configurazione dell'MCU. Non possono essere modificati in fase di esecuzione. [static_digital_output my_output_pins] pins: # Un elenco separato da virgole di pin da impostare come pin di # output GPIO. Il pin verr\u00e0 impostato su un livello alto a meno che il # nome del pin non sia preceduto da \"!\". Questo parametro deve # essere fornito.","title":"[static_digital_output]"},{"location":"Config_Reference.html#multi_pin","text":"Uscite a pin multipli (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"multi_pin\"). Un output multi_pin crea un alias pin interno che pu\u00f2 modificare pi\u00f9 pin di output ogni volta che viene impostato il pin alias. Ad esempio, si potrebbe definire un oggetto \"[multi_pin my_fan]\" contenente due pin e quindi impostare \"pin=multi_pin:my_fan\" nella sezione \"[fan]\" - ad ogni cambio di ventola entrambi i pin di output verrebbero aggiornati. Questi alias non possono essere utilizzati con i pin del motore passo-passo. [multi_pin my_multi_pin] pins: # Un elenco separato da virgole di pin associati a questo alias. # Questo parametro deve essere fornito.","title":"[multi_pin]"},{"location":"Config_Reference.html#configurazione-del-driver-tmc-per-stepper","text":"Configurazione dei driver per motori passo-passo Trinamic in modalit\u00e0 UART/SPI. Ulteriori informazioni si trovano nella TMC Drivers guide e nel command reference .","title":"Configurazione del driver TMC per stepper"},{"location":"Config_Reference.html#tmc2130","text":"Configurare un driver per motore passo-passo TMC2130 tramite bus SPI. Per utilizzare questa funzione, definire una sezione di configurazione con un prefisso \"tmc2130\" seguito dal nome della sezione di configurazione dello stepper corrispondente (ad esempio, \"[tmc2130 stepper_x]\"). [tmc2130 stepper_x] cs_pin: # Il pin collegato al pin di selezione del chip TMC2130. # Questo pin verr\u00e0 impostato su basso all'inizio dei messaggi SPI e # portato su alto al termine del messaggio. Questo parametro deve # essere fornito. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Vedere la sezione \"impostazioni comuni SPIi\" per una descrizione # dei parametri di cui sopra. #chain_position: #chain_length: # Questi parametri configurano una daisy chain SPI. I due parametri # definiscono la posizione dello stepper nella catena e la lunghezza totale # della catena. La posizione 1 corrisponde allo stepper che si collega al # segnale MOSI. L'impostazione predefinita \u00e8 di non utilizzare un # collegamento a margherita SPI. #interpolate: True # Se True, abilita l'interpolazione del passo (il driver eseguir\u00e0 un passo # intero attraverso 256 micropassi). Questa interpolazione introduce una # piccola deviazione posizionale sistemica - vedi TMC_Drivers.md per i # dettagli. L'impostazione predefinita \u00e8 True. run_current: # La quantit\u00e0 di corrente (in ampere RMS) con cui configurare il driver e utilizzare durante il movimento passo-passo. Questo parametro deve essere fornito. #hold_current: # La quantit\u00e0 di corrente (in ampere RMS) con cui configurare il driver da # utilizzare quando lo stepper non \u00e8 in movimento. L'impostazione di # hold_current non \u00e8 consigliata (consultare TMC_Drivers.md per i # dettagli). L'impostazione predefinita \u00e8 di non ridurre la corrente. #sense_resistor: 0.110 # La resistenza (in ohm) del resistore di rilevamento del motore. # Il valore predefinito \u00e8 0,110 ohm. #stealthchop_threshold: 0 # La velocit\u00e0 (in mm/s) su cui impostare la soglia \"stealthChop\". Se # impostata, la modalit\u00e0 \"stealthChop\" sar\u00e0 abilitata se la velocit\u00e0 del # motore passo-passo \u00e8 inferiore a questo valore. Il valore predefinito # \u00e8 0, che disabilita la modalit\u00e0 \"stealthChop\". #driver_IHOLDDELAY: 8 #driver_TPOWERDOWN: 0 #driver_TBL: 1 #driver_TOFF: 4 #driver_HEND: 7 #driver_HSTRT: 0 #driver_PWM_AUTOSCALE: True #driver_PWM_FREQ: 1 #driver_PWM_GRAD: 4 #driver_PWM_AMPL: 128 #driver_SGT: 0 # Impostare il registro dato durante la configurazione del chip # TMC2130. Pu\u00f2 essere utilizzato per impostare parametri motore # personalizzati. I valori predefiniti per ciascun parametro sono # accanto al nome del parametro nell'elenco precedente. #diag0_pin: #diag1_pin: # Il pin del microcontrollore collegato a una delle linee DIAG del # chip TMC2130. \u00c8 necessario specificare un solo pin diag. Il pin \u00e8 # \"attivo basso\" ed \u00e8 quindi normalmente preceduto da \"^!\". # L'impostazione di questo crea un pin virtuale # \"tmc2130_stepper_x:virtual_endstop\" che pu\u00f2 essere utilizzato # come endstop_pin dello stepper. In questo modo si abilita # l'\"homing sensorless\". (Assicurarsi di impostare anche driver_SGT # su un valore di sensibilit\u00e0 appropriato.) L'impostazione predefinita # \u00e8 di non abilitare l'homing sensorless.","title":"[tmc2130]"},{"location":"Config_Reference.html#tmc2208","text":"Configurare un driver per motore passo-passo TMC2208 (o TMC2224) tramite UART a filo singolo. Per utilizzare questa funzione, definire una sezione di configurazione con un prefisso \"tmc2208\" seguito dal nome della sezione di configurazione dello stepper corrispondente (ad esempio, \"[tmc2208 stepper_x]\"). [tmc2208 stepper_x] uart_pin: # Il pin collegato al PDN_UART del TMC2208 . # Questo parametro deve essere fornito. #tx_pin: # Se si utilizzano linee di ricezione e trasmissione separate per # comunicare con il driver, impostare uart_pin sul pin di ricezione e # tx_pin sul pin di trasmissione. L'impostazione predefinita \u00e8 usare uart_pin sia per la lettura che per la scrittura. #select_pins: # Un elenco separato da virgole di pin da impostare prima di accedere # all'UART tmc2208. Questo pu\u00f2 essere utile per configurare un mux # analogico per la comunicazione UART. L'impostazione predefinita \u00e8 # di non configurare alcun pin. #interpolate: True # Se True, abilita l'interpolazione del passo (il driver eseguir\u00e0 un passo # intero con 256 micropassi). Questa interpolazione # introduce una piccola deviazione posizionale sistemica - vedere # TMC_Drivers.md per i dettagli. L'impostazione predefinita \u00e8 True. run_current: # La quantit\u00e0 di corrente (in ampere RMS) per configurare il driver da # utilizzare durante il movimento passo-passo. # Questo parametro deve essere fornito. #hold_current: # La quantit\u00e0 di corrente (in ampere RMS) per configurare il driver da # utilizzare quando lo stepper non \u00e8 in movimento. L'impostazione di # hold_current non \u00e8 consigliata (consultare TMC_Drivers.md per i # dettagli). L'impostazione predefinita \u00e8 di non ridurre la corrente. #sense_resistor: 0.110 # La resistenza (in ohm) del resistore di rilevamento del motore. # Il valore predefinito \u00e8 0,110 ohm. #stealthchop_threshold: 0 # La velocit\u00e0 (in mm/s) su cui impostare la soglia \"stealthChop\". Se # impostata, la modalit\u00e0 \"stealthChop\" sar\u00e0 abilitata se la velocit\u00e0 del # motore passo-passo \u00e8 inferiore a questo valore. Il valore predefinito # \u00e8 0, che disabilita la modalit\u00e0 \"stealthChop\". #driver_IHOLDDELAY: 8 #driver_TPOWERDOWN: 20 #driver_TBL: 2 #driver_TOFF: 3 #driver_HEND: 0 #driver_HSTRT: 5 #driver_PWM_AUTOGRAD: True #driver_PWM_AUTOSCALE: True #driver_PWM_LIM: 12 #driver_PWM_REG: 8 #driver_PWM_FREQ: 1 #driver_PWM_GRAD: 14 #driver_PWM_OFS: 36 # Impostare il registro dato durante la configurazione del chip TMC2208. # Pu\u00f2 essere utilizzato per impostare parametri motore personalizzati. # I valori predefiniti per ciascun parametro sono accanto al nome del # parametro nell'elenco precedente.","title":"[tmc2208]"},{"location":"Config_Reference.html#tmc2209","text":"Configurare un driver per motore passo-passo TMC2209 tramite UART a filo singolo. Per utilizzare questa funzione, definire una sezione di configurazione con un prefisso \"tmc2209\" seguito dal nome della sezione di configurazione dello stepper corrispondente (ad esempio, \"[tmc2209 stepper_x]\"). [tmc2209 stepper_x] uart_pin: #tx_pin: #select_pins: #interpolate: True run_current: #hold_current: #sense_resistor: 0.110 #stealthchop_threshold: 0 # Vedere la sezione \"tmc2208\" per la definizione di questi parametri. #uart_address: # L'indirizzo del chip TMC2209 per i messaggi UART (un numero intero # compreso tra 0 e 3). Viene in genere utilizzato quando pi\u00f9 chip TMC2209 # sono collegati allo stesso pin UART. Il valore predefinito \u00e8 zero #driver_IHOLDDELAY: 8 #driver_TPOWERDOWN: 20 #driver_TBL: 2 #driver_TOFF: 3 #driver_HEND: 0 #driver_HSTRT: 5 #driver_PWM_AUTOGRAD: True #driver_PWM_AUTOSCALE: True #driver_PWM_LIM: 12 #driver_PWM_REG: 8 #driver_PWM_FREQ: 1 #driver_PWM_GRAD: 14 #driver_PWM_OFS: 36 #driver_SGTHRS: 0 # Impostare il registro dato durante la configurazione del chip TMC2209. # Pu\u00f2 essere utilizzato per impostare parametri motore personalizzati. I # valori predefiniti per ciascun parametro sono accanto al nome del # parametro nell'elenco precedente. #diag_pin: # Il pin del microcontrollore collegato alla linea DIAG del chip TMC2209. # Il pin \u00e8 normalmente preceduto da \"^\" per abilitare un pullup. # L'impostazione di questo crea un pin virtuale \"tmc2209_stepper_x:virtual_endstop\" # che pu\u00f2 essere utilizzato come endstop_pin dello stepper. In questo modo # si abilita l'\"homing sensorless\". (Assicurarsi di impostare anche driver_SGTHRS # su un valore di sensibilit\u00e0 appropriato.) L'impostazione predefinita \u00e8 di non # abilitare l'homing sensorless.","title":"[tmc2209]"},{"location":"Config_Reference.html#tmc2660","text":"Configurare un driver per motore passo-passo TMC2660 tramite bus SPI. Per utilizzare questa funzione, definire una sezione di configurazione con un prefisso tmc2660 seguito dal nome della sezione di configurazione dello stepper corrispondente (ad esempio, \"[tmc2660 stepper_x]\"). [tmc2660 stepper_x] cs_pin: # Il pin corrispondente al pin di selezione del chip TMC2660. Questo pin # verr\u00e0 impostato su basso all'inizio dei messaggi SPI e impostato su # alto al termine del trasferimento del messaggio. Questo parametro # deve essere fornito. #spi_speed: 4000000 # Frequenza bus SPI utilizzata per comunicare con il driver # passo-passo TMC2660. Il valore predefinito \u00e8 4000000. #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Vedere la sezione \"impostazioni comuni SPI\" per una descrizione # dei parametri di cui sopra. #interpolate: True # Se true, abilita l'interpolazione del passo (il driver eseguir\u00e0 un passo # interno a una velocit\u00e0 di 256 micropassi). Funziona solo se microsteps # \u00e8 impostato su 16. L'interpolazione introduce una piccola deviazione # posizionale sistemica - vedere TMC_Drivers.md per i dettagli. # L'impostazione predefinita \u00e8 Vero. run_current: # La quantit\u00e0 di corrente (in ampere RMS) utilizzata dal driver durante # il movimento passo-passo. Questo parametro deve essere fornito. #sense_resistor: # La resistenza (in ohm) del resistore di rilevamento del motore. # Questo parametro deve essere fornito. #idle_current_percent: 100 # La percentuale di run_current a cui il driver stepper sar\u00e0 ridotto allo # scadere del timeout di inattivit\u00e0 (\u00e8 necessario impostare il timeout # utilizzando una sezione di configurazione [idle_timeout]). La corrente # verr\u00e0 nuovamente aumentata una volta che lo stepper dovr\u00e0 muoversi # di nuovo. Assicurati di impostarlo su un valore sufficientemente alto in # modo che gli stepper non perdano la loro posizione. C'\u00e8 anche un piccolo # ritardo fino a quando la corrente non viene nuovamente aumentata, # quindi tienine conto quando comandi mosse veloci mentre lo stepper \u00e8 # al minimo. Il valore predefinito \u00e8 100 (nessuna riduzione). #driver_TBL: 2 #driver_RNDTF: 0 #driver_HDEC: 0 #driver_CHM: 0 #driver_HEND: 3 #driver_HSTRT: 3 #driver_TOFF: 4 #driver_SEIMIN: 0 #driver_SEDN: 0 #driver_SEMAX: 0 #driver_SEUP: 0 #driver_SEMIN: 0 #driver_SFILT: 0 #driver_SGT: 0 #driver_SLPH: 0 #driver_SLPL: 0 #driver_DISS2G: 0 #driver_TS2G: 3 # Imposta il parametro indicato durante la configurazione del chip TMC2660. # Questo pu\u00f2 essere utilizzato per impostare parametri del driver personalizzati. # Le impostazioni predefinite per ogni parametro sono accanto al nome del # parametro nell'elenco sopra. Vedere la scheda tecnica del TMC2660 su cosa # fa ogni parametro e quali sono le restrizioni sulle combinazioni di parametri. # Prestare particolare attenzione al registro CHOPCONF, dove l'impostazione # di CHM su zero o uno comporter\u00e0 modifiche al layout (il primo bit di HDEC) # viene interpretato come MSB di HSTRT in questo caso).","title":"[tmc2660]"},{"location":"Config_Reference.html#tmc5160","text":"Configurare un driver per motore passo-passo TMC5160 tramite bus SPI. Per utilizzare questa funzione, definire una sezione di configurazione con un prefisso \"tmc5160\" seguito dal nome della sezione di configurazione dello stepper corrispondente (ad esempio, \"[tmc5160 stepper_x]\"). [tmc5160 stepper_x] cs_pin: # Il pin corrispondente al pin di selezione del chip TMC5160. Questo pin verr\u00e0 impostato su basso all'inizio dei messaggi SPI e portato su alto al termine del messaggio. Questo parametro deve essere fornito. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Vedere la sezione \"impostazioni SPI comuni\" per una # descrizione dei parametri di cui sopra. #chain_position: #chain_length: # Questi parametri configurano una daisy chain SPI. I due # parametri definiscono la posizione dello stepper nella catena # e la lunghezza totale della catena. La posizione 1 corrisponde # allo stepper che si collega al segnale MOSI. L'impostazione # predefinita \u00e8 di non utilizzare un collegamento a margherita SPI. #interpolate: True # Se true, abilita l'interpolazione del passo (il driver eseguir\u00e0 un # passo interno con 256 micropassi). # L'impostazione predefinita \u00e8 True. run_current: # La quantit\u00e0 di corrente (in ampere RMS) per configurare il driver # da utilizzare durante il movimento. # Questo parametro deve essere fornito. #hold_current: # La quantit\u00e0 di corrente (in ampere RMS) per configurare il driver # da utilizzare quando lo stepper non \u00e8 in movimento. L'impostazione # di hold_current non \u00e8 consigliata (consultare TMC_Drivers.md per i # dettagli). L'impostazione predefinita \u00e8 di non ridurre la corrente. #sense_resistor: 0.075 # La resistenza (in ohm) del resistore di rilevamento del motore. # Il valore predefinito \u00e8 0,075 ohm. #stealthchop_threshold: 0 # La velocit\u00e0 (in mm/s) su cui impostare la soglia \"stealthChop\". Se # impostata, la modalit\u00e0 \"stealthChop\" sar\u00e0 abilitata se la velocit\u00e0 del # motore passo-passo \u00e8 inferiore a questo valore. Il valore predefinito # \u00e8 0, che disabilita la modalit\u00e0 \"stealthChop\". #driver_IHOLDDELAY: 6 #driver_TPOWERDOWN: 10 #driver_TBL: 2 #driver_TOFF: 3 #driver_HEND: 2 #driver_HSTRT: 5 #driver_FD3: 0 #driver_TPFD: 4 #driver_CHM: 0 #driver_VHIGHFS: 0 #driver_VHIGHCHM: 0 #driver_DISS2G: 0 #driver_DISS2VS: 0 #driver_PWM_AUTOSCALE: True #driver_PWM_AUTOGRAD: True #driver_PWM_FREQ: 0 #driver_FREEWHEEL: 0 #driver_PWM_GRAD: 0 #driver_PWM_OFS: 30 #driver_PWM_REG: 4 #driver_PWM_LIM: 12 #driver_SGT: 0 #driver_SEMIN: 0 #driver_SEUP: 0 #driver_SEMAX: 0 #driver_SEDN: 0 #driver_SEIMIN: 0 #driver_SFILT: 0 # Impostare il registro dato durante la configurazione del chip # TMC5160. Pu\u00f2 essere utilizzato per impostare parametri motore # personalizzati. I valori predefiniti per ciascun parametro sono # accanto al nome del parametro nell'elenco precedente. #diag0_pin: #diag1_pin: # Il pin del microcontrollore collegato a una delle linee DIAG del chip # TMC5160. \u00c8 necessario specificare un solo pin diag. Il pin \u00e8 \"attivo # basso\" ed \u00e8 quindi normalmente preceduto da \"^!\". L'impostazione # di questo crea un pin virtuale \"tmc5160_stepper_x:virtual_endstop\" # che pu\u00f2 essere utilizzato come endstop_pin dello stepper. In questo # modo si abilita l'\"homing sensorless\". (Assicurarsi di impostare anche # driver_SGT su un valore di sensibilit\u00e0 appropriato.) L'impostazione # predefinita \u00e8 di non abilitare l'homing sensorless.","title":"[tmc5160]"},{"location":"Config_Reference.html#configurazione-della-corrente-del-motore-passo-passo-a-run-time","text":"","title":"Configurazione della corrente del motore passo-passo a run-time"},{"location":"Config_Reference.html#ad5206","text":"Digipot AD5206 configurati staticamente collegati tramite bus SPI (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"ad5206\"). [ad5206 my_digipot] enable_pin: # The pin corresponding to the AD5206 chip select line. This pin # will be set to low at the start of SPI messages and raised to high # after the message completes. This parameter must be provided. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # See the \"common SPI settings\" section for a description of the # above parameters. #channel_1: #channel_2: #channel_3: #channel_4: #channel_5: #channel_6: # The value to statically set the given AD5206 channel to. This is # typically set to a number between 0.0 and 1.0 with 1.0 being the # highest resistance and 0.0 being the lowest resistance. However, # the range may be changed with the 'scale' parameter (see below). # If a channel is not specified then it is left unconfigured. #scale: # This parameter can be used to alter how the 'channel_x' parameters # are interpreted. If provided, then the 'channel_x' parameters # should be between 0.0 and 'scale'. This may be useful when the # AD5206 is used to set stepper voltage references. The 'scale' can # be set to the equivalent stepper amperage if the AD5206 were at # its highest resistance, and then the 'channel_x' parameters can be # specified using the desired amperage value for the stepper. The # default is to not scale the 'channel_x' parameters.","title":"[ad5206]"},{"location":"Config_Reference.html#mcp4451","text":"Digipot MCP4451 configurato staticamente collegato tramite bus I2C (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"mcp4451\"). [mcp4451 my_digipot] i2c_address: # L'indirizzo i2c utilizzato dal chip sul bus i2c. Questo parametro deve # essere fornito. #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni I2C comuni\" per una descrizione # dei parametri di cui sopra. #wiper_0: #wiper_1: #wiper_2: #wiper_3: # Il valore su cui impostare staticamente il \"wiper\" MCP4451 # specificato. Questo \u00e8 in genere impostato su un numero compreso # tra 0,0 e 1,0 con 1,0 come resistenza pi\u00f9 alta e 0,0 come resistenza # pi\u00f9 bassa. Tuttavia, l'intervallo pu\u00f2 essere modificato con il parametro # 'scale' (vedi sotto). Se non viene specificato un wiper, non viene # configurato. #scale: # Questo parametro pu\u00f2 essere utilizzato per modificare il modo in # cui vengono interpretati i parametri 'wiper_x'. Se forniti, i parametri # 'wiper_x' dovrebbero essere compresi tra 0.0 e 'scale'. Questo pu\u00f2 # essere utile quando l'MCP4451 viene utilizzato per impostare i # riferimenti di tensione stepper. La \"scala\" pu\u00f2 essere impostata # sull'amperaggio stepper equivalente se l'MCP4451 fosse alla sua # massima resistenza, quindi i parametri \"wiper_x\" possono essere # specificati utilizzando il valore di amperaggio desiderato per lo # stepper. L'impostazione predefinita \u00e8 di non ridimensionare i # parametri 'wiper_x'.","title":"[mcp4451]"},{"location":"Config_Reference.html#mcp4728","text":"Convertitore digitale-analogico MCP4728 in configurazione statica collegato tramite bus I2C (\u00e8 possibile definire un numero qualsiasi di sezioni con prefisso \"mcp4728\"). [mcp4728 my_dac] #i2c_address: 96 # L'indirizzo i2c utilizzato dal chip sul bus i2c. Il valore predefinito # \u00e8 96. #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni I2C comuni\" per una descrizione # dei parametri di cui sopra. #channel_a: #channel_b: #channel_c: #channel_d: # Il valore su cui impostare staticamente il canale MCP4728 # specificato. Questo \u00e8 in genere impostato su un numero compreso # tra 0,0 e 1,0 con 1,0 come tensione pi\u00f9 alta (2,048 V) e 0,0 come # tensione pi\u00f9 bassa. Tuttavia, l'intervallo pu\u00f2 essere modificato con # il parametro 'scale' (vedi sotto). Se un canale non \u00e8 specificato, # non viene configurato. #scale: # Questo parametro pu\u00f2 essere utilizzato per modificare il modo # in cui vengono interpretati i parametri 'channel_x'. Se forniti, i # parametri 'channel_x' dovrebbero essere compresi tra 0.0 e 'scale'. # Questo pu\u00f2 essere utile quando l'MCP4728 viene utilizzato per # impostare i riferimenti di tensione stepper. La \"scala\" pu\u00f2 essere # impostata sull'amperaggio stepper equivalente se l'MCP4728 # fosse alla sua tensione pi\u00f9 alta (2,048 V), e quindi i parametri # \"channel_x\" possono essere specificati utilizzando il valore di # amperaggio desiderato per lo stepper. L'impostazione # predefinita \u00e8 di non ridimensionare i parametri 'channel_x'.","title":"[mcp4728]"},{"location":"Config_Reference.html#mcp4018","text":"Digipot MCP4018 configurato staticamente collegato tramite due pin gpio \"bit banging\" (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"mcp4018\"). [mcp4018 my_digipot] scl_pin: # Il pin \"clock\" SCL. Questo parametro deve essere fornito. sda_pin: # Il pin \"dati\" SDA. Questo parametro deve essere fornito. wiper: # Il valore su cui impostare staticamente il \"Wiper\" MCP4018 # specificato. Questo \u00e8 in genere impostato su un numero compreso # tra 0,0 e 1,0 con 1,0 come resistenza pi\u00f9 alta e 0,0 come resistenza # pi\u00f9 bassa. Tuttavia, l'intervallo pu\u00f2 essere modificato con il # parametro 'scale' (vedi sotto). Questo parametro deve essere fornito. #scale: # Questo parametro pu\u00f2 essere utilizzato per modificare il modo in # cui viene interpretato il parametro 'wiper'. Se fornito, il parametro # 'wiper' dovrebbe essere compreso tra 0.0 e 'scale'. Questo pu\u00f2 essere # utile quando l'MCP4018 viene utilizzato per impostare i riferimenti di # tensione stepper. La \"scala\" pu\u00f2 essere impostata sull'amperaggio # stepper equivalente se l'MCP4018 \u00e8 alla sua massima resistenza, # quindi \u00e8 possibile specificare il parametro \"wiper\" utilizzando il # valore di amperaggio desiderato per lo stepper. L'impostazione # predefinita \u00e8 di non ridimensionare il parametro 'wiper'.","title":"[mcp4018]"},{"location":"Config_Reference.html#supporto-display","text":"","title":"Supporto display"},{"location":"Config_Reference.html#display","text":"Supporto per un display collegato al microcontrollore. [display] lcd_type: # The type of LCD chip in use. This may be \"hd44780\", \"hd44780_spi\", # \"st7920\", \"emulated_st7920\", \"uc1701\", \"ssd1306\", or \"sh1106\". # See the display sections below for information on each type and # additional parameters they provide. This parameter must be # provided. #display_group: # The name of the display_data group to show on the display. This # controls the content of the screen (see the \"display_data\" section # for more information). The default is _default_20x4 for hd44780 # displays and _default_16x4 for other displays. #menu_timeout: # Timeout for menu. Being inactive this amount of seconds will # trigger menu exit or return to root menu when having autorun # enabled. The default is 0 seconds (disabled) #menu_root: # Name of the main menu section to show when clicking the encoder # on the home screen. The defaults is __main, and this shows the # the default menus as defined in klippy/extras/display/menu.cfg #menu_reverse_navigation: # When enabled it will reverse up and down directions for list # navigation. The default is False. This parameter is optional. #encoder_pins: # The pins connected to encoder. 2 pins must be provided when using # encoder. This parameter must be provided when using menu. #encoder_steps_per_detent: # How many steps the encoder emits per detent (\"click\"). If the # encoder takes two detents to move between entries or moves two # entries from one detent, try changing this. Allowed values are 2 # (half-stepping) or 4 (full-stepping). The default is 4. #click_pin: # The pin connected to 'enter' button or encoder 'click'. This # parameter must be provided when using menu. The presence of an # 'analog_range_click_pin' config parameter turns this parameter # from digital to analog. #back_pin: # The pin connected to 'back' button. This parameter is optional, # menu can be used without it. The presence of an # 'analog_range_back_pin' config parameter turns this parameter from # digital to analog. #up_pin: # The pin connected to 'up' button. This parameter must be provided # when using menu without encoder. The presence of an # 'analog_range_up_pin' config parameter turns this parameter from # digital to analog. #down_pin: # The pin connected to 'down' button. This parameter must be # provided when using menu without encoder. The presence of an # 'analog_range_down_pin' config parameter turns this parameter from # digital to analog. #kill_pin: # The pin connected to 'kill' button. This button will call # emergency stop. The presence of an 'analog_range_kill_pin' config # parameter turns this parameter from digital to analog. #analog_pullup_resistor: 4700 # The resistance (in ohms) of the pullup attached to the analog # button. The default is 4700 ohms. #analog_range_click_pin: # The resistance range for a 'enter' button. Range minimum and # maximum comma-separated values must be provided when using analog # button. #analog_range_back_pin: # The resistance range for a 'back' button. Range minimum and # maximum comma-separated values must be provided when using analog # button. #analog_range_up_pin: # The resistance range for a 'up' button. Range minimum and maximum # comma-separated values must be provided when using analog button. #analog_range_down_pin: # The resistance range for a 'down' button. Range minimum and # maximum comma-separated values must be provided when using analog # button. #analog_range_kill_pin: # The resistance range for a 'kill' button. Range minimum and # maximum comma-separated values must be provided when using analog # button.","title":"[display]"},{"location":"Config_Reference.html#display-hd44780","text":"Informazioni sulla configurazione dei display hd44780 (utilizzati nei display di tipo \"RepRapDiscount 2004 Smart Controller\"). [display] lcd_type: hd44780 # Set to \"hd44780\" for hd44780 displays. rs_pin: e_pin: d4_pin: d5_pin: d6_pin: d7_pin: # The pins connected to an hd44780 type lcd. These parameters must # be provided. #hd44780_protocol_init: True # Perform 8-bit/4-bit protocol initialization on an hd44780 display. # This is necessary on real hd44780 devices. However, one may need # to disable this on some \"clone\" devices. The default is True. #line_length: # Set the number of characters per line for an hd44780 type lcd. # Possible values are 20 (default) and 16. The number of lines is # fixed to 4. ...","title":"display hd44780"},{"location":"Config_Reference.html#display-hd44780_spi","text":"Informazioni sulla configurazione di un display hd44780_spi - un display 20x04 controllato tramite uno \"shift register\" hardware (che viene utilizzato nelle stampanti basate su mightyboard). [display] lcd_type: hd44780_spi # Set to \"hd44780_spi\" for hd44780_spi displays. latch_pin: spi_software_sclk_pin: spi_software_mosi_pin: spi_software_miso_pin: # The pins connected to the shift register controlling the display. # The spi_software_miso_pin needs to be set to an unused pin of the # printer mainboard as the shift register does not have a MISO pin, # but the software spi implementation requires this pin to be # configured. #hd44780_protocol_init: True # Perform 8-bit/4-bit protocol initialization on an hd44780 display. # This is necessary on real hd44780 devices. However, one may need # to disable this on some \"clone\" devices. The default is True. #line_length: # Set the number of characters per line for an hd44780 type lcd. # Possible values are 20 (default) and 16. The number of lines is # fixed to 4. ...","title":"display hd44780_spi"},{"location":"Config_Reference.html#display-st7920","text":"Informazioni sulla configurazione dei display st7920 (utilizzati nei display di tipo \"RepRapDiscount 12864 Full Graphic Smart Controller\"). [display] lcd_type: st7920 # Set to \"st7920\" for st7920 displays. cs_pin: sclk_pin: sid_pin: # The pins connected to an st7920 type lcd. These parameters must be # provided. ...","title":"display st7920"},{"location":"Config_Reference.html#display-emulazione-emulated_st7920","text":"Informazioni sulla configurazione di un display st7920 emulato, presenti in alcuni \"dispositivi touchscreen da 2,4 pollici\" e simili. [display] lcd_type: emulated_st7920 # Set to \"emulated_st7920\" for emulated_st7920 displays. en_pin: spi_software_sclk_pin: spi_software_mosi_pin: spi_software_miso_pin: # The pins connected to an emulated_st7920 type lcd. The en_pin # corresponds to the cs_pin of the st7920 type lcd, # spi_software_sclk_pin corresponds to sclk_pin and # spi_software_mosi_pin corresponds to sid_pin. The # spi_software_miso_pin needs to be set to an unused pin of the # printer mainboard as the st7920 as no MISO pin but the software # spi implementation requires this pin to be configured. ...","title":"display emulazione emulated_st7920"},{"location":"Config_Reference.html#display-uc1701","text":"Informazioni sulla configurazione dei display uc1701 (utilizzati nei display di tipo \"MKS Mini 12864\"). [display] lcd_type: uc1701 # Set to \"uc1701\" for uc1701 displays. cs_pin: a0_pin: # The pins connected to a uc1701 type lcd. These parameters must be # provided. #rst_pin: # The pin connected to the \"rst\" pin on the lcd. If it is not # specified then the hardware must have a pull-up on the # corresponding lcd line. #contrast: # The contrast to set. The value may range from 0 to 63 and the # default is 40. ...","title":"display uc1701"},{"location":"Config_Reference.html#display-ssd1306-e-sh1106","text":"Informazioni sulla configurazione dei display ssd1306 e sh1106. [display] lcd_type: # Set to either \"ssd1306\" or \"sh1106\" for the given display type. #i2c_mcu: #i2c_bus: #i2c_speed: # Optional parameters available for displays connected via an i2c # bus. See the \"common I2C settings\" section for a description of # the above parameters. #cs_pin: #dc_pin: #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # The pins connected to the lcd when in \"4-wire\" spi mode. See the # \"common SPI settings\" section for a description of the parameters # that start with \"spi_\". The default is to use i2c mode for the # display. #reset_pin: # A reset pin may be specified on the display. If it is not # specified then the hardware must have a pull-up on the # corresponding lcd line. #contrast: # The contrast to set. The value may range from 0 to 256 and the # default is 239. #vcomh: 0 # Set the Vcomh value on the display. This value is associated with # a \"smearing\" effect on some OLED displays. The value may range # from 0 to 63. Default is 0. #invert: False # TRUE inverts the pixels on certain OLED displays. The default is # False. #x_offset: 0 # Set the horizontal offset value on SH1106 displays. The default is # 0. ...","title":"display ssd1306 e sh1106"},{"location":"Config_Reference.html#display_data","text":"Supporto per la visualizzazione di dati personalizzati su uno schermo LCD. \u00c8 possibile creare un numero qualsiasi di gruppi di visualizzazione e un numero qualsiasi di elementi di dati in quei gruppi. Il display mostrer\u00e0 tutti gli elementi di dati per un determinato gruppo se l'opzione display_group nella sezione [display] \u00e8 impostata sul nome del gruppo specificato. Viene creato automaticamente un default set of display groups . \u00c8 possibile sostituire o estendere questi elementi display_data sovrascrivendo i valori predefiniti nel file di configurazione principale printer.cfg . [display_data my_group_name my_data_name] position: # Comma separated row and column of the display position that should # be used to display the information. This parameter must be # provided. text: # The text to show at the given position. This field is evaluated # using command templates (see docs/Command_Templates.md). This # parameter must be provided.","title":"[display_data]"},{"location":"Config_Reference.html#display_template","text":"Visualizza il testo dei dati \"macro\" (\u00e8 possibile definire un numero qualsiasi di sezioni con un prefisso display_template). Per informazioni sul template, vedere il documento template di comandi . Questa funzione consente di ridurre le definizioni ripetitive nelle sezioni display_data. Si pu\u00f2 usare la funzione incorporata render() nelle sezioni display_data per valutare un template. Per esempio, se si dovesse definire [display_template my_template] allora si potrebbe usare { render('my_template') } in una sezione display_data. Questa funzione pu\u00f2 essere utilizzata anche per aggiornamenti LED continui utilizzando il comando SET_LED_TEMPLATE . [display_template my_template_name] #param_<name>: # One may specify any number of options with a \"param_\" prefix. The # given name will be assigned the given value (parsed as a Python # literal) and will be available during macro expansion. If the # parameter is passed in the call to render() then that value will # be used during macro expansion. For example, a config with # \"param_speed = 75\" might have a caller with # \"render('my_template_name', param_speed=80)\". Parameter names may # not use upper case characters. text: # The text to return when the this template is rendered. This field # is evaluated using command templates (see # docs/Command_Templates.md). This parameter must be provided.","title":"[display_template]"},{"location":"Config_Reference.html#display_glyph","text":"Visualizza un glifo personalizzato sui display che lo supportano. Al nome dato verranno assegnati i dati di visualizzazione dati che possono quindi essere referenziati nei modelli di visualizzazione con il loro nome circondato da due simboli \"tilde\" per esempio ~my_display_glyph~ Vedere sample-glyphs.cfg per alcuni esempi. [display_glyph my_display_glyph] #data: # The display data, stored as 16 lines consisting of 16 bits (1 per # pixel) where '.' is a blank pixel and '*' is an on pixel (e.g., # \"****************\" to display a solid horizontal line). # Alternatively, one can use '0' for a blank pixel and '1' for an on # pixel. Put each display line into a separate config line. The # glyph must consist of exactly 16 lines with 16 bits each. This # parameter is optional. #hd44780_data: # Glyph to use on 20x4 hd44780 displays. The glyph must consist of # exactly 8 lines with 5 bits each. This parameter is optional. #hd44780_slot: # The hd44780 hardware index (0..7) to store the glyph at. If # multiple distinct images use the same slot then make sure to only # use one of those images in any given screen. This parameter is # required if hd44780_data is specified.","title":"[display_glyph]"},{"location":"Config_Reference.html#display-my_extra_display","text":"Se in printer.cfg \u00e8 stata definita una sezione primaria [display] come mostrato sopra, \u00e8 possibile definire pi\u00f9 display ausiliari. Si noti che i display ausiliari attualmente non supportano la funzionalit\u00e0 del menu, quindi non supportano le opzioni del \"menu\" o la configurazione dei pulsanti. [display my_extra_display] # Vedere la sezione \"display\" per i parametri disponibili.","title":"[display my_extra_display]"},{"location":"Config_Reference.html#menu","text":"Menu display lcd personalizzabili. Viene creato automaticamente un default set of menus . \u00c8 possibile sostituire o estendere il menu sovrascrivendo le impostazioni predefinite nel file di configurazione principale printer.cfg . Consulta il command template document per informazioni sugli attributi di menu disponibili durante il rendering del modello. # Common parameters available for all menu config sections. #[menu __some_list __some_name] #type: disabled # Permanently disabled menu element, only required attribute is 'type'. # Allows you to easily disable/hide existing menu items. #[menu some_name] #type: # One of command, input, list, text: # command - basic menu element with various script triggers # input - same like 'command' but has value changing capabilities. # Press will start/stop edit mode. # list - it allows for menu items to be grouped together in a # scrollable list. Add to the list by creating menu # configurations using \"some_list\" as a prefix - for # example: [menu some_list some_item_in_the_list] # vsdlist - same as 'list' but will append files from virtual sdcard # (will be removed in the future) #name: # Name of menu item - evaluated as a template. #enable: # Template that evaluates to True or False. #index: # Position where an item needs to be inserted in list. By default # the item is added at the end. #[menu some_list] #type: list #name: #enable: # See above for a description of these parameters. #[menu some_list some_command] #type: command #name: #enable: # See above for a description of these parameters. #gcode: # Script to run on button click or long click. Evaluated as a # template. #[menu some_list some_input] #type: input #name: #enable: # See above for a description of these parameters. #input: # Initial value to use when editing - evaluated as a template. # Result must be float. #input_min: # Minimum value of range - evaluated as a template. Default -99999. #input_max: # Maximum value of range - evaluated as a template. Default 99999. #input_step: # Editing step - Must be a positive integer or float value. It has # internal fast rate step. When \"(input_max - input_min) / # input_step > 100\" then fast rate step is 10 * input_step else fast # rate step is same input_step. #realtime: # This attribute accepts static boolean value. When enabled then # gcode script is run after each value change. The default is False. #gcode: # Script to run on button click, long click or value change. # Evaluated as a template. The button click will trigger the edit # mode start or end.","title":"[menu]"},{"location":"Config_Reference.html#sensori-di-filamento","text":"","title":"Sensori di filamento"},{"location":"Config_Reference.html#filament_switch_sensor","text":"Sensore del filamento a interruttore. Supporto per l'inserimento del filamento e il rilevamento dell'esaurimento tramite un sensore interruttore, come un interruttore di fine corsa. Per ulteriori informazioni, vedere command reference . [filament_switch_sensor my_sensor] #pause_on_runout: True # Se impostato su True, verr\u00e0 eseguita una PAUSA immediatamente # dopo il rilevamento di un'eccentricit\u00e0. Si noti che se pause_on_runout # \u00e8 False e runout_gcode viene omesso, il rilevamento dell'eccentricit\u00e0 # \u00e8 disabilitato. L'impostazione predefinita \u00e8 Vero. #runout_gcode: # Un elenco di comandi G-Code da eseguire dopo il rilevamento di # un'esaurimento del filamento. Vedi docs/Command_Templates.md # per il formato G-Code. Se pause_on_runout \u00e8 impostato su True, # questo codice G verr\u00e0 eseguito al termine della PAUSA. # L'impostazione predefinita \u00e8 di non eseguire alcun comando G-Code. #insert_gcode: # Un elenco di comandi G-Code da eseguire dopo il rilevamento # dell'inserimento di filamento. Vedi docs/Command_Templates.md # per il formato G-Code. L'impostazione predefinita non prevede # l'esecuzione di alcun comando G-Code, che disabilita il rilevamento # dell'inserimento. #event_delay: 3.0 # Il tempo minimo in secondi per ritardare tra gli eventi. Gli eventi # attivati durante questo periodo di tempo verranno ignorati # silenziosamente. L'impostazione predefinita \u00e8 3 secondi. #pause_delay: 0.5 # Il tempo di ritardo, in secondi, tra l'invio del comando pause e # l'esecuzione di runout_gcode. Potrebbe essere utile aumentare # questo ritardo se OctoPrint mostra uno strano comportamento # di pausa. Il valore predefinito \u00e8 0,5 secondi. #switch_pin: # Il pin su cui \u00e8 collegato l'interruttore. # Questo parametro deve essere fornito.","title":"[filament_switch_sensor]"},{"location":"Config_Reference.html#filament_motion_sensor","text":"Sensore di movimento del filamento. Supporto per l'inserimento del filamento e il rilevamento dell'esaurimento mediante un codificatore che commuta il pin di uscita durante il movimento del filamento attraverso il sensore. Per ulteriori informazioni, vedere command reference . [filament_motion_sensor my_sensor] detection_length: 7.0 # La lunghezza minima di filamento tirato attraverso il sensore # per attivare un cambio di stato su switch_pin # Il default \u00e8 7 mm. extruder: # Nome della sezione extruder section con cui questo sensore \u00e8 associato. # Questo parametro deve essere fornito. switch_pin: #pause_on_runout: #runout_gcode: #insert_gcode: #event_delay: #pause_delay: # Vedere la sezione \"filament_switch_sensor\" per la descrizione dei # parametri riportati sopra.","title":"[filament_motion_sensor]"},{"location":"Config_Reference.html#tsl1401cl_filament_width_sensor","text":"Sensore di larghezza del filamento basato su TSLl401CL. Consulta la guida per ulteriori informazioni. sl1401cl_filament_width_sensor] #pin: #diametro nominale del filamento predefinito: 1,75 (mm) # Differenza massima consentita del diametro del filamento in mm. #max_difference: 0.2 # La distanza dal sensore alla camera di fusione in mm. #measurement_delay: 100","title":"[tsl1401cl_filament_width_sensor]"},{"location":"Config_Reference.html#hall_filament_width_sensor","text":"Sensore di larghezza del filamento ad effetto Hall (vedere Sensore di larghezza del filamento Hall ). [hall_filament_width_sensor] adc1: adc2: # Pin di ingresso analogico collegati al sensore. # Questi parametri devono essere forniti. #cal_dia1: 1.50 #cal_dia2: 2.00 # I valori di calibrazione (in mm) per i sensori. Il valore predefinito # \u00e8 1.50 per cal_dia1 e 2.00 per cal_dia2. #raw_dia1: 9500 #raw_dia2: 10500 # I valori di calibrazione grezzi per i sensori. Il valore predefinito \u00e8 # 9500 per raw_dia1 e 10500 per raw_dia2. #default_nominal_filament_diameter: 1.75 # Il diametro nominale del filamento. # Questo parametro deve essere fornito. #max_difference: 0.200 # Differenza massima consentita del diametro del filamento in # millimetri (mm). Se la differenza tra il diametro nominale del # filamento e l'uscita del sensore \u00e8 maggiore di +- max_difference, # il moltiplicatore di estrusione viene riportato a %100. # Il valore predefinito \u00e8 0,200. #measurement_delay: 70 # La distanza dal sensore alla camera di fusione/hot-end in # millimetri (mm). Il filamento tra il sensore e l'hot-end verr\u00e0 # trattato come default_nominal_filament_diameter. Il modulo # host funziona con la logica FIFO. Mantiene ogni valore e posizione # del sensore in un array e li riporta nella posizione corretta. # Questo parametro deve essere fornito. #enable: False # Sensore abilitato o disabilitato dopo l'accensione. L'impostazione predefinita \u00e8 disabilitare. #measurement_interval: 10 # La distanza approssimativa (in mm) tra le letture del sensore. # Il valore predefinito \u00e8 10 mm. #logging: False # Il log esterno al terminale e klipper.log pu\u00f2 essere # attivato|off tramite comando. #min_diameter: 1.0 # Diametro minimo per trigger filament_switch_sensor virtuale. #use_current_dia_while_delay: False # Utilizzare il diametro attuale invece del diametro nominale # mentre il ritardo di misurazione non \u00e8 trascorso. #pause_on_runout: #runout_gcode: #insert_gcode: #event_delay: #pause_delay: # Vedere la sezione \"filament_switch_sensor\" per una # descrizione dei parametri di cui sopra.","title":"[hall_filament_width_sensor]"},{"location":"Config_Reference.html#supporto-hardware-per-specifica-scheda","text":"","title":"Supporto hardware per specifica scheda"},{"location":"Config_Reference.html#sx1509","text":"Configurare un'espansione SX1509 da I2C a GPIO. A causa del ritardo dovuto alla comunicazione I2C, NON utilizzare i pin SX1509 come abilitazione stepper, pin step o dir o qualsiasi altro pin che richieda un bit banging veloce. Sono utilizzati al meglio come uscite digitali statiche o controllate da gcode o pin hardware-pwm per es. fan. Si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"sx1509\". Ogni espansione fornisce un set di 16 pin (da sx1509_my_sx1509:PIN_0 a sx1509_my_sx1509:PIN_15) che possono essere utilizzati nella configurazione della stampante. Per un esempio, vedere il file generic-duet2-duex.cfg . [sx1509 my_sx1509] i2c_address: # Indirizzo I2C utilizzato da questa espansione. A seconda dei # ponticelli hardware \u00e8 uno dei seguenti indirizzi: 62 63 112 113. # Questo parametro deve essere fornito. #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni comuni I2C\" per una # escrizione dei parametri di cui sopra. #i2c_bus: # Se l'implementazione I2C del tuo microcontrollore supporta # pi\u00f9 bus I2C, puoi specificare qui il nome del bus. L'impostazione # predefinita prevede l'utilizzo del bus i2c del microcontrollore # predefinito.","title":"[sx1509]"},{"location":"Config_Reference.html#samd_sercom","text":"Configurazione SAMD SERCOM per specificare quali pin utilizzare su un determinato SERCOM. Si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"samd_sercom\". Ogni SERCOM deve essere configurato prima di utilizzarlo come periferica SPI o I2C. Posiziona questa sezione di configurazione sopra qualsiasi altra sezione che fa uso di bus SPI o I2C. [samd_sercom my_sercom] sercom: # Il nome del bus Sercom da configurare nel microcontrollore. I nomi # disponibili sono \"sercom0\", \"sercom1\", ecc. # Questo parametro deve essere fornito. tx_pin: # Pin MOSI per la comunicazione SPI o pin SDA (dati) per la # comunicazione I2C. Il pin deve avere una configurazione pinmux # valida per la specifica periferica SERCOM. # Questo parametro deve essere fornito. #rx_pin: # Pin MISO per la comunicazione SPI. Questo pin non viene utilizzato # per la comunicazione I2C (I2C utilizza tx_pin sia per l'invio che per la # ricezione). Il pin deve avere una configurazione pinmux valida per la # specifica periferica SERCOM. Questo parametro \u00e8 facoltativo. clk_pin: # Pin CLK per la comunicazione SPI o pin SCL (clock) per la # comunicazione I2C. Il pin deve avere una configurazione pinmux # valida per la specifica periferica SERCOM. Questo parametro deve # essere fornito.","title":"[samd_sercom]"},{"location":"Config_Reference.html#adc_scaled","text":"Scaling analogico di Duet2 Maestro tramite letture vref e vssa. La definizione di una sezione adc_scaled abilita pin adc virtuali (come \"my_name:PB0\") che vengono regolati automaticamente dai pin di monitoraggio vref e vssa della scheda. Assicurati di definire questa sezione di configurazione sopra qualsiasi sezione di configurazione che utilizza uno di questi pin virtuali. Per un esempio, vedere il file generic-duet2-maestro.cfg . [adc_scaled my_name] vref_pin: # The ADC pin to use for VREF monitoring. This parameter must be # provided. vssa_pin: # The ADC pin to use for VSSA monitoring. This parameter must be # provided. #smooth_time: 2.0 # A time value (in seconds) over which the vref and vssa # measurements will be smoothed to reduce the impact of measurement # noise. The default is 2 seconds.","title":"[adc_scaled]"},{"location":"Config_Reference.html#replicape","text":"Supporto per Replicape: vedere la guida beaglebone e il file generic-replicape.cfg per un esempio. # La sezione di configurazione \"replicape\" aggiunge i pin di abilitazione # dello stepper virtuale \"replicape: stepper_x_enable\" (per stepper X, Y, Z, # E e H) e i pin di uscita PWM \"replicape: power_x\" (per hotbed, e, h, fan0, # fan1 , fan2 e fan3) che possono quindi essere utilizzati altrove nel file # di configurazione. [replicape] revision: # La revisione dell'hardware di replicape. Attualmente \u00e8 supportata solo # la revisione \"B3\". Questo parametro deve essere fornito. #enable_pin: !gpio0_20 # Il pin di abilitazione globale dei replicape. L'impostazione predefinita # \u00e8 !gpio0_20 (aka P9_41). host_mcu: # Il nome della sezione mcu config che comunica con l'istanza mcu # \"linux process\" di Klipper. Questo parametro deve essere fornito. #standstill_power_down: False # Questo parametro controlla la linea CFG6_ENN su tutti i motori # passo-passo. True imposta le righe di abilitazione su \"open\". # L'impostazione predefinita \u00e8 Falso. #stepper_x_microstep_mode: #stepper_y_microstep_mode: #stepper_z_microstep_mode: #stepper_e_microstep_mode: #stepper_h_microstep_mode: # Questo parametro controlla i pin CFG1 e CFG2 del driver del motore # passo-passo specificato. Le opzioni disponibili sono: disabilita, 1, 2, # spread2, 4, 16, spread4, spread16, stealth4 e stealth16. L'impostazione # predefinita \u00e8 disabilitata. #stepper_x_current: #stepper_y_current: #stepper_z_current: #stepper_e_current: #stepper_h_current: # La corrente massima configurata (in Amp) del driver del motore # passo-passo. Questo parametro deve essere fornito se lo stepper non # \u00e8 in modalit\u00e0 disabilitazione. #stepper_x_chopper_off_time_high: #stepper_y_chopper_off_time_high: #stepper_z_chopper_off_time_high: #stepper_e_chopper_off_time_high: #stepper_h_chopper_off_time_high: # Questo parametro controlla il pin CFG0 del driver del motore # passo-passo (True imposta CFG0 alto, False lo imposta basso). # L'impostazione predefinita \u00e8 False. #stepper_x_chopper_hysteresis_high: #stepper_y_chopper_hysteresis_high: #stepper_z_chopper_hysteresis_high: #stepper_e_chopper_hysteresis_high: #stepper_h_chopper_hysteresis_high: # Questo parametro controlla il pin CFG4 del driver del motore # passo-passo (True imposta CFG4 alto, False lo imposta basso). # L'impostazione predefinita \u00e8 False. #stepper_x_chopper_blank_time_high: #stepper_y_chopper_blank_time_high: #stepper_z_chopper_blank_time_high: #stepper_e_chopper_blank_time_high: #stepper_h_chopper_blank_time_high: # Questo parametro controlla il pin CFG5 del driver del motore # passo-passo (True imposta CFG5 alto, False lo imposta basso). # L'impostazione predefinita \u00e8 True.","title":"[replicape]"},{"location":"Config_Reference.html#altri-moduli-personalizzati","text":"","title":"Altri moduli personalizzati"},{"location":"Config_Reference.html#palette2","text":"Supporto multimateriale Palette 2: fornisce un'integrazione pi\u00f9 stretta supportando i dispositivi Palette 2 in modalit\u00e0 connessa. Questo modulo richiede anche [virtual_sdcard] e [pause_resume] per la piena funzionalit\u00e0. Se si utilizza questo modulo, non utilizzare il plug-in Palette 2 per Octoprint poich\u00e9 entreranno in conflitto e 1 non si inizializzer\u00e0 correttamente, probabilmente interrompendo la stampa. Se utilizzi Octoprint e esegui lo streaming di gcode sulla porta seriale invece di stampare da virtual_sd, rimuovere M1 e M0 da Pausa dei comandi in Impostazioni > Connessione seriale > Firmware e protocollo eviter\u00e0 la necessit\u00e0 per avviare la stampa sulla tavolozza 2 e riattivare la pausa in Octoprint per avviare la stampa. [palette2] serial: # La porta seriale per la connessione alla Palette 2. #baud: 115200 # La velocit\u00e0 da utilizzare. Il valore predefinito \u00e8 115200. #feedrate_splice: 0.8 # L'avanzamento da utilizzare durante la giunzione # il valore predefinito \u00e8 0.8 #feedrate_normal: 1.0 # L'avanzamento da utilizzare dopo la giunzione # il valore predefinito \u00e8 1.0 #auto_load_speed: 2 # Avanzamento di estrusione durante il caricamento automatico # il valore predefinito \u00e8 2 (mm/s) #auto_cancel_variation: 0.1 # Annullamento automatico della stampa quando la variazione # del ping \u00e8 superiore a questa soglia","title":"[palette2]"},{"location":"Config_Reference.html#angle","text":"Supporto per sensore magnetico Hall per la lettura delle misurazioni dell'angolo del motore passo-passo utilizzando i chip SPI a1333, as5047d o tle5012b. Le misurazioni sono disponibili tramite Server API e strumento di analisi del movimento . Vedere il Riferimento G-Code per i comandi disponibili. [angle my_angle_sensor] sensor_type: # The type of the magnetic hall sensor chip. Available choices are # \"a1333\", \"as5047d\", and \"tle5012b\". This parameter must be # specified. #sample_period: 0.000400 # The query period (in seconds) to use during measurements. The # default is 0.000400 (which is 2500 samples per second). #stepper: # The name of the stepper that the angle sensor is attached to (eg, # \"stepper_x\"). Setting this value enables an angle calibration # tool. To use this feature, the Python \"numpy\" package must be # installed. The default is to not enable angle calibration for the # angle sensor. cs_pin: # The SPI enable pin for the sensor. This parameter must be provided. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # See the \"common SPI settings\" section for a description of the # above parameters.","title":"[angle]"},{"location":"Config_Reference.html#parametri-bus-comuni","text":"","title":"Parametri bus comuni"},{"location":"Config_Reference.html#impostazioni-spi-comuni","text":"I seguenti parametri sono generalmente disponibili per i dispositivi che utilizzano un bus SPI. #spi_speed: # La velocit\u00e0 SPI (in Hz) da utilizzare durante la comunicazione con il # dispositivo. L'impostazione predefinita dipende dal tipo di dispositivo. #spi_bus: # Se il microcontrollore supporta pi\u00f9 bus SPI, \u00e8 possibile specificare # qui il nome del bus del microcontrollore. L'impostazione predefinita # dipende dal tipo di microcontrollore. #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Specificare i parametri di cui sopra per utilizzare \"SPI basato su # software\". Questa modalit\u00e0 non richiede il supporto hardware del # microcontrollore (in genere \u00e8 possibile utilizzare qualsiasi pin generico). # L'impostazione predefinita \u00e8 di non utilizzare \"spi software\".","title":"Impostazioni SPI comuni"},{"location":"Config_Reference.html#impostazioni-i2c-comuni","text":"I seguenti parametri sono generalmente disponibili per i dispositivi che utilizzano un bus I2C. Si noti che l'attuale supporto del microcontrollore di Klipper per i2c generalmente non tollera il rumore di linea. Errori imprevisti sui cavi i2c possono causare la generazione di un errore di runtime da parte di Klipper. Il supporto di Klipper per il ripristino degli errori varia a seconda del tipo di microcontrollore. In genere si consiglia di utilizzare solo dispositivi i2c che si trovano sulla stessa scheda a circuito stampato del microcontrollore. La maggior parte delle implementazioni del microcontrollore Klipper supporta solo un i2c_speed di 100000. Il microcontrollore \"linux\" Klipper supporta una velocit\u00e0 400000, ma deve essere impostato nel sistema operativo e il parametro i2c_speed viene altrimenti ignorato. Il microcontrollore Klipper \"rp2040\" supporta una velocit\u00e0 di 400000 tramite il parametro i2c_speed . Tutti gli altri microcontrollori Klipper utilizzano una frequenza di 100000 e ignorano il parametro i2c_speed . #i2c_address: # L'indirizzo i2c del dispositivo. Questo deve essere specificato # come numero decimale (non in esadecimale). L'impostazione # predefinita dipende dal tipo di dispositivo. #i2c_mcu: # Il nome del microcontrollore a cui \u00e8 collegato il chip. # L'impostazione predefinita \u00e8 \"mcu\". #i2c_bus: # Se il microcontrollore supporta pi\u00f9 bus I2C, \u00e8 possibile # specificare qui il nome del bus del microcontrollore. # L'impostazione predefinita dipende dal tipo di microcontrollore. #i2c_speed: # La velocit\u00e0 I2C (in Hz) da utilizzare durante la comunicazione # con il dispositivo. L'implementazione di Klipper sulla maggior # parte dei microcontrollori \u00e8 codificata a 100000 e la modifica # di questo valore non ha alcun effetto. # Il valore predefinito \u00e8 100000.","title":"Impostazioni I2C comuni"},{"location":"Config_checks.html","text":"Controlli della configurazione \u00b6 Questo documento fornisce una lista di step per confermare le impostazioni dei pin nel file printer.cfg di Klipper. \u00c8 una buona idea eseguire questi passi dopo aver seguito i passi nel documento di installazione . In alcuni passaggi di questa guida, potrebbe essere necessario modificare il file di configurazione di Klipper. Assicuratevi di dare il comando RESTART, dopo ogni modifica al file di configurazione, per accertarsi che le modifiche abbiano effetto(scrivere \"restart\" nella scheda del terminale di Octoprint e cliccare su INVIA). E' anche consigliabile utilizzare il comando STATUS, dopo ogni RESTART, per verificare che il file di configurazione sia stato caricato correttamente. Verifica delle temperature \u00b6 Iniziare verificando che le temperature siano correttamente riportate. Navigare alla scheda temperature di Octoprint. eseguire l'istruzione Verificare che la temperatura dell'ugello e del piatto(se presente) siano presenti e non stiano aumentando. Se stessero aumentando staccare l'alimentazione alla stampante. Se le temperature non sono precise, rivedere le impostazioni \"sensor_type\" e \"sensor_pin\" per l'ugello e/o il piatto. Verifica M112 \u00b6 Da terminale dare il comando M112. Questo comando richiede a Klipper di porsi in uno stato di spengnimento. Questo causer\u00e0 la disconnessione di Octoprint da Klipper - selezionate il menu connessione e premete il pulsante \"Connetti\" per riconnettere Octoprint. Selezionate poi la scheda temperatura e verificate che le temperature si stiano aggiornando e che non stiano aumentando. Se stanno aumentando, staccate l'alimentazione della stampante. Il comando M112 mette Klipper in uno stato di spegnimento. Per farlo uscire da questo stato, dare il comando FIRMWARE_RESTART sempre da terminale di Octoprint. Verifica i riscaldatori \u00b6 Passare alla pagina della temperatura su Octoprint . Nella casella della temperatura \"Tool\", digitare 50 seguito dal tasto enter .La temperatura dell'estrusore indicata nel grafico, dovrebbe iniziare ad aumentare (entro 30 secondi circa). Quindi vai alla casella a scorrimento della temperatura \"Tool\" e seleziona \"Off\". Dopo alcuni minuti la temperatura dovrebbe tornare al valore di temperatura ambiente iniziale. Se la temperatura non aumenta, verifica l'impostazione \"heater_pin\" nella configurazione. Se la stampante ha il piatto riscaldato, eseguire nuovamente il test indicato in precedenza ma per il piatto. Verifica il pin di abilitazione del motore passo-passo \u00b6 Verificare che tutti gli assi della stampante possano muoversi manualmente in modo libero (con i motori passo-passo sono disabilitati). In caso contrario, inserire un comando M84 per disabilitare i motori. Se uno degli assi non pu\u00f2 ancora muoversi in modo libero, verificare la configurazione \"enable_pin\" del driver del motore passo-passo corrispondente. Sulla maggior parte dei driver per motori passo-passo, il pin di abilitazione del motore \u00e8 \"attivo basso\" e quindi il pin di abilitazione dovrebbe avere un \"!\" prima del pin (ad esempio, \"enable_pin: !ar38\"). Verifica i finecorsa \u00b6 Spostare manualmente tutti gli assi della stampante in modo che nessuno di essi sia a contatto con un finecorsa. Invia un comando QUERY_ENDSTOPS tramite il terminale di Octoprint. Dovrebbe visualizzare lo stato corrente di tutti i finecorsa configurati e gli stessi dovrebbero essere nello stato di \"aperto\". Per ciascuno degli finecorsa, eseguire nuovamente il comando QUERY_ENDSTOPS mentre si attiva manualmente il finecorsa corrispondente, dovrebbe rispondere con \"TRIGGERED\". Se il finecorsa \u00e8 invertito (viene indicato \"aperto\" quando \u00e8 attivato e viceversa), aggiungere un \"!\" alla definizione del pin (ad esempio, \"endstop_pin: ^!ar3\"), oppure togliere \"!\" se invece \u00e8 presente. Se il segnale del finecorsa non cambia , pu\u00f2 significare che il fine corsa \u00e8 collegato a un pin diverso. Tuttavia, potrebbe essere necessaria una modifica all'impostazione pullup del pin (il '^' all'inizio del istruzione \"endstop_pin\".La maggior parte delle stampanti utilizzano un resistore pullup e l'istruzione '^' dovrebbe essere presente). Verifica dei motori passo-passo \u00b6 Utilizzare il comando STEPPER_BUZZ per verificare le connessioni di ciascun motore passo-passo. Inizia posizionando manualmente in un punto intermedio dell'asse, quindi esegui l'istruzione STEPPER_BUZZ STEPPER=stepper_x . Il comando STEPPER_BUZZ far\u00e0 muovere il motore passo-passo di un millimetro in direzione avanti e poi torner\u00e0 in posizione iniziale. (Se il finecorsa \u00e8 definito come position_endstop=0, all'inizio di ogni movimento lo motore passo-passo si allontaner\u00e0 dal finecorsa.) Eseguir\u00e0 questa movimento oscillatorio per dieci volte. Se il motore passo-passo non si muove , verifica le impostazioni \"enable_pin\" e \"step_pin\" sul driver. Se il motore passo-passo si muove ma non torna nella sua posizione originale, verificare l'impostazione \"dir_pin\". Se il motore passo-passo oscilla in una direzione errata, generalmente sta a significare che \u00e8 necessario invertire il \"dir_pin\" del l'asse. Questo viene fatto aggiungendo un istruzione '!' alla \"dir_pin\" nel file di configurazione della stampante (o rimuovendolo se ne esiste gi\u00e0 presente). Se il motore passo-passo si muove di pi\u00f9 o di meno di un millimetro, verificare l'impostazione \"rotation_distance\". Eseguire il test sopra descritto per ogni motore passo-passo definito nel file di configurazione. (Impostare il parametro STEPPER del comando STEPPER_BUZZ sul nome della sezione di configurazione da testare.) Se non \u00e8 presente il filamento nell'estrusore, \u00e8 possibile utilizzare STEPPER_BUZZ per verificare la connessione del motore dell'estrusore (usare STEPPER=estrusore). In caso contrario, \u00e8 meglio testare il motore dell'estrusore per conto suo (vedere la sezione successiva). Dopo aver verificato tutti i finecorsa e aver verificato tutti i motori passo-passo, \u00e8 necessario testare il sistema di homing. Scrivere un comando G28 per portare a home tutti gli assi. Rimuovere l'alimentazione dalla stampante se l'istruzione non funziona correttamente. Se necessario, ripetere i passaggi di verifica del finecorsa e del motore passo-passo. Verifica il motore dell'estrusore \u00b6 Per testare il motore dell'estrusore sar\u00e0 necessario riscaldare l'estrusore alla temperatura di stampa. Passare alla pagina della temperatura Octoprint e selezionare una temperatura di target nel men\u00f9 a tendina della temperatura (o inserire manualmente una temperatura opportuna). Attendere che la stampante raggiunga la temperatura desiderata. Quindi vai alla pagina di controllo di Octoprint e fai clic sul pulsante \"Estrudi\". Verificare che il motore dell'estrusore giri nella direzione corretta. In caso contrario, vedere i suggerimenti per la risoluzione dei problemi nella sezione precedente per verificare le impostazioni \"enable_pin\", \"step_pin\" e \"dir_pin\" per l'estrusore. Calibrare le impostazioni del PID \u00b6 Klipper supporta il sistema controllo PID per iriscaldatori dell'estrusore e del piatto. Per utilizzare questo sistema di controllo, \u00e8 necessario calibrare le impostazioni PID su ciascuna stampante (le impostazioni PID presenti in altri firmware o nei file di configurazione di esempio spesso funzionano male). Per calibrare il PID dell'estrusore, accedere alla pagina del terminale OctoPrint ed eseguire il comando PID_CALIBRATE. Ad esempio: PID_CALIBRATE HEATER=estrusore TARGET=170 Al termine del test di ottimizzazione, eseguire l'istruzione SAVE_CONFIG per aggiornare il file printer.cfg con le nuove impostazioni PID. Se la stampante ha un piatto riscaldato ed \u00e8 dotato di azionamento con funzione PWM (Pulse Width Modulation), si consiglia di utilizzare il controllo PID anche per il piatto. (Quando il riscaldatore del piatto \u00e8 controllato utilizzando l'algoritmo PID, potrebbe accendersi e spegnersi dieci volte al secondo, il che potrebbe non essere adatto per i riscaldatori che utilizzano un rel\u00e8 elettromeccanico.) Un tipico comando per calibrazione PID del piatto \u00e8: PID_CALIBRATE HEATER=heater_bed TARGET= 60 Passi sucessivi \u00b6 Questa guida ha lo scopo di aiutare la verifica delle impostazioni di base riferite ai pin presenti nel file di configurazione di Klipper. Assicurati di leggere la guida bed leveling . Consulta anche il documento Slicers per informazioni sulla configurazione di un software slicer con Klipper. Dopo aver verificato che la stampa di base funziona, \u00e8 una buona prassi procedere con la calibrazione avanzamento pressione . Potrebbe essere necessario eseguire altri tipi di calibrazione di dettaglio in riferimento alla stampante: sono disponibili numerose guide online per questo scopo (ad esempio, eseguire una ricerca sul Web per \"calibrazione della stampante 3d\"). Ad esempio, se si verifica l'effetto chiamato risonanza, \u00e8 possibile provare a seguire la calibrazione tramite l'istruzione compensazione della risonanza .","title":"Controlli della configurazione"},{"location":"Config_checks.html#controlli-della-configurazione","text":"Questo documento fornisce una lista di step per confermare le impostazioni dei pin nel file printer.cfg di Klipper. \u00c8 una buona idea eseguire questi passi dopo aver seguito i passi nel documento di installazione . In alcuni passaggi di questa guida, potrebbe essere necessario modificare il file di configurazione di Klipper. Assicuratevi di dare il comando RESTART, dopo ogni modifica al file di configurazione, per accertarsi che le modifiche abbiano effetto(scrivere \"restart\" nella scheda del terminale di Octoprint e cliccare su INVIA). E' anche consigliabile utilizzare il comando STATUS, dopo ogni RESTART, per verificare che il file di configurazione sia stato caricato correttamente.","title":"Controlli della configurazione"},{"location":"Config_checks.html#verifica-delle-temperature","text":"Iniziare verificando che le temperature siano correttamente riportate. Navigare alla scheda temperature di Octoprint. eseguire l'istruzione Verificare che la temperatura dell'ugello e del piatto(se presente) siano presenti e non stiano aumentando. Se stessero aumentando staccare l'alimentazione alla stampante. Se le temperature non sono precise, rivedere le impostazioni \"sensor_type\" e \"sensor_pin\" per l'ugello e/o il piatto.","title":"Verifica delle temperature"},{"location":"Config_checks.html#verifica-m112","text":"Da terminale dare il comando M112. Questo comando richiede a Klipper di porsi in uno stato di spengnimento. Questo causer\u00e0 la disconnessione di Octoprint da Klipper - selezionate il menu connessione e premete il pulsante \"Connetti\" per riconnettere Octoprint. Selezionate poi la scheda temperatura e verificate che le temperature si stiano aggiornando e che non stiano aumentando. Se stanno aumentando, staccate l'alimentazione della stampante. Il comando M112 mette Klipper in uno stato di spegnimento. Per farlo uscire da questo stato, dare il comando FIRMWARE_RESTART sempre da terminale di Octoprint.","title":"Verifica M112"},{"location":"Config_checks.html#verifica-i-riscaldatori","text":"Passare alla pagina della temperatura su Octoprint . Nella casella della temperatura \"Tool\", digitare 50 seguito dal tasto enter .La temperatura dell'estrusore indicata nel grafico, dovrebbe iniziare ad aumentare (entro 30 secondi circa). Quindi vai alla casella a scorrimento della temperatura \"Tool\" e seleziona \"Off\". Dopo alcuni minuti la temperatura dovrebbe tornare al valore di temperatura ambiente iniziale. Se la temperatura non aumenta, verifica l'impostazione \"heater_pin\" nella configurazione. Se la stampante ha il piatto riscaldato, eseguire nuovamente il test indicato in precedenza ma per il piatto.","title":"Verifica i riscaldatori"},{"location":"Config_checks.html#verifica-il-pin-di-abilitazione-del-motore-passo-passo","text":"Verificare che tutti gli assi della stampante possano muoversi manualmente in modo libero (con i motori passo-passo sono disabilitati). In caso contrario, inserire un comando M84 per disabilitare i motori. Se uno degli assi non pu\u00f2 ancora muoversi in modo libero, verificare la configurazione \"enable_pin\" del driver del motore passo-passo corrispondente. Sulla maggior parte dei driver per motori passo-passo, il pin di abilitazione del motore \u00e8 \"attivo basso\" e quindi il pin di abilitazione dovrebbe avere un \"!\" prima del pin (ad esempio, \"enable_pin: !ar38\").","title":"Verifica il pin di abilitazione del motore passo-passo"},{"location":"Config_checks.html#verifica-i-finecorsa","text":"Spostare manualmente tutti gli assi della stampante in modo che nessuno di essi sia a contatto con un finecorsa. Invia un comando QUERY_ENDSTOPS tramite il terminale di Octoprint. Dovrebbe visualizzare lo stato corrente di tutti i finecorsa configurati e gli stessi dovrebbero essere nello stato di \"aperto\". Per ciascuno degli finecorsa, eseguire nuovamente il comando QUERY_ENDSTOPS mentre si attiva manualmente il finecorsa corrispondente, dovrebbe rispondere con \"TRIGGERED\". Se il finecorsa \u00e8 invertito (viene indicato \"aperto\" quando \u00e8 attivato e viceversa), aggiungere un \"!\" alla definizione del pin (ad esempio, \"endstop_pin: ^!ar3\"), oppure togliere \"!\" se invece \u00e8 presente. Se il segnale del finecorsa non cambia , pu\u00f2 significare che il fine corsa \u00e8 collegato a un pin diverso. Tuttavia, potrebbe essere necessaria una modifica all'impostazione pullup del pin (il '^' all'inizio del istruzione \"endstop_pin\".La maggior parte delle stampanti utilizzano un resistore pullup e l'istruzione '^' dovrebbe essere presente).","title":"Verifica i finecorsa"},{"location":"Config_checks.html#verifica-dei-motori-passo-passo","text":"Utilizzare il comando STEPPER_BUZZ per verificare le connessioni di ciascun motore passo-passo. Inizia posizionando manualmente in un punto intermedio dell'asse, quindi esegui l'istruzione STEPPER_BUZZ STEPPER=stepper_x . Il comando STEPPER_BUZZ far\u00e0 muovere il motore passo-passo di un millimetro in direzione avanti e poi torner\u00e0 in posizione iniziale. (Se il finecorsa \u00e8 definito come position_endstop=0, all'inizio di ogni movimento lo motore passo-passo si allontaner\u00e0 dal finecorsa.) Eseguir\u00e0 questa movimento oscillatorio per dieci volte. Se il motore passo-passo non si muove , verifica le impostazioni \"enable_pin\" e \"step_pin\" sul driver. Se il motore passo-passo si muove ma non torna nella sua posizione originale, verificare l'impostazione \"dir_pin\". Se il motore passo-passo oscilla in una direzione errata, generalmente sta a significare che \u00e8 necessario invertire il \"dir_pin\" del l'asse. Questo viene fatto aggiungendo un istruzione '!' alla \"dir_pin\" nel file di configurazione della stampante (o rimuovendolo se ne esiste gi\u00e0 presente). Se il motore passo-passo si muove di pi\u00f9 o di meno di un millimetro, verificare l'impostazione \"rotation_distance\". Eseguire il test sopra descritto per ogni motore passo-passo definito nel file di configurazione. (Impostare il parametro STEPPER del comando STEPPER_BUZZ sul nome della sezione di configurazione da testare.) Se non \u00e8 presente il filamento nell'estrusore, \u00e8 possibile utilizzare STEPPER_BUZZ per verificare la connessione del motore dell'estrusore (usare STEPPER=estrusore). In caso contrario, \u00e8 meglio testare il motore dell'estrusore per conto suo (vedere la sezione successiva). Dopo aver verificato tutti i finecorsa e aver verificato tutti i motori passo-passo, \u00e8 necessario testare il sistema di homing. Scrivere un comando G28 per portare a home tutti gli assi. Rimuovere l'alimentazione dalla stampante se l'istruzione non funziona correttamente. Se necessario, ripetere i passaggi di verifica del finecorsa e del motore passo-passo.","title":"Verifica dei motori passo-passo"},{"location":"Config_checks.html#verifica-il-motore-dellestrusore","text":"Per testare il motore dell'estrusore sar\u00e0 necessario riscaldare l'estrusore alla temperatura di stampa. Passare alla pagina della temperatura Octoprint e selezionare una temperatura di target nel men\u00f9 a tendina della temperatura (o inserire manualmente una temperatura opportuna). Attendere che la stampante raggiunga la temperatura desiderata. Quindi vai alla pagina di controllo di Octoprint e fai clic sul pulsante \"Estrudi\". Verificare che il motore dell'estrusore giri nella direzione corretta. In caso contrario, vedere i suggerimenti per la risoluzione dei problemi nella sezione precedente per verificare le impostazioni \"enable_pin\", \"step_pin\" e \"dir_pin\" per l'estrusore.","title":"Verifica il motore dell'estrusore"},{"location":"Config_checks.html#calibrare-le-impostazioni-del-pid","text":"Klipper supporta il sistema controllo PID per iriscaldatori dell'estrusore e del piatto. Per utilizzare questo sistema di controllo, \u00e8 necessario calibrare le impostazioni PID su ciascuna stampante (le impostazioni PID presenti in altri firmware o nei file di configurazione di esempio spesso funzionano male). Per calibrare il PID dell'estrusore, accedere alla pagina del terminale OctoPrint ed eseguire il comando PID_CALIBRATE. Ad esempio: PID_CALIBRATE HEATER=estrusore TARGET=170 Al termine del test di ottimizzazione, eseguire l'istruzione SAVE_CONFIG per aggiornare il file printer.cfg con le nuove impostazioni PID. Se la stampante ha un piatto riscaldato ed \u00e8 dotato di azionamento con funzione PWM (Pulse Width Modulation), si consiglia di utilizzare il controllo PID anche per il piatto. (Quando il riscaldatore del piatto \u00e8 controllato utilizzando l'algoritmo PID, potrebbe accendersi e spegnersi dieci volte al secondo, il che potrebbe non essere adatto per i riscaldatori che utilizzano un rel\u00e8 elettromeccanico.) Un tipico comando per calibrazione PID del piatto \u00e8: PID_CALIBRATE HEATER=heater_bed TARGET= 60","title":"Calibrare le impostazioni del PID"},{"location":"Config_checks.html#passi-sucessivi","text":"Questa guida ha lo scopo di aiutare la verifica delle impostazioni di base riferite ai pin presenti nel file di configurazione di Klipper. Assicurati di leggere la guida bed leveling . Consulta anche il documento Slicers per informazioni sulla configurazione di un software slicer con Klipper. Dopo aver verificato che la stampa di base funziona, \u00e8 una buona prassi procedere con la calibrazione avanzamento pressione . Potrebbe essere necessario eseguire altri tipi di calibrazione di dettaglio in riferimento alla stampante: sono disponibili numerose guide online per questo scopo (ad esempio, eseguire una ricerca sul Web per \"calibrazione della stampante 3d\"). Ad esempio, se si verifica l'effetto chiamato risonanza, \u00e8 possibile provare a seguire la calibrazione tramite l'istruzione compensazione della risonanza .","title":"Passi sucessivi"},{"location":"Contact.html","text":"Contatti \u00b6 Questo documento fornisce informazioni di contatto per Klipper. Forum della comunit\u00e0 Chat Discord Ho una domanda su Klipper Ho una richiesta per una funzionalit\u00e0 Aiuto! Non funziona! Ho diagnosticato un difetto nel software Klipper Sto apportando modifiche che vorrei includere in Klipper Forum della Comunit\u00e0 \u00b6 C'\u00e8 un server Klipper Community Discourse server per discussioni su Klipper. Chat Discord \u00b6 C'\u00e8 un serve Discord dedicato a Klipper a: https://discord.klipper3d.org . Questo server \u00e8 gestito da una comunit\u00e0 di appassionati di Klipper dediti alle discussioni su Klipper. Consente agli utenti di chattare con altri utenti in tempo reale. Ho una domanda su Klipper \u00b6 Molte domande che riceviamo hanno gi\u00e0 una risposta nella Klipper documentation . Per favore assicurati di leggere la documentazione e di seguire le indicazioni fornite. \u00c8 anche possibile cercare domande simili nel Klipper Community Forum . Se sei interessato a condividere le tue conoscenze ed esperienze con altri utenti di Klipper, puoi unirti al Klipper Community Forum o Klipper Discord Chat . Entrambe sono comunit\u00e0 in cui gli utenti di Klipper possono discutere di Klipper con altri utenti. Molte domande che riceviamo sono domande generiche sulla stampa 3D che non sono specifiche di Klipper. Se hai una domanda generica o stai riscontrando problemi di stampa generici, probabilmente otterrai una risposta migliore chiedendo in un forum generale sulla stampa 3D o in un forum dedicato all'hardware della tua stampante. Non aprire un problema (issue) su Klipper github per porre una domanda. Ho una richiesta per una funzionalit\u00e0 \u00b6 Tutte le nuove funzionalit\u00e0 richiedono qualcuno interessato e in grado di implementare tale funzionalit\u00e0. Se sei interessato ad aiutare a implementare o testare una nuova funzionalit\u00e0, puoi cercare gli sviluppi coinvolti nel Klipper Community Forum . C'\u00e8 anche Klipper Discord Chat per le discussioni tra i collaboratori. Non aprire un problema (issue) in Klipper github per richiedere una funzionalit\u00e0. Aiuto! Non funziona! \u00b6 Sfortunatamente, riceviamo molte pi\u00f9 richieste di aiuto di quante potremmo eventualmente rispondere. La maggior parte delle segnalazioni di problemi che vediamo vengono infine rintracciate in: Piccoli nell'hardware, o Non seguendo tutti i passaggi descritti nella documentazione di Klipper. In caso di problemi, ti consigliamo di leggere attentamente la Klipper documentation e di verificare che tutti i passaggi siano stati seguiti. Se si verifica un problema di stampa, si consiglia di ispezionare attentamente l'hardware della stampante (tutti i giunti, i cavi, le viti, ecc.) e verificare che non vi siano anomalie. Scopriamo che la maggior parte dei problemi di stampa non sono correlati al software Klipper. Se trovi un problema con l'hardware della stampante, probabilmente otterrai una risposta migliore cercando in un forum generale di stampa 3D o in un forum dedicato all'hardware della tua stampante. \u00c8 anche possibile cercare problemi simili in Klipper Community Forum . Se sei interessato a condividere le tue conoscenze ed esperienze con altri utenti di Klipper, puoi unirti al Klipper Community Forum o Klipper Discord Chat . Entrambe sono comunit\u00e0 in cui gli utenti di Klipper possono discutere di Klipper con altri utenti. Non aprire un problema (issue) in Klipper github per richiedere assistenza. Ho diagnosticato un difetto nel software Klipper \u00b6 Klipper \u00e8 un progetto open-source ed apprezziamo quando i collaboratori diagnosticano errori nel software. Ci sono informazioni importanti che saranno necessarie per correggere un bug. Per favore segui questi passaggi: Assicurati che il bug sia nel software Klipper. Se stai pensando \"c'\u00e8 un problema, non riesco a capire perch\u00e9, e quindi \u00e8 un bug di Klipper\", allora non aprire un problema (issue) con github. Nel caso qualcuno interessato e capace dovr\u00e0 prima ricercare e diagnosticare la causa origine del problema. Se desideri condividere i risultati della tua ricerca o verificare se altri utenti stanno riscontrando problemi simili, puoi cercare in Klipper Community Forum . Assicurati di eseguire il codice non modificato da https://github.com/Klipper3d/klipper . Se il codice \u00e8 stato modificato o \u00e8 stato ottenuto da un'altra fonte, dovrai riprodurre il problema sul codice non modificato da https://github.com/Klipper3d/klipper prima di segnalare un problema. Se possibile, esegui un comando M112 nella finestra del terminale di OctoPrint subito dopo che si \u00e8 verificato l'evento indesiderato. Ci\u00f2 fa s\u00ec che Klipper entri in uno \"stato di arresto - shutdown state\" e provocher\u00e0 la scrittura di ulteriori informazioni di debug nel file di registro. Ottieni il log file di Klipper dell'evento. Il file di registro \u00e8 stato progettato per rispondere alle domande pi\u00f9 comuni degli sviluppatori di Klipper sul software e sul suo ambiente (versione del software, tipo di hardware, configurazione, tempistica degli eventi e centinaia di altre domande). Il log file di Klipper si trova in /tmp/klippy.log sul computer \"host\" di Klipper (il Raspberry Pi). Un comando o utility \"scp\" o \"sftp\" \u00e8 necessario per copiare questo file di registro sul computer desktop. L'utilit\u00e0 \"scp\" viene fornita di serie con i desktop Linux e MacOS. Ci sono utilit\u00e0 scp disponibili gratuitamente per altri desktop (ad es. WinSCP). Se si utilizza un'interfaccia grafica scp che non pu\u00f2 copiare direttamente /tmp/klippy.log , fare clic ripetutamente su .. o cartella principale fino ad arrivare alla directory principale, fare clic sulla cartella tmp , quindi seleziona il file klippy.log . Copia il lof file sul desktop in modo che possa essere allegato a una segnalazione di problema. Non modificare in alcun modo il log file; non editare o ritagliare il log file. Solo il file di log completo non modificato fornisce le informazioni necessarie. Se il file di registro \u00e8 molto grande (ad esempio, maggiore di 2 MB), potrebbe essere necessario comprimerlo con zip o gzip. Apri un nuovo problema con github su https://github.com/Klipper3d/klipper/issues e fornisci una descrizione chiara del problema. Gli sviluppatori di Klipper devono capire quali passi sono stati intrapresi, quale era il risultato desiderato e quale risultato si \u00e8 effettivamente verificato. Il file di registro di Klipper deve essere allegato al ticket: Sto apportando modifiche che vorrei includere in Klipper \u00b6 Klipper \u00e8 un software open-source e apprezziamo i nuovi contributi. I nuovi contributi (sia per il codice che per la documentazione) vengono inviati tramite Github Pull Requests. Vedere [ CONTRIBUTING document per informazioni importanti. Esistono diversi documenti per sviluppatori . Se hai domande sul codice, puoi anche chiedere nel Klipper Community Forum o nel Klipper Community Discord . Se desideri fornire un aggiornamento sui tuoi progressi attuali, puoi aprire un problema (issue) con Github con la posizione del tuo codice, una panoramica delle modifiche e una descrizione del suo stato attuale.","title":"Contatti"},{"location":"Contact.html#contatti","text":"Questo documento fornisce informazioni di contatto per Klipper. Forum della comunit\u00e0 Chat Discord Ho una domanda su Klipper Ho una richiesta per una funzionalit\u00e0 Aiuto! Non funziona! Ho diagnosticato un difetto nel software Klipper Sto apportando modifiche che vorrei includere in Klipper","title":"Contatti"},{"location":"Contact.html#forum-della-comunita","text":"C'\u00e8 un server Klipper Community Discourse server per discussioni su Klipper.","title":"Forum della Comunit\u00e0"},{"location":"Contact.html#chat-discord","text":"C'\u00e8 un serve Discord dedicato a Klipper a: https://discord.klipper3d.org . Questo server \u00e8 gestito da una comunit\u00e0 di appassionati di Klipper dediti alle discussioni su Klipper. Consente agli utenti di chattare con altri utenti in tempo reale.","title":"Chat Discord"},{"location":"Contact.html#ho-una-domanda-su-klipper","text":"Molte domande che riceviamo hanno gi\u00e0 una risposta nella Klipper documentation . Per favore assicurati di leggere la documentazione e di seguire le indicazioni fornite. \u00c8 anche possibile cercare domande simili nel Klipper Community Forum . Se sei interessato a condividere le tue conoscenze ed esperienze con altri utenti di Klipper, puoi unirti al Klipper Community Forum o Klipper Discord Chat . Entrambe sono comunit\u00e0 in cui gli utenti di Klipper possono discutere di Klipper con altri utenti. Molte domande che riceviamo sono domande generiche sulla stampa 3D che non sono specifiche di Klipper. Se hai una domanda generica o stai riscontrando problemi di stampa generici, probabilmente otterrai una risposta migliore chiedendo in un forum generale sulla stampa 3D o in un forum dedicato all'hardware della tua stampante. Non aprire un problema (issue) su Klipper github per porre una domanda.","title":"Ho una domanda su Klipper"},{"location":"Contact.html#ho-una-richiesta-per-una-funzionalita","text":"Tutte le nuove funzionalit\u00e0 richiedono qualcuno interessato e in grado di implementare tale funzionalit\u00e0. Se sei interessato ad aiutare a implementare o testare una nuova funzionalit\u00e0, puoi cercare gli sviluppi coinvolti nel Klipper Community Forum . C'\u00e8 anche Klipper Discord Chat per le discussioni tra i collaboratori. Non aprire un problema (issue) in Klipper github per richiedere una funzionalit\u00e0.","title":"Ho una richiesta per una funzionalit\u00e0"},{"location":"Contact.html#aiuto-non-funziona","text":"Sfortunatamente, riceviamo molte pi\u00f9 richieste di aiuto di quante potremmo eventualmente rispondere. La maggior parte delle segnalazioni di problemi che vediamo vengono infine rintracciate in: Piccoli nell'hardware, o Non seguendo tutti i passaggi descritti nella documentazione di Klipper. In caso di problemi, ti consigliamo di leggere attentamente la Klipper documentation e di verificare che tutti i passaggi siano stati seguiti. Se si verifica un problema di stampa, si consiglia di ispezionare attentamente l'hardware della stampante (tutti i giunti, i cavi, le viti, ecc.) e verificare che non vi siano anomalie. Scopriamo che la maggior parte dei problemi di stampa non sono correlati al software Klipper. Se trovi un problema con l'hardware della stampante, probabilmente otterrai una risposta migliore cercando in un forum generale di stampa 3D o in un forum dedicato all'hardware della tua stampante. \u00c8 anche possibile cercare problemi simili in Klipper Community Forum . Se sei interessato a condividere le tue conoscenze ed esperienze con altri utenti di Klipper, puoi unirti al Klipper Community Forum o Klipper Discord Chat . Entrambe sono comunit\u00e0 in cui gli utenti di Klipper possono discutere di Klipper con altri utenti. Non aprire un problema (issue) in Klipper github per richiedere assistenza.","title":"Aiuto! Non funziona!"},{"location":"Contact.html#ho-diagnosticato-un-difetto-nel-software-klipper","text":"Klipper \u00e8 un progetto open-source ed apprezziamo quando i collaboratori diagnosticano errori nel software. Ci sono informazioni importanti che saranno necessarie per correggere un bug. Per favore segui questi passaggi: Assicurati che il bug sia nel software Klipper. Se stai pensando \"c'\u00e8 un problema, non riesco a capire perch\u00e9, e quindi \u00e8 un bug di Klipper\", allora non aprire un problema (issue) con github. Nel caso qualcuno interessato e capace dovr\u00e0 prima ricercare e diagnosticare la causa origine del problema. Se desideri condividere i risultati della tua ricerca o verificare se altri utenti stanno riscontrando problemi simili, puoi cercare in Klipper Community Forum . Assicurati di eseguire il codice non modificato da https://github.com/Klipper3d/klipper . Se il codice \u00e8 stato modificato o \u00e8 stato ottenuto da un'altra fonte, dovrai riprodurre il problema sul codice non modificato da https://github.com/Klipper3d/klipper prima di segnalare un problema. Se possibile, esegui un comando M112 nella finestra del terminale di OctoPrint subito dopo che si \u00e8 verificato l'evento indesiderato. Ci\u00f2 fa s\u00ec che Klipper entri in uno \"stato di arresto - shutdown state\" e provocher\u00e0 la scrittura di ulteriori informazioni di debug nel file di registro. Ottieni il log file di Klipper dell'evento. Il file di registro \u00e8 stato progettato per rispondere alle domande pi\u00f9 comuni degli sviluppatori di Klipper sul software e sul suo ambiente (versione del software, tipo di hardware, configurazione, tempistica degli eventi e centinaia di altre domande). Il log file di Klipper si trova in /tmp/klippy.log sul computer \"host\" di Klipper (il Raspberry Pi). Un comando o utility \"scp\" o \"sftp\" \u00e8 necessario per copiare questo file di registro sul computer desktop. L'utilit\u00e0 \"scp\" viene fornita di serie con i desktop Linux e MacOS. Ci sono utilit\u00e0 scp disponibili gratuitamente per altri desktop (ad es. WinSCP). Se si utilizza un'interfaccia grafica scp che non pu\u00f2 copiare direttamente /tmp/klippy.log , fare clic ripetutamente su .. o cartella principale fino ad arrivare alla directory principale, fare clic sulla cartella tmp , quindi seleziona il file klippy.log . Copia il lof file sul desktop in modo che possa essere allegato a una segnalazione di problema. Non modificare in alcun modo il log file; non editare o ritagliare il log file. Solo il file di log completo non modificato fornisce le informazioni necessarie. Se il file di registro \u00e8 molto grande (ad esempio, maggiore di 2 MB), potrebbe essere necessario comprimerlo con zip o gzip. Apri un nuovo problema con github su https://github.com/Klipper3d/klipper/issues e fornisci una descrizione chiara del problema. Gli sviluppatori di Klipper devono capire quali passi sono stati intrapresi, quale era il risultato desiderato e quale risultato si \u00e8 effettivamente verificato. Il file di registro di Klipper deve essere allegato al ticket:","title":"Ho diagnosticato un difetto nel software Klipper"},{"location":"Contact.html#sto-apportando-modifiche-che-vorrei-includere-in-klipper","text":"Klipper \u00e8 un software open-source e apprezziamo i nuovi contributi. I nuovi contributi (sia per il codice che per la documentazione) vengono inviati tramite Github Pull Requests. Vedere [ CONTRIBUTING document per informazioni importanti. Esistono diversi documenti per sviluppatori . Se hai domande sul codice, puoi anche chiedere nel Klipper Community Forum o nel Klipper Community Discord . Se desideri fornire un aggiornamento sui tuoi progressi attuali, puoi aprire un problema (issue) con Github con la posizione del tuo codice, una panoramica delle modifiche e una descrizione del suo stato attuale.","title":"Sto apportando modifiche che vorrei includere in Klipper"},{"location":"Debugging.html","text":"Debugging \u00b6 Questo documento descrive alcuni degli strumenti di debug di Klipper. Esecuzione dei test di regressione \u00b6 Il repository principale di Klipper GitHub utilizza \"github actions\" per eseguire una serie di test di regressione. Pu\u00f2 essere utile eseguire alcuni di questi test in locale. Il sorgente \"controllo spazi bianchi\" pu\u00f2 essere eseguito con: ./scripts/check_whitespace.sh La suite di test di regressione Klippy richiede \"dizionari di dati\" da molte piattaforme. Il modo pi\u00f9 semplice per ottenerli \u00e8 scaricarli da github . Una volta scaricati i dizionari di dati, utilizzare quanto segue per eseguire la suite di regressione: tar xfz klipper-dict-20??????.tar.gz ~/klippy-env/bin/python ~/klipper/scripts/test_klippy.py -d dict/ ~/klipper/test/klippy/*.test Invio manuale di comandi al microcontrollore \u00b6 Normalmente, il processo host klippy.py verrebbe utilizzato per tradurre i comandi gcode in comandi del microcontrollore Klipper. Tuttavia, \u00e8 anche possibile inviare manualmente questi comandi MCU (funzioni contrassegnate con la macro DECL_COMMAND() nel codice sorgente di Klipper). Per farlo, esegui: ~/klippy-env/bin/python ./klippy/console.py /tmp/pseudoserial Vedere il comando \"HELP\" all'interno dello strumento per ulteriori informazioni sulla sua funzionalit\u00e0. Sono disponibili alcune opzioni della riga di comando. Per ulteriori informazioni esegui: ~/klippy-env/bin/python ./klippy/console.py --help Traduzione di file gcode in comandi del microcontrollore \u00b6 Il codice host Klippy pu\u00f2 essere eseguito in modalit\u00e0 batch per produrre i comandi del microcontrollore di basso livello associati a un file gcode. L'ispezione di questi comandi di basso livello \u00e8 utile quando si cerca di comprendere le azioni dell'hardware di basso livello. Pu\u00f2 anche essere utile confrontare la differenza nei comandi del microcontrollore dopo una modifica del codice. Per eseguire Klippy in questa modalit\u00e0 batch, \u00e8 necessario un passaggio per generare il \"dizionario dati\" del microcontrollore. Questo viene fatto compilando il codice del microcontrollore per ottenere il file out/klipper.dict : make menuconfig make Una volta fatto quanto sopra \u00e8 possibile eseguire Klipper in modalit\u00e0 batch (vedi installazione per i passaggi necessari per costruire l'ambiente virtuale python e un file printer.cfg): ~/klippy-env/bin/python ./klippy/klippy.py ~/printer.cfg -i test.gcode -o test.serial -v -d out/klipper.dict Quanto sopra produrr\u00e0 un file test.serial con output seriale binario. Questo output pu\u00f2 essere tradotto in testo leggibile con: ~/klippy-env/bin/python ./klippy/parsedump.py out/klipper.dict test.serial > test.txt Il file risultante test.txt contiene un elenco leggibile di comandi del microcontrollore. La modalit\u00e0 batch disabilita alcuni comandi di risposta/richiesta per funzionare. Di conseguenza, ci saranno alcune differenze tra i comandi effettivi e l'output sopra. I dati generati sono utili per il test e l'ispezione; non \u00e8 utile per l'invio a un vero microcontrollore. Analisi del movimento e registrazione dei dati \u00b6 Klipper supporta la registrazione della cronologia dei movimenti interni, che pu\u00f2 essere analizzata in seguito. Per utilizzare questa funzione, Klipper deve essere avviato con Server API abilitato. La registrazione dei dati \u00e8 abilitata con lo strumento data_logger.py . Per esempio: ~/klipper/scripts/motan/data_logger.py /tmp/klippy_uds mylog Questo comando si collegher\u00e0 al Klipper API Server, sottoscriver\u00e0 le informazioni sullo stato e sul movimento e registrer\u00e0 i risultati. Vengono generati due file: un file di dati compresso e un file di indice (ad esempio, mylog.json.gz e mylog.index.gz ). Dopo aver avviato la registrazione, \u00e8 possibile completare le stampe e altre azioni: la registrazione continuer\u00e0 in background. Al termine della registrazione, premi ctrl-c per uscire dallo strumento data_logger.py . I file risultanti possono essere letti e rappresentati graficamente utilizzando lo strumento motan_graph.py . Per generare grafici su un Raspberry Pi, \u00e8 necessario un passaggio per installare il pacchetto \"matplotlib\": sudo apt-get update sudo apt-get install python-matplotlib Tuttavia, potrebbe essere pi\u00f9 conveniente copiare i file di dati su una macchina di classe desktop insieme al codice Python nella directory scripts/motan/ . Gli script di analisi del movimento dovrebbero essere eseguiti su qualsiasi macchina con una versione recente di Python e Matplotlib installata. I grafici possono essere generati con un comando come il seguente: ~/klipper/scripts/motan/motan_graph.py mylog -o mygraph.png One can use the -g option to specify the datasets to graph (it takes a Python literal containing a list of lists). For example: ~/klipper/scripts/motan/motan_graph.py mylog -g '[[\"trapq(toolhead,velocity)\"], [\"trapq(toolhead,accel)\"]]' L'elenco dei set di dati disponibili pu\u00f2 essere trovato usando l'opzione -l , ad esempio: ~/klipper/scripts/motan/motan_graph.py -l \u00c8 anche possibile specificare le opzioni di stampa matplotlib per ogni set di dati: ~/klipper/scripts/motan/motan_graph.py mylog -g '[[\"trapq(toolhead,velocity)?color=red&alpha=0.4\"]]' Sono disponibili molte opzioni di matplotlib; alcuni esempi sono \"color\", \"label\", \"alpha\" e \"linestyle\". Lo strumento motan_graph.py supporta molte altre opzioni della riga di comando: usa l'opzione --help per vedere un elenco. Pu\u00f2 anche essere conveniente visualizzare/modificare lo stesso script motan_graph.py . I log di dati grezzi prodotti dallo strumento data_logger.py seguono il formato descritto in Server API . Pu\u00f2 essere utile ispezionare i dati con un comando Unix come il seguente: gunzip < mylog.json.gz | tr '\\03' '\\n' | less Generare di grafici di carico \u00b6 Il file di registro di Klippy (/tmp/klippy.log) memorizza le statistiche sulla larghezza di banda, sul carico del microcontrollore e sul carico del buffer dell'host. Pu\u00f2 essere utile rappresentare graficamente queste statistiche dopo una stampa. Per generare un grafico, \u00e8 necessario un passaggio una tantum per installare il pacchetto \"matplotlib\": sudo apt-get update sudo apt-get install python-matplotlib Quindi i grafici possono essere prodotti con: ~/klipper/scripts/graphstats.py /tmp/klippy.log -o loadgraph.png Si pu\u00f2 quindi visualizzare il file loadgraph.png risultante. Possono essere prodotti diversi grafici. Per ulteriori informazioni esegui: ~/klipper/scripts/graphstats.py --help Estrazione di informazioni dal file klippy.log \u00b6 Anche il file di registro di Klippy (/tmp/klippy.log) contiene informazioni di debug. Esiste uno script logextract.py che pu\u00f2 essere utile quando si analizza l'arresto di un microcontrollore o un problema simile. In genere viene eseguito con qualcosa come: mkdir work_directory cd work_directory cp /tmp/klippy.log . ~/klipper/scripts/logextract.py ./klippy.log Lo script estrarr\u00e0 il file di configurazione della stampante ed estrarr\u00e0 le informazioni di arresto dell'MCU. I dump delle informazioni da un arresto dell'MCU (se presente) verranno riordinati in base al timestamp per facilitare la diagnosi degli scenari di causa ed effetto. Test con simulavr \u00b6 Lo strumento simulavr consente di simulare un microcontrollore Atmel ATmega. Questa sezione descrive come eseguire test di file gcode tramite simulavr. Si consiglia di eseguirlo su una macchina di classe desktop (non un Raspberry Pi) poich\u00e9 richiede una CPU significativa per funzionare in modo efficiente. Per utilizzare simulavr, scarica il pacchetto simulavr e compila con il supporto python. Nota che il sistema di build potrebbe aver bisogno di alcuni pacchetti (come swig) installati per costruire il modulo python. git clone git://git.savannah.nongnu.org/simulavr.git cd simulavr make python make build Assicurati che un file come ./build/pysimulavr/_pysimulavr.*.so sia presente dopo la compilazione di cui sopra: ls ./build/pysimulavr/_pysimulavr.*.so Questo comando dovrebbe segnalare un file specifico (ad es. ./build/pysimulavr/_pysimulavr.cpython-39-x86_64-linux-gnu.so ) e non un errore. Se utilizzi un sistema basato su Debian (Debian, Ubuntu, ecc.) puoi installare i seguenti pacchetti e generare file *.deb per l'installazione di simulavr a livello di sistema: sudo apt update sudo apt install g++ make cmake swig rst2pdf help2man texinfo make cfgclean python debian sudo dpkg -i build/debian/python3-simulavr*.deb Per compilare Klipper per l'uso in simulavr, eseguire: cd /path/to/klipper make menuconfig e compilare il software del microcontrollore per un AVR atmega644p e selezionare il supporto per l'emulazione del software SIMULAVR. Quindi si pu\u00f2 compilare Klipper (eseguire make ) e quindi avviare la simulazione con: PYTHONPATH=/path/to/simulavr/build/pysimulavr/ ./scripts/avrsim.py out/klipper.elf Nota che se hai installato python3-simulavr a livello di sistema, non \u00e8 necessario impostare PYTHONPATH e puoi semplicemente eseguire il simulatore come ./scripts/avrsim.py out/klipper.elf Quindi, con simulavr in esecuzione in un'altra finestra, \u00e8 possibile eseguire quanto segue per leggere gcode da un file (ad es. \"test.gcode\"), elaborarlo con Klippy e inviarlo a Klipper in esecuzione in simulavr (vedere installazione per i passaggi necessari per costruire l'ambiente virtuale Python): ~/klippy-env/bin/python ./klippy/klippy.py config/generic-simulavr.cfg -i test.gcode -v Utilizzo di simulavr con gtkwave \u00b6 Una caratteristica utile di simulavr \u00e8 la sua capacit\u00e0 di creare file di generazione di onde di segnale con l'esatta sincronizzazione degli eventi. Per fare ci\u00f2, segui le istruzioni sopra, ma esegui avrsim.py con una riga di comando come la seguente: PYTHONPATH=/path/to/simulavr/src/python/ ./scripts/avrsim.py out/klipper.elf -t PORTA.PORT,PORTC.PORT Quanto sopra creerebbe un file avrsim.vcd con informazioni su ogni modifica ai GPIO su PORTA e PORTB. Questo potrebbe quindi essere visualizzato usando gtkwave con: gtkwave avrsim.vcd","title":"Debugging"},{"location":"Debugging.html#debugging","text":"Questo documento descrive alcuni degli strumenti di debug di Klipper.","title":"Debugging"},{"location":"Debugging.html#esecuzione-dei-test-di-regressione","text":"Il repository principale di Klipper GitHub utilizza \"github actions\" per eseguire una serie di test di regressione. Pu\u00f2 essere utile eseguire alcuni di questi test in locale. Il sorgente \"controllo spazi bianchi\" pu\u00f2 essere eseguito con: ./scripts/check_whitespace.sh La suite di test di regressione Klippy richiede \"dizionari di dati\" da molte piattaforme. Il modo pi\u00f9 semplice per ottenerli \u00e8 scaricarli da github . Una volta scaricati i dizionari di dati, utilizzare quanto segue per eseguire la suite di regressione: tar xfz klipper-dict-20??????.tar.gz ~/klippy-env/bin/python ~/klipper/scripts/test_klippy.py -d dict/ ~/klipper/test/klippy/*.test","title":"Esecuzione dei test di regressione"},{"location":"Debugging.html#invio-manuale-di-comandi-al-microcontrollore","text":"Normalmente, il processo host klippy.py verrebbe utilizzato per tradurre i comandi gcode in comandi del microcontrollore Klipper. Tuttavia, \u00e8 anche possibile inviare manualmente questi comandi MCU (funzioni contrassegnate con la macro DECL_COMMAND() nel codice sorgente di Klipper). Per farlo, esegui: ~/klippy-env/bin/python ./klippy/console.py /tmp/pseudoserial Vedere il comando \"HELP\" all'interno dello strumento per ulteriori informazioni sulla sua funzionalit\u00e0. Sono disponibili alcune opzioni della riga di comando. Per ulteriori informazioni esegui: ~/klippy-env/bin/python ./klippy/console.py --help","title":"Invio manuale di comandi al microcontrollore"},{"location":"Debugging.html#traduzione-di-file-gcode-in-comandi-del-microcontrollore","text":"Il codice host Klippy pu\u00f2 essere eseguito in modalit\u00e0 batch per produrre i comandi del microcontrollore di basso livello associati a un file gcode. L'ispezione di questi comandi di basso livello \u00e8 utile quando si cerca di comprendere le azioni dell'hardware di basso livello. Pu\u00f2 anche essere utile confrontare la differenza nei comandi del microcontrollore dopo una modifica del codice. Per eseguire Klippy in questa modalit\u00e0 batch, \u00e8 necessario un passaggio per generare il \"dizionario dati\" del microcontrollore. Questo viene fatto compilando il codice del microcontrollore per ottenere il file out/klipper.dict : make menuconfig make Una volta fatto quanto sopra \u00e8 possibile eseguire Klipper in modalit\u00e0 batch (vedi installazione per i passaggi necessari per costruire l'ambiente virtuale python e un file printer.cfg): ~/klippy-env/bin/python ./klippy/klippy.py ~/printer.cfg -i test.gcode -o test.serial -v -d out/klipper.dict Quanto sopra produrr\u00e0 un file test.serial con output seriale binario. Questo output pu\u00f2 essere tradotto in testo leggibile con: ~/klippy-env/bin/python ./klippy/parsedump.py out/klipper.dict test.serial > test.txt Il file risultante test.txt contiene un elenco leggibile di comandi del microcontrollore. La modalit\u00e0 batch disabilita alcuni comandi di risposta/richiesta per funzionare. Di conseguenza, ci saranno alcune differenze tra i comandi effettivi e l'output sopra. I dati generati sono utili per il test e l'ispezione; non \u00e8 utile per l'invio a un vero microcontrollore.","title":"Traduzione di file gcode in comandi del microcontrollore"},{"location":"Debugging.html#analisi-del-movimento-e-registrazione-dei-dati","text":"Klipper supporta la registrazione della cronologia dei movimenti interni, che pu\u00f2 essere analizzata in seguito. Per utilizzare questa funzione, Klipper deve essere avviato con Server API abilitato. La registrazione dei dati \u00e8 abilitata con lo strumento data_logger.py . Per esempio: ~/klipper/scripts/motan/data_logger.py /tmp/klippy_uds mylog Questo comando si collegher\u00e0 al Klipper API Server, sottoscriver\u00e0 le informazioni sullo stato e sul movimento e registrer\u00e0 i risultati. Vengono generati due file: un file di dati compresso e un file di indice (ad esempio, mylog.json.gz e mylog.index.gz ). Dopo aver avviato la registrazione, \u00e8 possibile completare le stampe e altre azioni: la registrazione continuer\u00e0 in background. Al termine della registrazione, premi ctrl-c per uscire dallo strumento data_logger.py . I file risultanti possono essere letti e rappresentati graficamente utilizzando lo strumento motan_graph.py . Per generare grafici su un Raspberry Pi, \u00e8 necessario un passaggio per installare il pacchetto \"matplotlib\": sudo apt-get update sudo apt-get install python-matplotlib Tuttavia, potrebbe essere pi\u00f9 conveniente copiare i file di dati su una macchina di classe desktop insieme al codice Python nella directory scripts/motan/ . Gli script di analisi del movimento dovrebbero essere eseguiti su qualsiasi macchina con una versione recente di Python e Matplotlib installata. I grafici possono essere generati con un comando come il seguente: ~/klipper/scripts/motan/motan_graph.py mylog -o mygraph.png One can use the -g option to specify the datasets to graph (it takes a Python literal containing a list of lists). For example: ~/klipper/scripts/motan/motan_graph.py mylog -g '[[\"trapq(toolhead,velocity)\"], [\"trapq(toolhead,accel)\"]]' L'elenco dei set di dati disponibili pu\u00f2 essere trovato usando l'opzione -l , ad esempio: ~/klipper/scripts/motan/motan_graph.py -l \u00c8 anche possibile specificare le opzioni di stampa matplotlib per ogni set di dati: ~/klipper/scripts/motan/motan_graph.py mylog -g '[[\"trapq(toolhead,velocity)?color=red&alpha=0.4\"]]' Sono disponibili molte opzioni di matplotlib; alcuni esempi sono \"color\", \"label\", \"alpha\" e \"linestyle\". Lo strumento motan_graph.py supporta molte altre opzioni della riga di comando: usa l'opzione --help per vedere un elenco. Pu\u00f2 anche essere conveniente visualizzare/modificare lo stesso script motan_graph.py . I log di dati grezzi prodotti dallo strumento data_logger.py seguono il formato descritto in Server API . Pu\u00f2 essere utile ispezionare i dati con un comando Unix come il seguente: gunzip < mylog.json.gz | tr '\\03' '\\n' | less","title":"Analisi del movimento e registrazione dei dati"},{"location":"Debugging.html#generare-di-grafici-di-carico","text":"Il file di registro di Klippy (/tmp/klippy.log) memorizza le statistiche sulla larghezza di banda, sul carico del microcontrollore e sul carico del buffer dell'host. Pu\u00f2 essere utile rappresentare graficamente queste statistiche dopo una stampa. Per generare un grafico, \u00e8 necessario un passaggio una tantum per installare il pacchetto \"matplotlib\": sudo apt-get update sudo apt-get install python-matplotlib Quindi i grafici possono essere prodotti con: ~/klipper/scripts/graphstats.py /tmp/klippy.log -o loadgraph.png Si pu\u00f2 quindi visualizzare il file loadgraph.png risultante. Possono essere prodotti diversi grafici. Per ulteriori informazioni esegui: ~/klipper/scripts/graphstats.py --help","title":"Generare di grafici di carico"},{"location":"Debugging.html#estrazione-di-informazioni-dal-file-klippylog","text":"Anche il file di registro di Klippy (/tmp/klippy.log) contiene informazioni di debug. Esiste uno script logextract.py che pu\u00f2 essere utile quando si analizza l'arresto di un microcontrollore o un problema simile. In genere viene eseguito con qualcosa come: mkdir work_directory cd work_directory cp /tmp/klippy.log . ~/klipper/scripts/logextract.py ./klippy.log Lo script estrarr\u00e0 il file di configurazione della stampante ed estrarr\u00e0 le informazioni di arresto dell'MCU. I dump delle informazioni da un arresto dell'MCU (se presente) verranno riordinati in base al timestamp per facilitare la diagnosi degli scenari di causa ed effetto.","title":"Estrazione di informazioni dal file klippy.log"},{"location":"Debugging.html#test-con-simulavr","text":"Lo strumento simulavr consente di simulare un microcontrollore Atmel ATmega. Questa sezione descrive come eseguire test di file gcode tramite simulavr. Si consiglia di eseguirlo su una macchina di classe desktop (non un Raspberry Pi) poich\u00e9 richiede una CPU significativa per funzionare in modo efficiente. Per utilizzare simulavr, scarica il pacchetto simulavr e compila con il supporto python. Nota che il sistema di build potrebbe aver bisogno di alcuni pacchetti (come swig) installati per costruire il modulo python. git clone git://git.savannah.nongnu.org/simulavr.git cd simulavr make python make build Assicurati che un file come ./build/pysimulavr/_pysimulavr.*.so sia presente dopo la compilazione di cui sopra: ls ./build/pysimulavr/_pysimulavr.*.so Questo comando dovrebbe segnalare un file specifico (ad es. ./build/pysimulavr/_pysimulavr.cpython-39-x86_64-linux-gnu.so ) e non un errore. Se utilizzi un sistema basato su Debian (Debian, Ubuntu, ecc.) puoi installare i seguenti pacchetti e generare file *.deb per l'installazione di simulavr a livello di sistema: sudo apt update sudo apt install g++ make cmake swig rst2pdf help2man texinfo make cfgclean python debian sudo dpkg -i build/debian/python3-simulavr*.deb Per compilare Klipper per l'uso in simulavr, eseguire: cd /path/to/klipper make menuconfig e compilare il software del microcontrollore per un AVR atmega644p e selezionare il supporto per l'emulazione del software SIMULAVR. Quindi si pu\u00f2 compilare Klipper (eseguire make ) e quindi avviare la simulazione con: PYTHONPATH=/path/to/simulavr/build/pysimulavr/ ./scripts/avrsim.py out/klipper.elf Nota che se hai installato python3-simulavr a livello di sistema, non \u00e8 necessario impostare PYTHONPATH e puoi semplicemente eseguire il simulatore come ./scripts/avrsim.py out/klipper.elf Quindi, con simulavr in esecuzione in un'altra finestra, \u00e8 possibile eseguire quanto segue per leggere gcode da un file (ad es. \"test.gcode\"), elaborarlo con Klippy e inviarlo a Klipper in esecuzione in simulavr (vedere installazione per i passaggi necessari per costruire l'ambiente virtuale Python): ~/klippy-env/bin/python ./klippy/klippy.py config/generic-simulavr.cfg -i test.gcode -v","title":"Test con simulavr"},{"location":"Debugging.html#utilizzo-di-simulavr-con-gtkwave","text":"Una caratteristica utile di simulavr \u00e8 la sua capacit\u00e0 di creare file di generazione di onde di segnale con l'esatta sincronizzazione degli eventi. Per fare ci\u00f2, segui le istruzioni sopra, ma esegui avrsim.py con una riga di comando come la seguente: PYTHONPATH=/path/to/simulavr/src/python/ ./scripts/avrsim.py out/klipper.elf -t PORTA.PORT,PORTC.PORT Quanto sopra creerebbe un file avrsim.vcd con informazioni su ogni modifica ai GPIO su PORTA e PORTB. Questo potrebbe quindi essere visualizzato usando gtkwave con: gtkwave avrsim.vcd","title":"Utilizzo di simulavr con gtkwave"},{"location":"Delta_Calibrate.html","text":"Calibrazione delta \u00b6 Questo documento descrive il sistema di calibrazione automatica di Klipper per stampanti \"delta\". La calibrazione delta implica la ricerca delle posizioni dei finecorsa della torre, degli angoli della torre, del raggio delta e delle lunghezze del braccio delta. Queste impostazioni controllano il movimento della stampante su una stampante delta. Ognuno di questi parametri ha un impatto non evidente e non lineare ed \u00e8 difficile calibrarli manualmente. Al contrario, il codice di calibrazione del software pu\u00f2 fornire risultati eccellenti in pochi minuti di tempo. Non \u00e8 necessario alcun hardware di rilevamento speciale. In definitiva, la calibrazione delta dipende dalla precisione degli interruttori di fine corsa della torre. Se si utilizzano i driver per motori passo-passo Trinamic, considerare l'abilitazione del rilevamento fase endstop per migliorare la precisione di tali interruttori. Sonda automatica vs manuale \u00b6 Klipper supporta la calibrazione dei parametri delta tramite un metodo di sonda manuale o tramite una sonda Z automatica. Numerosi kit di stampanti delta sono dotati di sonde Z automatiche che non sono sufficientemente accurate (in particolare, piccole differenze nella lunghezza del braccio possono causare l'inclinazione dell'effettore che pu\u00f2 distorcere una sonda automatica). Se si utilizza una sonda automatica, prima calibrare la sonda e quindi verificare la presenza di un bias posizione sonda . Se la sonda automatica ha una polarizzazione superiore a 25 micron (0,025 mm), utilizzare invece la sonda manuale. Il probing manuale richiede solo pochi minuti ed elimina l'errore introdotto dalla sonda. Se si utilizza una sonda montata sul lato dell'hotend (ovvero ha un offset X o Y), tenere presente che l'esecuzione della calibrazione delta invalider\u00e0 i risultati della calibrazione della sonda. Questi tipi di sonde sono raramente adatti per l'uso su un delta (poich\u00e9 una minore inclinazione dell'effettore risulter\u00e0 in una distorsione della posizione della sonda). Se si utilizza comunque la sonda, assicurarsi di eseguire nuovamente la calibrazione della sonda dopo qualsiasi calibrazione delta. Calibrazione delta di base \u00b6 Klipper ha un comando DELTA_CALIBRATE che pu\u00f2 eseguire la calibrazione delta di base. Questo comando sonda sette diversi punti sul letto e calcola nuovi valori per gli angoli della torre, i punti terminali della torre e il raggio delta. Per eseguire questa calibrazione devono essere forniti i parametri delta iniziali (lunghezze dei bracci, raggio e posizioni dei finecorsa) e devono avere una precisione di pochi millimetri. La maggior parte dei kit della stampante delta fornisce questi parametri: configurare la stampante con queste impostazioni predefinite iniziali e quindi eseguire il comando DELTA_CALIBRATE come descritto di seguito. Se non sono disponibili impostazioni predefinite, cercare online una guida alla calibrazione delta che possa fornire un punto di partenza di base. Durante il processo di calibrazione delta potrebbe essere necessario che la stampante sondi al di sotto di quello che altrimenti sarebbe considerato il piano del piatto. \u00c8 tipico consentire ci\u00f2 durante la calibrazione aggiornando la configurazione in modo che minimum_z_position=-5 della stampante. (Una volta completata la calibrazione, \u00e8 possibile rimuovere questa impostazione dalla configurazione.) Ci sono due modi per eseguire la procedura: probing manuale ( DELTA_CALIBRATE METHOD=manual ) e automatica ( DELTA_CALIBRATE ). Il metodo di rilevamento manuale sposter\u00e0 la testa vicino al piatto e quindi attender\u00e0 che l'utente segua i passaggi descritti in \"test della carta\" per determinare la distanza effettiva tra l'ugello e letto nel luogo indicato. Per eseguire la misura di base, assicurati che la configurazione abbia una sezione [delta_calibrate] definita e quindi esegui lo strumento: G28 DELTA_CALIBRATE METHOD=manual Dopo aver sondato i sette punti verranno calcolati i nuovi parametri delta. Salva e applica questi parametri eseguendo: SAVE_CONFIG La calibrazione di base dovrebbe fornire parametri delta sufficientemente accurati per la stampa di base. Se si tratta di una nuova stampante, questo \u00e8 un buon momento per stampare alcuni oggetti di base e verificarne la funzionalit\u00e0 generale. Calibrazione delta migliorata \u00b6 La calibrazione delta di base generalmente fa un buon lavoro nel calcolo dei parametri delta in modo tale che l'ugello sia alla distanza corretta dal letto. Tuttavia, non tenta di calibrare la precisione dimensionale X e Y. \u00c8 una buona idea eseguire una calibrazione delta avanzata per verificare l'accuratezza dimensionale. Questa procedura di calibrazione richiede la stampa di un oggetto di prova e la misurazione di parti di tale oggetto di prova con un calibro digitale. Prima di eseguire una calibrazione delta avanzata, \u00e8 necessario eseguire la calibrazione delta di base (tramite il comando DELTA_CALIBRATE) e salvare i risultati (tramite il comando SAVE_CONFIG). Assicurati che non siano state apportate modifiche degne di nota alla configurazione della stampante n\u00e9 all'hardware dall'ultima esecuzione di una calibrazione delta di base (se non sei sicuro, esegui nuovamente la calibrazione delta di base , incluso SAVE_CONFIG, appena prima della stampa l'oggetto di prova descritto di seguito.) Usa uno slicer per generare il G-code dal file docs/prints/calibrate_size.stl . Estrudere l'oggetto a bassa velocit\u00e0 (ad es. 40 mm/s). Se possibile, usa una plastica rigida (come il PLA) per l'oggetto. L'oggetto ha un diametro di 140 mm. Se questo \u00e8 troppo grande per la stampante, \u00e8 possibile ridimensionarlo (ma assicurati di ridimensionare uniformemente entrambi gli assi X e Y). Se la stampante supporta stampe significativamente pi\u00f9 grandi, \u00e8 anche possibile aumentare le dimensioni di questo oggetto. Un formato pi\u00f9 grande pu\u00f2 migliorare la precisione della misurazione, ma una buona adesione di stampa \u00e8 pi\u00f9 importante di un formato di stampa pi\u00f9 grande. Stampa l'oggetto di prova e attendi che si raffreddi completamente. I comandi descritti di seguito devono essere eseguiti con le stesse impostazioni della stampante utilizzate per stampare l'oggetto di calibrazione (non eseguire DELTA_CALIBRATE tra la stampa e la misurazione, o fare qualcosa che altrimenti modificherebbe la configurazione della stampante). Se possibile, esegui le misurazioni descritte di seguito mentre l'oggetto \u00e8 ancora attaccato al piano di stampa, ma non preoccuparti se la parte si stacca dal letto: cerca solo di evitare di piegare l'oggetto durante l'esecuzione delle misurazioni. Inizia misurando la distanza tra il pilastro centrale e il pilastro accanto all'etichetta \"A\" (che dovrebbe anche puntare verso la torre \"A\"). Quindi procedere in senso antiorario e misurare le distanze tra il pilastro centrale e gli altri pilastri (distanza dal centro al pilastro attraverso l'etichetta C, distanza dal centro al pilastro con l'etichetta B, ecc.). Inserisci questi parametri in Klipper con un elenco separato da virgole di numeri in virgola mobile: DELTA_ANALYZE CENTER_DISTS=<a_dist>,<far_c_dist>,<b_dist>,<far_a_dist>,<c_dist>,<far_b_dist> Fornisci i valori senza spazi tra di loro. Quindi misurare la distanza tra il montante A e il montante di fronte all'etichetta C. Quindi andare in senso antiorario e misurare la distanza tra il pilastro di fronte a C e il pilastro B, la distanza tra il pilastro B e il pilastro di fronte a A, e cos\u00ec via. Inserisci questi parametri in Klipper: DELTA_ANALYZE OUTER_DISTS=<a_to_far_c>,<far_c_to_b>,<b_to_far_a>,<far_a_to_c>,<c_to_far_b>,<far_b_to_a> A questo punto va bene rimuovere l'oggetto dal letto. Le misure finali sono dei pilastri stessi. Misurare la dimensione del pilastro centrale lungo il raggio A, poi il raggio B e poi il raggio C. Inseriscili in Klipper: DELTA_ANALYZE CENTER_PILLAR_WIDTHS=<a>,<b>,<c> Le misure finali sono dei pilastri esterni. Inizia misurando la distanza del pilastro A lungo la linea da A al pilastro di fronte a C. Quindi andare in senso antiorario e misurare i restanti pilastri esterni (pilastro di fronte a C lungo la linea a B, pilastro B lungo la linea a pilastro di fronte ad A, ecc.). E inseriscili in Klipper: DELTA_ANALYZE OUTER_PILLAR_WIDTHS=<a>,<far_c>,<b>,<far_a>,<c>,<far_b> Se l'oggetto \u00e8 stato ridimensionato a una dimensione inferiore o superiore, fornire il fattore di scala utilizzato durante il taglio dell'oggetto: DELTA_ANALYZE SCALE=1.0 (Un valore di scala di 2,0 significherebbe che l'oggetto \u00e8 il doppio della sua dimensione originale, 0,5 sarebbe la met\u00e0 della sua dimensione originale.) Infine, esegui la calibrazione delta avanzata eseguendo: DELTA_ANALYZE CALIBRATE=extended Il completamento di questo comando pu\u00f2 richiedere diversi minuti. Dopo il completamento, calcoler\u00e0 i parametri delta aggiornati (raggio delta, angoli della torre, posizioni dei finecorsa e lunghezze dei bracci). Utilizzare il comando SAVE_CONFIG per salvare e applicare le impostazioni: SAVE_CONFIG Il comando SAVE_CONFIG salver\u00e0 sia i parametri delta aggiornati che le informazioni dalle misurazioni della distanza. Anche i futuri comandi DELTA_CALIBRATE utilizzeranno queste informazioni sulla distanza. Non tentare di reinserire le misurazioni grezze della distanza dopo aver eseguito SAVE_CONFIG, poich\u00e9 questo comando modifica la configurazione della stampante e le misurazioni grezze non vengono pi\u00f9 applicate. Note aggiuntive \u00b6 Se la stampante delta ha una buona precisione dimensionale, la distanza tra due pilastri qualsiasi dovrebbe essere di circa 74 mm e la larghezza di ogni pilastro dovrebbe essere di circa 9 mm. (In particolare, l'obiettivo \u00e8 che la distanza tra due pilastri qualsiasi meno la larghezza di uno dei pilastri sia esattamente 65 mm.) In caso di imprecisione dimensionale nella parte, la routine DELTA_ANALYZE calcoler\u00e0 nuovi parametri delta utilizzando entrambe le misurazioni della distanza e le misurazioni dell'altezza precedenti dall'ultimo comando DELTA_CALIBRATE. DELTA_ANALYZE pu\u00f2 produrre parametri delta sorprendenti. Ad esempio, pu\u00f2 suggerire lunghezze dei bracci che non corrispondono alle lunghezze effettive dei bracci della stampante. Nonostante ci\u00f2, i test hanno dimostrato che DELTA_ANALYZE produce spesso risultati superiori. Si ritiene che i parametri delta calcolati siano in grado di tenere conto di lievi errori in altre parti dell'hardware. Ad esempio, piccole differenze nella lunghezza del braccio possono comportare un'inclinazione dell'effettore e parte di tale inclinazione pu\u00f2 essere spiegata regolando i parametri della lunghezza del braccio. Utilizzo della mesh del piatto su un delta \u00b6 \u00c8 possibile utilizzare bed mesh su un delta. Tuttavia, \u00e8 importante ottenere una buona calibrazione delta prima di abilitare una mesh del letto. L'esecuzione della mesh del letto con una scarsa calibrazione delta comporter\u00e0 risultati confusi e scarsi. Si noti che l'esecuzione della calibrazione delta invalider\u00e0 qualsiasi mesh del piatto precedentemente ottenuto. Dopo aver eseguito una nuova calibrazione delta, assicurati di eseguire nuovamente BED_MESH_CALIBRATE.","title":"Calibrazione delta"},{"location":"Delta_Calibrate.html#calibrazione-delta","text":"Questo documento descrive il sistema di calibrazione automatica di Klipper per stampanti \"delta\". La calibrazione delta implica la ricerca delle posizioni dei finecorsa della torre, degli angoli della torre, del raggio delta e delle lunghezze del braccio delta. Queste impostazioni controllano il movimento della stampante su una stampante delta. Ognuno di questi parametri ha un impatto non evidente e non lineare ed \u00e8 difficile calibrarli manualmente. Al contrario, il codice di calibrazione del software pu\u00f2 fornire risultati eccellenti in pochi minuti di tempo. Non \u00e8 necessario alcun hardware di rilevamento speciale. In definitiva, la calibrazione delta dipende dalla precisione degli interruttori di fine corsa della torre. Se si utilizzano i driver per motori passo-passo Trinamic, considerare l'abilitazione del rilevamento fase endstop per migliorare la precisione di tali interruttori.","title":"Calibrazione delta"},{"location":"Delta_Calibrate.html#sonda-automatica-vs-manuale","text":"Klipper supporta la calibrazione dei parametri delta tramite un metodo di sonda manuale o tramite una sonda Z automatica. Numerosi kit di stampanti delta sono dotati di sonde Z automatiche che non sono sufficientemente accurate (in particolare, piccole differenze nella lunghezza del braccio possono causare l'inclinazione dell'effettore che pu\u00f2 distorcere una sonda automatica). Se si utilizza una sonda automatica, prima calibrare la sonda e quindi verificare la presenza di un bias posizione sonda . Se la sonda automatica ha una polarizzazione superiore a 25 micron (0,025 mm), utilizzare invece la sonda manuale. Il probing manuale richiede solo pochi minuti ed elimina l'errore introdotto dalla sonda. Se si utilizza una sonda montata sul lato dell'hotend (ovvero ha un offset X o Y), tenere presente che l'esecuzione della calibrazione delta invalider\u00e0 i risultati della calibrazione della sonda. Questi tipi di sonde sono raramente adatti per l'uso su un delta (poich\u00e9 una minore inclinazione dell'effettore risulter\u00e0 in una distorsione della posizione della sonda). Se si utilizza comunque la sonda, assicurarsi di eseguire nuovamente la calibrazione della sonda dopo qualsiasi calibrazione delta.","title":"Sonda automatica vs manuale"},{"location":"Delta_Calibrate.html#calibrazione-delta-di-base","text":"Klipper ha un comando DELTA_CALIBRATE che pu\u00f2 eseguire la calibrazione delta di base. Questo comando sonda sette diversi punti sul letto e calcola nuovi valori per gli angoli della torre, i punti terminali della torre e il raggio delta. Per eseguire questa calibrazione devono essere forniti i parametri delta iniziali (lunghezze dei bracci, raggio e posizioni dei finecorsa) e devono avere una precisione di pochi millimetri. La maggior parte dei kit della stampante delta fornisce questi parametri: configurare la stampante con queste impostazioni predefinite iniziali e quindi eseguire il comando DELTA_CALIBRATE come descritto di seguito. Se non sono disponibili impostazioni predefinite, cercare online una guida alla calibrazione delta che possa fornire un punto di partenza di base. Durante il processo di calibrazione delta potrebbe essere necessario che la stampante sondi al di sotto di quello che altrimenti sarebbe considerato il piano del piatto. \u00c8 tipico consentire ci\u00f2 durante la calibrazione aggiornando la configurazione in modo che minimum_z_position=-5 della stampante. (Una volta completata la calibrazione, \u00e8 possibile rimuovere questa impostazione dalla configurazione.) Ci sono due modi per eseguire la procedura: probing manuale ( DELTA_CALIBRATE METHOD=manual ) e automatica ( DELTA_CALIBRATE ). Il metodo di rilevamento manuale sposter\u00e0 la testa vicino al piatto e quindi attender\u00e0 che l'utente segua i passaggi descritti in \"test della carta\" per determinare la distanza effettiva tra l'ugello e letto nel luogo indicato. Per eseguire la misura di base, assicurati che la configurazione abbia una sezione [delta_calibrate] definita e quindi esegui lo strumento: G28 DELTA_CALIBRATE METHOD=manual Dopo aver sondato i sette punti verranno calcolati i nuovi parametri delta. Salva e applica questi parametri eseguendo: SAVE_CONFIG La calibrazione di base dovrebbe fornire parametri delta sufficientemente accurati per la stampa di base. Se si tratta di una nuova stampante, questo \u00e8 un buon momento per stampare alcuni oggetti di base e verificarne la funzionalit\u00e0 generale.","title":"Calibrazione delta di base"},{"location":"Delta_Calibrate.html#calibrazione-delta-migliorata","text":"La calibrazione delta di base generalmente fa un buon lavoro nel calcolo dei parametri delta in modo tale che l'ugello sia alla distanza corretta dal letto. Tuttavia, non tenta di calibrare la precisione dimensionale X e Y. \u00c8 una buona idea eseguire una calibrazione delta avanzata per verificare l'accuratezza dimensionale. Questa procedura di calibrazione richiede la stampa di un oggetto di prova e la misurazione di parti di tale oggetto di prova con un calibro digitale. Prima di eseguire una calibrazione delta avanzata, \u00e8 necessario eseguire la calibrazione delta di base (tramite il comando DELTA_CALIBRATE) e salvare i risultati (tramite il comando SAVE_CONFIG). Assicurati che non siano state apportate modifiche degne di nota alla configurazione della stampante n\u00e9 all'hardware dall'ultima esecuzione di una calibrazione delta di base (se non sei sicuro, esegui nuovamente la calibrazione delta di base , incluso SAVE_CONFIG, appena prima della stampa l'oggetto di prova descritto di seguito.) Usa uno slicer per generare il G-code dal file docs/prints/calibrate_size.stl . Estrudere l'oggetto a bassa velocit\u00e0 (ad es. 40 mm/s). Se possibile, usa una plastica rigida (come il PLA) per l'oggetto. L'oggetto ha un diametro di 140 mm. Se questo \u00e8 troppo grande per la stampante, \u00e8 possibile ridimensionarlo (ma assicurati di ridimensionare uniformemente entrambi gli assi X e Y). Se la stampante supporta stampe significativamente pi\u00f9 grandi, \u00e8 anche possibile aumentare le dimensioni di questo oggetto. Un formato pi\u00f9 grande pu\u00f2 migliorare la precisione della misurazione, ma una buona adesione di stampa \u00e8 pi\u00f9 importante di un formato di stampa pi\u00f9 grande. Stampa l'oggetto di prova e attendi che si raffreddi completamente. I comandi descritti di seguito devono essere eseguiti con le stesse impostazioni della stampante utilizzate per stampare l'oggetto di calibrazione (non eseguire DELTA_CALIBRATE tra la stampa e la misurazione, o fare qualcosa che altrimenti modificherebbe la configurazione della stampante). Se possibile, esegui le misurazioni descritte di seguito mentre l'oggetto \u00e8 ancora attaccato al piano di stampa, ma non preoccuparti se la parte si stacca dal letto: cerca solo di evitare di piegare l'oggetto durante l'esecuzione delle misurazioni. Inizia misurando la distanza tra il pilastro centrale e il pilastro accanto all'etichetta \"A\" (che dovrebbe anche puntare verso la torre \"A\"). Quindi procedere in senso antiorario e misurare le distanze tra il pilastro centrale e gli altri pilastri (distanza dal centro al pilastro attraverso l'etichetta C, distanza dal centro al pilastro con l'etichetta B, ecc.). Inserisci questi parametri in Klipper con un elenco separato da virgole di numeri in virgola mobile: DELTA_ANALYZE CENTER_DISTS=<a_dist>,<far_c_dist>,<b_dist>,<far_a_dist>,<c_dist>,<far_b_dist> Fornisci i valori senza spazi tra di loro. Quindi misurare la distanza tra il montante A e il montante di fronte all'etichetta C. Quindi andare in senso antiorario e misurare la distanza tra il pilastro di fronte a C e il pilastro B, la distanza tra il pilastro B e il pilastro di fronte a A, e cos\u00ec via. Inserisci questi parametri in Klipper: DELTA_ANALYZE OUTER_DISTS=<a_to_far_c>,<far_c_to_b>,<b_to_far_a>,<far_a_to_c>,<c_to_far_b>,<far_b_to_a> A questo punto va bene rimuovere l'oggetto dal letto. Le misure finali sono dei pilastri stessi. Misurare la dimensione del pilastro centrale lungo il raggio A, poi il raggio B e poi il raggio C. Inseriscili in Klipper: DELTA_ANALYZE CENTER_PILLAR_WIDTHS=<a>,<b>,<c> Le misure finali sono dei pilastri esterni. Inizia misurando la distanza del pilastro A lungo la linea da A al pilastro di fronte a C. Quindi andare in senso antiorario e misurare i restanti pilastri esterni (pilastro di fronte a C lungo la linea a B, pilastro B lungo la linea a pilastro di fronte ad A, ecc.). E inseriscili in Klipper: DELTA_ANALYZE OUTER_PILLAR_WIDTHS=<a>,<far_c>,<b>,<far_a>,<c>,<far_b> Se l'oggetto \u00e8 stato ridimensionato a una dimensione inferiore o superiore, fornire il fattore di scala utilizzato durante il taglio dell'oggetto: DELTA_ANALYZE SCALE=1.0 (Un valore di scala di 2,0 significherebbe che l'oggetto \u00e8 il doppio della sua dimensione originale, 0,5 sarebbe la met\u00e0 della sua dimensione originale.) Infine, esegui la calibrazione delta avanzata eseguendo: DELTA_ANALYZE CALIBRATE=extended Il completamento di questo comando pu\u00f2 richiedere diversi minuti. Dopo il completamento, calcoler\u00e0 i parametri delta aggiornati (raggio delta, angoli della torre, posizioni dei finecorsa e lunghezze dei bracci). Utilizzare il comando SAVE_CONFIG per salvare e applicare le impostazioni: SAVE_CONFIG Il comando SAVE_CONFIG salver\u00e0 sia i parametri delta aggiornati che le informazioni dalle misurazioni della distanza. Anche i futuri comandi DELTA_CALIBRATE utilizzeranno queste informazioni sulla distanza. Non tentare di reinserire le misurazioni grezze della distanza dopo aver eseguito SAVE_CONFIG, poich\u00e9 questo comando modifica la configurazione della stampante e le misurazioni grezze non vengono pi\u00f9 applicate.","title":"Calibrazione delta migliorata"},{"location":"Delta_Calibrate.html#note-aggiuntive","text":"Se la stampante delta ha una buona precisione dimensionale, la distanza tra due pilastri qualsiasi dovrebbe essere di circa 74 mm e la larghezza di ogni pilastro dovrebbe essere di circa 9 mm. (In particolare, l'obiettivo \u00e8 che la distanza tra due pilastri qualsiasi meno la larghezza di uno dei pilastri sia esattamente 65 mm.) In caso di imprecisione dimensionale nella parte, la routine DELTA_ANALYZE calcoler\u00e0 nuovi parametri delta utilizzando entrambe le misurazioni della distanza e le misurazioni dell'altezza precedenti dall'ultimo comando DELTA_CALIBRATE. DELTA_ANALYZE pu\u00f2 produrre parametri delta sorprendenti. Ad esempio, pu\u00f2 suggerire lunghezze dei bracci che non corrispondono alle lunghezze effettive dei bracci della stampante. Nonostante ci\u00f2, i test hanno dimostrato che DELTA_ANALYZE produce spesso risultati superiori. Si ritiene che i parametri delta calcolati siano in grado di tenere conto di lievi errori in altre parti dell'hardware. Ad esempio, piccole differenze nella lunghezza del braccio possono comportare un'inclinazione dell'effettore e parte di tale inclinazione pu\u00f2 essere spiegata regolando i parametri della lunghezza del braccio.","title":"Note aggiuntive"},{"location":"Delta_Calibrate.html#utilizzo-della-mesh-del-piatto-su-un-delta","text":"\u00c8 possibile utilizzare bed mesh su un delta. Tuttavia, \u00e8 importante ottenere una buona calibrazione delta prima di abilitare una mesh del letto. L'esecuzione della mesh del letto con una scarsa calibrazione delta comporter\u00e0 risultati confusi e scarsi. Si noti che l'esecuzione della calibrazione delta invalider\u00e0 qualsiasi mesh del piatto precedentemente ottenuto. Dopo aver eseguito una nuova calibrazione delta, assicurati di eseguire nuovamente BED_MESH_CALIBRATE.","title":"Utilizzo della mesh del piatto su un delta"},{"location":"Endstop_Phase.html","text":"Fase di fine corsa \u00b6 Questo documento descrive il sistema di finecorsa di Klipper regolato sulla fase degli stepper. Questa funzionalit\u00e0 pu\u00f2 migliorare la precisione degli interruttori di fine corsa tradizionali. \u00c8 particolarmente utile quando si utilizza un driver per motori passo-passo Trinamic con configurazione runtime. Un tipico interruttore di fine corsa ha una precisione di circa 100 micron. (Ogni volta l'interruttore pu\u00f2 attivarsi leggermente prima o leggermente dopo.) Sebbene si tratti di un errore relativamente piccolo, pu\u00f2 causare artefatti indesiderati. In particolare, questa deviazione di posizione pu\u00f2 essere evidente quando si stampa il primo strato di un oggetto. Al contrario, i tipici motori passo-passo possono ottenere una precisione significativamente maggiore. Il meccanismo di fine corsa con regolazione della fase pu\u00f2 utilizzare la precisione dei motori passo-passo per migliorare la precisione degli interruttori di fine corsa. Un motore passo-passo si muove ciclicamente attraverso una serie di fasi fino a completare quattro \"passi completi\". Quindi, un motore passo-passo che utilizza 16 micro-passi avrebbe 64 fasi e quando si muove in direzione positiva passerebbe in rassegna le fasi: 0, 1, 2, ... 61, 62, 63, 0, 1, 2, ecc. Fondamentalmente, quando il motore passo-passo si trova in una posizione particolare su una guida lineare, dovrebbe essere sempre nella stessa fase passo-passo. Pertanto, quando un carrello fa scattare l'interruttore di fine corsa, lo stepper che controlla quel carrello dovrebbe essere sempre nella stessa fase del motore passo-passo. Il sistema di fase finecorsa di Klipper combina la fase del motore con l'attivazione del finecorsa per migliorare la precisione. Per utilizzare questa funzionalit\u00e0 \u00e8 necessario essere in grado di identificare la fase del motore passo-passo. Se si utilizzano i driver Trinamic TMC2130, TMC2208, TMC2224 o TMC2660 in modalit\u00e0 di configurazione runtime (cio\u00e8 non in modalit\u00e0 stand-alone), Klipper pu\u00f2 interrogare la fase stepper dal driver. (\u00c8 anche possibile utilizzare questo sistema su driver stepper tradizionali se \u00e8 possibile ripristinare in modo affidabile i driver stepper - vedere sotto per i dettagli.) Taratura fasi dei finecorsa \u00b6 Se si utilizzano driver Trinamic per motori passo-passo in configurazione runtime, \u00e8 possibile calibrare le fasi di fine corsa utilizzando il comando ENDSTOP_PHASE_CALIBRATE. Inizia aggiungendo quanto segue al file di configurazione: [endstop_phase] Quindi RIAVVIARE la stampante ed eseguire un comando G28 seguito da un comando ENDSTOP_PHASE_CALIBRATE . Quindi spostare la testina in una nuova posizione ed eseguire nuovamente G28 . Prova a spostare la testina in diverse posizioni ed esegui nuovamente G28 da ciascuna posizione. Esegui almeno cinque comandi G28 . Dopo aver eseguito quanto sopra, il comando ENDSTOP_PHASE_CALIBRATE riporter\u00e0 spesso la stessa (o quasi) fase per lo stepper. Questa fase pu\u00f2 essere salvata nel file di configurazione in modo che tutti i futuri comandi G28 utilizzino quella fase. (Quindi, nelle future operazioni di homing, Klipper otterr\u00e0 la stessa posizione anche se il finecorsa si attiva un po' prima o un po' dopo.) Per salvare la fase di fine corsa per un particolare motore passo-passo, eseguire qualcosa di simile a: ENDSTOP_PHASE_CALIBRATE STEPPER=stepper_z Esegui quanto sopra per tutti gli stepper che desideri salvare. Tipicamente, si usa questo su stepper_z per stampanti cartesiane e corexy e per stepper_a, stepper_b e stepper_c su stampanti delta. Infine, eseguire quanto segue per aggiornare il file di configurazione con i dati: SAVE_CONFIG Note aggiuntive \u00b6 Questa funzione \u00e8 particolarmente utile sulle stampanti delta e sul fine corsa Z delle stampanti cartesiane/corexy. \u00c8 possibile utilizzare questa funzione sui fine corsa XY delle stampanti cartesiane, ma ci\u00f2 non \u00e8 particolarmente utile poich\u00e9 \u00e8 improbabile che un errore minore nella posizione dell'arresto X/Y influisca sulla qualit\u00e0 di stampa. Non \u00e8 valido utilizzare questa funzione sugli arresti XY delle stampanti corexy (poich\u00e9 la posizione XY non \u00e8 determinata da un singolo stepper sulla cinematica corexy). Non \u00e8 valido utilizzare questa funzione su una stampante che utilizza un fine corsa Z \"probe:z_virtual_endstop\" (poich\u00e9 la fase stepper \u00e8 stabile solo se il fine corsa si trova in una posizione statica su una guida). Dopo aver calibrato la fase del finecorsa, se il finecorsa viene successivamente spostato o regolato, sar\u00e0 necessario ricalibrarlo. Rimuovere i dati di calibrazione dal file di configurazione ed eseguire nuovamente i passaggi precedenti. Per utilizzare questo sistema, il finecorsa deve essere sufficientemente preciso da identificare la posizione dello stepper entro due \"passi completi\". Quindi, ad esempio, se uno stepper utilizza 16 micropassi con una distanza del passo di 0,005 mm, il finecorsa deve avere una precisione di almeno 0,160 mm. Se si ottengono messaggi di errore di tipo \"Finecorsa stepper_z non corretto\", potrebbero essere dovuti a un finecorsa che non \u00e8 sufficientemente accurato. Se la ricalibrazione non aiuta, disabilitare le regolazioni della fase finecorsa rimuovendole dal file di configurazione. Se si utilizza un tradizionale asse Z controllato da stepper (come su una stampante cartesiana o corexy) insieme alle tradizionali viti di livellamento del letto, \u00e8 anche possibile utilizzare questo sistema per fare in modo che ogni strato di stampa venga eseguito su un confine \"passo completo\" . Per abilitare questa funzione, assicurati che lo slicer del G-Code sia configurato con un'altezza del livello che sia un multiplo di un \"passo completo\", abilita manualmente l'opzione endstop_align_zero nella sezione di configurazione endstop_phase (vedi config reference per ulteriori dettagli), quindi livellare nuovamente le viti del piatto. \u00c8 possibile utilizzare questo sistema con driver per motori passo-passo tradizionali (non Trinamici). Tuttavia, per fare ci\u00f2 \u00e8 necessario assicurarsi che i driver del motore passo-passo vengano ripristinati ogni volta che viene ripristinato il microcontrollore. (Se i due vengono sempre ripristinati insieme, Klipper pu\u00f2 determinare la fase dello stepper tracciando il numero totale di passaggi che ha comandato allo stepper di muoversi.) Attualmente, l'unico modo per farlo in modo affidabile \u00e8 se sia il microcontrollore che il motore passo-passo i driver siano alimentati esclusivamente da USB e che l'alimentazione USB sia fornita da un host in esecuzione su un Raspberry Pi. In questa situazione \u00e8 possibile specificare una configurazione mcu con \"restart_method: rpi_usb\" - quell'opzione far\u00e0 in modo che il microcontrollore venga sempre ripristinato tramite un ripristino dell'alimentazione USB, il che farebbe in modo che sia il microcontrollore che i driver del motore passo-passo siano resettare insieme. Se si utilizza questo meccanismo, \u00e8 necessario configurare manualmente le sezioni di configurazione \"trigger_phase\" (consultare config reference per i dettagli).","title":"Fase di fine corsa"},{"location":"Endstop_Phase.html#fase-di-fine-corsa","text":"Questo documento descrive il sistema di finecorsa di Klipper regolato sulla fase degli stepper. Questa funzionalit\u00e0 pu\u00f2 migliorare la precisione degli interruttori di fine corsa tradizionali. \u00c8 particolarmente utile quando si utilizza un driver per motori passo-passo Trinamic con configurazione runtime. Un tipico interruttore di fine corsa ha una precisione di circa 100 micron. (Ogni volta l'interruttore pu\u00f2 attivarsi leggermente prima o leggermente dopo.) Sebbene si tratti di un errore relativamente piccolo, pu\u00f2 causare artefatti indesiderati. In particolare, questa deviazione di posizione pu\u00f2 essere evidente quando si stampa il primo strato di un oggetto. Al contrario, i tipici motori passo-passo possono ottenere una precisione significativamente maggiore. Il meccanismo di fine corsa con regolazione della fase pu\u00f2 utilizzare la precisione dei motori passo-passo per migliorare la precisione degli interruttori di fine corsa. Un motore passo-passo si muove ciclicamente attraverso una serie di fasi fino a completare quattro \"passi completi\". Quindi, un motore passo-passo che utilizza 16 micro-passi avrebbe 64 fasi e quando si muove in direzione positiva passerebbe in rassegna le fasi: 0, 1, 2, ... 61, 62, 63, 0, 1, 2, ecc. Fondamentalmente, quando il motore passo-passo si trova in una posizione particolare su una guida lineare, dovrebbe essere sempre nella stessa fase passo-passo. Pertanto, quando un carrello fa scattare l'interruttore di fine corsa, lo stepper che controlla quel carrello dovrebbe essere sempre nella stessa fase del motore passo-passo. Il sistema di fase finecorsa di Klipper combina la fase del motore con l'attivazione del finecorsa per migliorare la precisione. Per utilizzare questa funzionalit\u00e0 \u00e8 necessario essere in grado di identificare la fase del motore passo-passo. Se si utilizzano i driver Trinamic TMC2130, TMC2208, TMC2224 o TMC2660 in modalit\u00e0 di configurazione runtime (cio\u00e8 non in modalit\u00e0 stand-alone), Klipper pu\u00f2 interrogare la fase stepper dal driver. (\u00c8 anche possibile utilizzare questo sistema su driver stepper tradizionali se \u00e8 possibile ripristinare in modo affidabile i driver stepper - vedere sotto per i dettagli.)","title":"Fase di fine corsa"},{"location":"Endstop_Phase.html#taratura-fasi-dei-finecorsa","text":"Se si utilizzano driver Trinamic per motori passo-passo in configurazione runtime, \u00e8 possibile calibrare le fasi di fine corsa utilizzando il comando ENDSTOP_PHASE_CALIBRATE. Inizia aggiungendo quanto segue al file di configurazione: [endstop_phase] Quindi RIAVVIARE la stampante ed eseguire un comando G28 seguito da un comando ENDSTOP_PHASE_CALIBRATE . Quindi spostare la testina in una nuova posizione ed eseguire nuovamente G28 . Prova a spostare la testina in diverse posizioni ed esegui nuovamente G28 da ciascuna posizione. Esegui almeno cinque comandi G28 . Dopo aver eseguito quanto sopra, il comando ENDSTOP_PHASE_CALIBRATE riporter\u00e0 spesso la stessa (o quasi) fase per lo stepper. Questa fase pu\u00f2 essere salvata nel file di configurazione in modo che tutti i futuri comandi G28 utilizzino quella fase. (Quindi, nelle future operazioni di homing, Klipper otterr\u00e0 la stessa posizione anche se il finecorsa si attiva un po' prima o un po' dopo.) Per salvare la fase di fine corsa per un particolare motore passo-passo, eseguire qualcosa di simile a: ENDSTOP_PHASE_CALIBRATE STEPPER=stepper_z Esegui quanto sopra per tutti gli stepper che desideri salvare. Tipicamente, si usa questo su stepper_z per stampanti cartesiane e corexy e per stepper_a, stepper_b e stepper_c su stampanti delta. Infine, eseguire quanto segue per aggiornare il file di configurazione con i dati: SAVE_CONFIG","title":"Taratura fasi dei finecorsa"},{"location":"Endstop_Phase.html#note-aggiuntive","text":"Questa funzione \u00e8 particolarmente utile sulle stampanti delta e sul fine corsa Z delle stampanti cartesiane/corexy. \u00c8 possibile utilizzare questa funzione sui fine corsa XY delle stampanti cartesiane, ma ci\u00f2 non \u00e8 particolarmente utile poich\u00e9 \u00e8 improbabile che un errore minore nella posizione dell'arresto X/Y influisca sulla qualit\u00e0 di stampa. Non \u00e8 valido utilizzare questa funzione sugli arresti XY delle stampanti corexy (poich\u00e9 la posizione XY non \u00e8 determinata da un singolo stepper sulla cinematica corexy). Non \u00e8 valido utilizzare questa funzione su una stampante che utilizza un fine corsa Z \"probe:z_virtual_endstop\" (poich\u00e9 la fase stepper \u00e8 stabile solo se il fine corsa si trova in una posizione statica su una guida). Dopo aver calibrato la fase del finecorsa, se il finecorsa viene successivamente spostato o regolato, sar\u00e0 necessario ricalibrarlo. Rimuovere i dati di calibrazione dal file di configurazione ed eseguire nuovamente i passaggi precedenti. Per utilizzare questo sistema, il finecorsa deve essere sufficientemente preciso da identificare la posizione dello stepper entro due \"passi completi\". Quindi, ad esempio, se uno stepper utilizza 16 micropassi con una distanza del passo di 0,005 mm, il finecorsa deve avere una precisione di almeno 0,160 mm. Se si ottengono messaggi di errore di tipo \"Finecorsa stepper_z non corretto\", potrebbero essere dovuti a un finecorsa che non \u00e8 sufficientemente accurato. Se la ricalibrazione non aiuta, disabilitare le regolazioni della fase finecorsa rimuovendole dal file di configurazione. Se si utilizza un tradizionale asse Z controllato da stepper (come su una stampante cartesiana o corexy) insieme alle tradizionali viti di livellamento del letto, \u00e8 anche possibile utilizzare questo sistema per fare in modo che ogni strato di stampa venga eseguito su un confine \"passo completo\" . Per abilitare questa funzione, assicurati che lo slicer del G-Code sia configurato con un'altezza del livello che sia un multiplo di un \"passo completo\", abilita manualmente l'opzione endstop_align_zero nella sezione di configurazione endstop_phase (vedi config reference per ulteriori dettagli), quindi livellare nuovamente le viti del piatto. \u00c8 possibile utilizzare questo sistema con driver per motori passo-passo tradizionali (non Trinamici). Tuttavia, per fare ci\u00f2 \u00e8 necessario assicurarsi che i driver del motore passo-passo vengano ripristinati ogni volta che viene ripristinato il microcontrollore. (Se i due vengono sempre ripristinati insieme, Klipper pu\u00f2 determinare la fase dello stepper tracciando il numero totale di passaggi che ha comandato allo stepper di muoversi.) Attualmente, l'unico modo per farlo in modo affidabile \u00e8 se sia il microcontrollore che il motore passo-passo i driver siano alimentati esclusivamente da USB e che l'alimentazione USB sia fornita da un host in esecuzione su un Raspberry Pi. In questa situazione \u00e8 possibile specificare una configurazione mcu con \"restart_method: rpi_usb\" - quell'opzione far\u00e0 in modo che il microcontrollore venga sempre ripristinato tramite un ripristino dell'alimentazione USB, il che farebbe in modo che sia il microcontrollore che i driver del motore passo-passo siano resettare insieme. Se si utilizza questo meccanismo, \u00e8 necessario configurare manualmente le sezioni di configurazione \"trigger_phase\" (consultare config reference per i dettagli).","title":"Note aggiuntive"},{"location":"Example_Configs.html","text":"Esempi di configurazioni \u00b6 Questo documento contiene le linee guida per contribuire a creare un esempio di configurazione di Klipper nella repository github di Klipper (situato nella directory config ). Nota che il server Klipper Community Discourse \u00e8 anche una risorsa utile per trovare e condividere file di configurazione. Linee guida \u00b6 Seleziona il prefisso del nome del file di configurazione appropriato: Il prefisso printer viene utilizzato per le stampanti stock vendute da un produttore tradizionale. Il prefisso generic viene utilizzato per una scheda per stampante 3d che pu\u00f2 essere utilizzata in molti diversi tipi di stampanti. Il prefisso kit \u00e8 per le stampanti 3d assemblate secondo una specifica ampiamente utilizzata. Queste stampanti \"kit\" sono generalmente distinte dalle normali \"stampanti\" in quanto non sono vendute da un produttore. Il prefisso sample viene utilizzato per i \"ritagli\" di configurazione che \u00e8 possibile copiare e incollare nel file di configurazione principale. Il prefisso example viene utilizzato per descrivere la cinematica della stampante. Questo tipo di configurazione viene in genere aggiunto solo insieme al codice per un nuovo tipo di cinematica della stampante. Tutti i file di configurazione devono terminare con un suffisso .cfg . I file di configurazione della stampante devono terminare con un anno seguito da .cfg (ad es. -2019.cfg ). In questo caso, l'anno \u00e8 un anno approssimativo in cui \u00e8 stata venduta la stampante specificata. Non utilizzare spazi o caratteri speciali nel nome del file di configurazione. Il nome del file deve contenere solo i caratteri A-Z , a-z , 0-9 , - e . . Klipper deve essere in grado di avviare il file di configurazione di esempio printer , generic e kit senza errori. Questi file di configurazione devono essere aggiunti al test di regressione test/klippy/printers.test . Aggiungi nuovi file di configurazione a quel test case nella sezione appropriata e in ordine alfabetico all'interno di quella sezione. La configurazione di esempio dovrebbe essere per la configurazione \"stock\" della stampante. (Ci sono troppe configurazioni \"personalizzate\" da tenere traccia nel repository principale di Klipper.) Allo stesso modo, aggiungiamo solo file di configurazione di esempio per stampanti, kit e schede che hanno la popolarit\u00e0 principale (ad esempio, dovrebbero essercene almeno 100 in uso attivo). Prendi in considerazione l'utilizzo del server Klipper Community Discourse per altre configurazioni. Only specify those devices present on the given printer or board. Do not specify settings specific to your particular setup. For generic config files, only those devices on the mainboard should be described. For example, it would not make sense to add a display config section to a \"generic\" config as there is no way to know if the board will be attached to that type of display. If the board has a specific hardware port to facilitate an optional peripheral (eg, a bltouch port) then one can add a \"commented out\" config section for the given device. Non specificare pressure_advance in una configurazione di esempio, poich\u00e9 quel valore \u00e8 specifico del filamento, non dell'hardware della stampante. Allo stesso modo, non specificare le impostazioni max_extrude_only_velocity n\u00e9 max_extrude_only_accel . Non specificare una sezione di configurazione contenente un percorso host o hardware host. Ad esempio, non specificare le sezioni di configurazione [virtual_sdcard] n\u00e9 [temperature_host] . Definire solo le macro che utilizzano funzionalit\u00e0 specifiche per la stampante specificata o per definire i G-code comunemente emessi dagli slicer configurati per la stampante specificata. Where possible, it is best to use the same wording, phrasing, indentation, and section ordering as the existing config files. The top of each config file should list the type of micro-controller the user should select during \"make menuconfig\". It should also have a reference to \"docs/Config_Reference.md\". Non copiare la documentazione sul campo nei file di configurazione di esempio. (In questo modo si crea un onere di manutenzione poich\u00e9 un aggiornamento della documentazione richiederebbe quindi la modifica in molti punti.) I file di configurazione di esempio non devono contenere una sezione \"SAVE_CONFIG\". Se necessario, copiare i campi rilevanti dalla sezione SAVE_CONFIG alla sezione appropriata nell'area di configurazione principale. Usa la sintassi field: value invece di field=value . Quando si aggiunge la rotation_distance a un estrusore \u00e8 preferibile specificare un gear_ratio se l'estrusore ha un meccanismo di ingranaggi. Ci aspettiamo che la rotation_distance nelle configurazioni di esempio sia correlata alla circonferenza dell'ingranaggio nell'estrusore: normalmente \u00e8 nell'intervallo da 20 a 35 mm. Quando si specifica un gear_ratio \u00e8 preferibile specificare gli ingranaggi effettivi sul meccanismo (ad esempio, preferire gear_ratio: 80:20 su gear_ratio: 4:1 ). Per ulteriori informazioni, vedere il documento sulla distanza di rotazione . Evitare di definire valori di campo impostati sul valore predefinito. Ad esempio, non si dovrebbe specificare min_extrude_temp: 170 poich\u00e9 questo \u00e8 gi\u00e0 il valore predefinito. Ove possibile, le righe non devono superare le 80 colonne. Evita di aggiungere messaggi di attribuzione o revisione ai file di configurazione. (Ad esempio, evita di aggiungere righe come \"questo file \u00e8 stato creato da...\".) Inserisci l'attribuzione e cambia la cronologia nel messaggio di commit git. Non utilizzare alcuna funzionalit\u00e0 deprecata nel file di configurazione di esempio. Non disabilitare un sistema di sicurezza predefinito in un file di configurazione di esempio. Ad esempio, una configurazione non dovrebbe specificare una max_extrude_cross_section personalizzata. Non abilitare le funzionalit\u00e0 di debug. Ad esempio, non dovrebbe esserci una sezione di configurazione force_move . Tutte le schede note supportate da Klipper possono utilizzare la velocit\u00e0 di trasmissione seriale predefinita di 250000. Non consigliare una velocit\u00e0 di trasmissione diversa in un file di configurazione di esempio. I file di configurazione di esempio vengono inviati creando una \"richiesta pull\" di github. Si prega di seguire anche le indicazioni nel documento per contributi .","title":"Esempi di configurazioni"},{"location":"Example_Configs.html#esempi-di-configurazioni","text":"Questo documento contiene le linee guida per contribuire a creare un esempio di configurazione di Klipper nella repository github di Klipper (situato nella directory config ). Nota che il server Klipper Community Discourse \u00e8 anche una risorsa utile per trovare e condividere file di configurazione.","title":"Esempi di configurazioni"},{"location":"Example_Configs.html#linee-guida","text":"Seleziona il prefisso del nome del file di configurazione appropriato: Il prefisso printer viene utilizzato per le stampanti stock vendute da un produttore tradizionale. Il prefisso generic viene utilizzato per una scheda per stampante 3d che pu\u00f2 essere utilizzata in molti diversi tipi di stampanti. Il prefisso kit \u00e8 per le stampanti 3d assemblate secondo una specifica ampiamente utilizzata. Queste stampanti \"kit\" sono generalmente distinte dalle normali \"stampanti\" in quanto non sono vendute da un produttore. Il prefisso sample viene utilizzato per i \"ritagli\" di configurazione che \u00e8 possibile copiare e incollare nel file di configurazione principale. Il prefisso example viene utilizzato per descrivere la cinematica della stampante. Questo tipo di configurazione viene in genere aggiunto solo insieme al codice per un nuovo tipo di cinematica della stampante. Tutti i file di configurazione devono terminare con un suffisso .cfg . I file di configurazione della stampante devono terminare con un anno seguito da .cfg (ad es. -2019.cfg ). In questo caso, l'anno \u00e8 un anno approssimativo in cui \u00e8 stata venduta la stampante specificata. Non utilizzare spazi o caratteri speciali nel nome del file di configurazione. Il nome del file deve contenere solo i caratteri A-Z , a-z , 0-9 , - e . . Klipper deve essere in grado di avviare il file di configurazione di esempio printer , generic e kit senza errori. Questi file di configurazione devono essere aggiunti al test di regressione test/klippy/printers.test . Aggiungi nuovi file di configurazione a quel test case nella sezione appropriata e in ordine alfabetico all'interno di quella sezione. La configurazione di esempio dovrebbe essere per la configurazione \"stock\" della stampante. (Ci sono troppe configurazioni \"personalizzate\" da tenere traccia nel repository principale di Klipper.) Allo stesso modo, aggiungiamo solo file di configurazione di esempio per stampanti, kit e schede che hanno la popolarit\u00e0 principale (ad esempio, dovrebbero essercene almeno 100 in uso attivo). Prendi in considerazione l'utilizzo del server Klipper Community Discourse per altre configurazioni. Only specify those devices present on the given printer or board. Do not specify settings specific to your particular setup. For generic config files, only those devices on the mainboard should be described. For example, it would not make sense to add a display config section to a \"generic\" config as there is no way to know if the board will be attached to that type of display. If the board has a specific hardware port to facilitate an optional peripheral (eg, a bltouch port) then one can add a \"commented out\" config section for the given device. Non specificare pressure_advance in una configurazione di esempio, poich\u00e9 quel valore \u00e8 specifico del filamento, non dell'hardware della stampante. Allo stesso modo, non specificare le impostazioni max_extrude_only_velocity n\u00e9 max_extrude_only_accel . Non specificare una sezione di configurazione contenente un percorso host o hardware host. Ad esempio, non specificare le sezioni di configurazione [virtual_sdcard] n\u00e9 [temperature_host] . Definire solo le macro che utilizzano funzionalit\u00e0 specifiche per la stampante specificata o per definire i G-code comunemente emessi dagli slicer configurati per la stampante specificata. Where possible, it is best to use the same wording, phrasing, indentation, and section ordering as the existing config files. The top of each config file should list the type of micro-controller the user should select during \"make menuconfig\". It should also have a reference to \"docs/Config_Reference.md\". Non copiare la documentazione sul campo nei file di configurazione di esempio. (In questo modo si crea un onere di manutenzione poich\u00e9 un aggiornamento della documentazione richiederebbe quindi la modifica in molti punti.) I file di configurazione di esempio non devono contenere una sezione \"SAVE_CONFIG\". Se necessario, copiare i campi rilevanti dalla sezione SAVE_CONFIG alla sezione appropriata nell'area di configurazione principale. Usa la sintassi field: value invece di field=value . Quando si aggiunge la rotation_distance a un estrusore \u00e8 preferibile specificare un gear_ratio se l'estrusore ha un meccanismo di ingranaggi. Ci aspettiamo che la rotation_distance nelle configurazioni di esempio sia correlata alla circonferenza dell'ingranaggio nell'estrusore: normalmente \u00e8 nell'intervallo da 20 a 35 mm. Quando si specifica un gear_ratio \u00e8 preferibile specificare gli ingranaggi effettivi sul meccanismo (ad esempio, preferire gear_ratio: 80:20 su gear_ratio: 4:1 ). Per ulteriori informazioni, vedere il documento sulla distanza di rotazione . Evitare di definire valori di campo impostati sul valore predefinito. Ad esempio, non si dovrebbe specificare min_extrude_temp: 170 poich\u00e9 questo \u00e8 gi\u00e0 il valore predefinito. Ove possibile, le righe non devono superare le 80 colonne. Evita di aggiungere messaggi di attribuzione o revisione ai file di configurazione. (Ad esempio, evita di aggiungere righe come \"questo file \u00e8 stato creato da...\".) Inserisci l'attribuzione e cambia la cronologia nel messaggio di commit git. Non utilizzare alcuna funzionalit\u00e0 deprecata nel file di configurazione di esempio. Non disabilitare un sistema di sicurezza predefinito in un file di configurazione di esempio. Ad esempio, una configurazione non dovrebbe specificare una max_extrude_cross_section personalizzata. Non abilitare le funzionalit\u00e0 di debug. Ad esempio, non dovrebbe esserci una sezione di configurazione force_move . Tutte le schede note supportate da Klipper possono utilizzare la velocit\u00e0 di trasmissione seriale predefinita di 250000. Non consigliare una velocit\u00e0 di trasmissione diversa in un file di configurazione di esempio. I file di configurazione di esempio vengono inviati creando una \"richiesta pull\" di github. Si prega di seguire anche le indicazioni nel documento per contributi .","title":"Linee guida"},{"location":"Exclude_Object.html","text":"Escludi oggetti \u00b6 The [exclude_object] module allows Klipper to exclude objects while a print is in progress. To enable this feature include an exclude_object config section (also see the command reference and sample-macros.cfg file for a Marlin/RepRapFirmware compatible M486 G-Code macro.) A differenza di altre opzioni del firmware della stampante 3D, una stampante che esegue Klipper utilizza una suite di componenti e gli utenti hanno molte opzioni tra cui scegliere. Pertanto, al fine di fornire un'esperienza utente coerente, il modulo [exclude_object] stabilir\u00e0 un contratto o una sorta di API. Il contratto copre il contenuto del file gcode, come viene controllato lo stato interno del modulo e come tale stato viene fornito ai client. Panoramica del flusso di lavoro \u00b6 Un tipico flusso di lavoro per la stampa di un file potrebbe essere simile a: Lo slicing \u00e8 completato e il file viene caricato per la stampa. Durante il caricamento, il file viene elaborato e gli indicatori [exclude_object] vengono aggiunti al file. In alternativa, i filtri dei dati possono essere configurati per preparare i marcatori di esclusione degli oggetti in modo nativo o nella propria fase di pre-elaborazione. All'avvio della stampa, Klipper ripristiner\u00e0 [exclude_object] status . Quando Klipper elabora il blocco EXCLUDE_OBJECT_DEFINE , aggiorner\u00e0 lo stato con gli oggetti conosciuti e lo passer\u00e0 ai client. Il client pu\u00f2 utilizzare tali informazioni per presentare un'interfaccia all'utente in modo che sia possibile tenere traccia dei progressi. Klipper aggiorner\u00e0 lo stato per includere l'oggetto attualmente in stampa che il client pu\u00f2 utilizzare per scopi di visualizzazione. Se l'utente richiede la cancellazione di un oggetto, il client invier\u00e0 un comando EXCLUDE_OBJECT NAME=<nome> a Klipper. Quando Klipper elabora il comando, aggiunger\u00e0 l'oggetto all'elenco degli oggetti esclusi e aggiorner\u00e0 lo stato per i client. Il client ricever\u00e0 lo stato aggiornato da Klipper e potr\u00e0 utilizzare tali informazioni per aggiornare lo stato dell'oggetto nell'interfaccia utente. Al termine della stampa, lo stato [exclude_object] continuer\u00e0 a essere disponibile fino a quando un'altra azione non lo reimposta. Il file GCode \u00b6 L'elaborazione specializzata del gcode necessaria per supportare l'esclusione di oggetti non rientra negli obiettivi di progettazione principali di Klipper. Pertanto, questo modulo richiede che il file venga elaborato prima di essere inviato a Klipper per la stampa. L'utilizzo di uno script di post-elaborazione nello slicer o il middleware che elabora il file durante il caricamento sono due possibilit\u00e0 per preparare il file per Klipper. Uno script di post-elaborazione di riferimento \u00e8 disponibile sia come eseguibile che come libreria Python, vedere cancelobject-preprocessor . Definizioni di oggetti \u00b6 Il comando EXCLUDE_OBJECT_DEFINE viene utilizzato per fornire un riepilogo di ogni oggetto nel file gcode da stampare. Fornisce un riepilogo di un oggetto nel file. Gli oggetti non hanno bisogno di essere definiti per essere referenziati da altri comandi. Lo scopo principale di questo comando \u00e8 fornire informazioni all'interfaccia utente senza dover analizzare l'intero file gcode. Le definizioni degli oggetti sono denominate per consentire agli utenti di selezionare facilmente un oggetto da escludere e possono essere forniti metadati aggiuntivi per consentire la visualizzazione grafica dell'annullamento. I metadati attualmente definiti includono una coordinata X,Y \"CENTRO\" e un elenco \"POLYGON\" di punti X,Y che rappresentano un contorno minimo dell'oggetto. Potrebbe trattarsi di un semplice riquadro di delimitazione o di uno guscio complicato per mostrare visualizzazioni pi\u00f9 dettagliate degli oggetti stampati. Soprattutto quando i file gcode includono pi\u00f9 parti con regioni di delimitazione sovrapposte, i punti centrali diventano difficili da distinguere visivamente. POLYGONS deve essere un array compatibile con json di tuple punto [X,Y] senza spazi. Ulteriori parametri verranno salvati come stringhe nella definizione dell'oggetto e forniti negli aggiornamenti di stato. EXCLUDE_OBJECT_DEFINE NAME=calibration_pyramid CENTER=50,50 POLYGON=[[40,40],[50,60],[60,40]] All available G-Code commands are documented in the G-Code Reference Informazioni sullo stato \u00b6 The state of this module is provided to clients by the exclude_object status . Lo stato viene ripristinato quando: Il firmware di Klipper viene riavviato. C'\u00e8 un reset della [virtual_sdcard] . In particolare, questo viene ripristinato da Klipper all'inizio di una stampa. Quando viene emesso un comando EXCLUDE_OBJECT_DEFINE RESET=1 . L'elenco degli oggetti definiti \u00e8 rappresentato nel campo di stato exclude_object.objects . In un file gcode ben definito, questo sar\u00e0 fatto con i comandi EXCLUDE_OBJECT_DEFINE all'inizio del file. Ci\u00f2 fornir\u00e0 ai client i nomi e le coordinate degli oggetti in modo che l'interfaccia utente possa fornire una rappresentazione grafica degli oggetti, se lo si desidera. Man mano che la stampa procede, il campo di stato exclude_object.current_object verr\u00e0 aggiornato mentre Klipper elabora i comandi EXCLUDE_OBJECT_START e EXCLUDE_OBJECT_END . Il campo oggetto_corrente sar\u00e0 impostato anche se l'oggetto \u00e8 stato escluso. Gli oggetti non definiti contrassegnati con un EXCLUDE_OBJECT_START verranno aggiunti agli oggetti conosciuti per facilitare i suggerimenti dell'interfaccia utente, senza metadati aggiuntivi. Quando vengono emessi i comandi EXCLUDE_OBJECT , l'elenco degli oggetti esclusi viene fornito nell'array exclude_object.excluded_objects . Poich\u00e9 Klipper guarda avanti per elaborare il prossimo gcode, potrebbe esserci un ritardo tra l'emissione del comando e l'aggiornamento dello stato.","title":"Escludi oggetti"},{"location":"Exclude_Object.html#escludi-oggetti","text":"The [exclude_object] module allows Klipper to exclude objects while a print is in progress. To enable this feature include an exclude_object config section (also see the command reference and sample-macros.cfg file for a Marlin/RepRapFirmware compatible M486 G-Code macro.) A differenza di altre opzioni del firmware della stampante 3D, una stampante che esegue Klipper utilizza una suite di componenti e gli utenti hanno molte opzioni tra cui scegliere. Pertanto, al fine di fornire un'esperienza utente coerente, il modulo [exclude_object] stabilir\u00e0 un contratto o una sorta di API. Il contratto copre il contenuto del file gcode, come viene controllato lo stato interno del modulo e come tale stato viene fornito ai client.","title":"Escludi oggetti"},{"location":"Exclude_Object.html#panoramica-del-flusso-di-lavoro","text":"Un tipico flusso di lavoro per la stampa di un file potrebbe essere simile a: Lo slicing \u00e8 completato e il file viene caricato per la stampa. Durante il caricamento, il file viene elaborato e gli indicatori [exclude_object] vengono aggiunti al file. In alternativa, i filtri dei dati possono essere configurati per preparare i marcatori di esclusione degli oggetti in modo nativo o nella propria fase di pre-elaborazione. All'avvio della stampa, Klipper ripristiner\u00e0 [exclude_object] status . Quando Klipper elabora il blocco EXCLUDE_OBJECT_DEFINE , aggiorner\u00e0 lo stato con gli oggetti conosciuti e lo passer\u00e0 ai client. Il client pu\u00f2 utilizzare tali informazioni per presentare un'interfaccia all'utente in modo che sia possibile tenere traccia dei progressi. Klipper aggiorner\u00e0 lo stato per includere l'oggetto attualmente in stampa che il client pu\u00f2 utilizzare per scopi di visualizzazione. Se l'utente richiede la cancellazione di un oggetto, il client invier\u00e0 un comando EXCLUDE_OBJECT NAME=<nome> a Klipper. Quando Klipper elabora il comando, aggiunger\u00e0 l'oggetto all'elenco degli oggetti esclusi e aggiorner\u00e0 lo stato per i client. Il client ricever\u00e0 lo stato aggiornato da Klipper e potr\u00e0 utilizzare tali informazioni per aggiornare lo stato dell'oggetto nell'interfaccia utente. Al termine della stampa, lo stato [exclude_object] continuer\u00e0 a essere disponibile fino a quando un'altra azione non lo reimposta.","title":"Panoramica del flusso di lavoro"},{"location":"Exclude_Object.html#il-file-gcode","text":"L'elaborazione specializzata del gcode necessaria per supportare l'esclusione di oggetti non rientra negli obiettivi di progettazione principali di Klipper. Pertanto, questo modulo richiede che il file venga elaborato prima di essere inviato a Klipper per la stampa. L'utilizzo di uno script di post-elaborazione nello slicer o il middleware che elabora il file durante il caricamento sono due possibilit\u00e0 per preparare il file per Klipper. Uno script di post-elaborazione di riferimento \u00e8 disponibile sia come eseguibile che come libreria Python, vedere cancelobject-preprocessor .","title":"Il file GCode"},{"location":"Exclude_Object.html#definizioni-di-oggetti","text":"Il comando EXCLUDE_OBJECT_DEFINE viene utilizzato per fornire un riepilogo di ogni oggetto nel file gcode da stampare. Fornisce un riepilogo di un oggetto nel file. Gli oggetti non hanno bisogno di essere definiti per essere referenziati da altri comandi. Lo scopo principale di questo comando \u00e8 fornire informazioni all'interfaccia utente senza dover analizzare l'intero file gcode. Le definizioni degli oggetti sono denominate per consentire agli utenti di selezionare facilmente un oggetto da escludere e possono essere forniti metadati aggiuntivi per consentire la visualizzazione grafica dell'annullamento. I metadati attualmente definiti includono una coordinata X,Y \"CENTRO\" e un elenco \"POLYGON\" di punti X,Y che rappresentano un contorno minimo dell'oggetto. Potrebbe trattarsi di un semplice riquadro di delimitazione o di uno guscio complicato per mostrare visualizzazioni pi\u00f9 dettagliate degli oggetti stampati. Soprattutto quando i file gcode includono pi\u00f9 parti con regioni di delimitazione sovrapposte, i punti centrali diventano difficili da distinguere visivamente. POLYGONS deve essere un array compatibile con json di tuple punto [X,Y] senza spazi. Ulteriori parametri verranno salvati come stringhe nella definizione dell'oggetto e forniti negli aggiornamenti di stato. EXCLUDE_OBJECT_DEFINE NAME=calibration_pyramid CENTER=50,50 POLYGON=[[40,40],[50,60],[60,40]] All available G-Code commands are documented in the G-Code Reference","title":"Definizioni di oggetti"},{"location":"Exclude_Object.html#informazioni-sullo-stato","text":"The state of this module is provided to clients by the exclude_object status . Lo stato viene ripristinato quando: Il firmware di Klipper viene riavviato. C'\u00e8 un reset della [virtual_sdcard] . In particolare, questo viene ripristinato da Klipper all'inizio di una stampa. Quando viene emesso un comando EXCLUDE_OBJECT_DEFINE RESET=1 . L'elenco degli oggetti definiti \u00e8 rappresentato nel campo di stato exclude_object.objects . In un file gcode ben definito, questo sar\u00e0 fatto con i comandi EXCLUDE_OBJECT_DEFINE all'inizio del file. Ci\u00f2 fornir\u00e0 ai client i nomi e le coordinate degli oggetti in modo che l'interfaccia utente possa fornire una rappresentazione grafica degli oggetti, se lo si desidera. Man mano che la stampa procede, il campo di stato exclude_object.current_object verr\u00e0 aggiornato mentre Klipper elabora i comandi EXCLUDE_OBJECT_START e EXCLUDE_OBJECT_END . Il campo oggetto_corrente sar\u00e0 impostato anche se l'oggetto \u00e8 stato escluso. Gli oggetti non definiti contrassegnati con un EXCLUDE_OBJECT_START verranno aggiunti agli oggetti conosciuti per facilitare i suggerimenti dell'interfaccia utente, senza metadati aggiuntivi. Quando vengono emessi i comandi EXCLUDE_OBJECT , l'elenco degli oggetti esclusi viene fornito nell'array exclude_object.excluded_objects . Poich\u00e9 Klipper guarda avanti per elaborare il prossimo gcode, potrebbe esserci un ritardo tra l'emissione del comando e l'aggiornamento dello stato.","title":"Informazioni sullo stato"},{"location":"FAQ.html","text":"Domande frequenti \u00b6 Come posso donare al progetto? \u00b6 Grazie per il vostro sostegno. Per informazioni, vedere la Pagina degli sponsor . Come faccio a calcolare il parametro di configurazione rotation_distance? \u00b6 Vedere il rotation distance document . Dov'\u00e8 la mia porta seriale? \u00b6 Il modo generico per trovare una porta seriale USB \u00e8 eseguire ls /dev/serial/by-id/* da un terminale ssh sulla macchina host. Probabilmente produrr\u00e0 un output simile al seguente: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 Il nome trovato nel comando precedente \u00e8 stabile ed \u00e8 possibile utilizzarlo nel file di configurazione e durante il flashing del codice del microcontrollore. Ad esempio, un comando flash potrebbe essere simile a: sudo service klipper stop make flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 sudo service klipper start e la configurazione aggiornata potrebbe essere simile a: [mcu] serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 Assicurati di copiare e incollare il nome dal comando \"ls\" che hai eseguito sopra poich\u00e9 il nome sar\u00e0 diverso per ciascuna stampante. Se stai usando pi\u00f9 microcontrollori e non hanno ID univoci (comune sulle schede con un chip USB CH340), segui invece le indicazioni sopra usando il comando ls /dev/serial/by-path/* . Quando il microcontrollore si riavvia, il dispositivo cambia in /dev/ttyUSB1 \u00b6 egui le istruzioni nella sezione \" Where's my serial port? \" per evitare che ci\u00f2 accada. Il comando \"make flash\" non funziona \u00b6 Il codice tenta di eseguire il flashing del dispositivo utilizzando il metodo pi\u00f9 comune per ciascuna piattaforma. Sfortunatamente, c'\u00e8 molta variabilit\u00e0 nei metodi di flashing, quindi il comando \"make flash\" potrebbe non funzionare su tutte le schede. Se si verifica un errore intermittente o si dispone di una configurazione standard, ricontrolla che Klipper non sia in esecuzione durante il flashing (sudo service klipper stop), assicurati che OctoPrint non stia tentando di connettersi direttamente al dispositivo (apri il scheda Connessione nella pagina Web e fare clic su Disconnetti se la porta seriale \u00e8 impostata sul dispositivo) e assicurarsi che FLASH_DEVICE sia impostato correttamente per la scheda (consultare la question above . Tuttavia, se \"make flash\" non funziona per la tua scheda, dovrai eseguire il flashing manualmente. Verificare se nella config directory \u00e8 presente un file di configurazione con istruzioni specifiche per il flashing del dispositivo. Inoltre, controlla la documentazione del produttore della scheda per vedere se descrive come eseguire il flashing del dispositivo. Infine, potrebbe essere possibile eseguire manualmente il flashing del dispositivo utilizzando strumenti come \"avrdude\" o \"bossac\" - vedere il bootloader document per ulteriori informazioni. Come posso modificare la velocit\u00e0 di trasmissione seriale? \u00b6 Il baud rate consigliato per Klipper \u00e8 250000. Questo baud rate funziona bene su tutte le schede di microcontrollore supportate da Klipper. Se hai trovato una guida online che consiglia una velocit\u00e0 di trasmissione diversa, ignora quella parte della guida e continua con il valore predefinito di 250000. Se si desidera comunque modificare il baud rate, sar\u00e0 necessario configurare la nuova velocit\u00e0 nel microcontrollore (durante make menuconfig ) e il codice aggiornato dovr\u00e0 essere compilato e flashato sul microcontrollore. Anche il file Klipper printer.cfg dovr\u00e0 essere aggiornato in modo che corrisponda a tale velocit\u00e0 di trasmissione (consultare il config reference per i dettagli). Per esempio: [mcu] baud: 250000 La velocit\u00e0 di trasmissione mostrata sulla pagina Web di OctoPrint non ha alcun impatto sulla velocit\u00e0 di trasmissione interna del microcontrollore Klipper. Impostare sempre la velocit\u00e0 di trasmissione OctoPrint su 250000 quando si utilizza Klipper. La velocit\u00e0 in baud del microcontrollore Klipper non \u00e8 correlata alla velocit\u00e0 in baud del bootloader del microcontrollore. Vedere il bootloader document per ulteriori informazioni sui bootloader. Posso eseguire Klipper su qualcosa di diverso da un Raspberry Pi 3? \u00b6 L'hardware consigliato \u00e8 un Raspberry Pi 2, Raspberry Pi 3 o Raspberry Pi 4. Klipper funzioner\u00e0 su un Raspberry Pi 1 e su Raspberry Pi Zero, ma queste schede non hanno una potenza di elaborazione sufficiente per eseguire bene OctoPrint. \u00c8 normale che si verifichino interruzioni di stampa su queste macchine pi\u00f9 lente quando si stampa direttamente da OctoPrint. (La stampante potrebbe muoversi pi\u00f9 velocemente di quanto OctoPrint possa inviare comandi di movimento.) Se desideri comunque eseguire su una di queste schede pi\u00f9 lente, considera l'utilizzo della funzione \"virtual_sdcard\" durante la stampa (consulta config reference per dettagli). Per l'esecuzione su Beaglebone, vedere le Istruzioni di installazione specifiche di Beaglebone . Klipper \u00e8 stato eseguito su altre macchine. Il software host Klipper richiede solo Python in esecuzione su un computer Linux (o simile). Tuttavia, se desideri eseguirlo su una macchina diversa, avrai bisogno della conoscenza dell'amministratore Linux per installare i prerequisiti di sistema per quella particolare macchina. Consulta lo script install-octopi.sh per ulteriori informazioni sui passaggi necessari. Se stai cercando di eseguire il software host Klipper su un chip di fascia bassa, tieni presente che, come minimo, \u00e8 necessaria una macchina con hardware a \"virgola mobile a doppia precisione\". Se stai cercando di eseguire il software host Klipper su un desktop generico condiviso o una macchina di classe server, tieni presente che Klipper ha alcuni requisiti di scheduling in tempo reale. Se, durante una stampa, il computer host esegue anche un'intensa attivit\u00e0 di elaborazione generica (come deframmentazione di un disco rigido, rendering 3D, scambi pesanti e cos\u00ec via), Klipper potrebbe segnalare errori di stampa. Nota: se non stai utilizzando un'immagine OctoPi, tieni presente che diverse distribuzioni Linux abilitano un pacchetto \"ModemManager\" (o simile) che pu\u00f2 interrompere la comunicazione seriale. (Il che pu\u00f2 far s\u00ec che Klipper riporti errori apparentemente casuali \"Comunicazione persa con MCU\".) Se installi Klipper su una di queste distribuzioni potresti dover disabilitare quel pacchetto. Posso eseguire pi\u00f9 istanze di Klipper sulla stessa macchina host? \u00b6 \u00c8 possibile eseguire pi\u00f9 istanze del software host Klipper, ma per farlo \u00e8 necessaria la conoscenza dell'amministratore Linux. Gli script di installazione di Klipper determinano l'esecuzione del seguente comando Unix: ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer.cfg -l /tmp/klippy.log \u00c8 possibile eseguire pi\u00f9 istanze del comando precedente purch\u00e9 ogni istanza abbia il proprio file di configurazione della stampante, il proprio file di registro e il proprio pseudo-tty. Per esempio: ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer2.cfg -l /tmp/klippy2.log -I /tmp/printer2 Se scegli di farlo, dovrai implementare gli script di avvio, arresto e installazione necessari (se presenti). Lo script install-octopi.sh e lo script klipper-start.sh possono essere utili come esempi. Devo usare OctoPrint? \u00b6 Il software Klipper non dipende da OctoPrint. \u00c8 possibile utilizzare un software alternativo per inviare comandi a Klipper, ma ci\u00f2 richiede la conoscenza dell'amministratore Linux. Klipper crea una \"porta seriale virtuale\" tramite il file \"/tmp/printer\" ed emula una classica interfaccia seriale per stampante 3D tramite quel file. In generale, un software alternativo pu\u00f2 funzionare con Klipper purch\u00e9 possa essere configurato per utilizzare \"/tmp/printer\" per la porta seriale della stampante. Perch\u00e9 non riesco a spostare lo stepper prima di riposizionare la stampante? \u00b6 Il codice fa questo per ridurre la possibilit\u00e0 di comandare accidentalmente la testa nel piatto o altri limiti. Una volta che la stampante \u00e8 stata localizzata, il software tenta di verificare che ogni mossa rientri nella posizione_min/max definita nel file di configurazione. Se i motori sono disabilitati (tramite un comando M84 o M18), i motori dovranno essere nuovamente riposizionati prima del movimento. Se desideri spostare la testina dopo aver annullato una stampa tramite OctoPrint, considera di modificare la sequenza di annullamento di OctoPrint per farlo per te. \u00c8 configurato in OctoPrint tramite un browser web in: Impostazioni-> Script GCODE | Settings->GCODE Scripts Se desideri spostare la testina al termine di una stampa, considera di aggiungere il movimento desiderato alla sezione \"G-code personalizzato\" del tuo slicer. Se la stampante richiede un movimento aggiuntivo come parte del processo stesso di homing (o fondamentalmente non ha un processo di homing), considera l'utilizzo di una sezione safe_z_home o homing_override nel file di configurazione. Se \u00e8 necessario spostare uno stepper per scopi diagnostici o di debug, considerare l'aggiunta di una sezione force_move al file di configurazione. Vedere config reference per ulteriori dettagli su queste opzioni. Perch\u00e9 Z position_endstop \u00e8 impostato su 0.5 nelle configurazioni predefinite? \u00b6 Per le stampanti cartesiane Z position_endstop specifica la distanza dell'ugello dal piatto quando si attiva ilfinecorsa. Se possibile, si consiglia di utilizzare un finecorsa Z-max e di tornare a casa lontano dal piatto (in quanto ci\u00f2 riduce il rischio di collisioni con il piatto). Tuttavia, se ci si deve avvicinare al piatto, si consiglia di posizionare il finecorsa in modo che si attivi quando la bocchetta \u00e8 ancora a una piccola distanza dal piatto. In questo modo, durante l'homing dell'asse, si fermer\u00e0 prima che l'ugello tocchi il letto. Per ulteriori informazioni, vedere il bed level document . Ho convertito la mia configurazione da Marlin e gli assi X/Y funzionano bene, ma ottengo solo un rumore stridente durante homing dell'asse Z \u00b6 Risposta breve: in primo luogo, assicurati di aver verificato la configurazione dello stepper come descritto nel config check document . Se il problema persiste, provare a ridurre l'impostazione max_z_velocity nella configurazione della stampante. Risposta lunga: in pratica Marlin pu\u00f2 in genere fare solo un passo a una velocit\u00e0 di circa 10000 passi al secondo. Se gli viene richiesto di muoversi a una velocit\u00e0 che richiederebbe una velocit\u00e0 di passo pi\u00f9 alta, Marlin generalmente far\u00e0 un passo pi\u00f9 veloce possibile. Klipper \u00e8 in grado di raggiungere velocit\u00e0 di passo molto pi\u00f9 elevate, ma il motore passo-passo potrebbe non avere una coppia sufficiente per muoversi a una velocit\u00e0 pi\u00f9 elevata. Quindi, per un asse Z con un rapporto di trasmissione elevato o un'impostazione di micropassi elevata, l'effettiva velocit\u00e0 max_z_ottenibile potrebbe essere inferiore a quella configurata in Marlin. Il mio driver TMC del motore si spegne nel mezzo di una stampa \u00b6 Se si utilizza il driver TMC2208 (o TMC2224) in \"modalit\u00e0 standalone\", assicurarsi di utilizzare l' latest version of Klipper . Una soluzione alternativa per un problema del driver \"stealthchop\" TMC2208 \u00e8 stata aggiunta a Klipper a met\u00e0 marzo del 2020. Continuo a ricevere errori casuali \"Comunicazione persa con MCU\" |\"Lost communication with MCU\" \u00b6 Ci\u00f2 \u00e8 comunemente causato da errori hardware sulla connessione USB tra la macchina host e il microcontrollore. Cose da cercare: Utilizzare un cavo USB di buona qualit\u00e0 tra la macchina host e il microcontrollore. Assicurati che i connettori siano ben saldi. Se si utilizza un Raspberry Pi, utilizzare un alimentatore di buona qualit\u00e0 per il Raspberry Pi e utilizzare un cavo USB di buona qualit\u00e0 per collegare quell'alimentatore al Pi. Se ricevi avvisi di \"sottotensione\" da OctoPrint, questo \u00e8 correlato all'alimentatore e deve essere risolto. Assicurarsi che l'alimentazione della stampante non sia sovraccarica. (Le fluttuazioni di alimentazione del chip USB del microcontrollore possono comportare il reset di quel chip.) Verificare che i cavi dello stepper, del riscaldatore e di altri cavi della stampante non siano arricciati o sfilacciati. (Il movimento della stampante pu\u00f2 sollecitare un cavo difettoso causandone la perdita di contatto, un cortocircuito breve o la generazione di rumore eccessivo.) Sono stati segnalati rumori USB elevati quando sia l'alimentazione della stampante che l'alimentazione a 5 V dell'host sono mescolate. (Se si scopre che il microcontrollore si accende quando l'alimentazione della stampante \u00e8 accesa o il cavo USB \u00e8 collegato, significa che gli alimentatori da 5 V vengono mescolati.) Pu\u00f2 essere utile configurare il microcontrollore da utilizzare alimentazione da una sola fonte. (In alternativa, se la scheda del microcontrollore non \u00e8 in grado di configurare la sua fonte di alimentazione, \u00e8 possibile modificare un cavo USB in modo che non trasmetta alimentazione a 5V tra l'host e il microcontrollore.) Il mio Raspberry Pi continua a riavviarsi durante le stampe \u00b6 Questo \u00e8 molto probabilmente dovuto alle fluttuazioni di tensione. Segui gli stessi passaggi per la risoluzione dei problemi per un errore \"Comunicazione persa con MCU\" . Quando imposto restart_method=command il mio dispositivo AVR si blocca al riavvio \u00b6 Alcune vecchie versioni del bootloader AVR hanno un bug noto nella gestione degli eventi di watchdog. Questo in genere si manifesta quando il file printer.cfg ha restart_method impostato su \"command\". Quando si verifica il bug, il dispositivo AVR non risponder\u00e0 fino a quando l'alimentazione non viene rimossa e ricollegata al dispositivo (anche i LED di alimentazione o di stato potrebbero lampeggiare ripetutamente fino a quando l'alimentazione non viene rimossa). La soluzione alternativa \u00e8 utilizzare un restart_method diverso da \"command\" o eseguire il flashing di un bootloader aggiornato sul dispositivo AVR. Il flashing di un nuovo bootloader \u00e8 un passaggio che in genere richiede un programmatore esterno: vedere Bootloaders per ulteriori dettagli. I riscaldatori verranno lasciati accesi se il Raspberry Pi si arresta in modo anomalo? \u00b6 Il software \u00e8 stato progettato per impedirlo. Una volta che l'host abilita un riscaldatore, il software host deve confermare tale abilitazione ogni 5 secondi. Se il microcontrollore non riceve una conferma ogni 5 secondi, entra in uno stato di \"spegnimento\" progettato per spegnere tutti i riscaldatori e i motori passo-passo. Per ulteriori dettagli, vedere il comando \"config_digital_out\" nel documento Comandi MCU . Inoltre, il software del microcontrollore \u00e8 configurato con un intervallo di temperatura minimo e massimo per ciascun riscaldatore all'avvio (consultare i parametri min_temp e max_temp in config reference per i dettagli). Se il microcontrollore rileva che la temperatura \u00e8 al di fuori di tale intervallo, entrer\u00e0 anche in uno stato di \"spegnimento\". Separatamente, il software host implementa anche il codice per verificare che i riscaldatori e i sensori di temperatura funzionino correttamente. Vedere il riferimento di configurazione per ulteriori dettagli. Come posso convertire un numero di pin Marlin in un nome pin di Klipper? \u00b6 Risposta breve: una mappatura \u00e8 disponibile nel file sample-aliases.cfg . Usa quel file come guida per trovare i nomi effettivi dei pin del microcontrollorei. (\u00c8 anche possibile copiare la relativa sezione di configurazione board_pins nel file di configurazione e utilizzare gli alias nella configurazione, ma \u00e8 preferibile tradurre e utilizzare i nomi dei pin del microcontrollore effettivi.) Nota che il file sample-aliases.cfg usa nomi di pin che iniziano con il prefisso \"ar\" invece di \"D\" (ad esempio, il pin Arduino D23 \u00e8 alias Klipper ar23 ) e il prefisso \"analog\" invece di \"A \" (ad esempio, il pin Arduino A14 \u00e8 alias di Klipper analog14 ). Risposta lunga: Klipper utilizza i nomi dei pin standard definiti dal microcontrollore. Sui chip Atmega questi pin hardware hanno nomi come PA4 , PC7 o PD2 . Tempo fa, il progetto Arduino ha deciso di evitare di utilizzare i nomi hardware standard a favore dei propri nomi pin basati su numeri incrementali: questi nomi Arduino generalmente assomigliano a \"D23\" o \"A14\". Questa \u00e8 stata una scelta sfortunata che ha portato a una grande confusione. In particolare, i numeri dei pin di Arduino spesso non si traducono negli stessi nomi hardware. Ad esempio, D21 \u00e8 PD0 su una comune scheda Arduino, ma \u00e8 PC7 su un'altra comune scheda Arduino. Per evitare questa confusione, il codice di base di Klipper utilizza i nomi dei pin standard definiti dal microcontrollore. Devo collegare il mio dispositivo a un tipo specifico di pin del microcontrollore? \u00b6 Dipende dal tipo di dispositivo e dal tipo di pin: Pin ADC (o pin analogici): per termistori e sensori \"analogici\" simili, il dispositivo deve essere collegato a un pin compatibile con \"analogico\" o \"ADC\" sul microcontrollore. Se configuri Klipper per utilizzare un pin che non \u00e8 compatibile con l'analogico, Klipper segnaler\u00e0 un errore \"Non un pin ADC valido\". Pin PWM (o pin Timer): Klipper non utilizza PWM hardware per impostazione predefinita per nessun dispositivo. Quindi, in generale, \u00e8 possibile collegare riscaldatori, ventole e dispositivi simili a qualsiasi pin IO generico. Tuttavia, le ventole e i dispositivi output_pin possono essere opzionalmente configurati per utilizzare hardware_pwm: True , nel qual caso il microcontrollore deve supportare PWM hardware sul pin (altrimenti, Klipper segnaler\u00e0 un errore \"pin PWM non valido\"). Pin IRQ (o pin di interrupt): Klipper non utilizza gli interrupt hardware sui pin IO, quindi non \u00e8 mai necessario collegare un dispositivo a uno di questi pin del microcontrollore. Pin SPI: quando si utilizza l'SPI hardware, \u00e8 necessario collegare i pin ai pin SPI del microcontrollore. Tuttavia, la maggior parte dei dispositivi pu\u00f2 essere configurata per utilizzare \"SPI software\", nel qual caso \u00e8 possibile utilizzare qualsiasi pin IO generico. Pin I2C: quando si utilizza I2C \u00e8 necessario collegare i pin ai pin compatibili con I2C del microcontrollore. Altri dispositivi possono essere collegati a qualsiasi pin IO generico. Ad esempio, stepper, riscaldatori, ventole, sonde Z, servocomandi, LED, comuni display LCD hd44780/st7920, la linea di controllo Trinamic UART pu\u00f2 essere collegata a qualsiasi pin IO generico. Come posso annullare una richiesta di \"attesa temperatura\" M109/M190? \u00b6 Passare alla scheda del terminale OctoPrint ed emettere un comando M112 nel terminale. Il comando M112 far\u00e0 entrare Klipper in uno stato di \"arresto\" e causer\u00e0 la disconnessione di OctoPrint da Klipper. Passare all'area di connessione di OctoPrint e fare clic su \"Connetti\" per fare in modo che OctoPrint si riconnetta. Torna alla scheda del terminale ed emetti un comando FIRMWARE_RESTART per cancellare lo stato di errore di Klipper. Dopo aver completato questa sequenza, la precedente richiesta di riscaldamento verr\u00e0 annullata e potrebbe essere avviata una nuova stampa. Posso scoprire se la stampante ha perso dei passaggi? \u00b6 In un certo senso s\u00ec. Avviare la stampante, emettere un comando GET_POSITION , eseguire la stampa, tornare a casa ed emettere un altro GET_POSITION . Quindi confronta i valori nella riga mcu: . Questo potrebbe essere utile per regolare impostazioni come correnti, accelerazioni e velocit\u00e0 del motore passo-passo senza dover effettivamente stampare qualcosa e sprecare il filamento: basta eseguire alcuni movimenti ad alta velocit\u00e0 tra i comandi GET_POSITION . Si noti che gli stessi interruttori di fine corsa tendono a attivarsi in posizioni leggermente diverse, quindi una differenza di un paio di micropassi \u00e8 probabilmente il risultato di imprecisioni di fine corsa. Un motore passo-passo stesso pu\u00f2 perdere passi solo con incrementi di 4 passi completi. (Quindi, se si utilizzano 16 micropassi, un passo perso sullo stepper comporterebbe lo spegnimento del contatore di passi \"mcu:\" di un multiplo di 64 micropassi.) Perch\u00e9 Klipper segnala errori? Ho perso la mia stampa! \u00b6 Risposta breve: vogliamo sapere se le nostre stampanti rilevano un problema in modo che il problema sottostante possa essere risolto e possiamo ottenere stampe di ottima qualit\u00e0. Non vogliamo assolutamente che le nostre stampanti producano in silenzio stampe di bassa qualit\u00e0. Risposta lunga: Klipper \u00e8 stato progettato per risolvere automaticamente molti problemi transitori. Ad esempio, rileva automaticamente gli errori di comunicazione e li ritrasmette; pianifica le azioni in anticipo e bufferizza i comandi su pi\u00f9 livelli per consentire tempi precisi anche con interferenze intermittenti. Tuttavia, se il software rileva un errore dal quale non pu\u00f2 essere ripristinato, se gli viene ordinato di eseguire un'azione non valida o se rileva che \u00e8 irrimediabilmente incapace di eseguire l'attivit\u00e0 comandata, Klipper segnaler\u00e0 un errore. In queste situazioni c'\u00e8 un alto rischio di produrre una stampa di bassa qualit\u00e0 (o peggio). Si spera che avvisare gli utenti consentir\u00e0 loro di risolvere il problema sottostante e migliorare la qualit\u00e0 complessiva delle loro stampe. Ci sono alcune domande correlate: perch\u00e9 Klipper non mette invece in pausa la stampa? Segnalare invece un avviso? Verificare la presenza di errori prima della stampa? Ignorare gli errori nei comandi digitati dall'utente? eccetera? Attualmente Klipper legge i comandi utilizzando il protocollo G-Code e sfortunatamente il protocollo di comando G-Code non \u00e8 sufficientemente flessibile per rendere pratiche queste alternative oggi. C'\u00e8 l'interesse degli sviluppatori nel migliorare l'esperienza dell'utente durante eventi anomali, ma si prevede che ci\u00f2 richieder\u00e0 un notevole lavoro infrastrutturale (incluso un passaggio dal G-Code). Come si esegue l'aggiornamento al software pi\u00f9 recente? \u00b6 Il primo passaggio per l'aggiornamento del software consiste nell'esaminare l'ultimo documento config changes . A volte, vengono apportate modifiche al software che richiedono agli utenti di aggiornare le proprie impostazioni come parte di un aggiornamento del software. \u00c8 una buona idea rivedere questo documento prima dell'aggiornamento. Quando sei pronto per l'aggiornamento, il metodo generale \u00e8 quello di entrare in Raspberry Pi ed eseguire: cd ~/klipper git pull ~/klipper/scripts/install-octopi.sh Quindi si pu\u00f2 ricompilare e flashare il codice del microcontrollore. Per esempio: make menuconfig make clean make sudo service klipper stop make flash FLASH_DEVICE=/dev/ttyACM0 sudo service klipper start Tuttavia, capita spesso che cambi solo il software host. In questo caso \u00e8 possibile aggiornare e riavviare solo il software host con: cd ~/klipper git pull sudo service klipper restart Se dopo aver utilizzato questo collegamento il software avverte della necessit\u00e0 di eseguire il reflash del microcontrollore o si verifica qualche altro errore insolito, seguire i passaggi completi di aggiornamento descritti sopra. Se gli errori persistono, ricontrolla il documento config changes , poich\u00e9 potrebbe essere necessario modificare la configurazione della stampante. Si noti che i comandi g-code RESTART e FIRMWARE_RESTART non caricano il nuovo software: i comandi \"sudo service klipper restart\" e \"make flash\" di cui sopra sono necessari affinch\u00e9 una modifica del software abbia effetto. Come faccio a disinstallare Klipper? \u00b6 Dal alto del firmware, non deve succedere nulla di speciale. Basta seguire le indicazioni per il flashing del nuovo firmware. Dal lato del raspberry pi, uno script di disinstallazione \u00e8 disponibile in scripts/klipper-uninstall.sh . Per esempio: sudo ~/klipper/scripts/klipper-uninstall.sh rm -rf ~/klippy-env ~/klipper","title":"Domande frequenti"},{"location":"FAQ.html#domande-frequenti","text":"","title":"Domande frequenti"},{"location":"FAQ.html#come-posso-donare-al-progetto","text":"Grazie per il vostro sostegno. Per informazioni, vedere la Pagina degli sponsor .","title":"Come posso donare al progetto?"},{"location":"FAQ.html#come-faccio-a-calcolare-il-parametro-di-configurazione-rotation_distance","text":"Vedere il rotation distance document .","title":"Come faccio a calcolare il parametro di configurazione rotation_distance?"},{"location":"FAQ.html#dove-la-mia-porta-seriale","text":"Il modo generico per trovare una porta seriale USB \u00e8 eseguire ls /dev/serial/by-id/* da un terminale ssh sulla macchina host. Probabilmente produrr\u00e0 un output simile al seguente: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 Il nome trovato nel comando precedente \u00e8 stabile ed \u00e8 possibile utilizzarlo nel file di configurazione e durante il flashing del codice del microcontrollore. Ad esempio, un comando flash potrebbe essere simile a: sudo service klipper stop make flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 sudo service klipper start e la configurazione aggiornata potrebbe essere simile a: [mcu] serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 Assicurati di copiare e incollare il nome dal comando \"ls\" che hai eseguito sopra poich\u00e9 il nome sar\u00e0 diverso per ciascuna stampante. Se stai usando pi\u00f9 microcontrollori e non hanno ID univoci (comune sulle schede con un chip USB CH340), segui invece le indicazioni sopra usando il comando ls /dev/serial/by-path/* .","title":"Dov'\u00e8 la mia porta seriale?"},{"location":"FAQ.html#quando-il-microcontrollore-si-riavvia-il-dispositivo-cambia-in-devttyusb1","text":"egui le istruzioni nella sezione \" Where's my serial port? \" per evitare che ci\u00f2 accada.","title":"Quando il microcontrollore si riavvia, il dispositivo cambia in /dev/ttyUSB1"},{"location":"FAQ.html#il-comando-make-flash-non-funziona","text":"Il codice tenta di eseguire il flashing del dispositivo utilizzando il metodo pi\u00f9 comune per ciascuna piattaforma. Sfortunatamente, c'\u00e8 molta variabilit\u00e0 nei metodi di flashing, quindi il comando \"make flash\" potrebbe non funzionare su tutte le schede. Se si verifica un errore intermittente o si dispone di una configurazione standard, ricontrolla che Klipper non sia in esecuzione durante il flashing (sudo service klipper stop), assicurati che OctoPrint non stia tentando di connettersi direttamente al dispositivo (apri il scheda Connessione nella pagina Web e fare clic su Disconnetti se la porta seriale \u00e8 impostata sul dispositivo) e assicurarsi che FLASH_DEVICE sia impostato correttamente per la scheda (consultare la question above . Tuttavia, se \"make flash\" non funziona per la tua scheda, dovrai eseguire il flashing manualmente. Verificare se nella config directory \u00e8 presente un file di configurazione con istruzioni specifiche per il flashing del dispositivo. Inoltre, controlla la documentazione del produttore della scheda per vedere se descrive come eseguire il flashing del dispositivo. Infine, potrebbe essere possibile eseguire manualmente il flashing del dispositivo utilizzando strumenti come \"avrdude\" o \"bossac\" - vedere il bootloader document per ulteriori informazioni.","title":"Il comando \"make flash\" non funziona"},{"location":"FAQ.html#come-posso-modificare-la-velocita-di-trasmissione-seriale","text":"Il baud rate consigliato per Klipper \u00e8 250000. Questo baud rate funziona bene su tutte le schede di microcontrollore supportate da Klipper. Se hai trovato una guida online che consiglia una velocit\u00e0 di trasmissione diversa, ignora quella parte della guida e continua con il valore predefinito di 250000. Se si desidera comunque modificare il baud rate, sar\u00e0 necessario configurare la nuova velocit\u00e0 nel microcontrollore (durante make menuconfig ) e il codice aggiornato dovr\u00e0 essere compilato e flashato sul microcontrollore. Anche il file Klipper printer.cfg dovr\u00e0 essere aggiornato in modo che corrisponda a tale velocit\u00e0 di trasmissione (consultare il config reference per i dettagli). Per esempio: [mcu] baud: 250000 La velocit\u00e0 di trasmissione mostrata sulla pagina Web di OctoPrint non ha alcun impatto sulla velocit\u00e0 di trasmissione interna del microcontrollore Klipper. Impostare sempre la velocit\u00e0 di trasmissione OctoPrint su 250000 quando si utilizza Klipper. La velocit\u00e0 in baud del microcontrollore Klipper non \u00e8 correlata alla velocit\u00e0 in baud del bootloader del microcontrollore. Vedere il bootloader document per ulteriori informazioni sui bootloader.","title":"Come posso modificare la velocit\u00e0 di trasmissione seriale?"},{"location":"FAQ.html#posso-eseguire-klipper-su-qualcosa-di-diverso-da-un-raspberry-pi-3","text":"L'hardware consigliato \u00e8 un Raspberry Pi 2, Raspberry Pi 3 o Raspberry Pi 4. Klipper funzioner\u00e0 su un Raspberry Pi 1 e su Raspberry Pi Zero, ma queste schede non hanno una potenza di elaborazione sufficiente per eseguire bene OctoPrint. \u00c8 normale che si verifichino interruzioni di stampa su queste macchine pi\u00f9 lente quando si stampa direttamente da OctoPrint. (La stampante potrebbe muoversi pi\u00f9 velocemente di quanto OctoPrint possa inviare comandi di movimento.) Se desideri comunque eseguire su una di queste schede pi\u00f9 lente, considera l'utilizzo della funzione \"virtual_sdcard\" durante la stampa (consulta config reference per dettagli). Per l'esecuzione su Beaglebone, vedere le Istruzioni di installazione specifiche di Beaglebone . Klipper \u00e8 stato eseguito su altre macchine. Il software host Klipper richiede solo Python in esecuzione su un computer Linux (o simile). Tuttavia, se desideri eseguirlo su una macchina diversa, avrai bisogno della conoscenza dell'amministratore Linux per installare i prerequisiti di sistema per quella particolare macchina. Consulta lo script install-octopi.sh per ulteriori informazioni sui passaggi necessari. Se stai cercando di eseguire il software host Klipper su un chip di fascia bassa, tieni presente che, come minimo, \u00e8 necessaria una macchina con hardware a \"virgola mobile a doppia precisione\". Se stai cercando di eseguire il software host Klipper su un desktop generico condiviso o una macchina di classe server, tieni presente che Klipper ha alcuni requisiti di scheduling in tempo reale. Se, durante una stampa, il computer host esegue anche un'intensa attivit\u00e0 di elaborazione generica (come deframmentazione di un disco rigido, rendering 3D, scambi pesanti e cos\u00ec via), Klipper potrebbe segnalare errori di stampa. Nota: se non stai utilizzando un'immagine OctoPi, tieni presente che diverse distribuzioni Linux abilitano un pacchetto \"ModemManager\" (o simile) che pu\u00f2 interrompere la comunicazione seriale. (Il che pu\u00f2 far s\u00ec che Klipper riporti errori apparentemente casuali \"Comunicazione persa con MCU\".) Se installi Klipper su una di queste distribuzioni potresti dover disabilitare quel pacchetto.","title":"Posso eseguire Klipper su qualcosa di diverso da un Raspberry Pi 3?"},{"location":"FAQ.html#posso-eseguire-piu-istanze-di-klipper-sulla-stessa-macchina-host","text":"\u00c8 possibile eseguire pi\u00f9 istanze del software host Klipper, ma per farlo \u00e8 necessaria la conoscenza dell'amministratore Linux. Gli script di installazione di Klipper determinano l'esecuzione del seguente comando Unix: ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer.cfg -l /tmp/klippy.log \u00c8 possibile eseguire pi\u00f9 istanze del comando precedente purch\u00e9 ogni istanza abbia il proprio file di configurazione della stampante, il proprio file di registro e il proprio pseudo-tty. Per esempio: ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer2.cfg -l /tmp/klippy2.log -I /tmp/printer2 Se scegli di farlo, dovrai implementare gli script di avvio, arresto e installazione necessari (se presenti). Lo script install-octopi.sh e lo script klipper-start.sh possono essere utili come esempi.","title":"Posso eseguire pi\u00f9 istanze di Klipper sulla stessa macchina host?"},{"location":"FAQ.html#devo-usare-octoprint","text":"Il software Klipper non dipende da OctoPrint. \u00c8 possibile utilizzare un software alternativo per inviare comandi a Klipper, ma ci\u00f2 richiede la conoscenza dell'amministratore Linux. Klipper crea una \"porta seriale virtuale\" tramite il file \"/tmp/printer\" ed emula una classica interfaccia seriale per stampante 3D tramite quel file. In generale, un software alternativo pu\u00f2 funzionare con Klipper purch\u00e9 possa essere configurato per utilizzare \"/tmp/printer\" per la porta seriale della stampante.","title":"Devo usare OctoPrint?"},{"location":"FAQ.html#perche-non-riesco-a-spostare-lo-stepper-prima-di-riposizionare-la-stampante","text":"Il codice fa questo per ridurre la possibilit\u00e0 di comandare accidentalmente la testa nel piatto o altri limiti. Una volta che la stampante \u00e8 stata localizzata, il software tenta di verificare che ogni mossa rientri nella posizione_min/max definita nel file di configurazione. Se i motori sono disabilitati (tramite un comando M84 o M18), i motori dovranno essere nuovamente riposizionati prima del movimento. Se desideri spostare la testina dopo aver annullato una stampa tramite OctoPrint, considera di modificare la sequenza di annullamento di OctoPrint per farlo per te. \u00c8 configurato in OctoPrint tramite un browser web in: Impostazioni-> Script GCODE | Settings->GCODE Scripts Se desideri spostare la testina al termine di una stampa, considera di aggiungere il movimento desiderato alla sezione \"G-code personalizzato\" del tuo slicer. Se la stampante richiede un movimento aggiuntivo come parte del processo stesso di homing (o fondamentalmente non ha un processo di homing), considera l'utilizzo di una sezione safe_z_home o homing_override nel file di configurazione. Se \u00e8 necessario spostare uno stepper per scopi diagnostici o di debug, considerare l'aggiunta di una sezione force_move al file di configurazione. Vedere config reference per ulteriori dettagli su queste opzioni.","title":"Perch\u00e9 non riesco a spostare lo stepper prima di riposizionare la stampante?"},{"location":"FAQ.html#perche-z-position_endstop-e-impostato-su-05-nelle-configurazioni-predefinite","text":"Per le stampanti cartesiane Z position_endstop specifica la distanza dell'ugello dal piatto quando si attiva ilfinecorsa. Se possibile, si consiglia di utilizzare un finecorsa Z-max e di tornare a casa lontano dal piatto (in quanto ci\u00f2 riduce il rischio di collisioni con il piatto). Tuttavia, se ci si deve avvicinare al piatto, si consiglia di posizionare il finecorsa in modo che si attivi quando la bocchetta \u00e8 ancora a una piccola distanza dal piatto. In questo modo, durante l'homing dell'asse, si fermer\u00e0 prima che l'ugello tocchi il letto. Per ulteriori informazioni, vedere il bed level document .","title":"Perch\u00e9 Z position_endstop \u00e8 impostato su 0.5 nelle configurazioni predefinite?"},{"location":"FAQ.html#ho-convertito-la-mia-configurazione-da-marlin-e-gli-assi-xy-funzionano-bene-ma-ottengo-solo-un-rumore-stridente-durante-homing-dellasse-z","text":"Risposta breve: in primo luogo, assicurati di aver verificato la configurazione dello stepper come descritto nel config check document . Se il problema persiste, provare a ridurre l'impostazione max_z_velocity nella configurazione della stampante. Risposta lunga: in pratica Marlin pu\u00f2 in genere fare solo un passo a una velocit\u00e0 di circa 10000 passi al secondo. Se gli viene richiesto di muoversi a una velocit\u00e0 che richiederebbe una velocit\u00e0 di passo pi\u00f9 alta, Marlin generalmente far\u00e0 un passo pi\u00f9 veloce possibile. Klipper \u00e8 in grado di raggiungere velocit\u00e0 di passo molto pi\u00f9 elevate, ma il motore passo-passo potrebbe non avere una coppia sufficiente per muoversi a una velocit\u00e0 pi\u00f9 elevata. Quindi, per un asse Z con un rapporto di trasmissione elevato o un'impostazione di micropassi elevata, l'effettiva velocit\u00e0 max_z_ottenibile potrebbe essere inferiore a quella configurata in Marlin.","title":"Ho convertito la mia configurazione da Marlin e gli assi X/Y funzionano bene, ma ottengo solo un rumore stridente durante homing dell'asse Z"},{"location":"FAQ.html#il-mio-driver-tmc-del-motore-si-spegne-nel-mezzo-di-una-stampa","text":"Se si utilizza il driver TMC2208 (o TMC2224) in \"modalit\u00e0 standalone\", assicurarsi di utilizzare l' latest version of Klipper . Una soluzione alternativa per un problema del driver \"stealthchop\" TMC2208 \u00e8 stata aggiunta a Klipper a met\u00e0 marzo del 2020.","title":"Il mio driver TMC del motore si spegne nel mezzo di una stampa"},{"location":"FAQ.html#continuo-a-ricevere-errori-casuali-comunicazione-persa-con-mcu-lost-communication-with-mcu","text":"Ci\u00f2 \u00e8 comunemente causato da errori hardware sulla connessione USB tra la macchina host e il microcontrollore. Cose da cercare: Utilizzare un cavo USB di buona qualit\u00e0 tra la macchina host e il microcontrollore. Assicurati che i connettori siano ben saldi. Se si utilizza un Raspberry Pi, utilizzare un alimentatore di buona qualit\u00e0 per il Raspberry Pi e utilizzare un cavo USB di buona qualit\u00e0 per collegare quell'alimentatore al Pi. Se ricevi avvisi di \"sottotensione\" da OctoPrint, questo \u00e8 correlato all'alimentatore e deve essere risolto. Assicurarsi che l'alimentazione della stampante non sia sovraccarica. (Le fluttuazioni di alimentazione del chip USB del microcontrollore possono comportare il reset di quel chip.) Verificare che i cavi dello stepper, del riscaldatore e di altri cavi della stampante non siano arricciati o sfilacciati. (Il movimento della stampante pu\u00f2 sollecitare un cavo difettoso causandone la perdita di contatto, un cortocircuito breve o la generazione di rumore eccessivo.) Sono stati segnalati rumori USB elevati quando sia l'alimentazione della stampante che l'alimentazione a 5 V dell'host sono mescolate. (Se si scopre che il microcontrollore si accende quando l'alimentazione della stampante \u00e8 accesa o il cavo USB \u00e8 collegato, significa che gli alimentatori da 5 V vengono mescolati.) Pu\u00f2 essere utile configurare il microcontrollore da utilizzare alimentazione da una sola fonte. (In alternativa, se la scheda del microcontrollore non \u00e8 in grado di configurare la sua fonte di alimentazione, \u00e8 possibile modificare un cavo USB in modo che non trasmetta alimentazione a 5V tra l'host e il microcontrollore.)","title":"Continuo a ricevere errori casuali \"Comunicazione persa con MCU\" |\"Lost communication with MCU\""},{"location":"FAQ.html#il-mio-raspberry-pi-continua-a-riavviarsi-durante-le-stampe","text":"Questo \u00e8 molto probabilmente dovuto alle fluttuazioni di tensione. Segui gli stessi passaggi per la risoluzione dei problemi per un errore \"Comunicazione persa con MCU\" .","title":"Il mio Raspberry Pi continua a riavviarsi durante le stampe"},{"location":"FAQ.html#quando-imposto-restart_methodcommand-il-mio-dispositivo-avr-si-blocca-al-riavvio","text":"Alcune vecchie versioni del bootloader AVR hanno un bug noto nella gestione degli eventi di watchdog. Questo in genere si manifesta quando il file printer.cfg ha restart_method impostato su \"command\". Quando si verifica il bug, il dispositivo AVR non risponder\u00e0 fino a quando l'alimentazione non viene rimossa e ricollegata al dispositivo (anche i LED di alimentazione o di stato potrebbero lampeggiare ripetutamente fino a quando l'alimentazione non viene rimossa). La soluzione alternativa \u00e8 utilizzare un restart_method diverso da \"command\" o eseguire il flashing di un bootloader aggiornato sul dispositivo AVR. Il flashing di un nuovo bootloader \u00e8 un passaggio che in genere richiede un programmatore esterno: vedere Bootloaders per ulteriori dettagli.","title":"Quando imposto restart_method=command il mio dispositivo AVR si blocca al riavvio"},{"location":"FAQ.html#i-riscaldatori-verranno-lasciati-accesi-se-il-raspberry-pi-si-arresta-in-modo-anomalo","text":"Il software \u00e8 stato progettato per impedirlo. Una volta che l'host abilita un riscaldatore, il software host deve confermare tale abilitazione ogni 5 secondi. Se il microcontrollore non riceve una conferma ogni 5 secondi, entra in uno stato di \"spegnimento\" progettato per spegnere tutti i riscaldatori e i motori passo-passo. Per ulteriori dettagli, vedere il comando \"config_digital_out\" nel documento Comandi MCU . Inoltre, il software del microcontrollore \u00e8 configurato con un intervallo di temperatura minimo e massimo per ciascun riscaldatore all'avvio (consultare i parametri min_temp e max_temp in config reference per i dettagli). Se il microcontrollore rileva che la temperatura \u00e8 al di fuori di tale intervallo, entrer\u00e0 anche in uno stato di \"spegnimento\". Separatamente, il software host implementa anche il codice per verificare che i riscaldatori e i sensori di temperatura funzionino correttamente. Vedere il riferimento di configurazione per ulteriori dettagli.","title":"I riscaldatori verranno lasciati accesi se il Raspberry Pi si arresta in modo anomalo?"},{"location":"FAQ.html#come-posso-convertire-un-numero-di-pin-marlin-in-un-nome-pin-di-klipper","text":"Risposta breve: una mappatura \u00e8 disponibile nel file sample-aliases.cfg . Usa quel file come guida per trovare i nomi effettivi dei pin del microcontrollorei. (\u00c8 anche possibile copiare la relativa sezione di configurazione board_pins nel file di configurazione e utilizzare gli alias nella configurazione, ma \u00e8 preferibile tradurre e utilizzare i nomi dei pin del microcontrollore effettivi.) Nota che il file sample-aliases.cfg usa nomi di pin che iniziano con il prefisso \"ar\" invece di \"D\" (ad esempio, il pin Arduino D23 \u00e8 alias Klipper ar23 ) e il prefisso \"analog\" invece di \"A \" (ad esempio, il pin Arduino A14 \u00e8 alias di Klipper analog14 ). Risposta lunga: Klipper utilizza i nomi dei pin standard definiti dal microcontrollore. Sui chip Atmega questi pin hardware hanno nomi come PA4 , PC7 o PD2 . Tempo fa, il progetto Arduino ha deciso di evitare di utilizzare i nomi hardware standard a favore dei propri nomi pin basati su numeri incrementali: questi nomi Arduino generalmente assomigliano a \"D23\" o \"A14\". Questa \u00e8 stata una scelta sfortunata che ha portato a una grande confusione. In particolare, i numeri dei pin di Arduino spesso non si traducono negli stessi nomi hardware. Ad esempio, D21 \u00e8 PD0 su una comune scheda Arduino, ma \u00e8 PC7 su un'altra comune scheda Arduino. Per evitare questa confusione, il codice di base di Klipper utilizza i nomi dei pin standard definiti dal microcontrollore.","title":"Come posso convertire un numero di pin Marlin in un nome pin di Klipper?"},{"location":"FAQ.html#devo-collegare-il-mio-dispositivo-a-un-tipo-specifico-di-pin-del-microcontrollore","text":"Dipende dal tipo di dispositivo e dal tipo di pin: Pin ADC (o pin analogici): per termistori e sensori \"analogici\" simili, il dispositivo deve essere collegato a un pin compatibile con \"analogico\" o \"ADC\" sul microcontrollore. Se configuri Klipper per utilizzare un pin che non \u00e8 compatibile con l'analogico, Klipper segnaler\u00e0 un errore \"Non un pin ADC valido\". Pin PWM (o pin Timer): Klipper non utilizza PWM hardware per impostazione predefinita per nessun dispositivo. Quindi, in generale, \u00e8 possibile collegare riscaldatori, ventole e dispositivi simili a qualsiasi pin IO generico. Tuttavia, le ventole e i dispositivi output_pin possono essere opzionalmente configurati per utilizzare hardware_pwm: True , nel qual caso il microcontrollore deve supportare PWM hardware sul pin (altrimenti, Klipper segnaler\u00e0 un errore \"pin PWM non valido\"). Pin IRQ (o pin di interrupt): Klipper non utilizza gli interrupt hardware sui pin IO, quindi non \u00e8 mai necessario collegare un dispositivo a uno di questi pin del microcontrollore. Pin SPI: quando si utilizza l'SPI hardware, \u00e8 necessario collegare i pin ai pin SPI del microcontrollore. Tuttavia, la maggior parte dei dispositivi pu\u00f2 essere configurata per utilizzare \"SPI software\", nel qual caso \u00e8 possibile utilizzare qualsiasi pin IO generico. Pin I2C: quando si utilizza I2C \u00e8 necessario collegare i pin ai pin compatibili con I2C del microcontrollore. Altri dispositivi possono essere collegati a qualsiasi pin IO generico. Ad esempio, stepper, riscaldatori, ventole, sonde Z, servocomandi, LED, comuni display LCD hd44780/st7920, la linea di controllo Trinamic UART pu\u00f2 essere collegata a qualsiasi pin IO generico.","title":"Devo collegare il mio dispositivo a un tipo specifico di pin del microcontrollore?"},{"location":"FAQ.html#come-posso-annullare-una-richiesta-di-attesa-temperatura-m109m190","text":"Passare alla scheda del terminale OctoPrint ed emettere un comando M112 nel terminale. Il comando M112 far\u00e0 entrare Klipper in uno stato di \"arresto\" e causer\u00e0 la disconnessione di OctoPrint da Klipper. Passare all'area di connessione di OctoPrint e fare clic su \"Connetti\" per fare in modo che OctoPrint si riconnetta. Torna alla scheda del terminale ed emetti un comando FIRMWARE_RESTART per cancellare lo stato di errore di Klipper. Dopo aver completato questa sequenza, la precedente richiesta di riscaldamento verr\u00e0 annullata e potrebbe essere avviata una nuova stampa.","title":"Come posso annullare una richiesta di \"attesa temperatura\" M109/M190?"},{"location":"FAQ.html#posso-scoprire-se-la-stampante-ha-perso-dei-passaggi","text":"In un certo senso s\u00ec. Avviare la stampante, emettere un comando GET_POSITION , eseguire la stampa, tornare a casa ed emettere un altro GET_POSITION . Quindi confronta i valori nella riga mcu: . Questo potrebbe essere utile per regolare impostazioni come correnti, accelerazioni e velocit\u00e0 del motore passo-passo senza dover effettivamente stampare qualcosa e sprecare il filamento: basta eseguire alcuni movimenti ad alta velocit\u00e0 tra i comandi GET_POSITION . Si noti che gli stessi interruttori di fine corsa tendono a attivarsi in posizioni leggermente diverse, quindi una differenza di un paio di micropassi \u00e8 probabilmente il risultato di imprecisioni di fine corsa. Un motore passo-passo stesso pu\u00f2 perdere passi solo con incrementi di 4 passi completi. (Quindi, se si utilizzano 16 micropassi, un passo perso sullo stepper comporterebbe lo spegnimento del contatore di passi \"mcu:\" di un multiplo di 64 micropassi.)","title":"Posso scoprire se la stampante ha perso dei passaggi?"},{"location":"FAQ.html#perche-klipper-segnala-errori-ho-perso-la-mia-stampa","text":"Risposta breve: vogliamo sapere se le nostre stampanti rilevano un problema in modo che il problema sottostante possa essere risolto e possiamo ottenere stampe di ottima qualit\u00e0. Non vogliamo assolutamente che le nostre stampanti producano in silenzio stampe di bassa qualit\u00e0. Risposta lunga: Klipper \u00e8 stato progettato per risolvere automaticamente molti problemi transitori. Ad esempio, rileva automaticamente gli errori di comunicazione e li ritrasmette; pianifica le azioni in anticipo e bufferizza i comandi su pi\u00f9 livelli per consentire tempi precisi anche con interferenze intermittenti. Tuttavia, se il software rileva un errore dal quale non pu\u00f2 essere ripristinato, se gli viene ordinato di eseguire un'azione non valida o se rileva che \u00e8 irrimediabilmente incapace di eseguire l'attivit\u00e0 comandata, Klipper segnaler\u00e0 un errore. In queste situazioni c'\u00e8 un alto rischio di produrre una stampa di bassa qualit\u00e0 (o peggio). Si spera che avvisare gli utenti consentir\u00e0 loro di risolvere il problema sottostante e migliorare la qualit\u00e0 complessiva delle loro stampe. Ci sono alcune domande correlate: perch\u00e9 Klipper non mette invece in pausa la stampa? Segnalare invece un avviso? Verificare la presenza di errori prima della stampa? Ignorare gli errori nei comandi digitati dall'utente? eccetera? Attualmente Klipper legge i comandi utilizzando il protocollo G-Code e sfortunatamente il protocollo di comando G-Code non \u00e8 sufficientemente flessibile per rendere pratiche queste alternative oggi. C'\u00e8 l'interesse degli sviluppatori nel migliorare l'esperienza dell'utente durante eventi anomali, ma si prevede che ci\u00f2 richieder\u00e0 un notevole lavoro infrastrutturale (incluso un passaggio dal G-Code).","title":"Perch\u00e9 Klipper segnala errori? Ho perso la mia stampa!"},{"location":"FAQ.html#come-si-esegue-laggiornamento-al-software-piu-recente","text":"Il primo passaggio per l'aggiornamento del software consiste nell'esaminare l'ultimo documento config changes . A volte, vengono apportate modifiche al software che richiedono agli utenti di aggiornare le proprie impostazioni come parte di un aggiornamento del software. \u00c8 una buona idea rivedere questo documento prima dell'aggiornamento. Quando sei pronto per l'aggiornamento, il metodo generale \u00e8 quello di entrare in Raspberry Pi ed eseguire: cd ~/klipper git pull ~/klipper/scripts/install-octopi.sh Quindi si pu\u00f2 ricompilare e flashare il codice del microcontrollore. Per esempio: make menuconfig make clean make sudo service klipper stop make flash FLASH_DEVICE=/dev/ttyACM0 sudo service klipper start Tuttavia, capita spesso che cambi solo il software host. In questo caso \u00e8 possibile aggiornare e riavviare solo il software host con: cd ~/klipper git pull sudo service klipper restart Se dopo aver utilizzato questo collegamento il software avverte della necessit\u00e0 di eseguire il reflash del microcontrollore o si verifica qualche altro errore insolito, seguire i passaggi completi di aggiornamento descritti sopra. Se gli errori persistono, ricontrolla il documento config changes , poich\u00e9 potrebbe essere necessario modificare la configurazione della stampante. Si noti che i comandi g-code RESTART e FIRMWARE_RESTART non caricano il nuovo software: i comandi \"sudo service klipper restart\" e \"make flash\" di cui sopra sono necessari affinch\u00e9 una modifica del software abbia effetto.","title":"Come si esegue l'aggiornamento al software pi\u00f9 recente?"},{"location":"FAQ.html#come-faccio-a-disinstallare-klipper","text":"Dal alto del firmware, non deve succedere nulla di speciale. Basta seguire le indicazioni per il flashing del nuovo firmware. Dal lato del raspberry pi, uno script di disinstallazione \u00e8 disponibile in scripts/klipper-uninstall.sh . Per esempio: sudo ~/klipper/scripts/klipper-uninstall.sh rm -rf ~/klippy-env ~/klipper","title":"Come faccio a disinstallare Klipper?"},{"location":"Features.html","text":"Caratteristiche \u00b6 Klipper ha diverse caratteristiche interessanti: Movimento passo-passo ad alta precisione. Klipper utilizza un processore applicativo (come un Raspberry Pi a basso costo) per calcolare i movimenti della stampante. Il processore dell'applicazione determina quando azionare ciascun motore passo-passo, comprime quegli eventi, li trasmette al microcontrollore e quindi il microcontrollore esegue ogni evento all'ora richiesta. Ogni evento stepper \u00e8 programmato con una precisione di 25 microsecondi o migliore. Il software non utilizza stime cinematiche (come l'algoritmo di Bresenham), ma calcola tempi di passo precisi in base alla fisica dell'accelerazione e alla fisica della cinematica della macchina. Un movimento stepper pi\u00f9 preciso si traduce in un funzionamento pi\u00f9 silenzioso e stabile della stampante. Le migliori prestazioni della classe. Klipper \u00e8 in grado di raggiungere elevate velocit\u00e0 di stepping su microcontrollori nuovi e vecchi. Anche i vecchi microcontrollori a 8 bit possono ottenere velocit\u00e0 di oltre 175.000 passi al secondo. Sui microcontrollori pi\u00f9 recenti sono possibili diversi milioni di passi al secondo. Velocit\u00e0 stepper pi\u00f9 elevate consentono velocit\u00e0 di stampa pi\u00f9 elevate. Il timing dell'evento stepper rimane preciso anche a velocit\u00e0 elevate, migliorando la stabilit\u00e0 generale. Klipper supporta stampanti con pi\u00f9 microcontrollori. Ad esempio, un microcontrollore potrebbe essere utilizzato per controllare un estrusore, mentre un altro controlla i riscaldatori della stampante, mentre un terzo controlla il resto della stampante. Il software host Klipper implementa la sincronizzazione dell'orologio per tenere conto della deriva dell'orologio tra i microcontrollori. Non \u00e8 necessario alcun codice speciale per abilitare pi\u00f9 microcontrollori: sono necessarie solo alcune righe in pi\u00f9 nel file di configurazione. Configurazione tramite semplice file. Non \u00e8 necessario eseguire il reflash del microcontrollore per modificare un'impostazione. Tutta la configurazione di Klipper \u00e8 memorizzata in un file di configurazione standard che pu\u00f2 essere facilmente modificato. Ci\u00f2 semplifica la configurazione e la manutenzione dell'hardware. Klipper supporta \"Smooth Pressure Advance\", un meccanismo per tenere conto degli effetti della pressione all'interno di un estrusore. Ci\u00f2 riduce la \"melma\" dell'estrusore e migliora la qualit\u00e0 degli angoli di stampa. L'implementazione di Klipper non introduce variazioni istantanee della velocit\u00e0 dell'estrusore, il che migliora la stabilit\u00e0 e la robustezza complessive. Klipper supporta \"Input Shaping\" per ridurre l'impatto delle vibrazioni sulla qualit\u00e0 di stampa. Ci\u00f2 pu\u00f2 ridurre o eliminare il \"ringing\" (noto anche come \"ghosting\", \"eco\" o \"increspatura\") nelle stampe. Pu\u00f2 anche consentire di ottenere velocit\u00e0 di stampa pi\u00f9 elevate pur mantenendo un'elevata qualit\u00e0 di stampa. Klipper utilizza un \"risolutore iterativo\" per calcolare sequenze temporali precisi da semplici equazioni cinematiche. Ci\u00f2 semplifica il porting di Klipper su nuovi tipi di robot e mantiene i tempi precisi anche con cinematiche complesse (non \u00e8 necessaria la \"segmentazione della linea\"). Codice portatile. Klipper funziona su microcontrollori basati su ARM, AVR e PRU. Le stampanti esistenti in stile \"reprap\" possono eseguire Klipper senza modifiche hardware: basta aggiungere un Raspberry Pi. Il layout del codice interno di Klipper semplifica il supporto anche di altre architetture di microcontrollori. Codice pi\u00f9 semplice. Klipper utilizza un linguaggio di alto livello (Python) per la maggior parte del codice. Gli algoritmi cinematici, l'analisi del G-code, gli algoritmi di riscaldamento e termistore, ecc. sono tutti scritti in Python. Ci\u00f2 semplifica lo sviluppo di nuove funzionalit\u00e0. Macro programmabili personalizzate. \u00c8 possibile definire nuovi comandi G-Code nel file di configurazione della stampante (non sono necessarie modifiche al codice). Questi comandi sono programmabili, consentendo loro di produrre azioni diverse a seconda dello stato della stampante. Server API integrato. Oltre all'interfaccia G-Code standard, Klipper supporta una ricca interfaccia applicativa basata su JSON. Ci\u00f2 consente ai programmatori di creare applicazioni esterne con un controllo dettagliato della stampante. Caratteristiche aggiuntive \u00b6 Klipper supporta molte funzionalit\u00e0 standard della stampante 3D: Funziona con Octoprint. Ci\u00f2 consente di controllare la stampante utilizzando un normale browser web. Lo stesso Raspberry Pi che esegue Klipper pu\u00f2 anche eseguire Octoprint. Supporto G-code standard. Sono supportati i comandi G-code comuni prodotti dai tipici \"slicer\" (SuperSlicer, Cura, PrusaSlicer, ecc.). Supporto per pi\u00f9 estrusori. Sono supportati anche estrusori con riscaldatori condivisi ed estrusori su carrelli indipendenti (IDEX). Supporto per stampanti cartesiane, delta, corexy, corexz, hybrid-corexy, hybrid-corexz, rotative delta, polari e con verricello a cavo. Supporto per il livellamento automatico del letto. Klipper pu\u00f2 essere configurato per il rilevamento di base dell'inclinazione del piatto o per il livellamento del piatto a mesh completa. Se il piatto utilizza pi\u00f9 stepper Z, Klipper pu\u00f2 anche livellare manipolando in modo indipendente gli stepper Z. Sono supportate la maggior parte delle sonde di altezza Z, comprese le sonde BL-Touch e le sonde servoattivate. Supporto per la calibrazione delta automatica. Lo strumento di calibrazione pu\u00f2 eseguire la calibrazione dell'altezza di base e una calibrazione avanzata delle dimensioni X e Y. La calibrazione pu\u00f2 essere eseguita con una sonda di altezza Z o tramite tastatura manuale. Supporto per sensori di temperatura comuni (ad es. termistori comuni, AD595, AD597, AD849x, PT100, PT1000, MAX6675, MAX31855, MAX31856, MAX31865, BME280, HTU21D, DS18B20 e LM75). \u00c8 inoltre possibile configurare termistori personalizzati e sensori di temperatura analogici personalizzati. \u00c8 possibile monitorare il sensore di temperatura del microcontrollore interno e il sensore di temperatura interna di un Raspberry Pi. Protezione del riscaldatore termico di base abilitata di default. Supporto per ventole standard, ventole per ugelli e ventole a temperatura controllata. Non \u00e8 necessario mantenere le ventole in funzione quando la stampante \u00e8 inattiva. La velocit\u00e0 della ventola pu\u00f2 essere monitorata su ventole dotate di contagiri. Supporto per la configurazione a runtime dei driver per motori passo-passo TMC2130, TMC2208/TMC2224, TMC2209, TMC2660 e TMC5160. C'\u00e8 anche il supporto per il controllo corrente dei tradizionali driver stepper tramite pin AD5206, MCP4451, MCP4728, MCP4018 e PWM. Supporto per comuni display LCD collegati direttamente alla stampante. \u00c8 disponibile anche un menu predefinito. Il contenuto del display e del menu pu\u00f2 essere completamente personalizzato tramite il file di configurazione. Accelerazione costante e supporto \"look-ahead\". Tutti i movimenti della stampante accelereranno gradualmente dall'arresto alla velocit\u00e0 di crociera, quindi decelereranno fino all'arresto. Il flusso in entrata dei comandi di movimento del G-code viene messo in coda e analizzato: l'accelerazione tra i movimenti in una direzione simile sar\u00e0 ottimizzata per ridurre gli arresti di stampa e migliorare il tempo di stampa complessivo. Klipper implementa un algoritmo \"stepper phase endstop\" che pu\u00f2 migliorare la precisione dei tipici interruttori endstop. Se regolato correttamente, pu\u00f2 migliorare l'adesione del primo strato di stampa. Supporto per sensori di presenza del filamento, sensori di movimento del filamento e sensori di larghezza del filamento. Supporto per misurare e registrare l'accelerazione utilizzando un accelerometro adxl345. Supporto per limitare la velocit\u00e0 massima di brevi spostamenti a \"zigzag\" per ridurre le vibrazioni e il rumore della stampante. Per ulteriori informazioni, vedere il documento cinematica . Sono disponibili file di configurazione di esempio per molte stampanti comuni. Controllare la directory di configurazione per un elenco. Per iniziare con Klipper, leggi la guida installazione . Benchmark dei passi \u00b6 Di seguito sono riportati i risultati dei test delle prestazioni degli stepper. I numeri visualizzati rappresentano il numero totale di passi al secondo sul microcontrollore. Microcontrollore 1 stepper attivo 3 stepper attivi 16Mhz AVR 157K 99K 20Mhz AVR 196K 123K SAMD21 686K 471K STM32F042 814K 578K Beaglebone PRU 866K 708K STM32G0B1 1103K 790K STM32F103 1180K 818K SAM3X8E 1273K 981K SAM4S8C 1690K 1385K LPC1768 1923K 1351K LPC1769 2353K 1622K RP2040 2400K 1636K SAM4E8E 2500K 1674K SAMD51 3077K 1885K STM32F407 3652K 2459K STM32F446 3913K 2634K STM32H743 9091K 6061K Se non sei sicuro del microcontrollore su una particolare scheda, trova il file di configurazione appropriato e cerca il nome del microcontrollore nei commenti nella parte superiore di quel file. Ulteriori dettagli sui benchmark sono disponibili nel documento Benchmarks .","title":"Caratteristiche"},{"location":"Features.html#caratteristiche","text":"Klipper ha diverse caratteristiche interessanti: Movimento passo-passo ad alta precisione. Klipper utilizza un processore applicativo (come un Raspberry Pi a basso costo) per calcolare i movimenti della stampante. Il processore dell'applicazione determina quando azionare ciascun motore passo-passo, comprime quegli eventi, li trasmette al microcontrollore e quindi il microcontrollore esegue ogni evento all'ora richiesta. Ogni evento stepper \u00e8 programmato con una precisione di 25 microsecondi o migliore. Il software non utilizza stime cinematiche (come l'algoritmo di Bresenham), ma calcola tempi di passo precisi in base alla fisica dell'accelerazione e alla fisica della cinematica della macchina. Un movimento stepper pi\u00f9 preciso si traduce in un funzionamento pi\u00f9 silenzioso e stabile della stampante. Le migliori prestazioni della classe. Klipper \u00e8 in grado di raggiungere elevate velocit\u00e0 di stepping su microcontrollori nuovi e vecchi. Anche i vecchi microcontrollori a 8 bit possono ottenere velocit\u00e0 di oltre 175.000 passi al secondo. Sui microcontrollori pi\u00f9 recenti sono possibili diversi milioni di passi al secondo. Velocit\u00e0 stepper pi\u00f9 elevate consentono velocit\u00e0 di stampa pi\u00f9 elevate. Il timing dell'evento stepper rimane preciso anche a velocit\u00e0 elevate, migliorando la stabilit\u00e0 generale. Klipper supporta stampanti con pi\u00f9 microcontrollori. Ad esempio, un microcontrollore potrebbe essere utilizzato per controllare un estrusore, mentre un altro controlla i riscaldatori della stampante, mentre un terzo controlla il resto della stampante. Il software host Klipper implementa la sincronizzazione dell'orologio per tenere conto della deriva dell'orologio tra i microcontrollori. Non \u00e8 necessario alcun codice speciale per abilitare pi\u00f9 microcontrollori: sono necessarie solo alcune righe in pi\u00f9 nel file di configurazione. Configurazione tramite semplice file. Non \u00e8 necessario eseguire il reflash del microcontrollore per modificare un'impostazione. Tutta la configurazione di Klipper \u00e8 memorizzata in un file di configurazione standard che pu\u00f2 essere facilmente modificato. Ci\u00f2 semplifica la configurazione e la manutenzione dell'hardware. Klipper supporta \"Smooth Pressure Advance\", un meccanismo per tenere conto degli effetti della pressione all'interno di un estrusore. Ci\u00f2 riduce la \"melma\" dell'estrusore e migliora la qualit\u00e0 degli angoli di stampa. L'implementazione di Klipper non introduce variazioni istantanee della velocit\u00e0 dell'estrusore, il che migliora la stabilit\u00e0 e la robustezza complessive. Klipper supporta \"Input Shaping\" per ridurre l'impatto delle vibrazioni sulla qualit\u00e0 di stampa. Ci\u00f2 pu\u00f2 ridurre o eliminare il \"ringing\" (noto anche come \"ghosting\", \"eco\" o \"increspatura\") nelle stampe. Pu\u00f2 anche consentire di ottenere velocit\u00e0 di stampa pi\u00f9 elevate pur mantenendo un'elevata qualit\u00e0 di stampa. Klipper utilizza un \"risolutore iterativo\" per calcolare sequenze temporali precisi da semplici equazioni cinematiche. Ci\u00f2 semplifica il porting di Klipper su nuovi tipi di robot e mantiene i tempi precisi anche con cinematiche complesse (non \u00e8 necessaria la \"segmentazione della linea\"). Codice portatile. Klipper funziona su microcontrollori basati su ARM, AVR e PRU. Le stampanti esistenti in stile \"reprap\" possono eseguire Klipper senza modifiche hardware: basta aggiungere un Raspberry Pi. Il layout del codice interno di Klipper semplifica il supporto anche di altre architetture di microcontrollori. Codice pi\u00f9 semplice. Klipper utilizza un linguaggio di alto livello (Python) per la maggior parte del codice. Gli algoritmi cinematici, l'analisi del G-code, gli algoritmi di riscaldamento e termistore, ecc. sono tutti scritti in Python. Ci\u00f2 semplifica lo sviluppo di nuove funzionalit\u00e0. Macro programmabili personalizzate. \u00c8 possibile definire nuovi comandi G-Code nel file di configurazione della stampante (non sono necessarie modifiche al codice). Questi comandi sono programmabili, consentendo loro di produrre azioni diverse a seconda dello stato della stampante. Server API integrato. Oltre all'interfaccia G-Code standard, Klipper supporta una ricca interfaccia applicativa basata su JSON. Ci\u00f2 consente ai programmatori di creare applicazioni esterne con un controllo dettagliato della stampante.","title":"Caratteristiche"},{"location":"Features.html#caratteristiche-aggiuntive","text":"Klipper supporta molte funzionalit\u00e0 standard della stampante 3D: Funziona con Octoprint. Ci\u00f2 consente di controllare la stampante utilizzando un normale browser web. Lo stesso Raspberry Pi che esegue Klipper pu\u00f2 anche eseguire Octoprint. Supporto G-code standard. Sono supportati i comandi G-code comuni prodotti dai tipici \"slicer\" (SuperSlicer, Cura, PrusaSlicer, ecc.). Supporto per pi\u00f9 estrusori. Sono supportati anche estrusori con riscaldatori condivisi ed estrusori su carrelli indipendenti (IDEX). Supporto per stampanti cartesiane, delta, corexy, corexz, hybrid-corexy, hybrid-corexz, rotative delta, polari e con verricello a cavo. Supporto per il livellamento automatico del letto. Klipper pu\u00f2 essere configurato per il rilevamento di base dell'inclinazione del piatto o per il livellamento del piatto a mesh completa. Se il piatto utilizza pi\u00f9 stepper Z, Klipper pu\u00f2 anche livellare manipolando in modo indipendente gli stepper Z. Sono supportate la maggior parte delle sonde di altezza Z, comprese le sonde BL-Touch e le sonde servoattivate. Supporto per la calibrazione delta automatica. Lo strumento di calibrazione pu\u00f2 eseguire la calibrazione dell'altezza di base e una calibrazione avanzata delle dimensioni X e Y. La calibrazione pu\u00f2 essere eseguita con una sonda di altezza Z o tramite tastatura manuale. Supporto per sensori di temperatura comuni (ad es. termistori comuni, AD595, AD597, AD849x, PT100, PT1000, MAX6675, MAX31855, MAX31856, MAX31865, BME280, HTU21D, DS18B20 e LM75). \u00c8 inoltre possibile configurare termistori personalizzati e sensori di temperatura analogici personalizzati. \u00c8 possibile monitorare il sensore di temperatura del microcontrollore interno e il sensore di temperatura interna di un Raspberry Pi. Protezione del riscaldatore termico di base abilitata di default. Supporto per ventole standard, ventole per ugelli e ventole a temperatura controllata. Non \u00e8 necessario mantenere le ventole in funzione quando la stampante \u00e8 inattiva. La velocit\u00e0 della ventola pu\u00f2 essere monitorata su ventole dotate di contagiri. Supporto per la configurazione a runtime dei driver per motori passo-passo TMC2130, TMC2208/TMC2224, TMC2209, TMC2660 e TMC5160. C'\u00e8 anche il supporto per il controllo corrente dei tradizionali driver stepper tramite pin AD5206, MCP4451, MCP4728, MCP4018 e PWM. Supporto per comuni display LCD collegati direttamente alla stampante. \u00c8 disponibile anche un menu predefinito. Il contenuto del display e del menu pu\u00f2 essere completamente personalizzato tramite il file di configurazione. Accelerazione costante e supporto \"look-ahead\". Tutti i movimenti della stampante accelereranno gradualmente dall'arresto alla velocit\u00e0 di crociera, quindi decelereranno fino all'arresto. Il flusso in entrata dei comandi di movimento del G-code viene messo in coda e analizzato: l'accelerazione tra i movimenti in una direzione simile sar\u00e0 ottimizzata per ridurre gli arresti di stampa e migliorare il tempo di stampa complessivo. Klipper implementa un algoritmo \"stepper phase endstop\" che pu\u00f2 migliorare la precisione dei tipici interruttori endstop. Se regolato correttamente, pu\u00f2 migliorare l'adesione del primo strato di stampa. Supporto per sensori di presenza del filamento, sensori di movimento del filamento e sensori di larghezza del filamento. Supporto per misurare e registrare l'accelerazione utilizzando un accelerometro adxl345. Supporto per limitare la velocit\u00e0 massima di brevi spostamenti a \"zigzag\" per ridurre le vibrazioni e il rumore della stampante. Per ulteriori informazioni, vedere il documento cinematica . Sono disponibili file di configurazione di esempio per molte stampanti comuni. Controllare la directory di configurazione per un elenco. Per iniziare con Klipper, leggi la guida installazione .","title":"Caratteristiche aggiuntive"},{"location":"Features.html#benchmark-dei-passi","text":"Di seguito sono riportati i risultati dei test delle prestazioni degli stepper. I numeri visualizzati rappresentano il numero totale di passi al secondo sul microcontrollore. Microcontrollore 1 stepper attivo 3 stepper attivi 16Mhz AVR 157K 99K 20Mhz AVR 196K 123K SAMD21 686K 471K STM32F042 814K 578K Beaglebone PRU 866K 708K STM32G0B1 1103K 790K STM32F103 1180K 818K SAM3X8E 1273K 981K SAM4S8C 1690K 1385K LPC1768 1923K 1351K LPC1769 2353K 1622K RP2040 2400K 1636K SAM4E8E 2500K 1674K SAMD51 3077K 1885K STM32F407 3652K 2459K STM32F446 3913K 2634K STM32H743 9091K 6061K Se non sei sicuro del microcontrollore su una particolare scheda, trova il file di configurazione appropriato e cerca il nome del microcontrollore nei commenti nella parte superiore di quel file. Ulteriori dettagli sui benchmark sono disponibili nel documento Benchmarks .","title":"Benchmark dei passi"},{"location":"G-Codes.html","text":"G-Codes \u00b6 Questo documento descrive i comandi che Klipper supporta. Questi sono i comandi che si possono inserire nella scheda del terminale OctoPrint. Comandi G-Code \u00b6 Klipper supporta i seguenti comandi G-Code standard: Movimento (G0 or G1): G1 [X<pos>] [Y<pos>] [Z<pos>] [E<pos>] [F<speed>] Sosta: G4 P<millisecondi> Sposta all'origine: G28 [X] [Y] [Z] Spegnere i motori: M18 o M84 Attendi che li movimenti correnti finiscano: M400 Utilizzare distanze assolute/relative per l'estrusione: M82 , M83 Usa coordinate assolute/relative: G90 , G91 Impostare la posizione: G92 [X<pos>] [Y<pos>] [Z<pos>] [E<pos>] Impostare la percentuale di override del fattore di velocit\u00e0: M220 S<percentuale> Imposta la percentuale di sostituzione del fattore di estrusione: M221 S<percentuale> Impostare l'accelerazione: M204 S<valore> OPPURE M204 P<valore> T<valore> Nota: se S non viene specificato e vengono specificati sia P che T, l'accelerazione viene impostata al minimo di P e T. Se viene specificato solo uno di P o T, il comando non ha effetto. Ottieni la temperatura dell'estrusore: M105 Imposta la temperatura dell'estrusore: M104 [T<index>] [S<temperatura>] Imposta la temperatura dell'estrusore e attende: M109 [T<index>] S<temperatura> Nota: M109 attende sempre che la temperatura si assesti al valore richiesto Imposta la temperatura del piatto: M140 [S<temperatura>] Imposta la temperatura del piatto e attende: M190 S<temperatura> Nota: M190 attende sempre che la temperatura si assesti al valore richiesto Imposta la velocit\u00e0 della ventola: M106 S<valore> Spegnere la ventola: M107 Arresto di emergenza: M112 Ottieni la posizione attuale: M114 Ottieni la versione del firmware: M115 Per ulteriori dettagli sui comandi precedenti, vedere la documentazione RepRap G-Code . L'obiettivo di Klipper \u00e8 supportare i comandi G-Code prodotti da comuni software di terze parti (ad es. OctoPrint, Printrun, Slic3r, Cura, ecc.) nelle loro configurazioni standard. Non \u00e8 un obiettivo supportare ogni possibile comando G-Code. Invece, Klipper preferisce comandi leggibili dall'uomo \"comandi G-Code estesi\" . Allo stesso modo, l'output del terminale G-Code \u00e8 inteso solo per essere leggibile dall'uomo - vedere il documento del server API se si controlla Klipper da un software esterno. Se si necessita di un comando G-Code meno comune, potrebbe essere possibile implementarlo con una [sezione di configurazione gcode_macro] personalizzata (Config_Reference.md#gcode_macro). Ad esempio, si potrebbe usare questo per implementare: G12 , G29 , G30 , G31 , M42 , M80 , M81 , T1 , ecc. Comandi aggiuntivi \u00b6 Klipper utilizza comandi G-Code \"estesi\" per la configurazione e lo stato generale. Questi comandi estesi seguono tutti un formato simile: iniziano con un nome di comando e possono essere seguiti da uno o pi\u00f9 parametri. Ad esempio: SET_SERVO SERVO=mioservo ANGLE=5.3 . In questo documento, i comandi ed i parametri sono mostrati in maiuscolo, tuttavia non fanno distinzione tra maiuscole e minuscole. (Quindi, \"SET_SERVO\" e \"set_servo\" eseguono entrambi lo stesso comando.) Questa sezione \u00e8 organizzata in base al nome del modulo Klipper, che generalmente segue i nomi delle sezioni specificati nel file di configurazione della stampante . Si noti che alcuni moduli vengono caricati automaticamente. [adxl345] \u00b6 I seguenti comandi sono disponibili quando una sezione di configurazione adxl345 \u00e8 abilitata. ACCELEROMETER_MEASURE \u00b6 ACCELEROMETER_MEASURE [CHIP=<config_name>] [NAME=<value>] : Avvia le misurazioni dell'accelerometro al numero richiesto di campioni al secondo. Se CHIP non \u00e8 specificato, il valore predefinito \u00e8 \"adxl345\". Il comando funziona in modalit\u00e0 start-stop: alla prima esecuzione avvia le misure, alla successiva esecuzione le interrompe. I risultati delle misurazioni vengono scritti in un file denominato /tmp/adxl345-<chip>-<name>.csv dove <chip> \u00e8 il nome del chip dell'accelerometro ( my_chip_name da [adxl345 my_chip_name] ) e <name> \u00e8 il parametro NAME facoltativo. Se NAME non \u00e8 specificato, il valore predefinito \u00e8 l'ora corrente nel formato \"AAAAMMGG_HHMMSS\". Se l'accelerometro non ha un nome nella sua sezione di configurazione (semplicemente [adxl345] ), allora la parte <chip> del nome non viene generata. ACCELEROMETER_QUERY \u00b6 ACCELEROMETER_QUERY [CHIP=<config_name>] [RATE=<value>] : interroga l'accelerometro per il valore corrente. Se CHIP non \u00e8 specificato, il valore predefinito \u00e8 \"adxl345\". Se RATE non \u00e8 specificato, viene utilizzato il valore predefinito. Questo comando \u00e8 utile per testare la connessione all'accelerometro ADXL345: uno dei valori restituiti dovrebbe essere un'accelerazione di caduta libera (+/- un po' di rumore del chip). ACCELEROMETER_DEBUG_READ \u00b6 ACCELEROMETER_DEBUG_READ [CHIP=<config_name>] REG=<register> : interroga l'ADXL345 register \"register\" (es. 44 o 0x2C). Pu\u00f2 essere utile per scopi di debug. ACCELEROMETER_DEBUG_WRITE \u00b6 ACCELEROMETER_DEBUG_WRITE [CHIP=<nome_config>] REG=<register> VAL=<value> : Scrive il valore \"value\" grezzo in un registro \"register\". Sia \"value\" che \"registrer\" possono essere un numero intero decimale o esadecimale. Usare con cura e fare riferimento alla scheda tecnica ADXL345 per riferimento. [angle] \u00b6 I seguenti comandi sono disponibili quando una sezione di configurazione dell'angolo \u00e8 abilitata. ANGLE_CALIBRATE \u00b6 ANGLE_CALIBRATE CHIP=<chip_name> : Esegue la calibrazione dell'angolo sul sensore dato (deve esserci una sezione di configurazione [angle chip_name] che ha specificato un parametro stepper ). IMPORTANTE - questo strumento comander\u00e0 al motore passo-passo di muoversi senza controllare i normali limiti della cinematica. Idealmente, il motore dovrebbe essere scollegato da qualsiasi carrello della stampante prima di eseguire la calibrazione. Se non \u00e8 possibile scollegare lo stepper dalla stampante, assicurarsi che il carrello sia vicino al centro della sua guida prima di iniziare la calibrazione. (Il motore passo-passo pu\u00f2 spostarsi avanti o indietro di due rotazioni complete durante questo test.) Dopo aver completato questo test, utilizzare il comando SAVE_CONFIG per salvare i dati di calibrazione nel file di configurazione. Per utilizzare questo strumento \u00e8 necessario installare il pacchetto Python \"numpy\" (consultare il measuring resonance document per ulteriori informazioni). ANGLE_DEBUG_READ \u00b6 ANGLE_DEBUG_READ CHIP=<config_name> REG=<register> : Interroga il registro del sensore \"register\" (ad es. 44 o 0x2C). Pu\u00f2 essere utile per scopi di debug. Questo \u00e8 disponibile solo per i chip tle5012b. ANGLE_DEBUG_WRITE \u00b6 ANGLE_DEBUG_WRITE CHIP=<config_name> REG=<register> VAL=<value> : scrive il valore \"value\" grezzo nel registro \"register\". Sia \"value\" che \"register\" possono essere un numero intero decimale o esadecimale. Usare con cautela e fare riferimento alla scheda tecnica del sensore per riferimento. Questo \u00e8 disponibile solo per i chip tle5012b. [bed_mesh] \u00b6 I seguenti comandi sono disponibili quando la sezione di configurazione bed_mesh \u00e8 abilitata (consultare anche la guida della mesh del letto ). BED_MESH_CALIBRATE \u00b6 BED_MESH_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>] [<mesh_parameter>=<value>] : Questo comando sonda il piatto utilizzando i punti generati specificati dai parametri nella configurazione. Dopo il sondaggio, viene generata una mesh e il movimento z viene regolato in base alla mesh. Vedere il comando PROBE per i dettagli sui parametri della sonda opzionali. Se viene specificato METHOD=manual, lo strumento di probing manuale \u00e8 attivato - vedere il comando MANUAL_PROBE per quanti riguarda per i dettagli sui comandi aggiuntivi disponibili mentre questo strumento \u00e8 attivo. BED_MESH_OUTPUT \u00b6 BED_MESH_OUTPUT PGP=[<0:1>] : questo comando restituisce i valori z sondati e i valori mesh correnti al terminale. Se viene specificato PGP=1, le coordinate X, Y generate da bed_mesh, insieme ai relativi indici associati, verranno inviate al terminale. BED_MESH_MAP \u00b6 BED_MESH_MAP : Come per BED_MESH_OUTPUT, questo comando stampa lo stato corrente della mesh sul terminale. Invece di stampare i valori in un formato leggibile, lo stato viene serializzato in formato json. Ci\u00f2 consente ai plug-in di Octoprint di acquisire facilmente i dati e generare mappe di altezza che si approssimano la superficie del piatto. BED_MESH_CLEAR \u00b6 BED_MESH_CLEAR : questo comando cancella la mesh e rimuove tutte le regolazioni z. Si consiglia di inserirlo nella parte finale del gcode. BED_MESH_PROFILE \u00b6 BED_MESH_PROFILE LOAD=<name> SAVE=<name> REMOVE=<name> : questo comando fornisce la gestione del profilo per lo stato della mesh. LOAD ripristiner\u00e0 lo stato della mesh dal profilo corrispondente al nome fornito. SAVE salver\u00e0 lo stato della mesh corrente in un profilo che corrisponde al nome fornito. Rimuovi eliminer\u00e0 il profilo corrispondente al nome fornito dalla memoria persistente. Si noti che dopo aver eseguito le operazioni SAVE o REMOVE \u00e8 necessario eseguire il gcode SAVE_CONFIG per rendere permanenti le modifiche alla memoria persistente. BED_MESH_OFFSET \u00b6 BED_MESH_OFFSET [X=<value>] [Y=<value>] : applica gli offset X e/o Y alla ricerca della mesh. Ci\u00f2 \u00e8 utile per le stampanti con estrusori indipendenti, poich\u00e9 \u00e8 necessario un offset per produrre la corretta regolazione Z dopo un cambio utensile. [bed_screws] \u00b6 I seguenti comandi sono disponibili quando la sezione di configurazione bed_screws \u00e8 abilitata (consultare anche la manual level guide ). BED_SCREWS_ADJUST \u00b6 BED_SCREWS_ADJUST : questo comando richiamer\u00e0 lo strumento di regolazione delle viti del piatto. Comander\u00e0 l'ugello in posizioni diverse (come definito nel file di configurazione) e consentir\u00e0 di effettuare regolazioni alle viti del piatto in modo che il piatto sia a una distanza costante dall'ugello. [bed_tilt] \u00b6 I seguenti comandi sono disponibili quando la sezione di configurazione inclinazione_piatto \u00e8 abilitata. BED_TILT_CALIBRATE \u00b6 BED_TILT_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>] : Questo comando sonder\u00e0 i punti specificati nella configurazione e quindi consiglier\u00e0 le regolazioni dell'inclinazione x e y aggiornate. Vedere il comando PROBE per i dettagli sui parametri della sonda opzionali. Se viene specificato METHOD=manual, lo strumento di probing manuale \u00e8 attivato - vedere il comando MANUAL_PROBE sopra per i dettagli sui comandi aggiuntivi disponibili mentre questo strumento \u00e8 attivo. [bltouch] \u00b6 Il comando seguente \u00e8 disponibile quando \u00e8 abilitata una sezione di configurazione bltouch (vedere anche la Guida BL-Touch ). BLTOUCH_DEBUG \u00b6 BLTOUCH_DEBUG COMMAND=<command> : Invia un comando al BLTouch. Pu\u00f2 essere utile per il debug. I comandi disponibili sono: pin_down , touch_mode , pin_up , self_test , reset . Un BL-Touch V3.0 o V3.1 pu\u00f2 anche supportare i comandi set_5V_output_mode , set_OD_output_mode , output_mode_store . BLTOUCH_STORE \u00b6 BLTOUCH_STORE MODE=<output_mode> : memorizza una modalit\u00e0 di output nella EEPROM di un BLTouch V3.1 Le modalit\u00e0 di output disponibili sono: 5V , OD [configfile] \u00b6 Il modulo configfile viene caricato automaticamente. SAVE_CONFIG \u00b6 SAVE_CONFIG : questo comando sovrascriver\u00e0 il file di configurazione della stampante principale e riavvier\u00e0 il software host. Questo comando viene utilizzato insieme ad altri comandi di calibrazione per memorizzare i risultati dei test di calibrazione. [delayed_gcode] \u00b6 Il comando seguente \u00e8 abilitato se \u00e8 stata abilitata una sezione di configurazione di gcode ritardata (consultare anche la guida ai modelli ). UPDATE_DELAYED_GCODE \u00b6 UPDATE_DELAYED_GCODE [ID=<nome>] [DURATION=<secondi>] : aggiorna la durata del ritardo per il [gcode_ritardato] identificato e avvia il timer per l'esecuzione di gcode. Un valore di 0 annuller\u00e0 l'esecuzione di un gcode ritardato in sospeso. [delta_calibrate] \u00b6 I seguenti comandi sono disponibili quando la sezione di configurazione delta_calibrate \u00e8 abilitata (consultare anche la guida alla calibrazione delta ). DELTA_CALIBRATE \u00b6 DELTA_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>] : questo comando sonder\u00e0 sette punti sul piatto e consiglier\u00e0 posizioni di finecorsa, angoli della torre e raggio aggiornati. Vedere il comando PROBE per i dettagli sui parametri della sonda opzionali. Se viene specificato METHOD=manual, lo strumento di probe manuale \u00e8 attivato - vedere il comando MANUAL_PROBE precedente per i dettagli sui comandi aggiuntivi disponibili mentre questo strumento \u00e8 attivo. DELTA_ANALYZE \u00b6 DELTA_ANALYZE : questo comando viene utilizzato durante la calibrazione avanzata delle stampanti delta. Vedere Delta Calibrate per i dettagli. [display] \u00b6 Il comando seguente \u00e8 disponibile quando \u00e8 abilitata una sezione di configurazione display . SET_DISPLAY_GROUP \u00b6 SET_DISPLAY_GROUP [DISPLAY=<display>] GROUP=<group> : Imposta il gruppo di visualizzazione attivo di un display LCD. Ci\u00f2 consente di definire pi\u00f9 gruppi di dati di visualizzazione nella configurazione, ad es. [display_data <group> <elementname>] e passare da uno all'altro usando questo comando gcode esteso. Se DISPLAY non \u00e8 specificato, l'impostazione predefinita \u00e8 \"display\" (il display principale). [display_status] \u00b6 Il modulo display_status viene caricato automaticamente se una sezione di configurazione display \u00e8 abilitata. Fornisce i seguenti comandi G-Code standard: Messaggio visualizzato: M117 <messaggio> Imposta la percentuale di costruzione: M73 P<percentuale> Viene inoltre fornito il seguente comando G-Code esteso: SET_DISPLAY_TEXT MSG=<messaggio> : esegue l'equivalente di M117, impostando il MSG fornito come messaggio visualizzato. Se MSG viene omesso, il display verr\u00e0 cancellato. [dual_carriage] \u00b6 Il comando seguente \u00e8 disponibile quando la sezione di configurazione dual_carriage \u00e8 abilitata. SET_DUAL_CARRIAGE \u00b6 SET_DUAL_CARRIAGE CARRIAGE=[0|1] : Questo comando imposter\u00e0 il carrello attivo. Viene in genere richiamato dai campi activate_gcode e deactivate_gcode in una configurazione a pi\u00f9 estrusori. [endstop_phase] \u00b6 I seguenti comandi sono disponibili quando una sezione di configurazione endstop_phase \u00e8 abilitata (consultare anche la guida alla fase endstop ). ENDSTOP_PHASE_CALIBRATE \u00b6 ENDSTOP_PHASE_CALIBRATE [STEPPER=<config_name>] : Se non viene fornito alcun parametro STEPPER, questo comando riporter\u00e0 le statistiche sulle fasi stepper dell'arresto durante le precedenti operazioni di homing. Quando viene fornito un parametro STEPPER, fa in modo che l'impostazione della fase di fine corsa fornita sia scritta nel file di configurazione (insieme al comando SAVE_CONFIG). [exclude_object] \u00b6 I seguenti comandi sono disponibili quando \u00e8 abilitata una exclude_object config section (consultare anche la exclude object guide ): EXCLUDE_OBJECT \u00b6 EXCLUDE_OBJECT [NAME=object_name] [CURRENT=1] [RESET=1] : Senza parametri, questo restituir\u00e0 un elenco di tutti gli oggetti attualmente esclusi. Quando viene fornito il parametro NAME , l'oggetto denominato verr\u00e0 escluso dalla stampa. Quando viene fornito il parametro CURRENT , l'oggetto corrente verr\u00e0 escluso dalla stampa. Quando viene fornito il parametro RESET l'elenco degli oggetti esclusi verr\u00e0 cancellato. Inoltre l'inclusione di NAME ripristiner\u00e0 solo l'oggetto denominato. Questo pu\u00f2 causare errori di stampa, se i livelli sono gi\u00e0 stati saltati. EXCLUDE_OBJECT_DEFINE \u00b6 EXCLUDE_OBJECT_DEFINE [NAME=object_name [CENTER=X,Y] [POLYGON=[[x,y],...]] [RESET=1] [JSON=1] : fornisce un riepilogo di un oggetto nel file. Senza parametri forniti, questo elencher\u00e0 gli oggetti definiti noti a Klipper. Restituisce un elenco di stringhe, a meno che non venga fornito il parametro JSON , quando restituir\u00e0 i dettagli dell'oggetto in formato json. Quando il parametro NAME \u00e8 incluso, definisce un oggetto da escludere. NAME : questo parametro \u00e8 obbligatorio. \u00c8 l'identificatore utilizzato da altri comandi in questo modulo. CENTER : una coordinata X,Y per l'oggetto. POLYGON : Un array di coordinate X,Y che fornisce un contorno per l'oggetto. Quando viene fornito il parametro RESET , tutti gli oggetti definiti verranno cancellati e il modulo [exclude_object] verr\u00e0 ripristinato. EXCLUDE_OBJECT_START \u00b6 EXCLUDE_OBJECT_START NAME=object_name : questo comando prende un parametro NAME e marca l'inizio del gcode per un oggetto sul livello corrente. EXCLUDE_OBJECT_END \u00b6 EXCLUDE_OBJECT_END [NAME=object_name] : Denota la fine del gcode dell'oggetto per il livello. \u00c8 accoppiato con EXCLUDE_OBJECT_START . Un parametro NAME \u00e8 facoltativo e avviser\u00e0 solo quando il nome fornito non corrisponde all'oggetto corrente. [extruder] \u00b6 I seguenti comandi sono disponibili se una sezione di configurazione dell'estrusore \u00e8 abilitata: ACTIVATE_EXTRUDER \u00b6 ACTIVATE_EXTRUDER EXTRUDER=<config_name> : in una stampante con pi\u00f9 sezioni di configurazione extruder , questo comando cambia l'hotend attivo. SET_PRESSURE_ADVANCE \u00b6 SET_PRESSURE_ADVANCE [EXTRUDER=<config_name>] [ADVANCE=<pressure_advance>] [SMOOTH_TIME=<pressure_advance_smooth_time>] : Imposta i parametri di pressure advance delleo stepper di un estrusore (come definito in un estrusore o [ extruder_stepper] (sezione di configurazione Config_Reference.md#extruder_stepper). Se EXTRUDER non \u00e8 specificato, per impostazione predefinita viene utilizzato lo stepper definito nell'hotend attivo. SET_EXTRUDER_ROTATION_DISTANCE \u00b6 SET_EXTRUDER_ROTATION_DISTANCE EXTRUDER=<config_name> [DISTANCE=<distance>] : Imposta un nuovo valore per la \"distanza di rotazione\" dello stepper dell'estrusore fornito (come definito in un extruder o extruder_stepper sezione di configurazione). Se la distanza di rotazione \u00e8 un numero negativo, il movimento passo-passo verr\u00e0 invertito (rispetto alla direzione passo-passo specificata nel file di configurazione). Le impostazioni modificate non vengono mantenute al ripristino di Klipper. Usare con cautela poich\u00e9 piccole modifiche possono causare una pressione eccessiva tra l'estrusore e l'hotend. Eseguire una corretta calibrazione con il filamento prima dell'uso. Se il valore 'DISTANZA' non viene fornito, questo comando restituir\u00e0 la distanza di rotazione corrente. SYNC_EXTRUDER_MOTION \u00b6 SYNC_EXTRUDER_MOTION EXTRUDER=<nome> MOTION_QUEUE=<nome> : questo comando attiver\u00e0 lo stepper specificato da EXTRUDER (come definito in un extruder o extruder_stepper config sezione) per sincronizzarsi con il movimento di un estrusore specificato da MOTION_QUEUE (come definito in una sezione di configurazione estrusore ). Se MOTION_QUEUE \u00e8 una stringa vuota, lo stepper verr\u00e0 desincronizzato da tutti i movimenti dell'estrusore. SET_EXTRUDER_STEP_DISTANCE \u00b6 Questo comando \u00e8 deprecato e verr\u00e0 rimosso nel prossimo futuro. SYNC_STEPPER_TO_EXTRUDER \u00b6 Questo comando \u00e8 deprecato e verr\u00e0 rimosso nel prossimo futuro. [fan_generic] \u00b6 Il comando seguente \u00e8 disponibile quando una sezione di configurazione fan_generic \u00e8 abilitata. SET_FAN_SPEED \u00b6 SET_FAN_SPEED FAN=config_name SPEED=<velocit\u00e0> Questo comando imposta la velocit\u00e0 di una ventola. \"velocit\u00e0\" deve essere compresa tra 0.0 e 1.0. [filament_switch_sensor] \u00b6 Il comando seguente \u00e8 disponibile quando \u00e8 abilitata una sezione di configurazione filament_switch_sensor o filament_motion_sensor . QUERY_FILAMENT_SENSOR \u00b6 QUERY_FILAMENT_SENSOR SENSOR=<sensor_name> : Interroga lo stato del sensore di filamento. I dati visualizzati sul terminale dipenderanno dal tipo di sensore definito nella configurazione. SET_FILAMENT_SENSOR \u00b6 SET_FILAMENT_SENSOR SENSOR=<nome_sensore> ENABLE=[0|1] : Attiva/disattiva il sensore di filamento. Se ENABLE \u00e8 impostato su 0, il sensore di filamento sar\u00e0 disabilitato, se impostato su 1 sar\u00e0 abilitato. [firmware_retraction] \u00b6 I seguenti comandi G-Code standard sono disponibili quando la sezione di configurazione firmware_retraction \u00e8 abilitata. Questi comandi consentono di utilizzare la funzione di retraction del firmware disponibile in molti slicer, per ridurre lo stringing durante gli spostamenti di non estrusione da una parte all'altra della stampa. Configurando opportunamente la pressure advance si riduce la lunghezza della retrazione richiesta. G10 : Ritrae l'estrusore utilizzando i parametri attualmente configurati. G11 : Ritira l'estrusore utilizzando i parametri attualmente configurati. Sono inoltre disponibili i seguenti comandi aggiuntivi. SET_RETRACTION \u00b6 SET_RETRACTION [RETRACT_LENGTH=<mm>] [RETRACT_SPEED=<mm/s>] [UNRETRACT_EXTRA_LENGTH=<mm>] [UNRETRACT_SPEED=<mm/s>] : regola i parametri utilizzati dalla retrazione. RETRACT_LENGTH determina la lunghezza del filamento da ritrarre e estrudere. La velocit\u00e0 di retrazione viene regolata tramite RETRACT_SPEED, ed \u00e8 generalmente impostata su un valore relativamente alto. La velocit\u00e0 di annullamento viene regolata tramite UNRETRACT_SPEED e non \u00e8 particolarmente critica, sebbene spesso inferiore a RETRACT_SPEED. In alcuni casi \u00e8 utile aggiungere una piccola quantit\u00e0 di lunghezza aggiuntiva all'annullamento della retrazione, e questa viene impostata tramite UNRETRACT_EXTRA_LENGTH. SET_RETRACTION \u00e8 comunemente impostato come parte della configurazione dello slicer per filamento, poich\u00e9 filamenti diversi richiedono impostazioni dei parametri diverse. GET_RETRACTION \u00b6 GET_RETRACTION : interroga i parametri correnti utilizzati dal firmware per retrazione e li visualizza sul terminale. [force_move] \u00b6 Il modulo force_move viene caricato automaticamente, tuttavia alcuni comandi richiedono l'impostazione di enable_force_move in printer config . STEPPER_BUZZ \u00b6 STEPPER_BUZZ STEPPER=<nome_config> : sposta lo stepper dato in avanti di 1 mm e poi indietro di 1 mm, ripetuto 10 volte. Questo \u00e8 uno strumento diagnostico per aiutare a verificare la connettivit\u00e0 stepper. FORCE_MOVE \u00b6 FORCE_MOVE STEPPER=<nome_config> DISTANCE=<value> VELOCITY=<value> [ACCEL=<value>] : Questo comando sposter\u00e0 forzatamente lo stepper dato della distanza data (in mm) alla velocit\u00e0 costante data (in mm/ S). Se viene specificato ACCEL ed \u00e8 maggiore di zero, verr\u00e0 utilizzata l'accelerazione data (in mm/s^2); altrimenti non viene eseguita alcuna accelerazione. Non vengono effettuati controlli sui limiti; non vengono effettuati aggiornamenti cinematici; altri stepper paralleli su un asse non verranno spostati. Prestare attenzione poich\u00e9 un comando errato potrebbe causare danni! L'uso di questo comando metter\u00e0 quasi sicuramente la cinematica di basso livello in uno stato errato; emettere un G28 in seguito per ripristinare la cinematica. Questo comando \u00e8 destinato alla diagnostica e al debug di basso livello. SET_KINEMATIC_POSITION \u00b6 SET_KINEMATIC_POSITION [X=<valore>] [Y=<valore>] [Z=<valore>] : forza il codice cinematico di basso livello a credere che la testa di stampa si trovi nella posizione cartesiana data. Questo \u00e8 un comando diagnostico e di debug; utilizzare SET_GCODE_OFFSET e/o G92 per le normali trasformazioni degli assi. Se un asse non \u00e8 specificato, verr\u00e0 impostato automaticamente sulla posizione in cui la testa \u00e8 stata comandata l'ultima volta. L'impostazione di una posizione errata o non valida pu\u00f2 causare errori software interni. Questo comando potrebbe invalidare futuri controlli sui confini; emettere un G28 in seguito per ripristinare la cinematica. [gcode] \u00b6 Il modulo gcode viene caricato automaticamente. RESTART \u00b6 RESTART : Ci\u00f2 far\u00e0 s\u00ec che il software host ricarichi la sua configurazione ed esegua un ripristino interno. Questo comando non canceller\u00e0 lo stato di errore dal microcontrollore (vedi FIRMWARE_RESTART) n\u00e9 caricher\u00e0 nuovo software (vedi FAQ ) . FIRMWARE_RESTART \u00b6 FIRMWARE_RESTART : Questo \u00e8 simile a un comando RESTART, ma cancella anche qualsiasi stato di errore dal microcontrollore. STATUS \u00b6 STATUS : segnala lo stato del software host di Klipper. HELP \u00b6 HELP : riporta l'elenco dei comandi G-Code estesi disponibili. [gcode_arcs] \u00b6 I seguenti comandi G-Code standard sono disponibili se una sezione di configurazione gcode_arcs \u00e8 abilitata: Movimento controllato dell'arco (G2 o G3): G2 [X<pos>] [Y<pos>] [Z<pos>] [E<pos>] [F<velocit\u00e0>] I<valore> J<valore> [gcode_macro] \u00b6 Il comando seguente \u00e8 disponibile quando \u00e8 abilitata una sezione di configurazione gcode_macro (consultare anche la guida ai modelli di comando ). SET_GCODE_VARIABLE \u00b6 SET_GCODE_VARIABLE MACRO=<nome_macro> VARIABLE=<nome> VALUE=<valore> : questo comando consente di modificare il valore di una variabile gcode_macro in fase di esecuzione. Il VALUE fornito viene analizzato come un valore literal in Python. [gcode_move] \u00b6 Il modulo gcode_move viene caricato automaticamente. GET_POSITION \u00b6 GET_POSITION`: Restituisce informazioni sulla posizione corrente della testa di stampa. Per ulteriori informazioni, vedere la documentazione per gli sviluppatori di GET_POSITION output . SET_GCODE_OFFSET \u00b6 SET_GCODE_OFFSET [X=<pos>|X_ADJUST=<regola>] [Y=<pos>|Y_ADJUST=<regola>] [Z=<pos>|Z_ADJUST=<regola>] [MOVE=1 [MOVE_SPEED=<velocit\u00e0 >]] : imposta un offset di posizione da applicare ai futuri comandi G-Code. Questo \u00e8 comunemente usato per cambiare virtualmente l'offset del letto Z o per impostare gli offset XY degli ugelli quando si cambia estrusore. Ad esempio, se viene inviato \"SET_GCODE_OFFSET Z=0.2\", i futuri movimenti G-Code avranno 0.2 mm aggiunti alla loro altezza Z. Se vengono utilizzati i parametri di stile X_ADJUST, la regolazione verr\u00e0 aggiunta a qualsiasi offset esistente (ad esempio, \"SET_GCODE_OFFSET Z=-0.2\" seguito da \"SET_GCODE_OFFSET Z_ADJUST=0.3\" risulter\u00e0 in un offset Z totale di 0.1). Se viene specificato \"MOVE=1\", verr\u00e0 emesso un movimento della testa di stampa per applicare l'offset specificato (altrimenti l'offset avr\u00e0 effetto sul successivo movimento assoluto del codice G che specifica l'asse dato). Se viene specificato \"MOVE_SPEED\", lo spostamento della testa utensile verr\u00e0 eseguito con la velocit\u00e0 data (in mm/s); in caso contrario, il movimento della testa utensile utilizzer\u00e0 l'ultima velocit\u00e0 del G-code specificata. SAVE_GCODE_STATE \u00b6 SAVE_GCODE_STATE [NAME=<nome_stato>] : salva lo stato di analisi delle coordinate del G-code corrente. Il salvataggio e il ripristino dello stato del G-code \u00e8 utile negli script e nelle macro. Questo comando salva la modalit\u00e0 di coordinate assolute del G-code corrente (G90/G91), la modalit\u00e0 di estrusione assoluta (M82/M83), l'origine (G92), l'offset (SET_GCODE_OFFSET), l'override della velocit\u00e0 (M220), l'override dell'estrusore (M221), la velocit\u00e0 di spostamento , la posizione XYZ corrente e la posizione relativa dell'estrusore \"E\". Se viene fornito NAME, consente di assegnare un nome allo stato salvato alla stringa data. Se NAME non viene fornito, il valore predefinito \u00e8 \"predefinito\". RESTORE_GCODE_STATE \u00b6 RESTORE_GCODE_STATE [NAME=<nome_stato>] [MOVE=1 [MOVE_SPEED=<velocit\u00e0>]] : ripristina uno stato precedentemente salvato tramite SAVE_GCODE_STATE. Se viene specificato \"MOVE=1\", verr\u00e0 emesso un movimento della testa utensile per tornare alla posizione XYZ precedente. Se viene specificato \"MOVE_SPEED\", lo spostamento della testa utensile verr\u00e0 eseguito con la velocit\u00e0 data (in mm/s); in caso contrario, lo spostamento della testa utensile utilizzer\u00e0 la velocit\u00e0 del codice g ripristinata. [hall_filament_width_sensor] \u00b6 I seguenti comandi sono disponibili quando la sezione di configurazione del sensore di larghezza del filamento tsl1401cl o sezione di configurazione del sensore di larghezza del filamento hall \u00e8 abilitata (consultare anche Sensore di larghezza del filamento TSLl401CL e Hall Filament Width Sensor ): QUERY_FILAMENT_WIDTH \u00b6 QUERY_FILAMENT_WIDTH : Restituisce lo spessore del filamento misurato. RESET_FILAMENT_WIDTH_SENSOR \u00b6 RESET_FILAMENT_WIDTH_SENSOR : Cancella tutte le letture del sensore. Utile dopo il cambio del filamento. DISABLE_FILAMENT_WIDTH_SENSOR \u00b6 DISABLE_FILAMENT_WIDTH_SENSOR : Spegnere il sensore di larghezza del filamento e smettere di usarlo per il controllo del flusso. ENABLE_FILAMENT_WIDTH_SENSOR \u00b6 ENABLE_FILAMENT_WIDTH_SENSOR : attiva il sensore di larghezza del filamento e inizia a usarlo per il controllo del flusso. QUERY_RAW_FILAMENT_WIDTH \u00b6 QUERY_RAW_FILAMENT_WIDTH : Restituisce le letture del canale ADC corrente e il valore grezzo (raw) del sensore per i punti di calibrazione. ENABLE_FILAMENT_WIDTH_LOG \u00b6 ENABLE_FILAMENT_WIDTH_LOG : attiva la registrazione del diametro del filamento. DISABLE_FILAMENT_WIDTH_LOG \u00b6 DISABLE_FILAMENT_WIDTH_LOG : Disattiva la registrazione del diametro del filamento. [heaters] \u00b6 Il modulo heaters viene caricato automaticamente se un riscaldatore \u00e8 definito nel file di configurazione. TURN_OFF_HEATERS \u00b6 TURN_OFF_HEATERS : Spegni tutti i riscaldatori. TEMPERATURE_WAIT \u00b6 TEMPERATURE_WAIT SENSOR=<config_name> [MINIMUM=<target>] [MAXIMUM=<target>] : Attendere fino a quando il sensore di temperatura specificato \u00e8 pari o superiore al MINIMO fornito e/o pari o inferiore al MASSIMO fornito. SET_HEATER_TEMPERATURE \u00b6 SET_HEATER_TEMPERATURE HEATER=<nome_riscaldatore> [TARGET=<temperatura_destinata>] : Imposta la temperatura target per un riscaldatore. Se non viene fornita una temperatura target, il target \u00e8 0. [idle_timeout] \u00b6 Il modulo idle_timeout viene caricato automaticamente. SET_IDLE_TIMEOUT \u00b6 SET_IDLE_TIMEOUT [TIMEOUT=<timeout>] : consente all'utente di impostare il timeout di inattivit\u00e0 (in secondi). [input_shaper] \u00b6 Il comando seguente \u00e8 abilitato se \u00e8 stata abilitata una sezione di configurazione di input_shaper (consultare anche la guida alla compensazione della risonanza ). SET_INPUT_SHAPER \u00b6 SET_INPUT_SHAPER [SHAPER_FREQ_X=<shaper_freq_x>] [SHAPER_FREQ_Y=<shaper_freq_y>] [DAMPING_RATIO_X=<damping_ratio_x>] [DAMPING_RATIO_Y=<damping_ratio_y>] [SHAPER_TYPE=<shaper>] [SHAPER_TYPE_X=<shaper_type_x>] [SHAPER_TYPE=<shaper_TYPE_X=<shaper_type_x>] [SHAPER_TYPE=<shaper_type_y=<shaper_type_x> ] : Modifica i parametri dell'input shaper. Si noti che il parametro SHAPER_TYPE reimposta l'input shaper per entrambi gli assi X e Y anche se sono stati configurati tipi di shaper diversi nella sezione [input_shaper]. SHAPER_TYPE non pu\u00f2 essere utilizzato insieme a uno dei parametri SHAPER_TYPE_X e SHAPER_TYPE_Y. Vedere config reference per maggiori dettagli su ciascuno di questi parametri. [manual_probe] \u00b6 Il modulo manual_probe viene caricato automaticamente. MANUAL_PROBE \u00b6 MANUAL_PROBE [SPEED=<speed>] : esegue uno script di supporto utile per misurare l'altezza dell'ugello in una determinata posizione. Se viene specificato SPEED, imposta la velocit\u00e0 dei comandi TESTZ (il valore predefinito \u00e8 5mm/s). Durante una sonda manuale, sono disponibili i seguenti comandi aggiuntivi: ACCEPT : questo comando accetta la posizione Z corrente e conclude il probing manuale. ABORT : questo comando termina lo strumento di probing manuale. TESTZ Z=<valore> : questo comando sposta l'ugello verso l'alto o verso il basso della quantit\u00e0 specificata in \"valore\". Ad esempio, TESTZ Z=-.1 sposterebbe l'ugello verso il basso di .1 mm mentre TESTZ Z=.1 sposterebbe l'ugello verso l'alto di .1 mm. Il valore pu\u00f2 anche essere + , - , ++ o -- per spostare l'ugello verso l'alto o verso il basso di un importo rispetto ai tentativi precedenti. Z_ENDSTOP_CALIBRATE \u00b6 Z_ENDSTOP_CALIBRATE [SPEED=<speed>] : esegue uno script di supporto utile per calibrare un'impostazione di configurazione Z position_endstop. Vedere il comando MANUAL_PROBE per i dettagli sui parametri e sui comandi aggiuntivi disponibili mentre lo strumento \u00e8 attivo. Z_OFFSET_APPLY_ENDSTOP \u00b6 Z_OFFSET_APPLY_ENDSTOP : prende l'offset Z Gcode corrente (noto anche come babystepping) e lo sottrae da stepper_z endstop_position. Questa azione per prendere un valore di babystep utilizzato di frequente e \"renderlo permanente\". Richiede un SAVE_CONFIG per avere effetto. [Stepper manuali] \u00b6 Il comando seguente \u00e8 disponibile quando una sezione di configurazione stepper_manuale \u00e8 abilitata. MANUAL_STEPPER \u00b6 MANUAL_STEPPER STEPPER=nome_config [ENABLE=[0|1]] [SET_POSITION=<pos>] [SPEED=<velocit\u00e0>] [ACCEL=<accelerazione>] [MOVE=<pos> [STOP_ON_ENDSTOP=[1|2|- 1|-2]] [SYNC=0]] : Questo comando alterer\u00e0 lo stato dello stepper. Utilizzare il parametro ENABLE per abilitare/disabilitare lo stepper. Utilizzare il parametro SET_POSITION per forzare lo stepper a pensare di trovarsi nella posizione data. Utilizzare il parametro MOVE per richiedere un movimento alla posizione data. Se viene specificato SPEED e/o ACCEL, verranno utilizzati i valori forniti al posto dei valori predefiniti specificati nel file di configurazione. Se viene specificato un ACCEL pari a zero, non verr\u00e0 eseguita alcuna accelerazione. Se viene specificato STOP_ON_ENDSTOP=1, lo spostamento terminer\u00e0 in anticipo se l'endstop segnala come attivato (usa STOP_ON_ENDSTOP=2 per completare lo spostamento senza errori anche se l'endstop non si attiva, usa -1 o -2 per interrompere quando l'endstop segnala non innescato). Normalmente i futuri comandi G-Code verranno programmati per essere eseguiti dopo il completamento del movimento passo-passo, tuttavia se un movimento passo-passo manuale utilizza SYNC=0, i futuri comandi di movimento G-Code potrebbero essere eseguiti in parallelo con il movimento passo-passo. [mcp4018] \u00b6 Il comando seguente \u00e8 disponibile quando una sezione di configurazione mcp4018 \u00e8 abilitata. SET_DIGIPOT \u00b6 SET_DIGIPOT DIGIPOT=config_name WIPER=<value> : Questo comando cambier\u00e0 il valore corrente del digipot. Questo valore dovrebbe essere in genere compreso tra 0.0 e 1.0, a meno che non sia definita una 'scale' nella configurazione. Quando viene definita 'scale', questo valore dovrebbe essere compreso tra 0,0 e 'scale'. [led] \u00b6 Il comando seguente \u00e8 disponibile quando una qualsiasi delle sezioni di configurazione led \u00e8 abilitata. SET_LED \u00b6 SET_LED LED=<nome_config> ROSSO=<valore> VERDE=<valore> BLU=<valore> BIANCO=<valore> [INDEX=<indice>] [TRANSMIT=0] [SYNC=1] : Imposta il LED in output. Ogni colore <valore> deve essere compreso tra 0,0 e 1,0. L'opzione BIANCO \u00e8 valida solo su LED RGBW. Se il LED supporta pi\u00f9 chip in una catena daisy-chain, \u00e8 possibile specificare INDEX per modificare il colore del solo chip specificato (1 per il primo chip, 2 per il secondo, ecc.). Se INDEX non viene fornito, tutti i LED nella catena verranno impostati sul colore fornito. Se viene specificato TRANSMIT=0, il cambio colore verr\u00e0 effettuato solo sul successivo comando SET_LED che non specifica TRANSMIT=0; questo pu\u00f2 essere utile in combinazione con il parametro INDEX per raggruppare pi\u00f9 aggiornamenti in una catena. Per impostazione predefinita, il comando SET_LED sincronizzer\u00e0 le modifiche con altri comandi gcode in corso. Ci\u00f2 pu\u00f2 comportare un comportamento indesiderato se i LED vengono impostati mentre la stampante non sta stampando in quanto reimposta il timeout di inattivit\u00e0. Se non \u00e8 necessaria una tempistica attenta, \u00e8 possibile specificare il parametro SYNC=0 opzionale per applicare le modifiche senza ripristinare il timeout di inattivit\u00e0. SET_LED_TEMPLATE \u00b6 SET_LED_TEMPLATE LED=<nome_led> TEMPLATE=<nome_modello> [<param_x>=<letterale>] [INDEX=<indice>] : Assegna un modello_visualizzazione a un dato LED . Ad esempio, se si definisce una sezione di configurazione [display_template my_led_template] allora si potrebbe assegnare TEMPLATE=my_led_template qui. Il display_template dovrebbe produrre una stringa separata da virgole contenente quattro numeri in virgola mobile corrispondenti alle impostazioni dei colori rosso, verde, blu e bianco. Il modello verr\u00e0 continuamente valutato e il LED verr\u00e0 impostato automaticamente sui colori risultanti. \u00c8 possibile impostare i parametri display_template da utilizzare durante la valutazione del modello (i parametri verranno analizzati come valori letterali Python). Se INDEX non \u00e8 specificato, tutti i chip nella catena dei LED verranno impostati sul modello, altrimenti verr\u00e0 aggiornato solo il chip con l'indice specificato. Se TEMPLATE \u00e8 una stringa vuota, questo comando canceller\u00e0 qualsiasi modello precedente assegnato al LED (\u00e8 quindi possibile utilizzare i comandi SET_LED per gestire le impostazioni del colore del LED). [output_pin] \u00b6 Il comando seguente \u00e8 disponibile quando una sezione di configurazione pin_output \u00e8 abilitata. SET_PIN \u00b6 SET_PIN PIN=nome_config VALUE=<valore> CYCLE_TIME=<tempo_ciclo> : Nota - PWM hardware attualmente non supporta il parametro CYCLE_TIME e utilizzer\u00e0 il tempo di ciclo definito nella configurazione. [palette2] \u00b6 I seguenti comandi sono disponibili quando la sezione di configurazione della palette2 \u00e8 abilitata. Le stampe di Palette funzionano incorporando speciali OCodes (Codici Omega) nel file GCode: O1 ... O32 : Questi codici vengono letti dal flusso GCode ed elaborati da questo modulo e passati al dispositivo Palette 2. Sono inoltre disponibili i seguenti comandi aggiuntivi. PALETTE_CONNECT \u00b6 PALETTE_CONNECT : questo comando inizializza la connessione con la Palette 2. PALETTE_DISCONNECT \u00b6 PALETTE_DISCONNECT : questo comando si disconnette dalla Palette 2. PALETTE_CLEAR \u00b6 PALETTE_CLEAR : questo comando indica alla Palette 2 di cancellare tutti i percorsi di input e output del filamento. PALETTE_CUT \u00b6 PALETTE_CUT : Questo comando indica alla Palette 2 di tagliare il filamento attualmente caricato nello splice core. PALETTE_SMART_LOAD \u00b6 PALETTE_SMART_LOAD : Questo comando avvia la sequenza di caricamento intelligente sulla Palette 2. Il filamento viene caricato automaticamente estrudendolo alla distanza calibrata sul dispositivo per la stampante e istruisce la Palette 2 una volta completato il caricamento. Questo comando equivale a premere Smart Load direttamente sullo schermo della Palette 2 dopo che il caricamento del filamento \u00e8 stato completato. [pid_calibrate] \u00b6 Il modulo pid_calibrate viene caricato automaticamente se nel file di configurazione \u00e8 definito un riscaldatore. PID_CALIBRATE \u00b6 PID_CALIBRATE HEATER=<nome_config> TARGET=<temperatura> [WRITE_FILE=1] : esegue un test di calibrazione PID. Il riscaldatore specificato verr\u00e0 abilitato fino al raggiungimento della temperatura target specificata, quindi il riscaldatore verr\u00e0 spento e acceso per diversi cicli. Se il parametro WRITE_FILE \u00e8 abilitato, verr\u00e0 creato il file /tmp/heattest.txt con un log di tutti i campioni di temperatura prelevati durante il test. [pause_resume] \u00b6 I seguenti comandi sono disponibili quando la pause_resume config section \u00e8 abilitata: PAUSE \u00b6 PAUSE : mette in pausa la stampa corrente. La posizione attuale viene acquisita per la ripresa al ripristino. RESUME \u00b6 RESUME [VELOCITY=<value>] : riprende la stampa da una pausa, ripristinando prima la posizione precedentemente acquisita. Il parametro VELOCITY determina la velocit\u00e0 alla quale l'utensile deve tornare alla posizione originale acquisita. CLEAR_PAUSE \u00b6 CLEAR_PAUSE : cancella lo stato di pausa corrente senza riprendere la stampa. Questo \u00e8 utile se si decide di annullare una stampa dopo un PAUSE. Si consiglia di aggiungerlo al gcode iniziale per assicurarsi che lo stato in pausa sia aggiornato per ogni stampa. CANCEL_PRINT \u00b6 CANCEL_PRINT : Annulla la stampa corrente. [print_stats] \u00b6 The print_stats module is automatically loaded. SET_PRINT_STATS_INFO \u00b6 SET_PRINT_STATS_INFO [TOTAL_LAYER=<total_layer_count>] [CURRENT_LAYER= <current_layer>] : Pass slicer info like layer act and total to Klipper. Add SET_PRINT_STATS_INFO [TOTAL_LAYER=<total_layer_count>] to your slicer start gcode section and SET_PRINT_STATS_INFO [CURRENT_LAYER= <current_layer>] at the layer change gcode section to pass layer information from your slicer to Klipper. [probe] \u00b6 I seguenti comandi sono disponibili quando \u00e8 abilitata una sezione di configurazione della sonda o una sezione di configurazione di bltouch (consultare anche la guida alla calibrazione della sonda ). sonda \u00b6 PROBE [PROBE_SPEED=<mm/s>] [LIFT_SPEED=<mm/s>] [SAMPLES=<count>] [SAMPLE_RETRACT_DIST=<mm>] [SAMPLES_TOLERANCE=<mm>] [SAMPLES_TOLERANCE_RETRIES=<count>] [SAMPLES_RESULT=median|average] : Sposta il nozzle verso il basso finch\u00e9 la sonda non scatta. Se viene fornito uno qualsiasi dei parametri opzionali, sovrascrive l'impostazione equivalente nella sezione probe config section . QUERY_PROBE \u00b6 QUERY_PROBE : Riporta lo stato corrente della sonda (\"triggered\" o \"open\"). PROBE_ACCURACY \u00b6 PROBE_ACCURACY [PROBE_SPEED=<mm/s>] [SAMPLES=<count>] [SAMPLE_RETRACT_DIST=<mm>] : Calcola la deviazione massima, minima, media, mediana e standard di pi\u00f9 campionamentidella sonda. Per impostazione predefinita, vengono presi 10 CAMPIONI. In caso contrario, i parametri opzionali sono impostati per default sulla loro impostazione equivalente nella sezione di configurazione della sonda. PROBE_CALIBRATE \u00b6 PROBE_CALIBRATE [SPEED=<speed>] [<probe_parameter>=<value>] : Eseguire uno script di aiuto utile per calibrare l'offset z della sonda. Vedere il comando PROBE per i dettagli sui parametri opzionali della sonda. Vedere il comando MANUAL_PROBE per i dettagli del parametro SPEED e sui comandi aggiuntivi disponibili mentre lo strumento \u00e8 attivo. Nota che il comando PROBE_CALIBRATE utilizza la variabile di velocit\u00e0 per spostarsi in direzione XY e Z. Z_OFFSET_APPLY_PROBE \u00b6 Z_OFFSET_APPLY_PROBE : prende l'offset Z Gcode corrente (aka, babystepping) e lo sottrae dallo z_offset della sonda. Questo per prendere un valore di babystep utilizzato di frequente e \"renderlo permanente\". Richiede un SAVE_CONFIG per avere effetto. [query_adc] \u00b6 Il modulo query_adc viene caricato automaticamente. QUERY_ADC \u00b6 QUERY_ADC [NAME=<config_name>] [PULLUP=<value>] : Riporta l'ultimo valore analogico ricevuto per un pin analogico configurato. Se NAME non viene fornito, viene riportato l'elenco dei nomi dei convertitori adc disponibili. Se viene fornito PULLUP (come valore in Ohm), viene riportato il valore analogico grezzo insieme alla resistenza equivalente dato quel pullup specificato. [query_endstops] \u00b6 Il modulo query_endstops viene caricato automaticamente. I seguenti comandi G-Code standard sono attualmente disponibili, ma non \u00e8 consigliabile utilizzarli: Ottieni lo stato del finecorsa: M119 (usa invece QUERY_ENDSTOPS.) QUERY_ENDSTOPS \u00b6 QUERY_ENDSTOPS : Rilevare i finecorsa degli assi e segnala se sono \"attivate\" o in uno stato \"aperto\". Questo comando viene in genere utilizzato per verificare che un finecorsa funzioni correttamente. [resonance_tester] \u00b6 I seguenti comandi sono disponibili quando una sezione di configurazione di tester_risonanza \u00e8 abilitata (consultare anche la guida alle risonanze di misurazione ). MEASURE_AXES_NOISE \u00b6 MEASURE_AXES_NOISE : misura ed riporta il rumore per tutti gli assi di tutti i chip dell'accelerometro abilitati. TEST_RESONANCES \u00b6 TEST_RESONANCES AXIS=<asse> OUTPUT=<risonanze,dati_grezzi> [NAME=<nome>] [FREQ_START=<freq_min>] [FREQ_END=<freq_max>] [HZ_PER_SEC=<hz_per_sec>] [CHIPS=<adxl345_chip_name>] [ POINT=x,y,z] [INPUT_SHAPING=[<0:1>]] : esegue il test di risonanza in tutti i punti sonda configurati per l'\"asse\" richiesto e misura l'accelerazione utilizzando i chip dell'accelerometro configurati per il rispettivo asse. \"asse\" pu\u00f2 essere X o Y, oppure specificare una direzione arbitraria come AXIS=dx,dy , dove dx e dy sono numeri in virgola mobile che definiscono un vettore di direzione (es. AXIS=X , AXIS=Y , o AXIS=1,-1 per definire una direzione diagonale). Nota che AXIS=dx,dy e AXIS=-dx,-dy sono equivalenti. adxl345_chip_name pu\u00f2 essere uno o pi\u00f9 chip adxl345 configurati, delimitati da virgole, ad esempio CHIPS=\"adxl345, adxl345 rpi\" . Nota che adxl345 pu\u00f2 essere omesso dai chip adxl345 denominati. Se POINT \u00e8 specificato, sovrascriver\u00e0 i punti configurati in [resonance_tester] . Se INPUT_SHAPING=0 o non impostato (predefinito), disabilita l'input shaping per il test di risonanza, perch\u00e9 non \u00e8 valido eseguire il test di risonanza con input shaper abilitato. Il parametro OUTPUT \u00e8 un elenco separato da virgole di cui verranno scritti gli output. Se viene richiesto raw_data , i dati grezzi dell'accelerometro vengono scritti in un file o in una serie di file /tmp/raw_data_<asse>_[<nome_chip>_][<punto>_]<nome>.csv con ( <punto>_ parte del nome generata solo se \u00e8 configurato pi\u00f9 di 1 punto sonda o \u00e8 specificato PUNTO). Se viene specificato resonances , la risposta in frequenza viene calcolata (su tutti i punti sonda) e scritta nel file /tmp/resonances_<asse>_<nome>.csv . Se non \u00e8 impostato, OUTPUT \u00e8 impostato su risonanze e NAME \u00e8 impostato sull'ora corrente nel formato \"AAAAMMGG_HHMMSS\". SHAPER_CALIBRATE \u00b6 SHAPER_CALIBRATE [AXIS=<asse>] [NAME=<nome>] [FREQ_START=<freq_min>] [FREQ_END=<freq_max>] [HZ_PER_SEC=<hz_per_sec>] [MAX_SMOOTHING=<livellamento_max>] : simile a TEST_RESONANCES , esegue il test di risonanza come configurato e cerca di trovare i parametri ottimali di input shaper per l'asse richiesto (o entrambi gli assi X e Y se il parametro AXIS non \u00e8 impostato). Se MAX_SMOOTHING non \u00e8 impostato, il suo valore viene preso dalla sezione [resonance_tester] , con l'impostazione predefinita non impostata. Per ulteriori informazioni sull'uso di questa funzione, vedere il Max smoothing della guida alla misurazione delle risonanze. I risultati dell'ottimizzazione vengono stampati sulla console e le risposte in frequenza e i diversi valori degli shaper di input vengono scritti in uno o pi\u00f9 file CSV /tmp/calibration_data_<asse>_<nome>.csv . A meno che non sia specificato, NAME imposta l'ora corrente nel formato \"AAAAMMGG_HHMMSS\". Nota che i parametri di input shaper suggeriti possono essere mantenuti nella configurazione eseguendo il comando SAVE_CONFIG . [respond] \u00b6 I seguenti comandi G-Code standard sono disponibili quando la sezione di configurazione di risposta \u00e8 abilitata: M118 <messaggio> : fa eco al messaggio preceduto dal prefisso predefinito configurato (o echo: se non \u00e8 configurato alcun prefisso). Sono inoltre disponibili i seguenti comandi aggiuntivi. RESPOND \u00b6 RESPOND MSG=\"<message>\" : echo il messaggio preceduto dal prefisso predefinito configurato (o echo: se non \u00e8 configurato alcun prefisso). RESPOND TYPE=echo MSG=\"<message>\" : echo del messaggio preceduto da echo: . RESPOND TYPE=echo_no_space MSG=\"<messaggio>\" : fa eco al messaggio preceduto da echo: senza uno spazio tra prefisso e messaggio, utile per la compatibilit\u00e0 con alcuni plugin di octoprint che prevedono una formattazione molto specifica. RESPOND TYPE=command MSG=\"<message>\" : echo il messaggio preceduto da // . OctoPrint pu\u00f2 essere configurato per rispondere a questi messaggi (ad es. RESPOND TYPE=command MSG=action:pause ). RESPOND TYPE=error MSG=\"<messaggio>\" : fa eco al messaggio preceduto da !! . RESPOND PREFIX=<prefix> MSG=\"<message>\" : echo il messaggio preceduto da <prefix> . (Il parametro PREFIX avr\u00e0 la priorit\u00e0 sul parametro TYPE ) [save_variables] \u00b6 Il comando seguente \u00e8 abilitato se \u00e8 stata abilitata una sezione di configurazione save_variables . SAVE_VARIABLE \u00b6 SAVE_VARIABLE VARIABLE=<nome> VALUE=<valore> : salva la variabile su disco in modo che possa essere utilizzata tra i riavvii. Tutte le variabili memorizzate vengono caricate nel dict printer.save_variables.variables all'avvio e possono essere utilizzate nelle macro gcode. Il VALUE fornito viene analizzato come un valore letterale Python. [screws_tilt_adjust] \u00b6 I seguenti comandi sono disponibili quando la sezione di configurazione viti_tilt_adjust \u00e8 abilitata (consultare anche la manual level guide ). SCREWS_TILT_CALCULATE \u00b6 SCREWS_TILT_CALCULATE [DIRECTION=CW|CCW] [MAX_DEVIATION=<value>] [<probe_parameter>=<value>] : Questo comando richiamer\u00e0 lo strumento di regolazione delle viti del piatto. Comander\u00e0 l'ugello in diverse posizioni (come definito nel file di configurazione) sondando l'altezza z e calcoler\u00e0 il numero di giri della manopola per regolare il livello del piatto. Se si specifica DIRECTION, le rotazioni della manopola saranno tutte nella stessa direzione, in senso orario (CW) o in senso antiorario (CCW). Vedere il comando PROBE per i dettagli sui parametri della sonda opzionali. IMPORTANTE: DEVI sempre eseguire un G28 prima di utilizzare questo comando. Se viene specificato MAX_DEVIATION, il comando generer\u00e0 un errore gcode se qualsiasi differenza nell'altezza della vite rispetto all'altezza della vite di base \u00e8 maggiore del valore fornito. [sdcard_loop] \u00b6 Quando la sezione di configurazione sdcard_loop \u00e8 abilitata, sono disponibili i seguenti comandi estesi. SDCARD_LOOP_BEGIN \u00b6 SDCARD_LOOP_BEGIN COUNT=<count> : inizia una sezione in loop nella stampa SD. Un conteggio pari a 0 indica che la sezione deve essere ripetuta indefinitamente. SDCARD_LOOP_END \u00b6 SDCARD_LOOP_END : termina una sezione in loop nella stampa SD. SDCARD_LOOP_DESIST \u00b6 SDCARD_LOOP_DESIST : completa i loop esistenti senza ulteriori iterazioni. [servo] \u00b6 I seguenti comandi sono disponibili quando una sezione di configurazione servo \u00e8 abilitata. SET_SERVO \u00b6 SET_SERVO SERVO=nome_config [ANGLE=<gradi> | WIDTH=<secondi>] : Imposta la posizione del servo sull'angolo dato (in gradi) o sulla larghezza dell'impulso (in secondi). Usa WIDTH=0 per disabilitare l'uscita servo. [skew_correction] \u00b6 I seguenti comandi sono disponibili quando \u00e8 abilitata la sezione config_correzione_asimmetria (consultare anche la guida Correzione_asimmetria ). SET_SKEW \u00b6 SET_SKEW [XY=<ac_length,bd_length,ad_length>] [XZ=<ac,bd,ad>] [YZ=<ac,bd,ad>] [CLEAR=<0|1>] : Configura il modulo [correzione_inclinazione ] con misure (in mm) tratte da una stampa di calibrazione. Si possono inserire misure per qualsiasi combinazione di piani, i piani non inseriti manterranno il loro valore attuale. Se viene immesso CLEAR=1 , tutta la correzione dell'inclinazione sar\u00e0 disabilitata. GET_CURRENT_SKEW \u00b6 GET_CURRENT_SKEW : Riporta l'inclinazione corrente della stampante per ciascun piano sia in radianti che in gradi. L'inclinazione viene calcolata in base ai parametri forniti tramite il gcode SET_SKEW . CALC_MEASURED_SKEW \u00b6 CALC_MEASURED_SKEW [AC=<ac_length>] [BD=<bd_length>] [AD=<ad_length>] : calcola e riporta l'inclinazione (in radianti e gradi) in base a una stampa di test misurata. Questo pu\u00f2 essere utile per determinare l'inclinazione corrente della stampante dopo che \u00e8 stata applicata la correzione. Pu\u00f2 anche essere utile prima di applicare la correzione per determinare se \u00e8 necessaria la correzione dell'inclinazione. Vedere Correzione inclinazione per i dettagli su oggetti e misurazioni di calibrazione inclinazione. SKEW_PROFILE \u00b6 SKEW_PROFILE [LOAD=<nome>] [SAVE=<nome>] [REMOVE=<nome>] : Gestione del profilo per correzione_inclinazione. LOAD ripristiner\u00e0 lo stato di inclinazione dal profilo corrispondente al nome fornito. SAVE salver\u00e0 lo stato di inclinazione corrente in un profilo che corrisponde al nome fornito. REMOVE eliminer\u00e0 il profilo corrispondente al nome fornito dalla memoria persistente. Si noti che dopo aver eseguito le operazioni SAVE o REMOVE \u00e8 necessario eseguire il gcode SAVE_CONFIG per rendere permanenti le modifiche alla memoria persistente. [smart_effector] \u00b6 Sono disponibili diversi comandi quando una sezione di configurazione smart_effector \u00e8 abilitata. Assicurati di controllare la documentazione ufficiale per Smart Effector su Duet3D Wiki prima di modificare i parametri di Smart Effector. Controllare anche la guida alla calibrazione della sonda . SET_SMART_EFFECTOR \u00b6 SET_SMART_EFFECTOR [SENSITIVITY=<sensibilit\u00e0>] [ACCEL=<accel>] [RECOVERY_TIME=<tempo>] : imposta i parametri di Smart Effector. Quando viene specificato SENSITIVITY , il rispettivo valore viene scritto nella EEPROM dello SmartEffector (richiede che sia fornito control_pin ). I valori di <sensibilit\u00e0> accettabili sono 0..255, il valore predefinito \u00e8 50. Valori inferiori richiedono una minore forza di contatto dell'ugello per attivarsi (ma esiste un rischio maggiore di falso trigger a causa delle vibrazioni durante la tastatura) e valori pi\u00f9 alti riducono il falso trigger (ma richiede una maggiore forza di contatto per attivarsi). Poich\u00e9 la sensibilit\u00e0 viene scritta nella EEPROM, viene conservata dopo lo spegnimento e quindi non \u00e8 necessario configurarla ad ogni avvio della stampante. ACCEL e RECOVERY_TIME consentono di sovrascrivere i parametri corrispondenti in fase di esecuzione, vedere la sezione di configurazione di Smart Effector per maggiori informazioni su quei parametri. RESET_SMART_EFFECTOR \u00b6 RESET_SMART_EFFECTOR : Ripristina la sensibilit\u00e0 di Smart Effector alle impostazioni di fabbrica. Richiede che il relativo control_pin sia fornito nella sezione di configurazione. [stepper_enable] \u00b6 Il modulo stepper_enable viene caricato automaticamente. SET_STEPPER_ENABLE \u00b6 SET_STEPPER_ENABLE STEPPER=<nome_config> ENABLE=[0|1] : Abilita o disabilita solo lo stepper dato. Questo \u00e8 uno strumento diagnostico e di debug e deve essere utilizzato con cautela. La disabilitazione di un motore dell'asse non ripristina le informazioni di homing. Lo spostamento manuale di uno stepper disabilitato pu\u00f2 causare l'azionamento del motore della macchina al di fuori dei limiti di sicurezza. Ci\u00f2 pu\u00f2 causare danni ai componenti dell'asse, al hotend e alla superficie di stampa. [temperature_fan] \u00b6 Il comando seguente \u00e8 disponibile quando una sezione di configurazione della ventola_temperatura \u00e8 abilitata. SET_TEMPERATURE_FAN_TARGET \u00b6 SET_TEMPERATURE_FAN_TARGET temperature_fan=<temperature_fan_name> [target=<target_temperature>] [min_speed=<min_speed>] [max_speed=<max_speed>] : Imposta la temperatura target per una temperature_fan. Se non viene fornito un target, viene impostato sulla temperatura specificata nel file di configurazione. Se le velocit\u00e0 non vengono fornite, non viene applicata alcuna modifica. [tmcXXXX] \u00b6 I seguenti comandi sono disponibili quando una qualsiasi delle tmcXXXX config section \u00e8 abilitata. DUMP_TMC \u00b6 DUMP_TMC STEPPER=<nome> : questo comando legger\u00e0 i registri del driver TMC e ne riporter\u00e0 i valori. INIT_TMC \u00b6 INIT_TMC STEPPER=<nome> : questo comando inizializzer\u00e0 i registri TMC. Necessario per riattivare il driver se l'alimentazione al chip viene spenta e poi riaccesa. SET_TMC_CURRENT \u00b6 SET_TMC_CURRENT STEPPER=<nome> CURRENT=<amps> HOLDCURRENT=<amps> : Questo regoler\u00e0 le correnti di funzionamento e di mantenimento del driver TMC. (HOLDCURRENT non \u00e8 applicabile ai driver tmc2660.) SET_TMC_FIELD \u00b6 SET_TMC_FIELD STEPPER=<nome> FIELD=<campo> VALUE=<valore> : Questo alterer\u00e0 il valore del campo del registro specificato del driver TMC. Questo comando \u00e8 destinato alla diagnostica e al debug di basso livello solo perch\u00e9 la modifica dei campi durante l'esecuzione pu\u00f2 causare comportamenti indesiderati e potenzialmente pericolosi della stampante. Le modifiche permanenti dovrebbero invece essere apportate utilizzando il file di configurazione della stampante. Non vengono eseguiti controlli di integrit\u00e0 per i valori indicati. [toolhead] \u00b6 Il modulo toolhead viene caricato automaticamente. SET_VELOCITY_LIMIT \u00b6 SET_VELOCITY_LIMIT [VELOCITY=<valore>] [ACCEL=<valore>] [ACCEL_TO_DECEL=<valore>] [SQUARE_CORNER_VELOCITY=<valore>] : Modifica i limiti di velocit\u00e0 della stampante. [tuning_tower] \u00b6 Il modulo tuning_tower viene caricato automaticamente. TUNING_TOWER \u00b6 TUNING_TOWER COMMAND=<comando> PARAMETER=<nome> START=<valore> [SKIP=<valore>] [FACTOR=<valore> [BAND=<valore>]] | [STEP_DELTA=<valore> STEP_HEIGHT=<valore>] : Uno strumento per regolare un parametro su ciascuna altezza Z durante una stampa. Lo strumento eseguir\u00e0 il dato COMMAND con il dato PARAMETER assegnato a un valore che varia con Z secondo una formula. Usa FACTOR se utilizzerai un righello o calibri per misurare l'altezza Z del valore ottimale, o STEP_DELTA e STEP_HEIGHT se il modello della torre di regolazione ha bande di valori discreti come \u00e8 comune con le torri della temperatura. Se viene specificato SKIP=<valore> , il processo di ottimizzazione non inizia finch\u00e9 non viene raggiunta l'altezza Z <valore> , e al di sotto di essa il valore sar\u00e0 impostato su START ; in questo caso, la z_height usata nelle formule seguenti \u00e8 in realt\u00e0 max(z - skip, 0) . Ci sono tre possibili combinazioni di opzioni: FACTOR : Il valore cambia a una velocit\u00e0 di factor per millimetro. La formula utilizzata \u00e8: valore = inizio + fattore * z_altezza . \u00c8 possibile inserire l'altezza Z ottimale direttamente nella formula per determinare il valore del parametro ottimale. FACTOR e BAND : il valore cambia a una velocit\u00e0 media di factor per millimetro, ma in bande discrete in cui la regolazione verr\u00e0 effettuata solo ogni BAND millimetri di altezza Z. La formula utilizzata \u00e8: value = start + factor * ((floor(z_height / band) + .5) * band) . STEP_DELTA e STEP_HEIGHT : il valore cambia di STEP_DELTA ogni STEP_HEIGHT millimetri. La formula utilizzata \u00e8: value = start + step_delta * floor(z_height / step_height) . Puoi semplicemente contare le bande o leggere le etichette della torre di tuning per determinare il valore ottimale. [virtual_sdcard] \u00b6 Klipper supporta i seguenti comandi G-Code standard se la sezione di configurazione di virtual_sdcard \u00e8 abilitata: Elenco scheda SD: M20 Inizializza scheda SD: M21 Selezionare il file SD: M23 <nomefile> Avvia/riprendi la stampa SD: M24 Sospendi la stampa SD: M25 Impostare la posizione SD: M26 S<offset> Riporta lo stato di stampa SD: M27 Inoltre, quando la sezione di configurazione \"virtual_sdcard\" \u00e8 abilitata, sono disponibili i seguenti comandi estesi. SDCARD_PRINT_FILE \u00b6 SDCARD_PRINT_FILE FILENAME=<nomefile> : carica un file e avvia la stampa SD. SDCARD_RESET_FILE \u00b6 SDCARD_RESET_FILE : Scarica il file e cancella lo stato SD. [z_thermal_adjust] \u00b6 The following commands are available when the z_thermal_adjust config section is enabled. SET_Z_THERMAL_ADJUST \u00b6 SET_Z_THERMAL_ADJUST [ENABLE=<0:1>] [TEMP_COEFF=<value>] [REF_TEMP=<value>] : Enable or disable the Z thermal adjustment with ENABLE . Disabling does not remove any adjustment already applied, but will freeze the current adjustment value - this prevents potentially unsafe downward Z movement. Re-enabling can potentially cause upward tool movement as the adjustment is updated and applied. TEMP_COEFF allows run-time tuning of the adjustment temperature coefficient (i.e. the TEMP_COEFF config parameter). TEMP_COEFF values are not saved to the config. REF_TEMP manually overrides the reference temperature typically set during homing (for use in e.g. non-standard homing routines) - will be reset automatically upon homing. [z_tilt] \u00b6 I seguenti comandi sono disponibili quando la sezione z_tilt config \u00e8 abilitata. Z_TILT_ADJUST \u00b6 Z_TILT_ADJUST [<probe_parameter>=<value>] : questo comando sonder\u00e0 i punti specificati nella configurazione e quindi apporter\u00e0 regolazioni indipendenti a ciascuno Z stepper per compensare l'inclinazione. Vedere il comando PROBE per i dettagli sui parametri opzionali della sonda.","title":"G-Codes"},{"location":"G-Codes.html#g-codes","text":"Questo documento descrive i comandi che Klipper supporta. Questi sono i comandi che si possono inserire nella scheda del terminale OctoPrint.","title":"G-Codes"},{"location":"G-Codes.html#comandi-g-code","text":"Klipper supporta i seguenti comandi G-Code standard: Movimento (G0 or G1): G1 [X<pos>] [Y<pos>] [Z<pos>] [E<pos>] [F<speed>] Sosta: G4 P<millisecondi> Sposta all'origine: G28 [X] [Y] [Z] Spegnere i motori: M18 o M84 Attendi che li movimenti correnti finiscano: M400 Utilizzare distanze assolute/relative per l'estrusione: M82 , M83 Usa coordinate assolute/relative: G90 , G91 Impostare la posizione: G92 [X<pos>] [Y<pos>] [Z<pos>] [E<pos>] Impostare la percentuale di override del fattore di velocit\u00e0: M220 S<percentuale> Imposta la percentuale di sostituzione del fattore di estrusione: M221 S<percentuale> Impostare l'accelerazione: M204 S<valore> OPPURE M204 P<valore> T<valore> Nota: se S non viene specificato e vengono specificati sia P che T, l'accelerazione viene impostata al minimo di P e T. Se viene specificato solo uno di P o T, il comando non ha effetto. Ottieni la temperatura dell'estrusore: M105 Imposta la temperatura dell'estrusore: M104 [T<index>] [S<temperatura>] Imposta la temperatura dell'estrusore e attende: M109 [T<index>] S<temperatura> Nota: M109 attende sempre che la temperatura si assesti al valore richiesto Imposta la temperatura del piatto: M140 [S<temperatura>] Imposta la temperatura del piatto e attende: M190 S<temperatura> Nota: M190 attende sempre che la temperatura si assesti al valore richiesto Imposta la velocit\u00e0 della ventola: M106 S<valore> Spegnere la ventola: M107 Arresto di emergenza: M112 Ottieni la posizione attuale: M114 Ottieni la versione del firmware: M115 Per ulteriori dettagli sui comandi precedenti, vedere la documentazione RepRap G-Code . L'obiettivo di Klipper \u00e8 supportare i comandi G-Code prodotti da comuni software di terze parti (ad es. OctoPrint, Printrun, Slic3r, Cura, ecc.) nelle loro configurazioni standard. Non \u00e8 un obiettivo supportare ogni possibile comando G-Code. Invece, Klipper preferisce comandi leggibili dall'uomo \"comandi G-Code estesi\" . Allo stesso modo, l'output del terminale G-Code \u00e8 inteso solo per essere leggibile dall'uomo - vedere il documento del server API se si controlla Klipper da un software esterno. Se si necessita di un comando G-Code meno comune, potrebbe essere possibile implementarlo con una [sezione di configurazione gcode_macro] personalizzata (Config_Reference.md#gcode_macro). Ad esempio, si potrebbe usare questo per implementare: G12 , G29 , G30 , G31 , M42 , M80 , M81 , T1 , ecc.","title":"Comandi G-Code"},{"location":"G-Codes.html#comandi-aggiuntivi","text":"Klipper utilizza comandi G-Code \"estesi\" per la configurazione e lo stato generale. Questi comandi estesi seguono tutti un formato simile: iniziano con un nome di comando e possono essere seguiti da uno o pi\u00f9 parametri. Ad esempio: SET_SERVO SERVO=mioservo ANGLE=5.3 . In questo documento, i comandi ed i parametri sono mostrati in maiuscolo, tuttavia non fanno distinzione tra maiuscole e minuscole. (Quindi, \"SET_SERVO\" e \"set_servo\" eseguono entrambi lo stesso comando.) Questa sezione \u00e8 organizzata in base al nome del modulo Klipper, che generalmente segue i nomi delle sezioni specificati nel file di configurazione della stampante . Si noti che alcuni moduli vengono caricati automaticamente.","title":"Comandi aggiuntivi"},{"location":"G-Codes.html#adxl345","text":"I seguenti comandi sono disponibili quando una sezione di configurazione adxl345 \u00e8 abilitata.","title":"[adxl345]"},{"location":"G-Codes.html#accelerometer_measure","text":"ACCELEROMETER_MEASURE [CHIP=<config_name>] [NAME=<value>] : Avvia le misurazioni dell'accelerometro al numero richiesto di campioni al secondo. Se CHIP non \u00e8 specificato, il valore predefinito \u00e8 \"adxl345\". Il comando funziona in modalit\u00e0 start-stop: alla prima esecuzione avvia le misure, alla successiva esecuzione le interrompe. I risultati delle misurazioni vengono scritti in un file denominato /tmp/adxl345-<chip>-<name>.csv dove <chip> \u00e8 il nome del chip dell'accelerometro ( my_chip_name da [adxl345 my_chip_name] ) e <name> \u00e8 il parametro NAME facoltativo. Se NAME non \u00e8 specificato, il valore predefinito \u00e8 l'ora corrente nel formato \"AAAAMMGG_HHMMSS\". Se l'accelerometro non ha un nome nella sua sezione di configurazione (semplicemente [adxl345] ), allora la parte <chip> del nome non viene generata.","title":"ACCELEROMETER_MEASURE"},{"location":"G-Codes.html#accelerometer_query","text":"ACCELEROMETER_QUERY [CHIP=<config_name>] [RATE=<value>] : interroga l'accelerometro per il valore corrente. Se CHIP non \u00e8 specificato, il valore predefinito \u00e8 \"adxl345\". Se RATE non \u00e8 specificato, viene utilizzato il valore predefinito. Questo comando \u00e8 utile per testare la connessione all'accelerometro ADXL345: uno dei valori restituiti dovrebbe essere un'accelerazione di caduta libera (+/- un po' di rumore del chip).","title":"ACCELEROMETER_QUERY"},{"location":"G-Codes.html#accelerometer_debug_read","text":"ACCELEROMETER_DEBUG_READ [CHIP=<config_name>] REG=<register> : interroga l'ADXL345 register \"register\" (es. 44 o 0x2C). Pu\u00f2 essere utile per scopi di debug.","title":"ACCELEROMETER_DEBUG_READ"},{"location":"G-Codes.html#accelerometer_debug_write","text":"ACCELEROMETER_DEBUG_WRITE [CHIP=<nome_config>] REG=<register> VAL=<value> : Scrive il valore \"value\" grezzo in un registro \"register\". Sia \"value\" che \"registrer\" possono essere un numero intero decimale o esadecimale. Usare con cura e fare riferimento alla scheda tecnica ADXL345 per riferimento.","title":"ACCELEROMETER_DEBUG_WRITE"},{"location":"G-Codes.html#angle","text":"I seguenti comandi sono disponibili quando una sezione di configurazione dell'angolo \u00e8 abilitata.","title":"[angle]"},{"location":"G-Codes.html#angle_calibrate","text":"ANGLE_CALIBRATE CHIP=<chip_name> : Esegue la calibrazione dell'angolo sul sensore dato (deve esserci una sezione di configurazione [angle chip_name] che ha specificato un parametro stepper ). IMPORTANTE - questo strumento comander\u00e0 al motore passo-passo di muoversi senza controllare i normali limiti della cinematica. Idealmente, il motore dovrebbe essere scollegato da qualsiasi carrello della stampante prima di eseguire la calibrazione. Se non \u00e8 possibile scollegare lo stepper dalla stampante, assicurarsi che il carrello sia vicino al centro della sua guida prima di iniziare la calibrazione. (Il motore passo-passo pu\u00f2 spostarsi avanti o indietro di due rotazioni complete durante questo test.) Dopo aver completato questo test, utilizzare il comando SAVE_CONFIG per salvare i dati di calibrazione nel file di configurazione. Per utilizzare questo strumento \u00e8 necessario installare il pacchetto Python \"numpy\" (consultare il measuring resonance document per ulteriori informazioni).","title":"ANGLE_CALIBRATE"},{"location":"G-Codes.html#angle_debug_read","text":"ANGLE_DEBUG_READ CHIP=<config_name> REG=<register> : Interroga il registro del sensore \"register\" (ad es. 44 o 0x2C). Pu\u00f2 essere utile per scopi di debug. Questo \u00e8 disponibile solo per i chip tle5012b.","title":"ANGLE_DEBUG_READ"},{"location":"G-Codes.html#angle_debug_write","text":"ANGLE_DEBUG_WRITE CHIP=<config_name> REG=<register> VAL=<value> : scrive il valore \"value\" grezzo nel registro \"register\". Sia \"value\" che \"register\" possono essere un numero intero decimale o esadecimale. Usare con cautela e fare riferimento alla scheda tecnica del sensore per riferimento. Questo \u00e8 disponibile solo per i chip tle5012b.","title":"ANGLE_DEBUG_WRITE"},{"location":"G-Codes.html#bed_mesh","text":"I seguenti comandi sono disponibili quando la sezione di configurazione bed_mesh \u00e8 abilitata (consultare anche la guida della mesh del letto ).","title":"[bed_mesh]"},{"location":"G-Codes.html#bed_mesh_calibrate","text":"BED_MESH_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>] [<mesh_parameter>=<value>] : Questo comando sonda il piatto utilizzando i punti generati specificati dai parametri nella configurazione. Dopo il sondaggio, viene generata una mesh e il movimento z viene regolato in base alla mesh. Vedere il comando PROBE per i dettagli sui parametri della sonda opzionali. Se viene specificato METHOD=manual, lo strumento di probing manuale \u00e8 attivato - vedere il comando MANUAL_PROBE per quanti riguarda per i dettagli sui comandi aggiuntivi disponibili mentre questo strumento \u00e8 attivo.","title":"BED_MESH_CALIBRATE"},{"location":"G-Codes.html#bed_mesh_output","text":"BED_MESH_OUTPUT PGP=[<0:1>] : questo comando restituisce i valori z sondati e i valori mesh correnti al terminale. Se viene specificato PGP=1, le coordinate X, Y generate da bed_mesh, insieme ai relativi indici associati, verranno inviate al terminale.","title":"BED_MESH_OUTPUT"},{"location":"G-Codes.html#bed_mesh_map","text":"BED_MESH_MAP : Come per BED_MESH_OUTPUT, questo comando stampa lo stato corrente della mesh sul terminale. Invece di stampare i valori in un formato leggibile, lo stato viene serializzato in formato json. Ci\u00f2 consente ai plug-in di Octoprint di acquisire facilmente i dati e generare mappe di altezza che si approssimano la superficie del piatto.","title":"BED_MESH_MAP"},{"location":"G-Codes.html#bed_mesh_clear","text":"BED_MESH_CLEAR : questo comando cancella la mesh e rimuove tutte le regolazioni z. Si consiglia di inserirlo nella parte finale del gcode.","title":"BED_MESH_CLEAR"},{"location":"G-Codes.html#bed_mesh_profile","text":"BED_MESH_PROFILE LOAD=<name> SAVE=<name> REMOVE=<name> : questo comando fornisce la gestione del profilo per lo stato della mesh. LOAD ripristiner\u00e0 lo stato della mesh dal profilo corrispondente al nome fornito. SAVE salver\u00e0 lo stato della mesh corrente in un profilo che corrisponde al nome fornito. Rimuovi eliminer\u00e0 il profilo corrispondente al nome fornito dalla memoria persistente. Si noti che dopo aver eseguito le operazioni SAVE o REMOVE \u00e8 necessario eseguire il gcode SAVE_CONFIG per rendere permanenti le modifiche alla memoria persistente.","title":"BED_MESH_PROFILE"},{"location":"G-Codes.html#bed_mesh_offset","text":"BED_MESH_OFFSET [X=<value>] [Y=<value>] : applica gli offset X e/o Y alla ricerca della mesh. Ci\u00f2 \u00e8 utile per le stampanti con estrusori indipendenti, poich\u00e9 \u00e8 necessario un offset per produrre la corretta regolazione Z dopo un cambio utensile.","title":"BED_MESH_OFFSET"},{"location":"G-Codes.html#bed_screws","text":"I seguenti comandi sono disponibili quando la sezione di configurazione bed_screws \u00e8 abilitata (consultare anche la manual level guide ).","title":"[bed_screws]"},{"location":"G-Codes.html#bed_screws_adjust","text":"BED_SCREWS_ADJUST : questo comando richiamer\u00e0 lo strumento di regolazione delle viti del piatto. Comander\u00e0 l'ugello in posizioni diverse (come definito nel file di configurazione) e consentir\u00e0 di effettuare regolazioni alle viti del piatto in modo che il piatto sia a una distanza costante dall'ugello.","title":"BED_SCREWS_ADJUST"},{"location":"G-Codes.html#bed_tilt","text":"I seguenti comandi sono disponibili quando la sezione di configurazione inclinazione_piatto \u00e8 abilitata.","title":"[bed_tilt]"},{"location":"G-Codes.html#bed_tilt_calibrate","text":"BED_TILT_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>] : Questo comando sonder\u00e0 i punti specificati nella configurazione e quindi consiglier\u00e0 le regolazioni dell'inclinazione x e y aggiornate. Vedere il comando PROBE per i dettagli sui parametri della sonda opzionali. Se viene specificato METHOD=manual, lo strumento di probing manuale \u00e8 attivato - vedere il comando MANUAL_PROBE sopra per i dettagli sui comandi aggiuntivi disponibili mentre questo strumento \u00e8 attivo.","title":"BED_TILT_CALIBRATE"},{"location":"G-Codes.html#bltouch","text":"Il comando seguente \u00e8 disponibile quando \u00e8 abilitata una sezione di configurazione bltouch (vedere anche la Guida BL-Touch ).","title":"[bltouch]"},{"location":"G-Codes.html#bltouch_debug","text":"BLTOUCH_DEBUG COMMAND=<command> : Invia un comando al BLTouch. Pu\u00f2 essere utile per il debug. I comandi disponibili sono: pin_down , touch_mode , pin_up , self_test , reset . Un BL-Touch V3.0 o V3.1 pu\u00f2 anche supportare i comandi set_5V_output_mode , set_OD_output_mode , output_mode_store .","title":"BLTOUCH_DEBUG"},{"location":"G-Codes.html#bltouch_store","text":"BLTOUCH_STORE MODE=<output_mode> : memorizza una modalit\u00e0 di output nella EEPROM di un BLTouch V3.1 Le modalit\u00e0 di output disponibili sono: 5V , OD","title":"BLTOUCH_STORE"},{"location":"G-Codes.html#configfile","text":"Il modulo configfile viene caricato automaticamente.","title":"[configfile]"},{"location":"G-Codes.html#save_config","text":"SAVE_CONFIG : questo comando sovrascriver\u00e0 il file di configurazione della stampante principale e riavvier\u00e0 il software host. Questo comando viene utilizzato insieme ad altri comandi di calibrazione per memorizzare i risultati dei test di calibrazione.","title":"SAVE_CONFIG"},{"location":"G-Codes.html#delayed_gcode","text":"Il comando seguente \u00e8 abilitato se \u00e8 stata abilitata una sezione di configurazione di gcode ritardata (consultare anche la guida ai modelli ).","title":"[delayed_gcode]"},{"location":"G-Codes.html#update_delayed_gcode","text":"UPDATE_DELAYED_GCODE [ID=<nome>] [DURATION=<secondi>] : aggiorna la durata del ritardo per il [gcode_ritardato] identificato e avvia il timer per l'esecuzione di gcode. Un valore di 0 annuller\u00e0 l'esecuzione di un gcode ritardato in sospeso.","title":"UPDATE_DELAYED_GCODE"},{"location":"G-Codes.html#delta_calibrate","text":"I seguenti comandi sono disponibili quando la sezione di configurazione delta_calibrate \u00e8 abilitata (consultare anche la guida alla calibrazione delta ).","title":"[delta_calibrate]"},{"location":"G-Codes.html#delta_calibrate_1","text":"DELTA_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>] : questo comando sonder\u00e0 sette punti sul piatto e consiglier\u00e0 posizioni di finecorsa, angoli della torre e raggio aggiornati. Vedere il comando PROBE per i dettagli sui parametri della sonda opzionali. Se viene specificato METHOD=manual, lo strumento di probe manuale \u00e8 attivato - vedere il comando MANUAL_PROBE precedente per i dettagli sui comandi aggiuntivi disponibili mentre questo strumento \u00e8 attivo.","title":"DELTA_CALIBRATE"},{"location":"G-Codes.html#delta_analyze","text":"DELTA_ANALYZE : questo comando viene utilizzato durante la calibrazione avanzata delle stampanti delta. Vedere Delta Calibrate per i dettagli.","title":"DELTA_ANALYZE"},{"location":"G-Codes.html#display","text":"Il comando seguente \u00e8 disponibile quando \u00e8 abilitata una sezione di configurazione display .","title":"[display]"},{"location":"G-Codes.html#set_display_group","text":"SET_DISPLAY_GROUP [DISPLAY=<display>] GROUP=<group> : Imposta il gruppo di visualizzazione attivo di un display LCD. Ci\u00f2 consente di definire pi\u00f9 gruppi di dati di visualizzazione nella configurazione, ad es. [display_data <group> <elementname>] e passare da uno all'altro usando questo comando gcode esteso. Se DISPLAY non \u00e8 specificato, l'impostazione predefinita \u00e8 \"display\" (il display principale).","title":"SET_DISPLAY_GROUP"},{"location":"G-Codes.html#display_status","text":"Il modulo display_status viene caricato automaticamente se una sezione di configurazione display \u00e8 abilitata. Fornisce i seguenti comandi G-Code standard: Messaggio visualizzato: M117 <messaggio> Imposta la percentuale di costruzione: M73 P<percentuale> Viene inoltre fornito il seguente comando G-Code esteso: SET_DISPLAY_TEXT MSG=<messaggio> : esegue l'equivalente di M117, impostando il MSG fornito come messaggio visualizzato. Se MSG viene omesso, il display verr\u00e0 cancellato.","title":"[display_status]"},{"location":"G-Codes.html#dual_carriage","text":"Il comando seguente \u00e8 disponibile quando la sezione di configurazione dual_carriage \u00e8 abilitata.","title":"[dual_carriage]"},{"location":"G-Codes.html#set_dual_carriage","text":"SET_DUAL_CARRIAGE CARRIAGE=[0|1] : Questo comando imposter\u00e0 il carrello attivo. Viene in genere richiamato dai campi activate_gcode e deactivate_gcode in una configurazione a pi\u00f9 estrusori.","title":"SET_DUAL_CARRIAGE"},{"location":"G-Codes.html#endstop_phase","text":"I seguenti comandi sono disponibili quando una sezione di configurazione endstop_phase \u00e8 abilitata (consultare anche la guida alla fase endstop ).","title":"[endstop_phase]"},{"location":"G-Codes.html#endstop_phase_calibrate","text":"ENDSTOP_PHASE_CALIBRATE [STEPPER=<config_name>] : Se non viene fornito alcun parametro STEPPER, questo comando riporter\u00e0 le statistiche sulle fasi stepper dell'arresto durante le precedenti operazioni di homing. Quando viene fornito un parametro STEPPER, fa in modo che l'impostazione della fase di fine corsa fornita sia scritta nel file di configurazione (insieme al comando SAVE_CONFIG).","title":"ENDSTOP_PHASE_CALIBRATE"},{"location":"G-Codes.html#exclude_object","text":"I seguenti comandi sono disponibili quando \u00e8 abilitata una exclude_object config section (consultare anche la exclude object guide ):","title":"[exclude_object]"},{"location":"G-Codes.html#exclude_object_1","text":"EXCLUDE_OBJECT [NAME=object_name] [CURRENT=1] [RESET=1] : Senza parametri, questo restituir\u00e0 un elenco di tutti gli oggetti attualmente esclusi. Quando viene fornito il parametro NAME , l'oggetto denominato verr\u00e0 escluso dalla stampa. Quando viene fornito il parametro CURRENT , l'oggetto corrente verr\u00e0 escluso dalla stampa. Quando viene fornito il parametro RESET l'elenco degli oggetti esclusi verr\u00e0 cancellato. Inoltre l'inclusione di NAME ripristiner\u00e0 solo l'oggetto denominato. Questo pu\u00f2 causare errori di stampa, se i livelli sono gi\u00e0 stati saltati.","title":"EXCLUDE_OBJECT"},{"location":"G-Codes.html#exclude_object_define","text":"EXCLUDE_OBJECT_DEFINE [NAME=object_name [CENTER=X,Y] [POLYGON=[[x,y],...]] [RESET=1] [JSON=1] : fornisce un riepilogo di un oggetto nel file. Senza parametri forniti, questo elencher\u00e0 gli oggetti definiti noti a Klipper. Restituisce un elenco di stringhe, a meno che non venga fornito il parametro JSON , quando restituir\u00e0 i dettagli dell'oggetto in formato json. Quando il parametro NAME \u00e8 incluso, definisce un oggetto da escludere. NAME : questo parametro \u00e8 obbligatorio. \u00c8 l'identificatore utilizzato da altri comandi in questo modulo. CENTER : una coordinata X,Y per l'oggetto. POLYGON : Un array di coordinate X,Y che fornisce un contorno per l'oggetto. Quando viene fornito il parametro RESET , tutti gli oggetti definiti verranno cancellati e il modulo [exclude_object] verr\u00e0 ripristinato.","title":"EXCLUDE_OBJECT_DEFINE"},{"location":"G-Codes.html#exclude_object_start","text":"EXCLUDE_OBJECT_START NAME=object_name : questo comando prende un parametro NAME e marca l'inizio del gcode per un oggetto sul livello corrente.","title":"EXCLUDE_OBJECT_START"},{"location":"G-Codes.html#exclude_object_end","text":"EXCLUDE_OBJECT_END [NAME=object_name] : Denota la fine del gcode dell'oggetto per il livello. \u00c8 accoppiato con EXCLUDE_OBJECT_START . Un parametro NAME \u00e8 facoltativo e avviser\u00e0 solo quando il nome fornito non corrisponde all'oggetto corrente.","title":"EXCLUDE_OBJECT_END"},{"location":"G-Codes.html#extruder","text":"I seguenti comandi sono disponibili se una sezione di configurazione dell'estrusore \u00e8 abilitata:","title":"[extruder]"},{"location":"G-Codes.html#activate_extruder","text":"ACTIVATE_EXTRUDER EXTRUDER=<config_name> : in una stampante con pi\u00f9 sezioni di configurazione extruder , questo comando cambia l'hotend attivo.","title":"ACTIVATE_EXTRUDER"},{"location":"G-Codes.html#set_pressure_advance","text":"SET_PRESSURE_ADVANCE [EXTRUDER=<config_name>] [ADVANCE=<pressure_advance>] [SMOOTH_TIME=<pressure_advance_smooth_time>] : Imposta i parametri di pressure advance delleo stepper di un estrusore (come definito in un estrusore o [ extruder_stepper] (sezione di configurazione Config_Reference.md#extruder_stepper). Se EXTRUDER non \u00e8 specificato, per impostazione predefinita viene utilizzato lo stepper definito nell'hotend attivo.","title":"SET_PRESSURE_ADVANCE"},{"location":"G-Codes.html#set_extruder_rotation_distance","text":"SET_EXTRUDER_ROTATION_DISTANCE EXTRUDER=<config_name> [DISTANCE=<distance>] : Imposta un nuovo valore per la \"distanza di rotazione\" dello stepper dell'estrusore fornito (come definito in un extruder o extruder_stepper sezione di configurazione). Se la distanza di rotazione \u00e8 un numero negativo, il movimento passo-passo verr\u00e0 invertito (rispetto alla direzione passo-passo specificata nel file di configurazione). Le impostazioni modificate non vengono mantenute al ripristino di Klipper. Usare con cautela poich\u00e9 piccole modifiche possono causare una pressione eccessiva tra l'estrusore e l'hotend. Eseguire una corretta calibrazione con il filamento prima dell'uso. Se il valore 'DISTANZA' non viene fornito, questo comando restituir\u00e0 la distanza di rotazione corrente.","title":"SET_EXTRUDER_ROTATION_DISTANCE"},{"location":"G-Codes.html#sync_extruder_motion","text":"SYNC_EXTRUDER_MOTION EXTRUDER=<nome> MOTION_QUEUE=<nome> : questo comando attiver\u00e0 lo stepper specificato da EXTRUDER (come definito in un extruder o extruder_stepper config sezione) per sincronizzarsi con il movimento di un estrusore specificato da MOTION_QUEUE (come definito in una sezione di configurazione estrusore ). Se MOTION_QUEUE \u00e8 una stringa vuota, lo stepper verr\u00e0 desincronizzato da tutti i movimenti dell'estrusore.","title":"SYNC_EXTRUDER_MOTION"},{"location":"G-Codes.html#set_extruder_step_distance","text":"Questo comando \u00e8 deprecato e verr\u00e0 rimosso nel prossimo futuro.","title":"SET_EXTRUDER_STEP_DISTANCE"},{"location":"G-Codes.html#sync_stepper_to_extruder","text":"Questo comando \u00e8 deprecato e verr\u00e0 rimosso nel prossimo futuro.","title":"SYNC_STEPPER_TO_EXTRUDER"},{"location":"G-Codes.html#fan_generic","text":"Il comando seguente \u00e8 disponibile quando una sezione di configurazione fan_generic \u00e8 abilitata.","title":"[fan_generic]"},{"location":"G-Codes.html#set_fan_speed","text":"SET_FAN_SPEED FAN=config_name SPEED=<velocit\u00e0> Questo comando imposta la velocit\u00e0 di una ventola. \"velocit\u00e0\" deve essere compresa tra 0.0 e 1.0.","title":"SET_FAN_SPEED"},{"location":"G-Codes.html#filament_switch_sensor","text":"Il comando seguente \u00e8 disponibile quando \u00e8 abilitata una sezione di configurazione filament_switch_sensor o filament_motion_sensor .","title":"[filament_switch_sensor]"},{"location":"G-Codes.html#query_filament_sensor","text":"QUERY_FILAMENT_SENSOR SENSOR=<sensor_name> : Interroga lo stato del sensore di filamento. I dati visualizzati sul terminale dipenderanno dal tipo di sensore definito nella configurazione.","title":"QUERY_FILAMENT_SENSOR"},{"location":"G-Codes.html#set_filament_sensor","text":"SET_FILAMENT_SENSOR SENSOR=<nome_sensore> ENABLE=[0|1] : Attiva/disattiva il sensore di filamento. Se ENABLE \u00e8 impostato su 0, il sensore di filamento sar\u00e0 disabilitato, se impostato su 1 sar\u00e0 abilitato.","title":"SET_FILAMENT_SENSOR"},{"location":"G-Codes.html#firmware_retraction","text":"I seguenti comandi G-Code standard sono disponibili quando la sezione di configurazione firmware_retraction \u00e8 abilitata. Questi comandi consentono di utilizzare la funzione di retraction del firmware disponibile in molti slicer, per ridurre lo stringing durante gli spostamenti di non estrusione da una parte all'altra della stampa. Configurando opportunamente la pressure advance si riduce la lunghezza della retrazione richiesta. G10 : Ritrae l'estrusore utilizzando i parametri attualmente configurati. G11 : Ritira l'estrusore utilizzando i parametri attualmente configurati. Sono inoltre disponibili i seguenti comandi aggiuntivi.","title":"[firmware_retraction]"},{"location":"G-Codes.html#set_retraction","text":"SET_RETRACTION [RETRACT_LENGTH=<mm>] [RETRACT_SPEED=<mm/s>] [UNRETRACT_EXTRA_LENGTH=<mm>] [UNRETRACT_SPEED=<mm/s>] : regola i parametri utilizzati dalla retrazione. RETRACT_LENGTH determina la lunghezza del filamento da ritrarre e estrudere. La velocit\u00e0 di retrazione viene regolata tramite RETRACT_SPEED, ed \u00e8 generalmente impostata su un valore relativamente alto. La velocit\u00e0 di annullamento viene regolata tramite UNRETRACT_SPEED e non \u00e8 particolarmente critica, sebbene spesso inferiore a RETRACT_SPEED. In alcuni casi \u00e8 utile aggiungere una piccola quantit\u00e0 di lunghezza aggiuntiva all'annullamento della retrazione, e questa viene impostata tramite UNRETRACT_EXTRA_LENGTH. SET_RETRACTION \u00e8 comunemente impostato come parte della configurazione dello slicer per filamento, poich\u00e9 filamenti diversi richiedono impostazioni dei parametri diverse.","title":"SET_RETRACTION"},{"location":"G-Codes.html#get_retraction","text":"GET_RETRACTION : interroga i parametri correnti utilizzati dal firmware per retrazione e li visualizza sul terminale.","title":"GET_RETRACTION"},{"location":"G-Codes.html#force_move","text":"Il modulo force_move viene caricato automaticamente, tuttavia alcuni comandi richiedono l'impostazione di enable_force_move in printer config .","title":"[force_move]"},{"location":"G-Codes.html#stepper_buzz","text":"STEPPER_BUZZ STEPPER=<nome_config> : sposta lo stepper dato in avanti di 1 mm e poi indietro di 1 mm, ripetuto 10 volte. Questo \u00e8 uno strumento diagnostico per aiutare a verificare la connettivit\u00e0 stepper.","title":"STEPPER_BUZZ"},{"location":"G-Codes.html#force_move_1","text":"FORCE_MOVE STEPPER=<nome_config> DISTANCE=<value> VELOCITY=<value> [ACCEL=<value>] : Questo comando sposter\u00e0 forzatamente lo stepper dato della distanza data (in mm) alla velocit\u00e0 costante data (in mm/ S). Se viene specificato ACCEL ed \u00e8 maggiore di zero, verr\u00e0 utilizzata l'accelerazione data (in mm/s^2); altrimenti non viene eseguita alcuna accelerazione. Non vengono effettuati controlli sui limiti; non vengono effettuati aggiornamenti cinematici; altri stepper paralleli su un asse non verranno spostati. Prestare attenzione poich\u00e9 un comando errato potrebbe causare danni! L'uso di questo comando metter\u00e0 quasi sicuramente la cinematica di basso livello in uno stato errato; emettere un G28 in seguito per ripristinare la cinematica. Questo comando \u00e8 destinato alla diagnostica e al debug di basso livello.","title":"FORCE_MOVE"},{"location":"G-Codes.html#set_kinematic_position","text":"SET_KINEMATIC_POSITION [X=<valore>] [Y=<valore>] [Z=<valore>] : forza il codice cinematico di basso livello a credere che la testa di stampa si trovi nella posizione cartesiana data. Questo \u00e8 un comando diagnostico e di debug; utilizzare SET_GCODE_OFFSET e/o G92 per le normali trasformazioni degli assi. Se un asse non \u00e8 specificato, verr\u00e0 impostato automaticamente sulla posizione in cui la testa \u00e8 stata comandata l'ultima volta. L'impostazione di una posizione errata o non valida pu\u00f2 causare errori software interni. Questo comando potrebbe invalidare futuri controlli sui confini; emettere un G28 in seguito per ripristinare la cinematica.","title":"SET_KINEMATIC_POSITION"},{"location":"G-Codes.html#gcode","text":"Il modulo gcode viene caricato automaticamente.","title":"[gcode]"},{"location":"G-Codes.html#restart","text":"RESTART : Ci\u00f2 far\u00e0 s\u00ec che il software host ricarichi la sua configurazione ed esegua un ripristino interno. Questo comando non canceller\u00e0 lo stato di errore dal microcontrollore (vedi FIRMWARE_RESTART) n\u00e9 caricher\u00e0 nuovo software (vedi FAQ ) .","title":"RESTART"},{"location":"G-Codes.html#firmware_restart","text":"FIRMWARE_RESTART : Questo \u00e8 simile a un comando RESTART, ma cancella anche qualsiasi stato di errore dal microcontrollore.","title":"FIRMWARE_RESTART"},{"location":"G-Codes.html#status","text":"STATUS : segnala lo stato del software host di Klipper.","title":"STATUS"},{"location":"G-Codes.html#help","text":"HELP : riporta l'elenco dei comandi G-Code estesi disponibili.","title":"HELP"},{"location":"G-Codes.html#gcode_arcs","text":"I seguenti comandi G-Code standard sono disponibili se una sezione di configurazione gcode_arcs \u00e8 abilitata: Movimento controllato dell'arco (G2 o G3): G2 [X<pos>] [Y<pos>] [Z<pos>] [E<pos>] [F<velocit\u00e0>] I<valore> J<valore>","title":"[gcode_arcs]"},{"location":"G-Codes.html#gcode_macro","text":"Il comando seguente \u00e8 disponibile quando \u00e8 abilitata una sezione di configurazione gcode_macro (consultare anche la guida ai modelli di comando ).","title":"[gcode_macro]"},{"location":"G-Codes.html#set_gcode_variable","text":"SET_GCODE_VARIABLE MACRO=<nome_macro> VARIABLE=<nome> VALUE=<valore> : questo comando consente di modificare il valore di una variabile gcode_macro in fase di esecuzione. Il VALUE fornito viene analizzato come un valore literal in Python.","title":"SET_GCODE_VARIABLE"},{"location":"G-Codes.html#gcode_move","text":"Il modulo gcode_move viene caricato automaticamente.","title":"[gcode_move]"},{"location":"G-Codes.html#get_position","text":"GET_POSITION`: Restituisce informazioni sulla posizione corrente della testa di stampa. Per ulteriori informazioni, vedere la documentazione per gli sviluppatori di GET_POSITION output .","title":"GET_POSITION"},{"location":"G-Codes.html#set_gcode_offset","text":"SET_GCODE_OFFSET [X=<pos>|X_ADJUST=<regola>] [Y=<pos>|Y_ADJUST=<regola>] [Z=<pos>|Z_ADJUST=<regola>] [MOVE=1 [MOVE_SPEED=<velocit\u00e0 >]] : imposta un offset di posizione da applicare ai futuri comandi G-Code. Questo \u00e8 comunemente usato per cambiare virtualmente l'offset del letto Z o per impostare gli offset XY degli ugelli quando si cambia estrusore. Ad esempio, se viene inviato \"SET_GCODE_OFFSET Z=0.2\", i futuri movimenti G-Code avranno 0.2 mm aggiunti alla loro altezza Z. Se vengono utilizzati i parametri di stile X_ADJUST, la regolazione verr\u00e0 aggiunta a qualsiasi offset esistente (ad esempio, \"SET_GCODE_OFFSET Z=-0.2\" seguito da \"SET_GCODE_OFFSET Z_ADJUST=0.3\" risulter\u00e0 in un offset Z totale di 0.1). Se viene specificato \"MOVE=1\", verr\u00e0 emesso un movimento della testa di stampa per applicare l'offset specificato (altrimenti l'offset avr\u00e0 effetto sul successivo movimento assoluto del codice G che specifica l'asse dato). Se viene specificato \"MOVE_SPEED\", lo spostamento della testa utensile verr\u00e0 eseguito con la velocit\u00e0 data (in mm/s); in caso contrario, il movimento della testa utensile utilizzer\u00e0 l'ultima velocit\u00e0 del G-code specificata.","title":"SET_GCODE_OFFSET"},{"location":"G-Codes.html#save_gcode_state","text":"SAVE_GCODE_STATE [NAME=<nome_stato>] : salva lo stato di analisi delle coordinate del G-code corrente. Il salvataggio e il ripristino dello stato del G-code \u00e8 utile negli script e nelle macro. Questo comando salva la modalit\u00e0 di coordinate assolute del G-code corrente (G90/G91), la modalit\u00e0 di estrusione assoluta (M82/M83), l'origine (G92), l'offset (SET_GCODE_OFFSET), l'override della velocit\u00e0 (M220), l'override dell'estrusore (M221), la velocit\u00e0 di spostamento , la posizione XYZ corrente e la posizione relativa dell'estrusore \"E\". Se viene fornito NAME, consente di assegnare un nome allo stato salvato alla stringa data. Se NAME non viene fornito, il valore predefinito \u00e8 \"predefinito\".","title":"SAVE_GCODE_STATE"},{"location":"G-Codes.html#restore_gcode_state","text":"RESTORE_GCODE_STATE [NAME=<nome_stato>] [MOVE=1 [MOVE_SPEED=<velocit\u00e0>]] : ripristina uno stato precedentemente salvato tramite SAVE_GCODE_STATE. Se viene specificato \"MOVE=1\", verr\u00e0 emesso un movimento della testa utensile per tornare alla posizione XYZ precedente. Se viene specificato \"MOVE_SPEED\", lo spostamento della testa utensile verr\u00e0 eseguito con la velocit\u00e0 data (in mm/s); in caso contrario, lo spostamento della testa utensile utilizzer\u00e0 la velocit\u00e0 del codice g ripristinata.","title":"RESTORE_GCODE_STATE"},{"location":"G-Codes.html#hall_filament_width_sensor","text":"I seguenti comandi sono disponibili quando la sezione di configurazione del sensore di larghezza del filamento tsl1401cl o sezione di configurazione del sensore di larghezza del filamento hall \u00e8 abilitata (consultare anche Sensore di larghezza del filamento TSLl401CL e Hall Filament Width Sensor ):","title":"[hall_filament_width_sensor]"},{"location":"G-Codes.html#query_filament_width","text":"QUERY_FILAMENT_WIDTH : Restituisce lo spessore del filamento misurato.","title":"QUERY_FILAMENT_WIDTH"},{"location":"G-Codes.html#reset_filament_width_sensor","text":"RESET_FILAMENT_WIDTH_SENSOR : Cancella tutte le letture del sensore. Utile dopo il cambio del filamento.","title":"RESET_FILAMENT_WIDTH_SENSOR"},{"location":"G-Codes.html#disable_filament_width_sensor","text":"DISABLE_FILAMENT_WIDTH_SENSOR : Spegnere il sensore di larghezza del filamento e smettere di usarlo per il controllo del flusso.","title":"DISABLE_FILAMENT_WIDTH_SENSOR"},{"location":"G-Codes.html#enable_filament_width_sensor","text":"ENABLE_FILAMENT_WIDTH_SENSOR : attiva il sensore di larghezza del filamento e inizia a usarlo per il controllo del flusso.","title":"ENABLE_FILAMENT_WIDTH_SENSOR"},{"location":"G-Codes.html#query_raw_filament_width","text":"QUERY_RAW_FILAMENT_WIDTH : Restituisce le letture del canale ADC corrente e il valore grezzo (raw) del sensore per i punti di calibrazione.","title":"QUERY_RAW_FILAMENT_WIDTH"},{"location":"G-Codes.html#enable_filament_width_log","text":"ENABLE_FILAMENT_WIDTH_LOG : attiva la registrazione del diametro del filamento.","title":"ENABLE_FILAMENT_WIDTH_LOG"},{"location":"G-Codes.html#disable_filament_width_log","text":"DISABLE_FILAMENT_WIDTH_LOG : Disattiva la registrazione del diametro del filamento.","title":"DISABLE_FILAMENT_WIDTH_LOG"},{"location":"G-Codes.html#heaters","text":"Il modulo heaters viene caricato automaticamente se un riscaldatore \u00e8 definito nel file di configurazione.","title":"[heaters]"},{"location":"G-Codes.html#turn_off_heaters","text":"TURN_OFF_HEATERS : Spegni tutti i riscaldatori.","title":"TURN_OFF_HEATERS"},{"location":"G-Codes.html#temperature_wait","text":"TEMPERATURE_WAIT SENSOR=<config_name> [MINIMUM=<target>] [MAXIMUM=<target>] : Attendere fino a quando il sensore di temperatura specificato \u00e8 pari o superiore al MINIMO fornito e/o pari o inferiore al MASSIMO fornito.","title":"TEMPERATURE_WAIT"},{"location":"G-Codes.html#set_heater_temperature","text":"SET_HEATER_TEMPERATURE HEATER=<nome_riscaldatore> [TARGET=<temperatura_destinata>] : Imposta la temperatura target per un riscaldatore. Se non viene fornita una temperatura target, il target \u00e8 0.","title":"SET_HEATER_TEMPERATURE"},{"location":"G-Codes.html#idle_timeout","text":"Il modulo idle_timeout viene caricato automaticamente.","title":"[idle_timeout]"},{"location":"G-Codes.html#set_idle_timeout","text":"SET_IDLE_TIMEOUT [TIMEOUT=<timeout>] : consente all'utente di impostare il timeout di inattivit\u00e0 (in secondi).","title":"SET_IDLE_TIMEOUT"},{"location":"G-Codes.html#input_shaper","text":"Il comando seguente \u00e8 abilitato se \u00e8 stata abilitata una sezione di configurazione di input_shaper (consultare anche la guida alla compensazione della risonanza ).","title":"[input_shaper]"},{"location":"G-Codes.html#set_input_shaper","text":"SET_INPUT_SHAPER [SHAPER_FREQ_X=<shaper_freq_x>] [SHAPER_FREQ_Y=<shaper_freq_y>] [DAMPING_RATIO_X=<damping_ratio_x>] [DAMPING_RATIO_Y=<damping_ratio_y>] [SHAPER_TYPE=<shaper>] [SHAPER_TYPE_X=<shaper_type_x>] [SHAPER_TYPE=<shaper_TYPE_X=<shaper_type_x>] [SHAPER_TYPE=<shaper_type_y=<shaper_type_x> ] : Modifica i parametri dell'input shaper. Si noti che il parametro SHAPER_TYPE reimposta l'input shaper per entrambi gli assi X e Y anche se sono stati configurati tipi di shaper diversi nella sezione [input_shaper]. SHAPER_TYPE non pu\u00f2 essere utilizzato insieme a uno dei parametri SHAPER_TYPE_X e SHAPER_TYPE_Y. Vedere config reference per maggiori dettagli su ciascuno di questi parametri.","title":"SET_INPUT_SHAPER"},{"location":"G-Codes.html#manual_probe","text":"Il modulo manual_probe viene caricato automaticamente.","title":"[manual_probe]"},{"location":"G-Codes.html#manual_probe_1","text":"MANUAL_PROBE [SPEED=<speed>] : esegue uno script di supporto utile per misurare l'altezza dell'ugello in una determinata posizione. Se viene specificato SPEED, imposta la velocit\u00e0 dei comandi TESTZ (il valore predefinito \u00e8 5mm/s). Durante una sonda manuale, sono disponibili i seguenti comandi aggiuntivi: ACCEPT : questo comando accetta la posizione Z corrente e conclude il probing manuale. ABORT : questo comando termina lo strumento di probing manuale. TESTZ Z=<valore> : questo comando sposta l'ugello verso l'alto o verso il basso della quantit\u00e0 specificata in \"valore\". Ad esempio, TESTZ Z=-.1 sposterebbe l'ugello verso il basso di .1 mm mentre TESTZ Z=.1 sposterebbe l'ugello verso l'alto di .1 mm. Il valore pu\u00f2 anche essere + , - , ++ o -- per spostare l'ugello verso l'alto o verso il basso di un importo rispetto ai tentativi precedenti.","title":"MANUAL_PROBE"},{"location":"G-Codes.html#z_endstop_calibrate","text":"Z_ENDSTOP_CALIBRATE [SPEED=<speed>] : esegue uno script di supporto utile per calibrare un'impostazione di configurazione Z position_endstop. Vedere il comando MANUAL_PROBE per i dettagli sui parametri e sui comandi aggiuntivi disponibili mentre lo strumento \u00e8 attivo.","title":"Z_ENDSTOP_CALIBRATE"},{"location":"G-Codes.html#z_offset_apply_endstop","text":"Z_OFFSET_APPLY_ENDSTOP : prende l'offset Z Gcode corrente (noto anche come babystepping) e lo sottrae da stepper_z endstop_position. Questa azione per prendere un valore di babystep utilizzato di frequente e \"renderlo permanente\". Richiede un SAVE_CONFIG per avere effetto.","title":"Z_OFFSET_APPLY_ENDSTOP"},{"location":"G-Codes.html#stepper-manuali","text":"Il comando seguente \u00e8 disponibile quando una sezione di configurazione stepper_manuale \u00e8 abilitata.","title":"[Stepper manuali]"},{"location":"G-Codes.html#manual_stepper","text":"MANUAL_STEPPER STEPPER=nome_config [ENABLE=[0|1]] [SET_POSITION=<pos>] [SPEED=<velocit\u00e0>] [ACCEL=<accelerazione>] [MOVE=<pos> [STOP_ON_ENDSTOP=[1|2|- 1|-2]] [SYNC=0]] : Questo comando alterer\u00e0 lo stato dello stepper. Utilizzare il parametro ENABLE per abilitare/disabilitare lo stepper. Utilizzare il parametro SET_POSITION per forzare lo stepper a pensare di trovarsi nella posizione data. Utilizzare il parametro MOVE per richiedere un movimento alla posizione data. Se viene specificato SPEED e/o ACCEL, verranno utilizzati i valori forniti al posto dei valori predefiniti specificati nel file di configurazione. Se viene specificato un ACCEL pari a zero, non verr\u00e0 eseguita alcuna accelerazione. Se viene specificato STOP_ON_ENDSTOP=1, lo spostamento terminer\u00e0 in anticipo se l'endstop segnala come attivato (usa STOP_ON_ENDSTOP=2 per completare lo spostamento senza errori anche se l'endstop non si attiva, usa -1 o -2 per interrompere quando l'endstop segnala non innescato). Normalmente i futuri comandi G-Code verranno programmati per essere eseguiti dopo il completamento del movimento passo-passo, tuttavia se un movimento passo-passo manuale utilizza SYNC=0, i futuri comandi di movimento G-Code potrebbero essere eseguiti in parallelo con il movimento passo-passo.","title":"MANUAL_STEPPER"},{"location":"G-Codes.html#mcp4018","text":"Il comando seguente \u00e8 disponibile quando una sezione di configurazione mcp4018 \u00e8 abilitata.","title":"[mcp4018]"},{"location":"G-Codes.html#set_digipot","text":"SET_DIGIPOT DIGIPOT=config_name WIPER=<value> : Questo comando cambier\u00e0 il valore corrente del digipot. Questo valore dovrebbe essere in genere compreso tra 0.0 e 1.0, a meno che non sia definita una 'scale' nella configurazione. Quando viene definita 'scale', questo valore dovrebbe essere compreso tra 0,0 e 'scale'.","title":"SET_DIGIPOT"},{"location":"G-Codes.html#led","text":"Il comando seguente \u00e8 disponibile quando una qualsiasi delle sezioni di configurazione led \u00e8 abilitata.","title":"[led]"},{"location":"G-Codes.html#set_led","text":"SET_LED LED=<nome_config> ROSSO=<valore> VERDE=<valore> BLU=<valore> BIANCO=<valore> [INDEX=<indice>] [TRANSMIT=0] [SYNC=1] : Imposta il LED in output. Ogni colore <valore> deve essere compreso tra 0,0 e 1,0. L'opzione BIANCO \u00e8 valida solo su LED RGBW. Se il LED supporta pi\u00f9 chip in una catena daisy-chain, \u00e8 possibile specificare INDEX per modificare il colore del solo chip specificato (1 per il primo chip, 2 per il secondo, ecc.). Se INDEX non viene fornito, tutti i LED nella catena verranno impostati sul colore fornito. Se viene specificato TRANSMIT=0, il cambio colore verr\u00e0 effettuato solo sul successivo comando SET_LED che non specifica TRANSMIT=0; questo pu\u00f2 essere utile in combinazione con il parametro INDEX per raggruppare pi\u00f9 aggiornamenti in una catena. Per impostazione predefinita, il comando SET_LED sincronizzer\u00e0 le modifiche con altri comandi gcode in corso. Ci\u00f2 pu\u00f2 comportare un comportamento indesiderato se i LED vengono impostati mentre la stampante non sta stampando in quanto reimposta il timeout di inattivit\u00e0. Se non \u00e8 necessaria una tempistica attenta, \u00e8 possibile specificare il parametro SYNC=0 opzionale per applicare le modifiche senza ripristinare il timeout di inattivit\u00e0.","title":"SET_LED"},{"location":"G-Codes.html#set_led_template","text":"SET_LED_TEMPLATE LED=<nome_led> TEMPLATE=<nome_modello> [<param_x>=<letterale>] [INDEX=<indice>] : Assegna un modello_visualizzazione a un dato LED . Ad esempio, se si definisce una sezione di configurazione [display_template my_led_template] allora si potrebbe assegnare TEMPLATE=my_led_template qui. Il display_template dovrebbe produrre una stringa separata da virgole contenente quattro numeri in virgola mobile corrispondenti alle impostazioni dei colori rosso, verde, blu e bianco. Il modello verr\u00e0 continuamente valutato e il LED verr\u00e0 impostato automaticamente sui colori risultanti. \u00c8 possibile impostare i parametri display_template da utilizzare durante la valutazione del modello (i parametri verranno analizzati come valori letterali Python). Se INDEX non \u00e8 specificato, tutti i chip nella catena dei LED verranno impostati sul modello, altrimenti verr\u00e0 aggiornato solo il chip con l'indice specificato. Se TEMPLATE \u00e8 una stringa vuota, questo comando canceller\u00e0 qualsiasi modello precedente assegnato al LED (\u00e8 quindi possibile utilizzare i comandi SET_LED per gestire le impostazioni del colore del LED).","title":"SET_LED_TEMPLATE"},{"location":"G-Codes.html#output_pin","text":"Il comando seguente \u00e8 disponibile quando una sezione di configurazione pin_output \u00e8 abilitata.","title":"[output_pin]"},{"location":"G-Codes.html#set_pin","text":"SET_PIN PIN=nome_config VALUE=<valore> CYCLE_TIME=<tempo_ciclo> : Nota - PWM hardware attualmente non supporta il parametro CYCLE_TIME e utilizzer\u00e0 il tempo di ciclo definito nella configurazione.","title":"SET_PIN"},{"location":"G-Codes.html#palette2","text":"I seguenti comandi sono disponibili quando la sezione di configurazione della palette2 \u00e8 abilitata. Le stampe di Palette funzionano incorporando speciali OCodes (Codici Omega) nel file GCode: O1 ... O32 : Questi codici vengono letti dal flusso GCode ed elaborati da questo modulo e passati al dispositivo Palette 2. Sono inoltre disponibili i seguenti comandi aggiuntivi.","title":"[palette2]"},{"location":"G-Codes.html#palette_connect","text":"PALETTE_CONNECT : questo comando inizializza la connessione con la Palette 2.","title":"PALETTE_CONNECT"},{"location":"G-Codes.html#palette_disconnect","text":"PALETTE_DISCONNECT : questo comando si disconnette dalla Palette 2.","title":"PALETTE_DISCONNECT"},{"location":"G-Codes.html#palette_clear","text":"PALETTE_CLEAR : questo comando indica alla Palette 2 di cancellare tutti i percorsi di input e output del filamento.","title":"PALETTE_CLEAR"},{"location":"G-Codes.html#palette_cut","text":"PALETTE_CUT : Questo comando indica alla Palette 2 di tagliare il filamento attualmente caricato nello splice core.","title":"PALETTE_CUT"},{"location":"G-Codes.html#palette_smart_load","text":"PALETTE_SMART_LOAD : Questo comando avvia la sequenza di caricamento intelligente sulla Palette 2. Il filamento viene caricato automaticamente estrudendolo alla distanza calibrata sul dispositivo per la stampante e istruisce la Palette 2 una volta completato il caricamento. Questo comando equivale a premere Smart Load direttamente sullo schermo della Palette 2 dopo che il caricamento del filamento \u00e8 stato completato.","title":"PALETTE_SMART_LOAD"},{"location":"G-Codes.html#pid_calibrate","text":"Il modulo pid_calibrate viene caricato automaticamente se nel file di configurazione \u00e8 definito un riscaldatore.","title":"[pid_calibrate]"},{"location":"G-Codes.html#pid_calibrate_1","text":"PID_CALIBRATE HEATER=<nome_config> TARGET=<temperatura> [WRITE_FILE=1] : esegue un test di calibrazione PID. Il riscaldatore specificato verr\u00e0 abilitato fino al raggiungimento della temperatura target specificata, quindi il riscaldatore verr\u00e0 spento e acceso per diversi cicli. Se il parametro WRITE_FILE \u00e8 abilitato, verr\u00e0 creato il file /tmp/heattest.txt con un log di tutti i campioni di temperatura prelevati durante il test.","title":"PID_CALIBRATE"},{"location":"G-Codes.html#pause_resume","text":"I seguenti comandi sono disponibili quando la pause_resume config section \u00e8 abilitata:","title":"[pause_resume]"},{"location":"G-Codes.html#pause","text":"PAUSE : mette in pausa la stampa corrente. La posizione attuale viene acquisita per la ripresa al ripristino.","title":"PAUSE"},{"location":"G-Codes.html#resume","text":"RESUME [VELOCITY=<value>] : riprende la stampa da una pausa, ripristinando prima la posizione precedentemente acquisita. Il parametro VELOCITY determina la velocit\u00e0 alla quale l'utensile deve tornare alla posizione originale acquisita.","title":"RESUME"},{"location":"G-Codes.html#clear_pause","text":"CLEAR_PAUSE : cancella lo stato di pausa corrente senza riprendere la stampa. Questo \u00e8 utile se si decide di annullare una stampa dopo un PAUSE. Si consiglia di aggiungerlo al gcode iniziale per assicurarsi che lo stato in pausa sia aggiornato per ogni stampa.","title":"CLEAR_PAUSE"},{"location":"G-Codes.html#cancel_print","text":"CANCEL_PRINT : Annulla la stampa corrente.","title":"CANCEL_PRINT"},{"location":"G-Codes.html#print_stats","text":"The print_stats module is automatically loaded.","title":"[print_stats]"},{"location":"G-Codes.html#set_print_stats_info","text":"SET_PRINT_STATS_INFO [TOTAL_LAYER=<total_layer_count>] [CURRENT_LAYER= <current_layer>] : Pass slicer info like layer act and total to Klipper. Add SET_PRINT_STATS_INFO [TOTAL_LAYER=<total_layer_count>] to your slicer start gcode section and SET_PRINT_STATS_INFO [CURRENT_LAYER= <current_layer>] at the layer change gcode section to pass layer information from your slicer to Klipper.","title":"SET_PRINT_STATS_INFO"},{"location":"G-Codes.html#probe","text":"I seguenti comandi sono disponibili quando \u00e8 abilitata una sezione di configurazione della sonda o una sezione di configurazione di bltouch (consultare anche la guida alla calibrazione della sonda ).","title":"[probe]"},{"location":"G-Codes.html#sonda","text":"PROBE [PROBE_SPEED=<mm/s>] [LIFT_SPEED=<mm/s>] [SAMPLES=<count>] [SAMPLE_RETRACT_DIST=<mm>] [SAMPLES_TOLERANCE=<mm>] [SAMPLES_TOLERANCE_RETRIES=<count>] [SAMPLES_RESULT=median|average] : Sposta il nozzle verso il basso finch\u00e9 la sonda non scatta. Se viene fornito uno qualsiasi dei parametri opzionali, sovrascrive l'impostazione equivalente nella sezione probe config section .","title":"sonda"},{"location":"G-Codes.html#query_probe","text":"QUERY_PROBE : Riporta lo stato corrente della sonda (\"triggered\" o \"open\").","title":"QUERY_PROBE"},{"location":"G-Codes.html#probe_accuracy","text":"PROBE_ACCURACY [PROBE_SPEED=<mm/s>] [SAMPLES=<count>] [SAMPLE_RETRACT_DIST=<mm>] : Calcola la deviazione massima, minima, media, mediana e standard di pi\u00f9 campionamentidella sonda. Per impostazione predefinita, vengono presi 10 CAMPIONI. In caso contrario, i parametri opzionali sono impostati per default sulla loro impostazione equivalente nella sezione di configurazione della sonda.","title":"PROBE_ACCURACY"},{"location":"G-Codes.html#probe_calibrate","text":"PROBE_CALIBRATE [SPEED=<speed>] [<probe_parameter>=<value>] : Eseguire uno script di aiuto utile per calibrare l'offset z della sonda. Vedere il comando PROBE per i dettagli sui parametri opzionali della sonda. Vedere il comando MANUAL_PROBE per i dettagli del parametro SPEED e sui comandi aggiuntivi disponibili mentre lo strumento \u00e8 attivo. Nota che il comando PROBE_CALIBRATE utilizza la variabile di velocit\u00e0 per spostarsi in direzione XY e Z.","title":"PROBE_CALIBRATE"},{"location":"G-Codes.html#z_offset_apply_probe","text":"Z_OFFSET_APPLY_PROBE : prende l'offset Z Gcode corrente (aka, babystepping) e lo sottrae dallo z_offset della sonda. Questo per prendere un valore di babystep utilizzato di frequente e \"renderlo permanente\". Richiede un SAVE_CONFIG per avere effetto.","title":"Z_OFFSET_APPLY_PROBE"},{"location":"G-Codes.html#query_adc","text":"Il modulo query_adc viene caricato automaticamente.","title":"[query_adc]"},{"location":"G-Codes.html#query_adc_1","text":"QUERY_ADC [NAME=<config_name>] [PULLUP=<value>] : Riporta l'ultimo valore analogico ricevuto per un pin analogico configurato. Se NAME non viene fornito, viene riportato l'elenco dei nomi dei convertitori adc disponibili. Se viene fornito PULLUP (come valore in Ohm), viene riportato il valore analogico grezzo insieme alla resistenza equivalente dato quel pullup specificato.","title":"QUERY_ADC"},{"location":"G-Codes.html#query_endstops","text":"Il modulo query_endstops viene caricato automaticamente. I seguenti comandi G-Code standard sono attualmente disponibili, ma non \u00e8 consigliabile utilizzarli: Ottieni lo stato del finecorsa: M119 (usa invece QUERY_ENDSTOPS.)","title":"[query_endstops]"},{"location":"G-Codes.html#query_endstops_1","text":"QUERY_ENDSTOPS : Rilevare i finecorsa degli assi e segnala se sono \"attivate\" o in uno stato \"aperto\". Questo comando viene in genere utilizzato per verificare che un finecorsa funzioni correttamente.","title":"QUERY_ENDSTOPS"},{"location":"G-Codes.html#resonance_tester","text":"I seguenti comandi sono disponibili quando una sezione di configurazione di tester_risonanza \u00e8 abilitata (consultare anche la guida alle risonanze di misurazione ).","title":"[resonance_tester]"},{"location":"G-Codes.html#measure_axes_noise","text":"MEASURE_AXES_NOISE : misura ed riporta il rumore per tutti gli assi di tutti i chip dell'accelerometro abilitati.","title":"MEASURE_AXES_NOISE"},{"location":"G-Codes.html#test_resonances","text":"TEST_RESONANCES AXIS=<asse> OUTPUT=<risonanze,dati_grezzi> [NAME=<nome>] [FREQ_START=<freq_min>] [FREQ_END=<freq_max>] [HZ_PER_SEC=<hz_per_sec>] [CHIPS=<adxl345_chip_name>] [ POINT=x,y,z] [INPUT_SHAPING=[<0:1>]] : esegue il test di risonanza in tutti i punti sonda configurati per l'\"asse\" richiesto e misura l'accelerazione utilizzando i chip dell'accelerometro configurati per il rispettivo asse. \"asse\" pu\u00f2 essere X o Y, oppure specificare una direzione arbitraria come AXIS=dx,dy , dove dx e dy sono numeri in virgola mobile che definiscono un vettore di direzione (es. AXIS=X , AXIS=Y , o AXIS=1,-1 per definire una direzione diagonale). Nota che AXIS=dx,dy e AXIS=-dx,-dy sono equivalenti. adxl345_chip_name pu\u00f2 essere uno o pi\u00f9 chip adxl345 configurati, delimitati da virgole, ad esempio CHIPS=\"adxl345, adxl345 rpi\" . Nota che adxl345 pu\u00f2 essere omesso dai chip adxl345 denominati. Se POINT \u00e8 specificato, sovrascriver\u00e0 i punti configurati in [resonance_tester] . Se INPUT_SHAPING=0 o non impostato (predefinito), disabilita l'input shaping per il test di risonanza, perch\u00e9 non \u00e8 valido eseguire il test di risonanza con input shaper abilitato. Il parametro OUTPUT \u00e8 un elenco separato da virgole di cui verranno scritti gli output. Se viene richiesto raw_data , i dati grezzi dell'accelerometro vengono scritti in un file o in una serie di file /tmp/raw_data_<asse>_[<nome_chip>_][<punto>_]<nome>.csv con ( <punto>_ parte del nome generata solo se \u00e8 configurato pi\u00f9 di 1 punto sonda o \u00e8 specificato PUNTO). Se viene specificato resonances , la risposta in frequenza viene calcolata (su tutti i punti sonda) e scritta nel file /tmp/resonances_<asse>_<nome>.csv . Se non \u00e8 impostato, OUTPUT \u00e8 impostato su risonanze e NAME \u00e8 impostato sull'ora corrente nel formato \"AAAAMMGG_HHMMSS\".","title":"TEST_RESONANCES"},{"location":"G-Codes.html#shaper_calibrate","text":"SHAPER_CALIBRATE [AXIS=<asse>] [NAME=<nome>] [FREQ_START=<freq_min>] [FREQ_END=<freq_max>] [HZ_PER_SEC=<hz_per_sec>] [MAX_SMOOTHING=<livellamento_max>] : simile a TEST_RESONANCES , esegue il test di risonanza come configurato e cerca di trovare i parametri ottimali di input shaper per l'asse richiesto (o entrambi gli assi X e Y se il parametro AXIS non \u00e8 impostato). Se MAX_SMOOTHING non \u00e8 impostato, il suo valore viene preso dalla sezione [resonance_tester] , con l'impostazione predefinita non impostata. Per ulteriori informazioni sull'uso di questa funzione, vedere il Max smoothing della guida alla misurazione delle risonanze. I risultati dell'ottimizzazione vengono stampati sulla console e le risposte in frequenza e i diversi valori degli shaper di input vengono scritti in uno o pi\u00f9 file CSV /tmp/calibration_data_<asse>_<nome>.csv . A meno che non sia specificato, NAME imposta l'ora corrente nel formato \"AAAAMMGG_HHMMSS\". Nota che i parametri di input shaper suggeriti possono essere mantenuti nella configurazione eseguendo il comando SAVE_CONFIG .","title":"SHAPER_CALIBRATE"},{"location":"G-Codes.html#respond","text":"I seguenti comandi G-Code standard sono disponibili quando la sezione di configurazione di risposta \u00e8 abilitata: M118 <messaggio> : fa eco al messaggio preceduto dal prefisso predefinito configurato (o echo: se non \u00e8 configurato alcun prefisso). Sono inoltre disponibili i seguenti comandi aggiuntivi.","title":"[respond]"},{"location":"G-Codes.html#respond_1","text":"RESPOND MSG=\"<message>\" : echo il messaggio preceduto dal prefisso predefinito configurato (o echo: se non \u00e8 configurato alcun prefisso). RESPOND TYPE=echo MSG=\"<message>\" : echo del messaggio preceduto da echo: . RESPOND TYPE=echo_no_space MSG=\"<messaggio>\" : fa eco al messaggio preceduto da echo: senza uno spazio tra prefisso e messaggio, utile per la compatibilit\u00e0 con alcuni plugin di octoprint che prevedono una formattazione molto specifica. RESPOND TYPE=command MSG=\"<message>\" : echo il messaggio preceduto da // . OctoPrint pu\u00f2 essere configurato per rispondere a questi messaggi (ad es. RESPOND TYPE=command MSG=action:pause ). RESPOND TYPE=error MSG=\"<messaggio>\" : fa eco al messaggio preceduto da !! . RESPOND PREFIX=<prefix> MSG=\"<message>\" : echo il messaggio preceduto da <prefix> . (Il parametro PREFIX avr\u00e0 la priorit\u00e0 sul parametro TYPE )","title":"RESPOND"},{"location":"G-Codes.html#save_variables","text":"Il comando seguente \u00e8 abilitato se \u00e8 stata abilitata una sezione di configurazione save_variables .","title":"[save_variables]"},{"location":"G-Codes.html#save_variable","text":"SAVE_VARIABLE VARIABLE=<nome> VALUE=<valore> : salva la variabile su disco in modo che possa essere utilizzata tra i riavvii. Tutte le variabili memorizzate vengono caricate nel dict printer.save_variables.variables all'avvio e possono essere utilizzate nelle macro gcode. Il VALUE fornito viene analizzato come un valore letterale Python.","title":"SAVE_VARIABLE"},{"location":"G-Codes.html#screws_tilt_adjust","text":"I seguenti comandi sono disponibili quando la sezione di configurazione viti_tilt_adjust \u00e8 abilitata (consultare anche la manual level guide ).","title":"[screws_tilt_adjust]"},{"location":"G-Codes.html#screws_tilt_calculate","text":"SCREWS_TILT_CALCULATE [DIRECTION=CW|CCW] [MAX_DEVIATION=<value>] [<probe_parameter>=<value>] : Questo comando richiamer\u00e0 lo strumento di regolazione delle viti del piatto. Comander\u00e0 l'ugello in diverse posizioni (come definito nel file di configurazione) sondando l'altezza z e calcoler\u00e0 il numero di giri della manopola per regolare il livello del piatto. Se si specifica DIRECTION, le rotazioni della manopola saranno tutte nella stessa direzione, in senso orario (CW) o in senso antiorario (CCW). Vedere il comando PROBE per i dettagli sui parametri della sonda opzionali. IMPORTANTE: DEVI sempre eseguire un G28 prima di utilizzare questo comando. Se viene specificato MAX_DEVIATION, il comando generer\u00e0 un errore gcode se qualsiasi differenza nell'altezza della vite rispetto all'altezza della vite di base \u00e8 maggiore del valore fornito.","title":"SCREWS_TILT_CALCULATE"},{"location":"G-Codes.html#sdcard_loop","text":"Quando la sezione di configurazione sdcard_loop \u00e8 abilitata, sono disponibili i seguenti comandi estesi.","title":"[sdcard_loop]"},{"location":"G-Codes.html#sdcard_loop_begin","text":"SDCARD_LOOP_BEGIN COUNT=<count> : inizia una sezione in loop nella stampa SD. Un conteggio pari a 0 indica che la sezione deve essere ripetuta indefinitamente.","title":"SDCARD_LOOP_BEGIN"},{"location":"G-Codes.html#sdcard_loop_end","text":"SDCARD_LOOP_END : termina una sezione in loop nella stampa SD.","title":"SDCARD_LOOP_END"},{"location":"G-Codes.html#sdcard_loop_desist","text":"SDCARD_LOOP_DESIST : completa i loop esistenti senza ulteriori iterazioni.","title":"SDCARD_LOOP_DESIST"},{"location":"G-Codes.html#servo","text":"I seguenti comandi sono disponibili quando una sezione di configurazione servo \u00e8 abilitata.","title":"[servo]"},{"location":"G-Codes.html#set_servo","text":"SET_SERVO SERVO=nome_config [ANGLE=<gradi> | WIDTH=<secondi>] : Imposta la posizione del servo sull'angolo dato (in gradi) o sulla larghezza dell'impulso (in secondi). Usa WIDTH=0 per disabilitare l'uscita servo.","title":"SET_SERVO"},{"location":"G-Codes.html#skew_correction","text":"I seguenti comandi sono disponibili quando \u00e8 abilitata la sezione config_correzione_asimmetria (consultare anche la guida Correzione_asimmetria ).","title":"[skew_correction]"},{"location":"G-Codes.html#set_skew","text":"SET_SKEW [XY=<ac_length,bd_length,ad_length>] [XZ=<ac,bd,ad>] [YZ=<ac,bd,ad>] [CLEAR=<0|1>] : Configura il modulo [correzione_inclinazione ] con misure (in mm) tratte da una stampa di calibrazione. Si possono inserire misure per qualsiasi combinazione di piani, i piani non inseriti manterranno il loro valore attuale. Se viene immesso CLEAR=1 , tutta la correzione dell'inclinazione sar\u00e0 disabilitata.","title":"SET_SKEW"},{"location":"G-Codes.html#get_current_skew","text":"GET_CURRENT_SKEW : Riporta l'inclinazione corrente della stampante per ciascun piano sia in radianti che in gradi. L'inclinazione viene calcolata in base ai parametri forniti tramite il gcode SET_SKEW .","title":"GET_CURRENT_SKEW"},{"location":"G-Codes.html#calc_measured_skew","text":"CALC_MEASURED_SKEW [AC=<ac_length>] [BD=<bd_length>] [AD=<ad_length>] : calcola e riporta l'inclinazione (in radianti e gradi) in base a una stampa di test misurata. Questo pu\u00f2 essere utile per determinare l'inclinazione corrente della stampante dopo che \u00e8 stata applicata la correzione. Pu\u00f2 anche essere utile prima di applicare la correzione per determinare se \u00e8 necessaria la correzione dell'inclinazione. Vedere Correzione inclinazione per i dettagli su oggetti e misurazioni di calibrazione inclinazione.","title":"CALC_MEASURED_SKEW"},{"location":"G-Codes.html#skew_profile","text":"SKEW_PROFILE [LOAD=<nome>] [SAVE=<nome>] [REMOVE=<nome>] : Gestione del profilo per correzione_inclinazione. LOAD ripristiner\u00e0 lo stato di inclinazione dal profilo corrispondente al nome fornito. SAVE salver\u00e0 lo stato di inclinazione corrente in un profilo che corrisponde al nome fornito. REMOVE eliminer\u00e0 il profilo corrispondente al nome fornito dalla memoria persistente. Si noti che dopo aver eseguito le operazioni SAVE o REMOVE \u00e8 necessario eseguire il gcode SAVE_CONFIG per rendere permanenti le modifiche alla memoria persistente.","title":"SKEW_PROFILE"},{"location":"G-Codes.html#smart_effector","text":"Sono disponibili diversi comandi quando una sezione di configurazione smart_effector \u00e8 abilitata. Assicurati di controllare la documentazione ufficiale per Smart Effector su Duet3D Wiki prima di modificare i parametri di Smart Effector. Controllare anche la guida alla calibrazione della sonda .","title":"[smart_effector]"},{"location":"G-Codes.html#set_smart_effector","text":"SET_SMART_EFFECTOR [SENSITIVITY=<sensibilit\u00e0>] [ACCEL=<accel>] [RECOVERY_TIME=<tempo>] : imposta i parametri di Smart Effector. Quando viene specificato SENSITIVITY , il rispettivo valore viene scritto nella EEPROM dello SmartEffector (richiede che sia fornito control_pin ). I valori di <sensibilit\u00e0> accettabili sono 0..255, il valore predefinito \u00e8 50. Valori inferiori richiedono una minore forza di contatto dell'ugello per attivarsi (ma esiste un rischio maggiore di falso trigger a causa delle vibrazioni durante la tastatura) e valori pi\u00f9 alti riducono il falso trigger (ma richiede una maggiore forza di contatto per attivarsi). Poich\u00e9 la sensibilit\u00e0 viene scritta nella EEPROM, viene conservata dopo lo spegnimento e quindi non \u00e8 necessario configurarla ad ogni avvio della stampante. ACCEL e RECOVERY_TIME consentono di sovrascrivere i parametri corrispondenti in fase di esecuzione, vedere la sezione di configurazione di Smart Effector per maggiori informazioni su quei parametri.","title":"SET_SMART_EFFECTOR"},{"location":"G-Codes.html#reset_smart_effector","text":"RESET_SMART_EFFECTOR : Ripristina la sensibilit\u00e0 di Smart Effector alle impostazioni di fabbrica. Richiede che il relativo control_pin sia fornito nella sezione di configurazione.","title":"RESET_SMART_EFFECTOR"},{"location":"G-Codes.html#stepper_enable","text":"Il modulo stepper_enable viene caricato automaticamente.","title":"[stepper_enable]"},{"location":"G-Codes.html#set_stepper_enable","text":"SET_STEPPER_ENABLE STEPPER=<nome_config> ENABLE=[0|1] : Abilita o disabilita solo lo stepper dato. Questo \u00e8 uno strumento diagnostico e di debug e deve essere utilizzato con cautela. La disabilitazione di un motore dell'asse non ripristina le informazioni di homing. Lo spostamento manuale di uno stepper disabilitato pu\u00f2 causare l'azionamento del motore della macchina al di fuori dei limiti di sicurezza. Ci\u00f2 pu\u00f2 causare danni ai componenti dell'asse, al hotend e alla superficie di stampa.","title":"SET_STEPPER_ENABLE"},{"location":"G-Codes.html#temperature_fan","text":"Il comando seguente \u00e8 disponibile quando una sezione di configurazione della ventola_temperatura \u00e8 abilitata.","title":"[temperature_fan]"},{"location":"G-Codes.html#set_temperature_fan_target","text":"SET_TEMPERATURE_FAN_TARGET temperature_fan=<temperature_fan_name> [target=<target_temperature>] [min_speed=<min_speed>] [max_speed=<max_speed>] : Imposta la temperatura target per una temperature_fan. Se non viene fornito un target, viene impostato sulla temperatura specificata nel file di configurazione. Se le velocit\u00e0 non vengono fornite, non viene applicata alcuna modifica.","title":"SET_TEMPERATURE_FAN_TARGET"},{"location":"G-Codes.html#tmcxxxx","text":"I seguenti comandi sono disponibili quando una qualsiasi delle tmcXXXX config section \u00e8 abilitata.","title":"[tmcXXXX]"},{"location":"G-Codes.html#dump_tmc","text":"DUMP_TMC STEPPER=<nome> : questo comando legger\u00e0 i registri del driver TMC e ne riporter\u00e0 i valori.","title":"DUMP_TMC"},{"location":"G-Codes.html#init_tmc","text":"INIT_TMC STEPPER=<nome> : questo comando inizializzer\u00e0 i registri TMC. Necessario per riattivare il driver se l'alimentazione al chip viene spenta e poi riaccesa.","title":"INIT_TMC"},{"location":"G-Codes.html#set_tmc_current","text":"SET_TMC_CURRENT STEPPER=<nome> CURRENT=<amps> HOLDCURRENT=<amps> : Questo regoler\u00e0 le correnti di funzionamento e di mantenimento del driver TMC. (HOLDCURRENT non \u00e8 applicabile ai driver tmc2660.)","title":"SET_TMC_CURRENT"},{"location":"G-Codes.html#set_tmc_field","text":"SET_TMC_FIELD STEPPER=<nome> FIELD=<campo> VALUE=<valore> : Questo alterer\u00e0 il valore del campo del registro specificato del driver TMC. Questo comando \u00e8 destinato alla diagnostica e al debug di basso livello solo perch\u00e9 la modifica dei campi durante l'esecuzione pu\u00f2 causare comportamenti indesiderati e potenzialmente pericolosi della stampante. Le modifiche permanenti dovrebbero invece essere apportate utilizzando il file di configurazione della stampante. Non vengono eseguiti controlli di integrit\u00e0 per i valori indicati.","title":"SET_TMC_FIELD"},{"location":"G-Codes.html#toolhead","text":"Il modulo toolhead viene caricato automaticamente.","title":"[toolhead]"},{"location":"G-Codes.html#set_velocity_limit","text":"SET_VELOCITY_LIMIT [VELOCITY=<valore>] [ACCEL=<valore>] [ACCEL_TO_DECEL=<valore>] [SQUARE_CORNER_VELOCITY=<valore>] : Modifica i limiti di velocit\u00e0 della stampante.","title":"SET_VELOCITY_LIMIT"},{"location":"G-Codes.html#tuning_tower","text":"Il modulo tuning_tower viene caricato automaticamente.","title":"[tuning_tower]"},{"location":"G-Codes.html#tuning_tower_1","text":"TUNING_TOWER COMMAND=<comando> PARAMETER=<nome> START=<valore> [SKIP=<valore>] [FACTOR=<valore> [BAND=<valore>]] | [STEP_DELTA=<valore> STEP_HEIGHT=<valore>] : Uno strumento per regolare un parametro su ciascuna altezza Z durante una stampa. Lo strumento eseguir\u00e0 il dato COMMAND con il dato PARAMETER assegnato a un valore che varia con Z secondo una formula. Usa FACTOR se utilizzerai un righello o calibri per misurare l'altezza Z del valore ottimale, o STEP_DELTA e STEP_HEIGHT se il modello della torre di regolazione ha bande di valori discreti come \u00e8 comune con le torri della temperatura. Se viene specificato SKIP=<valore> , il processo di ottimizzazione non inizia finch\u00e9 non viene raggiunta l'altezza Z <valore> , e al di sotto di essa il valore sar\u00e0 impostato su START ; in questo caso, la z_height usata nelle formule seguenti \u00e8 in realt\u00e0 max(z - skip, 0) . Ci sono tre possibili combinazioni di opzioni: FACTOR : Il valore cambia a una velocit\u00e0 di factor per millimetro. La formula utilizzata \u00e8: valore = inizio + fattore * z_altezza . \u00c8 possibile inserire l'altezza Z ottimale direttamente nella formula per determinare il valore del parametro ottimale. FACTOR e BAND : il valore cambia a una velocit\u00e0 media di factor per millimetro, ma in bande discrete in cui la regolazione verr\u00e0 effettuata solo ogni BAND millimetri di altezza Z. La formula utilizzata \u00e8: value = start + factor * ((floor(z_height / band) + .5) * band) . STEP_DELTA e STEP_HEIGHT : il valore cambia di STEP_DELTA ogni STEP_HEIGHT millimetri. La formula utilizzata \u00e8: value = start + step_delta * floor(z_height / step_height) . Puoi semplicemente contare le bande o leggere le etichette della torre di tuning per determinare il valore ottimale.","title":"TUNING_TOWER"},{"location":"G-Codes.html#virtual_sdcard","text":"Klipper supporta i seguenti comandi G-Code standard se la sezione di configurazione di virtual_sdcard \u00e8 abilitata: Elenco scheda SD: M20 Inizializza scheda SD: M21 Selezionare il file SD: M23 <nomefile> Avvia/riprendi la stampa SD: M24 Sospendi la stampa SD: M25 Impostare la posizione SD: M26 S<offset> Riporta lo stato di stampa SD: M27 Inoltre, quando la sezione di configurazione \"virtual_sdcard\" \u00e8 abilitata, sono disponibili i seguenti comandi estesi.","title":"[virtual_sdcard]"},{"location":"G-Codes.html#sdcard_print_file","text":"SDCARD_PRINT_FILE FILENAME=<nomefile> : carica un file e avvia la stampa SD.","title":"SDCARD_PRINT_FILE"},{"location":"G-Codes.html#sdcard_reset_file","text":"SDCARD_RESET_FILE : Scarica il file e cancella lo stato SD.","title":"SDCARD_RESET_FILE"},{"location":"G-Codes.html#z_thermal_adjust","text":"The following commands are available when the z_thermal_adjust config section is enabled.","title":"[z_thermal_adjust]"},{"location":"G-Codes.html#set_z_thermal_adjust","text":"SET_Z_THERMAL_ADJUST [ENABLE=<0:1>] [TEMP_COEFF=<value>] [REF_TEMP=<value>] : Enable or disable the Z thermal adjustment with ENABLE . Disabling does not remove any adjustment already applied, but will freeze the current adjustment value - this prevents potentially unsafe downward Z movement. Re-enabling can potentially cause upward tool movement as the adjustment is updated and applied. TEMP_COEFF allows run-time tuning of the adjustment temperature coefficient (i.e. the TEMP_COEFF config parameter). TEMP_COEFF values are not saved to the config. REF_TEMP manually overrides the reference temperature typically set during homing (for use in e.g. non-standard homing routines) - will be reset automatically upon homing.","title":"SET_Z_THERMAL_ADJUST"},{"location":"G-Codes.html#z_tilt","text":"I seguenti comandi sono disponibili quando la sezione z_tilt config \u00e8 abilitata.","title":"[z_tilt]"},{"location":"G-Codes.html#z_tilt_adjust","text":"Z_TILT_ADJUST [<probe_parameter>=<value>] : questo comando sonder\u00e0 i punti specificati nella configurazione e quindi apporter\u00e0 regolazioni indipendenti a ciascuno Z stepper per compensare l'inclinazione. Vedere il comando PROBE per i dettagli sui parametri opzionali della sonda.","title":"Z_TILT_ADJUST"},{"location":"Hall_Filament_Width_Sensor.html","text":"Sensore di Hall per larghezza del filamento \u00b6 Questo documento descrive il modulo host del sensore di larghezza del filamento Filament Width Sensor. L'hardware utilizzato per lo sviluppo di questo modulo host si basa su due sensori lineari Hall (ad esempio ss49e). I sensori nel corpo si trovano ai lati opposti. Principio di funzionamento: due sensori Hall funzionano in modalit\u00e0 differenziale, la stessa deriva di temperatura per il sensore. Non \u00e8 necessaria una speciale compensazione della temperatura. Puoi trovare i design su Thingiverse , un video di assemblaggio \u00e8 disponibile anche su Youtube Per utilizzare il sensore di larghezza del filamento Hall, leggere Config Reference e G-Code documentation . Come funziona? \u00b6 Il sensore genera due uscite analogiche in base alla larghezza del filamento calcolata. La somma della tensione di uscita \u00e8 sempre uguale alla larghezza del filamento rilevata. Il modulo host monitora le variazioni di tensione e regola il moltiplicatore di estrusione. Uso il connettore aux2 su una scheda simile a rampe analog11 e analog12 pin. Puoi usare diversi pin e diverse schede. Modello per variabili di menu \u00b6 [menu __main __filament __width_current] type: command enable: {'hall_filament_width_sensor' in printer} name: Dia: {'%.2F' % printer.hall_filament_width_sensor.Diameter} index: 0 [menu __main __filament __raw_width_current] type: command enable: {'hall_filament_width_sensor' in printer} name: Raw: {'%4.0F' % printer.hall_filament_width_sensor.Raw} index: 1 Procedura di calibrazione \u00b6 Per ottenere il valore grezzo del sensore \u00e8 possibile utilizzare la voce di menu o il comando QUERY_RAW_FILAMENT_WIDTH nel terminale. Inserire la prima barra di calibrazione (dimensione 1,5 mm) ottenere il primo valore grezzo del sensore Inserire la seconda barra di calibrazione (dimensione 2,0 mm) per ottenere il secondo valore grezzo del sensore Salva i valori grezzi del sensore nel parametro di configurazione Raw_dia1 e Raw_dia2 Come abilitare il sensore \u00b6 Per impostazione predefinita, il sensore \u00e8 disabilitato all'accensione. Per abilitare il sensore, emettere il comando ENABLE_FILAMENT_WIDTH_SENSOR o impostare il parametro enable su true . Registrazione \u00b6 Per impostazione predefinita, la registrazione del diametro \u00e8 disabilitata all'accensione. Emettere il comando ENABLE_FILAMENT_WIDTH_LOG per avviare la registrazione ed emettere il comando DISABLE_FILAMENT_WIDTH_LOG per interrompere la registrazione. Per abilitare la registrazione all'accensione, impostare il parametro logging su true . Il diametro del filamento viene registrato con un intervallo di misurazione (10 mm per impostazione predefinita).","title":"Sensore di Hall per larghezza del filamento"},{"location":"Hall_Filament_Width_Sensor.html#sensore-di-hall-per-larghezza-del-filamento","text":"Questo documento descrive il modulo host del sensore di larghezza del filamento Filament Width Sensor. L'hardware utilizzato per lo sviluppo di questo modulo host si basa su due sensori lineari Hall (ad esempio ss49e). I sensori nel corpo si trovano ai lati opposti. Principio di funzionamento: due sensori Hall funzionano in modalit\u00e0 differenziale, la stessa deriva di temperatura per il sensore. Non \u00e8 necessaria una speciale compensazione della temperatura. Puoi trovare i design su Thingiverse , un video di assemblaggio \u00e8 disponibile anche su Youtube Per utilizzare il sensore di larghezza del filamento Hall, leggere Config Reference e G-Code documentation .","title":"Sensore di Hall per larghezza del filamento"},{"location":"Hall_Filament_Width_Sensor.html#come-funziona","text":"Il sensore genera due uscite analogiche in base alla larghezza del filamento calcolata. La somma della tensione di uscita \u00e8 sempre uguale alla larghezza del filamento rilevata. Il modulo host monitora le variazioni di tensione e regola il moltiplicatore di estrusione. Uso il connettore aux2 su una scheda simile a rampe analog11 e analog12 pin. Puoi usare diversi pin e diverse schede.","title":"Come funziona?"},{"location":"Hall_Filament_Width_Sensor.html#modello-per-variabili-di-menu","text":"[menu __main __filament __width_current] type: command enable: {'hall_filament_width_sensor' in printer} name: Dia: {'%.2F' % printer.hall_filament_width_sensor.Diameter} index: 0 [menu __main __filament __raw_width_current] type: command enable: {'hall_filament_width_sensor' in printer} name: Raw: {'%4.0F' % printer.hall_filament_width_sensor.Raw} index: 1","title":"Modello per variabili di menu"},{"location":"Hall_Filament_Width_Sensor.html#procedura-di-calibrazione","text":"Per ottenere il valore grezzo del sensore \u00e8 possibile utilizzare la voce di menu o il comando QUERY_RAW_FILAMENT_WIDTH nel terminale. Inserire la prima barra di calibrazione (dimensione 1,5 mm) ottenere il primo valore grezzo del sensore Inserire la seconda barra di calibrazione (dimensione 2,0 mm) per ottenere il secondo valore grezzo del sensore Salva i valori grezzi del sensore nel parametro di configurazione Raw_dia1 e Raw_dia2","title":"Procedura di calibrazione"},{"location":"Hall_Filament_Width_Sensor.html#come-abilitare-il-sensore","text":"Per impostazione predefinita, il sensore \u00e8 disabilitato all'accensione. Per abilitare il sensore, emettere il comando ENABLE_FILAMENT_WIDTH_SENSOR o impostare il parametro enable su true .","title":"Come abilitare il sensore"},{"location":"Hall_Filament_Width_Sensor.html#registrazione","text":"Per impostazione predefinita, la registrazione del diametro \u00e8 disabilitata all'accensione. Emettere il comando ENABLE_FILAMENT_WIDTH_LOG per avviare la registrazione ed emettere il comando DISABLE_FILAMENT_WIDTH_LOG per interrompere la registrazione. Per abilitare la registrazione all'accensione, impostare il parametro logging su true . Il diametro del filamento viene registrato con un intervallo di misurazione (10 mm per impostazione predefinita).","title":"Registrazione"},{"location":"Installation.html","text":"Installazione \u00b6 Queste istruzioni partono dal presupposto che Klipper girer\u00e0 su un Raspberry Pi con OctoPrint. \u00c8 consigliato l'utilizzo di un Raspberry Pi 2, 3 o 4 (vedi la FAQ per utilizzare un hardware diverso). Ottenere un file di configurazione di Klipper \u00b6 La maggior parte delle impostazioni di Klipper sono determinate da un \"file di configurazione della stampante\" che verr\u00e0 archiviato sul Raspberry Pi. Un file di configurazione appropriato pu\u00f2 spesso essere trovato cercando in Klipper directory config un file che inizia con un prefisso \"printer-\" che corrisponde alla stampante di destinazione. Il file di configurazione di Klipper contiene informazioni tecniche sulla stampante che saranno necessarie durante l'installazione. Se non c'\u00e8 un file di configurazione della stampante appropriato nella directory di configurazione di Klipper, prova a cercare nel sito web del produttore della stampante per vedere se hanno un file di configurazione di Klipper appropriato. Se non \u00e8 possibile trovare alcun file di configurazione per la stampante, ma si conosce il tipo di scheda di controllo della stampante, cercare un file di configurazione appropriato che inizi con un prefisso \"generico-\". Questi file di esempio della scheda della stampante dovrebbero consentire di completare correttamente l'installazione iniziale, ma richiederanno alcune personalizzazioni per ottenere la funzionalit\u00e0 completa della stampante. \u00c8 anche possibile definire da zero una nuova configurazione della stampante. Tuttavia, ci\u00f2 richiede una conoscenza tecnica significativa sulla stampante e la sua elettronica. Si consiglia alla maggior parte degli utenti di iniziare con un file di configurazione appropriato. Se si crea un nuovo file di configurazione della stampante personalizzato, iniziare con l'esempio pi\u00f9 vicino file di configurazione e utilizzare Klipper riferimento alla configurazione per ulteriori informazioni. Preparazione dell'immagine del sistema operativo \u00b6 Iniziate installando OctoPi sul computer Raspberry Pi. Usa OctoPi v0.17.0 o successivo - vedi OctoPi releases per informazioni sulla versione. Si dovrebbe verificare che OctoPi si avvii e che il server web OctoPrint funzioni. Dopo essersi collegati alla pagina web OctoPrint, segui la richiesta di aggiornare OctoPrint alla v1.4.2 o successiva. Dopo aver installato OctoPi ed aver aggiornato OctoPrint all'ultima versione sar\u00e0 necessario loggarsi via ssh sul Raspberry (o altra macchina scelta per far girare klipper) per eseguire una manciata di comandi. Se stai utilizzando un sistema Linux o MacOS desktop, il programma \"ssh\" potrebbe gi\u00e0 essere installato sul tuo sistema. Esistono vari client ssh disponibili (ad esempio PuTTY ). Usa il programma ssh per connetterti al Raspberry Pi (ssh pi@octopi -- la password \u00e8 \"raspberry\") ed esegui questi comandi: git clone https://github.com/Klipper3d/klipper ./klipper/scripts/install-octopi.sh Questo scaricher\u00e0 Klipper, installer\u00e0 alcune dipendenze, imposter\u00e0 Klipper per essere eseguito all'avvio del sistema e avvier\u00f2 il programma host Klipper. Sar\u00e0 necessario che il Raspberry abbia accesso ad internet e richeder\u00e0 alcuni minuti. Compilare il firmware e flashare il microcontrollore \u00b6 Per compilare il firmware per il microcontrollore, iniziamo lanciando questi comandi sul Raspberry: cd ~/klipper/ make menuconfig I commenti nella parte superiore del file di configurazione della stampante dovrebbero descrivere le impostazioni che devono essere impostate durante \"make menuconfig\". Apri il file in un browser web o in un editor di testo e cerca queste istruzioni nella parte superiore del file. Una volta configurate le impostazioni \"menuconfig\" appropriate, premere \"Q\" per uscire, quindi \"Y\" per salvare. Quindi esegui: make Se i commenti nella parte superiore del file di configurazione della stampante descrivono i passaggi personalizzati per il \"flash\" dell'immagine finale sulla scheda di controllo della stampante, segui questi passaggi e poi procedi con configurazione OctoPrint . In caso contrario, i seguenti passaggi vengono spesso utilizzati per eseguire il \"flash\" della scheda di controllo della stampante. Innanzitutto \u00e8 necessario determinare la porta seriale collegata al microcontrollore. Esegui quanto segue: ls /dev/serial/by-id/* Dovrebbe venire riportato qualcosa di simile a questo: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 \u00c8 abbastanza comune che ogni stampante 3D abbia il suo nome univoco elencato come porta seriale. Questo nome sar\u00e0 utilizzato quando flasheremo il microcontrollore. \u00c8 possibile che ci possano essere pi\u00f9 righe nell'elenco sopraccitato, se \u00e8 cos\u00ec seleziona la riga cosrrispondente al microcontrollore (vedi le FAQ per maggiori informazioni). Per i microcontrollori pi\u00f9 comuni, il firmware pu\u00f2 essere flashato con comandi tipo: sudo service klipper stop make flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 sudo service klipper start Assicurati di mettere al posto di FLASH_DEVICE il nome della porta seriale associato alla stampante. Quando flashi il firmware per la prima volta verifica che OctoPrint non sia connesso alla stampante (dall'interfaccia di OctoPrint, nella sezione \"Connection\", clicca \"Disconnect\"). Configurare OctoPrint per usare Klipper \u00b6 Il sistema OctoPrint deve essere configurato per comunicare con il sistema Klipper. Loggati su OctoPrint e confogura queste parti: Naviga nella scheda Impostazioni (la chiave inglese in cima alla pagina). Dentro \"Serial Connection\", \"Additional serial ports\" aggiungi \"/tmp/printer\". Poi fai \"Save\". Vai nella scheda Impostazioni e sotto \"Serial Connection\" cambia la \"Serial Port\" in \"/tmp/printer\". Nella scheda Impostazioni, vai in \"Behavior\" e seleziona l'opzione \"Cancel any ongoing prints but stay connected to the printer\", poi \"Save\". Dalla pagina principale, nella sezione \"Connection\" in alto a sinistra, verifica che il campo \"Serial Port\" sia \"/tmp/printer\" e clicca \"Connect\". Se l'opzione /tmp/printer non \u00e8 visualizzata prova a ricaricare la pagina. Una volta connesso, vai nella scheda \"Terminal\" e scrivi il comando \"status\" (senza virgolette) nella casella per i comandi e clicca \"Send\". La finestra del terminare probabilmente mostrer\u00e0 un messaggio di errore sull'apertura del file config, questo significa che OctoPrint sta comunicando correttamente con Klipper. Possiamo proseguire. Configurare Klipper \u00b6 Il passaggio successivo consiste nel copiare il file di configurazione della stampante sul Raspberry Pi. Probabilmente il modo pi\u00f9 semplice per impostare il file di configurazione di Klipper \u00e8 utilizzare un editor desktop che supporti la modifica dei file sui protocolli \"scp\" e/o \"sftp\". Ci sono strumenti disponibili gratuitamente che supportano questo (ad esempio, Notepad++, WinSCP e Cyberduck). Caricare il file di configurazione della stampante nell'editor e quindi salvarlo come file denominato \"printer.cfg\" nella directory home dell'utente pi (ad esempio, /home/pi/printer.cfg). In alternativa, si pu\u00f2 anche copiare e modificare il file direttamente sul Raspberry Pi tramite ssh. Potrebbe essere simile al seguente (assicurati di aggiornare il comando per utilizzare il nome file di configurazione della stampante appropriato): cp ~/klipper/config/example-cartesian.cfg ~/printer.cfg nano ~/printer.cfg \u00c8 comune che ogni stampante abbia il proprio nome univoco per il microcontrollore. Il nome potrebbe cambiare dopo aver eseguito il flashing di Klipper, quindi ripeti questi passaggi anche se erano gi\u00e0 stati eseguiti durante il flashing. Eseguire: ls /dev/serial/by-id/* Dovrebbe venire riportato qualcosa di simile a questo: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 Quindi aggiorna il file di configurazione con il nome univoco. Ad esempio, aggiorna la sezione [mcu] in modo che assomigli a qualcosa di simile a: [mcu] serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 Dopo aver creato e modificato il file sar\u00e0 necessario emettere un comando di \"restart\" nel terminale web di OctoPrint per caricare il file config. Un comando \"status\" segnaler\u00e0 che la stampante \u00e8 pronta se il file di configurazione di Klipper viene letto correttamente e il microcontrollore \u00e8 stato trovato e configurato correttamente. Quando si personalizza il file di configurazione della stampante, non \u00e8 raro che Klipper segnali un errore di configurazione. Se si verifica un errore, apportare le correzioni necessarie al file di configurazione della stampante ed eseguire il \"restart\" finch\u00e9 \"status\" non segnala che la stampante \u00e8 pronta. Klipper riferisce i messaggi di errore tramite il terminale di OctoPrint. Il comando \"status\" pu\u00f2 essere usato per visualizzare nuovamente eventuali messaggi di errore. Lo script di startup di default di Klipper generer\u00e0 un log sotto /tmp/klippy.log , questo fornir\u00e0 informazioni pi\u00f9 dettagliate. Dopo che Klipper ha segnalato che la stampante \u00e8 pronta, vai al config check document per eseguire alcuni controlli di base sulle definizioni nel file di configurazione. Vedere i documentation reference per altre informazioni.","title":"Installazione"},{"location":"Installation.html#installazione","text":"Queste istruzioni partono dal presupposto che Klipper girer\u00e0 su un Raspberry Pi con OctoPrint. \u00c8 consigliato l'utilizzo di un Raspberry Pi 2, 3 o 4 (vedi la FAQ per utilizzare un hardware diverso).","title":"Installazione"},{"location":"Installation.html#ottenere-un-file-di-configurazione-di-klipper","text":"La maggior parte delle impostazioni di Klipper sono determinate da un \"file di configurazione della stampante\" che verr\u00e0 archiviato sul Raspberry Pi. Un file di configurazione appropriato pu\u00f2 spesso essere trovato cercando in Klipper directory config un file che inizia con un prefisso \"printer-\" che corrisponde alla stampante di destinazione. Il file di configurazione di Klipper contiene informazioni tecniche sulla stampante che saranno necessarie durante l'installazione. Se non c'\u00e8 un file di configurazione della stampante appropriato nella directory di configurazione di Klipper, prova a cercare nel sito web del produttore della stampante per vedere se hanno un file di configurazione di Klipper appropriato. Se non \u00e8 possibile trovare alcun file di configurazione per la stampante, ma si conosce il tipo di scheda di controllo della stampante, cercare un file di configurazione appropriato che inizi con un prefisso \"generico-\". Questi file di esempio della scheda della stampante dovrebbero consentire di completare correttamente l'installazione iniziale, ma richiederanno alcune personalizzazioni per ottenere la funzionalit\u00e0 completa della stampante. \u00c8 anche possibile definire da zero una nuova configurazione della stampante. Tuttavia, ci\u00f2 richiede una conoscenza tecnica significativa sulla stampante e la sua elettronica. Si consiglia alla maggior parte degli utenti di iniziare con un file di configurazione appropriato. Se si crea un nuovo file di configurazione della stampante personalizzato, iniziare con l'esempio pi\u00f9 vicino file di configurazione e utilizzare Klipper riferimento alla configurazione per ulteriori informazioni.","title":"Ottenere un file di configurazione di Klipper"},{"location":"Installation.html#preparazione-dellimmagine-del-sistema-operativo","text":"Iniziate installando OctoPi sul computer Raspberry Pi. Usa OctoPi v0.17.0 o successivo - vedi OctoPi releases per informazioni sulla versione. Si dovrebbe verificare che OctoPi si avvii e che il server web OctoPrint funzioni. Dopo essersi collegati alla pagina web OctoPrint, segui la richiesta di aggiornare OctoPrint alla v1.4.2 o successiva. Dopo aver installato OctoPi ed aver aggiornato OctoPrint all'ultima versione sar\u00e0 necessario loggarsi via ssh sul Raspberry (o altra macchina scelta per far girare klipper) per eseguire una manciata di comandi. Se stai utilizzando un sistema Linux o MacOS desktop, il programma \"ssh\" potrebbe gi\u00e0 essere installato sul tuo sistema. Esistono vari client ssh disponibili (ad esempio PuTTY ). Usa il programma ssh per connetterti al Raspberry Pi (ssh pi@octopi -- la password \u00e8 \"raspberry\") ed esegui questi comandi: git clone https://github.com/Klipper3d/klipper ./klipper/scripts/install-octopi.sh Questo scaricher\u00e0 Klipper, installer\u00e0 alcune dipendenze, imposter\u00e0 Klipper per essere eseguito all'avvio del sistema e avvier\u00f2 il programma host Klipper. Sar\u00e0 necessario che il Raspberry abbia accesso ad internet e richeder\u00e0 alcuni minuti.","title":"Preparazione dell'immagine del sistema operativo"},{"location":"Installation.html#compilare-il-firmware-e-flashare-il-microcontrollore","text":"Per compilare il firmware per il microcontrollore, iniziamo lanciando questi comandi sul Raspberry: cd ~/klipper/ make menuconfig I commenti nella parte superiore del file di configurazione della stampante dovrebbero descrivere le impostazioni che devono essere impostate durante \"make menuconfig\". Apri il file in un browser web o in un editor di testo e cerca queste istruzioni nella parte superiore del file. Una volta configurate le impostazioni \"menuconfig\" appropriate, premere \"Q\" per uscire, quindi \"Y\" per salvare. Quindi esegui: make Se i commenti nella parte superiore del file di configurazione della stampante descrivono i passaggi personalizzati per il \"flash\" dell'immagine finale sulla scheda di controllo della stampante, segui questi passaggi e poi procedi con configurazione OctoPrint . In caso contrario, i seguenti passaggi vengono spesso utilizzati per eseguire il \"flash\" della scheda di controllo della stampante. Innanzitutto \u00e8 necessario determinare la porta seriale collegata al microcontrollore. Esegui quanto segue: ls /dev/serial/by-id/* Dovrebbe venire riportato qualcosa di simile a questo: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 \u00c8 abbastanza comune che ogni stampante 3D abbia il suo nome univoco elencato come porta seriale. Questo nome sar\u00e0 utilizzato quando flasheremo il microcontrollore. \u00c8 possibile che ci possano essere pi\u00f9 righe nell'elenco sopraccitato, se \u00e8 cos\u00ec seleziona la riga cosrrispondente al microcontrollore (vedi le FAQ per maggiori informazioni). Per i microcontrollori pi\u00f9 comuni, il firmware pu\u00f2 essere flashato con comandi tipo: sudo service klipper stop make flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 sudo service klipper start Assicurati di mettere al posto di FLASH_DEVICE il nome della porta seriale associato alla stampante. Quando flashi il firmware per la prima volta verifica che OctoPrint non sia connesso alla stampante (dall'interfaccia di OctoPrint, nella sezione \"Connection\", clicca \"Disconnect\").","title":"Compilare il firmware e flashare il microcontrollore"},{"location":"Installation.html#configurare-octoprint-per-usare-klipper","text":"Il sistema OctoPrint deve essere configurato per comunicare con il sistema Klipper. Loggati su OctoPrint e confogura queste parti: Naviga nella scheda Impostazioni (la chiave inglese in cima alla pagina). Dentro \"Serial Connection\", \"Additional serial ports\" aggiungi \"/tmp/printer\". Poi fai \"Save\". Vai nella scheda Impostazioni e sotto \"Serial Connection\" cambia la \"Serial Port\" in \"/tmp/printer\". Nella scheda Impostazioni, vai in \"Behavior\" e seleziona l'opzione \"Cancel any ongoing prints but stay connected to the printer\", poi \"Save\". Dalla pagina principale, nella sezione \"Connection\" in alto a sinistra, verifica che il campo \"Serial Port\" sia \"/tmp/printer\" e clicca \"Connect\". Se l'opzione /tmp/printer non \u00e8 visualizzata prova a ricaricare la pagina. Una volta connesso, vai nella scheda \"Terminal\" e scrivi il comando \"status\" (senza virgolette) nella casella per i comandi e clicca \"Send\". La finestra del terminare probabilmente mostrer\u00e0 un messaggio di errore sull'apertura del file config, questo significa che OctoPrint sta comunicando correttamente con Klipper. Possiamo proseguire.","title":"Configurare OctoPrint per usare Klipper"},{"location":"Installation.html#configurare-klipper","text":"Il passaggio successivo consiste nel copiare il file di configurazione della stampante sul Raspberry Pi. Probabilmente il modo pi\u00f9 semplice per impostare il file di configurazione di Klipper \u00e8 utilizzare un editor desktop che supporti la modifica dei file sui protocolli \"scp\" e/o \"sftp\". Ci sono strumenti disponibili gratuitamente che supportano questo (ad esempio, Notepad++, WinSCP e Cyberduck). Caricare il file di configurazione della stampante nell'editor e quindi salvarlo come file denominato \"printer.cfg\" nella directory home dell'utente pi (ad esempio, /home/pi/printer.cfg). In alternativa, si pu\u00f2 anche copiare e modificare il file direttamente sul Raspberry Pi tramite ssh. Potrebbe essere simile al seguente (assicurati di aggiornare il comando per utilizzare il nome file di configurazione della stampante appropriato): cp ~/klipper/config/example-cartesian.cfg ~/printer.cfg nano ~/printer.cfg \u00c8 comune che ogni stampante abbia il proprio nome univoco per il microcontrollore. Il nome potrebbe cambiare dopo aver eseguito il flashing di Klipper, quindi ripeti questi passaggi anche se erano gi\u00e0 stati eseguiti durante il flashing. Eseguire: ls /dev/serial/by-id/* Dovrebbe venire riportato qualcosa di simile a questo: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 Quindi aggiorna il file di configurazione con il nome univoco. Ad esempio, aggiorna la sezione [mcu] in modo che assomigli a qualcosa di simile a: [mcu] serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 Dopo aver creato e modificato il file sar\u00e0 necessario emettere un comando di \"restart\" nel terminale web di OctoPrint per caricare il file config. Un comando \"status\" segnaler\u00e0 che la stampante \u00e8 pronta se il file di configurazione di Klipper viene letto correttamente e il microcontrollore \u00e8 stato trovato e configurato correttamente. Quando si personalizza il file di configurazione della stampante, non \u00e8 raro che Klipper segnali un errore di configurazione. Se si verifica un errore, apportare le correzioni necessarie al file di configurazione della stampante ed eseguire il \"restart\" finch\u00e9 \"status\" non segnala che la stampante \u00e8 pronta. Klipper riferisce i messaggi di errore tramite il terminale di OctoPrint. Il comando \"status\" pu\u00f2 essere usato per visualizzare nuovamente eventuali messaggi di errore. Lo script di startup di default di Klipper generer\u00e0 un log sotto /tmp/klippy.log , questo fornir\u00e0 informazioni pi\u00f9 dettagliate. Dopo che Klipper ha segnalato che la stampante \u00e8 pronta, vai al config check document per eseguire alcuni controlli di base sulle definizioni nel file di configurazione. Vedere i documentation reference per altre informazioni.","title":"Configurare Klipper"},{"location":"Kinematics.html","text":"Cinematica \u00b6 Questo documento \u00e8 una panoramica su come Klipper implementa la movimentazione del sistema meccanico(la sua cinematica ). Questi contenuti potrebbero interessare sia gli sviluppatori che intendono lacorare sul software Klipper che gli utenti che desiderano comprendere meglio il funzionamento delle proprie macchine. Accelerazione \u00b6 Klipper utilizza uno schema ad accelerazione costrante ogni qualvolta la testa di stampa cambia velocit\u00e0 - la velocit\u00e0 viene gradualmente variata fino a raggiungere la nuova velocit\u00e0 invece di strattonare direttamente alla nuova velocit\u00e0. Klipper mantiene sempre l'accelerazione tra la testa di stampa e la stampa. Il filamento in uscita dall'ugello pu\u00f2 essere piuttosto fragile, rapidi sobbalzi e/o cambi di flusso di estrusione portano a cattiva qualit\u00e0 di stampa e bassa adesione al piano di stampa. Anche quando non viene estruso filamento, se l'ugello si trova allo stesso livello della stampa, un repentino cambio di velocit\u00e0 potrebbe disturbare il filamento appena depositato. Limitare i cambi di velocit\u00e0 della testa di stampa relativamente alla stampa riduce il rischio di rovinare la stampa. \u00c8 anche importante limitare l'accelerazione in modo da evitare che i motori stepper perdano passi e per ridurre le sollecitazioni alla macchina. Klipper limita la coppia su ciascuno stepper mediante la limitazione dell'accelerazione sulla testina di stampa. Imporre l'accelerazione alla testa di stampa ha la conseguenza naturale di limitare la coppia degli stepper che la muovono (l'inverso non \u00e8 sempre vero). Klipper implementa l'accelerazione costante. La formula chiave per l'accelerazione costante \u00e8: velocit\u00e0(tempo) = velocit\u00e0_inizio + accelerazione*tempo Generatore di trapezoide \u00b6 Klipper utilizza un \"generatore di trapezoide\" di tipo tradizionale per modellare il movimento - ogni movimento ha una velocit\u00e0 iniziale, accelera verso la velocit\u00e0 di crociera ad accelerazione costante, prosegue a velocit\u00e0 costante ed infine decelera fino alla velocit\u00e0 finale ad accelerazione costante. Viene detto \"generatore di trapezoide\" perch\u00e9 il diagramma di velocit\u00e0 del movimento sembra un trapezoide. La velocit\u00e0 di crociera \u00e8 sempre maggiore o uguale sia alla velocit\u00e0 iniziale che a quella finale. La fase di accelerazione potrebbe avere durata zero (se la velocit\u00e0 iniziale \u00e8 uguale alla velocit\u00e0 di crociera), la fase di movimento a valocit\u00e0 costante potrebbe avere durata zero (se il movimento inizia a decelerare subito l'accelerazione) e/o la fase di decelerazione potrebbe avere durata zero (se la velocit\u00e0 finale \u00e8 uguale alla velocit\u00e0 di crociera). Look-ahead (Precalcolo) \u00b6 Il sistema di \"look-ahead\" (precalcolo) \u00e8 usato per determinare le velocit\u00e0 nelle giunzioni tra movimenti (cornering speed). Consideriamo questi due movimenti sul piano XY: Nella situazione sopra descritta \u00e8 possibile decelerare completamente dopo il primo movimento e poi accelerare all'inizio del movimento successivo; per\u00f2 questo non \u00e8 un comportamento ideale dato che continue accelerazioni e decelerazioni aumentano il tempo di stampa e continue variazioni nel flusso dell'estrusore peggiorano la qualit\u00e0 di stampa. Per risolvere questo problema, la funzione \"look-ahead\" (precalcolo) accoda i movimenti da eseguire ed analizza gli angoli tra essi per calcolare la velocit\u00e0 da usare nella giunzione tra due movimenti. Se il prossimo movimento \u00e8 all'incirca nella stessa direzione del precedente, la testina di stampa deve rallentare molto poco (se non per nulla). Se per\u00f2 il prossimo movimento forma un angolo acuto (la testina deve praticamente invertire la direzione di marcia), la velocit\u00e0 alla giunzione sar\u00e0 piccola. Le velocit\u00e0 di giunzione sono determinate utilizzando \"accelerazione centripeta approssimata\". Meglio su descritto dall'autore . Tuttavia, in Klipper, le velocit\u00e0 di giunzione sono configurate specificando la velocit\u00e0 desiderata che dovrebbe avere un angolo di 90\u00b0 (la \"velocit\u00e0 dell'angolo retto\") e da quella vengono derivate le velocit\u00e0 di giunzione per altri angoli. Formula chiave per il look-ahead: velocit\u00e0_finale^2 = velocit\u00e0_iniziale^2 + 2*accelerazione*distanza_movimento Look-ahead ammorbidito \u00b6 Klipper implementa anche un meccanismo per smussare i movimenti di brevi movimenti a \"zigzag\". Considera i seguenti movimenti: In quanto sopra, i frequenti passaggi dall'accelerazione alla decelerazione possono causare vibrazioni della macchina che provocano sollecitazioni e aumentano la rumorosit\u00e0. Per ridurre questo, Klipper tiene traccia sia dell'accelerazione di movimento regolare che di una velocit\u00e0 virtuale di \"accelerazione alla decelerazione\". Utilizzando questo sistema, la velocit\u00e0 massima di questi brevi movimenti a \"zigzag\" \u00e8 limitata per rendere pi\u00f9 fluido il movimento della stampante: In particolare, il codice calcola quale sarebbe la velocit\u00e0 di ogni mossa se fosse limitata a questa velocit\u00e0 di \"accelerazione alla decelerazione\" virtuale (la met\u00e0 della velocit\u00e0 di accelerazione normale per impostazione predefinita). Nell'immagine sopra le linee grigie tratteggiate rappresentano questa velocit\u00e0 di accelerazione virtuale per il primo movimento. Se un movimento non pu\u00f2 raggiungere la sua piena velocit\u00e0 di crociera usando questa velocit\u00e0 di accelerazione virtuale, la sua velocit\u00e0 massima viene ridotta alla velocit\u00e0 massima che potrebbe ottenere a questa velocit\u00e0 di accelerazione virtuale. Per la maggior parte dei movimenti il limite sar\u00e0 pari o superiore ai limiti esistenti del movimento e non verr\u00e0 indotto alcun cambiamento nel comportamento. Per brevi movimenti a zigzag, tuttavia, questo limite riduce la velocit\u00e0 massima. Nota che non cambia l'accelerazione effettiva all'interno del movimento: Il movimento continua a utilizzare lo schema di accelerazione normale fino alla sua velocit\u00e0 massima regolata. Generazione di passi \u00b6 Una volta completato il processo di look-ahead, il movimento della testina di stampa per il dato spostamento \u00e8 completamente noto (tempo, posizione iniziale, posizione finale, velocit\u00e0 in ogni punto) ed \u00e8 possibile generare i tempi di passaggio per lo spostamento. Questo processo viene eseguito all'interno di \"classi cinematiche\" nel codice di Klipper. Al di fuori di queste classi cinematiche, tutto viene tracciato in millimetri, secondi e nello spazio delle coordinate cartesiane. \u00c8 compito delle classi cinematiche convertire da questo sistema di coordinate generico alle specifiche hardware di una particolare stampante. Klipper utilizza un risolutore iterativo per generare i tempi dei passo per ogni stepper. Il codice contiene le formule per calcolare le coordinate cartesiane ideali della testa in ogni momento e ha le formule cinematiche per calcolare le posizioni ideali dello stepper in base a quelle coordinate cartesiane. Con queste formule, Klipper pu\u00f2 determinare il tempo ideale in cui lo stepper dovrebbe trovarsi in ogni posizione del passo. I passaggi indicati vengono quindi programmati in questi orari calcolati. La formula chiave per determinare la distanza che un movimento deve percorrere con un'accelerazione costante \u00e8: distanza_movimento = (velocita_iniziale + .5 * accelerazione *durata_movimento) * durata_movimento e la formula chiave per il movimento a velocit\u00e0 costante \u00e8: distanza_movimento = velocit\u00e0_crociera * durata_movimento Le formule chiave per determinare la coordinata cartesiana di un movimento data una distanza di movimento sono: cartesian_x_position = start_x + move_distance * total_x_movement / total_movement cartesian_y_position = start_y + move_distance * total_y_movement / total_movement cartesian_z_position = start_z + move_distance * total_z_movement / total_movement Robot Cartesiani \u00b6 La generazione di passaggi per stampanti cartesiane \u00e8 il caso pi\u00f9 semplice. Il movimento su ciascun asse \u00e8 direttamente correlato al movimento nello spazio cartesiano. Formule chiave: stepper_x_position = cartesian_x_position stepper_y_position = cartesian_y_position stepper_z_position = cartesian_z_position Robot CoreXY \u00b6 La generazione di passaggi su una macchina CoreXY \u00e8 solo un po' pi\u00f9 complessa dei robot cartesiani di base. Le formule chiave sono: stepper_a_position = cartesian_x_position + cartesian_y_position stepper_b_position = cartesian_x_position - cartesian_y_position stepper_z_position = cartesian_z_position Robot Delta \u00b6 La generazione di passi su un robot delta si basa sul teorema di Pitagora: stepper_position = (sqrt(arm_length^2 - (cartesian_x_position - tower_x_position)^2 - (cartesian_y_position - tower_y_position)^2) + cartesian_z_position) Limiti di accelerazione del motore passo-passo \u00b6 Con la cinematica delta \u00e8 possibile che un movimento che sta accelerando nello spazio cartesiano richieda un'accelerazione su un particolare motore passo-passo maggiore dell'accelerazione del movimento. Ci\u00f2 pu\u00f2 verificarsi quando un braccio dello stepper \u00e8 pi\u00f9 orizzontale che verticale e la linea di movimento passa vicino alla torre dello stepper. Sebbene questi movimenti possano richiedere un'accelerazione del motore passo-passo maggiore dell'accelerazione di movimento massima configurata della stampante, la massa effettiva spostata da quel passo-passo sarebbe inferiore. Pertanto la maggiore accelerazione stepper non si traduce in una coppia stepper significativamente pi\u00f9 elevata ed \u00e8 quindi considerata innocua. Tuttavia, per evitare casi estremi, Klipper impone un limite massimo all'accelerazione stepper di tre volte l'accelerazione di movimento massima configurata della stampante. (Allo stesso modo, la velocit\u00e0 massima dello stepper \u00e8 limitata a tre volte la velocit\u00e0 massima di spostamento.) Per far rispettare questo limite, i movimenti sul bordo estremo dell'inviluppo (dove un braccio dello stepper pu\u00f2 essere quasi orizzontale) avranno un massima accelerazione e velocit\u00e0. Cinematica dell'estrusore \u00b6 Klipper implementa il movimento dell'estrusore nella propria classe cinematica. Poich\u00e9 i tempi e la velocit\u00e0 di ogni movimento della testina di stampa sono completamente noti per ogni movimento, \u00e8 possibile calcolare i tempi di passaggio per l'estrusore indipendentemente dai calcoli del tempo di passaggio del movimento della testina di stampa. Il movimento di base dell'estrusore \u00e8 semplice da calcolare. La generazione del tempo di passaggio utilizza le stesse formule utilizzate dai robot cartesiani: stepper_position = requested_e_position Anticipo di pressione \u00b6 La sperimentazione ha dimostrato che \u00e8 possibile migliorare la modellazione dell'estrusore oltre la formula di base dell'estrusore. Nel caso ideale, mentre un movimento di estrusione avanza, lo stesso volume di filamento dovrebbe essere depositato in ogni punto lungo il movimento e non dovrebbe esserci volume estruso dopo il movimento. Sfortunatamente, \u00e8 comune scoprire che le formule di estrusione di base fanno s\u00ec che una quantit\u00e0 insufficiente di filamento fuoriesca dall'estrusore all'inizio dei movimenti di estrusione e che il filamento in eccesso venga estruso al termine dell'estrusione. Questo \u00e8 spesso indicato come \"melma\" \"ooze\". Il sistema di \"pressure advance\" tenta di spiegare ci\u00f2 utilizzando un modello diverso per l'estrusore. Invece di credere ingenuamente che ogni mm^3 di filamento alimentato nell'estrusore comporter\u00e0 l'uscita immediata di quella quantit\u00e0 di mm^3 dall'estrusore, utilizza un modello basato sulla pressione. La pressione aumenta quando il filamento viene spinto nell'estrusore (come in Legge di Hook ) e la pressione necessaria per estrudere \u00e8 dominata dalla portata attraverso l'orifizio dell'ugello (come nella legge di Poiseuille ). L'idea chiave \u00e8 che la relazione tra filamento, pressione e portata pu\u00f2 essere modellata utilizzando un coefficiente lineare: pa_position = nominal_position + pressure_advance_coefficient * nominal_velocity Per informazioni su come trovare questo coefficiente di anticipo della pressione, vedere il documento Pressure Advance . La formula di base del pressure advance pu\u00f2 far s\u00ec che il motore dell'estrusore apporti improvvisi cambiamenti di velocit\u00e0. Klipper implementa la \"smussatura\" del movimento dell'estrusore per evitarlo. Il grafico sopra mostra un esempio di due movimenti di estrusione con una velocit\u00e0 in curva diversa da zero tra di loro. Si noti che il sistema di pressure advance fa s\u00ec che il filamento aggiuntivo venga spinto nell'estrusore durante l'accelerazione. Maggiore \u00e8 la portata del filamento desiderata, pi\u00f9 filamento deve essere spinto durante l'accelerazione per tenere conto della pressione. Durante la decelerazione della testa il filamento extra viene retratto (l'estrusore avr\u00e0 una velocit\u00e0 negativa). Lo \"smussamento\" viene implementato utilizzando una media pesata della posizione dell'estrusore in un breve periodo di tempo (come specificato dal parametro di configurazione pressure_advance_smooth_time ). Questa media pu\u00f2 estendersi su pi\u00f9 mosse del codice G. Notare come il motore dell'estrusore inizier\u00e0 a muoversi prima dell'inizio nominale del primo movimento di estrusione e continuer\u00e0 a muoversi dopo la fine nominale dell'ultimo movimento di estrusione. Formula chiave per \"smoothed pressure advance\": smooth_pa_position(t) = ( definitive_integral(pa_position(x) * (smooth_time/2 - abs(t - x)) * dx, from=t-smooth_time/2, to=t+smooth_time/2) / (smooth_time/2)^2 )","title":"Cinematica"},{"location":"Kinematics.html#cinematica","text":"Questo documento \u00e8 una panoramica su come Klipper implementa la movimentazione del sistema meccanico(la sua cinematica ). Questi contenuti potrebbero interessare sia gli sviluppatori che intendono lacorare sul software Klipper che gli utenti che desiderano comprendere meglio il funzionamento delle proprie macchine.","title":"Cinematica"},{"location":"Kinematics.html#accelerazione","text":"Klipper utilizza uno schema ad accelerazione costrante ogni qualvolta la testa di stampa cambia velocit\u00e0 - la velocit\u00e0 viene gradualmente variata fino a raggiungere la nuova velocit\u00e0 invece di strattonare direttamente alla nuova velocit\u00e0. Klipper mantiene sempre l'accelerazione tra la testa di stampa e la stampa. Il filamento in uscita dall'ugello pu\u00f2 essere piuttosto fragile, rapidi sobbalzi e/o cambi di flusso di estrusione portano a cattiva qualit\u00e0 di stampa e bassa adesione al piano di stampa. Anche quando non viene estruso filamento, se l'ugello si trova allo stesso livello della stampa, un repentino cambio di velocit\u00e0 potrebbe disturbare il filamento appena depositato. Limitare i cambi di velocit\u00e0 della testa di stampa relativamente alla stampa riduce il rischio di rovinare la stampa. \u00c8 anche importante limitare l'accelerazione in modo da evitare che i motori stepper perdano passi e per ridurre le sollecitazioni alla macchina. Klipper limita la coppia su ciascuno stepper mediante la limitazione dell'accelerazione sulla testina di stampa. Imporre l'accelerazione alla testa di stampa ha la conseguenza naturale di limitare la coppia degli stepper che la muovono (l'inverso non \u00e8 sempre vero). Klipper implementa l'accelerazione costante. La formula chiave per l'accelerazione costante \u00e8: velocit\u00e0(tempo) = velocit\u00e0_inizio + accelerazione*tempo","title":"Accelerazione"},{"location":"Kinematics.html#generatore-di-trapezoide","text":"Klipper utilizza un \"generatore di trapezoide\" di tipo tradizionale per modellare il movimento - ogni movimento ha una velocit\u00e0 iniziale, accelera verso la velocit\u00e0 di crociera ad accelerazione costante, prosegue a velocit\u00e0 costante ed infine decelera fino alla velocit\u00e0 finale ad accelerazione costante. Viene detto \"generatore di trapezoide\" perch\u00e9 il diagramma di velocit\u00e0 del movimento sembra un trapezoide. La velocit\u00e0 di crociera \u00e8 sempre maggiore o uguale sia alla velocit\u00e0 iniziale che a quella finale. La fase di accelerazione potrebbe avere durata zero (se la velocit\u00e0 iniziale \u00e8 uguale alla velocit\u00e0 di crociera), la fase di movimento a valocit\u00e0 costante potrebbe avere durata zero (se il movimento inizia a decelerare subito l'accelerazione) e/o la fase di decelerazione potrebbe avere durata zero (se la velocit\u00e0 finale \u00e8 uguale alla velocit\u00e0 di crociera).","title":"Generatore di trapezoide"},{"location":"Kinematics.html#look-ahead-precalcolo","text":"Il sistema di \"look-ahead\" (precalcolo) \u00e8 usato per determinare le velocit\u00e0 nelle giunzioni tra movimenti (cornering speed). Consideriamo questi due movimenti sul piano XY: Nella situazione sopra descritta \u00e8 possibile decelerare completamente dopo il primo movimento e poi accelerare all'inizio del movimento successivo; per\u00f2 questo non \u00e8 un comportamento ideale dato che continue accelerazioni e decelerazioni aumentano il tempo di stampa e continue variazioni nel flusso dell'estrusore peggiorano la qualit\u00e0 di stampa. Per risolvere questo problema, la funzione \"look-ahead\" (precalcolo) accoda i movimenti da eseguire ed analizza gli angoli tra essi per calcolare la velocit\u00e0 da usare nella giunzione tra due movimenti. Se il prossimo movimento \u00e8 all'incirca nella stessa direzione del precedente, la testina di stampa deve rallentare molto poco (se non per nulla). Se per\u00f2 il prossimo movimento forma un angolo acuto (la testina deve praticamente invertire la direzione di marcia), la velocit\u00e0 alla giunzione sar\u00e0 piccola. Le velocit\u00e0 di giunzione sono determinate utilizzando \"accelerazione centripeta approssimata\". Meglio su descritto dall'autore . Tuttavia, in Klipper, le velocit\u00e0 di giunzione sono configurate specificando la velocit\u00e0 desiderata che dovrebbe avere un angolo di 90\u00b0 (la \"velocit\u00e0 dell'angolo retto\") e da quella vengono derivate le velocit\u00e0 di giunzione per altri angoli. Formula chiave per il look-ahead: velocit\u00e0_finale^2 = velocit\u00e0_iniziale^2 + 2*accelerazione*distanza_movimento","title":"Look-ahead (Precalcolo)"},{"location":"Kinematics.html#look-ahead-ammorbidito","text":"Klipper implementa anche un meccanismo per smussare i movimenti di brevi movimenti a \"zigzag\". Considera i seguenti movimenti: In quanto sopra, i frequenti passaggi dall'accelerazione alla decelerazione possono causare vibrazioni della macchina che provocano sollecitazioni e aumentano la rumorosit\u00e0. Per ridurre questo, Klipper tiene traccia sia dell'accelerazione di movimento regolare che di una velocit\u00e0 virtuale di \"accelerazione alla decelerazione\". Utilizzando questo sistema, la velocit\u00e0 massima di questi brevi movimenti a \"zigzag\" \u00e8 limitata per rendere pi\u00f9 fluido il movimento della stampante: In particolare, il codice calcola quale sarebbe la velocit\u00e0 di ogni mossa se fosse limitata a questa velocit\u00e0 di \"accelerazione alla decelerazione\" virtuale (la met\u00e0 della velocit\u00e0 di accelerazione normale per impostazione predefinita). Nell'immagine sopra le linee grigie tratteggiate rappresentano questa velocit\u00e0 di accelerazione virtuale per il primo movimento. Se un movimento non pu\u00f2 raggiungere la sua piena velocit\u00e0 di crociera usando questa velocit\u00e0 di accelerazione virtuale, la sua velocit\u00e0 massima viene ridotta alla velocit\u00e0 massima che potrebbe ottenere a questa velocit\u00e0 di accelerazione virtuale. Per la maggior parte dei movimenti il limite sar\u00e0 pari o superiore ai limiti esistenti del movimento e non verr\u00e0 indotto alcun cambiamento nel comportamento. Per brevi movimenti a zigzag, tuttavia, questo limite riduce la velocit\u00e0 massima. Nota che non cambia l'accelerazione effettiva all'interno del movimento: Il movimento continua a utilizzare lo schema di accelerazione normale fino alla sua velocit\u00e0 massima regolata.","title":"Look-ahead ammorbidito"},{"location":"Kinematics.html#generazione-di-passi","text":"Una volta completato il processo di look-ahead, il movimento della testina di stampa per il dato spostamento \u00e8 completamente noto (tempo, posizione iniziale, posizione finale, velocit\u00e0 in ogni punto) ed \u00e8 possibile generare i tempi di passaggio per lo spostamento. Questo processo viene eseguito all'interno di \"classi cinematiche\" nel codice di Klipper. Al di fuori di queste classi cinematiche, tutto viene tracciato in millimetri, secondi e nello spazio delle coordinate cartesiane. \u00c8 compito delle classi cinematiche convertire da questo sistema di coordinate generico alle specifiche hardware di una particolare stampante. Klipper utilizza un risolutore iterativo per generare i tempi dei passo per ogni stepper. Il codice contiene le formule per calcolare le coordinate cartesiane ideali della testa in ogni momento e ha le formule cinematiche per calcolare le posizioni ideali dello stepper in base a quelle coordinate cartesiane. Con queste formule, Klipper pu\u00f2 determinare il tempo ideale in cui lo stepper dovrebbe trovarsi in ogni posizione del passo. I passaggi indicati vengono quindi programmati in questi orari calcolati. La formula chiave per determinare la distanza che un movimento deve percorrere con un'accelerazione costante \u00e8: distanza_movimento = (velocita_iniziale + .5 * accelerazione *durata_movimento) * durata_movimento e la formula chiave per il movimento a velocit\u00e0 costante \u00e8: distanza_movimento = velocit\u00e0_crociera * durata_movimento Le formule chiave per determinare la coordinata cartesiana di un movimento data una distanza di movimento sono: cartesian_x_position = start_x + move_distance * total_x_movement / total_movement cartesian_y_position = start_y + move_distance * total_y_movement / total_movement cartesian_z_position = start_z + move_distance * total_z_movement / total_movement","title":"Generazione di passi"},{"location":"Kinematics.html#robot-cartesiani","text":"La generazione di passaggi per stampanti cartesiane \u00e8 il caso pi\u00f9 semplice. Il movimento su ciascun asse \u00e8 direttamente correlato al movimento nello spazio cartesiano. Formule chiave: stepper_x_position = cartesian_x_position stepper_y_position = cartesian_y_position stepper_z_position = cartesian_z_position","title":"Robot Cartesiani"},{"location":"Kinematics.html#robot-corexy","text":"La generazione di passaggi su una macchina CoreXY \u00e8 solo un po' pi\u00f9 complessa dei robot cartesiani di base. Le formule chiave sono: stepper_a_position = cartesian_x_position + cartesian_y_position stepper_b_position = cartesian_x_position - cartesian_y_position stepper_z_position = cartesian_z_position","title":"Robot CoreXY"},{"location":"Kinematics.html#robot-delta","text":"La generazione di passi su un robot delta si basa sul teorema di Pitagora: stepper_position = (sqrt(arm_length^2 - (cartesian_x_position - tower_x_position)^2 - (cartesian_y_position - tower_y_position)^2) + cartesian_z_position)","title":"Robot Delta"},{"location":"Kinematics.html#limiti-di-accelerazione-del-motore-passo-passo","text":"Con la cinematica delta \u00e8 possibile che un movimento che sta accelerando nello spazio cartesiano richieda un'accelerazione su un particolare motore passo-passo maggiore dell'accelerazione del movimento. Ci\u00f2 pu\u00f2 verificarsi quando un braccio dello stepper \u00e8 pi\u00f9 orizzontale che verticale e la linea di movimento passa vicino alla torre dello stepper. Sebbene questi movimenti possano richiedere un'accelerazione del motore passo-passo maggiore dell'accelerazione di movimento massima configurata della stampante, la massa effettiva spostata da quel passo-passo sarebbe inferiore. Pertanto la maggiore accelerazione stepper non si traduce in una coppia stepper significativamente pi\u00f9 elevata ed \u00e8 quindi considerata innocua. Tuttavia, per evitare casi estremi, Klipper impone un limite massimo all'accelerazione stepper di tre volte l'accelerazione di movimento massima configurata della stampante. (Allo stesso modo, la velocit\u00e0 massima dello stepper \u00e8 limitata a tre volte la velocit\u00e0 massima di spostamento.) Per far rispettare questo limite, i movimenti sul bordo estremo dell'inviluppo (dove un braccio dello stepper pu\u00f2 essere quasi orizzontale) avranno un massima accelerazione e velocit\u00e0.","title":"Limiti di accelerazione del motore passo-passo"},{"location":"Kinematics.html#cinematica-dellestrusore","text":"Klipper implementa il movimento dell'estrusore nella propria classe cinematica. Poich\u00e9 i tempi e la velocit\u00e0 di ogni movimento della testina di stampa sono completamente noti per ogni movimento, \u00e8 possibile calcolare i tempi di passaggio per l'estrusore indipendentemente dai calcoli del tempo di passaggio del movimento della testina di stampa. Il movimento di base dell'estrusore \u00e8 semplice da calcolare. La generazione del tempo di passaggio utilizza le stesse formule utilizzate dai robot cartesiani: stepper_position = requested_e_position","title":"Cinematica dell'estrusore"},{"location":"Kinematics.html#anticipo-di-pressione","text":"La sperimentazione ha dimostrato che \u00e8 possibile migliorare la modellazione dell'estrusore oltre la formula di base dell'estrusore. Nel caso ideale, mentre un movimento di estrusione avanza, lo stesso volume di filamento dovrebbe essere depositato in ogni punto lungo il movimento e non dovrebbe esserci volume estruso dopo il movimento. Sfortunatamente, \u00e8 comune scoprire che le formule di estrusione di base fanno s\u00ec che una quantit\u00e0 insufficiente di filamento fuoriesca dall'estrusore all'inizio dei movimenti di estrusione e che il filamento in eccesso venga estruso al termine dell'estrusione. Questo \u00e8 spesso indicato come \"melma\" \"ooze\". Il sistema di \"pressure advance\" tenta di spiegare ci\u00f2 utilizzando un modello diverso per l'estrusore. Invece di credere ingenuamente che ogni mm^3 di filamento alimentato nell'estrusore comporter\u00e0 l'uscita immediata di quella quantit\u00e0 di mm^3 dall'estrusore, utilizza un modello basato sulla pressione. La pressione aumenta quando il filamento viene spinto nell'estrusore (come in Legge di Hook ) e la pressione necessaria per estrudere \u00e8 dominata dalla portata attraverso l'orifizio dell'ugello (come nella legge di Poiseuille ). L'idea chiave \u00e8 che la relazione tra filamento, pressione e portata pu\u00f2 essere modellata utilizzando un coefficiente lineare: pa_position = nominal_position + pressure_advance_coefficient * nominal_velocity Per informazioni su come trovare questo coefficiente di anticipo della pressione, vedere il documento Pressure Advance . La formula di base del pressure advance pu\u00f2 far s\u00ec che il motore dell'estrusore apporti improvvisi cambiamenti di velocit\u00e0. Klipper implementa la \"smussatura\" del movimento dell'estrusore per evitarlo. Il grafico sopra mostra un esempio di due movimenti di estrusione con una velocit\u00e0 in curva diversa da zero tra di loro. Si noti che il sistema di pressure advance fa s\u00ec che il filamento aggiuntivo venga spinto nell'estrusore durante l'accelerazione. Maggiore \u00e8 la portata del filamento desiderata, pi\u00f9 filamento deve essere spinto durante l'accelerazione per tenere conto della pressione. Durante la decelerazione della testa il filamento extra viene retratto (l'estrusore avr\u00e0 una velocit\u00e0 negativa). Lo \"smussamento\" viene implementato utilizzando una media pesata della posizione dell'estrusore in un breve periodo di tempo (come specificato dal parametro di configurazione pressure_advance_smooth_time ). Questa media pu\u00f2 estendersi su pi\u00f9 mosse del codice G. Notare come il motore dell'estrusore inizier\u00e0 a muoversi prima dell'inizio nominale del primo movimento di estrusione e continuer\u00e0 a muoversi dopo la fine nominale dell'ultimo movimento di estrusione. Formula chiave per \"smoothed pressure advance\": smooth_pa_position(t) = ( definitive_integral(pa_position(x) * (smooth_time/2 - abs(t - x)) * dx, from=t-smooth_time/2, to=t+smooth_time/2) / (smooth_time/2)^2 )","title":"Anticipo di pressione"},{"location":"MCU_Commands.html","text":"Comandi MCU \u00b6 Questo documento fornisce informazioni sui comandi di basso livello del microcontrollore che sono inviati dal software \"host\" Klipper e processati dal software del microcontrollore Klipper. Questo documento non \u00e8 un riferimento autorevole per questi comandi, n\u00e9 una lista esclusiva di tutti i comandi disponibili. Questo documento pu\u00f2 essere utile per gli sviluppatori interessati a comprendere i comandi di basso livello del microcontrollore. Vedere il documento protocol per ulteriori informazioni sul formato dei comandi e sulla loro trasmissione. I comandi qui sono descritti usando la loro sintassi di stile \"printf\" - per chi non ha familiarit\u00e0 con quel formato, basta notare che dove si vede una sequenza '%...' dovrebbe essere sostituita con un intero reale. Ad esempio, una descrizione con \"count=%c\" potrebbe essere sostituita con il testo \"count=10\". Si noti che i parametri considerati \"enumerazioni\" (vedere il documento di protocollo sopra) assumono un valore stringa che viene automaticamente convertito in un valore intero per il microcontrollore. Questo \u00e8 comune con i parametri denominati \"pin\" (o che hanno il suffisso \"_pin\"). Comandi di avvio \u00b6 Potrebbe essere necessario eseguire determinate azioni una tantum per configurare il microcontrollore e le sue periferiche. Questa sezione elenca i comandi comuni disponibili a tale scopo. A differenza della maggior parte dei comandi del microcontrollore, questi comandi vengono eseguiti non appena vengono ricevuti e non richiedono alcuna configurazione particolare. Comandi di avvio comuni: set_digital_out pin=%u value=%c : Questo comando configura immediatamente il pin dato come un GPIO di uscita digitale e lo imposta su un livello basso (valore=0) o alto (valore=1). Questo comando pu\u00f2 essere utile per configurare il valore iniziale dei LED e per configurare il valore iniziale dei pin micro-stepping del driver stepper. set_pwm_out pin=%u cycle_ticks=%u value=%hu : Questo comando configurer\u00e0 immediatamente il pin dato per utilizzare la modulazione di larghezza di impulso (PWM) basata sull'hardware con il numero specificato di cycle_tick. Il \"cycle_ticks\" \u00e8 il numero di tick di clock dell'MCU per cui ogni ciclo di accensione e spegnimento dovrebbe durare. \u00c8 possibile utilizzare un valore cycle_ticks pari a 1 per richiedere il tempo di ciclo pi\u00f9 rapido possibile. Il parametro \"value\" \u00e8 compreso tra 0 e 255 con 0 che indica uno stato completamente spento e 255 indica uno stato completamente acceso. Questo comando pu\u00f2 essere utile per abilitare le ventole di raffreddamento della CPU e degli ugelli. Configurazione di basso livello del microcontrollore \u00b6 La maggior parte dei comandi nel microcontrollore richiede una configurazione iniziale prima di poter essere richiamati correttamente. Questa sezione fornisce una panoramica del processo di configurazione. Questa sezione e le sezioni seguenti sono probabilmente di interesse solo per gli sviluppatori interessati ai dettagli interni di Klipper. Quando l'host si connette per la prima volta al microcontrollore, inizia sempre ottenendo un dizionario di dati (vedi protocol per ulteriori informazioni). Dopo aver ottenuto il dizionario dei dati, l'host verificher\u00e0 se il microcontrollore \u00e8 in uno stato \"configurato\" e in caso contrario lo configurer\u00e0. La configurazione prevede le seguenti fasi: get_config : L'host si avvia controllando se il microcontrollore \u00e8 gi\u00e0 configurato. Il microcontrollore risponde a questo comando con un messaggio di risposta \"config\". Il software del microcontrollore si avvia sempre in uno stato non configurato all'accensione. Rimane in questo stato fino a quando l'host non completa i processi di configurazione (emettendo un comando finalize_config). Se il microcontrollore \u00e8 gi\u00e0 configurato da una sessione precedente (ed \u00e8 configurato con le impostazioni desiderate), non sono necessarie ulteriori azioni da parte dell'host e il processo di configurazione termina correttamente. allocate_oids count=%c : Questo comando viene emesso per informare il microcontrollore del numero massimo di ID oggetto (oid) che l'host richiede. \u00c8 valido solo per emettere questo comando una volta. Un oid \u00e8 un identificatore intero allocato a ogni stepper, ogni endstop e ogni pin gpio schedulabile. L'host determina in anticipo il numero di oid necessari per far funzionare l'hardware e lo passa al microcontrollore in modo che possa allocare memoria sufficiente per memorizzare una mappatura dall'oid all'oggetto interno. config_XXX oid=%c ... : Per convenzione qualsiasi comando che inizia con il prefisso \"config_\" crea un nuovo oggetto microcontrollore e gli assegna l'oid dato. Ad esempio, il comando config_digital_out configurer\u00e0 il pin specificato come GPIO di output digitale e creer\u00e0 un oggetto interno che l'host pu\u00f2 utilizzare per pianificare le modifiche al GPIO specificato. Il parametro oid passato al comando config viene selezionato dall'host e deve essere compreso tra zero e il conteggio massimo fornito nel comando allocate_oids. I comandi di configurazione possono essere eseguiti solo quando il microcontrollore non \u00e8 in uno stato configurato (cio\u00e8 prima dell'invio da parte dell'host di finalize_config) e dopo che \u00e8 stato inviato il comando allocate_oids. finalize_config crc=%u : Il comando finalize_config trasferisce il microcontrollore da uno stato non configurato a uno stato configurato. Il parametro crc passato al microcontrollore viene archiviato e restituito all'host nei messaggi di risposta \"config\". Per convenzione, l'host prende un CRC a 32bit della configurazione che richieder\u00e0 e all'avvio delle successive sessioni di comunicazione verifica che il CRC memorizzato nel microcontrollore corrisponda esattamente al CRC desiderato. Se il CRC non corrisponde, l'host sa che il microcontrollore non \u00e8 stato configurato nello stato desiderato dall'host. Oggetti comuni del microcontrollore \u00b6 Questa sezione elenca alcuni comandi di configurazione comunemente usati. config_digital_out oid=%c pin=%u value=%c default_value=%c max_duration=%u : Questo comando crea un oggetto microcontrollore interno per il dato 'pin' GPIO. Il pin verr\u00e0 configurato in modalit\u00e0 di uscita digitale e impostato su un valore iniziale come specificato da 'value' (0 per basso, 1 per alto). La creazione di un oggetto digital_out consente all'host di pianificare gli aggiornamenti GPIO per il pin specificato a orari specificati (consultare il comando queue_digital_out descritto di seguito). Se il software del microcontrollore entra in modalit\u00e0 di spegnimento, tutti gli oggetti digital_out configurati verranno impostati su 'default_value'. Il parametro 'max_duration' viene utilizzato per implementare un controllo di sicurezza: se \u00e8 diverso da zero, \u00e8 il numero massimo di tick di clock che l'host pu\u00f2 impostare il GPIO specificato su un valore non predefinito senza ulteriori aggiornamenti. Ad esempio, se default_value \u00e8 zero e max_duration \u00e8 16000, se l'host imposta gpio su un valore di uno, deve pianificare un altro aggiornamento del pin gpio (su zero o su uno) entro 16000 tick di clock. Questa funzione di sicurezza pu\u00f2 essere utilizzata con i pin del riscaldatore per garantire che l'host non abiliti il riscaldatore e quindi vada offline. config_pwm_out oid=%c pin=%u cycle_ticks=%u value=%hu default_value=%hu max_duration=%u : Questo comando crea un oggetto interno per i pin PWM hardware per i quali l'host pu\u00f2 pianificare gli aggiornamenti. Il suo utilizzo \u00e8 analogo a config_digital_out - vedere la descrizione dei comandi 'set_pwm_out' e 'config_digital_out' per la descrizione dei parametri. config_analog_in oid=%c pin=%u : Questo comando viene utilizzato per configurare un pin nella modalit\u00e0 di campionamento analogico. Una volta configurato, il pin pu\u00f2 essere campionato a intervalli regolari utilizzando il comando query_analog_in (vedi sotto). config_stepper oid=%c step_pin=%c dir_pin=%c invert_step=%c step_pulse_ticks=%u : Questo comando crea un oggetto stepper interno. I parametri 'step_pin' e 'dir_pin' specificano rispettivamente i pin del passo e della direzione; questo comando li configurer\u00e0 in modalit\u00e0 uscita digitale. Il parametro 'invert_step' specifica se un passo si verifica su un fronte di salita (invert_step=0) o discendente (invert_step=1). Il parametro 'step_pulse_ticks' specifica la durata minima dell'impulso di passo. Se l'mcu esporta la costante 'STEPPER_BOTH_EDGE=1', l'impostazione di step_pulse_ticks=0 e invert_step=-1 imposter\u00e0 il passaggio su entrambi i fronti di salita e di discesa dello step pin. config_endstop oid=%c pin=%c pull_up=%c stepper_count=%c : Questo comando crea un oggetto \"finecorsa\" interno. Viene utilizzato per specificare i relativi pin e per abilitare le operazioni di \"homing\" (vedere il comando endstop_home di seguito). Il comando configurer\u00e0 il pin specificato nella modalit\u00e0 di input digitale. Il parametro 'pull_up' determina se i resistori pullup forniti dall'hardware per il pin (se disponibili) saranno abilitati. Il parametro 'stepper_count' specifica il numero massimo di stepper che potrebbe essere necessario arrestare questo endstop durante un'operazione di homing (vedere endstop_home di seguito). config_spi oid=%c bus=%u pin=%u mode=%u rate=%u shutdown_msg=%*s : Questo comando crea un oggetto SPI interno. Viene utilizzato con i comandi spi_transfer e spi_send (vedi sotto). Il \"bus\" identifica il bus SPI da utilizzare (se il microcontrollore ha pi\u00f9 di un bus SPI disponibile). Il \"pin\" specifica il pin di selezione del chip (CS) per il dispositivo. La \"modalit\u00e0\" \u00e8 la modalit\u00e0 SPI (dovrebbe essere compresa tra 0 e 3). Il parametro \"rate\" specifica la velocit\u00e0 del bus SPI (in cicli al secondo). Infine, \"shutdown_msg\" \u00e8 un comando SPI da inviare al dispositivo specificato se il microcontrollore entra in uno stato di spegnimento. config_spi_without_cs oid=%c bus=%u mode=%u rate=%u shutdown_msg=%*s : Questo comando \u00e8 simile a config_spi, ma senza una definizione di pin CS. \u00c8 utile per i dispositivi SPI che non dispongono di una linea di selezione del chip. Comandi comuni \u00b6 Questa sezione elenca alcuni comandi comunemente usati durante il run-time. \u00c8 probabilmente di interesse solo per gli sviluppatori che cercano di ottenere informazioni su Klipper. set_digital_out_pwm_cycle oid=%c cycle_ticks=%u : Questo comando configura un pin come uscita digitale (come creato da config_digital_out) per usare \"software PWM\". 'cycle_ticks' \u00e8 il numero di tick di clock per il ciclo PWM. Poich\u00e9 la commutazione dell'uscita \u00e8 implementata nel software del microcontrollore, si consiglia che 'cycle_ticks' corrisponda a un tempo di 10 ms o superiore. queue_digital_out oid=%c clock=%u on_ticks=%u : Questo comando pianificher\u00e0 una modifica a un pin GPIO dell'uscita digitale per un orario specifico. Per utilizzare questo comando \u00e8 necessario che durante la configurazione del microcontrollore sia stato emesso un comando 'config_digital_out' con lo stesso parametro 'oid'. Se \u00e8 stato chiamato 'set_digital_out_pwm_cycle', allora 'on_ticks' \u00e8 la durata di attivazione (in tick di clock) per il ciclo pwm. Altrimenti, 'on_ticks' dovrebbe essere 0 (per bassa tensione) o 1 (per alta tensione). queue_pwm_out oid=%c clock=%u value=%hu : Pianifica una modifica a un pin di uscita PWM hardware. Per ulteriori informazioni, vedere i comandi 'queue_digital_out' e 'config_pwm_out'. query_analog_in oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u min_value=%hu max_value=%hu : Questo comando imposta una pianificazione ricorrente di campionamenti di un ingresso analogico. Per utilizzare questo comando \u00e8 necessario che durante la configurazione del microcontrollore sia stato emesso un comando 'config_analog_in' con lo stesso parametro 'oid'. I campioni inizieranno a partire dall'ora 'clock', riporter\u00e0 sul valore ottenuto ogni tick di clock 'rest_ticks', sovracampioner\u00e0 il numero di 'sample_count' e metter\u00e0 in pausa il numero di tick di clock 'sample_ticks' tra i sovacampionamenti. I parametri 'min_value' e 'max_value' implementano una funzione di sicurezza: il software del microcontrollore verificher\u00e0 che il valore campionato (dopo qualsiasi sovracampionamento) sia sempre compreso nell'intervallo fornito. Questo \u00e8 destinato all'uso con pin collegati a termistori che controllano i riscaldatori: pu\u00f2 essere utilizzato per verificare che un riscaldatore rientri in un intervallo di temperatura. get_clock : Questo comando fa s\u00ec che il microcontrollore generi un messaggio di risposta \"clock\". L'host invia questo comando una volta al secondo per ottenere il valore dell'orologio del microcontrollore e per stimare la deriva tra gli orologi dell'host e del microcontrollore. Consente all'host di stimare con precisione l'orologio del microcontrollore. Comandi motori passopasso \u00b6 queue_step oid=%c interval=%u count=%hu add=%hi : Questo comando pianifica il 'conteggio' del numero di passi per il dato stepper, con 'intervallo' il numero di tick di clock tra ogni passo. Il primo passo sar\u00e0 il numero \"intervallo\" di tick di clock dall'ultimo passo programmato per il dato stepper. Se 'add' \u00e8 diverso da zero, l'intervallo verr\u00e0 regolato in base all'importo di 'add' dopo ogni passaggio. Questo comando aggiunge la sequenza intervallo/conteggio/aggiunta data a una coda per stepper. Potrebbero esserci centinaia di queste sequenze in coda durante il normale funzionamento. La nuova sequenza viene aggiunta alla fine della coda e quando ogni sequenza completa il suo numero di \"conteggi\" di passaggi viene estratta dalla parte anteriore della coda. Questo sistema consente al microcontrollore di mettere in coda potenzialmente centinaia di migliaia di passaggi, il tutto con tempi di pianificazione affidabili e prevedibili. set_next_step_dir oid=%c dir=%c : Questo comando specifica il valore del dir_pin che verr\u00e0 utilizzato dal comando queue_step successivo. reset_step_clock oid=%c clock=%u : Normalmente, la temporizzazione del passo \u00e8 relativo all'ultimo passo per un dato stepper. Questo comando azzera l'orologio in modo che il passo successivo sia relativo all'ora fornita. L'host di solito invia questo comando solo all'inizio di una stampa. stepper_get_position oid=%c : Questo comando fa s\u00ec che il microcontrollore generi un messaggio di risposta \"stepper_position\" con la posizione corrente dello stepper. La posizione \u00e8 il numero totale di passi generati con dir=1 meno il numero totale di passi generati con dir=0. endstop_home oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u pin_value=%c : Questo comando viene utilizzato durante le operazioni di \"homing\" dello stepper. Per utilizzare questo comando \u00e8 necessario che durante la configurazione del microcontrollore sia stato emesso un comando 'config_endstop' con lo stesso parametro 'oid'. Quando viene invocato questo comando, il microcontrollore campiona il pin finecorsa ogni tick di clock \"rest_ticks\" e controlla se ha un valore uguale a \"pin_value\". Se il valore corrisponde (e continua a corrispondere per 'sample_count' campioni aggiuntivi separati da 'sample_ticks'), la coda di movimento per lo stepper associato verr\u00e0 cancellata e lo stepper si arrester\u00e0 immediatamente. L'host utilizza questo comando per implementare l'homing: l'host indica al finecorsa di eseguire il campionamento per il trigger endstop e quindi emette una serie di comandi queue_step per spostare uno stepper verso il finecorsa. Una volta che lo stepper raggiunge il finecorsa, il trigger verr\u00e0 rilevato, il movimento verr\u00e0 interrotto e l'host verr\u00e0 informato. Coda movimento \u00b6 Ogni comando queue_step utilizza una voce nella \"coda di movimento\" del microcontrollore. Questa coda viene allocata quando riceve il comando \"finalize_config\" e segnala il numero di voci di coda disponibili nei messaggi di risposta \"config\". \u00c8 responsabilit\u00e0 dell'host assicurarsi che ci sia spazio disponibile nella coda prima di inviare un comando queue_step. L'host esegue questa operazione calcolando il completamento di ciascun comando queue_step e pianificando di conseguenza i nuovi comandi queue_step. Comandi SPI \u00b6 spi_transfer oid=%c data=%*s : questo comando fa s\u00ec che il microcontrollore invii dati 'data' al dispositivo spi specificato da 'oid' e genera un messaggio di risposta \"spi_transfer_response\" con i dati restituiti durante la trasmissione . spi_send oid=%c data=%*s : Questo comando \u00e8 simile a \"spi_transfer\", ma non genera un messaggio \"spi_transfer_response\".","title":"Comandi MCU"},{"location":"MCU_Commands.html#comandi-mcu","text":"Questo documento fornisce informazioni sui comandi di basso livello del microcontrollore che sono inviati dal software \"host\" Klipper e processati dal software del microcontrollore Klipper. Questo documento non \u00e8 un riferimento autorevole per questi comandi, n\u00e9 una lista esclusiva di tutti i comandi disponibili. Questo documento pu\u00f2 essere utile per gli sviluppatori interessati a comprendere i comandi di basso livello del microcontrollore. Vedere il documento protocol per ulteriori informazioni sul formato dei comandi e sulla loro trasmissione. I comandi qui sono descritti usando la loro sintassi di stile \"printf\" - per chi non ha familiarit\u00e0 con quel formato, basta notare che dove si vede una sequenza '%...' dovrebbe essere sostituita con un intero reale. Ad esempio, una descrizione con \"count=%c\" potrebbe essere sostituita con il testo \"count=10\". Si noti che i parametri considerati \"enumerazioni\" (vedere il documento di protocollo sopra) assumono un valore stringa che viene automaticamente convertito in un valore intero per il microcontrollore. Questo \u00e8 comune con i parametri denominati \"pin\" (o che hanno il suffisso \"_pin\").","title":"Comandi MCU"},{"location":"MCU_Commands.html#comandi-di-avvio","text":"Potrebbe essere necessario eseguire determinate azioni una tantum per configurare il microcontrollore e le sue periferiche. Questa sezione elenca i comandi comuni disponibili a tale scopo. A differenza della maggior parte dei comandi del microcontrollore, questi comandi vengono eseguiti non appena vengono ricevuti e non richiedono alcuna configurazione particolare. Comandi di avvio comuni: set_digital_out pin=%u value=%c : Questo comando configura immediatamente il pin dato come un GPIO di uscita digitale e lo imposta su un livello basso (valore=0) o alto (valore=1). Questo comando pu\u00f2 essere utile per configurare il valore iniziale dei LED e per configurare il valore iniziale dei pin micro-stepping del driver stepper. set_pwm_out pin=%u cycle_ticks=%u value=%hu : Questo comando configurer\u00e0 immediatamente il pin dato per utilizzare la modulazione di larghezza di impulso (PWM) basata sull'hardware con il numero specificato di cycle_tick. Il \"cycle_ticks\" \u00e8 il numero di tick di clock dell'MCU per cui ogni ciclo di accensione e spegnimento dovrebbe durare. \u00c8 possibile utilizzare un valore cycle_ticks pari a 1 per richiedere il tempo di ciclo pi\u00f9 rapido possibile. Il parametro \"value\" \u00e8 compreso tra 0 e 255 con 0 che indica uno stato completamente spento e 255 indica uno stato completamente acceso. Questo comando pu\u00f2 essere utile per abilitare le ventole di raffreddamento della CPU e degli ugelli.","title":"Comandi di avvio"},{"location":"MCU_Commands.html#configurazione-di-basso-livello-del-microcontrollore","text":"La maggior parte dei comandi nel microcontrollore richiede una configurazione iniziale prima di poter essere richiamati correttamente. Questa sezione fornisce una panoramica del processo di configurazione. Questa sezione e le sezioni seguenti sono probabilmente di interesse solo per gli sviluppatori interessati ai dettagli interni di Klipper. Quando l'host si connette per la prima volta al microcontrollore, inizia sempre ottenendo un dizionario di dati (vedi protocol per ulteriori informazioni). Dopo aver ottenuto il dizionario dei dati, l'host verificher\u00e0 se il microcontrollore \u00e8 in uno stato \"configurato\" e in caso contrario lo configurer\u00e0. La configurazione prevede le seguenti fasi: get_config : L'host si avvia controllando se il microcontrollore \u00e8 gi\u00e0 configurato. Il microcontrollore risponde a questo comando con un messaggio di risposta \"config\". Il software del microcontrollore si avvia sempre in uno stato non configurato all'accensione. Rimane in questo stato fino a quando l'host non completa i processi di configurazione (emettendo un comando finalize_config). Se il microcontrollore \u00e8 gi\u00e0 configurato da una sessione precedente (ed \u00e8 configurato con le impostazioni desiderate), non sono necessarie ulteriori azioni da parte dell'host e il processo di configurazione termina correttamente. allocate_oids count=%c : Questo comando viene emesso per informare il microcontrollore del numero massimo di ID oggetto (oid) che l'host richiede. \u00c8 valido solo per emettere questo comando una volta. Un oid \u00e8 un identificatore intero allocato a ogni stepper, ogni endstop e ogni pin gpio schedulabile. L'host determina in anticipo il numero di oid necessari per far funzionare l'hardware e lo passa al microcontrollore in modo che possa allocare memoria sufficiente per memorizzare una mappatura dall'oid all'oggetto interno. config_XXX oid=%c ... : Per convenzione qualsiasi comando che inizia con il prefisso \"config_\" crea un nuovo oggetto microcontrollore e gli assegna l'oid dato. Ad esempio, il comando config_digital_out configurer\u00e0 il pin specificato come GPIO di output digitale e creer\u00e0 un oggetto interno che l'host pu\u00f2 utilizzare per pianificare le modifiche al GPIO specificato. Il parametro oid passato al comando config viene selezionato dall'host e deve essere compreso tra zero e il conteggio massimo fornito nel comando allocate_oids. I comandi di configurazione possono essere eseguiti solo quando il microcontrollore non \u00e8 in uno stato configurato (cio\u00e8 prima dell'invio da parte dell'host di finalize_config) e dopo che \u00e8 stato inviato il comando allocate_oids. finalize_config crc=%u : Il comando finalize_config trasferisce il microcontrollore da uno stato non configurato a uno stato configurato. Il parametro crc passato al microcontrollore viene archiviato e restituito all'host nei messaggi di risposta \"config\". Per convenzione, l'host prende un CRC a 32bit della configurazione che richieder\u00e0 e all'avvio delle successive sessioni di comunicazione verifica che il CRC memorizzato nel microcontrollore corrisponda esattamente al CRC desiderato. Se il CRC non corrisponde, l'host sa che il microcontrollore non \u00e8 stato configurato nello stato desiderato dall'host.","title":"Configurazione di basso livello del microcontrollore"},{"location":"MCU_Commands.html#oggetti-comuni-del-microcontrollore","text":"Questa sezione elenca alcuni comandi di configurazione comunemente usati. config_digital_out oid=%c pin=%u value=%c default_value=%c max_duration=%u : Questo comando crea un oggetto microcontrollore interno per il dato 'pin' GPIO. Il pin verr\u00e0 configurato in modalit\u00e0 di uscita digitale e impostato su un valore iniziale come specificato da 'value' (0 per basso, 1 per alto). La creazione di un oggetto digital_out consente all'host di pianificare gli aggiornamenti GPIO per il pin specificato a orari specificati (consultare il comando queue_digital_out descritto di seguito). Se il software del microcontrollore entra in modalit\u00e0 di spegnimento, tutti gli oggetti digital_out configurati verranno impostati su 'default_value'. Il parametro 'max_duration' viene utilizzato per implementare un controllo di sicurezza: se \u00e8 diverso da zero, \u00e8 il numero massimo di tick di clock che l'host pu\u00f2 impostare il GPIO specificato su un valore non predefinito senza ulteriori aggiornamenti. Ad esempio, se default_value \u00e8 zero e max_duration \u00e8 16000, se l'host imposta gpio su un valore di uno, deve pianificare un altro aggiornamento del pin gpio (su zero o su uno) entro 16000 tick di clock. Questa funzione di sicurezza pu\u00f2 essere utilizzata con i pin del riscaldatore per garantire che l'host non abiliti il riscaldatore e quindi vada offline. config_pwm_out oid=%c pin=%u cycle_ticks=%u value=%hu default_value=%hu max_duration=%u : Questo comando crea un oggetto interno per i pin PWM hardware per i quali l'host pu\u00f2 pianificare gli aggiornamenti. Il suo utilizzo \u00e8 analogo a config_digital_out - vedere la descrizione dei comandi 'set_pwm_out' e 'config_digital_out' per la descrizione dei parametri. config_analog_in oid=%c pin=%u : Questo comando viene utilizzato per configurare un pin nella modalit\u00e0 di campionamento analogico. Una volta configurato, il pin pu\u00f2 essere campionato a intervalli regolari utilizzando il comando query_analog_in (vedi sotto). config_stepper oid=%c step_pin=%c dir_pin=%c invert_step=%c step_pulse_ticks=%u : Questo comando crea un oggetto stepper interno. I parametri 'step_pin' e 'dir_pin' specificano rispettivamente i pin del passo e della direzione; questo comando li configurer\u00e0 in modalit\u00e0 uscita digitale. Il parametro 'invert_step' specifica se un passo si verifica su un fronte di salita (invert_step=0) o discendente (invert_step=1). Il parametro 'step_pulse_ticks' specifica la durata minima dell'impulso di passo. Se l'mcu esporta la costante 'STEPPER_BOTH_EDGE=1', l'impostazione di step_pulse_ticks=0 e invert_step=-1 imposter\u00e0 il passaggio su entrambi i fronti di salita e di discesa dello step pin. config_endstop oid=%c pin=%c pull_up=%c stepper_count=%c : Questo comando crea un oggetto \"finecorsa\" interno. Viene utilizzato per specificare i relativi pin e per abilitare le operazioni di \"homing\" (vedere il comando endstop_home di seguito). Il comando configurer\u00e0 il pin specificato nella modalit\u00e0 di input digitale. Il parametro 'pull_up' determina se i resistori pullup forniti dall'hardware per il pin (se disponibili) saranno abilitati. Il parametro 'stepper_count' specifica il numero massimo di stepper che potrebbe essere necessario arrestare questo endstop durante un'operazione di homing (vedere endstop_home di seguito). config_spi oid=%c bus=%u pin=%u mode=%u rate=%u shutdown_msg=%*s : Questo comando crea un oggetto SPI interno. Viene utilizzato con i comandi spi_transfer e spi_send (vedi sotto). Il \"bus\" identifica il bus SPI da utilizzare (se il microcontrollore ha pi\u00f9 di un bus SPI disponibile). Il \"pin\" specifica il pin di selezione del chip (CS) per il dispositivo. La \"modalit\u00e0\" \u00e8 la modalit\u00e0 SPI (dovrebbe essere compresa tra 0 e 3). Il parametro \"rate\" specifica la velocit\u00e0 del bus SPI (in cicli al secondo). Infine, \"shutdown_msg\" \u00e8 un comando SPI da inviare al dispositivo specificato se il microcontrollore entra in uno stato di spegnimento. config_spi_without_cs oid=%c bus=%u mode=%u rate=%u shutdown_msg=%*s : Questo comando \u00e8 simile a config_spi, ma senza una definizione di pin CS. \u00c8 utile per i dispositivi SPI che non dispongono di una linea di selezione del chip.","title":"Oggetti comuni del microcontrollore"},{"location":"MCU_Commands.html#comandi-comuni","text":"Questa sezione elenca alcuni comandi comunemente usati durante il run-time. \u00c8 probabilmente di interesse solo per gli sviluppatori che cercano di ottenere informazioni su Klipper. set_digital_out_pwm_cycle oid=%c cycle_ticks=%u : Questo comando configura un pin come uscita digitale (come creato da config_digital_out) per usare \"software PWM\". 'cycle_ticks' \u00e8 il numero di tick di clock per il ciclo PWM. Poich\u00e9 la commutazione dell'uscita \u00e8 implementata nel software del microcontrollore, si consiglia che 'cycle_ticks' corrisponda a un tempo di 10 ms o superiore. queue_digital_out oid=%c clock=%u on_ticks=%u : Questo comando pianificher\u00e0 una modifica a un pin GPIO dell'uscita digitale per un orario specifico. Per utilizzare questo comando \u00e8 necessario che durante la configurazione del microcontrollore sia stato emesso un comando 'config_digital_out' con lo stesso parametro 'oid'. Se \u00e8 stato chiamato 'set_digital_out_pwm_cycle', allora 'on_ticks' \u00e8 la durata di attivazione (in tick di clock) per il ciclo pwm. Altrimenti, 'on_ticks' dovrebbe essere 0 (per bassa tensione) o 1 (per alta tensione). queue_pwm_out oid=%c clock=%u value=%hu : Pianifica una modifica a un pin di uscita PWM hardware. Per ulteriori informazioni, vedere i comandi 'queue_digital_out' e 'config_pwm_out'. query_analog_in oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u min_value=%hu max_value=%hu : Questo comando imposta una pianificazione ricorrente di campionamenti di un ingresso analogico. Per utilizzare questo comando \u00e8 necessario che durante la configurazione del microcontrollore sia stato emesso un comando 'config_analog_in' con lo stesso parametro 'oid'. I campioni inizieranno a partire dall'ora 'clock', riporter\u00e0 sul valore ottenuto ogni tick di clock 'rest_ticks', sovracampioner\u00e0 il numero di 'sample_count' e metter\u00e0 in pausa il numero di tick di clock 'sample_ticks' tra i sovacampionamenti. I parametri 'min_value' e 'max_value' implementano una funzione di sicurezza: il software del microcontrollore verificher\u00e0 che il valore campionato (dopo qualsiasi sovracampionamento) sia sempre compreso nell'intervallo fornito. Questo \u00e8 destinato all'uso con pin collegati a termistori che controllano i riscaldatori: pu\u00f2 essere utilizzato per verificare che un riscaldatore rientri in un intervallo di temperatura. get_clock : Questo comando fa s\u00ec che il microcontrollore generi un messaggio di risposta \"clock\". L'host invia questo comando una volta al secondo per ottenere il valore dell'orologio del microcontrollore e per stimare la deriva tra gli orologi dell'host e del microcontrollore. Consente all'host di stimare con precisione l'orologio del microcontrollore.","title":"Comandi comuni"},{"location":"MCU_Commands.html#comandi-motori-passopasso","text":"queue_step oid=%c interval=%u count=%hu add=%hi : Questo comando pianifica il 'conteggio' del numero di passi per il dato stepper, con 'intervallo' il numero di tick di clock tra ogni passo. Il primo passo sar\u00e0 il numero \"intervallo\" di tick di clock dall'ultimo passo programmato per il dato stepper. Se 'add' \u00e8 diverso da zero, l'intervallo verr\u00e0 regolato in base all'importo di 'add' dopo ogni passaggio. Questo comando aggiunge la sequenza intervallo/conteggio/aggiunta data a una coda per stepper. Potrebbero esserci centinaia di queste sequenze in coda durante il normale funzionamento. La nuova sequenza viene aggiunta alla fine della coda e quando ogni sequenza completa il suo numero di \"conteggi\" di passaggi viene estratta dalla parte anteriore della coda. Questo sistema consente al microcontrollore di mettere in coda potenzialmente centinaia di migliaia di passaggi, il tutto con tempi di pianificazione affidabili e prevedibili. set_next_step_dir oid=%c dir=%c : Questo comando specifica il valore del dir_pin che verr\u00e0 utilizzato dal comando queue_step successivo. reset_step_clock oid=%c clock=%u : Normalmente, la temporizzazione del passo \u00e8 relativo all'ultimo passo per un dato stepper. Questo comando azzera l'orologio in modo che il passo successivo sia relativo all'ora fornita. L'host di solito invia questo comando solo all'inizio di una stampa. stepper_get_position oid=%c : Questo comando fa s\u00ec che il microcontrollore generi un messaggio di risposta \"stepper_position\" con la posizione corrente dello stepper. La posizione \u00e8 il numero totale di passi generati con dir=1 meno il numero totale di passi generati con dir=0. endstop_home oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u pin_value=%c : Questo comando viene utilizzato durante le operazioni di \"homing\" dello stepper. Per utilizzare questo comando \u00e8 necessario che durante la configurazione del microcontrollore sia stato emesso un comando 'config_endstop' con lo stesso parametro 'oid'. Quando viene invocato questo comando, il microcontrollore campiona il pin finecorsa ogni tick di clock \"rest_ticks\" e controlla se ha un valore uguale a \"pin_value\". Se il valore corrisponde (e continua a corrispondere per 'sample_count' campioni aggiuntivi separati da 'sample_ticks'), la coda di movimento per lo stepper associato verr\u00e0 cancellata e lo stepper si arrester\u00e0 immediatamente. L'host utilizza questo comando per implementare l'homing: l'host indica al finecorsa di eseguire il campionamento per il trigger endstop e quindi emette una serie di comandi queue_step per spostare uno stepper verso il finecorsa. Una volta che lo stepper raggiunge il finecorsa, il trigger verr\u00e0 rilevato, il movimento verr\u00e0 interrotto e l'host verr\u00e0 informato.","title":"Comandi motori passopasso"},{"location":"MCU_Commands.html#coda-movimento","text":"Ogni comando queue_step utilizza una voce nella \"coda di movimento\" del microcontrollore. Questa coda viene allocata quando riceve il comando \"finalize_config\" e segnala il numero di voci di coda disponibili nei messaggi di risposta \"config\". \u00c8 responsabilit\u00e0 dell'host assicurarsi che ci sia spazio disponibile nella coda prima di inviare un comando queue_step. L'host esegue questa operazione calcolando il completamento di ciascun comando queue_step e pianificando di conseguenza i nuovi comandi queue_step.","title":"Coda movimento"},{"location":"MCU_Commands.html#comandi-spi","text":"spi_transfer oid=%c data=%*s : questo comando fa s\u00ec che il microcontrollore invii dati 'data' al dispositivo spi specificato da 'oid' e genera un messaggio di risposta \"spi_transfer_response\" con i dati restituiti durante la trasmissione . spi_send oid=%c data=%*s : Questo comando \u00e8 simile a \"spi_transfer\", ma non genera un messaggio \"spi_transfer_response\".","title":"Comandi SPI"},{"location":"Manual_Level.html","text":"Livellamento manuale \u00b6 Questo documento descrive gli strumenti per la calibrazione di un finecorsa Z e per l'esecuzione delle regolazioni delle viti di livellamento del piatto. Calibrazione di un finecorsa Z \u00b6 Una posizione precisa del fine corsa Z \u00e8 fondamentale per ottenere stampe di alta qualit\u00e0. Si noti, tuttavia, che la precisione dell'interruttore di fine corsa Z stesso pu\u00f2 essere un fattore limitante. Se si utilizzano i driver per motori passo-passo Trinamic, considerare l'abilitazione del rilevamento fase finecorsa per migliorare la precisione dell'interruttore. Per eseguire una calibrazione del fine corsa Z, portare la stampante in posizione di partenza, comandare alla testina di spostarsi in una posizione Z che sia almeno cinque millimetri sopra il piatto (se non lo \u00e8 gi\u00e0), comandare alla testina di spostarsi in una posizione XY vicino al centro di piatto, quindi vai alla scheda del terminale OctoPrint ed esegui: Z_ENDSTOP_CALIBRATE Quindi segui i passaggi descritti in \"the paper test\" per determinare la distanza effettiva tra l'ugello e il piatto in una determinata posizione. Una volta completati questi passaggi, \u00e8 possibile \"ACCETTARE\" la posizione e salvare i risultati nel file di configurazione con: SAVE_CONFIG \u00c8 preferibile utilizzare un interruttore di fine corsa Z sull'estremit\u00e0 opposta dell'asse Z rispetto al piatto. (L'allontanamento dal piatto \u00e8 pi\u00f9 robusto in quanto generalmente \u00e8 sempre sicuro mettere a home la Z.) Tuttavia, se si deve tornare a home verso il piatto, si consiglia di regolare il finecorsa in modo che si attivi a una piccola distanza (ad es. 0,5 mm ) sopra il piatto. Quasi tutti gli interruttori di fine corsa possono essere premuti in sicurezza a una piccola distanza oltre il punto di attivazione. Fatto ci\u00f2, si dovrebbe scoprire che il comando Z_ENDSTOP_CALIBRATE riporta un piccolo valore positivo (ad esempio, .5mm) per Z position_endstop. L'attivazione del fine corsa mentre si \u00e8 ancora a una certa distanza dal piatto riduce il rischio di incidenti involontari del piatto. Alcune stampanti hanno la capacit\u00e0 di regolare manualmente la posizione dell'interruttore di fine corsa fisico. Tuttavia, si consiglia di eseguire il posizionamento del finecorsa Z nel software con Klipper: una volta che la posizione fisica del finecorsa \u00e8 in una posizione comoda, \u00e8 possibile apportare ulteriori modifiche eseguendo Z_ENDSTOP_CALIBRATE o aggiornando manualmente Z position_endstop nel file di configurazione. Regolazione delle viti di livellamento del piatto \u00b6 Il segreto per ottenere un buon livellamento del piatto con le viti di livellamento \u00e8 utilizzare il sistema di movimento ad alta precisione della stampante durante il processo di livellamento del piatto stesso. Questo viene fatto comandando l'ugello in una posizione vicino a ciascuna vite del piatto e quindi regolando quella vite fino a quando il piatto non \u00e8 a una distanza prestabilita dall'ugello. Klipper ha uno strumento per aiutare con questo. Per utilizzare lo strumento \u00e8 necessario specificare la posizione XY di ciascuna vite. Questo viene fatto creando una sezione di configurazione [bed_screws] . Ad esempio, potrebbe sembrare qualcosa di simile a: [bed_screws] screw1: 100, 50 screw2: 100, 150 screw3: 150, 100 Se una vite del piatto \u00e8 sotto il piatto, specificare la posizione XY direttamente sopra la vite. Se la vite \u00e8 fuori dal piatto, specificare una posizione XY pi\u00f9 vicina alla vite che sia ancora all'interno del raggio del piatto. Una volta che il file di configurazione \u00e8 pronto, esegui RESTART per caricare quella configurazione, quindi puoi avviare lo strumento eseguendo: BED_SCREWS_ADJUST Questo strumento sposter\u00e0 l'ugello della stampante in ciascuna posizione XY della vite e quindi sposter\u00e0 l'ugello a un'altezza Z=0. A questo punto si pu\u00f2 utilizzare la \"prova della carta\" per regolare la vite del piatto direttamente sotto l'ugello. Vedere le informazioni descritte in \"the paper test\" , ma regolare la vite del piatto invece di comandare l'ugello ad altezze diverse. Regolare la vite del piatto finch\u00e9 non c'\u00e8 una piccola quantit\u00e0 di attrito quando si spinge la carta avanti e indietro. Una volta che la vite \u00e8 stata regolata in modo da avvertire una piccola quantit\u00e0 di attrito, eseguire il comando ACCEPT o ADJUSTED . Utilizzare il comando ADJUSTED se la vite del piatto necessita di una regolazione (in genere qualcosa di pi\u00f9 di circa 1/8 di giro della vite). Utilizzare il comando ACCEPT se non sono necessarie modifiche significative. Entrambi i comandi faranno s\u00ec che lo strumento proceda alla vite successiva. (Quando viene utilizzato un comando ADJUSTED , lo strumento pianificher\u00e0 un ciclo aggiuntivo di regolazioni delle viti di appoggio; lo strumento viene completato correttamente quando tutte le viti di appoggio vengono verificate e non richiedono regolazioni significative.) \u00c8 possibile utilizzare il comando 'ABORT' per uscire lo strumento in anticipo. Questo sistema funziona al meglio quando la stampante ha una superficie di stampa piatta (come il vetro) e ha binari diritti. Dopo aver completato con successo lo strumento di livellamento del piatto, il piatto dovrebbe essere pronto per la stampa. Regolazione fine della vite del piatto \u00b6 Se la stampante utilizza tre viti del piatto e tutte e tre le viti sono sotto il piatto, potrebbe essere possibile eseguire una seconda fase di livellamento del piatto \"ad alta precisione\". Questo viene fatto comandando l'ugello in punti in cui il piatto si sposta di una distanza maggiore con ciascuna regolazione della vite del piatto. Ad esempio, considera un piatto con viti nelle posizioni A, B e C: Per ogni regolazione effettuata alla vite del piatto nella posizione C, il piatto osciller\u00e0 lungo un pendolo definito dalle restanti due viti del piatto (mostrate qui come una linea verde). In questa situazione, ogni regolazione della vite del piatto in C sposter\u00e0 il letto nella posizione D di una quantit\u00e0 maggiore rispetto a C. \u00c8 quindi possibile effettuare una regolazione della vite C migliorata quando l'ugello \u00e8 in posizione D. Per abilitare questa funzione, si dovrebbero determinare le coordinate dell'ugello aggiuntive e aggiungerle al file di configurazione. Ad esempio, potrebbe essere simile a: [bed_screws] screw1: 100, 50 screw1_fine_adjust: 0, 0 screw2: 100, 150 screw2_fine_adjust: 300, 300 screw3: 150, 100 screw3_fine_adjust: 0, 100 Quando questa funzione \u00e8 abilitata, lo strumento BED_SCREWS_ADJUST richieder\u00e0 prima le regolazioni grossolane direttamente sopra ogni posizione della vite e, una volta accettate, richieder\u00e0 le regolazioni fini nelle posizioni aggiuntive. Continua a usare ACCEPT e ADJUSTED in ogni posizione. Regolazione delle viti di livellamento del piatto mediante la sonda del piatto \u00b6 Questo \u00e8 un altro modo per calibrare il livello del piatto utilizzando la sonda del piatto. Per utilizzarlo \u00e8 necessario disporre di una sonda Z (BL Touch, Sensore induttivo, ecc). Per abilitare questa funzione, si dovrebbero determinare le coordinate dell'ugello in modo tale che la sonda Z sia sopra le viti, quindi aggiungerle al file di configurazione. Ad esempio, potrebbe essere simile a: [screws_tilt_adjust] screw1: -5, 30 screw1_name: front left screw screw2: 155, 30 screw2_name: front right screw screw3: 155, 190 screw3_name: rear right screw screw4: -5, 190 screw4_name: rear left screw horizontal_move_z: 10. speed: 50. screw_thread: CW-M3 La vite1 \u00e8 sempre il punto di riferimento per le altre, quindi il sistema presume che la vite1 sia all'altezza corretta. Eseguire sempre prima G28 e poi eseguire SCREWS_TILT_CALCULATE - dovrebbe produrre un output simile a: Send: G28 Recv: ok Send: SCREWS_TILT_CALCULATE Recv: // 01:20 means 1 full turn and 20 minutes, CW=clockwise, CCW=counter-clockwise Recv: // front left screw (base) : x=-5.0, y=30.0, z=2.48750 Recv: // front right screw : x=155.0, y=30.0, z=2.36000 : adjust CW 01:15 Recv: // rear right screw : y=155.0, y=190.0, z=2.71500 : adjust CCW 00:50 Recv: // read left screw : x=-5.0, y=190.0, z=2.47250 : adjust CW 00:02 Recv: ok Ci\u00f2 significa che: la vite anteriore sinistra \u00e8 il punto di riferimento non devi cambiarla. la vite anteriore destra deve essere ruotata in senso orario di 1 giro completo e un quarto di giro la vite posteriore destra deve essere ruotata in senso antiorario per '50 minuti' la vite posteriore sinistra deve essere ruotata in senso orario '2 minuti' (non serve va bene) Si noti che \"minuti\" si riferisce ai \"minuti di un quadrante\". Quindi, ad esempio, 15 minuti sono un quarto di giro completo. Ripeti il processo pi\u00f9 volte fino a ottenere un piatto ben livellato, normalmente quando tutte le regolazioni richiedono meno di 6 minuti. Se si utilizza una sonda montata sul lato dell'hotend (ovvero, ha un offset X o Y), tenere presente che la regolazione dell'inclinazione del piatto invalider\u00e0 qualsiasi precedente calibrazione della sonda eseguita con unpiatto inclinato. Assicurarsi di eseguire calibrazione sonda dopo aver regolato le viti del piatto. Il parametro MAX_DEVIATION \u00e8 utile quando viene utilizzata una mesh del piatto salvata, per garantire che il livello del pitto non si sia spostato troppo lontano da dove si trovava quando \u00e8 stata creata la mesh. Ad esempio, SCREWS_TILT_CALCULATE MAX_DEVIATION=0.01 pu\u00f2 essere aggiunto al gcode iniziale personalizzato dello slicer prima del caricamento della mesh. Interromper\u00e0 la stampa se viene superato il limite configurato (0,01 mm in questo esempio), dando all'utente la possibilit\u00e0 di regolare le viti e riavviare la stampa. Il parametro DIRECTION \u00e8 utile se puoi ruotare le viti di regolazione del piatto in una sola direzione. Ad esempio, potresti avere viti che iniziano a stringere nella posizione pi\u00f9 bassa (o pi\u00f9 alta) possibile, che possono essere ruotate solo in una sola direzione, per alzare (o abbassare) il piatto. Se puoi girare le viti solo in senso orario, esegui SCREWS_TILT_CALCULATE DIRECTION=CW . Se puoi ruotarli solo in senso antiorario, esegui SCREWS_TILT_CALCULATE DIRECTION=CCW . Verr\u00e0 scelto un punto di riferimento idoneo in modo tale che il piatto possa essere livellato ruotando tutte le viti nella direzione indicata.","title":"Livellamento manuale"},{"location":"Manual_Level.html#livellamento-manuale","text":"Questo documento descrive gli strumenti per la calibrazione di un finecorsa Z e per l'esecuzione delle regolazioni delle viti di livellamento del piatto.","title":"Livellamento manuale"},{"location":"Manual_Level.html#calibrazione-di-un-finecorsa-z","text":"Una posizione precisa del fine corsa Z \u00e8 fondamentale per ottenere stampe di alta qualit\u00e0. Si noti, tuttavia, che la precisione dell'interruttore di fine corsa Z stesso pu\u00f2 essere un fattore limitante. Se si utilizzano i driver per motori passo-passo Trinamic, considerare l'abilitazione del rilevamento fase finecorsa per migliorare la precisione dell'interruttore. Per eseguire una calibrazione del fine corsa Z, portare la stampante in posizione di partenza, comandare alla testina di spostarsi in una posizione Z che sia almeno cinque millimetri sopra il piatto (se non lo \u00e8 gi\u00e0), comandare alla testina di spostarsi in una posizione XY vicino al centro di piatto, quindi vai alla scheda del terminale OctoPrint ed esegui: Z_ENDSTOP_CALIBRATE Quindi segui i passaggi descritti in \"the paper test\" per determinare la distanza effettiva tra l'ugello e il piatto in una determinata posizione. Una volta completati questi passaggi, \u00e8 possibile \"ACCETTARE\" la posizione e salvare i risultati nel file di configurazione con: SAVE_CONFIG \u00c8 preferibile utilizzare un interruttore di fine corsa Z sull'estremit\u00e0 opposta dell'asse Z rispetto al piatto. (L'allontanamento dal piatto \u00e8 pi\u00f9 robusto in quanto generalmente \u00e8 sempre sicuro mettere a home la Z.) Tuttavia, se si deve tornare a home verso il piatto, si consiglia di regolare il finecorsa in modo che si attivi a una piccola distanza (ad es. 0,5 mm ) sopra il piatto. Quasi tutti gli interruttori di fine corsa possono essere premuti in sicurezza a una piccola distanza oltre il punto di attivazione. Fatto ci\u00f2, si dovrebbe scoprire che il comando Z_ENDSTOP_CALIBRATE riporta un piccolo valore positivo (ad esempio, .5mm) per Z position_endstop. L'attivazione del fine corsa mentre si \u00e8 ancora a una certa distanza dal piatto riduce il rischio di incidenti involontari del piatto. Alcune stampanti hanno la capacit\u00e0 di regolare manualmente la posizione dell'interruttore di fine corsa fisico. Tuttavia, si consiglia di eseguire il posizionamento del finecorsa Z nel software con Klipper: una volta che la posizione fisica del finecorsa \u00e8 in una posizione comoda, \u00e8 possibile apportare ulteriori modifiche eseguendo Z_ENDSTOP_CALIBRATE o aggiornando manualmente Z position_endstop nel file di configurazione.","title":"Calibrazione di un finecorsa Z"},{"location":"Manual_Level.html#regolazione-delle-viti-di-livellamento-del-piatto","text":"Il segreto per ottenere un buon livellamento del piatto con le viti di livellamento \u00e8 utilizzare il sistema di movimento ad alta precisione della stampante durante il processo di livellamento del piatto stesso. Questo viene fatto comandando l'ugello in una posizione vicino a ciascuna vite del piatto e quindi regolando quella vite fino a quando il piatto non \u00e8 a una distanza prestabilita dall'ugello. Klipper ha uno strumento per aiutare con questo. Per utilizzare lo strumento \u00e8 necessario specificare la posizione XY di ciascuna vite. Questo viene fatto creando una sezione di configurazione [bed_screws] . Ad esempio, potrebbe sembrare qualcosa di simile a: [bed_screws] screw1: 100, 50 screw2: 100, 150 screw3: 150, 100 Se una vite del piatto \u00e8 sotto il piatto, specificare la posizione XY direttamente sopra la vite. Se la vite \u00e8 fuori dal piatto, specificare una posizione XY pi\u00f9 vicina alla vite che sia ancora all'interno del raggio del piatto. Una volta che il file di configurazione \u00e8 pronto, esegui RESTART per caricare quella configurazione, quindi puoi avviare lo strumento eseguendo: BED_SCREWS_ADJUST Questo strumento sposter\u00e0 l'ugello della stampante in ciascuna posizione XY della vite e quindi sposter\u00e0 l'ugello a un'altezza Z=0. A questo punto si pu\u00f2 utilizzare la \"prova della carta\" per regolare la vite del piatto direttamente sotto l'ugello. Vedere le informazioni descritte in \"the paper test\" , ma regolare la vite del piatto invece di comandare l'ugello ad altezze diverse. Regolare la vite del piatto finch\u00e9 non c'\u00e8 una piccola quantit\u00e0 di attrito quando si spinge la carta avanti e indietro. Una volta che la vite \u00e8 stata regolata in modo da avvertire una piccola quantit\u00e0 di attrito, eseguire il comando ACCEPT o ADJUSTED . Utilizzare il comando ADJUSTED se la vite del piatto necessita di una regolazione (in genere qualcosa di pi\u00f9 di circa 1/8 di giro della vite). Utilizzare il comando ACCEPT se non sono necessarie modifiche significative. Entrambi i comandi faranno s\u00ec che lo strumento proceda alla vite successiva. (Quando viene utilizzato un comando ADJUSTED , lo strumento pianificher\u00e0 un ciclo aggiuntivo di regolazioni delle viti di appoggio; lo strumento viene completato correttamente quando tutte le viti di appoggio vengono verificate e non richiedono regolazioni significative.) \u00c8 possibile utilizzare il comando 'ABORT' per uscire lo strumento in anticipo. Questo sistema funziona al meglio quando la stampante ha una superficie di stampa piatta (come il vetro) e ha binari diritti. Dopo aver completato con successo lo strumento di livellamento del piatto, il piatto dovrebbe essere pronto per la stampa.","title":"Regolazione delle viti di livellamento del piatto"},{"location":"Manual_Level.html#regolazione-fine-della-vite-del-piatto","text":"Se la stampante utilizza tre viti del piatto e tutte e tre le viti sono sotto il piatto, potrebbe essere possibile eseguire una seconda fase di livellamento del piatto \"ad alta precisione\". Questo viene fatto comandando l'ugello in punti in cui il piatto si sposta di una distanza maggiore con ciascuna regolazione della vite del piatto. Ad esempio, considera un piatto con viti nelle posizioni A, B e C: Per ogni regolazione effettuata alla vite del piatto nella posizione C, il piatto osciller\u00e0 lungo un pendolo definito dalle restanti due viti del piatto (mostrate qui come una linea verde). In questa situazione, ogni regolazione della vite del piatto in C sposter\u00e0 il letto nella posizione D di una quantit\u00e0 maggiore rispetto a C. \u00c8 quindi possibile effettuare una regolazione della vite C migliorata quando l'ugello \u00e8 in posizione D. Per abilitare questa funzione, si dovrebbero determinare le coordinate dell'ugello aggiuntive e aggiungerle al file di configurazione. Ad esempio, potrebbe essere simile a: [bed_screws] screw1: 100, 50 screw1_fine_adjust: 0, 0 screw2: 100, 150 screw2_fine_adjust: 300, 300 screw3: 150, 100 screw3_fine_adjust: 0, 100 Quando questa funzione \u00e8 abilitata, lo strumento BED_SCREWS_ADJUST richieder\u00e0 prima le regolazioni grossolane direttamente sopra ogni posizione della vite e, una volta accettate, richieder\u00e0 le regolazioni fini nelle posizioni aggiuntive. Continua a usare ACCEPT e ADJUSTED in ogni posizione.","title":"Regolazione fine della vite del piatto"},{"location":"Manual_Level.html#regolazione-delle-viti-di-livellamento-del-piatto-mediante-la-sonda-del-piatto","text":"Questo \u00e8 un altro modo per calibrare il livello del piatto utilizzando la sonda del piatto. Per utilizzarlo \u00e8 necessario disporre di una sonda Z (BL Touch, Sensore induttivo, ecc). Per abilitare questa funzione, si dovrebbero determinare le coordinate dell'ugello in modo tale che la sonda Z sia sopra le viti, quindi aggiungerle al file di configurazione. Ad esempio, potrebbe essere simile a: [screws_tilt_adjust] screw1: -5, 30 screw1_name: front left screw screw2: 155, 30 screw2_name: front right screw screw3: 155, 190 screw3_name: rear right screw screw4: -5, 190 screw4_name: rear left screw horizontal_move_z: 10. speed: 50. screw_thread: CW-M3 La vite1 \u00e8 sempre il punto di riferimento per le altre, quindi il sistema presume che la vite1 sia all'altezza corretta. Eseguire sempre prima G28 e poi eseguire SCREWS_TILT_CALCULATE - dovrebbe produrre un output simile a: Send: G28 Recv: ok Send: SCREWS_TILT_CALCULATE Recv: // 01:20 means 1 full turn and 20 minutes, CW=clockwise, CCW=counter-clockwise Recv: // front left screw (base) : x=-5.0, y=30.0, z=2.48750 Recv: // front right screw : x=155.0, y=30.0, z=2.36000 : adjust CW 01:15 Recv: // rear right screw : y=155.0, y=190.0, z=2.71500 : adjust CCW 00:50 Recv: // read left screw : x=-5.0, y=190.0, z=2.47250 : adjust CW 00:02 Recv: ok Ci\u00f2 significa che: la vite anteriore sinistra \u00e8 il punto di riferimento non devi cambiarla. la vite anteriore destra deve essere ruotata in senso orario di 1 giro completo e un quarto di giro la vite posteriore destra deve essere ruotata in senso antiorario per '50 minuti' la vite posteriore sinistra deve essere ruotata in senso orario '2 minuti' (non serve va bene) Si noti che \"minuti\" si riferisce ai \"minuti di un quadrante\". Quindi, ad esempio, 15 minuti sono un quarto di giro completo. Ripeti il processo pi\u00f9 volte fino a ottenere un piatto ben livellato, normalmente quando tutte le regolazioni richiedono meno di 6 minuti. Se si utilizza una sonda montata sul lato dell'hotend (ovvero, ha un offset X o Y), tenere presente che la regolazione dell'inclinazione del piatto invalider\u00e0 qualsiasi precedente calibrazione della sonda eseguita con unpiatto inclinato. Assicurarsi di eseguire calibrazione sonda dopo aver regolato le viti del piatto. Il parametro MAX_DEVIATION \u00e8 utile quando viene utilizzata una mesh del piatto salvata, per garantire che il livello del pitto non si sia spostato troppo lontano da dove si trovava quando \u00e8 stata creata la mesh. Ad esempio, SCREWS_TILT_CALCULATE MAX_DEVIATION=0.01 pu\u00f2 essere aggiunto al gcode iniziale personalizzato dello slicer prima del caricamento della mesh. Interromper\u00e0 la stampa se viene superato il limite configurato (0,01 mm in questo esempio), dando all'utente la possibilit\u00e0 di regolare le viti e riavviare la stampa. Il parametro DIRECTION \u00e8 utile se puoi ruotare le viti di regolazione del piatto in una sola direzione. Ad esempio, potresti avere viti che iniziano a stringere nella posizione pi\u00f9 bassa (o pi\u00f9 alta) possibile, che possono essere ruotate solo in una sola direzione, per alzare (o abbassare) il piatto. Se puoi girare le viti solo in senso orario, esegui SCREWS_TILT_CALCULATE DIRECTION=CW . Se puoi ruotarli solo in senso antiorario, esegui SCREWS_TILT_CALCULATE DIRECTION=CCW . Verr\u00e0 scelto un punto di riferimento idoneo in modo tale che il piatto possa essere livellato ruotando tutte le viti nella direzione indicata.","title":"Regolazione delle viti di livellamento del piatto mediante la sonda del piatto"},{"location":"Measuring_Resonances.html","text":"Misurazione delle risonanze \u00b6 Klipper ha il supporto integrato per l'accelerometro ADXL345, che pu\u00f2 essere utilizzato per misurare le frequenze di risonanza della stampante per diversi assi, e per l'autotuning input shapers per compensare le risonanze. Si noti che l'utilizzo di ADXL345 richiede alcune operazioni di saldatura e crimpatura. ADXL345 pu\u00f2 essere collegato direttamente a un Raspberry Pi o a un'interfaccia SPI di una scheda MCU (deve essere ragionevolmente veloce). Quando acquisti ADXL345, tieni presente che esiste una variet\u00e0 di diversi design di schede PCB e diversi cloni di essi. Assicurati che la scheda supporti la modalit\u00e0 SPI (un piccolo numero di schede sembra essere configurato in modo rigido per I2C trascinando SDO su GND) e, se deve essere collegato a un MCU per stampante da 5 V, che abbia un regolatore di tensione e un cambio di livello. Istruzioni per l'installazione \u00b6 Cablaggio \u00b6 Devi connettere ADXL345 al tuo Raspberry Pi tramite SPI. Si noti che la connessione I2C, suggerita dalla documentazione di ADXL345, ha un throughput troppo basso e non funzioner\u00e0 . Lo schema di connessione consigliato: ADXL345 pin RPi pin Nome pin RPi 3V3 (or VCC) 01 3.3v alimentazione DC GND 06 Ground CS 24 GPIO08 (SPI0_CE0_N) SDO 21 GPIO09 (SPI0_MISO) SDA 19 GPIO10 (SPI0_MOSI) SCL 23 GPIO11 (SPI0_SCLK) Un'alternativa all'ADXL345 \u00e8 l'MPU-9250 (o MPU-6050). Questo accelerometro \u00e8 stato testato per funzionare su I2C su RPi a 400kbaud. Schema di connessione consigliato per I2C: pin MPU-9250 RPi pin Nome pin RPi 3V3 (or VCC) 01 3.3v alimentazione DC GND 09 Ground SDA 03 GPIO02 (SDA1) SCL 05 GPIO03 (SCL1) Schemi collegamenti Fritzing per alcune delle schede ADXL345: Ricontrolla il cablaggio prima di accendere il Raspberry Pi per evitare di danneggiare RPi o l'accelerometro. Montaggio dell'accelerometro \u00b6 L'accelerometro deve essere collegato alla testa di stampa. \u00c8 necessario progettare un supporto adeguato che si adatti alla propria stampante 3D. \u00c8 meglio allineare gli assi dell'accelerometro con gli assi della stampante (ma se lo rende pi\u00f9 comodo, gli assi possono essere scambiati - cio\u00e8 non c'\u00e8 bisogno di allineare l'asse X con X e cos\u00ec via - dovrebbe andare bene anche se l'asse Z di l'accelerometro \u00e8 l'asse X della stampante, ecc.). Un esempio di montaggio di ADXL345 su SmartEffect: Si noti che su una stampante con piatto mobile \u00e8 necessario progettare 2 supporti: uno per la testina e uno per il piatto, ed eseguire le misurazioni due volte. Per maggiori dettagli, vedere la sezione corrispondente. Attenzione: assicurati che l'accelerometro e le eventuali viti che lo tengono in posizione non tocchino parti metalliche della stampante. Fondamentalmente, il supporto deve essere progettato in modo tale da garantire l'isolamento elettrico dell'accelerometro dal telaio della stampante. Non riuscendo a garantire che pu\u00f2 creare un loop di massa nel sistema che potrebbe danneggiare l'elettronica. Installazione software \u00b6 Si noti che le misurazioni della risonanza e la calibrazione automatica dello shaper richiedono dipendenze software aggiuntive non installate per impostazione predefinita. Innanzitutto, esegui sul tuo Raspberry Pi i seguenti comandi: sudo apt update sudo apt install python3-numpy python3-matplotlib libatlas-base-dev Quindi, per installare NumPy nell'ambiente Klipper, esegui il comando: ~/klippy-env/bin/pip install -v numpy Nota che, a seconda delle prestazioni della CPU, potrebbe volerci molto tempo, fino a 10-20 minuti. Sii paziente e attendi il completamento dell'installazione. In alcune occasioni, se la scheda ha poca RAM, l'installazione potrebbe non riuscire e sar\u00e0 necessario abilitare la swap. Successivamente, controlla e segui le istruzioni nel documento RPi Microcontroller per configurare \"linux mcu\" sul Raspberry Pi. Assicurati che il driver SPI di Linux sia abilitato eseguendo sudo raspi-config e abilitando SPI nel menu \"Opzioni di interfaccia\". Per ADXL345, aggiungere quanto segue al file printer.cfg: [mcu rpi] serial: /tmp/klipper_host_mcu [adxl345] cs_pin: rpi:None [resonance_tester] accel_chip: adxl345 probe_points: 100, 100, 20 # un esempio Si consiglia di iniziare con 1 punto sonda, al centro del piano di stampa, leggermente al di sopra di esso. Per l'MPU-9250, assicurarsi che il driver Linux I2C sia abilitato e che la velocit\u00e0 di trasmissione sia impostata su 400000 (consultare la sezione Abilitazione di I2C per maggiori dettagli). Quindi, aggiungi quanto segue a printer.cfg: [mcu rpi] serial: /tmp/klipper_host_mcu [mpu9250] i2c_mcu: rpi i2c_bus: i2c.1 [resonance_tester] accel_chip: mpu9250 probe_points: 100, 100, 20 # un esempio Riavvia Klipper tramite il comando RESTART . Misurare le risonanze \u00b6 Controllo della configurazione \u00b6 Ora puoi testare una connessione. Per \"per piatti non scorrevoli\" (es. un accelerometro), in Octoprint, inserisci ACCELEROMETER_QUERY Per \"piatti scorrevoli\" (ad es. pi\u00f9 di un accelerometro), immettere ACCELEROMETER_QUERY CHIP=<chip> dove <chip> \u00e8 il nome del chip immesso, ad es. CHIP=piatto (vedi: bed-slinger ) per tutti i chip dell'accelerometro installati. Dovresti vedere le misurazioni attuali dall'accelerometro, inclusa l'accelerazione di caduta libera, ad es. Recv: // adxl345 values (x, y, z): 470.719200, 941.438400, 9728.196800 Se ricevi un errore come Invalid adxl345 id (got xx vs e5) , dove xx \u00e8 un altro ID, \u00e8 indicativo del problema di connessione con ADXL345 o del sensore difettoso. Ricontrolla l'alimentazione, il cablaggio (che corrisponda agli schemi, nessun filo \u00e8 rotto o allentato, ecc.) e la qualit\u00e0 delle saldature. Quindi, prova a eseguire MEASURE_AXES_NOISE in Octoprint, dovresti ottenere alcuni numeri di riferimento per il rumore dell'accelerometro sugli assi (dovrebbe essere compreso tra ~1-100). Un rumore degli assi troppo elevato (ad es. 1000 e pi\u00f9) pu\u00f2 essere indicativo di problemi con il sensore, problemi con la sua alimentazione o ventole sbilanciate troppo rumorose su una stampante 3D. Misurare le risonanze \u00b6 Ora puoi eseguire alcuni test realistici. Esegui il seguente comando: TEST_RESONANCES AXIS=X Nota che creer\u00e0 vibrazioni sull'asse X. Disabiliter\u00e0 anche l'input shaping se era stato abilitato in precedenza, poich\u00e9 non \u00e8 valido eseguire il test di risonanza con l'input shaper abilitato. Attenzione! Assicurati di osservare la stampante per la prima volta, per assicurarti che le vibrazioni non diventino troppo violente (il comando M112 pu\u00f2 essere utilizzato per interrompere il test in caso di emergenza; si spera che non si verifichi questo per\u00f2). Se le vibrazioni diventano troppo forti, puoi provare a specificare un valore inferiore al valore predefinito per il parametro accel_per_hz nella sezione [resonance_tester] , ad es. [resonance_tester] accel_chip: adxl345 accel_per_hz: 50 # default \u00e8 75 probe_points: ... Se funziona per l'asse X, esegui anche per l'asse Y: TEST_RESONANCES AXIS=Y Questo generer\u00e0 2 file CSV ( /tmp/resonances_x_*.csv e /tmp/resonances_y_*.csv ). Questi file possono essere elaborati con lo script autonomo su un Raspberry Pi. Per farlo, esegui i seguenti comandi: ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_y_*.csv -o /tmp/shaper_calibrate_y.png Questo script generer\u00e0 i grafici /tmp/shaper_calibrate_x.png e /tmp/shaper_calibrate_y.png con le risposte in frequenza. Riceverai anche le frequenze suggerite per ogni input shaper, nonch\u00e9 quale input shaper \u00e8 consigliato per la tua configurazione. Per esempio: Fitted shaper 'zv' frequency = 34.4 Hz (vibrations = 4.0%, smoothing ~= 0.132) To avoid too much smoothing with 'zv', suggested max_accel <= 4500 mm/sec^2 Fitted shaper 'mzv' frequency = 34.6 Hz (vibrations = 0.0%, smoothing ~= 0.170) To avoid too much smoothing with 'mzv', suggested max_accel <= 3500 mm/sec^2 Fitted shaper 'ei' frequency = 41.4 Hz (vibrations = 0.0%, smoothing ~= 0.188) To avoid too much smoothing with 'ei', suggested max_accel <= 3200 mm/sec^2 Fitted shaper '2hump_ei' frequency = 51.8 Hz (vibrations = 0.0%, smoothing ~= 0.201) To avoid too much smoothing with '2hump_ei', suggested max_accel <= 3000 mm/sec^2 Fitted shaper '3hump_ei' frequency = 61.8 Hz (vibrations = 0.0%, smoothing ~= 0.215) To avoid too much smoothing with '3hump_ei', suggested max_accel <= 2800 mm/sec^2 Recommended shaper is mzv @ 34.6 Hz La configurazione suggerita pu\u00f2 essere aggiunta alla sezione [input_shaper] di printer.cfg , ad esempio: [input_shaper] shaper_freq_x: ... shaper_type_x: ... shaper_freq_y: 34.6 shaper_type_y: mzv [printer] max_accel: 3000 # non dovrebbe superare il max_accel stimato per gli assi X e Y oppure puoi scegliere tu stesso un'altra configurazione in base ai grafici generati: i picchi nella densit\u00e0 spettrale di potenza sui grafici corrispondono alle frequenze di risonanza della stampante. Nota che in alternativa puoi eseguire l'autocalibrazione dello input shaper da Klipper directly , che pu\u00f2 essere conveniente, ad esempio, per lo input shaper re-calibration . Stampanti con piatto scorrevole \u00b6 Se la tua stampante ha un piatto scorrevole, dovrai cambiare la posizione dell'accelerometro tra le misurazioni per gli assi X e Y: misurare le risonanze dell'asse X con l'accelerometro collegato alla testa di stampa e le risonanze dell'asse Y - al piatto. Tuttavia, puoi anche collegare due accelerometri contemporaneamente, sebbene debbano essere collegati a schede diverse (ad esempio, a una scheda RPi e MCU della stampante) o a due diverse interfacce SPI fisiche sulla stessa scheda (raramente disponibili). Quindi possono essere configurati nel modo seguente: [adxl345 hotend] # Supponendo che il chip \"hotend\" sia collegato a un RPi cs_pin: rpi:None [adxl345 bed] # Supponendo che il chip `bed` sia collegato a una scheda MCU della stampante cs_pin: ... # Pin di selezione chip SPI (CS) della scheda stampante [resonance_tester] # Assumendo la configurazione tipo della stampante con piatto scorrevole accel_chip_x: adxl345 hotend accel_chip_y: adxl345 bed probe_points: ... Quindi i comandi TEST_RESONANCES AXIS=X e TEST_RESONANCES AXIS=Y utilizzeranno l'accelerometro corretto per ciascun asse. Max smoothing \u00b6 Tieni presente che lo input shaper pu\u00f2 creare un po' di smoothing nelle parti. La regolazione automatica del input shaper eseguita dallo script calibrate_shaper.py o dal comando SHAPER_CALIBRATE cercano di non esacerbare lo smoothing, ma allo stesso tempo cercano di ridurre al minimo le vibrazioni risultanti. A volte possono fare una scelta non ottimale della frequenza dello shaper, o forse semplicemente preferisci avere meno smoothing in alcune parti a scapito di maggiori vibrazioni residue. In questi casi \u00e8 possibile richiedere di limitare lo smoothing massimo dal input shaper. Consideriamo i seguenti risultati della sintonizzazione automatica: Fitted shaper 'zv' frequency = 57.8 Hz (vibrations = 20.3%, smoothing ~= 0.053) To avoid too much smoothing with 'zv', suggested max_accel <= 13000 mm/sec^2 Fitted shaper 'mzv' frequency = 34.8 Hz (vibrations = 3.6%, smoothing ~= 0.168) To avoid too much smoothing with 'mzv', suggested max_accel <= 3600 mm/sec^2 Fitted shaper 'ei' frequency = 48.8 Hz (vibrations = 4.9%, smoothing ~= 0.135) To avoid too much smoothing with 'ei', suggested max_accel <= 4400 mm/sec^2 Fitted shaper '2hump_ei' frequency = 45.2 Hz (vibrations = 0.1%, smoothing ~= 0.264) To avoid too much smoothing with '2hump_ei', suggested max_accel <= 2200 mm/sec^2 Fitted shaper '3hump_ei' frequency = 48.0 Hz (vibrations = 0.0%, smoothing ~= 0.356) To avoid too much smoothing with '3hump_ei', suggested max_accel <= 1500 mm/sec^2 Recommended shaper is 2hump_ei @ 45.2 Hz Si noti che i valori di smoothing riportati sono alcuni valori proiettati. Questi valori possono essere utilizzati per confrontare diverse configurazioni: maggiore \u00e8 il valore, maggiore sar\u00e0 la levigatura creata da uno shaper. Tuttavia, questi punteggi di smoothing non rappresentano alcuna misura reale dello smoothing, perch\u00e9 lo smoothing effettivo dipende dai parametri max_accel e square_corner_velocity . Pertanto, \u00e8 necessario eseguire alcune stampe di prova per vedere quanta smoothing crea esattamente una configurazione scelta. Nell'esempio sopra i parametri dello shaper suggeriti non sono male, ma cosa succede se si desidera ottenere meno smooting sull'asse X? Puoi provare a limitare lo smoothing massimo dello shaper usando il seguente comando: ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png --max_smoothing=0.2 che limita lo smoothing a un punteggio di 0.2. Ora puoi ottenere il seguente risultato: Fitted shaper 'zv' frequency = 55.4 Hz (vibrations = 19.7%, smoothing ~= 0.057) To avoid too much smoothing with 'zv', suggested max_accel <= 12000 mm/sec^2 Fitted shaper 'mzv' frequency = 34.6 Hz (vibrations = 3.6%, smoothing ~= 0.170) To avoid too much smoothing with 'mzv', suggested max_accel <= 3500 mm/sec^2 Fitted shaper 'ei' frequency = 48.2 Hz (vibrations = 4.8%, smoothing ~= 0.139) To avoid too much smoothing with 'ei', suggested max_accel <= 4300 mm/sec^2 Fitted shaper '2hump_ei' frequency = 52.0 Hz (vibrations = 2.7%, smoothing ~= 0.200) To avoid too much smoothing with '2hump_ei', suggested max_accel <= 3000 mm/sec^2 Fitted shaper '3hump_ei' frequency = 72.6 Hz (vibrations = 1.4%, smoothing ~= 0.155) To avoid too much smoothing with '3hump_ei', suggested max_accel <= 3900 mm/sec^2 Recommended shaper is 3hump_ei @ 72.6 Hz Se si confronta con i parametri suggeriti in precedenza, le vibrazioni sono un po' maggiori, ma lo smoothing \u00e8 notevolmente inferiore rispetto a prima, consentendo un'accelerazione massima maggiore. Quando si decide quale parametro max_smoothing scegliere, \u00e8 possibile utilizzare un approccio per tentativi. Prova alcuni valori diversi e guarda quali risultati ottieni. Si noti che lo smoothing effettivo prodotto dall'input shaper dipende principalmente dalla frequenza di risonanza pi\u00f9 bassa della stampante: maggiore \u00e8 la frequenza della risonanza pi\u00f9 bassa, minore \u00e8 lo smoothing. Pertanto, se si richiede allo script di trovare una configurazione dell'input shaper con lo smoothing irrealisticamente piccolo, sar\u00e0 a scapito di un aumento del ringing alle frequenze di risonanza pi\u00f9 basse (che sono, in genere, anche pi\u00f9 visibili nelle stampe). Quindi, ricontrolla sempre le vibrazioni rimanenti previste riportate dallo script e assicurati che non siano troppo alte. Nota che se hai scelto un buon valore max_smoothing per entrambi gli assi, puoi salvarlo in printer.cfg come [resonance_tester] accel_chip: ... probe_points: ... max_smoothing: 0.25 # un esempio Quindi, se riesegui l'autotuning dello shaper di input usando il comando Klipper SHAPER_CALIBRATE in futuro, utilizzer\u00e0 il valore max_smoothing memorizzato come riferimento. Seleziona max_accel \u00b6 Poich\u00e9 l'input shaper pu\u00f2 creare un po' di smussamento nelle parti, specialmente ad accelerazioni elevate, sar\u00e0 comunque necessario scegliere il valore max_accel che non crei troppo smussamento \"smoothing\" nelle parti stampate. Uno script di calibrazione fornisce una stima per il parametro max_accel che non dovrebbe creare un smoothing eccessivo. Si noti che il max_accel visualizzato dallo script di calibrazione \u00e8 solo un massimo teorico al quale il rispettivo shaper \u00e8 ancora in grado di lavorare senza produrre troppo smoothing. Non \u00e8 affatto una raccomandazione impostare questa accelerazione per la stampa. L'accelerazione massima che la stampante \u00e8 in grado di sostenere dipende dalle sue propriet\u00e0 meccaniche e dalla coppia massima dei motori passo-passo utilizzati. Pertanto, si suggerisce di impostare max_accel nella sezione [printer] che non superi i valori stimati per gli assi X e Y, probabilmente con un margine di sicurezza conservativo. In alternativa, segui questa parte della guida all'ottimizzazione dello input shaper e stampa il modello di test per scegliere sperimentalmente il parametro max_accel . Lo stesso avviso vale per lo input shaper auto-calibration con il comando SHAPER_CALIBRATE : \u00e8 comunque necessario scegliere il giusto valore di max_accel dopo l'auto-calibrazione, e il i limiti di accelerazione non verranno applicati automaticamente. Se stai eseguendo una ricalibrazione dello shaper e lo smoothing riportato per la configurazione dello shaper suggerita \u00e8 quasi lo stesso di quello ottenuto durante la calibrazione precedente, questo passaggio pu\u00f2 essere saltato. Test di assi personalizzati \u00b6 Il comando TEST_RESONANCES supporta assi personalizzati. Anche se questo non \u00e8 molto utile per la calibrazione del input shaper, pu\u00f2 essere utilizzato per studiare in profondit\u00e0 le risonanze della stampante e per controllare, ad esempio, la tensione della cinghia. Per controllare la tensione della cinghia sulle stampanti CoreXY, eseguire TEST_RESONANCES AXIS=1,1 OUTPUT=raw_data TEST_RESONANCES AXIS=1,-1 OUTPUT=raw_data e usa graph_accelerometer.py per elaborare i file generati, ad es. ~/klipper/scripts/graph_accelerometer.py -c /tmp/raw_data_axis*.csv -o /tmp/resonances.png che generer\u00e0 /tmp/resonances.png confrontando le risonanze. Per le stampanti Delta con la posizione della torre predefinita (torre A ~= 210 gradi, B ~= 330 gradi e C ~= 90 gradi), eseguire TEST_RESONANCES AXIS=0,1 OUTPUT=raw_data TEST_RESONANCES AXIS=-0.866025404,-0.5 OUTPUT=raw_data TEST_RESONANCES AXIS=0.866025404,-0.5 OUTPUT=raw_data e quindi utilizzare lo stesso comando ~/klipper/scripts/graph_accelerometer.py -c /tmp/raw_data_axis*.csv -o /tmp/resonances.png per generare /tmp/resonances.png confrontando le risonanze. Calibrazione automatica Input Shaper \u00b6 Oltre a scegliere manualmente i parametri appropriati per la funzione di input shaper, \u00e8 anche possibile eseguire l'autotuning per l'input shaper direttamente da Klipper. Esegui il seguente comando tramite il terminale Octoprint: SHAPER_CALIBRATE Questo eseguir\u00e0 il test completo per entrambi gli assi e generer\u00e0 l'output csv ( /tmp/calibration_data_*.csv per impostazione predefinita) per la risposta in frequenza e gli input shaper suggeriti. Riceverai anche le frequenze suggerite per ciascun input shaper, nonch\u00e9 quale input shaper \u00e8 consigliato per la tua configurazione, sulla console Octoprint. Per esempio: Calculating the best input shaper parameters for y axis Fitted shaper 'zv' frequency = 39.0 Hz (vibrations = 13.2%, smoothing ~= 0.105) To avoid too much smoothing with 'zv', suggested max_accel <= 5900 mm/sec^2 Fitted shaper 'mzv' frequency = 36.8 Hz (vibrations = 1.7%, smoothing ~= 0.150) To avoid too much smoothing with 'mzv', suggested max_accel <= 4000 mm/sec^2 Fitted shaper 'ei' frequency = 36.6 Hz (vibrations = 2.2%, smoothing ~= 0.240) To avoid too much smoothing with 'ei', suggested max_accel <= 2500 mm/sec^2 Fitted shaper '2hump_ei' frequency = 48.0 Hz (vibrations = 0.0%, smoothing ~= 0.234) To avoid too much smoothing with '2hump_ei', suggested max_accel <= 2500 mm/sec^2 Fitted shaper '3hump_ei' frequency = 59.0 Hz (vibrations = 0.0%, smoothing ~= 0.235) To avoid too much smoothing with '3hump_ei', suggested max_accel <= 2500 mm/sec^2 Recommended shaper_type_y = mzv, shaper_freq_y = 36.8 Hz Se sei d'accordo con i parametri suggeriti, puoi eseguire ora SAVE_CONFIG per salvarli e riavviare Klipper. Nota che questo non aggiorner\u00e0 il valore max_accel nella sezione [printer] . Dovresti aggiornarlo manualmente seguendo le considerazioni nella sezione Selecting max_accel . Se la tua stampante \u00e8 una stampante a piatto mobile, puoi specificare quale asse testare, in modo da poter cambiare il punto di montaggio dell'accelerometro tra i test (per impostazione predefinita, il test viene eseguito per entrambi gli assi): SHAPER_CALIBRATE AXIS=Y \u00c8 possibile eseguire SAVE_CONFIG due volte, dopo aver calibrato ciascun asse. Tuttavia, se hai collegato due accelerometri contemporaneamente, esegui semplicemente SHAPER_CALIBRATE senza specificare un asse per calibrare l' input shaper per entrambi gli assi in una volta sola. Input Shaper ricalibrazione \u00b6 Il comando SHAPER_CALIBRATE pu\u00f2 essere utilizzato anche per ricalibrare lo shaper di input in futuro, specialmente se vengono apportate alcune modifiche alla stampante che possono influire sulla sua cinematica. \u00c8 possibile eseguire nuovamente la calibrazione completa utilizzando il comando SHAPER_CALIBRATE , o limitare l'autocalibrazione a un singolo asse fornendo il parametro AXIS= , come SHAPER_CALIBRATE AXIS=X Attenzione! Non \u00e8 consigliabile eseguire l'autocalibrazione dello shaper molto frequentemente (ad es. prima di ogni stampa o ogni giorno). Per determinare le frequenze di risonanza, l'autocalibrazione crea intense vibrazioni su ciascuno degli assi. Generalmente, le stampanti 3D non sono progettate per resistere a un'esposizione prolungata a vibrazioni vicino alle frequenze di risonanza. Ci\u00f2 potrebbe aumentare l'usura dei componenti della stampante e ridurne la durata. C'\u00e8 anche un aumento del rischio che alcune parti si svitino o si allentino. Verificare sempre che tutte le parti della stampante (comprese quelle che normalmente potrebbero non muoversi) siano fissate saldamente in posizione dopo ogni autotuning. Inoltre, a causa di un po' di rumore nelle misurazioni, \u00e8 possibile che i risultati dell'ottimizzazione siano leggermente diversi da una calibrazione all'altra. Tuttavia, non ci si aspetta che il rumore influisca troppo sulla qualit\u00e0 di stampa. Tuttavia, si consiglia comunque di ricontrollare i parametri suggeriti e di stampare alcune stampe di prova prima di utilizzarli per confermare che siano corretti. Elaborazione offline dei dati dell'accelerometro \u00b6 \u00c8 possibile generare i dati grezzi dell'accelerometro ed elaborarli offline (ad esempio su una macchina host), ad esempio per trovare risonanze. Per fare ci\u00f2, esegui i seguenti comandi tramite il terminale Octoprint: SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0 TEST_RESONANCES AXIS=X OUTPUT=raw_data ignorando eventuali errori per il comando SET_INPUT_SHAPER . Per il comando TEST_RESONANCES , specificare l'asse di test desiderato. I dati grezzi verranno scritti nella directory /tmp sull'RPi. I dati grezzi possono anche essere ottenuti eseguendo il comando ACCELEROMETER_MEASURE due volte durante una normale attivit\u00e0 della stampante: prima per avviare le misurazioni, quindi per interromperle e scrivere il file di output. Fare riferimento a G-Codes per maggiori dettagli. I dati possono essere elaborati successivamente dai seguenti script: scripts/graph_accelerometer.py e scripts/calibrate_shaper.py . Entrambi accettano uno o pi\u00f9 file CSV non elaborati come input a seconda della modalit\u00e0. Lo script graph_accelerometer.py supporta diverse modalit\u00e0 operative: tracciando i dati grezzi dell'accelerometro (usa il parametro -r ), \u00e8 supportato solo 1 input; tracciando una risposta in frequenza (non sono richiesti parametri aggiuntivi), se sono specificati pi\u00f9 ingressi, viene calcolata la risposta in frequenza media; confronto della risposta in frequenza tra pi\u00f9 ingressi (usare il parametro -c ); puoi inoltre specificare quale asse dell'accelerometro considerare tramite il parametro -a x , -a y o -a z (se non specificato, viene utilizzata la somma delle vibrazioni per tutti gli assi); tracciando lo spettrogramma (usare il parametro -s ), \u00e8 supportato solo 1 input; \u00e8 inoltre possibile specificare quale asse dell'accelerometro considerare tramite il parametro -a x , -a y o -a z (se non specificato, viene utilizzata la somma delle vibrazioni per tutti gli assi). Si noti che lo script graph_accelerometer.py supporta solo i file raw_data*.csv e non i file resonances*.csv o calibration_data*.csv. Per esempio, ~/klipper/scripts/graph_accelerometer.py /tmp/raw_data_x_*.csv -o /tmp/resonances_x.png -c -a z traccer\u00e0 il confronto di diversi file /tmp/raw_data_x_*.csv per l'asse Z con il file /tmp/resonances_x.png . Lo script shaper_calibrate.py accetta 1 o pi\u00f9 input e pu\u00f2 eseguire l'ottimizzazione automatica dello shaper di input e suggerire i parametri migliori che funzionano bene per tutti gli input forniti. Stampa i parametri suggeriti sulla console e pu\u00f2 inoltre generare il grafico se viene fornito il parametro -o output.png , o il file CSV se viene specificato il parametro -c output.csv . Fornire diversi input allo script shaper_calibrate.py pu\u00f2 essere utile se si esegue un'ottimizzazione avanzata degli shaper di input, ad esempio: Esecuzione di TEST_RESONANCES AXIS=X OUTPUT=raw_data (e asse Y ) per un singolo asse due volte su una stampante con piatto scorrevole con l'accelerometro collegato alla testa di stampa la prima volta e l'accelerometro collegato al piatto la seconda volta in modo da rilevare le risonanze incrociate degli assi e tentare di cancellarle con gli input shaper. Esecuzione di TEST_RESONANCES AXIS=Y OUTPUT=raw_data due volte su un supporto da piatto con un piatto di vetro e una superficie magnetica (che \u00e8 pi\u00f9 leggera) per trovare i parametri dello shaper di input che funzionano bene per qualsiasi configurazione della superficie di stampa. Combinazione dei dati di risonanza da pi\u00f9 punti di test. Combinando i dati di risonanza da 2 assi (ad es. su una stampante con piatto scorrevole per configurare input_shaper dell'asse X dalle risonanze degli assi X e Y per annullare le vibrazioni del piatto nel caso in cui l'ugello \"cattura\" una stampa quando si sposta nella direzione dell'asse X ).","title":"Misurazione delle risonanze"},{"location":"Measuring_Resonances.html#misurazione-delle-risonanze","text":"Klipper ha il supporto integrato per l'accelerometro ADXL345, che pu\u00f2 essere utilizzato per misurare le frequenze di risonanza della stampante per diversi assi, e per l'autotuning input shapers per compensare le risonanze. Si noti che l'utilizzo di ADXL345 richiede alcune operazioni di saldatura e crimpatura. ADXL345 pu\u00f2 essere collegato direttamente a un Raspberry Pi o a un'interfaccia SPI di una scheda MCU (deve essere ragionevolmente veloce). Quando acquisti ADXL345, tieni presente che esiste una variet\u00e0 di diversi design di schede PCB e diversi cloni di essi. Assicurati che la scheda supporti la modalit\u00e0 SPI (un piccolo numero di schede sembra essere configurato in modo rigido per I2C trascinando SDO su GND) e, se deve essere collegato a un MCU per stampante da 5 V, che abbia un regolatore di tensione e un cambio di livello.","title":"Misurazione delle risonanze"},{"location":"Measuring_Resonances.html#istruzioni-per-linstallazione","text":"","title":"Istruzioni per l'installazione"},{"location":"Measuring_Resonances.html#cablaggio","text":"Devi connettere ADXL345 al tuo Raspberry Pi tramite SPI. Si noti che la connessione I2C, suggerita dalla documentazione di ADXL345, ha un throughput troppo basso e non funzioner\u00e0 . Lo schema di connessione consigliato: ADXL345 pin RPi pin Nome pin RPi 3V3 (or VCC) 01 3.3v alimentazione DC GND 06 Ground CS 24 GPIO08 (SPI0_CE0_N) SDO 21 GPIO09 (SPI0_MISO) SDA 19 GPIO10 (SPI0_MOSI) SCL 23 GPIO11 (SPI0_SCLK) Un'alternativa all'ADXL345 \u00e8 l'MPU-9250 (o MPU-6050). Questo accelerometro \u00e8 stato testato per funzionare su I2C su RPi a 400kbaud. Schema di connessione consigliato per I2C: pin MPU-9250 RPi pin Nome pin RPi 3V3 (or VCC) 01 3.3v alimentazione DC GND 09 Ground SDA 03 GPIO02 (SDA1) SCL 05 GPIO03 (SCL1) Schemi collegamenti Fritzing per alcune delle schede ADXL345: Ricontrolla il cablaggio prima di accendere il Raspberry Pi per evitare di danneggiare RPi o l'accelerometro.","title":"Cablaggio"},{"location":"Measuring_Resonances.html#montaggio-dellaccelerometro","text":"L'accelerometro deve essere collegato alla testa di stampa. \u00c8 necessario progettare un supporto adeguato che si adatti alla propria stampante 3D. \u00c8 meglio allineare gli assi dell'accelerometro con gli assi della stampante (ma se lo rende pi\u00f9 comodo, gli assi possono essere scambiati - cio\u00e8 non c'\u00e8 bisogno di allineare l'asse X con X e cos\u00ec via - dovrebbe andare bene anche se l'asse Z di l'accelerometro \u00e8 l'asse X della stampante, ecc.). Un esempio di montaggio di ADXL345 su SmartEffect: Si noti che su una stampante con piatto mobile \u00e8 necessario progettare 2 supporti: uno per la testina e uno per il piatto, ed eseguire le misurazioni due volte. Per maggiori dettagli, vedere la sezione corrispondente. Attenzione: assicurati che l'accelerometro e le eventuali viti che lo tengono in posizione non tocchino parti metalliche della stampante. Fondamentalmente, il supporto deve essere progettato in modo tale da garantire l'isolamento elettrico dell'accelerometro dal telaio della stampante. Non riuscendo a garantire che pu\u00f2 creare un loop di massa nel sistema che potrebbe danneggiare l'elettronica.","title":"Montaggio dell'accelerometro"},{"location":"Measuring_Resonances.html#installazione-software","text":"Si noti che le misurazioni della risonanza e la calibrazione automatica dello shaper richiedono dipendenze software aggiuntive non installate per impostazione predefinita. Innanzitutto, esegui sul tuo Raspberry Pi i seguenti comandi: sudo apt update sudo apt install python3-numpy python3-matplotlib libatlas-base-dev Quindi, per installare NumPy nell'ambiente Klipper, esegui il comando: ~/klippy-env/bin/pip install -v numpy Nota che, a seconda delle prestazioni della CPU, potrebbe volerci molto tempo, fino a 10-20 minuti. Sii paziente e attendi il completamento dell'installazione. In alcune occasioni, se la scheda ha poca RAM, l'installazione potrebbe non riuscire e sar\u00e0 necessario abilitare la swap. Successivamente, controlla e segui le istruzioni nel documento RPi Microcontroller per configurare \"linux mcu\" sul Raspberry Pi. Assicurati che il driver SPI di Linux sia abilitato eseguendo sudo raspi-config e abilitando SPI nel menu \"Opzioni di interfaccia\". Per ADXL345, aggiungere quanto segue al file printer.cfg: [mcu rpi] serial: /tmp/klipper_host_mcu [adxl345] cs_pin: rpi:None [resonance_tester] accel_chip: adxl345 probe_points: 100, 100, 20 # un esempio Si consiglia di iniziare con 1 punto sonda, al centro del piano di stampa, leggermente al di sopra di esso. Per l'MPU-9250, assicurarsi che il driver Linux I2C sia abilitato e che la velocit\u00e0 di trasmissione sia impostata su 400000 (consultare la sezione Abilitazione di I2C per maggiori dettagli). Quindi, aggiungi quanto segue a printer.cfg: [mcu rpi] serial: /tmp/klipper_host_mcu [mpu9250] i2c_mcu: rpi i2c_bus: i2c.1 [resonance_tester] accel_chip: mpu9250 probe_points: 100, 100, 20 # un esempio Riavvia Klipper tramite il comando RESTART .","title":"Installazione software"},{"location":"Measuring_Resonances.html#misurare-le-risonanze","text":"","title":"Misurare le risonanze"},{"location":"Measuring_Resonances.html#controllo-della-configurazione","text":"Ora puoi testare una connessione. Per \"per piatti non scorrevoli\" (es. un accelerometro), in Octoprint, inserisci ACCELEROMETER_QUERY Per \"piatti scorrevoli\" (ad es. pi\u00f9 di un accelerometro), immettere ACCELEROMETER_QUERY CHIP=<chip> dove <chip> \u00e8 il nome del chip immesso, ad es. CHIP=piatto (vedi: bed-slinger ) per tutti i chip dell'accelerometro installati. Dovresti vedere le misurazioni attuali dall'accelerometro, inclusa l'accelerazione di caduta libera, ad es. Recv: // adxl345 values (x, y, z): 470.719200, 941.438400, 9728.196800 Se ricevi un errore come Invalid adxl345 id (got xx vs e5) , dove xx \u00e8 un altro ID, \u00e8 indicativo del problema di connessione con ADXL345 o del sensore difettoso. Ricontrolla l'alimentazione, il cablaggio (che corrisponda agli schemi, nessun filo \u00e8 rotto o allentato, ecc.) e la qualit\u00e0 delle saldature. Quindi, prova a eseguire MEASURE_AXES_NOISE in Octoprint, dovresti ottenere alcuni numeri di riferimento per il rumore dell'accelerometro sugli assi (dovrebbe essere compreso tra ~1-100). Un rumore degli assi troppo elevato (ad es. 1000 e pi\u00f9) pu\u00f2 essere indicativo di problemi con il sensore, problemi con la sua alimentazione o ventole sbilanciate troppo rumorose su una stampante 3D.","title":"Controllo della configurazione"},{"location":"Measuring_Resonances.html#misurare-le-risonanze_1","text":"Ora puoi eseguire alcuni test realistici. Esegui il seguente comando: TEST_RESONANCES AXIS=X Nota che creer\u00e0 vibrazioni sull'asse X. Disabiliter\u00e0 anche l'input shaping se era stato abilitato in precedenza, poich\u00e9 non \u00e8 valido eseguire il test di risonanza con l'input shaper abilitato. Attenzione! Assicurati di osservare la stampante per la prima volta, per assicurarti che le vibrazioni non diventino troppo violente (il comando M112 pu\u00f2 essere utilizzato per interrompere il test in caso di emergenza; si spera che non si verifichi questo per\u00f2). Se le vibrazioni diventano troppo forti, puoi provare a specificare un valore inferiore al valore predefinito per il parametro accel_per_hz nella sezione [resonance_tester] , ad es. [resonance_tester] accel_chip: adxl345 accel_per_hz: 50 # default \u00e8 75 probe_points: ... Se funziona per l'asse X, esegui anche per l'asse Y: TEST_RESONANCES AXIS=Y Questo generer\u00e0 2 file CSV ( /tmp/resonances_x_*.csv e /tmp/resonances_y_*.csv ). Questi file possono essere elaborati con lo script autonomo su un Raspberry Pi. Per farlo, esegui i seguenti comandi: ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_y_*.csv -o /tmp/shaper_calibrate_y.png Questo script generer\u00e0 i grafici /tmp/shaper_calibrate_x.png e /tmp/shaper_calibrate_y.png con le risposte in frequenza. Riceverai anche le frequenze suggerite per ogni input shaper, nonch\u00e9 quale input shaper \u00e8 consigliato per la tua configurazione. Per esempio: Fitted shaper 'zv' frequency = 34.4 Hz (vibrations = 4.0%, smoothing ~= 0.132) To avoid too much smoothing with 'zv', suggested max_accel <= 4500 mm/sec^2 Fitted shaper 'mzv' frequency = 34.6 Hz (vibrations = 0.0%, smoothing ~= 0.170) To avoid too much smoothing with 'mzv', suggested max_accel <= 3500 mm/sec^2 Fitted shaper 'ei' frequency = 41.4 Hz (vibrations = 0.0%, smoothing ~= 0.188) To avoid too much smoothing with 'ei', suggested max_accel <= 3200 mm/sec^2 Fitted shaper '2hump_ei' frequency = 51.8 Hz (vibrations = 0.0%, smoothing ~= 0.201) To avoid too much smoothing with '2hump_ei', suggested max_accel <= 3000 mm/sec^2 Fitted shaper '3hump_ei' frequency = 61.8 Hz (vibrations = 0.0%, smoothing ~= 0.215) To avoid too much smoothing with '3hump_ei', suggested max_accel <= 2800 mm/sec^2 Recommended shaper is mzv @ 34.6 Hz La configurazione suggerita pu\u00f2 essere aggiunta alla sezione [input_shaper] di printer.cfg , ad esempio: [input_shaper] shaper_freq_x: ... shaper_type_x: ... shaper_freq_y: 34.6 shaper_type_y: mzv [printer] max_accel: 3000 # non dovrebbe superare il max_accel stimato per gli assi X e Y oppure puoi scegliere tu stesso un'altra configurazione in base ai grafici generati: i picchi nella densit\u00e0 spettrale di potenza sui grafici corrispondono alle frequenze di risonanza della stampante. Nota che in alternativa puoi eseguire l'autocalibrazione dello input shaper da Klipper directly , che pu\u00f2 essere conveniente, ad esempio, per lo input shaper re-calibration .","title":"Misurare le risonanze"},{"location":"Measuring_Resonances.html#stampanti-con-piatto-scorrevole","text":"Se la tua stampante ha un piatto scorrevole, dovrai cambiare la posizione dell'accelerometro tra le misurazioni per gli assi X e Y: misurare le risonanze dell'asse X con l'accelerometro collegato alla testa di stampa e le risonanze dell'asse Y - al piatto. Tuttavia, puoi anche collegare due accelerometri contemporaneamente, sebbene debbano essere collegati a schede diverse (ad esempio, a una scheda RPi e MCU della stampante) o a due diverse interfacce SPI fisiche sulla stessa scheda (raramente disponibili). Quindi possono essere configurati nel modo seguente: [adxl345 hotend] # Supponendo che il chip \"hotend\" sia collegato a un RPi cs_pin: rpi:None [adxl345 bed] # Supponendo che il chip `bed` sia collegato a una scheda MCU della stampante cs_pin: ... # Pin di selezione chip SPI (CS) della scheda stampante [resonance_tester] # Assumendo la configurazione tipo della stampante con piatto scorrevole accel_chip_x: adxl345 hotend accel_chip_y: adxl345 bed probe_points: ... Quindi i comandi TEST_RESONANCES AXIS=X e TEST_RESONANCES AXIS=Y utilizzeranno l'accelerometro corretto per ciascun asse.","title":"Stampanti con piatto scorrevole"},{"location":"Measuring_Resonances.html#max-smoothing","text":"Tieni presente che lo input shaper pu\u00f2 creare un po' di smoothing nelle parti. La regolazione automatica del input shaper eseguita dallo script calibrate_shaper.py o dal comando SHAPER_CALIBRATE cercano di non esacerbare lo smoothing, ma allo stesso tempo cercano di ridurre al minimo le vibrazioni risultanti. A volte possono fare una scelta non ottimale della frequenza dello shaper, o forse semplicemente preferisci avere meno smoothing in alcune parti a scapito di maggiori vibrazioni residue. In questi casi \u00e8 possibile richiedere di limitare lo smoothing massimo dal input shaper. Consideriamo i seguenti risultati della sintonizzazione automatica: Fitted shaper 'zv' frequency = 57.8 Hz (vibrations = 20.3%, smoothing ~= 0.053) To avoid too much smoothing with 'zv', suggested max_accel <= 13000 mm/sec^2 Fitted shaper 'mzv' frequency = 34.8 Hz (vibrations = 3.6%, smoothing ~= 0.168) To avoid too much smoothing with 'mzv', suggested max_accel <= 3600 mm/sec^2 Fitted shaper 'ei' frequency = 48.8 Hz (vibrations = 4.9%, smoothing ~= 0.135) To avoid too much smoothing with 'ei', suggested max_accel <= 4400 mm/sec^2 Fitted shaper '2hump_ei' frequency = 45.2 Hz (vibrations = 0.1%, smoothing ~= 0.264) To avoid too much smoothing with '2hump_ei', suggested max_accel <= 2200 mm/sec^2 Fitted shaper '3hump_ei' frequency = 48.0 Hz (vibrations = 0.0%, smoothing ~= 0.356) To avoid too much smoothing with '3hump_ei', suggested max_accel <= 1500 mm/sec^2 Recommended shaper is 2hump_ei @ 45.2 Hz Si noti che i valori di smoothing riportati sono alcuni valori proiettati. Questi valori possono essere utilizzati per confrontare diverse configurazioni: maggiore \u00e8 il valore, maggiore sar\u00e0 la levigatura creata da uno shaper. Tuttavia, questi punteggi di smoothing non rappresentano alcuna misura reale dello smoothing, perch\u00e9 lo smoothing effettivo dipende dai parametri max_accel e square_corner_velocity . Pertanto, \u00e8 necessario eseguire alcune stampe di prova per vedere quanta smoothing crea esattamente una configurazione scelta. Nell'esempio sopra i parametri dello shaper suggeriti non sono male, ma cosa succede se si desidera ottenere meno smooting sull'asse X? Puoi provare a limitare lo smoothing massimo dello shaper usando il seguente comando: ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png --max_smoothing=0.2 che limita lo smoothing a un punteggio di 0.2. Ora puoi ottenere il seguente risultato: Fitted shaper 'zv' frequency = 55.4 Hz (vibrations = 19.7%, smoothing ~= 0.057) To avoid too much smoothing with 'zv', suggested max_accel <= 12000 mm/sec^2 Fitted shaper 'mzv' frequency = 34.6 Hz (vibrations = 3.6%, smoothing ~= 0.170) To avoid too much smoothing with 'mzv', suggested max_accel <= 3500 mm/sec^2 Fitted shaper 'ei' frequency = 48.2 Hz (vibrations = 4.8%, smoothing ~= 0.139) To avoid too much smoothing with 'ei', suggested max_accel <= 4300 mm/sec^2 Fitted shaper '2hump_ei' frequency = 52.0 Hz (vibrations = 2.7%, smoothing ~= 0.200) To avoid too much smoothing with '2hump_ei', suggested max_accel <= 3000 mm/sec^2 Fitted shaper '3hump_ei' frequency = 72.6 Hz (vibrations = 1.4%, smoothing ~= 0.155) To avoid too much smoothing with '3hump_ei', suggested max_accel <= 3900 mm/sec^2 Recommended shaper is 3hump_ei @ 72.6 Hz Se si confronta con i parametri suggeriti in precedenza, le vibrazioni sono un po' maggiori, ma lo smoothing \u00e8 notevolmente inferiore rispetto a prima, consentendo un'accelerazione massima maggiore. Quando si decide quale parametro max_smoothing scegliere, \u00e8 possibile utilizzare un approccio per tentativi. Prova alcuni valori diversi e guarda quali risultati ottieni. Si noti che lo smoothing effettivo prodotto dall'input shaper dipende principalmente dalla frequenza di risonanza pi\u00f9 bassa della stampante: maggiore \u00e8 la frequenza della risonanza pi\u00f9 bassa, minore \u00e8 lo smoothing. Pertanto, se si richiede allo script di trovare una configurazione dell'input shaper con lo smoothing irrealisticamente piccolo, sar\u00e0 a scapito di un aumento del ringing alle frequenze di risonanza pi\u00f9 basse (che sono, in genere, anche pi\u00f9 visibili nelle stampe). Quindi, ricontrolla sempre le vibrazioni rimanenti previste riportate dallo script e assicurati che non siano troppo alte. Nota che se hai scelto un buon valore max_smoothing per entrambi gli assi, puoi salvarlo in printer.cfg come [resonance_tester] accel_chip: ... probe_points: ... max_smoothing: 0.25 # un esempio Quindi, se riesegui l'autotuning dello shaper di input usando il comando Klipper SHAPER_CALIBRATE in futuro, utilizzer\u00e0 il valore max_smoothing memorizzato come riferimento.","title":"Max smoothing"},{"location":"Measuring_Resonances.html#seleziona-max_accel","text":"Poich\u00e9 l'input shaper pu\u00f2 creare un po' di smussamento nelle parti, specialmente ad accelerazioni elevate, sar\u00e0 comunque necessario scegliere il valore max_accel che non crei troppo smussamento \"smoothing\" nelle parti stampate. Uno script di calibrazione fornisce una stima per il parametro max_accel che non dovrebbe creare un smoothing eccessivo. Si noti che il max_accel visualizzato dallo script di calibrazione \u00e8 solo un massimo teorico al quale il rispettivo shaper \u00e8 ancora in grado di lavorare senza produrre troppo smoothing. Non \u00e8 affatto una raccomandazione impostare questa accelerazione per la stampa. L'accelerazione massima che la stampante \u00e8 in grado di sostenere dipende dalle sue propriet\u00e0 meccaniche e dalla coppia massima dei motori passo-passo utilizzati. Pertanto, si suggerisce di impostare max_accel nella sezione [printer] che non superi i valori stimati per gli assi X e Y, probabilmente con un margine di sicurezza conservativo. In alternativa, segui questa parte della guida all'ottimizzazione dello input shaper e stampa il modello di test per scegliere sperimentalmente il parametro max_accel . Lo stesso avviso vale per lo input shaper auto-calibration con il comando SHAPER_CALIBRATE : \u00e8 comunque necessario scegliere il giusto valore di max_accel dopo l'auto-calibrazione, e il i limiti di accelerazione non verranno applicati automaticamente. Se stai eseguendo una ricalibrazione dello shaper e lo smoothing riportato per la configurazione dello shaper suggerita \u00e8 quasi lo stesso di quello ottenuto durante la calibrazione precedente, questo passaggio pu\u00f2 essere saltato.","title":"Seleziona max_accel"},{"location":"Measuring_Resonances.html#test-di-assi-personalizzati","text":"Il comando TEST_RESONANCES supporta assi personalizzati. Anche se questo non \u00e8 molto utile per la calibrazione del input shaper, pu\u00f2 essere utilizzato per studiare in profondit\u00e0 le risonanze della stampante e per controllare, ad esempio, la tensione della cinghia. Per controllare la tensione della cinghia sulle stampanti CoreXY, eseguire TEST_RESONANCES AXIS=1,1 OUTPUT=raw_data TEST_RESONANCES AXIS=1,-1 OUTPUT=raw_data e usa graph_accelerometer.py per elaborare i file generati, ad es. ~/klipper/scripts/graph_accelerometer.py -c /tmp/raw_data_axis*.csv -o /tmp/resonances.png che generer\u00e0 /tmp/resonances.png confrontando le risonanze. Per le stampanti Delta con la posizione della torre predefinita (torre A ~= 210 gradi, B ~= 330 gradi e C ~= 90 gradi), eseguire TEST_RESONANCES AXIS=0,1 OUTPUT=raw_data TEST_RESONANCES AXIS=-0.866025404,-0.5 OUTPUT=raw_data TEST_RESONANCES AXIS=0.866025404,-0.5 OUTPUT=raw_data e quindi utilizzare lo stesso comando ~/klipper/scripts/graph_accelerometer.py -c /tmp/raw_data_axis*.csv -o /tmp/resonances.png per generare /tmp/resonances.png confrontando le risonanze.","title":"Test di assi personalizzati"},{"location":"Measuring_Resonances.html#calibrazione-automatica-input-shaper","text":"Oltre a scegliere manualmente i parametri appropriati per la funzione di input shaper, \u00e8 anche possibile eseguire l'autotuning per l'input shaper direttamente da Klipper. Esegui il seguente comando tramite il terminale Octoprint: SHAPER_CALIBRATE Questo eseguir\u00e0 il test completo per entrambi gli assi e generer\u00e0 l'output csv ( /tmp/calibration_data_*.csv per impostazione predefinita) per la risposta in frequenza e gli input shaper suggeriti. Riceverai anche le frequenze suggerite per ciascun input shaper, nonch\u00e9 quale input shaper \u00e8 consigliato per la tua configurazione, sulla console Octoprint. Per esempio: Calculating the best input shaper parameters for y axis Fitted shaper 'zv' frequency = 39.0 Hz (vibrations = 13.2%, smoothing ~= 0.105) To avoid too much smoothing with 'zv', suggested max_accel <= 5900 mm/sec^2 Fitted shaper 'mzv' frequency = 36.8 Hz (vibrations = 1.7%, smoothing ~= 0.150) To avoid too much smoothing with 'mzv', suggested max_accel <= 4000 mm/sec^2 Fitted shaper 'ei' frequency = 36.6 Hz (vibrations = 2.2%, smoothing ~= 0.240) To avoid too much smoothing with 'ei', suggested max_accel <= 2500 mm/sec^2 Fitted shaper '2hump_ei' frequency = 48.0 Hz (vibrations = 0.0%, smoothing ~= 0.234) To avoid too much smoothing with '2hump_ei', suggested max_accel <= 2500 mm/sec^2 Fitted shaper '3hump_ei' frequency = 59.0 Hz (vibrations = 0.0%, smoothing ~= 0.235) To avoid too much smoothing with '3hump_ei', suggested max_accel <= 2500 mm/sec^2 Recommended shaper_type_y = mzv, shaper_freq_y = 36.8 Hz Se sei d'accordo con i parametri suggeriti, puoi eseguire ora SAVE_CONFIG per salvarli e riavviare Klipper. Nota che questo non aggiorner\u00e0 il valore max_accel nella sezione [printer] . Dovresti aggiornarlo manualmente seguendo le considerazioni nella sezione Selecting max_accel . Se la tua stampante \u00e8 una stampante a piatto mobile, puoi specificare quale asse testare, in modo da poter cambiare il punto di montaggio dell'accelerometro tra i test (per impostazione predefinita, il test viene eseguito per entrambi gli assi): SHAPER_CALIBRATE AXIS=Y \u00c8 possibile eseguire SAVE_CONFIG due volte, dopo aver calibrato ciascun asse. Tuttavia, se hai collegato due accelerometri contemporaneamente, esegui semplicemente SHAPER_CALIBRATE senza specificare un asse per calibrare l' input shaper per entrambi gli assi in una volta sola.","title":"Calibrazione automatica Input Shaper"},{"location":"Measuring_Resonances.html#input-shaper-ricalibrazione","text":"Il comando SHAPER_CALIBRATE pu\u00f2 essere utilizzato anche per ricalibrare lo shaper di input in futuro, specialmente se vengono apportate alcune modifiche alla stampante che possono influire sulla sua cinematica. \u00c8 possibile eseguire nuovamente la calibrazione completa utilizzando il comando SHAPER_CALIBRATE , o limitare l'autocalibrazione a un singolo asse fornendo il parametro AXIS= , come SHAPER_CALIBRATE AXIS=X Attenzione! Non \u00e8 consigliabile eseguire l'autocalibrazione dello shaper molto frequentemente (ad es. prima di ogni stampa o ogni giorno). Per determinare le frequenze di risonanza, l'autocalibrazione crea intense vibrazioni su ciascuno degli assi. Generalmente, le stampanti 3D non sono progettate per resistere a un'esposizione prolungata a vibrazioni vicino alle frequenze di risonanza. Ci\u00f2 potrebbe aumentare l'usura dei componenti della stampante e ridurne la durata. C'\u00e8 anche un aumento del rischio che alcune parti si svitino o si allentino. Verificare sempre che tutte le parti della stampante (comprese quelle che normalmente potrebbero non muoversi) siano fissate saldamente in posizione dopo ogni autotuning. Inoltre, a causa di un po' di rumore nelle misurazioni, \u00e8 possibile che i risultati dell'ottimizzazione siano leggermente diversi da una calibrazione all'altra. Tuttavia, non ci si aspetta che il rumore influisca troppo sulla qualit\u00e0 di stampa. Tuttavia, si consiglia comunque di ricontrollare i parametri suggeriti e di stampare alcune stampe di prova prima di utilizzarli per confermare che siano corretti.","title":"Input Shaper ricalibrazione"},{"location":"Measuring_Resonances.html#elaborazione-offline-dei-dati-dellaccelerometro","text":"\u00c8 possibile generare i dati grezzi dell'accelerometro ed elaborarli offline (ad esempio su una macchina host), ad esempio per trovare risonanze. Per fare ci\u00f2, esegui i seguenti comandi tramite il terminale Octoprint: SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0 TEST_RESONANCES AXIS=X OUTPUT=raw_data ignorando eventuali errori per il comando SET_INPUT_SHAPER . Per il comando TEST_RESONANCES , specificare l'asse di test desiderato. I dati grezzi verranno scritti nella directory /tmp sull'RPi. I dati grezzi possono anche essere ottenuti eseguendo il comando ACCELEROMETER_MEASURE due volte durante una normale attivit\u00e0 della stampante: prima per avviare le misurazioni, quindi per interromperle e scrivere il file di output. Fare riferimento a G-Codes per maggiori dettagli. I dati possono essere elaborati successivamente dai seguenti script: scripts/graph_accelerometer.py e scripts/calibrate_shaper.py . Entrambi accettano uno o pi\u00f9 file CSV non elaborati come input a seconda della modalit\u00e0. Lo script graph_accelerometer.py supporta diverse modalit\u00e0 operative: tracciando i dati grezzi dell'accelerometro (usa il parametro -r ), \u00e8 supportato solo 1 input; tracciando una risposta in frequenza (non sono richiesti parametri aggiuntivi), se sono specificati pi\u00f9 ingressi, viene calcolata la risposta in frequenza media; confronto della risposta in frequenza tra pi\u00f9 ingressi (usare il parametro -c ); puoi inoltre specificare quale asse dell'accelerometro considerare tramite il parametro -a x , -a y o -a z (se non specificato, viene utilizzata la somma delle vibrazioni per tutti gli assi); tracciando lo spettrogramma (usare il parametro -s ), \u00e8 supportato solo 1 input; \u00e8 inoltre possibile specificare quale asse dell'accelerometro considerare tramite il parametro -a x , -a y o -a z (se non specificato, viene utilizzata la somma delle vibrazioni per tutti gli assi). Si noti che lo script graph_accelerometer.py supporta solo i file raw_data*.csv e non i file resonances*.csv o calibration_data*.csv. Per esempio, ~/klipper/scripts/graph_accelerometer.py /tmp/raw_data_x_*.csv -o /tmp/resonances_x.png -c -a z traccer\u00e0 il confronto di diversi file /tmp/raw_data_x_*.csv per l'asse Z con il file /tmp/resonances_x.png . Lo script shaper_calibrate.py accetta 1 o pi\u00f9 input e pu\u00f2 eseguire l'ottimizzazione automatica dello shaper di input e suggerire i parametri migliori che funzionano bene per tutti gli input forniti. Stampa i parametri suggeriti sulla console e pu\u00f2 inoltre generare il grafico se viene fornito il parametro -o output.png , o il file CSV se viene specificato il parametro -c output.csv . Fornire diversi input allo script shaper_calibrate.py pu\u00f2 essere utile se si esegue un'ottimizzazione avanzata degli shaper di input, ad esempio: Esecuzione di TEST_RESONANCES AXIS=X OUTPUT=raw_data (e asse Y ) per un singolo asse due volte su una stampante con piatto scorrevole con l'accelerometro collegato alla testa di stampa la prima volta e l'accelerometro collegato al piatto la seconda volta in modo da rilevare le risonanze incrociate degli assi e tentare di cancellarle con gli input shaper. Esecuzione di TEST_RESONANCES AXIS=Y OUTPUT=raw_data due volte su un supporto da piatto con un piatto di vetro e una superficie magnetica (che \u00e8 pi\u00f9 leggera) per trovare i parametri dello shaper di input che funzionano bene per qualsiasi configurazione della superficie di stampa. Combinazione dei dati di risonanza da pi\u00f9 punti di test. Combinando i dati di risonanza da 2 assi (ad es. su una stampante con piatto scorrevole per configurare input_shaper dell'asse X dalle risonanze degli assi X e Y per annullare le vibrazioni del piatto nel caso in cui l'ugello \"cattura\" una stampa quando si sposta nella direzione dell'asse X ).","title":"Elaborazione offline dei dati dell'accelerometro"},{"location":"Multi_MCU_Homing.html","text":"Homing e Probing con microcontrollore multiplo \u00b6 Klipper sopporta un meccanismo per homing con un fine corsa collegato a un micro controllore mentre i motori passo-passo sono collegati ad un controllore diverso. Questa modalit\u00e0 \u00e8 definita Homing multi-mcu. Questa funzione \u00e8 usata quando una sonda Z \u00e8 collegata ad un differente controllore rispetto ai motori dell'asse Z. Questa funzione pu\u00f2 essere utile per semplificare il cablaggio, poich\u00e9 potrebbe essere pi\u00f9 conveniente collegare un finecorsa o una sonda a un microcontrollore pi\u00f9 vicino. Tuttavia, l'utilizzo di questa funzione pu\u00f2 comportare un \"overshoot\" dei motori passo-passo durante le operazioni di homing o con sonda. L' 'overshoot' si verifica a causa di possibili ritardi nella trasmissione del messaggio tra il microcontrollore che controlla il finecorsa e i microcontrollori che muovono i motori passo-passo. Il codice Klipper \u00e8 progettato per limitare questo ritardo a non pi\u00f9 di 25 ms. (Quando \u00e8 attivato l'homing multi-mcu, i microcontrollori inviano messaggi di stato periodici e controllano che i messaggi di stato corrispondenti vengano ricevuti entro 25 ms.) Quindi, ad esempio, se si esegue l'homing a 10 mm/s, \u00e8 possibile un superamento fino a 0,250 mm (10 mm/s * .025s == 0,250 mm). \u00c8 necessario prestare attenzione durante la configurazione dell'homing multi-mcu per tenere conto di questo tipo di overshoot. L'uso di velocit\u00e0 di riferimento o di sonda pi\u00f9 lente pu\u00f2 ridurre la sovraelongazione (overshot). La sovraelongazione 'overshot' del motore passo-passo non dovrebbe influire negativamente sulla precisione della procedura di homing e di sonda. Il codice Klipper rilever\u00e0 il superamento e ne terr\u00e0 conto nei suoi calcoli. Tuttavia, \u00e8 importante che il design dell'hardware sia in grado di gestire l'overshoot senza causare danni alla macchina. Se Klipper dovesse rilevare un problema di comunicazione tra i microcontrollori durante l'homing multi-mcu, generer\u00e0 un errore \"Timeout di comunicazione durante l'homing\". Si noti che un asse con pi\u00f9 stepper (ad esempio, stepper_z e stepper_z1 ) deve trovarsi sullo stesso microcontrollore per poter utilizzare l'homing multi-mcu. Ad esempio, se un endstop si trova su un microcontrollore separato da stepper_z allora stepper_z1 deve trovarsi sullo stesso microcontrollore di stepper_z .","title":"Homing e Probing con microcontrollore multiplo"},{"location":"Multi_MCU_Homing.html#homing-e-probing-con-microcontrollore-multiplo","text":"Klipper sopporta un meccanismo per homing con un fine corsa collegato a un micro controllore mentre i motori passo-passo sono collegati ad un controllore diverso. Questa modalit\u00e0 \u00e8 definita Homing multi-mcu. Questa funzione \u00e8 usata quando una sonda Z \u00e8 collegata ad un differente controllore rispetto ai motori dell'asse Z. Questa funzione pu\u00f2 essere utile per semplificare il cablaggio, poich\u00e9 potrebbe essere pi\u00f9 conveniente collegare un finecorsa o una sonda a un microcontrollore pi\u00f9 vicino. Tuttavia, l'utilizzo di questa funzione pu\u00f2 comportare un \"overshoot\" dei motori passo-passo durante le operazioni di homing o con sonda. L' 'overshoot' si verifica a causa di possibili ritardi nella trasmissione del messaggio tra il microcontrollore che controlla il finecorsa e i microcontrollori che muovono i motori passo-passo. Il codice Klipper \u00e8 progettato per limitare questo ritardo a non pi\u00f9 di 25 ms. (Quando \u00e8 attivato l'homing multi-mcu, i microcontrollori inviano messaggi di stato periodici e controllano che i messaggi di stato corrispondenti vengano ricevuti entro 25 ms.) Quindi, ad esempio, se si esegue l'homing a 10 mm/s, \u00e8 possibile un superamento fino a 0,250 mm (10 mm/s * .025s == 0,250 mm). \u00c8 necessario prestare attenzione durante la configurazione dell'homing multi-mcu per tenere conto di questo tipo di overshoot. L'uso di velocit\u00e0 di riferimento o di sonda pi\u00f9 lente pu\u00f2 ridurre la sovraelongazione (overshot). La sovraelongazione 'overshot' del motore passo-passo non dovrebbe influire negativamente sulla precisione della procedura di homing e di sonda. Il codice Klipper rilever\u00e0 il superamento e ne terr\u00e0 conto nei suoi calcoli. Tuttavia, \u00e8 importante che il design dell'hardware sia in grado di gestire l'overshoot senza causare danni alla macchina. Se Klipper dovesse rilevare un problema di comunicazione tra i microcontrollori durante l'homing multi-mcu, generer\u00e0 un errore \"Timeout di comunicazione durante l'homing\". Si noti che un asse con pi\u00f9 stepper (ad esempio, stepper_z e stepper_z1 ) deve trovarsi sullo stesso microcontrollore per poter utilizzare l'homing multi-mcu. Ad esempio, se un endstop si trova su un microcontrollore separato da stepper_z allora stepper_z1 deve trovarsi sullo stesso microcontrollore di stepper_z .","title":"Homing e Probing con microcontrollore multiplo"},{"location":"Navigation.html","text":"Documentazione Klipper Installazione e configurazione Riferimenti di configurazione Livello del piatto Compensazione della risonanza Template dei comandi Documentazione per sviluppatori Documenti specifici del dispositivo","title":"Navigation"},{"location":"Overview.html","text":"Panoramica \u00b6 Benvenuto nella documentazione di Klipper. Se sei nuovo di Klipper, inizia con i documenti features e installation . Informazioni generali \u00b6 Caratteristiche : un elenco di funzionalit\u00e0 di alto livello in Klipper. FAQ : Domande frequenti. Releases : La storia delle versioni di Klipper. Modifiche alla configurazione : recenti modifiche al software che potrebbero richiedere agli utenti di aggiornare il file di configurazione della stampante. Contatto : Informazioni sulla segnalazione di bug e comunicazione generale con gli sviluppatori di Klipper. Installazione e configurazione \u00b6 Installazione : Guida all'installazione di Klipper. Riferimento di configurazione : Descrizione dei parametri di configurazione. Distanza di rotazione : Calcolo del parametro stepper rotation_distance. Controlli di configurazione : verifica le impostazioni di base dei pin nel file di configurazione. Livello del piatto : Informazioni sul \"livellamento del piatto\" in Klipper. Calibrazione Delta : Calibrazione della cinematica delta. Calibrazione sonda : Calibrazione di sonde Z automatiche. BL-Touch : Configurare una sonda Z \"BL-Touch\". Livello manuale : Calibrazione dei finecorsa Z (e simili). Maglia del letto : Correzione dell'altezza del piatto basata sulle posizioni XY. Endstop phase : Posizionamento finecorsa Z assistito da stepper. Compensazione della risonanza : Uno strumento per ridurre le risonanze nelle stampe. Misurare le risonanze : Informazioni sull'uso dell'hardware dell'accelerometro adxl345 per misurare le risonanze. Avanzamento pressione : Calibra la pressione dell'estrusore. Codici G : Informazioni sui comandi supportati da Klipper. Modelli di comando : Macro G-Code e valutazione condizionale. Riferimento stato : informazioni disponibili per le macro (e simili). Driver TMC : Uso dei driver Trinamic per motori passo-passo con Klipper. Multi-MCU Homing : Homing e probing utilizzando pi\u00f9 microcontrollori. Slicers : Configurare il software \"slicer\" per Klipper. Correzione dell'inclinazione : Regolazioni per assi non perfettamente squadrati. Strumenti PWM : Guida su come usare gli strumenti controllati da PWM come i laser o i mandrini. Exclude Object : La guida all'implementazione di Exclude Objects. Documentazione per sviluppatori \u00b6 Panoramica del codice : Gli sviluppatori dovrebbero leggere prima questo. Cinematica : Dettagli tecnici su come Klipper implementa il movimento. Protocollo : Informazioni sul protocollo di messaggistica di basso livello tra host e microcontrollore. Server API : Informazioni sulle API di comando e controllo di Klipper. Comandi MCU : Una descrizione dei comandi di basso livello implementati nel software del microcontrollore. Protocollo bus CAN : formato del messaggio Klipper CAN bus. Debug : Informazioni su come testare e fare il debug di Klipper. Benchmarks : Informazioni sul metodo di benchmark Klipper. Contribuire : Informazioni su come presentare miglioramenti a Klipper. Packaging : informazioni sulla creazione di pacchetti del sistema operativo. Documenti specifici del dispositivo \u00b6 Configurazioni di esempio : Informazioni su come aggiungere un file di configurazione di esempio a Klipper. Aggiornamenti SDCard : esegui il flashing di un microcontrollore copiando un file binario su una scheda SD nel microcontrollore. Raspberry Pi come microcontrollore : Dettagli per controllare i dispositivi collegati ai pin GPIO di un Raspberry Pi. Beaglebone : Dettagli per l'esecuzione di Klipper sulla PRU Beaglebone. Bootloaders : Informazioni per gli sviluppatori sul flashing del microcontrollore. CAN bus : Informazioni sull'uso del CAN bus con Klipper. Sensore larghezza filamento TSL1401CL Sensore di larghezza del filamento Hall","title":"Panoramica"},{"location":"Overview.html#panoramica","text":"Benvenuto nella documentazione di Klipper. Se sei nuovo di Klipper, inizia con i documenti features e installation .","title":"Panoramica"},{"location":"Overview.html#informazioni-generali","text":"Caratteristiche : un elenco di funzionalit\u00e0 di alto livello in Klipper. FAQ : Domande frequenti. Releases : La storia delle versioni di Klipper. Modifiche alla configurazione : recenti modifiche al software che potrebbero richiedere agli utenti di aggiornare il file di configurazione della stampante. Contatto : Informazioni sulla segnalazione di bug e comunicazione generale con gli sviluppatori di Klipper.","title":"Informazioni generali"},{"location":"Overview.html#installazione-e-configurazione","text":"Installazione : Guida all'installazione di Klipper. Riferimento di configurazione : Descrizione dei parametri di configurazione. Distanza di rotazione : Calcolo del parametro stepper rotation_distance. Controlli di configurazione : verifica le impostazioni di base dei pin nel file di configurazione. Livello del piatto : Informazioni sul \"livellamento del piatto\" in Klipper. Calibrazione Delta : Calibrazione della cinematica delta. Calibrazione sonda : Calibrazione di sonde Z automatiche. BL-Touch : Configurare una sonda Z \"BL-Touch\". Livello manuale : Calibrazione dei finecorsa Z (e simili). Maglia del letto : Correzione dell'altezza del piatto basata sulle posizioni XY. Endstop phase : Posizionamento finecorsa Z assistito da stepper. Compensazione della risonanza : Uno strumento per ridurre le risonanze nelle stampe. Misurare le risonanze : Informazioni sull'uso dell'hardware dell'accelerometro adxl345 per misurare le risonanze. Avanzamento pressione : Calibra la pressione dell'estrusore. Codici G : Informazioni sui comandi supportati da Klipper. Modelli di comando : Macro G-Code e valutazione condizionale. Riferimento stato : informazioni disponibili per le macro (e simili). Driver TMC : Uso dei driver Trinamic per motori passo-passo con Klipper. Multi-MCU Homing : Homing e probing utilizzando pi\u00f9 microcontrollori. Slicers : Configurare il software \"slicer\" per Klipper. Correzione dell'inclinazione : Regolazioni per assi non perfettamente squadrati. Strumenti PWM : Guida su come usare gli strumenti controllati da PWM come i laser o i mandrini. Exclude Object : La guida all'implementazione di Exclude Objects.","title":"Installazione e configurazione"},{"location":"Overview.html#documentazione-per-sviluppatori","text":"Panoramica del codice : Gli sviluppatori dovrebbero leggere prima questo. Cinematica : Dettagli tecnici su come Klipper implementa il movimento. Protocollo : Informazioni sul protocollo di messaggistica di basso livello tra host e microcontrollore. Server API : Informazioni sulle API di comando e controllo di Klipper. Comandi MCU : Una descrizione dei comandi di basso livello implementati nel software del microcontrollore. Protocollo bus CAN : formato del messaggio Klipper CAN bus. Debug : Informazioni su come testare e fare il debug di Klipper. Benchmarks : Informazioni sul metodo di benchmark Klipper. Contribuire : Informazioni su come presentare miglioramenti a Klipper. Packaging : informazioni sulla creazione di pacchetti del sistema operativo.","title":"Documentazione per sviluppatori"},{"location":"Overview.html#documenti-specifici-del-dispositivo","text":"Configurazioni di esempio : Informazioni su come aggiungere un file di configurazione di esempio a Klipper. Aggiornamenti SDCard : esegui il flashing di un microcontrollore copiando un file binario su una scheda SD nel microcontrollore. Raspberry Pi come microcontrollore : Dettagli per controllare i dispositivi collegati ai pin GPIO di un Raspberry Pi. Beaglebone : Dettagli per l'esecuzione di Klipper sulla PRU Beaglebone. Bootloaders : Informazioni per gli sviluppatori sul flashing del microcontrollore. CAN bus : Informazioni sull'uso del CAN bus con Klipper. Sensore larghezza filamento TSL1401CL Sensore di larghezza del filamento Hall","title":"Documenti specifici del dispositivo"},{"location":"Packaging.html","text":"Klipper packaging \u00b6 Klipper \u00e8 in qualche modo un'anomalia tra i programmi Python per quanto riguarda impacchettamento, in quanto non usa setuptools per costruire e installare. Alcune note riguardanti il modo migliore per impacchettarlo sono le seguenti: Moduli C \u00b6 Klipper utilizza un modulo C per gestire pi\u00f9 rapidamente alcuni calcoli cinematici. Questo modulo deve essere compilato al momento per evitare di introdurre una dipendenza di runtime da un compilatore. Per compilare il modulo C, esegui python2 klippy/chelper/__init__.py . Compilazione di codice python \u00b6 Molte distribuzioni hanno una politica di compilazione di tutto il codice Python prima del packaging per migliorare i tempi di avvio. Puoi farlo eseguendo python2 -m compileall klippy . Versione \u00b6 Se stai compilando un pacchetto di Klipper da git, \u00e8 normale non spedire una directory .git, quindi il controllo delle versioni deve essere gestito senza git. Per fare ci\u00f2, usa lo script fornito in scripts/make_version.py che dovrebbe essere eseguito come segue: python2 scripts/make_version.py YOURDISTRONAME > klippy/.version . Esempio di script di packaging \u00b6 klipper-git \u00e8 un pacchetto per Arch Linux e ha un PKGBUILD (script di compilazione del pacchetto) disponibile su Arch User Repositiory .","title":"Klipper packaging"},{"location":"Packaging.html#klipper-packaging","text":"Klipper \u00e8 in qualche modo un'anomalia tra i programmi Python per quanto riguarda impacchettamento, in quanto non usa setuptools per costruire e installare. Alcune note riguardanti il modo migliore per impacchettarlo sono le seguenti:","title":"Klipper packaging"},{"location":"Packaging.html#moduli-c","text":"Klipper utilizza un modulo C per gestire pi\u00f9 rapidamente alcuni calcoli cinematici. Questo modulo deve essere compilato al momento per evitare di introdurre una dipendenza di runtime da un compilatore. Per compilare il modulo C, esegui python2 klippy/chelper/__init__.py .","title":"Moduli C"},{"location":"Packaging.html#compilazione-di-codice-python","text":"Molte distribuzioni hanno una politica di compilazione di tutto il codice Python prima del packaging per migliorare i tempi di avvio. Puoi farlo eseguendo python2 -m compileall klippy .","title":"Compilazione di codice python"},{"location":"Packaging.html#versione","text":"Se stai compilando un pacchetto di Klipper da git, \u00e8 normale non spedire una directory .git, quindi il controllo delle versioni deve essere gestito senza git. Per fare ci\u00f2, usa lo script fornito in scripts/make_version.py che dovrebbe essere eseguito come segue: python2 scripts/make_version.py YOURDISTRONAME > klippy/.version .","title":"Versione"},{"location":"Packaging.html#esempio-di-script-di-packaging","text":"klipper-git \u00e8 un pacchetto per Arch Linux e ha un PKGBUILD (script di compilazione del pacchetto) disponibile su Arch User Repositiory .","title":"Esempio di script di packaging"},{"location":"Pressure_Advance.html","text":"Anticipo di pressione \u00b6 Questo documento fornisce informazioni sulla messa a punto della variabile di regolazione del \"pressure advance\" per un particolare ugello e filamento. La funzione di anticipo della pressione pu\u00f2 essere utile per ridurre le colature. Per maggiori informazioni su come viene implementato l'anticipo di pressione, vedere il documento kinematics . Regolazione della pressure advance \u00b6 Pressure advance fa due cose utili: riduce le colature durante i movimenti senza estrusione e riduce il blobbing durante le curve. Questa guida utilizza la seconda funzione (riduzione del blobbing durante le curve) come meccanismo per la messa a punto. Per calibrare la pressure advance, la stampante deve essere configurata e operativa poich\u00e9 il test di ottimizzazione prevede la stampa e l'ispezione di un oggetto di prova. \u00c8 una buona idea leggere questo documento per intero prima di eseguire il test. Usa uno slicer per generare il codice G per il grande cubo vuoto che si trova in docs/prints/square_tower.stl . Utilizzare una velocit\u00e0 elevata (ad es. 100 mm/s), riempimento zero e un'altezza dello strato grossolana (l'altezza dello strato dovrebbe essere circa il 75% del diametro dell'ugello). Assicurati che qualsiasi \"controllo dinamico dell'accelerazione\" sia disabilitato nello slicer. Prepararsi per il test emettendo il seguente comando G-Code: SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500 Questo comando fa viaggiare l'ugello pi\u00f9 lentamente attraverso gli angoli per enfatizzare gli effetti della pressione dell'estrusore. Quindi per le stampanti con un estrusore a trasmissione diretta eseguire il comando: TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.005 Per estrusori bowden lunghi utilizzare: TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.020 Quindi stampare l'oggetto. Una volta stampata completamente, la stampa di prova avr\u00e0 il seguente aspetto: Il comando TUNING_TOWER sopra indica a Klipper di modificare l'impostazione pressure_advance su ogni strato della stampa. Gli strati pi\u00f9 alti nella stampa avranno un valore di anticipo della pressione maggiore impostato. Gli strati al di sotto dell'impostazione pressione_anticipo ideale avranno macchie agli angoli e gli strati al di sopra dell'impostazione ideale possono portare a angoli arrotondati e una scarsa estrusione all'angolo. \u00c8 possibile annullare la stampa in anticipo se si osserva che gli angoli non vengono pi\u00f9 stampati bene (e quindi si pu\u00f2 evitare di stampare livelli noti per essere al di sopra del valore di pressione_avanzamento ideale). Ispeziona la stampa e quindi utilizza un calibro digitale per trovare l'altezza con gli angoli della migliore qualit\u00e0. In caso di dubbio, preferire un'altezza inferiore. Il valore pressure_advance pu\u00f2 quindi essere calcolato come pressure_advance = <inizio> + <altezza_misurata> * <fattore> . (Ad esempio, 0 + 12.90 * .020 sarebbe .258 .) \u00c8 possibile scegliere impostazioni personalizzate per START e FACTOR se ci\u00f2 aiuta a identificare la migliore impostazione di anticipo della pressione. Quando si esegue questa operazione, assicurarsi di emettere il comando TUNING_TOWER all'inizio di ogni stampa di prova. I valori tipici di pressure advance sono compresi tra 0,050 e 1,000 (la fascia alta di solito solo con estrusori bowden). Se non vi \u00e8 alcun miglioramento significativo con un pressure advance fino a 1.000, \u00e8 improbabile che la pressure advance migliori la qualit\u00e0 delle stampe. Ritorno ad una configurazione di default con pressure advance disabilitato. Sebbene questo esercizio di messa a punto migliori direttamente la qualit\u00e0 degli angoli, vale la pena ricordare che una buona configurazione del pressure advance riduce anche gli ooze durante la stampa. Al termine di questo test, impostare pressure_advance = <calculated_value> nella sezione [extruder] del file di configurazione ed emettere un comando RESTART. Il comando RESTART canceller\u00e0 lo stato di test e riporter\u00e0 le velocit\u00e0 di accelerazione e in curva ai valori normali. Note importanti \u00b6 Il valore di pressure advance dipende dall'estrusore, dall'ugello e dal filamento. \u00c8 comune che filamenti di produttori diversi o con pigmenti diversi richiedano valori di pressure advance significativamente diversi. Pertanto, si dovrebbe calibrare pressure advance su ciascuna stampante e con ogni bobina di filamento. La temperatura di stampa e le velocit\u00e0 di estrusione possono influire sulla pressure advance. Assicurati di regolare extruder rotation_distance e nozzle temperature prima di regolare l'avanzamento della pressione. La stampa di prova \u00e8 progettata per funzionare con un'elevata portata dell'estrusore, ma per il resto con impostazioni dello slicer \"normali\". Un'elevata portata si ottiene utilizzando un'elevata velocit\u00e0 di stampa (ad es. 100 mm/s) e un'altezza dello strato grossolano (tipicamente circa il 75% del diametro dell'ugello). Altre impostazioni dello slicer dovrebbero essere simili alle loro impostazioni predefinite (ad esempio, perimetri di 2 o 3 linee, quantit\u00e0 di retrazione normale). Pu\u00f2 essere utile impostare la velocit\u00e0 del perimetro esterno in modo che sia la stessa velocit\u00e0 del resto della stampa, ma non \u00e8 un requisito. \u00c8 comune che la stampa di prova mostri un comportamento diverso su ciascun angolo. Spesso lo slicer provveder\u00e0 a cambiare i livelli in un angolo, il che pu\u00f2 comportare che quell'angolo sia significativamente diverso dai restanti tre angoli. Se ci\u00f2 si verifica, ignora quell'angolo e regola pressure advance utilizzando gli altri tre angoli. \u00c8 anche comune che gli angoli rimanenti varino leggermente. (Ci\u00f2 pu\u00f2 verificarsi a causa di piccole differenze nel modo in cui il telaio della stampante reagisce alle curve in determinate direzioni.) Prova a scegliere un valore che funzioni bene per tutti gli angoli rimanenti. In caso di dubbio, preferire un valore di pressure advance inferiore. Se viene utilizzato un valore di pressure advance (ad esempio, superiore a 0.200), \u00e8 possibile che l'estrusore salti quando torna alla normale accelerazione della stampante. Il sistema di pressure advance tiene conto della pressione spingendo il filamento extra durante l'accelerazione e ritraendo quel filamento durante la decelerazione. Con un'elevata accelerazione e un'elevata pressione di anticipo, l'estrusore potrebbe non avere una coppia sufficiente per spingere il filamento richiesto. In tal caso, utilizzare un valore di accelerazione inferiore o disattivare la pressure advance. Una volta che pressure advance \u00e8 stato regolato in Klipper, pu\u00f2 essere comunque utile configurare un piccolo valore di retrazione nello slicer (ad es. 0,75 mm) e utilizzare l'opzione \"pulizia in retrazione\" dello slicer, se disponibile. Queste impostazioni dello slicer possono aiutare a contrastare la trasudazione causata dalla coesione del filamento ( estratto dall'ugello a causa della viscosit\u00e0 della plastica). Si consiglia di disabilitare l'opzione \"Z-lift in retrazione\" dello slicer. Il sistema di pressure advance non modifica i tempi o il percorso della testa di stampa. Una stampa con pressure advance abilitato richieder\u00e0 lo stesso tempo di una stampa senza pressure advance. Inoltre, pressure advance non modifica la quantit\u00e0 totale di filamento estruso durante una stampa. L a pressure advance determina un movimento extra dell'estrusore durante l'accelerazione e la decelerazione del movimento. Un'impostazione di pressure advance molto elevata risulter\u00e0 in una quantit\u00e0 molto grande di movimento dell'estrusore durante l'accelerazione e la decelerazione e nessuna impostazione di configurazione pone un limite alla quantit\u00e0 di tale movimento.","title":"Anticipo di pressione"},{"location":"Pressure_Advance.html#anticipo-di-pressione","text":"Questo documento fornisce informazioni sulla messa a punto della variabile di regolazione del \"pressure advance\" per un particolare ugello e filamento. La funzione di anticipo della pressione pu\u00f2 essere utile per ridurre le colature. Per maggiori informazioni su come viene implementato l'anticipo di pressione, vedere il documento kinematics .","title":"Anticipo di pressione"},{"location":"Pressure_Advance.html#regolazione-della-pressure-advance","text":"Pressure advance fa due cose utili: riduce le colature durante i movimenti senza estrusione e riduce il blobbing durante le curve. Questa guida utilizza la seconda funzione (riduzione del blobbing durante le curve) come meccanismo per la messa a punto. Per calibrare la pressure advance, la stampante deve essere configurata e operativa poich\u00e9 il test di ottimizzazione prevede la stampa e l'ispezione di un oggetto di prova. \u00c8 una buona idea leggere questo documento per intero prima di eseguire il test. Usa uno slicer per generare il codice G per il grande cubo vuoto che si trova in docs/prints/square_tower.stl . Utilizzare una velocit\u00e0 elevata (ad es. 100 mm/s), riempimento zero e un'altezza dello strato grossolana (l'altezza dello strato dovrebbe essere circa il 75% del diametro dell'ugello). Assicurati che qualsiasi \"controllo dinamico dell'accelerazione\" sia disabilitato nello slicer. Prepararsi per il test emettendo il seguente comando G-Code: SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500 Questo comando fa viaggiare l'ugello pi\u00f9 lentamente attraverso gli angoli per enfatizzare gli effetti della pressione dell'estrusore. Quindi per le stampanti con un estrusore a trasmissione diretta eseguire il comando: TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.005 Per estrusori bowden lunghi utilizzare: TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.020 Quindi stampare l'oggetto. Una volta stampata completamente, la stampa di prova avr\u00e0 il seguente aspetto: Il comando TUNING_TOWER sopra indica a Klipper di modificare l'impostazione pressure_advance su ogni strato della stampa. Gli strati pi\u00f9 alti nella stampa avranno un valore di anticipo della pressione maggiore impostato. Gli strati al di sotto dell'impostazione pressione_anticipo ideale avranno macchie agli angoli e gli strati al di sopra dell'impostazione ideale possono portare a angoli arrotondati e una scarsa estrusione all'angolo. \u00c8 possibile annullare la stampa in anticipo se si osserva che gli angoli non vengono pi\u00f9 stampati bene (e quindi si pu\u00f2 evitare di stampare livelli noti per essere al di sopra del valore di pressione_avanzamento ideale). Ispeziona la stampa e quindi utilizza un calibro digitale per trovare l'altezza con gli angoli della migliore qualit\u00e0. In caso di dubbio, preferire un'altezza inferiore. Il valore pressure_advance pu\u00f2 quindi essere calcolato come pressure_advance = <inizio> + <altezza_misurata> * <fattore> . (Ad esempio, 0 + 12.90 * .020 sarebbe .258 .) \u00c8 possibile scegliere impostazioni personalizzate per START e FACTOR se ci\u00f2 aiuta a identificare la migliore impostazione di anticipo della pressione. Quando si esegue questa operazione, assicurarsi di emettere il comando TUNING_TOWER all'inizio di ogni stampa di prova. I valori tipici di pressure advance sono compresi tra 0,050 e 1,000 (la fascia alta di solito solo con estrusori bowden). Se non vi \u00e8 alcun miglioramento significativo con un pressure advance fino a 1.000, \u00e8 improbabile che la pressure advance migliori la qualit\u00e0 delle stampe. Ritorno ad una configurazione di default con pressure advance disabilitato. Sebbene questo esercizio di messa a punto migliori direttamente la qualit\u00e0 degli angoli, vale la pena ricordare che una buona configurazione del pressure advance riduce anche gli ooze durante la stampa. Al termine di questo test, impostare pressure_advance = <calculated_value> nella sezione [extruder] del file di configurazione ed emettere un comando RESTART. Il comando RESTART canceller\u00e0 lo stato di test e riporter\u00e0 le velocit\u00e0 di accelerazione e in curva ai valori normali.","title":"Regolazione della pressure advance"},{"location":"Pressure_Advance.html#note-importanti","text":"Il valore di pressure advance dipende dall'estrusore, dall'ugello e dal filamento. \u00c8 comune che filamenti di produttori diversi o con pigmenti diversi richiedano valori di pressure advance significativamente diversi. Pertanto, si dovrebbe calibrare pressure advance su ciascuna stampante e con ogni bobina di filamento. La temperatura di stampa e le velocit\u00e0 di estrusione possono influire sulla pressure advance. Assicurati di regolare extruder rotation_distance e nozzle temperature prima di regolare l'avanzamento della pressione. La stampa di prova \u00e8 progettata per funzionare con un'elevata portata dell'estrusore, ma per il resto con impostazioni dello slicer \"normali\". Un'elevata portata si ottiene utilizzando un'elevata velocit\u00e0 di stampa (ad es. 100 mm/s) e un'altezza dello strato grossolano (tipicamente circa il 75% del diametro dell'ugello). Altre impostazioni dello slicer dovrebbero essere simili alle loro impostazioni predefinite (ad esempio, perimetri di 2 o 3 linee, quantit\u00e0 di retrazione normale). Pu\u00f2 essere utile impostare la velocit\u00e0 del perimetro esterno in modo che sia la stessa velocit\u00e0 del resto della stampa, ma non \u00e8 un requisito. \u00c8 comune che la stampa di prova mostri un comportamento diverso su ciascun angolo. Spesso lo slicer provveder\u00e0 a cambiare i livelli in un angolo, il che pu\u00f2 comportare che quell'angolo sia significativamente diverso dai restanti tre angoli. Se ci\u00f2 si verifica, ignora quell'angolo e regola pressure advance utilizzando gli altri tre angoli. \u00c8 anche comune che gli angoli rimanenti varino leggermente. (Ci\u00f2 pu\u00f2 verificarsi a causa di piccole differenze nel modo in cui il telaio della stampante reagisce alle curve in determinate direzioni.) Prova a scegliere un valore che funzioni bene per tutti gli angoli rimanenti. In caso di dubbio, preferire un valore di pressure advance inferiore. Se viene utilizzato un valore di pressure advance (ad esempio, superiore a 0.200), \u00e8 possibile che l'estrusore salti quando torna alla normale accelerazione della stampante. Il sistema di pressure advance tiene conto della pressione spingendo il filamento extra durante l'accelerazione e ritraendo quel filamento durante la decelerazione. Con un'elevata accelerazione e un'elevata pressione di anticipo, l'estrusore potrebbe non avere una coppia sufficiente per spingere il filamento richiesto. In tal caso, utilizzare un valore di accelerazione inferiore o disattivare la pressure advance. Una volta che pressure advance \u00e8 stato regolato in Klipper, pu\u00f2 essere comunque utile configurare un piccolo valore di retrazione nello slicer (ad es. 0,75 mm) e utilizzare l'opzione \"pulizia in retrazione\" dello slicer, se disponibile. Queste impostazioni dello slicer possono aiutare a contrastare la trasudazione causata dalla coesione del filamento ( estratto dall'ugello a causa della viscosit\u00e0 della plastica). Si consiglia di disabilitare l'opzione \"Z-lift in retrazione\" dello slicer. Il sistema di pressure advance non modifica i tempi o il percorso della testa di stampa. Una stampa con pressure advance abilitato richieder\u00e0 lo stesso tempo di una stampa senza pressure advance. Inoltre, pressure advance non modifica la quantit\u00e0 totale di filamento estruso durante una stampa. L a pressure advance determina un movimento extra dell'estrusore durante l'accelerazione e la decelerazione del movimento. Un'impostazione di pressure advance molto elevata risulter\u00e0 in una quantit\u00e0 molto grande di movimento dell'estrusore durante l'accelerazione e la decelerazione e nessuna impostazione di configurazione pone un limite alla quantit\u00e0 di tale movimento.","title":"Note importanti"},{"location":"Probe_Calibrate.html","text":"Calibrazione sonda \u00b6 Questo documento descrive il metodo per calibrare gli offset X, Y e Z di una \"sonda z automatica\" in Klipper. Questo \u00e8 utile per gli utenti che hanno una sezione [probe] o [bltouch] nel loro file di configurazione. Calibrazione degli offset X e Y della sonda \u00b6 Per calibrare l'offset X e Y, vai alla scheda \"Controllo\" di OctoPrint, avvia la stampante, quindi usa i pulsanti di spostamento di OctoPrint per spostare la testa in una posizione vicino al centro del piatto. Metti un pezzo di nastro adesivo blu (o simile) sul piatto sotto la sonda. Passare alla scheda \"Terminale\" di OctoPrint ed emettere un comando PROBE: PROBE Metti un segno sul nastro direttamente sotto il punto in cui si trova la sonda (o usa un metodo simile per annotare la posizione sul letto). Emettere un comando GET_POSITION e registrare la posizione XY della testa riportata da quel comando. Ad esempio se si vede: Recv: // toolhead: X:46.500000 Y:27.000000 Z:15.000000 E:0.000000 quindi si registrerebbe una posizione X della sonda di 46,5 e una posizione Y della sonda di 27. Dopo aver registrato la posizione della sonda, emettere una serie di comandi G1 fino a quando l'ugello si trova direttamente sopra il segno sul letto. Ad esempio, si potrebbe emettere: G1 F300 X57 Y30 Z15 per spostare l'ugello in una posizione X di 57 e Y di 30. Una volta trovata la posizione direttamente sopra il segno, utilizzare il comando GET_POSITION per segnalare quella posizione. Questa \u00e8 la posizione dell'ugello. L'offset_x \u00e8 quindi posizione_x_ugello - posizione_x_sonda e l'offset_y \u00e8 analogamente a posizione_y_ugello - posizione_y_sonda . Aggiorna il file printer.cfg con i valori indicati, rimuovi il nastro con i riferimento dal piatto, quindi esegui un comando RESTART in modo che i nuovi valori diventino effettivi. Calibrazione Z offset sonda \u00b6 Inserire una z_offset accurata per la sonda \u00e8 fondamentale per ottenere stampe di alta qualit\u00e0. Lo z_offset \u00e8 la distanza tra l'ugello e il letto quando la sonda si attiva. Lo strumento Klipper PROBE_CALIBRATE pu\u00f2 essere utilizzato per ottenere questo valore: eseguir\u00e0 una sonda automatica per misurare la posizione di trigger Z della sonda e quindi avvier\u00e0 una sonda manuale per ottenere l'altezza Z dell'ugello. La sonda z_offset verr\u00e0 quindi calcolata da queste misurazioni. Inizia spostando testa in una posizione vicino al centro del piatto. Passare alla scheda del terminale OctoPrint ed eseguire il comando PROBE_CALIBRATE per avviare lo strumento. Questo strumento eseguir\u00e0 una misura automatica con la sonda, quindi sollever\u00e0 la testina, sposter\u00e0 l'ugello sulla posizione del punto sonda e avvier\u00e0 lo strumento sonda manuale. Se l'ugello non si sposta in una posizione al di sopra del punto della sonda automatica, allora ANNULLA lo strumento sonda manuale ed eseguire la calibrazione dell'offset della sonda XY descritta sopra. Una volta avviata manualmente la sonda, seguire i passaggi descritti in \"the paper test\" per determinare la distanza effettiva tra l'ugello e il letto in una determinata posizione. Una volta completati questi passaggi, \u00e8 possibile ACCEPT la posizione e salvare i risultati nel file di configurazione con: SAVE_CONFIG Si noti che se viene apportata una modifica al sistema di movimento della stampante, alla posizione dell'hotend o alla posizione della sonda, i risultati di PROBE_CALIBRATE verranno invalidati. Se la sonda ha un offset X o Y e l'inclinazione del letto viene modificata (ad es. regolando le viti del letto, eseguendo DELTA_CALIBRATE, eseguendo Z_TILT_ADJUST, eseguendo QUAD_GANTRY_LEVEL o simili), i risultati di PROBE_CALIBRATE verranno invalidati. Dopo aver apportato una qualsiasi delle modifiche di cui sopra, sar\u00e0 necessario eseguire nuovamente PROBE_CALIBRATE. Se i risultati di PROBE_CALIBRATE vengono invalidati, anche tutti i risultati precedenti di bed mesh ottenuti utilizzando la sonda vengono invalidati: sar\u00e0 necessario eseguire nuovamente BED_MESH_CALIBRATE dopo aver ricalibrato la sonda. Verifica di ripetibilit\u00e0 \u00b6 Dopo aver calibrato gli offset X, Y e Z della sonda, \u00e8 una buona idea verificare che la sonda fornisca risultati ripetibili. Inizia portando a home la stampante e quindi sposta la testa in una posizione vicino al centro del letto. Passare al terminale di OctoPrint ed eseguire il comando PROBE_ACCURACY . Questo comando eseguir\u00e0 il test con la sonda dieci volte e produrr\u00e0 un output simile al seguente: Recv: // probe accuracy: at X:0.000 Y:0.000 Z:10.000 Recv: // and read 10 times with speed of 5 mm/s Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe accuracy results: maximum 2.519448, minimum 2.506948, range 0.012500, average 2.513198, median 2.513198, standard deviation 0.006250 Idealmente lo strumento riporter\u00e0 un valore massimo e minimo identico. (Ovvero, idealmente la sonda ottiene un risultato identico su tutte e dieci le prove.) Tuttavia, \u00e8 normale che i valori minimo e massimo differiscano di una \"distanza di passo\" Z o fino a 5 micron (0,005 mm). Una \"distanza passo\" \u00e8 rotation_distance/(full_steps_per_rotation*microsteps) . La distanza tra il valore minimo e quello massimo \u00e8 chiamata intervallo. Quindi, nell'esempio precedente, poich\u00e9 la stampante utilizza una distanza di passo Z di 0,0125, un intervallo di 0,012500 sarebbe considerato normale. Se i risultati del test mostrano un valore di intervallo maggiore di 25 micron (0,025 mm), la sonda non ha una precisione sufficiente per le procedure tipiche di livellamento del piatto. Potrebbe essere possibile regolare la velocit\u00e0 della sonda e/o l'altezza di inizio della sonda per migliorare la ripetibilit\u00e0 della sonda. Il comando PROBE_ACCURACY consente di eseguire test con parametri diversi per vederne l'impatto - vedere il documento G-Codes per ulteriori dettagli. Se la sonda generalmente ottiene risultati ripetibili ma presenta un valore anomalo occasionale, potrebbe essere possibile tenerne conto utilizzando pi\u00f9 campioni su ciascuna sonda - leggere la descrizione dei parametri di configurazione dei campioni della sonda in riferimento di configurazione per maggiori dettagli. Se sono necessarie una nuova velocit\u00e0 della sonda, diversa quantit\u00e0 di campioni o altre impostazioni, aggiornare il file printer.cfg ed eseguire un comando RESTART . In tal caso, \u00e8 una buona idea anche calibrare z_offset di nuovo. Se non \u00e8 possibile ottenere risultati ripetibili, non utilizzare la sonda per livellare il letto. Klipper ha diversi strumenti manuali che possono essere utilizzati in alternativa: vedere il Bed Level document per ulteriori dettagli. Verifica scostamenti di posizione \u00b6 Alcune sonde possono avere una distorsione sistematica che altera i risultati della sonda in determinate posizioni della testa. Ad esempio, se il supporto della sonda si inclina leggermente durante lo spostamento lungo l'asse Y, la sonda potrebbe riportare risultati distorti in differenti posizioni Y. Questo \u00e8 un problema comune con le sonde sulle stampanti delta, tuttavia pu\u00f2 verificarsi su tutte le stampanti. Si pu\u00f2 verificare una distorsione di posizione utilizzando il comando PROBE_CALIBRATE per misurare l'offset z della sonda in varie posizioni X e Y. Idealmente, il probe z_offset sarebbe un valore costante in ogni posizione della stampante. Per le stampanti delta, prova a misurare z_offset in una posizione vicino alla torre A, in una posizione vicino alla torre B e in una posizione vicino alla torre C. Per stampanti cartesiane, corexy e simili, prova a misurare z_offset in posizioni vicino ai quattro angoli del letto. Prima di iniziare questo test, calibrare prima gli offset della sonda X, Y e Z come descritto all'inizio di questo documento. Quindi porta a home la stampante e vai alla prima posizione XY. Seguire i passaggi in calibrazione dell'offset Z della sonda per eseguire il comando PROBE_CALIBRATE , i comandi TESTZ e il comando ACCETTA , ma non eseguire SAVE_CONFIG . Nota lo z_offset segnalato trovato. Quindi passare alle altre posizioni XY, ripetere questi passaggi PROBE_CALIBRATE e annotare lo z_offset riportato. Se la differenza tra l'offset z minimo riportato e l'offset z massimo riportato \u00e8 maggiore di 25 micron (0,025 mm), la sonda non \u00e8 adatta per le tipiche procedure di livellamento del letto. Consultare il Bed Level document per sonde alternative manuali. Scostamenti per temperatura \u00b6 Molte sonde hanno una distorsione sistemica quando misurano a temperature diverse. Ad esempio, la sonda pu\u00f2 attivarsi costantemente a un'altezza inferiore quando la sonda si trova a una temperatura pi\u00f9 elevata. Si consiglia di eseguire le procedure di livellamento del piatto a una temperatura costante per tenere conto di questa distorsione. Ad esempio, usare sempre la sonda quando la stampante \u00e8 a temperatura ambiente oppure eseguire sempre la procedura dopo che la stampante ha raggiunto una temperatura costante. In entrambi i casi, \u00e8 una buona idea attendere diversi minuti dopo che \u00e8 stata raggiunta la temperatura desiderata, in modo che tutto apparato stampante sia alla temperatura desiderata costantemente. Per verificare la presenza di un errore per temperatura, iniziare con la stampante a temperatura ambiente e poi portare a home la stampante, spostare la testina in una posizione vicino al centro del letto ed eseguire il comando PROBE_ACCURACY . Nota i risultati. Quindi, senza eseguire l'homing o disabilitare i motori passo-passo, riscaldare l'ugello della stampante e il piatto alla temperatura di stampa ed eseguire nuovamente il comando PROBE_ACCURACY . Idealmente, il comando riporter\u00e0 risultati identici. Come sopra, se la sonda ha un errore causato dalla temperatura, fare attenzione a usare sempre la sonda a una temperatura costante stabile.","title":"Calibrazione sonda"},{"location":"Probe_Calibrate.html#calibrazione-sonda","text":"Questo documento descrive il metodo per calibrare gli offset X, Y e Z di una \"sonda z automatica\" in Klipper. Questo \u00e8 utile per gli utenti che hanno una sezione [probe] o [bltouch] nel loro file di configurazione.","title":"Calibrazione sonda"},{"location":"Probe_Calibrate.html#calibrazione-degli-offset-x-e-y-della-sonda","text":"Per calibrare l'offset X e Y, vai alla scheda \"Controllo\" di OctoPrint, avvia la stampante, quindi usa i pulsanti di spostamento di OctoPrint per spostare la testa in una posizione vicino al centro del piatto. Metti un pezzo di nastro adesivo blu (o simile) sul piatto sotto la sonda. Passare alla scheda \"Terminale\" di OctoPrint ed emettere un comando PROBE: PROBE Metti un segno sul nastro direttamente sotto il punto in cui si trova la sonda (o usa un metodo simile per annotare la posizione sul letto). Emettere un comando GET_POSITION e registrare la posizione XY della testa riportata da quel comando. Ad esempio se si vede: Recv: // toolhead: X:46.500000 Y:27.000000 Z:15.000000 E:0.000000 quindi si registrerebbe una posizione X della sonda di 46,5 e una posizione Y della sonda di 27. Dopo aver registrato la posizione della sonda, emettere una serie di comandi G1 fino a quando l'ugello si trova direttamente sopra il segno sul letto. Ad esempio, si potrebbe emettere: G1 F300 X57 Y30 Z15 per spostare l'ugello in una posizione X di 57 e Y di 30. Una volta trovata la posizione direttamente sopra il segno, utilizzare il comando GET_POSITION per segnalare quella posizione. Questa \u00e8 la posizione dell'ugello. L'offset_x \u00e8 quindi posizione_x_ugello - posizione_x_sonda e l'offset_y \u00e8 analogamente a posizione_y_ugello - posizione_y_sonda . Aggiorna il file printer.cfg con i valori indicati, rimuovi il nastro con i riferimento dal piatto, quindi esegui un comando RESTART in modo che i nuovi valori diventino effettivi.","title":"Calibrazione degli offset X e Y della sonda"},{"location":"Probe_Calibrate.html#calibrazione-z-offset-sonda","text":"Inserire una z_offset accurata per la sonda \u00e8 fondamentale per ottenere stampe di alta qualit\u00e0. Lo z_offset \u00e8 la distanza tra l'ugello e il letto quando la sonda si attiva. Lo strumento Klipper PROBE_CALIBRATE pu\u00f2 essere utilizzato per ottenere questo valore: eseguir\u00e0 una sonda automatica per misurare la posizione di trigger Z della sonda e quindi avvier\u00e0 una sonda manuale per ottenere l'altezza Z dell'ugello. La sonda z_offset verr\u00e0 quindi calcolata da queste misurazioni. Inizia spostando testa in una posizione vicino al centro del piatto. Passare alla scheda del terminale OctoPrint ed eseguire il comando PROBE_CALIBRATE per avviare lo strumento. Questo strumento eseguir\u00e0 una misura automatica con la sonda, quindi sollever\u00e0 la testina, sposter\u00e0 l'ugello sulla posizione del punto sonda e avvier\u00e0 lo strumento sonda manuale. Se l'ugello non si sposta in una posizione al di sopra del punto della sonda automatica, allora ANNULLA lo strumento sonda manuale ed eseguire la calibrazione dell'offset della sonda XY descritta sopra. Una volta avviata manualmente la sonda, seguire i passaggi descritti in \"the paper test\" per determinare la distanza effettiva tra l'ugello e il letto in una determinata posizione. Una volta completati questi passaggi, \u00e8 possibile ACCEPT la posizione e salvare i risultati nel file di configurazione con: SAVE_CONFIG Si noti che se viene apportata una modifica al sistema di movimento della stampante, alla posizione dell'hotend o alla posizione della sonda, i risultati di PROBE_CALIBRATE verranno invalidati. Se la sonda ha un offset X o Y e l'inclinazione del letto viene modificata (ad es. regolando le viti del letto, eseguendo DELTA_CALIBRATE, eseguendo Z_TILT_ADJUST, eseguendo QUAD_GANTRY_LEVEL o simili), i risultati di PROBE_CALIBRATE verranno invalidati. Dopo aver apportato una qualsiasi delle modifiche di cui sopra, sar\u00e0 necessario eseguire nuovamente PROBE_CALIBRATE. Se i risultati di PROBE_CALIBRATE vengono invalidati, anche tutti i risultati precedenti di bed mesh ottenuti utilizzando la sonda vengono invalidati: sar\u00e0 necessario eseguire nuovamente BED_MESH_CALIBRATE dopo aver ricalibrato la sonda.","title":"Calibrazione Z offset sonda"},{"location":"Probe_Calibrate.html#verifica-di-ripetibilita","text":"Dopo aver calibrato gli offset X, Y e Z della sonda, \u00e8 una buona idea verificare che la sonda fornisca risultati ripetibili. Inizia portando a home la stampante e quindi sposta la testa in una posizione vicino al centro del letto. Passare al terminale di OctoPrint ed eseguire il comando PROBE_ACCURACY . Questo comando eseguir\u00e0 il test con la sonda dieci volte e produrr\u00e0 un output simile al seguente: Recv: // probe accuracy: at X:0.000 Y:0.000 Z:10.000 Recv: // and read 10 times with speed of 5 mm/s Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe accuracy results: maximum 2.519448, minimum 2.506948, range 0.012500, average 2.513198, median 2.513198, standard deviation 0.006250 Idealmente lo strumento riporter\u00e0 un valore massimo e minimo identico. (Ovvero, idealmente la sonda ottiene un risultato identico su tutte e dieci le prove.) Tuttavia, \u00e8 normale che i valori minimo e massimo differiscano di una \"distanza di passo\" Z o fino a 5 micron (0,005 mm). Una \"distanza passo\" \u00e8 rotation_distance/(full_steps_per_rotation*microsteps) . La distanza tra il valore minimo e quello massimo \u00e8 chiamata intervallo. Quindi, nell'esempio precedente, poich\u00e9 la stampante utilizza una distanza di passo Z di 0,0125, un intervallo di 0,012500 sarebbe considerato normale. Se i risultati del test mostrano un valore di intervallo maggiore di 25 micron (0,025 mm), la sonda non ha una precisione sufficiente per le procedure tipiche di livellamento del piatto. Potrebbe essere possibile regolare la velocit\u00e0 della sonda e/o l'altezza di inizio della sonda per migliorare la ripetibilit\u00e0 della sonda. Il comando PROBE_ACCURACY consente di eseguire test con parametri diversi per vederne l'impatto - vedere il documento G-Codes per ulteriori dettagli. Se la sonda generalmente ottiene risultati ripetibili ma presenta un valore anomalo occasionale, potrebbe essere possibile tenerne conto utilizzando pi\u00f9 campioni su ciascuna sonda - leggere la descrizione dei parametri di configurazione dei campioni della sonda in riferimento di configurazione per maggiori dettagli. Se sono necessarie una nuova velocit\u00e0 della sonda, diversa quantit\u00e0 di campioni o altre impostazioni, aggiornare il file printer.cfg ed eseguire un comando RESTART . In tal caso, \u00e8 una buona idea anche calibrare z_offset di nuovo. Se non \u00e8 possibile ottenere risultati ripetibili, non utilizzare la sonda per livellare il letto. Klipper ha diversi strumenti manuali che possono essere utilizzati in alternativa: vedere il Bed Level document per ulteriori dettagli.","title":"Verifica di ripetibilit\u00e0"},{"location":"Probe_Calibrate.html#verifica-scostamenti-di-posizione","text":"Alcune sonde possono avere una distorsione sistematica che altera i risultati della sonda in determinate posizioni della testa. Ad esempio, se il supporto della sonda si inclina leggermente durante lo spostamento lungo l'asse Y, la sonda potrebbe riportare risultati distorti in differenti posizioni Y. Questo \u00e8 un problema comune con le sonde sulle stampanti delta, tuttavia pu\u00f2 verificarsi su tutte le stampanti. Si pu\u00f2 verificare una distorsione di posizione utilizzando il comando PROBE_CALIBRATE per misurare l'offset z della sonda in varie posizioni X e Y. Idealmente, il probe z_offset sarebbe un valore costante in ogni posizione della stampante. Per le stampanti delta, prova a misurare z_offset in una posizione vicino alla torre A, in una posizione vicino alla torre B e in una posizione vicino alla torre C. Per stampanti cartesiane, corexy e simili, prova a misurare z_offset in posizioni vicino ai quattro angoli del letto. Prima di iniziare questo test, calibrare prima gli offset della sonda X, Y e Z come descritto all'inizio di questo documento. Quindi porta a home la stampante e vai alla prima posizione XY. Seguire i passaggi in calibrazione dell'offset Z della sonda per eseguire il comando PROBE_CALIBRATE , i comandi TESTZ e il comando ACCETTA , ma non eseguire SAVE_CONFIG . Nota lo z_offset segnalato trovato. Quindi passare alle altre posizioni XY, ripetere questi passaggi PROBE_CALIBRATE e annotare lo z_offset riportato. Se la differenza tra l'offset z minimo riportato e l'offset z massimo riportato \u00e8 maggiore di 25 micron (0,025 mm), la sonda non \u00e8 adatta per le tipiche procedure di livellamento del letto. Consultare il Bed Level document per sonde alternative manuali.","title":"Verifica scostamenti di posizione"},{"location":"Probe_Calibrate.html#scostamenti-per-temperatura","text":"Molte sonde hanno una distorsione sistemica quando misurano a temperature diverse. Ad esempio, la sonda pu\u00f2 attivarsi costantemente a un'altezza inferiore quando la sonda si trova a una temperatura pi\u00f9 elevata. Si consiglia di eseguire le procedure di livellamento del piatto a una temperatura costante per tenere conto di questa distorsione. Ad esempio, usare sempre la sonda quando la stampante \u00e8 a temperatura ambiente oppure eseguire sempre la procedura dopo che la stampante ha raggiunto una temperatura costante. In entrambi i casi, \u00e8 una buona idea attendere diversi minuti dopo che \u00e8 stata raggiunta la temperatura desiderata, in modo che tutto apparato stampante sia alla temperatura desiderata costantemente. Per verificare la presenza di un errore per temperatura, iniziare con la stampante a temperatura ambiente e poi portare a home la stampante, spostare la testina in una posizione vicino al centro del letto ed eseguire il comando PROBE_ACCURACY . Nota i risultati. Quindi, senza eseguire l'homing o disabilitare i motori passo-passo, riscaldare l'ugello della stampante e il piatto alla temperatura di stampa ed eseguire nuovamente il comando PROBE_ACCURACY . Idealmente, il comando riporter\u00e0 risultati identici. Come sopra, se la sonda ha un errore causato dalla temperatura, fare attenzione a usare sempre la sonda a una temperatura costante stabile.","title":"Scostamenti per temperatura"},{"location":"Protocol.html","text":"Protocollo \u00b6 Il protocollo di messaggistica Klipper viene utilizzato per la comunicazione di basso livello tra il software host Klipper e il software microcontrollore Klipper. Ad alto livello il protocollo pu\u00f2 essere pensato come una serie di stringhe di comando e risposta che vengono compresse, trasmesse e quindi elaborate sul lato ricevente. Una serie di esempio di comandi in formato non compresso leggibile dall'uomo potrebbe essere simile a: set_digital_out pin=PA3 value=1 set_digital_out pin=PA7 value=1 schedule_digital_out oid=8 clock=4000000 value=0 queue_step oid=7 interval=7458 count=10 add=331 queue_step oid=7 interval=11717 count=4 add=1281 Vedere il documento mcu commands per informazioni sui comandi disponibili. Vedere il documento debugging per informazioni su come tradurre un file G-Code nei corrispondenti comandi del microcontrollore leggibili dall'uomo. Questa pagina fornisce una descrizione di alto livello del protocollo di messaggistica Klipper. Descrive come i messaggi sono dichiarati, codificati in formato binario (lo schema di \"compressione\") e trasmessi. L'obiettivo del protocollo \u00e8 abilitare un canale di comunicazione privo di errori tra l'host e il microcontrollore che sia a bassa latenza, bassa larghezza di banda e bassa complessit\u00e0 per il microcontrollore. Interfaccia microcontrollore \u00b6 Il protocollo di trasmissione Klipper pu\u00f2 essere pensato come un meccanismo RPC tra microcontrollore e host. Il software del microcontrollore dichiara i comandi che l'host pu\u00f2 richiamare insieme ai messaggi di risposta che pu\u00f2 generare. L'host utilizza tali informazioni per comandare al microcontrollore di eseguire azioni e interpretare i risultati. Dichiarazione dei comandi \u00b6 Il software del microcontrollore dichiara un \"comando\" utilizzando la macro DECL_COMMAND() nel codice C. Per esempio: DECL_COMMAND(command_update_digital_out, \"update_digital_out oid=%c value=%c\"); Quanto sopra dichiara un comando denominato \"update_digital_out\". Ci\u00f2 consente all'host di \"richiamare\" questo comando che causerebbe l'esecuzione della funzione C command_update_digital_out() nel microcontrollore. Quanto sopra indica anche che il comando accetta due parametri interi. Quando viene eseguito il codice C command_update_digital_out(), verr\u00e0 passata una matrice contenente questi due numeri interi: il primo corrispondente all'\"oid\" e il secondo corrispondente al \"valore\". In generale, i parametri sono descritti con la sintassi di stile printf() (ad esempio, \"%u\"). La formattazione corrisponde direttamente alla visualizzazione leggibile dei comandi (ad es. \"update_digital_out oid=7 value=1\"). Nell'esempio precedente, \"value=\" \u00e8 un nome di parametro e \"%c\" indica che il parametro \u00e8 un numero intero. Internamente, il nome del parametro viene utilizzato solo come documentazione. In questo esempio, \"%c\" viene utilizzato anche come documentazione per indicare che l'intero previsto ha una dimensione di 1 byte (la dimensione intera dichiarata non influisce sull'analisi o sulla codifica). La build del microcontrollore raccoglier\u00e0 tutti i comandi dichiarati con DECL_COMMAND(), ne determiner\u00e0 i parametri e far\u00e0 in modo che siano richiamabili. Declaring responses \u00b6 Per inviare informazioni dal microcontrollore all'host viene generata una \"risposta\". Questi sono sia dichiarati che trasmessi usando la macro C sendf(). Per esempio: sendf(\"status clock=%u status=%c\", sched_read_time(), sched_is_shutdown()); Quanto sopra trasmette un messaggio di risposta di \"stato\" che contiene due parametri interi (\"clock\" e \"status\"). La build del microcontrollore trova automaticamente tutte le chiamate sendf() e genera codificatori per esse. Il primo parametro della funzione sendf() descrive la risposta ed \u00e8 nello stesso formato delle dichiarazioni di comando. L'host pu\u00f2 organizzare la registrazione di una funzione di richiamata per ogni risposta. Quindi, in effetti, i comandi consentono all'host di invocare le funzioni C nel microcontrollore e le risposte consentono al software del microcontrollore di richiamare il codice nell'host. La macro sendf() deve essere invocata solo da gestori di comandi o attivit\u00e0 e non deve essere invocata da interrupt o timer. Il codice non ha bisogno di emettere un sendf() in risposta a un comando ricevuto, non \u00e8 limitato nel numero di volte in cui sendf() pu\u00f2 essere invocato e pu\u00f2 invocare sendf() in qualsiasi momento da un task handler. Risposte in output \u00b6 Per semplificare il debug, esiste anche una funzione C output(). Per esempio: output(\"Il valore di%u \u00e8 %s con dimensione %u.\", x, buf, buf_len); La funzione output() \u00e8 simile nell'uso a printf() - \u00e8 intesa per generare e formattare messaggi arbitrari per il 'consumo umano'. Dichiarazione di enumerazioni \u00b6 Le enumerazioni consentono al codice host di utilizzare identificatori di stringa per i parametri che il microcontrollore gestisce come numeri interi. Sono dichiarati nel codice del microcontrollore, ad esempio: DECL_ENUMERATION(\"spi_bus\", \"spi\", 0); DECL_ENUMERATION_RANGE(\"pin\", \"PC0\", 16, 8); Se il primo esempio, la macro DECL_ENUMERATION() definisce un'enumerazione per qualsiasi messaggio di comando/risposta con nome parametro \"spi_bus\" o nome parametro con suffisso \"_spi_bus\". Per quei parametri la stringa \"spi\" \u00e8 un valore valido e verr\u00e0 trasmessa con un valore intero pari a zero. \u00c8 anche possibile dichiarare un intervallo di enumerazione. Nel secondo esempio, un parametro \"pin\" (o qualsiasi parametro con suffisso \"_pin\") accetterebbe PC0, PC1, PC2, ..., PC7 come valori validi. Le stringhe verranno trasmesse con numeri interi 16, 17, 18, ..., 23. Dichiarazione di costanti \u00b6 Le costanti possono anche essere esportate. Ad esempio, quanto segue: DECL_CONSTANT(\"SERIAL_BAUD\", 250000); esporterebbe una costante denominata \"SERIAL_BAUD\" con un valore di 250000 dal microcontrollore all'host. \u00c8 anche possibile dichiarare una costante che \u00e8 una stringa, ad esempio: DECL_CONSTANT_STR(\"MCU\", \"pru\"); Codifica dei messaggi di basso livello \u00b6 Per realizzare il meccanismo RPC di cui sopra, ogni comando e risposta viene codificato in un formato binario per la trasmissione. Questa sezione descrive il sistema di trasmissione. Blocchi di messaggi \u00b6 Tutti i dati inviati dall'host al microcontrollore e viceversa sono contenuti in \"blocchi di messaggi\". Un blocco di messaggi ha un'intestazione di due byte e un trailer di tre byte. Il formato di un blocco di messaggi \u00e8: <1 byte lunghezza><1 byte sequenza><n-byte contenuto><2 byte crc><1 byte sync> Il byte di lunghezza contiene il numero di byte nel blocco di messaggi inclusi i byte di intestazione e trailer (quindi la lunghezza minima del messaggio \u00e8 5 byte). La lunghezza massima del blocco di messaggi \u00e8 attualmente di 64 byte. Il byte di sequenza contiene un numero di sequenza di 4 bit nei bit di ordine inferiore e i bit di ordine superiore contengono sempre 0x10 (i bit di ordine superiore sono riservati per un uso futuro). I byte di contenuto contengono dati arbitrari e il relativo formato \u00e8 descritto nella sezione seguente. I byte crc contengono un CCITT CRC a 16 bit del blocco di messaggi inclusi i byte di intestazione ma esclusi i byte di trailer. Il byte di sincronizzazione \u00e8 0x7e. Il formato del blocco di messaggi si ispira ai telegrammi HDLC . Come in HDLC, il blocco di messaggi pu\u00f2 contenere facoltativamente un carattere di sincronizzazione aggiuntivo all'inizio del blocco. A differenza di HDLC, un carattere di sincronizzazione non \u00e8 esclusivo del framing e pu\u00f2 essere presente nel contenuto del blocco di messaggi. Contenuto del blocco messaggi \u00b6 Ogni blocco di messaggi inviato dall'host al microcontrollore contiene una serie di zero o pi\u00f9 comandi di messaggi. Ogni comando inizia con un Quantit\u00e0 a lunghezza variabile (VLQ) command-id seguito da zero o pi\u00f9 parametri VLQ per il comando dato. Ad esempio, i seguenti quattro comandi possono essere inseriti in un unico blocco di messaggi: update_digital_out oid=6 value=1 update_digital_out oid=5 value=0 get_config get_clock e codificato nei seguenti otto interi VLQ: <id_update_digital_out><6><1><id_update_digital_out><5><0><id_get_config><id_get_clock> Per codificare e analizzare il contenuto del messaggio, sia l'host che il microcontrollore devono concordare gli ID comando e il numero di parametri di ciascun comando. Quindi, nell'esempio sopra, sia l'host che il microcontrollore saprebbero che \"id_update_digital_out\" \u00e8 sempre seguito da due parametri e \"id_get_config\" e \"id_get_clock\" hanno zero parametri. L'host e il microcontrollore condividono un \"dizionario dei dati\" che mappa le descrizioni dei comandi (ad esempio, \"update_digital_out oid=%c value=%c\") ai loro ID di comando interi. Durante l'elaborazione dei dati, il parser sapr\u00e0 di aspettarsi un numero specifico di parametri codificati VLQ a seguito di un determinato ID comando. Il contenuto del messaggio per i blocchi inviati dal microcontrollore all'host segue lo stesso formato. Gli identificatori in questi messaggi sono \"ID di risposta\", ma servono allo stesso scopo e seguono le stesse regole di codifica. In pratica, i blocchi di messaggi inviati dal microcontrollore all'host non contengono mai pi\u00f9 di una risposta nel contenuto del blocco di messaggi. Quantit\u00e0 di lunghezza variabile \u00b6 Consulta l' articolo di Wikipedia per ulteriori informazioni sul formato generale degli interi codificati VLQ. Klipper utilizza uno schema di codifica che supporta numeri interi positivi e negativi. Gli interi prossimi allo zero utilizzano meno byte per codificare e gli interi positivi in genere codificano utilizzando meno byte degli interi negativi. La tabella seguente mostra il numero di byte che ogni intero impiega per codificare: Intero Dimensione codificata -32 .. 95 1 -4096 .. 12287 2 -524288 .. 1572863 3 -67108864 .. 201326591 4 -2147483648 .. 4294967295 5 Stringhe di lunghezza variabile \u00b6 Come eccezione alle regole di codifica precedenti, se un parametro di un comando o di una risposta \u00e8 una stringa dinamica, il parametro non viene codificato come un semplice intero VLQ. Invece viene codificato trasmettendo la lunghezza come intero codificato VLQ seguito dal contenuto stesso: <VLQ encoded length><n-byte contents> Le descrizioni dei comandi che si trovano nel dizionario dei dati consentono sia all'host che al microcontrollore di sapere quali parametri del comando utilizzano la semplice codifica VLQ e quali parametri utilizzano la codifica delle stringhe. Dizionario dati \u00b6 Affinch\u00e9 vengano stabilite comunicazioni significative tra microcontrollore e host, entrambe le parti devono concordare un \"dizionario dei dati\". Questo dizionario di dati contiene gli identificatori interi per comandi e risposte insieme alle relative descrizioni. La build del microcontrollore utilizza il contenuto delle macro DECL_COMMAND() e sendf() per generare il dizionario dei dati. La build assegna automaticamente identificatori univoci a ciascun comando e risposta. Questo sistema consente sia all'host che al codice del microcontrollore di utilizzare senza problemi nomi descrittivi leggibili dall'uomo pur utilizzando una larghezza di banda minima. L'host interroga il dizionario dei dati quando si connette per la prima volta al microcontrollore. Una volta che l'host ha scaricato il dizionario dei dati dal microcontrollore, utilizza quel dizionario dei dati per codificare tutti i comandi e per analizzare tutte le risposte dal microcontrollore. L'host deve quindi gestire un dizionario di dati dinamico. Tuttavia, per mantenere semplice il software del microcontrollore, il microcontrollore utilizza sempre il suo dizionario dati statico (compilato). Il dizionario dei dati viene interrogato inviando i comandi \"identify\" al microcontrollore. Il microcontrollore risponder\u00e0 a ogni comando di identificazione con un messaggio \"identify_response\". Poich\u00e9 questi due comandi sono necessari prima di ottenere il dizionario dei dati, i loro ID interi e tipi di parametri sono codificati sia nel microcontrollore che nell'host. L'ID della risposta \"identify_response\" \u00e8 0, l'ID del comando \"identify\" \u00e8 1. Oltre ad avere ID hardcoded, il comando di identificazione e la relativa risposta vengono dichiarati e trasmessi allo stesso modo degli altri comandi e risposte. Nessun altro comando o risposta \u00e8 hardcoded. Il formato del dizionario dei dati trasmessi stesso \u00e8 una stringa JSON compressa zlib. Il processo di compilazione del microcontrollore genera la stringa, la comprime e la memorizza nella sezione di testo del flash del microcontrollore. Il dizionario dei dati pu\u00f2 essere molto pi\u00f9 grande della dimensione massima del blocco del messaggio: l'host lo scarica inviando pi\u00f9 comandi di identificazione che richiedono blocchi progressivi del dizionario dei dati. Una volta ottenuti tutti i blocchi, l'host assembler\u00e0 i blocchi, decomprimer\u00e0 i dati e analizzer\u00e0 il contenuto. Oltre alle informazioni sul protocollo di comunicazione, il dizionario dei dati contiene anche la versione del software, le enumerazioni (come definite da DECL_ENUMERATION) e le costanti (come definite da DECL_CONSTANT). Flusso di messaggi \u00b6 I comandi dei messaggi inviati dall'host al microcontrollore sono concepiti per essere privi di errori. Il microcontrollore controller\u00e0 il CRC e i numeri di sequenza in ciascun blocco di messaggi per garantire che i comandi siano accurati e in ordine. Il microcontrollore elabora sempre i blocchi di messaggi in ordine - se riceve un blocco fuori ordine, lo scarter\u00e0 e tutti gli altri blocchi fuori ordine fino a quando non riceve blocchi con la sequenza corretta. Il codice host di basso livello implementa un sistema di ritrasmissione automatica per i blocchi di messaggi persi e corrotti inviati al microcontrollore. Per facilitare ci\u00f2, il microcontrollore trasmette un \"ack message block\" dopo ogni blocco di messaggio ricevuto con successo. L'host pianifica un timeout dopo l'invio di ogni blocco e lo ritrasmetter\u00e0 se il timeout scade senza ricevere un corrispondente \"ack\". Inoltre, se il microcontrollore rileva un blocco corrotto o fuori servizio, pu\u00f2 trasmettere un \"nak message block\" per facilitare una rapida ritrasmissione. Un \"ack\" \u00e8 un blocco di messaggi con contenuto vuoto (cio\u00e8 un blocco di messaggi di 5 byte) e un numero di sequenza maggiore dell'ultimo numero di sequenza dell'host ricevuto. Un \"nak\" \u00e8 un blocco di messaggi con contenuto vuoto e un numero di sequenza inferiore all'ultimo numero di sequenza host ricevuto. Il protocollo facilita un sistema di trasmissione \"finestra\" in modo che l'host possa avere molti blocchi di messaggi in sospeso in viaggio alla volta. (Questo \u00e8 in aggiunta ai molti comandi che possono essere presenti in un determinato blocco di messaggi.) Ci\u00f2 consente il massimo utilizzo della larghezza di banda anche in caso di latenza di trasmissione. Il meccanismo di timeout, ritrasmissione, windowing e ack si ispira a meccanismi simili in TCP . Nell'altra direzione, i blocchi di messaggi inviati dal microcontrollore all'host sono progettati per essere privi di errori, ma non hanno una trasmissione sicura. (Le risposte non dovrebbero essere danneggiate, ma potrebbero scomparire.) Questo viene fatto per mantenere semplice l'implementazione nel microcontrollore. Non esiste un sistema di ritrasmissione automatica delle risposte: ci si aspetta che il codice di alto livello sia in grado di gestire una risposta mancante occasionale (di solito richiedendo nuovamente il contenuto o impostando un programma ricorrente di trasmissione della risposta). Il campo del numero di sequenza nei blocchi di messaggi inviati all'host \u00e8 sempre uno maggiore dell'ultimo numero di sequenza di blocchi di messaggi ricevuti dall'host. Non viene utilizzato per tenere traccia di sequenze di blocchi di messaggi di risposta.","title":"Protocollo"},{"location":"Protocol.html#protocollo","text":"Il protocollo di messaggistica Klipper viene utilizzato per la comunicazione di basso livello tra il software host Klipper e il software microcontrollore Klipper. Ad alto livello il protocollo pu\u00f2 essere pensato come una serie di stringhe di comando e risposta che vengono compresse, trasmesse e quindi elaborate sul lato ricevente. Una serie di esempio di comandi in formato non compresso leggibile dall'uomo potrebbe essere simile a: set_digital_out pin=PA3 value=1 set_digital_out pin=PA7 value=1 schedule_digital_out oid=8 clock=4000000 value=0 queue_step oid=7 interval=7458 count=10 add=331 queue_step oid=7 interval=11717 count=4 add=1281 Vedere il documento mcu commands per informazioni sui comandi disponibili. Vedere il documento debugging per informazioni su come tradurre un file G-Code nei corrispondenti comandi del microcontrollore leggibili dall'uomo. Questa pagina fornisce una descrizione di alto livello del protocollo di messaggistica Klipper. Descrive come i messaggi sono dichiarati, codificati in formato binario (lo schema di \"compressione\") e trasmessi. L'obiettivo del protocollo \u00e8 abilitare un canale di comunicazione privo di errori tra l'host e il microcontrollore che sia a bassa latenza, bassa larghezza di banda e bassa complessit\u00e0 per il microcontrollore.","title":"Protocollo"},{"location":"Protocol.html#interfaccia-microcontrollore","text":"Il protocollo di trasmissione Klipper pu\u00f2 essere pensato come un meccanismo RPC tra microcontrollore e host. Il software del microcontrollore dichiara i comandi che l'host pu\u00f2 richiamare insieme ai messaggi di risposta che pu\u00f2 generare. L'host utilizza tali informazioni per comandare al microcontrollore di eseguire azioni e interpretare i risultati.","title":"Interfaccia microcontrollore"},{"location":"Protocol.html#dichiarazione-dei-comandi","text":"Il software del microcontrollore dichiara un \"comando\" utilizzando la macro DECL_COMMAND() nel codice C. Per esempio: DECL_COMMAND(command_update_digital_out, \"update_digital_out oid=%c value=%c\"); Quanto sopra dichiara un comando denominato \"update_digital_out\". Ci\u00f2 consente all'host di \"richiamare\" questo comando che causerebbe l'esecuzione della funzione C command_update_digital_out() nel microcontrollore. Quanto sopra indica anche che il comando accetta due parametri interi. Quando viene eseguito il codice C command_update_digital_out(), verr\u00e0 passata una matrice contenente questi due numeri interi: il primo corrispondente all'\"oid\" e il secondo corrispondente al \"valore\". In generale, i parametri sono descritti con la sintassi di stile printf() (ad esempio, \"%u\"). La formattazione corrisponde direttamente alla visualizzazione leggibile dei comandi (ad es. \"update_digital_out oid=7 value=1\"). Nell'esempio precedente, \"value=\" \u00e8 un nome di parametro e \"%c\" indica che il parametro \u00e8 un numero intero. Internamente, il nome del parametro viene utilizzato solo come documentazione. In questo esempio, \"%c\" viene utilizzato anche come documentazione per indicare che l'intero previsto ha una dimensione di 1 byte (la dimensione intera dichiarata non influisce sull'analisi o sulla codifica). La build del microcontrollore raccoglier\u00e0 tutti i comandi dichiarati con DECL_COMMAND(), ne determiner\u00e0 i parametri e far\u00e0 in modo che siano richiamabili.","title":"Dichiarazione dei comandi"},{"location":"Protocol.html#declaring-responses","text":"Per inviare informazioni dal microcontrollore all'host viene generata una \"risposta\". Questi sono sia dichiarati che trasmessi usando la macro C sendf(). Per esempio: sendf(\"status clock=%u status=%c\", sched_read_time(), sched_is_shutdown()); Quanto sopra trasmette un messaggio di risposta di \"stato\" che contiene due parametri interi (\"clock\" e \"status\"). La build del microcontrollore trova automaticamente tutte le chiamate sendf() e genera codificatori per esse. Il primo parametro della funzione sendf() descrive la risposta ed \u00e8 nello stesso formato delle dichiarazioni di comando. L'host pu\u00f2 organizzare la registrazione di una funzione di richiamata per ogni risposta. Quindi, in effetti, i comandi consentono all'host di invocare le funzioni C nel microcontrollore e le risposte consentono al software del microcontrollore di richiamare il codice nell'host. La macro sendf() deve essere invocata solo da gestori di comandi o attivit\u00e0 e non deve essere invocata da interrupt o timer. Il codice non ha bisogno di emettere un sendf() in risposta a un comando ricevuto, non \u00e8 limitato nel numero di volte in cui sendf() pu\u00f2 essere invocato e pu\u00f2 invocare sendf() in qualsiasi momento da un task handler.","title":"Declaring responses"},{"location":"Protocol.html#risposte-in-output","text":"Per semplificare il debug, esiste anche una funzione C output(). Per esempio: output(\"Il valore di%u \u00e8 %s con dimensione %u.\", x, buf, buf_len); La funzione output() \u00e8 simile nell'uso a printf() - \u00e8 intesa per generare e formattare messaggi arbitrari per il 'consumo umano'.","title":"Risposte in output"},{"location":"Protocol.html#dichiarazione-di-enumerazioni","text":"Le enumerazioni consentono al codice host di utilizzare identificatori di stringa per i parametri che il microcontrollore gestisce come numeri interi. Sono dichiarati nel codice del microcontrollore, ad esempio: DECL_ENUMERATION(\"spi_bus\", \"spi\", 0); DECL_ENUMERATION_RANGE(\"pin\", \"PC0\", 16, 8); Se il primo esempio, la macro DECL_ENUMERATION() definisce un'enumerazione per qualsiasi messaggio di comando/risposta con nome parametro \"spi_bus\" o nome parametro con suffisso \"_spi_bus\". Per quei parametri la stringa \"spi\" \u00e8 un valore valido e verr\u00e0 trasmessa con un valore intero pari a zero. \u00c8 anche possibile dichiarare un intervallo di enumerazione. Nel secondo esempio, un parametro \"pin\" (o qualsiasi parametro con suffisso \"_pin\") accetterebbe PC0, PC1, PC2, ..., PC7 come valori validi. Le stringhe verranno trasmesse con numeri interi 16, 17, 18, ..., 23.","title":"Dichiarazione di enumerazioni"},{"location":"Protocol.html#dichiarazione-di-costanti","text":"Le costanti possono anche essere esportate. Ad esempio, quanto segue: DECL_CONSTANT(\"SERIAL_BAUD\", 250000); esporterebbe una costante denominata \"SERIAL_BAUD\" con un valore di 250000 dal microcontrollore all'host. \u00c8 anche possibile dichiarare una costante che \u00e8 una stringa, ad esempio: DECL_CONSTANT_STR(\"MCU\", \"pru\");","title":"Dichiarazione di costanti"},{"location":"Protocol.html#codifica-dei-messaggi-di-basso-livello","text":"Per realizzare il meccanismo RPC di cui sopra, ogni comando e risposta viene codificato in un formato binario per la trasmissione. Questa sezione descrive il sistema di trasmissione.","title":"Codifica dei messaggi di basso livello"},{"location":"Protocol.html#blocchi-di-messaggi","text":"Tutti i dati inviati dall'host al microcontrollore e viceversa sono contenuti in \"blocchi di messaggi\". Un blocco di messaggi ha un'intestazione di due byte e un trailer di tre byte. Il formato di un blocco di messaggi \u00e8: <1 byte lunghezza><1 byte sequenza><n-byte contenuto><2 byte crc><1 byte sync> Il byte di lunghezza contiene il numero di byte nel blocco di messaggi inclusi i byte di intestazione e trailer (quindi la lunghezza minima del messaggio \u00e8 5 byte). La lunghezza massima del blocco di messaggi \u00e8 attualmente di 64 byte. Il byte di sequenza contiene un numero di sequenza di 4 bit nei bit di ordine inferiore e i bit di ordine superiore contengono sempre 0x10 (i bit di ordine superiore sono riservati per un uso futuro). I byte di contenuto contengono dati arbitrari e il relativo formato \u00e8 descritto nella sezione seguente. I byte crc contengono un CCITT CRC a 16 bit del blocco di messaggi inclusi i byte di intestazione ma esclusi i byte di trailer. Il byte di sincronizzazione \u00e8 0x7e. Il formato del blocco di messaggi si ispira ai telegrammi HDLC . Come in HDLC, il blocco di messaggi pu\u00f2 contenere facoltativamente un carattere di sincronizzazione aggiuntivo all'inizio del blocco. A differenza di HDLC, un carattere di sincronizzazione non \u00e8 esclusivo del framing e pu\u00f2 essere presente nel contenuto del blocco di messaggi.","title":"Blocchi di messaggi"},{"location":"Protocol.html#contenuto-del-blocco-messaggi","text":"Ogni blocco di messaggi inviato dall'host al microcontrollore contiene una serie di zero o pi\u00f9 comandi di messaggi. Ogni comando inizia con un Quantit\u00e0 a lunghezza variabile (VLQ) command-id seguito da zero o pi\u00f9 parametri VLQ per il comando dato. Ad esempio, i seguenti quattro comandi possono essere inseriti in un unico blocco di messaggi: update_digital_out oid=6 value=1 update_digital_out oid=5 value=0 get_config get_clock e codificato nei seguenti otto interi VLQ: <id_update_digital_out><6><1><id_update_digital_out><5><0><id_get_config><id_get_clock> Per codificare e analizzare il contenuto del messaggio, sia l'host che il microcontrollore devono concordare gli ID comando e il numero di parametri di ciascun comando. Quindi, nell'esempio sopra, sia l'host che il microcontrollore saprebbero che \"id_update_digital_out\" \u00e8 sempre seguito da due parametri e \"id_get_config\" e \"id_get_clock\" hanno zero parametri. L'host e il microcontrollore condividono un \"dizionario dei dati\" che mappa le descrizioni dei comandi (ad esempio, \"update_digital_out oid=%c value=%c\") ai loro ID di comando interi. Durante l'elaborazione dei dati, il parser sapr\u00e0 di aspettarsi un numero specifico di parametri codificati VLQ a seguito di un determinato ID comando. Il contenuto del messaggio per i blocchi inviati dal microcontrollore all'host segue lo stesso formato. Gli identificatori in questi messaggi sono \"ID di risposta\", ma servono allo stesso scopo e seguono le stesse regole di codifica. In pratica, i blocchi di messaggi inviati dal microcontrollore all'host non contengono mai pi\u00f9 di una risposta nel contenuto del blocco di messaggi.","title":"Contenuto del blocco messaggi"},{"location":"Protocol.html#quantita-di-lunghezza-variabile","text":"Consulta l' articolo di Wikipedia per ulteriori informazioni sul formato generale degli interi codificati VLQ. Klipper utilizza uno schema di codifica che supporta numeri interi positivi e negativi. Gli interi prossimi allo zero utilizzano meno byte per codificare e gli interi positivi in genere codificano utilizzando meno byte degli interi negativi. La tabella seguente mostra il numero di byte che ogni intero impiega per codificare: Intero Dimensione codificata -32 .. 95 1 -4096 .. 12287 2 -524288 .. 1572863 3 -67108864 .. 201326591 4 -2147483648 .. 4294967295 5","title":"Quantit\u00e0 di lunghezza variabile"},{"location":"Protocol.html#stringhe-di-lunghezza-variabile","text":"Come eccezione alle regole di codifica precedenti, se un parametro di un comando o di una risposta \u00e8 una stringa dinamica, il parametro non viene codificato come un semplice intero VLQ. Invece viene codificato trasmettendo la lunghezza come intero codificato VLQ seguito dal contenuto stesso: <VLQ encoded length><n-byte contents> Le descrizioni dei comandi che si trovano nel dizionario dei dati consentono sia all'host che al microcontrollore di sapere quali parametri del comando utilizzano la semplice codifica VLQ e quali parametri utilizzano la codifica delle stringhe.","title":"Stringhe di lunghezza variabile"},{"location":"Protocol.html#dizionario-dati","text":"Affinch\u00e9 vengano stabilite comunicazioni significative tra microcontrollore e host, entrambe le parti devono concordare un \"dizionario dei dati\". Questo dizionario di dati contiene gli identificatori interi per comandi e risposte insieme alle relative descrizioni. La build del microcontrollore utilizza il contenuto delle macro DECL_COMMAND() e sendf() per generare il dizionario dei dati. La build assegna automaticamente identificatori univoci a ciascun comando e risposta. Questo sistema consente sia all'host che al codice del microcontrollore di utilizzare senza problemi nomi descrittivi leggibili dall'uomo pur utilizzando una larghezza di banda minima. L'host interroga il dizionario dei dati quando si connette per la prima volta al microcontrollore. Una volta che l'host ha scaricato il dizionario dei dati dal microcontrollore, utilizza quel dizionario dei dati per codificare tutti i comandi e per analizzare tutte le risposte dal microcontrollore. L'host deve quindi gestire un dizionario di dati dinamico. Tuttavia, per mantenere semplice il software del microcontrollore, il microcontrollore utilizza sempre il suo dizionario dati statico (compilato). Il dizionario dei dati viene interrogato inviando i comandi \"identify\" al microcontrollore. Il microcontrollore risponder\u00e0 a ogni comando di identificazione con un messaggio \"identify_response\". Poich\u00e9 questi due comandi sono necessari prima di ottenere il dizionario dei dati, i loro ID interi e tipi di parametri sono codificati sia nel microcontrollore che nell'host. L'ID della risposta \"identify_response\" \u00e8 0, l'ID del comando \"identify\" \u00e8 1. Oltre ad avere ID hardcoded, il comando di identificazione e la relativa risposta vengono dichiarati e trasmessi allo stesso modo degli altri comandi e risposte. Nessun altro comando o risposta \u00e8 hardcoded. Il formato del dizionario dei dati trasmessi stesso \u00e8 una stringa JSON compressa zlib. Il processo di compilazione del microcontrollore genera la stringa, la comprime e la memorizza nella sezione di testo del flash del microcontrollore. Il dizionario dei dati pu\u00f2 essere molto pi\u00f9 grande della dimensione massima del blocco del messaggio: l'host lo scarica inviando pi\u00f9 comandi di identificazione che richiedono blocchi progressivi del dizionario dei dati. Una volta ottenuti tutti i blocchi, l'host assembler\u00e0 i blocchi, decomprimer\u00e0 i dati e analizzer\u00e0 il contenuto. Oltre alle informazioni sul protocollo di comunicazione, il dizionario dei dati contiene anche la versione del software, le enumerazioni (come definite da DECL_ENUMERATION) e le costanti (come definite da DECL_CONSTANT).","title":"Dizionario dati"},{"location":"Protocol.html#flusso-di-messaggi","text":"I comandi dei messaggi inviati dall'host al microcontrollore sono concepiti per essere privi di errori. Il microcontrollore controller\u00e0 il CRC e i numeri di sequenza in ciascun blocco di messaggi per garantire che i comandi siano accurati e in ordine. Il microcontrollore elabora sempre i blocchi di messaggi in ordine - se riceve un blocco fuori ordine, lo scarter\u00e0 e tutti gli altri blocchi fuori ordine fino a quando non riceve blocchi con la sequenza corretta. Il codice host di basso livello implementa un sistema di ritrasmissione automatica per i blocchi di messaggi persi e corrotti inviati al microcontrollore. Per facilitare ci\u00f2, il microcontrollore trasmette un \"ack message block\" dopo ogni blocco di messaggio ricevuto con successo. L'host pianifica un timeout dopo l'invio di ogni blocco e lo ritrasmetter\u00e0 se il timeout scade senza ricevere un corrispondente \"ack\". Inoltre, se il microcontrollore rileva un blocco corrotto o fuori servizio, pu\u00f2 trasmettere un \"nak message block\" per facilitare una rapida ritrasmissione. Un \"ack\" \u00e8 un blocco di messaggi con contenuto vuoto (cio\u00e8 un blocco di messaggi di 5 byte) e un numero di sequenza maggiore dell'ultimo numero di sequenza dell'host ricevuto. Un \"nak\" \u00e8 un blocco di messaggi con contenuto vuoto e un numero di sequenza inferiore all'ultimo numero di sequenza host ricevuto. Il protocollo facilita un sistema di trasmissione \"finestra\" in modo che l'host possa avere molti blocchi di messaggi in sospeso in viaggio alla volta. (Questo \u00e8 in aggiunta ai molti comandi che possono essere presenti in un determinato blocco di messaggi.) Ci\u00f2 consente il massimo utilizzo della larghezza di banda anche in caso di latenza di trasmissione. Il meccanismo di timeout, ritrasmissione, windowing e ack si ispira a meccanismi simili in TCP . Nell'altra direzione, i blocchi di messaggi inviati dal microcontrollore all'host sono progettati per essere privi di errori, ma non hanno una trasmissione sicura. (Le risposte non dovrebbero essere danneggiate, ma potrebbero scomparire.) Questo viene fatto per mantenere semplice l'implementazione nel microcontrollore. Non esiste un sistema di ritrasmissione automatica delle risposte: ci si aspetta che il codice di alto livello sia in grado di gestire una risposta mancante occasionale (di solito richiedendo nuovamente il contenuto o impostando un programma ricorrente di trasmissione della risposta). Il campo del numero di sequenza nei blocchi di messaggi inviati all'host \u00e8 sempre uno maggiore dell'ultimo numero di sequenza di blocchi di messaggi ricevuti dall'host. Non viene utilizzato per tenere traccia di sequenze di blocchi di messaggi di risposta.","title":"Flusso di messaggi"},{"location":"RPi_microcontroller.html","text":"Microcontrollore RPi \u00b6 Questo documento descrive il processo di esecuzione di Klipper su un RPi e usa lo stesso RPi come mcu secondario. Perch\u00e9 usare RPi come MCU secondario? \u00b6 Spesso gli MCU dedicati al controllo delle stampanti 3D hanno un numero limitato e preconfigurato di pin esposti per gestire le principali funzioni di stampa (resistenze termiche, estrusori, stepper...). L'utilizzo dell'RPi dove Klipper \u00e8 installato come MCU secondario d\u00e0 la possibilit\u00e0 di utilizzare direttamente i GPIO e i bus (i2c, spi) dell'RPi all'interno di klipper senza utilizzare plugin Octoprint (se utilizzati) o programmi esterni dando la possibilit\u00e0 di controllare tutto all'interno del GCODE di stampa. Attenzione : Se la tua piattaforma \u00e8 un Beaglebone e hai seguito correttamente i passi di installazione, la mcu linux \u00e8 gi\u00e0 installata e configurata per il tuo sistema. Installa lo script rc \u00b6 Se si desidera utilizzare l'host come MCU secondario, il processo di klipper_mcu deve essere eseguito prima del processo klippy. Dopo aver installato Klipper, installare lo script. eseguire: cd ~/klipper/ sudo cp \"./scripts/klipper-mcu-start.sh\" /etc/init.d/klipper_mcu sudo update-rc.d klipper_mcu defaults Creazione del codice del microcontrollore \u00b6 Per compilare il codice del microcontrollore Klipper, iniziate configurandolo per il \"processo Linux\": cd ~/klipper/ make menuconfig Nel menu, impostate \"Microcontroller Architecture\" su \"Linux process\", poi salvate e uscite. Per compilare e installare il nuovo codice del microcontrollore, eseguire: sudo service klipper stop make flash sudo service klipper start Se klippy.log segnala un errore \"Autorizzazione negata\" quando si tenta di connettersi a /tmp/klipper_host_mcu , \u00e8 necessario aggiungere l'utente al gruppo tty. Il seguente comando aggiunger\u00e0 l'utente \"pi\" al gruppo tty: sudo usermod -a -G tty pi Configurazione rimanente \u00b6 Completare l'installazione configurando l'MCU secondario di Klipper seguendo le istruzioni in RaspberryPi sample config e Multi MCU sample config . Facoltativo: abilitazione di SPI \u00b6 Assicurati che il driver SPI di Linux sia abilitato eseguendo sudo raspi-config e abilitando SPI nel menu \"Opzioni di interfaccia\". Opzionale: abilitazione di I2C \u00b6 Assicurati che l'interfaccia Linux I2C sia abilitato eseguendo sudo raspi-config e abilitando I2C nel menu \"Opzioni di interfaccia\". Se si intende utilizzare I2C per l'accelerometro MPU, \u00e8 anche necessario impostare il baud rate su 400000: aggiungendo/deselezionando dtparam=i2c_arm=on,i2c_arm_baudrate=400000 in /boot/config.txt (o / boot/firmware/config.txt in alcune distribuzioni). Opzionale: Identificare il gpiochip corretto \u00b6 Su Raspberry Pi e su molti cloni i pin esposti sul GPIO appartengono al primo gpiochip. Possono quindi essere utilizzati su klipper semplicemente riferendoli con il nome gpio0..n . Tuttavia, ci sono casi in cui i pin esposti appartengono a gpiochip diversi dal primo. Ad esempio nel caso di alcuni modelli OrangePi o se viene utilizzato un Port Expander. In questi casi \u00e8 utile utilizzare i comandi per accedere al dispositivo a caratteri GPIO Linux per verificarne la configurazione. Per installare il Linux GPIO character device - binary su una distro basata su debian come octopi eseguire: sudo apt-get install gpiod Per controllare i gpiochip disponibili eseguire: gpiodetect Per verificare il numero di pin e la disponibilit\u00e0 dei pin: gpioinfo Il pin scelto pu\u00f2 quindi essere utilizzato all'interno della configurazione come gpiochip<n>/gpio<o> dove n \u00e8 il numero del chip visto dal comando gpiodetect e o \u00e8 il numero di riga visto dal comando gpioinfo . Attenzione: solo i gpio contrassegnati come inutilizzati possono essere utilizzati. Non \u00e8 possibile che una linea sia usata da pi\u00f9 processi contemporaneamente. Per esempio su un RPi 3B+ dove klipper usa il GPIO20 per un interruttore: $ gpiodetect gpiochip0 [pinctrl-bcm2835] (54 lines) gpiochip1 [raspberrypi-exp-gpio] (8 lines) $ gpioinfo gpiochip0 - 54 lines: line 0: unnamed unused input active-high line 1: unnamed unused input active-high line 2: unnamed unused input active-high line 3: unnamed unused input active-high line 4: unnamed unused input active-high line 5: unnamed unused input active-high line 6: unnamed unused input active-high line 7: unnamed unused input active-high line 8: unnamed unused input active-high line 9: unnamed unused input active-high line 10: unnamed unused input active-high line 11: unnamed unused input active-high line 12: unnamed unused input active-high line 13: unnamed unused input active-high line 14: unnamed unused input active-high line 15: unnamed unused input active-high line 16: unnamed unused input active-high line 17: unnamed unused input active-high line 18: unnamed unused input active-high line 19: unnamed unused input active-high line 20: unnamed \"klipper\" output active-high [used] line 21: unnamed unused input active-high line 22: unnamed unused input active-high line 23: unnamed unused input active-high line 24: unnamed unused input active-high line 25: unnamed unused input active-high line 26: unnamed unused input active-high line 27: unnamed unused input active-high line 28: unnamed unused input active-high line 29: unnamed \"led0\" output active-high [used] line 30: unnamed unused input active-high line 31: unnamed unused input active-high line 32: unnamed unused input active-high line 33: unnamed unused input active-high line 34: unnamed unused input active-high line 35: unnamed unused input active-high line 36: unnamed unused input active-high line 37: unnamed unused input active-high line 38: unnamed unused input active-high line 39: unnamed unused input active-high line 40: unnamed unused input active-high line 41: unnamed unused input active-high line 42: unnamed unused input active-high line 43: unnamed unused input active-high line 44: unnamed unused input active-high line 45: unnamed unused input active-high line 46: unnamed unused input active-high line 47: unnamed unused input active-high line 48: unnamed unused input active-high line 49: unnamed unused input active-high line 50: unnamed unused input active-high line 51: unnamed unused input active-high line 52: unnamed unused input active-high line 53: unnamed unused input active-high gpiochip1 - 8 lines: line 0: unnamed unused input active-high line 1: unnamed unused input active-high line 2: unnamed \"led1\" output active-low [used] line 3: unnamed unused input active-high line 4: unnamed unused input active-high line 5: unnamed unused input active-high line 6: unnamed unused input active-high line 7: unnamed unused input active-high Opzionale: Hardware PWM \u00b6 I Raspberry Pi hanno due canali PWM (PWM0 e PWM1) che sono esposti sull'intestazione o, in caso contrario, possono essere instradati ai pin gpio esistenti. Il demone mcu Linux utilizza l'interfaccia sysfs pwmchip per controllare i dispositivi hardware pwm sugli host Linux. L'interfaccia sysfs pwm non \u00e8 esposta per impostazione predefinita su un Raspberry e pu\u00f2 essere attivata aggiungendo una riga a /boot/config.txt : # Abilita l'interfaccia sysfs di pwmchip dtoverlay=pwm,pin=12,func=4 Questo esempio abilita solo PWM0 e lo indirizza a gpio12. Se entrambi i canali PWM devono essere abilitati potete usare pwm-2chan . L'overlay non espone la riga pwm sui sysfs all'avvio e deve essere esportata facendo eco al numero del canale pwm in /sys/class/pwm/pwmchip0/export : echo 0 > /sys/class/pwm/pwmchip0/export Questo creer\u00e0 il dispositivo /sys/class/pwm/pwmchip0/pwm0 nel filesystem. Il modo pi\u00f9 semplice per farlo \u00e8 aggiungerlo a /etc/rc.local prima della riga exit 0 . Con il sysfs a posto, potete ora utilizzare il canale o i canali pwm aggiungendo il seguente pezzo di configurazione al vostro printer.cfg : [output_pin caselight] pin: host:pwmchip0/pwm0 pwm: True hardware_pwm: True cycle_time: 0.000001 Questo aggiunger\u00e0 il controllo pwm hardware a gpio12 sul Pi (perch\u00e9 l'overlay \u00e8 stato configurato per instradare pwm0 a pin = 12). PWM0 pu\u00f2 essere indirizzato su gpio12 e gpio18, PWM1 pu\u00f2 essere indirizzato su gpio13 e gpio19: PWM gpio PIN Func 0 12 4 0 18 2 1 13 4 1 19 2","title":"Microcontrollore RPi"},{"location":"RPi_microcontroller.html#microcontrollore-rpi","text":"Questo documento descrive il processo di esecuzione di Klipper su un RPi e usa lo stesso RPi come mcu secondario.","title":"Microcontrollore RPi"},{"location":"RPi_microcontroller.html#perche-usare-rpi-come-mcu-secondario","text":"Spesso gli MCU dedicati al controllo delle stampanti 3D hanno un numero limitato e preconfigurato di pin esposti per gestire le principali funzioni di stampa (resistenze termiche, estrusori, stepper...). L'utilizzo dell'RPi dove Klipper \u00e8 installato come MCU secondario d\u00e0 la possibilit\u00e0 di utilizzare direttamente i GPIO e i bus (i2c, spi) dell'RPi all'interno di klipper senza utilizzare plugin Octoprint (se utilizzati) o programmi esterni dando la possibilit\u00e0 di controllare tutto all'interno del GCODE di stampa. Attenzione : Se la tua piattaforma \u00e8 un Beaglebone e hai seguito correttamente i passi di installazione, la mcu linux \u00e8 gi\u00e0 installata e configurata per il tuo sistema.","title":"Perch\u00e9 usare RPi come MCU secondario?"},{"location":"RPi_microcontroller.html#installa-lo-script-rc","text":"Se si desidera utilizzare l'host come MCU secondario, il processo di klipper_mcu deve essere eseguito prima del processo klippy. Dopo aver installato Klipper, installare lo script. eseguire: cd ~/klipper/ sudo cp \"./scripts/klipper-mcu-start.sh\" /etc/init.d/klipper_mcu sudo update-rc.d klipper_mcu defaults","title":"Installa lo script rc"},{"location":"RPi_microcontroller.html#creazione-del-codice-del-microcontrollore","text":"Per compilare il codice del microcontrollore Klipper, iniziate configurandolo per il \"processo Linux\": cd ~/klipper/ make menuconfig Nel menu, impostate \"Microcontroller Architecture\" su \"Linux process\", poi salvate e uscite. Per compilare e installare il nuovo codice del microcontrollore, eseguire: sudo service klipper stop make flash sudo service klipper start Se klippy.log segnala un errore \"Autorizzazione negata\" quando si tenta di connettersi a /tmp/klipper_host_mcu , \u00e8 necessario aggiungere l'utente al gruppo tty. Il seguente comando aggiunger\u00e0 l'utente \"pi\" al gruppo tty: sudo usermod -a -G tty pi","title":"Creazione del codice del microcontrollore"},{"location":"RPi_microcontroller.html#configurazione-rimanente","text":"Completare l'installazione configurando l'MCU secondario di Klipper seguendo le istruzioni in RaspberryPi sample config e Multi MCU sample config .","title":"Configurazione rimanente"},{"location":"RPi_microcontroller.html#facoltativo-abilitazione-di-spi","text":"Assicurati che il driver SPI di Linux sia abilitato eseguendo sudo raspi-config e abilitando SPI nel menu \"Opzioni di interfaccia\".","title":"Facoltativo: abilitazione di SPI"},{"location":"RPi_microcontroller.html#opzionale-abilitazione-di-i2c","text":"Assicurati che l'interfaccia Linux I2C sia abilitato eseguendo sudo raspi-config e abilitando I2C nel menu \"Opzioni di interfaccia\". Se si intende utilizzare I2C per l'accelerometro MPU, \u00e8 anche necessario impostare il baud rate su 400000: aggiungendo/deselezionando dtparam=i2c_arm=on,i2c_arm_baudrate=400000 in /boot/config.txt (o / boot/firmware/config.txt in alcune distribuzioni).","title":"Opzionale: abilitazione di I2C"},{"location":"RPi_microcontroller.html#opzionale-identificare-il-gpiochip-corretto","text":"Su Raspberry Pi e su molti cloni i pin esposti sul GPIO appartengono al primo gpiochip. Possono quindi essere utilizzati su klipper semplicemente riferendoli con il nome gpio0..n . Tuttavia, ci sono casi in cui i pin esposti appartengono a gpiochip diversi dal primo. Ad esempio nel caso di alcuni modelli OrangePi o se viene utilizzato un Port Expander. In questi casi \u00e8 utile utilizzare i comandi per accedere al dispositivo a caratteri GPIO Linux per verificarne la configurazione. Per installare il Linux GPIO character device - binary su una distro basata su debian come octopi eseguire: sudo apt-get install gpiod Per controllare i gpiochip disponibili eseguire: gpiodetect Per verificare il numero di pin e la disponibilit\u00e0 dei pin: gpioinfo Il pin scelto pu\u00f2 quindi essere utilizzato all'interno della configurazione come gpiochip<n>/gpio<o> dove n \u00e8 il numero del chip visto dal comando gpiodetect e o \u00e8 il numero di riga visto dal comando gpioinfo . Attenzione: solo i gpio contrassegnati come inutilizzati possono essere utilizzati. Non \u00e8 possibile che una linea sia usata da pi\u00f9 processi contemporaneamente. Per esempio su un RPi 3B+ dove klipper usa il GPIO20 per un interruttore: $ gpiodetect gpiochip0 [pinctrl-bcm2835] (54 lines) gpiochip1 [raspberrypi-exp-gpio] (8 lines) $ gpioinfo gpiochip0 - 54 lines: line 0: unnamed unused input active-high line 1: unnamed unused input active-high line 2: unnamed unused input active-high line 3: unnamed unused input active-high line 4: unnamed unused input active-high line 5: unnamed unused input active-high line 6: unnamed unused input active-high line 7: unnamed unused input active-high line 8: unnamed unused input active-high line 9: unnamed unused input active-high line 10: unnamed unused input active-high line 11: unnamed unused input active-high line 12: unnamed unused input active-high line 13: unnamed unused input active-high line 14: unnamed unused input active-high line 15: unnamed unused input active-high line 16: unnamed unused input active-high line 17: unnamed unused input active-high line 18: unnamed unused input active-high line 19: unnamed unused input active-high line 20: unnamed \"klipper\" output active-high [used] line 21: unnamed unused input active-high line 22: unnamed unused input active-high line 23: unnamed unused input active-high line 24: unnamed unused input active-high line 25: unnamed unused input active-high line 26: unnamed unused input active-high line 27: unnamed unused input active-high line 28: unnamed unused input active-high line 29: unnamed \"led0\" output active-high [used] line 30: unnamed unused input active-high line 31: unnamed unused input active-high line 32: unnamed unused input active-high line 33: unnamed unused input active-high line 34: unnamed unused input active-high line 35: unnamed unused input active-high line 36: unnamed unused input active-high line 37: unnamed unused input active-high line 38: unnamed unused input active-high line 39: unnamed unused input active-high line 40: unnamed unused input active-high line 41: unnamed unused input active-high line 42: unnamed unused input active-high line 43: unnamed unused input active-high line 44: unnamed unused input active-high line 45: unnamed unused input active-high line 46: unnamed unused input active-high line 47: unnamed unused input active-high line 48: unnamed unused input active-high line 49: unnamed unused input active-high line 50: unnamed unused input active-high line 51: unnamed unused input active-high line 52: unnamed unused input active-high line 53: unnamed unused input active-high gpiochip1 - 8 lines: line 0: unnamed unused input active-high line 1: unnamed unused input active-high line 2: unnamed \"led1\" output active-low [used] line 3: unnamed unused input active-high line 4: unnamed unused input active-high line 5: unnamed unused input active-high line 6: unnamed unused input active-high line 7: unnamed unused input active-high","title":"Opzionale: Identificare il gpiochip corretto"},{"location":"RPi_microcontroller.html#opzionale-hardware-pwm","text":"I Raspberry Pi hanno due canali PWM (PWM0 e PWM1) che sono esposti sull'intestazione o, in caso contrario, possono essere instradati ai pin gpio esistenti. Il demone mcu Linux utilizza l'interfaccia sysfs pwmchip per controllare i dispositivi hardware pwm sugli host Linux. L'interfaccia sysfs pwm non \u00e8 esposta per impostazione predefinita su un Raspberry e pu\u00f2 essere attivata aggiungendo una riga a /boot/config.txt : # Abilita l'interfaccia sysfs di pwmchip dtoverlay=pwm,pin=12,func=4 Questo esempio abilita solo PWM0 e lo indirizza a gpio12. Se entrambi i canali PWM devono essere abilitati potete usare pwm-2chan . L'overlay non espone la riga pwm sui sysfs all'avvio e deve essere esportata facendo eco al numero del canale pwm in /sys/class/pwm/pwmchip0/export : echo 0 > /sys/class/pwm/pwmchip0/export Questo creer\u00e0 il dispositivo /sys/class/pwm/pwmchip0/pwm0 nel filesystem. Il modo pi\u00f9 semplice per farlo \u00e8 aggiungerlo a /etc/rc.local prima della riga exit 0 . Con il sysfs a posto, potete ora utilizzare il canale o i canali pwm aggiungendo il seguente pezzo di configurazione al vostro printer.cfg : [output_pin caselight] pin: host:pwmchip0/pwm0 pwm: True hardware_pwm: True cycle_time: 0.000001 Questo aggiunger\u00e0 il controllo pwm hardware a gpio12 sul Pi (perch\u00e9 l'overlay \u00e8 stato configurato per instradare pwm0 a pin = 12). PWM0 pu\u00f2 essere indirizzato su gpio12 e gpio18, PWM1 pu\u00f2 essere indirizzato su gpio13 e gpio19: PWM gpio PIN Func 0 12 4 0 18 2 1 13 4 1 19 2","title":"Opzionale: Hardware PWM"},{"location":"Releases.html","text":"Versioni \u00b6 Storico delle versioni di Klipper. Vedi installation per informazioni sull'installazione di Klipper. Klipper 0.10.0 \u00b6 Disponibile su 20210929. Principali modifiche in questa versione: Supporto per \"Homing multi-MCU\". \u00c8 ora possibile collegare un motore passo-passo e il relativo fine corsa a microcontrollori separati. Ci\u00f2 semplifica il cablaggio delle sonde Z sulle \"schede portautensili\". Klipper ora ha un Community Discord Server e un Community Discourse Server . Il sito Web di Klipper ora utilizza l'infrastruttura \"mkdocs\". Esiste anche un progetto Klipper Translations . Supporto automatizzato per il flashing del firmware tramite sdcard su molte schede. Nuovo supporto cinematico per le stampanti \"Hybrid CoreXY\" e \"Hybrid CoreXZ\". Klipper ora usa rotation_distance per configurare le distanze di viaggio del motore passo-passo. Il codice host principale di Klipper ora pu\u00f2 comunicare direttamente con i microcontrollori utilizzando il bus CAN. Nuovo sistema di \"analisi del movimento\". Gli aggiornamenti di movimento interni di Klipper e i risultati dei sensori possono essere tracciati e registrati per l'analisi. I driver per motori passo-passo Trinamic sono ora costantemente monitorati per rilevare eventuali condizioni di errore. Supporto per il microcontrollore rp2040 (schede Raspberry Pi Pico). Il sistema \"make menuconfig\" ora utilizza kconfiglib. Molti moduli aggiuntivi aggiunti: ds18b20, duplicate_pin_override, filament_motion_sensor, palette2, motion_report, pca9533, pulse_counter, save_variables, sdcard_loop, temperature_host, temperature_mcu Correzione di diversi bug e pulizia del codice. Klipper 0.9.0 \u00b6 Disponibile su 20201020. Modifiche principali in questa versione: Supporto per \"Input Shaping\" - un meccanismo per contrastare la risonanza della stampante. Pu\u00f2 ridurre o eliminare il \"ringing\" nelle stampe. Nuovo sistema \"Smooth Pressure Advance\". Questo implementa \"Pressure Advance\" senza introdurre variazioni di velocit\u00e0 istantanee. Ora \u00e8 anche possibile regolare l'anticipo della pressione utilizzando un metodo \"Tuning Tower\". Nuovo server API \"webhook\". Ci\u00f2 fornisce un'interfaccia JSON programmabile a Klipper. Il display LCD e il menu sono ora configurabili utilizzando la lingua del modello Jinja2. I driver per motori passo-passo TMC2208 possono ora essere utilizzati in modalit\u00e0 \"standalone\" con Klipper. Supporto BL-Touch v3 migliorato. Identificazione USB migliorata. Klipper ora ha il proprio codice di identificazione USB e i microcontrollori possono ora riportare i loro numeri di serie univoci durante l'identificazione USB. Nuovo supporto cinematico per stampanti \"Rotary Delta\" e \"CoreXZ\". Miglioramenti del microcontrollore: supporto per stm32f070, supporto per stm32f207, supporto per pin GPIO su \"Linux MCU\", supporto per \"bootloader HID\" stm32, supporto per bootloader Chitu, supporto per bootloader MKS Robin. Gestione migliorata degli eventi di \"garbage collection\" di Python. Molti moduli aggiuntivi aggiunti: adc_scaled, adxl345, bme280, display_status, extruder_stepper, fan_generic, hall_filament_width_sensor, htu21d, homing_heaters, input_shaper, lm75, print_stats, resonance_tester, shaper_calibrate, query_adc, graph_accelerometer, graph_extruder, graph_motion, graph_shaper, graph_temp_sensor, whconsole Correzione di diversi bug e pulizia del codice. Klipper 0.9.1 \u00b6 Disponibile su 20201028. Versione contenente solo correzioni di bug. Klipper 0.8.0 \u00b6 Disponibile su 20191021. Modifiche principali in questa versione: Nuovo supporto per il modello dei comandi G-Code. Il G-Code nel file di configurazione viene ora valutato con il linguaggio dei template Jinja2. Miglioramenti ai driver per stepper Trinamic: Nuovo supporto per i driver TMC2209 e TMC5160. Migliorati i comandi G-Code DUMP_TMC, SET_TMC_CURRENT e INIT_TMC. Supporto migliorato per la gestione di TMC UART con un mux analogico. Supporto migliorato per homing, sonda e livellamento del piatto: Aggiunti nuovi moduli manual_probe, bed_screws, Screws_tilt_adjust, skew_correction, safe_z_home. Sondaggio multi-campione migliorato con logica mediana, media e tentativi. Documentazione migliorata per BL-Touch, calibrazione della sonda, calibrazione endstop, calibrazione delta, homing sensorless e calibrazione della fase finecorsa. Supporto della corsa di riferimento migliorato su un asse Z grande. Molti miglioramenti del microcontrollore Klipper: Klipper portato su: SAM3X8C, SAM4S8C, SAMD51, STM32F042, STM32F4 Nuove implementazioni del driver CDC USB su SAM3X, SAM4, STM32F4. Supporto avanzato per il flashing di Klipper su USB. Supporto SPI software. Filtraggio della temperatura notevolmente migliorato sull'LPC176x. Le impostazioni dei pin di uscita possono essere configurate nel microcontrollore. Nuovo sito web con la documentazione di Klipper: http://klipper3d.org/ Klipper ora ha un logo. Supporto sperimentale alla cinematica polare e \"cable winch\". Il file di configurazione ora pu\u00f2 includere altri file di configurazione. Molti moduli aggiuntivi aggiunti: board_pins, controller_fan, delay_gcode, dotstar, filament_switch_sensor, firmware_retraction, gcode_arcs, gcode_button, heater_generic, manual_stepper, mcp4018, mcp4728, neopixel, pause_resume, respond, temperature_sensor tsl1401cl_filament_width_sensor, tuning_tower Molti comandi aggiuntivi aggiunti: RESTORE_GCODE_STATE, SAVE_GCODE_STATE, SET_GCODE_VARIABLE, SET_HEATER_TEMPERATURE, SET_IDLE_TIMEOUT, SET_TEMPERATURE_FAN_TARGET Correzione di diversi bug e pulizia del codice. Klipper 0.7.0 \u00b6 Disponibile su 20181220. Modifiche principali in questa versione: Klipper ora supporta il livellamento del piatto \"mesh\" Nuovo supporto per la calibrazione delta \"potenziata\" (calibra le dimensioni x/y di stampa su stampanti delta) Supporto per la configurazione a runtime dei driver per motori passo-passo Trinamic (tmc2130, tmc2208, tmc2660) Migliorato il supporto del sensore di temperatura: MAX6675, MAX31855, MAX31856, MAX31865, termistori personalizzati, sensori stile pt100 comuni Diversi nuovi moduli: temperature_fan, sx1509, force_move, mcp4451, z_tilt, quad_gantry_level, endstop_phase, bltouch Aggiunti diversi nuovi comandi: SAVE_CONFIG, SET_PRESSURE_ADVANCE, SET_GCODE_OFFSET, SET_VELOCITY_LIMIT, STEPPER_BUZZ, TURN_OFF_HEATERS, M204, macro g-code personalizzate Supporto display LCD esteso: Supporto per i menu a runtime Nuove icone di visualizzazione Supporto per i display \"uc1701\" e \"ssd1306\" Supporto per microcontrollore aggiuntivo: Klipper portato su: LPC176x (Smoothieboards), SAM4E8E (Duet2), SAMD21 (Arduino Zero), STM32F103 (dispositivi \"blue pill\"), atmega32u4 Nuovo driver USB CDC generico implementato su AVR, LPC176x, SAMD21 e STM32F103 Miglioramenti delle prestazioni sui processori ARM Il codice della cinematica \u00e8 stato riscritto per utilizzare un \"risolutore iterativo\" Nuovi test case automatici per il software host Klipper Molti nuovi file di configurazione di esempio per le stampanti standard comuni Aggiornamenti della documentazione per bootloader, benchmarking, porting del microcontroller, controlli di configurazione, mappatura dei pin, impostazioni dello slicer, packaging e altro ancora Diverse correzioni di bug e pulizia del codice Klipper 0.6.0 \u00b6 Disponibile su 20180331. Modifiche principali in questa versione: Controlli avanzati dei guasti hardware del riscaldatore e del termistore Supporto per sonde Z Supporto iniziale per la calibrazione automatica dei parametri sulle delta (tramite un nuovo comando delta_calibrate) Supporto iniziale per la compensazione dell'inclinazione del piatto (tramite il comando bed_tilt_calibrate) Supporto iniziale per \"homing sicuro\" e di homing overrides Supporto iniziale per la visualizzazione dello stato sui display RepRapDiscount stile 2004 e 12864 Nuovi miglioramenti multi-estrusore: Supporto per riscaldatori condivisi Supporto iniziale per carrelli doppi Supporto per la configurazione di pi\u00f9 stepper per asse (ad es. doppia Z) Supporto per pin di output digitali e pwm personalizzati (con un nuovo comando SET_PIN) Supporto iniziale per una \"sdcard virtuale\" che consente di stampare direttamente da Klipper (aiuta su macchine troppo lente per eseguire bene OctoPrint) Supporto per impostare diverse lunghezze del braccio su ciascuna torre di una delta Supporto per i comandi G-Code M220/M221 (override del fattore di velocit\u00e0/override del fattore di estrusione) Diversi aggiornamenti della documentazione: Molti nuovi file di configurazione di esempio per le stampanti standard comuni Nuovo esempio di configurazione di MCU multipli Nuovo esempio di configurazione del sensore bltouch Nuove FAQ, controllo della configurazione e documenti G-Code Supporto iniziale per test di integrazione continui su tutti i commit di github Diverse correzioni di bug e pulizia del codice Klipper 0.5.0 \u00b6 Disponibile su 20171025. Modifiche principali in questa versione: Supporto per stampanti con pi\u00f9 estrusori. Supporto iniziale per l'esecuzione su Beaglebone PRU. Supporto iniziale per la scheda Replicape. Supporto iniziale per l'esecuzione del codice del microcontrollore in un processo Linux in tempo reale. Supporto per microcontrollori multipli. (Ad esempio, si potrebbe controllare un estrusore con un microcontrollore e il resto della stampante con un altro.) La sincronizzazione dell'orologio del software \u00e8 implementata per coordinare le azioni tra i microcontrollori. Miglioramenti delle prestazioni stepper (AVR da 20 Mhz fino a 189.000 passi al secondo). Supporto per il controllo dei servocomandi e supporto per la definizione delle ventole di raffreddamento degli ugelli. Diverse correzioni di bug e pulizia del codice Klipper 0.4.0 \u00b6 Disponibile su 20170503. Modifiche principali in questa versione: Installazione migliorata su macchine Raspberry Pi. La maggior parte dell'installazione \u00e8 ora basata su script. Supporto per la cinematica corexy Aggiornamenti della documentazione: nuovo documento Cinematica, nuova guida all'ottimizzazione di Pressure Advance, nuovi file di configurazione di esempio e altro ancora Miglioramenti delle prestazioni dello stepper (AVR da 20 Mhz su 175.000 passi al secondo, Arduino Due oltre 460.000) Supporto per il ripristino automatico del microcontrollore. Supporto per il ripristino tramite l'attivazione dell'alimentazione USB su Raspberry Pi. L'algoritmo di avanzamento della pressione ora funziona con il look-ahead per ridurre le variazioni di pressione in curva. Supporto per limitare la velocit\u00e0 massima di brevi movimenti a zigzag Supporto per sensori AD595 Diverse correzioni di bug e pulizia del codice Klipper 0.3.0 \u00b6 Disponibile su 20161223. Modifiche principali in questa versione: Documentazione migliorata Supporto per robot con cinematica delta Supporto per microcontrollore Arduino Due (ARM cortex-M3) Supporto USB per microcontrollori basati su AVR Supporto per l'algoritmo di \"pressure advance\": riduce la trasudazione durante le stampe. Nuova funzione \"stopper phased based\" - consente una maggiore precisione sull'homing. Supporto per comandi \"extended g-code\" come \"help\", \"restart\" e \"status\". Supporto per ricaricare la configurazione di Klipper e riavviare il software host emettendo un comando di \"restart\" dal terminale. Miglioramenti delle prestazioni stepper (AVR da 20 Mhz fino a 158.000 passi al secondo). Segnalazione errori migliorata. La maggior parte degli errori ora viene mostrata tramite il terminale insieme all'aiuto su come risolverli. Diverse correzioni di bug e pulizia del codice Klipper 0.2.0 \u00b6 Rilascio iniziale di Klipper. Disponibile su 20160525. Le principali funzionalit\u00e0 disponibili nella versione iniziale includono: Supporto di base per stampanti cartesiane (stepper, estrusore, piatto riscaldato, ventola di raffreddamento). Supporto per i comandi g-code comuni. Supporto per interfacciarsi con OctoPrint. Accelerazione e gestione lookahead Supporto per microcontrollori AVR tramite porte seriali standard","title":"Versioni"},{"location":"Releases.html#versioni","text":"Storico delle versioni di Klipper. Vedi installation per informazioni sull'installazione di Klipper.","title":"Versioni"},{"location":"Releases.html#klipper-0100","text":"Disponibile su 20210929. Principali modifiche in questa versione: Supporto per \"Homing multi-MCU\". \u00c8 ora possibile collegare un motore passo-passo e il relativo fine corsa a microcontrollori separati. Ci\u00f2 semplifica il cablaggio delle sonde Z sulle \"schede portautensili\". Klipper ora ha un Community Discord Server e un Community Discourse Server . Il sito Web di Klipper ora utilizza l'infrastruttura \"mkdocs\". Esiste anche un progetto Klipper Translations . Supporto automatizzato per il flashing del firmware tramite sdcard su molte schede. Nuovo supporto cinematico per le stampanti \"Hybrid CoreXY\" e \"Hybrid CoreXZ\". Klipper ora usa rotation_distance per configurare le distanze di viaggio del motore passo-passo. Il codice host principale di Klipper ora pu\u00f2 comunicare direttamente con i microcontrollori utilizzando il bus CAN. Nuovo sistema di \"analisi del movimento\". Gli aggiornamenti di movimento interni di Klipper e i risultati dei sensori possono essere tracciati e registrati per l'analisi. I driver per motori passo-passo Trinamic sono ora costantemente monitorati per rilevare eventuali condizioni di errore. Supporto per il microcontrollore rp2040 (schede Raspberry Pi Pico). Il sistema \"make menuconfig\" ora utilizza kconfiglib. Molti moduli aggiuntivi aggiunti: ds18b20, duplicate_pin_override, filament_motion_sensor, palette2, motion_report, pca9533, pulse_counter, save_variables, sdcard_loop, temperature_host, temperature_mcu Correzione di diversi bug e pulizia del codice.","title":"Klipper 0.10.0"},{"location":"Releases.html#klipper-090","text":"Disponibile su 20201020. Modifiche principali in questa versione: Supporto per \"Input Shaping\" - un meccanismo per contrastare la risonanza della stampante. Pu\u00f2 ridurre o eliminare il \"ringing\" nelle stampe. Nuovo sistema \"Smooth Pressure Advance\". Questo implementa \"Pressure Advance\" senza introdurre variazioni di velocit\u00e0 istantanee. Ora \u00e8 anche possibile regolare l'anticipo della pressione utilizzando un metodo \"Tuning Tower\". Nuovo server API \"webhook\". Ci\u00f2 fornisce un'interfaccia JSON programmabile a Klipper. Il display LCD e il menu sono ora configurabili utilizzando la lingua del modello Jinja2. I driver per motori passo-passo TMC2208 possono ora essere utilizzati in modalit\u00e0 \"standalone\" con Klipper. Supporto BL-Touch v3 migliorato. Identificazione USB migliorata. Klipper ora ha il proprio codice di identificazione USB e i microcontrollori possono ora riportare i loro numeri di serie univoci durante l'identificazione USB. Nuovo supporto cinematico per stampanti \"Rotary Delta\" e \"CoreXZ\". Miglioramenti del microcontrollore: supporto per stm32f070, supporto per stm32f207, supporto per pin GPIO su \"Linux MCU\", supporto per \"bootloader HID\" stm32, supporto per bootloader Chitu, supporto per bootloader MKS Robin. Gestione migliorata degli eventi di \"garbage collection\" di Python. Molti moduli aggiuntivi aggiunti: adc_scaled, adxl345, bme280, display_status, extruder_stepper, fan_generic, hall_filament_width_sensor, htu21d, homing_heaters, input_shaper, lm75, print_stats, resonance_tester, shaper_calibrate, query_adc, graph_accelerometer, graph_extruder, graph_motion, graph_shaper, graph_temp_sensor, whconsole Correzione di diversi bug e pulizia del codice.","title":"Klipper 0.9.0"},{"location":"Releases.html#klipper-091","text":"Disponibile su 20201028. Versione contenente solo correzioni di bug.","title":"Klipper 0.9.1"},{"location":"Releases.html#klipper-080","text":"Disponibile su 20191021. Modifiche principali in questa versione: Nuovo supporto per il modello dei comandi G-Code. Il G-Code nel file di configurazione viene ora valutato con il linguaggio dei template Jinja2. Miglioramenti ai driver per stepper Trinamic: Nuovo supporto per i driver TMC2209 e TMC5160. Migliorati i comandi G-Code DUMP_TMC, SET_TMC_CURRENT e INIT_TMC. Supporto migliorato per la gestione di TMC UART con un mux analogico. Supporto migliorato per homing, sonda e livellamento del piatto: Aggiunti nuovi moduli manual_probe, bed_screws, Screws_tilt_adjust, skew_correction, safe_z_home. Sondaggio multi-campione migliorato con logica mediana, media e tentativi. Documentazione migliorata per BL-Touch, calibrazione della sonda, calibrazione endstop, calibrazione delta, homing sensorless e calibrazione della fase finecorsa. Supporto della corsa di riferimento migliorato su un asse Z grande. Molti miglioramenti del microcontrollore Klipper: Klipper portato su: SAM3X8C, SAM4S8C, SAMD51, STM32F042, STM32F4 Nuove implementazioni del driver CDC USB su SAM3X, SAM4, STM32F4. Supporto avanzato per il flashing di Klipper su USB. Supporto SPI software. Filtraggio della temperatura notevolmente migliorato sull'LPC176x. Le impostazioni dei pin di uscita possono essere configurate nel microcontrollore. Nuovo sito web con la documentazione di Klipper: http://klipper3d.org/ Klipper ora ha un logo. Supporto sperimentale alla cinematica polare e \"cable winch\". Il file di configurazione ora pu\u00f2 includere altri file di configurazione. Molti moduli aggiuntivi aggiunti: board_pins, controller_fan, delay_gcode, dotstar, filament_switch_sensor, firmware_retraction, gcode_arcs, gcode_button, heater_generic, manual_stepper, mcp4018, mcp4728, neopixel, pause_resume, respond, temperature_sensor tsl1401cl_filament_width_sensor, tuning_tower Molti comandi aggiuntivi aggiunti: RESTORE_GCODE_STATE, SAVE_GCODE_STATE, SET_GCODE_VARIABLE, SET_HEATER_TEMPERATURE, SET_IDLE_TIMEOUT, SET_TEMPERATURE_FAN_TARGET Correzione di diversi bug e pulizia del codice.","title":"Klipper 0.8.0"},{"location":"Releases.html#klipper-070","text":"Disponibile su 20181220. Modifiche principali in questa versione: Klipper ora supporta il livellamento del piatto \"mesh\" Nuovo supporto per la calibrazione delta \"potenziata\" (calibra le dimensioni x/y di stampa su stampanti delta) Supporto per la configurazione a runtime dei driver per motori passo-passo Trinamic (tmc2130, tmc2208, tmc2660) Migliorato il supporto del sensore di temperatura: MAX6675, MAX31855, MAX31856, MAX31865, termistori personalizzati, sensori stile pt100 comuni Diversi nuovi moduli: temperature_fan, sx1509, force_move, mcp4451, z_tilt, quad_gantry_level, endstop_phase, bltouch Aggiunti diversi nuovi comandi: SAVE_CONFIG, SET_PRESSURE_ADVANCE, SET_GCODE_OFFSET, SET_VELOCITY_LIMIT, STEPPER_BUZZ, TURN_OFF_HEATERS, M204, macro g-code personalizzate Supporto display LCD esteso: Supporto per i menu a runtime Nuove icone di visualizzazione Supporto per i display \"uc1701\" e \"ssd1306\" Supporto per microcontrollore aggiuntivo: Klipper portato su: LPC176x (Smoothieboards), SAM4E8E (Duet2), SAMD21 (Arduino Zero), STM32F103 (dispositivi \"blue pill\"), atmega32u4 Nuovo driver USB CDC generico implementato su AVR, LPC176x, SAMD21 e STM32F103 Miglioramenti delle prestazioni sui processori ARM Il codice della cinematica \u00e8 stato riscritto per utilizzare un \"risolutore iterativo\" Nuovi test case automatici per il software host Klipper Molti nuovi file di configurazione di esempio per le stampanti standard comuni Aggiornamenti della documentazione per bootloader, benchmarking, porting del microcontroller, controlli di configurazione, mappatura dei pin, impostazioni dello slicer, packaging e altro ancora Diverse correzioni di bug e pulizia del codice","title":"Klipper 0.7.0"},{"location":"Releases.html#klipper-060","text":"Disponibile su 20180331. Modifiche principali in questa versione: Controlli avanzati dei guasti hardware del riscaldatore e del termistore Supporto per sonde Z Supporto iniziale per la calibrazione automatica dei parametri sulle delta (tramite un nuovo comando delta_calibrate) Supporto iniziale per la compensazione dell'inclinazione del piatto (tramite il comando bed_tilt_calibrate) Supporto iniziale per \"homing sicuro\" e di homing overrides Supporto iniziale per la visualizzazione dello stato sui display RepRapDiscount stile 2004 e 12864 Nuovi miglioramenti multi-estrusore: Supporto per riscaldatori condivisi Supporto iniziale per carrelli doppi Supporto per la configurazione di pi\u00f9 stepper per asse (ad es. doppia Z) Supporto per pin di output digitali e pwm personalizzati (con un nuovo comando SET_PIN) Supporto iniziale per una \"sdcard virtuale\" che consente di stampare direttamente da Klipper (aiuta su macchine troppo lente per eseguire bene OctoPrint) Supporto per impostare diverse lunghezze del braccio su ciascuna torre di una delta Supporto per i comandi G-Code M220/M221 (override del fattore di velocit\u00e0/override del fattore di estrusione) Diversi aggiornamenti della documentazione: Molti nuovi file di configurazione di esempio per le stampanti standard comuni Nuovo esempio di configurazione di MCU multipli Nuovo esempio di configurazione del sensore bltouch Nuove FAQ, controllo della configurazione e documenti G-Code Supporto iniziale per test di integrazione continui su tutti i commit di github Diverse correzioni di bug e pulizia del codice","title":"Klipper 0.6.0"},{"location":"Releases.html#klipper-050","text":"Disponibile su 20171025. Modifiche principali in questa versione: Supporto per stampanti con pi\u00f9 estrusori. Supporto iniziale per l'esecuzione su Beaglebone PRU. Supporto iniziale per la scheda Replicape. Supporto iniziale per l'esecuzione del codice del microcontrollore in un processo Linux in tempo reale. Supporto per microcontrollori multipli. (Ad esempio, si potrebbe controllare un estrusore con un microcontrollore e il resto della stampante con un altro.) La sincronizzazione dell'orologio del software \u00e8 implementata per coordinare le azioni tra i microcontrollori. Miglioramenti delle prestazioni stepper (AVR da 20 Mhz fino a 189.000 passi al secondo). Supporto per il controllo dei servocomandi e supporto per la definizione delle ventole di raffreddamento degli ugelli. Diverse correzioni di bug e pulizia del codice","title":"Klipper 0.5.0"},{"location":"Releases.html#klipper-040","text":"Disponibile su 20170503. Modifiche principali in questa versione: Installazione migliorata su macchine Raspberry Pi. La maggior parte dell'installazione \u00e8 ora basata su script. Supporto per la cinematica corexy Aggiornamenti della documentazione: nuovo documento Cinematica, nuova guida all'ottimizzazione di Pressure Advance, nuovi file di configurazione di esempio e altro ancora Miglioramenti delle prestazioni dello stepper (AVR da 20 Mhz su 175.000 passi al secondo, Arduino Due oltre 460.000) Supporto per il ripristino automatico del microcontrollore. Supporto per il ripristino tramite l'attivazione dell'alimentazione USB su Raspberry Pi. L'algoritmo di avanzamento della pressione ora funziona con il look-ahead per ridurre le variazioni di pressione in curva. Supporto per limitare la velocit\u00e0 massima di brevi movimenti a zigzag Supporto per sensori AD595 Diverse correzioni di bug e pulizia del codice","title":"Klipper 0.4.0"},{"location":"Releases.html#klipper-030","text":"Disponibile su 20161223. Modifiche principali in questa versione: Documentazione migliorata Supporto per robot con cinematica delta Supporto per microcontrollore Arduino Due (ARM cortex-M3) Supporto USB per microcontrollori basati su AVR Supporto per l'algoritmo di \"pressure advance\": riduce la trasudazione durante le stampe. Nuova funzione \"stopper phased based\" - consente una maggiore precisione sull'homing. Supporto per comandi \"extended g-code\" come \"help\", \"restart\" e \"status\". Supporto per ricaricare la configurazione di Klipper e riavviare il software host emettendo un comando di \"restart\" dal terminale. Miglioramenti delle prestazioni stepper (AVR da 20 Mhz fino a 158.000 passi al secondo). Segnalazione errori migliorata. La maggior parte degli errori ora viene mostrata tramite il terminale insieme all'aiuto su come risolverli. Diverse correzioni di bug e pulizia del codice","title":"Klipper 0.3.0"},{"location":"Releases.html#klipper-020","text":"Rilascio iniziale di Klipper. Disponibile su 20160525. Le principali funzionalit\u00e0 disponibili nella versione iniziale includono: Supporto di base per stampanti cartesiane (stepper, estrusore, piatto riscaldato, ventola di raffreddamento). Supporto per i comandi g-code comuni. Supporto per interfacciarsi con OctoPrint. Accelerazione e gestione lookahead Supporto per microcontrollori AVR tramite porte seriali standard","title":"Klipper 0.2.0"},{"location":"Resonance_Compensation.html","text":"Compensazione della risonanza \u00b6 Klipper supporta Input Shaping, una tecnica che pu\u00f2 essere utilizzata per ridurre il ringing (noti anche come echoing, ghosting o increspature) nelle stampe. Il ringing \u00e8 un difetto di stampa della superficie quando, in genere, elementi come i bordi si ripetono su una superficie stampata come un sottile \"eco\": | | | I ringing sono causati da vibrazioni meccaniche nella stampante dovute a rapidi cambiamenti della direzione di stampa. Si noti che il ringing di solito ha origini meccaniche: telaio della stampante non sufficientemente rigido, cinghie non tese o troppo elastiche, problemi di allineamento delle parti meccaniche, massa in movimento pesante, ecc. Questi dovrebbero essere prima controllati e riparati, se possibile. Input shaping \u00e8 una tecnica di controllo ad anello aperto che crea un segnale di comando che annulla le proprie vibrazioni. La modellatura dell'ingresso richiede alcune regolazioni e misurazioni prima di poter essere abilitata. Oltre al ringing, Input Shaping riduce in genere le vibrazioni e le vibrazioni della stampante in generale e pu\u00f2 anche migliorare l'affidabilit\u00e0 della modalit\u00e0 StealthChop dei driver stepper Trinamic. Messa a punto \u00b6 La regolazione di base richiede la misurazione delle frequenze di ringing della stampante stampando un modello di prova. Carica il modello di prova per il ringing, che pu\u00f2 essere trovato in docs/prints/ringing_tower.stl , nello slicer: L'altezza dello strato (layer) consigliata \u00e8 0,2 o 0,25 mm. I livelli di riempimento e superiori possono essere impostati su 0. Usa 1-2 perimetri, o meglio ancora la modalit\u00e0 vaso liscio con base da 1-2 mm. Utilizzare velocit\u00e0 sufficientemente elevate, circa 80-100 mm/sec, per i perimetri esterni . Assicurati che il tempo minimo per lo strato sia al massimo 3 secondi. Assicurati che qualsiasi \"controllo dinamico dell'accelerazione\" sia disabilitato nello slicer. Non girare il modello. Il modello ha segni X e Y sul retro del modello. Nota la posizione insolita dei segni rispetto agli assi della stampante: non \u00e8 un errore. I contrassegni possono essere utilizzati successivamente nel processo di ottimizzazione come riferimento, poich\u00e9 mostrano a quale asse corrispondono le misurazioni. Frequenza di ringing \u00b6 Innanzitutto, misura la frequenza di ringing . Se il parametro square_corner_velocity \u00e8 stato modificato, ripristinalo a 5.0 . Non \u00e8 consigliabile aumentarlo quando si utilizza l'input shaper perch\u00e9 pu\u00f2 causare un maggiore smussamento smoothing delle parti: \u00e8 invece meglio utilizzare un valore di accelerazione pi\u00f9 elevato. Aumenta max_accel_to_decel inserendo il seguente comando: SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 Disabilita la Pressure Advance: SET_PRESSURE_ADVANCE ADVANCE=0 Se hai gi\u00e0 aggiunto la sezione [input_shaper] a printer.cfg, esegui il comando SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0 . Se ricevi l'errore \"Comando sconosciuto- Unknown command\", puoi tranquillamente ignorarlo a questo punto e continuare con le misurazioni. Eseguire il comando: TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Fondamentalmente, cerchiamo di rendere pi\u00f9 pronunciato il ringing impostando diversi valori elevati per l'accelerazione. Questo comando aumenter\u00e0 l'accelerazione ogni 5 mm a partire da 1500 mm/sec^2: 1500 mm/sec^2, 2000 mm/sec^2, 2500 mm/sec^2 e cos\u00ec via fino a 7000 mm/sec^2 per l'ultima fascia. Stampa il modello di test sliced con i parametri suggeriti. Puoi interrompere la stampa prima se il ringing \u00e8 chiaramente visibile e vedi che l'accelerazione diventa troppo alta per la tua stampante (ad es. la stampante trema troppo o inizia a saltare i passaggi). Utilizzare i segni X e Y sul retro del modello come riferimento. Le misurazioni dal lato con il contrassegno X devono essere utilizzate per la configurazione dell'asse X e il contrassegno Y - per la configurazione dell'asse Y. Misurare la distanza D (in mm) tra pi\u00f9 oscillazioni sulla parte con il segno X, in prossimit\u00e0 delle tacche, preferibilmente saltando la prima o due oscillazioni. Per misurare pi\u00f9 facilmente la distanza tra le oscillazioni, contrassegnare prima le oscillazioni, quindi misurare la distanza tra i segni con un righello o un calibro:| | | Contare a quante oscillazioni N corrisponde la distanza misurata D . Se non sei sicuro di come contare le oscillazioni, fai riferimento all'immagine sopra, che mostra N = 6 oscillazioni. Calcola la frequenza di squillo dell'asse X come V \u00b7 N / D (Hz), dove V \u00e8 la velocit\u00e0 per i perimetri esterni (mm/sec). Per l'esempio sopra, abbiamo contrassegnato 6 oscillazioni e il test \u00e8 stato stampato a una velocit\u00e0 di 100 mm/sec, quindi la frequenza \u00e8 100 * 6 / 12,14 \u2248 49,4 Hz. Esegui (8) - (10) anche per il segno Y. Si noti che il ringing sulla stampa di prova dovrebbe seguire lo schema delle tacche curve, come nell'immagine sopra. In caso contrario, questo difetto non \u00e8 in realt\u00e0 un ringing e ha un'origine diversa: un problema meccanico o dell'estrusore. Dovrebbe essere risolto prima di abilitare e regolare gli shaper di input. Se le misurazioni non sono affidabili perch\u00e9, ad esempio, la distanza tra le oscillazioni non \u00e8 stabile, potrebbe significare che la stampante ha pi\u00f9 frequenze di risonanza sullo stesso asse. Si pu\u00f2 invece provare a seguire il processo di sintonizzazione descritto nella sezione Misurazioni inaffidabili delle frequenze di ringing e ottenere comunque qualcosa dalla tecnica di input shaping . La frequenza dei ringing pu\u00f2 dipendere dalla posizione del modello all'interno della piastra di stampa e dall'altezza Z, soprattutto sulle stampanti delta ; puoi controllare se vedi le differenze di frequenza in diverse posizioni lungo i lati del modello di prova e ad altezze diverse. \u00c8 possibile calcolare le frequenze di squillo medie sugli assi X e Y, se questo \u00e8 il caso. Se la frequenza di ringing misurata \u00e8 molto bassa (inferiore a circa 20-25 Hz), potrebbe essere una buona idea investire nell'irrigidire la stampante o nel diminuire la massa mobile, a seconda di ci\u00f2 che \u00e8 applicabile nel tuo caso, prima di procedere con l'ulteriore input shaping e rimisurare le frequenze in seguito. Per molti modelli di stampanti popolari spesso sono gi\u00e0 disponibili alcune soluzioni. Si noti che le frequenze di ringing possono cambiare se alla stampante vengono apportate modifiche che influiscono sulla massa in movimento o modificano la rigidit\u00e0 del sistema, ad esempio: Alcuni strumenti vengono installati, rimossi o sostituiti sulla testa di stampa che ne modificano la massa, ad es. viene installato un nuovo motore passo-passo (pi\u00f9 pesante o pi\u00f9 leggero) per estrusore diretto o viene installato un nuovo hotend, viene aggiunta una ventola pesante con un condotto, ecc. Le cinghie sono tese. Sono installati alcuni componenti aggiuntivi per aumentare la rigidit\u00e0 del telaio. Un piatto diverso \u00e8 installato su una stampante a piatto mobile o aggiunto un vetro, ecc. Se vengono apportate tali modifiche, \u00e8 una buona idea misurare almeno le frequenze di ringing per vedere se sono cambiate. Configurazione del Input shaper \u00b6 Dopo aver misurato le frequenze di ringing per gli assi X e Y, puoi aggiungere la seguente sezione al tuo printer.cfg : [input_shaper] shaper_freq_x: ... # frequenza per il segno X del modello di prova shaper_freq_y: ... # frequenza per il segno Y del modello di prova Per l'esempio sopra, otteniamo shaper_freq_x/y = 49.4. Scelta del input shaper \u00b6 Klipper supporta diversi input shaper. Si differenziano per la loro sensibilit\u00e0 agli errori che determinano la frequenza di risonanza e quanto smussamento provocano nelle parti stampate. Inoltre, alcuni degli shaper come 2HUMP_EI e 3HUMP_EI di solito non dovrebbero essere usati con shaper_freq = frequenza di risonanza: sono configurati in base a diverse considerazioni per ridurre diverse risonanze contemporaneamente. Per la maggior parte delle stampanti, possono essere consigliati shaper MZV o EI. Questa sezione descrive un processo di test per scegliere tra di loro e capire alcuni altri parametri correlati. Stampare il modello di prova di ringing come segue: Riavviare il firmware: RESTART Prepararsi per il test: SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 Disabilita la Pressure Advance: SET_PRESSURE_ADVANCE ADVANCE=0 Eseguire: SET_INPUT_SHAPER SHAPER_TYPE=MZV Eseguire il comando: TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Stampa il modello di test sliced con i parametri suggeriti. Se a questo punto non si vede alcun ringing, \u00e8 possibile consigliare l'uso dello shaper MZV. Se vedi dei ringing, rimisura le frequenze usando i passaggi (8)-(10) descritti nella sezione Frequenza ringing . Se le frequenze differiscono in modo significativo dai valori ottenuti in precedenza, \u00e8 necessaria una configurazione dello shaper di input pi\u00f9 complessa. Puoi fare riferimento ai dettagli tecnici della sezione Input shapers . In caso contrario, procedere al passaggio successivo. Ora prova l'input shaper EI. Per provarlo, ripeti i passaggi (1)-(6) da sopra, ma eseguendo invece al passaggio 4 il seguente comando : SET_INPUT_SHAPER SHAPER_TYPE=EI . Confronta due stampe con input shaper MZV e EI. Se EI mostra risultati notevolmente migliori rispetto a MZV, utilizzare EI shaper, altrimenti preferire MZV. Si noti che lo shaper EI causer\u00e0 una maggiore levigatura 'smoothing' nelle parti stampate (vedere la sezione successiva per ulteriori dettagli). Aggiungi il parametro shaper_type: mzv (o ei) alla sezione [input_shaper], ad esempio: [input_shaper] shaper_freq_x: ... shaper_freq_y: ... shaper_type: mzv Alcune note sulla scelta dello shaper: Lo shaper EI pu\u00f2 essere pi\u00f9 adatto per le stampanti a piatto mobile (se la frequenza di risonanza e il conseguente livellamento lo consentono): man mano che si deposita pi\u00f9 filamento sul piatto mobile, la massa del piatto aumenta e la frequenza di risonanza diminuisce. Poich\u00e9 lo shaper EI \u00e8 pi\u00f9 robusto alle variazioni della frequenza di risonanza, potrebbe funzionare meglio quando si stampano parti di grandi dimensioni. A causa della natura della cinematica delta, le frequenze di risonanza possono differire molto in diverse parti del volume di costruzione. Pertanto, lo shaper EI pu\u00f2 adattarsi meglio alle stampanti delta piuttosto che a MZV o ZV e dovrebbe essere considerato per l'uso. Se la frequenza di risonanza \u00e8 sufficientemente grande (pi\u00f9 di 50-60 Hz), si pu\u00f2 anche provare a testare lo shaper 2HUMP_EI (eseguendo il test suggerito sopra con SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI ), ma controllare le considerazioni nella sezione sotto prima di abilitarlo. Seleziona max_accel \u00b6 Dovresti avere un test stampato per lo shaper che hai scelto dal passaggio precedente (se non lo fai, stampa il modello di test affettato con i parametri suggeriti con l'anticipo di pressione disabilitato SET_PRESSURE_ADVANCE ADVANCE=0 e con la torre di regolazione abilitata come TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 ). Si noti che ad accelerazioni molto elevate, a seconda della frequenza di risonanza e dell'input shaper scelto (ad es. EI shaper crea pi\u00f9 smussamento di MZV), l'input shaping pu\u00f2 causare un'eccessiva levigatura -smoothing- e arrotondamento delle parti. Quindi, max_accel dovrebbe essere scelto in modo tale da impedirlo. Un altro parametro che pu\u00f2 influire sul livellamento \u00e8 square_corner_velocity , quindi non \u00e8 consigliabile aumentarlo al di sopra del valore predefinito di 5 mm/sec per evitare un aumento del livellamento smooting. Per selezionare un valore max_accel adatto, ispezionare il modello per lo shaper di input scelto. Per prima cosa, prendi nota a quale accelerazione il ringing \u00e8 ancora piccolo - che ti vada bene. Quindi, controlla la levigatura - smoothing. Per aiutare in questo, il modello di prova ha un piccolo spazio nel muro (0,15 mm): All'aumentare dell'accelerazione, aumenta anche la levigatura-smoothing e lo spazio effettivo nella stampa si allarga: In questa immagine, l'accelerazione aumenta da sinistra a destra e il gap inizia a crescere a partire da 3500 mm/sec^2 (quinta banda da sinistra). Quindi il buon valore per max_accel = 3000 (mm/sec^2) in questo caso per evitare l'eccessivo smoothing. Nota l'accelerazione quando lo spazio \u00e8 ancora molto piccolo nella stampa di prova. Se vedi rigonfiamenti, ma nessun vuoto nel muro, anche ad alte accelerazioni, potrebbe essere dovuto all'avanzamento della pressione disabilitato, specialmente sugli estrusori Bowden. In tal caso, potrebbe essere necessario ripetere la stampa con il PA abilitato. Potrebbe anche essere il risultato di un flusso di filamento non calibrato (troppo alto), quindi \u00e8 una buona idea controllare anche quello. Scegli il minimo tra i due valori di accelerazione (da ringing e smoothing) e inseriscilo come max_accel in printer.cfg. Come nota, pu\u00f2 succedere, specialmente a basse frequenze di ringing, che lo shaper EI provochi un'eccessiva attenuazione anche a basse accelerazioni. In questo caso, MZV potrebbe essere una scelta migliore, perch\u00e9 potrebbe consentire valori di accelerazione pi\u00f9 elevati. A frequenze di ringing molto basse (~25 Hz e inferiori) anche lo shaper MZV pu\u00f2 creare un effetto smussato eccessivo. In tal caso, puoi anche provare a ripetere i passaggi nella sezione Scegliere input shaper con shaper ZV, usando invece il comando SET_INPUT_SHAPER SHAPER_TYPE=ZV . Lo shaper ZV dovrebbe mostrare un livellamento ancora inferiore rispetto a MZV, ma \u00e8 pi\u00f9 sensibile agli errori nella misurazione delle frequenze di ringing. Un'altra considerazione \u00e8 che se una frequenza di risonanza \u00e8 troppo bassa (inferiore a 20-25 Hz), potrebbe essere una buona idea aumentare la rigidit\u00e0 della stampante o ridurre la massa in movimento. In caso contrario, l'accelerazione e la velocit\u00e0 di stampa potrebbero essere limitate a causa di un'eccessivo smoothing invece del ringing. Regolazione fine delle frequenze di risonanza \u00b6 Si noti che la precisione delle misurazioni delle frequenze di risonanza utilizzando il modello di test di ringing \u00e8 sufficiente per la maggior parte degli scopi, quindi si sconsiglia un'ulteriore messa a punto. Se vuoi ancora provare a ricontrollare i tuoi risultati (ad esempio se vedi ancora del ringing dopo aver stampato un modello di prova con un input shaper a tua scelta con le stesse frequenze che hai misurato in precedenza), puoi seguire i passaggi in questo sezione. Nota che se vedi ringing a frequenze diverse dopo aver abilitato [input_shaper], questa sezione non ti aiuter\u00e0. Supponendo di aver suddiviso il modello di ringing con i parametri suggeriti, completare i seguenti passaggi per ciascuno degli assi X e Y: Prepararsi per il test: SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 Assicurati che Pressure Advance sia disabilitato: SET_PRESSURE_ADVANCE ADVANCE=0 Eseguire: SET_INPUT_SHAPER SHAPER_TYPE=ZV Dal modello di prova di ringing esistente con lo shaper di input scelto, seleziona l'accelerazione che mostra sufficientemente bene il ringing e impostala con: SET_VELOCITY_LIMIT ACCEL=... Calcola i parametri necessari per il comando TUNING_TOWER per ottimizzare il parametro shaper_freq_x come segue: start = shaper_freq_x * 83 / 132 e factor = shaper_freq_x / 66, dove qui shaper_freq_x \u00e8 il valore corrente in printer.cfg . Eseguire il comando: TUNING_TOWER COMMAND=SET_INPUT_SHAPER PARAMETER=SHAPER_FREQ_X START=start FACTOR=factor BAND=5 usando i valori start e factor calcolati al punto (5). Stampa il modello di prova. Reimposta il valore della frequenza originale: SET_INPUT_SHAPER SHAPER_FREQ_X=... . Trova la fascia che mostra meno ringing e conta il suo numero dal basso partendo da 1. Calcola il nuovo valore shaper_freq_x tramite il vecchio shaper_freq_x * (39 + 5 * #band-number) / 66. Ripetere questi passaggi per l'asse Y allo stesso modo, sostituendo i riferimenti all'asse X con l'asse Y (ad es. sostituire shaper_freq_x con shaper_freq_y nelle formule e nel comando TUNING_TOWER ). Ad esempio, supponiamo di aver misurato la frequenza di ringing per uno degli assi pari a 45 Hz. Questo d\u00e0 start = 45 * 83 / 132 = 28,30 e factor = 45 / 66 = 0,6818 valori per il comando TUNING_TOWER . Supponiamo ora che dopo aver stampato il modello di prova, la quarta fascia dal basso dia il minimo squillo. Questo d\u00e0 lo shaper_freq_^ aggiornato al valore pari a 45 * (39 + 5 * 4) / 66 \u2248 40,23. Dopo aver calcolato entrambi i nuovi parametri shaper_freq_x e shaper_freq_y , puoi aggiornare la sezione [input_shaper] in printer.cfg con i nuovi valori shaper_freq_x e shaper_freq_y . Pressure Advance \u00b6 Se si utilizza Pressure Advance, potrebbe essere necessario risintonizzarlo. Seguire le istruzioni per trovare il nuovo valore, se diverso dal precedente. Assicurati di riavviare Klipper prima di regolare Pressure Advance. Misurazioni inaffidabili delle frequenze di ringing \u00b6 Se non \u00e8 possibile misurare le frequenze di ringing, ad es. se la distanza tra le oscillazioni non \u00e8 stabile, potresti comunque essere in grado di sfruttare le tecniche di input shaping, ma i risultati potrebbero non essere buoni come con misurazioni corrette delle frequenze e richieder\u00e0 un po' pi\u00f9 di messa a punto e stampa del test modello. Si noti che un'altra possibilit\u00e0 \u00e8 acquistare e installare un accelerometro e misurare le risonanze con esso (fare riferimento a docs che descrive l'hardware richiesto e il processo di installazione), ma questa opzione richiede un po' di crimpatura e saldatura. Per l'ottimizzazione, aggiungi la sezione [input_shaper] vuota al tuo printer.cfg . Quindi, supponendo di aver fattolo slicing il modello di ringing con i parametri suggeriti, stampare il modello di prova 3 volte come segue. La prima volta, prima della stampa, eseguire RESTART SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 SET_PRESSURE_ADVANCE ADVANCE=0 SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=60 SHAPER_FREQ_Y=60 TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 e stampa il modello. Quindi stampare di nuovo il modello, ma prima di eseguire la stampa invece SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=50 SHAPER_FREQ_Y=50 TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Quindi stampa il modello per la terza volta, ma ora esegui SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=40 SHAPER_FREQ_Y=40 TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 In sostanza, stiamo stampando il modello di prova di ringing con TUNING_TOWER utilizzando lo shaper 2HUMP_EI con shaper_freq = 60 Hz, 50 Hz e 40 Hz. Se nessuno dei modelli mostra miglioramenti nel ringing, allora, sfortunatamente non sembra che le tecniche di modellazione dell'input possano aiutare con il tuo caso. Altrimenti, \u00e8 possibile che tutti i modelli non mostrino ringing, o alcuni mostrino ringing e altri non cos\u00ec tanto. Scegli il modello di test con la frequenza pi\u00f9 alta che mostra comunque buoni miglioramenti nel ringing. Ad esempio, se i modelli a 40 Hz e 50 Hz non mostrano quasi nessuno ringing e il modello a 60 Hz mostra gi\u00e0 un po' pi\u00f9 di ringing, attenersi a 50 Hz. Ora controlla se lo shaper EI sarebbe abbastanza buono nel tuo caso. Scegli la frequenza dello shaper EI in base alla frequenza dello shaper 2HUMP_EI che hai scelto: Per lo shaper 2HUMP_EI 60 Hz, utilizzare lo shaper EI con shaper_freq = 50 Hz. Per lo shaper 2HUMP_EI 50 Hz, utilizzare lo shaper EI con shaper_freq = 40 Hz. Per lo shaper 2HUMP_EI 40 Hz, utilizzare lo shaper EI con shaper_freq = 33 Hz. Ora stampa il modello di prova ancora una volta, eseguendola SET_INPUT_SHAPER SHAPER_TYPE=EI SHAPER_FREQ_X=... SHAPER_FREQ_Y=... TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 fornendo shaper_freq_x=... e shaper_freq_y=... come determinato in precedenza. Se lo shaper EI mostra buoni risultati comparabili con lo shaper 2HUMP_EI, attenersi con lo shaper EI e la frequenza determinata in precedenza, altrimenti utilizzare lo shaper 2HUMP_EI con la frequenza corrispondente. Aggiungi i risultati a printer.cfg come, ad es. [input_shaper] shaper_freq_x: 50 shaper_freq_y: 50 shaper_type: 2hump_ei Continua l'ottimizzazione con la sezione Selecting max_accel . Risoluzione dei problemi e domande frequenti \u00b6 Non riesco a ottenere misurazioni affidabili delle frequenze di risonanza \u00b6 Innanzitutto, assicurati che non ci siano altri problemi con la stampante invece del ringing. Se le misurazioni non sono affidabili perch\u00e9, ad esempio, la distanza tra le oscillazioni non \u00e8 stabile, potrebbe significare che la stampante ha pi\u00f9 frequenze di risonanza sullo stesso asse. Si pu\u00f2 provare a seguire il processo di sintonizzazione descritto nella sezione Misurazioni inaffidabili delle frequenze di ringing e ottenere comunque qualcosa dalla tecnica di modellatura dell'input. Un'altra possibilit\u00e0 \u00e8 installare un accelerometro, misurare le risonanze con esso e regolare automaticamente lo shaper di input utilizzando i risultati di tali misurazioni. Dopo aver abilitato [input_shaper], ottengo parti stampate troppo levigate e i dettagli fini vengono persi \u00b6 Controllare le considerazioni nella sezione Selecting max_accel . Se la frequenza di risonanza \u00e8 bassa, non si dovrebbero impostare max_accel troppo alti o aumentare i parametri square_corner_velocity. Potrebbe anche essere meglio scegliere gli shaper di input MZV o anche ZV su EI (o gli shaper 2HUMP_EI e 3HUMP_EI). Dopo aver stampato correttamente per un po' di tempo senza ringing, sembra tornare \u00b6 \u00c8 possibile che dopo qualche tempo le frequenze di risonanza siano cambiate. Per esempio. forse la tensione delle cinghie \u00e8 cambiata (le cinghie si sono allentate di pi\u00f9), ecc. \u00c8 una buona idea controllare e rimisurare le frequenze di ringing come descritto nella sezione Frequenza di ringing e aggiornare il file di configurazione se necessario . La configurazione a doppio carrello \u00e8 supportata con gli input shaper? \u00b6 Non esiste un supporto dedicato per doppi carrelli con input shaper, ma ci\u00f2 non significa che questa configurazione non funzioner\u00e0. Si dovrebbe eseguire la messa a punto due volte per ciascuno dei carrelli e calcolare le frequenze di ringing per gli assi X e Y per ciascuno dei carrelli in modo indipendente. Quindi inserisci i valori per il carrello 0 nella sezione [input_shaper] e modifica i valori al volo quando si cambiano i carrelli, ad es. come parte di alcune macro: SET_DUAL_CARRIAGE CARRIAGE=1 SET_INPUT_SHAPER SHAPER_FREQ_X=... SHAPER_FREQ_Y=... E allo stesso modo quando si torna al carrello 0. L'input_shaper influisce sul tempo di stampa? \u00b6 No, la funzione input_shaper non ha praticamente alcun impatto sui tempi di stampa da sola. Tuttavia, il valore di max_accel lo fa certamente (regolazione di questo parametro descritta in questa sezione ). Dettagli tecnici \u00b6 Input shaper \u00b6 Gli shaper di input utilizzati in Klipper sono piuttosto standard e si pu\u00f2 trovare una panoramica pi\u00f9 approfondita negli articoli che descrivono gli shaper corrispondenti. Questa sezione contiene una breve panoramica di alcuni aspetti tecnici degli input shaper supportati. La tabella seguente mostra alcuni parametri (solitamente approssimativi) di ciascun shaper. Input shaper Shaper duration Riduzione delle vibrazioni 20x (5% di tolleranza alle vibrazioni) Riduzione delle vibrazioni 10 volte (tolleranza alle vibrazioni del 10%) ZV 0.5 / shaper_freq N/A \u00b1 5% shaper_freq MZV 0.75 / shaper_freq \u00b1 4% shaper_freq -10%...+15% shaper_freq ZVD 1 / shaper_freq \u00b1 15% shaper_freq \u00b1 22% shaper_freq EI 1 / shaper_freq \u00b1 20% shaper_freq \u00b1 25% shaper_freq 2HUMP_EI 1.5 / shaper_freq \u00b1 35% shaper_freq \u00b1 40 shaper_freq 3HUMP_EI 2 / shaper_freq -45...+50% shaper_freq -50%...+55% shaper_freq Una nota sulla riduzione delle vibrazioni: i valori nella tabella sopra sono approssimativi. Se il rapporto di smorzamento della stampante \u00e8 noto per ciascun asse, lo shaper pu\u00f2 essere configurato in modo pi\u00f9 preciso e ridurr\u00e0 quindi le risonanze in una gamma di frequenze leggermente pi\u00f9 ampia. Tuttavia, il rapporto di smorzamento \u00e8 solitamente sconosciuto ed \u00e8 difficile da stimare senza un'attrezzatura speciale, quindi Klipper utilizza il valore 0,1 per impostazione predefinita, che \u00e8 un buon valore a tutto tondo. Le gamme di frequenza nella tabella coprono un numero di diversi possibili rapporti di smorzamento attorno a quel valore (da 0,05 a 0,2 circa). Si noti inoltre che EI, 2HUMP_EI e 3HUMP_EI sono sintonizzati per ridurre le vibrazioni al 5%, quindi i valori per la tolleranza alle vibrazioni del 10% sono forniti solo per riferimento. Come utilizzare questa tabella: La durata dello shaper influisce sull0 smoothing delle parti: pi\u00f9 \u00e8 grande, pi\u00f9 le parti sono lisce. Questa dipendenza non \u00e8 lineare, ma pu\u00f2 dare un'idea di quali shaper \"levigano\" di pi\u00f9 per la stessa frequenza. L'ordinamento per smoothing \u00e8 il seguente: ZV < MZV < ZVD \u2248 EI < 2HUMP_EI < 3HUMP_EI. Inoltre, raramente \u00e8 pratico impostare shaper_freq = resonance freq per gli shaper 2HUMP_EI e 3HUMP_EI (dovrebbero essere usati per ridurre le vibrazioni per diverse frequenze). Si pu\u00f2 stimare una gamma di frequenze in cui lo shaper riduce le vibrazioni. Ad esempio, MZV con shaper_freq = 35 Hz riduce le vibrazioni al 5% per le frequenze [33,6, 36,4] Hz. 3HUMP_EI con shaper_freq = 50 Hz riduce le vibrazioni al 5% nell'intervallo [27,5, 75] Hz. Si pu\u00f2 usare questa tabella per verificare quale shaper dovrebbero usare se hanno bisogno di ridurre le vibrazioni a diverse frequenze. Ad esempio, se si hanno risonanze a 35 Hz e 60 Hz sullo stesso asse: a) EI shaper deve avere shaper_freq = 35 / (1 - 0,2) = 43,75 Hz, e ridurr\u00e0 le risonanze fino a 43,75 * (1 + 0,2 ) = 52,5 Hz, quindi non \u00e8 sufficiente; b) 2HUMP_EI shaper deve avere shaper_freq = 35 / (1 - 0,35) = 53,85 Hz e ridurr\u00e0 le vibrazioni fino a 53,85 * (1 + 0,35) = 72,7 Hz - quindi questa \u00e8 una configurazione accettabile. Cerca sempre di usare shaper_freq il pi\u00f9 alto possibile per un dato shaper (magari con un certo margine di sicurezza, quindi in questo esempio shaper_freq \u2248 50-52 Hz funzionerebbe meglio), e prova a usare uno shaper con la minor durata possibile dello shaper. Se \u00e8 necessario ridurre le vibrazioni a diverse frequenze molto diverse (ad esempio, 30 Hz e 100 Hz), \u00e8 possibile che la tabella sopra non fornisca informazioni sufficienti. In questo caso si pu\u00f2 avere pi\u00f9 fortuna con lo script scripts/graph_shaper.py , che \u00e8 pi\u00f9 flessibile.","title":"Compensazione della risonanza"},{"location":"Resonance_Compensation.html#compensazione-della-risonanza","text":"Klipper supporta Input Shaping, una tecnica che pu\u00f2 essere utilizzata per ridurre il ringing (noti anche come echoing, ghosting o increspature) nelle stampe. Il ringing \u00e8 un difetto di stampa della superficie quando, in genere, elementi come i bordi si ripetono su una superficie stampata come un sottile \"eco\": | | | I ringing sono causati da vibrazioni meccaniche nella stampante dovute a rapidi cambiamenti della direzione di stampa. Si noti che il ringing di solito ha origini meccaniche: telaio della stampante non sufficientemente rigido, cinghie non tese o troppo elastiche, problemi di allineamento delle parti meccaniche, massa in movimento pesante, ecc. Questi dovrebbero essere prima controllati e riparati, se possibile. Input shaping \u00e8 una tecnica di controllo ad anello aperto che crea un segnale di comando che annulla le proprie vibrazioni. La modellatura dell'ingresso richiede alcune regolazioni e misurazioni prima di poter essere abilitata. Oltre al ringing, Input Shaping riduce in genere le vibrazioni e le vibrazioni della stampante in generale e pu\u00f2 anche migliorare l'affidabilit\u00e0 della modalit\u00e0 StealthChop dei driver stepper Trinamic.","title":"Compensazione della risonanza"},{"location":"Resonance_Compensation.html#messa-a-punto","text":"La regolazione di base richiede la misurazione delle frequenze di ringing della stampante stampando un modello di prova. Carica il modello di prova per il ringing, che pu\u00f2 essere trovato in docs/prints/ringing_tower.stl , nello slicer: L'altezza dello strato (layer) consigliata \u00e8 0,2 o 0,25 mm. I livelli di riempimento e superiori possono essere impostati su 0. Usa 1-2 perimetri, o meglio ancora la modalit\u00e0 vaso liscio con base da 1-2 mm. Utilizzare velocit\u00e0 sufficientemente elevate, circa 80-100 mm/sec, per i perimetri esterni . Assicurati che il tempo minimo per lo strato sia al massimo 3 secondi. Assicurati che qualsiasi \"controllo dinamico dell'accelerazione\" sia disabilitato nello slicer. Non girare il modello. Il modello ha segni X e Y sul retro del modello. Nota la posizione insolita dei segni rispetto agli assi della stampante: non \u00e8 un errore. I contrassegni possono essere utilizzati successivamente nel processo di ottimizzazione come riferimento, poich\u00e9 mostrano a quale asse corrispondono le misurazioni.","title":"Messa a punto"},{"location":"Resonance_Compensation.html#frequenza-di-ringing","text":"Innanzitutto, misura la frequenza di ringing . Se il parametro square_corner_velocity \u00e8 stato modificato, ripristinalo a 5.0 . Non \u00e8 consigliabile aumentarlo quando si utilizza l'input shaper perch\u00e9 pu\u00f2 causare un maggiore smussamento smoothing delle parti: \u00e8 invece meglio utilizzare un valore di accelerazione pi\u00f9 elevato. Aumenta max_accel_to_decel inserendo il seguente comando: SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 Disabilita la Pressure Advance: SET_PRESSURE_ADVANCE ADVANCE=0 Se hai gi\u00e0 aggiunto la sezione [input_shaper] a printer.cfg, esegui il comando SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0 . Se ricevi l'errore \"Comando sconosciuto- Unknown command\", puoi tranquillamente ignorarlo a questo punto e continuare con le misurazioni. Eseguire il comando: TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Fondamentalmente, cerchiamo di rendere pi\u00f9 pronunciato il ringing impostando diversi valori elevati per l'accelerazione. Questo comando aumenter\u00e0 l'accelerazione ogni 5 mm a partire da 1500 mm/sec^2: 1500 mm/sec^2, 2000 mm/sec^2, 2500 mm/sec^2 e cos\u00ec via fino a 7000 mm/sec^2 per l'ultima fascia. Stampa il modello di test sliced con i parametri suggeriti. Puoi interrompere la stampa prima se il ringing \u00e8 chiaramente visibile e vedi che l'accelerazione diventa troppo alta per la tua stampante (ad es. la stampante trema troppo o inizia a saltare i passaggi). Utilizzare i segni X e Y sul retro del modello come riferimento. Le misurazioni dal lato con il contrassegno X devono essere utilizzate per la configurazione dell'asse X e il contrassegno Y - per la configurazione dell'asse Y. Misurare la distanza D (in mm) tra pi\u00f9 oscillazioni sulla parte con il segno X, in prossimit\u00e0 delle tacche, preferibilmente saltando la prima o due oscillazioni. Per misurare pi\u00f9 facilmente la distanza tra le oscillazioni, contrassegnare prima le oscillazioni, quindi misurare la distanza tra i segni con un righello o un calibro:| | | Contare a quante oscillazioni N corrisponde la distanza misurata D . Se non sei sicuro di come contare le oscillazioni, fai riferimento all'immagine sopra, che mostra N = 6 oscillazioni. Calcola la frequenza di squillo dell'asse X come V \u00b7 N / D (Hz), dove V \u00e8 la velocit\u00e0 per i perimetri esterni (mm/sec). Per l'esempio sopra, abbiamo contrassegnato 6 oscillazioni e il test \u00e8 stato stampato a una velocit\u00e0 di 100 mm/sec, quindi la frequenza \u00e8 100 * 6 / 12,14 \u2248 49,4 Hz. Esegui (8) - (10) anche per il segno Y. Si noti che il ringing sulla stampa di prova dovrebbe seguire lo schema delle tacche curve, come nell'immagine sopra. In caso contrario, questo difetto non \u00e8 in realt\u00e0 un ringing e ha un'origine diversa: un problema meccanico o dell'estrusore. Dovrebbe essere risolto prima di abilitare e regolare gli shaper di input. Se le misurazioni non sono affidabili perch\u00e9, ad esempio, la distanza tra le oscillazioni non \u00e8 stabile, potrebbe significare che la stampante ha pi\u00f9 frequenze di risonanza sullo stesso asse. Si pu\u00f2 invece provare a seguire il processo di sintonizzazione descritto nella sezione Misurazioni inaffidabili delle frequenze di ringing e ottenere comunque qualcosa dalla tecnica di input shaping . La frequenza dei ringing pu\u00f2 dipendere dalla posizione del modello all'interno della piastra di stampa e dall'altezza Z, soprattutto sulle stampanti delta ; puoi controllare se vedi le differenze di frequenza in diverse posizioni lungo i lati del modello di prova e ad altezze diverse. \u00c8 possibile calcolare le frequenze di squillo medie sugli assi X e Y, se questo \u00e8 il caso. Se la frequenza di ringing misurata \u00e8 molto bassa (inferiore a circa 20-25 Hz), potrebbe essere una buona idea investire nell'irrigidire la stampante o nel diminuire la massa mobile, a seconda di ci\u00f2 che \u00e8 applicabile nel tuo caso, prima di procedere con l'ulteriore input shaping e rimisurare le frequenze in seguito. Per molti modelli di stampanti popolari spesso sono gi\u00e0 disponibili alcune soluzioni. Si noti che le frequenze di ringing possono cambiare se alla stampante vengono apportate modifiche che influiscono sulla massa in movimento o modificano la rigidit\u00e0 del sistema, ad esempio: Alcuni strumenti vengono installati, rimossi o sostituiti sulla testa di stampa che ne modificano la massa, ad es. viene installato un nuovo motore passo-passo (pi\u00f9 pesante o pi\u00f9 leggero) per estrusore diretto o viene installato un nuovo hotend, viene aggiunta una ventola pesante con un condotto, ecc. Le cinghie sono tese. Sono installati alcuni componenti aggiuntivi per aumentare la rigidit\u00e0 del telaio. Un piatto diverso \u00e8 installato su una stampante a piatto mobile o aggiunto un vetro, ecc. Se vengono apportate tali modifiche, \u00e8 una buona idea misurare almeno le frequenze di ringing per vedere se sono cambiate.","title":"Frequenza di ringing"},{"location":"Resonance_Compensation.html#configurazione-del-input-shaper","text":"Dopo aver misurato le frequenze di ringing per gli assi X e Y, puoi aggiungere la seguente sezione al tuo printer.cfg : [input_shaper] shaper_freq_x: ... # frequenza per il segno X del modello di prova shaper_freq_y: ... # frequenza per il segno Y del modello di prova Per l'esempio sopra, otteniamo shaper_freq_x/y = 49.4.","title":"Configurazione del Input shaper"},{"location":"Resonance_Compensation.html#scelta-del-input-shaper","text":"Klipper supporta diversi input shaper. Si differenziano per la loro sensibilit\u00e0 agli errori che determinano la frequenza di risonanza e quanto smussamento provocano nelle parti stampate. Inoltre, alcuni degli shaper come 2HUMP_EI e 3HUMP_EI di solito non dovrebbero essere usati con shaper_freq = frequenza di risonanza: sono configurati in base a diverse considerazioni per ridurre diverse risonanze contemporaneamente. Per la maggior parte delle stampanti, possono essere consigliati shaper MZV o EI. Questa sezione descrive un processo di test per scegliere tra di loro e capire alcuni altri parametri correlati. Stampare il modello di prova di ringing come segue: Riavviare il firmware: RESTART Prepararsi per il test: SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 Disabilita la Pressure Advance: SET_PRESSURE_ADVANCE ADVANCE=0 Eseguire: SET_INPUT_SHAPER SHAPER_TYPE=MZV Eseguire il comando: TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Stampa il modello di test sliced con i parametri suggeriti. Se a questo punto non si vede alcun ringing, \u00e8 possibile consigliare l'uso dello shaper MZV. Se vedi dei ringing, rimisura le frequenze usando i passaggi (8)-(10) descritti nella sezione Frequenza ringing . Se le frequenze differiscono in modo significativo dai valori ottenuti in precedenza, \u00e8 necessaria una configurazione dello shaper di input pi\u00f9 complessa. Puoi fare riferimento ai dettagli tecnici della sezione Input shapers . In caso contrario, procedere al passaggio successivo. Ora prova l'input shaper EI. Per provarlo, ripeti i passaggi (1)-(6) da sopra, ma eseguendo invece al passaggio 4 il seguente comando : SET_INPUT_SHAPER SHAPER_TYPE=EI . Confronta due stampe con input shaper MZV e EI. Se EI mostra risultati notevolmente migliori rispetto a MZV, utilizzare EI shaper, altrimenti preferire MZV. Si noti che lo shaper EI causer\u00e0 una maggiore levigatura 'smoothing' nelle parti stampate (vedere la sezione successiva per ulteriori dettagli). Aggiungi il parametro shaper_type: mzv (o ei) alla sezione [input_shaper], ad esempio: [input_shaper] shaper_freq_x: ... shaper_freq_y: ... shaper_type: mzv Alcune note sulla scelta dello shaper: Lo shaper EI pu\u00f2 essere pi\u00f9 adatto per le stampanti a piatto mobile (se la frequenza di risonanza e il conseguente livellamento lo consentono): man mano che si deposita pi\u00f9 filamento sul piatto mobile, la massa del piatto aumenta e la frequenza di risonanza diminuisce. Poich\u00e9 lo shaper EI \u00e8 pi\u00f9 robusto alle variazioni della frequenza di risonanza, potrebbe funzionare meglio quando si stampano parti di grandi dimensioni. A causa della natura della cinematica delta, le frequenze di risonanza possono differire molto in diverse parti del volume di costruzione. Pertanto, lo shaper EI pu\u00f2 adattarsi meglio alle stampanti delta piuttosto che a MZV o ZV e dovrebbe essere considerato per l'uso. Se la frequenza di risonanza \u00e8 sufficientemente grande (pi\u00f9 di 50-60 Hz), si pu\u00f2 anche provare a testare lo shaper 2HUMP_EI (eseguendo il test suggerito sopra con SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI ), ma controllare le considerazioni nella sezione sotto prima di abilitarlo.","title":"Scelta del input shaper"},{"location":"Resonance_Compensation.html#seleziona-max_accel","text":"Dovresti avere un test stampato per lo shaper che hai scelto dal passaggio precedente (se non lo fai, stampa il modello di test affettato con i parametri suggeriti con l'anticipo di pressione disabilitato SET_PRESSURE_ADVANCE ADVANCE=0 e con la torre di regolazione abilitata come TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 ). Si noti che ad accelerazioni molto elevate, a seconda della frequenza di risonanza e dell'input shaper scelto (ad es. EI shaper crea pi\u00f9 smussamento di MZV), l'input shaping pu\u00f2 causare un'eccessiva levigatura -smoothing- e arrotondamento delle parti. Quindi, max_accel dovrebbe essere scelto in modo tale da impedirlo. Un altro parametro che pu\u00f2 influire sul livellamento \u00e8 square_corner_velocity , quindi non \u00e8 consigliabile aumentarlo al di sopra del valore predefinito di 5 mm/sec per evitare un aumento del livellamento smooting. Per selezionare un valore max_accel adatto, ispezionare il modello per lo shaper di input scelto. Per prima cosa, prendi nota a quale accelerazione il ringing \u00e8 ancora piccolo - che ti vada bene. Quindi, controlla la levigatura - smoothing. Per aiutare in questo, il modello di prova ha un piccolo spazio nel muro (0,15 mm): All'aumentare dell'accelerazione, aumenta anche la levigatura-smoothing e lo spazio effettivo nella stampa si allarga: In questa immagine, l'accelerazione aumenta da sinistra a destra e il gap inizia a crescere a partire da 3500 mm/sec^2 (quinta banda da sinistra). Quindi il buon valore per max_accel = 3000 (mm/sec^2) in questo caso per evitare l'eccessivo smoothing. Nota l'accelerazione quando lo spazio \u00e8 ancora molto piccolo nella stampa di prova. Se vedi rigonfiamenti, ma nessun vuoto nel muro, anche ad alte accelerazioni, potrebbe essere dovuto all'avanzamento della pressione disabilitato, specialmente sugli estrusori Bowden. In tal caso, potrebbe essere necessario ripetere la stampa con il PA abilitato. Potrebbe anche essere il risultato di un flusso di filamento non calibrato (troppo alto), quindi \u00e8 una buona idea controllare anche quello. Scegli il minimo tra i due valori di accelerazione (da ringing e smoothing) e inseriscilo come max_accel in printer.cfg. Come nota, pu\u00f2 succedere, specialmente a basse frequenze di ringing, che lo shaper EI provochi un'eccessiva attenuazione anche a basse accelerazioni. In questo caso, MZV potrebbe essere una scelta migliore, perch\u00e9 potrebbe consentire valori di accelerazione pi\u00f9 elevati. A frequenze di ringing molto basse (~25 Hz e inferiori) anche lo shaper MZV pu\u00f2 creare un effetto smussato eccessivo. In tal caso, puoi anche provare a ripetere i passaggi nella sezione Scegliere input shaper con shaper ZV, usando invece il comando SET_INPUT_SHAPER SHAPER_TYPE=ZV . Lo shaper ZV dovrebbe mostrare un livellamento ancora inferiore rispetto a MZV, ma \u00e8 pi\u00f9 sensibile agli errori nella misurazione delle frequenze di ringing. Un'altra considerazione \u00e8 che se una frequenza di risonanza \u00e8 troppo bassa (inferiore a 20-25 Hz), potrebbe essere una buona idea aumentare la rigidit\u00e0 della stampante o ridurre la massa in movimento. In caso contrario, l'accelerazione e la velocit\u00e0 di stampa potrebbero essere limitate a causa di un'eccessivo smoothing invece del ringing.","title":"Seleziona max_accel"},{"location":"Resonance_Compensation.html#regolazione-fine-delle-frequenze-di-risonanza","text":"Si noti che la precisione delle misurazioni delle frequenze di risonanza utilizzando il modello di test di ringing \u00e8 sufficiente per la maggior parte degli scopi, quindi si sconsiglia un'ulteriore messa a punto. Se vuoi ancora provare a ricontrollare i tuoi risultati (ad esempio se vedi ancora del ringing dopo aver stampato un modello di prova con un input shaper a tua scelta con le stesse frequenze che hai misurato in precedenza), puoi seguire i passaggi in questo sezione. Nota che se vedi ringing a frequenze diverse dopo aver abilitato [input_shaper], questa sezione non ti aiuter\u00e0. Supponendo di aver suddiviso il modello di ringing con i parametri suggeriti, completare i seguenti passaggi per ciascuno degli assi X e Y: Prepararsi per il test: SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 Assicurati che Pressure Advance sia disabilitato: SET_PRESSURE_ADVANCE ADVANCE=0 Eseguire: SET_INPUT_SHAPER SHAPER_TYPE=ZV Dal modello di prova di ringing esistente con lo shaper di input scelto, seleziona l'accelerazione che mostra sufficientemente bene il ringing e impostala con: SET_VELOCITY_LIMIT ACCEL=... Calcola i parametri necessari per il comando TUNING_TOWER per ottimizzare il parametro shaper_freq_x come segue: start = shaper_freq_x * 83 / 132 e factor = shaper_freq_x / 66, dove qui shaper_freq_x \u00e8 il valore corrente in printer.cfg . Eseguire il comando: TUNING_TOWER COMMAND=SET_INPUT_SHAPER PARAMETER=SHAPER_FREQ_X START=start FACTOR=factor BAND=5 usando i valori start e factor calcolati al punto (5). Stampa il modello di prova. Reimposta il valore della frequenza originale: SET_INPUT_SHAPER SHAPER_FREQ_X=... . Trova la fascia che mostra meno ringing e conta il suo numero dal basso partendo da 1. Calcola il nuovo valore shaper_freq_x tramite il vecchio shaper_freq_x * (39 + 5 * #band-number) / 66. Ripetere questi passaggi per l'asse Y allo stesso modo, sostituendo i riferimenti all'asse X con l'asse Y (ad es. sostituire shaper_freq_x con shaper_freq_y nelle formule e nel comando TUNING_TOWER ). Ad esempio, supponiamo di aver misurato la frequenza di ringing per uno degli assi pari a 45 Hz. Questo d\u00e0 start = 45 * 83 / 132 = 28,30 e factor = 45 / 66 = 0,6818 valori per il comando TUNING_TOWER . Supponiamo ora che dopo aver stampato il modello di prova, la quarta fascia dal basso dia il minimo squillo. Questo d\u00e0 lo shaper_freq_^ aggiornato al valore pari a 45 * (39 + 5 * 4) / 66 \u2248 40,23. Dopo aver calcolato entrambi i nuovi parametri shaper_freq_x e shaper_freq_y , puoi aggiornare la sezione [input_shaper] in printer.cfg con i nuovi valori shaper_freq_x e shaper_freq_y .","title":"Regolazione fine delle frequenze di risonanza"},{"location":"Resonance_Compensation.html#pressure-advance","text":"Se si utilizza Pressure Advance, potrebbe essere necessario risintonizzarlo. Seguire le istruzioni per trovare il nuovo valore, se diverso dal precedente. Assicurati di riavviare Klipper prima di regolare Pressure Advance.","title":"Pressure Advance"},{"location":"Resonance_Compensation.html#misurazioni-inaffidabili-delle-frequenze-di-ringing","text":"Se non \u00e8 possibile misurare le frequenze di ringing, ad es. se la distanza tra le oscillazioni non \u00e8 stabile, potresti comunque essere in grado di sfruttare le tecniche di input shaping, ma i risultati potrebbero non essere buoni come con misurazioni corrette delle frequenze e richieder\u00e0 un po' pi\u00f9 di messa a punto e stampa del test modello. Si noti che un'altra possibilit\u00e0 \u00e8 acquistare e installare un accelerometro e misurare le risonanze con esso (fare riferimento a docs che descrive l'hardware richiesto e il processo di installazione), ma questa opzione richiede un po' di crimpatura e saldatura. Per l'ottimizzazione, aggiungi la sezione [input_shaper] vuota al tuo printer.cfg . Quindi, supponendo di aver fattolo slicing il modello di ringing con i parametri suggeriti, stampare il modello di prova 3 volte come segue. La prima volta, prima della stampa, eseguire RESTART SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 SET_PRESSURE_ADVANCE ADVANCE=0 SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=60 SHAPER_FREQ_Y=60 TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 e stampa il modello. Quindi stampare di nuovo il modello, ma prima di eseguire la stampa invece SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=50 SHAPER_FREQ_Y=50 TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Quindi stampa il modello per la terza volta, ma ora esegui SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=40 SHAPER_FREQ_Y=40 TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 In sostanza, stiamo stampando il modello di prova di ringing con TUNING_TOWER utilizzando lo shaper 2HUMP_EI con shaper_freq = 60 Hz, 50 Hz e 40 Hz. Se nessuno dei modelli mostra miglioramenti nel ringing, allora, sfortunatamente non sembra che le tecniche di modellazione dell'input possano aiutare con il tuo caso. Altrimenti, \u00e8 possibile che tutti i modelli non mostrino ringing, o alcuni mostrino ringing e altri non cos\u00ec tanto. Scegli il modello di test con la frequenza pi\u00f9 alta che mostra comunque buoni miglioramenti nel ringing. Ad esempio, se i modelli a 40 Hz e 50 Hz non mostrano quasi nessuno ringing e il modello a 60 Hz mostra gi\u00e0 un po' pi\u00f9 di ringing, attenersi a 50 Hz. Ora controlla se lo shaper EI sarebbe abbastanza buono nel tuo caso. Scegli la frequenza dello shaper EI in base alla frequenza dello shaper 2HUMP_EI che hai scelto: Per lo shaper 2HUMP_EI 60 Hz, utilizzare lo shaper EI con shaper_freq = 50 Hz. Per lo shaper 2HUMP_EI 50 Hz, utilizzare lo shaper EI con shaper_freq = 40 Hz. Per lo shaper 2HUMP_EI 40 Hz, utilizzare lo shaper EI con shaper_freq = 33 Hz. Ora stampa il modello di prova ancora una volta, eseguendola SET_INPUT_SHAPER SHAPER_TYPE=EI SHAPER_FREQ_X=... SHAPER_FREQ_Y=... TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 fornendo shaper_freq_x=... e shaper_freq_y=... come determinato in precedenza. Se lo shaper EI mostra buoni risultati comparabili con lo shaper 2HUMP_EI, attenersi con lo shaper EI e la frequenza determinata in precedenza, altrimenti utilizzare lo shaper 2HUMP_EI con la frequenza corrispondente. Aggiungi i risultati a printer.cfg come, ad es. [input_shaper] shaper_freq_x: 50 shaper_freq_y: 50 shaper_type: 2hump_ei Continua l'ottimizzazione con la sezione Selecting max_accel .","title":"Misurazioni inaffidabili delle frequenze di ringing"},{"location":"Resonance_Compensation.html#risoluzione-dei-problemi-e-domande-frequenti","text":"","title":"Risoluzione dei problemi e domande frequenti"},{"location":"Resonance_Compensation.html#non-riesco-a-ottenere-misurazioni-affidabili-delle-frequenze-di-risonanza","text":"Innanzitutto, assicurati che non ci siano altri problemi con la stampante invece del ringing. Se le misurazioni non sono affidabili perch\u00e9, ad esempio, la distanza tra le oscillazioni non \u00e8 stabile, potrebbe significare che la stampante ha pi\u00f9 frequenze di risonanza sullo stesso asse. Si pu\u00f2 provare a seguire il processo di sintonizzazione descritto nella sezione Misurazioni inaffidabili delle frequenze di ringing e ottenere comunque qualcosa dalla tecnica di modellatura dell'input. Un'altra possibilit\u00e0 \u00e8 installare un accelerometro, misurare le risonanze con esso e regolare automaticamente lo shaper di input utilizzando i risultati di tali misurazioni.","title":"Non riesco a ottenere misurazioni affidabili delle frequenze di risonanza"},{"location":"Resonance_Compensation.html#dopo-aver-abilitato-input_shaper-ottengo-parti-stampate-troppo-levigate-e-i-dettagli-fini-vengono-persi","text":"Controllare le considerazioni nella sezione Selecting max_accel . Se la frequenza di risonanza \u00e8 bassa, non si dovrebbero impostare max_accel troppo alti o aumentare i parametri square_corner_velocity. Potrebbe anche essere meglio scegliere gli shaper di input MZV o anche ZV su EI (o gli shaper 2HUMP_EI e 3HUMP_EI).","title":"Dopo aver abilitato [input_shaper], ottengo parti stampate troppo levigate e i dettagli fini vengono persi"},{"location":"Resonance_Compensation.html#dopo-aver-stampato-correttamente-per-un-po-di-tempo-senza-ringing-sembra-tornare","text":"\u00c8 possibile che dopo qualche tempo le frequenze di risonanza siano cambiate. Per esempio. forse la tensione delle cinghie \u00e8 cambiata (le cinghie si sono allentate di pi\u00f9), ecc. \u00c8 una buona idea controllare e rimisurare le frequenze di ringing come descritto nella sezione Frequenza di ringing e aggiornare il file di configurazione se necessario .","title":"Dopo aver stampato correttamente per un po' di tempo senza ringing, sembra tornare"},{"location":"Resonance_Compensation.html#la-configurazione-a-doppio-carrello-e-supportata-con-gli-input-shaper","text":"Non esiste un supporto dedicato per doppi carrelli con input shaper, ma ci\u00f2 non significa che questa configurazione non funzioner\u00e0. Si dovrebbe eseguire la messa a punto due volte per ciascuno dei carrelli e calcolare le frequenze di ringing per gli assi X e Y per ciascuno dei carrelli in modo indipendente. Quindi inserisci i valori per il carrello 0 nella sezione [input_shaper] e modifica i valori al volo quando si cambiano i carrelli, ad es. come parte di alcune macro: SET_DUAL_CARRIAGE CARRIAGE=1 SET_INPUT_SHAPER SHAPER_FREQ_X=... SHAPER_FREQ_Y=... E allo stesso modo quando si torna al carrello 0.","title":"La configurazione a doppio carrello \u00e8 supportata con gli input shaper?"},{"location":"Resonance_Compensation.html#linput_shaper-influisce-sul-tempo-di-stampa","text":"No, la funzione input_shaper non ha praticamente alcun impatto sui tempi di stampa da sola. Tuttavia, il valore di max_accel lo fa certamente (regolazione di questo parametro descritta in questa sezione ).","title":"L'input_shaper influisce sul tempo di stampa?"},{"location":"Resonance_Compensation.html#dettagli-tecnici","text":"","title":"Dettagli tecnici"},{"location":"Resonance_Compensation.html#input-shaper","text":"Gli shaper di input utilizzati in Klipper sono piuttosto standard e si pu\u00f2 trovare una panoramica pi\u00f9 approfondita negli articoli che descrivono gli shaper corrispondenti. Questa sezione contiene una breve panoramica di alcuni aspetti tecnici degli input shaper supportati. La tabella seguente mostra alcuni parametri (solitamente approssimativi) di ciascun shaper. Input shaper Shaper duration Riduzione delle vibrazioni 20x (5% di tolleranza alle vibrazioni) Riduzione delle vibrazioni 10 volte (tolleranza alle vibrazioni del 10%) ZV 0.5 / shaper_freq N/A \u00b1 5% shaper_freq MZV 0.75 / shaper_freq \u00b1 4% shaper_freq -10%...+15% shaper_freq ZVD 1 / shaper_freq \u00b1 15% shaper_freq \u00b1 22% shaper_freq EI 1 / shaper_freq \u00b1 20% shaper_freq \u00b1 25% shaper_freq 2HUMP_EI 1.5 / shaper_freq \u00b1 35% shaper_freq \u00b1 40 shaper_freq 3HUMP_EI 2 / shaper_freq -45...+50% shaper_freq -50%...+55% shaper_freq Una nota sulla riduzione delle vibrazioni: i valori nella tabella sopra sono approssimativi. Se il rapporto di smorzamento della stampante \u00e8 noto per ciascun asse, lo shaper pu\u00f2 essere configurato in modo pi\u00f9 preciso e ridurr\u00e0 quindi le risonanze in una gamma di frequenze leggermente pi\u00f9 ampia. Tuttavia, il rapporto di smorzamento \u00e8 solitamente sconosciuto ed \u00e8 difficile da stimare senza un'attrezzatura speciale, quindi Klipper utilizza il valore 0,1 per impostazione predefinita, che \u00e8 un buon valore a tutto tondo. Le gamme di frequenza nella tabella coprono un numero di diversi possibili rapporti di smorzamento attorno a quel valore (da 0,05 a 0,2 circa). Si noti inoltre che EI, 2HUMP_EI e 3HUMP_EI sono sintonizzati per ridurre le vibrazioni al 5%, quindi i valori per la tolleranza alle vibrazioni del 10% sono forniti solo per riferimento. Come utilizzare questa tabella: La durata dello shaper influisce sull0 smoothing delle parti: pi\u00f9 \u00e8 grande, pi\u00f9 le parti sono lisce. Questa dipendenza non \u00e8 lineare, ma pu\u00f2 dare un'idea di quali shaper \"levigano\" di pi\u00f9 per la stessa frequenza. L'ordinamento per smoothing \u00e8 il seguente: ZV < MZV < ZVD \u2248 EI < 2HUMP_EI < 3HUMP_EI. Inoltre, raramente \u00e8 pratico impostare shaper_freq = resonance freq per gli shaper 2HUMP_EI e 3HUMP_EI (dovrebbero essere usati per ridurre le vibrazioni per diverse frequenze). Si pu\u00f2 stimare una gamma di frequenze in cui lo shaper riduce le vibrazioni. Ad esempio, MZV con shaper_freq = 35 Hz riduce le vibrazioni al 5% per le frequenze [33,6, 36,4] Hz. 3HUMP_EI con shaper_freq = 50 Hz riduce le vibrazioni al 5% nell'intervallo [27,5, 75] Hz. Si pu\u00f2 usare questa tabella per verificare quale shaper dovrebbero usare se hanno bisogno di ridurre le vibrazioni a diverse frequenze. Ad esempio, se si hanno risonanze a 35 Hz e 60 Hz sullo stesso asse: a) EI shaper deve avere shaper_freq = 35 / (1 - 0,2) = 43,75 Hz, e ridurr\u00e0 le risonanze fino a 43,75 * (1 + 0,2 ) = 52,5 Hz, quindi non \u00e8 sufficiente; b) 2HUMP_EI shaper deve avere shaper_freq = 35 / (1 - 0,35) = 53,85 Hz e ridurr\u00e0 le vibrazioni fino a 53,85 * (1 + 0,35) = 72,7 Hz - quindi questa \u00e8 una configurazione accettabile. Cerca sempre di usare shaper_freq il pi\u00f9 alto possibile per un dato shaper (magari con un certo margine di sicurezza, quindi in questo esempio shaper_freq \u2248 50-52 Hz funzionerebbe meglio), e prova a usare uno shaper con la minor durata possibile dello shaper. Se \u00e8 necessario ridurre le vibrazioni a diverse frequenze molto diverse (ad esempio, 30 Hz e 100 Hz), \u00e8 possibile che la tabella sopra non fornisca informazioni sufficienti. In questo caso si pu\u00f2 avere pi\u00f9 fortuna con lo script scripts/graph_shaper.py , che \u00e8 pi\u00f9 flessibile.","title":"Input shaper"},{"location":"Rotation_Distance.html","text":"Rotation distance \u00b6 I driver per motori passo-passo su Klipper richiedono un parametro rotation_distance in ciascuna stepper config section . La distanza_rotazione \u00e8 la distanza percorsa dall'asse con un giro completo del motore passo-passo relativo. Questo documento descrive come configurare questo valore. Ottenere rotation_distance da steps_per_mm (o step_distance) \u00b6 I progettisti della tua stampante 3d hanno originariamente calcolato steps_per_mm da una distanza di rotazione. Se conosci i passi_per_mm, \u00e8 possibile utilizzare questa formula generale per ottenere la distanza di rotazione originale: rotation_distance = <passi_completi_per_rotazione> * <micropassi> / <passi_per_mm> Oppure, se hai una configurazione di Klipper precedente e conosci il parametro step_distance puoi usare questa formula: rotation_distance = <passi_completi_per_rotazione> * <micropassi> * <distanza_passo> L'impostazione <full_steps_per_rotation> \u00e8 determinata dal tipo di motore passo-passo. La maggior parte dei motori passo-passo sono \"passi passo a 1,8 gradi\" e quindi hanno 200 passi completi per rotazione (360 diviso 1,8 fa 200). Alcuni motori passo passo sono \"passo passo a 0,9 gradi\" e quindi hanno 400 passi completi per rotazione. Altri motori passo-passo sono rari. In caso di dubbi, non impostare full_steps_per_rotation nel file di configurazione e utilizzare 200 nella formula sopra. L'impostazione <microsteps> \u00e8 determinata dal driver del motore passo-passo. La maggior parte dei driver utilizza 16 micropassi. Se non sei sicuro, imposta microsteps: 16 nella configurazione e usa 16 nella formula sopra. Quasi tutte le stampanti dovrebbero avere un numero intero per rotation_distance sugli assi di tipo X, Y e Z. Se la formula precedente risulta in una distanza_rotazione che \u00e8 entro .01 da un numero intero, arrotonda il valore finale a quel numero_intero. Calibrazione rotation_distance sugli estrusori \u00b6 Su un estrusore, la rotation_distance \u00e8 la distanza percorsa dal filamento per una rotazione completa del motore passo-passo. Il modo migliore per ottenere un valore accurato per questa impostazione \u00e8 utilizzare una procedura di \"misura e ritaglio\". Innanzitutto inizia con un'ipotesi iniziale per la distanza di rotazione. Questo pu\u00f2 essere ottenuto da steps_per_mm o ispezionando l'hardware . Quindi utilizzare la seguente procedura per \"misurare e tagliare\": Assicurati che l'estrusore contenga del filamento, che l'hotend sia riscaldato a una temperatura appropriata e che la stampante sia pronta per l'estrusione. Utilizzare un pennarello per posizionare un segno sul filamento a circa 70 mm dall'ingresso del corpo dell'estrusore. Quindi usa un calibro digitale per misurare la distanza effettiva di quel segno nel modo pi\u00f9 preciso possibile. Nota questo come <initial_mark_distance> . Estrudere 50 mm di filamento con la seguente sequenza di comandi: G91 seguito da G1 E50 F60 . Nota 50 mm come <distanza_estrusione_richiesta> . Attendi che l'estrusore finisca il movimento (ci vorranno circa 50 secondi). \u00c8 importante utilizzare la velocit\u00e0 di estrusione lenta per questo test poich\u00e9 una velocit\u00e0 pi\u00f9 elevata pu\u00f2 causare una pressione elevata nell'estrusore che distorce i risultati. (Non utilizzare il \"pulsante estrudi\" sui front-end grafici per questo test poich\u00e9 si estrudono a una velocit\u00e0 elevata.) Utilizzare un calibro digitale per misurare la nuova distanza tra il corpo dell'estrusore e il segno sul filamento. Annota questa come <subsequent_mark_distance> . Quindi calcola: actual_extrude_distance = <initial_mark_distance> - <subsequent_mark_distance> Calcola rotation_distance come: rotation_distance = <rotation_distance_precedente> * <actual_extrude_distance> / <requested_extrude_distance> Arrotonda la nuova rotation_distance a tre cifre decimali. Se la distanza_di_estrusione effettiva differisce dalla distanza_di_estrusione richiesta di oltre 2 mm circa, \u00e8 una buona idea eseguire i passaggi precedenti una seconda volta. Nota: non utilizzare un metodo di tipo \"misura e ritaglia\" per calibrare gli assi di tipo x, y o z. Il metodo \"misura e taglia\" non \u00e8 sufficientemente accurato per quegli assi e probabilmente porter\u00e0 a una configurazione peggiore. Invece, se necessario, quegli assi possono essere determinati measuring the belts, pulleys, and lead screw hardware . Ottenere la rotation_distance ispezionando l'hardware \u00b6 E' possibile calcolare rotation_distance conoscendo i motori passo-passo e la cinematica della stampante. Questo pu\u00f2 essere utile se i passi_per_mm non sono noti o se si sta progettando una nuova stampante. Assi con trasmissione a cinghia \u00b6 \u00c8 facile calcolare rotation_distance per un asse lineare che utilizza una cinghia e una puleggia. Per prima cosa determinare il tipo di cinghia. La maggior parte delle stampanti utilizza un passo della cinghia di 2 mm (ovvero, ogni dente sulla cinghia \u00e8 a 2 mm di distanza). Quindi contare il numero di denti sulla puleggia del motore passo-passo. La distanza_rotazione viene quindi calcolata come: rotation_distance = <passo_cinghia> * <numero_di_denti_sulla_puleggia> Ad esempio, se una stampante ha una cinghia da 2 mm e utilizza una puleggia con 20 denti, la distanza di rotazione \u00e8 40. Assi con vite di comando \u00b6 \u00c8 facile calcolare la rotation_distance per le comuni viti di trasmissione utilizzando la seguente formula: rotation_distance = <passo_vite> * <numero_di_filetti_separati> Ad esempio, la comune \"madrevite T8\" ha una rotation distance di 8 (ha un passo di 2 mm e ha 4 filetti separati). Le stampanti pi\u00f9 vecchie con \"barre filettate\" hanno un solo \"filo\" sulla vite di comando e quindi la rotation distance \u00e8 il passo della vite. (Il passo della vite \u00e8 la distanza tra ciascuna scanalatura sulla vite.) Quindi, ad esempio, un'asta metrica M6 ha una rotation distance di 1 e un'asta M8 ha una rotation distance di 1,25. Estrusore \u00b6 \u00c8 possibile ottenere una distanza di rotazione iniziale per gli estrusori misurando il diametro del \"bullone dentato\" che spinge il filamento e utilizzando la seguente formula: rotation_distance = <diametro> * 3.14 Se l'estrusore utilizza ingranaggi, sar\u00e0 anche necessario determinare e impostare gear_ratio per l'estrusore. La rotation distance effettiva su un estrusore varier\u00e0 da stampante a stampante, perch\u00e9 la presa del \"bullone dentato\" che impegna il filamento pu\u00f2 variare. Pu\u00f2 anche variare tra le bobine di filamento. Dopo aver ottenuto una rotation distance iniziale, utilizzare la procedura di misurazione e ritaglio per ottenere un'impostazione pi\u00f9 accurata. Usando un gear_ratio \u00b6 L'impostazione di un gear_ratio pu\u00f2 semplificare la configurazione di rotation_distance su stepper a cui \u00e8 collegato un gear box (o simile). La maggior parte degli stepper non ha un gear box - se non sei sicuro, non impostare gear_ratio nella configurazione. Quando gear_ratio \u00e8 impostato, rotation_distance rappresenta la distanza percorsa dall'asse con una rotazione completa dell'ingranaggio finale sulla scatola ingranaggi. Se, ad esempio, si utilizza un riduttore con un rapporto \"5:1\", \u00e8 possibile calcolare la distanza_rotazione con conoscenza dell'hardware e quindi aggiungere gear_ratio: 5:1 alla configurazione. Per gli ingranaggi realizzati con cinghie e pulegge, \u00e8 possibile determinare il gear_ratio contando i denti sulle pulegge. Ad esempio, se uno stepper con una puleggia a 16 denti guida la puleggia successiva con 80 denti, si utilizzer\u00e0 gear_ratio: 80:16 . In effetti, si potrebbe aprire una comune \"scatola del cambio\" pronta all'uso e contare i denti al suo interno per confermare il suo rapporto di trasmissione. Si noti che a volte un gear-box avr\u00e0 un rapporto di trasmissione leggermente diverso da quello in cui \u00e8 pubblicizzato. I comuni ingranaggi del motore dell'estrusore BMG ne sono un esempio: sono pubblicizzati come \"3:1\" ma in realt\u00e0 utilizzano ingranaggi \"50:17\". (L'uso di numeri di denti senza un denominatore comune pu\u00f2 migliorare l'usura complessiva degli ingranaggi poich\u00e9 i denti non sempre ingranano allo stesso modo ad ogni giro.) Il comune \"riduttore epicicloidale 5.18:1\" \u00e8 configurato in modo pi\u00f9 accurato con gear_ratio: 57:11 . Se su un asse vengono utilizzati pi\u00f9 ingranaggi, \u00e8 possibile fornire un elenco separato da virgole nel gear_ratio. Ad esempio, un cambio \"5:1\" che guida una puleggia da 16 a 80 denti potrebbe utilizzare gear_ratio: 5:1, 80:16 . Nella maggior parte dei casi, gear_ratio dovrebbe essere definito con numeri interi poich\u00e9 ingranaggi e pulegge comuni hanno un numero intero di denti su di essi. Tuttavia, nei casi in cui una cinghia aziona una puleggia usando l'attrito invece dei denti, pu\u00f2 avere senso utilizzare un numero in virgola mobile nel rapporto di trasmissione (ad esempio, gear_ratio: 107.237:16 ).","title":"Rotation distance"},{"location":"Rotation_Distance.html#rotation-distance","text":"I driver per motori passo-passo su Klipper richiedono un parametro rotation_distance in ciascuna stepper config section . La distanza_rotazione \u00e8 la distanza percorsa dall'asse con un giro completo del motore passo-passo relativo. Questo documento descrive come configurare questo valore.","title":"Rotation distance"},{"location":"Rotation_Distance.html#ottenere-rotation_distance-da-steps_per_mm-o-step_distance","text":"I progettisti della tua stampante 3d hanno originariamente calcolato steps_per_mm da una distanza di rotazione. Se conosci i passi_per_mm, \u00e8 possibile utilizzare questa formula generale per ottenere la distanza di rotazione originale: rotation_distance = <passi_completi_per_rotazione> * <micropassi> / <passi_per_mm> Oppure, se hai una configurazione di Klipper precedente e conosci il parametro step_distance puoi usare questa formula: rotation_distance = <passi_completi_per_rotazione> * <micropassi> * <distanza_passo> L'impostazione <full_steps_per_rotation> \u00e8 determinata dal tipo di motore passo-passo. La maggior parte dei motori passo-passo sono \"passi passo a 1,8 gradi\" e quindi hanno 200 passi completi per rotazione (360 diviso 1,8 fa 200). Alcuni motori passo passo sono \"passo passo a 0,9 gradi\" e quindi hanno 400 passi completi per rotazione. Altri motori passo-passo sono rari. In caso di dubbi, non impostare full_steps_per_rotation nel file di configurazione e utilizzare 200 nella formula sopra. L'impostazione <microsteps> \u00e8 determinata dal driver del motore passo-passo. La maggior parte dei driver utilizza 16 micropassi. Se non sei sicuro, imposta microsteps: 16 nella configurazione e usa 16 nella formula sopra. Quasi tutte le stampanti dovrebbero avere un numero intero per rotation_distance sugli assi di tipo X, Y e Z. Se la formula precedente risulta in una distanza_rotazione che \u00e8 entro .01 da un numero intero, arrotonda il valore finale a quel numero_intero.","title":"Ottenere rotation_distance da steps_per_mm (o step_distance)"},{"location":"Rotation_Distance.html#calibrazione-rotation_distance-sugli-estrusori","text":"Su un estrusore, la rotation_distance \u00e8 la distanza percorsa dal filamento per una rotazione completa del motore passo-passo. Il modo migliore per ottenere un valore accurato per questa impostazione \u00e8 utilizzare una procedura di \"misura e ritaglio\". Innanzitutto inizia con un'ipotesi iniziale per la distanza di rotazione. Questo pu\u00f2 essere ottenuto da steps_per_mm o ispezionando l'hardware . Quindi utilizzare la seguente procedura per \"misurare e tagliare\": Assicurati che l'estrusore contenga del filamento, che l'hotend sia riscaldato a una temperatura appropriata e che la stampante sia pronta per l'estrusione. Utilizzare un pennarello per posizionare un segno sul filamento a circa 70 mm dall'ingresso del corpo dell'estrusore. Quindi usa un calibro digitale per misurare la distanza effettiva di quel segno nel modo pi\u00f9 preciso possibile. Nota questo come <initial_mark_distance> . Estrudere 50 mm di filamento con la seguente sequenza di comandi: G91 seguito da G1 E50 F60 . Nota 50 mm come <distanza_estrusione_richiesta> . Attendi che l'estrusore finisca il movimento (ci vorranno circa 50 secondi). \u00c8 importante utilizzare la velocit\u00e0 di estrusione lenta per questo test poich\u00e9 una velocit\u00e0 pi\u00f9 elevata pu\u00f2 causare una pressione elevata nell'estrusore che distorce i risultati. (Non utilizzare il \"pulsante estrudi\" sui front-end grafici per questo test poich\u00e9 si estrudono a una velocit\u00e0 elevata.) Utilizzare un calibro digitale per misurare la nuova distanza tra il corpo dell'estrusore e il segno sul filamento. Annota questa come <subsequent_mark_distance> . Quindi calcola: actual_extrude_distance = <initial_mark_distance> - <subsequent_mark_distance> Calcola rotation_distance come: rotation_distance = <rotation_distance_precedente> * <actual_extrude_distance> / <requested_extrude_distance> Arrotonda la nuova rotation_distance a tre cifre decimali. Se la distanza_di_estrusione effettiva differisce dalla distanza_di_estrusione richiesta di oltre 2 mm circa, \u00e8 una buona idea eseguire i passaggi precedenti una seconda volta. Nota: non utilizzare un metodo di tipo \"misura e ritaglia\" per calibrare gli assi di tipo x, y o z. Il metodo \"misura e taglia\" non \u00e8 sufficientemente accurato per quegli assi e probabilmente porter\u00e0 a una configurazione peggiore. Invece, se necessario, quegli assi possono essere determinati measuring the belts, pulleys, and lead screw hardware .","title":"Calibrazione rotation_distance sugli estrusori"},{"location":"Rotation_Distance.html#ottenere-la-rotation_distance-ispezionando-lhardware","text":"E' possibile calcolare rotation_distance conoscendo i motori passo-passo e la cinematica della stampante. Questo pu\u00f2 essere utile se i passi_per_mm non sono noti o se si sta progettando una nuova stampante.","title":"Ottenere la rotation_distance ispezionando l'hardware"},{"location":"Rotation_Distance.html#assi-con-trasmissione-a-cinghia","text":"\u00c8 facile calcolare rotation_distance per un asse lineare che utilizza una cinghia e una puleggia. Per prima cosa determinare il tipo di cinghia. La maggior parte delle stampanti utilizza un passo della cinghia di 2 mm (ovvero, ogni dente sulla cinghia \u00e8 a 2 mm di distanza). Quindi contare il numero di denti sulla puleggia del motore passo-passo. La distanza_rotazione viene quindi calcolata come: rotation_distance = <passo_cinghia> * <numero_di_denti_sulla_puleggia> Ad esempio, se una stampante ha una cinghia da 2 mm e utilizza una puleggia con 20 denti, la distanza di rotazione \u00e8 40.","title":"Assi con trasmissione a cinghia"},{"location":"Rotation_Distance.html#assi-con-vite-di-comando","text":"\u00c8 facile calcolare la rotation_distance per le comuni viti di trasmissione utilizzando la seguente formula: rotation_distance = <passo_vite> * <numero_di_filetti_separati> Ad esempio, la comune \"madrevite T8\" ha una rotation distance di 8 (ha un passo di 2 mm e ha 4 filetti separati). Le stampanti pi\u00f9 vecchie con \"barre filettate\" hanno un solo \"filo\" sulla vite di comando e quindi la rotation distance \u00e8 il passo della vite. (Il passo della vite \u00e8 la distanza tra ciascuna scanalatura sulla vite.) Quindi, ad esempio, un'asta metrica M6 ha una rotation distance di 1 e un'asta M8 ha una rotation distance di 1,25.","title":"Assi con vite di comando"},{"location":"Rotation_Distance.html#estrusore","text":"\u00c8 possibile ottenere una distanza di rotazione iniziale per gli estrusori misurando il diametro del \"bullone dentato\" che spinge il filamento e utilizzando la seguente formula: rotation_distance = <diametro> * 3.14 Se l'estrusore utilizza ingranaggi, sar\u00e0 anche necessario determinare e impostare gear_ratio per l'estrusore. La rotation distance effettiva su un estrusore varier\u00e0 da stampante a stampante, perch\u00e9 la presa del \"bullone dentato\" che impegna il filamento pu\u00f2 variare. Pu\u00f2 anche variare tra le bobine di filamento. Dopo aver ottenuto una rotation distance iniziale, utilizzare la procedura di misurazione e ritaglio per ottenere un'impostazione pi\u00f9 accurata.","title":"Estrusore"},{"location":"Rotation_Distance.html#usando-un-gear_ratio","text":"L'impostazione di un gear_ratio pu\u00f2 semplificare la configurazione di rotation_distance su stepper a cui \u00e8 collegato un gear box (o simile). La maggior parte degli stepper non ha un gear box - se non sei sicuro, non impostare gear_ratio nella configurazione. Quando gear_ratio \u00e8 impostato, rotation_distance rappresenta la distanza percorsa dall'asse con una rotazione completa dell'ingranaggio finale sulla scatola ingranaggi. Se, ad esempio, si utilizza un riduttore con un rapporto \"5:1\", \u00e8 possibile calcolare la distanza_rotazione con conoscenza dell'hardware e quindi aggiungere gear_ratio: 5:1 alla configurazione. Per gli ingranaggi realizzati con cinghie e pulegge, \u00e8 possibile determinare il gear_ratio contando i denti sulle pulegge. Ad esempio, se uno stepper con una puleggia a 16 denti guida la puleggia successiva con 80 denti, si utilizzer\u00e0 gear_ratio: 80:16 . In effetti, si potrebbe aprire una comune \"scatola del cambio\" pronta all'uso e contare i denti al suo interno per confermare il suo rapporto di trasmissione. Si noti che a volte un gear-box avr\u00e0 un rapporto di trasmissione leggermente diverso da quello in cui \u00e8 pubblicizzato. I comuni ingranaggi del motore dell'estrusore BMG ne sono un esempio: sono pubblicizzati come \"3:1\" ma in realt\u00e0 utilizzano ingranaggi \"50:17\". (L'uso di numeri di denti senza un denominatore comune pu\u00f2 migliorare l'usura complessiva degli ingranaggi poich\u00e9 i denti non sempre ingranano allo stesso modo ad ogni giro.) Il comune \"riduttore epicicloidale 5.18:1\" \u00e8 configurato in modo pi\u00f9 accurato con gear_ratio: 57:11 . Se su un asse vengono utilizzati pi\u00f9 ingranaggi, \u00e8 possibile fornire un elenco separato da virgole nel gear_ratio. Ad esempio, un cambio \"5:1\" che guida una puleggia da 16 a 80 denti potrebbe utilizzare gear_ratio: 5:1, 80:16 . Nella maggior parte dei casi, gear_ratio dovrebbe essere definito con numeri interi poich\u00e9 ingranaggi e pulegge comuni hanno un numero intero di denti su di essi. Tuttavia, nei casi in cui una cinghia aziona una puleggia usando l'attrito invece dei denti, pu\u00f2 avere senso utilizzare un numero in virgola mobile nel rapporto di trasmissione (ad esempio, gear_ratio: 107.237:16 ).","title":"Usando un gear_ratio"},{"location":"SDCard_Updates.html","text":"Aggiornamenti scheda SD \u00b6 Molte delle schede controller oggi popolari vengono fornite con un bootloader in grado di aggiornare il firmware tramite scheda SD. Sebbene ci\u00f2 sia conveniente in molte circostanze, questi bootloader in genere non forniscono altro modo per aggiornare il firmware. Questo pu\u00f2 essere un fastidio se la tua scheda \u00e8 montata in una posizione di difficile accesso o se devi aggiornare spesso il firmware. Dopo che Klipper \u00e8 stato inizialmente flashato su un controller, \u00e8 possibile trasferire il nuovo firmware sulla scheda SD e avviare la procedura di flashing tramite ssh. Procedura di aggiornamento tipica \u00b6 La procedura per aggiornare il firmware dell'MCU utilizzando la scheda SD \u00e8 simile a quella di altri metodi. Invece di usare make flash \u00e8 necessario eseguire uno script di supporto, flash-sdcard.sh . L'aggiornamento di un BigTreeTech SKR 1.3 potrebbe essere simile al seguente: sudo service klipper stop cd ~/klipper git pull make clean make menuconfig make ./scripts/flash-sdcard.sh /dev/ttyACM0 btt-skr-v1.3 sudo service klipper start Spetta all'utente determinare la posizione del dispositivo e il nome della scheda. Se un utente ha bisogno di eseguire il flashing di pi\u00f9 schede, flash-sdcard.sh (o make flash se appropriato) dovrebbe essere eseguito per ciascuna scheda prima di riavviare il servizio Klipper. Le schede supportate possono essere elencate con il seguente comando: ./scripts/flash-sdcard.sh -l Se non vedi la tua scheda elencata, potrebbe essere necessario aggiungere una nuova definizione di scheda come descritto di seguito . Utilizzo avanzato \u00b6 I comandi precedenti presuppongono che l'MCU si connetta alla velocit\u00e0 di trasmissione predefinita di 250000 e che il firmware si trovi in ~/klipper/out/klipper.bin . Lo script flash-sdcard.sh fornisce opzioni per modificare queste impostazioni predefinite. Tutte le opzioni possono essere visualizzate dalla schermata della guida: ./scripts/flash-sdcard.sh -h SD Card upload utility for Klipper usage: flash_sdcard.sh [-h] [-l] [-c] [-b <baud>] [-f <firmware>] <device> <board> positional arguments: <device> device serial port <board> board type optional arguments: -h show this message -l list available boards -c run flash check/verify only (skip upload) -b <baud> serial baud rate (default is 250000) -f <firmware> path to klipper.bin Se la tua scheda \u00e8 stata flashata con un firmware che si connette a un baud rate personalizzato, \u00e8 possibile eseguire l'aggiornamento specificando l'opzione -b : ./scripts/flash-sdcard.sh -b 115200 /dev/ttyAMA0 btt-skr-v1.3 Se desideri eseguire il flashing di una build di Klipper situata in un luogo diverso da quello predefinito, puoi farlo specificando l'opzione -f : ./scripts/flash-sdcard.sh -f ~/downloads/klipper.bin /dev/ttyAMA0 btt-skr-v1.3 Nota che quando si aggiorna un MKS Robin E3 non \u00e8 necessario eseguire manualmente update_mks_robin.py e fornire il binario risultante a flash-sdcard.sh . Questa procedura \u00e8 automatizzata durante il processo di caricamento. L'opzione -c viene utilizzata per eseguire un controllo o un'operazione di sola verifica per testare se la scheda esegue correttamente il firmware specificato. Questa opzione \u00e8 destinata principalmente ai casi in cui \u00e8 necessario un ciclo di alimentazione manuale per completare la procedura di flashing, ad esempio con i bootloader che utilizzano la modalit\u00e0 SDIO anzich\u00e9 SPI per accedere alle proprie schede SD. (Vedi avvertenze di seguito) Ma pu\u00f2 anche essere utilizzato in qualsiasi momento per verificare se il codice visualizzato nella scheda corrisponde alla versione nella cartella build su qualsiasi scheda supportata. Avvertenze \u00b6 Come accennato nell'introduzione, questo metodo funziona solo per l'aggiornamento del firmware. La procedura di flashing iniziale deve essere eseguita manualmente secondo le istruzioni che si applicano alla scheda del controller. Sebbene sia possibile eseguire il flashing di una build che modifica il baud seriale o l'interfaccia di connessione (ad esempio: da USB a UART), la verifica avr\u00e0 sempre esito negativo poich\u00e9 lo script non sar\u00e0 in grado di riconnettersi all'MCU per verificare la versione corrente. Sono supportate solo le schede che utilizzano SPI per la comunicazione con scheda SD. Le schede che utilizzano SDIO, come Flymaker Flyboard e MKS Robin Nano V1/V2, non funzioneranno in modalit\u00e0 SDIO. Tuttavia, di solito \u00e8 possibile eseguire il flashing di tali schede utilizzando invece la modalit\u00e0 Software SPI. Ma se il bootloader della scheda utilizza solo la modalit\u00e0 SDIO per accedere alla scheda SD, sar\u00e0 necessario un ciclo di alimentazione della scheda e della scheda SD in modo che la modalit\u00e0 possa tornare da SPI a SDIO per completare il reflashing. Tali schede dovrebbero essere definite con skip_verify abilitato per saltare il passaggio di verifica immediatamente dopo il flashing. Quindi, dopo il ciclo di spegnimento manuale, \u00e8 possibile eseguire nuovamente lo stesso identico comando ./scripts/flash-sdcard.sh , ma aggiungere l'opzione -c per completare l'operazione di controllo/verifica. Vedere Flashing Boards that use SDIO per esempi. Definizioni della scheda \u00b6 Dovrebbero essere disponibili le schede pi\u00f9 comuni, tuttavia \u00e8 possibile aggiungere una nuova definizione di scheda, se necessario. Le definizioni delle schede si trovano in ~/klipper/scripts/spi_flash/board_defs.py . Le definizioni sono memorizzate nel dizionario, ad esempio: BOARD_DEFS = { 'generic-lpc1768' : { 'mcu' : \"lpc1768\" , 'spi_bus' : \"ssp1\" , \"cs_pin\" : \"P0.6\" }, ...< further definitions > } Possono essere specificati i seguenti campi: mcu : il tipo di mcu. Questo pu\u00f2 essere recuperato dopo aver configurato la build tramite make menuconfig eseguendo cat .config | grep CONFIG_MCU . Questo campo \u00e8 obbligatorio. spi_bus : il bus SPI collegato alla scheda SD. Questo dovrebbe essere recuperato dallo schema della scheda. Questo campo \u00e8 obbligatorio. cs_pin : il pin di selezione del chip collegato alla scheda SD. Questo dovrebbe essere recuperato dallo schema della scheda. Questo campo \u00e8 obbligatorio. firmware_path : il percorso sulla scheda SD in cui trasferire il firmware. L'impostazione predefinita \u00e8 firmware.bin . current_firmware_path : il percorso sulla scheda SD in cui si trova il file del firmware rinominato dopo un flash riuscito. L'impostazione predefinita \u00e8 'firmware.cur'. skip_verify : Definisce un valore booleano che dice agli script di saltare il passaggio di verifica del firmware durante il processo di flashing. L'impostazione predefinita \u00e8 False . Pu\u00f2 essere impostato su True per le schede che richiedono un ciclo di alimentazione manuale per completare il flashing. Per verificare il firmware in seguito, eseguire nuovamente lo script con l'opzione -c per eseguire lo step di verifica. Vedi le avvertenze con le schede SDIO Se \u00e8 richiesto il software SPI, il campo spi_bus deve essere impostato su swspi e deve essere specificato il seguente campo aggiuntivo: spi_pins : Dovrebbero essere 3 pin separati da virgola che sono collegati alla scheda SD nel formato miso,mosi,sclk`. Dovrebbe essere estremamente raro che sia necessario Software SPI, in genere solo le schede con errori di progettazione o le schede che normalmente supportano solo la modalit\u00e0 SDIO per la loro scheda SD lo richiederanno. La definizione della scheda btt-skr-pro fornisce un esempio della prima, e la definizione della scheda btt-octopus-f446-v1 fornisce un esempio della seconda. Prima di creare una nuova definizione di scheda, \u00e8 necessario verificare se una definizione di scheda esistente soddisfa i criteri necessari per la nuova scheda. Se questo \u00e8 il caso, pu\u00f2 essere specificato un BOARD_ALIAS . Ad esempio, \u00e8 possibile aggiungere il seguente alias per specificare my-new-board come alias per generic-lpc1768 : BOARD_ALIASES = { ...< previous aliases > , 'my-new-board' : BOARD_DEFS [ 'generic-lpc1768' ], } Se hai bisogno di una nuova definizione di scheda e ti senti a disagio con la procedura descritta sopra, ti consigliamo di rivolgerti a Klipper Community Discord . Flashing di schede che utilizzano SDIO \u00b6 Come menzionato nelle avvertenze , le schede il cui bootloader utilizza la modalit\u00e0 SDIO per accedere alla scheda SD richiedono un ciclo di alimentazione della scheda, e in particolare della scheda SD stessa, per passare dalla modalit\u00e0 SPI utilizzata durante la scrittura il file sulla scheda SD di nuovo in modalit\u00e0 SDIO affinch\u00e9 il bootloader lo inserisca nella scheda. Queste definizioni della scheda utilizzeranno il flag skip_verify , che indica allo strumento di flashing di interrompersi dopo aver scritto il firmware sulla scheda SD in modo che la scheda possa essere spenta e riaccesa manualmente e il passaggio di verifica posticipato fino al completamento. Esistono due scenari -- uno con l'host RPi in esecuzione su un alimentatore separato e l'altro quando l'host RPi \u00e8 in esecuzione con lo stesso alimentatore della scheda principale sottoposta a flashing. La differenza \u00e8 se \u00e8 necessario o meno spegnere anche l'RPi e quindi ssh di nuovo dopo che il flashing \u00e8 completo per eseguire il passaggio di verifica, o se la verifica pu\u00f2 essere eseguita immediatamente. Ecco alcuni esempi dei due scenari: Programmazione SDIO con RPi su alimentazione separata \u00b6 Una sessione tipica con l'RPi su un alimentatore separato \u00e8 simile alla seguente. Ovviamente, dovrai utilizzare il percorso del dispositivo e il nome della scheda corretti: sudo service klipper stop cd ~/klipper git pull make clean make menuconfig make ./scripts/flash-sdcard.sh /dev/ttyACM0 btt-octopus-f446-v1 [[[manually power-cycle the printer board here when instructed]]] ./scripts/flash-sdcard.sh -c /dev/ttyACM0 btt-octopus-f446-v1 sudo service klipper start Programmazione SDIO con RPi sullo stesso alimentatore \u00b6 Una sessione tipica con l'RPi sullo stesso alimentatore \u00e8 simile alla seguente. Ovviamente, dovrai utilizzare il percorso del dispositivo e il nome della scheda corretti: sudo service klipper stop cd ~/klipper git pull make clean make menuconfig make ./scripts/flash-sdcard.sh /dev/ttyACM0 btt-octopus-f446-v1 sudo shutdown -h now [[[wait for the RPi to shutdown, then power-cycle and ssh again to the RPi when it restarts]]] sudo service klipper stop cd ~/klipper ./scripts/flash-sdcard.sh -c /dev/ttyACM0 btt-octopus-f446-v1 sudo service klipper start In questo caso, poich\u00e9 \u00e8 in corso il riavvio dell'RPi Host, che riavvier\u00e0 il servizio klipper , \u00e8 necessario arrestare nuovamente klipper prima di eseguire il passaggio di verifica e riavviarlo al termine della verifica. Mappatura pin da SDIO a SPI \u00b6 Se lo schema della tua scheda utilizza SDIO per la sua scheda SD, puoi mappare i pin come descritto nella tabella seguente per determinare i pin SPI del software compatibili da assegnare nel file board_defs.py : Pin della scheda SD Pin della scheda micro SD Nome PIN SDIO Nome Pin SPI 9 1 DATA2 None (PU)* 1 2 CD/DATA3 CS 2 3 CMD MOSI 4 4 +3.3V (VDD) +3.3V (VDD) 5 5 CLK SCLK 3 6 GND (VSS) GND (VSS) 7 7 DATA0 MISO 8 8 DATA1 None (PU)* N/A 9 Card Detect (CD) Card Detect (CD) 6 10 GND GND * None (PU) indica un pin inutilizzato con una resistenza di pull-up","title":"Aggiornamenti scheda SD"},{"location":"SDCard_Updates.html#aggiornamenti-scheda-sd","text":"Molte delle schede controller oggi popolari vengono fornite con un bootloader in grado di aggiornare il firmware tramite scheda SD. Sebbene ci\u00f2 sia conveniente in molte circostanze, questi bootloader in genere non forniscono altro modo per aggiornare il firmware. Questo pu\u00f2 essere un fastidio se la tua scheda \u00e8 montata in una posizione di difficile accesso o se devi aggiornare spesso il firmware. Dopo che Klipper \u00e8 stato inizialmente flashato su un controller, \u00e8 possibile trasferire il nuovo firmware sulla scheda SD e avviare la procedura di flashing tramite ssh.","title":"Aggiornamenti scheda SD"},{"location":"SDCard_Updates.html#procedura-di-aggiornamento-tipica","text":"La procedura per aggiornare il firmware dell'MCU utilizzando la scheda SD \u00e8 simile a quella di altri metodi. Invece di usare make flash \u00e8 necessario eseguire uno script di supporto, flash-sdcard.sh . L'aggiornamento di un BigTreeTech SKR 1.3 potrebbe essere simile al seguente: sudo service klipper stop cd ~/klipper git pull make clean make menuconfig make ./scripts/flash-sdcard.sh /dev/ttyACM0 btt-skr-v1.3 sudo service klipper start Spetta all'utente determinare la posizione del dispositivo e il nome della scheda. Se un utente ha bisogno di eseguire il flashing di pi\u00f9 schede, flash-sdcard.sh (o make flash se appropriato) dovrebbe essere eseguito per ciascuna scheda prima di riavviare il servizio Klipper. Le schede supportate possono essere elencate con il seguente comando: ./scripts/flash-sdcard.sh -l Se non vedi la tua scheda elencata, potrebbe essere necessario aggiungere una nuova definizione di scheda come descritto di seguito .","title":"Procedura di aggiornamento tipica"},{"location":"SDCard_Updates.html#utilizzo-avanzato","text":"I comandi precedenti presuppongono che l'MCU si connetta alla velocit\u00e0 di trasmissione predefinita di 250000 e che il firmware si trovi in ~/klipper/out/klipper.bin . Lo script flash-sdcard.sh fornisce opzioni per modificare queste impostazioni predefinite. Tutte le opzioni possono essere visualizzate dalla schermata della guida: ./scripts/flash-sdcard.sh -h SD Card upload utility for Klipper usage: flash_sdcard.sh [-h] [-l] [-c] [-b <baud>] [-f <firmware>] <device> <board> positional arguments: <device> device serial port <board> board type optional arguments: -h show this message -l list available boards -c run flash check/verify only (skip upload) -b <baud> serial baud rate (default is 250000) -f <firmware> path to klipper.bin Se la tua scheda \u00e8 stata flashata con un firmware che si connette a un baud rate personalizzato, \u00e8 possibile eseguire l'aggiornamento specificando l'opzione -b : ./scripts/flash-sdcard.sh -b 115200 /dev/ttyAMA0 btt-skr-v1.3 Se desideri eseguire il flashing di una build di Klipper situata in un luogo diverso da quello predefinito, puoi farlo specificando l'opzione -f : ./scripts/flash-sdcard.sh -f ~/downloads/klipper.bin /dev/ttyAMA0 btt-skr-v1.3 Nota che quando si aggiorna un MKS Robin E3 non \u00e8 necessario eseguire manualmente update_mks_robin.py e fornire il binario risultante a flash-sdcard.sh . Questa procedura \u00e8 automatizzata durante il processo di caricamento. L'opzione -c viene utilizzata per eseguire un controllo o un'operazione di sola verifica per testare se la scheda esegue correttamente il firmware specificato. Questa opzione \u00e8 destinata principalmente ai casi in cui \u00e8 necessario un ciclo di alimentazione manuale per completare la procedura di flashing, ad esempio con i bootloader che utilizzano la modalit\u00e0 SDIO anzich\u00e9 SPI per accedere alle proprie schede SD. (Vedi avvertenze di seguito) Ma pu\u00f2 anche essere utilizzato in qualsiasi momento per verificare se il codice visualizzato nella scheda corrisponde alla versione nella cartella build su qualsiasi scheda supportata.","title":"Utilizzo avanzato"},{"location":"SDCard_Updates.html#avvertenze","text":"Come accennato nell'introduzione, questo metodo funziona solo per l'aggiornamento del firmware. La procedura di flashing iniziale deve essere eseguita manualmente secondo le istruzioni che si applicano alla scheda del controller. Sebbene sia possibile eseguire il flashing di una build che modifica il baud seriale o l'interfaccia di connessione (ad esempio: da USB a UART), la verifica avr\u00e0 sempre esito negativo poich\u00e9 lo script non sar\u00e0 in grado di riconnettersi all'MCU per verificare la versione corrente. Sono supportate solo le schede che utilizzano SPI per la comunicazione con scheda SD. Le schede che utilizzano SDIO, come Flymaker Flyboard e MKS Robin Nano V1/V2, non funzioneranno in modalit\u00e0 SDIO. Tuttavia, di solito \u00e8 possibile eseguire il flashing di tali schede utilizzando invece la modalit\u00e0 Software SPI. Ma se il bootloader della scheda utilizza solo la modalit\u00e0 SDIO per accedere alla scheda SD, sar\u00e0 necessario un ciclo di alimentazione della scheda e della scheda SD in modo che la modalit\u00e0 possa tornare da SPI a SDIO per completare il reflashing. Tali schede dovrebbero essere definite con skip_verify abilitato per saltare il passaggio di verifica immediatamente dopo il flashing. Quindi, dopo il ciclo di spegnimento manuale, \u00e8 possibile eseguire nuovamente lo stesso identico comando ./scripts/flash-sdcard.sh , ma aggiungere l'opzione -c per completare l'operazione di controllo/verifica. Vedere Flashing Boards that use SDIO per esempi.","title":"Avvertenze"},{"location":"SDCard_Updates.html#definizioni-della-scheda","text":"Dovrebbero essere disponibili le schede pi\u00f9 comuni, tuttavia \u00e8 possibile aggiungere una nuova definizione di scheda, se necessario. Le definizioni delle schede si trovano in ~/klipper/scripts/spi_flash/board_defs.py . Le definizioni sono memorizzate nel dizionario, ad esempio: BOARD_DEFS = { 'generic-lpc1768' : { 'mcu' : \"lpc1768\" , 'spi_bus' : \"ssp1\" , \"cs_pin\" : \"P0.6\" }, ...< further definitions > } Possono essere specificati i seguenti campi: mcu : il tipo di mcu. Questo pu\u00f2 essere recuperato dopo aver configurato la build tramite make menuconfig eseguendo cat .config | grep CONFIG_MCU . Questo campo \u00e8 obbligatorio. spi_bus : il bus SPI collegato alla scheda SD. Questo dovrebbe essere recuperato dallo schema della scheda. Questo campo \u00e8 obbligatorio. cs_pin : il pin di selezione del chip collegato alla scheda SD. Questo dovrebbe essere recuperato dallo schema della scheda. Questo campo \u00e8 obbligatorio. firmware_path : il percorso sulla scheda SD in cui trasferire il firmware. L'impostazione predefinita \u00e8 firmware.bin . current_firmware_path : il percorso sulla scheda SD in cui si trova il file del firmware rinominato dopo un flash riuscito. L'impostazione predefinita \u00e8 'firmware.cur'. skip_verify : Definisce un valore booleano che dice agli script di saltare il passaggio di verifica del firmware durante il processo di flashing. L'impostazione predefinita \u00e8 False . Pu\u00f2 essere impostato su True per le schede che richiedono un ciclo di alimentazione manuale per completare il flashing. Per verificare il firmware in seguito, eseguire nuovamente lo script con l'opzione -c per eseguire lo step di verifica. Vedi le avvertenze con le schede SDIO Se \u00e8 richiesto il software SPI, il campo spi_bus deve essere impostato su swspi e deve essere specificato il seguente campo aggiuntivo: spi_pins : Dovrebbero essere 3 pin separati da virgola che sono collegati alla scheda SD nel formato miso,mosi,sclk`. Dovrebbe essere estremamente raro che sia necessario Software SPI, in genere solo le schede con errori di progettazione o le schede che normalmente supportano solo la modalit\u00e0 SDIO per la loro scheda SD lo richiederanno. La definizione della scheda btt-skr-pro fornisce un esempio della prima, e la definizione della scheda btt-octopus-f446-v1 fornisce un esempio della seconda. Prima di creare una nuova definizione di scheda, \u00e8 necessario verificare se una definizione di scheda esistente soddisfa i criteri necessari per la nuova scheda. Se questo \u00e8 il caso, pu\u00f2 essere specificato un BOARD_ALIAS . Ad esempio, \u00e8 possibile aggiungere il seguente alias per specificare my-new-board come alias per generic-lpc1768 : BOARD_ALIASES = { ...< previous aliases > , 'my-new-board' : BOARD_DEFS [ 'generic-lpc1768' ], } Se hai bisogno di una nuova definizione di scheda e ti senti a disagio con la procedura descritta sopra, ti consigliamo di rivolgerti a Klipper Community Discord .","title":"Definizioni della scheda"},{"location":"SDCard_Updates.html#flashing-di-schede-che-utilizzano-sdio","text":"Come menzionato nelle avvertenze , le schede il cui bootloader utilizza la modalit\u00e0 SDIO per accedere alla scheda SD richiedono un ciclo di alimentazione della scheda, e in particolare della scheda SD stessa, per passare dalla modalit\u00e0 SPI utilizzata durante la scrittura il file sulla scheda SD di nuovo in modalit\u00e0 SDIO affinch\u00e9 il bootloader lo inserisca nella scheda. Queste definizioni della scheda utilizzeranno il flag skip_verify , che indica allo strumento di flashing di interrompersi dopo aver scritto il firmware sulla scheda SD in modo che la scheda possa essere spenta e riaccesa manualmente e il passaggio di verifica posticipato fino al completamento. Esistono due scenari -- uno con l'host RPi in esecuzione su un alimentatore separato e l'altro quando l'host RPi \u00e8 in esecuzione con lo stesso alimentatore della scheda principale sottoposta a flashing. La differenza \u00e8 se \u00e8 necessario o meno spegnere anche l'RPi e quindi ssh di nuovo dopo che il flashing \u00e8 completo per eseguire il passaggio di verifica, o se la verifica pu\u00f2 essere eseguita immediatamente. Ecco alcuni esempi dei due scenari:","title":"Flashing di schede che utilizzano SDIO"},{"location":"SDCard_Updates.html#programmazione-sdio-con-rpi-su-alimentazione-separata","text":"Una sessione tipica con l'RPi su un alimentatore separato \u00e8 simile alla seguente. Ovviamente, dovrai utilizzare il percorso del dispositivo e il nome della scheda corretti: sudo service klipper stop cd ~/klipper git pull make clean make menuconfig make ./scripts/flash-sdcard.sh /dev/ttyACM0 btt-octopus-f446-v1 [[[manually power-cycle the printer board here when instructed]]] ./scripts/flash-sdcard.sh -c /dev/ttyACM0 btt-octopus-f446-v1 sudo service klipper start","title":"Programmazione SDIO con RPi su alimentazione separata"},{"location":"SDCard_Updates.html#programmazione-sdio-con-rpi-sullo-stesso-alimentatore","text":"Una sessione tipica con l'RPi sullo stesso alimentatore \u00e8 simile alla seguente. Ovviamente, dovrai utilizzare il percorso del dispositivo e il nome della scheda corretti: sudo service klipper stop cd ~/klipper git pull make clean make menuconfig make ./scripts/flash-sdcard.sh /dev/ttyACM0 btt-octopus-f446-v1 sudo shutdown -h now [[[wait for the RPi to shutdown, then power-cycle and ssh again to the RPi when it restarts]]] sudo service klipper stop cd ~/klipper ./scripts/flash-sdcard.sh -c /dev/ttyACM0 btt-octopus-f446-v1 sudo service klipper start In questo caso, poich\u00e9 \u00e8 in corso il riavvio dell'RPi Host, che riavvier\u00e0 il servizio klipper , \u00e8 necessario arrestare nuovamente klipper prima di eseguire il passaggio di verifica e riavviarlo al termine della verifica.","title":"Programmazione SDIO con RPi sullo stesso alimentatore"},{"location":"SDCard_Updates.html#mappatura-pin-da-sdio-a-spi","text":"Se lo schema della tua scheda utilizza SDIO per la sua scheda SD, puoi mappare i pin come descritto nella tabella seguente per determinare i pin SPI del software compatibili da assegnare nel file board_defs.py : Pin della scheda SD Pin della scheda micro SD Nome PIN SDIO Nome Pin SPI 9 1 DATA2 None (PU)* 1 2 CD/DATA3 CS 2 3 CMD MOSI 4 4 +3.3V (VDD) +3.3V (VDD) 5 5 CLK SCLK 3 6 GND (VSS) GND (VSS) 7 7 DATA0 MISO 8 8 DATA1 None (PU)* N/A 9 Card Detect (CD) Card Detect (CD) 6 10 GND GND * None (PU) indica un pin inutilizzato con una resistenza di pull-up","title":"Mappatura pin da SDIO a SPI"},{"location":"Skew_Correction.html","text":"Correzione dell'inclinazione \u00b6 La correzione dell'inclinazione basata su software pu\u00f2 aiutare a risolvere le imprecisioni dimensionali risultanti da un gruppo stampante non perfettamente in squadrato. Si noti che se la stampante \u00e8 notevolmente inclinata, si consiglia vivamente di utilizzare prima mezzi meccanici per ottenere la stampante il pi\u00f9 squadrata possibile prima di applicare la correzione basata sul software. Stampa un oggetto di calibrazione \u00b6 Il primo passaggio per correggere l'inclinazione \u00e8 stampare un calibration object lungo il piano che si desidera correggere. C'\u00e8 anche un calibration object che include tutti i piani in un modello. Vuoi che l'oggetto sia orientato in modo che l'angolo A sia verso l'origine del piano. Assicurarsi che durante questa stampa non venga applicata alcuna correzione dell'inclinazione. Puoi farlo rimuovendo il modulo [skew_correction] da printer.cfg o inserendo un gcode SET_SKEW CLEAR=1 . Prendi le tue misure \u00b6 Il modulo [skew_correcton] richiede 3 misurazioni per ogni piano che vuoi correggere; la lunghezza dall'angolo A all'angolo C, la lunghezza dall'angolo B all'angolo D e la lunghezza dall'angolo A all'angolo D. Quando si misura la lunghezza AD non includere i piani sugli angoli forniti da alcuni oggetti di prova. Configura la tua inclinazione \u00b6 Assicurati che la sezione [skew_correction] sia in printer.cfg. Ora puoi usare il gcode SET_SKEW per configurare skew_correcton. Ad esempio, se le lunghezze misurate lungo XY sono le seguenti: Length AC = 140.4 Length BD = 142.8 Length AD = 99.8 SET_SKEW pu\u00f2 essere utilizzato per configurare la correzione dell'inclinazione per il piano XY. SET_SKEW XY=140.4,142.8,99.8 Puoi anche aggiungere misure per XZ e YZ al gcode: SET_SKEW XY=140.4,142.8,99.8 XZ=141.6,141.4,99.8 YZ=142.4,140.5,99.5 Il modulo [skew_correction] supporta anche la gestione del profilo in un modo simile a [bed_mesh] . Dopo aver impostato l'inclinazione usando il gcode SET_SKEW , puoi usare il gcode SKEW_PROFILE per salvarlo: SKEW_PROFILE SAVE=my_skew_profile Dopo questo comando ti verr\u00e0 chiesto di emettere un gcode SAVE_CONFIG per salvare il profilo nella memoria permanente. Se nessun profilo \u00e8 denominato my_skew_profile , verr\u00e0 creato un nuovo profilo. Se il profilo indicato esiste, verr\u00e0 sovrascritto. Una volta che hai un profilo salvato, puoi caricarlo: SKEW_PROFILE LOAD=my_skew_profile \u00c8 anche possibile rimuovere un profilo vecchio o superato: SKEW_PROFILE REMOVE=my_skew_profile Dopo aver rimosso un profilo, ti verr\u00e0 chiesto di emettere un SAVE_CONFIG per far s\u00ec che questa modifica persista. Verifica della tua correzione \u00b6 Dopo aver configurato skew_correction \u00e8 possibile ristampare la parte di calibrazione con la correzione abilitata. Usa il seguente gcode per controllare la tua inclinazione su ciascun piano. I risultati dovrebbero essere inferiori a quelli riportati tramite GET_CURRENT_SKEW . CALC_MEASURED_SKEW AC=<ac_length> BD=<bd_length> AD=<ad_length> Avvertenze \u00b6 A causa della natura della correzione dell'inclinazione, si consiglia di configurare l'inclinazione nel codice g iniziale, dopo l'homing e qualsiasi tipo di movimento che si sposta vicino al bordo dell'area di stampa, come uno spurgo o una pulizia degli ugelli. \u00c8 possibile utilizzare i codici g \"SET_SKEW\" o \"SKEW_PROFILE\" per ottenere ci\u00f2. Si consiglia inoltre di emettere un SET_SKEW CLEAR=1 alla fine del gcode. Tenere presente che \u00e8 possibile che [skew_correction] generi una correzione che sposti la testa oltre i limiti della stampante sugli assi X e/o Y. Si consiglia di disporre le parti lontano dai bordi quando si utilizza [skew_correction] .","title":"Correzione dell'inclinazione"},{"location":"Skew_Correction.html#correzione-dellinclinazione","text":"La correzione dell'inclinazione basata su software pu\u00f2 aiutare a risolvere le imprecisioni dimensionali risultanti da un gruppo stampante non perfettamente in squadrato. Si noti che se la stampante \u00e8 notevolmente inclinata, si consiglia vivamente di utilizzare prima mezzi meccanici per ottenere la stampante il pi\u00f9 squadrata possibile prima di applicare la correzione basata sul software.","title":"Correzione dell'inclinazione"},{"location":"Skew_Correction.html#stampa-un-oggetto-di-calibrazione","text":"Il primo passaggio per correggere l'inclinazione \u00e8 stampare un calibration object lungo il piano che si desidera correggere. C'\u00e8 anche un calibration object che include tutti i piani in un modello. Vuoi che l'oggetto sia orientato in modo che l'angolo A sia verso l'origine del piano. Assicurarsi che durante questa stampa non venga applicata alcuna correzione dell'inclinazione. Puoi farlo rimuovendo il modulo [skew_correction] da printer.cfg o inserendo un gcode SET_SKEW CLEAR=1 .","title":"Stampa un oggetto di calibrazione"},{"location":"Skew_Correction.html#prendi-le-tue-misure","text":"Il modulo [skew_correcton] richiede 3 misurazioni per ogni piano che vuoi correggere; la lunghezza dall'angolo A all'angolo C, la lunghezza dall'angolo B all'angolo D e la lunghezza dall'angolo A all'angolo D. Quando si misura la lunghezza AD non includere i piani sugli angoli forniti da alcuni oggetti di prova.","title":"Prendi le tue misure"},{"location":"Skew_Correction.html#configura-la-tua-inclinazione","text":"Assicurati che la sezione [skew_correction] sia in printer.cfg. Ora puoi usare il gcode SET_SKEW per configurare skew_correcton. Ad esempio, se le lunghezze misurate lungo XY sono le seguenti: Length AC = 140.4 Length BD = 142.8 Length AD = 99.8 SET_SKEW pu\u00f2 essere utilizzato per configurare la correzione dell'inclinazione per il piano XY. SET_SKEW XY=140.4,142.8,99.8 Puoi anche aggiungere misure per XZ e YZ al gcode: SET_SKEW XY=140.4,142.8,99.8 XZ=141.6,141.4,99.8 YZ=142.4,140.5,99.5 Il modulo [skew_correction] supporta anche la gestione del profilo in un modo simile a [bed_mesh] . Dopo aver impostato l'inclinazione usando il gcode SET_SKEW , puoi usare il gcode SKEW_PROFILE per salvarlo: SKEW_PROFILE SAVE=my_skew_profile Dopo questo comando ti verr\u00e0 chiesto di emettere un gcode SAVE_CONFIG per salvare il profilo nella memoria permanente. Se nessun profilo \u00e8 denominato my_skew_profile , verr\u00e0 creato un nuovo profilo. Se il profilo indicato esiste, verr\u00e0 sovrascritto. Una volta che hai un profilo salvato, puoi caricarlo: SKEW_PROFILE LOAD=my_skew_profile \u00c8 anche possibile rimuovere un profilo vecchio o superato: SKEW_PROFILE REMOVE=my_skew_profile Dopo aver rimosso un profilo, ti verr\u00e0 chiesto di emettere un SAVE_CONFIG per far s\u00ec che questa modifica persista.","title":"Configura la tua inclinazione"},{"location":"Skew_Correction.html#verifica-della-tua-correzione","text":"Dopo aver configurato skew_correction \u00e8 possibile ristampare la parte di calibrazione con la correzione abilitata. Usa il seguente gcode per controllare la tua inclinazione su ciascun piano. I risultati dovrebbero essere inferiori a quelli riportati tramite GET_CURRENT_SKEW . CALC_MEASURED_SKEW AC=<ac_length> BD=<bd_length> AD=<ad_length>","title":"Verifica della tua correzione"},{"location":"Skew_Correction.html#avvertenze","text":"A causa della natura della correzione dell'inclinazione, si consiglia di configurare l'inclinazione nel codice g iniziale, dopo l'homing e qualsiasi tipo di movimento che si sposta vicino al bordo dell'area di stampa, come uno spurgo o una pulizia degli ugelli. \u00c8 possibile utilizzare i codici g \"SET_SKEW\" o \"SKEW_PROFILE\" per ottenere ci\u00f2. Si consiglia inoltre di emettere un SET_SKEW CLEAR=1 alla fine del gcode. Tenere presente che \u00e8 possibile che [skew_correction] generi una correzione che sposti la testa oltre i limiti della stampante sugli assi X e/o Y. Si consiglia di disporre le parti lontano dai bordi quando si utilizza [skew_correction] .","title":"Avvertenze"},{"location":"Slicers.html","text":"slicer \u00b6 Questo documento fornisce alcuni suggerimenti per configurare un'applicazione \"slicer\" da usare con Klipper. Gli slicer comuni usati con Klipper sono Slic3r, Cura, Simplify3D, ecc. Imposta il Gcode su variante Marlin \u00b6 Molti slicer hanno un'opzione per configurare il \"gusto G-Code\" o G-Code flavor. L'impostazione predefinita \u00e8 spesso \"Marlin\" e funziona bene con Klipper. L'impostazione \"Smoothieware\" funziona bene anche con Klipper. Klipper gcode_macro \u00b6 Gli slicer spesso consentono di configurare le sequenze \"Start G-Code\" e \"End G-Code\". Spesso \u00e8 invece conveniente definire macro personalizzate nel file di configurazione di Klipper, come ad esempio: [gcode_macro START_PRINT] e [gcode_macro END_PRINT] . Quindi puoi semplicemente eseguire START_PRINT e END_PRINT nella configurazione dello slicer. La definizione di queste azioni nella configurazione di Klipper pu\u00f2 rendere pi\u00f9 semplice modificare i passaggi iniziali e finali della stampante poich\u00e9 le modifiche non richiedono il re-slicing. Vedere sample-macros.cfg ad esempio le macro START_PRINT e END_PRINT. Vedere il config reference per i dettagli sulla definizione di una macro gcode. Impostazioni di retrazione di grandi dimensioni potrebbero richiedere la messa a punto di Klipper \u00b6 La velocit\u00e0 massima e l'accelerazione dei movimenti di ritrazione sono controllate in Klipper dalle impostazioni di configurazione max_extrude_only_velocity e max_extrude_only_accel . Queste impostazioni hanno un valore predefinito che dovrebbe funzionare bene su molte stampanti. Tuttavia, se si \u00e8 configurata una grande retrazione nello slicer (ad es. 5 mm o superiore), \u00e8 possibile che limitino la velocit\u00e0 di retrazione desiderata. Se si utilizza una grande retrazione, prendere in considerazione l'ottimizzazione di pressure advance di Klipper. Altrimenti, se si scopre che la testa di stampa sembra \"mettersi in pausa\" durante la retrazione e il priming, allora considerare di definire esplicitamente max_extrude_only_velocity e max_extrude_only_accel nel file di configurazione di Klipper. Non abilitare \"coasting\" -costeggiando- \u00b6 \u00c8 probabile che la funzione \"coasting\" si traduca in stampe di scarsa qualit\u00e0 con Klipper. Prendi in considerazione l'utilizzo di pressure advance di Klipper. In particolare, se lo slicer cambia drasticamente la velocit\u00e0 di estrusione tra i movimenti, Klipper eseguir\u00e0 la decelerazione e l'accelerazione tra i movimenti. \u00c8 probabile che questo renda il blobbing peggiore, non migliore. Al contrario, va bene (e spesso utile) utilizzare l'impostazione ritiro \"retract\" , l'impostazione pulire \"wipe\" e/o l'impostazione pulire alla retrazione \"wipe on retract\". Non utilizzare la \"distanza di riavvio extra\"- \"extra restart distance\"su Simplify3d \u00b6 Questa impostazione pu\u00f2 causare cambiamenti radicali alle velocit\u00e0 di estrusione che possono attivare il controllo della sezione trasversale di estrusione massima di Klipper. Prendi in considerazione l'utilizzo dell' pressure advance di Klipper o della normale impostazione di retrazione Simplify3d. Disabilita \"PreloadVE\" su KISSlicer \u00b6 Se si utilizza il software di slicing KISSlicer, impostare \"PreloadVE\" su zero. Prendi in considerazione l'utilizzo di pressure advance di Klipper. Disattiva le impostazioni di \"pressione dell'estrusore avanzata\"-\"advanced extruder pressure\" \u00b6 Alcune affettatrici pubblicizzano una capacit\u00e0 di \"pressione dell'estrusore avanzata\" - \"advanced extruder pressure\". Si consiglia di mantenere queste opzioni disabilitate quando si utilizza Klipper poich\u00e9 \u00e8 probabile che si traducano in stampe di scarsa qualit\u00e0. Prendi in considerazione l'utilizzo di pressure advance di Klipper. In particolare, queste impostazioni dello slicer possono indicare al firmware di apportare modifiche alla velocit\u00e0 di estrusione nella speranza che il firmware si avvicini a tali richieste e che la stampante ottenga approssimativamente una pressione dell'estrusore desiderabile. Klipper, tuttavia, utilizza calcoli cinematici e tempi precisi. Quando a Klipper viene comandato di apportare modifiche significative alla velocit\u00e0 di estrusione, pianificher\u00e0 le modifiche corrispondenti a velocit\u00e0, accelerazione e movimento dell'estrusore, il che non \u00e8 l'intento dello slicer. Lo slicer pu\u00f2 anche comandare velocit\u00e0 di estrusione eccessive al punto da attivare il controllo della sezione trasversale di estrusione massima di Klipper. Al contrario, va bene (e spesso utile) utilizzare l'impostazione ritiro \"retract\" , l'impostazione pulire \"wipe\" e/o l'impostazione pulire alla retrazione \"wipe on retract\".","title":"slicer"},{"location":"Slicers.html#slicer","text":"Questo documento fornisce alcuni suggerimenti per configurare un'applicazione \"slicer\" da usare con Klipper. Gli slicer comuni usati con Klipper sono Slic3r, Cura, Simplify3D, ecc.","title":"slicer"},{"location":"Slicers.html#imposta-il-gcode-su-variante-marlin","text":"Molti slicer hanno un'opzione per configurare il \"gusto G-Code\" o G-Code flavor. L'impostazione predefinita \u00e8 spesso \"Marlin\" e funziona bene con Klipper. L'impostazione \"Smoothieware\" funziona bene anche con Klipper.","title":"Imposta il Gcode su variante Marlin"},{"location":"Slicers.html#klipper-gcode_macro","text":"Gli slicer spesso consentono di configurare le sequenze \"Start G-Code\" e \"End G-Code\". Spesso \u00e8 invece conveniente definire macro personalizzate nel file di configurazione di Klipper, come ad esempio: [gcode_macro START_PRINT] e [gcode_macro END_PRINT] . Quindi puoi semplicemente eseguire START_PRINT e END_PRINT nella configurazione dello slicer. La definizione di queste azioni nella configurazione di Klipper pu\u00f2 rendere pi\u00f9 semplice modificare i passaggi iniziali e finali della stampante poich\u00e9 le modifiche non richiedono il re-slicing. Vedere sample-macros.cfg ad esempio le macro START_PRINT e END_PRINT. Vedere il config reference per i dettagli sulla definizione di una macro gcode.","title":"Klipper gcode_macro"},{"location":"Slicers.html#impostazioni-di-retrazione-di-grandi-dimensioni-potrebbero-richiedere-la-messa-a-punto-di-klipper","text":"La velocit\u00e0 massima e l'accelerazione dei movimenti di ritrazione sono controllate in Klipper dalle impostazioni di configurazione max_extrude_only_velocity e max_extrude_only_accel . Queste impostazioni hanno un valore predefinito che dovrebbe funzionare bene su molte stampanti. Tuttavia, se si \u00e8 configurata una grande retrazione nello slicer (ad es. 5 mm o superiore), \u00e8 possibile che limitino la velocit\u00e0 di retrazione desiderata. Se si utilizza una grande retrazione, prendere in considerazione l'ottimizzazione di pressure advance di Klipper. Altrimenti, se si scopre che la testa di stampa sembra \"mettersi in pausa\" durante la retrazione e il priming, allora considerare di definire esplicitamente max_extrude_only_velocity e max_extrude_only_accel nel file di configurazione di Klipper.","title":"Impostazioni di retrazione di grandi dimensioni potrebbero richiedere la messa a punto di Klipper"},{"location":"Slicers.html#non-abilitare-coasting-costeggiando-","text":"\u00c8 probabile che la funzione \"coasting\" si traduca in stampe di scarsa qualit\u00e0 con Klipper. Prendi in considerazione l'utilizzo di pressure advance di Klipper. In particolare, se lo slicer cambia drasticamente la velocit\u00e0 di estrusione tra i movimenti, Klipper eseguir\u00e0 la decelerazione e l'accelerazione tra i movimenti. \u00c8 probabile che questo renda il blobbing peggiore, non migliore. Al contrario, va bene (e spesso utile) utilizzare l'impostazione ritiro \"retract\" , l'impostazione pulire \"wipe\" e/o l'impostazione pulire alla retrazione \"wipe on retract\".","title":"Non abilitare \"coasting\" -costeggiando-"},{"location":"Slicers.html#non-utilizzare-la-distanza-di-riavvio-extra-extra-restart-distancesu-simplify3d","text":"Questa impostazione pu\u00f2 causare cambiamenti radicali alle velocit\u00e0 di estrusione che possono attivare il controllo della sezione trasversale di estrusione massima di Klipper. Prendi in considerazione l'utilizzo dell' pressure advance di Klipper o della normale impostazione di retrazione Simplify3d.","title":"Non utilizzare la \"distanza di riavvio extra\"- \"extra restart distance\"su Simplify3d"},{"location":"Slicers.html#disabilita-preloadve-su-kisslicer","text":"Se si utilizza il software di slicing KISSlicer, impostare \"PreloadVE\" su zero. Prendi in considerazione l'utilizzo di pressure advance di Klipper.","title":"Disabilita \"PreloadVE\" su KISSlicer"},{"location":"Slicers.html#disattiva-le-impostazioni-di-pressione-dellestrusore-avanzata-advanced-extruder-pressure","text":"Alcune affettatrici pubblicizzano una capacit\u00e0 di \"pressione dell'estrusore avanzata\" - \"advanced extruder pressure\". Si consiglia di mantenere queste opzioni disabilitate quando si utilizza Klipper poich\u00e9 \u00e8 probabile che si traducano in stampe di scarsa qualit\u00e0. Prendi in considerazione l'utilizzo di pressure advance di Klipper. In particolare, queste impostazioni dello slicer possono indicare al firmware di apportare modifiche alla velocit\u00e0 di estrusione nella speranza che il firmware si avvicini a tali richieste e che la stampante ottenga approssimativamente una pressione dell'estrusore desiderabile. Klipper, tuttavia, utilizza calcoli cinematici e tempi precisi. Quando a Klipper viene comandato di apportare modifiche significative alla velocit\u00e0 di estrusione, pianificher\u00e0 le modifiche corrispondenti a velocit\u00e0, accelerazione e movimento dell'estrusore, il che non \u00e8 l'intento dello slicer. Lo slicer pu\u00f2 anche comandare velocit\u00e0 di estrusione eccessive al punto da attivare il controllo della sezione trasversale di estrusione massima di Klipper. Al contrario, va bene (e spesso utile) utilizzare l'impostazione ritiro \"retract\" , l'impostazione pulire \"wipe\" e/o l'impostazione pulire alla retrazione \"wipe on retract\".","title":"Disattiva le impostazioni di \"pressione dell'estrusore avanzata\"-\"advanced extruder pressure\""},{"location":"Sponsors.html","text":"Sponsors \u00b6 Klipper \u00e8 un software libero. Dipendiamo dal generoso supporto degli sponsor. Considera la possibilit\u00e0 di sponsorizzare Klipper o di supportare i nostri sponsor. BIGTREETECH \u00b6 [ BIGTREETECH \u00e8 lo sponsor ufficiale della scheda madre di Klipper. BIGTREETECH si impegna a sviluppare prodotti innovativi e competitivi per servire meglio la comunit\u00e0 della stampa 3D. Seguili su Facebook o Twitter . Sviluppatori Klipper \u00b6 Kevin O'Connor \u00b6 Kevin \u00e8 l'autore originale e l'attuale manutentore di Klipper. Fai una donazione su: https://ko-fi.com/koconnor o https://www.patreon.com/koconnor Eric Callahan \u00b6 Eric \u00e8 l'autore di bed_mesh, spi_flash e molti altri moduli Klipper. Eric ha una pagina per le donazioni : https://ko-fi.com/arksine Progetti correlati a Klipper \u00b6 Klipper \u00e8 spesso utilizzato con altri software gratuiti. Prendi in considerazione l'utilizzo o il supporto di questi progetti. Moonraker Mainsail Fluidd OctoPrint KlipperScreen","title":"Sponsors"},{"location":"Sponsors.html#sponsors","text":"Klipper \u00e8 un software libero. Dipendiamo dal generoso supporto degli sponsor. Considera la possibilit\u00e0 di sponsorizzare Klipper o di supportare i nostri sponsor.","title":"Sponsors"},{"location":"Sponsors.html#bigtreetech","text":"[ BIGTREETECH \u00e8 lo sponsor ufficiale della scheda madre di Klipper. BIGTREETECH si impegna a sviluppare prodotti innovativi e competitivi per servire meglio la comunit\u00e0 della stampa 3D. Seguili su Facebook o Twitter .","title":"BIGTREETECH"},{"location":"Sponsors.html#sviluppatori-klipper","text":"","title":"Sviluppatori Klipper"},{"location":"Sponsors.html#kevin-oconnor","text":"Kevin \u00e8 l'autore originale e l'attuale manutentore di Klipper. Fai una donazione su: https://ko-fi.com/koconnor o https://www.patreon.com/koconnor","title":"Kevin O'Connor"},{"location":"Sponsors.html#eric-callahan","text":"Eric \u00e8 l'autore di bed_mesh, spi_flash e molti altri moduli Klipper. Eric ha una pagina per le donazioni : https://ko-fi.com/arksine","title":"Eric Callahan"},{"location":"Sponsors.html#progetti-correlati-a-klipper","text":"Klipper \u00e8 spesso utilizzato con altri software gratuiti. Prendi in considerazione l'utilizzo o il supporto di questi progetti. Moonraker Mainsail Fluidd OctoPrint KlipperScreen","title":"Progetti correlati a Klipper"},{"location":"Status_Reference.html","text":"Status reference \u00b6 Questo documento \u00e8 un riferimento alle informazioni sullo stato della stampante disponibili in Klipper macro , display fields e tramite API Server . I campi in questo documento sono soggetti a modifiche: se si utilizza un attributo, assicurarsi di rivedere il documento Modifiche alla configurazione durante l'aggiornamento del software Klipper. angle \u00b6 Le seguenti informazioni sono disponibili negli oggetti angle some_name : temperature : l'ultima lettura della temperatura (in gradi Celsius) da un sensore magnetico Hall tle5012b. Questo valore \u00e8 disponibile solo se il sensore angolare \u00e8 un chip tle5012b e se le misurazioni sono in corso (altrimenti segnala None ). bed_mesh \u00b6 Le seguenti informazioni sono disponibili in bed_mesh : profile_name , mesh_min , mesh_max , probed_matrix , mesh_matrix : informazioni sulla bed_mesh attualmente attiva. profiles : l'insieme dei profili attualmente definiti come setup usando BED_MESH_PROFILE. bed_screws \u00b6 Le seguenti informazioni sono disponibili nell'oggetto Config_Reference.md#bed_screws : is_active : Restituisce True se lo strumento di regolazione delle viti del letto \u00e8 attualmente attivo. state : lo stato dello strumento di regolazione delle viti del piatto. \u00c8 una delle seguenti stringhe: \"adjust\", \"fine\". current_screw : l'indice per la vite corrente in corso di regolazione. accepted_screws : il numero di viti accettate. configfile \u00b6 Le seguenti informazioni sono disponibili nell'oggetto configfile (questo oggetto \u00e8 sempre disponibile): settings.<section>.<option> : Restituisce l'impostazione del file di configurazione data (o il valore predefinito) durante l'ultimo avvio o riavvio del software. (Qualsiasi impostazione modificata in fase di esecuzione non si rifletter\u00e0 qui.) config.<section>.<option> : Restituisce l'impostazione del file di configurazione non elaborato come letta da Klipper durante l'ultimo avvio o riavvio del software. (Qualsiasi impostazione modificata in fase di esecuzione non si rifletter\u00e0 qui.) Tutti i valori vengono restituiti come stringhe. save_config_pending : Restituisce vero se ci sono aggiornamenti che un comando SAVE_CONFIG potrebbe rendere persistenti sul disco. save_config_pending_items : contiene le sezioni e le opzioni che sono state modificate e sarebbero mantenute da un SAVE_CONFIG . warnings : un elenco di avvisi sulle opzioni di configurazione. Ogni voce nell'elenco sar\u00e0 un dizionario contenente un campo type e message (entrambe le stringhe). Ulteriori campi potrebbero essere disponibili a seconda del tipo di avviso. display_status \u00b6 Le seguenti informazioni sono disponibili nell'oggetto display_status (questo oggetto \u00e8 automaticamente disponibile se \u00e8 definita una sezione di configurazione display ): progress : il valore di avanzamento dell'ultimo comando G-Code M73 (o virtual_sdcard.progress se non \u00e8 stato ricevuto alcun M73 recente). message : il messaggio contenuto nell'ultimo comando G-Code M117 . endstop_phase \u00b6 Le seguenti informazioni sono disponibili nell'oggetto endstop_phase : last_home.<nome stepper>.phase : La fase del motore passo-passo al termine dell'ultimo tentativo di home. last_home.<stepper name>.phases : il numero totale di fasi disponibili sul motore passo-passo. last_home.<stepper name>.mcu_position : la posizione (tracciata dal microcontrollore) del motore passo-passo alla fine dell'ultimo tentativo di home. La posizione \u00e8 il numero totale di passi effettuati in avanti meno il numero totale di passi effettuati in senso inverso dall'ultimo riavvio del microcontrollore. exclude_object \u00b6 Le seguenti informazioni sono disponibili nell'oggetto exclude_object : objects : un array di oggetti conosciuti come fornito dal comando EXCLUDE_OBJECT_DEFINE . Queste sono le stesse informazioni fornite dal comando EXCLUDE_OBJECT VERBOSE=1 . I campi center e polygon saranno presenti solo se forniti nell'originale EXCLUDE_OBJECT_DEFINE Ecco un esempio JSON: [ { \"polygon\": [ [ 156.25, 146.2511675 ], [ 156.25, 153.7488325 ], [ 163.75, 153.7488325 ], [ 163.75, 146.2511675 ] ], \"name\": \"CYLINDER_2_STL_ID_2_COPY_0\", \"center\": [ 160, 150 ] }, { \"polygon\": [ [ 146.25, 146.2511675 ], [ 146.25, 153.7488325 ], [ 153.75, 153.7488325 ], [ 153.75, 146.2511675 ] ], \"name\": \"CYLINDER_2_STL_ID_1_COPY_0\", \"center\": [ 150, 150 ] } ] excluded_objects : un array di stringhe che elenca i nomi degli oggetti esclusi. current_object : il nome dell'oggetto attualmente in fase di stampa. extruder_stepper \u00b6 Le seguenti informazioni sono disponibili per gli oggetti extruder_stepper (cos\u00ec come per gli oggetti extruder ): pressure_advance : il valore corrente di pressure advance . smooth_time : il tempo di avanzamento graduale della pressure advance corrente. fan \u00b6 Le seguenti informazioni sono disponibili negli oggetti fan , heater_fan some_name e controller_fan some_name : speed : La velocit\u00e0 della ventola come float tra 0.0 e 1.0. rpm : la velocit\u00e0 della ventola misurata in rotazioni al minuto se la ventola ha un pin tachimetro definito. filament_switch_sensor \u00b6 Le seguenti informazioni sono disponibili negli oggetti filament_switch_sensor some_name : enabled : Restituisce True se il sensore interruttore \u00e8 attualmente abilitato. filament_detected : restituisce True se il sensore \u00e8 in uno stato attivato. filament_motion_sensor \u00b6 Le seguenti informazioni sono disponibili negli oggetti filament_motion_sensor some_name : abilitato : Restituisce True se il sensore di movimento \u00e8 attualmente abilitato. filament_detected : restituisce True se il sensore \u00e8 in uno stato attivato. firmware_retraction \u00b6 Le seguenti informazioni sono disponibili nell'oggetto firmware_retraction : retract_length , retract_speed , unretract_extra_length , unretract_speed : le impostazioni correnti per il modulo firmware_retraction. Queste impostazioni possono differire dal file di configurazione se un comando SET_RETRACTION le altera. gcode_macro \u00b6 Le seguenti informazioni sono disponibili negli oggetti gcode_macro some_name : <variabile> : il valore corrente di una variabile gcode_macro . gcode_move \u00b6 Le seguenti informazioni sono disponibili nell'oggetto gcode_move (questo oggetto \u00e8 sempre disponibile): gcode_position : la posizione corrente della testa di stampa rispetto all'origine del Gcode corrente. Cio\u00e8, posizioni che si potrebbero inviare direttamente a un comando G1 . \u00c8 possibile accedere ai componenti x, y, z ed e di questa posizione (ad esempio, gcode_position.x ). position : l'ultima posizione comandata della testina utilizzando il sistema di coordinate specificato nel file di configurazione. \u00c8 possibile accedere alle componenti x, y, z ed e di questa posizione (ad esempio, position.x ). homing_origin : l'origine del sistema di coordinate gcode (relativo al sistema di coordinate specificato nel file di configurazione) da utilizzare dopo un comando G28 . Il comando SET_GCODE_OFFSET pu\u00f2 alterare questa posizione. \u00c8 possibile accedere ai componenti x, y e z di questa posizione (ad esempio, homing_origin.x ). speed : l'ultima velocit\u00e0 impostata in un comando G1 (in mm/s). speed_factor : La\"speed factor override\" come impostato da un comando M220 . Questo \u00e8 un valore in virgola mobile tale che 1,0 significa nessun override e, ad esempio, 2,0 raddoppierebbe la velocit\u00e0 richiesta. extrude_factor : L'\"extrude factor override\" come impostato da un comando M221 . Questo \u00e8 un valore in virgola mobile tale che 1,0 significa nessun override ad esempio 2,0 raddoppierebbe le estrusioni richieste. absolute_coordinates : restituisce True se in modalit\u00e0 coordinate assolute G90 o False se in modalit\u00e0 relativa G91 . absolute_extrude : restituisce True se in modalit\u00e0 di estrusione assoluta M82 o False se in modalit\u00e0 relativa M83 . hall_filament_width_sensor \u00b6 Le seguenti informazioni sono disponibili nell'oggetto hall_filament_width_sensor : is_active : Restituisce True se il sensore \u00e8 attualmente attivo. Diameter : l'ultima lettura dal sensore in mm. Raw : l'ultima lettura grezza dell'ADC dal sensore. Riscaldatore \u00b6 Le seguenti informazioni sono disponibili per oggetti riscaldatore come extruder , heater_bed e heater_generic : temperature : l'ultima temperatura riportata (in gradi Celsius come float) per il dato riscaldatore. target : la temperatura target attuale (in gradi Celsius come float) per il riscaldatore dato. power : l'ultima impostazione del pin PWM (un valore compreso tra 0.0 e 1.0) associato al riscaldatore. can_extrude : Se l'estrusore pu\u00f2 estrudere (definito da min_extrude_temp ), disponibile solo per extruder Riscaldatori \u00b6 Le seguenti informazioni sono disponibili nell'oggetto heaters (questo oggetto \u00e8 disponibile se \u00e8 definito un riscaldatore): disponibili_riscaldatori : restituisce un elenco di tutti i riscaldatori attualmente disponibili in base ai nomi completi delle sezioni di configurazione, ad es. [\"extruder\", \"heater_bed\", \"heater_generic my_custom_heater\"] . available_sensors : restituisce un elenco di tutti i riscaldatori attualmente disponibili in base ai nomi completi delle sezioni di configurazione, ad es. [\"extruder\", \"heater_bed\", \"heater_generic my_custom_heater\"] . idle_timeout \u00b6 Le seguenti informazioni sono disponibili nell'oggetto idle_timeout (questo oggetto \u00e8 sempre disponibile): state : lo stato corrente della stampante monitorato dal modulo idle_timeout. \u00c8 una delle seguenti stringhe: \"Idle\", \"Printing\", \"Ready\". printing_time : la quantit\u00e0 di tempo (in secondi) in cui la stampante \u00e8 rimasta nello stato \"Printing\" (come tracciato dal modulo idle_timeout). led \u00b6 Le seguenti informazioni sono disponibili per ogni sezione di configurazione [led led_name] , [neopixel led_name] , [dotstar led_name] , [pca9533 led_name] e [pca9632 led_name] definita in printer.cfg: color_data : un elenco di lista di colori contenenti i valori RGBW per ogni led nella catena. Ogni valore \u00e8 rappresentato come un float da 0,0 a 1,0. Ciascuna lista di colori contiene 4 voci (rosso, verde, blu, bianco) anche se il LED sottostante supporta meno canali di colore. Ad esempio, \u00e8 possibile accedere al valore blu (3\u00b0 elemento nell'elenco dei colori) del secondo neopixel in una catena in printer[\"neopixel <config_name>\"].color_data[1][2] . manual_probe \u00b6 Le seguenti informazioni sono disponibili nell'oggetto manual_probe : is_active : Restituisce True se \u00e8 attualmente attivo uno script di supporto per il rilevamento manuale. z_position : l'altezza corrente dell'ugello (come la sta attualmente interpretando la stampante). z_position_lower : ultimo tentativo di sonda appena inferiore all'altezza corrente. z_position_upper : ultimo tentativo di sonda appena maggiore dell'altezza corrente. mcu \u00b6 Le seguenti informazioni sono disponibili negli oggetti mcu e mcu some_name : mcu_version : la versione del codice Klipper riportata dal microcontrollore. mcu_build_versions : informazioni sugli strumenti di compilazione utilizzati per generare il codice del microcontrollore (come riportato dal microcontrollore). mcu_constants.<constant_name> : Elenca le costanti di tempo riportate dal microcontrollore. Le costanti disponibili possono differire tra le architetture del microcontrollore e con ogni revisione del codice. last_stats.<statistics_name> : informazioni statistiche sulla connessione del microcontrollore. motion_report \u00b6 Le seguenti informazioni sono disponibili nell'oggetto motion_report (questo oggetto \u00e8 automaticamente disponibile se \u00e8 definita una sezione di configurazione stepper): live_position : la posizione richiesta della testa di stampa interpolata all'ora corrente. live_velocity : la velocit\u00e0 della testa di stampa richiesta (in mm/s) al momento attuale. live_extruder_velocity : la velocit\u00e0 dell'estrusore richiesta (in mm/s) al momento attuale. output_pin \u00b6 Le seguenti informazioni sono disponibili negli oggetti output_pin some_name : value : Il \"valore\" del pin, come impostato da un comando SET_PIN . palette2 \u00b6 Le seguenti informazioni sono disponibili nell'oggetto palette2 : ping : Valore dell'ultimo ping di Palette 2 riportato in percentuale. remaining_load_length : Quando si avvia una stampa della Palette 2, questa sar\u00e0 la quantit\u00e0 di filamento da caricare nell'estrusore. is_splicing : Vero quando la Palette 2 sta giuntando il filamento. pause_resume \u00b6 Le seguenti informazioni sono disponibili nell'oggetto pause_resume : is_paused : Restituisce vero se un comando PAUSE \u00e8 stato eseguito senza un corrispondente RESUME. print_stats \u00b6 Le seguenti informazioni sono disponibili nell'oggetto print_stats (questo oggetto \u00e8 automaticamente disponibile se \u00e8 definita una sezione di configurazione virtual_sdcard ): filename , total_duration , print_duration , filament_used , state , message : informazioni stimate sulla stampa corrente quando \u00e8 attiva una stampa da virtual_sdcard. info.total_layer : The total layer value of the last SET_PRINT_STATS_INFO TOTAL_LAYER=<value> G-Code command. info.current_layer : The current layer value of the last SET_PRINT_STATS_INFO CURRENT_LAYER=<value> G-Code command. probe \u00b6 Le seguenti informazioni sono disponibili nell'oggetto probe (questo oggetto \u00e8 disponibile anche se \u00e8 definita una sezione di configurazione bltouch ): last_query : Restituisce True se il probe \u00e8 stato segnalato come \"attivato\" durante l'ultimo comando QUERY_PROBE. Nota, se questo viene utilizzato in una macro, a causa dell'ordine di espansione del modello, il comando QUERY_PROBE deve essere eseguito prima della macro contenente questo riferimento. last_z_result : Restituisce il valore del risultato Z dell'ultimo comando PROBE. Nota, se questo viene utilizzato in una macro, a causa dell'ordine di espansione del modello, il comando PROBE (o simile) deve essere eseguito prima della macro contenente questo riferimento. quad_gantry_level \u00b6 Le seguenti informazioni sono disponibili nell'oggetto quad_gantry_level (questo oggetto \u00e8 disponibile se quad_gantry_level \u00e8 definito): applied : Vero se il processo di livellamento del gantry \u00e8 stato eseguito e completato con successo. query_endstops \u00b6 Le seguenti informazioni sono disponibili nell'oggetto query_endstops (questo oggetto \u00e8 disponibile se \u00e8 definito un finecorsa): last_query[\"<endstop>\"] : Restituisce True se l'endstop specificato \u00e8 stato segnalato come \"attivato-triggered\" durante l'ultimo comando QUERY_ENDSTOP. Nota, se questo viene utilizzato in una macro, a causa dell'ordine di espansione del modello, il comando QUERY_ENDSTOP deve essere eseguito prima della macro contenente questo riferimento. servo \u00b6 Le seguenti informazioni sono disponibili negli oggetti servo some_name : printer[\"servo <config_name>\"].value : l'ultima impostazione del pin PWM (un valore compreso tra 0.0 e 1.0) associata al servo. system_stats \u00b6 Le seguenti informazioni sono disponibili nell'oggetto system_stats (questo oggetto \u00e8 sempre disponibile): sysload , cputime , memavail : informazioni sul sistema operativo del host e sul carico del processo. sensori di temperatura \u00b6 Le seguenti informazioni sono disponibili in bme280 config_section_name , htu21d config_section_name , lm75 config_section_name e temperature_host config_section_name : temperature : l'ultima temperatura letta dal sensore. humidity , pressure , gas : gli ultimi valori letti dal sensore (solo sui sensori bme280, htu21d e lm75). temperature_fan \u00b6 Le seguenti informazioni sono disponibili negli oggetti temperature_fan some_name : temperature : l'ultima temperatura letta dal sensore. target : La temperatura target per la ventola. temperature_sensor \u00b6 Le seguenti informazioni sono disponibili negli oggetti temperature_sensor some_nome : temperature : l'ultima temperatura letta dal sensore. measured_min_temp , measured_max_temp : la temperatura pi\u00f9 bassa e pi\u00f9 alta vista dal sensore dall'ultimo riavvio del software host Klipper. driver tmc \u00b6 Le seguenti informazioni sono disponibili negli oggetti TMC stepper driver (ad esempio, [tmc2208 stepper_x] ): mcu_phase_offset : La posizione dello stepper del microcontrollore corrispondente alla fase \"zero\" del driver. Questo campo pu\u00f2 essere nullo se l'offset di fase non \u00e8 noto. phase_offset_position : La \"posizione comandata\" corrispondente alla fase \"zero\" del driver. Questo campo pu\u00f2 essere nullo se l'offset di fase non \u00e8 noto. drv_status : i risultati dell'ultima query sullo stato del driver. (Sono riportati solo i campi diversi da zero.) Questo campo sar\u00e0 nullo se il driver non \u00e8 abilitato (e quindi non viene interrogato periodicamente). run_current : La corrente di esecuzione attualmente impostata. hold_current : La corrente di mantenimento attualmente impostata. toolhead \u00b6 Le seguenti informazioni sono disponibili nell'oggetto toolhead (questo oggetto \u00e8 sempre disponibile): position : l'ultima posizione comandata della testa di stampa relativa al sistema di coordinate specificato nel file di configurazione. \u00c8 possibile accedere alle componenti x, y, z di questa posizione (ad esempio, position.x ). extruder : il nome dell'estrusore attualmente attivo. Ad esempio, in una macro si potrebbe usare printer[printer.toolhead.extruder].target per ottenere la temperatura target dell'estrusore corrente. homed_axes : Gli assi cartesiani correnti considerati in uno stato \"homed\". Questa \u00e8 una stringa contenente uno o pi\u00f9 di \"x\", \"y\", \"z\". axis_minimum , axis_maximum : i limiti di corsa dell'asse (mm) dopo la corsa di homing. \u00c8 possibile accedere alle componenti x, y, z di questo valore limite (ad es. axis_minimum.x , axis_minimum.z ). Per le stampanti Delta, cone_start_z \u00e8 l'altezza z massima al raggio massimo ( printer.toolhead.cone_start_z ). max_velocity , max_accel , max_accel_to_decel , square_corner_velocity : gli attuali limiti di stampa in vigore. Questo pu\u00f2 differire dalle impostazioni del file di configurazione se un comando SET_VELOCITY_LIMIT (o M204 ) le altera in fase di esecuzione. stalls : il numero totale di volte (dall'ultimo riavvio) che la stampante ha dovuto essere messa in pausa perch\u00e9 la testina si muoveva pi\u00f9 velocemente di quanto fosse possibile leggere i movimenti dall'input del G-code. dual_carriage \u00b6 Le seguenti informazioni sono disponibili in dual_carriage su una macchina hybrid_corexy o hybrid_corexz mode : la modalit\u00e0 corrente. I valori possibili sono: \"FULL_CONTROL\" active_carriage : il carrello attivo corrente. I valori possibili sono: \"CARRIAGE_0\", \"CARRIAGE_1\" virtual_sdcard \u00b6 Le seguenti informazioni sono disponibili nell'oggetto virtual_sdcard : is_active : Restituisce True se una stampa da file \u00e8 attualmente attiva. progress : una stima dello stato di avanzamento della stampa corrente (in base alla dimensione del file e alla posizione del file). file_path : un percorso completo del file per il file attualmente caricato. file_position : la posizione corrente (in byte) di una stampa attiva. file_size : la dimensione (in byte) del file attualmente caricato. webhooks \u00b6 Le seguenti informazioni sono disponibili nell'oggetto webhooks (questo oggetto \u00e8 sempre disponibile): state : restituisce una stringa che indica lo stato corrente di Klipper. I valori possibili sono: \"ready\", \"startup\", \"shutdown\", \"error\". state_message : una stringa leggibile dall'uomo che fornisce un contesto aggiuntivo sullo stato corrente di Klipper. z_thermal_adjust \u00b6 The following information is available in the z_thermal_adjust object (this object is available if z_thermal_adjust is defined). enabled : Returns True if adjustment is enabled. temperature : Current (smoothed) temperature of the defined sensor. [degC] measured_min_temp : Minimum measured temperature. [degC] measured_max_temp : Maximum measured temperature. [degC] current_z_adjust : Last computed Z adjustment [mm]. z_adjust_ref_temperature : Current reference temperature used for calculation of Z current_z_adjust [degC]. z_tilt \u00b6 Le seguenti informazioni sono disponibili nell'oggetto z_tilt (questo oggetto \u00e8 disponibile se z_tilt \u00e8 definito): applied : Vero se il processo di livellamento z-tilt \u00e8 stato eseguito e completato con successo.","title":"Status reference"},{"location":"Status_Reference.html#status-reference","text":"Questo documento \u00e8 un riferimento alle informazioni sullo stato della stampante disponibili in Klipper macro , display fields e tramite API Server . I campi in questo documento sono soggetti a modifiche: se si utilizza un attributo, assicurarsi di rivedere il documento Modifiche alla configurazione durante l'aggiornamento del software Klipper.","title":"Status reference"},{"location":"Status_Reference.html#angle","text":"Le seguenti informazioni sono disponibili negli oggetti angle some_name : temperature : l'ultima lettura della temperatura (in gradi Celsius) da un sensore magnetico Hall tle5012b. Questo valore \u00e8 disponibile solo se il sensore angolare \u00e8 un chip tle5012b e se le misurazioni sono in corso (altrimenti segnala None ).","title":"angle"},{"location":"Status_Reference.html#bed_mesh","text":"Le seguenti informazioni sono disponibili in bed_mesh : profile_name , mesh_min , mesh_max , probed_matrix , mesh_matrix : informazioni sulla bed_mesh attualmente attiva. profiles : l'insieme dei profili attualmente definiti come setup usando BED_MESH_PROFILE.","title":"bed_mesh"},{"location":"Status_Reference.html#bed_screws","text":"Le seguenti informazioni sono disponibili nell'oggetto Config_Reference.md#bed_screws : is_active : Restituisce True se lo strumento di regolazione delle viti del letto \u00e8 attualmente attivo. state : lo stato dello strumento di regolazione delle viti del piatto. \u00c8 una delle seguenti stringhe: \"adjust\", \"fine\". current_screw : l'indice per la vite corrente in corso di regolazione. accepted_screws : il numero di viti accettate.","title":"bed_screws"},{"location":"Status_Reference.html#configfile","text":"Le seguenti informazioni sono disponibili nell'oggetto configfile (questo oggetto \u00e8 sempre disponibile): settings.<section>.<option> : Restituisce l'impostazione del file di configurazione data (o il valore predefinito) durante l'ultimo avvio o riavvio del software. (Qualsiasi impostazione modificata in fase di esecuzione non si rifletter\u00e0 qui.) config.<section>.<option> : Restituisce l'impostazione del file di configurazione non elaborato come letta da Klipper durante l'ultimo avvio o riavvio del software. (Qualsiasi impostazione modificata in fase di esecuzione non si rifletter\u00e0 qui.) Tutti i valori vengono restituiti come stringhe. save_config_pending : Restituisce vero se ci sono aggiornamenti che un comando SAVE_CONFIG potrebbe rendere persistenti sul disco. save_config_pending_items : contiene le sezioni e le opzioni che sono state modificate e sarebbero mantenute da un SAVE_CONFIG . warnings : un elenco di avvisi sulle opzioni di configurazione. Ogni voce nell'elenco sar\u00e0 un dizionario contenente un campo type e message (entrambe le stringhe). Ulteriori campi potrebbero essere disponibili a seconda del tipo di avviso.","title":"configfile"},{"location":"Status_Reference.html#display_status","text":"Le seguenti informazioni sono disponibili nell'oggetto display_status (questo oggetto \u00e8 automaticamente disponibile se \u00e8 definita una sezione di configurazione display ): progress : il valore di avanzamento dell'ultimo comando G-Code M73 (o virtual_sdcard.progress se non \u00e8 stato ricevuto alcun M73 recente). message : il messaggio contenuto nell'ultimo comando G-Code M117 .","title":"display_status"},{"location":"Status_Reference.html#endstop_phase","text":"Le seguenti informazioni sono disponibili nell'oggetto endstop_phase : last_home.<nome stepper>.phase : La fase del motore passo-passo al termine dell'ultimo tentativo di home. last_home.<stepper name>.phases : il numero totale di fasi disponibili sul motore passo-passo. last_home.<stepper name>.mcu_position : la posizione (tracciata dal microcontrollore) del motore passo-passo alla fine dell'ultimo tentativo di home. La posizione \u00e8 il numero totale di passi effettuati in avanti meno il numero totale di passi effettuati in senso inverso dall'ultimo riavvio del microcontrollore.","title":"endstop_phase"},{"location":"Status_Reference.html#exclude_object","text":"Le seguenti informazioni sono disponibili nell'oggetto exclude_object : objects : un array di oggetti conosciuti come fornito dal comando EXCLUDE_OBJECT_DEFINE . Queste sono le stesse informazioni fornite dal comando EXCLUDE_OBJECT VERBOSE=1 . I campi center e polygon saranno presenti solo se forniti nell'originale EXCLUDE_OBJECT_DEFINE Ecco un esempio JSON: [ { \"polygon\": [ [ 156.25, 146.2511675 ], [ 156.25, 153.7488325 ], [ 163.75, 153.7488325 ], [ 163.75, 146.2511675 ] ], \"name\": \"CYLINDER_2_STL_ID_2_COPY_0\", \"center\": [ 160, 150 ] }, { \"polygon\": [ [ 146.25, 146.2511675 ], [ 146.25, 153.7488325 ], [ 153.75, 153.7488325 ], [ 153.75, 146.2511675 ] ], \"name\": \"CYLINDER_2_STL_ID_1_COPY_0\", \"center\": [ 150, 150 ] } ] excluded_objects : un array di stringhe che elenca i nomi degli oggetti esclusi. current_object : il nome dell'oggetto attualmente in fase di stampa.","title":"exclude_object"},{"location":"Status_Reference.html#extruder_stepper","text":"Le seguenti informazioni sono disponibili per gli oggetti extruder_stepper (cos\u00ec come per gli oggetti extruder ): pressure_advance : il valore corrente di pressure advance . smooth_time : il tempo di avanzamento graduale della pressure advance corrente.","title":"extruder_stepper"},{"location":"Status_Reference.html#fan","text":"Le seguenti informazioni sono disponibili negli oggetti fan , heater_fan some_name e controller_fan some_name : speed : La velocit\u00e0 della ventola come float tra 0.0 e 1.0. rpm : la velocit\u00e0 della ventola misurata in rotazioni al minuto se la ventola ha un pin tachimetro definito.","title":"fan"},{"location":"Status_Reference.html#filament_switch_sensor","text":"Le seguenti informazioni sono disponibili negli oggetti filament_switch_sensor some_name : enabled : Restituisce True se il sensore interruttore \u00e8 attualmente abilitato. filament_detected : restituisce True se il sensore \u00e8 in uno stato attivato.","title":"filament_switch_sensor"},{"location":"Status_Reference.html#filament_motion_sensor","text":"Le seguenti informazioni sono disponibili negli oggetti filament_motion_sensor some_name : abilitato : Restituisce True se il sensore di movimento \u00e8 attualmente abilitato. filament_detected : restituisce True se il sensore \u00e8 in uno stato attivato.","title":"filament_motion_sensor"},{"location":"Status_Reference.html#firmware_retraction","text":"Le seguenti informazioni sono disponibili nell'oggetto firmware_retraction : retract_length , retract_speed , unretract_extra_length , unretract_speed : le impostazioni correnti per il modulo firmware_retraction. Queste impostazioni possono differire dal file di configurazione se un comando SET_RETRACTION le altera.","title":"firmware_retraction"},{"location":"Status_Reference.html#gcode_macro","text":"Le seguenti informazioni sono disponibili negli oggetti gcode_macro some_name : <variabile> : il valore corrente di una variabile gcode_macro .","title":"gcode_macro"},{"location":"Status_Reference.html#gcode_move","text":"Le seguenti informazioni sono disponibili nell'oggetto gcode_move (questo oggetto \u00e8 sempre disponibile): gcode_position : la posizione corrente della testa di stampa rispetto all'origine del Gcode corrente. Cio\u00e8, posizioni che si potrebbero inviare direttamente a un comando G1 . \u00c8 possibile accedere ai componenti x, y, z ed e di questa posizione (ad esempio, gcode_position.x ). position : l'ultima posizione comandata della testina utilizzando il sistema di coordinate specificato nel file di configurazione. \u00c8 possibile accedere alle componenti x, y, z ed e di questa posizione (ad esempio, position.x ). homing_origin : l'origine del sistema di coordinate gcode (relativo al sistema di coordinate specificato nel file di configurazione) da utilizzare dopo un comando G28 . Il comando SET_GCODE_OFFSET pu\u00f2 alterare questa posizione. \u00c8 possibile accedere ai componenti x, y e z di questa posizione (ad esempio, homing_origin.x ). speed : l'ultima velocit\u00e0 impostata in un comando G1 (in mm/s). speed_factor : La\"speed factor override\" come impostato da un comando M220 . Questo \u00e8 un valore in virgola mobile tale che 1,0 significa nessun override e, ad esempio, 2,0 raddoppierebbe la velocit\u00e0 richiesta. extrude_factor : L'\"extrude factor override\" come impostato da un comando M221 . Questo \u00e8 un valore in virgola mobile tale che 1,0 significa nessun override ad esempio 2,0 raddoppierebbe le estrusioni richieste. absolute_coordinates : restituisce True se in modalit\u00e0 coordinate assolute G90 o False se in modalit\u00e0 relativa G91 . absolute_extrude : restituisce True se in modalit\u00e0 di estrusione assoluta M82 o False se in modalit\u00e0 relativa M83 .","title":"gcode_move"},{"location":"Status_Reference.html#hall_filament_width_sensor","text":"Le seguenti informazioni sono disponibili nell'oggetto hall_filament_width_sensor : is_active : Restituisce True se il sensore \u00e8 attualmente attivo. Diameter : l'ultima lettura dal sensore in mm. Raw : l'ultima lettura grezza dell'ADC dal sensore.","title":"hall_filament_width_sensor"},{"location":"Status_Reference.html#riscaldatore","text":"Le seguenti informazioni sono disponibili per oggetti riscaldatore come extruder , heater_bed e heater_generic : temperature : l'ultima temperatura riportata (in gradi Celsius come float) per il dato riscaldatore. target : la temperatura target attuale (in gradi Celsius come float) per il riscaldatore dato. power : l'ultima impostazione del pin PWM (un valore compreso tra 0.0 e 1.0) associato al riscaldatore. can_extrude : Se l'estrusore pu\u00f2 estrudere (definito da min_extrude_temp ), disponibile solo per extruder","title":"Riscaldatore"},{"location":"Status_Reference.html#riscaldatori","text":"Le seguenti informazioni sono disponibili nell'oggetto heaters (questo oggetto \u00e8 disponibile se \u00e8 definito un riscaldatore): disponibili_riscaldatori : restituisce un elenco di tutti i riscaldatori attualmente disponibili in base ai nomi completi delle sezioni di configurazione, ad es. [\"extruder\", \"heater_bed\", \"heater_generic my_custom_heater\"] . available_sensors : restituisce un elenco di tutti i riscaldatori attualmente disponibili in base ai nomi completi delle sezioni di configurazione, ad es. [\"extruder\", \"heater_bed\", \"heater_generic my_custom_heater\"] .","title":"Riscaldatori"},{"location":"Status_Reference.html#idle_timeout","text":"Le seguenti informazioni sono disponibili nell'oggetto idle_timeout (questo oggetto \u00e8 sempre disponibile): state : lo stato corrente della stampante monitorato dal modulo idle_timeout. \u00c8 una delle seguenti stringhe: \"Idle\", \"Printing\", \"Ready\". printing_time : la quantit\u00e0 di tempo (in secondi) in cui la stampante \u00e8 rimasta nello stato \"Printing\" (come tracciato dal modulo idle_timeout).","title":"idle_timeout"},{"location":"Status_Reference.html#led","text":"Le seguenti informazioni sono disponibili per ogni sezione di configurazione [led led_name] , [neopixel led_name] , [dotstar led_name] , [pca9533 led_name] e [pca9632 led_name] definita in printer.cfg: color_data : un elenco di lista di colori contenenti i valori RGBW per ogni led nella catena. Ogni valore \u00e8 rappresentato come un float da 0,0 a 1,0. Ciascuna lista di colori contiene 4 voci (rosso, verde, blu, bianco) anche se il LED sottostante supporta meno canali di colore. Ad esempio, \u00e8 possibile accedere al valore blu (3\u00b0 elemento nell'elenco dei colori) del secondo neopixel in una catena in printer[\"neopixel <config_name>\"].color_data[1][2] .","title":"led"},{"location":"Status_Reference.html#manual_probe","text":"Le seguenti informazioni sono disponibili nell'oggetto manual_probe : is_active : Restituisce True se \u00e8 attualmente attivo uno script di supporto per il rilevamento manuale. z_position : l'altezza corrente dell'ugello (come la sta attualmente interpretando la stampante). z_position_lower : ultimo tentativo di sonda appena inferiore all'altezza corrente. z_position_upper : ultimo tentativo di sonda appena maggiore dell'altezza corrente.","title":"manual_probe"},{"location":"Status_Reference.html#mcu","text":"Le seguenti informazioni sono disponibili negli oggetti mcu e mcu some_name : mcu_version : la versione del codice Klipper riportata dal microcontrollore. mcu_build_versions : informazioni sugli strumenti di compilazione utilizzati per generare il codice del microcontrollore (come riportato dal microcontrollore). mcu_constants.<constant_name> : Elenca le costanti di tempo riportate dal microcontrollore. Le costanti disponibili possono differire tra le architetture del microcontrollore e con ogni revisione del codice. last_stats.<statistics_name> : informazioni statistiche sulla connessione del microcontrollore.","title":"mcu"},{"location":"Status_Reference.html#motion_report","text":"Le seguenti informazioni sono disponibili nell'oggetto motion_report (questo oggetto \u00e8 automaticamente disponibile se \u00e8 definita una sezione di configurazione stepper): live_position : la posizione richiesta della testa di stampa interpolata all'ora corrente. live_velocity : la velocit\u00e0 della testa di stampa richiesta (in mm/s) al momento attuale. live_extruder_velocity : la velocit\u00e0 dell'estrusore richiesta (in mm/s) al momento attuale.","title":"motion_report"},{"location":"Status_Reference.html#output_pin","text":"Le seguenti informazioni sono disponibili negli oggetti output_pin some_name : value : Il \"valore\" del pin, come impostato da un comando SET_PIN .","title":"output_pin"},{"location":"Status_Reference.html#palette2","text":"Le seguenti informazioni sono disponibili nell'oggetto palette2 : ping : Valore dell'ultimo ping di Palette 2 riportato in percentuale. remaining_load_length : Quando si avvia una stampa della Palette 2, questa sar\u00e0 la quantit\u00e0 di filamento da caricare nell'estrusore. is_splicing : Vero quando la Palette 2 sta giuntando il filamento.","title":"palette2"},{"location":"Status_Reference.html#pause_resume","text":"Le seguenti informazioni sono disponibili nell'oggetto pause_resume : is_paused : Restituisce vero se un comando PAUSE \u00e8 stato eseguito senza un corrispondente RESUME.","title":"pause_resume"},{"location":"Status_Reference.html#print_stats","text":"Le seguenti informazioni sono disponibili nell'oggetto print_stats (questo oggetto \u00e8 automaticamente disponibile se \u00e8 definita una sezione di configurazione virtual_sdcard ): filename , total_duration , print_duration , filament_used , state , message : informazioni stimate sulla stampa corrente quando \u00e8 attiva una stampa da virtual_sdcard. info.total_layer : The total layer value of the last SET_PRINT_STATS_INFO TOTAL_LAYER=<value> G-Code command. info.current_layer : The current layer value of the last SET_PRINT_STATS_INFO CURRENT_LAYER=<value> G-Code command.","title":"print_stats"},{"location":"Status_Reference.html#probe","text":"Le seguenti informazioni sono disponibili nell'oggetto probe (questo oggetto \u00e8 disponibile anche se \u00e8 definita una sezione di configurazione bltouch ): last_query : Restituisce True se il probe \u00e8 stato segnalato come \"attivato\" durante l'ultimo comando QUERY_PROBE. Nota, se questo viene utilizzato in una macro, a causa dell'ordine di espansione del modello, il comando QUERY_PROBE deve essere eseguito prima della macro contenente questo riferimento. last_z_result : Restituisce il valore del risultato Z dell'ultimo comando PROBE. Nota, se questo viene utilizzato in una macro, a causa dell'ordine di espansione del modello, il comando PROBE (o simile) deve essere eseguito prima della macro contenente questo riferimento.","title":"probe"},{"location":"Status_Reference.html#quad_gantry_level","text":"Le seguenti informazioni sono disponibili nell'oggetto quad_gantry_level (questo oggetto \u00e8 disponibile se quad_gantry_level \u00e8 definito): applied : Vero se il processo di livellamento del gantry \u00e8 stato eseguito e completato con successo.","title":"quad_gantry_level"},{"location":"Status_Reference.html#query_endstops","text":"Le seguenti informazioni sono disponibili nell'oggetto query_endstops (questo oggetto \u00e8 disponibile se \u00e8 definito un finecorsa): last_query[\"<endstop>\"] : Restituisce True se l'endstop specificato \u00e8 stato segnalato come \"attivato-triggered\" durante l'ultimo comando QUERY_ENDSTOP. Nota, se questo viene utilizzato in una macro, a causa dell'ordine di espansione del modello, il comando QUERY_ENDSTOP deve essere eseguito prima della macro contenente questo riferimento.","title":"query_endstops"},{"location":"Status_Reference.html#servo","text":"Le seguenti informazioni sono disponibili negli oggetti servo some_name : printer[\"servo <config_name>\"].value : l'ultima impostazione del pin PWM (un valore compreso tra 0.0 e 1.0) associata al servo.","title":"servo"},{"location":"Status_Reference.html#system_stats","text":"Le seguenti informazioni sono disponibili nell'oggetto system_stats (questo oggetto \u00e8 sempre disponibile): sysload , cputime , memavail : informazioni sul sistema operativo del host e sul carico del processo.","title":"system_stats"},{"location":"Status_Reference.html#sensori-di-temperatura","text":"Le seguenti informazioni sono disponibili in bme280 config_section_name , htu21d config_section_name , lm75 config_section_name e temperature_host config_section_name : temperature : l'ultima temperatura letta dal sensore. humidity , pressure , gas : gli ultimi valori letti dal sensore (solo sui sensori bme280, htu21d e lm75).","title":"sensori di temperatura"},{"location":"Status_Reference.html#temperature_fan","text":"Le seguenti informazioni sono disponibili negli oggetti temperature_fan some_name : temperature : l'ultima temperatura letta dal sensore. target : La temperatura target per la ventola.","title":"temperature_fan"},{"location":"Status_Reference.html#temperature_sensor","text":"Le seguenti informazioni sono disponibili negli oggetti temperature_sensor some_nome : temperature : l'ultima temperatura letta dal sensore. measured_min_temp , measured_max_temp : la temperatura pi\u00f9 bassa e pi\u00f9 alta vista dal sensore dall'ultimo riavvio del software host Klipper.","title":"temperature_sensor"},{"location":"Status_Reference.html#driver-tmc","text":"Le seguenti informazioni sono disponibili negli oggetti TMC stepper driver (ad esempio, [tmc2208 stepper_x] ): mcu_phase_offset : La posizione dello stepper del microcontrollore corrispondente alla fase \"zero\" del driver. Questo campo pu\u00f2 essere nullo se l'offset di fase non \u00e8 noto. phase_offset_position : La \"posizione comandata\" corrispondente alla fase \"zero\" del driver. Questo campo pu\u00f2 essere nullo se l'offset di fase non \u00e8 noto. drv_status : i risultati dell'ultima query sullo stato del driver. (Sono riportati solo i campi diversi da zero.) Questo campo sar\u00e0 nullo se il driver non \u00e8 abilitato (e quindi non viene interrogato periodicamente). run_current : La corrente di esecuzione attualmente impostata. hold_current : La corrente di mantenimento attualmente impostata.","title":"driver tmc"},{"location":"Status_Reference.html#toolhead","text":"Le seguenti informazioni sono disponibili nell'oggetto toolhead (questo oggetto \u00e8 sempre disponibile): position : l'ultima posizione comandata della testa di stampa relativa al sistema di coordinate specificato nel file di configurazione. \u00c8 possibile accedere alle componenti x, y, z di questa posizione (ad esempio, position.x ). extruder : il nome dell'estrusore attualmente attivo. Ad esempio, in una macro si potrebbe usare printer[printer.toolhead.extruder].target per ottenere la temperatura target dell'estrusore corrente. homed_axes : Gli assi cartesiani correnti considerati in uno stato \"homed\". Questa \u00e8 una stringa contenente uno o pi\u00f9 di \"x\", \"y\", \"z\". axis_minimum , axis_maximum : i limiti di corsa dell'asse (mm) dopo la corsa di homing. \u00c8 possibile accedere alle componenti x, y, z di questo valore limite (ad es. axis_minimum.x , axis_minimum.z ). Per le stampanti Delta, cone_start_z \u00e8 l'altezza z massima al raggio massimo ( printer.toolhead.cone_start_z ). max_velocity , max_accel , max_accel_to_decel , square_corner_velocity : gli attuali limiti di stampa in vigore. Questo pu\u00f2 differire dalle impostazioni del file di configurazione se un comando SET_VELOCITY_LIMIT (o M204 ) le altera in fase di esecuzione. stalls : il numero totale di volte (dall'ultimo riavvio) che la stampante ha dovuto essere messa in pausa perch\u00e9 la testina si muoveva pi\u00f9 velocemente di quanto fosse possibile leggere i movimenti dall'input del G-code.","title":"toolhead"},{"location":"Status_Reference.html#dual_carriage","text":"Le seguenti informazioni sono disponibili in dual_carriage su una macchina hybrid_corexy o hybrid_corexz mode : la modalit\u00e0 corrente. I valori possibili sono: \"FULL_CONTROL\" active_carriage : il carrello attivo corrente. I valori possibili sono: \"CARRIAGE_0\", \"CARRIAGE_1\"","title":"dual_carriage"},{"location":"Status_Reference.html#virtual_sdcard","text":"Le seguenti informazioni sono disponibili nell'oggetto virtual_sdcard : is_active : Restituisce True se una stampa da file \u00e8 attualmente attiva. progress : una stima dello stato di avanzamento della stampa corrente (in base alla dimensione del file e alla posizione del file). file_path : un percorso completo del file per il file attualmente caricato. file_position : la posizione corrente (in byte) di una stampa attiva. file_size : la dimensione (in byte) del file attualmente caricato.","title":"virtual_sdcard"},{"location":"Status_Reference.html#webhooks","text":"Le seguenti informazioni sono disponibili nell'oggetto webhooks (questo oggetto \u00e8 sempre disponibile): state : restituisce una stringa che indica lo stato corrente di Klipper. I valori possibili sono: \"ready\", \"startup\", \"shutdown\", \"error\". state_message : una stringa leggibile dall'uomo che fornisce un contesto aggiuntivo sullo stato corrente di Klipper.","title":"webhooks"},{"location":"Status_Reference.html#z_thermal_adjust","text":"The following information is available in the z_thermal_adjust object (this object is available if z_thermal_adjust is defined). enabled : Returns True if adjustment is enabled. temperature : Current (smoothed) temperature of the defined sensor. [degC] measured_min_temp : Minimum measured temperature. [degC] measured_max_temp : Maximum measured temperature. [degC] current_z_adjust : Last computed Z adjustment [mm]. z_adjust_ref_temperature : Current reference temperature used for calculation of Z current_z_adjust [degC].","title":"z_thermal_adjust"},{"location":"Status_Reference.html#z_tilt","text":"Le seguenti informazioni sono disponibili nell'oggetto z_tilt (questo oggetto \u00e8 disponibile se z_tilt \u00e8 definito): applied : Vero se il processo di livellamento z-tilt \u00e8 stato eseguito e completato con successo.","title":"z_tilt"},{"location":"TMC_Drivers.html","text":"Driver TMC \u00b6 Questo documento fornisce informazioni sull'utilizzo dei driver Trinamic per motori stepper in modalit\u00e0 SPI/UART su Klipper. Klipper pu\u00f2 anche utilizzare i driver Trinamic nella loro \"modalit\u00e0 standalone\". Tuttavia, quando i driver sono in questa modalit\u00e0, non \u00e8 necessaria alcuna configurazione speciale di Klipper e le funzionalit\u00e0 avanzate di Klipper discusse in questo documento non sono disponibili. Oltre a questo documento, assicurati di rivedere il riferimento alla configurazione del driver TMC . Regolazione della corrente del motore \u00b6 Una corrente pi\u00f9 alta del driver aumenta la precisione del posizionamento e la coppia. Tuttavia, una corrente pi\u00f9 elevata aumenta anche il calore prodotto dal motore passo-passo e dal driver del motore passo-passo. Se il driver del motore passo-passo si surriscalda, si disabiliter\u00e0 e Klipper segnaler\u00e0 un errore. Se il motore passo-passo si surriscalda, perde coppia e precisione di posizionamento. (Se diventa molto caldo, potrebbe anche fondere le parti di plastica attaccate o vicino ad esso.) Come consiglio generale per l'ottimizzazione, preferire valori di corrente pi\u00f9 elevati purch\u00e9 il motore passo-passo non si surriscaldi troppo e il driver del motore passo-passo non segnali avvisi o errori. In generale, va bene che il motore passo-passo sia caldo, ma non dovrebbe diventare cos\u00ec caldo da risultare doloroso al tatto. Preferibilmente non specificare un hold_current \u00b6 Se si configura un hold_current , il driver TMC pu\u00f2 ridurre la corrente al motore passo-passo quando rileva che il passo-passo non si sta muovendo. Tuttavia, la variazione della corrente del motore pu\u00f2 di per s\u00e9 introdurre il movimento del motore. Ci\u00f2 pu\u00f2 verificarsi a causa di \"forze di arresto\" all'interno del motore passo-passo (il magnete permanente nel rotore tira verso i denti di ferro nello statore) o a causa di forze esterne sul carrello dell'asse. La maggior parte dei motori passo-passo non otterr\u00e0 un beneficio significativo dalla riduzione della corrente durante le normali stampe, perch\u00e9 pochi movimenti di stampa lasceranno un motore passo-passo inattivo per un tempo sufficientemente lungo da attivare la funzione hold_current . Ed \u00e8 improbabile che si vogliano introdurre sottili artefatti di stampa nelle poche mosse di stampa che lasciano uno stepper inattivo sufficientemente a lungo. Se si desidera ridurre la corrente ai motori durante le routine di avvio della stampa, considerare l'emissione di comandi SET_TMC_CURRENT in una START_PRINT macro per regolare la corrente prima e dopo i normali spostamenti di stampa. Alcune stampanti con motori Z dedicati che sono inattivi durante i normali movimenti di stampa (nessuna bed_mesho, nessuna inclinazione_piatto, nessuna correzione_inclinazione Z, nessuna stampa in \"modalit\u00e0 vaso\", ecc.) potrebbero scoprire che i motori Z funzionano a temperature pi\u00f9 basse con un hold_current . Se si implementa questo, assicurarsi di prendere in considerazione questo tipo di movimento dell'asse Z non comandato durante il livellamento del piatto, il rilevamento del piatto, la calibrazione della sonda e simili. Anche driver_TPOWERDOWN e driver_IHOLDDELAY dovrebbero essere calibrati di conseguenza. Se non sei sicuro, preferisci non specificare un hold_current . Impostazione della modalit\u00e0 \"spreadCycle\" rispetto a \"stealthChop\" \u00b6 Per impostazione predefinita, Klipper mette i driver TMC in modalit\u00e0 \"spreadCycle\". Se il driver supporta \"stealthChop\", pu\u00f2 essere abilitato aggiungendo stealthchop_threshold: 999999 alla sezione di configurazione di TMC. In generale, la modalit\u00e0 SpreadCycle fornisce una coppia maggiore e una maggiore precisione di posizionamento rispetto alla modalit\u00e0 StealthChop. Tuttavia, la modalit\u00e0 StealthChop pu\u00f2 produrre un rumore udibile notevolmente inferiore su alcune stampanti. I test di confronto delle modalit\u00e0 hanno mostrato un \"ritardo posizionale\" aumentato di circa il 75% di un passo completo durante i movimenti a velocit\u00e0 costante quando si utilizza la modalit\u00e0 StealthChop (ad esempio, su una stampante con distanza_rotazione di 40 mm e 200 passi_per_rotazione, la deviazione di posizione dei movimenti a velocit\u00e0 costante \u00e8 aumentata di ~0,150 mm). Tuttavia, questo \"ritardo nell'ottenimento della posizione richiesta\" potrebbe non manifestarsi come un difetto di stampa significativo e si potrebbe preferire il comportamento pi\u00f9 silenzioso della modalit\u00e0 stealthChop. Si consiglia di utilizzare sempre la modalit\u00e0 \"spreadCycle\" (non specificando stealthchop_threshold ) o di utilizzare sempre la modalit\u00e0 \"stealthChop\" (impostando stealthchop_threshold su 999999). Sfortunatamente, i driver spesso producono risultati scadenti e confusi se la modalit\u00e0 cambia mentre il motore \u00e8 a una velocit\u00e0 diversa da zero. L'impostazione dell'interpolazione TMC introduce una piccola deviazione di posizione \u00b6 L'impostazione interpolate del driver TMC pu\u00f2 ridurre il rumore udibile del movimento della stampante a costo di introdurre un piccolo errore di posizione sistemico. Questo errore di posizione sistematico deriva dal ritardo del driver nell'esecuzione dei \"passi\" inviati da Klipper. Durante i movimenti a velocit\u00e0 costante, questo ritardo si traduce in un errore di posizione di quasi mezzo micropasso configurato (pi\u00f9 precisamente, l'errore \u00e8 di mezzo micropasso meno un 512esimo di un passo intero). Ad esempio, su un asse con una distanza_rotazione di 40 mm, 200 passi_per_rotazione e 16 micropassi, l'errore sistemico introdotto durante i movimenti a velocit\u00e0 costante \u00e8 ~0,006 mm. Per una migliore precisione di posizionamento, considerare l'utilizzo della modalit\u00e0 SpreadCycle e disabilitare l'interpolazione (impostare interpolate: False nella configurazione del driver TMC). Se configurato in questo modo, \u00e8 possibile aumentare l'impostazione microstep per ridurre il rumore udibile durante il movimento del passo-passo. Tipicamente, un'impostazione microstep di 64 o 128 avr\u00e0 un rumore udibile simile all'interpolazione e lo far\u00e0 senza introdurre un errore posizionale sistemico. Se si utilizza la modalit\u00e0 StealthChop, l'imprecisione posizionale dell'interpolazione \u00e8 piccola rispetto all'imprecisione posizionale introdotta dalla modalit\u00e0 StealthChop. Pertanto l'interpolazione dell'ottimizzazione non \u00e8 considerata utile in modalit\u00e0 StealthChop e si pu\u00f2 lasciare l'interpolazione nel suo stato predefinito. Homing Sensorless \u00b6 L'homing senza sensori consente di posizionare un asse senza la necessit\u00e0 di un finecorsa fisico. Invece, il carrello sull'asse viene spostato nel finecorsa meccanico facendo perdere passi al motore passo-passo. Il driver stepper rileva i passi persi e lo indica all'MCU di controllo (Klipper) attivando un pin. Queste informazioni possono essere utilizzate da Klipper come fine corsa per l'asse. Questa guida illustra l'impostazione dell'homing sensorless per l'asse X della stampante (cartesiana). Tuttavia, funziona allo stesso modo con tutti gli altri assi (che richiedono un fine corsa). Dovresti configurarlo e sintonizzarlo per un asse alla volta. Limitazioni \u00b6 Assicurati che i tuoi componenti meccanici siano in grado di sopportare il carico del carrello che urta ripetutamente il limite dell'asse. Soprattutto le viti di comando potrebbero generare molta forza. L'homing di un asse Z facendo urtare l'ugello sulla superficie di stampa potrebbe non essere una buona idea. Per ottenere i migliori risultati, verificare che il carrello dell'asse stabilisca un contatto stabile con il limite dell'asse. Inoltre, l'homing sensorless potrebbe non essere sufficientemente preciso per la tua stampante. Sebbene l'homing degli assi X e Y su una macchina cartesiana possa funzionare bene, l'homing dell'asse Z in genere non \u00e8 sufficientemente preciso e pu\u00f2 comportare un'altezza del primo strato incoerente. L'homing di una stampante delta sensorless non \u00e8 consigliabile a causa della mancanza di precisione. Inoltre, il rilevamento dello stallo del driver passo-passo dipende dal carico meccanico sul motore, dalla corrente del motore e dalla temperatura del motore (resistenza della bobina). L'homing sensorless funziona meglio a velocit\u00e0 medie del motore. Per velocit\u00e0 molto basse (inferiori a 10 giri/min) il motore non genera una significativa EMF di ritorno e il TMC non \u00e8 in grado di rilevare in modo affidabile gli stalli del motore. Inoltre, a velocit\u00e0 molto elevate, l'EMF di ritorno del motore si avvicina alla tensione di alimentazione del motore, quindi il TMC non \u00e8 pi\u00f9 in grado di rilevare gli stalli. Si consiglia di dare un'occhiata alla scheda tecnica del proprio TMC specifico. L\u00ec puoi anche trovare maggiori dettagli sulle limitazioni di questa configurazione. Prerequisiti \u00b6 Sono necessari alcuni prerequisiti per utilizzare l'homing sensorless: Driver passo-passo TMC compatibile con stallGuard (tmc2130, tmc2209, tmc2660 o tmc5160). Interfaccia SPI/UART del driver TMC cablata al microcontrollore (la modalit\u00e0 stand-alone non funziona). Il pin \"DIAG\" o \"SG_TST\" appropriato del driver TMC collegato al microcontrollore. I passaggi nel documento config checks devono essere eseguiti per confermare che i motori passo-passo siano configurati e funzionino correttamente. Messa a punto \u00b6 La procedura qui descritta prevede sei passaggi principali: Scegli una velocit\u00e0 di homing. Configura il file printer.cfg per abilitare l'homing sensorless. Trova l'impostazione stallguard con la massima sensibilit\u00e0 che funziona con successo. Trova l'impostazione stallguard con la sensibilit\u00e0 pi\u00f9 bassa che effettua homing con successo con un solo tocco. Aggiorna il printer.cfg con l'impostazione di stallguard desiderata. Crea o aggiorna le macro printer.cfg per homing in modo coerente. Scegli la velocit\u00e0 di homing \u00b6 La velocit\u00e0 di homing \u00e8 una scelta importante quando si esegue l'homing senza sensori. \u00c8 consigliabile utilizzare una velocit\u00e0 di riferimento bassa in modo che il carrello non eserciti una forza eccessiva sul telaio quando entra in contatto con l'estremit\u00e0 della rotaia. Tuttavia, i driver TMC non sono in grado di rilevare in modo affidabile uno stallo a velocit\u00e0 molto basse. Un buon punto di partenza per la velocit\u00e0 di homing \u00e8 che il motore passo-passo esegua una rotazione completa ogni due secondi. Per molti assi questa sar\u00e0 la rotation_distance divisa per due. Per esempio: [stepper_x] rotation_distance: 40 homing_speed: 20 ... Configura printer.cfg per l'homing sensorless \u00b6 L'impostazione homing_retract_dist deve essere impostata su zero nella sezione di configurazione stepper_x per disabilitare il secondo movimento di homing. Il secondo tentativo di homing non aggiunge valore quando si utilizza l'homing sensorless, non funzioner\u00e0 in modo affidabile e confonder\u00e0 il processo di ottimizzazione. Assicurati che un'impostazione hold_current non sia specificata nella sezione del driver TMC del file config. (Se viene impostata una hold_current, dopo che \u00e8 stato stabilito il contatto, il motore si arresta mentre il carrello viene premuto contro l'estremit\u00e0 del binario e la riduzione della corrente mentre si trova in quella posizione pu\u00f2 causare il movimento del carrello, il che si traduce in prestazioni scadenti e confonde il processo di regolazione.) \u00c8 necessario configurare i pin di homing sensorless e configurare le impostazioni iniziali di \"stallguard\". Una configurazione di esempio tmc2209 per un asse X potrebbe essere simile a: [tmc2209 stepper_x] diag_pin: ^PA1 # Impostare sul pin MCU collegato al pin TMC DIAG driver_SGTHRS: 255 #255 \u00e8 il valore pi\u00f9 sensibile, 0 \u00e8 il meno sensibile ... [stepper_x] endstop_pin: tmc2209_stepper_x:virtual_endstop homing_retract_dist: 0 ... Un esempio di configurazione tmc2130 o tmc5160 potrebbe essere simile a: [tmc2130 stepper_x] diag1_pin: ^!PA1 # Pin collegato al pin TMC DIAG1 (o utilizzare pin diag0_pin / DIAG0) driver_SGT: -64 # -64 \u00e8 il valore pi\u00f9 sensibile, 63 \u00e8 il meno sensibile ... [stepper_x] endstop_pin: tmc2130_stepper_x:virtual_endstop homing_retract_dist: 0 ... Un esempio di configurazione di tmc2660 potrebbe essere simile a: [tmc2660 stepper_x] driver_SGT: -64 # -64 \u00e8 il valore pi\u00f9 sensibile, 63 \u00e8 il meno sensibile ... [stepper_x] endstop_pin: ^PA1 # Pin collegato al pin TMC SG_TST homing_retract_dist: 0 ... Gli esempi sopra mostrano solo le impostazioni specifiche per l'homing sensorless. Vedere il riferimento alla configurazione per tutte le opzioni disponibili. Trova la massima sensibilit\u00e0 che porta a homing con successo \u00b6 Posizionare il carrello vicino al centro del binario. Utilizzare il comando SET_TMC_FIELD per impostare la sensibilit\u00e0 pi\u00f9 alta. Per tmc2209: SET_TMC_FIELD STEPPER=stepper_x FIELD=SGTHRS VALUE=255 Per tmc2130, tmc5160 e tmc2660: SET_TMC_FIELD STEPPER=stepper_x FIELD=sgt VALUE=-64 Quindi inviare un comando G28 X0 e verificare che l'asse non si muova affatto o smetta rapidamente di muoversi. Se l'asse non si ferma, inviare un M112 per fermare la stampante - qualcosa non \u00e8 corretto con il cablaggio o la configurazione dei pin diag/sg_tst e deve essere corretto prima di continuare. Quindi, diminuire progressivamente la sensibilit\u00e0 dell'impostazione VALUE ed eseguire nuovamente i comandi SET_TMC_FIELD G28 X0 per trovare la sensibilit\u00e0 pi\u00f9 alta che fa s\u00ec che il carrello si muova con successo fino all'arresto e si arresti. (Per i driver tmc2209 questo diminuir\u00e0 SGTHRS, per altri conducenti aumenter\u00e0 il sgt.) Assicurati di iniziare ogni tentativo con il carrello vicino al centro del binario (se necessario, emetti M84 e quindi sposta manualmente il carrello sul centro). Dovrebbe essere possibile trovare la sensibilit\u00e0 pi\u00f9 alta che si adatta in modo affidabile (le impostazioni con una sensibilit\u00e0 pi\u00f9 alta comportano movimenti piccoli o nulli). Nota il valore trovato come sensibilit\u00e0_massima . (Se si ottiene la sensibilit\u00e0 minima possibile (SGTHRS=0 o sgt=63) senza alcun movimento del carrello, allora qualcosa non \u00e8 corretto con il cablaggio o la configurazione dei pin diag/sg_tst e deve essere corretto prima di continuare.) Quando si cerca la sensibilit\u00e0_massima, pu\u00f2 essere conveniente passare a diverse impostazioni VALUE (in modo da dividere in due il parametro VALUE). In tal caso, prepararsi a emettere un comando M112 per arrestare la stampante, poich\u00e9 un'impostazione con una sensibilit\u00e0 molto bassa potrebbe far \"sbattere\" ripetutamente l'asse contro l'estremit\u00e0 del binario. Assicurati di attendere un paio di secondi tra ogni tentativo di homing. Dopo che il driver TMC ha rilevato uno stallo, potrebbe volerci un po' di tempo per cancellare il suo indicatore interno ed essere in grado di rilevare un altro stallo. Durante questi test di ottimizzazione, se un comando G28 X0 non si sposta fino al limite dell'asse, prestare attenzione nell'emettere qualsiasi comando di movimento regolare (ad es. G1 ). Klipper non avr\u00e0 una corretta comprensione della posizione del carrello e un comando di spostamento potrebbe causare risultati indesiderati e confusi. Trova la sensibilit\u00e0 pi\u00f9 bassa che porta a homing con un solo tocco \u00b6 Quando si effettua l'homing con il valore maximum_sensitivity trovato, l'asse dovrebbe spostarsi all'estremit\u00e0 del binario e fermarsi con un \"tocco singolo\", ovvero non dovrebbe esserci un \"clic\" o un \"sbattere\". (Se c'\u00e8 un suono che sbatte o scatta alla sensibilit\u00e0_massima, allora la velocit\u00e0 di riferimento potrebbe essere troppo bassa, la corrente del driver potrebbe essere troppo bassa o la corsa di riferimento senza sensore potrebbe non essere una buona scelta per l'asse.) Il passo successivo \u00e8 spostare di nuovo continuamente il carrello in una posizione vicino al centro della rotaia, diminuire la sensibilit\u00e0 ed eseguire i comandi SET_TMC_FIELD G28 X0 - l'obiettivo ora \u00e8 trovare la sensibilit\u00e0 pi\u00f9 bassa che risulti ancora nel la carrozza torna con successo al punto di riferimento con un \"tocco singolo\". Cio\u00e8, non \"sbatte\" o \"clic\" quando viene a contatto con l'estremit\u00e0 del binario. Nota il valore trovato come sensibilit\u00e0_minima . Aggiorna printer.cfg con il valore della sensibilit\u00e0 \u00b6 Dopo aver trovato sensibilit\u00e0_massima e sensibilit\u00e0_minima , utilizzare una calcolatrice per ottenere la sensibilit\u00e0 consigliata come sensibilit\u00e0_minima + (sensibilit\u00e0_massima - sensibilit\u00e0_minima)/3 . La sensibilit\u00e0 consigliata dovrebbe essere compresa tra il minimo e il massimo, ma leggermente pi\u00f9 vicino al minimo. Arrotonda il valore finale al valore intero pi\u00f9 vicino. Per tmc2209 impostalo nella configurazione come driver_SGTHRS , per altri driver TMC impostalo nella configurazione come driver_SGT . Se l'intervallo tra sensibilit\u00e0_massima e sensibilit\u00e0_minima \u00e8 piccolo (ad esempio, inferiore a 5), potrebbe risultare in un homing instabile. Una velocit\u00e0 di riferimento pi\u00f9 elevata pu\u00f2 aumentare il range e rendere l'operazione pi\u00f9 stabile. Si noti che se viene apportata una modifica alla corrente del driver, alla velocit\u00e0 di riferimento o viene apportata una modifica notevole all'hardware della stampante, sar\u00e0 necessario eseguire nuovamente il processo di ottimizzazione. Utilizzo delle macro durante l'homing \u00b6 Dopo aver completato l'homing senza sensori, il carrello verr\u00e0 premuto contro l'estremit\u00e0 del binario e lo stepper eserciter\u00e0 una forza sul telaio fino a quando il carrello non si allontana. \u00c8 una buona idea creare una macro per posizionare l'asse e allontanare immediatamente il carrello dall'estremit\u00e0 della rotaia. \u00c8 una buona idea che la macro si metta in pausa di almeno 2 secondi prima di iniziare l'homing sensorless (o altrimenti assicurarsi che non ci siano stati movimenti sullo stepper per 2 secondi). Senza ritardo \u00e8 possibile che il flag di stallo interno del driver sia ancora impostato da un movimento precedente. Pu\u00f2 anche essere utile fare in modo che quella macro imposti la corrente del driver prima della corsa di riferimento e imposti una nuova corrente dopo che il carrello si \u00e8 allontanato. Una macro di esempio potrebbe assomigliare a: [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 %} # Imposta la corrente per l'homing sensorless SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR} # Fai una pausa per assicurarti che il flag di stallo del driver sia clear G4 P2000 # Home G28 X0 # Spostamento G90 G1 X5 F1200 # Imposta corrente durante la stampa SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CUR} La macro risultante pu\u00f2 essere chiamata da una sezione di configurazione homing_override o da una START_PRINT macro . Si noti che se viene modificata la corrente del driver durante l'homing, il processo di ottimizzazione dovrebbe essere eseguito nuovamente. Suggerimenti per l'homing sensorless su CoreXY \u00b6 \u00c8 possibile utilizzare l'homing sensorless sui carrelli X e Y di una stampante CoreXY. Klipper usa lo stepper [stepper_x] per rilevare gli stalli durante l'homing del carrello X e usa lo stepper [stepper_y] per rilevare gli stalli durante l'homing del carrello Y. Utilizzare la guida alla messa a punto sopra descritta per trovare la \"sensibilit\u00e0 allo stallo\" appropriata per ciascun carrello, ma prestare attenzione alle seguenti restrizioni: Quando si utilizza l'homing sensorless su CoreXY, assicurarsi che non sia configurato hold_current per nessuno dei due stepper. Durante la messa a punto, assicurati che entrambi i carrelli X e Y siano vicini al centro dei loro binari prima di ogni tentativo di homing. Al termine dell'ottimizzazione, quando si esegue l'homing sia di X che Y, utilizzare le macro per assicurarsi che un asse sia homed per primo, quindi spostare il carrello lontano dal limite dell'asse, fare una pausa per almeno 2 secondi, quindi avviare l'orientamento dell'altro carrello. L'allontanamento dall'asse evita l'homing di un asse mentre l'altro viene premuto contro il limite dell'asse (cosa potrebbe distorcere il rilevamento dello stallo). La pausa \u00e8 necessaria per garantire che il flag di stallo del driver sia cancellata prima del homing. Un esempio di macro homing CoreXY potrebbe essere simile a: [gcode_macro HOME] gcode: G90 # Home Z G28 Z0 G1 Z10 F1200 # Home Y G28 Y0 G1 Y5 F1200 # Home X G4 P2000 G28 X0 G1 X5 F1200 Interrogazione e diagnosi delle impostazioni del driver \u00b6 Il comando DUMP_TMC \u00e8 uno strumento utile durante la configurazione e la diagnosi dei driver. Riporter\u00e0 tutti i campi configurati da Klipper cos\u00ec come tutti i campi che possono essere interrogati dal driver. Tutti i campi riportati sono definiti nella scheda tecnica Trinamic per ciascun driver. Queste schede tecniche possono essere trovate sul sito web Trinamic . Ottenere e rivedere i dati Trinamic affinch\u00e9 il conducente interpreti i risultati di DUMP_TMC. Configurazione delle impostazioni driver_XXX \u00b6 Klipper supporta la configurazione di molti campi driver di basso livello usando le impostazioni driver_XXX . Il Riferimento alla configurazione del driver TMC contiene l'elenco completo dei campi disponibili per ogni tipo di driver. Inoltre, quasi tutti i campi possono essere modificati in fase di esecuzione utilizzando il comando SET_TMC_FIELD . Ciascuno di questi campi \u00e8 definito nella scheda tecnica Trinamic per ciascun driver. Queste schede tecniche possono essere trovate sul sito web Trinamic . Si noti che i fogli dati Trinamic a volte utilizzano un'espressione che pu\u00f2 confondere un'impostazione di alto livello (come \"fine isteresi\") con un valore di campo di basso livello (ad esempio, \"HEND\"). In Klipper, driver_XXX e SET_TMC_FIELD impostano sempre il valore del campo di basso livello che viene effettivamente scritto nel driver. Quindi, ad esempio, se il foglio dati Trinamic afferma che \u00e8 necessario scrivere un valore di 3 nel campo HEND per ottenere una \"fine dell'isteresi\" di 0, impostare driver_HEND=3 per ottenere il valore di alto livello di 0. Domande comuni \u00b6 Posso usare la modalit\u00e0 StealthChop su un estrusore con anticipo della pressione? \u00b6 Molte persone usano con successo la modalit\u00e0 \"stealthChop\" con pressure advance di Klipper. Klipper implementa Smooth Pressure Advance che non introduce variazioni di velocit\u00e0 istantanee. Tuttavia, la modalit\u00e0 \"stealthChop\" pu\u00f2 produrre una coppia del motore inferiore e/o produrre un maggiore calore del motore. Potrebbe essere o meno una modalit\u00e0 adeguata per la tua particolare stampante. Continuo a ricevere gli errori \"Impossibile leggere tmc uart 'stepper_x' register IFCNT\"? \u00b6 Ci\u00f2 si verifica quando Klipper non \u00e8 in grado di comunicare con un driver tmc2208 o tmc2209. Assicurarsi che l'alimentazione del motore sia abilitata, poich\u00e9 il driver del motore passo-passo generalmente necessita dell'alimentazione del motore prima di poter comunicare con il microcontrollore. Se questo errore si verifica dopo aver eseguito il flashing di Klipper per la prima volta, \u00e8 possibile che il driver stepper sia stato precedentemente programmato in uno stato non compatibile con Klipper. Per ripristinare lo stato, rimuovere tutta l'alimentazione dalla stampante per alcuni secondi (scollegare fisicamente sia USB che le spine di alimentazione). In caso contrario, questo errore \u00e8 in genere il risultato di un cablaggio errato del pin UART o di una configurazione Klipper errata delle impostazioni del pin UART. Continuo a ricevere errori \"Unable to write tmc spi 'stepper_x' register ...\"? \u00b6 Ci\u00f2 si verifica quando Klipper non \u00e8 in grado di comunicare con un driver tmc2130 o tmc5160. Assicurarsi che l'alimentazione del motore sia abilitata, poich\u00e9 il driver del motore passo-passo generalmente necessita dell'alimentazione del motore prima di poter comunicare con il microcontrollore. In caso contrario, questo errore \u00e8 in genere il risultato di un cablaggio SPI errato, una configurazione Klipper errata delle impostazioni SPI o una configurazione incompleta dei dispositivi su un bus SPI. Nota che se il driver si trova su un bus SPI condiviso con pi\u00f9 dispositivi, assicurati di configurare completamente ogni dispositivo su quel bus SPI condiviso in Klipper. Se un dispositivo su un bus SPI condiviso non \u00e8 configurato, potrebbe rispondere in modo errato a comandi non previsti e danneggiare la comunicazione con il dispositivo previsto. Se \u00e8 presente un dispositivo su un bus SPI condiviso che non pu\u00f2 essere configurato in Klipper, utilizzare una sezione di configurazione static_digital_output per impostare il pin CS del dispositivo inutilizzato alto (in modo che non tenti utilizzare il bus SPI). Lo schema della scheda \u00e8 spesso un utile riferimento per trovare quali dispositivi si trovano su un bus SPI e i pin associati. Perch\u00e9 ho ricevuto un errore \"TMC reports error: ...\"? \u00b6 Questo tipo di errore indica che il driver TMC ha rilevato un problema e si \u00e8 disabilitato. Cio\u00e8, il conducente ha smesso di mantenere la sua posizione e ha ignorato i comandi di movimento. Se Klipper rileva che un driver attivo si \u00e8 disabilitato, la stampante passer\u00e0 allo stato di \"spegnimento\". \u00c8 anche possibile che si verifichi un arresto TMC segnala errore a causa di errori SPI che impediscono la comunicazione con il driver (su tmc2130, tmc5160 o tmc2660). Se ci\u00f2 si verifica, \u00e8 normale che lo stato del driver riportato mostri 00000000 o ffffffff , ad esempio: TMC reports error: DRV_STATUS: ffffffff ... O TMC reports error: READRSP@RDSEL2: 00000000 ... . Tale errore pu\u00f2 essere dovuto a un problema di cablaggio SPI o pu\u00f2 essere dovuto a un ripristino automatico o a un guasto del driver TMC. Alcuni errori comuni e suggerimenti per diagnosticarli: TMC segnala l'errore: ... ot=1(OvertempError!) \u00b6 Ci\u00f2 indica che il driver del motore si \u00e8 disabilitato perch\u00e9 \u00e8 diventato troppo caldo. Le soluzioni tipiche consistono nel ridurre la corrente del motore passo-passo, aumentare il raffreddamento sul driver del motore passo-passo e/o aumentare il raffreddamento sul motore passo-passo. TMC segnala un errore: ... ShortToGND O LowSideShort \u00b6 Ci\u00f2 indica che il driver si \u00e8 disabilitato perch\u00e9 ha rilevato una corrente molto elevata che passa attraverso il driver. Ci\u00f2 potrebbe indicare un filo allentato o in cortocircuito al motore passo-passo o all'interno del motore passo-passo stesso. Questo errore pu\u00f2 verificarsi anche se si utilizza la modalit\u00e0 StealthChop e il driver TMC non \u00e8 in grado di prevedere con precisione il carico meccanico del motore. (Se il driver fa una previsione scadente, potrebbe inviare troppa corrente attraverso il motore e attivare il proprio rilevamento di sovracorrente.) Per verificarlo, disabilitare la modalit\u00e0 StealthChop e verificare se gli errori continuano a verificarsi. TMC segnala un errore: ... reset=1(Reset) OR CS_ACTUAL=0(Reset?) OR SE=0(Reset?) \u00b6 Ci\u00f2 indica che il driver si \u00e8 ripristinato durante la stampa. Ci\u00f2 potrebbe essere dovuto a problemi di tensione o cablaggio. TMC segnala l'errore: ... uv_cp=1(Undervoltage!) \u00b6 Ci\u00f2 indica che il driver ha rilevato un evento di bassa tensione e si \u00e8 disabilitato. Ci\u00f2 potrebbe essere dovuto a problemi di cablaggio o alimentazione. Come si regola la modalit\u00e0 spreadCycle/coolStep/etc. sui miei driver? \u00b6 Il sito web Trinamic contiene guide sulla configurazione dei driver. Queste guide sono spesso tecniche, di basso livello e potrebbero richiedere hardware specializzato. In ogni caso, sono la migliore fonte di informazioni.","title":"Driver TMC"},{"location":"TMC_Drivers.html#driver-tmc","text":"Questo documento fornisce informazioni sull'utilizzo dei driver Trinamic per motori stepper in modalit\u00e0 SPI/UART su Klipper. Klipper pu\u00f2 anche utilizzare i driver Trinamic nella loro \"modalit\u00e0 standalone\". Tuttavia, quando i driver sono in questa modalit\u00e0, non \u00e8 necessaria alcuna configurazione speciale di Klipper e le funzionalit\u00e0 avanzate di Klipper discusse in questo documento non sono disponibili. Oltre a questo documento, assicurati di rivedere il riferimento alla configurazione del driver TMC .","title":"Driver TMC"},{"location":"TMC_Drivers.html#regolazione-della-corrente-del-motore","text":"Una corrente pi\u00f9 alta del driver aumenta la precisione del posizionamento e la coppia. Tuttavia, una corrente pi\u00f9 elevata aumenta anche il calore prodotto dal motore passo-passo e dal driver del motore passo-passo. Se il driver del motore passo-passo si surriscalda, si disabiliter\u00e0 e Klipper segnaler\u00e0 un errore. Se il motore passo-passo si surriscalda, perde coppia e precisione di posizionamento. (Se diventa molto caldo, potrebbe anche fondere le parti di plastica attaccate o vicino ad esso.) Come consiglio generale per l'ottimizzazione, preferire valori di corrente pi\u00f9 elevati purch\u00e9 il motore passo-passo non si surriscaldi troppo e il driver del motore passo-passo non segnali avvisi o errori. In generale, va bene che il motore passo-passo sia caldo, ma non dovrebbe diventare cos\u00ec caldo da risultare doloroso al tatto.","title":"Regolazione della corrente del motore"},{"location":"TMC_Drivers.html#preferibilmente-non-specificare-un-hold_current","text":"Se si configura un hold_current , il driver TMC pu\u00f2 ridurre la corrente al motore passo-passo quando rileva che il passo-passo non si sta muovendo. Tuttavia, la variazione della corrente del motore pu\u00f2 di per s\u00e9 introdurre il movimento del motore. Ci\u00f2 pu\u00f2 verificarsi a causa di \"forze di arresto\" all'interno del motore passo-passo (il magnete permanente nel rotore tira verso i denti di ferro nello statore) o a causa di forze esterne sul carrello dell'asse. La maggior parte dei motori passo-passo non otterr\u00e0 un beneficio significativo dalla riduzione della corrente durante le normali stampe, perch\u00e9 pochi movimenti di stampa lasceranno un motore passo-passo inattivo per un tempo sufficientemente lungo da attivare la funzione hold_current . Ed \u00e8 improbabile che si vogliano introdurre sottili artefatti di stampa nelle poche mosse di stampa che lasciano uno stepper inattivo sufficientemente a lungo. Se si desidera ridurre la corrente ai motori durante le routine di avvio della stampa, considerare l'emissione di comandi SET_TMC_CURRENT in una START_PRINT macro per regolare la corrente prima e dopo i normali spostamenti di stampa. Alcune stampanti con motori Z dedicati che sono inattivi durante i normali movimenti di stampa (nessuna bed_mesho, nessuna inclinazione_piatto, nessuna correzione_inclinazione Z, nessuna stampa in \"modalit\u00e0 vaso\", ecc.) potrebbero scoprire che i motori Z funzionano a temperature pi\u00f9 basse con un hold_current . Se si implementa questo, assicurarsi di prendere in considerazione questo tipo di movimento dell'asse Z non comandato durante il livellamento del piatto, il rilevamento del piatto, la calibrazione della sonda e simili. Anche driver_TPOWERDOWN e driver_IHOLDDELAY dovrebbero essere calibrati di conseguenza. Se non sei sicuro, preferisci non specificare un hold_current .","title":"Preferibilmente non specificare un hold_current"},{"location":"TMC_Drivers.html#impostazione-della-modalita-spreadcycle-rispetto-a-stealthchop","text":"Per impostazione predefinita, Klipper mette i driver TMC in modalit\u00e0 \"spreadCycle\". Se il driver supporta \"stealthChop\", pu\u00f2 essere abilitato aggiungendo stealthchop_threshold: 999999 alla sezione di configurazione di TMC. In generale, la modalit\u00e0 SpreadCycle fornisce una coppia maggiore e una maggiore precisione di posizionamento rispetto alla modalit\u00e0 StealthChop. Tuttavia, la modalit\u00e0 StealthChop pu\u00f2 produrre un rumore udibile notevolmente inferiore su alcune stampanti. I test di confronto delle modalit\u00e0 hanno mostrato un \"ritardo posizionale\" aumentato di circa il 75% di un passo completo durante i movimenti a velocit\u00e0 costante quando si utilizza la modalit\u00e0 StealthChop (ad esempio, su una stampante con distanza_rotazione di 40 mm e 200 passi_per_rotazione, la deviazione di posizione dei movimenti a velocit\u00e0 costante \u00e8 aumentata di ~0,150 mm). Tuttavia, questo \"ritardo nell'ottenimento della posizione richiesta\" potrebbe non manifestarsi come un difetto di stampa significativo e si potrebbe preferire il comportamento pi\u00f9 silenzioso della modalit\u00e0 stealthChop. Si consiglia di utilizzare sempre la modalit\u00e0 \"spreadCycle\" (non specificando stealthchop_threshold ) o di utilizzare sempre la modalit\u00e0 \"stealthChop\" (impostando stealthchop_threshold su 999999). Sfortunatamente, i driver spesso producono risultati scadenti e confusi se la modalit\u00e0 cambia mentre il motore \u00e8 a una velocit\u00e0 diversa da zero.","title":"Impostazione della modalit\u00e0 \"spreadCycle\" rispetto a \"stealthChop\""},{"location":"TMC_Drivers.html#limpostazione-dellinterpolazione-tmc-introduce-una-piccola-deviazione-di-posizione","text":"L'impostazione interpolate del driver TMC pu\u00f2 ridurre il rumore udibile del movimento della stampante a costo di introdurre un piccolo errore di posizione sistemico. Questo errore di posizione sistematico deriva dal ritardo del driver nell'esecuzione dei \"passi\" inviati da Klipper. Durante i movimenti a velocit\u00e0 costante, questo ritardo si traduce in un errore di posizione di quasi mezzo micropasso configurato (pi\u00f9 precisamente, l'errore \u00e8 di mezzo micropasso meno un 512esimo di un passo intero). Ad esempio, su un asse con una distanza_rotazione di 40 mm, 200 passi_per_rotazione e 16 micropassi, l'errore sistemico introdotto durante i movimenti a velocit\u00e0 costante \u00e8 ~0,006 mm. Per una migliore precisione di posizionamento, considerare l'utilizzo della modalit\u00e0 SpreadCycle e disabilitare l'interpolazione (impostare interpolate: False nella configurazione del driver TMC). Se configurato in questo modo, \u00e8 possibile aumentare l'impostazione microstep per ridurre il rumore udibile durante il movimento del passo-passo. Tipicamente, un'impostazione microstep di 64 o 128 avr\u00e0 un rumore udibile simile all'interpolazione e lo far\u00e0 senza introdurre un errore posizionale sistemico. Se si utilizza la modalit\u00e0 StealthChop, l'imprecisione posizionale dell'interpolazione \u00e8 piccola rispetto all'imprecisione posizionale introdotta dalla modalit\u00e0 StealthChop. Pertanto l'interpolazione dell'ottimizzazione non \u00e8 considerata utile in modalit\u00e0 StealthChop e si pu\u00f2 lasciare l'interpolazione nel suo stato predefinito.","title":"L'impostazione dell'interpolazione TMC introduce una piccola deviazione di posizione"},{"location":"TMC_Drivers.html#homing-sensorless","text":"L'homing senza sensori consente di posizionare un asse senza la necessit\u00e0 di un finecorsa fisico. Invece, il carrello sull'asse viene spostato nel finecorsa meccanico facendo perdere passi al motore passo-passo. Il driver stepper rileva i passi persi e lo indica all'MCU di controllo (Klipper) attivando un pin. Queste informazioni possono essere utilizzate da Klipper come fine corsa per l'asse. Questa guida illustra l'impostazione dell'homing sensorless per l'asse X della stampante (cartesiana). Tuttavia, funziona allo stesso modo con tutti gli altri assi (che richiedono un fine corsa). Dovresti configurarlo e sintonizzarlo per un asse alla volta.","title":"Homing Sensorless"},{"location":"TMC_Drivers.html#limitazioni","text":"Assicurati che i tuoi componenti meccanici siano in grado di sopportare il carico del carrello che urta ripetutamente il limite dell'asse. Soprattutto le viti di comando potrebbero generare molta forza. L'homing di un asse Z facendo urtare l'ugello sulla superficie di stampa potrebbe non essere una buona idea. Per ottenere i migliori risultati, verificare che il carrello dell'asse stabilisca un contatto stabile con il limite dell'asse. Inoltre, l'homing sensorless potrebbe non essere sufficientemente preciso per la tua stampante. Sebbene l'homing degli assi X e Y su una macchina cartesiana possa funzionare bene, l'homing dell'asse Z in genere non \u00e8 sufficientemente preciso e pu\u00f2 comportare un'altezza del primo strato incoerente. L'homing di una stampante delta sensorless non \u00e8 consigliabile a causa della mancanza di precisione. Inoltre, il rilevamento dello stallo del driver passo-passo dipende dal carico meccanico sul motore, dalla corrente del motore e dalla temperatura del motore (resistenza della bobina). L'homing sensorless funziona meglio a velocit\u00e0 medie del motore. Per velocit\u00e0 molto basse (inferiori a 10 giri/min) il motore non genera una significativa EMF di ritorno e il TMC non \u00e8 in grado di rilevare in modo affidabile gli stalli del motore. Inoltre, a velocit\u00e0 molto elevate, l'EMF di ritorno del motore si avvicina alla tensione di alimentazione del motore, quindi il TMC non \u00e8 pi\u00f9 in grado di rilevare gli stalli. Si consiglia di dare un'occhiata alla scheda tecnica del proprio TMC specifico. L\u00ec puoi anche trovare maggiori dettagli sulle limitazioni di questa configurazione.","title":"Limitazioni"},{"location":"TMC_Drivers.html#prerequisiti","text":"Sono necessari alcuni prerequisiti per utilizzare l'homing sensorless: Driver passo-passo TMC compatibile con stallGuard (tmc2130, tmc2209, tmc2660 o tmc5160). Interfaccia SPI/UART del driver TMC cablata al microcontrollore (la modalit\u00e0 stand-alone non funziona). Il pin \"DIAG\" o \"SG_TST\" appropriato del driver TMC collegato al microcontrollore. I passaggi nel documento config checks devono essere eseguiti per confermare che i motori passo-passo siano configurati e funzionino correttamente.","title":"Prerequisiti"},{"location":"TMC_Drivers.html#messa-a-punto","text":"La procedura qui descritta prevede sei passaggi principali: Scegli una velocit\u00e0 di homing. Configura il file printer.cfg per abilitare l'homing sensorless. Trova l'impostazione stallguard con la massima sensibilit\u00e0 che funziona con successo. Trova l'impostazione stallguard con la sensibilit\u00e0 pi\u00f9 bassa che effettua homing con successo con un solo tocco. Aggiorna il printer.cfg con l'impostazione di stallguard desiderata. Crea o aggiorna le macro printer.cfg per homing in modo coerente.","title":"Messa a punto"},{"location":"TMC_Drivers.html#scegli-la-velocita-di-homing","text":"La velocit\u00e0 di homing \u00e8 una scelta importante quando si esegue l'homing senza sensori. \u00c8 consigliabile utilizzare una velocit\u00e0 di riferimento bassa in modo che il carrello non eserciti una forza eccessiva sul telaio quando entra in contatto con l'estremit\u00e0 della rotaia. Tuttavia, i driver TMC non sono in grado di rilevare in modo affidabile uno stallo a velocit\u00e0 molto basse. Un buon punto di partenza per la velocit\u00e0 di homing \u00e8 che il motore passo-passo esegua una rotazione completa ogni due secondi. Per molti assi questa sar\u00e0 la rotation_distance divisa per due. Per esempio: [stepper_x] rotation_distance: 40 homing_speed: 20 ...","title":"Scegli la velocit\u00e0 di homing"},{"location":"TMC_Drivers.html#configura-printercfg-per-lhoming-sensorless","text":"L'impostazione homing_retract_dist deve essere impostata su zero nella sezione di configurazione stepper_x per disabilitare il secondo movimento di homing. Il secondo tentativo di homing non aggiunge valore quando si utilizza l'homing sensorless, non funzioner\u00e0 in modo affidabile e confonder\u00e0 il processo di ottimizzazione. Assicurati che un'impostazione hold_current non sia specificata nella sezione del driver TMC del file config. (Se viene impostata una hold_current, dopo che \u00e8 stato stabilito il contatto, il motore si arresta mentre il carrello viene premuto contro l'estremit\u00e0 del binario e la riduzione della corrente mentre si trova in quella posizione pu\u00f2 causare il movimento del carrello, il che si traduce in prestazioni scadenti e confonde il processo di regolazione.) \u00c8 necessario configurare i pin di homing sensorless e configurare le impostazioni iniziali di \"stallguard\". Una configurazione di esempio tmc2209 per un asse X potrebbe essere simile a: [tmc2209 stepper_x] diag_pin: ^PA1 # Impostare sul pin MCU collegato al pin TMC DIAG driver_SGTHRS: 255 #255 \u00e8 il valore pi\u00f9 sensibile, 0 \u00e8 il meno sensibile ... [stepper_x] endstop_pin: tmc2209_stepper_x:virtual_endstop homing_retract_dist: 0 ... Un esempio di configurazione tmc2130 o tmc5160 potrebbe essere simile a: [tmc2130 stepper_x] diag1_pin: ^!PA1 # Pin collegato al pin TMC DIAG1 (o utilizzare pin diag0_pin / DIAG0) driver_SGT: -64 # -64 \u00e8 il valore pi\u00f9 sensibile, 63 \u00e8 il meno sensibile ... [stepper_x] endstop_pin: tmc2130_stepper_x:virtual_endstop homing_retract_dist: 0 ... Un esempio di configurazione di tmc2660 potrebbe essere simile a: [tmc2660 stepper_x] driver_SGT: -64 # -64 \u00e8 il valore pi\u00f9 sensibile, 63 \u00e8 il meno sensibile ... [stepper_x] endstop_pin: ^PA1 # Pin collegato al pin TMC SG_TST homing_retract_dist: 0 ... Gli esempi sopra mostrano solo le impostazioni specifiche per l'homing sensorless. Vedere il riferimento alla configurazione per tutte le opzioni disponibili.","title":"Configura printer.cfg per l'homing sensorless"},{"location":"TMC_Drivers.html#trova-la-massima-sensibilita-che-porta-a-homing-con-successo","text":"Posizionare il carrello vicino al centro del binario. Utilizzare il comando SET_TMC_FIELD per impostare la sensibilit\u00e0 pi\u00f9 alta. Per tmc2209: SET_TMC_FIELD STEPPER=stepper_x FIELD=SGTHRS VALUE=255 Per tmc2130, tmc5160 e tmc2660: SET_TMC_FIELD STEPPER=stepper_x FIELD=sgt VALUE=-64 Quindi inviare un comando G28 X0 e verificare che l'asse non si muova affatto o smetta rapidamente di muoversi. Se l'asse non si ferma, inviare un M112 per fermare la stampante - qualcosa non \u00e8 corretto con il cablaggio o la configurazione dei pin diag/sg_tst e deve essere corretto prima di continuare. Quindi, diminuire progressivamente la sensibilit\u00e0 dell'impostazione VALUE ed eseguire nuovamente i comandi SET_TMC_FIELD G28 X0 per trovare la sensibilit\u00e0 pi\u00f9 alta che fa s\u00ec che il carrello si muova con successo fino all'arresto e si arresti. (Per i driver tmc2209 questo diminuir\u00e0 SGTHRS, per altri conducenti aumenter\u00e0 il sgt.) Assicurati di iniziare ogni tentativo con il carrello vicino al centro del binario (se necessario, emetti M84 e quindi sposta manualmente il carrello sul centro). Dovrebbe essere possibile trovare la sensibilit\u00e0 pi\u00f9 alta che si adatta in modo affidabile (le impostazioni con una sensibilit\u00e0 pi\u00f9 alta comportano movimenti piccoli o nulli). Nota il valore trovato come sensibilit\u00e0_massima . (Se si ottiene la sensibilit\u00e0 minima possibile (SGTHRS=0 o sgt=63) senza alcun movimento del carrello, allora qualcosa non \u00e8 corretto con il cablaggio o la configurazione dei pin diag/sg_tst e deve essere corretto prima di continuare.) Quando si cerca la sensibilit\u00e0_massima, pu\u00f2 essere conveniente passare a diverse impostazioni VALUE (in modo da dividere in due il parametro VALUE). In tal caso, prepararsi a emettere un comando M112 per arrestare la stampante, poich\u00e9 un'impostazione con una sensibilit\u00e0 molto bassa potrebbe far \"sbattere\" ripetutamente l'asse contro l'estremit\u00e0 del binario. Assicurati di attendere un paio di secondi tra ogni tentativo di homing. Dopo che il driver TMC ha rilevato uno stallo, potrebbe volerci un po' di tempo per cancellare il suo indicatore interno ed essere in grado di rilevare un altro stallo. Durante questi test di ottimizzazione, se un comando G28 X0 non si sposta fino al limite dell'asse, prestare attenzione nell'emettere qualsiasi comando di movimento regolare (ad es. G1 ). Klipper non avr\u00e0 una corretta comprensione della posizione del carrello e un comando di spostamento potrebbe causare risultati indesiderati e confusi.","title":"Trova la massima sensibilit\u00e0 che porta a homing con successo"},{"location":"TMC_Drivers.html#trova-la-sensibilita-piu-bassa-che-porta-a-homing-con-un-solo-tocco","text":"Quando si effettua l'homing con il valore maximum_sensitivity trovato, l'asse dovrebbe spostarsi all'estremit\u00e0 del binario e fermarsi con un \"tocco singolo\", ovvero non dovrebbe esserci un \"clic\" o un \"sbattere\". (Se c'\u00e8 un suono che sbatte o scatta alla sensibilit\u00e0_massima, allora la velocit\u00e0 di riferimento potrebbe essere troppo bassa, la corrente del driver potrebbe essere troppo bassa o la corsa di riferimento senza sensore potrebbe non essere una buona scelta per l'asse.) Il passo successivo \u00e8 spostare di nuovo continuamente il carrello in una posizione vicino al centro della rotaia, diminuire la sensibilit\u00e0 ed eseguire i comandi SET_TMC_FIELD G28 X0 - l'obiettivo ora \u00e8 trovare la sensibilit\u00e0 pi\u00f9 bassa che risulti ancora nel la carrozza torna con successo al punto di riferimento con un \"tocco singolo\". Cio\u00e8, non \"sbatte\" o \"clic\" quando viene a contatto con l'estremit\u00e0 del binario. Nota il valore trovato come sensibilit\u00e0_minima .","title":"Trova la sensibilit\u00e0 pi\u00f9 bassa che porta a homing con un solo tocco"},{"location":"TMC_Drivers.html#aggiorna-printercfg-con-il-valore-della-sensibilita","text":"Dopo aver trovato sensibilit\u00e0_massima e sensibilit\u00e0_minima , utilizzare una calcolatrice per ottenere la sensibilit\u00e0 consigliata come sensibilit\u00e0_minima + (sensibilit\u00e0_massima - sensibilit\u00e0_minima)/3 . La sensibilit\u00e0 consigliata dovrebbe essere compresa tra il minimo e il massimo, ma leggermente pi\u00f9 vicino al minimo. Arrotonda il valore finale al valore intero pi\u00f9 vicino. Per tmc2209 impostalo nella configurazione come driver_SGTHRS , per altri driver TMC impostalo nella configurazione come driver_SGT . Se l'intervallo tra sensibilit\u00e0_massima e sensibilit\u00e0_minima \u00e8 piccolo (ad esempio, inferiore a 5), potrebbe risultare in un homing instabile. Una velocit\u00e0 di riferimento pi\u00f9 elevata pu\u00f2 aumentare il range e rendere l'operazione pi\u00f9 stabile. Si noti che se viene apportata una modifica alla corrente del driver, alla velocit\u00e0 di riferimento o viene apportata una modifica notevole all'hardware della stampante, sar\u00e0 necessario eseguire nuovamente il processo di ottimizzazione.","title":"Aggiorna printer.cfg con il valore della sensibilit\u00e0"},{"location":"TMC_Drivers.html#utilizzo-delle-macro-durante-lhoming","text":"Dopo aver completato l'homing senza sensori, il carrello verr\u00e0 premuto contro l'estremit\u00e0 del binario e lo stepper eserciter\u00e0 una forza sul telaio fino a quando il carrello non si allontana. \u00c8 una buona idea creare una macro per posizionare l'asse e allontanare immediatamente il carrello dall'estremit\u00e0 della rotaia. \u00c8 una buona idea che la macro si metta in pausa di almeno 2 secondi prima di iniziare l'homing sensorless (o altrimenti assicurarsi che non ci siano stati movimenti sullo stepper per 2 secondi). Senza ritardo \u00e8 possibile che il flag di stallo interno del driver sia ancora impostato da un movimento precedente. Pu\u00f2 anche essere utile fare in modo che quella macro imposti la corrente del driver prima della corsa di riferimento e imposti una nuova corrente dopo che il carrello si \u00e8 allontanato. Una macro di esempio potrebbe assomigliare a: [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 %} # Imposta la corrente per l'homing sensorless SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR} # Fai una pausa per assicurarti che il flag di stallo del driver sia clear G4 P2000 # Home G28 X0 # Spostamento G90 G1 X5 F1200 # Imposta corrente durante la stampa SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CUR} La macro risultante pu\u00f2 essere chiamata da una sezione di configurazione homing_override o da una START_PRINT macro . Si noti che se viene modificata la corrente del driver durante l'homing, il processo di ottimizzazione dovrebbe essere eseguito nuovamente.","title":"Utilizzo delle macro durante l'homing"},{"location":"TMC_Drivers.html#suggerimenti-per-lhoming-sensorless-su-corexy","text":"\u00c8 possibile utilizzare l'homing sensorless sui carrelli X e Y di una stampante CoreXY. Klipper usa lo stepper [stepper_x] per rilevare gli stalli durante l'homing del carrello X e usa lo stepper [stepper_y] per rilevare gli stalli durante l'homing del carrello Y. Utilizzare la guida alla messa a punto sopra descritta per trovare la \"sensibilit\u00e0 allo stallo\" appropriata per ciascun carrello, ma prestare attenzione alle seguenti restrizioni: Quando si utilizza l'homing sensorless su CoreXY, assicurarsi che non sia configurato hold_current per nessuno dei due stepper. Durante la messa a punto, assicurati che entrambi i carrelli X e Y siano vicini al centro dei loro binari prima di ogni tentativo di homing. Al termine dell'ottimizzazione, quando si esegue l'homing sia di X che Y, utilizzare le macro per assicurarsi che un asse sia homed per primo, quindi spostare il carrello lontano dal limite dell'asse, fare una pausa per almeno 2 secondi, quindi avviare l'orientamento dell'altro carrello. L'allontanamento dall'asse evita l'homing di un asse mentre l'altro viene premuto contro il limite dell'asse (cosa potrebbe distorcere il rilevamento dello stallo). La pausa \u00e8 necessaria per garantire che il flag di stallo del driver sia cancellata prima del homing. Un esempio di macro homing CoreXY potrebbe essere simile a: [gcode_macro HOME] gcode: G90 # Home Z G28 Z0 G1 Z10 F1200 # Home Y G28 Y0 G1 Y5 F1200 # Home X G4 P2000 G28 X0 G1 X5 F1200","title":"Suggerimenti per l'homing sensorless su CoreXY"},{"location":"TMC_Drivers.html#interrogazione-e-diagnosi-delle-impostazioni-del-driver","text":"Il comando DUMP_TMC \u00e8 uno strumento utile durante la configurazione e la diagnosi dei driver. Riporter\u00e0 tutti i campi configurati da Klipper cos\u00ec come tutti i campi che possono essere interrogati dal driver. Tutti i campi riportati sono definiti nella scheda tecnica Trinamic per ciascun driver. Queste schede tecniche possono essere trovate sul sito web Trinamic . Ottenere e rivedere i dati Trinamic affinch\u00e9 il conducente interpreti i risultati di DUMP_TMC.","title":"Interrogazione e diagnosi delle impostazioni del driver"},{"location":"TMC_Drivers.html#configurazione-delle-impostazioni-driver_xxx","text":"Klipper supporta la configurazione di molti campi driver di basso livello usando le impostazioni driver_XXX . Il Riferimento alla configurazione del driver TMC contiene l'elenco completo dei campi disponibili per ogni tipo di driver. Inoltre, quasi tutti i campi possono essere modificati in fase di esecuzione utilizzando il comando SET_TMC_FIELD . Ciascuno di questi campi \u00e8 definito nella scheda tecnica Trinamic per ciascun driver. Queste schede tecniche possono essere trovate sul sito web Trinamic . Si noti che i fogli dati Trinamic a volte utilizzano un'espressione che pu\u00f2 confondere un'impostazione di alto livello (come \"fine isteresi\") con un valore di campo di basso livello (ad esempio, \"HEND\"). In Klipper, driver_XXX e SET_TMC_FIELD impostano sempre il valore del campo di basso livello che viene effettivamente scritto nel driver. Quindi, ad esempio, se il foglio dati Trinamic afferma che \u00e8 necessario scrivere un valore di 3 nel campo HEND per ottenere una \"fine dell'isteresi\" di 0, impostare driver_HEND=3 per ottenere il valore di alto livello di 0.","title":"Configurazione delle impostazioni driver_XXX"},{"location":"TMC_Drivers.html#domande-comuni","text":"","title":"Domande comuni"},{"location":"TMC_Drivers.html#posso-usare-la-modalita-stealthchop-su-un-estrusore-con-anticipo-della-pressione","text":"Molte persone usano con successo la modalit\u00e0 \"stealthChop\" con pressure advance di Klipper. Klipper implementa Smooth Pressure Advance che non introduce variazioni di velocit\u00e0 istantanee. Tuttavia, la modalit\u00e0 \"stealthChop\" pu\u00f2 produrre una coppia del motore inferiore e/o produrre un maggiore calore del motore. Potrebbe essere o meno una modalit\u00e0 adeguata per la tua particolare stampante.","title":"Posso usare la modalit\u00e0 StealthChop su un estrusore con anticipo della pressione?"},{"location":"TMC_Drivers.html#continuo-a-ricevere-gli-errori-impossibile-leggere-tmc-uart-stepper_x-register-ifcnt","text":"Ci\u00f2 si verifica quando Klipper non \u00e8 in grado di comunicare con un driver tmc2208 o tmc2209. Assicurarsi che l'alimentazione del motore sia abilitata, poich\u00e9 il driver del motore passo-passo generalmente necessita dell'alimentazione del motore prima di poter comunicare con il microcontrollore. Se questo errore si verifica dopo aver eseguito il flashing di Klipper per la prima volta, \u00e8 possibile che il driver stepper sia stato precedentemente programmato in uno stato non compatibile con Klipper. Per ripristinare lo stato, rimuovere tutta l'alimentazione dalla stampante per alcuni secondi (scollegare fisicamente sia USB che le spine di alimentazione). In caso contrario, questo errore \u00e8 in genere il risultato di un cablaggio errato del pin UART o di una configurazione Klipper errata delle impostazioni del pin UART.","title":"Continuo a ricevere gli errori \"Impossibile leggere tmc uart 'stepper_x' register IFCNT\"?"},{"location":"TMC_Drivers.html#continuo-a-ricevere-errori-unable-to-write-tmc-spi-stepper_x-register","text":"Ci\u00f2 si verifica quando Klipper non \u00e8 in grado di comunicare con un driver tmc2130 o tmc5160. Assicurarsi che l'alimentazione del motore sia abilitata, poich\u00e9 il driver del motore passo-passo generalmente necessita dell'alimentazione del motore prima di poter comunicare con il microcontrollore. In caso contrario, questo errore \u00e8 in genere il risultato di un cablaggio SPI errato, una configurazione Klipper errata delle impostazioni SPI o una configurazione incompleta dei dispositivi su un bus SPI. Nota che se il driver si trova su un bus SPI condiviso con pi\u00f9 dispositivi, assicurati di configurare completamente ogni dispositivo su quel bus SPI condiviso in Klipper. Se un dispositivo su un bus SPI condiviso non \u00e8 configurato, potrebbe rispondere in modo errato a comandi non previsti e danneggiare la comunicazione con il dispositivo previsto. Se \u00e8 presente un dispositivo su un bus SPI condiviso che non pu\u00f2 essere configurato in Klipper, utilizzare una sezione di configurazione static_digital_output per impostare il pin CS del dispositivo inutilizzato alto (in modo che non tenti utilizzare il bus SPI). Lo schema della scheda \u00e8 spesso un utile riferimento per trovare quali dispositivi si trovano su un bus SPI e i pin associati.","title":"Continuo a ricevere errori \"Unable to write tmc spi 'stepper_x' register ...\"?"},{"location":"TMC_Drivers.html#perche-ho-ricevuto-un-errore-tmc-reports-error","text":"Questo tipo di errore indica che il driver TMC ha rilevato un problema e si \u00e8 disabilitato. Cio\u00e8, il conducente ha smesso di mantenere la sua posizione e ha ignorato i comandi di movimento. Se Klipper rileva che un driver attivo si \u00e8 disabilitato, la stampante passer\u00e0 allo stato di \"spegnimento\". \u00c8 anche possibile che si verifichi un arresto TMC segnala errore a causa di errori SPI che impediscono la comunicazione con il driver (su tmc2130, tmc5160 o tmc2660). Se ci\u00f2 si verifica, \u00e8 normale che lo stato del driver riportato mostri 00000000 o ffffffff , ad esempio: TMC reports error: DRV_STATUS: ffffffff ... O TMC reports error: READRSP@RDSEL2: 00000000 ... . Tale errore pu\u00f2 essere dovuto a un problema di cablaggio SPI o pu\u00f2 essere dovuto a un ripristino automatico o a un guasto del driver TMC. Alcuni errori comuni e suggerimenti per diagnosticarli:","title":"Perch\u00e9 ho ricevuto un errore \"TMC reports error: ...\"?"},{"location":"TMC_Drivers.html#tmc-segnala-lerrore-ot1overtemperror","text":"Ci\u00f2 indica che il driver del motore si \u00e8 disabilitato perch\u00e9 \u00e8 diventato troppo caldo. Le soluzioni tipiche consistono nel ridurre la corrente del motore passo-passo, aumentare il raffreddamento sul driver del motore passo-passo e/o aumentare il raffreddamento sul motore passo-passo.","title":"TMC segnala l'errore: ... ot=1(OvertempError!)"},{"location":"TMC_Drivers.html#tmc-segnala-un-errore-shorttognd-o-lowsideshort","text":"Ci\u00f2 indica che il driver si \u00e8 disabilitato perch\u00e9 ha rilevato una corrente molto elevata che passa attraverso il driver. Ci\u00f2 potrebbe indicare un filo allentato o in cortocircuito al motore passo-passo o all'interno del motore passo-passo stesso. Questo errore pu\u00f2 verificarsi anche se si utilizza la modalit\u00e0 StealthChop e il driver TMC non \u00e8 in grado di prevedere con precisione il carico meccanico del motore. (Se il driver fa una previsione scadente, potrebbe inviare troppa corrente attraverso il motore e attivare il proprio rilevamento di sovracorrente.) Per verificarlo, disabilitare la modalit\u00e0 StealthChop e verificare se gli errori continuano a verificarsi.","title":"TMC segnala un errore: ... ShortToGND O LowSideShort"},{"location":"TMC_Drivers.html#tmc-segnala-un-errore-reset1reset-or-cs_actual0reset-or-se0reset","text":"Ci\u00f2 indica che il driver si \u00e8 ripristinato durante la stampa. Ci\u00f2 potrebbe essere dovuto a problemi di tensione o cablaggio.","title":"TMC segnala un errore: ... reset=1(Reset) OR CS_ACTUAL=0(Reset?) OR SE=0(Reset?)"},{"location":"TMC_Drivers.html#tmc-segnala-lerrore-uv_cp1undervoltage","text":"Ci\u00f2 indica che il driver ha rilevato un evento di bassa tensione e si \u00e8 disabilitato. Ci\u00f2 potrebbe essere dovuto a problemi di cablaggio o alimentazione.","title":"TMC segnala l'errore: ... uv_cp=1(Undervoltage!)"},{"location":"TMC_Drivers.html#come-si-regola-la-modalita-spreadcyclecoolstepetc-sui-miei-driver","text":"Il sito web Trinamic contiene guide sulla configurazione dei driver. Queste guide sono spesso tecniche, di basso livello e potrebbero richiedere hardware specializzato. In ogni caso, sono la migliore fonte di informazioni.","title":"Come si regola la modalit\u00e0 spreadCycle/coolStep/etc. sui miei driver?"},{"location":"TSL1401CL_Filament_Width_Sensor.html","text":"Sensore TSL1401CL di larghezza del filamento \u00b6 Questo documento descrive il modulo host del sensore di larghezza del filamento (Filament Width Sensor). L'hardware utilizzato per lo sviluppo di questo modulo host si basa sull'array di sensori lineari TSL1401CL, ma pu\u00f2 funzionare con qualsiasi array di sensori dotato di uscita analogica. Puoi trovare design su Thingiverse . Per utilizzare un array di sensori come sensore di larghezza del filamento, leggere Config Reference e G-Code documentation . Come funziona? \u00b6 Il sensore genera un'uscita analogica in base alla larghezza calcolata del filamento. La tensione di uscita \u00e8 sempre uguale alla larghezza del filamento rilevata (es. 1.65v, 1.70v, 3.0v). Il modulo host monitora le variazioni di tensione e regola il moltiplicatore di estrusione. Note: \u00b6 Letture del sensore eseguite con intervalli di 10 mm predefiniti Se necessario, sei libero di modificare questa impostazione modificando il parametro MEASUREMENT_INTERVAL_MM nel file filament_width_sensor.py .","title":"Sensore TSL1401CL di larghezza del filamento"},{"location":"TSL1401CL_Filament_Width_Sensor.html#sensore-tsl1401cl-di-larghezza-del-filamento","text":"Questo documento descrive il modulo host del sensore di larghezza del filamento (Filament Width Sensor). L'hardware utilizzato per lo sviluppo di questo modulo host si basa sull'array di sensori lineari TSL1401CL, ma pu\u00f2 funzionare con qualsiasi array di sensori dotato di uscita analogica. Puoi trovare design su Thingiverse . Per utilizzare un array di sensori come sensore di larghezza del filamento, leggere Config Reference e G-Code documentation .","title":"Sensore TSL1401CL di larghezza del filamento"},{"location":"TSL1401CL_Filament_Width_Sensor.html#come-funziona","text":"Il sensore genera un'uscita analogica in base alla larghezza calcolata del filamento. La tensione di uscita \u00e8 sempre uguale alla larghezza del filamento rilevata (es. 1.65v, 1.70v, 3.0v). Il modulo host monitora le variazioni di tensione e regola il moltiplicatore di estrusione.","title":"Come funziona?"},{"location":"TSL1401CL_Filament_Width_Sensor.html#note","text":"Letture del sensore eseguite con intervalli di 10 mm predefiniti Se necessario, sei libero di modificare questa impostazione modificando il parametro MEASUREMENT_INTERVAL_MM nel file filament_width_sensor.py .","title":"Note:"},{"location":"Using_PWM_Tools.html","text":"Utilizzo dei strumenti PWM \u00b6 Questo documento descrive come impostare un laser o un mandrino controllato da PWM usando output_pin e alcune macro. Come funziona? \u00b6 Riutilizzando l'output pwm della ventola della testina di stampa, \u00e8 possibile controllare laser o mandrini. Ci\u00f2 \u00e8 utile se si utilizzano testine di stampa intercambiabili, ad esempio il cambio utensile E3D o una soluzione fai-da-te. Di solito, gli strumenti cam come LaserWeb possono essere configurati per utilizzare i comandi M3-M5 , che stanno per velocit\u00e0 mandrino CW ( M3 S[0-255] ), velocit\u00e0 mandrino CCW ( M4 S[ 0-255] ) e arresto mandrino ( M5 ). Attenzione: Quando utilizzi un laser, mantieni tutte le precauzioni di sicurezza che ti vengono in mente! I laser a diodi sono generalmente invertiti. Ci\u00f2 significa che quando l'MCU si riavvia, il laser sar\u00e0 completamente acceso per il tempo necessario al riavvio dell'MCU. Per buona misura, si raccomanda di indossare sempre occhiali laser appropriati della giusta lunghezza d'onda se il laser \u00e8 alimentato e per disconnettere il laser quando non \u00e8 necessario. Inoltre, dovresti configurare un timeout di sicurezza, in modo che quando l'host o l'MCU riscontrano un errore, lo strumento si arresti. Per un esempio di configurazione, vedere config/sample-pwm-tool.cfg . Limitazioni attuali \u00b6 Esiste una limitazione della frequenza degli aggiornamenti PWM. Pur essendo molto preciso, un aggiornamento PWM pu\u00f2 verificarsi solo ogni 0,1 secondi, rendendolo quasi inutile per l'incisione raster. Tuttavia, esiste un ramo sperimentale con i propri compromessi. A lungo termine, si prevede di aggiungere questa funzionalit\u00e0 al klipper principale. Comandi \u00b6 M3/M4 S<value> : Imposta il duty-cycle PWM. Valori compresi tra 0 e 255. M5 : Arresta l'uscita PWM al valore di spegnimento. Configurazione Laserweb \u00b6 Se utilizzi Laserweb, una configurazione funzionante sarebbe: GCODE START: M5 ; Disabilita Laser G21 ; Set units to mm G90 ; Absolute positioning G0 Z0 F7000 ; Set Non-Cutting speed GCODE END: M5 ; Disabilita Laser G91 ; relative G0 Z+20 F4000 ; G90 ; absolute GCODE HOMING: M5 ; Disabilita Laser G28 ; Home all axis TOOL ON: M3 $INTENSITY TOOL OFF: M5 ; Disabilita Laser LASER INTENSITY: S","title":"Utilizzo dei strumenti PWM"},{"location":"Using_PWM_Tools.html#utilizzo-dei-strumenti-pwm","text":"Questo documento descrive come impostare un laser o un mandrino controllato da PWM usando output_pin e alcune macro.","title":"Utilizzo dei strumenti PWM"},{"location":"Using_PWM_Tools.html#come-funziona","text":"Riutilizzando l'output pwm della ventola della testina di stampa, \u00e8 possibile controllare laser o mandrini. Ci\u00f2 \u00e8 utile se si utilizzano testine di stampa intercambiabili, ad esempio il cambio utensile E3D o una soluzione fai-da-te. Di solito, gli strumenti cam come LaserWeb possono essere configurati per utilizzare i comandi M3-M5 , che stanno per velocit\u00e0 mandrino CW ( M3 S[0-255] ), velocit\u00e0 mandrino CCW ( M4 S[ 0-255] ) e arresto mandrino ( M5 ). Attenzione: Quando utilizzi un laser, mantieni tutte le precauzioni di sicurezza che ti vengono in mente! I laser a diodi sono generalmente invertiti. Ci\u00f2 significa che quando l'MCU si riavvia, il laser sar\u00e0 completamente acceso per il tempo necessario al riavvio dell'MCU. Per buona misura, si raccomanda di indossare sempre occhiali laser appropriati della giusta lunghezza d'onda se il laser \u00e8 alimentato e per disconnettere il laser quando non \u00e8 necessario. Inoltre, dovresti configurare un timeout di sicurezza, in modo che quando l'host o l'MCU riscontrano un errore, lo strumento si arresti. Per un esempio di configurazione, vedere config/sample-pwm-tool.cfg .","title":"Come funziona?"},{"location":"Using_PWM_Tools.html#limitazioni-attuali","text":"Esiste una limitazione della frequenza degli aggiornamenti PWM. Pur essendo molto preciso, un aggiornamento PWM pu\u00f2 verificarsi solo ogni 0,1 secondi, rendendolo quasi inutile per l'incisione raster. Tuttavia, esiste un ramo sperimentale con i propri compromessi. A lungo termine, si prevede di aggiungere questa funzionalit\u00e0 al klipper principale.","title":"Limitazioni attuali"},{"location":"Using_PWM_Tools.html#comandi","text":"M3/M4 S<value> : Imposta il duty-cycle PWM. Valori compresi tra 0 e 255. M5 : Arresta l'uscita PWM al valore di spegnimento.","title":"Comandi"},{"location":"Using_PWM_Tools.html#configurazione-laserweb","text":"Se utilizzi Laserweb, una configurazione funzionante sarebbe: GCODE START: M5 ; Disabilita Laser G21 ; Set units to mm G90 ; Absolute positioning G0 Z0 F7000 ; Set Non-Cutting speed GCODE END: M5 ; Disabilita Laser G91 ; relative G0 Z+20 F4000 ; G90 ; absolute GCODE HOMING: M5 ; Disabilita Laser G28 ; Home all axis TOOL ON: M3 $INTENSITY TOOL OFF: M5 ; Disabilita Laser LASER INTENSITY: S","title":"Configurazione Laserweb"}]} \ No newline at end of file
+{"config":{"indexing":"full","lang":["it"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"index.html","text":"Klipper \u00e8 un firmware per stampanti 3D. Combina la potenza di un computer con uno o pi\u00f9 microntrollori. Leggi la pagina sulle funzionalit\u00e0 per avere pi\u00f9 informazioni sul perch\u00e9 usare Klipper. Per iniziare ad usare Klipper comincia con la sua installazione . Klipper \u00e8 un software libero. Leggi la documentazione o visualizza il codice Klipper su github . Dipendiamo dal generoso supporto dei nostri sponsor .","title":"Benvenuto"},{"location":"API_Server.html","text":"Server API \u00b6 Questo documento descrive l'Application Programmer Interface (API) di Klipper. Questa interfaccia consente alle applicazioni esterne di interrogare e controllare il software host Klipper. Abilitazione del socket API \u00b6 Per utilizzare il server API, il software host klippy.py deve essere avviato con il parametro -a . Per esempio: ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer.cfg -a /tmp/klippy_uds -l /tmp/klippy.log Ci\u00f2 fa s\u00ec che il software host crei un socket di dominio Unix. Un client pu\u00f2 quindi aprire una connessione su quel socket e inviare comandi a Klipper. Consulta il progetto Moonraker per uno strumento popolare in grado di inoltrare richieste HTTP all'API Server Unix Domain Socket di Klipper. Formato richiesta \u00b6 I messaggi inviati e ricevuti sul socket sono stringhe codificate JSON terminate da un carattere ASCII 0x03: <json_object_1><0x03><json_object_2><0x03>... Klipper contiene uno strumento scripts/whconsole.py che pu\u00f2 eseguire il framing dei messaggi sopra. Per esempio: ~/klipper/scripts/whconsole.py /tmp/klippy_uds Questo strumento pu\u00f2 leggere una serie di comandi JSON da stdin, inviarli a Klipper e riportare i risultati. Lo strumento prevede che ogni comando JSON si trovi su una singola riga e aggiunger\u00e0 automaticamente il terminatore 0x03 durante la trasmissione di una richiesta. (Il server dell'API Klipper non ha un requisito di newline.) Protocollo API \u00b6 Il protocollo dei comandi utilizzato sul socket di comunicazione \u00e8 ispirato a json-rpc . Una richiesta potrebbe essere simile a: {\"id\": 123, \"method\": \"info\", \"params\": {}} e una risposta potrebbe essere simile a: {\"id\": 123, \"result\": {\"state_message\": \"Printer is ready\", \"klipper_path\": \"/home/pi/klipper\", \"config_file\": \"/home/pi/printer.cfg\", \"software_version\": \"v0.8.0-823-g883b1cb6\", \"hostname\": \"octopi\", \"cpu_info\": \"4 core ARMv7 Processor rev 4 (v7l)\", \"state\": \"ready\", \"python_path\": \"/home/pi/klippy-env/bin/python\", \"log_file\": \"/tmp/klippy.log\"}} Ogni richiesta deve essere un dizionario JSON. (Questo documento usa il termine Python \"dizionario\" per descrivere un \"oggetto JSON\" - una mappatura di coppie chiave/valore contenute in {} .) Il dizionario di richiesta deve contenere un parametro \"method\" che \u00e8 il nome stringa di un \"endpoint\" di Klipper disponibile. Il dizionario della richiesta pu\u00f2 contenere un parametro \"params\" che deve essere di tipo dizionario. I \"parametri\" forniscono ulteriori informazioni sui parametri all'\"endpoint\" di Klipper che gestisce la richiesta. Il suo contenuto \u00e8 specifico dell'\"endpoint\". Il dizionario delle richieste pu\u00f2 contenere un parametro \"id\" che pu\u00f2 essere di qualsiasi tipo JSON. Se \u00e8 presente \"id\", Klipper risponder\u00e0 alla richiesta con un messaggio di risposta contenente tale \"id\". Se \"id\" viene omesso (o impostato su un valore JSON \"null\"), Klipper non fornir\u00e0 alcuna risposta alla richiesta. Un messaggio di risposta \u00e8 un dizionario JSON contenente \"id\" e \"result\". Il \"risultato\" \u00e8 sempre un dizionario: i suoi contenuti sono specifici dell'\"endpoint\" che gestisce la richiesta. Se l'elaborazione di una richiesta genera un errore, il messaggio di risposta conterr\u00e0 un campo \"errore\" anzich\u00e9 un campo \"risultato\". Ad esempio, la richiesta: {\"id\": 123, \"method\": \"gcode/script\", \"params\": {\"script\": \"G1 X200\"}} potrebbe generare una risposta di errore come: {\"id\": 123, \"error\": {\"message\": \"Deve prima posizionare l'asse: 200.000 0.000 0.000 [0.000]\", \"error\": \"WebRequestError\"}} Klipper inizier\u00e0 sempre a elaborare le richieste nell'ordine in cui sono state ricevute. Tuttavia, alcune richieste potrebbero non essere completate immediatamente, il che potrebbe causare l'invio di una risposta associata non conforme rispetto alle risposte di altre richieste. Una richiesta JSON non sospender\u00e0 mai l'elaborazione di future richieste JSON. Sottoscrizioni \u00b6 Alcune richieste di \"endpoint\" di Klipper consentono di \"iscriversi\" a futuri messaggi di aggiornamento asincrono. Per esempio: {\"id\": 123, \"method\": \"gcode/subscribe_output\", \"params\": {\"response_template\":{\"key\": 345}}} inizialmente pu\u00f2 rispondere con: {\"id\": 123, \"result\": {}} e fare in modo che Klipper invii messaggi futuri simili a: {\"params\": {\"response\": \"ok B:22.8 /0.0 T0:22.4 /0.0\"}, \"key\": 345} Una richiesta di sottoscrizione accetta un dizionario \"response_template\" nel campo \"params\" della richiesta. Quel dizionario \"response_template\" viene utilizzato come modello per futuri messaggi asincroni: pu\u00f2 contenere coppie chiave/valore arbitrarie. Quando invier\u00e0 questi futuri messaggi asincroni, Klipper aggiunger\u00e0 un campo \"params\" contenente un dizionario con contenuti specifici per \"endpoint\" al modello di risposta e quindi invier\u00e0 quel modello. Se non viene fornito un campo \"response_template\", il valore predefinito \u00e8 un dizionario vuoto ( {} ). \"endpoint\" disponibili \u00b6 Per convenzione, gli \"endpoint\" di Klipper sono nella forma <module_name>/<some_name> . Quando si effettua una richiesta a un \"endpoint\", il nome completo deve essere impostato nel parametro \"method\" del dizionario di richiesta (ad esempio, {\"method\"=\"gcode/restart\"} ). info \u00b6 L'endpoint \"info\" viene utilizzato per ottenere informazioni sul sistema e sulla versione da Klipper. Viene anche utilizzato per fornire a Klipper le informazioni sulla versione del client. Ad esempio: {\"id\": 123, \"method\": \"info\", \"params\": { \"client_info\": { \"version\": \"v1\"}}} Se presente, il parametro \"client_info\" deve essere un dizionario, ma quel dizionario potrebbe avere contenuti arbitrari. I clienti sono incoraggiati a fornire il nome del client e la sua versione del software quando si connettono per la prima volta al server dell'API Klipper. emergency_stop \u00b6 L'endpoint \"emergency_stop\" viene utilizzato per indicare a Klipper di passare allo stato di \"spegnimento\". Si comporta in modo simile al comando G-Code M112 . Ad esempio: {\"id\": 123, \"method\": \"emergency_stop\"} register_remote_method \u00b6 Questo endpoint consente ai client di registrare metodi che possono essere chiamati da klipper. Restituir\u00e0 un oggetto vuoto in caso di successo. Per esempio: {\"id\": 123, \"method\": \"register_remote_method\", \"params\": {\"response_template\": {\"action\": \"run_paneldue_beep\"}, \"remote_method\": \"paneldue_beep\"}} will return: {\"id\": 123, \"result\": {}} Il metodo remoto paneldue_beep ora pu\u00f2 essere chiamato da Klipper. Nota che se il metodo accetta parametri, dovrebbero essere forniti come argomenti di parole chiave. Di seguito \u00e8 riportato un esempio di come pu\u00f2 essere chiamato da una gcode_macro: [gcode_macro PANELDUE_BEEP] gcode: {action_call_remote_method(\"paneldue_beep\", frequency=300, duration=1.0)} Quando viene eseguita la macro gcode PANELDUE_BEEP, Klipper invia qualcosa di simile al seguente tramite il socket: {\"action\": \"run_paneldue_beep\", \"params\": {\"frequency\": 300, \"duration\": 1.0}} oggetti/elenco \u00b6 Questo endpoint interroga l'elenco degli \"oggetti\" della stampante disponibili che \u00e8 possibile interrogare (tramite l'endpoint \"objects/query\"). Ad esempio: {\"id\": 123, \"method\": \"objects/list\"} potrebbe restituire: {\"id\": 123, \"result\": {\"objects\": [\"webhooks\", \"configfile\" , \"heaters\", \"gcode_move\", \"query_endstops\", \"idle_timeout\", \"toolhead\", \"extruder\"]}} oggetti/interrogazione \u00b6 Questo endpoint consente di interrogare informazioni da oggetti. Ad esempio: {\"id\": 123, \"method\": \"objects/query\", \"params\": {\"objects\": {\"toolhead\": [\"position\"], \"webhooks\": null}}} potrebbe restituire: {\"id\": 123, \"result\": {\"status\": {\"webhooks\": {\"state\": \"ready\", \"state_message\": \"Printer is ready\"}, \"toolhead\": { \"position\": [0.0, 0.0, 0.0, 0.0]}}, \"eventtime\": 3051555.377933684}} Il parametro \"objects\" nella richiesta deve essere un dizionario contenente gli oggetti stampante che devono essere interrogati - la chiave contiene il nome dell'oggetto stampante e il valore \u00e8 \"null\" (per interrogare tutti i campi) o un elenco di nomi di campo. Il messaggio di risposta conterr\u00e0 un campo \"status\" contenente un dizionario con le informazioni richieste: la chiave contiene il nome dell'oggetto stampante e il valore \u00e8 un dizionario contenente i suoi campi. Il messaggio di risposta conterr\u00e0 anche un campo \"eventtime\" contenente il timestamp da quando \u00e8 stata eseguita la query. I campi disponibili sono documentati nel documento Status Reference . oggetti/subscribe \u00b6 Questo endpoint consente di eseguire query e quindi iscriversi alle informazioni dagli oggetti stampante. La richiesta e la risposta dell'endpoint sono identiche all'endpoint \"objects/query\". Ad esempio: {\"id\": 123, \"method\": \"objects/subscribe\", \"params\": {\"objects\":{\"toolhead\": [\"position\"], \"webhooks\": [\"state\"] }, \"response_template\":{}}} potrebbe restituire: {\"id\": 123, \"result\": {\"status\": {\"webhooks\": {\"state\": \"ready\"}, \"toolhead\": {\"position\": [0.0, 0.0, 0.0, 0.0]}}, \"eventtime\": 3052153.382083195}} e generare messaggi asincroni successivi come: {\"params\": {\"status\": {\"webhooks\": {\"state\": \"shutdown\"}}, \"eventtime\": 3052165.418815847}} gcode/help \u00b6 Questo endpoint consente di interrogare i comandi G-Code disponibili che hanno una stringa di aiuto definita. Ad esempio: {\"id\": 123, \"method\": \"gcode/help\"} potrebbe restituire: {\"id\": 123, \"result\": {\"RESTORE_GCODE_STATE\": \"Restore a previously saved G-Code state\", \"PID_CALIBRATE\": \"Run PID calibration test\", \"QUERY_ADC\": \"Report the last value of an analog pin\", ...}} gcode/script \u00b6 Questo endpoint consente di eseguire una serie di comandi G-Code. Ad esempio: {\"id\": 123, \"method\": \"gcode/script\", \"params\": {\"script\": \"G90\"}} Se lo script G-Code fornito genera un errore, allora viene generata una risposta di errore. Tuttavia, se il comando G-Code produce un output del terminale, tale output del terminale non viene fornito nella risposta. (Utilizzare l'endpoint \"gcode/subscribe_output\" per ottenere l'output del terminale G-Code.) Se c'\u00e8 un comando G-Code in elaborazione quando viene ricevuta questa richiesta, lo script fornito verr\u00e0 messo in coda. Questo ritardo potrebbe essere significativo (ad esempio, se \u00e8 in esecuzione un comando di attesa del codice G per la temperatura). Il messaggio di risposta JSON viene inviato al completamento dell'elaborazione dello script. gcode/restart \u00b6 Questo endpoint consente di richiedere un riavvio: \u00e8 simile all'esecuzione del comando \"RESTART\" del codice G. Ad esempio: {\"id\": 123, \"method\": \"gcode/restart\"} Come con l'endpoint \"gcode/script\", questo endpoint viene completato solo dopo il completamento di tutti i comandi G-Code in sospeso. gcode/firmware_restart \u00b6 Questo \u00e8 simile all'endpoint \"gcode/restart\": implementa il comando G-Code \"FIRMWARE_RESTART\". Ad esempio: {\"id\": 123, \"method\": \"gcode/firmware_restart\"} Come con l'endpoint \"gcode/script\", questo endpoint viene completato solo dopo il completamento di tutti i comandi G-Code in sospeso. gcode/subscribe_output \u00b6 Questo endpoint viene utilizzato per iscriversi ai messaggi del terminale G-Code generati da Klipper. Ad esempio: {\"id\": 123, \"method\": \"gcode/subscribe_output\", \"params\": {\"response_template\":{}}} potrebbe in seguito produrre messaggi asincroni come: {\"params\": { \"response\": \"// Klipper state: Shutdown\"}} Questo endpoint ha lo scopo di supportare l'interazione umana tramite un'interfaccia \"finestra di terminale\". L'analisi del contenuto dall'output del terminale G-Code \u00e8 sconsigliata. Usa l'endpoint \"objects/subscribe\" per ottenere aggiornamenti sullo stato di Klipper. motion_report/dump_stepper \u00b6 Questo endpoint viene utilizzato per iscriversi al flusso di comandi queue_step interno di Klipper per uno stepper. L'ottenimento di questi aggiornamenti di movimento di basso livello pu\u00f2 essere utile per scopi diagnostici e di debug. L'utilizzo di questo endpoint pu\u00f2 aumentare il carico di sistema di Klipper. Una richiesta pu\u00f2 essere simile a: {\"id\": 123, \"method\":\"motion_report/dump_stepper\", \"params\": {\"name\": \"stepper_x\", \"response_template\": {}}} e potrebbe restituire: {\"id\": 123, \"result\": {\"header\": [\"interval\", \"count\", \"add\"]}} e potrebbe in seguito produrre messaggi asincroni come: {\"params\": {\" first_clock\": 179601081, \"first_time\": 8.98, \"first_position\": 0, \"last_clock\": 219686097, \"last_time\": 10.984, \"data\": [[179601081, 1, 0], [29573, 2, -8685] , [16230, 4, -1525], [10559, 6, -160], [10000, 976, 0], [10000, 1000, 0], [10000, 1000, 0], [10000, 1000, 0] , [9855, 5, 187], [11632, 4, 1534], [20756, 2, 9442]]}} Il campo \"intestazione\" nella risposta alla query iniziale viene utilizzato per descrivere i campi trovati nelle risposte \"dati\" successive. motion_report/dump_trapq \u00b6 Questo endpoint viene utilizzato per iscriversi alla \"coda di movimento trapezoidale\" interna di Klipper. L'ottenimento di questi aggiornamenti di movimento di basso livello pu\u00f2 essere utile per scopi diagnostici e di debug. L'utilizzo di questo endpoint pu\u00f2 aumentare il carico di sistema di Klipper. Una richiesta pu\u00f2 essere simile a: {\"id\": 123, \"method\": \"motion_report/dump_trapq\", \"params\": {\"name\": \"toolhead\", \"response_template\":{}}} e potrebbe restituire: {\"id\": 1, \"result\": {\"header\": [\"time\", \"duration\", \"start_velocity\", \"acceleration\", \"start_position\", \"direction\"]}} e potrebbero in seguito produrre messaggi asincroni quali: {\"params\": {\"data\": [[4.05, 1.0, 0.0, 0.0, [300.0, 0.0, 0.0], [0.0, 0.0, 0.0]], [5.054, 0.001, 0.0, 3000.0 , [300.0, 0.0, 0.0], [-1.0, 0.0, 0.0]]]}} Il campo \"intestazione\" nella risposta alla query iniziale viene utilizzato per descrivere i campi trovati nelle risposte \"dati\" successive. adxl345/dump_adxl345 \u00b6 Questo endpoint viene utilizzato per la sottoscrizione ai dati dell'accelerometro ADXL345. L'ottenimento di questi aggiornamenti di movimento di basso livello pu\u00f2 essere utile per scopi diagnostici e di debug. L'utilizzo di questo endpoint pu\u00f2 aumentare il carico di sistema di Klipper. Una richiesta pu\u00f2 essere simile a: {\"id\": 123, \"method\":\"adxl345/dump_adxl345\", \"params\": {\"sensor\": \"adxl345\", \"response_template\": {}}} e potrebbe restituire: {\"id\": 123,\"result\":{\"header\":[\"time\",\"x_acceleration\",\"y_acceleration\", \"z_acceleration\"]}} e potrebbe in seguito produrre messaggi asincroni come: {\"params \":{\"overflow\":0,\"data\":[[3292.432935,-535.44309,-1529.8374,9561.4], [3292.433256,-382.45935,-1606.32927,9561.48375]]}} Il campo \"intestazione\" nella risposta alla query iniziale viene utilizzato per descrivere i campi trovati nelle risposte \"dati\" successive. angle/dump_angle \u00b6 Questo endpoint viene utilizzato per iscriversi a dati del sensore angolare . L'ottenimento di questi aggiornamenti di movimento di basso livello pu\u00f2 essere utile per scopi diagnostici e di debug. L'utilizzo di questo endpoint pu\u00f2 aumentare il carico di sistema di Klipper. Una richiesta pu\u00f2 essere simile a: {\"id\": 123, \"method\":\"angle/dump_angle\", \"params\": {\"sensor\": \"my_angle_sensor\", \"response_template\": {}}} e potrebbe restituire: {\"id\": 123,\"result\":{\"header\":[\"time\",\"angle\"]}} e potrebbe in seguito produrre messaggi asincroni come: {\"params\":{\"position_offset\":3.151562 ,\"errori\":0, \"dati\":[[1290.951905,-5063],[1290.952321,-5065]]}} Il campo \"intestazione\" nella risposta alla query iniziale viene utilizzato per descrivere i campi trovati nelle risposte \"dati\" successive. pause_resume/cancel \u00b6 Questo endpoint \u00e8 simile all'esecuzione del comando G-Code \"PRINT_CANCEL\". Ad esempio: {\"id\": 123, \"method\": \"pause_resume/cancel\"} Come con l'endpoint \"gcode/script\", questo endpoint viene completato solo dopo il completamento di tutti i comandi G-Code in sospeso. pause_resume/pause \u00b6 Questo endpoint \u00e8 simile all'esecuzione del comando G-Code \"PAUSE\". Ad esempio: {\"id\": 123, \"method\": \"pause_resume/pause\"} Come con l'endpoint \"gcode/script\", questo endpoint viene completato solo dopo il completamento di tutti i comandi G-Code in sospeso. pause_resume/resume \u00b6 Questo endpoint \u00e8 simile all'esecuzione del comando G-Code \"RESUME\". Ad esempio: {\"id\": 123, \"method\": \"pause_resume/resume\"} Come con l'endpoint \"gcode/script\", questo endpoint viene completato solo dopo il completamento di tutti i comandi G-Code in sospeso. query_endstops/status \u00b6 Questo endpoint eseguir\u00e0 una query sugli endpoint attivi e restituir\u00e0 il loro stato. Ad esempio: {\"id\": 123, \"method\": \"query_endstops/status\"} potrebbe restituire: {\"id\": 123, \"result\": {\"y\": \"open\", \"x\": \"aperto\", \"z\": \"TRIGGERED\"}} Come con l'endpoint \"gcode/script\", questo endpoint viene completato solo dopo il completamento di tutti i comandi G-Code in sospeso.","title":"Server API"},{"location":"API_Server.html#server-api","text":"Questo documento descrive l'Application Programmer Interface (API) di Klipper. Questa interfaccia consente alle applicazioni esterne di interrogare e controllare il software host Klipper.","title":"Server API"},{"location":"API_Server.html#abilitazione-del-socket-api","text":"Per utilizzare il server API, il software host klippy.py deve essere avviato con il parametro -a . Per esempio: ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer.cfg -a /tmp/klippy_uds -l /tmp/klippy.log Ci\u00f2 fa s\u00ec che il software host crei un socket di dominio Unix. Un client pu\u00f2 quindi aprire una connessione su quel socket e inviare comandi a Klipper. Consulta il progetto Moonraker per uno strumento popolare in grado di inoltrare richieste HTTP all'API Server Unix Domain Socket di Klipper.","title":"Abilitazione del socket API"},{"location":"API_Server.html#formato-richiesta","text":"I messaggi inviati e ricevuti sul socket sono stringhe codificate JSON terminate da un carattere ASCII 0x03: <json_object_1><0x03><json_object_2><0x03>... Klipper contiene uno strumento scripts/whconsole.py che pu\u00f2 eseguire il framing dei messaggi sopra. Per esempio: ~/klipper/scripts/whconsole.py /tmp/klippy_uds Questo strumento pu\u00f2 leggere una serie di comandi JSON da stdin, inviarli a Klipper e riportare i risultati. Lo strumento prevede che ogni comando JSON si trovi su una singola riga e aggiunger\u00e0 automaticamente il terminatore 0x03 durante la trasmissione di una richiesta. (Il server dell'API Klipper non ha un requisito di newline.)","title":"Formato richiesta"},{"location":"API_Server.html#protocollo-api","text":"Il protocollo dei comandi utilizzato sul socket di comunicazione \u00e8 ispirato a json-rpc . Una richiesta potrebbe essere simile a: {\"id\": 123, \"method\": \"info\", \"params\": {}} e una risposta potrebbe essere simile a: {\"id\": 123, \"result\": {\"state_message\": \"Printer is ready\", \"klipper_path\": \"/home/pi/klipper\", \"config_file\": \"/home/pi/printer.cfg\", \"software_version\": \"v0.8.0-823-g883b1cb6\", \"hostname\": \"octopi\", \"cpu_info\": \"4 core ARMv7 Processor rev 4 (v7l)\", \"state\": \"ready\", \"python_path\": \"/home/pi/klippy-env/bin/python\", \"log_file\": \"/tmp/klippy.log\"}} Ogni richiesta deve essere un dizionario JSON. (Questo documento usa il termine Python \"dizionario\" per descrivere un \"oggetto JSON\" - una mappatura di coppie chiave/valore contenute in {} .) Il dizionario di richiesta deve contenere un parametro \"method\" che \u00e8 il nome stringa di un \"endpoint\" di Klipper disponibile. Il dizionario della richiesta pu\u00f2 contenere un parametro \"params\" che deve essere di tipo dizionario. I \"parametri\" forniscono ulteriori informazioni sui parametri all'\"endpoint\" di Klipper che gestisce la richiesta. Il suo contenuto \u00e8 specifico dell'\"endpoint\". Il dizionario delle richieste pu\u00f2 contenere un parametro \"id\" che pu\u00f2 essere di qualsiasi tipo JSON. Se \u00e8 presente \"id\", Klipper risponder\u00e0 alla richiesta con un messaggio di risposta contenente tale \"id\". Se \"id\" viene omesso (o impostato su un valore JSON \"null\"), Klipper non fornir\u00e0 alcuna risposta alla richiesta. Un messaggio di risposta \u00e8 un dizionario JSON contenente \"id\" e \"result\". Il \"risultato\" \u00e8 sempre un dizionario: i suoi contenuti sono specifici dell'\"endpoint\" che gestisce la richiesta. Se l'elaborazione di una richiesta genera un errore, il messaggio di risposta conterr\u00e0 un campo \"errore\" anzich\u00e9 un campo \"risultato\". Ad esempio, la richiesta: {\"id\": 123, \"method\": \"gcode/script\", \"params\": {\"script\": \"G1 X200\"}} potrebbe generare una risposta di errore come: {\"id\": 123, \"error\": {\"message\": \"Deve prima posizionare l'asse: 200.000 0.000 0.000 [0.000]\", \"error\": \"WebRequestError\"}} Klipper inizier\u00e0 sempre a elaborare le richieste nell'ordine in cui sono state ricevute. Tuttavia, alcune richieste potrebbero non essere completate immediatamente, il che potrebbe causare l'invio di una risposta associata non conforme rispetto alle risposte di altre richieste. Una richiesta JSON non sospender\u00e0 mai l'elaborazione di future richieste JSON.","title":"Protocollo API"},{"location":"API_Server.html#sottoscrizioni","text":"Alcune richieste di \"endpoint\" di Klipper consentono di \"iscriversi\" a futuri messaggi di aggiornamento asincrono. Per esempio: {\"id\": 123, \"method\": \"gcode/subscribe_output\", \"params\": {\"response_template\":{\"key\": 345}}} inizialmente pu\u00f2 rispondere con: {\"id\": 123, \"result\": {}} e fare in modo che Klipper invii messaggi futuri simili a: {\"params\": {\"response\": \"ok B:22.8 /0.0 T0:22.4 /0.0\"}, \"key\": 345} Una richiesta di sottoscrizione accetta un dizionario \"response_template\" nel campo \"params\" della richiesta. Quel dizionario \"response_template\" viene utilizzato come modello per futuri messaggi asincroni: pu\u00f2 contenere coppie chiave/valore arbitrarie. Quando invier\u00e0 questi futuri messaggi asincroni, Klipper aggiunger\u00e0 un campo \"params\" contenente un dizionario con contenuti specifici per \"endpoint\" al modello di risposta e quindi invier\u00e0 quel modello. Se non viene fornito un campo \"response_template\", il valore predefinito \u00e8 un dizionario vuoto ( {} ).","title":"Sottoscrizioni"},{"location":"API_Server.html#endpoint-disponibili","text":"Per convenzione, gli \"endpoint\" di Klipper sono nella forma <module_name>/<some_name> . Quando si effettua una richiesta a un \"endpoint\", il nome completo deve essere impostato nel parametro \"method\" del dizionario di richiesta (ad esempio, {\"method\"=\"gcode/restart\"} ).","title":"\"endpoint\" disponibili"},{"location":"API_Server.html#info","text":"L'endpoint \"info\" viene utilizzato per ottenere informazioni sul sistema e sulla versione da Klipper. Viene anche utilizzato per fornire a Klipper le informazioni sulla versione del client. Ad esempio: {\"id\": 123, \"method\": \"info\", \"params\": { \"client_info\": { \"version\": \"v1\"}}} Se presente, il parametro \"client_info\" deve essere un dizionario, ma quel dizionario potrebbe avere contenuti arbitrari. I clienti sono incoraggiati a fornire il nome del client e la sua versione del software quando si connettono per la prima volta al server dell'API Klipper.","title":"info"},{"location":"API_Server.html#emergency_stop","text":"L'endpoint \"emergency_stop\" viene utilizzato per indicare a Klipper di passare allo stato di \"spegnimento\". Si comporta in modo simile al comando G-Code M112 . Ad esempio: {\"id\": 123, \"method\": \"emergency_stop\"}","title":"emergency_stop"},{"location":"API_Server.html#register_remote_method","text":"Questo endpoint consente ai client di registrare metodi che possono essere chiamati da klipper. Restituir\u00e0 un oggetto vuoto in caso di successo. Per esempio: {\"id\": 123, \"method\": \"register_remote_method\", \"params\": {\"response_template\": {\"action\": \"run_paneldue_beep\"}, \"remote_method\": \"paneldue_beep\"}} will return: {\"id\": 123, \"result\": {}} Il metodo remoto paneldue_beep ora pu\u00f2 essere chiamato da Klipper. Nota che se il metodo accetta parametri, dovrebbero essere forniti come argomenti di parole chiave. Di seguito \u00e8 riportato un esempio di come pu\u00f2 essere chiamato da una gcode_macro: [gcode_macro PANELDUE_BEEP] gcode: {action_call_remote_method(\"paneldue_beep\", frequency=300, duration=1.0)} Quando viene eseguita la macro gcode PANELDUE_BEEP, Klipper invia qualcosa di simile al seguente tramite il socket: {\"action\": \"run_paneldue_beep\", \"params\": {\"frequency\": 300, \"duration\": 1.0}}","title":"register_remote_method"},{"location":"API_Server.html#oggettielenco","text":"Questo endpoint interroga l'elenco degli \"oggetti\" della stampante disponibili che \u00e8 possibile interrogare (tramite l'endpoint \"objects/query\"). Ad esempio: {\"id\": 123, \"method\": \"objects/list\"} potrebbe restituire: {\"id\": 123, \"result\": {\"objects\": [\"webhooks\", \"configfile\" , \"heaters\", \"gcode_move\", \"query_endstops\", \"idle_timeout\", \"toolhead\", \"extruder\"]}}","title":"oggetti/elenco"},{"location":"API_Server.html#oggettiinterrogazione","text":"Questo endpoint consente di interrogare informazioni da oggetti. Ad esempio: {\"id\": 123, \"method\": \"objects/query\", \"params\": {\"objects\": {\"toolhead\": [\"position\"], \"webhooks\": null}}} potrebbe restituire: {\"id\": 123, \"result\": {\"status\": {\"webhooks\": {\"state\": \"ready\", \"state_message\": \"Printer is ready\"}, \"toolhead\": { \"position\": [0.0, 0.0, 0.0, 0.0]}}, \"eventtime\": 3051555.377933684}} Il parametro \"objects\" nella richiesta deve essere un dizionario contenente gli oggetti stampante che devono essere interrogati - la chiave contiene il nome dell'oggetto stampante e il valore \u00e8 \"null\" (per interrogare tutti i campi) o un elenco di nomi di campo. Il messaggio di risposta conterr\u00e0 un campo \"status\" contenente un dizionario con le informazioni richieste: la chiave contiene il nome dell'oggetto stampante e il valore \u00e8 un dizionario contenente i suoi campi. Il messaggio di risposta conterr\u00e0 anche un campo \"eventtime\" contenente il timestamp da quando \u00e8 stata eseguita la query. I campi disponibili sono documentati nel documento Status Reference .","title":"oggetti/interrogazione"},{"location":"API_Server.html#oggettisubscribe","text":"Questo endpoint consente di eseguire query e quindi iscriversi alle informazioni dagli oggetti stampante. La richiesta e la risposta dell'endpoint sono identiche all'endpoint \"objects/query\". Ad esempio: {\"id\": 123, \"method\": \"objects/subscribe\", \"params\": {\"objects\":{\"toolhead\": [\"position\"], \"webhooks\": [\"state\"] }, \"response_template\":{}}} potrebbe restituire: {\"id\": 123, \"result\": {\"status\": {\"webhooks\": {\"state\": \"ready\"}, \"toolhead\": {\"position\": [0.0, 0.0, 0.0, 0.0]}}, \"eventtime\": 3052153.382083195}} e generare messaggi asincroni successivi come: {\"params\": {\"status\": {\"webhooks\": {\"state\": \"shutdown\"}}, \"eventtime\": 3052165.418815847}}","title":"oggetti/subscribe"},{"location":"API_Server.html#gcodehelp","text":"Questo endpoint consente di interrogare i comandi G-Code disponibili che hanno una stringa di aiuto definita. Ad esempio: {\"id\": 123, \"method\": \"gcode/help\"} potrebbe restituire: {\"id\": 123, \"result\": {\"RESTORE_GCODE_STATE\": \"Restore a previously saved G-Code state\", \"PID_CALIBRATE\": \"Run PID calibration test\", \"QUERY_ADC\": \"Report the last value of an analog pin\", ...}}","title":"gcode/help"},{"location":"API_Server.html#gcodescript","text":"Questo endpoint consente di eseguire una serie di comandi G-Code. Ad esempio: {\"id\": 123, \"method\": \"gcode/script\", \"params\": {\"script\": \"G90\"}} Se lo script G-Code fornito genera un errore, allora viene generata una risposta di errore. Tuttavia, se il comando G-Code produce un output del terminale, tale output del terminale non viene fornito nella risposta. (Utilizzare l'endpoint \"gcode/subscribe_output\" per ottenere l'output del terminale G-Code.) Se c'\u00e8 un comando G-Code in elaborazione quando viene ricevuta questa richiesta, lo script fornito verr\u00e0 messo in coda. Questo ritardo potrebbe essere significativo (ad esempio, se \u00e8 in esecuzione un comando di attesa del codice G per la temperatura). Il messaggio di risposta JSON viene inviato al completamento dell'elaborazione dello script.","title":"gcode/script"},{"location":"API_Server.html#gcoderestart","text":"Questo endpoint consente di richiedere un riavvio: \u00e8 simile all'esecuzione del comando \"RESTART\" del codice G. Ad esempio: {\"id\": 123, \"method\": \"gcode/restart\"} Come con l'endpoint \"gcode/script\", questo endpoint viene completato solo dopo il completamento di tutti i comandi G-Code in sospeso.","title":"gcode/restart"},{"location":"API_Server.html#gcodefirmware_restart","text":"Questo \u00e8 simile all'endpoint \"gcode/restart\": implementa il comando G-Code \"FIRMWARE_RESTART\". Ad esempio: {\"id\": 123, \"method\": \"gcode/firmware_restart\"} Come con l'endpoint \"gcode/script\", questo endpoint viene completato solo dopo il completamento di tutti i comandi G-Code in sospeso.","title":"gcode/firmware_restart"},{"location":"API_Server.html#gcodesubscribe_output","text":"Questo endpoint viene utilizzato per iscriversi ai messaggi del terminale G-Code generati da Klipper. Ad esempio: {\"id\": 123, \"method\": \"gcode/subscribe_output\", \"params\": {\"response_template\":{}}} potrebbe in seguito produrre messaggi asincroni come: {\"params\": { \"response\": \"// Klipper state: Shutdown\"}} Questo endpoint ha lo scopo di supportare l'interazione umana tramite un'interfaccia \"finestra di terminale\". L'analisi del contenuto dall'output del terminale G-Code \u00e8 sconsigliata. Usa l'endpoint \"objects/subscribe\" per ottenere aggiornamenti sullo stato di Klipper.","title":"gcode/subscribe_output"},{"location":"API_Server.html#motion_reportdump_stepper","text":"Questo endpoint viene utilizzato per iscriversi al flusso di comandi queue_step interno di Klipper per uno stepper. L'ottenimento di questi aggiornamenti di movimento di basso livello pu\u00f2 essere utile per scopi diagnostici e di debug. L'utilizzo di questo endpoint pu\u00f2 aumentare il carico di sistema di Klipper. Una richiesta pu\u00f2 essere simile a: {\"id\": 123, \"method\":\"motion_report/dump_stepper\", \"params\": {\"name\": \"stepper_x\", \"response_template\": {}}} e potrebbe restituire: {\"id\": 123, \"result\": {\"header\": [\"interval\", \"count\", \"add\"]}} e potrebbe in seguito produrre messaggi asincroni come: {\"params\": {\" first_clock\": 179601081, \"first_time\": 8.98, \"first_position\": 0, \"last_clock\": 219686097, \"last_time\": 10.984, \"data\": [[179601081, 1, 0], [29573, 2, -8685] , [16230, 4, -1525], [10559, 6, -160], [10000, 976, 0], [10000, 1000, 0], [10000, 1000, 0], [10000, 1000, 0] , [9855, 5, 187], [11632, 4, 1534], [20756, 2, 9442]]}} Il campo \"intestazione\" nella risposta alla query iniziale viene utilizzato per descrivere i campi trovati nelle risposte \"dati\" successive.","title":"motion_report/dump_stepper"},{"location":"API_Server.html#motion_reportdump_trapq","text":"Questo endpoint viene utilizzato per iscriversi alla \"coda di movimento trapezoidale\" interna di Klipper. L'ottenimento di questi aggiornamenti di movimento di basso livello pu\u00f2 essere utile per scopi diagnostici e di debug. L'utilizzo di questo endpoint pu\u00f2 aumentare il carico di sistema di Klipper. Una richiesta pu\u00f2 essere simile a: {\"id\": 123, \"method\": \"motion_report/dump_trapq\", \"params\": {\"name\": \"toolhead\", \"response_template\":{}}} e potrebbe restituire: {\"id\": 1, \"result\": {\"header\": [\"time\", \"duration\", \"start_velocity\", \"acceleration\", \"start_position\", \"direction\"]}} e potrebbero in seguito produrre messaggi asincroni quali: {\"params\": {\"data\": [[4.05, 1.0, 0.0, 0.0, [300.0, 0.0, 0.0], [0.0, 0.0, 0.0]], [5.054, 0.001, 0.0, 3000.0 , [300.0, 0.0, 0.0], [-1.0, 0.0, 0.0]]]}} Il campo \"intestazione\" nella risposta alla query iniziale viene utilizzato per descrivere i campi trovati nelle risposte \"dati\" successive.","title":"motion_report/dump_trapq"},{"location":"API_Server.html#adxl345dump_adxl345","text":"Questo endpoint viene utilizzato per la sottoscrizione ai dati dell'accelerometro ADXL345. L'ottenimento di questi aggiornamenti di movimento di basso livello pu\u00f2 essere utile per scopi diagnostici e di debug. L'utilizzo di questo endpoint pu\u00f2 aumentare il carico di sistema di Klipper. Una richiesta pu\u00f2 essere simile a: {\"id\": 123, \"method\":\"adxl345/dump_adxl345\", \"params\": {\"sensor\": \"adxl345\", \"response_template\": {}}} e potrebbe restituire: {\"id\": 123,\"result\":{\"header\":[\"time\",\"x_acceleration\",\"y_acceleration\", \"z_acceleration\"]}} e potrebbe in seguito produrre messaggi asincroni come: {\"params \":{\"overflow\":0,\"data\":[[3292.432935,-535.44309,-1529.8374,9561.4], [3292.433256,-382.45935,-1606.32927,9561.48375]]}} Il campo \"intestazione\" nella risposta alla query iniziale viene utilizzato per descrivere i campi trovati nelle risposte \"dati\" successive.","title":"adxl345/dump_adxl345"},{"location":"API_Server.html#angledump_angle","text":"Questo endpoint viene utilizzato per iscriversi a dati del sensore angolare . L'ottenimento di questi aggiornamenti di movimento di basso livello pu\u00f2 essere utile per scopi diagnostici e di debug. L'utilizzo di questo endpoint pu\u00f2 aumentare il carico di sistema di Klipper. Una richiesta pu\u00f2 essere simile a: {\"id\": 123, \"method\":\"angle/dump_angle\", \"params\": {\"sensor\": \"my_angle_sensor\", \"response_template\": {}}} e potrebbe restituire: {\"id\": 123,\"result\":{\"header\":[\"time\",\"angle\"]}} e potrebbe in seguito produrre messaggi asincroni come: {\"params\":{\"position_offset\":3.151562 ,\"errori\":0, \"dati\":[[1290.951905,-5063],[1290.952321,-5065]]}} Il campo \"intestazione\" nella risposta alla query iniziale viene utilizzato per descrivere i campi trovati nelle risposte \"dati\" successive.","title":"angle/dump_angle"},{"location":"API_Server.html#pause_resumecancel","text":"Questo endpoint \u00e8 simile all'esecuzione del comando G-Code \"PRINT_CANCEL\". Ad esempio: {\"id\": 123, \"method\": \"pause_resume/cancel\"} Come con l'endpoint \"gcode/script\", questo endpoint viene completato solo dopo il completamento di tutti i comandi G-Code in sospeso.","title":"pause_resume/cancel"},{"location":"API_Server.html#pause_resumepause","text":"Questo endpoint \u00e8 simile all'esecuzione del comando G-Code \"PAUSE\". Ad esempio: {\"id\": 123, \"method\": \"pause_resume/pause\"} Come con l'endpoint \"gcode/script\", questo endpoint viene completato solo dopo il completamento di tutti i comandi G-Code in sospeso.","title":"pause_resume/pause"},{"location":"API_Server.html#pause_resumeresume","text":"Questo endpoint \u00e8 simile all'esecuzione del comando G-Code \"RESUME\". Ad esempio: {\"id\": 123, \"method\": \"pause_resume/resume\"} Come con l'endpoint \"gcode/script\", questo endpoint viene completato solo dopo il completamento di tutti i comandi G-Code in sospeso.","title":"pause_resume/resume"},{"location":"API_Server.html#query_endstopsstatus","text":"Questo endpoint eseguir\u00e0 una query sugli endpoint attivi e restituir\u00e0 il loro stato. Ad esempio: {\"id\": 123, \"method\": \"query_endstops/status\"} potrebbe restituire: {\"id\": 123, \"result\": {\"y\": \"open\", \"x\": \"aperto\", \"z\": \"TRIGGERED\"}} Come con l'endpoint \"gcode/script\", questo endpoint viene completato solo dopo il completamento di tutti i comandi G-Code in sospeso.","title":"query_endstops/status"},{"location":"BLTouch.html","text":"BL-Touch \u00b6 Collegare BL-Touch \u00b6 Attenzione warning prima di cominciare : Evita di toccare la punta del BL-Touch a mani nude, \u00e8 molto sensibili al sebo delle dita. Se sei costretto usa dei guanti ed evita di spingerla o piegarla. Collega il connettore \"servo\" BL-Touch a un control_pin secondo la documentazione BL-Touch o la documentazione MCU. Usando il cablaggio originale, il filo giallo del triplo \u00e8 il control_pin e il filo bianco della coppia \u00e8 il sensor_pin . \u00c8 necessario configurare questi pin in base al cablaggio. La maggior parte dei dispositivi BL-Touch richiede un pullup sul pin del sensore (prefissare il nome del pin con \"^\"). Per esempio: [bltouch] sensor_pin: ^P1.24 control_pin: P1.26 Se il BL-Touch verr\u00e0 utilizzato per l'home dell'asse Z, impostare endstop_pin: probe:z_virtual_endstop e rimuovere position_endstop nella sezione di configurazione [stepper_z] , quindi aggiungere una sezione di configurazione [safe_z_home] per aumentare il asse z, posiziona gli assi xy, spostati al centro del letto e posizionati sull'asse z. Per esempio: [safe_z_home] home_xy_position: 100, 100 # Cambiare le coordinate per il centro del tuo piatto speed: 50 z_hop: 10 # Move up 10mm z_hop_speed: 5 \u00c8 importante che il movimento z_hop in safe_z_home sia sufficientemente alto in mode che la sonda non colpisca nulla anche se il pin della sonda si trova nel suo stato pi\u00f9 basso. Test iniziali \u00b6 Prima di proseguire, verificare che il BL-Touch sia montato all'altezza corretta, il perno dovrebbe trovarsi a circa 2 mm sopra il nozzle quando \u00e8 retratto Quando si accende la stampante, la sonda BL-Touch dovrebbe eseguire un autotest e spostare il pin su e gi\u00f9 un paio di volte. Una volta completato l'autotest, il perno deve essere retratto e il LED rosso sulla sonda deve essere acceso. In caso di errori, ad esempio la sonda lampeggia in rosso o il pin \u00e8 in basso anzich\u00e9 in alto, spegnere la stampante e controllare il cablaggio e la configurazione. Se quanto sopra sembra buono, \u00e8 il momento di verificare che il pin di controllo funzioni correttamente. Per prima cosa esegui BLTOUCH_DEBUG COMMAND=pin_down nel terminale della tua stampante. Verificare che il pin si abbassi e che il LED rosso sulla sonda si spenga. In caso contrario, controllare nuovamente il cablaggio e la configurazione. Quindi emettere un BLTOUCH_DEBUG COMMAND=pin_up , verificare che il pin si muova verso l'alto e che la luce rossa si accenda di nuovo. Se lampeggia allora c'\u00e8 qualche problema. Il passaggio successivo \u00e8 confermare che il pin del sensore funzioni correttamente. Esegui BLTOUCH_DEBUG COMMAND=pin_down , verifica che il pin si sposti verso il basso, esegui BLTOUCH_DEBUG COMMAND=touch_mode , esegui QUERY_PROBE e verifica che il comando riporti \"probe: open\". Quindi, spingendo leggermente verso l'alto il perno con l'unghia del dito, eseguire nuovamente QUERY_PROBE . Verificare che il comando riporti \"probe: TRIGGERED\". Se una delle query non riporta il messaggio corretto, di solito indica un cablaggio o una configurazione errati (sebbene alcuni clones potrebbero richiedere una gestione speciale). Al completamento di questo test, eseguire BLTOUCH_DEBUG COMMAND=pin_up e verificare che il pin si muova verso l'alto. Dopo aver completato i test del pin di controllo BL-Touch e del pin del sensore, \u00e8 ora il momento di testare il rilevamento, ma con una svolta. Invece di lasciare che il perno della sonda tocchi il piano di stampa, lascia che tocchi l'unghia del dito. Posizionare la testina lontano dal letto, emettere un G28 (o PROBE se non si utilizza probe:z_virtual_endstop), attendere che la testina inizi a muoversi verso il basso e interrompere il movimento toccando molto delicatamente il perno con l'unghia. Potrebbe essere necessario farlo due volte, poich\u00e9 la configurazione di homing predefinita esegue due sonde. Preparati a spegnere la stampante se non si ferma quando tocchi il perno. Se ha avuto successo, esegui un altro G28 (o PROBE ) ma questa volta lascia che tocchi il letto come dovrebbe. BL-Touch andato male \u00b6 Una volta che il BL-Touch \u00e8 in uno stato incoerente, inizia a lampeggiare in rosso. Puoi forzarlo a lasciare quello stato emettendo: BLTOUCH_DEBUG COMMAND=reset Ci\u00f2 pu\u00f2 accadere se la sua calibrazione viene interrotta dal blocco dell'estrazione della sonda. Tuttavia, anche il BL-Touch potrebbe non essere pi\u00f9 in grado di calibrarsi. Ci\u00f2 accade se la vite sulla sua sommit\u00e0 \u00e8 nella posizione sbagliata o se il nucleo magnetico all'interno del perno della sonda si \u00e8 spostato. Se si \u00e8 alzato in modo che si attacchi alla vite, potrebbe non essere pi\u00f9 in grado di abbassare il perno. Con questo comportamento \u00e8 necessario aprire la vite e utilizzare una penna a sfera per spingerla delicatamente in posizione. Reinserire il perno nel BL-Touch in modo che cada nella posizione estratta. Riposizionare con cura la vite senza testa in posizione. \u00c8 necessario trovare la posizione giusta in modo che sia in grado di abbassare e alzare il perno e la luce rossa si accende e si spegne. Usa i comandi reset , pin_up e pin_down per raggiungere questo obiettivo. BL-Touch \"cloni\" \u00b6 Molti dispositivi \"clone\" BL-Touch funzionano correttamente con Klipper utilizzando la configurazione predefinita. Tuttavia, alcuni dispositivi \"clone\" potrebbero non supportare il comando QUERY_PROBE e alcuni dispositivi \"clone\" potrebbero richiedere la configurazione di pin_up_reports_not_triggered o pin_up_touch_mode_reports_triggered . Importante! Non configurare pin_up_reports_not_triggered o pin_up_touch_mode_reports_triggered su False senza prima seguire queste indicazioni. Non configurare nessuno di questi su False su un BL-Touch originale. Un'impostazione errata di questi valori su False pu\u00f2 aumentare il tempo di ispezione e pu\u00f2 aumentare il rischio di danneggiare la stampante. Alcuni dispositivi \"clone\" non supportano touch_mode e di conseguenza il comando QUERY_PROBE non funziona. Nonostante ci\u00f2, potrebbe essere ancora possibile eseguire il rilevamento e l'homing con questi dispositivi. Su questi dispositivi il comando QUERY_PROBE durante i initial tests non avr\u00e0 esito positivo, tuttavia il successivo test G28 (o PROBE ) riesce. Potrebbe essere possibile utilizzare questi dispositivi \"clone\" con Klipper se non si utilizza il comando QUERY_PROBE e se non si abilita la funzione probe_with_touch_mode . Alcuni dispositivi \"clone\" non sono in grado di eseguire il test di verifica del sensore interno di Klipper. Su questi dispositivi, i tentativi di home o probe possono far s\u00ec che Klipper riporti un errore \"BLTouch non \u00e8 riuscito a verificare lo stato del sensore\". In tal caso, eseguire manualmente i passaggi per verificare che il pin del sensore funzioni come descritto nella initial tests section . Se i comandi QUERY_PROBE in quel test producono sempre i risultati attesi e si verificano ancora gli errori \"BLTouch non \u00e8 riuscito a verificare lo stato del sensore\", potrebbe essere necessario impostare pin_up_touch_mode_reports_triggered su False nel file di configurazione di Klipper. Un raro numero di vecchi dispositivi \"clone\" non \u00e8 in grado di segnalare quando hanno sollevato con successo la sonda. Su questi dispositivi Klipper segnaler\u00e0 un errore \"BLTouch non \u00e8 riuscito a sollevare la sonda\" dopo ogni tentativo di home o probe. Si pu\u00f2 testare questi dispositivi: spostare la testa lontano dal letto, eseguire BLTOUCH_DEBUG COMMAND=pin_down , verificare che il pin si sia spostato verso il basso, eseguire QUERY_PROBE , verificare che il comando riporti \"probe: open\", eseguire BLTOUCH_DEBUG COMMAND= pin_up , verifica che il pin sia stato spostato in alto ed esegui QUERY_PROBE . Se il pin rimane attivo, il dispositivo non entra in uno stato di errore e la prima query riporta \"probe: open\" mentre la seconda query riporta \"probe: TRIGGERED\", quindi indica che pin_up_reports_not_triggered dovrebbe essere impostato su False in Klipper file di configurazione. BL-Touch v3 \u00b6 Alcuni dispositivi BL-Touch v3.0 e BL-Touch 3.1 potrebbero richiedere la configurazione di probe_with_touch_mode nel file di configurazione della stampante. Se il BL-Touch v3.0 ha il cavo del segnale collegato a un pin endstop (con un condensatore di filtraggio del rumore), il BL-Touch v3.0 potrebbe non essere in grado di inviare un segnale in modo coerente durante l'homing e il probe. Se i comandi QUERY_PROBE nella initial tests section producono sempre i risultati attesi, ma il toolhead non si ferma sempre durante i comandi G28/PROBE, allora \u00e8 indicativo di questo problema. Una soluzione alternativa consiste nell'impostare probe_with_touch_mode: True nel file di configurazione. Il BL-Touch v3.1 potrebbe entrare erroneamente in uno stato di errore dopo un tentativo di probe riuscito. I sintomi sono una luce lampeggiante occasionale sul BL-Touch v3.1 che dura per un paio di secondi dopo che \u00e8 entrato in contatto con successo con il letto. Klipper dovrebbe cancellare questo errore automaticamente ed \u00e8 generalmente innocuo. Tuttavia, \u00e8 possibile impostare probe_with_touch_mode nel file di configurazione per evitare questo problema. Importante! Alcuni dispositivi \"clone\" e BL-Touch v2.0 (e precedenti) potrebbero avere una precisione ridotta quando probe_with_touch_mode \u00e8 impostato su True. L'impostazione su True aumenta anche il tempo necessario per distribuire la sonda. Se si configura questo valore su un dispositivo BL-Touch \"clone\" o precedente, assicurarsi di testare l'accuratezza della sonda prima e dopo aver impostato questo valore (utilizzare il comando PROBE_ACCURACY per eseguire il test). Multi-sondaggio senza riporre \u00b6 Per impostazione predefinita, Klipper rilascia la sonda all'inizio di ogni tentativo di sonda e poi riporr\u00e0 la sonda in seguito. Questo dispiegamento e stivaggio ripetitivo della sonda pu\u00f2 aumentare il tempo totale delle sequenze di calibrazione che coinvolgono molte misurazioni della sonda. Klipper consente di lasciare la sonda dispiegata tra test consecutivi, il che pu\u00f2 ridurre il tempo totale di rilevamento. Questa modalit\u00e0 \u00e8 abilitata configurando stow_on_each_sample su False nel file di configurazione. Importante! L'impostazione di stow_on_each_sample su False pu\u00f2 portare Klipper a fare movimenti orizzontali della testa utensile mentre la sonda \u00e8 estesa. Assicurarsi di verificare che tutte le operazioni con la probe abbiano un gioco Z sufficiente prima di impostare questo valore su False. Se lo spazio libero \u00e8 insufficiente, uno spostamento orizzontale pu\u00f2 causare l'intrappolamento del perno in un'ostruzione e causare danni alla stampante. Importante! Si consiglia di utilizzare probe_with_touch_mode configurato su True quando si utilizza stow_on_each_sample configurato su False. Alcuni dispositivi \"clone\" potrebbero non rilevare un successivo contatto con il piatto se probe_with_touch_mode non \u00e8 impostato. Su tutti i dispositivi, l'utilizzo della combinazione di queste due impostazioni semplifica la segnalazione del dispositivo, che pu\u00f2 migliorare la stabilit\u00e0 generale. Si noti, tuttavia, che alcuni dispositivi \"clone\" e BL-Touch v2.0 (e precedenti) potrebbero avere una precisione ridotta quando probe_with_touch_mode \u00e8 impostato su True. Su questi dispositivi \u00e8 una buona idea testare l'accuratezza della sonda prima e dopo aver impostato probe_with_touch_mode (usare il comando di test PROBE_ACCURACY ). Calibrazione degli offset BL-Touch \u00b6 Seguire le istruzioni nella guida Probe Calibrate per impostare i parametri di configurazione x_offset, y_offset e z_offset. \u00c8 una buona idea verificare che l'offset Z sia vicino a 1 mm. In caso contrario, probabilmente vorrai spostare la sonda su o gi\u00f9 per risolvere il problema. Si desidera che si attivi ben prima che l'ugello colpisca il piatto, in modo che un possibile filamento bloccato o un piatto deformato non influisca sull'azione della sonda. Ma allo stesso tempo, si desidera che la posizione retratta sia il pi\u00f9 possibile al di sopra dell'ugello per evitare che tocchi le parti stampate. Se viene effettuata una regolazione della posizione della sonda, eseguire nuovamente i passaggi di calibrazione della sonda. Modalit\u00e0 di output BL-Touch \u00b6 Un BL-Touch V3.0 supporta l'impostazione di una modalit\u00e0 di uscita 5V o OPEN-DRAIN, un BL-Touch V3.1 supporta anche questo, ma pu\u00f2 anche memorizzarlo nella sua EEPROM interna. Se la tua scheda controller ha bisogno del livello logico alto 5V fisso della modalit\u00e0 5V, puoi impostare il parametro 'set_output_mode' nella sezione [bltouch] del file di configurazione della stampante su \"5V\". Utilizzare la modalit\u00e0 5V solo se la linea di ingresso della scheda controller \u00e8 tollerante a 5V. Ecco perch\u00e9 la configurazione di default di queste versioni BL-Touch \u00e8 la modalit\u00e0 OPEN-DRAIN. Potresti potenzialmente danneggiare la CPU delle tue schede di controllo Quindi: se una scheda controller HA BISOGNO della modalit\u00e0 5V ED \u00e8 tollerante a 5V sulla sua linea del segnale di ingresso E se si dispone di un BL-Touch Smart V3.0, \u00e8 necessario utilizzare il parametro 'set_output_mode: 5V' per garantire questa impostazione ad ogni avvio, poich\u00e9 la sonda non ricorda l'impostazione necessaria. hai un BL-Touch Smart V3.1, puoi scegliere di usare 'set_output_mode: 5V' o memorizzare la modalit\u00e0 una volta usando un comando 'BLTOUCH_STORE MODE=5V' manualmente e NON usando il parametro 'set_output_mode:'. hai qualche altra sonda: alcune sonde hanno una traccia sul circuito stampato da tagliare o un ponticello da impostare per impostare (permanentemente) la modalit\u00e0 di uscita. In tal caso, omettere completamente il parametro 'set_output_mode'. Se hai una V3.1, non automatizzare o ripetere la memorizzazione della modalit\u00e0 di output per evitare di consumare la EEPROM della sonda. La BLTouch EEPROM \u00e8 valida per circa 100.000 aggiornamenti. 100 memorizzazioni al giorno aggiungerebbero fino a circa 3 anni di attivit\u00e0 prima di logorarlo. Pertanto, la memorizzazione della modalit\u00e0 di output in una V3.1 \u00e8 progettata dal fornitore per essere un'operazione complicata (l'impostazione predefinita di fabbrica \u00e8 una modalit\u00e0 OPEN DRAIN sicura) e non \u00e8 adatta per essere emessa ripetutamente da qualsiasi slicer, macro o altro, esso \u00e8 preferibilmente da utilizzare solo quando si integra per la prima volta la sonda nell'elettronica di una stampante.","title":"BL-Touch"},{"location":"BLTouch.html#bl-touch","text":"","title":"BL-Touch"},{"location":"BLTouch.html#collegare-bl-touch","text":"Attenzione warning prima di cominciare : Evita di toccare la punta del BL-Touch a mani nude, \u00e8 molto sensibili al sebo delle dita. Se sei costretto usa dei guanti ed evita di spingerla o piegarla. Collega il connettore \"servo\" BL-Touch a un control_pin secondo la documentazione BL-Touch o la documentazione MCU. Usando il cablaggio originale, il filo giallo del triplo \u00e8 il control_pin e il filo bianco della coppia \u00e8 il sensor_pin . \u00c8 necessario configurare questi pin in base al cablaggio. La maggior parte dei dispositivi BL-Touch richiede un pullup sul pin del sensore (prefissare il nome del pin con \"^\"). Per esempio: [bltouch] sensor_pin: ^P1.24 control_pin: P1.26 Se il BL-Touch verr\u00e0 utilizzato per l'home dell'asse Z, impostare endstop_pin: probe:z_virtual_endstop e rimuovere position_endstop nella sezione di configurazione [stepper_z] , quindi aggiungere una sezione di configurazione [safe_z_home] per aumentare il asse z, posiziona gli assi xy, spostati al centro del letto e posizionati sull'asse z. Per esempio: [safe_z_home] home_xy_position: 100, 100 # Cambiare le coordinate per il centro del tuo piatto speed: 50 z_hop: 10 # Move up 10mm z_hop_speed: 5 \u00c8 importante che il movimento z_hop in safe_z_home sia sufficientemente alto in mode che la sonda non colpisca nulla anche se il pin della sonda si trova nel suo stato pi\u00f9 basso.","title":"Collegare BL-Touch"},{"location":"BLTouch.html#test-iniziali","text":"Prima di proseguire, verificare che il BL-Touch sia montato all'altezza corretta, il perno dovrebbe trovarsi a circa 2 mm sopra il nozzle quando \u00e8 retratto Quando si accende la stampante, la sonda BL-Touch dovrebbe eseguire un autotest e spostare il pin su e gi\u00f9 un paio di volte. Una volta completato l'autotest, il perno deve essere retratto e il LED rosso sulla sonda deve essere acceso. In caso di errori, ad esempio la sonda lampeggia in rosso o il pin \u00e8 in basso anzich\u00e9 in alto, spegnere la stampante e controllare il cablaggio e la configurazione. Se quanto sopra sembra buono, \u00e8 il momento di verificare che il pin di controllo funzioni correttamente. Per prima cosa esegui BLTOUCH_DEBUG COMMAND=pin_down nel terminale della tua stampante. Verificare che il pin si abbassi e che il LED rosso sulla sonda si spenga. In caso contrario, controllare nuovamente il cablaggio e la configurazione. Quindi emettere un BLTOUCH_DEBUG COMMAND=pin_up , verificare che il pin si muova verso l'alto e che la luce rossa si accenda di nuovo. Se lampeggia allora c'\u00e8 qualche problema. Il passaggio successivo \u00e8 confermare che il pin del sensore funzioni correttamente. Esegui BLTOUCH_DEBUG COMMAND=pin_down , verifica che il pin si sposti verso il basso, esegui BLTOUCH_DEBUG COMMAND=touch_mode , esegui QUERY_PROBE e verifica che il comando riporti \"probe: open\". Quindi, spingendo leggermente verso l'alto il perno con l'unghia del dito, eseguire nuovamente QUERY_PROBE . Verificare che il comando riporti \"probe: TRIGGERED\". Se una delle query non riporta il messaggio corretto, di solito indica un cablaggio o una configurazione errati (sebbene alcuni clones potrebbero richiedere una gestione speciale). Al completamento di questo test, eseguire BLTOUCH_DEBUG COMMAND=pin_up e verificare che il pin si muova verso l'alto. Dopo aver completato i test del pin di controllo BL-Touch e del pin del sensore, \u00e8 ora il momento di testare il rilevamento, ma con una svolta. Invece di lasciare che il perno della sonda tocchi il piano di stampa, lascia che tocchi l'unghia del dito. Posizionare la testina lontano dal letto, emettere un G28 (o PROBE se non si utilizza probe:z_virtual_endstop), attendere che la testina inizi a muoversi verso il basso e interrompere il movimento toccando molto delicatamente il perno con l'unghia. Potrebbe essere necessario farlo due volte, poich\u00e9 la configurazione di homing predefinita esegue due sonde. Preparati a spegnere la stampante se non si ferma quando tocchi il perno. Se ha avuto successo, esegui un altro G28 (o PROBE ) ma questa volta lascia che tocchi il letto come dovrebbe.","title":"Test iniziali"},{"location":"BLTouch.html#bl-touch-andato-male","text":"Una volta che il BL-Touch \u00e8 in uno stato incoerente, inizia a lampeggiare in rosso. Puoi forzarlo a lasciare quello stato emettendo: BLTOUCH_DEBUG COMMAND=reset Ci\u00f2 pu\u00f2 accadere se la sua calibrazione viene interrotta dal blocco dell'estrazione della sonda. Tuttavia, anche il BL-Touch potrebbe non essere pi\u00f9 in grado di calibrarsi. Ci\u00f2 accade se la vite sulla sua sommit\u00e0 \u00e8 nella posizione sbagliata o se il nucleo magnetico all'interno del perno della sonda si \u00e8 spostato. Se si \u00e8 alzato in modo che si attacchi alla vite, potrebbe non essere pi\u00f9 in grado di abbassare il perno. Con questo comportamento \u00e8 necessario aprire la vite e utilizzare una penna a sfera per spingerla delicatamente in posizione. Reinserire il perno nel BL-Touch in modo che cada nella posizione estratta. Riposizionare con cura la vite senza testa in posizione. \u00c8 necessario trovare la posizione giusta in modo che sia in grado di abbassare e alzare il perno e la luce rossa si accende e si spegne. Usa i comandi reset , pin_up e pin_down per raggiungere questo obiettivo.","title":"BL-Touch andato male"},{"location":"BLTouch.html#bl-touch-cloni","text":"Molti dispositivi \"clone\" BL-Touch funzionano correttamente con Klipper utilizzando la configurazione predefinita. Tuttavia, alcuni dispositivi \"clone\" potrebbero non supportare il comando QUERY_PROBE e alcuni dispositivi \"clone\" potrebbero richiedere la configurazione di pin_up_reports_not_triggered o pin_up_touch_mode_reports_triggered . Importante! Non configurare pin_up_reports_not_triggered o pin_up_touch_mode_reports_triggered su False senza prima seguire queste indicazioni. Non configurare nessuno di questi su False su un BL-Touch originale. Un'impostazione errata di questi valori su False pu\u00f2 aumentare il tempo di ispezione e pu\u00f2 aumentare il rischio di danneggiare la stampante. Alcuni dispositivi \"clone\" non supportano touch_mode e di conseguenza il comando QUERY_PROBE non funziona. Nonostante ci\u00f2, potrebbe essere ancora possibile eseguire il rilevamento e l'homing con questi dispositivi. Su questi dispositivi il comando QUERY_PROBE durante i initial tests non avr\u00e0 esito positivo, tuttavia il successivo test G28 (o PROBE ) riesce. Potrebbe essere possibile utilizzare questi dispositivi \"clone\" con Klipper se non si utilizza il comando QUERY_PROBE e se non si abilita la funzione probe_with_touch_mode . Alcuni dispositivi \"clone\" non sono in grado di eseguire il test di verifica del sensore interno di Klipper. Su questi dispositivi, i tentativi di home o probe possono far s\u00ec che Klipper riporti un errore \"BLTouch non \u00e8 riuscito a verificare lo stato del sensore\". In tal caso, eseguire manualmente i passaggi per verificare che il pin del sensore funzioni come descritto nella initial tests section . Se i comandi QUERY_PROBE in quel test producono sempre i risultati attesi e si verificano ancora gli errori \"BLTouch non \u00e8 riuscito a verificare lo stato del sensore\", potrebbe essere necessario impostare pin_up_touch_mode_reports_triggered su False nel file di configurazione di Klipper. Un raro numero di vecchi dispositivi \"clone\" non \u00e8 in grado di segnalare quando hanno sollevato con successo la sonda. Su questi dispositivi Klipper segnaler\u00e0 un errore \"BLTouch non \u00e8 riuscito a sollevare la sonda\" dopo ogni tentativo di home o probe. Si pu\u00f2 testare questi dispositivi: spostare la testa lontano dal letto, eseguire BLTOUCH_DEBUG COMMAND=pin_down , verificare che il pin si sia spostato verso il basso, eseguire QUERY_PROBE , verificare che il comando riporti \"probe: open\", eseguire BLTOUCH_DEBUG COMMAND= pin_up , verifica che il pin sia stato spostato in alto ed esegui QUERY_PROBE . Se il pin rimane attivo, il dispositivo non entra in uno stato di errore e la prima query riporta \"probe: open\" mentre la seconda query riporta \"probe: TRIGGERED\", quindi indica che pin_up_reports_not_triggered dovrebbe essere impostato su False in Klipper file di configurazione.","title":"BL-Touch \"cloni\""},{"location":"BLTouch.html#bl-touch-v3","text":"Alcuni dispositivi BL-Touch v3.0 e BL-Touch 3.1 potrebbero richiedere la configurazione di probe_with_touch_mode nel file di configurazione della stampante. Se il BL-Touch v3.0 ha il cavo del segnale collegato a un pin endstop (con un condensatore di filtraggio del rumore), il BL-Touch v3.0 potrebbe non essere in grado di inviare un segnale in modo coerente durante l'homing e il probe. Se i comandi QUERY_PROBE nella initial tests section producono sempre i risultati attesi, ma il toolhead non si ferma sempre durante i comandi G28/PROBE, allora \u00e8 indicativo di questo problema. Una soluzione alternativa consiste nell'impostare probe_with_touch_mode: True nel file di configurazione. Il BL-Touch v3.1 potrebbe entrare erroneamente in uno stato di errore dopo un tentativo di probe riuscito. I sintomi sono una luce lampeggiante occasionale sul BL-Touch v3.1 che dura per un paio di secondi dopo che \u00e8 entrato in contatto con successo con il letto. Klipper dovrebbe cancellare questo errore automaticamente ed \u00e8 generalmente innocuo. Tuttavia, \u00e8 possibile impostare probe_with_touch_mode nel file di configurazione per evitare questo problema. Importante! Alcuni dispositivi \"clone\" e BL-Touch v2.0 (e precedenti) potrebbero avere una precisione ridotta quando probe_with_touch_mode \u00e8 impostato su True. L'impostazione su True aumenta anche il tempo necessario per distribuire la sonda. Se si configura questo valore su un dispositivo BL-Touch \"clone\" o precedente, assicurarsi di testare l'accuratezza della sonda prima e dopo aver impostato questo valore (utilizzare il comando PROBE_ACCURACY per eseguire il test).","title":"BL-Touch v3"},{"location":"BLTouch.html#multi-sondaggio-senza-riporre","text":"Per impostazione predefinita, Klipper rilascia la sonda all'inizio di ogni tentativo di sonda e poi riporr\u00e0 la sonda in seguito. Questo dispiegamento e stivaggio ripetitivo della sonda pu\u00f2 aumentare il tempo totale delle sequenze di calibrazione che coinvolgono molte misurazioni della sonda. Klipper consente di lasciare la sonda dispiegata tra test consecutivi, il che pu\u00f2 ridurre il tempo totale di rilevamento. Questa modalit\u00e0 \u00e8 abilitata configurando stow_on_each_sample su False nel file di configurazione. Importante! L'impostazione di stow_on_each_sample su False pu\u00f2 portare Klipper a fare movimenti orizzontali della testa utensile mentre la sonda \u00e8 estesa. Assicurarsi di verificare che tutte le operazioni con la probe abbiano un gioco Z sufficiente prima di impostare questo valore su False. Se lo spazio libero \u00e8 insufficiente, uno spostamento orizzontale pu\u00f2 causare l'intrappolamento del perno in un'ostruzione e causare danni alla stampante. Importante! Si consiglia di utilizzare probe_with_touch_mode configurato su True quando si utilizza stow_on_each_sample configurato su False. Alcuni dispositivi \"clone\" potrebbero non rilevare un successivo contatto con il piatto se probe_with_touch_mode non \u00e8 impostato. Su tutti i dispositivi, l'utilizzo della combinazione di queste due impostazioni semplifica la segnalazione del dispositivo, che pu\u00f2 migliorare la stabilit\u00e0 generale. Si noti, tuttavia, che alcuni dispositivi \"clone\" e BL-Touch v2.0 (e precedenti) potrebbero avere una precisione ridotta quando probe_with_touch_mode \u00e8 impostato su True. Su questi dispositivi \u00e8 una buona idea testare l'accuratezza della sonda prima e dopo aver impostato probe_with_touch_mode (usare il comando di test PROBE_ACCURACY ).","title":"Multi-sondaggio senza riporre"},{"location":"BLTouch.html#calibrazione-degli-offset-bl-touch","text":"Seguire le istruzioni nella guida Probe Calibrate per impostare i parametri di configurazione x_offset, y_offset e z_offset. \u00c8 una buona idea verificare che l'offset Z sia vicino a 1 mm. In caso contrario, probabilmente vorrai spostare la sonda su o gi\u00f9 per risolvere il problema. Si desidera che si attivi ben prima che l'ugello colpisca il piatto, in modo che un possibile filamento bloccato o un piatto deformato non influisca sull'azione della sonda. Ma allo stesso tempo, si desidera che la posizione retratta sia il pi\u00f9 possibile al di sopra dell'ugello per evitare che tocchi le parti stampate. Se viene effettuata una regolazione della posizione della sonda, eseguire nuovamente i passaggi di calibrazione della sonda.","title":"Calibrazione degli offset BL-Touch"},{"location":"BLTouch.html#modalita-di-output-bl-touch","text":"Un BL-Touch V3.0 supporta l'impostazione di una modalit\u00e0 di uscita 5V o OPEN-DRAIN, un BL-Touch V3.1 supporta anche questo, ma pu\u00f2 anche memorizzarlo nella sua EEPROM interna. Se la tua scheda controller ha bisogno del livello logico alto 5V fisso della modalit\u00e0 5V, puoi impostare il parametro 'set_output_mode' nella sezione [bltouch] del file di configurazione della stampante su \"5V\". Utilizzare la modalit\u00e0 5V solo se la linea di ingresso della scheda controller \u00e8 tollerante a 5V. Ecco perch\u00e9 la configurazione di default di queste versioni BL-Touch \u00e8 la modalit\u00e0 OPEN-DRAIN. Potresti potenzialmente danneggiare la CPU delle tue schede di controllo Quindi: se una scheda controller HA BISOGNO della modalit\u00e0 5V ED \u00e8 tollerante a 5V sulla sua linea del segnale di ingresso E se si dispone di un BL-Touch Smart V3.0, \u00e8 necessario utilizzare il parametro 'set_output_mode: 5V' per garantire questa impostazione ad ogni avvio, poich\u00e9 la sonda non ricorda l'impostazione necessaria. hai un BL-Touch Smart V3.1, puoi scegliere di usare 'set_output_mode: 5V' o memorizzare la modalit\u00e0 una volta usando un comando 'BLTOUCH_STORE MODE=5V' manualmente e NON usando il parametro 'set_output_mode:'. hai qualche altra sonda: alcune sonde hanno una traccia sul circuito stampato da tagliare o un ponticello da impostare per impostare (permanentemente) la modalit\u00e0 di uscita. In tal caso, omettere completamente il parametro 'set_output_mode'. Se hai una V3.1, non automatizzare o ripetere la memorizzazione della modalit\u00e0 di output per evitare di consumare la EEPROM della sonda. La BLTouch EEPROM \u00e8 valida per circa 100.000 aggiornamenti. 100 memorizzazioni al giorno aggiungerebbero fino a circa 3 anni di attivit\u00e0 prima di logorarlo. Pertanto, la memorizzazione della modalit\u00e0 di output in una V3.1 \u00e8 progettata dal fornitore per essere un'operazione complicata (l'impostazione predefinita di fabbrica \u00e8 una modalit\u00e0 OPEN DRAIN sicura) e non \u00e8 adatta per essere emessa ripetutamente da qualsiasi slicer, macro o altro, esso \u00e8 preferibilmente da utilizzare solo quando si integra per la prima volta la sonda nell'elettronica di una stampante.","title":"Modalit\u00e0 di output BL-Touch"},{"location":"Beaglebone.html","text":"Beaglebone \u00b6 Questo documento descrive il processo di esecuzione di Klipper su una PRU Beaglebone. Creazione di un'immagine del sistema operativo \u00b6 Inizia installando l'immagine Debian 9.9 2019-08-03 4GB SD IoT . \u00c8 possibile eseguire l'immagine da una scheda micro-SD o dall'eMMC integrato. Se si utilizza l'eMMC, installarlo ora nell'eMMC seguendo le istruzioni dal collegamento sopra. Quindi loggati ssh nella macchina Beaglebone ( ssh debian@beaglebone -- la password \u00e8 temppwd ) e installa Klipper eseguendo i seguenti comandi: git clone https://github.com/Klipper3d/klipper ./klipper/scripts/install-beaglebone.sh Installare Octoprint \u00b6 Si pu\u00f2 quindi installare Octoprint: git clone https://github.com/foosel/OctoPrint.git cd OctoPrint/ virtualenv venv ./venv/bin/python setup.py install E configura OctoPrint per l'avvio all'avvio: sudo cp ~/OctoPrint/scripts/octoprint.init /etc/init.d/octoprint sudo chmod +x /etc/init.d/octoprint sudo cp ~/OctoPrint/scripts/octoprint.default /etc/default/octoprint sudo update-rc.d octoprint defaults \u00c8 necessario modificare il file di configurazione /etc/default/octoprint di OctoPrint. Si deve cambiare l'utente OCTOPRINT_USER in debian , cambiare NICELEVEL in 0 , togliere il commento alle impostazioni di BASEDIR , CONFIGFILE e DAEMON e cambiare i riferimenti della home da /home/pi/ a /home/debian/ : sudo nano /etc/default/octoprint Quindi avvia il servizio Octoprint: sudo systemctl start octoprint Assicurati che il server web OctoPrint sia accessibile - dovrebbe trovarsi su: http://beaglebone:5000/ Creazione del codice del microcontrollore \u00b6 Per compilare il codice del microcontrollore Klipper, inizia configurandolo per il \"Beaglebone PRU\": cd ~/klipper/ make menuconfig Per compilare e installare il nuovo codice del microcontrollore, eseguire: sudo service klipper stop make flash sudo service klipper start \u00c8 inoltre necessario compilare e installare il codice del microcontrollore per un processo host Linux. Configuralo per un \"processo Linux\": make menuconfig Quindi installa anche questo codice del microcontrollore: sudo service klipper stop make flash sudo service klipper start Configurazione rimanente \u00b6 Completare l'installazione configurando Klipper e Octoprint seguendo le istruzioni nel documento principale Installation . Stampa sul Beaglebone \u00b6 Sfortunatamente, il processore Beaglebone a volte pu\u00f2 avere difficolt\u00e0 a far funzionare bene OctoPrint. \u00c8 noto che i blocchi di stampa si verificano su stampe complesse (la stampante potrebbe muoversi pi\u00f9 velocemente di quanto OctoPrint possa inviare comandi di movimento). In questo caso, considera l'utilizzo della funzione \"virtual_sdcard\" (consulta Config Reference per i dettagli) per stampare direttamente da Klipper.","title":"Beaglebone"},{"location":"Beaglebone.html#beaglebone","text":"Questo documento descrive il processo di esecuzione di Klipper su una PRU Beaglebone.","title":"Beaglebone"},{"location":"Beaglebone.html#creazione-di-unimmagine-del-sistema-operativo","text":"Inizia installando l'immagine Debian 9.9 2019-08-03 4GB SD IoT . \u00c8 possibile eseguire l'immagine da una scheda micro-SD o dall'eMMC integrato. Se si utilizza l'eMMC, installarlo ora nell'eMMC seguendo le istruzioni dal collegamento sopra. Quindi loggati ssh nella macchina Beaglebone ( ssh debian@beaglebone -- la password \u00e8 temppwd ) e installa Klipper eseguendo i seguenti comandi: git clone https://github.com/Klipper3d/klipper ./klipper/scripts/install-beaglebone.sh","title":"Creazione di un'immagine del sistema operativo"},{"location":"Beaglebone.html#installare-octoprint","text":"Si pu\u00f2 quindi installare Octoprint: git clone https://github.com/foosel/OctoPrint.git cd OctoPrint/ virtualenv venv ./venv/bin/python setup.py install E configura OctoPrint per l'avvio all'avvio: sudo cp ~/OctoPrint/scripts/octoprint.init /etc/init.d/octoprint sudo chmod +x /etc/init.d/octoprint sudo cp ~/OctoPrint/scripts/octoprint.default /etc/default/octoprint sudo update-rc.d octoprint defaults \u00c8 necessario modificare il file di configurazione /etc/default/octoprint di OctoPrint. Si deve cambiare l'utente OCTOPRINT_USER in debian , cambiare NICELEVEL in 0 , togliere il commento alle impostazioni di BASEDIR , CONFIGFILE e DAEMON e cambiare i riferimenti della home da /home/pi/ a /home/debian/ : sudo nano /etc/default/octoprint Quindi avvia il servizio Octoprint: sudo systemctl start octoprint Assicurati che il server web OctoPrint sia accessibile - dovrebbe trovarsi su: http://beaglebone:5000/","title":"Installare Octoprint"},{"location":"Beaglebone.html#creazione-del-codice-del-microcontrollore","text":"Per compilare il codice del microcontrollore Klipper, inizia configurandolo per il \"Beaglebone PRU\": cd ~/klipper/ make menuconfig Per compilare e installare il nuovo codice del microcontrollore, eseguire: sudo service klipper stop make flash sudo service klipper start \u00c8 inoltre necessario compilare e installare il codice del microcontrollore per un processo host Linux. Configuralo per un \"processo Linux\": make menuconfig Quindi installa anche questo codice del microcontrollore: sudo service klipper stop make flash sudo service klipper start","title":"Creazione del codice del microcontrollore"},{"location":"Beaglebone.html#configurazione-rimanente","text":"Completare l'installazione configurando Klipper e Octoprint seguendo le istruzioni nel documento principale Installation .","title":"Configurazione rimanente"},{"location":"Beaglebone.html#stampa-sul-beaglebone","text":"Sfortunatamente, il processore Beaglebone a volte pu\u00f2 avere difficolt\u00e0 a far funzionare bene OctoPrint. \u00c8 noto che i blocchi di stampa si verificano su stampe complesse (la stampante potrebbe muoversi pi\u00f9 velocemente di quanto OctoPrint possa inviare comandi di movimento). In questo caso, considera l'utilizzo della funzione \"virtual_sdcard\" (consulta Config Reference per i dettagli) per stampare direttamente da Klipper.","title":"Stampa sul Beaglebone"},{"location":"Bed_Level.html","text":"Livellamento del piatto \u00b6 La livellatura del piatto \u00e8 fondamentale per ottenere stampe di alta qualit\u00e0. Se un piatto non \u00e8 adeguatamente \"livellato\" pu\u00f2 portare a una scarsa adesione sul piatto, a una \"deformazione\" e a problemi minori durante la stampa. Questo documento serve come guida per eseguire il livellamento del piatto in Klipper. \u00c8 importante comprendere l'obiettivo del livellamento del piatto. Se alla stampante viene comandata una posizione X0 Y0 Z10 durante una stampa, l'obiettivo \u00e8 che l'ugello della stampante si trovi esattamente a 10 mm dal piatto della stampante. Inoltre, se poi la stampante dovesse essere comandata in una posizione di X50 Z10 , l'obiettivo \u00e8 che l'ugello mantenga una distanza esatta di 10 mm dal piatto durante l'intero movimento orizzontale. Per ottenere stampe di buona qualit\u00e0, la stampante deve essere calibrata in modo che le distanze Z siano precise entro circa 25 micron (0,025 mm). Questa \u00e8 una piccola distanza, significativamente pi\u00f9 piccola della larghezza di un tipico capello umano. Questa scala non pu\u00f2 essere misurata \"a occhio\". Gli effetti sottili (come l'espansione del calore) influiscono sulle misurazioni a questa scala. Il segreto per ottenere un'elevata precisione \u00e8 utilizzare un processo ripetibile e un metodo di livellamento che sfrutti l'elevata precisione del sistema di movimento della stampante. Scegliere il meccanismo di calibrazione appropriato \u00b6 Diversi tipi di stampanti utilizzano metodi diversi per eseguire il livellamento del piatto. Tutti alla fine dipendono dal \"test cartaceo\" (descritto di seguito). Tuttavia, il processo effettivo per un particolare tipo di stampante \u00e8 descritto in altri documenti. Prima di eseguire uno di questi strumenti di calibrazione, assicurarsi di eseguire i controlli descritti nel documento check di configurazione . \u00c8 necessario verificare il movimento di base della stampante prima di eseguire il livellamento del piatto. Per le stampanti con una \"sonda Z automatica\", assicurarsi di calibrare la sonda seguendo le istruzioni nel documento Probe Calibrate . Per le stampanti delta, vedere il documento Delta Calibrate . Per le stampanti con viti di fissaggio e fermi Z tradizionali, vedere il documento Manual Level . Durante la calibrazione potrebbe essere necessario impostare la Z position_min della stampante su un numero negativo (ad esempio, position_min = -2 ). La stampante applica i controlli dei confini anche durante le routine di calibrazione. L'impostazione di un numero negativo consente alla stampante di spostarsi al di sotto della posizione nominale del piatto, il che pu\u00f2 aiutare quando si tenta di determinare la posizione effettiva del piatto. Il \"test con la carta\" \u00b6 Il meccanismo primario di calibrazione del piatto primario \u00e8 il \"test della carta\". Si tratta di posizionare un normale pezzo di \"carta per fotocopiatrice\" tra il piatto della stampante e l'ugello, quindi comandare l'ugello a diverse altezze Z finch\u00e9 non si avverte una piccola quantit\u00e0 di attrito quando si spinge la carta avanti e indietro. \u00c8 importante comprendere il \"test della carta\" anche se si dispone di una \"sonda Z automatica\". La sonda stessa deve spesso essere calibrata per ottenere buoni risultati. La calibrazione della sonda viene eseguita utilizzando questo \"test della carta\". Per eseguire il test della carta, taglia un piccolo pezzo di carta rettangolare usando un paio di forbici (es. 5x3 cm). La carta ha generalmente uno spessore di circa 100 micron (0,100 mm). (Lo spessore esatto della carta non \u00e8 cruciale.) Il primo passaggio del test della carta consiste nell'ispezione dell'ugello e del piatto della stampante. Assicurati che non ci sia plastica (o altri detriti) sull'ugello o sul letto. Ispeziona l'ugello e il piatto per assicurarti che non sia presente plastica! Se si stampa sempre su un determinato nastro o superficie di stampa, \u00e8 possibile eseguire il test della carta con quel nastro/superficie in posizione. Tuttavia, tieni presente che il nastro stesso ha uno spessore e nastri diversi (o qualsiasi altra superficie di stampa) influiranno sulle misurazioni Z. Assicurati di eseguire nuovamente il test della carta per misurare ogni tipo di superficie in uso. Se c'\u00e8 della plastica sull'ugello, riscalda l'estrusore e usa una pinzetta di metallo per rimuovere quella plastica. Attendere che l'estrusore si raffreddi completamente a temperatura ambiente prima di continuare con il test della carta. Mentre l'ugello si sta raffreddando, usa le pinzette di metallo per rimuovere la plastica che potrebbe fuoriuscire. Esegui sempre il test della carta quando sia l'ugello che il letto sono a temperatura ambiente! Quando l'ugello \u00e8 riscaldato, la sua posizione (rispetto al piatto) cambia a causa dell'espansione termica. Questa espansione termica \u00e8 in genere di circa 100 micron, che ha all'incirca lo stesso spessore di un tipico pezzo di carta per stampante. L'esatta quantit\u00e0 di espansione termica non \u00e8 cruciale, cos\u00ec come lo spessore esatto della carta non \u00e8 cruciale. Inizia con il presupposto che i due siano uguali (vedi sotto per un metodo per determinare la differenza tra le due distanze). Pu\u00f2 sembrare strano calibrare la distanza a temperatura ambiente quando l'obiettivo \u00e8 avere una distanza costante quando riscaldata. Tuttavia, se si calibra quando l'ugello \u00e8 riscaldato, tende a rilasciare piccole quantit\u00e0 di plastica fusa alla carta, il che cambia la quantit\u00e0 di attrito sentito. Ci\u00f2 rende pi\u00f9 difficile ottenere una buona calibrazione. La calibrazione mentre il letto/ugello \u00e8 caldo aumenta notevolmente anche il rischio di ustione. La quantit\u00e0 di espansione termica \u00e8 stabile, quindi \u00e8 facilmente contabilizzabile pi\u00f9 avanti nel processo di calibrazione. Utilizza uno strumento automatizzato per determinare l'altezza Z precisa! Klipper ha diversi script di supporto disponibili (ad esempio, MANUAL_PROBE, Z_ENDSTOP_CALIBRATE, PROBE_CALIBRATE, DELTA_CALIBRATE). Consulta i documenti descritti sopra per sceglierne uno. Eseguire il comando appropriato nella finestra del terminale di OctoPrint. Lo script richieder\u00e0 l'interazione dell'utente nell'output del terminale OctoPrint. Sembrer\u00e0 qualcosa come: Recv: // Starting manual Z probe. Use TESTZ to adjust position. Recv: // Finish with ACCEPT or ABORT command. Recv: // Z position: ?????? --> 5.000 <-- ?????? L'altezza attuale dell'ugello (come la intende attualmente la stampante) \u00e8 mostrata tra \"--> <--\". Il numero a destra \u00e8 l'altezza dell'ultimo tentativo di sonda appena maggiore dell'altezza attuale e a sinistra \u00e8 l'ultimo tentativo di sonda inferiore all'altezza attuale (o ?????? se non \u00e8 stato effettuato alcun tentativo). Metti la carta tra l'ugello e il letto. Pu\u00f2 essere utile piegare un angolo della carta in modo che sia pi\u00f9 facile da afferrare. (Cerca di non spingere il piatto quando muovi la carta avanti e indietro.) Utilizzare il comando TESTZ per richiedere all'ugello di avvicinarsi alla carta. Per esempio: TESTZ Z=-.1 Il comando TESTZ sposter\u00e0 l'ugello di una distanza relativa dalla posizione corrente dell'ugello. (Quindi, Z=-.1 richiede che l'ugello si avvicini al piatto di 0,1 mm.) Dopo che l'ugello ha smesso di muoversi, spingere la carta avanti e indietro per controllare se l'ugello \u00e8 in contatto con la carta e per sentire la quantit\u00e0 di attrito. Continua a emettere comandi TESTZ finch\u00e9 non si avverte una piccola quantit\u00e0 di attrito durante il test con la carta. Se si trova troppo attrito, \u00e8 possibile utilizzare un valore Z positivo per spostare l'ugello verso l'alto. \u00c8 anche possibile utilizzare TESTZ Z=+ o TESTZ Z=- per \"sezionare in due\" l'ultima posizione, ovvero per spostarsi in una posizione a met\u00e0 strada tra due posizioni. Ad esempio, se si riceve il seguente prompt da un comando TESTZ: Recv: // Z position: 0.130 --> 0.230 <-- 0.280 Quindi un TESTZ Z=- sposterebbe l'ugello in una posizione Z di 0,180 (a met\u00e0 strada tra 0,130 e 0,230). \u00c8 possibile utilizzare questa funzione per ridurre rapidamente a un attrito costante. \u00c8 anche possibile usare Z=++ e Z=-- per tornare direttamente a una misurazione passata - per esempio, dopo il prompt sopra un comando TESTZ Z=-- sposterebbe l'ugello su una Z posizione di 0,130. Dopo aver trovato una piccola quantit\u00e0 di attrito, eseguire il comando ACCETTA: ACCEPT Questo accetter\u00e0 l'altezza Z data e proceder\u00e0 con lo strumento di calibrazione fornito. L'esatta quantit\u00e0 di attrito percepito non \u00e8 cruciale, cos\u00ec come la quantit\u00e0 di espansione termica e l'esatta larghezza della carta non sono cruciali. Cerca solo di ottenere la stessa quantit\u00e0 di attrito ogni volta che esegui il test. Se qualcosa va storto durante il test, \u00e8 possibile utilizzare il comando ABORT per uscire dallo strumento di calibrazione. Determinare l'espansione termica \u00b6 Dopo aver eseguito con successo il livellamento del piatto, si pu\u00f2 continuare a calcolare un valore pi\u00f9 preciso per l'impatto combinato di \"espansione termica\", \"spessore della carta\" e \"quantit\u00e0 di attrito sentito durante il test della carta\". Questo tipo di calcolo generalmente non \u00e8 necessario poich\u00e9 la maggior parte degli utenti ritiene che il semplice \"test cartaceo\" fornisca buoni risultati. Il modo pi\u00f9 semplice per eseguire questo calcolo \u00e8 stampare un oggetto di prova con pareti dritte su tutti i lati. Il cubo vuoto che si trova in docs/prints/square.stl pu\u00f2 essere usato per questo. Quando si fa lo slicing l'oggetto, assicurarsi che lo slicer utilizzi la stessa altezza del livello e la stessa larghezza di estrusione per il primo livello che utilizza per tutti i livelli successivi. Utilizzare un'altezza dello strato grossolana (l'altezza dello strato dovrebbe essere circa il 75% del diametro dell'ugello) e non utilizzare un bordo o una raft. Stampa l'oggetto di prova, attendi che si raffreddi e rimuovilo dal piatto. Ispeziona lo strato pi\u00f9 basso dell'oggetto. (Pu\u00f2 anche essere utile far scorrere un dito o un'unghia lungo il bordo inferiore.) Se si scopre che lo strato inferiore si gonfia leggermente lungo tutti i lati dell'oggetto, significa che l'ugello era leggermente pi\u00f9 vicino al piatto di quanto dovrebbe essere. Si pu\u00f2 emettere un comando SET_GCODE_OFFSET Z=+.010 per aumentare l'altezza. Nelle stampe successive \u00e8 possibile controllare questo comportamento e apportare ulteriori modifiche secondo necessit\u00e0. Le regolazioni di questo tipo sono in genere in 10 micron (0,010 mm). Se il livello inferiore appare costantemente pi\u00f9 stretto dei livelli successivi, \u00e8 possibile utilizzare il comando SET_GCODE_OFFSET per effettuare una regolazione Z negativa. Se non si \u00e8 sicuri, \u00e8 possibile diminuire la regolazione Z finch\u00e9 lo strato inferiore delle stampe non mostra un piccolo rigonfiamento, quindi arretrare finch\u00e9 non scompare. Il modo pi\u00f9 semplice per applicare la regolazione Z desiderata \u00e8 creare una macro di G-code START_PRINT, fare in modo che lo slicer chiami quella macro all'inizio di ogni stampa e aggiungere un comando SET_GCODE_OFFSET a quella macro. Per ulteriori dettagli, vedere il documento slicers .","title":"Livellamento del piatto"},{"location":"Bed_Level.html#livellamento-del-piatto","text":"La livellatura del piatto \u00e8 fondamentale per ottenere stampe di alta qualit\u00e0. Se un piatto non \u00e8 adeguatamente \"livellato\" pu\u00f2 portare a una scarsa adesione sul piatto, a una \"deformazione\" e a problemi minori durante la stampa. Questo documento serve come guida per eseguire il livellamento del piatto in Klipper. \u00c8 importante comprendere l'obiettivo del livellamento del piatto. Se alla stampante viene comandata una posizione X0 Y0 Z10 durante una stampa, l'obiettivo \u00e8 che l'ugello della stampante si trovi esattamente a 10 mm dal piatto della stampante. Inoltre, se poi la stampante dovesse essere comandata in una posizione di X50 Z10 , l'obiettivo \u00e8 che l'ugello mantenga una distanza esatta di 10 mm dal piatto durante l'intero movimento orizzontale. Per ottenere stampe di buona qualit\u00e0, la stampante deve essere calibrata in modo che le distanze Z siano precise entro circa 25 micron (0,025 mm). Questa \u00e8 una piccola distanza, significativamente pi\u00f9 piccola della larghezza di un tipico capello umano. Questa scala non pu\u00f2 essere misurata \"a occhio\". Gli effetti sottili (come l'espansione del calore) influiscono sulle misurazioni a questa scala. Il segreto per ottenere un'elevata precisione \u00e8 utilizzare un processo ripetibile e un metodo di livellamento che sfrutti l'elevata precisione del sistema di movimento della stampante.","title":"Livellamento del piatto"},{"location":"Bed_Level.html#scegliere-il-meccanismo-di-calibrazione-appropriato","text":"Diversi tipi di stampanti utilizzano metodi diversi per eseguire il livellamento del piatto. Tutti alla fine dipendono dal \"test cartaceo\" (descritto di seguito). Tuttavia, il processo effettivo per un particolare tipo di stampante \u00e8 descritto in altri documenti. Prima di eseguire uno di questi strumenti di calibrazione, assicurarsi di eseguire i controlli descritti nel documento check di configurazione . \u00c8 necessario verificare il movimento di base della stampante prima di eseguire il livellamento del piatto. Per le stampanti con una \"sonda Z automatica\", assicurarsi di calibrare la sonda seguendo le istruzioni nel documento Probe Calibrate . Per le stampanti delta, vedere il documento Delta Calibrate . Per le stampanti con viti di fissaggio e fermi Z tradizionali, vedere il documento Manual Level . Durante la calibrazione potrebbe essere necessario impostare la Z position_min della stampante su un numero negativo (ad esempio, position_min = -2 ). La stampante applica i controlli dei confini anche durante le routine di calibrazione. L'impostazione di un numero negativo consente alla stampante di spostarsi al di sotto della posizione nominale del piatto, il che pu\u00f2 aiutare quando si tenta di determinare la posizione effettiva del piatto.","title":"Scegliere il meccanismo di calibrazione appropriato"},{"location":"Bed_Level.html#il-test-con-la-carta","text":"Il meccanismo primario di calibrazione del piatto primario \u00e8 il \"test della carta\". Si tratta di posizionare un normale pezzo di \"carta per fotocopiatrice\" tra il piatto della stampante e l'ugello, quindi comandare l'ugello a diverse altezze Z finch\u00e9 non si avverte una piccola quantit\u00e0 di attrito quando si spinge la carta avanti e indietro. \u00c8 importante comprendere il \"test della carta\" anche se si dispone di una \"sonda Z automatica\". La sonda stessa deve spesso essere calibrata per ottenere buoni risultati. La calibrazione della sonda viene eseguita utilizzando questo \"test della carta\". Per eseguire il test della carta, taglia un piccolo pezzo di carta rettangolare usando un paio di forbici (es. 5x3 cm). La carta ha generalmente uno spessore di circa 100 micron (0,100 mm). (Lo spessore esatto della carta non \u00e8 cruciale.) Il primo passaggio del test della carta consiste nell'ispezione dell'ugello e del piatto della stampante. Assicurati che non ci sia plastica (o altri detriti) sull'ugello o sul letto. Ispeziona l'ugello e il piatto per assicurarti che non sia presente plastica! Se si stampa sempre su un determinato nastro o superficie di stampa, \u00e8 possibile eseguire il test della carta con quel nastro/superficie in posizione. Tuttavia, tieni presente che il nastro stesso ha uno spessore e nastri diversi (o qualsiasi altra superficie di stampa) influiranno sulle misurazioni Z. Assicurati di eseguire nuovamente il test della carta per misurare ogni tipo di superficie in uso. Se c'\u00e8 della plastica sull'ugello, riscalda l'estrusore e usa una pinzetta di metallo per rimuovere quella plastica. Attendere che l'estrusore si raffreddi completamente a temperatura ambiente prima di continuare con il test della carta. Mentre l'ugello si sta raffreddando, usa le pinzette di metallo per rimuovere la plastica che potrebbe fuoriuscire. Esegui sempre il test della carta quando sia l'ugello che il letto sono a temperatura ambiente! Quando l'ugello \u00e8 riscaldato, la sua posizione (rispetto al piatto) cambia a causa dell'espansione termica. Questa espansione termica \u00e8 in genere di circa 100 micron, che ha all'incirca lo stesso spessore di un tipico pezzo di carta per stampante. L'esatta quantit\u00e0 di espansione termica non \u00e8 cruciale, cos\u00ec come lo spessore esatto della carta non \u00e8 cruciale. Inizia con il presupposto che i due siano uguali (vedi sotto per un metodo per determinare la differenza tra le due distanze). Pu\u00f2 sembrare strano calibrare la distanza a temperatura ambiente quando l'obiettivo \u00e8 avere una distanza costante quando riscaldata. Tuttavia, se si calibra quando l'ugello \u00e8 riscaldato, tende a rilasciare piccole quantit\u00e0 di plastica fusa alla carta, il che cambia la quantit\u00e0 di attrito sentito. Ci\u00f2 rende pi\u00f9 difficile ottenere una buona calibrazione. La calibrazione mentre il letto/ugello \u00e8 caldo aumenta notevolmente anche il rischio di ustione. La quantit\u00e0 di espansione termica \u00e8 stabile, quindi \u00e8 facilmente contabilizzabile pi\u00f9 avanti nel processo di calibrazione. Utilizza uno strumento automatizzato per determinare l'altezza Z precisa! Klipper ha diversi script di supporto disponibili (ad esempio, MANUAL_PROBE, Z_ENDSTOP_CALIBRATE, PROBE_CALIBRATE, DELTA_CALIBRATE). Consulta i documenti descritti sopra per sceglierne uno. Eseguire il comando appropriato nella finestra del terminale di OctoPrint. Lo script richieder\u00e0 l'interazione dell'utente nell'output del terminale OctoPrint. Sembrer\u00e0 qualcosa come: Recv: // Starting manual Z probe. Use TESTZ to adjust position. Recv: // Finish with ACCEPT or ABORT command. Recv: // Z position: ?????? --> 5.000 <-- ?????? L'altezza attuale dell'ugello (come la intende attualmente la stampante) \u00e8 mostrata tra \"--> <--\". Il numero a destra \u00e8 l'altezza dell'ultimo tentativo di sonda appena maggiore dell'altezza attuale e a sinistra \u00e8 l'ultimo tentativo di sonda inferiore all'altezza attuale (o ?????? se non \u00e8 stato effettuato alcun tentativo). Metti la carta tra l'ugello e il letto. Pu\u00f2 essere utile piegare un angolo della carta in modo che sia pi\u00f9 facile da afferrare. (Cerca di non spingere il piatto quando muovi la carta avanti e indietro.) Utilizzare il comando TESTZ per richiedere all'ugello di avvicinarsi alla carta. Per esempio: TESTZ Z=-.1 Il comando TESTZ sposter\u00e0 l'ugello di una distanza relativa dalla posizione corrente dell'ugello. (Quindi, Z=-.1 richiede che l'ugello si avvicini al piatto di 0,1 mm.) Dopo che l'ugello ha smesso di muoversi, spingere la carta avanti e indietro per controllare se l'ugello \u00e8 in contatto con la carta e per sentire la quantit\u00e0 di attrito. Continua a emettere comandi TESTZ finch\u00e9 non si avverte una piccola quantit\u00e0 di attrito durante il test con la carta. Se si trova troppo attrito, \u00e8 possibile utilizzare un valore Z positivo per spostare l'ugello verso l'alto. \u00c8 anche possibile utilizzare TESTZ Z=+ o TESTZ Z=- per \"sezionare in due\" l'ultima posizione, ovvero per spostarsi in una posizione a met\u00e0 strada tra due posizioni. Ad esempio, se si riceve il seguente prompt da un comando TESTZ: Recv: // Z position: 0.130 --> 0.230 <-- 0.280 Quindi un TESTZ Z=- sposterebbe l'ugello in una posizione Z di 0,180 (a met\u00e0 strada tra 0,130 e 0,230). \u00c8 possibile utilizzare questa funzione per ridurre rapidamente a un attrito costante. \u00c8 anche possibile usare Z=++ e Z=-- per tornare direttamente a una misurazione passata - per esempio, dopo il prompt sopra un comando TESTZ Z=-- sposterebbe l'ugello su una Z posizione di 0,130. Dopo aver trovato una piccola quantit\u00e0 di attrito, eseguire il comando ACCETTA: ACCEPT Questo accetter\u00e0 l'altezza Z data e proceder\u00e0 con lo strumento di calibrazione fornito. L'esatta quantit\u00e0 di attrito percepito non \u00e8 cruciale, cos\u00ec come la quantit\u00e0 di espansione termica e l'esatta larghezza della carta non sono cruciali. Cerca solo di ottenere la stessa quantit\u00e0 di attrito ogni volta che esegui il test. Se qualcosa va storto durante il test, \u00e8 possibile utilizzare il comando ABORT per uscire dallo strumento di calibrazione.","title":"Il \"test con la carta\""},{"location":"Bed_Level.html#determinare-lespansione-termica","text":"Dopo aver eseguito con successo il livellamento del piatto, si pu\u00f2 continuare a calcolare un valore pi\u00f9 preciso per l'impatto combinato di \"espansione termica\", \"spessore della carta\" e \"quantit\u00e0 di attrito sentito durante il test della carta\". Questo tipo di calcolo generalmente non \u00e8 necessario poich\u00e9 la maggior parte degli utenti ritiene che il semplice \"test cartaceo\" fornisca buoni risultati. Il modo pi\u00f9 semplice per eseguire questo calcolo \u00e8 stampare un oggetto di prova con pareti dritte su tutti i lati. Il cubo vuoto che si trova in docs/prints/square.stl pu\u00f2 essere usato per questo. Quando si fa lo slicing l'oggetto, assicurarsi che lo slicer utilizzi la stessa altezza del livello e la stessa larghezza di estrusione per il primo livello che utilizza per tutti i livelli successivi. Utilizzare un'altezza dello strato grossolana (l'altezza dello strato dovrebbe essere circa il 75% del diametro dell'ugello) e non utilizzare un bordo o una raft. Stampa l'oggetto di prova, attendi che si raffreddi e rimuovilo dal piatto. Ispeziona lo strato pi\u00f9 basso dell'oggetto. (Pu\u00f2 anche essere utile far scorrere un dito o un'unghia lungo il bordo inferiore.) Se si scopre che lo strato inferiore si gonfia leggermente lungo tutti i lati dell'oggetto, significa che l'ugello era leggermente pi\u00f9 vicino al piatto di quanto dovrebbe essere. Si pu\u00f2 emettere un comando SET_GCODE_OFFSET Z=+.010 per aumentare l'altezza. Nelle stampe successive \u00e8 possibile controllare questo comportamento e apportare ulteriori modifiche secondo necessit\u00e0. Le regolazioni di questo tipo sono in genere in 10 micron (0,010 mm). Se il livello inferiore appare costantemente pi\u00f9 stretto dei livelli successivi, \u00e8 possibile utilizzare il comando SET_GCODE_OFFSET per effettuare una regolazione Z negativa. Se non si \u00e8 sicuri, \u00e8 possibile diminuire la regolazione Z finch\u00e9 lo strato inferiore delle stampe non mostra un piccolo rigonfiamento, quindi arretrare finch\u00e9 non scompare. Il modo pi\u00f9 semplice per applicare la regolazione Z desiderata \u00e8 creare una macro di G-code START_PRINT, fare in modo che lo slicer chiami quella macro all'inizio di ogni stampa e aggiungere un comando SET_GCODE_OFFSET a quella macro. Per ulteriori dettagli, vedere il documento slicers .","title":"Determinare l'espansione termica"},{"location":"Bed_Mesh.html","text":"Matrice del Piatto \u00b6 Il modulo rete piatto (bed mesh) pu\u00f2 essere usato per compensare le irregolarit\u00e0 della superficie del piatto e per ottenere un primo strato migliore su tutto il piatto. Va notato che la correzione basata sul software non raggiunger\u00e0 risultati perfetti, pu\u00f2 solo approssimare la forma del piatto. Bed mesh inoltre non pu\u00f2 compensare i problemi meccanici ed elettrici. Se un asse \u00e8 obliquo o una sonda non \u00e8 accurata, il modulo Bed mesh non ricever\u00e0 risultati accurati dal processo di ispezione. Prima della calibrazione della mesh dovrai assicurarti che l'offset Z della tua sonda sia calibrato. Se si utilizza un fine corsa per l'homing Z, anche questo dovr\u00e0 essere calibrato. Per ulteriori informazioni, vedere Probe Calibrate e Z_ENDSTOP_CALIBRATE in Manual Level . Configurazione base \u00b6 Piatti rettangolari \u00b6 Questo esempio presuppone una stampante con un piatto rettangolare di 250 mm x 220 mm e una sonda con un offset x di 24 mm e un offset y di 5 mm. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 speed: 120 Valore predefinito: 50 La velocit\u00e0 con cui la testa di stampa si sposta tra i punti. horizontal_move_z: 5 Valore predefinito: 5 La coordinata Z a cui si solleva la sonda prima di spostarsi tra i punti. mesh_min: 35, 6 Richiesto La prima coordinata rilevata, pi\u00f9 vicina all'origine. Questa coordinata \u00e8 relativa alla posizione della sonda. mesh_max: 240, 198 Richiesto La coordinata rilevata pi\u00f9 lontana dall'origine. Questo non \u00e8 necessariamente l'ultimo punto sondato, poich\u00e9 il processo di rilevamento avviene a zig-zag. Come per mesh_min , questa coordinata \u00e8 relativa alla posizione della sonda. probe_count: 5, 3 Valore predefinito: 3, 3 Il numero di punti da sondare su ciascun asse, specificato come valori interi X, Y. In questo esempio verranno tastati 5 punti lungo l'asse X, con 3 punti lungo l'asse Y, per un totale di 15 punti tastati. Nota che se desideri una griglia quadrata, ad esempio 3x3, questo potrebbe essere specificato come un singolo valore intero che viene utilizzato per entrambi gli assi, ad esempio probe_count: 3 . Si noti che una mesh richiede un probe_count minimo di 3 lungo ciascun asse. L'illustrazione seguente mostra come le opzioni mesh_min , mesh_max e probe_count vengono utilizzate per generare punti sonda. Le frecce indicano la direzione della procedura di probing, a partire da mesh_min . Per riferimento, quando la sonda \u00e8 a mesh_min , l'ugello sar\u00e0 a (11, 1), e quando la sonda \u00e8 a mesh_max , l'ugello sar\u00e0 a (206, 193). Piatti rotondi \u00b6 Questo esempio presuppone una stampante dotata di un raggio del piatto rotondo di 100 mm. Utilizzeremo gli stessi offset della sonda dell'esempio rettangolare, 24 mm su X e 5 mm su Y. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_radius: 75 mesh_origin: 0, 0 round_probe_count: 5 mesh_radius: 75 Obbligatorio Il raggio della mesh sondata in mm, relativo a mesh_origin . Si noti che gli offset della sonda limitano la dimensione del raggio della mesh. In questo esempio, un raggio maggiore di 76 sposterebbe lo strumento oltre il range della stampante. mesh_origin: 0, 0 Valore predefinito: 0, 0 Il punto centrale della mesh. Questa coordinata \u00e8 relativa alla posizione della sonda. Sebbene il valore predefinito sia 0, 0, pu\u00f2 essere utile regolare l'origine nel tentativo di sondare una porzione pi\u00f9 ampia del letto. Vedi l'illustrazione qui sotto. round_probe_count: 5 Valore predefinito: 5 Questo \u00e8 un valore intero che definisce il numero massimo di punti sondati lungo gli assi X e Y. Per \"massimo\" si intende il numero di punti tastati lungo l'origine della mesh. Questo valore deve essere un numero dispari, in quanto \u00e8 necessario che venga sondato il centro della mesh. L'illustrazione seguente mostra come vengono generati i punti sondati. Come puoi vedere, l'impostazione di mesh_origin su (-10, 0) ci consente di specificare un raggio di mesh maggiore di 85. Configurazione avanzata \u00b6 Di seguito vengono spiegate in dettaglio le opzioni di configurazione pi\u00f9 avanzate. Ciascun esempio si baser\u00e0 sulla configurazione base del piatto rettangolare mostrata sopra. Ciascuna delle opzioni avanzate si applica allo stesso modo ai piatti rotondi. Interpolazione mesh \u00b6 Sebbene sia possibile campionare la matrice sondata direttamente utilizzando una semplice interpolazione bilineare per determinare i valori Z tra i punti sondati, \u00e8 spesso utile interpolare punti extra utilizzando algoritmi di interpolazione pi\u00f9 avanzati per aumentare la densit\u00e0 della mesh. Questi algoritmi aggiungono curvatura alla mesh, tentando di simulare le propriet\u00e0 del materiale del piatto. Bed Mesh offre l'interpolazione lagrange e bicubica per ottenere questo risultato. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 mesh_pps: 2, 3 algorithm: bicubic bicubic_tension: 0.2 mesh_pps: 2, 3 Valore predefinito: 2, 2 L'opzione mesh_pps \u00e8 un'abbreviazione per Mesh Points Per Segment. Questa opzione specifica quanti punti interpolare per ciascun segmento lungo gli assi X e Y. Considera un \"segmento\" come lo spazio tra ogni punto sondato. Come probe_count , mesh_pps \u00e8 specificato come una coppia di interi X, Y e pu\u00f2 anche essere specificato un singolo intero che viene applicato a entrambi gli assi. In questo esempio ci sono 4 segmenti lungo l'asse X e 2 segmenti lungo l'asse Y. Questo restituisce 8 punti interpolati lungo X, 6 punti interpolati lungo Y, che si traduce in una mesh 13x8. Si noti che se mesh_pps \u00e8 impostato su 0, l'interpolazione della mesh \u00e8 disabilitata e la matrice sondata verr\u00e0 campionata direttamente. algoritmo: lagrange Valore predefinito: lagrange L'algoritmo utilizzato per interpolare la mesh. Pu\u00f2 essere \"lagrange\" o \"bicubico\". L'interpolazione Lagrange \u00e8 limitata a 6 punti sondati poich\u00e9 tende a verificarsi l'oscillazione con un numero maggiore di campioni. L'interpolazione bicubica richiede un minimo di 4 punti sondati lungo ciascun asse, se vengono specificati meno di 4 punti, viene forzato il campionamento lagrange. Se mesh_pps \u00e8 impostato su 0, questo valore viene ignorato poich\u00e9 non viene eseguita alcuna interpolazione della mesh. bicubic_tension: 0.2 Valore predefinito: 0.2 Se l'opzione algorithm \u00e8 impostata su bicubic \u00e8 possibile specificare il valore della tensione. Maggiore \u00e8 la tensione, maggiore \u00e8 la pendenza interpolata. Prestare attenzione durante la regolazione, poich\u00e9 valori pi\u00f9 elevati creano anche una maggiore sovraelongazione, che risulter\u00e0 in valori interpolati superiori o inferiori rispetto ai punti rilevati. L'illustrazione seguente mostra come vengono utilizzate le opzioni precedenti per generare una mesh interpolata. Divisione dei movimenti \u00b6 Bed Mesh funziona intercettando i comandi di spostamento di gcode e applicando una trasformazione alla loro coordinata Z. I movimenti lunghi devono essere suddivisi in movimenti pi\u00f9 piccoli per seguire correttamente la forma del piatto. Le opzioni seguenti controllano il comportamento di divisione. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 move_check_distance: 5 split_delta_z: .025 move_check_distance: 5 Valore predefinito: 5 La distanza minima per verificare la modifica desiderata in Z prima di eseguire una divisione. In questo esempio, un movimento pi\u00f9 lungo di 5 mm verr\u00e0 eseguito dall'algoritmo. Ogni 5 mm si verificher\u00e0 una ricerca Z della mesh, confrontandola con il valore Z del movimento precedente. Se il delta raggiunge la soglia impostata da split_delta_z , il movimento sar\u00e0 diviso e l'attraversamento continuer\u00e0. Questo processo si ripete fino al raggiungimento della fine del movimento, dove verr\u00e0 applicato un aggiustamento finale. I movimenti pi\u00f9 brevi di move_check_distance hanno la correzione Z corretta applicata direttamente alla mossa senza attraversamento o divisione. split_delta_z: .025 Valore predefinito: .025 Come accennato in precedenza, questa \u00e8 la deviazione minima richiesta per attivare una divisione del movimento. In questo esempio, qualsiasi valore Z con una deviazione +/- 0,025 mm attiver\u00e0 una divisione. Generalmente i valori di default per queste opzioni sono sufficienti, infatti il valore di default di 5mm per il move_check_distance potrebbe essere eccessivo. Tuttavia, un utente esperto potrebbe voler sperimentare queste opzioni nel tentativo di spremere un primo layer ottimale. Dissolvenza Mesh \u00b6 Quando la \"dissolvenza\" \u00e8 abilitata, la regolazione Z viene gradualmente eliminata su una distanza definita dalla configurazione. Ci\u00f2 si ottiene applicando piccole regolazioni all'altezza dello strato, aumentando o diminuendo a seconda della forma del letto. Quando la dissolvenza \u00e8 completata, la regolazione Z non viene pi\u00f9 applicata, consentendo alla parte superiore della stampa di essere piatta anzich\u00e9 rispecchiare la forma del letto. La dissolvenza pu\u00f2 anche avere alcuni tratti indesiderati, se dissolve troppo rapidamente pu\u00f2 causare artefatti visibili sulla stampa. Inoltre, se il tuo letto \u00e8 notevolmente deformato, la dissolvenza pu\u00f2 ridurre o allungare l'altezza Z della stampa. In quanto tale, la dissolvenza \u00e8 disabilitata per impostazione predefinita. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 fade_start: 1 fade_end: 10 fade_target: 0 fade_start: 1 Valore predefinito: 1 L'altezza Z in cui iniziare la regolazione graduale. \u00c8 una buona idea avere alcuni layer prima di iniziare il processo di dissolvenza. fade_end: 10 Valore predefinito: 0 L'altezza Z in cui deve essere completata la dissolvenza. Se questo valore \u00e8 inferiore a fade_start , la dissolvenza \u00e8 disabilitata. Questo valore pu\u00f2 essere regolato a seconda di quanto \u00e8 deformata la superficie di stampa. Una superficie notevolmente deformata dovrebbe dissolvere su una distanza maggiore. Una superficie quasi piatta potrebbe essere in grado di ridurre questo valore per eliminarlo gradualmente pi\u00f9 rapidamente. 10mm \u00e8 un valore ragionevole per cominciare se si utilizza il valore predefinito di 1 per fade_start . fade_target: 0 Valore predefinito: il valore Z medio della mesh Il fade_target pu\u00f2 essere pensato come un offset Z aggiuntivo applicato all'intero letto dopo il completamento della dissolvenza. In generale, vorremmo che questo valore fosse 0, tuttavia ci sono circostanze in cui non dovrebbe essere. Ad esempio, supponiamo che la tua posizione di riferimento sul letto sia un valore anomalo, 0,2 mm inferiore all'altezza media rilevata del letto. Se fade_target \u00e8 0, la dissolvenza ridurr\u00e0 la stampa di una media di 0,2 mm sul letto. Impostando fade_target su .2, l'area homed si espander\u00e0 di .2 mm, tuttavia il resto del letto avr\u00e0 una dimensione precisa. Generalmente \u00e8 una buona idea lasciare fade_target fuori dalla configurazione in modo che venga utilizzata l'altezza media della mesh, tuttavia potrebbe essere desiderabile regolare manualmente il target di dissolvenza se si desidera stampare su una parte specifica del letto. L'Indice di Riferimento Relativo \u00b6 La maggior parte delle sonde \u00e8 suscettibile alla deriva, cio\u00e8: imprecisioni nel sondaggio introdotte da calore o interferenza. Ci\u00f2 pu\u00f2 rendere difficile il calcolo dell'offset z della sonda, in particolare a diverse temperature del letto. In quanto tali, alcune stampanti utilizzano un fine corsa per l'homing dell'asse Z e una sonda per calibrare la mesh. Queste stampanti possono trarre vantaggio dalla configurazione del relativo indice di riferimento. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 relative_reference_index: 7 relative_reference_index: 7 Valore predefinito: Nessuno (disabilitato) Quando i punti sondati vengono generati, a ciascuno viene assegnato un indice. Puoi cercare questo indice in klippy.log o usando BED_MESH_OUTPUT (vedi la sezione sui GCodes Bed Mesh di seguito per maggiori informazioni). Se si assegna un indice all'opzione relative_reference_index , il valore rilevato a questa coordinata sostituir\u00e0 lo z_offset del probe. Questo rende effettivamente questa coordinata il riferimento \"zero\" per la mesh. Quando si utilizza l'indice di riferimento relativo, \u00e8 necessario scegliere l'indice pi\u00f9 vicino al punto sul letto in cui \u00e8 stata eseguita la calibrazione del fine corsa Z. Nota che quando cerchi l'indice usando il log o BED_MESH_OUTPUT, dovresti usare le coordinate elencate sotto l'intestazione \"Probe\" per trovare l'indice corretto. Regioni difettose \u00b6 \u00c8 possibile che alcune aree di un piatto riportino risultati imprecisi durante il sondaggio a causa di un \"guasto\" in punti specifici. Il miglior esempio di ci\u00f2 sono i piatti con serie di magneti integrati utilizzati per trattenere le lamiere di acciaio rimovibili. Il campo magnetico su e intorno a questi magneti pu\u00f2 causare l'attivazione di una sonda induttiva a una distanza maggiore o minore di quanto sarebbe altrimenti, risultando in una mesh che non rappresenta accuratamente la superficie in queste posizioni. Nota: questo non deve essere confuso con la distorsione della posizione della sonda, che produce risultati imprecisi sull'intero letto. Le opzioni faulty_region possono essere configurate per compensare questo effetto. Se un punto generato si trova all'interno di una regione difettosa, la mesh del letto tenter\u00e0 di sondare fino a 4 punti ai confini di questa regione. Questi valori sondati verranno mediati e inseriti nella mesh come valore Z alla coordinata generata (X, Y). [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 faulty_region_1_min: 130.0, 0.0 faulty_region_1_max: 145.0, 40.0 faulty_region_2_min: 225.0, 0.0 faulty_region_2_max: 250.0, 25.0 faulty_region_3_min: 165.0, 95.0 faulty_region_3_max: 205.0, 110.0 faulty_region_4_min: 30.0, 170.0 faulty_region_4_max: 45.0, 210.0 faulty_region_{1...99}_min faulty_region_{1..99}_max Valore predefinito: Nessuno (disabilitato) Le regioni difettose sono definite in modo simile a quello della mesh stessa, dove minimo e massimo (X , Y) delle coordinate devono essere specificate per ciascuna regione. Una regione difettosa pu\u00f2 estendersi al di fuori di una mesh, tuttavia i punti alternativi generati saranno sempre all'interno del confine della mesh. Non possono sovrapporsi due regioni. L'immagine seguente illustra come vengono generati i punti di sostituzione quando un punto generato si trova all'interno di una regione difettosa. Le regioni mostrate corrispondono a quelle nella configurazione di esempio sopra. I punti di sostituzione e le relative coordinate sono identificati in verde. GCodes della mesh del piatto \u00b6 Calibrazione \u00b6 BED_MESH_CALIBRATE PROFILE=<nome> METHOD=[manuale | automatico] [<parametro_sonda>=<valore>] [<mesh_parameter>=<valore>] Profilo predefinito: default Metodo predefinito: automatico se viene rilevata una sonda, altrimenti manuale Avvia la procedura di sondaggio per la calibrazione della mesh del piatto. La mesh verr\u00e0 salvata in un profilo specificato dal parametro PROFILE , o default se non specificato. Se viene selezionato METHOD=manual , si verificher\u00e0 il rilevamento manuale. Quando si passa dal probing automatico a quello manuale, i punti mesh generati verranno regolati automaticamente. \u00c8 possibile specificare parametri mesh per modificare l'area sondata. Sono disponibili i seguenti parametri: Piatti rettangolari (cartesiani): MESH_MIN MESH_MAX PROBE_COUNT Piatti rotondi (delta): MESH_RADIUS MESH_ORIGIN ROUND_PROBE_COUNT Tutti i piatti: RELATIVE_REFERNCE_INDEX ALGORITHM Vedere la documentazione di configurazione sopra per i dettagli su come ogni parametro si applica alla mesh. Profili \u00b6 BED_MESH_PROFILE SAVE=<name> LOAD=<name> REMOVE=<name> Dopo aver eseguito un BED_MESH_CALIBRATE, \u00e8 possibile salvare lo stato della mesh corrente in un profilo denominato. Ci\u00f2 consente di caricare una mesh senza risondare il piatto. Dopo che un profilo \u00e8 stato salvato usando BED_MESH_PROFILE SAVE=<nome> \u00e8 possibile eseguire il gcode SAVE_CONFIG per scrivere il profilo su printer.cfg. I profili possono essere caricati eseguendo BED_MESH_PROFILE LOAD=<name> . Va notato che ogni volta che si verifica un BED_MESH_CALIBRATE, lo stato corrente viene automaticamente salvato nel profilo predefinito . Se questo profilo esiste, viene caricato automaticamente all'avvio di Klipper. Se questo comportamento non \u00e8 desiderabile, il profilo predefinito pu\u00f2 essere rimosso come segue: BED_MESH_PROFILE REMOVE=default Qualsiasi altro profilo salvato pu\u00f2 essere rimosso allo stesso modo, sostituendo default con il nome del profilo che desideri rimuovere. Output \u00b6 BED_MESH_OUTPUT PGP=[0 | 1] Invia lo stato della mesh corrente al terminale. Si noti che viene emessa la mesh stessa Il parametro PGP \u00e8 un'abbreviazione per \"Print Generated Points\". Se \u00e8 impostato PGP=1 , i punti sondati generati verranno inviati al terminale: // bed_mesh: generated points // Index | Tool Adjusted | Probe // 0 | (11.0, 1.0) | (35.0, 6.0) // 1 | (62.2, 1.0) | (86.2, 6.0) // 2 | (113.5, 1.0) | (137.5, 6.0) // 3 | (164.8, 1.0) | (188.8, 6.0) // 4 | (216.0, 1.0) | (240.0, 6.0) // 5 | (216.0, 97.0) | (240.0, 102.0) // 6 | (164.8, 97.0) | (188.8, 102.0) // 7 | (113.5, 97.0) | (137.5, 102.0) // 8 | (62.2, 97.0) | (86.2, 102.0) // 9 | (11.0, 97.0) | (35.0, 102.0) // 10 | (11.0, 193.0) | (35.0, 198.0) // 11 | (62.2, 193.0) | (86.2, 198.0) // 12 | (113.5, 193.0) | (137.5, 198.0) // 13 | (164.8, 193.0) | (188.8, 198.0) // 14 | (216.0, 193.0) | (240.0, 198.0) I punti \"Tool Adjusted\" si riferiscono alla posizione dell'ugello per ciascun punto e i punti \"Probe\" si riferiscono alla posizione della sonda. Si noti che quando il probing \u00e8 manuale i punti \"sonda\" si riferiscono sia alla posizione dell'utensile che dell'ugello. Cancella stato mesh \u00b6 BED_MESH_CLEAR Questo gcode pu\u00f2 essere utilizzato per cancellare lo stato della mesh interna. Applicare gli offset X/Y \u00b6 BED_MESH_OFFSET [X=<value>] [Y=<value>] Ci\u00f2 \u00e8 utile per le stampanti con pi\u00f9 estrusori indipendenti, poich\u00e9 \u00e8 necessario un offset per produrre la corretta regolazione Z dopo un cambio utensile. Gli offset devono essere specificati rispetto all'estrusore primario. Vale a dire, \u00e8 necessario specificare un offset X positivo se l'estrusore secondario \u00e8 montato a destra dell'estrusore primario e un offset Y positivo se l'estrusore secondario \u00e8 montato \"dietro\" l'estrusore primario.","title":"Matrice del Piatto"},{"location":"Bed_Mesh.html#matrice-del-piatto","text":"Il modulo rete piatto (bed mesh) pu\u00f2 essere usato per compensare le irregolarit\u00e0 della superficie del piatto e per ottenere un primo strato migliore su tutto il piatto. Va notato che la correzione basata sul software non raggiunger\u00e0 risultati perfetti, pu\u00f2 solo approssimare la forma del piatto. Bed mesh inoltre non pu\u00f2 compensare i problemi meccanici ed elettrici. Se un asse \u00e8 obliquo o una sonda non \u00e8 accurata, il modulo Bed mesh non ricever\u00e0 risultati accurati dal processo di ispezione. Prima della calibrazione della mesh dovrai assicurarti che l'offset Z della tua sonda sia calibrato. Se si utilizza un fine corsa per l'homing Z, anche questo dovr\u00e0 essere calibrato. Per ulteriori informazioni, vedere Probe Calibrate e Z_ENDSTOP_CALIBRATE in Manual Level .","title":"Matrice del Piatto"},{"location":"Bed_Mesh.html#configurazione-base","text":"","title":"Configurazione base"},{"location":"Bed_Mesh.html#piatti-rettangolari","text":"Questo esempio presuppone una stampante con un piatto rettangolare di 250 mm x 220 mm e una sonda con un offset x di 24 mm e un offset y di 5 mm. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 speed: 120 Valore predefinito: 50 La velocit\u00e0 con cui la testa di stampa si sposta tra i punti. horizontal_move_z: 5 Valore predefinito: 5 La coordinata Z a cui si solleva la sonda prima di spostarsi tra i punti. mesh_min: 35, 6 Richiesto La prima coordinata rilevata, pi\u00f9 vicina all'origine. Questa coordinata \u00e8 relativa alla posizione della sonda. mesh_max: 240, 198 Richiesto La coordinata rilevata pi\u00f9 lontana dall'origine. Questo non \u00e8 necessariamente l'ultimo punto sondato, poich\u00e9 il processo di rilevamento avviene a zig-zag. Come per mesh_min , questa coordinata \u00e8 relativa alla posizione della sonda. probe_count: 5, 3 Valore predefinito: 3, 3 Il numero di punti da sondare su ciascun asse, specificato come valori interi X, Y. In questo esempio verranno tastati 5 punti lungo l'asse X, con 3 punti lungo l'asse Y, per un totale di 15 punti tastati. Nota che se desideri una griglia quadrata, ad esempio 3x3, questo potrebbe essere specificato come un singolo valore intero che viene utilizzato per entrambi gli assi, ad esempio probe_count: 3 . Si noti che una mesh richiede un probe_count minimo di 3 lungo ciascun asse. L'illustrazione seguente mostra come le opzioni mesh_min , mesh_max e probe_count vengono utilizzate per generare punti sonda. Le frecce indicano la direzione della procedura di probing, a partire da mesh_min . Per riferimento, quando la sonda \u00e8 a mesh_min , l'ugello sar\u00e0 a (11, 1), e quando la sonda \u00e8 a mesh_max , l'ugello sar\u00e0 a (206, 193).","title":"Piatti rettangolari"},{"location":"Bed_Mesh.html#piatti-rotondi","text":"Questo esempio presuppone una stampante dotata di un raggio del piatto rotondo di 100 mm. Utilizzeremo gli stessi offset della sonda dell'esempio rettangolare, 24 mm su X e 5 mm su Y. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_radius: 75 mesh_origin: 0, 0 round_probe_count: 5 mesh_radius: 75 Obbligatorio Il raggio della mesh sondata in mm, relativo a mesh_origin . Si noti che gli offset della sonda limitano la dimensione del raggio della mesh. In questo esempio, un raggio maggiore di 76 sposterebbe lo strumento oltre il range della stampante. mesh_origin: 0, 0 Valore predefinito: 0, 0 Il punto centrale della mesh. Questa coordinata \u00e8 relativa alla posizione della sonda. Sebbene il valore predefinito sia 0, 0, pu\u00f2 essere utile regolare l'origine nel tentativo di sondare una porzione pi\u00f9 ampia del letto. Vedi l'illustrazione qui sotto. round_probe_count: 5 Valore predefinito: 5 Questo \u00e8 un valore intero che definisce il numero massimo di punti sondati lungo gli assi X e Y. Per \"massimo\" si intende il numero di punti tastati lungo l'origine della mesh. Questo valore deve essere un numero dispari, in quanto \u00e8 necessario che venga sondato il centro della mesh. L'illustrazione seguente mostra come vengono generati i punti sondati. Come puoi vedere, l'impostazione di mesh_origin su (-10, 0) ci consente di specificare un raggio di mesh maggiore di 85.","title":"Piatti rotondi"},{"location":"Bed_Mesh.html#configurazione-avanzata","text":"Di seguito vengono spiegate in dettaglio le opzioni di configurazione pi\u00f9 avanzate. Ciascun esempio si baser\u00e0 sulla configurazione base del piatto rettangolare mostrata sopra. Ciascuna delle opzioni avanzate si applica allo stesso modo ai piatti rotondi.","title":"Configurazione avanzata"},{"location":"Bed_Mesh.html#interpolazione-mesh","text":"Sebbene sia possibile campionare la matrice sondata direttamente utilizzando una semplice interpolazione bilineare per determinare i valori Z tra i punti sondati, \u00e8 spesso utile interpolare punti extra utilizzando algoritmi di interpolazione pi\u00f9 avanzati per aumentare la densit\u00e0 della mesh. Questi algoritmi aggiungono curvatura alla mesh, tentando di simulare le propriet\u00e0 del materiale del piatto. Bed Mesh offre l'interpolazione lagrange e bicubica per ottenere questo risultato. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 mesh_pps: 2, 3 algorithm: bicubic bicubic_tension: 0.2 mesh_pps: 2, 3 Valore predefinito: 2, 2 L'opzione mesh_pps \u00e8 un'abbreviazione per Mesh Points Per Segment. Questa opzione specifica quanti punti interpolare per ciascun segmento lungo gli assi X e Y. Considera un \"segmento\" come lo spazio tra ogni punto sondato. Come probe_count , mesh_pps \u00e8 specificato come una coppia di interi X, Y e pu\u00f2 anche essere specificato un singolo intero che viene applicato a entrambi gli assi. In questo esempio ci sono 4 segmenti lungo l'asse X e 2 segmenti lungo l'asse Y. Questo restituisce 8 punti interpolati lungo X, 6 punti interpolati lungo Y, che si traduce in una mesh 13x8. Si noti che se mesh_pps \u00e8 impostato su 0, l'interpolazione della mesh \u00e8 disabilitata e la matrice sondata verr\u00e0 campionata direttamente. algoritmo: lagrange Valore predefinito: lagrange L'algoritmo utilizzato per interpolare la mesh. Pu\u00f2 essere \"lagrange\" o \"bicubico\". L'interpolazione Lagrange \u00e8 limitata a 6 punti sondati poich\u00e9 tende a verificarsi l'oscillazione con un numero maggiore di campioni. L'interpolazione bicubica richiede un minimo di 4 punti sondati lungo ciascun asse, se vengono specificati meno di 4 punti, viene forzato il campionamento lagrange. Se mesh_pps \u00e8 impostato su 0, questo valore viene ignorato poich\u00e9 non viene eseguita alcuna interpolazione della mesh. bicubic_tension: 0.2 Valore predefinito: 0.2 Se l'opzione algorithm \u00e8 impostata su bicubic \u00e8 possibile specificare il valore della tensione. Maggiore \u00e8 la tensione, maggiore \u00e8 la pendenza interpolata. Prestare attenzione durante la regolazione, poich\u00e9 valori pi\u00f9 elevati creano anche una maggiore sovraelongazione, che risulter\u00e0 in valori interpolati superiori o inferiori rispetto ai punti rilevati. L'illustrazione seguente mostra come vengono utilizzate le opzioni precedenti per generare una mesh interpolata.","title":"Interpolazione mesh"},{"location":"Bed_Mesh.html#divisione-dei-movimenti","text":"Bed Mesh funziona intercettando i comandi di spostamento di gcode e applicando una trasformazione alla loro coordinata Z. I movimenti lunghi devono essere suddivisi in movimenti pi\u00f9 piccoli per seguire correttamente la forma del piatto. Le opzioni seguenti controllano il comportamento di divisione. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 move_check_distance: 5 split_delta_z: .025 move_check_distance: 5 Valore predefinito: 5 La distanza minima per verificare la modifica desiderata in Z prima di eseguire una divisione. In questo esempio, un movimento pi\u00f9 lungo di 5 mm verr\u00e0 eseguito dall'algoritmo. Ogni 5 mm si verificher\u00e0 una ricerca Z della mesh, confrontandola con il valore Z del movimento precedente. Se il delta raggiunge la soglia impostata da split_delta_z , il movimento sar\u00e0 diviso e l'attraversamento continuer\u00e0. Questo processo si ripete fino al raggiungimento della fine del movimento, dove verr\u00e0 applicato un aggiustamento finale. I movimenti pi\u00f9 brevi di move_check_distance hanno la correzione Z corretta applicata direttamente alla mossa senza attraversamento o divisione. split_delta_z: .025 Valore predefinito: .025 Come accennato in precedenza, questa \u00e8 la deviazione minima richiesta per attivare una divisione del movimento. In questo esempio, qualsiasi valore Z con una deviazione +/- 0,025 mm attiver\u00e0 una divisione. Generalmente i valori di default per queste opzioni sono sufficienti, infatti il valore di default di 5mm per il move_check_distance potrebbe essere eccessivo. Tuttavia, un utente esperto potrebbe voler sperimentare queste opzioni nel tentativo di spremere un primo layer ottimale.","title":"Divisione dei movimenti"},{"location":"Bed_Mesh.html#dissolvenza-mesh","text":"Quando la \"dissolvenza\" \u00e8 abilitata, la regolazione Z viene gradualmente eliminata su una distanza definita dalla configurazione. Ci\u00f2 si ottiene applicando piccole regolazioni all'altezza dello strato, aumentando o diminuendo a seconda della forma del letto. Quando la dissolvenza \u00e8 completata, la regolazione Z non viene pi\u00f9 applicata, consentendo alla parte superiore della stampa di essere piatta anzich\u00e9 rispecchiare la forma del letto. La dissolvenza pu\u00f2 anche avere alcuni tratti indesiderati, se dissolve troppo rapidamente pu\u00f2 causare artefatti visibili sulla stampa. Inoltre, se il tuo letto \u00e8 notevolmente deformato, la dissolvenza pu\u00f2 ridurre o allungare l'altezza Z della stampa. In quanto tale, la dissolvenza \u00e8 disabilitata per impostazione predefinita. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 fade_start: 1 fade_end: 10 fade_target: 0 fade_start: 1 Valore predefinito: 1 L'altezza Z in cui iniziare la regolazione graduale. \u00c8 una buona idea avere alcuni layer prima di iniziare il processo di dissolvenza. fade_end: 10 Valore predefinito: 0 L'altezza Z in cui deve essere completata la dissolvenza. Se questo valore \u00e8 inferiore a fade_start , la dissolvenza \u00e8 disabilitata. Questo valore pu\u00f2 essere regolato a seconda di quanto \u00e8 deformata la superficie di stampa. Una superficie notevolmente deformata dovrebbe dissolvere su una distanza maggiore. Una superficie quasi piatta potrebbe essere in grado di ridurre questo valore per eliminarlo gradualmente pi\u00f9 rapidamente. 10mm \u00e8 un valore ragionevole per cominciare se si utilizza il valore predefinito di 1 per fade_start . fade_target: 0 Valore predefinito: il valore Z medio della mesh Il fade_target pu\u00f2 essere pensato come un offset Z aggiuntivo applicato all'intero letto dopo il completamento della dissolvenza. In generale, vorremmo che questo valore fosse 0, tuttavia ci sono circostanze in cui non dovrebbe essere. Ad esempio, supponiamo che la tua posizione di riferimento sul letto sia un valore anomalo, 0,2 mm inferiore all'altezza media rilevata del letto. Se fade_target \u00e8 0, la dissolvenza ridurr\u00e0 la stampa di una media di 0,2 mm sul letto. Impostando fade_target su .2, l'area homed si espander\u00e0 di .2 mm, tuttavia il resto del letto avr\u00e0 una dimensione precisa. Generalmente \u00e8 una buona idea lasciare fade_target fuori dalla configurazione in modo che venga utilizzata l'altezza media della mesh, tuttavia potrebbe essere desiderabile regolare manualmente il target di dissolvenza se si desidera stampare su una parte specifica del letto.","title":"Dissolvenza Mesh"},{"location":"Bed_Mesh.html#lindice-di-riferimento-relativo","text":"La maggior parte delle sonde \u00e8 suscettibile alla deriva, cio\u00e8: imprecisioni nel sondaggio introdotte da calore o interferenza. Ci\u00f2 pu\u00f2 rendere difficile il calcolo dell'offset z della sonda, in particolare a diverse temperature del letto. In quanto tali, alcune stampanti utilizzano un fine corsa per l'homing dell'asse Z e una sonda per calibrare la mesh. Queste stampanti possono trarre vantaggio dalla configurazione del relativo indice di riferimento. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 relative_reference_index: 7 relative_reference_index: 7 Valore predefinito: Nessuno (disabilitato) Quando i punti sondati vengono generati, a ciascuno viene assegnato un indice. Puoi cercare questo indice in klippy.log o usando BED_MESH_OUTPUT (vedi la sezione sui GCodes Bed Mesh di seguito per maggiori informazioni). Se si assegna un indice all'opzione relative_reference_index , il valore rilevato a questa coordinata sostituir\u00e0 lo z_offset del probe. Questo rende effettivamente questa coordinata il riferimento \"zero\" per la mesh. Quando si utilizza l'indice di riferimento relativo, \u00e8 necessario scegliere l'indice pi\u00f9 vicino al punto sul letto in cui \u00e8 stata eseguita la calibrazione del fine corsa Z. Nota che quando cerchi l'indice usando il log o BED_MESH_OUTPUT, dovresti usare le coordinate elencate sotto l'intestazione \"Probe\" per trovare l'indice corretto.","title":"L'Indice di Riferimento Relativo"},{"location":"Bed_Mesh.html#regioni-difettose","text":"\u00c8 possibile che alcune aree di un piatto riportino risultati imprecisi durante il sondaggio a causa di un \"guasto\" in punti specifici. Il miglior esempio di ci\u00f2 sono i piatti con serie di magneti integrati utilizzati per trattenere le lamiere di acciaio rimovibili. Il campo magnetico su e intorno a questi magneti pu\u00f2 causare l'attivazione di una sonda induttiva a una distanza maggiore o minore di quanto sarebbe altrimenti, risultando in una mesh che non rappresenta accuratamente la superficie in queste posizioni. Nota: questo non deve essere confuso con la distorsione della posizione della sonda, che produce risultati imprecisi sull'intero letto. Le opzioni faulty_region possono essere configurate per compensare questo effetto. Se un punto generato si trova all'interno di una regione difettosa, la mesh del letto tenter\u00e0 di sondare fino a 4 punti ai confini di questa regione. Questi valori sondati verranno mediati e inseriti nella mesh come valore Z alla coordinata generata (X, Y). [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 faulty_region_1_min: 130.0, 0.0 faulty_region_1_max: 145.0, 40.0 faulty_region_2_min: 225.0, 0.0 faulty_region_2_max: 250.0, 25.0 faulty_region_3_min: 165.0, 95.0 faulty_region_3_max: 205.0, 110.0 faulty_region_4_min: 30.0, 170.0 faulty_region_4_max: 45.0, 210.0 faulty_region_{1...99}_min faulty_region_{1..99}_max Valore predefinito: Nessuno (disabilitato) Le regioni difettose sono definite in modo simile a quello della mesh stessa, dove minimo e massimo (X , Y) delle coordinate devono essere specificate per ciascuna regione. Una regione difettosa pu\u00f2 estendersi al di fuori di una mesh, tuttavia i punti alternativi generati saranno sempre all'interno del confine della mesh. Non possono sovrapporsi due regioni. L'immagine seguente illustra come vengono generati i punti di sostituzione quando un punto generato si trova all'interno di una regione difettosa. Le regioni mostrate corrispondono a quelle nella configurazione di esempio sopra. I punti di sostituzione e le relative coordinate sono identificati in verde.","title":"Regioni difettose"},{"location":"Bed_Mesh.html#gcodes-della-mesh-del-piatto","text":"","title":"GCodes della mesh del piatto"},{"location":"Bed_Mesh.html#calibrazione","text":"BED_MESH_CALIBRATE PROFILE=<nome> METHOD=[manuale | automatico] [<parametro_sonda>=<valore>] [<mesh_parameter>=<valore>] Profilo predefinito: default Metodo predefinito: automatico se viene rilevata una sonda, altrimenti manuale Avvia la procedura di sondaggio per la calibrazione della mesh del piatto. La mesh verr\u00e0 salvata in un profilo specificato dal parametro PROFILE , o default se non specificato. Se viene selezionato METHOD=manual , si verificher\u00e0 il rilevamento manuale. Quando si passa dal probing automatico a quello manuale, i punti mesh generati verranno regolati automaticamente. \u00c8 possibile specificare parametri mesh per modificare l'area sondata. Sono disponibili i seguenti parametri: Piatti rettangolari (cartesiani): MESH_MIN MESH_MAX PROBE_COUNT Piatti rotondi (delta): MESH_RADIUS MESH_ORIGIN ROUND_PROBE_COUNT Tutti i piatti: RELATIVE_REFERNCE_INDEX ALGORITHM Vedere la documentazione di configurazione sopra per i dettagli su come ogni parametro si applica alla mesh.","title":"Calibrazione"},{"location":"Bed_Mesh.html#profili","text":"BED_MESH_PROFILE SAVE=<name> LOAD=<name> REMOVE=<name> Dopo aver eseguito un BED_MESH_CALIBRATE, \u00e8 possibile salvare lo stato della mesh corrente in un profilo denominato. Ci\u00f2 consente di caricare una mesh senza risondare il piatto. Dopo che un profilo \u00e8 stato salvato usando BED_MESH_PROFILE SAVE=<nome> \u00e8 possibile eseguire il gcode SAVE_CONFIG per scrivere il profilo su printer.cfg. I profili possono essere caricati eseguendo BED_MESH_PROFILE LOAD=<name> . Va notato che ogni volta che si verifica un BED_MESH_CALIBRATE, lo stato corrente viene automaticamente salvato nel profilo predefinito . Se questo profilo esiste, viene caricato automaticamente all'avvio di Klipper. Se questo comportamento non \u00e8 desiderabile, il profilo predefinito pu\u00f2 essere rimosso come segue: BED_MESH_PROFILE REMOVE=default Qualsiasi altro profilo salvato pu\u00f2 essere rimosso allo stesso modo, sostituendo default con il nome del profilo che desideri rimuovere.","title":"Profili"},{"location":"Bed_Mesh.html#output","text":"BED_MESH_OUTPUT PGP=[0 | 1] Invia lo stato della mesh corrente al terminale. Si noti che viene emessa la mesh stessa Il parametro PGP \u00e8 un'abbreviazione per \"Print Generated Points\". Se \u00e8 impostato PGP=1 , i punti sondati generati verranno inviati al terminale: // bed_mesh: generated points // Index | Tool Adjusted | Probe // 0 | (11.0, 1.0) | (35.0, 6.0) // 1 | (62.2, 1.0) | (86.2, 6.0) // 2 | (113.5, 1.0) | (137.5, 6.0) // 3 | (164.8, 1.0) | (188.8, 6.0) // 4 | (216.0, 1.0) | (240.0, 6.0) // 5 | (216.0, 97.0) | (240.0, 102.0) // 6 | (164.8, 97.0) | (188.8, 102.0) // 7 | (113.5, 97.0) | (137.5, 102.0) // 8 | (62.2, 97.0) | (86.2, 102.0) // 9 | (11.0, 97.0) | (35.0, 102.0) // 10 | (11.0, 193.0) | (35.0, 198.0) // 11 | (62.2, 193.0) | (86.2, 198.0) // 12 | (113.5, 193.0) | (137.5, 198.0) // 13 | (164.8, 193.0) | (188.8, 198.0) // 14 | (216.0, 193.0) | (240.0, 198.0) I punti \"Tool Adjusted\" si riferiscono alla posizione dell'ugello per ciascun punto e i punti \"Probe\" si riferiscono alla posizione della sonda. Si noti che quando il probing \u00e8 manuale i punti \"sonda\" si riferiscono sia alla posizione dell'utensile che dell'ugello.","title":"Output"},{"location":"Bed_Mesh.html#cancella-stato-mesh","text":"BED_MESH_CLEAR Questo gcode pu\u00f2 essere utilizzato per cancellare lo stato della mesh interna.","title":"Cancella stato mesh"},{"location":"Bed_Mesh.html#applicare-gli-offset-xy","text":"BED_MESH_OFFSET [X=<value>] [Y=<value>] Ci\u00f2 \u00e8 utile per le stampanti con pi\u00f9 estrusori indipendenti, poich\u00e9 \u00e8 necessario un offset per produrre la corretta regolazione Z dopo un cambio utensile. Gli offset devono essere specificati rispetto all'estrusore primario. Vale a dire, \u00e8 necessario specificare un offset X positivo se l'estrusore secondario \u00e8 montato a destra dell'estrusore primario e un offset Y positivo se l'estrusore secondario \u00e8 montato \"dietro\" l'estrusore primario.","title":"Applicare gli offset X/Y"},{"location":"Benchmarks.html","text":"Benchmark \u00b6 Questo documento descrive i benchmark di Klipper. Benchmark del microcontrollore \u00b6 Questa sezione descrive il meccanismo utilizzato per generare i benchmark della velocit\u00e0 di passaggio del microcontrollore Klipper. L'obiettivo principale dei benchmark \u00e8 fornire un meccanismo coerente per misurare l'impatto delle modifiche alla codifica all'interno del software. Un obiettivo secondario \u00e8 fornire metriche di alto livello per confrontare le prestazioni tra i chip e tra le piattaforme software. Il benchmark dello step rate \u00e8 progettato per trovare la velocit\u00e0 di stepping massima che l'hardware e il software possono raggiungere. Questa velocit\u00e0 di stepping del benchmark non \u00e8 raggiungibile nell'uso quotidiano poich\u00e9 Klipper ha bisogno di eseguire altre attivit\u00e0 (ad esempio, comunicazione mcu/host, lettura della temperatura, controllo endstop) in qualsiasi utilizzo nel mondo reale. In generale, i pin per i test di benchmark sono scelti per far lampeggiare LED o altri pin innocui. Verifica sempre che sia sicuro guidare i pin configurati prima di eseguire un benchmark. Non \u00e8 consigliabile pilotare uno stepper reale durante un benchmark. Test di riferimento della frequenza di passi \u00b6 Il test viene eseguito utilizzando lo strumento console.py (descritto in ). Il microcontrollore \u00e8 configurato per la particolare piattaforma hardware (vedi sotto) e quindi quanto segue viene tagliato e incollato nella finestra del terminale console.py: SET start_clock {clock+freq} SET ticks 1000 reset_step_clock oid=0 clock={start_clock} set_next_step_dir oid=0 dir=0 queue_step oid=0 interval={ticks} count=60000 add=0 set_next_step_dir oid=0 dir=1 queue_step oid=0 interval=3000 count=1 add=0 reset_step_clock oid=1 clock={start_clock} set_next_step_dir oid=1 dir=0 queue_step oid=1 interval={ticks} count=60000 add=0 set_next_step_dir oid=1 dir=1 queue_step oid=1 interval=3000 count=1 add=0 reset_step_clock oid=2 clock={start_clock} set_next_step_dir oid=2 dir=0 queue_step oid=2 interval={ticks} count=60000 add=0 set_next_step_dir oid=2 dir=1 queue_step oid=2 interval=3000 count=1 add=0 Quanto sopra testa tre stepper che fanno un passo simultaneo. Se l'esecuzione di quanto sopra comporta un errore \"Rescheduled timer in the past\" o \"Stepper too far in past\", indica che il parametro ticks \u00e8 troppo basso (risulta in una velocit\u00e0 di incremento troppo veloce). L'obiettivo \u00e8 trovare l'impostazione pi\u00f9 bassa del parametro tick che si traduca in modo affidabile in un completamento positivo del test. Dovrebbe essere possibile dividere in due il parametro tick fino a trovare un valore stabile. In caso di errore, \u00e8 possibile copiare e incollare quanto segue per cancellare l'errore in preparazione per il test successivo: clear_shutdown Per ottenere i benchmark del singolo stepper, viene utilizzata la stessa sequenza di configurazione, ma solo il primo blocco del test precedente viene tagliato e incollato nella finestra di console.py. Per produrre i benchmark trovati nel documento Features , il numero totale di passi al secondo viene calcolato moltiplicando il numero di stepper attivi per la frequenza nominale mcu e dividendo per il parametro tick finale. I risultati vengono arrotondati alla K pi\u00f9 vicina. Ad esempio, con tre stepper attivi: ECHO Test result is: {\"%.0fK\" % (3. * freq / ticks / 1000.)} I benchmark vengono eseguiti con parametri adatti ai driver TMC. Per i microcontrollori che supportano STEPPER_BOTH_EDGE=1 (come riportato nella riga MCU config al primo avvio di console.py) usa step_pulse_duration=0 e invert_step=-1 per abilitare lo stepping ottimizzato su entrambi i bordi del impulso di passo. Per altri microcontrollori usa un step_pulse_duration corrispondente a 100ns. Benchmark rateo passi AVR \u00b6 La seguente sequenza di configurazione viene utilizzata sui chip AVR: allocate_oids count=3 config_stepper oid=0 step_pin=PA5 dir_pin=PA4 invert_step=0 step_pulse_ticks=32 config_stepper oid=1 step_pin=PA3 dir_pin=PA2 invert_step=0 step_pulse_ticks=32 config_stepper oid=2 step_pin=PC7 dir_pin=PC6 invert_step=0 step_pulse_ticks=32 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc avr-gcc (GCC) 5.4.0 . Entrambi i test a 16Mhz e 20Mhz sono stati eseguiti utilizzando simulavr configurato per un atmega644p (i test precedenti hanno confermato i risultati del simulavr match test su entrambi un 16Mhz at90usb e un 16Mhz atmega2560). avr ticks 1 stepper 102 3 stepper 486 Benchmark rateo passi Arduino Due \u00b6 Sul Due viene utilizzata la seguente sequenza di configurazione: allocate_oids count=3 config_stepper oid=0 step_pin=PB27 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB26 dir_pin=PC30 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA21 dir_pin=PC30 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . sam3x8e ticks 1 stepper 66 3 stepper 257 Benchmark step rate Duet Maestro \u00b6 La seguente sequenza di configurazione viene utilizzata su Duet Maestro: allocate_oids count=3 config_stepper oid=0 step_pin=PC26 dir_pin=PC18 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PC26 dir_pin=PA8 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PC26 dir_pin=PB4 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . sam4s8c ticks 1 stepper 71 3 stepper 260 Benchmark step rate Duet Wifi \u00b6 La seguente sequenza di configurazione viene utilizzata su Duet Wifi: allocate_oids count=3 config_stepper oid=0 step_pin=PD6 dir_pin=PD11 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PD7 dir_pin=PD12 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PD8 dir_pin=PD13 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con gcc versione gcc versione 10.3.1 20210621 (rilascio) (GNU Arm Embedded Toolchain 10.3-2021.07) . sam4e8e ticks 1 stepper 48 3 stepper 215 Benchmark step rate Beaglebone PRU \u00b6 Sulla PRU viene utilizzata la seguente sequenza di configurazione: allocate_oids count=3 config_stepper oid=0 step_pin=gpio0_23 dir_pin=gpio1_12 invert_step=0 step_pulse_ticks=20 config_stepper oid=1 step_pin=gpio1_15 dir_pin=gpio0_26 invert_step=0 step_pulse_ticks=20 config_stepper oid=2 step_pin=gpio0_22 dir_pin=gpio2_1 invert_step=0 step_pulse_ticks=20 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc pru-gcc (GCC) 8.0.0 20170530 (sperimentale) . pru ticks 1 stepper 231 3 stepper 847 Benchmark step rate STM32F042 \u00b6 La seguente sequenza di configurazione viene utilizzata sull'STM32F042: allocate_oids count=3 config_stepper oid=0 step_pin=PA1 dir_pin=PA2 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PA3 dir_pin=PA2 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PB8 dir_pin=PA2 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . stm32f042 ticks 1 stepper 59 3 stepper 249 Benchmark step rate STM32F103 \u00b6 Sull'STM32F103 viene utilizzata la seguente sequenza di configurazione: allocate_oids count=3 config_stepper oid=0 step_pin=PC13 dir_pin=PB5 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB3 dir_pin=PB6 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA4 dir_pin=PB7 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . stm32f103 ticks 1 stepper 61 3 stepper 264 Benchmark step rate STM32F4 \u00b6 Sull'STM32F4 viene utilizzata la seguente sequenza di configurazione: allocate_oids count=3 config_stepper oid=0 step_pin=PA5 dir_pin=PB5 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB2 dir_pin=PB6 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PB3 dir_pin=PB7 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . I risultati dell'STM32F407 sono stati ottenuti eseguendo un binario STM32F407 su un STM32F446 (e quindi utilizzando un clock a 168 Mhz). stm32f446 ticks 1 stepper 46 3 stepper 205 stm32f407 ticks 1 stepper 46 3 stepper 205 STM32H7 benchmark della velocit\u00e0 di step \u00b6 La seguente sequenza di configurazione viene utilizzata su un STM32H743VIT6: allocate_oids count=3 config_stepper oid=0 step_pin=PD4 dir_pin=PD3 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PA15 dir_pin=PA8 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PE2 dir_pin=PE3 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 00191b5c con versione gcc arm-none-eabi-gcc (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revisione 273027] . stm32h7 ticks 1 stepper 44 3 stepper 198 Benchmark step rate STM32G0B1 \u00b6 Sull'STM32G0B1 viene utilizzata la seguente sequenza di configurazione: allocate_oids count=3 config_stepper oid=0 step_pin=PB13 dir_pin=PB12 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB10 dir_pin=PB2 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PB0 dir_pin=PC5 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 247cd753 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . stm32g0b1 ticks 1 stepper 58 3 stepper 243 Benchmark step rate LPC176x \u00b6 La seguente sequenza di configurazione viene utilizzata sull'LPC176x: allocate_oids count=3 config_stepper oid=0 step_pin=P1.20 dir_pin=P1.18 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=P1.21 dir_pin=P1.18 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=P1.23 dir_pin=P1.18 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . I risultati a 120 Mhz LPC1769 sono stati ottenuti overclockando un LPC1768 a 120 Mhz. lpc1768 ticks 1 stepper 52 3 stepper 222 lpc1769 ticks 1 stepper 51 3 stepper 222 Benchmark step rate SAMD21 \u00b6 La seguente sequenza di configurazione viene utilizzata sul SAMD21: allocate_oids count=3 config_stepper oid=0 step_pin=PA27 dir_pin=PA20 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB3 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA17 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 su un microcontrollore SAMD21G18. samd21 ticks 1 stepper 70 3 stepper 306 Benchmark step rate SAMD51 \u00b6 La seguente sequenza di configurazione viene utilizzata sul SAMD51: allocate_oids count=3 config_stepper oid=0 step_pin=PA22 dir_pin=PA20 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PA22 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA22 dir_pin=PA19 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 su un microcontrollore SAMD51J19A. samd51 ticks 1 stepper 39 3 stepper 191 1 stepper (200Mhz) 39 3 stepper (200Mhz) 181 Benchmark step rate RP2040 \u00b6 Sull'RP2040 viene utilizzata la seguente sequenza di configurazione: allocate_oids count=3 config_stepper oid=0 step_pin=gpio25 dir_pin=gpio3 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=gpio26 dir_pin=gpio4 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=gpio27 dir_pin=gpio5 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 su una scheda Raspberry Pi Pico. rp2040 ticks 1 stepper 5 3 stepper 22 Benchmark step rate MCU Linux \u00b6 La seguente sequenza di configurazione viene utilizzata su un Raspberry Pi: allocate_oids count=3 config_stepper oid=0 step_pin=gpio2 dir_pin=gpio3 invert_step=0 step_pulse_ticks=5 config_stepper oid=1 step_pin=gpio4 dir_pin=gpio5 invert_step=0 step_pulse_ticks=5 config_stepper oid=2 step_pin=gpio6 dir_pin=gpio17 invert_step=0 step_pulse_ticks=5 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc gcc (Raspbian 8.3.0-6+rpi1) 8.3.0 su un Raspberry Pi 3 (revisione a02082). \u00c8 stato difficile ottenere risultati stabili in questo benchmark. Linux (RPi3) ticks 1 stepper 160 3 stepper 380 Benchmark dispacciamento comandi \u00b6 Il benchmark di invio dei comandi verifica quanti comandi \"fittizi\" possono elaborare il microcontrollore. \u00c8 principalmente un test del meccanismo di comunicazione hardware. Il test viene eseguito utilizzando lo strumento console.py (descritto in ). Quanto segue \u00e8 taglia e incolla nella finestra del terminale console.py: DELAY {clock + 2*freq} get_uptime FLOOD 100000 0.0 debug_nop get_uptime Al termine del test, determinare la differenza tra gli orologi riportati nei due messaggi di risposta \"uptime\". Il numero totale di comandi al secondo \u00e8 quindi 100000 * mcu_frequency / clock_diff . Nota che questo test potrebbe saturare la capacit\u00e0 USB/CPU di un Raspberry Pi. Se \u00e8 in esecuzione su un computer host Raspberry Pi, Beaglebone o simile, aumenta il ritardo (ad esempio, DELAY {clock + 20*freq} get_uptime ). Ove applicabile, i benchmark seguenti riguardano console.py in esecuzione su una macchina di classe desktop con il dispositivo connesso tramite un hub ad alta velocit\u00e0. MCU Rateo Build Build compiler stm32f042 (CAN) 18K c105adc8 arm-none-eabi-gcc (GNU Tools 7-2018-q3-update) 7.3.1 atmega2560 (serial) 23K b161a69e avr-gcc (GCC) 4.8.1 sam3x8e (serial) 23K b161a69e arm-none-eabi-gcc (Fedora 7.1.0-5.fc27) 7.1.0 at90usb1286 (USB) 75K 01d2183f avr-gcc (GCC) 5.4.0 samd21 (USB) 223K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 pru (shared memory) 260K c5968a08 pru-gcc (GCC) 8.0.0 20170530 (experimental) stm32f103 (USB) 355K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 sam3x8e (USB) 418K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 lpc1768 (USB) 534K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 lpc1769 (USB) 628K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 sam4s8c (USB) 650K 8d4a5c16 arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 samd51 (USB) 864K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 stm32f446 (USB) 870K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 rp2040 (USB) 873K c5667193 arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 Benchmark Host \u00b6 \u00c8 possibile eseguire test di temporizzazione sul software host utilizzando il meccanismo di elaborazione \"batch mode\" (descritto in ). Questo viene in genere fatto scegliendo un file G-Code grande e complesso e calcolando il tempo impiegato dal software host per elaborarlo. Per esempio: time ~/klippy-env/bin/python ./klippy/klippy.py config/example-cartesian.cfg -i something_complex.gcode -o /dev/null -d out/klipper.dict","title":"Benchmark"},{"location":"Benchmarks.html#benchmark","text":"Questo documento descrive i benchmark di Klipper.","title":"Benchmark"},{"location":"Benchmarks.html#benchmark-del-microcontrollore","text":"Questa sezione descrive il meccanismo utilizzato per generare i benchmark della velocit\u00e0 di passaggio del microcontrollore Klipper. L'obiettivo principale dei benchmark \u00e8 fornire un meccanismo coerente per misurare l'impatto delle modifiche alla codifica all'interno del software. Un obiettivo secondario \u00e8 fornire metriche di alto livello per confrontare le prestazioni tra i chip e tra le piattaforme software. Il benchmark dello step rate \u00e8 progettato per trovare la velocit\u00e0 di stepping massima che l'hardware e il software possono raggiungere. Questa velocit\u00e0 di stepping del benchmark non \u00e8 raggiungibile nell'uso quotidiano poich\u00e9 Klipper ha bisogno di eseguire altre attivit\u00e0 (ad esempio, comunicazione mcu/host, lettura della temperatura, controllo endstop) in qualsiasi utilizzo nel mondo reale. In generale, i pin per i test di benchmark sono scelti per far lampeggiare LED o altri pin innocui. Verifica sempre che sia sicuro guidare i pin configurati prima di eseguire un benchmark. Non \u00e8 consigliabile pilotare uno stepper reale durante un benchmark.","title":"Benchmark del microcontrollore"},{"location":"Benchmarks.html#test-di-riferimento-della-frequenza-di-passi","text":"Il test viene eseguito utilizzando lo strumento console.py (descritto in ). Il microcontrollore \u00e8 configurato per la particolare piattaforma hardware (vedi sotto) e quindi quanto segue viene tagliato e incollato nella finestra del terminale console.py: SET start_clock {clock+freq} SET ticks 1000 reset_step_clock oid=0 clock={start_clock} set_next_step_dir oid=0 dir=0 queue_step oid=0 interval={ticks} count=60000 add=0 set_next_step_dir oid=0 dir=1 queue_step oid=0 interval=3000 count=1 add=0 reset_step_clock oid=1 clock={start_clock} set_next_step_dir oid=1 dir=0 queue_step oid=1 interval={ticks} count=60000 add=0 set_next_step_dir oid=1 dir=1 queue_step oid=1 interval=3000 count=1 add=0 reset_step_clock oid=2 clock={start_clock} set_next_step_dir oid=2 dir=0 queue_step oid=2 interval={ticks} count=60000 add=0 set_next_step_dir oid=2 dir=1 queue_step oid=2 interval=3000 count=1 add=0 Quanto sopra testa tre stepper che fanno un passo simultaneo. Se l'esecuzione di quanto sopra comporta un errore \"Rescheduled timer in the past\" o \"Stepper too far in past\", indica che il parametro ticks \u00e8 troppo basso (risulta in una velocit\u00e0 di incremento troppo veloce). L'obiettivo \u00e8 trovare l'impostazione pi\u00f9 bassa del parametro tick che si traduca in modo affidabile in un completamento positivo del test. Dovrebbe essere possibile dividere in due il parametro tick fino a trovare un valore stabile. In caso di errore, \u00e8 possibile copiare e incollare quanto segue per cancellare l'errore in preparazione per il test successivo: clear_shutdown Per ottenere i benchmark del singolo stepper, viene utilizzata la stessa sequenza di configurazione, ma solo il primo blocco del test precedente viene tagliato e incollato nella finestra di console.py. Per produrre i benchmark trovati nel documento Features , il numero totale di passi al secondo viene calcolato moltiplicando il numero di stepper attivi per la frequenza nominale mcu e dividendo per il parametro tick finale. I risultati vengono arrotondati alla K pi\u00f9 vicina. Ad esempio, con tre stepper attivi: ECHO Test result is: {\"%.0fK\" % (3. * freq / ticks / 1000.)} I benchmark vengono eseguiti con parametri adatti ai driver TMC. Per i microcontrollori che supportano STEPPER_BOTH_EDGE=1 (come riportato nella riga MCU config al primo avvio di console.py) usa step_pulse_duration=0 e invert_step=-1 per abilitare lo stepping ottimizzato su entrambi i bordi del impulso di passo. Per altri microcontrollori usa un step_pulse_duration corrispondente a 100ns.","title":"Test di riferimento della frequenza di passi"},{"location":"Benchmarks.html#benchmark-rateo-passi-avr","text":"La seguente sequenza di configurazione viene utilizzata sui chip AVR: allocate_oids count=3 config_stepper oid=0 step_pin=PA5 dir_pin=PA4 invert_step=0 step_pulse_ticks=32 config_stepper oid=1 step_pin=PA3 dir_pin=PA2 invert_step=0 step_pulse_ticks=32 config_stepper oid=2 step_pin=PC7 dir_pin=PC6 invert_step=0 step_pulse_ticks=32 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc avr-gcc (GCC) 5.4.0 . Entrambi i test a 16Mhz e 20Mhz sono stati eseguiti utilizzando simulavr configurato per un atmega644p (i test precedenti hanno confermato i risultati del simulavr match test su entrambi un 16Mhz at90usb e un 16Mhz atmega2560). avr ticks 1 stepper 102 3 stepper 486","title":"Benchmark rateo passi AVR"},{"location":"Benchmarks.html#benchmark-rateo-passi-arduino-due","text":"Sul Due viene utilizzata la seguente sequenza di configurazione: allocate_oids count=3 config_stepper oid=0 step_pin=PB27 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB26 dir_pin=PC30 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA21 dir_pin=PC30 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . sam3x8e ticks 1 stepper 66 3 stepper 257","title":"Benchmark rateo passi Arduino Due"},{"location":"Benchmarks.html#benchmark-step-rate-duet-maestro","text":"La seguente sequenza di configurazione viene utilizzata su Duet Maestro: allocate_oids count=3 config_stepper oid=0 step_pin=PC26 dir_pin=PC18 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PC26 dir_pin=PA8 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PC26 dir_pin=PB4 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . sam4s8c ticks 1 stepper 71 3 stepper 260","title":"Benchmark step rate Duet Maestro"},{"location":"Benchmarks.html#benchmark-step-rate-duet-wifi","text":"La seguente sequenza di configurazione viene utilizzata su Duet Wifi: allocate_oids count=3 config_stepper oid=0 step_pin=PD6 dir_pin=PD11 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PD7 dir_pin=PD12 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PD8 dir_pin=PD13 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con gcc versione gcc versione 10.3.1 20210621 (rilascio) (GNU Arm Embedded Toolchain 10.3-2021.07) . sam4e8e ticks 1 stepper 48 3 stepper 215","title":"Benchmark step rate Duet Wifi"},{"location":"Benchmarks.html#benchmark-step-rate-beaglebone-pru","text":"Sulla PRU viene utilizzata la seguente sequenza di configurazione: allocate_oids count=3 config_stepper oid=0 step_pin=gpio0_23 dir_pin=gpio1_12 invert_step=0 step_pulse_ticks=20 config_stepper oid=1 step_pin=gpio1_15 dir_pin=gpio0_26 invert_step=0 step_pulse_ticks=20 config_stepper oid=2 step_pin=gpio0_22 dir_pin=gpio2_1 invert_step=0 step_pulse_ticks=20 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc pru-gcc (GCC) 8.0.0 20170530 (sperimentale) . pru ticks 1 stepper 231 3 stepper 847","title":"Benchmark step rate Beaglebone PRU"},{"location":"Benchmarks.html#benchmark-step-rate-stm32f042","text":"La seguente sequenza di configurazione viene utilizzata sull'STM32F042: allocate_oids count=3 config_stepper oid=0 step_pin=PA1 dir_pin=PA2 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PA3 dir_pin=PA2 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PB8 dir_pin=PA2 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . stm32f042 ticks 1 stepper 59 3 stepper 249","title":"Benchmark step rate STM32F042"},{"location":"Benchmarks.html#benchmark-step-rate-stm32f103","text":"Sull'STM32F103 viene utilizzata la seguente sequenza di configurazione: allocate_oids count=3 config_stepper oid=0 step_pin=PC13 dir_pin=PB5 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB3 dir_pin=PB6 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA4 dir_pin=PB7 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . stm32f103 ticks 1 stepper 61 3 stepper 264","title":"Benchmark step rate STM32F103"},{"location":"Benchmarks.html#benchmark-step-rate-stm32f4","text":"Sull'STM32F4 viene utilizzata la seguente sequenza di configurazione: allocate_oids count=3 config_stepper oid=0 step_pin=PA5 dir_pin=PB5 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB2 dir_pin=PB6 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PB3 dir_pin=PB7 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . I risultati dell'STM32F407 sono stati ottenuti eseguendo un binario STM32F407 su un STM32F446 (e quindi utilizzando un clock a 168 Mhz). stm32f446 ticks 1 stepper 46 3 stepper 205 stm32f407 ticks 1 stepper 46 3 stepper 205","title":"Benchmark step rate STM32F4"},{"location":"Benchmarks.html#stm32h7-benchmark-della-velocita-di-step","text":"La seguente sequenza di configurazione viene utilizzata su un STM32H743VIT6: allocate_oids count=3 config_stepper oid=0 step_pin=PD4 dir_pin=PD3 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PA15 dir_pin=PA8 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PE2 dir_pin=PE3 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 00191b5c con versione gcc arm-none-eabi-gcc (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revisione 273027] . stm32h7 ticks 1 stepper 44 3 stepper 198","title":"STM32H7 benchmark della velocit\u00e0 di step"},{"location":"Benchmarks.html#benchmark-step-rate-stm32g0b1","text":"Sull'STM32G0B1 viene utilizzata la seguente sequenza di configurazione: allocate_oids count=3 config_stepper oid=0 step_pin=PB13 dir_pin=PB12 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB10 dir_pin=PB2 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PB0 dir_pin=PC5 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 247cd753 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . stm32g0b1 ticks 1 stepper 58 3 stepper 243","title":"Benchmark step rate STM32G0B1"},{"location":"Benchmarks.html#benchmark-step-rate-lpc176x","text":"La seguente sequenza di configurazione viene utilizzata sull'LPC176x: allocate_oids count=3 config_stepper oid=0 step_pin=P1.20 dir_pin=P1.18 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=P1.21 dir_pin=P1.18 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=P1.23 dir_pin=P1.18 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 . I risultati a 120 Mhz LPC1769 sono stati ottenuti overclockando un LPC1768 a 120 Mhz. lpc1768 ticks 1 stepper 52 3 stepper 222 lpc1769 ticks 1 stepper 51 3 stepper 222","title":"Benchmark step rate LPC176x"},{"location":"Benchmarks.html#benchmark-step-rate-samd21","text":"La seguente sequenza di configurazione viene utilizzata sul SAMD21: allocate_oids count=3 config_stepper oid=0 step_pin=PA27 dir_pin=PA20 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PB3 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA17 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 su un microcontrollore SAMD21G18. samd21 ticks 1 stepper 70 3 stepper 306","title":"Benchmark step rate SAMD21"},{"location":"Benchmarks.html#benchmark-step-rate-samd51","text":"La seguente sequenza di configurazione viene utilizzata sul SAMD51: allocate_oids count=3 config_stepper oid=0 step_pin=PA22 dir_pin=PA20 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=PA22 dir_pin=PA21 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=PA22 dir_pin=PA19 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 su un microcontrollore SAMD51J19A. samd51 ticks 1 stepper 39 3 stepper 191 1 stepper (200Mhz) 39 3 stepper (200Mhz) 181","title":"Benchmark step rate SAMD51"},{"location":"Benchmarks.html#benchmark-step-rate-rp2040","text":"Sull'RP2040 viene utilizzata la seguente sequenza di configurazione: allocate_oids count=3 config_stepper oid=0 step_pin=gpio25 dir_pin=gpio3 invert_step=-1 step_pulse_ticks=0 config_stepper oid=1 step_pin=gpio26 dir_pin=gpio4 invert_step=-1 step_pulse_ticks=0 config_stepper oid=2 step_pin=gpio27 dir_pin=gpio5 invert_step=-1 step_pulse_ticks=0 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0 su una scheda Raspberry Pi Pico. rp2040 ticks 1 stepper 5 3 stepper 22","title":"Benchmark step rate RP2040"},{"location":"Benchmarks.html#benchmark-step-rate-mcu-linux","text":"La seguente sequenza di configurazione viene utilizzata su un Raspberry Pi: allocate_oids count=3 config_stepper oid=0 step_pin=gpio2 dir_pin=gpio3 invert_step=0 step_pulse_ticks=5 config_stepper oid=1 step_pin=gpio4 dir_pin=gpio5 invert_step=0 step_pulse_ticks=5 config_stepper oid=2 step_pin=gpio6 dir_pin=gpio17 invert_step=0 step_pulse_ticks=5 finalize_config crc=0 Il test \u00e8 stato eseguito l'ultima volta su commit 59314d99 con versione gcc gcc (Raspbian 8.3.0-6+rpi1) 8.3.0 su un Raspberry Pi 3 (revisione a02082). \u00c8 stato difficile ottenere risultati stabili in questo benchmark. Linux (RPi3) ticks 1 stepper 160 3 stepper 380","title":"Benchmark step rate MCU Linux"},{"location":"Benchmarks.html#benchmark-dispacciamento-comandi","text":"Il benchmark di invio dei comandi verifica quanti comandi \"fittizi\" possono elaborare il microcontrollore. \u00c8 principalmente un test del meccanismo di comunicazione hardware. Il test viene eseguito utilizzando lo strumento console.py (descritto in ). Quanto segue \u00e8 taglia e incolla nella finestra del terminale console.py: DELAY {clock + 2*freq} get_uptime FLOOD 100000 0.0 debug_nop get_uptime Al termine del test, determinare la differenza tra gli orologi riportati nei due messaggi di risposta \"uptime\". Il numero totale di comandi al secondo \u00e8 quindi 100000 * mcu_frequency / clock_diff . Nota che questo test potrebbe saturare la capacit\u00e0 USB/CPU di un Raspberry Pi. Se \u00e8 in esecuzione su un computer host Raspberry Pi, Beaglebone o simile, aumenta il ritardo (ad esempio, DELAY {clock + 20*freq} get_uptime ). Ove applicabile, i benchmark seguenti riguardano console.py in esecuzione su una macchina di classe desktop con il dispositivo connesso tramite un hub ad alta velocit\u00e0. MCU Rateo Build Build compiler stm32f042 (CAN) 18K c105adc8 arm-none-eabi-gcc (GNU Tools 7-2018-q3-update) 7.3.1 atmega2560 (serial) 23K b161a69e avr-gcc (GCC) 4.8.1 sam3x8e (serial) 23K b161a69e arm-none-eabi-gcc (Fedora 7.1.0-5.fc27) 7.1.0 at90usb1286 (USB) 75K 01d2183f avr-gcc (GCC) 5.4.0 samd21 (USB) 223K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 pru (shared memory) 260K c5968a08 pru-gcc (GCC) 8.0.0 20170530 (experimental) stm32f103 (USB) 355K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 sam3x8e (USB) 418K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 lpc1768 (USB) 534K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 lpc1769 (USB) 628K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 sam4s8c (USB) 650K 8d4a5c16 arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 samd51 (USB) 864K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 stm32f446 (USB) 870K 01d2183f arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0 rp2040 (USB) 873K c5667193 arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0","title":"Benchmark dispacciamento comandi"},{"location":"Benchmarks.html#benchmark-host","text":"\u00c8 possibile eseguire test di temporizzazione sul software host utilizzando il meccanismo di elaborazione \"batch mode\" (descritto in ). Questo viene in genere fatto scegliendo un file G-Code grande e complesso e calcolando il tempo impiegato dal software host per elaborarlo. Per esempio: time ~/klippy-env/bin/python ./klippy/klippy.py config/example-cartesian.cfg -i something_complex.gcode -o /dev/null -d out/klipper.dict","title":"Benchmark Host"},{"location":"Bootloaders.html","text":"Bootloader \u00b6 Questo documento fornisce informazioni sui bootloader comuni scoperti sui microcontrollori che sono supportati da Klipper. Il bootloader \u00e8 un software di terze parti che viene eseguito sul microcontrollore quando viene acceso per la prima volta. Viene generalmente utilizzato per eseguire il flashing di una nuova applicazione (ad es. Klipper) sul microcontrollore senza richiedere hardware specializzato. Sfortunatamente, non esiste uno standard a livello di settore per il flashing di un microcontrollore, n\u00e9 esiste un bootloader standard che funzioni su tutti i microcontrollori. Peggio ancora, \u00e8 comune che ogni bootloader richieda una serie di passaggi diversa per eseguire il flashing di un'applicazione. Se si pu\u00f2 eseguire il flashing di un bootloader su un microcontrollore, generalmente si pu\u00f2 anche utilizzare quel meccanismo per eseguire il flashing di un'applicazione, ma \u00e8 necessario prestare attenzione quando si esegue questa operazione poich\u00e9 si potrebbe rimuovere inavvertitamente il bootloader. Al contrario, un bootloader generalmente consentir\u00e0 solo a un utente di eseguire il flashing di un'applicazione. Si consiglia pertanto di utilizzare un bootloader per eseguire il flashing di un'applicazione, ove possibile. Questo documento tenta di descrivere i bootloader comuni, i passaggi necessari per eseguire il flashing di un bootloader e i passaggi necessari per eseguire il flashing di un'applicazione. Questo documento non \u00e8 un riferimento autorevole; \u00e8 inteso come una raccolta di informazioni utili che gli sviluppatori di Klipper hanno accumulato. Microcontrollori AVR \u00b6 In generale, il progetto Arduino \u00e8 un buon riferimento per bootloader e procedure di flashing sui microcontrollori Atmel Atmega a 8 bit. In particolare, il file \"boards.txt\": https://github.com/arduino/Arduino/blob/1.8.5/hardware/arduino/avr/boards.txt \u00e8 un utile riferimento. Per eseguire il flashing di un bootloader, i chip AVR richiedono uno strumento di flashing hardware esterno (che comunica con il chip tramite SPI). Questo strumento pu\u00f2 essere acquistato (ad esempio, eseguire una ricerca sul Web per \"avr isp\", \"arduino isp\" o \"usb tiny isp\"). \u00c8 anche possibile utilizzare un altro Arduino o Raspberry Pi per eseguire il flashing di un bootloader AVR (ad esempio, eseguire una ricerca sul Web per \"programmare un avr utilizzando raspberry pi\"). Gli esempi seguenti sono scritti presupponendo che sia in uso un dispositivo di tipo \"AVR ISP Mk2\". Il programma \"avrdude\" \u00e8 lo strumento pi\u00f9 comune utilizzato per eseguire il flashing dei chip atmega (sia flash del bootloader che flash dell'applicazione). Atmega2560 \u00b6 Questo chip si trova in genere nell'\"Arduino Mega\" ed \u00e8 molto comune nelle schede per stampanti 3D. Per eseguire il flashing del bootloader stesso usa qualcosa come: wget 'https://github.com/arduino/Arduino/raw/1.8.5/hardware/arduino/avr/bootloaders/stk500v2/stk500boot_v2_mega2560.hex' avrdude -cavrispv2 -patmega2560 -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0xFD:m -U hfuse:w:0xD8:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega2560 -P/dev/ttyACM0 -b115200 -U flash:w:stk500boot_v2_mega2560.hex avrdude -cavrispv2 -patmega2560 -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: avrdude -cwiring -patmega2560 -P/dev/ttyACM0 -b115200 -D -Uflash:w:out/klipper.elf.hex:i Atmega1280 \u00b6 Questo chip si trova in genere nelle prime versioni di \"Arduino Mega\". Per eseguire il flashing del bootloader stesso usa qualcosa come: wget 'https://github.com/arduino/Arduino/raw/1.8.5/hardware/arduino/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1280.hex' avrdude -cavrispv2 -patmega1280 -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0xF5:m -U hfuse:w:0xDA:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega1280 -P/dev/ttyACM0 -b115200 -U flash:w:ATmegaBOOT_168_atmega1280.hex avrdude -cavrispv2 -patmega1280 -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: avrdude -carduino -patmega1280 -P/dev/ttyACM0 -b57600 -D -Uflash:w:out/klipper.elf.hex:i Atmega1284p \u00b6 Questo chip si trova comunemente nelle schede per stampanti 3D in stile \"Melzi\". Per eseguire il flashing del bootloader stesso usa qualcosa come: wget 'https://github.com/Lauszus/Sanguino/raw/1.0.2/bootloaders/optiboot/optiboot_atmega1284p.hex' avrdude -cavrispv2 -patmega1284p -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0xFD:m -U hfuse:w:0xDE:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega1284p -P/dev/ttyACM0 -b115200 -U flash:w:optiboot_atmega1284p.hex avrdude -cavrispv2 -patmega1284p -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: avrdude -carduino -patmega1284p -P/dev/ttyACM0 -b115200 -D -Uflash:w:out/klipper.elf.hex:i Si noti che un certo numero di schede in stile \"Melzi\" sono precaricate con un bootloader che utilizza una velocit\u00e0 di trasmissione di 57600 baud. In questo caso, per eseguire il flashing di un'applicazione utilizzare invece qualcosa di simile: avrdude -carduino -patmega1284p -P/dev/ttyACM0 -b57600 -D -Uflash:w:out/klipper.elf.hex:i At90usb1286 \u00b6 Questo documento non copre il metodo per eseguire il flashing di un bootloader su At90usb1286 n\u00e9 copre il flashing di applicazioni generali su questo dispositivo. Il dispositivo Teensy++ di pjrc.com viene fornito con un bootloader proprietario. Richiede uno strumento di flashing personalizzato da https://github.com/PaulStoffregen/teensy_loader_cli . Si pu\u00f2 eseguire il flashing di un'applicazione usando qualcosa come: teensy_loader_cli --mcu=at90usb1286 out/klipper.elf.hex -v Atmega168 \u00b6 L'atmega168 ha uno spazio flash limitato. Se si utilizza un bootloader, si consiglia di utilizzare il bootloader Optiboot. Per eseguire il flashing di quel bootloader usa qualcosa come: wget 'https://github.com/arduino/Arduino/raw/1.8.5/hardware/arduino/avr/bootloaders/optiboot/optiboot_atmega168.hex' avrdude -cavrispv2 -patmega168 -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0x04:m -U hfuse:w:0xDD:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega168 -P/dev/ttyACM0 -b115200 -U flash:w:optiboot_atmega168.hex avrdude -cavrispv2 -patmega168 -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Per eseguire il flashing di un'applicazione tramite il bootloader Optiboot, utilizzare qualcosa come: avrdude -carduino -patmega168 -P/dev/ttyACM0 -b115200 -D -Uflash:w:out/klipper.elf.hex:i Microcontrollori SAM3 (Arduino Due) \u00b6 Non \u00e8 comune utilizzare un bootloader con l'mcu SAM3. Il chip stesso ha una ROM che permette di programmare il flash da porta seriale 3.3V o da USB. Per abilitare la ROM, il pin \"erase\" viene tenuto alto durante un reset, che cancella il contenuto della flash e fa funzionare la ROM. Su un Arduino Due, questa sequenza pu\u00f2 essere realizzata impostando un baud rate di 1200 sulla \"porta usb di programmazione\" (la porta USB pi\u00f9 vicina all'alimentatore). Il codice in https://github.com/shumatech/BOSSA pu\u00f2 essere utilizzato per programmare il SAM3. Si consiglia di utilizzare la versione 1.9 o successiva. Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: bossac -U -p /dev/ttyACM0 -a -e -w out/klipper.bin -v -b bossac -U -p /dev/ttyACM0 -R Microcontrollori SAM4 (Duet Wifi) \u00b6 Non \u00e8 comune utilizzare un bootloader con l'mcu SAM4. Il chip stesso ha una ROM che permette di programmare la memoria flash da porta seriale 3.3V o da USB. Per abilitare la ROM, il pin \"erase\" viene tenuto alto durante un reset, che cancella il contenuto della memoria flash e fa funzionare la ROM. Il codice in https://github.com/shumatech/BOSSA pu\u00f2 essere utilizzato per programmare il SAM4. \u00c8 necessario utilizzare la versione 1.8.0 o successiva. Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: bossac --port=/dev/ttyACM0 -b -U -e -w -v -R out/klipper.bin Microcontrollori SAMD21 (Arduino Zero) \u00b6 Il bootloader SAMD21 viene caricato in memoria flashing tramite l'interfaccia ARM Serial Wire Debug (SWD). Questo viene fatto comunemente con un dongle hardware SWD dedicato. In alternativa, \u00e8 possibile utilizzare un Raspberry Pi con OpenOCD . Per eseguire il flashing di un bootloader con OpenOCD, utilizzare la seguente configurazione del chip: source [find target/at91samdXX.cfg] Ottieni un bootloader, ad esempio: wget 'https://github.com/arduino/ArduinoCore-samd/raw/1.8.3/bootloaders/zero/samd21_sam_ba.bin' Carica la memoria Flash con comandi OpenOCD simili a: at91samd bootloader 0 program samd21_sam_ba.bin verify Il bootloader pi\u00f9 comune sul SAMD21 \u00e8 quello che si trova sull' \"Arduino Zero\". Utilizza un bootloader da 8KiB (l'applicazione deve essere compilata con un indirizzo iniziale di 8KiB). Si pu\u00f2 entrare in questo bootloader facendo doppio clic sul pulsante di ripristino. Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: bossac -U -p /dev/ttyACM0 --offset=0x2000 -w out/klipper.bin -v -b -R Al contrario, \"Arduino M0\" utilizza un bootloader da 16 KiB (l'applicazione deve essere compilata con un indirizzo iniziale di 16 KiB). Per eseguire il flashing di un'applicazione su questo bootloader, ripristinare il microcontrollore ed eseguire il comando flash entro i primi secondi dall'avvio, qualcosa del tipo: avrdude -c stk500v2 -p atmega2560 -P /dev/ttyACM0 -u -Uflash:w:out/klipper.elf.hex:i Microcontrollori SAMD51 (Adafruit Metro-M4 e simili) \u00b6 Come il SAMD21, il bootloader SAMD51 viene eseguito il flashing tramite l'interfaccia ARM Serial Wire Debug (SWD). Per eseguire il flashing di un bootloader con OpenOCD su un Raspberry Pi utilizzare la seguente configurazione del chip: source [find target/atsame5x.cfg] Ottieni un bootloader: diversi bootloader sono disponibili da https://github.com/adafruit/uf2-samdx1/releases/latest . Per esempio: wget 'https://github.com/adafruit/uf2-samdx1/releases/download/v3.7.0/bootloader-itsybitsy_m4-v3.7.0.bin' Carica la memoria Flash con comandi OpenOCD simili a: at91samd bootloader 0 program bootloader-itsybitsy_m4-v3.7.0.bin verify at91samd bootloader 16384 Il SAMD51 utilizza un bootloader da 16 KiB (l'applicazione deve essere compilata con un indirizzo iniziale di 16 KiB). Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: bossac -U -p /dev/ttyACM0 --offset=0x4000 -w out/klipper.bin -v -b -R Microcontrollori STM32F103 (dispositivi Blue Pill) \u00b6 I dispositivi STM32F103 dispongono di una ROM che pu\u00f2 eseguire il flashing di un bootloader o di un'applicazione tramite seriale a 3,3 V. In genere si collegano i pin PA10 (MCU Rx) e PA9 (MCU Tx) a un adattatore UART da 3,3 V. Per accedere alla ROM, \u00e8 necessario collegare il pin \"boot 0\" in alto e il pin \"boot 1\" in basso, quindi ripristinare il dispositivo. Il pacchetto \"stm32flash\" pu\u00f2 quindi essere utilizzato per eseguire il flashing del dispositivo utilizzando qualcosa come: stm32flash -w out/klipper.bin -v -g 0 /dev/ttyAMA0 Si noti che se si utilizza un Raspberry Pi per la seriale da 3,3 V, il protocollo stm32flash utilizza una modalit\u00e0 di parit\u00e0 seriale che il \"mini UART\" di Raspberry Pi non supporta. Vedere https://www.raspberrypi.com/documentation/computers/configuration.html#configuring-uarts per i dettagli sull'abilitazione dell'uart completo sui pin GPIO di Raspberry Pi. Dopo aver caricato la memoria flash, imposta \"boot 0\" e \"boot 1\" su basso in modo che in futuro ripristini l'avvio da flash. STM32F103 con bootloader stm32duino \u00b6 Il progetto \"stm32duino\" ha un bootloader compatibile con USB - vedere: https://github.com/rogerclarkmelbourne/STM32duino-bootloader Questo bootloader pu\u00f2 essere flashato tramite seriale 3.3V con qualcosa come: wget 'https://github.com/rogerclarkmelbourne/STM32duino-bootloader/raw/master/binaries/generic_boot20_pc13.bin' stm32flash -w generic_boot20_pc13.bin -v -g 0 /dev/ttyAMA0 Questo bootloader utilizza 8KiB di spazio flash (l'applicazione deve essere compilata con un indirizzo iniziale di 8KiB). Caricare in memoria flash un'applicazione con qualcosa come: dfu-util -d 1eaf:0003 -a 2 -R -D out/klipper.bin Il bootloader in genere viene eseguito solo per un breve periodo dopo l'avvio. Potrebbe essere necessario sincronizzare il comando sopra in modo che venga eseguito mentre il bootloader \u00e8 ancora attivo (il bootloader far\u00e0 lampeggiare un led della scheda mentre \u00e8 in esecuzione). In alternativa, imposta il pin \"boot 0\" su basso e il pin \"boot 1\" su alto per rimanere nel bootloader dopo un ripristino. STM32F103 con bootloader HID \u00b6 Il bootloader HID \u00e8 un bootloader compatto e senza driver in grado di eseguire il flashing attraverso USB. \u00c8 inoltre disponibile un fork con build specifiche per SKR Mini E3 1.2 . Per schede STM32F103 generiche come la blue pill \u00e8 possibile eseguire il flashing del bootloader tramite seriale 3.3v utilizzando stm32flash come indicato nella sezione stm32duino sopra, sostituendo il nome del file con il binario del bootloader desiderato (es: hid_generic_pc13.bin per blue pill ). Non \u00e8 possibile utilizzare stm32flash per SKR Mini E3 poich\u00e9 il pin boot0 \u00e8 collegato direttamente a terra e non disponibile tramite pin header. Si consiglia di utilizzare un STLink V2 con STM32Cubeprogrammer per eseguire il flashing del bootloader. Se non hai accesso a un STLink \u00e8 anche possibile utilizzare un Raspberry Pi e OpenOCD con la seguente configurazione del chip: source [find target/stm32f1x.cfg] Se lo desideri puoi fare un backup della flash corrente con il seguente comando. Tieni presente che il completamento potrebbe richiedere del tempo: flash read_bank 0 btt_skr_mini_e3_backup.bin infine, puoi eseguire il flashing con comandi simili a: stm32f1x mass_erase 0 program hid_btt_skr_mini_e3.bin verify 0x08000000 NOTE: L'esempio sopra cancella il chip, quindi programma il bootloader. Indipendentemente dal metodo scelto per eseguire il flashing, si consiglia di cancellare il chip prima del flashing. Prima di eseguire il flashing di SKR Mini E3 con questo bootloader, dovresti essere consapevole che non sarai pi\u00f9 in grado di aggiornare il firmware tramite la sdcard. You may need to hold down the reset button on the board while launching OpenOCD. It should display something like: Open On-Chip Debugger 0.10.0+dev-01204-gc60252ac-dirty (2020-04-27-16:00) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html DEPRECATED! use 'adapter speed' not 'adapter_khz' Info : BCM2835 GPIO JTAG/SWD bitbang driver Info : JTAG and SWD modes enabled Info : clock speed 40 kHz Info : SWD DPIDR 0x1ba01477 Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints Info : stm32f1x.cpu: external reset detected Info : starting gdb server for stm32f1x.cpu on 3333 Info : Listening on port 3333 for gdb connections Dopodich\u00e9 puoi rilasciare il pulsante di reset. Questo bootloader richiede 2KiB di spazio flash (l'applicazione deve essere compilata con un indirizzo iniziale di 2KiB). Il programma hid-flash viene utilizzato per caricare un file binario sul bootloader. \u00c8 possibile installare questo software con i seguenti comandi: sudo apt install libusb-1.0 cd ~/klipper/lib/hidflash make Se il bootloader \u00e8 in esecuzione, puoi eseguire il flash con qualcosa del tipo: ~/klipper/lib/hidflash/hid-flash ~/klipper/out/klipper.bin in alternativa, puoi usare make flash per flashare klipper direttamente: make flash FLASH_DEVICE=1209:BEBA O se klipper \u00e8 stato precedentemente flashato: make flash FLASH_DEVICE=/dev/ttyACM0 Potrebbe essere necessario inserire manualmente il bootloader, questo pu\u00f2 essere fatto impostando \"boot 0\" basso e \"boot 1\" alto. Su SKR Mini E3 \"Boot 1\" non \u00e8 disponibile, quindi pu\u00f2 essere fatto impostando il pin PA2 basso se hai flashato \"hid_btt_skr_mini_e3.bin\". Questo pin \u00e8 etichettato \"TX0\" sull'intestazione TFT nel documento \"PIN\" di SKR Mini E3. C'\u00e8 un pin di massa accanto a PA2 che puoi usare per abbassare PA2. STM32F103/STM32F072 con bootloader MSC \u00b6 Il bootloader MSC \u00e8 un bootloader senza driver in grado di eseguire il flashing su USB. \u00c8 possibile eseguire il flashing del bootloader tramite seriale 3.3v usando stm32flash come indicato nella sezione stm32duino sopra, sostituendo il nome del file con il file binario del bootloader MSC desiderato (es: MSCboot-Bluepill.bin per la Blue pill). Per le schede STM32F072 \u00e8 anche possibile eseguire il flashing del bootloader su USB (tramite DFU) con qualcosa del tipo: dfu-util -d 0483:df11 -a 0 -R -D MSCboot-STM32F072.bin -s0x08000000:leave Questo bootloader utilizza 8KiB o 16KiB di spazio flash, vedere la descrizione del bootloader (l'applicazione deve essere compilata con l'indirizzo iniziale corrispondente). Il bootloader pu\u00f2 essere attivato premendo due volte il pulsante di reset della scheda. Non appena il bootloader viene attivato, la scheda appare come una chiavetta USB su cui \u00e8 possibile copiare il file klipper.bin. STM32F103/STM32F0x2 con bootloader CanBoot \u00b6 Il bootloader CanBoot fornisce un'opzione per caricare il firmware Klipper su CANBUS. Il bootloader stesso \u00e8 derivato dal codice sorgente di Klipper. Attualmente CanBoot supporta i modelli STM32F103, STM32F042 e STM32F072. Si consiglia di utilizzare un programmatore ST-Link per eseguire il flashing di CanBoot, tuttavia dovrebbe essere possibile eseguire il flashing utilizzando stm32flash sui dispositivi STM32F103 e dfu-util sui dispositivi STM32F042/STM32F072. Vedere le sezioni precedenti di questo documento per istruzioni su questi metodi di flashing, sostituendo canboot.bin per il nome del file ove appropriato. Il link al repository CanBoot collegato sopra fornisce istruzioni per la creazione del bootloader. La prima volta che CanBoot \u00e8 stato flashato, dovrebbe rilevare che non \u00e8 presente alcuna applicazione e accedere al bootloader. Se ci\u00f2 non accade \u00e8 possibile entrare nel bootloader premendo due volte di seguito il pulsante di reset. L'utilit\u00e0 flash_can.py fornita nella cartella lib/canboot pu\u00f2 essere utilizzata per caricare il firmware di Klipper. E' necessario l'UUID del dispositivo per eseguire il flashing. Se non si dispone di un UUID \u00e8 possibile interrogare i nodi che attualmente eseguono il bootloader: python3 flash_can.py -q Ci\u00f2 restituir\u00e0 gli UUID per tutti i nodi collegati non attualmente assegnati a un UUID. Questo dovrebbe includere tutti i nodi attualmente nel bootloader. Una volta che hai un UUID, puoi caricare il firmware con il seguente comando: python3 flash_can.py -i can0 -f ~/klipper/out/klipper.bin -u aabbccddeeff Dove aabbccddeeff \u00e8 sostituito dal tuo UUID. Nota che le opzioni -i e -f possono essere omesse, per impostazione predefinita sono rispettivamente can0 e ~/klipper/out/klipper.bin . Quando crei Klipper per l'uso con CanBoot, seleziona l'opzione Bootloader da 8 KiB. Microcontrollori STM32F4 (SKR Pro 1.1) \u00b6 I microcontrollori STM32F4 sono dotati di un bootloader di sistema integrato in grado di eseguire il flashing su USB (tramite DFU), seriale 3.3v e vari altri metodi (consultare il documento STM AN2606 per ulteriori informazioni). Alcune schede STM32F4, come SKR Pro 1.1, non sono in grado di accedere al bootloader DFU. Il bootloader HID \u00e8 disponibile per schede basate su STM32F405/407 nel caso in cui l'utente preferisca eseguire il flashing su USB anzich\u00e9 utilizzare la scheda SD. Tieni presente che potrebbe essere necessario configurare e creare una versione specifica per la tua scheda, una build per SKR Pro 1.1 \u00e8 disponibile qui . A meno che la tua scheda non sia compatibile con DFU, il metodo di flashing pi\u00f9 accessibile \u00e8 probabilmente tramite seriale 3.3v, che segue la stessa procedura di flash dell'STM32F103 usando stm32flash . Per esempio: wget https://github.com/Arksine/STM32_HID_Bootloader/releases/download/v0.5-beta/hid_bootloader_SKR_PRO.bin stm32flash -w hid_bootloader_SKR_PRO.bin -v -g 0 /dev/ttyAMA0 Questo bootloader richiede 16Kib di spazio flash sull'STM32F4 (l'applicazione deve essere compilata con un indirizzo iniziale di 16KiB). Come con l'STM32F1, l'STM32F4 utilizza lo strumento hid-flash per caricare i file binari nell'MCU. Consulta le istruzioni sopra per i dettagli su come creare e utilizzare hid-flash. Potrebbe essere necessario inserire manualmente il bootloader, questo pu\u00f2 essere fatto impostando \"boot 0\" basso, \"boot 1\" alto e collegando il dispositivo. Al termine della programmazione, scollegare il dispositivo e impostare \"boot 1\" su basso in modo che l'applicazione venga caricata. Microcontrollori LPC176x (Smoothieboards) \u00b6 Questo documento non descrive il metodo per eseguire il flashing di un bootloader stesso - vedere: http://smoothieware.org/flashing-the-bootloader per ulteriori informazioni su questo argomento. \u00c8 comune che per le Smoothieboard venga fornito con un bootloader da: https://github.com/triffid/LPC17xx-DFU-Bootloader . Quando si utilizza questo bootloader, l'applicazione deve essere compilata con un indirizzo iniziale di 16 KiB. Il modo pi\u00f9 semplice per eseguire il flashing di un'applicazione con questo bootloader \u00e8 copiare il file dell'applicazione (ad es. out/klipper.bin ) in un file denominato firmware.bin su una scheda SD, quindi riavviare il microcontrollore con quella scheda SD. Eseguire OpenOCD su Raspberry PI \u00b6 OpenOCD \u00e8 un pacchetto software in grado di eseguire il flashing e il debug di chip di basso livello. Pu\u00f2 utilizzare i pin GPIO su un Raspberry Pi per comunicare con una variet\u00e0 di chip ARM. Questa sezione descrive come installare e avviare OpenOCD. \u00c8 derivato dalle istruzioni su: https://learn.adafruit.com/programming-microcontrollers-using-openocd-on-raspberry-pi Inizia scaricando e compilando il software (ogni passaggio pu\u00f2 richiedere diversi minuti e il passaggio \"make\" pu\u00f2 richiedere pi\u00f9 di 30 minuti): sudo apt-get update sudo apt-get install autoconf libtool telnet mkdir ~/openocd cd ~/openocd/ git clone http://openocd.zylin.com/openocd cd openocd ./bootstrap ./configure --enable-sysfsgpio --enable-bcm2835gpio --prefix=/home/pi/openocd/install make make install Configurare OpenOCD \u00b6 Crea un file di configurazione OpenOCD: nano ~/openocd/openocd.cfg Utilizzare una configurazione simile alla seguente: # Uses RPi pins: GPIO25 for SWDCLK, GPIO24 for SWDIO, GPIO18 for nRST source [find interface/raspberrypi2-native.cfg] bcm2835gpio_swd_nums 25 24 bcm2835gpio_srst_num 18 transport select swd # Use hardware reset wire for chip resets reset_config srst_only adapter_nsrst_delay 100 adapter_nsrst_assert_width 100 # Specify the chip type source [find target/atsame5x.cfg] # Set the adapter speed adapter_khz 40 # Connect to chip init targets reset halt Collega il Raspberry Pi al chip di destinazione \u00b6 Spegni sia il Raspberry Pi che il chip di destinazione prima del cablaggio! Verificare che il chip di destinazione utilizzi 3,3 V prima di connettersi a un Raspberry Pi! Collega GND, SWDCLK, SWDIO e RST sul chip di destinazione rispettivamente a GND, GPIO25, GPIO24 e GPIO18 sul Raspberry Pi. Quindi accendi il Raspberry Pi e fornisci alimentazione al chip di destinazione. Eseguire OpenOCD \u00b6 Esegui OpenOCD: cd ~/openocd/ sudo ~/openocd/install/bin/openocd -f ~/openocd/openocd.cfg Quanto sopra dovrebbe far s\u00ec che OpenOCD emetta alcuni messaggi di testo e quindi attenda (non dovrebbe tornare immediatamente al prompt della shell Unix). Se OpenOCD termina da solo o se continua a emettere messaggi di testo, ricontrolla il cablaggio. Una volta che OpenOCD \u00e8 in esecuzione ed \u00e8 stabile, \u00e8 possibile inviargli comandi tramite telnet. Apri un'altra sessione ssh ed esegui quanto segue: telnet 127.0.0.1 4444 (Si pu\u00f2 uscire da telnet premendo ctrl+] e quindi eseguendo il comando \"quit\".) OpenOCD e gdb \u00b6 \u00c8 possibile utilizzare OpenOCD con gdb per eseguire il debug di Klipper. I seguenti comandi presuppongono che uno stia eseguendo gdb su una macchina di classe desktop. Aggiungi quanto segue al file di configurazione di OpenOCD: bindto 0.0.0.0 gdb_port 44444 Riavvia OpenOCD sul Raspberry Pi e quindi esegui il seguente comando Unix sul computer desktop: cd /path/to/klipper/ gdb out/klipper.elf All'interno di gdb esegui: target remote octopi:44444 (Sostituisci \"octopi\" con il nome host del Raspberry Pi.) Una volta che gdb \u00e8 in esecuzione, \u00e8 possibile impostare punti di interruzione e ispezionare i registri.","title":"Bootloader"},{"location":"Bootloaders.html#bootloader","text":"Questo documento fornisce informazioni sui bootloader comuni scoperti sui microcontrollori che sono supportati da Klipper. Il bootloader \u00e8 un software di terze parti che viene eseguito sul microcontrollore quando viene acceso per la prima volta. Viene generalmente utilizzato per eseguire il flashing di una nuova applicazione (ad es. Klipper) sul microcontrollore senza richiedere hardware specializzato. Sfortunatamente, non esiste uno standard a livello di settore per il flashing di un microcontrollore, n\u00e9 esiste un bootloader standard che funzioni su tutti i microcontrollori. Peggio ancora, \u00e8 comune che ogni bootloader richieda una serie di passaggi diversa per eseguire il flashing di un'applicazione. Se si pu\u00f2 eseguire il flashing di un bootloader su un microcontrollore, generalmente si pu\u00f2 anche utilizzare quel meccanismo per eseguire il flashing di un'applicazione, ma \u00e8 necessario prestare attenzione quando si esegue questa operazione poich\u00e9 si potrebbe rimuovere inavvertitamente il bootloader. Al contrario, un bootloader generalmente consentir\u00e0 solo a un utente di eseguire il flashing di un'applicazione. Si consiglia pertanto di utilizzare un bootloader per eseguire il flashing di un'applicazione, ove possibile. Questo documento tenta di descrivere i bootloader comuni, i passaggi necessari per eseguire il flashing di un bootloader e i passaggi necessari per eseguire il flashing di un'applicazione. Questo documento non \u00e8 un riferimento autorevole; \u00e8 inteso come una raccolta di informazioni utili che gli sviluppatori di Klipper hanno accumulato.","title":"Bootloader"},{"location":"Bootloaders.html#microcontrollori-avr","text":"In generale, il progetto Arduino \u00e8 un buon riferimento per bootloader e procedure di flashing sui microcontrollori Atmel Atmega a 8 bit. In particolare, il file \"boards.txt\": https://github.com/arduino/Arduino/blob/1.8.5/hardware/arduino/avr/boards.txt \u00e8 un utile riferimento. Per eseguire il flashing di un bootloader, i chip AVR richiedono uno strumento di flashing hardware esterno (che comunica con il chip tramite SPI). Questo strumento pu\u00f2 essere acquistato (ad esempio, eseguire una ricerca sul Web per \"avr isp\", \"arduino isp\" o \"usb tiny isp\"). \u00c8 anche possibile utilizzare un altro Arduino o Raspberry Pi per eseguire il flashing di un bootloader AVR (ad esempio, eseguire una ricerca sul Web per \"programmare un avr utilizzando raspberry pi\"). Gli esempi seguenti sono scritti presupponendo che sia in uso un dispositivo di tipo \"AVR ISP Mk2\". Il programma \"avrdude\" \u00e8 lo strumento pi\u00f9 comune utilizzato per eseguire il flashing dei chip atmega (sia flash del bootloader che flash dell'applicazione).","title":"Microcontrollori AVR"},{"location":"Bootloaders.html#atmega2560","text":"Questo chip si trova in genere nell'\"Arduino Mega\" ed \u00e8 molto comune nelle schede per stampanti 3D. Per eseguire il flashing del bootloader stesso usa qualcosa come: wget 'https://github.com/arduino/Arduino/raw/1.8.5/hardware/arduino/avr/bootloaders/stk500v2/stk500boot_v2_mega2560.hex' avrdude -cavrispv2 -patmega2560 -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0xFD:m -U hfuse:w:0xD8:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega2560 -P/dev/ttyACM0 -b115200 -U flash:w:stk500boot_v2_mega2560.hex avrdude -cavrispv2 -patmega2560 -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: avrdude -cwiring -patmega2560 -P/dev/ttyACM0 -b115200 -D -Uflash:w:out/klipper.elf.hex:i","title":"Atmega2560"},{"location":"Bootloaders.html#atmega1280","text":"Questo chip si trova in genere nelle prime versioni di \"Arduino Mega\". Per eseguire il flashing del bootloader stesso usa qualcosa come: wget 'https://github.com/arduino/Arduino/raw/1.8.5/hardware/arduino/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1280.hex' avrdude -cavrispv2 -patmega1280 -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0xF5:m -U hfuse:w:0xDA:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega1280 -P/dev/ttyACM0 -b115200 -U flash:w:ATmegaBOOT_168_atmega1280.hex avrdude -cavrispv2 -patmega1280 -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: avrdude -carduino -patmega1280 -P/dev/ttyACM0 -b57600 -D -Uflash:w:out/klipper.elf.hex:i","title":"Atmega1280"},{"location":"Bootloaders.html#atmega1284p","text":"Questo chip si trova comunemente nelle schede per stampanti 3D in stile \"Melzi\". Per eseguire il flashing del bootloader stesso usa qualcosa come: wget 'https://github.com/Lauszus/Sanguino/raw/1.0.2/bootloaders/optiboot/optiboot_atmega1284p.hex' avrdude -cavrispv2 -patmega1284p -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0xFD:m -U hfuse:w:0xDE:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega1284p -P/dev/ttyACM0 -b115200 -U flash:w:optiboot_atmega1284p.hex avrdude -cavrispv2 -patmega1284p -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: avrdude -carduino -patmega1284p -P/dev/ttyACM0 -b115200 -D -Uflash:w:out/klipper.elf.hex:i Si noti che un certo numero di schede in stile \"Melzi\" sono precaricate con un bootloader che utilizza una velocit\u00e0 di trasmissione di 57600 baud. In questo caso, per eseguire il flashing di un'applicazione utilizzare invece qualcosa di simile: avrdude -carduino -patmega1284p -P/dev/ttyACM0 -b57600 -D -Uflash:w:out/klipper.elf.hex:i","title":"Atmega1284p"},{"location":"Bootloaders.html#at90usb1286","text":"Questo documento non copre il metodo per eseguire il flashing di un bootloader su At90usb1286 n\u00e9 copre il flashing di applicazioni generali su questo dispositivo. Il dispositivo Teensy++ di pjrc.com viene fornito con un bootloader proprietario. Richiede uno strumento di flashing personalizzato da https://github.com/PaulStoffregen/teensy_loader_cli . Si pu\u00f2 eseguire il flashing di un'applicazione usando qualcosa come: teensy_loader_cli --mcu=at90usb1286 out/klipper.elf.hex -v","title":"At90usb1286"},{"location":"Bootloaders.html#atmega168","text":"L'atmega168 ha uno spazio flash limitato. Se si utilizza un bootloader, si consiglia di utilizzare il bootloader Optiboot. Per eseguire il flashing di quel bootloader usa qualcosa come: wget 'https://github.com/arduino/Arduino/raw/1.8.5/hardware/arduino/avr/bootloaders/optiboot/optiboot_atmega168.hex' avrdude -cavrispv2 -patmega168 -P/dev/ttyACM0 -b115200 -e -u -U lock:w:0x3F:m -U efuse:w:0x04:m -U hfuse:w:0xDD:m -U lfuse:w:0xFF:m avrdude -cavrispv2 -patmega168 -P/dev/ttyACM0 -b115200 -U flash:w:optiboot_atmega168.hex avrdude -cavrispv2 -patmega168 -P/dev/ttyACM0 -b115200 -U lock:w:0x0F:m Per eseguire il flashing di un'applicazione tramite il bootloader Optiboot, utilizzare qualcosa come: avrdude -carduino -patmega168 -P/dev/ttyACM0 -b115200 -D -Uflash:w:out/klipper.elf.hex:i","title":"Atmega168"},{"location":"Bootloaders.html#microcontrollori-sam3-arduino-due","text":"Non \u00e8 comune utilizzare un bootloader con l'mcu SAM3. Il chip stesso ha una ROM che permette di programmare il flash da porta seriale 3.3V o da USB. Per abilitare la ROM, il pin \"erase\" viene tenuto alto durante un reset, che cancella il contenuto della flash e fa funzionare la ROM. Su un Arduino Due, questa sequenza pu\u00f2 essere realizzata impostando un baud rate di 1200 sulla \"porta usb di programmazione\" (la porta USB pi\u00f9 vicina all'alimentatore). Il codice in https://github.com/shumatech/BOSSA pu\u00f2 essere utilizzato per programmare il SAM3. Si consiglia di utilizzare la versione 1.9 o successiva. Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: bossac -U -p /dev/ttyACM0 -a -e -w out/klipper.bin -v -b bossac -U -p /dev/ttyACM0 -R","title":"Microcontrollori SAM3 (Arduino Due)"},{"location":"Bootloaders.html#microcontrollori-sam4-duet-wifi","text":"Non \u00e8 comune utilizzare un bootloader con l'mcu SAM4. Il chip stesso ha una ROM che permette di programmare la memoria flash da porta seriale 3.3V o da USB. Per abilitare la ROM, il pin \"erase\" viene tenuto alto durante un reset, che cancella il contenuto della memoria flash e fa funzionare la ROM. Il codice in https://github.com/shumatech/BOSSA pu\u00f2 essere utilizzato per programmare il SAM4. \u00c8 necessario utilizzare la versione 1.8.0 o successiva. Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: bossac --port=/dev/ttyACM0 -b -U -e -w -v -R out/klipper.bin","title":"Microcontrollori SAM4 (Duet Wifi)"},{"location":"Bootloaders.html#microcontrollori-samd21-arduino-zero","text":"Il bootloader SAMD21 viene caricato in memoria flashing tramite l'interfaccia ARM Serial Wire Debug (SWD). Questo viene fatto comunemente con un dongle hardware SWD dedicato. In alternativa, \u00e8 possibile utilizzare un Raspberry Pi con OpenOCD . Per eseguire il flashing di un bootloader con OpenOCD, utilizzare la seguente configurazione del chip: source [find target/at91samdXX.cfg] Ottieni un bootloader, ad esempio: wget 'https://github.com/arduino/ArduinoCore-samd/raw/1.8.3/bootloaders/zero/samd21_sam_ba.bin' Carica la memoria Flash con comandi OpenOCD simili a: at91samd bootloader 0 program samd21_sam_ba.bin verify Il bootloader pi\u00f9 comune sul SAMD21 \u00e8 quello che si trova sull' \"Arduino Zero\". Utilizza un bootloader da 8KiB (l'applicazione deve essere compilata con un indirizzo iniziale di 8KiB). Si pu\u00f2 entrare in questo bootloader facendo doppio clic sul pulsante di ripristino. Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: bossac -U -p /dev/ttyACM0 --offset=0x2000 -w out/klipper.bin -v -b -R Al contrario, \"Arduino M0\" utilizza un bootloader da 16 KiB (l'applicazione deve essere compilata con un indirizzo iniziale di 16 KiB). Per eseguire il flashing di un'applicazione su questo bootloader, ripristinare il microcontrollore ed eseguire il comando flash entro i primi secondi dall'avvio, qualcosa del tipo: avrdude -c stk500v2 -p atmega2560 -P /dev/ttyACM0 -u -Uflash:w:out/klipper.elf.hex:i","title":"Microcontrollori SAMD21 (Arduino Zero)"},{"location":"Bootloaders.html#microcontrollori-samd51-adafruit-metro-m4-e-simili","text":"Come il SAMD21, il bootloader SAMD51 viene eseguito il flashing tramite l'interfaccia ARM Serial Wire Debug (SWD). Per eseguire il flashing di un bootloader con OpenOCD su un Raspberry Pi utilizzare la seguente configurazione del chip: source [find target/atsame5x.cfg] Ottieni un bootloader: diversi bootloader sono disponibili da https://github.com/adafruit/uf2-samdx1/releases/latest . Per esempio: wget 'https://github.com/adafruit/uf2-samdx1/releases/download/v3.7.0/bootloader-itsybitsy_m4-v3.7.0.bin' Carica la memoria Flash con comandi OpenOCD simili a: at91samd bootloader 0 program bootloader-itsybitsy_m4-v3.7.0.bin verify at91samd bootloader 16384 Il SAMD51 utilizza un bootloader da 16 KiB (l'applicazione deve essere compilata con un indirizzo iniziale di 16 KiB). Per eseguire il flashing di un'applicazione, utilizzare qualcosa come: bossac -U -p /dev/ttyACM0 --offset=0x4000 -w out/klipper.bin -v -b -R","title":"Microcontrollori SAMD51 (Adafruit Metro-M4 e simili)"},{"location":"Bootloaders.html#microcontrollori-stm32f103-dispositivi-blue-pill","text":"I dispositivi STM32F103 dispongono di una ROM che pu\u00f2 eseguire il flashing di un bootloader o di un'applicazione tramite seriale a 3,3 V. In genere si collegano i pin PA10 (MCU Rx) e PA9 (MCU Tx) a un adattatore UART da 3,3 V. Per accedere alla ROM, \u00e8 necessario collegare il pin \"boot 0\" in alto e il pin \"boot 1\" in basso, quindi ripristinare il dispositivo. Il pacchetto \"stm32flash\" pu\u00f2 quindi essere utilizzato per eseguire il flashing del dispositivo utilizzando qualcosa come: stm32flash -w out/klipper.bin -v -g 0 /dev/ttyAMA0 Si noti che se si utilizza un Raspberry Pi per la seriale da 3,3 V, il protocollo stm32flash utilizza una modalit\u00e0 di parit\u00e0 seriale che il \"mini UART\" di Raspberry Pi non supporta. Vedere https://www.raspberrypi.com/documentation/computers/configuration.html#configuring-uarts per i dettagli sull'abilitazione dell'uart completo sui pin GPIO di Raspberry Pi. Dopo aver caricato la memoria flash, imposta \"boot 0\" e \"boot 1\" su basso in modo che in futuro ripristini l'avvio da flash.","title":"Microcontrollori STM32F103 (dispositivi Blue Pill)"},{"location":"Bootloaders.html#stm32f103-con-bootloader-stm32duino","text":"Il progetto \"stm32duino\" ha un bootloader compatibile con USB - vedere: https://github.com/rogerclarkmelbourne/STM32duino-bootloader Questo bootloader pu\u00f2 essere flashato tramite seriale 3.3V con qualcosa come: wget 'https://github.com/rogerclarkmelbourne/STM32duino-bootloader/raw/master/binaries/generic_boot20_pc13.bin' stm32flash -w generic_boot20_pc13.bin -v -g 0 /dev/ttyAMA0 Questo bootloader utilizza 8KiB di spazio flash (l'applicazione deve essere compilata con un indirizzo iniziale di 8KiB). Caricare in memoria flash un'applicazione con qualcosa come: dfu-util -d 1eaf:0003 -a 2 -R -D out/klipper.bin Il bootloader in genere viene eseguito solo per un breve periodo dopo l'avvio. Potrebbe essere necessario sincronizzare il comando sopra in modo che venga eseguito mentre il bootloader \u00e8 ancora attivo (il bootloader far\u00e0 lampeggiare un led della scheda mentre \u00e8 in esecuzione). In alternativa, imposta il pin \"boot 0\" su basso e il pin \"boot 1\" su alto per rimanere nel bootloader dopo un ripristino.","title":"STM32F103 con bootloader stm32duino"},{"location":"Bootloaders.html#stm32f103-con-bootloader-hid","text":"Il bootloader HID \u00e8 un bootloader compatto e senza driver in grado di eseguire il flashing attraverso USB. \u00c8 inoltre disponibile un fork con build specifiche per SKR Mini E3 1.2 . Per schede STM32F103 generiche come la blue pill \u00e8 possibile eseguire il flashing del bootloader tramite seriale 3.3v utilizzando stm32flash come indicato nella sezione stm32duino sopra, sostituendo il nome del file con il binario del bootloader desiderato (es: hid_generic_pc13.bin per blue pill ). Non \u00e8 possibile utilizzare stm32flash per SKR Mini E3 poich\u00e9 il pin boot0 \u00e8 collegato direttamente a terra e non disponibile tramite pin header. Si consiglia di utilizzare un STLink V2 con STM32Cubeprogrammer per eseguire il flashing del bootloader. Se non hai accesso a un STLink \u00e8 anche possibile utilizzare un Raspberry Pi e OpenOCD con la seguente configurazione del chip: source [find target/stm32f1x.cfg] Se lo desideri puoi fare un backup della flash corrente con il seguente comando. Tieni presente che il completamento potrebbe richiedere del tempo: flash read_bank 0 btt_skr_mini_e3_backup.bin infine, puoi eseguire il flashing con comandi simili a: stm32f1x mass_erase 0 program hid_btt_skr_mini_e3.bin verify 0x08000000 NOTE: L'esempio sopra cancella il chip, quindi programma il bootloader. Indipendentemente dal metodo scelto per eseguire il flashing, si consiglia di cancellare il chip prima del flashing. Prima di eseguire il flashing di SKR Mini E3 con questo bootloader, dovresti essere consapevole che non sarai pi\u00f9 in grado di aggiornare il firmware tramite la sdcard. You may need to hold down the reset button on the board while launching OpenOCD. It should display something like: Open On-Chip Debugger 0.10.0+dev-01204-gc60252ac-dirty (2020-04-27-16:00) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html DEPRECATED! use 'adapter speed' not 'adapter_khz' Info : BCM2835 GPIO JTAG/SWD bitbang driver Info : JTAG and SWD modes enabled Info : clock speed 40 kHz Info : SWD DPIDR 0x1ba01477 Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints Info : stm32f1x.cpu: external reset detected Info : starting gdb server for stm32f1x.cpu on 3333 Info : Listening on port 3333 for gdb connections Dopodich\u00e9 puoi rilasciare il pulsante di reset. Questo bootloader richiede 2KiB di spazio flash (l'applicazione deve essere compilata con un indirizzo iniziale di 2KiB). Il programma hid-flash viene utilizzato per caricare un file binario sul bootloader. \u00c8 possibile installare questo software con i seguenti comandi: sudo apt install libusb-1.0 cd ~/klipper/lib/hidflash make Se il bootloader \u00e8 in esecuzione, puoi eseguire il flash con qualcosa del tipo: ~/klipper/lib/hidflash/hid-flash ~/klipper/out/klipper.bin in alternativa, puoi usare make flash per flashare klipper direttamente: make flash FLASH_DEVICE=1209:BEBA O se klipper \u00e8 stato precedentemente flashato: make flash FLASH_DEVICE=/dev/ttyACM0 Potrebbe essere necessario inserire manualmente il bootloader, questo pu\u00f2 essere fatto impostando \"boot 0\" basso e \"boot 1\" alto. Su SKR Mini E3 \"Boot 1\" non \u00e8 disponibile, quindi pu\u00f2 essere fatto impostando il pin PA2 basso se hai flashato \"hid_btt_skr_mini_e3.bin\". Questo pin \u00e8 etichettato \"TX0\" sull'intestazione TFT nel documento \"PIN\" di SKR Mini E3. C'\u00e8 un pin di massa accanto a PA2 che puoi usare per abbassare PA2.","title":"STM32F103 con bootloader HID"},{"location":"Bootloaders.html#stm32f103stm32f072-con-bootloader-msc","text":"Il bootloader MSC \u00e8 un bootloader senza driver in grado di eseguire il flashing su USB. \u00c8 possibile eseguire il flashing del bootloader tramite seriale 3.3v usando stm32flash come indicato nella sezione stm32duino sopra, sostituendo il nome del file con il file binario del bootloader MSC desiderato (es: MSCboot-Bluepill.bin per la Blue pill). Per le schede STM32F072 \u00e8 anche possibile eseguire il flashing del bootloader su USB (tramite DFU) con qualcosa del tipo: dfu-util -d 0483:df11 -a 0 -R -D MSCboot-STM32F072.bin -s0x08000000:leave Questo bootloader utilizza 8KiB o 16KiB di spazio flash, vedere la descrizione del bootloader (l'applicazione deve essere compilata con l'indirizzo iniziale corrispondente). Il bootloader pu\u00f2 essere attivato premendo due volte il pulsante di reset della scheda. Non appena il bootloader viene attivato, la scheda appare come una chiavetta USB su cui \u00e8 possibile copiare il file klipper.bin.","title":"STM32F103/STM32F072 con bootloader MSC"},{"location":"Bootloaders.html#stm32f103stm32f0x2-con-bootloader-canboot","text":"Il bootloader CanBoot fornisce un'opzione per caricare il firmware Klipper su CANBUS. Il bootloader stesso \u00e8 derivato dal codice sorgente di Klipper. Attualmente CanBoot supporta i modelli STM32F103, STM32F042 e STM32F072. Si consiglia di utilizzare un programmatore ST-Link per eseguire il flashing di CanBoot, tuttavia dovrebbe essere possibile eseguire il flashing utilizzando stm32flash sui dispositivi STM32F103 e dfu-util sui dispositivi STM32F042/STM32F072. Vedere le sezioni precedenti di questo documento per istruzioni su questi metodi di flashing, sostituendo canboot.bin per il nome del file ove appropriato. Il link al repository CanBoot collegato sopra fornisce istruzioni per la creazione del bootloader. La prima volta che CanBoot \u00e8 stato flashato, dovrebbe rilevare che non \u00e8 presente alcuna applicazione e accedere al bootloader. Se ci\u00f2 non accade \u00e8 possibile entrare nel bootloader premendo due volte di seguito il pulsante di reset. L'utilit\u00e0 flash_can.py fornita nella cartella lib/canboot pu\u00f2 essere utilizzata per caricare il firmware di Klipper. E' necessario l'UUID del dispositivo per eseguire il flashing. Se non si dispone di un UUID \u00e8 possibile interrogare i nodi che attualmente eseguono il bootloader: python3 flash_can.py -q Ci\u00f2 restituir\u00e0 gli UUID per tutti i nodi collegati non attualmente assegnati a un UUID. Questo dovrebbe includere tutti i nodi attualmente nel bootloader. Una volta che hai un UUID, puoi caricare il firmware con il seguente comando: python3 flash_can.py -i can0 -f ~/klipper/out/klipper.bin -u aabbccddeeff Dove aabbccddeeff \u00e8 sostituito dal tuo UUID. Nota che le opzioni -i e -f possono essere omesse, per impostazione predefinita sono rispettivamente can0 e ~/klipper/out/klipper.bin . Quando crei Klipper per l'uso con CanBoot, seleziona l'opzione Bootloader da 8 KiB.","title":"STM32F103/STM32F0x2 con bootloader CanBoot"},{"location":"Bootloaders.html#microcontrollori-stm32f4-skr-pro-11","text":"I microcontrollori STM32F4 sono dotati di un bootloader di sistema integrato in grado di eseguire il flashing su USB (tramite DFU), seriale 3.3v e vari altri metodi (consultare il documento STM AN2606 per ulteriori informazioni). Alcune schede STM32F4, come SKR Pro 1.1, non sono in grado di accedere al bootloader DFU. Il bootloader HID \u00e8 disponibile per schede basate su STM32F405/407 nel caso in cui l'utente preferisca eseguire il flashing su USB anzich\u00e9 utilizzare la scheda SD. Tieni presente che potrebbe essere necessario configurare e creare una versione specifica per la tua scheda, una build per SKR Pro 1.1 \u00e8 disponibile qui . A meno che la tua scheda non sia compatibile con DFU, il metodo di flashing pi\u00f9 accessibile \u00e8 probabilmente tramite seriale 3.3v, che segue la stessa procedura di flash dell'STM32F103 usando stm32flash . Per esempio: wget https://github.com/Arksine/STM32_HID_Bootloader/releases/download/v0.5-beta/hid_bootloader_SKR_PRO.bin stm32flash -w hid_bootloader_SKR_PRO.bin -v -g 0 /dev/ttyAMA0 Questo bootloader richiede 16Kib di spazio flash sull'STM32F4 (l'applicazione deve essere compilata con un indirizzo iniziale di 16KiB). Come con l'STM32F1, l'STM32F4 utilizza lo strumento hid-flash per caricare i file binari nell'MCU. Consulta le istruzioni sopra per i dettagli su come creare e utilizzare hid-flash. Potrebbe essere necessario inserire manualmente il bootloader, questo pu\u00f2 essere fatto impostando \"boot 0\" basso, \"boot 1\" alto e collegando il dispositivo. Al termine della programmazione, scollegare il dispositivo e impostare \"boot 1\" su basso in modo che l'applicazione venga caricata.","title":"Microcontrollori STM32F4 (SKR Pro 1.1)"},{"location":"Bootloaders.html#microcontrollori-lpc176x-smoothieboards","text":"Questo documento non descrive il metodo per eseguire il flashing di un bootloader stesso - vedere: http://smoothieware.org/flashing-the-bootloader per ulteriori informazioni su questo argomento. \u00c8 comune che per le Smoothieboard venga fornito con un bootloader da: https://github.com/triffid/LPC17xx-DFU-Bootloader . Quando si utilizza questo bootloader, l'applicazione deve essere compilata con un indirizzo iniziale di 16 KiB. Il modo pi\u00f9 semplice per eseguire il flashing di un'applicazione con questo bootloader \u00e8 copiare il file dell'applicazione (ad es. out/klipper.bin ) in un file denominato firmware.bin su una scheda SD, quindi riavviare il microcontrollore con quella scheda SD.","title":"Microcontrollori LPC176x (Smoothieboards)"},{"location":"Bootloaders.html#eseguire-openocd-su-raspberry-pi","text":"OpenOCD \u00e8 un pacchetto software in grado di eseguire il flashing e il debug di chip di basso livello. Pu\u00f2 utilizzare i pin GPIO su un Raspberry Pi per comunicare con una variet\u00e0 di chip ARM. Questa sezione descrive come installare e avviare OpenOCD. \u00c8 derivato dalle istruzioni su: https://learn.adafruit.com/programming-microcontrollers-using-openocd-on-raspberry-pi Inizia scaricando e compilando il software (ogni passaggio pu\u00f2 richiedere diversi minuti e il passaggio \"make\" pu\u00f2 richiedere pi\u00f9 di 30 minuti): sudo apt-get update sudo apt-get install autoconf libtool telnet mkdir ~/openocd cd ~/openocd/ git clone http://openocd.zylin.com/openocd cd openocd ./bootstrap ./configure --enable-sysfsgpio --enable-bcm2835gpio --prefix=/home/pi/openocd/install make make install","title":"Eseguire OpenOCD su Raspberry PI"},{"location":"Bootloaders.html#configurare-openocd","text":"Crea un file di configurazione OpenOCD: nano ~/openocd/openocd.cfg Utilizzare una configurazione simile alla seguente: # Uses RPi pins: GPIO25 for SWDCLK, GPIO24 for SWDIO, GPIO18 for nRST source [find interface/raspberrypi2-native.cfg] bcm2835gpio_swd_nums 25 24 bcm2835gpio_srst_num 18 transport select swd # Use hardware reset wire for chip resets reset_config srst_only adapter_nsrst_delay 100 adapter_nsrst_assert_width 100 # Specify the chip type source [find target/atsame5x.cfg] # Set the adapter speed adapter_khz 40 # Connect to chip init targets reset halt","title":"Configurare OpenOCD"},{"location":"Bootloaders.html#collega-il-raspberry-pi-al-chip-di-destinazione","text":"Spegni sia il Raspberry Pi che il chip di destinazione prima del cablaggio! Verificare che il chip di destinazione utilizzi 3,3 V prima di connettersi a un Raspberry Pi! Collega GND, SWDCLK, SWDIO e RST sul chip di destinazione rispettivamente a GND, GPIO25, GPIO24 e GPIO18 sul Raspberry Pi. Quindi accendi il Raspberry Pi e fornisci alimentazione al chip di destinazione.","title":"Collega il Raspberry Pi al chip di destinazione"},{"location":"Bootloaders.html#eseguire-openocd","text":"Esegui OpenOCD: cd ~/openocd/ sudo ~/openocd/install/bin/openocd -f ~/openocd/openocd.cfg Quanto sopra dovrebbe far s\u00ec che OpenOCD emetta alcuni messaggi di testo e quindi attenda (non dovrebbe tornare immediatamente al prompt della shell Unix). Se OpenOCD termina da solo o se continua a emettere messaggi di testo, ricontrolla il cablaggio. Una volta che OpenOCD \u00e8 in esecuzione ed \u00e8 stabile, \u00e8 possibile inviargli comandi tramite telnet. Apri un'altra sessione ssh ed esegui quanto segue: telnet 127.0.0.1 4444 (Si pu\u00f2 uscire da telnet premendo ctrl+] e quindi eseguendo il comando \"quit\".)","title":"Eseguire OpenOCD"},{"location":"Bootloaders.html#openocd-e-gdb","text":"\u00c8 possibile utilizzare OpenOCD con gdb per eseguire il debug di Klipper. I seguenti comandi presuppongono che uno stia eseguendo gdb su una macchina di classe desktop. Aggiungi quanto segue al file di configurazione di OpenOCD: bindto 0.0.0.0 gdb_port 44444 Riavvia OpenOCD sul Raspberry Pi e quindi esegui il seguente comando Unix sul computer desktop: cd /path/to/klipper/ gdb out/klipper.elf All'interno di gdb esegui: target remote octopi:44444 (Sostituisci \"octopi\" con il nome host del Raspberry Pi.) Una volta che gdb \u00e8 in esecuzione, \u00e8 possibile impostare punti di interruzione e ispezionare i registri.","title":"OpenOCD e gdb"},{"location":"CANBUS.html","text":"CANBUS \u00b6 Questo documento descrive il supporto del CAN bus di Klipper. Hardware del dispositivo \u00b6 Klipper attualmente supporta CAN su chip stm32, same5x e rp2040. Inoltre, il chip del microcontrollore deve trovarsi su una scheda dotata di un ricetrasmettitore CAN. Per compilare per CAN, eseguire make menuconfig e selezionare \"CAN bus\" come interfaccia di comunicazione. Infine, compila il codice del microcontrollore e flashalo sulla scheda di destinazione. Hardware Host \u00b6 Per utilizzare un bus CAN, \u00e8 necessario disporre di un adattatore sul host. Attualmente ci sono due opzioni comuni: Usa un Waveshare Raspberry Pi CAN o uno dei suoi tanti cloni. Utilizzare un adattatore CAN USB (ad esempio https://hacker-gadgets.com/product/cantact-usb-can-adapter/ ). Sono disponibili molti adattatori diversi da USB a CAN: quando ne scegli uno, ti consigliamo di verificare che possa eseguire il candlelight firmware . (Sfortunatamente, abbiamo riscontrato che alcuni adattatori USB eseguono firmware difettoso e sono bloccati, quindi verifica prima dell'acquisto.) \u00c8 inoltre necessario configurare il sistema operativo host per utilizzare l'adattatore. Questo viene in genere fatto creando un nuovo file chiamato /etc/network/interfaces.d/can0 con il seguente contenuto: auto can0 iface can0 can static bitrate 500000 up ifconfig $IFACE txqueuelen 128 Nota che il \"Raspberry Pi CAN hat\" richiede anche modifiche a config.txt . Resistori di terminazione \u00b6 Un bus CAN dovrebbe avere due resistori da 120 ohm tra i cavi CANH e CANL. Idealmente, un resistore situato a ciascuna estremit\u00e0 del bus. Si noti che alcuni dispositivi hanno un resistore integrato da 120 ohm (ad esempio, il \"Waveshare Raspberry Pi CAN\" ha un resistore saldato che non pu\u00f2 essere rimosso facilmente). Alcuni dispositivi non includono affatto un resistore. Altri dispositivi hanno un meccanismo per selezionare il resistore (in genere collegando un \"ponticello jumper\"). Assicurati di controllare gli schemi di tutti i dispositivi sul bus CAN per verificare che ci siano due e solo due resistori da 120 Ohm sul bus. Per verificare che i resistori siano corretti, \u00e8 possibile rimuovere l'alimentazione alla stampante e utilizzare un multimetro per controllare la resistenza tra i cavi CNH e CANL: dovrebbe riportare ~60 ohm su un bus CAN cablato correttamente. Trovare canbus_uuid per nuovi microcontrollori \u00b6 A ogni microcontrollore sul bus CAN viene assegnato un ID univoco basato sull'identificatore del chip di fabbrica codificato in ciascun microcontrollore. Per trovare l'ID di ciascun dispositivo del microcontrollore, assicurati che l'hardware sia alimentato e cablato correttamente, quindi esegui: ~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0 Se vengono rilevati dispositivi CAN non inizializzati, il comando precedente riporter\u00e0 righe come le seguenti: Found canbus_uuid=11aa22bb33cc, Application: Klipper Ogni dispositivo avr\u00e0 un identificatore univoco. Nell'esempio sopra, 11aa22bb33cc \u00e8 il \"canbus_uuid\" del microcontrollore. Nota che lo strumento canbus_query.py riporter\u00e0 solo i dispositivi non inizializzati - se Klipper (o uno strumento simile) configura il dispositivo, non apparir\u00e0 pi\u00f9 nell'elenco. Configurare Klipper \u00b6 Aggiorna Klipper configurazione mcu per utilizzare il bus CAN per comunicare con il dispositivo, ad esempio: [mcu my_can_mcu] canbus_uuid: 11aa22bb33cc Modalit\u00e0 bridge da USB a CAN bus \u00b6 Alcuni microcontrollori supportano la selezione della modalit\u00e0 \"USB to CAN bus bridge\" durante \"make menuconfig\". Questa modalit\u00e0 pu\u00f2 consentire di utilizzare un microcontrollore sia come \"adattatore bus da USB a CAN\" che come nodo Klipper. Quando Klipper utilizza questa modalit\u00e0, il microcontrollore appare come un \"adattatore bus CAN USB\" sotto Linux. Lo stesso \"Klipper bridge mcu\" apparir\u00e0 come se fosse su questo bus CAN - pu\u00f2 essere identificato tramite canbus_query.py e configurato come altri nodi Klipper del bus CAN. Apparir\u00e0 insieme ad altri dispositivi che sono effettivamente sul bus CAN. Alcune note importanti quando si utilizza questa modalit\u00e0: Il \"bridge mcu\" non \u00e8 effettivamente sul bus CAN. I messaggi in entrata e in uscita non consumano larghezza di banda sul bus CAN. L'mcu non pu\u00f2 essere visto da altri adattatori che potrebbero essere sul bus CAN. \u00c8 necessario configurare l'interfaccia can0 (o simile) in Linux per comunicare con il bus. Tuttavia, Klipper ignora la velocit\u00e0 del bus CAN di Linux e le opzioni di temporizzazione del bus CAN. Attualmente, la frequenza del bus CAN viene specificata durante \"make menuconfig\" e la velocit\u00e0 del bus specificata in Linux viene ignorata. Ogni volta che il \"bridge mcu\" viene ripristinato, Linux disabiliter\u00e0 l'interfaccia can0 corrispondente. Per garantire una corretta gestione dei comandi FIRMWARE_RESTART e RESTART, si consiglia di sostituire auto con allow-hotplug nel file /etc/network/interfaces.d/can0 . Per esempio: allow-hotplug can0 iface can0 can static bitrate 500000 up ifconfig $IFACE txqueuelen 128","title":"CANBUS"},{"location":"CANBUS.html#canbus","text":"Questo documento descrive il supporto del CAN bus di Klipper.","title":"CANBUS"},{"location":"CANBUS.html#hardware-del-dispositivo","text":"Klipper attualmente supporta CAN su chip stm32, same5x e rp2040. Inoltre, il chip del microcontrollore deve trovarsi su una scheda dotata di un ricetrasmettitore CAN. Per compilare per CAN, eseguire make menuconfig e selezionare \"CAN bus\" come interfaccia di comunicazione. Infine, compila il codice del microcontrollore e flashalo sulla scheda di destinazione.","title":"Hardware del dispositivo"},{"location":"CANBUS.html#hardware-host","text":"Per utilizzare un bus CAN, \u00e8 necessario disporre di un adattatore sul host. Attualmente ci sono due opzioni comuni: Usa un Waveshare Raspberry Pi CAN o uno dei suoi tanti cloni. Utilizzare un adattatore CAN USB (ad esempio https://hacker-gadgets.com/product/cantact-usb-can-adapter/ ). Sono disponibili molti adattatori diversi da USB a CAN: quando ne scegli uno, ti consigliamo di verificare che possa eseguire il candlelight firmware . (Sfortunatamente, abbiamo riscontrato che alcuni adattatori USB eseguono firmware difettoso e sono bloccati, quindi verifica prima dell'acquisto.) \u00c8 inoltre necessario configurare il sistema operativo host per utilizzare l'adattatore. Questo viene in genere fatto creando un nuovo file chiamato /etc/network/interfaces.d/can0 con il seguente contenuto: auto can0 iface can0 can static bitrate 500000 up ifconfig $IFACE txqueuelen 128 Nota che il \"Raspberry Pi CAN hat\" richiede anche modifiche a config.txt .","title":"Hardware Host"},{"location":"CANBUS.html#resistori-di-terminazione","text":"Un bus CAN dovrebbe avere due resistori da 120 ohm tra i cavi CANH e CANL. Idealmente, un resistore situato a ciascuna estremit\u00e0 del bus. Si noti che alcuni dispositivi hanno un resistore integrato da 120 ohm (ad esempio, il \"Waveshare Raspberry Pi CAN\" ha un resistore saldato che non pu\u00f2 essere rimosso facilmente). Alcuni dispositivi non includono affatto un resistore. Altri dispositivi hanno un meccanismo per selezionare il resistore (in genere collegando un \"ponticello jumper\"). Assicurati di controllare gli schemi di tutti i dispositivi sul bus CAN per verificare che ci siano due e solo due resistori da 120 Ohm sul bus. Per verificare che i resistori siano corretti, \u00e8 possibile rimuovere l'alimentazione alla stampante e utilizzare un multimetro per controllare la resistenza tra i cavi CNH e CANL: dovrebbe riportare ~60 ohm su un bus CAN cablato correttamente.","title":"Resistori di terminazione"},{"location":"CANBUS.html#trovare-canbus_uuid-per-nuovi-microcontrollori","text":"A ogni microcontrollore sul bus CAN viene assegnato un ID univoco basato sull'identificatore del chip di fabbrica codificato in ciascun microcontrollore. Per trovare l'ID di ciascun dispositivo del microcontrollore, assicurati che l'hardware sia alimentato e cablato correttamente, quindi esegui: ~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0 Se vengono rilevati dispositivi CAN non inizializzati, il comando precedente riporter\u00e0 righe come le seguenti: Found canbus_uuid=11aa22bb33cc, Application: Klipper Ogni dispositivo avr\u00e0 un identificatore univoco. Nell'esempio sopra, 11aa22bb33cc \u00e8 il \"canbus_uuid\" del microcontrollore. Nota che lo strumento canbus_query.py riporter\u00e0 solo i dispositivi non inizializzati - se Klipper (o uno strumento simile) configura il dispositivo, non apparir\u00e0 pi\u00f9 nell'elenco.","title":"Trovare canbus_uuid per nuovi microcontrollori"},{"location":"CANBUS.html#configurare-klipper","text":"Aggiorna Klipper configurazione mcu per utilizzare il bus CAN per comunicare con il dispositivo, ad esempio: [mcu my_can_mcu] canbus_uuid: 11aa22bb33cc","title":"Configurare Klipper"},{"location":"CANBUS.html#modalita-bridge-da-usb-a-can-bus","text":"Alcuni microcontrollori supportano la selezione della modalit\u00e0 \"USB to CAN bus bridge\" durante \"make menuconfig\". Questa modalit\u00e0 pu\u00f2 consentire di utilizzare un microcontrollore sia come \"adattatore bus da USB a CAN\" che come nodo Klipper. Quando Klipper utilizza questa modalit\u00e0, il microcontrollore appare come un \"adattatore bus CAN USB\" sotto Linux. Lo stesso \"Klipper bridge mcu\" apparir\u00e0 come se fosse su questo bus CAN - pu\u00f2 essere identificato tramite canbus_query.py e configurato come altri nodi Klipper del bus CAN. Apparir\u00e0 insieme ad altri dispositivi che sono effettivamente sul bus CAN. Alcune note importanti quando si utilizza questa modalit\u00e0: Il \"bridge mcu\" non \u00e8 effettivamente sul bus CAN. I messaggi in entrata e in uscita non consumano larghezza di banda sul bus CAN. L'mcu non pu\u00f2 essere visto da altri adattatori che potrebbero essere sul bus CAN. \u00c8 necessario configurare l'interfaccia can0 (o simile) in Linux per comunicare con il bus. Tuttavia, Klipper ignora la velocit\u00e0 del bus CAN di Linux e le opzioni di temporizzazione del bus CAN. Attualmente, la frequenza del bus CAN viene specificata durante \"make menuconfig\" e la velocit\u00e0 del bus specificata in Linux viene ignorata. Ogni volta che il \"bridge mcu\" viene ripristinato, Linux disabiliter\u00e0 l'interfaccia can0 corrispondente. Per garantire una corretta gestione dei comandi FIRMWARE_RESTART e RESTART, si consiglia di sostituire auto con allow-hotplug nel file /etc/network/interfaces.d/can0 . Per esempio: allow-hotplug can0 iface can0 can static bitrate 500000 up ifconfig $IFACE txqueuelen 128","title":"Modalit\u00e0 bridge da USB a CAN bus"},{"location":"CANBUS_protocol.html","text":"Protocollo CANBUS \u00b6 Questo documento descrive il protocollo utilizzato da Klipper per comunicare su CAN bus . Vedere per informazioni sulla configurazione di Klipper con CANBUS. Assegnazione dell'id del microcontrollore \u00b6 Klipper utilizza solo pacchetti CAN bus di dimensioni standard CAN 2.0A, che sono limitati a 8 byte di dati e un identificatore bus CAN a 11 bit. Per supportare una comunicazione efficiente, a ogni microcontrollore viene assegnato in fase di esecuzione un ID nodo bus CAN univoco a 1 byte (\"canbus_nodeid\") per il traffico generale di comandi e risposte Klipper. I messaggi di comando di Klipper che vanno dall'host al microcontrollore utilizzano l'ID bus CAN di canbus_nodeid * 2 + 256 , mentre i messaggi di risposta di Klipper dal microcontrollore all'host usano canbus_nodeid * 2 + 256 + 1 . Ogni microcontrollore ha un identificatore di chip univoco assegnato in fabbrica che viene utilizzato durante l'assegnazione dell'ID. Questo identificatore pu\u00f2 superare la lunghezza di un pacchetto CAN, quindi una funzione hash viene utilizzata per generare un ID univoco a 6 byte ( canbus_uuid ) dall'ID di fabbrica. Messaggi dell'amministratore \u00b6 I messaggi dell'amministratore vengono utilizzati per l'assegnazione dell'ID. I messaggi di amministrazione inviati dall'host al microcontrollore utilizzano l'ID bus CAN \"0x3f0\" e i messaggi inviati dal microcontrollore all'host utilizzano l'ID bus CAN \"0x3f1\". Tutti i microcontrollori ascoltano i messaggi sull'id 0x3f0 ; quell'ID pu\u00f2 essere considerato un \"indirizzo di trasmissione\". messaggio CMD_QUERY_UNASSIGNED \u00b6 Questo comando interroga tutti i microcontrollori a cui non \u00e8 stato ancora assegnato un canbus_nodeid . I microcontrollori non assegnati risponderanno con un messaggio di risposta RESP_NEED_NODEID. Il formato del messaggio CMD_QUERY_UNASSIGNED \u00e8: <1 byte message_id = 0x00> CMD_SET_KLIPPER_NODEID messaggio \u00b6 Questo comando assegna un canbus_nodeid al microcontrollore con un dato canbus_uuid . Il formato del messaggio CMD_SET_KLIPPER_NODEID \u00e8: <1-byte message_id = 0x01><6-byte canbus_uuid><1-byte canbus_nodeid> Messaggio RESP_NEED_NODEID \u00b6 Il formato del messaggio RESP_NEED_NODEID \u00e8: <1-byte message_id = 0x20><6-byte canbus_uuid><1-byte set_klipper_nodeid = 0x01> Pacchetti dati \u00b6 Un microcontrollore a cui \u00e8 stato assegnato un nodeid tramite il comando CMD_SET_KLIPPER_NODEID pu\u00f2 inviare e ricevere pacchetti di dati. I dati del pacchetto nei messaggi che utilizzano l'ID bus CAN di ricezione del nodo ( canbus_nodeid * 2 + 256 ) vengono semplicemente aggiunti a un buffer e quando viene trovato un mcu protocol message completo, il suo contenuto viene analizzato ed elaborato . I dati vengono trattati come un flusso di byte: non \u00e8 necessario che l'inizio di un blocco di messaggi Klipper sia allineato con l'inizio di un pacchetto bus CAN. Allo stesso modo, le risposte ai messaggi del protocollo mcu vengono inviate dal microcontrollore all'host copiando i dati del messaggio in uno o pi\u00f9 pacchetti con l'ID del bus CAN di trasmissione del nodo ( canbus_nodeid * 2 + 256 + 1 ).","title":"Protocollo CANBUS"},{"location":"CANBUS_protocol.html#protocollo-canbus","text":"Questo documento descrive il protocollo utilizzato da Klipper per comunicare su CAN bus . Vedere per informazioni sulla configurazione di Klipper con CANBUS.","title":"Protocollo CANBUS"},{"location":"CANBUS_protocol.html#assegnazione-dellid-del-microcontrollore","text":"Klipper utilizza solo pacchetti CAN bus di dimensioni standard CAN 2.0A, che sono limitati a 8 byte di dati e un identificatore bus CAN a 11 bit. Per supportare una comunicazione efficiente, a ogni microcontrollore viene assegnato in fase di esecuzione un ID nodo bus CAN univoco a 1 byte (\"canbus_nodeid\") per il traffico generale di comandi e risposte Klipper. I messaggi di comando di Klipper che vanno dall'host al microcontrollore utilizzano l'ID bus CAN di canbus_nodeid * 2 + 256 , mentre i messaggi di risposta di Klipper dal microcontrollore all'host usano canbus_nodeid * 2 + 256 + 1 . Ogni microcontrollore ha un identificatore di chip univoco assegnato in fabbrica che viene utilizzato durante l'assegnazione dell'ID. Questo identificatore pu\u00f2 superare la lunghezza di un pacchetto CAN, quindi una funzione hash viene utilizzata per generare un ID univoco a 6 byte ( canbus_uuid ) dall'ID di fabbrica.","title":"Assegnazione dell'id del microcontrollore"},{"location":"CANBUS_protocol.html#messaggi-dellamministratore","text":"I messaggi dell'amministratore vengono utilizzati per l'assegnazione dell'ID. I messaggi di amministrazione inviati dall'host al microcontrollore utilizzano l'ID bus CAN \"0x3f0\" e i messaggi inviati dal microcontrollore all'host utilizzano l'ID bus CAN \"0x3f1\". Tutti i microcontrollori ascoltano i messaggi sull'id 0x3f0 ; quell'ID pu\u00f2 essere considerato un \"indirizzo di trasmissione\".","title":"Messaggi dell'amministratore"},{"location":"CANBUS_protocol.html#messaggio-cmd_query_unassigned","text":"Questo comando interroga tutti i microcontrollori a cui non \u00e8 stato ancora assegnato un canbus_nodeid . I microcontrollori non assegnati risponderanno con un messaggio di risposta RESP_NEED_NODEID. Il formato del messaggio CMD_QUERY_UNASSIGNED \u00e8: <1 byte message_id = 0x00>","title":"messaggio CMD_QUERY_UNASSIGNED"},{"location":"CANBUS_protocol.html#cmd_set_klipper_nodeid-messaggio","text":"Questo comando assegna un canbus_nodeid al microcontrollore con un dato canbus_uuid . Il formato del messaggio CMD_SET_KLIPPER_NODEID \u00e8: <1-byte message_id = 0x01><6-byte canbus_uuid><1-byte canbus_nodeid>","title":"CMD_SET_KLIPPER_NODEID messaggio"},{"location":"CANBUS_protocol.html#messaggio-resp_need_nodeid","text":"Il formato del messaggio RESP_NEED_NODEID \u00e8: <1-byte message_id = 0x20><6-byte canbus_uuid><1-byte set_klipper_nodeid = 0x01>","title":"Messaggio RESP_NEED_NODEID"},{"location":"CANBUS_protocol.html#pacchetti-dati","text":"Un microcontrollore a cui \u00e8 stato assegnato un nodeid tramite il comando CMD_SET_KLIPPER_NODEID pu\u00f2 inviare e ricevere pacchetti di dati. I dati del pacchetto nei messaggi che utilizzano l'ID bus CAN di ricezione del nodo ( canbus_nodeid * 2 + 256 ) vengono semplicemente aggiunti a un buffer e quando viene trovato un mcu protocol message completo, il suo contenuto viene analizzato ed elaborato . I dati vengono trattati come un flusso di byte: non \u00e8 necessario che l'inizio di un blocco di messaggi Klipper sia allineato con l'inizio di un pacchetto bus CAN. Allo stesso modo, le risposte ai messaggi del protocollo mcu vengono inviate dal microcontrollore all'host copiando i dati del messaggio in uno o pi\u00f9 pacchetti con l'ID del bus CAN di trasmissione del nodo ( canbus_nodeid * 2 + 256 + 1 ).","title":"Pacchetti dati"},{"location":"CONTRIBUTING.html","text":"Contribuire a Klipper \u00b6 Grazie per aver contribuito a Klipper! Questo documento descrive il processo per contribuire alle modifiche di Klipper. Consulta la contact page per informazioni sulla segnalazione di un problema o per i dettagli su come contattare gli sviluppatori. Panoramica del processo di contribuzione \u00b6 I contributi a Klipper seguono generalmente un processo di alto livello: Inizia creando una Richiesta pull GitHub quando un proposta \u00e8 pronta per la diffusione. Quando un reviewer \u00e8 disponibile per review l'invio, si assegner\u00e0 la richiesta pull su GitHub. L'obiettivo della revisione \u00e8 cercare i difetti e verificare che la proposta segua linee guida documentate. Dopo una revisione riuscita, il revisore \"approver\u00e0 la revisione\" su GitHub e un maintainer eseguir\u00e0 il commit della modifica al ramo principale di Klipper. Quando lavori sui miglioramenti, considera di iniziare (o contribuire a) un argomento su Klipper Discourse . Una discussione in corso sul forum pu\u00f2 migliorare la visibilit\u00e0 del lavoro di sviluppo e pu\u00f2 attirare altri interessati a testare nuovi lavori. Cosa aspettarsi da una revisione \u00b6 I contributi a Klipper vengono rivisti prima del merging. L'obiettivo principale del processo di revisione \u00e8 verificare la presenza di difetti e verificare che la presentazione segua le linee guida specificate nella documentazione di Klipper. Resta inteso che ci sono molti modi per portare a termine un compito; non \u00e8 intenzione della revisione discutere la \"migliore\" implementazione. Ove possibile, sono preferibili discussioni di revisione incentrate su fatti e misurazioni. La maggior parte degli invii otterr\u00e0 in feedback da una recensione. Preparati a ottenere feedback, fornire ulteriori dettagli e aggiornare l'invio, se necessario. Cose comuni che un revisore cercher\u00e0: L'invio \u00e8 privo di difetti ed \u00e8 pronto per essere diffuso?I realizzatori dei contributi sono tenuti a testare le loro modifiche prima dell'invio. I revisori cercano gli errori, ma in generale non testano gli invii. Un invio accettato viene spesso distribuito a migliaia di stampanti entro poche settimane dall'accettazione. La qualit\u00e0 degli invii \u00e8 quindi considerata una priorit\u00e0. Il repository GitHub principale Klipper3d/klipper non accetta lavori sperimentali. I realizzatori di contributi devono eseguire la sperimentazione, il debug e il test nei propri repository. Il server Klipper Discourse \u00e8 un buon posto per aumentare la consapevolezza del nuovo lavoro e per trovare utenti interessati a fornire feedback nel mondo reale. Gli invii devono superare tutti i test di regressione . Quando si corregge un difetto nel codice, i submitters dovrebbero avere una comprensione generale della causa principale di tale difetto e la correzione dovrebbe mirare a tale causa principale. Gli contributi di codice non devono contenere codice di debug eccessivo, opzioni di debug o registrazione del debug in fase di runtime. I commenti negli invii di codice dovrebbero concentrarsi sul miglioramento della manutenzione del codice. Gli invii non devono contenere \"codice commentato\" n\u00e9 commenti eccessivi che descrivono implementazioni passate. Non dovrebbero esserci commenti \"todo\" eccessivi. Gli aggiornamenti alla documentazione non devono dichiarare che si tratta di un \"work in progress\". L'invio fornisce un vantaggio \"ad alto impatto\" per gli utenti del mondo reale che svolgono attivit\u00e0 nel mondo reale?I revisori devono identificare, almeno nella loro mente, approssimativamente \"chi \u00e8 il pubblico di destinazione\", una scala approssimativa delle \"dimensioni di quel pubblico\", il \"beneficio\" che otterranno, come \"il beneficio viene misurato\" e i \"risultati di tali prove di misurazione\". Nella maggior parte dei casi questo sar\u00e0 ovvio sia per il mittente che per il revisore e non \u00e8 esplicitamente dichiarato durante una revisione. Le proposte al ramo principale di Klipper dovrebbero avere un pubblico di destinazione degno di nota. Come \"regola pratica\" generale, gli invii dovrebbero avere come target una base di utenti di almeno 100 utenti del mondo reale. Se un revisore chiede dettagli sul \"beneficio\" di un invio, non considerarlo una critica. Essere in grado di comprendere i vantaggi reali di un cambiamento \u00e8 una parte naturale di una revisione. Quando si discute dei benefici \u00e8 preferibile discutere di \"fatti e misurazioni\". In generale, i revisori non cercano risposte del modulo \"qualcuno potrebbe trovare utile l'opzione X\", n\u00e9 cercano risposte del modulo \"questo invio aggiunge una funzionalit\u00e0 implementata dal firmware X\". Invece, \u00e8 generalmente preferibile discutere i dettagli su come \u00e8 stato misurato il miglioramento della qualit\u00e0 e quali sono stati i risultati di tali misurazioni, ad esempio \"i test sulle stampanti Acme X1000 mostrano angoli migliorati come si vede in figura...\", o ad esempio \" il tempo di stampa dell'oggetto reale X su una stampante Foomatic X900 \u00e8 passato da 4 ore a 3,5 ore\". Resta inteso che i test di questo tipo possono richiedere molto tempo e sforzi. Alcune delle caratteristiche pi\u00f9 importanti di Klipper hanno richiesto mesi di discussioni, rielaborazioni, test e documentazione prima di essere fuse nel ramo principale. Tutti i nuovi moduli, opzioni di configurazione, comandi, parametri di comando e documenti dovrebbero avere un \"impatto elevato\". Non vogliamo appesantire gli utenti con opzioni che non possono configurare ragionevolmente n\u00e9 vogliamo appesantirli con opzioni che non forniscono un vantaggio notevole. Un revisore pu\u00f2 chiedere chiarimenti su come un utente deve configurare un'opzione - una risposta ideale conterr\u00e0 dettagli sul processo - ad esempio, \"gli utenti del MegaX500 dovrebbero impostare l'opzione X su 99,3 mentre gli utenti dell'Elite100Y dovrebbero calibrare l'opzione X usando la procedura ...\". Se l'obiettivo di un'opzione \u00e8 rendere il codice pi\u00f9 modulare, \u00e8 preferibile utilizzare le costanti del codice invece delle opzioni di configurazione rivolte all'utente. Nuovi moduli, nuove opzioni e nuovi parametri non dovrebbero fornire funzionalit\u00e0 simili ai moduli esistenti: se le differenze sono arbitrarie, \u00e8 preferibile utilizzare il sistema esistente o effettuare refactoring del codice esistente. Il copyright dell'invio \u00e8 chiaro, non gratuito e compatibile?I nuovi file C e Python dovrebbero avere una dichiarazione di copyright univoca. Vedere i file esistenti per il formato preferito. \u00c8 sconsigliato dichiarare un copyright su un file esistente quando si apportano modifiche minori a quel file. Il codice prelevato da fonti di terze parti deve essere compatibile con la licenza Klipper (GNU GPLv3). Grandi aggiunte di codice di terze parti dovrebbero essere aggiunte alla directory lib/ (e seguire il formato descritto in lib/README ). I mittenti devono fornire una Signed-off-line utilizzando il loro vero nome completo. Indica che il mittente \u00e8 d'accordo con il developer certificate of origin . L'invio segue le linee guida specificate nella documentazione di Klipper?In particolare, il codice deve seguire le linee guida in e i file di configurazione devono seguire le linee guida in . La documentazione di Klipper \u00e8 aggiornata per riflettere le nuove modifiche?Come minimo, la documentazione di riferimento deve essere aggiornata con le relative modifiche al codice: Tutti i comandi e i relativi parametri devono essere documentati in . Tutti i moduli rivolti all'utente e i relativi parametri di configurazione devono essere documentati in . Tutte le \"variabili di stato\" esportate devono essere documentate in . Tutti i nuovi \"webhook\" e i relativi parametri devono essere documentati in . Qualsiasi modifica che apporti una modifica non compatibile con le versioni precedenti a un comando o a un'impostazione del file di configurazione deve essere documentata in . I nuovi documenti dovrebbero essere aggiunti a e all'indice del sito web docs/_klipper3d/mkdocs.yml . I commit sono ben formati, affrontano un singolo argomento per commit e sono indipendenti?I messaggi di commit devono seguire il formato preferito . I commit non devono avere un conflitto in fase di merge. Le nuove aggiunte al ramo principale di Klipper vengono sempre eseguite tramite un \"rebase\" o \"squash and rebase\". In genere non \u00e8 necessario che i propositori uniscano nuovamente il loro invio ad ogni aggiornamento al repository principale di Klipper. Tuttavia, se c'\u00e8 un conflitto in fase di merge, si consiglia ai mittenti di usare git rebase per risolvere il conflitto. Ogni commit dovrebbe affrontare una singola modifica di alto livello. Le modifiche di grandi dimensioni dovrebbero essere suddivise in pi\u00f9 commit indipendenti. Ogni commit dovrebbe \"stare in piedi da solo\" in modo che strumenti come git bisect e git revert funzionino in modo affidabile. Le modifiche agli spazi bianchi non devono essere mescolate con le modifiche funzionali. In generale, le modifiche agli spazi bianchi gratuite non sono accettate a meno che non provengano dal \"proprietario\" stabilito del codice da modificare. Klipper non implementa una rigida \"guida allo stile di codifica\", ma le modifiche al codice esistente dovrebbero seguire il flusso di codice di alto livello, lo stile di indentazione del codice e il formato di quel codice esistente. Gli invii di nuovi moduli e sistemi hanno una maggiore flessibilit\u00e0 nello stile di codifica, ma \u00e8 preferibile che il nuovo codice segua uno stile internamente coerente e generalmente segua le norme di codifica. Non \u00e8 un obiettivo di una revisione discutere di \"migliori implementazioni\". Tuttavia, se un revisore ha difficolt\u00e0 a comprendere l'implementazione di un invio, pu\u00f2 richiedere modifiche per rendere l'implementazione pi\u00f9 trasparente. In particolare, se i revisori non riescono a convincersi che un contributo \u00e8 privo di difetti, potrebbero essere necessarie modifiche. Come parte di una revisione, un revisore pu\u00f2 creare una richiesta pull alternativa per un argomento. Questo pu\u00f2 essere fatto per evitare eccessivi \"avanti e indietro\" su elementi procedurali minori e quindi snellire il processo di proposta. Pu\u00f2 anche essere fatto perch\u00e9 la discussione ispira un revisore a costruire un'implementazione alternativa. Entrambe le situazioni sono il normale risultato di una revisione e non devono essere considerate critiche alla proposta originale. Aiutare con le revisioni \u00b6 Apprezziamo l'aiuto con le recensioni! Non \u00e8 necessario essere un revisore elencato per eseguire una revisione. I propositori di richieste pull di GitHub sono inoltre incoraggiati a rivedere i propri invii. Per aiutare con una revisione, segui i passaggi descritti in cosa aspettarsi in una revisione per verificare l'invio. Dopo aver completato la revisione, aggiungi un commento alla richiesta pull di GitHub con i tuoi risultati. Se l'invio supera la revisione, si prega di dichiararlo esplicitamente nel commento, ad esempio qualcosa del tipo \"Ho esaminato questa modifica in base ai passaggi del documento CONTRIBUTING e tutto mi sembra a posto\". Se non \u00e8 possibile completare alcuni passaggi della revisione, indicare esplicitamente quali passaggi sono stati rivisti e quali non sono stati rivisti, ad esempio qualcosa del tipo \"Non ho verificato la presenza di difetti nel codice, ma ho rivisto tutto il resto nel documento CONTRIBUTING e sembra buono\". Apprezziamo anche il test degli invii. Se il codice \u00e8 stato testato, aggiungi un commento alla richiesta pull di GitHub con i risultati del tuo test: successo o fallimento. Si prega di affermare esplicitamente che il codice \u00e8 stato testato e i risultati, ad esempio qualcosa del tipo \"Ho testato questo codice sulla mia stampante Acme900Z con una stampa a vaso e i risultati sono stati buoni\". Revisori \u00b6 I \"revisori\" di Klipper sono: Nome GitHub Id Aree di interesse Dmitry Butyugin @dmbutyugin Input shaping, test di risonanza, cinematica Eric Callahan @Arksine Livellamento del piatto, flashing MCU Kevin O'Connor @KevinOConnor Core motion system, codice microcontrollore Paul McGowan @mental405 File di configurazione, documentazione Si prega di non eseguire il \"ping\" di nessuno dei revisori e di non indirizzare gli invii a loro. Tutti i revisori controllano i forum e le PR e si occuperanno delle revisioni quando ne avranno il tempo. I \"manutentori\" di Klipper sono: Nome nome GitHub Kevin O'Connor @KevinOConnor Formato dei messaggi di commit \u00b6 Ogni commit dovrebbe avere un messaggio di commit formattato in modo simile al seguente: modulo: Riepilogo breve (50 caratteri o meno) in maiuscolo Testo esplicativo pi\u00f9 dettagliato, se necessario. Incolonna a circa 75 caratteri o gi\u00f9 di l\u00ec. In alcuni contesti, la prima riga \u00e8 trattata come l'oggetto di un'e-mail e il resto del testo come corpo. La riga vuota che separa il riassunto dal corpo \u00e8 critica (a meno che non si ometta del tutto il corpo); strumenti come rebase possono confondersi se li metti due insieme. Ulteriori paragrafi vengono dopo le righe vuote.. Firmato da: Il mio nome <myemail@example.org> Nell'esempio sopra, module dovrebbe essere il nome di un file o di una directory nel repository (senza un'estensione di file). Ad esempio, clocksync: fix di errore di battitura nella chiamata pause() al momento della connessione . Lo scopo di specificare un nome di modulo nel messaggio di commit \u00e8 di aiutare a fornire il contesto per i commenti di commit. \u00c8 importante avere una riga \"Signed-off-by\" su ogni commit - certifica che accetti il developer certificate of origin . Deve contenere il tuo vero nome (mi dispiace, niente pseudonimi o contributi anonimi) e contenere un indirizzo email corrente. Contribuire a Traduzioni Klipper \u00b6 Klipper-translations Project \u00e8 un progetto dedicato alla traduzione di Klipper in diverse lingue. Weblate ospita tutte le stringhe Gettext per la traduzione e la revisione. Le impostazioni locali possono essere visualizzate su klipper3d.org una volta che soddisfano i seguenti requisiti: 75% Copertura totale Tutti i titoli (H1) sono tradotti Una gerarchia di navigazione PR aggiornata nelle traduzioni klipper. Per ridurre la frustrazione di tradurre termini specifici del dominio e acquisire consapevolezza delle traduzioni in corso, puoi inviare un PR modificando il Klipper-translations Project readme.md . Una volta che una traduzione \u00e8 pronta, \u00e8 possibile apportare la modifica corrispondente al progetto Klipper. Se una traduzione esiste gi\u00e0 nel repository Klipper e non soddisfa pi\u00f9 l'elenco di controllo di cui sopra, verr\u00e0 contrassegnata come obsoleta dopo un mese senza aggiornamenti. Una volta soddisfatti i requisiti, \u00e8 necessario: aggiorna il repository di klipper-translations active_translations Opzionale: aggiungi un file manual-index.md nella cartella docs\\locals\\<lang> del repository klipper-translations per sostituire index.md specifico della lingua (il file index.md generato non viene visualizzato correttamente). Problemi noti: Al momento, non esiste un metodo per tradurre correttamente le immagini nella documentazione \u00c8 impossibile tradurre i titoli in mkdocs.yml.","title":"Contribuire a Klipper"},{"location":"CONTRIBUTING.html#contribuire-a-klipper","text":"Grazie per aver contribuito a Klipper! Questo documento descrive il processo per contribuire alle modifiche di Klipper. Consulta la contact page per informazioni sulla segnalazione di un problema o per i dettagli su come contattare gli sviluppatori.","title":"Contribuire a Klipper"},{"location":"CONTRIBUTING.html#panoramica-del-processo-di-contribuzione","text":"I contributi a Klipper seguono generalmente un processo di alto livello: Inizia creando una Richiesta pull GitHub quando un proposta \u00e8 pronta per la diffusione. Quando un reviewer \u00e8 disponibile per review l'invio, si assegner\u00e0 la richiesta pull su GitHub. L'obiettivo della revisione \u00e8 cercare i difetti e verificare che la proposta segua linee guida documentate. Dopo una revisione riuscita, il revisore \"approver\u00e0 la revisione\" su GitHub e un maintainer eseguir\u00e0 il commit della modifica al ramo principale di Klipper. Quando lavori sui miglioramenti, considera di iniziare (o contribuire a) un argomento su Klipper Discourse . Una discussione in corso sul forum pu\u00f2 migliorare la visibilit\u00e0 del lavoro di sviluppo e pu\u00f2 attirare altri interessati a testare nuovi lavori.","title":"Panoramica del processo di contribuzione"},{"location":"CONTRIBUTING.html#cosa-aspettarsi-da-una-revisione","text":"I contributi a Klipper vengono rivisti prima del merging. L'obiettivo principale del processo di revisione \u00e8 verificare la presenza di difetti e verificare che la presentazione segua le linee guida specificate nella documentazione di Klipper. Resta inteso che ci sono molti modi per portare a termine un compito; non \u00e8 intenzione della revisione discutere la \"migliore\" implementazione. Ove possibile, sono preferibili discussioni di revisione incentrate su fatti e misurazioni. La maggior parte degli invii otterr\u00e0 in feedback da una recensione. Preparati a ottenere feedback, fornire ulteriori dettagli e aggiornare l'invio, se necessario. Cose comuni che un revisore cercher\u00e0: L'invio \u00e8 privo di difetti ed \u00e8 pronto per essere diffuso?I realizzatori dei contributi sono tenuti a testare le loro modifiche prima dell'invio. I revisori cercano gli errori, ma in generale non testano gli invii. Un invio accettato viene spesso distribuito a migliaia di stampanti entro poche settimane dall'accettazione. La qualit\u00e0 degli invii \u00e8 quindi considerata una priorit\u00e0. Il repository GitHub principale Klipper3d/klipper non accetta lavori sperimentali. I realizzatori di contributi devono eseguire la sperimentazione, il debug e il test nei propri repository. Il server Klipper Discourse \u00e8 un buon posto per aumentare la consapevolezza del nuovo lavoro e per trovare utenti interessati a fornire feedback nel mondo reale. Gli invii devono superare tutti i test di regressione . Quando si corregge un difetto nel codice, i submitters dovrebbero avere una comprensione generale della causa principale di tale difetto e la correzione dovrebbe mirare a tale causa principale. Gli contributi di codice non devono contenere codice di debug eccessivo, opzioni di debug o registrazione del debug in fase di runtime. I commenti negli invii di codice dovrebbero concentrarsi sul miglioramento della manutenzione del codice. Gli invii non devono contenere \"codice commentato\" n\u00e9 commenti eccessivi che descrivono implementazioni passate. Non dovrebbero esserci commenti \"todo\" eccessivi. Gli aggiornamenti alla documentazione non devono dichiarare che si tratta di un \"work in progress\". L'invio fornisce un vantaggio \"ad alto impatto\" per gli utenti del mondo reale che svolgono attivit\u00e0 nel mondo reale?I revisori devono identificare, almeno nella loro mente, approssimativamente \"chi \u00e8 il pubblico di destinazione\", una scala approssimativa delle \"dimensioni di quel pubblico\", il \"beneficio\" che otterranno, come \"il beneficio viene misurato\" e i \"risultati di tali prove di misurazione\". Nella maggior parte dei casi questo sar\u00e0 ovvio sia per il mittente che per il revisore e non \u00e8 esplicitamente dichiarato durante una revisione. Le proposte al ramo principale di Klipper dovrebbero avere un pubblico di destinazione degno di nota. Come \"regola pratica\" generale, gli invii dovrebbero avere come target una base di utenti di almeno 100 utenti del mondo reale. Se un revisore chiede dettagli sul \"beneficio\" di un invio, non considerarlo una critica. Essere in grado di comprendere i vantaggi reali di un cambiamento \u00e8 una parte naturale di una revisione. Quando si discute dei benefici \u00e8 preferibile discutere di \"fatti e misurazioni\". In generale, i revisori non cercano risposte del modulo \"qualcuno potrebbe trovare utile l'opzione X\", n\u00e9 cercano risposte del modulo \"questo invio aggiunge una funzionalit\u00e0 implementata dal firmware X\". Invece, \u00e8 generalmente preferibile discutere i dettagli su come \u00e8 stato misurato il miglioramento della qualit\u00e0 e quali sono stati i risultati di tali misurazioni, ad esempio \"i test sulle stampanti Acme X1000 mostrano angoli migliorati come si vede in figura...\", o ad esempio \" il tempo di stampa dell'oggetto reale X su una stampante Foomatic X900 \u00e8 passato da 4 ore a 3,5 ore\". Resta inteso che i test di questo tipo possono richiedere molto tempo e sforzi. Alcune delle caratteristiche pi\u00f9 importanti di Klipper hanno richiesto mesi di discussioni, rielaborazioni, test e documentazione prima di essere fuse nel ramo principale. Tutti i nuovi moduli, opzioni di configurazione, comandi, parametri di comando e documenti dovrebbero avere un \"impatto elevato\". Non vogliamo appesantire gli utenti con opzioni che non possono configurare ragionevolmente n\u00e9 vogliamo appesantirli con opzioni che non forniscono un vantaggio notevole. Un revisore pu\u00f2 chiedere chiarimenti su come un utente deve configurare un'opzione - una risposta ideale conterr\u00e0 dettagli sul processo - ad esempio, \"gli utenti del MegaX500 dovrebbero impostare l'opzione X su 99,3 mentre gli utenti dell'Elite100Y dovrebbero calibrare l'opzione X usando la procedura ...\". Se l'obiettivo di un'opzione \u00e8 rendere il codice pi\u00f9 modulare, \u00e8 preferibile utilizzare le costanti del codice invece delle opzioni di configurazione rivolte all'utente. Nuovi moduli, nuove opzioni e nuovi parametri non dovrebbero fornire funzionalit\u00e0 simili ai moduli esistenti: se le differenze sono arbitrarie, \u00e8 preferibile utilizzare il sistema esistente o effettuare refactoring del codice esistente. Il copyright dell'invio \u00e8 chiaro, non gratuito e compatibile?I nuovi file C e Python dovrebbero avere una dichiarazione di copyright univoca. Vedere i file esistenti per il formato preferito. \u00c8 sconsigliato dichiarare un copyright su un file esistente quando si apportano modifiche minori a quel file. Il codice prelevato da fonti di terze parti deve essere compatibile con la licenza Klipper (GNU GPLv3). Grandi aggiunte di codice di terze parti dovrebbero essere aggiunte alla directory lib/ (e seguire il formato descritto in lib/README ). I mittenti devono fornire una Signed-off-line utilizzando il loro vero nome completo. Indica che il mittente \u00e8 d'accordo con il developer certificate of origin . L'invio segue le linee guida specificate nella documentazione di Klipper?In particolare, il codice deve seguire le linee guida in e i file di configurazione devono seguire le linee guida in . La documentazione di Klipper \u00e8 aggiornata per riflettere le nuove modifiche?Come minimo, la documentazione di riferimento deve essere aggiornata con le relative modifiche al codice: Tutti i comandi e i relativi parametri devono essere documentati in . Tutti i moduli rivolti all'utente e i relativi parametri di configurazione devono essere documentati in . Tutte le \"variabili di stato\" esportate devono essere documentate in . Tutti i nuovi \"webhook\" e i relativi parametri devono essere documentati in . Qualsiasi modifica che apporti una modifica non compatibile con le versioni precedenti a un comando o a un'impostazione del file di configurazione deve essere documentata in . I nuovi documenti dovrebbero essere aggiunti a e all'indice del sito web docs/_klipper3d/mkdocs.yml . I commit sono ben formati, affrontano un singolo argomento per commit e sono indipendenti?I messaggi di commit devono seguire il formato preferito . I commit non devono avere un conflitto in fase di merge. Le nuove aggiunte al ramo principale di Klipper vengono sempre eseguite tramite un \"rebase\" o \"squash and rebase\". In genere non \u00e8 necessario che i propositori uniscano nuovamente il loro invio ad ogni aggiornamento al repository principale di Klipper. Tuttavia, se c'\u00e8 un conflitto in fase di merge, si consiglia ai mittenti di usare git rebase per risolvere il conflitto. Ogni commit dovrebbe affrontare una singola modifica di alto livello. Le modifiche di grandi dimensioni dovrebbero essere suddivise in pi\u00f9 commit indipendenti. Ogni commit dovrebbe \"stare in piedi da solo\" in modo che strumenti come git bisect e git revert funzionino in modo affidabile. Le modifiche agli spazi bianchi non devono essere mescolate con le modifiche funzionali. In generale, le modifiche agli spazi bianchi gratuite non sono accettate a meno che non provengano dal \"proprietario\" stabilito del codice da modificare. Klipper non implementa una rigida \"guida allo stile di codifica\", ma le modifiche al codice esistente dovrebbero seguire il flusso di codice di alto livello, lo stile di indentazione del codice e il formato di quel codice esistente. Gli invii di nuovi moduli e sistemi hanno una maggiore flessibilit\u00e0 nello stile di codifica, ma \u00e8 preferibile che il nuovo codice segua uno stile internamente coerente e generalmente segua le norme di codifica. Non \u00e8 un obiettivo di una revisione discutere di \"migliori implementazioni\". Tuttavia, se un revisore ha difficolt\u00e0 a comprendere l'implementazione di un invio, pu\u00f2 richiedere modifiche per rendere l'implementazione pi\u00f9 trasparente. In particolare, se i revisori non riescono a convincersi che un contributo \u00e8 privo di difetti, potrebbero essere necessarie modifiche. Come parte di una revisione, un revisore pu\u00f2 creare una richiesta pull alternativa per un argomento. Questo pu\u00f2 essere fatto per evitare eccessivi \"avanti e indietro\" su elementi procedurali minori e quindi snellire il processo di proposta. Pu\u00f2 anche essere fatto perch\u00e9 la discussione ispira un revisore a costruire un'implementazione alternativa. Entrambe le situazioni sono il normale risultato di una revisione e non devono essere considerate critiche alla proposta originale.","title":"Cosa aspettarsi da una revisione"},{"location":"CONTRIBUTING.html#aiutare-con-le-revisioni","text":"Apprezziamo l'aiuto con le recensioni! Non \u00e8 necessario essere un revisore elencato per eseguire una revisione. I propositori di richieste pull di GitHub sono inoltre incoraggiati a rivedere i propri invii. Per aiutare con una revisione, segui i passaggi descritti in cosa aspettarsi in una revisione per verificare l'invio. Dopo aver completato la revisione, aggiungi un commento alla richiesta pull di GitHub con i tuoi risultati. Se l'invio supera la revisione, si prega di dichiararlo esplicitamente nel commento, ad esempio qualcosa del tipo \"Ho esaminato questa modifica in base ai passaggi del documento CONTRIBUTING e tutto mi sembra a posto\". Se non \u00e8 possibile completare alcuni passaggi della revisione, indicare esplicitamente quali passaggi sono stati rivisti e quali non sono stati rivisti, ad esempio qualcosa del tipo \"Non ho verificato la presenza di difetti nel codice, ma ho rivisto tutto il resto nel documento CONTRIBUTING e sembra buono\". Apprezziamo anche il test degli invii. Se il codice \u00e8 stato testato, aggiungi un commento alla richiesta pull di GitHub con i risultati del tuo test: successo o fallimento. Si prega di affermare esplicitamente che il codice \u00e8 stato testato e i risultati, ad esempio qualcosa del tipo \"Ho testato questo codice sulla mia stampante Acme900Z con una stampa a vaso e i risultati sono stati buoni\".","title":"Aiutare con le revisioni"},{"location":"CONTRIBUTING.html#revisori","text":"I \"revisori\" di Klipper sono: Nome GitHub Id Aree di interesse Dmitry Butyugin @dmbutyugin Input shaping, test di risonanza, cinematica Eric Callahan @Arksine Livellamento del piatto, flashing MCU Kevin O'Connor @KevinOConnor Core motion system, codice microcontrollore Paul McGowan @mental405 File di configurazione, documentazione Si prega di non eseguire il \"ping\" di nessuno dei revisori e di non indirizzare gli invii a loro. Tutti i revisori controllano i forum e le PR e si occuperanno delle revisioni quando ne avranno il tempo. I \"manutentori\" di Klipper sono: Nome nome GitHub Kevin O'Connor @KevinOConnor","title":"Revisori"},{"location":"CONTRIBUTING.html#formato-dei-messaggi-di-commit","text":"Ogni commit dovrebbe avere un messaggio di commit formattato in modo simile al seguente: modulo: Riepilogo breve (50 caratteri o meno) in maiuscolo Testo esplicativo pi\u00f9 dettagliato, se necessario. Incolonna a circa 75 caratteri o gi\u00f9 di l\u00ec. In alcuni contesti, la prima riga \u00e8 trattata come l'oggetto di un'e-mail e il resto del testo come corpo. La riga vuota che separa il riassunto dal corpo \u00e8 critica (a meno che non si ometta del tutto il corpo); strumenti come rebase possono confondersi se li metti due insieme. Ulteriori paragrafi vengono dopo le righe vuote.. Firmato da: Il mio nome <myemail@example.org> Nell'esempio sopra, module dovrebbe essere il nome di un file o di una directory nel repository (senza un'estensione di file). Ad esempio, clocksync: fix di errore di battitura nella chiamata pause() al momento della connessione . Lo scopo di specificare un nome di modulo nel messaggio di commit \u00e8 di aiutare a fornire il contesto per i commenti di commit. \u00c8 importante avere una riga \"Signed-off-by\" su ogni commit - certifica che accetti il developer certificate of origin . Deve contenere il tuo vero nome (mi dispiace, niente pseudonimi o contributi anonimi) e contenere un indirizzo email corrente.","title":"Formato dei messaggi di commit"},{"location":"CONTRIBUTING.html#contribuire-a-traduzioni-klipper","text":"Klipper-translations Project \u00e8 un progetto dedicato alla traduzione di Klipper in diverse lingue. Weblate ospita tutte le stringhe Gettext per la traduzione e la revisione. Le impostazioni locali possono essere visualizzate su klipper3d.org una volta che soddisfano i seguenti requisiti: 75% Copertura totale Tutti i titoli (H1) sono tradotti Una gerarchia di navigazione PR aggiornata nelle traduzioni klipper. Per ridurre la frustrazione di tradurre termini specifici del dominio e acquisire consapevolezza delle traduzioni in corso, puoi inviare un PR modificando il Klipper-translations Project readme.md . Una volta che una traduzione \u00e8 pronta, \u00e8 possibile apportare la modifica corrispondente al progetto Klipper. Se una traduzione esiste gi\u00e0 nel repository Klipper e non soddisfa pi\u00f9 l'elenco di controllo di cui sopra, verr\u00e0 contrassegnata come obsoleta dopo un mese senza aggiornamenti. Una volta soddisfatti i requisiti, \u00e8 necessario: aggiorna il repository di klipper-translations active_translations Opzionale: aggiungi un file manual-index.md nella cartella docs\\locals\\<lang> del repository klipper-translations per sostituire index.md specifico della lingua (il file index.md generato non viene visualizzato correttamente). Problemi noti: Al momento, non esiste un metodo per tradurre correttamente le immagini nella documentazione \u00c8 impossibile tradurre i titoli in mkdocs.yml.","title":"Contribuire a Traduzioni Klipper"},{"location":"Code_Overview.html","text":"Panoramica del codice \u00b6 Questo documento descrive il formato generale del codice e il flusso principale del codice di Klipper. Directory Layout \u00b6 La directory src/ contiene il sorgente C per il codice del microcontrollore. src/atsam/ , src/atsamd/ , src/avr/ , src/linux/ , src/lpc176x/ , src/ Le directory pru/ e src/stm32/ contengono il codice del microcontrollore specifico dell'architettura. src/simulator/ contiene stub di codice che consentono la compilazione di test del microcontrollore su altre architetture. La directory src/generic/ contiene codice di supporto che pu\u00f2 essere utile in diverse architetture. La build fa in modo che le include di \"board/somefile.h\" guardino prima nella directory dell'architettura corrente (ad esempio, src/avr/somefile.h) e poi nella directory generica (ad esempio, src/generic/somefile.h). La directory klippy/ contiene il software host. La maggior parte del software host \u00e8 scritto in Python, tuttavia la directory klippy/chelper/ contiene alcuni helper del codice C. La directory klippy/kinematics/ contiene il codice della cinematica del robot. La directory klippy/extras/ contiene i \"moduli\" estensibili del codice host. La directory lib/ contiene il codice della libreria di terze parti esterne necessarie per creare alcune destinazioni. La directory config/ contiene file di configurazione della stampante di esempio. La directory scripts/ contiene script di build-time utili per compilare il codice del microcontrollore. La directory test/ contiene test case automatizzati. Durante la compilazione, la build potrebbe creare una directory out/ . Questa contiene oggetti temporanei di compilazione. L'oggetto microcontrollore finale che viene creato \u00e8 out/klipper.elf.hex su AVR e out/klipper.bin su ARM. Flusso del codice del microcontrollore \u00b6 L'esecuzione del codice del microcontrollore inizia nel codice specifico dell'architettura (ad esempio, src/avr/main.c ) che alla fine chiama sched_main() che si trova in src/sched.c . Il codice sched_main() inizia eseguendo tutte le funzioni che sono state contrassegnate con la macro DECL_INIT(). Quindi continua a eseguire ripetutamente tutte le funzioni contrassegnate con la macro DECL_TASK(). Una delle principali funzioni dell'attivit\u00e0 \u00e8 command_dispatch() che si trova in src/command.c . Questa funzione viene richiamata dal codice input/output specifico della scheda (es. src/avr/serial.c , src/generic/serial_irq.c ) ed esegue le funzioni di comando associate ai comandi trovati nel flusso di input. Le funzioni di comando vengono dichiarate utilizzando la macro DECL_COMMAND() (consultare il documento protocol per ulteriori informazioni). Le funzioni task, init e comando vengono sempre eseguite con gli interrupt abilitati (tuttavia, possono disabilitare temporaneamente gli interrupt se necessario). Queste funzioni dovrebbero evitare lunghe pause, ritardi o eseguire lavori che durano un tempo significativo. (Lunghi ritardi in queste funzioni di \"attivit\u00e0\" provocano un jitter di pianificazione per altre \"attivit\u00e0\" - ritardi superiori a 100us possono diventare evidenti, ritardi superiori a 500us possono causare ritrasmissioni dei comandi, ritardi superiori a 100 ms possono causare riavvii del watchdog.) Queste funzioni pianificano il lavoro a orari specifici programmando i timer. Le funzioni timer vengono pianificate chiamando sched_add_timer() (che si trova in src/sched.c ). Il codice di pianificazione far\u00e0 in modo che la funzione data venga chiamata all'ora richiesta. Gli interrupt timer sono inizialmente gestiti in un gestore di interrupt specifico dell'architettura (ad esempio, src/avr/timer.c ) che chiama sched_timer_dispatch() situato in src/sched.c . L'interruzione del timer porta all'esecuzione delle funzioni del timer di pianificazione. Le funzioni timer vengono eseguite sempre con gli interrupt disabilitati. Le funzioni del timer dovrebbero sempre completarsi entro pochi microsecondi. Al completamento dell'evento timer, la funzione pu\u00f2 scegliere di riprogrammare se stessa. Nel caso in cui venga rilevato un errore, il codice pu\u00f2 invocare shutdown() (una macro che chiama sched_shutdown() situata in src/sched.c ). Il richiamo di shutdown() provoca l'esecuzione di tutte le funzioni contrassegnate con la macro DECL_SHUTDOWN(). Le funzioni di spegnimento vengono eseguite sempre con gli interrupt disabilitati. Gran parte delle funzionalit\u00e0 del microcontrollore implica il lavoro con pin di input/output per uso generico (GPIO). Per astrarre il codice specifico dell'architettura di basso livello dal codice dell'attivit\u00e0 di alto livello, tutti gli eventi GPIO sono implementati in wrapper specifici dell'architettura (ad esempio, src/avr/gpio.c ). Il codice \u00e8 compilato con l'ottimizzazione \"-flto -fwhole-program\" di gcc che fa un ottimo lavoro di inlining delle funzioni tra le unit\u00e0 di compilazione, quindi la maggior parte di queste minuscole funzioni gpio sono integrate nei loro chiamanti e non ci sono costi di runtime per l'utilizzo loro. Panoramica del codice Klippy \u00b6 Il codice host (Klippy) deve essere eseguito su un computer a basso costo (come un Raspberry Pi) abbinato al microcontrollore. Il codice \u00e8 scritto principalmente in Python, tuttavia utilizza CFFI per implementare alcune funzionalit\u00e0 nel codice C. L'esecuzione iniziale comincia in klippy/klippy.py . Questo legge gli argomenti della riga di comando, apre il file di configurazione della stampante, crea un'istanza degli oggetti principali della stampante e avvia la connessione seriale. L'esecuzione principale dei comandi G-code \u00e8 nel metodo process_commands() in klippy/gcode.py . Questo codice traduce i comandi del codice G in chiamate a oggetti stampante, che spesso traducono le azioni in comandi da eseguire sul microcontrollore (come dichiarato tramite la macro DECL_COMMAND nel codice del microcontrollore). Ci sono quattro thread nel codice host di Klippy. Il thread principale gestisce i comandi gcode in arrivo. Un secondo thread (che risiede interamente nel codice C klippy/chelper/serialqueue.c ) gestisce l'IO di basso livello con la porta seriale. Il terzo thread viene utilizzato per elaborare i messaggi di risposta dal microcontrollore nel codice Python (vedi klippy/serialhdl.py ). Il quarto thread scrive i messaggi di debug nel log (vedi klippy/queuelogger.py ) in modo che gli altri thread non blocchino mai le scritture del log. Flusso di codice di un comando di spostamento \u00b6 Un tipico movimento della stampante inizia quando viene inviato un comando \"G1\" all'host Klippy e si completa quando vengono prodotti i corrispondenti impulsi di passo sul microcontrollore. Questa sezione delinea il flusso di codice di un tipico comando di spostamento. Il documento cinematica fornisce ulteriori informazioni sulla meccanica dei movimenti. L'elaborazione di un comando di spostamento inizia in gcode.py. L'obiettivo di gcode.py \u00e8 tradurre il G-code in chiamate interne. Un comando G1 invocher\u00e0 cmd_G1() in klippy/extras/gcode_move.py. Il codice gcode_move.py gestisce le modifiche all'origine (ad esempio, G92), le modifiche alle posizioni relative rispetto a quelle assolute (ad esempio, G90) e le modifiche alle unit\u00e0 (ad esempio, F6000=100mm/s). Il percorso del codice per una mossa \u00e8: _process_data() -> _process_commands() -> cmd_G1() . Infine viene invocata la classe ToolHead per eseguire la richiesta effettiva: cmd_G1() -> ToolHead.move() La classe ToolHead (in toolhead.py) gestisce \"look-ahead\" e tiene traccia dei tempi delle azioni di stampa. Il percorso di codice principale per una mossa \u00e8: ToolHead.move() -> MoveQueue.add_move() -> MoveQueue.flush() -> Move.set_junction() -> ToolHead._process_moves() . ToolHead.move() crea un oggetto Move() con i parametri del movimento (in spazio cartesiano e in unit\u00e0 di secondi e millimetri). Alla classe cinematica viene data l'opportunit\u00e0 di controllare ogni movimento ( ToolHead.move() -> kin.check_move() ). Le classi cinematiche si trovano nella directory klippy/cinematica/. Il codice check_move() pu\u00f2 generare un errore se il movimento non \u00e8 valida. Se check_move() viene completato correttamente, la cinematica sottostante deve essere in grado di gestire lo spostamento. MoveQueue.add_move() posiziona l'oggetto di spostamento nella coda \"look-ahead\". MoveQueue.flush() determina le velocit\u00e0 di inizio e fine di ogni movimento. Move.set_junction() implementa il \"generatore di trapezi\" per il movimento. Il \"generatore trapezoidale\" suddivide ogni movimento in tre parti: una fase di accelerazione costante, seguita da una fase di velocit\u00e0 costante, seguita da una fase di decelerazione costante. Ogni mossa contiene queste tre fasi in questo ordine, ma alcune fasi possono avere durata zero. Quando viene chiamato ToolHead._process_moves(), tutto ci\u00f2 che riguarda lo spostamento \u00e8 noto: la sua posizione iniziale, la sua posizione finale, la sua accelerazione, la sua velocit\u00e0 di inizio/crociera/finale e la distanza percorsa durante l'accelerazione/crociera/decelerazione. Tutte le informazioni sono memorizzate nella classe Move() e sono nello spazio cartesiano in unit\u00e0 di millimetri e secondi. Klipper utilizza un risolutore iterativo per generare i tempi di passaggio per ogni stepper. Per motivi di efficienza, i tempi di impulso stepper sono generati in codice C. I movimenti vengono prima posizionati su una \"coda di movimento trapezoidale\": ToolHead._process_moves() -> trapq_append() (in klippy/chelper/trapq.c). Vengono quindi generati i tempi di passaggio: ToolHead._process_moves() -> ToolHead._update_move_time() -> MCU_Stepper.generate_steps() -> itersolve_generate_steps() -> itersolve_gen_steps_range() (in klippy/chelper/itersolve.c). L'obiettivo del risolutore iterativo \u00e8 trovare i tempi di passaggio data una funzione che calcola una posizione passo-passo da un tempo. Questo viene fatto \"indovinando\" ripetutamente varie volte fino a quando la formula della posizione dello stepper non restituisce la posizione desiderata del passaggio successivo sullo stepper. Il feedback prodotto da ciascuna ipotesi viene utilizzato per migliorare le ipotesi future in modo che il processo converga rapidamente al tempo desiderato. Le formule della posizione dello stepper cinematico si trovano nella directory klippy/chelper/ (ad es. kin_cart.c, kin_corexy.c, kin_delta.c, kin_extruder.c). Si noti che l'estrusore \u00e8 gestito nella propria classe cinematica: ToolHead._process_moves() -> PrinterExtruder.move() . Poich\u00e9 la classe Move() specifica l'esatto tempo di movimento e poich\u00e9 gli impulsi di passo vengono inviati al microcontrollore con una tempistica specifica, i movimenti passo-passo prodotti dalla classe estrusore saranno sincronizzati con il movimento della testa anche se il codice viene mantenuto separato. Dopo che il risolutore iterativo ha calcolato i tempi di passaggio, questi vengono aggiunti a un array: itersolve_gen_steps_range() -> stepcompress_append() (in klippy/chelper/stepcompress.c). L'array (struct stepcompress.queue) memorizza i corrispondenti tempi del contatore dell'orologio del microcontrollore per ogni passaggio. Qui il valore del \"contatore orologio del microcontrollore\" corrisponde direttamente al contatore hardware del microcontrollore - \u00e8 relativo a quando il microcontrollore \u00e8 stato acceso l'ultima volta. Il prossimo passo importante \u00e8 comprimere i passaggi: stepcompress_flush() -> compress_bisect_add() (in klippy/chelper/stepcompress.c). Questo codice genera e codifica una serie di comandi \"queue_step\" del microcontrollore che corrispondono all'elenco dei tempi di stepper compilati nella fase precedente. Questi comandi \"queue_step\" vengono quindi accodati, assegnati a priorit\u00e0 e inviati al microcontrollore (tramite stepcompress.c:steppersync e serialqueue.c:serialqueue). L'elaborazione dei comandi queue_step sul microcontrollore inizia in src/command.c che analizza il comando e chiama command_queue_step() . Il codice command_queue_step() (in src/stepper.c) aggiunge semplicemente i parametri di ogni comando queue_step a una coda per stepper. In condizioni normali, il comando queue_step viene analizzato e messo in coda almeno 100 ms prima dell'ora del suo primo passaggio. Infine, la generazione degli eventi stepper viene eseguita in stepper_event() . Viene chiamato dall'interruzione del timer hardware all'ora pianificata del primo passaggio. Il codice stepper_event() genera un impulso di passaggio e quindi si riprogramma per essere eseguito al momento dell'impulso di passaggio successivo per i parametri queue_step specificati. I parametri per ogni comando queue_step sono \"interval\", \"count\" e \"add\". Ad alto livello, stepper_event() esegue quanto segue, 'count' volte: do_step(); next_wake_time = last_wake_time + intervallo; intervallo += aggiungi; Quanto sopra pu\u00f2 sembrare un sacco di complessit\u00e0 per eseguire un movimento. Tuttavia, le uniche parti veramente interessanti sono nelle classi ToolHead e cinematica. \u00c8 questa parte del codice che specifica i movimenti e le loro tempistiche. Le restanti parti dell'elaborazione sono per lo pi\u00f9 solo comunicazioni e collegamenti. Aggiunta di un modulo host \u00b6 Il codice host Klippy ha una capacit\u00e0 di caricamento dinamico dei moduli. Se nel file di configurazione della stampante viene trovata una sezione di configurazione denominata \"[my_module]\", il software tenter\u00e0 automaticamente di caricare il modulo python klippy/extras/my_module.py . Questo sistema di moduli \u00e8 il metodo preferito per aggiungere nuove funzionalit\u00e0 a Klipper. Il modo pi\u00f9 semplice per aggiungere un nuovo modulo \u00e8 utilizzare un modulo esistente come riferimento - vedere klippy/extras/servo.py come esempio. Possono essere utili anche: L'esecuzione del modulo inizia nella funzione load_config() a livello di modulo (per le sezioni di configurazione del modulo [my_module]) o in load_config_prefix() (per le sezioni di configurazione del modulo [my_module my_name]). A questa funzione viene passato un oggetto \"config\" e deve restituire un nuovo \"oggetto stampante\" associato alla sezione di configurazione specificata. Durante il processo di creazione di un'istanza di un nuovo oggetto stampante, l'oggetto di configurazione pu\u00f2 essere utilizzato per leggere i parametri dalla sezione di configurazione specificata. Questo viene fatto usando i metodi config.get() , config.getfloat() , config.getint() , ecc. Assicurati di leggere tutti i valori dalla configurazione durante la costruzione dell'oggetto stampante: se l'utente specifica un parametro di configurazione che non viene letto durante questa fase, si presumer\u00e0 che si tratti di un errore di battitura nella configurazione e verr\u00e0 generato un errore. Usa il metodo config.get_printer() per ottenere un riferimento alla classe principale \"printer\". Questa classe \"stampante\" memorizza i riferimenti a tutti gli \"oggetti stampante\" di cui \u00e8 stata creata un'istanza. Usa il metodo printer.lookup_object() per trovare riferimenti ad altri oggetti stampante. Quasi tutte le funzionalit\u00e0 (anche i moduli cinematici principali) sono incapsulate in uno di questi oggetti stampante. Si noti, tuttavia, che quando viene istanziato un nuovo modulo, non saranno stati istanziati tutti gli altri oggetti stampante. I moduli \"gcode\" e \"pins\" saranno sempre disponibili, ma per altri moduli \u00e8 una buona idea rinviare la ricerca. Registra i gestori di eventi usando il metodo printer.register_event_handler() se il codice deve essere chiamato durante gli \"events\" generati da altri oggetti stampante. Ogni nome di evento \u00e8 una stringa e, per convenzione, \u00e8 il nome del modulo sorgente principale che genera l'evento insieme a un nome breve per l'azione che si sta verificando (ad esempio, \"klippy:connect\"). I parametri passati a ciascun gestore di eventi sono specifici dell'evento dato (cos\u00ec come la gestione delle eccezioni e il contesto di esecuzione). Due eventi di avvio comuni sono: klippy:connect - Questo evento viene generato dopo che tutti gli oggetti stampante sono stati istanziati. Viene comunemente utilizzato per cercare altri oggetti stampante, verificare le impostazioni di configurazione ed eseguire un \"handshake\" iniziale con l'hardware della stampante. klippy:ready - Questo evento viene generato dopo che tutti i gestori di connessione sono stati completati correttamente. Indica che la stampante sta passando a uno stato pronto per gestire le normali operazioni. Non generare un errore in questo callback. Se c'\u00e8 un errore nella configurazione dell'utente, assicurati di sollevarlo durante le fasi load_config() o \"connect event\". Utilizzare raise config.error(\"my error\") o raise printer.config_error (\"my error\") per segnalare l'errore. Utilizzare il modulo \"pin\" per configurare un pin su un microcontrollore. Questo \u00e8 in genere fatto con qualcosa di simile a printer.lookup_object(\"pins\").setup_pin(\"pwm\", config.get(\"my_pin\")) . L'oggetto restituito pu\u00f2 quindi essere comandato in fase di esecuzione. Se l'oggetto stampante definisce un metodo get_status() , il modulo pu\u00f2 esportare informazioni sullo stato tramite macro e tramite Server API . Il metodo get_status() deve restituire un dizionario Python con chiavi che sono stringhe e valori che sono interi, float, stringhe, elenchi, dizionari, True, False o None. \u00c8 possibile utilizzare anche tuple (e tuple con nome) (appaiono come elenchi quando si accede tramite il server API). Gli elenchi e i dizionari esportati devono essere trattati come \"immutabili\" - se il loro contenuto cambia, \u00e8 necessario restituire un nuovo oggetto da get_status() , altrimenti il server API non rilever\u00e0 tali modifiche. Se il modulo necessita dell'accesso alla temporizzazione del sistema o a descrittori di file esterni, utilizzare printer.get_reactor() per ottenere l'accesso alla classe globale \"event reactor\". Questa classe reattore consente di programmare i timer, attendere l'input sui descrittori di file e di \"sopprimere\" il codice host. Non utilizzare variabili globali. Tutto lo stato dovrebbe essere memorizzato nell'oggetto stampante restituito dalla funzione load_config() . Questo \u00e8 importante, altrimenti il comando RESTART potrebbe non funzionare come previsto. Inoltre, per ragioni simili, se vengono aperti file (o socket) esterni, assicurati di registrare un gestore di eventi \"klippy:disconnect\" e chiuderli da quella richiamata. Evitare di accedere alle variabili dei membri interni (o di chiamare metodi che iniziano con un trattino basso) di altri oggetti stampante. L'osservanza di questa convenzione semplifica la gestione delle modifiche future. Si consiglia di assegnare un valore a tutte le variabili membro nel costruttore Python delle classi Python. (E quindi evita di utilizzare la capacit\u00e0 di Python di creare dinamicamente nuove variabili membro.) Se una variabile Python deve memorizzare un valore in virgola mobile, si consiglia di assegnare e manipolare sempre quella variabile con costanti in virgola mobile (e non utilizzare mai costanti intere). Ad esempio, preferisci self.speed = 1. su self.speed = 1 e preferisci self.speed = 2. * x su self.speed = 2 * x . L'uso coerente di valori in virgola mobile pu\u00f2 evitare difficolt\u00e0 di debug nelle conversioni di tipo Python. Se invii il modulo per l'inclusione nel codice Klipper principale, assicurati di inserire un avviso di copyright nella parte superiore del modulo. Vedere i moduli esistenti per il formato preferito. Aggiunta di una nuova cinematica \u00b6 Questa sezione fornisce alcuni suggerimenti sull'aggiunta del supporto a Klipper per ulteriori tipi di cinematica della stampante. Questo tipo di attivit\u00e0 richiede un'ottima comprensione delle formule matematiche per la cinematica di destinazione. Richiede anche capacit\u00e0 di sviluppo software, sebbene sia necessario solo aggiornare il software host. Passi utili: Inizia studiando la sezione \" flusso di codice di un movimento \" e il documento di cinematica . Esaminare le classi cinematiche esistenti nella directory klippy/kinematics/. Le classi cinematiche hanno il compito di convertire una mossa in coordinate cartesiane nel movimento su ogni stepper. Si dovrebbe essere in grado di copiare uno di questi file come punto di partenza. Implementa in C le funzioni di posizione cinematica dello stepper per ogni stepper se non sono gi\u00e0 disponibili (vedi kin_cart.c, kin_corexy.c e kin_delta.c in klippy/chelper/). La funzione dovrebbe chiamare move_get_coord() per convertire un dato tempo di spostamento (in secondi) in una coordinata cartesiana (in millimetri), e quindi calcolare la posizione dello stepper desiderata (in millimetri) da quella coordinata cartesiana. Implementa il metodo calc_position() nella nuova classe cinematica. Questo metodo calcola la posizione della testa di stampa in coordinate cartesiane dalla posizione di ogni stepper. Non \u00e8 necessario che sia efficiente poich\u00e9 in genere viene chiamato solo durante le operazioni di homing e probing. Altri metodi. Implementa i metodi check_move() , get_status() , get_steppers() , home() e set_position() . Queste funzioni sono in genere utilizzate per fornire verifiche cinematiche specifiche. Tuttavia, all'inizio dello sviluppo \u00e8 possibile utilizzare il codice boilerplate qui. Implementare casi di prova. Crea un file g-code con una serie di movimenti che possono testare casi importanti per la cinematica data. Segui la documentazione di debug per convertire questo file di codice G in comandi del microcontrollore. Questo \u00e8 utile per esercitare corner case e per verificare la presenza di regressioni. Porting su un nuovo microcontrollore \u00b6 Questa sezione fornisce alcuni suggerimenti sul porting del codice del microcontrollore di Klipper su una nuova architettura. Questo tipo di attivit\u00e0 richiede una buona conoscenza dello sviluppo embedded e un accesso diretto al microcontrollore di destinazione. Passi utili: Inizia identificando eventuali librerie di terze parti che verranno utilizzate durante il trasferimento. Esempi comuni includono wrapper \"CMSIS\" e librerie \"HAL\" del produttore. Tutto il codice di terze parti deve essere compatibile con GNU GPLv3. Il codice di terze parti dovrebbe essere salvato nella directory lib/ di Klipper. Aggiorna il file lib/README con informazioni su dove e quando \u00e8 stata ottenuta la libreria. \u00c8 preferibile copiare il codice nel repository di Klipper senza modifiche, ma se sono necessarie modifiche, tali modifiche dovrebbero essere elencate esplicitamente nel file lib/README. Crea una nuova sottodirectory di architettura nella directory src/ e aggiungi il supporto iniziale di Kconfig e Makefile. Utilizzare le architetture esistenti come guida. src/simulator fornisce un esempio di base di un punto di partenza minimo. Il primo compito di programmazione \u00e8 portare il supporto di comunicazione alla scheda di destinazione. Questo \u00e8 il passo pi\u00f9 difficile in un nuovo porting. Una volta che la comunicazione di base funziona, i passaggi rimanenti tendono a essere molto pi\u00f9 semplici. \u00c8 tipico utilizzare un dispositivo seriale di tipo UART durante lo sviluppo iniziale poich\u00e9 questi tipi di dispositivi hardware sono generalmente pi\u00f9 facili da abilitare e controllare. Durante questa fase, fai un uso generoso del codice di supporto dalla directory src/generic/ (controlla come src/simulator/Makefile include il codice C generico nella build). \u00c8 inoltre necessario definire timer_read_time() (che restituisce l'orologio di sistema corrente) in questa fase, ma non \u00e8 necessario supportare completamente la gestione di timer irq. Acquisisci familiarit\u00e0 con lo strumento console.py (come descritto nel documento di debug ) e verifica la connettivit\u00e0 al microcontrollore con esso. Questo strumento traduce il protocollo di comunicazione del microcontrollore di basso livello in un formato leggibile dall'uomo. Aggiungi il supporto per l'invio del timer da interrupt hardware. Vedere Klipper commit 970831ee come esempio dei passaggi 1-5 eseguiti per l'architettura LPC176x. Visualizza il supporto di input e output GPIO di base. Vedi Klipper commit c78b9076 come esempio di questo. Riporta periferiche aggiuntive, ad esempio consulta il commit di Klipper 65613aed , c812a40a , e c381d03a . Crea un file di configurazione di Klipper di esempio nella directory config/. Testare il microcontrollore con il programma principale klippy.py. Prendi in considerazione l'aggiunta di build test case nella directory test/. Ulteriori suggerimenti per la programmazione: Evitare di utilizzare \"C bitfields\" per accedere ai registri IO; preferire operazioni di lettura e scrittura dirette di numeri interi a 32 bit, 16 bit o 8 bit. Le specifiche del linguaggio C non specificano chiaramente come il compilatore deve implementare campi di bit C (ad esempio, endianness e layout di bit), ed \u00e8 difficile determinare quali operazioni di I/O si verificheranno su un campo di bit C letto o scritto. Preferibilmente scrivere valori espliciti nei registri IO invece di usare operazioni di lettura-modifica-scrittura. Cio\u00e8, se si aggiorna un campo in un registro IO in cui gli altri campi hanno valori noti, \u00e8 preferibile scrivere in modo esplicito il contenuto completo del registro. Le scritture esplicite producono codice pi\u00f9 piccolo, pi\u00f9 veloce e pi\u00f9 facile da eseguire il debug. Sistemi di coordinate \u00b6 Internamente, Klipper tiene traccia principalmente della posizione della testa di stampa in coordinate cartesiane relative al sistema di coordinate specificato nel file di configurazione. Cio\u00e8, la maggior parte del codice Klipper non subir\u00e0 mai un cambiamento nei sistemi di coordinate. Se l'utente fa una richiesta per cambiare l'origine (ad esempio, un comando G92 ), allora quell'effetto si ottiene traducendo i comandi futuri nel sistema di coordinate primario. Tuttavia, in alcuni casi \u00e8 utile ottenere la posizione della testa di stampa in qualche altro sistema di coordinate e Klipper ha diversi strumenti per facilitarlo. Questo pu\u00f2 essere visto eseguendo il comando GET_POSITION. Per esempio: Send: GET_POSITION Recv: // mcu: stepper_a:-2060 stepper_b:-1169 stepper_c:-1613 Recv: // stepper: stepper_a:457.254159 stepper_b:466.085669 stepper_c:465.382132 Recv: // kinematic: X:8.339144 Y:-3.131558 Z:233.347121 Recv: // toolhead: X:8.338078 Y:-3.123175 Z:233.347878 E:0.000000 Recv: // gcode: X:8.338078 Y:-3.123175 Z:233.347878 E:0.000000 Recv: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000 Recv: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000 La posizione \"mcu\" ( stepper.get_mcu_position() nel codice) \u00e8 il numero totale di passaggi che il microcontrollore ha emesso in direzione positiva meno il numero di passaggi emessi in direzione negativa dall'ultimo microcontrollore Ripristina. Se il robot \u00e8 in movimento quando viene emessa la query, il valore riportato include le mosse memorizzate nel buffer del microcontrollore, ma non include le mosse nella coda di previsione. La posizione \"stepper\" ( stepper.get_commanded_position() ) \u00e8 la posizione del dato stepper come tracciato dal codice della cinematica. Questo corrisponde generalmente alla posizione (in mm) del carrello lungo il suo binario, rispetto a position_endstop specificato nel file di configurazione. (Alcune cinematiche tracciano le posizioni dello stepper in radianti anzich\u00e9 in millimetri.) Se il robot \u00e8 in movimento quando viene emessa la query, il valore riportato include i movimenti memorizzati nel buffer del microcontrollore, ma non include i movimenti sulla coda di previsione. Si possono usare le chiamate toolhead.flush_step_generation() o toolhead.wait_moves() per svuotare completamente il codice look-ahead e generazione di passaggi. La posizione \"cinematica\" ( kin.calc_position() ) \u00e8 la posizione cartesiana della testa di stampa come derivata dalle posizioni \"stepper\" ed \u00e8 relativa al sistema di coordinate specificato nel file di configurazione. Questo pu\u00f2 differire dalla posizione cartesiana richiesta a causa della granularit\u00e0 dei motori passo-passo. Se il robot \u00e8 in movimento quando vengono prese le posizioni \"stepper\", il valore riportato include i movimenti memorizzati nel buffer del microcontrollore, ma non include i movimenti sulla coda di previsione. Si possono usare le chiamate toolhead.flush_step_generation() o toolhead.wait_moves() per svuotare completamente il codice look-ahead e generazione di passaggi. La posizione della \"testa di stampa\" ( toolhead.get_position() ) \u00e8 l'ultima posizione richiesta della testa di stampa in coordinate cartesiane rispetto al sistema di coordinate specificato nel file di configurazione. Se il robot \u00e8 in movimento quando viene emessa la richiesta, il valore riportato include tutti i movimenti richiesti (anche quelli nei buffer in attesa di essere inviati ai driver del motore passo-passo). La posizione \"gcode\" \u00e8 l'ultima posizione richiesta da un comando G1 (o G0 ) in coordinate cartesiane relative al sistema di coordinate specificato nel file di configurazione. Questo pu\u00f2 differire dalla posizione \"toolhead\" se \u00e8 attiva una trasformazione del g-code (ad es. bed_mesh, bed_tilt, skew_correction). Questo pu\u00f2 differire dalle coordinate effettive specificate nell'ultimo comando G1 se l'origine del g-code \u00e8 stata modificata (ad esempio, G92 , SET_GCODE_OFFSET , M221 ). Il comando M114 ( gcode_move.get_status()['gcode_position'] ) riporter\u00e0 l'ultima posizione del g-code rispetto al sistema di coordinate del g-code corrente. La \"gcode base\" \u00e8 la posizione dell'origine del codice g in coordinate cartesiane rispetto al sistema di coordinate specificato nel file di configurazione. Comandi come G92 , SET_GCODE_OFFSET e M221 alterano questo valore. Il \"gcode homing\" \u00e8 la posizione da usare per l'origine del g-code (in coordinate cartesiane relative al sistema di coordinate specificato nel file di configurazione) dopo un comando home G28 . Il comando SET_GCODE_OFFSET pu\u00f2 alterare questo valore. Time \u00b6 Fondamentale per il funzionamento di Klipper \u00e8 la gestione di orologi, orari e timestamp. Klipper esegue azioni sulla stampante programmando eventi che si verificheranno nel prossimo futuro. Ad esempio, per accendere una ventola, il codice potrebbe programmare una modifica a un pin GPIO in 100 ms. \u00c8 raro che il codice tenti di eseguire un'azione istantanea. Pertanto, la gestione del tempo all'interno di Klipper \u00e8 fondamentale per il corretto funzionamento. Esistono tre tipi di tempi tracciati internamente nel software host di Klipper: Ora di sistema. L'ora del sistema utilizza l'orologio del sistema: \u00e8 un numero in virgola mobile memorizzato come secondi ed \u00e8 (generalmente) relativo all'ultimo avvio del computer host. I tempi di sistema hanno un uso limitato nel software: vengono utilizzati principalmente durante l'interazione con il sistema operativo. All'interno del codice host, gli orari di sistema sono spesso archiviati in variabili denominate eventtime o curtime . Tempo di stampa. Il tempo di stampa \u00e8 sincronizzato con l'orologio principale del microcontrollore (il microcontrollore definito nella sezione di configurazione \"[mcu]\"). \u00c8 un numero in virgola mobile memorizzato come secondi ed \u00e8 relativo all'ultimo riavvio dell'mcu principale. \u00c8 possibile convertire da un \"tempo di stampa\" all'orologio hardware del microcontrollore principale moltiplicando il tempo di stampa per la frequenza di frequenza configurata staticamente dell'mcu. Il codice host di alto livello utilizza i tempi di stampa per calcolare quasi tutte le azioni fisiche (ad es. movimento della testa, modifiche del riscaldatore, ecc.). All'interno del codice host, i tempi di stampa sono generalmente memorizzati in variabili denominate print_time o move_time . Orologio MCU. Questo \u00e8 il contatore dell'orologio hardware su ogni microcontrollore. Viene memorizzato come numero intero e la sua velocit\u00e0 di aggiornamento \u00e8 relativa alla frequenza del microcontrollore specificato. Il software host traduce i suoi tempi interni in orologi prima della trasmissione all'mcu. Il codice mcu tiene traccia del tempo solo in tick dell'orologio. All'interno del codice host, i valori di clock vengono tracciati come interi a 64 bit, mentre il codice mcu utilizza interi a 32 bit. All'interno del codice host, gli orologi sono generalmente memorizzati in variabili con nomi contenenti clock o tick . La conversione tra i diversi formati dell'ora \u00e8 implementata principalmente nel codice klippy/clocksync.py . Alcune cose da tenere presenti durante la revisione del codice: Orologi a 32 bit e 64 bit: per ridurre la larghezza di banda e migliorare l'efficienza del microcontrollore, gli orologi sul microcontrollore vengono tracciati come numeri interi a 32 bit. Quando si confrontano due orologi nel codice mcu, la funzione timer_is_before() deve essere sempre utilizzata per garantire che i rollover interi siano gestiti correttamente. Il software host converte gli orologi a 32 bit in orologi a 64 bit aggiungendo i bit di ordine superiore dall'ultimo timestamp mcu che ha ricevuto - nessun messaggio dall'mcu \u00e8 mai pi\u00f9 di 2^31 tick di clock in futuro o nel passato, quindi questa conversione non \u00e8 mai ambigua . L'host converte da clock a 64 bit a clock a 32 bit semplicemente troncando i bit di ordine superiore. Per garantire che non vi siano ambiguit\u00e0 in questa conversione, il codice klippy/chelper/serialqueue.c memorizza i messaggi nel buffer finch\u00e9 non si trovano entro 2^31 tick di clock dall'ora target. Microcontrollori multipli: il software host supporta l'utilizzo di pi\u00f9 microcontrollori su una singola stampante. In questo caso, il \"clock MCU\" di ogni microcontrollore viene tracciato separatamente. Il codice clocksync.py gestisce la deriva dell'orologio tra i microcontrollori modificando il modo in cui converte da \"tempo di stampa\" a \"orologio MCU\". Sul mcus secondario, la frequenza mcu utilizzata in questa conversione viene regolarmente aggiornata per tenere conto della deriva misurata.","title":"Panoramica del codice"},{"location":"Code_Overview.html#panoramica-del-codice","text":"Questo documento descrive il formato generale del codice e il flusso principale del codice di Klipper.","title":"Panoramica del codice"},{"location":"Code_Overview.html#directory-layout","text":"La directory src/ contiene il sorgente C per il codice del microcontrollore. src/atsam/ , src/atsamd/ , src/avr/ , src/linux/ , src/lpc176x/ , src/ Le directory pru/ e src/stm32/ contengono il codice del microcontrollore specifico dell'architettura. src/simulator/ contiene stub di codice che consentono la compilazione di test del microcontrollore su altre architetture. La directory src/generic/ contiene codice di supporto che pu\u00f2 essere utile in diverse architetture. La build fa in modo che le include di \"board/somefile.h\" guardino prima nella directory dell'architettura corrente (ad esempio, src/avr/somefile.h) e poi nella directory generica (ad esempio, src/generic/somefile.h). La directory klippy/ contiene il software host. La maggior parte del software host \u00e8 scritto in Python, tuttavia la directory klippy/chelper/ contiene alcuni helper del codice C. La directory klippy/kinematics/ contiene il codice della cinematica del robot. La directory klippy/extras/ contiene i \"moduli\" estensibili del codice host. La directory lib/ contiene il codice della libreria di terze parti esterne necessarie per creare alcune destinazioni. La directory config/ contiene file di configurazione della stampante di esempio. La directory scripts/ contiene script di build-time utili per compilare il codice del microcontrollore. La directory test/ contiene test case automatizzati. Durante la compilazione, la build potrebbe creare una directory out/ . Questa contiene oggetti temporanei di compilazione. L'oggetto microcontrollore finale che viene creato \u00e8 out/klipper.elf.hex su AVR e out/klipper.bin su ARM.","title":"Directory Layout"},{"location":"Code_Overview.html#flusso-del-codice-del-microcontrollore","text":"L'esecuzione del codice del microcontrollore inizia nel codice specifico dell'architettura (ad esempio, src/avr/main.c ) che alla fine chiama sched_main() che si trova in src/sched.c . Il codice sched_main() inizia eseguendo tutte le funzioni che sono state contrassegnate con la macro DECL_INIT(). Quindi continua a eseguire ripetutamente tutte le funzioni contrassegnate con la macro DECL_TASK(). Una delle principali funzioni dell'attivit\u00e0 \u00e8 command_dispatch() che si trova in src/command.c . Questa funzione viene richiamata dal codice input/output specifico della scheda (es. src/avr/serial.c , src/generic/serial_irq.c ) ed esegue le funzioni di comando associate ai comandi trovati nel flusso di input. Le funzioni di comando vengono dichiarate utilizzando la macro DECL_COMMAND() (consultare il documento protocol per ulteriori informazioni). Le funzioni task, init e comando vengono sempre eseguite con gli interrupt abilitati (tuttavia, possono disabilitare temporaneamente gli interrupt se necessario). Queste funzioni dovrebbero evitare lunghe pause, ritardi o eseguire lavori che durano un tempo significativo. (Lunghi ritardi in queste funzioni di \"attivit\u00e0\" provocano un jitter di pianificazione per altre \"attivit\u00e0\" - ritardi superiori a 100us possono diventare evidenti, ritardi superiori a 500us possono causare ritrasmissioni dei comandi, ritardi superiori a 100 ms possono causare riavvii del watchdog.) Queste funzioni pianificano il lavoro a orari specifici programmando i timer. Le funzioni timer vengono pianificate chiamando sched_add_timer() (che si trova in src/sched.c ). Il codice di pianificazione far\u00e0 in modo che la funzione data venga chiamata all'ora richiesta. Gli interrupt timer sono inizialmente gestiti in un gestore di interrupt specifico dell'architettura (ad esempio, src/avr/timer.c ) che chiama sched_timer_dispatch() situato in src/sched.c . L'interruzione del timer porta all'esecuzione delle funzioni del timer di pianificazione. Le funzioni timer vengono eseguite sempre con gli interrupt disabilitati. Le funzioni del timer dovrebbero sempre completarsi entro pochi microsecondi. Al completamento dell'evento timer, la funzione pu\u00f2 scegliere di riprogrammare se stessa. Nel caso in cui venga rilevato un errore, il codice pu\u00f2 invocare shutdown() (una macro che chiama sched_shutdown() situata in src/sched.c ). Il richiamo di shutdown() provoca l'esecuzione di tutte le funzioni contrassegnate con la macro DECL_SHUTDOWN(). Le funzioni di spegnimento vengono eseguite sempre con gli interrupt disabilitati. Gran parte delle funzionalit\u00e0 del microcontrollore implica il lavoro con pin di input/output per uso generico (GPIO). Per astrarre il codice specifico dell'architettura di basso livello dal codice dell'attivit\u00e0 di alto livello, tutti gli eventi GPIO sono implementati in wrapper specifici dell'architettura (ad esempio, src/avr/gpio.c ). Il codice \u00e8 compilato con l'ottimizzazione \"-flto -fwhole-program\" di gcc che fa un ottimo lavoro di inlining delle funzioni tra le unit\u00e0 di compilazione, quindi la maggior parte di queste minuscole funzioni gpio sono integrate nei loro chiamanti e non ci sono costi di runtime per l'utilizzo loro.","title":"Flusso del codice del microcontrollore"},{"location":"Code_Overview.html#panoramica-del-codice-klippy","text":"Il codice host (Klippy) deve essere eseguito su un computer a basso costo (come un Raspberry Pi) abbinato al microcontrollore. Il codice \u00e8 scritto principalmente in Python, tuttavia utilizza CFFI per implementare alcune funzionalit\u00e0 nel codice C. L'esecuzione iniziale comincia in klippy/klippy.py . Questo legge gli argomenti della riga di comando, apre il file di configurazione della stampante, crea un'istanza degli oggetti principali della stampante e avvia la connessione seriale. L'esecuzione principale dei comandi G-code \u00e8 nel metodo process_commands() in klippy/gcode.py . Questo codice traduce i comandi del codice G in chiamate a oggetti stampante, che spesso traducono le azioni in comandi da eseguire sul microcontrollore (come dichiarato tramite la macro DECL_COMMAND nel codice del microcontrollore). Ci sono quattro thread nel codice host di Klippy. Il thread principale gestisce i comandi gcode in arrivo. Un secondo thread (che risiede interamente nel codice C klippy/chelper/serialqueue.c ) gestisce l'IO di basso livello con la porta seriale. Il terzo thread viene utilizzato per elaborare i messaggi di risposta dal microcontrollore nel codice Python (vedi klippy/serialhdl.py ). Il quarto thread scrive i messaggi di debug nel log (vedi klippy/queuelogger.py ) in modo che gli altri thread non blocchino mai le scritture del log.","title":"Panoramica del codice Klippy"},{"location":"Code_Overview.html#flusso-di-codice-di-un-comando-di-spostamento","text":"Un tipico movimento della stampante inizia quando viene inviato un comando \"G1\" all'host Klippy e si completa quando vengono prodotti i corrispondenti impulsi di passo sul microcontrollore. Questa sezione delinea il flusso di codice di un tipico comando di spostamento. Il documento cinematica fornisce ulteriori informazioni sulla meccanica dei movimenti. L'elaborazione di un comando di spostamento inizia in gcode.py. L'obiettivo di gcode.py \u00e8 tradurre il G-code in chiamate interne. Un comando G1 invocher\u00e0 cmd_G1() in klippy/extras/gcode_move.py. Il codice gcode_move.py gestisce le modifiche all'origine (ad esempio, G92), le modifiche alle posizioni relative rispetto a quelle assolute (ad esempio, G90) e le modifiche alle unit\u00e0 (ad esempio, F6000=100mm/s). Il percorso del codice per una mossa \u00e8: _process_data() -> _process_commands() -> cmd_G1() . Infine viene invocata la classe ToolHead per eseguire la richiesta effettiva: cmd_G1() -> ToolHead.move() La classe ToolHead (in toolhead.py) gestisce \"look-ahead\" e tiene traccia dei tempi delle azioni di stampa. Il percorso di codice principale per una mossa \u00e8: ToolHead.move() -> MoveQueue.add_move() -> MoveQueue.flush() -> Move.set_junction() -> ToolHead._process_moves() . ToolHead.move() crea un oggetto Move() con i parametri del movimento (in spazio cartesiano e in unit\u00e0 di secondi e millimetri). Alla classe cinematica viene data l'opportunit\u00e0 di controllare ogni movimento ( ToolHead.move() -> kin.check_move() ). Le classi cinematiche si trovano nella directory klippy/cinematica/. Il codice check_move() pu\u00f2 generare un errore se il movimento non \u00e8 valida. Se check_move() viene completato correttamente, la cinematica sottostante deve essere in grado di gestire lo spostamento. MoveQueue.add_move() posiziona l'oggetto di spostamento nella coda \"look-ahead\". MoveQueue.flush() determina le velocit\u00e0 di inizio e fine di ogni movimento. Move.set_junction() implementa il \"generatore di trapezi\" per il movimento. Il \"generatore trapezoidale\" suddivide ogni movimento in tre parti: una fase di accelerazione costante, seguita da una fase di velocit\u00e0 costante, seguita da una fase di decelerazione costante. Ogni mossa contiene queste tre fasi in questo ordine, ma alcune fasi possono avere durata zero. Quando viene chiamato ToolHead._process_moves(), tutto ci\u00f2 che riguarda lo spostamento \u00e8 noto: la sua posizione iniziale, la sua posizione finale, la sua accelerazione, la sua velocit\u00e0 di inizio/crociera/finale e la distanza percorsa durante l'accelerazione/crociera/decelerazione. Tutte le informazioni sono memorizzate nella classe Move() e sono nello spazio cartesiano in unit\u00e0 di millimetri e secondi. Klipper utilizza un risolutore iterativo per generare i tempi di passaggio per ogni stepper. Per motivi di efficienza, i tempi di impulso stepper sono generati in codice C. I movimenti vengono prima posizionati su una \"coda di movimento trapezoidale\": ToolHead._process_moves() -> trapq_append() (in klippy/chelper/trapq.c). Vengono quindi generati i tempi di passaggio: ToolHead._process_moves() -> ToolHead._update_move_time() -> MCU_Stepper.generate_steps() -> itersolve_generate_steps() -> itersolve_gen_steps_range() (in klippy/chelper/itersolve.c). L'obiettivo del risolutore iterativo \u00e8 trovare i tempi di passaggio data una funzione che calcola una posizione passo-passo da un tempo. Questo viene fatto \"indovinando\" ripetutamente varie volte fino a quando la formula della posizione dello stepper non restituisce la posizione desiderata del passaggio successivo sullo stepper. Il feedback prodotto da ciascuna ipotesi viene utilizzato per migliorare le ipotesi future in modo che il processo converga rapidamente al tempo desiderato. Le formule della posizione dello stepper cinematico si trovano nella directory klippy/chelper/ (ad es. kin_cart.c, kin_corexy.c, kin_delta.c, kin_extruder.c). Si noti che l'estrusore \u00e8 gestito nella propria classe cinematica: ToolHead._process_moves() -> PrinterExtruder.move() . Poich\u00e9 la classe Move() specifica l'esatto tempo di movimento e poich\u00e9 gli impulsi di passo vengono inviati al microcontrollore con una tempistica specifica, i movimenti passo-passo prodotti dalla classe estrusore saranno sincronizzati con il movimento della testa anche se il codice viene mantenuto separato. Dopo che il risolutore iterativo ha calcolato i tempi di passaggio, questi vengono aggiunti a un array: itersolve_gen_steps_range() -> stepcompress_append() (in klippy/chelper/stepcompress.c). L'array (struct stepcompress.queue) memorizza i corrispondenti tempi del contatore dell'orologio del microcontrollore per ogni passaggio. Qui il valore del \"contatore orologio del microcontrollore\" corrisponde direttamente al contatore hardware del microcontrollore - \u00e8 relativo a quando il microcontrollore \u00e8 stato acceso l'ultima volta. Il prossimo passo importante \u00e8 comprimere i passaggi: stepcompress_flush() -> compress_bisect_add() (in klippy/chelper/stepcompress.c). Questo codice genera e codifica una serie di comandi \"queue_step\" del microcontrollore che corrispondono all'elenco dei tempi di stepper compilati nella fase precedente. Questi comandi \"queue_step\" vengono quindi accodati, assegnati a priorit\u00e0 e inviati al microcontrollore (tramite stepcompress.c:steppersync e serialqueue.c:serialqueue). L'elaborazione dei comandi queue_step sul microcontrollore inizia in src/command.c che analizza il comando e chiama command_queue_step() . Il codice command_queue_step() (in src/stepper.c) aggiunge semplicemente i parametri di ogni comando queue_step a una coda per stepper. In condizioni normali, il comando queue_step viene analizzato e messo in coda almeno 100 ms prima dell'ora del suo primo passaggio. Infine, la generazione degli eventi stepper viene eseguita in stepper_event() . Viene chiamato dall'interruzione del timer hardware all'ora pianificata del primo passaggio. Il codice stepper_event() genera un impulso di passaggio e quindi si riprogramma per essere eseguito al momento dell'impulso di passaggio successivo per i parametri queue_step specificati. I parametri per ogni comando queue_step sono \"interval\", \"count\" e \"add\". Ad alto livello, stepper_event() esegue quanto segue, 'count' volte: do_step(); next_wake_time = last_wake_time + intervallo; intervallo += aggiungi; Quanto sopra pu\u00f2 sembrare un sacco di complessit\u00e0 per eseguire un movimento. Tuttavia, le uniche parti veramente interessanti sono nelle classi ToolHead e cinematica. \u00c8 questa parte del codice che specifica i movimenti e le loro tempistiche. Le restanti parti dell'elaborazione sono per lo pi\u00f9 solo comunicazioni e collegamenti.","title":"Flusso di codice di un comando di spostamento"},{"location":"Code_Overview.html#aggiunta-di-un-modulo-host","text":"Il codice host Klippy ha una capacit\u00e0 di caricamento dinamico dei moduli. Se nel file di configurazione della stampante viene trovata una sezione di configurazione denominata \"[my_module]\", il software tenter\u00e0 automaticamente di caricare il modulo python klippy/extras/my_module.py . Questo sistema di moduli \u00e8 il metodo preferito per aggiungere nuove funzionalit\u00e0 a Klipper. Il modo pi\u00f9 semplice per aggiungere un nuovo modulo \u00e8 utilizzare un modulo esistente come riferimento - vedere klippy/extras/servo.py come esempio. Possono essere utili anche: L'esecuzione del modulo inizia nella funzione load_config() a livello di modulo (per le sezioni di configurazione del modulo [my_module]) o in load_config_prefix() (per le sezioni di configurazione del modulo [my_module my_name]). A questa funzione viene passato un oggetto \"config\" e deve restituire un nuovo \"oggetto stampante\" associato alla sezione di configurazione specificata. Durante il processo di creazione di un'istanza di un nuovo oggetto stampante, l'oggetto di configurazione pu\u00f2 essere utilizzato per leggere i parametri dalla sezione di configurazione specificata. Questo viene fatto usando i metodi config.get() , config.getfloat() , config.getint() , ecc. Assicurati di leggere tutti i valori dalla configurazione durante la costruzione dell'oggetto stampante: se l'utente specifica un parametro di configurazione che non viene letto durante questa fase, si presumer\u00e0 che si tratti di un errore di battitura nella configurazione e verr\u00e0 generato un errore. Usa il metodo config.get_printer() per ottenere un riferimento alla classe principale \"printer\". Questa classe \"stampante\" memorizza i riferimenti a tutti gli \"oggetti stampante\" di cui \u00e8 stata creata un'istanza. Usa il metodo printer.lookup_object() per trovare riferimenti ad altri oggetti stampante. Quasi tutte le funzionalit\u00e0 (anche i moduli cinematici principali) sono incapsulate in uno di questi oggetti stampante. Si noti, tuttavia, che quando viene istanziato un nuovo modulo, non saranno stati istanziati tutti gli altri oggetti stampante. I moduli \"gcode\" e \"pins\" saranno sempre disponibili, ma per altri moduli \u00e8 una buona idea rinviare la ricerca. Registra i gestori di eventi usando il metodo printer.register_event_handler() se il codice deve essere chiamato durante gli \"events\" generati da altri oggetti stampante. Ogni nome di evento \u00e8 una stringa e, per convenzione, \u00e8 il nome del modulo sorgente principale che genera l'evento insieme a un nome breve per l'azione che si sta verificando (ad esempio, \"klippy:connect\"). I parametri passati a ciascun gestore di eventi sono specifici dell'evento dato (cos\u00ec come la gestione delle eccezioni e il contesto di esecuzione). Due eventi di avvio comuni sono: klippy:connect - Questo evento viene generato dopo che tutti gli oggetti stampante sono stati istanziati. Viene comunemente utilizzato per cercare altri oggetti stampante, verificare le impostazioni di configurazione ed eseguire un \"handshake\" iniziale con l'hardware della stampante. klippy:ready - Questo evento viene generato dopo che tutti i gestori di connessione sono stati completati correttamente. Indica che la stampante sta passando a uno stato pronto per gestire le normali operazioni. Non generare un errore in questo callback. Se c'\u00e8 un errore nella configurazione dell'utente, assicurati di sollevarlo durante le fasi load_config() o \"connect event\". Utilizzare raise config.error(\"my error\") o raise printer.config_error (\"my error\") per segnalare l'errore. Utilizzare il modulo \"pin\" per configurare un pin su un microcontrollore. Questo \u00e8 in genere fatto con qualcosa di simile a printer.lookup_object(\"pins\").setup_pin(\"pwm\", config.get(\"my_pin\")) . L'oggetto restituito pu\u00f2 quindi essere comandato in fase di esecuzione. Se l'oggetto stampante definisce un metodo get_status() , il modulo pu\u00f2 esportare informazioni sullo stato tramite macro e tramite Server API . Il metodo get_status() deve restituire un dizionario Python con chiavi che sono stringhe e valori che sono interi, float, stringhe, elenchi, dizionari, True, False o None. \u00c8 possibile utilizzare anche tuple (e tuple con nome) (appaiono come elenchi quando si accede tramite il server API). Gli elenchi e i dizionari esportati devono essere trattati come \"immutabili\" - se il loro contenuto cambia, \u00e8 necessario restituire un nuovo oggetto da get_status() , altrimenti il server API non rilever\u00e0 tali modifiche. Se il modulo necessita dell'accesso alla temporizzazione del sistema o a descrittori di file esterni, utilizzare printer.get_reactor() per ottenere l'accesso alla classe globale \"event reactor\". Questa classe reattore consente di programmare i timer, attendere l'input sui descrittori di file e di \"sopprimere\" il codice host. Non utilizzare variabili globali. Tutto lo stato dovrebbe essere memorizzato nell'oggetto stampante restituito dalla funzione load_config() . Questo \u00e8 importante, altrimenti il comando RESTART potrebbe non funzionare come previsto. Inoltre, per ragioni simili, se vengono aperti file (o socket) esterni, assicurati di registrare un gestore di eventi \"klippy:disconnect\" e chiuderli da quella richiamata. Evitare di accedere alle variabili dei membri interni (o di chiamare metodi che iniziano con un trattino basso) di altri oggetti stampante. L'osservanza di questa convenzione semplifica la gestione delle modifiche future. Si consiglia di assegnare un valore a tutte le variabili membro nel costruttore Python delle classi Python. (E quindi evita di utilizzare la capacit\u00e0 di Python di creare dinamicamente nuove variabili membro.) Se una variabile Python deve memorizzare un valore in virgola mobile, si consiglia di assegnare e manipolare sempre quella variabile con costanti in virgola mobile (e non utilizzare mai costanti intere). Ad esempio, preferisci self.speed = 1. su self.speed = 1 e preferisci self.speed = 2. * x su self.speed = 2 * x . L'uso coerente di valori in virgola mobile pu\u00f2 evitare difficolt\u00e0 di debug nelle conversioni di tipo Python. Se invii il modulo per l'inclusione nel codice Klipper principale, assicurati di inserire un avviso di copyright nella parte superiore del modulo. Vedere i moduli esistenti per il formato preferito.","title":"Aggiunta di un modulo host"},{"location":"Code_Overview.html#aggiunta-di-una-nuova-cinematica","text":"Questa sezione fornisce alcuni suggerimenti sull'aggiunta del supporto a Klipper per ulteriori tipi di cinematica della stampante. Questo tipo di attivit\u00e0 richiede un'ottima comprensione delle formule matematiche per la cinematica di destinazione. Richiede anche capacit\u00e0 di sviluppo software, sebbene sia necessario solo aggiornare il software host. Passi utili: Inizia studiando la sezione \" flusso di codice di un movimento \" e il documento di cinematica . Esaminare le classi cinematiche esistenti nella directory klippy/kinematics/. Le classi cinematiche hanno il compito di convertire una mossa in coordinate cartesiane nel movimento su ogni stepper. Si dovrebbe essere in grado di copiare uno di questi file come punto di partenza. Implementa in C le funzioni di posizione cinematica dello stepper per ogni stepper se non sono gi\u00e0 disponibili (vedi kin_cart.c, kin_corexy.c e kin_delta.c in klippy/chelper/). La funzione dovrebbe chiamare move_get_coord() per convertire un dato tempo di spostamento (in secondi) in una coordinata cartesiana (in millimetri), e quindi calcolare la posizione dello stepper desiderata (in millimetri) da quella coordinata cartesiana. Implementa il metodo calc_position() nella nuova classe cinematica. Questo metodo calcola la posizione della testa di stampa in coordinate cartesiane dalla posizione di ogni stepper. Non \u00e8 necessario che sia efficiente poich\u00e9 in genere viene chiamato solo durante le operazioni di homing e probing. Altri metodi. Implementa i metodi check_move() , get_status() , get_steppers() , home() e set_position() . Queste funzioni sono in genere utilizzate per fornire verifiche cinematiche specifiche. Tuttavia, all'inizio dello sviluppo \u00e8 possibile utilizzare il codice boilerplate qui. Implementare casi di prova. Crea un file g-code con una serie di movimenti che possono testare casi importanti per la cinematica data. Segui la documentazione di debug per convertire questo file di codice G in comandi del microcontrollore. Questo \u00e8 utile per esercitare corner case e per verificare la presenza di regressioni.","title":"Aggiunta di una nuova cinematica"},{"location":"Code_Overview.html#porting-su-un-nuovo-microcontrollore","text":"Questa sezione fornisce alcuni suggerimenti sul porting del codice del microcontrollore di Klipper su una nuova architettura. Questo tipo di attivit\u00e0 richiede una buona conoscenza dello sviluppo embedded e un accesso diretto al microcontrollore di destinazione. Passi utili: Inizia identificando eventuali librerie di terze parti che verranno utilizzate durante il trasferimento. Esempi comuni includono wrapper \"CMSIS\" e librerie \"HAL\" del produttore. Tutto il codice di terze parti deve essere compatibile con GNU GPLv3. Il codice di terze parti dovrebbe essere salvato nella directory lib/ di Klipper. Aggiorna il file lib/README con informazioni su dove e quando \u00e8 stata ottenuta la libreria. \u00c8 preferibile copiare il codice nel repository di Klipper senza modifiche, ma se sono necessarie modifiche, tali modifiche dovrebbero essere elencate esplicitamente nel file lib/README. Crea una nuova sottodirectory di architettura nella directory src/ e aggiungi il supporto iniziale di Kconfig e Makefile. Utilizzare le architetture esistenti come guida. src/simulator fornisce un esempio di base di un punto di partenza minimo. Il primo compito di programmazione \u00e8 portare il supporto di comunicazione alla scheda di destinazione. Questo \u00e8 il passo pi\u00f9 difficile in un nuovo porting. Una volta che la comunicazione di base funziona, i passaggi rimanenti tendono a essere molto pi\u00f9 semplici. \u00c8 tipico utilizzare un dispositivo seriale di tipo UART durante lo sviluppo iniziale poich\u00e9 questi tipi di dispositivi hardware sono generalmente pi\u00f9 facili da abilitare e controllare. Durante questa fase, fai un uso generoso del codice di supporto dalla directory src/generic/ (controlla come src/simulator/Makefile include il codice C generico nella build). \u00c8 inoltre necessario definire timer_read_time() (che restituisce l'orologio di sistema corrente) in questa fase, ma non \u00e8 necessario supportare completamente la gestione di timer irq. Acquisisci familiarit\u00e0 con lo strumento console.py (come descritto nel documento di debug ) e verifica la connettivit\u00e0 al microcontrollore con esso. Questo strumento traduce il protocollo di comunicazione del microcontrollore di basso livello in un formato leggibile dall'uomo. Aggiungi il supporto per l'invio del timer da interrupt hardware. Vedere Klipper commit 970831ee come esempio dei passaggi 1-5 eseguiti per l'architettura LPC176x. Visualizza il supporto di input e output GPIO di base. Vedi Klipper commit c78b9076 come esempio di questo. Riporta periferiche aggiuntive, ad esempio consulta il commit di Klipper 65613aed , c812a40a , e c381d03a . Crea un file di configurazione di Klipper di esempio nella directory config/. Testare il microcontrollore con il programma principale klippy.py. Prendi in considerazione l'aggiunta di build test case nella directory test/. Ulteriori suggerimenti per la programmazione: Evitare di utilizzare \"C bitfields\" per accedere ai registri IO; preferire operazioni di lettura e scrittura dirette di numeri interi a 32 bit, 16 bit o 8 bit. Le specifiche del linguaggio C non specificano chiaramente come il compilatore deve implementare campi di bit C (ad esempio, endianness e layout di bit), ed \u00e8 difficile determinare quali operazioni di I/O si verificheranno su un campo di bit C letto o scritto. Preferibilmente scrivere valori espliciti nei registri IO invece di usare operazioni di lettura-modifica-scrittura. Cio\u00e8, se si aggiorna un campo in un registro IO in cui gli altri campi hanno valori noti, \u00e8 preferibile scrivere in modo esplicito il contenuto completo del registro. Le scritture esplicite producono codice pi\u00f9 piccolo, pi\u00f9 veloce e pi\u00f9 facile da eseguire il debug.","title":"Porting su un nuovo microcontrollore"},{"location":"Code_Overview.html#sistemi-di-coordinate","text":"Internamente, Klipper tiene traccia principalmente della posizione della testa di stampa in coordinate cartesiane relative al sistema di coordinate specificato nel file di configurazione. Cio\u00e8, la maggior parte del codice Klipper non subir\u00e0 mai un cambiamento nei sistemi di coordinate. Se l'utente fa una richiesta per cambiare l'origine (ad esempio, un comando G92 ), allora quell'effetto si ottiene traducendo i comandi futuri nel sistema di coordinate primario. Tuttavia, in alcuni casi \u00e8 utile ottenere la posizione della testa di stampa in qualche altro sistema di coordinate e Klipper ha diversi strumenti per facilitarlo. Questo pu\u00f2 essere visto eseguendo il comando GET_POSITION. Per esempio: Send: GET_POSITION Recv: // mcu: stepper_a:-2060 stepper_b:-1169 stepper_c:-1613 Recv: // stepper: stepper_a:457.254159 stepper_b:466.085669 stepper_c:465.382132 Recv: // kinematic: X:8.339144 Y:-3.131558 Z:233.347121 Recv: // toolhead: X:8.338078 Y:-3.123175 Z:233.347878 E:0.000000 Recv: // gcode: X:8.338078 Y:-3.123175 Z:233.347878 E:0.000000 Recv: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000 Recv: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000 La posizione \"mcu\" ( stepper.get_mcu_position() nel codice) \u00e8 il numero totale di passaggi che il microcontrollore ha emesso in direzione positiva meno il numero di passaggi emessi in direzione negativa dall'ultimo microcontrollore Ripristina. Se il robot \u00e8 in movimento quando viene emessa la query, il valore riportato include le mosse memorizzate nel buffer del microcontrollore, ma non include le mosse nella coda di previsione. La posizione \"stepper\" ( stepper.get_commanded_position() ) \u00e8 la posizione del dato stepper come tracciato dal codice della cinematica. Questo corrisponde generalmente alla posizione (in mm) del carrello lungo il suo binario, rispetto a position_endstop specificato nel file di configurazione. (Alcune cinematiche tracciano le posizioni dello stepper in radianti anzich\u00e9 in millimetri.) Se il robot \u00e8 in movimento quando viene emessa la query, il valore riportato include i movimenti memorizzati nel buffer del microcontrollore, ma non include i movimenti sulla coda di previsione. Si possono usare le chiamate toolhead.flush_step_generation() o toolhead.wait_moves() per svuotare completamente il codice look-ahead e generazione di passaggi. La posizione \"cinematica\" ( kin.calc_position() ) \u00e8 la posizione cartesiana della testa di stampa come derivata dalle posizioni \"stepper\" ed \u00e8 relativa al sistema di coordinate specificato nel file di configurazione. Questo pu\u00f2 differire dalla posizione cartesiana richiesta a causa della granularit\u00e0 dei motori passo-passo. Se il robot \u00e8 in movimento quando vengono prese le posizioni \"stepper\", il valore riportato include i movimenti memorizzati nel buffer del microcontrollore, ma non include i movimenti sulla coda di previsione. Si possono usare le chiamate toolhead.flush_step_generation() o toolhead.wait_moves() per svuotare completamente il codice look-ahead e generazione di passaggi. La posizione della \"testa di stampa\" ( toolhead.get_position() ) \u00e8 l'ultima posizione richiesta della testa di stampa in coordinate cartesiane rispetto al sistema di coordinate specificato nel file di configurazione. Se il robot \u00e8 in movimento quando viene emessa la richiesta, il valore riportato include tutti i movimenti richiesti (anche quelli nei buffer in attesa di essere inviati ai driver del motore passo-passo). La posizione \"gcode\" \u00e8 l'ultima posizione richiesta da un comando G1 (o G0 ) in coordinate cartesiane relative al sistema di coordinate specificato nel file di configurazione. Questo pu\u00f2 differire dalla posizione \"toolhead\" se \u00e8 attiva una trasformazione del g-code (ad es. bed_mesh, bed_tilt, skew_correction). Questo pu\u00f2 differire dalle coordinate effettive specificate nell'ultimo comando G1 se l'origine del g-code \u00e8 stata modificata (ad esempio, G92 , SET_GCODE_OFFSET , M221 ). Il comando M114 ( gcode_move.get_status()['gcode_position'] ) riporter\u00e0 l'ultima posizione del g-code rispetto al sistema di coordinate del g-code corrente. La \"gcode base\" \u00e8 la posizione dell'origine del codice g in coordinate cartesiane rispetto al sistema di coordinate specificato nel file di configurazione. Comandi come G92 , SET_GCODE_OFFSET e M221 alterano questo valore. Il \"gcode homing\" \u00e8 la posizione da usare per l'origine del g-code (in coordinate cartesiane relative al sistema di coordinate specificato nel file di configurazione) dopo un comando home G28 . Il comando SET_GCODE_OFFSET pu\u00f2 alterare questo valore.","title":"Sistemi di coordinate"},{"location":"Code_Overview.html#time","text":"Fondamentale per il funzionamento di Klipper \u00e8 la gestione di orologi, orari e timestamp. Klipper esegue azioni sulla stampante programmando eventi che si verificheranno nel prossimo futuro. Ad esempio, per accendere una ventola, il codice potrebbe programmare una modifica a un pin GPIO in 100 ms. \u00c8 raro che il codice tenti di eseguire un'azione istantanea. Pertanto, la gestione del tempo all'interno di Klipper \u00e8 fondamentale per il corretto funzionamento. Esistono tre tipi di tempi tracciati internamente nel software host di Klipper: Ora di sistema. L'ora del sistema utilizza l'orologio del sistema: \u00e8 un numero in virgola mobile memorizzato come secondi ed \u00e8 (generalmente) relativo all'ultimo avvio del computer host. I tempi di sistema hanno un uso limitato nel software: vengono utilizzati principalmente durante l'interazione con il sistema operativo. All'interno del codice host, gli orari di sistema sono spesso archiviati in variabili denominate eventtime o curtime . Tempo di stampa. Il tempo di stampa \u00e8 sincronizzato con l'orologio principale del microcontrollore (il microcontrollore definito nella sezione di configurazione \"[mcu]\"). \u00c8 un numero in virgola mobile memorizzato come secondi ed \u00e8 relativo all'ultimo riavvio dell'mcu principale. \u00c8 possibile convertire da un \"tempo di stampa\" all'orologio hardware del microcontrollore principale moltiplicando il tempo di stampa per la frequenza di frequenza configurata staticamente dell'mcu. Il codice host di alto livello utilizza i tempi di stampa per calcolare quasi tutte le azioni fisiche (ad es. movimento della testa, modifiche del riscaldatore, ecc.). All'interno del codice host, i tempi di stampa sono generalmente memorizzati in variabili denominate print_time o move_time . Orologio MCU. Questo \u00e8 il contatore dell'orologio hardware su ogni microcontrollore. Viene memorizzato come numero intero e la sua velocit\u00e0 di aggiornamento \u00e8 relativa alla frequenza del microcontrollore specificato. Il software host traduce i suoi tempi interni in orologi prima della trasmissione all'mcu. Il codice mcu tiene traccia del tempo solo in tick dell'orologio. All'interno del codice host, i valori di clock vengono tracciati come interi a 64 bit, mentre il codice mcu utilizza interi a 32 bit. All'interno del codice host, gli orologi sono generalmente memorizzati in variabili con nomi contenenti clock o tick . La conversione tra i diversi formati dell'ora \u00e8 implementata principalmente nel codice klippy/clocksync.py . Alcune cose da tenere presenti durante la revisione del codice: Orologi a 32 bit e 64 bit: per ridurre la larghezza di banda e migliorare l'efficienza del microcontrollore, gli orologi sul microcontrollore vengono tracciati come numeri interi a 32 bit. Quando si confrontano due orologi nel codice mcu, la funzione timer_is_before() deve essere sempre utilizzata per garantire che i rollover interi siano gestiti correttamente. Il software host converte gli orologi a 32 bit in orologi a 64 bit aggiungendo i bit di ordine superiore dall'ultimo timestamp mcu che ha ricevuto - nessun messaggio dall'mcu \u00e8 mai pi\u00f9 di 2^31 tick di clock in futuro o nel passato, quindi questa conversione non \u00e8 mai ambigua . L'host converte da clock a 64 bit a clock a 32 bit semplicemente troncando i bit di ordine superiore. Per garantire che non vi siano ambiguit\u00e0 in questa conversione, il codice klippy/chelper/serialqueue.c memorizza i messaggi nel buffer finch\u00e9 non si trovano entro 2^31 tick di clock dall'ora target. Microcontrollori multipli: il software host supporta l'utilizzo di pi\u00f9 microcontrollori su una singola stampante. In questo caso, il \"clock MCU\" di ogni microcontrollore viene tracciato separatamente. Il codice clocksync.py gestisce la deriva dell'orologio tra i microcontrollori modificando il modo in cui converte da \"tempo di stampa\" a \"orologio MCU\". Sul mcus secondario, la frequenza mcu utilizzata in questa conversione viene regolarmente aggiornata per tenere conto della deriva misurata.","title":"Time"},{"location":"Command_Templates.html","text":"Modelli di comandi \u00b6 Questo documento fornisce informazioni sull'implementazione di sequenze di comandi G-Code nelle sezioni di configurazione gcode_macro (e simili). Denominazione macro G-Code \u00b6 Le maiuscole non sono importanti per il nome della macro G-Code: MY_MACRO e my_macro saranno considerate allo stesso modo e possono essere chiamati in maiuscolo o minuscolo. Se nel nome della macro vengono utilizzati dei numeri, devono trovarsi tutti alla fine del nome (ad es. TEST_MACRO25 \u00e8 valido, ma MACRO25_TEST3 non lo \u00e8). Formattazione di G-Code nel config \u00b6 L'indentazione \u00e8 importante quando si definisce una macro nel file di configurazione. Per specificare una sequenza G-Code su pi\u00f9 righe \u00e8 importante che ogni riga abbia un'indentazione adeguata. Per esempio: [gcode_macro led_lampeggiante] gcode: SET_PIN PIN=my_led VALUE=1 G4 P2000 SET_PIN PIN=my_led VALUE=0 Nota come l'opzione di configurazione gcode: inizia sempre all'inizio della riga e le righe successive nella macro G-Code non iniziano mai all'inizio. Aggiungi una descrizione alla tua macro \u00b6 Per aiutare a identificare la funzionalit\u00e0 \u00e8 possibile aggiungere una breve descrizione. Aggiungi descrizione: con un breve testo per descrivere la funzionalit\u00e0. L'impostazione predefinita \u00e8 \"Macro codice G\" se non specificato. Per esempio: [gcode_macro led_lampeggiante] description: Esegue lampeggio del led una volta gcode: SET_PIN PIN=my_led VALUE=1 G4 P2000 SET_PIN PIN=my_led VALUE=0 Il terminale visualizzer\u00e0 la descrizione quando si utilizza il comando HELP o la funzione di completamento automatico. Salva/ripristina lo stato per i movimenti G-Code \u00b6 Sfortunatamente, il linguaggio di comando G-Code pu\u00f2 essere difficile da usare. Il meccanismo standard per spostare la testa di stampa \u00e8 tramite il comando G1 (il comando G0 \u00e8 un alias per G1 e pu\u00f2 essere usato in modo intercambiabile con esso). Tuttavia, questo comando si basa sull'impostazione dello \"stato di analisi del codice G\" da M82 , M83 , G90 , G91 , G92 e precedenti comandi G1 . Quando si crea una macro G-Code \u00e8 una buona idea impostare sempre in modo esplicito lo stato di analisi del G-Code prima di emettere un comando G1 . (Altrimenti, c'\u00e8 il rischio che il comando G1 faccia una richiesta indesiderabile.) Un modo comune per farlo \u00e8 avvolgere le mosse G1 in SAVE_GCODE_STATE , G91 e RESTORE_GCODE_STATE . Per esempio: [gcode_macro MOVE_UP] gcode: SAVE_GCODE_STATE NAME=my_move_up_state G91 G1 Z10 F300 RESTORE_GCODE_STATE NAME=my_move_up_state Il comando G91 pone lo stato di analisi del codice G in \"modalit\u00e0 di spostamento relativo\" e il comando RESTORE_GCODE_STATE ripristina lo stato a quello che era prima di entrare nella macro. Assicurati di specificare una velocit\u00e0 esplicita (tramite il parametro F ) sul primo comando G1 . Espansione del modello \u00b6 La sezione di configurazione di gcode_macro gcode: viene valutata utilizzando il linguaggio del modello Jinja2. \u00c8 possibile valutare le espressioni in fase di esecuzione racchiudendole in caratteri { } o utilizzando istruzioni condizionali racchiuse in {% %} . Vedere la documentazione Jinja2 per ulteriori informazioni sulla sintassi. Un esempio di macro complessa: [gcode_macro clean_nozzle] gcode: {% set wipe_count = 8 %} SAVE_GCODE_STATE NAME=clean_nozzle_state G90 G0 Z15 F300 {% for wipe in range(wipe_count) %} {% for coordinate in [(275, 4),(235, 4)] %} G0 X{coordinate[0]} Y{coordinate[1] + 0.25 * wipe} Z9.7 F12000 {% endfor %} {% endfor %} RESTORE_GCODE_STATE NAME=clean_nozzle_state Parametri Macro \u00b6 Spesso \u00e8 utile controllare i parametri passati alla macro quando viene chiamata. Questi parametri sono disponibili tramite la pseudo-variabile params . Ad esempio, se la macro: [gcode_macro SET_PERCENT] gcode: M117 Now at { params.VALUE|float * 100 }% sono stati invocati come SET_PERCENT VALUE=.2 verrebbero valutati in M117 Now at 20% . Si noti che i nomi dei parametri sono sempre in maiuscolo quando vengono valutati nella macro e vengono sempre passati come stringhe. Se si eseguono calcoli matematici, devono essere convertiti esplicitamente in numeri interi o float. \u00c8 comune usare la direttiva Jinja2 set per usare un parametro predefinito e assegnare il risultato a un nome locale. Per esempio: [gcode_macro SET_BED_TEMPERATURE] gcode: {% set bed_temp = params.TEMPERATURE|default(40)|float %} M140 S{bed_temp La variabile \"rawparams\" \u00b6 \u00c8 possibile accedere ai parametri completi non analizzati per la macro in esecuzione tramite la pseudo-variabile rawparams . Nota che questo includer\u00e0 tutti i commenti che facevano parte del comando originale. Vedere il file sample-macros.cfg per un esempio che mostra come sovrascrivere il comando M117 usando rawparams . La variabile \"printer\" \u00b6 \u00c8 possibile ispezionare (e modificare) lo stato corrente della stampante tramite la pseudo-variabile printer . Per esempio: [gcode_macro slow_fan] gcode: M106 S{ printer.fan.speed * 0.9 * 255} I campi disponibili sono definiti nel documento Status Reference . Importante! Le macro vengono prima valutate per intero e solo dopo vengono eseguiti i comandi risultanti. Se una macro emette un comando che altera lo stato della stampante, i risultati di tale cambiamento di stato non saranno visibili durante la valutazione della macro. Ci\u00f2 pu\u00f2 anche comportare un comportamento impercettibile quando una macro genera comandi che chiamano altre macro, poich\u00e9 la macro chiamata viene valutata quando viene richiamata (che avviene dopo l'intera valutazione della macro chiamante). Per convenzione, il nome immediatamente successivo a printer \u00e8 il nome di una sezione di configurazione. Quindi, ad esempio, printer.fan si riferisce all'oggetto fan creato dalla sezione di configurazione [fan] . Ci sono alcune eccezioni a questa regola, in particolare gli oggetti gcode_move e toolhead . Se la sezione di configurazione contiene spazi, \u00e8 possibile accedervi tramite l'accessor [ ] , ad esempio: printer[\"generic_heater my_chamber_heater\"].temperature . Si noti che la direttiva Jinja2 set pu\u00f2 assegnare un nome locale a un oggetto nella gerarchia printer . Ci\u00f2 pu\u00f2 rendere le macro pi\u00f9 leggibili e ridurre la digitazione. Per esempio: [gcode_macro QUERY_HTU21D] gcode: {% set sensor = printer[\"htu21d my_sensor\"] %} M117 Temp:{sensor.temperature} Humidity:{sensor.humidity} Azioni \u00b6 Sono disponibili alcuni comandi che possono alterare lo stato della stampante. Ad esempio, { action_emergency_stop() } provocherebbe l'arresto della stampante. Si noti che queste azioni vengono eseguite nel momento in cui viene valutata la macro, il che potrebbe richiedere un periodo di tempo significativo prima dell'esecuzione dei comandi g-code generati. Comandi \"azione\" disponibili: action_respond_info(msg) : scrive il dato msg sullo pseudo-terminale /tmp/printer. Ogni riga di msg verr\u00e0 inviata con un prefisso \"//\". action_raise_error(msg) : annulla la macro corrente (e qualsiasi macro chiamante) e scrivie il dato msg sullo pseudo-terminale /tmp/printer. La prima riga di msg verr\u00e0 inviata con un prefisso \"!!\" e le righe successive avranno un prefisso \"//\". action_emergency_stop(msg) : fa passare la stampante a uno stato di spegnimento. Il parametro msg \u00e8 opzionale, pu\u00f2 essere utile per descrivere il motivo dell'arresto. action_call_remote_method(method_name) : chiama un metodo registrato da un client remoto. Se il metodo accetta parametri, questi dovrebbero essere forniti tramite argomenti chiave, ad esempio: action_call_remote_method(\"print_stuff\", my_arg=\"hello_world\") Variabili \u00b6 Il comando SET_GCODE_VARIABLE pu\u00f2 essere utile per salvare lo stato tra le chiamate di macro. I nomi delle variabili non possono contenere caratteri maiuscoli. Per esempio: [gcode_macro start_probe] variable_bed_temp: 0 gcode: # Salva la temperatura target nella variabile bed_temp SET_GCODE_VARIABLE MACRO=start_probe VARIABLE=bed_temp VALUE={printer.heater_bed.target} # Disattiva il riscaldamento del piatto M140 # Esegue sonda PROBE # Chiama la macro finish_probe al completamento finish_probe [gcode_macro finish_probe] gcode: # Ripristinare la temperatura del piatto M140 S{printer[\"gcode_macro start_probe\"].bed_temp} Assicurarsi di tenere in considerazione i tempi della valutazione della macro e dell'esecuzione dei comandi quando si utilizza SET_GCODE_VARIABLE. Gcode ritardati \u00b6 L'opzione di configurazione [delayed_gcode] pu\u00f2 essere utilizzata per eseguire una sequenza gcode ritardata: [delayed_gcode clear_display] gcode: M117 [gcode_macro load_filament] gcode: G91 G1 E50 G90 M400 M117 Load Complete! UPDATE_DELAYED_GCODE ID=clear_display DURATION=10 Quando viene eseguita la macro load_filament sopra, visualizzer\u00e0 un \"Load Complete!\" messaggio al termine dell'estrusione. L'ultima riga di gcode abilita il delay_gcode \"clear_display\", impostato per essere eseguito in 10 secondi. L'opzione di configurazione initial_duration pu\u00f2 essere impostata per eseguire il delay_gcode all'avvio della stampante. Il conto alla rovescia inizia quando la stampante entra nello stato \"ready\". Ad esempio, il codice delay_g riportato di seguito verr\u00e0 eseguito 5 secondi dopo che la stampante \u00e8 pronta, inizializzando il display con un messaggio\"Welcome!\": [delayed_gcode welcome] initial_duration: 5. gcode: M117 Welcome! \u00c8 possibile che un gcode ritardato si ripeta aggiornandosi nell'opzione gcode: [delayed_gcode report_temp] initial_duration: 2. gcode: {action_respond_info(\"Extruder Temp: %.1f\" % (printer.extruder0.temperature))} UPDATE_DELAYED_GCODE ID=report_temp DURATION=2 Il codice delayed_gcode sopra riportato invier\u00e0 \"// Extruder Temp: [ex0_temp]\" a Octoprint ogni 2 secondi. Questo pu\u00f2 essere annullato con il seguente gcode: UPDATE_DELAYED_GCODE ID=report_temp DURATION=0 Modelli di menu \u00b6 Se \u00e8 abilitata una sezione di configurazione display , \u00e8 possibile personalizzare il menu con le sezioni di configurazione menu . I seguenti attributi di sola lettura sono disponibili nei modelli di menu: menu.width - larghezza dell'elemento (numero di colonne di visualizzazione) menu.ns - namespace del elemento menu.event - nome dell'evento che ha attivato lo script menu.input - valore di input, disponibile solo nel contesto dello script di input Le seguenti azioni sono disponibili nei modelli di menu: menu.back(force, update) : eseguir\u00e0 il comando menu back, parametri booleani opzionali <force> e <update> . Quando <force> \u00e8 impostato su True, interromper\u00e0 anche la modifica. Il valore predefinito \u00e8 False. Quando <update> \u00e8 impostato su False, gli elementi del contenitore padre non vengono aggiornati. Il valore predefinito \u00e8 True. menu.exit(force) - eseguir\u00e0 il comando di uscita dal menu, parametro booleano opzionale <force> valore predefinito False. Quando <force> \u00e8 impostato su True, interromper\u00e0 anche la modifica. Il valore predefinito \u00e8 False. Salvare variabili su disco \u00b6 Se \u00e8 stata abilitata una sezione di configurazione save_variables , SAVE_VARIABLE VARIABLE=<nome> VALUE=<valore> pu\u00f2 essere utilizzato per salvare la variabile su disco in modo che possa essere utilizzata tra i riavvii. Tutte le variabili memorizzate vengono caricate nel dict printer.save_variables.variables all'avvio e possono essere utilizzate nelle macro gcode. per evitare righe troppo lunghe puoi aggiungere quanto segue nella parte superiore della macro: {% set svv = printer.save_variables.variables %} Ad esempio, potrebbe essere utilizzato per salvare lo stato dell'hotend 2-in-1-out e quando si avvia una stampa assicurarsi che venga utilizzato l'estrusore attivo, anzich\u00e9 T0: [gcode_macro T1] gcode: ACTIVATE_EXTRUDER extruder=extruder1 SAVE_VARIABLE VARIABLE=currentextruder VALUE='\"extruder1\"' [gcode_macro T0] gcode: ACTIVATE_EXTRUDER extruder=extruder SAVE_VARIABLE VARIABLE=currentextruder VALUE='\"extruder\"' [gcode_macro START_GCODE] gcode: {% set svv = printer.save_variables.variables %} ACTIVATE_EXTRUDER extruder={svv.currentextruder}","title":"Modelli di comandi"},{"location":"Command_Templates.html#modelli-di-comandi","text":"Questo documento fornisce informazioni sull'implementazione di sequenze di comandi G-Code nelle sezioni di configurazione gcode_macro (e simili).","title":"Modelli di comandi"},{"location":"Command_Templates.html#denominazione-macro-g-code","text":"Le maiuscole non sono importanti per il nome della macro G-Code: MY_MACRO e my_macro saranno considerate allo stesso modo e possono essere chiamati in maiuscolo o minuscolo. Se nel nome della macro vengono utilizzati dei numeri, devono trovarsi tutti alla fine del nome (ad es. TEST_MACRO25 \u00e8 valido, ma MACRO25_TEST3 non lo \u00e8).","title":"Denominazione macro G-Code"},{"location":"Command_Templates.html#formattazione-di-g-code-nel-config","text":"L'indentazione \u00e8 importante quando si definisce una macro nel file di configurazione. Per specificare una sequenza G-Code su pi\u00f9 righe \u00e8 importante che ogni riga abbia un'indentazione adeguata. Per esempio: [gcode_macro led_lampeggiante] gcode: SET_PIN PIN=my_led VALUE=1 G4 P2000 SET_PIN PIN=my_led VALUE=0 Nota come l'opzione di configurazione gcode: inizia sempre all'inizio della riga e le righe successive nella macro G-Code non iniziano mai all'inizio.","title":"Formattazione di G-Code nel config"},{"location":"Command_Templates.html#aggiungi-una-descrizione-alla-tua-macro","text":"Per aiutare a identificare la funzionalit\u00e0 \u00e8 possibile aggiungere una breve descrizione. Aggiungi descrizione: con un breve testo per descrivere la funzionalit\u00e0. L'impostazione predefinita \u00e8 \"Macro codice G\" se non specificato. Per esempio: [gcode_macro led_lampeggiante] description: Esegue lampeggio del led una volta gcode: SET_PIN PIN=my_led VALUE=1 G4 P2000 SET_PIN PIN=my_led VALUE=0 Il terminale visualizzer\u00e0 la descrizione quando si utilizza il comando HELP o la funzione di completamento automatico.","title":"Aggiungi una descrizione alla tua macro"},{"location":"Command_Templates.html#salvaripristina-lo-stato-per-i-movimenti-g-code","text":"Sfortunatamente, il linguaggio di comando G-Code pu\u00f2 essere difficile da usare. Il meccanismo standard per spostare la testa di stampa \u00e8 tramite il comando G1 (il comando G0 \u00e8 un alias per G1 e pu\u00f2 essere usato in modo intercambiabile con esso). Tuttavia, questo comando si basa sull'impostazione dello \"stato di analisi del codice G\" da M82 , M83 , G90 , G91 , G92 e precedenti comandi G1 . Quando si crea una macro G-Code \u00e8 una buona idea impostare sempre in modo esplicito lo stato di analisi del G-Code prima di emettere un comando G1 . (Altrimenti, c'\u00e8 il rischio che il comando G1 faccia una richiesta indesiderabile.) Un modo comune per farlo \u00e8 avvolgere le mosse G1 in SAVE_GCODE_STATE , G91 e RESTORE_GCODE_STATE . Per esempio: [gcode_macro MOVE_UP] gcode: SAVE_GCODE_STATE NAME=my_move_up_state G91 G1 Z10 F300 RESTORE_GCODE_STATE NAME=my_move_up_state Il comando G91 pone lo stato di analisi del codice G in \"modalit\u00e0 di spostamento relativo\" e il comando RESTORE_GCODE_STATE ripristina lo stato a quello che era prima di entrare nella macro. Assicurati di specificare una velocit\u00e0 esplicita (tramite il parametro F ) sul primo comando G1 .","title":"Salva/ripristina lo stato per i movimenti G-Code"},{"location":"Command_Templates.html#espansione-del-modello","text":"La sezione di configurazione di gcode_macro gcode: viene valutata utilizzando il linguaggio del modello Jinja2. \u00c8 possibile valutare le espressioni in fase di esecuzione racchiudendole in caratteri { } o utilizzando istruzioni condizionali racchiuse in {% %} . Vedere la documentazione Jinja2 per ulteriori informazioni sulla sintassi. Un esempio di macro complessa: [gcode_macro clean_nozzle] gcode: {% set wipe_count = 8 %} SAVE_GCODE_STATE NAME=clean_nozzle_state G90 G0 Z15 F300 {% for wipe in range(wipe_count) %} {% for coordinate in [(275, 4),(235, 4)] %} G0 X{coordinate[0]} Y{coordinate[1] + 0.25 * wipe} Z9.7 F12000 {% endfor %} {% endfor %} RESTORE_GCODE_STATE NAME=clean_nozzle_state","title":"Espansione del modello"},{"location":"Command_Templates.html#parametri-macro","text":"Spesso \u00e8 utile controllare i parametri passati alla macro quando viene chiamata. Questi parametri sono disponibili tramite la pseudo-variabile params . Ad esempio, se la macro: [gcode_macro SET_PERCENT] gcode: M117 Now at { params.VALUE|float * 100 }% sono stati invocati come SET_PERCENT VALUE=.2 verrebbero valutati in M117 Now at 20% . Si noti che i nomi dei parametri sono sempre in maiuscolo quando vengono valutati nella macro e vengono sempre passati come stringhe. Se si eseguono calcoli matematici, devono essere convertiti esplicitamente in numeri interi o float. \u00c8 comune usare la direttiva Jinja2 set per usare un parametro predefinito e assegnare il risultato a un nome locale. Per esempio: [gcode_macro SET_BED_TEMPERATURE] gcode: {% set bed_temp = params.TEMPERATURE|default(40)|float %} M140 S{bed_temp","title":"Parametri Macro"},{"location":"Command_Templates.html#la-variabile-rawparams","text":"\u00c8 possibile accedere ai parametri completi non analizzati per la macro in esecuzione tramite la pseudo-variabile rawparams . Nota che questo includer\u00e0 tutti i commenti che facevano parte del comando originale. Vedere il file sample-macros.cfg per un esempio che mostra come sovrascrivere il comando M117 usando rawparams .","title":"La variabile \"rawparams\""},{"location":"Command_Templates.html#la-variabile-printer","text":"\u00c8 possibile ispezionare (e modificare) lo stato corrente della stampante tramite la pseudo-variabile printer . Per esempio: [gcode_macro slow_fan] gcode: M106 S{ printer.fan.speed * 0.9 * 255} I campi disponibili sono definiti nel documento Status Reference . Importante! Le macro vengono prima valutate per intero e solo dopo vengono eseguiti i comandi risultanti. Se una macro emette un comando che altera lo stato della stampante, i risultati di tale cambiamento di stato non saranno visibili durante la valutazione della macro. Ci\u00f2 pu\u00f2 anche comportare un comportamento impercettibile quando una macro genera comandi che chiamano altre macro, poich\u00e9 la macro chiamata viene valutata quando viene richiamata (che avviene dopo l'intera valutazione della macro chiamante). Per convenzione, il nome immediatamente successivo a printer \u00e8 il nome di una sezione di configurazione. Quindi, ad esempio, printer.fan si riferisce all'oggetto fan creato dalla sezione di configurazione [fan] . Ci sono alcune eccezioni a questa regola, in particolare gli oggetti gcode_move e toolhead . Se la sezione di configurazione contiene spazi, \u00e8 possibile accedervi tramite l'accessor [ ] , ad esempio: printer[\"generic_heater my_chamber_heater\"].temperature . Si noti che la direttiva Jinja2 set pu\u00f2 assegnare un nome locale a un oggetto nella gerarchia printer . Ci\u00f2 pu\u00f2 rendere le macro pi\u00f9 leggibili e ridurre la digitazione. Per esempio: [gcode_macro QUERY_HTU21D] gcode: {% set sensor = printer[\"htu21d my_sensor\"] %} M117 Temp:{sensor.temperature} Humidity:{sensor.humidity}","title":"La variabile \"printer\""},{"location":"Command_Templates.html#azioni","text":"Sono disponibili alcuni comandi che possono alterare lo stato della stampante. Ad esempio, { action_emergency_stop() } provocherebbe l'arresto della stampante. Si noti che queste azioni vengono eseguite nel momento in cui viene valutata la macro, il che potrebbe richiedere un periodo di tempo significativo prima dell'esecuzione dei comandi g-code generati. Comandi \"azione\" disponibili: action_respond_info(msg) : scrive il dato msg sullo pseudo-terminale /tmp/printer. Ogni riga di msg verr\u00e0 inviata con un prefisso \"//\". action_raise_error(msg) : annulla la macro corrente (e qualsiasi macro chiamante) e scrivie il dato msg sullo pseudo-terminale /tmp/printer. La prima riga di msg verr\u00e0 inviata con un prefisso \"!!\" e le righe successive avranno un prefisso \"//\". action_emergency_stop(msg) : fa passare la stampante a uno stato di spegnimento. Il parametro msg \u00e8 opzionale, pu\u00f2 essere utile per descrivere il motivo dell'arresto. action_call_remote_method(method_name) : chiama un metodo registrato da un client remoto. Se il metodo accetta parametri, questi dovrebbero essere forniti tramite argomenti chiave, ad esempio: action_call_remote_method(\"print_stuff\", my_arg=\"hello_world\")","title":"Azioni"},{"location":"Command_Templates.html#variabili","text":"Il comando SET_GCODE_VARIABLE pu\u00f2 essere utile per salvare lo stato tra le chiamate di macro. I nomi delle variabili non possono contenere caratteri maiuscoli. Per esempio: [gcode_macro start_probe] variable_bed_temp: 0 gcode: # Salva la temperatura target nella variabile bed_temp SET_GCODE_VARIABLE MACRO=start_probe VARIABLE=bed_temp VALUE={printer.heater_bed.target} # Disattiva il riscaldamento del piatto M140 # Esegue sonda PROBE # Chiama la macro finish_probe al completamento finish_probe [gcode_macro finish_probe] gcode: # Ripristinare la temperatura del piatto M140 S{printer[\"gcode_macro start_probe\"].bed_temp} Assicurarsi di tenere in considerazione i tempi della valutazione della macro e dell'esecuzione dei comandi quando si utilizza SET_GCODE_VARIABLE.","title":"Variabili"},{"location":"Command_Templates.html#gcode-ritardati","text":"L'opzione di configurazione [delayed_gcode] pu\u00f2 essere utilizzata per eseguire una sequenza gcode ritardata: [delayed_gcode clear_display] gcode: M117 [gcode_macro load_filament] gcode: G91 G1 E50 G90 M400 M117 Load Complete! UPDATE_DELAYED_GCODE ID=clear_display DURATION=10 Quando viene eseguita la macro load_filament sopra, visualizzer\u00e0 un \"Load Complete!\" messaggio al termine dell'estrusione. L'ultima riga di gcode abilita il delay_gcode \"clear_display\", impostato per essere eseguito in 10 secondi. L'opzione di configurazione initial_duration pu\u00f2 essere impostata per eseguire il delay_gcode all'avvio della stampante. Il conto alla rovescia inizia quando la stampante entra nello stato \"ready\". Ad esempio, il codice delay_g riportato di seguito verr\u00e0 eseguito 5 secondi dopo che la stampante \u00e8 pronta, inizializzando il display con un messaggio\"Welcome!\": [delayed_gcode welcome] initial_duration: 5. gcode: M117 Welcome! \u00c8 possibile che un gcode ritardato si ripeta aggiornandosi nell'opzione gcode: [delayed_gcode report_temp] initial_duration: 2. gcode: {action_respond_info(\"Extruder Temp: %.1f\" % (printer.extruder0.temperature))} UPDATE_DELAYED_GCODE ID=report_temp DURATION=2 Il codice delayed_gcode sopra riportato invier\u00e0 \"// Extruder Temp: [ex0_temp]\" a Octoprint ogni 2 secondi. Questo pu\u00f2 essere annullato con il seguente gcode: UPDATE_DELAYED_GCODE ID=report_temp DURATION=0","title":"Gcode ritardati"},{"location":"Command_Templates.html#modelli-di-menu","text":"Se \u00e8 abilitata una sezione di configurazione display , \u00e8 possibile personalizzare il menu con le sezioni di configurazione menu . I seguenti attributi di sola lettura sono disponibili nei modelli di menu: menu.width - larghezza dell'elemento (numero di colonne di visualizzazione) menu.ns - namespace del elemento menu.event - nome dell'evento che ha attivato lo script menu.input - valore di input, disponibile solo nel contesto dello script di input Le seguenti azioni sono disponibili nei modelli di menu: menu.back(force, update) : eseguir\u00e0 il comando menu back, parametri booleani opzionali <force> e <update> . Quando <force> \u00e8 impostato su True, interromper\u00e0 anche la modifica. Il valore predefinito \u00e8 False. Quando <update> \u00e8 impostato su False, gli elementi del contenitore padre non vengono aggiornati. Il valore predefinito \u00e8 True. menu.exit(force) - eseguir\u00e0 il comando di uscita dal menu, parametro booleano opzionale <force> valore predefinito False. Quando <force> \u00e8 impostato su True, interromper\u00e0 anche la modifica. Il valore predefinito \u00e8 False.","title":"Modelli di menu"},{"location":"Command_Templates.html#salvare-variabili-su-disco","text":"Se \u00e8 stata abilitata una sezione di configurazione save_variables , SAVE_VARIABLE VARIABLE=<nome> VALUE=<valore> pu\u00f2 essere utilizzato per salvare la variabile su disco in modo che possa essere utilizzata tra i riavvii. Tutte le variabili memorizzate vengono caricate nel dict printer.save_variables.variables all'avvio e possono essere utilizzate nelle macro gcode. per evitare righe troppo lunghe puoi aggiungere quanto segue nella parte superiore della macro: {% set svv = printer.save_variables.variables %} Ad esempio, potrebbe essere utilizzato per salvare lo stato dell'hotend 2-in-1-out e quando si avvia una stampa assicurarsi che venga utilizzato l'estrusore attivo, anzich\u00e9 T0: [gcode_macro T1] gcode: ACTIVATE_EXTRUDER extruder=extruder1 SAVE_VARIABLE VARIABLE=currentextruder VALUE='\"extruder1\"' [gcode_macro T0] gcode: ACTIVATE_EXTRUDER extruder=extruder SAVE_VARIABLE VARIABLE=currentextruder VALUE='\"extruder\"' [gcode_macro START_GCODE] gcode: {% set svv = printer.save_variables.variables %} ACTIVATE_EXTRUDER extruder={svv.currentextruder}","title":"Salvare variabili su disco"},{"location":"Config_Changes.html","text":"Modifiche alla configurazione \u00b6 Questo documento copre le modifiche software recenti al file di configurazione che non sono compatibili con le versioni precedenti. \u00c8 una buona idea rivedere questo documento durante l'aggiornamento del software Klipper. Tutte le date in questo documento sono approssimative. Cambiamenti \u00b6 20220616: in precedenza era possibile eseguire il flashing di un rp2040 in modalit\u00e0 bootloader eseguendo make flash FLASH_DEVICE=first . Il comando equivalente \u00e8 ora make flash FLASH_DEVICE=2e8a:0003 . 20220612: Il microcontrollore rp2040 ora ha una soluzione alternativa per l'errata USB \"rp2040-e5\". Ci\u00f2 dovrebbe rendere pi\u00f9 affidabili le connessioni USB iniziali. Tuttavia, potrebbe comportare un cambiamento nel comportamento del pin gpio15. \u00c8 improbabile che il cambiamento di comportamento di gpio15 sia evidente. 20220407: l'opzione di configurazione temperature_fan pid_integral_max \u00e8 stata rimossa (era deprecata su 20210612). 20220407: L'ordine dei colori predefinito per i LED pca9632 \u00e8 ora \"RGBW\". Aggiungi un'impostazione esplicita color_order: RBGW alla sezione di configurazione di pca9632 per ottenere il comportamento precedente. 20220330: Il formato delle informazioni di stato printer.neopixel.color_data per i moduli neopixel e dotstar \u00e8 cambiato. Le informazioni sono ora memorizzate come un elenco di elenchi di colori (invece di un elenco di dizionari). Per i dettagli, vedere il riferimento dello stato . 20220307: M73 non imposter\u00e0 pi\u00f9 l'avanzamento della stampa su 0 se manca P . 20220304: Non esiste pi\u00f9 un valore predefinito per il parametro extruder delle sezioni di configurazione extruder_stepper . Se lo si desidera, specificare esplicitamente extruder: extruder per associare il motore passo-passo alla coda di movimento \"estrusore\" all'avvio. 20220210: Il comando SYNC_STEPPER_TO_EXTRUDER \u00e8 deprecato; il comando SET_EXTRUDER_STEP_DISTANCE \u00e8 deprecato; l'opzione di configurazione extruder shared_heater \u00e8 deprecata. Queste funzionalit\u00e0 verranno rimosse nel prossimo futuro. Sostituisci SET_EXTRUDER_STEP_DISTANCE con SET_EXTRUDER_ROTATION_DISTANCE . Sostituisci SYNC_STEPPER_TO_EXTRUDER con SYNC_EXTRUDER_MOTION . Sostituisci le sezioni di configurazione dell'estrusore usando shared_heater con le sezioni di configurazione extruder_stepper e aggiorna le macro di attivazione per usare SYNC_EXTRUDER_MOTION . 20220116: Il codice di calcolo della run_current per tmc2130, tmc2208, tmc2209 e tmc2660 \u00e8 cambiato. Per alcune impostazioni di run_current i driver possono ora essere configurati in modo diverso. Questa nuova configurazione dovrebbe essere pi\u00f9 accurata, ma potrebbe invalidare la precedente ottimizzazione del driver tmc. 20211230: Gli script per ottimizzare l'input shaper ( scripts/calibrate_shaper.py e scripts/graph_accelerometer.py ) sono stati migrati per utilizzare Python3 per impostazione predefinita. Di conseguenza, gli utenti devono installare le versioni Python3 di determinati pacchetti (ad esempio sudo apt install python3-numpy python3-matplotlib ) per continuare a utilizzare questi script. Per maggiori dettagli, fare riferimento a Installazione del software . In alternativa, gli utenti possono forzare temporaneamente l'esecuzione di questi script in Python 2 chiamando esplicitamente l'interprete Python2 nella console: python2 ~/klipper/scripts/calibrate_shaper.py ... 20211110: Il sensore di temperatura \"NTC 100K beta 3950\" \u00e8 obsoleto. Questo sensore verr\u00e0 rimosso nel prossimo futuro. La maggior parte degli utenti trover\u00e0 il sensore di temperatura \"Generico 3950\" pi\u00f9 accurato. Per continuare a utilizzare la definizione precedente (in genere meno accurata), definire un termistore personalizzato con temperature1: 25 , resistance1: 100000 e beta: 3950 . 20211104: L'opzione \"step pulse duration\" in \"make menuconfig\" \u00e8 stata rimossa. La durata del passaggio predefinita per i driver TMC configurati in modalit\u00e0 UART o SPI \u00e8 ora di 100 ns. Una nuova impostazione step_pulse_duration nella sezione stepper config dovrebbe essere impostata per tutti gli stepper che necessitano di una durata dell'impulso personalizzata. 20211102: diverse funzionalit\u00e0 deprecate sono state rimosse. L'opzione stepper step_distance \u00e8 stata rimossa (obsoleta nel 20201222). L'alias del sensore rpi_temperature \u00e8 stato rimosso (obsoleto il 20210219). L'opzione mcu pin_map \u00e8 stata rimossa (deprecata su 20210325). La gcode_macro default_parameter_<name> e l'accesso macro ai parametri dei comandi diversi dalla pseudo-variabile params sono stati rimossi (deprecato in 20210503). L'opzione del riscaldatore pid_integral_max \u00e8 stata rimossa (obsoleta il 20210612). 20210929: Klipper v0.10.0 rilasciato. 20210903: Il valore predefinito smooth_time per i riscaldatori \u00e8 cambiato in 1 secondo (da 2 secondi). Per la maggior parte delle stampanti ci\u00f2 si tradurr\u00e0 in un controllo della temperatura pi\u00f9 stabile. 20210830: il nome adxl345 predefinito \u00e8 ora \"adxl345\". Il parametro CHIP predefinito per ACCELEROMETER_MEASURE e ACCELEROMETER_QUERY ora \u00e8 \"adxl345\". 20210830: il comando adxl345 ACCELEROMETER_MEASURE non supporta pi\u00f9 un parametro RATE. Per modificare la frequenza delle query, aggiornare il file printer.cfg ed eseguire un comando RESTART. 20210821: Diverse impostazioni di configurazione in printer.configfile.settings verranno ora riportate come elenchi anzich\u00e9 come stringhe grezze. Se si desidera la stringa grezza effettiva, utilizzare invece printer.configfile.config . 20210819: In alcuni casi, un movimento di riferimento G28 pu\u00f2 terminare in una posizione che \u00e8 nominalmente al di fuori dell'intervallo di movimento valido. In rare situazioni ci\u00f2 pu\u00f2 causare errori di \"spostamento fuori portata\" confusi dopo l'homing. In tal caso, modificare gli script di avvio per spostare la testa utensile in una posizione valida subito dopo l'homing. 20210814: Gli pseudo-pin solo analogici su atmega168 e atmega328 sono stati rinominati da PE0/PE1 a PE2/PE3. 20210720: una sezione controller_fan ora monitora tutti i motori passo-passo per impostazione predefinita (non solo i motori passo-passo cinematici). Se si desidera il comportamento precedente, vedere l'opzione di configurazione stepper nel riferimento di configurazione . 20210703: Una sezione di configurazione samd_sercom deve ora specificare il bus sercom che sta configurando tramite l'opzione sercom . 20210612: L'opzione di configurazione pid_integral_max nelle sezioni riscaldatore e temperature_fan \u00e8 obsoleta. L'opzione verr\u00e0 rimossa nel prossimo futuro. 20210503: The gcode_macro default_parameter_<name> config option is deprecated. Use the params pseudo-variable to access macro parameters. Other methods for accessing macro parameters will be removed in the near future. Most users can replace a default_parameter_NAME: VALUE config option with a line like the following in the start of the macro: {% set NAME = params.NAME|default(VALUE)|float %} . See the Command Templates document for examples. 20210430: il comando SET_VELOCITY_LIMIT (e M204) ora pu\u00f2 impostare una velocit\u00e0, un'accelerazione e una square_corner_velocity maggiori dei valori specificati nel file di configurazione. 20210325: il supporto per l'opzione di configurazione pin_map \u00e8 deprecato. Utilizzare il file sample-aliases.cfg per tradurre i nomi dei pin del microcontroller effettivi. L'opzione di configurazione pin_map verr\u00e0 rimossa nel prossimo futuro. 20210313: Il supporto di Klipper per i microcontrollori che comunicano con il bus CAN \u00e8 cambiato. Se si utilizza il bus CAN, \u00e8 necessario eseguire nuovamente il flashing di tutti i microcontrollori e la configurazione di Klipper deve essere aggiornata . 20210310: Il valore predefinito TMC2660 per driver_SFILT \u00e8 stato modificato da 1 a 0. 20210227: I driver del motore passo-passo TMC in modalit\u00e0 UART o SPI ora vengono interrogati una volta al secondo ogni volta che sono abilitati - se il driver non pu\u00f2 essere contattato o se il driver segnala un errore, Klipper passer\u00e0 allo stato di spegnimento. 20210219: Il modulo rpi_temperature \u00e8 stato rinominato in temperature_host . Sostituisci tutte le occorrenze di sensor_type: rpi_temperature con sensor_type: temperature_host . Il percorso del file di temperatura pu\u00f2 essere specificato nella variabile di configurazione sensor_path . Il nome rpi_temperature \u00e8 deprecato e verr\u00e0 rimosso nel prossimo futuro. 20210201: Il comando TEST_RESONANCES ora disabiliter\u00e0 l'input shaping se era stato precedentemente abilitato (e lo riattiver\u00e0 dopo il test). Per ignorare questo comportamento e mantenere abilitato lo shaping dell'input, \u00e8 possibile passare un parametro aggiuntivo INPUT_SHAPING=1 al comando. 20210201: Il comando ACCELEROMETER_MEASURE aggiunger\u00e0 ora il nome del chip dell'accelerometro al nome del file di output se al chip \u00e8 stato assegnato un nome nella corrispondente sezione adxl345 di printer.cfg. 20201222: L'impostazione step_distance nelle sezioni di configurazione dello stepper \u00e8 obsoleta. Si consiglia di aggiornare la configurazione per utilizzare l'impostazione rotation_distance . Il supporto per step_distance verr\u00e0 rimosso nel prossimo futuro. 20201218: L'impostazione endstop_phase nel modulo endstop_phase \u00e8 stata sostituita con trigger_phase . Se si utilizza il modulo fasi endstop, sar\u00e0 necessario convertire in rotation_distance e ricalibrare eventuali fasi endstop eseguendo il comando ENDSTOP_PHASE_CALIBRATE. 20201218: le stampanti rotanti delta e polari ora devono specificare un gear_ratio per i loro stepper rotanti e potrebbero non specificare pi\u00f9 un parametro step_distance . Vedere il riferimento di configurazione per il formato del nuovo parametro gear_ratio. 20201213: Non \u00e8 valido specificare una Z \"position_endstop\" quando si utilizza \"probe:z_virtual_endstop\". Verr\u00e0 ora generato un errore se viene specificata una Z \"position_endstop\" con \"probe:z_virtual_endstop\". Rimuovere la definizione Z \"position_endstop\" per correggere l'errore. 20201120: La sezione di configurazione [board_pins] ora specifica il nome mcu in un parametro esplicito mcu: . Se si utilizza board_pins per un mcu secondario, \u00e8 necessario aggiornare la configurazione per specificare quel nome. Vedere il riferimento di configurazione per ulteriori dettagli. 20201112: Il tempo riportato da print_stats.print_duration \u00e8 cambiato. La durata precedente alla prima estrusione rilevata \u00e8 ora esclusa. 20201029: L'opzione di configurazione color_order_GRB di neopixel \u00e8 stata rimossa. Se necessario, aggiorna la configurazione per impostare la nuova opzione color_order su RGB, GRB, RGBW o GRBW. 20201029: L'opzione seriale nella sezione di configurazione di mcu non \u00e8 pi\u00f9 impostata su /dev/ttyS0. Nella rara situazione in cui /dev/ttyS0 \u00e8 la porta seriale desiderata, deve essere specificata esplicitamente. 20201020: Klipper v0.9.0 rilasciato. 20200902: Il calcolo della resistenza-to-temperatura dell'RTD per i convertitori MAX31865 \u00e8 stato corretto in modo che non fosse basso. Se si utilizza un dispositivo di questo tipo, \u00e8 necessario ricalibrare la temperatura di stampa e le impostazioni PID. 20200816: L'oggetto printer.gcode della macro gcode \u00e8 stato rinominato in printer.gcode_move . Diverse variabili non documentate in printer.toolhead e printer.gcode sono state rimosse. Vedere docs/Command_Templates.md per un elenco delle variabili di modello disponibili. 20200816: Il sistema \"action_\" della macro gcode \u00e8 cambiato. Sostituisci tutte le chiamate a printer.gcode.action_emergency_stop() con action_emergency_stop() , printer.gcode.action_respond_info() con action_respond_info() e printer.gcode.action_respond_error() con action_raise_error( ) . 20200809: Il sistema di menu \u00e8 stato riscritto. Se il menu \u00e8 stato personalizzato sar\u00e0 necessario aggiornare alla nuova configurazione. Vedere config/example-menu.cfg per i dettagli di configurazione e vedere klippy/extras/display/menu.cfg per esempi. 20200731: Il comportamento dell'attributo progress riportato dall'oggetto stampante virtual_sdcard \u00e8 cambiato. L'avanzamento non viene pi\u00f9 reimpostato su 0 quando una stampa viene sospesa. Ora riporter\u00e0 sempre lo stato di avanzamento in base alla posizione interna del file o 0 se nessun file \u00e8 attualmente caricato. 20200725: Il parametro di configurazione servo enable e il parametro SET_SERVO ENABLE sono stati rimossi. Aggiorna qualsiasi macro per usare SET_SERVO SERVO=my_servo WIDTH=0 per disabilitare un servo. 20200608: Il supporto del display LCD ha cambiato il nome di alcuni \"glifi\" interni. Se \u00e8 stato implementato un layout di visualizzazione personalizzato, potrebbe essere necessario aggiornare ai nomi dei glifi pi\u00f9 recenti (consultare klippy/extras/display/display.cfg per un elenco dei glifi disponibili). 20200606: i nomi dei pin su Linux Mcu sono cambiati. I pin ora hanno nomi nella forma gpiochip<chipid>/gpio<gpio> . Per gpiochip0 puoi anche usare un breve gpio<gpio> . Ad esempio, ci\u00f2 che prima veniva chiamato P20 ora diventa gpio20 o gpiochip0/gpio20 . 20200603: il layout LCD 16x4 predefinito non mostrer\u00e0 pi\u00f9 il tempo rimanente stimato in una stampa. (Verr\u00e0 mostrato solo il tempo trascorso.) Se si desidera il vecchio comportamento, \u00e8 possibile personalizzare la visualizzazione del menu con tali informazioni (vedere la descrizione di display_data in config/example-extras.cfg per i dettagli). 20200531: l'ID prodotto/fornitore USB predefinito \u00e8 ora 0x1d50/0x614e. Questi nuovi ID sono riservati a Klipper (grazie al progetto openmoko). Questa modifica non dovrebbe richiedere alcuna modifica alla configurazione, ma i nuovi ID potrebbero essere visualizzati nei registri di sistema. 20200524: Il valore predefinito per il campo tmc5160 pwm_freq \u00e8 ora zero (anzich\u00e9 uno). 20200425: La variabile del modello di comando gcode_macro printer.heater \u00e8 stata rinominata printer.heaters . 20200313: Il layout lcd predefinito per le stampanti multiestrusore con schermo 16x4 \u00e8 cambiato. Il layout dello schermo del singolo estrusore \u00e8 ora quello predefinito e mostrer\u00e0 l'estrusore attualmente attivo. Per utilizzare il layout di visualizzazione precedente, impostare \"display_group: _multiextruder_16x4\" nella sezione [display] del file printer.cfg. 20200308: La voce di menu predefinita __test \u00e8 stata rimossa. Se il file di configurazione ha un menu personalizzato, assicurati di rimuovere tutti i riferimenti a questa voce di menu __test . 20200308: le opzioni del menu \"deck\" e \"card\" sono state rimosse. Per personalizzare il layout di uno schermo lcd utilizzare le nuove sezioni display_data config (vedi config/example-extras.cfg per i dettagli). 20200109: Il modulo bed_mesh ora fa riferimento alla posizione della sonda per la configurazione della mesh. Pertanto, alcune opzioni di configurazione sono state rinominate per riflettere in modo pi\u00f9 accurato la funzionalit\u00e0 prevista. Per i piatti rettangolari, min_point e max_point sono stati rinominati rispettivamente in mesh_min e mesh_max . Per i piatti rotondi, bed_radius \u00e8 stato rinominato in mesh_radius . \u00c8 stata aggiunta anche una nuova opzione mesh_origin per i piatti rotondi. Si noti che queste modifiche sono anche incompatibili con i profili mesh salvati in precedenza. Se viene rilevato un profilo incompatibile, verr\u00e0 ignorato e pianificato per la rimozione. Il processo di rimozione pu\u00f2 essere completato emettendo il comando SAVE_CONFIG. L'utente dovr\u00e0 ricalibrare ogni profilo. 20191218: la sezione di configurazione del display non supporta pi\u00f9 \"lcd_type: st7567\". Usa invece il tipo di visualizzazione \"uc1701\" - imposta \"lcd_type: uc1701\" e cambia \"rs_pin: some_pin\" in \"rst_pin: some_pin\". Potrebbe anche essere necessario aggiungere un'impostazione di configurazione \"contrasto: 60\". 20191210: I comandi integrati T0, T1, T2, ... sono stati rimossi. Le opzioni di configurazione activate_gcode e deactivate_gcode dell'estrusore sono state rimosse. Se questi comandi (e script) sono necessari, definire le singole macro di stile [gcode_macro T0] che chiamano il comando ACTIVATE_EXTRUDER. Vedere i file config/sample-idex.cfg e sample-multi-extruder.cfg per esempi. 20191210: il supporto per il comando M206 \u00e8 stato rimosso. Sostituisci con chiamate a SET_GCODE_OFFSET. Se \u00e8 necessario il supporto per M206, aggiungere una sezione di configurazione [gcode_macro M206] che richiami SET_GCODE_OFFSET. (Ad esempio \"SET_GCODE_OFFSET Z=-{params.Z}\".) 20191202: il supporto per il parametro \"S\" non documentato del comando \"G4\" \u00e8 stato rimosso. Sostituire eventuali occorrenze di S con il parametro \"P\" standard (il ritardo specificato in millisecondi). 20191126: i nomi USB sono cambiati sui microcontrollori con supporto USB nativo. Ora usano un ID chip univoco per impostazione predefinita (ove disponibile). Se una sezione di configurazione \"mcu\" utilizza un'impostazione \"serial\" che inizia con \"/dev/serial/by-id/\", potrebbe essere necessario aggiornare la configurazione. Esegui \"ls /dev/serial/by-id/*\" in un terminale ssh per determinare il nuovo ID. 20191121: il parametro pressure_advance_lookahead_time \u00e8 stato rimosso. Vedere example.cfg per impostazioni di configurazione alternative. 20191112: la funzionalit\u00e0 di abilitazione virtuale del driver stepper tmc \u00e8 ora abilitata automaticamente se lo stepper non dispone di un pin di abilitazione stepper dedicato. Rimuovere i riferimenti a tmcXXXX:virtual_enable dal file config. La possibilit\u00e0 di controllare pi\u00f9 pin nella configurazione stepper enable_pin \u00e8 stata rimossa. Se sono necessari pi\u00f9 pin, utilizzare una sezione di configurazione multi_pin. 20191107: La sezione di configurazione dell'estrusore primario deve essere specificata come \"extruder\" e non pu\u00f2 pi\u00f9 essere specificata come \"extruder0\". I modelli di comando Gcode che richiedono lo stato dell'estrusore sono ora accessibili tramite \"{printer.extruder}\". 20191021: Klipper v0.8.0 rilasciato 20191003: L'opzione move_to_previous in [safe_z_homing] ora \u00e8 impostata su False. (Era effettivamente Falso prima del 20190918.) 20190918: L'opzione zhop in [safe_z_homing] viene sempre riapplicata dopo il completamento dell'homing dell'asse Z. Ci\u00f2 potrebbe richiedere agli utenti di aggiornare gli script personalizzati basati su questo modulo. 20190806: Il comando SET_NEOPIXEL \u00e8 stato rinominato in SET_LED. 20190726: il codice del dac mcp4728 \u00e8 cambiato. L'indirizzo i2c predefinito \u00e8 ora 0x60 e il riferimento di tensione \u00e8 ora relativo al riferimento interno di 2,048 volt del mcp4728. 20190710: l'opzione z_hop \u00e8 stata rimossa dalla sezione di configurazione [firmware_retract]. Il supporto z_hop era incompleto e potrebbe causare un comportamento errato con diversi filtri dei dati comuni. 20190710: I parametri opzionali del comando PROBE_ACCURACY sono stati modificati. Potrebbe essere necessario aggiornare eventuali macro o script che utilizzano quel comando. 20190628: tutte le opzioni di configurazione sono state rimosse dalla sezione [skew_correction]. La configurazione per skew_correction viene ora eseguita tramite il gcode SET_SKEW. Vedere Correzione inclinazione per l'utilizzo consigliato. 20190607: I parametri \"variable_X\" di gcode_macro (insieme al parametro VALUE di SET_GCODE_VARIABLE) vengono ora analizzati come valori literals di Python. Se \u00e8 necessario assegnare un valore a una stringa, racchiudere il valore tra virgolette in modo che venga valutato come una stringa. 20190606: le opzioni di configurazione \"samples\", \"samples_result\" e \"sample_retract_dist\" sono state spostate nella sezione di configurazione \"probe\". Queste opzioni non sono pi\u00f9 supportate nelle sezioni di configurazione \"delta_calibrate\", \"bed_tilt\", \"bed_mesh\", \"screws_tilt_adjust\", \"z_tilt\" o \"quad_gantry_level\". 20190528: La variabile magica \"status\" nella valutazione del modello gcode_macro \u00e8 stata rinominata \"printer\". 20190520: Il comando SET_GCODE_OFFSET \u00e8 stato modificato; aggiorna tutte le macro del codice g di conseguenza. Il comando non applicher\u00e0 pi\u00f9 l'offset richiesto al successivo comando G1. Il vecchio comportamento pu\u00f2 essere approssimato utilizzando il nuovo parametro \"MOVE=1\". 20190404: i pacchetti software host Python sono stati aggiornati. Gli utenti dovranno eseguire nuovamente lo script ~/klipper/scripts/install-octopi.sh (o in altro modo aggiornare le dipendenze di Python se non si utilizza un'installazione OctoPi standard). 20190404: I parametri i2c_bus e spi_bus (in varie sezioni di configurazione) ora prendono un nome bus anzich\u00e9 un numero. 20190404: I parametri di configurazione sx1509 sono stati modificati. Il parametro 'address' ora \u00e8 'i2c_address' e deve essere specificato come numero decimale. Dove 0x3E \u00e8 stato utilizzato in precedenza, specificare 62. 20190328: Il valore min_speed nella configurazione [temperature_fan] verr\u00e0 ora rispettato e la ventola funzioner\u00e0 sempre a questa velocit\u00e0 o superiore in modalit\u00e0 PID. 20190322: il valore predefinito per \"driver_HEND\" nelle sezioni di configurazione [tmc2660] \u00e8 stato modificato da 6 a 3. Il campo \"driver_VSENSE\" \u00e8 stato rimosso (ora viene calcolato automaticamente da run_current). 20190310: La sezione di configurazione [controller_fan] ora prende sempre un nome (come [controller_fan my_controller_fan]). 20190308: Il campo \"driver_BLANK_TIME_SELECT\" nelle sezioni di configurazione [tmc2130] e [tmc2208] \u00e8 stato rinominato in \"driver_TBL\". 20190308: la sezione di configurazione [tmc2660] \u00e8 stata modificata. Ora deve essere fornito un nuovo parametro di configurazione sense_resistor. Il significato di molti dei parametri driver_XXX \u00e8 cambiato. 20190228: gli utenti di SPI o I2C su schede SAMD21 devono ora specificare i pin del bus tramite una sezione di configurazione [samd_sercom]. 20190224: l'opzione bed_shape \u00e8 stata rimossa da bed_mesh. L'opzione raggio \u00e8 stata rinominata bed_radius. Gli utenti con letti rotondi dovrebbero fornire le opzioni bed_radius e round_probe_count. 20190107: il parametro i2c_address nella sezione di configurazione mcp4451 \u00e8 stato modificato. Questa \u00e8 un'impostazione comune su Smoothieboards. Il nuovo valore \u00e8 la met\u00e0 del vecchio valore (88 dovrebbe essere cambiato in 44 e 90 dovrebbe essere cambiato in 45). 20181220: Klipper v0.7.0 rilasciato","title":"Modifiche alla configurazione"},{"location":"Config_Changes.html#modifiche-alla-configurazione","text":"Questo documento copre le modifiche software recenti al file di configurazione che non sono compatibili con le versioni precedenti. \u00c8 una buona idea rivedere questo documento durante l'aggiornamento del software Klipper. Tutte le date in questo documento sono approssimative.","title":"Modifiche alla configurazione"},{"location":"Config_Changes.html#cambiamenti","text":"20220616: in precedenza era possibile eseguire il flashing di un rp2040 in modalit\u00e0 bootloader eseguendo make flash FLASH_DEVICE=first . Il comando equivalente \u00e8 ora make flash FLASH_DEVICE=2e8a:0003 . 20220612: Il microcontrollore rp2040 ora ha una soluzione alternativa per l'errata USB \"rp2040-e5\". Ci\u00f2 dovrebbe rendere pi\u00f9 affidabili le connessioni USB iniziali. Tuttavia, potrebbe comportare un cambiamento nel comportamento del pin gpio15. \u00c8 improbabile che il cambiamento di comportamento di gpio15 sia evidente. 20220407: l'opzione di configurazione temperature_fan pid_integral_max \u00e8 stata rimossa (era deprecata su 20210612). 20220407: L'ordine dei colori predefinito per i LED pca9632 \u00e8 ora \"RGBW\". Aggiungi un'impostazione esplicita color_order: RBGW alla sezione di configurazione di pca9632 per ottenere il comportamento precedente. 20220330: Il formato delle informazioni di stato printer.neopixel.color_data per i moduli neopixel e dotstar \u00e8 cambiato. Le informazioni sono ora memorizzate come un elenco di elenchi di colori (invece di un elenco di dizionari). Per i dettagli, vedere il riferimento dello stato . 20220307: M73 non imposter\u00e0 pi\u00f9 l'avanzamento della stampa su 0 se manca P . 20220304: Non esiste pi\u00f9 un valore predefinito per il parametro extruder delle sezioni di configurazione extruder_stepper . Se lo si desidera, specificare esplicitamente extruder: extruder per associare il motore passo-passo alla coda di movimento \"estrusore\" all'avvio. 20220210: Il comando SYNC_STEPPER_TO_EXTRUDER \u00e8 deprecato; il comando SET_EXTRUDER_STEP_DISTANCE \u00e8 deprecato; l'opzione di configurazione extruder shared_heater \u00e8 deprecata. Queste funzionalit\u00e0 verranno rimosse nel prossimo futuro. Sostituisci SET_EXTRUDER_STEP_DISTANCE con SET_EXTRUDER_ROTATION_DISTANCE . Sostituisci SYNC_STEPPER_TO_EXTRUDER con SYNC_EXTRUDER_MOTION . Sostituisci le sezioni di configurazione dell'estrusore usando shared_heater con le sezioni di configurazione extruder_stepper e aggiorna le macro di attivazione per usare SYNC_EXTRUDER_MOTION . 20220116: Il codice di calcolo della run_current per tmc2130, tmc2208, tmc2209 e tmc2660 \u00e8 cambiato. Per alcune impostazioni di run_current i driver possono ora essere configurati in modo diverso. Questa nuova configurazione dovrebbe essere pi\u00f9 accurata, ma potrebbe invalidare la precedente ottimizzazione del driver tmc. 20211230: Gli script per ottimizzare l'input shaper ( scripts/calibrate_shaper.py e scripts/graph_accelerometer.py ) sono stati migrati per utilizzare Python3 per impostazione predefinita. Di conseguenza, gli utenti devono installare le versioni Python3 di determinati pacchetti (ad esempio sudo apt install python3-numpy python3-matplotlib ) per continuare a utilizzare questi script. Per maggiori dettagli, fare riferimento a Installazione del software . In alternativa, gli utenti possono forzare temporaneamente l'esecuzione di questi script in Python 2 chiamando esplicitamente l'interprete Python2 nella console: python2 ~/klipper/scripts/calibrate_shaper.py ... 20211110: Il sensore di temperatura \"NTC 100K beta 3950\" \u00e8 obsoleto. Questo sensore verr\u00e0 rimosso nel prossimo futuro. La maggior parte degli utenti trover\u00e0 il sensore di temperatura \"Generico 3950\" pi\u00f9 accurato. Per continuare a utilizzare la definizione precedente (in genere meno accurata), definire un termistore personalizzato con temperature1: 25 , resistance1: 100000 e beta: 3950 . 20211104: L'opzione \"step pulse duration\" in \"make menuconfig\" \u00e8 stata rimossa. La durata del passaggio predefinita per i driver TMC configurati in modalit\u00e0 UART o SPI \u00e8 ora di 100 ns. Una nuova impostazione step_pulse_duration nella sezione stepper config dovrebbe essere impostata per tutti gli stepper che necessitano di una durata dell'impulso personalizzata. 20211102: diverse funzionalit\u00e0 deprecate sono state rimosse. L'opzione stepper step_distance \u00e8 stata rimossa (obsoleta nel 20201222). L'alias del sensore rpi_temperature \u00e8 stato rimosso (obsoleto il 20210219). L'opzione mcu pin_map \u00e8 stata rimossa (deprecata su 20210325). La gcode_macro default_parameter_<name> e l'accesso macro ai parametri dei comandi diversi dalla pseudo-variabile params sono stati rimossi (deprecato in 20210503). L'opzione del riscaldatore pid_integral_max \u00e8 stata rimossa (obsoleta il 20210612). 20210929: Klipper v0.10.0 rilasciato. 20210903: Il valore predefinito smooth_time per i riscaldatori \u00e8 cambiato in 1 secondo (da 2 secondi). Per la maggior parte delle stampanti ci\u00f2 si tradurr\u00e0 in un controllo della temperatura pi\u00f9 stabile. 20210830: il nome adxl345 predefinito \u00e8 ora \"adxl345\". Il parametro CHIP predefinito per ACCELEROMETER_MEASURE e ACCELEROMETER_QUERY ora \u00e8 \"adxl345\". 20210830: il comando adxl345 ACCELEROMETER_MEASURE non supporta pi\u00f9 un parametro RATE. Per modificare la frequenza delle query, aggiornare il file printer.cfg ed eseguire un comando RESTART. 20210821: Diverse impostazioni di configurazione in printer.configfile.settings verranno ora riportate come elenchi anzich\u00e9 come stringhe grezze. Se si desidera la stringa grezza effettiva, utilizzare invece printer.configfile.config . 20210819: In alcuni casi, un movimento di riferimento G28 pu\u00f2 terminare in una posizione che \u00e8 nominalmente al di fuori dell'intervallo di movimento valido. In rare situazioni ci\u00f2 pu\u00f2 causare errori di \"spostamento fuori portata\" confusi dopo l'homing. In tal caso, modificare gli script di avvio per spostare la testa utensile in una posizione valida subito dopo l'homing. 20210814: Gli pseudo-pin solo analogici su atmega168 e atmega328 sono stati rinominati da PE0/PE1 a PE2/PE3. 20210720: una sezione controller_fan ora monitora tutti i motori passo-passo per impostazione predefinita (non solo i motori passo-passo cinematici). Se si desidera il comportamento precedente, vedere l'opzione di configurazione stepper nel riferimento di configurazione . 20210703: Una sezione di configurazione samd_sercom deve ora specificare il bus sercom che sta configurando tramite l'opzione sercom . 20210612: L'opzione di configurazione pid_integral_max nelle sezioni riscaldatore e temperature_fan \u00e8 obsoleta. L'opzione verr\u00e0 rimossa nel prossimo futuro. 20210503: The gcode_macro default_parameter_<name> config option is deprecated. Use the params pseudo-variable to access macro parameters. Other methods for accessing macro parameters will be removed in the near future. Most users can replace a default_parameter_NAME: VALUE config option with a line like the following in the start of the macro: {% set NAME = params.NAME|default(VALUE)|float %} . See the Command Templates document for examples. 20210430: il comando SET_VELOCITY_LIMIT (e M204) ora pu\u00f2 impostare una velocit\u00e0, un'accelerazione e una square_corner_velocity maggiori dei valori specificati nel file di configurazione. 20210325: il supporto per l'opzione di configurazione pin_map \u00e8 deprecato. Utilizzare il file sample-aliases.cfg per tradurre i nomi dei pin del microcontroller effettivi. L'opzione di configurazione pin_map verr\u00e0 rimossa nel prossimo futuro. 20210313: Il supporto di Klipper per i microcontrollori che comunicano con il bus CAN \u00e8 cambiato. Se si utilizza il bus CAN, \u00e8 necessario eseguire nuovamente il flashing di tutti i microcontrollori e la configurazione di Klipper deve essere aggiornata . 20210310: Il valore predefinito TMC2660 per driver_SFILT \u00e8 stato modificato da 1 a 0. 20210227: I driver del motore passo-passo TMC in modalit\u00e0 UART o SPI ora vengono interrogati una volta al secondo ogni volta che sono abilitati - se il driver non pu\u00f2 essere contattato o se il driver segnala un errore, Klipper passer\u00e0 allo stato di spegnimento. 20210219: Il modulo rpi_temperature \u00e8 stato rinominato in temperature_host . Sostituisci tutte le occorrenze di sensor_type: rpi_temperature con sensor_type: temperature_host . Il percorso del file di temperatura pu\u00f2 essere specificato nella variabile di configurazione sensor_path . Il nome rpi_temperature \u00e8 deprecato e verr\u00e0 rimosso nel prossimo futuro. 20210201: Il comando TEST_RESONANCES ora disabiliter\u00e0 l'input shaping se era stato precedentemente abilitato (e lo riattiver\u00e0 dopo il test). Per ignorare questo comportamento e mantenere abilitato lo shaping dell'input, \u00e8 possibile passare un parametro aggiuntivo INPUT_SHAPING=1 al comando. 20210201: Il comando ACCELEROMETER_MEASURE aggiunger\u00e0 ora il nome del chip dell'accelerometro al nome del file di output se al chip \u00e8 stato assegnato un nome nella corrispondente sezione adxl345 di printer.cfg. 20201222: L'impostazione step_distance nelle sezioni di configurazione dello stepper \u00e8 obsoleta. Si consiglia di aggiornare la configurazione per utilizzare l'impostazione rotation_distance . Il supporto per step_distance verr\u00e0 rimosso nel prossimo futuro. 20201218: L'impostazione endstop_phase nel modulo endstop_phase \u00e8 stata sostituita con trigger_phase . Se si utilizza il modulo fasi endstop, sar\u00e0 necessario convertire in rotation_distance e ricalibrare eventuali fasi endstop eseguendo il comando ENDSTOP_PHASE_CALIBRATE. 20201218: le stampanti rotanti delta e polari ora devono specificare un gear_ratio per i loro stepper rotanti e potrebbero non specificare pi\u00f9 un parametro step_distance . Vedere il riferimento di configurazione per il formato del nuovo parametro gear_ratio. 20201213: Non \u00e8 valido specificare una Z \"position_endstop\" quando si utilizza \"probe:z_virtual_endstop\". Verr\u00e0 ora generato un errore se viene specificata una Z \"position_endstop\" con \"probe:z_virtual_endstop\". Rimuovere la definizione Z \"position_endstop\" per correggere l'errore. 20201120: La sezione di configurazione [board_pins] ora specifica il nome mcu in un parametro esplicito mcu: . Se si utilizza board_pins per un mcu secondario, \u00e8 necessario aggiornare la configurazione per specificare quel nome. Vedere il riferimento di configurazione per ulteriori dettagli. 20201112: Il tempo riportato da print_stats.print_duration \u00e8 cambiato. La durata precedente alla prima estrusione rilevata \u00e8 ora esclusa. 20201029: L'opzione di configurazione color_order_GRB di neopixel \u00e8 stata rimossa. Se necessario, aggiorna la configurazione per impostare la nuova opzione color_order su RGB, GRB, RGBW o GRBW. 20201029: L'opzione seriale nella sezione di configurazione di mcu non \u00e8 pi\u00f9 impostata su /dev/ttyS0. Nella rara situazione in cui /dev/ttyS0 \u00e8 la porta seriale desiderata, deve essere specificata esplicitamente. 20201020: Klipper v0.9.0 rilasciato. 20200902: Il calcolo della resistenza-to-temperatura dell'RTD per i convertitori MAX31865 \u00e8 stato corretto in modo che non fosse basso. Se si utilizza un dispositivo di questo tipo, \u00e8 necessario ricalibrare la temperatura di stampa e le impostazioni PID. 20200816: L'oggetto printer.gcode della macro gcode \u00e8 stato rinominato in printer.gcode_move . Diverse variabili non documentate in printer.toolhead e printer.gcode sono state rimosse. Vedere docs/Command_Templates.md per un elenco delle variabili di modello disponibili. 20200816: Il sistema \"action_\" della macro gcode \u00e8 cambiato. Sostituisci tutte le chiamate a printer.gcode.action_emergency_stop() con action_emergency_stop() , printer.gcode.action_respond_info() con action_respond_info() e printer.gcode.action_respond_error() con action_raise_error( ) . 20200809: Il sistema di menu \u00e8 stato riscritto. Se il menu \u00e8 stato personalizzato sar\u00e0 necessario aggiornare alla nuova configurazione. Vedere config/example-menu.cfg per i dettagli di configurazione e vedere klippy/extras/display/menu.cfg per esempi. 20200731: Il comportamento dell'attributo progress riportato dall'oggetto stampante virtual_sdcard \u00e8 cambiato. L'avanzamento non viene pi\u00f9 reimpostato su 0 quando una stampa viene sospesa. Ora riporter\u00e0 sempre lo stato di avanzamento in base alla posizione interna del file o 0 se nessun file \u00e8 attualmente caricato. 20200725: Il parametro di configurazione servo enable e il parametro SET_SERVO ENABLE sono stati rimossi. Aggiorna qualsiasi macro per usare SET_SERVO SERVO=my_servo WIDTH=0 per disabilitare un servo. 20200608: Il supporto del display LCD ha cambiato il nome di alcuni \"glifi\" interni. Se \u00e8 stato implementato un layout di visualizzazione personalizzato, potrebbe essere necessario aggiornare ai nomi dei glifi pi\u00f9 recenti (consultare klippy/extras/display/display.cfg per un elenco dei glifi disponibili). 20200606: i nomi dei pin su Linux Mcu sono cambiati. I pin ora hanno nomi nella forma gpiochip<chipid>/gpio<gpio> . Per gpiochip0 puoi anche usare un breve gpio<gpio> . Ad esempio, ci\u00f2 che prima veniva chiamato P20 ora diventa gpio20 o gpiochip0/gpio20 . 20200603: il layout LCD 16x4 predefinito non mostrer\u00e0 pi\u00f9 il tempo rimanente stimato in una stampa. (Verr\u00e0 mostrato solo il tempo trascorso.) Se si desidera il vecchio comportamento, \u00e8 possibile personalizzare la visualizzazione del menu con tali informazioni (vedere la descrizione di display_data in config/example-extras.cfg per i dettagli). 20200531: l'ID prodotto/fornitore USB predefinito \u00e8 ora 0x1d50/0x614e. Questi nuovi ID sono riservati a Klipper (grazie al progetto openmoko). Questa modifica non dovrebbe richiedere alcuna modifica alla configurazione, ma i nuovi ID potrebbero essere visualizzati nei registri di sistema. 20200524: Il valore predefinito per il campo tmc5160 pwm_freq \u00e8 ora zero (anzich\u00e9 uno). 20200425: La variabile del modello di comando gcode_macro printer.heater \u00e8 stata rinominata printer.heaters . 20200313: Il layout lcd predefinito per le stampanti multiestrusore con schermo 16x4 \u00e8 cambiato. Il layout dello schermo del singolo estrusore \u00e8 ora quello predefinito e mostrer\u00e0 l'estrusore attualmente attivo. Per utilizzare il layout di visualizzazione precedente, impostare \"display_group: _multiextruder_16x4\" nella sezione [display] del file printer.cfg. 20200308: La voce di menu predefinita __test \u00e8 stata rimossa. Se il file di configurazione ha un menu personalizzato, assicurati di rimuovere tutti i riferimenti a questa voce di menu __test . 20200308: le opzioni del menu \"deck\" e \"card\" sono state rimosse. Per personalizzare il layout di uno schermo lcd utilizzare le nuove sezioni display_data config (vedi config/example-extras.cfg per i dettagli). 20200109: Il modulo bed_mesh ora fa riferimento alla posizione della sonda per la configurazione della mesh. Pertanto, alcune opzioni di configurazione sono state rinominate per riflettere in modo pi\u00f9 accurato la funzionalit\u00e0 prevista. Per i piatti rettangolari, min_point e max_point sono stati rinominati rispettivamente in mesh_min e mesh_max . Per i piatti rotondi, bed_radius \u00e8 stato rinominato in mesh_radius . \u00c8 stata aggiunta anche una nuova opzione mesh_origin per i piatti rotondi. Si noti che queste modifiche sono anche incompatibili con i profili mesh salvati in precedenza. Se viene rilevato un profilo incompatibile, verr\u00e0 ignorato e pianificato per la rimozione. Il processo di rimozione pu\u00f2 essere completato emettendo il comando SAVE_CONFIG. L'utente dovr\u00e0 ricalibrare ogni profilo. 20191218: la sezione di configurazione del display non supporta pi\u00f9 \"lcd_type: st7567\". Usa invece il tipo di visualizzazione \"uc1701\" - imposta \"lcd_type: uc1701\" e cambia \"rs_pin: some_pin\" in \"rst_pin: some_pin\". Potrebbe anche essere necessario aggiungere un'impostazione di configurazione \"contrasto: 60\". 20191210: I comandi integrati T0, T1, T2, ... sono stati rimossi. Le opzioni di configurazione activate_gcode e deactivate_gcode dell'estrusore sono state rimosse. Se questi comandi (e script) sono necessari, definire le singole macro di stile [gcode_macro T0] che chiamano il comando ACTIVATE_EXTRUDER. Vedere i file config/sample-idex.cfg e sample-multi-extruder.cfg per esempi. 20191210: il supporto per il comando M206 \u00e8 stato rimosso. Sostituisci con chiamate a SET_GCODE_OFFSET. Se \u00e8 necessario il supporto per M206, aggiungere una sezione di configurazione [gcode_macro M206] che richiami SET_GCODE_OFFSET. (Ad esempio \"SET_GCODE_OFFSET Z=-{params.Z}\".) 20191202: il supporto per il parametro \"S\" non documentato del comando \"G4\" \u00e8 stato rimosso. Sostituire eventuali occorrenze di S con il parametro \"P\" standard (il ritardo specificato in millisecondi). 20191126: i nomi USB sono cambiati sui microcontrollori con supporto USB nativo. Ora usano un ID chip univoco per impostazione predefinita (ove disponibile). Se una sezione di configurazione \"mcu\" utilizza un'impostazione \"serial\" che inizia con \"/dev/serial/by-id/\", potrebbe essere necessario aggiornare la configurazione. Esegui \"ls /dev/serial/by-id/*\" in un terminale ssh per determinare il nuovo ID. 20191121: il parametro pressure_advance_lookahead_time \u00e8 stato rimosso. Vedere example.cfg per impostazioni di configurazione alternative. 20191112: la funzionalit\u00e0 di abilitazione virtuale del driver stepper tmc \u00e8 ora abilitata automaticamente se lo stepper non dispone di un pin di abilitazione stepper dedicato. Rimuovere i riferimenti a tmcXXXX:virtual_enable dal file config. La possibilit\u00e0 di controllare pi\u00f9 pin nella configurazione stepper enable_pin \u00e8 stata rimossa. Se sono necessari pi\u00f9 pin, utilizzare una sezione di configurazione multi_pin. 20191107: La sezione di configurazione dell'estrusore primario deve essere specificata come \"extruder\" e non pu\u00f2 pi\u00f9 essere specificata come \"extruder0\". I modelli di comando Gcode che richiedono lo stato dell'estrusore sono ora accessibili tramite \"{printer.extruder}\". 20191021: Klipper v0.8.0 rilasciato 20191003: L'opzione move_to_previous in [safe_z_homing] ora \u00e8 impostata su False. (Era effettivamente Falso prima del 20190918.) 20190918: L'opzione zhop in [safe_z_homing] viene sempre riapplicata dopo il completamento dell'homing dell'asse Z. Ci\u00f2 potrebbe richiedere agli utenti di aggiornare gli script personalizzati basati su questo modulo. 20190806: Il comando SET_NEOPIXEL \u00e8 stato rinominato in SET_LED. 20190726: il codice del dac mcp4728 \u00e8 cambiato. L'indirizzo i2c predefinito \u00e8 ora 0x60 e il riferimento di tensione \u00e8 ora relativo al riferimento interno di 2,048 volt del mcp4728. 20190710: l'opzione z_hop \u00e8 stata rimossa dalla sezione di configurazione [firmware_retract]. Il supporto z_hop era incompleto e potrebbe causare un comportamento errato con diversi filtri dei dati comuni. 20190710: I parametri opzionali del comando PROBE_ACCURACY sono stati modificati. Potrebbe essere necessario aggiornare eventuali macro o script che utilizzano quel comando. 20190628: tutte le opzioni di configurazione sono state rimosse dalla sezione [skew_correction]. La configurazione per skew_correction viene ora eseguita tramite il gcode SET_SKEW. Vedere Correzione inclinazione per l'utilizzo consigliato. 20190607: I parametri \"variable_X\" di gcode_macro (insieme al parametro VALUE di SET_GCODE_VARIABLE) vengono ora analizzati come valori literals di Python. Se \u00e8 necessario assegnare un valore a una stringa, racchiudere il valore tra virgolette in modo che venga valutato come una stringa. 20190606: le opzioni di configurazione \"samples\", \"samples_result\" e \"sample_retract_dist\" sono state spostate nella sezione di configurazione \"probe\". Queste opzioni non sono pi\u00f9 supportate nelle sezioni di configurazione \"delta_calibrate\", \"bed_tilt\", \"bed_mesh\", \"screws_tilt_adjust\", \"z_tilt\" o \"quad_gantry_level\". 20190528: La variabile magica \"status\" nella valutazione del modello gcode_macro \u00e8 stata rinominata \"printer\". 20190520: Il comando SET_GCODE_OFFSET \u00e8 stato modificato; aggiorna tutte le macro del codice g di conseguenza. Il comando non applicher\u00e0 pi\u00f9 l'offset richiesto al successivo comando G1. Il vecchio comportamento pu\u00f2 essere approssimato utilizzando il nuovo parametro \"MOVE=1\". 20190404: i pacchetti software host Python sono stati aggiornati. Gli utenti dovranno eseguire nuovamente lo script ~/klipper/scripts/install-octopi.sh (o in altro modo aggiornare le dipendenze di Python se non si utilizza un'installazione OctoPi standard). 20190404: I parametri i2c_bus e spi_bus (in varie sezioni di configurazione) ora prendono un nome bus anzich\u00e9 un numero. 20190404: I parametri di configurazione sx1509 sono stati modificati. Il parametro 'address' ora \u00e8 'i2c_address' e deve essere specificato come numero decimale. Dove 0x3E \u00e8 stato utilizzato in precedenza, specificare 62. 20190328: Il valore min_speed nella configurazione [temperature_fan] verr\u00e0 ora rispettato e la ventola funzioner\u00e0 sempre a questa velocit\u00e0 o superiore in modalit\u00e0 PID. 20190322: il valore predefinito per \"driver_HEND\" nelle sezioni di configurazione [tmc2660] \u00e8 stato modificato da 6 a 3. Il campo \"driver_VSENSE\" \u00e8 stato rimosso (ora viene calcolato automaticamente da run_current). 20190310: La sezione di configurazione [controller_fan] ora prende sempre un nome (come [controller_fan my_controller_fan]). 20190308: Il campo \"driver_BLANK_TIME_SELECT\" nelle sezioni di configurazione [tmc2130] e [tmc2208] \u00e8 stato rinominato in \"driver_TBL\". 20190308: la sezione di configurazione [tmc2660] \u00e8 stata modificata. Ora deve essere fornito un nuovo parametro di configurazione sense_resistor. Il significato di molti dei parametri driver_XXX \u00e8 cambiato. 20190228: gli utenti di SPI o I2C su schede SAMD21 devono ora specificare i pin del bus tramite una sezione di configurazione [samd_sercom]. 20190224: l'opzione bed_shape \u00e8 stata rimossa da bed_mesh. L'opzione raggio \u00e8 stata rinominata bed_radius. Gli utenti con letti rotondi dovrebbero fornire le opzioni bed_radius e round_probe_count. 20190107: il parametro i2c_address nella sezione di configurazione mcp4451 \u00e8 stato modificato. Questa \u00e8 un'impostazione comune su Smoothieboards. Il nuovo valore \u00e8 la met\u00e0 del vecchio valore (88 dovrebbe essere cambiato in 44 e 90 dovrebbe essere cambiato in 45). 20181220: Klipper v0.7.0 rilasciato","title":"Cambiamenti"},{"location":"Config_Reference.html","text":"Riferimenti configurazione \u00b6 Questo documento \u00e8 un riferimento per le opzioni disponibili nel file di configurazione di Klipper. Le descrizioni in questo documento sono formattate in modo che sia possibile tagliarle e incollarle in un file di configurazione della stampante. Consulta il documento di installazione per informazioni sulla configurazione di Klipper e sulla scelta di un file di configurazione iniziale. Configurazione del microcontrollore \u00b6 Formato dei nomi dei pin del microcontrollore \u00b6 Molte opzioni di configurazione richiedono il nome di un pin del microcontrollore. Klipper usa i nomi hardware per questi pin, ad esempio \"PA4\". I nomi dei pin possono essere preceduti da ! per indicare che deve essere utilizzata una polarit\u00e0 inversa (ad esempio, trigger su basso anzich\u00e9 alto). I pin di input possono essere preceduti da ^ per indicare che un resistore di pull-up hardware deve essere abilitato per il pin. Se il microcontrollore supporta resistori pull-down, un pin di ingresso pu\u00f2 in alternativa essere preceduto da ~ . Nota, alcune sezioni di configurazione potrebbero \"creare\" pin aggiuntivi. Quando ci\u00f2 si verifica, la sezione di configurazione che definisce i pin deve essere elencata nel file di configurazione prima di qualsiasi sezione che utilizza tali pin. [mcu] \u00b6 Configurazione del microcontrollore primario. [mcu] serial: # La porta seriale per la connessione all'MCU. In caso di dubbi (o se # cambia) vedere \"Dov'\u00e8 la mia porta seriale?\" sezione delle FAQ. # Questo parametro deve essere fornito quando si utilizza una # porta seriale. #baud: 250000 # La velocit\u00e0 di trasmissione da utilizzare. Il valore predefinito \u00e8 250000. #canbus_uuid: # Se si utilizza un dispositivo collegato a un bus CAN, questo imposta # l'identificatore univoco del chip a cui connettersi. Questo valore deve # essere fornito quando si utilizza il bus CAN per la comunicazione. #canbus_interface: # Se si utilizza un dispositivo collegato a un bus CAN, viene impostata # l'interfaccia di rete CAN da utilizzare. L'impostazione predefinita \u00e8 'can0'. #restart_method: # Questo controlla il meccanismo che l'host utilizzer\u00e0 per reimpostare # il microcontrollore. Le scelte sono \"arduino\", \"cheetah\", \"rpi_usb\" e # \"command\". Il metodo 'arduino' (attiva/disattiva DTR) \u00e8 comune su # schede Arduino e cloni. Il metodo 'cheetah' \u00e8 un metodo speciale # necessario per alcune schede Fysetc Cheetah. Il metodo \"rpi_usb\" # \u00e8 utile sulle schede Raspberry Pi con microcontrollori alimentati # tramite USB: disabilita brevemente l'alimentazione a tutte le porte # USB per eseguire un ripristino del microcontrollore. Il metodo # \"comando\" prevede l'invio di un comando Klipper al microcontrollore # in modo che possa reimpostarsi. L'impostazione predefinita \u00e8 # 'arduino' se il microcontrollore comunica su una porta seriale, # altrimenti 'comando'. [mcu my_extra_mcu] \u00b6 Microcontrollori aggiuntivi (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"mcu\"). Microcontrollori aggiuntivi introducono pin aggiuntivi che possono essere configurati come riscaldatori, stepper, ventole, ecc. Ad esempio, se viene introdotta una sezione \"[mcu extra_mcu]\", i pin come \"extra_mcu:ar9\" possono quindi essere utilizzati altrove nella configurazione (dove \"ar9\" \u00e8 un nome pin hardware o un nome alias sul dato mcu). [mcu my_extra_mcu] # Vedere la sezione \"mcu\" per i parametri di configurazione. Impostazioni cinematiche comuni \u00b6 [printer] \u00b6 La sezione printer controlla le impostazioni di alto livello della stampante. [printer] kinematics: # Il tipo di stampante in uso. Questa opzione pu\u00f2 essere una delle # seguenti: cartesian, corexy, corexz, hybrid_corexy, hybrid_corexz, # rotary_delta, delta, deltesian, polar, winch o nessuno. # Questo parametro deve essere specificato. max_velocity: # Velocit\u00e0 massima (in mm/s) della testa di stampa (relativa alla stampa). # Questo parametro deve essere specificato. max_accel: # Accelerazione massima (in mm/s^2) della testina (relativa alla stampa). # Questo parametro deve essere specificato. #max_accel_to_decel: # Una pseudo accelerazione (in mm/s^2) che controlla la velocit\u00e0 con cui # la testa di stampa pu\u00f2 passare dall'accelerazione alla decelerazione. Viene # utilizzato per ridurre la velocit\u00e0 massima di brevi movimenti a zig-zag # (e quindi ridurre le vibrazioni della stampante dovute a questi movimenti). # Il valore predefinito \u00e8 met\u00e0 di max_accel. #square_corner_velocity: 5.0 # La velocit\u00e0 massima (in mm/s) alla quale la testa di stampa pu\u00f2 viaggiare # su un angolo di 90 gradi. Un valore diverso da zero pu\u00f2 ridurre le variazioni # delle portate dell'estrusore consentendo variazioni istantanee della velocit\u00e0 # della testa utensile durante le curve. Questo valore configura l'algoritmo # interno di cornering della velocit\u00e0 centripeta; gli angoli con angoli maggiori # di 90 gradi avranno una velocit\u00e0 in curva maggiore mentre gli angoli con # angoli inferiori a 90 gradi avranno una velocit\u00e0 in curva inferiore. Se questo # \u00e8 impostato su zero, la testa utensile decelerer\u00e0 fino a zero ad ogni angolo. # Il valore predefinito \u00e8 5 mm/s. [stepper] \u00b6 Definizioni di motori passo-passo. Diversi tipi di stampante (come specificato dall'opzione \"cinematica\" nella sezione di configurazione [stampante]) richiedono nomi diversi per lo stepper (ad esempio, stepper_x vs stepper_a ). Di seguito sono riportate le definizioni comuni di stepper. Vedere il documento distanza di rotazione per informazioni sul calcolo del parametro rotation_distance . Consultare il documento Multi-MCU homing per informazioni sull'homing utilizzando pi\u00f9 microcontrollori. [stepper_x] step_pin: # Pin GPIO Step (attivato in alto) . Questo parametro deve essere fornito. dir_pin: # Pin GPIO di direzione (alto indica una direzione positiva). # Questo parametro deve essere fornito. enable_pin: # Pin GPIO di abilitazione (l'impostazione predefinita \u00e8 abilita alto; usa ! # per indicare abilita basso). Se questo parametro non viene fornito, il # driver del motore passo-passo deve essere sempre abilitato. rotation_distance: # Distanza (in mm) che l'asse percorre con una rotazione completa del # motore passo-passo (o viene specificata la marcia finale del rapporto di # trasmissione). Questo parametro deve essere fornito. microsteps: # Il numero di micropassi utilizzati dal driver del motore passo-passo. # Questo parametro deve essere fornito. #full_steps_per_rotation: 200 # Il numero di passi completi per una rotazione del motore passo-passo. # Impostarlo su 200 per un motore passo-passo da 1.8 gradi o su 400 per # un motore da 0.9 gradi. Il valore predefinito \u00e8 200. #gear_ratio: # Il rapporto di trasmissione se il motore passo-passo \u00e8 collegato all'asse # tramite un riduttore. Ad esempio, si pu\u00f2 specificare \"5:1\" se \u00e8 in uso un # riduttore 5 a 1. Se l'asse ha pi\u00f9 riduttori, \u00e8 possibile specificare un elenco # di rapporti di trasmissione separati da virgole (ad esempio, \"57:11, 2:1\"). # Se viene specificato gear_ratio, rotation_distance specifica la distanza # percorsa dall'asse per una rotazione completa dell'ingranaggio finale. # L'impostazione predefinita \u00e8 di non utilizzare un rapporto di trasmissione. #step_pulse_duration: # Il tempo minimo tra il fronte del segnale dell'impulso del passo e il # successivo fronte del segnale \"non passo\". Viene utilizzato anche per # impostare il tempo minimo tra un impulso di passo e un segnale di cambio # di direzione. L'impostazione predefinita \u00e8 0.000000100 (100ns) per gli # stepper TMC configurati in modalit\u00e0 UART o SPI e l'impostazione # predefinita \u00e8 0.000002 (che \u00e8 2us) per tutti gli altri stepper. endstop_pin: # Pin di rilevamento interruttore di fine corsa. Se questo pin di fine corsa # si trova su un mcu diverso dal motore passo-passo, abilita il # \"homing multi-mcu\". Questo parametro deve essere fornito per gli # stepper X, Y e Z su stampanti in stile cartesiano. #position_min: 0 # Distanza minima valida (in mm) alla quale l'utente pu\u00f2 comandare # il movimento dello stepper. Il valore predefinito \u00e8 0 mm. position_endstop: # Posizione del finecorsa (in mm). Questo parametro deve essere fornito # per gli stepper X, Y e Z su stampanti in stile cartesiano. position_max: # Distanza massima valida (in mm) alla quale l'utente pu\u00f2 comandare lo # spostamento dello stepper. Questo parametro deve essere fornito per # gli stepper X, Y e Z su stampanti in stile cartesiano. #homing_speed: 5.0 # Velocit\u00e0 massima (in mm/s) dello stepper durante l'homing. # Il valore predefinito \u00e8 5 mm/s. #homing_retract_dist: 5.0 # Distanza dall'arretramento (in mm) prima della corsa di riferimento # una seconda volta durante la corsa di riferimento. Impostalo a zero per # disabilitare la seconda casa. Il valore predefinito \u00e8 5 mm. #homing_retract_speed: # Velocit\u00e0 da utilizzare nella corsa di ritorno dopo l'homing nel caso in # cui questa dovesse essere diversa dalla velocit\u00e0 di homing, che \u00e8 # l'impostazione predefinita per questo parametro #second_homing_speed: # Velocit\u00e0 (in mm/s) dello stepper durante l'esecuzione del secondo # homing. L'impostazione predefinita \u00e8 homing_speed/2. #homing_positive_dir: # Se true, l'homing far\u00e0 muovere lo stepper in una direzione positiva # (allontanandosi da zero); se falso, home verso zero. \u00c8 meglio utilizzare # l'impostazione predefinita piuttosto che specificare questo parametro. # Il valore predefinito \u00e8 true se position_endstop \u00e8 vicino a position_max # false se vicino a position_min. Cinematica cartesiana \u00b6 Vedere example-cartesian.cfg per un file di configurazione della cinematica cartesiana di esempio. Qui sono descritti solo i parametri specifici delle stampanti cartesiane - vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: cartesian max_z_velocity: # Imposta la velocit\u00e0 massima (in mm/s) di movimento lungo # l'asse z. Questa impostazione pu\u00f2 essere utilizzata per limitare # la velocit\u00e0 massima del motore passo-passo z. L'impostazione # predefinita \u00e8 utilizzare max_velocity per max_z_velocity. max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento # lungo l'asse z. Limita l'accelerazione del motore passo-passo z. # L'impostazione predefinita \u00e8 utilizzare max_accel per max_z_accel. # La sezione stepper_x viene utilizzata per descrivere lo stepper # che controlla l'asse X in un robot cartesiano. [stepper_x] # La sezione stepper_y viene utilizzata per descrivere lo stepper # che controlla l'asse Y in un robot cartesiano. [stepper_y] # La sezione stepper_z viene utilizzata per descrivere lo stepper # che controlla l'asse Z in un robot cartesiano. [stepper_z] Cinematica Delta lineare \u00b6 Vedere example-delta.cfg per un file di configurazione della cinematica delta lineare di esempio. Consultare la guida alla calibrazione delta per informazioni sulla calibrazione. Qui vengono descritti solo i parametri specifici per le stampanti delta lineari - vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: delta max_z_velocity: # Per le stampanti delta questo limita la velocit\u00e0 massima (in mm/s) dei # movimenti con movimento dell'asse z. Questa impostazione pu\u00f2 essere # utilizzata per ridurre la velocit\u00e0 massima dei movimenti su/gi\u00f9 (che # richiedono una velocit\u00e0 di incremento maggiore rispetto ad altri # movimenti su una stampante delta). L'impostazione predefinita \u00e8 # utilizzare max_velocity per max_z_velocity. #max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento lungo # l'asse z. L'impostazione pu\u00f2 essere utile se la stampante pu\u00f2 # raggiungere un'accelerazione maggiore sui movimenti XY rispetto ai # movimenti Z (ad esempio, quando si utilizza l'input shaper). # L'impostazione predefinita \u00e8 utilizzare max_accel per max_z_accel. #minimum_z_position: 0 # La posizione Z minima in cui l'utente pu\u00f2 comandare alla testa di # spostarsi. Il valore predefinito \u00e8 0. delta_radius: # Raggio (in mm) del cerchio orizzontale formato dalle tre torri ad # asse lineare. Questo parametro pu\u00f2 anche essere calcolato come: # delta_radius = smooth_rod_offset - effector_offset - carriage_offset # Questo parametro deve essere fornito. #print_radius: # Il raggio (in mm) delle coordinate XY della testa di stampa valide. # \u00c8 possibile utilizzare questa impostazione per personalizzare il # controllo dell'intervallo dei movimenti della testa. Se qui # viene specificato un valore elevato, potrebbe essere possibile # comandare la collisione della testa di stampa con una torre. # L'impostazione predefinita \u00e8 usare delta_radius per print_radius # (che normalmente impedirebbe una collisione con torri). # La sezione stepper_a descrive lo stepper che controlla la torre # anteriore sinistra (a 210 gradi). Questa sezione controlla anche i # parametri di homing (velocit\u00e0 di homing, homing retract_dist) # per tutte le torri. [stepper_a] position_endstop: # Distanza (in mm) tra l'ugello e il piatto quando l'ugello si trova al # centro dell'area di costruzione e si attiva il finecorsa. Questo # parametro deve essere fornito per stepper_a; per stepper_b e # stepper_c questo parametro \u00e8 predefinito sul valore specificato # per stepper_a. arm_length: # Lunghezza (in mm) dell'asta diagonale che collega questa torre # alla testa di stampa. Questo parametro deve essere fornito per # stepper_a; per stepper_b e stepper_c questo parametro \u00e8 predefinito sul valore specificato per stepper_a. #angle: # Questa opzione specifica l'angolo (in gradi) a cui si trova la torre. # Il valore predefinito \u00e8 210 per stepper_a, 330 per stepper_b e 90 # per stepper_c. # La sezione stepper_b descrive lo stepper che controlla la torre # anteriore destra (a 330 gradi). [stepper_b] # La sezione stepper_c descrive lo stepper che controlla la torre # posteriore (a 90 gradi). [stepper_c] # La sezione delta_calibrate abilita un comando G-code esteso # DELTA_CALIBRATE in grado di calibrare le posizioni e gli angoli # dei finecorsa della torre. [delta_calibrate] radius: # Raggio (in mm) dell'area che pu\u00f2 essere sondata. Questo \u00e8 # il raggio delle coordinate dell'ugello da sondare; se si utilizza # una sonda automatica con un offset XY, scegliere un raggio # sufficientemente piccolo in modo che la sonda si adatti sempre # al piatto. Questo parametro deve essere fornito. #speed: 50 # La velocit\u00e0 (in mm/s) degli spostamenti senza probing durante # la calibrazione. Il valore predefinito \u00e8 50. #horizontal_move_z: 5 # L'altezza (in mm) a cui la testa deve essere comandata di # spostarsi appena prima di avviare un'operazione di sonda. # L'impostazione predefinita \u00e8 5. Cinematica Deltesiana \u00b6 Vedere example-deltesian.cfg per un esempio di file di configurazione della cinematica deltesiana. Qui sono descritti solo i parametri specifici per le stampanti deltesiane - vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: deltesian max_z_velocity: # Per le stampanti deltesiane, ci\u00f2 limita la velocit\u00e0 massima (in mm/s) # dei movimenti con movimento dell'asse z. Questa impostazione pu\u00f2 # essere utilizzata per ridurre la velocit\u00e0 massima dei movimenti su/gi\u00f9 # (che richiedono una velocit\u00e0 di incremento maggiore rispetto ad altri # movimenti su una stampante deltesiana). L'impostazione predefinita # \u00e8 utilizzare max_velocity per max_z_velocity. #max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento lungo # l'asse z. L'impostazione pu\u00f2 essere utile se la stampante pu\u00f2 raggiungere # un'accelerazione maggiore sui movimenti XY rispetto ai movimenti Z # (ad esempio, quando si utilizza l'input shaper). L'impostazione # predefinita \u00e8 utilizzare max_accel per max_z_accel. #minimum_z_position: 0 # La posizione Z minima in cui l'utente pu\u00f2 comandare alla testa di # spostarsi. Il valore predefinito \u00e8 0. #min_angle: 5 # Questo rappresenta l'angolo minimo (in gradi) rispetto all'orizzontale # che le braccia deltesiane possono raggiungere. Questo parametro ha lo # scopo di impedire che i bracci diventino completamente orizzontali, il # che rischierebbe l'inversione accidentale dell'asse XZ. # L'impostazione predefinita \u00e8 5. #print_width: # La distanza (in mm) delle coordinate X della testa utensile valide. # \u00c8 possibile utilizzare questa impostazione per personalizzare il # controllo dell'intervallo dei movimenti della testa utensile. Se # qui viene specificato un valore elevato, potrebbe essere possibile # comandare la collisione della testa utensile con una torre. Questa # impostazione di solito corrisponde alla larghezza del piatto (in mm). #slow_ratio: 3 # Il rapporto utilizzato per limitare la velocit\u00e0 e l'accelerazione sui # movimenti vicini agli estremi dell'asse X. Se la distanza verticale # divisa per la distanza orizzontale supera il valore di slow_ratio, la # velocit\u00e0 e l'accelerazione sono limitate alla met\u00e0 dei loro valori # nominali. Se la distanza verticale divisa per la distanza orizzontale # supera il doppio del valore di slow_ratio, la velocit\u00e0 e l'accelerazione # sono limitate a un quarto dei loro valori nominali. # Il valore predefinito \u00e8 3. # la sezione stepper_left \u00e8 usata per descrivere lo stepper che controlla # la torre di sinistra. Questa sezione controlla anche i parametri di # homing (velocit\u00e0 di homing, homing retract_dist) per tutte le torri. [stepper_left] position_endstop: # Distanza (in mm) tra l'ugello e il piatto quando l'ugello si trova al # centro dell'area di costruzione e vengono attivati i finecorsa. Questo # parametro deve essere fornito per stepper_left; per stepper_right # questo parametro \u00e8 predefinito sul valore specificato per stepper_left. arm_length: # Lunghezza (in mm) dell'asta diagonale che collega il carrello torre # alla testina di stampa. Questo parametro deve essere fornito per # stepper_left; per stepper_right, questo parametro per impostazione # predefinita \u00e8 il valore specificato per stepper_left. arm_x_length: # Distanza orizzontale tra la testina di stampa e la torre quando le # stampanti \u00e8 in homing. Questo parametro deve essere fornito # per stepper_left; per stepper_right, questo parametro per impostazione # predefinita \u00e8 il valore specificato per stepper_left. # La sezione stepper_right \u00e8 usata per descrivere lo stepper che # controlla la torre destra. [stepper_right] # La sezione stepper_y viene utilizzata per descrivere lo stepper che # controlla l'asse Y in un robot deltesiano. [stepper_y] Cinematica CoreXY \u00b6 Vedere example-corexy.cfg per un file cinematico corexy (e h-bot) di esempio. Qui sono descritti solo i parametri specifici per le stampanti corexy - vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: corexy max_z_velocity: # Imposta la velocit\u00e0 massima (in mm/s) di movimento lungo l'asse z. # Questa impostazione pu\u00f2 essere utilizzata per limitare la velocit\u00e0 # massima del motore passo-passo z. L'impostazione predefinita \u00e8 # utilizzare max_velocity per max_z_velocity. max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento # lungo l'asse z. Limita l'accelerazione del motore passo-passo z. # L'impostazione predefinita \u00e8 utilizzare max_accel per max_z_accel. # La sezione stepper_x viene utilizzata per descrivere l'asse X e lo # stepper che controlla il movimento X+Y. [stepper_x] # La sezione stepper_y viene utilizzata per descrivere l'asse Y e lo # stepper che controlla il movimento X+Y. [stepper_y] # La sezione stepper_z viene utilizzata per descrivere l'asse Z [stepper_z] Cinematica CoreXZ \u00b6 Vedere example-corexz.cfg per un file di configurazione della cinematica corexz di esempio. Qui sono descritti solo i parametri specifici per le stampanti corexz - vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: corexz max_z_velocity: # Imposta la velocit\u00e0 massima (in mm/s) di movimento lungo l'asse z. # L'impostazione predefinita \u00e8 utilizzare max_velocity per # max_z_velocity. max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento lungo # l'asse z. L'impostazione predefinita \u00e8 utilizzare max_accel per # max_z_accel. # La sezione stepper_x viene utilizzata per descrivere l'asse X e lo # stepper che controlla il movimento X+Z. [stepper_x] # La sezione stepper_y viene utilizzata per descrivere l'asse Y [stepper_y] # La sezione stepper_z viene utilizzata per descrivere l'asse Z e lo # stepper che controlla il movimento X+Z. [stepper_z] Cinematica Hybrid-CoreXY \u00b6 Vedere example-hybrid-corexy.cfg per un file di configurazione della cinematica corexy ibrida di esempio. Questa cinematica \u00e8 anche nota come cinematica Markforged. Qui vengono descritti solo i parametri specifici delle stampanti corexy ibride, vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: hybrid_corexy max_z_velocity: # Imposta la velocit\u00e0 massima (in mm/s) di movimento lungo # l'asse z. L'impostazione predefinita \u00e8 utilizzare max_velocity # per max_z_velocity. max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento # lungo l'asse z. L'impostazione predefinita \u00e8 utilizzare max_accel # per max_z_accel. # La sezione stepper_x viene utilizzata per descrivere l'asse X e lo # stepper che controlla il movimento X-Y. [stepper_x] # La sezione stepper_y viene utilizzata per descrivere lo stepper # che controlla l'asse Y. [stepper_y] # La sezione stepper_z viene utilizzata per descrivere lo stepper # che controlla l'asse Z. [stepper_z] Cinematica Hybrid-CoreXZ \u00b6 Vedere example-hybrid-corexz.cfg per un file di configurazione della cinematica corexz ibrido di esempio. Questa cinematica \u00e8 anche nota come cinematica Markforged. Qui vengono descritti solo i parametri specifici delle stampanti corexy ibride, vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: hybrid_corexz max_z_velocity: # Questo imposta la velocit\u00e0 massima (in mm/s) di movimento lungo # l'asse z. L'impostazione predefinita \u00e8 utilizzare max_velocity per # max_z_velocity. max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento lungo # l'asse z. L'impostazione predefinita \u00e8 utilizzare max_accel per # max_z_accel. # La sezione stepper_x viene utilizzata per descrivere l'asse X e lo # stepper che controlla il movimento X-Z. [stepper_x] # La sezione stepper_y viene utilizzata per descrivere lo stepper che # controlla l'asse Y. [stepper_y] # La sezione stepper_z viene utilizzata per descrivere lo stepper che # controlla l'asse Z. [stepper_z] Cinematica polare \u00b6 Vedere example-polar.cfg per un file di configurazione della cinematica polare di esempio. Qui sono descritti solo i parametri specifici per le stampanti polari - vedere impostazioni cinematiche comuni per i parametri disponibili. LA CINEMATICA POLARE \u00c8 UN LAVORO IN CORSO. \u00c8 noto che i movimenti intorno alla posizione 0, 0 non funzionano correttamente. [printer] kinematics: polar max_z_velocity: # Imposta la velocit\u00e0 massima (in mm/s) di movimento lungo l'asse z. # Questa impostazione pu\u00f2 essere utilizzata per limitare la velocit\u00e0 # massima del motore passo-passo z. L'impostazione predefinita \u00e8 # utilizzare max_velocity per max_z_velocity. max_z_accel: # Questo imposta l'accelerazione massima (in mm/s^2) del # movimento lungo l'asse z. Limita l'accelerazione del motore # passo-passo z. L'impostazione predefinita \u00e8 utilizzare max_accel # per max_z_accel. # La sezione stepper_bed viene utilizzata per descrivere lo stepper # che controlla il piatto [stepper_bed] gear_ratio: # \u00c8 necessario specificare un gear_ratio e rotation_distance # potrebbe non essere specificato. Ad esempio, se il piatto ha una # ruota a 80 denti azionata da uno stepper con una ruota a 16 # denti, si dovrebbe specificare un rapporto di trasmissione di \"80:16\". # Questo parametro deve essere fornito. # La sezione stepper_arm \u00e8 usata per descrivere lo stepper che # controlla il carrello sul braccio. [stepper_arm] # La sezione stepper_z viene utilizzata per descrivere lo stepper che # controlla l'asse Z. [stepper_z] Rotary delta Kinematics \u00b6 See example-rotary-delta.cfg for an example rotary delta kinematics config file. Qui vengono descritti solo i parametri specifici delle stampanti delta rotative - vedere impostazioni cinematiche comuni per i parametri disponibili. ROTARY DELTA KINEMATICS ARE A WORK IN PROGRESS. Homing moves may timeout and some boundary checks are not implemented. [printer] kinematics: rotary_delta max_z_velocity: # For delta printers this limits the maximum velocity (in mm/s) of # moves with z axis movement. This setting can be used to reduce the # maximum speed of up/down moves (which require a higher step rate # than other moves on a delta printer). The default is to use # max_velocity for max_z_velocity. #minimum_z_position: 0 # The minimum Z position that the user may command the head to move # to. The default is 0. shoulder_radius: # Radius (in mm) of the horizontal circle formed by the three # shoulder joints, minus the radius of the circle formed by the # effector joints. This parameter may also be calculated as: # shoulder_radius = (delta_f - delta_e) / sqrt(12) # This parameter must be provided. shoulder_height: # Distance (in mm) of the shoulder joints from the bed, minus the # effector toolhead height. This parameter must be provided. # The stepper_a section describes the stepper controlling the rear # right arm (at 30 degrees). This section also controls the homing # parameters (homing_speed, homing_retract_dist) for all arms. [stepper_a] gear_ratio: # A gear_ratio must be specified and rotation_distance may not be # specified. For example, if the arm has an 80 toothed pulley driven # by a pulley with 16 teeth, which is in turn connected to a 60 # toothed pulley driven by a stepper with a 16 toothed pulley, then # one would specify a gear ratio of \"80:16, 60:16\". This parameter # must be provided. position_endstop: # Distance (in mm) between the nozzle and the bed when the nozzle is # in the center of the build area and the endstop triggers. This # parameter must be provided for stepper_a; for stepper_b and # stepper_c this parameter defaults to the value specified for # stepper_a. upper_arm_length: # Length (in mm) of the arm connecting the \"shoulder joint\" to the # \"elbow joint\". This parameter must be provided for stepper_a; for # stepper_b and stepper_c this parameter defaults to the value # specified for stepper_a. lower_arm_length: # Length (in mm) of the arm connecting the \"elbow joint\" to the # \"effector joint\". This parameter must be provided for stepper_a; # for stepper_b and stepper_c this parameter defaults to the value # specified for stepper_a. #angle: # This option specifies the angle (in degrees) that the arm is at. # The default is 30 for stepper_a, 150 for stepper_b, and 270 for # stepper_c. # The stepper_b section describes the stepper controlling the rear # left arm (at 150 degrees). [stepper_b] # The stepper_c section describes the stepper controlling the front # arm (at 270 degrees). [stepper_c] # The delta_calibrate section enables a DELTA_CALIBRATE extended # g-code command that can calibrate the shoulder endstop positions. [delta_calibrate] radius: # Radius (in mm) of the area that may be probed. This is the radius # of nozzle coordinates to be probed; if using an automatic probe # with an XY offset then choose a radius small enough so that the # probe always fits over the bed. This parameter must be provided. #speed: 50 # The speed (in mm/s) of non-probing moves during the calibration. # The default is 50. #horizontal_move_z: 5 # The height (in mm) that the head should be commanded to move to # just prior to starting a probe operation. The default is 5. Cable winch Kinematics \u00b6 See the example-winch.cfg for an example cable winch kinematics config file. Qui sono descritti solo i parametri specifici per le stampanti cavo verricello - vedere impostazioni comuni cinematiche per i parametri disponibili. CABLE WINCH SUPPORT IS EXPERIMENTAL. Homing is not implemented on cable winch kinematics. In order to home the printer, manually send movement commands until the toolhead is at 0, 0, 0 and then issue a G28 command. [printer] kinematics: winch # The stepper_a section describes the stepper connected to the first # cable winch. A minimum of 3 and a maximum of 26 cable winches may be # defined (stepper_a to stepper_z) though it is common to define 4. [stepper_a] rotation_distance: # The rotation_distance is the nominal distance (in mm) the toolhead # moves towards the cable winch for each full rotation of the # stepper motor. This parameter must be provided. anchor_x: anchor_y: anchor_z: # The X, Y, and Z position of the cable winch in cartesian space. # These parameters must be provided. Nessuna cinematica \u00b6 \u00c8 possibile definire una cinematica speciale \"none\" per disabilitare il supporto cinematico in Klipper. Questo pu\u00f2 essere utile per controllare dispositivi che non sono le tipiche stampanti 3D o per scopi di debug. [printer] kinematics: none max_velocity: 1 max_accel: 1 # \u00c8 necessario definire i parametri max_velocity e max_accel. I valori # non vengono utilizzati per la cinematica \"none\". Supporto per estrusore e piatto riscaldato comuni \u00b6 [extruder] \u00b6 La sezione dell'estrusore viene utilizzata per descrivere i parametri del riscaldatore per l'hotend dell'ugello insieme allo stepper che controlla l'estrusore. Per ulteriori informazioni, vedere riferimento comando . Consultare la Guida all'avanzamento della pressione per informazioni sulla regolazione dell'anticipo della pressione. [extruder] step_pin: dir_pin: enable_pin: microsteps: rotation_distance: #full_steps_per_rotation: #gear_ratio: # Vedere la sezione \"stepper\" per una descrizione di quanto sopra # Se nessuno dei parametri precedenti \u00e8 specificato, nessuno stepper # sar\u00e0 associato all'hotend dell'ugello (sebbene un comando # SYNC_EXTRUDER_MOTION possa associarne uno in fase di esecuzione). nozzle_diameter: # Diametro dell'orifizio dell'ugello (in mm). Questo parametro deve essere fornito. filament_diameter:: # Il diametro nominale del filamento grezzo (in mm) quando # entra nell'estrusore. Questo parametro deve essere fornito. #max_extrude_cross_section: # Area massima (in mm^2) di una sezione trasversale dell'estrusione # (ad es. larghezza dell'estrusione moltiplicata per l'altezza dello strato). # Questa impostazione previene quantit\u00e0 eccessive di estrusione # durante spostamenti XY relativamente piccoli. # Se un movimento richiede una velocit\u00e0 di estrusione che supererebbe questo valore # causer\u00e0 la restituzione di un errore. L'impostazione predefinita # \u00e8: 4.0 * diametro_ugello^2 instantaneous_corner_velocity: 1.000 # La variazione di velocit\u00e0 istantanea massima (in mm/s) del # estrusore durante il collegamento di due movimenti. Il valore predefinito \u00e8 1 mm/s. #max_extrude_only_distance: 50.0 # Lunghezza massima (in mm di filamento grezzo) che pu\u00f2 avere un movimento # di retrazione o di sola estrusione. Se uno spostamento di retrazione # o di sola estrusione richiede una distanza maggiore di questo valore, # verr\u00e0 restituito un errore. Il valore predefinito \u00e8 50 mm. #max_extrude_only_velocity: #max_extrude_only_accel: # Velocit\u00e0 massima (in mm/s) e accelerazione (in mm/s^2) del # motore estrusore per retrazioni e movimenti di sola estrusione. # Queste impostazioni non hanno alcun impatto sui normali movimenti di stampa. # Se non specificati, vengono calcolati per corrispondere al limite che avrebbe # un movimento di stampa XY con una sezione trasversale di 4,0*diametro_ugello^2. #pressure_advance: 0.0 # La quantit\u00e0 di filamento grezzo da spingere nell'estrusore durante # accelerazione dell'estrusore. Una uguale quantit\u00e0 di filamento viene # retratta durante la decelerazione. Si misura in millimetri per # millimetro/secondo. Il valore predefinito \u00e8 0, che disabilita l'avanzamento della pressione. #pressure_advance_smooth_time: 0,040 # Un intervallo di tempo (in secondi) da utilizzare per calcolare la velocit\u00e0 media # dell'estrusore per l'avanzamento della pressione. Un valore maggiore si traduce # in movimenti pi\u00f9 fluidi dell'estrusore. Questo parametro non pu\u00f2 superare i 200 ms. # Questa impostazione si applica solo se pressure_advance \u00e8 diverso da zero. # Il valore predefinito \u00e8 0,040 (40 millisecondi). # # Le restanti variabili descrivono il riscaldatore dell'estrusore. heater_pin: # Pin di uscita PWM che controlla il riscaldatore. Questo parametro deve essere fornito. #max_power: 1.0 # La potenza massima (espressa come un valore compreso tra 0,0 e 1,0) a cui # pu\u00f2 essere impostato il riscaldatore_pin. Il valore 1.0 consente di impostare il pin # completamente abilitato per periodi prolungati, mentre un valore di 0,5 # consentirebbe di abilitare il pin per non pi\u00f9 della met\u00e0 del tempo. Questo # l'impostazione pu\u00f2 essere utilizzata per limitare la potenza totale # (per periodi prolungati) al riscaldatore. L'impostazione predefinita \u00e8 1.0. sensor_type: # Tipo di sensore - i termistori comuni sono \"EPCOS 100K B57560G104F\", # \"ATC Semitec 104GT-2\", \"ATC Semitec 104NT-4-R025H42G\", \"Generico # 3950\",\"Honeywell 100K 135-104LAG-J01\", \"NTC 100K MGB18-104F39050L32\", # \"SliceEngineering 450\" e \"TDK NTCG104LH104JT1\". Vedere la sezione # \"Sensori di temperatura\" per altri sensori. Questo parametro deve essere fornito. sensor_pin: # Pin di ingresso analogico collegato al sensore. Questo parametro deve essere fornito. #pullup_resistor: 4700 # La resistenza (in ohm) del pullup collegato al termistore. Questo parametro # \u00e8 valido solo quando il sensore \u00e8 un termistore. Il valore predefinito \u00e8 4700 ohm. #smooth_time: 1.0 # Un valore di tempo (in secondi) durante il quale le misurazioni della # temperatura verranno uniformate per ridurre l'impatto del rumore # di misurazione. Il valore predefinito \u00e8 1 secondo. control: # Algoritmo di controllo (pid o filigrana). Questo parametro deve # essere fornito. pid_Kp: pid_Ki: pid_Kd: # Il proporzionale (pid_Kp), l'integrale (pid_Ki) e la derivata # (pid_Kd) impostazioni per il sistema di controllo del feedback PID. Klipper # valuta le impostazioni PID con la seguente formula generale: # riscaldatore_pwm = (Kp*errore + Ki*integrale(errore) - Kd*derivato(errore)) / 255 # Dove \"errore\" \u00e8 \"temperatura_richiesta - temperatura_misurata\" # e \"heater_pwm\" \u00e8 la velocit\u00e0 di riscaldamento richiesta con 0,0 completamente # off e 1.0 completamente on. Prendi in considerazione l'utilizzo di PID_CALIBRATE # comando per ottenere questi parametri. pid_Kp, pid_Ki e pid_Kd # i parametri devono essere forniti per i riscaldatori PID. #delta_max: 2.0 # Sui riscaldatori controllati questo \u00e8 il numero di gradi in # Celsius al di sopra della temperatura target prima di disattivare il riscaldatore # cos\u00ec come il numero di gradi sotto il target prima # riattivare il riscaldatore. L'impostazione predefinita \u00e8 2 gradi Celsius. #pwm_cycle_time: 0,100 # Tempo in secondi per ogni ciclo PWM software del riscaldatore. # non \u00e8 consigliabile impostarlo a meno che non ci sia necessario come # requisito accendere il riscaldatore pi\u00f9 velocemente di 10 volte al secondo. # Il valore predefinito \u00e8 0,100 secondi. #min_extrude_temp: 170 # La temperatura minima (in gradi Celsius) alla quale possono essere # impartiti comandi all'estrusore. L'impostazione predefinita \u00e8 170 gradi Celsius. min_temp: max_temp: # L'intervallo massimo di temperature valide (in gradi Celsius) in cui # il riscaldatore deve rimanere all'interno. Questo controlla una funzione di sicurezza # implementata nel codice del microcontrollore , la temperatura # non cadr\u00e0 mai al di fuori di questo intervallo, altrimenti il microcontrollore # entrer\u00e0 in uno stato di arresto. Questo controllo pu\u00f2 aiutare a rilevarne alcuni # guasti hardware del riscaldatore e del sensore. Imposta questo intervallo solo in modo ampio # abbastanza in modo che temperature ragionevoli non si traducano in un errore. # Questi parametri devono essere forniti. [heater_bed] \u00b6 La sezione heater_bed descrive un piatto riscaldato. Utilizza le stesse impostazioni del riscaldatore descritte nella sezione \"extruder\". [heater_bed] heater_pin: sensor_type: sensor_pin: control: min_temp: max_temp: # Vedere la sezione \"extruder\" per una descrizione dei parametri sopra. Supporto livellamento del piatto \u00b6 [bed_mesh] \u00b6 Mesh Bed Leveling. Si pu\u00f2 definire una sezione di configurazione bed_mesh per abilitare trasformazioni di spostamento che sfalsano l'asse z in base a una mesh generata da punti sondati. Quando si utilizza una sonda per la posizione di riferimento sull'asse z, si consiglia di definire una sezione safe_z_home in printer.cfg per la posizione di riferimento verso il centro dell'area di stampa. Per ulteriori informazioni, vedere la bed mesh guide e riferimento del comando . Esempi visivi: rectangular bed, probe_count = 3, 3: x---x---x (max_point) | x---x---x | (min_point) x---x---x round bed, round_probe_count = 5, bed_radius = r: x (0, r) end / x---x---x \\ (-r, 0) x---x---x---x---x (r, 0) \\ x---x---x / x (0, -r) start [bed_mesh] #speed: 50 # The speed (in mm/s) of non-probing moves during the calibration. # The default is 50. #horizontal_move_z: 5 # The height (in mm) that the head should be commanded to move to # just prior to starting a probe operation. The default is 5. #mesh_radius: # Defines the radius of the mesh to probe for round beds. Note that # the radius is relative to the coordinate specified by the # mesh_origin option. This parameter must be provided for round beds # and omitted for rectangular beds. #mesh_origin: # Defines the center X, Y coordinate of the mesh for round beds. This # coordinate is relative to the probe's location. It may be useful # to adjust the mesh_origin in an effort to maximize the size of the # mesh radius. Default is 0, 0. This parameter must be omitted for # rectangular beds. #mesh_min: # Defines the minimum X, Y coordinate of the mesh for rectangular # beds. This coordinate is relative to the probe's location. This # will be the first point probed, nearest to the origin. This # parameter must be provided for rectangular beds. #mesh_max: # Defines the maximum X, Y coordinate of the mesh for rectangular # beds. Adheres to the same principle as mesh_min, however this will # be the furthest point probed from the bed's origin. This parameter # must be provided for rectangular beds. #probe_count: 3, 3 # For rectangular beds, this is a comma separate pair of integer # values X, Y defining the number of points to probe along each # axis. A single value is also valid, in which case that value will # be applied to both axes. Default is 3, 3. #round_probe_count: 5 # For round beds, this integer value defines the maximum number of # points to probe along each axis. This value must be an odd number. # Default is 5. #fade_start: 1.0 # The gcode z position in which to start phasing out z-adjustment # when fade is enabled. Default is 1.0. #fade_end: 0.0 # The gcode z position in which phasing out completes. When set to a # value below fade_start, fade is disabled. It should be noted that # fade may add unwanted scaling along the z-axis of a print. If a # user wishes to enable fade, a value of 10.0 is recommended. # Default is 0.0, which disables fade. #fade_target: # The z position in which fade should converge. When this value is # set to a non-zero value it must be within the range of z-values in # the mesh. Users that wish to converge to the z homing position # should set this to 0. Default is the average z value of the mesh. #split_delta_z: .025 # The amount of Z difference (in mm) along a move that will trigger # a split. Default is .025. #move_check_distance: 5.0 # The distance (in mm) along a move to check for split_delta_z. # This is also the minimum length that a move can be split. Default # is 5.0. #mesh_pps: 2, 2 # A comma separated pair of integers X, Y defining the number of # points per segment to interpolate in the mesh along each axis. A # \"segment\" can be defined as the space between each probed point. # The user may enter a single value which will be applied to both # axes. Default is 2, 2. #algorithm: lagrange # The interpolation algorithm to use. May be either \"lagrange\" or # \"bicubic\". This option will not affect 3x3 grids, which are forced # to use lagrange sampling. Default is lagrange. #bicubic_tension: .2 # When using the bicubic algorithm the tension parameter above may # be applied to change the amount of slope interpolated. Larger # numbers will increase the amount of slope, which results in more # curvature in the mesh. Default is .2. #relative_reference_index: # A point index in the mesh to reference all z values to. Enabling # this parameter produces a mesh relative to the probed z position # at the provided index. #faulty_region_1_min: #faulty_region_1_max: # Optional points that define a faulty region. See docs/Bed_Mesh.md # for details on faulty regions. Up to 99 faulty regions may be added. # By default no faulty regions are set. [bed_tilt] \u00b6 Compensazione dell'inclinazione del piatto. Si pu\u00f2 definire una sezione di configurazione bed_tilt per abilitare le trasformazioni di movimento che tengono conto di un piatto inclinato. Nota che bed_mesh e bed_tilt sono incompatibili; entrambi non possono essere definiti. Per ulteriori informazioni, vedere riferimento comando . [bed_tilt] #x_adjust: 0 # The amount to add to each move's Z height for each mm on the X # axis. The default is 0. #y_adjust: 0 # The amount to add to each move's Z height for each mm on the Y # axis. The default is 0. #z_adjust: 0 # The amount to add to the Z height when the nozzle is nominally at # 0, 0. The default is 0. # The remaining parameters control a BED_TILT_CALIBRATE extended # g-code command that may be used to calibrate appropriate x and y # adjustment parameters. #points: # A list of X, Y coordinates (one per line; subsequent lines # indented) that should be probed during a BED_TILT_CALIBRATE # command. Specify coordinates of the nozzle and be sure the probe # is above the bed at the given nozzle coordinates. The default is # to not enable the command. #speed: 50 # The speed (in mm/s) of non-probing moves during the calibration. # The default is 50. #horizontal_move_z: 5 # The height (in mm) that the head should be commanded to move to # just prior to starting a probe operation. The default is 5. [bed_screws] \u00b6 Strumento per aiutare a regolare le viti di livellamento del letto. Si pu\u00f2 definire una sezione di configurazione [bed_screws] per abilitare un comando g-code BED_SCREWS_ADJUST. Per ulteriori informazioni, vedere la guida al livellamento e il riferimento al comando . [bed_screws] #screw1: # The X, Y coordinate of the first bed leveling screw. This is a # position to command the nozzle to that is directly above the bed # screw (or as close as possible while still being above the bed). # This parameter must be provided. #screw1_name: # An arbitrary name for the given screw. This name is displayed when # the helper script runs. The default is to use a name based upon # the screw XY location. #screw1_fine_adjust: # An X, Y coordinate to command the nozzle to so that one can fine # tune the bed leveling screw. The default is to not perform fine # adjustments on the bed screw. #screw2: #screw2_name: #screw2_fine_adjust: #... # Additional bed leveling screws. At least three screws must be # defined. #horizontal_move_z: 5 # The height (in mm) that the head should be commanded to move to # when moving from one screw location to the next. The default is 5. #probe_height: 0 # The height of the probe (in mm) after adjusting for the thermal # expansion of bed and nozzle. The default is zero. #speed: 50 # The speed (in mm/s) of non-probing moves during the calibration. # The default is 50. #probe_speed: 5 # The speed (in mm/s) when moving from a horizontal_move_z position # to a probe_height position. The default is 5. [screws_tilt_adjust] \u00b6 Strumento per aiutare a regolare l'inclinazione delle viti del piatto utilizzando la sonda Z. Si pu\u00f2 definire una sezione di configurazione Screws_tilt_adjust per abilitare un comando g-code SCREWS_TILT_CALCULATE. Per ulteriori informazioni, vedere la guida al livellamento e riferimento al comando . [screws_tilt_adjust] #screw1: # La coordinata (X, Y) della prima vite di livellamento del piatto. Questa # \u00e8 una posizione in cui comandare l'ugello in modo che la sonda sia # direttamente sopra la vite del piatto (o il pi\u00f9 vicino possibile mentre si # trova ancora sopra il piatto). Questa \u00e8 la vite di base utilizzata nei calcoli. # Questo parametro deve essere fornito. #screw1_name: # Un nome arbitrario per la vite data. Questo nome viene visualizzato # quando viene eseguito lo script di supporto. L'impostazione predefinita # prevede l'utilizzo di un nome basato sulla posizione XY della vite. #screw2: #screw2_name: #... # Viti di livellamento del piatto aggiuntive. Devono essere definite # almeno due viti. #speed: 50 # La velocit\u00e0 (in mm/s) degli spostamenti senza probing durante la # calibrazione. Il valore predefinito \u00e8 50. #horizontal_move_z: 5 # L'altezza (in mm) a cui la testa deve essere spostata appena prima # di avviare un'operazione di sonda. L'impostazione predefinita \u00e8 5. #screw_thread: CW-M3 # Il tipo di vite utilizzata per il livello del piatto, M3, M4 o M5 e la # direzione della manopola utilizzata per livellare il letto, in senso orario # decrementa in senso antiorario decrementa. Valori accettati: CW-M3, # CCW-M3, CW-M4, CCW-M4, CW-M5, CCW-M5. Il valore predefinito \u00e8 # CW-M3, la maggior parte delle stampanti utilizza una vite M3 e # ruotando la manopola in senso orario diminuisce la distanza. [z_tilt] \u00b6 Regolazione multipla dell'inclinazione dello stepper Z. Questa funzione consente la regolazione indipendente di pi\u00f9 stepper z (vedere la sezione \"stepper_z1\") per regolare l'inclinazione. Se questa sezione \u00e8 presente, diventa disponibile un comando G-Code esteso Z_TILT_ADJUST. [z_tilt] #z_positions: # Un elenco di coordinate X, Y (una per riga; le righe successive # identate) che descrivono la posizione di ciascun \"pivot point\" # del piattotto. Il \"pivot point\" \u00e8 il punto in cui il piatto si attacca # al dato stepper Z. Viene descritto utilizzando le coordinate dell'ugello # (la posizione X, Y dell'ugello se potesse spostarsi direttamente sopra # il punto). La prima voce corrisponde a stepper_z, la seconda a # stepper_z1, la terza a stepper_z2, ecc. # Questo parametro deve essere fornito. #points: # Un elenco di coordinate X, Y (una per riga; righe successive identate) # che devono essere rilevate durante un comando Z_TILT_ADJUST. # Specificare le coordinate dell'ugello e assicurarsi che la sonda sia # sopra il piatto alle coordinate dell'ugello date. # Questo parametro deve essere fornito. #speed: 50 # La velocit\u00e0 (in mm/s) degli spostamenti senza probing durante # la calibrazione. Il valore predefinito \u00e8 50. #horizontal_move_z: 5 # L'altezza (in mm) a cui la testa deve essere comandata per spostarsi # appena prima di avviare un'operazione di probing. # L'impostazione predefinita \u00e8 5. #retries: 0 # Numero di volte per riprovare se i punti rilevati non sono all'interno # della tolleranza. #retry_tolerance: 0 # Se i tentativi sono abilitati, riprovare se i punti sondati pi\u00f9 grande e # pi\u00f9 piccolo differiscono pi\u00f9 di retry_tolerance. Nota che l'unit\u00e0 di # modifica pi\u00f9 piccola qui sarebbe un singolo passaggio. # Tuttavia, se stai sondando pi\u00f9 punti rispetto agli stepper, # probabilmente avrai un valore minimo fisso per l'intervallo di punti # sondati che puoi apprendere osservando l'output del comando. [quad_gantry_level] \u00b6 Moving gantry leveling using 4 independently controlled Z motors. Corrects hyperbolic parabola effects (potato chip) on moving gantry which is more flexible. WARNING: Using this on a moving bed may lead to undesirable results. If this section is present then a QUAD_GANTRY_LEVEL extended G-Code command becomes available. This routine assumes the following Z motor configuration: ---------------- |Z1 Z2| | --------- | | | | | | | | | | x-------- | |Z Z3| ---------------- Dove x \u00e8 il punto 0, 0 sul piatto [quad_gantry_level] #gantry_corners: # A newline separated list of X, Y coordinates describing the two # opposing corners of the gantry. The first entry corresponds to Z, # the second to Z2. This parameter must be provided. #points: # A newline separated list of four X, Y points that should be probed # during a QUAD_GANTRY_LEVEL command. Order of the locations is # important, and should correspond to Z, Z1, Z2, and Z3 location in # order. This parameter must be provided. For maximum accuracy, # ensure your probe offsets are configured. #speed: 50 # The speed (in mm/s) of non-probing moves during the calibration. # The default is 50. #horizontal_move_z: 5 # The height (in mm) that the head should be commanded to move to # just prior to starting a probe operation. The default is 5. #max_adjust: 4 # Safety limit if an adjustment greater than this value is requested # quad_gantry_level will abort. #retries: 0 # Number of times to retry if the probed points aren't within # tolerance. #retry_tolerance: 0 # If retries are enabled then retry if largest and smallest probed # points differ more than retry_tolerance. [skew_correction] \u00b6 Correzione dell'inclinazione della stampante. \u00c8 possibile utilizzare il software per correggere l'inclinazione della stampante su 3 piani, xy, xz, yz. Questo viene fatto stampando un modello di calibrazione lungo un piano e misurando tre lunghezze. A causa della natura della correzione dell'inclinazione, queste lunghezze vengono impostate tramite gcode. Per i dettagli, vedere Correzione inclinazione e Command Reference . [skew_correction] [z_thermal_adjust] \u00b6 Temperature-dependant toolhead Z position adjustment. Compensate for vertical toolhead movement caused by thermal expansion of the printer's frame in real-time using a temperature sensor (typically coupled to a vertical section of frame). See also: extended g-code commands . [z_thermal_adjust] #temp_coeff: # The temperature coefficient of expansion, in mm/degC. For example, a # temp_coeff of 0.01 mm/degC will move the Z axis downwards by 0.01 mm for # every degree Celsius that the temperature sensor increases. Defaults to # 0.0 mm/degC, which applies no adjustment. #smooth_time: # Smoothing window applied to the temperature sensor, in seconds. Can reduce # motor noise from excessive small corrections in response to sensor noise. # The default is 2.0 seconds. #z_adjust_off_above: # Disables adjustments above this Z height [mm]. The last computed correction # will remain applied until the toolhead moves below the specified Z height # again. The default is 99999999.0 mm (always on). #max_z_adjustment: # Maximum absolute adjustment that can be applied to the Z axis [mm]. The # default is 99999999.0 mm (unlimited). #sensor_type: #sensor_pin: #min_temp: #max_temp: # Temperature sensor configuration. # See the \"extruder\" section for the definition of the above # parameters. #gcode_id: # See the \"heater_generic\" section for the definition of this # parameter. Homing personalizzato \u00b6 [safe_z_home] \u00b6 Homing Z sicuro. Si pu\u00f2 utilizzare questo meccanismo per posizionare l'asse Z su una specifica coordinata X, Y. Ci\u00f2 \u00e8 utile se la testa portautensili, ad esempio, deve spostarsi al centro del letto prima che Z possa essere riposizionato. [safe_z_home] home_xy_position: # Una coordinata X, Y (ad es. 100, 100) dove deve essere eseguita # homing Z. Questo parametro deve essere fornito. #speed: 50.0 # Velocit\u00e0 alla quale la testa di stampa viene spostata sulla # coordinata Z sicura. Il valore predefinito \u00e8 50 mm/s #z_hop: # Distanza (in mm) per sollevare l'asse Z prima dell'homing. # Questo si applica a qualsiasi comando di homing, anche se non # si trova sull'asse Z. Se l'asse Z \u00e8 gi\u00e0 azzerato e la posizione Z # corrente \u00e8 inferiore a z_hop, questo sollever\u00e0 la testa a un'altezza # di z_hop. Se l'asse Z non \u00e8 gi\u00e0 azzerato la testina viene sollevata # di z_hop. L'impostazione predefinita \u00e8 di non implementare Z hop. #z_hop_speed: 15.0 # Velocit\u00e0 (in mm/s) alla quale l'asse Z viene sollevato prima # del homing. Il valore predefinito \u00e8 15 mm/s. #move_to_previous: False # Quando \u00e8 impostato su True, gli assi X e Y vengono ripristinati alle # posizioni precedenti dopo l'homing dell'asse Z. # L'impostazione predefinita \u00e8 False. [homing_override] \u00b6 Homing Override. Si pu\u00f2 utilizzare questo meccanismo per eseguire una serie di comandi g-code al posto di un G28 che si trova nel normale input di g-code. Questo pu\u00f2 essere utile su stampanti che richiedono una procedura specifica per l'home della macchina. [homing_override] gcode: # Un elenco di comandi G-Code da eseguire al posto dei comandi # G28 trovati nel normale input di G-Code. # Vedi docs/Command_Templates.md per il formato G-Code. # Se un G28 \u00e8 contenuto in questo elenco di comandi, invocher\u00e0 # la normale procedura di homing per la stampante. I comandi # qui elencati devono eseguire l'home di tutti gli assi. # Questo parametro deve essere fornito. #axes: xyz # Gli assi da sovrascrivere. Ad esempio, se questo \u00e8 impostato # su \"z\", lo script di override verr\u00e0 eseguito solo quando l'asse z # \u00e8 azzerato (ad esempio, tramite un comando \"G28\" o \"G28 Z0\"). # Nota, lo script di sovrascrittura dovrebbe comunque ospitare # tutti gli assi. L'impostazione predefinita \u00e8 \"xyz\" che fa s\u00ec che lo # script di override venga eseguito al posto di tutti i comandi G28. #set_position_x: #set_position_y: #set_position_z: # Se specificato, la stampante presumer\u00e0 che l'asse si trovi # nella posizione specificata prima di eseguire i comandi g-code # precedenti. L'impostazione di questa opzione disabilita i # controlli di riferimento per quell'asse. Questo pu\u00f2 essere utile # se la testa deve muoversi prima di invocare il normale # meccanismo G28 per un asse. L'impostazione predefinita \u00e8 # di non forzare una posizione per un asse. [endstop_phase] \u00b6 Finecorsa regolati in fase stepper. Per utilizzare questa funzione, definire una sezione di configurazione con un prefisso \"endstop_phase\" seguito dal nome della corrispondente sezione di configurazione dello stepper (ad esempio, \"[endstop_phase stepper_z]\"). Questa funzione pu\u00f2 migliorare la precisione degli interruttori di fine corsa. Aggiungi una semplice dichiarazione \"[endstop_phase]\" per abilitare il comando ENDSTOP_PHASE_CALIBRATE. Per ulteriori informazioni, vedere la endstop phases guide e command reference . [endstop_phase stepper_z] #endstop_accuracy: # Imposta la precisione prevista (in mm) del finecorsa. Questo rappresenta # la distanza massima di errore che il finecorsa pu\u00f2 attivare (ad es. se un # finecorsa pu\u00f2 occasionalmente attivarsi 100um in anticipo o fino a 100um in ritardo # quindi impostalo su 0,200 per 200 um). L'impostazione predefinita \u00e8 # 4*distanza_rotazione/passi_completi_per_rotazione. #trigger_phase: # Questo specifica la fase del driver del motore passo-passo da aspettarsi # quando si raggiunge il finecorsa. \u00c8 composto da due numeri separati # da un '/' - la fase e il numero totale di # fasi (ad es. \"7/64\"). Impostare questo valore solo se si \u00e8 sicuri che il # driver del motore passo-passo viene ripristinato ogni volta che viene ripristinato l'mcu. Se questo # non \u00e8 impostato, la prima fase verr\u00e0 rilevata al primo home # e quella fase sar\u00e0 utilizzata su tutte le abitazioni successive. #endstop_align_zero: False # Se true, la posizione_endstop dell'asse sar\u00e0 effettivamente # modificato in modo che la posizione zero dell'asse avvenga a passo pieno # sul motore. (Se utilizzato sull'asse Z e la stampa # l'altezza del livello \u00e8 un multiplo di una distanza di un passo intero, allora ogni # layer si eseguir\u00e0 in un step completo.) L'impostazione predefinita \u00e8 False. Macro ed eventi G-Code \u00b6 [gcode_macro] \u00b6 Macro G-Code (\u00e8 possibile definire un numero qualsiasi di sezioni con un prefisso \"gcode_macro\"). Per ulteriori informazioni, consulta la Guida ai modelli di comando . [gcode_macro my_cmd] #gcode: # Un elenco di comandi G-Code da eseguire al posto di \"my_cmd\". # Vedi docs/Command_Templates.md per il formato G-Code. # Questo parametro deve essere fornito. #variable_<name>: # Si pu\u00f2 specificare un numero qualsiasi di opzioni con un prefisso # \"variable_\". Al nome della variabile data verr\u00e0 assegnato il valore dato # (analizzato come un valore letterale Python) e sar\u00e0 disponibile durante # l'espansione della macro. Ad esempio, una configurazione con # \"variable_fan_speed = 75\" potrebbe avere comandi gcode contenenti # \"M106 S{ fan_speed * 255 }\". Le variabili possono essere modificate in # fase di esecuzione utilizzando il comando SET_GCODE_VARIABLE # (consultare docs/Command_Templates.md per i dettagli). # I nomi delle variabili potrebbero non utilizzare caratteri maiuscoli. #rename_existing: # Questa opzione far\u00e0 s\u00ec che la macro ignori un comando G-Code # esistente e fornisca la definizione precedente del comando tramite # il nome fornito qui. Questo pu\u00f2 essere usato per sovrascrivere i # comandi G-Code integrati. Prestare attenzione quando si ignorano # i comandi poich\u00e9 possono causare risultati complessi e imprevisti. # L'impostazione predefinita \u00e8 di non sovrascrivere un comando # G-Code esistente. #description: G-Code macro # Ci\u00f2 aggiunger\u00e0 una breve descrizione utilizzata al comando HELP # o durante l'utilizzo della funzione di completamento automatico. # Predefinito \"G-Code macro\" [delayed_gcode] \u00b6 Esegui un gcode con un ritardo impostato. Per ulteriori informazioni, consulta la Guida template dei comandi e riferimento al comando . [delayed_gcode my_delayed_gcode] gcode: # A list of G-Code commands to execute when the delay duration has # elapsed. G-Code templates are supported. This parameter must be # provided. #initial_duration: 0.0 # The duration of the initial delay (in seconds). If set to a # non-zero value the delayed_gcode will execute the specified number # of seconds after the printer enters the \"ready\" state. This can be # useful for initialization procedures or a repeating delayed_gcode. # If set to 0 the delayed_gcode will not execute on startup. # Default is 0. [save_variables] \u00b6 Supporta il salvataggio delle variabili su disco in modo che vengano mantenute durante i riavvii. Per ulteriori informazioni, vedere template dei comandi e G-Code reference . [save_variables] filename: # Richiesto: fornire un nome file che verrebbe utilizzato per salvare # le variabili su disco, ad es. ~/variables.cfg [idle_timeout] \u00b6 Timeout di inattivit\u00e0. Viene automaticamente abilitato un timeout di inattivit\u00e0: aggiungi una sezione di configurazione di idle_timeout esplicita per modificare le impostazioni predefinite. [idle_timeout] #gcode: # Un elenco di comandi G-Code da eseguire in un timeout di # inattivit\u00e0. Vedi docs/Command Templates.md per il formato # G-Code. L'impostazione predefinita \u00e8 # eseguire \"TURN_OFF HEATERS\" e \"M84\". #timeout: 600 # Tempo di inattivit\u00e0 (in secondi) da attendere prima di eseguire # i comandi G-Code sopra. Il valore predefinito \u00e8 600 secondi. Funzionalit\u00e0 opzionali G-Code \u00b6 [virtual_sdcard] \u00b6 Una scheda SD virtuale pu\u00f2 essere utile se la macchina host non \u00e8 abbastanza veloce per eseguire bene OctoPrint. Consente al software host Klipper di stampare direttamente i file gcode archiviati in una directory sull'host utilizzando i comandi G-Code standard (ad esempio, M24). [virtual_sdcard] path: # Il percorso della directory locale sulla macchina host per cercare # i file di Gcode. Questa \u00e8 una directory di sola lettura (le scritture # di file sdcard non sono supportate). Si pu\u00f2 indicare questo alla # directory di caricamento di OctoPrint # (generalmente ~/.octoprint/uploads/ ). # Questo parametro deve essere fornito. #on_error_gcode: # Un elenco di comandi G-Code da eseguire quando viene segnalato # un errore. [sdcard_loop] \u00b6 Alcune stampanti con funzionalit\u00e0 di pulizia del piatto, come un espulsore di parti o una stampante a nastro, possono trovare impiego nelle sezioni di loop del file sdcard. (Ad esempio, per stampare la stessa parte pi\u00f9 e pi\u00f9 volte, o ripetere la sezione a di una parte per una catena o un altro motivo ripetuto). Consulta il command reference per i comandi supportati. Vedere il file sample-macros.cfg per una macro M808 G-Code compatibile con Marlin. [sdcard_loop] [force_move] \u00b6 Supporta lo spostamento manuale dei motori passo-passo per scopi diagnostici. Nota, l'utilizzo di questa funzione potrebbe mettere la stampante in uno stato non valido - vedere il command reference per dettagli importanti. [force_move] #enable_force_move: False # Impostare su True per abilitare FORCE_MOVE e SET_KINEMATIC_POSITION # i comandi G-Code estesi. L'impostazione predefinita \u00e8 False. [pause_resume] \u00b6 Funzionalit\u00e0 di Pause/Resume con supporto di acquisizione e ripristino della posizione. Per ulteriori informazioni, vedere riferimento comando . [pause_resume] #recover_velocity: 50. # Quando si abilita pause_resume, la velocit\u00e0 con cui tornare alla # posizione catturata (in mm/s). Il valore predefinito \u00e8 50,0 mm/s. [firmware_retraction] \u00b6 Retrazione del filamento del firmware. Ci\u00f2 abilita i comandi GCODE G10 (ritiro) e G11 (non ritirati) emessi da molti slicer. I parametri seguenti forniscono le impostazioni predefinite di avvio, sebbene i valori possano essere regolati tramite il [comando] SET_RETRACTION (G-Codes.md#firmware_retraction)), consentendo l'impostazione e l'ottimizzazione del filamento a runtime. [firmware_retraction] #retract_length: 0 # La lunghezza del filamento (in mm) da ritrarre quando G10 # \u00e8 attivato e da ritrarre quando G11 \u00e8 attivato (ma vedere # unretract_extra_length di seguito). I# l valore predefinito \u00e8 0 mm. #retract_speed: 20 # La velocit\u00e0 di retrazione, in mm/s. # Il valore predefinito \u00e8 20 mm/s. #unretract_extra_length: 0 # La lunghezza (in mm) del filamento *aggiuntivo* da # sommare quando non si ritrae. #unretract_speed: 10 # La velocit\u00e0 di srotolamento, in mm/s. # Il valore predefinito \u00e8 10 mm/s. [gcode_arcs] \u00b6 Supporto per i comandi Gcode arc (G2/G3). [gcode_arcs] #resolution: 1.0 # Un arco sar\u00e0 diviso in segmenti. La lunghezza di ciascun segmento # sar\u00e0 uguale alla risoluzione in mm impostata sopra. Valori pi\u00f9 bassi # produrranno un arco pi\u00f9 fine, ma anche pi\u00f9 lavoro per la tua macchina. # Archi pi\u00f9 piccoli del valore configurato diventer\u00e0 linee rette. # L'impostazione predefinita \u00e8 # 1mm. [respond] \u00b6 Abilita i comandi estesi \"M118\" e \"RESPOND\" commands . [respond] #default_type: echo # Imposta il prefisso predefinito dell'output \"M118\" e \"RESPOND\" su uno dei seguenti: # echo: \"echo: \" (Questa \u00e8 l'impostazione predefinita) # command: \"// \" # error: \"!! \" #default_prefix: echo: # Imposta direttamente il prefisso predefinito. Se presente # questo valore sovrascriver\u00e0 il \"default_type\". [exclude_object] \u00b6 Abilita il supporto per escludere o cancellare singoli oggetti durante il processo di stampa. Per ulteriori informazioni, vedere la guida escludi oggetti e riferimento ai comandi . Vedere il file sample-macros.cfg per una macro G-Code M486 compatibile con Marlin/RepRapFirmware. [exclude_object] Compensazione della risonanza \u00b6 [input_shaper] \u00b6 Abilita compensazione della risonanza . Vedere anche il command reference . [input_shaper] #shaper_freq_x: 0 # Una frequenza (in Hz) dell'input shaper per l'asse X. Questa \u00e8 # solitamente una frequenza di risonanza dell'asse X che l'input # shaper dovrebbe sopprimere. Per shaper pi\u00f9 complessi, come # shaper di input EI a 2 e 3 gobbe, questo parametro pu\u00f2 essere # impostato in base a diverse considerazioni. # Il valore predefinito \u00e8 0, che disabilita la modellatura dell'input # per l'asse X. #shaper_freq_y: 0 # Una frequenza (in Hz) dell'input shaper per l'asse Y. Questa \u00e8 # solitamente una frequenza di risonanza dell'asse Y che l'input # shaper dovrebbe sopprimere. Per shaper pi\u00f9 complessi, come # shaper di input EI a 2 e 3 gobbe, questo parametro pu\u00f2 essere # impostato in base a diverse considerazioni. Il valore predefinito # \u00e8 0, che disabilita la modellatura dell'input per l'asse Y. #shaper_type: mzv # Un tipo di input shaper da utilizzare per entrambi gli assi X e Y. # Gli shaper supportati sono zv, mzv, zvd, ei, 2hump_ei e # 3hump_ei. L'impostazione predefinita \u00e8 mzv input shaper. #shaper_type_x: #shaper_type_y: # Se shaper_type non \u00e8 impostato, questi due parametri possono # essere utilizzati per configurare diversi shaper di input per gli # assi X e Y. Sono supportati gli stessi valori del parametro # shaper_type. #damping_ratio_x: 0.1 #damping_ratio_y: 0.1 # Rapporti di smorzamento delle vibrazioni degli assi X e Y # utilizzati dagli shaper di input per migliorare la soppressione # delle vibrazioni. Il valore predefinito \u00e8 0,1, un buon valore per la # maggior parte delle stampanti. Nella maggior parte dei casi # questo parametro non richiede ottimizzazione e # non deve essere modificato. [adxl345] \u00b6 Supporto per accelerometri ADXL345. Questo supporto consente di interrogare le misurazioni dell'accelerometro dal sensore. Ci\u00f2 abilita un comando ACCELEROMETER_MEASURE (consultare G-Codes per ulteriori informazioni). Il nome del chip predefinito \u00e8 \"predefinito\", ma \u00e8 possibile specificare un nome esplicito (ad esempio, [adxl345 my_chip_name]). [adxl345] cs_pin: # The SPI enable pin for the sensor. This parameter must be provided. #spi_speed: 5000000 # The SPI speed (in hz) to use when communicating with the chip. # The default is 5000000. #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # See the \"common SPI settings\" section for a description of the # above parameters. #axes_map: x, y, z # The accelerometer axis for each of the printer's X, Y, and Z axes. # This may be useful if the accelerometer is mounted in an # orientation that does not match the printer orientation. For # example, one could set this to \"y, x, z\" to swap the X and Y axes. # It is also possible to negate an axis if the accelerometer # direction is reversed (eg, \"x, z, -y\"). The default is \"x, y, z\". #rate: 3200 # Output data rate for ADXL345. ADXL345 supports the following data # rates: 3200, 1600, 800, 400, 200, 100, 50, and 25. Note that it is # not recommended to change this rate from the default 3200, and # rates below 800 will considerably affect the quality of resonance # measurements. [mpu9250] \u00b6 Supporto per accelerometri mpu9250 e mpu6050 (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"mpu9250\"). [mpu9250 my_accelerometer] #i2c_address: # Il valore predefinito \u00e8 104 (0x68). #i2c_mcu: #i2c_bus: #i2c_speed: 400000 # Vedere la sezione \"impostazioni I2C comuni\" per una descrizione # dei parametri di cui sopra. Il valore predefinito \"i2c_speed\" \u00e8 400000. #axes_map: x, y, z # Vedere la sezione \"adxl345\" per informazioni su questo parametro. [resonance_tester] \u00b6 Supporto per test di risonanza e calibrazione automatica del input shaper. Per utilizzare la maggior parte delle funzionalit\u00e0 di questo modulo, devono essere installate dipendenze software aggiuntive; fare riferimento a Measuring Resonances e al command reference per ulteriori informazioni. Per ulteriori informazioni sul parametro max_smoothing e sul suo utilizzo, vedere la sezione Max smoothing della guida alla misurazione delle risonanze. [resonance_tester] #probe_points: # Un elenco di coordinate X, Y, Z di punti (un punto per linea) in cui # testare le risonanze. Almeno un punto \u00e8 richiesto. Assicurati che tutti # i punti con un margine di sicurezza nel piano XY (~ pochi centimetri) # siano raggiungibili dalla testa di stampa. #accel_chip: # Un nome del chip dell'accelerometro da utilizzare per le misurazioni. # Se il chip adxl345 \u00e8 stato definito senza un nome esplicito, questo # parametro pu\u00f2 semplicemente fare riferimento ad esso come # \"accel_chip: adxl345\", altrimenti deve essere fornito anche un nome # esplicito, ad es. \"accel_chip: adxl345 mio_chip_nome\". \u00c8 necessario # impostare questo o i due parametri successivi. #accel_chip_x: #accel_chip_y: # Nomi dei chip dell'accelerometro da utilizzare per le misurazioni per # ciascuno degli assi. Pu\u00f2 essere utile, ad esempio, su una stampante con # piatto, se due accelerometri separati sono montati sul piatto (per l'asse Y) # e sulla testa di stampa (per l'asse X). Questi parametri hanno lo stesso # formato del parametro 'accel_chip'. # \u00c8 necessario fornire solo 'accel_chip' o questi due parametri. #max_smoothing: # Maximum input shaper smoothing to allow for each axis during shaper # auto-calibration (with 'SHAPER_CALIBRATE' command). By default no # maximum smoothing is specified. Refer to Measuring_Resonances guide # for more details on using this feature. #min_freq: 5 # Frequenza minima per testare le risonanze. L'impostazione \u00e8 5 Hz. #max_freq: 133.33 # Frequenza massima per testare le risonanze. L'impostazione \u00e8 133,33 Hz. #accel_per_hz: 75 # Questo parametro viene utilizzato per determinare quale accelerazione # utilizzare per testare una frequenza specifica: accel = accel_per_hz * freq. # Maggiore \u00e8 il valore, maggiore \u00e8 l'energia delle oscillazioni. Pu\u00f2 essere # impostato su un valore inferiore al valore predefinito se le risonanze # diventano troppo forti sulla stampante. Tuttavia, valori pi\u00f9 bassi rendono # le misurazioni delle risonanze ad alta frequenza meno precise. # Il valore predefinito \u00e8 75 (mm/sec). #hz_per_sec: 1 # Determina la velocit\u00e0 del test. Quando si testano tutte le frequenze # nell'intervallo [freq_min, freq_max], ogni secondo la frequenza aumenta # di hz_per_sec. Valori piccoli rallentano il test e valori grandi diminuiscono # la precisione del test. Il valore predefinito \u00e8 1,0 (Hz/sec == sec^-2). Config file helpers \u00b6 [board_pins] \u00b6 Alias pin board (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"board_pins\"). Usalo per definire gli alias per i pin su un microcontrollore. [board_pins my_aliases] mcu: mcu # A comma separated list of micro-controllers that may use the # aliases. The default is to apply the aliases to the main \"mcu\". aliases: aliases_<name>: # A comma separated list of \"name=value\" aliases to create for the # given micro-controller. For example, \"EXP1_1=PE6\" would create an # \"EXP1_1\" alias for the \"PE6\" pin. However, if \"value\" is enclosed # in \"<>\" then \"name\" is created as a reserved pin (for example, # \"EXP1_9=<GND>\" would reserve \"EXP1_9\"). Any number of options # starting with \"aliases_\" may be specified. [include] \u00b6 Supporto per includere i file. Uno pu\u00f2 includere un file di configurazione aggiuntivo dal file di configurazione della stampante principale. Possono essere utilizzati anche caratteri jolly (ad es. \"configs/*.cfg\"). [include my_other_config.cfg] [duplicate_pin_override] \u00b6 Questo strumento consente di definire pi\u00f9 volte un singolo pin del microcontrollore in un file di configurazione senza il normale controllo degli errori. Questo \u00e8 inteso per scopi diagnostici e di debug. Questa sezione non \u00e8 necessaria laddove Klipper supporta l'utilizzo dello stesso pin pi\u00f9 volte e l'utilizzo di questa sostituzione pu\u00f2 causare risultati confusi e imprevisti. [duplicate_pin_override] pins: # Un elenco di pin separato da virgole che possono essere utilizzati pi\u00f9 volte in # un file di configurazione senza normali controlli degli errori. Questo parametro deve essere # fornito. Hardware per probing del piatto \u00b6 [probe] \u00b6 Sonda di altezza Z. Si pu\u00f2 definire questa sezione per abilitare l'hardware di rilevamento dell'altezza Z. Quando questa sezione \u00e8 abilitata, i comandi estesi PROBE e QUERY_PROBE comandi g-code diventano disponibili. Inoltre, vedere la Guida alla calibrazione della sonda . La sezione probe crea anche un pin virtuale \"probe:z_virtual_endstop\". Si pu\u00f2 impostare stepper_z endstop_pin su questo pin virtuale su stampanti in stile cartesiano che utilizzano la sonda al posto di un endstop z. Se si utilizza \"probe:z_virtual_endstop\", non definire un position_endstop nella sezione di configurazione stepper_z. [probe] pin: # Pin di rilevamento della sonda. Se il pin si trova su un # microcontrollore diverso rispetto agli stepper Z, abilita # \"homing multi-mcu\". Questo parametro deve essere fornito. #deactivate_on_each_sample: True # Questo determina se Klipper deve eseguire la disattivazione # gcode tra ogni tentativo di esplorazione durante l'esecuzione di # una sequenza di probe multiple. L'impostazione predefinita \u00e8 True. #x_offset: 0.0 # La distanza (in mm) tra la sonda e l'ugello lungo l'asse x. # Il valore predefinito \u00e8 0. #y_offset: 0.0 # La distanza (in mm) tra la sonda e l'ugello lungo l'asse y. # Il valore predefinito \u00e8 0. z_offset: # La distanza (in mm) tra il piatto e l'ugello quando la sonda si attiva. # Questo parametro deve essere fornito. #speed: 5.0 # Velocit\u00e0 (in mm/s) dell'asse Z durante probing. # Il valore predefinito \u00e8 5 mm/s. #samples: 1 # Il numero di volte in cui sondare ciascun punto. I valori z sondati # verranno mediati. L'impostazione predefinita \u00e8 sondare 1 volta. #sample_retract_dist: 2.0 # La distanza (in mm) per sollevare la testa di stampa tra ciascun # campione (se si esegue il campionamento pi\u00f9 di una volta). # Il valore predefinito \u00e8 2 mm. #lift_speed: # Velocit\u00e0 (in mm/s) dell'asse Z durante il sollevamento della sonda # tra i campioni. L'impostazione predefinita prevede l'utilizzo dello # stesso valore del parametro 'speed'. #samples_result: average # Il metodo di calcolo durante il campionamento pi\u00f9 di una volta: # \"median\" o \"average\". L'impostazione predefinita \u00e8 average. #samples_tolerance: 0.100 # La distanza Z massima (in mm) che un campione pu\u00f2 differire da # altri campioni. Se questa tolleranza viene superata, viene segnalato # un errore o il tentativo viene riavviato # (vedere samples_tolerance_retries). Il valore predefinito \u00e8 0,100 mm. #samples_tolerance_retries: 0 # Il numero di tentativi per riprovare se viene trovato un campione che # supera samples_tolerance. In un nuovo tentativo, tutti i campioni # correnti vengono eliminati e il tentativo di sonda viene riavviato. # Se non si ottiene un insieme valido di campioni nel numero di tentativi # specificato, viene segnalato un errore. Il valore predefinito \u00e8 zero che # causa la segnalazione di un errore sul primo campione che supera # samples_tolerance. #activate_gcode: # Un elenco di comandi G-Code da eseguire prima di ogni tentativo di # esplorazione. Vedi docs/Command_Templates.md per il formato # G-Code. Questo pu\u00f2 essere utile se la sonda deve essere attivata in # qualche modo. Non impartire qui alcun comando che sposti la testa # di stampa (ad es. G1). L'impostazione predefinita \u00e8 di non eseguire # alcun comando G-Code speciale all'attivazione. #deactivate_gcode: # Un elenco di comandi G-Code da eseguire dopo il completamento di # ogni tentativo di esplorazione. Vedi docs/Command_Templates.md # per il formato G-Code. Non impartire qui alcun comando che sposti # la testina. L'impostazione predefinita \u00e8 di non eseguire alcun # comando G-Code speciale alla disattivazione. [bltouch] \u00b6 Sonda BLTouch. Si pu\u00f2 definire questa sezione (anzich\u00e9 una sezione sonda) per abilitare una sonda BLTouch. Per ulteriori informazioni, vedere BL-Touch guide e command reference .. Viene anche creato un pin virtuale \"probe:z_virtual_endstop\" (consultare la sezione \"probe\" per i dettagli). [bltouch] sensor_pin: # Pin connected to the BLTouch sensor pin. Most BLTouch devices # require a pullup on the sensor pin (prefix the pin name with \"^\"). # This parameter must be provided. control_pin: # Pin connected to the BLTouch control pin. This parameter must be # provided. #pin_move_time: 0.680 # The amount of time (in seconds) to wait for the BLTouch pin to # move up or down. The default is 0.680 seconds. #stow_on_each_sample: True # This determines if Klipper should command the pin to move up # between each probe attempt when performing a multiple probe # sequence. Read the directions in docs/BLTouch.md before setting # this to False. The default is True. #probe_with_touch_mode: False # If this is set to True then Klipper will probe with the device in # \"touch_mode\". The default is False (probing in \"pin_down\" mode). #pin_up_reports_not_triggered: True # Set if the BLTouch consistently reports the probe in a \"not # triggered\" state after a successful \"pin_up\" command. This should # be True for all genuine BLTouch devices. Read the directions in # docs/BLTouch.md before setting this to False. The default is True. #pin_up_touch_mode_reports_triggered: True # Set if the BLTouch consistently reports a \"triggered\" state after # the commands \"pin_up\" followed by \"touch_mode\". This should be # True for all genuine BLTouch devices. Read the directions in # docs/BLTouch.md before setting this to False. The default is True. #set_output_mode: # Request a specific sensor pin output mode on the BLTouch V3.0 (and # later). This setting should not be used on other types of probes. # Set to \"5V\" to request a sensor pin output of 5 Volts (only use if # the controller board needs 5V mode and is 5V tolerant on its input # signal line). Set to \"OD\" to request the sensor pin output use # open drain mode. The default is to not request an output mode. #x_offset: #y_offset: #z_offset: #speed: #lift_speed: #samples: #sample_retract_dist: #samples_result: #samples_tolerance: #samples_tolerance_retries: # See the \"probe\" section for information on these parameters. [smart_effector] \u00b6 Lo \"Smart Effector\" di Duet3d implementa una sonda Z utilizzando un sensore di forza. Si pu\u00f2 definire questa sezione invece di [probe] per abilitare le funzioni specifiche di Smart Effector. Ci\u00f2 consente anche a comandi di runtime di regolare i parametri di Smart Effector in fase di esecuzione. [smart_effector] pin: # Pin collegato al pin di uscita della sonda Z Smart Effector (pin 5). Si noti # che la resistenza di pullup sulla scheda generalmente non \u00e8 richiesta. # Tuttavia, se il pin di uscita \u00e8 collegato al pin della scheda con un resistore # di pullup, tale resistore deve essere di valore elevato (ad es. 10K Ohm o pi\u00f9). # Alcune schede hanno un resistore di pullup di basso valore sull'ingresso # della sonda Z, che probabilmente far\u00e0 risultare in uno stato di sonda sempre # attivato. In questo caso, collegare lo Smart Effector a un pin diverso sulla # scheda. Questo parametro \u00e8 obbligatorio. #control_pin: # Pin collegato al pin di ingresso di controllo Smart Effector (pin 7). Se fornito, # diventano disponibili i comandi di programmazione della sensibilit\u00e0 # di Smart Effector. #probe_accel: # Se impostato, limita l'accelerazione dei movimenti di tastatura (in mm/sec^2). # Un'improvvisa grande accelerazione all'inizio del movimento di esplorazione # pu\u00f2 causare l'attivazione spuria della sonda, specialmente se l'hotend \u00e8 pesante. # Per evitarlo, potrebbe essere necessario ridurre l'accelerazione dei movimenti # di tastatura tramite questo parametro. #recovery_time: 0.4 # Un ritardo tra i movimenti di spostamento e tastatura in secondi. Un # movimento veloce prima della tastatura pu\u00f2 causare l'attivazione spuria della # sonda. Ci\u00f2 pu\u00f2 causare errori \"Sonda attivata prima del movimento\" se non # \u00e8 impostato alcun ritardo. Il valore 0 disabilita il ritardo di ripristino. # Il valore predefinito \u00e8 0.4. #x_offset: #y_offset: # Dovrebbe essere lasciato non impostato (o impostato su 0). z_offset: # Altezza di attivazione della sonda. Inizia con -0.1 (mm) e regola in seguito # usando il comando `PROBE_CALIBRATE`. Questo parametro deve essere fornito. #speed: # Velocit\u00e0 (in mm/s) dell'asse Z durante la tastatura. Si consiglia di iniziare con la # velocit\u00e0 di tastatura di 20 mm/s e di regolarla secondo necessit\u00e0 per migliorare la # precisione e la ripetibilit\u00e0 dell'attivazione della sonda. #samples: #sample_retract_dist: #samples_result: #samples_tolerance: #samples_tolerance_retries: #activate_gcode: #deactivate_gcode: #deactivate_on_each_sample: # Vedere la sezione \"probe\" per ulteriori informazioni sui parametri di cui sopra. Motori passo-passo ed estrusori aggiuntivi \u00b6 [stepper_z1] \u00b6 Assi multi-stepper. Su una stampante in stile cartesiano, lo stepper che controlla un dato asse pu\u00f2 avere blocchi di configurazione aggiuntivi che definiscono gli stepper che dovrebbero essere azionati insieme allo stepper primario. Si pu\u00f2 definire un numero qualsiasi di sezioni con un suffisso numerico che inizia da 1 (ad esempio, \"stepper_z1\", \"stepper_z2\", ecc.). [stepper_z1] #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: # Vedere la sezione \"stepper\" per la definizione dei parametri di cui sopra. #endstop_pin: # Se viene definito un endstop_pin per lo stepper aggiuntivo, lo stepper # si fermer\u00e0 fino all'attivazione dell'endstop. In caso contrario, lo stepper # si fermer\u00e0 fino a quando non verr\u00e0 attivato il finecorsa sullo stepper # primario per l'asse. [extruder1] \u00b6 In una stampante multiestrusore aggiungere una sezione estrusore aggiuntiva per ogni estrusore aggiuntivo. Le sezioni aggiuntive dell'estrusore devono essere denominate \"extruder1\", \"extruder2\", \"extruder3\" e cos\u00ec via. Vedere la sezione \"extruder\" per una descrizione dei parametri disponibili. Vedere sample-multi-extruder.cfg per un esempio di configurazione. [extruder1] #step_pin: #dir_pin: #... # Vedere la sezione \"estrusore\" per i parametri per lo stepper e il riscaldatore # disponibili. #shared_heater: # Questa opzione \u00e8 obsoleta e non deve pi\u00f9 essere specificata. [dual_carriage] \u00b6 Supporto per stampanti cartesiane con doppi carrelli su un unico asse. Il carrello attivo viene impostato tramite il comando G-code esteso SET_DUAL_CARRIAGE. Il comando \"SET_DUAL_CARRIAGE CARRIAGE=1\" attiver\u00e0 il carrello definito in questa sezione (CARRIAGE=0 riporter\u00e0 l'attivazione al carrello principale). Il supporto del doppio carrello \u00e8 in genere combinato con estrusori extra: il comando SET_DUAL_CARRIAGE viene spesso chiamato contemporaneamente al comando ACTIVATE_EXTRUDER. Assicurati di parcheggiare i carrelli durante la disattivazione. Vedere sample-idex.cfg per un esempio di configurazione. [dual_carriage] axis: # L'asse su cui si trova questo carrello aggiuntivo (x o y). Questo parametro # deve essere fornito #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: #endstop_pin: #position_endstop: #position_min: #position_max: # Vedere la sezione \"stepper\" per la definizione dei parametri di cui sopra. [extruder_stepper] \u00b6 Supporto per stepper aggiuntivi sincronizzati al movimento di un estrusore (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"extruder_stepper\"). Per ulteriori informazioni, vedere riferimento comando . [extruder_stepper my_extra_stepper] extruder: # L'estrusore con cui \u00e8 sincronizzato questo stepper. Se questo \u00e8 impostato su # una stringa vuota, lo stepper non verr\u00e0 sincronizzato con un # estrusore. Questo parametro deve essere fornito. #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: # Vedere la sezione \"stepper\" per la definizione dei parametri sopra. # . [Stepper manuali] \u00b6 Stepper manuali (\u00e8 possibile definire un numero qualsiasi di sezioni con un prefisso \"manual_stepper\"). Questi sono stepper controllati dal comando g-code MANUAL_STEPPER. Ad esempio: \"MANUAL_STEPPER STEPPER=my_stepper MOVE=10 SPEED=5\". Vedere il file G-Codes per una descrizione del comando MANUAL_STEPPER. Gli stepper non sono collegati alla normale cinematica della stampante. [manual_stepper my_stepper] #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: # Vedere la sezione \"stepper\" per una descrizione di questi parametri. #velocity: # Impostare la velocit\u00e0 predefinita (in mm/s) per lo stepper. Questo # valore verr\u00e0 utilizzato se un comando MANUAL_STEPPER non specifica # un parametro SPEED. Il valore predefinito \u00e8 5 mm/s. #accel: # Imposta l'accelerazione predefinita (in mm/s^2) per lo stepper. # Un'accelerazione pari a zero non risulter\u00e0 in nessuna accelerazione. # Questo valore verr\u00e0 utilizzato se un comando MANUAL_STEPPER non # specifica un parametro ACCEL. Il valore predefinito \u00e8 zero. #endstop_pin: # Pin di rilevamento interruttore di fine corsa. Se specificato, \u00e8 possibile # eseguire \"movimenti di riferimento\" aggiungendo un parametro # STOP_ON_ENDSTOP ai comandi di movimento MANUAL_STEPPER. Riscaldatori e sensori personalizzati \u00b6 [verify_heater] \u00b6 Verifica riscaldatore e sensore di temperatura. La verifica del riscaldatore viene abilitata automaticamente per ogni riscaldatore configurato sulla stampante. Usa le sezioni di verifica_riscaldatore per modificare le impostazioni predefinite. [verify_heater heater_config_name] #max_error: 120 # Il massimo \"errore di temperatura cumulativo\" prima di generare un # errore. Valori pi\u00f9 piccoli comportano un controllo pi\u00f9 rigoroso e valori # pi\u00f9 grandi consentono pi\u00f9 tempo prima che venga segnalato un errore. # Nello specifico la temperatura viene osservata una volta al secondo e # se \u00e8 prossima alla temperatura target viene azzerato un \"contatore errori\" # interno; in caso contrario, se la temperatura \u00e8 inferiore all'intervallo target, # il contatore viene aumentato della quantit\u00e0 in cui la temperatura riportata # differisce da tale intervallo. Se il contatore supera questo \"errore_max\", # viene generato un errore. Il valore predefinito \u00e8 120. #check_gain_time: # Questo controlla la verifica del riscaldatore durante il riscaldamento # iniziale. Valori pi\u00f9 piccoli comportano un controllo pi\u00f9 rigoroso e valori # pi\u00f9 grandi consentono pi\u00f9 tempo prima che venga segnalato un errore. # In particolare, durante il riscaldamento iniziale, fintanto che il riscaldatore # aumenta di temperatura entro questo intervallo di tempo (specificato in # secondi), il \"contatore errori\" interno viene azzerato. Il valore predefinito # \u00e8 20 secondi per gli estrusori e 60 secondi per heater_bed. #hysteresis: 5 # La differenza di temperatura massima (in gradi Celsius) rispetto a una # temperatura target considerata nell'intervallo del target. Questo controlla # nell'intervallo max_error. \u00c8 raro personalizzare questo valore. # L'impostazione predefinita \u00e8 5. #heating_gain: 2 # La temperatura minima (in gradi Celsius) di cui il riscaldatore deve # aumentare durante il check_gain_time. \u00c8 raro personalizzare questo valore. # L'impostazione predefinita \u00e8 2. [homing_heaters] \u00b6 Strumento per disabilitare i riscaldatori durante l'homing o la probing di un asse. [homing_heaters] #steppers: # Un elenco separato da virgole di stepper che dovrebbero causare # la disattivazione dei riscaldatori. L'impostazione predefinita \u00e8 # disabilitare i riscaldatori per qualsiasi spostamento di homing/sonda. # Esempio tipico: stepper_z #heaters: # Un elenco separato da virgole di riscaldatori da disabilitare # durante i movimenti di homing/probing. L'impostazione # predefinita \u00e8 disabilitare tutti i riscaldatori. # Esempio tipico: estrusore, letto riscaldatore [thermistor] \u00b6 Termistori personalizzati (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"thermistor\"). \u00c8 possibile utilizzare un termistore personalizzato nel campo sensor_type di una sezione di configurazione del riscaldatore. (Ad esempio, se si definisce una sezione \"[thermistor my_thermistor]\", \u00e8 possibile utilizzare un \"sensor_type: my_thermistor\" quando si definisce un riscaldatore.) Assicurati di posizionare la sezione del termistore nel file di configurazione sopra il suo primo utilizzo in una sezione del riscaldatore . [thermistor my_thermistor] #temperature1: #resistance1: #temperature2: #resistance2: #temperature3: #resistance3: # Tre misure di resistenza (in Ohm) alle temperature date (in Celsius). # Le tre misurazioni verranno utilizzate per calcolare i coefficienti di # Steinhart-Hart per il termistore. Questi parametri devono essere # forniti quando si utilizza Steinhart-Hart per definire il termistore. #beta: # In alternativa, \u00e8 possibile definire temperatura1, resistenza1 e beta # per definire i parametri del termistore. Questo parametro deve # essere fornito quando si utilizza \"beta\" per definire il termistore. [adc_temperature] \u00b6 Sensori di temperatura ADC personalizzati (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"adc_temperature\"). Ci\u00f2 consente di definire un sensore di temperatura personalizzato che misura una tensione su un pin del convertitore da analogico a digitale (ADC) e utilizza l'interpolazione lineare tra una serie di misurazioni di temperatura/tensione (o temperatura/resistenza) configurate per determinare la temperatura. Il sensore risultante pu\u00f2 essere utilizzato come tipo_sensore in una sezione riscaldatore. (Ad esempio, se si definisce una sezione \"[adc_temperature my_sensor]\", \u00e8 possibile utilizzare un \"sensor_type: my_sensor\" quando si definisce un riscaldatore.) Assicurati di posizionare la sezione del sensore nel file di configurazione sopra il suo primo utilizzo in una sezione del riscaldatore. [adc_temperature my_sensor] #temperature1: #voltage1: #temperature2: #voltage2: #... # A set of temperatures (in Celsius) and voltages (in Volts) to use # as reference when converting a temperature. A heater section using # this sensor may also specify adc_voltage and voltage_offset # parameters to define the ADC voltage (see \"Common temperature # amplifiers\" section for details). At least two measurements must # be provided. #temperature1: #resistance1: #temperature2: #resistance2: #... # Alternatively one may specify a set of temperatures (in Celsius) # and resistance (in Ohms) to use as reference when converting a # temperature. A heater section using this sensor may also specify a # pullup_resistor parameter (see \"extruder\" section for details). At # least two measurements must be provided. [heater_generic] \u00b6 Riscaldatori generici (si pu\u00f2 definire un numero qualsiasi di sezioni con il prefisso \"riscaldatore_generico\"). Questi riscaldatori si comportano in modo simile ai riscaldatori standard (estrusori, piatti riscaldati). Utilizzare il comando SET_HEATER_TEMPERATURE (consultare G-Codes per i dettagli) per impostare la temperatura target. [heater_generic my_generic_heater] #gcode_id: # L'ID da utilizzare quando si riporta la temperatura nel comando M105. # Questo parametro deve essere fornito. #max_power: #sensor_type: #sensor_pin: #smooth_time: #control: #pid_Kp: #pid_Ki: #pid_Kd: #pwm_cycle_time: #min_temp: #max_temp: # Vedere la sezione \"extruder\" per la definizione dei parametri sopra. [temperature_sensor] \u00b6 Sensori di temperatura generici. \u00c8 possibile definire un numero qualsiasi di sensori di temperatura aggiuntivi che vengono riportati tramite il comando M105. [temperature_sensor my_sensor] #sensor_type: #sensor_pin: #min_temp: #max_temp: # Vedi la sezione \"extruder\" per la definizione dei parametri # sopra indicati. #gcode_id: # Vedi la sezione \"heater_generic\" per la definizione dei # parametri sopra indicati. Sensori di temperatura \u00b6 Klipper include definizioni per molti tipi di sensori di temperatura. Questi sensori possono essere utilizzati in qualsiasi sezione di configurazione che richieda un sensore di temperatura (come una sezione [extruder] o [heater_bed] ). Termistori comuni \u00b6 Termistori comuni. I seguenti parametri sono disponibili nelle sezioni del riscaldatore che utilizzano uno di questi sensori. sensor_type: # Uno di \"EPCOS 100K B57560G104F\", \"ATC Semitec 104GT-2\", # \"ATC Semitec 104NT-4-R025H42G\", \"Generic 3950\", # \"Honeywell 100K 135-104LAG-J01\", \"NTC 100K MGB18-104F39050L32\", # \"SliceEngineering 450\", o \"TDK NTCG104LH104JT1\" sensor_pin: # Pin di ingresso analogico collegato al termistore. # Questo parametro deve essere fornito. #pullup_resistor: 4700 # La resistenza (in ohm) del pullup collegato al termistore. # Il valore predefinito \u00e8 4700 ohm. #inline_resistor: 0 # La resistenza (in ohm) di un resistore aggiuntivo (non a variazione di # calore) posizionato in linea con il termistore. \u00c8 raro impostare questo. # Il valore predefinito \u00e8 0 ohm. Amplificatori di temperatura comuni \u00b6 Amplificatori di temperatura comuni. I seguenti parametri sono disponibili nelle sezioni del riscaldatore che utilizzano uno di questi sensori. sensor_type: # Uno tra \"PT100 INA826\", \"AD595\", \"AD597\", \"AD8494\", \"AD8495\", # \"AD8496\", o \"AD8497\". sensor_pin: # Pin di ingresso analogico collegato al sensore. Questo parametro # deve essere fornito. #adc_voltage: 5.0 # La tensione di confronto dell'ADC (in Volt). Il valore predefinito # \u00e8 5 volt. #voltage_offset: 0 # L'offset di tensione ADC (in Volt). Il valore predefinito \u00e8 0. Sensore PT1000 collegato direttamente \u00b6 Sensore PT1000 collegato direttamente. I seguenti parametri sono disponibili nelle sezioni del riscaldatore che utilizzano uno di questi sensori. sensor_type: PT1000 sensor_pin: # Pin di ingresso analogico collegato al sensore. Questo parametro # deve essere fornito. #pullup_resistor: 4700 # La resistenza (in ohm) del pullup collegato al sensore. Il valore # predefinito \u00e8 4700 ohm. Sensori di temperatura MAXxxxxx \u00b6 Sensori temperatura MAXxxxxx con interfaccia periferica seriale (SPI). I seguenti parametri sono disponibili nelle sezioni del riscaldatore che utilizzano uno di questi tipi di sensore. sensor_type: # Uno tra \"MAX6675\", \"MAX31855\", \"MAX31856\", o \"MAX31865\". sensor_pin: # Il pin mcu collegato al pin di selezione del chip del sensore. # Questo parametro deve essere fornito. #spi_speed: 4000000 # La velocit\u00e0 SPI (in hz) da utilizzare durante la comunicazione # con il chip. Il valore predefinito \u00e8 4000000. #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Vedere la sezione \"impostazioni comuni SPI\" per una # descrizione dei parametri di cui sopra. #tc_type: K #tc_use_50Hz_filter: False #tc_averaging_count: 1 # I parametri di cui sopra controllano i parametri del sensore # dei chip MAX31856. I valori predefiniti per ciascun parametro # sono accanto al nome del parametro nell'elenco precedente. #rtd_nominal_r: 100 #rtd_reference_r: 430 #rtd_num_of_wires: 2 #rtd_use_50Hz_filter: False # I parametri di cui sopra controllano i parametri del sensore dei # chip MAX31865. I valori predefiniti per ciascun parametro sono # accanto al nome del parametro nell'elenco precedente. Sensore di temperatura BMP280/BME280/BME680 \u00b6 Sensori ambientali BMP280/BME280/BME680 con interfaccia I2C. Si noti che questi sensori non sono destinati all'uso con estrusori e letti riscaldanti, ma piuttosto per il monitoraggio della temperatura ambiente (C), della pressione (hPa), dell'umidit\u00e0 relativa (%)e di livello del gas per il BME680. Vedere sample-macros.cfg per una gcode_macro che pu\u00f2 essere utilizzata per riportare la pressione e l'umidit\u00e0 oltre alla temperatura. sensor_type: BME280 #i2c_address: # Il valore predefinito \u00e8 118 (0x76). Alcuni sensori BME280 hanno un # indirizzo di 119 (0x77). #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni comuni I2C\" per una descrizione # dei parametri di cui sopra. Sensore HTU21D \u00b6 Sensore ambientale con interfaccia a due fili (I2C) della famiglia HTU21D. Si noti che questo sensore non \u00e8 destinato all'uso con estrusori e letti riscaldanti, ma piuttosto per il monitoraggio della temperatura ambiente (C) e dell'umidit\u00e0 relativa(%). Vedere sample-macros.cfg per una gcode_macro che pu\u00f2 essere utilizzata per riportare l'umidit\u00e0 oltre alla temperatura. sensor_type: # Deve essere \"HTU21D\", \"SI7013\", \"SI7020\", \"SI7021\" o \"SHT21\" #i2c_address: # Il valore predefinito \u00e8 64 (0x40). #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni comuni I2C\" per una # descrizione dei parametri di cui sopra. #htu21d_hold_master: # Se il sensore pu\u00f2 trattenere il buf I2C durante la lettura. Se # True nessun'altra comunicazione bus pu\u00f2 essere eseguita mentre # la lettura \u00e8 in corso. L'impostazione predefinita \u00e8 False. #htu21d_resolution: # La risoluzione della lettura di temperatura e umidit\u00e0. # I valori validi sono: # 'TEMP14_HUM12' -> 14bit per Temp e 12bit per umidit\u00e0 # 'TEMP13_HUM10' -> 13bit per Temp e 10bit per umidit\u00e0 # 'TEMP12_HUM08' -> 12bit per Temp e 08bit per umidit\u00e0 # 'TEMP11_HUM11' -> 11bit per Temp e 11bit per umidit\u00e0 # L'impostazione predefinita \u00e8: \"TEMP11_HUM11\" #htu21d_report_time: # Intervallo in secondi tra le letture. Il valore predefinito \u00e8 30 Sensore di temperatura LM75 \u00b6 Sensori di temperatura (I2C) LM75/LM75A. Questi sensori hanno una gamma di -55~125 C, quindi sono utilizzabili ad es. monitoraggio della temperatura della camera. Possono anche funzionare come semplici controller per ventole/riscaldatori. sensor_type: LM75 #i2c_address: # Il valore predefinito \u00e8 72 (0x48). L'intervallo normale \u00e8 72-79 # (0x48-0x4F) e i 3 bit bassi dell'indirizzo sono configurati tramite # pin sul chip (di solito con ponticelli o cablati). #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni comuni I2C\" per una descrizione # dei parametri di cui sopra. #lm75_report_time: # Intervallo in secondi tra le letture. Il valore predefinito \u00e8 0.8 # con il minimo 0.5. Sensore di temperatura integrato nel microcontrollore \u00b6 I microcontrollori atsam, atsamd e stm32 contengono un sensore di temperatura interno. \u00c8 possibile utilizzare il sensore \"temperature_mcu\" per monitorare queste temperature. sensor_type: temperature_mcu #sensor_mcu: mcu # Il microcontrollore da cui leggere. L'impostazione predefinita \u00e8 \"mcu\". #sensor_temperature1: #sensor_adc1: # Specificare i due parametri precedenti (una temperatura in gradi # Celsius e un valore ADC come float compreso tra 0,0 e 1,0) per # calibrare la temperatura del microcontrollore. Ci\u00f2 potrebbe # migliorare la precisione della temperatura riportata su alcuni chip. # Un modo tipico per ottenere queste informazioni di calibrazione # consiste nel rimuovere completamente l'alimentazione dalla # stampante per alcune ore (per assicurarsi che sia alla temperatura # ambiente), quindi accenderla e utilizzare il comando QUERY_ADC # per ottenere una misurazione ADC. Utilizzare un altro sensore di # temperatura sulla stampante per trovare la temperatura ambiente # corrispondente. L'impostazione predefinita consiste nell'utilizzare # i dati di calibrazione di fabbrica sul microcontrollore (se applicabile) # o i valori nominali dalle specifiche del microcontrollore. #sensor_temperature2: #sensor_adc2: # Se viene specificato sensor_temperature1/sensor_adc1, \u00e8 anche # possibile specificare i dati di calibrazione sensor_temperature2/sensor_adc2. # Ci\u00f2 potrebbe fornire informazioni calibrate sulla \"curva della # temperatura\". L'impostazione predefinita consiste nell'utilizzare i dati # di calibrazione di fabbrica sul microcontrollore (se applicabile) o i # valori nominali dalle specifiche del microcontrollore. Sensore di temperatura host \u00b6 Temperatura dalla macchina (es. Raspberry Pi) che esegue il software host. sensor_type: temperature_host #sensor_path: # il percorso del file di sistema della temperatura. L'impostazione # predefinita \u00e8 \"/sys/class/thermal/thermal_zone0/temp\" che \u00e8 il file di # sistema della temperatura su un computer Raspberry Pi. Sensore di temperatura DS18B20 \u00b6 DS18B20 \u00e8 un sensore di temperatura digitale a 1 filo (w1). Si noti che questo sensore non \u00e8 destinato all'uso con estrusori e letti riscaldanti, ma piuttosto per il monitoraggio della temperatura ambiente (C). Questi sensori hanno una portata fino a 125 C, quindi sono utilizzabili ad es. monitoraggio della temperatura della camera. Possono anche funzionare come semplici controller per ventole/riscaldatori. I sensori DS18B20 sono supportati solo su \"host mcu\", ad es. il Raspberry Pi. \u00c8 necessario installare il modulo del kernel Linux w1-gpio. sensor_type: DS18B20 serial_no: # Ogni dispositivo a 1 filo ha un numero di serie univoco utilizzato per # identificare il dispositivo, solitamente nel formato 28-031674b175ff. Questo # parametro deve essere fornito. I dispositivi collegati a 1 filo possono essere # elencati utilizzando il seguente comando Linux: ls /sys/bus/w1/devices/ #ds18_report_time: # Intervallo in secondi tra le letture. Il valore predefinito \u00e8 3.0, con un # minimo di 1.0 #sensor_mcu: # Il microcontrollore da cui leggere. Deve essere host_mcu Ventole \u00b6 [fan] \u00b6 Ventola di raffreddamento della stampa. [fan] pin: # Pin di output che controlla la ventola. Questo parametro deve essere fornito. #max_power: 1.0 # La potenza massima (espressa come un valore compreso tra 0.0 e 1.0) a # cui pu\u00f2 essere impostato il pin. Il valore 1.0 consente di impostare il pin # completamente abilitato per periodi prolungati, mentre un valore di 0.5 # consentirebbe di abilitare il pin per non pi\u00f9 della met\u00e0 del tempo. Questa # impostazione pu\u00f2 essere utilizzata per limitare la potenza totale (per # periodi prolungati) della ventola. Se questo valore \u00e8 inferiore a 1.0, le # richieste di velocit\u00e0 della ventola verranno ridimensionate tra zero e # max_power (ad esempio, se max_power \u00e8 0.9 e viene richiesta una # velocit\u00e0 della ventola dell'80%, la potenza della ventola verr\u00e0 impostata # su 72%). L'impostazione predefinita \u00e8 1.0. #shutdown_speed: 0 # La velocit\u00e0 della ventola desiderata (espressa come valore da 0.0 a # 1.0) se il software del microcontrollore entra in uno stato di errore. # Il valore predefinito \u00e8 0. #cycle_time: 0.010 # La quantit\u00e0 di tempo (in secondi) per ogni ciclo di alimentazione PWM # alla ventola. Si consiglia di essere pari o superiore a 10 millisecondi # quando si utilizza il PWM basato su software. # Il valore predefinito \u00e8 0,010 secondi. #hardware_pwm: False # Abilitare questa opzione per utilizzare PWM hardware anzich\u00e9 PWM # software. La maggior parte delle ventole non funziona bene con PWM # hardware, quindi non \u00e8 consigliabile abilitarlo a meno che non vi sia # un requisito elettrico per passare a velocit\u00e0 molto elevate. Quando # si utilizza l'hardware PWM, il tempo di ciclo effettivo \u00e8 vincolato # dall'implementazione e pu\u00f2 essere notevolmente diverso dal tempo # di ciclo richiesto. L'impostazione predefinita \u00e8 False. #kick_start_time: 0.100 # Tempo (in secondi) per far funzionare la ventola a piena velocit\u00e0 # quando la si abilita per la prima volta o la si aumenta di oltre il 50% # (aiuta a far girare la ventola). Il valore predefinito \u00e8 0,100 secondi. #off_below: 0.0 # La velocit\u00e0 minima in input che alimenter\u00e0 la ventola (espressa # come un valore da 0.0 a 1.0). Quando viene richiesta una velocit\u00e0 # inferiore a off_below la ventola verr\u00e0 invece spenta. Questa # impostazione pu\u00f2 essere utilizzata per prevenire lo stallo della # ventola e per garantire che i kick start siano efficaci. # Il valore predefinito \u00e8 0.0. # # Questa impostazione deve essere ricalibrata ogni volta che # max_power viene regolato. Per calibrare questa impostazione, # inizia con off_below impostato su 0.0 e la ventola gira. Abbassare # gradualmente la velocit\u00e0 della ventola per determinare la velocit\u00e0 # di ingresso pi\u00f9 bassa che aziona la ventola in modo affidabile senza # stalli. Impostare off_below al duty cycle corrispondente a questo # valore (ad esempio, 12% -> 0,12) o leggermente superiore. #tachometer_pin: # Pin di ingresso contagiri per il monitoraggio della velocit\u00e0 della # ventola. In genere \u00e8 richiesto un pullup. Questo parametro \u00e8 facoltativo. #tachometer_ppr: 2 # Quando viene specificato tachometer_pin, questo \u00e8 il numero di # impulsi per giro del segnale del tachimetro. Per una ventola BLDC # questo \u00e8 normalmente la met\u00e0 del numero di poli. # L'impostazione predefinita \u00e8 2. #tachometer_poll_interval: 0.0015 # Quando viene specificato tachometer_pin, questo \u00e8 il periodo di polling # del pin del contagiri, in secondi. Il valore predefinito \u00e8 0.0015, che \u00e8 # abbastanza veloce per le ventole al di sotto di 10000 RPM a 2 PPR. Deve # essere inferiore a 30/(tachometer_ppr*rpm), con un certo margine, # dove rpm \u00e8 la velocit\u00e0 massima (in RPM) della ventola. #enable_pin: # Pin opzionale per abilitare l'alimentazione alla ventola. Questo pu\u00f2 # essere utile per le ventole con ingressi PWM dedicati. Alcune di queste # ventole rimangono accese anche allo 0% di ingresso PWM. In tal caso, # il pin PWM pu\u00f2 essere utilizzato normalmente e ad es. un FET commutato # a terra (pin della ventola standard) pu\u00f2 essere utilizzato per controllare # l'alimentazione alla ventola. [heater_fan] \u00b6 Ventole di raffreddamento del riscaldatore (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"heater_fan\"). Una \"ventola riscaldatore\" \u00e8 una ventola che verr\u00e0 abilitata ogni volta che il riscaldatore associato \u00e8 attivo. Per impostazione predefinita, un heater_fan ha una velocit\u00e0 di spegnimento pari a max_power. [heater_fan my_nozzle_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # Vedere la sezione \"fan\" per una descrizione dei parametri di cui sopra. #heater: extruder # Nome della sezione di configurazione che definisce il riscaldatore a cui # \u00e8 associato questa ventola. Se qui viene fornito un elenco di nomi di # riscaldatori separati da virgole, la ventola verr\u00e0 abilitata quando uno # qualsiasi dei riscaldatori indicati \u00e8 abilitato. # L'impostazione predefinita \u00e8 \"extruder\". #heater_temp: 50.0 # Una temperatura (in gradi Celsius) sotto la quale il riscaldatore deve # scendere prima che la ventola venga disattivata. # L'impostazione predefinita \u00e8 50 gradi Celsius. #fan_speed: 1.0 # La velocit\u00e0 della ventola (espressa come un valore compreso tra 0.0 e # 1.0) a cui verr\u00e0 impostato la ventola quando viene abilitato il relativo # riscaldatore. L'impostazione predefinita \u00e8 1.0 [controller_fan] \u00b6 Ventola di raffreddamento del controller (\u00e8 possibile definire un numero qualsiasi di sezioni con il prefisso \"controller_fan\"). Una \"ventola del controller\" \u00e8 una ventola che verr\u00e0 abilitata ogni volta che il riscaldatore associato o il driver stepper associato \u00e8 attivo. La ventola si fermer\u00e0 ogni volta che viene raggiunto un idle_timeout per garantire che non si verifichi alcun surriscaldamento dopo la disattivazione di un componente osservato. [controller_fan my_controller_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # Vedere la sezione \"fan\" per una descrizione dei parametri di cui sopra. #fan_speed: 1.0 # La velocit\u00e0 della ventola (espressa come un valore compreso tra 0.0 e # 1.0) a cui verr\u00e0 impostata la ventola quando \u00e8 attivo un riscaldatore # o un driver passo-passo. L'impostazione predefinita \u00e8 1.0 #idle_timeout: # La quantit\u00e0 di tempo (in secondi) dopo che un driver passo-passo o # un riscaldatore \u00e8 stato attivo per la quale la ventola deve essere tenuta # in funzione. L'impostazione predefinita \u00e8 30 secondi. #idle_speed: # La velocit\u00e0 della ventola (espressa come un valore compreso tra 0.0 # e 1.0) a cui verr\u00e0 impostata la ventola quando era attivo un riscaldatore # o un driver passo-passo e prima che venga raggiunto l'idle_timeout. # L'impostazione predefinita \u00e8 fan_speed. #heater: #stepper: # Nome della sezione di configurazione che definisce il riscaldatore/ # stepper a cui \u00e8 associata questa ventola. Se qui viene fornito un # elenco separato da virgole di nomi di riscaldatori/stepper, la ventola # sar\u00e0 abilitata quando uno qualsiasi dei riscaldatori/stepper indicati # \u00e8 abilitato. Il riscaldatore predefinito \u00e8 \"estrusore\", lo stepper # predefinito sono tutti. [temperature_fan] \u00b6 Ventole di raffreddamento attivate dalla temperatura (\u00e8 possibile definire un numero qualsiasi di sezioni con un prefisso \"temperature_fan\"). Una \"ventola di temperatura\" \u00e8 una ventola che verr\u00e0 abilitata ogni volta che il sensore associato \u00e8 al di sopra di una temperatura impostata. Per impostazione predefinita, una ventola_temperatura ha una velocit\u00e0_di_arresto pari a potenza_massima. Per ulteriori informazioni, vedere command reference . [temperature_fan my_temp_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # Vedere la sezione \"fan\" per una descrizione dei parametri di cui sopra. #sensor_type: #sensor_pin: #control: #max_delta: #min_temp: #max_temp: # Vedere la sezione \"extruder\" per una descrizione dei parametri di cui sopra. #pid_Kp: #pid_Ki: #pid_Kd: # Le impostazioni proporzionale (pid_Kp), integrale (pid_Ki) e derivata (pid_Kd) # per il sistema di controllo del feedback PID. Klipper valuta le impostazioni PID # con la seguente formula generale: fan_pwm = max_power - (Kp*e + Ki*integral(e) # - Kd*derivative(e)) / 255 Dove \"e\" \u00e8 \"target_temperature - measure_temperature\" # e \"fan_pwm\" \u00e8 la frequenza della ventola richiesta con 0.0 per spento e 1.0 al # massimo. I parametri pid_Kp, pid_Ki e pid_Kd devono essere forniti quando l# 'algoritmo di controllo PID \u00e8 abilitato. #pid_deriv_time: 2.0 # Un valore di tempo (in secondi) su cui le misurazioni della temperatura verranno # livellate quando si utilizza l'algoritmo di controllo PID. Ci\u00f2 pu\u00f2 ridurre l'impatto # del rumore di misurazione. Il valore predefinito \u00e8 2 secondi. #target_temp: 40.0 # Una temperatura (in Celsius) che sar\u00e0 la temperatura target. # L'impostazione predefinita \u00e8 40 gradi. #max_speed: 1.0 # La velocit\u00e0 della ventola (espressa come un valore compreso tra 0.0 e 1.0) a cui # verr\u00e0 impostata la ventola quando la temperatura del sensore supera il valore # impostato. L'impostazione predefinita \u00e8 1.0. #min_speed: 0.3 # La velocit\u00e0 minima della ventola (espressa come un valore compreso tra 0.0 e # 1.0) alla quale la ventola verr\u00e0 impostata per le ventole con temperatura PID. # Il valore predefinito \u00e8 0.3. #gcode_id: # Se impostata, la temperatura verr\u00e0 riportata nelle query M105 utilizzando l'id # fornito. L'impostazione predefinita \u00e8 di non riportare la temperatura tramite M105. [fan_generic] \u00b6 Ventola a controllo manuale (si pu\u00f2 definire un numero qualsiasi di sezioni con il prefisso \"fan_generic\"). La velocit\u00e0 di una ventola controllata manualmente viene impostata con SET_FAN_SPEED comando gcode . [fan_generic extruder_partfan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # Vedere la sezione \"fan\" per una descrizione dei parametri di cui sopra. LEDs \u00b6 [led] \u00b6 Supporto per LED (e strisce LED) controllati tramite pin PWM del microcontrollore (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"led\"). Per ulteriori informazioni, vedere command reference . [led my_led] #red_pin: #green_pin: #blue_pin: #white_pin: # Il pin che controlla il colore del LED specificato. Deve essere fornito # almeno uno dei parametri sopra indicati. #cycle_time: 0.010 # La quantit\u00e0 di tempo (in secondi) per ciclo PWM. Si consiglia che sia # pari o superiore a 10 millisecondi quando si utilizza il PWM basato # su software. Il valore predefinito \u00e8 0,010 secondi. #hardware_pwm: False # Abilitare questa opzione per utilizzare PWM hardware anzich\u00e9 PWM # software. Quando si utilizza l'hardware PWM, il tempo di ciclo effettivo # \u00e8 vincolato dall'implementazione e pu\u00f2 essere notevolmente diverso # dal tempo di ciclo richiesto. L'impostazione predefinita \u00e8 Falso. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Imposta il colore iniziale del LED. Ciascun valore deve essere # compreso tra 0,0 e 1,0. Il valore predefinito per ogni colore \u00e8 0. [neopixel] \u00b6 Supporto LED Neopixel (aka WS2812) (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"neopixel\"). Per ulteriori informazioni, vedere riferimento comando . Si noti che l'implementazione di linux mcu non supporta attualmente i neopixel collegati direttamente. L'attuale design che utilizza l'interfaccia del kernel Linux non consente questo scenario perch\u00e9 l'interfaccia GPIO del kernel non \u00e8 sufficientemente veloce da fornire le frequenze di impulso richieste. [neopixel my_neopixel] pin: # Il pin collegato al neopixel. Questo parametro deve essere fornito. #chain_count: # Il numero di chip Neopixel che sono \"collegati a margherita\" al # pin fornito. Il valore predefinito \u00e8 1 (che indica che un solo # Neopixel \u00e8 collegato al pin). #color_order: GRB # Impostare l'ordine dei pixel richiesto dall'hardware del LED # (utilizzando una stringa contenente le lettere R, G, B, W con W # opzionale). In alternativa, questo pu\u00f2 essere un elenco separato # da virgole di pixel, uno per ogni LED nella catena. # L'impostazione predefinita \u00e8 GRB. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Vedere la sezione \"led\" per informazioni su questi parametri. [dotstar] \u00b6 Supporto LED Dotstar (conosciuti anche come APA102) (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"dotstar\"). Per ulteriori informazioni, vedere command reference . [dotstar my_dotstar] data_pin: # Il pin connesso alla data line del dotstar. Questo parametro # deve essere fornito. clock_pin: # Il pin connesso alla clock line del dotstar. Questo parametro # deve essere fornito. #chain_count: # Vedere la sezione \"neopixel\" per informazioni su questo parametro. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 # Vedere la sezione \"led\" per informazioni su questo parametro. [pca9533] \u00b6 PCA9533 Supporto LED. Il PCA9533 viene utilizzato sulla scheda mightyboard. [pca9533 my_pca9533] #i2c_address: 98 # L'indirizzo i2c utilizzato dal chip sul bus i2c. Utilizzare 98 per # PCA9533/1, 99 per PCA9533/2. Il valore predefinito \u00e8 98. #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni comuni I2C\" per una # descrizione dei parametri di cui sopra. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Vedere la sezione \"led\" per informazioni su questi parametri. [pca9632] \u00b6 Supporto LED PCA9632. Il PCA9632 viene utilizzato su FlashForge Dreamer. [pca9632 my_pca9632] #i2c_address: 98 # L'indirizzo i2c utilizzato dal chip sul bus i2c. Pu\u00f2 essere 96, # 97, 98 o 99. Il valore predefinito \u00e8 98. #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni I2C comuni\" per una # descrizione dei parametri di cui sopra. #scl_pin: #sda_pin: # In alternativa, se il pca9632 non \u00e8 collegato a un bus I2C # hardware, \u00e8 possibile specificare i pin \"clock\" (pin scl) e \"data\" # (pin sda). L'impostazione predefinita prevede l'utilizzo # dell'hardware I2C. #color_order: RGBW # Impostare l'ordine dei pixel del LED (usando una stringa # contenente le lettere R, G, B, W). L'impostazione predefinita # \u00e8 RGBW. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Vedere la sezione \"led\" per informazioni su questi parametri. Servocomandi aggiuntivi, pulsanti e altri pin \u00b6 [servo] \u00b6 Servo (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"servo\"). I servo possono essere controllati usando SET_SERVO comando g-code . Ad esempio: SET_SERVO SERVO=my_servo ANGLE=180 [servo my_servo] pin: # Pin di uscita PWM che controlla il servo. Questo parametro deve # essere fornito. #maximum_servo_angle: 180 # L'angolo massimo (in gradi) a cui questo servo pu\u00f2 essere impostato. # L'impostazione predefinita \u00e8 180 gradi. #minimum_pulse_width: 0.001 # La durata minima dell'impulso (in secondi). Questo dovrebbe # corrispondere a un angolo di 0 gradi. Il valore predefinito \u00e8 0.001 secondi. #maximum_pulse_width: 0.002 # La durata massima dell'impulso (in secondi). Questo dovrebbe # corrispondere a un angolo di maximum_servo_angle. Il valore # predefinito \u00e8 0.002 secondi. #initial_angle: # Angolo iniziale (in gradi) su cui impostare il servo. L'impostazione # predefinita \u00e8 di non inviare alcun segnale all'avvio. #initial_pulse_width: # Durata iniziale dell'impulso (in secondi) su cui impostare il servo. # (Questo \u00e8 valido solo se initial_angle non \u00e8 impostato.) # L'impostazione predefinita \u00e8 di non inviare alcun segnale all'avvio. [gcode_button] \u00b6 Esegui gcode quando un pulsante viene premuto o rilasciato (o quando un pin cambia stato). Puoi controllare lo stato del pulsante usando QUERY_BUTTON button=my_gcode_button . [gcode_button my_gcode_button] pin: # Il pin su cui \u00e8 collegato il pulsante. Questo parametro deve essere fornito. #analog_range: # Due resistenze separate da virgole (in Ohm) che specificano l'intervallo # di resistenza minimo e massimo per il pulsante. Se viene fornito # analog_range, il pin deve essere un pin con capacit\u00e0 analogica. # L'impostazione predefinita \u00e8 utilizzare digital gpio per il pulsante. #analog_pullup_resistor: # La resistenza di pullup (in Ohm) quando \u00e8 specificato analog_range. # Il valore predefinito \u00e8 4700 ohm. #press_gcode: # Un elenco di comandi G-Code da eseguire quando si preme il pulsante. # I modelli G-Code sono supportati. Questo parametro deve essere fornito. #release_gcode: # Un elenco di comandi G-Code da eseguire quando il pulsante viene # rilasciato. I modelli G-Code sono supportati. L'impostazione predefinita # \u00e8 di non eseguire alcun comando al rilascio di un pulsante. [output_pin] \u00b6 Pin di uscita configurabili in fase di run-time (\u00e8 possibile definire un numero qualsiasi di sezioni con un prefisso \"output_pin\"). I pin configurati qui verranno impostati come pin di output e sar\u00e0 possibile modificarli in fase di esecuzione utilizzando il comando esteso \"SET_PIN PIN=my_pin VALUE=.1\" comandi g-code . [output_pin my_pin] pin: # Il pin da configurare come output. # Questo parametro deve essere fornito. #pwm: False # Impostare se il pin di uscita deve essere in grado di modulare la # larghezza di impulso PWM. Se questo \u00e8 True, i campi del valore # dovrebbero essere compresi tra 0 e 1; se \u00e8 False i campi del valore # devono essere 0 o 1. Il valore predefinito \u00e8 False. #static_value: # Se \u00e8 valorizzato, il pin viene assegnato a questo valore all'avvio e # il pin non pu\u00f2 essere modificato durante il runtime. Un pin statico # utilizza una ram leggermente inferiore nel microcontrollore. # L'impostazione predefinita prevede l'utilizzo della configurazione # di runtime dei pin. #value: # Il valore su cui impostare inizialmente il pin durante la # configurazione dell'MCU. Il valore predefinito \u00e8 0 (per bassa tensione). #shutdown_value: # Il valore su cui impostare il pin su un evento di arresto dell'MCU. # Il valore predefinito \u00e8 0 (per bassa tensione). #maximum_mcu_duration: # La durata massima di un valore di non spegnimento pu\u00f2 essere # determinato dall'MCU senza un riconoscimento da parte dell'host. # Se l'host non riesce a tenere il passo con un aggiornamento, l'MCU # si spegner\u00e0 e imposter\u00e0 tutti i pin sui rispettivi valori di spegnimento. # Default: 0 (disabilitato) I valori abituali sono circa 5 secondi. #cycle_time: 0.100 # La quantit\u00e0 di tempo (in secondi) per ciclo PWM. Si consiglia di # essere pari o superiore a 10 millisecondi quando si utilizza il PWM # basato su software. Il valore predefinito \u00e8 0.100 secondi per i pin pwm. #hardware_pwm: False # Abilitare questa opzione per utilizzare PWM hardware anzich\u00e9 PWM # software. Quando si utilizza l'hardware PWM, il tempo di ciclo effettivo # \u00e8 vincolato dall'implementazione e pu\u00f2 essere notevolmente diverso # dal tempo di ciclo richiesto. L'impostazione predefinita \u00e8 Falso. #scale: # Questo parametro pu\u00f2 essere utilizzato per modificare il modo in cui # i parametri 'value' e 'shutdown_value' vengono interpretati per i pin # pwm. Se fornito, il parametro 'value' deve essere compreso tra 0.0 e # 'scale'. Questo pu\u00f2 essere utile quando si configura un pin PWM che # controlla un riferimento di tensione stepper. La \"scala\" pu\u00f2 essere # impostata sull'amperaggio dello stepper equivalente se il PWM fosse # completamente abilitato, quindi il parametro \"value\" pu\u00f2 essere # specificato utilizzando l'amperaggio desiderato per lo stepper. # L'impostazione predefinita \u00e8 di non ridimensionare il parametro 'value'. [static_digital_output] \u00b6 Pin di uscita digitali configurati staticamente (\u00e8 possibile definire un numero qualsiasi di sezioni con un prefisso \"static_digital_output\"). I pin configurati qui verranno impostati come uscita GPIO durante la configurazione dell'MCU. Non possono essere modificati in fase di esecuzione. [static_digital_output my_output_pins] pins: # Un elenco separato da virgole di pin da impostare come pin di # output GPIO. Il pin verr\u00e0 impostato su un livello alto a meno che il # nome del pin non sia preceduto da \"!\". Questo parametro deve # essere fornito. [multi_pin] \u00b6 Uscite a pin multipli (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"multi_pin\"). Un output multi_pin crea un alias pin interno che pu\u00f2 modificare pi\u00f9 pin di output ogni volta che viene impostato il pin alias. Ad esempio, si potrebbe definire un oggetto \"[multi_pin my_fan]\" contenente due pin e quindi impostare \"pin=multi_pin:my_fan\" nella sezione \"[fan]\" - ad ogni cambio di ventola entrambi i pin di output verrebbero aggiornati. Questi alias non possono essere utilizzati con i pin del motore passo-passo. [multi_pin my_multi_pin] pins: # Un elenco separato da virgole di pin associati a questo alias. # Questo parametro deve essere fornito. Configurazione del driver TMC per stepper \u00b6 Configurazione dei driver per motori passo-passo Trinamic in modalit\u00e0 UART/SPI. Ulteriori informazioni si trovano nella TMC Drivers guide e nel command reference . [tmc2130] \u00b6 Configurare un driver per motore passo-passo TMC2130 tramite bus SPI. Per utilizzare questa funzione, definire una sezione di configurazione con un prefisso \"tmc2130\" seguito dal nome della sezione di configurazione dello stepper corrispondente (ad esempio, \"[tmc2130 stepper_x]\"). [tmc2130 stepper_x] cs_pin: # Il pin collegato al pin di selezione del chip TMC2130. # Questo pin verr\u00e0 impostato su basso all'inizio dei messaggi SPI e # portato su alto al termine del messaggio. Questo parametro deve # essere fornito. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Vedere la sezione \"impostazioni comuni SPIi\" per una descrizione # dei parametri di cui sopra. #chain_position: #chain_length: # Questi parametri configurano una daisy chain SPI. I due parametri # definiscono la posizione dello stepper nella catena e la lunghezza totale # della catena. La posizione 1 corrisponde allo stepper che si collega al # segnale MOSI. L'impostazione predefinita \u00e8 di non utilizzare un # collegamento a margherita SPI. #interpolate: True # Se True, abilita l'interpolazione del passo (il driver eseguir\u00e0 un passo # intero attraverso 256 micropassi). Questa interpolazione introduce una # piccola deviazione posizionale sistemica - vedi TMC_Drivers.md per i # dettagli. L'impostazione predefinita \u00e8 True. run_current: # La quantit\u00e0 di corrente (in ampere RMS) con cui configurare il driver e utilizzare durante il movimento passo-passo. Questo parametro deve essere fornito. #hold_current: # La quantit\u00e0 di corrente (in ampere RMS) con cui configurare il driver da # utilizzare quando lo stepper non \u00e8 in movimento. L'impostazione di # hold_current non \u00e8 consigliata (consultare TMC_Drivers.md per i # dettagli). L'impostazione predefinita \u00e8 di non ridurre la corrente. #sense_resistor: 0.110 # La resistenza (in ohm) del resistore di rilevamento del motore. # Il valore predefinito \u00e8 0,110 ohm. #stealthchop_threshold: 0 # La velocit\u00e0 (in mm/s) su cui impostare la soglia \"stealthChop\". Se # impostata, la modalit\u00e0 \"stealthChop\" sar\u00e0 abilitata se la velocit\u00e0 del # motore passo-passo \u00e8 inferiore a questo valore. Il valore predefinito # \u00e8 0, che disabilita la modalit\u00e0 \"stealthChop\". #driver_IHOLDDELAY: 8 #driver_TPOWERDOWN: 0 #driver_TBL: 1 #driver_TOFF: 4 #driver_HEND: 7 #driver_HSTRT: 0 #driver_PWM_AUTOSCALE: True #driver_PWM_FREQ: 1 #driver_PWM_GRAD: 4 #driver_PWM_AMPL: 128 #driver_SGT: 0 # Impostare il registro dato durante la configurazione del chip # TMC2130. Pu\u00f2 essere utilizzato per impostare parametri motore # personalizzati. I valori predefiniti per ciascun parametro sono # accanto al nome del parametro nell'elenco precedente. #diag0_pin: #diag1_pin: # Il pin del microcontrollore collegato a una delle linee DIAG del # chip TMC2130. \u00c8 necessario specificare un solo pin diag. Il pin \u00e8 # \"attivo basso\" ed \u00e8 quindi normalmente preceduto da \"^!\". # L'impostazione di questo crea un pin virtuale # \"tmc2130_stepper_x:virtual_endstop\" che pu\u00f2 essere utilizzato # come endstop_pin dello stepper. In questo modo si abilita # l'\"homing sensorless\". (Assicurarsi di impostare anche driver_SGT # su un valore di sensibilit\u00e0 appropriato.) L'impostazione predefinita # \u00e8 di non abilitare l'homing sensorless. [tmc2208] \u00b6 Configurare un driver per motore passo-passo TMC2208 (o TMC2224) tramite UART a filo singolo. Per utilizzare questa funzione, definire una sezione di configurazione con un prefisso \"tmc2208\" seguito dal nome della sezione di configurazione dello stepper corrispondente (ad esempio, \"[tmc2208 stepper_x]\"). [tmc2208 stepper_x] uart_pin: # Il pin collegato al PDN_UART del TMC2208 . # Questo parametro deve essere fornito. #tx_pin: # Se si utilizzano linee di ricezione e trasmissione separate per # comunicare con il driver, impostare uart_pin sul pin di ricezione e # tx_pin sul pin di trasmissione. L'impostazione predefinita \u00e8 usare uart_pin sia per la lettura che per la scrittura. #select_pins: # Un elenco separato da virgole di pin da impostare prima di accedere # all'UART tmc2208. Questo pu\u00f2 essere utile per configurare un mux # analogico per la comunicazione UART. L'impostazione predefinita \u00e8 # di non configurare alcun pin. #interpolate: True # Se True, abilita l'interpolazione del passo (il driver eseguir\u00e0 un passo # intero con 256 micropassi). Questa interpolazione # introduce una piccola deviazione posizionale sistemica - vedere # TMC_Drivers.md per i dettagli. L'impostazione predefinita \u00e8 True. run_current: # La quantit\u00e0 di corrente (in ampere RMS) per configurare il driver da # utilizzare durante il movimento passo-passo. # Questo parametro deve essere fornito. #hold_current: # La quantit\u00e0 di corrente (in ampere RMS) per configurare il driver da # utilizzare quando lo stepper non \u00e8 in movimento. L'impostazione di # hold_current non \u00e8 consigliata (consultare TMC_Drivers.md per i # dettagli). L'impostazione predefinita \u00e8 di non ridurre la corrente. #sense_resistor: 0.110 # La resistenza (in ohm) del resistore di rilevamento del motore. # Il valore predefinito \u00e8 0,110 ohm. #stealthchop_threshold: 0 # La velocit\u00e0 (in mm/s) su cui impostare la soglia \"stealthChop\". Se # impostata, la modalit\u00e0 \"stealthChop\" sar\u00e0 abilitata se la velocit\u00e0 del # motore passo-passo \u00e8 inferiore a questo valore. Il valore predefinito # \u00e8 0, che disabilita la modalit\u00e0 \"stealthChop\". #driver_IHOLDDELAY: 8 #driver_TPOWERDOWN: 20 #driver_TBL: 2 #driver_TOFF: 3 #driver_HEND: 0 #driver_HSTRT: 5 #driver_PWM_AUTOGRAD: True #driver_PWM_AUTOSCALE: True #driver_PWM_LIM: 12 #driver_PWM_REG: 8 #driver_PWM_FREQ: 1 #driver_PWM_GRAD: 14 #driver_PWM_OFS: 36 # Impostare il registro dato durante la configurazione del chip TMC2208. # Pu\u00f2 essere utilizzato per impostare parametri motore personalizzati. # I valori predefiniti per ciascun parametro sono accanto al nome del # parametro nell'elenco precedente. [tmc2209] \u00b6 Configurare un driver per motore passo-passo TMC2209 tramite UART a filo singolo. Per utilizzare questa funzione, definire una sezione di configurazione con un prefisso \"tmc2209\" seguito dal nome della sezione di configurazione dello stepper corrispondente (ad esempio, \"[tmc2209 stepper_x]\"). [tmc2209 stepper_x] uart_pin: #tx_pin: #select_pins: #interpolate: True run_current: #hold_current: #sense_resistor: 0.110 #stealthchop_threshold: 0 # Vedere la sezione \"tmc2208\" per la definizione di questi parametri. #uart_address: # L'indirizzo del chip TMC2209 per i messaggi UART (un numero intero # compreso tra 0 e 3). Viene in genere utilizzato quando pi\u00f9 chip TMC2209 # sono collegati allo stesso pin UART. Il valore predefinito \u00e8 zero #driver_IHOLDDELAY: 8 #driver_TPOWERDOWN: 20 #driver_TBL: 2 #driver_TOFF: 3 #driver_HEND: 0 #driver_HSTRT: 5 #driver_PWM_AUTOGRAD: True #driver_PWM_AUTOSCALE: True #driver_PWM_LIM: 12 #driver_PWM_REG: 8 #driver_PWM_FREQ: 1 #driver_PWM_GRAD: 14 #driver_PWM_OFS: 36 #driver_SGTHRS: 0 # Impostare il registro dato durante la configurazione del chip TMC2209. # Pu\u00f2 essere utilizzato per impostare parametri motore personalizzati. I # valori predefiniti per ciascun parametro sono accanto al nome del # parametro nell'elenco precedente. #diag_pin: # Il pin del microcontrollore collegato alla linea DIAG del chip TMC2209. # Il pin \u00e8 normalmente preceduto da \"^\" per abilitare un pullup. # L'impostazione di questo crea un pin virtuale \"tmc2209_stepper_x:virtual_endstop\" # che pu\u00f2 essere utilizzato come endstop_pin dello stepper. In questo modo # si abilita l'\"homing sensorless\". (Assicurarsi di impostare anche driver_SGTHRS # su un valore di sensibilit\u00e0 appropriato.) L'impostazione predefinita \u00e8 di non # abilitare l'homing sensorless. [tmc2660] \u00b6 Configurare un driver per motore passo-passo TMC2660 tramite bus SPI. Per utilizzare questa funzione, definire una sezione di configurazione con un prefisso tmc2660 seguito dal nome della sezione di configurazione dello stepper corrispondente (ad esempio, \"[tmc2660 stepper_x]\"). [tmc2660 stepper_x] cs_pin: # Il pin corrispondente al pin di selezione del chip TMC2660. Questo pin # verr\u00e0 impostato su basso all'inizio dei messaggi SPI e impostato su # alto al termine del trasferimento del messaggio. Questo parametro # deve essere fornito. #spi_speed: 4000000 # Frequenza bus SPI utilizzata per comunicare con il driver # passo-passo TMC2660. Il valore predefinito \u00e8 4000000. #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Vedere la sezione \"impostazioni comuni SPI\" per una descrizione # dei parametri di cui sopra. #interpolate: True # Se true, abilita l'interpolazione del passo (il driver eseguir\u00e0 un passo # interno a una velocit\u00e0 di 256 micropassi). Funziona solo se microsteps # \u00e8 impostato su 16. L'interpolazione introduce una piccola deviazione # posizionale sistemica - vedere TMC_Drivers.md per i dettagli. # L'impostazione predefinita \u00e8 Vero. run_current: # La quantit\u00e0 di corrente (in ampere RMS) utilizzata dal driver durante # il movimento passo-passo. Questo parametro deve essere fornito. #sense_resistor: # La resistenza (in ohm) del resistore di rilevamento del motore. # Questo parametro deve essere fornito. #idle_current_percent: 100 # La percentuale di run_current a cui il driver stepper sar\u00e0 ridotto allo # scadere del timeout di inattivit\u00e0 (\u00e8 necessario impostare il timeout # utilizzando una sezione di configurazione [idle_timeout]). La corrente # verr\u00e0 nuovamente aumentata una volta che lo stepper dovr\u00e0 muoversi # di nuovo. Assicurati di impostarlo su un valore sufficientemente alto in # modo che gli stepper non perdano la loro posizione. C'\u00e8 anche un piccolo # ritardo fino a quando la corrente non viene nuovamente aumentata, # quindi tienine conto quando comandi mosse veloci mentre lo stepper \u00e8 # al minimo. Il valore predefinito \u00e8 100 (nessuna riduzione). #driver_TBL: 2 #driver_RNDTF: 0 #driver_HDEC: 0 #driver_CHM: 0 #driver_HEND: 3 #driver_HSTRT: 3 #driver_TOFF: 4 #driver_SEIMIN: 0 #driver_SEDN: 0 #driver_SEMAX: 0 #driver_SEUP: 0 #driver_SEMIN: 0 #driver_SFILT: 0 #driver_SGT: 0 #driver_SLPH: 0 #driver_SLPL: 0 #driver_DISS2G: 0 #driver_TS2G: 3 # Imposta il parametro indicato durante la configurazione del chip TMC2660. # Questo pu\u00f2 essere utilizzato per impostare parametri del driver personalizzati. # Le impostazioni predefinite per ogni parametro sono accanto al nome del # parametro nell'elenco sopra. Vedere la scheda tecnica del TMC2660 su cosa # fa ogni parametro e quali sono le restrizioni sulle combinazioni di parametri. # Prestare particolare attenzione al registro CHOPCONF, dove l'impostazione # di CHM su zero o uno comporter\u00e0 modifiche al layout (il primo bit di HDEC) # viene interpretato come MSB di HSTRT in questo caso). [tmc5160] \u00b6 Configurare un driver per motore passo-passo TMC5160 tramite bus SPI. Per utilizzare questa funzione, definire una sezione di configurazione con un prefisso \"tmc5160\" seguito dal nome della sezione di configurazione dello stepper corrispondente (ad esempio, \"[tmc5160 stepper_x]\"). [tmc5160 stepper_x] cs_pin: # Il pin corrispondente al pin di selezione del chip TMC5160. Questo pin verr\u00e0 impostato su basso all'inizio dei messaggi SPI e portato su alto al termine del messaggio. Questo parametro deve essere fornito. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Vedere la sezione \"impostazioni SPI comuni\" per una # descrizione dei parametri di cui sopra. #chain_position: #chain_length: # Questi parametri configurano una daisy chain SPI. I due # parametri definiscono la posizione dello stepper nella catena # e la lunghezza totale della catena. La posizione 1 corrisponde # allo stepper che si collega al segnale MOSI. L'impostazione # predefinita \u00e8 di non utilizzare un collegamento a margherita SPI. #interpolate: True # Se true, abilita l'interpolazione del passo (il driver eseguir\u00e0 un # passo interno con 256 micropassi). # L'impostazione predefinita \u00e8 True. run_current: # La quantit\u00e0 di corrente (in ampere RMS) per configurare il driver # da utilizzare durante il movimento. # Questo parametro deve essere fornito. #hold_current: # La quantit\u00e0 di corrente (in ampere RMS) per configurare il driver # da utilizzare quando lo stepper non \u00e8 in movimento. L'impostazione # di hold_current non \u00e8 consigliata (consultare TMC_Drivers.md per i # dettagli). L'impostazione predefinita \u00e8 di non ridurre la corrente. #sense_resistor: 0.075 # La resistenza (in ohm) del resistore di rilevamento del motore. # Il valore predefinito \u00e8 0,075 ohm. #stealthchop_threshold: 0 # La velocit\u00e0 (in mm/s) su cui impostare la soglia \"stealthChop\". Se # impostata, la modalit\u00e0 \"stealthChop\" sar\u00e0 abilitata se la velocit\u00e0 del # motore passo-passo \u00e8 inferiore a questo valore. Il valore predefinito # \u00e8 0, che disabilita la modalit\u00e0 \"stealthChop\". #driver_IHOLDDELAY: 6 #driver_TPOWERDOWN: 10 #driver_TBL: 2 #driver_TOFF: 3 #driver_HEND: 2 #driver_HSTRT: 5 #driver_FD3: 0 #driver_TPFD: 4 #driver_CHM: 0 #driver_VHIGHFS: 0 #driver_VHIGHCHM: 0 #driver_DISS2G: 0 #driver_DISS2VS: 0 #driver_PWM_AUTOSCALE: True #driver_PWM_AUTOGRAD: True #driver_PWM_FREQ: 0 #driver_FREEWHEEL: 0 #driver_PWM_GRAD: 0 #driver_PWM_OFS: 30 #driver_PWM_REG: 4 #driver_PWM_LIM: 12 #driver_SGT: 0 #driver_SEMIN: 0 #driver_SEUP: 0 #driver_SEMAX: 0 #driver_SEDN: 0 #driver_SEIMIN: 0 #driver_SFILT: 0 # Impostare il registro dato durante la configurazione del chip # TMC5160. Pu\u00f2 essere utilizzato per impostare parametri motore # personalizzati. I valori predefiniti per ciascun parametro sono # accanto al nome del parametro nell'elenco precedente. #diag0_pin: #diag1_pin: # Il pin del microcontrollore collegato a una delle linee DIAG del chip # TMC5160. \u00c8 necessario specificare un solo pin diag. Il pin \u00e8 \"attivo # basso\" ed \u00e8 quindi normalmente preceduto da \"^!\". L'impostazione # di questo crea un pin virtuale \"tmc5160_stepper_x:virtual_endstop\" # che pu\u00f2 essere utilizzato come endstop_pin dello stepper. In questo # modo si abilita l'\"homing sensorless\". (Assicurarsi di impostare anche # driver_SGT su un valore di sensibilit\u00e0 appropriato.) L'impostazione # predefinita \u00e8 di non abilitare l'homing sensorless. Configurazione della corrente del motore passo-passo a run-time \u00b6 [ad5206] \u00b6 Digipot AD5206 configurati staticamente collegati tramite bus SPI (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"ad5206\"). [ad5206 my_digipot] enable_pin: # The pin corresponding to the AD5206 chip select line. This pin # will be set to low at the start of SPI messages and raised to high # after the message completes. This parameter must be provided. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # See the \"common SPI settings\" section for a description of the # above parameters. #channel_1: #channel_2: #channel_3: #channel_4: #channel_5: #channel_6: # The value to statically set the given AD5206 channel to. This is # typically set to a number between 0.0 and 1.0 with 1.0 being the # highest resistance and 0.0 being the lowest resistance. However, # the range may be changed with the 'scale' parameter (see below). # If a channel is not specified then it is left unconfigured. #scale: # This parameter can be used to alter how the 'channel_x' parameters # are interpreted. If provided, then the 'channel_x' parameters # should be between 0.0 and 'scale'. This may be useful when the # AD5206 is used to set stepper voltage references. The 'scale' can # be set to the equivalent stepper amperage if the AD5206 were at # its highest resistance, and then the 'channel_x' parameters can be # specified using the desired amperage value for the stepper. The # default is to not scale the 'channel_x' parameters. [mcp4451] \u00b6 Digipot MCP4451 configurato staticamente collegato tramite bus I2C (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"mcp4451\"). [mcp4451 my_digipot] i2c_address: # L'indirizzo i2c utilizzato dal chip sul bus i2c. Questo parametro deve # essere fornito. #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni I2C comuni\" per una descrizione # dei parametri di cui sopra. #wiper_0: #wiper_1: #wiper_2: #wiper_3: # Il valore su cui impostare staticamente il \"wiper\" MCP4451 # specificato. Questo \u00e8 in genere impostato su un numero compreso # tra 0,0 e 1,0 con 1,0 come resistenza pi\u00f9 alta e 0,0 come resistenza # pi\u00f9 bassa. Tuttavia, l'intervallo pu\u00f2 essere modificato con il parametro # 'scale' (vedi sotto). Se non viene specificato un wiper, non viene # configurato. #scale: # Questo parametro pu\u00f2 essere utilizzato per modificare il modo in # cui vengono interpretati i parametri 'wiper_x'. Se forniti, i parametri # 'wiper_x' dovrebbero essere compresi tra 0.0 e 'scale'. Questo pu\u00f2 # essere utile quando l'MCP4451 viene utilizzato per impostare i # riferimenti di tensione stepper. La \"scala\" pu\u00f2 essere impostata # sull'amperaggio stepper equivalente se l'MCP4451 fosse alla sua # massima resistenza, quindi i parametri \"wiper_x\" possono essere # specificati utilizzando il valore di amperaggio desiderato per lo # stepper. L'impostazione predefinita \u00e8 di non ridimensionare i # parametri 'wiper_x'. [mcp4728] \u00b6 Convertitore digitale-analogico MCP4728 in configurazione statica collegato tramite bus I2C (\u00e8 possibile definire un numero qualsiasi di sezioni con prefisso \"mcp4728\"). [mcp4728 my_dac] #i2c_address: 96 # L'indirizzo i2c utilizzato dal chip sul bus i2c. Il valore predefinito # \u00e8 96. #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni I2C comuni\" per una descrizione # dei parametri di cui sopra. #channel_a: #channel_b: #channel_c: #channel_d: # Il valore su cui impostare staticamente il canale MCP4728 # specificato. Questo \u00e8 in genere impostato su un numero compreso # tra 0,0 e 1,0 con 1,0 come tensione pi\u00f9 alta (2,048 V) e 0,0 come # tensione pi\u00f9 bassa. Tuttavia, l'intervallo pu\u00f2 essere modificato con # il parametro 'scale' (vedi sotto). Se un canale non \u00e8 specificato, # non viene configurato. #scale: # Questo parametro pu\u00f2 essere utilizzato per modificare il modo # in cui vengono interpretati i parametri 'channel_x'. Se forniti, i # parametri 'channel_x' dovrebbero essere compresi tra 0.0 e 'scale'. # Questo pu\u00f2 essere utile quando l'MCP4728 viene utilizzato per # impostare i riferimenti di tensione stepper. La \"scala\" pu\u00f2 essere # impostata sull'amperaggio stepper equivalente se l'MCP4728 # fosse alla sua tensione pi\u00f9 alta (2,048 V), e quindi i parametri # \"channel_x\" possono essere specificati utilizzando il valore di # amperaggio desiderato per lo stepper. L'impostazione # predefinita \u00e8 di non ridimensionare i parametri 'channel_x'. [mcp4018] \u00b6 Digipot MCP4018 configurato staticamente collegato tramite due pin gpio \"bit banging\" (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"mcp4018\"). [mcp4018 my_digipot] scl_pin: # Il pin \"clock\" SCL. Questo parametro deve essere fornito. sda_pin: # Il pin \"dati\" SDA. Questo parametro deve essere fornito. wiper: # Il valore su cui impostare staticamente il \"Wiper\" MCP4018 # specificato. Questo \u00e8 in genere impostato su un numero compreso # tra 0,0 e 1,0 con 1,0 come resistenza pi\u00f9 alta e 0,0 come resistenza # pi\u00f9 bassa. Tuttavia, l'intervallo pu\u00f2 essere modificato con il # parametro 'scale' (vedi sotto). Questo parametro deve essere fornito. #scale: # Questo parametro pu\u00f2 essere utilizzato per modificare il modo in # cui viene interpretato il parametro 'wiper'. Se fornito, il parametro # 'wiper' dovrebbe essere compreso tra 0.0 e 'scale'. Questo pu\u00f2 essere # utile quando l'MCP4018 viene utilizzato per impostare i riferimenti di # tensione stepper. La \"scala\" pu\u00f2 essere impostata sull'amperaggio # stepper equivalente se l'MCP4018 \u00e8 alla sua massima resistenza, # quindi \u00e8 possibile specificare il parametro \"wiper\" utilizzando il # valore di amperaggio desiderato per lo stepper. L'impostazione # predefinita \u00e8 di non ridimensionare il parametro 'wiper'. Supporto display \u00b6 [display] \u00b6 Supporto per un display collegato al microcontrollore. [display] lcd_type: # The type of LCD chip in use. This may be \"hd44780\", \"hd44780_spi\", # \"st7920\", \"emulated_st7920\", \"uc1701\", \"ssd1306\", or \"sh1106\". # See the display sections below for information on each type and # additional parameters they provide. This parameter must be # provided. #display_group: # The name of the display_data group to show on the display. This # controls the content of the screen (see the \"display_data\" section # for more information). The default is _default_20x4 for hd44780 # displays and _default_16x4 for other displays. #menu_timeout: # Timeout for menu. Being inactive this amount of seconds will # trigger menu exit or return to root menu when having autorun # enabled. The default is 0 seconds (disabled) #menu_root: # Name of the main menu section to show when clicking the encoder # on the home screen. The defaults is __main, and this shows the # the default menus as defined in klippy/extras/display/menu.cfg #menu_reverse_navigation: # When enabled it will reverse up and down directions for list # navigation. The default is False. This parameter is optional. #encoder_pins: # The pins connected to encoder. 2 pins must be provided when using # encoder. This parameter must be provided when using menu. #encoder_steps_per_detent: # How many steps the encoder emits per detent (\"click\"). If the # encoder takes two detents to move between entries or moves two # entries from one detent, try changing this. Allowed values are 2 # (half-stepping) or 4 (full-stepping). The default is 4. #click_pin: # The pin connected to 'enter' button or encoder 'click'. This # parameter must be provided when using menu. The presence of an # 'analog_range_click_pin' config parameter turns this parameter # from digital to analog. #back_pin: # The pin connected to 'back' button. This parameter is optional, # menu can be used without it. The presence of an # 'analog_range_back_pin' config parameter turns this parameter from # digital to analog. #up_pin: # The pin connected to 'up' button. This parameter must be provided # when using menu without encoder. The presence of an # 'analog_range_up_pin' config parameter turns this parameter from # digital to analog. #down_pin: # The pin connected to 'down' button. This parameter must be # provided when using menu without encoder. The presence of an # 'analog_range_down_pin' config parameter turns this parameter from # digital to analog. #kill_pin: # The pin connected to 'kill' button. This button will call # emergency stop. The presence of an 'analog_range_kill_pin' config # parameter turns this parameter from digital to analog. #analog_pullup_resistor: 4700 # The resistance (in ohms) of the pullup attached to the analog # button. The default is 4700 ohms. #analog_range_click_pin: # The resistance range for a 'enter' button. Range minimum and # maximum comma-separated values must be provided when using analog # button. #analog_range_back_pin: # The resistance range for a 'back' button. Range minimum and # maximum comma-separated values must be provided when using analog # button. #analog_range_up_pin: # The resistance range for a 'up' button. Range minimum and maximum # comma-separated values must be provided when using analog button. #analog_range_down_pin: # The resistance range for a 'down' button. Range minimum and # maximum comma-separated values must be provided when using analog # button. #analog_range_kill_pin: # The resistance range for a 'kill' button. Range minimum and # maximum comma-separated values must be provided when using analog # button. display hd44780 \u00b6 Informazioni sulla configurazione dei display hd44780 (utilizzati nei display di tipo \"RepRapDiscount 2004 Smart Controller\"). [display] lcd_type: hd44780 # Set to \"hd44780\" for hd44780 displays. rs_pin: e_pin: d4_pin: d5_pin: d6_pin: d7_pin: # The pins connected to an hd44780 type lcd. These parameters must # be provided. #hd44780_protocol_init: True # Perform 8-bit/4-bit protocol initialization on an hd44780 display. # This is necessary on real hd44780 devices. However, one may need # to disable this on some \"clone\" devices. The default is True. #line_length: # Set the number of characters per line for an hd44780 type lcd. # Possible values are 20 (default) and 16. The number of lines is # fixed to 4. ... display hd44780_spi \u00b6 Informazioni sulla configurazione di un display hd44780_spi - un display 20x04 controllato tramite uno \"shift register\" hardware (che viene utilizzato nelle stampanti basate su mightyboard). [display] lcd_type: hd44780_spi # Set to \"hd44780_spi\" for hd44780_spi displays. latch_pin: spi_software_sclk_pin: spi_software_mosi_pin: spi_software_miso_pin: # The pins connected to the shift register controlling the display. # The spi_software_miso_pin needs to be set to an unused pin of the # printer mainboard as the shift register does not have a MISO pin, # but the software spi implementation requires this pin to be # configured. #hd44780_protocol_init: True # Perform 8-bit/4-bit protocol initialization on an hd44780 display. # This is necessary on real hd44780 devices. However, one may need # to disable this on some \"clone\" devices. The default is True. #line_length: # Set the number of characters per line for an hd44780 type lcd. # Possible values are 20 (default) and 16. The number of lines is # fixed to 4. ... display st7920 \u00b6 Informazioni sulla configurazione dei display st7920 (utilizzati nei display di tipo \"RepRapDiscount 12864 Full Graphic Smart Controller\"). [display] lcd_type: st7920 # Set to \"st7920\" for st7920 displays. cs_pin: sclk_pin: sid_pin: # The pins connected to an st7920 type lcd. These parameters must be # provided. ... display emulazione emulated_st7920 \u00b6 Informazioni sulla configurazione di un display st7920 emulato, presenti in alcuni \"dispositivi touchscreen da 2,4 pollici\" e simili. [display] lcd_type: emulated_st7920 # Set to \"emulated_st7920\" for emulated_st7920 displays. en_pin: spi_software_sclk_pin: spi_software_mosi_pin: spi_software_miso_pin: # The pins connected to an emulated_st7920 type lcd. The en_pin # corresponds to the cs_pin of the st7920 type lcd, # spi_software_sclk_pin corresponds to sclk_pin and # spi_software_mosi_pin corresponds to sid_pin. The # spi_software_miso_pin needs to be set to an unused pin of the # printer mainboard as the st7920 as no MISO pin but the software # spi implementation requires this pin to be configured. ... display uc1701 \u00b6 Informazioni sulla configurazione dei display uc1701 (utilizzati nei display di tipo \"MKS Mini 12864\"). [display] lcd_type: uc1701 # Set to \"uc1701\" for uc1701 displays. cs_pin: a0_pin: # The pins connected to a uc1701 type lcd. These parameters must be # provided. #rst_pin: # The pin connected to the \"rst\" pin on the lcd. If it is not # specified then the hardware must have a pull-up on the # corresponding lcd line. #contrast: # The contrast to set. The value may range from 0 to 63 and the # default is 40. ... display ssd1306 e sh1106 \u00b6 Informazioni sulla configurazione dei display ssd1306 e sh1106. [display] lcd_type: # Set to either \"ssd1306\" or \"sh1106\" for the given display type. #i2c_mcu: #i2c_bus: #i2c_speed: # Optional parameters available for displays connected via an i2c # bus. See the \"common I2C settings\" section for a description of # the above parameters. #cs_pin: #dc_pin: #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # The pins connected to the lcd when in \"4-wire\" spi mode. See the # \"common SPI settings\" section for a description of the parameters # that start with \"spi_\". The default is to use i2c mode for the # display. #reset_pin: # A reset pin may be specified on the display. If it is not # specified then the hardware must have a pull-up on the # corresponding lcd line. #contrast: # The contrast to set. The value may range from 0 to 256 and the # default is 239. #vcomh: 0 # Set the Vcomh value on the display. This value is associated with # a \"smearing\" effect on some OLED displays. The value may range # from 0 to 63. Default is 0. #invert: False # TRUE inverts the pixels on certain OLED displays. The default is # False. #x_offset: 0 # Set the horizontal offset value on SH1106 displays. The default is # 0. ... [display_data] \u00b6 Supporto per la visualizzazione di dati personalizzati su uno schermo LCD. \u00c8 possibile creare un numero qualsiasi di gruppi di visualizzazione e un numero qualsiasi di elementi di dati in quei gruppi. Il display mostrer\u00e0 tutti gli elementi di dati per un determinato gruppo se l'opzione display_group nella sezione [display] \u00e8 impostata sul nome del gruppo specificato. Viene creato automaticamente un default set of display groups . \u00c8 possibile sostituire o estendere questi elementi display_data sovrascrivendo i valori predefiniti nel file di configurazione principale printer.cfg . [display_data my_group_name my_data_name] position: # Comma separated row and column of the display position that should # be used to display the information. This parameter must be # provided. text: # The text to show at the given position. This field is evaluated # using command templates (see docs/Command_Templates.md). This # parameter must be provided. [display_template] \u00b6 Visualizza il testo dei dati \"macro\" (\u00e8 possibile definire un numero qualsiasi di sezioni con un prefisso display_template). Per informazioni sul template, vedere il documento template di comandi . Questa funzione consente di ridurre le definizioni ripetitive nelle sezioni display_data. Si pu\u00f2 usare la funzione incorporata render() nelle sezioni display_data per valutare un template. Per esempio, se si dovesse definire [display_template my_template] allora si potrebbe usare { render('my_template') } in una sezione display_data. Questa funzione pu\u00f2 essere utilizzata anche per aggiornamenti LED continui utilizzando il comando SET_LED_TEMPLATE . [display_template my_template_name] #param_<name>: # One may specify any number of options with a \"param_\" prefix. The # given name will be assigned the given value (parsed as a Python # literal) and will be available during macro expansion. If the # parameter is passed in the call to render() then that value will # be used during macro expansion. For example, a config with # \"param_speed = 75\" might have a caller with # \"render('my_template_name', param_speed=80)\". Parameter names may # not use upper case characters. text: # The text to return when the this template is rendered. This field # is evaluated using command templates (see # docs/Command_Templates.md). This parameter must be provided. [display_glyph] \u00b6 Visualizza un glifo personalizzato sui display che lo supportano. Al nome dato verranno assegnati i dati di visualizzazione dati che possono quindi essere referenziati nei modelli di visualizzazione con il loro nome circondato da due simboli \"tilde\" per esempio ~my_display_glyph~ Vedere sample-glyphs.cfg per alcuni esempi. [display_glyph my_display_glyph] #data: # The display data, stored as 16 lines consisting of 16 bits (1 per # pixel) where '.' is a blank pixel and '*' is an on pixel (e.g., # \"****************\" to display a solid horizontal line). # Alternatively, one can use '0' for a blank pixel and '1' for an on # pixel. Put each display line into a separate config line. The # glyph must consist of exactly 16 lines with 16 bits each. This # parameter is optional. #hd44780_data: # Glyph to use on 20x4 hd44780 displays. The glyph must consist of # exactly 8 lines with 5 bits each. This parameter is optional. #hd44780_slot: # The hd44780 hardware index (0..7) to store the glyph at. If # multiple distinct images use the same slot then make sure to only # use one of those images in any given screen. This parameter is # required if hd44780_data is specified. [display my_extra_display] \u00b6 Se in printer.cfg \u00e8 stata definita una sezione primaria [display] come mostrato sopra, \u00e8 possibile definire pi\u00f9 display ausiliari. Si noti che i display ausiliari attualmente non supportano la funzionalit\u00e0 del menu, quindi non supportano le opzioni del \"menu\" o la configurazione dei pulsanti. [display my_extra_display] # Vedere la sezione \"display\" per i parametri disponibili. [menu] \u00b6 Menu display lcd personalizzabili. Viene creato automaticamente un default set of menus . \u00c8 possibile sostituire o estendere il menu sovrascrivendo le impostazioni predefinite nel file di configurazione principale printer.cfg . Consulta il command template document per informazioni sugli attributi di menu disponibili durante il rendering del modello. # Common parameters available for all menu config sections. #[menu __some_list __some_name] #type: disabled # Permanently disabled menu element, only required attribute is 'type'. # Allows you to easily disable/hide existing menu items. #[menu some_name] #type: # One of command, input, list, text: # command - basic menu element with various script triggers # input - same like 'command' but has value changing capabilities. # Press will start/stop edit mode. # list - it allows for menu items to be grouped together in a # scrollable list. Add to the list by creating menu # configurations using \"some_list\" as a prefix - for # example: [menu some_list some_item_in_the_list] # vsdlist - same as 'list' but will append files from virtual sdcard # (will be removed in the future) #name: # Name of menu item - evaluated as a template. #enable: # Template that evaluates to True or False. #index: # Position where an item needs to be inserted in list. By default # the item is added at the end. #[menu some_list] #type: list #name: #enable: # See above for a description of these parameters. #[menu some_list some_command] #type: command #name: #enable: # See above for a description of these parameters. #gcode: # Script to run on button click or long click. Evaluated as a # template. #[menu some_list some_input] #type: input #name: #enable: # See above for a description of these parameters. #input: # Initial value to use when editing - evaluated as a template. # Result must be float. #input_min: # Minimum value of range - evaluated as a template. Default -99999. #input_max: # Maximum value of range - evaluated as a template. Default 99999. #input_step: # Editing step - Must be a positive integer or float value. It has # internal fast rate step. When \"(input_max - input_min) / # input_step > 100\" then fast rate step is 10 * input_step else fast # rate step is same input_step. #realtime: # This attribute accepts static boolean value. When enabled then # gcode script is run after each value change. The default is False. #gcode: # Script to run on button click, long click or value change. # Evaluated as a template. The button click will trigger the edit # mode start or end. Sensori di filamento \u00b6 [filament_switch_sensor] \u00b6 Sensore del filamento a interruttore. Supporto per l'inserimento del filamento e il rilevamento dell'esaurimento tramite un sensore interruttore, come un interruttore di fine corsa. Per ulteriori informazioni, vedere command reference . [filament_switch_sensor my_sensor] #pause_on_runout: True # Se impostato su True, verr\u00e0 eseguita una PAUSA immediatamente # dopo il rilevamento di un'eccentricit\u00e0. Si noti che se pause_on_runout # \u00e8 False e runout_gcode viene omesso, il rilevamento dell'eccentricit\u00e0 # \u00e8 disabilitato. L'impostazione predefinita \u00e8 Vero. #runout_gcode: # Un elenco di comandi G-Code da eseguire dopo il rilevamento di # un'esaurimento del filamento. Vedi docs/Command_Templates.md # per il formato G-Code. Se pause_on_runout \u00e8 impostato su True, # questo codice G verr\u00e0 eseguito al termine della PAUSA. # L'impostazione predefinita \u00e8 di non eseguire alcun comando G-Code. #insert_gcode: # Un elenco di comandi G-Code da eseguire dopo il rilevamento # dell'inserimento di filamento. Vedi docs/Command_Templates.md # per il formato G-Code. L'impostazione predefinita non prevede # l'esecuzione di alcun comando G-Code, che disabilita il rilevamento # dell'inserimento. #event_delay: 3.0 # Il tempo minimo in secondi per ritardare tra gli eventi. Gli eventi # attivati durante questo periodo di tempo verranno ignorati # silenziosamente. L'impostazione predefinita \u00e8 3 secondi. #pause_delay: 0.5 # Il tempo di ritardo, in secondi, tra l'invio del comando pause e # l'esecuzione di runout_gcode. Potrebbe essere utile aumentare # questo ritardo se OctoPrint mostra uno strano comportamento # di pausa. Il valore predefinito \u00e8 0,5 secondi. #switch_pin: # Il pin su cui \u00e8 collegato l'interruttore. # Questo parametro deve essere fornito. [filament_motion_sensor] \u00b6 Sensore di movimento del filamento. Supporto per l'inserimento del filamento e il rilevamento dell'esaurimento mediante un codificatore che commuta il pin di uscita durante il movimento del filamento attraverso il sensore. Per ulteriori informazioni, vedere command reference . [filament_motion_sensor my_sensor] detection_length: 7.0 # La lunghezza minima di filamento tirato attraverso il sensore # per attivare un cambio di stato su switch_pin # Il default \u00e8 7 mm. extruder: # Nome della sezione extruder section con cui questo sensore \u00e8 associato. # Questo parametro deve essere fornito. switch_pin: #pause_on_runout: #runout_gcode: #insert_gcode: #event_delay: #pause_delay: # Vedere la sezione \"filament_switch_sensor\" per la descrizione dei # parametri riportati sopra. [tsl1401cl_filament_width_sensor] \u00b6 Sensore di larghezza del filamento basato su TSLl401CL. Consulta la guida per ulteriori informazioni. sl1401cl_filament_width_sensor] #pin: #diametro nominale del filamento predefinito: 1,75 (mm) # Differenza massima consentita del diametro del filamento in mm. #max_difference: 0.2 # La distanza dal sensore alla camera di fusione in mm. #measurement_delay: 100 [hall_filament_width_sensor] \u00b6 Sensore di larghezza del filamento ad effetto Hall (vedere Sensore di larghezza del filamento Hall ). [hall_filament_width_sensor] adc1: adc2: # Pin di ingresso analogico collegati al sensore. # Questi parametri devono essere forniti. #cal_dia1: 1.50 #cal_dia2: 2.00 # I valori di calibrazione (in mm) per i sensori. Il valore predefinito # \u00e8 1.50 per cal_dia1 e 2.00 per cal_dia2. #raw_dia1: 9500 #raw_dia2: 10500 # I valori di calibrazione grezzi per i sensori. Il valore predefinito \u00e8 # 9500 per raw_dia1 e 10500 per raw_dia2. #default_nominal_filament_diameter: 1.75 # Il diametro nominale del filamento. # Questo parametro deve essere fornito. #max_difference: 0.200 # Differenza massima consentita del diametro del filamento in # millimetri (mm). Se la differenza tra il diametro nominale del # filamento e l'uscita del sensore \u00e8 maggiore di +- max_difference, # il moltiplicatore di estrusione viene riportato a %100. # Il valore predefinito \u00e8 0,200. #measurement_delay: 70 # La distanza dal sensore alla camera di fusione/hot-end in # millimetri (mm). Il filamento tra il sensore e l'hot-end verr\u00e0 # trattato come default_nominal_filament_diameter. Il modulo # host funziona con la logica FIFO. Mantiene ogni valore e posizione # del sensore in un array e li riporta nella posizione corretta. # Questo parametro deve essere fornito. #enable: False # Sensore abilitato o disabilitato dopo l'accensione. L'impostazione predefinita \u00e8 disabilitare. #measurement_interval: 10 # La distanza approssimativa (in mm) tra le letture del sensore. # Il valore predefinito \u00e8 10 mm. #logging: False # Il log esterno al terminale e klipper.log pu\u00f2 essere # attivato|off tramite comando. #min_diameter: 1.0 # Diametro minimo per trigger filament_switch_sensor virtuale. #use_current_dia_while_delay: False # Utilizzare il diametro attuale invece del diametro nominale # mentre il ritardo di misurazione non \u00e8 trascorso. #pause_on_runout: #runout_gcode: #insert_gcode: #event_delay: #pause_delay: # Vedere la sezione \"filament_switch_sensor\" per una # descrizione dei parametri di cui sopra. Supporto hardware per specifica scheda \u00b6 [sx1509] \u00b6 Configurare un'espansione SX1509 da I2C a GPIO. A causa del ritardo dovuto alla comunicazione I2C, NON utilizzare i pin SX1509 come abilitazione stepper, pin step o dir o qualsiasi altro pin che richieda un bit banging veloce. Sono utilizzati al meglio come uscite digitali statiche o controllate da gcode o pin hardware-pwm per es. fan. Si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"sx1509\". Ogni espansione fornisce un set di 16 pin (da sx1509_my_sx1509:PIN_0 a sx1509_my_sx1509:PIN_15) che possono essere utilizzati nella configurazione della stampante. Per un esempio, vedere il file generic-duet2-duex.cfg . [sx1509 my_sx1509] i2c_address: # Indirizzo I2C utilizzato da questa espansione. A seconda dei # ponticelli hardware \u00e8 uno dei seguenti indirizzi: 62 63 112 113. # Questo parametro deve essere fornito. #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni comuni I2C\" per una # escrizione dei parametri di cui sopra. #i2c_bus: # Se l'implementazione I2C del tuo microcontrollore supporta # pi\u00f9 bus I2C, puoi specificare qui il nome del bus. L'impostazione # predefinita prevede l'utilizzo del bus i2c del microcontrollore # predefinito. [samd_sercom] \u00b6 Configurazione SAMD SERCOM per specificare quali pin utilizzare su un determinato SERCOM. Si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"samd_sercom\". Ogni SERCOM deve essere configurato prima di utilizzarlo come periferica SPI o I2C. Posiziona questa sezione di configurazione sopra qualsiasi altra sezione che fa uso di bus SPI o I2C. [samd_sercom my_sercom] sercom: # Il nome del bus Sercom da configurare nel microcontrollore. I nomi # disponibili sono \"sercom0\", \"sercom1\", ecc. # Questo parametro deve essere fornito. tx_pin: # Pin MOSI per la comunicazione SPI o pin SDA (dati) per la # comunicazione I2C. Il pin deve avere una configurazione pinmux # valida per la specifica periferica SERCOM. # Questo parametro deve essere fornito. #rx_pin: # Pin MISO per la comunicazione SPI. Questo pin non viene utilizzato # per la comunicazione I2C (I2C utilizza tx_pin sia per l'invio che per la # ricezione). Il pin deve avere una configurazione pinmux valida per la # specifica periferica SERCOM. Questo parametro \u00e8 facoltativo. clk_pin: # Pin CLK per la comunicazione SPI o pin SCL (clock) per la # comunicazione I2C. Il pin deve avere una configurazione pinmux # valida per la specifica periferica SERCOM. Questo parametro deve # essere fornito. [adc_scaled] \u00b6 Scaling analogico di Duet2 Maestro tramite letture vref e vssa. La definizione di una sezione adc_scaled abilita pin adc virtuali (come \"my_name:PB0\") che vengono regolati automaticamente dai pin di monitoraggio vref e vssa della scheda. Assicurati di definire questa sezione di configurazione sopra qualsiasi sezione di configurazione che utilizza uno di questi pin virtuali. Per un esempio, vedere il file generic-duet2-maestro.cfg . [adc_scaled my_name] vref_pin: # The ADC pin to use for VREF monitoring. This parameter must be # provided. vssa_pin: # The ADC pin to use for VSSA monitoring. This parameter must be # provided. #smooth_time: 2.0 # A time value (in seconds) over which the vref and vssa # measurements will be smoothed to reduce the impact of measurement # noise. The default is 2 seconds. [replicape] \u00b6 Supporto per Replicape: vedere la guida beaglebone e il file generic-replicape.cfg per un esempio. # La sezione di configurazione \"replicape\" aggiunge i pin di abilitazione # dello stepper virtuale \"replicape: stepper_x_enable\" (per stepper X, Y, Z, # E e H) e i pin di uscita PWM \"replicape: power_x\" (per hotbed, e, h, fan0, # fan1 , fan2 e fan3) che possono quindi essere utilizzati altrove nel file # di configurazione. [replicape] revision: # La revisione dell'hardware di replicape. Attualmente \u00e8 supportata solo # la revisione \"B3\". Questo parametro deve essere fornito. #enable_pin: !gpio0_20 # Il pin di abilitazione globale dei replicape. L'impostazione predefinita # \u00e8 !gpio0_20 (aka P9_41). host_mcu: # Il nome della sezione mcu config che comunica con l'istanza mcu # \"linux process\" di Klipper. Questo parametro deve essere fornito. #standstill_power_down: False # Questo parametro controlla la linea CFG6_ENN su tutti i motori # passo-passo. True imposta le righe di abilitazione su \"open\". # L'impostazione predefinita \u00e8 Falso. #stepper_x_microstep_mode: #stepper_y_microstep_mode: #stepper_z_microstep_mode: #stepper_e_microstep_mode: #stepper_h_microstep_mode: # Questo parametro controlla i pin CFG1 e CFG2 del driver del motore # passo-passo specificato. Le opzioni disponibili sono: disabilita, 1, 2, # spread2, 4, 16, spread4, spread16, stealth4 e stealth16. L'impostazione # predefinita \u00e8 disabilitata. #stepper_x_current: #stepper_y_current: #stepper_z_current: #stepper_e_current: #stepper_h_current: # La corrente massima configurata (in Amp) del driver del motore # passo-passo. Questo parametro deve essere fornito se lo stepper non # \u00e8 in modalit\u00e0 disabilitazione. #stepper_x_chopper_off_time_high: #stepper_y_chopper_off_time_high: #stepper_z_chopper_off_time_high: #stepper_e_chopper_off_time_high: #stepper_h_chopper_off_time_high: # Questo parametro controlla il pin CFG0 del driver del motore # passo-passo (True imposta CFG0 alto, False lo imposta basso). # L'impostazione predefinita \u00e8 False. #stepper_x_chopper_hysteresis_high: #stepper_y_chopper_hysteresis_high: #stepper_z_chopper_hysteresis_high: #stepper_e_chopper_hysteresis_high: #stepper_h_chopper_hysteresis_high: # Questo parametro controlla il pin CFG4 del driver del motore # passo-passo (True imposta CFG4 alto, False lo imposta basso). # L'impostazione predefinita \u00e8 False. #stepper_x_chopper_blank_time_high: #stepper_y_chopper_blank_time_high: #stepper_z_chopper_blank_time_high: #stepper_e_chopper_blank_time_high: #stepper_h_chopper_blank_time_high: # Questo parametro controlla il pin CFG5 del driver del motore # passo-passo (True imposta CFG5 alto, False lo imposta basso). # L'impostazione predefinita \u00e8 True. Altri moduli personalizzati \u00b6 [palette2] \u00b6 Supporto multimateriale Palette 2: fornisce un'integrazione pi\u00f9 stretta supportando i dispositivi Palette 2 in modalit\u00e0 connessa. Questo modulo richiede anche [virtual_sdcard] e [pause_resume] per la piena funzionalit\u00e0. Se si utilizza questo modulo, non utilizzare il plug-in Palette 2 per Octoprint poich\u00e9 entreranno in conflitto e 1 non si inizializzer\u00e0 correttamente, probabilmente interrompendo la stampa. Se utilizzi Octoprint e esegui lo streaming di gcode sulla porta seriale invece di stampare da virtual_sd, rimuovere M1 e M0 da Pausa dei comandi in Impostazioni > Connessione seriale > Firmware e protocollo eviter\u00e0 la necessit\u00e0 per avviare la stampa sulla tavolozza 2 e riattivare la pausa in Octoprint per avviare la stampa. [palette2] serial: # La porta seriale per la connessione alla Palette 2. #baud: 115200 # La velocit\u00e0 da utilizzare. Il valore predefinito \u00e8 115200. #feedrate_splice: 0.8 # L'avanzamento da utilizzare durante la giunzione # il valore predefinito \u00e8 0.8 #feedrate_normal: 1.0 # L'avanzamento da utilizzare dopo la giunzione # il valore predefinito \u00e8 1.0 #auto_load_speed: 2 # Avanzamento di estrusione durante il caricamento automatico # il valore predefinito \u00e8 2 (mm/s) #auto_cancel_variation: 0.1 # Annullamento automatico della stampa quando la variazione # del ping \u00e8 superiore a questa soglia [angle] \u00b6 Supporto per sensore magnetico Hall per la lettura delle misurazioni dell'angolo del motore passo-passo utilizzando i chip SPI a1333, as5047d o tle5012b. Le misurazioni sono disponibili tramite Server API e strumento di analisi del movimento . Vedere il Riferimento G-Code per i comandi disponibili. [angle my_angle_sensor] sensor_type: # The type of the magnetic hall sensor chip. Available choices are # \"a1333\", \"as5047d\", and \"tle5012b\". This parameter must be # specified. #sample_period: 0.000400 # The query period (in seconds) to use during measurements. The # default is 0.000400 (which is 2500 samples per second). #stepper: # The name of the stepper that the angle sensor is attached to (eg, # \"stepper_x\"). Setting this value enables an angle calibration # tool. To use this feature, the Python \"numpy\" package must be # installed. The default is to not enable angle calibration for the # angle sensor. cs_pin: # The SPI enable pin for the sensor. This parameter must be provided. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # See the \"common SPI settings\" section for a description of the # above parameters. Parametri bus comuni \u00b6 Impostazioni SPI comuni \u00b6 I seguenti parametri sono generalmente disponibili per i dispositivi che utilizzano un bus SPI. #spi_speed: # La velocit\u00e0 SPI (in Hz) da utilizzare durante la comunicazione con il # dispositivo. L'impostazione predefinita dipende dal tipo di dispositivo. #spi_bus: # Se il microcontrollore supporta pi\u00f9 bus SPI, \u00e8 possibile specificare # qui il nome del bus del microcontrollore. L'impostazione predefinita # dipende dal tipo di microcontrollore. #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Specificare i parametri di cui sopra per utilizzare \"SPI basato su # software\". Questa modalit\u00e0 non richiede il supporto hardware del # microcontrollore (in genere \u00e8 possibile utilizzare qualsiasi pin generico). # L'impostazione predefinita \u00e8 di non utilizzare \"spi software\". Impostazioni I2C comuni \u00b6 I seguenti parametri sono generalmente disponibili per i dispositivi che utilizzano un bus I2C. Si noti che l'attuale supporto del microcontrollore di Klipper per i2c generalmente non tollera il rumore di linea. Errori imprevisti sui cavi i2c possono causare la generazione di un errore di runtime da parte di Klipper. Il supporto di Klipper per il ripristino degli errori varia a seconda del tipo di microcontrollore. In genere si consiglia di utilizzare solo dispositivi i2c che si trovano sulla stessa scheda a circuito stampato del microcontrollore. La maggior parte delle implementazioni del microcontrollore Klipper supporta solo un i2c_speed di 100000. Il microcontrollore \"linux\" Klipper supporta una velocit\u00e0 400000, ma deve essere impostato nel sistema operativo e il parametro i2c_speed viene altrimenti ignorato. Il microcontrollore Klipper \"rp2040\" supporta una velocit\u00e0 di 400000 tramite il parametro i2c_speed . Tutti gli altri microcontrollori Klipper utilizzano una frequenza di 100000 e ignorano il parametro i2c_speed . #i2c_address: # L'indirizzo i2c del dispositivo. Questo deve essere specificato # come numero decimale (non in esadecimale). L'impostazione # predefinita dipende dal tipo di dispositivo. #i2c_mcu: # Il nome del microcontrollore a cui \u00e8 collegato il chip. # L'impostazione predefinita \u00e8 \"mcu\". #i2c_bus: # Se il microcontrollore supporta pi\u00f9 bus I2C, \u00e8 possibile # specificare qui il nome del bus del microcontrollore. # L'impostazione predefinita dipende dal tipo di microcontrollore. #i2c_speed: # La velocit\u00e0 I2C (in Hz) da utilizzare durante la comunicazione # con il dispositivo. L'implementazione di Klipper sulla maggior # parte dei microcontrollori \u00e8 codificata a 100000 e la modifica # di questo valore non ha alcun effetto. # Il valore predefinito \u00e8 100000.","title":"Riferimenti configurazione"},{"location":"Config_Reference.html#riferimenti-configurazione","text":"Questo documento \u00e8 un riferimento per le opzioni disponibili nel file di configurazione di Klipper. Le descrizioni in questo documento sono formattate in modo che sia possibile tagliarle e incollarle in un file di configurazione della stampante. Consulta il documento di installazione per informazioni sulla configurazione di Klipper e sulla scelta di un file di configurazione iniziale.","title":"Riferimenti configurazione"},{"location":"Config_Reference.html#configurazione-del-microcontrollore","text":"","title":"Configurazione del microcontrollore"},{"location":"Config_Reference.html#formato-dei-nomi-dei-pin-del-microcontrollore","text":"Molte opzioni di configurazione richiedono il nome di un pin del microcontrollore. Klipper usa i nomi hardware per questi pin, ad esempio \"PA4\". I nomi dei pin possono essere preceduti da ! per indicare che deve essere utilizzata una polarit\u00e0 inversa (ad esempio, trigger su basso anzich\u00e9 alto). I pin di input possono essere preceduti da ^ per indicare che un resistore di pull-up hardware deve essere abilitato per il pin. Se il microcontrollore supporta resistori pull-down, un pin di ingresso pu\u00f2 in alternativa essere preceduto da ~ . Nota, alcune sezioni di configurazione potrebbero \"creare\" pin aggiuntivi. Quando ci\u00f2 si verifica, la sezione di configurazione che definisce i pin deve essere elencata nel file di configurazione prima di qualsiasi sezione che utilizza tali pin.","title":"Formato dei nomi dei pin del microcontrollore"},{"location":"Config_Reference.html#mcu","text":"Configurazione del microcontrollore primario. [mcu] serial: # La porta seriale per la connessione all'MCU. In caso di dubbi (o se # cambia) vedere \"Dov'\u00e8 la mia porta seriale?\" sezione delle FAQ. # Questo parametro deve essere fornito quando si utilizza una # porta seriale. #baud: 250000 # La velocit\u00e0 di trasmissione da utilizzare. Il valore predefinito \u00e8 250000. #canbus_uuid: # Se si utilizza un dispositivo collegato a un bus CAN, questo imposta # l'identificatore univoco del chip a cui connettersi. Questo valore deve # essere fornito quando si utilizza il bus CAN per la comunicazione. #canbus_interface: # Se si utilizza un dispositivo collegato a un bus CAN, viene impostata # l'interfaccia di rete CAN da utilizzare. L'impostazione predefinita \u00e8 'can0'. #restart_method: # Questo controlla il meccanismo che l'host utilizzer\u00e0 per reimpostare # il microcontrollore. Le scelte sono \"arduino\", \"cheetah\", \"rpi_usb\" e # \"command\". Il metodo 'arduino' (attiva/disattiva DTR) \u00e8 comune su # schede Arduino e cloni. Il metodo 'cheetah' \u00e8 un metodo speciale # necessario per alcune schede Fysetc Cheetah. Il metodo \"rpi_usb\" # \u00e8 utile sulle schede Raspberry Pi con microcontrollori alimentati # tramite USB: disabilita brevemente l'alimentazione a tutte le porte # USB per eseguire un ripristino del microcontrollore. Il metodo # \"comando\" prevede l'invio di un comando Klipper al microcontrollore # in modo che possa reimpostarsi. L'impostazione predefinita \u00e8 # 'arduino' se il microcontrollore comunica su una porta seriale, # altrimenti 'comando'.","title":"[mcu]"},{"location":"Config_Reference.html#mcu-my_extra_mcu","text":"Microcontrollori aggiuntivi (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"mcu\"). Microcontrollori aggiuntivi introducono pin aggiuntivi che possono essere configurati come riscaldatori, stepper, ventole, ecc. Ad esempio, se viene introdotta una sezione \"[mcu extra_mcu]\", i pin come \"extra_mcu:ar9\" possono quindi essere utilizzati altrove nella configurazione (dove \"ar9\" \u00e8 un nome pin hardware o un nome alias sul dato mcu). [mcu my_extra_mcu] # Vedere la sezione \"mcu\" per i parametri di configurazione.","title":"[mcu my_extra_mcu]"},{"location":"Config_Reference.html#impostazioni-cinematiche-comuni","text":"","title":"Impostazioni cinematiche comuni"},{"location":"Config_Reference.html#printer","text":"La sezione printer controlla le impostazioni di alto livello della stampante. [printer] kinematics: # Il tipo di stampante in uso. Questa opzione pu\u00f2 essere una delle # seguenti: cartesian, corexy, corexz, hybrid_corexy, hybrid_corexz, # rotary_delta, delta, deltesian, polar, winch o nessuno. # Questo parametro deve essere specificato. max_velocity: # Velocit\u00e0 massima (in mm/s) della testa di stampa (relativa alla stampa). # Questo parametro deve essere specificato. max_accel: # Accelerazione massima (in mm/s^2) della testina (relativa alla stampa). # Questo parametro deve essere specificato. #max_accel_to_decel: # Una pseudo accelerazione (in mm/s^2) che controlla la velocit\u00e0 con cui # la testa di stampa pu\u00f2 passare dall'accelerazione alla decelerazione. Viene # utilizzato per ridurre la velocit\u00e0 massima di brevi movimenti a zig-zag # (e quindi ridurre le vibrazioni della stampante dovute a questi movimenti). # Il valore predefinito \u00e8 met\u00e0 di max_accel. #square_corner_velocity: 5.0 # La velocit\u00e0 massima (in mm/s) alla quale la testa di stampa pu\u00f2 viaggiare # su un angolo di 90 gradi. Un valore diverso da zero pu\u00f2 ridurre le variazioni # delle portate dell'estrusore consentendo variazioni istantanee della velocit\u00e0 # della testa utensile durante le curve. Questo valore configura l'algoritmo # interno di cornering della velocit\u00e0 centripeta; gli angoli con angoli maggiori # di 90 gradi avranno una velocit\u00e0 in curva maggiore mentre gli angoli con # angoli inferiori a 90 gradi avranno una velocit\u00e0 in curva inferiore. Se questo # \u00e8 impostato su zero, la testa utensile decelerer\u00e0 fino a zero ad ogni angolo. # Il valore predefinito \u00e8 5 mm/s.","title":"[printer]"},{"location":"Config_Reference.html#stepper","text":"Definizioni di motori passo-passo. Diversi tipi di stampante (come specificato dall'opzione \"cinematica\" nella sezione di configurazione [stampante]) richiedono nomi diversi per lo stepper (ad esempio, stepper_x vs stepper_a ). Di seguito sono riportate le definizioni comuni di stepper. Vedere il documento distanza di rotazione per informazioni sul calcolo del parametro rotation_distance . Consultare il documento Multi-MCU homing per informazioni sull'homing utilizzando pi\u00f9 microcontrollori. [stepper_x] step_pin: # Pin GPIO Step (attivato in alto) . Questo parametro deve essere fornito. dir_pin: # Pin GPIO di direzione (alto indica una direzione positiva). # Questo parametro deve essere fornito. enable_pin: # Pin GPIO di abilitazione (l'impostazione predefinita \u00e8 abilita alto; usa ! # per indicare abilita basso). Se questo parametro non viene fornito, il # driver del motore passo-passo deve essere sempre abilitato. rotation_distance: # Distanza (in mm) che l'asse percorre con una rotazione completa del # motore passo-passo (o viene specificata la marcia finale del rapporto di # trasmissione). Questo parametro deve essere fornito. microsteps: # Il numero di micropassi utilizzati dal driver del motore passo-passo. # Questo parametro deve essere fornito. #full_steps_per_rotation: 200 # Il numero di passi completi per una rotazione del motore passo-passo. # Impostarlo su 200 per un motore passo-passo da 1.8 gradi o su 400 per # un motore da 0.9 gradi. Il valore predefinito \u00e8 200. #gear_ratio: # Il rapporto di trasmissione se il motore passo-passo \u00e8 collegato all'asse # tramite un riduttore. Ad esempio, si pu\u00f2 specificare \"5:1\" se \u00e8 in uso un # riduttore 5 a 1. Se l'asse ha pi\u00f9 riduttori, \u00e8 possibile specificare un elenco # di rapporti di trasmissione separati da virgole (ad esempio, \"57:11, 2:1\"). # Se viene specificato gear_ratio, rotation_distance specifica la distanza # percorsa dall'asse per una rotazione completa dell'ingranaggio finale. # L'impostazione predefinita \u00e8 di non utilizzare un rapporto di trasmissione. #step_pulse_duration: # Il tempo minimo tra il fronte del segnale dell'impulso del passo e il # successivo fronte del segnale \"non passo\". Viene utilizzato anche per # impostare il tempo minimo tra un impulso di passo e un segnale di cambio # di direzione. L'impostazione predefinita \u00e8 0.000000100 (100ns) per gli # stepper TMC configurati in modalit\u00e0 UART o SPI e l'impostazione # predefinita \u00e8 0.000002 (che \u00e8 2us) per tutti gli altri stepper. endstop_pin: # Pin di rilevamento interruttore di fine corsa. Se questo pin di fine corsa # si trova su un mcu diverso dal motore passo-passo, abilita il # \"homing multi-mcu\". Questo parametro deve essere fornito per gli # stepper X, Y e Z su stampanti in stile cartesiano. #position_min: 0 # Distanza minima valida (in mm) alla quale l'utente pu\u00f2 comandare # il movimento dello stepper. Il valore predefinito \u00e8 0 mm. position_endstop: # Posizione del finecorsa (in mm). Questo parametro deve essere fornito # per gli stepper X, Y e Z su stampanti in stile cartesiano. position_max: # Distanza massima valida (in mm) alla quale l'utente pu\u00f2 comandare lo # spostamento dello stepper. Questo parametro deve essere fornito per # gli stepper X, Y e Z su stampanti in stile cartesiano. #homing_speed: 5.0 # Velocit\u00e0 massima (in mm/s) dello stepper durante l'homing. # Il valore predefinito \u00e8 5 mm/s. #homing_retract_dist: 5.0 # Distanza dall'arretramento (in mm) prima della corsa di riferimento # una seconda volta durante la corsa di riferimento. Impostalo a zero per # disabilitare la seconda casa. Il valore predefinito \u00e8 5 mm. #homing_retract_speed: # Velocit\u00e0 da utilizzare nella corsa di ritorno dopo l'homing nel caso in # cui questa dovesse essere diversa dalla velocit\u00e0 di homing, che \u00e8 # l'impostazione predefinita per questo parametro #second_homing_speed: # Velocit\u00e0 (in mm/s) dello stepper durante l'esecuzione del secondo # homing. L'impostazione predefinita \u00e8 homing_speed/2. #homing_positive_dir: # Se true, l'homing far\u00e0 muovere lo stepper in una direzione positiva # (allontanandosi da zero); se falso, home verso zero. \u00c8 meglio utilizzare # l'impostazione predefinita piuttosto che specificare questo parametro. # Il valore predefinito \u00e8 true se position_endstop \u00e8 vicino a position_max # false se vicino a position_min.","title":"[stepper]"},{"location":"Config_Reference.html#cinematica-cartesiana","text":"Vedere example-cartesian.cfg per un file di configurazione della cinematica cartesiana di esempio. Qui sono descritti solo i parametri specifici delle stampanti cartesiane - vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: cartesian max_z_velocity: # Imposta la velocit\u00e0 massima (in mm/s) di movimento lungo # l'asse z. Questa impostazione pu\u00f2 essere utilizzata per limitare # la velocit\u00e0 massima del motore passo-passo z. L'impostazione # predefinita \u00e8 utilizzare max_velocity per max_z_velocity. max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento # lungo l'asse z. Limita l'accelerazione del motore passo-passo z. # L'impostazione predefinita \u00e8 utilizzare max_accel per max_z_accel. # La sezione stepper_x viene utilizzata per descrivere lo stepper # che controlla l'asse X in un robot cartesiano. [stepper_x] # La sezione stepper_y viene utilizzata per descrivere lo stepper # che controlla l'asse Y in un robot cartesiano. [stepper_y] # La sezione stepper_z viene utilizzata per descrivere lo stepper # che controlla l'asse Z in un robot cartesiano. [stepper_z]","title":"Cinematica cartesiana"},{"location":"Config_Reference.html#cinematica-delta-lineare","text":"Vedere example-delta.cfg per un file di configurazione della cinematica delta lineare di esempio. Consultare la guida alla calibrazione delta per informazioni sulla calibrazione. Qui vengono descritti solo i parametri specifici per le stampanti delta lineari - vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: delta max_z_velocity: # Per le stampanti delta questo limita la velocit\u00e0 massima (in mm/s) dei # movimenti con movimento dell'asse z. Questa impostazione pu\u00f2 essere # utilizzata per ridurre la velocit\u00e0 massima dei movimenti su/gi\u00f9 (che # richiedono una velocit\u00e0 di incremento maggiore rispetto ad altri # movimenti su una stampante delta). L'impostazione predefinita \u00e8 # utilizzare max_velocity per max_z_velocity. #max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento lungo # l'asse z. L'impostazione pu\u00f2 essere utile se la stampante pu\u00f2 # raggiungere un'accelerazione maggiore sui movimenti XY rispetto ai # movimenti Z (ad esempio, quando si utilizza l'input shaper). # L'impostazione predefinita \u00e8 utilizzare max_accel per max_z_accel. #minimum_z_position: 0 # La posizione Z minima in cui l'utente pu\u00f2 comandare alla testa di # spostarsi. Il valore predefinito \u00e8 0. delta_radius: # Raggio (in mm) del cerchio orizzontale formato dalle tre torri ad # asse lineare. Questo parametro pu\u00f2 anche essere calcolato come: # delta_radius = smooth_rod_offset - effector_offset - carriage_offset # Questo parametro deve essere fornito. #print_radius: # Il raggio (in mm) delle coordinate XY della testa di stampa valide. # \u00c8 possibile utilizzare questa impostazione per personalizzare il # controllo dell'intervallo dei movimenti della testa. Se qui # viene specificato un valore elevato, potrebbe essere possibile # comandare la collisione della testa di stampa con una torre. # L'impostazione predefinita \u00e8 usare delta_radius per print_radius # (che normalmente impedirebbe una collisione con torri). # La sezione stepper_a descrive lo stepper che controlla la torre # anteriore sinistra (a 210 gradi). Questa sezione controlla anche i # parametri di homing (velocit\u00e0 di homing, homing retract_dist) # per tutte le torri. [stepper_a] position_endstop: # Distanza (in mm) tra l'ugello e il piatto quando l'ugello si trova al # centro dell'area di costruzione e si attiva il finecorsa. Questo # parametro deve essere fornito per stepper_a; per stepper_b e # stepper_c questo parametro \u00e8 predefinito sul valore specificato # per stepper_a. arm_length: # Lunghezza (in mm) dell'asta diagonale che collega questa torre # alla testa di stampa. Questo parametro deve essere fornito per # stepper_a; per stepper_b e stepper_c questo parametro \u00e8 predefinito sul valore specificato per stepper_a. #angle: # Questa opzione specifica l'angolo (in gradi) a cui si trova la torre. # Il valore predefinito \u00e8 210 per stepper_a, 330 per stepper_b e 90 # per stepper_c. # La sezione stepper_b descrive lo stepper che controlla la torre # anteriore destra (a 330 gradi). [stepper_b] # La sezione stepper_c descrive lo stepper che controlla la torre # posteriore (a 90 gradi). [stepper_c] # La sezione delta_calibrate abilita un comando G-code esteso # DELTA_CALIBRATE in grado di calibrare le posizioni e gli angoli # dei finecorsa della torre. [delta_calibrate] radius: # Raggio (in mm) dell'area che pu\u00f2 essere sondata. Questo \u00e8 # il raggio delle coordinate dell'ugello da sondare; se si utilizza # una sonda automatica con un offset XY, scegliere un raggio # sufficientemente piccolo in modo che la sonda si adatti sempre # al piatto. Questo parametro deve essere fornito. #speed: 50 # La velocit\u00e0 (in mm/s) degli spostamenti senza probing durante # la calibrazione. Il valore predefinito \u00e8 50. #horizontal_move_z: 5 # L'altezza (in mm) a cui la testa deve essere comandata di # spostarsi appena prima di avviare un'operazione di sonda. # L'impostazione predefinita \u00e8 5.","title":"Cinematica Delta lineare"},{"location":"Config_Reference.html#cinematica-deltesiana","text":"Vedere example-deltesian.cfg per un esempio di file di configurazione della cinematica deltesiana. Qui sono descritti solo i parametri specifici per le stampanti deltesiane - vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: deltesian max_z_velocity: # Per le stampanti deltesiane, ci\u00f2 limita la velocit\u00e0 massima (in mm/s) # dei movimenti con movimento dell'asse z. Questa impostazione pu\u00f2 # essere utilizzata per ridurre la velocit\u00e0 massima dei movimenti su/gi\u00f9 # (che richiedono una velocit\u00e0 di incremento maggiore rispetto ad altri # movimenti su una stampante deltesiana). L'impostazione predefinita # \u00e8 utilizzare max_velocity per max_z_velocity. #max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento lungo # l'asse z. L'impostazione pu\u00f2 essere utile se la stampante pu\u00f2 raggiungere # un'accelerazione maggiore sui movimenti XY rispetto ai movimenti Z # (ad esempio, quando si utilizza l'input shaper). L'impostazione # predefinita \u00e8 utilizzare max_accel per max_z_accel. #minimum_z_position: 0 # La posizione Z minima in cui l'utente pu\u00f2 comandare alla testa di # spostarsi. Il valore predefinito \u00e8 0. #min_angle: 5 # Questo rappresenta l'angolo minimo (in gradi) rispetto all'orizzontale # che le braccia deltesiane possono raggiungere. Questo parametro ha lo # scopo di impedire che i bracci diventino completamente orizzontali, il # che rischierebbe l'inversione accidentale dell'asse XZ. # L'impostazione predefinita \u00e8 5. #print_width: # La distanza (in mm) delle coordinate X della testa utensile valide. # \u00c8 possibile utilizzare questa impostazione per personalizzare il # controllo dell'intervallo dei movimenti della testa utensile. Se # qui viene specificato un valore elevato, potrebbe essere possibile # comandare la collisione della testa utensile con una torre. Questa # impostazione di solito corrisponde alla larghezza del piatto (in mm). #slow_ratio: 3 # Il rapporto utilizzato per limitare la velocit\u00e0 e l'accelerazione sui # movimenti vicini agli estremi dell'asse X. Se la distanza verticale # divisa per la distanza orizzontale supera il valore di slow_ratio, la # velocit\u00e0 e l'accelerazione sono limitate alla met\u00e0 dei loro valori # nominali. Se la distanza verticale divisa per la distanza orizzontale # supera il doppio del valore di slow_ratio, la velocit\u00e0 e l'accelerazione # sono limitate a un quarto dei loro valori nominali. # Il valore predefinito \u00e8 3. # la sezione stepper_left \u00e8 usata per descrivere lo stepper che controlla # la torre di sinistra. Questa sezione controlla anche i parametri di # homing (velocit\u00e0 di homing, homing retract_dist) per tutte le torri. [stepper_left] position_endstop: # Distanza (in mm) tra l'ugello e il piatto quando l'ugello si trova al # centro dell'area di costruzione e vengono attivati i finecorsa. Questo # parametro deve essere fornito per stepper_left; per stepper_right # questo parametro \u00e8 predefinito sul valore specificato per stepper_left. arm_length: # Lunghezza (in mm) dell'asta diagonale che collega il carrello torre # alla testina di stampa. Questo parametro deve essere fornito per # stepper_left; per stepper_right, questo parametro per impostazione # predefinita \u00e8 il valore specificato per stepper_left. arm_x_length: # Distanza orizzontale tra la testina di stampa e la torre quando le # stampanti \u00e8 in homing. Questo parametro deve essere fornito # per stepper_left; per stepper_right, questo parametro per impostazione # predefinita \u00e8 il valore specificato per stepper_left. # La sezione stepper_right \u00e8 usata per descrivere lo stepper che # controlla la torre destra. [stepper_right] # La sezione stepper_y viene utilizzata per descrivere lo stepper che # controlla l'asse Y in un robot deltesiano. [stepper_y]","title":"Cinematica Deltesiana"},{"location":"Config_Reference.html#cinematica-corexy","text":"Vedere example-corexy.cfg per un file cinematico corexy (e h-bot) di esempio. Qui sono descritti solo i parametri specifici per le stampanti corexy - vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: corexy max_z_velocity: # Imposta la velocit\u00e0 massima (in mm/s) di movimento lungo l'asse z. # Questa impostazione pu\u00f2 essere utilizzata per limitare la velocit\u00e0 # massima del motore passo-passo z. L'impostazione predefinita \u00e8 # utilizzare max_velocity per max_z_velocity. max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento # lungo l'asse z. Limita l'accelerazione del motore passo-passo z. # L'impostazione predefinita \u00e8 utilizzare max_accel per max_z_accel. # La sezione stepper_x viene utilizzata per descrivere l'asse X e lo # stepper che controlla il movimento X+Y. [stepper_x] # La sezione stepper_y viene utilizzata per descrivere l'asse Y e lo # stepper che controlla il movimento X+Y. [stepper_y] # La sezione stepper_z viene utilizzata per descrivere l'asse Z [stepper_z]","title":"Cinematica CoreXY"},{"location":"Config_Reference.html#cinematica-corexz","text":"Vedere example-corexz.cfg per un file di configurazione della cinematica corexz di esempio. Qui sono descritti solo i parametri specifici per le stampanti corexz - vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: corexz max_z_velocity: # Imposta la velocit\u00e0 massima (in mm/s) di movimento lungo l'asse z. # L'impostazione predefinita \u00e8 utilizzare max_velocity per # max_z_velocity. max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento lungo # l'asse z. L'impostazione predefinita \u00e8 utilizzare max_accel per # max_z_accel. # La sezione stepper_x viene utilizzata per descrivere l'asse X e lo # stepper che controlla il movimento X+Z. [stepper_x] # La sezione stepper_y viene utilizzata per descrivere l'asse Y [stepper_y] # La sezione stepper_z viene utilizzata per descrivere l'asse Z e lo # stepper che controlla il movimento X+Z. [stepper_z]","title":"Cinematica CoreXZ"},{"location":"Config_Reference.html#cinematica-hybrid-corexy","text":"Vedere example-hybrid-corexy.cfg per un file di configurazione della cinematica corexy ibrida di esempio. Questa cinematica \u00e8 anche nota come cinematica Markforged. Qui vengono descritti solo i parametri specifici delle stampanti corexy ibride, vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: hybrid_corexy max_z_velocity: # Imposta la velocit\u00e0 massima (in mm/s) di movimento lungo # l'asse z. L'impostazione predefinita \u00e8 utilizzare max_velocity # per max_z_velocity. max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento # lungo l'asse z. L'impostazione predefinita \u00e8 utilizzare max_accel # per max_z_accel. # La sezione stepper_x viene utilizzata per descrivere l'asse X e lo # stepper che controlla il movimento X-Y. [stepper_x] # La sezione stepper_y viene utilizzata per descrivere lo stepper # che controlla l'asse Y. [stepper_y] # La sezione stepper_z viene utilizzata per descrivere lo stepper # che controlla l'asse Z. [stepper_z]","title":"Cinematica Hybrid-CoreXY"},{"location":"Config_Reference.html#cinematica-hybrid-corexz","text":"Vedere example-hybrid-corexz.cfg per un file di configurazione della cinematica corexz ibrido di esempio. Questa cinematica \u00e8 anche nota come cinematica Markforged. Qui vengono descritti solo i parametri specifici delle stampanti corexy ibride, vedere impostazioni cinematiche comuni per i parametri disponibili. [printer] kinematics: hybrid_corexz max_z_velocity: # Questo imposta la velocit\u00e0 massima (in mm/s) di movimento lungo # l'asse z. L'impostazione predefinita \u00e8 utilizzare max_velocity per # max_z_velocity. max_z_accel: # Imposta l'accelerazione massima (in mm/s^2) del movimento lungo # l'asse z. L'impostazione predefinita \u00e8 utilizzare max_accel per # max_z_accel. # La sezione stepper_x viene utilizzata per descrivere l'asse X e lo # stepper che controlla il movimento X-Z. [stepper_x] # La sezione stepper_y viene utilizzata per descrivere lo stepper che # controlla l'asse Y. [stepper_y] # La sezione stepper_z viene utilizzata per descrivere lo stepper che # controlla l'asse Z. [stepper_z]","title":"Cinematica Hybrid-CoreXZ"},{"location":"Config_Reference.html#cinematica-polare","text":"Vedere example-polar.cfg per un file di configurazione della cinematica polare di esempio. Qui sono descritti solo i parametri specifici per le stampanti polari - vedere impostazioni cinematiche comuni per i parametri disponibili. LA CINEMATICA POLARE \u00c8 UN LAVORO IN CORSO. \u00c8 noto che i movimenti intorno alla posizione 0, 0 non funzionano correttamente. [printer] kinematics: polar max_z_velocity: # Imposta la velocit\u00e0 massima (in mm/s) di movimento lungo l'asse z. # Questa impostazione pu\u00f2 essere utilizzata per limitare la velocit\u00e0 # massima del motore passo-passo z. L'impostazione predefinita \u00e8 # utilizzare max_velocity per max_z_velocity. max_z_accel: # Questo imposta l'accelerazione massima (in mm/s^2) del # movimento lungo l'asse z. Limita l'accelerazione del motore # passo-passo z. L'impostazione predefinita \u00e8 utilizzare max_accel # per max_z_accel. # La sezione stepper_bed viene utilizzata per descrivere lo stepper # che controlla il piatto [stepper_bed] gear_ratio: # \u00c8 necessario specificare un gear_ratio e rotation_distance # potrebbe non essere specificato. Ad esempio, se il piatto ha una # ruota a 80 denti azionata da uno stepper con una ruota a 16 # denti, si dovrebbe specificare un rapporto di trasmissione di \"80:16\". # Questo parametro deve essere fornito. # La sezione stepper_arm \u00e8 usata per descrivere lo stepper che # controlla il carrello sul braccio. [stepper_arm] # La sezione stepper_z viene utilizzata per descrivere lo stepper che # controlla l'asse Z. [stepper_z]","title":"Cinematica polare"},{"location":"Config_Reference.html#rotary-delta-kinematics","text":"See example-rotary-delta.cfg for an example rotary delta kinematics config file. Qui vengono descritti solo i parametri specifici delle stampanti delta rotative - vedere impostazioni cinematiche comuni per i parametri disponibili. ROTARY DELTA KINEMATICS ARE A WORK IN PROGRESS. Homing moves may timeout and some boundary checks are not implemented. [printer] kinematics: rotary_delta max_z_velocity: # For delta printers this limits the maximum velocity (in mm/s) of # moves with z axis movement. This setting can be used to reduce the # maximum speed of up/down moves (which require a higher step rate # than other moves on a delta printer). The default is to use # max_velocity for max_z_velocity. #minimum_z_position: 0 # The minimum Z position that the user may command the head to move # to. The default is 0. shoulder_radius: # Radius (in mm) of the horizontal circle formed by the three # shoulder joints, minus the radius of the circle formed by the # effector joints. This parameter may also be calculated as: # shoulder_radius = (delta_f - delta_e) / sqrt(12) # This parameter must be provided. shoulder_height: # Distance (in mm) of the shoulder joints from the bed, minus the # effector toolhead height. This parameter must be provided. # The stepper_a section describes the stepper controlling the rear # right arm (at 30 degrees). This section also controls the homing # parameters (homing_speed, homing_retract_dist) for all arms. [stepper_a] gear_ratio: # A gear_ratio must be specified and rotation_distance may not be # specified. For example, if the arm has an 80 toothed pulley driven # by a pulley with 16 teeth, which is in turn connected to a 60 # toothed pulley driven by a stepper with a 16 toothed pulley, then # one would specify a gear ratio of \"80:16, 60:16\". This parameter # must be provided. position_endstop: # Distance (in mm) between the nozzle and the bed when the nozzle is # in the center of the build area and the endstop triggers. This # parameter must be provided for stepper_a; for stepper_b and # stepper_c this parameter defaults to the value specified for # stepper_a. upper_arm_length: # Length (in mm) of the arm connecting the \"shoulder joint\" to the # \"elbow joint\". This parameter must be provided for stepper_a; for # stepper_b and stepper_c this parameter defaults to the value # specified for stepper_a. lower_arm_length: # Length (in mm) of the arm connecting the \"elbow joint\" to the # \"effector joint\". This parameter must be provided for stepper_a; # for stepper_b and stepper_c this parameter defaults to the value # specified for stepper_a. #angle: # This option specifies the angle (in degrees) that the arm is at. # The default is 30 for stepper_a, 150 for stepper_b, and 270 for # stepper_c. # The stepper_b section describes the stepper controlling the rear # left arm (at 150 degrees). [stepper_b] # The stepper_c section describes the stepper controlling the front # arm (at 270 degrees). [stepper_c] # The delta_calibrate section enables a DELTA_CALIBRATE extended # g-code command that can calibrate the shoulder endstop positions. [delta_calibrate] radius: # Radius (in mm) of the area that may be probed. This is the radius # of nozzle coordinates to be probed; if using an automatic probe # with an XY offset then choose a radius small enough so that the # probe always fits over the bed. This parameter must be provided. #speed: 50 # The speed (in mm/s) of non-probing moves during the calibration. # The default is 50. #horizontal_move_z: 5 # The height (in mm) that the head should be commanded to move to # just prior to starting a probe operation. The default is 5.","title":"Rotary delta Kinematics"},{"location":"Config_Reference.html#cable-winch-kinematics","text":"See the example-winch.cfg for an example cable winch kinematics config file. Qui sono descritti solo i parametri specifici per le stampanti cavo verricello - vedere impostazioni comuni cinematiche per i parametri disponibili. CABLE WINCH SUPPORT IS EXPERIMENTAL. Homing is not implemented on cable winch kinematics. In order to home the printer, manually send movement commands until the toolhead is at 0, 0, 0 and then issue a G28 command. [printer] kinematics: winch # The stepper_a section describes the stepper connected to the first # cable winch. A minimum of 3 and a maximum of 26 cable winches may be # defined (stepper_a to stepper_z) though it is common to define 4. [stepper_a] rotation_distance: # The rotation_distance is the nominal distance (in mm) the toolhead # moves towards the cable winch for each full rotation of the # stepper motor. This parameter must be provided. anchor_x: anchor_y: anchor_z: # The X, Y, and Z position of the cable winch in cartesian space. # These parameters must be provided.","title":"Cable winch Kinematics"},{"location":"Config_Reference.html#nessuna-cinematica","text":"\u00c8 possibile definire una cinematica speciale \"none\" per disabilitare il supporto cinematico in Klipper. Questo pu\u00f2 essere utile per controllare dispositivi che non sono le tipiche stampanti 3D o per scopi di debug. [printer] kinematics: none max_velocity: 1 max_accel: 1 # \u00c8 necessario definire i parametri max_velocity e max_accel. I valori # non vengono utilizzati per la cinematica \"none\".","title":"Nessuna cinematica"},{"location":"Config_Reference.html#supporto-per-estrusore-e-piatto-riscaldato-comuni","text":"","title":"Supporto per estrusore e piatto riscaldato comuni"},{"location":"Config_Reference.html#extruder","text":"La sezione dell'estrusore viene utilizzata per descrivere i parametri del riscaldatore per l'hotend dell'ugello insieme allo stepper che controlla l'estrusore. Per ulteriori informazioni, vedere riferimento comando . Consultare la Guida all'avanzamento della pressione per informazioni sulla regolazione dell'anticipo della pressione. [extruder] step_pin: dir_pin: enable_pin: microsteps: rotation_distance: #full_steps_per_rotation: #gear_ratio: # Vedere la sezione \"stepper\" per una descrizione di quanto sopra # Se nessuno dei parametri precedenti \u00e8 specificato, nessuno stepper # sar\u00e0 associato all'hotend dell'ugello (sebbene un comando # SYNC_EXTRUDER_MOTION possa associarne uno in fase di esecuzione). nozzle_diameter: # Diametro dell'orifizio dell'ugello (in mm). Questo parametro deve essere fornito. filament_diameter:: # Il diametro nominale del filamento grezzo (in mm) quando # entra nell'estrusore. Questo parametro deve essere fornito. #max_extrude_cross_section: # Area massima (in mm^2) di una sezione trasversale dell'estrusione # (ad es. larghezza dell'estrusione moltiplicata per l'altezza dello strato). # Questa impostazione previene quantit\u00e0 eccessive di estrusione # durante spostamenti XY relativamente piccoli. # Se un movimento richiede una velocit\u00e0 di estrusione che supererebbe questo valore # causer\u00e0 la restituzione di un errore. L'impostazione predefinita # \u00e8: 4.0 * diametro_ugello^2 instantaneous_corner_velocity: 1.000 # La variazione di velocit\u00e0 istantanea massima (in mm/s) del # estrusore durante il collegamento di due movimenti. Il valore predefinito \u00e8 1 mm/s. #max_extrude_only_distance: 50.0 # Lunghezza massima (in mm di filamento grezzo) che pu\u00f2 avere un movimento # di retrazione o di sola estrusione. Se uno spostamento di retrazione # o di sola estrusione richiede una distanza maggiore di questo valore, # verr\u00e0 restituito un errore. Il valore predefinito \u00e8 50 mm. #max_extrude_only_velocity: #max_extrude_only_accel: # Velocit\u00e0 massima (in mm/s) e accelerazione (in mm/s^2) del # motore estrusore per retrazioni e movimenti di sola estrusione. # Queste impostazioni non hanno alcun impatto sui normali movimenti di stampa. # Se non specificati, vengono calcolati per corrispondere al limite che avrebbe # un movimento di stampa XY con una sezione trasversale di 4,0*diametro_ugello^2. #pressure_advance: 0.0 # La quantit\u00e0 di filamento grezzo da spingere nell'estrusore durante # accelerazione dell'estrusore. Una uguale quantit\u00e0 di filamento viene # retratta durante la decelerazione. Si misura in millimetri per # millimetro/secondo. Il valore predefinito \u00e8 0, che disabilita l'avanzamento della pressione. #pressure_advance_smooth_time: 0,040 # Un intervallo di tempo (in secondi) da utilizzare per calcolare la velocit\u00e0 media # dell'estrusore per l'avanzamento della pressione. Un valore maggiore si traduce # in movimenti pi\u00f9 fluidi dell'estrusore. Questo parametro non pu\u00f2 superare i 200 ms. # Questa impostazione si applica solo se pressure_advance \u00e8 diverso da zero. # Il valore predefinito \u00e8 0,040 (40 millisecondi). # # Le restanti variabili descrivono il riscaldatore dell'estrusore. heater_pin: # Pin di uscita PWM che controlla il riscaldatore. Questo parametro deve essere fornito. #max_power: 1.0 # La potenza massima (espressa come un valore compreso tra 0,0 e 1,0) a cui # pu\u00f2 essere impostato il riscaldatore_pin. Il valore 1.0 consente di impostare il pin # completamente abilitato per periodi prolungati, mentre un valore di 0,5 # consentirebbe di abilitare il pin per non pi\u00f9 della met\u00e0 del tempo. Questo # l'impostazione pu\u00f2 essere utilizzata per limitare la potenza totale # (per periodi prolungati) al riscaldatore. L'impostazione predefinita \u00e8 1.0. sensor_type: # Tipo di sensore - i termistori comuni sono \"EPCOS 100K B57560G104F\", # \"ATC Semitec 104GT-2\", \"ATC Semitec 104NT-4-R025H42G\", \"Generico # 3950\",\"Honeywell 100K 135-104LAG-J01\", \"NTC 100K MGB18-104F39050L32\", # \"SliceEngineering 450\" e \"TDK NTCG104LH104JT1\". Vedere la sezione # \"Sensori di temperatura\" per altri sensori. Questo parametro deve essere fornito. sensor_pin: # Pin di ingresso analogico collegato al sensore. Questo parametro deve essere fornito. #pullup_resistor: 4700 # La resistenza (in ohm) del pullup collegato al termistore. Questo parametro # \u00e8 valido solo quando il sensore \u00e8 un termistore. Il valore predefinito \u00e8 4700 ohm. #smooth_time: 1.0 # Un valore di tempo (in secondi) durante il quale le misurazioni della # temperatura verranno uniformate per ridurre l'impatto del rumore # di misurazione. Il valore predefinito \u00e8 1 secondo. control: # Algoritmo di controllo (pid o filigrana). Questo parametro deve # essere fornito. pid_Kp: pid_Ki: pid_Kd: # Il proporzionale (pid_Kp), l'integrale (pid_Ki) e la derivata # (pid_Kd) impostazioni per il sistema di controllo del feedback PID. Klipper # valuta le impostazioni PID con la seguente formula generale: # riscaldatore_pwm = (Kp*errore + Ki*integrale(errore) - Kd*derivato(errore)) / 255 # Dove \"errore\" \u00e8 \"temperatura_richiesta - temperatura_misurata\" # e \"heater_pwm\" \u00e8 la velocit\u00e0 di riscaldamento richiesta con 0,0 completamente # off e 1.0 completamente on. Prendi in considerazione l'utilizzo di PID_CALIBRATE # comando per ottenere questi parametri. pid_Kp, pid_Ki e pid_Kd # i parametri devono essere forniti per i riscaldatori PID. #delta_max: 2.0 # Sui riscaldatori controllati questo \u00e8 il numero di gradi in # Celsius al di sopra della temperatura target prima di disattivare il riscaldatore # cos\u00ec come il numero di gradi sotto il target prima # riattivare il riscaldatore. L'impostazione predefinita \u00e8 2 gradi Celsius. #pwm_cycle_time: 0,100 # Tempo in secondi per ogni ciclo PWM software del riscaldatore. # non \u00e8 consigliabile impostarlo a meno che non ci sia necessario come # requisito accendere il riscaldatore pi\u00f9 velocemente di 10 volte al secondo. # Il valore predefinito \u00e8 0,100 secondi. #min_extrude_temp: 170 # La temperatura minima (in gradi Celsius) alla quale possono essere # impartiti comandi all'estrusore. L'impostazione predefinita \u00e8 170 gradi Celsius. min_temp: max_temp: # L'intervallo massimo di temperature valide (in gradi Celsius) in cui # il riscaldatore deve rimanere all'interno. Questo controlla una funzione di sicurezza # implementata nel codice del microcontrollore , la temperatura # non cadr\u00e0 mai al di fuori di questo intervallo, altrimenti il microcontrollore # entrer\u00e0 in uno stato di arresto. Questo controllo pu\u00f2 aiutare a rilevarne alcuni # guasti hardware del riscaldatore e del sensore. Imposta questo intervallo solo in modo ampio # abbastanza in modo che temperature ragionevoli non si traducano in un errore. # Questi parametri devono essere forniti.","title":"[extruder]"},{"location":"Config_Reference.html#heater_bed","text":"La sezione heater_bed descrive un piatto riscaldato. Utilizza le stesse impostazioni del riscaldatore descritte nella sezione \"extruder\". [heater_bed] heater_pin: sensor_type: sensor_pin: control: min_temp: max_temp: # Vedere la sezione \"extruder\" per una descrizione dei parametri sopra.","title":"[heater_bed]"},{"location":"Config_Reference.html#supporto-livellamento-del-piatto","text":"","title":"Supporto livellamento del piatto"},{"location":"Config_Reference.html#bed_mesh","text":"Mesh Bed Leveling. Si pu\u00f2 definire una sezione di configurazione bed_mesh per abilitare trasformazioni di spostamento che sfalsano l'asse z in base a una mesh generata da punti sondati. Quando si utilizza una sonda per la posizione di riferimento sull'asse z, si consiglia di definire una sezione safe_z_home in printer.cfg per la posizione di riferimento verso il centro dell'area di stampa. Per ulteriori informazioni, vedere la bed mesh guide e riferimento del comando . Esempi visivi: rectangular bed, probe_count = 3, 3: x---x---x (max_point) | x---x---x | (min_point) x---x---x round bed, round_probe_count = 5, bed_radius = r: x (0, r) end / x---x---x \\ (-r, 0) x---x---x---x---x (r, 0) \\ x---x---x / x (0, -r) start [bed_mesh] #speed: 50 # The speed (in mm/s) of non-probing moves during the calibration. # The default is 50. #horizontal_move_z: 5 # The height (in mm) that the head should be commanded to move to # just prior to starting a probe operation. The default is 5. #mesh_radius: # Defines the radius of the mesh to probe for round beds. Note that # the radius is relative to the coordinate specified by the # mesh_origin option. This parameter must be provided for round beds # and omitted for rectangular beds. #mesh_origin: # Defines the center X, Y coordinate of the mesh for round beds. This # coordinate is relative to the probe's location. It may be useful # to adjust the mesh_origin in an effort to maximize the size of the # mesh radius. Default is 0, 0. This parameter must be omitted for # rectangular beds. #mesh_min: # Defines the minimum X, Y coordinate of the mesh for rectangular # beds. This coordinate is relative to the probe's location. This # will be the first point probed, nearest to the origin. This # parameter must be provided for rectangular beds. #mesh_max: # Defines the maximum X, Y coordinate of the mesh for rectangular # beds. Adheres to the same principle as mesh_min, however this will # be the furthest point probed from the bed's origin. This parameter # must be provided for rectangular beds. #probe_count: 3, 3 # For rectangular beds, this is a comma separate pair of integer # values X, Y defining the number of points to probe along each # axis. A single value is also valid, in which case that value will # be applied to both axes. Default is 3, 3. #round_probe_count: 5 # For round beds, this integer value defines the maximum number of # points to probe along each axis. This value must be an odd number. # Default is 5. #fade_start: 1.0 # The gcode z position in which to start phasing out z-adjustment # when fade is enabled. Default is 1.0. #fade_end: 0.0 # The gcode z position in which phasing out completes. When set to a # value below fade_start, fade is disabled. It should be noted that # fade may add unwanted scaling along the z-axis of a print. If a # user wishes to enable fade, a value of 10.0 is recommended. # Default is 0.0, which disables fade. #fade_target: # The z position in which fade should converge. When this value is # set to a non-zero value it must be within the range of z-values in # the mesh. Users that wish to converge to the z homing position # should set this to 0. Default is the average z value of the mesh. #split_delta_z: .025 # The amount of Z difference (in mm) along a move that will trigger # a split. Default is .025. #move_check_distance: 5.0 # The distance (in mm) along a move to check for split_delta_z. # This is also the minimum length that a move can be split. Default # is 5.0. #mesh_pps: 2, 2 # A comma separated pair of integers X, Y defining the number of # points per segment to interpolate in the mesh along each axis. A # \"segment\" can be defined as the space between each probed point. # The user may enter a single value which will be applied to both # axes. Default is 2, 2. #algorithm: lagrange # The interpolation algorithm to use. May be either \"lagrange\" or # \"bicubic\". This option will not affect 3x3 grids, which are forced # to use lagrange sampling. Default is lagrange. #bicubic_tension: .2 # When using the bicubic algorithm the tension parameter above may # be applied to change the amount of slope interpolated. Larger # numbers will increase the amount of slope, which results in more # curvature in the mesh. Default is .2. #relative_reference_index: # A point index in the mesh to reference all z values to. Enabling # this parameter produces a mesh relative to the probed z position # at the provided index. #faulty_region_1_min: #faulty_region_1_max: # Optional points that define a faulty region. See docs/Bed_Mesh.md # for details on faulty regions. Up to 99 faulty regions may be added. # By default no faulty regions are set.","title":"[bed_mesh]"},{"location":"Config_Reference.html#bed_tilt","text":"Compensazione dell'inclinazione del piatto. Si pu\u00f2 definire una sezione di configurazione bed_tilt per abilitare le trasformazioni di movimento che tengono conto di un piatto inclinato. Nota che bed_mesh e bed_tilt sono incompatibili; entrambi non possono essere definiti. Per ulteriori informazioni, vedere riferimento comando . [bed_tilt] #x_adjust: 0 # The amount to add to each move's Z height for each mm on the X # axis. The default is 0. #y_adjust: 0 # The amount to add to each move's Z height for each mm on the Y # axis. The default is 0. #z_adjust: 0 # The amount to add to the Z height when the nozzle is nominally at # 0, 0. The default is 0. # The remaining parameters control a BED_TILT_CALIBRATE extended # g-code command that may be used to calibrate appropriate x and y # adjustment parameters. #points: # A list of X, Y coordinates (one per line; subsequent lines # indented) that should be probed during a BED_TILT_CALIBRATE # command. Specify coordinates of the nozzle and be sure the probe # is above the bed at the given nozzle coordinates. The default is # to not enable the command. #speed: 50 # The speed (in mm/s) of non-probing moves during the calibration. # The default is 50. #horizontal_move_z: 5 # The height (in mm) that the head should be commanded to move to # just prior to starting a probe operation. The default is 5.","title":"[bed_tilt]"},{"location":"Config_Reference.html#bed_screws","text":"Strumento per aiutare a regolare le viti di livellamento del letto. Si pu\u00f2 definire una sezione di configurazione [bed_screws] per abilitare un comando g-code BED_SCREWS_ADJUST. Per ulteriori informazioni, vedere la guida al livellamento e il riferimento al comando . [bed_screws] #screw1: # The X, Y coordinate of the first bed leveling screw. This is a # position to command the nozzle to that is directly above the bed # screw (or as close as possible while still being above the bed). # This parameter must be provided. #screw1_name: # An arbitrary name for the given screw. This name is displayed when # the helper script runs. The default is to use a name based upon # the screw XY location. #screw1_fine_adjust: # An X, Y coordinate to command the nozzle to so that one can fine # tune the bed leveling screw. The default is to not perform fine # adjustments on the bed screw. #screw2: #screw2_name: #screw2_fine_adjust: #... # Additional bed leveling screws. At least three screws must be # defined. #horizontal_move_z: 5 # The height (in mm) that the head should be commanded to move to # when moving from one screw location to the next. The default is 5. #probe_height: 0 # The height of the probe (in mm) after adjusting for the thermal # expansion of bed and nozzle. The default is zero. #speed: 50 # The speed (in mm/s) of non-probing moves during the calibration. # The default is 50. #probe_speed: 5 # The speed (in mm/s) when moving from a horizontal_move_z position # to a probe_height position. The default is 5.","title":"[bed_screws]"},{"location":"Config_Reference.html#screws_tilt_adjust","text":"Strumento per aiutare a regolare l'inclinazione delle viti del piatto utilizzando la sonda Z. Si pu\u00f2 definire una sezione di configurazione Screws_tilt_adjust per abilitare un comando g-code SCREWS_TILT_CALCULATE. Per ulteriori informazioni, vedere la guida al livellamento e riferimento al comando . [screws_tilt_adjust] #screw1: # La coordinata (X, Y) della prima vite di livellamento del piatto. Questa # \u00e8 una posizione in cui comandare l'ugello in modo che la sonda sia # direttamente sopra la vite del piatto (o il pi\u00f9 vicino possibile mentre si # trova ancora sopra il piatto). Questa \u00e8 la vite di base utilizzata nei calcoli. # Questo parametro deve essere fornito. #screw1_name: # Un nome arbitrario per la vite data. Questo nome viene visualizzato # quando viene eseguito lo script di supporto. L'impostazione predefinita # prevede l'utilizzo di un nome basato sulla posizione XY della vite. #screw2: #screw2_name: #... # Viti di livellamento del piatto aggiuntive. Devono essere definite # almeno due viti. #speed: 50 # La velocit\u00e0 (in mm/s) degli spostamenti senza probing durante la # calibrazione. Il valore predefinito \u00e8 50. #horizontal_move_z: 5 # L'altezza (in mm) a cui la testa deve essere spostata appena prima # di avviare un'operazione di sonda. L'impostazione predefinita \u00e8 5. #screw_thread: CW-M3 # Il tipo di vite utilizzata per il livello del piatto, M3, M4 o M5 e la # direzione della manopola utilizzata per livellare il letto, in senso orario # decrementa in senso antiorario decrementa. Valori accettati: CW-M3, # CCW-M3, CW-M4, CCW-M4, CW-M5, CCW-M5. Il valore predefinito \u00e8 # CW-M3, la maggior parte delle stampanti utilizza una vite M3 e # ruotando la manopola in senso orario diminuisce la distanza.","title":"[screws_tilt_adjust]"},{"location":"Config_Reference.html#z_tilt","text":"Regolazione multipla dell'inclinazione dello stepper Z. Questa funzione consente la regolazione indipendente di pi\u00f9 stepper z (vedere la sezione \"stepper_z1\") per regolare l'inclinazione. Se questa sezione \u00e8 presente, diventa disponibile un comando G-Code esteso Z_TILT_ADJUST. [z_tilt] #z_positions: # Un elenco di coordinate X, Y (una per riga; le righe successive # identate) che descrivono la posizione di ciascun \"pivot point\" # del piattotto. Il \"pivot point\" \u00e8 il punto in cui il piatto si attacca # al dato stepper Z. Viene descritto utilizzando le coordinate dell'ugello # (la posizione X, Y dell'ugello se potesse spostarsi direttamente sopra # il punto). La prima voce corrisponde a stepper_z, la seconda a # stepper_z1, la terza a stepper_z2, ecc. # Questo parametro deve essere fornito. #points: # Un elenco di coordinate X, Y (una per riga; righe successive identate) # che devono essere rilevate durante un comando Z_TILT_ADJUST. # Specificare le coordinate dell'ugello e assicurarsi che la sonda sia # sopra il piatto alle coordinate dell'ugello date. # Questo parametro deve essere fornito. #speed: 50 # La velocit\u00e0 (in mm/s) degli spostamenti senza probing durante # la calibrazione. Il valore predefinito \u00e8 50. #horizontal_move_z: 5 # L'altezza (in mm) a cui la testa deve essere comandata per spostarsi # appena prima di avviare un'operazione di probing. # L'impostazione predefinita \u00e8 5. #retries: 0 # Numero di volte per riprovare se i punti rilevati non sono all'interno # della tolleranza. #retry_tolerance: 0 # Se i tentativi sono abilitati, riprovare se i punti sondati pi\u00f9 grande e # pi\u00f9 piccolo differiscono pi\u00f9 di retry_tolerance. Nota che l'unit\u00e0 di # modifica pi\u00f9 piccola qui sarebbe un singolo passaggio. # Tuttavia, se stai sondando pi\u00f9 punti rispetto agli stepper, # probabilmente avrai un valore minimo fisso per l'intervallo di punti # sondati che puoi apprendere osservando l'output del comando.","title":"[z_tilt]"},{"location":"Config_Reference.html#quad_gantry_level","text":"Moving gantry leveling using 4 independently controlled Z motors. Corrects hyperbolic parabola effects (potato chip) on moving gantry which is more flexible. WARNING: Using this on a moving bed may lead to undesirable results. If this section is present then a QUAD_GANTRY_LEVEL extended G-Code command becomes available. This routine assumes the following Z motor configuration: ---------------- |Z1 Z2| | --------- | | | | | | | | | | x-------- | |Z Z3| ---------------- Dove x \u00e8 il punto 0, 0 sul piatto [quad_gantry_level] #gantry_corners: # A newline separated list of X, Y coordinates describing the two # opposing corners of the gantry. The first entry corresponds to Z, # the second to Z2. This parameter must be provided. #points: # A newline separated list of four X, Y points that should be probed # during a QUAD_GANTRY_LEVEL command. Order of the locations is # important, and should correspond to Z, Z1, Z2, and Z3 location in # order. This parameter must be provided. For maximum accuracy, # ensure your probe offsets are configured. #speed: 50 # The speed (in mm/s) of non-probing moves during the calibration. # The default is 50. #horizontal_move_z: 5 # The height (in mm) that the head should be commanded to move to # just prior to starting a probe operation. The default is 5. #max_adjust: 4 # Safety limit if an adjustment greater than this value is requested # quad_gantry_level will abort. #retries: 0 # Number of times to retry if the probed points aren't within # tolerance. #retry_tolerance: 0 # If retries are enabled then retry if largest and smallest probed # points differ more than retry_tolerance.","title":"[quad_gantry_level]"},{"location":"Config_Reference.html#skew_correction","text":"Correzione dell'inclinazione della stampante. \u00c8 possibile utilizzare il software per correggere l'inclinazione della stampante su 3 piani, xy, xz, yz. Questo viene fatto stampando un modello di calibrazione lungo un piano e misurando tre lunghezze. A causa della natura della correzione dell'inclinazione, queste lunghezze vengono impostate tramite gcode. Per i dettagli, vedere Correzione inclinazione e Command Reference . [skew_correction]","title":"[skew_correction]"},{"location":"Config_Reference.html#z_thermal_adjust","text":"Temperature-dependant toolhead Z position adjustment. Compensate for vertical toolhead movement caused by thermal expansion of the printer's frame in real-time using a temperature sensor (typically coupled to a vertical section of frame). See also: extended g-code commands . [z_thermal_adjust] #temp_coeff: # The temperature coefficient of expansion, in mm/degC. For example, a # temp_coeff of 0.01 mm/degC will move the Z axis downwards by 0.01 mm for # every degree Celsius that the temperature sensor increases. Defaults to # 0.0 mm/degC, which applies no adjustment. #smooth_time: # Smoothing window applied to the temperature sensor, in seconds. Can reduce # motor noise from excessive small corrections in response to sensor noise. # The default is 2.0 seconds. #z_adjust_off_above: # Disables adjustments above this Z height [mm]. The last computed correction # will remain applied until the toolhead moves below the specified Z height # again. The default is 99999999.0 mm (always on). #max_z_adjustment: # Maximum absolute adjustment that can be applied to the Z axis [mm]. The # default is 99999999.0 mm (unlimited). #sensor_type: #sensor_pin: #min_temp: #max_temp: # Temperature sensor configuration. # See the \"extruder\" section for the definition of the above # parameters. #gcode_id: # See the \"heater_generic\" section for the definition of this # parameter.","title":"[z_thermal_adjust]"},{"location":"Config_Reference.html#homing-personalizzato","text":"","title":"Homing personalizzato"},{"location":"Config_Reference.html#safe_z_home","text":"Homing Z sicuro. Si pu\u00f2 utilizzare questo meccanismo per posizionare l'asse Z su una specifica coordinata X, Y. Ci\u00f2 \u00e8 utile se la testa portautensili, ad esempio, deve spostarsi al centro del letto prima che Z possa essere riposizionato. [safe_z_home] home_xy_position: # Una coordinata X, Y (ad es. 100, 100) dove deve essere eseguita # homing Z. Questo parametro deve essere fornito. #speed: 50.0 # Velocit\u00e0 alla quale la testa di stampa viene spostata sulla # coordinata Z sicura. Il valore predefinito \u00e8 50 mm/s #z_hop: # Distanza (in mm) per sollevare l'asse Z prima dell'homing. # Questo si applica a qualsiasi comando di homing, anche se non # si trova sull'asse Z. Se l'asse Z \u00e8 gi\u00e0 azzerato e la posizione Z # corrente \u00e8 inferiore a z_hop, questo sollever\u00e0 la testa a un'altezza # di z_hop. Se l'asse Z non \u00e8 gi\u00e0 azzerato la testina viene sollevata # di z_hop. L'impostazione predefinita \u00e8 di non implementare Z hop. #z_hop_speed: 15.0 # Velocit\u00e0 (in mm/s) alla quale l'asse Z viene sollevato prima # del homing. Il valore predefinito \u00e8 15 mm/s. #move_to_previous: False # Quando \u00e8 impostato su True, gli assi X e Y vengono ripristinati alle # posizioni precedenti dopo l'homing dell'asse Z. # L'impostazione predefinita \u00e8 False.","title":"[safe_z_home]"},{"location":"Config_Reference.html#homing_override","text":"Homing Override. Si pu\u00f2 utilizzare questo meccanismo per eseguire una serie di comandi g-code al posto di un G28 che si trova nel normale input di g-code. Questo pu\u00f2 essere utile su stampanti che richiedono una procedura specifica per l'home della macchina. [homing_override] gcode: # Un elenco di comandi G-Code da eseguire al posto dei comandi # G28 trovati nel normale input di G-Code. # Vedi docs/Command_Templates.md per il formato G-Code. # Se un G28 \u00e8 contenuto in questo elenco di comandi, invocher\u00e0 # la normale procedura di homing per la stampante. I comandi # qui elencati devono eseguire l'home di tutti gli assi. # Questo parametro deve essere fornito. #axes: xyz # Gli assi da sovrascrivere. Ad esempio, se questo \u00e8 impostato # su \"z\", lo script di override verr\u00e0 eseguito solo quando l'asse z # \u00e8 azzerato (ad esempio, tramite un comando \"G28\" o \"G28 Z0\"). # Nota, lo script di sovrascrittura dovrebbe comunque ospitare # tutti gli assi. L'impostazione predefinita \u00e8 \"xyz\" che fa s\u00ec che lo # script di override venga eseguito al posto di tutti i comandi G28. #set_position_x: #set_position_y: #set_position_z: # Se specificato, la stampante presumer\u00e0 che l'asse si trovi # nella posizione specificata prima di eseguire i comandi g-code # precedenti. L'impostazione di questa opzione disabilita i # controlli di riferimento per quell'asse. Questo pu\u00f2 essere utile # se la testa deve muoversi prima di invocare il normale # meccanismo G28 per un asse. L'impostazione predefinita \u00e8 # di non forzare una posizione per un asse.","title":"[homing_override]"},{"location":"Config_Reference.html#endstop_phase","text":"Finecorsa regolati in fase stepper. Per utilizzare questa funzione, definire una sezione di configurazione con un prefisso \"endstop_phase\" seguito dal nome della corrispondente sezione di configurazione dello stepper (ad esempio, \"[endstop_phase stepper_z]\"). Questa funzione pu\u00f2 migliorare la precisione degli interruttori di fine corsa. Aggiungi una semplice dichiarazione \"[endstop_phase]\" per abilitare il comando ENDSTOP_PHASE_CALIBRATE. Per ulteriori informazioni, vedere la endstop phases guide e command reference . [endstop_phase stepper_z] #endstop_accuracy: # Imposta la precisione prevista (in mm) del finecorsa. Questo rappresenta # la distanza massima di errore che il finecorsa pu\u00f2 attivare (ad es. se un # finecorsa pu\u00f2 occasionalmente attivarsi 100um in anticipo o fino a 100um in ritardo # quindi impostalo su 0,200 per 200 um). L'impostazione predefinita \u00e8 # 4*distanza_rotazione/passi_completi_per_rotazione. #trigger_phase: # Questo specifica la fase del driver del motore passo-passo da aspettarsi # quando si raggiunge il finecorsa. \u00c8 composto da due numeri separati # da un '/' - la fase e il numero totale di # fasi (ad es. \"7/64\"). Impostare questo valore solo se si \u00e8 sicuri che il # driver del motore passo-passo viene ripristinato ogni volta che viene ripristinato l'mcu. Se questo # non \u00e8 impostato, la prima fase verr\u00e0 rilevata al primo home # e quella fase sar\u00e0 utilizzata su tutte le abitazioni successive. #endstop_align_zero: False # Se true, la posizione_endstop dell'asse sar\u00e0 effettivamente # modificato in modo che la posizione zero dell'asse avvenga a passo pieno # sul motore. (Se utilizzato sull'asse Z e la stampa # l'altezza del livello \u00e8 un multiplo di una distanza di un passo intero, allora ogni # layer si eseguir\u00e0 in un step completo.) L'impostazione predefinita \u00e8 False.","title":"[endstop_phase]"},{"location":"Config_Reference.html#macro-ed-eventi-g-code","text":"","title":"Macro ed eventi G-Code"},{"location":"Config_Reference.html#gcode_macro","text":"Macro G-Code (\u00e8 possibile definire un numero qualsiasi di sezioni con un prefisso \"gcode_macro\"). Per ulteriori informazioni, consulta la Guida ai modelli di comando . [gcode_macro my_cmd] #gcode: # Un elenco di comandi G-Code da eseguire al posto di \"my_cmd\". # Vedi docs/Command_Templates.md per il formato G-Code. # Questo parametro deve essere fornito. #variable_<name>: # Si pu\u00f2 specificare un numero qualsiasi di opzioni con un prefisso # \"variable_\". Al nome della variabile data verr\u00e0 assegnato il valore dato # (analizzato come un valore letterale Python) e sar\u00e0 disponibile durante # l'espansione della macro. Ad esempio, una configurazione con # \"variable_fan_speed = 75\" potrebbe avere comandi gcode contenenti # \"M106 S{ fan_speed * 255 }\". Le variabili possono essere modificate in # fase di esecuzione utilizzando il comando SET_GCODE_VARIABLE # (consultare docs/Command_Templates.md per i dettagli). # I nomi delle variabili potrebbero non utilizzare caratteri maiuscoli. #rename_existing: # Questa opzione far\u00e0 s\u00ec che la macro ignori un comando G-Code # esistente e fornisca la definizione precedente del comando tramite # il nome fornito qui. Questo pu\u00f2 essere usato per sovrascrivere i # comandi G-Code integrati. Prestare attenzione quando si ignorano # i comandi poich\u00e9 possono causare risultati complessi e imprevisti. # L'impostazione predefinita \u00e8 di non sovrascrivere un comando # G-Code esistente. #description: G-Code macro # Ci\u00f2 aggiunger\u00e0 una breve descrizione utilizzata al comando HELP # o durante l'utilizzo della funzione di completamento automatico. # Predefinito \"G-Code macro\"","title":"[gcode_macro]"},{"location":"Config_Reference.html#delayed_gcode","text":"Esegui un gcode con un ritardo impostato. Per ulteriori informazioni, consulta la Guida template dei comandi e riferimento al comando . [delayed_gcode my_delayed_gcode] gcode: # A list of G-Code commands to execute when the delay duration has # elapsed. G-Code templates are supported. This parameter must be # provided. #initial_duration: 0.0 # The duration of the initial delay (in seconds). If set to a # non-zero value the delayed_gcode will execute the specified number # of seconds after the printer enters the \"ready\" state. This can be # useful for initialization procedures or a repeating delayed_gcode. # If set to 0 the delayed_gcode will not execute on startup. # Default is 0.","title":"[delayed_gcode]"},{"location":"Config_Reference.html#save_variables","text":"Supporta il salvataggio delle variabili su disco in modo che vengano mantenute durante i riavvii. Per ulteriori informazioni, vedere template dei comandi e G-Code reference . [save_variables] filename: # Richiesto: fornire un nome file che verrebbe utilizzato per salvare # le variabili su disco, ad es. ~/variables.cfg","title":"[save_variables]"},{"location":"Config_Reference.html#idle_timeout","text":"Timeout di inattivit\u00e0. Viene automaticamente abilitato un timeout di inattivit\u00e0: aggiungi una sezione di configurazione di idle_timeout esplicita per modificare le impostazioni predefinite. [idle_timeout] #gcode: # Un elenco di comandi G-Code da eseguire in un timeout di # inattivit\u00e0. Vedi docs/Command Templates.md per il formato # G-Code. L'impostazione predefinita \u00e8 # eseguire \"TURN_OFF HEATERS\" e \"M84\". #timeout: 600 # Tempo di inattivit\u00e0 (in secondi) da attendere prima di eseguire # i comandi G-Code sopra. Il valore predefinito \u00e8 600 secondi.","title":"[idle_timeout]"},{"location":"Config_Reference.html#funzionalita-opzionali-g-code","text":"","title":"Funzionalit\u00e0 opzionali G-Code"},{"location":"Config_Reference.html#virtual_sdcard","text":"Una scheda SD virtuale pu\u00f2 essere utile se la macchina host non \u00e8 abbastanza veloce per eseguire bene OctoPrint. Consente al software host Klipper di stampare direttamente i file gcode archiviati in una directory sull'host utilizzando i comandi G-Code standard (ad esempio, M24). [virtual_sdcard] path: # Il percorso della directory locale sulla macchina host per cercare # i file di Gcode. Questa \u00e8 una directory di sola lettura (le scritture # di file sdcard non sono supportate). Si pu\u00f2 indicare questo alla # directory di caricamento di OctoPrint # (generalmente ~/.octoprint/uploads/ ). # Questo parametro deve essere fornito. #on_error_gcode: # Un elenco di comandi G-Code da eseguire quando viene segnalato # un errore.","title":"[virtual_sdcard]"},{"location":"Config_Reference.html#sdcard_loop","text":"Alcune stampanti con funzionalit\u00e0 di pulizia del piatto, come un espulsore di parti o una stampante a nastro, possono trovare impiego nelle sezioni di loop del file sdcard. (Ad esempio, per stampare la stessa parte pi\u00f9 e pi\u00f9 volte, o ripetere la sezione a di una parte per una catena o un altro motivo ripetuto). Consulta il command reference per i comandi supportati. Vedere il file sample-macros.cfg per una macro M808 G-Code compatibile con Marlin. [sdcard_loop]","title":"[sdcard_loop]"},{"location":"Config_Reference.html#force_move","text":"Supporta lo spostamento manuale dei motori passo-passo per scopi diagnostici. Nota, l'utilizzo di questa funzione potrebbe mettere la stampante in uno stato non valido - vedere il command reference per dettagli importanti. [force_move] #enable_force_move: False # Impostare su True per abilitare FORCE_MOVE e SET_KINEMATIC_POSITION # i comandi G-Code estesi. L'impostazione predefinita \u00e8 False.","title":"[force_move]"},{"location":"Config_Reference.html#pause_resume","text":"Funzionalit\u00e0 di Pause/Resume con supporto di acquisizione e ripristino della posizione. Per ulteriori informazioni, vedere riferimento comando . [pause_resume] #recover_velocity: 50. # Quando si abilita pause_resume, la velocit\u00e0 con cui tornare alla # posizione catturata (in mm/s). Il valore predefinito \u00e8 50,0 mm/s.","title":"[pause_resume]"},{"location":"Config_Reference.html#firmware_retraction","text":"Retrazione del filamento del firmware. Ci\u00f2 abilita i comandi GCODE G10 (ritiro) e G11 (non ritirati) emessi da molti slicer. I parametri seguenti forniscono le impostazioni predefinite di avvio, sebbene i valori possano essere regolati tramite il [comando] SET_RETRACTION (G-Codes.md#firmware_retraction)), consentendo l'impostazione e l'ottimizzazione del filamento a runtime. [firmware_retraction] #retract_length: 0 # La lunghezza del filamento (in mm) da ritrarre quando G10 # \u00e8 attivato e da ritrarre quando G11 \u00e8 attivato (ma vedere # unretract_extra_length di seguito). I# l valore predefinito \u00e8 0 mm. #retract_speed: 20 # La velocit\u00e0 di retrazione, in mm/s. # Il valore predefinito \u00e8 20 mm/s. #unretract_extra_length: 0 # La lunghezza (in mm) del filamento *aggiuntivo* da # sommare quando non si ritrae. #unretract_speed: 10 # La velocit\u00e0 di srotolamento, in mm/s. # Il valore predefinito \u00e8 10 mm/s.","title":"[firmware_retraction]"},{"location":"Config_Reference.html#gcode_arcs","text":"Supporto per i comandi Gcode arc (G2/G3). [gcode_arcs] #resolution: 1.0 # Un arco sar\u00e0 diviso in segmenti. La lunghezza di ciascun segmento # sar\u00e0 uguale alla risoluzione in mm impostata sopra. Valori pi\u00f9 bassi # produrranno un arco pi\u00f9 fine, ma anche pi\u00f9 lavoro per la tua macchina. # Archi pi\u00f9 piccoli del valore configurato diventer\u00e0 linee rette. # L'impostazione predefinita \u00e8 # 1mm.","title":"[gcode_arcs]"},{"location":"Config_Reference.html#respond","text":"Abilita i comandi estesi \"M118\" e \"RESPOND\" commands . [respond] #default_type: echo # Imposta il prefisso predefinito dell'output \"M118\" e \"RESPOND\" su uno dei seguenti: # echo: \"echo: \" (Questa \u00e8 l'impostazione predefinita) # command: \"// \" # error: \"!! \" #default_prefix: echo: # Imposta direttamente il prefisso predefinito. Se presente # questo valore sovrascriver\u00e0 il \"default_type\".","title":"[respond]"},{"location":"Config_Reference.html#exclude_object","text":"Abilita il supporto per escludere o cancellare singoli oggetti durante il processo di stampa. Per ulteriori informazioni, vedere la guida escludi oggetti e riferimento ai comandi . Vedere il file sample-macros.cfg per una macro G-Code M486 compatibile con Marlin/RepRapFirmware. [exclude_object]","title":"[exclude_object]"},{"location":"Config_Reference.html#compensazione-della-risonanza","text":"","title":"Compensazione della risonanza"},{"location":"Config_Reference.html#input_shaper","text":"Abilita compensazione della risonanza . Vedere anche il command reference . [input_shaper] #shaper_freq_x: 0 # Una frequenza (in Hz) dell'input shaper per l'asse X. Questa \u00e8 # solitamente una frequenza di risonanza dell'asse X che l'input # shaper dovrebbe sopprimere. Per shaper pi\u00f9 complessi, come # shaper di input EI a 2 e 3 gobbe, questo parametro pu\u00f2 essere # impostato in base a diverse considerazioni. # Il valore predefinito \u00e8 0, che disabilita la modellatura dell'input # per l'asse X. #shaper_freq_y: 0 # Una frequenza (in Hz) dell'input shaper per l'asse Y. Questa \u00e8 # solitamente una frequenza di risonanza dell'asse Y che l'input # shaper dovrebbe sopprimere. Per shaper pi\u00f9 complessi, come # shaper di input EI a 2 e 3 gobbe, questo parametro pu\u00f2 essere # impostato in base a diverse considerazioni. Il valore predefinito # \u00e8 0, che disabilita la modellatura dell'input per l'asse Y. #shaper_type: mzv # Un tipo di input shaper da utilizzare per entrambi gli assi X e Y. # Gli shaper supportati sono zv, mzv, zvd, ei, 2hump_ei e # 3hump_ei. L'impostazione predefinita \u00e8 mzv input shaper. #shaper_type_x: #shaper_type_y: # Se shaper_type non \u00e8 impostato, questi due parametri possono # essere utilizzati per configurare diversi shaper di input per gli # assi X e Y. Sono supportati gli stessi valori del parametro # shaper_type. #damping_ratio_x: 0.1 #damping_ratio_y: 0.1 # Rapporti di smorzamento delle vibrazioni degli assi X e Y # utilizzati dagli shaper di input per migliorare la soppressione # delle vibrazioni. Il valore predefinito \u00e8 0,1, un buon valore per la # maggior parte delle stampanti. Nella maggior parte dei casi # questo parametro non richiede ottimizzazione e # non deve essere modificato.","title":"[input_shaper]"},{"location":"Config_Reference.html#adxl345","text":"Supporto per accelerometri ADXL345. Questo supporto consente di interrogare le misurazioni dell'accelerometro dal sensore. Ci\u00f2 abilita un comando ACCELEROMETER_MEASURE (consultare G-Codes per ulteriori informazioni). Il nome del chip predefinito \u00e8 \"predefinito\", ma \u00e8 possibile specificare un nome esplicito (ad esempio, [adxl345 my_chip_name]). [adxl345] cs_pin: # The SPI enable pin for the sensor. This parameter must be provided. #spi_speed: 5000000 # The SPI speed (in hz) to use when communicating with the chip. # The default is 5000000. #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # See the \"common SPI settings\" section for a description of the # above parameters. #axes_map: x, y, z # The accelerometer axis for each of the printer's X, Y, and Z axes. # This may be useful if the accelerometer is mounted in an # orientation that does not match the printer orientation. For # example, one could set this to \"y, x, z\" to swap the X and Y axes. # It is also possible to negate an axis if the accelerometer # direction is reversed (eg, \"x, z, -y\"). The default is \"x, y, z\". #rate: 3200 # Output data rate for ADXL345. ADXL345 supports the following data # rates: 3200, 1600, 800, 400, 200, 100, 50, and 25. Note that it is # not recommended to change this rate from the default 3200, and # rates below 800 will considerably affect the quality of resonance # measurements.","title":"[adxl345]"},{"location":"Config_Reference.html#mpu9250","text":"Supporto per accelerometri mpu9250 e mpu6050 (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"mpu9250\"). [mpu9250 my_accelerometer] #i2c_address: # Il valore predefinito \u00e8 104 (0x68). #i2c_mcu: #i2c_bus: #i2c_speed: 400000 # Vedere la sezione \"impostazioni I2C comuni\" per una descrizione # dei parametri di cui sopra. Il valore predefinito \"i2c_speed\" \u00e8 400000. #axes_map: x, y, z # Vedere la sezione \"adxl345\" per informazioni su questo parametro.","title":"[mpu9250]"},{"location":"Config_Reference.html#resonance_tester","text":"Supporto per test di risonanza e calibrazione automatica del input shaper. Per utilizzare la maggior parte delle funzionalit\u00e0 di questo modulo, devono essere installate dipendenze software aggiuntive; fare riferimento a Measuring Resonances e al command reference per ulteriori informazioni. Per ulteriori informazioni sul parametro max_smoothing e sul suo utilizzo, vedere la sezione Max smoothing della guida alla misurazione delle risonanze. [resonance_tester] #probe_points: # Un elenco di coordinate X, Y, Z di punti (un punto per linea) in cui # testare le risonanze. Almeno un punto \u00e8 richiesto. Assicurati che tutti # i punti con un margine di sicurezza nel piano XY (~ pochi centimetri) # siano raggiungibili dalla testa di stampa. #accel_chip: # Un nome del chip dell'accelerometro da utilizzare per le misurazioni. # Se il chip adxl345 \u00e8 stato definito senza un nome esplicito, questo # parametro pu\u00f2 semplicemente fare riferimento ad esso come # \"accel_chip: adxl345\", altrimenti deve essere fornito anche un nome # esplicito, ad es. \"accel_chip: adxl345 mio_chip_nome\". \u00c8 necessario # impostare questo o i due parametri successivi. #accel_chip_x: #accel_chip_y: # Nomi dei chip dell'accelerometro da utilizzare per le misurazioni per # ciascuno degli assi. Pu\u00f2 essere utile, ad esempio, su una stampante con # piatto, se due accelerometri separati sono montati sul piatto (per l'asse Y) # e sulla testa di stampa (per l'asse X). Questi parametri hanno lo stesso # formato del parametro 'accel_chip'. # \u00c8 necessario fornire solo 'accel_chip' o questi due parametri. #max_smoothing: # Maximum input shaper smoothing to allow for each axis during shaper # auto-calibration (with 'SHAPER_CALIBRATE' command). By default no # maximum smoothing is specified. Refer to Measuring_Resonances guide # for more details on using this feature. #min_freq: 5 # Frequenza minima per testare le risonanze. L'impostazione \u00e8 5 Hz. #max_freq: 133.33 # Frequenza massima per testare le risonanze. L'impostazione \u00e8 133,33 Hz. #accel_per_hz: 75 # Questo parametro viene utilizzato per determinare quale accelerazione # utilizzare per testare una frequenza specifica: accel = accel_per_hz * freq. # Maggiore \u00e8 il valore, maggiore \u00e8 l'energia delle oscillazioni. Pu\u00f2 essere # impostato su un valore inferiore al valore predefinito se le risonanze # diventano troppo forti sulla stampante. Tuttavia, valori pi\u00f9 bassi rendono # le misurazioni delle risonanze ad alta frequenza meno precise. # Il valore predefinito \u00e8 75 (mm/sec). #hz_per_sec: 1 # Determina la velocit\u00e0 del test. Quando si testano tutte le frequenze # nell'intervallo [freq_min, freq_max], ogni secondo la frequenza aumenta # di hz_per_sec. Valori piccoli rallentano il test e valori grandi diminuiscono # la precisione del test. Il valore predefinito \u00e8 1,0 (Hz/sec == sec^-2).","title":"[resonance_tester]"},{"location":"Config_Reference.html#config-file-helpers","text":"","title":"Config file helpers"},{"location":"Config_Reference.html#board_pins","text":"Alias pin board (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"board_pins\"). Usalo per definire gli alias per i pin su un microcontrollore. [board_pins my_aliases] mcu: mcu # A comma separated list of micro-controllers that may use the # aliases. The default is to apply the aliases to the main \"mcu\". aliases: aliases_<name>: # A comma separated list of \"name=value\" aliases to create for the # given micro-controller. For example, \"EXP1_1=PE6\" would create an # \"EXP1_1\" alias for the \"PE6\" pin. However, if \"value\" is enclosed # in \"<>\" then \"name\" is created as a reserved pin (for example, # \"EXP1_9=<GND>\" would reserve \"EXP1_9\"). Any number of options # starting with \"aliases_\" may be specified.","title":"[board_pins]"},{"location":"Config_Reference.html#include","text":"Supporto per includere i file. Uno pu\u00f2 includere un file di configurazione aggiuntivo dal file di configurazione della stampante principale. Possono essere utilizzati anche caratteri jolly (ad es. \"configs/*.cfg\"). [include my_other_config.cfg]","title":"[include]"},{"location":"Config_Reference.html#duplicate_pin_override","text":"Questo strumento consente di definire pi\u00f9 volte un singolo pin del microcontrollore in un file di configurazione senza il normale controllo degli errori. Questo \u00e8 inteso per scopi diagnostici e di debug. Questa sezione non \u00e8 necessaria laddove Klipper supporta l'utilizzo dello stesso pin pi\u00f9 volte e l'utilizzo di questa sostituzione pu\u00f2 causare risultati confusi e imprevisti. [duplicate_pin_override] pins: # Un elenco di pin separato da virgole che possono essere utilizzati pi\u00f9 volte in # un file di configurazione senza normali controlli degli errori. Questo parametro deve essere # fornito.","title":"[duplicate_pin_override]"},{"location":"Config_Reference.html#hardware-per-probing-del-piatto","text":"","title":"Hardware per probing del piatto"},{"location":"Config_Reference.html#probe","text":"Sonda di altezza Z. Si pu\u00f2 definire questa sezione per abilitare l'hardware di rilevamento dell'altezza Z. Quando questa sezione \u00e8 abilitata, i comandi estesi PROBE e QUERY_PROBE comandi g-code diventano disponibili. Inoltre, vedere la Guida alla calibrazione della sonda . La sezione probe crea anche un pin virtuale \"probe:z_virtual_endstop\". Si pu\u00f2 impostare stepper_z endstop_pin su questo pin virtuale su stampanti in stile cartesiano che utilizzano la sonda al posto di un endstop z. Se si utilizza \"probe:z_virtual_endstop\", non definire un position_endstop nella sezione di configurazione stepper_z. [probe] pin: # Pin di rilevamento della sonda. Se il pin si trova su un # microcontrollore diverso rispetto agli stepper Z, abilita # \"homing multi-mcu\". Questo parametro deve essere fornito. #deactivate_on_each_sample: True # Questo determina se Klipper deve eseguire la disattivazione # gcode tra ogni tentativo di esplorazione durante l'esecuzione di # una sequenza di probe multiple. L'impostazione predefinita \u00e8 True. #x_offset: 0.0 # La distanza (in mm) tra la sonda e l'ugello lungo l'asse x. # Il valore predefinito \u00e8 0. #y_offset: 0.0 # La distanza (in mm) tra la sonda e l'ugello lungo l'asse y. # Il valore predefinito \u00e8 0. z_offset: # La distanza (in mm) tra il piatto e l'ugello quando la sonda si attiva. # Questo parametro deve essere fornito. #speed: 5.0 # Velocit\u00e0 (in mm/s) dell'asse Z durante probing. # Il valore predefinito \u00e8 5 mm/s. #samples: 1 # Il numero di volte in cui sondare ciascun punto. I valori z sondati # verranno mediati. L'impostazione predefinita \u00e8 sondare 1 volta. #sample_retract_dist: 2.0 # La distanza (in mm) per sollevare la testa di stampa tra ciascun # campione (se si esegue il campionamento pi\u00f9 di una volta). # Il valore predefinito \u00e8 2 mm. #lift_speed: # Velocit\u00e0 (in mm/s) dell'asse Z durante il sollevamento della sonda # tra i campioni. L'impostazione predefinita prevede l'utilizzo dello # stesso valore del parametro 'speed'. #samples_result: average # Il metodo di calcolo durante il campionamento pi\u00f9 di una volta: # \"median\" o \"average\". L'impostazione predefinita \u00e8 average. #samples_tolerance: 0.100 # La distanza Z massima (in mm) che un campione pu\u00f2 differire da # altri campioni. Se questa tolleranza viene superata, viene segnalato # un errore o il tentativo viene riavviato # (vedere samples_tolerance_retries). Il valore predefinito \u00e8 0,100 mm. #samples_tolerance_retries: 0 # Il numero di tentativi per riprovare se viene trovato un campione che # supera samples_tolerance. In un nuovo tentativo, tutti i campioni # correnti vengono eliminati e il tentativo di sonda viene riavviato. # Se non si ottiene un insieme valido di campioni nel numero di tentativi # specificato, viene segnalato un errore. Il valore predefinito \u00e8 zero che # causa la segnalazione di un errore sul primo campione che supera # samples_tolerance. #activate_gcode: # Un elenco di comandi G-Code da eseguire prima di ogni tentativo di # esplorazione. Vedi docs/Command_Templates.md per il formato # G-Code. Questo pu\u00f2 essere utile se la sonda deve essere attivata in # qualche modo. Non impartire qui alcun comando che sposti la testa # di stampa (ad es. G1). L'impostazione predefinita \u00e8 di non eseguire # alcun comando G-Code speciale all'attivazione. #deactivate_gcode: # Un elenco di comandi G-Code da eseguire dopo il completamento di # ogni tentativo di esplorazione. Vedi docs/Command_Templates.md # per il formato G-Code. Non impartire qui alcun comando che sposti # la testina. L'impostazione predefinita \u00e8 di non eseguire alcun # comando G-Code speciale alla disattivazione.","title":"[probe]"},{"location":"Config_Reference.html#bltouch","text":"Sonda BLTouch. Si pu\u00f2 definire questa sezione (anzich\u00e9 una sezione sonda) per abilitare una sonda BLTouch. Per ulteriori informazioni, vedere BL-Touch guide e command reference .. Viene anche creato un pin virtuale \"probe:z_virtual_endstop\" (consultare la sezione \"probe\" per i dettagli). [bltouch] sensor_pin: # Pin connected to the BLTouch sensor pin. Most BLTouch devices # require a pullup on the sensor pin (prefix the pin name with \"^\"). # This parameter must be provided. control_pin: # Pin connected to the BLTouch control pin. This parameter must be # provided. #pin_move_time: 0.680 # The amount of time (in seconds) to wait for the BLTouch pin to # move up or down. The default is 0.680 seconds. #stow_on_each_sample: True # This determines if Klipper should command the pin to move up # between each probe attempt when performing a multiple probe # sequence. Read the directions in docs/BLTouch.md before setting # this to False. The default is True. #probe_with_touch_mode: False # If this is set to True then Klipper will probe with the device in # \"touch_mode\". The default is False (probing in \"pin_down\" mode). #pin_up_reports_not_triggered: True # Set if the BLTouch consistently reports the probe in a \"not # triggered\" state after a successful \"pin_up\" command. This should # be True for all genuine BLTouch devices. Read the directions in # docs/BLTouch.md before setting this to False. The default is True. #pin_up_touch_mode_reports_triggered: True # Set if the BLTouch consistently reports a \"triggered\" state after # the commands \"pin_up\" followed by \"touch_mode\". This should be # True for all genuine BLTouch devices. Read the directions in # docs/BLTouch.md before setting this to False. The default is True. #set_output_mode: # Request a specific sensor pin output mode on the BLTouch V3.0 (and # later). This setting should not be used on other types of probes. # Set to \"5V\" to request a sensor pin output of 5 Volts (only use if # the controller board needs 5V mode and is 5V tolerant on its input # signal line). Set to \"OD\" to request the sensor pin output use # open drain mode. The default is to not request an output mode. #x_offset: #y_offset: #z_offset: #speed: #lift_speed: #samples: #sample_retract_dist: #samples_result: #samples_tolerance: #samples_tolerance_retries: # See the \"probe\" section for information on these parameters.","title":"[bltouch]"},{"location":"Config_Reference.html#smart_effector","text":"Lo \"Smart Effector\" di Duet3d implementa una sonda Z utilizzando un sensore di forza. Si pu\u00f2 definire questa sezione invece di [probe] per abilitare le funzioni specifiche di Smart Effector. Ci\u00f2 consente anche a comandi di runtime di regolare i parametri di Smart Effector in fase di esecuzione. [smart_effector] pin: # Pin collegato al pin di uscita della sonda Z Smart Effector (pin 5). Si noti # che la resistenza di pullup sulla scheda generalmente non \u00e8 richiesta. # Tuttavia, se il pin di uscita \u00e8 collegato al pin della scheda con un resistore # di pullup, tale resistore deve essere di valore elevato (ad es. 10K Ohm o pi\u00f9). # Alcune schede hanno un resistore di pullup di basso valore sull'ingresso # della sonda Z, che probabilmente far\u00e0 risultare in uno stato di sonda sempre # attivato. In questo caso, collegare lo Smart Effector a un pin diverso sulla # scheda. Questo parametro \u00e8 obbligatorio. #control_pin: # Pin collegato al pin di ingresso di controllo Smart Effector (pin 7). Se fornito, # diventano disponibili i comandi di programmazione della sensibilit\u00e0 # di Smart Effector. #probe_accel: # Se impostato, limita l'accelerazione dei movimenti di tastatura (in mm/sec^2). # Un'improvvisa grande accelerazione all'inizio del movimento di esplorazione # pu\u00f2 causare l'attivazione spuria della sonda, specialmente se l'hotend \u00e8 pesante. # Per evitarlo, potrebbe essere necessario ridurre l'accelerazione dei movimenti # di tastatura tramite questo parametro. #recovery_time: 0.4 # Un ritardo tra i movimenti di spostamento e tastatura in secondi. Un # movimento veloce prima della tastatura pu\u00f2 causare l'attivazione spuria della # sonda. Ci\u00f2 pu\u00f2 causare errori \"Sonda attivata prima del movimento\" se non # \u00e8 impostato alcun ritardo. Il valore 0 disabilita il ritardo di ripristino. # Il valore predefinito \u00e8 0.4. #x_offset: #y_offset: # Dovrebbe essere lasciato non impostato (o impostato su 0). z_offset: # Altezza di attivazione della sonda. Inizia con -0.1 (mm) e regola in seguito # usando il comando `PROBE_CALIBRATE`. Questo parametro deve essere fornito. #speed: # Velocit\u00e0 (in mm/s) dell'asse Z durante la tastatura. Si consiglia di iniziare con la # velocit\u00e0 di tastatura di 20 mm/s e di regolarla secondo necessit\u00e0 per migliorare la # precisione e la ripetibilit\u00e0 dell'attivazione della sonda. #samples: #sample_retract_dist: #samples_result: #samples_tolerance: #samples_tolerance_retries: #activate_gcode: #deactivate_gcode: #deactivate_on_each_sample: # Vedere la sezione \"probe\" per ulteriori informazioni sui parametri di cui sopra.","title":"[smart_effector]"},{"location":"Config_Reference.html#motori-passo-passo-ed-estrusori-aggiuntivi","text":"","title":"Motori passo-passo ed estrusori aggiuntivi"},{"location":"Config_Reference.html#stepper_z1","text":"Assi multi-stepper. Su una stampante in stile cartesiano, lo stepper che controlla un dato asse pu\u00f2 avere blocchi di configurazione aggiuntivi che definiscono gli stepper che dovrebbero essere azionati insieme allo stepper primario. Si pu\u00f2 definire un numero qualsiasi di sezioni con un suffisso numerico che inizia da 1 (ad esempio, \"stepper_z1\", \"stepper_z2\", ecc.). [stepper_z1] #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: # Vedere la sezione \"stepper\" per la definizione dei parametri di cui sopra. #endstop_pin: # Se viene definito un endstop_pin per lo stepper aggiuntivo, lo stepper # si fermer\u00e0 fino all'attivazione dell'endstop. In caso contrario, lo stepper # si fermer\u00e0 fino a quando non verr\u00e0 attivato il finecorsa sullo stepper # primario per l'asse.","title":"[stepper_z1]"},{"location":"Config_Reference.html#extruder1","text":"In una stampante multiestrusore aggiungere una sezione estrusore aggiuntiva per ogni estrusore aggiuntivo. Le sezioni aggiuntive dell'estrusore devono essere denominate \"extruder1\", \"extruder2\", \"extruder3\" e cos\u00ec via. Vedere la sezione \"extruder\" per una descrizione dei parametri disponibili. Vedere sample-multi-extruder.cfg per un esempio di configurazione. [extruder1] #step_pin: #dir_pin: #... # Vedere la sezione \"estrusore\" per i parametri per lo stepper e il riscaldatore # disponibili. #shared_heater: # Questa opzione \u00e8 obsoleta e non deve pi\u00f9 essere specificata.","title":"[extruder1]"},{"location":"Config_Reference.html#dual_carriage","text":"Supporto per stampanti cartesiane con doppi carrelli su un unico asse. Il carrello attivo viene impostato tramite il comando G-code esteso SET_DUAL_CARRIAGE. Il comando \"SET_DUAL_CARRIAGE CARRIAGE=1\" attiver\u00e0 il carrello definito in questa sezione (CARRIAGE=0 riporter\u00e0 l'attivazione al carrello principale). Il supporto del doppio carrello \u00e8 in genere combinato con estrusori extra: il comando SET_DUAL_CARRIAGE viene spesso chiamato contemporaneamente al comando ACTIVATE_EXTRUDER. Assicurati di parcheggiare i carrelli durante la disattivazione. Vedere sample-idex.cfg per un esempio di configurazione. [dual_carriage] axis: # L'asse su cui si trova questo carrello aggiuntivo (x o y). Questo parametro # deve essere fornito #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: #endstop_pin: #position_endstop: #position_min: #position_max: # Vedere la sezione \"stepper\" per la definizione dei parametri di cui sopra.","title":"[dual_carriage]"},{"location":"Config_Reference.html#extruder_stepper","text":"Supporto per stepper aggiuntivi sincronizzati al movimento di un estrusore (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"extruder_stepper\"). Per ulteriori informazioni, vedere riferimento comando . [extruder_stepper my_extra_stepper] extruder: # L'estrusore con cui \u00e8 sincronizzato questo stepper. Se questo \u00e8 impostato su # una stringa vuota, lo stepper non verr\u00e0 sincronizzato con un # estrusore. Questo parametro deve essere fornito. #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: # Vedere la sezione \"stepper\" per la definizione dei parametri sopra. # .","title":"[extruder_stepper]"},{"location":"Config_Reference.html#stepper-manuali","text":"Stepper manuali (\u00e8 possibile definire un numero qualsiasi di sezioni con un prefisso \"manual_stepper\"). Questi sono stepper controllati dal comando g-code MANUAL_STEPPER. Ad esempio: \"MANUAL_STEPPER STEPPER=my_stepper MOVE=10 SPEED=5\". Vedere il file G-Codes per una descrizione del comando MANUAL_STEPPER. Gli stepper non sono collegati alla normale cinematica della stampante. [manual_stepper my_stepper] #step_pin: #dir_pin: #enable_pin: #microsteps: #rotation_distance: # Vedere la sezione \"stepper\" per una descrizione di questi parametri. #velocity: # Impostare la velocit\u00e0 predefinita (in mm/s) per lo stepper. Questo # valore verr\u00e0 utilizzato se un comando MANUAL_STEPPER non specifica # un parametro SPEED. Il valore predefinito \u00e8 5 mm/s. #accel: # Imposta l'accelerazione predefinita (in mm/s^2) per lo stepper. # Un'accelerazione pari a zero non risulter\u00e0 in nessuna accelerazione. # Questo valore verr\u00e0 utilizzato se un comando MANUAL_STEPPER non # specifica un parametro ACCEL. Il valore predefinito \u00e8 zero. #endstop_pin: # Pin di rilevamento interruttore di fine corsa. Se specificato, \u00e8 possibile # eseguire \"movimenti di riferimento\" aggiungendo un parametro # STOP_ON_ENDSTOP ai comandi di movimento MANUAL_STEPPER.","title":"[Stepper manuali]"},{"location":"Config_Reference.html#riscaldatori-e-sensori-personalizzati","text":"","title":"Riscaldatori e sensori personalizzati"},{"location":"Config_Reference.html#verify_heater","text":"Verifica riscaldatore e sensore di temperatura. La verifica del riscaldatore viene abilitata automaticamente per ogni riscaldatore configurato sulla stampante. Usa le sezioni di verifica_riscaldatore per modificare le impostazioni predefinite. [verify_heater heater_config_name] #max_error: 120 # Il massimo \"errore di temperatura cumulativo\" prima di generare un # errore. Valori pi\u00f9 piccoli comportano un controllo pi\u00f9 rigoroso e valori # pi\u00f9 grandi consentono pi\u00f9 tempo prima che venga segnalato un errore. # Nello specifico la temperatura viene osservata una volta al secondo e # se \u00e8 prossima alla temperatura target viene azzerato un \"contatore errori\" # interno; in caso contrario, se la temperatura \u00e8 inferiore all'intervallo target, # il contatore viene aumentato della quantit\u00e0 in cui la temperatura riportata # differisce da tale intervallo. Se il contatore supera questo \"errore_max\", # viene generato un errore. Il valore predefinito \u00e8 120. #check_gain_time: # Questo controlla la verifica del riscaldatore durante il riscaldamento # iniziale. Valori pi\u00f9 piccoli comportano un controllo pi\u00f9 rigoroso e valori # pi\u00f9 grandi consentono pi\u00f9 tempo prima che venga segnalato un errore. # In particolare, durante il riscaldamento iniziale, fintanto che il riscaldatore # aumenta di temperatura entro questo intervallo di tempo (specificato in # secondi), il \"contatore errori\" interno viene azzerato. Il valore predefinito # \u00e8 20 secondi per gli estrusori e 60 secondi per heater_bed. #hysteresis: 5 # La differenza di temperatura massima (in gradi Celsius) rispetto a una # temperatura target considerata nell'intervallo del target. Questo controlla # nell'intervallo max_error. \u00c8 raro personalizzare questo valore. # L'impostazione predefinita \u00e8 5. #heating_gain: 2 # La temperatura minima (in gradi Celsius) di cui il riscaldatore deve # aumentare durante il check_gain_time. \u00c8 raro personalizzare questo valore. # L'impostazione predefinita \u00e8 2.","title":"[verify_heater]"},{"location":"Config_Reference.html#homing_heaters","text":"Strumento per disabilitare i riscaldatori durante l'homing o la probing di un asse. [homing_heaters] #steppers: # Un elenco separato da virgole di stepper che dovrebbero causare # la disattivazione dei riscaldatori. L'impostazione predefinita \u00e8 # disabilitare i riscaldatori per qualsiasi spostamento di homing/sonda. # Esempio tipico: stepper_z #heaters: # Un elenco separato da virgole di riscaldatori da disabilitare # durante i movimenti di homing/probing. L'impostazione # predefinita \u00e8 disabilitare tutti i riscaldatori. # Esempio tipico: estrusore, letto riscaldatore","title":"[homing_heaters]"},{"location":"Config_Reference.html#thermistor","text":"Termistori personalizzati (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"thermistor\"). \u00c8 possibile utilizzare un termistore personalizzato nel campo sensor_type di una sezione di configurazione del riscaldatore. (Ad esempio, se si definisce una sezione \"[thermistor my_thermistor]\", \u00e8 possibile utilizzare un \"sensor_type: my_thermistor\" quando si definisce un riscaldatore.) Assicurati di posizionare la sezione del termistore nel file di configurazione sopra il suo primo utilizzo in una sezione del riscaldatore . [thermistor my_thermistor] #temperature1: #resistance1: #temperature2: #resistance2: #temperature3: #resistance3: # Tre misure di resistenza (in Ohm) alle temperature date (in Celsius). # Le tre misurazioni verranno utilizzate per calcolare i coefficienti di # Steinhart-Hart per il termistore. Questi parametri devono essere # forniti quando si utilizza Steinhart-Hart per definire il termistore. #beta: # In alternativa, \u00e8 possibile definire temperatura1, resistenza1 e beta # per definire i parametri del termistore. Questo parametro deve # essere fornito quando si utilizza \"beta\" per definire il termistore.","title":"[thermistor]"},{"location":"Config_Reference.html#adc_temperature","text":"Sensori di temperatura ADC personalizzati (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"adc_temperature\"). Ci\u00f2 consente di definire un sensore di temperatura personalizzato che misura una tensione su un pin del convertitore da analogico a digitale (ADC) e utilizza l'interpolazione lineare tra una serie di misurazioni di temperatura/tensione (o temperatura/resistenza) configurate per determinare la temperatura. Il sensore risultante pu\u00f2 essere utilizzato come tipo_sensore in una sezione riscaldatore. (Ad esempio, se si definisce una sezione \"[adc_temperature my_sensor]\", \u00e8 possibile utilizzare un \"sensor_type: my_sensor\" quando si definisce un riscaldatore.) Assicurati di posizionare la sezione del sensore nel file di configurazione sopra il suo primo utilizzo in una sezione del riscaldatore. [adc_temperature my_sensor] #temperature1: #voltage1: #temperature2: #voltage2: #... # A set of temperatures (in Celsius) and voltages (in Volts) to use # as reference when converting a temperature. A heater section using # this sensor may also specify adc_voltage and voltage_offset # parameters to define the ADC voltage (see \"Common temperature # amplifiers\" section for details). At least two measurements must # be provided. #temperature1: #resistance1: #temperature2: #resistance2: #... # Alternatively one may specify a set of temperatures (in Celsius) # and resistance (in Ohms) to use as reference when converting a # temperature. A heater section using this sensor may also specify a # pullup_resistor parameter (see \"extruder\" section for details). At # least two measurements must be provided.","title":"[adc_temperature]"},{"location":"Config_Reference.html#heater_generic","text":"Riscaldatori generici (si pu\u00f2 definire un numero qualsiasi di sezioni con il prefisso \"riscaldatore_generico\"). Questi riscaldatori si comportano in modo simile ai riscaldatori standard (estrusori, piatti riscaldati). Utilizzare il comando SET_HEATER_TEMPERATURE (consultare G-Codes per i dettagli) per impostare la temperatura target. [heater_generic my_generic_heater] #gcode_id: # L'ID da utilizzare quando si riporta la temperatura nel comando M105. # Questo parametro deve essere fornito. #max_power: #sensor_type: #sensor_pin: #smooth_time: #control: #pid_Kp: #pid_Ki: #pid_Kd: #pwm_cycle_time: #min_temp: #max_temp: # Vedere la sezione \"extruder\" per la definizione dei parametri sopra.","title":"[heater_generic]"},{"location":"Config_Reference.html#temperature_sensor","text":"Sensori di temperatura generici. \u00c8 possibile definire un numero qualsiasi di sensori di temperatura aggiuntivi che vengono riportati tramite il comando M105. [temperature_sensor my_sensor] #sensor_type: #sensor_pin: #min_temp: #max_temp: # Vedi la sezione \"extruder\" per la definizione dei parametri # sopra indicati. #gcode_id: # Vedi la sezione \"heater_generic\" per la definizione dei # parametri sopra indicati.","title":"[temperature_sensor]"},{"location":"Config_Reference.html#sensori-di-temperatura","text":"Klipper include definizioni per molti tipi di sensori di temperatura. Questi sensori possono essere utilizzati in qualsiasi sezione di configurazione che richieda un sensore di temperatura (come una sezione [extruder] o [heater_bed] ).","title":"Sensori di temperatura"},{"location":"Config_Reference.html#termistori-comuni","text":"Termistori comuni. I seguenti parametri sono disponibili nelle sezioni del riscaldatore che utilizzano uno di questi sensori. sensor_type: # Uno di \"EPCOS 100K B57560G104F\", \"ATC Semitec 104GT-2\", # \"ATC Semitec 104NT-4-R025H42G\", \"Generic 3950\", # \"Honeywell 100K 135-104LAG-J01\", \"NTC 100K MGB18-104F39050L32\", # \"SliceEngineering 450\", o \"TDK NTCG104LH104JT1\" sensor_pin: # Pin di ingresso analogico collegato al termistore. # Questo parametro deve essere fornito. #pullup_resistor: 4700 # La resistenza (in ohm) del pullup collegato al termistore. # Il valore predefinito \u00e8 4700 ohm. #inline_resistor: 0 # La resistenza (in ohm) di un resistore aggiuntivo (non a variazione di # calore) posizionato in linea con il termistore. \u00c8 raro impostare questo. # Il valore predefinito \u00e8 0 ohm.","title":"Termistori comuni"},{"location":"Config_Reference.html#amplificatori-di-temperatura-comuni","text":"Amplificatori di temperatura comuni. I seguenti parametri sono disponibili nelle sezioni del riscaldatore che utilizzano uno di questi sensori. sensor_type: # Uno tra \"PT100 INA826\", \"AD595\", \"AD597\", \"AD8494\", \"AD8495\", # \"AD8496\", o \"AD8497\". sensor_pin: # Pin di ingresso analogico collegato al sensore. Questo parametro # deve essere fornito. #adc_voltage: 5.0 # La tensione di confronto dell'ADC (in Volt). Il valore predefinito # \u00e8 5 volt. #voltage_offset: 0 # L'offset di tensione ADC (in Volt). Il valore predefinito \u00e8 0.","title":"Amplificatori di temperatura comuni"},{"location":"Config_Reference.html#sensore-pt1000-collegato-direttamente","text":"Sensore PT1000 collegato direttamente. I seguenti parametri sono disponibili nelle sezioni del riscaldatore che utilizzano uno di questi sensori. sensor_type: PT1000 sensor_pin: # Pin di ingresso analogico collegato al sensore. Questo parametro # deve essere fornito. #pullup_resistor: 4700 # La resistenza (in ohm) del pullup collegato al sensore. Il valore # predefinito \u00e8 4700 ohm.","title":"Sensore PT1000 collegato direttamente"},{"location":"Config_Reference.html#sensori-di-temperatura-maxxxxxx","text":"Sensori temperatura MAXxxxxx con interfaccia periferica seriale (SPI). I seguenti parametri sono disponibili nelle sezioni del riscaldatore che utilizzano uno di questi tipi di sensore. sensor_type: # Uno tra \"MAX6675\", \"MAX31855\", \"MAX31856\", o \"MAX31865\". sensor_pin: # Il pin mcu collegato al pin di selezione del chip del sensore. # Questo parametro deve essere fornito. #spi_speed: 4000000 # La velocit\u00e0 SPI (in hz) da utilizzare durante la comunicazione # con il chip. Il valore predefinito \u00e8 4000000. #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Vedere la sezione \"impostazioni comuni SPI\" per una # descrizione dei parametri di cui sopra. #tc_type: K #tc_use_50Hz_filter: False #tc_averaging_count: 1 # I parametri di cui sopra controllano i parametri del sensore # dei chip MAX31856. I valori predefiniti per ciascun parametro # sono accanto al nome del parametro nell'elenco precedente. #rtd_nominal_r: 100 #rtd_reference_r: 430 #rtd_num_of_wires: 2 #rtd_use_50Hz_filter: False # I parametri di cui sopra controllano i parametri del sensore dei # chip MAX31865. I valori predefiniti per ciascun parametro sono # accanto al nome del parametro nell'elenco precedente.","title":"Sensori di temperatura MAXxxxxx"},{"location":"Config_Reference.html#sensore-di-temperatura-bmp280bme280bme680","text":"Sensori ambientali BMP280/BME280/BME680 con interfaccia I2C. Si noti che questi sensori non sono destinati all'uso con estrusori e letti riscaldanti, ma piuttosto per il monitoraggio della temperatura ambiente (C), della pressione (hPa), dell'umidit\u00e0 relativa (%)e di livello del gas per il BME680. Vedere sample-macros.cfg per una gcode_macro che pu\u00f2 essere utilizzata per riportare la pressione e l'umidit\u00e0 oltre alla temperatura. sensor_type: BME280 #i2c_address: # Il valore predefinito \u00e8 118 (0x76). Alcuni sensori BME280 hanno un # indirizzo di 119 (0x77). #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni comuni I2C\" per una descrizione # dei parametri di cui sopra.","title":"Sensore di temperatura BMP280/BME280/BME680"},{"location":"Config_Reference.html#sensore-htu21d","text":"Sensore ambientale con interfaccia a due fili (I2C) della famiglia HTU21D. Si noti che questo sensore non \u00e8 destinato all'uso con estrusori e letti riscaldanti, ma piuttosto per il monitoraggio della temperatura ambiente (C) e dell'umidit\u00e0 relativa(%). Vedere sample-macros.cfg per una gcode_macro che pu\u00f2 essere utilizzata per riportare l'umidit\u00e0 oltre alla temperatura. sensor_type: # Deve essere \"HTU21D\", \"SI7013\", \"SI7020\", \"SI7021\" o \"SHT21\" #i2c_address: # Il valore predefinito \u00e8 64 (0x40). #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni comuni I2C\" per una # descrizione dei parametri di cui sopra. #htu21d_hold_master: # Se il sensore pu\u00f2 trattenere il buf I2C durante la lettura. Se # True nessun'altra comunicazione bus pu\u00f2 essere eseguita mentre # la lettura \u00e8 in corso. L'impostazione predefinita \u00e8 False. #htu21d_resolution: # La risoluzione della lettura di temperatura e umidit\u00e0. # I valori validi sono: # 'TEMP14_HUM12' -> 14bit per Temp e 12bit per umidit\u00e0 # 'TEMP13_HUM10' -> 13bit per Temp e 10bit per umidit\u00e0 # 'TEMP12_HUM08' -> 12bit per Temp e 08bit per umidit\u00e0 # 'TEMP11_HUM11' -> 11bit per Temp e 11bit per umidit\u00e0 # L'impostazione predefinita \u00e8: \"TEMP11_HUM11\" #htu21d_report_time: # Intervallo in secondi tra le letture. Il valore predefinito \u00e8 30","title":"Sensore HTU21D"},{"location":"Config_Reference.html#sensore-di-temperatura-lm75","text":"Sensori di temperatura (I2C) LM75/LM75A. Questi sensori hanno una gamma di -55~125 C, quindi sono utilizzabili ad es. monitoraggio della temperatura della camera. Possono anche funzionare come semplici controller per ventole/riscaldatori. sensor_type: LM75 #i2c_address: # Il valore predefinito \u00e8 72 (0x48). L'intervallo normale \u00e8 72-79 # (0x48-0x4F) e i 3 bit bassi dell'indirizzo sono configurati tramite # pin sul chip (di solito con ponticelli o cablati). #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni comuni I2C\" per una descrizione # dei parametri di cui sopra. #lm75_report_time: # Intervallo in secondi tra le letture. Il valore predefinito \u00e8 0.8 # con il minimo 0.5.","title":"Sensore di temperatura LM75"},{"location":"Config_Reference.html#sensore-di-temperatura-integrato-nel-microcontrollore","text":"I microcontrollori atsam, atsamd e stm32 contengono un sensore di temperatura interno. \u00c8 possibile utilizzare il sensore \"temperature_mcu\" per monitorare queste temperature. sensor_type: temperature_mcu #sensor_mcu: mcu # Il microcontrollore da cui leggere. L'impostazione predefinita \u00e8 \"mcu\". #sensor_temperature1: #sensor_adc1: # Specificare i due parametri precedenti (una temperatura in gradi # Celsius e un valore ADC come float compreso tra 0,0 e 1,0) per # calibrare la temperatura del microcontrollore. Ci\u00f2 potrebbe # migliorare la precisione della temperatura riportata su alcuni chip. # Un modo tipico per ottenere queste informazioni di calibrazione # consiste nel rimuovere completamente l'alimentazione dalla # stampante per alcune ore (per assicurarsi che sia alla temperatura # ambiente), quindi accenderla e utilizzare il comando QUERY_ADC # per ottenere una misurazione ADC. Utilizzare un altro sensore di # temperatura sulla stampante per trovare la temperatura ambiente # corrispondente. L'impostazione predefinita consiste nell'utilizzare # i dati di calibrazione di fabbrica sul microcontrollore (se applicabile) # o i valori nominali dalle specifiche del microcontrollore. #sensor_temperature2: #sensor_adc2: # Se viene specificato sensor_temperature1/sensor_adc1, \u00e8 anche # possibile specificare i dati di calibrazione sensor_temperature2/sensor_adc2. # Ci\u00f2 potrebbe fornire informazioni calibrate sulla \"curva della # temperatura\". L'impostazione predefinita consiste nell'utilizzare i dati # di calibrazione di fabbrica sul microcontrollore (se applicabile) o i # valori nominali dalle specifiche del microcontrollore.","title":"Sensore di temperatura integrato nel microcontrollore"},{"location":"Config_Reference.html#sensore-di-temperatura-host","text":"Temperatura dalla macchina (es. Raspberry Pi) che esegue il software host. sensor_type: temperature_host #sensor_path: # il percorso del file di sistema della temperatura. L'impostazione # predefinita \u00e8 \"/sys/class/thermal/thermal_zone0/temp\" che \u00e8 il file di # sistema della temperatura su un computer Raspberry Pi.","title":"Sensore di temperatura host"},{"location":"Config_Reference.html#sensore-di-temperatura-ds18b20","text":"DS18B20 \u00e8 un sensore di temperatura digitale a 1 filo (w1). Si noti che questo sensore non \u00e8 destinato all'uso con estrusori e letti riscaldanti, ma piuttosto per il monitoraggio della temperatura ambiente (C). Questi sensori hanno una portata fino a 125 C, quindi sono utilizzabili ad es. monitoraggio della temperatura della camera. Possono anche funzionare come semplici controller per ventole/riscaldatori. I sensori DS18B20 sono supportati solo su \"host mcu\", ad es. il Raspberry Pi. \u00c8 necessario installare il modulo del kernel Linux w1-gpio. sensor_type: DS18B20 serial_no: # Ogni dispositivo a 1 filo ha un numero di serie univoco utilizzato per # identificare il dispositivo, solitamente nel formato 28-031674b175ff. Questo # parametro deve essere fornito. I dispositivi collegati a 1 filo possono essere # elencati utilizzando il seguente comando Linux: ls /sys/bus/w1/devices/ #ds18_report_time: # Intervallo in secondi tra le letture. Il valore predefinito \u00e8 3.0, con un # minimo di 1.0 #sensor_mcu: # Il microcontrollore da cui leggere. Deve essere host_mcu","title":"Sensore di temperatura DS18B20"},{"location":"Config_Reference.html#ventole","text":"","title":"Ventole"},{"location":"Config_Reference.html#fan","text":"Ventola di raffreddamento della stampa. [fan] pin: # Pin di output che controlla la ventola. Questo parametro deve essere fornito. #max_power: 1.0 # La potenza massima (espressa come un valore compreso tra 0.0 e 1.0) a # cui pu\u00f2 essere impostato il pin. Il valore 1.0 consente di impostare il pin # completamente abilitato per periodi prolungati, mentre un valore di 0.5 # consentirebbe di abilitare il pin per non pi\u00f9 della met\u00e0 del tempo. Questa # impostazione pu\u00f2 essere utilizzata per limitare la potenza totale (per # periodi prolungati) della ventola. Se questo valore \u00e8 inferiore a 1.0, le # richieste di velocit\u00e0 della ventola verranno ridimensionate tra zero e # max_power (ad esempio, se max_power \u00e8 0.9 e viene richiesta una # velocit\u00e0 della ventola dell'80%, la potenza della ventola verr\u00e0 impostata # su 72%). L'impostazione predefinita \u00e8 1.0. #shutdown_speed: 0 # La velocit\u00e0 della ventola desiderata (espressa come valore da 0.0 a # 1.0) se il software del microcontrollore entra in uno stato di errore. # Il valore predefinito \u00e8 0. #cycle_time: 0.010 # La quantit\u00e0 di tempo (in secondi) per ogni ciclo di alimentazione PWM # alla ventola. Si consiglia di essere pari o superiore a 10 millisecondi # quando si utilizza il PWM basato su software. # Il valore predefinito \u00e8 0,010 secondi. #hardware_pwm: False # Abilitare questa opzione per utilizzare PWM hardware anzich\u00e9 PWM # software. La maggior parte delle ventole non funziona bene con PWM # hardware, quindi non \u00e8 consigliabile abilitarlo a meno che non vi sia # un requisito elettrico per passare a velocit\u00e0 molto elevate. Quando # si utilizza l'hardware PWM, il tempo di ciclo effettivo \u00e8 vincolato # dall'implementazione e pu\u00f2 essere notevolmente diverso dal tempo # di ciclo richiesto. L'impostazione predefinita \u00e8 False. #kick_start_time: 0.100 # Tempo (in secondi) per far funzionare la ventola a piena velocit\u00e0 # quando la si abilita per la prima volta o la si aumenta di oltre il 50% # (aiuta a far girare la ventola). Il valore predefinito \u00e8 0,100 secondi. #off_below: 0.0 # La velocit\u00e0 minima in input che alimenter\u00e0 la ventola (espressa # come un valore da 0.0 a 1.0). Quando viene richiesta una velocit\u00e0 # inferiore a off_below la ventola verr\u00e0 invece spenta. Questa # impostazione pu\u00f2 essere utilizzata per prevenire lo stallo della # ventola e per garantire che i kick start siano efficaci. # Il valore predefinito \u00e8 0.0. # # Questa impostazione deve essere ricalibrata ogni volta che # max_power viene regolato. Per calibrare questa impostazione, # inizia con off_below impostato su 0.0 e la ventola gira. Abbassare # gradualmente la velocit\u00e0 della ventola per determinare la velocit\u00e0 # di ingresso pi\u00f9 bassa che aziona la ventola in modo affidabile senza # stalli. Impostare off_below al duty cycle corrispondente a questo # valore (ad esempio, 12% -> 0,12) o leggermente superiore. #tachometer_pin: # Pin di ingresso contagiri per il monitoraggio della velocit\u00e0 della # ventola. In genere \u00e8 richiesto un pullup. Questo parametro \u00e8 facoltativo. #tachometer_ppr: 2 # Quando viene specificato tachometer_pin, questo \u00e8 il numero di # impulsi per giro del segnale del tachimetro. Per una ventola BLDC # questo \u00e8 normalmente la met\u00e0 del numero di poli. # L'impostazione predefinita \u00e8 2. #tachometer_poll_interval: 0.0015 # Quando viene specificato tachometer_pin, questo \u00e8 il periodo di polling # del pin del contagiri, in secondi. Il valore predefinito \u00e8 0.0015, che \u00e8 # abbastanza veloce per le ventole al di sotto di 10000 RPM a 2 PPR. Deve # essere inferiore a 30/(tachometer_ppr*rpm), con un certo margine, # dove rpm \u00e8 la velocit\u00e0 massima (in RPM) della ventola. #enable_pin: # Pin opzionale per abilitare l'alimentazione alla ventola. Questo pu\u00f2 # essere utile per le ventole con ingressi PWM dedicati. Alcune di queste # ventole rimangono accese anche allo 0% di ingresso PWM. In tal caso, # il pin PWM pu\u00f2 essere utilizzato normalmente e ad es. un FET commutato # a terra (pin della ventola standard) pu\u00f2 essere utilizzato per controllare # l'alimentazione alla ventola.","title":"[fan]"},{"location":"Config_Reference.html#heater_fan","text":"Ventole di raffreddamento del riscaldatore (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"heater_fan\"). Una \"ventola riscaldatore\" \u00e8 una ventola che verr\u00e0 abilitata ogni volta che il riscaldatore associato \u00e8 attivo. Per impostazione predefinita, un heater_fan ha una velocit\u00e0 di spegnimento pari a max_power. [heater_fan my_nozzle_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # Vedere la sezione \"fan\" per una descrizione dei parametri di cui sopra. #heater: extruder # Nome della sezione di configurazione che definisce il riscaldatore a cui # \u00e8 associato questa ventola. Se qui viene fornito un elenco di nomi di # riscaldatori separati da virgole, la ventola verr\u00e0 abilitata quando uno # qualsiasi dei riscaldatori indicati \u00e8 abilitato. # L'impostazione predefinita \u00e8 \"extruder\". #heater_temp: 50.0 # Una temperatura (in gradi Celsius) sotto la quale il riscaldatore deve # scendere prima che la ventola venga disattivata. # L'impostazione predefinita \u00e8 50 gradi Celsius. #fan_speed: 1.0 # La velocit\u00e0 della ventola (espressa come un valore compreso tra 0.0 e # 1.0) a cui verr\u00e0 impostato la ventola quando viene abilitato il relativo # riscaldatore. L'impostazione predefinita \u00e8 1.0","title":"[heater_fan]"},{"location":"Config_Reference.html#controller_fan","text":"Ventola di raffreddamento del controller (\u00e8 possibile definire un numero qualsiasi di sezioni con il prefisso \"controller_fan\"). Una \"ventola del controller\" \u00e8 una ventola che verr\u00e0 abilitata ogni volta che il riscaldatore associato o il driver stepper associato \u00e8 attivo. La ventola si fermer\u00e0 ogni volta che viene raggiunto un idle_timeout per garantire che non si verifichi alcun surriscaldamento dopo la disattivazione di un componente osservato. [controller_fan my_controller_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # Vedere la sezione \"fan\" per una descrizione dei parametri di cui sopra. #fan_speed: 1.0 # La velocit\u00e0 della ventola (espressa come un valore compreso tra 0.0 e # 1.0) a cui verr\u00e0 impostata la ventola quando \u00e8 attivo un riscaldatore # o un driver passo-passo. L'impostazione predefinita \u00e8 1.0 #idle_timeout: # La quantit\u00e0 di tempo (in secondi) dopo che un driver passo-passo o # un riscaldatore \u00e8 stato attivo per la quale la ventola deve essere tenuta # in funzione. L'impostazione predefinita \u00e8 30 secondi. #idle_speed: # La velocit\u00e0 della ventola (espressa come un valore compreso tra 0.0 # e 1.0) a cui verr\u00e0 impostata la ventola quando era attivo un riscaldatore # o un driver passo-passo e prima che venga raggiunto l'idle_timeout. # L'impostazione predefinita \u00e8 fan_speed. #heater: #stepper: # Nome della sezione di configurazione che definisce il riscaldatore/ # stepper a cui \u00e8 associata questa ventola. Se qui viene fornito un # elenco separato da virgole di nomi di riscaldatori/stepper, la ventola # sar\u00e0 abilitata quando uno qualsiasi dei riscaldatori/stepper indicati # \u00e8 abilitato. Il riscaldatore predefinito \u00e8 \"estrusore\", lo stepper # predefinito sono tutti.","title":"[controller_fan]"},{"location":"Config_Reference.html#temperature_fan","text":"Ventole di raffreddamento attivate dalla temperatura (\u00e8 possibile definire un numero qualsiasi di sezioni con un prefisso \"temperature_fan\"). Una \"ventola di temperatura\" \u00e8 una ventola che verr\u00e0 abilitata ogni volta che il sensore associato \u00e8 al di sopra di una temperatura impostata. Per impostazione predefinita, una ventola_temperatura ha una velocit\u00e0_di_arresto pari a potenza_massima. Per ulteriori informazioni, vedere command reference . [temperature_fan my_temp_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # Vedere la sezione \"fan\" per una descrizione dei parametri di cui sopra. #sensor_type: #sensor_pin: #control: #max_delta: #min_temp: #max_temp: # Vedere la sezione \"extruder\" per una descrizione dei parametri di cui sopra. #pid_Kp: #pid_Ki: #pid_Kd: # Le impostazioni proporzionale (pid_Kp), integrale (pid_Ki) e derivata (pid_Kd) # per il sistema di controllo del feedback PID. Klipper valuta le impostazioni PID # con la seguente formula generale: fan_pwm = max_power - (Kp*e + Ki*integral(e) # - Kd*derivative(e)) / 255 Dove \"e\" \u00e8 \"target_temperature - measure_temperature\" # e \"fan_pwm\" \u00e8 la frequenza della ventola richiesta con 0.0 per spento e 1.0 al # massimo. I parametri pid_Kp, pid_Ki e pid_Kd devono essere forniti quando l# 'algoritmo di controllo PID \u00e8 abilitato. #pid_deriv_time: 2.0 # Un valore di tempo (in secondi) su cui le misurazioni della temperatura verranno # livellate quando si utilizza l'algoritmo di controllo PID. Ci\u00f2 pu\u00f2 ridurre l'impatto # del rumore di misurazione. Il valore predefinito \u00e8 2 secondi. #target_temp: 40.0 # Una temperatura (in Celsius) che sar\u00e0 la temperatura target. # L'impostazione predefinita \u00e8 40 gradi. #max_speed: 1.0 # La velocit\u00e0 della ventola (espressa come un valore compreso tra 0.0 e 1.0) a cui # verr\u00e0 impostata la ventola quando la temperatura del sensore supera il valore # impostato. L'impostazione predefinita \u00e8 1.0. #min_speed: 0.3 # La velocit\u00e0 minima della ventola (espressa come un valore compreso tra 0.0 e # 1.0) alla quale la ventola verr\u00e0 impostata per le ventole con temperatura PID. # Il valore predefinito \u00e8 0.3. #gcode_id: # Se impostata, la temperatura verr\u00e0 riportata nelle query M105 utilizzando l'id # fornito. L'impostazione predefinita \u00e8 di non riportare la temperatura tramite M105.","title":"[temperature_fan]"},{"location":"Config_Reference.html#fan_generic","text":"Ventola a controllo manuale (si pu\u00f2 definire un numero qualsiasi di sezioni con il prefisso \"fan_generic\"). La velocit\u00e0 di una ventola controllata manualmente viene impostata con SET_FAN_SPEED comando gcode . [fan_generic extruder_partfan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: #off_below: #tachometer_pin: #tachometer_ppr: #tachometer_poll_interval: #enable_pin: # Vedere la sezione \"fan\" per una descrizione dei parametri di cui sopra.","title":"[fan_generic]"},{"location":"Config_Reference.html#leds","text":"","title":"LEDs"},{"location":"Config_Reference.html#led","text":"Supporto per LED (e strisce LED) controllati tramite pin PWM del microcontrollore (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"led\"). Per ulteriori informazioni, vedere command reference . [led my_led] #red_pin: #green_pin: #blue_pin: #white_pin: # Il pin che controlla il colore del LED specificato. Deve essere fornito # almeno uno dei parametri sopra indicati. #cycle_time: 0.010 # La quantit\u00e0 di tempo (in secondi) per ciclo PWM. Si consiglia che sia # pari o superiore a 10 millisecondi quando si utilizza il PWM basato # su software. Il valore predefinito \u00e8 0,010 secondi. #hardware_pwm: False # Abilitare questa opzione per utilizzare PWM hardware anzich\u00e9 PWM # software. Quando si utilizza l'hardware PWM, il tempo di ciclo effettivo # \u00e8 vincolato dall'implementazione e pu\u00f2 essere notevolmente diverso # dal tempo di ciclo richiesto. L'impostazione predefinita \u00e8 Falso. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Imposta il colore iniziale del LED. Ciascun valore deve essere # compreso tra 0,0 e 1,0. Il valore predefinito per ogni colore \u00e8 0.","title":"[led]"},{"location":"Config_Reference.html#neopixel","text":"Supporto LED Neopixel (aka WS2812) (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"neopixel\"). Per ulteriori informazioni, vedere riferimento comando . Si noti che l'implementazione di linux mcu non supporta attualmente i neopixel collegati direttamente. L'attuale design che utilizza l'interfaccia del kernel Linux non consente questo scenario perch\u00e9 l'interfaccia GPIO del kernel non \u00e8 sufficientemente veloce da fornire le frequenze di impulso richieste. [neopixel my_neopixel] pin: # Il pin collegato al neopixel. Questo parametro deve essere fornito. #chain_count: # Il numero di chip Neopixel che sono \"collegati a margherita\" al # pin fornito. Il valore predefinito \u00e8 1 (che indica che un solo # Neopixel \u00e8 collegato al pin). #color_order: GRB # Impostare l'ordine dei pixel richiesto dall'hardware del LED # (utilizzando una stringa contenente le lettere R, G, B, W con W # opzionale). In alternativa, questo pu\u00f2 essere un elenco separato # da virgole di pixel, uno per ogni LED nella catena. # L'impostazione predefinita \u00e8 GRB. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Vedere la sezione \"led\" per informazioni su questi parametri.","title":"[neopixel]"},{"location":"Config_Reference.html#dotstar","text":"Supporto LED Dotstar (conosciuti anche come APA102) (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"dotstar\"). Per ulteriori informazioni, vedere command reference . [dotstar my_dotstar] data_pin: # Il pin connesso alla data line del dotstar. Questo parametro # deve essere fornito. clock_pin: # Il pin connesso alla clock line del dotstar. Questo parametro # deve essere fornito. #chain_count: # Vedere la sezione \"neopixel\" per informazioni su questo parametro. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 # Vedere la sezione \"led\" per informazioni su questo parametro.","title":"[dotstar]"},{"location":"Config_Reference.html#pca9533","text":"PCA9533 Supporto LED. Il PCA9533 viene utilizzato sulla scheda mightyboard. [pca9533 my_pca9533] #i2c_address: 98 # L'indirizzo i2c utilizzato dal chip sul bus i2c. Utilizzare 98 per # PCA9533/1, 99 per PCA9533/2. Il valore predefinito \u00e8 98. #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni comuni I2C\" per una # descrizione dei parametri di cui sopra. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Vedere la sezione \"led\" per informazioni su questi parametri.","title":"[pca9533]"},{"location":"Config_Reference.html#pca9632","text":"Supporto LED PCA9632. Il PCA9632 viene utilizzato su FlashForge Dreamer. [pca9632 my_pca9632] #i2c_address: 98 # L'indirizzo i2c utilizzato dal chip sul bus i2c. Pu\u00f2 essere 96, # 97, 98 o 99. Il valore predefinito \u00e8 98. #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni I2C comuni\" per una # descrizione dei parametri di cui sopra. #scl_pin: #sda_pin: # In alternativa, se il pca9632 non \u00e8 collegato a un bus I2C # hardware, \u00e8 possibile specificare i pin \"clock\" (pin scl) e \"data\" # (pin sda). L'impostazione predefinita prevede l'utilizzo # dell'hardware I2C. #color_order: RGBW # Impostare l'ordine dei pixel del LED (usando una stringa # contenente le lettere R, G, B, W). L'impostazione predefinita # \u00e8 RGBW. #initial_RED: 0.0 #initial_GREEN: 0.0 #initial_BLUE: 0.0 #initial_WHITE: 0.0 # Vedere la sezione \"led\" per informazioni su questi parametri.","title":"[pca9632]"},{"location":"Config_Reference.html#servocomandi-aggiuntivi-pulsanti-e-altri-pin","text":"","title":"Servocomandi aggiuntivi, pulsanti e altri pin"},{"location":"Config_Reference.html#servo","text":"Servo (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"servo\"). I servo possono essere controllati usando SET_SERVO comando g-code . Ad esempio: SET_SERVO SERVO=my_servo ANGLE=180 [servo my_servo] pin: # Pin di uscita PWM che controlla il servo. Questo parametro deve # essere fornito. #maximum_servo_angle: 180 # L'angolo massimo (in gradi) a cui questo servo pu\u00f2 essere impostato. # L'impostazione predefinita \u00e8 180 gradi. #minimum_pulse_width: 0.001 # La durata minima dell'impulso (in secondi). Questo dovrebbe # corrispondere a un angolo di 0 gradi. Il valore predefinito \u00e8 0.001 secondi. #maximum_pulse_width: 0.002 # La durata massima dell'impulso (in secondi). Questo dovrebbe # corrispondere a un angolo di maximum_servo_angle. Il valore # predefinito \u00e8 0.002 secondi. #initial_angle: # Angolo iniziale (in gradi) su cui impostare il servo. L'impostazione # predefinita \u00e8 di non inviare alcun segnale all'avvio. #initial_pulse_width: # Durata iniziale dell'impulso (in secondi) su cui impostare il servo. # (Questo \u00e8 valido solo se initial_angle non \u00e8 impostato.) # L'impostazione predefinita \u00e8 di non inviare alcun segnale all'avvio.","title":"[servo]"},{"location":"Config_Reference.html#gcode_button","text":"Esegui gcode quando un pulsante viene premuto o rilasciato (o quando un pin cambia stato). Puoi controllare lo stato del pulsante usando QUERY_BUTTON button=my_gcode_button . [gcode_button my_gcode_button] pin: # Il pin su cui \u00e8 collegato il pulsante. Questo parametro deve essere fornito. #analog_range: # Due resistenze separate da virgole (in Ohm) che specificano l'intervallo # di resistenza minimo e massimo per il pulsante. Se viene fornito # analog_range, il pin deve essere un pin con capacit\u00e0 analogica. # L'impostazione predefinita \u00e8 utilizzare digital gpio per il pulsante. #analog_pullup_resistor: # La resistenza di pullup (in Ohm) quando \u00e8 specificato analog_range. # Il valore predefinito \u00e8 4700 ohm. #press_gcode: # Un elenco di comandi G-Code da eseguire quando si preme il pulsante. # I modelli G-Code sono supportati. Questo parametro deve essere fornito. #release_gcode: # Un elenco di comandi G-Code da eseguire quando il pulsante viene # rilasciato. I modelli G-Code sono supportati. L'impostazione predefinita # \u00e8 di non eseguire alcun comando al rilascio di un pulsante.","title":"[gcode_button]"},{"location":"Config_Reference.html#output_pin","text":"Pin di uscita configurabili in fase di run-time (\u00e8 possibile definire un numero qualsiasi di sezioni con un prefisso \"output_pin\"). I pin configurati qui verranno impostati come pin di output e sar\u00e0 possibile modificarli in fase di esecuzione utilizzando il comando esteso \"SET_PIN PIN=my_pin VALUE=.1\" comandi g-code . [output_pin my_pin] pin: # Il pin da configurare come output. # Questo parametro deve essere fornito. #pwm: False # Impostare se il pin di uscita deve essere in grado di modulare la # larghezza di impulso PWM. Se questo \u00e8 True, i campi del valore # dovrebbero essere compresi tra 0 e 1; se \u00e8 False i campi del valore # devono essere 0 o 1. Il valore predefinito \u00e8 False. #static_value: # Se \u00e8 valorizzato, il pin viene assegnato a questo valore all'avvio e # il pin non pu\u00f2 essere modificato durante il runtime. Un pin statico # utilizza una ram leggermente inferiore nel microcontrollore. # L'impostazione predefinita prevede l'utilizzo della configurazione # di runtime dei pin. #value: # Il valore su cui impostare inizialmente il pin durante la # configurazione dell'MCU. Il valore predefinito \u00e8 0 (per bassa tensione). #shutdown_value: # Il valore su cui impostare il pin su un evento di arresto dell'MCU. # Il valore predefinito \u00e8 0 (per bassa tensione). #maximum_mcu_duration: # La durata massima di un valore di non spegnimento pu\u00f2 essere # determinato dall'MCU senza un riconoscimento da parte dell'host. # Se l'host non riesce a tenere il passo con un aggiornamento, l'MCU # si spegner\u00e0 e imposter\u00e0 tutti i pin sui rispettivi valori di spegnimento. # Default: 0 (disabilitato) I valori abituali sono circa 5 secondi. #cycle_time: 0.100 # La quantit\u00e0 di tempo (in secondi) per ciclo PWM. Si consiglia di # essere pari o superiore a 10 millisecondi quando si utilizza il PWM # basato su software. Il valore predefinito \u00e8 0.100 secondi per i pin pwm. #hardware_pwm: False # Abilitare questa opzione per utilizzare PWM hardware anzich\u00e9 PWM # software. Quando si utilizza l'hardware PWM, il tempo di ciclo effettivo # \u00e8 vincolato dall'implementazione e pu\u00f2 essere notevolmente diverso # dal tempo di ciclo richiesto. L'impostazione predefinita \u00e8 Falso. #scale: # Questo parametro pu\u00f2 essere utilizzato per modificare il modo in cui # i parametri 'value' e 'shutdown_value' vengono interpretati per i pin # pwm. Se fornito, il parametro 'value' deve essere compreso tra 0.0 e # 'scale'. Questo pu\u00f2 essere utile quando si configura un pin PWM che # controlla un riferimento di tensione stepper. La \"scala\" pu\u00f2 essere # impostata sull'amperaggio dello stepper equivalente se il PWM fosse # completamente abilitato, quindi il parametro \"value\" pu\u00f2 essere # specificato utilizzando l'amperaggio desiderato per lo stepper. # L'impostazione predefinita \u00e8 di non ridimensionare il parametro 'value'.","title":"[output_pin]"},{"location":"Config_Reference.html#static_digital_output","text":"Pin di uscita digitali configurati staticamente (\u00e8 possibile definire un numero qualsiasi di sezioni con un prefisso \"static_digital_output\"). I pin configurati qui verranno impostati come uscita GPIO durante la configurazione dell'MCU. Non possono essere modificati in fase di esecuzione. [static_digital_output my_output_pins] pins: # Un elenco separato da virgole di pin da impostare come pin di # output GPIO. Il pin verr\u00e0 impostato su un livello alto a meno che il # nome del pin non sia preceduto da \"!\". Questo parametro deve # essere fornito.","title":"[static_digital_output]"},{"location":"Config_Reference.html#multi_pin","text":"Uscite a pin multipli (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"multi_pin\"). Un output multi_pin crea un alias pin interno che pu\u00f2 modificare pi\u00f9 pin di output ogni volta che viene impostato il pin alias. Ad esempio, si potrebbe definire un oggetto \"[multi_pin my_fan]\" contenente due pin e quindi impostare \"pin=multi_pin:my_fan\" nella sezione \"[fan]\" - ad ogni cambio di ventola entrambi i pin di output verrebbero aggiornati. Questi alias non possono essere utilizzati con i pin del motore passo-passo. [multi_pin my_multi_pin] pins: # Un elenco separato da virgole di pin associati a questo alias. # Questo parametro deve essere fornito.","title":"[multi_pin]"},{"location":"Config_Reference.html#configurazione-del-driver-tmc-per-stepper","text":"Configurazione dei driver per motori passo-passo Trinamic in modalit\u00e0 UART/SPI. Ulteriori informazioni si trovano nella TMC Drivers guide e nel command reference .","title":"Configurazione del driver TMC per stepper"},{"location":"Config_Reference.html#tmc2130","text":"Configurare un driver per motore passo-passo TMC2130 tramite bus SPI. Per utilizzare questa funzione, definire una sezione di configurazione con un prefisso \"tmc2130\" seguito dal nome della sezione di configurazione dello stepper corrispondente (ad esempio, \"[tmc2130 stepper_x]\"). [tmc2130 stepper_x] cs_pin: # Il pin collegato al pin di selezione del chip TMC2130. # Questo pin verr\u00e0 impostato su basso all'inizio dei messaggi SPI e # portato su alto al termine del messaggio. Questo parametro deve # essere fornito. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Vedere la sezione \"impostazioni comuni SPIi\" per una descrizione # dei parametri di cui sopra. #chain_position: #chain_length: # Questi parametri configurano una daisy chain SPI. I due parametri # definiscono la posizione dello stepper nella catena e la lunghezza totale # della catena. La posizione 1 corrisponde allo stepper che si collega al # segnale MOSI. L'impostazione predefinita \u00e8 di non utilizzare un # collegamento a margherita SPI. #interpolate: True # Se True, abilita l'interpolazione del passo (il driver eseguir\u00e0 un passo # intero attraverso 256 micropassi). Questa interpolazione introduce una # piccola deviazione posizionale sistemica - vedi TMC_Drivers.md per i # dettagli. L'impostazione predefinita \u00e8 True. run_current: # La quantit\u00e0 di corrente (in ampere RMS) con cui configurare il driver e utilizzare durante il movimento passo-passo. Questo parametro deve essere fornito. #hold_current: # La quantit\u00e0 di corrente (in ampere RMS) con cui configurare il driver da # utilizzare quando lo stepper non \u00e8 in movimento. L'impostazione di # hold_current non \u00e8 consigliata (consultare TMC_Drivers.md per i # dettagli). L'impostazione predefinita \u00e8 di non ridurre la corrente. #sense_resistor: 0.110 # La resistenza (in ohm) del resistore di rilevamento del motore. # Il valore predefinito \u00e8 0,110 ohm. #stealthchop_threshold: 0 # La velocit\u00e0 (in mm/s) su cui impostare la soglia \"stealthChop\". Se # impostata, la modalit\u00e0 \"stealthChop\" sar\u00e0 abilitata se la velocit\u00e0 del # motore passo-passo \u00e8 inferiore a questo valore. Il valore predefinito # \u00e8 0, che disabilita la modalit\u00e0 \"stealthChop\". #driver_IHOLDDELAY: 8 #driver_TPOWERDOWN: 0 #driver_TBL: 1 #driver_TOFF: 4 #driver_HEND: 7 #driver_HSTRT: 0 #driver_PWM_AUTOSCALE: True #driver_PWM_FREQ: 1 #driver_PWM_GRAD: 4 #driver_PWM_AMPL: 128 #driver_SGT: 0 # Impostare il registro dato durante la configurazione del chip # TMC2130. Pu\u00f2 essere utilizzato per impostare parametri motore # personalizzati. I valori predefiniti per ciascun parametro sono # accanto al nome del parametro nell'elenco precedente. #diag0_pin: #diag1_pin: # Il pin del microcontrollore collegato a una delle linee DIAG del # chip TMC2130. \u00c8 necessario specificare un solo pin diag. Il pin \u00e8 # \"attivo basso\" ed \u00e8 quindi normalmente preceduto da \"^!\". # L'impostazione di questo crea un pin virtuale # \"tmc2130_stepper_x:virtual_endstop\" che pu\u00f2 essere utilizzato # come endstop_pin dello stepper. In questo modo si abilita # l'\"homing sensorless\". (Assicurarsi di impostare anche driver_SGT # su un valore di sensibilit\u00e0 appropriato.) L'impostazione predefinita # \u00e8 di non abilitare l'homing sensorless.","title":"[tmc2130]"},{"location":"Config_Reference.html#tmc2208","text":"Configurare un driver per motore passo-passo TMC2208 (o TMC2224) tramite UART a filo singolo. Per utilizzare questa funzione, definire una sezione di configurazione con un prefisso \"tmc2208\" seguito dal nome della sezione di configurazione dello stepper corrispondente (ad esempio, \"[tmc2208 stepper_x]\"). [tmc2208 stepper_x] uart_pin: # Il pin collegato al PDN_UART del TMC2208 . # Questo parametro deve essere fornito. #tx_pin: # Se si utilizzano linee di ricezione e trasmissione separate per # comunicare con il driver, impostare uart_pin sul pin di ricezione e # tx_pin sul pin di trasmissione. L'impostazione predefinita \u00e8 usare uart_pin sia per la lettura che per la scrittura. #select_pins: # Un elenco separato da virgole di pin da impostare prima di accedere # all'UART tmc2208. Questo pu\u00f2 essere utile per configurare un mux # analogico per la comunicazione UART. L'impostazione predefinita \u00e8 # di non configurare alcun pin. #interpolate: True # Se True, abilita l'interpolazione del passo (il driver eseguir\u00e0 un passo # intero con 256 micropassi). Questa interpolazione # introduce una piccola deviazione posizionale sistemica - vedere # TMC_Drivers.md per i dettagli. L'impostazione predefinita \u00e8 True. run_current: # La quantit\u00e0 di corrente (in ampere RMS) per configurare il driver da # utilizzare durante il movimento passo-passo. # Questo parametro deve essere fornito. #hold_current: # La quantit\u00e0 di corrente (in ampere RMS) per configurare il driver da # utilizzare quando lo stepper non \u00e8 in movimento. L'impostazione di # hold_current non \u00e8 consigliata (consultare TMC_Drivers.md per i # dettagli). L'impostazione predefinita \u00e8 di non ridurre la corrente. #sense_resistor: 0.110 # La resistenza (in ohm) del resistore di rilevamento del motore. # Il valore predefinito \u00e8 0,110 ohm. #stealthchop_threshold: 0 # La velocit\u00e0 (in mm/s) su cui impostare la soglia \"stealthChop\". Se # impostata, la modalit\u00e0 \"stealthChop\" sar\u00e0 abilitata se la velocit\u00e0 del # motore passo-passo \u00e8 inferiore a questo valore. Il valore predefinito # \u00e8 0, che disabilita la modalit\u00e0 \"stealthChop\". #driver_IHOLDDELAY: 8 #driver_TPOWERDOWN: 20 #driver_TBL: 2 #driver_TOFF: 3 #driver_HEND: 0 #driver_HSTRT: 5 #driver_PWM_AUTOGRAD: True #driver_PWM_AUTOSCALE: True #driver_PWM_LIM: 12 #driver_PWM_REG: 8 #driver_PWM_FREQ: 1 #driver_PWM_GRAD: 14 #driver_PWM_OFS: 36 # Impostare il registro dato durante la configurazione del chip TMC2208. # Pu\u00f2 essere utilizzato per impostare parametri motore personalizzati. # I valori predefiniti per ciascun parametro sono accanto al nome del # parametro nell'elenco precedente.","title":"[tmc2208]"},{"location":"Config_Reference.html#tmc2209","text":"Configurare un driver per motore passo-passo TMC2209 tramite UART a filo singolo. Per utilizzare questa funzione, definire una sezione di configurazione con un prefisso \"tmc2209\" seguito dal nome della sezione di configurazione dello stepper corrispondente (ad esempio, \"[tmc2209 stepper_x]\"). [tmc2209 stepper_x] uart_pin: #tx_pin: #select_pins: #interpolate: True run_current: #hold_current: #sense_resistor: 0.110 #stealthchop_threshold: 0 # Vedere la sezione \"tmc2208\" per la definizione di questi parametri. #uart_address: # L'indirizzo del chip TMC2209 per i messaggi UART (un numero intero # compreso tra 0 e 3). Viene in genere utilizzato quando pi\u00f9 chip TMC2209 # sono collegati allo stesso pin UART. Il valore predefinito \u00e8 zero #driver_IHOLDDELAY: 8 #driver_TPOWERDOWN: 20 #driver_TBL: 2 #driver_TOFF: 3 #driver_HEND: 0 #driver_HSTRT: 5 #driver_PWM_AUTOGRAD: True #driver_PWM_AUTOSCALE: True #driver_PWM_LIM: 12 #driver_PWM_REG: 8 #driver_PWM_FREQ: 1 #driver_PWM_GRAD: 14 #driver_PWM_OFS: 36 #driver_SGTHRS: 0 # Impostare il registro dato durante la configurazione del chip TMC2209. # Pu\u00f2 essere utilizzato per impostare parametri motore personalizzati. I # valori predefiniti per ciascun parametro sono accanto al nome del # parametro nell'elenco precedente. #diag_pin: # Il pin del microcontrollore collegato alla linea DIAG del chip TMC2209. # Il pin \u00e8 normalmente preceduto da \"^\" per abilitare un pullup. # L'impostazione di questo crea un pin virtuale \"tmc2209_stepper_x:virtual_endstop\" # che pu\u00f2 essere utilizzato come endstop_pin dello stepper. In questo modo # si abilita l'\"homing sensorless\". (Assicurarsi di impostare anche driver_SGTHRS # su un valore di sensibilit\u00e0 appropriato.) L'impostazione predefinita \u00e8 di non # abilitare l'homing sensorless.","title":"[tmc2209]"},{"location":"Config_Reference.html#tmc2660","text":"Configurare un driver per motore passo-passo TMC2660 tramite bus SPI. Per utilizzare questa funzione, definire una sezione di configurazione con un prefisso tmc2660 seguito dal nome della sezione di configurazione dello stepper corrispondente (ad esempio, \"[tmc2660 stepper_x]\"). [tmc2660 stepper_x] cs_pin: # Il pin corrispondente al pin di selezione del chip TMC2660. Questo pin # verr\u00e0 impostato su basso all'inizio dei messaggi SPI e impostato su # alto al termine del trasferimento del messaggio. Questo parametro # deve essere fornito. #spi_speed: 4000000 # Frequenza bus SPI utilizzata per comunicare con il driver # passo-passo TMC2660. Il valore predefinito \u00e8 4000000. #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Vedere la sezione \"impostazioni comuni SPI\" per una descrizione # dei parametri di cui sopra. #interpolate: True # Se true, abilita l'interpolazione del passo (il driver eseguir\u00e0 un passo # interno a una velocit\u00e0 di 256 micropassi). Funziona solo se microsteps # \u00e8 impostato su 16. L'interpolazione introduce una piccola deviazione # posizionale sistemica - vedere TMC_Drivers.md per i dettagli. # L'impostazione predefinita \u00e8 Vero. run_current: # La quantit\u00e0 di corrente (in ampere RMS) utilizzata dal driver durante # il movimento passo-passo. Questo parametro deve essere fornito. #sense_resistor: # La resistenza (in ohm) del resistore di rilevamento del motore. # Questo parametro deve essere fornito. #idle_current_percent: 100 # La percentuale di run_current a cui il driver stepper sar\u00e0 ridotto allo # scadere del timeout di inattivit\u00e0 (\u00e8 necessario impostare il timeout # utilizzando una sezione di configurazione [idle_timeout]). La corrente # verr\u00e0 nuovamente aumentata una volta che lo stepper dovr\u00e0 muoversi # di nuovo. Assicurati di impostarlo su un valore sufficientemente alto in # modo che gli stepper non perdano la loro posizione. C'\u00e8 anche un piccolo # ritardo fino a quando la corrente non viene nuovamente aumentata, # quindi tienine conto quando comandi mosse veloci mentre lo stepper \u00e8 # al minimo. Il valore predefinito \u00e8 100 (nessuna riduzione). #driver_TBL: 2 #driver_RNDTF: 0 #driver_HDEC: 0 #driver_CHM: 0 #driver_HEND: 3 #driver_HSTRT: 3 #driver_TOFF: 4 #driver_SEIMIN: 0 #driver_SEDN: 0 #driver_SEMAX: 0 #driver_SEUP: 0 #driver_SEMIN: 0 #driver_SFILT: 0 #driver_SGT: 0 #driver_SLPH: 0 #driver_SLPL: 0 #driver_DISS2G: 0 #driver_TS2G: 3 # Imposta il parametro indicato durante la configurazione del chip TMC2660. # Questo pu\u00f2 essere utilizzato per impostare parametri del driver personalizzati. # Le impostazioni predefinite per ogni parametro sono accanto al nome del # parametro nell'elenco sopra. Vedere la scheda tecnica del TMC2660 su cosa # fa ogni parametro e quali sono le restrizioni sulle combinazioni di parametri. # Prestare particolare attenzione al registro CHOPCONF, dove l'impostazione # di CHM su zero o uno comporter\u00e0 modifiche al layout (il primo bit di HDEC) # viene interpretato come MSB di HSTRT in questo caso).","title":"[tmc2660]"},{"location":"Config_Reference.html#tmc5160","text":"Configurare un driver per motore passo-passo TMC5160 tramite bus SPI. Per utilizzare questa funzione, definire una sezione di configurazione con un prefisso \"tmc5160\" seguito dal nome della sezione di configurazione dello stepper corrispondente (ad esempio, \"[tmc5160 stepper_x]\"). [tmc5160 stepper_x] cs_pin: # Il pin corrispondente al pin di selezione del chip TMC5160. Questo pin verr\u00e0 impostato su basso all'inizio dei messaggi SPI e portato su alto al termine del messaggio. Questo parametro deve essere fornito. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Vedere la sezione \"impostazioni SPI comuni\" per una # descrizione dei parametri di cui sopra. #chain_position: #chain_length: # Questi parametri configurano una daisy chain SPI. I due # parametri definiscono la posizione dello stepper nella catena # e la lunghezza totale della catena. La posizione 1 corrisponde # allo stepper che si collega al segnale MOSI. L'impostazione # predefinita \u00e8 di non utilizzare un collegamento a margherita SPI. #interpolate: True # Se true, abilita l'interpolazione del passo (il driver eseguir\u00e0 un # passo interno con 256 micropassi). # L'impostazione predefinita \u00e8 True. run_current: # La quantit\u00e0 di corrente (in ampere RMS) per configurare il driver # da utilizzare durante il movimento. # Questo parametro deve essere fornito. #hold_current: # La quantit\u00e0 di corrente (in ampere RMS) per configurare il driver # da utilizzare quando lo stepper non \u00e8 in movimento. L'impostazione # di hold_current non \u00e8 consigliata (consultare TMC_Drivers.md per i # dettagli). L'impostazione predefinita \u00e8 di non ridurre la corrente. #sense_resistor: 0.075 # La resistenza (in ohm) del resistore di rilevamento del motore. # Il valore predefinito \u00e8 0,075 ohm. #stealthchop_threshold: 0 # La velocit\u00e0 (in mm/s) su cui impostare la soglia \"stealthChop\". Se # impostata, la modalit\u00e0 \"stealthChop\" sar\u00e0 abilitata se la velocit\u00e0 del # motore passo-passo \u00e8 inferiore a questo valore. Il valore predefinito # \u00e8 0, che disabilita la modalit\u00e0 \"stealthChop\". #driver_IHOLDDELAY: 6 #driver_TPOWERDOWN: 10 #driver_TBL: 2 #driver_TOFF: 3 #driver_HEND: 2 #driver_HSTRT: 5 #driver_FD3: 0 #driver_TPFD: 4 #driver_CHM: 0 #driver_VHIGHFS: 0 #driver_VHIGHCHM: 0 #driver_DISS2G: 0 #driver_DISS2VS: 0 #driver_PWM_AUTOSCALE: True #driver_PWM_AUTOGRAD: True #driver_PWM_FREQ: 0 #driver_FREEWHEEL: 0 #driver_PWM_GRAD: 0 #driver_PWM_OFS: 30 #driver_PWM_REG: 4 #driver_PWM_LIM: 12 #driver_SGT: 0 #driver_SEMIN: 0 #driver_SEUP: 0 #driver_SEMAX: 0 #driver_SEDN: 0 #driver_SEIMIN: 0 #driver_SFILT: 0 # Impostare il registro dato durante la configurazione del chip # TMC5160. Pu\u00f2 essere utilizzato per impostare parametri motore # personalizzati. I valori predefiniti per ciascun parametro sono # accanto al nome del parametro nell'elenco precedente. #diag0_pin: #diag1_pin: # Il pin del microcontrollore collegato a una delle linee DIAG del chip # TMC5160. \u00c8 necessario specificare un solo pin diag. Il pin \u00e8 \"attivo # basso\" ed \u00e8 quindi normalmente preceduto da \"^!\". L'impostazione # di questo crea un pin virtuale \"tmc5160_stepper_x:virtual_endstop\" # che pu\u00f2 essere utilizzato come endstop_pin dello stepper. In questo # modo si abilita l'\"homing sensorless\". (Assicurarsi di impostare anche # driver_SGT su un valore di sensibilit\u00e0 appropriato.) L'impostazione # predefinita \u00e8 di non abilitare l'homing sensorless.","title":"[tmc5160]"},{"location":"Config_Reference.html#configurazione-della-corrente-del-motore-passo-passo-a-run-time","text":"","title":"Configurazione della corrente del motore passo-passo a run-time"},{"location":"Config_Reference.html#ad5206","text":"Digipot AD5206 configurati staticamente collegati tramite bus SPI (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"ad5206\"). [ad5206 my_digipot] enable_pin: # The pin corresponding to the AD5206 chip select line. This pin # will be set to low at the start of SPI messages and raised to high # after the message completes. This parameter must be provided. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # See the \"common SPI settings\" section for a description of the # above parameters. #channel_1: #channel_2: #channel_3: #channel_4: #channel_5: #channel_6: # The value to statically set the given AD5206 channel to. This is # typically set to a number between 0.0 and 1.0 with 1.0 being the # highest resistance and 0.0 being the lowest resistance. However, # the range may be changed with the 'scale' parameter (see below). # If a channel is not specified then it is left unconfigured. #scale: # This parameter can be used to alter how the 'channel_x' parameters # are interpreted. If provided, then the 'channel_x' parameters # should be between 0.0 and 'scale'. This may be useful when the # AD5206 is used to set stepper voltage references. The 'scale' can # be set to the equivalent stepper amperage if the AD5206 were at # its highest resistance, and then the 'channel_x' parameters can be # specified using the desired amperage value for the stepper. The # default is to not scale the 'channel_x' parameters.","title":"[ad5206]"},{"location":"Config_Reference.html#mcp4451","text":"Digipot MCP4451 configurato staticamente collegato tramite bus I2C (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"mcp4451\"). [mcp4451 my_digipot] i2c_address: # L'indirizzo i2c utilizzato dal chip sul bus i2c. Questo parametro deve # essere fornito. #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni I2C comuni\" per una descrizione # dei parametri di cui sopra. #wiper_0: #wiper_1: #wiper_2: #wiper_3: # Il valore su cui impostare staticamente il \"wiper\" MCP4451 # specificato. Questo \u00e8 in genere impostato su un numero compreso # tra 0,0 e 1,0 con 1,0 come resistenza pi\u00f9 alta e 0,0 come resistenza # pi\u00f9 bassa. Tuttavia, l'intervallo pu\u00f2 essere modificato con il parametro # 'scale' (vedi sotto). Se non viene specificato un wiper, non viene # configurato. #scale: # Questo parametro pu\u00f2 essere utilizzato per modificare il modo in # cui vengono interpretati i parametri 'wiper_x'. Se forniti, i parametri # 'wiper_x' dovrebbero essere compresi tra 0.0 e 'scale'. Questo pu\u00f2 # essere utile quando l'MCP4451 viene utilizzato per impostare i # riferimenti di tensione stepper. La \"scala\" pu\u00f2 essere impostata # sull'amperaggio stepper equivalente se l'MCP4451 fosse alla sua # massima resistenza, quindi i parametri \"wiper_x\" possono essere # specificati utilizzando il valore di amperaggio desiderato per lo # stepper. L'impostazione predefinita \u00e8 di non ridimensionare i # parametri 'wiper_x'.","title":"[mcp4451]"},{"location":"Config_Reference.html#mcp4728","text":"Convertitore digitale-analogico MCP4728 in configurazione statica collegato tramite bus I2C (\u00e8 possibile definire un numero qualsiasi di sezioni con prefisso \"mcp4728\"). [mcp4728 my_dac] #i2c_address: 96 # L'indirizzo i2c utilizzato dal chip sul bus i2c. Il valore predefinito # \u00e8 96. #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni I2C comuni\" per una descrizione # dei parametri di cui sopra. #channel_a: #channel_b: #channel_c: #channel_d: # Il valore su cui impostare staticamente il canale MCP4728 # specificato. Questo \u00e8 in genere impostato su un numero compreso # tra 0,0 e 1,0 con 1,0 come tensione pi\u00f9 alta (2,048 V) e 0,0 come # tensione pi\u00f9 bassa. Tuttavia, l'intervallo pu\u00f2 essere modificato con # il parametro 'scale' (vedi sotto). Se un canale non \u00e8 specificato, # non viene configurato. #scale: # Questo parametro pu\u00f2 essere utilizzato per modificare il modo # in cui vengono interpretati i parametri 'channel_x'. Se forniti, i # parametri 'channel_x' dovrebbero essere compresi tra 0.0 e 'scale'. # Questo pu\u00f2 essere utile quando l'MCP4728 viene utilizzato per # impostare i riferimenti di tensione stepper. La \"scala\" pu\u00f2 essere # impostata sull'amperaggio stepper equivalente se l'MCP4728 # fosse alla sua tensione pi\u00f9 alta (2,048 V), e quindi i parametri # \"channel_x\" possono essere specificati utilizzando il valore di # amperaggio desiderato per lo stepper. L'impostazione # predefinita \u00e8 di non ridimensionare i parametri 'channel_x'.","title":"[mcp4728]"},{"location":"Config_Reference.html#mcp4018","text":"Digipot MCP4018 configurato staticamente collegato tramite due pin gpio \"bit banging\" (si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"mcp4018\"). [mcp4018 my_digipot] scl_pin: # Il pin \"clock\" SCL. Questo parametro deve essere fornito. sda_pin: # Il pin \"dati\" SDA. Questo parametro deve essere fornito. wiper: # Il valore su cui impostare staticamente il \"Wiper\" MCP4018 # specificato. Questo \u00e8 in genere impostato su un numero compreso # tra 0,0 e 1,0 con 1,0 come resistenza pi\u00f9 alta e 0,0 come resistenza # pi\u00f9 bassa. Tuttavia, l'intervallo pu\u00f2 essere modificato con il # parametro 'scale' (vedi sotto). Questo parametro deve essere fornito. #scale: # Questo parametro pu\u00f2 essere utilizzato per modificare il modo in # cui viene interpretato il parametro 'wiper'. Se fornito, il parametro # 'wiper' dovrebbe essere compreso tra 0.0 e 'scale'. Questo pu\u00f2 essere # utile quando l'MCP4018 viene utilizzato per impostare i riferimenti di # tensione stepper. La \"scala\" pu\u00f2 essere impostata sull'amperaggio # stepper equivalente se l'MCP4018 \u00e8 alla sua massima resistenza, # quindi \u00e8 possibile specificare il parametro \"wiper\" utilizzando il # valore di amperaggio desiderato per lo stepper. L'impostazione # predefinita \u00e8 di non ridimensionare il parametro 'wiper'.","title":"[mcp4018]"},{"location":"Config_Reference.html#supporto-display","text":"","title":"Supporto display"},{"location":"Config_Reference.html#display","text":"Supporto per un display collegato al microcontrollore. [display] lcd_type: # The type of LCD chip in use. This may be \"hd44780\", \"hd44780_spi\", # \"st7920\", \"emulated_st7920\", \"uc1701\", \"ssd1306\", or \"sh1106\". # See the display sections below for information on each type and # additional parameters they provide. This parameter must be # provided. #display_group: # The name of the display_data group to show on the display. This # controls the content of the screen (see the \"display_data\" section # for more information). The default is _default_20x4 for hd44780 # displays and _default_16x4 for other displays. #menu_timeout: # Timeout for menu. Being inactive this amount of seconds will # trigger menu exit or return to root menu when having autorun # enabled. The default is 0 seconds (disabled) #menu_root: # Name of the main menu section to show when clicking the encoder # on the home screen. The defaults is __main, and this shows the # the default menus as defined in klippy/extras/display/menu.cfg #menu_reverse_navigation: # When enabled it will reverse up and down directions for list # navigation. The default is False. This parameter is optional. #encoder_pins: # The pins connected to encoder. 2 pins must be provided when using # encoder. This parameter must be provided when using menu. #encoder_steps_per_detent: # How many steps the encoder emits per detent (\"click\"). If the # encoder takes two detents to move between entries or moves two # entries from one detent, try changing this. Allowed values are 2 # (half-stepping) or 4 (full-stepping). The default is 4. #click_pin: # The pin connected to 'enter' button or encoder 'click'. This # parameter must be provided when using menu. The presence of an # 'analog_range_click_pin' config parameter turns this parameter # from digital to analog. #back_pin: # The pin connected to 'back' button. This parameter is optional, # menu can be used without it. The presence of an # 'analog_range_back_pin' config parameter turns this parameter from # digital to analog. #up_pin: # The pin connected to 'up' button. This parameter must be provided # when using menu without encoder. The presence of an # 'analog_range_up_pin' config parameter turns this parameter from # digital to analog. #down_pin: # The pin connected to 'down' button. This parameter must be # provided when using menu without encoder. The presence of an # 'analog_range_down_pin' config parameter turns this parameter from # digital to analog. #kill_pin: # The pin connected to 'kill' button. This button will call # emergency stop. The presence of an 'analog_range_kill_pin' config # parameter turns this parameter from digital to analog. #analog_pullup_resistor: 4700 # The resistance (in ohms) of the pullup attached to the analog # button. The default is 4700 ohms. #analog_range_click_pin: # The resistance range for a 'enter' button. Range minimum and # maximum comma-separated values must be provided when using analog # button. #analog_range_back_pin: # The resistance range for a 'back' button. Range minimum and # maximum comma-separated values must be provided when using analog # button. #analog_range_up_pin: # The resistance range for a 'up' button. Range minimum and maximum # comma-separated values must be provided when using analog button. #analog_range_down_pin: # The resistance range for a 'down' button. Range minimum and # maximum comma-separated values must be provided when using analog # button. #analog_range_kill_pin: # The resistance range for a 'kill' button. Range minimum and # maximum comma-separated values must be provided when using analog # button.","title":"[display]"},{"location":"Config_Reference.html#display-hd44780","text":"Informazioni sulla configurazione dei display hd44780 (utilizzati nei display di tipo \"RepRapDiscount 2004 Smart Controller\"). [display] lcd_type: hd44780 # Set to \"hd44780\" for hd44780 displays. rs_pin: e_pin: d4_pin: d5_pin: d6_pin: d7_pin: # The pins connected to an hd44780 type lcd. These parameters must # be provided. #hd44780_protocol_init: True # Perform 8-bit/4-bit protocol initialization on an hd44780 display. # This is necessary on real hd44780 devices. However, one may need # to disable this on some \"clone\" devices. The default is True. #line_length: # Set the number of characters per line for an hd44780 type lcd. # Possible values are 20 (default) and 16. The number of lines is # fixed to 4. ...","title":"display hd44780"},{"location":"Config_Reference.html#display-hd44780_spi","text":"Informazioni sulla configurazione di un display hd44780_spi - un display 20x04 controllato tramite uno \"shift register\" hardware (che viene utilizzato nelle stampanti basate su mightyboard). [display] lcd_type: hd44780_spi # Set to \"hd44780_spi\" for hd44780_spi displays. latch_pin: spi_software_sclk_pin: spi_software_mosi_pin: spi_software_miso_pin: # The pins connected to the shift register controlling the display. # The spi_software_miso_pin needs to be set to an unused pin of the # printer mainboard as the shift register does not have a MISO pin, # but the software spi implementation requires this pin to be # configured. #hd44780_protocol_init: True # Perform 8-bit/4-bit protocol initialization on an hd44780 display. # This is necessary on real hd44780 devices. However, one may need # to disable this on some \"clone\" devices. The default is True. #line_length: # Set the number of characters per line for an hd44780 type lcd. # Possible values are 20 (default) and 16. The number of lines is # fixed to 4. ...","title":"display hd44780_spi"},{"location":"Config_Reference.html#display-st7920","text":"Informazioni sulla configurazione dei display st7920 (utilizzati nei display di tipo \"RepRapDiscount 12864 Full Graphic Smart Controller\"). [display] lcd_type: st7920 # Set to \"st7920\" for st7920 displays. cs_pin: sclk_pin: sid_pin: # The pins connected to an st7920 type lcd. These parameters must be # provided. ...","title":"display st7920"},{"location":"Config_Reference.html#display-emulazione-emulated_st7920","text":"Informazioni sulla configurazione di un display st7920 emulato, presenti in alcuni \"dispositivi touchscreen da 2,4 pollici\" e simili. [display] lcd_type: emulated_st7920 # Set to \"emulated_st7920\" for emulated_st7920 displays. en_pin: spi_software_sclk_pin: spi_software_mosi_pin: spi_software_miso_pin: # The pins connected to an emulated_st7920 type lcd. The en_pin # corresponds to the cs_pin of the st7920 type lcd, # spi_software_sclk_pin corresponds to sclk_pin and # spi_software_mosi_pin corresponds to sid_pin. The # spi_software_miso_pin needs to be set to an unused pin of the # printer mainboard as the st7920 as no MISO pin but the software # spi implementation requires this pin to be configured. ...","title":"display emulazione emulated_st7920"},{"location":"Config_Reference.html#display-uc1701","text":"Informazioni sulla configurazione dei display uc1701 (utilizzati nei display di tipo \"MKS Mini 12864\"). [display] lcd_type: uc1701 # Set to \"uc1701\" for uc1701 displays. cs_pin: a0_pin: # The pins connected to a uc1701 type lcd. These parameters must be # provided. #rst_pin: # The pin connected to the \"rst\" pin on the lcd. If it is not # specified then the hardware must have a pull-up on the # corresponding lcd line. #contrast: # The contrast to set. The value may range from 0 to 63 and the # default is 40. ...","title":"display uc1701"},{"location":"Config_Reference.html#display-ssd1306-e-sh1106","text":"Informazioni sulla configurazione dei display ssd1306 e sh1106. [display] lcd_type: # Set to either \"ssd1306\" or \"sh1106\" for the given display type. #i2c_mcu: #i2c_bus: #i2c_speed: # Optional parameters available for displays connected via an i2c # bus. See the \"common I2C settings\" section for a description of # the above parameters. #cs_pin: #dc_pin: #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # The pins connected to the lcd when in \"4-wire\" spi mode. See the # \"common SPI settings\" section for a description of the parameters # that start with \"spi_\". The default is to use i2c mode for the # display. #reset_pin: # A reset pin may be specified on the display. If it is not # specified then the hardware must have a pull-up on the # corresponding lcd line. #contrast: # The contrast to set. The value may range from 0 to 256 and the # default is 239. #vcomh: 0 # Set the Vcomh value on the display. This value is associated with # a \"smearing\" effect on some OLED displays. The value may range # from 0 to 63. Default is 0. #invert: False # TRUE inverts the pixels on certain OLED displays. The default is # False. #x_offset: 0 # Set the horizontal offset value on SH1106 displays. The default is # 0. ...","title":"display ssd1306 e sh1106"},{"location":"Config_Reference.html#display_data","text":"Supporto per la visualizzazione di dati personalizzati su uno schermo LCD. \u00c8 possibile creare un numero qualsiasi di gruppi di visualizzazione e un numero qualsiasi di elementi di dati in quei gruppi. Il display mostrer\u00e0 tutti gli elementi di dati per un determinato gruppo se l'opzione display_group nella sezione [display] \u00e8 impostata sul nome del gruppo specificato. Viene creato automaticamente un default set of display groups . \u00c8 possibile sostituire o estendere questi elementi display_data sovrascrivendo i valori predefiniti nel file di configurazione principale printer.cfg . [display_data my_group_name my_data_name] position: # Comma separated row and column of the display position that should # be used to display the information. This parameter must be # provided. text: # The text to show at the given position. This field is evaluated # using command templates (see docs/Command_Templates.md). This # parameter must be provided.","title":"[display_data]"},{"location":"Config_Reference.html#display_template","text":"Visualizza il testo dei dati \"macro\" (\u00e8 possibile definire un numero qualsiasi di sezioni con un prefisso display_template). Per informazioni sul template, vedere il documento template di comandi . Questa funzione consente di ridurre le definizioni ripetitive nelle sezioni display_data. Si pu\u00f2 usare la funzione incorporata render() nelle sezioni display_data per valutare un template. Per esempio, se si dovesse definire [display_template my_template] allora si potrebbe usare { render('my_template') } in una sezione display_data. Questa funzione pu\u00f2 essere utilizzata anche per aggiornamenti LED continui utilizzando il comando SET_LED_TEMPLATE . [display_template my_template_name] #param_<name>: # One may specify any number of options with a \"param_\" prefix. The # given name will be assigned the given value (parsed as a Python # literal) and will be available during macro expansion. If the # parameter is passed in the call to render() then that value will # be used during macro expansion. For example, a config with # \"param_speed = 75\" might have a caller with # \"render('my_template_name', param_speed=80)\". Parameter names may # not use upper case characters. text: # The text to return when the this template is rendered. This field # is evaluated using command templates (see # docs/Command_Templates.md). This parameter must be provided.","title":"[display_template]"},{"location":"Config_Reference.html#display_glyph","text":"Visualizza un glifo personalizzato sui display che lo supportano. Al nome dato verranno assegnati i dati di visualizzazione dati che possono quindi essere referenziati nei modelli di visualizzazione con il loro nome circondato da due simboli \"tilde\" per esempio ~my_display_glyph~ Vedere sample-glyphs.cfg per alcuni esempi. [display_glyph my_display_glyph] #data: # The display data, stored as 16 lines consisting of 16 bits (1 per # pixel) where '.' is a blank pixel and '*' is an on pixel (e.g., # \"****************\" to display a solid horizontal line). # Alternatively, one can use '0' for a blank pixel and '1' for an on # pixel. Put each display line into a separate config line. The # glyph must consist of exactly 16 lines with 16 bits each. This # parameter is optional. #hd44780_data: # Glyph to use on 20x4 hd44780 displays. The glyph must consist of # exactly 8 lines with 5 bits each. This parameter is optional. #hd44780_slot: # The hd44780 hardware index (0..7) to store the glyph at. If # multiple distinct images use the same slot then make sure to only # use one of those images in any given screen. This parameter is # required if hd44780_data is specified.","title":"[display_glyph]"},{"location":"Config_Reference.html#display-my_extra_display","text":"Se in printer.cfg \u00e8 stata definita una sezione primaria [display] come mostrato sopra, \u00e8 possibile definire pi\u00f9 display ausiliari. Si noti che i display ausiliari attualmente non supportano la funzionalit\u00e0 del menu, quindi non supportano le opzioni del \"menu\" o la configurazione dei pulsanti. [display my_extra_display] # Vedere la sezione \"display\" per i parametri disponibili.","title":"[display my_extra_display]"},{"location":"Config_Reference.html#menu","text":"Menu display lcd personalizzabili. Viene creato automaticamente un default set of menus . \u00c8 possibile sostituire o estendere il menu sovrascrivendo le impostazioni predefinite nel file di configurazione principale printer.cfg . Consulta il command template document per informazioni sugli attributi di menu disponibili durante il rendering del modello. # Common parameters available for all menu config sections. #[menu __some_list __some_name] #type: disabled # Permanently disabled menu element, only required attribute is 'type'. # Allows you to easily disable/hide existing menu items. #[menu some_name] #type: # One of command, input, list, text: # command - basic menu element with various script triggers # input - same like 'command' but has value changing capabilities. # Press will start/stop edit mode. # list - it allows for menu items to be grouped together in a # scrollable list. Add to the list by creating menu # configurations using \"some_list\" as a prefix - for # example: [menu some_list some_item_in_the_list] # vsdlist - same as 'list' but will append files from virtual sdcard # (will be removed in the future) #name: # Name of menu item - evaluated as a template. #enable: # Template that evaluates to True or False. #index: # Position where an item needs to be inserted in list. By default # the item is added at the end. #[menu some_list] #type: list #name: #enable: # See above for a description of these parameters. #[menu some_list some_command] #type: command #name: #enable: # See above for a description of these parameters. #gcode: # Script to run on button click or long click. Evaluated as a # template. #[menu some_list some_input] #type: input #name: #enable: # See above for a description of these parameters. #input: # Initial value to use when editing - evaluated as a template. # Result must be float. #input_min: # Minimum value of range - evaluated as a template. Default -99999. #input_max: # Maximum value of range - evaluated as a template. Default 99999. #input_step: # Editing step - Must be a positive integer or float value. It has # internal fast rate step. When \"(input_max - input_min) / # input_step > 100\" then fast rate step is 10 * input_step else fast # rate step is same input_step. #realtime: # This attribute accepts static boolean value. When enabled then # gcode script is run after each value change. The default is False. #gcode: # Script to run on button click, long click or value change. # Evaluated as a template. The button click will trigger the edit # mode start or end.","title":"[menu]"},{"location":"Config_Reference.html#sensori-di-filamento","text":"","title":"Sensori di filamento"},{"location":"Config_Reference.html#filament_switch_sensor","text":"Sensore del filamento a interruttore. Supporto per l'inserimento del filamento e il rilevamento dell'esaurimento tramite un sensore interruttore, come un interruttore di fine corsa. Per ulteriori informazioni, vedere command reference . [filament_switch_sensor my_sensor] #pause_on_runout: True # Se impostato su True, verr\u00e0 eseguita una PAUSA immediatamente # dopo il rilevamento di un'eccentricit\u00e0. Si noti che se pause_on_runout # \u00e8 False e runout_gcode viene omesso, il rilevamento dell'eccentricit\u00e0 # \u00e8 disabilitato. L'impostazione predefinita \u00e8 Vero. #runout_gcode: # Un elenco di comandi G-Code da eseguire dopo il rilevamento di # un'esaurimento del filamento. Vedi docs/Command_Templates.md # per il formato G-Code. Se pause_on_runout \u00e8 impostato su True, # questo codice G verr\u00e0 eseguito al termine della PAUSA. # L'impostazione predefinita \u00e8 di non eseguire alcun comando G-Code. #insert_gcode: # Un elenco di comandi G-Code da eseguire dopo il rilevamento # dell'inserimento di filamento. Vedi docs/Command_Templates.md # per il formato G-Code. L'impostazione predefinita non prevede # l'esecuzione di alcun comando G-Code, che disabilita il rilevamento # dell'inserimento. #event_delay: 3.0 # Il tempo minimo in secondi per ritardare tra gli eventi. Gli eventi # attivati durante questo periodo di tempo verranno ignorati # silenziosamente. L'impostazione predefinita \u00e8 3 secondi. #pause_delay: 0.5 # Il tempo di ritardo, in secondi, tra l'invio del comando pause e # l'esecuzione di runout_gcode. Potrebbe essere utile aumentare # questo ritardo se OctoPrint mostra uno strano comportamento # di pausa. Il valore predefinito \u00e8 0,5 secondi. #switch_pin: # Il pin su cui \u00e8 collegato l'interruttore. # Questo parametro deve essere fornito.","title":"[filament_switch_sensor]"},{"location":"Config_Reference.html#filament_motion_sensor","text":"Sensore di movimento del filamento. Supporto per l'inserimento del filamento e il rilevamento dell'esaurimento mediante un codificatore che commuta il pin di uscita durante il movimento del filamento attraverso il sensore. Per ulteriori informazioni, vedere command reference . [filament_motion_sensor my_sensor] detection_length: 7.0 # La lunghezza minima di filamento tirato attraverso il sensore # per attivare un cambio di stato su switch_pin # Il default \u00e8 7 mm. extruder: # Nome della sezione extruder section con cui questo sensore \u00e8 associato. # Questo parametro deve essere fornito. switch_pin: #pause_on_runout: #runout_gcode: #insert_gcode: #event_delay: #pause_delay: # Vedere la sezione \"filament_switch_sensor\" per la descrizione dei # parametri riportati sopra.","title":"[filament_motion_sensor]"},{"location":"Config_Reference.html#tsl1401cl_filament_width_sensor","text":"Sensore di larghezza del filamento basato su TSLl401CL. Consulta la guida per ulteriori informazioni. sl1401cl_filament_width_sensor] #pin: #diametro nominale del filamento predefinito: 1,75 (mm) # Differenza massima consentita del diametro del filamento in mm. #max_difference: 0.2 # La distanza dal sensore alla camera di fusione in mm. #measurement_delay: 100","title":"[tsl1401cl_filament_width_sensor]"},{"location":"Config_Reference.html#hall_filament_width_sensor","text":"Sensore di larghezza del filamento ad effetto Hall (vedere Sensore di larghezza del filamento Hall ). [hall_filament_width_sensor] adc1: adc2: # Pin di ingresso analogico collegati al sensore. # Questi parametri devono essere forniti. #cal_dia1: 1.50 #cal_dia2: 2.00 # I valori di calibrazione (in mm) per i sensori. Il valore predefinito # \u00e8 1.50 per cal_dia1 e 2.00 per cal_dia2. #raw_dia1: 9500 #raw_dia2: 10500 # I valori di calibrazione grezzi per i sensori. Il valore predefinito \u00e8 # 9500 per raw_dia1 e 10500 per raw_dia2. #default_nominal_filament_diameter: 1.75 # Il diametro nominale del filamento. # Questo parametro deve essere fornito. #max_difference: 0.200 # Differenza massima consentita del diametro del filamento in # millimetri (mm). Se la differenza tra il diametro nominale del # filamento e l'uscita del sensore \u00e8 maggiore di +- max_difference, # il moltiplicatore di estrusione viene riportato a %100. # Il valore predefinito \u00e8 0,200. #measurement_delay: 70 # La distanza dal sensore alla camera di fusione/hot-end in # millimetri (mm). Il filamento tra il sensore e l'hot-end verr\u00e0 # trattato come default_nominal_filament_diameter. Il modulo # host funziona con la logica FIFO. Mantiene ogni valore e posizione # del sensore in un array e li riporta nella posizione corretta. # Questo parametro deve essere fornito. #enable: False # Sensore abilitato o disabilitato dopo l'accensione. L'impostazione predefinita \u00e8 disabilitare. #measurement_interval: 10 # La distanza approssimativa (in mm) tra le letture del sensore. # Il valore predefinito \u00e8 10 mm. #logging: False # Il log esterno al terminale e klipper.log pu\u00f2 essere # attivato|off tramite comando. #min_diameter: 1.0 # Diametro minimo per trigger filament_switch_sensor virtuale. #use_current_dia_while_delay: False # Utilizzare il diametro attuale invece del diametro nominale # mentre il ritardo di misurazione non \u00e8 trascorso. #pause_on_runout: #runout_gcode: #insert_gcode: #event_delay: #pause_delay: # Vedere la sezione \"filament_switch_sensor\" per una # descrizione dei parametri di cui sopra.","title":"[hall_filament_width_sensor]"},{"location":"Config_Reference.html#supporto-hardware-per-specifica-scheda","text":"","title":"Supporto hardware per specifica scheda"},{"location":"Config_Reference.html#sx1509","text":"Configurare un'espansione SX1509 da I2C a GPIO. A causa del ritardo dovuto alla comunicazione I2C, NON utilizzare i pin SX1509 come abilitazione stepper, pin step o dir o qualsiasi altro pin che richieda un bit banging veloce. Sono utilizzati al meglio come uscite digitali statiche o controllate da gcode o pin hardware-pwm per es. fan. Si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"sx1509\". Ogni espansione fornisce un set di 16 pin (da sx1509_my_sx1509:PIN_0 a sx1509_my_sx1509:PIN_15) che possono essere utilizzati nella configurazione della stampante. Per un esempio, vedere il file generic-duet2-duex.cfg . [sx1509 my_sx1509] i2c_address: # Indirizzo I2C utilizzato da questa espansione. A seconda dei # ponticelli hardware \u00e8 uno dei seguenti indirizzi: 62 63 112 113. # Questo parametro deve essere fornito. #i2c_mcu: #i2c_bus: #i2c_speed: # Vedere la sezione \"impostazioni comuni I2C\" per una # escrizione dei parametri di cui sopra. #i2c_bus: # Se l'implementazione I2C del tuo microcontrollore supporta # pi\u00f9 bus I2C, puoi specificare qui il nome del bus. L'impostazione # predefinita prevede l'utilizzo del bus i2c del microcontrollore # predefinito.","title":"[sx1509]"},{"location":"Config_Reference.html#samd_sercom","text":"Configurazione SAMD SERCOM per specificare quali pin utilizzare su un determinato SERCOM. Si pu\u00f2 definire un numero qualsiasi di sezioni con un prefisso \"samd_sercom\". Ogni SERCOM deve essere configurato prima di utilizzarlo come periferica SPI o I2C. Posiziona questa sezione di configurazione sopra qualsiasi altra sezione che fa uso di bus SPI o I2C. [samd_sercom my_sercom] sercom: # Il nome del bus Sercom da configurare nel microcontrollore. I nomi # disponibili sono \"sercom0\", \"sercom1\", ecc. # Questo parametro deve essere fornito. tx_pin: # Pin MOSI per la comunicazione SPI o pin SDA (dati) per la # comunicazione I2C. Il pin deve avere una configurazione pinmux # valida per la specifica periferica SERCOM. # Questo parametro deve essere fornito. #rx_pin: # Pin MISO per la comunicazione SPI. Questo pin non viene utilizzato # per la comunicazione I2C (I2C utilizza tx_pin sia per l'invio che per la # ricezione). Il pin deve avere una configurazione pinmux valida per la # specifica periferica SERCOM. Questo parametro \u00e8 facoltativo. clk_pin: # Pin CLK per la comunicazione SPI o pin SCL (clock) per la # comunicazione I2C. Il pin deve avere una configurazione pinmux # valida per la specifica periferica SERCOM. Questo parametro deve # essere fornito.","title":"[samd_sercom]"},{"location":"Config_Reference.html#adc_scaled","text":"Scaling analogico di Duet2 Maestro tramite letture vref e vssa. La definizione di una sezione adc_scaled abilita pin adc virtuali (come \"my_name:PB0\") che vengono regolati automaticamente dai pin di monitoraggio vref e vssa della scheda. Assicurati di definire questa sezione di configurazione sopra qualsiasi sezione di configurazione che utilizza uno di questi pin virtuali. Per un esempio, vedere il file generic-duet2-maestro.cfg . [adc_scaled my_name] vref_pin: # The ADC pin to use for VREF monitoring. This parameter must be # provided. vssa_pin: # The ADC pin to use for VSSA monitoring. This parameter must be # provided. #smooth_time: 2.0 # A time value (in seconds) over which the vref and vssa # measurements will be smoothed to reduce the impact of measurement # noise. The default is 2 seconds.","title":"[adc_scaled]"},{"location":"Config_Reference.html#replicape","text":"Supporto per Replicape: vedere la guida beaglebone e il file generic-replicape.cfg per un esempio. # La sezione di configurazione \"replicape\" aggiunge i pin di abilitazione # dello stepper virtuale \"replicape: stepper_x_enable\" (per stepper X, Y, Z, # E e H) e i pin di uscita PWM \"replicape: power_x\" (per hotbed, e, h, fan0, # fan1 , fan2 e fan3) che possono quindi essere utilizzati altrove nel file # di configurazione. [replicape] revision: # La revisione dell'hardware di replicape. Attualmente \u00e8 supportata solo # la revisione \"B3\". Questo parametro deve essere fornito. #enable_pin: !gpio0_20 # Il pin di abilitazione globale dei replicape. L'impostazione predefinita # \u00e8 !gpio0_20 (aka P9_41). host_mcu: # Il nome della sezione mcu config che comunica con l'istanza mcu # \"linux process\" di Klipper. Questo parametro deve essere fornito. #standstill_power_down: False # Questo parametro controlla la linea CFG6_ENN su tutti i motori # passo-passo. True imposta le righe di abilitazione su \"open\". # L'impostazione predefinita \u00e8 Falso. #stepper_x_microstep_mode: #stepper_y_microstep_mode: #stepper_z_microstep_mode: #stepper_e_microstep_mode: #stepper_h_microstep_mode: # Questo parametro controlla i pin CFG1 e CFG2 del driver del motore # passo-passo specificato. Le opzioni disponibili sono: disabilita, 1, 2, # spread2, 4, 16, spread4, spread16, stealth4 e stealth16. L'impostazione # predefinita \u00e8 disabilitata. #stepper_x_current: #stepper_y_current: #stepper_z_current: #stepper_e_current: #stepper_h_current: # La corrente massima configurata (in Amp) del driver del motore # passo-passo. Questo parametro deve essere fornito se lo stepper non # \u00e8 in modalit\u00e0 disabilitazione. #stepper_x_chopper_off_time_high: #stepper_y_chopper_off_time_high: #stepper_z_chopper_off_time_high: #stepper_e_chopper_off_time_high: #stepper_h_chopper_off_time_high: # Questo parametro controlla il pin CFG0 del driver del motore # passo-passo (True imposta CFG0 alto, False lo imposta basso). # L'impostazione predefinita \u00e8 False. #stepper_x_chopper_hysteresis_high: #stepper_y_chopper_hysteresis_high: #stepper_z_chopper_hysteresis_high: #stepper_e_chopper_hysteresis_high: #stepper_h_chopper_hysteresis_high: # Questo parametro controlla il pin CFG4 del driver del motore # passo-passo (True imposta CFG4 alto, False lo imposta basso). # L'impostazione predefinita \u00e8 False. #stepper_x_chopper_blank_time_high: #stepper_y_chopper_blank_time_high: #stepper_z_chopper_blank_time_high: #stepper_e_chopper_blank_time_high: #stepper_h_chopper_blank_time_high: # Questo parametro controlla il pin CFG5 del driver del motore # passo-passo (True imposta CFG5 alto, False lo imposta basso). # L'impostazione predefinita \u00e8 True.","title":"[replicape]"},{"location":"Config_Reference.html#altri-moduli-personalizzati","text":"","title":"Altri moduli personalizzati"},{"location":"Config_Reference.html#palette2","text":"Supporto multimateriale Palette 2: fornisce un'integrazione pi\u00f9 stretta supportando i dispositivi Palette 2 in modalit\u00e0 connessa. Questo modulo richiede anche [virtual_sdcard] e [pause_resume] per la piena funzionalit\u00e0. Se si utilizza questo modulo, non utilizzare il plug-in Palette 2 per Octoprint poich\u00e9 entreranno in conflitto e 1 non si inizializzer\u00e0 correttamente, probabilmente interrompendo la stampa. Se utilizzi Octoprint e esegui lo streaming di gcode sulla porta seriale invece di stampare da virtual_sd, rimuovere M1 e M0 da Pausa dei comandi in Impostazioni > Connessione seriale > Firmware e protocollo eviter\u00e0 la necessit\u00e0 per avviare la stampa sulla tavolozza 2 e riattivare la pausa in Octoprint per avviare la stampa. [palette2] serial: # La porta seriale per la connessione alla Palette 2. #baud: 115200 # La velocit\u00e0 da utilizzare. Il valore predefinito \u00e8 115200. #feedrate_splice: 0.8 # L'avanzamento da utilizzare durante la giunzione # il valore predefinito \u00e8 0.8 #feedrate_normal: 1.0 # L'avanzamento da utilizzare dopo la giunzione # il valore predefinito \u00e8 1.0 #auto_load_speed: 2 # Avanzamento di estrusione durante il caricamento automatico # il valore predefinito \u00e8 2 (mm/s) #auto_cancel_variation: 0.1 # Annullamento automatico della stampa quando la variazione # del ping \u00e8 superiore a questa soglia","title":"[palette2]"},{"location":"Config_Reference.html#angle","text":"Supporto per sensore magnetico Hall per la lettura delle misurazioni dell'angolo del motore passo-passo utilizzando i chip SPI a1333, as5047d o tle5012b. Le misurazioni sono disponibili tramite Server API e strumento di analisi del movimento . Vedere il Riferimento G-Code per i comandi disponibili. [angle my_angle_sensor] sensor_type: # The type of the magnetic hall sensor chip. Available choices are # \"a1333\", \"as5047d\", and \"tle5012b\". This parameter must be # specified. #sample_period: 0.000400 # The query period (in seconds) to use during measurements. The # default is 0.000400 (which is 2500 samples per second). #stepper: # The name of the stepper that the angle sensor is attached to (eg, # \"stepper_x\"). Setting this value enables an angle calibration # tool. To use this feature, the Python \"numpy\" package must be # installed. The default is to not enable angle calibration for the # angle sensor. cs_pin: # The SPI enable pin for the sensor. This parameter must be provided. #spi_speed: #spi_bus: #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # See the \"common SPI settings\" section for a description of the # above parameters.","title":"[angle]"},{"location":"Config_Reference.html#parametri-bus-comuni","text":"","title":"Parametri bus comuni"},{"location":"Config_Reference.html#impostazioni-spi-comuni","text":"I seguenti parametri sono generalmente disponibili per i dispositivi che utilizzano un bus SPI. #spi_speed: # La velocit\u00e0 SPI (in Hz) da utilizzare durante la comunicazione con il # dispositivo. L'impostazione predefinita dipende dal tipo di dispositivo. #spi_bus: # Se il microcontrollore supporta pi\u00f9 bus SPI, \u00e8 possibile specificare # qui il nome del bus del microcontrollore. L'impostazione predefinita # dipende dal tipo di microcontrollore. #spi_software_sclk_pin: #spi_software_mosi_pin: #spi_software_miso_pin: # Specificare i parametri di cui sopra per utilizzare \"SPI basato su # software\". Questa modalit\u00e0 non richiede il supporto hardware del # microcontrollore (in genere \u00e8 possibile utilizzare qualsiasi pin generico). # L'impostazione predefinita \u00e8 di non utilizzare \"spi software\".","title":"Impostazioni SPI comuni"},{"location":"Config_Reference.html#impostazioni-i2c-comuni","text":"I seguenti parametri sono generalmente disponibili per i dispositivi che utilizzano un bus I2C. Si noti che l'attuale supporto del microcontrollore di Klipper per i2c generalmente non tollera il rumore di linea. Errori imprevisti sui cavi i2c possono causare la generazione di un errore di runtime da parte di Klipper. Il supporto di Klipper per il ripristino degli errori varia a seconda del tipo di microcontrollore. In genere si consiglia di utilizzare solo dispositivi i2c che si trovano sulla stessa scheda a circuito stampato del microcontrollore. La maggior parte delle implementazioni del microcontrollore Klipper supporta solo un i2c_speed di 100000. Il microcontrollore \"linux\" Klipper supporta una velocit\u00e0 400000, ma deve essere impostato nel sistema operativo e il parametro i2c_speed viene altrimenti ignorato. Il microcontrollore Klipper \"rp2040\" supporta una velocit\u00e0 di 400000 tramite il parametro i2c_speed . Tutti gli altri microcontrollori Klipper utilizzano una frequenza di 100000 e ignorano il parametro i2c_speed . #i2c_address: # L'indirizzo i2c del dispositivo. Questo deve essere specificato # come numero decimale (non in esadecimale). L'impostazione # predefinita dipende dal tipo di dispositivo. #i2c_mcu: # Il nome del microcontrollore a cui \u00e8 collegato il chip. # L'impostazione predefinita \u00e8 \"mcu\". #i2c_bus: # Se il microcontrollore supporta pi\u00f9 bus I2C, \u00e8 possibile # specificare qui il nome del bus del microcontrollore. # L'impostazione predefinita dipende dal tipo di microcontrollore. #i2c_speed: # La velocit\u00e0 I2C (in Hz) da utilizzare durante la comunicazione # con il dispositivo. L'implementazione di Klipper sulla maggior # parte dei microcontrollori \u00e8 codificata a 100000 e la modifica # di questo valore non ha alcun effetto. # Il valore predefinito \u00e8 100000.","title":"Impostazioni I2C comuni"},{"location":"Config_checks.html","text":"Controlli della configurazione \u00b6 Questo documento fornisce una lista di step per confermare le impostazioni dei pin nel file printer.cfg di Klipper. \u00c8 una buona idea eseguire questi passi dopo aver seguito i passi nel documento di installazione . In alcuni passaggi di questa guida, potrebbe essere necessario modificare il file di configurazione di Klipper. Assicuratevi di dare il comando RESTART, dopo ogni modifica al file di configurazione, per accertarsi che le modifiche abbiano effetto(scrivere \"restart\" nella scheda del terminale di Octoprint e cliccare su INVIA). E' anche consigliabile utilizzare il comando STATUS, dopo ogni RESTART, per verificare che il file di configurazione sia stato caricato correttamente. Verifica delle temperature \u00b6 Iniziare verificando che le temperature siano correttamente riportate. Navigare alla scheda temperature di Octoprint. eseguire l'istruzione Verificare che la temperatura dell'ugello e del piatto(se presente) siano presenti e non stiano aumentando. Se stessero aumentando staccare l'alimentazione alla stampante. Se le temperature non sono precise, rivedere le impostazioni \"sensor_type\" e \"sensor_pin\" per l'ugello e/o il piatto. Verifica M112 \u00b6 Da terminale dare il comando M112. Questo comando richiede a Klipper di porsi in uno stato di spengnimento. Questo causer\u00e0 la disconnessione di Octoprint da Klipper - selezionate il menu connessione e premete il pulsante \"Connetti\" per riconnettere Octoprint. Selezionate poi la scheda temperatura e verificate che le temperature si stiano aggiornando e che non stiano aumentando. Se stanno aumentando, staccate l'alimentazione della stampante. Il comando M112 mette Klipper in uno stato di spegnimento. Per farlo uscire da questo stato, dare il comando FIRMWARE_RESTART sempre da terminale di Octoprint. Verifica i riscaldatori \u00b6 Passare alla pagina della temperatura su Octoprint . Nella casella della temperatura \"Tool\", digitare 50 seguito dal tasto enter .La temperatura dell'estrusore indicata nel grafico, dovrebbe iniziare ad aumentare (entro 30 secondi circa). Quindi vai alla casella a scorrimento della temperatura \"Tool\" e seleziona \"Off\". Dopo alcuni minuti la temperatura dovrebbe tornare al valore di temperatura ambiente iniziale. Se la temperatura non aumenta, verifica l'impostazione \"heater_pin\" nella configurazione. Se la stampante ha il piatto riscaldato, eseguire nuovamente il test indicato in precedenza ma per il piatto. Verifica il pin di abilitazione del motore passo-passo \u00b6 Verificare che tutti gli assi della stampante possano muoversi manualmente in modo libero (con i motori passo-passo sono disabilitati). In caso contrario, inserire un comando M84 per disabilitare i motori. Se uno degli assi non pu\u00f2 ancora muoversi in modo libero, verificare la configurazione \"enable_pin\" del driver del motore passo-passo corrispondente. Sulla maggior parte dei driver per motori passo-passo, il pin di abilitazione del motore \u00e8 \"attivo basso\" e quindi il pin di abilitazione dovrebbe avere un \"!\" prima del pin (ad esempio, \"enable_pin: !ar38\"). Verifica i finecorsa \u00b6 Spostare manualmente tutti gli assi della stampante in modo che nessuno di essi sia a contatto con un finecorsa. Invia un comando QUERY_ENDSTOPS tramite il terminale di Octoprint. Dovrebbe visualizzare lo stato corrente di tutti i finecorsa configurati e gli stessi dovrebbero essere nello stato di \"aperto\". Per ciascuno degli finecorsa, eseguire nuovamente il comando QUERY_ENDSTOPS mentre si attiva manualmente il finecorsa corrispondente, dovrebbe rispondere con \"TRIGGERED\". Se il finecorsa \u00e8 invertito (viene indicato \"aperto\" quando \u00e8 attivato e viceversa), aggiungere un \"!\" alla definizione del pin (ad esempio, \"endstop_pin: ^!ar3\"), oppure togliere \"!\" se invece \u00e8 presente. Se il segnale del finecorsa non cambia , pu\u00f2 significare che il fine corsa \u00e8 collegato a un pin diverso. Tuttavia, potrebbe essere necessaria una modifica all'impostazione pullup del pin (il '^' all'inizio del istruzione \"endstop_pin\".La maggior parte delle stampanti utilizzano un resistore pullup e l'istruzione '^' dovrebbe essere presente). Verifica dei motori passo-passo \u00b6 Utilizzare il comando STEPPER_BUZZ per verificare le connessioni di ciascun motore passo-passo. Inizia posizionando manualmente in un punto intermedio dell'asse, quindi esegui l'istruzione STEPPER_BUZZ STEPPER=stepper_x . Il comando STEPPER_BUZZ far\u00e0 muovere il motore passo-passo di un millimetro in direzione avanti e poi torner\u00e0 in posizione iniziale. (Se il finecorsa \u00e8 definito come position_endstop=0, all'inizio di ogni movimento lo motore passo-passo si allontaner\u00e0 dal finecorsa.) Eseguir\u00e0 questa movimento oscillatorio per dieci volte. Se il motore passo-passo non si muove , verifica le impostazioni \"enable_pin\" e \"step_pin\" sul driver. Se il motore passo-passo si muove ma non torna nella sua posizione originale, verificare l'impostazione \"dir_pin\". Se il motore passo-passo oscilla in una direzione errata, generalmente sta a significare che \u00e8 necessario invertire il \"dir_pin\" del l'asse. Questo viene fatto aggiungendo un istruzione '!' alla \"dir_pin\" nel file di configurazione della stampante (o rimuovendolo se ne esiste gi\u00e0 presente). Se il motore passo-passo si muove di pi\u00f9 o di meno di un millimetro, verificare l'impostazione \"rotation_distance\". Eseguire il test sopra descritto per ogni motore passo-passo definito nel file di configurazione. (Impostare il parametro STEPPER del comando STEPPER_BUZZ sul nome della sezione di configurazione da testare.) Se non \u00e8 presente il filamento nell'estrusore, \u00e8 possibile utilizzare STEPPER_BUZZ per verificare la connessione del motore dell'estrusore (usare STEPPER=estrusore). In caso contrario, \u00e8 meglio testare il motore dell'estrusore per conto suo (vedere la sezione successiva). Dopo aver verificato tutti i finecorsa e aver verificato tutti i motori passo-passo, \u00e8 necessario testare il sistema di homing. Scrivere un comando G28 per portare a home tutti gli assi. Rimuovere l'alimentazione dalla stampante se l'istruzione non funziona correttamente. Se necessario, ripetere i passaggi di verifica del finecorsa e del motore passo-passo. Verifica il motore dell'estrusore \u00b6 Per testare il motore dell'estrusore sar\u00e0 necessario riscaldare l'estrusore alla temperatura di stampa. Passare alla pagina della temperatura Octoprint e selezionare una temperatura di target nel men\u00f9 a tendina della temperatura (o inserire manualmente una temperatura opportuna). Attendere che la stampante raggiunga la temperatura desiderata. Quindi vai alla pagina di controllo di Octoprint e fai clic sul pulsante \"Estrudi\". Verificare che il motore dell'estrusore giri nella direzione corretta. In caso contrario, vedere i suggerimenti per la risoluzione dei problemi nella sezione precedente per verificare le impostazioni \"enable_pin\", \"step_pin\" e \"dir_pin\" per l'estrusore. Calibrare le impostazioni del PID \u00b6 Klipper supporta il sistema controllo PID per iriscaldatori dell'estrusore e del piatto. Per utilizzare questo sistema di controllo, \u00e8 necessario calibrare le impostazioni PID su ciascuna stampante (le impostazioni PID presenti in altri firmware o nei file di configurazione di esempio spesso funzionano male). Per calibrare il PID dell'estrusore, accedere alla pagina del terminale OctoPrint ed eseguire il comando PID_CALIBRATE. Ad esempio: PID_CALIBRATE HEATER=estrusore TARGET=170 Al termine del test di ottimizzazione, eseguire l'istruzione SAVE_CONFIG per aggiornare il file printer.cfg con le nuove impostazioni PID. Se la stampante ha un piatto riscaldato ed \u00e8 dotato di azionamento con funzione PWM (Pulse Width Modulation), si consiglia di utilizzare il controllo PID anche per il piatto. (Quando il riscaldatore del piatto \u00e8 controllato utilizzando l'algoritmo PID, potrebbe accendersi e spegnersi dieci volte al secondo, il che potrebbe non essere adatto per i riscaldatori che utilizzano un rel\u00e8 elettromeccanico.) Un tipico comando per calibrazione PID del piatto \u00e8: PID_CALIBRATE HEATER=heater_bed TARGET= 60 Passi sucessivi \u00b6 Questa guida ha lo scopo di aiutare la verifica delle impostazioni di base riferite ai pin presenti nel file di configurazione di Klipper. Assicurati di leggere la guida bed leveling . Consulta anche il documento Slicers per informazioni sulla configurazione di un software slicer con Klipper. Dopo aver verificato che la stampa di base funziona, \u00e8 una buona prassi procedere con la calibrazione avanzamento pressione . Potrebbe essere necessario eseguire altri tipi di calibrazione di dettaglio in riferimento alla stampante: sono disponibili numerose guide online per questo scopo (ad esempio, eseguire una ricerca sul Web per \"calibrazione della stampante 3d\"). Ad esempio, se si verifica l'effetto chiamato risonanza, \u00e8 possibile provare a seguire la calibrazione tramite l'istruzione compensazione della risonanza .","title":"Controlli della configurazione"},{"location":"Config_checks.html#controlli-della-configurazione","text":"Questo documento fornisce una lista di step per confermare le impostazioni dei pin nel file printer.cfg di Klipper. \u00c8 una buona idea eseguire questi passi dopo aver seguito i passi nel documento di installazione . In alcuni passaggi di questa guida, potrebbe essere necessario modificare il file di configurazione di Klipper. Assicuratevi di dare il comando RESTART, dopo ogni modifica al file di configurazione, per accertarsi che le modifiche abbiano effetto(scrivere \"restart\" nella scheda del terminale di Octoprint e cliccare su INVIA). E' anche consigliabile utilizzare il comando STATUS, dopo ogni RESTART, per verificare che il file di configurazione sia stato caricato correttamente.","title":"Controlli della configurazione"},{"location":"Config_checks.html#verifica-delle-temperature","text":"Iniziare verificando che le temperature siano correttamente riportate. Navigare alla scheda temperature di Octoprint. eseguire l'istruzione Verificare che la temperatura dell'ugello e del piatto(se presente) siano presenti e non stiano aumentando. Se stessero aumentando staccare l'alimentazione alla stampante. Se le temperature non sono precise, rivedere le impostazioni \"sensor_type\" e \"sensor_pin\" per l'ugello e/o il piatto.","title":"Verifica delle temperature"},{"location":"Config_checks.html#verifica-m112","text":"Da terminale dare il comando M112. Questo comando richiede a Klipper di porsi in uno stato di spengnimento. Questo causer\u00e0 la disconnessione di Octoprint da Klipper - selezionate il menu connessione e premete il pulsante \"Connetti\" per riconnettere Octoprint. Selezionate poi la scheda temperatura e verificate che le temperature si stiano aggiornando e che non stiano aumentando. Se stanno aumentando, staccate l'alimentazione della stampante. Il comando M112 mette Klipper in uno stato di spegnimento. Per farlo uscire da questo stato, dare il comando FIRMWARE_RESTART sempre da terminale di Octoprint.","title":"Verifica M112"},{"location":"Config_checks.html#verifica-i-riscaldatori","text":"Passare alla pagina della temperatura su Octoprint . Nella casella della temperatura \"Tool\", digitare 50 seguito dal tasto enter .La temperatura dell'estrusore indicata nel grafico, dovrebbe iniziare ad aumentare (entro 30 secondi circa). Quindi vai alla casella a scorrimento della temperatura \"Tool\" e seleziona \"Off\". Dopo alcuni minuti la temperatura dovrebbe tornare al valore di temperatura ambiente iniziale. Se la temperatura non aumenta, verifica l'impostazione \"heater_pin\" nella configurazione. Se la stampante ha il piatto riscaldato, eseguire nuovamente il test indicato in precedenza ma per il piatto.","title":"Verifica i riscaldatori"},{"location":"Config_checks.html#verifica-il-pin-di-abilitazione-del-motore-passo-passo","text":"Verificare che tutti gli assi della stampante possano muoversi manualmente in modo libero (con i motori passo-passo sono disabilitati). In caso contrario, inserire un comando M84 per disabilitare i motori. Se uno degli assi non pu\u00f2 ancora muoversi in modo libero, verificare la configurazione \"enable_pin\" del driver del motore passo-passo corrispondente. Sulla maggior parte dei driver per motori passo-passo, il pin di abilitazione del motore \u00e8 \"attivo basso\" e quindi il pin di abilitazione dovrebbe avere un \"!\" prima del pin (ad esempio, \"enable_pin: !ar38\").","title":"Verifica il pin di abilitazione del motore passo-passo"},{"location":"Config_checks.html#verifica-i-finecorsa","text":"Spostare manualmente tutti gli assi della stampante in modo che nessuno di essi sia a contatto con un finecorsa. Invia un comando QUERY_ENDSTOPS tramite il terminale di Octoprint. Dovrebbe visualizzare lo stato corrente di tutti i finecorsa configurati e gli stessi dovrebbero essere nello stato di \"aperto\". Per ciascuno degli finecorsa, eseguire nuovamente il comando QUERY_ENDSTOPS mentre si attiva manualmente il finecorsa corrispondente, dovrebbe rispondere con \"TRIGGERED\". Se il finecorsa \u00e8 invertito (viene indicato \"aperto\" quando \u00e8 attivato e viceversa), aggiungere un \"!\" alla definizione del pin (ad esempio, \"endstop_pin: ^!ar3\"), oppure togliere \"!\" se invece \u00e8 presente. Se il segnale del finecorsa non cambia , pu\u00f2 significare che il fine corsa \u00e8 collegato a un pin diverso. Tuttavia, potrebbe essere necessaria una modifica all'impostazione pullup del pin (il '^' all'inizio del istruzione \"endstop_pin\".La maggior parte delle stampanti utilizzano un resistore pullup e l'istruzione '^' dovrebbe essere presente).","title":"Verifica i finecorsa"},{"location":"Config_checks.html#verifica-dei-motori-passo-passo","text":"Utilizzare il comando STEPPER_BUZZ per verificare le connessioni di ciascun motore passo-passo. Inizia posizionando manualmente in un punto intermedio dell'asse, quindi esegui l'istruzione STEPPER_BUZZ STEPPER=stepper_x . Il comando STEPPER_BUZZ far\u00e0 muovere il motore passo-passo di un millimetro in direzione avanti e poi torner\u00e0 in posizione iniziale. (Se il finecorsa \u00e8 definito come position_endstop=0, all'inizio di ogni movimento lo motore passo-passo si allontaner\u00e0 dal finecorsa.) Eseguir\u00e0 questa movimento oscillatorio per dieci volte. Se il motore passo-passo non si muove , verifica le impostazioni \"enable_pin\" e \"step_pin\" sul driver. Se il motore passo-passo si muove ma non torna nella sua posizione originale, verificare l'impostazione \"dir_pin\". Se il motore passo-passo oscilla in una direzione errata, generalmente sta a significare che \u00e8 necessario invertire il \"dir_pin\" del l'asse. Questo viene fatto aggiungendo un istruzione '!' alla \"dir_pin\" nel file di configurazione della stampante (o rimuovendolo se ne esiste gi\u00e0 presente). Se il motore passo-passo si muove di pi\u00f9 o di meno di un millimetro, verificare l'impostazione \"rotation_distance\". Eseguire il test sopra descritto per ogni motore passo-passo definito nel file di configurazione. (Impostare il parametro STEPPER del comando STEPPER_BUZZ sul nome della sezione di configurazione da testare.) Se non \u00e8 presente il filamento nell'estrusore, \u00e8 possibile utilizzare STEPPER_BUZZ per verificare la connessione del motore dell'estrusore (usare STEPPER=estrusore). In caso contrario, \u00e8 meglio testare il motore dell'estrusore per conto suo (vedere la sezione successiva). Dopo aver verificato tutti i finecorsa e aver verificato tutti i motori passo-passo, \u00e8 necessario testare il sistema di homing. Scrivere un comando G28 per portare a home tutti gli assi. Rimuovere l'alimentazione dalla stampante se l'istruzione non funziona correttamente. Se necessario, ripetere i passaggi di verifica del finecorsa e del motore passo-passo.","title":"Verifica dei motori passo-passo"},{"location":"Config_checks.html#verifica-il-motore-dellestrusore","text":"Per testare il motore dell'estrusore sar\u00e0 necessario riscaldare l'estrusore alla temperatura di stampa. Passare alla pagina della temperatura Octoprint e selezionare una temperatura di target nel men\u00f9 a tendina della temperatura (o inserire manualmente una temperatura opportuna). Attendere che la stampante raggiunga la temperatura desiderata. Quindi vai alla pagina di controllo di Octoprint e fai clic sul pulsante \"Estrudi\". Verificare che il motore dell'estrusore giri nella direzione corretta. In caso contrario, vedere i suggerimenti per la risoluzione dei problemi nella sezione precedente per verificare le impostazioni \"enable_pin\", \"step_pin\" e \"dir_pin\" per l'estrusore.","title":"Verifica il motore dell'estrusore"},{"location":"Config_checks.html#calibrare-le-impostazioni-del-pid","text":"Klipper supporta il sistema controllo PID per iriscaldatori dell'estrusore e del piatto. Per utilizzare questo sistema di controllo, \u00e8 necessario calibrare le impostazioni PID su ciascuna stampante (le impostazioni PID presenti in altri firmware o nei file di configurazione di esempio spesso funzionano male). Per calibrare il PID dell'estrusore, accedere alla pagina del terminale OctoPrint ed eseguire il comando PID_CALIBRATE. Ad esempio: PID_CALIBRATE HEATER=estrusore TARGET=170 Al termine del test di ottimizzazione, eseguire l'istruzione SAVE_CONFIG per aggiornare il file printer.cfg con le nuove impostazioni PID. Se la stampante ha un piatto riscaldato ed \u00e8 dotato di azionamento con funzione PWM (Pulse Width Modulation), si consiglia di utilizzare il controllo PID anche per il piatto. (Quando il riscaldatore del piatto \u00e8 controllato utilizzando l'algoritmo PID, potrebbe accendersi e spegnersi dieci volte al secondo, il che potrebbe non essere adatto per i riscaldatori che utilizzano un rel\u00e8 elettromeccanico.) Un tipico comando per calibrazione PID del piatto \u00e8: PID_CALIBRATE HEATER=heater_bed TARGET= 60","title":"Calibrare le impostazioni del PID"},{"location":"Config_checks.html#passi-sucessivi","text":"Questa guida ha lo scopo di aiutare la verifica delle impostazioni di base riferite ai pin presenti nel file di configurazione di Klipper. Assicurati di leggere la guida bed leveling . Consulta anche il documento Slicers per informazioni sulla configurazione di un software slicer con Klipper. Dopo aver verificato che la stampa di base funziona, \u00e8 una buona prassi procedere con la calibrazione avanzamento pressione . Potrebbe essere necessario eseguire altri tipi di calibrazione di dettaglio in riferimento alla stampante: sono disponibili numerose guide online per questo scopo (ad esempio, eseguire una ricerca sul Web per \"calibrazione della stampante 3d\"). Ad esempio, se si verifica l'effetto chiamato risonanza, \u00e8 possibile provare a seguire la calibrazione tramite l'istruzione compensazione della risonanza .","title":"Passi sucessivi"},{"location":"Contact.html","text":"Contatti \u00b6 Questo documento fornisce informazioni di contatto per Klipper. Forum della comunit\u00e0 Chat Discord Ho una domanda su Klipper Ho una richiesta per una funzionalit\u00e0 Aiuto! Non funziona! Ho diagnosticato un difetto nel software Klipper Sto apportando modifiche che vorrei includere in Klipper Forum della Comunit\u00e0 \u00b6 C'\u00e8 un server Klipper Community Discourse server per discussioni su Klipper. Chat Discord \u00b6 C'\u00e8 un serve Discord dedicato a Klipper a: https://discord.klipper3d.org . Questo server \u00e8 gestito da una comunit\u00e0 di appassionati di Klipper dediti alle discussioni su Klipper. Consente agli utenti di chattare con altri utenti in tempo reale. Ho una domanda su Klipper \u00b6 Molte domande che riceviamo hanno gi\u00e0 una risposta nella Klipper documentation . Per favore assicurati di leggere la documentazione e di seguire le indicazioni fornite. \u00c8 anche possibile cercare domande simili nel Klipper Community Forum . Se sei interessato a condividere le tue conoscenze ed esperienze con altri utenti di Klipper, puoi unirti al Klipper Community Forum o Klipper Discord Chat . Entrambe sono comunit\u00e0 in cui gli utenti di Klipper possono discutere di Klipper con altri utenti. Molte domande che riceviamo sono domande generiche sulla stampa 3D che non sono specifiche di Klipper. Se hai una domanda generica o stai riscontrando problemi di stampa generici, probabilmente otterrai una risposta migliore chiedendo in un forum generale sulla stampa 3D o in un forum dedicato all'hardware della tua stampante. Non aprire un problema (issue) su Klipper github per porre una domanda. Ho una richiesta per una funzionalit\u00e0 \u00b6 Tutte le nuove funzionalit\u00e0 richiedono qualcuno interessato e in grado di implementare tale funzionalit\u00e0. Se sei interessato ad aiutare a implementare o testare una nuova funzionalit\u00e0, puoi cercare gli sviluppi coinvolti nel Klipper Community Forum . C'\u00e8 anche Klipper Discord Chat per le discussioni tra i collaboratori. Non aprire un problema (issue) in Klipper github per richiedere una funzionalit\u00e0. Aiuto! Non funziona! \u00b6 Sfortunatamente, riceviamo molte pi\u00f9 richieste di aiuto di quante potremmo eventualmente rispondere. La maggior parte delle segnalazioni di problemi che vediamo vengono infine rintracciate in: Piccoli nell'hardware, o Non seguendo tutti i passaggi descritti nella documentazione di Klipper. In caso di problemi, ti consigliamo di leggere attentamente la Klipper documentation e di verificare che tutti i passaggi siano stati seguiti. Se si verifica un problema di stampa, si consiglia di ispezionare attentamente l'hardware della stampante (tutti i giunti, i cavi, le viti, ecc.) e verificare che non vi siano anomalie. Scopriamo che la maggior parte dei problemi di stampa non sono correlati al software Klipper. Se trovi un problema con l'hardware della stampante, probabilmente otterrai una risposta migliore cercando in un forum generale di stampa 3D o in un forum dedicato all'hardware della tua stampante. \u00c8 anche possibile cercare problemi simili in Klipper Community Forum . Se sei interessato a condividere le tue conoscenze ed esperienze con altri utenti di Klipper, puoi unirti al Klipper Community Forum o Klipper Discord Chat . Entrambe sono comunit\u00e0 in cui gli utenti di Klipper possono discutere di Klipper con altri utenti. Non aprire un problema (issue) in Klipper github per richiedere assistenza. Ho diagnosticato un difetto nel software Klipper \u00b6 Klipper \u00e8 un progetto open-source ed apprezziamo quando i collaboratori diagnosticano errori nel software. Ci sono informazioni importanti che saranno necessarie per correggere un bug. Per favore segui questi passaggi: Assicurati che il bug sia nel software Klipper. Se stai pensando \"c'\u00e8 un problema, non riesco a capire perch\u00e9, e quindi \u00e8 un bug di Klipper\", allora non aprire un problema (issue) con github. Nel caso qualcuno interessato e capace dovr\u00e0 prima ricercare e diagnosticare la causa origine del problema. Se desideri condividere i risultati della tua ricerca o verificare se altri utenti stanno riscontrando problemi simili, puoi cercare in Klipper Community Forum . Assicurati di eseguire il codice non modificato da https://github.com/Klipper3d/klipper . Se il codice \u00e8 stato modificato o \u00e8 stato ottenuto da un'altra fonte, dovrai riprodurre il problema sul codice non modificato da https://github.com/Klipper3d/klipper prima di segnalare un problema. Se possibile, esegui un comando M112 nella finestra del terminale di OctoPrint subito dopo che si \u00e8 verificato l'evento indesiderato. Ci\u00f2 fa s\u00ec che Klipper entri in uno \"stato di arresto - shutdown state\" e provocher\u00e0 la scrittura di ulteriori informazioni di debug nel file di registro. Ottieni il log file di Klipper dell'evento. Il file di registro \u00e8 stato progettato per rispondere alle domande pi\u00f9 comuni degli sviluppatori di Klipper sul software e sul suo ambiente (versione del software, tipo di hardware, configurazione, tempistica degli eventi e centinaia di altre domande). Il log file di Klipper si trova in /tmp/klippy.log sul computer \"host\" di Klipper (il Raspberry Pi). Un comando o utility \"scp\" o \"sftp\" \u00e8 necessario per copiare questo file di registro sul computer desktop. L'utilit\u00e0 \"scp\" viene fornita di serie con i desktop Linux e MacOS. Ci sono utilit\u00e0 scp disponibili gratuitamente per altri desktop (ad es. WinSCP). Se si utilizza un'interfaccia grafica scp che non pu\u00f2 copiare direttamente /tmp/klippy.log , fare clic ripetutamente su .. o cartella principale fino ad arrivare alla directory principale, fare clic sulla cartella tmp , quindi seleziona il file klippy.log . Copia il lof file sul desktop in modo che possa essere allegato a una segnalazione di problema. Non modificare in alcun modo il log file; non editare o ritagliare il log file. Solo il file di log completo non modificato fornisce le informazioni necessarie. Se il file di registro \u00e8 molto grande (ad esempio, maggiore di 2 MB), potrebbe essere necessario comprimerlo con zip o gzip. Apri un nuovo problema con github su https://github.com/Klipper3d/klipper/issues e fornisci una descrizione chiara del problema. Gli sviluppatori di Klipper devono capire quali passi sono stati intrapresi, quale era il risultato desiderato e quale risultato si \u00e8 effettivamente verificato. Il file di registro di Klipper deve essere allegato al ticket: Sto apportando modifiche che vorrei includere in Klipper \u00b6 Klipper \u00e8 un software open-source e apprezziamo i nuovi contributi. I nuovi contributi (sia per il codice che per la documentazione) vengono inviati tramite Github Pull Requests. Vedere [ CONTRIBUTING document per informazioni importanti. Esistono diversi documenti per sviluppatori . Se hai domande sul codice, puoi anche chiedere nel Klipper Community Forum o nel Klipper Community Discord . Se desideri fornire un aggiornamento sui tuoi progressi attuali, puoi aprire un problema (issue) con Github con la posizione del tuo codice, una panoramica delle modifiche e una descrizione del suo stato attuale.","title":"Contatti"},{"location":"Contact.html#contatti","text":"Questo documento fornisce informazioni di contatto per Klipper. Forum della comunit\u00e0 Chat Discord Ho una domanda su Klipper Ho una richiesta per una funzionalit\u00e0 Aiuto! Non funziona! Ho diagnosticato un difetto nel software Klipper Sto apportando modifiche che vorrei includere in Klipper","title":"Contatti"},{"location":"Contact.html#forum-della-comunita","text":"C'\u00e8 un server Klipper Community Discourse server per discussioni su Klipper.","title":"Forum della Comunit\u00e0"},{"location":"Contact.html#chat-discord","text":"C'\u00e8 un serve Discord dedicato a Klipper a: https://discord.klipper3d.org . Questo server \u00e8 gestito da una comunit\u00e0 di appassionati di Klipper dediti alle discussioni su Klipper. Consente agli utenti di chattare con altri utenti in tempo reale.","title":"Chat Discord"},{"location":"Contact.html#ho-una-domanda-su-klipper","text":"Molte domande che riceviamo hanno gi\u00e0 una risposta nella Klipper documentation . Per favore assicurati di leggere la documentazione e di seguire le indicazioni fornite. \u00c8 anche possibile cercare domande simili nel Klipper Community Forum . Se sei interessato a condividere le tue conoscenze ed esperienze con altri utenti di Klipper, puoi unirti al Klipper Community Forum o Klipper Discord Chat . Entrambe sono comunit\u00e0 in cui gli utenti di Klipper possono discutere di Klipper con altri utenti. Molte domande che riceviamo sono domande generiche sulla stampa 3D che non sono specifiche di Klipper. Se hai una domanda generica o stai riscontrando problemi di stampa generici, probabilmente otterrai una risposta migliore chiedendo in un forum generale sulla stampa 3D o in un forum dedicato all'hardware della tua stampante. Non aprire un problema (issue) su Klipper github per porre una domanda.","title":"Ho una domanda su Klipper"},{"location":"Contact.html#ho-una-richiesta-per-una-funzionalita","text":"Tutte le nuove funzionalit\u00e0 richiedono qualcuno interessato e in grado di implementare tale funzionalit\u00e0. Se sei interessato ad aiutare a implementare o testare una nuova funzionalit\u00e0, puoi cercare gli sviluppi coinvolti nel Klipper Community Forum . C'\u00e8 anche Klipper Discord Chat per le discussioni tra i collaboratori. Non aprire un problema (issue) in Klipper github per richiedere una funzionalit\u00e0.","title":"Ho una richiesta per una funzionalit\u00e0"},{"location":"Contact.html#aiuto-non-funziona","text":"Sfortunatamente, riceviamo molte pi\u00f9 richieste di aiuto di quante potremmo eventualmente rispondere. La maggior parte delle segnalazioni di problemi che vediamo vengono infine rintracciate in: Piccoli nell'hardware, o Non seguendo tutti i passaggi descritti nella documentazione di Klipper. In caso di problemi, ti consigliamo di leggere attentamente la Klipper documentation e di verificare che tutti i passaggi siano stati seguiti. Se si verifica un problema di stampa, si consiglia di ispezionare attentamente l'hardware della stampante (tutti i giunti, i cavi, le viti, ecc.) e verificare che non vi siano anomalie. Scopriamo che la maggior parte dei problemi di stampa non sono correlati al software Klipper. Se trovi un problema con l'hardware della stampante, probabilmente otterrai una risposta migliore cercando in un forum generale di stampa 3D o in un forum dedicato all'hardware della tua stampante. \u00c8 anche possibile cercare problemi simili in Klipper Community Forum . Se sei interessato a condividere le tue conoscenze ed esperienze con altri utenti di Klipper, puoi unirti al Klipper Community Forum o Klipper Discord Chat . Entrambe sono comunit\u00e0 in cui gli utenti di Klipper possono discutere di Klipper con altri utenti. Non aprire un problema (issue) in Klipper github per richiedere assistenza.","title":"Aiuto! Non funziona!"},{"location":"Contact.html#ho-diagnosticato-un-difetto-nel-software-klipper","text":"Klipper \u00e8 un progetto open-source ed apprezziamo quando i collaboratori diagnosticano errori nel software. Ci sono informazioni importanti che saranno necessarie per correggere un bug. Per favore segui questi passaggi: Assicurati che il bug sia nel software Klipper. Se stai pensando \"c'\u00e8 un problema, non riesco a capire perch\u00e9, e quindi \u00e8 un bug di Klipper\", allora non aprire un problema (issue) con github. Nel caso qualcuno interessato e capace dovr\u00e0 prima ricercare e diagnosticare la causa origine del problema. Se desideri condividere i risultati della tua ricerca o verificare se altri utenti stanno riscontrando problemi simili, puoi cercare in Klipper Community Forum . Assicurati di eseguire il codice non modificato da https://github.com/Klipper3d/klipper . Se il codice \u00e8 stato modificato o \u00e8 stato ottenuto da un'altra fonte, dovrai riprodurre il problema sul codice non modificato da https://github.com/Klipper3d/klipper prima di segnalare un problema. Se possibile, esegui un comando M112 nella finestra del terminale di OctoPrint subito dopo che si \u00e8 verificato l'evento indesiderato. Ci\u00f2 fa s\u00ec che Klipper entri in uno \"stato di arresto - shutdown state\" e provocher\u00e0 la scrittura di ulteriori informazioni di debug nel file di registro. Ottieni il log file di Klipper dell'evento. Il file di registro \u00e8 stato progettato per rispondere alle domande pi\u00f9 comuni degli sviluppatori di Klipper sul software e sul suo ambiente (versione del software, tipo di hardware, configurazione, tempistica degli eventi e centinaia di altre domande). Il log file di Klipper si trova in /tmp/klippy.log sul computer \"host\" di Klipper (il Raspberry Pi). Un comando o utility \"scp\" o \"sftp\" \u00e8 necessario per copiare questo file di registro sul computer desktop. L'utilit\u00e0 \"scp\" viene fornita di serie con i desktop Linux e MacOS. Ci sono utilit\u00e0 scp disponibili gratuitamente per altri desktop (ad es. WinSCP). Se si utilizza un'interfaccia grafica scp che non pu\u00f2 copiare direttamente /tmp/klippy.log , fare clic ripetutamente su .. o cartella principale fino ad arrivare alla directory principale, fare clic sulla cartella tmp , quindi seleziona il file klippy.log . Copia il lof file sul desktop in modo che possa essere allegato a una segnalazione di problema. Non modificare in alcun modo il log file; non editare o ritagliare il log file. Solo il file di log completo non modificato fornisce le informazioni necessarie. Se il file di registro \u00e8 molto grande (ad esempio, maggiore di 2 MB), potrebbe essere necessario comprimerlo con zip o gzip. Apri un nuovo problema con github su https://github.com/Klipper3d/klipper/issues e fornisci una descrizione chiara del problema. Gli sviluppatori di Klipper devono capire quali passi sono stati intrapresi, quale era il risultato desiderato e quale risultato si \u00e8 effettivamente verificato. Il file di registro di Klipper deve essere allegato al ticket:","title":"Ho diagnosticato un difetto nel software Klipper"},{"location":"Contact.html#sto-apportando-modifiche-che-vorrei-includere-in-klipper","text":"Klipper \u00e8 un software open-source e apprezziamo i nuovi contributi. I nuovi contributi (sia per il codice che per la documentazione) vengono inviati tramite Github Pull Requests. Vedere [ CONTRIBUTING document per informazioni importanti. Esistono diversi documenti per sviluppatori . Se hai domande sul codice, puoi anche chiedere nel Klipper Community Forum o nel Klipper Community Discord . Se desideri fornire un aggiornamento sui tuoi progressi attuali, puoi aprire un problema (issue) con Github con la posizione del tuo codice, una panoramica delle modifiche e una descrizione del suo stato attuale.","title":"Sto apportando modifiche che vorrei includere in Klipper"},{"location":"Debugging.html","text":"Debugging \u00b6 Questo documento descrive alcuni degli strumenti di debug di Klipper. Esecuzione dei test di regressione \u00b6 Il repository principale di Klipper GitHub utilizza \"github actions\" per eseguire una serie di test di regressione. Pu\u00f2 essere utile eseguire alcuni di questi test in locale. Il sorgente \"controllo spazi bianchi\" pu\u00f2 essere eseguito con: ./scripts/check_whitespace.sh La suite di test di regressione Klippy richiede \"dizionari di dati\" da molte piattaforme. Il modo pi\u00f9 semplice per ottenerli \u00e8 scaricarli da github . Una volta scaricati i dizionari di dati, utilizzare quanto segue per eseguire la suite di regressione: tar xfz klipper-dict-20??????.tar.gz ~/klippy-env/bin/python ~/klipper/scripts/test_klippy.py -d dict/ ~/klipper/test/klippy/*.test Invio manuale di comandi al microcontrollore \u00b6 Normalmente, il processo host klippy.py verrebbe utilizzato per tradurre i comandi gcode in comandi del microcontrollore Klipper. Tuttavia, \u00e8 anche possibile inviare manualmente questi comandi MCU (funzioni contrassegnate con la macro DECL_COMMAND() nel codice sorgente di Klipper). Per farlo, esegui: ~/klippy-env/bin/python ./klippy/console.py /tmp/pseudoserial Vedere il comando \"HELP\" all'interno dello strumento per ulteriori informazioni sulla sua funzionalit\u00e0. Sono disponibili alcune opzioni della riga di comando. Per ulteriori informazioni esegui: ~/klippy-env/bin/python ./klippy/console.py --help Traduzione di file gcode in comandi del microcontrollore \u00b6 Il codice host Klippy pu\u00f2 essere eseguito in modalit\u00e0 batch per produrre i comandi del microcontrollore di basso livello associati a un file gcode. L'ispezione di questi comandi di basso livello \u00e8 utile quando si cerca di comprendere le azioni dell'hardware di basso livello. Pu\u00f2 anche essere utile confrontare la differenza nei comandi del microcontrollore dopo una modifica del codice. Per eseguire Klippy in questa modalit\u00e0 batch, \u00e8 necessario un passaggio per generare il \"dizionario dati\" del microcontrollore. Questo viene fatto compilando il codice del microcontrollore per ottenere il file out/klipper.dict : make menuconfig make Una volta fatto quanto sopra \u00e8 possibile eseguire Klipper in modalit\u00e0 batch (vedi installazione per i passaggi necessari per costruire l'ambiente virtuale python e un file printer.cfg): ~/klippy-env/bin/python ./klippy/klippy.py ~/printer.cfg -i test.gcode -o test.serial -v -d out/klipper.dict Quanto sopra produrr\u00e0 un file test.serial con output seriale binario. Questo output pu\u00f2 essere tradotto in testo leggibile con: ~/klippy-env/bin/python ./klippy/parsedump.py out/klipper.dict test.serial > test.txt Il file risultante test.txt contiene un elenco leggibile di comandi del microcontrollore. La modalit\u00e0 batch disabilita alcuni comandi di risposta/richiesta per funzionare. Di conseguenza, ci saranno alcune differenze tra i comandi effettivi e l'output sopra. I dati generati sono utili per il test e l'ispezione; non \u00e8 utile per l'invio a un vero microcontrollore. Analisi del movimento e registrazione dei dati \u00b6 Klipper supporta la registrazione della cronologia dei movimenti interni, che pu\u00f2 essere analizzata in seguito. Per utilizzare questa funzione, Klipper deve essere avviato con Server API abilitato. La registrazione dei dati \u00e8 abilitata con lo strumento data_logger.py . Per esempio: ~/klipper/scripts/motan/data_logger.py /tmp/klippy_uds mylog Questo comando si collegher\u00e0 al Klipper API Server, sottoscriver\u00e0 le informazioni sullo stato e sul movimento e registrer\u00e0 i risultati. Vengono generati due file: un file di dati compresso e un file di indice (ad esempio, mylog.json.gz e mylog.index.gz ). Dopo aver avviato la registrazione, \u00e8 possibile completare le stampe e altre azioni: la registrazione continuer\u00e0 in background. Al termine della registrazione, premi ctrl-c per uscire dallo strumento data_logger.py . I file risultanti possono essere letti e rappresentati graficamente utilizzando lo strumento motan_graph.py . Per generare grafici su un Raspberry Pi, \u00e8 necessario un passaggio per installare il pacchetto \"matplotlib\": sudo apt-get update sudo apt-get install python-matplotlib Tuttavia, potrebbe essere pi\u00f9 conveniente copiare i file di dati su una macchina di classe desktop insieme al codice Python nella directory scripts/motan/ . Gli script di analisi del movimento dovrebbero essere eseguiti su qualsiasi macchina con una versione recente di Python e Matplotlib installata. I grafici possono essere generati con un comando come il seguente: ~/klipper/scripts/motan/motan_graph.py mylog -o mygraph.png One can use the -g option to specify the datasets to graph (it takes a Python literal containing a list of lists). For example: ~/klipper/scripts/motan/motan_graph.py mylog -g '[[\"trapq(toolhead,velocity)\"], [\"trapq(toolhead,accel)\"]]' L'elenco dei set di dati disponibili pu\u00f2 essere trovato usando l'opzione -l , ad esempio: ~/klipper/scripts/motan/motan_graph.py -l \u00c8 anche possibile specificare le opzioni di stampa matplotlib per ogni set di dati: ~/klipper/scripts/motan/motan_graph.py mylog -g '[[\"trapq(toolhead,velocity)?color=red&alpha=0.4\"]]' Sono disponibili molte opzioni di matplotlib; alcuni esempi sono \"color\", \"label\", \"alpha\" e \"linestyle\". Lo strumento motan_graph.py supporta molte altre opzioni della riga di comando: usa l'opzione --help per vedere un elenco. Pu\u00f2 anche essere conveniente visualizzare/modificare lo stesso script motan_graph.py . I log di dati grezzi prodotti dallo strumento data_logger.py seguono il formato descritto in Server API . Pu\u00f2 essere utile ispezionare i dati con un comando Unix come il seguente: gunzip < mylog.json.gz | tr '\\03' '\\n' | less Generare di grafici di carico \u00b6 Il file di registro di Klippy (/tmp/klippy.log) memorizza le statistiche sulla larghezza di banda, sul carico del microcontrollore e sul carico del buffer dell'host. Pu\u00f2 essere utile rappresentare graficamente queste statistiche dopo una stampa. Per generare un grafico, \u00e8 necessario un passaggio una tantum per installare il pacchetto \"matplotlib\": sudo apt-get update sudo apt-get install python-matplotlib Quindi i grafici possono essere prodotti con: ~/klipper/scripts/graphstats.py /tmp/klippy.log -o loadgraph.png Si pu\u00f2 quindi visualizzare il file loadgraph.png risultante. Possono essere prodotti diversi grafici. Per ulteriori informazioni esegui: ~/klipper/scripts/graphstats.py --help Estrazione di informazioni dal file klippy.log \u00b6 Anche il file di registro di Klippy (/tmp/klippy.log) contiene informazioni di debug. Esiste uno script logextract.py che pu\u00f2 essere utile quando si analizza l'arresto di un microcontrollore o un problema simile. In genere viene eseguito con qualcosa come: mkdir work_directory cd work_directory cp /tmp/klippy.log . ~/klipper/scripts/logextract.py ./klippy.log Lo script estrarr\u00e0 il file di configurazione della stampante ed estrarr\u00e0 le informazioni di arresto dell'MCU. I dump delle informazioni da un arresto dell'MCU (se presente) verranno riordinati in base al timestamp per facilitare la diagnosi degli scenari di causa ed effetto. Test con simulavr \u00b6 Lo strumento simulavr consente di simulare un microcontrollore Atmel ATmega. Questa sezione descrive come eseguire test di file gcode tramite simulavr. Si consiglia di eseguirlo su una macchina di classe desktop (non un Raspberry Pi) poich\u00e9 richiede una CPU significativa per funzionare in modo efficiente. Per utilizzare simulavr, scarica il pacchetto simulavr e compila con il supporto python. Nota che il sistema di build potrebbe aver bisogno di alcuni pacchetti (come swig) installati per costruire il modulo python. git clone git://git.savannah.nongnu.org/simulavr.git cd simulavr make python make build Assicurati che un file come ./build/pysimulavr/_pysimulavr.*.so sia presente dopo la compilazione di cui sopra: ls ./build/pysimulavr/_pysimulavr.*.so Questo comando dovrebbe segnalare un file specifico (ad es. ./build/pysimulavr/_pysimulavr.cpython-39-x86_64-linux-gnu.so ) e non un errore. Se utilizzi un sistema basato su Debian (Debian, Ubuntu, ecc.) puoi installare i seguenti pacchetti e generare file *.deb per l'installazione di simulavr a livello di sistema: sudo apt update sudo apt install g++ make cmake swig rst2pdf help2man texinfo make cfgclean python debian sudo dpkg -i build/debian/python3-simulavr*.deb Per compilare Klipper per l'uso in simulavr, eseguire: cd /path/to/klipper make menuconfig e compilare il software del microcontrollore per un AVR atmega644p e selezionare il supporto per l'emulazione del software SIMULAVR. Quindi si pu\u00f2 compilare Klipper (eseguire make ) e quindi avviare la simulazione con: PYTHONPATH=/path/to/simulavr/build/pysimulavr/ ./scripts/avrsim.py out/klipper.elf Nota che se hai installato python3-simulavr a livello di sistema, non \u00e8 necessario impostare PYTHONPATH e puoi semplicemente eseguire il simulatore come ./scripts/avrsim.py out/klipper.elf Quindi, con simulavr in esecuzione in un'altra finestra, \u00e8 possibile eseguire quanto segue per leggere gcode da un file (ad es. \"test.gcode\"), elaborarlo con Klippy e inviarlo a Klipper in esecuzione in simulavr (vedere installazione per i passaggi necessari per costruire l'ambiente virtuale Python): ~/klippy-env/bin/python ./klippy/klippy.py config/generic-simulavr.cfg -i test.gcode -v Utilizzo di simulavr con gtkwave \u00b6 Una caratteristica utile di simulavr \u00e8 la sua capacit\u00e0 di creare file di generazione di onde di segnale con l'esatta sincronizzazione degli eventi. Per fare ci\u00f2, segui le istruzioni sopra, ma esegui avrsim.py con una riga di comando come la seguente: PYTHONPATH=/path/to/simulavr/src/python/ ./scripts/avrsim.py out/klipper.elf -t PORTA.PORT,PORTC.PORT Quanto sopra creerebbe un file avrsim.vcd con informazioni su ogni modifica ai GPIO su PORTA e PORTB. Questo potrebbe quindi essere visualizzato usando gtkwave con: gtkwave avrsim.vcd","title":"Debugging"},{"location":"Debugging.html#debugging","text":"Questo documento descrive alcuni degli strumenti di debug di Klipper.","title":"Debugging"},{"location":"Debugging.html#esecuzione-dei-test-di-regressione","text":"Il repository principale di Klipper GitHub utilizza \"github actions\" per eseguire una serie di test di regressione. Pu\u00f2 essere utile eseguire alcuni di questi test in locale. Il sorgente \"controllo spazi bianchi\" pu\u00f2 essere eseguito con: ./scripts/check_whitespace.sh La suite di test di regressione Klippy richiede \"dizionari di dati\" da molte piattaforme. Il modo pi\u00f9 semplice per ottenerli \u00e8 scaricarli da github . Una volta scaricati i dizionari di dati, utilizzare quanto segue per eseguire la suite di regressione: tar xfz klipper-dict-20??????.tar.gz ~/klippy-env/bin/python ~/klipper/scripts/test_klippy.py -d dict/ ~/klipper/test/klippy/*.test","title":"Esecuzione dei test di regressione"},{"location":"Debugging.html#invio-manuale-di-comandi-al-microcontrollore","text":"Normalmente, il processo host klippy.py verrebbe utilizzato per tradurre i comandi gcode in comandi del microcontrollore Klipper. Tuttavia, \u00e8 anche possibile inviare manualmente questi comandi MCU (funzioni contrassegnate con la macro DECL_COMMAND() nel codice sorgente di Klipper). Per farlo, esegui: ~/klippy-env/bin/python ./klippy/console.py /tmp/pseudoserial Vedere il comando \"HELP\" all'interno dello strumento per ulteriori informazioni sulla sua funzionalit\u00e0. Sono disponibili alcune opzioni della riga di comando. Per ulteriori informazioni esegui: ~/klippy-env/bin/python ./klippy/console.py --help","title":"Invio manuale di comandi al microcontrollore"},{"location":"Debugging.html#traduzione-di-file-gcode-in-comandi-del-microcontrollore","text":"Il codice host Klippy pu\u00f2 essere eseguito in modalit\u00e0 batch per produrre i comandi del microcontrollore di basso livello associati a un file gcode. L'ispezione di questi comandi di basso livello \u00e8 utile quando si cerca di comprendere le azioni dell'hardware di basso livello. Pu\u00f2 anche essere utile confrontare la differenza nei comandi del microcontrollore dopo una modifica del codice. Per eseguire Klippy in questa modalit\u00e0 batch, \u00e8 necessario un passaggio per generare il \"dizionario dati\" del microcontrollore. Questo viene fatto compilando il codice del microcontrollore per ottenere il file out/klipper.dict : make menuconfig make Una volta fatto quanto sopra \u00e8 possibile eseguire Klipper in modalit\u00e0 batch (vedi installazione per i passaggi necessari per costruire l'ambiente virtuale python e un file printer.cfg): ~/klippy-env/bin/python ./klippy/klippy.py ~/printer.cfg -i test.gcode -o test.serial -v -d out/klipper.dict Quanto sopra produrr\u00e0 un file test.serial con output seriale binario. Questo output pu\u00f2 essere tradotto in testo leggibile con: ~/klippy-env/bin/python ./klippy/parsedump.py out/klipper.dict test.serial > test.txt Il file risultante test.txt contiene un elenco leggibile di comandi del microcontrollore. La modalit\u00e0 batch disabilita alcuni comandi di risposta/richiesta per funzionare. Di conseguenza, ci saranno alcune differenze tra i comandi effettivi e l'output sopra. I dati generati sono utili per il test e l'ispezione; non \u00e8 utile per l'invio a un vero microcontrollore.","title":"Traduzione di file gcode in comandi del microcontrollore"},{"location":"Debugging.html#analisi-del-movimento-e-registrazione-dei-dati","text":"Klipper supporta la registrazione della cronologia dei movimenti interni, che pu\u00f2 essere analizzata in seguito. Per utilizzare questa funzione, Klipper deve essere avviato con Server API abilitato. La registrazione dei dati \u00e8 abilitata con lo strumento data_logger.py . Per esempio: ~/klipper/scripts/motan/data_logger.py /tmp/klippy_uds mylog Questo comando si collegher\u00e0 al Klipper API Server, sottoscriver\u00e0 le informazioni sullo stato e sul movimento e registrer\u00e0 i risultati. Vengono generati due file: un file di dati compresso e un file di indice (ad esempio, mylog.json.gz e mylog.index.gz ). Dopo aver avviato la registrazione, \u00e8 possibile completare le stampe e altre azioni: la registrazione continuer\u00e0 in background. Al termine della registrazione, premi ctrl-c per uscire dallo strumento data_logger.py . I file risultanti possono essere letti e rappresentati graficamente utilizzando lo strumento motan_graph.py . Per generare grafici su un Raspberry Pi, \u00e8 necessario un passaggio per installare il pacchetto \"matplotlib\": sudo apt-get update sudo apt-get install python-matplotlib Tuttavia, potrebbe essere pi\u00f9 conveniente copiare i file di dati su una macchina di classe desktop insieme al codice Python nella directory scripts/motan/ . Gli script di analisi del movimento dovrebbero essere eseguiti su qualsiasi macchina con una versione recente di Python e Matplotlib installata. I grafici possono essere generati con un comando come il seguente: ~/klipper/scripts/motan/motan_graph.py mylog -o mygraph.png One can use the -g option to specify the datasets to graph (it takes a Python literal containing a list of lists). For example: ~/klipper/scripts/motan/motan_graph.py mylog -g '[[\"trapq(toolhead,velocity)\"], [\"trapq(toolhead,accel)\"]]' L'elenco dei set di dati disponibili pu\u00f2 essere trovato usando l'opzione -l , ad esempio: ~/klipper/scripts/motan/motan_graph.py -l \u00c8 anche possibile specificare le opzioni di stampa matplotlib per ogni set di dati: ~/klipper/scripts/motan/motan_graph.py mylog -g '[[\"trapq(toolhead,velocity)?color=red&alpha=0.4\"]]' Sono disponibili molte opzioni di matplotlib; alcuni esempi sono \"color\", \"label\", \"alpha\" e \"linestyle\". Lo strumento motan_graph.py supporta molte altre opzioni della riga di comando: usa l'opzione --help per vedere un elenco. Pu\u00f2 anche essere conveniente visualizzare/modificare lo stesso script motan_graph.py . I log di dati grezzi prodotti dallo strumento data_logger.py seguono il formato descritto in Server API . Pu\u00f2 essere utile ispezionare i dati con un comando Unix come il seguente: gunzip < mylog.json.gz | tr '\\03' '\\n' | less","title":"Analisi del movimento e registrazione dei dati"},{"location":"Debugging.html#generare-di-grafici-di-carico","text":"Il file di registro di Klippy (/tmp/klippy.log) memorizza le statistiche sulla larghezza di banda, sul carico del microcontrollore e sul carico del buffer dell'host. Pu\u00f2 essere utile rappresentare graficamente queste statistiche dopo una stampa. Per generare un grafico, \u00e8 necessario un passaggio una tantum per installare il pacchetto \"matplotlib\": sudo apt-get update sudo apt-get install python-matplotlib Quindi i grafici possono essere prodotti con: ~/klipper/scripts/graphstats.py /tmp/klippy.log -o loadgraph.png Si pu\u00f2 quindi visualizzare il file loadgraph.png risultante. Possono essere prodotti diversi grafici. Per ulteriori informazioni esegui: ~/klipper/scripts/graphstats.py --help","title":"Generare di grafici di carico"},{"location":"Debugging.html#estrazione-di-informazioni-dal-file-klippylog","text":"Anche il file di registro di Klippy (/tmp/klippy.log) contiene informazioni di debug. Esiste uno script logextract.py che pu\u00f2 essere utile quando si analizza l'arresto di un microcontrollore o un problema simile. In genere viene eseguito con qualcosa come: mkdir work_directory cd work_directory cp /tmp/klippy.log . ~/klipper/scripts/logextract.py ./klippy.log Lo script estrarr\u00e0 il file di configurazione della stampante ed estrarr\u00e0 le informazioni di arresto dell'MCU. I dump delle informazioni da un arresto dell'MCU (se presente) verranno riordinati in base al timestamp per facilitare la diagnosi degli scenari di causa ed effetto.","title":"Estrazione di informazioni dal file klippy.log"},{"location":"Debugging.html#test-con-simulavr","text":"Lo strumento simulavr consente di simulare un microcontrollore Atmel ATmega. Questa sezione descrive come eseguire test di file gcode tramite simulavr. Si consiglia di eseguirlo su una macchina di classe desktop (non un Raspberry Pi) poich\u00e9 richiede una CPU significativa per funzionare in modo efficiente. Per utilizzare simulavr, scarica il pacchetto simulavr e compila con il supporto python. Nota che il sistema di build potrebbe aver bisogno di alcuni pacchetti (come swig) installati per costruire il modulo python. git clone git://git.savannah.nongnu.org/simulavr.git cd simulavr make python make build Assicurati che un file come ./build/pysimulavr/_pysimulavr.*.so sia presente dopo la compilazione di cui sopra: ls ./build/pysimulavr/_pysimulavr.*.so Questo comando dovrebbe segnalare un file specifico (ad es. ./build/pysimulavr/_pysimulavr.cpython-39-x86_64-linux-gnu.so ) e non un errore. Se utilizzi un sistema basato su Debian (Debian, Ubuntu, ecc.) puoi installare i seguenti pacchetti e generare file *.deb per l'installazione di simulavr a livello di sistema: sudo apt update sudo apt install g++ make cmake swig rst2pdf help2man texinfo make cfgclean python debian sudo dpkg -i build/debian/python3-simulavr*.deb Per compilare Klipper per l'uso in simulavr, eseguire: cd /path/to/klipper make menuconfig e compilare il software del microcontrollore per un AVR atmega644p e selezionare il supporto per l'emulazione del software SIMULAVR. Quindi si pu\u00f2 compilare Klipper (eseguire make ) e quindi avviare la simulazione con: PYTHONPATH=/path/to/simulavr/build/pysimulavr/ ./scripts/avrsim.py out/klipper.elf Nota che se hai installato python3-simulavr a livello di sistema, non \u00e8 necessario impostare PYTHONPATH e puoi semplicemente eseguire il simulatore come ./scripts/avrsim.py out/klipper.elf Quindi, con simulavr in esecuzione in un'altra finestra, \u00e8 possibile eseguire quanto segue per leggere gcode da un file (ad es. \"test.gcode\"), elaborarlo con Klippy e inviarlo a Klipper in esecuzione in simulavr (vedere installazione per i passaggi necessari per costruire l'ambiente virtuale Python): ~/klippy-env/bin/python ./klippy/klippy.py config/generic-simulavr.cfg -i test.gcode -v","title":"Test con simulavr"},{"location":"Debugging.html#utilizzo-di-simulavr-con-gtkwave","text":"Una caratteristica utile di simulavr \u00e8 la sua capacit\u00e0 di creare file di generazione di onde di segnale con l'esatta sincronizzazione degli eventi. Per fare ci\u00f2, segui le istruzioni sopra, ma esegui avrsim.py con una riga di comando come la seguente: PYTHONPATH=/path/to/simulavr/src/python/ ./scripts/avrsim.py out/klipper.elf -t PORTA.PORT,PORTC.PORT Quanto sopra creerebbe un file avrsim.vcd con informazioni su ogni modifica ai GPIO su PORTA e PORTB. Questo potrebbe quindi essere visualizzato usando gtkwave con: gtkwave avrsim.vcd","title":"Utilizzo di simulavr con gtkwave"},{"location":"Delta_Calibrate.html","text":"Calibrazione delta \u00b6 Questo documento descrive il sistema di calibrazione automatica di Klipper per stampanti \"delta\". La calibrazione delta implica la ricerca delle posizioni dei finecorsa della torre, degli angoli della torre, del raggio delta e delle lunghezze del braccio delta. Queste impostazioni controllano il movimento della stampante su una stampante delta. Ognuno di questi parametri ha un impatto non evidente e non lineare ed \u00e8 difficile calibrarli manualmente. Al contrario, il codice di calibrazione del software pu\u00f2 fornire risultati eccellenti in pochi minuti di tempo. Non \u00e8 necessario alcun hardware di rilevamento speciale. In definitiva, la calibrazione delta dipende dalla precisione degli interruttori di fine corsa della torre. Se si utilizzano i driver per motori passo-passo Trinamic, considerare l'abilitazione del rilevamento fase endstop per migliorare la precisione di tali interruttori. Sonda automatica vs manuale \u00b6 Klipper supporta la calibrazione dei parametri delta tramite un metodo di sonda manuale o tramite una sonda Z automatica. Numerosi kit di stampanti delta sono dotati di sonde Z automatiche che non sono sufficientemente accurate (in particolare, piccole differenze nella lunghezza del braccio possono causare l'inclinazione dell'effettore che pu\u00f2 distorcere una sonda automatica). Se si utilizza una sonda automatica, prima calibrare la sonda e quindi verificare la presenza di un bias posizione sonda . Se la sonda automatica ha una polarizzazione superiore a 25 micron (0,025 mm), utilizzare invece la sonda manuale. Il probing manuale richiede solo pochi minuti ed elimina l'errore introdotto dalla sonda. Se si utilizza una sonda montata sul lato dell'hotend (ovvero ha un offset X o Y), tenere presente che l'esecuzione della calibrazione delta invalider\u00e0 i risultati della calibrazione della sonda. Questi tipi di sonde sono raramente adatti per l'uso su un delta (poich\u00e9 una minore inclinazione dell'effettore risulter\u00e0 in una distorsione della posizione della sonda). Se si utilizza comunque la sonda, assicurarsi di eseguire nuovamente la calibrazione della sonda dopo qualsiasi calibrazione delta. Calibrazione delta di base \u00b6 Klipper ha un comando DELTA_CALIBRATE che pu\u00f2 eseguire la calibrazione delta di base. Questo comando sonda sette diversi punti sul letto e calcola nuovi valori per gli angoli della torre, i punti terminali della torre e il raggio delta. Per eseguire questa calibrazione devono essere forniti i parametri delta iniziali (lunghezze dei bracci, raggio e posizioni dei finecorsa) e devono avere una precisione di pochi millimetri. La maggior parte dei kit della stampante delta fornisce questi parametri: configurare la stampante con queste impostazioni predefinite iniziali e quindi eseguire il comando DELTA_CALIBRATE come descritto di seguito. Se non sono disponibili impostazioni predefinite, cercare online una guida alla calibrazione delta che possa fornire un punto di partenza di base. Durante il processo di calibrazione delta potrebbe essere necessario che la stampante sondi al di sotto di quello che altrimenti sarebbe considerato il piano del piatto. \u00c8 tipico consentire ci\u00f2 durante la calibrazione aggiornando la configurazione in modo che minimum_z_position=-5 della stampante. (Una volta completata la calibrazione, \u00e8 possibile rimuovere questa impostazione dalla configurazione.) Ci sono due modi per eseguire la procedura: probing manuale ( DELTA_CALIBRATE METHOD=manual ) e automatica ( DELTA_CALIBRATE ). Il metodo di rilevamento manuale sposter\u00e0 la testa vicino al piatto e quindi attender\u00e0 che l'utente segua i passaggi descritti in \"test della carta\" per determinare la distanza effettiva tra l'ugello e letto nel luogo indicato. Per eseguire la misura di base, assicurati che la configurazione abbia una sezione [delta_calibrate] definita e quindi esegui lo strumento: G28 DELTA_CALIBRATE METHOD=manual Dopo aver sondato i sette punti verranno calcolati i nuovi parametri delta. Salva e applica questi parametri eseguendo: SAVE_CONFIG La calibrazione di base dovrebbe fornire parametri delta sufficientemente accurati per la stampa di base. Se si tratta di una nuova stampante, questo \u00e8 un buon momento per stampare alcuni oggetti di base e verificarne la funzionalit\u00e0 generale. Calibrazione delta migliorata \u00b6 La calibrazione delta di base generalmente fa un buon lavoro nel calcolo dei parametri delta in modo tale che l'ugello sia alla distanza corretta dal letto. Tuttavia, non tenta di calibrare la precisione dimensionale X e Y. \u00c8 una buona idea eseguire una calibrazione delta avanzata per verificare l'accuratezza dimensionale. Questa procedura di calibrazione richiede la stampa di un oggetto di prova e la misurazione di parti di tale oggetto di prova con un calibro digitale. Prima di eseguire una calibrazione delta avanzata, \u00e8 necessario eseguire la calibrazione delta di base (tramite il comando DELTA_CALIBRATE) e salvare i risultati (tramite il comando SAVE_CONFIG). Assicurati che non siano state apportate modifiche degne di nota alla configurazione della stampante n\u00e9 all'hardware dall'ultima esecuzione di una calibrazione delta di base (se non sei sicuro, esegui nuovamente la calibrazione delta di base , incluso SAVE_CONFIG, appena prima della stampa l'oggetto di prova descritto di seguito.) Usa uno slicer per generare il G-code dal file docs/prints/calibrate_size.stl . Estrudere l'oggetto a bassa velocit\u00e0 (ad es. 40 mm/s). Se possibile, usa una plastica rigida (come il PLA) per l'oggetto. L'oggetto ha un diametro di 140 mm. Se questo \u00e8 troppo grande per la stampante, \u00e8 possibile ridimensionarlo (ma assicurati di ridimensionare uniformemente entrambi gli assi X e Y). Se la stampante supporta stampe significativamente pi\u00f9 grandi, \u00e8 anche possibile aumentare le dimensioni di questo oggetto. Un formato pi\u00f9 grande pu\u00f2 migliorare la precisione della misurazione, ma una buona adesione di stampa \u00e8 pi\u00f9 importante di un formato di stampa pi\u00f9 grande. Stampa l'oggetto di prova e attendi che si raffreddi completamente. I comandi descritti di seguito devono essere eseguiti con le stesse impostazioni della stampante utilizzate per stampare l'oggetto di calibrazione (non eseguire DELTA_CALIBRATE tra la stampa e la misurazione, o fare qualcosa che altrimenti modificherebbe la configurazione della stampante). Se possibile, esegui le misurazioni descritte di seguito mentre l'oggetto \u00e8 ancora attaccato al piano di stampa, ma non preoccuparti se la parte si stacca dal letto: cerca solo di evitare di piegare l'oggetto durante l'esecuzione delle misurazioni. Inizia misurando la distanza tra il pilastro centrale e il pilastro accanto all'etichetta \"A\" (che dovrebbe anche puntare verso la torre \"A\"). Quindi procedere in senso antiorario e misurare le distanze tra il pilastro centrale e gli altri pilastri (distanza dal centro al pilastro attraverso l'etichetta C, distanza dal centro al pilastro con l'etichetta B, ecc.). Inserisci questi parametri in Klipper con un elenco separato da virgole di numeri in virgola mobile: DELTA_ANALYZE CENTER_DISTS=<a_dist>,<far_c_dist>,<b_dist>,<far_a_dist>,<c_dist>,<far_b_dist> Fornisci i valori senza spazi tra di loro. Quindi misurare la distanza tra il montante A e il montante di fronte all'etichetta C. Quindi andare in senso antiorario e misurare la distanza tra il pilastro di fronte a C e il pilastro B, la distanza tra il pilastro B e il pilastro di fronte a A, e cos\u00ec via. Inserisci questi parametri in Klipper: DELTA_ANALYZE OUTER_DISTS=<a_to_far_c>,<far_c_to_b>,<b_to_far_a>,<far_a_to_c>,<c_to_far_b>,<far_b_to_a> A questo punto va bene rimuovere l'oggetto dal letto. Le misure finali sono dei pilastri stessi. Misurare la dimensione del pilastro centrale lungo il raggio A, poi il raggio B e poi il raggio C. Inseriscili in Klipper: DELTA_ANALYZE CENTER_PILLAR_WIDTHS=<a>,<b>,<c> Le misure finali sono dei pilastri esterni. Inizia misurando la distanza del pilastro A lungo la linea da A al pilastro di fronte a C. Quindi andare in senso antiorario e misurare i restanti pilastri esterni (pilastro di fronte a C lungo la linea a B, pilastro B lungo la linea a pilastro di fronte ad A, ecc.). E inseriscili in Klipper: DELTA_ANALYZE OUTER_PILLAR_WIDTHS=<a>,<far_c>,<b>,<far_a>,<c>,<far_b> Se l'oggetto \u00e8 stato ridimensionato a una dimensione inferiore o superiore, fornire il fattore di scala utilizzato durante il taglio dell'oggetto: DELTA_ANALYZE SCALE=1.0 (Un valore di scala di 2,0 significherebbe che l'oggetto \u00e8 il doppio della sua dimensione originale, 0,5 sarebbe la met\u00e0 della sua dimensione originale.) Infine, esegui la calibrazione delta avanzata eseguendo: DELTA_ANALYZE CALIBRATE=extended Il completamento di questo comando pu\u00f2 richiedere diversi minuti. Dopo il completamento, calcoler\u00e0 i parametri delta aggiornati (raggio delta, angoli della torre, posizioni dei finecorsa e lunghezze dei bracci). Utilizzare il comando SAVE_CONFIG per salvare e applicare le impostazioni: SAVE_CONFIG Il comando SAVE_CONFIG salver\u00e0 sia i parametri delta aggiornati che le informazioni dalle misurazioni della distanza. Anche i futuri comandi DELTA_CALIBRATE utilizzeranno queste informazioni sulla distanza. Non tentare di reinserire le misurazioni grezze della distanza dopo aver eseguito SAVE_CONFIG, poich\u00e9 questo comando modifica la configurazione della stampante e le misurazioni grezze non vengono pi\u00f9 applicate. Note aggiuntive \u00b6 Se la stampante delta ha una buona precisione dimensionale, la distanza tra due pilastri qualsiasi dovrebbe essere di circa 74 mm e la larghezza di ogni pilastro dovrebbe essere di circa 9 mm. (In particolare, l'obiettivo \u00e8 che la distanza tra due pilastri qualsiasi meno la larghezza di uno dei pilastri sia esattamente 65 mm.) In caso di imprecisione dimensionale nella parte, la routine DELTA_ANALYZE calcoler\u00e0 nuovi parametri delta utilizzando entrambe le misurazioni della distanza e le misurazioni dell'altezza precedenti dall'ultimo comando DELTA_CALIBRATE. DELTA_ANALYZE pu\u00f2 produrre parametri delta sorprendenti. Ad esempio, pu\u00f2 suggerire lunghezze dei bracci che non corrispondono alle lunghezze effettive dei bracci della stampante. Nonostante ci\u00f2, i test hanno dimostrato che DELTA_ANALYZE produce spesso risultati superiori. Si ritiene che i parametri delta calcolati siano in grado di tenere conto di lievi errori in altre parti dell'hardware. Ad esempio, piccole differenze nella lunghezza del braccio possono comportare un'inclinazione dell'effettore e parte di tale inclinazione pu\u00f2 essere spiegata regolando i parametri della lunghezza del braccio. Utilizzo della mesh del piatto su un delta \u00b6 \u00c8 possibile utilizzare bed mesh su un delta. Tuttavia, \u00e8 importante ottenere una buona calibrazione delta prima di abilitare una mesh del letto. L'esecuzione della mesh del letto con una scarsa calibrazione delta comporter\u00e0 risultati confusi e scarsi. Si noti che l'esecuzione della calibrazione delta invalider\u00e0 qualsiasi mesh del piatto precedentemente ottenuto. Dopo aver eseguito una nuova calibrazione delta, assicurati di eseguire nuovamente BED_MESH_CALIBRATE.","title":"Calibrazione delta"},{"location":"Delta_Calibrate.html#calibrazione-delta","text":"Questo documento descrive il sistema di calibrazione automatica di Klipper per stampanti \"delta\". La calibrazione delta implica la ricerca delle posizioni dei finecorsa della torre, degli angoli della torre, del raggio delta e delle lunghezze del braccio delta. Queste impostazioni controllano il movimento della stampante su una stampante delta. Ognuno di questi parametri ha un impatto non evidente e non lineare ed \u00e8 difficile calibrarli manualmente. Al contrario, il codice di calibrazione del software pu\u00f2 fornire risultati eccellenti in pochi minuti di tempo. Non \u00e8 necessario alcun hardware di rilevamento speciale. In definitiva, la calibrazione delta dipende dalla precisione degli interruttori di fine corsa della torre. Se si utilizzano i driver per motori passo-passo Trinamic, considerare l'abilitazione del rilevamento fase endstop per migliorare la precisione di tali interruttori.","title":"Calibrazione delta"},{"location":"Delta_Calibrate.html#sonda-automatica-vs-manuale","text":"Klipper supporta la calibrazione dei parametri delta tramite un metodo di sonda manuale o tramite una sonda Z automatica. Numerosi kit di stampanti delta sono dotati di sonde Z automatiche che non sono sufficientemente accurate (in particolare, piccole differenze nella lunghezza del braccio possono causare l'inclinazione dell'effettore che pu\u00f2 distorcere una sonda automatica). Se si utilizza una sonda automatica, prima calibrare la sonda e quindi verificare la presenza di un bias posizione sonda . Se la sonda automatica ha una polarizzazione superiore a 25 micron (0,025 mm), utilizzare invece la sonda manuale. Il probing manuale richiede solo pochi minuti ed elimina l'errore introdotto dalla sonda. Se si utilizza una sonda montata sul lato dell'hotend (ovvero ha un offset X o Y), tenere presente che l'esecuzione della calibrazione delta invalider\u00e0 i risultati della calibrazione della sonda. Questi tipi di sonde sono raramente adatti per l'uso su un delta (poich\u00e9 una minore inclinazione dell'effettore risulter\u00e0 in una distorsione della posizione della sonda). Se si utilizza comunque la sonda, assicurarsi di eseguire nuovamente la calibrazione della sonda dopo qualsiasi calibrazione delta.","title":"Sonda automatica vs manuale"},{"location":"Delta_Calibrate.html#calibrazione-delta-di-base","text":"Klipper ha un comando DELTA_CALIBRATE che pu\u00f2 eseguire la calibrazione delta di base. Questo comando sonda sette diversi punti sul letto e calcola nuovi valori per gli angoli della torre, i punti terminali della torre e il raggio delta. Per eseguire questa calibrazione devono essere forniti i parametri delta iniziali (lunghezze dei bracci, raggio e posizioni dei finecorsa) e devono avere una precisione di pochi millimetri. La maggior parte dei kit della stampante delta fornisce questi parametri: configurare la stampante con queste impostazioni predefinite iniziali e quindi eseguire il comando DELTA_CALIBRATE come descritto di seguito. Se non sono disponibili impostazioni predefinite, cercare online una guida alla calibrazione delta che possa fornire un punto di partenza di base. Durante il processo di calibrazione delta potrebbe essere necessario che la stampante sondi al di sotto di quello che altrimenti sarebbe considerato il piano del piatto. \u00c8 tipico consentire ci\u00f2 durante la calibrazione aggiornando la configurazione in modo che minimum_z_position=-5 della stampante. (Una volta completata la calibrazione, \u00e8 possibile rimuovere questa impostazione dalla configurazione.) Ci sono due modi per eseguire la procedura: probing manuale ( DELTA_CALIBRATE METHOD=manual ) e automatica ( DELTA_CALIBRATE ). Il metodo di rilevamento manuale sposter\u00e0 la testa vicino al piatto e quindi attender\u00e0 che l'utente segua i passaggi descritti in \"test della carta\" per determinare la distanza effettiva tra l'ugello e letto nel luogo indicato. Per eseguire la misura di base, assicurati che la configurazione abbia una sezione [delta_calibrate] definita e quindi esegui lo strumento: G28 DELTA_CALIBRATE METHOD=manual Dopo aver sondato i sette punti verranno calcolati i nuovi parametri delta. Salva e applica questi parametri eseguendo: SAVE_CONFIG La calibrazione di base dovrebbe fornire parametri delta sufficientemente accurati per la stampa di base. Se si tratta di una nuova stampante, questo \u00e8 un buon momento per stampare alcuni oggetti di base e verificarne la funzionalit\u00e0 generale.","title":"Calibrazione delta di base"},{"location":"Delta_Calibrate.html#calibrazione-delta-migliorata","text":"La calibrazione delta di base generalmente fa un buon lavoro nel calcolo dei parametri delta in modo tale che l'ugello sia alla distanza corretta dal letto. Tuttavia, non tenta di calibrare la precisione dimensionale X e Y. \u00c8 una buona idea eseguire una calibrazione delta avanzata per verificare l'accuratezza dimensionale. Questa procedura di calibrazione richiede la stampa di un oggetto di prova e la misurazione di parti di tale oggetto di prova con un calibro digitale. Prima di eseguire una calibrazione delta avanzata, \u00e8 necessario eseguire la calibrazione delta di base (tramite il comando DELTA_CALIBRATE) e salvare i risultati (tramite il comando SAVE_CONFIG). Assicurati che non siano state apportate modifiche degne di nota alla configurazione della stampante n\u00e9 all'hardware dall'ultima esecuzione di una calibrazione delta di base (se non sei sicuro, esegui nuovamente la calibrazione delta di base , incluso SAVE_CONFIG, appena prima della stampa l'oggetto di prova descritto di seguito.) Usa uno slicer per generare il G-code dal file docs/prints/calibrate_size.stl . Estrudere l'oggetto a bassa velocit\u00e0 (ad es. 40 mm/s). Se possibile, usa una plastica rigida (come il PLA) per l'oggetto. L'oggetto ha un diametro di 140 mm. Se questo \u00e8 troppo grande per la stampante, \u00e8 possibile ridimensionarlo (ma assicurati di ridimensionare uniformemente entrambi gli assi X e Y). Se la stampante supporta stampe significativamente pi\u00f9 grandi, \u00e8 anche possibile aumentare le dimensioni di questo oggetto. Un formato pi\u00f9 grande pu\u00f2 migliorare la precisione della misurazione, ma una buona adesione di stampa \u00e8 pi\u00f9 importante di un formato di stampa pi\u00f9 grande. Stampa l'oggetto di prova e attendi che si raffreddi completamente. I comandi descritti di seguito devono essere eseguiti con le stesse impostazioni della stampante utilizzate per stampare l'oggetto di calibrazione (non eseguire DELTA_CALIBRATE tra la stampa e la misurazione, o fare qualcosa che altrimenti modificherebbe la configurazione della stampante). Se possibile, esegui le misurazioni descritte di seguito mentre l'oggetto \u00e8 ancora attaccato al piano di stampa, ma non preoccuparti se la parte si stacca dal letto: cerca solo di evitare di piegare l'oggetto durante l'esecuzione delle misurazioni. Inizia misurando la distanza tra il pilastro centrale e il pilastro accanto all'etichetta \"A\" (che dovrebbe anche puntare verso la torre \"A\"). Quindi procedere in senso antiorario e misurare le distanze tra il pilastro centrale e gli altri pilastri (distanza dal centro al pilastro attraverso l'etichetta C, distanza dal centro al pilastro con l'etichetta B, ecc.). Inserisci questi parametri in Klipper con un elenco separato da virgole di numeri in virgola mobile: DELTA_ANALYZE CENTER_DISTS=<a_dist>,<far_c_dist>,<b_dist>,<far_a_dist>,<c_dist>,<far_b_dist> Fornisci i valori senza spazi tra di loro. Quindi misurare la distanza tra il montante A e il montante di fronte all'etichetta C. Quindi andare in senso antiorario e misurare la distanza tra il pilastro di fronte a C e il pilastro B, la distanza tra il pilastro B e il pilastro di fronte a A, e cos\u00ec via. Inserisci questi parametri in Klipper: DELTA_ANALYZE OUTER_DISTS=<a_to_far_c>,<far_c_to_b>,<b_to_far_a>,<far_a_to_c>,<c_to_far_b>,<far_b_to_a> A questo punto va bene rimuovere l'oggetto dal letto. Le misure finali sono dei pilastri stessi. Misurare la dimensione del pilastro centrale lungo il raggio A, poi il raggio B e poi il raggio C. Inseriscili in Klipper: DELTA_ANALYZE CENTER_PILLAR_WIDTHS=<a>,<b>,<c> Le misure finali sono dei pilastri esterni. Inizia misurando la distanza del pilastro A lungo la linea da A al pilastro di fronte a C. Quindi andare in senso antiorario e misurare i restanti pilastri esterni (pilastro di fronte a C lungo la linea a B, pilastro B lungo la linea a pilastro di fronte ad A, ecc.). E inseriscili in Klipper: DELTA_ANALYZE OUTER_PILLAR_WIDTHS=<a>,<far_c>,<b>,<far_a>,<c>,<far_b> Se l'oggetto \u00e8 stato ridimensionato a una dimensione inferiore o superiore, fornire il fattore di scala utilizzato durante il taglio dell'oggetto: DELTA_ANALYZE SCALE=1.0 (Un valore di scala di 2,0 significherebbe che l'oggetto \u00e8 il doppio della sua dimensione originale, 0,5 sarebbe la met\u00e0 della sua dimensione originale.) Infine, esegui la calibrazione delta avanzata eseguendo: DELTA_ANALYZE CALIBRATE=extended Il completamento di questo comando pu\u00f2 richiedere diversi minuti. Dopo il completamento, calcoler\u00e0 i parametri delta aggiornati (raggio delta, angoli della torre, posizioni dei finecorsa e lunghezze dei bracci). Utilizzare il comando SAVE_CONFIG per salvare e applicare le impostazioni: SAVE_CONFIG Il comando SAVE_CONFIG salver\u00e0 sia i parametri delta aggiornati che le informazioni dalle misurazioni della distanza. Anche i futuri comandi DELTA_CALIBRATE utilizzeranno queste informazioni sulla distanza. Non tentare di reinserire le misurazioni grezze della distanza dopo aver eseguito SAVE_CONFIG, poich\u00e9 questo comando modifica la configurazione della stampante e le misurazioni grezze non vengono pi\u00f9 applicate.","title":"Calibrazione delta migliorata"},{"location":"Delta_Calibrate.html#note-aggiuntive","text":"Se la stampante delta ha una buona precisione dimensionale, la distanza tra due pilastri qualsiasi dovrebbe essere di circa 74 mm e la larghezza di ogni pilastro dovrebbe essere di circa 9 mm. (In particolare, l'obiettivo \u00e8 che la distanza tra due pilastri qualsiasi meno la larghezza di uno dei pilastri sia esattamente 65 mm.) In caso di imprecisione dimensionale nella parte, la routine DELTA_ANALYZE calcoler\u00e0 nuovi parametri delta utilizzando entrambe le misurazioni della distanza e le misurazioni dell'altezza precedenti dall'ultimo comando DELTA_CALIBRATE. DELTA_ANALYZE pu\u00f2 produrre parametri delta sorprendenti. Ad esempio, pu\u00f2 suggerire lunghezze dei bracci che non corrispondono alle lunghezze effettive dei bracci della stampante. Nonostante ci\u00f2, i test hanno dimostrato che DELTA_ANALYZE produce spesso risultati superiori. Si ritiene che i parametri delta calcolati siano in grado di tenere conto di lievi errori in altre parti dell'hardware. Ad esempio, piccole differenze nella lunghezza del braccio possono comportare un'inclinazione dell'effettore e parte di tale inclinazione pu\u00f2 essere spiegata regolando i parametri della lunghezza del braccio.","title":"Note aggiuntive"},{"location":"Delta_Calibrate.html#utilizzo-della-mesh-del-piatto-su-un-delta","text":"\u00c8 possibile utilizzare bed mesh su un delta. Tuttavia, \u00e8 importante ottenere una buona calibrazione delta prima di abilitare una mesh del letto. L'esecuzione della mesh del letto con una scarsa calibrazione delta comporter\u00e0 risultati confusi e scarsi. Si noti che l'esecuzione della calibrazione delta invalider\u00e0 qualsiasi mesh del piatto precedentemente ottenuto. Dopo aver eseguito una nuova calibrazione delta, assicurati di eseguire nuovamente BED_MESH_CALIBRATE.","title":"Utilizzo della mesh del piatto su un delta"},{"location":"Endstop_Phase.html","text":"Fase di fine corsa \u00b6 Questo documento descrive il sistema di finecorsa di Klipper regolato sulla fase degli stepper. Questa funzionalit\u00e0 pu\u00f2 migliorare la precisione degli interruttori di fine corsa tradizionali. \u00c8 particolarmente utile quando si utilizza un driver per motori passo-passo Trinamic con configurazione runtime. Un tipico interruttore di fine corsa ha una precisione di circa 100 micron. (Ogni volta l'interruttore pu\u00f2 attivarsi leggermente prima o leggermente dopo.) Sebbene si tratti di un errore relativamente piccolo, pu\u00f2 causare artefatti indesiderati. In particolare, questa deviazione di posizione pu\u00f2 essere evidente quando si stampa il primo strato di un oggetto. Al contrario, i tipici motori passo-passo possono ottenere una precisione significativamente maggiore. Il meccanismo di fine corsa con regolazione della fase pu\u00f2 utilizzare la precisione dei motori passo-passo per migliorare la precisione degli interruttori di fine corsa. Un motore passo-passo si muove ciclicamente attraverso una serie di fasi fino a completare quattro \"passi completi\". Quindi, un motore passo-passo che utilizza 16 micro-passi avrebbe 64 fasi e quando si muove in direzione positiva passerebbe in rassegna le fasi: 0, 1, 2, ... 61, 62, 63, 0, 1, 2, ecc. Fondamentalmente, quando il motore passo-passo si trova in una posizione particolare su una guida lineare, dovrebbe essere sempre nella stessa fase passo-passo. Pertanto, quando un carrello fa scattare l'interruttore di fine corsa, lo stepper che controlla quel carrello dovrebbe essere sempre nella stessa fase del motore passo-passo. Il sistema di fase finecorsa di Klipper combina la fase del motore con l'attivazione del finecorsa per migliorare la precisione. Per utilizzare questa funzionalit\u00e0 \u00e8 necessario essere in grado di identificare la fase del motore passo-passo. Se si utilizzano i driver Trinamic TMC2130, TMC2208, TMC2224 o TMC2660 in modalit\u00e0 di configurazione runtime (cio\u00e8 non in modalit\u00e0 stand-alone), Klipper pu\u00f2 interrogare la fase stepper dal driver. (\u00c8 anche possibile utilizzare questo sistema su driver stepper tradizionali se \u00e8 possibile ripristinare in modo affidabile i driver stepper - vedere sotto per i dettagli.) Taratura fasi dei finecorsa \u00b6 Se si utilizzano driver Trinamic per motori passo-passo in configurazione runtime, \u00e8 possibile calibrare le fasi di fine corsa utilizzando il comando ENDSTOP_PHASE_CALIBRATE. Inizia aggiungendo quanto segue al file di configurazione: [endstop_phase] Quindi RIAVVIARE la stampante ed eseguire un comando G28 seguito da un comando ENDSTOP_PHASE_CALIBRATE . Quindi spostare la testina in una nuova posizione ed eseguire nuovamente G28 . Prova a spostare la testina in diverse posizioni ed esegui nuovamente G28 da ciascuna posizione. Esegui almeno cinque comandi G28 . Dopo aver eseguito quanto sopra, il comando ENDSTOP_PHASE_CALIBRATE riporter\u00e0 spesso la stessa (o quasi) fase per lo stepper. Questa fase pu\u00f2 essere salvata nel file di configurazione in modo che tutti i futuri comandi G28 utilizzino quella fase. (Quindi, nelle future operazioni di homing, Klipper otterr\u00e0 la stessa posizione anche se il finecorsa si attiva un po' prima o un po' dopo.) Per salvare la fase di fine corsa per un particolare motore passo-passo, eseguire qualcosa di simile a: ENDSTOP_PHASE_CALIBRATE STEPPER=stepper_z Esegui quanto sopra per tutti gli stepper che desideri salvare. Tipicamente, si usa questo su stepper_z per stampanti cartesiane e corexy e per stepper_a, stepper_b e stepper_c su stampanti delta. Infine, eseguire quanto segue per aggiornare il file di configurazione con i dati: SAVE_CONFIG Note aggiuntive \u00b6 Questa funzione \u00e8 particolarmente utile sulle stampanti delta e sul fine corsa Z delle stampanti cartesiane/corexy. \u00c8 possibile utilizzare questa funzione sui fine corsa XY delle stampanti cartesiane, ma ci\u00f2 non \u00e8 particolarmente utile poich\u00e9 \u00e8 improbabile che un errore minore nella posizione dell'arresto X/Y influisca sulla qualit\u00e0 di stampa. Non \u00e8 valido utilizzare questa funzione sugli arresti XY delle stampanti corexy (poich\u00e9 la posizione XY non \u00e8 determinata da un singolo stepper sulla cinematica corexy). Non \u00e8 valido utilizzare questa funzione su una stampante che utilizza un fine corsa Z \"probe:z_virtual_endstop\" (poich\u00e9 la fase stepper \u00e8 stabile solo se il fine corsa si trova in una posizione statica su una guida). Dopo aver calibrato la fase del finecorsa, se il finecorsa viene successivamente spostato o regolato, sar\u00e0 necessario ricalibrarlo. Rimuovere i dati di calibrazione dal file di configurazione ed eseguire nuovamente i passaggi precedenti. Per utilizzare questo sistema, il finecorsa deve essere sufficientemente preciso da identificare la posizione dello stepper entro due \"passi completi\". Quindi, ad esempio, se uno stepper utilizza 16 micropassi con una distanza del passo di 0,005 mm, il finecorsa deve avere una precisione di almeno 0,160 mm. Se si ottengono messaggi di errore di tipo \"Finecorsa stepper_z non corretto\", potrebbero essere dovuti a un finecorsa che non \u00e8 sufficientemente accurato. Se la ricalibrazione non aiuta, disabilitare le regolazioni della fase finecorsa rimuovendole dal file di configurazione. Se si utilizza un tradizionale asse Z controllato da stepper (come su una stampante cartesiana o corexy) insieme alle tradizionali viti di livellamento del letto, \u00e8 anche possibile utilizzare questo sistema per fare in modo che ogni strato di stampa venga eseguito su un confine \"passo completo\" . Per abilitare questa funzione, assicurati che lo slicer del G-Code sia configurato con un'altezza del livello che sia un multiplo di un \"passo completo\", abilita manualmente l'opzione endstop_align_zero nella sezione di configurazione endstop_phase (vedi config reference per ulteriori dettagli), quindi livellare nuovamente le viti del piatto. \u00c8 possibile utilizzare questo sistema con driver per motori passo-passo tradizionali (non Trinamici). Tuttavia, per fare ci\u00f2 \u00e8 necessario assicurarsi che i driver del motore passo-passo vengano ripristinati ogni volta che viene ripristinato il microcontrollore. (Se i due vengono sempre ripristinati insieme, Klipper pu\u00f2 determinare la fase dello stepper tracciando il numero totale di passaggi che ha comandato allo stepper di muoversi.) Attualmente, l'unico modo per farlo in modo affidabile \u00e8 se sia il microcontrollore che il motore passo-passo i driver siano alimentati esclusivamente da USB e che l'alimentazione USB sia fornita da un host in esecuzione su un Raspberry Pi. In questa situazione \u00e8 possibile specificare una configurazione mcu con \"restart_method: rpi_usb\" - quell'opzione far\u00e0 in modo che il microcontrollore venga sempre ripristinato tramite un ripristino dell'alimentazione USB, il che farebbe in modo che sia il microcontrollore che i driver del motore passo-passo siano resettare insieme. Se si utilizza questo meccanismo, \u00e8 necessario configurare manualmente le sezioni di configurazione \"trigger_phase\" (consultare config reference per i dettagli).","title":"Fase di fine corsa"},{"location":"Endstop_Phase.html#fase-di-fine-corsa","text":"Questo documento descrive il sistema di finecorsa di Klipper regolato sulla fase degli stepper. Questa funzionalit\u00e0 pu\u00f2 migliorare la precisione degli interruttori di fine corsa tradizionali. \u00c8 particolarmente utile quando si utilizza un driver per motori passo-passo Trinamic con configurazione runtime. Un tipico interruttore di fine corsa ha una precisione di circa 100 micron. (Ogni volta l'interruttore pu\u00f2 attivarsi leggermente prima o leggermente dopo.) Sebbene si tratti di un errore relativamente piccolo, pu\u00f2 causare artefatti indesiderati. In particolare, questa deviazione di posizione pu\u00f2 essere evidente quando si stampa il primo strato di un oggetto. Al contrario, i tipici motori passo-passo possono ottenere una precisione significativamente maggiore. Il meccanismo di fine corsa con regolazione della fase pu\u00f2 utilizzare la precisione dei motori passo-passo per migliorare la precisione degli interruttori di fine corsa. Un motore passo-passo si muove ciclicamente attraverso una serie di fasi fino a completare quattro \"passi completi\". Quindi, un motore passo-passo che utilizza 16 micro-passi avrebbe 64 fasi e quando si muove in direzione positiva passerebbe in rassegna le fasi: 0, 1, 2, ... 61, 62, 63, 0, 1, 2, ecc. Fondamentalmente, quando il motore passo-passo si trova in una posizione particolare su una guida lineare, dovrebbe essere sempre nella stessa fase passo-passo. Pertanto, quando un carrello fa scattare l'interruttore di fine corsa, lo stepper che controlla quel carrello dovrebbe essere sempre nella stessa fase del motore passo-passo. Il sistema di fase finecorsa di Klipper combina la fase del motore con l'attivazione del finecorsa per migliorare la precisione. Per utilizzare questa funzionalit\u00e0 \u00e8 necessario essere in grado di identificare la fase del motore passo-passo. Se si utilizzano i driver Trinamic TMC2130, TMC2208, TMC2224 o TMC2660 in modalit\u00e0 di configurazione runtime (cio\u00e8 non in modalit\u00e0 stand-alone), Klipper pu\u00f2 interrogare la fase stepper dal driver. (\u00c8 anche possibile utilizzare questo sistema su driver stepper tradizionali se \u00e8 possibile ripristinare in modo affidabile i driver stepper - vedere sotto per i dettagli.)","title":"Fase di fine corsa"},{"location":"Endstop_Phase.html#taratura-fasi-dei-finecorsa","text":"Se si utilizzano driver Trinamic per motori passo-passo in configurazione runtime, \u00e8 possibile calibrare le fasi di fine corsa utilizzando il comando ENDSTOP_PHASE_CALIBRATE. Inizia aggiungendo quanto segue al file di configurazione: [endstop_phase] Quindi RIAVVIARE la stampante ed eseguire un comando G28 seguito da un comando ENDSTOP_PHASE_CALIBRATE . Quindi spostare la testina in una nuova posizione ed eseguire nuovamente G28 . Prova a spostare la testina in diverse posizioni ed esegui nuovamente G28 da ciascuna posizione. Esegui almeno cinque comandi G28 . Dopo aver eseguito quanto sopra, il comando ENDSTOP_PHASE_CALIBRATE riporter\u00e0 spesso la stessa (o quasi) fase per lo stepper. Questa fase pu\u00f2 essere salvata nel file di configurazione in modo che tutti i futuri comandi G28 utilizzino quella fase. (Quindi, nelle future operazioni di homing, Klipper otterr\u00e0 la stessa posizione anche se il finecorsa si attiva un po' prima o un po' dopo.) Per salvare la fase di fine corsa per un particolare motore passo-passo, eseguire qualcosa di simile a: ENDSTOP_PHASE_CALIBRATE STEPPER=stepper_z Esegui quanto sopra per tutti gli stepper che desideri salvare. Tipicamente, si usa questo su stepper_z per stampanti cartesiane e corexy e per stepper_a, stepper_b e stepper_c su stampanti delta. Infine, eseguire quanto segue per aggiornare il file di configurazione con i dati: SAVE_CONFIG","title":"Taratura fasi dei finecorsa"},{"location":"Endstop_Phase.html#note-aggiuntive","text":"Questa funzione \u00e8 particolarmente utile sulle stampanti delta e sul fine corsa Z delle stampanti cartesiane/corexy. \u00c8 possibile utilizzare questa funzione sui fine corsa XY delle stampanti cartesiane, ma ci\u00f2 non \u00e8 particolarmente utile poich\u00e9 \u00e8 improbabile che un errore minore nella posizione dell'arresto X/Y influisca sulla qualit\u00e0 di stampa. Non \u00e8 valido utilizzare questa funzione sugli arresti XY delle stampanti corexy (poich\u00e9 la posizione XY non \u00e8 determinata da un singolo stepper sulla cinematica corexy). Non \u00e8 valido utilizzare questa funzione su una stampante che utilizza un fine corsa Z \"probe:z_virtual_endstop\" (poich\u00e9 la fase stepper \u00e8 stabile solo se il fine corsa si trova in una posizione statica su una guida). Dopo aver calibrato la fase del finecorsa, se il finecorsa viene successivamente spostato o regolato, sar\u00e0 necessario ricalibrarlo. Rimuovere i dati di calibrazione dal file di configurazione ed eseguire nuovamente i passaggi precedenti. Per utilizzare questo sistema, il finecorsa deve essere sufficientemente preciso da identificare la posizione dello stepper entro due \"passi completi\". Quindi, ad esempio, se uno stepper utilizza 16 micropassi con una distanza del passo di 0,005 mm, il finecorsa deve avere una precisione di almeno 0,160 mm. Se si ottengono messaggi di errore di tipo \"Finecorsa stepper_z non corretto\", potrebbero essere dovuti a un finecorsa che non \u00e8 sufficientemente accurato. Se la ricalibrazione non aiuta, disabilitare le regolazioni della fase finecorsa rimuovendole dal file di configurazione. Se si utilizza un tradizionale asse Z controllato da stepper (come su una stampante cartesiana o corexy) insieme alle tradizionali viti di livellamento del letto, \u00e8 anche possibile utilizzare questo sistema per fare in modo che ogni strato di stampa venga eseguito su un confine \"passo completo\" . Per abilitare questa funzione, assicurati che lo slicer del G-Code sia configurato con un'altezza del livello che sia un multiplo di un \"passo completo\", abilita manualmente l'opzione endstop_align_zero nella sezione di configurazione endstop_phase (vedi config reference per ulteriori dettagli), quindi livellare nuovamente le viti del piatto. \u00c8 possibile utilizzare questo sistema con driver per motori passo-passo tradizionali (non Trinamici). Tuttavia, per fare ci\u00f2 \u00e8 necessario assicurarsi che i driver del motore passo-passo vengano ripristinati ogni volta che viene ripristinato il microcontrollore. (Se i due vengono sempre ripristinati insieme, Klipper pu\u00f2 determinare la fase dello stepper tracciando il numero totale di passaggi che ha comandato allo stepper di muoversi.) Attualmente, l'unico modo per farlo in modo affidabile \u00e8 se sia il microcontrollore che il motore passo-passo i driver siano alimentati esclusivamente da USB e che l'alimentazione USB sia fornita da un host in esecuzione su un Raspberry Pi. In questa situazione \u00e8 possibile specificare una configurazione mcu con \"restart_method: rpi_usb\" - quell'opzione far\u00e0 in modo che il microcontrollore venga sempre ripristinato tramite un ripristino dell'alimentazione USB, il che farebbe in modo che sia il microcontrollore che i driver del motore passo-passo siano resettare insieme. Se si utilizza questo meccanismo, \u00e8 necessario configurare manualmente le sezioni di configurazione \"trigger_phase\" (consultare config reference per i dettagli).","title":"Note aggiuntive"},{"location":"Example_Configs.html","text":"Esempi di configurazioni \u00b6 Questo documento contiene le linee guida per contribuire a creare un esempio di configurazione di Klipper nella repository github di Klipper (situato nella directory config ). Nota che il server Klipper Community Discourse \u00e8 anche una risorsa utile per trovare e condividere file di configurazione. Linee guida \u00b6 Seleziona il prefisso del nome del file di configurazione appropriato: Il prefisso printer viene utilizzato per le stampanti stock vendute da un produttore tradizionale. Il prefisso generic viene utilizzato per una scheda per stampante 3d che pu\u00f2 essere utilizzata in molti diversi tipi di stampanti. Il prefisso kit \u00e8 per le stampanti 3d assemblate secondo una specifica ampiamente utilizzata. Queste stampanti \"kit\" sono generalmente distinte dalle normali \"stampanti\" in quanto non sono vendute da un produttore. Il prefisso sample viene utilizzato per i \"ritagli\" di configurazione che \u00e8 possibile copiare e incollare nel file di configurazione principale. Il prefisso example viene utilizzato per descrivere la cinematica della stampante. Questo tipo di configurazione viene in genere aggiunto solo insieme al codice per un nuovo tipo di cinematica della stampante. Tutti i file di configurazione devono terminare con un suffisso .cfg . I file di configurazione della stampante devono terminare con un anno seguito da .cfg (ad es. -2019.cfg ). In questo caso, l'anno \u00e8 un anno approssimativo in cui \u00e8 stata venduta la stampante specificata. Non utilizzare spazi o caratteri speciali nel nome del file di configurazione. Il nome del file deve contenere solo i caratteri A-Z , a-z , 0-9 , - e . . Klipper deve essere in grado di avviare il file di configurazione di esempio printer , generic e kit senza errori. Questi file di configurazione devono essere aggiunti al test di regressione test/klippy/printers.test . Aggiungi nuovi file di configurazione a quel test case nella sezione appropriata e in ordine alfabetico all'interno di quella sezione. La configurazione di esempio dovrebbe essere per la configurazione \"stock\" della stampante. (Ci sono troppe configurazioni \"personalizzate\" da tenere traccia nel repository principale di Klipper.) Allo stesso modo, aggiungiamo solo file di configurazione di esempio per stampanti, kit e schede che hanno la popolarit\u00e0 principale (ad esempio, dovrebbero essercene almeno 100 in uso attivo). Prendi in considerazione l'utilizzo del server Klipper Community Discourse per altre configurazioni. Only specify those devices present on the given printer or board. Do not specify settings specific to your particular setup. For generic config files, only those devices on the mainboard should be described. For example, it would not make sense to add a display config section to a \"generic\" config as there is no way to know if the board will be attached to that type of display. If the board has a specific hardware port to facilitate an optional peripheral (eg, a bltouch port) then one can add a \"commented out\" config section for the given device. Non specificare pressure_advance in una configurazione di esempio, poich\u00e9 quel valore \u00e8 specifico del filamento, non dell'hardware della stampante. Allo stesso modo, non specificare le impostazioni max_extrude_only_velocity n\u00e9 max_extrude_only_accel . Non specificare una sezione di configurazione contenente un percorso host o hardware host. Ad esempio, non specificare le sezioni di configurazione [virtual_sdcard] n\u00e9 [temperature_host] . Definire solo le macro che utilizzano funzionalit\u00e0 specifiche per la stampante specificata o per definire i G-code comunemente emessi dagli slicer configurati per la stampante specificata. Where possible, it is best to use the same wording, phrasing, indentation, and section ordering as the existing config files. The top of each config file should list the type of micro-controller the user should select during \"make menuconfig\". It should also have a reference to \"docs/Config_Reference.md\". Non copiare la documentazione sul campo nei file di configurazione di esempio. (In questo modo si crea un onere di manutenzione poich\u00e9 un aggiornamento della documentazione richiederebbe quindi la modifica in molti punti.) I file di configurazione di esempio non devono contenere una sezione \"SAVE_CONFIG\". Se necessario, copiare i campi rilevanti dalla sezione SAVE_CONFIG alla sezione appropriata nell'area di configurazione principale. Usa la sintassi field: value invece di field=value . Quando si aggiunge la rotation_distance a un estrusore \u00e8 preferibile specificare un gear_ratio se l'estrusore ha un meccanismo di ingranaggi. Ci aspettiamo che la rotation_distance nelle configurazioni di esempio sia correlata alla circonferenza dell'ingranaggio nell'estrusore: normalmente \u00e8 nell'intervallo da 20 a 35 mm. Quando si specifica un gear_ratio \u00e8 preferibile specificare gli ingranaggi effettivi sul meccanismo (ad esempio, preferire gear_ratio: 80:20 su gear_ratio: 4:1 ). Per ulteriori informazioni, vedere il documento sulla distanza di rotazione . Evitare di definire valori di campo impostati sul valore predefinito. Ad esempio, non si dovrebbe specificare min_extrude_temp: 170 poich\u00e9 questo \u00e8 gi\u00e0 il valore predefinito. Ove possibile, le righe non devono superare le 80 colonne. Evita di aggiungere messaggi di attribuzione o revisione ai file di configurazione. (Ad esempio, evita di aggiungere righe come \"questo file \u00e8 stato creato da...\".) Inserisci l'attribuzione e cambia la cronologia nel messaggio di commit git. Non utilizzare alcuna funzionalit\u00e0 deprecata nel file di configurazione di esempio. Non disabilitare un sistema di sicurezza predefinito in un file di configurazione di esempio. Ad esempio, una configurazione non dovrebbe specificare una max_extrude_cross_section personalizzata. Non abilitare le funzionalit\u00e0 di debug. Ad esempio, non dovrebbe esserci una sezione di configurazione force_move . Tutte le schede note supportate da Klipper possono utilizzare la velocit\u00e0 di trasmissione seriale predefinita di 250000. Non consigliare una velocit\u00e0 di trasmissione diversa in un file di configurazione di esempio. I file di configurazione di esempio vengono inviati creando una \"richiesta pull\" di github. Si prega di seguire anche le indicazioni nel documento per contributi .","title":"Esempi di configurazioni"},{"location":"Example_Configs.html#esempi-di-configurazioni","text":"Questo documento contiene le linee guida per contribuire a creare un esempio di configurazione di Klipper nella repository github di Klipper (situato nella directory config ). Nota che il server Klipper Community Discourse \u00e8 anche una risorsa utile per trovare e condividere file di configurazione.","title":"Esempi di configurazioni"},{"location":"Example_Configs.html#linee-guida","text":"Seleziona il prefisso del nome del file di configurazione appropriato: Il prefisso printer viene utilizzato per le stampanti stock vendute da un produttore tradizionale. Il prefisso generic viene utilizzato per una scheda per stampante 3d che pu\u00f2 essere utilizzata in molti diversi tipi di stampanti. Il prefisso kit \u00e8 per le stampanti 3d assemblate secondo una specifica ampiamente utilizzata. Queste stampanti \"kit\" sono generalmente distinte dalle normali \"stampanti\" in quanto non sono vendute da un produttore. Il prefisso sample viene utilizzato per i \"ritagli\" di configurazione che \u00e8 possibile copiare e incollare nel file di configurazione principale. Il prefisso example viene utilizzato per descrivere la cinematica della stampante. Questo tipo di configurazione viene in genere aggiunto solo insieme al codice per un nuovo tipo di cinematica della stampante. Tutti i file di configurazione devono terminare con un suffisso .cfg . I file di configurazione della stampante devono terminare con un anno seguito da .cfg (ad es. -2019.cfg ). In questo caso, l'anno \u00e8 un anno approssimativo in cui \u00e8 stata venduta la stampante specificata. Non utilizzare spazi o caratteri speciali nel nome del file di configurazione. Il nome del file deve contenere solo i caratteri A-Z , a-z , 0-9 , - e . . Klipper deve essere in grado di avviare il file di configurazione di esempio printer , generic e kit senza errori. Questi file di configurazione devono essere aggiunti al test di regressione test/klippy/printers.test . Aggiungi nuovi file di configurazione a quel test case nella sezione appropriata e in ordine alfabetico all'interno di quella sezione. La configurazione di esempio dovrebbe essere per la configurazione \"stock\" della stampante. (Ci sono troppe configurazioni \"personalizzate\" da tenere traccia nel repository principale di Klipper.) Allo stesso modo, aggiungiamo solo file di configurazione di esempio per stampanti, kit e schede che hanno la popolarit\u00e0 principale (ad esempio, dovrebbero essercene almeno 100 in uso attivo). Prendi in considerazione l'utilizzo del server Klipper Community Discourse per altre configurazioni. Only specify those devices present on the given printer or board. Do not specify settings specific to your particular setup. For generic config files, only those devices on the mainboard should be described. For example, it would not make sense to add a display config section to a \"generic\" config as there is no way to know if the board will be attached to that type of display. If the board has a specific hardware port to facilitate an optional peripheral (eg, a bltouch port) then one can add a \"commented out\" config section for the given device. Non specificare pressure_advance in una configurazione di esempio, poich\u00e9 quel valore \u00e8 specifico del filamento, non dell'hardware della stampante. Allo stesso modo, non specificare le impostazioni max_extrude_only_velocity n\u00e9 max_extrude_only_accel . Non specificare una sezione di configurazione contenente un percorso host o hardware host. Ad esempio, non specificare le sezioni di configurazione [virtual_sdcard] n\u00e9 [temperature_host] . Definire solo le macro che utilizzano funzionalit\u00e0 specifiche per la stampante specificata o per definire i G-code comunemente emessi dagli slicer configurati per la stampante specificata. Where possible, it is best to use the same wording, phrasing, indentation, and section ordering as the existing config files. The top of each config file should list the type of micro-controller the user should select during \"make menuconfig\". It should also have a reference to \"docs/Config_Reference.md\". Non copiare la documentazione sul campo nei file di configurazione di esempio. (In questo modo si crea un onere di manutenzione poich\u00e9 un aggiornamento della documentazione richiederebbe quindi la modifica in molti punti.) I file di configurazione di esempio non devono contenere una sezione \"SAVE_CONFIG\". Se necessario, copiare i campi rilevanti dalla sezione SAVE_CONFIG alla sezione appropriata nell'area di configurazione principale. Usa la sintassi field: value invece di field=value . Quando si aggiunge la rotation_distance a un estrusore \u00e8 preferibile specificare un gear_ratio se l'estrusore ha un meccanismo di ingranaggi. Ci aspettiamo che la rotation_distance nelle configurazioni di esempio sia correlata alla circonferenza dell'ingranaggio nell'estrusore: normalmente \u00e8 nell'intervallo da 20 a 35 mm. Quando si specifica un gear_ratio \u00e8 preferibile specificare gli ingranaggi effettivi sul meccanismo (ad esempio, preferire gear_ratio: 80:20 su gear_ratio: 4:1 ). Per ulteriori informazioni, vedere il documento sulla distanza di rotazione . Evitare di definire valori di campo impostati sul valore predefinito. Ad esempio, non si dovrebbe specificare min_extrude_temp: 170 poich\u00e9 questo \u00e8 gi\u00e0 il valore predefinito. Ove possibile, le righe non devono superare le 80 colonne. Evita di aggiungere messaggi di attribuzione o revisione ai file di configurazione. (Ad esempio, evita di aggiungere righe come \"questo file \u00e8 stato creato da...\".) Inserisci l'attribuzione e cambia la cronologia nel messaggio di commit git. Non utilizzare alcuna funzionalit\u00e0 deprecata nel file di configurazione di esempio. Non disabilitare un sistema di sicurezza predefinito in un file di configurazione di esempio. Ad esempio, una configurazione non dovrebbe specificare una max_extrude_cross_section personalizzata. Non abilitare le funzionalit\u00e0 di debug. Ad esempio, non dovrebbe esserci una sezione di configurazione force_move . Tutte le schede note supportate da Klipper possono utilizzare la velocit\u00e0 di trasmissione seriale predefinita di 250000. Non consigliare una velocit\u00e0 di trasmissione diversa in un file di configurazione di esempio. I file di configurazione di esempio vengono inviati creando una \"richiesta pull\" di github. Si prega di seguire anche le indicazioni nel documento per contributi .","title":"Linee guida"},{"location":"Exclude_Object.html","text":"Escludi oggetti \u00b6 The [exclude_object] module allows Klipper to exclude objects while a print is in progress. To enable this feature include an exclude_object config section (also see the command reference and sample-macros.cfg file for a Marlin/RepRapFirmware compatible M486 G-Code macro.) A differenza di altre opzioni del firmware della stampante 3D, una stampante che esegue Klipper utilizza una suite di componenti e gli utenti hanno molte opzioni tra cui scegliere. Pertanto, al fine di fornire un'esperienza utente coerente, il modulo [exclude_object] stabilir\u00e0 un contratto o una sorta di API. Il contratto copre il contenuto del file gcode, come viene controllato lo stato interno del modulo e come tale stato viene fornito ai client. Panoramica del flusso di lavoro \u00b6 Un tipico flusso di lavoro per la stampa di un file potrebbe essere simile a: Lo slicing \u00e8 completato e il file viene caricato per la stampa. Durante il caricamento, il file viene elaborato e gli indicatori [exclude_object] vengono aggiunti al file. In alternativa, i filtri dei dati possono essere configurati per preparare i marcatori di esclusione degli oggetti in modo nativo o nella propria fase di pre-elaborazione. All'avvio della stampa, Klipper ripristiner\u00e0 [exclude_object] status . Quando Klipper elabora il blocco EXCLUDE_OBJECT_DEFINE , aggiorner\u00e0 lo stato con gli oggetti conosciuti e lo passer\u00e0 ai client. Il client pu\u00f2 utilizzare tali informazioni per presentare un'interfaccia all'utente in modo che sia possibile tenere traccia dei progressi. Klipper aggiorner\u00e0 lo stato per includere l'oggetto attualmente in stampa che il client pu\u00f2 utilizzare per scopi di visualizzazione. Se l'utente richiede la cancellazione di un oggetto, il client invier\u00e0 un comando EXCLUDE_OBJECT NAME=<nome> a Klipper. Quando Klipper elabora il comando, aggiunger\u00e0 l'oggetto all'elenco degli oggetti esclusi e aggiorner\u00e0 lo stato per i client. Il client ricever\u00e0 lo stato aggiornato da Klipper e potr\u00e0 utilizzare tali informazioni per aggiornare lo stato dell'oggetto nell'interfaccia utente. Al termine della stampa, lo stato [exclude_object] continuer\u00e0 a essere disponibile fino a quando un'altra azione non lo reimposta. Il file GCode \u00b6 L'elaborazione specializzata del gcode necessaria per supportare l'esclusione di oggetti non rientra negli obiettivi di progettazione principali di Klipper. Pertanto, questo modulo richiede che il file venga elaborato prima di essere inviato a Klipper per la stampa. L'utilizzo di uno script di post-elaborazione nello slicer o il middleware che elabora il file durante il caricamento sono due possibilit\u00e0 per preparare il file per Klipper. Uno script di post-elaborazione di riferimento \u00e8 disponibile sia come eseguibile che come libreria Python, vedere cancelobject-preprocessor . Definizioni di oggetti \u00b6 Il comando EXCLUDE_OBJECT_DEFINE viene utilizzato per fornire un riepilogo di ogni oggetto nel file gcode da stampare. Fornisce un riepilogo di un oggetto nel file. Gli oggetti non hanno bisogno di essere definiti per essere referenziati da altri comandi. Lo scopo principale di questo comando \u00e8 fornire informazioni all'interfaccia utente senza dover analizzare l'intero file gcode. Le definizioni degli oggetti sono denominate per consentire agli utenti di selezionare facilmente un oggetto da escludere e possono essere forniti metadati aggiuntivi per consentire la visualizzazione grafica dell'annullamento. I metadati attualmente definiti includono una coordinata X,Y \"CENTRO\" e un elenco \"POLYGON\" di punti X,Y che rappresentano un contorno minimo dell'oggetto. Potrebbe trattarsi di un semplice riquadro di delimitazione o di uno guscio complicato per mostrare visualizzazioni pi\u00f9 dettagliate degli oggetti stampati. Soprattutto quando i file gcode includono pi\u00f9 parti con regioni di delimitazione sovrapposte, i punti centrali diventano difficili da distinguere visivamente. POLYGONS deve essere un array compatibile con json di tuple punto [X,Y] senza spazi. Ulteriori parametri verranno salvati come stringhe nella definizione dell'oggetto e forniti negli aggiornamenti di stato. EXCLUDE_OBJECT_DEFINE NAME=calibration_pyramid CENTER=50,50 POLYGON=[[40,40],[50,60],[60,40]] All available G-Code commands are documented in the G-Code Reference Informazioni sullo stato \u00b6 The state of this module is provided to clients by the exclude_object status . Lo stato viene ripristinato quando: Il firmware di Klipper viene riavviato. C'\u00e8 un reset della [virtual_sdcard] . In particolare, questo viene ripristinato da Klipper all'inizio di una stampa. Quando viene emesso un comando EXCLUDE_OBJECT_DEFINE RESET=1 . L'elenco degli oggetti definiti \u00e8 rappresentato nel campo di stato exclude_object.objects . In un file gcode ben definito, questo sar\u00e0 fatto con i comandi EXCLUDE_OBJECT_DEFINE all'inizio del file. Ci\u00f2 fornir\u00e0 ai client i nomi e le coordinate degli oggetti in modo che l'interfaccia utente possa fornire una rappresentazione grafica degli oggetti, se lo si desidera. Man mano che la stampa procede, il campo di stato exclude_object.current_object verr\u00e0 aggiornato mentre Klipper elabora i comandi EXCLUDE_OBJECT_START e EXCLUDE_OBJECT_END . Il campo oggetto_corrente sar\u00e0 impostato anche se l'oggetto \u00e8 stato escluso. Gli oggetti non definiti contrassegnati con un EXCLUDE_OBJECT_START verranno aggiunti agli oggetti conosciuti per facilitare i suggerimenti dell'interfaccia utente, senza metadati aggiuntivi. Quando vengono emessi i comandi EXCLUDE_OBJECT , l'elenco degli oggetti esclusi viene fornito nell'array exclude_object.excluded_objects . Poich\u00e9 Klipper guarda avanti per elaborare il prossimo gcode, potrebbe esserci un ritardo tra l'emissione del comando e l'aggiornamento dello stato.","title":"Escludi oggetti"},{"location":"Exclude_Object.html#escludi-oggetti","text":"The [exclude_object] module allows Klipper to exclude objects while a print is in progress. To enable this feature include an exclude_object config section (also see the command reference and sample-macros.cfg file for a Marlin/RepRapFirmware compatible M486 G-Code macro.) A differenza di altre opzioni del firmware della stampante 3D, una stampante che esegue Klipper utilizza una suite di componenti e gli utenti hanno molte opzioni tra cui scegliere. Pertanto, al fine di fornire un'esperienza utente coerente, il modulo [exclude_object] stabilir\u00e0 un contratto o una sorta di API. Il contratto copre il contenuto del file gcode, come viene controllato lo stato interno del modulo e come tale stato viene fornito ai client.","title":"Escludi oggetti"},{"location":"Exclude_Object.html#panoramica-del-flusso-di-lavoro","text":"Un tipico flusso di lavoro per la stampa di un file potrebbe essere simile a: Lo slicing \u00e8 completato e il file viene caricato per la stampa. Durante il caricamento, il file viene elaborato e gli indicatori [exclude_object] vengono aggiunti al file. In alternativa, i filtri dei dati possono essere configurati per preparare i marcatori di esclusione degli oggetti in modo nativo o nella propria fase di pre-elaborazione. All'avvio della stampa, Klipper ripristiner\u00e0 [exclude_object] status . Quando Klipper elabora il blocco EXCLUDE_OBJECT_DEFINE , aggiorner\u00e0 lo stato con gli oggetti conosciuti e lo passer\u00e0 ai client. Il client pu\u00f2 utilizzare tali informazioni per presentare un'interfaccia all'utente in modo che sia possibile tenere traccia dei progressi. Klipper aggiorner\u00e0 lo stato per includere l'oggetto attualmente in stampa che il client pu\u00f2 utilizzare per scopi di visualizzazione. Se l'utente richiede la cancellazione di un oggetto, il client invier\u00e0 un comando EXCLUDE_OBJECT NAME=<nome> a Klipper. Quando Klipper elabora il comando, aggiunger\u00e0 l'oggetto all'elenco degli oggetti esclusi e aggiorner\u00e0 lo stato per i client. Il client ricever\u00e0 lo stato aggiornato da Klipper e potr\u00e0 utilizzare tali informazioni per aggiornare lo stato dell'oggetto nell'interfaccia utente. Al termine della stampa, lo stato [exclude_object] continuer\u00e0 a essere disponibile fino a quando un'altra azione non lo reimposta.","title":"Panoramica del flusso di lavoro"},{"location":"Exclude_Object.html#il-file-gcode","text":"L'elaborazione specializzata del gcode necessaria per supportare l'esclusione di oggetti non rientra negli obiettivi di progettazione principali di Klipper. Pertanto, questo modulo richiede che il file venga elaborato prima di essere inviato a Klipper per la stampa. L'utilizzo di uno script di post-elaborazione nello slicer o il middleware che elabora il file durante il caricamento sono due possibilit\u00e0 per preparare il file per Klipper. Uno script di post-elaborazione di riferimento \u00e8 disponibile sia come eseguibile che come libreria Python, vedere cancelobject-preprocessor .","title":"Il file GCode"},{"location":"Exclude_Object.html#definizioni-di-oggetti","text":"Il comando EXCLUDE_OBJECT_DEFINE viene utilizzato per fornire un riepilogo di ogni oggetto nel file gcode da stampare. Fornisce un riepilogo di un oggetto nel file. Gli oggetti non hanno bisogno di essere definiti per essere referenziati da altri comandi. Lo scopo principale di questo comando \u00e8 fornire informazioni all'interfaccia utente senza dover analizzare l'intero file gcode. Le definizioni degli oggetti sono denominate per consentire agli utenti di selezionare facilmente un oggetto da escludere e possono essere forniti metadati aggiuntivi per consentire la visualizzazione grafica dell'annullamento. I metadati attualmente definiti includono una coordinata X,Y \"CENTRO\" e un elenco \"POLYGON\" di punti X,Y che rappresentano un contorno minimo dell'oggetto. Potrebbe trattarsi di un semplice riquadro di delimitazione o di uno guscio complicato per mostrare visualizzazioni pi\u00f9 dettagliate degli oggetti stampati. Soprattutto quando i file gcode includono pi\u00f9 parti con regioni di delimitazione sovrapposte, i punti centrali diventano difficili da distinguere visivamente. POLYGONS deve essere un array compatibile con json di tuple punto [X,Y] senza spazi. Ulteriori parametri verranno salvati come stringhe nella definizione dell'oggetto e forniti negli aggiornamenti di stato. EXCLUDE_OBJECT_DEFINE NAME=calibration_pyramid CENTER=50,50 POLYGON=[[40,40],[50,60],[60,40]] All available G-Code commands are documented in the G-Code Reference","title":"Definizioni di oggetti"},{"location":"Exclude_Object.html#informazioni-sullo-stato","text":"The state of this module is provided to clients by the exclude_object status . Lo stato viene ripristinato quando: Il firmware di Klipper viene riavviato. C'\u00e8 un reset della [virtual_sdcard] . In particolare, questo viene ripristinato da Klipper all'inizio di una stampa. Quando viene emesso un comando EXCLUDE_OBJECT_DEFINE RESET=1 . L'elenco degli oggetti definiti \u00e8 rappresentato nel campo di stato exclude_object.objects . In un file gcode ben definito, questo sar\u00e0 fatto con i comandi EXCLUDE_OBJECT_DEFINE all'inizio del file. Ci\u00f2 fornir\u00e0 ai client i nomi e le coordinate degli oggetti in modo che l'interfaccia utente possa fornire una rappresentazione grafica degli oggetti, se lo si desidera. Man mano che la stampa procede, il campo di stato exclude_object.current_object verr\u00e0 aggiornato mentre Klipper elabora i comandi EXCLUDE_OBJECT_START e EXCLUDE_OBJECT_END . Il campo oggetto_corrente sar\u00e0 impostato anche se l'oggetto \u00e8 stato escluso. Gli oggetti non definiti contrassegnati con un EXCLUDE_OBJECT_START verranno aggiunti agli oggetti conosciuti per facilitare i suggerimenti dell'interfaccia utente, senza metadati aggiuntivi. Quando vengono emessi i comandi EXCLUDE_OBJECT , l'elenco degli oggetti esclusi viene fornito nell'array exclude_object.excluded_objects . Poich\u00e9 Klipper guarda avanti per elaborare il prossimo gcode, potrebbe esserci un ritardo tra l'emissione del comando e l'aggiornamento dello stato.","title":"Informazioni sullo stato"},{"location":"FAQ.html","text":"Domande frequenti \u00b6 Come posso donare al progetto? \u00b6 Grazie per il vostro sostegno. Per informazioni, vedere la Pagina degli sponsor . Come faccio a calcolare il parametro di configurazione rotation_distance? \u00b6 Vedere il rotation distance document . Dov'\u00e8 la mia porta seriale? \u00b6 Il modo generico per trovare una porta seriale USB \u00e8 eseguire ls /dev/serial/by-id/* da un terminale ssh sulla macchina host. Probabilmente produrr\u00e0 un output simile al seguente: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 Il nome trovato nel comando precedente \u00e8 stabile ed \u00e8 possibile utilizzarlo nel file di configurazione e durante il flashing del codice del microcontrollore. Ad esempio, un comando flash potrebbe essere simile a: sudo service klipper stop make flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 sudo service klipper start e la configurazione aggiornata potrebbe essere simile a: [mcu] serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 Assicurati di copiare e incollare il nome dal comando \"ls\" che hai eseguito sopra poich\u00e9 il nome sar\u00e0 diverso per ciascuna stampante. Se stai usando pi\u00f9 microcontrollori e non hanno ID univoci (comune sulle schede con un chip USB CH340), segui invece le indicazioni sopra usando il comando ls /dev/serial/by-path/* . Quando il microcontrollore si riavvia, il dispositivo cambia in /dev/ttyUSB1 \u00b6 egui le istruzioni nella sezione \" Where's my serial port? \" per evitare che ci\u00f2 accada. Il comando \"make flash\" non funziona \u00b6 Il codice tenta di eseguire il flashing del dispositivo utilizzando il metodo pi\u00f9 comune per ciascuna piattaforma. Sfortunatamente, c'\u00e8 molta variabilit\u00e0 nei metodi di flashing, quindi il comando \"make flash\" potrebbe non funzionare su tutte le schede. Se si verifica un errore intermittente o si dispone di una configurazione standard, ricontrolla che Klipper non sia in esecuzione durante il flashing (sudo service klipper stop), assicurati che OctoPrint non stia tentando di connettersi direttamente al dispositivo (apri il scheda Connessione nella pagina Web e fare clic su Disconnetti se la porta seriale \u00e8 impostata sul dispositivo) e assicurarsi che FLASH_DEVICE sia impostato correttamente per la scheda (consultare la question above . Tuttavia, se \"make flash\" non funziona per la tua scheda, dovrai eseguire il flashing manualmente. Verificare se nella config directory \u00e8 presente un file di configurazione con istruzioni specifiche per il flashing del dispositivo. Inoltre, controlla la documentazione del produttore della scheda per vedere se descrive come eseguire il flashing del dispositivo. Infine, potrebbe essere possibile eseguire manualmente il flashing del dispositivo utilizzando strumenti come \"avrdude\" o \"bossac\" - vedere il bootloader document per ulteriori informazioni. Come posso modificare la velocit\u00e0 di trasmissione seriale? \u00b6 Il baud rate consigliato per Klipper \u00e8 250000. Questo baud rate funziona bene su tutte le schede di microcontrollore supportate da Klipper. Se hai trovato una guida online che consiglia una velocit\u00e0 di trasmissione diversa, ignora quella parte della guida e continua con il valore predefinito di 250000. Se si desidera comunque modificare il baud rate, sar\u00e0 necessario configurare la nuova velocit\u00e0 nel microcontrollore (durante make menuconfig ) e il codice aggiornato dovr\u00e0 essere compilato e flashato sul microcontrollore. Anche il file Klipper printer.cfg dovr\u00e0 essere aggiornato in modo che corrisponda a tale velocit\u00e0 di trasmissione (consultare il config reference per i dettagli). Per esempio: [mcu] baud: 250000 La velocit\u00e0 di trasmissione mostrata sulla pagina Web di OctoPrint non ha alcun impatto sulla velocit\u00e0 di trasmissione interna del microcontrollore Klipper. Impostare sempre la velocit\u00e0 di trasmissione OctoPrint su 250000 quando si utilizza Klipper. La velocit\u00e0 in baud del microcontrollore Klipper non \u00e8 correlata alla velocit\u00e0 in baud del bootloader del microcontrollore. Vedere il bootloader document per ulteriori informazioni sui bootloader. Posso eseguire Klipper su qualcosa di diverso da un Raspberry Pi 3? \u00b6 L'hardware consigliato \u00e8 un Raspberry Pi 2, Raspberry Pi 3 o Raspberry Pi 4. Klipper funzioner\u00e0 su un Raspberry Pi 1 e su Raspberry Pi Zero, ma queste schede non hanno una potenza di elaborazione sufficiente per eseguire bene OctoPrint. \u00c8 normale che si verifichino interruzioni di stampa su queste macchine pi\u00f9 lente quando si stampa direttamente da OctoPrint. (La stampante potrebbe muoversi pi\u00f9 velocemente di quanto OctoPrint possa inviare comandi di movimento.) Se desideri comunque eseguire su una di queste schede pi\u00f9 lente, considera l'utilizzo della funzione \"virtual_sdcard\" durante la stampa (consulta config reference per dettagli). Per l'esecuzione su Beaglebone, vedere le Istruzioni di installazione specifiche di Beaglebone . Klipper \u00e8 stato eseguito su altre macchine. Il software host Klipper richiede solo Python in esecuzione su un computer Linux (o simile). Tuttavia, se desideri eseguirlo su una macchina diversa, avrai bisogno della conoscenza dell'amministratore Linux per installare i prerequisiti di sistema per quella particolare macchina. Consulta lo script install-octopi.sh per ulteriori informazioni sui passaggi necessari. Se stai cercando di eseguire il software host Klipper su un chip di fascia bassa, tieni presente che, come minimo, \u00e8 necessaria una macchina con hardware a \"virgola mobile a doppia precisione\". Se stai cercando di eseguire il software host Klipper su un desktop generico condiviso o una macchina di classe server, tieni presente che Klipper ha alcuni requisiti di scheduling in tempo reale. Se, durante una stampa, il computer host esegue anche un'intensa attivit\u00e0 di elaborazione generica (come deframmentazione di un disco rigido, rendering 3D, scambi pesanti e cos\u00ec via), Klipper potrebbe segnalare errori di stampa. Nota: se non stai utilizzando un'immagine OctoPi, tieni presente che diverse distribuzioni Linux abilitano un pacchetto \"ModemManager\" (o simile) che pu\u00f2 interrompere la comunicazione seriale. (Il che pu\u00f2 far s\u00ec che Klipper riporti errori apparentemente casuali \"Comunicazione persa con MCU\".) Se installi Klipper su una di queste distribuzioni potresti dover disabilitare quel pacchetto. Posso eseguire pi\u00f9 istanze di Klipper sulla stessa macchina host? \u00b6 \u00c8 possibile eseguire pi\u00f9 istanze del software host Klipper, ma per farlo \u00e8 necessaria la conoscenza dell'amministratore Linux. Gli script di installazione di Klipper determinano l'esecuzione del seguente comando Unix: ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer.cfg -l /tmp/klippy.log \u00c8 possibile eseguire pi\u00f9 istanze del comando precedente purch\u00e9 ogni istanza abbia il proprio file di configurazione della stampante, il proprio file di registro e il proprio pseudo-tty. Per esempio: ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer2.cfg -l /tmp/klippy2.log -I /tmp/printer2 Se scegli di farlo, dovrai implementare gli script di avvio, arresto e installazione necessari (se presenti). Lo script install-octopi.sh e lo script klipper-start.sh possono essere utili come esempi. Devo usare OctoPrint? \u00b6 Il software Klipper non dipende da OctoPrint. \u00c8 possibile utilizzare un software alternativo per inviare comandi a Klipper, ma ci\u00f2 richiede la conoscenza dell'amministratore Linux. Klipper crea una \"porta seriale virtuale\" tramite il file \"/tmp/printer\" ed emula una classica interfaccia seriale per stampante 3D tramite quel file. In generale, un software alternativo pu\u00f2 funzionare con Klipper purch\u00e9 possa essere configurato per utilizzare \"/tmp/printer\" per la porta seriale della stampante. Perch\u00e9 non riesco a spostare lo stepper prima di riposizionare la stampante? \u00b6 Il codice fa questo per ridurre la possibilit\u00e0 di comandare accidentalmente la testa nel piatto o altri limiti. Una volta che la stampante \u00e8 stata localizzata, il software tenta di verificare che ogni mossa rientri nella posizione_min/max definita nel file di configurazione. Se i motori sono disabilitati (tramite un comando M84 o M18), i motori dovranno essere nuovamente riposizionati prima del movimento. Se desideri spostare la testina dopo aver annullato una stampa tramite OctoPrint, considera di modificare la sequenza di annullamento di OctoPrint per farlo per te. \u00c8 configurato in OctoPrint tramite un browser web in: Impostazioni-> Script GCODE | Settings->GCODE Scripts Se desideri spostare la testina al termine di una stampa, considera di aggiungere il movimento desiderato alla sezione \"G-code personalizzato\" del tuo slicer. Se la stampante richiede un movimento aggiuntivo come parte del processo stesso di homing (o fondamentalmente non ha un processo di homing), considera l'utilizzo di una sezione safe_z_home o homing_override nel file di configurazione. Se \u00e8 necessario spostare uno stepper per scopi diagnostici o di debug, considerare l'aggiunta di una sezione force_move al file di configurazione. Vedere config reference per ulteriori dettagli su queste opzioni. Perch\u00e9 Z position_endstop \u00e8 impostato su 0.5 nelle configurazioni predefinite? \u00b6 Per le stampanti cartesiane Z position_endstop specifica la distanza dell'ugello dal piatto quando si attiva ilfinecorsa. Se possibile, si consiglia di utilizzare un finecorsa Z-max e di tornare a casa lontano dal piatto (in quanto ci\u00f2 riduce il rischio di collisioni con il piatto). Tuttavia, se ci si deve avvicinare al piatto, si consiglia di posizionare il finecorsa in modo che si attivi quando la bocchetta \u00e8 ancora a una piccola distanza dal piatto. In questo modo, durante l'homing dell'asse, si fermer\u00e0 prima che l'ugello tocchi il letto. Per ulteriori informazioni, vedere il bed level document . Ho convertito la mia configurazione da Marlin e gli assi X/Y funzionano bene, ma ottengo solo un rumore stridente durante homing dell'asse Z \u00b6 Risposta breve: in primo luogo, assicurati di aver verificato la configurazione dello stepper come descritto nel config check document . Se il problema persiste, provare a ridurre l'impostazione max_z_velocity nella configurazione della stampante. Risposta lunga: in pratica Marlin pu\u00f2 in genere fare solo un passo a una velocit\u00e0 di circa 10000 passi al secondo. Se gli viene richiesto di muoversi a una velocit\u00e0 che richiederebbe una velocit\u00e0 di passo pi\u00f9 alta, Marlin generalmente far\u00e0 un passo pi\u00f9 veloce possibile. Klipper \u00e8 in grado di raggiungere velocit\u00e0 di passo molto pi\u00f9 elevate, ma il motore passo-passo potrebbe non avere una coppia sufficiente per muoversi a una velocit\u00e0 pi\u00f9 elevata. Quindi, per un asse Z con un rapporto di trasmissione elevato o un'impostazione di micropassi elevata, l'effettiva velocit\u00e0 max_z_ottenibile potrebbe essere inferiore a quella configurata in Marlin. Il mio driver TMC del motore si spegne nel mezzo di una stampa \u00b6 Se si utilizza il driver TMC2208 (o TMC2224) in \"modalit\u00e0 standalone\", assicurarsi di utilizzare l' latest version of Klipper . Una soluzione alternativa per un problema del driver \"stealthchop\" TMC2208 \u00e8 stata aggiunta a Klipper a met\u00e0 marzo del 2020. Continuo a ricevere errori casuali \"Comunicazione persa con MCU\" |\"Lost communication with MCU\" \u00b6 Ci\u00f2 \u00e8 comunemente causato da errori hardware sulla connessione USB tra la macchina host e il microcontrollore. Cose da cercare: Utilizzare un cavo USB di buona qualit\u00e0 tra la macchina host e il microcontrollore. Assicurati che i connettori siano ben saldi. Se si utilizza un Raspberry Pi, utilizzare un alimentatore di buona qualit\u00e0 per il Raspberry Pi e utilizzare un cavo USB di buona qualit\u00e0 per collegare quell'alimentatore al Pi. Se ricevi avvisi di \"sottotensione\" da OctoPrint, questo \u00e8 correlato all'alimentatore e deve essere risolto. Assicurarsi che l'alimentazione della stampante non sia sovraccarica. (Le fluttuazioni di alimentazione del chip USB del microcontrollore possono comportare il reset di quel chip.) Verificare che i cavi dello stepper, del riscaldatore e di altri cavi della stampante non siano arricciati o sfilacciati. (Il movimento della stampante pu\u00f2 sollecitare un cavo difettoso causandone la perdita di contatto, un cortocircuito breve o la generazione di rumore eccessivo.) Sono stati segnalati rumori USB elevati quando sia l'alimentazione della stampante che l'alimentazione a 5 V dell'host sono mescolate. (Se si scopre che il microcontrollore si accende quando l'alimentazione della stampante \u00e8 accesa o il cavo USB \u00e8 collegato, significa che gli alimentatori da 5 V vengono mescolati.) Pu\u00f2 essere utile configurare il microcontrollore da utilizzare alimentazione da una sola fonte. (In alternativa, se la scheda del microcontrollore non \u00e8 in grado di configurare la sua fonte di alimentazione, \u00e8 possibile modificare un cavo USB in modo che non trasmetta alimentazione a 5V tra l'host e il microcontrollore.) Il mio Raspberry Pi continua a riavviarsi durante le stampe \u00b6 Questo \u00e8 molto probabilmente dovuto alle fluttuazioni di tensione. Segui gli stessi passaggi per la risoluzione dei problemi per un errore \"Comunicazione persa con MCU\" . Quando imposto restart_method=command il mio dispositivo AVR si blocca al riavvio \u00b6 Alcune vecchie versioni del bootloader AVR hanno un bug noto nella gestione degli eventi di watchdog. Questo in genere si manifesta quando il file printer.cfg ha restart_method impostato su \"command\". Quando si verifica il bug, il dispositivo AVR non risponder\u00e0 fino a quando l'alimentazione non viene rimossa e ricollegata al dispositivo (anche i LED di alimentazione o di stato potrebbero lampeggiare ripetutamente fino a quando l'alimentazione non viene rimossa). La soluzione alternativa \u00e8 utilizzare un restart_method diverso da \"command\" o eseguire il flashing di un bootloader aggiornato sul dispositivo AVR. Il flashing di un nuovo bootloader \u00e8 un passaggio che in genere richiede un programmatore esterno: vedere Bootloaders per ulteriori dettagli. I riscaldatori verranno lasciati accesi se il Raspberry Pi si arresta in modo anomalo? \u00b6 Il software \u00e8 stato progettato per impedirlo. Una volta che l'host abilita un riscaldatore, il software host deve confermare tale abilitazione ogni 5 secondi. Se il microcontrollore non riceve una conferma ogni 5 secondi, entra in uno stato di \"spegnimento\" progettato per spegnere tutti i riscaldatori e i motori passo-passo. Per ulteriori dettagli, vedere il comando \"config_digital_out\" nel documento Comandi MCU . Inoltre, il software del microcontrollore \u00e8 configurato con un intervallo di temperatura minimo e massimo per ciascun riscaldatore all'avvio (consultare i parametri min_temp e max_temp in config reference per i dettagli). Se il microcontrollore rileva che la temperatura \u00e8 al di fuori di tale intervallo, entrer\u00e0 anche in uno stato di \"spegnimento\". Separatamente, il software host implementa anche il codice per verificare che i riscaldatori e i sensori di temperatura funzionino correttamente. Vedere il riferimento di configurazione per ulteriori dettagli. Come posso convertire un numero di pin Marlin in un nome pin di Klipper? \u00b6 Risposta breve: una mappatura \u00e8 disponibile nel file sample-aliases.cfg . Usa quel file come guida per trovare i nomi effettivi dei pin del microcontrollorei. (\u00c8 anche possibile copiare la relativa sezione di configurazione board_pins nel file di configurazione e utilizzare gli alias nella configurazione, ma \u00e8 preferibile tradurre e utilizzare i nomi dei pin del microcontrollore effettivi.) Nota che il file sample-aliases.cfg usa nomi di pin che iniziano con il prefisso \"ar\" invece di \"D\" (ad esempio, il pin Arduino D23 \u00e8 alias Klipper ar23 ) e il prefisso \"analog\" invece di \"A \" (ad esempio, il pin Arduino A14 \u00e8 alias di Klipper analog14 ). Risposta lunga: Klipper utilizza i nomi dei pin standard definiti dal microcontrollore. Sui chip Atmega questi pin hardware hanno nomi come PA4 , PC7 o PD2 . Tempo fa, il progetto Arduino ha deciso di evitare di utilizzare i nomi hardware standard a favore dei propri nomi pin basati su numeri incrementali: questi nomi Arduino generalmente assomigliano a \"D23\" o \"A14\". Questa \u00e8 stata una scelta sfortunata che ha portato a una grande confusione. In particolare, i numeri dei pin di Arduino spesso non si traducono negli stessi nomi hardware. Ad esempio, D21 \u00e8 PD0 su una comune scheda Arduino, ma \u00e8 PC7 su un'altra comune scheda Arduino. Per evitare questa confusione, il codice di base di Klipper utilizza i nomi dei pin standard definiti dal microcontrollore. Devo collegare il mio dispositivo a un tipo specifico di pin del microcontrollore? \u00b6 Dipende dal tipo di dispositivo e dal tipo di pin: Pin ADC (o pin analogici): per termistori e sensori \"analogici\" simili, il dispositivo deve essere collegato a un pin compatibile con \"analogico\" o \"ADC\" sul microcontrollore. Se configuri Klipper per utilizzare un pin che non \u00e8 compatibile con l'analogico, Klipper segnaler\u00e0 un errore \"Non un pin ADC valido\". Pin PWM (o pin Timer): Klipper non utilizza PWM hardware per impostazione predefinita per nessun dispositivo. Quindi, in generale, \u00e8 possibile collegare riscaldatori, ventole e dispositivi simili a qualsiasi pin IO generico. Tuttavia, le ventole e i dispositivi output_pin possono essere opzionalmente configurati per utilizzare hardware_pwm: True , nel qual caso il microcontrollore deve supportare PWM hardware sul pin (altrimenti, Klipper segnaler\u00e0 un errore \"pin PWM non valido\"). Pin IRQ (o pin di interrupt): Klipper non utilizza gli interrupt hardware sui pin IO, quindi non \u00e8 mai necessario collegare un dispositivo a uno di questi pin del microcontrollore. Pin SPI: quando si utilizza l'SPI hardware, \u00e8 necessario collegare i pin ai pin SPI del microcontrollore. Tuttavia, la maggior parte dei dispositivi pu\u00f2 essere configurata per utilizzare \"SPI software\", nel qual caso \u00e8 possibile utilizzare qualsiasi pin IO generico. Pin I2C: quando si utilizza I2C \u00e8 necessario collegare i pin ai pin compatibili con I2C del microcontrollore. Altri dispositivi possono essere collegati a qualsiasi pin IO generico. Ad esempio, stepper, riscaldatori, ventole, sonde Z, servocomandi, LED, comuni display LCD hd44780/st7920, la linea di controllo Trinamic UART pu\u00f2 essere collegata a qualsiasi pin IO generico. Come posso annullare una richiesta di \"attesa temperatura\" M109/M190? \u00b6 Passare alla scheda del terminale OctoPrint ed emettere un comando M112 nel terminale. Il comando M112 far\u00e0 entrare Klipper in uno stato di \"arresto\" e causer\u00e0 la disconnessione di OctoPrint da Klipper. Passare all'area di connessione di OctoPrint e fare clic su \"Connetti\" per fare in modo che OctoPrint si riconnetta. Torna alla scheda del terminale ed emetti un comando FIRMWARE_RESTART per cancellare lo stato di errore di Klipper. Dopo aver completato questa sequenza, la precedente richiesta di riscaldamento verr\u00e0 annullata e potrebbe essere avviata una nuova stampa. Posso scoprire se la stampante ha perso dei passaggi? \u00b6 In un certo senso s\u00ec. Avviare la stampante, emettere un comando GET_POSITION , eseguire la stampa, tornare a casa ed emettere un altro GET_POSITION . Quindi confronta i valori nella riga mcu: . Questo potrebbe essere utile per regolare impostazioni come correnti, accelerazioni e velocit\u00e0 del motore passo-passo senza dover effettivamente stampare qualcosa e sprecare il filamento: basta eseguire alcuni movimenti ad alta velocit\u00e0 tra i comandi GET_POSITION . Si noti che gli stessi interruttori di fine corsa tendono a attivarsi in posizioni leggermente diverse, quindi una differenza di un paio di micropassi \u00e8 probabilmente il risultato di imprecisioni di fine corsa. Un motore passo-passo stesso pu\u00f2 perdere passi solo con incrementi di 4 passi completi. (Quindi, se si utilizzano 16 micropassi, un passo perso sullo stepper comporterebbe lo spegnimento del contatore di passi \"mcu:\" di un multiplo di 64 micropassi.) Perch\u00e9 Klipper segnala errori? Ho perso la mia stampa! \u00b6 Risposta breve: vogliamo sapere se le nostre stampanti rilevano un problema in modo che il problema sottostante possa essere risolto e possiamo ottenere stampe di ottima qualit\u00e0. Non vogliamo assolutamente che le nostre stampanti producano in silenzio stampe di bassa qualit\u00e0. Risposta lunga: Klipper \u00e8 stato progettato per risolvere automaticamente molti problemi transitori. Ad esempio, rileva automaticamente gli errori di comunicazione e li ritrasmette; pianifica le azioni in anticipo e bufferizza i comandi su pi\u00f9 livelli per consentire tempi precisi anche con interferenze intermittenti. Tuttavia, se il software rileva un errore dal quale non pu\u00f2 essere ripristinato, se gli viene ordinato di eseguire un'azione non valida o se rileva che \u00e8 irrimediabilmente incapace di eseguire l'attivit\u00e0 comandata, Klipper segnaler\u00e0 un errore. In queste situazioni c'\u00e8 un alto rischio di produrre una stampa di bassa qualit\u00e0 (o peggio). Si spera che avvisare gli utenti consentir\u00e0 loro di risolvere il problema sottostante e migliorare la qualit\u00e0 complessiva delle loro stampe. Ci sono alcune domande correlate: perch\u00e9 Klipper non mette invece in pausa la stampa? Segnalare invece un avviso? Verificare la presenza di errori prima della stampa? Ignorare gli errori nei comandi digitati dall'utente? eccetera? Attualmente Klipper legge i comandi utilizzando il protocollo G-Code e sfortunatamente il protocollo di comando G-Code non \u00e8 sufficientemente flessibile per rendere pratiche queste alternative oggi. C'\u00e8 l'interesse degli sviluppatori nel migliorare l'esperienza dell'utente durante eventi anomali, ma si prevede che ci\u00f2 richieder\u00e0 un notevole lavoro infrastrutturale (incluso un passaggio dal G-Code). Come si esegue l'aggiornamento al software pi\u00f9 recente? \u00b6 Il primo passaggio per l'aggiornamento del software consiste nell'esaminare l'ultimo documento config changes . A volte, vengono apportate modifiche al software che richiedono agli utenti di aggiornare le proprie impostazioni come parte di un aggiornamento del software. \u00c8 una buona idea rivedere questo documento prima dell'aggiornamento. Quando sei pronto per l'aggiornamento, il metodo generale \u00e8 quello di entrare in Raspberry Pi ed eseguire: cd ~/klipper git pull ~/klipper/scripts/install-octopi.sh Quindi si pu\u00f2 ricompilare e flashare il codice del microcontrollore. Per esempio: make menuconfig make clean make sudo service klipper stop make flash FLASH_DEVICE=/dev/ttyACM0 sudo service klipper start Tuttavia, capita spesso che cambi solo il software host. In questo caso \u00e8 possibile aggiornare e riavviare solo il software host con: cd ~/klipper git pull sudo service klipper restart Se dopo aver utilizzato questo collegamento il software avverte della necessit\u00e0 di eseguire il reflash del microcontrollore o si verifica qualche altro errore insolito, seguire i passaggi completi di aggiornamento descritti sopra. Se gli errori persistono, ricontrolla il documento config changes , poich\u00e9 potrebbe essere necessario modificare la configurazione della stampante. Si noti che i comandi g-code RESTART e FIRMWARE_RESTART non caricano il nuovo software: i comandi \"sudo service klipper restart\" e \"make flash\" di cui sopra sono necessari affinch\u00e9 una modifica del software abbia effetto. Come faccio a disinstallare Klipper? \u00b6 Dal alto del firmware, non deve succedere nulla di speciale. Basta seguire le indicazioni per il flashing del nuovo firmware. Dal lato del raspberry pi, uno script di disinstallazione \u00e8 disponibile in scripts/klipper-uninstall.sh . Per esempio: sudo ~/klipper/scripts/klipper-uninstall.sh rm -rf ~/klippy-env ~/klipper","title":"Domande frequenti"},{"location":"FAQ.html#domande-frequenti","text":"","title":"Domande frequenti"},{"location":"FAQ.html#come-posso-donare-al-progetto","text":"Grazie per il vostro sostegno. Per informazioni, vedere la Pagina degli sponsor .","title":"Come posso donare al progetto?"},{"location":"FAQ.html#come-faccio-a-calcolare-il-parametro-di-configurazione-rotation_distance","text":"Vedere il rotation distance document .","title":"Come faccio a calcolare il parametro di configurazione rotation_distance?"},{"location":"FAQ.html#dove-la-mia-porta-seriale","text":"Il modo generico per trovare una porta seriale USB \u00e8 eseguire ls /dev/serial/by-id/* da un terminale ssh sulla macchina host. Probabilmente produrr\u00e0 un output simile al seguente: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 Il nome trovato nel comando precedente \u00e8 stabile ed \u00e8 possibile utilizzarlo nel file di configurazione e durante il flashing del codice del microcontrollore. Ad esempio, un comando flash potrebbe essere simile a: sudo service klipper stop make flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 sudo service klipper start e la configurazione aggiornata potrebbe essere simile a: [mcu] serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 Assicurati di copiare e incollare il nome dal comando \"ls\" che hai eseguito sopra poich\u00e9 il nome sar\u00e0 diverso per ciascuna stampante. Se stai usando pi\u00f9 microcontrollori e non hanno ID univoci (comune sulle schede con un chip USB CH340), segui invece le indicazioni sopra usando il comando ls /dev/serial/by-path/* .","title":"Dov'\u00e8 la mia porta seriale?"},{"location":"FAQ.html#quando-il-microcontrollore-si-riavvia-il-dispositivo-cambia-in-devttyusb1","text":"egui le istruzioni nella sezione \" Where's my serial port? \" per evitare che ci\u00f2 accada.","title":"Quando il microcontrollore si riavvia, il dispositivo cambia in /dev/ttyUSB1"},{"location":"FAQ.html#il-comando-make-flash-non-funziona","text":"Il codice tenta di eseguire il flashing del dispositivo utilizzando il metodo pi\u00f9 comune per ciascuna piattaforma. Sfortunatamente, c'\u00e8 molta variabilit\u00e0 nei metodi di flashing, quindi il comando \"make flash\" potrebbe non funzionare su tutte le schede. Se si verifica un errore intermittente o si dispone di una configurazione standard, ricontrolla che Klipper non sia in esecuzione durante il flashing (sudo service klipper stop), assicurati che OctoPrint non stia tentando di connettersi direttamente al dispositivo (apri il scheda Connessione nella pagina Web e fare clic su Disconnetti se la porta seriale \u00e8 impostata sul dispositivo) e assicurarsi che FLASH_DEVICE sia impostato correttamente per la scheda (consultare la question above . Tuttavia, se \"make flash\" non funziona per la tua scheda, dovrai eseguire il flashing manualmente. Verificare se nella config directory \u00e8 presente un file di configurazione con istruzioni specifiche per il flashing del dispositivo. Inoltre, controlla la documentazione del produttore della scheda per vedere se descrive come eseguire il flashing del dispositivo. Infine, potrebbe essere possibile eseguire manualmente il flashing del dispositivo utilizzando strumenti come \"avrdude\" o \"bossac\" - vedere il bootloader document per ulteriori informazioni.","title":"Il comando \"make flash\" non funziona"},{"location":"FAQ.html#come-posso-modificare-la-velocita-di-trasmissione-seriale","text":"Il baud rate consigliato per Klipper \u00e8 250000. Questo baud rate funziona bene su tutte le schede di microcontrollore supportate da Klipper. Se hai trovato una guida online che consiglia una velocit\u00e0 di trasmissione diversa, ignora quella parte della guida e continua con il valore predefinito di 250000. Se si desidera comunque modificare il baud rate, sar\u00e0 necessario configurare la nuova velocit\u00e0 nel microcontrollore (durante make menuconfig ) e il codice aggiornato dovr\u00e0 essere compilato e flashato sul microcontrollore. Anche il file Klipper printer.cfg dovr\u00e0 essere aggiornato in modo che corrisponda a tale velocit\u00e0 di trasmissione (consultare il config reference per i dettagli). Per esempio: [mcu] baud: 250000 La velocit\u00e0 di trasmissione mostrata sulla pagina Web di OctoPrint non ha alcun impatto sulla velocit\u00e0 di trasmissione interna del microcontrollore Klipper. Impostare sempre la velocit\u00e0 di trasmissione OctoPrint su 250000 quando si utilizza Klipper. La velocit\u00e0 in baud del microcontrollore Klipper non \u00e8 correlata alla velocit\u00e0 in baud del bootloader del microcontrollore. Vedere il bootloader document per ulteriori informazioni sui bootloader.","title":"Come posso modificare la velocit\u00e0 di trasmissione seriale?"},{"location":"FAQ.html#posso-eseguire-klipper-su-qualcosa-di-diverso-da-un-raspberry-pi-3","text":"L'hardware consigliato \u00e8 un Raspberry Pi 2, Raspberry Pi 3 o Raspberry Pi 4. Klipper funzioner\u00e0 su un Raspberry Pi 1 e su Raspberry Pi Zero, ma queste schede non hanno una potenza di elaborazione sufficiente per eseguire bene OctoPrint. \u00c8 normale che si verifichino interruzioni di stampa su queste macchine pi\u00f9 lente quando si stampa direttamente da OctoPrint. (La stampante potrebbe muoversi pi\u00f9 velocemente di quanto OctoPrint possa inviare comandi di movimento.) Se desideri comunque eseguire su una di queste schede pi\u00f9 lente, considera l'utilizzo della funzione \"virtual_sdcard\" durante la stampa (consulta config reference per dettagli). Per l'esecuzione su Beaglebone, vedere le Istruzioni di installazione specifiche di Beaglebone . Klipper \u00e8 stato eseguito su altre macchine. Il software host Klipper richiede solo Python in esecuzione su un computer Linux (o simile). Tuttavia, se desideri eseguirlo su una macchina diversa, avrai bisogno della conoscenza dell'amministratore Linux per installare i prerequisiti di sistema per quella particolare macchina. Consulta lo script install-octopi.sh per ulteriori informazioni sui passaggi necessari. Se stai cercando di eseguire il software host Klipper su un chip di fascia bassa, tieni presente che, come minimo, \u00e8 necessaria una macchina con hardware a \"virgola mobile a doppia precisione\". Se stai cercando di eseguire il software host Klipper su un desktop generico condiviso o una macchina di classe server, tieni presente che Klipper ha alcuni requisiti di scheduling in tempo reale. Se, durante una stampa, il computer host esegue anche un'intensa attivit\u00e0 di elaborazione generica (come deframmentazione di un disco rigido, rendering 3D, scambi pesanti e cos\u00ec via), Klipper potrebbe segnalare errori di stampa. Nota: se non stai utilizzando un'immagine OctoPi, tieni presente che diverse distribuzioni Linux abilitano un pacchetto \"ModemManager\" (o simile) che pu\u00f2 interrompere la comunicazione seriale. (Il che pu\u00f2 far s\u00ec che Klipper riporti errori apparentemente casuali \"Comunicazione persa con MCU\".) Se installi Klipper su una di queste distribuzioni potresti dover disabilitare quel pacchetto.","title":"Posso eseguire Klipper su qualcosa di diverso da un Raspberry Pi 3?"},{"location":"FAQ.html#posso-eseguire-piu-istanze-di-klipper-sulla-stessa-macchina-host","text":"\u00c8 possibile eseguire pi\u00f9 istanze del software host Klipper, ma per farlo \u00e8 necessaria la conoscenza dell'amministratore Linux. Gli script di installazione di Klipper determinano l'esecuzione del seguente comando Unix: ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer.cfg -l /tmp/klippy.log \u00c8 possibile eseguire pi\u00f9 istanze del comando precedente purch\u00e9 ogni istanza abbia il proprio file di configurazione della stampante, il proprio file di registro e il proprio pseudo-tty. Per esempio: ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer2.cfg -l /tmp/klippy2.log -I /tmp/printer2 Se scegli di farlo, dovrai implementare gli script di avvio, arresto e installazione necessari (se presenti). Lo script install-octopi.sh e lo script klipper-start.sh possono essere utili come esempi.","title":"Posso eseguire pi\u00f9 istanze di Klipper sulla stessa macchina host?"},{"location":"FAQ.html#devo-usare-octoprint","text":"Il software Klipper non dipende da OctoPrint. \u00c8 possibile utilizzare un software alternativo per inviare comandi a Klipper, ma ci\u00f2 richiede la conoscenza dell'amministratore Linux. Klipper crea una \"porta seriale virtuale\" tramite il file \"/tmp/printer\" ed emula una classica interfaccia seriale per stampante 3D tramite quel file. In generale, un software alternativo pu\u00f2 funzionare con Klipper purch\u00e9 possa essere configurato per utilizzare \"/tmp/printer\" per la porta seriale della stampante.","title":"Devo usare OctoPrint?"},{"location":"FAQ.html#perche-non-riesco-a-spostare-lo-stepper-prima-di-riposizionare-la-stampante","text":"Il codice fa questo per ridurre la possibilit\u00e0 di comandare accidentalmente la testa nel piatto o altri limiti. Una volta che la stampante \u00e8 stata localizzata, il software tenta di verificare che ogni mossa rientri nella posizione_min/max definita nel file di configurazione. Se i motori sono disabilitati (tramite un comando M84 o M18), i motori dovranno essere nuovamente riposizionati prima del movimento. Se desideri spostare la testina dopo aver annullato una stampa tramite OctoPrint, considera di modificare la sequenza di annullamento di OctoPrint per farlo per te. \u00c8 configurato in OctoPrint tramite un browser web in: Impostazioni-> Script GCODE | Settings->GCODE Scripts Se desideri spostare la testina al termine di una stampa, considera di aggiungere il movimento desiderato alla sezione \"G-code personalizzato\" del tuo slicer. Se la stampante richiede un movimento aggiuntivo come parte del processo stesso di homing (o fondamentalmente non ha un processo di homing), considera l'utilizzo di una sezione safe_z_home o homing_override nel file di configurazione. Se \u00e8 necessario spostare uno stepper per scopi diagnostici o di debug, considerare l'aggiunta di una sezione force_move al file di configurazione. Vedere config reference per ulteriori dettagli su queste opzioni.","title":"Perch\u00e9 non riesco a spostare lo stepper prima di riposizionare la stampante?"},{"location":"FAQ.html#perche-z-position_endstop-e-impostato-su-05-nelle-configurazioni-predefinite","text":"Per le stampanti cartesiane Z position_endstop specifica la distanza dell'ugello dal piatto quando si attiva ilfinecorsa. Se possibile, si consiglia di utilizzare un finecorsa Z-max e di tornare a casa lontano dal piatto (in quanto ci\u00f2 riduce il rischio di collisioni con il piatto). Tuttavia, se ci si deve avvicinare al piatto, si consiglia di posizionare il finecorsa in modo che si attivi quando la bocchetta \u00e8 ancora a una piccola distanza dal piatto. In questo modo, durante l'homing dell'asse, si fermer\u00e0 prima che l'ugello tocchi il letto. Per ulteriori informazioni, vedere il bed level document .","title":"Perch\u00e9 Z position_endstop \u00e8 impostato su 0.5 nelle configurazioni predefinite?"},{"location":"FAQ.html#ho-convertito-la-mia-configurazione-da-marlin-e-gli-assi-xy-funzionano-bene-ma-ottengo-solo-un-rumore-stridente-durante-homing-dellasse-z","text":"Risposta breve: in primo luogo, assicurati di aver verificato la configurazione dello stepper come descritto nel config check document . Se il problema persiste, provare a ridurre l'impostazione max_z_velocity nella configurazione della stampante. Risposta lunga: in pratica Marlin pu\u00f2 in genere fare solo un passo a una velocit\u00e0 di circa 10000 passi al secondo. Se gli viene richiesto di muoversi a una velocit\u00e0 che richiederebbe una velocit\u00e0 di passo pi\u00f9 alta, Marlin generalmente far\u00e0 un passo pi\u00f9 veloce possibile. Klipper \u00e8 in grado di raggiungere velocit\u00e0 di passo molto pi\u00f9 elevate, ma il motore passo-passo potrebbe non avere una coppia sufficiente per muoversi a una velocit\u00e0 pi\u00f9 elevata. Quindi, per un asse Z con un rapporto di trasmissione elevato o un'impostazione di micropassi elevata, l'effettiva velocit\u00e0 max_z_ottenibile potrebbe essere inferiore a quella configurata in Marlin.","title":"Ho convertito la mia configurazione da Marlin e gli assi X/Y funzionano bene, ma ottengo solo un rumore stridente durante homing dell'asse Z"},{"location":"FAQ.html#il-mio-driver-tmc-del-motore-si-spegne-nel-mezzo-di-una-stampa","text":"Se si utilizza il driver TMC2208 (o TMC2224) in \"modalit\u00e0 standalone\", assicurarsi di utilizzare l' latest version of Klipper . Una soluzione alternativa per un problema del driver \"stealthchop\" TMC2208 \u00e8 stata aggiunta a Klipper a met\u00e0 marzo del 2020.","title":"Il mio driver TMC del motore si spegne nel mezzo di una stampa"},{"location":"FAQ.html#continuo-a-ricevere-errori-casuali-comunicazione-persa-con-mcu-lost-communication-with-mcu","text":"Ci\u00f2 \u00e8 comunemente causato da errori hardware sulla connessione USB tra la macchina host e il microcontrollore. Cose da cercare: Utilizzare un cavo USB di buona qualit\u00e0 tra la macchina host e il microcontrollore. Assicurati che i connettori siano ben saldi. Se si utilizza un Raspberry Pi, utilizzare un alimentatore di buona qualit\u00e0 per il Raspberry Pi e utilizzare un cavo USB di buona qualit\u00e0 per collegare quell'alimentatore al Pi. Se ricevi avvisi di \"sottotensione\" da OctoPrint, questo \u00e8 correlato all'alimentatore e deve essere risolto. Assicurarsi che l'alimentazione della stampante non sia sovraccarica. (Le fluttuazioni di alimentazione del chip USB del microcontrollore possono comportare il reset di quel chip.) Verificare che i cavi dello stepper, del riscaldatore e di altri cavi della stampante non siano arricciati o sfilacciati. (Il movimento della stampante pu\u00f2 sollecitare un cavo difettoso causandone la perdita di contatto, un cortocircuito breve o la generazione di rumore eccessivo.) Sono stati segnalati rumori USB elevati quando sia l'alimentazione della stampante che l'alimentazione a 5 V dell'host sono mescolate. (Se si scopre che il microcontrollore si accende quando l'alimentazione della stampante \u00e8 accesa o il cavo USB \u00e8 collegato, significa che gli alimentatori da 5 V vengono mescolati.) Pu\u00f2 essere utile configurare il microcontrollore da utilizzare alimentazione da una sola fonte. (In alternativa, se la scheda del microcontrollore non \u00e8 in grado di configurare la sua fonte di alimentazione, \u00e8 possibile modificare un cavo USB in modo che non trasmetta alimentazione a 5V tra l'host e il microcontrollore.)","title":"Continuo a ricevere errori casuali \"Comunicazione persa con MCU\" |\"Lost communication with MCU\""},{"location":"FAQ.html#il-mio-raspberry-pi-continua-a-riavviarsi-durante-le-stampe","text":"Questo \u00e8 molto probabilmente dovuto alle fluttuazioni di tensione. Segui gli stessi passaggi per la risoluzione dei problemi per un errore \"Comunicazione persa con MCU\" .","title":"Il mio Raspberry Pi continua a riavviarsi durante le stampe"},{"location":"FAQ.html#quando-imposto-restart_methodcommand-il-mio-dispositivo-avr-si-blocca-al-riavvio","text":"Alcune vecchie versioni del bootloader AVR hanno un bug noto nella gestione degli eventi di watchdog. Questo in genere si manifesta quando il file printer.cfg ha restart_method impostato su \"command\". Quando si verifica il bug, il dispositivo AVR non risponder\u00e0 fino a quando l'alimentazione non viene rimossa e ricollegata al dispositivo (anche i LED di alimentazione o di stato potrebbero lampeggiare ripetutamente fino a quando l'alimentazione non viene rimossa). La soluzione alternativa \u00e8 utilizzare un restart_method diverso da \"command\" o eseguire il flashing di un bootloader aggiornato sul dispositivo AVR. Il flashing di un nuovo bootloader \u00e8 un passaggio che in genere richiede un programmatore esterno: vedere Bootloaders per ulteriori dettagli.","title":"Quando imposto restart_method=command il mio dispositivo AVR si blocca al riavvio"},{"location":"FAQ.html#i-riscaldatori-verranno-lasciati-accesi-se-il-raspberry-pi-si-arresta-in-modo-anomalo","text":"Il software \u00e8 stato progettato per impedirlo. Una volta che l'host abilita un riscaldatore, il software host deve confermare tale abilitazione ogni 5 secondi. Se il microcontrollore non riceve una conferma ogni 5 secondi, entra in uno stato di \"spegnimento\" progettato per spegnere tutti i riscaldatori e i motori passo-passo. Per ulteriori dettagli, vedere il comando \"config_digital_out\" nel documento Comandi MCU . Inoltre, il software del microcontrollore \u00e8 configurato con un intervallo di temperatura minimo e massimo per ciascun riscaldatore all'avvio (consultare i parametri min_temp e max_temp in config reference per i dettagli). Se il microcontrollore rileva che la temperatura \u00e8 al di fuori di tale intervallo, entrer\u00e0 anche in uno stato di \"spegnimento\". Separatamente, il software host implementa anche il codice per verificare che i riscaldatori e i sensori di temperatura funzionino correttamente. Vedere il riferimento di configurazione per ulteriori dettagli.","title":"I riscaldatori verranno lasciati accesi se il Raspberry Pi si arresta in modo anomalo?"},{"location":"FAQ.html#come-posso-convertire-un-numero-di-pin-marlin-in-un-nome-pin-di-klipper","text":"Risposta breve: una mappatura \u00e8 disponibile nel file sample-aliases.cfg . Usa quel file come guida per trovare i nomi effettivi dei pin del microcontrollorei. (\u00c8 anche possibile copiare la relativa sezione di configurazione board_pins nel file di configurazione e utilizzare gli alias nella configurazione, ma \u00e8 preferibile tradurre e utilizzare i nomi dei pin del microcontrollore effettivi.) Nota che il file sample-aliases.cfg usa nomi di pin che iniziano con il prefisso \"ar\" invece di \"D\" (ad esempio, il pin Arduino D23 \u00e8 alias Klipper ar23 ) e il prefisso \"analog\" invece di \"A \" (ad esempio, il pin Arduino A14 \u00e8 alias di Klipper analog14 ). Risposta lunga: Klipper utilizza i nomi dei pin standard definiti dal microcontrollore. Sui chip Atmega questi pin hardware hanno nomi come PA4 , PC7 o PD2 . Tempo fa, il progetto Arduino ha deciso di evitare di utilizzare i nomi hardware standard a favore dei propri nomi pin basati su numeri incrementali: questi nomi Arduino generalmente assomigliano a \"D23\" o \"A14\". Questa \u00e8 stata una scelta sfortunata che ha portato a una grande confusione. In particolare, i numeri dei pin di Arduino spesso non si traducono negli stessi nomi hardware. Ad esempio, D21 \u00e8 PD0 su una comune scheda Arduino, ma \u00e8 PC7 su un'altra comune scheda Arduino. Per evitare questa confusione, il codice di base di Klipper utilizza i nomi dei pin standard definiti dal microcontrollore.","title":"Come posso convertire un numero di pin Marlin in un nome pin di Klipper?"},{"location":"FAQ.html#devo-collegare-il-mio-dispositivo-a-un-tipo-specifico-di-pin-del-microcontrollore","text":"Dipende dal tipo di dispositivo e dal tipo di pin: Pin ADC (o pin analogici): per termistori e sensori \"analogici\" simili, il dispositivo deve essere collegato a un pin compatibile con \"analogico\" o \"ADC\" sul microcontrollore. Se configuri Klipper per utilizzare un pin che non \u00e8 compatibile con l'analogico, Klipper segnaler\u00e0 un errore \"Non un pin ADC valido\". Pin PWM (o pin Timer): Klipper non utilizza PWM hardware per impostazione predefinita per nessun dispositivo. Quindi, in generale, \u00e8 possibile collegare riscaldatori, ventole e dispositivi simili a qualsiasi pin IO generico. Tuttavia, le ventole e i dispositivi output_pin possono essere opzionalmente configurati per utilizzare hardware_pwm: True , nel qual caso il microcontrollore deve supportare PWM hardware sul pin (altrimenti, Klipper segnaler\u00e0 un errore \"pin PWM non valido\"). Pin IRQ (o pin di interrupt): Klipper non utilizza gli interrupt hardware sui pin IO, quindi non \u00e8 mai necessario collegare un dispositivo a uno di questi pin del microcontrollore. Pin SPI: quando si utilizza l'SPI hardware, \u00e8 necessario collegare i pin ai pin SPI del microcontrollore. Tuttavia, la maggior parte dei dispositivi pu\u00f2 essere configurata per utilizzare \"SPI software\", nel qual caso \u00e8 possibile utilizzare qualsiasi pin IO generico. Pin I2C: quando si utilizza I2C \u00e8 necessario collegare i pin ai pin compatibili con I2C del microcontrollore. Altri dispositivi possono essere collegati a qualsiasi pin IO generico. Ad esempio, stepper, riscaldatori, ventole, sonde Z, servocomandi, LED, comuni display LCD hd44780/st7920, la linea di controllo Trinamic UART pu\u00f2 essere collegata a qualsiasi pin IO generico.","title":"Devo collegare il mio dispositivo a un tipo specifico di pin del microcontrollore?"},{"location":"FAQ.html#come-posso-annullare-una-richiesta-di-attesa-temperatura-m109m190","text":"Passare alla scheda del terminale OctoPrint ed emettere un comando M112 nel terminale. Il comando M112 far\u00e0 entrare Klipper in uno stato di \"arresto\" e causer\u00e0 la disconnessione di OctoPrint da Klipper. Passare all'area di connessione di OctoPrint e fare clic su \"Connetti\" per fare in modo che OctoPrint si riconnetta. Torna alla scheda del terminale ed emetti un comando FIRMWARE_RESTART per cancellare lo stato di errore di Klipper. Dopo aver completato questa sequenza, la precedente richiesta di riscaldamento verr\u00e0 annullata e potrebbe essere avviata una nuova stampa.","title":"Come posso annullare una richiesta di \"attesa temperatura\" M109/M190?"},{"location":"FAQ.html#posso-scoprire-se-la-stampante-ha-perso-dei-passaggi","text":"In un certo senso s\u00ec. Avviare la stampante, emettere un comando GET_POSITION , eseguire la stampa, tornare a casa ed emettere un altro GET_POSITION . Quindi confronta i valori nella riga mcu: . Questo potrebbe essere utile per regolare impostazioni come correnti, accelerazioni e velocit\u00e0 del motore passo-passo senza dover effettivamente stampare qualcosa e sprecare il filamento: basta eseguire alcuni movimenti ad alta velocit\u00e0 tra i comandi GET_POSITION . Si noti che gli stessi interruttori di fine corsa tendono a attivarsi in posizioni leggermente diverse, quindi una differenza di un paio di micropassi \u00e8 probabilmente il risultato di imprecisioni di fine corsa. Un motore passo-passo stesso pu\u00f2 perdere passi solo con incrementi di 4 passi completi. (Quindi, se si utilizzano 16 micropassi, un passo perso sullo stepper comporterebbe lo spegnimento del contatore di passi \"mcu:\" di un multiplo di 64 micropassi.)","title":"Posso scoprire se la stampante ha perso dei passaggi?"},{"location":"FAQ.html#perche-klipper-segnala-errori-ho-perso-la-mia-stampa","text":"Risposta breve: vogliamo sapere se le nostre stampanti rilevano un problema in modo che il problema sottostante possa essere risolto e possiamo ottenere stampe di ottima qualit\u00e0. Non vogliamo assolutamente che le nostre stampanti producano in silenzio stampe di bassa qualit\u00e0. Risposta lunga: Klipper \u00e8 stato progettato per risolvere automaticamente molti problemi transitori. Ad esempio, rileva automaticamente gli errori di comunicazione e li ritrasmette; pianifica le azioni in anticipo e bufferizza i comandi su pi\u00f9 livelli per consentire tempi precisi anche con interferenze intermittenti. Tuttavia, se il software rileva un errore dal quale non pu\u00f2 essere ripristinato, se gli viene ordinato di eseguire un'azione non valida o se rileva che \u00e8 irrimediabilmente incapace di eseguire l'attivit\u00e0 comandata, Klipper segnaler\u00e0 un errore. In queste situazioni c'\u00e8 un alto rischio di produrre una stampa di bassa qualit\u00e0 (o peggio). Si spera che avvisare gli utenti consentir\u00e0 loro di risolvere il problema sottostante e migliorare la qualit\u00e0 complessiva delle loro stampe. Ci sono alcune domande correlate: perch\u00e9 Klipper non mette invece in pausa la stampa? Segnalare invece un avviso? Verificare la presenza di errori prima della stampa? Ignorare gli errori nei comandi digitati dall'utente? eccetera? Attualmente Klipper legge i comandi utilizzando il protocollo G-Code e sfortunatamente il protocollo di comando G-Code non \u00e8 sufficientemente flessibile per rendere pratiche queste alternative oggi. C'\u00e8 l'interesse degli sviluppatori nel migliorare l'esperienza dell'utente durante eventi anomali, ma si prevede che ci\u00f2 richieder\u00e0 un notevole lavoro infrastrutturale (incluso un passaggio dal G-Code).","title":"Perch\u00e9 Klipper segnala errori? Ho perso la mia stampa!"},{"location":"FAQ.html#come-si-esegue-laggiornamento-al-software-piu-recente","text":"Il primo passaggio per l'aggiornamento del software consiste nell'esaminare l'ultimo documento config changes . A volte, vengono apportate modifiche al software che richiedono agli utenti di aggiornare le proprie impostazioni come parte di un aggiornamento del software. \u00c8 una buona idea rivedere questo documento prima dell'aggiornamento. Quando sei pronto per l'aggiornamento, il metodo generale \u00e8 quello di entrare in Raspberry Pi ed eseguire: cd ~/klipper git pull ~/klipper/scripts/install-octopi.sh Quindi si pu\u00f2 ricompilare e flashare il codice del microcontrollore. Per esempio: make menuconfig make clean make sudo service klipper stop make flash FLASH_DEVICE=/dev/ttyACM0 sudo service klipper start Tuttavia, capita spesso che cambi solo il software host. In questo caso \u00e8 possibile aggiornare e riavviare solo il software host con: cd ~/klipper git pull sudo service klipper restart Se dopo aver utilizzato questo collegamento il software avverte della necessit\u00e0 di eseguire il reflash del microcontrollore o si verifica qualche altro errore insolito, seguire i passaggi completi di aggiornamento descritti sopra. Se gli errori persistono, ricontrolla il documento config changes , poich\u00e9 potrebbe essere necessario modificare la configurazione della stampante. Si noti che i comandi g-code RESTART e FIRMWARE_RESTART non caricano il nuovo software: i comandi \"sudo service klipper restart\" e \"make flash\" di cui sopra sono necessari affinch\u00e9 una modifica del software abbia effetto.","title":"Come si esegue l'aggiornamento al software pi\u00f9 recente?"},{"location":"FAQ.html#come-faccio-a-disinstallare-klipper","text":"Dal alto del firmware, non deve succedere nulla di speciale. Basta seguire le indicazioni per il flashing del nuovo firmware. Dal lato del raspberry pi, uno script di disinstallazione \u00e8 disponibile in scripts/klipper-uninstall.sh . Per esempio: sudo ~/klipper/scripts/klipper-uninstall.sh rm -rf ~/klippy-env ~/klipper","title":"Come faccio a disinstallare Klipper?"},{"location":"Features.html","text":"Caratteristiche \u00b6 Klipper ha diverse caratteristiche interessanti: Movimento passo-passo ad alta precisione. Klipper utilizza un processore applicativo (come un Raspberry Pi a basso costo) per calcolare i movimenti della stampante. Il processore dell'applicazione determina quando azionare ciascun motore passo-passo, comprime quegli eventi, li trasmette al microcontrollore e quindi il microcontrollore esegue ogni evento all'ora richiesta. Ogni evento stepper \u00e8 programmato con una precisione di 25 microsecondi o migliore. Il software non utilizza stime cinematiche (come l'algoritmo di Bresenham), ma calcola tempi di passo precisi in base alla fisica dell'accelerazione e alla fisica della cinematica della macchina. Un movimento stepper pi\u00f9 preciso si traduce in un funzionamento pi\u00f9 silenzioso e stabile della stampante. Le migliori prestazioni della classe. Klipper \u00e8 in grado di raggiungere elevate velocit\u00e0 di stepping su microcontrollori nuovi e vecchi. Anche i vecchi microcontrollori a 8 bit possono ottenere velocit\u00e0 di oltre 175.000 passi al secondo. Sui microcontrollori pi\u00f9 recenti sono possibili diversi milioni di passi al secondo. Velocit\u00e0 stepper pi\u00f9 elevate consentono velocit\u00e0 di stampa pi\u00f9 elevate. Il timing dell'evento stepper rimane preciso anche a velocit\u00e0 elevate, migliorando la stabilit\u00e0 generale. Klipper supporta stampanti con pi\u00f9 microcontrollori. Ad esempio, un microcontrollore potrebbe essere utilizzato per controllare un estrusore, mentre un altro controlla i riscaldatori della stampante, mentre un terzo controlla il resto della stampante. Il software host Klipper implementa la sincronizzazione dell'orologio per tenere conto della deriva dell'orologio tra i microcontrollori. Non \u00e8 necessario alcun codice speciale per abilitare pi\u00f9 microcontrollori: sono necessarie solo alcune righe in pi\u00f9 nel file di configurazione. Configurazione tramite semplice file. Non \u00e8 necessario eseguire il reflash del microcontrollore per modificare un'impostazione. Tutta la configurazione di Klipper \u00e8 memorizzata in un file di configurazione standard che pu\u00f2 essere facilmente modificato. Ci\u00f2 semplifica la configurazione e la manutenzione dell'hardware. Klipper supporta \"Smooth Pressure Advance\", un meccanismo per tenere conto degli effetti della pressione all'interno di un estrusore. Ci\u00f2 riduce la \"melma\" dell'estrusore e migliora la qualit\u00e0 degli angoli di stampa. L'implementazione di Klipper non introduce variazioni istantanee della velocit\u00e0 dell'estrusore, il che migliora la stabilit\u00e0 e la robustezza complessive. Klipper supporta \"Input Shaping\" per ridurre l'impatto delle vibrazioni sulla qualit\u00e0 di stampa. Ci\u00f2 pu\u00f2 ridurre o eliminare il \"ringing\" (noto anche come \"ghosting\", \"eco\" o \"increspatura\") nelle stampe. Pu\u00f2 anche consentire di ottenere velocit\u00e0 di stampa pi\u00f9 elevate pur mantenendo un'elevata qualit\u00e0 di stampa. Klipper utilizza un \"risolutore iterativo\" per calcolare sequenze temporali precisi da semplici equazioni cinematiche. Ci\u00f2 semplifica il porting di Klipper su nuovi tipi di robot e mantiene i tempi precisi anche con cinematiche complesse (non \u00e8 necessaria la \"segmentazione della linea\"). Codice portatile. Klipper funziona su microcontrollori basati su ARM, AVR e PRU. Le stampanti esistenti in stile \"reprap\" possono eseguire Klipper senza modifiche hardware: basta aggiungere un Raspberry Pi. Il layout del codice interno di Klipper semplifica il supporto anche di altre architetture di microcontrollori. Codice pi\u00f9 semplice. Klipper utilizza un linguaggio di alto livello (Python) per la maggior parte del codice. Gli algoritmi cinematici, l'analisi del G-code, gli algoritmi di riscaldamento e termistore, ecc. sono tutti scritti in Python. Ci\u00f2 semplifica lo sviluppo di nuove funzionalit\u00e0. Macro programmabili personalizzate. \u00c8 possibile definire nuovi comandi G-Code nel file di configurazione della stampante (non sono necessarie modifiche al codice). Questi comandi sono programmabili, consentendo loro di produrre azioni diverse a seconda dello stato della stampante. Server API integrato. Oltre all'interfaccia G-Code standard, Klipper supporta una ricca interfaccia applicativa basata su JSON. Ci\u00f2 consente ai programmatori di creare applicazioni esterne con un controllo dettagliato della stampante. Caratteristiche aggiuntive \u00b6 Klipper supporta molte funzionalit\u00e0 standard della stampante 3D: Funziona con Octoprint. Ci\u00f2 consente di controllare la stampante utilizzando un normale browser web. Lo stesso Raspberry Pi che esegue Klipper pu\u00f2 anche eseguire Octoprint. Supporto G-code standard. Sono supportati i comandi G-code comuni prodotti dai tipici \"slicer\" (SuperSlicer, Cura, PrusaSlicer, ecc.). Supporto per pi\u00f9 estrusori. Sono supportati anche estrusori con riscaldatori condivisi ed estrusori su carrelli indipendenti (IDEX). Supporto per stampanti cartesiane, delta, corexy, corexz, hybrid-corexy, hybrid-corexz, rotative delta, polari e con verricello a cavo. Supporto per il livellamento automatico del letto. Klipper pu\u00f2 essere configurato per il rilevamento di base dell'inclinazione del piatto o per il livellamento del piatto a mesh completa. Se il piatto utilizza pi\u00f9 stepper Z, Klipper pu\u00f2 anche livellare manipolando in modo indipendente gli stepper Z. Sono supportate la maggior parte delle sonde di altezza Z, comprese le sonde BL-Touch e le sonde servoattivate. Supporto per la calibrazione delta automatica. Lo strumento di calibrazione pu\u00f2 eseguire la calibrazione dell'altezza di base e una calibrazione avanzata delle dimensioni X e Y. La calibrazione pu\u00f2 essere eseguita con una sonda di altezza Z o tramite tastatura manuale. Supporto per sensori di temperatura comuni (ad es. termistori comuni, AD595, AD597, AD849x, PT100, PT1000, MAX6675, MAX31855, MAX31856, MAX31865, BME280, HTU21D, DS18B20 e LM75). \u00c8 inoltre possibile configurare termistori personalizzati e sensori di temperatura analogici personalizzati. \u00c8 possibile monitorare il sensore di temperatura del microcontrollore interno e il sensore di temperatura interna di un Raspberry Pi. Protezione del riscaldatore termico di base abilitata di default. Supporto per ventole standard, ventole per ugelli e ventole a temperatura controllata. Non \u00e8 necessario mantenere le ventole in funzione quando la stampante \u00e8 inattiva. La velocit\u00e0 della ventola pu\u00f2 essere monitorata su ventole dotate di contagiri. Supporto per la configurazione a runtime dei driver per motori passo-passo TMC2130, TMC2208/TMC2224, TMC2209, TMC2660 e TMC5160. C'\u00e8 anche il supporto per il controllo corrente dei tradizionali driver stepper tramite pin AD5206, MCP4451, MCP4728, MCP4018 e PWM. Supporto per comuni display LCD collegati direttamente alla stampante. \u00c8 disponibile anche un menu predefinito. Il contenuto del display e del menu pu\u00f2 essere completamente personalizzato tramite il file di configurazione. Accelerazione costante e supporto \"look-ahead\". Tutti i movimenti della stampante accelereranno gradualmente dall'arresto alla velocit\u00e0 di crociera, quindi decelereranno fino all'arresto. Il flusso in entrata dei comandi di movimento del G-code viene messo in coda e analizzato: l'accelerazione tra i movimenti in una direzione simile sar\u00e0 ottimizzata per ridurre gli arresti di stampa e migliorare il tempo di stampa complessivo. Klipper implementa un algoritmo \"stepper phase endstop\" che pu\u00f2 migliorare la precisione dei tipici interruttori endstop. Se regolato correttamente, pu\u00f2 migliorare l'adesione del primo strato di stampa. Supporto per sensori di presenza del filamento, sensori di movimento del filamento e sensori di larghezza del filamento. Supporto per misurare e registrare l'accelerazione utilizzando un accelerometro adxl345. Supporto per limitare la velocit\u00e0 massima di brevi spostamenti a \"zigzag\" per ridurre le vibrazioni e il rumore della stampante. Per ulteriori informazioni, vedere il documento cinematica . Sono disponibili file di configurazione di esempio per molte stampanti comuni. Controllare la directory di configurazione per un elenco. Per iniziare con Klipper, leggi la guida installazione . Benchmark dei passi \u00b6 Di seguito sono riportati i risultati dei test delle prestazioni degli stepper. I numeri visualizzati rappresentano il numero totale di passi al secondo sul microcontrollore. Microcontrollore 1 stepper attivo 3 stepper attivi 16Mhz AVR 157K 99K 20Mhz AVR 196K 123K SAMD21 686K 471K STM32F042 814K 578K Beaglebone PRU 866K 708K STM32G0B1 1103K 790K STM32F103 1180K 818K SAM3X8E 1273K 981K SAM4S8C 1690K 1385K LPC1768 1923K 1351K LPC1769 2353K 1622K RP2040 2400K 1636K SAM4E8E 2500K 1674K SAMD51 3077K 1885K STM32F407 3652K 2459K STM32F446 3913K 2634K STM32H743 9091K 6061K Se non sei sicuro del microcontrollore su una particolare scheda, trova il file di configurazione appropriato e cerca il nome del microcontrollore nei commenti nella parte superiore di quel file. Ulteriori dettagli sui benchmark sono disponibili nel documento Benchmarks .","title":"Caratteristiche"},{"location":"Features.html#caratteristiche","text":"Klipper ha diverse caratteristiche interessanti: Movimento passo-passo ad alta precisione. Klipper utilizza un processore applicativo (come un Raspberry Pi a basso costo) per calcolare i movimenti della stampante. Il processore dell'applicazione determina quando azionare ciascun motore passo-passo, comprime quegli eventi, li trasmette al microcontrollore e quindi il microcontrollore esegue ogni evento all'ora richiesta. Ogni evento stepper \u00e8 programmato con una precisione di 25 microsecondi o migliore. Il software non utilizza stime cinematiche (come l'algoritmo di Bresenham), ma calcola tempi di passo precisi in base alla fisica dell'accelerazione e alla fisica della cinematica della macchina. Un movimento stepper pi\u00f9 preciso si traduce in un funzionamento pi\u00f9 silenzioso e stabile della stampante. Le migliori prestazioni della classe. Klipper \u00e8 in grado di raggiungere elevate velocit\u00e0 di stepping su microcontrollori nuovi e vecchi. Anche i vecchi microcontrollori a 8 bit possono ottenere velocit\u00e0 di oltre 175.000 passi al secondo. Sui microcontrollori pi\u00f9 recenti sono possibili diversi milioni di passi al secondo. Velocit\u00e0 stepper pi\u00f9 elevate consentono velocit\u00e0 di stampa pi\u00f9 elevate. Il timing dell'evento stepper rimane preciso anche a velocit\u00e0 elevate, migliorando la stabilit\u00e0 generale. Klipper supporta stampanti con pi\u00f9 microcontrollori. Ad esempio, un microcontrollore potrebbe essere utilizzato per controllare un estrusore, mentre un altro controlla i riscaldatori della stampante, mentre un terzo controlla il resto della stampante. Il software host Klipper implementa la sincronizzazione dell'orologio per tenere conto della deriva dell'orologio tra i microcontrollori. Non \u00e8 necessario alcun codice speciale per abilitare pi\u00f9 microcontrollori: sono necessarie solo alcune righe in pi\u00f9 nel file di configurazione. Configurazione tramite semplice file. Non \u00e8 necessario eseguire il reflash del microcontrollore per modificare un'impostazione. Tutta la configurazione di Klipper \u00e8 memorizzata in un file di configurazione standard che pu\u00f2 essere facilmente modificato. Ci\u00f2 semplifica la configurazione e la manutenzione dell'hardware. Klipper supporta \"Smooth Pressure Advance\", un meccanismo per tenere conto degli effetti della pressione all'interno di un estrusore. Ci\u00f2 riduce la \"melma\" dell'estrusore e migliora la qualit\u00e0 degli angoli di stampa. L'implementazione di Klipper non introduce variazioni istantanee della velocit\u00e0 dell'estrusore, il che migliora la stabilit\u00e0 e la robustezza complessive. Klipper supporta \"Input Shaping\" per ridurre l'impatto delle vibrazioni sulla qualit\u00e0 di stampa. Ci\u00f2 pu\u00f2 ridurre o eliminare il \"ringing\" (noto anche come \"ghosting\", \"eco\" o \"increspatura\") nelle stampe. Pu\u00f2 anche consentire di ottenere velocit\u00e0 di stampa pi\u00f9 elevate pur mantenendo un'elevata qualit\u00e0 di stampa. Klipper utilizza un \"risolutore iterativo\" per calcolare sequenze temporali precisi da semplici equazioni cinematiche. Ci\u00f2 semplifica il porting di Klipper su nuovi tipi di robot e mantiene i tempi precisi anche con cinematiche complesse (non \u00e8 necessaria la \"segmentazione della linea\"). Codice portatile. Klipper funziona su microcontrollori basati su ARM, AVR e PRU. Le stampanti esistenti in stile \"reprap\" possono eseguire Klipper senza modifiche hardware: basta aggiungere un Raspberry Pi. Il layout del codice interno di Klipper semplifica il supporto anche di altre architetture di microcontrollori. Codice pi\u00f9 semplice. Klipper utilizza un linguaggio di alto livello (Python) per la maggior parte del codice. Gli algoritmi cinematici, l'analisi del G-code, gli algoritmi di riscaldamento e termistore, ecc. sono tutti scritti in Python. Ci\u00f2 semplifica lo sviluppo di nuove funzionalit\u00e0. Macro programmabili personalizzate. \u00c8 possibile definire nuovi comandi G-Code nel file di configurazione della stampante (non sono necessarie modifiche al codice). Questi comandi sono programmabili, consentendo loro di produrre azioni diverse a seconda dello stato della stampante. Server API integrato. Oltre all'interfaccia G-Code standard, Klipper supporta una ricca interfaccia applicativa basata su JSON. Ci\u00f2 consente ai programmatori di creare applicazioni esterne con un controllo dettagliato della stampante.","title":"Caratteristiche"},{"location":"Features.html#caratteristiche-aggiuntive","text":"Klipper supporta molte funzionalit\u00e0 standard della stampante 3D: Funziona con Octoprint. Ci\u00f2 consente di controllare la stampante utilizzando un normale browser web. Lo stesso Raspberry Pi che esegue Klipper pu\u00f2 anche eseguire Octoprint. Supporto G-code standard. Sono supportati i comandi G-code comuni prodotti dai tipici \"slicer\" (SuperSlicer, Cura, PrusaSlicer, ecc.). Supporto per pi\u00f9 estrusori. Sono supportati anche estrusori con riscaldatori condivisi ed estrusori su carrelli indipendenti (IDEX). Supporto per stampanti cartesiane, delta, corexy, corexz, hybrid-corexy, hybrid-corexz, rotative delta, polari e con verricello a cavo. Supporto per il livellamento automatico del letto. Klipper pu\u00f2 essere configurato per il rilevamento di base dell'inclinazione del piatto o per il livellamento del piatto a mesh completa. Se il piatto utilizza pi\u00f9 stepper Z, Klipper pu\u00f2 anche livellare manipolando in modo indipendente gli stepper Z. Sono supportate la maggior parte delle sonde di altezza Z, comprese le sonde BL-Touch e le sonde servoattivate. Supporto per la calibrazione delta automatica. Lo strumento di calibrazione pu\u00f2 eseguire la calibrazione dell'altezza di base e una calibrazione avanzata delle dimensioni X e Y. La calibrazione pu\u00f2 essere eseguita con una sonda di altezza Z o tramite tastatura manuale. Supporto per sensori di temperatura comuni (ad es. termistori comuni, AD595, AD597, AD849x, PT100, PT1000, MAX6675, MAX31855, MAX31856, MAX31865, BME280, HTU21D, DS18B20 e LM75). \u00c8 inoltre possibile configurare termistori personalizzati e sensori di temperatura analogici personalizzati. \u00c8 possibile monitorare il sensore di temperatura del microcontrollore interno e il sensore di temperatura interna di un Raspberry Pi. Protezione del riscaldatore termico di base abilitata di default. Supporto per ventole standard, ventole per ugelli e ventole a temperatura controllata. Non \u00e8 necessario mantenere le ventole in funzione quando la stampante \u00e8 inattiva. La velocit\u00e0 della ventola pu\u00f2 essere monitorata su ventole dotate di contagiri. Supporto per la configurazione a runtime dei driver per motori passo-passo TMC2130, TMC2208/TMC2224, TMC2209, TMC2660 e TMC5160. C'\u00e8 anche il supporto per il controllo corrente dei tradizionali driver stepper tramite pin AD5206, MCP4451, MCP4728, MCP4018 e PWM. Supporto per comuni display LCD collegati direttamente alla stampante. \u00c8 disponibile anche un menu predefinito. Il contenuto del display e del menu pu\u00f2 essere completamente personalizzato tramite il file di configurazione. Accelerazione costante e supporto \"look-ahead\". Tutti i movimenti della stampante accelereranno gradualmente dall'arresto alla velocit\u00e0 di crociera, quindi decelereranno fino all'arresto. Il flusso in entrata dei comandi di movimento del G-code viene messo in coda e analizzato: l'accelerazione tra i movimenti in una direzione simile sar\u00e0 ottimizzata per ridurre gli arresti di stampa e migliorare il tempo di stampa complessivo. Klipper implementa un algoritmo \"stepper phase endstop\" che pu\u00f2 migliorare la precisione dei tipici interruttori endstop. Se regolato correttamente, pu\u00f2 migliorare l'adesione del primo strato di stampa. Supporto per sensori di presenza del filamento, sensori di movimento del filamento e sensori di larghezza del filamento. Supporto per misurare e registrare l'accelerazione utilizzando un accelerometro adxl345. Supporto per limitare la velocit\u00e0 massima di brevi spostamenti a \"zigzag\" per ridurre le vibrazioni e il rumore della stampante. Per ulteriori informazioni, vedere il documento cinematica . Sono disponibili file di configurazione di esempio per molte stampanti comuni. Controllare la directory di configurazione per un elenco. Per iniziare con Klipper, leggi la guida installazione .","title":"Caratteristiche aggiuntive"},{"location":"Features.html#benchmark-dei-passi","text":"Di seguito sono riportati i risultati dei test delle prestazioni degli stepper. I numeri visualizzati rappresentano il numero totale di passi al secondo sul microcontrollore. Microcontrollore 1 stepper attivo 3 stepper attivi 16Mhz AVR 157K 99K 20Mhz AVR 196K 123K SAMD21 686K 471K STM32F042 814K 578K Beaglebone PRU 866K 708K STM32G0B1 1103K 790K STM32F103 1180K 818K SAM3X8E 1273K 981K SAM4S8C 1690K 1385K LPC1768 1923K 1351K LPC1769 2353K 1622K RP2040 2400K 1636K SAM4E8E 2500K 1674K SAMD51 3077K 1885K STM32F407 3652K 2459K STM32F446 3913K 2634K STM32H743 9091K 6061K Se non sei sicuro del microcontrollore su una particolare scheda, trova il file di configurazione appropriato e cerca il nome del microcontrollore nei commenti nella parte superiore di quel file. Ulteriori dettagli sui benchmark sono disponibili nel documento Benchmarks .","title":"Benchmark dei passi"},{"location":"G-Codes.html","text":"G-Codes \u00b6 Questo documento descrive i comandi che Klipper supporta. Questi sono i comandi che si possono inserire nella scheda del terminale OctoPrint. Comandi G-Code \u00b6 Klipper supporta i seguenti comandi G-Code standard: Movimento (G0 or G1): G1 [X<pos>] [Y<pos>] [Z<pos>] [E<pos>] [F<speed>] Sosta: G4 P<millisecondi> Sposta all'origine: G28 [X] [Y] [Z] Spegnere i motori: M18 o M84 Attendi che li movimenti correnti finiscano: M400 Utilizzare distanze assolute/relative per l'estrusione: M82 , M83 Usa coordinate assolute/relative: G90 , G91 Impostare la posizione: G92 [X<pos>] [Y<pos>] [Z<pos>] [E<pos>] Impostare la percentuale di override del fattore di velocit\u00e0: M220 S<percentuale> Imposta la percentuale di sostituzione del fattore di estrusione: M221 S<percentuale> Impostare l'accelerazione: M204 S<valore> OPPURE M204 P<valore> T<valore> Nota: se S non viene specificato e vengono specificati sia P che T, l'accelerazione viene impostata al minimo di P e T. Se viene specificato solo uno di P o T, il comando non ha effetto. Ottieni la temperatura dell'estrusore: M105 Imposta la temperatura dell'estrusore: M104 [T<index>] [S<temperatura>] Imposta la temperatura dell'estrusore e attende: M109 [T<index>] S<temperatura> Nota: M109 attende sempre che la temperatura si assesti al valore richiesto Imposta la temperatura del piatto: M140 [S<temperatura>] Imposta la temperatura del piatto e attende: M190 S<temperatura> Nota: M190 attende sempre che la temperatura si assesti al valore richiesto Imposta la velocit\u00e0 della ventola: M106 S<valore> Spegnere la ventola: M107 Arresto di emergenza: M112 Ottieni la posizione attuale: M114 Ottieni la versione del firmware: M115 Per ulteriori dettagli sui comandi precedenti, vedere la documentazione RepRap G-Code . L'obiettivo di Klipper \u00e8 supportare i comandi G-Code prodotti da comuni software di terze parti (ad es. OctoPrint, Printrun, Slic3r, Cura, ecc.) nelle loro configurazioni standard. Non \u00e8 un obiettivo supportare ogni possibile comando G-Code. Invece, Klipper preferisce comandi leggibili dall'uomo \"comandi G-Code estesi\" . Allo stesso modo, l'output del terminale G-Code \u00e8 inteso solo per essere leggibile dall'uomo - vedere il documento del server API se si controlla Klipper da un software esterno. Se si necessita di un comando G-Code meno comune, potrebbe essere possibile implementarlo con una [sezione di configurazione gcode_macro] personalizzata (Config_Reference.md#gcode_macro). Ad esempio, si potrebbe usare questo per implementare: G12 , G29 , G30 , G31 , M42 , M80 , M81 , T1 , ecc. Comandi aggiuntivi \u00b6 Klipper utilizza comandi G-Code \"estesi\" per la configurazione e lo stato generale. Questi comandi estesi seguono tutti un formato simile: iniziano con un nome di comando e possono essere seguiti da uno o pi\u00f9 parametri. Ad esempio: SET_SERVO SERVO=mioservo ANGLE=5.3 . In questo documento, i comandi ed i parametri sono mostrati in maiuscolo, tuttavia non fanno distinzione tra maiuscole e minuscole. (Quindi, \"SET_SERVO\" e \"set_servo\" eseguono entrambi lo stesso comando.) Questa sezione \u00e8 organizzata in base al nome del modulo Klipper, che generalmente segue i nomi delle sezioni specificati nel file di configurazione della stampante . Si noti che alcuni moduli vengono caricati automaticamente. [adxl345] \u00b6 I seguenti comandi sono disponibili quando una sezione di configurazione adxl345 \u00e8 abilitata. ACCELEROMETER_MEASURE \u00b6 ACCELEROMETER_MEASURE [CHIP=<config_name>] [NAME=<value>] : Avvia le misurazioni dell'accelerometro al numero richiesto di campioni al secondo. Se CHIP non \u00e8 specificato, il valore predefinito \u00e8 \"adxl345\". Il comando funziona in modalit\u00e0 start-stop: alla prima esecuzione avvia le misure, alla successiva esecuzione le interrompe. I risultati delle misurazioni vengono scritti in un file denominato /tmp/adxl345-<chip>-<name>.csv dove <chip> \u00e8 il nome del chip dell'accelerometro ( my_chip_name da [adxl345 my_chip_name] ) e <name> \u00e8 il parametro NAME facoltativo. Se NAME non \u00e8 specificato, il valore predefinito \u00e8 l'ora corrente nel formato \"AAAAMMGG_HHMMSS\". Se l'accelerometro non ha un nome nella sua sezione di configurazione (semplicemente [adxl345] ), allora la parte <chip> del nome non viene generata. ACCELEROMETER_QUERY \u00b6 ACCELEROMETER_QUERY [CHIP=<config_name>] [RATE=<value>] : interroga l'accelerometro per il valore corrente. Se CHIP non \u00e8 specificato, il valore predefinito \u00e8 \"adxl345\". Se RATE non \u00e8 specificato, viene utilizzato il valore predefinito. Questo comando \u00e8 utile per testare la connessione all'accelerometro ADXL345: uno dei valori restituiti dovrebbe essere un'accelerazione di caduta libera (+/- un po' di rumore del chip). ACCELEROMETER_DEBUG_READ \u00b6 ACCELEROMETER_DEBUG_READ [CHIP=<config_name>] REG=<register> : interroga l'ADXL345 register \"register\" (es. 44 o 0x2C). Pu\u00f2 essere utile per scopi di debug. ACCELEROMETER_DEBUG_WRITE \u00b6 ACCELEROMETER_DEBUG_WRITE [CHIP=<nome_config>] REG=<register> VAL=<value> : Scrive il valore \"value\" grezzo in un registro \"register\". Sia \"value\" che \"registrer\" possono essere un numero intero decimale o esadecimale. Usare con cura e fare riferimento alla scheda tecnica ADXL345 per riferimento. [angle] \u00b6 I seguenti comandi sono disponibili quando una sezione di configurazione dell'angolo \u00e8 abilitata. ANGLE_CALIBRATE \u00b6 ANGLE_CALIBRATE CHIP=<chip_name> : Esegue la calibrazione dell'angolo sul sensore dato (deve esserci una sezione di configurazione [angle chip_name] che ha specificato un parametro stepper ). IMPORTANTE - questo strumento comander\u00e0 al motore passo-passo di muoversi senza controllare i normali limiti della cinematica. Idealmente, il motore dovrebbe essere scollegato da qualsiasi carrello della stampante prima di eseguire la calibrazione. Se non \u00e8 possibile scollegare lo stepper dalla stampante, assicurarsi che il carrello sia vicino al centro della sua guida prima di iniziare la calibrazione. (Il motore passo-passo pu\u00f2 spostarsi avanti o indietro di due rotazioni complete durante questo test.) Dopo aver completato questo test, utilizzare il comando SAVE_CONFIG per salvare i dati di calibrazione nel file di configurazione. Per utilizzare questo strumento \u00e8 necessario installare il pacchetto Python \"numpy\" (consultare il measuring resonance document per ulteriori informazioni). ANGLE_DEBUG_READ \u00b6 ANGLE_DEBUG_READ CHIP=<config_name> REG=<register> : Interroga il registro del sensore \"register\" (ad es. 44 o 0x2C). Pu\u00f2 essere utile per scopi di debug. Questo \u00e8 disponibile solo per i chip tle5012b. ANGLE_DEBUG_WRITE \u00b6 ANGLE_DEBUG_WRITE CHIP=<config_name> REG=<register> VAL=<value> : scrive il valore \"value\" grezzo nel registro \"register\". Sia \"value\" che \"register\" possono essere un numero intero decimale o esadecimale. Usare con cautela e fare riferimento alla scheda tecnica del sensore per riferimento. Questo \u00e8 disponibile solo per i chip tle5012b. [bed_mesh] \u00b6 I seguenti comandi sono disponibili quando la sezione di configurazione bed_mesh \u00e8 abilitata (consultare anche la guida della mesh del letto ). BED_MESH_CALIBRATE \u00b6 BED_MESH_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>] [<mesh_parameter>=<value>] : Questo comando sonda il piatto utilizzando i punti generati specificati dai parametri nella configurazione. Dopo il sondaggio, viene generata una mesh e il movimento z viene regolato in base alla mesh. Vedere il comando PROBE per i dettagli sui parametri della sonda opzionali. Se viene specificato METHOD=manual, lo strumento di probing manuale \u00e8 attivato - vedere il comando MANUAL_PROBE per quanti riguarda per i dettagli sui comandi aggiuntivi disponibili mentre questo strumento \u00e8 attivo. BED_MESH_OUTPUT \u00b6 BED_MESH_OUTPUT PGP=[<0:1>] : questo comando restituisce i valori z sondati e i valori mesh correnti al terminale. Se viene specificato PGP=1, le coordinate X, Y generate da bed_mesh, insieme ai relativi indici associati, verranno inviate al terminale. BED_MESH_MAP \u00b6 BED_MESH_MAP : Come per BED_MESH_OUTPUT, questo comando stampa lo stato corrente della mesh sul terminale. Invece di stampare i valori in un formato leggibile, lo stato viene serializzato in formato json. Ci\u00f2 consente ai plug-in di Octoprint di acquisire facilmente i dati e generare mappe di altezza che si approssimano la superficie del piatto. BED_MESH_CLEAR \u00b6 BED_MESH_CLEAR : questo comando cancella la mesh e rimuove tutte le regolazioni z. Si consiglia di inserirlo nella parte finale del gcode. BED_MESH_PROFILE \u00b6 BED_MESH_PROFILE LOAD=<name> SAVE=<name> REMOVE=<name> : questo comando fornisce la gestione del profilo per lo stato della mesh. LOAD ripristiner\u00e0 lo stato della mesh dal profilo corrispondente al nome fornito. SAVE salver\u00e0 lo stato della mesh corrente in un profilo che corrisponde al nome fornito. Rimuovi eliminer\u00e0 il profilo corrispondente al nome fornito dalla memoria persistente. Si noti che dopo aver eseguito le operazioni SAVE o REMOVE \u00e8 necessario eseguire il gcode SAVE_CONFIG per rendere permanenti le modifiche alla memoria persistente. BED_MESH_OFFSET \u00b6 BED_MESH_OFFSET [X=<value>] [Y=<value>] : applica gli offset X e/o Y alla ricerca della mesh. Ci\u00f2 \u00e8 utile per le stampanti con estrusori indipendenti, poich\u00e9 \u00e8 necessario un offset per produrre la corretta regolazione Z dopo un cambio utensile. [bed_screws] \u00b6 I seguenti comandi sono disponibili quando la sezione di configurazione bed_screws \u00e8 abilitata (consultare anche la manual level guide ). BED_SCREWS_ADJUST \u00b6 BED_SCREWS_ADJUST : questo comando richiamer\u00e0 lo strumento di regolazione delle viti del piatto. Comander\u00e0 l'ugello in posizioni diverse (come definito nel file di configurazione) e consentir\u00e0 di effettuare regolazioni alle viti del piatto in modo che il piatto sia a una distanza costante dall'ugello. [bed_tilt] \u00b6 I seguenti comandi sono disponibili quando la sezione di configurazione inclinazione_piatto \u00e8 abilitata. BED_TILT_CALIBRATE \u00b6 BED_TILT_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>] : Questo comando sonder\u00e0 i punti specificati nella configurazione e quindi consiglier\u00e0 le regolazioni dell'inclinazione x e y aggiornate. Vedere il comando PROBE per i dettagli sui parametri della sonda opzionali. Se viene specificato METHOD=manual, lo strumento di probing manuale \u00e8 attivato - vedere il comando MANUAL_PROBE sopra per i dettagli sui comandi aggiuntivi disponibili mentre questo strumento \u00e8 attivo. [bltouch] \u00b6 Il comando seguente \u00e8 disponibile quando \u00e8 abilitata una sezione di configurazione bltouch (vedere anche la Guida BL-Touch ). BLTOUCH_DEBUG \u00b6 BLTOUCH_DEBUG COMMAND=<command> : Invia un comando al BLTouch. Pu\u00f2 essere utile per il debug. I comandi disponibili sono: pin_down , touch_mode , pin_up , self_test , reset . Un BL-Touch V3.0 o V3.1 pu\u00f2 anche supportare i comandi set_5V_output_mode , set_OD_output_mode , output_mode_store . BLTOUCH_STORE \u00b6 BLTOUCH_STORE MODE=<output_mode> : memorizza una modalit\u00e0 di output nella EEPROM di un BLTouch V3.1 Le modalit\u00e0 di output disponibili sono: 5V , OD [configfile] \u00b6 Il modulo configfile viene caricato automaticamente. SAVE_CONFIG \u00b6 SAVE_CONFIG : questo comando sovrascriver\u00e0 il file di configurazione della stampante principale e riavvier\u00e0 il software host. Questo comando viene utilizzato insieme ad altri comandi di calibrazione per memorizzare i risultati dei test di calibrazione. [delayed_gcode] \u00b6 Il comando seguente \u00e8 abilitato se \u00e8 stata abilitata una sezione di configurazione di gcode ritardata (consultare anche la guida ai modelli ). UPDATE_DELAYED_GCODE \u00b6 UPDATE_DELAYED_GCODE [ID=<nome>] [DURATION=<secondi>] : aggiorna la durata del ritardo per il [gcode_ritardato] identificato e avvia il timer per l'esecuzione di gcode. Un valore di 0 annuller\u00e0 l'esecuzione di un gcode ritardato in sospeso. [delta_calibrate] \u00b6 I seguenti comandi sono disponibili quando la sezione di configurazione delta_calibrate \u00e8 abilitata (consultare anche la guida alla calibrazione delta ). DELTA_CALIBRATE \u00b6 DELTA_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>] : questo comando sonder\u00e0 sette punti sul piatto e consiglier\u00e0 posizioni di finecorsa, angoli della torre e raggio aggiornati. Vedere il comando PROBE per i dettagli sui parametri della sonda opzionali. Se viene specificato METHOD=manual, lo strumento di probe manuale \u00e8 attivato - vedere il comando MANUAL_PROBE precedente per i dettagli sui comandi aggiuntivi disponibili mentre questo strumento \u00e8 attivo. DELTA_ANALYZE \u00b6 DELTA_ANALYZE : questo comando viene utilizzato durante la calibrazione avanzata delle stampanti delta. Vedere Delta Calibrate per i dettagli. [display] \u00b6 Il comando seguente \u00e8 disponibile quando \u00e8 abilitata una sezione di configurazione display . SET_DISPLAY_GROUP \u00b6 SET_DISPLAY_GROUP [DISPLAY=<display>] GROUP=<group> : Imposta il gruppo di visualizzazione attivo di un display LCD. Ci\u00f2 consente di definire pi\u00f9 gruppi di dati di visualizzazione nella configurazione, ad es. [display_data <group> <elementname>] e passare da uno all'altro usando questo comando gcode esteso. Se DISPLAY non \u00e8 specificato, l'impostazione predefinita \u00e8 \"display\" (il display principale). [display_status] \u00b6 Il modulo display_status viene caricato automaticamente se una sezione di configurazione display \u00e8 abilitata. Fornisce i seguenti comandi G-Code standard: Messaggio visualizzato: M117 <messaggio> Imposta la percentuale di costruzione: M73 P<percentuale> Viene inoltre fornito il seguente comando G-Code esteso: SET_DISPLAY_TEXT MSG=<messaggio> : esegue l'equivalente di M117, impostando il MSG fornito come messaggio visualizzato. Se MSG viene omesso, il display verr\u00e0 cancellato. [dual_carriage] \u00b6 Il comando seguente \u00e8 disponibile quando la sezione di configurazione dual_carriage \u00e8 abilitata. SET_DUAL_CARRIAGE \u00b6 SET_DUAL_CARRIAGE CARRIAGE=[0|1] : Questo comando imposter\u00e0 il carrello attivo. Viene in genere richiamato dai campi activate_gcode e deactivate_gcode in una configurazione a pi\u00f9 estrusori. [endstop_phase] \u00b6 I seguenti comandi sono disponibili quando una sezione di configurazione endstop_phase \u00e8 abilitata (consultare anche la guida alla fase endstop ). ENDSTOP_PHASE_CALIBRATE \u00b6 ENDSTOP_PHASE_CALIBRATE [STEPPER=<config_name>] : Se non viene fornito alcun parametro STEPPER, questo comando riporter\u00e0 le statistiche sulle fasi stepper dell'arresto durante le precedenti operazioni di homing. Quando viene fornito un parametro STEPPER, fa in modo che l'impostazione della fase di fine corsa fornita sia scritta nel file di configurazione (insieme al comando SAVE_CONFIG). [exclude_object] \u00b6 I seguenti comandi sono disponibili quando \u00e8 abilitata una exclude_object config section (consultare anche la exclude object guide ): EXCLUDE_OBJECT \u00b6 EXCLUDE_OBJECT [NAME=object_name] [CURRENT=1] [RESET=1] : Senza parametri, questo restituir\u00e0 un elenco di tutti gli oggetti attualmente esclusi. Quando viene fornito il parametro NAME , l'oggetto denominato verr\u00e0 escluso dalla stampa. Quando viene fornito il parametro CURRENT , l'oggetto corrente verr\u00e0 escluso dalla stampa. Quando viene fornito il parametro RESET l'elenco degli oggetti esclusi verr\u00e0 cancellato. Inoltre l'inclusione di NAME ripristiner\u00e0 solo l'oggetto denominato. Questo pu\u00f2 causare errori di stampa, se i livelli sono gi\u00e0 stati saltati. EXCLUDE_OBJECT_DEFINE \u00b6 EXCLUDE_OBJECT_DEFINE [NAME=object_name [CENTER=X,Y] [POLYGON=[[x,y],...]] [RESET=1] [JSON=1] : fornisce un riepilogo di un oggetto nel file. Senza parametri forniti, questo elencher\u00e0 gli oggetti definiti noti a Klipper. Restituisce un elenco di stringhe, a meno che non venga fornito il parametro JSON , quando restituir\u00e0 i dettagli dell'oggetto in formato json. Quando il parametro NAME \u00e8 incluso, definisce un oggetto da escludere. NAME : questo parametro \u00e8 obbligatorio. \u00c8 l'identificatore utilizzato da altri comandi in questo modulo. CENTER : una coordinata X,Y per l'oggetto. POLYGON : Un array di coordinate X,Y che fornisce un contorno per l'oggetto. Quando viene fornito il parametro RESET , tutti gli oggetti definiti verranno cancellati e il modulo [exclude_object] verr\u00e0 ripristinato. EXCLUDE_OBJECT_START \u00b6 EXCLUDE_OBJECT_START NAME=object_name : questo comando prende un parametro NAME e marca l'inizio del gcode per un oggetto sul livello corrente. EXCLUDE_OBJECT_END \u00b6 EXCLUDE_OBJECT_END [NAME=object_name] : Denota la fine del gcode dell'oggetto per il livello. \u00c8 accoppiato con EXCLUDE_OBJECT_START . Un parametro NAME \u00e8 facoltativo e avviser\u00e0 solo quando il nome fornito non corrisponde all'oggetto corrente. [extruder] \u00b6 I seguenti comandi sono disponibili se una sezione di configurazione dell'estrusore \u00e8 abilitata: ACTIVATE_EXTRUDER \u00b6 ACTIVATE_EXTRUDER EXTRUDER=<config_name> : in una stampante con pi\u00f9 sezioni di configurazione extruder , questo comando cambia l'hotend attivo. SET_PRESSURE_ADVANCE \u00b6 SET_PRESSURE_ADVANCE [EXTRUDER=<config_name>] [ADVANCE=<pressure_advance>] [SMOOTH_TIME=<pressure_advance_smooth_time>] : Imposta i parametri di pressure advance delleo stepper di un estrusore (come definito in un estrusore o [ extruder_stepper] (sezione di configurazione Config_Reference.md#extruder_stepper). Se EXTRUDER non \u00e8 specificato, per impostazione predefinita viene utilizzato lo stepper definito nell'hotend attivo. SET_EXTRUDER_ROTATION_DISTANCE \u00b6 SET_EXTRUDER_ROTATION_DISTANCE EXTRUDER=<config_name> [DISTANCE=<distance>] : Imposta un nuovo valore per la \"distanza di rotazione\" dello stepper dell'estrusore fornito (come definito in un extruder o extruder_stepper sezione di configurazione). Se la distanza di rotazione \u00e8 un numero negativo, il movimento passo-passo verr\u00e0 invertito (rispetto alla direzione passo-passo specificata nel file di configurazione). Le impostazioni modificate non vengono mantenute al ripristino di Klipper. Usare con cautela poich\u00e9 piccole modifiche possono causare una pressione eccessiva tra l'estrusore e l'hotend. Eseguire una corretta calibrazione con il filamento prima dell'uso. Se il valore 'DISTANZA' non viene fornito, questo comando restituir\u00e0 la distanza di rotazione corrente. SYNC_EXTRUDER_MOTION \u00b6 SYNC_EXTRUDER_MOTION EXTRUDER=<nome> MOTION_QUEUE=<nome> : questo comando attiver\u00e0 lo stepper specificato da EXTRUDER (come definito in un extruder o extruder_stepper config sezione) per sincronizzarsi con il movimento di un estrusore specificato da MOTION_QUEUE (come definito in una sezione di configurazione estrusore ). Se MOTION_QUEUE \u00e8 una stringa vuota, lo stepper verr\u00e0 desincronizzato da tutti i movimenti dell'estrusore. SET_EXTRUDER_STEP_DISTANCE \u00b6 Questo comando \u00e8 deprecato e verr\u00e0 rimosso nel prossimo futuro. SYNC_STEPPER_TO_EXTRUDER \u00b6 Questo comando \u00e8 deprecato e verr\u00e0 rimosso nel prossimo futuro. [fan_generic] \u00b6 Il comando seguente \u00e8 disponibile quando una sezione di configurazione fan_generic \u00e8 abilitata. SET_FAN_SPEED \u00b6 SET_FAN_SPEED FAN=config_name SPEED=<velocit\u00e0> Questo comando imposta la velocit\u00e0 di una ventola. \"velocit\u00e0\" deve essere compresa tra 0.0 e 1.0. [filament_switch_sensor] \u00b6 Il comando seguente \u00e8 disponibile quando \u00e8 abilitata una sezione di configurazione filament_switch_sensor o filament_motion_sensor . QUERY_FILAMENT_SENSOR \u00b6 QUERY_FILAMENT_SENSOR SENSOR=<sensor_name> : Interroga lo stato del sensore di filamento. I dati visualizzati sul terminale dipenderanno dal tipo di sensore definito nella configurazione. SET_FILAMENT_SENSOR \u00b6 SET_FILAMENT_SENSOR SENSOR=<nome_sensore> ENABLE=[0|1] : Attiva/disattiva il sensore di filamento. Se ENABLE \u00e8 impostato su 0, il sensore di filamento sar\u00e0 disabilitato, se impostato su 1 sar\u00e0 abilitato. [firmware_retraction] \u00b6 I seguenti comandi G-Code standard sono disponibili quando la sezione di configurazione firmware_retraction \u00e8 abilitata. Questi comandi consentono di utilizzare la funzione di retraction del firmware disponibile in molti slicer, per ridurre lo stringing durante gli spostamenti di non estrusione da una parte all'altra della stampa. Configurando opportunamente la pressure advance si riduce la lunghezza della retrazione richiesta. G10 : Ritrae l'estrusore utilizzando i parametri attualmente configurati. G11 : Ritira l'estrusore utilizzando i parametri attualmente configurati. Sono inoltre disponibili i seguenti comandi aggiuntivi. SET_RETRACTION \u00b6 SET_RETRACTION [RETRACT_LENGTH=<mm>] [RETRACT_SPEED=<mm/s>] [UNRETRACT_EXTRA_LENGTH=<mm>] [UNRETRACT_SPEED=<mm/s>] : regola i parametri utilizzati dalla retrazione. RETRACT_LENGTH determina la lunghezza del filamento da ritrarre e estrudere. La velocit\u00e0 di retrazione viene regolata tramite RETRACT_SPEED, ed \u00e8 generalmente impostata su un valore relativamente alto. La velocit\u00e0 di annullamento viene regolata tramite UNRETRACT_SPEED e non \u00e8 particolarmente critica, sebbene spesso inferiore a RETRACT_SPEED. In alcuni casi \u00e8 utile aggiungere una piccola quantit\u00e0 di lunghezza aggiuntiva all'annullamento della retrazione, e questa viene impostata tramite UNRETRACT_EXTRA_LENGTH. SET_RETRACTION \u00e8 comunemente impostato come parte della configurazione dello slicer per filamento, poich\u00e9 filamenti diversi richiedono impostazioni dei parametri diverse. GET_RETRACTION \u00b6 GET_RETRACTION : interroga i parametri correnti utilizzati dal firmware per retrazione e li visualizza sul terminale. [force_move] \u00b6 Il modulo force_move viene caricato automaticamente, tuttavia alcuni comandi richiedono l'impostazione di enable_force_move in printer config . STEPPER_BUZZ \u00b6 STEPPER_BUZZ STEPPER=<nome_config> : sposta lo stepper dato in avanti di 1 mm e poi indietro di 1 mm, ripetuto 10 volte. Questo \u00e8 uno strumento diagnostico per aiutare a verificare la connettivit\u00e0 stepper. FORCE_MOVE \u00b6 FORCE_MOVE STEPPER=<nome_config> DISTANCE=<value> VELOCITY=<value> [ACCEL=<value>] : Questo comando sposter\u00e0 forzatamente lo stepper dato della distanza data (in mm) alla velocit\u00e0 costante data (in mm/ S). Se viene specificato ACCEL ed \u00e8 maggiore di zero, verr\u00e0 utilizzata l'accelerazione data (in mm/s^2); altrimenti non viene eseguita alcuna accelerazione. Non vengono effettuati controlli sui limiti; non vengono effettuati aggiornamenti cinematici; altri stepper paralleli su un asse non verranno spostati. Prestare attenzione poich\u00e9 un comando errato potrebbe causare danni! L'uso di questo comando metter\u00e0 quasi sicuramente la cinematica di basso livello in uno stato errato; emettere un G28 in seguito per ripristinare la cinematica. Questo comando \u00e8 destinato alla diagnostica e al debug di basso livello. SET_KINEMATIC_POSITION \u00b6 SET_KINEMATIC_POSITION [X=<valore>] [Y=<valore>] [Z=<valore>] : forza il codice cinematico di basso livello a credere che la testa di stampa si trovi nella posizione cartesiana data. Questo \u00e8 un comando diagnostico e di debug; utilizzare SET_GCODE_OFFSET e/o G92 per le normali trasformazioni degli assi. Se un asse non \u00e8 specificato, verr\u00e0 impostato automaticamente sulla posizione in cui la testa \u00e8 stata comandata l'ultima volta. L'impostazione di una posizione errata o non valida pu\u00f2 causare errori software interni. Questo comando potrebbe invalidare futuri controlli sui confini; emettere un G28 in seguito per ripristinare la cinematica. [gcode] \u00b6 Il modulo gcode viene caricato automaticamente. RESTART \u00b6 RESTART : Ci\u00f2 far\u00e0 s\u00ec che il software host ricarichi la sua configurazione ed esegua un ripristino interno. Questo comando non canceller\u00e0 lo stato di errore dal microcontrollore (vedi FIRMWARE_RESTART) n\u00e9 caricher\u00e0 nuovo software (vedi FAQ ) . FIRMWARE_RESTART \u00b6 FIRMWARE_RESTART : Questo \u00e8 simile a un comando RESTART, ma cancella anche qualsiasi stato di errore dal microcontrollore. STATUS \u00b6 STATUS : segnala lo stato del software host di Klipper. HELP \u00b6 HELP : riporta l'elenco dei comandi G-Code estesi disponibili. [gcode_arcs] \u00b6 I seguenti comandi G-Code standard sono disponibili se una sezione di configurazione gcode_arcs \u00e8 abilitata: Movimento controllato dell'arco (G2 o G3): G2 [X<pos>] [Y<pos>] [Z<pos>] [E<pos>] [F<velocit\u00e0>] I<valore> J<valore> [gcode_macro] \u00b6 Il comando seguente \u00e8 disponibile quando \u00e8 abilitata una sezione di configurazione gcode_macro (consultare anche la guida ai modelli di comando ). SET_GCODE_VARIABLE \u00b6 SET_GCODE_VARIABLE MACRO=<nome_macro> VARIABLE=<nome> VALUE=<valore> : questo comando consente di modificare il valore di una variabile gcode_macro in fase di esecuzione. Il VALUE fornito viene analizzato come un valore literal in Python. [gcode_move] \u00b6 Il modulo gcode_move viene caricato automaticamente. GET_POSITION \u00b6 GET_POSITION`: Restituisce informazioni sulla posizione corrente della testa di stampa. Per ulteriori informazioni, vedere la documentazione per gli sviluppatori di GET_POSITION output . SET_GCODE_OFFSET \u00b6 SET_GCODE_OFFSET [X=<pos>|X_ADJUST=<regola>] [Y=<pos>|Y_ADJUST=<regola>] [Z=<pos>|Z_ADJUST=<regola>] [MOVE=1 [MOVE_SPEED=<velocit\u00e0 >]] : imposta un offset di posizione da applicare ai futuri comandi G-Code. Questo \u00e8 comunemente usato per cambiare virtualmente l'offset del letto Z o per impostare gli offset XY degli ugelli quando si cambia estrusore. Ad esempio, se viene inviato \"SET_GCODE_OFFSET Z=0.2\", i futuri movimenti G-Code avranno 0.2 mm aggiunti alla loro altezza Z. Se vengono utilizzati i parametri di stile X_ADJUST, la regolazione verr\u00e0 aggiunta a qualsiasi offset esistente (ad esempio, \"SET_GCODE_OFFSET Z=-0.2\" seguito da \"SET_GCODE_OFFSET Z_ADJUST=0.3\" risulter\u00e0 in un offset Z totale di 0.1). Se viene specificato \"MOVE=1\", verr\u00e0 emesso un movimento della testa di stampa per applicare l'offset specificato (altrimenti l'offset avr\u00e0 effetto sul successivo movimento assoluto del codice G che specifica l'asse dato). Se viene specificato \"MOVE_SPEED\", lo spostamento della testa utensile verr\u00e0 eseguito con la velocit\u00e0 data (in mm/s); in caso contrario, il movimento della testa utensile utilizzer\u00e0 l'ultima velocit\u00e0 del G-code specificata. SAVE_GCODE_STATE \u00b6 SAVE_GCODE_STATE [NAME=<nome_stato>] : salva lo stato di analisi delle coordinate del G-code corrente. Il salvataggio e il ripristino dello stato del G-code \u00e8 utile negli script e nelle macro. Questo comando salva la modalit\u00e0 di coordinate assolute del G-code corrente (G90/G91), la modalit\u00e0 di estrusione assoluta (M82/M83), l'origine (G92), l'offset (SET_GCODE_OFFSET), l'override della velocit\u00e0 (M220), l'override dell'estrusore (M221), la velocit\u00e0 di spostamento , la posizione XYZ corrente e la posizione relativa dell'estrusore \"E\". Se viene fornito NAME, consente di assegnare un nome allo stato salvato alla stringa data. Se NAME non viene fornito, il valore predefinito \u00e8 \"predefinito\". RESTORE_GCODE_STATE \u00b6 RESTORE_GCODE_STATE [NAME=<nome_stato>] [MOVE=1 [MOVE_SPEED=<velocit\u00e0>]] : ripristina uno stato precedentemente salvato tramite SAVE_GCODE_STATE. Se viene specificato \"MOVE=1\", verr\u00e0 emesso un movimento della testa utensile per tornare alla posizione XYZ precedente. Se viene specificato \"MOVE_SPEED\", lo spostamento della testa utensile verr\u00e0 eseguito con la velocit\u00e0 data (in mm/s); in caso contrario, lo spostamento della testa utensile utilizzer\u00e0 la velocit\u00e0 del codice g ripristinata. [hall_filament_width_sensor] \u00b6 I seguenti comandi sono disponibili quando la sezione di configurazione del sensore di larghezza del filamento tsl1401cl o sezione di configurazione del sensore di larghezza del filamento hall \u00e8 abilitata (consultare anche Sensore di larghezza del filamento TSLl401CL e Hall Filament Width Sensor ): QUERY_FILAMENT_WIDTH \u00b6 QUERY_FILAMENT_WIDTH : Restituisce lo spessore del filamento misurato. RESET_FILAMENT_WIDTH_SENSOR \u00b6 RESET_FILAMENT_WIDTH_SENSOR : Cancella tutte le letture del sensore. Utile dopo il cambio del filamento. DISABLE_FILAMENT_WIDTH_SENSOR \u00b6 DISABLE_FILAMENT_WIDTH_SENSOR : Spegnere il sensore di larghezza del filamento e smettere di usarlo per il controllo del flusso. ENABLE_FILAMENT_WIDTH_SENSOR \u00b6 ENABLE_FILAMENT_WIDTH_SENSOR : attiva il sensore di larghezza del filamento e inizia a usarlo per il controllo del flusso. QUERY_RAW_FILAMENT_WIDTH \u00b6 QUERY_RAW_FILAMENT_WIDTH : Restituisce le letture del canale ADC corrente e il valore grezzo (raw) del sensore per i punti di calibrazione. ENABLE_FILAMENT_WIDTH_LOG \u00b6 ENABLE_FILAMENT_WIDTH_LOG : attiva la registrazione del diametro del filamento. DISABLE_FILAMENT_WIDTH_LOG \u00b6 DISABLE_FILAMENT_WIDTH_LOG : Disattiva la registrazione del diametro del filamento. [heaters] \u00b6 Il modulo heaters viene caricato automaticamente se un riscaldatore \u00e8 definito nel file di configurazione. TURN_OFF_HEATERS \u00b6 TURN_OFF_HEATERS : Spegni tutti i riscaldatori. TEMPERATURE_WAIT \u00b6 TEMPERATURE_WAIT SENSOR=<config_name> [MINIMUM=<target>] [MAXIMUM=<target>] : Attendere fino a quando il sensore di temperatura specificato \u00e8 pari o superiore al MINIMO fornito e/o pari o inferiore al MASSIMO fornito. SET_HEATER_TEMPERATURE \u00b6 SET_HEATER_TEMPERATURE HEATER=<nome_riscaldatore> [TARGET=<temperatura_destinata>] : Imposta la temperatura target per un riscaldatore. Se non viene fornita una temperatura target, il target \u00e8 0. [idle_timeout] \u00b6 Il modulo idle_timeout viene caricato automaticamente. SET_IDLE_TIMEOUT \u00b6 SET_IDLE_TIMEOUT [TIMEOUT=<timeout>] : consente all'utente di impostare il timeout di inattivit\u00e0 (in secondi). [input_shaper] \u00b6 Il comando seguente \u00e8 abilitato se \u00e8 stata abilitata una sezione di configurazione di input_shaper (consultare anche la guida alla compensazione della risonanza ). SET_INPUT_SHAPER \u00b6 SET_INPUT_SHAPER [SHAPER_FREQ_X=<shaper_freq_x>] [SHAPER_FREQ_Y=<shaper_freq_y>] [DAMPING_RATIO_X=<damping_ratio_x>] [DAMPING_RATIO_Y=<damping_ratio_y>] [SHAPER_TYPE=<shaper>] [SHAPER_TYPE_X=<shaper_type_x>] [SHAPER_TYPE=<shaper_TYPE_X=<shaper_type_x>] [SHAPER_TYPE=<shaper_type_y=<shaper_type_x> ] : Modifica i parametri dell'input shaper. Si noti che il parametro SHAPER_TYPE reimposta l'input shaper per entrambi gli assi X e Y anche se sono stati configurati tipi di shaper diversi nella sezione [input_shaper]. SHAPER_TYPE non pu\u00f2 essere utilizzato insieme a uno dei parametri SHAPER_TYPE_X e SHAPER_TYPE_Y. Vedere config reference per maggiori dettagli su ciascuno di questi parametri. [manual_probe] \u00b6 Il modulo manual_probe viene caricato automaticamente. MANUAL_PROBE \u00b6 MANUAL_PROBE [SPEED=<speed>] : esegue uno script di supporto utile per misurare l'altezza dell'ugello in una determinata posizione. Se viene specificato SPEED, imposta la velocit\u00e0 dei comandi TESTZ (il valore predefinito \u00e8 5mm/s). Durante una sonda manuale, sono disponibili i seguenti comandi aggiuntivi: ACCEPT : questo comando accetta la posizione Z corrente e conclude il probing manuale. ABORT : questo comando termina lo strumento di probing manuale. TESTZ Z=<valore> : questo comando sposta l'ugello verso l'alto o verso il basso della quantit\u00e0 specificata in \"valore\". Ad esempio, TESTZ Z=-.1 sposterebbe l'ugello verso il basso di .1 mm mentre TESTZ Z=.1 sposterebbe l'ugello verso l'alto di .1 mm. Il valore pu\u00f2 anche essere + , - , ++ o -- per spostare l'ugello verso l'alto o verso il basso di un importo rispetto ai tentativi precedenti. Z_ENDSTOP_CALIBRATE \u00b6 Z_ENDSTOP_CALIBRATE [SPEED=<speed>] : esegue uno script di supporto utile per calibrare un'impostazione di configurazione Z position_endstop. Vedere il comando MANUAL_PROBE per i dettagli sui parametri e sui comandi aggiuntivi disponibili mentre lo strumento \u00e8 attivo. Z_OFFSET_APPLY_ENDSTOP \u00b6 Z_OFFSET_APPLY_ENDSTOP : prende l'offset Z Gcode corrente (noto anche come babystepping) e lo sottrae da stepper_z endstop_position. Questa azione per prendere un valore di babystep utilizzato di frequente e \"renderlo permanente\". Richiede un SAVE_CONFIG per avere effetto. [Stepper manuali] \u00b6 Il comando seguente \u00e8 disponibile quando una sezione di configurazione stepper_manuale \u00e8 abilitata. MANUAL_STEPPER \u00b6 MANUAL_STEPPER STEPPER=nome_config [ENABLE=[0|1]] [SET_POSITION=<pos>] [SPEED=<velocit\u00e0>] [ACCEL=<accelerazione>] [MOVE=<pos> [STOP_ON_ENDSTOP=[1|2|- 1|-2]] [SYNC=0]] : Questo comando alterer\u00e0 lo stato dello stepper. Utilizzare il parametro ENABLE per abilitare/disabilitare lo stepper. Utilizzare il parametro SET_POSITION per forzare lo stepper a pensare di trovarsi nella posizione data. Utilizzare il parametro MOVE per richiedere un movimento alla posizione data. Se viene specificato SPEED e/o ACCEL, verranno utilizzati i valori forniti al posto dei valori predefiniti specificati nel file di configurazione. Se viene specificato un ACCEL pari a zero, non verr\u00e0 eseguita alcuna accelerazione. Se viene specificato STOP_ON_ENDSTOP=1, lo spostamento terminer\u00e0 in anticipo se l'endstop segnala come attivato (usa STOP_ON_ENDSTOP=2 per completare lo spostamento senza errori anche se l'endstop non si attiva, usa -1 o -2 per interrompere quando l'endstop segnala non innescato). Normalmente i futuri comandi G-Code verranno programmati per essere eseguiti dopo il completamento del movimento passo-passo, tuttavia se un movimento passo-passo manuale utilizza SYNC=0, i futuri comandi di movimento G-Code potrebbero essere eseguiti in parallelo con il movimento passo-passo. [mcp4018] \u00b6 Il comando seguente \u00e8 disponibile quando una sezione di configurazione mcp4018 \u00e8 abilitata. SET_DIGIPOT \u00b6 SET_DIGIPOT DIGIPOT=config_name WIPER=<value> : Questo comando cambier\u00e0 il valore corrente del digipot. Questo valore dovrebbe essere in genere compreso tra 0.0 e 1.0, a meno che non sia definita una 'scale' nella configurazione. Quando viene definita 'scale', questo valore dovrebbe essere compreso tra 0,0 e 'scale'. [led] \u00b6 Il comando seguente \u00e8 disponibile quando una qualsiasi delle sezioni di configurazione led \u00e8 abilitata. SET_LED \u00b6 SET_LED LED=<nome_config> ROSSO=<valore> VERDE=<valore> BLU=<valore> BIANCO=<valore> [INDEX=<indice>] [TRANSMIT=0] [SYNC=1] : Imposta il LED in output. Ogni colore <valore> deve essere compreso tra 0,0 e 1,0. L'opzione BIANCO \u00e8 valida solo su LED RGBW. Se il LED supporta pi\u00f9 chip in una catena daisy-chain, \u00e8 possibile specificare INDEX per modificare il colore del solo chip specificato (1 per il primo chip, 2 per il secondo, ecc.). Se INDEX non viene fornito, tutti i LED nella catena verranno impostati sul colore fornito. Se viene specificato TRANSMIT=0, il cambio colore verr\u00e0 effettuato solo sul successivo comando SET_LED che non specifica TRANSMIT=0; questo pu\u00f2 essere utile in combinazione con il parametro INDEX per raggruppare pi\u00f9 aggiornamenti in una catena. Per impostazione predefinita, il comando SET_LED sincronizzer\u00e0 le modifiche con altri comandi gcode in corso. Ci\u00f2 pu\u00f2 comportare un comportamento indesiderato se i LED vengono impostati mentre la stampante non sta stampando in quanto reimposta il timeout di inattivit\u00e0. Se non \u00e8 necessaria una tempistica attenta, \u00e8 possibile specificare il parametro SYNC=0 opzionale per applicare le modifiche senza ripristinare il timeout di inattivit\u00e0. SET_LED_TEMPLATE \u00b6 SET_LED_TEMPLATE LED=<nome_led> TEMPLATE=<nome_modello> [<param_x>=<letterale>] [INDEX=<indice>] : Assegna un modello_visualizzazione a un dato LED . Ad esempio, se si definisce una sezione di configurazione [display_template my_led_template] allora si potrebbe assegnare TEMPLATE=my_led_template qui. Il display_template dovrebbe produrre una stringa separata da virgole contenente quattro numeri in virgola mobile corrispondenti alle impostazioni dei colori rosso, verde, blu e bianco. Il modello verr\u00e0 continuamente valutato e il LED verr\u00e0 impostato automaticamente sui colori risultanti. \u00c8 possibile impostare i parametri display_template da utilizzare durante la valutazione del modello (i parametri verranno analizzati come valori letterali Python). Se INDEX non \u00e8 specificato, tutti i chip nella catena dei LED verranno impostati sul modello, altrimenti verr\u00e0 aggiornato solo il chip con l'indice specificato. Se TEMPLATE \u00e8 una stringa vuota, questo comando canceller\u00e0 qualsiasi modello precedente assegnato al LED (\u00e8 quindi possibile utilizzare i comandi SET_LED per gestire le impostazioni del colore del LED). [output_pin] \u00b6 Il comando seguente \u00e8 disponibile quando una sezione di configurazione pin_output \u00e8 abilitata. SET_PIN \u00b6 SET_PIN PIN=nome_config VALUE=<valore> CYCLE_TIME=<tempo_ciclo> : Nota - PWM hardware attualmente non supporta il parametro CYCLE_TIME e utilizzer\u00e0 il tempo di ciclo definito nella configurazione. [palette2] \u00b6 I seguenti comandi sono disponibili quando la sezione di configurazione della palette2 \u00e8 abilitata. Le stampe di Palette funzionano incorporando speciali OCodes (Codici Omega) nel file GCode: O1 ... O32 : Questi codici vengono letti dal flusso GCode ed elaborati da questo modulo e passati al dispositivo Palette 2. Sono inoltre disponibili i seguenti comandi aggiuntivi. PALETTE_CONNECT \u00b6 PALETTE_CONNECT : questo comando inizializza la connessione con la Palette 2. PALETTE_DISCONNECT \u00b6 PALETTE_DISCONNECT : questo comando si disconnette dalla Palette 2. PALETTE_CLEAR \u00b6 PALETTE_CLEAR : questo comando indica alla Palette 2 di cancellare tutti i percorsi di input e output del filamento. PALETTE_CUT \u00b6 PALETTE_CUT : Questo comando indica alla Palette 2 di tagliare il filamento attualmente caricato nello splice core. PALETTE_SMART_LOAD \u00b6 PALETTE_SMART_LOAD : Questo comando avvia la sequenza di caricamento intelligente sulla Palette 2. Il filamento viene caricato automaticamente estrudendolo alla distanza calibrata sul dispositivo per la stampante e istruisce la Palette 2 una volta completato il caricamento. Questo comando equivale a premere Smart Load direttamente sullo schermo della Palette 2 dopo che il caricamento del filamento \u00e8 stato completato. [pid_calibrate] \u00b6 Il modulo pid_calibrate viene caricato automaticamente se nel file di configurazione \u00e8 definito un riscaldatore. PID_CALIBRATE \u00b6 PID_CALIBRATE HEATER=<nome_config> TARGET=<temperatura> [WRITE_FILE=1] : esegue un test di calibrazione PID. Il riscaldatore specificato verr\u00e0 abilitato fino al raggiungimento della temperatura target specificata, quindi il riscaldatore verr\u00e0 spento e acceso per diversi cicli. Se il parametro WRITE_FILE \u00e8 abilitato, verr\u00e0 creato il file /tmp/heattest.txt con un log di tutti i campioni di temperatura prelevati durante il test. [pause_resume] \u00b6 I seguenti comandi sono disponibili quando la pause_resume config section \u00e8 abilitata: PAUSE \u00b6 PAUSE : mette in pausa la stampa corrente. La posizione attuale viene acquisita per la ripresa al ripristino. RESUME \u00b6 RESUME [VELOCITY=<value>] : riprende la stampa da una pausa, ripristinando prima la posizione precedentemente acquisita. Il parametro VELOCITY determina la velocit\u00e0 alla quale l'utensile deve tornare alla posizione originale acquisita. CLEAR_PAUSE \u00b6 CLEAR_PAUSE : cancella lo stato di pausa corrente senza riprendere la stampa. Questo \u00e8 utile se si decide di annullare una stampa dopo un PAUSE. Si consiglia di aggiungerlo al gcode iniziale per assicurarsi che lo stato in pausa sia aggiornato per ogni stampa. CANCEL_PRINT \u00b6 CANCEL_PRINT : Annulla la stampa corrente. [print_stats] \u00b6 Il modulo print_stats viene caricato automaticamente. SET_PRINT_STATS_INFO \u00b6 SET_PRINT_STATS_INFO [TOTAL_LAYER=<total_layer_count>] [CURRENT_LAYER= <current_layer>] : passa le informazioni sulo slicer come il layer attivo ed il totale a Klipper. Aggiungi SET_PRINT_STATS_INFO [TOTAL_LAYER=<total_layer_count>] alla sezione gcode di inizio del tuo slicer e SET_PRINT_STATS_INFO [CURRENT_LAYER= <current_layer>] alla sezione gcode di cambio livello per passare le informazioni sul livello dal tuo slicer a Klipper. [probe] \u00b6 I seguenti comandi sono disponibili quando \u00e8 abilitata una sezione di configurazione della sonda o una sezione di configurazione di bltouch (consultare anche la guida alla calibrazione della sonda ). sonda \u00b6 PROBE [PROBE_SPEED=<mm/s>] [LIFT_SPEED=<mm/s>] [SAMPLES=<count>] [SAMPLE_RETRACT_DIST=<mm>] [SAMPLES_TOLERANCE=<mm>] [SAMPLES_TOLERANCE_RETRIES=<count>] [SAMPLES_RESULT=median|average] : Sposta il nozzle verso il basso finch\u00e9 la sonda non scatta. Se viene fornito uno qualsiasi dei parametri opzionali, sovrascrive l'impostazione equivalente nella sezione probe config section . QUERY_PROBE \u00b6 QUERY_PROBE : Riporta lo stato corrente della sonda (\"triggered\" o \"open\"). PROBE_ACCURACY \u00b6 PROBE_ACCURACY [PROBE_SPEED=<mm/s>] [SAMPLES=<count>] [SAMPLE_RETRACT_DIST=<mm>] : Calcola la deviazione massima, minima, media, mediana e standard di pi\u00f9 campionamentidella sonda. Per impostazione predefinita, vengono presi 10 CAMPIONI. In caso contrario, i parametri opzionali sono impostati per default sulla loro impostazione equivalente nella sezione di configurazione della sonda. PROBE_CALIBRATE \u00b6 PROBE_CALIBRATE [SPEED=<speed>] [<probe_parameter>=<value>] : Eseguire uno script di aiuto utile per calibrare l'offset z della sonda. Vedere il comando PROBE per i dettagli sui parametri opzionali della sonda. Vedere il comando MANUAL_PROBE per i dettagli del parametro SPEED e sui comandi aggiuntivi disponibili mentre lo strumento \u00e8 attivo. Nota che il comando PROBE_CALIBRATE utilizza la variabile di velocit\u00e0 per spostarsi in direzione XY e Z. Z_OFFSET_APPLY_PROBE \u00b6 Z_OFFSET_APPLY_PROBE : prende l'offset Z Gcode corrente (aka, babystepping) e lo sottrae dallo z_offset della sonda. Questo per prendere un valore di babystep utilizzato di frequente e \"renderlo permanente\". Richiede un SAVE_CONFIG per avere effetto. [query_adc] \u00b6 Il modulo query_adc viene caricato automaticamente. QUERY_ADC \u00b6 QUERY_ADC [NAME=<config_name>] [PULLUP=<value>] : Riporta l'ultimo valore analogico ricevuto per un pin analogico configurato. Se NAME non viene fornito, viene riportato l'elenco dei nomi dei convertitori adc disponibili. Se viene fornito PULLUP (come valore in Ohm), viene riportato il valore analogico grezzo insieme alla resistenza equivalente dato quel pullup specificato. [query_endstops] \u00b6 Il modulo query_endstops viene caricato automaticamente. I seguenti comandi G-Code standard sono attualmente disponibili, ma non \u00e8 consigliabile utilizzarli: Ottieni lo stato del finecorsa: M119 (usa invece QUERY_ENDSTOPS.) QUERY_ENDSTOPS \u00b6 QUERY_ENDSTOPS : Rilevare i finecorsa degli assi e segnala se sono \"attivate\" o in uno stato \"aperto\". Questo comando viene in genere utilizzato per verificare che un finecorsa funzioni correttamente. [resonance_tester] \u00b6 I seguenti comandi sono disponibili quando una sezione di configurazione di tester_risonanza \u00e8 abilitata (consultare anche la guida alle risonanze di misurazione ). MEASURE_AXES_NOISE \u00b6 MEASURE_AXES_NOISE : misura ed riporta il rumore per tutti gli assi di tutti i chip dell'accelerometro abilitati. TEST_RESONANCES \u00b6 TEST_RESONANCES AXIS=<asse> OUTPUT=<risonanze,dati_grezzi> [NAME=<nome>] [FREQ_START=<freq_min>] [FREQ_END=<freq_max>] [HZ_PER_SEC=<hz_per_sec>] [CHIPS=<adxl345_chip_name>] [ POINT=x,y,z] [INPUT_SHAPING=[<0:1>]] : esegue il test di risonanza in tutti i punti sonda configurati per l'\"asse\" richiesto e misura l'accelerazione utilizzando i chip dell'accelerometro configurati per il rispettivo asse. \"asse\" pu\u00f2 essere X o Y, oppure specificare una direzione arbitraria come AXIS=dx,dy , dove dx e dy sono numeri in virgola mobile che definiscono un vettore di direzione (es. AXIS=X , AXIS=Y , o AXIS=1,-1 per definire una direzione diagonale). Nota che AXIS=dx,dy e AXIS=-dx,-dy sono equivalenti. adxl345_chip_name pu\u00f2 essere uno o pi\u00f9 chip adxl345 configurati, delimitati da virgole, ad esempio CHIPS=\"adxl345, adxl345 rpi\" . Nota che adxl345 pu\u00f2 essere omesso dai chip adxl345 denominati. Se POINT \u00e8 specificato, sovrascriver\u00e0 i punti configurati in [resonance_tester] . Se INPUT_SHAPING=0 o non impostato (predefinito), disabilita l'input shaping per il test di risonanza, perch\u00e9 non \u00e8 valido eseguire il test di risonanza con input shaper abilitato. Il parametro OUTPUT \u00e8 un elenco separato da virgole di cui verranno scritti gli output. Se viene richiesto raw_data , i dati grezzi dell'accelerometro vengono scritti in un file o in una serie di file /tmp/raw_data_<asse>_[<nome_chip>_][<punto>_]<nome>.csv con ( <punto>_ parte del nome generata solo se \u00e8 configurato pi\u00f9 di 1 punto sonda o \u00e8 specificato PUNTO). Se viene specificato resonances , la risposta in frequenza viene calcolata (su tutti i punti sonda) e scritta nel file /tmp/resonances_<asse>_<nome>.csv . Se non \u00e8 impostato, OUTPUT \u00e8 impostato su risonanze e NAME \u00e8 impostato sull'ora corrente nel formato \"AAAAMMGG_HHMMSS\". SHAPER_CALIBRATE \u00b6 SHAPER_CALIBRATE [AXIS=<asse>] [NAME=<nome>] [FREQ_START=<freq_min>] [FREQ_END=<freq_max>] [HZ_PER_SEC=<hz_per_sec>] [MAX_SMOOTHING=<livellamento_max>] : simile a TEST_RESONANCES , esegue il test di risonanza come configurato e cerca di trovare i parametri ottimali di input shaper per l'asse richiesto (o entrambi gli assi X e Y se il parametro AXIS non \u00e8 impostato). Se MAX_SMOOTHING non \u00e8 impostato, il suo valore viene preso dalla sezione [resonance_tester] , con l'impostazione predefinita non impostata. Per ulteriori informazioni sull'uso di questa funzione, vedere il Max smoothing della guida alla misurazione delle risonanze. I risultati dell'ottimizzazione vengono stampati sulla console e le risposte in frequenza e i diversi valori degli shaper di input vengono scritti in uno o pi\u00f9 file CSV /tmp/calibration_data_<asse>_<nome>.csv . A meno che non sia specificato, NAME imposta l'ora corrente nel formato \"AAAAMMGG_HHMMSS\". Nota che i parametri di input shaper suggeriti possono essere mantenuti nella configurazione eseguendo il comando SAVE_CONFIG . [respond] \u00b6 I seguenti comandi G-Code standard sono disponibili quando la sezione di configurazione di risposta \u00e8 abilitata: M118 <messaggio> : fa eco al messaggio preceduto dal prefisso predefinito configurato (o echo: se non \u00e8 configurato alcun prefisso). Sono inoltre disponibili i seguenti comandi aggiuntivi. RESPOND \u00b6 RESPOND MSG=\"<message>\" : echo il messaggio preceduto dal prefisso predefinito configurato (o echo: se non \u00e8 configurato alcun prefisso). RESPOND TYPE=echo MSG=\"<message>\" : echo del messaggio preceduto da echo: . RESPOND TYPE=echo_no_space MSG=\"<messaggio>\" : fa eco al messaggio preceduto da echo: senza uno spazio tra prefisso e messaggio, utile per la compatibilit\u00e0 con alcuni plugin di octoprint che prevedono una formattazione molto specifica. RESPOND TYPE=command MSG=\"<message>\" : echo il messaggio preceduto da // . OctoPrint pu\u00f2 essere configurato per rispondere a questi messaggi (ad es. RESPOND TYPE=command MSG=action:pause ). RESPOND TYPE=error MSG=\"<messaggio>\" : fa eco al messaggio preceduto da !! . RESPOND PREFIX=<prefix> MSG=\"<message>\" : echo il messaggio preceduto da <prefix> . (Il parametro PREFIX avr\u00e0 la priorit\u00e0 sul parametro TYPE ) [save_variables] \u00b6 Il comando seguente \u00e8 abilitato se \u00e8 stata abilitata una sezione di configurazione save_variables . SAVE_VARIABLE \u00b6 SAVE_VARIABLE VARIABLE=<nome> VALUE=<valore> : salva la variabile su disco in modo che possa essere utilizzata tra i riavvii. Tutte le variabili memorizzate vengono caricate nel dict printer.save_variables.variables all'avvio e possono essere utilizzate nelle macro gcode. Il VALUE fornito viene analizzato come un valore letterale Python. [screws_tilt_adjust] \u00b6 I seguenti comandi sono disponibili quando la sezione di configurazione viti_tilt_adjust \u00e8 abilitata (consultare anche la manual level guide ). SCREWS_TILT_CALCULATE \u00b6 SCREWS_TILT_CALCULATE [DIRECTION=CW|CCW] [MAX_DEVIATION=<value>] [<probe_parameter>=<value>] : Questo comando richiamer\u00e0 lo strumento di regolazione delle viti del piatto. Comander\u00e0 l'ugello in diverse posizioni (come definito nel file di configurazione) sondando l'altezza z e calcoler\u00e0 il numero di giri della manopola per regolare il livello del piatto. Se si specifica DIRECTION, le rotazioni della manopola saranno tutte nella stessa direzione, in senso orario (CW) o in senso antiorario (CCW). Vedere il comando PROBE per i dettagli sui parametri della sonda opzionali. IMPORTANTE: DEVI sempre eseguire un G28 prima di utilizzare questo comando. Se viene specificato MAX_DEVIATION, il comando generer\u00e0 un errore gcode se qualsiasi differenza nell'altezza della vite rispetto all'altezza della vite di base \u00e8 maggiore del valore fornito. [sdcard_loop] \u00b6 Quando la sezione di configurazione sdcard_loop \u00e8 abilitata, sono disponibili i seguenti comandi estesi. SDCARD_LOOP_BEGIN \u00b6 SDCARD_LOOP_BEGIN COUNT=<count> : inizia una sezione in loop nella stampa SD. Un conteggio pari a 0 indica che la sezione deve essere ripetuta indefinitamente. SDCARD_LOOP_END \u00b6 SDCARD_LOOP_END : termina una sezione in loop nella stampa SD. SDCARD_LOOP_DESIST \u00b6 SDCARD_LOOP_DESIST : completa i loop esistenti senza ulteriori iterazioni. [servo] \u00b6 I seguenti comandi sono disponibili quando una sezione di configurazione servo \u00e8 abilitata. SET_SERVO \u00b6 SET_SERVO SERVO=nome_config [ANGLE=<gradi> | WIDTH=<secondi>] : Imposta la posizione del servo sull'angolo dato (in gradi) o sulla larghezza dell'impulso (in secondi). Usa WIDTH=0 per disabilitare l'uscita servo. [skew_correction] \u00b6 I seguenti comandi sono disponibili quando \u00e8 abilitata la sezione config_correzione_asimmetria (consultare anche la guida Correzione_asimmetria ). SET_SKEW \u00b6 SET_SKEW [XY=<ac_length,bd_length,ad_length>] [XZ=<ac,bd,ad>] [YZ=<ac,bd,ad>] [CLEAR=<0|1>] : Configura il modulo [correzione_inclinazione ] con misure (in mm) tratte da una stampa di calibrazione. Si possono inserire misure per qualsiasi combinazione di piani, i piani non inseriti manterranno il loro valore attuale. Se viene immesso CLEAR=1 , tutta la correzione dell'inclinazione sar\u00e0 disabilitata. GET_CURRENT_SKEW \u00b6 GET_CURRENT_SKEW : Riporta l'inclinazione corrente della stampante per ciascun piano sia in radianti che in gradi. L'inclinazione viene calcolata in base ai parametri forniti tramite il gcode SET_SKEW . CALC_MEASURED_SKEW \u00b6 CALC_MEASURED_SKEW [AC=<ac_length>] [BD=<bd_length>] [AD=<ad_length>] : calcola e riporta l'inclinazione (in radianti e gradi) in base a una stampa di test misurata. Questo pu\u00f2 essere utile per determinare l'inclinazione corrente della stampante dopo che \u00e8 stata applicata la correzione. Pu\u00f2 anche essere utile prima di applicare la correzione per determinare se \u00e8 necessaria la correzione dell'inclinazione. Vedere Correzione inclinazione per i dettagli su oggetti e misurazioni di calibrazione inclinazione. SKEW_PROFILE \u00b6 SKEW_PROFILE [LOAD=<nome>] [SAVE=<nome>] [REMOVE=<nome>] : Gestione del profilo per correzione_inclinazione. LOAD ripristiner\u00e0 lo stato di inclinazione dal profilo corrispondente al nome fornito. SAVE salver\u00e0 lo stato di inclinazione corrente in un profilo che corrisponde al nome fornito. REMOVE eliminer\u00e0 il profilo corrispondente al nome fornito dalla memoria persistente. Si noti che dopo aver eseguito le operazioni SAVE o REMOVE \u00e8 necessario eseguire il gcode SAVE_CONFIG per rendere permanenti le modifiche alla memoria persistente. [smart_effector] \u00b6 Sono disponibili diversi comandi quando una sezione di configurazione smart_effector \u00e8 abilitata. Assicurati di controllare la documentazione ufficiale per Smart Effector su Duet3D Wiki prima di modificare i parametri di Smart Effector. Controllare anche la guida alla calibrazione della sonda . SET_SMART_EFFECTOR \u00b6 SET_SMART_EFFECTOR [SENSITIVITY=<sensibilit\u00e0>] [ACCEL=<accel>] [RECOVERY_TIME=<tempo>] : imposta i parametri di Smart Effector. Quando viene specificato SENSITIVITY , il rispettivo valore viene scritto nella EEPROM dello SmartEffector (richiede che sia fornito control_pin ). I valori di <sensibilit\u00e0> accettabili sono 0..255, il valore predefinito \u00e8 50. Valori inferiori richiedono una minore forza di contatto dell'ugello per attivarsi (ma esiste un rischio maggiore di falso trigger a causa delle vibrazioni durante la tastatura) e valori pi\u00f9 alti riducono il falso trigger (ma richiede una maggiore forza di contatto per attivarsi). Poich\u00e9 la sensibilit\u00e0 viene scritta nella EEPROM, viene conservata dopo lo spegnimento e quindi non \u00e8 necessario configurarla ad ogni avvio della stampante. ACCEL e RECOVERY_TIME consentono di sovrascrivere i parametri corrispondenti in fase di esecuzione, vedere la sezione di configurazione di Smart Effector per maggiori informazioni su quei parametri. RESET_SMART_EFFECTOR \u00b6 RESET_SMART_EFFECTOR : Ripristina la sensibilit\u00e0 di Smart Effector alle impostazioni di fabbrica. Richiede che il relativo control_pin sia fornito nella sezione di configurazione. [stepper_enable] \u00b6 Il modulo stepper_enable viene caricato automaticamente. SET_STEPPER_ENABLE \u00b6 SET_STEPPER_ENABLE STEPPER=<nome_config> ENABLE=[0|1] : Abilita o disabilita solo lo stepper dato. Questo \u00e8 uno strumento diagnostico e di debug e deve essere utilizzato con cautela. La disabilitazione di un motore dell'asse non ripristina le informazioni di homing. Lo spostamento manuale di uno stepper disabilitato pu\u00f2 causare l'azionamento del motore della macchina al di fuori dei limiti di sicurezza. Ci\u00f2 pu\u00f2 causare danni ai componenti dell'asse, al hotend e alla superficie di stampa. [temperature_fan] \u00b6 Il comando seguente \u00e8 disponibile quando una sezione di configurazione della ventola_temperatura \u00e8 abilitata. SET_TEMPERATURE_FAN_TARGET \u00b6 SET_TEMPERATURE_FAN_TARGET temperature_fan=<temperature_fan_name> [target=<target_temperature>] [min_speed=<min_speed>] [max_speed=<max_speed>] : Imposta la temperatura target per una temperature_fan. Se non viene fornito un target, viene impostato sulla temperatura specificata nel file di configurazione. Se le velocit\u00e0 non vengono fornite, non viene applicata alcuna modifica. [tmcXXXX] \u00b6 I seguenti comandi sono disponibili quando una qualsiasi delle tmcXXXX config section \u00e8 abilitata. DUMP_TMC \u00b6 DUMP_TMC STEPPER=<nome> : questo comando legger\u00e0 i registri del driver TMC e ne riporter\u00e0 i valori. INIT_TMC \u00b6 INIT_TMC STEPPER=<nome> : questo comando inizializzer\u00e0 i registri TMC. Necessario per riattivare il driver se l'alimentazione al chip viene spenta e poi riaccesa. SET_TMC_CURRENT \u00b6 SET_TMC_CURRENT STEPPER=<nome> CURRENT=<amps> HOLDCURRENT=<amps> : Questo regoler\u00e0 le correnti di funzionamento e di mantenimento del driver TMC. (HOLDCURRENT non \u00e8 applicabile ai driver tmc2660.) SET_TMC_FIELD \u00b6 SET_TMC_FIELD STEPPER=<nome> FIELD=<campo> VALUE=<valore> : Questo alterer\u00e0 il valore del campo del registro specificato del driver TMC. Questo comando \u00e8 destinato alla diagnostica e al debug di basso livello solo perch\u00e9 la modifica dei campi durante l'esecuzione pu\u00f2 causare comportamenti indesiderati e potenzialmente pericolosi della stampante. Le modifiche permanenti dovrebbero invece essere apportate utilizzando il file di configurazione della stampante. Non vengono eseguiti controlli di integrit\u00e0 per i valori indicati. [toolhead] \u00b6 Il modulo toolhead viene caricato automaticamente. SET_VELOCITY_LIMIT \u00b6 SET_VELOCITY_LIMIT [VELOCITY=<valore>] [ACCEL=<valore>] [ACCEL_TO_DECEL=<valore>] [SQUARE_CORNER_VELOCITY=<valore>] : Modifica i limiti di velocit\u00e0 della stampante. [tuning_tower] \u00b6 Il modulo tuning_tower viene caricato automaticamente. TUNING_TOWER \u00b6 TUNING_TOWER COMMAND=<comando> PARAMETER=<nome> START=<valore> [SKIP=<valore>] [FACTOR=<valore> [BAND=<valore>]] | [STEP_DELTA=<valore> STEP_HEIGHT=<valore>] : Uno strumento per regolare un parametro su ciascuna altezza Z durante una stampa. Lo strumento eseguir\u00e0 il dato COMMAND con il dato PARAMETER assegnato a un valore che varia con Z secondo una formula. Usa FACTOR se utilizzerai un righello o calibri per misurare l'altezza Z del valore ottimale, o STEP_DELTA e STEP_HEIGHT se il modello della torre di regolazione ha bande di valori discreti come \u00e8 comune con le torri della temperatura. Se viene specificato SKIP=<valore> , il processo di ottimizzazione non inizia finch\u00e9 non viene raggiunta l'altezza Z <valore> , e al di sotto di essa il valore sar\u00e0 impostato su START ; in questo caso, la z_height usata nelle formule seguenti \u00e8 in realt\u00e0 max(z - skip, 0) . Ci sono tre possibili combinazioni di opzioni: FACTOR : Il valore cambia a una velocit\u00e0 di factor per millimetro. La formula utilizzata \u00e8: valore = inizio + fattore * z_altezza . \u00c8 possibile inserire l'altezza Z ottimale direttamente nella formula per determinare il valore del parametro ottimale. FACTOR e BAND : il valore cambia a una velocit\u00e0 media di factor per millimetro, ma in bande discrete in cui la regolazione verr\u00e0 effettuata solo ogni BAND millimetri di altezza Z. La formula utilizzata \u00e8: value = start + factor * ((floor(z_height / band) + .5) * band) . STEP_DELTA e STEP_HEIGHT : il valore cambia di STEP_DELTA ogni STEP_HEIGHT millimetri. La formula utilizzata \u00e8: value = start + step_delta * floor(z_height / step_height) . Puoi semplicemente contare le bande o leggere le etichette della torre di tuning per determinare il valore ottimale. [virtual_sdcard] \u00b6 Klipper supporta i seguenti comandi G-Code standard se la sezione di configurazione di virtual_sdcard \u00e8 abilitata: Elenco scheda SD: M20 Inizializza scheda SD: M21 Selezionare il file SD: M23 <nomefile> Avvia/riprendi la stampa SD: M24 Sospendi la stampa SD: M25 Impostare la posizione SD: M26 S<offset> Riporta lo stato di stampa SD: M27 Inoltre, quando la sezione di configurazione \"virtual_sdcard\" \u00e8 abilitata, sono disponibili i seguenti comandi estesi. SDCARD_PRINT_FILE \u00b6 SDCARD_PRINT_FILE FILENAME=<nomefile> : carica un file e avvia la stampa SD. SDCARD_RESET_FILE \u00b6 SDCARD_RESET_FILE : Scarica il file e cancella lo stato SD. [z_thermal_adjust] \u00b6 I seguenti comandi sono disponibili quando la sezione z_thermal_adjust config \u00e8 abilitata. SET_Z_THERMAL_ADJUST \u00b6 SET_Z_THERMAL_ADJUST [ENABLE=<0:1>] [TEMP_COEFF=<valore>] [REF_TEMP=<valore>] : Abilita o disabilita la regolazione termica Z con ENABLE . La disabilitazione non rimuove alcuna regolazione gi\u00e0 applicata, ma congela il valore di regolazione corrente - questo impedisce il movimento Z verso il basso potenzialmente pericoloso. La riattivazione pu\u00f2 potenzialmente causare il movimento dell'utensile verso l'alto quando la regolazione viene aggiornata e applicata. TEMP_COEFF consente la regolazione in tempo reale del coefficiente di temperatura di regolazione (cio\u00e8 il parametro di configurazione TEMP_COEFF ). I valori TEMP_COEFF non vengono salvati nella configurazione. REF_TEMP sovrascrive manualmente la temperatura di riferimento tipicamente impostata durante l'homing (per l'uso, ad esempio, in routine di homing non standard) - verr\u00e0 ripristinata automaticamente durante l'homing. [z_tilt] \u00b6 I seguenti comandi sono disponibili quando la sezione z_tilt config \u00e8 abilitata. Z_TILT_ADJUST \u00b6 Z_TILT_ADJUST [<probe_parameter>=<value>] : questo comando sonder\u00e0 i punti specificati nella configurazione e quindi apporter\u00e0 regolazioni indipendenti a ciascuno Z stepper per compensare l'inclinazione. Vedere il comando PROBE per i dettagli sui parametri opzionali della sonda.","title":"G-Codes"},{"location":"G-Codes.html#g-codes","text":"Questo documento descrive i comandi che Klipper supporta. Questi sono i comandi che si possono inserire nella scheda del terminale OctoPrint.","title":"G-Codes"},{"location":"G-Codes.html#comandi-g-code","text":"Klipper supporta i seguenti comandi G-Code standard: Movimento (G0 or G1): G1 [X<pos>] [Y<pos>] [Z<pos>] [E<pos>] [F<speed>] Sosta: G4 P<millisecondi> Sposta all'origine: G28 [X] [Y] [Z] Spegnere i motori: M18 o M84 Attendi che li movimenti correnti finiscano: M400 Utilizzare distanze assolute/relative per l'estrusione: M82 , M83 Usa coordinate assolute/relative: G90 , G91 Impostare la posizione: G92 [X<pos>] [Y<pos>] [Z<pos>] [E<pos>] Impostare la percentuale di override del fattore di velocit\u00e0: M220 S<percentuale> Imposta la percentuale di sostituzione del fattore di estrusione: M221 S<percentuale> Impostare l'accelerazione: M204 S<valore> OPPURE M204 P<valore> T<valore> Nota: se S non viene specificato e vengono specificati sia P che T, l'accelerazione viene impostata al minimo di P e T. Se viene specificato solo uno di P o T, il comando non ha effetto. Ottieni la temperatura dell'estrusore: M105 Imposta la temperatura dell'estrusore: M104 [T<index>] [S<temperatura>] Imposta la temperatura dell'estrusore e attende: M109 [T<index>] S<temperatura> Nota: M109 attende sempre che la temperatura si assesti al valore richiesto Imposta la temperatura del piatto: M140 [S<temperatura>] Imposta la temperatura del piatto e attende: M190 S<temperatura> Nota: M190 attende sempre che la temperatura si assesti al valore richiesto Imposta la velocit\u00e0 della ventola: M106 S<valore> Spegnere la ventola: M107 Arresto di emergenza: M112 Ottieni la posizione attuale: M114 Ottieni la versione del firmware: M115 Per ulteriori dettagli sui comandi precedenti, vedere la documentazione RepRap G-Code . L'obiettivo di Klipper \u00e8 supportare i comandi G-Code prodotti da comuni software di terze parti (ad es. OctoPrint, Printrun, Slic3r, Cura, ecc.) nelle loro configurazioni standard. Non \u00e8 un obiettivo supportare ogni possibile comando G-Code. Invece, Klipper preferisce comandi leggibili dall'uomo \"comandi G-Code estesi\" . Allo stesso modo, l'output del terminale G-Code \u00e8 inteso solo per essere leggibile dall'uomo - vedere il documento del server API se si controlla Klipper da un software esterno. Se si necessita di un comando G-Code meno comune, potrebbe essere possibile implementarlo con una [sezione di configurazione gcode_macro] personalizzata (Config_Reference.md#gcode_macro). Ad esempio, si potrebbe usare questo per implementare: G12 , G29 , G30 , G31 , M42 , M80 , M81 , T1 , ecc.","title":"Comandi G-Code"},{"location":"G-Codes.html#comandi-aggiuntivi","text":"Klipper utilizza comandi G-Code \"estesi\" per la configurazione e lo stato generale. Questi comandi estesi seguono tutti un formato simile: iniziano con un nome di comando e possono essere seguiti da uno o pi\u00f9 parametri. Ad esempio: SET_SERVO SERVO=mioservo ANGLE=5.3 . In questo documento, i comandi ed i parametri sono mostrati in maiuscolo, tuttavia non fanno distinzione tra maiuscole e minuscole. (Quindi, \"SET_SERVO\" e \"set_servo\" eseguono entrambi lo stesso comando.) Questa sezione \u00e8 organizzata in base al nome del modulo Klipper, che generalmente segue i nomi delle sezioni specificati nel file di configurazione della stampante . Si noti che alcuni moduli vengono caricati automaticamente.","title":"Comandi aggiuntivi"},{"location":"G-Codes.html#adxl345","text":"I seguenti comandi sono disponibili quando una sezione di configurazione adxl345 \u00e8 abilitata.","title":"[adxl345]"},{"location":"G-Codes.html#accelerometer_measure","text":"ACCELEROMETER_MEASURE [CHIP=<config_name>] [NAME=<value>] : Avvia le misurazioni dell'accelerometro al numero richiesto di campioni al secondo. Se CHIP non \u00e8 specificato, il valore predefinito \u00e8 \"adxl345\". Il comando funziona in modalit\u00e0 start-stop: alla prima esecuzione avvia le misure, alla successiva esecuzione le interrompe. I risultati delle misurazioni vengono scritti in un file denominato /tmp/adxl345-<chip>-<name>.csv dove <chip> \u00e8 il nome del chip dell'accelerometro ( my_chip_name da [adxl345 my_chip_name] ) e <name> \u00e8 il parametro NAME facoltativo. Se NAME non \u00e8 specificato, il valore predefinito \u00e8 l'ora corrente nel formato \"AAAAMMGG_HHMMSS\". Se l'accelerometro non ha un nome nella sua sezione di configurazione (semplicemente [adxl345] ), allora la parte <chip> del nome non viene generata.","title":"ACCELEROMETER_MEASURE"},{"location":"G-Codes.html#accelerometer_query","text":"ACCELEROMETER_QUERY [CHIP=<config_name>] [RATE=<value>] : interroga l'accelerometro per il valore corrente. Se CHIP non \u00e8 specificato, il valore predefinito \u00e8 \"adxl345\". Se RATE non \u00e8 specificato, viene utilizzato il valore predefinito. Questo comando \u00e8 utile per testare la connessione all'accelerometro ADXL345: uno dei valori restituiti dovrebbe essere un'accelerazione di caduta libera (+/- un po' di rumore del chip).","title":"ACCELEROMETER_QUERY"},{"location":"G-Codes.html#accelerometer_debug_read","text":"ACCELEROMETER_DEBUG_READ [CHIP=<config_name>] REG=<register> : interroga l'ADXL345 register \"register\" (es. 44 o 0x2C). Pu\u00f2 essere utile per scopi di debug.","title":"ACCELEROMETER_DEBUG_READ"},{"location":"G-Codes.html#accelerometer_debug_write","text":"ACCELEROMETER_DEBUG_WRITE [CHIP=<nome_config>] REG=<register> VAL=<value> : Scrive il valore \"value\" grezzo in un registro \"register\". Sia \"value\" che \"registrer\" possono essere un numero intero decimale o esadecimale. Usare con cura e fare riferimento alla scheda tecnica ADXL345 per riferimento.","title":"ACCELEROMETER_DEBUG_WRITE"},{"location":"G-Codes.html#angle","text":"I seguenti comandi sono disponibili quando una sezione di configurazione dell'angolo \u00e8 abilitata.","title":"[angle]"},{"location":"G-Codes.html#angle_calibrate","text":"ANGLE_CALIBRATE CHIP=<chip_name> : Esegue la calibrazione dell'angolo sul sensore dato (deve esserci una sezione di configurazione [angle chip_name] che ha specificato un parametro stepper ). IMPORTANTE - questo strumento comander\u00e0 al motore passo-passo di muoversi senza controllare i normali limiti della cinematica. Idealmente, il motore dovrebbe essere scollegato da qualsiasi carrello della stampante prima di eseguire la calibrazione. Se non \u00e8 possibile scollegare lo stepper dalla stampante, assicurarsi che il carrello sia vicino al centro della sua guida prima di iniziare la calibrazione. (Il motore passo-passo pu\u00f2 spostarsi avanti o indietro di due rotazioni complete durante questo test.) Dopo aver completato questo test, utilizzare il comando SAVE_CONFIG per salvare i dati di calibrazione nel file di configurazione. Per utilizzare questo strumento \u00e8 necessario installare il pacchetto Python \"numpy\" (consultare il measuring resonance document per ulteriori informazioni).","title":"ANGLE_CALIBRATE"},{"location":"G-Codes.html#angle_debug_read","text":"ANGLE_DEBUG_READ CHIP=<config_name> REG=<register> : Interroga il registro del sensore \"register\" (ad es. 44 o 0x2C). Pu\u00f2 essere utile per scopi di debug. Questo \u00e8 disponibile solo per i chip tle5012b.","title":"ANGLE_DEBUG_READ"},{"location":"G-Codes.html#angle_debug_write","text":"ANGLE_DEBUG_WRITE CHIP=<config_name> REG=<register> VAL=<value> : scrive il valore \"value\" grezzo nel registro \"register\". Sia \"value\" che \"register\" possono essere un numero intero decimale o esadecimale. Usare con cautela e fare riferimento alla scheda tecnica del sensore per riferimento. Questo \u00e8 disponibile solo per i chip tle5012b.","title":"ANGLE_DEBUG_WRITE"},{"location":"G-Codes.html#bed_mesh","text":"I seguenti comandi sono disponibili quando la sezione di configurazione bed_mesh \u00e8 abilitata (consultare anche la guida della mesh del letto ).","title":"[bed_mesh]"},{"location":"G-Codes.html#bed_mesh_calibrate","text":"BED_MESH_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>] [<mesh_parameter>=<value>] : Questo comando sonda il piatto utilizzando i punti generati specificati dai parametri nella configurazione. Dopo il sondaggio, viene generata una mesh e il movimento z viene regolato in base alla mesh. Vedere il comando PROBE per i dettagli sui parametri della sonda opzionali. Se viene specificato METHOD=manual, lo strumento di probing manuale \u00e8 attivato - vedere il comando MANUAL_PROBE per quanti riguarda per i dettagli sui comandi aggiuntivi disponibili mentre questo strumento \u00e8 attivo.","title":"BED_MESH_CALIBRATE"},{"location":"G-Codes.html#bed_mesh_output","text":"BED_MESH_OUTPUT PGP=[<0:1>] : questo comando restituisce i valori z sondati e i valori mesh correnti al terminale. Se viene specificato PGP=1, le coordinate X, Y generate da bed_mesh, insieme ai relativi indici associati, verranno inviate al terminale.","title":"BED_MESH_OUTPUT"},{"location":"G-Codes.html#bed_mesh_map","text":"BED_MESH_MAP : Come per BED_MESH_OUTPUT, questo comando stampa lo stato corrente della mesh sul terminale. Invece di stampare i valori in un formato leggibile, lo stato viene serializzato in formato json. Ci\u00f2 consente ai plug-in di Octoprint di acquisire facilmente i dati e generare mappe di altezza che si approssimano la superficie del piatto.","title":"BED_MESH_MAP"},{"location":"G-Codes.html#bed_mesh_clear","text":"BED_MESH_CLEAR : questo comando cancella la mesh e rimuove tutte le regolazioni z. Si consiglia di inserirlo nella parte finale del gcode.","title":"BED_MESH_CLEAR"},{"location":"G-Codes.html#bed_mesh_profile","text":"BED_MESH_PROFILE LOAD=<name> SAVE=<name> REMOVE=<name> : questo comando fornisce la gestione del profilo per lo stato della mesh. LOAD ripristiner\u00e0 lo stato della mesh dal profilo corrispondente al nome fornito. SAVE salver\u00e0 lo stato della mesh corrente in un profilo che corrisponde al nome fornito. Rimuovi eliminer\u00e0 il profilo corrispondente al nome fornito dalla memoria persistente. Si noti che dopo aver eseguito le operazioni SAVE o REMOVE \u00e8 necessario eseguire il gcode SAVE_CONFIG per rendere permanenti le modifiche alla memoria persistente.","title":"BED_MESH_PROFILE"},{"location":"G-Codes.html#bed_mesh_offset","text":"BED_MESH_OFFSET [X=<value>] [Y=<value>] : applica gli offset X e/o Y alla ricerca della mesh. Ci\u00f2 \u00e8 utile per le stampanti con estrusori indipendenti, poich\u00e9 \u00e8 necessario un offset per produrre la corretta regolazione Z dopo un cambio utensile.","title":"BED_MESH_OFFSET"},{"location":"G-Codes.html#bed_screws","text":"I seguenti comandi sono disponibili quando la sezione di configurazione bed_screws \u00e8 abilitata (consultare anche la manual level guide ).","title":"[bed_screws]"},{"location":"G-Codes.html#bed_screws_adjust","text":"BED_SCREWS_ADJUST : questo comando richiamer\u00e0 lo strumento di regolazione delle viti del piatto. Comander\u00e0 l'ugello in posizioni diverse (come definito nel file di configurazione) e consentir\u00e0 di effettuare regolazioni alle viti del piatto in modo che il piatto sia a una distanza costante dall'ugello.","title":"BED_SCREWS_ADJUST"},{"location":"G-Codes.html#bed_tilt","text":"I seguenti comandi sono disponibili quando la sezione di configurazione inclinazione_piatto \u00e8 abilitata.","title":"[bed_tilt]"},{"location":"G-Codes.html#bed_tilt_calibrate","text":"BED_TILT_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>] : Questo comando sonder\u00e0 i punti specificati nella configurazione e quindi consiglier\u00e0 le regolazioni dell'inclinazione x e y aggiornate. Vedere il comando PROBE per i dettagli sui parametri della sonda opzionali. Se viene specificato METHOD=manual, lo strumento di probing manuale \u00e8 attivato - vedere il comando MANUAL_PROBE sopra per i dettagli sui comandi aggiuntivi disponibili mentre questo strumento \u00e8 attivo.","title":"BED_TILT_CALIBRATE"},{"location":"G-Codes.html#bltouch","text":"Il comando seguente \u00e8 disponibile quando \u00e8 abilitata una sezione di configurazione bltouch (vedere anche la Guida BL-Touch ).","title":"[bltouch]"},{"location":"G-Codes.html#bltouch_debug","text":"BLTOUCH_DEBUG COMMAND=<command> : Invia un comando al BLTouch. Pu\u00f2 essere utile per il debug. I comandi disponibili sono: pin_down , touch_mode , pin_up , self_test , reset . Un BL-Touch V3.0 o V3.1 pu\u00f2 anche supportare i comandi set_5V_output_mode , set_OD_output_mode , output_mode_store .","title":"BLTOUCH_DEBUG"},{"location":"G-Codes.html#bltouch_store","text":"BLTOUCH_STORE MODE=<output_mode> : memorizza una modalit\u00e0 di output nella EEPROM di un BLTouch V3.1 Le modalit\u00e0 di output disponibili sono: 5V , OD","title":"BLTOUCH_STORE"},{"location":"G-Codes.html#configfile","text":"Il modulo configfile viene caricato automaticamente.","title":"[configfile]"},{"location":"G-Codes.html#save_config","text":"SAVE_CONFIG : questo comando sovrascriver\u00e0 il file di configurazione della stampante principale e riavvier\u00e0 il software host. Questo comando viene utilizzato insieme ad altri comandi di calibrazione per memorizzare i risultati dei test di calibrazione.","title":"SAVE_CONFIG"},{"location":"G-Codes.html#delayed_gcode","text":"Il comando seguente \u00e8 abilitato se \u00e8 stata abilitata una sezione di configurazione di gcode ritardata (consultare anche la guida ai modelli ).","title":"[delayed_gcode]"},{"location":"G-Codes.html#update_delayed_gcode","text":"UPDATE_DELAYED_GCODE [ID=<nome>] [DURATION=<secondi>] : aggiorna la durata del ritardo per il [gcode_ritardato] identificato e avvia il timer per l'esecuzione di gcode. Un valore di 0 annuller\u00e0 l'esecuzione di un gcode ritardato in sospeso.","title":"UPDATE_DELAYED_GCODE"},{"location":"G-Codes.html#delta_calibrate","text":"I seguenti comandi sono disponibili quando la sezione di configurazione delta_calibrate \u00e8 abilitata (consultare anche la guida alla calibrazione delta ).","title":"[delta_calibrate]"},{"location":"G-Codes.html#delta_calibrate_1","text":"DELTA_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>] : questo comando sonder\u00e0 sette punti sul piatto e consiglier\u00e0 posizioni di finecorsa, angoli della torre e raggio aggiornati. Vedere il comando PROBE per i dettagli sui parametri della sonda opzionali. Se viene specificato METHOD=manual, lo strumento di probe manuale \u00e8 attivato - vedere il comando MANUAL_PROBE precedente per i dettagli sui comandi aggiuntivi disponibili mentre questo strumento \u00e8 attivo.","title":"DELTA_CALIBRATE"},{"location":"G-Codes.html#delta_analyze","text":"DELTA_ANALYZE : questo comando viene utilizzato durante la calibrazione avanzata delle stampanti delta. Vedere Delta Calibrate per i dettagli.","title":"DELTA_ANALYZE"},{"location":"G-Codes.html#display","text":"Il comando seguente \u00e8 disponibile quando \u00e8 abilitata una sezione di configurazione display .","title":"[display]"},{"location":"G-Codes.html#set_display_group","text":"SET_DISPLAY_GROUP [DISPLAY=<display>] GROUP=<group> : Imposta il gruppo di visualizzazione attivo di un display LCD. Ci\u00f2 consente di definire pi\u00f9 gruppi di dati di visualizzazione nella configurazione, ad es. [display_data <group> <elementname>] e passare da uno all'altro usando questo comando gcode esteso. Se DISPLAY non \u00e8 specificato, l'impostazione predefinita \u00e8 \"display\" (il display principale).","title":"SET_DISPLAY_GROUP"},{"location":"G-Codes.html#display_status","text":"Il modulo display_status viene caricato automaticamente se una sezione di configurazione display \u00e8 abilitata. Fornisce i seguenti comandi G-Code standard: Messaggio visualizzato: M117 <messaggio> Imposta la percentuale di costruzione: M73 P<percentuale> Viene inoltre fornito il seguente comando G-Code esteso: SET_DISPLAY_TEXT MSG=<messaggio> : esegue l'equivalente di M117, impostando il MSG fornito come messaggio visualizzato. Se MSG viene omesso, il display verr\u00e0 cancellato.","title":"[display_status]"},{"location":"G-Codes.html#dual_carriage","text":"Il comando seguente \u00e8 disponibile quando la sezione di configurazione dual_carriage \u00e8 abilitata.","title":"[dual_carriage]"},{"location":"G-Codes.html#set_dual_carriage","text":"SET_DUAL_CARRIAGE CARRIAGE=[0|1] : Questo comando imposter\u00e0 il carrello attivo. Viene in genere richiamato dai campi activate_gcode e deactivate_gcode in una configurazione a pi\u00f9 estrusori.","title":"SET_DUAL_CARRIAGE"},{"location":"G-Codes.html#endstop_phase","text":"I seguenti comandi sono disponibili quando una sezione di configurazione endstop_phase \u00e8 abilitata (consultare anche la guida alla fase endstop ).","title":"[endstop_phase]"},{"location":"G-Codes.html#endstop_phase_calibrate","text":"ENDSTOP_PHASE_CALIBRATE [STEPPER=<config_name>] : Se non viene fornito alcun parametro STEPPER, questo comando riporter\u00e0 le statistiche sulle fasi stepper dell'arresto durante le precedenti operazioni di homing. Quando viene fornito un parametro STEPPER, fa in modo che l'impostazione della fase di fine corsa fornita sia scritta nel file di configurazione (insieme al comando SAVE_CONFIG).","title":"ENDSTOP_PHASE_CALIBRATE"},{"location":"G-Codes.html#exclude_object","text":"I seguenti comandi sono disponibili quando \u00e8 abilitata una exclude_object config section (consultare anche la exclude object guide ):","title":"[exclude_object]"},{"location":"G-Codes.html#exclude_object_1","text":"EXCLUDE_OBJECT [NAME=object_name] [CURRENT=1] [RESET=1] : Senza parametri, questo restituir\u00e0 un elenco di tutti gli oggetti attualmente esclusi. Quando viene fornito il parametro NAME , l'oggetto denominato verr\u00e0 escluso dalla stampa. Quando viene fornito il parametro CURRENT , l'oggetto corrente verr\u00e0 escluso dalla stampa. Quando viene fornito il parametro RESET l'elenco degli oggetti esclusi verr\u00e0 cancellato. Inoltre l'inclusione di NAME ripristiner\u00e0 solo l'oggetto denominato. Questo pu\u00f2 causare errori di stampa, se i livelli sono gi\u00e0 stati saltati.","title":"EXCLUDE_OBJECT"},{"location":"G-Codes.html#exclude_object_define","text":"EXCLUDE_OBJECT_DEFINE [NAME=object_name [CENTER=X,Y] [POLYGON=[[x,y],...]] [RESET=1] [JSON=1] : fornisce un riepilogo di un oggetto nel file. Senza parametri forniti, questo elencher\u00e0 gli oggetti definiti noti a Klipper. Restituisce un elenco di stringhe, a meno che non venga fornito il parametro JSON , quando restituir\u00e0 i dettagli dell'oggetto in formato json. Quando il parametro NAME \u00e8 incluso, definisce un oggetto da escludere. NAME : questo parametro \u00e8 obbligatorio. \u00c8 l'identificatore utilizzato da altri comandi in questo modulo. CENTER : una coordinata X,Y per l'oggetto. POLYGON : Un array di coordinate X,Y che fornisce un contorno per l'oggetto. Quando viene fornito il parametro RESET , tutti gli oggetti definiti verranno cancellati e il modulo [exclude_object] verr\u00e0 ripristinato.","title":"EXCLUDE_OBJECT_DEFINE"},{"location":"G-Codes.html#exclude_object_start","text":"EXCLUDE_OBJECT_START NAME=object_name : questo comando prende un parametro NAME e marca l'inizio del gcode per un oggetto sul livello corrente.","title":"EXCLUDE_OBJECT_START"},{"location":"G-Codes.html#exclude_object_end","text":"EXCLUDE_OBJECT_END [NAME=object_name] : Denota la fine del gcode dell'oggetto per il livello. \u00c8 accoppiato con EXCLUDE_OBJECT_START . Un parametro NAME \u00e8 facoltativo e avviser\u00e0 solo quando il nome fornito non corrisponde all'oggetto corrente.","title":"EXCLUDE_OBJECT_END"},{"location":"G-Codes.html#extruder","text":"I seguenti comandi sono disponibili se una sezione di configurazione dell'estrusore \u00e8 abilitata:","title":"[extruder]"},{"location":"G-Codes.html#activate_extruder","text":"ACTIVATE_EXTRUDER EXTRUDER=<config_name> : in una stampante con pi\u00f9 sezioni di configurazione extruder , questo comando cambia l'hotend attivo.","title":"ACTIVATE_EXTRUDER"},{"location":"G-Codes.html#set_pressure_advance","text":"SET_PRESSURE_ADVANCE [EXTRUDER=<config_name>] [ADVANCE=<pressure_advance>] [SMOOTH_TIME=<pressure_advance_smooth_time>] : Imposta i parametri di pressure advance delleo stepper di un estrusore (come definito in un estrusore o [ extruder_stepper] (sezione di configurazione Config_Reference.md#extruder_stepper). Se EXTRUDER non \u00e8 specificato, per impostazione predefinita viene utilizzato lo stepper definito nell'hotend attivo.","title":"SET_PRESSURE_ADVANCE"},{"location":"G-Codes.html#set_extruder_rotation_distance","text":"SET_EXTRUDER_ROTATION_DISTANCE EXTRUDER=<config_name> [DISTANCE=<distance>] : Imposta un nuovo valore per la \"distanza di rotazione\" dello stepper dell'estrusore fornito (come definito in un extruder o extruder_stepper sezione di configurazione). Se la distanza di rotazione \u00e8 un numero negativo, il movimento passo-passo verr\u00e0 invertito (rispetto alla direzione passo-passo specificata nel file di configurazione). Le impostazioni modificate non vengono mantenute al ripristino di Klipper. Usare con cautela poich\u00e9 piccole modifiche possono causare una pressione eccessiva tra l'estrusore e l'hotend. Eseguire una corretta calibrazione con il filamento prima dell'uso. Se il valore 'DISTANZA' non viene fornito, questo comando restituir\u00e0 la distanza di rotazione corrente.","title":"SET_EXTRUDER_ROTATION_DISTANCE"},{"location":"G-Codes.html#sync_extruder_motion","text":"SYNC_EXTRUDER_MOTION EXTRUDER=<nome> MOTION_QUEUE=<nome> : questo comando attiver\u00e0 lo stepper specificato da EXTRUDER (come definito in un extruder o extruder_stepper config sezione) per sincronizzarsi con il movimento di un estrusore specificato da MOTION_QUEUE (come definito in una sezione di configurazione estrusore ). Se MOTION_QUEUE \u00e8 una stringa vuota, lo stepper verr\u00e0 desincronizzato da tutti i movimenti dell'estrusore.","title":"SYNC_EXTRUDER_MOTION"},{"location":"G-Codes.html#set_extruder_step_distance","text":"Questo comando \u00e8 deprecato e verr\u00e0 rimosso nel prossimo futuro.","title":"SET_EXTRUDER_STEP_DISTANCE"},{"location":"G-Codes.html#sync_stepper_to_extruder","text":"Questo comando \u00e8 deprecato e verr\u00e0 rimosso nel prossimo futuro.","title":"SYNC_STEPPER_TO_EXTRUDER"},{"location":"G-Codes.html#fan_generic","text":"Il comando seguente \u00e8 disponibile quando una sezione di configurazione fan_generic \u00e8 abilitata.","title":"[fan_generic]"},{"location":"G-Codes.html#set_fan_speed","text":"SET_FAN_SPEED FAN=config_name SPEED=<velocit\u00e0> Questo comando imposta la velocit\u00e0 di una ventola. \"velocit\u00e0\" deve essere compresa tra 0.0 e 1.0.","title":"SET_FAN_SPEED"},{"location":"G-Codes.html#filament_switch_sensor","text":"Il comando seguente \u00e8 disponibile quando \u00e8 abilitata una sezione di configurazione filament_switch_sensor o filament_motion_sensor .","title":"[filament_switch_sensor]"},{"location":"G-Codes.html#query_filament_sensor","text":"QUERY_FILAMENT_SENSOR SENSOR=<sensor_name> : Interroga lo stato del sensore di filamento. I dati visualizzati sul terminale dipenderanno dal tipo di sensore definito nella configurazione.","title":"QUERY_FILAMENT_SENSOR"},{"location":"G-Codes.html#set_filament_sensor","text":"SET_FILAMENT_SENSOR SENSOR=<nome_sensore> ENABLE=[0|1] : Attiva/disattiva il sensore di filamento. Se ENABLE \u00e8 impostato su 0, il sensore di filamento sar\u00e0 disabilitato, se impostato su 1 sar\u00e0 abilitato.","title":"SET_FILAMENT_SENSOR"},{"location":"G-Codes.html#firmware_retraction","text":"I seguenti comandi G-Code standard sono disponibili quando la sezione di configurazione firmware_retraction \u00e8 abilitata. Questi comandi consentono di utilizzare la funzione di retraction del firmware disponibile in molti slicer, per ridurre lo stringing durante gli spostamenti di non estrusione da una parte all'altra della stampa. Configurando opportunamente la pressure advance si riduce la lunghezza della retrazione richiesta. G10 : Ritrae l'estrusore utilizzando i parametri attualmente configurati. G11 : Ritira l'estrusore utilizzando i parametri attualmente configurati. Sono inoltre disponibili i seguenti comandi aggiuntivi.","title":"[firmware_retraction]"},{"location":"G-Codes.html#set_retraction","text":"SET_RETRACTION [RETRACT_LENGTH=<mm>] [RETRACT_SPEED=<mm/s>] [UNRETRACT_EXTRA_LENGTH=<mm>] [UNRETRACT_SPEED=<mm/s>] : regola i parametri utilizzati dalla retrazione. RETRACT_LENGTH determina la lunghezza del filamento da ritrarre e estrudere. La velocit\u00e0 di retrazione viene regolata tramite RETRACT_SPEED, ed \u00e8 generalmente impostata su un valore relativamente alto. La velocit\u00e0 di annullamento viene regolata tramite UNRETRACT_SPEED e non \u00e8 particolarmente critica, sebbene spesso inferiore a RETRACT_SPEED. In alcuni casi \u00e8 utile aggiungere una piccola quantit\u00e0 di lunghezza aggiuntiva all'annullamento della retrazione, e questa viene impostata tramite UNRETRACT_EXTRA_LENGTH. SET_RETRACTION \u00e8 comunemente impostato come parte della configurazione dello slicer per filamento, poich\u00e9 filamenti diversi richiedono impostazioni dei parametri diverse.","title":"SET_RETRACTION"},{"location":"G-Codes.html#get_retraction","text":"GET_RETRACTION : interroga i parametri correnti utilizzati dal firmware per retrazione e li visualizza sul terminale.","title":"GET_RETRACTION"},{"location":"G-Codes.html#force_move","text":"Il modulo force_move viene caricato automaticamente, tuttavia alcuni comandi richiedono l'impostazione di enable_force_move in printer config .","title":"[force_move]"},{"location":"G-Codes.html#stepper_buzz","text":"STEPPER_BUZZ STEPPER=<nome_config> : sposta lo stepper dato in avanti di 1 mm e poi indietro di 1 mm, ripetuto 10 volte. Questo \u00e8 uno strumento diagnostico per aiutare a verificare la connettivit\u00e0 stepper.","title":"STEPPER_BUZZ"},{"location":"G-Codes.html#force_move_1","text":"FORCE_MOVE STEPPER=<nome_config> DISTANCE=<value> VELOCITY=<value> [ACCEL=<value>] : Questo comando sposter\u00e0 forzatamente lo stepper dato della distanza data (in mm) alla velocit\u00e0 costante data (in mm/ S). Se viene specificato ACCEL ed \u00e8 maggiore di zero, verr\u00e0 utilizzata l'accelerazione data (in mm/s^2); altrimenti non viene eseguita alcuna accelerazione. Non vengono effettuati controlli sui limiti; non vengono effettuati aggiornamenti cinematici; altri stepper paralleli su un asse non verranno spostati. Prestare attenzione poich\u00e9 un comando errato potrebbe causare danni! L'uso di questo comando metter\u00e0 quasi sicuramente la cinematica di basso livello in uno stato errato; emettere un G28 in seguito per ripristinare la cinematica. Questo comando \u00e8 destinato alla diagnostica e al debug di basso livello.","title":"FORCE_MOVE"},{"location":"G-Codes.html#set_kinematic_position","text":"SET_KINEMATIC_POSITION [X=<valore>] [Y=<valore>] [Z=<valore>] : forza il codice cinematico di basso livello a credere che la testa di stampa si trovi nella posizione cartesiana data. Questo \u00e8 un comando diagnostico e di debug; utilizzare SET_GCODE_OFFSET e/o G92 per le normali trasformazioni degli assi. Se un asse non \u00e8 specificato, verr\u00e0 impostato automaticamente sulla posizione in cui la testa \u00e8 stata comandata l'ultima volta. L'impostazione di una posizione errata o non valida pu\u00f2 causare errori software interni. Questo comando potrebbe invalidare futuri controlli sui confini; emettere un G28 in seguito per ripristinare la cinematica.","title":"SET_KINEMATIC_POSITION"},{"location":"G-Codes.html#gcode","text":"Il modulo gcode viene caricato automaticamente.","title":"[gcode]"},{"location":"G-Codes.html#restart","text":"RESTART : Ci\u00f2 far\u00e0 s\u00ec che il software host ricarichi la sua configurazione ed esegua un ripristino interno. Questo comando non canceller\u00e0 lo stato di errore dal microcontrollore (vedi FIRMWARE_RESTART) n\u00e9 caricher\u00e0 nuovo software (vedi FAQ ) .","title":"RESTART"},{"location":"G-Codes.html#firmware_restart","text":"FIRMWARE_RESTART : Questo \u00e8 simile a un comando RESTART, ma cancella anche qualsiasi stato di errore dal microcontrollore.","title":"FIRMWARE_RESTART"},{"location":"G-Codes.html#status","text":"STATUS : segnala lo stato del software host di Klipper.","title":"STATUS"},{"location":"G-Codes.html#help","text":"HELP : riporta l'elenco dei comandi G-Code estesi disponibili.","title":"HELP"},{"location":"G-Codes.html#gcode_arcs","text":"I seguenti comandi G-Code standard sono disponibili se una sezione di configurazione gcode_arcs \u00e8 abilitata: Movimento controllato dell'arco (G2 o G3): G2 [X<pos>] [Y<pos>] [Z<pos>] [E<pos>] [F<velocit\u00e0>] I<valore> J<valore>","title":"[gcode_arcs]"},{"location":"G-Codes.html#gcode_macro","text":"Il comando seguente \u00e8 disponibile quando \u00e8 abilitata una sezione di configurazione gcode_macro (consultare anche la guida ai modelli di comando ).","title":"[gcode_macro]"},{"location":"G-Codes.html#set_gcode_variable","text":"SET_GCODE_VARIABLE MACRO=<nome_macro> VARIABLE=<nome> VALUE=<valore> : questo comando consente di modificare il valore di una variabile gcode_macro in fase di esecuzione. Il VALUE fornito viene analizzato come un valore literal in Python.","title":"SET_GCODE_VARIABLE"},{"location":"G-Codes.html#gcode_move","text":"Il modulo gcode_move viene caricato automaticamente.","title":"[gcode_move]"},{"location":"G-Codes.html#get_position","text":"GET_POSITION`: Restituisce informazioni sulla posizione corrente della testa di stampa. Per ulteriori informazioni, vedere la documentazione per gli sviluppatori di GET_POSITION output .","title":"GET_POSITION"},{"location":"G-Codes.html#set_gcode_offset","text":"SET_GCODE_OFFSET [X=<pos>|X_ADJUST=<regola>] [Y=<pos>|Y_ADJUST=<regola>] [Z=<pos>|Z_ADJUST=<regola>] [MOVE=1 [MOVE_SPEED=<velocit\u00e0 >]] : imposta un offset di posizione da applicare ai futuri comandi G-Code. Questo \u00e8 comunemente usato per cambiare virtualmente l'offset del letto Z o per impostare gli offset XY degli ugelli quando si cambia estrusore. Ad esempio, se viene inviato \"SET_GCODE_OFFSET Z=0.2\", i futuri movimenti G-Code avranno 0.2 mm aggiunti alla loro altezza Z. Se vengono utilizzati i parametri di stile X_ADJUST, la regolazione verr\u00e0 aggiunta a qualsiasi offset esistente (ad esempio, \"SET_GCODE_OFFSET Z=-0.2\" seguito da \"SET_GCODE_OFFSET Z_ADJUST=0.3\" risulter\u00e0 in un offset Z totale di 0.1). Se viene specificato \"MOVE=1\", verr\u00e0 emesso un movimento della testa di stampa per applicare l'offset specificato (altrimenti l'offset avr\u00e0 effetto sul successivo movimento assoluto del codice G che specifica l'asse dato). Se viene specificato \"MOVE_SPEED\", lo spostamento della testa utensile verr\u00e0 eseguito con la velocit\u00e0 data (in mm/s); in caso contrario, il movimento della testa utensile utilizzer\u00e0 l'ultima velocit\u00e0 del G-code specificata.","title":"SET_GCODE_OFFSET"},{"location":"G-Codes.html#save_gcode_state","text":"SAVE_GCODE_STATE [NAME=<nome_stato>] : salva lo stato di analisi delle coordinate del G-code corrente. Il salvataggio e il ripristino dello stato del G-code \u00e8 utile negli script e nelle macro. Questo comando salva la modalit\u00e0 di coordinate assolute del G-code corrente (G90/G91), la modalit\u00e0 di estrusione assoluta (M82/M83), l'origine (G92), l'offset (SET_GCODE_OFFSET), l'override della velocit\u00e0 (M220), l'override dell'estrusore (M221), la velocit\u00e0 di spostamento , la posizione XYZ corrente e la posizione relativa dell'estrusore \"E\". Se viene fornito NAME, consente di assegnare un nome allo stato salvato alla stringa data. Se NAME non viene fornito, il valore predefinito \u00e8 \"predefinito\".","title":"SAVE_GCODE_STATE"},{"location":"G-Codes.html#restore_gcode_state","text":"RESTORE_GCODE_STATE [NAME=<nome_stato>] [MOVE=1 [MOVE_SPEED=<velocit\u00e0>]] : ripristina uno stato precedentemente salvato tramite SAVE_GCODE_STATE. Se viene specificato \"MOVE=1\", verr\u00e0 emesso un movimento della testa utensile per tornare alla posizione XYZ precedente. Se viene specificato \"MOVE_SPEED\", lo spostamento della testa utensile verr\u00e0 eseguito con la velocit\u00e0 data (in mm/s); in caso contrario, lo spostamento della testa utensile utilizzer\u00e0 la velocit\u00e0 del codice g ripristinata.","title":"RESTORE_GCODE_STATE"},{"location":"G-Codes.html#hall_filament_width_sensor","text":"I seguenti comandi sono disponibili quando la sezione di configurazione del sensore di larghezza del filamento tsl1401cl o sezione di configurazione del sensore di larghezza del filamento hall \u00e8 abilitata (consultare anche Sensore di larghezza del filamento TSLl401CL e Hall Filament Width Sensor ):","title":"[hall_filament_width_sensor]"},{"location":"G-Codes.html#query_filament_width","text":"QUERY_FILAMENT_WIDTH : Restituisce lo spessore del filamento misurato.","title":"QUERY_FILAMENT_WIDTH"},{"location":"G-Codes.html#reset_filament_width_sensor","text":"RESET_FILAMENT_WIDTH_SENSOR : Cancella tutte le letture del sensore. Utile dopo il cambio del filamento.","title":"RESET_FILAMENT_WIDTH_SENSOR"},{"location":"G-Codes.html#disable_filament_width_sensor","text":"DISABLE_FILAMENT_WIDTH_SENSOR : Spegnere il sensore di larghezza del filamento e smettere di usarlo per il controllo del flusso.","title":"DISABLE_FILAMENT_WIDTH_SENSOR"},{"location":"G-Codes.html#enable_filament_width_sensor","text":"ENABLE_FILAMENT_WIDTH_SENSOR : attiva il sensore di larghezza del filamento e inizia a usarlo per il controllo del flusso.","title":"ENABLE_FILAMENT_WIDTH_SENSOR"},{"location":"G-Codes.html#query_raw_filament_width","text":"QUERY_RAW_FILAMENT_WIDTH : Restituisce le letture del canale ADC corrente e il valore grezzo (raw) del sensore per i punti di calibrazione.","title":"QUERY_RAW_FILAMENT_WIDTH"},{"location":"G-Codes.html#enable_filament_width_log","text":"ENABLE_FILAMENT_WIDTH_LOG : attiva la registrazione del diametro del filamento.","title":"ENABLE_FILAMENT_WIDTH_LOG"},{"location":"G-Codes.html#disable_filament_width_log","text":"DISABLE_FILAMENT_WIDTH_LOG : Disattiva la registrazione del diametro del filamento.","title":"DISABLE_FILAMENT_WIDTH_LOG"},{"location":"G-Codes.html#heaters","text":"Il modulo heaters viene caricato automaticamente se un riscaldatore \u00e8 definito nel file di configurazione.","title":"[heaters]"},{"location":"G-Codes.html#turn_off_heaters","text":"TURN_OFF_HEATERS : Spegni tutti i riscaldatori.","title":"TURN_OFF_HEATERS"},{"location":"G-Codes.html#temperature_wait","text":"TEMPERATURE_WAIT SENSOR=<config_name> [MINIMUM=<target>] [MAXIMUM=<target>] : Attendere fino a quando il sensore di temperatura specificato \u00e8 pari o superiore al MINIMO fornito e/o pari o inferiore al MASSIMO fornito.","title":"TEMPERATURE_WAIT"},{"location":"G-Codes.html#set_heater_temperature","text":"SET_HEATER_TEMPERATURE HEATER=<nome_riscaldatore> [TARGET=<temperatura_destinata>] : Imposta la temperatura target per un riscaldatore. Se non viene fornita una temperatura target, il target \u00e8 0.","title":"SET_HEATER_TEMPERATURE"},{"location":"G-Codes.html#idle_timeout","text":"Il modulo idle_timeout viene caricato automaticamente.","title":"[idle_timeout]"},{"location":"G-Codes.html#set_idle_timeout","text":"SET_IDLE_TIMEOUT [TIMEOUT=<timeout>] : consente all'utente di impostare il timeout di inattivit\u00e0 (in secondi).","title":"SET_IDLE_TIMEOUT"},{"location":"G-Codes.html#input_shaper","text":"Il comando seguente \u00e8 abilitato se \u00e8 stata abilitata una sezione di configurazione di input_shaper (consultare anche la guida alla compensazione della risonanza ).","title":"[input_shaper]"},{"location":"G-Codes.html#set_input_shaper","text":"SET_INPUT_SHAPER [SHAPER_FREQ_X=<shaper_freq_x>] [SHAPER_FREQ_Y=<shaper_freq_y>] [DAMPING_RATIO_X=<damping_ratio_x>] [DAMPING_RATIO_Y=<damping_ratio_y>] [SHAPER_TYPE=<shaper>] [SHAPER_TYPE_X=<shaper_type_x>] [SHAPER_TYPE=<shaper_TYPE_X=<shaper_type_x>] [SHAPER_TYPE=<shaper_type_y=<shaper_type_x> ] : Modifica i parametri dell'input shaper. Si noti che il parametro SHAPER_TYPE reimposta l'input shaper per entrambi gli assi X e Y anche se sono stati configurati tipi di shaper diversi nella sezione [input_shaper]. SHAPER_TYPE non pu\u00f2 essere utilizzato insieme a uno dei parametri SHAPER_TYPE_X e SHAPER_TYPE_Y. Vedere config reference per maggiori dettagli su ciascuno di questi parametri.","title":"SET_INPUT_SHAPER"},{"location":"G-Codes.html#manual_probe","text":"Il modulo manual_probe viene caricato automaticamente.","title":"[manual_probe]"},{"location":"G-Codes.html#manual_probe_1","text":"MANUAL_PROBE [SPEED=<speed>] : esegue uno script di supporto utile per misurare l'altezza dell'ugello in una determinata posizione. Se viene specificato SPEED, imposta la velocit\u00e0 dei comandi TESTZ (il valore predefinito \u00e8 5mm/s). Durante una sonda manuale, sono disponibili i seguenti comandi aggiuntivi: ACCEPT : questo comando accetta la posizione Z corrente e conclude il probing manuale. ABORT : questo comando termina lo strumento di probing manuale. TESTZ Z=<valore> : questo comando sposta l'ugello verso l'alto o verso il basso della quantit\u00e0 specificata in \"valore\". Ad esempio, TESTZ Z=-.1 sposterebbe l'ugello verso il basso di .1 mm mentre TESTZ Z=.1 sposterebbe l'ugello verso l'alto di .1 mm. Il valore pu\u00f2 anche essere + , - , ++ o -- per spostare l'ugello verso l'alto o verso il basso di un importo rispetto ai tentativi precedenti.","title":"MANUAL_PROBE"},{"location":"G-Codes.html#z_endstop_calibrate","text":"Z_ENDSTOP_CALIBRATE [SPEED=<speed>] : esegue uno script di supporto utile per calibrare un'impostazione di configurazione Z position_endstop. Vedere il comando MANUAL_PROBE per i dettagli sui parametri e sui comandi aggiuntivi disponibili mentre lo strumento \u00e8 attivo.","title":"Z_ENDSTOP_CALIBRATE"},{"location":"G-Codes.html#z_offset_apply_endstop","text":"Z_OFFSET_APPLY_ENDSTOP : prende l'offset Z Gcode corrente (noto anche come babystepping) e lo sottrae da stepper_z endstop_position. Questa azione per prendere un valore di babystep utilizzato di frequente e \"renderlo permanente\". Richiede un SAVE_CONFIG per avere effetto.","title":"Z_OFFSET_APPLY_ENDSTOP"},{"location":"G-Codes.html#stepper-manuali","text":"Il comando seguente \u00e8 disponibile quando una sezione di configurazione stepper_manuale \u00e8 abilitata.","title":"[Stepper manuali]"},{"location":"G-Codes.html#manual_stepper","text":"MANUAL_STEPPER STEPPER=nome_config [ENABLE=[0|1]] [SET_POSITION=<pos>] [SPEED=<velocit\u00e0>] [ACCEL=<accelerazione>] [MOVE=<pos> [STOP_ON_ENDSTOP=[1|2|- 1|-2]] [SYNC=0]] : Questo comando alterer\u00e0 lo stato dello stepper. Utilizzare il parametro ENABLE per abilitare/disabilitare lo stepper. Utilizzare il parametro SET_POSITION per forzare lo stepper a pensare di trovarsi nella posizione data. Utilizzare il parametro MOVE per richiedere un movimento alla posizione data. Se viene specificato SPEED e/o ACCEL, verranno utilizzati i valori forniti al posto dei valori predefiniti specificati nel file di configurazione. Se viene specificato un ACCEL pari a zero, non verr\u00e0 eseguita alcuna accelerazione. Se viene specificato STOP_ON_ENDSTOP=1, lo spostamento terminer\u00e0 in anticipo se l'endstop segnala come attivato (usa STOP_ON_ENDSTOP=2 per completare lo spostamento senza errori anche se l'endstop non si attiva, usa -1 o -2 per interrompere quando l'endstop segnala non innescato). Normalmente i futuri comandi G-Code verranno programmati per essere eseguiti dopo il completamento del movimento passo-passo, tuttavia se un movimento passo-passo manuale utilizza SYNC=0, i futuri comandi di movimento G-Code potrebbero essere eseguiti in parallelo con il movimento passo-passo.","title":"MANUAL_STEPPER"},{"location":"G-Codes.html#mcp4018","text":"Il comando seguente \u00e8 disponibile quando una sezione di configurazione mcp4018 \u00e8 abilitata.","title":"[mcp4018]"},{"location":"G-Codes.html#set_digipot","text":"SET_DIGIPOT DIGIPOT=config_name WIPER=<value> : Questo comando cambier\u00e0 il valore corrente del digipot. Questo valore dovrebbe essere in genere compreso tra 0.0 e 1.0, a meno che non sia definita una 'scale' nella configurazione. Quando viene definita 'scale', questo valore dovrebbe essere compreso tra 0,0 e 'scale'.","title":"SET_DIGIPOT"},{"location":"G-Codes.html#led","text":"Il comando seguente \u00e8 disponibile quando una qualsiasi delle sezioni di configurazione led \u00e8 abilitata.","title":"[led]"},{"location":"G-Codes.html#set_led","text":"SET_LED LED=<nome_config> ROSSO=<valore> VERDE=<valore> BLU=<valore> BIANCO=<valore> [INDEX=<indice>] [TRANSMIT=0] [SYNC=1] : Imposta il LED in output. Ogni colore <valore> deve essere compreso tra 0,0 e 1,0. L'opzione BIANCO \u00e8 valida solo su LED RGBW. Se il LED supporta pi\u00f9 chip in una catena daisy-chain, \u00e8 possibile specificare INDEX per modificare il colore del solo chip specificato (1 per il primo chip, 2 per il secondo, ecc.). Se INDEX non viene fornito, tutti i LED nella catena verranno impostati sul colore fornito. Se viene specificato TRANSMIT=0, il cambio colore verr\u00e0 effettuato solo sul successivo comando SET_LED che non specifica TRANSMIT=0; questo pu\u00f2 essere utile in combinazione con il parametro INDEX per raggruppare pi\u00f9 aggiornamenti in una catena. Per impostazione predefinita, il comando SET_LED sincronizzer\u00e0 le modifiche con altri comandi gcode in corso. Ci\u00f2 pu\u00f2 comportare un comportamento indesiderato se i LED vengono impostati mentre la stampante non sta stampando in quanto reimposta il timeout di inattivit\u00e0. Se non \u00e8 necessaria una tempistica attenta, \u00e8 possibile specificare il parametro SYNC=0 opzionale per applicare le modifiche senza ripristinare il timeout di inattivit\u00e0.","title":"SET_LED"},{"location":"G-Codes.html#set_led_template","text":"SET_LED_TEMPLATE LED=<nome_led> TEMPLATE=<nome_modello> [<param_x>=<letterale>] [INDEX=<indice>] : Assegna un modello_visualizzazione a un dato LED . Ad esempio, se si definisce una sezione di configurazione [display_template my_led_template] allora si potrebbe assegnare TEMPLATE=my_led_template qui. Il display_template dovrebbe produrre una stringa separata da virgole contenente quattro numeri in virgola mobile corrispondenti alle impostazioni dei colori rosso, verde, blu e bianco. Il modello verr\u00e0 continuamente valutato e il LED verr\u00e0 impostato automaticamente sui colori risultanti. \u00c8 possibile impostare i parametri display_template da utilizzare durante la valutazione del modello (i parametri verranno analizzati come valori letterali Python). Se INDEX non \u00e8 specificato, tutti i chip nella catena dei LED verranno impostati sul modello, altrimenti verr\u00e0 aggiornato solo il chip con l'indice specificato. Se TEMPLATE \u00e8 una stringa vuota, questo comando canceller\u00e0 qualsiasi modello precedente assegnato al LED (\u00e8 quindi possibile utilizzare i comandi SET_LED per gestire le impostazioni del colore del LED).","title":"SET_LED_TEMPLATE"},{"location":"G-Codes.html#output_pin","text":"Il comando seguente \u00e8 disponibile quando una sezione di configurazione pin_output \u00e8 abilitata.","title":"[output_pin]"},{"location":"G-Codes.html#set_pin","text":"SET_PIN PIN=nome_config VALUE=<valore> CYCLE_TIME=<tempo_ciclo> : Nota - PWM hardware attualmente non supporta il parametro CYCLE_TIME e utilizzer\u00e0 il tempo di ciclo definito nella configurazione.","title":"SET_PIN"},{"location":"G-Codes.html#palette2","text":"I seguenti comandi sono disponibili quando la sezione di configurazione della palette2 \u00e8 abilitata. Le stampe di Palette funzionano incorporando speciali OCodes (Codici Omega) nel file GCode: O1 ... O32 : Questi codici vengono letti dal flusso GCode ed elaborati da questo modulo e passati al dispositivo Palette 2. Sono inoltre disponibili i seguenti comandi aggiuntivi.","title":"[palette2]"},{"location":"G-Codes.html#palette_connect","text":"PALETTE_CONNECT : questo comando inizializza la connessione con la Palette 2.","title":"PALETTE_CONNECT"},{"location":"G-Codes.html#palette_disconnect","text":"PALETTE_DISCONNECT : questo comando si disconnette dalla Palette 2.","title":"PALETTE_DISCONNECT"},{"location":"G-Codes.html#palette_clear","text":"PALETTE_CLEAR : questo comando indica alla Palette 2 di cancellare tutti i percorsi di input e output del filamento.","title":"PALETTE_CLEAR"},{"location":"G-Codes.html#palette_cut","text":"PALETTE_CUT : Questo comando indica alla Palette 2 di tagliare il filamento attualmente caricato nello splice core.","title":"PALETTE_CUT"},{"location":"G-Codes.html#palette_smart_load","text":"PALETTE_SMART_LOAD : Questo comando avvia la sequenza di caricamento intelligente sulla Palette 2. Il filamento viene caricato automaticamente estrudendolo alla distanza calibrata sul dispositivo per la stampante e istruisce la Palette 2 una volta completato il caricamento. Questo comando equivale a premere Smart Load direttamente sullo schermo della Palette 2 dopo che il caricamento del filamento \u00e8 stato completato.","title":"PALETTE_SMART_LOAD"},{"location":"G-Codes.html#pid_calibrate","text":"Il modulo pid_calibrate viene caricato automaticamente se nel file di configurazione \u00e8 definito un riscaldatore.","title":"[pid_calibrate]"},{"location":"G-Codes.html#pid_calibrate_1","text":"PID_CALIBRATE HEATER=<nome_config> TARGET=<temperatura> [WRITE_FILE=1] : esegue un test di calibrazione PID. Il riscaldatore specificato verr\u00e0 abilitato fino al raggiungimento della temperatura target specificata, quindi il riscaldatore verr\u00e0 spento e acceso per diversi cicli. Se il parametro WRITE_FILE \u00e8 abilitato, verr\u00e0 creato il file /tmp/heattest.txt con un log di tutti i campioni di temperatura prelevati durante il test.","title":"PID_CALIBRATE"},{"location":"G-Codes.html#pause_resume","text":"I seguenti comandi sono disponibili quando la pause_resume config section \u00e8 abilitata:","title":"[pause_resume]"},{"location":"G-Codes.html#pause","text":"PAUSE : mette in pausa la stampa corrente. La posizione attuale viene acquisita per la ripresa al ripristino.","title":"PAUSE"},{"location":"G-Codes.html#resume","text":"RESUME [VELOCITY=<value>] : riprende la stampa da una pausa, ripristinando prima la posizione precedentemente acquisita. Il parametro VELOCITY determina la velocit\u00e0 alla quale l'utensile deve tornare alla posizione originale acquisita.","title":"RESUME"},{"location":"G-Codes.html#clear_pause","text":"CLEAR_PAUSE : cancella lo stato di pausa corrente senza riprendere la stampa. Questo \u00e8 utile se si decide di annullare una stampa dopo un PAUSE. Si consiglia di aggiungerlo al gcode iniziale per assicurarsi che lo stato in pausa sia aggiornato per ogni stampa.","title":"CLEAR_PAUSE"},{"location":"G-Codes.html#cancel_print","text":"CANCEL_PRINT : Annulla la stampa corrente.","title":"CANCEL_PRINT"},{"location":"G-Codes.html#print_stats","text":"Il modulo print_stats viene caricato automaticamente.","title":"[print_stats]"},{"location":"G-Codes.html#set_print_stats_info","text":"SET_PRINT_STATS_INFO [TOTAL_LAYER=<total_layer_count>] [CURRENT_LAYER= <current_layer>] : passa le informazioni sulo slicer come il layer attivo ed il totale a Klipper. Aggiungi SET_PRINT_STATS_INFO [TOTAL_LAYER=<total_layer_count>] alla sezione gcode di inizio del tuo slicer e SET_PRINT_STATS_INFO [CURRENT_LAYER= <current_layer>] alla sezione gcode di cambio livello per passare le informazioni sul livello dal tuo slicer a Klipper.","title":"SET_PRINT_STATS_INFO"},{"location":"G-Codes.html#probe","text":"I seguenti comandi sono disponibili quando \u00e8 abilitata una sezione di configurazione della sonda o una sezione di configurazione di bltouch (consultare anche la guida alla calibrazione della sonda ).","title":"[probe]"},{"location":"G-Codes.html#sonda","text":"PROBE [PROBE_SPEED=<mm/s>] [LIFT_SPEED=<mm/s>] [SAMPLES=<count>] [SAMPLE_RETRACT_DIST=<mm>] [SAMPLES_TOLERANCE=<mm>] [SAMPLES_TOLERANCE_RETRIES=<count>] [SAMPLES_RESULT=median|average] : Sposta il nozzle verso il basso finch\u00e9 la sonda non scatta. Se viene fornito uno qualsiasi dei parametri opzionali, sovrascrive l'impostazione equivalente nella sezione probe config section .","title":"sonda"},{"location":"G-Codes.html#query_probe","text":"QUERY_PROBE : Riporta lo stato corrente della sonda (\"triggered\" o \"open\").","title":"QUERY_PROBE"},{"location":"G-Codes.html#probe_accuracy","text":"PROBE_ACCURACY [PROBE_SPEED=<mm/s>] [SAMPLES=<count>] [SAMPLE_RETRACT_DIST=<mm>] : Calcola la deviazione massima, minima, media, mediana e standard di pi\u00f9 campionamentidella sonda. Per impostazione predefinita, vengono presi 10 CAMPIONI. In caso contrario, i parametri opzionali sono impostati per default sulla loro impostazione equivalente nella sezione di configurazione della sonda.","title":"PROBE_ACCURACY"},{"location":"G-Codes.html#probe_calibrate","text":"PROBE_CALIBRATE [SPEED=<speed>] [<probe_parameter>=<value>] : Eseguire uno script di aiuto utile per calibrare l'offset z della sonda. Vedere il comando PROBE per i dettagli sui parametri opzionali della sonda. Vedere il comando MANUAL_PROBE per i dettagli del parametro SPEED e sui comandi aggiuntivi disponibili mentre lo strumento \u00e8 attivo. Nota che il comando PROBE_CALIBRATE utilizza la variabile di velocit\u00e0 per spostarsi in direzione XY e Z.","title":"PROBE_CALIBRATE"},{"location":"G-Codes.html#z_offset_apply_probe","text":"Z_OFFSET_APPLY_PROBE : prende l'offset Z Gcode corrente (aka, babystepping) e lo sottrae dallo z_offset della sonda. Questo per prendere un valore di babystep utilizzato di frequente e \"renderlo permanente\". Richiede un SAVE_CONFIG per avere effetto.","title":"Z_OFFSET_APPLY_PROBE"},{"location":"G-Codes.html#query_adc","text":"Il modulo query_adc viene caricato automaticamente.","title":"[query_adc]"},{"location":"G-Codes.html#query_adc_1","text":"QUERY_ADC [NAME=<config_name>] [PULLUP=<value>] : Riporta l'ultimo valore analogico ricevuto per un pin analogico configurato. Se NAME non viene fornito, viene riportato l'elenco dei nomi dei convertitori adc disponibili. Se viene fornito PULLUP (come valore in Ohm), viene riportato il valore analogico grezzo insieme alla resistenza equivalente dato quel pullup specificato.","title":"QUERY_ADC"},{"location":"G-Codes.html#query_endstops","text":"Il modulo query_endstops viene caricato automaticamente. I seguenti comandi G-Code standard sono attualmente disponibili, ma non \u00e8 consigliabile utilizzarli: Ottieni lo stato del finecorsa: M119 (usa invece QUERY_ENDSTOPS.)","title":"[query_endstops]"},{"location":"G-Codes.html#query_endstops_1","text":"QUERY_ENDSTOPS : Rilevare i finecorsa degli assi e segnala se sono \"attivate\" o in uno stato \"aperto\". Questo comando viene in genere utilizzato per verificare che un finecorsa funzioni correttamente.","title":"QUERY_ENDSTOPS"},{"location":"G-Codes.html#resonance_tester","text":"I seguenti comandi sono disponibili quando una sezione di configurazione di tester_risonanza \u00e8 abilitata (consultare anche la guida alle risonanze di misurazione ).","title":"[resonance_tester]"},{"location":"G-Codes.html#measure_axes_noise","text":"MEASURE_AXES_NOISE : misura ed riporta il rumore per tutti gli assi di tutti i chip dell'accelerometro abilitati.","title":"MEASURE_AXES_NOISE"},{"location":"G-Codes.html#test_resonances","text":"TEST_RESONANCES AXIS=<asse> OUTPUT=<risonanze,dati_grezzi> [NAME=<nome>] [FREQ_START=<freq_min>] [FREQ_END=<freq_max>] [HZ_PER_SEC=<hz_per_sec>] [CHIPS=<adxl345_chip_name>] [ POINT=x,y,z] [INPUT_SHAPING=[<0:1>]] : esegue il test di risonanza in tutti i punti sonda configurati per l'\"asse\" richiesto e misura l'accelerazione utilizzando i chip dell'accelerometro configurati per il rispettivo asse. \"asse\" pu\u00f2 essere X o Y, oppure specificare una direzione arbitraria come AXIS=dx,dy , dove dx e dy sono numeri in virgola mobile che definiscono un vettore di direzione (es. AXIS=X , AXIS=Y , o AXIS=1,-1 per definire una direzione diagonale). Nota che AXIS=dx,dy e AXIS=-dx,-dy sono equivalenti. adxl345_chip_name pu\u00f2 essere uno o pi\u00f9 chip adxl345 configurati, delimitati da virgole, ad esempio CHIPS=\"adxl345, adxl345 rpi\" . Nota che adxl345 pu\u00f2 essere omesso dai chip adxl345 denominati. Se POINT \u00e8 specificato, sovrascriver\u00e0 i punti configurati in [resonance_tester] . Se INPUT_SHAPING=0 o non impostato (predefinito), disabilita l'input shaping per il test di risonanza, perch\u00e9 non \u00e8 valido eseguire il test di risonanza con input shaper abilitato. Il parametro OUTPUT \u00e8 un elenco separato da virgole di cui verranno scritti gli output. Se viene richiesto raw_data , i dati grezzi dell'accelerometro vengono scritti in un file o in una serie di file /tmp/raw_data_<asse>_[<nome_chip>_][<punto>_]<nome>.csv con ( <punto>_ parte del nome generata solo se \u00e8 configurato pi\u00f9 di 1 punto sonda o \u00e8 specificato PUNTO). Se viene specificato resonances , la risposta in frequenza viene calcolata (su tutti i punti sonda) e scritta nel file /tmp/resonances_<asse>_<nome>.csv . Se non \u00e8 impostato, OUTPUT \u00e8 impostato su risonanze e NAME \u00e8 impostato sull'ora corrente nel formato \"AAAAMMGG_HHMMSS\".","title":"TEST_RESONANCES"},{"location":"G-Codes.html#shaper_calibrate","text":"SHAPER_CALIBRATE [AXIS=<asse>] [NAME=<nome>] [FREQ_START=<freq_min>] [FREQ_END=<freq_max>] [HZ_PER_SEC=<hz_per_sec>] [MAX_SMOOTHING=<livellamento_max>] : simile a TEST_RESONANCES , esegue il test di risonanza come configurato e cerca di trovare i parametri ottimali di input shaper per l'asse richiesto (o entrambi gli assi X e Y se il parametro AXIS non \u00e8 impostato). Se MAX_SMOOTHING non \u00e8 impostato, il suo valore viene preso dalla sezione [resonance_tester] , con l'impostazione predefinita non impostata. Per ulteriori informazioni sull'uso di questa funzione, vedere il Max smoothing della guida alla misurazione delle risonanze. I risultati dell'ottimizzazione vengono stampati sulla console e le risposte in frequenza e i diversi valori degli shaper di input vengono scritti in uno o pi\u00f9 file CSV /tmp/calibration_data_<asse>_<nome>.csv . A meno che non sia specificato, NAME imposta l'ora corrente nel formato \"AAAAMMGG_HHMMSS\". Nota che i parametri di input shaper suggeriti possono essere mantenuti nella configurazione eseguendo il comando SAVE_CONFIG .","title":"SHAPER_CALIBRATE"},{"location":"G-Codes.html#respond","text":"I seguenti comandi G-Code standard sono disponibili quando la sezione di configurazione di risposta \u00e8 abilitata: M118 <messaggio> : fa eco al messaggio preceduto dal prefisso predefinito configurato (o echo: se non \u00e8 configurato alcun prefisso). Sono inoltre disponibili i seguenti comandi aggiuntivi.","title":"[respond]"},{"location":"G-Codes.html#respond_1","text":"RESPOND MSG=\"<message>\" : echo il messaggio preceduto dal prefisso predefinito configurato (o echo: se non \u00e8 configurato alcun prefisso). RESPOND TYPE=echo MSG=\"<message>\" : echo del messaggio preceduto da echo: . RESPOND TYPE=echo_no_space MSG=\"<messaggio>\" : fa eco al messaggio preceduto da echo: senza uno spazio tra prefisso e messaggio, utile per la compatibilit\u00e0 con alcuni plugin di octoprint che prevedono una formattazione molto specifica. RESPOND TYPE=command MSG=\"<message>\" : echo il messaggio preceduto da // . OctoPrint pu\u00f2 essere configurato per rispondere a questi messaggi (ad es. RESPOND TYPE=command MSG=action:pause ). RESPOND TYPE=error MSG=\"<messaggio>\" : fa eco al messaggio preceduto da !! . RESPOND PREFIX=<prefix> MSG=\"<message>\" : echo il messaggio preceduto da <prefix> . (Il parametro PREFIX avr\u00e0 la priorit\u00e0 sul parametro TYPE )","title":"RESPOND"},{"location":"G-Codes.html#save_variables","text":"Il comando seguente \u00e8 abilitato se \u00e8 stata abilitata una sezione di configurazione save_variables .","title":"[save_variables]"},{"location":"G-Codes.html#save_variable","text":"SAVE_VARIABLE VARIABLE=<nome> VALUE=<valore> : salva la variabile su disco in modo che possa essere utilizzata tra i riavvii. Tutte le variabili memorizzate vengono caricate nel dict printer.save_variables.variables all'avvio e possono essere utilizzate nelle macro gcode. Il VALUE fornito viene analizzato come un valore letterale Python.","title":"SAVE_VARIABLE"},{"location":"G-Codes.html#screws_tilt_adjust","text":"I seguenti comandi sono disponibili quando la sezione di configurazione viti_tilt_adjust \u00e8 abilitata (consultare anche la manual level guide ).","title":"[screws_tilt_adjust]"},{"location":"G-Codes.html#screws_tilt_calculate","text":"SCREWS_TILT_CALCULATE [DIRECTION=CW|CCW] [MAX_DEVIATION=<value>] [<probe_parameter>=<value>] : Questo comando richiamer\u00e0 lo strumento di regolazione delle viti del piatto. Comander\u00e0 l'ugello in diverse posizioni (come definito nel file di configurazione) sondando l'altezza z e calcoler\u00e0 il numero di giri della manopola per regolare il livello del piatto. Se si specifica DIRECTION, le rotazioni della manopola saranno tutte nella stessa direzione, in senso orario (CW) o in senso antiorario (CCW). Vedere il comando PROBE per i dettagli sui parametri della sonda opzionali. IMPORTANTE: DEVI sempre eseguire un G28 prima di utilizzare questo comando. Se viene specificato MAX_DEVIATION, il comando generer\u00e0 un errore gcode se qualsiasi differenza nell'altezza della vite rispetto all'altezza della vite di base \u00e8 maggiore del valore fornito.","title":"SCREWS_TILT_CALCULATE"},{"location":"G-Codes.html#sdcard_loop","text":"Quando la sezione di configurazione sdcard_loop \u00e8 abilitata, sono disponibili i seguenti comandi estesi.","title":"[sdcard_loop]"},{"location":"G-Codes.html#sdcard_loop_begin","text":"SDCARD_LOOP_BEGIN COUNT=<count> : inizia una sezione in loop nella stampa SD. Un conteggio pari a 0 indica che la sezione deve essere ripetuta indefinitamente.","title":"SDCARD_LOOP_BEGIN"},{"location":"G-Codes.html#sdcard_loop_end","text":"SDCARD_LOOP_END : termina una sezione in loop nella stampa SD.","title":"SDCARD_LOOP_END"},{"location":"G-Codes.html#sdcard_loop_desist","text":"SDCARD_LOOP_DESIST : completa i loop esistenti senza ulteriori iterazioni.","title":"SDCARD_LOOP_DESIST"},{"location":"G-Codes.html#servo","text":"I seguenti comandi sono disponibili quando una sezione di configurazione servo \u00e8 abilitata.","title":"[servo]"},{"location":"G-Codes.html#set_servo","text":"SET_SERVO SERVO=nome_config [ANGLE=<gradi> | WIDTH=<secondi>] : Imposta la posizione del servo sull'angolo dato (in gradi) o sulla larghezza dell'impulso (in secondi). Usa WIDTH=0 per disabilitare l'uscita servo.","title":"SET_SERVO"},{"location":"G-Codes.html#skew_correction","text":"I seguenti comandi sono disponibili quando \u00e8 abilitata la sezione config_correzione_asimmetria (consultare anche la guida Correzione_asimmetria ).","title":"[skew_correction]"},{"location":"G-Codes.html#set_skew","text":"SET_SKEW [XY=<ac_length,bd_length,ad_length>] [XZ=<ac,bd,ad>] [YZ=<ac,bd,ad>] [CLEAR=<0|1>] : Configura il modulo [correzione_inclinazione ] con misure (in mm) tratte da una stampa di calibrazione. Si possono inserire misure per qualsiasi combinazione di piani, i piani non inseriti manterranno il loro valore attuale. Se viene immesso CLEAR=1 , tutta la correzione dell'inclinazione sar\u00e0 disabilitata.","title":"SET_SKEW"},{"location":"G-Codes.html#get_current_skew","text":"GET_CURRENT_SKEW : Riporta l'inclinazione corrente della stampante per ciascun piano sia in radianti che in gradi. L'inclinazione viene calcolata in base ai parametri forniti tramite il gcode SET_SKEW .","title":"GET_CURRENT_SKEW"},{"location":"G-Codes.html#calc_measured_skew","text":"CALC_MEASURED_SKEW [AC=<ac_length>] [BD=<bd_length>] [AD=<ad_length>] : calcola e riporta l'inclinazione (in radianti e gradi) in base a una stampa di test misurata. Questo pu\u00f2 essere utile per determinare l'inclinazione corrente della stampante dopo che \u00e8 stata applicata la correzione. Pu\u00f2 anche essere utile prima di applicare la correzione per determinare se \u00e8 necessaria la correzione dell'inclinazione. Vedere Correzione inclinazione per i dettagli su oggetti e misurazioni di calibrazione inclinazione.","title":"CALC_MEASURED_SKEW"},{"location":"G-Codes.html#skew_profile","text":"SKEW_PROFILE [LOAD=<nome>] [SAVE=<nome>] [REMOVE=<nome>] : Gestione del profilo per correzione_inclinazione. LOAD ripristiner\u00e0 lo stato di inclinazione dal profilo corrispondente al nome fornito. SAVE salver\u00e0 lo stato di inclinazione corrente in un profilo che corrisponde al nome fornito. REMOVE eliminer\u00e0 il profilo corrispondente al nome fornito dalla memoria persistente. Si noti che dopo aver eseguito le operazioni SAVE o REMOVE \u00e8 necessario eseguire il gcode SAVE_CONFIG per rendere permanenti le modifiche alla memoria persistente.","title":"SKEW_PROFILE"},{"location":"G-Codes.html#smart_effector","text":"Sono disponibili diversi comandi quando una sezione di configurazione smart_effector \u00e8 abilitata. Assicurati di controllare la documentazione ufficiale per Smart Effector su Duet3D Wiki prima di modificare i parametri di Smart Effector. Controllare anche la guida alla calibrazione della sonda .","title":"[smart_effector]"},{"location":"G-Codes.html#set_smart_effector","text":"SET_SMART_EFFECTOR [SENSITIVITY=<sensibilit\u00e0>] [ACCEL=<accel>] [RECOVERY_TIME=<tempo>] : imposta i parametri di Smart Effector. Quando viene specificato SENSITIVITY , il rispettivo valore viene scritto nella EEPROM dello SmartEffector (richiede che sia fornito control_pin ). I valori di <sensibilit\u00e0> accettabili sono 0..255, il valore predefinito \u00e8 50. Valori inferiori richiedono una minore forza di contatto dell'ugello per attivarsi (ma esiste un rischio maggiore di falso trigger a causa delle vibrazioni durante la tastatura) e valori pi\u00f9 alti riducono il falso trigger (ma richiede una maggiore forza di contatto per attivarsi). Poich\u00e9 la sensibilit\u00e0 viene scritta nella EEPROM, viene conservata dopo lo spegnimento e quindi non \u00e8 necessario configurarla ad ogni avvio della stampante. ACCEL e RECOVERY_TIME consentono di sovrascrivere i parametri corrispondenti in fase di esecuzione, vedere la sezione di configurazione di Smart Effector per maggiori informazioni su quei parametri.","title":"SET_SMART_EFFECTOR"},{"location":"G-Codes.html#reset_smart_effector","text":"RESET_SMART_EFFECTOR : Ripristina la sensibilit\u00e0 di Smart Effector alle impostazioni di fabbrica. Richiede che il relativo control_pin sia fornito nella sezione di configurazione.","title":"RESET_SMART_EFFECTOR"},{"location":"G-Codes.html#stepper_enable","text":"Il modulo stepper_enable viene caricato automaticamente.","title":"[stepper_enable]"},{"location":"G-Codes.html#set_stepper_enable","text":"SET_STEPPER_ENABLE STEPPER=<nome_config> ENABLE=[0|1] : Abilita o disabilita solo lo stepper dato. Questo \u00e8 uno strumento diagnostico e di debug e deve essere utilizzato con cautela. La disabilitazione di un motore dell'asse non ripristina le informazioni di homing. Lo spostamento manuale di uno stepper disabilitato pu\u00f2 causare l'azionamento del motore della macchina al di fuori dei limiti di sicurezza. Ci\u00f2 pu\u00f2 causare danni ai componenti dell'asse, al hotend e alla superficie di stampa.","title":"SET_STEPPER_ENABLE"},{"location":"G-Codes.html#temperature_fan","text":"Il comando seguente \u00e8 disponibile quando una sezione di configurazione della ventola_temperatura \u00e8 abilitata.","title":"[temperature_fan]"},{"location":"G-Codes.html#set_temperature_fan_target","text":"SET_TEMPERATURE_FAN_TARGET temperature_fan=<temperature_fan_name> [target=<target_temperature>] [min_speed=<min_speed>] [max_speed=<max_speed>] : Imposta la temperatura target per una temperature_fan. Se non viene fornito un target, viene impostato sulla temperatura specificata nel file di configurazione. Se le velocit\u00e0 non vengono fornite, non viene applicata alcuna modifica.","title":"SET_TEMPERATURE_FAN_TARGET"},{"location":"G-Codes.html#tmcxxxx","text":"I seguenti comandi sono disponibili quando una qualsiasi delle tmcXXXX config section \u00e8 abilitata.","title":"[tmcXXXX]"},{"location":"G-Codes.html#dump_tmc","text":"DUMP_TMC STEPPER=<nome> : questo comando legger\u00e0 i registri del driver TMC e ne riporter\u00e0 i valori.","title":"DUMP_TMC"},{"location":"G-Codes.html#init_tmc","text":"INIT_TMC STEPPER=<nome> : questo comando inizializzer\u00e0 i registri TMC. Necessario per riattivare il driver se l'alimentazione al chip viene spenta e poi riaccesa.","title":"INIT_TMC"},{"location":"G-Codes.html#set_tmc_current","text":"SET_TMC_CURRENT STEPPER=<nome> CURRENT=<amps> HOLDCURRENT=<amps> : Questo regoler\u00e0 le correnti di funzionamento e di mantenimento del driver TMC. (HOLDCURRENT non \u00e8 applicabile ai driver tmc2660.)","title":"SET_TMC_CURRENT"},{"location":"G-Codes.html#set_tmc_field","text":"SET_TMC_FIELD STEPPER=<nome> FIELD=<campo> VALUE=<valore> : Questo alterer\u00e0 il valore del campo del registro specificato del driver TMC. Questo comando \u00e8 destinato alla diagnostica e al debug di basso livello solo perch\u00e9 la modifica dei campi durante l'esecuzione pu\u00f2 causare comportamenti indesiderati e potenzialmente pericolosi della stampante. Le modifiche permanenti dovrebbero invece essere apportate utilizzando il file di configurazione della stampante. Non vengono eseguiti controlli di integrit\u00e0 per i valori indicati.","title":"SET_TMC_FIELD"},{"location":"G-Codes.html#toolhead","text":"Il modulo toolhead viene caricato automaticamente.","title":"[toolhead]"},{"location":"G-Codes.html#set_velocity_limit","text":"SET_VELOCITY_LIMIT [VELOCITY=<valore>] [ACCEL=<valore>] [ACCEL_TO_DECEL=<valore>] [SQUARE_CORNER_VELOCITY=<valore>] : Modifica i limiti di velocit\u00e0 della stampante.","title":"SET_VELOCITY_LIMIT"},{"location":"G-Codes.html#tuning_tower","text":"Il modulo tuning_tower viene caricato automaticamente.","title":"[tuning_tower]"},{"location":"G-Codes.html#tuning_tower_1","text":"TUNING_TOWER COMMAND=<comando> PARAMETER=<nome> START=<valore> [SKIP=<valore>] [FACTOR=<valore> [BAND=<valore>]] | [STEP_DELTA=<valore> STEP_HEIGHT=<valore>] : Uno strumento per regolare un parametro su ciascuna altezza Z durante una stampa. Lo strumento eseguir\u00e0 il dato COMMAND con il dato PARAMETER assegnato a un valore che varia con Z secondo una formula. Usa FACTOR se utilizzerai un righello o calibri per misurare l'altezza Z del valore ottimale, o STEP_DELTA e STEP_HEIGHT se il modello della torre di regolazione ha bande di valori discreti come \u00e8 comune con le torri della temperatura. Se viene specificato SKIP=<valore> , il processo di ottimizzazione non inizia finch\u00e9 non viene raggiunta l'altezza Z <valore> , e al di sotto di essa il valore sar\u00e0 impostato su START ; in questo caso, la z_height usata nelle formule seguenti \u00e8 in realt\u00e0 max(z - skip, 0) . Ci sono tre possibili combinazioni di opzioni: FACTOR : Il valore cambia a una velocit\u00e0 di factor per millimetro. La formula utilizzata \u00e8: valore = inizio + fattore * z_altezza . \u00c8 possibile inserire l'altezza Z ottimale direttamente nella formula per determinare il valore del parametro ottimale. FACTOR e BAND : il valore cambia a una velocit\u00e0 media di factor per millimetro, ma in bande discrete in cui la regolazione verr\u00e0 effettuata solo ogni BAND millimetri di altezza Z. La formula utilizzata \u00e8: value = start + factor * ((floor(z_height / band) + .5) * band) . STEP_DELTA e STEP_HEIGHT : il valore cambia di STEP_DELTA ogni STEP_HEIGHT millimetri. La formula utilizzata \u00e8: value = start + step_delta * floor(z_height / step_height) . Puoi semplicemente contare le bande o leggere le etichette della torre di tuning per determinare il valore ottimale.","title":"TUNING_TOWER"},{"location":"G-Codes.html#virtual_sdcard","text":"Klipper supporta i seguenti comandi G-Code standard se la sezione di configurazione di virtual_sdcard \u00e8 abilitata: Elenco scheda SD: M20 Inizializza scheda SD: M21 Selezionare il file SD: M23 <nomefile> Avvia/riprendi la stampa SD: M24 Sospendi la stampa SD: M25 Impostare la posizione SD: M26 S<offset> Riporta lo stato di stampa SD: M27 Inoltre, quando la sezione di configurazione \"virtual_sdcard\" \u00e8 abilitata, sono disponibili i seguenti comandi estesi.","title":"[virtual_sdcard]"},{"location":"G-Codes.html#sdcard_print_file","text":"SDCARD_PRINT_FILE FILENAME=<nomefile> : carica un file e avvia la stampa SD.","title":"SDCARD_PRINT_FILE"},{"location":"G-Codes.html#sdcard_reset_file","text":"SDCARD_RESET_FILE : Scarica il file e cancella lo stato SD.","title":"SDCARD_RESET_FILE"},{"location":"G-Codes.html#z_thermal_adjust","text":"I seguenti comandi sono disponibili quando la sezione z_thermal_adjust config \u00e8 abilitata.","title":"[z_thermal_adjust]"},{"location":"G-Codes.html#set_z_thermal_adjust","text":"SET_Z_THERMAL_ADJUST [ENABLE=<0:1>] [TEMP_COEFF=<valore>] [REF_TEMP=<valore>] : Abilita o disabilita la regolazione termica Z con ENABLE . La disabilitazione non rimuove alcuna regolazione gi\u00e0 applicata, ma congela il valore di regolazione corrente - questo impedisce il movimento Z verso il basso potenzialmente pericoloso. La riattivazione pu\u00f2 potenzialmente causare il movimento dell'utensile verso l'alto quando la regolazione viene aggiornata e applicata. TEMP_COEFF consente la regolazione in tempo reale del coefficiente di temperatura di regolazione (cio\u00e8 il parametro di configurazione TEMP_COEFF ). I valori TEMP_COEFF non vengono salvati nella configurazione. REF_TEMP sovrascrive manualmente la temperatura di riferimento tipicamente impostata durante l'homing (per l'uso, ad esempio, in routine di homing non standard) - verr\u00e0 ripristinata automaticamente durante l'homing.","title":"SET_Z_THERMAL_ADJUST"},{"location":"G-Codes.html#z_tilt","text":"I seguenti comandi sono disponibili quando la sezione z_tilt config \u00e8 abilitata.","title":"[z_tilt]"},{"location":"G-Codes.html#z_tilt_adjust","text":"Z_TILT_ADJUST [<probe_parameter>=<value>] : questo comando sonder\u00e0 i punti specificati nella configurazione e quindi apporter\u00e0 regolazioni indipendenti a ciascuno Z stepper per compensare l'inclinazione. Vedere il comando PROBE per i dettagli sui parametri opzionali della sonda.","title":"Z_TILT_ADJUST"},{"location":"Hall_Filament_Width_Sensor.html","text":"Sensore di Hall per larghezza del filamento \u00b6 Questo documento descrive il modulo host del sensore di larghezza del filamento Filament Width Sensor. L'hardware utilizzato per lo sviluppo di questo modulo host si basa su due sensori lineari Hall (ad esempio ss49e). I sensori nel corpo si trovano ai lati opposti. Principio di funzionamento: due sensori Hall funzionano in modalit\u00e0 differenziale, la stessa deriva di temperatura per il sensore. Non \u00e8 necessaria una speciale compensazione della temperatura. Puoi trovare i design su Thingiverse , un video di assemblaggio \u00e8 disponibile anche su Youtube Per utilizzare il sensore di larghezza del filamento Hall, leggere Config Reference e G-Code documentation . Come funziona? \u00b6 Il sensore genera due uscite analogiche in base alla larghezza del filamento calcolata. La somma della tensione di uscita \u00e8 sempre uguale alla larghezza del filamento rilevata. Il modulo host monitora le variazioni di tensione e regola il moltiplicatore di estrusione. Uso il connettore aux2 su una scheda simile a rampe analog11 e analog12 pin. Puoi usare diversi pin e diverse schede. Modello per variabili di menu \u00b6 [menu __main __filament __width_current] type: command enable: {'hall_filament_width_sensor' in printer} name: Dia: {'%.2F' % printer.hall_filament_width_sensor.Diameter} index: 0 [menu __main __filament __raw_width_current] type: command enable: {'hall_filament_width_sensor' in printer} name: Raw: {'%4.0F' % printer.hall_filament_width_sensor.Raw} index: 1 Procedura di calibrazione \u00b6 Per ottenere il valore grezzo del sensore \u00e8 possibile utilizzare la voce di menu o il comando QUERY_RAW_FILAMENT_WIDTH nel terminale. Inserire la prima barra di calibrazione (dimensione 1,5 mm) ottenere il primo valore grezzo del sensore Inserire la seconda barra di calibrazione (dimensione 2,0 mm) per ottenere il secondo valore grezzo del sensore Salva i valori grezzi del sensore nel parametro di configurazione Raw_dia1 e Raw_dia2 Come abilitare il sensore \u00b6 Per impostazione predefinita, il sensore \u00e8 disabilitato all'accensione. Per abilitare il sensore, emettere il comando ENABLE_FILAMENT_WIDTH_SENSOR o impostare il parametro enable su true . Registrazione \u00b6 Per impostazione predefinita, la registrazione del diametro \u00e8 disabilitata all'accensione. Emettere il comando ENABLE_FILAMENT_WIDTH_LOG per avviare la registrazione ed emettere il comando DISABLE_FILAMENT_WIDTH_LOG per interrompere la registrazione. Per abilitare la registrazione all'accensione, impostare il parametro logging su true . Il diametro del filamento viene registrato con un intervallo di misurazione (10 mm per impostazione predefinita).","title":"Sensore di Hall per larghezza del filamento"},{"location":"Hall_Filament_Width_Sensor.html#sensore-di-hall-per-larghezza-del-filamento","text":"Questo documento descrive il modulo host del sensore di larghezza del filamento Filament Width Sensor. L'hardware utilizzato per lo sviluppo di questo modulo host si basa su due sensori lineari Hall (ad esempio ss49e). I sensori nel corpo si trovano ai lati opposti. Principio di funzionamento: due sensori Hall funzionano in modalit\u00e0 differenziale, la stessa deriva di temperatura per il sensore. Non \u00e8 necessaria una speciale compensazione della temperatura. Puoi trovare i design su Thingiverse , un video di assemblaggio \u00e8 disponibile anche su Youtube Per utilizzare il sensore di larghezza del filamento Hall, leggere Config Reference e G-Code documentation .","title":"Sensore di Hall per larghezza del filamento"},{"location":"Hall_Filament_Width_Sensor.html#come-funziona","text":"Il sensore genera due uscite analogiche in base alla larghezza del filamento calcolata. La somma della tensione di uscita \u00e8 sempre uguale alla larghezza del filamento rilevata. Il modulo host monitora le variazioni di tensione e regola il moltiplicatore di estrusione. Uso il connettore aux2 su una scheda simile a rampe analog11 e analog12 pin. Puoi usare diversi pin e diverse schede.","title":"Come funziona?"},{"location":"Hall_Filament_Width_Sensor.html#modello-per-variabili-di-menu","text":"[menu __main __filament __width_current] type: command enable: {'hall_filament_width_sensor' in printer} name: Dia: {'%.2F' % printer.hall_filament_width_sensor.Diameter} index: 0 [menu __main __filament __raw_width_current] type: command enable: {'hall_filament_width_sensor' in printer} name: Raw: {'%4.0F' % printer.hall_filament_width_sensor.Raw} index: 1","title":"Modello per variabili di menu"},{"location":"Hall_Filament_Width_Sensor.html#procedura-di-calibrazione","text":"Per ottenere il valore grezzo del sensore \u00e8 possibile utilizzare la voce di menu o il comando QUERY_RAW_FILAMENT_WIDTH nel terminale. Inserire la prima barra di calibrazione (dimensione 1,5 mm) ottenere il primo valore grezzo del sensore Inserire la seconda barra di calibrazione (dimensione 2,0 mm) per ottenere il secondo valore grezzo del sensore Salva i valori grezzi del sensore nel parametro di configurazione Raw_dia1 e Raw_dia2","title":"Procedura di calibrazione"},{"location":"Hall_Filament_Width_Sensor.html#come-abilitare-il-sensore","text":"Per impostazione predefinita, il sensore \u00e8 disabilitato all'accensione. Per abilitare il sensore, emettere il comando ENABLE_FILAMENT_WIDTH_SENSOR o impostare il parametro enable su true .","title":"Come abilitare il sensore"},{"location":"Hall_Filament_Width_Sensor.html#registrazione","text":"Per impostazione predefinita, la registrazione del diametro \u00e8 disabilitata all'accensione. Emettere il comando ENABLE_FILAMENT_WIDTH_LOG per avviare la registrazione ed emettere il comando DISABLE_FILAMENT_WIDTH_LOG per interrompere la registrazione. Per abilitare la registrazione all'accensione, impostare il parametro logging su true . Il diametro del filamento viene registrato con un intervallo di misurazione (10 mm per impostazione predefinita).","title":"Registrazione"},{"location":"Installation.html","text":"Installazione \u00b6 Queste istruzioni partono dal presupposto che Klipper girer\u00e0 su un Raspberry Pi con OctoPrint. \u00c8 consigliato l'utilizzo di un Raspberry Pi 2, 3 o 4 (vedi la FAQ per utilizzare un hardware diverso). Ottenere un file di configurazione di Klipper \u00b6 La maggior parte delle impostazioni di Klipper sono determinate da un \"file di configurazione della stampante\" che verr\u00e0 archiviato sul Raspberry Pi. Un file di configurazione appropriato pu\u00f2 spesso essere trovato cercando in Klipper directory config un file che inizia con un prefisso \"printer-\" che corrisponde alla stampante di destinazione. Il file di configurazione di Klipper contiene informazioni tecniche sulla stampante che saranno necessarie durante l'installazione. Se non c'\u00e8 un file di configurazione della stampante appropriato nella directory di configurazione di Klipper, prova a cercare nel sito web del produttore della stampante per vedere se hanno un file di configurazione di Klipper appropriato. Se non \u00e8 possibile trovare alcun file di configurazione per la stampante, ma si conosce il tipo di scheda di controllo della stampante, cercare un file di configurazione appropriato che inizi con un prefisso \"generico-\". Questi file di esempio della scheda della stampante dovrebbero consentire di completare correttamente l'installazione iniziale, ma richiederanno alcune personalizzazioni per ottenere la funzionalit\u00e0 completa della stampante. \u00c8 anche possibile definire da zero una nuova configurazione della stampante. Tuttavia, ci\u00f2 richiede una conoscenza tecnica significativa sulla stampante e la sua elettronica. Si consiglia alla maggior parte degli utenti di iniziare con un file di configurazione appropriato. Se si crea un nuovo file di configurazione della stampante personalizzato, iniziare con l'esempio pi\u00f9 vicino file di configurazione e utilizzare Klipper riferimento alla configurazione per ulteriori informazioni. Preparazione dell'immagine del sistema operativo \u00b6 Iniziate installando OctoPi sul computer Raspberry Pi. Usa OctoPi v0.17.0 o successivo - vedi OctoPi releases per informazioni sulla versione. Si dovrebbe verificare che OctoPi si avvii e che il server web OctoPrint funzioni. Dopo essersi collegati alla pagina web OctoPrint, segui la richiesta di aggiornare OctoPrint alla v1.4.2 o successiva. Dopo aver installato OctoPi ed aver aggiornato OctoPrint all'ultima versione sar\u00e0 necessario loggarsi via ssh sul Raspberry (o altra macchina scelta per far girare klipper) per eseguire una manciata di comandi. Se stai utilizzando un sistema Linux o MacOS desktop, il programma \"ssh\" potrebbe gi\u00e0 essere installato sul tuo sistema. Esistono vari client ssh disponibili (ad esempio PuTTY ). Usa il programma ssh per connetterti al Raspberry Pi (ssh pi@octopi -- la password \u00e8 \"raspberry\") ed esegui questi comandi: git clone https://github.com/Klipper3d/klipper ./klipper/scripts/install-octopi.sh Questo scaricher\u00e0 Klipper, installer\u00e0 alcune dipendenze, imposter\u00e0 Klipper per essere eseguito all'avvio del sistema e avvier\u00f2 il programma host Klipper. Sar\u00e0 necessario che il Raspberry abbia accesso ad internet e richeder\u00e0 alcuni minuti. Compilare il firmware e flashare il microcontrollore \u00b6 Per compilare il firmware per il microcontrollore, iniziamo lanciando questi comandi sul Raspberry: cd ~/klipper/ make menuconfig I commenti nella parte superiore del file di configurazione della stampante dovrebbero descrivere le impostazioni che devono essere impostate durante \"make menuconfig\". Apri il file in un browser web o in un editor di testo e cerca queste istruzioni nella parte superiore del file. Una volta configurate le impostazioni \"menuconfig\" appropriate, premere \"Q\" per uscire, quindi \"Y\" per salvare. Quindi esegui: make Se i commenti nella parte superiore del file di configurazione della stampante descrivono i passaggi personalizzati per il \"flash\" dell'immagine finale sulla scheda di controllo della stampante, segui questi passaggi e poi procedi con configurazione OctoPrint . In caso contrario, i seguenti passaggi vengono spesso utilizzati per eseguire il \"flash\" della scheda di controllo della stampante. Innanzitutto \u00e8 necessario determinare la porta seriale collegata al microcontrollore. Esegui quanto segue: ls /dev/serial/by-id/* Dovrebbe venire riportato qualcosa di simile a questo: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 \u00c8 abbastanza comune che ogni stampante 3D abbia il suo nome univoco elencato come porta seriale. Questo nome sar\u00e0 utilizzato quando flasheremo il microcontrollore. \u00c8 possibile che ci possano essere pi\u00f9 righe nell'elenco sopraccitato, se \u00e8 cos\u00ec seleziona la riga cosrrispondente al microcontrollore (vedi le FAQ per maggiori informazioni). Per i microcontrollori pi\u00f9 comuni, il firmware pu\u00f2 essere flashato con comandi tipo: sudo service klipper stop make flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 sudo service klipper start Assicurati di mettere al posto di FLASH_DEVICE il nome della porta seriale associato alla stampante. Quando flashi il firmware per la prima volta verifica che OctoPrint non sia connesso alla stampante (dall'interfaccia di OctoPrint, nella sezione \"Connection\", clicca \"Disconnect\"). Configurare OctoPrint per usare Klipper \u00b6 Il sistema OctoPrint deve essere configurato per comunicare con il sistema Klipper. Loggati su OctoPrint e confogura queste parti: Naviga nella scheda Impostazioni (la chiave inglese in cima alla pagina). Dentro \"Serial Connection\", \"Additional serial ports\" aggiungi \"/tmp/printer\". Poi fai \"Save\". Vai nella scheda Impostazioni e sotto \"Serial Connection\" cambia la \"Serial Port\" in \"/tmp/printer\". Nella scheda Impostazioni, vai in \"Behavior\" e seleziona l'opzione \"Cancel any ongoing prints but stay connected to the printer\", poi \"Save\". Dalla pagina principale, nella sezione \"Connection\" in alto a sinistra, verifica che il campo \"Serial Port\" sia \"/tmp/printer\" e clicca \"Connect\". Se l'opzione /tmp/printer non \u00e8 visualizzata prova a ricaricare la pagina. Una volta connesso, vai nella scheda \"Terminal\" e scrivi il comando \"status\" (senza virgolette) nella casella per i comandi e clicca \"Send\". La finestra del terminare probabilmente mostrer\u00e0 un messaggio di errore sull'apertura del file config, questo significa che OctoPrint sta comunicando correttamente con Klipper. Possiamo proseguire. Configurare Klipper \u00b6 Il passaggio successivo consiste nel copiare il file di configurazione della stampante sul Raspberry Pi. Probabilmente il modo pi\u00f9 semplice per impostare il file di configurazione di Klipper \u00e8 utilizzare un editor desktop che supporti la modifica dei file sui protocolli \"scp\" e/o \"sftp\". Ci sono strumenti disponibili gratuitamente che supportano questo (ad esempio, Notepad++, WinSCP e Cyberduck). Caricare il file di configurazione della stampante nell'editor e quindi salvarlo come file denominato \"printer.cfg\" nella directory home dell'utente pi (ad esempio, /home/pi/printer.cfg). In alternativa, si pu\u00f2 anche copiare e modificare il file direttamente sul Raspberry Pi tramite ssh. Potrebbe essere simile al seguente (assicurati di aggiornare il comando per utilizzare il nome file di configurazione della stampante appropriato): cp ~/klipper/config/example-cartesian.cfg ~/printer.cfg nano ~/printer.cfg \u00c8 comune che ogni stampante abbia il proprio nome univoco per il microcontrollore. Il nome potrebbe cambiare dopo aver eseguito il flashing di Klipper, quindi ripeti questi passaggi anche se erano gi\u00e0 stati eseguiti durante il flashing. Eseguire: ls /dev/serial/by-id/* Dovrebbe venire riportato qualcosa di simile a questo: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 Quindi aggiorna il file di configurazione con il nome univoco. Ad esempio, aggiorna la sezione [mcu] in modo che assomigli a qualcosa di simile a: [mcu] serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 Dopo aver creato e modificato il file sar\u00e0 necessario emettere un comando di \"restart\" nel terminale web di OctoPrint per caricare il file config. Un comando \"status\" segnaler\u00e0 che la stampante \u00e8 pronta se il file di configurazione di Klipper viene letto correttamente e il microcontrollore \u00e8 stato trovato e configurato correttamente. Quando si personalizza il file di configurazione della stampante, non \u00e8 raro che Klipper segnali un errore di configurazione. Se si verifica un errore, apportare le correzioni necessarie al file di configurazione della stampante ed eseguire il \"restart\" finch\u00e9 \"status\" non segnala che la stampante \u00e8 pronta. Klipper riferisce i messaggi di errore tramite il terminale di OctoPrint. Il comando \"status\" pu\u00f2 essere usato per visualizzare nuovamente eventuali messaggi di errore. Lo script di startup di default di Klipper generer\u00e0 un log sotto /tmp/klippy.log , questo fornir\u00e0 informazioni pi\u00f9 dettagliate. Dopo che Klipper ha segnalato che la stampante \u00e8 pronta, vai al config check document per eseguire alcuni controlli di base sulle definizioni nel file di configurazione. Vedere i documentation reference per altre informazioni.","title":"Installazione"},{"location":"Installation.html#installazione","text":"Queste istruzioni partono dal presupposto che Klipper girer\u00e0 su un Raspberry Pi con OctoPrint. \u00c8 consigliato l'utilizzo di un Raspberry Pi 2, 3 o 4 (vedi la FAQ per utilizzare un hardware diverso).","title":"Installazione"},{"location":"Installation.html#ottenere-un-file-di-configurazione-di-klipper","text":"La maggior parte delle impostazioni di Klipper sono determinate da un \"file di configurazione della stampante\" che verr\u00e0 archiviato sul Raspberry Pi. Un file di configurazione appropriato pu\u00f2 spesso essere trovato cercando in Klipper directory config un file che inizia con un prefisso \"printer-\" che corrisponde alla stampante di destinazione. Il file di configurazione di Klipper contiene informazioni tecniche sulla stampante che saranno necessarie durante l'installazione. Se non c'\u00e8 un file di configurazione della stampante appropriato nella directory di configurazione di Klipper, prova a cercare nel sito web del produttore della stampante per vedere se hanno un file di configurazione di Klipper appropriato. Se non \u00e8 possibile trovare alcun file di configurazione per la stampante, ma si conosce il tipo di scheda di controllo della stampante, cercare un file di configurazione appropriato che inizi con un prefisso \"generico-\". Questi file di esempio della scheda della stampante dovrebbero consentire di completare correttamente l'installazione iniziale, ma richiederanno alcune personalizzazioni per ottenere la funzionalit\u00e0 completa della stampante. \u00c8 anche possibile definire da zero una nuova configurazione della stampante. Tuttavia, ci\u00f2 richiede una conoscenza tecnica significativa sulla stampante e la sua elettronica. Si consiglia alla maggior parte degli utenti di iniziare con un file di configurazione appropriato. Se si crea un nuovo file di configurazione della stampante personalizzato, iniziare con l'esempio pi\u00f9 vicino file di configurazione e utilizzare Klipper riferimento alla configurazione per ulteriori informazioni.","title":"Ottenere un file di configurazione di Klipper"},{"location":"Installation.html#preparazione-dellimmagine-del-sistema-operativo","text":"Iniziate installando OctoPi sul computer Raspberry Pi. Usa OctoPi v0.17.0 o successivo - vedi OctoPi releases per informazioni sulla versione. Si dovrebbe verificare che OctoPi si avvii e che il server web OctoPrint funzioni. Dopo essersi collegati alla pagina web OctoPrint, segui la richiesta di aggiornare OctoPrint alla v1.4.2 o successiva. Dopo aver installato OctoPi ed aver aggiornato OctoPrint all'ultima versione sar\u00e0 necessario loggarsi via ssh sul Raspberry (o altra macchina scelta per far girare klipper) per eseguire una manciata di comandi. Se stai utilizzando un sistema Linux o MacOS desktop, il programma \"ssh\" potrebbe gi\u00e0 essere installato sul tuo sistema. Esistono vari client ssh disponibili (ad esempio PuTTY ). Usa il programma ssh per connetterti al Raspberry Pi (ssh pi@octopi -- la password \u00e8 \"raspberry\") ed esegui questi comandi: git clone https://github.com/Klipper3d/klipper ./klipper/scripts/install-octopi.sh Questo scaricher\u00e0 Klipper, installer\u00e0 alcune dipendenze, imposter\u00e0 Klipper per essere eseguito all'avvio del sistema e avvier\u00f2 il programma host Klipper. Sar\u00e0 necessario che il Raspberry abbia accesso ad internet e richeder\u00e0 alcuni minuti.","title":"Preparazione dell'immagine del sistema operativo"},{"location":"Installation.html#compilare-il-firmware-e-flashare-il-microcontrollore","text":"Per compilare il firmware per il microcontrollore, iniziamo lanciando questi comandi sul Raspberry: cd ~/klipper/ make menuconfig I commenti nella parte superiore del file di configurazione della stampante dovrebbero descrivere le impostazioni che devono essere impostate durante \"make menuconfig\". Apri il file in un browser web o in un editor di testo e cerca queste istruzioni nella parte superiore del file. Una volta configurate le impostazioni \"menuconfig\" appropriate, premere \"Q\" per uscire, quindi \"Y\" per salvare. Quindi esegui: make Se i commenti nella parte superiore del file di configurazione della stampante descrivono i passaggi personalizzati per il \"flash\" dell'immagine finale sulla scheda di controllo della stampante, segui questi passaggi e poi procedi con configurazione OctoPrint . In caso contrario, i seguenti passaggi vengono spesso utilizzati per eseguire il \"flash\" della scheda di controllo della stampante. Innanzitutto \u00e8 necessario determinare la porta seriale collegata al microcontrollore. Esegui quanto segue: ls /dev/serial/by-id/* Dovrebbe venire riportato qualcosa di simile a questo: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 \u00c8 abbastanza comune che ogni stampante 3D abbia il suo nome univoco elencato come porta seriale. Questo nome sar\u00e0 utilizzato quando flasheremo il microcontrollore. \u00c8 possibile che ci possano essere pi\u00f9 righe nell'elenco sopraccitato, se \u00e8 cos\u00ec seleziona la riga cosrrispondente al microcontrollore (vedi le FAQ per maggiori informazioni). Per i microcontrollori pi\u00f9 comuni, il firmware pu\u00f2 essere flashato con comandi tipo: sudo service klipper stop make flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 sudo service klipper start Assicurati di mettere al posto di FLASH_DEVICE il nome della porta seriale associato alla stampante. Quando flashi il firmware per la prima volta verifica che OctoPrint non sia connesso alla stampante (dall'interfaccia di OctoPrint, nella sezione \"Connection\", clicca \"Disconnect\").","title":"Compilare il firmware e flashare il microcontrollore"},{"location":"Installation.html#configurare-octoprint-per-usare-klipper","text":"Il sistema OctoPrint deve essere configurato per comunicare con il sistema Klipper. Loggati su OctoPrint e confogura queste parti: Naviga nella scheda Impostazioni (la chiave inglese in cima alla pagina). Dentro \"Serial Connection\", \"Additional serial ports\" aggiungi \"/tmp/printer\". Poi fai \"Save\". Vai nella scheda Impostazioni e sotto \"Serial Connection\" cambia la \"Serial Port\" in \"/tmp/printer\". Nella scheda Impostazioni, vai in \"Behavior\" e seleziona l'opzione \"Cancel any ongoing prints but stay connected to the printer\", poi \"Save\". Dalla pagina principale, nella sezione \"Connection\" in alto a sinistra, verifica che il campo \"Serial Port\" sia \"/tmp/printer\" e clicca \"Connect\". Se l'opzione /tmp/printer non \u00e8 visualizzata prova a ricaricare la pagina. Una volta connesso, vai nella scheda \"Terminal\" e scrivi il comando \"status\" (senza virgolette) nella casella per i comandi e clicca \"Send\". La finestra del terminare probabilmente mostrer\u00e0 un messaggio di errore sull'apertura del file config, questo significa che OctoPrint sta comunicando correttamente con Klipper. Possiamo proseguire.","title":"Configurare OctoPrint per usare Klipper"},{"location":"Installation.html#configurare-klipper","text":"Il passaggio successivo consiste nel copiare il file di configurazione della stampante sul Raspberry Pi. Probabilmente il modo pi\u00f9 semplice per impostare il file di configurazione di Klipper \u00e8 utilizzare un editor desktop che supporti la modifica dei file sui protocolli \"scp\" e/o \"sftp\". Ci sono strumenti disponibili gratuitamente che supportano questo (ad esempio, Notepad++, WinSCP e Cyberduck). Caricare il file di configurazione della stampante nell'editor e quindi salvarlo come file denominato \"printer.cfg\" nella directory home dell'utente pi (ad esempio, /home/pi/printer.cfg). In alternativa, si pu\u00f2 anche copiare e modificare il file direttamente sul Raspberry Pi tramite ssh. Potrebbe essere simile al seguente (assicurati di aggiornare il comando per utilizzare il nome file di configurazione della stampante appropriato): cp ~/klipper/config/example-cartesian.cfg ~/printer.cfg nano ~/printer.cfg \u00c8 comune che ogni stampante abbia il proprio nome univoco per il microcontrollore. Il nome potrebbe cambiare dopo aver eseguito il flashing di Klipper, quindi ripeti questi passaggi anche se erano gi\u00e0 stati eseguiti durante il flashing. Eseguire: ls /dev/serial/by-id/* Dovrebbe venire riportato qualcosa di simile a questo: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 Quindi aggiorna il file di configurazione con il nome univoco. Ad esempio, aggiorna la sezione [mcu] in modo che assomigli a qualcosa di simile a: [mcu] serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 Dopo aver creato e modificato il file sar\u00e0 necessario emettere un comando di \"restart\" nel terminale web di OctoPrint per caricare il file config. Un comando \"status\" segnaler\u00e0 che la stampante \u00e8 pronta se il file di configurazione di Klipper viene letto correttamente e il microcontrollore \u00e8 stato trovato e configurato correttamente. Quando si personalizza il file di configurazione della stampante, non \u00e8 raro che Klipper segnali un errore di configurazione. Se si verifica un errore, apportare le correzioni necessarie al file di configurazione della stampante ed eseguire il \"restart\" finch\u00e9 \"status\" non segnala che la stampante \u00e8 pronta. Klipper riferisce i messaggi di errore tramite il terminale di OctoPrint. Il comando \"status\" pu\u00f2 essere usato per visualizzare nuovamente eventuali messaggi di errore. Lo script di startup di default di Klipper generer\u00e0 un log sotto /tmp/klippy.log , questo fornir\u00e0 informazioni pi\u00f9 dettagliate. Dopo che Klipper ha segnalato che la stampante \u00e8 pronta, vai al config check document per eseguire alcuni controlli di base sulle definizioni nel file di configurazione. Vedere i documentation reference per altre informazioni.","title":"Configurare Klipper"},{"location":"Kinematics.html","text":"Cinematica \u00b6 Questo documento \u00e8 una panoramica su come Klipper implementa la movimentazione del sistema meccanico(la sua cinematica ). Questi contenuti potrebbero interessare sia gli sviluppatori che intendono lacorare sul software Klipper che gli utenti che desiderano comprendere meglio il funzionamento delle proprie macchine. Accelerazione \u00b6 Klipper utilizza uno schema ad accelerazione costrante ogni qualvolta la testa di stampa cambia velocit\u00e0 - la velocit\u00e0 viene gradualmente variata fino a raggiungere la nuova velocit\u00e0 invece di strattonare direttamente alla nuova velocit\u00e0. Klipper mantiene sempre l'accelerazione tra la testa di stampa e la stampa. Il filamento in uscita dall'ugello pu\u00f2 essere piuttosto fragile, rapidi sobbalzi e/o cambi di flusso di estrusione portano a cattiva qualit\u00e0 di stampa e bassa adesione al piano di stampa. Anche quando non viene estruso filamento, se l'ugello si trova allo stesso livello della stampa, un repentino cambio di velocit\u00e0 potrebbe disturbare il filamento appena depositato. Limitare i cambi di velocit\u00e0 della testa di stampa relativamente alla stampa riduce il rischio di rovinare la stampa. \u00c8 anche importante limitare l'accelerazione in modo da evitare che i motori stepper perdano passi e per ridurre le sollecitazioni alla macchina. Klipper limita la coppia su ciascuno stepper mediante la limitazione dell'accelerazione sulla testina di stampa. Imporre l'accelerazione alla testa di stampa ha la conseguenza naturale di limitare la coppia degli stepper che la muovono (l'inverso non \u00e8 sempre vero). Klipper implementa l'accelerazione costante. La formula chiave per l'accelerazione costante \u00e8: velocit\u00e0(tempo) = velocit\u00e0_inizio + accelerazione*tempo Generatore di trapezoide \u00b6 Klipper utilizza un \"generatore di trapezoide\" di tipo tradizionale per modellare il movimento - ogni movimento ha una velocit\u00e0 iniziale, accelera verso la velocit\u00e0 di crociera ad accelerazione costante, prosegue a velocit\u00e0 costante ed infine decelera fino alla velocit\u00e0 finale ad accelerazione costante. Viene detto \"generatore di trapezoide\" perch\u00e9 il diagramma di velocit\u00e0 del movimento sembra un trapezoide. La velocit\u00e0 di crociera \u00e8 sempre maggiore o uguale sia alla velocit\u00e0 iniziale che a quella finale. La fase di accelerazione potrebbe avere durata zero (se la velocit\u00e0 iniziale \u00e8 uguale alla velocit\u00e0 di crociera), la fase di movimento a valocit\u00e0 costante potrebbe avere durata zero (se il movimento inizia a decelerare subito l'accelerazione) e/o la fase di decelerazione potrebbe avere durata zero (se la velocit\u00e0 finale \u00e8 uguale alla velocit\u00e0 di crociera). Look-ahead (Precalcolo) \u00b6 Il sistema di \"look-ahead\" (precalcolo) \u00e8 usato per determinare le velocit\u00e0 nelle giunzioni tra movimenti (cornering speed). Consideriamo questi due movimenti sul piano XY: Nella situazione sopra descritta \u00e8 possibile decelerare completamente dopo il primo movimento e poi accelerare all'inizio del movimento successivo; per\u00f2 questo non \u00e8 un comportamento ideale dato che continue accelerazioni e decelerazioni aumentano il tempo di stampa e continue variazioni nel flusso dell'estrusore peggiorano la qualit\u00e0 di stampa. Per risolvere questo problema, la funzione \"look-ahead\" (precalcolo) accoda i movimenti da eseguire ed analizza gli angoli tra essi per calcolare la velocit\u00e0 da usare nella giunzione tra due movimenti. Se il prossimo movimento \u00e8 all'incirca nella stessa direzione del precedente, la testina di stampa deve rallentare molto poco (se non per nulla). Se per\u00f2 il prossimo movimento forma un angolo acuto (la testina deve praticamente invertire la direzione di marcia), la velocit\u00e0 alla giunzione sar\u00e0 piccola. Le velocit\u00e0 di giunzione sono determinate utilizzando \"accelerazione centripeta approssimata\". Meglio su descritto dall'autore . Tuttavia, in Klipper, le velocit\u00e0 di giunzione sono configurate specificando la velocit\u00e0 desiderata che dovrebbe avere un angolo di 90\u00b0 (la \"velocit\u00e0 dell'angolo retto\") e da quella vengono derivate le velocit\u00e0 di giunzione per altri angoli. Formula chiave per il look-ahead: velocit\u00e0_finale^2 = velocit\u00e0_iniziale^2 + 2*accelerazione*distanza_movimento Look-ahead ammorbidito \u00b6 Klipper implementa anche un meccanismo per smussare i movimenti di brevi movimenti a \"zigzag\". Considera i seguenti movimenti: In quanto sopra, i frequenti passaggi dall'accelerazione alla decelerazione possono causare vibrazioni della macchina che provocano sollecitazioni e aumentano la rumorosit\u00e0. Per ridurre questo, Klipper tiene traccia sia dell'accelerazione di movimento regolare che di una velocit\u00e0 virtuale di \"accelerazione alla decelerazione\". Utilizzando questo sistema, la velocit\u00e0 massima di questi brevi movimenti a \"zigzag\" \u00e8 limitata per rendere pi\u00f9 fluido il movimento della stampante: In particolare, il codice calcola quale sarebbe la velocit\u00e0 di ogni mossa se fosse limitata a questa velocit\u00e0 di \"accelerazione alla decelerazione\" virtuale (la met\u00e0 della velocit\u00e0 di accelerazione normale per impostazione predefinita). Nell'immagine sopra le linee grigie tratteggiate rappresentano questa velocit\u00e0 di accelerazione virtuale per il primo movimento. Se un movimento non pu\u00f2 raggiungere la sua piena velocit\u00e0 di crociera usando questa velocit\u00e0 di accelerazione virtuale, la sua velocit\u00e0 massima viene ridotta alla velocit\u00e0 massima che potrebbe ottenere a questa velocit\u00e0 di accelerazione virtuale. Per la maggior parte dei movimenti il limite sar\u00e0 pari o superiore ai limiti esistenti del movimento e non verr\u00e0 indotto alcun cambiamento nel comportamento. Per brevi movimenti a zigzag, tuttavia, questo limite riduce la velocit\u00e0 massima. Nota che non cambia l'accelerazione effettiva all'interno del movimento: Il movimento continua a utilizzare lo schema di accelerazione normale fino alla sua velocit\u00e0 massima regolata. Generazione di passi \u00b6 Una volta completato il processo di look-ahead, il movimento della testina di stampa per il dato spostamento \u00e8 completamente noto (tempo, posizione iniziale, posizione finale, velocit\u00e0 in ogni punto) ed \u00e8 possibile generare i tempi di passaggio per lo spostamento. Questo processo viene eseguito all'interno di \"classi cinematiche\" nel codice di Klipper. Al di fuori di queste classi cinematiche, tutto viene tracciato in millimetri, secondi e nello spazio delle coordinate cartesiane. \u00c8 compito delle classi cinematiche convertire da questo sistema di coordinate generico alle specifiche hardware di una particolare stampante. Klipper utilizza un risolutore iterativo per generare i tempi dei passo per ogni stepper. Il codice contiene le formule per calcolare le coordinate cartesiane ideali della testa in ogni momento e ha le formule cinematiche per calcolare le posizioni ideali dello stepper in base a quelle coordinate cartesiane. Con queste formule, Klipper pu\u00f2 determinare il tempo ideale in cui lo stepper dovrebbe trovarsi in ogni posizione del passo. I passaggi indicati vengono quindi programmati in questi orari calcolati. La formula chiave per determinare la distanza che un movimento deve percorrere con un'accelerazione costante \u00e8: distanza_movimento = (velocita_iniziale + .5 * accelerazione *durata_movimento) * durata_movimento e la formula chiave per il movimento a velocit\u00e0 costante \u00e8: distanza_movimento = velocit\u00e0_crociera * durata_movimento Le formule chiave per determinare la coordinata cartesiana di un movimento data una distanza di movimento sono: cartesian_x_position = start_x + move_distance * total_x_movement / total_movement cartesian_y_position = start_y + move_distance * total_y_movement / total_movement cartesian_z_position = start_z + move_distance * total_z_movement / total_movement Robot Cartesiani \u00b6 La generazione di passaggi per stampanti cartesiane \u00e8 il caso pi\u00f9 semplice. Il movimento su ciascun asse \u00e8 direttamente correlato al movimento nello spazio cartesiano. Formule chiave: stepper_x_position = cartesian_x_position stepper_y_position = cartesian_y_position stepper_z_position = cartesian_z_position Robot CoreXY \u00b6 La generazione di passaggi su una macchina CoreXY \u00e8 solo un po' pi\u00f9 complessa dei robot cartesiani di base. Le formule chiave sono: stepper_a_position = cartesian_x_position + cartesian_y_position stepper_b_position = cartesian_x_position - cartesian_y_position stepper_z_position = cartesian_z_position Robot Delta \u00b6 La generazione di passi su un robot delta si basa sul teorema di Pitagora: stepper_position = (sqrt(arm_length^2 - (cartesian_x_position - tower_x_position)^2 - (cartesian_y_position - tower_y_position)^2) + cartesian_z_position) Limiti di accelerazione del motore passo-passo \u00b6 Con la cinematica delta \u00e8 possibile che un movimento che sta accelerando nello spazio cartesiano richieda un'accelerazione su un particolare motore passo-passo maggiore dell'accelerazione del movimento. Ci\u00f2 pu\u00f2 verificarsi quando un braccio dello stepper \u00e8 pi\u00f9 orizzontale che verticale e la linea di movimento passa vicino alla torre dello stepper. Sebbene questi movimenti possano richiedere un'accelerazione del motore passo-passo maggiore dell'accelerazione di movimento massima configurata della stampante, la massa effettiva spostata da quel passo-passo sarebbe inferiore. Pertanto la maggiore accelerazione stepper non si traduce in una coppia stepper significativamente pi\u00f9 elevata ed \u00e8 quindi considerata innocua. Tuttavia, per evitare casi estremi, Klipper impone un limite massimo all'accelerazione stepper di tre volte l'accelerazione di movimento massima configurata della stampante. (Allo stesso modo, la velocit\u00e0 massima dello stepper \u00e8 limitata a tre volte la velocit\u00e0 massima di spostamento.) Per far rispettare questo limite, i movimenti sul bordo estremo dell'inviluppo (dove un braccio dello stepper pu\u00f2 essere quasi orizzontale) avranno un massima accelerazione e velocit\u00e0. Cinematica dell'estrusore \u00b6 Klipper implementa il movimento dell'estrusore nella propria classe cinematica. Poich\u00e9 i tempi e la velocit\u00e0 di ogni movimento della testina di stampa sono completamente noti per ogni movimento, \u00e8 possibile calcolare i tempi di passaggio per l'estrusore indipendentemente dai calcoli del tempo di passaggio del movimento della testina di stampa. Il movimento di base dell'estrusore \u00e8 semplice da calcolare. La generazione del tempo di passaggio utilizza le stesse formule utilizzate dai robot cartesiani: stepper_position = requested_e_position Anticipo di pressione \u00b6 La sperimentazione ha dimostrato che \u00e8 possibile migliorare la modellazione dell'estrusore oltre la formula di base dell'estrusore. Nel caso ideale, mentre un movimento di estrusione avanza, lo stesso volume di filamento dovrebbe essere depositato in ogni punto lungo il movimento e non dovrebbe esserci volume estruso dopo il movimento. Sfortunatamente, \u00e8 comune scoprire che le formule di estrusione di base fanno s\u00ec che una quantit\u00e0 insufficiente di filamento fuoriesca dall'estrusore all'inizio dei movimenti di estrusione e che il filamento in eccesso venga estruso al termine dell'estrusione. Questo \u00e8 spesso indicato come \"melma\" \"ooze\". Il sistema di \"pressure advance\" tenta di spiegare ci\u00f2 utilizzando un modello diverso per l'estrusore. Invece di credere ingenuamente che ogni mm^3 di filamento alimentato nell'estrusore comporter\u00e0 l'uscita immediata di quella quantit\u00e0 di mm^3 dall'estrusore, utilizza un modello basato sulla pressione. La pressione aumenta quando il filamento viene spinto nell'estrusore (come in Legge di Hook ) e la pressione necessaria per estrudere \u00e8 dominata dalla portata attraverso l'orifizio dell'ugello (come nella legge di Poiseuille ). L'idea chiave \u00e8 che la relazione tra filamento, pressione e portata pu\u00f2 essere modellata utilizzando un coefficiente lineare: pa_position = nominal_position + pressure_advance_coefficient * nominal_velocity Per informazioni su come trovare questo coefficiente di anticipo della pressione, vedere il documento Pressure Advance . La formula di base del pressure advance pu\u00f2 far s\u00ec che il motore dell'estrusore apporti improvvisi cambiamenti di velocit\u00e0. Klipper implementa la \"smussatura\" del movimento dell'estrusore per evitarlo. Il grafico sopra mostra un esempio di due movimenti di estrusione con una velocit\u00e0 in curva diversa da zero tra di loro. Si noti che il sistema di pressure advance fa s\u00ec che il filamento aggiuntivo venga spinto nell'estrusore durante l'accelerazione. Maggiore \u00e8 la portata del filamento desiderata, pi\u00f9 filamento deve essere spinto durante l'accelerazione per tenere conto della pressione. Durante la decelerazione della testa il filamento extra viene retratto (l'estrusore avr\u00e0 una velocit\u00e0 negativa). Lo \"smussamento\" viene implementato utilizzando una media pesata della posizione dell'estrusore in un breve periodo di tempo (come specificato dal parametro di configurazione pressure_advance_smooth_time ). Questa media pu\u00f2 estendersi su pi\u00f9 mosse del codice G. Notare come il motore dell'estrusore inizier\u00e0 a muoversi prima dell'inizio nominale del primo movimento di estrusione e continuer\u00e0 a muoversi dopo la fine nominale dell'ultimo movimento di estrusione. Formula chiave per \"smoothed pressure advance\": smooth_pa_position(t) = ( definitive_integral(pa_position(x) * (smooth_time/2 - abs(t - x)) * dx, from=t-smooth_time/2, to=t+smooth_time/2) / (smooth_time/2)^2 )","title":"Cinematica"},{"location":"Kinematics.html#cinematica","text":"Questo documento \u00e8 una panoramica su come Klipper implementa la movimentazione del sistema meccanico(la sua cinematica ). Questi contenuti potrebbero interessare sia gli sviluppatori che intendono lacorare sul software Klipper che gli utenti che desiderano comprendere meglio il funzionamento delle proprie macchine.","title":"Cinematica"},{"location":"Kinematics.html#accelerazione","text":"Klipper utilizza uno schema ad accelerazione costrante ogni qualvolta la testa di stampa cambia velocit\u00e0 - la velocit\u00e0 viene gradualmente variata fino a raggiungere la nuova velocit\u00e0 invece di strattonare direttamente alla nuova velocit\u00e0. Klipper mantiene sempre l'accelerazione tra la testa di stampa e la stampa. Il filamento in uscita dall'ugello pu\u00f2 essere piuttosto fragile, rapidi sobbalzi e/o cambi di flusso di estrusione portano a cattiva qualit\u00e0 di stampa e bassa adesione al piano di stampa. Anche quando non viene estruso filamento, se l'ugello si trova allo stesso livello della stampa, un repentino cambio di velocit\u00e0 potrebbe disturbare il filamento appena depositato. Limitare i cambi di velocit\u00e0 della testa di stampa relativamente alla stampa riduce il rischio di rovinare la stampa. \u00c8 anche importante limitare l'accelerazione in modo da evitare che i motori stepper perdano passi e per ridurre le sollecitazioni alla macchina. Klipper limita la coppia su ciascuno stepper mediante la limitazione dell'accelerazione sulla testina di stampa. Imporre l'accelerazione alla testa di stampa ha la conseguenza naturale di limitare la coppia degli stepper che la muovono (l'inverso non \u00e8 sempre vero). Klipper implementa l'accelerazione costante. La formula chiave per l'accelerazione costante \u00e8: velocit\u00e0(tempo) = velocit\u00e0_inizio + accelerazione*tempo","title":"Accelerazione"},{"location":"Kinematics.html#generatore-di-trapezoide","text":"Klipper utilizza un \"generatore di trapezoide\" di tipo tradizionale per modellare il movimento - ogni movimento ha una velocit\u00e0 iniziale, accelera verso la velocit\u00e0 di crociera ad accelerazione costante, prosegue a velocit\u00e0 costante ed infine decelera fino alla velocit\u00e0 finale ad accelerazione costante. Viene detto \"generatore di trapezoide\" perch\u00e9 il diagramma di velocit\u00e0 del movimento sembra un trapezoide. La velocit\u00e0 di crociera \u00e8 sempre maggiore o uguale sia alla velocit\u00e0 iniziale che a quella finale. La fase di accelerazione potrebbe avere durata zero (se la velocit\u00e0 iniziale \u00e8 uguale alla velocit\u00e0 di crociera), la fase di movimento a valocit\u00e0 costante potrebbe avere durata zero (se il movimento inizia a decelerare subito l'accelerazione) e/o la fase di decelerazione potrebbe avere durata zero (se la velocit\u00e0 finale \u00e8 uguale alla velocit\u00e0 di crociera).","title":"Generatore di trapezoide"},{"location":"Kinematics.html#look-ahead-precalcolo","text":"Il sistema di \"look-ahead\" (precalcolo) \u00e8 usato per determinare le velocit\u00e0 nelle giunzioni tra movimenti (cornering speed). Consideriamo questi due movimenti sul piano XY: Nella situazione sopra descritta \u00e8 possibile decelerare completamente dopo il primo movimento e poi accelerare all'inizio del movimento successivo; per\u00f2 questo non \u00e8 un comportamento ideale dato che continue accelerazioni e decelerazioni aumentano il tempo di stampa e continue variazioni nel flusso dell'estrusore peggiorano la qualit\u00e0 di stampa. Per risolvere questo problema, la funzione \"look-ahead\" (precalcolo) accoda i movimenti da eseguire ed analizza gli angoli tra essi per calcolare la velocit\u00e0 da usare nella giunzione tra due movimenti. Se il prossimo movimento \u00e8 all'incirca nella stessa direzione del precedente, la testina di stampa deve rallentare molto poco (se non per nulla). Se per\u00f2 il prossimo movimento forma un angolo acuto (la testina deve praticamente invertire la direzione di marcia), la velocit\u00e0 alla giunzione sar\u00e0 piccola. Le velocit\u00e0 di giunzione sono determinate utilizzando \"accelerazione centripeta approssimata\". Meglio su descritto dall'autore . Tuttavia, in Klipper, le velocit\u00e0 di giunzione sono configurate specificando la velocit\u00e0 desiderata che dovrebbe avere un angolo di 90\u00b0 (la \"velocit\u00e0 dell'angolo retto\") e da quella vengono derivate le velocit\u00e0 di giunzione per altri angoli. Formula chiave per il look-ahead: velocit\u00e0_finale^2 = velocit\u00e0_iniziale^2 + 2*accelerazione*distanza_movimento","title":"Look-ahead (Precalcolo)"},{"location":"Kinematics.html#look-ahead-ammorbidito","text":"Klipper implementa anche un meccanismo per smussare i movimenti di brevi movimenti a \"zigzag\". Considera i seguenti movimenti: In quanto sopra, i frequenti passaggi dall'accelerazione alla decelerazione possono causare vibrazioni della macchina che provocano sollecitazioni e aumentano la rumorosit\u00e0. Per ridurre questo, Klipper tiene traccia sia dell'accelerazione di movimento regolare che di una velocit\u00e0 virtuale di \"accelerazione alla decelerazione\". Utilizzando questo sistema, la velocit\u00e0 massima di questi brevi movimenti a \"zigzag\" \u00e8 limitata per rendere pi\u00f9 fluido il movimento della stampante: In particolare, il codice calcola quale sarebbe la velocit\u00e0 di ogni mossa se fosse limitata a questa velocit\u00e0 di \"accelerazione alla decelerazione\" virtuale (la met\u00e0 della velocit\u00e0 di accelerazione normale per impostazione predefinita). Nell'immagine sopra le linee grigie tratteggiate rappresentano questa velocit\u00e0 di accelerazione virtuale per il primo movimento. Se un movimento non pu\u00f2 raggiungere la sua piena velocit\u00e0 di crociera usando questa velocit\u00e0 di accelerazione virtuale, la sua velocit\u00e0 massima viene ridotta alla velocit\u00e0 massima che potrebbe ottenere a questa velocit\u00e0 di accelerazione virtuale. Per la maggior parte dei movimenti il limite sar\u00e0 pari o superiore ai limiti esistenti del movimento e non verr\u00e0 indotto alcun cambiamento nel comportamento. Per brevi movimenti a zigzag, tuttavia, questo limite riduce la velocit\u00e0 massima. Nota che non cambia l'accelerazione effettiva all'interno del movimento: Il movimento continua a utilizzare lo schema di accelerazione normale fino alla sua velocit\u00e0 massima regolata.","title":"Look-ahead ammorbidito"},{"location":"Kinematics.html#generazione-di-passi","text":"Una volta completato il processo di look-ahead, il movimento della testina di stampa per il dato spostamento \u00e8 completamente noto (tempo, posizione iniziale, posizione finale, velocit\u00e0 in ogni punto) ed \u00e8 possibile generare i tempi di passaggio per lo spostamento. Questo processo viene eseguito all'interno di \"classi cinematiche\" nel codice di Klipper. Al di fuori di queste classi cinematiche, tutto viene tracciato in millimetri, secondi e nello spazio delle coordinate cartesiane. \u00c8 compito delle classi cinematiche convertire da questo sistema di coordinate generico alle specifiche hardware di una particolare stampante. Klipper utilizza un risolutore iterativo per generare i tempi dei passo per ogni stepper. Il codice contiene le formule per calcolare le coordinate cartesiane ideali della testa in ogni momento e ha le formule cinematiche per calcolare le posizioni ideali dello stepper in base a quelle coordinate cartesiane. Con queste formule, Klipper pu\u00f2 determinare il tempo ideale in cui lo stepper dovrebbe trovarsi in ogni posizione del passo. I passaggi indicati vengono quindi programmati in questi orari calcolati. La formula chiave per determinare la distanza che un movimento deve percorrere con un'accelerazione costante \u00e8: distanza_movimento = (velocita_iniziale + .5 * accelerazione *durata_movimento) * durata_movimento e la formula chiave per il movimento a velocit\u00e0 costante \u00e8: distanza_movimento = velocit\u00e0_crociera * durata_movimento Le formule chiave per determinare la coordinata cartesiana di un movimento data una distanza di movimento sono: cartesian_x_position = start_x + move_distance * total_x_movement / total_movement cartesian_y_position = start_y + move_distance * total_y_movement / total_movement cartesian_z_position = start_z + move_distance * total_z_movement / total_movement","title":"Generazione di passi"},{"location":"Kinematics.html#robot-cartesiani","text":"La generazione di passaggi per stampanti cartesiane \u00e8 il caso pi\u00f9 semplice. Il movimento su ciascun asse \u00e8 direttamente correlato al movimento nello spazio cartesiano. Formule chiave: stepper_x_position = cartesian_x_position stepper_y_position = cartesian_y_position stepper_z_position = cartesian_z_position","title":"Robot Cartesiani"},{"location":"Kinematics.html#robot-corexy","text":"La generazione di passaggi su una macchina CoreXY \u00e8 solo un po' pi\u00f9 complessa dei robot cartesiani di base. Le formule chiave sono: stepper_a_position = cartesian_x_position + cartesian_y_position stepper_b_position = cartesian_x_position - cartesian_y_position stepper_z_position = cartesian_z_position","title":"Robot CoreXY"},{"location":"Kinematics.html#robot-delta","text":"La generazione di passi su un robot delta si basa sul teorema di Pitagora: stepper_position = (sqrt(arm_length^2 - (cartesian_x_position - tower_x_position)^2 - (cartesian_y_position - tower_y_position)^2) + cartesian_z_position)","title":"Robot Delta"},{"location":"Kinematics.html#limiti-di-accelerazione-del-motore-passo-passo","text":"Con la cinematica delta \u00e8 possibile che un movimento che sta accelerando nello spazio cartesiano richieda un'accelerazione su un particolare motore passo-passo maggiore dell'accelerazione del movimento. Ci\u00f2 pu\u00f2 verificarsi quando un braccio dello stepper \u00e8 pi\u00f9 orizzontale che verticale e la linea di movimento passa vicino alla torre dello stepper. Sebbene questi movimenti possano richiedere un'accelerazione del motore passo-passo maggiore dell'accelerazione di movimento massima configurata della stampante, la massa effettiva spostata da quel passo-passo sarebbe inferiore. Pertanto la maggiore accelerazione stepper non si traduce in una coppia stepper significativamente pi\u00f9 elevata ed \u00e8 quindi considerata innocua. Tuttavia, per evitare casi estremi, Klipper impone un limite massimo all'accelerazione stepper di tre volte l'accelerazione di movimento massima configurata della stampante. (Allo stesso modo, la velocit\u00e0 massima dello stepper \u00e8 limitata a tre volte la velocit\u00e0 massima di spostamento.) Per far rispettare questo limite, i movimenti sul bordo estremo dell'inviluppo (dove un braccio dello stepper pu\u00f2 essere quasi orizzontale) avranno un massima accelerazione e velocit\u00e0.","title":"Limiti di accelerazione del motore passo-passo"},{"location":"Kinematics.html#cinematica-dellestrusore","text":"Klipper implementa il movimento dell'estrusore nella propria classe cinematica. Poich\u00e9 i tempi e la velocit\u00e0 di ogni movimento della testina di stampa sono completamente noti per ogni movimento, \u00e8 possibile calcolare i tempi di passaggio per l'estrusore indipendentemente dai calcoli del tempo di passaggio del movimento della testina di stampa. Il movimento di base dell'estrusore \u00e8 semplice da calcolare. La generazione del tempo di passaggio utilizza le stesse formule utilizzate dai robot cartesiani: stepper_position = requested_e_position","title":"Cinematica dell'estrusore"},{"location":"Kinematics.html#anticipo-di-pressione","text":"La sperimentazione ha dimostrato che \u00e8 possibile migliorare la modellazione dell'estrusore oltre la formula di base dell'estrusore. Nel caso ideale, mentre un movimento di estrusione avanza, lo stesso volume di filamento dovrebbe essere depositato in ogni punto lungo il movimento e non dovrebbe esserci volume estruso dopo il movimento. Sfortunatamente, \u00e8 comune scoprire che le formule di estrusione di base fanno s\u00ec che una quantit\u00e0 insufficiente di filamento fuoriesca dall'estrusore all'inizio dei movimenti di estrusione e che il filamento in eccesso venga estruso al termine dell'estrusione. Questo \u00e8 spesso indicato come \"melma\" \"ooze\". Il sistema di \"pressure advance\" tenta di spiegare ci\u00f2 utilizzando un modello diverso per l'estrusore. Invece di credere ingenuamente che ogni mm^3 di filamento alimentato nell'estrusore comporter\u00e0 l'uscita immediata di quella quantit\u00e0 di mm^3 dall'estrusore, utilizza un modello basato sulla pressione. La pressione aumenta quando il filamento viene spinto nell'estrusore (come in Legge di Hook ) e la pressione necessaria per estrudere \u00e8 dominata dalla portata attraverso l'orifizio dell'ugello (come nella legge di Poiseuille ). L'idea chiave \u00e8 che la relazione tra filamento, pressione e portata pu\u00f2 essere modellata utilizzando un coefficiente lineare: pa_position = nominal_position + pressure_advance_coefficient * nominal_velocity Per informazioni su come trovare questo coefficiente di anticipo della pressione, vedere il documento Pressure Advance . La formula di base del pressure advance pu\u00f2 far s\u00ec che il motore dell'estrusore apporti improvvisi cambiamenti di velocit\u00e0. Klipper implementa la \"smussatura\" del movimento dell'estrusore per evitarlo. Il grafico sopra mostra un esempio di due movimenti di estrusione con una velocit\u00e0 in curva diversa da zero tra di loro. Si noti che il sistema di pressure advance fa s\u00ec che il filamento aggiuntivo venga spinto nell'estrusore durante l'accelerazione. Maggiore \u00e8 la portata del filamento desiderata, pi\u00f9 filamento deve essere spinto durante l'accelerazione per tenere conto della pressione. Durante la decelerazione della testa il filamento extra viene retratto (l'estrusore avr\u00e0 una velocit\u00e0 negativa). Lo \"smussamento\" viene implementato utilizzando una media pesata della posizione dell'estrusore in un breve periodo di tempo (come specificato dal parametro di configurazione pressure_advance_smooth_time ). Questa media pu\u00f2 estendersi su pi\u00f9 mosse del codice G. Notare come il motore dell'estrusore inizier\u00e0 a muoversi prima dell'inizio nominale del primo movimento di estrusione e continuer\u00e0 a muoversi dopo la fine nominale dell'ultimo movimento di estrusione. Formula chiave per \"smoothed pressure advance\": smooth_pa_position(t) = ( definitive_integral(pa_position(x) * (smooth_time/2 - abs(t - x)) * dx, from=t-smooth_time/2, to=t+smooth_time/2) / (smooth_time/2)^2 )","title":"Anticipo di pressione"},{"location":"MCU_Commands.html","text":"Comandi MCU \u00b6 Questo documento fornisce informazioni sui comandi di basso livello del microcontrollore che sono inviati dal software \"host\" Klipper e processati dal software del microcontrollore Klipper. Questo documento non \u00e8 un riferimento autorevole per questi comandi, n\u00e9 una lista esclusiva di tutti i comandi disponibili. Questo documento pu\u00f2 essere utile per gli sviluppatori interessati a comprendere i comandi di basso livello del microcontrollore. Vedere il documento protocol per ulteriori informazioni sul formato dei comandi e sulla loro trasmissione. I comandi qui sono descritti usando la loro sintassi di stile \"printf\" - per chi non ha familiarit\u00e0 con quel formato, basta notare che dove si vede una sequenza '%...' dovrebbe essere sostituita con un intero reale. Ad esempio, una descrizione con \"count=%c\" potrebbe essere sostituita con il testo \"count=10\". Si noti che i parametri considerati \"enumerazioni\" (vedere il documento di protocollo sopra) assumono un valore stringa che viene automaticamente convertito in un valore intero per il microcontrollore. Questo \u00e8 comune con i parametri denominati \"pin\" (o che hanno il suffisso \"_pin\"). Comandi di avvio \u00b6 Potrebbe essere necessario eseguire determinate azioni una tantum per configurare il microcontrollore e le sue periferiche. Questa sezione elenca i comandi comuni disponibili a tale scopo. A differenza della maggior parte dei comandi del microcontrollore, questi comandi vengono eseguiti non appena vengono ricevuti e non richiedono alcuna configurazione particolare. Comandi di avvio comuni: set_digital_out pin=%u value=%c : Questo comando configura immediatamente il pin dato come un GPIO di uscita digitale e lo imposta su un livello basso (valore=0) o alto (valore=1). Questo comando pu\u00f2 essere utile per configurare il valore iniziale dei LED e per configurare il valore iniziale dei pin micro-stepping del driver stepper. set_pwm_out pin=%u cycle_ticks=%u value=%hu : Questo comando configurer\u00e0 immediatamente il pin dato per utilizzare la modulazione di larghezza di impulso (PWM) basata sull'hardware con il numero specificato di cycle_tick. Il \"cycle_ticks\" \u00e8 il numero di tick di clock dell'MCU per cui ogni ciclo di accensione e spegnimento dovrebbe durare. \u00c8 possibile utilizzare un valore cycle_ticks pari a 1 per richiedere il tempo di ciclo pi\u00f9 rapido possibile. Il parametro \"value\" \u00e8 compreso tra 0 e 255 con 0 che indica uno stato completamente spento e 255 indica uno stato completamente acceso. Questo comando pu\u00f2 essere utile per abilitare le ventole di raffreddamento della CPU e degli ugelli. Configurazione di basso livello del microcontrollore \u00b6 La maggior parte dei comandi nel microcontrollore richiede una configurazione iniziale prima di poter essere richiamati correttamente. Questa sezione fornisce una panoramica del processo di configurazione. Questa sezione e le sezioni seguenti sono probabilmente di interesse solo per gli sviluppatori interessati ai dettagli interni di Klipper. Quando l'host si connette per la prima volta al microcontrollore, inizia sempre ottenendo un dizionario di dati (vedi protocol per ulteriori informazioni). Dopo aver ottenuto il dizionario dei dati, l'host verificher\u00e0 se il microcontrollore \u00e8 in uno stato \"configurato\" e in caso contrario lo configurer\u00e0. La configurazione prevede le seguenti fasi: get_config : L'host si avvia controllando se il microcontrollore \u00e8 gi\u00e0 configurato. Il microcontrollore risponde a questo comando con un messaggio di risposta \"config\". Il software del microcontrollore si avvia sempre in uno stato non configurato all'accensione. Rimane in questo stato fino a quando l'host non completa i processi di configurazione (emettendo un comando finalize_config). Se il microcontrollore \u00e8 gi\u00e0 configurato da una sessione precedente (ed \u00e8 configurato con le impostazioni desiderate), non sono necessarie ulteriori azioni da parte dell'host e il processo di configurazione termina correttamente. allocate_oids count=%c : Questo comando viene emesso per informare il microcontrollore del numero massimo di ID oggetto (oid) che l'host richiede. \u00c8 valido solo per emettere questo comando una volta. Un oid \u00e8 un identificatore intero allocato a ogni stepper, ogni endstop e ogni pin gpio schedulabile. L'host determina in anticipo il numero di oid necessari per far funzionare l'hardware e lo passa al microcontrollore in modo che possa allocare memoria sufficiente per memorizzare una mappatura dall'oid all'oggetto interno. config_XXX oid=%c ... : Per convenzione qualsiasi comando che inizia con il prefisso \"config_\" crea un nuovo oggetto microcontrollore e gli assegna l'oid dato. Ad esempio, il comando config_digital_out configurer\u00e0 il pin specificato come GPIO di output digitale e creer\u00e0 un oggetto interno che l'host pu\u00f2 utilizzare per pianificare le modifiche al GPIO specificato. Il parametro oid passato al comando config viene selezionato dall'host e deve essere compreso tra zero e il conteggio massimo fornito nel comando allocate_oids. I comandi di configurazione possono essere eseguiti solo quando il microcontrollore non \u00e8 in uno stato configurato (cio\u00e8 prima dell'invio da parte dell'host di finalize_config) e dopo che \u00e8 stato inviato il comando allocate_oids. finalize_config crc=%u : Il comando finalize_config trasferisce il microcontrollore da uno stato non configurato a uno stato configurato. Il parametro crc passato al microcontrollore viene archiviato e restituito all'host nei messaggi di risposta \"config\". Per convenzione, l'host prende un CRC a 32bit della configurazione che richieder\u00e0 e all'avvio delle successive sessioni di comunicazione verifica che il CRC memorizzato nel microcontrollore corrisponda esattamente al CRC desiderato. Se il CRC non corrisponde, l'host sa che il microcontrollore non \u00e8 stato configurato nello stato desiderato dall'host. Oggetti comuni del microcontrollore \u00b6 Questa sezione elenca alcuni comandi di configurazione comunemente usati. config_digital_out oid=%c pin=%u value=%c default_value=%c max_duration=%u : Questo comando crea un oggetto microcontrollore interno per il dato 'pin' GPIO. Il pin verr\u00e0 configurato in modalit\u00e0 di uscita digitale e impostato su un valore iniziale come specificato da 'value' (0 per basso, 1 per alto). La creazione di un oggetto digital_out consente all'host di pianificare gli aggiornamenti GPIO per il pin specificato a orari specificati (consultare il comando queue_digital_out descritto di seguito). Se il software del microcontrollore entra in modalit\u00e0 di spegnimento, tutti gli oggetti digital_out configurati verranno impostati su 'default_value'. Il parametro 'max_duration' viene utilizzato per implementare un controllo di sicurezza: se \u00e8 diverso da zero, \u00e8 il numero massimo di tick di clock che l'host pu\u00f2 impostare il GPIO specificato su un valore non predefinito senza ulteriori aggiornamenti. Ad esempio, se default_value \u00e8 zero e max_duration \u00e8 16000, se l'host imposta gpio su un valore di uno, deve pianificare un altro aggiornamento del pin gpio (su zero o su uno) entro 16000 tick di clock. Questa funzione di sicurezza pu\u00f2 essere utilizzata con i pin del riscaldatore per garantire che l'host non abiliti il riscaldatore e quindi vada offline. config_pwm_out oid=%c pin=%u cycle_ticks=%u value=%hu default_value=%hu max_duration=%u : Questo comando crea un oggetto interno per i pin PWM hardware per i quali l'host pu\u00f2 pianificare gli aggiornamenti. Il suo utilizzo \u00e8 analogo a config_digital_out - vedere la descrizione dei comandi 'set_pwm_out' e 'config_digital_out' per la descrizione dei parametri. config_analog_in oid=%c pin=%u : Questo comando viene utilizzato per configurare un pin nella modalit\u00e0 di campionamento analogico. Una volta configurato, il pin pu\u00f2 essere campionato a intervalli regolari utilizzando il comando query_analog_in (vedi sotto). config_stepper oid=%c step_pin=%c dir_pin=%c invert_step=%c step_pulse_ticks=%u : Questo comando crea un oggetto stepper interno. I parametri 'step_pin' e 'dir_pin' specificano rispettivamente i pin del passo e della direzione; questo comando li configurer\u00e0 in modalit\u00e0 uscita digitale. Il parametro 'invert_step' specifica se un passo si verifica su un fronte di salita (invert_step=0) o discendente (invert_step=1). Il parametro 'step_pulse_ticks' specifica la durata minima dell'impulso di passo. Se l'mcu esporta la costante 'STEPPER_BOTH_EDGE=1', l'impostazione di step_pulse_ticks=0 e invert_step=-1 imposter\u00e0 il passaggio su entrambi i fronti di salita e di discesa dello step pin. config_endstop oid=%c pin=%c pull_up=%c stepper_count=%c : Questo comando crea un oggetto \"finecorsa\" interno. Viene utilizzato per specificare i relativi pin e per abilitare le operazioni di \"homing\" (vedere il comando endstop_home di seguito). Il comando configurer\u00e0 il pin specificato nella modalit\u00e0 di input digitale. Il parametro 'pull_up' determina se i resistori pullup forniti dall'hardware per il pin (se disponibili) saranno abilitati. Il parametro 'stepper_count' specifica il numero massimo di stepper che potrebbe essere necessario arrestare questo endstop durante un'operazione di homing (vedere endstop_home di seguito). config_spi oid=%c bus=%u pin=%u mode=%u rate=%u shutdown_msg=%*s : Questo comando crea un oggetto SPI interno. Viene utilizzato con i comandi spi_transfer e spi_send (vedi sotto). Il \"bus\" identifica il bus SPI da utilizzare (se il microcontrollore ha pi\u00f9 di un bus SPI disponibile). Il \"pin\" specifica il pin di selezione del chip (CS) per il dispositivo. La \"modalit\u00e0\" \u00e8 la modalit\u00e0 SPI (dovrebbe essere compresa tra 0 e 3). Il parametro \"rate\" specifica la velocit\u00e0 del bus SPI (in cicli al secondo). Infine, \"shutdown_msg\" \u00e8 un comando SPI da inviare al dispositivo specificato se il microcontrollore entra in uno stato di spegnimento. config_spi_without_cs oid=%c bus=%u mode=%u rate=%u shutdown_msg=%*s : Questo comando \u00e8 simile a config_spi, ma senza una definizione di pin CS. \u00c8 utile per i dispositivi SPI che non dispongono di una linea di selezione del chip. Comandi comuni \u00b6 Questa sezione elenca alcuni comandi comunemente usati durante il run-time. \u00c8 probabilmente di interesse solo per gli sviluppatori che cercano di ottenere informazioni su Klipper. set_digital_out_pwm_cycle oid=%c cycle_ticks=%u : Questo comando configura un pin come uscita digitale (come creato da config_digital_out) per usare \"software PWM\". 'cycle_ticks' \u00e8 il numero di tick di clock per il ciclo PWM. Poich\u00e9 la commutazione dell'uscita \u00e8 implementata nel software del microcontrollore, si consiglia che 'cycle_ticks' corrisponda a un tempo di 10 ms o superiore. queue_digital_out oid=%c clock=%u on_ticks=%u : Questo comando pianificher\u00e0 una modifica a un pin GPIO dell'uscita digitale per un orario specifico. Per utilizzare questo comando \u00e8 necessario che durante la configurazione del microcontrollore sia stato emesso un comando 'config_digital_out' con lo stesso parametro 'oid'. Se \u00e8 stato chiamato 'set_digital_out_pwm_cycle', allora 'on_ticks' \u00e8 la durata di attivazione (in tick di clock) per il ciclo pwm. Altrimenti, 'on_ticks' dovrebbe essere 0 (per bassa tensione) o 1 (per alta tensione). queue_pwm_out oid=%c clock=%u value=%hu : Pianifica una modifica a un pin di uscita PWM hardware. Per ulteriori informazioni, vedere i comandi 'queue_digital_out' e 'config_pwm_out'. query_analog_in oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u min_value=%hu max_value=%hu : Questo comando imposta una pianificazione ricorrente di campionamenti di un ingresso analogico. Per utilizzare questo comando \u00e8 necessario che durante la configurazione del microcontrollore sia stato emesso un comando 'config_analog_in' con lo stesso parametro 'oid'. I campioni inizieranno a partire dall'ora 'clock', riporter\u00e0 sul valore ottenuto ogni tick di clock 'rest_ticks', sovracampioner\u00e0 il numero di 'sample_count' e metter\u00e0 in pausa il numero di tick di clock 'sample_ticks' tra i sovacampionamenti. I parametri 'min_value' e 'max_value' implementano una funzione di sicurezza: il software del microcontrollore verificher\u00e0 che il valore campionato (dopo qualsiasi sovracampionamento) sia sempre compreso nell'intervallo fornito. Questo \u00e8 destinato all'uso con pin collegati a termistori che controllano i riscaldatori: pu\u00f2 essere utilizzato per verificare che un riscaldatore rientri in un intervallo di temperatura. get_clock : Questo comando fa s\u00ec che il microcontrollore generi un messaggio di risposta \"clock\". L'host invia questo comando una volta al secondo per ottenere il valore dell'orologio del microcontrollore e per stimare la deriva tra gli orologi dell'host e del microcontrollore. Consente all'host di stimare con precisione l'orologio del microcontrollore. Comandi motori passopasso \u00b6 queue_step oid=%c interval=%u count=%hu add=%hi : Questo comando pianifica il 'conteggio' del numero di passi per il dato stepper, con 'intervallo' il numero di tick di clock tra ogni passo. Il primo passo sar\u00e0 il numero \"intervallo\" di tick di clock dall'ultimo passo programmato per il dato stepper. Se 'add' \u00e8 diverso da zero, l'intervallo verr\u00e0 regolato in base all'importo di 'add' dopo ogni passaggio. Questo comando aggiunge la sequenza intervallo/conteggio/aggiunta data a una coda per stepper. Potrebbero esserci centinaia di queste sequenze in coda durante il normale funzionamento. La nuova sequenza viene aggiunta alla fine della coda e quando ogni sequenza completa il suo numero di \"conteggi\" di passaggi viene estratta dalla parte anteriore della coda. Questo sistema consente al microcontrollore di mettere in coda potenzialmente centinaia di migliaia di passaggi, il tutto con tempi di pianificazione affidabili e prevedibili. set_next_step_dir oid=%c dir=%c : Questo comando specifica il valore del dir_pin che verr\u00e0 utilizzato dal comando queue_step successivo. reset_step_clock oid=%c clock=%u : Normalmente, la temporizzazione del passo \u00e8 relativo all'ultimo passo per un dato stepper. Questo comando azzera l'orologio in modo che il passo successivo sia relativo all'ora fornita. L'host di solito invia questo comando solo all'inizio di una stampa. stepper_get_position oid=%c : Questo comando fa s\u00ec che il microcontrollore generi un messaggio di risposta \"stepper_position\" con la posizione corrente dello stepper. La posizione \u00e8 il numero totale di passi generati con dir=1 meno il numero totale di passi generati con dir=0. endstop_home oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u pin_value=%c : Questo comando viene utilizzato durante le operazioni di \"homing\" dello stepper. Per utilizzare questo comando \u00e8 necessario che durante la configurazione del microcontrollore sia stato emesso un comando 'config_endstop' con lo stesso parametro 'oid'. Quando viene invocato questo comando, il microcontrollore campiona il pin finecorsa ogni tick di clock \"rest_ticks\" e controlla se ha un valore uguale a \"pin_value\". Se il valore corrisponde (e continua a corrispondere per 'sample_count' campioni aggiuntivi separati da 'sample_ticks'), la coda di movimento per lo stepper associato verr\u00e0 cancellata e lo stepper si arrester\u00e0 immediatamente. L'host utilizza questo comando per implementare l'homing: l'host indica al finecorsa di eseguire il campionamento per il trigger endstop e quindi emette una serie di comandi queue_step per spostare uno stepper verso il finecorsa. Una volta che lo stepper raggiunge il finecorsa, il trigger verr\u00e0 rilevato, il movimento verr\u00e0 interrotto e l'host verr\u00e0 informato. Coda movimento \u00b6 Ogni comando queue_step utilizza una voce nella \"coda di movimento\" del microcontrollore. Questa coda viene allocata quando riceve il comando \"finalize_config\" e segnala il numero di voci di coda disponibili nei messaggi di risposta \"config\". \u00c8 responsabilit\u00e0 dell'host assicurarsi che ci sia spazio disponibile nella coda prima di inviare un comando queue_step. L'host esegue questa operazione calcolando il completamento di ciascun comando queue_step e pianificando di conseguenza i nuovi comandi queue_step. Comandi SPI \u00b6 spi_transfer oid=%c data=%*s : questo comando fa s\u00ec che il microcontrollore invii dati 'data' al dispositivo spi specificato da 'oid' e genera un messaggio di risposta \"spi_transfer_response\" con i dati restituiti durante la trasmissione . spi_send oid=%c data=%*s : Questo comando \u00e8 simile a \"spi_transfer\", ma non genera un messaggio \"spi_transfer_response\".","title":"Comandi MCU"},{"location":"MCU_Commands.html#comandi-mcu","text":"Questo documento fornisce informazioni sui comandi di basso livello del microcontrollore che sono inviati dal software \"host\" Klipper e processati dal software del microcontrollore Klipper. Questo documento non \u00e8 un riferimento autorevole per questi comandi, n\u00e9 una lista esclusiva di tutti i comandi disponibili. Questo documento pu\u00f2 essere utile per gli sviluppatori interessati a comprendere i comandi di basso livello del microcontrollore. Vedere il documento protocol per ulteriori informazioni sul formato dei comandi e sulla loro trasmissione. I comandi qui sono descritti usando la loro sintassi di stile \"printf\" - per chi non ha familiarit\u00e0 con quel formato, basta notare che dove si vede una sequenza '%...' dovrebbe essere sostituita con un intero reale. Ad esempio, una descrizione con \"count=%c\" potrebbe essere sostituita con il testo \"count=10\". Si noti che i parametri considerati \"enumerazioni\" (vedere il documento di protocollo sopra) assumono un valore stringa che viene automaticamente convertito in un valore intero per il microcontrollore. Questo \u00e8 comune con i parametri denominati \"pin\" (o che hanno il suffisso \"_pin\").","title":"Comandi MCU"},{"location":"MCU_Commands.html#comandi-di-avvio","text":"Potrebbe essere necessario eseguire determinate azioni una tantum per configurare il microcontrollore e le sue periferiche. Questa sezione elenca i comandi comuni disponibili a tale scopo. A differenza della maggior parte dei comandi del microcontrollore, questi comandi vengono eseguiti non appena vengono ricevuti e non richiedono alcuna configurazione particolare. Comandi di avvio comuni: set_digital_out pin=%u value=%c : Questo comando configura immediatamente il pin dato come un GPIO di uscita digitale e lo imposta su un livello basso (valore=0) o alto (valore=1). Questo comando pu\u00f2 essere utile per configurare il valore iniziale dei LED e per configurare il valore iniziale dei pin micro-stepping del driver stepper. set_pwm_out pin=%u cycle_ticks=%u value=%hu : Questo comando configurer\u00e0 immediatamente il pin dato per utilizzare la modulazione di larghezza di impulso (PWM) basata sull'hardware con il numero specificato di cycle_tick. Il \"cycle_ticks\" \u00e8 il numero di tick di clock dell'MCU per cui ogni ciclo di accensione e spegnimento dovrebbe durare. \u00c8 possibile utilizzare un valore cycle_ticks pari a 1 per richiedere il tempo di ciclo pi\u00f9 rapido possibile. Il parametro \"value\" \u00e8 compreso tra 0 e 255 con 0 che indica uno stato completamente spento e 255 indica uno stato completamente acceso. Questo comando pu\u00f2 essere utile per abilitare le ventole di raffreddamento della CPU e degli ugelli.","title":"Comandi di avvio"},{"location":"MCU_Commands.html#configurazione-di-basso-livello-del-microcontrollore","text":"La maggior parte dei comandi nel microcontrollore richiede una configurazione iniziale prima di poter essere richiamati correttamente. Questa sezione fornisce una panoramica del processo di configurazione. Questa sezione e le sezioni seguenti sono probabilmente di interesse solo per gli sviluppatori interessati ai dettagli interni di Klipper. Quando l'host si connette per la prima volta al microcontrollore, inizia sempre ottenendo un dizionario di dati (vedi protocol per ulteriori informazioni). Dopo aver ottenuto il dizionario dei dati, l'host verificher\u00e0 se il microcontrollore \u00e8 in uno stato \"configurato\" e in caso contrario lo configurer\u00e0. La configurazione prevede le seguenti fasi: get_config : L'host si avvia controllando se il microcontrollore \u00e8 gi\u00e0 configurato. Il microcontrollore risponde a questo comando con un messaggio di risposta \"config\". Il software del microcontrollore si avvia sempre in uno stato non configurato all'accensione. Rimane in questo stato fino a quando l'host non completa i processi di configurazione (emettendo un comando finalize_config). Se il microcontrollore \u00e8 gi\u00e0 configurato da una sessione precedente (ed \u00e8 configurato con le impostazioni desiderate), non sono necessarie ulteriori azioni da parte dell'host e il processo di configurazione termina correttamente. allocate_oids count=%c : Questo comando viene emesso per informare il microcontrollore del numero massimo di ID oggetto (oid) che l'host richiede. \u00c8 valido solo per emettere questo comando una volta. Un oid \u00e8 un identificatore intero allocato a ogni stepper, ogni endstop e ogni pin gpio schedulabile. L'host determina in anticipo il numero di oid necessari per far funzionare l'hardware e lo passa al microcontrollore in modo che possa allocare memoria sufficiente per memorizzare una mappatura dall'oid all'oggetto interno. config_XXX oid=%c ... : Per convenzione qualsiasi comando che inizia con il prefisso \"config_\" crea un nuovo oggetto microcontrollore e gli assegna l'oid dato. Ad esempio, il comando config_digital_out configurer\u00e0 il pin specificato come GPIO di output digitale e creer\u00e0 un oggetto interno che l'host pu\u00f2 utilizzare per pianificare le modifiche al GPIO specificato. Il parametro oid passato al comando config viene selezionato dall'host e deve essere compreso tra zero e il conteggio massimo fornito nel comando allocate_oids. I comandi di configurazione possono essere eseguiti solo quando il microcontrollore non \u00e8 in uno stato configurato (cio\u00e8 prima dell'invio da parte dell'host di finalize_config) e dopo che \u00e8 stato inviato il comando allocate_oids. finalize_config crc=%u : Il comando finalize_config trasferisce il microcontrollore da uno stato non configurato a uno stato configurato. Il parametro crc passato al microcontrollore viene archiviato e restituito all'host nei messaggi di risposta \"config\". Per convenzione, l'host prende un CRC a 32bit della configurazione che richieder\u00e0 e all'avvio delle successive sessioni di comunicazione verifica che il CRC memorizzato nel microcontrollore corrisponda esattamente al CRC desiderato. Se il CRC non corrisponde, l'host sa che il microcontrollore non \u00e8 stato configurato nello stato desiderato dall'host.","title":"Configurazione di basso livello del microcontrollore"},{"location":"MCU_Commands.html#oggetti-comuni-del-microcontrollore","text":"Questa sezione elenca alcuni comandi di configurazione comunemente usati. config_digital_out oid=%c pin=%u value=%c default_value=%c max_duration=%u : Questo comando crea un oggetto microcontrollore interno per il dato 'pin' GPIO. Il pin verr\u00e0 configurato in modalit\u00e0 di uscita digitale e impostato su un valore iniziale come specificato da 'value' (0 per basso, 1 per alto). La creazione di un oggetto digital_out consente all'host di pianificare gli aggiornamenti GPIO per il pin specificato a orari specificati (consultare il comando queue_digital_out descritto di seguito). Se il software del microcontrollore entra in modalit\u00e0 di spegnimento, tutti gli oggetti digital_out configurati verranno impostati su 'default_value'. Il parametro 'max_duration' viene utilizzato per implementare un controllo di sicurezza: se \u00e8 diverso da zero, \u00e8 il numero massimo di tick di clock che l'host pu\u00f2 impostare il GPIO specificato su un valore non predefinito senza ulteriori aggiornamenti. Ad esempio, se default_value \u00e8 zero e max_duration \u00e8 16000, se l'host imposta gpio su un valore di uno, deve pianificare un altro aggiornamento del pin gpio (su zero o su uno) entro 16000 tick di clock. Questa funzione di sicurezza pu\u00f2 essere utilizzata con i pin del riscaldatore per garantire che l'host non abiliti il riscaldatore e quindi vada offline. config_pwm_out oid=%c pin=%u cycle_ticks=%u value=%hu default_value=%hu max_duration=%u : Questo comando crea un oggetto interno per i pin PWM hardware per i quali l'host pu\u00f2 pianificare gli aggiornamenti. Il suo utilizzo \u00e8 analogo a config_digital_out - vedere la descrizione dei comandi 'set_pwm_out' e 'config_digital_out' per la descrizione dei parametri. config_analog_in oid=%c pin=%u : Questo comando viene utilizzato per configurare un pin nella modalit\u00e0 di campionamento analogico. Una volta configurato, il pin pu\u00f2 essere campionato a intervalli regolari utilizzando il comando query_analog_in (vedi sotto). config_stepper oid=%c step_pin=%c dir_pin=%c invert_step=%c step_pulse_ticks=%u : Questo comando crea un oggetto stepper interno. I parametri 'step_pin' e 'dir_pin' specificano rispettivamente i pin del passo e della direzione; questo comando li configurer\u00e0 in modalit\u00e0 uscita digitale. Il parametro 'invert_step' specifica se un passo si verifica su un fronte di salita (invert_step=0) o discendente (invert_step=1). Il parametro 'step_pulse_ticks' specifica la durata minima dell'impulso di passo. Se l'mcu esporta la costante 'STEPPER_BOTH_EDGE=1', l'impostazione di step_pulse_ticks=0 e invert_step=-1 imposter\u00e0 il passaggio su entrambi i fronti di salita e di discesa dello step pin. config_endstop oid=%c pin=%c pull_up=%c stepper_count=%c : Questo comando crea un oggetto \"finecorsa\" interno. Viene utilizzato per specificare i relativi pin e per abilitare le operazioni di \"homing\" (vedere il comando endstop_home di seguito). Il comando configurer\u00e0 il pin specificato nella modalit\u00e0 di input digitale. Il parametro 'pull_up' determina se i resistori pullup forniti dall'hardware per il pin (se disponibili) saranno abilitati. Il parametro 'stepper_count' specifica il numero massimo di stepper che potrebbe essere necessario arrestare questo endstop durante un'operazione di homing (vedere endstop_home di seguito). config_spi oid=%c bus=%u pin=%u mode=%u rate=%u shutdown_msg=%*s : Questo comando crea un oggetto SPI interno. Viene utilizzato con i comandi spi_transfer e spi_send (vedi sotto). Il \"bus\" identifica il bus SPI da utilizzare (se il microcontrollore ha pi\u00f9 di un bus SPI disponibile). Il \"pin\" specifica il pin di selezione del chip (CS) per il dispositivo. La \"modalit\u00e0\" \u00e8 la modalit\u00e0 SPI (dovrebbe essere compresa tra 0 e 3). Il parametro \"rate\" specifica la velocit\u00e0 del bus SPI (in cicli al secondo). Infine, \"shutdown_msg\" \u00e8 un comando SPI da inviare al dispositivo specificato se il microcontrollore entra in uno stato di spegnimento. config_spi_without_cs oid=%c bus=%u mode=%u rate=%u shutdown_msg=%*s : Questo comando \u00e8 simile a config_spi, ma senza una definizione di pin CS. \u00c8 utile per i dispositivi SPI che non dispongono di una linea di selezione del chip.","title":"Oggetti comuni del microcontrollore"},{"location":"MCU_Commands.html#comandi-comuni","text":"Questa sezione elenca alcuni comandi comunemente usati durante il run-time. \u00c8 probabilmente di interesse solo per gli sviluppatori che cercano di ottenere informazioni su Klipper. set_digital_out_pwm_cycle oid=%c cycle_ticks=%u : Questo comando configura un pin come uscita digitale (come creato da config_digital_out) per usare \"software PWM\". 'cycle_ticks' \u00e8 il numero di tick di clock per il ciclo PWM. Poich\u00e9 la commutazione dell'uscita \u00e8 implementata nel software del microcontrollore, si consiglia che 'cycle_ticks' corrisponda a un tempo di 10 ms o superiore. queue_digital_out oid=%c clock=%u on_ticks=%u : Questo comando pianificher\u00e0 una modifica a un pin GPIO dell'uscita digitale per un orario specifico. Per utilizzare questo comando \u00e8 necessario che durante la configurazione del microcontrollore sia stato emesso un comando 'config_digital_out' con lo stesso parametro 'oid'. Se \u00e8 stato chiamato 'set_digital_out_pwm_cycle', allora 'on_ticks' \u00e8 la durata di attivazione (in tick di clock) per il ciclo pwm. Altrimenti, 'on_ticks' dovrebbe essere 0 (per bassa tensione) o 1 (per alta tensione). queue_pwm_out oid=%c clock=%u value=%hu : Pianifica una modifica a un pin di uscita PWM hardware. Per ulteriori informazioni, vedere i comandi 'queue_digital_out' e 'config_pwm_out'. query_analog_in oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u min_value=%hu max_value=%hu : Questo comando imposta una pianificazione ricorrente di campionamenti di un ingresso analogico. Per utilizzare questo comando \u00e8 necessario che durante la configurazione del microcontrollore sia stato emesso un comando 'config_analog_in' con lo stesso parametro 'oid'. I campioni inizieranno a partire dall'ora 'clock', riporter\u00e0 sul valore ottenuto ogni tick di clock 'rest_ticks', sovracampioner\u00e0 il numero di 'sample_count' e metter\u00e0 in pausa il numero di tick di clock 'sample_ticks' tra i sovacampionamenti. I parametri 'min_value' e 'max_value' implementano una funzione di sicurezza: il software del microcontrollore verificher\u00e0 che il valore campionato (dopo qualsiasi sovracampionamento) sia sempre compreso nell'intervallo fornito. Questo \u00e8 destinato all'uso con pin collegati a termistori che controllano i riscaldatori: pu\u00f2 essere utilizzato per verificare che un riscaldatore rientri in un intervallo di temperatura. get_clock : Questo comando fa s\u00ec che il microcontrollore generi un messaggio di risposta \"clock\". L'host invia questo comando una volta al secondo per ottenere il valore dell'orologio del microcontrollore e per stimare la deriva tra gli orologi dell'host e del microcontrollore. Consente all'host di stimare con precisione l'orologio del microcontrollore.","title":"Comandi comuni"},{"location":"MCU_Commands.html#comandi-motori-passopasso","text":"queue_step oid=%c interval=%u count=%hu add=%hi : Questo comando pianifica il 'conteggio' del numero di passi per il dato stepper, con 'intervallo' il numero di tick di clock tra ogni passo. Il primo passo sar\u00e0 il numero \"intervallo\" di tick di clock dall'ultimo passo programmato per il dato stepper. Se 'add' \u00e8 diverso da zero, l'intervallo verr\u00e0 regolato in base all'importo di 'add' dopo ogni passaggio. Questo comando aggiunge la sequenza intervallo/conteggio/aggiunta data a una coda per stepper. Potrebbero esserci centinaia di queste sequenze in coda durante il normale funzionamento. La nuova sequenza viene aggiunta alla fine della coda e quando ogni sequenza completa il suo numero di \"conteggi\" di passaggi viene estratta dalla parte anteriore della coda. Questo sistema consente al microcontrollore di mettere in coda potenzialmente centinaia di migliaia di passaggi, il tutto con tempi di pianificazione affidabili e prevedibili. set_next_step_dir oid=%c dir=%c : Questo comando specifica il valore del dir_pin che verr\u00e0 utilizzato dal comando queue_step successivo. reset_step_clock oid=%c clock=%u : Normalmente, la temporizzazione del passo \u00e8 relativo all'ultimo passo per un dato stepper. Questo comando azzera l'orologio in modo che il passo successivo sia relativo all'ora fornita. L'host di solito invia questo comando solo all'inizio di una stampa. stepper_get_position oid=%c : Questo comando fa s\u00ec che il microcontrollore generi un messaggio di risposta \"stepper_position\" con la posizione corrente dello stepper. La posizione \u00e8 il numero totale di passi generati con dir=1 meno il numero totale di passi generati con dir=0. endstop_home oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u pin_value=%c : Questo comando viene utilizzato durante le operazioni di \"homing\" dello stepper. Per utilizzare questo comando \u00e8 necessario che durante la configurazione del microcontrollore sia stato emesso un comando 'config_endstop' con lo stesso parametro 'oid'. Quando viene invocato questo comando, il microcontrollore campiona il pin finecorsa ogni tick di clock \"rest_ticks\" e controlla se ha un valore uguale a \"pin_value\". Se il valore corrisponde (e continua a corrispondere per 'sample_count' campioni aggiuntivi separati da 'sample_ticks'), la coda di movimento per lo stepper associato verr\u00e0 cancellata e lo stepper si arrester\u00e0 immediatamente. L'host utilizza questo comando per implementare l'homing: l'host indica al finecorsa di eseguire il campionamento per il trigger endstop e quindi emette una serie di comandi queue_step per spostare uno stepper verso il finecorsa. Una volta che lo stepper raggiunge il finecorsa, il trigger verr\u00e0 rilevato, il movimento verr\u00e0 interrotto e l'host verr\u00e0 informato.","title":"Comandi motori passopasso"},{"location":"MCU_Commands.html#coda-movimento","text":"Ogni comando queue_step utilizza una voce nella \"coda di movimento\" del microcontrollore. Questa coda viene allocata quando riceve il comando \"finalize_config\" e segnala il numero di voci di coda disponibili nei messaggi di risposta \"config\". \u00c8 responsabilit\u00e0 dell'host assicurarsi che ci sia spazio disponibile nella coda prima di inviare un comando queue_step. L'host esegue questa operazione calcolando il completamento di ciascun comando queue_step e pianificando di conseguenza i nuovi comandi queue_step.","title":"Coda movimento"},{"location":"MCU_Commands.html#comandi-spi","text":"spi_transfer oid=%c data=%*s : questo comando fa s\u00ec che il microcontrollore invii dati 'data' al dispositivo spi specificato da 'oid' e genera un messaggio di risposta \"spi_transfer_response\" con i dati restituiti durante la trasmissione . spi_send oid=%c data=%*s : Questo comando \u00e8 simile a \"spi_transfer\", ma non genera un messaggio \"spi_transfer_response\".","title":"Comandi SPI"},{"location":"Manual_Level.html","text":"Livellamento manuale \u00b6 Questo documento descrive gli strumenti per la calibrazione di un finecorsa Z e per l'esecuzione delle regolazioni delle viti di livellamento del piatto. Calibrazione di un finecorsa Z \u00b6 Una posizione precisa del fine corsa Z \u00e8 fondamentale per ottenere stampe di alta qualit\u00e0. Si noti, tuttavia, che la precisione dell'interruttore di fine corsa Z stesso pu\u00f2 essere un fattore limitante. Se si utilizzano i driver per motori passo-passo Trinamic, considerare l'abilitazione del rilevamento fase finecorsa per migliorare la precisione dell'interruttore. Per eseguire una calibrazione del fine corsa Z, portare la stampante in posizione di partenza, comandare alla testina di spostarsi in una posizione Z che sia almeno cinque millimetri sopra il piatto (se non lo \u00e8 gi\u00e0), comandare alla testina di spostarsi in una posizione XY vicino al centro di piatto, quindi vai alla scheda del terminale OctoPrint ed esegui: Z_ENDSTOP_CALIBRATE Quindi segui i passaggi descritti in \"the paper test\" per determinare la distanza effettiva tra l'ugello e il piatto in una determinata posizione. Una volta completati questi passaggi, \u00e8 possibile \"ACCETTARE\" la posizione e salvare i risultati nel file di configurazione con: SAVE_CONFIG \u00c8 preferibile utilizzare un interruttore di fine corsa Z sull'estremit\u00e0 opposta dell'asse Z rispetto al piatto. (L'allontanamento dal piatto \u00e8 pi\u00f9 robusto in quanto generalmente \u00e8 sempre sicuro mettere a home la Z.) Tuttavia, se si deve tornare a home verso il piatto, si consiglia di regolare il finecorsa in modo che si attivi a una piccola distanza (ad es. 0,5 mm ) sopra il piatto. Quasi tutti gli interruttori di fine corsa possono essere premuti in sicurezza a una piccola distanza oltre il punto di attivazione. Fatto ci\u00f2, si dovrebbe scoprire che il comando Z_ENDSTOP_CALIBRATE riporta un piccolo valore positivo (ad esempio, .5mm) per Z position_endstop. L'attivazione del fine corsa mentre si \u00e8 ancora a una certa distanza dal piatto riduce il rischio di incidenti involontari del piatto. Alcune stampanti hanno la capacit\u00e0 di regolare manualmente la posizione dell'interruttore di fine corsa fisico. Tuttavia, si consiglia di eseguire il posizionamento del finecorsa Z nel software con Klipper: una volta che la posizione fisica del finecorsa \u00e8 in una posizione comoda, \u00e8 possibile apportare ulteriori modifiche eseguendo Z_ENDSTOP_CALIBRATE o aggiornando manualmente Z position_endstop nel file di configurazione. Regolazione delle viti di livellamento del piatto \u00b6 Il segreto per ottenere un buon livellamento del piatto con le viti di livellamento \u00e8 utilizzare il sistema di movimento ad alta precisione della stampante durante il processo di livellamento del piatto stesso. Questo viene fatto comandando l'ugello in una posizione vicino a ciascuna vite del piatto e quindi regolando quella vite fino a quando il piatto non \u00e8 a una distanza prestabilita dall'ugello. Klipper ha uno strumento per aiutare con questo. Per utilizzare lo strumento \u00e8 necessario specificare la posizione XY di ciascuna vite. Questo viene fatto creando una sezione di configurazione [bed_screws] . Ad esempio, potrebbe sembrare qualcosa di simile a: [bed_screws] screw1: 100, 50 screw2: 100, 150 screw3: 150, 100 Se una vite del piatto \u00e8 sotto il piatto, specificare la posizione XY direttamente sopra la vite. Se la vite \u00e8 fuori dal piatto, specificare una posizione XY pi\u00f9 vicina alla vite che sia ancora all'interno del raggio del piatto. Una volta che il file di configurazione \u00e8 pronto, esegui RESTART per caricare quella configurazione, quindi puoi avviare lo strumento eseguendo: BED_SCREWS_ADJUST Questo strumento sposter\u00e0 l'ugello della stampante in ciascuna posizione XY della vite e quindi sposter\u00e0 l'ugello a un'altezza Z=0. A questo punto si pu\u00f2 utilizzare la \"prova della carta\" per regolare la vite del piatto direttamente sotto l'ugello. Vedere le informazioni descritte in \"the paper test\" , ma regolare la vite del piatto invece di comandare l'ugello ad altezze diverse. Regolare la vite del piatto finch\u00e9 non c'\u00e8 una piccola quantit\u00e0 di attrito quando si spinge la carta avanti e indietro. Una volta che la vite \u00e8 stata regolata in modo da avvertire una piccola quantit\u00e0 di attrito, eseguire il comando ACCEPT o ADJUSTED . Utilizzare il comando ADJUSTED se la vite del piatto necessita di una regolazione (in genere qualcosa di pi\u00f9 di circa 1/8 di giro della vite). Utilizzare il comando ACCEPT se non sono necessarie modifiche significative. Entrambi i comandi faranno s\u00ec che lo strumento proceda alla vite successiva. (Quando viene utilizzato un comando ADJUSTED , lo strumento pianificher\u00e0 un ciclo aggiuntivo di regolazioni delle viti di appoggio; lo strumento viene completato correttamente quando tutte le viti di appoggio vengono verificate e non richiedono regolazioni significative.) \u00c8 possibile utilizzare il comando 'ABORT' per uscire lo strumento in anticipo. Questo sistema funziona al meglio quando la stampante ha una superficie di stampa piatta (come il vetro) e ha binari diritti. Dopo aver completato con successo lo strumento di livellamento del piatto, il piatto dovrebbe essere pronto per la stampa. Regolazione fine della vite del piatto \u00b6 Se la stampante utilizza tre viti del piatto e tutte e tre le viti sono sotto il piatto, potrebbe essere possibile eseguire una seconda fase di livellamento del piatto \"ad alta precisione\". Questo viene fatto comandando l'ugello in punti in cui il piatto si sposta di una distanza maggiore con ciascuna regolazione della vite del piatto. Ad esempio, considera un piatto con viti nelle posizioni A, B e C: Per ogni regolazione effettuata alla vite del piatto nella posizione C, il piatto osciller\u00e0 lungo un pendolo definito dalle restanti due viti del piatto (mostrate qui come una linea verde). In questa situazione, ogni regolazione della vite del piatto in C sposter\u00e0 il letto nella posizione D di una quantit\u00e0 maggiore rispetto a C. \u00c8 quindi possibile effettuare una regolazione della vite C migliorata quando l'ugello \u00e8 in posizione D. Per abilitare questa funzione, si dovrebbero determinare le coordinate dell'ugello aggiuntive e aggiungerle al file di configurazione. Ad esempio, potrebbe essere simile a: [bed_screws] screw1: 100, 50 screw1_fine_adjust: 0, 0 screw2: 100, 150 screw2_fine_adjust: 300, 300 screw3: 150, 100 screw3_fine_adjust: 0, 100 Quando questa funzione \u00e8 abilitata, lo strumento BED_SCREWS_ADJUST richieder\u00e0 prima le regolazioni grossolane direttamente sopra ogni posizione della vite e, una volta accettate, richieder\u00e0 le regolazioni fini nelle posizioni aggiuntive. Continua a usare ACCEPT e ADJUSTED in ogni posizione. Regolazione delle viti di livellamento del piatto mediante la sonda del piatto \u00b6 Questo \u00e8 un altro modo per calibrare il livello del piatto utilizzando la sonda del piatto. Per utilizzarlo \u00e8 necessario disporre di una sonda Z (BL Touch, Sensore induttivo, ecc). Per abilitare questa funzione, si dovrebbero determinare le coordinate dell'ugello in modo tale che la sonda Z sia sopra le viti, quindi aggiungerle al file di configurazione. Ad esempio, potrebbe essere simile a: [screws_tilt_adjust] screw1: -5, 30 screw1_name: front left screw screw2: 155, 30 screw2_name: front right screw screw3: 155, 190 screw3_name: rear right screw screw4: -5, 190 screw4_name: rear left screw horizontal_move_z: 10. speed: 50. screw_thread: CW-M3 La vite1 \u00e8 sempre il punto di riferimento per le altre, quindi il sistema presume che la vite1 sia all'altezza corretta. Eseguire sempre prima G28 e poi eseguire SCREWS_TILT_CALCULATE - dovrebbe produrre un output simile a: Send: G28 Recv: ok Send: SCREWS_TILT_CALCULATE Recv: // 01:20 means 1 full turn and 20 minutes, CW=clockwise, CCW=counter-clockwise Recv: // front left screw (base) : x=-5.0, y=30.0, z=2.48750 Recv: // front right screw : x=155.0, y=30.0, z=2.36000 : adjust CW 01:15 Recv: // rear right screw : y=155.0, y=190.0, z=2.71500 : adjust CCW 00:50 Recv: // read left screw : x=-5.0, y=190.0, z=2.47250 : adjust CW 00:02 Recv: ok Ci\u00f2 significa che: la vite anteriore sinistra \u00e8 il punto di riferimento non devi cambiarla. la vite anteriore destra deve essere ruotata in senso orario di 1 giro completo e un quarto di giro la vite posteriore destra deve essere ruotata in senso antiorario per '50 minuti' la vite posteriore sinistra deve essere ruotata in senso orario '2 minuti' (non serve va bene) Si noti che \"minuti\" si riferisce ai \"minuti di un quadrante\". Quindi, ad esempio, 15 minuti sono un quarto di giro completo. Ripeti il processo pi\u00f9 volte fino a ottenere un piatto ben livellato, normalmente quando tutte le regolazioni richiedono meno di 6 minuti. Se si utilizza una sonda montata sul lato dell'hotend (ovvero, ha un offset X o Y), tenere presente che la regolazione dell'inclinazione del piatto invalider\u00e0 qualsiasi precedente calibrazione della sonda eseguita con unpiatto inclinato. Assicurarsi di eseguire calibrazione sonda dopo aver regolato le viti del piatto. Il parametro MAX_DEVIATION \u00e8 utile quando viene utilizzata una mesh del piatto salvata, per garantire che il livello del pitto non si sia spostato troppo lontano da dove si trovava quando \u00e8 stata creata la mesh. Ad esempio, SCREWS_TILT_CALCULATE MAX_DEVIATION=0.01 pu\u00f2 essere aggiunto al gcode iniziale personalizzato dello slicer prima del caricamento della mesh. Interromper\u00e0 la stampa se viene superato il limite configurato (0,01 mm in questo esempio), dando all'utente la possibilit\u00e0 di regolare le viti e riavviare la stampa. Il parametro DIRECTION \u00e8 utile se puoi ruotare le viti di regolazione del piatto in una sola direzione. Ad esempio, potresti avere viti che iniziano a stringere nella posizione pi\u00f9 bassa (o pi\u00f9 alta) possibile, che possono essere ruotate solo in una sola direzione, per alzare (o abbassare) il piatto. Se puoi girare le viti solo in senso orario, esegui SCREWS_TILT_CALCULATE DIRECTION=CW . Se puoi ruotarli solo in senso antiorario, esegui SCREWS_TILT_CALCULATE DIRECTION=CCW . Verr\u00e0 scelto un punto di riferimento idoneo in modo tale che il piatto possa essere livellato ruotando tutte le viti nella direzione indicata.","title":"Livellamento manuale"},{"location":"Manual_Level.html#livellamento-manuale","text":"Questo documento descrive gli strumenti per la calibrazione di un finecorsa Z e per l'esecuzione delle regolazioni delle viti di livellamento del piatto.","title":"Livellamento manuale"},{"location":"Manual_Level.html#calibrazione-di-un-finecorsa-z","text":"Una posizione precisa del fine corsa Z \u00e8 fondamentale per ottenere stampe di alta qualit\u00e0. Si noti, tuttavia, che la precisione dell'interruttore di fine corsa Z stesso pu\u00f2 essere un fattore limitante. Se si utilizzano i driver per motori passo-passo Trinamic, considerare l'abilitazione del rilevamento fase finecorsa per migliorare la precisione dell'interruttore. Per eseguire una calibrazione del fine corsa Z, portare la stampante in posizione di partenza, comandare alla testina di spostarsi in una posizione Z che sia almeno cinque millimetri sopra il piatto (se non lo \u00e8 gi\u00e0), comandare alla testina di spostarsi in una posizione XY vicino al centro di piatto, quindi vai alla scheda del terminale OctoPrint ed esegui: Z_ENDSTOP_CALIBRATE Quindi segui i passaggi descritti in \"the paper test\" per determinare la distanza effettiva tra l'ugello e il piatto in una determinata posizione. Una volta completati questi passaggi, \u00e8 possibile \"ACCETTARE\" la posizione e salvare i risultati nel file di configurazione con: SAVE_CONFIG \u00c8 preferibile utilizzare un interruttore di fine corsa Z sull'estremit\u00e0 opposta dell'asse Z rispetto al piatto. (L'allontanamento dal piatto \u00e8 pi\u00f9 robusto in quanto generalmente \u00e8 sempre sicuro mettere a home la Z.) Tuttavia, se si deve tornare a home verso il piatto, si consiglia di regolare il finecorsa in modo che si attivi a una piccola distanza (ad es. 0,5 mm ) sopra il piatto. Quasi tutti gli interruttori di fine corsa possono essere premuti in sicurezza a una piccola distanza oltre il punto di attivazione. Fatto ci\u00f2, si dovrebbe scoprire che il comando Z_ENDSTOP_CALIBRATE riporta un piccolo valore positivo (ad esempio, .5mm) per Z position_endstop. L'attivazione del fine corsa mentre si \u00e8 ancora a una certa distanza dal piatto riduce il rischio di incidenti involontari del piatto. Alcune stampanti hanno la capacit\u00e0 di regolare manualmente la posizione dell'interruttore di fine corsa fisico. Tuttavia, si consiglia di eseguire il posizionamento del finecorsa Z nel software con Klipper: una volta che la posizione fisica del finecorsa \u00e8 in una posizione comoda, \u00e8 possibile apportare ulteriori modifiche eseguendo Z_ENDSTOP_CALIBRATE o aggiornando manualmente Z position_endstop nel file di configurazione.","title":"Calibrazione di un finecorsa Z"},{"location":"Manual_Level.html#regolazione-delle-viti-di-livellamento-del-piatto","text":"Il segreto per ottenere un buon livellamento del piatto con le viti di livellamento \u00e8 utilizzare il sistema di movimento ad alta precisione della stampante durante il processo di livellamento del piatto stesso. Questo viene fatto comandando l'ugello in una posizione vicino a ciascuna vite del piatto e quindi regolando quella vite fino a quando il piatto non \u00e8 a una distanza prestabilita dall'ugello. Klipper ha uno strumento per aiutare con questo. Per utilizzare lo strumento \u00e8 necessario specificare la posizione XY di ciascuna vite. Questo viene fatto creando una sezione di configurazione [bed_screws] . Ad esempio, potrebbe sembrare qualcosa di simile a: [bed_screws] screw1: 100, 50 screw2: 100, 150 screw3: 150, 100 Se una vite del piatto \u00e8 sotto il piatto, specificare la posizione XY direttamente sopra la vite. Se la vite \u00e8 fuori dal piatto, specificare una posizione XY pi\u00f9 vicina alla vite che sia ancora all'interno del raggio del piatto. Una volta che il file di configurazione \u00e8 pronto, esegui RESTART per caricare quella configurazione, quindi puoi avviare lo strumento eseguendo: BED_SCREWS_ADJUST Questo strumento sposter\u00e0 l'ugello della stampante in ciascuna posizione XY della vite e quindi sposter\u00e0 l'ugello a un'altezza Z=0. A questo punto si pu\u00f2 utilizzare la \"prova della carta\" per regolare la vite del piatto direttamente sotto l'ugello. Vedere le informazioni descritte in \"the paper test\" , ma regolare la vite del piatto invece di comandare l'ugello ad altezze diverse. Regolare la vite del piatto finch\u00e9 non c'\u00e8 una piccola quantit\u00e0 di attrito quando si spinge la carta avanti e indietro. Una volta che la vite \u00e8 stata regolata in modo da avvertire una piccola quantit\u00e0 di attrito, eseguire il comando ACCEPT o ADJUSTED . Utilizzare il comando ADJUSTED se la vite del piatto necessita di una regolazione (in genere qualcosa di pi\u00f9 di circa 1/8 di giro della vite). Utilizzare il comando ACCEPT se non sono necessarie modifiche significative. Entrambi i comandi faranno s\u00ec che lo strumento proceda alla vite successiva. (Quando viene utilizzato un comando ADJUSTED , lo strumento pianificher\u00e0 un ciclo aggiuntivo di regolazioni delle viti di appoggio; lo strumento viene completato correttamente quando tutte le viti di appoggio vengono verificate e non richiedono regolazioni significative.) \u00c8 possibile utilizzare il comando 'ABORT' per uscire lo strumento in anticipo. Questo sistema funziona al meglio quando la stampante ha una superficie di stampa piatta (come il vetro) e ha binari diritti. Dopo aver completato con successo lo strumento di livellamento del piatto, il piatto dovrebbe essere pronto per la stampa.","title":"Regolazione delle viti di livellamento del piatto"},{"location":"Manual_Level.html#regolazione-fine-della-vite-del-piatto","text":"Se la stampante utilizza tre viti del piatto e tutte e tre le viti sono sotto il piatto, potrebbe essere possibile eseguire una seconda fase di livellamento del piatto \"ad alta precisione\". Questo viene fatto comandando l'ugello in punti in cui il piatto si sposta di una distanza maggiore con ciascuna regolazione della vite del piatto. Ad esempio, considera un piatto con viti nelle posizioni A, B e C: Per ogni regolazione effettuata alla vite del piatto nella posizione C, il piatto osciller\u00e0 lungo un pendolo definito dalle restanti due viti del piatto (mostrate qui come una linea verde). In questa situazione, ogni regolazione della vite del piatto in C sposter\u00e0 il letto nella posizione D di una quantit\u00e0 maggiore rispetto a C. \u00c8 quindi possibile effettuare una regolazione della vite C migliorata quando l'ugello \u00e8 in posizione D. Per abilitare questa funzione, si dovrebbero determinare le coordinate dell'ugello aggiuntive e aggiungerle al file di configurazione. Ad esempio, potrebbe essere simile a: [bed_screws] screw1: 100, 50 screw1_fine_adjust: 0, 0 screw2: 100, 150 screw2_fine_adjust: 300, 300 screw3: 150, 100 screw3_fine_adjust: 0, 100 Quando questa funzione \u00e8 abilitata, lo strumento BED_SCREWS_ADJUST richieder\u00e0 prima le regolazioni grossolane direttamente sopra ogni posizione della vite e, una volta accettate, richieder\u00e0 le regolazioni fini nelle posizioni aggiuntive. Continua a usare ACCEPT e ADJUSTED in ogni posizione.","title":"Regolazione fine della vite del piatto"},{"location":"Manual_Level.html#regolazione-delle-viti-di-livellamento-del-piatto-mediante-la-sonda-del-piatto","text":"Questo \u00e8 un altro modo per calibrare il livello del piatto utilizzando la sonda del piatto. Per utilizzarlo \u00e8 necessario disporre di una sonda Z (BL Touch, Sensore induttivo, ecc). Per abilitare questa funzione, si dovrebbero determinare le coordinate dell'ugello in modo tale che la sonda Z sia sopra le viti, quindi aggiungerle al file di configurazione. Ad esempio, potrebbe essere simile a: [screws_tilt_adjust] screw1: -5, 30 screw1_name: front left screw screw2: 155, 30 screw2_name: front right screw screw3: 155, 190 screw3_name: rear right screw screw4: -5, 190 screw4_name: rear left screw horizontal_move_z: 10. speed: 50. screw_thread: CW-M3 La vite1 \u00e8 sempre il punto di riferimento per le altre, quindi il sistema presume che la vite1 sia all'altezza corretta. Eseguire sempre prima G28 e poi eseguire SCREWS_TILT_CALCULATE - dovrebbe produrre un output simile a: Send: G28 Recv: ok Send: SCREWS_TILT_CALCULATE Recv: // 01:20 means 1 full turn and 20 minutes, CW=clockwise, CCW=counter-clockwise Recv: // front left screw (base) : x=-5.0, y=30.0, z=2.48750 Recv: // front right screw : x=155.0, y=30.0, z=2.36000 : adjust CW 01:15 Recv: // rear right screw : y=155.0, y=190.0, z=2.71500 : adjust CCW 00:50 Recv: // read left screw : x=-5.0, y=190.0, z=2.47250 : adjust CW 00:02 Recv: ok Ci\u00f2 significa che: la vite anteriore sinistra \u00e8 il punto di riferimento non devi cambiarla. la vite anteriore destra deve essere ruotata in senso orario di 1 giro completo e un quarto di giro la vite posteriore destra deve essere ruotata in senso antiorario per '50 minuti' la vite posteriore sinistra deve essere ruotata in senso orario '2 minuti' (non serve va bene) Si noti che \"minuti\" si riferisce ai \"minuti di un quadrante\". Quindi, ad esempio, 15 minuti sono un quarto di giro completo. Ripeti il processo pi\u00f9 volte fino a ottenere un piatto ben livellato, normalmente quando tutte le regolazioni richiedono meno di 6 minuti. Se si utilizza una sonda montata sul lato dell'hotend (ovvero, ha un offset X o Y), tenere presente che la regolazione dell'inclinazione del piatto invalider\u00e0 qualsiasi precedente calibrazione della sonda eseguita con unpiatto inclinato. Assicurarsi di eseguire calibrazione sonda dopo aver regolato le viti del piatto. Il parametro MAX_DEVIATION \u00e8 utile quando viene utilizzata una mesh del piatto salvata, per garantire che il livello del pitto non si sia spostato troppo lontano da dove si trovava quando \u00e8 stata creata la mesh. Ad esempio, SCREWS_TILT_CALCULATE MAX_DEVIATION=0.01 pu\u00f2 essere aggiunto al gcode iniziale personalizzato dello slicer prima del caricamento della mesh. Interromper\u00e0 la stampa se viene superato il limite configurato (0,01 mm in questo esempio), dando all'utente la possibilit\u00e0 di regolare le viti e riavviare la stampa. Il parametro DIRECTION \u00e8 utile se puoi ruotare le viti di regolazione del piatto in una sola direzione. Ad esempio, potresti avere viti che iniziano a stringere nella posizione pi\u00f9 bassa (o pi\u00f9 alta) possibile, che possono essere ruotate solo in una sola direzione, per alzare (o abbassare) il piatto. Se puoi girare le viti solo in senso orario, esegui SCREWS_TILT_CALCULATE DIRECTION=CW . Se puoi ruotarli solo in senso antiorario, esegui SCREWS_TILT_CALCULATE DIRECTION=CCW . Verr\u00e0 scelto un punto di riferimento idoneo in modo tale che il piatto possa essere livellato ruotando tutte le viti nella direzione indicata.","title":"Regolazione delle viti di livellamento del piatto mediante la sonda del piatto"},{"location":"Measuring_Resonances.html","text":"Misurazione delle risonanze \u00b6 Klipper ha il supporto integrato per l'accelerometro ADXL345, che pu\u00f2 essere utilizzato per misurare le frequenze di risonanza della stampante per diversi assi, e per l'autotuning input shapers per compensare le risonanze. Si noti che l'utilizzo di ADXL345 richiede alcune operazioni di saldatura e crimpatura. ADXL345 pu\u00f2 essere collegato direttamente a un Raspberry Pi o a un'interfaccia SPI di una scheda MCU (deve essere ragionevolmente veloce). Quando acquisti ADXL345, tieni presente che esiste una variet\u00e0 di diversi design di schede PCB e diversi cloni di essi. Assicurati che la scheda supporti la modalit\u00e0 SPI (un piccolo numero di schede sembra essere configurato in modo rigido per I2C trascinando SDO su GND) e, se deve essere collegato a un MCU per stampante da 5 V, che abbia un regolatore di tensione e un cambio di livello. Istruzioni per l'installazione \u00b6 Cablaggio \u00b6 Devi connettere ADXL345 al tuo Raspberry Pi tramite SPI. Si noti che la connessione I2C, suggerita dalla documentazione di ADXL345, ha un throughput troppo basso e non funzioner\u00e0 . Lo schema di connessione consigliato: ADXL345 pin RPi pin Nome pin RPi 3V3 (or VCC) 01 3.3v alimentazione DC GND 06 Ground CS 24 GPIO08 (SPI0_CE0_N) SDO 21 GPIO09 (SPI0_MISO) SDA 19 GPIO10 (SPI0_MOSI) SCL 23 GPIO11 (SPI0_SCLK) Un'alternativa all'ADXL345 \u00e8 l'MPU-9250 (o MPU-6050). Questo accelerometro \u00e8 stato testato per funzionare su I2C su RPi a 400kbaud. Schema di connessione consigliato per I2C: pin MPU-9250 RPi pin Nome pin RPi 3V3 (or VCC) 01 3.3v alimentazione DC GND 09 Ground SDA 03 GPIO02 (SDA1) SCL 05 GPIO03 (SCL1) Schemi collegamenti Fritzing per alcune delle schede ADXL345: Ricontrolla il cablaggio prima di accendere il Raspberry Pi per evitare di danneggiare RPi o l'accelerometro. Montaggio dell'accelerometro \u00b6 L'accelerometro deve essere collegato alla testa di stampa. \u00c8 necessario progettare un supporto adeguato che si adatti alla propria stampante 3D. \u00c8 meglio allineare gli assi dell'accelerometro con gli assi della stampante (ma se lo rende pi\u00f9 comodo, gli assi possono essere scambiati - cio\u00e8 non c'\u00e8 bisogno di allineare l'asse X con X e cos\u00ec via - dovrebbe andare bene anche se l'asse Z di l'accelerometro \u00e8 l'asse X della stampante, ecc.). Un esempio di montaggio di ADXL345 su SmartEffect: Si noti che su una stampante con piatto mobile \u00e8 necessario progettare 2 supporti: uno per la testina e uno per il piatto, ed eseguire le misurazioni due volte. Per maggiori dettagli, vedere la sezione corrispondente. Attenzione: assicurati che l'accelerometro e le eventuali viti che lo tengono in posizione non tocchino parti metalliche della stampante. Fondamentalmente, il supporto deve essere progettato in modo tale da garantire l'isolamento elettrico dell'accelerometro dal telaio della stampante. Non riuscendo a garantire che pu\u00f2 creare un loop di massa nel sistema che potrebbe danneggiare l'elettronica. Installazione software \u00b6 Si noti che le misurazioni della risonanza e la calibrazione automatica dello shaper richiedono dipendenze software aggiuntive non installate per impostazione predefinita. Innanzitutto, esegui sul tuo Raspberry Pi i seguenti comandi: sudo apt update sudo apt install python3-numpy python3-matplotlib libatlas-base-dev Quindi, per installare NumPy nell'ambiente Klipper, esegui il comando: ~/klippy-env/bin/pip install -v numpy Nota che, a seconda delle prestazioni della CPU, potrebbe volerci molto tempo, fino a 10-20 minuti. Sii paziente e attendi il completamento dell'installazione. In alcune occasioni, se la scheda ha poca RAM, l'installazione potrebbe non riuscire e sar\u00e0 necessario abilitare la swap. Successivamente, controlla e segui le istruzioni nel documento RPi Microcontroller per configurare \"linux mcu\" sul Raspberry Pi. Assicurati che il driver SPI di Linux sia abilitato eseguendo sudo raspi-config e abilitando SPI nel menu \"Opzioni di interfaccia\". Per ADXL345, aggiungere quanto segue al file printer.cfg: [mcu rpi] serial: /tmp/klipper_host_mcu [adxl345] cs_pin: rpi:None [resonance_tester] accel_chip: adxl345 probe_points: 100, 100, 20 # un esempio Si consiglia di iniziare con 1 punto sonda, al centro del piano di stampa, leggermente al di sopra di esso. Per l'MPU-9250, assicurarsi che il driver Linux I2C sia abilitato e che la velocit\u00e0 di trasmissione sia impostata su 400000 (consultare la sezione Abilitazione di I2C per maggiori dettagli). Quindi, aggiungi quanto segue a printer.cfg: [mcu rpi] serial: /tmp/klipper_host_mcu [mpu9250] i2c_mcu: rpi i2c_bus: i2c.1 [resonance_tester] accel_chip: mpu9250 probe_points: 100, 100, 20 # un esempio Riavvia Klipper tramite il comando RESTART . Misurare le risonanze \u00b6 Controllo della configurazione \u00b6 Ora puoi testare una connessione. Per \"per piatti non scorrevoli\" (es. un accelerometro), in Octoprint, inserisci ACCELEROMETER_QUERY Per \"piatti scorrevoli\" (ad es. pi\u00f9 di un accelerometro), immettere ACCELEROMETER_QUERY CHIP=<chip> dove <chip> \u00e8 il nome del chip immesso, ad es. CHIP=piatto (vedi: bed-slinger ) per tutti i chip dell'accelerometro installati. Dovresti vedere le misurazioni attuali dall'accelerometro, inclusa l'accelerazione di caduta libera, ad es. Recv: // adxl345 values (x, y, z): 470.719200, 941.438400, 9728.196800 Se ricevi un errore come Invalid adxl345 id (got xx vs e5) , dove xx \u00e8 un altro ID, \u00e8 indicativo del problema di connessione con ADXL345 o del sensore difettoso. Ricontrolla l'alimentazione, il cablaggio (che corrisponda agli schemi, nessun filo \u00e8 rotto o allentato, ecc.) e la qualit\u00e0 delle saldature. Quindi, prova a eseguire MEASURE_AXES_NOISE in Octoprint, dovresti ottenere alcuni numeri di riferimento per il rumore dell'accelerometro sugli assi (dovrebbe essere compreso tra ~1-100). Un rumore degli assi troppo elevato (ad es. 1000 e pi\u00f9) pu\u00f2 essere indicativo di problemi con il sensore, problemi con la sua alimentazione o ventole sbilanciate troppo rumorose su una stampante 3D. Misurare le risonanze \u00b6 Ora puoi eseguire alcuni test realistici. Esegui il seguente comando: TEST_RESONANCES AXIS=X Nota che creer\u00e0 vibrazioni sull'asse X. Disabiliter\u00e0 anche l'input shaping se era stato abilitato in precedenza, poich\u00e9 non \u00e8 valido eseguire il test di risonanza con l'input shaper abilitato. Attenzione! Assicurati di osservare la stampante per la prima volta, per assicurarti che le vibrazioni non diventino troppo violente (il comando M112 pu\u00f2 essere utilizzato per interrompere il test in caso di emergenza; si spera che non si verifichi questo per\u00f2). Se le vibrazioni diventano troppo forti, puoi provare a specificare un valore inferiore al valore predefinito per il parametro accel_per_hz nella sezione [resonance_tester] , ad es. [resonance_tester] accel_chip: adxl345 accel_per_hz: 50 # default \u00e8 75 probe_points: ... Se funziona per l'asse X, esegui anche per l'asse Y: TEST_RESONANCES AXIS=Y Questo generer\u00e0 2 file CSV ( /tmp/resonances_x_*.csv e /tmp/resonances_y_*.csv ). Questi file possono essere elaborati con lo script autonomo su un Raspberry Pi. Per farlo, esegui i seguenti comandi: ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_y_*.csv -o /tmp/shaper_calibrate_y.png Questo script generer\u00e0 i grafici /tmp/shaper_calibrate_x.png e /tmp/shaper_calibrate_y.png con le risposte in frequenza. Riceverai anche le frequenze suggerite per ogni input shaper, nonch\u00e9 quale input shaper \u00e8 consigliato per la tua configurazione. Per esempio: Fitted shaper 'zv' frequency = 34.4 Hz (vibrations = 4.0%, smoothing ~= 0.132) To avoid too much smoothing with 'zv', suggested max_accel <= 4500 mm/sec^2 Fitted shaper 'mzv' frequency = 34.6 Hz (vibrations = 0.0%, smoothing ~= 0.170) To avoid too much smoothing with 'mzv', suggested max_accel <= 3500 mm/sec^2 Fitted shaper 'ei' frequency = 41.4 Hz (vibrations = 0.0%, smoothing ~= 0.188) To avoid too much smoothing with 'ei', suggested max_accel <= 3200 mm/sec^2 Fitted shaper '2hump_ei' frequency = 51.8 Hz (vibrations = 0.0%, smoothing ~= 0.201) To avoid too much smoothing with '2hump_ei', suggested max_accel <= 3000 mm/sec^2 Fitted shaper '3hump_ei' frequency = 61.8 Hz (vibrations = 0.0%, smoothing ~= 0.215) To avoid too much smoothing with '3hump_ei', suggested max_accel <= 2800 mm/sec^2 Recommended shaper is mzv @ 34.6 Hz La configurazione suggerita pu\u00f2 essere aggiunta alla sezione [input_shaper] di printer.cfg , ad esempio: [input_shaper] shaper_freq_x: ... shaper_type_x: ... shaper_freq_y: 34.6 shaper_type_y: mzv [printer] max_accel: 3000 # non dovrebbe superare il max_accel stimato per gli assi X e Y oppure puoi scegliere tu stesso un'altra configurazione in base ai grafici generati: i picchi nella densit\u00e0 spettrale di potenza sui grafici corrispondono alle frequenze di risonanza della stampante. Nota che in alternativa puoi eseguire l'autocalibrazione dello input shaper da Klipper directly , che pu\u00f2 essere conveniente, ad esempio, per lo input shaper re-calibration . Stampanti con piatto scorrevole \u00b6 Se la tua stampante ha un piatto scorrevole, dovrai cambiare la posizione dell'accelerometro tra le misurazioni per gli assi X e Y: misurare le risonanze dell'asse X con l'accelerometro collegato alla testa di stampa e le risonanze dell'asse Y - al piatto. Tuttavia, puoi anche collegare due accelerometri contemporaneamente, sebbene debbano essere collegati a schede diverse (ad esempio, a una scheda RPi e MCU della stampante) o a due diverse interfacce SPI fisiche sulla stessa scheda (raramente disponibili). Quindi possono essere configurati nel modo seguente: [adxl345 hotend] # Supponendo che il chip \"hotend\" sia collegato a un RPi cs_pin: rpi:None [adxl345 bed] # Supponendo che il chip `bed` sia collegato a una scheda MCU della stampante cs_pin: ... # Pin di selezione chip SPI (CS) della scheda stampante [resonance_tester] # Assumendo la configurazione tipo della stampante con piatto scorrevole accel_chip_x: adxl345 hotend accel_chip_y: adxl345 bed probe_points: ... Quindi i comandi TEST_RESONANCES AXIS=X e TEST_RESONANCES AXIS=Y utilizzeranno l'accelerometro corretto per ciascun asse. Max smoothing \u00b6 Tieni presente che lo input shaper pu\u00f2 creare un po' di smoothing nelle parti. La regolazione automatica del input shaper eseguita dallo script calibrate_shaper.py o dal comando SHAPER_CALIBRATE cercano di non esacerbare lo smoothing, ma allo stesso tempo cercano di ridurre al minimo le vibrazioni risultanti. A volte possono fare una scelta non ottimale della frequenza dello shaper, o forse semplicemente preferisci avere meno smoothing in alcune parti a scapito di maggiori vibrazioni residue. In questi casi \u00e8 possibile richiedere di limitare lo smoothing massimo dal input shaper. Consideriamo i seguenti risultati della sintonizzazione automatica: Fitted shaper 'zv' frequency = 57.8 Hz (vibrations = 20.3%, smoothing ~= 0.053) To avoid too much smoothing with 'zv', suggested max_accel <= 13000 mm/sec^2 Fitted shaper 'mzv' frequency = 34.8 Hz (vibrations = 3.6%, smoothing ~= 0.168) To avoid too much smoothing with 'mzv', suggested max_accel <= 3600 mm/sec^2 Fitted shaper 'ei' frequency = 48.8 Hz (vibrations = 4.9%, smoothing ~= 0.135) To avoid too much smoothing with 'ei', suggested max_accel <= 4400 mm/sec^2 Fitted shaper '2hump_ei' frequency = 45.2 Hz (vibrations = 0.1%, smoothing ~= 0.264) To avoid too much smoothing with '2hump_ei', suggested max_accel <= 2200 mm/sec^2 Fitted shaper '3hump_ei' frequency = 48.0 Hz (vibrations = 0.0%, smoothing ~= 0.356) To avoid too much smoothing with '3hump_ei', suggested max_accel <= 1500 mm/sec^2 Recommended shaper is 2hump_ei @ 45.2 Hz Si noti che i valori di smoothing riportati sono alcuni valori proiettati. Questi valori possono essere utilizzati per confrontare diverse configurazioni: maggiore \u00e8 il valore, maggiore sar\u00e0 la levigatura creata da uno shaper. Tuttavia, questi punteggi di smoothing non rappresentano alcuna misura reale dello smoothing, perch\u00e9 lo smoothing effettivo dipende dai parametri max_accel e square_corner_velocity . Pertanto, \u00e8 necessario eseguire alcune stampe di prova per vedere quanta smoothing crea esattamente una configurazione scelta. Nell'esempio sopra i parametri dello shaper suggeriti non sono male, ma cosa succede se si desidera ottenere meno smooting sull'asse X? Puoi provare a limitare lo smoothing massimo dello shaper usando il seguente comando: ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png --max_smoothing=0.2 che limita lo smoothing a un punteggio di 0.2. Ora puoi ottenere il seguente risultato: Fitted shaper 'zv' frequency = 55.4 Hz (vibrations = 19.7%, smoothing ~= 0.057) To avoid too much smoothing with 'zv', suggested max_accel <= 12000 mm/sec^2 Fitted shaper 'mzv' frequency = 34.6 Hz (vibrations = 3.6%, smoothing ~= 0.170) To avoid too much smoothing with 'mzv', suggested max_accel <= 3500 mm/sec^2 Fitted shaper 'ei' frequency = 48.2 Hz (vibrations = 4.8%, smoothing ~= 0.139) To avoid too much smoothing with 'ei', suggested max_accel <= 4300 mm/sec^2 Fitted shaper '2hump_ei' frequency = 52.0 Hz (vibrations = 2.7%, smoothing ~= 0.200) To avoid too much smoothing with '2hump_ei', suggested max_accel <= 3000 mm/sec^2 Fitted shaper '3hump_ei' frequency = 72.6 Hz (vibrations = 1.4%, smoothing ~= 0.155) To avoid too much smoothing with '3hump_ei', suggested max_accel <= 3900 mm/sec^2 Recommended shaper is 3hump_ei @ 72.6 Hz Se si confronta con i parametri suggeriti in precedenza, le vibrazioni sono un po' maggiori, ma lo smoothing \u00e8 notevolmente inferiore rispetto a prima, consentendo un'accelerazione massima maggiore. Quando si decide quale parametro max_smoothing scegliere, \u00e8 possibile utilizzare un approccio per tentativi. Prova alcuni valori diversi e guarda quali risultati ottieni. Si noti che lo smoothing effettivo prodotto dall'input shaper dipende principalmente dalla frequenza di risonanza pi\u00f9 bassa della stampante: maggiore \u00e8 la frequenza della risonanza pi\u00f9 bassa, minore \u00e8 lo smoothing. Pertanto, se si richiede allo script di trovare una configurazione dell'input shaper con lo smoothing irrealisticamente piccolo, sar\u00e0 a scapito di un aumento del ringing alle frequenze di risonanza pi\u00f9 basse (che sono, in genere, anche pi\u00f9 visibili nelle stampe). Quindi, ricontrolla sempre le vibrazioni rimanenti previste riportate dallo script e assicurati che non siano troppo alte. Nota che se hai scelto un buon valore max_smoothing per entrambi gli assi, puoi salvarlo in printer.cfg come [resonance_tester] accel_chip: ... probe_points: ... max_smoothing: 0.25 # un esempio Quindi, se riesegui l'autotuning dello shaper di input usando il comando Klipper SHAPER_CALIBRATE in futuro, utilizzer\u00e0 il valore max_smoothing memorizzato come riferimento. Seleziona max_accel \u00b6 Poich\u00e9 l'input shaper pu\u00f2 creare un po' di smussamento nelle parti, specialmente ad accelerazioni elevate, sar\u00e0 comunque necessario scegliere il valore max_accel che non crei troppo smussamento \"smoothing\" nelle parti stampate. Uno script di calibrazione fornisce una stima per il parametro max_accel che non dovrebbe creare un smoothing eccessivo. Si noti che il max_accel visualizzato dallo script di calibrazione \u00e8 solo un massimo teorico al quale il rispettivo shaper \u00e8 ancora in grado di lavorare senza produrre troppo smoothing. Non \u00e8 affatto una raccomandazione impostare questa accelerazione per la stampa. L'accelerazione massima che la stampante \u00e8 in grado di sostenere dipende dalle sue propriet\u00e0 meccaniche e dalla coppia massima dei motori passo-passo utilizzati. Pertanto, si suggerisce di impostare max_accel nella sezione [printer] che non superi i valori stimati per gli assi X e Y, probabilmente con un margine di sicurezza conservativo. In alternativa, segui questa parte della guida all'ottimizzazione dello input shaper e stampa il modello di test per scegliere sperimentalmente il parametro max_accel . Lo stesso avviso vale per lo input shaper auto-calibration con il comando SHAPER_CALIBRATE : \u00e8 comunque necessario scegliere il giusto valore di max_accel dopo l'auto-calibrazione, e il i limiti di accelerazione non verranno applicati automaticamente. Se stai eseguendo una ricalibrazione dello shaper e lo smoothing riportato per la configurazione dello shaper suggerita \u00e8 quasi lo stesso di quello ottenuto durante la calibrazione precedente, questo passaggio pu\u00f2 essere saltato. Test di assi personalizzati \u00b6 Il comando TEST_RESONANCES supporta assi personalizzati. Anche se questo non \u00e8 molto utile per la calibrazione del input shaper, pu\u00f2 essere utilizzato per studiare in profondit\u00e0 le risonanze della stampante e per controllare, ad esempio, la tensione della cinghia. Per controllare la tensione della cinghia sulle stampanti CoreXY, eseguire TEST_RESONANCES AXIS=1,1 OUTPUT=raw_data TEST_RESONANCES AXIS=1,-1 OUTPUT=raw_data e usa graph_accelerometer.py per elaborare i file generati, ad es. ~/klipper/scripts/graph_accelerometer.py -c /tmp/raw_data_axis*.csv -o /tmp/resonances.png che generer\u00e0 /tmp/resonances.png confrontando le risonanze. Per le stampanti Delta con la posizione della torre predefinita (torre A ~= 210 gradi, B ~= 330 gradi e C ~= 90 gradi), eseguire TEST_RESONANCES AXIS=0,1 OUTPUT=raw_data TEST_RESONANCES AXIS=-0.866025404,-0.5 OUTPUT=raw_data TEST_RESONANCES AXIS=0.866025404,-0.5 OUTPUT=raw_data e quindi utilizzare lo stesso comando ~/klipper/scripts/graph_accelerometer.py -c /tmp/raw_data_axis*.csv -o /tmp/resonances.png per generare /tmp/resonances.png confrontando le risonanze. Calibrazione automatica Input Shaper \u00b6 Oltre a scegliere manualmente i parametri appropriati per la funzione di input shaper, \u00e8 anche possibile eseguire l'autotuning per l'input shaper direttamente da Klipper. Esegui il seguente comando tramite il terminale Octoprint: SHAPER_CALIBRATE Questo eseguir\u00e0 il test completo per entrambi gli assi e generer\u00e0 l'output csv ( /tmp/calibration_data_*.csv per impostazione predefinita) per la risposta in frequenza e gli input shaper suggeriti. Riceverai anche le frequenze suggerite per ciascun input shaper, nonch\u00e9 quale input shaper \u00e8 consigliato per la tua configurazione, sulla console Octoprint. Per esempio: Calculating the best input shaper parameters for y axis Fitted shaper 'zv' frequency = 39.0 Hz (vibrations = 13.2%, smoothing ~= 0.105) To avoid too much smoothing with 'zv', suggested max_accel <= 5900 mm/sec^2 Fitted shaper 'mzv' frequency = 36.8 Hz (vibrations = 1.7%, smoothing ~= 0.150) To avoid too much smoothing with 'mzv', suggested max_accel <= 4000 mm/sec^2 Fitted shaper 'ei' frequency = 36.6 Hz (vibrations = 2.2%, smoothing ~= 0.240) To avoid too much smoothing with 'ei', suggested max_accel <= 2500 mm/sec^2 Fitted shaper '2hump_ei' frequency = 48.0 Hz (vibrations = 0.0%, smoothing ~= 0.234) To avoid too much smoothing with '2hump_ei', suggested max_accel <= 2500 mm/sec^2 Fitted shaper '3hump_ei' frequency = 59.0 Hz (vibrations = 0.0%, smoothing ~= 0.235) To avoid too much smoothing with '3hump_ei', suggested max_accel <= 2500 mm/sec^2 Recommended shaper_type_y = mzv, shaper_freq_y = 36.8 Hz Se sei d'accordo con i parametri suggeriti, puoi eseguire ora SAVE_CONFIG per salvarli e riavviare Klipper. Nota che questo non aggiorner\u00e0 il valore max_accel nella sezione [printer] . Dovresti aggiornarlo manualmente seguendo le considerazioni nella sezione Selecting max_accel . Se la tua stampante \u00e8 una stampante a piatto mobile, puoi specificare quale asse testare, in modo da poter cambiare il punto di montaggio dell'accelerometro tra i test (per impostazione predefinita, il test viene eseguito per entrambi gli assi): SHAPER_CALIBRATE AXIS=Y \u00c8 possibile eseguire SAVE_CONFIG due volte, dopo aver calibrato ciascun asse. Tuttavia, se hai collegato due accelerometri contemporaneamente, esegui semplicemente SHAPER_CALIBRATE senza specificare un asse per calibrare l' input shaper per entrambi gli assi in una volta sola. Input Shaper ricalibrazione \u00b6 Il comando SHAPER_CALIBRATE pu\u00f2 essere utilizzato anche per ricalibrare lo shaper di input in futuro, specialmente se vengono apportate alcune modifiche alla stampante che possono influire sulla sua cinematica. \u00c8 possibile eseguire nuovamente la calibrazione completa utilizzando il comando SHAPER_CALIBRATE , o limitare l'autocalibrazione a un singolo asse fornendo il parametro AXIS= , come SHAPER_CALIBRATE AXIS=X Attenzione! Non \u00e8 consigliabile eseguire l'autocalibrazione dello shaper molto frequentemente (ad es. prima di ogni stampa o ogni giorno). Per determinare le frequenze di risonanza, l'autocalibrazione crea intense vibrazioni su ciascuno degli assi. Generalmente, le stampanti 3D non sono progettate per resistere a un'esposizione prolungata a vibrazioni vicino alle frequenze di risonanza. Ci\u00f2 potrebbe aumentare l'usura dei componenti della stampante e ridurne la durata. C'\u00e8 anche un aumento del rischio che alcune parti si svitino o si allentino. Verificare sempre che tutte le parti della stampante (comprese quelle che normalmente potrebbero non muoversi) siano fissate saldamente in posizione dopo ogni autotuning. Inoltre, a causa di un po' di rumore nelle misurazioni, \u00e8 possibile che i risultati dell'ottimizzazione siano leggermente diversi da una calibrazione all'altra. Tuttavia, non ci si aspetta che il rumore influisca troppo sulla qualit\u00e0 di stampa. Tuttavia, si consiglia comunque di ricontrollare i parametri suggeriti e di stampare alcune stampe di prova prima di utilizzarli per confermare che siano corretti. Elaborazione offline dei dati dell'accelerometro \u00b6 \u00c8 possibile generare i dati grezzi dell'accelerometro ed elaborarli offline (ad esempio su una macchina host), ad esempio per trovare risonanze. Per fare ci\u00f2, esegui i seguenti comandi tramite il terminale Octoprint: SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0 TEST_RESONANCES AXIS=X OUTPUT=raw_data ignorando eventuali errori per il comando SET_INPUT_SHAPER . Per il comando TEST_RESONANCES , specificare l'asse di test desiderato. I dati grezzi verranno scritti nella directory /tmp sull'RPi. I dati grezzi possono anche essere ottenuti eseguendo il comando ACCELEROMETER_MEASURE due volte durante una normale attivit\u00e0 della stampante: prima per avviare le misurazioni, quindi per interromperle e scrivere il file di output. Fare riferimento a G-Codes per maggiori dettagli. I dati possono essere elaborati successivamente dai seguenti script: scripts/graph_accelerometer.py e scripts/calibrate_shaper.py . Entrambi accettano uno o pi\u00f9 file CSV non elaborati come input a seconda della modalit\u00e0. Lo script graph_accelerometer.py supporta diverse modalit\u00e0 operative: tracciando i dati grezzi dell'accelerometro (usa il parametro -r ), \u00e8 supportato solo 1 input; tracciando una risposta in frequenza (non sono richiesti parametri aggiuntivi), se sono specificati pi\u00f9 ingressi, viene calcolata la risposta in frequenza media; confronto della risposta in frequenza tra pi\u00f9 ingressi (usare il parametro -c ); puoi inoltre specificare quale asse dell'accelerometro considerare tramite il parametro -a x , -a y o -a z (se non specificato, viene utilizzata la somma delle vibrazioni per tutti gli assi); tracciando lo spettrogramma (usare il parametro -s ), \u00e8 supportato solo 1 input; \u00e8 inoltre possibile specificare quale asse dell'accelerometro considerare tramite il parametro -a x , -a y o -a z (se non specificato, viene utilizzata la somma delle vibrazioni per tutti gli assi). Si noti che lo script graph_accelerometer.py supporta solo i file raw_data*.csv e non i file resonances*.csv o calibration_data*.csv. Per esempio, ~/klipper/scripts/graph_accelerometer.py /tmp/raw_data_x_*.csv -o /tmp/resonances_x.png -c -a z traccer\u00e0 il confronto di diversi file /tmp/raw_data_x_*.csv per l'asse Z con il file /tmp/resonances_x.png . Lo script shaper_calibrate.py accetta 1 o pi\u00f9 input e pu\u00f2 eseguire l'ottimizzazione automatica dello shaper di input e suggerire i parametri migliori che funzionano bene per tutti gli input forniti. Stampa i parametri suggeriti sulla console e pu\u00f2 inoltre generare il grafico se viene fornito il parametro -o output.png , o il file CSV se viene specificato il parametro -c output.csv . Fornire diversi input allo script shaper_calibrate.py pu\u00f2 essere utile se si esegue un'ottimizzazione avanzata degli shaper di input, ad esempio: Esecuzione di TEST_RESONANCES AXIS=X OUTPUT=raw_data (e asse Y ) per un singolo asse due volte su una stampante con piatto scorrevole con l'accelerometro collegato alla testa di stampa la prima volta e l'accelerometro collegato al piatto la seconda volta in modo da rilevare le risonanze incrociate degli assi e tentare di cancellarle con gli input shaper. Esecuzione di TEST_RESONANCES AXIS=Y OUTPUT=raw_data due volte su un supporto da piatto con un piatto di vetro e una superficie magnetica (che \u00e8 pi\u00f9 leggera) per trovare i parametri dello shaper di input che funzionano bene per qualsiasi configurazione della superficie di stampa. Combinazione dei dati di risonanza da pi\u00f9 punti di test. Combinando i dati di risonanza da 2 assi (ad es. su una stampante con piatto scorrevole per configurare input_shaper dell'asse X dalle risonanze degli assi X e Y per annullare le vibrazioni del piatto nel caso in cui l'ugello \"cattura\" una stampa quando si sposta nella direzione dell'asse X ).","title":"Misurazione delle risonanze"},{"location":"Measuring_Resonances.html#misurazione-delle-risonanze","text":"Klipper ha il supporto integrato per l'accelerometro ADXL345, che pu\u00f2 essere utilizzato per misurare le frequenze di risonanza della stampante per diversi assi, e per l'autotuning input shapers per compensare le risonanze. Si noti che l'utilizzo di ADXL345 richiede alcune operazioni di saldatura e crimpatura. ADXL345 pu\u00f2 essere collegato direttamente a un Raspberry Pi o a un'interfaccia SPI di una scheda MCU (deve essere ragionevolmente veloce). Quando acquisti ADXL345, tieni presente che esiste una variet\u00e0 di diversi design di schede PCB e diversi cloni di essi. Assicurati che la scheda supporti la modalit\u00e0 SPI (un piccolo numero di schede sembra essere configurato in modo rigido per I2C trascinando SDO su GND) e, se deve essere collegato a un MCU per stampante da 5 V, che abbia un regolatore di tensione e un cambio di livello.","title":"Misurazione delle risonanze"},{"location":"Measuring_Resonances.html#istruzioni-per-linstallazione","text":"","title":"Istruzioni per l'installazione"},{"location":"Measuring_Resonances.html#cablaggio","text":"Devi connettere ADXL345 al tuo Raspberry Pi tramite SPI. Si noti che la connessione I2C, suggerita dalla documentazione di ADXL345, ha un throughput troppo basso e non funzioner\u00e0 . Lo schema di connessione consigliato: ADXL345 pin RPi pin Nome pin RPi 3V3 (or VCC) 01 3.3v alimentazione DC GND 06 Ground CS 24 GPIO08 (SPI0_CE0_N) SDO 21 GPIO09 (SPI0_MISO) SDA 19 GPIO10 (SPI0_MOSI) SCL 23 GPIO11 (SPI0_SCLK) Un'alternativa all'ADXL345 \u00e8 l'MPU-9250 (o MPU-6050). Questo accelerometro \u00e8 stato testato per funzionare su I2C su RPi a 400kbaud. Schema di connessione consigliato per I2C: pin MPU-9250 RPi pin Nome pin RPi 3V3 (or VCC) 01 3.3v alimentazione DC GND 09 Ground SDA 03 GPIO02 (SDA1) SCL 05 GPIO03 (SCL1) Schemi collegamenti Fritzing per alcune delle schede ADXL345: Ricontrolla il cablaggio prima di accendere il Raspberry Pi per evitare di danneggiare RPi o l'accelerometro.","title":"Cablaggio"},{"location":"Measuring_Resonances.html#montaggio-dellaccelerometro","text":"L'accelerometro deve essere collegato alla testa di stampa. \u00c8 necessario progettare un supporto adeguato che si adatti alla propria stampante 3D. \u00c8 meglio allineare gli assi dell'accelerometro con gli assi della stampante (ma se lo rende pi\u00f9 comodo, gli assi possono essere scambiati - cio\u00e8 non c'\u00e8 bisogno di allineare l'asse X con X e cos\u00ec via - dovrebbe andare bene anche se l'asse Z di l'accelerometro \u00e8 l'asse X della stampante, ecc.). Un esempio di montaggio di ADXL345 su SmartEffect: Si noti che su una stampante con piatto mobile \u00e8 necessario progettare 2 supporti: uno per la testina e uno per il piatto, ed eseguire le misurazioni due volte. Per maggiori dettagli, vedere la sezione corrispondente. Attenzione: assicurati che l'accelerometro e le eventuali viti che lo tengono in posizione non tocchino parti metalliche della stampante. Fondamentalmente, il supporto deve essere progettato in modo tale da garantire l'isolamento elettrico dell'accelerometro dal telaio della stampante. Non riuscendo a garantire che pu\u00f2 creare un loop di massa nel sistema che potrebbe danneggiare l'elettronica.","title":"Montaggio dell'accelerometro"},{"location":"Measuring_Resonances.html#installazione-software","text":"Si noti che le misurazioni della risonanza e la calibrazione automatica dello shaper richiedono dipendenze software aggiuntive non installate per impostazione predefinita. Innanzitutto, esegui sul tuo Raspberry Pi i seguenti comandi: sudo apt update sudo apt install python3-numpy python3-matplotlib libatlas-base-dev Quindi, per installare NumPy nell'ambiente Klipper, esegui il comando: ~/klippy-env/bin/pip install -v numpy Nota che, a seconda delle prestazioni della CPU, potrebbe volerci molto tempo, fino a 10-20 minuti. Sii paziente e attendi il completamento dell'installazione. In alcune occasioni, se la scheda ha poca RAM, l'installazione potrebbe non riuscire e sar\u00e0 necessario abilitare la swap. Successivamente, controlla e segui le istruzioni nel documento RPi Microcontroller per configurare \"linux mcu\" sul Raspberry Pi. Assicurati che il driver SPI di Linux sia abilitato eseguendo sudo raspi-config e abilitando SPI nel menu \"Opzioni di interfaccia\". Per ADXL345, aggiungere quanto segue al file printer.cfg: [mcu rpi] serial: /tmp/klipper_host_mcu [adxl345] cs_pin: rpi:None [resonance_tester] accel_chip: adxl345 probe_points: 100, 100, 20 # un esempio Si consiglia di iniziare con 1 punto sonda, al centro del piano di stampa, leggermente al di sopra di esso. Per l'MPU-9250, assicurarsi che il driver Linux I2C sia abilitato e che la velocit\u00e0 di trasmissione sia impostata su 400000 (consultare la sezione Abilitazione di I2C per maggiori dettagli). Quindi, aggiungi quanto segue a printer.cfg: [mcu rpi] serial: /tmp/klipper_host_mcu [mpu9250] i2c_mcu: rpi i2c_bus: i2c.1 [resonance_tester] accel_chip: mpu9250 probe_points: 100, 100, 20 # un esempio Riavvia Klipper tramite il comando RESTART .","title":"Installazione software"},{"location":"Measuring_Resonances.html#misurare-le-risonanze","text":"","title":"Misurare le risonanze"},{"location":"Measuring_Resonances.html#controllo-della-configurazione","text":"Ora puoi testare una connessione. Per \"per piatti non scorrevoli\" (es. un accelerometro), in Octoprint, inserisci ACCELEROMETER_QUERY Per \"piatti scorrevoli\" (ad es. pi\u00f9 di un accelerometro), immettere ACCELEROMETER_QUERY CHIP=<chip> dove <chip> \u00e8 il nome del chip immesso, ad es. CHIP=piatto (vedi: bed-slinger ) per tutti i chip dell'accelerometro installati. Dovresti vedere le misurazioni attuali dall'accelerometro, inclusa l'accelerazione di caduta libera, ad es. Recv: // adxl345 values (x, y, z): 470.719200, 941.438400, 9728.196800 Se ricevi un errore come Invalid adxl345 id (got xx vs e5) , dove xx \u00e8 un altro ID, \u00e8 indicativo del problema di connessione con ADXL345 o del sensore difettoso. Ricontrolla l'alimentazione, il cablaggio (che corrisponda agli schemi, nessun filo \u00e8 rotto o allentato, ecc.) e la qualit\u00e0 delle saldature. Quindi, prova a eseguire MEASURE_AXES_NOISE in Octoprint, dovresti ottenere alcuni numeri di riferimento per il rumore dell'accelerometro sugli assi (dovrebbe essere compreso tra ~1-100). Un rumore degli assi troppo elevato (ad es. 1000 e pi\u00f9) pu\u00f2 essere indicativo di problemi con il sensore, problemi con la sua alimentazione o ventole sbilanciate troppo rumorose su una stampante 3D.","title":"Controllo della configurazione"},{"location":"Measuring_Resonances.html#misurare-le-risonanze_1","text":"Ora puoi eseguire alcuni test realistici. Esegui il seguente comando: TEST_RESONANCES AXIS=X Nota che creer\u00e0 vibrazioni sull'asse X. Disabiliter\u00e0 anche l'input shaping se era stato abilitato in precedenza, poich\u00e9 non \u00e8 valido eseguire il test di risonanza con l'input shaper abilitato. Attenzione! Assicurati di osservare la stampante per la prima volta, per assicurarti che le vibrazioni non diventino troppo violente (il comando M112 pu\u00f2 essere utilizzato per interrompere il test in caso di emergenza; si spera che non si verifichi questo per\u00f2). Se le vibrazioni diventano troppo forti, puoi provare a specificare un valore inferiore al valore predefinito per il parametro accel_per_hz nella sezione [resonance_tester] , ad es. [resonance_tester] accel_chip: adxl345 accel_per_hz: 50 # default \u00e8 75 probe_points: ... Se funziona per l'asse X, esegui anche per l'asse Y: TEST_RESONANCES AXIS=Y Questo generer\u00e0 2 file CSV ( /tmp/resonances_x_*.csv e /tmp/resonances_y_*.csv ). Questi file possono essere elaborati con lo script autonomo su un Raspberry Pi. Per farlo, esegui i seguenti comandi: ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_y_*.csv -o /tmp/shaper_calibrate_y.png Questo script generer\u00e0 i grafici /tmp/shaper_calibrate_x.png e /tmp/shaper_calibrate_y.png con le risposte in frequenza. Riceverai anche le frequenze suggerite per ogni input shaper, nonch\u00e9 quale input shaper \u00e8 consigliato per la tua configurazione. Per esempio: Fitted shaper 'zv' frequency = 34.4 Hz (vibrations = 4.0%, smoothing ~= 0.132) To avoid too much smoothing with 'zv', suggested max_accel <= 4500 mm/sec^2 Fitted shaper 'mzv' frequency = 34.6 Hz (vibrations = 0.0%, smoothing ~= 0.170) To avoid too much smoothing with 'mzv', suggested max_accel <= 3500 mm/sec^2 Fitted shaper 'ei' frequency = 41.4 Hz (vibrations = 0.0%, smoothing ~= 0.188) To avoid too much smoothing with 'ei', suggested max_accel <= 3200 mm/sec^2 Fitted shaper '2hump_ei' frequency = 51.8 Hz (vibrations = 0.0%, smoothing ~= 0.201) To avoid too much smoothing with '2hump_ei', suggested max_accel <= 3000 mm/sec^2 Fitted shaper '3hump_ei' frequency = 61.8 Hz (vibrations = 0.0%, smoothing ~= 0.215) To avoid too much smoothing with '3hump_ei', suggested max_accel <= 2800 mm/sec^2 Recommended shaper is mzv @ 34.6 Hz La configurazione suggerita pu\u00f2 essere aggiunta alla sezione [input_shaper] di printer.cfg , ad esempio: [input_shaper] shaper_freq_x: ... shaper_type_x: ... shaper_freq_y: 34.6 shaper_type_y: mzv [printer] max_accel: 3000 # non dovrebbe superare il max_accel stimato per gli assi X e Y oppure puoi scegliere tu stesso un'altra configurazione in base ai grafici generati: i picchi nella densit\u00e0 spettrale di potenza sui grafici corrispondono alle frequenze di risonanza della stampante. Nota che in alternativa puoi eseguire l'autocalibrazione dello input shaper da Klipper directly , che pu\u00f2 essere conveniente, ad esempio, per lo input shaper re-calibration .","title":"Misurare le risonanze"},{"location":"Measuring_Resonances.html#stampanti-con-piatto-scorrevole","text":"Se la tua stampante ha un piatto scorrevole, dovrai cambiare la posizione dell'accelerometro tra le misurazioni per gli assi X e Y: misurare le risonanze dell'asse X con l'accelerometro collegato alla testa di stampa e le risonanze dell'asse Y - al piatto. Tuttavia, puoi anche collegare due accelerometri contemporaneamente, sebbene debbano essere collegati a schede diverse (ad esempio, a una scheda RPi e MCU della stampante) o a due diverse interfacce SPI fisiche sulla stessa scheda (raramente disponibili). Quindi possono essere configurati nel modo seguente: [adxl345 hotend] # Supponendo che il chip \"hotend\" sia collegato a un RPi cs_pin: rpi:None [adxl345 bed] # Supponendo che il chip `bed` sia collegato a una scheda MCU della stampante cs_pin: ... # Pin di selezione chip SPI (CS) della scheda stampante [resonance_tester] # Assumendo la configurazione tipo della stampante con piatto scorrevole accel_chip_x: adxl345 hotend accel_chip_y: adxl345 bed probe_points: ... Quindi i comandi TEST_RESONANCES AXIS=X e TEST_RESONANCES AXIS=Y utilizzeranno l'accelerometro corretto per ciascun asse.","title":"Stampanti con piatto scorrevole"},{"location":"Measuring_Resonances.html#max-smoothing","text":"Tieni presente che lo input shaper pu\u00f2 creare un po' di smoothing nelle parti. La regolazione automatica del input shaper eseguita dallo script calibrate_shaper.py o dal comando SHAPER_CALIBRATE cercano di non esacerbare lo smoothing, ma allo stesso tempo cercano di ridurre al minimo le vibrazioni risultanti. A volte possono fare una scelta non ottimale della frequenza dello shaper, o forse semplicemente preferisci avere meno smoothing in alcune parti a scapito di maggiori vibrazioni residue. In questi casi \u00e8 possibile richiedere di limitare lo smoothing massimo dal input shaper. Consideriamo i seguenti risultati della sintonizzazione automatica: Fitted shaper 'zv' frequency = 57.8 Hz (vibrations = 20.3%, smoothing ~= 0.053) To avoid too much smoothing with 'zv', suggested max_accel <= 13000 mm/sec^2 Fitted shaper 'mzv' frequency = 34.8 Hz (vibrations = 3.6%, smoothing ~= 0.168) To avoid too much smoothing with 'mzv', suggested max_accel <= 3600 mm/sec^2 Fitted shaper 'ei' frequency = 48.8 Hz (vibrations = 4.9%, smoothing ~= 0.135) To avoid too much smoothing with 'ei', suggested max_accel <= 4400 mm/sec^2 Fitted shaper '2hump_ei' frequency = 45.2 Hz (vibrations = 0.1%, smoothing ~= 0.264) To avoid too much smoothing with '2hump_ei', suggested max_accel <= 2200 mm/sec^2 Fitted shaper '3hump_ei' frequency = 48.0 Hz (vibrations = 0.0%, smoothing ~= 0.356) To avoid too much smoothing with '3hump_ei', suggested max_accel <= 1500 mm/sec^2 Recommended shaper is 2hump_ei @ 45.2 Hz Si noti che i valori di smoothing riportati sono alcuni valori proiettati. Questi valori possono essere utilizzati per confrontare diverse configurazioni: maggiore \u00e8 il valore, maggiore sar\u00e0 la levigatura creata da uno shaper. Tuttavia, questi punteggi di smoothing non rappresentano alcuna misura reale dello smoothing, perch\u00e9 lo smoothing effettivo dipende dai parametri max_accel e square_corner_velocity . Pertanto, \u00e8 necessario eseguire alcune stampe di prova per vedere quanta smoothing crea esattamente una configurazione scelta. Nell'esempio sopra i parametri dello shaper suggeriti non sono male, ma cosa succede se si desidera ottenere meno smooting sull'asse X? Puoi provare a limitare lo smoothing massimo dello shaper usando il seguente comando: ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png --max_smoothing=0.2 che limita lo smoothing a un punteggio di 0.2. Ora puoi ottenere il seguente risultato: Fitted shaper 'zv' frequency = 55.4 Hz (vibrations = 19.7%, smoothing ~= 0.057) To avoid too much smoothing with 'zv', suggested max_accel <= 12000 mm/sec^2 Fitted shaper 'mzv' frequency = 34.6 Hz (vibrations = 3.6%, smoothing ~= 0.170) To avoid too much smoothing with 'mzv', suggested max_accel <= 3500 mm/sec^2 Fitted shaper 'ei' frequency = 48.2 Hz (vibrations = 4.8%, smoothing ~= 0.139) To avoid too much smoothing with 'ei', suggested max_accel <= 4300 mm/sec^2 Fitted shaper '2hump_ei' frequency = 52.0 Hz (vibrations = 2.7%, smoothing ~= 0.200) To avoid too much smoothing with '2hump_ei', suggested max_accel <= 3000 mm/sec^2 Fitted shaper '3hump_ei' frequency = 72.6 Hz (vibrations = 1.4%, smoothing ~= 0.155) To avoid too much smoothing with '3hump_ei', suggested max_accel <= 3900 mm/sec^2 Recommended shaper is 3hump_ei @ 72.6 Hz Se si confronta con i parametri suggeriti in precedenza, le vibrazioni sono un po' maggiori, ma lo smoothing \u00e8 notevolmente inferiore rispetto a prima, consentendo un'accelerazione massima maggiore. Quando si decide quale parametro max_smoothing scegliere, \u00e8 possibile utilizzare un approccio per tentativi. Prova alcuni valori diversi e guarda quali risultati ottieni. Si noti che lo smoothing effettivo prodotto dall'input shaper dipende principalmente dalla frequenza di risonanza pi\u00f9 bassa della stampante: maggiore \u00e8 la frequenza della risonanza pi\u00f9 bassa, minore \u00e8 lo smoothing. Pertanto, se si richiede allo script di trovare una configurazione dell'input shaper con lo smoothing irrealisticamente piccolo, sar\u00e0 a scapito di un aumento del ringing alle frequenze di risonanza pi\u00f9 basse (che sono, in genere, anche pi\u00f9 visibili nelle stampe). Quindi, ricontrolla sempre le vibrazioni rimanenti previste riportate dallo script e assicurati che non siano troppo alte. Nota che se hai scelto un buon valore max_smoothing per entrambi gli assi, puoi salvarlo in printer.cfg come [resonance_tester] accel_chip: ... probe_points: ... max_smoothing: 0.25 # un esempio Quindi, se riesegui l'autotuning dello shaper di input usando il comando Klipper SHAPER_CALIBRATE in futuro, utilizzer\u00e0 il valore max_smoothing memorizzato come riferimento.","title":"Max smoothing"},{"location":"Measuring_Resonances.html#seleziona-max_accel","text":"Poich\u00e9 l'input shaper pu\u00f2 creare un po' di smussamento nelle parti, specialmente ad accelerazioni elevate, sar\u00e0 comunque necessario scegliere il valore max_accel che non crei troppo smussamento \"smoothing\" nelle parti stampate. Uno script di calibrazione fornisce una stima per il parametro max_accel che non dovrebbe creare un smoothing eccessivo. Si noti che il max_accel visualizzato dallo script di calibrazione \u00e8 solo un massimo teorico al quale il rispettivo shaper \u00e8 ancora in grado di lavorare senza produrre troppo smoothing. Non \u00e8 affatto una raccomandazione impostare questa accelerazione per la stampa. L'accelerazione massima che la stampante \u00e8 in grado di sostenere dipende dalle sue propriet\u00e0 meccaniche e dalla coppia massima dei motori passo-passo utilizzati. Pertanto, si suggerisce di impostare max_accel nella sezione [printer] che non superi i valori stimati per gli assi X e Y, probabilmente con un margine di sicurezza conservativo. In alternativa, segui questa parte della guida all'ottimizzazione dello input shaper e stampa il modello di test per scegliere sperimentalmente il parametro max_accel . Lo stesso avviso vale per lo input shaper auto-calibration con il comando SHAPER_CALIBRATE : \u00e8 comunque necessario scegliere il giusto valore di max_accel dopo l'auto-calibrazione, e il i limiti di accelerazione non verranno applicati automaticamente. Se stai eseguendo una ricalibrazione dello shaper e lo smoothing riportato per la configurazione dello shaper suggerita \u00e8 quasi lo stesso di quello ottenuto durante la calibrazione precedente, questo passaggio pu\u00f2 essere saltato.","title":"Seleziona max_accel"},{"location":"Measuring_Resonances.html#test-di-assi-personalizzati","text":"Il comando TEST_RESONANCES supporta assi personalizzati. Anche se questo non \u00e8 molto utile per la calibrazione del input shaper, pu\u00f2 essere utilizzato per studiare in profondit\u00e0 le risonanze della stampante e per controllare, ad esempio, la tensione della cinghia. Per controllare la tensione della cinghia sulle stampanti CoreXY, eseguire TEST_RESONANCES AXIS=1,1 OUTPUT=raw_data TEST_RESONANCES AXIS=1,-1 OUTPUT=raw_data e usa graph_accelerometer.py per elaborare i file generati, ad es. ~/klipper/scripts/graph_accelerometer.py -c /tmp/raw_data_axis*.csv -o /tmp/resonances.png che generer\u00e0 /tmp/resonances.png confrontando le risonanze. Per le stampanti Delta con la posizione della torre predefinita (torre A ~= 210 gradi, B ~= 330 gradi e C ~= 90 gradi), eseguire TEST_RESONANCES AXIS=0,1 OUTPUT=raw_data TEST_RESONANCES AXIS=-0.866025404,-0.5 OUTPUT=raw_data TEST_RESONANCES AXIS=0.866025404,-0.5 OUTPUT=raw_data e quindi utilizzare lo stesso comando ~/klipper/scripts/graph_accelerometer.py -c /tmp/raw_data_axis*.csv -o /tmp/resonances.png per generare /tmp/resonances.png confrontando le risonanze.","title":"Test di assi personalizzati"},{"location":"Measuring_Resonances.html#calibrazione-automatica-input-shaper","text":"Oltre a scegliere manualmente i parametri appropriati per la funzione di input shaper, \u00e8 anche possibile eseguire l'autotuning per l'input shaper direttamente da Klipper. Esegui il seguente comando tramite il terminale Octoprint: SHAPER_CALIBRATE Questo eseguir\u00e0 il test completo per entrambi gli assi e generer\u00e0 l'output csv ( /tmp/calibration_data_*.csv per impostazione predefinita) per la risposta in frequenza e gli input shaper suggeriti. Riceverai anche le frequenze suggerite per ciascun input shaper, nonch\u00e9 quale input shaper \u00e8 consigliato per la tua configurazione, sulla console Octoprint. Per esempio: Calculating the best input shaper parameters for y axis Fitted shaper 'zv' frequency = 39.0 Hz (vibrations = 13.2%, smoothing ~= 0.105) To avoid too much smoothing with 'zv', suggested max_accel <= 5900 mm/sec^2 Fitted shaper 'mzv' frequency = 36.8 Hz (vibrations = 1.7%, smoothing ~= 0.150) To avoid too much smoothing with 'mzv', suggested max_accel <= 4000 mm/sec^2 Fitted shaper 'ei' frequency = 36.6 Hz (vibrations = 2.2%, smoothing ~= 0.240) To avoid too much smoothing with 'ei', suggested max_accel <= 2500 mm/sec^2 Fitted shaper '2hump_ei' frequency = 48.0 Hz (vibrations = 0.0%, smoothing ~= 0.234) To avoid too much smoothing with '2hump_ei', suggested max_accel <= 2500 mm/sec^2 Fitted shaper '3hump_ei' frequency = 59.0 Hz (vibrations = 0.0%, smoothing ~= 0.235) To avoid too much smoothing with '3hump_ei', suggested max_accel <= 2500 mm/sec^2 Recommended shaper_type_y = mzv, shaper_freq_y = 36.8 Hz Se sei d'accordo con i parametri suggeriti, puoi eseguire ora SAVE_CONFIG per salvarli e riavviare Klipper. Nota che questo non aggiorner\u00e0 il valore max_accel nella sezione [printer] . Dovresti aggiornarlo manualmente seguendo le considerazioni nella sezione Selecting max_accel . Se la tua stampante \u00e8 una stampante a piatto mobile, puoi specificare quale asse testare, in modo da poter cambiare il punto di montaggio dell'accelerometro tra i test (per impostazione predefinita, il test viene eseguito per entrambi gli assi): SHAPER_CALIBRATE AXIS=Y \u00c8 possibile eseguire SAVE_CONFIG due volte, dopo aver calibrato ciascun asse. Tuttavia, se hai collegato due accelerometri contemporaneamente, esegui semplicemente SHAPER_CALIBRATE senza specificare un asse per calibrare l' input shaper per entrambi gli assi in una volta sola.","title":"Calibrazione automatica Input Shaper"},{"location":"Measuring_Resonances.html#input-shaper-ricalibrazione","text":"Il comando SHAPER_CALIBRATE pu\u00f2 essere utilizzato anche per ricalibrare lo shaper di input in futuro, specialmente se vengono apportate alcune modifiche alla stampante che possono influire sulla sua cinematica. \u00c8 possibile eseguire nuovamente la calibrazione completa utilizzando il comando SHAPER_CALIBRATE , o limitare l'autocalibrazione a un singolo asse fornendo il parametro AXIS= , come SHAPER_CALIBRATE AXIS=X Attenzione! Non \u00e8 consigliabile eseguire l'autocalibrazione dello shaper molto frequentemente (ad es. prima di ogni stampa o ogni giorno). Per determinare le frequenze di risonanza, l'autocalibrazione crea intense vibrazioni su ciascuno degli assi. Generalmente, le stampanti 3D non sono progettate per resistere a un'esposizione prolungata a vibrazioni vicino alle frequenze di risonanza. Ci\u00f2 potrebbe aumentare l'usura dei componenti della stampante e ridurne la durata. C'\u00e8 anche un aumento del rischio che alcune parti si svitino o si allentino. Verificare sempre che tutte le parti della stampante (comprese quelle che normalmente potrebbero non muoversi) siano fissate saldamente in posizione dopo ogni autotuning. Inoltre, a causa di un po' di rumore nelle misurazioni, \u00e8 possibile che i risultati dell'ottimizzazione siano leggermente diversi da una calibrazione all'altra. Tuttavia, non ci si aspetta che il rumore influisca troppo sulla qualit\u00e0 di stampa. Tuttavia, si consiglia comunque di ricontrollare i parametri suggeriti e di stampare alcune stampe di prova prima di utilizzarli per confermare che siano corretti.","title":"Input Shaper ricalibrazione"},{"location":"Measuring_Resonances.html#elaborazione-offline-dei-dati-dellaccelerometro","text":"\u00c8 possibile generare i dati grezzi dell'accelerometro ed elaborarli offline (ad esempio su una macchina host), ad esempio per trovare risonanze. Per fare ci\u00f2, esegui i seguenti comandi tramite il terminale Octoprint: SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0 TEST_RESONANCES AXIS=X OUTPUT=raw_data ignorando eventuali errori per il comando SET_INPUT_SHAPER . Per il comando TEST_RESONANCES , specificare l'asse di test desiderato. I dati grezzi verranno scritti nella directory /tmp sull'RPi. I dati grezzi possono anche essere ottenuti eseguendo il comando ACCELEROMETER_MEASURE due volte durante una normale attivit\u00e0 della stampante: prima per avviare le misurazioni, quindi per interromperle e scrivere il file di output. Fare riferimento a G-Codes per maggiori dettagli. I dati possono essere elaborati successivamente dai seguenti script: scripts/graph_accelerometer.py e scripts/calibrate_shaper.py . Entrambi accettano uno o pi\u00f9 file CSV non elaborati come input a seconda della modalit\u00e0. Lo script graph_accelerometer.py supporta diverse modalit\u00e0 operative: tracciando i dati grezzi dell'accelerometro (usa il parametro -r ), \u00e8 supportato solo 1 input; tracciando una risposta in frequenza (non sono richiesti parametri aggiuntivi), se sono specificati pi\u00f9 ingressi, viene calcolata la risposta in frequenza media; confronto della risposta in frequenza tra pi\u00f9 ingressi (usare il parametro -c ); puoi inoltre specificare quale asse dell'accelerometro considerare tramite il parametro -a x , -a y o -a z (se non specificato, viene utilizzata la somma delle vibrazioni per tutti gli assi); tracciando lo spettrogramma (usare il parametro -s ), \u00e8 supportato solo 1 input; \u00e8 inoltre possibile specificare quale asse dell'accelerometro considerare tramite il parametro -a x , -a y o -a z (se non specificato, viene utilizzata la somma delle vibrazioni per tutti gli assi). Si noti che lo script graph_accelerometer.py supporta solo i file raw_data*.csv e non i file resonances*.csv o calibration_data*.csv. Per esempio, ~/klipper/scripts/graph_accelerometer.py /tmp/raw_data_x_*.csv -o /tmp/resonances_x.png -c -a z traccer\u00e0 il confronto di diversi file /tmp/raw_data_x_*.csv per l'asse Z con il file /tmp/resonances_x.png . Lo script shaper_calibrate.py accetta 1 o pi\u00f9 input e pu\u00f2 eseguire l'ottimizzazione automatica dello shaper di input e suggerire i parametri migliori che funzionano bene per tutti gli input forniti. Stampa i parametri suggeriti sulla console e pu\u00f2 inoltre generare il grafico se viene fornito il parametro -o output.png , o il file CSV se viene specificato il parametro -c output.csv . Fornire diversi input allo script shaper_calibrate.py pu\u00f2 essere utile se si esegue un'ottimizzazione avanzata degli shaper di input, ad esempio: Esecuzione di TEST_RESONANCES AXIS=X OUTPUT=raw_data (e asse Y ) per un singolo asse due volte su una stampante con piatto scorrevole con l'accelerometro collegato alla testa di stampa la prima volta e l'accelerometro collegato al piatto la seconda volta in modo da rilevare le risonanze incrociate degli assi e tentare di cancellarle con gli input shaper. Esecuzione di TEST_RESONANCES AXIS=Y OUTPUT=raw_data due volte su un supporto da piatto con un piatto di vetro e una superficie magnetica (che \u00e8 pi\u00f9 leggera) per trovare i parametri dello shaper di input che funzionano bene per qualsiasi configurazione della superficie di stampa. Combinazione dei dati di risonanza da pi\u00f9 punti di test. Combinando i dati di risonanza da 2 assi (ad es. su una stampante con piatto scorrevole per configurare input_shaper dell'asse X dalle risonanze degli assi X e Y per annullare le vibrazioni del piatto nel caso in cui l'ugello \"cattura\" una stampa quando si sposta nella direzione dell'asse X ).","title":"Elaborazione offline dei dati dell'accelerometro"},{"location":"Multi_MCU_Homing.html","text":"Homing e Probing con microcontrollore multiplo \u00b6 Klipper sopporta un meccanismo per homing con un fine corsa collegato a un micro controllore mentre i motori passo-passo sono collegati ad un controllore diverso. Questa modalit\u00e0 \u00e8 definita Homing multi-mcu. Questa funzione \u00e8 usata quando una sonda Z \u00e8 collegata ad un differente controllore rispetto ai motori dell'asse Z. Questa funzione pu\u00f2 essere utile per semplificare il cablaggio, poich\u00e9 potrebbe essere pi\u00f9 conveniente collegare un finecorsa o una sonda a un microcontrollore pi\u00f9 vicino. Tuttavia, l'utilizzo di questa funzione pu\u00f2 comportare un \"overshoot\" dei motori passo-passo durante le operazioni di homing o con sonda. L' 'overshoot' si verifica a causa di possibili ritardi nella trasmissione del messaggio tra il microcontrollore che controlla il finecorsa e i microcontrollori che muovono i motori passo-passo. Il codice Klipper \u00e8 progettato per limitare questo ritardo a non pi\u00f9 di 25 ms. (Quando \u00e8 attivato l'homing multi-mcu, i microcontrollori inviano messaggi di stato periodici e controllano che i messaggi di stato corrispondenti vengano ricevuti entro 25 ms.) Quindi, ad esempio, se si esegue l'homing a 10 mm/s, \u00e8 possibile un superamento fino a 0,250 mm (10 mm/s * .025s == 0,250 mm). \u00c8 necessario prestare attenzione durante la configurazione dell'homing multi-mcu per tenere conto di questo tipo di overshoot. L'uso di velocit\u00e0 di riferimento o di sonda pi\u00f9 lente pu\u00f2 ridurre la sovraelongazione (overshot). La sovraelongazione 'overshot' del motore passo-passo non dovrebbe influire negativamente sulla precisione della procedura di homing e di sonda. Il codice Klipper rilever\u00e0 il superamento e ne terr\u00e0 conto nei suoi calcoli. Tuttavia, \u00e8 importante che il design dell'hardware sia in grado di gestire l'overshoot senza causare danni alla macchina. Se Klipper dovesse rilevare un problema di comunicazione tra i microcontrollori durante l'homing multi-mcu, generer\u00e0 un errore \"Timeout di comunicazione durante l'homing\". Si noti che un asse con pi\u00f9 stepper (ad esempio, stepper_z e stepper_z1 ) deve trovarsi sullo stesso microcontrollore per poter utilizzare l'homing multi-mcu. Ad esempio, se un endstop si trova su un microcontrollore separato da stepper_z allora stepper_z1 deve trovarsi sullo stesso microcontrollore di stepper_z .","title":"Homing e Probing con microcontrollore multiplo"},{"location":"Multi_MCU_Homing.html#homing-e-probing-con-microcontrollore-multiplo","text":"Klipper sopporta un meccanismo per homing con un fine corsa collegato a un micro controllore mentre i motori passo-passo sono collegati ad un controllore diverso. Questa modalit\u00e0 \u00e8 definita Homing multi-mcu. Questa funzione \u00e8 usata quando una sonda Z \u00e8 collegata ad un differente controllore rispetto ai motori dell'asse Z. Questa funzione pu\u00f2 essere utile per semplificare il cablaggio, poich\u00e9 potrebbe essere pi\u00f9 conveniente collegare un finecorsa o una sonda a un microcontrollore pi\u00f9 vicino. Tuttavia, l'utilizzo di questa funzione pu\u00f2 comportare un \"overshoot\" dei motori passo-passo durante le operazioni di homing o con sonda. L' 'overshoot' si verifica a causa di possibili ritardi nella trasmissione del messaggio tra il microcontrollore che controlla il finecorsa e i microcontrollori che muovono i motori passo-passo. Il codice Klipper \u00e8 progettato per limitare questo ritardo a non pi\u00f9 di 25 ms. (Quando \u00e8 attivato l'homing multi-mcu, i microcontrollori inviano messaggi di stato periodici e controllano che i messaggi di stato corrispondenti vengano ricevuti entro 25 ms.) Quindi, ad esempio, se si esegue l'homing a 10 mm/s, \u00e8 possibile un superamento fino a 0,250 mm (10 mm/s * .025s == 0,250 mm). \u00c8 necessario prestare attenzione durante la configurazione dell'homing multi-mcu per tenere conto di questo tipo di overshoot. L'uso di velocit\u00e0 di riferimento o di sonda pi\u00f9 lente pu\u00f2 ridurre la sovraelongazione (overshot). La sovraelongazione 'overshot' del motore passo-passo non dovrebbe influire negativamente sulla precisione della procedura di homing e di sonda. Il codice Klipper rilever\u00e0 il superamento e ne terr\u00e0 conto nei suoi calcoli. Tuttavia, \u00e8 importante che il design dell'hardware sia in grado di gestire l'overshoot senza causare danni alla macchina. Se Klipper dovesse rilevare un problema di comunicazione tra i microcontrollori durante l'homing multi-mcu, generer\u00e0 un errore \"Timeout di comunicazione durante l'homing\". Si noti che un asse con pi\u00f9 stepper (ad esempio, stepper_z e stepper_z1 ) deve trovarsi sullo stesso microcontrollore per poter utilizzare l'homing multi-mcu. Ad esempio, se un endstop si trova su un microcontrollore separato da stepper_z allora stepper_z1 deve trovarsi sullo stesso microcontrollore di stepper_z .","title":"Homing e Probing con microcontrollore multiplo"},{"location":"Navigation.html","text":"Documentazione Klipper Installazione e configurazione Riferimenti di configurazione Livello del piatto Compensazione della risonanza Template dei comandi Documentazione per sviluppatori Documenti specifici del dispositivo","title":"Navigation"},{"location":"Overview.html","text":"Panoramica \u00b6 Benvenuto nella documentazione di Klipper. Se sei nuovo di Klipper, inizia con i documenti features e installation . Informazioni generali \u00b6 Caratteristiche : un elenco di funzionalit\u00e0 di alto livello in Klipper. FAQ : Domande frequenti. Releases : La storia delle versioni di Klipper. Modifiche alla configurazione : recenti modifiche al software che potrebbero richiedere agli utenti di aggiornare il file di configurazione della stampante. Contatto : Informazioni sulla segnalazione di bug e comunicazione generale con gli sviluppatori di Klipper. Installazione e configurazione \u00b6 Installazione : Guida all'installazione di Klipper. Riferimento di configurazione : Descrizione dei parametri di configurazione. Distanza di rotazione : Calcolo del parametro stepper rotation_distance. Controlli di configurazione : verifica le impostazioni di base dei pin nel file di configurazione. Livello del piatto : Informazioni sul \"livellamento del piatto\" in Klipper. Calibrazione Delta : Calibrazione della cinematica delta. Calibrazione sonda : Calibrazione di sonde Z automatiche. BL-Touch : Configurare una sonda Z \"BL-Touch\". Livello manuale : Calibrazione dei finecorsa Z (e simili). Maglia del letto : Correzione dell'altezza del piatto basata sulle posizioni XY. Endstop phase : Posizionamento finecorsa Z assistito da stepper. Compensazione della risonanza : Uno strumento per ridurre le risonanze nelle stampe. Misurare le risonanze : Informazioni sull'uso dell'hardware dell'accelerometro adxl345 per misurare le risonanze. Avanzamento pressione : Calibra la pressione dell'estrusore. Codici G : Informazioni sui comandi supportati da Klipper. Modelli di comando : Macro G-Code e valutazione condizionale. Riferimento stato : informazioni disponibili per le macro (e simili). Driver TMC : Uso dei driver Trinamic per motori passo-passo con Klipper. Multi-MCU Homing : Homing e probing utilizzando pi\u00f9 microcontrollori. Slicers : Configurare il software \"slicer\" per Klipper. Correzione dell'inclinazione : Regolazioni per assi non perfettamente squadrati. Strumenti PWM : Guida su come usare gli strumenti controllati da PWM come i laser o i mandrini. Exclude Object : La guida all'implementazione di Exclude Objects. Documentazione per sviluppatori \u00b6 Panoramica del codice : Gli sviluppatori dovrebbero leggere prima questo. Cinematica : Dettagli tecnici su come Klipper implementa il movimento. Protocollo : Informazioni sul protocollo di messaggistica di basso livello tra host e microcontrollore. Server API : Informazioni sulle API di comando e controllo di Klipper. Comandi MCU : Una descrizione dei comandi di basso livello implementati nel software del microcontrollore. Protocollo bus CAN : formato del messaggio Klipper CAN bus. Debug : Informazioni su come testare e fare il debug di Klipper. Benchmarks : Informazioni sul metodo di benchmark Klipper. Contribuire : Informazioni su come presentare miglioramenti a Klipper. Packaging : informazioni sulla creazione di pacchetti del sistema operativo. Documenti specifici del dispositivo \u00b6 Configurazioni di esempio : Informazioni su come aggiungere un file di configurazione di esempio a Klipper. Aggiornamenti SDCard : esegui il flashing di un microcontrollore copiando un file binario su una scheda SD nel microcontrollore. Raspberry Pi come microcontrollore : Dettagli per controllare i dispositivi collegati ai pin GPIO di un Raspberry Pi. Beaglebone : Dettagli per l'esecuzione di Klipper sulla PRU Beaglebone. Bootloaders : Informazioni per gli sviluppatori sul flashing del microcontrollore. CAN bus : Informazioni sull'uso del CAN bus con Klipper. Sensore larghezza filamento TSL1401CL Sensore di larghezza del filamento Hall","title":"Panoramica"},{"location":"Overview.html#panoramica","text":"Benvenuto nella documentazione di Klipper. Se sei nuovo di Klipper, inizia con i documenti features e installation .","title":"Panoramica"},{"location":"Overview.html#informazioni-generali","text":"Caratteristiche : un elenco di funzionalit\u00e0 di alto livello in Klipper. FAQ : Domande frequenti. Releases : La storia delle versioni di Klipper. Modifiche alla configurazione : recenti modifiche al software che potrebbero richiedere agli utenti di aggiornare il file di configurazione della stampante. Contatto : Informazioni sulla segnalazione di bug e comunicazione generale con gli sviluppatori di Klipper.","title":"Informazioni generali"},{"location":"Overview.html#installazione-e-configurazione","text":"Installazione : Guida all'installazione di Klipper. Riferimento di configurazione : Descrizione dei parametri di configurazione. Distanza di rotazione : Calcolo del parametro stepper rotation_distance. Controlli di configurazione : verifica le impostazioni di base dei pin nel file di configurazione. Livello del piatto : Informazioni sul \"livellamento del piatto\" in Klipper. Calibrazione Delta : Calibrazione della cinematica delta. Calibrazione sonda : Calibrazione di sonde Z automatiche. BL-Touch : Configurare una sonda Z \"BL-Touch\". Livello manuale : Calibrazione dei finecorsa Z (e simili). Maglia del letto : Correzione dell'altezza del piatto basata sulle posizioni XY. Endstop phase : Posizionamento finecorsa Z assistito da stepper. Compensazione della risonanza : Uno strumento per ridurre le risonanze nelle stampe. Misurare le risonanze : Informazioni sull'uso dell'hardware dell'accelerometro adxl345 per misurare le risonanze. Avanzamento pressione : Calibra la pressione dell'estrusore. Codici G : Informazioni sui comandi supportati da Klipper. Modelli di comando : Macro G-Code e valutazione condizionale. Riferimento stato : informazioni disponibili per le macro (e simili). Driver TMC : Uso dei driver Trinamic per motori passo-passo con Klipper. Multi-MCU Homing : Homing e probing utilizzando pi\u00f9 microcontrollori. Slicers : Configurare il software \"slicer\" per Klipper. Correzione dell'inclinazione : Regolazioni per assi non perfettamente squadrati. Strumenti PWM : Guida su come usare gli strumenti controllati da PWM come i laser o i mandrini. Exclude Object : La guida all'implementazione di Exclude Objects.","title":"Installazione e configurazione"},{"location":"Overview.html#documentazione-per-sviluppatori","text":"Panoramica del codice : Gli sviluppatori dovrebbero leggere prima questo. Cinematica : Dettagli tecnici su come Klipper implementa il movimento. Protocollo : Informazioni sul protocollo di messaggistica di basso livello tra host e microcontrollore. Server API : Informazioni sulle API di comando e controllo di Klipper. Comandi MCU : Una descrizione dei comandi di basso livello implementati nel software del microcontrollore. Protocollo bus CAN : formato del messaggio Klipper CAN bus. Debug : Informazioni su come testare e fare il debug di Klipper. Benchmarks : Informazioni sul metodo di benchmark Klipper. Contribuire : Informazioni su come presentare miglioramenti a Klipper. Packaging : informazioni sulla creazione di pacchetti del sistema operativo.","title":"Documentazione per sviluppatori"},{"location":"Overview.html#documenti-specifici-del-dispositivo","text":"Configurazioni di esempio : Informazioni su come aggiungere un file di configurazione di esempio a Klipper. Aggiornamenti SDCard : esegui il flashing di un microcontrollore copiando un file binario su una scheda SD nel microcontrollore. Raspberry Pi come microcontrollore : Dettagli per controllare i dispositivi collegati ai pin GPIO di un Raspberry Pi. Beaglebone : Dettagli per l'esecuzione di Klipper sulla PRU Beaglebone. Bootloaders : Informazioni per gli sviluppatori sul flashing del microcontrollore. CAN bus : Informazioni sull'uso del CAN bus con Klipper. Sensore larghezza filamento TSL1401CL Sensore di larghezza del filamento Hall","title":"Documenti specifici del dispositivo"},{"location":"Packaging.html","text":"Klipper packaging \u00b6 Klipper \u00e8 in qualche modo un'anomalia tra i programmi Python per quanto riguarda impacchettamento, in quanto non usa setuptools per costruire e installare. Alcune note riguardanti il modo migliore per impacchettarlo sono le seguenti: Moduli C \u00b6 Klipper utilizza un modulo C per gestire pi\u00f9 rapidamente alcuni calcoli cinematici. Questo modulo deve essere compilato al momento per evitare di introdurre una dipendenza di runtime da un compilatore. Per compilare il modulo C, esegui python2 klippy/chelper/__init__.py . Compilazione di codice python \u00b6 Molte distribuzioni hanno una politica di compilazione di tutto il codice Python prima del packaging per migliorare i tempi di avvio. Puoi farlo eseguendo python2 -m compileall klippy . Versione \u00b6 Se stai compilando un pacchetto di Klipper da git, \u00e8 normale non spedire una directory .git, quindi il controllo delle versioni deve essere gestito senza git. Per fare ci\u00f2, usa lo script fornito in scripts/make_version.py che dovrebbe essere eseguito come segue: python2 scripts/make_version.py YOURDISTRONAME > klippy/.version . Esempio di script di packaging \u00b6 klipper-git \u00e8 un pacchetto per Arch Linux e ha un PKGBUILD (script di compilazione del pacchetto) disponibile su Arch User Repositiory .","title":"Klipper packaging"},{"location":"Packaging.html#klipper-packaging","text":"Klipper \u00e8 in qualche modo un'anomalia tra i programmi Python per quanto riguarda impacchettamento, in quanto non usa setuptools per costruire e installare. Alcune note riguardanti il modo migliore per impacchettarlo sono le seguenti:","title":"Klipper packaging"},{"location":"Packaging.html#moduli-c","text":"Klipper utilizza un modulo C per gestire pi\u00f9 rapidamente alcuni calcoli cinematici. Questo modulo deve essere compilato al momento per evitare di introdurre una dipendenza di runtime da un compilatore. Per compilare il modulo C, esegui python2 klippy/chelper/__init__.py .","title":"Moduli C"},{"location":"Packaging.html#compilazione-di-codice-python","text":"Molte distribuzioni hanno una politica di compilazione di tutto il codice Python prima del packaging per migliorare i tempi di avvio. Puoi farlo eseguendo python2 -m compileall klippy .","title":"Compilazione di codice python"},{"location":"Packaging.html#versione","text":"Se stai compilando un pacchetto di Klipper da git, \u00e8 normale non spedire una directory .git, quindi il controllo delle versioni deve essere gestito senza git. Per fare ci\u00f2, usa lo script fornito in scripts/make_version.py che dovrebbe essere eseguito come segue: python2 scripts/make_version.py YOURDISTRONAME > klippy/.version .","title":"Versione"},{"location":"Packaging.html#esempio-di-script-di-packaging","text":"klipper-git \u00e8 un pacchetto per Arch Linux e ha un PKGBUILD (script di compilazione del pacchetto) disponibile su Arch User Repositiory .","title":"Esempio di script di packaging"},{"location":"Pressure_Advance.html","text":"Anticipo di pressione \u00b6 Questo documento fornisce informazioni sulla messa a punto della variabile di regolazione del \"pressure advance\" per un particolare ugello e filamento. La funzione di anticipo della pressione pu\u00f2 essere utile per ridurre le colature. Per maggiori informazioni su come viene implementato l'anticipo di pressione, vedere il documento kinematics . Regolazione della pressure advance \u00b6 Pressure advance fa due cose utili: riduce le colature durante i movimenti senza estrusione e riduce il blobbing durante le curve. Questa guida utilizza la seconda funzione (riduzione del blobbing durante le curve) come meccanismo per la messa a punto. Per calibrare la pressure advance, la stampante deve essere configurata e operativa poich\u00e9 il test di ottimizzazione prevede la stampa e l'ispezione di un oggetto di prova. \u00c8 una buona idea leggere questo documento per intero prima di eseguire il test. Usa uno slicer per generare il codice G per il grande cubo vuoto che si trova in docs/prints/square_tower.stl . Utilizzare una velocit\u00e0 elevata (ad es. 100 mm/s), riempimento zero e un'altezza dello strato grossolana (l'altezza dello strato dovrebbe essere circa il 75% del diametro dell'ugello). Assicurati che qualsiasi \"controllo dinamico dell'accelerazione\" sia disabilitato nello slicer. Prepararsi per il test emettendo il seguente comando G-Code: SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500 Questo comando fa viaggiare l'ugello pi\u00f9 lentamente attraverso gli angoli per enfatizzare gli effetti della pressione dell'estrusore. Quindi per le stampanti con un estrusore a trasmissione diretta eseguire il comando: TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.005 Per estrusori bowden lunghi utilizzare: TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.020 Quindi stampare l'oggetto. Una volta stampata completamente, la stampa di prova avr\u00e0 il seguente aspetto: Il comando TUNING_TOWER sopra indica a Klipper di modificare l'impostazione pressure_advance su ogni strato della stampa. Gli strati pi\u00f9 alti nella stampa avranno un valore di anticipo della pressione maggiore impostato. Gli strati al di sotto dell'impostazione pressione_anticipo ideale avranno macchie agli angoli e gli strati al di sopra dell'impostazione ideale possono portare a angoli arrotondati e una scarsa estrusione all'angolo. \u00c8 possibile annullare la stampa in anticipo se si osserva che gli angoli non vengono pi\u00f9 stampati bene (e quindi si pu\u00f2 evitare di stampare livelli noti per essere al di sopra del valore di pressione_avanzamento ideale). Ispeziona la stampa e quindi utilizza un calibro digitale per trovare l'altezza con gli angoli della migliore qualit\u00e0. In caso di dubbio, preferire un'altezza inferiore. Il valore pressure_advance pu\u00f2 quindi essere calcolato come pressure_advance = <inizio> + <altezza_misurata> * <fattore> . (Ad esempio, 0 + 12.90 * .020 sarebbe .258 .) \u00c8 possibile scegliere impostazioni personalizzate per START e FACTOR se ci\u00f2 aiuta a identificare la migliore impostazione di anticipo della pressione. Quando si esegue questa operazione, assicurarsi di emettere il comando TUNING_TOWER all'inizio di ogni stampa di prova. I valori tipici di pressure advance sono compresi tra 0,050 e 1,000 (la fascia alta di solito solo con estrusori bowden). Se non vi \u00e8 alcun miglioramento significativo con un pressure advance fino a 1.000, \u00e8 improbabile che la pressure advance migliori la qualit\u00e0 delle stampe. Ritorno ad una configurazione di default con pressure advance disabilitato. Sebbene questo esercizio di messa a punto migliori direttamente la qualit\u00e0 degli angoli, vale la pena ricordare che una buona configurazione del pressure advance riduce anche gli ooze durante la stampa. Al termine di questo test, impostare pressure_advance = <calculated_value> nella sezione [extruder] del file di configurazione ed emettere un comando RESTART. Il comando RESTART canceller\u00e0 lo stato di test e riporter\u00e0 le velocit\u00e0 di accelerazione e in curva ai valori normali. Note importanti \u00b6 Il valore di pressure advance dipende dall'estrusore, dall'ugello e dal filamento. \u00c8 comune che filamenti di produttori diversi o con pigmenti diversi richiedano valori di pressure advance significativamente diversi. Pertanto, si dovrebbe calibrare pressure advance su ciascuna stampante e con ogni bobina di filamento. La temperatura di stampa e le velocit\u00e0 di estrusione possono influire sulla pressure advance. Assicurati di regolare extruder rotation_distance e nozzle temperature prima di regolare l'avanzamento della pressione. La stampa di prova \u00e8 progettata per funzionare con un'elevata portata dell'estrusore, ma per il resto con impostazioni dello slicer \"normali\". Un'elevata portata si ottiene utilizzando un'elevata velocit\u00e0 di stampa (ad es. 100 mm/s) e un'altezza dello strato grossolano (tipicamente circa il 75% del diametro dell'ugello). Altre impostazioni dello slicer dovrebbero essere simili alle loro impostazioni predefinite (ad esempio, perimetri di 2 o 3 linee, quantit\u00e0 di retrazione normale). Pu\u00f2 essere utile impostare la velocit\u00e0 del perimetro esterno in modo che sia la stessa velocit\u00e0 del resto della stampa, ma non \u00e8 un requisito. \u00c8 comune che la stampa di prova mostri un comportamento diverso su ciascun angolo. Spesso lo slicer provveder\u00e0 a cambiare i livelli in un angolo, il che pu\u00f2 comportare che quell'angolo sia significativamente diverso dai restanti tre angoli. Se ci\u00f2 si verifica, ignora quell'angolo e regola pressure advance utilizzando gli altri tre angoli. \u00c8 anche comune che gli angoli rimanenti varino leggermente. (Ci\u00f2 pu\u00f2 verificarsi a causa di piccole differenze nel modo in cui il telaio della stampante reagisce alle curve in determinate direzioni.) Prova a scegliere un valore che funzioni bene per tutti gli angoli rimanenti. In caso di dubbio, preferire un valore di pressure advance inferiore. Se viene utilizzato un valore di pressure advance (ad esempio, superiore a 0.200), \u00e8 possibile che l'estrusore salti quando torna alla normale accelerazione della stampante. Il sistema di pressure advance tiene conto della pressione spingendo il filamento extra durante l'accelerazione e ritraendo quel filamento durante la decelerazione. Con un'elevata accelerazione e un'elevata pressione di anticipo, l'estrusore potrebbe non avere una coppia sufficiente per spingere il filamento richiesto. In tal caso, utilizzare un valore di accelerazione inferiore o disattivare la pressure advance. Una volta che pressure advance \u00e8 stato regolato in Klipper, pu\u00f2 essere comunque utile configurare un piccolo valore di retrazione nello slicer (ad es. 0,75 mm) e utilizzare l'opzione \"pulizia in retrazione\" dello slicer, se disponibile. Queste impostazioni dello slicer possono aiutare a contrastare la trasudazione causata dalla coesione del filamento ( estratto dall'ugello a causa della viscosit\u00e0 della plastica). Si consiglia di disabilitare l'opzione \"Z-lift in retrazione\" dello slicer. Il sistema di pressure advance non modifica i tempi o il percorso della testa di stampa. Una stampa con pressure advance abilitato richieder\u00e0 lo stesso tempo di una stampa senza pressure advance. Inoltre, pressure advance non modifica la quantit\u00e0 totale di filamento estruso durante una stampa. L a pressure advance determina un movimento extra dell'estrusore durante l'accelerazione e la decelerazione del movimento. Un'impostazione di pressure advance molto elevata risulter\u00e0 in una quantit\u00e0 molto grande di movimento dell'estrusore durante l'accelerazione e la decelerazione e nessuna impostazione di configurazione pone un limite alla quantit\u00e0 di tale movimento.","title":"Anticipo di pressione"},{"location":"Pressure_Advance.html#anticipo-di-pressione","text":"Questo documento fornisce informazioni sulla messa a punto della variabile di regolazione del \"pressure advance\" per un particolare ugello e filamento. La funzione di anticipo della pressione pu\u00f2 essere utile per ridurre le colature. Per maggiori informazioni su come viene implementato l'anticipo di pressione, vedere il documento kinematics .","title":"Anticipo di pressione"},{"location":"Pressure_Advance.html#regolazione-della-pressure-advance","text":"Pressure advance fa due cose utili: riduce le colature durante i movimenti senza estrusione e riduce il blobbing durante le curve. Questa guida utilizza la seconda funzione (riduzione del blobbing durante le curve) come meccanismo per la messa a punto. Per calibrare la pressure advance, la stampante deve essere configurata e operativa poich\u00e9 il test di ottimizzazione prevede la stampa e l'ispezione di un oggetto di prova. \u00c8 una buona idea leggere questo documento per intero prima di eseguire il test. Usa uno slicer per generare il codice G per il grande cubo vuoto che si trova in docs/prints/square_tower.stl . Utilizzare una velocit\u00e0 elevata (ad es. 100 mm/s), riempimento zero e un'altezza dello strato grossolana (l'altezza dello strato dovrebbe essere circa il 75% del diametro dell'ugello). Assicurati che qualsiasi \"controllo dinamico dell'accelerazione\" sia disabilitato nello slicer. Prepararsi per il test emettendo il seguente comando G-Code: SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500 Questo comando fa viaggiare l'ugello pi\u00f9 lentamente attraverso gli angoli per enfatizzare gli effetti della pressione dell'estrusore. Quindi per le stampanti con un estrusore a trasmissione diretta eseguire il comando: TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.005 Per estrusori bowden lunghi utilizzare: TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.020 Quindi stampare l'oggetto. Una volta stampata completamente, la stampa di prova avr\u00e0 il seguente aspetto: Il comando TUNING_TOWER sopra indica a Klipper di modificare l'impostazione pressure_advance su ogni strato della stampa. Gli strati pi\u00f9 alti nella stampa avranno un valore di anticipo della pressione maggiore impostato. Gli strati al di sotto dell'impostazione pressione_anticipo ideale avranno macchie agli angoli e gli strati al di sopra dell'impostazione ideale possono portare a angoli arrotondati e una scarsa estrusione all'angolo. \u00c8 possibile annullare la stampa in anticipo se si osserva che gli angoli non vengono pi\u00f9 stampati bene (e quindi si pu\u00f2 evitare di stampare livelli noti per essere al di sopra del valore di pressione_avanzamento ideale). Ispeziona la stampa e quindi utilizza un calibro digitale per trovare l'altezza con gli angoli della migliore qualit\u00e0. In caso di dubbio, preferire un'altezza inferiore. Il valore pressure_advance pu\u00f2 quindi essere calcolato come pressure_advance = <inizio> + <altezza_misurata> * <fattore> . (Ad esempio, 0 + 12.90 * .020 sarebbe .258 .) \u00c8 possibile scegliere impostazioni personalizzate per START e FACTOR se ci\u00f2 aiuta a identificare la migliore impostazione di anticipo della pressione. Quando si esegue questa operazione, assicurarsi di emettere il comando TUNING_TOWER all'inizio di ogni stampa di prova. I valori tipici di pressure advance sono compresi tra 0,050 e 1,000 (la fascia alta di solito solo con estrusori bowden). Se non vi \u00e8 alcun miglioramento significativo con un pressure advance fino a 1.000, \u00e8 improbabile che la pressure advance migliori la qualit\u00e0 delle stampe. Ritorno ad una configurazione di default con pressure advance disabilitato. Sebbene questo esercizio di messa a punto migliori direttamente la qualit\u00e0 degli angoli, vale la pena ricordare che una buona configurazione del pressure advance riduce anche gli ooze durante la stampa. Al termine di questo test, impostare pressure_advance = <calculated_value> nella sezione [extruder] del file di configurazione ed emettere un comando RESTART. Il comando RESTART canceller\u00e0 lo stato di test e riporter\u00e0 le velocit\u00e0 di accelerazione e in curva ai valori normali.","title":"Regolazione della pressure advance"},{"location":"Pressure_Advance.html#note-importanti","text":"Il valore di pressure advance dipende dall'estrusore, dall'ugello e dal filamento. \u00c8 comune che filamenti di produttori diversi o con pigmenti diversi richiedano valori di pressure advance significativamente diversi. Pertanto, si dovrebbe calibrare pressure advance su ciascuna stampante e con ogni bobina di filamento. La temperatura di stampa e le velocit\u00e0 di estrusione possono influire sulla pressure advance. Assicurati di regolare extruder rotation_distance e nozzle temperature prima di regolare l'avanzamento della pressione. La stampa di prova \u00e8 progettata per funzionare con un'elevata portata dell'estrusore, ma per il resto con impostazioni dello slicer \"normali\". Un'elevata portata si ottiene utilizzando un'elevata velocit\u00e0 di stampa (ad es. 100 mm/s) e un'altezza dello strato grossolano (tipicamente circa il 75% del diametro dell'ugello). Altre impostazioni dello slicer dovrebbero essere simili alle loro impostazioni predefinite (ad esempio, perimetri di 2 o 3 linee, quantit\u00e0 di retrazione normale). Pu\u00f2 essere utile impostare la velocit\u00e0 del perimetro esterno in modo che sia la stessa velocit\u00e0 del resto della stampa, ma non \u00e8 un requisito. \u00c8 comune che la stampa di prova mostri un comportamento diverso su ciascun angolo. Spesso lo slicer provveder\u00e0 a cambiare i livelli in un angolo, il che pu\u00f2 comportare che quell'angolo sia significativamente diverso dai restanti tre angoli. Se ci\u00f2 si verifica, ignora quell'angolo e regola pressure advance utilizzando gli altri tre angoli. \u00c8 anche comune che gli angoli rimanenti varino leggermente. (Ci\u00f2 pu\u00f2 verificarsi a causa di piccole differenze nel modo in cui il telaio della stampante reagisce alle curve in determinate direzioni.) Prova a scegliere un valore che funzioni bene per tutti gli angoli rimanenti. In caso di dubbio, preferire un valore di pressure advance inferiore. Se viene utilizzato un valore di pressure advance (ad esempio, superiore a 0.200), \u00e8 possibile che l'estrusore salti quando torna alla normale accelerazione della stampante. Il sistema di pressure advance tiene conto della pressione spingendo il filamento extra durante l'accelerazione e ritraendo quel filamento durante la decelerazione. Con un'elevata accelerazione e un'elevata pressione di anticipo, l'estrusore potrebbe non avere una coppia sufficiente per spingere il filamento richiesto. In tal caso, utilizzare un valore di accelerazione inferiore o disattivare la pressure advance. Una volta che pressure advance \u00e8 stato regolato in Klipper, pu\u00f2 essere comunque utile configurare un piccolo valore di retrazione nello slicer (ad es. 0,75 mm) e utilizzare l'opzione \"pulizia in retrazione\" dello slicer, se disponibile. Queste impostazioni dello slicer possono aiutare a contrastare la trasudazione causata dalla coesione del filamento ( estratto dall'ugello a causa della viscosit\u00e0 della plastica). Si consiglia di disabilitare l'opzione \"Z-lift in retrazione\" dello slicer. Il sistema di pressure advance non modifica i tempi o il percorso della testa di stampa. Una stampa con pressure advance abilitato richieder\u00e0 lo stesso tempo di una stampa senza pressure advance. Inoltre, pressure advance non modifica la quantit\u00e0 totale di filamento estruso durante una stampa. L a pressure advance determina un movimento extra dell'estrusore durante l'accelerazione e la decelerazione del movimento. Un'impostazione di pressure advance molto elevata risulter\u00e0 in una quantit\u00e0 molto grande di movimento dell'estrusore durante l'accelerazione e la decelerazione e nessuna impostazione di configurazione pone un limite alla quantit\u00e0 di tale movimento.","title":"Note importanti"},{"location":"Probe_Calibrate.html","text":"Calibrazione sonda \u00b6 Questo documento descrive il metodo per calibrare gli offset X, Y e Z di una \"sonda z automatica\" in Klipper. Questo \u00e8 utile per gli utenti che hanno una sezione [probe] o [bltouch] nel loro file di configurazione. Calibrazione degli offset X e Y della sonda \u00b6 Per calibrare l'offset X e Y, vai alla scheda \"Controllo\" di OctoPrint, avvia la stampante, quindi usa i pulsanti di spostamento di OctoPrint per spostare la testa in una posizione vicino al centro del piatto. Metti un pezzo di nastro adesivo blu (o simile) sul piatto sotto la sonda. Passare alla scheda \"Terminale\" di OctoPrint ed emettere un comando PROBE: PROBE Metti un segno sul nastro direttamente sotto il punto in cui si trova la sonda (o usa un metodo simile per annotare la posizione sul letto). Emettere un comando GET_POSITION e registrare la posizione XY della testa riportata da quel comando. Ad esempio se si vede: Recv: // toolhead: X:46.500000 Y:27.000000 Z:15.000000 E:0.000000 quindi si registrerebbe una posizione X della sonda di 46,5 e una posizione Y della sonda di 27. Dopo aver registrato la posizione della sonda, emettere una serie di comandi G1 fino a quando l'ugello si trova direttamente sopra il segno sul letto. Ad esempio, si potrebbe emettere: G1 F300 X57 Y30 Z15 per spostare l'ugello in una posizione X di 57 e Y di 30. Una volta trovata la posizione direttamente sopra il segno, utilizzare il comando GET_POSITION per segnalare quella posizione. Questa \u00e8 la posizione dell'ugello. L'offset_x \u00e8 quindi posizione_x_ugello - posizione_x_sonda e l'offset_y \u00e8 analogamente a posizione_y_ugello - posizione_y_sonda . Aggiorna il file printer.cfg con i valori indicati, rimuovi il nastro con i riferimento dal piatto, quindi esegui un comando RESTART in modo che i nuovi valori diventino effettivi. Calibrazione Z offset sonda \u00b6 Inserire una z_offset accurata per la sonda \u00e8 fondamentale per ottenere stampe di alta qualit\u00e0. Lo z_offset \u00e8 la distanza tra l'ugello e il letto quando la sonda si attiva. Lo strumento Klipper PROBE_CALIBRATE pu\u00f2 essere utilizzato per ottenere questo valore: eseguir\u00e0 una sonda automatica per misurare la posizione di trigger Z della sonda e quindi avvier\u00e0 una sonda manuale per ottenere l'altezza Z dell'ugello. La sonda z_offset verr\u00e0 quindi calcolata da queste misurazioni. Inizia spostando testa in una posizione vicino al centro del piatto. Passare alla scheda del terminale OctoPrint ed eseguire il comando PROBE_CALIBRATE per avviare lo strumento. Questo strumento eseguir\u00e0 una misura automatica con la sonda, quindi sollever\u00e0 la testina, sposter\u00e0 l'ugello sulla posizione del punto sonda e avvier\u00e0 lo strumento sonda manuale. Se l'ugello non si sposta in una posizione al di sopra del punto della sonda automatica, allora ANNULLA lo strumento sonda manuale ed eseguire la calibrazione dell'offset della sonda XY descritta sopra. Una volta avviata manualmente la sonda, seguire i passaggi descritti in \"the paper test\" per determinare la distanza effettiva tra l'ugello e il letto in una determinata posizione. Una volta completati questi passaggi, \u00e8 possibile ACCEPT la posizione e salvare i risultati nel file di configurazione con: SAVE_CONFIG Si noti che se viene apportata una modifica al sistema di movimento della stampante, alla posizione dell'hotend o alla posizione della sonda, i risultati di PROBE_CALIBRATE verranno invalidati. Se la sonda ha un offset X o Y e l'inclinazione del letto viene modificata (ad es. regolando le viti del letto, eseguendo DELTA_CALIBRATE, eseguendo Z_TILT_ADJUST, eseguendo QUAD_GANTRY_LEVEL o simili), i risultati di PROBE_CALIBRATE verranno invalidati. Dopo aver apportato una qualsiasi delle modifiche di cui sopra, sar\u00e0 necessario eseguire nuovamente PROBE_CALIBRATE. Se i risultati di PROBE_CALIBRATE vengono invalidati, anche tutti i risultati precedenti di bed mesh ottenuti utilizzando la sonda vengono invalidati: sar\u00e0 necessario eseguire nuovamente BED_MESH_CALIBRATE dopo aver ricalibrato la sonda. Verifica di ripetibilit\u00e0 \u00b6 Dopo aver calibrato gli offset X, Y e Z della sonda, \u00e8 una buona idea verificare che la sonda fornisca risultati ripetibili. Inizia portando a home la stampante e quindi sposta la testa in una posizione vicino al centro del letto. Passare al terminale di OctoPrint ed eseguire il comando PROBE_ACCURACY . Questo comando eseguir\u00e0 il test con la sonda dieci volte e produrr\u00e0 un output simile al seguente: Recv: // probe accuracy: at X:0.000 Y:0.000 Z:10.000 Recv: // and read 10 times with speed of 5 mm/s Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe accuracy results: maximum 2.519448, minimum 2.506948, range 0.012500, average 2.513198, median 2.513198, standard deviation 0.006250 Idealmente lo strumento riporter\u00e0 un valore massimo e minimo identico. (Ovvero, idealmente la sonda ottiene un risultato identico su tutte e dieci le prove.) Tuttavia, \u00e8 normale che i valori minimo e massimo differiscano di una \"distanza di passo\" Z o fino a 5 micron (0,005 mm). Una \"distanza passo\" \u00e8 rotation_distance/(full_steps_per_rotation*microsteps) . La distanza tra il valore minimo e quello massimo \u00e8 chiamata intervallo. Quindi, nell'esempio precedente, poich\u00e9 la stampante utilizza una distanza di passo Z di 0,0125, un intervallo di 0,012500 sarebbe considerato normale. Se i risultati del test mostrano un valore di intervallo maggiore di 25 micron (0,025 mm), la sonda non ha una precisione sufficiente per le procedure tipiche di livellamento del piatto. Potrebbe essere possibile regolare la velocit\u00e0 della sonda e/o l'altezza di inizio della sonda per migliorare la ripetibilit\u00e0 della sonda. Il comando PROBE_ACCURACY consente di eseguire test con parametri diversi per vederne l'impatto - vedere il documento G-Codes per ulteriori dettagli. Se la sonda generalmente ottiene risultati ripetibili ma presenta un valore anomalo occasionale, potrebbe essere possibile tenerne conto utilizzando pi\u00f9 campioni su ciascuna sonda - leggere la descrizione dei parametri di configurazione dei campioni della sonda in riferimento di configurazione per maggiori dettagli. Se sono necessarie una nuova velocit\u00e0 della sonda, diversa quantit\u00e0 di campioni o altre impostazioni, aggiornare il file printer.cfg ed eseguire un comando RESTART . In tal caso, \u00e8 una buona idea anche calibrare z_offset di nuovo. Se non \u00e8 possibile ottenere risultati ripetibili, non utilizzare la sonda per livellare il letto. Klipper ha diversi strumenti manuali che possono essere utilizzati in alternativa: vedere il Bed Level document per ulteriori dettagli. Verifica scostamenti di posizione \u00b6 Alcune sonde possono avere una distorsione sistematica che altera i risultati della sonda in determinate posizioni della testa. Ad esempio, se il supporto della sonda si inclina leggermente durante lo spostamento lungo l'asse Y, la sonda potrebbe riportare risultati distorti in differenti posizioni Y. Questo \u00e8 un problema comune con le sonde sulle stampanti delta, tuttavia pu\u00f2 verificarsi su tutte le stampanti. Si pu\u00f2 verificare una distorsione di posizione utilizzando il comando PROBE_CALIBRATE per misurare l'offset z della sonda in varie posizioni X e Y. Idealmente, il probe z_offset sarebbe un valore costante in ogni posizione della stampante. Per le stampanti delta, prova a misurare z_offset in una posizione vicino alla torre A, in una posizione vicino alla torre B e in una posizione vicino alla torre C. Per stampanti cartesiane, corexy e simili, prova a misurare z_offset in posizioni vicino ai quattro angoli del letto. Prima di iniziare questo test, calibrare prima gli offset della sonda X, Y e Z come descritto all'inizio di questo documento. Quindi porta a home la stampante e vai alla prima posizione XY. Seguire i passaggi in calibrazione dell'offset Z della sonda per eseguire il comando PROBE_CALIBRATE , i comandi TESTZ e il comando ACCETTA , ma non eseguire SAVE_CONFIG . Nota lo z_offset segnalato trovato. Quindi passare alle altre posizioni XY, ripetere questi passaggi PROBE_CALIBRATE e annotare lo z_offset riportato. Se la differenza tra l'offset z minimo riportato e l'offset z massimo riportato \u00e8 maggiore di 25 micron (0,025 mm), la sonda non \u00e8 adatta per le tipiche procedure di livellamento del letto. Consultare il Bed Level document per sonde alternative manuali. Scostamenti per temperatura \u00b6 Molte sonde hanno una distorsione sistemica quando misurano a temperature diverse. Ad esempio, la sonda pu\u00f2 attivarsi costantemente a un'altezza inferiore quando la sonda si trova a una temperatura pi\u00f9 elevata. Si consiglia di eseguire le procedure di livellamento del piatto a una temperatura costante per tenere conto di questa distorsione. Ad esempio, usare sempre la sonda quando la stampante \u00e8 a temperatura ambiente oppure eseguire sempre la procedura dopo che la stampante ha raggiunto una temperatura costante. In entrambi i casi, \u00e8 una buona idea attendere diversi minuti dopo che \u00e8 stata raggiunta la temperatura desiderata, in modo che tutto apparato stampante sia alla temperatura desiderata costantemente. Per verificare la presenza di un errore per temperatura, iniziare con la stampante a temperatura ambiente e poi portare a home la stampante, spostare la testina in una posizione vicino al centro del letto ed eseguire il comando PROBE_ACCURACY . Nota i risultati. Quindi, senza eseguire l'homing o disabilitare i motori passo-passo, riscaldare l'ugello della stampante e il piatto alla temperatura di stampa ed eseguire nuovamente il comando PROBE_ACCURACY . Idealmente, il comando riporter\u00e0 risultati identici. Come sopra, se la sonda ha un errore causato dalla temperatura, fare attenzione a usare sempre la sonda a una temperatura costante stabile.","title":"Calibrazione sonda"},{"location":"Probe_Calibrate.html#calibrazione-sonda","text":"Questo documento descrive il metodo per calibrare gli offset X, Y e Z di una \"sonda z automatica\" in Klipper. Questo \u00e8 utile per gli utenti che hanno una sezione [probe] o [bltouch] nel loro file di configurazione.","title":"Calibrazione sonda"},{"location":"Probe_Calibrate.html#calibrazione-degli-offset-x-e-y-della-sonda","text":"Per calibrare l'offset X e Y, vai alla scheda \"Controllo\" di OctoPrint, avvia la stampante, quindi usa i pulsanti di spostamento di OctoPrint per spostare la testa in una posizione vicino al centro del piatto. Metti un pezzo di nastro adesivo blu (o simile) sul piatto sotto la sonda. Passare alla scheda \"Terminale\" di OctoPrint ed emettere un comando PROBE: PROBE Metti un segno sul nastro direttamente sotto il punto in cui si trova la sonda (o usa un metodo simile per annotare la posizione sul letto). Emettere un comando GET_POSITION e registrare la posizione XY della testa riportata da quel comando. Ad esempio se si vede: Recv: // toolhead: X:46.500000 Y:27.000000 Z:15.000000 E:0.000000 quindi si registrerebbe una posizione X della sonda di 46,5 e una posizione Y della sonda di 27. Dopo aver registrato la posizione della sonda, emettere una serie di comandi G1 fino a quando l'ugello si trova direttamente sopra il segno sul letto. Ad esempio, si potrebbe emettere: G1 F300 X57 Y30 Z15 per spostare l'ugello in una posizione X di 57 e Y di 30. Una volta trovata la posizione direttamente sopra il segno, utilizzare il comando GET_POSITION per segnalare quella posizione. Questa \u00e8 la posizione dell'ugello. L'offset_x \u00e8 quindi posizione_x_ugello - posizione_x_sonda e l'offset_y \u00e8 analogamente a posizione_y_ugello - posizione_y_sonda . Aggiorna il file printer.cfg con i valori indicati, rimuovi il nastro con i riferimento dal piatto, quindi esegui un comando RESTART in modo che i nuovi valori diventino effettivi.","title":"Calibrazione degli offset X e Y della sonda"},{"location":"Probe_Calibrate.html#calibrazione-z-offset-sonda","text":"Inserire una z_offset accurata per la sonda \u00e8 fondamentale per ottenere stampe di alta qualit\u00e0. Lo z_offset \u00e8 la distanza tra l'ugello e il letto quando la sonda si attiva. Lo strumento Klipper PROBE_CALIBRATE pu\u00f2 essere utilizzato per ottenere questo valore: eseguir\u00e0 una sonda automatica per misurare la posizione di trigger Z della sonda e quindi avvier\u00e0 una sonda manuale per ottenere l'altezza Z dell'ugello. La sonda z_offset verr\u00e0 quindi calcolata da queste misurazioni. Inizia spostando testa in una posizione vicino al centro del piatto. Passare alla scheda del terminale OctoPrint ed eseguire il comando PROBE_CALIBRATE per avviare lo strumento. Questo strumento eseguir\u00e0 una misura automatica con la sonda, quindi sollever\u00e0 la testina, sposter\u00e0 l'ugello sulla posizione del punto sonda e avvier\u00e0 lo strumento sonda manuale. Se l'ugello non si sposta in una posizione al di sopra del punto della sonda automatica, allora ANNULLA lo strumento sonda manuale ed eseguire la calibrazione dell'offset della sonda XY descritta sopra. Una volta avviata manualmente la sonda, seguire i passaggi descritti in \"the paper test\" per determinare la distanza effettiva tra l'ugello e il letto in una determinata posizione. Una volta completati questi passaggi, \u00e8 possibile ACCEPT la posizione e salvare i risultati nel file di configurazione con: SAVE_CONFIG Si noti che se viene apportata una modifica al sistema di movimento della stampante, alla posizione dell'hotend o alla posizione della sonda, i risultati di PROBE_CALIBRATE verranno invalidati. Se la sonda ha un offset X o Y e l'inclinazione del letto viene modificata (ad es. regolando le viti del letto, eseguendo DELTA_CALIBRATE, eseguendo Z_TILT_ADJUST, eseguendo QUAD_GANTRY_LEVEL o simili), i risultati di PROBE_CALIBRATE verranno invalidati. Dopo aver apportato una qualsiasi delle modifiche di cui sopra, sar\u00e0 necessario eseguire nuovamente PROBE_CALIBRATE. Se i risultati di PROBE_CALIBRATE vengono invalidati, anche tutti i risultati precedenti di bed mesh ottenuti utilizzando la sonda vengono invalidati: sar\u00e0 necessario eseguire nuovamente BED_MESH_CALIBRATE dopo aver ricalibrato la sonda.","title":"Calibrazione Z offset sonda"},{"location":"Probe_Calibrate.html#verifica-di-ripetibilita","text":"Dopo aver calibrato gli offset X, Y e Z della sonda, \u00e8 una buona idea verificare che la sonda fornisca risultati ripetibili. Inizia portando a home la stampante e quindi sposta la testa in una posizione vicino al centro del letto. Passare al terminale di OctoPrint ed eseguire il comando PROBE_ACCURACY . Questo comando eseguir\u00e0 il test con la sonda dieci volte e produrr\u00e0 un output simile al seguente: Recv: // probe accuracy: at X:0.000 Y:0.000 Z:10.000 Recv: // and read 10 times with speed of 5 mm/s Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe at -0.003,0.005 is z=2.519448 Recv: // probe at -0.003,0.005 is z=2.506948 Recv: // probe accuracy results: maximum 2.519448, minimum 2.506948, range 0.012500, average 2.513198, median 2.513198, standard deviation 0.006250 Idealmente lo strumento riporter\u00e0 un valore massimo e minimo identico. (Ovvero, idealmente la sonda ottiene un risultato identico su tutte e dieci le prove.) Tuttavia, \u00e8 normale che i valori minimo e massimo differiscano di una \"distanza di passo\" Z o fino a 5 micron (0,005 mm). Una \"distanza passo\" \u00e8 rotation_distance/(full_steps_per_rotation*microsteps) . La distanza tra il valore minimo e quello massimo \u00e8 chiamata intervallo. Quindi, nell'esempio precedente, poich\u00e9 la stampante utilizza una distanza di passo Z di 0,0125, un intervallo di 0,012500 sarebbe considerato normale. Se i risultati del test mostrano un valore di intervallo maggiore di 25 micron (0,025 mm), la sonda non ha una precisione sufficiente per le procedure tipiche di livellamento del piatto. Potrebbe essere possibile regolare la velocit\u00e0 della sonda e/o l'altezza di inizio della sonda per migliorare la ripetibilit\u00e0 della sonda. Il comando PROBE_ACCURACY consente di eseguire test con parametri diversi per vederne l'impatto - vedere il documento G-Codes per ulteriori dettagli. Se la sonda generalmente ottiene risultati ripetibili ma presenta un valore anomalo occasionale, potrebbe essere possibile tenerne conto utilizzando pi\u00f9 campioni su ciascuna sonda - leggere la descrizione dei parametri di configurazione dei campioni della sonda in riferimento di configurazione per maggiori dettagli. Se sono necessarie una nuova velocit\u00e0 della sonda, diversa quantit\u00e0 di campioni o altre impostazioni, aggiornare il file printer.cfg ed eseguire un comando RESTART . In tal caso, \u00e8 una buona idea anche calibrare z_offset di nuovo. Se non \u00e8 possibile ottenere risultati ripetibili, non utilizzare la sonda per livellare il letto. Klipper ha diversi strumenti manuali che possono essere utilizzati in alternativa: vedere il Bed Level document per ulteriori dettagli.","title":"Verifica di ripetibilit\u00e0"},{"location":"Probe_Calibrate.html#verifica-scostamenti-di-posizione","text":"Alcune sonde possono avere una distorsione sistematica che altera i risultati della sonda in determinate posizioni della testa. Ad esempio, se il supporto della sonda si inclina leggermente durante lo spostamento lungo l'asse Y, la sonda potrebbe riportare risultati distorti in differenti posizioni Y. Questo \u00e8 un problema comune con le sonde sulle stampanti delta, tuttavia pu\u00f2 verificarsi su tutte le stampanti. Si pu\u00f2 verificare una distorsione di posizione utilizzando il comando PROBE_CALIBRATE per misurare l'offset z della sonda in varie posizioni X e Y. Idealmente, il probe z_offset sarebbe un valore costante in ogni posizione della stampante. Per le stampanti delta, prova a misurare z_offset in una posizione vicino alla torre A, in una posizione vicino alla torre B e in una posizione vicino alla torre C. Per stampanti cartesiane, corexy e simili, prova a misurare z_offset in posizioni vicino ai quattro angoli del letto. Prima di iniziare questo test, calibrare prima gli offset della sonda X, Y e Z come descritto all'inizio di questo documento. Quindi porta a home la stampante e vai alla prima posizione XY. Seguire i passaggi in calibrazione dell'offset Z della sonda per eseguire il comando PROBE_CALIBRATE , i comandi TESTZ e il comando ACCETTA , ma non eseguire SAVE_CONFIG . Nota lo z_offset segnalato trovato. Quindi passare alle altre posizioni XY, ripetere questi passaggi PROBE_CALIBRATE e annotare lo z_offset riportato. Se la differenza tra l'offset z minimo riportato e l'offset z massimo riportato \u00e8 maggiore di 25 micron (0,025 mm), la sonda non \u00e8 adatta per le tipiche procedure di livellamento del letto. Consultare il Bed Level document per sonde alternative manuali.","title":"Verifica scostamenti di posizione"},{"location":"Probe_Calibrate.html#scostamenti-per-temperatura","text":"Molte sonde hanno una distorsione sistemica quando misurano a temperature diverse. Ad esempio, la sonda pu\u00f2 attivarsi costantemente a un'altezza inferiore quando la sonda si trova a una temperatura pi\u00f9 elevata. Si consiglia di eseguire le procedure di livellamento del piatto a una temperatura costante per tenere conto di questa distorsione. Ad esempio, usare sempre la sonda quando la stampante \u00e8 a temperatura ambiente oppure eseguire sempre la procedura dopo che la stampante ha raggiunto una temperatura costante. In entrambi i casi, \u00e8 una buona idea attendere diversi minuti dopo che \u00e8 stata raggiunta la temperatura desiderata, in modo che tutto apparato stampante sia alla temperatura desiderata costantemente. Per verificare la presenza di un errore per temperatura, iniziare con la stampante a temperatura ambiente e poi portare a home la stampante, spostare la testina in una posizione vicino al centro del letto ed eseguire il comando PROBE_ACCURACY . Nota i risultati. Quindi, senza eseguire l'homing o disabilitare i motori passo-passo, riscaldare l'ugello della stampante e il piatto alla temperatura di stampa ed eseguire nuovamente il comando PROBE_ACCURACY . Idealmente, il comando riporter\u00e0 risultati identici. Come sopra, se la sonda ha un errore causato dalla temperatura, fare attenzione a usare sempre la sonda a una temperatura costante stabile.","title":"Scostamenti per temperatura"},{"location":"Protocol.html","text":"Protocollo \u00b6 Il protocollo di messaggistica Klipper viene utilizzato per la comunicazione di basso livello tra il software host Klipper e il software microcontrollore Klipper. Ad alto livello il protocollo pu\u00f2 essere pensato come una serie di stringhe di comando e risposta che vengono compresse, trasmesse e quindi elaborate sul lato ricevente. Una serie di esempio di comandi in formato non compresso leggibile dall'uomo potrebbe essere simile a: set_digital_out pin=PA3 value=1 set_digital_out pin=PA7 value=1 schedule_digital_out oid=8 clock=4000000 value=0 queue_step oid=7 interval=7458 count=10 add=331 queue_step oid=7 interval=11717 count=4 add=1281 Vedere il documento mcu commands per informazioni sui comandi disponibili. Vedere il documento debugging per informazioni su come tradurre un file G-Code nei corrispondenti comandi del microcontrollore leggibili dall'uomo. Questa pagina fornisce una descrizione di alto livello del protocollo di messaggistica Klipper. Descrive come i messaggi sono dichiarati, codificati in formato binario (lo schema di \"compressione\") e trasmessi. L'obiettivo del protocollo \u00e8 abilitare un canale di comunicazione privo di errori tra l'host e il microcontrollore che sia a bassa latenza, bassa larghezza di banda e bassa complessit\u00e0 per il microcontrollore. Interfaccia microcontrollore \u00b6 Il protocollo di trasmissione Klipper pu\u00f2 essere pensato come un meccanismo RPC tra microcontrollore e host. Il software del microcontrollore dichiara i comandi che l'host pu\u00f2 richiamare insieme ai messaggi di risposta che pu\u00f2 generare. L'host utilizza tali informazioni per comandare al microcontrollore di eseguire azioni e interpretare i risultati. Dichiarazione dei comandi \u00b6 Il software del microcontrollore dichiara un \"comando\" utilizzando la macro DECL_COMMAND() nel codice C. Per esempio: DECL_COMMAND(command_update_digital_out, \"update_digital_out oid=%c value=%c\"); Quanto sopra dichiara un comando denominato \"update_digital_out\". Ci\u00f2 consente all'host di \"richiamare\" questo comando che causerebbe l'esecuzione della funzione C command_update_digital_out() nel microcontrollore. Quanto sopra indica anche che il comando accetta due parametri interi. Quando viene eseguito il codice C command_update_digital_out(), verr\u00e0 passata una matrice contenente questi due numeri interi: il primo corrispondente all'\"oid\" e il secondo corrispondente al \"valore\". In generale, i parametri sono descritti con la sintassi di stile printf() (ad esempio, \"%u\"). La formattazione corrisponde direttamente alla visualizzazione leggibile dei comandi (ad es. \"update_digital_out oid=7 value=1\"). Nell'esempio precedente, \"value=\" \u00e8 un nome di parametro e \"%c\" indica che il parametro \u00e8 un numero intero. Internamente, il nome del parametro viene utilizzato solo come documentazione. In questo esempio, \"%c\" viene utilizzato anche come documentazione per indicare che l'intero previsto ha una dimensione di 1 byte (la dimensione intera dichiarata non influisce sull'analisi o sulla codifica). La build del microcontrollore raccoglier\u00e0 tutti i comandi dichiarati con DECL_COMMAND(), ne determiner\u00e0 i parametri e far\u00e0 in modo che siano richiamabili. Declaring responses \u00b6 Per inviare informazioni dal microcontrollore all'host viene generata una \"risposta\". Questi sono sia dichiarati che trasmessi usando la macro C sendf(). Per esempio: sendf(\"status clock=%u status=%c\", sched_read_time(), sched_is_shutdown()); Quanto sopra trasmette un messaggio di risposta di \"stato\" che contiene due parametri interi (\"clock\" e \"status\"). La build del microcontrollore trova automaticamente tutte le chiamate sendf() e genera codificatori per esse. Il primo parametro della funzione sendf() descrive la risposta ed \u00e8 nello stesso formato delle dichiarazioni di comando. L'host pu\u00f2 organizzare la registrazione di una funzione di richiamata per ogni risposta. Quindi, in effetti, i comandi consentono all'host di invocare le funzioni C nel microcontrollore e le risposte consentono al software del microcontrollore di richiamare il codice nell'host. La macro sendf() deve essere invocata solo da gestori di comandi o attivit\u00e0 e non deve essere invocata da interrupt o timer. Il codice non ha bisogno di emettere un sendf() in risposta a un comando ricevuto, non \u00e8 limitato nel numero di volte in cui sendf() pu\u00f2 essere invocato e pu\u00f2 invocare sendf() in qualsiasi momento da un task handler. Risposte in output \u00b6 Per semplificare il debug, esiste anche una funzione C output(). Per esempio: output(\"Il valore di%u \u00e8 %s con dimensione %u.\", x, buf, buf_len); La funzione output() \u00e8 simile nell'uso a printf() - \u00e8 intesa per generare e formattare messaggi arbitrari per il 'consumo umano'. Dichiarazione di enumerazioni \u00b6 Le enumerazioni consentono al codice host di utilizzare identificatori di stringa per i parametri che il microcontrollore gestisce come numeri interi. Sono dichiarati nel codice del microcontrollore, ad esempio: DECL_ENUMERATION(\"spi_bus\", \"spi\", 0); DECL_ENUMERATION_RANGE(\"pin\", \"PC0\", 16, 8); Se il primo esempio, la macro DECL_ENUMERATION() definisce un'enumerazione per qualsiasi messaggio di comando/risposta con nome parametro \"spi_bus\" o nome parametro con suffisso \"_spi_bus\". Per quei parametri la stringa \"spi\" \u00e8 un valore valido e verr\u00e0 trasmessa con un valore intero pari a zero. \u00c8 anche possibile dichiarare un intervallo di enumerazione. Nel secondo esempio, un parametro \"pin\" (o qualsiasi parametro con suffisso \"_pin\") accetterebbe PC0, PC1, PC2, ..., PC7 come valori validi. Le stringhe verranno trasmesse con numeri interi 16, 17, 18, ..., 23. Dichiarazione di costanti \u00b6 Le costanti possono anche essere esportate. Ad esempio, quanto segue: DECL_CONSTANT(\"SERIAL_BAUD\", 250000); esporterebbe una costante denominata \"SERIAL_BAUD\" con un valore di 250000 dal microcontrollore all'host. \u00c8 anche possibile dichiarare una costante che \u00e8 una stringa, ad esempio: DECL_CONSTANT_STR(\"MCU\", \"pru\"); Codifica dei messaggi di basso livello \u00b6 Per realizzare il meccanismo RPC di cui sopra, ogni comando e risposta viene codificato in un formato binario per la trasmissione. Questa sezione descrive il sistema di trasmissione. Blocchi di messaggi \u00b6 Tutti i dati inviati dall'host al microcontrollore e viceversa sono contenuti in \"blocchi di messaggi\". Un blocco di messaggi ha un'intestazione di due byte e un trailer di tre byte. Il formato di un blocco di messaggi \u00e8: <1 byte lunghezza><1 byte sequenza><n-byte contenuto><2 byte crc><1 byte sync> Il byte di lunghezza contiene il numero di byte nel blocco di messaggi inclusi i byte di intestazione e trailer (quindi la lunghezza minima del messaggio \u00e8 5 byte). La lunghezza massima del blocco di messaggi \u00e8 attualmente di 64 byte. Il byte di sequenza contiene un numero di sequenza di 4 bit nei bit di ordine inferiore e i bit di ordine superiore contengono sempre 0x10 (i bit di ordine superiore sono riservati per un uso futuro). I byte di contenuto contengono dati arbitrari e il relativo formato \u00e8 descritto nella sezione seguente. I byte crc contengono un CCITT CRC a 16 bit del blocco di messaggi inclusi i byte di intestazione ma esclusi i byte di trailer. Il byte di sincronizzazione \u00e8 0x7e. Il formato del blocco di messaggi si ispira ai telegrammi HDLC . Come in HDLC, il blocco di messaggi pu\u00f2 contenere facoltativamente un carattere di sincronizzazione aggiuntivo all'inizio del blocco. A differenza di HDLC, un carattere di sincronizzazione non \u00e8 esclusivo del framing e pu\u00f2 essere presente nel contenuto del blocco di messaggi. Contenuto del blocco messaggi \u00b6 Ogni blocco di messaggi inviato dall'host al microcontrollore contiene una serie di zero o pi\u00f9 comandi di messaggi. Ogni comando inizia con un Quantit\u00e0 a lunghezza variabile (VLQ) command-id seguito da zero o pi\u00f9 parametri VLQ per il comando dato. Ad esempio, i seguenti quattro comandi possono essere inseriti in un unico blocco di messaggi: update_digital_out oid=6 value=1 update_digital_out oid=5 value=0 get_config get_clock e codificato nei seguenti otto interi VLQ: <id_update_digital_out><6><1><id_update_digital_out><5><0><id_get_config><id_get_clock> Per codificare e analizzare il contenuto del messaggio, sia l'host che il microcontrollore devono concordare gli ID comando e il numero di parametri di ciascun comando. Quindi, nell'esempio sopra, sia l'host che il microcontrollore saprebbero che \"id_update_digital_out\" \u00e8 sempre seguito da due parametri e \"id_get_config\" e \"id_get_clock\" hanno zero parametri. L'host e il microcontrollore condividono un \"dizionario dei dati\" che mappa le descrizioni dei comandi (ad esempio, \"update_digital_out oid=%c value=%c\") ai loro ID di comando interi. Durante l'elaborazione dei dati, il parser sapr\u00e0 di aspettarsi un numero specifico di parametri codificati VLQ a seguito di un determinato ID comando. Il contenuto del messaggio per i blocchi inviati dal microcontrollore all'host segue lo stesso formato. Gli identificatori in questi messaggi sono \"ID di risposta\", ma servono allo stesso scopo e seguono le stesse regole di codifica. In pratica, i blocchi di messaggi inviati dal microcontrollore all'host non contengono mai pi\u00f9 di una risposta nel contenuto del blocco di messaggi. Quantit\u00e0 di lunghezza variabile \u00b6 Consulta l' articolo di Wikipedia per ulteriori informazioni sul formato generale degli interi codificati VLQ. Klipper utilizza uno schema di codifica che supporta numeri interi positivi e negativi. Gli interi prossimi allo zero utilizzano meno byte per codificare e gli interi positivi in genere codificano utilizzando meno byte degli interi negativi. La tabella seguente mostra il numero di byte che ogni intero impiega per codificare: Intero Dimensione codificata -32 .. 95 1 -4096 .. 12287 2 -524288 .. 1572863 3 -67108864 .. 201326591 4 -2147483648 .. 4294967295 5 Stringhe di lunghezza variabile \u00b6 Come eccezione alle regole di codifica precedenti, se un parametro di un comando o di una risposta \u00e8 una stringa dinamica, il parametro non viene codificato come un semplice intero VLQ. Invece viene codificato trasmettendo la lunghezza come intero codificato VLQ seguito dal contenuto stesso: <VLQ encoded length><n-byte contents> Le descrizioni dei comandi che si trovano nel dizionario dei dati consentono sia all'host che al microcontrollore di sapere quali parametri del comando utilizzano la semplice codifica VLQ e quali parametri utilizzano la codifica delle stringhe. Dizionario dati \u00b6 Affinch\u00e9 vengano stabilite comunicazioni significative tra microcontrollore e host, entrambe le parti devono concordare un \"dizionario dei dati\". Questo dizionario di dati contiene gli identificatori interi per comandi e risposte insieme alle relative descrizioni. La build del microcontrollore utilizza il contenuto delle macro DECL_COMMAND() e sendf() per generare il dizionario dei dati. La build assegna automaticamente identificatori univoci a ciascun comando e risposta. Questo sistema consente sia all'host che al codice del microcontrollore di utilizzare senza problemi nomi descrittivi leggibili dall'uomo pur utilizzando una larghezza di banda minima. L'host interroga il dizionario dei dati quando si connette per la prima volta al microcontrollore. Una volta che l'host ha scaricato il dizionario dei dati dal microcontrollore, utilizza quel dizionario dei dati per codificare tutti i comandi e per analizzare tutte le risposte dal microcontrollore. L'host deve quindi gestire un dizionario di dati dinamico. Tuttavia, per mantenere semplice il software del microcontrollore, il microcontrollore utilizza sempre il suo dizionario dati statico (compilato). Il dizionario dei dati viene interrogato inviando i comandi \"identify\" al microcontrollore. Il microcontrollore risponder\u00e0 a ogni comando di identificazione con un messaggio \"identify_response\". Poich\u00e9 questi due comandi sono necessari prima di ottenere il dizionario dei dati, i loro ID interi e tipi di parametri sono codificati sia nel microcontrollore che nell'host. L'ID della risposta \"identify_response\" \u00e8 0, l'ID del comando \"identify\" \u00e8 1. Oltre ad avere ID hardcoded, il comando di identificazione e la relativa risposta vengono dichiarati e trasmessi allo stesso modo degli altri comandi e risposte. Nessun altro comando o risposta \u00e8 hardcoded. Il formato del dizionario dei dati trasmessi stesso \u00e8 una stringa JSON compressa zlib. Il processo di compilazione del microcontrollore genera la stringa, la comprime e la memorizza nella sezione di testo del flash del microcontrollore. Il dizionario dei dati pu\u00f2 essere molto pi\u00f9 grande della dimensione massima del blocco del messaggio: l'host lo scarica inviando pi\u00f9 comandi di identificazione che richiedono blocchi progressivi del dizionario dei dati. Una volta ottenuti tutti i blocchi, l'host assembler\u00e0 i blocchi, decomprimer\u00e0 i dati e analizzer\u00e0 il contenuto. Oltre alle informazioni sul protocollo di comunicazione, il dizionario dei dati contiene anche la versione del software, le enumerazioni (come definite da DECL_ENUMERATION) e le costanti (come definite da DECL_CONSTANT). Flusso di messaggi \u00b6 I comandi dei messaggi inviati dall'host al microcontrollore sono concepiti per essere privi di errori. Il microcontrollore controller\u00e0 il CRC e i numeri di sequenza in ciascun blocco di messaggi per garantire che i comandi siano accurati e in ordine. Il microcontrollore elabora sempre i blocchi di messaggi in ordine - se riceve un blocco fuori ordine, lo scarter\u00e0 e tutti gli altri blocchi fuori ordine fino a quando non riceve blocchi con la sequenza corretta. Il codice host di basso livello implementa un sistema di ritrasmissione automatica per i blocchi di messaggi persi e corrotti inviati al microcontrollore. Per facilitare ci\u00f2, il microcontrollore trasmette un \"ack message block\" dopo ogni blocco di messaggio ricevuto con successo. L'host pianifica un timeout dopo l'invio di ogni blocco e lo ritrasmetter\u00e0 se il timeout scade senza ricevere un corrispondente \"ack\". Inoltre, se il microcontrollore rileva un blocco corrotto o fuori servizio, pu\u00f2 trasmettere un \"nak message block\" per facilitare una rapida ritrasmissione. Un \"ack\" \u00e8 un blocco di messaggi con contenuto vuoto (cio\u00e8 un blocco di messaggi di 5 byte) e un numero di sequenza maggiore dell'ultimo numero di sequenza dell'host ricevuto. Un \"nak\" \u00e8 un blocco di messaggi con contenuto vuoto e un numero di sequenza inferiore all'ultimo numero di sequenza host ricevuto. Il protocollo facilita un sistema di trasmissione \"finestra\" in modo che l'host possa avere molti blocchi di messaggi in sospeso in viaggio alla volta. (Questo \u00e8 in aggiunta ai molti comandi che possono essere presenti in un determinato blocco di messaggi.) Ci\u00f2 consente il massimo utilizzo della larghezza di banda anche in caso di latenza di trasmissione. Il meccanismo di timeout, ritrasmissione, windowing e ack si ispira a meccanismi simili in TCP . Nell'altra direzione, i blocchi di messaggi inviati dal microcontrollore all'host sono progettati per essere privi di errori, ma non hanno una trasmissione sicura. (Le risposte non dovrebbero essere danneggiate, ma potrebbero scomparire.) Questo viene fatto per mantenere semplice l'implementazione nel microcontrollore. Non esiste un sistema di ritrasmissione automatica delle risposte: ci si aspetta che il codice di alto livello sia in grado di gestire una risposta mancante occasionale (di solito richiedendo nuovamente il contenuto o impostando un programma ricorrente di trasmissione della risposta). Il campo del numero di sequenza nei blocchi di messaggi inviati all'host \u00e8 sempre uno maggiore dell'ultimo numero di sequenza di blocchi di messaggi ricevuti dall'host. Non viene utilizzato per tenere traccia di sequenze di blocchi di messaggi di risposta.","title":"Protocollo"},{"location":"Protocol.html#protocollo","text":"Il protocollo di messaggistica Klipper viene utilizzato per la comunicazione di basso livello tra il software host Klipper e il software microcontrollore Klipper. Ad alto livello il protocollo pu\u00f2 essere pensato come una serie di stringhe di comando e risposta che vengono compresse, trasmesse e quindi elaborate sul lato ricevente. Una serie di esempio di comandi in formato non compresso leggibile dall'uomo potrebbe essere simile a: set_digital_out pin=PA3 value=1 set_digital_out pin=PA7 value=1 schedule_digital_out oid=8 clock=4000000 value=0 queue_step oid=7 interval=7458 count=10 add=331 queue_step oid=7 interval=11717 count=4 add=1281 Vedere il documento mcu commands per informazioni sui comandi disponibili. Vedere il documento debugging per informazioni su come tradurre un file G-Code nei corrispondenti comandi del microcontrollore leggibili dall'uomo. Questa pagina fornisce una descrizione di alto livello del protocollo di messaggistica Klipper. Descrive come i messaggi sono dichiarati, codificati in formato binario (lo schema di \"compressione\") e trasmessi. L'obiettivo del protocollo \u00e8 abilitare un canale di comunicazione privo di errori tra l'host e il microcontrollore che sia a bassa latenza, bassa larghezza di banda e bassa complessit\u00e0 per il microcontrollore.","title":"Protocollo"},{"location":"Protocol.html#interfaccia-microcontrollore","text":"Il protocollo di trasmissione Klipper pu\u00f2 essere pensato come un meccanismo RPC tra microcontrollore e host. Il software del microcontrollore dichiara i comandi che l'host pu\u00f2 richiamare insieme ai messaggi di risposta che pu\u00f2 generare. L'host utilizza tali informazioni per comandare al microcontrollore di eseguire azioni e interpretare i risultati.","title":"Interfaccia microcontrollore"},{"location":"Protocol.html#dichiarazione-dei-comandi","text":"Il software del microcontrollore dichiara un \"comando\" utilizzando la macro DECL_COMMAND() nel codice C. Per esempio: DECL_COMMAND(command_update_digital_out, \"update_digital_out oid=%c value=%c\"); Quanto sopra dichiara un comando denominato \"update_digital_out\". Ci\u00f2 consente all'host di \"richiamare\" questo comando che causerebbe l'esecuzione della funzione C command_update_digital_out() nel microcontrollore. Quanto sopra indica anche che il comando accetta due parametri interi. Quando viene eseguito il codice C command_update_digital_out(), verr\u00e0 passata una matrice contenente questi due numeri interi: il primo corrispondente all'\"oid\" e il secondo corrispondente al \"valore\". In generale, i parametri sono descritti con la sintassi di stile printf() (ad esempio, \"%u\"). La formattazione corrisponde direttamente alla visualizzazione leggibile dei comandi (ad es. \"update_digital_out oid=7 value=1\"). Nell'esempio precedente, \"value=\" \u00e8 un nome di parametro e \"%c\" indica che il parametro \u00e8 un numero intero. Internamente, il nome del parametro viene utilizzato solo come documentazione. In questo esempio, \"%c\" viene utilizzato anche come documentazione per indicare che l'intero previsto ha una dimensione di 1 byte (la dimensione intera dichiarata non influisce sull'analisi o sulla codifica). La build del microcontrollore raccoglier\u00e0 tutti i comandi dichiarati con DECL_COMMAND(), ne determiner\u00e0 i parametri e far\u00e0 in modo che siano richiamabili.","title":"Dichiarazione dei comandi"},{"location":"Protocol.html#declaring-responses","text":"Per inviare informazioni dal microcontrollore all'host viene generata una \"risposta\". Questi sono sia dichiarati che trasmessi usando la macro C sendf(). Per esempio: sendf(\"status clock=%u status=%c\", sched_read_time(), sched_is_shutdown()); Quanto sopra trasmette un messaggio di risposta di \"stato\" che contiene due parametri interi (\"clock\" e \"status\"). La build del microcontrollore trova automaticamente tutte le chiamate sendf() e genera codificatori per esse. Il primo parametro della funzione sendf() descrive la risposta ed \u00e8 nello stesso formato delle dichiarazioni di comando. L'host pu\u00f2 organizzare la registrazione di una funzione di richiamata per ogni risposta. Quindi, in effetti, i comandi consentono all'host di invocare le funzioni C nel microcontrollore e le risposte consentono al software del microcontrollore di richiamare il codice nell'host. La macro sendf() deve essere invocata solo da gestori di comandi o attivit\u00e0 e non deve essere invocata da interrupt o timer. Il codice non ha bisogno di emettere un sendf() in risposta a un comando ricevuto, non \u00e8 limitato nel numero di volte in cui sendf() pu\u00f2 essere invocato e pu\u00f2 invocare sendf() in qualsiasi momento da un task handler.","title":"Declaring responses"},{"location":"Protocol.html#risposte-in-output","text":"Per semplificare il debug, esiste anche una funzione C output(). Per esempio: output(\"Il valore di%u \u00e8 %s con dimensione %u.\", x, buf, buf_len); La funzione output() \u00e8 simile nell'uso a printf() - \u00e8 intesa per generare e formattare messaggi arbitrari per il 'consumo umano'.","title":"Risposte in output"},{"location":"Protocol.html#dichiarazione-di-enumerazioni","text":"Le enumerazioni consentono al codice host di utilizzare identificatori di stringa per i parametri che il microcontrollore gestisce come numeri interi. Sono dichiarati nel codice del microcontrollore, ad esempio: DECL_ENUMERATION(\"spi_bus\", \"spi\", 0); DECL_ENUMERATION_RANGE(\"pin\", \"PC0\", 16, 8); Se il primo esempio, la macro DECL_ENUMERATION() definisce un'enumerazione per qualsiasi messaggio di comando/risposta con nome parametro \"spi_bus\" o nome parametro con suffisso \"_spi_bus\". Per quei parametri la stringa \"spi\" \u00e8 un valore valido e verr\u00e0 trasmessa con un valore intero pari a zero. \u00c8 anche possibile dichiarare un intervallo di enumerazione. Nel secondo esempio, un parametro \"pin\" (o qualsiasi parametro con suffisso \"_pin\") accetterebbe PC0, PC1, PC2, ..., PC7 come valori validi. Le stringhe verranno trasmesse con numeri interi 16, 17, 18, ..., 23.","title":"Dichiarazione di enumerazioni"},{"location":"Protocol.html#dichiarazione-di-costanti","text":"Le costanti possono anche essere esportate. Ad esempio, quanto segue: DECL_CONSTANT(\"SERIAL_BAUD\", 250000); esporterebbe una costante denominata \"SERIAL_BAUD\" con un valore di 250000 dal microcontrollore all'host. \u00c8 anche possibile dichiarare una costante che \u00e8 una stringa, ad esempio: DECL_CONSTANT_STR(\"MCU\", \"pru\");","title":"Dichiarazione di costanti"},{"location":"Protocol.html#codifica-dei-messaggi-di-basso-livello","text":"Per realizzare il meccanismo RPC di cui sopra, ogni comando e risposta viene codificato in un formato binario per la trasmissione. Questa sezione descrive il sistema di trasmissione.","title":"Codifica dei messaggi di basso livello"},{"location":"Protocol.html#blocchi-di-messaggi","text":"Tutti i dati inviati dall'host al microcontrollore e viceversa sono contenuti in \"blocchi di messaggi\". Un blocco di messaggi ha un'intestazione di due byte e un trailer di tre byte. Il formato di un blocco di messaggi \u00e8: <1 byte lunghezza><1 byte sequenza><n-byte contenuto><2 byte crc><1 byte sync> Il byte di lunghezza contiene il numero di byte nel blocco di messaggi inclusi i byte di intestazione e trailer (quindi la lunghezza minima del messaggio \u00e8 5 byte). La lunghezza massima del blocco di messaggi \u00e8 attualmente di 64 byte. Il byte di sequenza contiene un numero di sequenza di 4 bit nei bit di ordine inferiore e i bit di ordine superiore contengono sempre 0x10 (i bit di ordine superiore sono riservati per un uso futuro). I byte di contenuto contengono dati arbitrari e il relativo formato \u00e8 descritto nella sezione seguente. I byte crc contengono un CCITT CRC a 16 bit del blocco di messaggi inclusi i byte di intestazione ma esclusi i byte di trailer. Il byte di sincronizzazione \u00e8 0x7e. Il formato del blocco di messaggi si ispira ai telegrammi HDLC . Come in HDLC, il blocco di messaggi pu\u00f2 contenere facoltativamente un carattere di sincronizzazione aggiuntivo all'inizio del blocco. A differenza di HDLC, un carattere di sincronizzazione non \u00e8 esclusivo del framing e pu\u00f2 essere presente nel contenuto del blocco di messaggi.","title":"Blocchi di messaggi"},{"location":"Protocol.html#contenuto-del-blocco-messaggi","text":"Ogni blocco di messaggi inviato dall'host al microcontrollore contiene una serie di zero o pi\u00f9 comandi di messaggi. Ogni comando inizia con un Quantit\u00e0 a lunghezza variabile (VLQ) command-id seguito da zero o pi\u00f9 parametri VLQ per il comando dato. Ad esempio, i seguenti quattro comandi possono essere inseriti in un unico blocco di messaggi: update_digital_out oid=6 value=1 update_digital_out oid=5 value=0 get_config get_clock e codificato nei seguenti otto interi VLQ: <id_update_digital_out><6><1><id_update_digital_out><5><0><id_get_config><id_get_clock> Per codificare e analizzare il contenuto del messaggio, sia l'host che il microcontrollore devono concordare gli ID comando e il numero di parametri di ciascun comando. Quindi, nell'esempio sopra, sia l'host che il microcontrollore saprebbero che \"id_update_digital_out\" \u00e8 sempre seguito da due parametri e \"id_get_config\" e \"id_get_clock\" hanno zero parametri. L'host e il microcontrollore condividono un \"dizionario dei dati\" che mappa le descrizioni dei comandi (ad esempio, \"update_digital_out oid=%c value=%c\") ai loro ID di comando interi. Durante l'elaborazione dei dati, il parser sapr\u00e0 di aspettarsi un numero specifico di parametri codificati VLQ a seguito di un determinato ID comando. Il contenuto del messaggio per i blocchi inviati dal microcontrollore all'host segue lo stesso formato. Gli identificatori in questi messaggi sono \"ID di risposta\", ma servono allo stesso scopo e seguono le stesse regole di codifica. In pratica, i blocchi di messaggi inviati dal microcontrollore all'host non contengono mai pi\u00f9 di una risposta nel contenuto del blocco di messaggi.","title":"Contenuto del blocco messaggi"},{"location":"Protocol.html#quantita-di-lunghezza-variabile","text":"Consulta l' articolo di Wikipedia per ulteriori informazioni sul formato generale degli interi codificati VLQ. Klipper utilizza uno schema di codifica che supporta numeri interi positivi e negativi. Gli interi prossimi allo zero utilizzano meno byte per codificare e gli interi positivi in genere codificano utilizzando meno byte degli interi negativi. La tabella seguente mostra il numero di byte che ogni intero impiega per codificare: Intero Dimensione codificata -32 .. 95 1 -4096 .. 12287 2 -524288 .. 1572863 3 -67108864 .. 201326591 4 -2147483648 .. 4294967295 5","title":"Quantit\u00e0 di lunghezza variabile"},{"location":"Protocol.html#stringhe-di-lunghezza-variabile","text":"Come eccezione alle regole di codifica precedenti, se un parametro di un comando o di una risposta \u00e8 una stringa dinamica, il parametro non viene codificato come un semplice intero VLQ. Invece viene codificato trasmettendo la lunghezza come intero codificato VLQ seguito dal contenuto stesso: <VLQ encoded length><n-byte contents> Le descrizioni dei comandi che si trovano nel dizionario dei dati consentono sia all'host che al microcontrollore di sapere quali parametri del comando utilizzano la semplice codifica VLQ e quali parametri utilizzano la codifica delle stringhe.","title":"Stringhe di lunghezza variabile"},{"location":"Protocol.html#dizionario-dati","text":"Affinch\u00e9 vengano stabilite comunicazioni significative tra microcontrollore e host, entrambe le parti devono concordare un \"dizionario dei dati\". Questo dizionario di dati contiene gli identificatori interi per comandi e risposte insieme alle relative descrizioni. La build del microcontrollore utilizza il contenuto delle macro DECL_COMMAND() e sendf() per generare il dizionario dei dati. La build assegna automaticamente identificatori univoci a ciascun comando e risposta. Questo sistema consente sia all'host che al codice del microcontrollore di utilizzare senza problemi nomi descrittivi leggibili dall'uomo pur utilizzando una larghezza di banda minima. L'host interroga il dizionario dei dati quando si connette per la prima volta al microcontrollore. Una volta che l'host ha scaricato il dizionario dei dati dal microcontrollore, utilizza quel dizionario dei dati per codificare tutti i comandi e per analizzare tutte le risposte dal microcontrollore. L'host deve quindi gestire un dizionario di dati dinamico. Tuttavia, per mantenere semplice il software del microcontrollore, il microcontrollore utilizza sempre il suo dizionario dati statico (compilato). Il dizionario dei dati viene interrogato inviando i comandi \"identify\" al microcontrollore. Il microcontrollore risponder\u00e0 a ogni comando di identificazione con un messaggio \"identify_response\". Poich\u00e9 questi due comandi sono necessari prima di ottenere il dizionario dei dati, i loro ID interi e tipi di parametri sono codificati sia nel microcontrollore che nell'host. L'ID della risposta \"identify_response\" \u00e8 0, l'ID del comando \"identify\" \u00e8 1. Oltre ad avere ID hardcoded, il comando di identificazione e la relativa risposta vengono dichiarati e trasmessi allo stesso modo degli altri comandi e risposte. Nessun altro comando o risposta \u00e8 hardcoded. Il formato del dizionario dei dati trasmessi stesso \u00e8 una stringa JSON compressa zlib. Il processo di compilazione del microcontrollore genera la stringa, la comprime e la memorizza nella sezione di testo del flash del microcontrollore. Il dizionario dei dati pu\u00f2 essere molto pi\u00f9 grande della dimensione massima del blocco del messaggio: l'host lo scarica inviando pi\u00f9 comandi di identificazione che richiedono blocchi progressivi del dizionario dei dati. Una volta ottenuti tutti i blocchi, l'host assembler\u00e0 i blocchi, decomprimer\u00e0 i dati e analizzer\u00e0 il contenuto. Oltre alle informazioni sul protocollo di comunicazione, il dizionario dei dati contiene anche la versione del software, le enumerazioni (come definite da DECL_ENUMERATION) e le costanti (come definite da DECL_CONSTANT).","title":"Dizionario dati"},{"location":"Protocol.html#flusso-di-messaggi","text":"I comandi dei messaggi inviati dall'host al microcontrollore sono concepiti per essere privi di errori. Il microcontrollore controller\u00e0 il CRC e i numeri di sequenza in ciascun blocco di messaggi per garantire che i comandi siano accurati e in ordine. Il microcontrollore elabora sempre i blocchi di messaggi in ordine - se riceve un blocco fuori ordine, lo scarter\u00e0 e tutti gli altri blocchi fuori ordine fino a quando non riceve blocchi con la sequenza corretta. Il codice host di basso livello implementa un sistema di ritrasmissione automatica per i blocchi di messaggi persi e corrotti inviati al microcontrollore. Per facilitare ci\u00f2, il microcontrollore trasmette un \"ack message block\" dopo ogni blocco di messaggio ricevuto con successo. L'host pianifica un timeout dopo l'invio di ogni blocco e lo ritrasmetter\u00e0 se il timeout scade senza ricevere un corrispondente \"ack\". Inoltre, se il microcontrollore rileva un blocco corrotto o fuori servizio, pu\u00f2 trasmettere un \"nak message block\" per facilitare una rapida ritrasmissione. Un \"ack\" \u00e8 un blocco di messaggi con contenuto vuoto (cio\u00e8 un blocco di messaggi di 5 byte) e un numero di sequenza maggiore dell'ultimo numero di sequenza dell'host ricevuto. Un \"nak\" \u00e8 un blocco di messaggi con contenuto vuoto e un numero di sequenza inferiore all'ultimo numero di sequenza host ricevuto. Il protocollo facilita un sistema di trasmissione \"finestra\" in modo che l'host possa avere molti blocchi di messaggi in sospeso in viaggio alla volta. (Questo \u00e8 in aggiunta ai molti comandi che possono essere presenti in un determinato blocco di messaggi.) Ci\u00f2 consente il massimo utilizzo della larghezza di banda anche in caso di latenza di trasmissione. Il meccanismo di timeout, ritrasmissione, windowing e ack si ispira a meccanismi simili in TCP . Nell'altra direzione, i blocchi di messaggi inviati dal microcontrollore all'host sono progettati per essere privi di errori, ma non hanno una trasmissione sicura. (Le risposte non dovrebbero essere danneggiate, ma potrebbero scomparire.) Questo viene fatto per mantenere semplice l'implementazione nel microcontrollore. Non esiste un sistema di ritrasmissione automatica delle risposte: ci si aspetta che il codice di alto livello sia in grado di gestire una risposta mancante occasionale (di solito richiedendo nuovamente il contenuto o impostando un programma ricorrente di trasmissione della risposta). Il campo del numero di sequenza nei blocchi di messaggi inviati all'host \u00e8 sempre uno maggiore dell'ultimo numero di sequenza di blocchi di messaggi ricevuti dall'host. Non viene utilizzato per tenere traccia di sequenze di blocchi di messaggi di risposta.","title":"Flusso di messaggi"},{"location":"RPi_microcontroller.html","text":"Microcontrollore RPi \u00b6 Questo documento descrive il processo di esecuzione di Klipper su un RPi e usa lo stesso RPi come mcu secondario. Perch\u00e9 usare RPi come MCU secondario? \u00b6 Spesso gli MCU dedicati al controllo delle stampanti 3D hanno un numero limitato e preconfigurato di pin esposti per gestire le principali funzioni di stampa (resistenze termiche, estrusori, stepper...). L'utilizzo dell'RPi dove Klipper \u00e8 installato come MCU secondario d\u00e0 la possibilit\u00e0 di utilizzare direttamente i GPIO e i bus (i2c, spi) dell'RPi all'interno di klipper senza utilizzare plugin Octoprint (se utilizzati) o programmi esterni dando la possibilit\u00e0 di controllare tutto all'interno del GCODE di stampa. Attenzione : Se la tua piattaforma \u00e8 un Beaglebone e hai seguito correttamente i passi di installazione, la mcu linux \u00e8 gi\u00e0 installata e configurata per il tuo sistema. Installa lo script rc \u00b6 Se si desidera utilizzare l'host come MCU secondario, il processo di klipper_mcu deve essere eseguito prima del processo klippy. Dopo aver installato Klipper, installare lo script. eseguire: cd ~/klipper/ sudo cp \"./scripts/klipper-mcu-start.sh\" /etc/init.d/klipper_mcu sudo update-rc.d klipper_mcu defaults Creazione del codice del microcontrollore \u00b6 Per compilare il codice del microcontrollore Klipper, iniziate configurandolo per il \"processo Linux\": cd ~/klipper/ make menuconfig Nel menu, impostate \"Microcontroller Architecture\" su \"Linux process\", poi salvate e uscite. Per compilare e installare il nuovo codice del microcontrollore, eseguire: sudo service klipper stop make flash sudo service klipper start Se klippy.log segnala un errore \"Autorizzazione negata\" quando si tenta di connettersi a /tmp/klipper_host_mcu , \u00e8 necessario aggiungere l'utente al gruppo tty. Il seguente comando aggiunger\u00e0 l'utente \"pi\" al gruppo tty: sudo usermod -a -G tty pi Configurazione rimanente \u00b6 Completare l'installazione configurando l'MCU secondario di Klipper seguendo le istruzioni in RaspberryPi sample config e Multi MCU sample config . Facoltativo: abilitazione di SPI \u00b6 Assicurati che il driver SPI di Linux sia abilitato eseguendo sudo raspi-config e abilitando SPI nel menu \"Opzioni di interfaccia\". Opzionale: abilitazione di I2C \u00b6 Assicurati che l'interfaccia Linux I2C sia abilitato eseguendo sudo raspi-config e abilitando I2C nel menu \"Opzioni di interfaccia\". Se si intende utilizzare I2C per l'accelerometro MPU, \u00e8 anche necessario impostare il baud rate su 400000: aggiungendo/deselezionando dtparam=i2c_arm=on,i2c_arm_baudrate=400000 in /boot/config.txt (o / boot/firmware/config.txt in alcune distribuzioni). Opzionale: Identificare il gpiochip corretto \u00b6 Su Raspberry Pi e su molti cloni i pin esposti sul GPIO appartengono al primo gpiochip. Possono quindi essere utilizzati su klipper semplicemente riferendoli con il nome gpio0..n . Tuttavia, ci sono casi in cui i pin esposti appartengono a gpiochip diversi dal primo. Ad esempio nel caso di alcuni modelli OrangePi o se viene utilizzato un Port Expander. In questi casi \u00e8 utile utilizzare i comandi per accedere al dispositivo a caratteri GPIO Linux per verificarne la configurazione. Per installare il Linux GPIO character device - binary su una distro basata su debian come octopi eseguire: sudo apt-get install gpiod Per controllare i gpiochip disponibili eseguire: gpiodetect Per verificare il numero di pin e la disponibilit\u00e0 dei pin: gpioinfo Il pin scelto pu\u00f2 quindi essere utilizzato all'interno della configurazione come gpiochip<n>/gpio<o> dove n \u00e8 il numero del chip visto dal comando gpiodetect e o \u00e8 il numero di riga visto dal comando gpioinfo . Attenzione: solo i gpio contrassegnati come inutilizzati possono essere utilizzati. Non \u00e8 possibile che una linea sia usata da pi\u00f9 processi contemporaneamente. Per esempio su un RPi 3B+ dove klipper usa il GPIO20 per un interruttore: $ gpiodetect gpiochip0 [pinctrl-bcm2835] (54 lines) gpiochip1 [raspberrypi-exp-gpio] (8 lines) $ gpioinfo gpiochip0 - 54 lines: line 0: unnamed unused input active-high line 1: unnamed unused input active-high line 2: unnamed unused input active-high line 3: unnamed unused input active-high line 4: unnamed unused input active-high line 5: unnamed unused input active-high line 6: unnamed unused input active-high line 7: unnamed unused input active-high line 8: unnamed unused input active-high line 9: unnamed unused input active-high line 10: unnamed unused input active-high line 11: unnamed unused input active-high line 12: unnamed unused input active-high line 13: unnamed unused input active-high line 14: unnamed unused input active-high line 15: unnamed unused input active-high line 16: unnamed unused input active-high line 17: unnamed unused input active-high line 18: unnamed unused input active-high line 19: unnamed unused input active-high line 20: unnamed \"klipper\" output active-high [used] line 21: unnamed unused input active-high line 22: unnamed unused input active-high line 23: unnamed unused input active-high line 24: unnamed unused input active-high line 25: unnamed unused input active-high line 26: unnamed unused input active-high line 27: unnamed unused input active-high line 28: unnamed unused input active-high line 29: unnamed \"led0\" output active-high [used] line 30: unnamed unused input active-high line 31: unnamed unused input active-high line 32: unnamed unused input active-high line 33: unnamed unused input active-high line 34: unnamed unused input active-high line 35: unnamed unused input active-high line 36: unnamed unused input active-high line 37: unnamed unused input active-high line 38: unnamed unused input active-high line 39: unnamed unused input active-high line 40: unnamed unused input active-high line 41: unnamed unused input active-high line 42: unnamed unused input active-high line 43: unnamed unused input active-high line 44: unnamed unused input active-high line 45: unnamed unused input active-high line 46: unnamed unused input active-high line 47: unnamed unused input active-high line 48: unnamed unused input active-high line 49: unnamed unused input active-high line 50: unnamed unused input active-high line 51: unnamed unused input active-high line 52: unnamed unused input active-high line 53: unnamed unused input active-high gpiochip1 - 8 lines: line 0: unnamed unused input active-high line 1: unnamed unused input active-high line 2: unnamed \"led1\" output active-low [used] line 3: unnamed unused input active-high line 4: unnamed unused input active-high line 5: unnamed unused input active-high line 6: unnamed unused input active-high line 7: unnamed unused input active-high Opzionale: Hardware PWM \u00b6 I Raspberry Pi hanno due canali PWM (PWM0 e PWM1) che sono esposti sull'intestazione o, in caso contrario, possono essere instradati ai pin gpio esistenti. Il demone mcu Linux utilizza l'interfaccia sysfs pwmchip per controllare i dispositivi hardware pwm sugli host Linux. L'interfaccia sysfs pwm non \u00e8 esposta per impostazione predefinita su un Raspberry e pu\u00f2 essere attivata aggiungendo una riga a /boot/config.txt : # Abilita l'interfaccia sysfs di pwmchip dtoverlay=pwm,pin=12,func=4 Questo esempio abilita solo PWM0 e lo indirizza a gpio12. Se entrambi i canali PWM devono essere abilitati potete usare pwm-2chan . L'overlay non espone la riga pwm sui sysfs all'avvio e deve essere esportata facendo eco al numero del canale pwm in /sys/class/pwm/pwmchip0/export : echo 0 > /sys/class/pwm/pwmchip0/export Questo creer\u00e0 il dispositivo /sys/class/pwm/pwmchip0/pwm0 nel filesystem. Il modo pi\u00f9 semplice per farlo \u00e8 aggiungerlo a /etc/rc.local prima della riga exit 0 . Con il sysfs a posto, potete ora utilizzare il canale o i canali pwm aggiungendo il seguente pezzo di configurazione al vostro printer.cfg : [output_pin caselight] pin: host:pwmchip0/pwm0 pwm: True hardware_pwm: True cycle_time: 0.000001 Questo aggiunger\u00e0 il controllo pwm hardware a gpio12 sul Pi (perch\u00e9 l'overlay \u00e8 stato configurato per instradare pwm0 a pin = 12). PWM0 pu\u00f2 essere indirizzato su gpio12 e gpio18, PWM1 pu\u00f2 essere indirizzato su gpio13 e gpio19: PWM gpio PIN Func 0 12 4 0 18 2 1 13 4 1 19 2","title":"Microcontrollore RPi"},{"location":"RPi_microcontroller.html#microcontrollore-rpi","text":"Questo documento descrive il processo di esecuzione di Klipper su un RPi e usa lo stesso RPi come mcu secondario.","title":"Microcontrollore RPi"},{"location":"RPi_microcontroller.html#perche-usare-rpi-come-mcu-secondario","text":"Spesso gli MCU dedicati al controllo delle stampanti 3D hanno un numero limitato e preconfigurato di pin esposti per gestire le principali funzioni di stampa (resistenze termiche, estrusori, stepper...). L'utilizzo dell'RPi dove Klipper \u00e8 installato come MCU secondario d\u00e0 la possibilit\u00e0 di utilizzare direttamente i GPIO e i bus (i2c, spi) dell'RPi all'interno di klipper senza utilizzare plugin Octoprint (se utilizzati) o programmi esterni dando la possibilit\u00e0 di controllare tutto all'interno del GCODE di stampa. Attenzione : Se la tua piattaforma \u00e8 un Beaglebone e hai seguito correttamente i passi di installazione, la mcu linux \u00e8 gi\u00e0 installata e configurata per il tuo sistema.","title":"Perch\u00e9 usare RPi come MCU secondario?"},{"location":"RPi_microcontroller.html#installa-lo-script-rc","text":"Se si desidera utilizzare l'host come MCU secondario, il processo di klipper_mcu deve essere eseguito prima del processo klippy. Dopo aver installato Klipper, installare lo script. eseguire: cd ~/klipper/ sudo cp \"./scripts/klipper-mcu-start.sh\" /etc/init.d/klipper_mcu sudo update-rc.d klipper_mcu defaults","title":"Installa lo script rc"},{"location":"RPi_microcontroller.html#creazione-del-codice-del-microcontrollore","text":"Per compilare il codice del microcontrollore Klipper, iniziate configurandolo per il \"processo Linux\": cd ~/klipper/ make menuconfig Nel menu, impostate \"Microcontroller Architecture\" su \"Linux process\", poi salvate e uscite. Per compilare e installare il nuovo codice del microcontrollore, eseguire: sudo service klipper stop make flash sudo service klipper start Se klippy.log segnala un errore \"Autorizzazione negata\" quando si tenta di connettersi a /tmp/klipper_host_mcu , \u00e8 necessario aggiungere l'utente al gruppo tty. Il seguente comando aggiunger\u00e0 l'utente \"pi\" al gruppo tty: sudo usermod -a -G tty pi","title":"Creazione del codice del microcontrollore"},{"location":"RPi_microcontroller.html#configurazione-rimanente","text":"Completare l'installazione configurando l'MCU secondario di Klipper seguendo le istruzioni in RaspberryPi sample config e Multi MCU sample config .","title":"Configurazione rimanente"},{"location":"RPi_microcontroller.html#facoltativo-abilitazione-di-spi","text":"Assicurati che il driver SPI di Linux sia abilitato eseguendo sudo raspi-config e abilitando SPI nel menu \"Opzioni di interfaccia\".","title":"Facoltativo: abilitazione di SPI"},{"location":"RPi_microcontroller.html#opzionale-abilitazione-di-i2c","text":"Assicurati che l'interfaccia Linux I2C sia abilitato eseguendo sudo raspi-config e abilitando I2C nel menu \"Opzioni di interfaccia\". Se si intende utilizzare I2C per l'accelerometro MPU, \u00e8 anche necessario impostare il baud rate su 400000: aggiungendo/deselezionando dtparam=i2c_arm=on,i2c_arm_baudrate=400000 in /boot/config.txt (o / boot/firmware/config.txt in alcune distribuzioni).","title":"Opzionale: abilitazione di I2C"},{"location":"RPi_microcontroller.html#opzionale-identificare-il-gpiochip-corretto","text":"Su Raspberry Pi e su molti cloni i pin esposti sul GPIO appartengono al primo gpiochip. Possono quindi essere utilizzati su klipper semplicemente riferendoli con il nome gpio0..n . Tuttavia, ci sono casi in cui i pin esposti appartengono a gpiochip diversi dal primo. Ad esempio nel caso di alcuni modelli OrangePi o se viene utilizzato un Port Expander. In questi casi \u00e8 utile utilizzare i comandi per accedere al dispositivo a caratteri GPIO Linux per verificarne la configurazione. Per installare il Linux GPIO character device - binary su una distro basata su debian come octopi eseguire: sudo apt-get install gpiod Per controllare i gpiochip disponibili eseguire: gpiodetect Per verificare il numero di pin e la disponibilit\u00e0 dei pin: gpioinfo Il pin scelto pu\u00f2 quindi essere utilizzato all'interno della configurazione come gpiochip<n>/gpio<o> dove n \u00e8 il numero del chip visto dal comando gpiodetect e o \u00e8 il numero di riga visto dal comando gpioinfo . Attenzione: solo i gpio contrassegnati come inutilizzati possono essere utilizzati. Non \u00e8 possibile che una linea sia usata da pi\u00f9 processi contemporaneamente. Per esempio su un RPi 3B+ dove klipper usa il GPIO20 per un interruttore: $ gpiodetect gpiochip0 [pinctrl-bcm2835] (54 lines) gpiochip1 [raspberrypi-exp-gpio] (8 lines) $ gpioinfo gpiochip0 - 54 lines: line 0: unnamed unused input active-high line 1: unnamed unused input active-high line 2: unnamed unused input active-high line 3: unnamed unused input active-high line 4: unnamed unused input active-high line 5: unnamed unused input active-high line 6: unnamed unused input active-high line 7: unnamed unused input active-high line 8: unnamed unused input active-high line 9: unnamed unused input active-high line 10: unnamed unused input active-high line 11: unnamed unused input active-high line 12: unnamed unused input active-high line 13: unnamed unused input active-high line 14: unnamed unused input active-high line 15: unnamed unused input active-high line 16: unnamed unused input active-high line 17: unnamed unused input active-high line 18: unnamed unused input active-high line 19: unnamed unused input active-high line 20: unnamed \"klipper\" output active-high [used] line 21: unnamed unused input active-high line 22: unnamed unused input active-high line 23: unnamed unused input active-high line 24: unnamed unused input active-high line 25: unnamed unused input active-high line 26: unnamed unused input active-high line 27: unnamed unused input active-high line 28: unnamed unused input active-high line 29: unnamed \"led0\" output active-high [used] line 30: unnamed unused input active-high line 31: unnamed unused input active-high line 32: unnamed unused input active-high line 33: unnamed unused input active-high line 34: unnamed unused input active-high line 35: unnamed unused input active-high line 36: unnamed unused input active-high line 37: unnamed unused input active-high line 38: unnamed unused input active-high line 39: unnamed unused input active-high line 40: unnamed unused input active-high line 41: unnamed unused input active-high line 42: unnamed unused input active-high line 43: unnamed unused input active-high line 44: unnamed unused input active-high line 45: unnamed unused input active-high line 46: unnamed unused input active-high line 47: unnamed unused input active-high line 48: unnamed unused input active-high line 49: unnamed unused input active-high line 50: unnamed unused input active-high line 51: unnamed unused input active-high line 52: unnamed unused input active-high line 53: unnamed unused input active-high gpiochip1 - 8 lines: line 0: unnamed unused input active-high line 1: unnamed unused input active-high line 2: unnamed \"led1\" output active-low [used] line 3: unnamed unused input active-high line 4: unnamed unused input active-high line 5: unnamed unused input active-high line 6: unnamed unused input active-high line 7: unnamed unused input active-high","title":"Opzionale: Identificare il gpiochip corretto"},{"location":"RPi_microcontroller.html#opzionale-hardware-pwm","text":"I Raspberry Pi hanno due canali PWM (PWM0 e PWM1) che sono esposti sull'intestazione o, in caso contrario, possono essere instradati ai pin gpio esistenti. Il demone mcu Linux utilizza l'interfaccia sysfs pwmchip per controllare i dispositivi hardware pwm sugli host Linux. L'interfaccia sysfs pwm non \u00e8 esposta per impostazione predefinita su un Raspberry e pu\u00f2 essere attivata aggiungendo una riga a /boot/config.txt : # Abilita l'interfaccia sysfs di pwmchip dtoverlay=pwm,pin=12,func=4 Questo esempio abilita solo PWM0 e lo indirizza a gpio12. Se entrambi i canali PWM devono essere abilitati potete usare pwm-2chan . L'overlay non espone la riga pwm sui sysfs all'avvio e deve essere esportata facendo eco al numero del canale pwm in /sys/class/pwm/pwmchip0/export : echo 0 > /sys/class/pwm/pwmchip0/export Questo creer\u00e0 il dispositivo /sys/class/pwm/pwmchip0/pwm0 nel filesystem. Il modo pi\u00f9 semplice per farlo \u00e8 aggiungerlo a /etc/rc.local prima della riga exit 0 . Con il sysfs a posto, potete ora utilizzare il canale o i canali pwm aggiungendo il seguente pezzo di configurazione al vostro printer.cfg : [output_pin caselight] pin: host:pwmchip0/pwm0 pwm: True hardware_pwm: True cycle_time: 0.000001 Questo aggiunger\u00e0 il controllo pwm hardware a gpio12 sul Pi (perch\u00e9 l'overlay \u00e8 stato configurato per instradare pwm0 a pin = 12). PWM0 pu\u00f2 essere indirizzato su gpio12 e gpio18, PWM1 pu\u00f2 essere indirizzato su gpio13 e gpio19: PWM gpio PIN Func 0 12 4 0 18 2 1 13 4 1 19 2","title":"Opzionale: Hardware PWM"},{"location":"Releases.html","text":"Versioni \u00b6 Storico delle versioni di Klipper. Vedi installation per informazioni sull'installazione di Klipper. Klipper 0.10.0 \u00b6 Disponibile su 20210929. Principali modifiche in questa versione: Supporto per \"Homing multi-MCU\". \u00c8 ora possibile collegare un motore passo-passo e il relativo fine corsa a microcontrollori separati. Ci\u00f2 semplifica il cablaggio delle sonde Z sulle \"schede portautensili\". Klipper ora ha un Community Discord Server e un Community Discourse Server . Il sito Web di Klipper ora utilizza l'infrastruttura \"mkdocs\". Esiste anche un progetto Klipper Translations . Supporto automatizzato per il flashing del firmware tramite sdcard su molte schede. Nuovo supporto cinematico per le stampanti \"Hybrid CoreXY\" e \"Hybrid CoreXZ\". Klipper ora usa rotation_distance per configurare le distanze di viaggio del motore passo-passo. Il codice host principale di Klipper ora pu\u00f2 comunicare direttamente con i microcontrollori utilizzando il bus CAN. Nuovo sistema di \"analisi del movimento\". Gli aggiornamenti di movimento interni di Klipper e i risultati dei sensori possono essere tracciati e registrati per l'analisi. I driver per motori passo-passo Trinamic sono ora costantemente monitorati per rilevare eventuali condizioni di errore. Supporto per il microcontrollore rp2040 (schede Raspberry Pi Pico). Il sistema \"make menuconfig\" ora utilizza kconfiglib. Molti moduli aggiuntivi aggiunti: ds18b20, duplicate_pin_override, filament_motion_sensor, palette2, motion_report, pca9533, pulse_counter, save_variables, sdcard_loop, temperature_host, temperature_mcu Correzione di diversi bug e pulizia del codice. Klipper 0.9.0 \u00b6 Disponibile su 20201020. Modifiche principali in questa versione: Supporto per \"Input Shaping\" - un meccanismo per contrastare la risonanza della stampante. Pu\u00f2 ridurre o eliminare il \"ringing\" nelle stampe. Nuovo sistema \"Smooth Pressure Advance\". Questo implementa \"Pressure Advance\" senza introdurre variazioni di velocit\u00e0 istantanee. Ora \u00e8 anche possibile regolare l'anticipo della pressione utilizzando un metodo \"Tuning Tower\". Nuovo server API \"webhook\". Ci\u00f2 fornisce un'interfaccia JSON programmabile a Klipper. Il display LCD e il menu sono ora configurabili utilizzando la lingua del modello Jinja2. I driver per motori passo-passo TMC2208 possono ora essere utilizzati in modalit\u00e0 \"standalone\" con Klipper. Supporto BL-Touch v3 migliorato. Identificazione USB migliorata. Klipper ora ha il proprio codice di identificazione USB e i microcontrollori possono ora riportare i loro numeri di serie univoci durante l'identificazione USB. Nuovo supporto cinematico per stampanti \"Rotary Delta\" e \"CoreXZ\". Miglioramenti del microcontrollore: supporto per stm32f070, supporto per stm32f207, supporto per pin GPIO su \"Linux MCU\", supporto per \"bootloader HID\" stm32, supporto per bootloader Chitu, supporto per bootloader MKS Robin. Gestione migliorata degli eventi di \"garbage collection\" di Python. Molti moduli aggiuntivi aggiunti: adc_scaled, adxl345, bme280, display_status, extruder_stepper, fan_generic, hall_filament_width_sensor, htu21d, homing_heaters, input_shaper, lm75, print_stats, resonance_tester, shaper_calibrate, query_adc, graph_accelerometer, graph_extruder, graph_motion, graph_shaper, graph_temp_sensor, whconsole Correzione di diversi bug e pulizia del codice. Klipper 0.9.1 \u00b6 Disponibile su 20201028. Versione contenente solo correzioni di bug. Klipper 0.8.0 \u00b6 Disponibile su 20191021. Modifiche principali in questa versione: Nuovo supporto per il modello dei comandi G-Code. Il G-Code nel file di configurazione viene ora valutato con il linguaggio dei template Jinja2. Miglioramenti ai driver per stepper Trinamic: Nuovo supporto per i driver TMC2209 e TMC5160. Migliorati i comandi G-Code DUMP_TMC, SET_TMC_CURRENT e INIT_TMC. Supporto migliorato per la gestione di TMC UART con un mux analogico. Supporto migliorato per homing, sonda e livellamento del piatto: Aggiunti nuovi moduli manual_probe, bed_screws, Screws_tilt_adjust, skew_correction, safe_z_home. Sondaggio multi-campione migliorato con logica mediana, media e tentativi. Documentazione migliorata per BL-Touch, calibrazione della sonda, calibrazione endstop, calibrazione delta, homing sensorless e calibrazione della fase finecorsa. Supporto della corsa di riferimento migliorato su un asse Z grande. Molti miglioramenti del microcontrollore Klipper: Klipper portato su: SAM3X8C, SAM4S8C, SAMD51, STM32F042, STM32F4 Nuove implementazioni del driver CDC USB su SAM3X, SAM4, STM32F4. Supporto avanzato per il flashing di Klipper su USB. Supporto SPI software. Filtraggio della temperatura notevolmente migliorato sull'LPC176x. Le impostazioni dei pin di uscita possono essere configurate nel microcontrollore. Nuovo sito web con la documentazione di Klipper: http://klipper3d.org/ Klipper ora ha un logo. Supporto sperimentale alla cinematica polare e \"cable winch\". Il file di configurazione ora pu\u00f2 includere altri file di configurazione. Molti moduli aggiuntivi aggiunti: board_pins, controller_fan, delay_gcode, dotstar, filament_switch_sensor, firmware_retraction, gcode_arcs, gcode_button, heater_generic, manual_stepper, mcp4018, mcp4728, neopixel, pause_resume, respond, temperature_sensor tsl1401cl_filament_width_sensor, tuning_tower Molti comandi aggiuntivi aggiunti: RESTORE_GCODE_STATE, SAVE_GCODE_STATE, SET_GCODE_VARIABLE, SET_HEATER_TEMPERATURE, SET_IDLE_TIMEOUT, SET_TEMPERATURE_FAN_TARGET Correzione di diversi bug e pulizia del codice. Klipper 0.7.0 \u00b6 Disponibile su 20181220. Modifiche principali in questa versione: Klipper ora supporta il livellamento del piatto \"mesh\" Nuovo supporto per la calibrazione delta \"potenziata\" (calibra le dimensioni x/y di stampa su stampanti delta) Supporto per la configurazione a runtime dei driver per motori passo-passo Trinamic (tmc2130, tmc2208, tmc2660) Migliorato il supporto del sensore di temperatura: MAX6675, MAX31855, MAX31856, MAX31865, termistori personalizzati, sensori stile pt100 comuni Diversi nuovi moduli: temperature_fan, sx1509, force_move, mcp4451, z_tilt, quad_gantry_level, endstop_phase, bltouch Aggiunti diversi nuovi comandi: SAVE_CONFIG, SET_PRESSURE_ADVANCE, SET_GCODE_OFFSET, SET_VELOCITY_LIMIT, STEPPER_BUZZ, TURN_OFF_HEATERS, M204, macro g-code personalizzate Supporto display LCD esteso: Supporto per i menu a runtime Nuove icone di visualizzazione Supporto per i display \"uc1701\" e \"ssd1306\" Supporto per microcontrollore aggiuntivo: Klipper portato su: LPC176x (Smoothieboards), SAM4E8E (Duet2), SAMD21 (Arduino Zero), STM32F103 (dispositivi \"blue pill\"), atmega32u4 Nuovo driver USB CDC generico implementato su AVR, LPC176x, SAMD21 e STM32F103 Miglioramenti delle prestazioni sui processori ARM Il codice della cinematica \u00e8 stato riscritto per utilizzare un \"risolutore iterativo\" Nuovi test case automatici per il software host Klipper Molti nuovi file di configurazione di esempio per le stampanti standard comuni Aggiornamenti della documentazione per bootloader, benchmarking, porting del microcontroller, controlli di configurazione, mappatura dei pin, impostazioni dello slicer, packaging e altro ancora Diverse correzioni di bug e pulizia del codice Klipper 0.6.0 \u00b6 Disponibile su 20180331. Modifiche principali in questa versione: Controlli avanzati dei guasti hardware del riscaldatore e del termistore Supporto per sonde Z Supporto iniziale per la calibrazione automatica dei parametri sulle delta (tramite un nuovo comando delta_calibrate) Supporto iniziale per la compensazione dell'inclinazione del piatto (tramite il comando bed_tilt_calibrate) Supporto iniziale per \"homing sicuro\" e di homing overrides Supporto iniziale per la visualizzazione dello stato sui display RepRapDiscount stile 2004 e 12864 Nuovi miglioramenti multi-estrusore: Supporto per riscaldatori condivisi Supporto iniziale per carrelli doppi Supporto per la configurazione di pi\u00f9 stepper per asse (ad es. doppia Z) Supporto per pin di output digitali e pwm personalizzati (con un nuovo comando SET_PIN) Supporto iniziale per una \"sdcard virtuale\" che consente di stampare direttamente da Klipper (aiuta su macchine troppo lente per eseguire bene OctoPrint) Supporto per impostare diverse lunghezze del braccio su ciascuna torre di una delta Supporto per i comandi G-Code M220/M221 (override del fattore di velocit\u00e0/override del fattore di estrusione) Diversi aggiornamenti della documentazione: Molti nuovi file di configurazione di esempio per le stampanti standard comuni Nuovo esempio di configurazione di MCU multipli Nuovo esempio di configurazione del sensore bltouch Nuove FAQ, controllo della configurazione e documenti G-Code Supporto iniziale per test di integrazione continui su tutti i commit di github Diverse correzioni di bug e pulizia del codice Klipper 0.5.0 \u00b6 Disponibile su 20171025. Modifiche principali in questa versione: Supporto per stampanti con pi\u00f9 estrusori. Supporto iniziale per l'esecuzione su Beaglebone PRU. Supporto iniziale per la scheda Replicape. Supporto iniziale per l'esecuzione del codice del microcontrollore in un processo Linux in tempo reale. Supporto per microcontrollori multipli. (Ad esempio, si potrebbe controllare un estrusore con un microcontrollore e il resto della stampante con un altro.) La sincronizzazione dell'orologio del software \u00e8 implementata per coordinare le azioni tra i microcontrollori. Miglioramenti delle prestazioni stepper (AVR da 20 Mhz fino a 189.000 passi al secondo). Supporto per il controllo dei servocomandi e supporto per la definizione delle ventole di raffreddamento degli ugelli. Diverse correzioni di bug e pulizia del codice Klipper 0.4.0 \u00b6 Disponibile su 20170503. Modifiche principali in questa versione: Installazione migliorata su macchine Raspberry Pi. La maggior parte dell'installazione \u00e8 ora basata su script. Supporto per la cinematica corexy Aggiornamenti della documentazione: nuovo documento Cinematica, nuova guida all'ottimizzazione di Pressure Advance, nuovi file di configurazione di esempio e altro ancora Miglioramenti delle prestazioni dello stepper (AVR da 20 Mhz su 175.000 passi al secondo, Arduino Due oltre 460.000) Supporto per il ripristino automatico del microcontrollore. Supporto per il ripristino tramite l'attivazione dell'alimentazione USB su Raspberry Pi. L'algoritmo di avanzamento della pressione ora funziona con il look-ahead per ridurre le variazioni di pressione in curva. Supporto per limitare la velocit\u00e0 massima di brevi movimenti a zigzag Supporto per sensori AD595 Diverse correzioni di bug e pulizia del codice Klipper 0.3.0 \u00b6 Disponibile su 20161223. Modifiche principali in questa versione: Documentazione migliorata Supporto per robot con cinematica delta Supporto per microcontrollore Arduino Due (ARM cortex-M3) Supporto USB per microcontrollori basati su AVR Supporto per l'algoritmo di \"pressure advance\": riduce la trasudazione durante le stampe. Nuova funzione \"stopper phased based\" - consente una maggiore precisione sull'homing. Supporto per comandi \"extended g-code\" come \"help\", \"restart\" e \"status\". Supporto per ricaricare la configurazione di Klipper e riavviare il software host emettendo un comando di \"restart\" dal terminale. Miglioramenti delle prestazioni stepper (AVR da 20 Mhz fino a 158.000 passi al secondo). Segnalazione errori migliorata. La maggior parte degli errori ora viene mostrata tramite il terminale insieme all'aiuto su come risolverli. Diverse correzioni di bug e pulizia del codice Klipper 0.2.0 \u00b6 Rilascio iniziale di Klipper. Disponibile su 20160525. Le principali funzionalit\u00e0 disponibili nella versione iniziale includono: Supporto di base per stampanti cartesiane (stepper, estrusore, piatto riscaldato, ventola di raffreddamento). Supporto per i comandi g-code comuni. Supporto per interfacciarsi con OctoPrint. Accelerazione e gestione lookahead Supporto per microcontrollori AVR tramite porte seriali standard","title":"Versioni"},{"location":"Releases.html#versioni","text":"Storico delle versioni di Klipper. Vedi installation per informazioni sull'installazione di Klipper.","title":"Versioni"},{"location":"Releases.html#klipper-0100","text":"Disponibile su 20210929. Principali modifiche in questa versione: Supporto per \"Homing multi-MCU\". \u00c8 ora possibile collegare un motore passo-passo e il relativo fine corsa a microcontrollori separati. Ci\u00f2 semplifica il cablaggio delle sonde Z sulle \"schede portautensili\". Klipper ora ha un Community Discord Server e un Community Discourse Server . Il sito Web di Klipper ora utilizza l'infrastruttura \"mkdocs\". Esiste anche un progetto Klipper Translations . Supporto automatizzato per il flashing del firmware tramite sdcard su molte schede. Nuovo supporto cinematico per le stampanti \"Hybrid CoreXY\" e \"Hybrid CoreXZ\". Klipper ora usa rotation_distance per configurare le distanze di viaggio del motore passo-passo. Il codice host principale di Klipper ora pu\u00f2 comunicare direttamente con i microcontrollori utilizzando il bus CAN. Nuovo sistema di \"analisi del movimento\". Gli aggiornamenti di movimento interni di Klipper e i risultati dei sensori possono essere tracciati e registrati per l'analisi. I driver per motori passo-passo Trinamic sono ora costantemente monitorati per rilevare eventuali condizioni di errore. Supporto per il microcontrollore rp2040 (schede Raspberry Pi Pico). Il sistema \"make menuconfig\" ora utilizza kconfiglib. Molti moduli aggiuntivi aggiunti: ds18b20, duplicate_pin_override, filament_motion_sensor, palette2, motion_report, pca9533, pulse_counter, save_variables, sdcard_loop, temperature_host, temperature_mcu Correzione di diversi bug e pulizia del codice.","title":"Klipper 0.10.0"},{"location":"Releases.html#klipper-090","text":"Disponibile su 20201020. Modifiche principali in questa versione: Supporto per \"Input Shaping\" - un meccanismo per contrastare la risonanza della stampante. Pu\u00f2 ridurre o eliminare il \"ringing\" nelle stampe. Nuovo sistema \"Smooth Pressure Advance\". Questo implementa \"Pressure Advance\" senza introdurre variazioni di velocit\u00e0 istantanee. Ora \u00e8 anche possibile regolare l'anticipo della pressione utilizzando un metodo \"Tuning Tower\". Nuovo server API \"webhook\". Ci\u00f2 fornisce un'interfaccia JSON programmabile a Klipper. Il display LCD e il menu sono ora configurabili utilizzando la lingua del modello Jinja2. I driver per motori passo-passo TMC2208 possono ora essere utilizzati in modalit\u00e0 \"standalone\" con Klipper. Supporto BL-Touch v3 migliorato. Identificazione USB migliorata. Klipper ora ha il proprio codice di identificazione USB e i microcontrollori possono ora riportare i loro numeri di serie univoci durante l'identificazione USB. Nuovo supporto cinematico per stampanti \"Rotary Delta\" e \"CoreXZ\". Miglioramenti del microcontrollore: supporto per stm32f070, supporto per stm32f207, supporto per pin GPIO su \"Linux MCU\", supporto per \"bootloader HID\" stm32, supporto per bootloader Chitu, supporto per bootloader MKS Robin. Gestione migliorata degli eventi di \"garbage collection\" di Python. Molti moduli aggiuntivi aggiunti: adc_scaled, adxl345, bme280, display_status, extruder_stepper, fan_generic, hall_filament_width_sensor, htu21d, homing_heaters, input_shaper, lm75, print_stats, resonance_tester, shaper_calibrate, query_adc, graph_accelerometer, graph_extruder, graph_motion, graph_shaper, graph_temp_sensor, whconsole Correzione di diversi bug e pulizia del codice.","title":"Klipper 0.9.0"},{"location":"Releases.html#klipper-091","text":"Disponibile su 20201028. Versione contenente solo correzioni di bug.","title":"Klipper 0.9.1"},{"location":"Releases.html#klipper-080","text":"Disponibile su 20191021. Modifiche principali in questa versione: Nuovo supporto per il modello dei comandi G-Code. Il G-Code nel file di configurazione viene ora valutato con il linguaggio dei template Jinja2. Miglioramenti ai driver per stepper Trinamic: Nuovo supporto per i driver TMC2209 e TMC5160. Migliorati i comandi G-Code DUMP_TMC, SET_TMC_CURRENT e INIT_TMC. Supporto migliorato per la gestione di TMC UART con un mux analogico. Supporto migliorato per homing, sonda e livellamento del piatto: Aggiunti nuovi moduli manual_probe, bed_screws, Screws_tilt_adjust, skew_correction, safe_z_home. Sondaggio multi-campione migliorato con logica mediana, media e tentativi. Documentazione migliorata per BL-Touch, calibrazione della sonda, calibrazione endstop, calibrazione delta, homing sensorless e calibrazione della fase finecorsa. Supporto della corsa di riferimento migliorato su un asse Z grande. Molti miglioramenti del microcontrollore Klipper: Klipper portato su: SAM3X8C, SAM4S8C, SAMD51, STM32F042, STM32F4 Nuove implementazioni del driver CDC USB su SAM3X, SAM4, STM32F4. Supporto avanzato per il flashing di Klipper su USB. Supporto SPI software. Filtraggio della temperatura notevolmente migliorato sull'LPC176x. Le impostazioni dei pin di uscita possono essere configurate nel microcontrollore. Nuovo sito web con la documentazione di Klipper: http://klipper3d.org/ Klipper ora ha un logo. Supporto sperimentale alla cinematica polare e \"cable winch\". Il file di configurazione ora pu\u00f2 includere altri file di configurazione. Molti moduli aggiuntivi aggiunti: board_pins, controller_fan, delay_gcode, dotstar, filament_switch_sensor, firmware_retraction, gcode_arcs, gcode_button, heater_generic, manual_stepper, mcp4018, mcp4728, neopixel, pause_resume, respond, temperature_sensor tsl1401cl_filament_width_sensor, tuning_tower Molti comandi aggiuntivi aggiunti: RESTORE_GCODE_STATE, SAVE_GCODE_STATE, SET_GCODE_VARIABLE, SET_HEATER_TEMPERATURE, SET_IDLE_TIMEOUT, SET_TEMPERATURE_FAN_TARGET Correzione di diversi bug e pulizia del codice.","title":"Klipper 0.8.0"},{"location":"Releases.html#klipper-070","text":"Disponibile su 20181220. Modifiche principali in questa versione: Klipper ora supporta il livellamento del piatto \"mesh\" Nuovo supporto per la calibrazione delta \"potenziata\" (calibra le dimensioni x/y di stampa su stampanti delta) Supporto per la configurazione a runtime dei driver per motori passo-passo Trinamic (tmc2130, tmc2208, tmc2660) Migliorato il supporto del sensore di temperatura: MAX6675, MAX31855, MAX31856, MAX31865, termistori personalizzati, sensori stile pt100 comuni Diversi nuovi moduli: temperature_fan, sx1509, force_move, mcp4451, z_tilt, quad_gantry_level, endstop_phase, bltouch Aggiunti diversi nuovi comandi: SAVE_CONFIG, SET_PRESSURE_ADVANCE, SET_GCODE_OFFSET, SET_VELOCITY_LIMIT, STEPPER_BUZZ, TURN_OFF_HEATERS, M204, macro g-code personalizzate Supporto display LCD esteso: Supporto per i menu a runtime Nuove icone di visualizzazione Supporto per i display \"uc1701\" e \"ssd1306\" Supporto per microcontrollore aggiuntivo: Klipper portato su: LPC176x (Smoothieboards), SAM4E8E (Duet2), SAMD21 (Arduino Zero), STM32F103 (dispositivi \"blue pill\"), atmega32u4 Nuovo driver USB CDC generico implementato su AVR, LPC176x, SAMD21 e STM32F103 Miglioramenti delle prestazioni sui processori ARM Il codice della cinematica \u00e8 stato riscritto per utilizzare un \"risolutore iterativo\" Nuovi test case automatici per il software host Klipper Molti nuovi file di configurazione di esempio per le stampanti standard comuni Aggiornamenti della documentazione per bootloader, benchmarking, porting del microcontroller, controlli di configurazione, mappatura dei pin, impostazioni dello slicer, packaging e altro ancora Diverse correzioni di bug e pulizia del codice","title":"Klipper 0.7.0"},{"location":"Releases.html#klipper-060","text":"Disponibile su 20180331. Modifiche principali in questa versione: Controlli avanzati dei guasti hardware del riscaldatore e del termistore Supporto per sonde Z Supporto iniziale per la calibrazione automatica dei parametri sulle delta (tramite un nuovo comando delta_calibrate) Supporto iniziale per la compensazione dell'inclinazione del piatto (tramite il comando bed_tilt_calibrate) Supporto iniziale per \"homing sicuro\" e di homing overrides Supporto iniziale per la visualizzazione dello stato sui display RepRapDiscount stile 2004 e 12864 Nuovi miglioramenti multi-estrusore: Supporto per riscaldatori condivisi Supporto iniziale per carrelli doppi Supporto per la configurazione di pi\u00f9 stepper per asse (ad es. doppia Z) Supporto per pin di output digitali e pwm personalizzati (con un nuovo comando SET_PIN) Supporto iniziale per una \"sdcard virtuale\" che consente di stampare direttamente da Klipper (aiuta su macchine troppo lente per eseguire bene OctoPrint) Supporto per impostare diverse lunghezze del braccio su ciascuna torre di una delta Supporto per i comandi G-Code M220/M221 (override del fattore di velocit\u00e0/override del fattore di estrusione) Diversi aggiornamenti della documentazione: Molti nuovi file di configurazione di esempio per le stampanti standard comuni Nuovo esempio di configurazione di MCU multipli Nuovo esempio di configurazione del sensore bltouch Nuove FAQ, controllo della configurazione e documenti G-Code Supporto iniziale per test di integrazione continui su tutti i commit di github Diverse correzioni di bug e pulizia del codice","title":"Klipper 0.6.0"},{"location":"Releases.html#klipper-050","text":"Disponibile su 20171025. Modifiche principali in questa versione: Supporto per stampanti con pi\u00f9 estrusori. Supporto iniziale per l'esecuzione su Beaglebone PRU. Supporto iniziale per la scheda Replicape. Supporto iniziale per l'esecuzione del codice del microcontrollore in un processo Linux in tempo reale. Supporto per microcontrollori multipli. (Ad esempio, si potrebbe controllare un estrusore con un microcontrollore e il resto della stampante con un altro.) La sincronizzazione dell'orologio del software \u00e8 implementata per coordinare le azioni tra i microcontrollori. Miglioramenti delle prestazioni stepper (AVR da 20 Mhz fino a 189.000 passi al secondo). Supporto per il controllo dei servocomandi e supporto per la definizione delle ventole di raffreddamento degli ugelli. Diverse correzioni di bug e pulizia del codice","title":"Klipper 0.5.0"},{"location":"Releases.html#klipper-040","text":"Disponibile su 20170503. Modifiche principali in questa versione: Installazione migliorata su macchine Raspberry Pi. La maggior parte dell'installazione \u00e8 ora basata su script. Supporto per la cinematica corexy Aggiornamenti della documentazione: nuovo documento Cinematica, nuova guida all'ottimizzazione di Pressure Advance, nuovi file di configurazione di esempio e altro ancora Miglioramenti delle prestazioni dello stepper (AVR da 20 Mhz su 175.000 passi al secondo, Arduino Due oltre 460.000) Supporto per il ripristino automatico del microcontrollore. Supporto per il ripristino tramite l'attivazione dell'alimentazione USB su Raspberry Pi. L'algoritmo di avanzamento della pressione ora funziona con il look-ahead per ridurre le variazioni di pressione in curva. Supporto per limitare la velocit\u00e0 massima di brevi movimenti a zigzag Supporto per sensori AD595 Diverse correzioni di bug e pulizia del codice","title":"Klipper 0.4.0"},{"location":"Releases.html#klipper-030","text":"Disponibile su 20161223. Modifiche principali in questa versione: Documentazione migliorata Supporto per robot con cinematica delta Supporto per microcontrollore Arduino Due (ARM cortex-M3) Supporto USB per microcontrollori basati su AVR Supporto per l'algoritmo di \"pressure advance\": riduce la trasudazione durante le stampe. Nuova funzione \"stopper phased based\" - consente una maggiore precisione sull'homing. Supporto per comandi \"extended g-code\" come \"help\", \"restart\" e \"status\". Supporto per ricaricare la configurazione di Klipper e riavviare il software host emettendo un comando di \"restart\" dal terminale. Miglioramenti delle prestazioni stepper (AVR da 20 Mhz fino a 158.000 passi al secondo). Segnalazione errori migliorata. La maggior parte degli errori ora viene mostrata tramite il terminale insieme all'aiuto su come risolverli. Diverse correzioni di bug e pulizia del codice","title":"Klipper 0.3.0"},{"location":"Releases.html#klipper-020","text":"Rilascio iniziale di Klipper. Disponibile su 20160525. Le principali funzionalit\u00e0 disponibili nella versione iniziale includono: Supporto di base per stampanti cartesiane (stepper, estrusore, piatto riscaldato, ventola di raffreddamento). Supporto per i comandi g-code comuni. Supporto per interfacciarsi con OctoPrint. Accelerazione e gestione lookahead Supporto per microcontrollori AVR tramite porte seriali standard","title":"Klipper 0.2.0"},{"location":"Resonance_Compensation.html","text":"Compensazione della risonanza \u00b6 Klipper supporta Input Shaping, una tecnica che pu\u00f2 essere utilizzata per ridurre il ringing (noti anche come echoing, ghosting o increspature) nelle stampe. Il ringing \u00e8 un difetto di stampa della superficie quando, in genere, elementi come i bordi si ripetono su una superficie stampata come un sottile \"eco\": | | | I ringing sono causati da vibrazioni meccaniche nella stampante dovute a rapidi cambiamenti della direzione di stampa. Si noti che il ringing di solito ha origini meccaniche: telaio della stampante non sufficientemente rigido, cinghie non tese o troppo elastiche, problemi di allineamento delle parti meccaniche, massa in movimento pesante, ecc. Questi dovrebbero essere prima controllati e riparati, se possibile. Input shaping \u00e8 una tecnica di controllo ad anello aperto che crea un segnale di comando che annulla le proprie vibrazioni. La modellatura dell'ingresso richiede alcune regolazioni e misurazioni prima di poter essere abilitata. Oltre al ringing, Input Shaping riduce in genere le vibrazioni e le vibrazioni della stampante in generale e pu\u00f2 anche migliorare l'affidabilit\u00e0 della modalit\u00e0 StealthChop dei driver stepper Trinamic. Messa a punto \u00b6 La regolazione di base richiede la misurazione delle frequenze di ringing della stampante stampando un modello di prova. Carica il modello di prova per il ringing, che pu\u00f2 essere trovato in docs/prints/ringing_tower.stl , nello slicer: L'altezza dello strato (layer) consigliata \u00e8 0,2 o 0,25 mm. I livelli di riempimento e superiori possono essere impostati su 0. Usa 1-2 perimetri, o meglio ancora la modalit\u00e0 vaso liscio con base da 1-2 mm. Utilizzare velocit\u00e0 sufficientemente elevate, circa 80-100 mm/sec, per i perimetri esterni . Assicurati che il tempo minimo per lo strato sia al massimo 3 secondi. Assicurati che qualsiasi \"controllo dinamico dell'accelerazione\" sia disabilitato nello slicer. Non girare il modello. Il modello ha segni X e Y sul retro del modello. Nota la posizione insolita dei segni rispetto agli assi della stampante: non \u00e8 un errore. I contrassegni possono essere utilizzati successivamente nel processo di ottimizzazione come riferimento, poich\u00e9 mostrano a quale asse corrispondono le misurazioni. Frequenza di ringing \u00b6 Innanzitutto, misura la frequenza di ringing . Se il parametro square_corner_velocity \u00e8 stato modificato, ripristinalo a 5.0 . Non \u00e8 consigliabile aumentarlo quando si utilizza l'input shaper perch\u00e9 pu\u00f2 causare un maggiore smussamento smoothing delle parti: \u00e8 invece meglio utilizzare un valore di accelerazione pi\u00f9 elevato. Aumenta max_accel_to_decel inserendo il seguente comando: SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 Disabilita la Pressure Advance: SET_PRESSURE_ADVANCE ADVANCE=0 Se hai gi\u00e0 aggiunto la sezione [input_shaper] a printer.cfg, esegui il comando SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0 . Se ricevi l'errore \"Comando sconosciuto- Unknown command\", puoi tranquillamente ignorarlo a questo punto e continuare con le misurazioni. Eseguire il comando: TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Fondamentalmente, cerchiamo di rendere pi\u00f9 pronunciato il ringing impostando diversi valori elevati per l'accelerazione. Questo comando aumenter\u00e0 l'accelerazione ogni 5 mm a partire da 1500 mm/sec^2: 1500 mm/sec^2, 2000 mm/sec^2, 2500 mm/sec^2 e cos\u00ec via fino a 7000 mm/sec^2 per l'ultima fascia. Stampa il modello di test sliced con i parametri suggeriti. Puoi interrompere la stampa prima se il ringing \u00e8 chiaramente visibile e vedi che l'accelerazione diventa troppo alta per la tua stampante (ad es. la stampante trema troppo o inizia a saltare i passaggi). Utilizzare i segni X e Y sul retro del modello come riferimento. Le misurazioni dal lato con il contrassegno X devono essere utilizzate per la configurazione dell'asse X e il contrassegno Y - per la configurazione dell'asse Y. Misurare la distanza D (in mm) tra pi\u00f9 oscillazioni sulla parte con il segno X, in prossimit\u00e0 delle tacche, preferibilmente saltando la prima o due oscillazioni. Per misurare pi\u00f9 facilmente la distanza tra le oscillazioni, contrassegnare prima le oscillazioni, quindi misurare la distanza tra i segni con un righello o un calibro:| | | Contare a quante oscillazioni N corrisponde la distanza misurata D . Se non sei sicuro di come contare le oscillazioni, fai riferimento all'immagine sopra, che mostra N = 6 oscillazioni. Calcola la frequenza di squillo dell'asse X come V \u00b7 N / D (Hz), dove V \u00e8 la velocit\u00e0 per i perimetri esterni (mm/sec). Per l'esempio sopra, abbiamo contrassegnato 6 oscillazioni e il test \u00e8 stato stampato a una velocit\u00e0 di 100 mm/sec, quindi la frequenza \u00e8 100 * 6 / 12,14 \u2248 49,4 Hz. Esegui (8) - (10) anche per il segno Y. Si noti che il ringing sulla stampa di prova dovrebbe seguire lo schema delle tacche curve, come nell'immagine sopra. In caso contrario, questo difetto non \u00e8 in realt\u00e0 un ringing e ha un'origine diversa: un problema meccanico o dell'estrusore. Dovrebbe essere risolto prima di abilitare e regolare gli shaper di input. Se le misurazioni non sono affidabili perch\u00e9, ad esempio, la distanza tra le oscillazioni non \u00e8 stabile, potrebbe significare che la stampante ha pi\u00f9 frequenze di risonanza sullo stesso asse. Si pu\u00f2 invece provare a seguire il processo di sintonizzazione descritto nella sezione Misurazioni inaffidabili delle frequenze di ringing e ottenere comunque qualcosa dalla tecnica di input shaping . La frequenza dei ringing pu\u00f2 dipendere dalla posizione del modello all'interno della piastra di stampa e dall'altezza Z, soprattutto sulle stampanti delta ; puoi controllare se vedi le differenze di frequenza in diverse posizioni lungo i lati del modello di prova e ad altezze diverse. \u00c8 possibile calcolare le frequenze di squillo medie sugli assi X e Y, se questo \u00e8 il caso. Se la frequenza di ringing misurata \u00e8 molto bassa (inferiore a circa 20-25 Hz), potrebbe essere una buona idea investire nell'irrigidire la stampante o nel diminuire la massa mobile, a seconda di ci\u00f2 che \u00e8 applicabile nel tuo caso, prima di procedere con l'ulteriore input shaping e rimisurare le frequenze in seguito. Per molti modelli di stampanti popolari spesso sono gi\u00e0 disponibili alcune soluzioni. Si noti che le frequenze di ringing possono cambiare se alla stampante vengono apportate modifiche che influiscono sulla massa in movimento o modificano la rigidit\u00e0 del sistema, ad esempio: Alcuni strumenti vengono installati, rimossi o sostituiti sulla testa di stampa che ne modificano la massa, ad es. viene installato un nuovo motore passo-passo (pi\u00f9 pesante o pi\u00f9 leggero) per estrusore diretto o viene installato un nuovo hotend, viene aggiunta una ventola pesante con un condotto, ecc. Le cinghie sono tese. Sono installati alcuni componenti aggiuntivi per aumentare la rigidit\u00e0 del telaio. Un piatto diverso \u00e8 installato su una stampante a piatto mobile o aggiunto un vetro, ecc. Se vengono apportate tali modifiche, \u00e8 una buona idea misurare almeno le frequenze di ringing per vedere se sono cambiate. Configurazione del Input shaper \u00b6 Dopo aver misurato le frequenze di ringing per gli assi X e Y, puoi aggiungere la seguente sezione al tuo printer.cfg : [input_shaper] shaper_freq_x: ... # frequenza per il segno X del modello di prova shaper_freq_y: ... # frequenza per il segno Y del modello di prova Per l'esempio sopra, otteniamo shaper_freq_x/y = 49.4. Scelta del input shaper \u00b6 Klipper supporta diversi input shaper. Si differenziano per la loro sensibilit\u00e0 agli errori che determinano la frequenza di risonanza e quanto smussamento provocano nelle parti stampate. Inoltre, alcuni degli shaper come 2HUMP_EI e 3HUMP_EI di solito non dovrebbero essere usati con shaper_freq = frequenza di risonanza: sono configurati in base a diverse considerazioni per ridurre diverse risonanze contemporaneamente. Per la maggior parte delle stampanti, possono essere consigliati shaper MZV o EI. Questa sezione descrive un processo di test per scegliere tra di loro e capire alcuni altri parametri correlati. Stampare il modello di prova di ringing come segue: Riavviare il firmware: RESTART Prepararsi per il test: SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 Disabilita la Pressure Advance: SET_PRESSURE_ADVANCE ADVANCE=0 Eseguire: SET_INPUT_SHAPER SHAPER_TYPE=MZV Eseguire il comando: TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Stampa il modello di test sliced con i parametri suggeriti. Se a questo punto non si vede alcun ringing, \u00e8 possibile consigliare l'uso dello shaper MZV. Se vedi dei ringing, rimisura le frequenze usando i passaggi (8)-(10) descritti nella sezione Frequenza ringing . Se le frequenze differiscono in modo significativo dai valori ottenuti in precedenza, \u00e8 necessaria una configurazione dello shaper di input pi\u00f9 complessa. Puoi fare riferimento ai dettagli tecnici della sezione Input shapers . In caso contrario, procedere al passaggio successivo. Ora prova l'input shaper EI. Per provarlo, ripeti i passaggi (1)-(6) da sopra, ma eseguendo invece al passaggio 4 il seguente comando : SET_INPUT_SHAPER SHAPER_TYPE=EI . Confronta due stampe con input shaper MZV e EI. Se EI mostra risultati notevolmente migliori rispetto a MZV, utilizzare EI shaper, altrimenti preferire MZV. Si noti che lo shaper EI causer\u00e0 una maggiore levigatura 'smoothing' nelle parti stampate (vedere la sezione successiva per ulteriori dettagli). Aggiungi il parametro shaper_type: mzv (o ei) alla sezione [input_shaper], ad esempio: [input_shaper] shaper_freq_x: ... shaper_freq_y: ... shaper_type: mzv Alcune note sulla scelta dello shaper: Lo shaper EI pu\u00f2 essere pi\u00f9 adatto per le stampanti a piatto mobile (se la frequenza di risonanza e il conseguente livellamento lo consentono): man mano che si deposita pi\u00f9 filamento sul piatto mobile, la massa del piatto aumenta e la frequenza di risonanza diminuisce. Poich\u00e9 lo shaper EI \u00e8 pi\u00f9 robusto alle variazioni della frequenza di risonanza, potrebbe funzionare meglio quando si stampano parti di grandi dimensioni. A causa della natura della cinematica delta, le frequenze di risonanza possono differire molto in diverse parti del volume di costruzione. Pertanto, lo shaper EI pu\u00f2 adattarsi meglio alle stampanti delta piuttosto che a MZV o ZV e dovrebbe essere considerato per l'uso. Se la frequenza di risonanza \u00e8 sufficientemente grande (pi\u00f9 di 50-60 Hz), si pu\u00f2 anche provare a testare lo shaper 2HUMP_EI (eseguendo il test suggerito sopra con SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI ), ma controllare le considerazioni nella sezione sotto prima di abilitarlo. Seleziona max_accel \u00b6 Dovresti avere un test stampato per lo shaper che hai scelto dal passaggio precedente (se non lo fai, stampa il modello di test affettato con i parametri suggeriti con l'anticipo di pressione disabilitato SET_PRESSURE_ADVANCE ADVANCE=0 e con la torre di regolazione abilitata come TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 ). Si noti che ad accelerazioni molto elevate, a seconda della frequenza di risonanza e dell'input shaper scelto (ad es. EI shaper crea pi\u00f9 smussamento di MZV), l'input shaping pu\u00f2 causare un'eccessiva levigatura -smoothing- e arrotondamento delle parti. Quindi, max_accel dovrebbe essere scelto in modo tale da impedirlo. Un altro parametro che pu\u00f2 influire sul livellamento \u00e8 square_corner_velocity , quindi non \u00e8 consigliabile aumentarlo al di sopra del valore predefinito di 5 mm/sec per evitare un aumento del livellamento smooting. Per selezionare un valore max_accel adatto, ispezionare il modello per lo shaper di input scelto. Per prima cosa, prendi nota a quale accelerazione il ringing \u00e8 ancora piccolo - che ti vada bene. Quindi, controlla la levigatura - smoothing. Per aiutare in questo, il modello di prova ha un piccolo spazio nel muro (0,15 mm): All'aumentare dell'accelerazione, aumenta anche la levigatura-smoothing e lo spazio effettivo nella stampa si allarga: In questa immagine, l'accelerazione aumenta da sinistra a destra e il gap inizia a crescere a partire da 3500 mm/sec^2 (quinta banda da sinistra). Quindi il buon valore per max_accel = 3000 (mm/sec^2) in questo caso per evitare l'eccessivo smoothing. Nota l'accelerazione quando lo spazio \u00e8 ancora molto piccolo nella stampa di prova. Se vedi rigonfiamenti, ma nessun vuoto nel muro, anche ad alte accelerazioni, potrebbe essere dovuto all'avanzamento della pressione disabilitato, specialmente sugli estrusori Bowden. In tal caso, potrebbe essere necessario ripetere la stampa con il PA abilitato. Potrebbe anche essere il risultato di un flusso di filamento non calibrato (troppo alto), quindi \u00e8 una buona idea controllare anche quello. Scegli il minimo tra i due valori di accelerazione (da ringing e smoothing) e inseriscilo come max_accel in printer.cfg. Come nota, pu\u00f2 succedere, specialmente a basse frequenze di ringing, che lo shaper EI provochi un'eccessiva attenuazione anche a basse accelerazioni. In questo caso, MZV potrebbe essere una scelta migliore, perch\u00e9 potrebbe consentire valori di accelerazione pi\u00f9 elevati. A frequenze di ringing molto basse (~25 Hz e inferiori) anche lo shaper MZV pu\u00f2 creare un effetto smussato eccessivo. In tal caso, puoi anche provare a ripetere i passaggi nella sezione Scegliere input shaper con shaper ZV, usando invece il comando SET_INPUT_SHAPER SHAPER_TYPE=ZV . Lo shaper ZV dovrebbe mostrare un livellamento ancora inferiore rispetto a MZV, ma \u00e8 pi\u00f9 sensibile agli errori nella misurazione delle frequenze di ringing. Un'altra considerazione \u00e8 che se una frequenza di risonanza \u00e8 troppo bassa (inferiore a 20-25 Hz), potrebbe essere una buona idea aumentare la rigidit\u00e0 della stampante o ridurre la massa in movimento. In caso contrario, l'accelerazione e la velocit\u00e0 di stampa potrebbero essere limitate a causa di un'eccessivo smoothing invece del ringing. Regolazione fine delle frequenze di risonanza \u00b6 Si noti che la precisione delle misurazioni delle frequenze di risonanza utilizzando il modello di test di ringing \u00e8 sufficiente per la maggior parte degli scopi, quindi si sconsiglia un'ulteriore messa a punto. Se vuoi ancora provare a ricontrollare i tuoi risultati (ad esempio se vedi ancora del ringing dopo aver stampato un modello di prova con un input shaper a tua scelta con le stesse frequenze che hai misurato in precedenza), puoi seguire i passaggi in questo sezione. Nota che se vedi ringing a frequenze diverse dopo aver abilitato [input_shaper], questa sezione non ti aiuter\u00e0. Supponendo di aver suddiviso il modello di ringing con i parametri suggeriti, completare i seguenti passaggi per ciascuno degli assi X e Y: Prepararsi per il test: SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 Assicurati che Pressure Advance sia disabilitato: SET_PRESSURE_ADVANCE ADVANCE=0 Eseguire: SET_INPUT_SHAPER SHAPER_TYPE=ZV Dal modello di prova di ringing esistente con lo shaper di input scelto, seleziona l'accelerazione che mostra sufficientemente bene il ringing e impostala con: SET_VELOCITY_LIMIT ACCEL=... Calcola i parametri necessari per il comando TUNING_TOWER per ottimizzare il parametro shaper_freq_x come segue: start = shaper_freq_x * 83 / 132 e factor = shaper_freq_x / 66, dove qui shaper_freq_x \u00e8 il valore corrente in printer.cfg . Eseguire il comando: TUNING_TOWER COMMAND=SET_INPUT_SHAPER PARAMETER=SHAPER_FREQ_X START=start FACTOR=factor BAND=5 usando i valori start e factor calcolati al punto (5). Stampa il modello di prova. Reimposta il valore della frequenza originale: SET_INPUT_SHAPER SHAPER_FREQ_X=... . Trova la fascia che mostra meno ringing e conta il suo numero dal basso partendo da 1. Calcola il nuovo valore shaper_freq_x tramite il vecchio shaper_freq_x * (39 + 5 * #band-number) / 66. Ripetere questi passaggi per l'asse Y allo stesso modo, sostituendo i riferimenti all'asse X con l'asse Y (ad es. sostituire shaper_freq_x con shaper_freq_y nelle formule e nel comando TUNING_TOWER ). Ad esempio, supponiamo di aver misurato la frequenza di ringing per uno degli assi pari a 45 Hz. Questo d\u00e0 start = 45 * 83 / 132 = 28,30 e factor = 45 / 66 = 0,6818 valori per il comando TUNING_TOWER . Supponiamo ora che dopo aver stampato il modello di prova, la quarta fascia dal basso dia il minimo squillo. Questo d\u00e0 lo shaper_freq_^ aggiornato al valore pari a 45 * (39 + 5 * 4) / 66 \u2248 40,23. Dopo aver calcolato entrambi i nuovi parametri shaper_freq_x e shaper_freq_y , puoi aggiornare la sezione [input_shaper] in printer.cfg con i nuovi valori shaper_freq_x e shaper_freq_y . Pressure Advance \u00b6 Se si utilizza Pressure Advance, potrebbe essere necessario risintonizzarlo. Seguire le istruzioni per trovare il nuovo valore, se diverso dal precedente. Assicurati di riavviare Klipper prima di regolare Pressure Advance. Misurazioni inaffidabili delle frequenze di ringing \u00b6 Se non \u00e8 possibile misurare le frequenze di ringing, ad es. se la distanza tra le oscillazioni non \u00e8 stabile, potresti comunque essere in grado di sfruttare le tecniche di input shaping, ma i risultati potrebbero non essere buoni come con misurazioni corrette delle frequenze e richieder\u00e0 un po' pi\u00f9 di messa a punto e stampa del test modello. Si noti che un'altra possibilit\u00e0 \u00e8 acquistare e installare un accelerometro e misurare le risonanze con esso (fare riferimento a docs che descrive l'hardware richiesto e il processo di installazione), ma questa opzione richiede un po' di crimpatura e saldatura. Per l'ottimizzazione, aggiungi la sezione [input_shaper] vuota al tuo printer.cfg . Quindi, supponendo di aver fattolo slicing il modello di ringing con i parametri suggeriti, stampare il modello di prova 3 volte come segue. La prima volta, prima della stampa, eseguire RESTART SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 SET_PRESSURE_ADVANCE ADVANCE=0 SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=60 SHAPER_FREQ_Y=60 TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 e stampa il modello. Quindi stampare di nuovo il modello, ma prima di eseguire la stampa invece SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=50 SHAPER_FREQ_Y=50 TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Quindi stampa il modello per la terza volta, ma ora esegui SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=40 SHAPER_FREQ_Y=40 TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 In sostanza, stiamo stampando il modello di prova di ringing con TUNING_TOWER utilizzando lo shaper 2HUMP_EI con shaper_freq = 60 Hz, 50 Hz e 40 Hz. Se nessuno dei modelli mostra miglioramenti nel ringing, allora, sfortunatamente non sembra che le tecniche di modellazione dell'input possano aiutare con il tuo caso. Altrimenti, \u00e8 possibile che tutti i modelli non mostrino ringing, o alcuni mostrino ringing e altri non cos\u00ec tanto. Scegli il modello di test con la frequenza pi\u00f9 alta che mostra comunque buoni miglioramenti nel ringing. Ad esempio, se i modelli a 40 Hz e 50 Hz non mostrano quasi nessuno ringing e il modello a 60 Hz mostra gi\u00e0 un po' pi\u00f9 di ringing, attenersi a 50 Hz. Ora controlla se lo shaper EI sarebbe abbastanza buono nel tuo caso. Scegli la frequenza dello shaper EI in base alla frequenza dello shaper 2HUMP_EI che hai scelto: Per lo shaper 2HUMP_EI 60 Hz, utilizzare lo shaper EI con shaper_freq = 50 Hz. Per lo shaper 2HUMP_EI 50 Hz, utilizzare lo shaper EI con shaper_freq = 40 Hz. Per lo shaper 2HUMP_EI 40 Hz, utilizzare lo shaper EI con shaper_freq = 33 Hz. Ora stampa il modello di prova ancora una volta, eseguendola SET_INPUT_SHAPER SHAPER_TYPE=EI SHAPER_FREQ_X=... SHAPER_FREQ_Y=... TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 fornendo shaper_freq_x=... e shaper_freq_y=... come determinato in precedenza. Se lo shaper EI mostra buoni risultati comparabili con lo shaper 2HUMP_EI, attenersi con lo shaper EI e la frequenza determinata in precedenza, altrimenti utilizzare lo shaper 2HUMP_EI con la frequenza corrispondente. Aggiungi i risultati a printer.cfg come, ad es. [input_shaper] shaper_freq_x: 50 shaper_freq_y: 50 shaper_type: 2hump_ei Continua l'ottimizzazione con la sezione Selecting max_accel . Risoluzione dei problemi e domande frequenti \u00b6 Non riesco a ottenere misurazioni affidabili delle frequenze di risonanza \u00b6 Innanzitutto, assicurati che non ci siano altri problemi con la stampante invece del ringing. Se le misurazioni non sono affidabili perch\u00e9, ad esempio, la distanza tra le oscillazioni non \u00e8 stabile, potrebbe significare che la stampante ha pi\u00f9 frequenze di risonanza sullo stesso asse. Si pu\u00f2 provare a seguire il processo di sintonizzazione descritto nella sezione Misurazioni inaffidabili delle frequenze di ringing e ottenere comunque qualcosa dalla tecnica di modellatura dell'input. Un'altra possibilit\u00e0 \u00e8 installare un accelerometro, misurare le risonanze con esso e regolare automaticamente lo shaper di input utilizzando i risultati di tali misurazioni. Dopo aver abilitato [input_shaper], ottengo parti stampate troppo levigate e i dettagli fini vengono persi \u00b6 Controllare le considerazioni nella sezione Selecting max_accel . Se la frequenza di risonanza \u00e8 bassa, non si dovrebbero impostare max_accel troppo alti o aumentare i parametri square_corner_velocity. Potrebbe anche essere meglio scegliere gli shaper di input MZV o anche ZV su EI (o gli shaper 2HUMP_EI e 3HUMP_EI). Dopo aver stampato correttamente per un po' di tempo senza ringing, sembra tornare \u00b6 \u00c8 possibile che dopo qualche tempo le frequenze di risonanza siano cambiate. Per esempio. forse la tensione delle cinghie \u00e8 cambiata (le cinghie si sono allentate di pi\u00f9), ecc. \u00c8 una buona idea controllare e rimisurare le frequenze di ringing come descritto nella sezione Frequenza di ringing e aggiornare il file di configurazione se necessario . La configurazione a doppio carrello \u00e8 supportata con gli input shaper? \u00b6 Non esiste un supporto dedicato per doppi carrelli con input shaper, ma ci\u00f2 non significa che questa configurazione non funzioner\u00e0. Si dovrebbe eseguire la messa a punto due volte per ciascuno dei carrelli e calcolare le frequenze di ringing per gli assi X e Y per ciascuno dei carrelli in modo indipendente. Quindi inserisci i valori per il carrello 0 nella sezione [input_shaper] e modifica i valori al volo quando si cambiano i carrelli, ad es. come parte di alcune macro: SET_DUAL_CARRIAGE CARRIAGE=1 SET_INPUT_SHAPER SHAPER_FREQ_X=... SHAPER_FREQ_Y=... E allo stesso modo quando si torna al carrello 0. L'input_shaper influisce sul tempo di stampa? \u00b6 No, la funzione input_shaper non ha praticamente alcun impatto sui tempi di stampa da sola. Tuttavia, il valore di max_accel lo fa certamente (regolazione di questo parametro descritta in questa sezione ). Dettagli tecnici \u00b6 Input shaper \u00b6 Gli shaper di input utilizzati in Klipper sono piuttosto standard e si pu\u00f2 trovare una panoramica pi\u00f9 approfondita negli articoli che descrivono gli shaper corrispondenti. Questa sezione contiene una breve panoramica di alcuni aspetti tecnici degli input shaper supportati. La tabella seguente mostra alcuni parametri (solitamente approssimativi) di ciascun shaper. Input shaper Shaper duration Riduzione delle vibrazioni 20x (5% di tolleranza alle vibrazioni) Riduzione delle vibrazioni 10 volte (tolleranza alle vibrazioni del 10%) ZV 0.5 / shaper_freq N/A \u00b1 5% shaper_freq MZV 0.75 / shaper_freq \u00b1 4% shaper_freq -10%...+15% shaper_freq ZVD 1 / shaper_freq \u00b1 15% shaper_freq \u00b1 22% shaper_freq EI 1 / shaper_freq \u00b1 20% shaper_freq \u00b1 25% shaper_freq 2HUMP_EI 1.5 / shaper_freq \u00b1 35% shaper_freq \u00b1 40 shaper_freq 3HUMP_EI 2 / shaper_freq -45...+50% shaper_freq -50%...+55% shaper_freq Una nota sulla riduzione delle vibrazioni: i valori nella tabella sopra sono approssimativi. Se il rapporto di smorzamento della stampante \u00e8 noto per ciascun asse, lo shaper pu\u00f2 essere configurato in modo pi\u00f9 preciso e ridurr\u00e0 quindi le risonanze in una gamma di frequenze leggermente pi\u00f9 ampia. Tuttavia, il rapporto di smorzamento \u00e8 solitamente sconosciuto ed \u00e8 difficile da stimare senza un'attrezzatura speciale, quindi Klipper utilizza il valore 0,1 per impostazione predefinita, che \u00e8 un buon valore a tutto tondo. Le gamme di frequenza nella tabella coprono un numero di diversi possibili rapporti di smorzamento attorno a quel valore (da 0,05 a 0,2 circa). Si noti inoltre che EI, 2HUMP_EI e 3HUMP_EI sono sintonizzati per ridurre le vibrazioni al 5%, quindi i valori per la tolleranza alle vibrazioni del 10% sono forniti solo per riferimento. Come utilizzare questa tabella: La durata dello shaper influisce sull0 smoothing delle parti: pi\u00f9 \u00e8 grande, pi\u00f9 le parti sono lisce. Questa dipendenza non \u00e8 lineare, ma pu\u00f2 dare un'idea di quali shaper \"levigano\" di pi\u00f9 per la stessa frequenza. L'ordinamento per smoothing \u00e8 il seguente: ZV < MZV < ZVD \u2248 EI < 2HUMP_EI < 3HUMP_EI. Inoltre, raramente \u00e8 pratico impostare shaper_freq = resonance freq per gli shaper 2HUMP_EI e 3HUMP_EI (dovrebbero essere usati per ridurre le vibrazioni per diverse frequenze). Si pu\u00f2 stimare una gamma di frequenze in cui lo shaper riduce le vibrazioni. Ad esempio, MZV con shaper_freq = 35 Hz riduce le vibrazioni al 5% per le frequenze [33,6, 36,4] Hz. 3HUMP_EI con shaper_freq = 50 Hz riduce le vibrazioni al 5% nell'intervallo [27,5, 75] Hz. Si pu\u00f2 usare questa tabella per verificare quale shaper dovrebbero usare se hanno bisogno di ridurre le vibrazioni a diverse frequenze. Ad esempio, se si hanno risonanze a 35 Hz e 60 Hz sullo stesso asse: a) EI shaper deve avere shaper_freq = 35 / (1 - 0,2) = 43,75 Hz, e ridurr\u00e0 le risonanze fino a 43,75 * (1 + 0,2 ) = 52,5 Hz, quindi non \u00e8 sufficiente; b) 2HUMP_EI shaper deve avere shaper_freq = 35 / (1 - 0,35) = 53,85 Hz e ridurr\u00e0 le vibrazioni fino a 53,85 * (1 + 0,35) = 72,7 Hz - quindi questa \u00e8 una configurazione accettabile. Cerca sempre di usare shaper_freq il pi\u00f9 alto possibile per un dato shaper (magari con un certo margine di sicurezza, quindi in questo esempio shaper_freq \u2248 50-52 Hz funzionerebbe meglio), e prova a usare uno shaper con la minor durata possibile dello shaper. Se \u00e8 necessario ridurre le vibrazioni a diverse frequenze molto diverse (ad esempio, 30 Hz e 100 Hz), \u00e8 possibile che la tabella sopra non fornisca informazioni sufficienti. In questo caso si pu\u00f2 avere pi\u00f9 fortuna con lo script scripts/graph_shaper.py , che \u00e8 pi\u00f9 flessibile.","title":"Compensazione della risonanza"},{"location":"Resonance_Compensation.html#compensazione-della-risonanza","text":"Klipper supporta Input Shaping, una tecnica che pu\u00f2 essere utilizzata per ridurre il ringing (noti anche come echoing, ghosting o increspature) nelle stampe. Il ringing \u00e8 un difetto di stampa della superficie quando, in genere, elementi come i bordi si ripetono su una superficie stampata come un sottile \"eco\": | | | I ringing sono causati da vibrazioni meccaniche nella stampante dovute a rapidi cambiamenti della direzione di stampa. Si noti che il ringing di solito ha origini meccaniche: telaio della stampante non sufficientemente rigido, cinghie non tese o troppo elastiche, problemi di allineamento delle parti meccaniche, massa in movimento pesante, ecc. Questi dovrebbero essere prima controllati e riparati, se possibile. Input shaping \u00e8 una tecnica di controllo ad anello aperto che crea un segnale di comando che annulla le proprie vibrazioni. La modellatura dell'ingresso richiede alcune regolazioni e misurazioni prima di poter essere abilitata. Oltre al ringing, Input Shaping riduce in genere le vibrazioni e le vibrazioni della stampante in generale e pu\u00f2 anche migliorare l'affidabilit\u00e0 della modalit\u00e0 StealthChop dei driver stepper Trinamic.","title":"Compensazione della risonanza"},{"location":"Resonance_Compensation.html#messa-a-punto","text":"La regolazione di base richiede la misurazione delle frequenze di ringing della stampante stampando un modello di prova. Carica il modello di prova per il ringing, che pu\u00f2 essere trovato in docs/prints/ringing_tower.stl , nello slicer: L'altezza dello strato (layer) consigliata \u00e8 0,2 o 0,25 mm. I livelli di riempimento e superiori possono essere impostati su 0. Usa 1-2 perimetri, o meglio ancora la modalit\u00e0 vaso liscio con base da 1-2 mm. Utilizzare velocit\u00e0 sufficientemente elevate, circa 80-100 mm/sec, per i perimetri esterni . Assicurati che il tempo minimo per lo strato sia al massimo 3 secondi. Assicurati che qualsiasi \"controllo dinamico dell'accelerazione\" sia disabilitato nello slicer. Non girare il modello. Il modello ha segni X e Y sul retro del modello. Nota la posizione insolita dei segni rispetto agli assi della stampante: non \u00e8 un errore. I contrassegni possono essere utilizzati successivamente nel processo di ottimizzazione come riferimento, poich\u00e9 mostrano a quale asse corrispondono le misurazioni.","title":"Messa a punto"},{"location":"Resonance_Compensation.html#frequenza-di-ringing","text":"Innanzitutto, misura la frequenza di ringing . Se il parametro square_corner_velocity \u00e8 stato modificato, ripristinalo a 5.0 . Non \u00e8 consigliabile aumentarlo quando si utilizza l'input shaper perch\u00e9 pu\u00f2 causare un maggiore smussamento smoothing delle parti: \u00e8 invece meglio utilizzare un valore di accelerazione pi\u00f9 elevato. Aumenta max_accel_to_decel inserendo il seguente comando: SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 Disabilita la Pressure Advance: SET_PRESSURE_ADVANCE ADVANCE=0 Se hai gi\u00e0 aggiunto la sezione [input_shaper] a printer.cfg, esegui il comando SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0 . Se ricevi l'errore \"Comando sconosciuto- Unknown command\", puoi tranquillamente ignorarlo a questo punto e continuare con le misurazioni. Eseguire il comando: TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Fondamentalmente, cerchiamo di rendere pi\u00f9 pronunciato il ringing impostando diversi valori elevati per l'accelerazione. Questo comando aumenter\u00e0 l'accelerazione ogni 5 mm a partire da 1500 mm/sec^2: 1500 mm/sec^2, 2000 mm/sec^2, 2500 mm/sec^2 e cos\u00ec via fino a 7000 mm/sec^2 per l'ultima fascia. Stampa il modello di test sliced con i parametri suggeriti. Puoi interrompere la stampa prima se il ringing \u00e8 chiaramente visibile e vedi che l'accelerazione diventa troppo alta per la tua stampante (ad es. la stampante trema troppo o inizia a saltare i passaggi). Utilizzare i segni X e Y sul retro del modello come riferimento. Le misurazioni dal lato con il contrassegno X devono essere utilizzate per la configurazione dell'asse X e il contrassegno Y - per la configurazione dell'asse Y. Misurare la distanza D (in mm) tra pi\u00f9 oscillazioni sulla parte con il segno X, in prossimit\u00e0 delle tacche, preferibilmente saltando la prima o due oscillazioni. Per misurare pi\u00f9 facilmente la distanza tra le oscillazioni, contrassegnare prima le oscillazioni, quindi misurare la distanza tra i segni con un righello o un calibro:| | | Contare a quante oscillazioni N corrisponde la distanza misurata D . Se non sei sicuro di come contare le oscillazioni, fai riferimento all'immagine sopra, che mostra N = 6 oscillazioni. Calcola la frequenza di squillo dell'asse X come V \u00b7 N / D (Hz), dove V \u00e8 la velocit\u00e0 per i perimetri esterni (mm/sec). Per l'esempio sopra, abbiamo contrassegnato 6 oscillazioni e il test \u00e8 stato stampato a una velocit\u00e0 di 100 mm/sec, quindi la frequenza \u00e8 100 * 6 / 12,14 \u2248 49,4 Hz. Esegui (8) - (10) anche per il segno Y. Si noti che il ringing sulla stampa di prova dovrebbe seguire lo schema delle tacche curve, come nell'immagine sopra. In caso contrario, questo difetto non \u00e8 in realt\u00e0 un ringing e ha un'origine diversa: un problema meccanico o dell'estrusore. Dovrebbe essere risolto prima di abilitare e regolare gli shaper di input. Se le misurazioni non sono affidabili perch\u00e9, ad esempio, la distanza tra le oscillazioni non \u00e8 stabile, potrebbe significare che la stampante ha pi\u00f9 frequenze di risonanza sullo stesso asse. Si pu\u00f2 invece provare a seguire il processo di sintonizzazione descritto nella sezione Misurazioni inaffidabili delle frequenze di ringing e ottenere comunque qualcosa dalla tecnica di input shaping . La frequenza dei ringing pu\u00f2 dipendere dalla posizione del modello all'interno della piastra di stampa e dall'altezza Z, soprattutto sulle stampanti delta ; puoi controllare se vedi le differenze di frequenza in diverse posizioni lungo i lati del modello di prova e ad altezze diverse. \u00c8 possibile calcolare le frequenze di squillo medie sugli assi X e Y, se questo \u00e8 il caso. Se la frequenza di ringing misurata \u00e8 molto bassa (inferiore a circa 20-25 Hz), potrebbe essere una buona idea investire nell'irrigidire la stampante o nel diminuire la massa mobile, a seconda di ci\u00f2 che \u00e8 applicabile nel tuo caso, prima di procedere con l'ulteriore input shaping e rimisurare le frequenze in seguito. Per molti modelli di stampanti popolari spesso sono gi\u00e0 disponibili alcune soluzioni. Si noti che le frequenze di ringing possono cambiare se alla stampante vengono apportate modifiche che influiscono sulla massa in movimento o modificano la rigidit\u00e0 del sistema, ad esempio: Alcuni strumenti vengono installati, rimossi o sostituiti sulla testa di stampa che ne modificano la massa, ad es. viene installato un nuovo motore passo-passo (pi\u00f9 pesante o pi\u00f9 leggero) per estrusore diretto o viene installato un nuovo hotend, viene aggiunta una ventola pesante con un condotto, ecc. Le cinghie sono tese. Sono installati alcuni componenti aggiuntivi per aumentare la rigidit\u00e0 del telaio. Un piatto diverso \u00e8 installato su una stampante a piatto mobile o aggiunto un vetro, ecc. Se vengono apportate tali modifiche, \u00e8 una buona idea misurare almeno le frequenze di ringing per vedere se sono cambiate.","title":"Frequenza di ringing"},{"location":"Resonance_Compensation.html#configurazione-del-input-shaper","text":"Dopo aver misurato le frequenze di ringing per gli assi X e Y, puoi aggiungere la seguente sezione al tuo printer.cfg : [input_shaper] shaper_freq_x: ... # frequenza per il segno X del modello di prova shaper_freq_y: ... # frequenza per il segno Y del modello di prova Per l'esempio sopra, otteniamo shaper_freq_x/y = 49.4.","title":"Configurazione del Input shaper"},{"location":"Resonance_Compensation.html#scelta-del-input-shaper","text":"Klipper supporta diversi input shaper. Si differenziano per la loro sensibilit\u00e0 agli errori che determinano la frequenza di risonanza e quanto smussamento provocano nelle parti stampate. Inoltre, alcuni degli shaper come 2HUMP_EI e 3HUMP_EI di solito non dovrebbero essere usati con shaper_freq = frequenza di risonanza: sono configurati in base a diverse considerazioni per ridurre diverse risonanze contemporaneamente. Per la maggior parte delle stampanti, possono essere consigliati shaper MZV o EI. Questa sezione descrive un processo di test per scegliere tra di loro e capire alcuni altri parametri correlati. Stampare il modello di prova di ringing come segue: Riavviare il firmware: RESTART Prepararsi per il test: SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 Disabilita la Pressure Advance: SET_PRESSURE_ADVANCE ADVANCE=0 Eseguire: SET_INPUT_SHAPER SHAPER_TYPE=MZV Eseguire il comando: TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Stampa il modello di test sliced con i parametri suggeriti. Se a questo punto non si vede alcun ringing, \u00e8 possibile consigliare l'uso dello shaper MZV. Se vedi dei ringing, rimisura le frequenze usando i passaggi (8)-(10) descritti nella sezione Frequenza ringing . Se le frequenze differiscono in modo significativo dai valori ottenuti in precedenza, \u00e8 necessaria una configurazione dello shaper di input pi\u00f9 complessa. Puoi fare riferimento ai dettagli tecnici della sezione Input shapers . In caso contrario, procedere al passaggio successivo. Ora prova l'input shaper EI. Per provarlo, ripeti i passaggi (1)-(6) da sopra, ma eseguendo invece al passaggio 4 il seguente comando : SET_INPUT_SHAPER SHAPER_TYPE=EI . Confronta due stampe con input shaper MZV e EI. Se EI mostra risultati notevolmente migliori rispetto a MZV, utilizzare EI shaper, altrimenti preferire MZV. Si noti che lo shaper EI causer\u00e0 una maggiore levigatura 'smoothing' nelle parti stampate (vedere la sezione successiva per ulteriori dettagli). Aggiungi il parametro shaper_type: mzv (o ei) alla sezione [input_shaper], ad esempio: [input_shaper] shaper_freq_x: ... shaper_freq_y: ... shaper_type: mzv Alcune note sulla scelta dello shaper: Lo shaper EI pu\u00f2 essere pi\u00f9 adatto per le stampanti a piatto mobile (se la frequenza di risonanza e il conseguente livellamento lo consentono): man mano che si deposita pi\u00f9 filamento sul piatto mobile, la massa del piatto aumenta e la frequenza di risonanza diminuisce. Poich\u00e9 lo shaper EI \u00e8 pi\u00f9 robusto alle variazioni della frequenza di risonanza, potrebbe funzionare meglio quando si stampano parti di grandi dimensioni. A causa della natura della cinematica delta, le frequenze di risonanza possono differire molto in diverse parti del volume di costruzione. Pertanto, lo shaper EI pu\u00f2 adattarsi meglio alle stampanti delta piuttosto che a MZV o ZV e dovrebbe essere considerato per l'uso. Se la frequenza di risonanza \u00e8 sufficientemente grande (pi\u00f9 di 50-60 Hz), si pu\u00f2 anche provare a testare lo shaper 2HUMP_EI (eseguendo il test suggerito sopra con SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI ), ma controllare le considerazioni nella sezione sotto prima di abilitarlo.","title":"Scelta del input shaper"},{"location":"Resonance_Compensation.html#seleziona-max_accel","text":"Dovresti avere un test stampato per lo shaper che hai scelto dal passaggio precedente (se non lo fai, stampa il modello di test affettato con i parametri suggeriti con l'anticipo di pressione disabilitato SET_PRESSURE_ADVANCE ADVANCE=0 e con la torre di regolazione abilitata come TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 ). Si noti che ad accelerazioni molto elevate, a seconda della frequenza di risonanza e dell'input shaper scelto (ad es. EI shaper crea pi\u00f9 smussamento di MZV), l'input shaping pu\u00f2 causare un'eccessiva levigatura -smoothing- e arrotondamento delle parti. Quindi, max_accel dovrebbe essere scelto in modo tale da impedirlo. Un altro parametro che pu\u00f2 influire sul livellamento \u00e8 square_corner_velocity , quindi non \u00e8 consigliabile aumentarlo al di sopra del valore predefinito di 5 mm/sec per evitare un aumento del livellamento smooting. Per selezionare un valore max_accel adatto, ispezionare il modello per lo shaper di input scelto. Per prima cosa, prendi nota a quale accelerazione il ringing \u00e8 ancora piccolo - che ti vada bene. Quindi, controlla la levigatura - smoothing. Per aiutare in questo, il modello di prova ha un piccolo spazio nel muro (0,15 mm): All'aumentare dell'accelerazione, aumenta anche la levigatura-smoothing e lo spazio effettivo nella stampa si allarga: In questa immagine, l'accelerazione aumenta da sinistra a destra e il gap inizia a crescere a partire da 3500 mm/sec^2 (quinta banda da sinistra). Quindi il buon valore per max_accel = 3000 (mm/sec^2) in questo caso per evitare l'eccessivo smoothing. Nota l'accelerazione quando lo spazio \u00e8 ancora molto piccolo nella stampa di prova. Se vedi rigonfiamenti, ma nessun vuoto nel muro, anche ad alte accelerazioni, potrebbe essere dovuto all'avanzamento della pressione disabilitato, specialmente sugli estrusori Bowden. In tal caso, potrebbe essere necessario ripetere la stampa con il PA abilitato. Potrebbe anche essere il risultato di un flusso di filamento non calibrato (troppo alto), quindi \u00e8 una buona idea controllare anche quello. Scegli il minimo tra i due valori di accelerazione (da ringing e smoothing) e inseriscilo come max_accel in printer.cfg. Come nota, pu\u00f2 succedere, specialmente a basse frequenze di ringing, che lo shaper EI provochi un'eccessiva attenuazione anche a basse accelerazioni. In questo caso, MZV potrebbe essere una scelta migliore, perch\u00e9 potrebbe consentire valori di accelerazione pi\u00f9 elevati. A frequenze di ringing molto basse (~25 Hz e inferiori) anche lo shaper MZV pu\u00f2 creare un effetto smussato eccessivo. In tal caso, puoi anche provare a ripetere i passaggi nella sezione Scegliere input shaper con shaper ZV, usando invece il comando SET_INPUT_SHAPER SHAPER_TYPE=ZV . Lo shaper ZV dovrebbe mostrare un livellamento ancora inferiore rispetto a MZV, ma \u00e8 pi\u00f9 sensibile agli errori nella misurazione delle frequenze di ringing. Un'altra considerazione \u00e8 che se una frequenza di risonanza \u00e8 troppo bassa (inferiore a 20-25 Hz), potrebbe essere una buona idea aumentare la rigidit\u00e0 della stampante o ridurre la massa in movimento. In caso contrario, l'accelerazione e la velocit\u00e0 di stampa potrebbero essere limitate a causa di un'eccessivo smoothing invece del ringing.","title":"Seleziona max_accel"},{"location":"Resonance_Compensation.html#regolazione-fine-delle-frequenze-di-risonanza","text":"Si noti che la precisione delle misurazioni delle frequenze di risonanza utilizzando il modello di test di ringing \u00e8 sufficiente per la maggior parte degli scopi, quindi si sconsiglia un'ulteriore messa a punto. Se vuoi ancora provare a ricontrollare i tuoi risultati (ad esempio se vedi ancora del ringing dopo aver stampato un modello di prova con un input shaper a tua scelta con le stesse frequenze che hai misurato in precedenza), puoi seguire i passaggi in questo sezione. Nota che se vedi ringing a frequenze diverse dopo aver abilitato [input_shaper], questa sezione non ti aiuter\u00e0. Supponendo di aver suddiviso il modello di ringing con i parametri suggeriti, completare i seguenti passaggi per ciascuno degli assi X e Y: Prepararsi per il test: SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 Assicurati che Pressure Advance sia disabilitato: SET_PRESSURE_ADVANCE ADVANCE=0 Eseguire: SET_INPUT_SHAPER SHAPER_TYPE=ZV Dal modello di prova di ringing esistente con lo shaper di input scelto, seleziona l'accelerazione che mostra sufficientemente bene il ringing e impostala con: SET_VELOCITY_LIMIT ACCEL=... Calcola i parametri necessari per il comando TUNING_TOWER per ottimizzare il parametro shaper_freq_x come segue: start = shaper_freq_x * 83 / 132 e factor = shaper_freq_x / 66, dove qui shaper_freq_x \u00e8 il valore corrente in printer.cfg . Eseguire il comando: TUNING_TOWER COMMAND=SET_INPUT_SHAPER PARAMETER=SHAPER_FREQ_X START=start FACTOR=factor BAND=5 usando i valori start e factor calcolati al punto (5). Stampa il modello di prova. Reimposta il valore della frequenza originale: SET_INPUT_SHAPER SHAPER_FREQ_X=... . Trova la fascia che mostra meno ringing e conta il suo numero dal basso partendo da 1. Calcola il nuovo valore shaper_freq_x tramite il vecchio shaper_freq_x * (39 + 5 * #band-number) / 66. Ripetere questi passaggi per l'asse Y allo stesso modo, sostituendo i riferimenti all'asse X con l'asse Y (ad es. sostituire shaper_freq_x con shaper_freq_y nelle formule e nel comando TUNING_TOWER ). Ad esempio, supponiamo di aver misurato la frequenza di ringing per uno degli assi pari a 45 Hz. Questo d\u00e0 start = 45 * 83 / 132 = 28,30 e factor = 45 / 66 = 0,6818 valori per il comando TUNING_TOWER . Supponiamo ora che dopo aver stampato il modello di prova, la quarta fascia dal basso dia il minimo squillo. Questo d\u00e0 lo shaper_freq_^ aggiornato al valore pari a 45 * (39 + 5 * 4) / 66 \u2248 40,23. Dopo aver calcolato entrambi i nuovi parametri shaper_freq_x e shaper_freq_y , puoi aggiornare la sezione [input_shaper] in printer.cfg con i nuovi valori shaper_freq_x e shaper_freq_y .","title":"Regolazione fine delle frequenze di risonanza"},{"location":"Resonance_Compensation.html#pressure-advance","text":"Se si utilizza Pressure Advance, potrebbe essere necessario risintonizzarlo. Seguire le istruzioni per trovare il nuovo valore, se diverso dal precedente. Assicurati di riavviare Klipper prima di regolare Pressure Advance.","title":"Pressure Advance"},{"location":"Resonance_Compensation.html#misurazioni-inaffidabili-delle-frequenze-di-ringing","text":"Se non \u00e8 possibile misurare le frequenze di ringing, ad es. se la distanza tra le oscillazioni non \u00e8 stabile, potresti comunque essere in grado di sfruttare le tecniche di input shaping, ma i risultati potrebbero non essere buoni come con misurazioni corrette delle frequenze e richieder\u00e0 un po' pi\u00f9 di messa a punto e stampa del test modello. Si noti che un'altra possibilit\u00e0 \u00e8 acquistare e installare un accelerometro e misurare le risonanze con esso (fare riferimento a docs che descrive l'hardware richiesto e il processo di installazione), ma questa opzione richiede un po' di crimpatura e saldatura. Per l'ottimizzazione, aggiungi la sezione [input_shaper] vuota al tuo printer.cfg . Quindi, supponendo di aver fattolo slicing il modello di ringing con i parametri suggeriti, stampare il modello di prova 3 volte come segue. La prima volta, prima della stampa, eseguire RESTART SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000 SET_PRESSURE_ADVANCE ADVANCE=0 SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=60 SHAPER_FREQ_Y=60 TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 e stampa il modello. Quindi stampare di nuovo il modello, ma prima di eseguire la stampa invece SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=50 SHAPER_FREQ_Y=50 TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Quindi stampa il modello per la terza volta, ma ora esegui SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=40 SHAPER_FREQ_Y=40 TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 In sostanza, stiamo stampando il modello di prova di ringing con TUNING_TOWER utilizzando lo shaper 2HUMP_EI con shaper_freq = 60 Hz, 50 Hz e 40 Hz. Se nessuno dei modelli mostra miglioramenti nel ringing, allora, sfortunatamente non sembra che le tecniche di modellazione dell'input possano aiutare con il tuo caso. Altrimenti, \u00e8 possibile che tutti i modelli non mostrino ringing, o alcuni mostrino ringing e altri non cos\u00ec tanto. Scegli il modello di test con la frequenza pi\u00f9 alta che mostra comunque buoni miglioramenti nel ringing. Ad esempio, se i modelli a 40 Hz e 50 Hz non mostrano quasi nessuno ringing e il modello a 60 Hz mostra gi\u00e0 un po' pi\u00f9 di ringing, attenersi a 50 Hz. Ora controlla se lo shaper EI sarebbe abbastanza buono nel tuo caso. Scegli la frequenza dello shaper EI in base alla frequenza dello shaper 2HUMP_EI che hai scelto: Per lo shaper 2HUMP_EI 60 Hz, utilizzare lo shaper EI con shaper_freq = 50 Hz. Per lo shaper 2HUMP_EI 50 Hz, utilizzare lo shaper EI con shaper_freq = 40 Hz. Per lo shaper 2HUMP_EI 40 Hz, utilizzare lo shaper EI con shaper_freq = 33 Hz. Ora stampa il modello di prova ancora una volta, eseguendola SET_INPUT_SHAPER SHAPER_TYPE=EI SHAPER_FREQ_X=... SHAPER_FREQ_Y=... TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 fornendo shaper_freq_x=... e shaper_freq_y=... come determinato in precedenza. Se lo shaper EI mostra buoni risultati comparabili con lo shaper 2HUMP_EI, attenersi con lo shaper EI e la frequenza determinata in precedenza, altrimenti utilizzare lo shaper 2HUMP_EI con la frequenza corrispondente. Aggiungi i risultati a printer.cfg come, ad es. [input_shaper] shaper_freq_x: 50 shaper_freq_y: 50 shaper_type: 2hump_ei Continua l'ottimizzazione con la sezione Selecting max_accel .","title":"Misurazioni inaffidabili delle frequenze di ringing"},{"location":"Resonance_Compensation.html#risoluzione-dei-problemi-e-domande-frequenti","text":"","title":"Risoluzione dei problemi e domande frequenti"},{"location":"Resonance_Compensation.html#non-riesco-a-ottenere-misurazioni-affidabili-delle-frequenze-di-risonanza","text":"Innanzitutto, assicurati che non ci siano altri problemi con la stampante invece del ringing. Se le misurazioni non sono affidabili perch\u00e9, ad esempio, la distanza tra le oscillazioni non \u00e8 stabile, potrebbe significare che la stampante ha pi\u00f9 frequenze di risonanza sullo stesso asse. Si pu\u00f2 provare a seguire il processo di sintonizzazione descritto nella sezione Misurazioni inaffidabili delle frequenze di ringing e ottenere comunque qualcosa dalla tecnica di modellatura dell'input. Un'altra possibilit\u00e0 \u00e8 installare un accelerometro, misurare le risonanze con esso e regolare automaticamente lo shaper di input utilizzando i risultati di tali misurazioni.","title":"Non riesco a ottenere misurazioni affidabili delle frequenze di risonanza"},{"location":"Resonance_Compensation.html#dopo-aver-abilitato-input_shaper-ottengo-parti-stampate-troppo-levigate-e-i-dettagli-fini-vengono-persi","text":"Controllare le considerazioni nella sezione Selecting max_accel . Se la frequenza di risonanza \u00e8 bassa, non si dovrebbero impostare max_accel troppo alti o aumentare i parametri square_corner_velocity. Potrebbe anche essere meglio scegliere gli shaper di input MZV o anche ZV su EI (o gli shaper 2HUMP_EI e 3HUMP_EI).","title":"Dopo aver abilitato [input_shaper], ottengo parti stampate troppo levigate e i dettagli fini vengono persi"},{"location":"Resonance_Compensation.html#dopo-aver-stampato-correttamente-per-un-po-di-tempo-senza-ringing-sembra-tornare","text":"\u00c8 possibile che dopo qualche tempo le frequenze di risonanza siano cambiate. Per esempio. forse la tensione delle cinghie \u00e8 cambiata (le cinghie si sono allentate di pi\u00f9), ecc. \u00c8 una buona idea controllare e rimisurare le frequenze di ringing come descritto nella sezione Frequenza di ringing e aggiornare il file di configurazione se necessario .","title":"Dopo aver stampato correttamente per un po' di tempo senza ringing, sembra tornare"},{"location":"Resonance_Compensation.html#la-configurazione-a-doppio-carrello-e-supportata-con-gli-input-shaper","text":"Non esiste un supporto dedicato per doppi carrelli con input shaper, ma ci\u00f2 non significa che questa configurazione non funzioner\u00e0. Si dovrebbe eseguire la messa a punto due volte per ciascuno dei carrelli e calcolare le frequenze di ringing per gli assi X e Y per ciascuno dei carrelli in modo indipendente. Quindi inserisci i valori per il carrello 0 nella sezione [input_shaper] e modifica i valori al volo quando si cambiano i carrelli, ad es. come parte di alcune macro: SET_DUAL_CARRIAGE CARRIAGE=1 SET_INPUT_SHAPER SHAPER_FREQ_X=... SHAPER_FREQ_Y=... E allo stesso modo quando si torna al carrello 0.","title":"La configurazione a doppio carrello \u00e8 supportata con gli input shaper?"},{"location":"Resonance_Compensation.html#linput_shaper-influisce-sul-tempo-di-stampa","text":"No, la funzione input_shaper non ha praticamente alcun impatto sui tempi di stampa da sola. Tuttavia, il valore di max_accel lo fa certamente (regolazione di questo parametro descritta in questa sezione ).","title":"L'input_shaper influisce sul tempo di stampa?"},{"location":"Resonance_Compensation.html#dettagli-tecnici","text":"","title":"Dettagli tecnici"},{"location":"Resonance_Compensation.html#input-shaper","text":"Gli shaper di input utilizzati in Klipper sono piuttosto standard e si pu\u00f2 trovare una panoramica pi\u00f9 approfondita negli articoli che descrivono gli shaper corrispondenti. Questa sezione contiene una breve panoramica di alcuni aspetti tecnici degli input shaper supportati. La tabella seguente mostra alcuni parametri (solitamente approssimativi) di ciascun shaper. Input shaper Shaper duration Riduzione delle vibrazioni 20x (5% di tolleranza alle vibrazioni) Riduzione delle vibrazioni 10 volte (tolleranza alle vibrazioni del 10%) ZV 0.5 / shaper_freq N/A \u00b1 5% shaper_freq MZV 0.75 / shaper_freq \u00b1 4% shaper_freq -10%...+15% shaper_freq ZVD 1 / shaper_freq \u00b1 15% shaper_freq \u00b1 22% shaper_freq EI 1 / shaper_freq \u00b1 20% shaper_freq \u00b1 25% shaper_freq 2HUMP_EI 1.5 / shaper_freq \u00b1 35% shaper_freq \u00b1 40 shaper_freq 3HUMP_EI 2 / shaper_freq -45...+50% shaper_freq -50%...+55% shaper_freq Una nota sulla riduzione delle vibrazioni: i valori nella tabella sopra sono approssimativi. Se il rapporto di smorzamento della stampante \u00e8 noto per ciascun asse, lo shaper pu\u00f2 essere configurato in modo pi\u00f9 preciso e ridurr\u00e0 quindi le risonanze in una gamma di frequenze leggermente pi\u00f9 ampia. Tuttavia, il rapporto di smorzamento \u00e8 solitamente sconosciuto ed \u00e8 difficile da stimare senza un'attrezzatura speciale, quindi Klipper utilizza il valore 0,1 per impostazione predefinita, che \u00e8 un buon valore a tutto tondo. Le gamme di frequenza nella tabella coprono un numero di diversi possibili rapporti di smorzamento attorno a quel valore (da 0,05 a 0,2 circa). Si noti inoltre che EI, 2HUMP_EI e 3HUMP_EI sono sintonizzati per ridurre le vibrazioni al 5%, quindi i valori per la tolleranza alle vibrazioni del 10% sono forniti solo per riferimento. Come utilizzare questa tabella: La durata dello shaper influisce sull0 smoothing delle parti: pi\u00f9 \u00e8 grande, pi\u00f9 le parti sono lisce. Questa dipendenza non \u00e8 lineare, ma pu\u00f2 dare un'idea di quali shaper \"levigano\" di pi\u00f9 per la stessa frequenza. L'ordinamento per smoothing \u00e8 il seguente: ZV < MZV < ZVD \u2248 EI < 2HUMP_EI < 3HUMP_EI. Inoltre, raramente \u00e8 pratico impostare shaper_freq = resonance freq per gli shaper 2HUMP_EI e 3HUMP_EI (dovrebbero essere usati per ridurre le vibrazioni per diverse frequenze). Si pu\u00f2 stimare una gamma di frequenze in cui lo shaper riduce le vibrazioni. Ad esempio, MZV con shaper_freq = 35 Hz riduce le vibrazioni al 5% per le frequenze [33,6, 36,4] Hz. 3HUMP_EI con shaper_freq = 50 Hz riduce le vibrazioni al 5% nell'intervallo [27,5, 75] Hz. Si pu\u00f2 usare questa tabella per verificare quale shaper dovrebbero usare se hanno bisogno di ridurre le vibrazioni a diverse frequenze. Ad esempio, se si hanno risonanze a 35 Hz e 60 Hz sullo stesso asse: a) EI shaper deve avere shaper_freq = 35 / (1 - 0,2) = 43,75 Hz, e ridurr\u00e0 le risonanze fino a 43,75 * (1 + 0,2 ) = 52,5 Hz, quindi non \u00e8 sufficiente; b) 2HUMP_EI shaper deve avere shaper_freq = 35 / (1 - 0,35) = 53,85 Hz e ridurr\u00e0 le vibrazioni fino a 53,85 * (1 + 0,35) = 72,7 Hz - quindi questa \u00e8 una configurazione accettabile. Cerca sempre di usare shaper_freq il pi\u00f9 alto possibile per un dato shaper (magari con un certo margine di sicurezza, quindi in questo esempio shaper_freq \u2248 50-52 Hz funzionerebbe meglio), e prova a usare uno shaper con la minor durata possibile dello shaper. Se \u00e8 necessario ridurre le vibrazioni a diverse frequenze molto diverse (ad esempio, 30 Hz e 100 Hz), \u00e8 possibile che la tabella sopra non fornisca informazioni sufficienti. In questo caso si pu\u00f2 avere pi\u00f9 fortuna con lo script scripts/graph_shaper.py , che \u00e8 pi\u00f9 flessibile.","title":"Input shaper"},{"location":"Rotation_Distance.html","text":"Rotation distance \u00b6 I driver per motori passo-passo su Klipper richiedono un parametro rotation_distance in ciascuna stepper config section . La distanza_rotazione \u00e8 la distanza percorsa dall'asse con un giro completo del motore passo-passo relativo. Questo documento descrive come configurare questo valore. Ottenere rotation_distance da steps_per_mm (o step_distance) \u00b6 I progettisti della tua stampante 3d hanno originariamente calcolato steps_per_mm da una distanza di rotazione. Se conosci i passi_per_mm, \u00e8 possibile utilizzare questa formula generale per ottenere la distanza di rotazione originale: rotation_distance = <passi_completi_per_rotazione> * <micropassi> / <passi_per_mm> Oppure, se hai una configurazione di Klipper precedente e conosci il parametro step_distance puoi usare questa formula: rotation_distance = <passi_completi_per_rotazione> * <micropassi> * <distanza_passo> L'impostazione <full_steps_per_rotation> \u00e8 determinata dal tipo di motore passo-passo. La maggior parte dei motori passo-passo sono \"passi passo a 1,8 gradi\" e quindi hanno 200 passi completi per rotazione (360 diviso 1,8 fa 200). Alcuni motori passo passo sono \"passo passo a 0,9 gradi\" e quindi hanno 400 passi completi per rotazione. Altri motori passo-passo sono rari. In caso di dubbi, non impostare full_steps_per_rotation nel file di configurazione e utilizzare 200 nella formula sopra. L'impostazione <microsteps> \u00e8 determinata dal driver del motore passo-passo. La maggior parte dei driver utilizza 16 micropassi. Se non sei sicuro, imposta microsteps: 16 nella configurazione e usa 16 nella formula sopra. Quasi tutte le stampanti dovrebbero avere un numero intero per rotation_distance sugli assi di tipo X, Y e Z. Se la formula precedente risulta in una distanza_rotazione che \u00e8 entro .01 da un numero intero, arrotonda il valore finale a quel numero_intero. Calibrazione rotation_distance sugli estrusori \u00b6 Su un estrusore, la rotation_distance \u00e8 la distanza percorsa dal filamento per una rotazione completa del motore passo-passo. Il modo migliore per ottenere un valore accurato per questa impostazione \u00e8 utilizzare una procedura di \"misura e ritaglio\". Innanzitutto inizia con un'ipotesi iniziale per la distanza di rotazione. Questo pu\u00f2 essere ottenuto da steps_per_mm o ispezionando l'hardware . Quindi utilizzare la seguente procedura per \"misurare e tagliare\": Assicurati che l'estrusore contenga del filamento, che l'hotend sia riscaldato a una temperatura appropriata e che la stampante sia pronta per l'estrusione. Utilizzare un pennarello per posizionare un segno sul filamento a circa 70 mm dall'ingresso del corpo dell'estrusore. Quindi usa un calibro digitale per misurare la distanza effettiva di quel segno nel modo pi\u00f9 preciso possibile. Nota questo come <initial_mark_distance> . Estrudere 50 mm di filamento con la seguente sequenza di comandi: G91 seguito da G1 E50 F60 . Nota 50 mm come <distanza_estrusione_richiesta> . Attendi che l'estrusore finisca il movimento (ci vorranno circa 50 secondi). \u00c8 importante utilizzare la velocit\u00e0 di estrusione lenta per questo test poich\u00e9 una velocit\u00e0 pi\u00f9 elevata pu\u00f2 causare una pressione elevata nell'estrusore che distorce i risultati. (Non utilizzare il \"pulsante estrudi\" sui front-end grafici per questo test poich\u00e9 si estrudono a una velocit\u00e0 elevata.) Utilizzare un calibro digitale per misurare la nuova distanza tra il corpo dell'estrusore e il segno sul filamento. Annota questa come <subsequent_mark_distance> . Quindi calcola: actual_extrude_distance = <initial_mark_distance> - <subsequent_mark_distance> Calcola rotation_distance come: rotation_distance = <rotation_distance_precedente> * <actual_extrude_distance> / <requested_extrude_distance> Arrotonda la nuova rotation_distance a tre cifre decimali. Se la distanza_di_estrusione effettiva differisce dalla distanza_di_estrusione richiesta di oltre 2 mm circa, \u00e8 una buona idea eseguire i passaggi precedenti una seconda volta. Nota: non utilizzare un metodo di tipo \"misura e ritaglia\" per calibrare gli assi di tipo x, y o z. Il metodo \"misura e taglia\" non \u00e8 sufficientemente accurato per quegli assi e probabilmente porter\u00e0 a una configurazione peggiore. Invece, se necessario, quegli assi possono essere determinati measuring the belts, pulleys, and lead screw hardware . Ottenere la rotation_distance ispezionando l'hardware \u00b6 E' possibile calcolare rotation_distance conoscendo i motori passo-passo e la cinematica della stampante. Questo pu\u00f2 essere utile se i passi_per_mm non sono noti o se si sta progettando una nuova stampante. Assi con trasmissione a cinghia \u00b6 \u00c8 facile calcolare rotation_distance per un asse lineare che utilizza una cinghia e una puleggia. Per prima cosa determinare il tipo di cinghia. La maggior parte delle stampanti utilizza un passo della cinghia di 2 mm (ovvero, ogni dente sulla cinghia \u00e8 a 2 mm di distanza). Quindi contare il numero di denti sulla puleggia del motore passo-passo. La distanza_rotazione viene quindi calcolata come: rotation_distance = <passo_cinghia> * <numero_di_denti_sulla_puleggia> Ad esempio, se una stampante ha una cinghia da 2 mm e utilizza una puleggia con 20 denti, la distanza di rotazione \u00e8 40. Assi con vite di comando \u00b6 \u00c8 facile calcolare la rotation_distance per le comuni viti di trasmissione utilizzando la seguente formula: rotation_distance = <passo_vite> * <numero_di_filetti_separati> Ad esempio, la comune \"madrevite T8\" ha una rotation distance di 8 (ha un passo di 2 mm e ha 4 filetti separati). Le stampanti pi\u00f9 vecchie con \"barre filettate\" hanno un solo \"filo\" sulla vite di comando e quindi la rotation distance \u00e8 il passo della vite. (Il passo della vite \u00e8 la distanza tra ciascuna scanalatura sulla vite.) Quindi, ad esempio, un'asta metrica M6 ha una rotation distance di 1 e un'asta M8 ha una rotation distance di 1,25. Estrusore \u00b6 \u00c8 possibile ottenere una distanza di rotazione iniziale per gli estrusori misurando il diametro del \"bullone dentato\" che spinge il filamento e utilizzando la seguente formula: rotation_distance = <diametro> * 3.14 Se l'estrusore utilizza ingranaggi, sar\u00e0 anche necessario determinare e impostare gear_ratio per l'estrusore. La rotation distance effettiva su un estrusore varier\u00e0 da stampante a stampante, perch\u00e9 la presa del \"bullone dentato\" che impegna il filamento pu\u00f2 variare. Pu\u00f2 anche variare tra le bobine di filamento. Dopo aver ottenuto una rotation distance iniziale, utilizzare la procedura di misurazione e ritaglio per ottenere un'impostazione pi\u00f9 accurata. Usando un gear_ratio \u00b6 L'impostazione di un gear_ratio pu\u00f2 semplificare la configurazione di rotation_distance su stepper a cui \u00e8 collegato un gear box (o simile). La maggior parte degli stepper non ha un gear box - se non sei sicuro, non impostare gear_ratio nella configurazione. Quando gear_ratio \u00e8 impostato, rotation_distance rappresenta la distanza percorsa dall'asse con una rotazione completa dell'ingranaggio finale sulla scatola ingranaggi. Se, ad esempio, si utilizza un riduttore con un rapporto \"5:1\", \u00e8 possibile calcolare la distanza_rotazione con conoscenza dell'hardware e quindi aggiungere gear_ratio: 5:1 alla configurazione. Per gli ingranaggi realizzati con cinghie e pulegge, \u00e8 possibile determinare il gear_ratio contando i denti sulle pulegge. Ad esempio, se uno stepper con una puleggia a 16 denti guida la puleggia successiva con 80 denti, si utilizzer\u00e0 gear_ratio: 80:16 . In effetti, si potrebbe aprire una comune \"scatola del cambio\" pronta all'uso e contare i denti al suo interno per confermare il suo rapporto di trasmissione. Si noti che a volte un gear-box avr\u00e0 un rapporto di trasmissione leggermente diverso da quello in cui \u00e8 pubblicizzato. I comuni ingranaggi del motore dell'estrusore BMG ne sono un esempio: sono pubblicizzati come \"3:1\" ma in realt\u00e0 utilizzano ingranaggi \"50:17\". (L'uso di numeri di denti senza un denominatore comune pu\u00f2 migliorare l'usura complessiva degli ingranaggi poich\u00e9 i denti non sempre ingranano allo stesso modo ad ogni giro.) Il comune \"riduttore epicicloidale 5.18:1\" \u00e8 configurato in modo pi\u00f9 accurato con gear_ratio: 57:11 . Se su un asse vengono utilizzati pi\u00f9 ingranaggi, \u00e8 possibile fornire un elenco separato da virgole nel gear_ratio. Ad esempio, un cambio \"5:1\" che guida una puleggia da 16 a 80 denti potrebbe utilizzare gear_ratio: 5:1, 80:16 . Nella maggior parte dei casi, gear_ratio dovrebbe essere definito con numeri interi poich\u00e9 ingranaggi e pulegge comuni hanno un numero intero di denti su di essi. Tuttavia, nei casi in cui una cinghia aziona una puleggia usando l'attrito invece dei denti, pu\u00f2 avere senso utilizzare un numero in virgola mobile nel rapporto di trasmissione (ad esempio, gear_ratio: 107.237:16 ).","title":"Rotation distance"},{"location":"Rotation_Distance.html#rotation-distance","text":"I driver per motori passo-passo su Klipper richiedono un parametro rotation_distance in ciascuna stepper config section . La distanza_rotazione \u00e8 la distanza percorsa dall'asse con un giro completo del motore passo-passo relativo. Questo documento descrive come configurare questo valore.","title":"Rotation distance"},{"location":"Rotation_Distance.html#ottenere-rotation_distance-da-steps_per_mm-o-step_distance","text":"I progettisti della tua stampante 3d hanno originariamente calcolato steps_per_mm da una distanza di rotazione. Se conosci i passi_per_mm, \u00e8 possibile utilizzare questa formula generale per ottenere la distanza di rotazione originale: rotation_distance = <passi_completi_per_rotazione> * <micropassi> / <passi_per_mm> Oppure, se hai una configurazione di Klipper precedente e conosci il parametro step_distance puoi usare questa formula: rotation_distance = <passi_completi_per_rotazione> * <micropassi> * <distanza_passo> L'impostazione <full_steps_per_rotation> \u00e8 determinata dal tipo di motore passo-passo. La maggior parte dei motori passo-passo sono \"passi passo a 1,8 gradi\" e quindi hanno 200 passi completi per rotazione (360 diviso 1,8 fa 200). Alcuni motori passo passo sono \"passo passo a 0,9 gradi\" e quindi hanno 400 passi completi per rotazione. Altri motori passo-passo sono rari. In caso di dubbi, non impostare full_steps_per_rotation nel file di configurazione e utilizzare 200 nella formula sopra. L'impostazione <microsteps> \u00e8 determinata dal driver del motore passo-passo. La maggior parte dei driver utilizza 16 micropassi. Se non sei sicuro, imposta microsteps: 16 nella configurazione e usa 16 nella formula sopra. Quasi tutte le stampanti dovrebbero avere un numero intero per rotation_distance sugli assi di tipo X, Y e Z. Se la formula precedente risulta in una distanza_rotazione che \u00e8 entro .01 da un numero intero, arrotonda il valore finale a quel numero_intero.","title":"Ottenere rotation_distance da steps_per_mm (o step_distance)"},{"location":"Rotation_Distance.html#calibrazione-rotation_distance-sugli-estrusori","text":"Su un estrusore, la rotation_distance \u00e8 la distanza percorsa dal filamento per una rotazione completa del motore passo-passo. Il modo migliore per ottenere un valore accurato per questa impostazione \u00e8 utilizzare una procedura di \"misura e ritaglio\". Innanzitutto inizia con un'ipotesi iniziale per la distanza di rotazione. Questo pu\u00f2 essere ottenuto da steps_per_mm o ispezionando l'hardware . Quindi utilizzare la seguente procedura per \"misurare e tagliare\": Assicurati che l'estrusore contenga del filamento, che l'hotend sia riscaldato a una temperatura appropriata e che la stampante sia pronta per l'estrusione. Utilizzare un pennarello per posizionare un segno sul filamento a circa 70 mm dall'ingresso del corpo dell'estrusore. Quindi usa un calibro digitale per misurare la distanza effettiva di quel segno nel modo pi\u00f9 preciso possibile. Nota questo come <initial_mark_distance> . Estrudere 50 mm di filamento con la seguente sequenza di comandi: G91 seguito da G1 E50 F60 . Nota 50 mm come <distanza_estrusione_richiesta> . Attendi che l'estrusore finisca il movimento (ci vorranno circa 50 secondi). \u00c8 importante utilizzare la velocit\u00e0 di estrusione lenta per questo test poich\u00e9 una velocit\u00e0 pi\u00f9 elevata pu\u00f2 causare una pressione elevata nell'estrusore che distorce i risultati. (Non utilizzare il \"pulsante estrudi\" sui front-end grafici per questo test poich\u00e9 si estrudono a una velocit\u00e0 elevata.) Utilizzare un calibro digitale per misurare la nuova distanza tra il corpo dell'estrusore e il segno sul filamento. Annota questa come <subsequent_mark_distance> . Quindi calcola: actual_extrude_distance = <initial_mark_distance> - <subsequent_mark_distance> Calcola rotation_distance come: rotation_distance = <rotation_distance_precedente> * <actual_extrude_distance> / <requested_extrude_distance> Arrotonda la nuova rotation_distance a tre cifre decimali. Se la distanza_di_estrusione effettiva differisce dalla distanza_di_estrusione richiesta di oltre 2 mm circa, \u00e8 una buona idea eseguire i passaggi precedenti una seconda volta. Nota: non utilizzare un metodo di tipo \"misura e ritaglia\" per calibrare gli assi di tipo x, y o z. Il metodo \"misura e taglia\" non \u00e8 sufficientemente accurato per quegli assi e probabilmente porter\u00e0 a una configurazione peggiore. Invece, se necessario, quegli assi possono essere determinati measuring the belts, pulleys, and lead screw hardware .","title":"Calibrazione rotation_distance sugli estrusori"},{"location":"Rotation_Distance.html#ottenere-la-rotation_distance-ispezionando-lhardware","text":"E' possibile calcolare rotation_distance conoscendo i motori passo-passo e la cinematica della stampante. Questo pu\u00f2 essere utile se i passi_per_mm non sono noti o se si sta progettando una nuova stampante.","title":"Ottenere la rotation_distance ispezionando l'hardware"},{"location":"Rotation_Distance.html#assi-con-trasmissione-a-cinghia","text":"\u00c8 facile calcolare rotation_distance per un asse lineare che utilizza una cinghia e una puleggia. Per prima cosa determinare il tipo di cinghia. La maggior parte delle stampanti utilizza un passo della cinghia di 2 mm (ovvero, ogni dente sulla cinghia \u00e8 a 2 mm di distanza). Quindi contare il numero di denti sulla puleggia del motore passo-passo. La distanza_rotazione viene quindi calcolata come: rotation_distance = <passo_cinghia> * <numero_di_denti_sulla_puleggia> Ad esempio, se una stampante ha una cinghia da 2 mm e utilizza una puleggia con 20 denti, la distanza di rotazione \u00e8 40.","title":"Assi con trasmissione a cinghia"},{"location":"Rotation_Distance.html#assi-con-vite-di-comando","text":"\u00c8 facile calcolare la rotation_distance per le comuni viti di trasmissione utilizzando la seguente formula: rotation_distance = <passo_vite> * <numero_di_filetti_separati> Ad esempio, la comune \"madrevite T8\" ha una rotation distance di 8 (ha un passo di 2 mm e ha 4 filetti separati). Le stampanti pi\u00f9 vecchie con \"barre filettate\" hanno un solo \"filo\" sulla vite di comando e quindi la rotation distance \u00e8 il passo della vite. (Il passo della vite \u00e8 la distanza tra ciascuna scanalatura sulla vite.) Quindi, ad esempio, un'asta metrica M6 ha una rotation distance di 1 e un'asta M8 ha una rotation distance di 1,25.","title":"Assi con vite di comando"},{"location":"Rotation_Distance.html#estrusore","text":"\u00c8 possibile ottenere una distanza di rotazione iniziale per gli estrusori misurando il diametro del \"bullone dentato\" che spinge il filamento e utilizzando la seguente formula: rotation_distance = <diametro> * 3.14 Se l'estrusore utilizza ingranaggi, sar\u00e0 anche necessario determinare e impostare gear_ratio per l'estrusore. La rotation distance effettiva su un estrusore varier\u00e0 da stampante a stampante, perch\u00e9 la presa del \"bullone dentato\" che impegna il filamento pu\u00f2 variare. Pu\u00f2 anche variare tra le bobine di filamento. Dopo aver ottenuto una rotation distance iniziale, utilizzare la procedura di misurazione e ritaglio per ottenere un'impostazione pi\u00f9 accurata.","title":"Estrusore"},{"location":"Rotation_Distance.html#usando-un-gear_ratio","text":"L'impostazione di un gear_ratio pu\u00f2 semplificare la configurazione di rotation_distance su stepper a cui \u00e8 collegato un gear box (o simile). La maggior parte degli stepper non ha un gear box - se non sei sicuro, non impostare gear_ratio nella configurazione. Quando gear_ratio \u00e8 impostato, rotation_distance rappresenta la distanza percorsa dall'asse con una rotazione completa dell'ingranaggio finale sulla scatola ingranaggi. Se, ad esempio, si utilizza un riduttore con un rapporto \"5:1\", \u00e8 possibile calcolare la distanza_rotazione con conoscenza dell'hardware e quindi aggiungere gear_ratio: 5:1 alla configurazione. Per gli ingranaggi realizzati con cinghie e pulegge, \u00e8 possibile determinare il gear_ratio contando i denti sulle pulegge. Ad esempio, se uno stepper con una puleggia a 16 denti guida la puleggia successiva con 80 denti, si utilizzer\u00e0 gear_ratio: 80:16 . In effetti, si potrebbe aprire una comune \"scatola del cambio\" pronta all'uso e contare i denti al suo interno per confermare il suo rapporto di trasmissione. Si noti che a volte un gear-box avr\u00e0 un rapporto di trasmissione leggermente diverso da quello in cui \u00e8 pubblicizzato. I comuni ingranaggi del motore dell'estrusore BMG ne sono un esempio: sono pubblicizzati come \"3:1\" ma in realt\u00e0 utilizzano ingranaggi \"50:17\". (L'uso di numeri di denti senza un denominatore comune pu\u00f2 migliorare l'usura complessiva degli ingranaggi poich\u00e9 i denti non sempre ingranano allo stesso modo ad ogni giro.) Il comune \"riduttore epicicloidale 5.18:1\" \u00e8 configurato in modo pi\u00f9 accurato con gear_ratio: 57:11 . Se su un asse vengono utilizzati pi\u00f9 ingranaggi, \u00e8 possibile fornire un elenco separato da virgole nel gear_ratio. Ad esempio, un cambio \"5:1\" che guida una puleggia da 16 a 80 denti potrebbe utilizzare gear_ratio: 5:1, 80:16 . Nella maggior parte dei casi, gear_ratio dovrebbe essere definito con numeri interi poich\u00e9 ingranaggi e pulegge comuni hanno un numero intero di denti su di essi. Tuttavia, nei casi in cui una cinghia aziona una puleggia usando l'attrito invece dei denti, pu\u00f2 avere senso utilizzare un numero in virgola mobile nel rapporto di trasmissione (ad esempio, gear_ratio: 107.237:16 ).","title":"Usando un gear_ratio"},{"location":"SDCard_Updates.html","text":"Aggiornamenti scheda SD \u00b6 Molte delle schede controller oggi popolari vengono fornite con un bootloader in grado di aggiornare il firmware tramite scheda SD. Sebbene ci\u00f2 sia conveniente in molte circostanze, questi bootloader in genere non forniscono altro modo per aggiornare il firmware. Questo pu\u00f2 essere un fastidio se la tua scheda \u00e8 montata in una posizione di difficile accesso o se devi aggiornare spesso il firmware. Dopo che Klipper \u00e8 stato inizialmente flashato su un controller, \u00e8 possibile trasferire il nuovo firmware sulla scheda SD e avviare la procedura di flashing tramite ssh. Procedura di aggiornamento tipica \u00b6 La procedura per aggiornare il firmware dell'MCU utilizzando la scheda SD \u00e8 simile a quella di altri metodi. Invece di usare make flash \u00e8 necessario eseguire uno script di supporto, flash-sdcard.sh . L'aggiornamento di un BigTreeTech SKR 1.3 potrebbe essere simile al seguente: sudo service klipper stop cd ~/klipper git pull make clean make menuconfig make ./scripts/flash-sdcard.sh /dev/ttyACM0 btt-skr-v1.3 sudo service klipper start Spetta all'utente determinare la posizione del dispositivo e il nome della scheda. Se un utente ha bisogno di eseguire il flashing di pi\u00f9 schede, flash-sdcard.sh (o make flash se appropriato) dovrebbe essere eseguito per ciascuna scheda prima di riavviare il servizio Klipper. Le schede supportate possono essere elencate con il seguente comando: ./scripts/flash-sdcard.sh -l Se non vedi la tua scheda elencata, potrebbe essere necessario aggiungere una nuova definizione di scheda come descritto di seguito . Utilizzo avanzato \u00b6 I comandi precedenti presuppongono che l'MCU si connetta alla velocit\u00e0 di trasmissione predefinita di 250000 e che il firmware si trovi in ~/klipper/out/klipper.bin . Lo script flash-sdcard.sh fornisce opzioni per modificare queste impostazioni predefinite. Tutte le opzioni possono essere visualizzate dalla schermata della guida: ./scripts/flash-sdcard.sh -h SD Card upload utility for Klipper usage: flash_sdcard.sh [-h] [-l] [-c] [-b <baud>] [-f <firmware>] <device> <board> positional arguments: <device> device serial port <board> board type optional arguments: -h show this message -l list available boards -c run flash check/verify only (skip upload) -b <baud> serial baud rate (default is 250000) -f <firmware> path to klipper.bin Se la tua scheda \u00e8 stata flashata con un firmware che si connette a un baud rate personalizzato, \u00e8 possibile eseguire l'aggiornamento specificando l'opzione -b : ./scripts/flash-sdcard.sh -b 115200 /dev/ttyAMA0 btt-skr-v1.3 Se desideri eseguire il flashing di una build di Klipper situata in un luogo diverso da quello predefinito, puoi farlo specificando l'opzione -f : ./scripts/flash-sdcard.sh -f ~/downloads/klipper.bin /dev/ttyAMA0 btt-skr-v1.3 Nota che quando si aggiorna un MKS Robin E3 non \u00e8 necessario eseguire manualmente update_mks_robin.py e fornire il binario risultante a flash-sdcard.sh . Questa procedura \u00e8 automatizzata durante il processo di caricamento. L'opzione -c viene utilizzata per eseguire un controllo o un'operazione di sola verifica per testare se la scheda esegue correttamente il firmware specificato. Questa opzione \u00e8 destinata principalmente ai casi in cui \u00e8 necessario un ciclo di alimentazione manuale per completare la procedura di flashing, ad esempio con i bootloader che utilizzano la modalit\u00e0 SDIO anzich\u00e9 SPI per accedere alle proprie schede SD. (Vedi avvertenze di seguito) Ma pu\u00f2 anche essere utilizzato in qualsiasi momento per verificare se il codice visualizzato nella scheda corrisponde alla versione nella cartella build su qualsiasi scheda supportata. Avvertenze \u00b6 Come accennato nell'introduzione, questo metodo funziona solo per l'aggiornamento del firmware. La procedura di flashing iniziale deve essere eseguita manualmente secondo le istruzioni che si applicano alla scheda del controller. Sebbene sia possibile eseguire il flashing di una build che modifica il baud seriale o l'interfaccia di connessione (ad esempio: da USB a UART), la verifica avr\u00e0 sempre esito negativo poich\u00e9 lo script non sar\u00e0 in grado di riconnettersi all'MCU per verificare la versione corrente. Sono supportate solo le schede che utilizzano SPI per la comunicazione con scheda SD. Le schede che utilizzano SDIO, come Flymaker Flyboard e MKS Robin Nano V1/V2, non funzioneranno in modalit\u00e0 SDIO. Tuttavia, di solito \u00e8 possibile eseguire il flashing di tali schede utilizzando invece la modalit\u00e0 Software SPI. Ma se il bootloader della scheda utilizza solo la modalit\u00e0 SDIO per accedere alla scheda SD, sar\u00e0 necessario un ciclo di alimentazione della scheda e della scheda SD in modo che la modalit\u00e0 possa tornare da SPI a SDIO per completare il reflashing. Tali schede dovrebbero essere definite con skip_verify abilitato per saltare il passaggio di verifica immediatamente dopo il flashing. Quindi, dopo il ciclo di spegnimento manuale, \u00e8 possibile eseguire nuovamente lo stesso identico comando ./scripts/flash-sdcard.sh , ma aggiungere l'opzione -c per completare l'operazione di controllo/verifica. Vedere Flashing Boards that use SDIO per esempi. Definizioni della scheda \u00b6 Dovrebbero essere disponibili le schede pi\u00f9 comuni, tuttavia \u00e8 possibile aggiungere una nuova definizione di scheda, se necessario. Le definizioni delle schede si trovano in ~/klipper/scripts/spi_flash/board_defs.py . Le definizioni sono memorizzate nel dizionario, ad esempio: BOARD_DEFS = { 'generic-lpc1768' : { 'mcu' : \"lpc1768\" , 'spi_bus' : \"ssp1\" , \"cs_pin\" : \"P0.6\" }, ...< further definitions > } Possono essere specificati i seguenti campi: mcu : il tipo di mcu. Questo pu\u00f2 essere recuperato dopo aver configurato la build tramite make menuconfig eseguendo cat .config | grep CONFIG_MCU . Questo campo \u00e8 obbligatorio. spi_bus : il bus SPI collegato alla scheda SD. Questo dovrebbe essere recuperato dallo schema della scheda. Questo campo \u00e8 obbligatorio. cs_pin : il pin di selezione del chip collegato alla scheda SD. Questo dovrebbe essere recuperato dallo schema della scheda. Questo campo \u00e8 obbligatorio. firmware_path : il percorso sulla scheda SD in cui trasferire il firmware. L'impostazione predefinita \u00e8 firmware.bin . current_firmware_path : il percorso sulla scheda SD in cui si trova il file del firmware rinominato dopo un flash riuscito. L'impostazione predefinita \u00e8 'firmware.cur'. skip_verify : Definisce un valore booleano che dice agli script di saltare il passaggio di verifica del firmware durante il processo di flashing. L'impostazione predefinita \u00e8 False . Pu\u00f2 essere impostato su True per le schede che richiedono un ciclo di alimentazione manuale per completare il flashing. Per verificare il firmware in seguito, eseguire nuovamente lo script con l'opzione -c per eseguire lo step di verifica. Vedi le avvertenze con le schede SDIO Se \u00e8 richiesto il software SPI, il campo spi_bus deve essere impostato su swspi e deve essere specificato il seguente campo aggiuntivo: spi_pins : Dovrebbero essere 3 pin separati da virgola che sono collegati alla scheda SD nel formato miso,mosi,sclk`. Dovrebbe essere estremamente raro che sia necessario Software SPI, in genere solo le schede con errori di progettazione o le schede che normalmente supportano solo la modalit\u00e0 SDIO per la loro scheda SD lo richiederanno. La definizione della scheda btt-skr-pro fornisce un esempio della prima, e la definizione della scheda btt-octopus-f446-v1 fornisce un esempio della seconda. Prima di creare una nuova definizione di scheda, \u00e8 necessario verificare se una definizione di scheda esistente soddisfa i criteri necessari per la nuova scheda. Se questo \u00e8 il caso, pu\u00f2 essere specificato un BOARD_ALIAS . Ad esempio, \u00e8 possibile aggiungere il seguente alias per specificare my-new-board come alias per generic-lpc1768 : BOARD_ALIASES = { ...< previous aliases > , 'my-new-board' : BOARD_DEFS [ 'generic-lpc1768' ], } Se hai bisogno di una nuova definizione di scheda e ti senti a disagio con la procedura descritta sopra, ti consigliamo di rivolgerti a Klipper Community Discord . Flashing di schede che utilizzano SDIO \u00b6 Come menzionato nelle avvertenze , le schede il cui bootloader utilizza la modalit\u00e0 SDIO per accedere alla scheda SD richiedono un ciclo di alimentazione della scheda, e in particolare della scheda SD stessa, per passare dalla modalit\u00e0 SPI utilizzata durante la scrittura il file sulla scheda SD di nuovo in modalit\u00e0 SDIO affinch\u00e9 il bootloader lo inserisca nella scheda. Queste definizioni della scheda utilizzeranno il flag skip_verify , che indica allo strumento di flashing di interrompersi dopo aver scritto il firmware sulla scheda SD in modo che la scheda possa essere spenta e riaccesa manualmente e il passaggio di verifica posticipato fino al completamento. Esistono due scenari -- uno con l'host RPi in esecuzione su un alimentatore separato e l'altro quando l'host RPi \u00e8 in esecuzione con lo stesso alimentatore della scheda principale sottoposta a flashing. La differenza \u00e8 se \u00e8 necessario o meno spegnere anche l'RPi e quindi ssh di nuovo dopo che il flashing \u00e8 completo per eseguire il passaggio di verifica, o se la verifica pu\u00f2 essere eseguita immediatamente. Ecco alcuni esempi dei due scenari: Programmazione SDIO con RPi su alimentazione separata \u00b6 Una sessione tipica con l'RPi su un alimentatore separato \u00e8 simile alla seguente. Ovviamente, dovrai utilizzare il percorso del dispositivo e il nome della scheda corretti: sudo service klipper stop cd ~/klipper git pull make clean make menuconfig make ./scripts/flash-sdcard.sh /dev/ttyACM0 btt-octopus-f446-v1 [[[manually power-cycle the printer board here when instructed]]] ./scripts/flash-sdcard.sh -c /dev/ttyACM0 btt-octopus-f446-v1 sudo service klipper start Programmazione SDIO con RPi sullo stesso alimentatore \u00b6 Una sessione tipica con l'RPi sullo stesso alimentatore \u00e8 simile alla seguente. Ovviamente, dovrai utilizzare il percorso del dispositivo e il nome della scheda corretti: sudo service klipper stop cd ~/klipper git pull make clean make menuconfig make ./scripts/flash-sdcard.sh /dev/ttyACM0 btt-octopus-f446-v1 sudo shutdown -h now [[[wait for the RPi to shutdown, then power-cycle and ssh again to the RPi when it restarts]]] sudo service klipper stop cd ~/klipper ./scripts/flash-sdcard.sh -c /dev/ttyACM0 btt-octopus-f446-v1 sudo service klipper start In questo caso, poich\u00e9 \u00e8 in corso il riavvio dell'RPi Host, che riavvier\u00e0 il servizio klipper , \u00e8 necessario arrestare nuovamente klipper prima di eseguire il passaggio di verifica e riavviarlo al termine della verifica. Mappatura pin da SDIO a SPI \u00b6 Se lo schema della tua scheda utilizza SDIO per la sua scheda SD, puoi mappare i pin come descritto nella tabella seguente per determinare i pin SPI del software compatibili da assegnare nel file board_defs.py : Pin della scheda SD Pin della scheda micro SD Nome PIN SDIO Nome Pin SPI 9 1 DATA2 None (PU)* 1 2 CD/DATA3 CS 2 3 CMD MOSI 4 4 +3.3V (VDD) +3.3V (VDD) 5 5 CLK SCLK 3 6 GND (VSS) GND (VSS) 7 7 DATA0 MISO 8 8 DATA1 None (PU)* N/A 9 Card Detect (CD) Card Detect (CD) 6 10 GND GND * None (PU) indica un pin inutilizzato con una resistenza di pull-up","title":"Aggiornamenti scheda SD"},{"location":"SDCard_Updates.html#aggiornamenti-scheda-sd","text":"Molte delle schede controller oggi popolari vengono fornite con un bootloader in grado di aggiornare il firmware tramite scheda SD. Sebbene ci\u00f2 sia conveniente in molte circostanze, questi bootloader in genere non forniscono altro modo per aggiornare il firmware. Questo pu\u00f2 essere un fastidio se la tua scheda \u00e8 montata in una posizione di difficile accesso o se devi aggiornare spesso il firmware. Dopo che Klipper \u00e8 stato inizialmente flashato su un controller, \u00e8 possibile trasferire il nuovo firmware sulla scheda SD e avviare la procedura di flashing tramite ssh.","title":"Aggiornamenti scheda SD"},{"location":"SDCard_Updates.html#procedura-di-aggiornamento-tipica","text":"La procedura per aggiornare il firmware dell'MCU utilizzando la scheda SD \u00e8 simile a quella di altri metodi. Invece di usare make flash \u00e8 necessario eseguire uno script di supporto, flash-sdcard.sh . L'aggiornamento di un BigTreeTech SKR 1.3 potrebbe essere simile al seguente: sudo service klipper stop cd ~/klipper git pull make clean make menuconfig make ./scripts/flash-sdcard.sh /dev/ttyACM0 btt-skr-v1.3 sudo service klipper start Spetta all'utente determinare la posizione del dispositivo e il nome della scheda. Se un utente ha bisogno di eseguire il flashing di pi\u00f9 schede, flash-sdcard.sh (o make flash se appropriato) dovrebbe essere eseguito per ciascuna scheda prima di riavviare il servizio Klipper. Le schede supportate possono essere elencate con il seguente comando: ./scripts/flash-sdcard.sh -l Se non vedi la tua scheda elencata, potrebbe essere necessario aggiungere una nuova definizione di scheda come descritto di seguito .","title":"Procedura di aggiornamento tipica"},{"location":"SDCard_Updates.html#utilizzo-avanzato","text":"I comandi precedenti presuppongono che l'MCU si connetta alla velocit\u00e0 di trasmissione predefinita di 250000 e che il firmware si trovi in ~/klipper/out/klipper.bin . Lo script flash-sdcard.sh fornisce opzioni per modificare queste impostazioni predefinite. Tutte le opzioni possono essere visualizzate dalla schermata della guida: ./scripts/flash-sdcard.sh -h SD Card upload utility for Klipper usage: flash_sdcard.sh [-h] [-l] [-c] [-b <baud>] [-f <firmware>] <device> <board> positional arguments: <device> device serial port <board> board type optional arguments: -h show this message -l list available boards -c run flash check/verify only (skip upload) -b <baud> serial baud rate (default is 250000) -f <firmware> path to klipper.bin Se la tua scheda \u00e8 stata flashata con un firmware che si connette a un baud rate personalizzato, \u00e8 possibile eseguire l'aggiornamento specificando l'opzione -b : ./scripts/flash-sdcard.sh -b 115200 /dev/ttyAMA0 btt-skr-v1.3 Se desideri eseguire il flashing di una build di Klipper situata in un luogo diverso da quello predefinito, puoi farlo specificando l'opzione -f : ./scripts/flash-sdcard.sh -f ~/downloads/klipper.bin /dev/ttyAMA0 btt-skr-v1.3 Nota che quando si aggiorna un MKS Robin E3 non \u00e8 necessario eseguire manualmente update_mks_robin.py e fornire il binario risultante a flash-sdcard.sh . Questa procedura \u00e8 automatizzata durante il processo di caricamento. L'opzione -c viene utilizzata per eseguire un controllo o un'operazione di sola verifica per testare se la scheda esegue correttamente il firmware specificato. Questa opzione \u00e8 destinata principalmente ai casi in cui \u00e8 necessario un ciclo di alimentazione manuale per completare la procedura di flashing, ad esempio con i bootloader che utilizzano la modalit\u00e0 SDIO anzich\u00e9 SPI per accedere alle proprie schede SD. (Vedi avvertenze di seguito) Ma pu\u00f2 anche essere utilizzato in qualsiasi momento per verificare se il codice visualizzato nella scheda corrisponde alla versione nella cartella build su qualsiasi scheda supportata.","title":"Utilizzo avanzato"},{"location":"SDCard_Updates.html#avvertenze","text":"Come accennato nell'introduzione, questo metodo funziona solo per l'aggiornamento del firmware. La procedura di flashing iniziale deve essere eseguita manualmente secondo le istruzioni che si applicano alla scheda del controller. Sebbene sia possibile eseguire il flashing di una build che modifica il baud seriale o l'interfaccia di connessione (ad esempio: da USB a UART), la verifica avr\u00e0 sempre esito negativo poich\u00e9 lo script non sar\u00e0 in grado di riconnettersi all'MCU per verificare la versione corrente. Sono supportate solo le schede che utilizzano SPI per la comunicazione con scheda SD. Le schede che utilizzano SDIO, come Flymaker Flyboard e MKS Robin Nano V1/V2, non funzioneranno in modalit\u00e0 SDIO. Tuttavia, di solito \u00e8 possibile eseguire il flashing di tali schede utilizzando invece la modalit\u00e0 Software SPI. Ma se il bootloader della scheda utilizza solo la modalit\u00e0 SDIO per accedere alla scheda SD, sar\u00e0 necessario un ciclo di alimentazione della scheda e della scheda SD in modo che la modalit\u00e0 possa tornare da SPI a SDIO per completare il reflashing. Tali schede dovrebbero essere definite con skip_verify abilitato per saltare il passaggio di verifica immediatamente dopo il flashing. Quindi, dopo il ciclo di spegnimento manuale, \u00e8 possibile eseguire nuovamente lo stesso identico comando ./scripts/flash-sdcard.sh , ma aggiungere l'opzione -c per completare l'operazione di controllo/verifica. Vedere Flashing Boards that use SDIO per esempi.","title":"Avvertenze"},{"location":"SDCard_Updates.html#definizioni-della-scheda","text":"Dovrebbero essere disponibili le schede pi\u00f9 comuni, tuttavia \u00e8 possibile aggiungere una nuova definizione di scheda, se necessario. Le definizioni delle schede si trovano in ~/klipper/scripts/spi_flash/board_defs.py . Le definizioni sono memorizzate nel dizionario, ad esempio: BOARD_DEFS = { 'generic-lpc1768' : { 'mcu' : \"lpc1768\" , 'spi_bus' : \"ssp1\" , \"cs_pin\" : \"P0.6\" }, ...< further definitions > } Possono essere specificati i seguenti campi: mcu : il tipo di mcu. Questo pu\u00f2 essere recuperato dopo aver configurato la build tramite make menuconfig eseguendo cat .config | grep CONFIG_MCU . Questo campo \u00e8 obbligatorio. spi_bus : il bus SPI collegato alla scheda SD. Questo dovrebbe essere recuperato dallo schema della scheda. Questo campo \u00e8 obbligatorio. cs_pin : il pin di selezione del chip collegato alla scheda SD. Questo dovrebbe essere recuperato dallo schema della scheda. Questo campo \u00e8 obbligatorio. firmware_path : il percorso sulla scheda SD in cui trasferire il firmware. L'impostazione predefinita \u00e8 firmware.bin . current_firmware_path : il percorso sulla scheda SD in cui si trova il file del firmware rinominato dopo un flash riuscito. L'impostazione predefinita \u00e8 'firmware.cur'. skip_verify : Definisce un valore booleano che dice agli script di saltare il passaggio di verifica del firmware durante il processo di flashing. L'impostazione predefinita \u00e8 False . Pu\u00f2 essere impostato su True per le schede che richiedono un ciclo di alimentazione manuale per completare il flashing. Per verificare il firmware in seguito, eseguire nuovamente lo script con l'opzione -c per eseguire lo step di verifica. Vedi le avvertenze con le schede SDIO Se \u00e8 richiesto il software SPI, il campo spi_bus deve essere impostato su swspi e deve essere specificato il seguente campo aggiuntivo: spi_pins : Dovrebbero essere 3 pin separati da virgola che sono collegati alla scheda SD nel formato miso,mosi,sclk`. Dovrebbe essere estremamente raro che sia necessario Software SPI, in genere solo le schede con errori di progettazione o le schede che normalmente supportano solo la modalit\u00e0 SDIO per la loro scheda SD lo richiederanno. La definizione della scheda btt-skr-pro fornisce un esempio della prima, e la definizione della scheda btt-octopus-f446-v1 fornisce un esempio della seconda. Prima di creare una nuova definizione di scheda, \u00e8 necessario verificare se una definizione di scheda esistente soddisfa i criteri necessari per la nuova scheda. Se questo \u00e8 il caso, pu\u00f2 essere specificato un BOARD_ALIAS . Ad esempio, \u00e8 possibile aggiungere il seguente alias per specificare my-new-board come alias per generic-lpc1768 : BOARD_ALIASES = { ...< previous aliases > , 'my-new-board' : BOARD_DEFS [ 'generic-lpc1768' ], } Se hai bisogno di una nuova definizione di scheda e ti senti a disagio con la procedura descritta sopra, ti consigliamo di rivolgerti a Klipper Community Discord .","title":"Definizioni della scheda"},{"location":"SDCard_Updates.html#flashing-di-schede-che-utilizzano-sdio","text":"Come menzionato nelle avvertenze , le schede il cui bootloader utilizza la modalit\u00e0 SDIO per accedere alla scheda SD richiedono un ciclo di alimentazione della scheda, e in particolare della scheda SD stessa, per passare dalla modalit\u00e0 SPI utilizzata durante la scrittura il file sulla scheda SD di nuovo in modalit\u00e0 SDIO affinch\u00e9 il bootloader lo inserisca nella scheda. Queste definizioni della scheda utilizzeranno il flag skip_verify , che indica allo strumento di flashing di interrompersi dopo aver scritto il firmware sulla scheda SD in modo che la scheda possa essere spenta e riaccesa manualmente e il passaggio di verifica posticipato fino al completamento. Esistono due scenari -- uno con l'host RPi in esecuzione su un alimentatore separato e l'altro quando l'host RPi \u00e8 in esecuzione con lo stesso alimentatore della scheda principale sottoposta a flashing. La differenza \u00e8 se \u00e8 necessario o meno spegnere anche l'RPi e quindi ssh di nuovo dopo che il flashing \u00e8 completo per eseguire il passaggio di verifica, o se la verifica pu\u00f2 essere eseguita immediatamente. Ecco alcuni esempi dei due scenari:","title":"Flashing di schede che utilizzano SDIO"},{"location":"SDCard_Updates.html#programmazione-sdio-con-rpi-su-alimentazione-separata","text":"Una sessione tipica con l'RPi su un alimentatore separato \u00e8 simile alla seguente. Ovviamente, dovrai utilizzare il percorso del dispositivo e il nome della scheda corretti: sudo service klipper stop cd ~/klipper git pull make clean make menuconfig make ./scripts/flash-sdcard.sh /dev/ttyACM0 btt-octopus-f446-v1 [[[manually power-cycle the printer board here when instructed]]] ./scripts/flash-sdcard.sh -c /dev/ttyACM0 btt-octopus-f446-v1 sudo service klipper start","title":"Programmazione SDIO con RPi su alimentazione separata"},{"location":"SDCard_Updates.html#programmazione-sdio-con-rpi-sullo-stesso-alimentatore","text":"Una sessione tipica con l'RPi sullo stesso alimentatore \u00e8 simile alla seguente. Ovviamente, dovrai utilizzare il percorso del dispositivo e il nome della scheda corretti: sudo service klipper stop cd ~/klipper git pull make clean make menuconfig make ./scripts/flash-sdcard.sh /dev/ttyACM0 btt-octopus-f446-v1 sudo shutdown -h now [[[wait for the RPi to shutdown, then power-cycle and ssh again to the RPi when it restarts]]] sudo service klipper stop cd ~/klipper ./scripts/flash-sdcard.sh -c /dev/ttyACM0 btt-octopus-f446-v1 sudo service klipper start In questo caso, poich\u00e9 \u00e8 in corso il riavvio dell'RPi Host, che riavvier\u00e0 il servizio klipper , \u00e8 necessario arrestare nuovamente klipper prima di eseguire il passaggio di verifica e riavviarlo al termine della verifica.","title":"Programmazione SDIO con RPi sullo stesso alimentatore"},{"location":"SDCard_Updates.html#mappatura-pin-da-sdio-a-spi","text":"Se lo schema della tua scheda utilizza SDIO per la sua scheda SD, puoi mappare i pin come descritto nella tabella seguente per determinare i pin SPI del software compatibili da assegnare nel file board_defs.py : Pin della scheda SD Pin della scheda micro SD Nome PIN SDIO Nome Pin SPI 9 1 DATA2 None (PU)* 1 2 CD/DATA3 CS 2 3 CMD MOSI 4 4 +3.3V (VDD) +3.3V (VDD) 5 5 CLK SCLK 3 6 GND (VSS) GND (VSS) 7 7 DATA0 MISO 8 8 DATA1 None (PU)* N/A 9 Card Detect (CD) Card Detect (CD) 6 10 GND GND * None (PU) indica un pin inutilizzato con una resistenza di pull-up","title":"Mappatura pin da SDIO a SPI"},{"location":"Skew_Correction.html","text":"Correzione dell'inclinazione \u00b6 La correzione dell'inclinazione basata su software pu\u00f2 aiutare a risolvere le imprecisioni dimensionali risultanti da un gruppo stampante non perfettamente in squadrato. Si noti che se la stampante \u00e8 notevolmente inclinata, si consiglia vivamente di utilizzare prima mezzi meccanici per ottenere la stampante il pi\u00f9 squadrata possibile prima di applicare la correzione basata sul software. Stampa un oggetto di calibrazione \u00b6 Il primo passaggio per correggere l'inclinazione \u00e8 stampare un calibration object lungo il piano che si desidera correggere. C'\u00e8 anche un calibration object che include tutti i piani in un modello. Vuoi che l'oggetto sia orientato in modo che l'angolo A sia verso l'origine del piano. Assicurarsi che durante questa stampa non venga applicata alcuna correzione dell'inclinazione. Puoi farlo rimuovendo il modulo [skew_correction] da printer.cfg o inserendo un gcode SET_SKEW CLEAR=1 . Prendi le tue misure \u00b6 Il modulo [skew_correcton] richiede 3 misurazioni per ogni piano che vuoi correggere; la lunghezza dall'angolo A all'angolo C, la lunghezza dall'angolo B all'angolo D e la lunghezza dall'angolo A all'angolo D. Quando si misura la lunghezza AD non includere i piani sugli angoli forniti da alcuni oggetti di prova. Configura la tua inclinazione \u00b6 Assicurati che la sezione [skew_correction] sia in printer.cfg. Ora puoi usare il gcode SET_SKEW per configurare skew_correcton. Ad esempio, se le lunghezze misurate lungo XY sono le seguenti: Length AC = 140.4 Length BD = 142.8 Length AD = 99.8 SET_SKEW pu\u00f2 essere utilizzato per configurare la correzione dell'inclinazione per il piano XY. SET_SKEW XY=140.4,142.8,99.8 Puoi anche aggiungere misure per XZ e YZ al gcode: SET_SKEW XY=140.4,142.8,99.8 XZ=141.6,141.4,99.8 YZ=142.4,140.5,99.5 Il modulo [skew_correction] supporta anche la gestione del profilo in un modo simile a [bed_mesh] . Dopo aver impostato l'inclinazione usando il gcode SET_SKEW , puoi usare il gcode SKEW_PROFILE per salvarlo: SKEW_PROFILE SAVE=my_skew_profile Dopo questo comando ti verr\u00e0 chiesto di emettere un gcode SAVE_CONFIG per salvare il profilo nella memoria permanente. Se nessun profilo \u00e8 denominato my_skew_profile , verr\u00e0 creato un nuovo profilo. Se il profilo indicato esiste, verr\u00e0 sovrascritto. Una volta che hai un profilo salvato, puoi caricarlo: SKEW_PROFILE LOAD=my_skew_profile \u00c8 anche possibile rimuovere un profilo vecchio o superato: SKEW_PROFILE REMOVE=my_skew_profile Dopo aver rimosso un profilo, ti verr\u00e0 chiesto di emettere un SAVE_CONFIG per far s\u00ec che questa modifica persista. Verifica della tua correzione \u00b6 Dopo aver configurato skew_correction \u00e8 possibile ristampare la parte di calibrazione con la correzione abilitata. Usa il seguente gcode per controllare la tua inclinazione su ciascun piano. I risultati dovrebbero essere inferiori a quelli riportati tramite GET_CURRENT_SKEW . CALC_MEASURED_SKEW AC=<ac_length> BD=<bd_length> AD=<ad_length> Avvertenze \u00b6 A causa della natura della correzione dell'inclinazione, si consiglia di configurare l'inclinazione nel codice g iniziale, dopo l'homing e qualsiasi tipo di movimento che si sposta vicino al bordo dell'area di stampa, come uno spurgo o una pulizia degli ugelli. \u00c8 possibile utilizzare i codici g \"SET_SKEW\" o \"SKEW_PROFILE\" per ottenere ci\u00f2. Si consiglia inoltre di emettere un SET_SKEW CLEAR=1 alla fine del gcode. Tenere presente che \u00e8 possibile che [skew_correction] generi una correzione che sposti la testa oltre i limiti della stampante sugli assi X e/o Y. Si consiglia di disporre le parti lontano dai bordi quando si utilizza [skew_correction] .","title":"Correzione dell'inclinazione"},{"location":"Skew_Correction.html#correzione-dellinclinazione","text":"La correzione dell'inclinazione basata su software pu\u00f2 aiutare a risolvere le imprecisioni dimensionali risultanti da un gruppo stampante non perfettamente in squadrato. Si noti che se la stampante \u00e8 notevolmente inclinata, si consiglia vivamente di utilizzare prima mezzi meccanici per ottenere la stampante il pi\u00f9 squadrata possibile prima di applicare la correzione basata sul software.","title":"Correzione dell'inclinazione"},{"location":"Skew_Correction.html#stampa-un-oggetto-di-calibrazione","text":"Il primo passaggio per correggere l'inclinazione \u00e8 stampare un calibration object lungo il piano che si desidera correggere. C'\u00e8 anche un calibration object che include tutti i piani in un modello. Vuoi che l'oggetto sia orientato in modo che l'angolo A sia verso l'origine del piano. Assicurarsi che durante questa stampa non venga applicata alcuna correzione dell'inclinazione. Puoi farlo rimuovendo il modulo [skew_correction] da printer.cfg o inserendo un gcode SET_SKEW CLEAR=1 .","title":"Stampa un oggetto di calibrazione"},{"location":"Skew_Correction.html#prendi-le-tue-misure","text":"Il modulo [skew_correcton] richiede 3 misurazioni per ogni piano che vuoi correggere; la lunghezza dall'angolo A all'angolo C, la lunghezza dall'angolo B all'angolo D e la lunghezza dall'angolo A all'angolo D. Quando si misura la lunghezza AD non includere i piani sugli angoli forniti da alcuni oggetti di prova.","title":"Prendi le tue misure"},{"location":"Skew_Correction.html#configura-la-tua-inclinazione","text":"Assicurati che la sezione [skew_correction] sia in printer.cfg. Ora puoi usare il gcode SET_SKEW per configurare skew_correcton. Ad esempio, se le lunghezze misurate lungo XY sono le seguenti: Length AC = 140.4 Length BD = 142.8 Length AD = 99.8 SET_SKEW pu\u00f2 essere utilizzato per configurare la correzione dell'inclinazione per il piano XY. SET_SKEW XY=140.4,142.8,99.8 Puoi anche aggiungere misure per XZ e YZ al gcode: SET_SKEW XY=140.4,142.8,99.8 XZ=141.6,141.4,99.8 YZ=142.4,140.5,99.5 Il modulo [skew_correction] supporta anche la gestione del profilo in un modo simile a [bed_mesh] . Dopo aver impostato l'inclinazione usando il gcode SET_SKEW , puoi usare il gcode SKEW_PROFILE per salvarlo: SKEW_PROFILE SAVE=my_skew_profile Dopo questo comando ti verr\u00e0 chiesto di emettere un gcode SAVE_CONFIG per salvare il profilo nella memoria permanente. Se nessun profilo \u00e8 denominato my_skew_profile , verr\u00e0 creato un nuovo profilo. Se il profilo indicato esiste, verr\u00e0 sovrascritto. Una volta che hai un profilo salvato, puoi caricarlo: SKEW_PROFILE LOAD=my_skew_profile \u00c8 anche possibile rimuovere un profilo vecchio o superato: SKEW_PROFILE REMOVE=my_skew_profile Dopo aver rimosso un profilo, ti verr\u00e0 chiesto di emettere un SAVE_CONFIG per far s\u00ec che questa modifica persista.","title":"Configura la tua inclinazione"},{"location":"Skew_Correction.html#verifica-della-tua-correzione","text":"Dopo aver configurato skew_correction \u00e8 possibile ristampare la parte di calibrazione con la correzione abilitata. Usa il seguente gcode per controllare la tua inclinazione su ciascun piano. I risultati dovrebbero essere inferiori a quelli riportati tramite GET_CURRENT_SKEW . CALC_MEASURED_SKEW AC=<ac_length> BD=<bd_length> AD=<ad_length>","title":"Verifica della tua correzione"},{"location":"Skew_Correction.html#avvertenze","text":"A causa della natura della correzione dell'inclinazione, si consiglia di configurare l'inclinazione nel codice g iniziale, dopo l'homing e qualsiasi tipo di movimento che si sposta vicino al bordo dell'area di stampa, come uno spurgo o una pulizia degli ugelli. \u00c8 possibile utilizzare i codici g \"SET_SKEW\" o \"SKEW_PROFILE\" per ottenere ci\u00f2. Si consiglia inoltre di emettere un SET_SKEW CLEAR=1 alla fine del gcode. Tenere presente che \u00e8 possibile che [skew_correction] generi una correzione che sposti la testa oltre i limiti della stampante sugli assi X e/o Y. Si consiglia di disporre le parti lontano dai bordi quando si utilizza [skew_correction] .","title":"Avvertenze"},{"location":"Slicers.html","text":"slicer \u00b6 Questo documento fornisce alcuni suggerimenti per configurare un'applicazione \"slicer\" da usare con Klipper. Gli slicer comuni usati con Klipper sono Slic3r, Cura, Simplify3D, ecc. Imposta il Gcode su variante Marlin \u00b6 Molti slicer hanno un'opzione per configurare il \"gusto G-Code\" o G-Code flavor. L'impostazione predefinita \u00e8 spesso \"Marlin\" e funziona bene con Klipper. L'impostazione \"Smoothieware\" funziona bene anche con Klipper. Klipper gcode_macro \u00b6 Gli slicer spesso consentono di configurare le sequenze \"Start G-Code\" e \"End G-Code\". Spesso \u00e8 invece conveniente definire macro personalizzate nel file di configurazione di Klipper, come ad esempio: [gcode_macro START_PRINT] e [gcode_macro END_PRINT] . Quindi puoi semplicemente eseguire START_PRINT e END_PRINT nella configurazione dello slicer. La definizione di queste azioni nella configurazione di Klipper pu\u00f2 rendere pi\u00f9 semplice modificare i passaggi iniziali e finali della stampante poich\u00e9 le modifiche non richiedono il re-slicing. Vedere sample-macros.cfg ad esempio le macro START_PRINT e END_PRINT. Vedere il config reference per i dettagli sulla definizione di una macro gcode. Impostazioni di retrazione di grandi dimensioni potrebbero richiedere la messa a punto di Klipper \u00b6 La velocit\u00e0 massima e l'accelerazione dei movimenti di ritrazione sono controllate in Klipper dalle impostazioni di configurazione max_extrude_only_velocity e max_extrude_only_accel . Queste impostazioni hanno un valore predefinito che dovrebbe funzionare bene su molte stampanti. Tuttavia, se si \u00e8 configurata una grande retrazione nello slicer (ad es. 5 mm o superiore), \u00e8 possibile che limitino la velocit\u00e0 di retrazione desiderata. Se si utilizza una grande retrazione, prendere in considerazione l'ottimizzazione di pressure advance di Klipper. Altrimenti, se si scopre che la testa di stampa sembra \"mettersi in pausa\" durante la retrazione e il priming, allora considerare di definire esplicitamente max_extrude_only_velocity e max_extrude_only_accel nel file di configurazione di Klipper. Non abilitare \"coasting\" -costeggiando- \u00b6 \u00c8 probabile che la funzione \"coasting\" si traduca in stampe di scarsa qualit\u00e0 con Klipper. Prendi in considerazione l'utilizzo di pressure advance di Klipper. In particolare, se lo slicer cambia drasticamente la velocit\u00e0 di estrusione tra i movimenti, Klipper eseguir\u00e0 la decelerazione e l'accelerazione tra i movimenti. \u00c8 probabile che questo renda il blobbing peggiore, non migliore. Al contrario, va bene (e spesso utile) utilizzare l'impostazione ritiro \"retract\" , l'impostazione pulire \"wipe\" e/o l'impostazione pulire alla retrazione \"wipe on retract\". Non utilizzare la \"distanza di riavvio extra\"- \"extra restart distance\"su Simplify3d \u00b6 Questa impostazione pu\u00f2 causare cambiamenti radicali alle velocit\u00e0 di estrusione che possono attivare il controllo della sezione trasversale di estrusione massima di Klipper. Prendi in considerazione l'utilizzo dell' pressure advance di Klipper o della normale impostazione di retrazione Simplify3d. Disabilita \"PreloadVE\" su KISSlicer \u00b6 Se si utilizza il software di slicing KISSlicer, impostare \"PreloadVE\" su zero. Prendi in considerazione l'utilizzo di pressure advance di Klipper. Disattiva le impostazioni di \"pressione dell'estrusore avanzata\"-\"advanced extruder pressure\" \u00b6 Alcune affettatrici pubblicizzano una capacit\u00e0 di \"pressione dell'estrusore avanzata\" - \"advanced extruder pressure\". Si consiglia di mantenere queste opzioni disabilitate quando si utilizza Klipper poich\u00e9 \u00e8 probabile che si traducano in stampe di scarsa qualit\u00e0. Prendi in considerazione l'utilizzo di pressure advance di Klipper. In particolare, queste impostazioni dello slicer possono indicare al firmware di apportare modifiche alla velocit\u00e0 di estrusione nella speranza che il firmware si avvicini a tali richieste e che la stampante ottenga approssimativamente una pressione dell'estrusore desiderabile. Klipper, tuttavia, utilizza calcoli cinematici e tempi precisi. Quando a Klipper viene comandato di apportare modifiche significative alla velocit\u00e0 di estrusione, pianificher\u00e0 le modifiche corrispondenti a velocit\u00e0, accelerazione e movimento dell'estrusore, il che non \u00e8 l'intento dello slicer. Lo slicer pu\u00f2 anche comandare velocit\u00e0 di estrusione eccessive al punto da attivare il controllo della sezione trasversale di estrusione massima di Klipper. Al contrario, va bene (e spesso utile) utilizzare l'impostazione ritiro \"retract\" , l'impostazione pulire \"wipe\" e/o l'impostazione pulire alla retrazione \"wipe on retract\".","title":"slicer"},{"location":"Slicers.html#slicer","text":"Questo documento fornisce alcuni suggerimenti per configurare un'applicazione \"slicer\" da usare con Klipper. Gli slicer comuni usati con Klipper sono Slic3r, Cura, Simplify3D, ecc.","title":"slicer"},{"location":"Slicers.html#imposta-il-gcode-su-variante-marlin","text":"Molti slicer hanno un'opzione per configurare il \"gusto G-Code\" o G-Code flavor. L'impostazione predefinita \u00e8 spesso \"Marlin\" e funziona bene con Klipper. L'impostazione \"Smoothieware\" funziona bene anche con Klipper.","title":"Imposta il Gcode su variante Marlin"},{"location":"Slicers.html#klipper-gcode_macro","text":"Gli slicer spesso consentono di configurare le sequenze \"Start G-Code\" e \"End G-Code\". Spesso \u00e8 invece conveniente definire macro personalizzate nel file di configurazione di Klipper, come ad esempio: [gcode_macro START_PRINT] e [gcode_macro END_PRINT] . Quindi puoi semplicemente eseguire START_PRINT e END_PRINT nella configurazione dello slicer. La definizione di queste azioni nella configurazione di Klipper pu\u00f2 rendere pi\u00f9 semplice modificare i passaggi iniziali e finali della stampante poich\u00e9 le modifiche non richiedono il re-slicing. Vedere sample-macros.cfg ad esempio le macro START_PRINT e END_PRINT. Vedere il config reference per i dettagli sulla definizione di una macro gcode.","title":"Klipper gcode_macro"},{"location":"Slicers.html#impostazioni-di-retrazione-di-grandi-dimensioni-potrebbero-richiedere-la-messa-a-punto-di-klipper","text":"La velocit\u00e0 massima e l'accelerazione dei movimenti di ritrazione sono controllate in Klipper dalle impostazioni di configurazione max_extrude_only_velocity e max_extrude_only_accel . Queste impostazioni hanno un valore predefinito che dovrebbe funzionare bene su molte stampanti. Tuttavia, se si \u00e8 configurata una grande retrazione nello slicer (ad es. 5 mm o superiore), \u00e8 possibile che limitino la velocit\u00e0 di retrazione desiderata. Se si utilizza una grande retrazione, prendere in considerazione l'ottimizzazione di pressure advance di Klipper. Altrimenti, se si scopre che la testa di stampa sembra \"mettersi in pausa\" durante la retrazione e il priming, allora considerare di definire esplicitamente max_extrude_only_velocity e max_extrude_only_accel nel file di configurazione di Klipper.","title":"Impostazioni di retrazione di grandi dimensioni potrebbero richiedere la messa a punto di Klipper"},{"location":"Slicers.html#non-abilitare-coasting-costeggiando-","text":"\u00c8 probabile che la funzione \"coasting\" si traduca in stampe di scarsa qualit\u00e0 con Klipper. Prendi in considerazione l'utilizzo di pressure advance di Klipper. In particolare, se lo slicer cambia drasticamente la velocit\u00e0 di estrusione tra i movimenti, Klipper eseguir\u00e0 la decelerazione e l'accelerazione tra i movimenti. \u00c8 probabile che questo renda il blobbing peggiore, non migliore. Al contrario, va bene (e spesso utile) utilizzare l'impostazione ritiro \"retract\" , l'impostazione pulire \"wipe\" e/o l'impostazione pulire alla retrazione \"wipe on retract\".","title":"Non abilitare \"coasting\" -costeggiando-"},{"location":"Slicers.html#non-utilizzare-la-distanza-di-riavvio-extra-extra-restart-distancesu-simplify3d","text":"Questa impostazione pu\u00f2 causare cambiamenti radicali alle velocit\u00e0 di estrusione che possono attivare il controllo della sezione trasversale di estrusione massima di Klipper. Prendi in considerazione l'utilizzo dell' pressure advance di Klipper o della normale impostazione di retrazione Simplify3d.","title":"Non utilizzare la \"distanza di riavvio extra\"- \"extra restart distance\"su Simplify3d"},{"location":"Slicers.html#disabilita-preloadve-su-kisslicer","text":"Se si utilizza il software di slicing KISSlicer, impostare \"PreloadVE\" su zero. Prendi in considerazione l'utilizzo di pressure advance di Klipper.","title":"Disabilita \"PreloadVE\" su KISSlicer"},{"location":"Slicers.html#disattiva-le-impostazioni-di-pressione-dellestrusore-avanzata-advanced-extruder-pressure","text":"Alcune affettatrici pubblicizzano una capacit\u00e0 di \"pressione dell'estrusore avanzata\" - \"advanced extruder pressure\". Si consiglia di mantenere queste opzioni disabilitate quando si utilizza Klipper poich\u00e9 \u00e8 probabile che si traducano in stampe di scarsa qualit\u00e0. Prendi in considerazione l'utilizzo di pressure advance di Klipper. In particolare, queste impostazioni dello slicer possono indicare al firmware di apportare modifiche alla velocit\u00e0 di estrusione nella speranza che il firmware si avvicini a tali richieste e che la stampante ottenga approssimativamente una pressione dell'estrusore desiderabile. Klipper, tuttavia, utilizza calcoli cinematici e tempi precisi. Quando a Klipper viene comandato di apportare modifiche significative alla velocit\u00e0 di estrusione, pianificher\u00e0 le modifiche corrispondenti a velocit\u00e0, accelerazione e movimento dell'estrusore, il che non \u00e8 l'intento dello slicer. Lo slicer pu\u00f2 anche comandare velocit\u00e0 di estrusione eccessive al punto da attivare il controllo della sezione trasversale di estrusione massima di Klipper. Al contrario, va bene (e spesso utile) utilizzare l'impostazione ritiro \"retract\" , l'impostazione pulire \"wipe\" e/o l'impostazione pulire alla retrazione \"wipe on retract\".","title":"Disattiva le impostazioni di \"pressione dell'estrusore avanzata\"-\"advanced extruder pressure\""},{"location":"Sponsors.html","text":"Sponsors \u00b6 Klipper \u00e8 un software libero. Dipendiamo dal generoso supporto degli sponsor. Considera la possibilit\u00e0 di sponsorizzare Klipper o di supportare i nostri sponsor. BIGTREETECH \u00b6 [ BIGTREETECH \u00e8 lo sponsor ufficiale della scheda madre di Klipper. BIGTREETECH si impegna a sviluppare prodotti innovativi e competitivi per servire meglio la comunit\u00e0 della stampa 3D. Seguili su Facebook o Twitter . Sviluppatori Klipper \u00b6 Kevin O'Connor \u00b6 Kevin \u00e8 l'autore originale e l'attuale manutentore di Klipper. Fai una donazione su: https://ko-fi.com/koconnor o https://www.patreon.com/koconnor Eric Callahan \u00b6 Eric \u00e8 l'autore di bed_mesh, spi_flash e molti altri moduli Klipper. Eric ha una pagina per le donazioni : https://ko-fi.com/arksine Progetti correlati a Klipper \u00b6 Klipper \u00e8 spesso utilizzato con altri software gratuiti. Prendi in considerazione l'utilizzo o il supporto di questi progetti. Moonraker Mainsail Fluidd OctoPrint KlipperScreen","title":"Sponsors"},{"location":"Sponsors.html#sponsors","text":"Klipper \u00e8 un software libero. Dipendiamo dal generoso supporto degli sponsor. Considera la possibilit\u00e0 di sponsorizzare Klipper o di supportare i nostri sponsor.","title":"Sponsors"},{"location":"Sponsors.html#bigtreetech","text":"[ BIGTREETECH \u00e8 lo sponsor ufficiale della scheda madre di Klipper. BIGTREETECH si impegna a sviluppare prodotti innovativi e competitivi per servire meglio la comunit\u00e0 della stampa 3D. Seguili su Facebook o Twitter .","title":"BIGTREETECH"},{"location":"Sponsors.html#sviluppatori-klipper","text":"","title":"Sviluppatori Klipper"},{"location":"Sponsors.html#kevin-oconnor","text":"Kevin \u00e8 l'autore originale e l'attuale manutentore di Klipper. Fai una donazione su: https://ko-fi.com/koconnor o https://www.patreon.com/koconnor","title":"Kevin O'Connor"},{"location":"Sponsors.html#eric-callahan","text":"Eric \u00e8 l'autore di bed_mesh, spi_flash e molti altri moduli Klipper. Eric ha una pagina per le donazioni : https://ko-fi.com/arksine","title":"Eric Callahan"},{"location":"Sponsors.html#progetti-correlati-a-klipper","text":"Klipper \u00e8 spesso utilizzato con altri software gratuiti. Prendi in considerazione l'utilizzo o il supporto di questi progetti. Moonraker Mainsail Fluidd OctoPrint KlipperScreen","title":"Progetti correlati a Klipper"},{"location":"Status_Reference.html","text":"Status reference \u00b6 Questo documento \u00e8 un riferimento alle informazioni sullo stato della stampante disponibili in Klipper macro , display fields e tramite API Server . I campi in questo documento sono soggetti a modifiche: se si utilizza un attributo, assicurarsi di rivedere il documento Modifiche alla configurazione durante l'aggiornamento del software Klipper. angle \u00b6 Le seguenti informazioni sono disponibili negli oggetti angle some_name : temperature : l'ultima lettura della temperatura (in gradi Celsius) da un sensore magnetico Hall tle5012b. Questo valore \u00e8 disponibile solo se il sensore angolare \u00e8 un chip tle5012b e se le misurazioni sono in corso (altrimenti segnala None ). bed_mesh \u00b6 Le seguenti informazioni sono disponibili in bed_mesh : profile_name , mesh_min , mesh_max , probed_matrix , mesh_matrix : informazioni sulla bed_mesh attualmente attiva. profiles : l'insieme dei profili attualmente definiti come setup usando BED_MESH_PROFILE. bed_screws \u00b6 Le seguenti informazioni sono disponibili nell'oggetto Config_Reference.md#bed_screws : is_active : Restituisce True se lo strumento di regolazione delle viti del letto \u00e8 attualmente attivo. state : lo stato dello strumento di regolazione delle viti del piatto. \u00c8 una delle seguenti stringhe: \"adjust\", \"fine\". current_screw : l'indice per la vite corrente in corso di regolazione. accepted_screws : il numero di viti accettate. configfile \u00b6 Le seguenti informazioni sono disponibili nell'oggetto configfile (questo oggetto \u00e8 sempre disponibile): settings.<section>.<option> : Restituisce l'impostazione del file di configurazione data (o il valore predefinito) durante l'ultimo avvio o riavvio del software. (Qualsiasi impostazione modificata in fase di esecuzione non si rifletter\u00e0 qui.) config.<section>.<option> : Restituisce l'impostazione del file di configurazione non elaborato come letta da Klipper durante l'ultimo avvio o riavvio del software. (Qualsiasi impostazione modificata in fase di esecuzione non si rifletter\u00e0 qui.) Tutti i valori vengono restituiti come stringhe. save_config_pending : Restituisce vero se ci sono aggiornamenti che un comando SAVE_CONFIG potrebbe rendere persistenti sul disco. save_config_pending_items : contiene le sezioni e le opzioni che sono state modificate e sarebbero mantenute da un SAVE_CONFIG . warnings : un elenco di avvisi sulle opzioni di configurazione. Ogni voce nell'elenco sar\u00e0 un dizionario contenente un campo type e message (entrambe le stringhe). Ulteriori campi potrebbero essere disponibili a seconda del tipo di avviso. display_status \u00b6 Le seguenti informazioni sono disponibili nell'oggetto display_status (questo oggetto \u00e8 automaticamente disponibile se \u00e8 definita una sezione di configurazione display ): progress : il valore di avanzamento dell'ultimo comando G-Code M73 (o virtual_sdcard.progress se non \u00e8 stato ricevuto alcun M73 recente). message : il messaggio contenuto nell'ultimo comando G-Code M117 . endstop_phase \u00b6 Le seguenti informazioni sono disponibili nell'oggetto endstop_phase : last_home.<nome stepper>.phase : La fase del motore passo-passo al termine dell'ultimo tentativo di home. last_home.<stepper name>.phases : il numero totale di fasi disponibili sul motore passo-passo. last_home.<stepper name>.mcu_position : la posizione (tracciata dal microcontrollore) del motore passo-passo alla fine dell'ultimo tentativo di home. La posizione \u00e8 il numero totale di passi effettuati in avanti meno il numero totale di passi effettuati in senso inverso dall'ultimo riavvio del microcontrollore. exclude_object \u00b6 Le seguenti informazioni sono disponibili nell'oggetto exclude_object : objects : un array di oggetti conosciuti come fornito dal comando EXCLUDE_OBJECT_DEFINE . Queste sono le stesse informazioni fornite dal comando EXCLUDE_OBJECT VERBOSE=1 . I campi center e polygon saranno presenti solo se forniti nell'originale EXCLUDE_OBJECT_DEFINE Ecco un esempio JSON: [ { \"polygon\": [ [ 156.25, 146.2511675 ], [ 156.25, 153.7488325 ], [ 163.75, 153.7488325 ], [ 163.75, 146.2511675 ] ], \"name\": \"CYLINDER_2_STL_ID_2_COPY_0\", \"center\": [ 160, 150 ] }, { \"polygon\": [ [ 146.25, 146.2511675 ], [ 146.25, 153.7488325 ], [ 153.75, 153.7488325 ], [ 153.75, 146.2511675 ] ], \"name\": \"CYLINDER_2_STL_ID_1_COPY_0\", \"center\": [ 150, 150 ] } ] excluded_objects : un array di stringhe che elenca i nomi degli oggetti esclusi. current_object : il nome dell'oggetto attualmente in fase di stampa. extruder_stepper \u00b6 Le seguenti informazioni sono disponibili per gli oggetti extruder_stepper (cos\u00ec come per gli oggetti extruder ): pressure_advance : il valore corrente di pressure advance . smooth_time : il tempo di avanzamento graduale della pressure advance corrente. fan \u00b6 Le seguenti informazioni sono disponibili negli oggetti fan , heater_fan some_name e controller_fan some_name : speed : La velocit\u00e0 della ventola come float tra 0.0 e 1.0. rpm : la velocit\u00e0 della ventola misurata in rotazioni al minuto se la ventola ha un pin tachimetro definito. filament_switch_sensor \u00b6 Le seguenti informazioni sono disponibili negli oggetti filament_switch_sensor some_name : enabled : Restituisce True se il sensore interruttore \u00e8 attualmente abilitato. filament_detected : restituisce True se il sensore \u00e8 in uno stato attivato. filament_motion_sensor \u00b6 Le seguenti informazioni sono disponibili negli oggetti filament_motion_sensor some_name : abilitato : Restituisce True se il sensore di movimento \u00e8 attualmente abilitato. filament_detected : restituisce True se il sensore \u00e8 in uno stato attivato. firmware_retraction \u00b6 Le seguenti informazioni sono disponibili nell'oggetto firmware_retraction : retract_length , retract_speed , unretract_extra_length , unretract_speed : le impostazioni correnti per il modulo firmware_retraction. Queste impostazioni possono differire dal file di configurazione se un comando SET_RETRACTION le altera. gcode_macro \u00b6 Le seguenti informazioni sono disponibili negli oggetti gcode_macro some_name : <variabile> : il valore corrente di una variabile gcode_macro . gcode_move \u00b6 Le seguenti informazioni sono disponibili nell'oggetto gcode_move (questo oggetto \u00e8 sempre disponibile): gcode_position : la posizione corrente della testa di stampa rispetto all'origine del Gcode corrente. Cio\u00e8, posizioni che si potrebbero inviare direttamente a un comando G1 . \u00c8 possibile accedere ai componenti x, y, z ed e di questa posizione (ad esempio, gcode_position.x ). position : l'ultima posizione comandata della testina utilizzando il sistema di coordinate specificato nel file di configurazione. \u00c8 possibile accedere alle componenti x, y, z ed e di questa posizione (ad esempio, position.x ). homing_origin : l'origine del sistema di coordinate gcode (relativo al sistema di coordinate specificato nel file di configurazione) da utilizzare dopo un comando G28 . Il comando SET_GCODE_OFFSET pu\u00f2 alterare questa posizione. \u00c8 possibile accedere ai componenti x, y e z di questa posizione (ad esempio, homing_origin.x ). speed : l'ultima velocit\u00e0 impostata in un comando G1 (in mm/s). speed_factor : La\"speed factor override\" come impostato da un comando M220 . Questo \u00e8 un valore in virgola mobile tale che 1,0 significa nessun override e, ad esempio, 2,0 raddoppierebbe la velocit\u00e0 richiesta. extrude_factor : L'\"extrude factor override\" come impostato da un comando M221 . Questo \u00e8 un valore in virgola mobile tale che 1,0 significa nessun override ad esempio 2,0 raddoppierebbe le estrusioni richieste. absolute_coordinates : restituisce True se in modalit\u00e0 coordinate assolute G90 o False se in modalit\u00e0 relativa G91 . absolute_extrude : restituisce True se in modalit\u00e0 di estrusione assoluta M82 o False se in modalit\u00e0 relativa M83 . hall_filament_width_sensor \u00b6 Le seguenti informazioni sono disponibili nell'oggetto hall_filament_width_sensor : is_active : Restituisce True se il sensore \u00e8 attualmente attivo. Diameter : l'ultima lettura dal sensore in mm. Raw : l'ultima lettura grezza dell'ADC dal sensore. Riscaldatore \u00b6 Le seguenti informazioni sono disponibili per oggetti riscaldatore come extruder , heater_bed e heater_generic : temperature : l'ultima temperatura riportata (in gradi Celsius come float) per il dato riscaldatore. target : la temperatura target attuale (in gradi Celsius come float) per il riscaldatore dato. power : l'ultima impostazione del pin PWM (un valore compreso tra 0.0 e 1.0) associato al riscaldatore. can_extrude : Se l'estrusore pu\u00f2 estrudere (definito da min_extrude_temp ), disponibile solo per extruder Riscaldatori \u00b6 Le seguenti informazioni sono disponibili nell'oggetto heaters (questo oggetto \u00e8 disponibile se \u00e8 definito un riscaldatore): disponibili_riscaldatori : restituisce un elenco di tutti i riscaldatori attualmente disponibili in base ai nomi completi delle sezioni di configurazione, ad es. [\"extruder\", \"heater_bed\", \"heater_generic my_custom_heater\"] . available_sensors : restituisce un elenco di tutti i riscaldatori attualmente disponibili in base ai nomi completi delle sezioni di configurazione, ad es. [\"extruder\", \"heater_bed\", \"heater_generic my_custom_heater\"] . idle_timeout \u00b6 Le seguenti informazioni sono disponibili nell'oggetto idle_timeout (questo oggetto \u00e8 sempre disponibile): state : lo stato corrente della stampante monitorato dal modulo idle_timeout. \u00c8 una delle seguenti stringhe: \"Idle\", \"Printing\", \"Ready\". printing_time : la quantit\u00e0 di tempo (in secondi) in cui la stampante \u00e8 rimasta nello stato \"Printing\" (come tracciato dal modulo idle_timeout). led \u00b6 Le seguenti informazioni sono disponibili per ogni sezione di configurazione [led led_name] , [neopixel led_name] , [dotstar led_name] , [pca9533 led_name] e [pca9632 led_name] definita in printer.cfg: color_data : un elenco di lista di colori contenenti i valori RGBW per ogni led nella catena. Ogni valore \u00e8 rappresentato come un float da 0,0 a 1,0. Ciascuna lista di colori contiene 4 voci (rosso, verde, blu, bianco) anche se il LED sottostante supporta meno canali di colore. Ad esempio, \u00e8 possibile accedere al valore blu (3\u00b0 elemento nell'elenco dei colori) del secondo neopixel in una catena in printer[\"neopixel <config_name>\"].color_data[1][2] . manual_probe \u00b6 Le seguenti informazioni sono disponibili nell'oggetto manual_probe : is_active : Restituisce True se \u00e8 attualmente attivo uno script di supporto per il rilevamento manuale. z_position : l'altezza corrente dell'ugello (come la sta attualmente interpretando la stampante). z_position_lower : ultimo tentativo di sonda appena inferiore all'altezza corrente. z_position_upper : ultimo tentativo di sonda appena maggiore dell'altezza corrente. mcu \u00b6 Le seguenti informazioni sono disponibili negli oggetti mcu e mcu some_name : mcu_version : la versione del codice Klipper riportata dal microcontrollore. mcu_build_versions : informazioni sugli strumenti di compilazione utilizzati per generare il codice del microcontrollore (come riportato dal microcontrollore). mcu_constants.<constant_name> : Elenca le costanti di tempo riportate dal microcontrollore. Le costanti disponibili possono differire tra le architetture del microcontrollore e con ogni revisione del codice. last_stats.<statistics_name> : informazioni statistiche sulla connessione del microcontrollore. motion_report \u00b6 Le seguenti informazioni sono disponibili nell'oggetto motion_report (questo oggetto \u00e8 automaticamente disponibile se \u00e8 definita una sezione di configurazione stepper): live_position : la posizione richiesta della testa di stampa interpolata all'ora corrente. live_velocity : la velocit\u00e0 della testa di stampa richiesta (in mm/s) al momento attuale. live_extruder_velocity : la velocit\u00e0 dell'estrusore richiesta (in mm/s) al momento attuale. output_pin \u00b6 Le seguenti informazioni sono disponibili negli oggetti output_pin some_name : value : Il \"valore\" del pin, come impostato da un comando SET_PIN . palette2 \u00b6 Le seguenti informazioni sono disponibili nell'oggetto palette2 : ping : Valore dell'ultimo ping di Palette 2 riportato in percentuale. remaining_load_length : Quando si avvia una stampa della Palette 2, questa sar\u00e0 la quantit\u00e0 di filamento da caricare nell'estrusore. is_splicing : Vero quando la Palette 2 sta giuntando il filamento. pause_resume \u00b6 Le seguenti informazioni sono disponibili nell'oggetto pause_resume : is_paused : Restituisce vero se un comando PAUSE \u00e8 stato eseguito senza un corrispondente RESUME. print_stats \u00b6 Le seguenti informazioni sono disponibili nell'oggetto print_stats (questo oggetto \u00e8 automaticamente disponibile se \u00e8 definita una sezione di configurazione virtual_sdcard ): filename , total_duration , print_duration , filament_used , state , message : informazioni stimate sulla stampa corrente quando \u00e8 attiva una stampa da virtual_sdcard. info.total_layer : Il valore totale del layer dell'ultimo comando G-Code SET_PRINT_STATS_INFO TOTAL_LAYER=<valore> . info.current_layer : il valore del layer corrente dell'ultimo comando G-Code SET_PRINT_STATS_INFO CURRENT_LAYER=<valore> . probe \u00b6 Le seguenti informazioni sono disponibili nell'oggetto probe (questo oggetto \u00e8 disponibile anche se \u00e8 definita una sezione di configurazione bltouch ): last_query : Restituisce True se il probe \u00e8 stato segnalato come \"attivato\" durante l'ultimo comando QUERY_PROBE. Nota, se questo viene utilizzato in una macro, a causa dell'ordine di espansione del modello, il comando QUERY_PROBE deve essere eseguito prima della macro contenente questo riferimento. last_z_result : Restituisce il valore del risultato Z dell'ultimo comando PROBE. Nota, se questo viene utilizzato in una macro, a causa dell'ordine di espansione del modello, il comando PROBE (o simile) deve essere eseguito prima della macro contenente questo riferimento. quad_gantry_level \u00b6 Le seguenti informazioni sono disponibili nell'oggetto quad_gantry_level (questo oggetto \u00e8 disponibile se quad_gantry_level \u00e8 definito): applied : Vero se il processo di livellamento del gantry \u00e8 stato eseguito e completato con successo. query_endstops \u00b6 Le seguenti informazioni sono disponibili nell'oggetto query_endstops (questo oggetto \u00e8 disponibile se \u00e8 definito un finecorsa): last_query[\"<endstop>\"] : Restituisce True se l'endstop specificato \u00e8 stato segnalato come \"attivato-triggered\" durante l'ultimo comando QUERY_ENDSTOP. Nota, se questo viene utilizzato in una macro, a causa dell'ordine di espansione del modello, il comando QUERY_ENDSTOP deve essere eseguito prima della macro contenente questo riferimento. servo \u00b6 Le seguenti informazioni sono disponibili negli oggetti servo some_name : printer[\"servo <config_name>\"].value : l'ultima impostazione del pin PWM (un valore compreso tra 0.0 e 1.0) associata al servo. system_stats \u00b6 Le seguenti informazioni sono disponibili nell'oggetto system_stats (questo oggetto \u00e8 sempre disponibile): sysload , cputime , memavail : informazioni sul sistema operativo del host e sul carico del processo. sensori di temperatura \u00b6 Le seguenti informazioni sono disponibili in bme280 config_section_name , htu21d config_section_name , lm75 config_section_name e temperature_host config_section_name : temperature : l'ultima temperatura letta dal sensore. humidity , pressure , gas : gli ultimi valori letti dal sensore (solo sui sensori bme280, htu21d e lm75). temperature_fan \u00b6 Le seguenti informazioni sono disponibili negli oggetti temperature_fan some_name : temperature : l'ultima temperatura letta dal sensore. target : La temperatura target per la ventola. temperature_sensor \u00b6 Le seguenti informazioni sono disponibili negli oggetti temperature_sensor some_nome : temperature : l'ultima temperatura letta dal sensore. measured_min_temp , measured_max_temp : la temperatura pi\u00f9 bassa e pi\u00f9 alta vista dal sensore dall'ultimo riavvio del software host Klipper. driver tmc \u00b6 Le seguenti informazioni sono disponibili negli oggetti TMC stepper driver (ad esempio, [tmc2208 stepper_x] ): mcu_phase_offset : La posizione dello stepper del microcontrollore corrispondente alla fase \"zero\" del driver. Questo campo pu\u00f2 essere nullo se l'offset di fase non \u00e8 noto. phase_offset_position : La \"posizione comandata\" corrispondente alla fase \"zero\" del driver. Questo campo pu\u00f2 essere nullo se l'offset di fase non \u00e8 noto. drv_status : i risultati dell'ultima query sullo stato del driver. (Sono riportati solo i campi diversi da zero.) Questo campo sar\u00e0 nullo se il driver non \u00e8 abilitato (e quindi non viene interrogato periodicamente). run_current : La corrente di esecuzione attualmente impostata. hold_current : La corrente di mantenimento attualmente impostata. toolhead \u00b6 Le seguenti informazioni sono disponibili nell'oggetto toolhead (questo oggetto \u00e8 sempre disponibile): position : l'ultima posizione comandata della testa di stampa relativa al sistema di coordinate specificato nel file di configurazione. \u00c8 possibile accedere alle componenti x, y, z di questa posizione (ad esempio, position.x ). extruder : il nome dell'estrusore attualmente attivo. Ad esempio, in una macro si potrebbe usare printer[printer.toolhead.extruder].target per ottenere la temperatura target dell'estrusore corrente. homed_axes : Gli assi cartesiani correnti considerati in uno stato \"homed\". Questa \u00e8 una stringa contenente uno o pi\u00f9 di \"x\", \"y\", \"z\". axis_minimum , axis_maximum : i limiti di corsa dell'asse (mm) dopo la corsa di homing. \u00c8 possibile accedere alle componenti x, y, z di questo valore limite (ad es. axis_minimum.x , axis_minimum.z ). Per le stampanti Delta, cone_start_z \u00e8 l'altezza z massima al raggio massimo ( printer.toolhead.cone_start_z ). max_velocity , max_accel , max_accel_to_decel , square_corner_velocity : gli attuali limiti di stampa in vigore. Questo pu\u00f2 differire dalle impostazioni del file di configurazione se un comando SET_VELOCITY_LIMIT (o M204 ) le altera in fase di esecuzione. stalls : il numero totale di volte (dall'ultimo riavvio) che la stampante ha dovuto essere messa in pausa perch\u00e9 la testina si muoveva pi\u00f9 velocemente di quanto fosse possibile leggere i movimenti dall'input del G-code. dual_carriage \u00b6 Le seguenti informazioni sono disponibili in dual_carriage su una macchina hybrid_corexy o hybrid_corexz mode : la modalit\u00e0 corrente. I valori possibili sono: \"FULL_CONTROL\" active_carriage : il carrello attivo corrente. I valori possibili sono: \"CARRIAGE_0\", \"CARRIAGE_1\" virtual_sdcard \u00b6 Le seguenti informazioni sono disponibili nell'oggetto virtual_sdcard : is_active : Restituisce True se una stampa da file \u00e8 attualmente attiva. progress : una stima dello stato di avanzamento della stampa corrente (in base alla dimensione del file e alla posizione del file). file_path : un percorso completo del file per il file attualmente caricato. file_position : la posizione corrente (in byte) di una stampa attiva. file_size : la dimensione (in byte) del file attualmente caricato. webhooks \u00b6 Le seguenti informazioni sono disponibili nell'oggetto webhooks (questo oggetto \u00e8 sempre disponibile): state : restituisce una stringa che indica lo stato corrente di Klipper. I valori possibili sono: \"ready\", \"startup\", \"shutdown\", \"error\". state_message : una stringa leggibile dall'uomo che fornisce un contesto aggiuntivo sullo stato corrente di Klipper. z_thermal_adjust \u00b6 The following information is available in the z_thermal_adjust object (this object is available if z_thermal_adjust is defined). enabled : Returns True if adjustment is enabled. temperature : Current (smoothed) temperature of the defined sensor. [degC] measured_min_temp : Minimum measured temperature. [degC] measured_max_temp : Maximum measured temperature. [degC] current_z_adjust : Last computed Z adjustment [mm]. z_adjust_ref_temperature : Current reference temperature used for calculation of Z current_z_adjust [degC]. z_tilt \u00b6 Le seguenti informazioni sono disponibili nell'oggetto z_tilt (questo oggetto \u00e8 disponibile se z_tilt \u00e8 definito): applied : Vero se il processo di livellamento z-tilt \u00e8 stato eseguito e completato con successo.","title":"Status reference"},{"location":"Status_Reference.html#status-reference","text":"Questo documento \u00e8 un riferimento alle informazioni sullo stato della stampante disponibili in Klipper macro , display fields e tramite API Server . I campi in questo documento sono soggetti a modifiche: se si utilizza un attributo, assicurarsi di rivedere il documento Modifiche alla configurazione durante l'aggiornamento del software Klipper.","title":"Status reference"},{"location":"Status_Reference.html#angle","text":"Le seguenti informazioni sono disponibili negli oggetti angle some_name : temperature : l'ultima lettura della temperatura (in gradi Celsius) da un sensore magnetico Hall tle5012b. Questo valore \u00e8 disponibile solo se il sensore angolare \u00e8 un chip tle5012b e se le misurazioni sono in corso (altrimenti segnala None ).","title":"angle"},{"location":"Status_Reference.html#bed_mesh","text":"Le seguenti informazioni sono disponibili in bed_mesh : profile_name , mesh_min , mesh_max , probed_matrix , mesh_matrix : informazioni sulla bed_mesh attualmente attiva. profiles : l'insieme dei profili attualmente definiti come setup usando BED_MESH_PROFILE.","title":"bed_mesh"},{"location":"Status_Reference.html#bed_screws","text":"Le seguenti informazioni sono disponibili nell'oggetto Config_Reference.md#bed_screws : is_active : Restituisce True se lo strumento di regolazione delle viti del letto \u00e8 attualmente attivo. state : lo stato dello strumento di regolazione delle viti del piatto. \u00c8 una delle seguenti stringhe: \"adjust\", \"fine\". current_screw : l'indice per la vite corrente in corso di regolazione. accepted_screws : il numero di viti accettate.","title":"bed_screws"},{"location":"Status_Reference.html#configfile","text":"Le seguenti informazioni sono disponibili nell'oggetto configfile (questo oggetto \u00e8 sempre disponibile): settings.<section>.<option> : Restituisce l'impostazione del file di configurazione data (o il valore predefinito) durante l'ultimo avvio o riavvio del software. (Qualsiasi impostazione modificata in fase di esecuzione non si rifletter\u00e0 qui.) config.<section>.<option> : Restituisce l'impostazione del file di configurazione non elaborato come letta da Klipper durante l'ultimo avvio o riavvio del software. (Qualsiasi impostazione modificata in fase di esecuzione non si rifletter\u00e0 qui.) Tutti i valori vengono restituiti come stringhe. save_config_pending : Restituisce vero se ci sono aggiornamenti che un comando SAVE_CONFIG potrebbe rendere persistenti sul disco. save_config_pending_items : contiene le sezioni e le opzioni che sono state modificate e sarebbero mantenute da un SAVE_CONFIG . warnings : un elenco di avvisi sulle opzioni di configurazione. Ogni voce nell'elenco sar\u00e0 un dizionario contenente un campo type e message (entrambe le stringhe). Ulteriori campi potrebbero essere disponibili a seconda del tipo di avviso.","title":"configfile"},{"location":"Status_Reference.html#display_status","text":"Le seguenti informazioni sono disponibili nell'oggetto display_status (questo oggetto \u00e8 automaticamente disponibile se \u00e8 definita una sezione di configurazione display ): progress : il valore di avanzamento dell'ultimo comando G-Code M73 (o virtual_sdcard.progress se non \u00e8 stato ricevuto alcun M73 recente). message : il messaggio contenuto nell'ultimo comando G-Code M117 .","title":"display_status"},{"location":"Status_Reference.html#endstop_phase","text":"Le seguenti informazioni sono disponibili nell'oggetto endstop_phase : last_home.<nome stepper>.phase : La fase del motore passo-passo al termine dell'ultimo tentativo di home. last_home.<stepper name>.phases : il numero totale di fasi disponibili sul motore passo-passo. last_home.<stepper name>.mcu_position : la posizione (tracciata dal microcontrollore) del motore passo-passo alla fine dell'ultimo tentativo di home. La posizione \u00e8 il numero totale di passi effettuati in avanti meno il numero totale di passi effettuati in senso inverso dall'ultimo riavvio del microcontrollore.","title":"endstop_phase"},{"location":"Status_Reference.html#exclude_object","text":"Le seguenti informazioni sono disponibili nell'oggetto exclude_object : objects : un array di oggetti conosciuti come fornito dal comando EXCLUDE_OBJECT_DEFINE . Queste sono le stesse informazioni fornite dal comando EXCLUDE_OBJECT VERBOSE=1 . I campi center e polygon saranno presenti solo se forniti nell'originale EXCLUDE_OBJECT_DEFINE Ecco un esempio JSON: [ { \"polygon\": [ [ 156.25, 146.2511675 ], [ 156.25, 153.7488325 ], [ 163.75, 153.7488325 ], [ 163.75, 146.2511675 ] ], \"name\": \"CYLINDER_2_STL_ID_2_COPY_0\", \"center\": [ 160, 150 ] }, { \"polygon\": [ [ 146.25, 146.2511675 ], [ 146.25, 153.7488325 ], [ 153.75, 153.7488325 ], [ 153.75, 146.2511675 ] ], \"name\": \"CYLINDER_2_STL_ID_1_COPY_0\", \"center\": [ 150, 150 ] } ] excluded_objects : un array di stringhe che elenca i nomi degli oggetti esclusi. current_object : il nome dell'oggetto attualmente in fase di stampa.","title":"exclude_object"},{"location":"Status_Reference.html#extruder_stepper","text":"Le seguenti informazioni sono disponibili per gli oggetti extruder_stepper (cos\u00ec come per gli oggetti extruder ): pressure_advance : il valore corrente di pressure advance . smooth_time : il tempo di avanzamento graduale della pressure advance corrente.","title":"extruder_stepper"},{"location":"Status_Reference.html#fan","text":"Le seguenti informazioni sono disponibili negli oggetti fan , heater_fan some_name e controller_fan some_name : speed : La velocit\u00e0 della ventola come float tra 0.0 e 1.0. rpm : la velocit\u00e0 della ventola misurata in rotazioni al minuto se la ventola ha un pin tachimetro definito.","title":"fan"},{"location":"Status_Reference.html#filament_switch_sensor","text":"Le seguenti informazioni sono disponibili negli oggetti filament_switch_sensor some_name : enabled : Restituisce True se il sensore interruttore \u00e8 attualmente abilitato. filament_detected : restituisce True se il sensore \u00e8 in uno stato attivato.","title":"filament_switch_sensor"},{"location":"Status_Reference.html#filament_motion_sensor","text":"Le seguenti informazioni sono disponibili negli oggetti filament_motion_sensor some_name : abilitato : Restituisce True se il sensore di movimento \u00e8 attualmente abilitato. filament_detected : restituisce True se il sensore \u00e8 in uno stato attivato.","title":"filament_motion_sensor"},{"location":"Status_Reference.html#firmware_retraction","text":"Le seguenti informazioni sono disponibili nell'oggetto firmware_retraction : retract_length , retract_speed , unretract_extra_length , unretract_speed : le impostazioni correnti per il modulo firmware_retraction. Queste impostazioni possono differire dal file di configurazione se un comando SET_RETRACTION le altera.","title":"firmware_retraction"},{"location":"Status_Reference.html#gcode_macro","text":"Le seguenti informazioni sono disponibili negli oggetti gcode_macro some_name : <variabile> : il valore corrente di una variabile gcode_macro .","title":"gcode_macro"},{"location":"Status_Reference.html#gcode_move","text":"Le seguenti informazioni sono disponibili nell'oggetto gcode_move (questo oggetto \u00e8 sempre disponibile): gcode_position : la posizione corrente della testa di stampa rispetto all'origine del Gcode corrente. Cio\u00e8, posizioni che si potrebbero inviare direttamente a un comando G1 . \u00c8 possibile accedere ai componenti x, y, z ed e di questa posizione (ad esempio, gcode_position.x ). position : l'ultima posizione comandata della testina utilizzando il sistema di coordinate specificato nel file di configurazione. \u00c8 possibile accedere alle componenti x, y, z ed e di questa posizione (ad esempio, position.x ). homing_origin : l'origine del sistema di coordinate gcode (relativo al sistema di coordinate specificato nel file di configurazione) da utilizzare dopo un comando G28 . Il comando SET_GCODE_OFFSET pu\u00f2 alterare questa posizione. \u00c8 possibile accedere ai componenti x, y e z di questa posizione (ad esempio, homing_origin.x ). speed : l'ultima velocit\u00e0 impostata in un comando G1 (in mm/s). speed_factor : La\"speed factor override\" come impostato da un comando M220 . Questo \u00e8 un valore in virgola mobile tale che 1,0 significa nessun override e, ad esempio, 2,0 raddoppierebbe la velocit\u00e0 richiesta. extrude_factor : L'\"extrude factor override\" come impostato da un comando M221 . Questo \u00e8 un valore in virgola mobile tale che 1,0 significa nessun override ad esempio 2,0 raddoppierebbe le estrusioni richieste. absolute_coordinates : restituisce True se in modalit\u00e0 coordinate assolute G90 o False se in modalit\u00e0 relativa G91 . absolute_extrude : restituisce True se in modalit\u00e0 di estrusione assoluta M82 o False se in modalit\u00e0 relativa M83 .","title":"gcode_move"},{"location":"Status_Reference.html#hall_filament_width_sensor","text":"Le seguenti informazioni sono disponibili nell'oggetto hall_filament_width_sensor : is_active : Restituisce True se il sensore \u00e8 attualmente attivo. Diameter : l'ultima lettura dal sensore in mm. Raw : l'ultima lettura grezza dell'ADC dal sensore.","title":"hall_filament_width_sensor"},{"location":"Status_Reference.html#riscaldatore","text":"Le seguenti informazioni sono disponibili per oggetti riscaldatore come extruder , heater_bed e heater_generic : temperature : l'ultima temperatura riportata (in gradi Celsius come float) per il dato riscaldatore. target : la temperatura target attuale (in gradi Celsius come float) per il riscaldatore dato. power : l'ultima impostazione del pin PWM (un valore compreso tra 0.0 e 1.0) associato al riscaldatore. can_extrude : Se l'estrusore pu\u00f2 estrudere (definito da min_extrude_temp ), disponibile solo per extruder","title":"Riscaldatore"},{"location":"Status_Reference.html#riscaldatori","text":"Le seguenti informazioni sono disponibili nell'oggetto heaters (questo oggetto \u00e8 disponibile se \u00e8 definito un riscaldatore): disponibili_riscaldatori : restituisce un elenco di tutti i riscaldatori attualmente disponibili in base ai nomi completi delle sezioni di configurazione, ad es. [\"extruder\", \"heater_bed\", \"heater_generic my_custom_heater\"] . available_sensors : restituisce un elenco di tutti i riscaldatori attualmente disponibili in base ai nomi completi delle sezioni di configurazione, ad es. [\"extruder\", \"heater_bed\", \"heater_generic my_custom_heater\"] .","title":"Riscaldatori"},{"location":"Status_Reference.html#idle_timeout","text":"Le seguenti informazioni sono disponibili nell'oggetto idle_timeout (questo oggetto \u00e8 sempre disponibile): state : lo stato corrente della stampante monitorato dal modulo idle_timeout. \u00c8 una delle seguenti stringhe: \"Idle\", \"Printing\", \"Ready\". printing_time : la quantit\u00e0 di tempo (in secondi) in cui la stampante \u00e8 rimasta nello stato \"Printing\" (come tracciato dal modulo idle_timeout).","title":"idle_timeout"},{"location":"Status_Reference.html#led","text":"Le seguenti informazioni sono disponibili per ogni sezione di configurazione [led led_name] , [neopixel led_name] , [dotstar led_name] , [pca9533 led_name] e [pca9632 led_name] definita in printer.cfg: color_data : un elenco di lista di colori contenenti i valori RGBW per ogni led nella catena. Ogni valore \u00e8 rappresentato come un float da 0,0 a 1,0. Ciascuna lista di colori contiene 4 voci (rosso, verde, blu, bianco) anche se il LED sottostante supporta meno canali di colore. Ad esempio, \u00e8 possibile accedere al valore blu (3\u00b0 elemento nell'elenco dei colori) del secondo neopixel in una catena in printer[\"neopixel <config_name>\"].color_data[1][2] .","title":"led"},{"location":"Status_Reference.html#manual_probe","text":"Le seguenti informazioni sono disponibili nell'oggetto manual_probe : is_active : Restituisce True se \u00e8 attualmente attivo uno script di supporto per il rilevamento manuale. z_position : l'altezza corrente dell'ugello (come la sta attualmente interpretando la stampante). z_position_lower : ultimo tentativo di sonda appena inferiore all'altezza corrente. z_position_upper : ultimo tentativo di sonda appena maggiore dell'altezza corrente.","title":"manual_probe"},{"location":"Status_Reference.html#mcu","text":"Le seguenti informazioni sono disponibili negli oggetti mcu e mcu some_name : mcu_version : la versione del codice Klipper riportata dal microcontrollore. mcu_build_versions : informazioni sugli strumenti di compilazione utilizzati per generare il codice del microcontrollore (come riportato dal microcontrollore). mcu_constants.<constant_name> : Elenca le costanti di tempo riportate dal microcontrollore. Le costanti disponibili possono differire tra le architetture del microcontrollore e con ogni revisione del codice. last_stats.<statistics_name> : informazioni statistiche sulla connessione del microcontrollore.","title":"mcu"},{"location":"Status_Reference.html#motion_report","text":"Le seguenti informazioni sono disponibili nell'oggetto motion_report (questo oggetto \u00e8 automaticamente disponibile se \u00e8 definita una sezione di configurazione stepper): live_position : la posizione richiesta della testa di stampa interpolata all'ora corrente. live_velocity : la velocit\u00e0 della testa di stampa richiesta (in mm/s) al momento attuale. live_extruder_velocity : la velocit\u00e0 dell'estrusore richiesta (in mm/s) al momento attuale.","title":"motion_report"},{"location":"Status_Reference.html#output_pin","text":"Le seguenti informazioni sono disponibili negli oggetti output_pin some_name : value : Il \"valore\" del pin, come impostato da un comando SET_PIN .","title":"output_pin"},{"location":"Status_Reference.html#palette2","text":"Le seguenti informazioni sono disponibili nell'oggetto palette2 : ping : Valore dell'ultimo ping di Palette 2 riportato in percentuale. remaining_load_length : Quando si avvia una stampa della Palette 2, questa sar\u00e0 la quantit\u00e0 di filamento da caricare nell'estrusore. is_splicing : Vero quando la Palette 2 sta giuntando il filamento.","title":"palette2"},{"location":"Status_Reference.html#pause_resume","text":"Le seguenti informazioni sono disponibili nell'oggetto pause_resume : is_paused : Restituisce vero se un comando PAUSE \u00e8 stato eseguito senza un corrispondente RESUME.","title":"pause_resume"},{"location":"Status_Reference.html#print_stats","text":"Le seguenti informazioni sono disponibili nell'oggetto print_stats (questo oggetto \u00e8 automaticamente disponibile se \u00e8 definita una sezione di configurazione virtual_sdcard ): filename , total_duration , print_duration , filament_used , state , message : informazioni stimate sulla stampa corrente quando \u00e8 attiva una stampa da virtual_sdcard. info.total_layer : Il valore totale del layer dell'ultimo comando G-Code SET_PRINT_STATS_INFO TOTAL_LAYER=<valore> . info.current_layer : il valore del layer corrente dell'ultimo comando G-Code SET_PRINT_STATS_INFO CURRENT_LAYER=<valore> .","title":"print_stats"},{"location":"Status_Reference.html#probe","text":"Le seguenti informazioni sono disponibili nell'oggetto probe (questo oggetto \u00e8 disponibile anche se \u00e8 definita una sezione di configurazione bltouch ): last_query : Restituisce True se il probe \u00e8 stato segnalato come \"attivato\" durante l'ultimo comando QUERY_PROBE. Nota, se questo viene utilizzato in una macro, a causa dell'ordine di espansione del modello, il comando QUERY_PROBE deve essere eseguito prima della macro contenente questo riferimento. last_z_result : Restituisce il valore del risultato Z dell'ultimo comando PROBE. Nota, se questo viene utilizzato in una macro, a causa dell'ordine di espansione del modello, il comando PROBE (o simile) deve essere eseguito prima della macro contenente questo riferimento.","title":"probe"},{"location":"Status_Reference.html#quad_gantry_level","text":"Le seguenti informazioni sono disponibili nell'oggetto quad_gantry_level (questo oggetto \u00e8 disponibile se quad_gantry_level \u00e8 definito): applied : Vero se il processo di livellamento del gantry \u00e8 stato eseguito e completato con successo.","title":"quad_gantry_level"},{"location":"Status_Reference.html#query_endstops","text":"Le seguenti informazioni sono disponibili nell'oggetto query_endstops (questo oggetto \u00e8 disponibile se \u00e8 definito un finecorsa): last_query[\"<endstop>\"] : Restituisce True se l'endstop specificato \u00e8 stato segnalato come \"attivato-triggered\" durante l'ultimo comando QUERY_ENDSTOP. Nota, se questo viene utilizzato in una macro, a causa dell'ordine di espansione del modello, il comando QUERY_ENDSTOP deve essere eseguito prima della macro contenente questo riferimento.","title":"query_endstops"},{"location":"Status_Reference.html#servo","text":"Le seguenti informazioni sono disponibili negli oggetti servo some_name : printer[\"servo <config_name>\"].value : l'ultima impostazione del pin PWM (un valore compreso tra 0.0 e 1.0) associata al servo.","title":"servo"},{"location":"Status_Reference.html#system_stats","text":"Le seguenti informazioni sono disponibili nell'oggetto system_stats (questo oggetto \u00e8 sempre disponibile): sysload , cputime , memavail : informazioni sul sistema operativo del host e sul carico del processo.","title":"system_stats"},{"location":"Status_Reference.html#sensori-di-temperatura","text":"Le seguenti informazioni sono disponibili in bme280 config_section_name , htu21d config_section_name , lm75 config_section_name e temperature_host config_section_name : temperature : l'ultima temperatura letta dal sensore. humidity , pressure , gas : gli ultimi valori letti dal sensore (solo sui sensori bme280, htu21d e lm75).","title":"sensori di temperatura"},{"location":"Status_Reference.html#temperature_fan","text":"Le seguenti informazioni sono disponibili negli oggetti temperature_fan some_name : temperature : l'ultima temperatura letta dal sensore. target : La temperatura target per la ventola.","title":"temperature_fan"},{"location":"Status_Reference.html#temperature_sensor","text":"Le seguenti informazioni sono disponibili negli oggetti temperature_sensor some_nome : temperature : l'ultima temperatura letta dal sensore. measured_min_temp , measured_max_temp : la temperatura pi\u00f9 bassa e pi\u00f9 alta vista dal sensore dall'ultimo riavvio del software host Klipper.","title":"temperature_sensor"},{"location":"Status_Reference.html#driver-tmc","text":"Le seguenti informazioni sono disponibili negli oggetti TMC stepper driver (ad esempio, [tmc2208 stepper_x] ): mcu_phase_offset : La posizione dello stepper del microcontrollore corrispondente alla fase \"zero\" del driver. Questo campo pu\u00f2 essere nullo se l'offset di fase non \u00e8 noto. phase_offset_position : La \"posizione comandata\" corrispondente alla fase \"zero\" del driver. Questo campo pu\u00f2 essere nullo se l'offset di fase non \u00e8 noto. drv_status : i risultati dell'ultima query sullo stato del driver. (Sono riportati solo i campi diversi da zero.) Questo campo sar\u00e0 nullo se il driver non \u00e8 abilitato (e quindi non viene interrogato periodicamente). run_current : La corrente di esecuzione attualmente impostata. hold_current : La corrente di mantenimento attualmente impostata.","title":"driver tmc"},{"location":"Status_Reference.html#toolhead","text":"Le seguenti informazioni sono disponibili nell'oggetto toolhead (questo oggetto \u00e8 sempre disponibile): position : l'ultima posizione comandata della testa di stampa relativa al sistema di coordinate specificato nel file di configurazione. \u00c8 possibile accedere alle componenti x, y, z di questa posizione (ad esempio, position.x ). extruder : il nome dell'estrusore attualmente attivo. Ad esempio, in una macro si potrebbe usare printer[printer.toolhead.extruder].target per ottenere la temperatura target dell'estrusore corrente. homed_axes : Gli assi cartesiani correnti considerati in uno stato \"homed\". Questa \u00e8 una stringa contenente uno o pi\u00f9 di \"x\", \"y\", \"z\". axis_minimum , axis_maximum : i limiti di corsa dell'asse (mm) dopo la corsa di homing. \u00c8 possibile accedere alle componenti x, y, z di questo valore limite (ad es. axis_minimum.x , axis_minimum.z ). Per le stampanti Delta, cone_start_z \u00e8 l'altezza z massima al raggio massimo ( printer.toolhead.cone_start_z ). max_velocity , max_accel , max_accel_to_decel , square_corner_velocity : gli attuali limiti di stampa in vigore. Questo pu\u00f2 differire dalle impostazioni del file di configurazione se un comando SET_VELOCITY_LIMIT (o M204 ) le altera in fase di esecuzione. stalls : il numero totale di volte (dall'ultimo riavvio) che la stampante ha dovuto essere messa in pausa perch\u00e9 la testina si muoveva pi\u00f9 velocemente di quanto fosse possibile leggere i movimenti dall'input del G-code.","title":"toolhead"},{"location":"Status_Reference.html#dual_carriage","text":"Le seguenti informazioni sono disponibili in dual_carriage su una macchina hybrid_corexy o hybrid_corexz mode : la modalit\u00e0 corrente. I valori possibili sono: \"FULL_CONTROL\" active_carriage : il carrello attivo corrente. I valori possibili sono: \"CARRIAGE_0\", \"CARRIAGE_1\"","title":"dual_carriage"},{"location":"Status_Reference.html#virtual_sdcard","text":"Le seguenti informazioni sono disponibili nell'oggetto virtual_sdcard : is_active : Restituisce True se una stampa da file \u00e8 attualmente attiva. progress : una stima dello stato di avanzamento della stampa corrente (in base alla dimensione del file e alla posizione del file). file_path : un percorso completo del file per il file attualmente caricato. file_position : la posizione corrente (in byte) di una stampa attiva. file_size : la dimensione (in byte) del file attualmente caricato.","title":"virtual_sdcard"},{"location":"Status_Reference.html#webhooks","text":"Le seguenti informazioni sono disponibili nell'oggetto webhooks (questo oggetto \u00e8 sempre disponibile): state : restituisce una stringa che indica lo stato corrente di Klipper. I valori possibili sono: \"ready\", \"startup\", \"shutdown\", \"error\". state_message : una stringa leggibile dall'uomo che fornisce un contesto aggiuntivo sullo stato corrente di Klipper.","title":"webhooks"},{"location":"Status_Reference.html#z_thermal_adjust","text":"The following information is available in the z_thermal_adjust object (this object is available if z_thermal_adjust is defined). enabled : Returns True if adjustment is enabled. temperature : Current (smoothed) temperature of the defined sensor. [degC] measured_min_temp : Minimum measured temperature. [degC] measured_max_temp : Maximum measured temperature. [degC] current_z_adjust : Last computed Z adjustment [mm]. z_adjust_ref_temperature : Current reference temperature used for calculation of Z current_z_adjust [degC].","title":"z_thermal_adjust"},{"location":"Status_Reference.html#z_tilt","text":"Le seguenti informazioni sono disponibili nell'oggetto z_tilt (questo oggetto \u00e8 disponibile se z_tilt \u00e8 definito): applied : Vero se il processo di livellamento z-tilt \u00e8 stato eseguito e completato con successo.","title":"z_tilt"},{"location":"TMC_Drivers.html","text":"Driver TMC \u00b6 Questo documento fornisce informazioni sull'utilizzo dei driver Trinamic per motori stepper in modalit\u00e0 SPI/UART su Klipper. Klipper pu\u00f2 anche utilizzare i driver Trinamic nella loro \"modalit\u00e0 standalone\". Tuttavia, quando i driver sono in questa modalit\u00e0, non \u00e8 necessaria alcuna configurazione speciale di Klipper e le funzionalit\u00e0 avanzate di Klipper discusse in questo documento non sono disponibili. Oltre a questo documento, assicurati di rivedere il riferimento alla configurazione del driver TMC . Regolazione della corrente del motore \u00b6 Una corrente pi\u00f9 alta del driver aumenta la precisione del posizionamento e la coppia. Tuttavia, una corrente pi\u00f9 elevata aumenta anche il calore prodotto dal motore passo-passo e dal driver del motore passo-passo. Se il driver del motore passo-passo si surriscalda, si disabiliter\u00e0 e Klipper segnaler\u00e0 un errore. Se il motore passo-passo si surriscalda, perde coppia e precisione di posizionamento. (Se diventa molto caldo, potrebbe anche fondere le parti di plastica attaccate o vicino ad esso.) Come consiglio generale per l'ottimizzazione, preferire valori di corrente pi\u00f9 elevati purch\u00e9 il motore passo-passo non si surriscaldi troppo e il driver del motore passo-passo non segnali avvisi o errori. In generale, va bene che il motore passo-passo sia caldo, ma non dovrebbe diventare cos\u00ec caldo da risultare doloroso al tatto. Preferibilmente non specificare un hold_current \u00b6 Se si configura un hold_current , il driver TMC pu\u00f2 ridurre la corrente al motore passo-passo quando rileva che il passo-passo non si sta muovendo. Tuttavia, la variazione della corrente del motore pu\u00f2 di per s\u00e9 introdurre il movimento del motore. Ci\u00f2 pu\u00f2 verificarsi a causa di \"forze di arresto\" all'interno del motore passo-passo (il magnete permanente nel rotore tira verso i denti di ferro nello statore) o a causa di forze esterne sul carrello dell'asse. La maggior parte dei motori passo-passo non otterr\u00e0 un beneficio significativo dalla riduzione della corrente durante le normali stampe, perch\u00e9 pochi movimenti di stampa lasceranno un motore passo-passo inattivo per un tempo sufficientemente lungo da attivare la funzione hold_current . Ed \u00e8 improbabile che si vogliano introdurre sottili artefatti di stampa nelle poche mosse di stampa che lasciano uno stepper inattivo sufficientemente a lungo. Se si desidera ridurre la corrente ai motori durante le routine di avvio della stampa, considerare l'emissione di comandi SET_TMC_CURRENT in una START_PRINT macro per regolare la corrente prima e dopo i normali spostamenti di stampa. Alcune stampanti con motori Z dedicati che sono inattivi durante i normali movimenti di stampa (nessuna bed_mesho, nessuna inclinazione_piatto, nessuna correzione_inclinazione Z, nessuna stampa in \"modalit\u00e0 vaso\", ecc.) potrebbero scoprire che i motori Z funzionano a temperature pi\u00f9 basse con un hold_current . Se si implementa questo, assicurarsi di prendere in considerazione questo tipo di movimento dell'asse Z non comandato durante il livellamento del piatto, il rilevamento del piatto, la calibrazione della sonda e simili. Anche driver_TPOWERDOWN e driver_IHOLDDELAY dovrebbero essere calibrati di conseguenza. Se non sei sicuro, preferisci non specificare un hold_current . Impostazione della modalit\u00e0 \"spreadCycle\" rispetto a \"stealthChop\" \u00b6 Per impostazione predefinita, Klipper mette i driver TMC in modalit\u00e0 \"spreadCycle\". Se il driver supporta \"stealthChop\", pu\u00f2 essere abilitato aggiungendo stealthchop_threshold: 999999 alla sezione di configurazione di TMC. In generale, la modalit\u00e0 SpreadCycle fornisce una coppia maggiore e una maggiore precisione di posizionamento rispetto alla modalit\u00e0 StealthChop. Tuttavia, la modalit\u00e0 StealthChop pu\u00f2 produrre un rumore udibile notevolmente inferiore su alcune stampanti. I test di confronto delle modalit\u00e0 hanno mostrato un \"ritardo posizionale\" aumentato di circa il 75% di un passo completo durante i movimenti a velocit\u00e0 costante quando si utilizza la modalit\u00e0 StealthChop (ad esempio, su una stampante con distanza_rotazione di 40 mm e 200 passi_per_rotazione, la deviazione di posizione dei movimenti a velocit\u00e0 costante \u00e8 aumentata di ~0,150 mm). Tuttavia, questo \"ritardo nell'ottenimento della posizione richiesta\" potrebbe non manifestarsi come un difetto di stampa significativo e si potrebbe preferire il comportamento pi\u00f9 silenzioso della modalit\u00e0 stealthChop. Si consiglia di utilizzare sempre la modalit\u00e0 \"spreadCycle\" (non specificando stealthchop_threshold ) o di utilizzare sempre la modalit\u00e0 \"stealthChop\" (impostando stealthchop_threshold su 999999). Sfortunatamente, i driver spesso producono risultati scadenti e confusi se la modalit\u00e0 cambia mentre il motore \u00e8 a una velocit\u00e0 diversa da zero. L'impostazione dell'interpolazione TMC introduce una piccola deviazione di posizione \u00b6 L'impostazione interpolate del driver TMC pu\u00f2 ridurre il rumore udibile del movimento della stampante a costo di introdurre un piccolo errore di posizione sistemico. Questo errore di posizione sistematico deriva dal ritardo del driver nell'esecuzione dei \"passi\" inviati da Klipper. Durante i movimenti a velocit\u00e0 costante, questo ritardo si traduce in un errore di posizione di quasi mezzo micropasso configurato (pi\u00f9 precisamente, l'errore \u00e8 di mezzo micropasso meno un 512esimo di un passo intero). Ad esempio, su un asse con una distanza_rotazione di 40 mm, 200 passi_per_rotazione e 16 micropassi, l'errore sistemico introdotto durante i movimenti a velocit\u00e0 costante \u00e8 ~0,006 mm. Per una migliore precisione di posizionamento, considerare l'utilizzo della modalit\u00e0 SpreadCycle e disabilitare l'interpolazione (impostare interpolate: False nella configurazione del driver TMC). Se configurato in questo modo, \u00e8 possibile aumentare l'impostazione microstep per ridurre il rumore udibile durante il movimento del passo-passo. Tipicamente, un'impostazione microstep di 64 o 128 avr\u00e0 un rumore udibile simile all'interpolazione e lo far\u00e0 senza introdurre un errore posizionale sistemico. Se si utilizza la modalit\u00e0 StealthChop, l'imprecisione posizionale dell'interpolazione \u00e8 piccola rispetto all'imprecisione posizionale introdotta dalla modalit\u00e0 StealthChop. Pertanto l'interpolazione dell'ottimizzazione non \u00e8 considerata utile in modalit\u00e0 StealthChop e si pu\u00f2 lasciare l'interpolazione nel suo stato predefinito. Homing Sensorless \u00b6 L'homing senza sensori consente di posizionare un asse senza la necessit\u00e0 di un finecorsa fisico. Invece, il carrello sull'asse viene spostato nel finecorsa meccanico facendo perdere passi al motore passo-passo. Il driver stepper rileva i passi persi e lo indica all'MCU di controllo (Klipper) attivando un pin. Queste informazioni possono essere utilizzate da Klipper come fine corsa per l'asse. Questa guida illustra l'impostazione dell'homing sensorless per l'asse X della stampante (cartesiana). Tuttavia, funziona allo stesso modo con tutti gli altri assi (che richiedono un fine corsa). Dovresti configurarlo e sintonizzarlo per un asse alla volta. Limitazioni \u00b6 Assicurati che i tuoi componenti meccanici siano in grado di sopportare il carico del carrello che urta ripetutamente il limite dell'asse. Soprattutto le viti di comando potrebbero generare molta forza. L'homing di un asse Z facendo urtare l'ugello sulla superficie di stampa potrebbe non essere una buona idea. Per ottenere i migliori risultati, verificare che il carrello dell'asse stabilisca un contatto stabile con il limite dell'asse. Inoltre, l'homing sensorless potrebbe non essere sufficientemente preciso per la tua stampante. Sebbene l'homing degli assi X e Y su una macchina cartesiana possa funzionare bene, l'homing dell'asse Z in genere non \u00e8 sufficientemente preciso e pu\u00f2 comportare un'altezza del primo strato incoerente. L'homing di una stampante delta sensorless non \u00e8 consigliabile a causa della mancanza di precisione. Inoltre, il rilevamento dello stallo del driver passo-passo dipende dal carico meccanico sul motore, dalla corrente del motore e dalla temperatura del motore (resistenza della bobina). L'homing sensorless funziona meglio a velocit\u00e0 medie del motore. Per velocit\u00e0 molto basse (inferiori a 10 giri/min) il motore non genera una significativa EMF di ritorno e il TMC non \u00e8 in grado di rilevare in modo affidabile gli stalli del motore. Inoltre, a velocit\u00e0 molto elevate, l'EMF di ritorno del motore si avvicina alla tensione di alimentazione del motore, quindi il TMC non \u00e8 pi\u00f9 in grado di rilevare gli stalli. Si consiglia di dare un'occhiata alla scheda tecnica del proprio TMC specifico. L\u00ec puoi anche trovare maggiori dettagli sulle limitazioni di questa configurazione. Prerequisiti \u00b6 Sono necessari alcuni prerequisiti per utilizzare l'homing sensorless: Driver passo-passo TMC compatibile con stallGuard (tmc2130, tmc2209, tmc2660 o tmc5160). Interfaccia SPI/UART del driver TMC cablata al microcontrollore (la modalit\u00e0 stand-alone non funziona). Il pin \"DIAG\" o \"SG_TST\" appropriato del driver TMC collegato al microcontrollore. I passaggi nel documento config checks devono essere eseguiti per confermare che i motori passo-passo siano configurati e funzionino correttamente. Messa a punto \u00b6 La procedura qui descritta prevede sei passaggi principali: Scegli una velocit\u00e0 di homing. Configura il file printer.cfg per abilitare l'homing sensorless. Trova l'impostazione stallguard con la massima sensibilit\u00e0 che funziona con successo. Trova l'impostazione stallguard con la sensibilit\u00e0 pi\u00f9 bassa che effettua homing con successo con un solo tocco. Aggiorna il printer.cfg con l'impostazione di stallguard desiderata. Crea o aggiorna le macro printer.cfg per homing in modo coerente. Scegli la velocit\u00e0 di homing \u00b6 La velocit\u00e0 di homing \u00e8 una scelta importante quando si esegue l'homing senza sensori. \u00c8 consigliabile utilizzare una velocit\u00e0 di riferimento bassa in modo che il carrello non eserciti una forza eccessiva sul telaio quando entra in contatto con l'estremit\u00e0 della rotaia. Tuttavia, i driver TMC non sono in grado di rilevare in modo affidabile uno stallo a velocit\u00e0 molto basse. Un buon punto di partenza per la velocit\u00e0 di homing \u00e8 che il motore passo-passo esegua una rotazione completa ogni due secondi. Per molti assi questa sar\u00e0 la rotation_distance divisa per due. Per esempio: [stepper_x] rotation_distance: 40 homing_speed: 20 ... Configura printer.cfg per l'homing sensorless \u00b6 L'impostazione homing_retract_dist deve essere impostata su zero nella sezione di configurazione stepper_x per disabilitare il secondo movimento di homing. Il secondo tentativo di homing non aggiunge valore quando si utilizza l'homing sensorless, non funzioner\u00e0 in modo affidabile e confonder\u00e0 il processo di ottimizzazione. Assicurati che un'impostazione hold_current non sia specificata nella sezione del driver TMC del file config. (Se viene impostata una hold_current, dopo che \u00e8 stato stabilito il contatto, il motore si arresta mentre il carrello viene premuto contro l'estremit\u00e0 del binario e la riduzione della corrente mentre si trova in quella posizione pu\u00f2 causare il movimento del carrello, il che si traduce in prestazioni scadenti e confonde il processo di regolazione.) \u00c8 necessario configurare i pin di homing sensorless e configurare le impostazioni iniziali di \"stallguard\". Una configurazione di esempio tmc2209 per un asse X potrebbe essere simile a: [tmc2209 stepper_x] diag_pin: ^PA1 # Impostare sul pin MCU collegato al pin TMC DIAG driver_SGTHRS: 255 #255 \u00e8 il valore pi\u00f9 sensibile, 0 \u00e8 il meno sensibile ... [stepper_x] endstop_pin: tmc2209_stepper_x:virtual_endstop homing_retract_dist: 0 ... Un esempio di configurazione tmc2130 o tmc5160 potrebbe essere simile a: [tmc2130 stepper_x] diag1_pin: ^!PA1 # Pin collegato al pin TMC DIAG1 (o utilizzare pin diag0_pin / DIAG0) driver_SGT: -64 # -64 \u00e8 il valore pi\u00f9 sensibile, 63 \u00e8 il meno sensibile ... [stepper_x] endstop_pin: tmc2130_stepper_x:virtual_endstop homing_retract_dist: 0 ... Un esempio di configurazione di tmc2660 potrebbe essere simile a: [tmc2660 stepper_x] driver_SGT: -64 # -64 \u00e8 il valore pi\u00f9 sensibile, 63 \u00e8 il meno sensibile ... [stepper_x] endstop_pin: ^PA1 # Pin collegato al pin TMC SG_TST homing_retract_dist: 0 ... Gli esempi sopra mostrano solo le impostazioni specifiche per l'homing sensorless. Vedere il riferimento alla configurazione per tutte le opzioni disponibili. Trova la massima sensibilit\u00e0 che porta a homing con successo \u00b6 Posizionare il carrello vicino al centro del binario. Utilizzare il comando SET_TMC_FIELD per impostare la sensibilit\u00e0 pi\u00f9 alta. Per tmc2209: SET_TMC_FIELD STEPPER=stepper_x FIELD=SGTHRS VALUE=255 Per tmc2130, tmc5160 e tmc2660: SET_TMC_FIELD STEPPER=stepper_x FIELD=sgt VALUE=-64 Quindi inviare un comando G28 X0 e verificare che l'asse non si muova affatto o smetta rapidamente di muoversi. Se l'asse non si ferma, inviare un M112 per fermare la stampante - qualcosa non \u00e8 corretto con il cablaggio o la configurazione dei pin diag/sg_tst e deve essere corretto prima di continuare. Quindi, diminuire progressivamente la sensibilit\u00e0 dell'impostazione VALUE ed eseguire nuovamente i comandi SET_TMC_FIELD G28 X0 per trovare la sensibilit\u00e0 pi\u00f9 alta che fa s\u00ec che il carrello si muova con successo fino all'arresto e si arresti. (Per i driver tmc2209 questo diminuir\u00e0 SGTHRS, per altri conducenti aumenter\u00e0 il sgt.) Assicurati di iniziare ogni tentativo con il carrello vicino al centro del binario (se necessario, emetti M84 e quindi sposta manualmente il carrello sul centro). Dovrebbe essere possibile trovare la sensibilit\u00e0 pi\u00f9 alta che si adatta in modo affidabile (le impostazioni con una sensibilit\u00e0 pi\u00f9 alta comportano movimenti piccoli o nulli). Nota il valore trovato come sensibilit\u00e0_massima . (Se si ottiene la sensibilit\u00e0 minima possibile (SGTHRS=0 o sgt=63) senza alcun movimento del carrello, allora qualcosa non \u00e8 corretto con il cablaggio o la configurazione dei pin diag/sg_tst e deve essere corretto prima di continuare.) Quando si cerca la sensibilit\u00e0_massima, pu\u00f2 essere conveniente passare a diverse impostazioni VALUE (in modo da dividere in due il parametro VALUE). In tal caso, prepararsi a emettere un comando M112 per arrestare la stampante, poich\u00e9 un'impostazione con una sensibilit\u00e0 molto bassa potrebbe far \"sbattere\" ripetutamente l'asse contro l'estremit\u00e0 del binario. Assicurati di attendere un paio di secondi tra ogni tentativo di homing. Dopo che il driver TMC ha rilevato uno stallo, potrebbe volerci un po' di tempo per cancellare il suo indicatore interno ed essere in grado di rilevare un altro stallo. Durante questi test di ottimizzazione, se un comando G28 X0 non si sposta fino al limite dell'asse, prestare attenzione nell'emettere qualsiasi comando di movimento regolare (ad es. G1 ). Klipper non avr\u00e0 una corretta comprensione della posizione del carrello e un comando di spostamento potrebbe causare risultati indesiderati e confusi. Trova la sensibilit\u00e0 pi\u00f9 bassa che porta a homing con un solo tocco \u00b6 Quando si effettua l'homing con il valore maximum_sensitivity trovato, l'asse dovrebbe spostarsi all'estremit\u00e0 del binario e fermarsi con un \"tocco singolo\", ovvero non dovrebbe esserci un \"clic\" o un \"sbattere\". (Se c'\u00e8 un suono che sbatte o scatta alla sensibilit\u00e0_massima, allora la velocit\u00e0 di riferimento potrebbe essere troppo bassa, la corrente del driver potrebbe essere troppo bassa o la corsa di riferimento senza sensore potrebbe non essere una buona scelta per l'asse.) Il passo successivo \u00e8 spostare di nuovo continuamente il carrello in una posizione vicino al centro della rotaia, diminuire la sensibilit\u00e0 ed eseguire i comandi SET_TMC_FIELD G28 X0 - l'obiettivo ora \u00e8 trovare la sensibilit\u00e0 pi\u00f9 bassa che risulti ancora nel la carrozza torna con successo al punto di riferimento con un \"tocco singolo\". Cio\u00e8, non \"sbatte\" o \"clic\" quando viene a contatto con l'estremit\u00e0 del binario. Nota il valore trovato come sensibilit\u00e0_minima . Aggiorna printer.cfg con il valore della sensibilit\u00e0 \u00b6 Dopo aver trovato sensibilit\u00e0_massima e sensibilit\u00e0_minima , utilizzare una calcolatrice per ottenere la sensibilit\u00e0 consigliata come sensibilit\u00e0_minima + (sensibilit\u00e0_massima - sensibilit\u00e0_minima)/3 . La sensibilit\u00e0 consigliata dovrebbe essere compresa tra il minimo e il massimo, ma leggermente pi\u00f9 vicino al minimo. Arrotonda il valore finale al valore intero pi\u00f9 vicino. Per tmc2209 impostalo nella configurazione come driver_SGTHRS , per altri driver TMC impostalo nella configurazione come driver_SGT . Se l'intervallo tra sensibilit\u00e0_massima e sensibilit\u00e0_minima \u00e8 piccolo (ad esempio, inferiore a 5), potrebbe risultare in un homing instabile. Una velocit\u00e0 di riferimento pi\u00f9 elevata pu\u00f2 aumentare il range e rendere l'operazione pi\u00f9 stabile. Si noti che se viene apportata una modifica alla corrente del driver, alla velocit\u00e0 di riferimento o viene apportata una modifica notevole all'hardware della stampante, sar\u00e0 necessario eseguire nuovamente il processo di ottimizzazione. Utilizzo delle macro durante l'homing \u00b6 Dopo aver completato l'homing senza sensori, il carrello verr\u00e0 premuto contro l'estremit\u00e0 del binario e lo stepper eserciter\u00e0 una forza sul telaio fino a quando il carrello non si allontana. \u00c8 una buona idea creare una macro per posizionare l'asse e allontanare immediatamente il carrello dall'estremit\u00e0 della rotaia. \u00c8 una buona idea che la macro si metta in pausa di almeno 2 secondi prima di iniziare l'homing sensorless (o altrimenti assicurarsi che non ci siano stati movimenti sullo stepper per 2 secondi). Senza ritardo \u00e8 possibile che il flag di stallo interno del driver sia ancora impostato da un movimento precedente. Pu\u00f2 anche essere utile fare in modo che quella macro imposti la corrente del driver prima della corsa di riferimento e imposti una nuova corrente dopo che il carrello si \u00e8 allontanato. Una macro di esempio potrebbe assomigliare a: [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 %} # Imposta la corrente per l'homing sensorless SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR} # Fai una pausa per assicurarti che il flag di stallo del driver sia clear G4 P2000 # Home G28 X0 # Spostamento G90 G1 X5 F1200 # Imposta corrente durante la stampa SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CUR} La macro risultante pu\u00f2 essere chiamata da una sezione di configurazione homing_override o da una START_PRINT macro . Si noti che se viene modificata la corrente del driver durante l'homing, il processo di ottimizzazione dovrebbe essere eseguito nuovamente. Suggerimenti per l'homing sensorless su CoreXY \u00b6 \u00c8 possibile utilizzare l'homing sensorless sui carrelli X e Y di una stampante CoreXY. Klipper usa lo stepper [stepper_x] per rilevare gli stalli durante l'homing del carrello X e usa lo stepper [stepper_y] per rilevare gli stalli durante l'homing del carrello Y. Utilizzare la guida alla messa a punto sopra descritta per trovare la \"sensibilit\u00e0 allo stallo\" appropriata per ciascun carrello, ma prestare attenzione alle seguenti restrizioni: Quando si utilizza l'homing sensorless su CoreXY, assicurarsi che non sia configurato hold_current per nessuno dei due stepper. Durante la messa a punto, assicurati che entrambi i carrelli X e Y siano vicini al centro dei loro binari prima di ogni tentativo di homing. Al termine dell'ottimizzazione, quando si esegue l'homing sia di X che Y, utilizzare le macro per assicurarsi che un asse sia homed per primo, quindi spostare il carrello lontano dal limite dell'asse, fare una pausa per almeno 2 secondi, quindi avviare l'orientamento dell'altro carrello. L'allontanamento dall'asse evita l'homing di un asse mentre l'altro viene premuto contro il limite dell'asse (cosa potrebbe distorcere il rilevamento dello stallo). La pausa \u00e8 necessaria per garantire che il flag di stallo del driver sia cancellata prima del homing. Un esempio di macro homing CoreXY potrebbe essere simile a: [gcode_macro HOME] gcode: G90 # Home Z G28 Z0 G1 Z10 F1200 # Home Y G28 Y0 G1 Y5 F1200 # Home X G4 P2000 G28 X0 G1 X5 F1200 Interrogazione e diagnosi delle impostazioni del driver \u00b6 Il comando DUMP_TMC \u00e8 uno strumento utile durante la configurazione e la diagnosi dei driver. Riporter\u00e0 tutti i campi configurati da Klipper cos\u00ec come tutti i campi che possono essere interrogati dal driver. Tutti i campi riportati sono definiti nella scheda tecnica Trinamic per ciascun driver. Queste schede tecniche possono essere trovate sul sito web Trinamic . Ottenere e rivedere i dati Trinamic affinch\u00e9 il conducente interpreti i risultati di DUMP_TMC. Configurazione delle impostazioni driver_XXX \u00b6 Klipper supporta la configurazione di molti campi driver di basso livello usando le impostazioni driver_XXX . Il Riferimento alla configurazione del driver TMC contiene l'elenco completo dei campi disponibili per ogni tipo di driver. Inoltre, quasi tutti i campi possono essere modificati in fase di esecuzione utilizzando il comando SET_TMC_FIELD . Ciascuno di questi campi \u00e8 definito nella scheda tecnica Trinamic per ciascun driver. Queste schede tecniche possono essere trovate sul sito web Trinamic . Si noti che i fogli dati Trinamic a volte utilizzano un'espressione che pu\u00f2 confondere un'impostazione di alto livello (come \"fine isteresi\") con un valore di campo di basso livello (ad esempio, \"HEND\"). In Klipper, driver_XXX e SET_TMC_FIELD impostano sempre il valore del campo di basso livello che viene effettivamente scritto nel driver. Quindi, ad esempio, se il foglio dati Trinamic afferma che \u00e8 necessario scrivere un valore di 3 nel campo HEND per ottenere una \"fine dell'isteresi\" di 0, impostare driver_HEND=3 per ottenere il valore di alto livello di 0. Domande comuni \u00b6 Posso usare la modalit\u00e0 StealthChop su un estrusore con anticipo della pressione? \u00b6 Molte persone usano con successo la modalit\u00e0 \"stealthChop\" con pressure advance di Klipper. Klipper implementa Smooth Pressure Advance che non introduce variazioni di velocit\u00e0 istantanee. Tuttavia, la modalit\u00e0 \"stealthChop\" pu\u00f2 produrre una coppia del motore inferiore e/o produrre un maggiore calore del motore. Potrebbe essere o meno una modalit\u00e0 adeguata per la tua particolare stampante. Continuo a ricevere gli errori \"Impossibile leggere tmc uart 'stepper_x' register IFCNT\"? \u00b6 Ci\u00f2 si verifica quando Klipper non \u00e8 in grado di comunicare con un driver tmc2208 o tmc2209. Assicurarsi che l'alimentazione del motore sia abilitata, poich\u00e9 il driver del motore passo-passo generalmente necessita dell'alimentazione del motore prima di poter comunicare con il microcontrollore. Se questo errore si verifica dopo aver eseguito il flashing di Klipper per la prima volta, \u00e8 possibile che il driver stepper sia stato precedentemente programmato in uno stato non compatibile con Klipper. Per ripristinare lo stato, rimuovere tutta l'alimentazione dalla stampante per alcuni secondi (scollegare fisicamente sia USB che le spine di alimentazione). In caso contrario, questo errore \u00e8 in genere il risultato di un cablaggio errato del pin UART o di una configurazione Klipper errata delle impostazioni del pin UART. Continuo a ricevere errori \"Unable to write tmc spi 'stepper_x' register ...\"? \u00b6 Ci\u00f2 si verifica quando Klipper non \u00e8 in grado di comunicare con un driver tmc2130 o tmc5160. Assicurarsi che l'alimentazione del motore sia abilitata, poich\u00e9 il driver del motore passo-passo generalmente necessita dell'alimentazione del motore prima di poter comunicare con il microcontrollore. In caso contrario, questo errore \u00e8 in genere il risultato di un cablaggio SPI errato, una configurazione Klipper errata delle impostazioni SPI o una configurazione incompleta dei dispositivi su un bus SPI. Nota che se il driver si trova su un bus SPI condiviso con pi\u00f9 dispositivi, assicurati di configurare completamente ogni dispositivo su quel bus SPI condiviso in Klipper. Se un dispositivo su un bus SPI condiviso non \u00e8 configurato, potrebbe rispondere in modo errato a comandi non previsti e danneggiare la comunicazione con il dispositivo previsto. Se \u00e8 presente un dispositivo su un bus SPI condiviso che non pu\u00f2 essere configurato in Klipper, utilizzare una sezione di configurazione static_digital_output per impostare il pin CS del dispositivo inutilizzato alto (in modo che non tenti utilizzare il bus SPI). Lo schema della scheda \u00e8 spesso un utile riferimento per trovare quali dispositivi si trovano su un bus SPI e i pin associati. Perch\u00e9 ho ricevuto un errore \"TMC reports error: ...\"? \u00b6 Questo tipo di errore indica che il driver TMC ha rilevato un problema e si \u00e8 disabilitato. Cio\u00e8, il conducente ha smesso di mantenere la sua posizione e ha ignorato i comandi di movimento. Se Klipper rileva che un driver attivo si \u00e8 disabilitato, la stampante passer\u00e0 allo stato di \"spegnimento\". \u00c8 anche possibile che si verifichi un arresto TMC segnala errore a causa di errori SPI che impediscono la comunicazione con il driver (su tmc2130, tmc5160 o tmc2660). Se ci\u00f2 si verifica, \u00e8 normale che lo stato del driver riportato mostri 00000000 o ffffffff , ad esempio: TMC reports error: DRV_STATUS: ffffffff ... O TMC reports error: READRSP@RDSEL2: 00000000 ... . Tale errore pu\u00f2 essere dovuto a un problema di cablaggio SPI o pu\u00f2 essere dovuto a un ripristino automatico o a un guasto del driver TMC. Alcuni errori comuni e suggerimenti per diagnosticarli: TMC segnala l'errore: ... ot=1(OvertempError!) \u00b6 Ci\u00f2 indica che il driver del motore si \u00e8 disabilitato perch\u00e9 \u00e8 diventato troppo caldo. Le soluzioni tipiche consistono nel ridurre la corrente del motore passo-passo, aumentare il raffreddamento sul driver del motore passo-passo e/o aumentare il raffreddamento sul motore passo-passo. TMC segnala un errore: ... ShortToGND O LowSideShort \u00b6 Ci\u00f2 indica che il driver si \u00e8 disabilitato perch\u00e9 ha rilevato una corrente molto elevata che passa attraverso il driver. Ci\u00f2 potrebbe indicare un filo allentato o in cortocircuito al motore passo-passo o all'interno del motore passo-passo stesso. Questo errore pu\u00f2 verificarsi anche se si utilizza la modalit\u00e0 StealthChop e il driver TMC non \u00e8 in grado di prevedere con precisione il carico meccanico del motore. (Se il driver fa una previsione scadente, potrebbe inviare troppa corrente attraverso il motore e attivare il proprio rilevamento di sovracorrente.) Per verificarlo, disabilitare la modalit\u00e0 StealthChop e verificare se gli errori continuano a verificarsi. TMC segnala un errore: ... reset=1(Reset) OR CS_ACTUAL=0(Reset?) OR SE=0(Reset?) \u00b6 Ci\u00f2 indica che il driver si \u00e8 ripristinato durante la stampa. Ci\u00f2 potrebbe essere dovuto a problemi di tensione o cablaggio. TMC segnala l'errore: ... uv_cp=1(Undervoltage!) \u00b6 Ci\u00f2 indica che il driver ha rilevato un evento di bassa tensione e si \u00e8 disabilitato. Ci\u00f2 potrebbe essere dovuto a problemi di cablaggio o alimentazione. Come si regola la modalit\u00e0 spreadCycle/coolStep/etc. sui miei driver? \u00b6 Il sito web Trinamic contiene guide sulla configurazione dei driver. Queste guide sono spesso tecniche, di basso livello e potrebbero richiedere hardware specializzato. In ogni caso, sono la migliore fonte di informazioni.","title":"Driver TMC"},{"location":"TMC_Drivers.html#driver-tmc","text":"Questo documento fornisce informazioni sull'utilizzo dei driver Trinamic per motori stepper in modalit\u00e0 SPI/UART su Klipper. Klipper pu\u00f2 anche utilizzare i driver Trinamic nella loro \"modalit\u00e0 standalone\". Tuttavia, quando i driver sono in questa modalit\u00e0, non \u00e8 necessaria alcuna configurazione speciale di Klipper e le funzionalit\u00e0 avanzate di Klipper discusse in questo documento non sono disponibili. Oltre a questo documento, assicurati di rivedere il riferimento alla configurazione del driver TMC .","title":"Driver TMC"},{"location":"TMC_Drivers.html#regolazione-della-corrente-del-motore","text":"Una corrente pi\u00f9 alta del driver aumenta la precisione del posizionamento e la coppia. Tuttavia, una corrente pi\u00f9 elevata aumenta anche il calore prodotto dal motore passo-passo e dal driver del motore passo-passo. Se il driver del motore passo-passo si surriscalda, si disabiliter\u00e0 e Klipper segnaler\u00e0 un errore. Se il motore passo-passo si surriscalda, perde coppia e precisione di posizionamento. (Se diventa molto caldo, potrebbe anche fondere le parti di plastica attaccate o vicino ad esso.) Come consiglio generale per l'ottimizzazione, preferire valori di corrente pi\u00f9 elevati purch\u00e9 il motore passo-passo non si surriscaldi troppo e il driver del motore passo-passo non segnali avvisi o errori. In generale, va bene che il motore passo-passo sia caldo, ma non dovrebbe diventare cos\u00ec caldo da risultare doloroso al tatto.","title":"Regolazione della corrente del motore"},{"location":"TMC_Drivers.html#preferibilmente-non-specificare-un-hold_current","text":"Se si configura un hold_current , il driver TMC pu\u00f2 ridurre la corrente al motore passo-passo quando rileva che il passo-passo non si sta muovendo. Tuttavia, la variazione della corrente del motore pu\u00f2 di per s\u00e9 introdurre il movimento del motore. Ci\u00f2 pu\u00f2 verificarsi a causa di \"forze di arresto\" all'interno del motore passo-passo (il magnete permanente nel rotore tira verso i denti di ferro nello statore) o a causa di forze esterne sul carrello dell'asse. La maggior parte dei motori passo-passo non otterr\u00e0 un beneficio significativo dalla riduzione della corrente durante le normali stampe, perch\u00e9 pochi movimenti di stampa lasceranno un motore passo-passo inattivo per un tempo sufficientemente lungo da attivare la funzione hold_current . Ed \u00e8 improbabile che si vogliano introdurre sottili artefatti di stampa nelle poche mosse di stampa che lasciano uno stepper inattivo sufficientemente a lungo. Se si desidera ridurre la corrente ai motori durante le routine di avvio della stampa, considerare l'emissione di comandi SET_TMC_CURRENT in una START_PRINT macro per regolare la corrente prima e dopo i normali spostamenti di stampa. Alcune stampanti con motori Z dedicati che sono inattivi durante i normali movimenti di stampa (nessuna bed_mesho, nessuna inclinazione_piatto, nessuna correzione_inclinazione Z, nessuna stampa in \"modalit\u00e0 vaso\", ecc.) potrebbero scoprire che i motori Z funzionano a temperature pi\u00f9 basse con un hold_current . Se si implementa questo, assicurarsi di prendere in considerazione questo tipo di movimento dell'asse Z non comandato durante il livellamento del piatto, il rilevamento del piatto, la calibrazione della sonda e simili. Anche driver_TPOWERDOWN e driver_IHOLDDELAY dovrebbero essere calibrati di conseguenza. Se non sei sicuro, preferisci non specificare un hold_current .","title":"Preferibilmente non specificare un hold_current"},{"location":"TMC_Drivers.html#impostazione-della-modalita-spreadcycle-rispetto-a-stealthchop","text":"Per impostazione predefinita, Klipper mette i driver TMC in modalit\u00e0 \"spreadCycle\". Se il driver supporta \"stealthChop\", pu\u00f2 essere abilitato aggiungendo stealthchop_threshold: 999999 alla sezione di configurazione di TMC. In generale, la modalit\u00e0 SpreadCycle fornisce una coppia maggiore e una maggiore precisione di posizionamento rispetto alla modalit\u00e0 StealthChop. Tuttavia, la modalit\u00e0 StealthChop pu\u00f2 produrre un rumore udibile notevolmente inferiore su alcune stampanti. I test di confronto delle modalit\u00e0 hanno mostrato un \"ritardo posizionale\" aumentato di circa il 75% di un passo completo durante i movimenti a velocit\u00e0 costante quando si utilizza la modalit\u00e0 StealthChop (ad esempio, su una stampante con distanza_rotazione di 40 mm e 200 passi_per_rotazione, la deviazione di posizione dei movimenti a velocit\u00e0 costante \u00e8 aumentata di ~0,150 mm). Tuttavia, questo \"ritardo nell'ottenimento della posizione richiesta\" potrebbe non manifestarsi come un difetto di stampa significativo e si potrebbe preferire il comportamento pi\u00f9 silenzioso della modalit\u00e0 stealthChop. Si consiglia di utilizzare sempre la modalit\u00e0 \"spreadCycle\" (non specificando stealthchop_threshold ) o di utilizzare sempre la modalit\u00e0 \"stealthChop\" (impostando stealthchop_threshold su 999999). Sfortunatamente, i driver spesso producono risultati scadenti e confusi se la modalit\u00e0 cambia mentre il motore \u00e8 a una velocit\u00e0 diversa da zero.","title":"Impostazione della modalit\u00e0 \"spreadCycle\" rispetto a \"stealthChop\""},{"location":"TMC_Drivers.html#limpostazione-dellinterpolazione-tmc-introduce-una-piccola-deviazione-di-posizione","text":"L'impostazione interpolate del driver TMC pu\u00f2 ridurre il rumore udibile del movimento della stampante a costo di introdurre un piccolo errore di posizione sistemico. Questo errore di posizione sistematico deriva dal ritardo del driver nell'esecuzione dei \"passi\" inviati da Klipper. Durante i movimenti a velocit\u00e0 costante, questo ritardo si traduce in un errore di posizione di quasi mezzo micropasso configurato (pi\u00f9 precisamente, l'errore \u00e8 di mezzo micropasso meno un 512esimo di un passo intero). Ad esempio, su un asse con una distanza_rotazione di 40 mm, 200 passi_per_rotazione e 16 micropassi, l'errore sistemico introdotto durante i movimenti a velocit\u00e0 costante \u00e8 ~0,006 mm. Per una migliore precisione di posizionamento, considerare l'utilizzo della modalit\u00e0 SpreadCycle e disabilitare l'interpolazione (impostare interpolate: False nella configurazione del driver TMC). Se configurato in questo modo, \u00e8 possibile aumentare l'impostazione microstep per ridurre il rumore udibile durante il movimento del passo-passo. Tipicamente, un'impostazione microstep di 64 o 128 avr\u00e0 un rumore udibile simile all'interpolazione e lo far\u00e0 senza introdurre un errore posizionale sistemico. Se si utilizza la modalit\u00e0 StealthChop, l'imprecisione posizionale dell'interpolazione \u00e8 piccola rispetto all'imprecisione posizionale introdotta dalla modalit\u00e0 StealthChop. Pertanto l'interpolazione dell'ottimizzazione non \u00e8 considerata utile in modalit\u00e0 StealthChop e si pu\u00f2 lasciare l'interpolazione nel suo stato predefinito.","title":"L'impostazione dell'interpolazione TMC introduce una piccola deviazione di posizione"},{"location":"TMC_Drivers.html#homing-sensorless","text":"L'homing senza sensori consente di posizionare un asse senza la necessit\u00e0 di un finecorsa fisico. Invece, il carrello sull'asse viene spostato nel finecorsa meccanico facendo perdere passi al motore passo-passo. Il driver stepper rileva i passi persi e lo indica all'MCU di controllo (Klipper) attivando un pin. Queste informazioni possono essere utilizzate da Klipper come fine corsa per l'asse. Questa guida illustra l'impostazione dell'homing sensorless per l'asse X della stampante (cartesiana). Tuttavia, funziona allo stesso modo con tutti gli altri assi (che richiedono un fine corsa). Dovresti configurarlo e sintonizzarlo per un asse alla volta.","title":"Homing Sensorless"},{"location":"TMC_Drivers.html#limitazioni","text":"Assicurati che i tuoi componenti meccanici siano in grado di sopportare il carico del carrello che urta ripetutamente il limite dell'asse. Soprattutto le viti di comando potrebbero generare molta forza. L'homing di un asse Z facendo urtare l'ugello sulla superficie di stampa potrebbe non essere una buona idea. Per ottenere i migliori risultati, verificare che il carrello dell'asse stabilisca un contatto stabile con il limite dell'asse. Inoltre, l'homing sensorless potrebbe non essere sufficientemente preciso per la tua stampante. Sebbene l'homing degli assi X e Y su una macchina cartesiana possa funzionare bene, l'homing dell'asse Z in genere non \u00e8 sufficientemente preciso e pu\u00f2 comportare un'altezza del primo strato incoerente. L'homing di una stampante delta sensorless non \u00e8 consigliabile a causa della mancanza di precisione. Inoltre, il rilevamento dello stallo del driver passo-passo dipende dal carico meccanico sul motore, dalla corrente del motore e dalla temperatura del motore (resistenza della bobina). L'homing sensorless funziona meglio a velocit\u00e0 medie del motore. Per velocit\u00e0 molto basse (inferiori a 10 giri/min) il motore non genera una significativa EMF di ritorno e il TMC non \u00e8 in grado di rilevare in modo affidabile gli stalli del motore. Inoltre, a velocit\u00e0 molto elevate, l'EMF di ritorno del motore si avvicina alla tensione di alimentazione del motore, quindi il TMC non \u00e8 pi\u00f9 in grado di rilevare gli stalli. Si consiglia di dare un'occhiata alla scheda tecnica del proprio TMC specifico. L\u00ec puoi anche trovare maggiori dettagli sulle limitazioni di questa configurazione.","title":"Limitazioni"},{"location":"TMC_Drivers.html#prerequisiti","text":"Sono necessari alcuni prerequisiti per utilizzare l'homing sensorless: Driver passo-passo TMC compatibile con stallGuard (tmc2130, tmc2209, tmc2660 o tmc5160). Interfaccia SPI/UART del driver TMC cablata al microcontrollore (la modalit\u00e0 stand-alone non funziona). Il pin \"DIAG\" o \"SG_TST\" appropriato del driver TMC collegato al microcontrollore. I passaggi nel documento config checks devono essere eseguiti per confermare che i motori passo-passo siano configurati e funzionino correttamente.","title":"Prerequisiti"},{"location":"TMC_Drivers.html#messa-a-punto","text":"La procedura qui descritta prevede sei passaggi principali: Scegli una velocit\u00e0 di homing. Configura il file printer.cfg per abilitare l'homing sensorless. Trova l'impostazione stallguard con la massima sensibilit\u00e0 che funziona con successo. Trova l'impostazione stallguard con la sensibilit\u00e0 pi\u00f9 bassa che effettua homing con successo con un solo tocco. Aggiorna il printer.cfg con l'impostazione di stallguard desiderata. Crea o aggiorna le macro printer.cfg per homing in modo coerente.","title":"Messa a punto"},{"location":"TMC_Drivers.html#scegli-la-velocita-di-homing","text":"La velocit\u00e0 di homing \u00e8 una scelta importante quando si esegue l'homing senza sensori. \u00c8 consigliabile utilizzare una velocit\u00e0 di riferimento bassa in modo che il carrello non eserciti una forza eccessiva sul telaio quando entra in contatto con l'estremit\u00e0 della rotaia. Tuttavia, i driver TMC non sono in grado di rilevare in modo affidabile uno stallo a velocit\u00e0 molto basse. Un buon punto di partenza per la velocit\u00e0 di homing \u00e8 che il motore passo-passo esegua una rotazione completa ogni due secondi. Per molti assi questa sar\u00e0 la rotation_distance divisa per due. Per esempio: [stepper_x] rotation_distance: 40 homing_speed: 20 ...","title":"Scegli la velocit\u00e0 di homing"},{"location":"TMC_Drivers.html#configura-printercfg-per-lhoming-sensorless","text":"L'impostazione homing_retract_dist deve essere impostata su zero nella sezione di configurazione stepper_x per disabilitare il secondo movimento di homing. Il secondo tentativo di homing non aggiunge valore quando si utilizza l'homing sensorless, non funzioner\u00e0 in modo affidabile e confonder\u00e0 il processo di ottimizzazione. Assicurati che un'impostazione hold_current non sia specificata nella sezione del driver TMC del file config. (Se viene impostata una hold_current, dopo che \u00e8 stato stabilito il contatto, il motore si arresta mentre il carrello viene premuto contro l'estremit\u00e0 del binario e la riduzione della corrente mentre si trova in quella posizione pu\u00f2 causare il movimento del carrello, il che si traduce in prestazioni scadenti e confonde il processo di regolazione.) \u00c8 necessario configurare i pin di homing sensorless e configurare le impostazioni iniziali di \"stallguard\". Una configurazione di esempio tmc2209 per un asse X potrebbe essere simile a: [tmc2209 stepper_x] diag_pin: ^PA1 # Impostare sul pin MCU collegato al pin TMC DIAG driver_SGTHRS: 255 #255 \u00e8 il valore pi\u00f9 sensibile, 0 \u00e8 il meno sensibile ... [stepper_x] endstop_pin: tmc2209_stepper_x:virtual_endstop homing_retract_dist: 0 ... Un esempio di configurazione tmc2130 o tmc5160 potrebbe essere simile a: [tmc2130 stepper_x] diag1_pin: ^!PA1 # Pin collegato al pin TMC DIAG1 (o utilizzare pin diag0_pin / DIAG0) driver_SGT: -64 # -64 \u00e8 il valore pi\u00f9 sensibile, 63 \u00e8 il meno sensibile ... [stepper_x] endstop_pin: tmc2130_stepper_x:virtual_endstop homing_retract_dist: 0 ... Un esempio di configurazione di tmc2660 potrebbe essere simile a: [tmc2660 stepper_x] driver_SGT: -64 # -64 \u00e8 il valore pi\u00f9 sensibile, 63 \u00e8 il meno sensibile ... [stepper_x] endstop_pin: ^PA1 # Pin collegato al pin TMC SG_TST homing_retract_dist: 0 ... Gli esempi sopra mostrano solo le impostazioni specifiche per l'homing sensorless. Vedere il riferimento alla configurazione per tutte le opzioni disponibili.","title":"Configura printer.cfg per l'homing sensorless"},{"location":"TMC_Drivers.html#trova-la-massima-sensibilita-che-porta-a-homing-con-successo","text":"Posizionare il carrello vicino al centro del binario. Utilizzare il comando SET_TMC_FIELD per impostare la sensibilit\u00e0 pi\u00f9 alta. Per tmc2209: SET_TMC_FIELD STEPPER=stepper_x FIELD=SGTHRS VALUE=255 Per tmc2130, tmc5160 e tmc2660: SET_TMC_FIELD STEPPER=stepper_x FIELD=sgt VALUE=-64 Quindi inviare un comando G28 X0 e verificare che l'asse non si muova affatto o smetta rapidamente di muoversi. Se l'asse non si ferma, inviare un M112 per fermare la stampante - qualcosa non \u00e8 corretto con il cablaggio o la configurazione dei pin diag/sg_tst e deve essere corretto prima di continuare. Quindi, diminuire progressivamente la sensibilit\u00e0 dell'impostazione VALUE ed eseguire nuovamente i comandi SET_TMC_FIELD G28 X0 per trovare la sensibilit\u00e0 pi\u00f9 alta che fa s\u00ec che il carrello si muova con successo fino all'arresto e si arresti. (Per i driver tmc2209 questo diminuir\u00e0 SGTHRS, per altri conducenti aumenter\u00e0 il sgt.) Assicurati di iniziare ogni tentativo con il carrello vicino al centro del binario (se necessario, emetti M84 e quindi sposta manualmente il carrello sul centro). Dovrebbe essere possibile trovare la sensibilit\u00e0 pi\u00f9 alta che si adatta in modo affidabile (le impostazioni con una sensibilit\u00e0 pi\u00f9 alta comportano movimenti piccoli o nulli). Nota il valore trovato come sensibilit\u00e0_massima . (Se si ottiene la sensibilit\u00e0 minima possibile (SGTHRS=0 o sgt=63) senza alcun movimento del carrello, allora qualcosa non \u00e8 corretto con il cablaggio o la configurazione dei pin diag/sg_tst e deve essere corretto prima di continuare.) Quando si cerca la sensibilit\u00e0_massima, pu\u00f2 essere conveniente passare a diverse impostazioni VALUE (in modo da dividere in due il parametro VALUE). In tal caso, prepararsi a emettere un comando M112 per arrestare la stampante, poich\u00e9 un'impostazione con una sensibilit\u00e0 molto bassa potrebbe far \"sbattere\" ripetutamente l'asse contro l'estremit\u00e0 del binario. Assicurati di attendere un paio di secondi tra ogni tentativo di homing. Dopo che il driver TMC ha rilevato uno stallo, potrebbe volerci un po' di tempo per cancellare il suo indicatore interno ed essere in grado di rilevare un altro stallo. Durante questi test di ottimizzazione, se un comando G28 X0 non si sposta fino al limite dell'asse, prestare attenzione nell'emettere qualsiasi comando di movimento regolare (ad es. G1 ). Klipper non avr\u00e0 una corretta comprensione della posizione del carrello e un comando di spostamento potrebbe causare risultati indesiderati e confusi.","title":"Trova la massima sensibilit\u00e0 che porta a homing con successo"},{"location":"TMC_Drivers.html#trova-la-sensibilita-piu-bassa-che-porta-a-homing-con-un-solo-tocco","text":"Quando si effettua l'homing con il valore maximum_sensitivity trovato, l'asse dovrebbe spostarsi all'estremit\u00e0 del binario e fermarsi con un \"tocco singolo\", ovvero non dovrebbe esserci un \"clic\" o un \"sbattere\". (Se c'\u00e8 un suono che sbatte o scatta alla sensibilit\u00e0_massima, allora la velocit\u00e0 di riferimento potrebbe essere troppo bassa, la corrente del driver potrebbe essere troppo bassa o la corsa di riferimento senza sensore potrebbe non essere una buona scelta per l'asse.) Il passo successivo \u00e8 spostare di nuovo continuamente il carrello in una posizione vicino al centro della rotaia, diminuire la sensibilit\u00e0 ed eseguire i comandi SET_TMC_FIELD G28 X0 - l'obiettivo ora \u00e8 trovare la sensibilit\u00e0 pi\u00f9 bassa che risulti ancora nel la carrozza torna con successo al punto di riferimento con un \"tocco singolo\". Cio\u00e8, non \"sbatte\" o \"clic\" quando viene a contatto con l'estremit\u00e0 del binario. Nota il valore trovato come sensibilit\u00e0_minima .","title":"Trova la sensibilit\u00e0 pi\u00f9 bassa che porta a homing con un solo tocco"},{"location":"TMC_Drivers.html#aggiorna-printercfg-con-il-valore-della-sensibilita","text":"Dopo aver trovato sensibilit\u00e0_massima e sensibilit\u00e0_minima , utilizzare una calcolatrice per ottenere la sensibilit\u00e0 consigliata come sensibilit\u00e0_minima + (sensibilit\u00e0_massima - sensibilit\u00e0_minima)/3 . La sensibilit\u00e0 consigliata dovrebbe essere compresa tra il minimo e il massimo, ma leggermente pi\u00f9 vicino al minimo. Arrotonda il valore finale al valore intero pi\u00f9 vicino. Per tmc2209 impostalo nella configurazione come driver_SGTHRS , per altri driver TMC impostalo nella configurazione come driver_SGT . Se l'intervallo tra sensibilit\u00e0_massima e sensibilit\u00e0_minima \u00e8 piccolo (ad esempio, inferiore a 5), potrebbe risultare in un homing instabile. Una velocit\u00e0 di riferimento pi\u00f9 elevata pu\u00f2 aumentare il range e rendere l'operazione pi\u00f9 stabile. Si noti che se viene apportata una modifica alla corrente del driver, alla velocit\u00e0 di riferimento o viene apportata una modifica notevole all'hardware della stampante, sar\u00e0 necessario eseguire nuovamente il processo di ottimizzazione.","title":"Aggiorna printer.cfg con il valore della sensibilit\u00e0"},{"location":"TMC_Drivers.html#utilizzo-delle-macro-durante-lhoming","text":"Dopo aver completato l'homing senza sensori, il carrello verr\u00e0 premuto contro l'estremit\u00e0 del binario e lo stepper eserciter\u00e0 una forza sul telaio fino a quando il carrello non si allontana. \u00c8 una buona idea creare una macro per posizionare l'asse e allontanare immediatamente il carrello dall'estremit\u00e0 della rotaia. \u00c8 una buona idea che la macro si metta in pausa di almeno 2 secondi prima di iniziare l'homing sensorless (o altrimenti assicurarsi che non ci siano stati movimenti sullo stepper per 2 secondi). Senza ritardo \u00e8 possibile che il flag di stallo interno del driver sia ancora impostato da un movimento precedente. Pu\u00f2 anche essere utile fare in modo che quella macro imposti la corrente del driver prima della corsa di riferimento e imposti una nuova corrente dopo che il carrello si \u00e8 allontanato. Una macro di esempio potrebbe assomigliare a: [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 %} # Imposta la corrente per l'homing sensorless SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR} # Fai una pausa per assicurarti che il flag di stallo del driver sia clear G4 P2000 # Home G28 X0 # Spostamento G90 G1 X5 F1200 # Imposta corrente durante la stampa SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CUR} La macro risultante pu\u00f2 essere chiamata da una sezione di configurazione homing_override o da una START_PRINT macro . Si noti che se viene modificata la corrente del driver durante l'homing, il processo di ottimizzazione dovrebbe essere eseguito nuovamente.","title":"Utilizzo delle macro durante l'homing"},{"location":"TMC_Drivers.html#suggerimenti-per-lhoming-sensorless-su-corexy","text":"\u00c8 possibile utilizzare l'homing sensorless sui carrelli X e Y di una stampante CoreXY. Klipper usa lo stepper [stepper_x] per rilevare gli stalli durante l'homing del carrello X e usa lo stepper [stepper_y] per rilevare gli stalli durante l'homing del carrello Y. Utilizzare la guida alla messa a punto sopra descritta per trovare la \"sensibilit\u00e0 allo stallo\" appropriata per ciascun carrello, ma prestare attenzione alle seguenti restrizioni: Quando si utilizza l'homing sensorless su CoreXY, assicurarsi che non sia configurato hold_current per nessuno dei due stepper. Durante la messa a punto, assicurati che entrambi i carrelli X e Y siano vicini al centro dei loro binari prima di ogni tentativo di homing. Al termine dell'ottimizzazione, quando si esegue l'homing sia di X che Y, utilizzare le macro per assicurarsi che un asse sia homed per primo, quindi spostare il carrello lontano dal limite dell'asse, fare una pausa per almeno 2 secondi, quindi avviare l'orientamento dell'altro carrello. L'allontanamento dall'asse evita l'homing di un asse mentre l'altro viene premuto contro il limite dell'asse (cosa potrebbe distorcere il rilevamento dello stallo). La pausa \u00e8 necessaria per garantire che il flag di stallo del driver sia cancellata prima del homing. Un esempio di macro homing CoreXY potrebbe essere simile a: [gcode_macro HOME] gcode: G90 # Home Z G28 Z0 G1 Z10 F1200 # Home Y G28 Y0 G1 Y5 F1200 # Home X G4 P2000 G28 X0 G1 X5 F1200","title":"Suggerimenti per l'homing sensorless su CoreXY"},{"location":"TMC_Drivers.html#interrogazione-e-diagnosi-delle-impostazioni-del-driver","text":"Il comando DUMP_TMC \u00e8 uno strumento utile durante la configurazione e la diagnosi dei driver. Riporter\u00e0 tutti i campi configurati da Klipper cos\u00ec come tutti i campi che possono essere interrogati dal driver. Tutti i campi riportati sono definiti nella scheda tecnica Trinamic per ciascun driver. Queste schede tecniche possono essere trovate sul sito web Trinamic . Ottenere e rivedere i dati Trinamic affinch\u00e9 il conducente interpreti i risultati di DUMP_TMC.","title":"Interrogazione e diagnosi delle impostazioni del driver"},{"location":"TMC_Drivers.html#configurazione-delle-impostazioni-driver_xxx","text":"Klipper supporta la configurazione di molti campi driver di basso livello usando le impostazioni driver_XXX . Il Riferimento alla configurazione del driver TMC contiene l'elenco completo dei campi disponibili per ogni tipo di driver. Inoltre, quasi tutti i campi possono essere modificati in fase di esecuzione utilizzando il comando SET_TMC_FIELD . Ciascuno di questi campi \u00e8 definito nella scheda tecnica Trinamic per ciascun driver. Queste schede tecniche possono essere trovate sul sito web Trinamic . Si noti che i fogli dati Trinamic a volte utilizzano un'espressione che pu\u00f2 confondere un'impostazione di alto livello (come \"fine isteresi\") con un valore di campo di basso livello (ad esempio, \"HEND\"). In Klipper, driver_XXX e SET_TMC_FIELD impostano sempre il valore del campo di basso livello che viene effettivamente scritto nel driver. Quindi, ad esempio, se il foglio dati Trinamic afferma che \u00e8 necessario scrivere un valore di 3 nel campo HEND per ottenere una \"fine dell'isteresi\" di 0, impostare driver_HEND=3 per ottenere il valore di alto livello di 0.","title":"Configurazione delle impostazioni driver_XXX"},{"location":"TMC_Drivers.html#domande-comuni","text":"","title":"Domande comuni"},{"location":"TMC_Drivers.html#posso-usare-la-modalita-stealthchop-su-un-estrusore-con-anticipo-della-pressione","text":"Molte persone usano con successo la modalit\u00e0 \"stealthChop\" con pressure advance di Klipper. Klipper implementa Smooth Pressure Advance che non introduce variazioni di velocit\u00e0 istantanee. Tuttavia, la modalit\u00e0 \"stealthChop\" pu\u00f2 produrre una coppia del motore inferiore e/o produrre un maggiore calore del motore. Potrebbe essere o meno una modalit\u00e0 adeguata per la tua particolare stampante.","title":"Posso usare la modalit\u00e0 StealthChop su un estrusore con anticipo della pressione?"},{"location":"TMC_Drivers.html#continuo-a-ricevere-gli-errori-impossibile-leggere-tmc-uart-stepper_x-register-ifcnt","text":"Ci\u00f2 si verifica quando Klipper non \u00e8 in grado di comunicare con un driver tmc2208 o tmc2209. Assicurarsi che l'alimentazione del motore sia abilitata, poich\u00e9 il driver del motore passo-passo generalmente necessita dell'alimentazione del motore prima di poter comunicare con il microcontrollore. Se questo errore si verifica dopo aver eseguito il flashing di Klipper per la prima volta, \u00e8 possibile che il driver stepper sia stato precedentemente programmato in uno stato non compatibile con Klipper. Per ripristinare lo stato, rimuovere tutta l'alimentazione dalla stampante per alcuni secondi (scollegare fisicamente sia USB che le spine di alimentazione). In caso contrario, questo errore \u00e8 in genere il risultato di un cablaggio errato del pin UART o di una configurazione Klipper errata delle impostazioni del pin UART.","title":"Continuo a ricevere gli errori \"Impossibile leggere tmc uart 'stepper_x' register IFCNT\"?"},{"location":"TMC_Drivers.html#continuo-a-ricevere-errori-unable-to-write-tmc-spi-stepper_x-register","text":"Ci\u00f2 si verifica quando Klipper non \u00e8 in grado di comunicare con un driver tmc2130 o tmc5160. Assicurarsi che l'alimentazione del motore sia abilitata, poich\u00e9 il driver del motore passo-passo generalmente necessita dell'alimentazione del motore prima di poter comunicare con il microcontrollore. In caso contrario, questo errore \u00e8 in genere il risultato di un cablaggio SPI errato, una configurazione Klipper errata delle impostazioni SPI o una configurazione incompleta dei dispositivi su un bus SPI. Nota che se il driver si trova su un bus SPI condiviso con pi\u00f9 dispositivi, assicurati di configurare completamente ogni dispositivo su quel bus SPI condiviso in Klipper. Se un dispositivo su un bus SPI condiviso non \u00e8 configurato, potrebbe rispondere in modo errato a comandi non previsti e danneggiare la comunicazione con il dispositivo previsto. Se \u00e8 presente un dispositivo su un bus SPI condiviso che non pu\u00f2 essere configurato in Klipper, utilizzare una sezione di configurazione static_digital_output per impostare il pin CS del dispositivo inutilizzato alto (in modo che non tenti utilizzare il bus SPI). Lo schema della scheda \u00e8 spesso un utile riferimento per trovare quali dispositivi si trovano su un bus SPI e i pin associati.","title":"Continuo a ricevere errori \"Unable to write tmc spi 'stepper_x' register ...\"?"},{"location":"TMC_Drivers.html#perche-ho-ricevuto-un-errore-tmc-reports-error","text":"Questo tipo di errore indica che il driver TMC ha rilevato un problema e si \u00e8 disabilitato. Cio\u00e8, il conducente ha smesso di mantenere la sua posizione e ha ignorato i comandi di movimento. Se Klipper rileva che un driver attivo si \u00e8 disabilitato, la stampante passer\u00e0 allo stato di \"spegnimento\". \u00c8 anche possibile che si verifichi un arresto TMC segnala errore a causa di errori SPI che impediscono la comunicazione con il driver (su tmc2130, tmc5160 o tmc2660). Se ci\u00f2 si verifica, \u00e8 normale che lo stato del driver riportato mostri 00000000 o ffffffff , ad esempio: TMC reports error: DRV_STATUS: ffffffff ... O TMC reports error: READRSP@RDSEL2: 00000000 ... . Tale errore pu\u00f2 essere dovuto a un problema di cablaggio SPI o pu\u00f2 essere dovuto a un ripristino automatico o a un guasto del driver TMC. Alcuni errori comuni e suggerimenti per diagnosticarli:","title":"Perch\u00e9 ho ricevuto un errore \"TMC reports error: ...\"?"},{"location":"TMC_Drivers.html#tmc-segnala-lerrore-ot1overtemperror","text":"Ci\u00f2 indica che il driver del motore si \u00e8 disabilitato perch\u00e9 \u00e8 diventato troppo caldo. Le soluzioni tipiche consistono nel ridurre la corrente del motore passo-passo, aumentare il raffreddamento sul driver del motore passo-passo e/o aumentare il raffreddamento sul motore passo-passo.","title":"TMC segnala l'errore: ... ot=1(OvertempError!)"},{"location":"TMC_Drivers.html#tmc-segnala-un-errore-shorttognd-o-lowsideshort","text":"Ci\u00f2 indica che il driver si \u00e8 disabilitato perch\u00e9 ha rilevato una corrente molto elevata che passa attraverso il driver. Ci\u00f2 potrebbe indicare un filo allentato o in cortocircuito al motore passo-passo o all'interno del motore passo-passo stesso. Questo errore pu\u00f2 verificarsi anche se si utilizza la modalit\u00e0 StealthChop e il driver TMC non \u00e8 in grado di prevedere con precisione il carico meccanico del motore. (Se il driver fa una previsione scadente, potrebbe inviare troppa corrente attraverso il motore e attivare il proprio rilevamento di sovracorrente.) Per verificarlo, disabilitare la modalit\u00e0 StealthChop e verificare se gli errori continuano a verificarsi.","title":"TMC segnala un errore: ... ShortToGND O LowSideShort"},{"location":"TMC_Drivers.html#tmc-segnala-un-errore-reset1reset-or-cs_actual0reset-or-se0reset","text":"Ci\u00f2 indica che il driver si \u00e8 ripristinato durante la stampa. Ci\u00f2 potrebbe essere dovuto a problemi di tensione o cablaggio.","title":"TMC segnala un errore: ... reset=1(Reset) OR CS_ACTUAL=0(Reset?) OR SE=0(Reset?)"},{"location":"TMC_Drivers.html#tmc-segnala-lerrore-uv_cp1undervoltage","text":"Ci\u00f2 indica che il driver ha rilevato un evento di bassa tensione e si \u00e8 disabilitato. Ci\u00f2 potrebbe essere dovuto a problemi di cablaggio o alimentazione.","title":"TMC segnala l'errore: ... uv_cp=1(Undervoltage!)"},{"location":"TMC_Drivers.html#come-si-regola-la-modalita-spreadcyclecoolstepetc-sui-miei-driver","text":"Il sito web Trinamic contiene guide sulla configurazione dei driver. Queste guide sono spesso tecniche, di basso livello e potrebbero richiedere hardware specializzato. In ogni caso, sono la migliore fonte di informazioni.","title":"Come si regola la modalit\u00e0 spreadCycle/coolStep/etc. sui miei driver?"},{"location":"TSL1401CL_Filament_Width_Sensor.html","text":"Sensore TSL1401CL di larghezza del filamento \u00b6 Questo documento descrive il modulo host del sensore di larghezza del filamento (Filament Width Sensor). L'hardware utilizzato per lo sviluppo di questo modulo host si basa sull'array di sensori lineari TSL1401CL, ma pu\u00f2 funzionare con qualsiasi array di sensori dotato di uscita analogica. Puoi trovare design su Thingiverse . Per utilizzare un array di sensori come sensore di larghezza del filamento, leggere Config Reference e G-Code documentation . Come funziona? \u00b6 Il sensore genera un'uscita analogica in base alla larghezza calcolata del filamento. La tensione di uscita \u00e8 sempre uguale alla larghezza del filamento rilevata (es. 1.65v, 1.70v, 3.0v). Il modulo host monitora le variazioni di tensione e regola il moltiplicatore di estrusione. Note: \u00b6 Letture del sensore eseguite con intervalli di 10 mm predefiniti Se necessario, sei libero di modificare questa impostazione modificando il parametro MEASUREMENT_INTERVAL_MM nel file filament_width_sensor.py .","title":"Sensore TSL1401CL di larghezza del filamento"},{"location":"TSL1401CL_Filament_Width_Sensor.html#sensore-tsl1401cl-di-larghezza-del-filamento","text":"Questo documento descrive il modulo host del sensore di larghezza del filamento (Filament Width Sensor). L'hardware utilizzato per lo sviluppo di questo modulo host si basa sull'array di sensori lineari TSL1401CL, ma pu\u00f2 funzionare con qualsiasi array di sensori dotato di uscita analogica. Puoi trovare design su Thingiverse . Per utilizzare un array di sensori come sensore di larghezza del filamento, leggere Config Reference e G-Code documentation .","title":"Sensore TSL1401CL di larghezza del filamento"},{"location":"TSL1401CL_Filament_Width_Sensor.html#come-funziona","text":"Il sensore genera un'uscita analogica in base alla larghezza calcolata del filamento. La tensione di uscita \u00e8 sempre uguale alla larghezza del filamento rilevata (es. 1.65v, 1.70v, 3.0v). Il modulo host monitora le variazioni di tensione e regola il moltiplicatore di estrusione.","title":"Come funziona?"},{"location":"TSL1401CL_Filament_Width_Sensor.html#note","text":"Letture del sensore eseguite con intervalli di 10 mm predefiniti Se necessario, sei libero di modificare questa impostazione modificando il parametro MEASUREMENT_INTERVAL_MM nel file filament_width_sensor.py .","title":"Note:"},{"location":"Using_PWM_Tools.html","text":"Utilizzo dei strumenti PWM \u00b6 Questo documento descrive come impostare un laser o un mandrino controllato da PWM usando output_pin e alcune macro. Come funziona? \u00b6 Riutilizzando l'output pwm della ventola della testina di stampa, \u00e8 possibile controllare laser o mandrini. Ci\u00f2 \u00e8 utile se si utilizzano testine di stampa intercambiabili, ad esempio il cambio utensile E3D o una soluzione fai-da-te. Di solito, gli strumenti cam come LaserWeb possono essere configurati per utilizzare i comandi M3-M5 , che stanno per velocit\u00e0 mandrino CW ( M3 S[0-255] ), velocit\u00e0 mandrino CCW ( M4 S[ 0-255] ) e arresto mandrino ( M5 ). Attenzione: Quando utilizzi un laser, mantieni tutte le precauzioni di sicurezza che ti vengono in mente! I laser a diodi sono generalmente invertiti. Ci\u00f2 significa che quando l'MCU si riavvia, il laser sar\u00e0 completamente acceso per il tempo necessario al riavvio dell'MCU. Per buona misura, si raccomanda di indossare sempre occhiali laser appropriati della giusta lunghezza d'onda se il laser \u00e8 alimentato e per disconnettere il laser quando non \u00e8 necessario. Inoltre, dovresti configurare un timeout di sicurezza, in modo che quando l'host o l'MCU riscontrano un errore, lo strumento si arresti. Per un esempio di configurazione, vedere config/sample-pwm-tool.cfg . Limitazioni attuali \u00b6 Esiste una limitazione della frequenza degli aggiornamenti PWM. Pur essendo molto preciso, un aggiornamento PWM pu\u00f2 verificarsi solo ogni 0,1 secondi, rendendolo quasi inutile per l'incisione raster. Tuttavia, esiste un ramo sperimentale con i propri compromessi. A lungo termine, si prevede di aggiungere questa funzionalit\u00e0 al klipper principale. Comandi \u00b6 M3/M4 S<value> : Imposta il duty-cycle PWM. Valori compresi tra 0 e 255. M5 : Arresta l'uscita PWM al valore di spegnimento. Configurazione Laserweb \u00b6 Se utilizzi Laserweb, una configurazione funzionante sarebbe: GCODE START: M5 ; Disabilita Laser G21 ; Set units to mm G90 ; Absolute positioning G0 Z0 F7000 ; Set Non-Cutting speed GCODE END: M5 ; Disabilita Laser G91 ; relative G0 Z+20 F4000 ; G90 ; absolute GCODE HOMING: M5 ; Disabilita Laser G28 ; Home all axis TOOL ON: M3 $INTENSITY TOOL OFF: M5 ; Disabilita Laser LASER INTENSITY: S","title":"Utilizzo dei strumenti PWM"},{"location":"Using_PWM_Tools.html#utilizzo-dei-strumenti-pwm","text":"Questo documento descrive come impostare un laser o un mandrino controllato da PWM usando output_pin e alcune macro.","title":"Utilizzo dei strumenti PWM"},{"location":"Using_PWM_Tools.html#come-funziona","text":"Riutilizzando l'output pwm della ventola della testina di stampa, \u00e8 possibile controllare laser o mandrini. Ci\u00f2 \u00e8 utile se si utilizzano testine di stampa intercambiabili, ad esempio il cambio utensile E3D o una soluzione fai-da-te. Di solito, gli strumenti cam come LaserWeb possono essere configurati per utilizzare i comandi M3-M5 , che stanno per velocit\u00e0 mandrino CW ( M3 S[0-255] ), velocit\u00e0 mandrino CCW ( M4 S[ 0-255] ) e arresto mandrino ( M5 ). Attenzione: Quando utilizzi un laser, mantieni tutte le precauzioni di sicurezza che ti vengono in mente! I laser a diodi sono generalmente invertiti. Ci\u00f2 significa che quando l'MCU si riavvia, il laser sar\u00e0 completamente acceso per il tempo necessario al riavvio dell'MCU. Per buona misura, si raccomanda di indossare sempre occhiali laser appropriati della giusta lunghezza d'onda se il laser \u00e8 alimentato e per disconnettere il laser quando non \u00e8 necessario. Inoltre, dovresti configurare un timeout di sicurezza, in modo che quando l'host o l'MCU riscontrano un errore, lo strumento si arresti. Per un esempio di configurazione, vedere config/sample-pwm-tool.cfg .","title":"Come funziona?"},{"location":"Using_PWM_Tools.html#limitazioni-attuali","text":"Esiste una limitazione della frequenza degli aggiornamenti PWM. Pur essendo molto preciso, un aggiornamento PWM pu\u00f2 verificarsi solo ogni 0,1 secondi, rendendolo quasi inutile per l'incisione raster. Tuttavia, esiste un ramo sperimentale con i propri compromessi. A lungo termine, si prevede di aggiungere questa funzionalit\u00e0 al klipper principale.","title":"Limitazioni attuali"},{"location":"Using_PWM_Tools.html#comandi","text":"M3/M4 S<value> : Imposta il duty-cycle PWM. Valori compresi tra 0 e 255. M5 : Arresta l'uscita PWM al valore di spegnimento.","title":"Comandi"},{"location":"Using_PWM_Tools.html#configurazione-laserweb","text":"Se utilizzi Laserweb, una configurazione funzionante sarebbe: GCODE START: M5 ; Disabilita Laser G21 ; Set units to mm G90 ; Absolute positioning G0 Z0 F7000 ; Set Non-Cutting speed GCODE END: M5 ; Disabilita Laser G91 ; relative G0 Z+20 F4000 ; G90 ; absolute GCODE HOMING: M5 ; Disabilita Laser G28 ; Home all axis TOOL ON: M3 $INTENSITY TOOL OFF: M5 ; Disabilita Laser LASER INTENSITY: S","title":"Configurazione Laserweb"}]} \ No newline at end of file
diff --git a/it/sitemap.xml b/it/sitemap.xml
index 80b77ebb9..ada401350 100644
--- a/it/sitemap.xml
+++ b/it/sitemap.xml
@@ -2,252 +2,252 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
</urlset> \ No newline at end of file
diff --git a/it/sitemap.xml.gz b/it/sitemap.xml.gz
index 129c303f6..4d72e3f6e 100644
--- a/it/sitemap.xml.gz
+++ b/it/sitemap.xml.gz
Binary files differ
diff --git a/sitemap.xml b/sitemap.xml
index 3a67ce5e1..b94acd30e 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -2,247 +2,247 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
</urlset> \ No newline at end of file
diff --git a/sitemap.xml.gz b/sitemap.xml.gz
index a815a91f3..f5252aaf3 100644
--- a/sitemap.xml.gz
+++ b/sitemap.xml.gz
Binary files differ
diff --git a/zh-Hant/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc b/zh-Hant/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc
index 5d8531f53..4d33b0a3d 100644
--- a/zh-Hant/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc
+++ b/zh-Hant/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc
Binary files differ
diff --git a/zh-Hant/sitemap.xml b/zh-Hant/sitemap.xml
index 80b77ebb9..ada401350 100644
--- a/zh-Hant/sitemap.xml
+++ b/zh-Hant/sitemap.xml
@@ -2,252 +2,252 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
</urlset> \ No newline at end of file
diff --git a/zh-Hant/sitemap.xml.gz b/zh-Hant/sitemap.xml.gz
index 2eb648a88..b0a8c3197 100644
--- a/zh-Hant/sitemap.xml.gz
+++ b/zh-Hant/sitemap.xml.gz
Binary files differ
diff --git a/zh/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc b/zh/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc
index 5d8531f53..4d33b0a3d 100644
--- a/zh/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc
+++ b/zh/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc
Binary files differ
diff --git a/zh/sitemap.xml b/zh/sitemap.xml
index 80b77ebb9..ada401350 100644
--- a/zh/sitemap.xml
+++ b/zh/sitemap.xml
@@ -2,252 +2,252 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2022-11-02</lastmod>
+ <lastmod>2022-11-03</lastmod>
<changefreq>daily</changefreq>
</url>
</urlset> \ No newline at end of file
diff --git a/zh/sitemap.xml.gz b/zh/sitemap.xml.gz
index b4d9e3eab..3518b8a24 100644
--- a/zh/sitemap.xml.gz
+++ b/zh/sitemap.xml.gz
Binary files differ