Zentrale Z21PG/en: Unterschied zwischen den Versionen

Aus Digital Modellbahn
K
(Übernehme Bearbeitung einer neuen Version der Quellseite)
Zeile 49: Zeile 49:
 
<!--:*''[[Special:MyLanguage/media:DCC-Prog_Booster.png | separater Programmierausgang mit ACK - Schreiben und Lesen von Konfigurationsvariablen (CV)]] - ([http://sourceforge.net/projects/pgahtow/files/Booster/Prog-Booster/Prog-Booster.sch/download Eagle])-->
 
<!--:*''[[Special:MyLanguage/media:DCC-Prog_Booster.png | separater Programmierausgang mit ACK - Schreiben und Lesen von Konfigurationsvariablen (CV)]] - ([http://sourceforge.net/projects/pgahtow/files/Booster/Prog-Booster/Prog-Booster.sch/download Eagle])-->
 
<!--:*''Stromsensor ACS712t für integrierten Booster - Auslesen der Gleisbelastung''-->
 
<!--:*''Stromsensor ACS712t für integrierten Booster - Auslesen der Gleisbelastung''-->
:*''[[Special:MyLanguage/Railcom|RailCom® Detector]]''
+
:*''Umbauanleitung für XpressNet ROCO MultiMaus zu einer WLAN MultiMaus''
 +
:*''Unterstützung des Arduino DUE als leistungsfähige Hardwarebasis für die Zentrale''
 
<!--:*''WLAN-Interface Verbindung über SPI (für Arduino UNO) - als Ablösung für Software Serial-->
 
<!--:*''WLAN-Interface Verbindung über SPI (für Arduino UNO) - als Ablösung für Software Serial-->
 
<!--:*''Vielleicht'': [http://de.aliexpress.com/item/3-5-inch-LCD-screen-HMI-USART-module-3-5-inch-screen-with-intelligent-serial-serial/32602862294.html?spm=2114.010208.3.28.7OvH50&ws_ab_test=searchweb201556_2,searchweb201644_1_505_506_503_504_301_502_10001_10002_10016_10017_10010_10005_10011_10006_10003_10004_10009_10008,searchweb201560_2,searchweb1451318400_-1,searchweb1451318411_6449&btsid=daec4971-95eb-4e2f-98f1-d12c9eb906c4 Nextion UART 3,5" TFT Touchscreen in der Zentrale zum Steuern und Programmieren?]-->
 
<!--:*''Vielleicht'': [http://de.aliexpress.com/item/3-5-inch-LCD-screen-HMI-USART-module-3-5-inch-screen-with-intelligent-serial-serial/32602862294.html?spm=2114.010208.3.28.7OvH50&ws_ab_test=searchweb201556_2,searchweb201644_1_505_506_503_504_301_502_10001_10002_10016_10017_10010_10005_10011_10006_10003_10004_10009_10008,searchweb201560_2,searchweb1451318400_-1,searchweb1451318411_6449&btsid=daec4971-95eb-4e2f-98f1-d12c9eb906c4 Nextion UART 3,5" TFT Touchscreen in der Zentrale zum Steuern und Programmieren?]-->
 
  
 
===Notes===
 
===Notes===
Zeile 86: Zeile 86:
 
With the [[Special:MyLanguage/DCC_Dekoder|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 <code>#define DECODER</code> inside of the sketch.
 
With the [[Special:MyLanguage/DCC_Dekoder|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 <code>#define DECODER</code> inside of the sketch.
  
 +
'''''Wird in den aktuellen Versionen nicht mehr unterstützt!'''''
  
 
===<u>XpressNet Interface with external booster support</u>===
 
===<u>XpressNet Interface with external booster support</u>===
Zeile 107: Zeile 108:
 
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 [[Special:MyLanguage/FredI|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 [[Special:MyLanguage/Loconet|LocoNet Library]] nutzt zur Signalerzeugung im Arduino UNO den Timer 1 und im Arduino MEGA den Timer 5. Aktiviert wird das LocoNet-Interface mittels: <br>
 
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 [[Special:MyLanguage/FredI|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 [[Special:MyLanguage/Loconet|LocoNet Library]] nutzt zur Signalerzeugung im Arduino UNO den Timer 1 und im Arduino MEGA den Timer 5. Aktiviert wird das LocoNet-Interface mittels: <br>
 
<code>#define LOCONET <br> #include <LocoNet.h> </code> <br>
 
<code>#define LOCONET <br> #include <LocoNet.h> </code> <br>
Der Slot-Server kann mittels <code>#define LnSLOTSRV </code> zugeschaltet werden. Sollen alle Lokinformationen im LocoNet (auch ohne Anfragen) übermittelt werden, muss <code> #define TXAllLokInfoOnLN true </code> gesetzt werden. Dies kann sinnvoll sein, wenn eine Steuerungssoftware über LocoNet mit der Zentrale kommuniziert. <br>
+
Der Slot-Server kann mittels <code>#define LnSLOTSRV </code> zugeschaltet werden. Für den Betrieb als LocoNet Client muss der Slot-Server inaktiv sein. Sollen alle Lokinformationen ins LocoNet (auch ohne explizite Anfragen) übermittelt werden, muss <code> #define TXAllLokInfoOnLN true </code> gesetzt werden. Dies kann sinnvoll sein, wenn eine Steuerungssoftware über LocoNet mit der Zentrale kommuniziert. <br>
<u>Beachte:</u> Das LocoNet-Interface unterstützt derzeit nur die Funktionen F0 bis F8!  
+
<u>Beachte:</u> Das LocoNet-Interface unterstützt jetzt auch die Funktionen bis F28!
 
 
  
 
===<u>S88N</u>===
 
===<u>S88N</u>===
Zeile 119: Zeile 119:
 
===<u>internal Booster</u>===
 
===<u>internal Booster</u>===
  
[[Datei:TLE5205-2_Booster.png|thumb|160px|TLE5205-2g Booster]]
+
[[Datei:TLE5205-2_Booster.png|thumb|160px|TLE5205-2g Booster3 ''('''Nicht mehr aktuell!''' - siehe [[Booster#Booster3R|TLE Booster3R mit RailCom]])'']]
 
Ein einfacher und sehr kostengünstiger [[Special:MyLanguage/Booster|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. Die Aktivierung im Sketch erfolgt mittels: <br>
 
Ein einfacher und sehr kostengünstiger [[Special:MyLanguage/Booster|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. Die Aktivierung im Sketch erfolgt mittels: <br>
 
<code>#define BOOSTER_INT <br> #define BOOSTER_INT_ON LOW <br> #define BOOSTER_INT_OFF HIGH </code> <br>
 
<code>#define BOOSTER_INT <br> #define BOOSTER_INT_ON LOW <br> #define BOOSTER_INT_OFF HIGH </code> <br>
Zeile 128: Zeile 128:
  
 
[[Datei:TLE_Booster3R.png|thumb|160px|TLE Booster3R für Railcom ([http://sourceforge.net/projects/pgahtow/files/Booster/Version3/TLE%20Booster3R.sch Eagle])]]
 
[[Datei:TLE_Booster3R.png|thumb|160px|TLE Booster3R für Railcom ([http://sourceforge.net/projects/pgahtow/files/Booster/Version3/TLE%20Booster3R.sch Eagle])]]
 +
[[Datei:Z21_globalRailComDetector.png|thumb|160px|global RailCom Detector ([http://sourceforge.net/projects/pgahtow/files/Z21_mobile/DCC_Zentrale/global_RailCom_Detector_Z21.sch Eagle])]]
 
Ab der Softwareversion v4.70 ist es möglich [[Special:MyLanguage/Railcom|Railcom]] zu aktivieren. Um die für [[Special:MyLanguage/Railcom|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:  
 
Ab der Softwareversion v4.70 ist es möglich [[Special:MyLanguage/Railcom|Railcom]] zu aktivieren. Um die für [[Special:MyLanguage/Railcom|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,
 
:*DCC '''=>''' DCC1,
Zeile 133: Zeile 134:
 
:*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 RAILCOM </code> <br>
+
<code>#define BOOSTER_INT_NDCC</code> <br>
 +
RailCom selbst kann über folgende Zeile 'aktiviert' werden: <br>
 +
<code>#define RAILCOM</code><br>
 +
Zur Anzeige der Stromaufnahme muss <Code>#define BOOSTER_INT_MAINCURRENT</Code> aktiviert werden.
 +
<br>
  
Damit ist nun auch möglich eine andere H-Brücke (zum Beispiel L6206N) zu verwenden. (Die Kurzschlusserkennung mittels SENCE muss dafür allerdings angepasst 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 [[Special:MyLanguage/Railcom|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.
  
 
===<u>WiFi (WLAN Add-On)</u>===
 
===<u>WiFi (WLAN Add-On)</u>===
Zeile 179: Zeile 185:
 
# [[Special:MyLanguage/Z21 Arduino Zentrale (Atmega2560)|Arduino MEGA Z21 DCC Zentrale (ATmega2560) - medium]]
 
# [[Special:MyLanguage/Z21 Arduino Zentrale (Atmega2560)|Arduino MEGA Z21 DCC Zentrale (ATmega2560) - medium]]
 
# [[Special:MyLanguage/Z21 Arduino Zentrale (Atmega1284p)|Sanguino Z21 DCC Zentrale (ATmega1284p/ATmega644p) - big]]
 
# [[Special:MyLanguage/Z21 Arduino Zentrale (Atmega1284p)|Sanguino Z21 DCC Zentrale (ATmega1284p/ATmega644p) - big]]
 
  
 
== [http://sourceforge.net/projects/f944.pgahtow.p/files/ Software] ==
 
== [http://sourceforge.net/projects/f944.pgahtow.p/files/ Software] ==
Zeile 196: Zeile 201:
 
==== <u>Z21 WLAN Add-On Sketch</u> ====
 
==== <u>Z21 WLAN Add-On Sketch</u> ====
  
:* [http://sourceforge.net/projects/f944.pgahtow.p/files/wlan_sketch/Z21_ESPArduinoUDP_v26.ino Z21 ESP8266 UDP v26 Sketch (19.07.16) 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.
+
'''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.
  
 
==== <u>Arduino Z21 DCC Zentrale Sketch</u> ====
 
==== <u>Arduino Z21 DCC Zentrale Sketch</u> ====
  
:*[http://sourceforge.net/projects/f944.pgahtow.p/files/Z21_Ethernet_DCC_Zentrale_v471.zip Arduino simpleZ21 DCC Zentrale v4.71 (22.11.16) Download]
+
:*[https://sourceforge.net/projects/f944.pgahtow.p/files/Z21_Ethernet_DCC_Zentrale_v480.zip/download Arduino Z21 DCC Zentrale v4.80 (06.03.18) Download]
 
Änderungen:
 
Änderungen:
* Add [[Special:MyLanguage/Railcom|Railcom]] und global Railcom Detektor (I2C)
+
* Add [[Special:MyLanguage/Railcom|Railcom]] und global Railcom Detektor über Serial3 für MEGA und I2C für UNO. Lesen von CV Daten über POM.
* Add POM lesen
+
<!--
 
* Fix XpressNet Kommunikation
 
* Fix XpressNet Kommunikation
 
* Fix Kommunikation im LocoNet-Client Modus mit der Intellibox (Fahrtrichtungsproblem).
 
* Fix Kommunikation im LocoNet-Client Modus mit der Intellibox (Fahrtrichtungsproblem).
Zeile 211: Zeile 217:
 
* LocoNet mit Slotserver (Master/Slave Betrieb) - Zum Beispiel als LocoNet Slave an einer Intellibox (ab Arduino DCC Interface Library ab v2.2!)
 
* 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.
 
* Weichen über LocoNet steuerbar und Anpassung der LocoNet Nachrichtenübertragung ins Z21-Protokoll.
 +
-->
 +
* 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.
 +
 
<br>
 
<br>
 
'''''Ältere Versionen können über Sourceforge heruntergeladen werden:'''
 
'''''Ältere Versionen können über Sourceforge heruntergeladen werden:'''
Zeile 246: Zeile 257:
 
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 [https://www.arduino.cc/en/Guide/Libraries#toc4 Arduino Webseite (engl.)].
 
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 [https://www.arduino.cc/en/Guide/Libraries#toc4 Arduino Webseite (engl.)].
 
* [[Special:MyLanguage/Z21_mobile#Download|Arduino Z21 LAN Protokoll Library]] - Arduino Z21 LAN Protokoll Library - Neu: POM read byte!
 
* [[Special:MyLanguage/Z21_mobile#Download|Arduino Z21 LAN Protokoll Library]] - Arduino Z21 LAN Protokoll Library - Neu: POM read byte!
*[[Special:MyLanguage/DCC#Download|Arduino DCC Interface Library]] - NEU: Support von Railcom.
+
*[[Special:MyLanguage/DCC#Download|Arduino DCC Interface Library]] - NEU: Support von Railcom und zusätzlicher invertierter DCC Ausgang.
 
<!--
 
<!--
 
::=> Für Zentrale ab Softwareversion 31 nötig!
 
::=> Für Zentrale ab Softwareversion 31 nötig!
Zeile 252: Zeile 263:
 
::=> Für Zentrale bis zur Softwareversion 3 einsetzbar.
 
::=> Für Zentrale bis zur Softwareversion 3 einsetzbar.
 
-->
 
-->
* [[Special:MyLanguage/XpressNet#XpressNet_Master|Arduino XpressNet Master Library]]
+
* [[Special:MyLanguage/XpressNet#XpressNet_Master|Arduino XpressNet Master Library]] - Neu: Automatisches wechseln zwischen Master und Client Modus
 
* [[Special:MyLanguage/Loconet#Download|Arduino LocoNet Library]]
 
* [[Special:MyLanguage/Loconet#Download|Arduino LocoNet Library]]
  

Version vom 13. September 2018, 17:34 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:

  • Umbauanleitung für XpressNet ROCO MultiMaus zu einer WLAN MultiMaus
  • Unterstützung des Arduino DUE als leistungsfähige Hardwarebasis für die Zentrale

Notes

  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) problem: LocoNet interface controls only function F0 to F8
  • Problems with the XpressNet communication when connection Lenz hardware LH100 or LH01.

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 oder #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.

Wird in den aktuellen Versionen nicht mehr unterstützt!

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)

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. Aktiviert wird das LocoNet-Interface mittels:
#define LOCONET
#include <LocoNet.h>

Der Slot-Server kann mittels #define LnSLOTSRV zugeschaltet werden. Für den Betrieb als LocoNet Client muss der Slot-Server inaktiv sein. Sollen alle Lokinformationen ins LocoNet (auch ohne explizite Anfragen) übermittelt werden, muss #define TXAllLokInfoOnLN true gesetzt werden. Dies kann sinnvoll sein, wenn eine Steuerungssoftware über LocoNet mit der Zentrale kommuniziert.
Beachte: Das LocoNet-Interface unterstützt jetzt auch die Funktionen bis F28!

S88N

Arduino S88 Singel Master Schaltplan

Rückmeldungen können mit dem S88N-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. Aktiviert wird das S88-Interface mittels:
#define S88N
Hinweis: Ab ca. 5 Modulen sollte ein Ausgangstreiber 74HC244 für den S88 Bus verwendet werden.

internal Booster

TLE5205-2g Booster3 (Nicht mehr aktuell! - siehe TLE Booster3R mit RailCom)

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. Die Aktivierung im Sketch erfolgt mittels:
#define BOOSTER_INT
#define BOOSTER_INT_ON LOW
#define BOOSTER_INT_OFF HIGH

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. Für eine Datenausgabe mit RailCom muss zwingend die Hardware des Booster3R verwendet werden.

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

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) - smal
  2. Arduino MEGA Z21 DCC Zentrale (ATmega2560) - medium
  3. Sanguino Z21 DCC Zentrale (ATmega1284p/ATmega644p) - big

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.