Zentrale Z21PG/en: Unterschied zwischen den Versionen

Aus Digital Modellbahn
(Übernehme Bearbeitung einer neuen Version der Quellseite)
Zeile 128: Zeile 128:
 
:*GO/STOP2 (Booster intern) '''=>''' DCC2,
 
:*GO/STOP2 (Booster intern) '''=>''' DCC2,
 
:*SHORT2 (Booster intern) '''=>''' SHORT.  
 
:*SHORT2 (Booster intern) '''=>''' SHORT.  
Um die geänderte Ansteuerung zu aktivieren muss im Sketch folgende Zeile 'aktiv' sein: <br>
+
Um die geänderte Ansteuerung zu aktivieren muss im Sketch folgende Zeile 'aktiv' sein: <br />
<code>#define BOOSTER_INT_NDCC</code> <br>
+
<code>#define BOOSTER_INT_NDCC</code> <br />
RailCom selbst kann über folgende Zeile 'aktiviert' werden: <br>
+
RailCom selbst kann über folgende Zeile 'aktiviert' werden: <br />
<code>#define RAILCOM</code><br>
+
<code>#define RAILCOM</code><br />
 
Zur Anzeige der Stromaufnahme muss <Code>#define BOOSTER_INT_MAINCURRENT</Code> aktiviert werden.  
 
Zur Anzeige der Stromaufnahme muss <Code>#define BOOSTER_INT_MAINCURRENT</Code> aktiviert werden.  
<br>
+
<br />
  
 
Damit ist nun auch möglich eine andere H-Brücke (zum Beispiel L6206N oder L298n) zu verwenden. (Die Kurzschlusserkennung mittels SENCE Widerstand muss dabei trotzdem installiert werden!)
 
Damit ist nun auch möglich eine andere H-Brücke (zum Beispiel L6206N oder L298n) zu verwenden. (Die Kurzschlusserkennung mittels SENCE Widerstand muss dabei trotzdem installiert werden!)
Zeile 144: Zeile 144:
 
[[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])]]
 
