3D nyomtatás: HOKEDLI – egy 350 mm-es VORON 2.4 építésének tapasztalatai

2021 május 14-én kezdtem neki az új hobbi projectnek. Ma 2021 szeptember 10-e van és tegnap mondtam azt a szörnyetegre, hogy jól van, most már nagyjából lehet használni.

Hello Kit!

Persze a kit megérkezése óta eltelt közel 4 hónap bőven nem csak a printer építésével telt, de igyekeztem vele – a munkám, egy hónap családdal töltött idő és némi alkatrész beszerzési leadtime fogott csak vissza.

Már működik, de még van rajta igazítanivaló

Az építés során a Formbot kitjét használtam, de menet közben akadt pár dolog, amit cseréltem. Ha te bármikor komponensek beszerzésébe kezdenél, bátran ajánlom Zolit a zen3D.hu-tól, aki nagyon segítőkész és a saját maga által is kipróbált alkatrészeket forgalmaz. Magyarországon nem is tudok másról, aki ennyire VORON specifikus webshopon dolgozna.

A mechanika összeszerelési kézikönyve 130 oldalas, de helyenként messze nem egyértelmű. Szerelés közben egy csomó megjegyzést írtam a manualba, amit innen le tudsz tölteni, ha kedvet kapnál. Ezekről most nem beszélnék, inkább jöjjön minden más tapasztalat, ami nem került be a pdf-be kommentként.

Sneak peek

A gyári kitet az alábbiakkal módosítottam:

  • helyenként hagyományos kalapácsanyát használtam a rugós verzió helyett – lejjebb elmagyarázom, miért
  • XY endstopnak a Hall Effect szenzoros megoldást építettem be
  • a hotendet hűtő ventillátort 4 csavar helyett 2 csavar + 2 mágnes tartja a helyén
  • a tárgyasztal alja hőszigetelést kapott
  • a kamra tetejébe LED világítást szereltem (BTW teljesen érthetetlen, hogy erre miért nem terveztek valami megoldást gyárilag)
  • az ajtók felcsavarozható zsanérokat kaptak a buta ragasztásos verzió helyett
  • a kamra tetejének, az oldalfalaknak és az ajtóknak a rögzítését is gyorsan oldható elemekkel oldottam meg
  • az asztal fűtését vezérlő noname SSR-t egy OMRON SSR-re cseréltem
  • a kalapsínekre mini kábelcsatornákat terveztem
  • az elektronika hűtését egy nagy légáramú 24 V-os lamináris ventillátor végzi a hangosabb axiálisak helyett
  • a 230 V-os kábelek közösítését Wago 221-415-ös kapcsokkal csináltam meg, amelyekhez kalapsínes rögzítést gyártottam
  • a tárgyasztal mögé beszereltem egy réz kefét, amivel a printer a fejre tapadt műanyagot képes lesikálni

Szerszámok és extra anyagok

A manual elején ezek egy részét nem sorolják fel, illetve jópár dolog a kézikönyv olvasása során kerül csak valahol középen említésre, ezért én összeszedtem ezeket egy kupacba. Lesz pár dolog, amit a manual sem ír/kér, de szerintem szedd össze mindet amit összeírtam – a lista úgy készült, hogy felirkáltam, amikre szükségem volt a szerelés alatt.

Szerszámok

  • 1.5, 2.0, 2.5, 3.0, 4.0 imbusz csavarhúzó és / vagy imbuszkulcs, normál és gömbölyített fejű verziók – a gömbölyű fejűekből hosszú kell, mert párszor nehezen elérhető helyen kell majd csavarozni
  • egy minél precízebb derékszög, hogy biztosan merőleges vázat és gantryt rakj össze
Az öntött kő / gránit konya munkalap a legjobb szintbe igazítani a cuccokat
  • csipesz – milliószor kell apró résekbe esett dolgokat kipecálni majd
  • vékony csavarhúzó
  • rövid és hosszú vonalzók – ha ebből nincs rozsdamentes acél verziód, pont jó apropó a printer építése, hogy beszerezd őket. 15-30-50-75 mm-es mind jól jön majd!
  • hegyes fogó
  • precíziós drótvágó
  • kis reszelő
  • forrasztópáka
  • heat set insert installáló állvány – enélkül is megoldható az egész egy pákával, de higgy nekem, nagyon hálás leszel a végén az állványért! Én ezt a verziót tudom meleg szívvel ajánlani 😉
  • Molex krimpelő – én utálom mindet, de ha muszáj, a japán EngineerTools PA-09-es krimperét használom
Hadd mutassak valamit, mielőtt jönne a “de miért utálsz Molexet krimpelni, eFi?” kérdés
  • régi bankkáryta vagy egy flexibilis műanyag kaparó / spakni a ragasztós mágnesfelület buborékmentes felrakásához
  • egy ABS-t nyomtatni képes 3D printer 🙂 – na jó, ez inkább csak erősen javasolt opció mint kötelező szerszám, de nekem pl. rettentő hasznos volt, hogy ott állt a sarokban egy Prusa MINI+ és bármikor bármiből iterálhattam / nyomtathattam egy plusz darabot

Anyagok

  • 2×1 m aluminium DIN sín – a Formbot kitben egy nem jó méretű, hulladék minőségű sínpár jött; vegyél egy rendesen slotosan lyukasztott alumíniumot inkább
  • 25 mm festő maszkolószalag, a lineáris csapágyak átmeneti rögzítésére
  • kis dobozok/edények a komponenseket elrendezni
  • 4 db M5x100 csavar a gantry összerakásához (erről ebben a posztban írtam)
  • 2020-as aluprofillal kompatibilis M3-as és M5-ös kalapácsfejű anyák – nem biztos, hogy elég ami a kitben jön
  • VORON kompatibilis M3 heat set insertek – nem biztos, hogy elég ami a kitben jön
  • tiszta izopropil alkohol zsírtalanítani
  • konyhai papírtörlő
  • nitril kesztyűk, hogy ne legyél a sínektől és a lineáris csapágyaktól túl olajos
  • LocTite thread locker
  • magas hőmérsékletet tűrő RTV szilikon (autósboltokban kapsz)
  • pillanatragasztó

A műanyag alkatrészek

