Der Einstieg in den 3D-Druck - Teil 5

Im fünften und vorerst letzten Teil möchte ich das Thema OctoPrint abschließen und PlugIns vorstellen, die ich auch bei mir nutze. Die PlugIns sind teilweise Optimierungen während des Druckens, aber auch um das Design der GUI zu verändern. Zudem bin ich Ihnen noch eine Antwort schuldig, wie Sie das Mesh bed leveling im gcode aktivieren. Abschließend möchte ich Ihnen einige meiner 3D-Drucke vorstellen.

Zu Teil 1, Teil 2, Teil 3, Teil 4

Mesh bed leveling im gcode aktivieren

Im vierten Teil der Blogserie habe ich angedeutet, sobald man das Mesh bed Leveling am 3D-Drucker durchgeführt hat, dieses auch in jedem Druck beim Start aktivieren muss. Dies muss noch vor der ersten Drucklinie erfolgen und am Anfang vom gcode passieren. In Cura öffnen Sie dazu unter Konfiguration -> Einstellungen die Geräteeinstellungen vom Drucker und fügen dem Start G-Code den Eintrag aus Code 1 hinzu, siehe Abbildung 1.

Abbildung 1: Das mesh bed leveling benutzen

Abbildung 1: Das mesh bed leveling benutzen

M420 S1 ;Use stored Mesh bed leveling

Code 1: gcode zum mesh bed leveling

Wenn Sie sich Abbildung 1 genauer ansehen, werden Sie feststellen, dass ich deutlich mehr Start G-Code eingetragen habe, als nur diese eine benötigte Zeile. Dieser macht vor dem eigentlichen Druck diverse Vorbereitungen, zum einen die Homeposition ermitteln und eine erste Linie außerhalb vom Druckteil ziehen, um altes Filament aus der Düse zu bekommen, siehe Code 2.

;Startcode Begin

G21 ;metric values

G90 ;absolute positioning

M82 ;set extruder to absolute mode

M107 ;start with the fan off

G92 E0 ; Reset Extruder

G28 ; Home all axes

M420 S1 ;Use stored Mesh bed leveling

G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed

G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position

G1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line

G1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little

G1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line

G92 E0 ; Reset Extruder

G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed

G1 X5 Y20 Z0.3 F5000.0 ; Move over to prevent blob squish

G92 E0 ; zero the extruded length again

;Startcode End

Code 2: Vollständiger Start G-Code meines Druckers

Teilweise ist der Start G-Code schon vom Druckerprofil vorgegeben gewesen, weswegen ich nur noch Modifikationen vorgenommen habe.

Die Kommentare hinter den einzelnen gcodes sollte erklären, was genau passiert. Damit ich schnell sehe, was zum Startcode gehört, habe ich entsprechend eine Markierung für Anfang und Ende gesetzt. Einen Teil davon habe ich aus dem Repository-Wiki vom Entwickler knutwurst übernommen.

PlugIns und nützliche Tabs von und für OctoPrint

Wie einleitend schon geschrieben, bietet OctoPrint die Basis, damit der 3D-Drucker seine Arbeit erledigt. Wie schon im letzten Teil erwähnt, stellt OctoPrint die nötigen Befehle an den Drucker bereit und überwacht auch den Drucker. Kommt es zu Problemen beim Drucken, übermittelt der Drucker diese und OctoPrint warnt entsprechend den Benutzer.

Im nächsten Schritt möchte ich gerne meine PlugIns vorstellen, die ich für mich persönlich als sinnvoll erachte. Wundern Sie sich bitte nicht, wenn im Folgenden mein Theme etwas anders aussieht, als das Standard-Layout, das ist eine rein kosmetische Anpassung und ändert an der Funktion von OctoPrint nichts. Zudem ist die folgende Liste natürlich erweiterbar und je nach Geschmack können Sie weitere PlugIns installieren.

Anfangen möchte ich mit dem schon vorhandenen Tab „Printer Stats“, siehe Abbildung 2.

Abbildung 2: Statistik vom Drucker

Abbildung 2: Statistik vom Drucker

