Zentrale Z21PG

Aus Digital Modellbahn

Eigenbau | Zentrale Z21PG | Z21 mobile | XpressNet | LocoNet | Booster

Arduino UNO Version | Arduino MEGA Version | ESP8266 (WeMos D1 mini) Version | ESP32 Version | Sanguino Version

Z21 logo.png
Dcc logo.jpgXpressNet logo.jpgLoconet logo.jpgS88-N logo.jpg

Beschreibung

Zentrale in Eurobox
Modellbahn DCC Zentrale mit Netzwerk, XpressNet und LocoNet Anschluss
Anschlüsse der Z21 DCC Zentrale

Hier wird der Aufbau einer DCC Digitalzentrale auf Basis eines Arduino (Arduino MEGA über AliExpress ab 7,30 Euro) zur Steuerung der Modellbahn über das Z21 LAN Protokoll beschrieben. Auf den Arduino MEGA wird in der Grundversion dazu ein Ethernet Shield mit dem W5100 Chip (bei AliExpress ab 4,80 Euro), aufgesetzt. Mit diesem Ethernet Shield, kann der Arduino MEGA in ein bestehendes Netzwerk integriert werden und über einen Router mit WLAN mit Handreglern oder der Computersoftware zum Beispiel Rocrail kommunizieren.

Durch Erweiterungen lässt sich zum Beispiel ein WLAN AP/Client mittels ESP6288 in die Zentrale integrieren.

Funktionsumfang

=> W5100 Ethernet Interface
=> ESP8266 WLAN Interface für "Z21 LAN Protokoll" (Accesspoint- und/oder Client-Betrieb)
  • NMRA-DCC-Standard mit CV Programmierung (kein POM), 29 Lokfunktionen (Licht F0, F1 bis F28) und 2048 Weichen.[1]
=> DCC Booster Ausgang für ROCO 10761/10764 Digitalverstärker mit optionaler Kehrschleifenfunktion
=> integrierter DCC Booster bis 5A (TLE5205 Treiber)
=> LocoNet-Client Mode (Slot-Server abschaltbar) für den Anschluss an der Intellibox - ab Softwareversion 43

geplante Erweiterungen:

Notes

  1. Das Motorola Format (MM) wird nicht unterstützt.
  2. S88N Untersützung von bis zu 62x Modulen mit je 8 Ports und Raildata (DCC-Signal) .
  3. Bis zu 31 Endgeräte (LokMaus2, Multimaus) können am XpressNet angeschlossen werden.

bekannte Bugs

Da dieses Projekt eine persönliche Entwicklung von mir ist bleibt es nicht aus das einige Protokolle nicht 100%tig unterstützt, oder mit kleineren Ungenauigkeiten Implementiert wurden. Hier eine Auflistung der bekannten Probleme:

  • Abbruch der Kommunikation ab TrainController Version 8 F2 - Anpassung am Z21 Protokoll in Arbeit.

Gerne gebe ich zu Anregungen oder Problemen Hilfestellung.

Entwicklung

ROCO XpressNet:
Die komfortable aber sehr teure Modellbahnsteuerung Z21 von Roco und der genutzte XpressNet-Bus brachte mich auf die Idee, eine eigene Zentrale zu entwickeln. Im Mittelpunkt dieser Idee, stand die Absicht, die dort eingebrachte umfangreiche Hardware zu reduzieren bzw. durch Software zu ersetzen. Die Eigenbauzentrale sollte auch ein Netzwerk Interface (für APP und PC), XpressNet, S88 und LocoNet Bus bereitstellen.
Kurzbeschreibung zum XpressNet:
Wenn ein preisgünstiger ROCO Booster 10761, 10764 oder der Digitalverstärker 680801, verwendet wird, ergibt sich die Notwendigkeit eines XpressNet-Bus Masters (auch als Zentrale oder Hauptknoten bezeichnet). Die Masterfunktion kann beispielsweise eine LokMaus2 oder Multimaus übernehmen. Der Master steuert dann die gesamte Kommunikation des Roco XpressNet-Bus und erzeugt das DCC-Signal.
Das Projekt besteht aus zwei Teilen. Zuerst wurde ein Client für den XpressNet-Bus entwickelt (siehe Z21 mobile - Slave am XpressNet). Um die Funktionen des oben beschriebenen XpressNet Master (Lokmaus2 oder Multimaus) zu ersetzen, schrieb ich dann eine entsprechende XpressNet Master Interface Library. Das Beispiel zeigt, wie man die Hardware einer kompletten industriell gefertigten Digitalzentrale durch Software ersetzen kann. Außerdem besteht jetzt die Möglichkeit durch die Einarbeitung unterschiedlicher Schnittstellen, verschieden auf dem Markt befindliche Systeme zu unterstützen.

Softwareversion 1

Die Softwareversion 1 der Zentrale erzeugt im Arduino ein DCC-Signal. Der MAX485 -Treiber zur Kommunikation mit dem XpressNet kann entfallen. Der ROCO Booster 10761 wird dann als reiner DCC Booster genutzt, es können keine XpressNet-Geräte angeschlossen werden.

Datei:Arduino XpressNet Master.png
Arduino XpressNet alt (Sw. v1 bis v4)

Softwareversion 2

Ab der Softwareversion 2 ist zusätzlich ein XpressNet-Interface implementiert worden. Der Arduino mit dem MAX485 - Treiber, arbeitet wie ein Master (LokMaus2/MulitMaus) am XpressNet. Bis zu 31 XpressNet Slaves (Clients) können an diese "Software-Zentrale" angeschlossen werden.

In der unten gezeigten Schaltung ist der Aufbau der DCC-Ansteuerung des ROCO Boosters 10761 und das XpressNet Interface dargestellt. Am XpressNet Interface sind möglicherweise noch zusätzliche pull Up/Down und/oder eine XpressNet Bus-Terminierung an der Leitung A und B notwendig (siehe XpressNet Hardware).

Arduino LocoNet Master und S88N Interface (Eagle)

Softwareversion 3

In der Softwareversion 3 wurde die Schaltung durch einen S88 Bus und ein LocoNet-Interface erweitert. Damit wird es möglich, den LocoNet-Handregler, wie den FredI, anzuschließen. Der zugehörige Schaltungsaufbau unten, zeigt die zusätzlich notwendige Hardware für das LocoNet-Interface.

Softwareversion 3x

Bei dieser Version wurden die Funktionen des Timer1 und Timer2 verteilt. Das DCC Interface arbeitet nun mit dem Timer2 (S88 ohne Timer), damit ist es möglich im Arduino UNO das LocoNet Interface unter Timer1 einzusetzen. Zusätzlich wird durch die Software ein zweiter Booster (Booster2) unterstützt. Der Booster2 in der Zentrale (z.B.: H-Brücke TLE5205) hat ein eigenes Kurzschluss - und GO/STOP Signal. Es schaltet somit unabhängig vom angeschlossenen Roco Booster, ab.


ESP Serial Anschluss (Eagle)

Softwareversion 4 WiFi

ESP Arduino WiFi Modul

Integration des Z21 LAN Protokoll über eine externe Library z21.h. Das macht eine Auswahl des zu nutzenden Interfaces (W5100 oder WLAN) möglich. Für die WiFi-Kommunikation wird das ESP82660-01 Modul eingesetzt. Dieses verbindet sich per Serial mit der Zentralen-MCU. Die Kommunikation mit dem ESP erfolgt nicht mittels AT-Befehlen, sondern über ein modifiziertes Z21 LAN Protokoll mit Client-Erkennung (Sketch für ESP im Downloadbereich). Da das ESP-Modul mit 3,3Volt (ca. 200mA) arbeitet ist ein extra Spannungsregler und Pegelwandler auf dem WiFi-Adapter zu installieren. Die zwei Taster auf dem Adapter im Bild, sind für das aufspielen des Sketch (Firmware-Update) und Reset des ESP-Moduls nötig. Programmiert wird das ESP wie ein Arduino aus einer angepassten Arduino IDE heraus.
Außerdem läuft der DCC-Input - Anschluss einer "Fremdzentrale" - jetzt ohne Timer4. Dadurch ist die integration der DCC-Daten unter allen Zentralen-MCUs möglich. Zusätzlich wurden Verbesserungen sowie Anpassungen am S88, LocoNet und Z21 LAN Protokoll vorgenommen.

Für den Anschluss an der Zentrale können die Taster und LED entfallen! Diese sind nur für die einmalige Programmierung notwendig.

Arduino XNet Booster Interface (Eagle)

Softwareversion 4x

Anpassung der Kurzschlusserkennung für ROCO und Fleischmann Booster, hierfür auch ist eine Hardwareanpassung notwendig. Die Software wurde auf die invertierte Kurzschlusserkennung angepasst! (siehe Schaltplan) Der externe Booster wird nur zugeschaltet, wenn das Kurzschlusssignal negativ ist. Dies wird nur beim Einschalten der Gleisspannung abgefragt.
Außerdem wurde das S88 Bus Interface optimiert und die Abfrage beschleunigt. Zusätzlich wurde ein automatisches Rücksetzten für die WLAN-Serial Kommunikation implementiert. LocoNet Nachrichten werden komplett an Z21-Abonenten übertragen. Mit der Software v43 kann die Zentrale nun über LocoNet (Slave-Mode) mit einer Intellibox verbunden werden.


TLE5205-2g Booster

integrierter Booster:
Ein einfacher und sehr kostengünstiger Booster mit bis zu 5A Ausgangsstrom. Dieser kann direkt in die Zentrale integriert werden. Genutzt wird zur Gleisspannungserzeugung ein H-Brückentreiber TLE5205 oder der Baugleiche TLE5206-2. Eine Beschreibung ist auch unter Booster3 zu finden.

Achtung: Im Datenblatt des TLE5205 ist eine falsche Logiktabelle abgebildet!

Hardware

Arduino UNO Z21 DCC Zentrale (ATmega328p) - klein

Arduino MEGA Z21 DCC Zentrale (ATmega2560) - mittel

Sanguino Z21 DCC Zentrale (ATmega1284p/ATmega644p) - groß

Software

Die Software ist mit der Arduino IDE geschrieben.

Arduino Plug-In: Anpassung der Arduino IDE für die Funktion mit Sanguino oder ESP-Modul sind unter Arduino#Hardware beschrieben.

Beschreibung

Das Sketch kann universal für den Arduino UNO [eingeschränkt], Arduino MEGA oder für den Sanguino Mikroprozessor ATmega1284p (ab Sw. v31) eingesetzt werden.
In dem Sketch ab der Softwareversion 3x sind alle Protokolle variable aktivierbar/deaktivierbar. Bitte nutzt die Sketch Version 4 oder höher, hier wurden viele Fehler beseitigt! Bitte ladet euch auch die jeweils letzte Version der Bibliotheken herunter, denn nur so ist die Software lauffähig!

Bemerkung: Ab der Version 31 ist die neue DCC Interface Library mit Timer 2 funktionalität zu nutzen. Darüber hinaus, wurden die unterstützten Protokoll für dem Arduino UNO eingeschränkt (zu wenig RAM/ROM)!

Z21 ESP8266 WLAN-Modul Sketch

WiFi Software Version 2.3 mit AJAX Webserver und S88-Modul Anzahl konfigurierbar. Automatisches Rücksetzten des Buffer für die Serial-Kommunikation. Bei Konfigurationsänderungen wird der AP neu gestartet - es erfolgt keine Rückmeldung zu Speicherung der Eingaben! Freie Kanalauswahl für AP nur möglich, wenn keine Client Verbindung besteht!

DCC Z21 Zentrale Sketch

  • Fix Kommunikation im LocoNet-Client Modus mit der IntelliBox.
  • Wireless & LAN: Support für kombinierte UDP Paket im WLAN und LAN. Zusätzlich Verbesserung im "DCC Interface Master" bei der CV-Programmierung.
  • LocoNet mit Slotserver (Master/Slave Betrieb) - Zum Beispiel als LocoNet Slave an einer Intellibox (ab Arduino DCC Interface Library ab v2.2!)
  • Weichen über LocoNet steuerbar und Anpassung der LocoNet-Nachrichtenübertragung ins Z21-Protokoll.


Ältere Versionen können über Sourceforge heruntergeladen werden:


Library

Hier sind die notwendigen Bibliotheken aufgeführt. Nur damit ist das Sketch der DCC Zentrale lauffähig.

=> Für Zentrale ab Softwareversion 4 nötig.