Beiträge von sturzi

    Das Gehäuse der Digital-Zentral hat noch ein paar kleine Modifikationen erhalten. Die Aussenmasse sind übrigens nur 67.4 x 29.3 x 13.4 mm. Möglicherweise ist das die kleinste Modellbahn-Digital-Zentrale, die es gibt.


    Digital-Zentrale von oben. Die Beschriftung und die zwei kleinen Löcher (unten) haben noch gefehlt. Unter diesen Löchern befinden sich kleine Taster auf dem Board (für Reset und Boot), die man jetzt mit einem schlanken Stift betätigen kann. Ob man die im Betrieb je braucht, weiss ich noch nicht, aber betätigen können sollte man sie auf jeden Fall.

    Die RGB-LED scheint natürlich immer noch durch den weissen Deckel durch (wenn dann die Zentrale wieder mal am Strom ist) .


    Digital-Zentrale von unten. Die beiden Löcher dienen der Luft-Zufuhr und die vier fix-o-moll-Füsschen sollen dafür sorgen, dass sie nicht zu leicht rutscht.


    Die Digital-Zentrale wird über das USB-C-Kabel an den Compi mit dem AMOROCOS angeschlossen. Das Kabel dient sowohl der Speisung, wie auch der Kommunikation mit dem AMOROCOS.

    Ich bin vor allem gespannt, ob das mit der drahtlosen Kommunikation zuverlässig funktionieren wird.

    Martin, da bin ich auch gespannt. Allerdings bin ich hier zuversichtlich. Bis jetzt ist bei allen meinen Versuchen noch kein Kommunikations-Fehler aufgetreten. Selbst während des Fahrens mit den beiden "neuen" Ae 4/4 hat es keine Übermittlungs-Störungen gegeben.


    Allfällige Übermittlungs-Fehler kann ich erkennen, indem ich zu den zu übermittelnden Nutz-Daten noch zusätzlich Prüf-Daten einfüge. Sollte mal ein Fehler auftreten, so kann ich das mindestens erkennen. Es wird also nicht eine Lotterie sein, ob die Daten-Übermittlung zuverlässig ist.

    Das neue Modellbahn-Digital-System hat jetzt einen Namen


    Ich kann nicht schlafen (zu aufgedreht), weil ich dauernd am neuen Digital-System herum hirne. Wenigstens hat dabei etwas herausgeschaut. Es ist mir nämlich ein passender Name für das Projekt in den Sinn gekommen.


    Mein neues Modellbahn-Digital-System zum Schalten / Melden bei der ChRB heisst DIGI-NOW.


    Inspiriert hat mich dabei der Name des Protokolls für die kabellose Kommunikation, die ich bei diesem Projekt anwende. Dieses heisst ESP-NOW und kommt von der Firma Espressif.


    Die Wahrscheinlichkeit, dass das eine Projekt-Studie bleibt, wird auch immer kleiner. Ich bitte deshalb einen Admin den Thread-Titel auf folgenden Namen zu ändern:


    Entwicklung des Modellbahn-Digital-Systems DIGI-NOW zum Schalten und Melden bei der ChRB


    Schon im Voraus besten Dank!


    Jetzt versuche ich es nochmals mit Schlafen.

    Die Digital-Zentrale


    Heute Abend habe ich mal ein Prototyp-Gehäuse für die Zentrale entworfen.


       


    So könnte dereinst die Digital-Zentrale aussehen.


    Bei jedem ESP32 Controller hat es standard-mässig eine RGB-LED auf dem Board. Diese LED kann über die Software mit beliebigen Farben und in beliebiger Helligkeit zum Leuchten gebracht werden. Das ist sehr praktisch, da ich damit Status-Informationen anzeigen kann (z.B. rot = Störung, grün = bereit aber inaktiv, langsam wechselnde Farben = aktiv, aber wenig Daten zum Übermitteln, schnell wechselnde Farben = Hochbetrieb). Damit man das Leuchten auch sieht, habe ich den Deckel des Gehäuses weiss gemacht. Da scheint das Licht der LED problemlos durch.


    Die 5 Schlitze im oberen Bereich dienen der Luftzirkulation, damit die Wärme des Prozessor-Chips entweichen kann. Ob das nötig ist, weiss ich nicht, aber schaden kann's ja nicht.


    Bei der Digital-Zentrale war es einfach. Ausser noch ein Bisschen Software kommt da jetzt nichts mehr dazu.


    Aufwändiger wird es bei den Decodern, weil da elektrische Anschlüsse (Ports) dazukommen. Aber für mich steht jetzt schon fest, dass ich auch dort ähnliche Gehäuse mit durchleuchtendem Deckel machen werde. Auch dort (oder vor Allem dort) wird es interessant, Status-Information über die RGB-LED anzeigen zu können.

    Der MCP23017 Port Expander von DFRobot


    Ein Digital-System zum Schalten und zum Melden braucht typischerweise viele DIO. DIO sind digitale Inputs und Outputs, also Anschlüsse, die einen logischen Zustand (Spannung / keine Spannung) feststellen (bei den digitalen Inputs) oder setzen (bei den digitalen Outputs) können. Mit diesen DIOs kann man bei einem Digital-System z.B. den Status von Lichtschranken oder von Besetztmelde-Strecken erkennen und ans übergeordnete Modell-Bahn-Steuerungs-Programm weiter melden. Oder man kann Befehle von diesem Steuerungs-Programm entgegen nehmen und entsprechend Weichenantriebe oder Lichtsignale schalten.


    Die meisten gängigen Digital-Systeme zum Schalten und Melden (*) haben Decoder und Encoder, welche am Digital-Bus angeschlossen sind. Wenn es darum geht, etwas zu Schalten, spricht man von einem Decoder. Wenn es aber ums Melden geht (Rückmeldungen entgegennehmen und weiterleiten) spricht man von einem Encoder. Es hat sich aber eingebürgert, dass man ausschliesslich von Decodern spricht, auch wenn zum Teil eigentlich Encoder gemeint sind. Ich werde es hier auch so halten und nur den Begriff Decoder anwenden.


    Handelsübliche Decoder von handelsüblichen Digital-Systemen haben meist Ein-, bzw. Ausgänge für 4, 8 oder 16 Geräte (Weichen-Antriebe, Lichtsignal-Lämpchen, Besetztmelde-Strecken, Infrarot-Rückmelder). Wenn man sehr viele solcher Geräte anschliessen will, braucht man entsprechend viele Decoder.


    Beim Sturzibus-Digital hatten wir Decoder für IR-Lichtschranken mit je 42 Ports, Decoder für Besetztmelder mit je 16 Ports, Weichen-Decoder mit Ports für je 20 Weichen-Antriebe und Lichtsignal-Decoder für je 40 LED.


    Der Grund, warum es nicht mehr sind, liegt meist an der Anzahl DIO die beim Arduino Mega verfügbar sind. Der Arduino Mega hat 54 DIO.


    Beim neuen Digital-System (das um welches es in diesem Thread geht) will ich ja bekanntlich andere Microcontroller, nämlich ESP32 verwenden. Diese ESP32 haben, bedingt durch ihre physische Grösse, wesentlich weniger DIO als der Arduino Mega. Also ein echter Rückschritt? Ja, im Prinzip schon. Für diese Limitation gibt es aber eine Lösung. Die Lösung heisst Port-Expander.



    Dieses Bild zeigt in meinem (noch ziemlich chaotischen) Test-Aufbau den Einsatz eines Port-Expanders. Der Port-Expander ist mit einem vier-adrigen Kabel über die sogenannte I2C-Schnittstelle an den ESP32 Controller angeschlossen. Jeder Port-Expander hat 16 DIO, die beliebig als Ein-, bzw. Ausgänge konfiguriert werden können. Hier sieht man als Beispiel zwei IR-Lichtschranken, die an den Port-Expander angeschlossen sind.



    Damit man mehr als einen Port-Expander an einen Controller anschliessen kann, kann man die Port-Expander kaskadieren. Den ersten Port-Expander schliesst man mit einem vieradrigen Kabel an den ESP32 an. Jeder weitere Port-Expander wird mit einem weiteren vieradrigen Kabel an den vorhergehenden angeschlossen. Man kann nun bis zu acht Port-Expander als Kaskade an einen ESP32 anschliessen. Damit erhält man bis zu 128 DIO für einen einzigen Controller. Verglichen mit dem Arduino Mega (54 DIO) sind das dann wiederum ziemlich viele.


    Vorgestern, an unserem Bauabend, habe ich mit diesen Port-Expandern experimentiert. Dabei ist es mir gelungen, den Zustand von IR-Lichstschranken beim ESP32 Controller zu erkennen und an den Compi weiter zu melden. Damit ist eine weitere Hürde geschafft.


    Von diesen Port-Expandern werde ich ziemlich viele brauchen (voraussichtlich etwas mehr als 20 Stück). Zum Glück sind sie nicht teuer. Es solcher Port-Expander kostet (inkl. I2C-Kabel) CHF 8.90.




    (*) Ich möchte hier nochmals betonen, dass es bei diesem Digital-System ausschliesslich ums Schalten und Melden geht. Also mit dem Ansteuern von Lok-Decodern hat das hier nichts zu tun. Für das Fahren (Ansteuern von Lok-Decodern) haben wir ein anderes Digital-System, nämlich die EX-CommandStation von DCC-EX.

    Alle paar Stunden oder alle paar Tage eine Hürde


    Das ist auf jeden Fall ein interessantes Projekt. Es besteht zwar aus lauter Hürden, aber einem Hürdenläufer stinkt es nicht, über Hürden zu laufen. Wenn es um dieses Thema geht, bin ich ein Hürdenläufer und diese Hürden zu überwinden, macht mir Spass.


    Was habe ich bis jetzt für Hürden angetroffen?


    - Die Welt der ESP32 Boards ist sehr vielfältig. Es gibt sicher gegen hundert Hersteller, die solche Boards machen. Keine zwei davon sind gleich. Als erste Hürde: Was für ein Board verwende ich? Diese Hürde ist genommen. Ich habe es mit drei verschiedenen Boards versucht. Jedes verspricht, die Anforderungen zu erfüllen.


    - Bei jedem Board ist es eine Herausforderung, es mit der Arduino-IDE (Entwicklungsumgebung) zum Laufen zu bringen. Diese Boards sind sehr leistungsfähig und unterstützen sehr viele Optionen. Dementsprechend müssen viele Einstellungen passen, damit es überhaupt läuft. Auch diese Hürde ist genommen. Ich habe alle drei Varianten zum Laufen gebracht.


    - Die Kommunikation zwischen der Digital-Zentrale (bei mir Gateway genannt) und den Digital-Decodern (bei mir Module genannt) soll kabellos (über WIFI) erfolgen. Das Protokoll, das dabei zur Anwendung kommen soll, heisst ESP-NOW. Auch diese Hürde ist geschafft. Es hat zwar lange gedauert, bis sich endlich zwei Boards dazu bequemt haben, mir den Gefallen zu tun, um miteinander zu schnörren. Auch das sieht jetzt gut aus. Bis jetzt schaffe ich etwa 700 Daten-Austausche pro Sekunde. Wenn es mit zunehmender Anzahl Boards (am Schluss werden es gegen 10 sein) nicht wesentlich langsamer wird, bin ich damit auch auf der sicheren Seite.


    - Aber ...., obwohl die Kommunikation an sich funktioniert, kommen bei Empfänger die Daten nicht immer so an, wie sie der Sender abgeschickt hat. Wenn man die Kommunikation mit Daten "überfüttert", kommt es nicht gut. Die Kommunikation "überhaspelt" sich dann und es gibt Fehl-Übermittlungen. Auch dieses Problem konnte ich lösen durch gezieltes Synchronisieren der Kommunikation.


    - Wenn die Kommunikation unter Labor-Bedingungen, d.h. auf dem Schreibtisch und jedes Board an den Compi angeschlossen, einmal einwandfrei funktioniert, ist das das Eine. Aber das Zeugs muss raus auf die Anlage. Die Boards müssen extern gespeist und sie müssen in grösserer (realistischer) Distanz zueinander platziert werden. Da hat sich herausgestellt, dass bei externer Speisung (nicht mehr über den Compi) gar nichts mehr läuft (das Programm verweigert sich). Auch diese Hürde ist geschafft. Es braucht eine Einstellung am Board, die ich bisher nicht kannte. Diese Einstellung richtig gesetzt sorgt dafür, dass das Programm auch bei externer Speisung läuft.


    - Kommunikation durch die Luft (kabellos) ist anfällig gegen Störungen. In unserer Umgebung können fahrende Loks Störefriede darstellen und die Kommunikation beeinträchtigen. Das war eine kleine Hürde. Ich musste es nur bei fahrenden Loks testen, um zu sehen, dass es immer noch einwandfrei funktioniert. Auch bezüglich Distanz sieht es gut aus. Die kabellose Kommunikation läuft auch bei einigen Metern Distanz einwandfrei.


    Das ist der jetzige Stand und obwohl noch mit vielen weiteren Hürden zu rechnen ist, sieht es soweit gut aus.


    Das wird die Digital-Zentrale für das neue Digital-System sein.

    Ein Board, ein USB-Kabel zum Compi, wo die Modellbahn-Steuerung drauf läuft, und sonst nichts.

    Für die Zentrale (bei mir Gateway genannt) braucht es keine weiteren Kabel. Die Kommunikation zu den Modulen soll ausschliesslich durch die Luft führen.


    Bei den Decodern (bei mir Module genannt), sieht es bezüglich Kabel schon etwas anders aus. Die Kabel zu den IR-Lichtschranken, zu den Weichen, zu den Besetztmeldern und zu den Lichtsignalen gibt es weiterhin und diese müssen an die Module angeschlossen werden.


    Nun bin ich gespannt auf die nächsten Hürden, die mit Sicherheit bald kommen werden.

    Arduino (die ältere Generation) und der neuere ESP32



    Dieses Bild zeigt den original Arduino Uno R3 (oben). Der R3 war für lange Zeit DER Standard-Arduino, einfach aufgebaut und robust, aber für heutige Begriffe sehr langsam.

    Darunter sieht man den grössere Arduino Mega 1280 (dies ist ein Clone von DFROBOT). Der Mega ist gleich schnell (oder besser gleich langsam) wir der Uno R3, hat aber wesentlich mehr digitale Ein- und Ausgänge wie der R3. Der Mega ist der, welcher bei mir im Sturzibus-Digital-System, sowohl im Gateway, sowie auch in den Modulen zum Einsatz kam.

    Der nächste ist ein Arduino Uno R4. Das ist eine neuere Generation des Uno, aber mit dem gleichen Formfaktor wie der R3. Er ist schon deutlich schneller als der R3. Den Uno R4 verwende ich für meine Bahnhof-Uhren-Projekte.

    Zuunterst ist ein ESP32-S3. Es ist ein Entwicklungsboard von Waveshare. Er besitzt einen sehr schnellen, modernen Dual-Core-Prozessor. Ich denke, wenn man von etwa der 10-fachen Leistung des Uno R3 spricht, übertreibt man nicht. Der ESP32-S3 von Waveshare ist derjenige, mit dem ich in den letzten Tagen meine ersten ESP32-Versuche gemacht habe. Es gibt tonnenweise, verschiedene ESP32-Chips, Module und Entwicklungs-Boards von vielen verschiedenen Herstellern. Allen gemeinsam sind die Prozessor-Chips von Espressif.


    Wenn es so kommt, wie ich es mir im Moment vorstelle, werden für das Sturzi-Digital-System etwa 10 Stück des ESP32-S3 Boards zum Einsatz kommen. Wie sie zusammenarbeiten sollen, schreibe ich dann in einem der nächsten Beiträge.

    Es sind jetzt etwas mehr als zwei Jahre her, seit ich für mich den Arduino und die damit verbundenen Möglichkeiten entdeckt habe.

    Schon damals waren nebst dem eigentlichen Arduino eine ganze Reihe von moderneren und leistungsfähigeren Microcontrollern verfügbar. Ich habe mich wegen seiner Einfachheit bewusst an den Original-Arduino geklammert. Ich war auch mit ihm ausreichend gefordert.


    Nun ist aber auch für mich die Zeit gekommen, wo ich mich der moderneren Welt des Microcomputing nicht länger verschliessen will. Ausser in den Schulstuben, wo sich der Arduino immer noch grosser Beliebtheit erfreut, muss dieser zunehmend den moderneren und wesentlich leistungsfähigen Microcontrollern weichen.


    Ein sehr verbreiteter 32-Bit-Microcontroller ist der ESP32 der chinesischen Firma Espressif. Diese Microcontroller sind nicht nur um Faktoren schneller als die originalen Arduinos. Sie sind auch zugleich preisgünstiger. Die eigentliche Spezialität der ESP-32 Prozessoren sind die drahtlose Konnektivität (WiFi und Bluetooth). Heute sind fast alle Modelle mit mindestens einer oder sogar beiden den genannten Kommunikations-Technologien ausgerüstet.


    Die deutlich höhere Leistung und die gute Unterstützung der drahtlosen Konnektivität zu einem äusserst attraktiven Preis sind das Eine. Auf der anderen Seite ist die Auswahl, sowie der Einsatz der ESP32 Microcontroller wesentlich anspruchsvoller als die der guten alten Arduino-Boards.


    Das Projekt, das mir hier vorschwebt, ist (soweit es gelingt) eine Ablösung des etwas ins Stocken geratenen Sturzibus-Digital-Systems, welches aus gegen 20 Arduino-Mega, die über RS-485 (Sturzibus) miteinander verbunden sind, besteht.


    Das neue Projekt, das ich im Rahmen einer Projektstudie hier untersuchen will, besteht voraussichtlich aus ca. 10 Stück ESP32 Controllern, welche drahtlos (über das Protokoll ESP-NOW) miteinander kommunizieren. Da die Kommunikation ESP-NOW kein Bus-System ist, wäre damit der Begriff Sturzibus-Digital gestorben. Der Nachfolge-Begriff könnte einfach Sturzi-Digital sein, wobei ich mich beim Namen noch nicht festgelegt habe.


    Im nächsten Beitrag werde ich die Konzept-Idee, die meinem Projekt zugrunde liegt, vorstellen. Dann werde ich näher auf den ESP32 Microcontroller und die Komponenten, die ich im Fokus habe, eingehen.

    Fiat= Flick in alle Tage

    Mit dritter (und definitiv letzter) Fiat war ein 1- jähriger Fiat 131. Der hatte schon nach diesem einen Jahr rost. Nach einem zweiten Jahr musste ich Angst haben, während der Fahrt den Kofferdeckel zu verlieren wegen der völlig verrosteten Verbindungen an den Punktschweiss-Stellen. Ich konnte ihn dann für nur wenig mehr als den Schrottpreis an einen Bastler verkaufen.


    Wir haben damals gesagt: "Ein Fiat rostet schon im Prospekt."