Als Fan von Daten, ist dieser Reiter für mich persönlich vom besonderen Interesse. Hier sieht der Benutzer, wie lange gedruckt wurde, wie oft man sich mit dem Drucker verbunden hat, ob Drucke durchgelaufen oder durch einen Fehler abgebrochen wurden und vieles mehr. Interessant ist auch die Statistik des theoretischen Verbrauchs, siehe Abbildung 3.

Abbildung 3: Statistik über den Verbrauch

Abbildung 3: Statistik über den Verbrauch

Das Großartige ist, Sie können sich über die Filterfunktion die Daten entsprechend gefiltert ausgeben lassen, siehe Abbildung 4. Sie haben die Wahl ob es das aktuelle Jahr oder der Monat sein soll, oder quartalsweise danach filtern.

Abbildung 4: Filterung der Statistik

Abbildung 4: Filterung der Statistik

Damit können Sie die Betriebsstunden und auch die Drucktage ermitteln, wann Sie am meisten gedruckt haben. Das Filtern dauert aber immer ein bisschen und benötigt eine hohe CPU-Last, auch in der aktuellen OctoPrint-Version kommt es daher immer mal wieder zu Problemen.

Als nächstes möchte ich Ihnen das erste separat erhältliche PlugIn Arc-Welder vorstellen. Um dieses und auch alle anderen Plugins zu installieren, gehen Sie oben auf den Schraubenschlüssel und wählen den PlugIn-Manager aus. Hier können Sie nach dem gewünschten PlugIn suchen und auch installieren, siehe Abbildung 5.

Abbildung 5: Installiertes Arc-Welder

Abbildung 5: Installiertes Arc-Welder

Arc-Welder ist ein super PlugIn, um Radien und Kurven besser zu drucken. Dazu muss man verstehen, wie ein 3D-Slicerprogramm Kurven, Radien oder Kreise in gcode interpretiert, siehe Abbildung 6 linke Seite.

Abbildung 6: Unterschied Arc-Welder bevor und danach

Abbildung 6: Unterschied Arc-Welder bevor und danach, Quelle https://plugins.octoprint.org/plugins/arc_welder/

Cura und alle anderen 3D-Slicerprogramme unterteilen solche Kreise, Radien oder Kurven normalerweise in viele kleinere Teilsegmente. Diese werden in den meisten Fällen dann durch gerade Stücke gedruckt. Damit haben Sie aber im Grunde keine saubere Rundung, sondern viele kleine Kanten. Arc-Welder analysiert den gcode und filtert genau diese Quellcodezeilen raus und überarbeitet diese, siehe Abbildung 6 rechte Seite. Arc-Welder entfernt diese Teilstücke und schreibt besseren gcode, um eine saubere Rundung zu erhalten. Das optimiert nicht nur das Druckbild, sondern minimiert auch noch die Größe der gcode-Datei erheblich. Teilweise hatte ich gcode-Dateien von 5MB, die nach der Bearbeitung von Arc-Welder dann nur noch 4 MB groß waren. Es gibt zwar auch solche PlugIns für alle gängigen 3D-Slicerprogramme, die das Übernehmen, ich nutze aber tatsächlich lieber Arc-Welder von OctoPrint.

Abbildung 7: Arc-Welder Einstellungen anpassen

Abbildung 7: Arc-Welder Einstellungen anpassen

Schon in der Standardeinstellung ist Arc-Welder gut, wir können aber noch Feinjustierungen vornehmen. Dies geht über das Tab Arc-Welder, siehe Abbildung 7. Eine ausführliche Dokumentation finden Sie unter https://plugins.octoprint.org/plugins/arc_welder. Super dabei ist, sobald Sie eine gcode-Datei bei OctoPrint hochladen, wird direkt im Anschluss Arc-Welder tätig und analysiert und modifiziert den gcode, noch bevor Sie diesen drucken können.

Das nächste PlugIn nennt sich Top Temp und fügt an der oberen Leiste der WebGUI von OctoPrint eine Temperaturanzeige hinzu. Die Anzeige ist auf der gleichen Höhe wie die Menüleiste und zeigt, sofern der Drucker verbunden ist, die Temperatur von Hotend und Heatbed, siehe Abbildung 8.

Abbildung 8: Toptemp in der WebGUI

Abbildung 8: Toptemp in der WebGUI

In meinem Fall habe ich zusätzlich noch die Temperatur der Raspberry Pi CPU hinzugefügt, was in den Einstellungen unter Top Temp hinzugefügt werden kann. Dort gibt es den Tab Custom und ein entsprechendes Template für die CPU-Temperatur. Direkt nach dem Speichern wird die CPU-Temperatur angezeigt. Das hilft mir vor allem frühzeitig zu erkennen, ob meine Druckerumhausung zu warm ist und der extern verbaute Lüfter vom Schrank und Raspberry Pi eingeschaltet werden muss.

Damit habe ich die perfekte Überleitung zu meinem nächsten PlugIn geschaffen. Dieses heißt GPIO Control und ermöglicht es die GPIO-Steckleisten vom Raspberry Pi zu benutzen. Auf der WebGUI von OctoPrint wird dafür ein entsprechendes Widget angelegt, sofern in den Einstellungen entsprechende Anschlüsse konfiguriert wurden, siehe Abbildung 9.

Abbildung 9: Das Widget GPIO Control

Abbildung 9: Das Widget GPIO Control

Wie Sie aus den früheren Blogbeiträgen schon gesehen haben, habe ich separate 12V-Lampen an meinem Drucker installiert und mittlerweile den Drucker in einem Schrank verbaut, der mit einem 12V PC-Lüfter belüftet werden kann. Um gleichzeitig den Raspberry Pi effektiver zu kühlen, ist noch ein kleiner 5V-Lüfter im Raspberry Pi-Gehäuse verbaut. Diese drei Komponenten kann ich über die GPIOs steuern, die ersten beiden genannten Komponenten werden über ein Relais mit 12V-Spannung versorgt, sprich das verwendete GPIO steuert nur den Eingang vom Relais. In den Einstellungen kann das GPIO Control-PlugIn konfiguriert werden, siehe Abbildung 10.

Abbildung 10: Einstellungen GPIO Control

Abbildung 10: Einstellungen GPIO Control

Sie können das Icon auswählen, der Funktion einen Namen geben, das GPIO wählen und konfigurieren, ob es high- oder lowaktiv geschaltet sein soll. Der Standardwert kann auch noch festgelegt werden, ob das GPIO ein- oder ausgeschaltet sein soll, damit Sie auf der sicheren Seite sind.

Zuletzt noch ein nettes PlugIn mit dem Namen Bed Cooldown, welches 5 Minuten vor Druckende, oder erreichen der 90%-Marke, das Heizen vom Heatbed deaktiviert, es also langsam abkühlen lässt. Dieses PlugIn ist rein für meine Bequemlichkeit. Da das Heatbed nicht erst zum Ende des Drucks abgeschaltet wird, sondern schon etwas früher, kann ich schneller den Druck vom Heatbed lösen.

Das Abschalten vom Heatbed ist nicht weiter schlimm, da es die Haftung des Druckes nicht wesentlich negativ beeinflusst. Sollten Sie auch schneller Ihre Drucke haben wollen, dann sollten Sie sich dieses PlugIn einmal näher ansehen.

Zusammenfassung

In den insgesamt fünf Teilen dieser Serie, habe ich Ihnen das Thema 3D-Druck, sinnvolle Modifikationen, Optimierungspotential, OctoPrint und nützliche PlugIns vorgestellt. Damit ist der Grundstock für die Makerszene gesetzt. Nun liegt es an Ihnen, wie Sie mit dem Wissen weitermachen und was Sie konstruieren wollen. Zum Konstruieren brauchen Sie eine entsprechende Software, wobei es hier eine große Auswahl gibt. Persönlich nutze ich FUSION 360, es geht aber auch tinkerCAD oder andere gängige 3D-Designprogramme, die eine stl- oder 3mf-Datei erzeugen können. Für fast alle 3D-Designprogramme gibt es im Internet Anleitungen oder das gute alte gebundene (Taschen-)Buch beim (Online-)Händler.

Da ich aufgrund meiner Kinder viele Projekte auch für diese entwickle, liegt es nahe, dass auch die meisten 3D-Drucke für meine Kinder sind. Ein aktuelles Projekt sehen Sie in Abbildung 11.

Abbildung 11: Tonie-Landschaft

Abbildung 11: Tonie-Landschaft

Ich habe für die Tonie-Box und auch für die Tonies entsprechende Wandhalterungen entworfen. Gerade für die Ladestation, mittig im Bild, wird es demnächst ein Upgrade geben, um noch mehr das Funkeln in den Augen meiner Kinder zu sehen. Mehr möchte ich aktuell erst einmal nicht verraten, da ich dazu noch einen entsprechenden Blogbeitrag plane.

Der Mond, links im Bild, ist mit fluoreszierendem Filament gedruckt worden, damit es abends leicht grün scheint, wobei auf die Front ein Mondsticker geklebt wurde. Die Sonne ist noch aus Holz gefertigt, aber auch hier gibt es demnächst ein gedrucktes Update. Um einmal die Dimensionen zu erfassen, der Mond hat einen Durchmesser von 30cm, die Sonne knapp 35cm.

Damit möchte ich mich bei Ihnen Bedanken, mich bei der kleinen Reise zum Thema 3D-Druck begleitet zu haben. Ich hoffe, dass mein Gelerntes Ihnen persönlich weitergeholfen hat, sich mit dem Thema 3D-Druck selbst zu beschäftigen, oder sogar einen eigenen 3D-Drucker anzuschaffen. Sinnvolle Modifikationen gibt es für fast jeden Drucker, hier empfehle ich https://www.thingiverse.com.

Dieses und weitere Projekte finden sich auf GitHub unter https://github.com/M3taKn1ght/Blog-Repo.

Grundlagen softwareRaspberry pi

3 Kommentare

Jörn Weise

Jörn Weise

Hallo Herr Letner,
tatsächlich ist es so, dass ich die Konstruktion an meinem großen Tower mache (Fusion 360) und das Slicen über Cura vornehme. Die erstellte gcode-Datei transferiere ich dann zu OctoPrint und lasse darüber dann den Druck starten. Theoretisch wäre es möglich, über Cura auch den Drucker zu steuern, aber mein Tower zieht knapp 750W und der Pi eben nur 15W. Das ist ein großer Unterschied und spiegelt sich auch in der Stromrechnung dann wieder, den Drucker mal ausgenommen.
Wenn ich mal “schnell” was gucken will, mache ich das entweder über das Tablett oder über mein Handy, da bei beiden das Interface wunderbar funktioniert.

Hallo Herr Behm,
das freut mich zu hören, dass diese Artikel ihnen ein bisschen geholfen haben. Ich bin gerade dabei meine Konstruktionen auf thingiverse.com hochzuladen bzw. dafür vorzubereiten. Damit können Sie Mond und Wolke einfach nachdrucken. Ich sage aber jetzt schon, insgesamt hat der Druck für alle Komponenten knapp 80h gedauert und es werden dann noch ein paar Materialien benötigt. Es ist aber ein super Weihnachtsgeschenk für die Kinder oder Enkel ^^

Gruß und bis zum nächsten Blog
Jörn Weise
für Az-Delivery

Dieter Behm

Dieter Behm

Hallo Herr Weise,

danke für diese informative Reise in die Welt der 3 D Drucker. Habe einiges gelernt und seid August bin ich auch Besitzer eines Ender 3 Pro. Ebenfalls danke für die Idee mit dem Tonie, dadurch kann ich bei meinem Enkel punkten.
Gruß
Dieter Behm

Lentner Peter

Lentner Peter

Servus Jörn,

vielen Dank für diese fünf sehr ausführlichen und den weit gespannten Bogen im Artikel.
Wer diese fünf Artikel durcharbeitet und auch an bzw mit seinem Drucker umsetzt bekommt anschließend eins super Grundlage für seine Drucke.

In einem der Artikel hast Du geschrieben dass Du den RasPy einsetzt um Strom zu sparen da nicht der große Tower laufen muss. D.h. nach dem Erstellen der Druckdatei und dem transferieren auf den RasPy schaltest Du den PC aus und verbindest Dich mit eine Tablet auf den RasPy, den an diesem ist ja kein Monitor, Tastatur und Maus angeschlossen?

Einen Kommentar hinterlassen

Alle Kommentare werden vor der Veröffentlichung moderiert

Empfohlene Blogbeiträge

  1. ESP32 jetzt über den Boardverwalter installieren
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. OTA - Over the Air - ESP Programmieren über WLAN