Raspberry Pi Zero és OctoPrint

A Prusa Mk3 nyomtató rengeteg klassz megoldása közül a Raspberry Pi Zero W integrációja keltette fel elsők között az érdeklődésemet. Rettentő vagány módon az EinsyRambo board-al GIPO tüskesor segítségével szendvicsként kapcsolható össze a Pi Zero.

Nincs szükség külön dobozra a Raspberry Pi számára, nem kell neki külön tápegység, vagy step down modul, mert a vezérlőről kapja az áramot. Egyáltalán nem kell semmilyen plusz vezeték, nem kell az USB csatlakozóját sem használni a board-nak. Viszont a Pi Zero W is rendelkezik Wifi kapcsolattal, így ilyen kompakt módon használható a nyomtató OctoPrint felületén keresztül.

Rapberry Pi Zero W EinsyRambo board

Raspberry Pi Zero W az EinsyRambo alaplapra csatlakoztatva

Csalódás a teljesítményben

Rögtön a cikk elején elárulom, hogy végül csalódást okozott ez a megoldás. Nagyon gyenge a Pi Zero egymagos processzora ahhoz, hogy teljes értékű módon használható legyen az OctoPrint. Gyakorlatilag úgy nem lehet nyomtatni az OctoPrint-en keresztül, hogy közben kameraképet is közvetít, vagy timelaps-et készít.

Pedig nyomtattam egy ilyen klassz kamera tartót is: Articulating Raspberry Pi Camera Mount for Prusa MK3 and MK2, de egyelőre nem tudom használni úgy, ahogy terveztem.

Natív Raspberry Pi kamera
Natív Raspberry Pi kamera

Nagyjából öt perc, amíg egyáltalán feláll a rendszer, egy-egy plugin feltelepítése pedig komoly türelemjáték. Persze most már észrevettem, hogy az OctoPrint oldalán, közvetlenül az OctoPi image letöltés gombja felett figyelmeztetnek is erre, hogy a Pi Zero W teljesítménye nem lesz elégséges a teljes funkcionalitáshoz. Minimum a Pi 3B változatot javasolják.

A Prusa weboldalán pedig arról tájékoztatnak minket, hogy egyelőre a nyomtató firmware frissítését nem fogjuk tudni megoldani a Pi Zero-on keresztül.

Ezzel együtt mégsem tartom teljesen felesleges megoldásnak. Ha lemondunk a kamera használatáról, akkor használhatjuk nyomtatásra is az OctoPrint-et. A kalibrációs feladatok elvégzését pedig természetesen sokkal kényelmesebbé teszi, és valóban olyan kompakt módon, ahogy a bevezetőben lelkendeztem róla.

Raspberry Pi Zero csatlakoztatása az EinsyRambo-ra

A beüzemelésről részletes leírás található a Prusa manuáljában: OctoPrint for Original Prusa i3 MK3, de a főbb lépéseket ismertetem:

Alkatrészek nyomtatása

Első lépésként nyomtassuk ki a távtartót a Pi és az Einsy közé, valamint egy új fedelet ami a Pi-hez enged majd hozzáférnünk az Einsy dobozának hátulján keresztül. Ezeket a Prusa Mk3 nyomtatandó alkatrészei között találjuk rpi-zero-frame.stl és raspberry_cover.stl néven: Prusa i3 printable parts

3D nyomtatott alkatrészek

Tüskesor forrasztása

A szokásosnál picit hosszabb 18mm hosszú tüskéből kell hat darabot a Pi Zero-ra forrasztanunk. Ezért mindenképpen olyan változatot érdemes beszereznünk, amire nem tették rá gyárilag a tüskéket.

Raspberry pi Zero

Nem atomfizika a képen sárga pontokkal megjelölt helyeket kiválasztani a forrasztáshoz, de mégis javaslom, hogy a távtartó felhelyezésével ellenőrizzük, hogy valóban a megfelelő irányból és a megfelelő pozíciókba helyeztük a tüskéket. Ha valahogy mégis sikerült belezavarodnunk és rossz helyre forrasztottunk egy tüskét, akkor ki lehet azért húzni és tudjuk javítani, de nyűgös dolog. Tapasztalatból mondom. 🙂

Rapsberry Pi Zero pins

OctoPrint image SD kártyára írása

Az OctoPrint telepítésénél írtak szerint, például az Etcher nevű programmal SD kártyára kell írnunk az OctoPrint-et. Közvetlenül innen letöltheted a Prusa által előre paraméterezett változatot: PrusaPrint

