Ofensteuerung

Der Ofen ist, obwohl schon ziemlich alt, mit einer elektronischen Steuerung ausgestattet die es ermöglicht einfache Brennkurven zu fahren. So kann man den Ofen bis zu einer einstellbaren Temperatur erstmal langsam hochheizen, dann ‚Vollgas‘ geben bis die Zieltemperatur erreicht ist und dann noch eine Weile die Temperatur halten. Das ist für den Töpfer sehr angenehm weil er den Ofen unbeaufsichtigt laufen lassen kann. Zwei Tage später ist dann alles soweit abgekühlt dass die frischen Töpfe entnommen werden können.
Doof nur, wenn die Steuerung rumzickt und völlig unmotiviert zu beliebigen Zeiten den Brand abbricht.

Da gibt es also wieder einigen Frickelspaß….

Bestandsaufnahme

Die alte Steuerung ist ehrliche 80er Jahre Elektronik: bedrahtete Bauteile, DIL-Käfer und ne Menge Analogtechnik. Ohne Schaltplan bin ich da bei der Fehlersuche aufgeschmissen. Es scheint eh ein sporadisch auftretender Fehler zu sein, der wahrscheinlich immer dann nicht auftritt wenn ich hingucke.

Natürlich gibt es Ersatzsteuerungen. Die schlagen mit 500€ und mehr dicke Löcher in die Taschen von gebeutelten Jungunternehmern im untergehenden Töpferhandwerk und sind dann noch nicht mal 100% kompatibel. Es müsste also noch jemand den Ofen und die Ersatzsteuerung irgendwie verheiraten.

Aber glücklicherweise gibt es heutzutage ja eine Menge µController-Boards und Sensorik für günstiges Geld. Da drängt es sich gradezu auf einfach eine eigene Steuerung zu entwickeln.

Der Plan

Für ungefähr 20€ gibt es passende Arduino-Boards, ein Shield mit Messverstärker MAX31855 für Thermoelemente ist für unter 20€ zu haben und Tastatur, grafisches Display (Nokia 5110 LCD), Spannungsversorgung etc. liegen irgendwo noch in einer Bastelkiste herum. Da könnte was draus werden….

Einziges Problem ist das im Ofen verwendete Thermoelement PtRd-Pt Typ S. Diese Platin-Rhodium-Elemente sind im Hobbybereich eher nicht zu finden und so ist der Messverstärker auch mit einem Feld-Wald-und-Wiesen Typ K ausgestattet. Die Teile messen auch schon bis 1200°C, sind aber für einen Töpferofen trotzdem nicht ausreichend.

Schön ist allerdings das der im Shield verwendete Messverstärker Typ K einen pinkompatiblen Bruder Typ S hat. Maxim ist so nett diese Teile auch als Sample zu verschicken. Nicht das ich zu geizig wäre einen zu kaufen, aber beim Elektronik-Dealer ums Eck gibt es diese Exoten nicht.

Die Umsetzung

Da es für die sowohl für den MAX31855 als auch für das Display fertige Treiber-Bibliotheken für Arduino gibt habe ich mich entschlossen, trotz einer gewissen Abneigung, die Arduino Entwicklungsumgebung zu nutzen. Ich hatte die Hoffnung die Ofensteuerung auf diese Weise schnell mal zusammenfrickeln zu können.

Die ersten Tests habe ich mit unmodifiziertem Messverstärkerboard und einem Typ K Thermoelement als ‚fliegender Aufbau‘ auf dem Schreibtisch gemacht. Die Heizelemente des Ofens wurden durch eine 60W Schreibtischlampe ersetzt. Schnell ein kleines Menü, einen PD-Regler und eine State-Machine für die einzelnen Stufen der Brennkurve programmiert und der Prototyp steht.