A printer nyomtatható komponenseit a tervezők ajánlása alapján kétféle színű anyagból javasolt nyomtatni, lehetőleg ABS-ből vagy hasonlóan hőtűrő műanyagból – én eSUN ABS+-t használtam. Az STL file-ok nevében benne van a szín megjelölése ([a]_ kezdtű a file neve, ha az adott darabot a hangsúlyos (=a mint ACCENT) színnel printeld). Ha a filenév végén egy _x8 szerepel (ahol a 8 egy tetszőleges szám), akkor az x után álló szám definiálja, hogy az adott komponensből hány darabra lesz szükség.

Azt javaslom építés előtt kétszer olvasd végig a doksit és nézd át a CAD modellt is részletesen.

Az STL file-ok egyikének a fenti szintaxis alapján hibás a neve: a [a]_60mm_fan_blank_insert.stl azt mondja, hogy ebből csak egy darab kell, de igaziból kettőre lesz szükség. A többi file neve szintaktikailag rendben van.

A nyomtatást az ügyes szintaxis ellenére is el lehet rontani. Mutatom, hogy én mennyi felesleges komponenst termeltem, mire összeállt a HOKEDLI:

A VORON 2.4 build hulladéka

Persze ebből egy csomó olyan, amit én másképp akartam csinálni és ezért újraterveztem, illetve van benne bőven saját magam által kitalált új alkatrész is, meg azok összes iterációja.

Empirikum

Megpróbálom összeszedni mindazt, amik az építés során megakasztottak – ezek jönnek most blokkosan ömlesztve. Ha nem építesz VORON-t, akkor lehet, hogy ez nem lesz túl szórakoztató, viszont mindenképp megmutatja, hogy mennyire nem éreztem tökéletesen késznek az egészet.

Mechanika

A kalapácsfejű anyák

A Formbot kitben asszimetrikus T-anyák jönnek: az egyik oldalukban ott a furat az M3-as menettel, a másik felükön pedig alul egy rugó támasztotta apró golyót kaptak. Ez a rugós megoldás stabilan a helyén tudja tartani az anyákat, viszont előfordulhat, hogy nem mindegy, hogy a sínben a menetes végük melyik irányba néz. Minden alkalommal, mielőtt bepattintod őket a helyükre, inkább gondolatban csinálj meg még három lépést és csak azután tedd őket a helyükre. A sínbe pattintáshoz tekerj bele az anyába egy M3-as csavart és azzal már viszonylag könnyen a helyére lehet őket kattintani.

A rugós kalapácsanya klassz dolog, de kiszedni baromi nehéz.

Néhány helyen én a rugós T-anyák helyett szimmetrikus kalapácsfejű anyákat használtam – ilyen volt pl az összes sín, ahol darabonként 8-10 helyen kell a sínt megfogatni. Neked is azt javaslom, hogy szerezz be ezekből egy marékkal.

A Z endstop tengely

A manualból nem derült ki, hogy a Z endstop tengelyébe csak akkor kell bemarni egy hornyot a hernyócsavarnak, ha azt kiesés ellen rögzíteni akarod – a bemarásnak semmi más funkciója nincs. Nekem házilag macerás ezt a bemarást precízen megcsinálni, így egyelőre elmaradt.

Szíjvégek

A szíjak kilógó végeit érdemes meghagyni, hogy később könnyen állíthasd őket. Sajna a szíjakat tartó alkatrészekbe nem terveztek a kilógó végeket tároló részt, így azok ott fognak lifegni. Az A/B szíjak végét még csakcsak eltakarja a kocsi, a gantry tetején levő szanaszét álló szíjvégek viszont bosszantóak.

Csavarrögzítő ragasztó – mese az extruder fogaskerekéről

Én közel 3 órát küzdöttem azzal a kalibráció során, hogy nem találtam az okát az időnkénti alulextrudáltságnak: kalibráltam extrudert és első layert, állítottam a flow rate-en, de valahogy mindig előjött a probléma és már lassan a hajam téptem.

Aztán egy PLA tesztprintnél nyitvahagyott kamraajtó mellett ülve mintha kattanást hallottam volna az extruderből. Ránéztem a printre és láttam, hogy nem jön a műanyag. Elsőre azt gondoltam, hogy eldugult a nozzle, de ezt viszonylag könnyű kizárni: nyomtatás nélkül kézzel bekapcsolod a hotendet 210 ℃-ra, kinyitod az extruder lockját, majd betolod kézzel a műanyagszálat a fejbe: ha ilyenkor normális, egyenletes az anyagáram, akkor kicsi az esélye a dugulásnak (ilyenkor sem lehetetlen még, de nagy eséllyel nem ez lesz a gond).

A következő tipp az volt, hogy megdarálta az extruder a nyersanyagot és az elkoszolódott fogaskerék nem tudja betolni a hotendbe, esetleg elmásztak a fogaskerekek. Extruder leszed, kinyit: majdnem teljesen tiszta, nem is ez lesz.

Összeszerelés előtt legalább kétszer ellenőrizd, hogy egy síkban állnak a nyersanyagtivábbító fogaskerekek!

Extruder összerak, új próbák, de mindig ugyanaz: egyszercsak alulextrudált lesz a print, hol a legelején, hol pár layerrel később, nincs benne minta. Ráadásul amikor kiszedem a nyersanyagot az extruderből, hogy megnézzem mi a fene történik, ilyen érdekes “kukacok” jönnek elő:

Hokedli kalibrációs filament “gilisztái”

Szóval az extruder ilyen hullámosra tudja gyűrni a nyersanyagot – de hogy a fenébe csinálja? Harmadszor szedem szét, amikor rátalálok: a problémát az okozta, hogy az extruder léptetőmotorjának tengelyén levő fogaskereket rögzítő hernyócsavar meglazult.

Mindezt azért meséltem el, hogy el ne felejts arra a hernyócsavarra tenni egy csepp csavarrögzítőt!

BTW mielőtt ezt kibogoztam volna, a hotendből az extruderbe vezető hosszában elrepedt PTFE cső “szórakoztatott”. Azt kicsit könnyebben megtaláltam, mert nehéz volt befűzni a nem teljesen egyenes nyersanyagot, ami általában arra utal, hogy nem elég hosszú, vagy esetleg nem letört végű a PTFE cső.

Hotend hűtő ventillátor rögzítése

Gyárilag 4 csavarral tervezték, de van egy elegáns módosítás, ami a két alsó csavart kisebbekre cseréli és a ventillátort tartó keretbe pattintott 6×3 mm-es mágnesekkel két csavar kitekerésétől megkímél.

