SxNano

1. Lokadressen:
Wenn nach dem Start zum ersten Mal die Gleisspannung eingeschaltet wird, werden aus dem EEprom die Loknummern geladen und in die Sx-Adressen des Schattenbahnhofs geschrieben und dadurch in dem Steuerungsprogramm automatisch angezeigt. Zum Steuern einer Lok kann der Gleisbelegtmelder angeclickt werden und der Fahrregler der Lok wird geöffnet. Ebenso funktioniert damit auch der automatische Betrieb nach Fahrplan ohne irgend etwas einstellen zu müssen.

Wenn das Programm auch die Anzeige der Fahrtrichtung unterstützt, muß zuvor die Fahrtrichtung der Lok mit abgespeichert werden. Dazu wird bei der Loknummer, wenn diese Tender voraus auf dem Gleis steht, Bit 8 gesetzt.

Die Programmierung der Lokadresssen geschieht nach bekanntem Muster:

  • Prog Taster drücken
    es werden alle! Lokadressen auf den Sx-Bus geschrieben
  • Lokadressen einstellen/änder
  • Prog Taster drücken
  • Die Daten werden ins EEprom geschrieben.

2. Fahrstraßen:
Zusätzlich zur Ausgabe der Lokadressen können noch 20 Fahrstraßen mit bis zu 8 Weichen geschaltet werden. Diese Informationen liegen in einem Array direkt im Arduino und werden einmalig fix programmiert, da der Gleisplan sich ja nicht so einfach über Nacht ändert.

Zuletzt geändert am 31.12.2017

Interface

Bei meiner ersten Zugerkennung hatte jedes Gleis im Schattenbahnhof eine eigene Lesestelle benötigt um die Loknummer zu erkennen und zu speichern.
Aber es geht auch anders wenn man als  Bedingungen voraus setzt, daß jeder Zug sein festes Abstellgleis hat, auf das er spätestens nach Betriebsende dorthin zurück kehrt

Der Decoder hat drei Funktionen:
1. er schreibt die gespeicherten Lokadressen beim Programmstart auf den Sx-Bus
2. er kommuniziert mit externen Geräten über die UART-Schnittstelle.
3. er stellt die Weichen entsprechend der gewählten Fahrstraße über den Sx-Bus

Der Decoder kann mit allen Geräten die eine Schnittstelle besitzen kommunizieren.
- ESP8266
- RaspberryPi

3. Interface:
Hierbei handel es sich nicht um ein gewöhnliches Interface, bei dem einfach nur Daten auf den SxBus geschrieben bzw von diesem gelesen werden.
Dieses Interface arbeitet entsprechend den empfangenen Kommandos ganze Befehlsketten selbständig ab und sendet nur ausgewählte Informationen zurück.

Das Datenformat sieht dabei wie folgt aus:
AdrXXXDataYYY

Die empfangenen Strings lösen folgende Aktionen aus:
AdrXXDataYYY steuert Loks/Weichen XX mit den Werten YYY
Adr109Data1 schaltet die Gleisspannung um
Adr230DataYY, setzt YY als aktive Lok1
Adr231DataYY, YY = 2 , Lok1 weiter blättern , YY = 1 Lok1 zurück blättern
Adr232DataYY, YY = 2 , Lok1 schneller , YY = 1 Lok1 langsamer
Adr255DataYY löst die Fahrstrasse YY aus.
Hierbei werden bis zu 8 Weichen nacheinander geschaltet (siehe links unter Punkt2).
Ist eine Lokadresse mit dieser Fahrstraße verknüpft wird diese im Handregler als Lok übernommen und kann gesteuert werden.

Im Gegenzug werden Strings zurück gesendet, wenn sich in gewissen Adressen die Daten auf dem Sx-Bus verändern:
Adr109DataY
Y = Gleisspannung
AdrXXDataYYY
XX = 40, 50, 60 = Gleisbelegtmelder
YYY = Dateninhalt der Adresse
Adr230DataYY
YY = aktive Lok1
Adr231DataYY
YY = 1 runter scrollen ; YY = 2 hoch scrollen
Adr232DataYY
YY = 1 Geschwindigkeit verringern ; YY = 2 Geschwindigkeit erhöhen
Adr255DataYY
YY = die geschaltete Fahrstrasse
Desweiteren gibt es einige Spezialitäten:
Schaltet man die Gleisspannung das erste Mal ein werden die im EEprom gespeicherten Daten in die Adressen 41-49, 51-59 und 61-68 auf den Sx-Bus geschrieben (siehe links unter Punkt1).

Belegung ab Version 3.2

Buchsenleiste
links

Arduino
I/O

Funktion

1

Vin

12V

2

5V

 

3

D 1

Rx

4

D 0

Tx

5

RST

 

6

GND

 

7

D 2

Takt

8

D 3

SchreibenH

9

D 4

Lesen

10

D 5

Gleis-Led

11

D 6

SchreibenL

12

D 7

EEpromLed

13

D 8

 

14

D 9

 

15

D 10

 

16

D 11

 

17

D12

 

18

D13

Prog-Led

19

3V3

 

20

GND

GND

Buchsenleiste
rechts

Arduino
I/O

Funktion

1

-

 

2

-

 

3

-

 

4

-

 

5

GND

GND

6

100 Ohm

 

7

A 5

 

8

A 4

 

9

A 3

 

10

A 2

 

11

-

 

12

A7

 

13

A6

ProgTast

14

-

 

15

A 1

 

16

GND

 

17

A 0

 

18

100 Ohm

 

19

5V

 

20

GND

 

Impressum

Copyright (c) 2000-2019 Frank Keil

Datenschutz