Thermistor-Flimmern

Update 06.12.2020Wie Störungen durch Schaltnetzteile die Temperaturanzeige manchmal um mehrere Grad Celsius schwanken lassen, und was dagegen hilft. Eine Annäherung auf Hobby-Niveau.

Einige von Euch kennen das: Bei einigen Einsteiger-3D-Druckern springt die Temperatur von Hotend oder Heatbed mehrere Grad Celsius auf und ab. Hier soll dem ein wenig auf den Grund gegangen werden.

Erfahrene Elektroniker mögen kulant hinschauen und ggf. konstruktiv beitragen.

Wenn das Thema auf Interesse stößt, sind Vertiefungen hier im Blog oder im Forum nicht ausgeschlossen. Zunächst aber ein hoffentlich einfacher Überblick:

Das Phänomen

Gerade bei den sehr günstigen 3D-Druckern springen die Temperaturanzeigen manchmal um mehrere Grad auf und ab.

In meinem Beispielfall habe ich  die vom Arduino gemessene Temperatur über USB ca. 30 mal pro Sekunde rausgeschrieben. Die Temperatur schwankt sehr schnell um plus minus 1,5 °C:

Die Ursache

Die in den 3D-Druckern verbauten Schaltnetzteile senden hochfrequente elektrische Störungen ins Umfeld aus. Diese werden von den langen Thermistorzuleitungen wie von Antennen aufgefangen und stören die Messung des Thermistorwiderstandes durch den Arduino-Prozessor.

Hier ein Bild vom Oszilloskop, an das der Thermistor direkt angeschlossen ist. Die scharfen Peaks haben einen Abstand von 20µs. Das entspricht einer Frequenz von 50kHz. Das ist mit hoher Wahrscheinlichkeit die Schaltfrequenz des Netzteils.

Die theoretische Lösung

Liegt es wirklich am Netzteil? Versuchsweise habe ich das Schaltnetzteil durch ein sauberes linear geregeltes Labornetzteil ausgetauscht (orange), zum Vergleich nochmal die Kurve mit Schaltnetzteil von oben (blau). Die Störungen sind jetzt eine Größenordnung geringer:

Der Einbau eines linear geregelten Netzteils bleibt aber eine theoretische Lösung, da es für die hohen benötigten Ströme für Heater und Heizbett viel zu groß und/oder teuer wäre. Auch der Tausch durch ein Marken-Schaltnetzteil, z.B. von Mean Well, ist bei einem 150-Euro-Drucker nicht wirtschaftlich.

Die praktische Lösung

Wenn also das einfach gebaute Schaltnetzteil für kleines Geld bleiben muss, kann man ja vielleicht den Thermistor vor der Störung schützen. Z.B. in dem man die Kabel abschirmt.

Gesagt, getan. Die Schrottkiste gab noch ein paar alte billige Cinch-Kabel her. Die habe ich an den Thermistor angelötet. Auf der Thermistorseite endet die Abschirmung einfach offen, auf der Board-Seite habe ich die Abschirmung beider Leitungen gemeinsam mit einem Deltron-Steckanschluss versehen und am Ardduino auf Masse (GND) gesteckt. Das ist nicht schön, aber für einen ersten Test war’s gut genug.

Der Effekt ist tatschlich ähnlich gut, wie der Netzteiltausch: Orange also die Messung mit abgeschirmten Thermistor, blau wieder der Vergleich ohne Maßnahmen.

Legt man den Schirm nicht auf GND, bringt er nichts:

Update 06.12.2020: Poser1000 kommentierte, das Verdrillen der NTC-Leitung könne einen Versuch wert sein. Das habe ich jetzt probiert. Wie vermutet, bleibt das federstahlartige weisse NTC-Kabel nur gleichmäßig verdrillt, wenn man es unter Zug hält. Fällt der weg, wirft es sich unregelmäßig übereinander wie es auch ein Haushaltsgummiband täte. So gut wie möglich in den Drucker gepfriemelt stellt sich raus, dass das Verdrillen etwas bringt (orange), aber bei weitem nicht soviel wie die Abschirmung. Blau wieder der Originalzustand:

Lohnt der Aufwand?