A tárgyasztal pokla

A VORON 2 szériában a komplett elektronika a gép aljába települ, a tárgyasztal alá. Az asztalt az elektronikától egy akrillemez választja el. Fura módon a dokumentáció semmiféle hőszigetelést nem említ/javasol az asztal aljára, pedig a 100 fokos lefele is sugárzó tárgyasztal baromi gyorsan meg fogja olvasztani a műanyag elválasztó lapot.
Én beszereztem egy öntapadós hőszigetelő lapot és az alul megszerelt tárgyasztalra ragasztottam, a szilikon fűtőelem tetejére, így az asztal lefelé nem tolja ki magából annyira a hőt.
Bármilyen macerás is a hőszigetelés beszerzése, ezt az extra lépést ki ne hagyd!

Falak és ajtók rögzítése

Amennyi ügyes mérnöki megoldás van ebben a printerben, a panelek rögzítése szerintem annyira gyatra. Aki használt már 3D printert az pontosan tudja, hogy a gép karbantartásához hely kell. A felső panelt és az oldalfalakat is panelenként 12 (!!!) csavar rögzíti. Ha tehát kibontanád a printert, akkor 36 csavart kell kiszedned:

Minden egyes panelt 12 csavar tart eredetilleg

Ezzel én elmolyoltam egy darabig, de mostanra elégedett vagyok a megoldással. Csináltam kétféle egyben nyomtatható, kézzel gyorsan nyitható zárat – egyet középre, egyet a sarkokra. Ezeket egyszer felcsavarozod, aztán a panelt onnantól kézzel pár másodperc fel és leszerelni:

A panelek könnyen oldható, egy darabban nyomtatható rögzítése

Ugyanez a középső elem tartja az ajtót is zárva alul és felül: egy-egy darab kell belőle és nem kell gusztustalan VHB tape ragasztással kontárkodva feltenni a mágneseket, amik majd a forró kamrában idővel szépen elengednek. Csináltam belőle egy és két csavarral felfogatható verziót is.

Panelek közepének és az ajtók találkozási pontjának rögzítőeleme
Panelok sarkait rögzítő elem
Ilyen az, amikor azt gondolod, hogy reggelre kész az összes lock 🙂

BTW az ajtók zsanérjainak ragasztásos rögzítése ugyanilyen butaság. Ehhez is átterveztem inkább a zsanérokat felcsavarozható, nagyobb méretű változatra. 4-4 furat az ajtólapok szélére és meg is vagy – soha le nem jön ez a fajta zsanér:

Megnövelt méretű, csavarozható ajtózsanér

A kamrát szellőztető ventillátor

A doksi alapján gondosan beszereltem, felvittem neki egy érpárat a 2020-as aluprofil hornyában, majd végül nem kötöttem be. A printer a dolgozószobámban van – annak a levegőjébe nem akarom a kamra levegőjét kifújatni, ráadásul értelmét sem látom a zárt kamra kifelé szellőztetésének.

X/Y endstopok

A dokumentációban csak a mechanikus endstop építését részletezik, azonban a Hall effect szenzoros verzió csak a szenzorban és a felső Z joint STL fileokban tér el minimálisan. Ha a mechanikus verziót építed meg én akkor is azt javaslom, hogy a z_joint_upper_x4.stl helyett inkább a z_joint_upper_hall_effect.stl-ből nyomtass legalább kettőt, mert azokban ott van a Hall effect sensor működéséhez szükséges 6×3 mm-es hengeres mágnesek részére kiképzett slot.
Én a Fermio Labstól beszerzett Hall effect szenzor verziót használom – link sajna a lekapcsolt webshop miatt most nincs.

Az energialánc (=cable chain)

Az energialánc a Formbot kitben egy noname verzió. A szemek egyenként nyithatóak és eredendően teszi a dolgát az egész, viszont nálam a Z irányban mozgó szélesebb komponens egy kicsit kifelé dől. Egyelőre nem találtam ennek az okát, de előbb-utóbb lehet, hogy ezt a darabot kicserélem egy IGUS verzióra.

A Formbot kitben szállított lánc végei nem voltak kompatibilisek a VORON rögzítési pontokkal, ezért ehhez terveztem új láncvégeket:

A FormBot kitbe csomagolt energialánc VORON kompatibilis végszeme
Van belőle anyu és apu verzió is

Az elektronika

A kitben érkezett alkatrészekből pár dolgot újrarendeltem.

SSR

Az SSR relét egy OMRON-ra cseréltem – a kithez csomagolt noname darabról semmi infót nem tudtam összeszedni, márpedig ő adja majd a 230 V-ot a tárgyasztalnak, úgyhogy ezzel jobb biztosra menni.
Szerelés közben sikerült elkevernem valahova az OMRON SSR-t védő fedőlemezt, ezért terveztem ahhoz egy újat.

Vezetékek

A Formbot készlet egy kisebb tekercs piros és egy nagyobb tekercs fekete szilikonos kábelt tartalmaz, amit neked kell méretre vágni, krimpelni és majd egyesével befűzni. A gantryba minimum 23 (!) eret kell így felvinned, méretre vágnod és krimpelned.
Szerencsére ezt többen felismerték már és komplett előre szerelt kábelkorbácsot árulnak a VORONokhoz. Én a Fermio Labs verzióját találtam meg, akik a poszt írásának pillanatában épp nem vesznek fel rendelést, így kerestem neked egy másikat: a KB3D megoldása legalább ugyanolyan precíznek tűnik, sőt, ők a korbács gantry felőli végére opcionálisan userek által tervezett PCB módosításokkal kompatibilis csatlakozókkal szerelik. Ha most rendelnék kábelkorbácsot, akkor a letisztult gantry oldali csatlakozás miatt én is inkább ezt venném.

A printer aljába két DIN kalapsín kerül, erre rögzül minden elektronika. Az összes komponenshez terveztek ügyes rugós rögzítő megoldásokat – ezeket igyekezz majd úgy felrakni, hogy mind egy irányba húzva legyenek oldhatóak. Az sem rossz ötlet, ha az alsó panelen egy matricával megjelölöd, hogy melyik irányba húzva oldható a rögzítés.

Kábelezés

Az elektronikával és a kalibrációval kapcsolatos doksi egy külön pdf-be került. Amennyire részletes a mechanikai rész dokumentálása, az elektronikáé annyira pongyola. A kábelek elrendezésére semmiféle hardver javaslat nincs, de még annyi sem, hogy igyekezz az erősáramot a gyengeáramtól elkülönítve vezetékezni.

Annak érdekében, hogy a printer aljában futó rengeteg drót ne szanaszét álljon, terveztem pár mini kábelcsatornát, amelyeket a többi komponenshez tervezett rugós mounttal lehet rögzíteni, a tetejüket pedig vízszintesen lehet a helyére csúsztatni:

Mini DIN sínre szerelhető kábelcsatornák
Ilyen szép tiszta tud lenni mielőtt bedrótozod
Nagyjából ennyire tudtam rendet tenni az aljában a kis csatornákkal
Fel kell csavarozni a talpukra a VORON rugós DIN mountot két darab M3x8 BHCS csavarral

Hűtés

Az elektronika hűtését gyárilag 2 db 60 mm átmérőjű 24 V-os ventillátorral oldották meg, amik nekem eszement hangosnak bizonyultak, ráadásul részben ragasztva rögzítik. Ebből aztán az lett, hogy kerestem inkább egy 24 V-os tangenciális ventillátort, aminek óriási a térfogatárama és ezért egész alacsony teljesítményre visszafogva is biztosan elégséges lesz majd. Ehhez terveztem egy csavarozható felfüggesztést, valamint átméreteztem hozzá az oldalsó takaróelemeket is.

A tangenciális ventillátor rögzítése és a kisebb oldalsó hexagon szoknyák
Tangenciális ventillátor itt még fordítva beszerelve 🙂

Vezetékközösítők

Már régóta nagy barátok vagyunk a Wago csatlakozókkal. Az elektronika szerelése során legalább 4-4 fázis – nulla – védőföld kábelt kell közösíteni. Ehhez tökéletes megoldás a Wago 221-415-ös kompakt rugós közösítő csatlakozója. Terveztem is hozzá gyorsan azokat kalapsínre rögzítő tokot, amit a sínen a mini kábelvezetőkhöz hasonlóan a VORON gyári rs25_psu_bracket_clip.stl rugós csatlakozójával együtt lehet felszerelni:

Wago 221-415-ös vezetékközösítők DIN sínes rögzítőeleme
Wago 221-415 DIN mountok

A tárgyasztal bekötéséhez ugyanilyen jó a Wago 221-es sorozata, csak ott 6 db 221-412-es vezetéktoldót kell használni. A tárgyasztalt tartó két 2020-as profil belseje között van 130 mm, ott a 6 db 221-412 kényelmesen elfér egy erre a célra tervezett rögzítő tokban.

6 db Wago 221-412-es vezetékközösítő rögzítésére tervezett elem a tárgyasztal drótjainak
Nagyon büszke voltam rá
Ilyen élőben – érdemes felcimkézni mindent, hátha egyszer hozzá kell majd nyúlnod

Világítás

A kamra világításához két hidegfehér ledcsíkot használtam, amik 45 fokban döntött aluprofilokba kerültek. Ezeket a profilokat a végeikre tervezett elemekkel felcsavaroztam a váz felső oldalsó sínjeinek belsejére, a tápvezetékeket pedig végigvezettem a váz hátsó függőleges 2020-as profiljainak hornyaiban. A vezetékek rögzítéséhez csináltam egy apró, csavarhúzóvar befordítható kalapácsanya-szerű pöcköt, amik korrektül a vágatban tartják a kábeleket.

Drót install a 2020-as profilban. Jó kis pöcök ez, amíg nem túl sok vezetéket akarsz befogatni vele.
2020-as aluprofillal kompatibilis rögzítőelem a 45°-os alumínium ledtartó csíkhoz. Ez a profil nélkül egyelőre nem sokat mond, de sehol nem találom az aluprofil linkjét.

A világítás vezérlését nem akartam szoftveresen a display menüjébe integrálni, mert jobb szeretem, ha erre van egy dedikált kapcsoló, úgyhogy a kapcsolónak terveztem az elektronikát takaró alsó méhsejtes rácsba egy foglalatot.

Kapcsoló inzert a VORON rácsba
Kapcsoló installálva a gyári VORON rácsban egy mini inzerttel

Léptetőmotorok vezetékezése

Rettenetesen utálom, hogy a mai napig gyártanak úgy léptetőmotorokat, hogy azoknak nem oldható a vezetékezése a motor tövében. Biztos van olyan alkalmazási terület, ahol attól tartanak, hogy a vibráció megbonthatja ezt a csatlakozást, de attól tartok, hogy ez inkább csak spórolási trükk a gyártók részéről. A Formbot által szállított motorokból is csak úgy kiáll a 4 darab ~600 mm hosszú vezeték, te meg oldd meg magad a csatlakozást.

A kábelkorbács miatt én mindenképp a motorok közelében szerettem volna megoldani a vezetékek összekötését. Ehhez a Wago MCS Micro sorozatából a 4 pólusú lengő, 733-104 / 733-204-es rugós vezetékösszekötő párt használtam, amihez gyártottam a 2020-as profilra való rögzítőelemet, így már szép tisztán lehetett bekötni az A/B motorokat.

A/B léptetőmotorok bekötése 4 pólusú Wago MCS Micro lengő csatlakozóval
Horror árúak a Wago MCS-ek, de közel háborús körülményekre tervezték őket

Szoftver

Slicer config

Slicernek a PrusaSlicerből forkolt SuperSlicert használom, akinek gyárilag van VORON profilja.
A GCODE start scriptem a slicerben így néz ki:

M140 S[first_layer_bed_temperature] ; set bed temp
CLEAN_NOZZLE
G32; gantry leveling

; park the printhead at 0,-3,0.2 before nozzle heatup
M117 Parking head
G1 X5 Y-3 F8000
G1 Z0.2 F720

M117 Heating bed
M190 S[first_layer_bed_temperature] ; wait for bed temp

M117 Heating hotend
M109 S[first_layer_temperature] ; wait for extruder temp

M117 Intro line - 200 mm
G92 E0.0
G1 X60 E9 F500
G1 X100 E12.5 F500
G92 E0.0
M117

A fenti GCODE-ban szereplő CLEAN_NOZZLE egy GCODE makró, ami a Klipper printer.cfg filejában szerepel és így néz ki:

