Als PDF ausgeben - Digital Modellbahn

Eigenbau | Zentrale | Z21 mobile | XpressNet | LocoNet | Booster
Inhaltsverzeichnis
1Beschreibung
2 Arduino Z21 mobile Anschlussmöglichkeiten
2.1Arduino Z21 DCC Zentrale (Multitalent)
2.2Z21 - LocoNet-Adapter
2.3Z21 - Slave am XpressNet
3ROCO Wartungstool
4 Z21 Anwendungen
4.1Z21 mobile - APP für Android und iOS (Gratis)
4.2Z21 PC - kompatible Steuersoftware
5 Arduino Z21 Library
5.1Download
5.2 Dokumentation
5.2.1Konfiguration
5.2.2Anwendung und Funktionen
Beschreibung
Implementierung des UDP Protokoll von ROCO/Fleischmann Z21 LAN für den Arduino mit Ethernet Shield
(Chipsatz W5100). Es ist damit möglich die Modelleisenbahn mit einem Smartphone, Tablet oder Computer
über WLAN/Netzwerk zu steuern.
Anders als bei der Z21 von ROCO ist es möglich mehr als zehn Smartphones, Computer und Tablets zu
nutzen!
Die Software würde auch mit einem Arduino ENC28J60 Ethernet Shield und der
UIPLibrary getestet,
aber diese Library kann nicht mit mehreren IP's kommunizieren, wodurch keine Z2
möglich ist! Bitte verwenden sie nur
das Ethernet Shield mit dem W5100 Chipsatz,
welches für 4,80? bei AliExpress
bestellt werden kann (Lieferzeit: ca. 5 Wochen).
Z21 LAN Protokoll:
Z21 LAN Protokoll Spezifikation V1.05
Page 1/6
Arduino Z21 mobile Anschlussmöglichkeiten
Arduino Z21 DCC Zentrale (Multitalent)
Anschlüsse der Z21 DCC
Zentrale
Die Arduino Z21 DCC Zentrale mit LAN, WLAN, Booster, S88N, XpressNet und LocoNet kann sehr
flexibel auf den jeweiligen Einsatzbereich angepasst werden. Mit dieser ist es möglich zum Beispiel einen
Adapter herzustellen um XpressNet Geräte am LocoNet anzuschließen (LocoNet to XpressNet Adapter).
Die Software, Hardware und Beschreibung zur Zentrale finden sie --> hier
Z21 - LocoNet-Adapter
Anschluss am LocoNet
über Intellibox
"Z21 mobile" als LocoNet-Slave wie ein FRED oder DAISY Handregler nutzen:
Die App kann auch für den Betrieb an einer Intellibox genutzt werden. Aufgabe des Loconet Adapters ist es,
die vom WLAN-Router empfangenen Signale, auf die Loconet-Schnittstelle der Intellibox zu übertragen.
Nachdem die Zentrale der Lok einen Slot zugeordnet hat, kann über die App die Lok angefragt werden. Der
Adapter schreibt dann direkt in diesen Slot die Steuerdaten der APP. Der im Adapter eingesetzte Arduino
UNO (ATmega328p) hat ausreichend Speicher für 120 LocoNet Slots und zusätzlich 30 IP-Adressspeicher.
In der Softwareversion 2 wurde zusätzlich ein XpressNet Master Interface integriert. Es können so auch
XpressNet-Geräte Steuerbefehle auf dem LocoNet erzeugen (z.B. für den Anschluss von
LokMaus2/MultiMaus an eine Intellibox).
Hardware: Zur Verbindung mit dem LocoNet-Protokoll, wird die auch dort beschriebene Hardware
Page 2/6
benötigt.
Schaltplan:
LocoNet schematic
XpressNet schematic
Software:
Hinweis: Bitte die neuere Software der Arduino DCC Zentrale
,
mit deaktiviertem LocoNet Slotserver (Client-Modus) verwendet werden.
Die Software ist mit der Arduino IDE geschrieben.
Arduino LocoNet DirectSlot Sketch Version 2 mit XpressNet Download
Arduino LocoNet DirectSlot Sketch Version 1 Download
Library:
Arduino LocoNet Library
Arduino XpressNet Master Library - notwendig für Softwareversion 2 mit XpressNet!
Z21 - Slave am XpressNet
Anschluss am XpressNet
über Roco Booster 10671,
10764 oder 10810
Mit einer LokMaus2 oder Multimaus als Master. Vergleichbare Steuerungen gibt es bereits von Lenz, diese
nutzt aber eine kostenpflichtige iOS APP.
Hardware: Zur Verbindung mit dem XpressNet-Protokoll, wird die auch dort beschriebene Hardware
benötigt. Die Netzwerkverbindung wird über ein W5100 Ethernet Shield hergestellt.
Software: Die Software ist mit der Arduino IDE geschrieben.
Arduino XpressNet Version 2 Sketch Download
Arduino XpressNet Version 1 Sketch Download
Page 3/6
Library:
Arduino XpressNet Client Library
ROCO Wartungstool
Für die Z21 gibt es eine Wartungssoftware (Z21 Maintenance). Mit dieser können Loks vom PC gesteuert
werden oder die IP-Adresse der Z21 geändert werden.
Beachte: Dieses Tool wird noch nicht von der Arduino Z21 Implementierung unterstützt!
Z21 Maintenance V1.10 - Tool
Z21 Maintenance V1.05 - Anleitung
Z21 Anwendungen
Z21 mobile - APP für Android und iOS (Gratis)
?Z21 mobile? Android-APP auf Google Play
?Z21 mobile? für iPhone und iPod touch im App Store von iTunes
?Z21 mobile HD? für das iPad im App Store von iTunes
"DigiTrains" Android-APP auf Google Play
Z21 PC - kompatible Steuersoftware
iTrain ab V3.0
Rocrail ab Rev. 4635
TrainController ab V8.0 B4
ModellStellwerk ab V8.20
JMRI DecoderPro ab V3.11
TrainProgrammer ab V8.0 D1
Arduino Z21 Library
Die Software ist für die Arduino IDE geschrieben. Die Arduino Z21 Library ist in C++ geschrieben und kann
mit verschiedenen Arduino's verwendet werden. Zur vereinfachten Kommunikation wurde eine Library
erstellt, welche die Kommunikation mit dem Z21 LAN Protokoll realisiert. Die Library selbst stellt dabei
keine Netzwerkkommunikation (LAN oder WLAN) her, sie dient lediglich dazu um die Empfangenen oder
zu sendenden Daten zu Dekodieren bzw. zu Kodieren.
Download
Z21 LAN Protokoll Library v1.2 (160118) Download - Arduino Z21 LAN Protokoll Library
Page 4/6
Dokumentation
Änderungen: Version 1.2
Anpassung LAN_LOCONET_DETECTOR
Fehlerbeseitigung bei der LAN Prüfsumme
Anpassung LAN_LOCONET_DISPATCH
Konfiguration
z21.h
Anzahl der Clients die gleichzeitig aktiv sind
#define z21clientMAX 30
Anzahl (in 2 Sekunden Schritten) bis Deaktivierung eines Clients
#define z21ActTimeIP 20
2s * 20 = 40 Sekunden
Anwendung und Funktionen
#include <z21.h>
Einbinden der Library
z21Class z21;
Erzeugen der Klasse
void setup()
z21.setPower(csNormal); Setzten des Gleisspannungszustand
void loop()
other public functions
void receive(uint8_t client, uint8_t *packet);
void setPower(byte state);
byte getPower();
unsigned long getz21BcFlag (byte flag);
LocoNet
void setLNDetector(byte *data, byte DataLen);
void setLNMessage(byte *data, byte DataLen, byte bcType, bool TX);
Basic Accessory (Zubehör Befehle)
void setTrntInfo(uint16_t Adr, bool State);
Lokomotiven
Page 5/6
void setLocoStateFull (int Adr, byte steps, byte speed, byte F0, byte F1, byte F2, byte F3,
bool bc);
S88
void setS88Data(byte *data);
C++ call back functions
void notifyz21EthSend(uint8_t client, uint8_t *data)
void notifyz21RailPower(uint8_t State)
LocoNet
void notifyz21LNdetector(uint8_t typ, uint16_t Adr)
uint8_t notifyz21LNdispatch(uint8_t Adr2, uint8_t Adr)
void notifyz21LNSendPacket(uint8_t *data, uint8_t length)
CV Programmierung
void notifyz21CVREAD(uint8_t cvAdrMSB, uint8_t cvAdrLSB)
uint8_t notifyz21CVWRITE(uint8_t cvAdrMSB, uint8_t cvAdrLSB, uint8_t value)
void notifyz21CVPOMWRITEBYTE(uint16_t Adr, uint16_t cvAdr, uint8_t value)
Basic Accessory (Zubehör Befehle)
uint8_t notifyz21AccessoryInfo(uint16_t Adr)
void notifyz21Accessory(uint16_t Adr, bool state, bool active)
Lokomotiven
void notifyz21getLocoState(uint16_t Adr, bool bc)
void notifyz21LocoFkt(uint16_t Adr, uint8_t type, uint8_t fkt)
void notifyz21LocoSpeed(uint16_t Adr, uint8_t speed, uint8_t steps)
S88
void notifyz21S88Data()
Philipp Gahtow - Digital Modellbahn - (pgahtow.de) | April 18, 2016
Page 6/6