Ein Kinderbuch, oder: Plastik spaaren, 3D Drucke neustarten

Während dieses letzten Sommersemesters Gab es im Fab Lab einen Drucker, der konstant zum Testen abbestellt war. Der Drucker mit dem Namen “Hades” hatte als Auftrag, für ein Kinderbuch als Versuchsobjekt zu dienen.

Doch was hat Ein Kinderbuch mit hochexperimentellen, plastikspaarenden Techniken zu tun? Holen wir etwas aus.

Anfang dieses Sommersemesters, beschloss ich, ein Kinderbuch für 3D Drucker zu entwickeln. gemeinsam mit meinem Kommilitonen C. Ajiboye wurde daraus ein Handbuch, das auf der einen Seite eine Geschichte erzählt, eine von Ursa, einem Mädchen, das den 3D-Druck mit learning by doing erforscht. Auf der anderen Seite standen dann jeweils Erklärungen wie den Grund der Probleme die Ursa findet und dafür jeweils Lösungsansätze nennt.

Doch die letzte Seite war besonders:

Die Letzte Seite des Buches

In diese Seite war ein WLAN-fähiger (ESP32) Mikrocontroler eingebettet. Dieser konnte über seine Touchpins fühlen, ob jemand einen seiner pins Berührt. Diese pins habe ich anschliessend an Kupferflächen angelötet, und unter der Seite versteckt. einen Laserschnitt später sah man die Kupferflächen durchscheinen.

Dank dieser Flächen war es nun möglich, dem ESP32 Befehle zu geben. Und dank der Octoprint-Server war es dann möglich, den Druckern Befehle zu geben. Ja, ihr lest richtig, dieses kleine Buch hat eine Fernsteuerung für einen 3D Drucker integriert.

Doch wozu das alles?

Einen 3D Druck neu zu starten ist keine einfache Aufgabe, bisher gibt es unter sämtlichen Octoprint Plugins kein einziges, das sich diese Aufgabe traut, mit einer folge: wenn ein 3D-Druck scheitert und die Sensoren es nicht merken, verliert man die manchmal Tage an Druckzeit und die teilweise Kiloweise Plastik. Mit diesem Buch sollte das verhindert werden.

Ein Buch hat viele Vorteile: es ist schnell zur Hand, liegt oft da wo man es haben möchte und die Software ändert sich nicht viel. Auch ist es leichter als ein Laptop und damit handlicher in der Bedienung. Auch muss es nicht hochfahren oder vorkonfiguriert werden. Das Interface ist einfach da.

Aber wie startet man jetzt mit einem Buch einen Druck neu?

Ein 3D Druck ist gespeichert in Maschinencode. Dieser “GCode” Teilt sich Zeile für Zeile auf und wird nachher Zeile für Zeile ausgeführt. Also stellt eine Gruppe von Zeilen eine Schicht dar, denn ein 3D Druck wird Schicht für Schicht ausgeführt. Scheitert nun ein 3D Druck ab einer Stelle, so könnte man hingehen und die Befehle, wenn der Drucker wieder läuft ab dieser Stelle erneut ausführen lassen.

Ab wo das also ist, definiert sich in der Datei wie im realen Druck an der exakten Höhe. Diese Höhe könnte man zwar messen, doch mit dem Auge und mit einem Lineal findet man diese Höhe so schlecht, mit dem 3D Drucker selbst hingegen kann man die Höhe genau finden. Wie beim Kalibrieren alter 3D Drucke kann man nun mit einem Stück papier und Der spitze auf unter 0,1mm exakt ausreichend genau feststellen, wo ein Druck gescheitert ist. Man fährt also mit dem Buch in der Hand die Düse exakt über den Druck, fährt sie ganz langsam herunter und versucht mit einem dazwischen gelegten Papier zu ertasten ab wann sie den Druck berührt.

Der Drucker weiss dann, wenn er noch referenziert ist, exakt wo diese Düse sich befindet. Anhand dieser Höhe wird dann der GCode aufgeteilt, die nötigen Initialschritte werden ausgeführt und dann druckt der Drucker wieder als hätte er nie aufgehört.

Ich will das auch

Nach diesem Semester habe ich nun die Zeit gefunden, dieses Projekt als Plugin für Octoprint zu entwickeln, so braucht man kein eigenes Buch und kann es im Web interface ausprobieren. Doch VORSICHT! Dieses Plugin ist hochgradig experimentell und hat auch schon einmal für die Beschädigung eines 3D Druckers gesorgt. Ich übernehme keine Garantien oder Verantwortung für zukünftige Schäden und rate dazu, immer mit der Hand über dem Notschalter zu schweben bis die erste Ebene wieder druckt und man sicher ist, dass der Drucker an der richtigen Zeile arbeitet.

Start the Discussion!

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.