[gcode_macro clean_nozzle]
gcode:

  {% set wipe_count = 8 %}
  SAVE_GCODE_STATE NAME=clean_nozzle_state
  G28
  G90; absolute coords
  G0 F12000; movement speed
  G0 X170 Y350 Z15; nozzle above the brush
  {% for wipe in range(wipe_count) %}
    {% for coordinate in [(130,350),(70,350)] %}
      G0 X{coordinate[0]} Y{coordinate[1] - 0.25 * wipe} Z4.0
    {% endfor %}
  {% endfor %}
  G28; XYZ homing again w/ cleaned nozzle 
  RESTORE_GCODE_STATE NAME=clean_nozzle_state

Ez annyit csinál, hogy a tárgyasztalt tartó bal oldali sínre az asztal végébe szerelt réz kefén 8-szor meghuzigálja a nozzle végét, így leválasztva róla a műanyagmaradékot:

A CLEAN_NOZZLE makrót azért pakoltam a printer.cfg file-ba, hogy bármikor kiadhassam a parancsot az Octoprint termináljából is.

Ha már szóbajöttek a Klipper GCODE makrói, mutatok még egyet:

[gcode_macro check_homing]
description: Check homing and perform if it is necessary
gcode:
  {% if not 'x' in printer.toolhead.homed_axes %}
    G28
  {% endif %}

A CHECK_HOMING makró mindössze megnézi, hogy a printer X tengelyének 0 koordinátája inicializálva volt-e és ha még nem (vagy azt a printer az utolsó homing után már valami miatt elfelejtette), akkor csinál egy XYZ homingot. Ennek a CHECK_HOMING makrónak a hívását aztán minden olyan rutinba belerakhatod, ami nem fut le, ha a HOME inicializálatlan. Ilyen nálam pl. a GYERE nevű makró, ami a fejet előre középre állítsa, hogy azon könnyen tudjak aztán molyolni:

[gcode_macro gyere]
description: moves printhead in XYZ to the front
gcode:
  M117 Head to front
  CHECK_HOMING
  G0 F12000; movement speed 
  G90; use absolute coords
  G0 X175 Y0 Z10; move head to the front
  M117

Kalibráció

Azt mondják, egy kép többet mond ezer szónál:

Vagy magasan van a fej, vagy nem ragad az asztal, vagy a fene tudja mi van
Ezzel már kibékültem – aztán jött 5 másik, ami sokkal rondább lett
Az előző tökéletes első layer után csinál egy ilyen laza fost megint (PLA)
Ennek az alja még lazább lett – menet közben el is engedte az asztalt. Középen látszik, hogy vonszolta egy kicsit a fej, mire észrevettem.
Első layer tesztje a 350×350-es asztal sarkain, ABS-ből – ez már jó lesz
A sikeres első layer kalibráció után következő print alja – és ne legyek ideges
Csodás kép lenne, ha ez a racsni pár nanométer átmérőjű volna és mi most egy elektronmikroszkóppal fotózott felső layert néznénk. De ha ez egy 25 mm-es racsni, akkor mi a rák ez az ocsmány teteje?

Szóval van egy nagy PRO és egy nagy CON érv a VORON 2.4 mellett/ellen.

Mindenképpen PRO a 8 mm vastag tömör alumínium tárgyasztal, amit állítólag a derék kínai mesteremberek 0.01 mm eltéréssel martak egyenletes vastagsárúra:

Esküszünk, hogy ebben max 0.01 mm az eltérés

A 8 mm vastag asztal rettenet hőtartó. Ez, amikor prototípusokat iterálsz, igen hasznos tud lenni: mire leszeded a printet és jön a következő, a tárgyasztal hőmérséklete pár ℃-kal csökken csupán, így pl. a 100 ℃-os ABS-hez való célhőmérsékletre fűtés 10 perce helyett csupán max. 1 perc, mire újra üzemi hőmérsékletű az asztal.

Az ellenérvvel lehet együtt élni, de a kalibrációs tapasztalatok alapján azért kicsit aggódom miatta. A VORON 2.4 gantryje 4 darab szíjon lóg. A gantryt egy GANTRY_QUAD_LEVEL paranccsal a printer a tárgyasztal síkjába szintezi. Ezt úgy csinálja, hogy a kocsiban van egy induktív szenzor, amivel az asztal 4 sarokpontján mér, majd az eltérésekből kimatekozza, hogy melyik sarkat mennyivel kell odébbhúzni ahhoz, hogy az asztallal párhuzamosan álljon az egész gantry. Az induktív szenzor meglehetősen pontos, az enyém tesztje 0.002 mm maximum eltérést mér 10 próbából.

Ennek ellenére feljebb láthattad, hogy mit küzdöttem az első layer belövésével. A problémát talán az okozza, hogy a 350×350 mm-es asztal melegítés hatására nem kicsit képes dilatálni – márpedig a 0.2 mm layer vastagságú printeknél már 0.05 mm eltérés is számít, amikor a fej az első layert tapasztja az asztalra. Erre persze az a válasz, hogy elő kell fűteni az eszközt és akkor kalibrálni, illetve akkor printelni, illetve első layer offsetet korrigálni akkor, amikor a print indul. A problémám az, hogy egyrészt ezt pazarlásnak érzem, másrészt nagyon elszoktam ettől a Prusáknál. Prusa a Z offsetet egy olyan induktív szenzorral kalibráltatja, amiben van egy termisztor és vagy a szenzor vagy a firmware a szenzor hőmérséklete alapján kompenzálja a kapott adatokat. Ennek köszönhetően a SuperPINDA szenzorral szerelt Prusa printereken gyakorlatilag nincs, vagy teljesen elhanyagolható mértékű az első layerek közötti különbség.

Prusáék Marlinból forkolt firmware ráadásul e tekintetben egy dolgot nagyon másképp csinál, mint amit a VORON/Klipper kombó, ez pedig épp a menet közbeni Z offset állítás.

Amikor egy Prusa printeren első layert kalibrálsz, akkor egy Live Z Offset nevű értéket tekergetsz, miközben a printer egy beépített tesztcsíkot rajzol, amin látod, hogy mennyire jó az első layer. A Prusa / Marlin FW világban ez a Live Z Offset azt jelenti, hogy amint a potmétert megtekered és a kijelzőn a beállított Z offset érték változik, az a való életben is instant változást eredményez, azaz a fej azonnal feljebb/lejjebb mozdul és te az épp nyomtatott tesztmintán rögtön látod a saját szemeddel a módosítás eredményét.