Für die WiFi-Kommunikation wird das ESP82660-01 Modul eingesetzt. Das ESP-Modul benötigt ein eigenes Sketch, welches im [[Special:MyLanguage/Zentrale#Z21_WLAN_Add-On_Sketch|Downloadbereich]] heruntergeladen werden kann. Das ESP-Modul verbindet sich mittels [https://www.arduino.cc/en/Reference/Serial Serial] mit der Zentralen-MCU.
 
Für die WiFi-Kommunikation wird das ESP82660-01 Modul eingesetzt. Das ESP-Modul benötigt ein eigenes Sketch, welches im [[Special:MyLanguage/Zentrale#Z21_WLAN_Add-On_Sketch|Downloadbereich]] heruntergeladen werden kann. Das ESP-Modul verbindet sich mittels [https://www.arduino.cc/en/Reference/Serial Serial] mit der Zentralen-MCU.
Anschluss ESP8266 WLAN-Modul: <br>
+
Anschluss ESP8266 WLAN-Modul: <br />
 
:* Arduino UNO  = Serial (0,1) [oder über Software Serial (11,12)]
 
:* Arduino UNO  = Serial (0,1) [oder über Software Serial (11,12)]
 
:* Arduino MEGA = Serial2 (16,17)
 
:* Arduino MEGA = Serial2 (16,17)
:* andere      = Serial (0,1) <br>
+
:* andere      = Serial (0,1) <br />
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 [[Special:MyLanguage/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 WLAN-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>
+
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 [[Special:MyLanguage/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 WLAN-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 />
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. Um WLAN in der Zentrale zu aktivieren muss folgende Zeile einkommentiert werden: <code>#define WIFI</code> <br>
+
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. Um WLAN in der Zentrale zu aktivieren muss folgende Zeile einkommentiert werden: <code>#define WIFI</code> <br />
 
Das ESP8266 stellt einen AcessPoint (AP) bereit. Über diesen kann mithilfe eines Webbrowser (http://192.168.0.111) die Standard-Einstellungen (SSID "Z21_ESP" und Passwort "12345678") und der WLAN Client-Betrieb (Client-Mode) an einem vorhandenen WLAN-Router konfiguriert werden. Wenn das S88-Interface genutzt wird, kann über das Webinterface auch die Modulanzahl angepasst werden.
 
Das ESP8266 stellt einen AcessPoint (AP) bereit. Über diesen kann mithilfe eines Webbrowser (http://192.168.0.111) die Standard-Einstellungen (SSID "Z21_ESP" und Passwort "12345678") und der WLAN Client-Betrieb (Client-Mode) an einem vorhandenen WLAN-Router konfiguriert werden. Wenn das S88-Interface genutzt wird, kann über das Webinterface auch die Modulanzahl angepasst werden.
  
 
===<u>Debugging (optional)</u>===
 
===<u>Debugging (optional)</u>===
  
Um im Bedarfsfall interne Daten über den Serial Monitor überwachen zu können, gibt es dafür eine Debug-Ausgabe. Diese <u>muss</u> beim Arduino UNO und aktivem XpressNet oder WLAN komplett deaktiviert sein! <br>
+
Um im Bedarfsfall interne Daten über den Serial Monitor überwachen zu können, gibt es dafür eine Debug-Ausgabe. Diese <u>muss</u> beim Arduino UNO und aktivem XpressNet oder WLAN komplett deaktiviert sein! <br />
 
Aktiviert wird das Debugging mittels:
 
Aktiviert wird das Debugging mittels:
<code>#define Debug Serial </code> <br>
+
<code>#define Debug Serial </code> <br />
Einstellung welche Daten/Protokolle ausgegeben werden sollen: <br>
+
Einstellung welche Daten/Protokolle ausgegeben werden sollen: <br />
<code>#define DEBUG </code> Ausgabe von Einstellungen und Softwareversion <br>
+
<code>#define DEBUG </code> Ausgabe von Einstellungen und Softwareversion <br />
<code>#define REPORT </code> Ausgabe der Zustände von S88 Rückmelder <br>
+
<code>#define REPORT </code> Ausgabe der Zustände von S88 Rückmelder <br />
<code>#define LnDEB </code> Ausgabe LocoNet Kommunikation <br>
+
<code>#define LnDEB </code> Ausgabe LocoNet Kommunikation <br />
<code>#define XnDEG </code> Ausgabe XpressNet Kommunikation <br>
+
<code>#define XnDEG </code> Ausgabe XpressNet Kommunikation <br />
<code>#define Z21DEBUG </code> Ausgabe Z21 Protokoll Kommunikation <br>
+
<code>#define Z21DEBUG </code> Ausgabe Z21 Protokoll Kommunikation <br />
 
 
<!--
 
 
 
====
 
 
 
<u>Soft
 
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>wareversion 4x</u>====
 
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.
 
-->
 
  
 
== Hardware MCUs (circuit diagram) ==
 
== Hardware MCUs (circuit diagram) ==
Zeile 190: Zeile 181:
 
===<u>Description</u>===
 
===<u>Description</u>===
  
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. ([[Arduino#Hardware|Übersicht Arduino Mikroprozessoren]]) <br>
+
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. ([[Arduino#Hardware|Übersicht Arduino Mikroprozessoren]]) <br />
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! <br>
+
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! <br />
: '''<u>Bemerkung:</u>''' Ab der Version 31 ist die neue DCC Interface Library mit Timer 2 funktionalität zu nutzen. Darüber hinaus, wurden die unterstützten Protokolle/Interface für dem Arduino UNO eingeschränkt (zu wenig RAM/ROM)! <br>
+
: '''<u>Bemerkung:</u>''' Ab der Version 31 ist die neue DCC Interface Library mit Timer 2 funktionalität zu nutzen. Darüber hinaus, wurden die unterstützten Protokolle/Interface für dem Arduino UNO eingeschränkt (zu wenig RAM/ROM)! <br />
  
  
 
==== <u>Z21 WLAN Add-On Sketch</u> ====
 
==== <u>Z21 WLAN Add-On Sketch</u> ====
  
:* [https://sourceforge.net/projects/f944.pgahtow.p/files/wlan_sketch/Z21_ESPArduinoUDP_v27.ino/download Z21 ESP8266 UDP v27 Sketch (23.07.17) Download] - mit automatischer Baudratenbestimmung <br>
+
:* [https://sourceforge.net/projects/f944.pgahtow.p/files/wlan_sketch/Z21_ESPArduinoUDP_v27.ino/download Z21 ESP8266 UDP v27 Sketch (23.07.17) Download] - mit automatischer Baudratenbestimmung <br />
Diese Software ist für das WLAN WLAN Add-On (ESP8266) der Arduino Z21 DCC Zentrale notwendig. Sie muss in das ESP8266, mit Hilfe der Arduino IDE, hochgeladen werden. Die Software beinhaltet einen AJAX Webserver zur Konfiguration und die Option die S88-Modulanzahl zu ändern. Außerdem ist ein Reset Fall-back (Timeout) des Daten-Buffer für die Serial-Kommunikation zur Arduino Z21 DCC Zentrale implementiert. Zu beachten ist, dass es sich hierbei nur um das Sketch handelt welches für das WLAN-Modul notwendig ist, dies ist keine eigenständige Zentrale. <br>
+
Diese Software ist für das WLAN WLAN Add-On (ESP8266) der Arduino Z21 DCC Zentrale notwendig. Sie muss in das ESP8266, mit Hilfe der Arduino IDE, hochgeladen werden. Die Software beinhaltet einen AJAX Webserver zur Konfiguration und die Option die S88-Modulanzahl zu ändern. Außerdem ist ein Reset Fall-back (Timeout) des Daten-Buffer für die Serial-Kommunikation zur Arduino Z21 DCC Zentrale implementiert. Zu beachten ist, dass es sich hierbei nur um das Sketch handelt welches für das WLAN-Modul notwendig ist, dies ist keine eigenständige Zentrale. <br />
'''Info:''' Bei Konfigurationsänderungen am AccessPoint (AP) wird dieser beim Speichern automatisch neu gestartet - es erfolgt dadurch keine Rückmeldung oder Bestätigung des Speichervorgangs! Eine freie Kanalauswahl (1-13) für den AP ist nur möglich, wenn keine Client Verbindung besteht. <br>
+
'''Info:''' Bei Konfigurationsänderungen am AccessPoint (AP) wird dieser beim Speichern automatisch neu gestartet - es erfolgt dadurch keine Rückmeldung oder Bestätigung des Speichervorgangs! Eine freie Kanalauswahl (1-13) für den AP ist nur möglich, wenn keine Client Verbindung besteht. <br />
 
'''Fix v27:''' Akzeptiert jetzt auch eine SSID mit nur einem Zeichen.
 
'''Fix v27:''' Akzeptiert jetzt auch eine SSID mit nur einem Zeichen.
  
Zeile 218: Zeile 209:
 
* Anpassung LocoNet Bibliothek für den Umgang mit langen Lokadressen.
 
* Anpassung LocoNet Bibliothek für den Umgang mit langen Lokadressen.
  
<br>
+
<br />
 
'''''Ältere Versionen können über Sourceforge heruntergeladen werden:'''
 
'''''Ältere Versionen können über Sourceforge heruntergeladen werden:'''
 
:*[http://sourceforge.net/projects/f944.pgahtow.p/files/ Arduino Z21 DCC Zentrale Sourceforge]''
 
:*[http://sourceforge.net/projects/f944.pgahtow.p/files/ Arduino Z21 DCC Zentrale Sourceforge]''
Zeile 225: Zeile 216:
 
;* [http://sourceforge.net/projects/pgahtow/files/Z21_mobile/DCC_Zentrale/Z21_Ethernet_DCC_Zentrale_v44.zip Arduino DCC Zentrale v44 (160118) Download] - Wireless LAN (Wifi) : Support für kombinierte UDP Paket im WLAN und LAN. Zusätzlich Verbesserung im "DCC Interface Master" bei der CV-Programmierung.
 
;* [http://sourceforge.net/projects/pgahtow/files/Z21_mobile/DCC_Zentrale/Z21_Ethernet_DCC_Zentrale_v44.zip Arduino DCC Zentrale v44 (160118) Download] - Wireless LAN (Wifi) : Support für kombinierte UDP Paket im WLAN und LAN. Zusätzlich Verbesserung im "DCC Interface Master" bei der CV-Programmierung.
  
;* [http://sourceforge.net/projects/pgahtow/files/Z21_mobile/DCC_Zentrale/Z21_Ethernet_DCC_Zentrale_v43.zip Arduino DCC Zentrale v43 (151117) Download] - Wireless LAN (Wifi) : LocoNet mit Master/Slave Betrieb - Anschluss als LocoNet Slave an einer Intellibox <br>(LocoNet Slave nur mit Arduino DCC Interface Library ab v2.2!) <br>
+
;* [http://sourceforge.net/projects/pgahtow/files/Z21_mobile/DCC_Zentrale/Z21_Ethernet_DCC_Zentrale_v43.zip Arduino DCC Zentrale v43 (151117) Download] - Wireless LAN (Wifi) : LocoNet mit Master/Slave Betrieb - Anschluss als LocoNet Slave an einer Intellibox <br />(LocoNet Slave nur mit Arduino DCC Interface Library ab v2.2!) <br />
 
;* <span style="color: red;">Neue Pinbelegung für den internen Booster!<span>
 
;* <span style="color: red;">Neue Pinbelegung für den internen Booster!<span>
  
Zeile 240: Zeile 231:
 
;* [http://sourceforge.net/projects/pgahtow/files/Z21_mobile/DCC_Zentrale/Z21_Ethernet_DCC_Zentrale_v32.zip Arduino DCC Zentrale v32 (150915) Download] : Anpassungen des S88-Bus-Timing (Timer 3 im Arduino MEGA und ATmega 1284p)
 
;* [http://sourceforge.net/projects/pgahtow/files/Z21_mobile/DCC_Zentrale/Z21_Ethernet_DCC_Zentrale_v32.zip Arduino DCC Zentrale v32 (150915) Download] : Anpassungen des S88-Bus-Timing (Timer 3 im Arduino MEGA und ATmega 1284p)
  
;* [http://sourceforge.net/projects/pgahtow/files/Z21_mobile/DCC_Zentrale/Z21_Ethernet_DCC_Zentrale_v31.zip Arduino DCC Zentrale v31 (150803) Download] : angepasste Version für Sanguino, '''Änderung der Timer''', LocoNet auch für Arduino UNO aktivierbar! <br><span style="color: red;">(Ab dieser Version ist die neue DCC Interface Library mit Timer 2 notwendig!) </span>
+
;* [http://sourceforge.net/projects/pgahtow/files/Z21_mobile/DCC_Zentrale/Z21_Ethernet_DCC_Zentrale_v31.zip Arduino DCC Zentrale v31 (150803) Download] : angepasste Version für Sanguino, '''Änderung der Timer''', LocoNet auch für Arduino UNO aktivierbar! <br /><span style="color: red;">(Ab dieser Version ist die neue DCC Interface Library mit Timer 2 notwendig!) </span>
  
<br>
+
<br />
 
'''Ältere Versionen:'''
 
'''Ältere Versionen:'''
 
* [http://sourceforge.net/projects/pgahtow/files/Z21_mobile/DCC_Zentrale/Z21_Ethernet_DCC_Zentrale_v3.zip Arduino DCC Zentrale v3 (150803) Download] : beliebige Aktiv-/Deaktivierung von Zusatzfunktionen (HTTP, S88, DCC Input for MEGA mit Update, XpressNet, LocoNet for MEGA)
 
* [http://sourceforge.net/projects/pgahtow/files/Z21_mobile/DCC_Zentrale/Z21_Ethernet_DCC_Zentrale_v3.zip Arduino DCC Zentrale v3 (150803) Download] : beliebige Aktiv-/Deaktivierung von Zusatzfunktionen (HTTP, S88, DCC Input for MEGA mit Update, XpressNet, LocoNet for MEGA)

Version vom 15. September 2018, 00:25 Uhr

Sprachen:
Deutsch • ‎English


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.jpgRailcom logo.gif

XpressNet logo.jpgLoconet logo.jpgS88-N logo.jpg

Basics

Central Station in a Eurobox
DCC Central with network, S88, XpressNet and LocoNet connection
Connections of the central station

A very good but also very expensive model railway control ROCO Z21 and the XpressNet gave me the idea to develop a own central station. My intention was to reduce the hardware or/and replace it with software. The self-construction central station should also have a network interface for APP and PC control, XpressNet, S88 and LocoNet so it will be equal or even more powerful then the original ROCO Z21.
Here I will describe the build up of the Z21 DCC Central Station on the base platform of the Arduino (Arduino MEGA buy it on AliExpress for about 8,- Euro) to control the model railway via the Z21 LAN protocol. The basic version need for the network connection a Ethernet Shield with a W5100 chip (at AliExpress for about 5,- Euro). With the ethernet shield you can include the central station into a already used home network with WiFi to control over smartphone hand device or other software for example Rocrail your model railroad. With extensions you can add for example even a WiFi AP or Client (with ESP6288) to the central station.

Functions

  • control 29 function (light, F0, F1 to F28),
  • control up to 2048 switch,
  • extern booster connection for ROCO 10761/10764 Digitalamplifier
  • internal DCC booster (TLE5205 driver with 5A)
  • NEW: RailCom® Cutout for internal booster (supported from version v4.70)
  • NEU: CV read and write (with optional programming track) (supported from version v4.75)
  • POM (programming on the main)
  • NEW: support for F9 up to F28 for Intellibox (supported from version v4.72)
  • LocoNet-Client Mode (Slot-Server can be switched off) for connection to Uhlenbrock Intellibox
  • programming of LocoNet LNCV (configuration variable) with the Z21 mobile APP (supported from version v4.52)


ideas for new extensions:

  • Change a XpressNet MultiMaus to a WiFi MultiMaus
  • Support for the Arduino DUE, a more powerful central station

Advice

  1. The motorola format (MM) is not supported!
  2. S88N support up to 64 S88 device with 8 ports and raildata (DCC-signal) .
  3. up to 31 clients (Roco LokMaus2, Roco MultiMaus) can be connceted over XpressNet.
  4. support F0 to F8

known Bugs

This project is private and just developed by myself. It doesn't have a 100% support for the used protocols. Here is a list of known problems:

  • (solved, from version v4.65) problem: No 'Init...' while communication with Freiwald Train Controller - fix in the network protocol of the Z21. Bugfix is also include in ESP8266 from version v26!
  • (solved, from version v4.70) problem: Syncing central XpressNet clients - change of active functions and drive instructions will not affect a change on the display of the Roco MultiMaus (XpressNet Busy Feature).
  • (solved, from version v4.71) LocoNet interface controls only function F0 to F8
  • (solved in XpressNet Master Library v2.0) Problems with the XpressNet communication when connection Lenz hardware LH100 or LH90.

I am pleased to receive suggestions and unknown problems by: TICKET creation or direct via Email.

Hardware

The Arduino Z21 DCC Central Station generates the DCC signal by using my own DCCInterface Library and Timer1/Timer2 (selectable). The central station support different protocols and it's own hardware interface. To select your own used protocols and hardware you have to (de)activate the interfaces inside the Arduino sketch (with "//" infront of #define or #include you can deactivate the unused protocol!).


Ethernet Interface

The Ethernet-Interface can be activated inside the sketch with "#define LAN". It provides the communication with the Z21 protocol library for cable devices connected to the Arduino W5100 Ethernet Shield. The used IP-Address is by default 192.168.0.111/24 and can be changed only over it's website (you need to activate the website by #define HTTPCONF"). You can also activate DHCP to receive a IP. To reset the IP to default you need to hold the power on/off switch while power plug in.

If you use the Arduino UNO with WiFi over Software Serial, you can't activate the Ethernet-Interface!


DCC Input Interface

Attention: This is obsolete and will be not updated! With the DCC-Input of a "foreign central station" you can integrate this DCC information on the rails. You will have no feedback between the central stations because there is no reverse communication. You can use this connection for example to use a PIKO Fern / Digi 1 (55019). The DCC decoding use no timer and will work on each provided micro controller. You need to active the interface with #define DECODER inside of the sketch.

End of Support!

XpressNet Interface with external booster support

Arduino XpressNet Booster Interface (Eagle)

If you have a less expensive ROCO 10761, 10764 or Fleischmann Digitalbooster 680801 it can be used as an external 3,5A booster with the central station. Also without XpressNet support (no MAX 485) you can use this external booster. The necessary short detection is already inside the software. You need just to activate this function with:
#define BOOSTER_EXT
#define BOOSTER_EXT_ON HIGH
#define BOOSTER_EXT_OFF LOW

To communicate with a ROCO LokMaus2 or MultiMaus you need the XpressNet driver MAX485. The Z21 Central Station provide then the master function for the LokMaus2 or/and MultiMaus. You can connect up to 31 slave devices (clients) to the XpressNet.

To activate the XpressNet-Interface you need to have this lines in the sketch:
#define XPRESSNET
#include <XpressNetMaster.h>

The picture on the right shows the schematic for the connection of the ROCO Boosters 10761 and the hardware you need to build up the XpressNet-Interface. For the data lines A and B you my need an additional pull up/down and/or a bus close ending. (see XpressNet hardware).


LocoNet

Arduino LocoNet Master und S88N Interface (Eagle)

With the integration of the LocoNet-Interface it is possible to connect the Arduino Z21 Central with a Uhlenbrock Intellibox, feedback/switch modules or with throttle devices like Fred. To use a Fred you must activate the LocoNet slot server. Note a connection to a Intellibox is only possible with a deactivated slot server, because the Intellibox provide it's own server! The LocoNet Library uses to create the signal the timer 1 and on the Arduino MEGA timer 5. To activate the LocoNet-Interface:
#define LOCONET
#include <LocoNet.h>

The Slot-Server can activated by #define LnSLOTSRV . If it is necessary you can send all loco informations with #define TXAllLokInfoOnLN true . This can be useful if you use a client software that communicates with the Z21 oder LocoNet.
Note: The LocoNet-Interface now support functions up to F28!

S88N

Arduino S88 singel Master schematic

Feedback messages can received with the S88N-Interface and send to the control software. The S88 connector support up to 62 modules with eight inputs. To manage the number of modules that are permament requested you have to open the web configuration on the LAN or WiFi IP-Address. To activate the interface you need to uncomment:
#define S88N
Advice: With more then 5 modules you should use a driver 74HC244 for your S88 system.

internal Booster

TLE5205-2g Booster3 (Not in use! - see TLE Booster3R with RailCom)

A cheap Booster (for example: H-Brücke TLE5205) to provide a DCC-Signal for programming and main track. A second short circuit detection for the internal booster with a seperate RailCom-Signal. To activate the interface you need to uncomment:
#define BOOSTER_INT
#define BOOSTER_INT_ON LOW
#define BOOSTER_INT_OFF HIGH

You can use a H-Bridge driver TLE5205 or equal like TLE5206-2. They can provide up to 5A. A discription you can find under Booster3. For the RailCom Output you must use the hardware of Booster3R.

Attention: The logic table of the Datasheet from the TLE5205 is different then the TLE5206!

internal Booster with Railcom

TLE Booster3R für Railcom (Eagle)
global RailCom Detector (Eagle)

Ab der Softwareversion v4.70 ist es möglich Railcom zu aktivieren. Um die für Railcom notwendige Abtastlücke zu erzeugen, muss der interne Booster umgebaut werden. Für die Ansteuerung des TLE wird nun ab v4.70 auch das DCC Signal auf den GO/STOP2 Pin (Booster intern) gelegt. Der Anschluss des internen Booster erfolgt damit so wie zuvor (DCC = DCC1), nur DCC2 des Booster muss an GO/STOP2:

  • DCC => DCC1,
  • GO/STOP2 (Booster intern) => DCC2,
  • SHORT2 (Booster intern) => SHORT.

Um die geänderte Ansteuerung zu aktivieren muss im Sketch folgende Zeile 'aktiv' sein:
#define BOOSTER_INT_NDCC
RailCom selbst kann über folgende Zeile 'aktiviert' werden:
#define RAILCOM
Zur Anzeige der Stromaufnahme muss #define BOOSTER_INT_MAINCURRENT aktiviert werden.

Damit ist nun auch möglich eine andere H-Brücke (zum Beispiel L6206N oder L298n) zu verwenden. (Die Kurzschlusserkennung mittels SENCE Widerstand muss dabei trotzdem installiert werden!)

Am Ausgang des Booster3R kann ein allgemeiner Railcom Detector angeschlossen werden. Über diesen können beim Programmieren mittels POM die CV-Daten von Dekodern auf dem Hauptgleis ausgelesen werden. Der RailCom Detector muss zwischen TLE Ausgang RAIL_1/RAIL_2 und dem Prog. Relais installiert werden. Bei der MEGA Variante wird "RAILCOM_RX" mit dem Serial3 Port verbunden. Ein Pull-Up von 100k kann für eine bessere RailCom Erkennung optional am Ausgang des UND installiert werden.

WiFi (WLAN Add-On)

ESP Arduino WiFi Modul
ESP Serial Anschluss (Eagle)

Für die WiFi-Kommunikation wird das ESP82660-01 Modul eingesetzt. Das ESP-Modul benötigt ein eigenes Sketch, welches im Downloadbereich heruntergeladen werden kann. Das ESP-Modul verbindet sich mittels Serial mit der Zentralen-MCU. Anschluss ESP8266 WLAN-Modul:

  • Arduino UNO = Serial (0,1) [oder über Software Serial (11,12)]
  • Arduino MEGA = Serial2 (16,17)
  • andere = Serial (0,1)

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 WLAN-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. Um WLAN in der Zentrale zu aktivieren muss folgende Zeile einkommentiert werden: #define WIFI
Das ESP8266 stellt einen AcessPoint (AP) bereit. Über diesen kann mithilfe eines Webbrowser (http://192.168.0.111) die Standard-Einstellungen (SSID "Z21_ESP" und Passwort "12345678") und der WLAN Client-Betrieb (Client-Mode) an einem vorhandenen WLAN-Router konfiguriert werden. Wenn das S88-Interface genutzt wird, kann über das Webinterface auch die Modulanzahl angepasst werden.

Debugging (optional)

Um im Bedarfsfall interne Daten über den Serial Monitor überwachen zu können, gibt es dafür eine Debug-Ausgabe. Diese muss beim Arduino UNO und aktivem XpressNet oder WLAN komplett deaktiviert sein!
Aktiviert wird das Debugging mittels: #define Debug Serial
Einstellung welche Daten/Protokolle ausgegeben werden sollen:
#define DEBUG Ausgabe von Einstellungen und Softwareversion
#define REPORT Ausgabe der Zustände von S88 Rückmelder
#define LnDEB Ausgabe LocoNet Kommunikation
#define XnDEG Ausgabe XpressNet Kommunikation
#define Z21DEBUG Ausgabe Z21 Protokoll Kommunikation

Hardware MCUs (circuit diagram)

Die Arduino Z21 DCC Zentrale kann unter verschiedenen Mikroprozessoren eingesetzt werden. Dabei richtet sich die Auswahl nach den notwendigen Funktionen (Interfaces).

  1. Arduino UNO Z21 DCC Zentrale (ATmega328p) - small
  2. Arduino MEGA Z21 DCC Zentrale (ATmega2560) - medium
  3. Sanguino Z21 DCC Zentrale (ATmega1284p/ATmega644p) - big
  4. Arduino DUE Z21 DCC Zentrale (SAM3X8E 32-bit ARM) - fast

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.


Description

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. (Übersicht Arduino Mikroprozessoren)
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 Protokolle/Interface für dem Arduino UNO eingeschränkt (zu wenig RAM/ROM)!


Z21 WLAN Add-On Sketch

Diese Software ist für das WLAN WLAN Add-On (ESP8266) der Arduino Z21 DCC Zentrale notwendig. Sie muss in das ESP8266, mit Hilfe der Arduino IDE, hochgeladen werden. Die Software beinhaltet einen AJAX Webserver zur Konfiguration und die Option die S88-Modulanzahl zu ändern. Außerdem ist ein Reset Fall-back (Timeout) des Daten-Buffer für die Serial-Kommunikation zur Arduino Z21 DCC Zentrale implementiert. Zu beachten ist, dass es sich hierbei nur um das Sketch handelt welches für das WLAN-Modul notwendig ist, dies ist keine eigenständige Zentrale.
Info: Bei Konfigurationsänderungen am AccessPoint (AP) wird dieser beim Speichern automatisch neu gestartet - es erfolgt dadurch keine Rückmeldung oder Bestätigung des Speichervorgangs! Eine freie Kanalauswahl (1-13) für den AP ist nur möglich, wenn keine Client Verbindung besteht.
Fix v27: Akzeptiert jetzt auch eine SSID mit nur einem Zeichen.

Arduino Z21 DCC Zentrale Sketch

Änderungen:

  • Add Railcom und global Railcom Detektor über Serial3 für MEGA und I2C für UNO. Lesen von CV Daten über POM.
  • Optimierung der XpressNetMaster Bibliothek - CV lesen mit MultiMaus.
  • Add: Kurzschlusserkennung über "Current Sence" programmier ACK Widerstand möglich.
  • Anpassung LocoNet Bibliothek für den Umgang mit langen Lokadressen.


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


necessary libraries

Hier sind die notwendigen Bibliotheken aufgeführt. Nur damit ist das Sketch der DCC Zentrale lauffähig. Informationen wie ihr Bibliotheken installiert, findet ihr auf der Arduino Webseite (engl.).


Remedy

Note:
The software, circuits and layouts presented on this website can be used free for the private use,
commercial exploitation requires a written approval.