OctoPrint installieren und konfigurieren
OctoPrint ist eine Software, die auf einem Raspberry Pi läuft und den 3D-Drucker bedient.Anstatt die mit Cura oder einem anderen Slicer erstellten GCode ständig auf eine SD-Karte zu kopieren und damit zum Drucker zu laufen, die Karte einzustecken und den Druck über den Touchscreen am Drucker zu starten, kann man den GCode über das WLAN zum Raspi schieben, der dann den Druck steuert.
Es bietet aber noch ein paar Vorteile mehr.
Hardware
OctoPrint kommt als komplettes Betriebssystem-Image namens OctoPi, welches alles Erforderliche mitbringt. Man braucht also nur noch einen Raspberry Pi, ein USB-Ladegerät und ein paar Anschlusskabel, um das Projekt zu realisieren.
Ich setze hier wieder einen günstiges Raspberry Pi Zero mit WLAN und Header (kurz Raspi Zero WH) ein, weil dieser WLAN bereits mitbringt, stromsparender ist, schön klein ist und nur um die 15 Euro kostet.
Momentan liegt er nur mit einem rudimentären selbstgedruckten Halter neben meinem Anycubic i3 Mega, ein besseres Gehäuse wird noch kommen, aber zuvor habe ich noch ein paar Erweiterungen vor.
Außer dem Raspi Zero W benötigt man noch:
- USB-Ladegerät (sollte schon so 700 mA, besser 1 A liefern können)
- ein Micro-USB-Ladekabel (im Bild weiß)
- ein OTG-Adapter (OTG = "on the go") USB-Micro auf USB A Buchse (im Bild schwarz)
- ein USB Kabel auf USB B zum Anschluss des Druckers (im Bild blau)
- eine Micro SD Karte mit min. 4 GB
Installation von OctoPi
Das Image von OctoPi gibt es auf octoprint.org. Nachdem man es heruntergeladen hat, entpackt man das Image und bringt es dann mit Etcher oder Win32DiskImager auf eine frische Micro-SD-Karte mit mindestens 4 Gigabyte. Wer ein paar mehr Drucke darauf speichern will, nimmt eine Karte mit 8 GB oder noch mehr Platz.Wie das Flashen eines Images genau geht, zeigt diese Anleitung. Dort gibt es auch noch ein paar technische Details zum Raspi Zero WH.
Die wpa_supplicant.conf aus der Anleitung heißt auf dem OctoPi-Image allerdings leicht anders: octopi-wpa-supplicant.txt, der Inhalt ist aber derselbe.
Nachdem wir die SD-Karte dann in den Raspi eingesteckt und diesen gebootet haben, nehmen wir noch die Grundkonfiguration via raspi-config wie beschrieben vor und schon ist OctoPrint startklar.
OctoPrint konfigurieren
Nach einem Neustart sollten wir dann auf OctoPrints Web-Interface kommen, zu finden unter http://octopi.local/ bzw. der IP-Adresse, die der DNS-Server unseres Routers dem Raspi Zero verpasst hat (ggf. dort nachschauen, wenn die local-Adresse nicht funktioniert).
Nachdem wir den Wizard, der uns auf der Seite begrüßt, abgeschlossen haben, sollten wir einmal auf Verbinden klicken und so die Verbindung zum Drucker prüfen.
Mit dem Maulschlüssel in der Titelleiste kommen wir zu den Einstellungen. Viele davon sind unwichtig, wenn wir OctoPrint nicht auch als Slicer benutzen wollen.
Und davon würde ich eher abraten, denn die Slicer-Engine in OctoPrint ist schon reichlich alt (Version 15.04) und benötigt den Import eines Cura-Profils aus einer Uralt-Version, die man erst parallel installieren müsste. Das Können der Uralt-Version ist dann antürlich auch begrenzt. Man verschenkt damit die Neuerungen, die die neuen Cura-Versionen mit sich bringen. Außerdem: warum den 1 Ghz-Single-Core-Prozessor des Pis abmühen lassen und dementsprechend lange warten, wenn der hochgezüchtete Multi-Core-Prozessor des Desktop-PCs diese Aufgabe sehr viel schneller erledigt?
Sehr viel sinnvoller ist, das unter Verzeichnisse aufgeführt Verzeichnis /home/pi/.octoprint/watched über Samba freizugeben und das Häkchen bei aktives Pollen... zu setzen. Dann nämlich können wir direkt aus Cura in dieses Verzeichnis von Windows aus speichern und die Druckdatei erscheint dann automatisch in der Liste zu druckender Dateien, ohne umständliches "Explorer aufmachen, Verzeichnis suchen, Explorer verschieben, Browser aufmachen, Octoprint-Tab suchen, Browserfenster verschieben, richtiges GCode-File mit der Maus greifen und auf dem OctoPrint-Browsertab fallen lassen" - bah! alleine den Arbeitsablauf hier zu schreiben kommt mir wie eine Strafarbeit vor.
Das funktioniert ganz analog zu meiner Anleitung Dateifreigabe und Zugriff über Windows auf den Raspi, nur benutzen wir die folgenden Einträge in der /etc/samba/smb.conf:
[Watched]
comment = OctoPrint-Watched
path = /home/pi/.octoprint/watched
read only = no
[Uploads]
comment = OctoPrint-Uploads
path = /home/pi/.octoprint/uploads
read only = no
[Home]
comment = OctoPrint-Home
path = /home/pi
read only = no
Wichtig ist eigentlich nur der Watched-Ordner, aber Uploads ist vielleicht ganz praktisch, wenn man alte Uploads löschen möchte und außerdem habe ich das Home-Verzeichnis freigegeben, weil ich später noch ein paar eigene Scripts dorthin kopieren will.Danach nicht vergessen wie beschrieben einen Samba-User anzulegen, damit man auch von Windows auf die Ressourcen zugreifen kann, aber das wir genau in der Anleitung beschrieben.
Jetzt kann in Cura GCode unter \\OCTOPI\\watched gespeichert werden. Das Druckfile erscheint dann kurz darauf in der Liste im Web-Interface in OctoPrint. Dort muss man es nur noch Auswählen und auf Drucken (rechtes Icon) klicken und schon beginnt OctoPrint mit dem Aufheizen des Bettes, dann des Extruders und schließlich beginnt der eigentliche Druck. Dabei hat man immer einen guten Überblick über die Temperaturen und den Druckfortschritt. Weiß also wie lange es noch dauert, und ob nach einem fertigen Druck das Heizbett schon genügend abgekühlt ist, um sich den Druck abzuholen - und am besten gleich die Druckplatte sauber zu machen, dann kann man den nächsten Druck wieder starten, ohne aufstehen zu müssen.
Eine Kleinigkeit muss man allerdings im Hinterkopf behalten: OctoPrint schickt Befehl für Befehl über die serielle Schnittstelle zum Drucker und übernimmt die komplette Steuerung. Interne Sicherheitsmechanismen des Druckers, etwa bei Stromausfall greifen dann natürlich nicht mehr. Ich selbst hab noch nicht ausprobiert, ob OctoPrint so programmiert ist, dass man damit wieder beim Druck aufsetzen könnte, denn schließlich fehlt dem Raspi dann auch der Saft. Oder wie OctoPrint reagiert, wenn der Filament-Sensor sagt, dass kein Filament da ist.
Das wird die Zeit zeigen und ich werde diesen Artikel dann entsprechend ergänzen.
An eine weitere Sache sollte man auch denken: Ein Raspi mag es nicht, wenn man ihn einfach so den Strom kappt. Man sollte ihn vorher herunterfahren (ähnlich wie einen Windows-PC) mit sudo poweroff bzw. sudo shutdown -h now. Dafür gibt es oben in der Titelleiste das Ein/Aus-Symbol, unter dem man System herunterfahren auswählen kann. Dann noch eine Weile (so eins bis zwei Minuten) warten und dann kann man auch die Steckdose abschalten, wenn man will. Nachteil ist dann natürlich, dass man doch wieder zum Drucker laufen muss, um ihn anzuschalten - oder man benutzt eine Funksteckdose.