A VORON/Klipper világban ez nem így van. Meg nem tudom mondani, hogy miért nem így csinálják, de nem így megy. A Klipper a megváltoztatott értékre akkor reagál, ha az épp végrehajtott GCODE utasításnak vége – azaz, ha a printered épp elkezdett húzni egy 200 mm-es egyenes vonalat és te ebben a pillanatban állítasz a fej magasságán, akkor a fej Z irányban majd csak akkor mozdul meg, ha a 200 mm-es vonal húzása befejeződött.

Nem tudom, hogy ez miért ilyen és hogy lehet-e módosítani ezen, de 4 nap kalibrációs szívás után bátran ki merem jelenteni, hogy Z offsetet így kalibrálni rémálom. Vagy én ülök rosszul a lovon, és ebben a világban nem egyenes vonalakkal kellene kalibrációs mintát rajzoltatni, hanem mondjuk egy spirállal, ahol pár mm-enként új GCODE utasítás jön és emiatt közel az lenne a Z offset adjustment “élmény”, mint amit Prusa/Marlin csinál, amióta őket használom.

A Klipper doksiban a bed leveling egyébként igen szoftisztikált fejezet. Ők a VORON kalibrációs doksijával ellentétben épp azt javasolják, hogy szobahőmérsékletű tárgyasztallal és hotenddel csináljam a Z offset beállítását, mert úgy biztosan nem lesz műanyagmaradék a fej végén (és ha van eszed, akkor a tárgyasztalon sem):

Always perform the paper test when both nozzle and bed are at room temperature!

When the nozzle is heated, its position (relative to the bed) changes due to thermal expansion. This thermal expansion is typically around a 100 microns, which is about the same width as a typical piece of printer paper. The exact amount of thermal expansion isn’t crucial, just as the exact width of the paper isn’t crucial. Start with the assumption that the two are equal (see below for a method of determining the difference between the two widths).

It may seem odd to calibrate the distance at room temperature when the goal is to have a consistent distance when heated. However, if one calibrates when the nozzle is heated, it tends to impart small amounts of molten plastic on to the paper, which changes the amount of friction felt. That makes it harder to get a good calibration. Calibrating while the bed/nozzle is hot also greatly increases the risk of burning oneself. The amount of thermal expansion is stable, so it is easily accounted for later in the calibration process.

https://www.klipper3d.org/Bed_Level.html

A hőtágulás okozta különbségről ők azt írják, hogy az már csak finomhangolás és a legtöbb felhasználó elégedett lesz a papírteszt alapú első réteg kalibrációval is:

Determining Thermal Expansion

After successfully performing bed leveling, one may go on to calculate a more precise value for the combined impact of “thermal expansion”, “width of the paper”, and “amount of friction felt during the paper test”.

This type of calculation is generally not needed as most users find the simple “paper test” provides good results.

The easiest way to make this calculation is to print a test object that has straight walls on all sides. The large hollow square found in docs/prints/square.stl can be used for this. When slicing the object, make sure the slicer uses the same layer height and extrusion widths for the first level that it does for all subsequent layers. Use a coarse layer height (the layer height should be around 75% of the nozzle diameter) and do not use a brim or raft.

Print the test object, wait for it to cool, and remove it from the bed. Inspect the lowest layer of the object. (It may also be useful to run a finger or nail along the bottom edge.) If one finds the bottom layer bulges out slightly along all sides of the object then it indicates the nozzle was slightly closer to the bed then it should be. One can issue a SET_GCODE_OFFSET Z=+.010command to increase the height. In subsequent prints one can inspect for this behavior and make further adjustment as needed. Adjustments of this type are typically in 10s of microns (.010mm).

If the bottom layer consistently appears narrower than subsequent layers then one can use the SET_GCODE_OFFSET command to make a negative Z adjustment. If one is unsure, then one can decrease the Z adjustment until the bottom layer of prints exhibit a small bulge, and then back-off until it disappears.

The easiest way to apply the desired Z adjustment is to create a START_PRINT g-code macro, arrange for the slicer to call that macro during the start of each print, and add a SET_GCODE_OFFSET command to that macro. See the slicers document for further details.

A hőtágulás következtében mozog a tárgyasztal és a nozzle is, ráadásul mindkettő hőmérséklete nyersanyagfüggő: míg egy PLA esetén 55 ℃-os asztalon rajzolgat a 210 ℃-os fej, addig ABS-nél már 100 ℃ az asztal és 242 ℃-os a nozzle, szóval szignifikánsan más méretű kell legyen a tágulás mértéke is. A Klipper doksi szerint a hőtágulás ~0.1 mm méretű, ami a 0.2 mm-es rétegvastagságnál bőven tud problémát okozni az első rétegnél.

A 2.4-es VORON-nál az elmászkáló első layer miatt én elsősorban a szenzort és utána esetleg a szíjakon lógó gantryt gyanúsítanám. A Z offset méréséhez a kezdőpontot egy mezei mikrokapcsoló adja – a mechanikus mikrokapcsolók pontatlansága akár ~0.1 mm körüli érték is lehet. Egész biztosan agyalok még azon, hogy ezt hogy lehetne precízebben mérni, mert nagyon nem tetszik ez a hibaszázalék.

A 4 szíjjal tartott gantry egyelőre ügyes megoldásnak tűnik. Ahogy feljebb már meséltem, Klipperben ott van a QUAD_GANTRY_LEVEL parancs, ami a kocsiba épített induktív szenzorral megméri a gantry sarkainak távolságát az asztal sarkaihoz képest és a szíjakkal teljesen párhuzamosra állítja az asztal/gantry síkokat. Ezzel érzésre a szíjak kopásán túl sok probléma nem lehet – a léptetőmotorokkal és a TMC2209-es stepper driverekkel hihetetlenül precízen lehet a sarkak magasságát állítani, az asztal a gyártó állítása szerint 0.01mm pontosan van síkba marva, így a 3D nyomtatáshoz szükséges pontosságot bőven adja mindegyik gantry szintezésben résztvevő komponens. Szóval talán végül csak az a nyomorult Z endstop mikrokapcsoló ludas.

