Aus Raspberry Pi Geek 02/2021

Mit Octoprint 3D-Drucker fernsteuern

© Andrey Armyagov, 123RF

Im Griff

Bernhard Bablok

Mit OctoPi und einem RasPi spendieren Sie Consumer-3D-Druckern ein Upgrade in die Oberklasse.

Normale Drucker eignen sich perfekt für einen Standort fern vom Arbeitsplatz: Per Netz mit Druckaufträgen gefüttert, spuckt das Gerät Seite um Seite aus. Durch die räumliche Distanz ersparen Sie sich den Lärm und die Emissionen.

3D-Drucker sind ebenfalls weder leise noch emissionsarm, deshalb will niemand die Hardware direkt neben dem Arbeitsplatz haben. Allerdings erspart ein Netzwerkanschluss hier nicht den Weg zum Gerät vor dem Druck, denn das Druckbett will gesäubert und die richtige Rolle Filament montiert sein. Die Druckdaten nehmen Sie auf diesem Weg gleich per SD-Karte mit: Drucker im preisgünstigen Consumer-Segment haben oft gar keinen Netzwerkanschluss.

Was für den Start eines Auftrags noch als Luxus gelten darf, gilt für das Überwachen des Drucks aber nicht mehr. Immer wieder geht etwas schief: Das Filament bricht oder verheddert sich, die Düse verstopft – schlecht, wenn Sie das erst am Ende eines mehrstündigen Drucks bemerken. Aus diesem Grund hat die Community eine Software zum Steuern und Überwachen von 3D-Druckern entwickelt.

Octoprint und Octopi

Octoprint [1] ist eine Python-Anwendung mit integriertem Webserver, über die Sie unterstützte Drucker steuern. Dazu nimmt die Hardware die Befehle entweder via USB oder über eine serielle Schnittstelle entgegen. Das Programm verwendet eine Plugin-Architektur, mittels weiterer Module rüsten Sie spezielle Funktionen sehr einfach über den integrierten Plugin-Manager nach. Um die Software hat sich schnell eine rege Community entwickelt, die eine Vielzahl dieser Plugins in einem zentralen Repository bereitstellt.

Als reine Python-Software ist Octoprint portabel und läuft auf allen gängigen Plattformen. Bei vielen Makern ist aber der Platz für den Drucker meist sowieso schon knapp bemessen, sodass dann kein normaler PC daneben Platz findet. Doch das Programm läuft auch auf einem RasPi, und deshalb ist die am meisten genutzte Octoprint-Variante ein modifiziertes Raspberry Pi OS namens OctoPi [2], das Sie bei Bedarf von der Homepage des Projekts herunterladen.

Die Downloadseite rät vom Einsatz eines Pi Zero eindringlich ab (Abbildung 1). Ob diese Warnung tatsächlich berechtigt ist und wie sich das Gespann Octoprint und OctoPi auf dem Pi Zero schlägt, haben wir getestet.

Abbildung 1: Das Octoprint-Projekt rät vom Einsatz eines Pi Zero als Plattform für OctoPi ab. Wir prüfen, ob das in der Praxis wirklich so stimmt.

Abbildung 1: Das Octoprint-Projekt rät vom Einsatz eines Pi Zero als Plattform für OctoPi ab. Wir prüfen, ob das in der Praxis wirklich so stimmt.

Bevor Sie loslegen, sollten Sie sich online [3] informieren, ob Octoprint Ihren Drucker überhaupt unterstützt. Oft sind die Community-Foren zu spezifischen Modellen hilfreich – sei es, um Tipps zu erhalten oder sogar um eine spezielle OctoPi-Variante für den eigenen Drucker zu suchen. Insgesamt gibt es nur sehr wenige Drucker, die mit der Software überhaupt nicht funktionieren. Die Namen dieser Modelle finden Sie am Ende der Liste [3].

Octoprint kommuniziert über eine serielle Schnittstelle mit dem Drucker, üblicherweise über den USB-Anschluss des Mainboards. Beim Drucker des Autors (Prusa i3 MKS3) gibt es noch eine Alternative: Hier hat der Hersteller den direkten Anschluss eines Pi Zero W vorgesehen (Abbildung 2). Dazu gilt es, eine Reihe von extralangen Pins an einen Zero W (nicht WH) anzulöten (Abbildung 3). Dabei liegt die Herausforderung darin, entsprechend lange Pins überhaupt zu bekommen.

Abbildung 2: Das Prusa-i3-Mainboard mit Pi-Zero-Aussparung (Pin-Anschluss oben links).

Abbildung 2: Das Prusa-i3-Mainboard mit Pi-Zero-Aussparung (Pin-Anschluss oben links).

Abbildung 3: Der Pi Zero mit extralangen Pins für den Prusa i3.

Abbildung 3: Der Pi Zero mit extralangen Pins für den Prusa i3.

Auf OctoPi ist nicht nur Octoprint installiert, sondern zusätzlich die Pakete mjpeg-streamer (aus den Quellen) und haproxy. Das Streamer-Paket stellt einen Livestream der Kamera ins Netz, agiert also selbst als Webserver. Damit Sie nicht mit zwei Ports zu hantieren brauchen, verknüpft der Proxy die URL des Streams transparent mit einer URL innerhalb der Octoprint-Seiten.

Obwohl Octoprint unter Python 3 läuft, nutzt OctoPi noch das veraltete Python 2 als Basis. Ebenfalls etwas unschön ist der Einsatz eines normalen Users (pi) für den Systemdienst. Die Start- und Stop-Skripte stammen aus längst vergangenen System-V-Zeiten. Trotz dieser Mankos lohnt sich der Umweg einer Installation von Octoprint auf einem aktuellen Linux nicht – der Mehrwert des sauberen Systems ist gering gegenüber der Arbeit, die es verursacht.

Installation

Die Installation von OctoPi unterscheidet sich nicht von der eines regulären RasPi-OS-Images. Ob Etcher oder Dd, das Tool zum Übertragen auf eine SD-Karte wählen Sie nach Ihren Vorlieben.

Der einzige Unterschied zur normalen (headless) Installation ist die Datei octopi-wpa-supplicant.txt auf der ersten Partition: OctoPi verlinkt /etc/wpa_supplicant/wpa_supplicant.conf direkt auf diese Datei. Damit ist es möglich, die WLAN-Zugangsdaten selbst auf einem Windows-Rechner zu editieren. Das unterscheidet sich grundlegend vom Vorgehen der Raspberry Pi Foundation.

Eine weitere Konfigurationsdatei in der ersten Partition heißt octopi.txt. Sie hat trotz des Namens aber nichts mit der Installation des Systems zu tun, sondern enthält grundlegende Parameter für Octoprint, etwa zur verwendeten Webcam. Für einen ersten Versuch belassen Sie diese Datei unverändert. Ansonsten ist sie gut kommentiert, die entsprechenden Einstellungen sind schnell gemacht.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben