Zentrale Z21PG: Unterschied zwischen den Versionen

Aus Digital Modellbahn
K
Zeile 59: Zeile 59:
 
Um die Funktionen des oben beschriebenen XpressNet Master (Lokmaus2 oder Multimaus) zu ersetzen, schrieb ich dann eine entsprechende [http://sourceforge.net/projects/pgahtow/files/Arduino%20%28v1.0%29%20libaries/XpressNetMaster.zip 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.
 
Um die Funktionen des oben beschriebenen XpressNet Master (Lokmaus2 oder Multimaus) zu ersetzen, schrieb ich dann eine entsprechende [http://sourceforge.net/projects/pgahtow/files/Arduino%20%28v1.0%29%20libaries/XpressNetMaster.zip 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.
  
====<u>Softwareversion 1</u>====
+
===Hardwareinterface===
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.
+
Die Arduino Z21 DCC Zentrale erzeugt mithilfe der [[DCC|DCCInterface Library]] und dem Timer1/Timer2 (wählbar) ein DCC-Signal. Die Zentrale unterstützt je nach gewünschtem Funktionsumfang verschiedene Protokolle. Jedes dieser Protokolle benötigt um mit der Zentrale kommunizieren zu können ein eigenes Interface.  
  
[[Datei:Arduino_XpressNet_Master.png|thumb|160px|Arduino XpressNet alt (Sw. v1 bis v4)]]
+
====<u>LAN Interface</u>====
====<u>Softwareversion 2</u>====
+
Kommunikation des [[Z21_mobile|Z21 Protokoll]] über das Kabelgebundene W5100 Arduino Shield. Die IP-Adresse um das Interface zu erreichen ist Standardmäßig auf die 192.168.0.111 eingestellt und kann über das Webinterface geändert werden.
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 ([[XpressNet#Hardware|siehe XpressNet Hardware]]).
+
====<u>DCC Interface</u>====
 +
Mit Hilfe des [[DCC_Dekoder|DCC Fremdeingang]] wird der DCC Datenstrom einer angeschlossenen DCC Zentrale mit in das eigene DCC-Signal integriert. Hierbei erfolgt keine Rückkommunikation zu der externen Zentrale. Der Anschluss kann verwendet werden um zum Beispiel eine Piko Fern / Digi 1 (55019) zu nutzen. Da kein Timer zur Dekodierung notwendig ist läuft ist diese Integration unter allen Zentralen-MCUs möglich.
  
 +
 +
====<u>XpressNet Interface</u>====
 +
<!--[[Datei:Arduino_XpressNet_Master.png|thumb|160px|Arduino XpressNet alt (Sw. v1 bis v4)]] -->
 +
[[Datei:Arduino_ROCO_Booster.png|thumb|160px|Arduino XNet Booster Interface ([https://sourceforge.net/projects/pgahtow/files/Z21_mobile/DCC_Zentrale/Zentrale_for_ROCO_Booster_10761.sch Eagle])]]
 +
Mit dem XpressNet-Interface wird eine Kommunikation mit der Roco Lokmaus2 oder Multimaus hergestellt. Der Arduino mit dem MAX485 - Treiber, arbeitet wie ein Master (LokMaus2/MulitMaus) am XpressNet. Es können dabei bis zu 31 XpressNet Slaves (Clients) an die Arduino Z21 Zentrale angeschlossen werden. Auch ohne die XpressNet Funktionalität (MAX485-Treiber) kann dieses Interface in Verbindung mit einer Roco/Fleischmann Zentrale 10761 als externer Booster genutzt werden. In der Zentrale ist die dafür notwendige Kurzschlusserkennung implementiert.
 +
 +
In der rechts dargestellten 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 ([[XpressNet#Hardware|siehe XpressNet Hardware]]).
 +
 +
====<u>LocoNet und S88</u>====
 
[[Datei:Arduino_LocoNet_Master.png|thumb|160px|Arduino LocoNet Master und S88N Interface ([https://sourceforge.net/projects/pgahtow/files/Z21_mobile/DCC_Zentrale/Zentrale_LocoNet_Master.sch Eagle])]]
 
[[Datei:Arduino_LocoNet_Master.png|thumb|160px|Arduino LocoNet Master und S88N Interface ([https://sourceforge.net/projects/pgahtow/files/Z21_mobile/DCC_Zentrale/Zentrale_LocoNet_Master.sch Eagle])]]
====<u>Softwareversion 3</u>====
+
Durch die Integration eines LocoNet-Interface ist es möglich die Arduino Z21 Zentrale mit der Intellibox zu verbinden oder mit LocoNet-Handregler wie den [[FredI|Fred]] zu nutzenUm den Fred nutzen zu können muss in der Software der notwendige LocoNet Slot-Server aktiviert werden, dann ist ein Anschluss an der Intellibox (welche bereits einen Slot-Server integriert hat) nicht mehr möglich. Die [[Loconet|LocoNet Library]] nutzt zur Signalerzeugung im Arduino UNO den Timer 1 und im Arduino MEGA den Timer 5.
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.
+
 
 +
Rückmeldungen können mit dem S88 Interface an die Steuersoftware weitergeleitet werden. Es werden bis zu 62 Rückmeldemodule mit 8 Eingängen unterstützt. Einstellungen zur Anzahl der abzufragenden Module lassen sich über die Webkonfiguration mittels LAN oder WLAN vornehmen.
 +
Himweis: Ab ca. 5 Modulen sollte ein [[Lok_Rückmeldung#HSI-S88N-USB_Interface_.28v1.02.29|Ausgangstreiber 74HC244]] verwendet werden.
  
====<u>Softwareversion 3x</u>====
+
====<u>interner Booster</u>====
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.
+
[[Datei:TLE5205-2_Booster.png|thumb|160px|TLE5205-2g Booster]]
 +
Ein einfacher und sehr kostengünstiger [[Booster]] (z.B.: H-Brücke TLE5205) zur Verstärkung des DCC-Signal direkt in der Zentrale. Implementierung einer zweiten Kurzschlusserkennung für den internen Booster und die Erzeugung eines separaten GO/STOP Signal.  
 +
Genutzt wird dazu ein H-Brückentreiber TLE5205 oder der Baugleiche TLE5206-2 welcher bis zu 5A Ausgangsstrom liefern kann. Eine Beschreibung ist auch unter [[Booster#Booster3|Booster3]] zu finden. <br>
 +
:'''Achtung:''' Im [http://pgahtow.sourceforge.net/wordpress/wp-content/uploads/2015/10/TLE5205.pdf Datenblatt] des TLE5205 ist eine falsche Logiktabelle abgebildet!
  
  
 +
====<u>WiFi (WLAN)</u>====
 
[[Datei:ESP8266-01_Modul.png|thumb|160px|ESP Serial Anschluss ([http://sourceforge.net/projects/pgahtow/files/Z21_mobile/ESP8266_WiFi/ESP8266-01.sch Eagle])]]
 
[[Datei:ESP8266-01_Modul.png|thumb|160px|ESP Serial Anschluss ([http://sourceforge.net/projects/pgahtow/files/Z21_mobile/ESP8266_WiFi/ESP8266-01.sch Eagle])]]
 +
[[Datei:ESP_Arduino_Modul.jpg|left|190px|ESP Arduino WiFi Modul]]
  
====<u>Softwareversion 4 WiFi</u>====
 
[[Datei:ESP_Arduino_Modul.jpg|left|190px|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.
 
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 [[Zentrale#Z21_ESP8266_WLAN-Modul_Sketch|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 [https://github.com/esp8266/Arduino Arduino IDE] heraus. <br>
+
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 [[Zentrale#Z21_ESP8266_WLAN-Modul_Sketch|Downloadbereich]]). Da das ESP-Modul mit 3,3Volt (ca. 200mA) arbeitet ist ein extra Spannungsregler und Pegelwandler auf dem WiFi-Interface zu installieren. Die zwei Taster auf dem Adapter im Bild, sind für das aufspielen des Sketch (Firmware-Update) und Reset beim ersten installieren des ESP-Moduls nötig. Programmiert wird das ESP wie ein Arduino, aus einer angepassten [https://github.com/esp8266/Arduino Arduino IDE] heraus. <br>
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.
+
Für den Anschluss an der Zentrale können die auf dem Adapter installierten Taster und LED entfallen! Diese sind nur für die einmalige Programmierung notwendig.
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.
 
 
 
[[Datei:Arduino_ROCO_Booster.png|thumb|160px|Arduino XNet Booster Interface ([https://sourceforge.net/projects/pgahtow/files/Z21_mobile/DCC_Zentrale/Zentrale_for_ROCO_Booster_10761.sch Eagle])]]
 
  
 +
<!--
 
====<u>Softwareversion 4x</u>====
 
====<u>Softwareversion 4x</u>====
 
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. <br>
 
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. <br>
 
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.
 
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.
 
+
-->
<br>
 
[[Datei:TLE5205-2_Booster.png|thumb|160px|TLE5205-2g Booster]]
 
----
 
<u>'''integrierter Booster:'''</u>
 
<br \>
 
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 [[Booster#Booster3|Booster3]] zu finden. <br>
 
:'''Achtung:''' Im [http://pgahtow.sourceforge.net/wordpress/wp-content/uploads/2015/10/TLE5205.pdf Datenblatt] des TLE5205 ist eine falsche Logiktabelle abgebildet!
 
  
 
== Hardware ==
 
== Hardware ==

Version vom 14. März 2016, 11:54 Uhr

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.
  • Synchronisation Zentrale - XpressNet, aktive Funktionen/Fahrtrichtung wird nicht durch Roco MultiMaus dargestellt.
  • Probleme bei der XpressNet Kommunikation mit Lenz LH100, LH01

Gerne gebe ich zu Anregungen oder Problemen Auskunft.

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.

Hardwareinterface

Die Arduino Z21 DCC Zentrale erzeugt mithilfe der DCCInterface Library und dem Timer1/Timer2 (wählbar) ein DCC-Signal. Die Zentrale unterstützt je nach gewünschtem Funktionsumfang verschiedene Protokolle. Jedes dieser Protokolle benötigt um mit der Zentrale kommunizieren zu können ein eigenes Interface.

LAN Interface

Kommunikation des Z21 Protokoll über das Kabelgebundene W5100 Arduino Shield. Die IP-Adresse um das Interface zu erreichen ist Standardmäßig auf die 192.168.0.111 eingestellt und kann über das Webinterface geändert werden.

DCC Interface

Mit Hilfe des DCC Fremdeingang wird der DCC Datenstrom einer angeschlossenen DCC Zentrale mit in das eigene DCC-Signal integriert. Hierbei erfolgt keine Rückkommunikation zu der externen Zentrale. Der Anschluss kann verwendet werden um zum Beispiel eine Piko Fern / Digi 1 (55019) zu nutzen. Da kein Timer zur Dekodierung notwendig ist läuft ist diese Integration unter allen Zentralen-MCUs möglich.


XpressNet Interface

Arduino XNet Booster Interface (Eagle)

Mit dem XpressNet-Interface wird eine Kommunikation mit der Roco Lokmaus2 oder Multimaus hergestellt. Der Arduino mit dem MAX485 - Treiber, arbeitet wie ein Master (LokMaus2/MulitMaus) am XpressNet. Es können dabei bis zu 31 XpressNet Slaves (Clients) an die Arduino Z21 Zentrale angeschlossen werden. Auch ohne die XpressNet Funktionalität (MAX485-Treiber) kann dieses Interface in Verbindung mit einer Roco/Fleischmann Zentrale 10761 als externer Booster genutzt werden. In der Zentrale ist die dafür notwendige Kurzschlusserkennung implementiert.

In der rechts dargestellten 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).

LocoNet und S88

Arduino LocoNet Master und S88N Interface (Eagle)

Durch die Integration eines LocoNet-Interface ist es möglich die Arduino Z21 Zentrale mit der Intellibox zu verbinden oder mit LocoNet-Handregler wie den Fred zu nutzen. Um den Fred nutzen zu können muss in der Software der notwendige LocoNet Slot-Server aktiviert werden, dann ist ein Anschluss an der Intellibox (welche bereits einen Slot-Server integriert hat) nicht mehr möglich. Die LocoNet Library nutzt zur Signalerzeugung im Arduino UNO den Timer 1 und im Arduino MEGA den Timer 5.

Rückmeldungen können mit dem S88 Interface an die Steuersoftware weitergeleitet werden. Es werden bis zu 62 Rückmeldemodule mit 8 Eingängen unterstützt. Einstellungen zur Anzahl der abzufragenden Module lassen sich über die Webkonfiguration mittels LAN oder WLAN vornehmen. Himweis: Ab ca. 5 Modulen sollte ein Ausgangstreiber 74HC244 verwendet werden.

interner Booster

TLE5205-2g Booster

Ein einfacher und sehr kostengünstiger Booster (z.B.: H-Brücke TLE5205) zur Verstärkung des DCC-Signal direkt in der Zentrale. Implementierung einer zweiten Kurzschlusserkennung für den internen Booster und die Erzeugung eines separaten GO/STOP Signal. Genutzt wird dazu ein H-Brückentreiber TLE5205 oder der Baugleiche TLE5206-2 welcher bis zu 5A Ausgangsstrom liefern kann. Eine Beschreibung ist auch unter Booster3 zu finden.

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


WiFi (WLAN)

ESP Serial Anschluss (Eagle)
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-Interface zu installieren. Die zwei Taster auf dem Adapter im Bild, sind für das aufspielen des Sketch (Firmware-Update) und Reset beim ersten installieren des ESP-Moduls nötig. Programmiert wird das ESP wie ein Arduino, aus einer angepassten Arduino IDE heraus.
Für den Anschluss an der Zentrale können die auf dem Adapter installierten Taster und LED entfallen! Diese sind nur für die einmalige Programmierung notwendig.


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.