Marlin Firmware Update via OctoPrint

in #steempress5 years ago

Der übliche Weg, eine neue Version von Marlin aufzuspielen, führt über die Arduino IDE. Das funktioniert soweit auch wunderbar. Umständlich wird es nur, wenn man Drucke nicht per SD Karte auf den Drucker bringt, sondern ihn z.B. via OctoPrint fernsteuert. Dann ist der USB Port in mit einem Raspberry Pi oder anderen Boards verbunden und müsste für jedes Firmware Update umgesteckt werden.

Es gibt aber auch einen einfacheren, wie ich finde, sehr bequemen Weg, für Firmware Updates, ohne Umstecken. Für OctoPrint wird das Plugin Firmware Updater angeboten. Dadurch erhält die OctoPrint Oberfläche einen zusätzlichen Menüpunkt, über den eine kompilierte HEX Datei der gewünschten Marlin Version auf den Drucker geladen werden kann. Und so bringst auch du neue Firmware direkt per Browser auf das Board.

Firmware Updater für OctoPrint installieren


Installiere zuerst das Firmware Updater Plugin in OctoPrint, das geht am besten direkt über den Pluginmanager. Außerdem benötigt das System, auf dem OctoPrint läuft (in der Regel irgendeine Form von Linux auf einem Raspberry Pi) ein zusätzliches kleines Programm, um mit dem Microprozessor des Boards kommunizieren und ihn programmieren zu können: Avrdude. Zum Installieren musst du via Kommandozeile auf deinen Pi zugreifen, grundlegende Linux-Kenntnisse sind an dieser Stelle von Vorteil, aber nicht unbedingt nötig.

Um auf die Kommandozeile zugreifen zu können, empfiehlt sich für Windows-Rechner die Freeware PuTTY, macOS Nutzer haben bereits Terminal vorinstalliert, und können darüber auf den Pi zugreifen. Als nächstes solltest du die IP-Adresse oder den Hostnamen kennen, unter dem dein OctoPrint erreichbar ist, für diese Anleitung gehen wir einfach davon aus, dass die IP 192.168.1.10 ist. Außerdem benötigst du die Zugangsdaten zu deinem Pi. In der Standardinstallation von OctoPi ist der User "pi" und das Passwort "raspberry". Wenn du deinen OctoPrint Server selbst aufgesetzt hast oder bei der Installation von OctoPi das Passwort, wie empfohlen geändert hast, gebe dein Passwort ein. Möglicherweise ist auch der Nutzername nicht "pi" sondern z.B. "root". Im Folgenden gehen wir von OctoPi mit Standard-Zugangsdaten aus.

SSH-Zugriff auf Windows mit PuTTY


Öffne PuTTY und trage im Feld "Host" die IP oder den Hostnamen deines OctoPrint Servers ein, klicke dann auf "Open". Im dann geöffneten Fenster wirst du zunächst nach dem Nutzernamen gefragt und dann nach dem Passwort. Wenn du beides eingegeben hast, bist du mit der Kommandozeile des Pi verbunden und kannst mit der Installation von Avrdude fortfahren.

SSH-Zugriff auf macOS mit Terminal


Öffne Terminal und verbinde dich mit deinem Pi, indem du folgenen Befehl eingibst:

ssh pi@192.168.1.10
Danach wirst du aufgefordert, das Passwort einzugeben. Nach der Bestätigung bist du auf der Kommandozeile des Pi und kannst mit der Installation beginnen.

Avrdude installieren

Die folgenden Befehle bitte zeilenweise eingeben, mit Enter bestätigen und den Anweisungen auf dem Bildschirm folgen, bevor die nächste Zeile eingegeben wird.
sudo apt-get update
sudo apt-get install avrdude
exit

Firmware Updater konfigurieren

Damit ist die Installation schon fast abgeschlossen. Im letzten Schritt gehst du in die Einstellungen von OctoPrint, öffnest aus dem linken Menü "Firmware Updater" und klickst dann auf den kleinen Schraubenschlüssel in der oberen rechten Ecke des aktuellen Fensters. Dadurch gelangst du zu den Einstellungen des Plugins. Hier musst du einige Anpassungen vornehmen und den Pfad zum gerade installieren Avrdude angeben. Das Ganze sollte dann wie folgt aussehen.


Damit ist dein OctoPrint nun bereit, Firmware Updates auf deinem Drucker zu installieren.

Firmware aktualisieren


Über OctoPrint kannst du nicht die bekannten Arduino Sketches direkt kompilieren und hochladen, du benötigst eine HEX Datei. Die kannst du z.T. auch beim Hersteller ode rin Communities runterladen. Bspw. liegt meiner aktuellen Preview von Marlin 2.0.x eine solche HEX Datei bei. Du kannst sie aber auch selbst erstellen.

Öffne dazu die gewünschte Version der Firmware in der Arduino IDE, unter dem Menüpunkt "Sketch" findest du dort den Eintrag "Kompilierte Binärdatei exportieren". Dadurch wird der Firmware Sketch wie üblich geprüft und kompiliert. Bei Erfolg findest du im Ordner, in dem deine Firmware liegt zwei neue Dateien mit der Endung .hex. Eine Datei enthält einen Bootloader (Erkennbar am Dateinamen), die andere nicht. Wie benötigen unbedingt die Version ohne Bootloader. Wählst du hier die falsche könnte das dein Board unbrauchbar machen. Eine Wiederherstellung ist zwar möglich, aber kompliziert.

Gehe in OctoPrint zum Firmware Updater, wähle den USB Port, an dem der Drucker hängt aus dem Dropdown aus und öffne unter "...from file" die gerade erzeugte HEX Datei. Mit Klick auf "Flash from File" wird das Update gestartet. Das dauert 1-2 Minuten. Am Ende des Prozesses sollte der Drucker sich neu starten.

Damit ist das Update abgeschlossen. Künftig musst du also nach Änderungen in der Firmware oder zum Aufspielen neuerer Marlin Versionen nicht mehr den USB Stecker umstecken. Du erzeugst einfach eine Binärdatei und lädst sie via OctoPrint hoch.


Posted from my blog with SteemPress : https://www.3d-diy.de/tutorials/marlin-firmware-update-via-octoprint/