Keresés ebben a blogban

Firmware hack

Firmware, vagyis belső szoftver(cégszoftver nyersen fordítva). Már majdnem mindenben van ilyen. Már a konyhában is, a kávéföző programját valószínű egy olcsó ki tudású mikrokontroller hajtja végre. Mert pár sorból meg lehet írni a vízhőfok figyelését és a szivattyú indítását. Ha pedig szöveges kijelzős, akkor meg egyértelmű, hogy van benne mikrokontroller és program a működéshez.
Természetesen a nyomtatónkban is van egy mikrokontroller és egy program, ez a firmware. Ráadás lehet cserélgetni, nyomtatója válogatja, milyen módon. Van amikor a gyártó adja, a DIY nyomtatóknál meg mi cserélgethetjük a neten fellelhető firmware-ek közül a sajátunkat, ha van rá konfig. Most ezt járjuk körül.


Mivel nem csak a PC-s szoftverek határozzák meg a nyomtatás minőségét, hanem a gépek saját alaplapjába töltött firmware-ek, azaz ipari szoftverek, így azok is érdemelnek egy kis fókuszt.
Mára már sok közösségi fejlesztésben, nyitott forrással elérhető firmware létezik. Ezeket igyekszem itt bemutatni, hogy miért jó vagy rossz ha lecseréljük a DIY gépünkön a firmwaret. A firmware egyébként nem más mint az alaplapokon, vezérlőpaneleken lévő mikrokontrollerek flash memóriájába égetett szoftver. Itt nem árt tudni hogy ha OTP-s mosFET-el találkozunk, akkor ésszel kell lenni. Mert az OTP itt nem a bank, hanem az egyszer programozható jelentése vagyis "One Time Programming". A flash memóriák többször írhatóak, itt nagy baj nem történhet. 
Az oldalt folyamatosan frissítem, ahogy haladok a firmware leírások feldolgozásával. Most a két kedvenccel kezdek.

Klipper

Bár a név a delfines sorozat után lehet ismerős, ez egy jól kitalált hack a nyomtató felgyorsításához. Maga a firmware egy egyszerű sorosporti tranzfert tartalmaz, vagyis az alaplapunkat csak arra használja, hogy a megérkező adatokat kiküldje a megfelelő helyre. A tengelyekre, extruderre, fejre. De minden mást maga a főszoftver csinál. Hogy ez miért jó nekünk. Pusztán azért, mert a meglévő 8bit-es hardverek, ahogy azt már a tuning oldalon írtam, nem igazán arra vannak kitalálva, amire most használjuk őket. Ez főképp a léptetési számoknál jelenik meg. Vagyis egy Atmel2560-as megközelítően maximum 150k lépést tud feldolgozni másodpercenként. Ami akkor igaz, ha csak átküldjük neki az adatot, sajnos ha már számol is a mikrokontroller, akkor ez a lépésszám csökken. Ezért nem tudunk gyorsan szépet nyomtatni, mert a proci nem bírja.
Ezt áthidalóan, a klipper az OctoPi alá beülve, maga számolja az RBPi nagy sebességű ARM prociján az összes koordinátát a GCode-ból, és csak a végeredmény megy ki az alaplapra, aki azonnal elküldi a szervóknak. Erre már nagyon alkalmas a 8bit-es proci, mert nem kell matekoznia, csak továbbitja a kapott adatot a szervók felé. 
Ez által a hihetetlen 150-250mm/s sebességű nyomtatás is elérhető, különösebb minőségromlás nélkül az olcsó DIY nyomtatókkal is. Ezt sok videó is igazolja, és sok felhasználó saját tapasztalata.
A másik nagy előnye, hogy a konfigurációja a host-on van, vagyis az RBPi-n, amit ez miatt egy szövegszerkesztővel egy pillanat alatt tudunk szekeszteni, ha valami nem jó a  beállításokkal. 
Ezek mellett a klipper sokkal modernebb algoritmusokat használ a számoláshoz, mint ami beleférne egy mikrokontrollerbe. Így pontosabban küldi le a lépések pozicióit, ami  javítja a minőségbe  vetett hitünket. 
Itt még nincs vége a tudásának, mert ennél sokkal több dolgot tud, amit itt nem sorolnék fel. A weboldalon megtalálhatóak a feature-ök.
A hátulütője a dolognak csupán az, hogy ha nincs meg a gépünk eredetileg kiadott firmware-e. Mert a klippernél ez a firmware törlődik az alaplap flash-ből, és a helyére a saját kódja kerül. Ha vissza szeretnénk állítani az eredeti állapotot, akkor nem árt ha legalább a gyártói firmware megvan. Egyéb esetben örökre beleragadunk a klipper világába. De szerencsére általában meg szokott lenni a firmware is, és van alternatíva is. Ez a Marlin.

Marlin

Ez a firmware már a DIY gépek nagy részében alap, vagy egy átírata van beletöltve a nyomtatóba. Ilyen az én gépem is egy a gyártó által hack-elt Marlni fekszik a vason. Aminek sajnos a forrását nem adták oda, ami enyhén szólva is illetlenség, mert a Marlin license kimondja, hogy ha módosítanak rajta akkor azt illik publikálni a felhasználók részére. De ez mindegy is, mert sok lelkes amatőr, már megcsinálta azt a firmware konfigot a Marlin-hoz amivel át lehet hidalni ezt a problémát. De nézzük meg közelebről a Marlin előnyeit és hátrányait.
Ez is nyitott forrású firmware, vagyis meg tudjuk nézni mi van benne, vagy akár belepiszkálhatunk. Ez egyébként alapból is adott. Mert bizonyos finomhangolásokhoz, akár itt is hozzányúlhatunk. Ilyen az örök probléma a kalibráció. Bár a szervók pont annyit lépnek mint ami szükséges, mert pontosak, a nyomtató mechanikája ezt befolyásolja. Ezért kalibrálunk. Amiből kiderül, hogy az általunk 20mm-nek vélt hossz, ha csak 19mm akkor korrigálni kell a léptéket, amit a firmware szépen hozzáad a nyomtatás közben. Ezt lehet a firmware-ben is állítani forrás szinten, ez a "beleégetés" nevű művelet, amit nem szoktunk javasolni, mert a G-Code elején ezt be lehet állítani, és ugyan olyan szépen teszi a dolgát. De ott a lehetőség hogy a Marlin C forrásába belerakjuk. Másik probléma, ami nálam is fennállt, a szervók irányváltása. Az új mosFET panelek miatt megfordult a szervók iránya. Én a kábelt forgattam meg, de a firmware képes rá, egy "flag" segítségével, hogy invertálja az irányokat. Kinek mi a kényelmesebb. Ebben az esetben a firmware a szerelés miatt kényelmesebb, és úgy se fogunk visszaállni a régi mosFET-re, így értelemszerűen ezt érdemes "beégetni".
A Marlin legnagyobb előnye, hogy gyakorlatilag mindent is be lehet rajta hangolni. Teljesen a gépre lehet alakítani. Amit illik megosztani másokkal is néha. De ez a hátránya is, mert egy paraméter sok minden mást magával ránthat, illetve akár el is tudjuk füstölni az alaplap pár részét, bár erre felhívják a figyelmet, hogy mit hogy kell és szabad, ha nem akarjuk égni látni a vezérlőnket. De minden beállítás után kénytelenek vagyunk a flash-t újraírni a vezérlőbe. Ez elég kényelmetlen. De ha valaki szeret bogarászni, akkor jó időtöltés.
Másik előnye, hogy annyira ügyesen írták meg, hogy ha valaki váltani akar a 8bit-es Atmel-ről egy komolyabb board-ra, és ugyan a jól behangolt firmware-ét akarja használni, mert belenyúlt az algoritmusokba például, akkor be tudja fordítani a firmware-t 32bit-es Arm vezérlőre is, mert ezt az átjárhatóságot megoldották.

TH3D

Ez is egy Marlin, csak kulturáltabb formába rendezve. Azért jó, mert kb. két komment használatával be lehet állítani egy alapgépet a használatra. Nem kell végigmenni sok sok beállításon, mindenhol a header állományokban. Csak kiveszünk három kommentet és tölthetjük fel a nyomtatóra.
Természetesen ezzel pont a mélyebb beállításokat hanyagoljuk, de vannak emberek, akik csak frissíteni akarnak, nekik ez pont jó. 
Én a CR-10S S5-ön próbáltam ki, két perc alatt feltöltöttem, és csak működik. Nem volt érkezésem szórakozni a marlin ezer beállításával. Az Ender4-nél már nem fogom megúszni, hogy ne nyúljak hozzá a firmware header állományaihoz.

Repetier 








Nincsenek megjegyzések:

Megjegyzés küldése

Nyomtassunk rönkből, a fa alapú PLA veszélyei

A gőzkieresztéses bejegyzésem mellé raknám ezt a szöszenetet. Mivel sokfajta fa bázisú PLA van és most már egyre többet adnak elfogadható ár...