In den ersten drei Teilen (Teil 1, Teil 2, Teil 3) dieser Blogserie haben Sie schon viel über den 3D-Drucker und Fachbegriffe in diesem Bereich gelernt. Gleichzeitig haben Sie gelernt, wie Sie einen Drucker modifizieren und mittels Terminalbefehle optimieren. Die Optimierungen waren notwendig, da eine Hardwaremodifikation immer mit einer Softwaremodifikation einhergeht. Im letzten Teil haben wir die Druckertreiber durch TMC2208 v1.2 ersetzt und die Steps in der Software neu eingestellt.
In diesem Teil werden wir noch einmal eine Tuningmaßnahme am Heatbed durchführen, dass sogenannte Mesh Bed Leveling. Dieses haben wir im ersten Teil schon mit den Stellschrauben vom Heatbed gemacht, aber durch die Firmware knutwurst hat man die Möglichkeit, ein Mesh Bed Leveling auch softwareseitig durchzuführen. Dies soll ein Teil dieses Blogteils sein, gleichzeitig möchte ich Ihnen OctoPrint näher vorstellen.
Warum dieses ganze Tuning und Optimieren?
Die erste Frage, welche wahrscheinlich in diesem Blogbeitrag nun aufkommen wird ist, warum ich nun auch im vierten Teil dieser Blogserie mit einem Optimierungsthema anfange. Dazu möchte ich Ihnen weniger in Worten beschreiben, warum das so wichtig ist, sondern Abbildung 1 soll Ihnen zeigen was Tuning und Optimierung bringt.
Abbildung 1: Kalibrierungswürfel im Vergleich
Wenn Sie nun denken, dass ich nur diese drei Würfel gedruckt habe, dann zeige ich Ihnen mal die Sammlung, die ich in der Kürze im Büro gefunden habe, siehe Abbildung 2.
Abbildung 2: Alle gefundenen Kalibrierungswürfel
Sie sehen schon anhand der Qualität der einzelnen Würfel, dass ich viele Schritte beim Thema Tuning und Optimierung durchlaufen habe. Alles damit das Druckbild so ist, dass ich auch wirklich zufrieden bin. Insgesamt hat es zusammengerechnet über 40 Stunden gedauert, nur damit Sie mal eine zeitliche Vorstellung erhalten. Das Zusammentragen der nötigen Informationen und Fehlerdiagnose ist da noch nicht eingerechnet.
Das softwareseitige Mesh Bed Leveling
Das softwareseitige Mesh Bed Leveling ist das Finetuning zum normalen Leveling. An dieser Stelle ein Auszug aus dem ersten Blogbeitrag dieser Serie, zu dem Thema Leveling, siehe Zitat 1.
„Ist also die Rede vom Leveln, so ist einfach gemeint, dass der Abstand zwischen Nozzle auf das Heatbed angepasst werden soll. Dazu positioniert man das Hotend auf die Homeposition, also den Punkt {0,0,0} im Koordinatensystem des Druckers über den entsprechenden Menüeintrag. Vorher legt man ein dünnes Blatt Papier zwischen Nozzle und Heatbed und deaktiviert nach dem Erreichen der „Home“-Position die Motoren für alle Achsen. Je nach Hersteller wird empfohlen, bestimmte Punkte am Heatbed anzusteuern und über die Stellschrauben unter dem Heatbed den Abstand zu justieren. Dabei findet man im Internet viele Antworten, wann richtig gelevelt wurde. Mir hat es gereicht, wenn das Blatt zwischen Heatbed und Nozzle, leicht kratzt, wobei ich das Heatbed auf 60°C erhitzen lasse.“
Zitat 1: Auszug zum Thema Leveling
Damit ist aber erst einmal das normale Leveling erledigt. Hat das Heatbed eine Krümmung, so hilft das normale Leveling nur bedingt. Hier kommt das Mesh Bed Leveling ins Spiel, welches die Krümmung softwareseitig ausgleicht. Sie können sich dies als eine Art Korrekturoffset auf den eigentlichen Positionswert vorstellen. Diese Korrekturoffsets werden in einer internen Matrix im EEPROM gespeichert und müssen vor dem ersten Druckauftrag geladen werden. Damit man das Mesh Bed Leveling nutzen kann, müssen wir zunächst die in der Firmware hinterlegte Matrix resetten und dann neu schreiben lassen. Zunächst navigiert man in das Print-Menü und öffnet das Special Menu, siehe Abbildung 3.
Abbildung 3: Öffnen vom Special Menu
Der Reload-Button ist in diesem Fall die Bestätigung, um weiterzukommen. Als Nächstes sollten Sie den Punkt „Load FW Defaults“, siehe Abbildung 4, auswählen und laden lassen.
Abbildung 4: Firmwarestandardwerte laden lassen
Als Nächstes navigieren Sie zu dem Menüpunkt „Preheat Ultrabase“, mit der unser Heatbed gemeint ist, siehe Abbildung 5.
Abbildung 5: Heatbed auf Betriebstemperatur bringen
Warten Sie einen Moment, da das Heatbed ja eine Weile braucht, um aufgeheizt zu sein. Danach wechseln Sie in den Menüpunkt „Mesh Leveling“ und direkt danach „Start Mesh Leveling“, siehe Abbildung 6.
Abbildung 6: Mesh Leveling starten
Jetzt kommt der Teil, der für das Mesh Bed Leveling nun entscheidend ist. Das Hotend fährt nun insgesamt 25 Positionen auf dem Heatbed nacheinander an. An dieser Stelle müssen Sie an jeder einzelnen Position die Nozzle korrekt ausrichten. Dazu nutzen Sie aber nicht die Drehschrauben am Heatbed, sondern die im Menü nutzbaren Menüpunkte, siehe Abbildung 7.
Abbildung 7: Hotend korrekt ausrichten
Durch die jeweils fünf Positionen in der X-Achse auf fünf Reihen der Y-Achse, kann die Krümmung genau ermittelt werden. Haben Sie alle 25 Positionen gelevelt, wählen Sie „Save EEPROM“ aus und direkt danach „End Mesh Leveling“, siehe Abbildung 8.
Abbildung 8: Das Mesh Bed Leveling beenden und speichern
Im Hauptmenü vom Special-Menü, wählen Sie dann noch einmal „Save EEPROM“ aus, damit alle Korrekturen gespeichert werden, siehe Abbildung 9.
Abbildung 9: Alle Änderungen im EEPROM speichern
Das Beste an dieser Stelle ist, noch 30 Sekunden nach dem Speichern der Daten im EEPROM, sollte der 3D-Drucker neugestartet werden.
An dieser Stelle noch einen kleinen Einwand meinerseits. Ich hatte am Anfang leider Probleme das Mesh Bed Leveling zu speichern, warum kann ich bis heute nicht direkt erklären. In meinem Fall musste ich eine SD-Karte in den Drucker stecken, alle weiteren Verbindungen kappen, „Load FW Default“ und „Save EEPROM“ auswählen. Danach den 3D-Drucker neustarten und noch einmal von vorne mit dem Mesh Bed Leveling beginnen. In einem zweiten Versuch musste ich das USB-Kabel vom Drucker entfernen.
Im letzten Schritt muss nun noch das Mesh Bed Leveling im gcode eines jeden Drucks aktiviert werden. Um genau zu sein, muss das eigentlich nur einmal pro Druckerstart gemacht werden, aus Sicherheit sollte aber das Mesh Bed Leveling in jedem gcode-Druck aktiviert werden.
OctoPrint als Druckerserver
Im letzten Teil meiner Blogserie habe ich OctoPrint erwähnt. Hierbei handelt es sich um einen Druckerserver, der für einen 3D-Drucker zeitnah gcode und weitere Features, wie z.B. Zeitrafferaufnahmen und Statistiken bereitstellt. OctoPrint läuft in meinem Fall auf einem Raspberry Pi 4, mit dem OctoPi-Image. OctoPrint gibt es aber auch für alle gängigen Betriebssysteme. Bevor die Frage nun aufkommt, OctoPrint ist nicht die einzige Druckerserversoftware. Hierbei sei auch der beliebte Repetier Server erwähnt, den ich aber bisher nicht getestet habe. Im groben Sinne machen beide Druckerserver das Gleiche, unterscheiden sich aber durch einige Features und dass der Repetier Server mehrere 3D-Drucker parallel kontrollieren kann. Der Repetier Server soll in einer späteren Version auch stl-Dateien direkt slicen können, aktuell ist das aber noch nicht möglich.
Da nun grob erklärt wurde, was OctoPrint ist, möchte ich Ihnen die Installation, sowie einige nützliche PlugIns zeigen und eine Übersicht der Oberfläche geben. Bevor es aber weitergeht, sei hier noch gesagt, dass ein Druckserver wie der OctoPi nicht essenziell wichtig ist für einen 3D-Druckbetrieb, es reicht auch das Drucken über die SD-Karte oder die direkte Verbindung zu einem PC oder Laptop. Der Nachteil dabei ist aber, dass Sie ihren PC dann nicht abschalten können und ein Pi weniger Strom verbraucht, als ein Laptop oder PC. Sofern ich Ihr Interesse geweckt habe, sollten Sie nicht gleich den noch vorhandenen Raspberry Pi aus der Bastelkiste holen! In meinen Tests habe ich schnell festgestellt, dass ich mit einem Raspberry Pi 2 und 3 immer wieder unsaubere Druckbilder und Fehlerfälle produziert habe. Nicht zuletzt sind mir einige Drucke nicht gelungen, weil die softwareseitige Verbindung zwischen 3D-Drucker und Raspberry Pi unterbrochen wurde, daher sollten Sie zu einem Raspberry Pi 4 greifen, wobei die Version mit 4GB RAM vollkommen ausreicht.
Damit kommen wir auch direkt zur ersten großen Frage: „Wo bekomme ich OctoPi her?“. Es gibt verschiedene Webseiten, bei denen Sie OctoPi runterladen können, ich empfehle aber die offizielle Seite von OctoPrint. Kurz vor Ende des Artikels habe ich zudem auf der Downloadseite erfahren, dass über den von der Raspeberry Pi Foundation angebotenen Raspberry Pi Imager ebenfalls ein OctoPi-Image auf eine SD-Karte kopiert werden kann. Damit haben Sie mittlerweile gleich zwei vertrauenswürdige Quellen.
Egal für welche Variante Sie sich entschieden haben, das OctoPi-Image muss auf eine für den Raspberry Pi geeignete MicroSD-Karte kopiert und nach Erfolg in den Raspberry Pi gesteckt werden. Danach schließen Sie, sofern nicht schon getan, LAN-Kabel und USB-Kabel zur Verbindung mit dem Drucker und Stromkabel an. Sofern Sie den Raspberry Pi nicht via SSH bedienen wollen, müssen mindestens eine Tastatur und ein Bildschirm zusätzlich angeschlossen werden. Es empfiehlt sich im ersten Schritt, sowohl das Passwort für den User „pi“ zu ändern und ggf. die Einstellungen für die Lokalisierung und zuletzt ein Update der Programme durchzuführen. Die beiden erstgenannten Punkte können mittels des Terminalbefehls von Code 1, letzteres über Code 2 umgesetzt werden.
Ein weiterer kleiner Tipp am Rande: sollten Sie keine grafische Oberfläche benötigen, in diesem Fall wäre das der Fall, dann können Sie auf das 0,44GB große Raspbian Lite zurückgreifen. Hier kriegen Sie tatsächlich nur die nötigsten Softwarepakete und das aktuelle Betriebssystem Raspbian.
Sollten Sie mehrere OctoPi’s betreiben wollen, sollten Sie noch den Hostname ändern, was ebenfalls über Code 1 durchgeführt werden kann. Danach sollten Sie den Raspberry Pi einmal neustarten, damit auch alle Anpassungen übernommen werden.
Damit ist die Basissoftware und das Betriebssystem schon einmal auf dem neusten Stand und einigermaßen sicher konfiguriert, ein Neustart tut an dieser Stelle gut.
Nach dem Neustart wird es Zeit, OctoPrint einzurichten. Öffnen Sie dazu einen Browser Ihrer Wahl und tippen Sie einen der unter Code 3 angegebenen Webadressen ein.
Sollten Sie den Hostname vom Raspberry Pi verändert haben, so muss statt octopi der neu eingetragenen Hostname verwendet werden. Mit der Eingabe der korrekten IP oder den Namen, werden Sie nach kurzer Ladezeit begrüßt, siehe Abbildung 10.
Abbildung 10: Start Setup Wizard OctoPrint
An dieser Stelle werden Sie mit einfachen Fragen und Einstellungen durch die Grundkonfiguration geleitet. Wichtig zunächst ist das Erstellen eines neuen Accounts, siehe Abbildung 11.
Abbildung 11: Neuen Account erstellen
In meinem Fall generiere ich immer einen Admin-Account, quasi einen Masteraccount und später dann noch weitere Accounts. Der Masteraccount findet bei mir nur Verwendung, wenn alle anderen Accounts nicht mehr helfen. Wie Sie Ihre Zugänge verwalten, bleibt Ihnen überlassen.
Die nächsten drei Punkte, „Anonymous Usage Tracking“, „Onlineprüfung“ und Plugin Blackliste“ können Sie nach Ihrem Wunsch konfigurieren. Ich persönlich habe alles aktiviert und sehe da keine Probleme.
Interessant wird aber der vorletzte Punkt Default Druckerprofil mit seinen Unterpunkten. Hier konfigurieren Sie im Grunde Ihren Drucker.
Um noch mal auf einen Punkt am Anfang von OctoPrint zurückzukommen, OctoPrint kann nur immer einen Drucker verwalten, daher ist meist der Default-Drucker auch der 3D-Drucker, der fest mit dem Raspberry Pi verbunden ist. Daher benenne ich den Namen um in i3 Mega S und das Modell in Anycubic i3 Mega S, siehe Abbildung 12.
Abbildung 12: Allgemeine Druckereinstellungen anpassen
Im Reiter Druckbett & -volumen müssen nun die Maße vom Druckbett und das Koordinatensystem festgelegt werden, siehe Abbildung 13.
Abbildung 13: Druckbett & -volumen konfigurieren
In meinem Fall, da ich die Firmware knutwurst nutze, sind die Dimensionen nicht so wie die Originalangaben des Herstellers, sondern ein bisschen größer! Das müssen Sie an dieser Stelle selber prüfen.
Die Reiter Achsen, welche die Definitionen für die Geschwindigkeiten festlegt und Hotend & Extruder, welche die Definition des Nozzledurchmessers und die Extruderanzahl definiert, können für einen Anycubic i3 Mega S unangetastet bleiben.
Bevor Sie fertig sind mit der Einrichtung, gibt das Team um OctoPrint noch einmal ein paar Warnungen und Hinweise, die Sie lesen sollten, siehe Abbildung 14.
Abbildung 14: Warnung und Hinweise von OctoPrint zum Thema 3D-Drucken
Mit Beenden bestätigen Sie diese Hinweise und beenden gleichzeitig den Setup Wizard und sehen das Dashboard von OctoPrint, siehe Abbildung 15.
Abbildung 15: Dashboard von OctoPrint
Bevor nun der Drucker angeschlossen und wild gedruckt wird, möchte ich erst einmal die Standard-Weboberfläche von OctoPrint kurz näher erläutern. Grob lässt sich das Dashboard in drei Segmente unterteilen, siehe Abbildung 16.
Abbildung 16: Aufteilung vom Dashboard OctoPrint
Zunächst wäre da die Menüleiste, in Abbildung 16 mit der roten 1 markiert, welche in die Einstellungen, die Systemeinstellungen, Ankündigungen und Nutzereinstellungen wechseln lässt. Gerade bei den Einstellungen werden Sie, sofern Sie OctoPrint stätig aktualisieren oder modifizieren, öfter einmal reinsehen.
Dann ist da die Sidebar, in Abbildung 16 mit der roten 2 markiert, welche die Verbindung zum Drucker übernimmt, den Status wiedergibt und einen Dateibrowser, sowie Druckerbenachrichtigung beinhaltet. Gerade bei Starten eines Druckes oder bei Problemen, werden Sie wichtige Informationen finden.
Zuletzt kommt die Hauptansicht, in Abbildung 16 mit der roten 3 markiert. In dieser Übersicht kann die Temperatur der Druckerkomponenten eingesehen, der Drucker gesteuert, der aktuelle Druckprozess im Gcode Viewer betrachtet, im Terminal Befehle eingegeben und ausgelesen und Zeitrafferaufnahmen gesteuert werden. Gerade die Temperaturüberwachung und das Terminal sind beim Drucken und Modding des Druckers wesentliche Tabs.
Ist der Drucker an Ihren Raspberry Pi angeschlossen, so drücken Sie auf dem Button Verbinden im Tab Verbinden in der Sidebar. OctoPrint versucht nun einen seriellen Port zu finden, an den ein Gerät angeschlossen ist, meist ttyUSB0 und die korrekte Baudrate zu ermitteln. Die meisten 3D-Drucker geben beim Verbindungsaufbau akustische Signale, um den Benutzer darüber zu informieren. Gleichzeitig werden die Einstellungen und aktuellen Daten auf dem gesamten Dashboard aktualisiert, siehe Abbildung 17.
Abbildung 17: Aktuallisiertes Dashboard bei verbundenem Drucker
Sie sehen den aktuellen Status, hier Bereit und die aktuelle Temperatur vom Bett und der Nozzle. Vom Prinzip kann nun der erste Druck über OctoPrint erfolgen, jedoch muss zunächst im Tab Dateien in der Sidebar eine entsprechende gcode-Datei hochgeladen werden. Dazu nutzen Sie den blauen Upload Button und laden bequem ihre Dateien hoch. Diese erscheinen dann alphabetisch sortiert, siehe Abbildung 18.
Abbildung 18: Hochgeladenen gcode-Dateien im Tab Dateien
Interessant dabei ist, dass OctoPrint diese gcode-Dateien analysiert und sofern die Eigenschaften der Datei erweitert werden, auch interessante Informationen wie die Druckzeit und Modellgröße erhält, siehe Abbildung 19.
Abbildung 19: Informationen zum Druckteil
Zuletzt sollte vielleicht noch die Frage geklärt werden, ob ein Druckerserver, wie OctoPrint mit einem Raspberry Pi überhaupt Sinn macht. Diese Frage kann und möchte ich nicht für Sie beantworten! Für mich war aber ein wichtiges Thema, dass mein großer Tower-PC nicht 24/7 an ist und so immens Strom verbraucht. Ein Raspberry Pi ist, nehmen wir den Drucker mal aus der Gleichung raus, wesentlich stromsparender als mein Tower-PC mit seinem 750 Watt-Netzteil! Jedoch habe ich schnell festgestellt, dass erst der Raspberry Pi 4 genügend Leistung besitzt, um sauber mit dem Drucker zu kommunizieren. Mit einem Raspberry Pi 2 und auch 3B hatte ich immer wieder starke Schwankungen im Druckbild, welche ich auch nicht mit Modifikationen gelöst bekommen habe. In einem 3D-Druckerforum wird dieses Problem immer wieder thematisiert und die einfachste Lösung ist tatsächlich ein Rapsberry Pi 4 mit mindestens 4GB RAM. Gleichzeitig konnte ich, durch weitere Hardwaremodifikationen, meinen OctoPi direkt an den 3D-Drucker montieren, sodass ich bei einem Umzug oder Standortwechsel direkt alles an einer Stelle habe. Ein letzter Punkt, der in einem späteren Teil noch thematisiert wird, ist die Verwendung der GPIOs des Pi’s für z.B. eine Beleuchtung oder einen externen Lüfter.
Was wird Sie nun als nächstes erwarten? Nun aktuell haben wir das Standardimage von OctoPrint auf unserem Raspberry Pi, welches aber um einige nützliche Features erweitert werden sollte. Diese Features oder auch Plugins sollen ein Thema sein. Ich stelle teilweise interessante Analyse-Plugins, aber auch Plugins zur Druckoptimierung vor. Bis zum nächsten Blog können Sie sich aber weiter mit den Grundfunktionen vertraut machen und ihre ersten Drucke mit OctoPrint realisieren.
Dieses und weitere Projekte finden sich auf GitHub unter https://github.com/M3taKn1ght/Blog-Repo.
4 comments
Andreas Wolter
Die Links zu den vorangegangenen Teilen dieser Blogreihe wurden ergänzt.
Kobold
Ich habe den Artikel “Getting started with 3D printing Part 3” nicht finden können. Ich konnte ihn bei meiner Suche hier im Blog auch nicht finden. Ein Link auf diesen Teil wäre schön. – Danke!
Dieter Behm
Danke für den Artikel. Ich habe seid 2 Monaten einen Ender 3 Pro und auch octoprint installiert. Leider auf dem Raspi 3 B . Werde jetzt den Raspi 4 installieren und hoffen das der Druck dann ordentlich läuft.
Freue mich auf weitere Blog´s von Ihnen.
Gruß und einen schönen Sonntag aus Dortmund
Dieter
Lars Sternkopf
Hallo, es wäre doch schön, wenn die vorangegangenen Teile (1 bis 3) im Beitrag verlinkt wären.
Viele Grüße