Eszembe jutott még, hogy miért nem a gantry szintezéséhez használt induktív szenzor a Z offset beállításának alapja, amikor az annyira precíz, hogy Klipper PROBE_CALIBRATE rutinja 0.0022 mm eltérést mér mindössze. Valószínűleg azért, mert a Fotek PL-05N induktív szenzora által mért értéket befolyásolhatja a környezeti hőmérséklet. Egyelőre tehát marad a mikrokapcsoló.

Egyéb Klipper finomságok

Pár hónapja átépítettem egy Prusa MK2.5S-t Duet/RepRapFirmware alapúra. Már ott is nagyon tetszett, hogy ha bármit át akarok konfigurálni a printer működésén, akkor mindössze annyi a dolgom, hogy 1-2 plain text file-ban módosítok, majd szólok a firmware-nek, hogy induljon újra. Klippernél ugyanez a helyzet, ám Prusa/Marlinéknál ez nem így megy – a firmware binárist fordíthatod újra, valahányszor gépközeli módosítást végeznél.

A másik nagy örömet a GCODE makrók okozták. A Klipper ebben hihehetlen flexibilis, szinte minden printer paraméterhez hozzáférsz. A fent demonstrált CLEAN_NOZZLE makró tényleg csak a jéghegy csúcsa: ha nem vagy rest minimális GCODE és scripting tudást felszedni (márpedig ha VORONt készítesz magadnak, akkor nem lehetsz), akkor nincs határa a testreszabhatóságnak.

Lehetne sorolni a sok buzzwordöt, de még csak most ismerkedem a szoftverrel, szóval majd inkább akkor írok róluk, ha majd lesz mélyebb tapasztalat.

Szummárium

Mivel csak pár napja végeztem az építéssel, a printer használhatóságáról nem tudok túl sokat elmondani. A designban van pár dolog, amit egyszerűen nem értettem:

  • miért nincsenek könnyen oldhatóra tervezve a kamra panelei
  • miért tudták le az elektronika hűtését végző ventillátorok és az ajtók rögzítését is buta ragasztással
  • miért nem terveztek világítást eleve a nyomtatóba
  • miért nincs semmiféle ajánlás a kábelek vezetésére
  • vagy mondjuk ez:
A dokumentáció nem említi, hogy a gantry talpánál egyforma rést kell hagyni mindkét oldalon

A kalibrációról az előbb írtam egy kicsit. Nagyon remélem, hogy tényleg csak én tartok rosszul valamit és ez sokkal okosabban / szebben / profibban működik valójában és nemsokára rá is jövök, hogy mi az igazi gond. 4 nap research után kicsit azért félek tőle, hogy mégsem.

Ezt leszámítva a printerben tényleg számos frappáns mérnöki megoldás van, amire az építés közben csodálkozik rá az ember – persze ezeken nem morog és nem is jegyzi fel 🙂

Az összeszerelési dokumentációban talált hibák ellenére azt mondom, hogy nagyon korrekt munka, azonban semmiképp nem szabad ezt építeni első printerként, mert a hibásan összerakott printer vagy a kalibrálási problémák könnyen eltántoríthatnak a 3D nyomtatás egyébként csodás nyúlüregétől.

A modelleket szokás szerint szedheted a prusaprinters.org-ról.