A szokásos módon állítsuk be a octopi-wpa-supplicant.txt fájlban a Wifi jelszót.

Összeszerelés

Az SD kártyát helyezzük be a Pi kártyafoglalatába, a nyomtatót pedig kapcsoljuk ki az összeszerelés idejére.

Az Einsy dobozának a hátán felismerhetjük a Raspberry helyét. Ezt a részt néhány vágással el tudjuk távolítani a dobozról. Így szabaddá válik az Einsy Rambo háta, amire rá tudjuk tolni a Raspberry Pi Zero-t. A távtartó segítségével szépen felfekszik a helyére. Ha rendben sikerült elhelyeznünk, akkor az újonnan nyomtatott fedéllel be tudjuk zárna ezt a frissen vágott ablakot.

EnsyRambo doboz, Raspberry Pi Zero

Bekapcsolás

A nyomtató bekapcsolása után a Settings menüben be kell kapcsolni RPi port “on” beállítással a kommunikációt az Einsy és Raspberry között.

Prusa Mk3 LCD menü RPI port

Ezután várjunk néhány percet, mert valóban nagyon lassú a Pi Zero, majd próbáljuk meg elérni az octopi.local címen, vagy a kapott ip címén az OctoPrintet.

IP cím megjelenítése az LCD képernyőn

Ha Ip címmel érjük el az OctoPrintet és esetleg a router-ünk nem mindig ugyan azt a címet adja, akkor hasznos lehet az OctoPrint-ipOnConnect bővítmény a számunkra. Plugin Manager-en keresztül telepíthetjük az alábbi címről:

https://github.com/jneilliii/OctoPrint-ipOnConnect/archive/master.zip

Telepítés után a nyomtató kijelzőjén megjelenik a csatlakozott Raspberry IP címe:

Prusa LCD menü OctoPrint IP cím

Azt viszont egyelőre nem értem, hogyan lehet rávenni az OctoPrint-et, hogy automatikusan csatlakozzon a nyomtatóhoz még az előtt, hogy a webes felületét elindítanánk. Ugyanis hiába van bepipálva a felületen az “Auto-connect on server startup”, magától nem kapcsolódik. Ha viszont be tudtunk lépni a webes felületre, akkor már sok haszna nincs az LCD képernyőn megjelenő ip címnek. Ennek még után kell járni…

Prusa Mesh Map OctoPrint plugin

Ahogy az OctoPrint pluginokról szóló cikkben írtam, az egyik kedvenc bővítményem a Bed Level Visualizer, ami abban segít, hogy a lehető legpontosabban beállítsuk a tálca vízszintjét.

A Prusa Mk3 tálcája (Mk52) kilenc csavarral is állítható, ha a távtartók helyére önzáró anyákat teszünk. Így nem csak a vízszintet, hanem a tálca esetleges görbeségét is javíthatjuk, de ehhez mindenképpen szükségünk van valamilyen grafikus megjelenítő eszközre. A korábban ismertetett plugin helyett, most a Prusa Mash Map nevűt próbáltam ki, ha már a nevében szerepel a Prusa. 🙂 A lényeget tekintve nincs különbség köztük.

A telepítése a plugin manager-ből elsőre nem fog sikerülni, úgyanis time out hibát kapunk, mert a függősségek telepítése sokkal tovább tart, mint amennyit a felület várni tud az eredményre. Ezért első lépésként Putty-al SSH-án keresztül parancssorból telepítsük fel a matplotlib és numpy csomagokat:

/home/pi/oprint/bin/pip --no-cache-dir install matplotlib numpy

Nem túlzok, hogy ez nekem órákig tartott, de mindenesetre lefutott. Ezután már viszonylag gyorsan feltelepül maga a bővítmény a Plugin Manager-ből az alábbi URL-ről:

https://github.com/PrusaOwners/OctoPrint-PrusaMeshMap/archive/master.zip

Telepítés és újraindítás után egy új fülön jelenik meg a funkció. A Preform Bed Level and Check gombra kattintva a nyomtató elvégzi a vízszint ellenőrzést, majd kisvártatva színes ábra segítségével megmutatja, hogy a tálca mely területe nagyjából milyen magasságban helyezkedik el.

Prusa Mesh Level

A vízszintszenzor a fémlapon tud csak magasságot mérni, viszont a csavarok állítgatásához ezt le kell vennünk. Ne felejtsük el visszatenni a következő próba előtt a fémlapot.

Hozzászólás küldése

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük