Nachdem unsere alte Quickmill 5000A vor kurzem den Heldentod gestorben ist, musste kurzfristig eine Neue her. Das hat Dank Fa. Kaffee24 erstaunlich schnell geklappt, aber die neue Maschine hat natürlich wieder keine Überwachung für Wasser- und Satzbehälter. Meine Idee, die neue Überwachung ganz modern mit einem ESP8266 umzusetzen, hat sich als unpraktisch in mehreren Punkten erwiesen.
Nachdem das geklärt ist, teste ich zuerst mal die geänderte Firmware auf einem Arduino Nano und stelle erstaunt fest, dass das weiße Display nicht mit 3,3 V läuft, was das Blau/Gelb Display in der Vergangenheit klaglos absolviert hat. Also brauche ich einen geänderten Adapter für den Arduino Nano, bei dem der I2C Anschluss zumindest wahlweise mit 5 V versorgt werden kann.
(Click auf das Bild für größere Darstellung)
Das zusätzliche Element bedingt eine andere Leitungsführung auf der Platine.
Der “Umschalter” ist per Leiterbahn defaultmäßig auf 5 V eingestellt. Soll ein Blau/Gelb Display eingesetzt werden, muss diese Leiterbahn mit einem Skalpell aufgetrennt und die Verbindung nach 3,3 V mit einem Lötklecks hergestellt werden.
Anmerkung
Das Blau/Gelb Display läuft natürlich ebenfalls völlig problemfrei mit 5 V, das Gefrickel
mit dem Skalpell kann man sich also bei Einsatz eines solchen Displays sparen.
Nachtrag
Die externen PullUps auf SCL und SDA des I²C Bus müssen unbedingt eingebaut werden, die internen PullUps des Arduino sind zu hochohmig für die lange, geschirmte Leitung zwischen Arduino und Display. Warum das bei der alten Maschine 17 Jahre lang ohne
zusätzliche PullUps problemfrei funktionierte, ist ungeklärt. Bliebe zu erwähnen, dass beim Update der Firmware in der alten Maschine auf den aktuellen Softwarestand das
Display ebenfalls nicht mehr funktionierte - Hardwareaufbau natürlich unverändert.
Erst nach Einbau der externen PullUps läuft auch hier wieder alles wie gewohnt.
Möglicherweise ist für das geänderte Verhalten eine Änderung in den eingezogenen Libraries verantwortlich. Dem bin ich nicht weiter auf den Grund gegangen.
Hier die Designfiles für den Arduino Nano Adapter V1.2 zum Download.
Die Anzeige der Version Info im Menü habe ich noch schnell zentriert und die Firmware Version V2.2 erstellt. In invertierter Darstellung fiel auf, dass die Zeilen ohne Abstand am linken Rand klebten, was nicht gut aussah.
Aktualisierung
Inzwischen existiert die Version V2.6 der Quickmill Saver Firmware. Durch Umstellung
einiger Variablen von int auf char wurde Platz für kleine Erweiterungen geschaffen. Die Anzeige der Gesamtanzahl aller gezapften Tassen wird jetzt vor jedem Zapfvorgang kurz
angezeigt (das war schon mal realisiert, ist aber bei der Umstellung auf weißes Display verschütt’ gegangen). Weiterhin ist der grässliche Grinse-Smiley rausgeflogen, da hat
man ja Angst bekommen, wurde der angezeigt. Und da bei den neueren Versionen der Quickmill 5000A nach dem Zapfvorgang das in der Heizpatrone noch enthaltene Wasser
nicht mehr in den Wasserbehälter zurück, sondern in die Tropfschale abgeleitet wird, muss diese Auffangschale spätestens beim Wasser nachfüllen geleert werden. Jetzt
werden also im Wechsel zwei verschiedene Texte angezeigt, wenn der Wasserbehälter aufzufüllen ist.
Zusätzlich wurde gegenüber Version V2.5 die untere Grenze für den Gesamt-Tassenzähler von 5000 auf 1000 geändert. Das hilft bei einer neuen Maschine mit nur
ca. 1800 gezapften Tassen ungemein beim Setzen des Zählers :)
Sollte Jemand eine ganz neue Maschine mit dem Quickmill Saver ausstatten, muss das Define TASSENLOW im Code z.B. auf Null gesetzt werden (erledigt in V2.7).
Aktualisierung
Und schon wieder eine Erweiterung für die Quickmill Saver Firmware in Version V2.7.
Um den Zeitpunkt für die nächste Entkalkung nicht zu verpassen, gibt es jetzt einen Zähler auf 500. Sind 500 Tassen durchgelaufen, wird eine Meldung eingeblendet, dass
die Maschine zu entkalken ist. Da kaum noch Platz im Flash vorhanden ist, musste ich etwas tricksen. Den Zählerstand bis zum nächsten Entkalken zeige ich auf der Seite mit
der Version Info an. Wird die Version Info aufgerufen, wenn der Zähler 500 oder größer ist, wird er zurück gesetzt.
Zusätzlich habe ich den unteren Grenzwert für den Gesamt-Tassenzähler jetzt auf Null gesetzt, ein anderer Wert ist nicht wirklich sinnvoll. Diese untere Grenze habe ich ursprünglich nur so hoch eingestellt, weil unsere damalige Kaffeemaschine eben schon mehr als 8000 Tassen auf dem Buckel hatte und ich mir dadurch das mühsame Hochschrauben gespart habe. Beim ersten Aufruf der Einstellfunktion wurde der Wert im EEPROM automatisch auf diesen unteren Grenzwert eingestellt :)
Aktualisierung
Die Darstellung der Information, dass die Maschine zu entkalken ist, auf die gleiche Art
und Weise wie die anderen Warnungen hat mich nicht überzeugt, weshalb ich mir dafür etwas anderes ausgedacht habe. Hintergrund für diese Entscheidung ist die Tatsache,
dass Wasser sofort nachgefüllt und der Satzbehälter zumindest sehr zeitnah geleert werden muss, das Entkalken aber ruhig für ein paar Tage auf die lange Bank geschoben
werden kann, ohne dass Gewaltiges passiert. Deshalb ist in Version V2.8b die Anzeige für Entkalken jetzt als kleine Box quer über die Füllstandanzeige der beiden Behälter
gelegt. Man sieht weiterhin wie voll oder leer die beiden Behälter jeweils sind, bekommt aber unmissverständlich angezeigt, dass eine Entkalkung ansteht. Wird die Aufforderung
zum Entkalken ignoriert, fängt nach weiteren 20 gezapften Tassen der Text in der Box an hektisch zu blinken, was dann schon gewaltig nervt und die Motivation zu entkalken in ungeahnte Höhen schraubt. Ziel erreicht :)
Aktualisierung
Die Automatik zur Ableitung des Erstellungsdatums zur Anzeige in der Versioninfo des
Quickmill Saver hat in Monaten mit A immer den August ausgerechnet. Das ist im April natürlich unschön und wurde in Version V2.8c behoben.
Aktualisierung
Die neue Generation OLED Displays ist etwas schmäler als die alten Ausgaben...
... allerdings bei gleicher Auflösung und gleicher Fläche der aktiven Pixel.
Es stellt sich heraus, dass die neuen Displays beim dimmen des Display mit der Einstellung 0 komplett aus gehen. Die alte Generation hat dabei immer noch etwas dargestellt. Deshalb gibt es noch eine neue Firmware V2.8d, die dieses Verhalten berücksichtigt.
Aufmerksamkeit verdient auch die geänderte Reihenfolge der Anschlüsse. Aber da gab es auch früher schon Unterschiede.
Aktualisierung
Irgendwie komme ich gerade immer wieder mit neuen Ideen für den Quickmill Saver um
die Ecke... allerdings ist jetzt ziemlich endgültig Schluss, es sind nur noch wenige Byte Programmspeicher übrig.
Der Zähler für das Entkalken der Maschine wurde bisher sofort zurück gesetzt, wenn nach Überschreiten der Tassenzahl 500 in den Einstellungen die Version Info Seite aufgerufen wurde. Ab Firmware V2.9 muss zum Zurücksetzen des Zählers auf der Seite der Version Info zusätzlich RECHTS gedrückt werden. Ansonsten wird nur die Anzahl restlicher Tassen bis zum Entkalken, oder, falls diese Anzahl bereits überschritten wurde, die darüber hinaus gezapften Tassen mit negativem Vorzeichen angezeigt.
Die Befestigung des Display auf der Innenseite des Deckels war bei der alten Maschine aus vier liebevoll zusammengestückelten Plastikstreifen gebastelt und erfüllt ihre Aufgabe mit Bravour. Trotzdem habe ich mir für die neue Quickmill einen ordentlichen Halter aus dem 3D-Drucker gegönnt.
Das Design habe ich wie immer mit DesignSpark Mechanical (DSM) erstellt, das Modell stelle ich im Format RSDOC (Designfile für DSM) und STL (für 3D-Druck) zur Verfügung.
In Natura mit Display präsentiert sich der Halter so.
Die abgerundete Vorderseite schmiegt sich in den Deckel und wird angeklebt. Die Justierung des Halters zentriert im Ausschnitt erfolgt mit dem Testbild Rahmen, der sich über das Menü des Quickmill-Saver aufrufen lässt.
Der Deckel wird auf der CNC-Fräse bearbeitet und dazu mit fünf Spannpratzen und dem blauen POM-Klotz fixiert.
Zuerst wird der Ausschnitt komplett erstellt.
Der Innenteil bleibt mit vier dünnen Verbindungen mit dem Deckel verbunden, damit sich der ausgeschnittene Teil nicht zum Schluss mit dem Fräser verkantet.
Die vier Anbindungen werden mit dem Skalpell gekappt, anschließend wird die Fase gefräst.
Jetzt muss das Display mit dem Arduino verbunden werden, damit es im Rahmen zentriert eingebaut werden kann. Stichwort “Testbild”.
Es ist etwas knifflig, den Displayhalter beim Trocknen des Klebers an Ort und Stelle zu halten, aber mit ein bisschen Geduld kann man das schaffen ;)
Nachdem der erste Kleber zwischen Halter und Deckel getrocknet ist, wird noch jeweils links und rechts eine Hohlkehle mit Kleber gelegt.
Zuletzt werden die Sensorflächen aus selbstklebender Kupferfolie positioniert und der I2C Adapter mit Spiegeltape auf die Innenseite des Deckels geklebt.
Dabei ist darauf zu achten, dass der Adapter nicht zu weit außen angebracht wird, sonst kommt der Stecker bei geschlossenem Deckel dem Kaffeebohnenschieber in die Quere. So wie hier abgebildet, passt es nicht, die Platine muss schräg oberhalb der rechten Kupferfläche positioniert werden, wie bei der alten Quickmill realisiert. Die endgültige Positionierung ist hier dargestellt.
Aktualisierung
Im Rahmen einer Fehlersuche und dessen Behebung wurde die Platzierung der Platine
sowie die Kabelführung für die Sensoren überarbeitet.
Die normale Darstellung im Betrieb:
Die Versioninfo:
Auch die Befestigung des Tassensensors hat ein etwas professionelleres Aussehen bekommen. Dabei bin ich von der “Klebemethode” abgewichen, weil die eingebauten Sensorhalter der Maschine Isolierteile aus einem Silikon artigen Material haben, auf dem Kleber im weiteren Sinn wohl nicht halten wird. Der Adapter für den zusätzlichen Sensor wird also mit der Schraube des unteren Originalsensors befestigt.
Der Hallsensor sitzt kopfüber saugend in der Tasche, muss ggf. mit einem feinen Schraubendreher sanft an seinen Platz überredet werden. Die Anschlusskabel sind mit einem Kabelbinder so fixiert, dass sie nicht in die Mechanik geraten können.
Der Zylinder unterhalb des Adapters stellt den passenden Abstand in Achsrichtung ein, die vorhandene M4 Schraube muss durch eine passender Länge ersetzt werden. Die rechteckigen Ausschnitte dienen nur der Reduzierung der Druckzeit, das ist schon die dritte Konstruktion... ;)
Die Lage des Sensors zum Magneten lässt sich über den Winkel beim Befestigen genau einstellen, da das Loch mit etwas Übermaß gegenüber der Schraube ausgeführt ist.
Auch für dieses Schmuckstück gibt es die Designfiles als RSDOC und STL.
Nach fast zwei Jahren anstandslosen Betriebs mit der Erweiterung im Bauch fängt das Display an zu flackern und zu zucken, sobald die Mühle läuft. Von Fall zu Fall wird dabei
auch der Arduino rückgesetzt, und wenn der Neuanlauf mit dem Zeitpunkt der Erfassung des Zapfvorgangs zusammen fällt, wird dieser nicht gezählt, der Hauptzweck des
Quickmill Saver - Tassen zählen und Maßnahmen davon ableiten - ist damit hinfällig.
Da vorher nichts dergleichen zu beobachten war, muss sich an den elektrischen
Eigenschaften meiner Zusatzschaltung etwas verändert haben.
Mein erster Gedanke war, dass einer der Stecker auf dem Weg vom Arduino zum Display sich gelockert haben könnte. Im Innern der Fronttür gibt es deren zwei, die ich also überprüft und für in Ordnung befunden habe. Dennoch habe ich beide Stecker mal abgezogen und wieder aufgesteckt. Leider ohne Erfolg, das Zappeln der Anzeige tritt immer noch auf. Also habe ich doch in den sauren Apfel gebissen und das Gehäuse aufgeschraubt, um auch den Stecker am Arduino einer Prüfung zu unterziehen. Auch der sitzt erwartungsgemäß fest und hat keine Kontaktprobleme.
Was bleibt ist die Verbindung der Abschirmung des Verbindungskabels zwischen Arduino und Display. Die habe ich mit einer sogenanntenDoLü- oder Dosenklemme , einer einpoligen Lüsterklemme mit nur einer Schraube, an ein kurzes Stück Leitung, angelötet am USB Stecker des Arduino, angeschraubt. Auch diese Verbindung sitzt fest, lässt sich nicht auseinander ziehen.
Trotzdem habe ich die Schraube nachgezogen und sie ließ sich tatsächlich noch etwas fester anziehen. Bingo, die Störungen der Anzeige sind verschwunden :)
... Dachte ich.
Das Bild-Popup für die Dosenklemme musste ich NOF übrigens manuell abtrotzen.
Nachtrag
Die oben beschriebenen Maßnahmen haben leider nur temporär Erfolg gezeitigt. Nach ein paar Tagen fing das Problem wieder an zu nerven :(
Ich habe darauf hin die Dosenklemme durch eine Klemmhebelklemme ersetzt...
... und zusätzlich eine Verbindung zur nächsten Masse der Kaffeemaschine hergestellt.
Auch diese Maßnahme scheint keine endgültige Lösung für die Störungen zu sein, immer wieder kommt es zu Aussetzern des Quickmill Saver, wenn eine der Baugruppen der Kaffeemaschine anläuft oder abgeschaltet wird.
Ich habe mir daraufhin die im Keller stehende Ersatzmaschine intensiv angeschaut, die lief ja viele Jahre vollkommen problemlos. Einzig erkennbarer Unterschied ist die Anbindung des Arduino an die Stromversorgung des Originalcontrollers. Hier habe ich die Plus-Leitung an eine frei gekratzte Leiterbahn auf der Oberseite der Platine und die Masse-Leitung auf der Unterseite an eine ebenfalls frei gekratzten Stelle einer großen Massefläche angelötet.
Bei der neuen Maschine habe ich mir die Sache einfacher gemacht und beide Leitungen an einem SMD Kondensator auf der Oberseite angelötet.
Die Masse-Leitung ist hier bereits abgelötet.
Ich habe also die Stromversorgung entsprechend der Kontaktierung der alten Maschine umgelötet. Hier die neue Verbindung zu Plus:
Die Masse-Leitung auf der Unterseite der Platine in der Massefläche:
Jetzt sollten keine Störungen mehr auftreten - soweit zumindest die Theorie.
In der Praxis zeigen sich aber trotzdem, wenn auch nur noch sehr sporadisch, Störungen in Form von Auslassungen bestimmter Anzeigesequenzen. So wird z.B. die sich füllende Tasse oder der Dampf nach erfolgter Zapfung nicht mehr angezeigt, obwohl im Menü die entsprechende Option jeweils aktiviert ist.
Das hat sich erst geändert, nachdem ich die Optionen aus- und wieder eingeschaltet bzw. die dafür vorgesehenen Zeiten geändert hatte. Offenbar erwischten die Störungen auch mal Zeitpunkte, zu denen gerade das EEPROM beschrieben wurde, so dass keine korrekten Daten gespeichert wurden. Das wäre zumindest eine denkbare Erklärung.
Etwas später...
Wieder einmal zeigt sich, viel hilft nicht immer viel :(
Nach ein paar gezapften Tassen mit intensiver Beobachtung der Abläufe kristallisiert sich heraus, dass immer noch bei bestimmten Aktionen in der Maschine - irgendwelche Relais oder Ventile werden ein- oder ausgeschaltet - der Arduino rückgesetzt wird und dadurch der Eindruck entsteht, Sequenzen der Anzeige würden übersprungen bzw. nicht ausgeführt.
Nachdem ich die Stromversorgung wie bei der alten Maschine umgebaut hatte, kommt als letzter Unterschied die zusätzlich eingefügte Erdung zu den Metallinnereien der Quickmill für die Störungen in Frage. Und richtig, nachdem ich diese Verbindung entfernt habe, treten keine Störungen im Displayablauf mehr auf. Offenbar sind zusätzliche EMV -Störungen über diese Verbindung in das Quickmill Saver System eingekoppelt worden anstelle anderswo eingekoppelte Störungen hier nach Erde abzuführen.
Wieder etwas später...
Der Fehler tritt sporadisch immer noch auf :(
Nach einigen Irrwegen in Sachen Entstörung der Elektrik bin ich mit meiner Weisheit ziemlich am Ende und versuche den Status Quo zu akzeptieren.
Allerdings beobachte ich, dass das Gezappel auf dem Display und die Rücksetzer des µC offenbar auch durch mechanische Interaktion mit der Maschine provoziert werden können. Diese Erkenntnis ergab sich beim Verdichten der Satzpellets durch Rütteln des Satzbehälters.
Eingehende Untersuchungen in diese Richtung erhärten den Verdacht, dass es einen Wackelkontakt im Deckel der Maschine, also im Bereich Sensorplatine oder Display, gibt.
Um das genauer untersuchen zu können, habe ich den Deckel ausgebaut und mit einem anderen aber ziemlich baugleichen Kabel einen Arduino Nano, geflasht mit der Quickmill Saver Firmware, mit der Sensorplatine verbunden. Es stellt sich heraus, dass alleine die vorsichtige Berührung des Kabelmantels mit der Hand schon die beobachteten Fehler auf dem Display hervorrufen. Auch die einzelnen Adern, die das Touchsensor IC mit den Kupferflächen verbinden, reagieren empfindlich auf Berührung.
Zum Schluss war ich ziemlich sicher, dass es kein Wackelkontakt sein kann und habe durch eine geänderte Platzierung der Platine und neue Kabelführung der Sensorleitungen das Problem offensichtlich in den Griff bekommen.
Konkret wurde neben der Umplatzierung der Platine die geschirmte Leitung gekürzt bzw. weiter ins Innere der Maschine geschoben, so dass die hinter dem Deckel befindliche Länge deutlich reduziert ist.
Nach dieser Änderung verhält sich die Quickmill jetzt seit Längerem friedlich.
Die beiden Kabelclips sind 3D gedruckt, Frol hat auf Thingiverse ein passendes Design veröffentlicht.
Beide Clipse sind mit Universal Plastikkleber befestigt.
Vielleicht noch ein Wort zu der Verbindung zwischen Arduino Nano und Touchsensor IC und Display. Der verwendete I²C Bus ist ja ursprünglich als Verbindung zwischen ICs auf einer Platine (I²C - IIC - “IC-IC Communication”, auch “Inter IC Communication”) spezifiziert worden, er soll die Kommunikation zwischen nahe beieinander liegenden Bauteilen ermöglichen. Die gut 1 m lange Leitung in meiner Kaffeemaschine ist demnach als grenzwertig zu betrachten, was folgerichtig zu den beschriebenen Problemen führt.
Und zur einfacheren Entnahme des Microcontrollers bzw. dessen Adapters, z.B. bei Erweiterung der Funktionalität mit Änderung der Platine, habe ich eine Halterung entworfen. Ursprünglich musste ich immer die Fixierung per doppelseitigem Klebeband auseinander reißen und anschließend mit Pattex wieder flicken.
Das hielt meist beim ersten Versuch nicht richtig und war insgesamt eher eine Krampflösung.
Die Realisierung aus dem 3D Drucker wurde mit Designspark Mechanical entworfen.
Die Zunge federt und verriegelt mit der kleinen Nase die Platine im Halter. Von der Unterseite sieht man die Umsetzung.
Die Halterung wird mit Spiegeltape, einem dicken, flexiblen, doppelseitigen Klebeband an die Seitenwand der Kaffeemachine geklebt.
Diese Änderung der Befestigung hat mir bei der sukzessiven Erweiterung der Funktionalität in Sachen Lüfter für den Satzbehälter die wiederholte Demontage und Montage sehr vereinfacht.
Die Halterung nimmt die Adapterplatine V2.15 auf. Die Designunterlagen im Format DSM 6 sowie die STL Datei für den 3D Drucker stelle ich zur Verfügung (Beides im ZIP).