Im nächsten Schritt habe ich das ganze Gefrickel an den echten Ofen angeschlossen. Dazu musste vorher noch der richtige Typ S Messverstärker auf das Board gelötet werden.
Der darauf folgende Test in Form eines Schrühbrands war reichlich langweilig: Langsam innerhalb von 4 Stunden auf 600°C heizen, dann Vollgas bis 900°C und dann 20 Minuten die 900°C halten… Das Ganze verlief ohne nennenswerte Zwischenfälle und hat ewig gedauert.
Nach dem Abkühlen des Ofens kann die Keramik dann glasiert werden und nach einer kurzen Trocknungszeit der Glattbrand durchgeführt werden. Die Brennkurve ähnelt der des Schrühbrands, geht aber bis 1220°C hoch.
In der Zwischenzeit hat die Steuerung ein erweitertes Menü, mehrere speicherbare Brennprogramme, eine eigene Stromversogung und ein Gehäuse bekommen. Es folgt der zweite Testlauf der anfangs ebenso Langweilig ist wie der Erste. Leider spielt liefert der Messverstärker irgendwo ab 950°C nur noch vermurkste Messwerte und Fehler. Den Glattbrand habe ich anhand der wenigen brauchbaren Messdaten dann per Hand zum Abschluss gebracht, immerhin steht da eine Menge Keramik drin die andernfalls nur noch in die Tonne kann. Gleichzeitig versuche ich dabei Anhaltspunkte für das Fehlverhalten zu finden..

Das Voodoo-Problem

Hässliche kleine Fehler die auf- und abtauchen wie es ihnen beliebt, nicht vernünftig reproduzierbar sind und sowieso nach allem was man so weiß eigentlich garnicht da sein dürften.
In diesem speziellen Fall ist die Fehlersuche besonders eklig weil der Ofen halt sehr lange braucht um überhaupt über 900°C heiß zu werden und dabei ordentliche Mengen Energie verschlingt. Ab hier war klar das es jetzt langwierig werden wird.

Als erstes habe ich das analoge Signal des Thermoelements und den digitalen Datenstrom des Messverstärkers mit dem Speicheroszilloskop untersucht. Das Thermoelement habe dazu mit einem Gasbrenner auf die 900°C und mehr aufgeheizt. Das war spannend, nur der Fehler ist nicht weiter aufgetreten. Einzig das billige China Schaltnetzteil konnte ich als heftige Störquelle ausmachen und habe das Teil durch einen ehrlichen Trafo mit Linearregler ersetzt.

Hoffnungsfroh erfolgt ein weiterer Testlauf. Juhu! Der Fehler ist wieder da…  Also Operation am offenen Herzen:

  1. während des Brands die Software so manipulieren das sie trotz erbärmlicher Messwerte die Brennkurve halbautomatisch zu ende bringt
  2. gleichzeitig den Datenstrom des Messverstärkers analysieren

Wenigstens kommt dabei eine kleine Implementierungsschwäche des Treibers für den MAX31855 zu Tage und ein weiterer viel wichtigerer Effekt fällt auf: Immer wenn der PD-Regler den Heizkreis abschaltet normalisieren sich die Messwerte. Mal schauen was ich damit anfangen kann. Es folgen etliche Tests die mir aber nicht erklären können was sich da genau abspielt. Vielleicht emittieren die rotglühenden Brennspiralen Elektronen die dann das mV-Signal des Thermoelements so stören das der Messverstärker aus dem Tritt kommt? Ich weiß es nicht. Wer eine Erklärung hat möge sie mir bitte Mailen. Jedenfalls gibt es jetzt einen Hebel an dem ich ansetzen kann. Sobald die Brennkurve in den Bereich oberhalb von 800°C kommt werden vor dem Einlesen der Temperatur die Heizelemente einfach ausgeschaltet und 300ms gewartet.

Es ist zwar immer unschön wenn man ein Problem nicht wirklich versteht und es nur durch einen Workaround umgeht, aber hier war es leider nicht anders zu lösen. Der folgende Testlauf war spannend bis zum Schluss aber der Workaround funktioniert.

Ende gut…

Inzwischen wurden beide Öfen der ‚Wilden Töpfe‘ mit dieser billigen 50€ Steuerung ausgerüstet und haben zig Brände zu aller Zufriedenheit durchgeführt.

Mir schweben schon diverse weitere Features, wie z.B. eine Abkühlungsbeschleunigung (geregelte motorische Türöffnung), Datenerfassung der Brände, weitere Sicherheitsfeatures und eine Fernüberwachung des Brands im Kopf herum, aber die langwierigen Testläufe schrecken mich aktuell noch ab die Software wieder anzufassen. Auch das Entwickeln mit der, höflich formuliert, spartanischen ‚Arduino-Entwicklungsumgebung‘ lädt nicht besonders zum Weitermachen ein.