Leistungs-Test abgeschlossen --- Standort-Bestimmung
Es ist jetzt ziemlich genau ein Monat verstrichen, seit ich das Projekt gestartet habe. Jetzt will ich mal berichten, wie es gegangen ist und wo ich stehe.
Zu Beginn des Projektes stand für mich fest, dass ich als Microcontroller ESP32 verwenden wollte. Damals wusste ich noch nicht, auf was ich mich da eingelassen hatte. Wie ich in einem früheren Beitrag schon geschrieben habe, gibt es Hunderte von verschiedenen Varianten des ESP32 und leider sind nicht alle gut und nicht alle gleich gut für mein Projekt geeignet.
Der erste ESP32, den ich mir zum Experimentieren gekauft hatte (das war glaub' ein paar Tage vor dem eigentlichen Projekt-Beginn), war ein ESP32-C6 von Espressif (Chip und Board beides von Espressif selber). Ich wusste damals nicht was das C6 bedeutet. Heute weiss ich, dass es eine Variante ist, die speziell gut auf drahtlose Kommunikation ausgerichtet ist und sogar WiFi 6 unterstützt. Mangels Erfahrung hatte ich damals aber Mühe, diesen zusammen mit der Arduino Entwicklungs-Umgebung überhaupt zum Laufen zu bringen.
Dann habe ich gelesen, dass der ESP32-S3 der schnellste und beste unter den ESP32 sei. Klar, dass ich den schnellsten und besten haben musste und daher habe ich mir drei Stück ESP32-S3 von Waveshare beschafft. Für die Kommunikations-Tests, wie ich sie mir vorstelle, braucht es mindestens drei. Mit diesem Controller hatte ich aber nichts als Probleme. Nebst den Fehlern, die ich selber mache, hat der ESP ein eratisches Verhalten an den Tag gelegt, dass es zum Verzweifeln war. Wenn man einmal mit der Arduino-IDE kommunizieren konnte, ging das eine Stunde später nicht mehr. Probleme, nichts als Probleme! Dann kam noch der Störefried (der alte Dell-Monitor), der die ESP-NOW-Kommunikation zum Erliegen brachte. Da hätte ich das Projekt beinahe aufgegeben.
Natürlich suchte ich dann nach einer Alternative unter den ESP32-S3 Modellen. Tatsächlich gibt es ein solches Board von Arduino selber, nämlich den Arduino Nano ESP32. Das ist auch eine S3-Variante. Ich dachte mir, dass ein "richtiger" Arduino ja einfach zu verwenden und mit der Arduino-Entwicklungs-Umgebung vollständig kompatibel sein müsste. Denkste! Es war fast noch schlimmer als mit dem Waveshare. Dann habe ich ihn auch noch zu Tode konfiguriert und damit läuft er jetzt gar nicht mehr (kein Witz!)
Wie durch Intuition habe ich vor einer Woche nochmals den C6 hervorgeholt. Mit der Erfahrung, die ich bis dann hatte, brachte ich ihn auch sofort zum Laufen. Und siehe da, der C6 hat sich als einfach zu konfigurierender, stabiler, problemloser Controller herausgestellt, der einfach nur läuft und funktioniert. Das ist seither so geblieben. Der C6 macht Spass, funktioniert und macht keine Probleme. Das verbleibende Problem ist das, welches ca. 70 cm vor dem Bildschirm sitzt. Aber das kann man dem Controller ja nicht in die Schuhe schieben.
Seither mache ich meine Versuche mit dem C6. Ich habe in der Zwischenzeit auch drei Stück davon (ja, die Bastelgarage liefert schnell).
Heute konnte ich den Leistungs-Test abschliessen. Um es vorweg zu nehmen: Ich bin vom Ergebnis sehr angenehm überrascht.
Ich mache drei Tests (Erklärungen werden mit Hilfe des obigen Bildes klar):
- Kurz (also stark abgekürzt): Schritte 1 und 6
- Mittel (leicht abgekürzt): Schritte 1, 2, 5 und 6
- Lang (keine Abkürzung, volles Programm): Schritte 1, 2, 3, 4, 5 und 6

Die einzelnen Leistungs-Tests kann ich durch Klicken auf dem Amorocos-Bildschirm starten.
Der initiale Befehl an die Zentrale und die Bestätigung von der Zentrale, dass der Befehl ausgeführt worden ist, werden im sogenannten Message-Log protokolliert. Der Zeit-Stempel hat eine Auflösung (Genauigkeit) von einer Millisekunde.
Wie man sehen kann, ist das System sehr schnell. Die kurzen Tests (2 x USB-Kommunikation) dauern so um eine Millisekunde.
Die mittleren Tests (2 x USB- und 2 x ESP-NOW-Kommunikation) dauern 4 bis 6 Millisekunden.
Die langen Tests (2 x USB-, 2 x ESP-NOW- und zwei Mal I2C-Kommunikation) dauern 6 bis 7 Millisekunden.
Meine Beurteilung:
- Dass die USB-Kommunikation schnell ist, wusste ich. Sie ist allerdings sogar noch etwas schneller, als ich erwartet hätte.
- Die kabellose Kommunikation mit ESP-NOW ist auch schneller als erwartet, bleibt aber der Teil, der am meisten Zeit beansprucht (mehr als USB und I2C zusammen).
- Die I2C-Kommunikation ist für mich die grösste Überraschung. Die ist ja mega-schnell. Ich frage mich, warum die allgemein als langsam eingestuft wird.
Das Beste ist, dass ich die Zeiten jetzt durch 2 teilen darf, weil im Betrieb als Digital-System ja nur ein Weg zu Anwendung kommt und nicht (wie hier) nach unten und dann wieder nach oben. Also die Reaktions-Zeit vom Ansprechen einer IR-Lichtschranke bis das Amorocos davon erfährt, dürfte um die drei bis vier Millisekunden sein. Für mich ist das super-mega-ober-hyper-schnell.
Fazit
Ich betrachte die Machbarkeits-Abklärungen hiermit als erfolgreich abgeschlossen. Es scheint, dass ich mit dem ESP32-C6 den richtigen Microcontroller nun gefunden habe. Jetzt habe ich auch mehr Erfahrung im Umgang mit den neuen Technologien gesammelt und kann mich nun an die eigentliche Entwicklung des Digital-Systems machen. Es muss viel Software geschrieben werden, Java-Software im Amorocos zur Kommunikation mit der DIGI-NOW Zentrale, C++ Software für die Zentrale und C++ Software für die Decoder. Dazu kommt die Hardware-Entwicklung für die Decoder und die Port-Module, sowie die Konstruktion und das Drucken der passenden Gehäuse. Mir wird in nächster Zeit sicher nicht langweilig. Wenn ich doch - verdammt-noch-mal - nur etwas jünger wäre! Ich brauche noch viel Zeit.
Probleme und Rückschritte können (und werden) immer wieder kommen. Ich bin aber zuversichtlich, dass die zu meistern sein werden.