Hinterher ist man immer schlauer. Bei mir hat der Aufwand gelohnt. Aber wie bekommt Ihr vorab raus, ob es lohnt, abgeschirmtes Kabel zu besorgen, an den Thermistor zu löten und durch den Drucker zu fädeln?

Ganz einfach: Baut Euch einen kabellosen Test-Widerstand. Ein 100kOhm-Widerstand findet sich z.B. in Arduino-Experimentiertsätzen. Crimpt einen Stecker dran. Ich habe hier einen Deltron genommen, der passt auch in JST-Buchsen.

Den steckt Ihr testweise statt des Thermistors aus Board und schaut, ob die Temperaturschwankungen verschwinden. Bei mir war das der Fall:

Fazit

Bei nächster Gelegenheit werden irgendwo ein paar Meter zierliches abgeschirmtes Kabel mitbestellt. Das scheint mit Blick auf die Gesamtkosten eine schnelle, wirtschaftlich angemessene Lösung zu sein.

Nebenbei habe ich schon eine Menge über Schaltnetzteile und damit verbundene Messungen gelernt, über die Definitionen von Ripple und Noise, wie man Schaltnetzteile so umbauen kann, dass sie weniger stören, welche Eigenschaften dadurch schlechter werden. Aber das gehört dann eher in ein Elektronik-Forum.

Und zur Ehrenrettung von Schaltnetzteilen sei gesagt, dass man mit ensprechendem Aufwand auch astreine Labornetzteile mit Schaltreglern bauen kann, wenn die Kostenminimierung nicht das Hauptziel ist.

Update 06.12.2020: 1N4148 kommentierte, dass man besser einen elektronischen Filter zwischen NTC und Wandlereingang schaltet. Dem habe ich vor nachzugehen. Berichtet wird dann in einem nächsten Blogpost.

Forum

Nachdem hier in den Kommentaren eine konstruktive Diskussion beginnt, habe ich ein Thema im Forum angelegt. Dort diskutiert es sich bequemer.
https://drucktipps3d.de/forum/topic/thermistor-flimmern/

23 Kommentare

  • Hallo,

    ich möchte als Alternative zum nachrüsten mal so was nennen:
    https://de.rs-online.com/web/p/kabelschlauch/1811981/

    Ein Metall Gewebe Schlauch den man über zu schützende Kabel ziehen kann.
    In meinem Job ist das gängige Praxis zum Schutz (mechanisch und elektrisch).
    Einfach in der Umsetzung, leider im nicht Gewerblichen Handel nur schwer zu bekommen und/oder teuer.
    Die Kupfer Versionen sind auch super flexible.

    mfg Andre

    • Jo. Das ist auch eine Idee. Den Schlauch muss man dann nur mit GND verbinden und einmal sorgfältig auf mögliche Kurzschlussquellen an den Kabelenden schauen.

      • Über die Enden kann man Schrumpfschlauch machen, das verhindert das auf Fransen, ähnlich den Schutzschläuchen aus Kunststoff.
        Die vernickelten lassen sich löten, damit könnte man eine Masse Kabel anbringen.

  • Hallo Peter,

    <>

    Bestimmt hast du eine alte Kabelmaus rumliegen. Die hat ein dünnes, geschirmtes Kabel.

    Gruß Heinz

  • Einfach Termistor-Kabel verdrillen hilft bei Lautsprecherkabel auch.
    müste man mal probieren.

    • Jo. Könnte bei den gängigen Kabeln etwas nerven, weil diese dünnen weissen Strippen sich ja ein wenig wie Federdraht verhalten. Aber wenn’s mich packt, nehme ich den Ansatz noch mit rein.

      • Ich hab das grad mal probiert. Geht rein drahtmechanisch wie erwartet nicht gut. Bringt etwas, aber bei weitem nicht soviel wie die Abschrimung. Im Blogpost einfach nach „Update“ suchen.

  • Guter Beitrag, vielen Dank! Würde mich jetzt noch interessieren, ob das verhältnismäßig preiswerte MeanWell LRS-350-12/24 sich diesbezüglich besser verhält…

    • Jo. Kann ich verstehen. Interessiert uns alle. Ich hab aber keines da.
      Lt. Datenblatt hat das LRS-350 einen Ripple/Noise-Pegel von max. 150mV Peak-to-Peak. Ripple/Noise ist unter Last stärker.
      Man muss die Netzteile also am besten unter einer geregelten Last definiert betreiben und dann Ripple/Noise vergleichen. Darüber denke ich nach. In meinem sparsamen Haushalt gibt’s aber (noch?) kein Meanwell-Netzteil. 😀

  • 2 mal Daumen hoch !

  • Verstehe ich dich da richtig, dass ein ordentliches Meanwell Netzteil da auch hilft?
    Gibts zu den „Billigdruckern“ auch Modellnamen? Ich würde vom Preisrahmen her ja die Anet Brigade und auch den Ender3 vermuten?

    Vielen Dank!

    • Ein ordentliches Schaltnetzteil könnte am Ausgang besser entstört sein. Sicher ist das aber nicht. Auch Markenhersteller bauen unterschiedlich aufwändige Modelle.
      Andersherum könnte auch ein Noname-Netzteil aufwändig entstört sein.

      Die Hersteller günstiger Drucker kaufen sehr wahrscheinlich chargenweise unterschiedliche Netzteile. Zeigt ein Drucker das Phänomen, heisst das nicht, dass dies für alle Drucker des Modells gilt. Ein weitere Rolle spielt offenbar neben dem Netzteil auch der elektrische Gesamtaufbau des Druckers.

      Hier ist das Netzteil das im Titelfoto gezeigte 12V 200W Modell. Es stammt ursprünglich aus einem Ender 2 aus 2017. Der zeigte aber kein Thermistor-Flattern, sondern war und ist als Endermorph(https://drucktipps3d.de/endermorph-und-das-warping-von-asa/) ein sehr guter Drucker. Besser druckt vielleicht noch ein Prusa ode Ultimaker. Das Flattern fängt sich hier eine selbstgebaute Temperatur-Steuerung für den Endermorph-Druckraum mit Arduino und Standard-NTC ein. Weil diese Steuerung das Phänomen bilderbuchmäßig zeigt, habe ich die Gelegenheit genutzt, das Thema etwas aufzuklären. (Im verlinkten Artikel ist noch eine andere Steuerung zu sehen.)

      • Das Meanwell LRS-350-24 und das Lian Li Da LRS-350-24 schenken sich da nichts.

        Viel wichtiger wäre es, boardseitig den Eingang HF-fest zu machen. Zum Beispiel ein kleiner RC-Filter, so wie den SKR-Boards. 100 Ohm & 10 uF geben so ca. 160Hz Grenzfrequenz. Klemm doch parallel zum Thermistoreingang einfach mal einen 10uF Kondensator und schließ den NTC mit 100 Ohm in Reihe an.

        Der Schuldige ist hier nicht das Netzteil, das Oszillogramm sieht für ein SNT gut aus. Die Schwachstelle ist hier eher Arduino NTC. Wie sieht da deine Beschaltung aus?

        • Der NTC läuft im Spannungsteiler zusammen mit einem 100kOhm in Reihe zwischen 5V und GND. Am Mittelabgriff hängt der Eingang vom Wandler.

          Na, ja. Das Netzteil ist schon die Ursache der Störsignale, s. Vergleich mit dem linearen Netzteil. Richtig ist, dass wir wegen der hohen Ströme um ein Schaltnetzteil nicht herumkommen und mit den Störungen ein Stück weit leben müssen.

          Mir persönlich ist es lieber, die Störungen möglichst dicht an der Quelle wegzukriegen. Wenn also eine Abschirmung verhindert, dass sie die NTC-Leitung überhaupt erreichen, finde ich das besser, als sie erst draufzulassen und dann elektronisch wegzufiltern.

          Aber trotzdem ist es interessant, so’n Filter auszuprobieren. Das wäre ja ne Lösung z.B. für Drucker mit Flachbandkabel, die sich nicht so einfach abschirmen lassen. Ich kann mal versuchen, das zusammenzubrutzeln, wenn hier noch nen passender Kondensator rumliegt. Sonst muss das warten.

          • Wie vermutet, die Schwachstelle ist deine ADC-Eingangsschaltung an der der NTC hängt. Hochohmig, nicht gefiltert. Dann darfst du dich aber auch nicht wundern wenn eine Antenne daran wunderbar Schmutz auffängt und für Aliasing (https://de.wikipedia.org/wiki/Nyquist-Shannon-Abtasttheorem) bei der AD-Wandlung sorgt.

            Das Netzteil hält seine Grenzwerte bzgl. Störstrahlung ein. Dein Eingang ist hingegen für die gedachte Anwendung nicht störfest ausgelegt. Willst du deswegen alle anderen elektronischen Geräte die stören könnten in Alufolie packen? Oder alles aus Batterien/Akkus versorgen?

            • Ah. Guter Hinweis. Verstehe ich. Das Filter probieren wir. Es muss nur erst die Elko-Sammlung eintrudeln.

              Tatsächlich würde ich Störungen lieber an der Quelle nicht entstehen lassen, als sie überall wegzufiltern, wo sie stören könnten. Ist natürlich ein kombinatorisches Problem. Bei 100 Störern und einem Empfänger würd ich den Empfänger angehen, andersherum andersherum. 😉

              • Wenn übliche Geräte, wie z.B. das Radio, dadurch gestört wären, würde ich dir zustimmen. Bei dir wird das Netzteil aber nur deshalb zum vermeintlichen Störer weil du unnötigerweise einen Empfänger dafür gebaut hast. Darum heißt es ja auch: Wer misst, misst Mist.

                Was würdest du machen wenn du damit in der Nähe vom DCF77 Langwellensender die NTC-Temperatur messen möchtest? Bei der BNetzA die Abschaltung des Senders erwirken? 😉

                • Jo. Wir sind uns ja einig. Die Wahrheit liegt irgendwo dazwischen.
                  Manchmal wünsche ich mir ja andersherum, die Jungs vom DLF zu bitten, mal dafür zu sorgen, dass Ihr Sender nicht immer der schwächste ist.

                  Lass uns nicht kabbeln. Ich bin ja froh, dass hier jemand mehr von Elektronik versteht als ich und Hinweise gibt.

                  Kondensator-Sammlung ist bestellt. Nachtrag folgt.

                  • Wenn du anhand der Temperaturkurve das Programm vom Störsender errätst, geb‘ ich dir einen aus 😉

                    Ich vermute mal ein 100k NTC? Dann ergeben 10uF ca. 0,5s Zeitkonstante (100k Pullup parallel 100k NTC). Sollte locker ausreichen.

                    Du kannst auch softwareseitig einfach noch ’nen gleitenden Mittelwert bilden. Der Sensor ist eh träge.

                    • Du hast mich jetzt auf Spur gebracht. Ich werd nachher mal die alten Ender 2 und X5S-Baords aus der Schublade kramen und schauen, wie die die NTCs anschließen. Dito die Duet-Boards, die ich jetzt nutze. Das gibt bestimmt noch nen Update auf dem Blogbeitrag. (Ich bin ja Physiker und in Elektronik-Dingen experimentierfreudig, aber eben ziemlich ahnungslos. Da hilft es, wenn Kollegen mit Ahnung und Praxis Tipps geben. So lernen wir hier alle was. 🙂 )

                      Für nen gleitenden Mittelwert muss ich erst die Zeitsteuerung umprogrammieren. Im Moment wartet der Arduino immer für 500ms in der Hauptschleife. In der Zeit kann er Messwerte sammeln und mitteln, jo.

                      Ich hab ein Forenthema angelegt; da lässt es sich bequemer weiterdisktuerien.
                      https://drucktipps3d.de/forum/topic/thermistor-flimmern/

  • Sehr informativ und in Zukunft sicher hilfreich!
    Danke, Peter!

    • Wir haben uns im Hintergrund ja bereits ausgetauscht! Die Boards von Geeetech sind ja ganz typische Vertreter. Reichlich 5° Sprünge machen den 3D-Druck fast zur Hölle. Danke für den Beitrag! Leider verstehe ich zu wenig davon.

Kommentar hinterlassen

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