Nachdem ich meine Neugier bezüglich 3D Fräsen gestillt hatte und den Drucker wieder in seine Ausgangslage zurückbaute, dachte ich, es wäre auch eine gute Gelegenheit, die Firmware upzugraden. Ich hatte noch die RF.01.33 in Verwendung (zuzüglich einiger kleiner Modifikationen). Beim Upgraden muss ich all diese kleinen Änderungen mitziehen, natürlich. Ist auch keine große Affäre, denn ich habe sie eigentlich gut dokumentiert.
Die absolut wichtigsten und notwendigen Änderungen sind die Thermistor-Einstellungen, denn ich habe ein anderes Hot End (ein ganz-Metall Pico) und auch die Heizung für das beheizte Bett weicht von der ‚Norm‘ ab. Weitere, jedoch nicht lebenswichtige Änderungen beinhalten den Object-Output-Script, den ich meinen Vorstellungen angepasst habe, des Weiteren auch die Mindest- und Maximaltemperaturen. Ebenso weichen die Kalibrierwerte für X, Y und E um einige Zehntelprozent ab. Aber zum Glück ist alles dokumentiert – da kann nichts schiefgehen. Oder doch? Ich habe also die einzelnen Änderungen mitgezogen.
Als ich zur Zeile für den Thermistor des Heizbetts kam, stand mein Kommentar:
#define HEATED_BED_SENSOR_TYPE 1 // was 3 for RF1k Bed, may need 4 for 10k thermistor, see Config.h!! ; mjh11
Nun, ich hatte, schon seit ich mein neues
Ceran Bett bastelte, mit der Betttemperatur so kleine Probleme. Die tatsächliche Temperatur wich um gut 20 oder mehr Grad ab (nach oben). Der Grund war, meine Heizung besorgte ich mir vom Hersteller selbst, nicht vom großen ‚C‘, bloß durfte und darf der Hersteller die Originalteile nicht an den Endverbraucher abgeben. Die Heizung die mir vermittelt wurde, war quasi ‚Ausschuss‘, da ein 10k Thermistor verbaut wurde, und nicht eines mit 100k, wie sonst vorgesehen. Dafür bekam ich gleich 5 Stück um einen sehr günstigen Preis (zwei wurden mir geschenkt!
Hier der alte Beitrag). Damals versuchte ich einen 100k Thermistor in die Heizung hinein zu ‚schmuggeln‘, was mir auch gelang, aber das Temperaturverhalten war nicht berauschend. Der Thermistor zeigte die Temperatur extrem träge nachhinkend an, sodass die Ist-Temperatur weit über die Soll-Temperatur hinausschoss. Ich wollte damit gleich wieder auf den ursprünglich eingebauten 10k Thermistor zurückgreifen, konnte aber nicht, denn dieser wurde durch meinen Versuch, eine 100k Variante dazu zu schmuggeln, gekillt. Damit konnte ich nur mehr mit dem 100k Thermistor arbeiten, der eine schlechte Performance aufwies.
Die abweichende Temperatur versuchte ich halbherzig mit der Firmware in den Griff zu bekommen, es gibt einen Bereich wo man versuchen kann, das zu kompensieren. Man trägt eine Soll- und eine dazugehörige Ist-Temperatur in eine Tabelle ein und die Firmware kompensiert fortan. Siehe:
#define FEATURE_HEAT_BED_TEMP_COMPENSATION 0
#define BED_SETPOINT_TEMPERATURES {30, 40, 60, 80, 100, 120}
#define BED_MEASURED_TEMPERATURES {36, 48, 72, 96, 120, 144}
Und um mir weitere Schande aufzuladen, sehe ich eben, dass ich in der ersten zitierten Zeile gar nie eine ‚1‘ hingemacht habe um es zu ‚aktivieren', weswegen die anderen zwei Zeilen gar nie abgearbeitet worden sind.
!!
Na ja, jedenfalls hatte ich es bald aufgegeben, mir die Temperatur ‚hinzubiegen‘, lebte einfach damit und passte meine Betttemperaturwerte eben entsprechend an. Und druckte fröhlich weiter.
Das Ganze ist nun schon über drei Jahre her. Es wurde schon viel so gedruckt ….
Im April, letztes Jahr, habe ich einige Heizmatten an einen Bedürftigen verkauft. Dem habe ich deutlich auf die 10k statt 100k Situation aufmerksam gemacht und erklärt, was in der Firmware zu ändern wäre.
Beim Nachziehen der Firmware Änderungen war mir das Temperaturproblem des Heizbetts natürlich bekannt. Daher änderte ich dann fälschlicherweise den Thermistor Typ von 1 auf 4 (für ein 10k Typ), in der Hoffnung, dem Problem ein Ende zu bereiten. Da drei Jahre deutlich weiter zurückliegen als ein Jahr, war mir die Story, dass die Heizmatte einen 10k Thermistor besitzt noch etwas frischer im Gedächtnis als die Tatsache, dass ich den 10k Thermistor gekillt hatte (zumindest in dem bisschen Gedächtnis, über das ich noch verfüge
). Dass ein 100k Thermistor im Einsatz war, hatte ich in den Jahren glatt vergessen!
Diese bisher elendslange Story kommt damit zu einem wichtigen Punkt: ich hatte in der Firmware den falschen Thermistor Typ für das Bett eingetragen.
Damit ist die Story leider noch lange nicht am Ende!
Der Thermistor im Pico ist bei weitem nicht so empfindlich wie im V0, V1 oder V2 Hot End, kann aber trotzdem zickig reagieren.
Vor dem Zurückbauen des Extruders hatte ich vorsichtshalber, mit einem Multimeter, die Funktion des Thermistors geprüft. Der Widerstand änderte sich schön,.wenn ich den Thermistor zwischen den Fingern hielt. Also vorsichtig alles montiert, die Kabel sauber verlegt und angesteckt. Drucker eingeschaltet: Es kam die „def“-Meldung und der Heat Manager Error.
Verdammt! Ich hatte doch so genau bei der Montage aufgepasst! OK, alles wieder abbauen, Thermistor raus, neuen anbauen (siehe Anhang für eine Prinzip-Zeichnung, wie die Thermistor-Einheit insgesamt aufgebaut ist). Das Anbringen eines neuen Thermistors bedarf recht kleiner Aderendhülsen sowie Isolierung aus geflochtener Glasfaser plus Schrumpfschlauch und ist eine ordentliche Fummel Arbeit. Leichter geht es, wenn man einen Original-Thermistor hat, da der Durchmesser des Glaskörpers nicht durch die Feder hindurchpasst. Die meisten Thermistoren, die ich besorgt habe, sind alle zu klein und bedürfen zusätzlicher Maßnahmen, damit sie nicht durchrutschen. Spaß macht und machte es jedenfalls keinen
. Außerdem ging mir die Glasfaserisolierung aus und ich musste aus dem Internet was nachbestellen (der ‚C‘ hat so was erstaunlicherweise nicht).
Wenn nur eine Kleinigkeit danebengeht, können einer oder beide Anschlussdrähte mit der Feder Kontakt haben (und dadurch zu Gehäusemasse) was früher oder später zu Problemen führen kann. Einmal fertiggestellt wurde die Einheit (Kabel samt Feder, usw.) nochmals mit dem Multimeter geprüft. Nochmals vorsichtig eingebaut und zwischendurch ein letztes Mal beim Stecker geprüft. Alles OK. Kabel fertig verlegen und anstecken. Drucker an. Es kam WIEDER die „def“-Meldung und der Heat Manager Error.
Verdammt! Ich hatte doch bei der Montage aufgepasst (nicht so genau wie beim ersten Mal, aber immerhin)!
Haare habe ich jetzt fast keine mehr auf dem Kopf. Erst mal eine Pause, Kaffee trinken und nachdenken.
Irgendwann kam mir der Verdacht, dass es vielleicht mit dem Heizbett zu tun haben könnte. Ich fummelte einen weiteren Thermistor direkt in den Stecker (wie ich es beim Fräsen tat). Die „def“ Meldung kam trotzdem. Das war der Beweis, dass es am Heizbett lag und nicht am Thermistor des Hot Ends.
Da dämmerte es mir langsam, dass ich vielleicht doch kein 10k Thermistor in der Bettheizung hatte. Flugs die entsprechende Zeile in der Firmware wieder geändert und neuerlich hochgespielt:
Fanfaren! Der Drucker machte wieder mit.
Erkenntnis daraus: Ist ein absolut falscher Thermistor in der Firmware eingestellt, kann es den „def“ zur Folge haben. Dabei ist es egal, ob es sich um den Thermistor für das Hot End oder der Bettheitzung handelt. Absolut falsch ist zum Beispiel ein 10k statt einem 100k Thermistor einzutragen – da kommt der „def“. Aber nicht unbedingt umgekehrt. Was im ersten Beispiel passiert ist, war, dass der Drucker bei Raumtemperatur schon so einen hohen Ohm Wert erhielt, dass die errechnete Temperatur SEHR weit unter null sein müsste und der Drucker daher berechtigterweise einen Fehler annahm und den „def“ ausgab. Umgekehrt, also einen 100k angeben, wenn in Wirklichkeit ein 10k Thermistor verbaut ist, könnte dazu führen, dass der Drucker bei Zimmertemperatur schon glaubt, das Hot End wäre 150 oder mehr Grad warm (je nach eingesetzter Thermistor Kurve). Deswegen kommt nicht zwingend ein „def“. Ähnlich schlimm wäre es, einen PTC Sensor (oder Thermistor für über 300°) angeben, wenn so ein Typ nicht vorhanden ist oder umgekehrt.
Es ist durchaus möglich, dass ich den Thermistor gar nie hätte wechseln müssen, hätte ich den Fehler mit dem Eintrag in der Firmware nicht gemacht – dies ist eine weitere Untermauerung der These:
DON’T FUCK WITH A RUNNING SYSTEM!!
Und das wäre das Ende der Thermistor-Story, wenn nicht doch noch irgendwo der Murks drin gewesen wäre und ich den Thermistor nicht noch ein letztes Mal hätte tauschen müssen.
Wichtig an der ganzen Story ist, dass ich zwischenzeitlich einen Thermistor im Einsatz hatte, der mehr als 40° höher anzeigte als tatsächlich vorhanden war, womit ich zum eigentlichen Thema zurückkehre.