Alábbiakban a Prusa Mk3 3D nyomtató eredeti firmware-ének telepítését mutatom be lépésenként az EinsyRambo board-ra.
Szükségünk lesz egy Arduino IDE-re. Windows-t használok, és a cikk írásakor legfrissebb 1.8.9-es Arduino IDE-t telepítettem a feladathoz, tehát a példában ez a felállás fog szerepelni.
EinsyRambo board beállítása az Arduino IDE-ben
Ismertessük meg az IDE-vel az EinsyRambo alaplapot. A Fájl menüpont beállítások ablakában a További Alaplap-kezelő URL-ek részhez adjuk meg az Ultimachin elérhetőségét:
https://raw.githubusercontent.com/ultimachine/ArduinoAddons/master/package_ultimachine_index.json
Majd az Eszközök – Alaplap: … – Alaplap-kezelő képernyőn keressünk rá a Rambo alaplapra és telepítsük fel:
Ezek után az Eszközök menüben az Alaplapok között megtaláljuk a RAMBo nevűt, ezt kell majd kiválasztanunk a firmware fordításához és feltöltéséhez.
Arduino platform.txt módosítása
Ahhoz, hogy helyesen le tudjuk fordítani a fimware-t, módosítanunk kell az Arduino platform.txt nevű fájlját, amiben fordítási paraméterek találhatóak. A módosítás alatt ne fusson az IDE! Windows-on a fájl a telepített Arduino mappájában található, nekem például itt:
c:\Program Files (x86)\Arduino\hardware\arduino\avr\
Keressük ki a compiler.c.elf.flags paramétert és az értékek felsorolásába még szúrjuk be ezt a részt: vfprintf -lprintf_flt -lm -Wl,
Nekem ez az alábbiak szerint nézett ki:
compiler.c.elf.flags={compiler.warning_flags} -Os -g -flto -fuse-linker-plugin -Wl,-u,--gc-sections
Amit erre javítottam:
compiler.c.elf.flags={compiler.warning_flags} -Os -g -flto -fuse-linker-plugin -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections
Az 1.8.8-as Arduino IDE-ben nekem ez így működött, viszont az 1.8.9-ben már nem. Ott még a Rambo által feltelepített platform.txt-be is be kellett írni ezt a sort.
A fájlt ebben a mappában találtam meg: c:\Users\tz\Documents\ArduinoData\packages\rambo\hardware\avr\1.0.1\
Onnan tudjuk, hogy nem sikerült a beállítás, hogy telepítés után a kijelzőn a Z magasság pozíciója helyén egy kérdőjelet látunk:
Amennyiben a fenti két fájlban elvégzett módosítás után is ott látjuk a kérdőjelet, akkor el kell kezdeni keresgélni a neten. Azt, hogy több helyen található
platform.txt fájl és ezekkel van a gond, ebben a (Macintosh-hoz íródott) cikkben olvastam: Change and compile the original Prusa MK3 firmware
Prusa Mk3 firmware fordítása és feltöltése
Magát a firmware-t a Prusa GitHub oldaláról tudjuk letölteni. Jelenleg az aktuális verzió: 3.7.0 Firmware for MK3, MK3S, MK2.5 and MK2.5S
A Source Code (zip)-et töltsük le, hogy mi magunk le tudjuk fordítani és akár bele is javíthassunk. A tömörített fájlban több mappa is található, nekünk a Firmware nevűre lesz szükségünk.
A címből is látjuk, hogy több Prusa 3D nyomtatóhoz is használható ez a program, ez pedig úgy lehetséges, hogy több konfigurációs fájlt is mellékeltek hozzá. A variants mappában lévő 1_75mm_MK3-EINSy10a-E3Dv6full.h fájlt másoljuk eggyel kijjebb Configuration_prusa.h néven, mert nekünk erre lesz szükségünk.
Ezek után nyissuk meg az IDE-ben a Firmware.ino fájlt. Válasszuk ki az Eszközök menüpontban a Rambo alaplapot, majd probáljuk ki a fordítást: Ctrl-R, vagy a pipa ikon.
Nekem majdnem elsőre működött a feltöltés után, csak éppen az üdvözlő feliratok után ákombákomokat írt ki, majd újraindult a nyomtató. Ezt azzal orvosoltam, hogy kikapcsoltam a Multi Language funkciót a config.h fájlban:
#define LANG_MODE 0 // primary language only //#define LANG_MODE 1 // sec. language support
A feltöltéshez válasszuk ki a megfelelő Port-ot az Eszközök menüpontban. Az EinsyRambo bordra csak úgy lehet feltölteni a programot, ha áram alatt van, ezért kapcsoljuk be a nyomtatót. Indítsuk el a feltöltést a Ctrl-U kombinációval, vagy a megfelelő ikonnal.
Néhány másodperc után üdvözül minket a nyomtató és biztat a kalibrációs folyamat elvégzésére. Erről Prusáék készítettek is egy videót: