Az ATmega2560 processzorú Arduino Mega2560 tartalmaz egy 4 kilobyte-os EEPROM modult. Ez egy memória ami kikapcsolás után is megőrzi a benne tárolt értékeket. Mivel a RAMPS és a vele kompatibilis board-ok is az Arduino Mega-ra épülnek így a Marlin firmware-t is felkészítették ennek használatára.
Enélkül is teljes értékűen használható a 3D nyomtató, abban nyújt segítséget, hogy néhány apróbb paraméter jellegű érték módosításához nem kell az egész firmware-t frissítenünk. Ilyen módosítások lehetnek:
Mint látható a listán, nem ördögtől való, hogy ezeket ne a firmware-be égetve használjuk. Azonban fontos tisztában lenni vele, hogy ha elkezdjük az EEPROM-ban tárolni ezeket az értékeket, akkor a firmware frissítés nem lesz hatással rájuk!
Marlin firmware verzióváltás esetén előfordulhat, hogy konfliktusba kerül a firmware az EEPROM tartalmával, ilyenkor a mentett értékeket felül kell írni a firmware értékeivel.
Három módon is könnyen használhatjuk a Marlin ezen funkcióját, de előtte ellenőrizzük, hogy a Marlin-ban engedélyezve van-e: a következő sor elől ki kell venni a kommentet:
#define EEPROM_SETTINGS // Enable for M500 and M501 commands
Marlin LCD kijelzője
Az LCD kijelző menüjében a Contorl -> Motion menüpontban módosíthatjuk a
Z Offset értékét, vagy a gyorsulások maximális mértékét. Ezek a módosításaink, csak a nyomtató kikapcsolásáig maradnának érvényben.
A Control menüpontban a Store settings menüpont viszont elmenti a változtatásinakat az EEPROM-ba, így azok a következő bekapcsolás után is érvényben maradnak. Ha esetleg nagyon elállítgattuk a dolgokat és már nem vagyunk magunkban biztosak, akkor a Load settings menüponttal az aktuális értékeket a korábban tároltakra cserélhetjük.
Terminál képernyő
Arduino IDE konzolján, vagy az OctoPrint Terminal fülén parancsok segítségével is módosíthatjuk az értékeket.
M503 – Aktuális értékek megjelenítése
Az M503-as utasításra kilistázza az éppen aktuális értékeket, de vigyázat, ez a riport nem az EEPROM tartalmát mutatja, hanem azokat az értékeket melyekkel a Marlin éppen dolgozik! Ezek származhatnak az EEPROM-ból is, vagy ha azt nem használjuk, akkor a firmware-ből, vagy akár éppen most állítottuk be őket parancsok segítségével. Akár EEPROM engedélyezése nélkül is működik ez az utasítás.
Nagyon praktikus lista, mert ha megnézzük például a Z offset értékét a Z offset módosításának utasításával együtt jeleníti meg: M851 Z-2.05
Ctrl+C-vel kimásolhatjuk az értéket az utasítással együtt, CTRL+V-vel bemásolhatjuk küldendő parancsként, és kényelmesen átírjuk az értéket az Enter előtt.
M500 – Értékek mentése
Az aktuális értékeket az M500-as paranccsal menthetjük el. Ha korábban nem mentettünk adatokat, akkor látszólag nem történik semmilyen változás, de ettől a pillanattól kezdve már nem a firmware értékeit használja a Marlin, hanem EEPROM-ban tároltakat tölti be induláskor.
M501 – Értékek visszaállítása
Az aktuális értékeket a korábban EEPROM-ban tároltakkal felülírja.
M502 – Firmware értékek betöltése
Az M502-es utasítás az aktuális értékeket a frimwaer-ben tároltakkal írja felül. Fontos, hogy itt sem az EEPROM kerül felülírásra, így ez az utasítás is működik EEPROM használata nélkül. És éppen ezért, ha ezeket az értékeket meg szeretnénk őrizni, akkor ki kell még adnunk egy M500-as utasítást is, hogy ténylegesen az EEPROM-ba kerüljenek a firmware-ben rögzített értékek.
OctoPrint plugin
Ha OctoPrint-et használunk, akkor mindez még kényelmesebb ezzel a plugin-nel: https://github.com/amsbr/OctoPrint-EEprom-Marlin
Az összes értéket kényelmesen szerkeszthetjük egy formon. Load/Upload gombokkal elmenthetjük, visszatölthetjük őket. De készíthetünk fájlba egy mentést is magunknak az aktuális állapotról.