In diesem Beitrag möchte ich kurz und knapp beschreiben, wie Ihr die MARLIN 2.0 Firmware am Beispiel des ANET A8 Plus 3D Drucker kompiliert, konfiguriert und installiert.
Ihr müsst vor der Installation der Marlin Firmware das Board des ANET mit einem Bootloader versehen. Das habe ich in dem Beitrag ANET Board 1.7 mit Bootloader flashen erklärt. Ich komme aber später auf diesen Beitrag zurück, denn es ist wichtig, dass Ihr auch eine neue Firmware brennen könnt, bevor Ihr das Anet Board 1.7 mit einem Bootloader ausstattet. Durch das flashen des Bootloaders wird nämlich die darauf bestehende Software gelöscht und wenn das Aufspielen der neuen Firmware nicht klappt, dann habt Ihr ein leeres Board oder eben einen kaputten Drucker.
Arduino IDE installieren
Als erstes benötigt Ihr die Arduino IDE. Diese könnt Ihr unter der Adresse https://www.arduino.cc/en/software herunterladen und installieren.
Anet Board Hardware Definition installieren
Und auch noch die Board-Definition für das ANET Board. Diese könnt Ihr hier GitHub – SkyNet3D/anet-board: This is a board definition which works in Arduino IDE 1.8.x for Anet Board targets. herunterladen. Klickt dazu einfach rechts oben auf den grünen Button „Code“ und anschließend auf „Download ZIP“. Das ZIP-File entpackt Ihr und wechselt dann in den Ordner „./anet-baord-master/hardware„. Dort befindet sich ein Ordner „anet“. Den kopiert Ihr bitte in die Hardware-Definition eure Arduino Umgebung. Das ist in der Regel der Ordner C:\Programme (x86)\Arduino\hardware. Dort sollten sich bereits die beiden Ordner „Arduino“ und „tools“ befinden.
Das ist die Definition für das Arduino Board 1.0. Das ist aber für unsere Zwecke irrelevant, da sich (unter dem Aspekt der Programmierung) die Boards nicht geändert haben.
Marlin 2.0.x herunterladen
Die Marlin Firmware könnt Ihr Euch hier herunterladen GitHub – MarlinFirmware/Marlin: Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. | Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine..
Klickt dazu einfach rechts oben auf den grünen Button „Code“ und anschließend auf „Download ZIP“. Das ZIP-File entpackt Ihr und wechselt dann in den Ordner „./Marlin-2.0.x„. Darin befindet sich ein Ordner mit Namen „Marlin„. Kopiert diesen gesamten Ordner einmal in das Hauptverzeichnis Eurer Festplatte (C:\).
Anmerkung: Im Grunde ist es egal, wo Ihr den Ordner hin kopiert. Aber für dieses Tutorial ist es leichter, wenn der Ordner dort liegt, wo das Tutorial glaubt dass er liegt. Ihr könnt Ihn aber irgendwo hin (wo Ihr ihn wiederfindet) kopieren; Und wenn Ihr mal gelesen habt, dass es wichtig ist, dass der Ordner kurz ist, so lasst Euch gesagt sein, dass das ein alter Eintrag war und die Pfade mittlerweile alle relativ an den Linker übergeben werden.
Die Anet A8 Plus Konfiguration runter laden
Die Konfiguration der Marlin Software haben glücklicherweise schon andere zusammen getragen. Diese könnt Ihr hier herunterladen: GitHub – MarlinFirmware/Configurations: Configurations for Marlin Firmware
Ihr müsst allerdings zuerst links oben die richtige Marlin Version wählen. Zum Zeitpunkt als ich das geschrieben habe ist Marlin 2.0.7.2 die aktuelle Version. Es reicht nicht aus links oben bei den Versionen „2.0.x“ auszuwählen. Ihr müsst explizit die richtige Version wählen (2.0.7.2). Nun wie gewohnt rechts oben auf den grünen Button „Code“ klicken und dann auf Download ZIP. Das ZIP entpackt Ihr und wechselt in den Ordner „Configurations-release-2.0.7.2„. Nun könnt Ihr unter den Ordnern „./config/examples/Anet/A8plus“ die drei konfigurationsdateien in Euren Marlin Ordner (C:\Marlin) kopieren. Die bestehenden Konfigurationsdateien werden dabei überschrieben.
LCD-Treiber U8glib installieren
Bevor wir nun zum ersten Mal die Marlin Firmware kompilieren brauchen wir noch die Bibliothek (so eine Art Treiber) für das LCD-Display. Dazu startet bitte einmal die Arduino IDE (habt Ihr ja oben downgeloaded und installiert) und klickt dann auf
Werkzeuge->Bibliotheken verwalten…
Im Suchfeld gebt Ihr Bitte „u8glib“ ein und sucht die u8glib-Bibliothek von Oliver heraus:
Bei mir ist Sie bereits installiert, Ihr klickt bitte auf den „Installieren“ Button. Die Bibliothek wird nun geladen.
Update: Änderungen zur aktuellen Marlin Version 2.0.9.1
In der aktuellen Marlin Version (das ist im August 2021 die Version 2.0.9.1) müsst Ihr die Library u8glib-HAL installieren. Das wird genauso wie die u8glib in der Bibliotheksverwaltung durchgeführt.
Error: The filename or extension is too long
Die Marlin Software lässt sich (unter Windows) nun immer noch nicht kompilieren. Das hat damit zu tun, dass es sehr viele Module gibt, die am Ende „zusammen-gelinkt“ werden. Diese Ansammlung von Modulen überschreitet die maximale Länge von Befehlszeilen (32KB) unter Windows. Deshalb bereinigen wir einzelne „nicht benötigte“ Module. In diesem Fall die nicht benötigten HALs.
Öffnet dazu bitte ein Explorer Fenster und wechselt in den Marlin-Ordner (C:\Marlin). Wechselt weiter in den Ordner src und anschließend HAL. Das sind die Libraries für die verschiedenen Zielsysteme. Wir benötigen jedoch nur AVR und den gemeinsamen Ordner „shared„. Alle anderen Ordner (nicht Dateien) bitte heraus löschen.
Marlin 2.0 kompilieren
Wechselt bitte in Euren Marlin-Ordner zurück (C:\Marlin) und klickt doppelt auf die Datei Marlin.ino. Die Arduino IDE öffnet sich und das Marlin Sketch nebst den Konfigurationsdateien werden in den Editor geladen.
Wählt unter Werkzeuge->Board->Marlin AVR Boards das ANET V1.0 Baord aus:
Wenn Ihr das Anet Board bereits via USB verbunden habt, könnt Ihr auch gleich den COM-Port auswählen. Bei mir ist das COM3.
Klickt links oben mal auf den Button mit dem Haken (Überprüfen). Dadurch wird das gesamte Projekt einmal durchkompiliert:
Nun wird es Zeit was Kaffee zu holen. Das Kompilieren kann schon mal dauern.
Am Ende erscheint die Meldung, dass die Kompilierung erfolgreich war und wie groß das Sketch geworden ist:
Wenn Ihr an dieser Stelle seit, dann habt Ihr es fast geschafft. Ihr könnt die neue Firmware kompilieren (erfolgreich). Alle Voraussetzungen sind geschaffen um die Marlin Software zu übertragen. Es wird Zeit, den Bootloader zu brennen. Das habe ich aber in einem anderen Beitrag beschrieben: ANET Board 1.7 mit Bootloader flashen.
Marlin 2.0 Firmware auf den ANET A8 Plus übertragen
Habt Ihr den Bootloader gebrannt und das Board via USB angeschlossen (nicht über den USBasp (den brauchen wir nicht mehr, dass macht nun der Bootloader) sondern direkt via USB) steht dem Übertragen der Marlin Firmware nichts mehr im Wege. Schaut noch einmal ob unter Werkzeuge das richtige Board (Anet) und der richtige COM-Port ausgewählt ist.
Anschließend klickt Ihr in der Arduino IDE oben links auf den Button mit dem Pfeil nach rechts „Hochladen“. Schon wird die MARLIN Firmware via Bootloader auf Eurer ANET 1.7 Board übertragen.
Nachdem die neue Firmware auf das Board übertragen wurde, wird das Board neu gestartet und Ihr seht das Boot-Logo (nebst Versionsnummer) der Marlin Firmware:
Beim ersten Neustart bekommt Ihr ein Versionsfehler der EEPROM-Daten. Das ist normal:
Resetet einfach die EEPROM-Daten und Ihr gelangt zum gewohnten Info-Bildschirm:
Marlin 2.0 Firmware auf deutsch einstellen
Ihr werdet es an den Screenshots bereits bemerkt haben. Ich habe meinen Drucker auf deutsch umgestellt. Ist das bei Euch nicht der Fall, dann öffnet einfach Configuration.h und sucht den Begriff LCD_LANGUAGE (der steht bei mir in Zeile 1686):
Ändert die Sprache einfach von Englisch (en) nach Deutsch (de) oder welche Sprache Ihr auch immer wollt.
Kleiner Tipp: Ich bin es gewohnt, dass ein Drehknopf nach rechts „höher zählt“ während er nach links „niedriger zählt“. Das ist in der original Konfigurationsdatei allerdings anders herum eingestellt. Wenn Ihr also wollt, dass der Menü-Balken beim rechts drehen nach unten wandert so sucht den Begriff REVERSE_ENCODER_DIREKTION (steht bei mir in Zeile 1782). Kommentiert die Define-Anweisung einfach durch zwei Schrägstriche aus, dann habt Ihr rechts herum Plus (+), links herum Minus (-):
So, nun viel Spaß mit Eurer neuen Marlin Firmware. In den nächsten Beiträgen werde ich Power Lose Control und Filament-End-Sensor besprechen. Das ist nämlich der Grund, warum ich die Marlin-Software bei mir installiert habe. Da gibt es aber zusätzlich ein paar Hardwaredinge zu besprechen.
Hallo, vielen Dank für diese Anleitung. Es hat alles super Funktioniert nur habe ich das Problem das der Reset nicht funktioniert. Marlin 2.0.9.1 startet neu aber es kommt immer wieder die Meldung mit dem EEPROM. Kann es sein das ich etwas übersehen habe? Grüße Mario
Hallo Mario,
Hmh, ich kenne das Verhalten nicht. Wenn die Fehlermeldung kommt, wählst Du aber schon aus, dass die Daten „geresetet“ werden sollen? Hast Du mal versucht die Settings zu ändern und dann neu zu schreiben / anschließend ein Reset durchgeführt?
Hallo Christoph, vielen dank für diesen ausführlichen Block.
Ich habe folgendes Problem,
Drucker ist der A8 als PK8 mit LCD Display vom A6, E3D Bowden Extruder und induktiv Sensor
Nach dem update auf Marlin 2.0.9 kam die meldung des Reseten was ich durchgeführt habe.
Wenn ich jetzt auf Homing gehe, fährt der Druckkopf nach links zum Anschlag, das Druckbett nach hinten zum Anschlag und Z fährt runter und hört nicht mehr auf da der Induktivsensor jetzt neben dem Bett steht und somit nicht auslöst. Auch das Autoleveling finde ich nicht im Menü.
Hast du einen Tipp was ich in den Configdateien umstellen muss?
Viele Grüße
Christian
Hallo Christian,
verstehe ich Dich richtig, dass Du den Induktiv-Sensor (fürs Bed-Leveling?) anstelle des Z-Endschalters montiert hast (Eingänge sparen)?
Hallo Christoph,
vielen Dank für das Zusammentragen dieser Informationen. Mir hat besonders dieser Beitrag sehr viel Zeit und Ärger erspart.
Freundliche Grüße
Chris
Hallo Christian,
das freut mich, dass Dir der Beitrag geholfen hat. SO war er gedacht 😉
glg
Hey Christoph,
danke für diese wundervolle Anleitung
ich habe beim installieren von Marlin auf das Anet board 1.5 immer den Fehler „avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xd6
“ das ganze dann 10 mal, hast du eine Erklärung warum das so ist bzw wie ich das lösen könnte? Mein Ansatz wäre vielleicht eine Treiber zu aktualisieren oder das das Board vielleicht kaputt ist
Freundliche Grüße
Florian
Hallo Florian,
was hast Du denn als Board in der Arduino IDE ausgewählt? Hast Du den Bootloader selber geflashed? Hast DU die Board-Definition aus der selben Quelle wie hier: https://chriss.gebbing.de/3d-drucker/anet-board-1-7-mit-bootloader-flashen/ beschrieben geladen?
Hallo, gute Beschreibung nur leider habe ich ein Problem mir wird kein Anet1.0 unter werkzeuge angezeigt. Was kann ich noch benutzen das ich Marlin2.0 auf meinen AnetA8plus bekomme?? Ich bekomme immer wieder Fehler.
Hallo Mandy,
verzeih die späte Rückmeldung (Beruf und so). Hast Du die ANET-Definition heruntergeladen und in die Arduino IDE kopiert?
Hallo Mandy,
verzeih die späte Rückmeldung (Beruf und so). Hast Du die Hardware-Definition heruntergeladen und in die Arduino-IDE kopiert?
Mein Anet Board ist defekt und ich habe mir ein Creality board geholt. Kann ich ganz normal Marlin installieren? Benötige ich für die Z-Achse einen Splitter? Das Board hat nur einen Eingang
Hallo Ben,
mit Eingang meinst Du Ausgang? Z-Eingänge haben bei Boards nur einen (und benötigen auch nur einen). Der ANET A8 Plus hat jedoch zwei Z-Step-Motoren (Ausgänge).
Mit Splitter meinst Du vermutlich diesen hier (oder ähnlichen): Dual Z Axis Adapter*. Dazu kann ich nur abraten. In der Regel schafft eine Endstufe keine zwei Motoren (Dazu kenne ich aber Dein Board zu wenig)