{"id":361,"date":"2023-03-07T22:30:33","date_gmt":"2023-03-07T20:30:33","guid":{"rendered":"https:\/\/carsten.familie-schumann.info\/blog\/?p=361"},"modified":"2023-03-07T22:36:43","modified_gmt":"2023-03-07T20:36:43","slug":"thermal-runaway-beim-3d-drucker","status":"publish","type":"post","link":"https:\/\/carsten.familie-schumann.info\/blog\/2023\/03\/thermal-runaway-beim-3d-drucker\/","title":{"rendered":"Thermal Runaway beim 3D-Drucker"},"content":{"rendered":"<p>&#8230;oder warum es so wichtig ist, dass die THERMAL RUNAWAY PROTECTION auch wirklich aktiv ist.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-362\" src=\"https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/runaway1.png\" alt=\"\" width=\"450\" height=\"149\" srcset=\"https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/runaway1.png 450w, https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/runaway1-300x99.png 300w\" sizes=\"auto, (max-width: 450px) 100vw, 450px\" \/><\/p>\n<p>Die Meldung, dass der eigene 3D Drucker in einen THERMAL RUNAWAY hineingelaufen ist, ist die Meldung, die man als Anwender am wenigsten sehen m\u00f6chte. Immerhin sind dadurch oft mehrere Stunden Druckzeit sinnlos gewesen und das Filament hat sich von einem Moment zum anderen in Edelschrott verwendelt. In diesem Artikel wird kurz beschrieben, wie es zu einem Thermal Runaway kommen kann, wo eigentlich die Gefahren liegen und wie man die Ursache finden kann.<\/p>\n<h1>Was ist ein Thermal Runaway?<\/h1>\n<p>Ein Thermal Runaway ist ersteinmal ein Fehlerzustand des Druckers. Der w\u00fcrde gerne den Extruder oder das Druckbett auf eine bestimmte Temperatur bringen (aufheizen). Doch aus irgendeinem Grund wird die Zielemperatur nicht erreicht oder kann nicht gehalten werden. Nehmen wir mal an, der Drucker weiss, dass er das Bett um 0.25K\/s aufheizen kann, dann erwartet er, dass das Initale Aufheizen von 20\u00b0C auf 60\u00b0C h\u00f6chstens 160 Sekunden dauert. Ist aber nach 160+x Sekunden die gemessene Temperatur noch nicht erreicht, hat der Drucker ein Problem. Das Verhalten l\u00e4sst sich bei <a href=\"https:\/\/github.com\/MarlinFirmware\/Configurations\/blob\/bugfix-2.1.x\/config\/default\/Configuration_adv.h\">Marlin beispielsweise \u00fcber die Config-<\/a>Optionen <code>THERMAL_PROTECTION_*<\/code>, <code>WATCH_TEMP_<\/code> und <code>WATCH_BED_*<\/code> konfigurieren. einstellen.<\/p>\n<h1>Was k\u00f6nnen Ursachen sein und was ist daran gef\u00e4hrlich?<\/h1>\n<p>Von au\u00dfen betrachtet, gibt es drei Effekte, die zu einem Thermal Runaway f\u00fchren k\u00f6nnen:<\/p>\n<ul>\n<li><strong>Die Heizung funktioniert nicht<\/strong> (korrekt) und heizt nicht ausreichend. Damit ist das Druckbett oder der Extruder zu kalt und der Druck m\u00f6glicherweise verschissen. M\u00f6glicherweise l\u00f6st sich noch das Modell vom Druckbett ab oder das F\u00f6rderzahnrad des Extruders rutscht durch. Wirklich schlimme Dinge passieren nur in einem Bruchteil der F\u00e4lle, mehr dazu weiter unten.<\/li>\n<li><strong>Temperatudiebstahl<\/strong>. Die Heizung funktioniert, der Temperaturf\u00fchler auch aber irgendetwas zieht mehr Energie aus dem Druckbett\/Extruder als nachgeliefert werden kann. Dies passiert meist, wenn ein L\u00fcfter direkt auf den Extruder oder aus geringer Distanz direkt auf das Druckbett bl\u00e4st. Wenn man einen Fehler am 3D-Drucker ausschlie\u00dfen kann, dann kann man meist an den Einstellungen im Slicer den L\u00fcfter bei den ersten Schichten reduzieren und alles klappt wieder. Meist tritt dieses Problem aber schon bei den ersten Schichten auf.<\/li>\n<li><strong>Fehlerhafter Temperatursensor<\/strong>. In diesem Fall liefert der Temperatursensor eine zu niedrige Temperatur. Egal, wie stark nachgeheizt wird, glaubt der Temperatursensor die ganze Zeit, dass die Zieltemperatur nicht erreicht wurde und es wird munter mit maximaler Leistung geheizt. In Wirklichkeit ist die Zieltemperatur aber schon lange \u00fcberschritten und der Drucker befindet sich m\u00f6glicherweise in einem kritischen Betriebszustand. Die Folgen k\u00f6nnen von der Zerst\u00f6rung des Druckers bis zu einem Besuch des ortsans\u00e4ssigen L\u00f6schzugs mit dem Alarmierungsstichwort &#8222;Wohnungsbrand MiG&#8220; gehen.<\/li>\n<\/ul>\n<p>Speziell Fall 1 und 3 m\u00f6chte man nicht haben. Trotzdem gibt es immer noch einige Druckerhersteller, die in ihrer Firmware keine solche Fehleraufdeckung implementiert haben oder &#8211; obwohl sie Marlin benutzen &#8211; die Funktion deaktiviert haben. <a href=\"https:\/\/www.youtube.com\/watch?v=q-4kVqNznl8\">Ein prominentes Beispiel ist der Ender 3.<\/a><\/p>\n<h1>Der konkrete Fall<\/h1>\n<p>Bei einem relativ einfachen Modell kam es immer mal wieder vor, dass der Druck nach ca. 1h mit einem &#8222;Heating Failed: Bed&#8220; abgebrochen wurde. Bei dem ersten Vorkommen denkt man noch an einen doofen EMV-Fehler (ich habe mit der Standbohrmaschine und der Kapps\u00e4ge im gleichen Stromkreis gearbeitet). Dann klappte mal wieder ein Druck. Dann gingen zwei in Folge schief, jeweils nach ca. 45 Minuten. Am n\u00e4chsten Tag funktionierte der erste Druck, der zweite und alle folgenden Drucke gingen schief. Abgesehen davon, dass kleine Kinder nur schwerlich bei dem ohrenbet\u00e4ubenden Warnton im Fehlerfall schlafen k\u00f6nnen, wollte ich endlich mein letztes Teil drucken, das ich noch ben\u00f6tigte.<\/p>\n<h1>Diagnose<\/h1>\n<p>Zu diesem Zeitpunkt konnte ich schon sagen, dass das Problem offensichtlich schlimmer wurde. Ich hatte aber noch keine Ahnung, wie es zu dem Problem kam und was es genau war. Also Nochmal den Druckauftrag gestartet und dabei eine Kamera auf den 3D-Drucker gerichtet. Ich habe zwar immer eine, die das Modell filmt, mich interessierte aber mal das Drumherum. Zudem habe ich die serielle Kommunikation zwischen OctoPrint und meinem Drucker geloggt. Das sah dann etwa so aus:<\/p>\n<p><a href=\"https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Kameraufbau.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-368\" src=\"https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Kameraufbau-1024x535.png\" alt=\"\" width=\"616\" height=\"322\" srcset=\"https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Kameraufbau-1024x535.png 1024w, https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Kameraufbau-300x157.png 300w, https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Kameraufbau-768x401.png 768w, https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Kameraufbau-1536x803.png 1536w, https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Kameraufbau-972x508.png 972w, https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Kameraufbau.png 1743w\" sizes=\"auto, (max-width: 616px) 100vw, 616px\" \/><\/a> Als m\u00f6gliche Fehlerquellen(E1-E10) kamen nach ersten \u00dcberlegungen in Betracht (W1 = Unwahrscheinlich, W10 = Wahrscheinlich):<\/p>\n<ol>\n<li>Mikrocontroller, der das Heizen steuert defekt (W1)<\/li>\n<li>MOSFET, der das Signal vom Microcontroller nutzt, um die 12V Betriebsspannung durchzuschalten defekt (W2)<\/li>\n<li>Thermisches Problem beim MOSFET (Bauteil wird zu hei\u00df und versagt dann) (W8)<\/li>\n<li>Problem im Zuleitungskabel zur Heizplatte (W6)<\/li>\n<li>Heizplatte defekt (W2)<\/li>\n<li>Temperatursensor defekt (W4)<\/li>\n<li>Thermische Kopplung zwischen Heizplatte und Temperatursensor unzureichend bei Bewegung\/Thermischer beanspruchung (W6)<\/li>\n<li>Problem mit Sensorkabel (W6)<\/li>\n<li>Problem mit Sensorauswertung (W2)<\/li>\n<li>Softwarefehler (auszuschlie\u00dfen, da Firmware seit \u00fcber 12 Monaten tadellos funktionierte)<\/li>\n<\/ol>\n<p>Praktischerweise lie\u00df sich der Fehler dieses mal direkt beim ersten Druck reproduzieren. Ein Blick auf den Temperaturgraphen zeigte folgendes Bild:<\/p>\n<p><a href=\"https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Bed-Thermal-Runaway.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-369\" src=\"https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Bed-Thermal-Runaway-1024x620.png\" alt=\"\" width=\"616\" height=\"373\" srcset=\"https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Bed-Thermal-Runaway-1024x620.png 1024w, https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Bed-Thermal-Runaway-300x182.png 300w, https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Bed-Thermal-Runaway-768x465.png 768w, https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Bed-Thermal-Runaway-972x589.png 972w, https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Bed-Thermal-Runaway.png 1202w\" sizes=\"auto, (max-width: 616px) 100vw, 616px\" \/><\/a>Aus diesem Temperaturverlauf lie\u00dfen sich direkt einige Erkenntnisse ziehen. Der MOSFET war (trotz ausgeschaltetem Ventilator nicht w\u00e4rmer als handwarm (E3 auf Wahrscheinlichkeit W5 reduziert, m\u00f6glicherweise Vorsch\u00e4digung). Es ist zwischen T1 und T2 ein nahezu linearer Abfall zu erkennen was einen Fehler im Sensorkabel und im Sensor ausschlie\u00dft (E6, E8 und E9 raus). Da das Aufheizen und Halten der Temperatur \u00fcber fast 30min gut funktioniert hat, war der MOSFET wohl vorher auch in Ordnung (E2 raus). Bleibt noch E1, E3, E4, E5, E7.<\/p>\n<p>Dann die Videoauswertung. Hier konnte man sehen, dass bis T1 das Heizbett kontinuierlich per PWM bestromt wurde, da die LED mit ca. 2 Hz blinkte. Zwischen T1 und T2 war die LED komplett dunkel. Damit fiel E7 raus und das Problem konnte auf die Heizkomponenten reduziert werden.<\/p>\n<p>Um bei den verbleibenden Fehlerm\u00f6glichkeiten Licht ins Dunkle zu bekommen, wurde danach das Heizbett einem Stresstest ausgesetzt. Aufheizen, abk\u00fchlen, wieder heizen, hohe Temperatur (90\u00b0C) halten, usw. W\u00e4hrend ich in der K\u00fcche Kaffee trank und auf dem Handy grade eine neue Temperatur vorgeben wollte, kam Kommisar Zufall zur Hilfe und ich konnte den Fehler sozusagen &#8222;in flagranti&#8220; beobachten bevor die Thermal Runaway Protection zuschlug. Also F\u00fc\u00dfe in die Hand nehmen, ab in den Keller und mal bei den Abgangsklemmen auf dem Druckerboard in Richtung Heizbett gemessen. Das Multimeter zeigte 12V, die LED war aber weiterhin\u00a0 aus. Damit fiel E3 final raus, ebenso E1 und E5. Also war das Zuleitungskabel schuld.<\/p>\n<p>Einmal beherzt am Zuleitungskabel gewackelt und siehe da, die LED ging wieder an. Also das Kabel in der Schleppkette genauer begutachtet, teilweise rausgenommen, etwas mehr beim Heizbetrieb dran gewackelt und schlie\u00dflich eine &#8222;Anormalie&#8220; gefunden:<\/p>\n<p><a href=\"https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Cable.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-371\" src=\"https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Cable-1024x597.png\" alt=\"\" width=\"616\" height=\"359\" srcset=\"https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Cable-1024x597.png 1024w, https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Cable-300x175.png 300w, https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Cable-768x448.png 768w, https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Cable-1536x895.png 1536w, https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Cable-972x566.png 972w, https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Cable.png 1548w\" sizes=\"auto, (max-width: 616px) 100vw, 616px\" \/><\/a><\/p>\n<p>Also muss das Kabel getauscht werden. Kurzfristig kam da erstmal eine Wago-Klemme dran, da kein hochflexibles Kabel, das 12A Dauerstrom abkann, verf\u00fcgbar war.<\/p>\n<p>Aber was ist daran so gef\u00e4hrlich???? Das hier:<\/p>\n<p><a href=\"https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Schleppkette.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-372\" src=\"https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Schleppkette.png\" alt=\"\" width=\"794\" height=\"820\" srcset=\"https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Schleppkette.png 794w, https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Schleppkette-290x300.png 290w, https:\/\/carsten.familie-schumann.info\/blog\/wp-content\/uploads\/2023\/03\/Schleppkette-768x793.png 768w\" sizes=\"auto, (max-width: 794px) 100vw, 794px\" \/><\/a>Das Foto zeigt einen Teil der Schleppkette, wo das Zuleitungskabel schon eine <strong>deutliche Spur in die Schleppkette hineingeschmolzen<\/strong> hat. Das hei\u00dft, wir haben hier <strong>mehr als 150\u00b0C<\/strong> an der Au\u00dfenseite des Silikonummantelten Kabels gehabt.<\/p>\n<p>Da w\u00e4ren wir wieder bei der Brandgefahr. H\u00e4tte mein Drucker keine Thermal Runaway Protection gehabt, w\u00e4re das vermutlich die n\u00e4chsten hundert Betriebsstunden nicht aufgefallen. Ich h\u00e4tte mich gelegentlich gewundert, warum sich der Druck vom Druckbett abl\u00f6st, h\u00e4tte es aber auf falsche Parameter oder ein verschmutztes Druckbett geschoben. Bis es dann durch Zufall, Brandgeruch oder Flammenerscheinung aufgefallen w\u00e4re&#8230;..<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8230;oder warum es so wichtig ist, dass die THERMAL RUNAWAY PROTECTION auch wirklich aktiv ist. Die Meldung, dass der eigene 3D Drucker in einen THERMAL RUNAWAY hineingelaufen ist, ist die Meldung, die man als Anwender am wenigsten sehen m\u00f6chte. Immerhin sind dadurch oft mehrere Stunden Druckzeit sinnlos gewesen und das Filament hat sich von einem&#8230;<br \/><a class=\"read-more-button\" href=\"https:\/\/carsten.familie-schumann.info\/blog\/2023\/03\/thermal-runaway-beim-3d-drucker\/\">Mehr Lesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-361","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"_links":{"self":[{"href":"https:\/\/carsten.familie-schumann.info\/blog\/wp-json\/wp\/v2\/posts\/361","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/carsten.familie-schumann.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/carsten.familie-schumann.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/carsten.familie-schumann.info\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/carsten.familie-schumann.info\/blog\/wp-json\/wp\/v2\/comments?post=361"}],"version-history":[{"count":11,"href":"https:\/\/carsten.familie-schumann.info\/blog\/wp-json\/wp\/v2\/posts\/361\/revisions"}],"predecessor-version":[{"id":376,"href":"https:\/\/carsten.familie-schumann.info\/blog\/wp-json\/wp\/v2\/posts\/361\/revisions\/376"}],"wp:attachment":[{"href":"https:\/\/carsten.familie-schumann.info\/blog\/wp-json\/wp\/v2\/media?parent=361"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/carsten.familie-schumann.info\/blog\/wp-json\/wp\/v2\/categories?post=361"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/carsten.familie-schumann.info\/blog\/wp-json\/wp\/v2\/tags?post=361"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}