20 thoughts on “3D nyomtatás: HOKEDLI – egy 350 mm-es VORON 2.4 építésének tapasztalatai

    1. eFi Post author

      Annyira azért nem, így is elég combos a kalibrációs empirikum curve 😉
      Az viszont biztos, hogy erre a first layer varianciára találni fogok valamit.

      Reply
    2. Gábor Ziegler

      Nah, átolvastam átlósan egy möte közben. Néhány gondolat:
      * a henger-ventilátorod zseniális ötlet, ha valaha építek Voront, majd átveszem. (Ha 1x építek, akkor az viszont Trident lesz, szerintem).
      * A ragasztással rögzítsünk dolgokat oda, ami üzem közben meleg lesz — az egy maximálisan rossz ötlet, egyetértek. Nekem azóta lóg a szekrényvilágításom vezetékezése (tudom hanyag disznó vagyok), amióta 1x becsuktam a szekrény ajtaját nyomtatás közben és az 50fokosra felment kamrában (60 fokos volt az asztal) azonnal lefittyedt az *összes* ragasztott kábelcsatorna-rögzítés.
      * első réteg kalibráció: én az első nyomtatómat nyúzom és azon Marlin fut: amióta lecseréltem az ingó-bingó gyári asztal-szintező rugókat a Creality nyomtatómon a (valószínűleg) faluvégi népi kohókban kovácsolt merev rugókra és mesh-levellinget használok (kb. fél éve), azóta csak zsírmentesítem az asztalt (esetleg be-/átöltve a hőfokfüggő mesh-t G-kódból), elindítom a nyomtatást és örülök. Javaslom neked is a mesh-levelinget, remélem a Klipper is tud olyat.
      * szekrény-kipufogás: felteszem, ha egy nem túl öreg bérlakásban laktok most Németalföldön, akkor kényszerszellőzés (is?) van a szobádban. Javaslom nézz körül ruhaszárító szekrény alkatrészek között. Lehet kapni flexibilis légcsatorna-csövet, amit a szárítószekrény kifújó lyukára kell kötni és a szobai légelszívó nyílás elé kell végződtetni. Ehhez árulnak körmös csatlakozót, szóval a fali légcsatorna-végződést nem kell piszkálni. Lásd pl. https://shop.electrolux.se/tvatt/torktumlare/slangar/bojlig-3-m-ventilationsslang-till-torktumlare/p/50279639004. Szerintem az egy jó megoldás, ha egy ilyen csövet kötsz a Voron kipufógójára és a cső másik végét szembekötöd a fali légelszívóval….

      Reply
      1. eFi Post author

        Bed mesh van Klipperben is, de nem azzal lesz a gond, hogy ne lenne egyenes a bed vagy ne tudná totál párhuzamos síkba kalibrálni a gantryt, hanem szerintem inkább ott van valami bibi, hogy amikor megméri a Z referenciapontot, akkor az el tud neki mászni. Még nyomozom ezt, aztán amint van valami haladás kiegészírem a posztot. Prusánál egyébként én is csak zsírtalanítok évek óta, semmi más dolog nincs vele.

        Szellőztetés: szellőzőnyílás ugyan van, de az egy ilyen modern, ablak feletti 3×100 cm-es csík, szóval oda nem sokmindent tudnék bekötni 🙂

        Reply
        1. Gábor

          Ha van a szobádban egy ilyen légelszívó-nyílás https://www.bauhaus.se/fresh-franluftsdon-100 (az én printer szobámban van ilyen), akkor rákattintasz egy ilyet: https://www.bauhaus.se/dragavbrott-o100-mm, amit egy ilyen cső csatlakoztatására használsz https://www.bauhaus.se/franluftsslang-fresh-torkskap-torktumlare-102×3000

          Ez olyan szerelvény készlet, amivel ruhaszárítógép elszívóját csatlakoztatják a ház (negatív nyomású) kényszer szellőzéséhez. Az ablak feletti rács az levegő belépési pontja valószínűleg. A házak gépi szellőzése sokszor csak “kiszívja” az elhasznált levegőt és frisslevegő a nyilászárókba, vagy pl. nálunk a radiátor mögé a falba épített belépő nyílásokon jön be.

          Reply
          1. eFi Post author

            Ennek a lakásnak központi automata szellőztetése van. A légcseréhez a nyílászárók felett vannak vízszintes rések, ezekbe van bekötve a vezérelt szellőztető rendszer is:

            Szóval ebbe sajna nem tudok bekötni semmit.

          2. Gábor Ziegler

            Azok ott az ablak felett nem a lég*be*ömlők, ahol *be*jön a levegő a lakásba? Amit én ajánlgatok az a lég*ki*ömlő, azaz az elszívó-nyilásba való bekötés…

          3. eFi Post author

            Simán lehet, hogy onnan csak befele szív, viszont nincs semmilyen más szellőztetési pont a fürdőszobán kívül a lakásban. BUVA Q-Stream Hygro a rendszer neve: helységenként van egy temp/humiditty/CO₂ szenzor, rajta egy kicsi színes LCD – ha automatán hagyod, akkor simán csak mindig friss a levegő és nem párásodnak be az ablakok. Summa summarum jó cucc ez, csak nem gondoltak az egyszerire, aki éjjel nappal tolná az ABS-t 😉

          4. Gábor Ziegler

            Hm, az a légbeömlő lesz. Lásd https://www.buva.nl/producten/constante-gezonde-lucht/roosters/fitstream ==> Instructie mechnisch ventileren (https://www.buva.nl/uploads/42/13/9b2f461828e53a8e0d3ba5cf165d074d.pdf) doksiban a 11. és 12. oldalon lévő sematikus (background) rajzot.
            A levegő az ablak-szemöldökbe épített réseken jön be, mert a “Q-Stream” kütyü valahol elszívja a szoba használt levegőjét valahol (a rajzon a plafonon), azaz a szobában a külvilághoz képest kisebb légnyomás jön létre és ezért a külső atmoszferikus nyomás benyomja az ablak fölött a friss levegőt. Na, azt az elszívó lukat kell megkeresned.

            Persze az is lehet, hogy olyan nálad is a megoldás, mint a mi 4 szobás + konyhaétkezős lakásunkban. Nálam a 4 szobában 5 ablak alatt van légbeömlő (ami a fűtőradiátoron át szivárog be). Az összes beltéri ajtólap kb 0,5cmrel föld fölött ér véget, azaz minden hálószoba ajtó alján van kb. 80cm*0,5cm=40cm^2 légrés. Vagy azokon ,vagy magukon a nyitva hagyott hálószoba ajtókon át áramlik a friss levegő a nappali-étkező-konyha közös légterébe.

            Abból a közös légtérből az elszívás úgy történik, hogy van
            1. egy elszívó nyílás a konyhai tűzhely felett egy aktívszenes zsírcsepp-szűrő mögött (ami egyben a hagyományos szagelszívót is kiváltja, amennyiben egy
            csappantyút egyszerűen elfordítva sokszorosára növelhető az elszívott légtömegáram)
            2. és 3. van két WC/fürdő, aminek a hasonló megoldású ajtajai a nappaliból nyílnak. Bennük a retyó/zuhany felett van egy-egy nagy-légtömegáramú (és ezért elég hangos) elszívónyílás, ami egyben a retyók szagtalanítását, illetve a zuhanyzás utáni párátlanítást is megoldja
            4. a gradrób szobában is van egy (szintén elég zajos ) elszívó.

            Mi, mucsaiak lévén, nem flancolunk és a gardrób szobát gardrób funkció helyett én műhely- és raktárszobának használom. Emiatt az elszívó nekem 50cm-re van a nyomtató felett…

  1. Andris

    Gratulálok az összefoglalóhoz, ez tényleg nagy munka volt! Remélem, hogy eljutsz majd egy olyan szintre, hogy a mindennapi nyomtatásokat is ezen a gépen fogod végezni, mert az azt jelentené, hogy ugyanolyan kényelmesen lehet használni, mint egy Prusát!

    Reply
  2. Gábor Ziegler

    Kicsit nyugodtabban is végig olvastam ma a posztod — nagyon jó poszt lett, gratulálok! Én is remélem, hogy idővel sikerül majd mindent jól bekalibrálni. Ahogy olvasom, vannak alternatív Z-stoppok és meglepne, ha valaki nem dolgozna már egy Super P.I.N.D.A. integráción 🙂

    Reply
    1. eFi Post author

      A 2.4 elég precíz a mostani állapotában, na meg nem is kaptam OMRON mikrokapcsolókat, úgyhogy egyelőre nem bolygattam tovább a dolgot. Helyette a 0.1-et építem, abból is jön poszt hamarosan, stay tuned!

      Reply
        1. eFi Post author

          Áll Rotterdamban az asztalon mert project meló van, aminek magasabb a prioritása. Stay tuned!

          Reply
  3. John

    Ha van a szobádban egy ilyen légelszívó-nyílás https://ebygghandel.se/ (az én printer szobámban van ilyen), akkor rákattintasz egy ilyet: https://ebygghandel.se/, amit egy ilyen cső csatlakoztatására használsz

    Ez olyan szerelvény készlet, amivel ruhaszárítógép elszívóját csatlakoztatják a ház (negatív nyomású) kényszer szellőzéséhez. Az ablak feletti rács az levegő belépési pontja valószínűleg. A házak gépi szellőzése sokszor csak “kiszívja” az elhasznált levegőt és frisslevegő a nyilászárókba, vagy pl. nálunk a radiátor mögé a falba épített belépő nyílásokon jön be.

    Reply

Leave a Reply to Gábor Ziegler Cancel reply

Your email address will not be published. Required fields are marked *