RE: LGB 55000 mit Raspberry PI steuern

#1 von Kaladum , 30.01.2021 18:39

Hallo Modellbahnfreunde,

ich hab als Kind viel, zusammen mit meinem Vater, mit unserer LGB-Anlage gespielt. Diese stand nun >10 Jahre ungenutzt im Keller. Jetzt haben wir gemeinsam beschlossen die mal wieder flott zu machen. Das hat auch super funktioniert.

Wir haben beide einen IT-Hintergrund und deshalb ist es jetzt mein Ziel die Weichen über einen Raspberry-PI oder Arduino steuern zu können. Daran arbeite ich seit Mitte Dezember mit durchwachsenem Erfolg.

Vorhanden ist:


LGB-55000 (Zentrale)
LGB-50110 (Transformator)
LGB-55015 (Handy)
2* Lockmaus (vmtl. LGB-55010)
Anlage im Keller mit x Loks und Weichen.
Raspberry PI 3B+
Arduino Uno und Zero


Mein Plan ist es die Signale des Lok-Handys selbst zu erzeugen, um damit die Weichen zu schalten. Leider habe ich bisher keine Spezifikation über den verwendeten Daten-BUS gefunden. Ich habe deshalb ein Adapterkabel gebastelt und einen Arduino als "Oszilloskop" an die Leitung gehängt. Mit diesem konnte ich die Signale aufzeichnen und selbst erzeugen. Ich schaffe es auch meine Testweiche damit zu schalten (juhu), aber leider nur mit einer Erfolgsquote von unter 10% (Mist). Um damit eine funktionstüchtige Software zu schreiben, reicht das natürlich nicht.

Inzwischen ärgere ich mich seit Wochen mit Spannungen, Zeiten, Vorwiderständen, Dioden und allem Möglichen rum. Leider ohne Erfolg. Deshalb bin ich kurz davor aufzugeben. Bevor ich das Mache, habe ich aber beschlossen hier mal, um Hilfe zu bitten.

Hat eine von euch eine Idee wie das Protokoll spezifiziert ist? Oder gibt es vllt. andere Projekte oder Komponenten um sowas zu realisieren?

Für Ideen und Hilfe bin ich sehr dankbar!

PS:
Hier ist für die Technikfreaks was ich bisher herausgefunden habe.


Die Datenübertragung findet zwischen zwei Pins mit einer Amplitude von etwa 5V statt.
Die Dauer der HIGH und LOW Zustände sind vielfache von etwa 416 Mikrosekunden.

Hier ist eine Beispielmessung für Weiche 27 nach Links
BUS hat 0V
Signal, nachdem die Taste gedrückt wurde:
416, 1236, 824, 1644, 416, 416, 408, 2064, 404 (HIGH für 416μs, LOW für 1236μs, HIGH für 826μs, usw...)
BUS hat wieder 0V solange die Taste noch gedrückt ist.
Signal, nachdem die Taste gelöst wurde:
416, 1240, 820, 1644, 416, 416, 408, 416, 408 (siehe oben)
BUS hat wieder 0V

Wenn ich ein von mir erzeugtes und ein vom Lok-Handy erzeugtes Signal messe und gemeinsam Plotte, sehen die Signale nahezu perfekt identisch aus. Meine Amplitude ist nur etwa 100mV über der originalen. Wenn ich den Arduino so einstelle, dass er die Flanken zählt, habe ich bei meinem Signal regelmäßig das Problem, dass er 2 Flanken statt einer zählt (12,404) statt (416). Ich vermute, dass die eigentlich nötige dritte Flanke fehlt weil der Arduino noch im Interrupt der 1. Flanke ist und die 2. damit übersieht. Ich denk, dass entweder dass das Problem ist, oder dass ich meine Signale einfach zu einem "falschen" Timing starte.


Kaladum  
Kaladum
Beiträge: 3
Registriert am: 30.01.2021


RE: LGB 55000 mit Raspberry PI steuern

#2 von bertr2d2 , 30.01.2021 23:42

Hallo Kaladum,

sieht nach 2400 Baud RS485 aus. Kontaktiere doch mal den Autor dieser Seite:
http://michelswunderland.de/control/index.html

Nachtrag:
Die Zahlenkolonnen sind nicht leicht zu interpretieren. Sinnvollerweise wäre hier Bilder aufschlussreicher. Mittels Sigrok bzw. Pulseview kann man solche Grafiken leicht erstellen - auch mit Arduino. Und neben bei auch noch analysieren.
Dazu passend noch ein Logic-Analysator - gibt es für schmales Geld z.B. hier:
https://www.az-delivery.de/products/sale...d3110d33e&_ss=r
So ein günstiger Logic-Analysator gehört in die Technik-Ausstattung eines ambitionierten Elektronik Bastlers.

Gruß

Gerd


Smallest Rocrail Server Ever II ist jetzt Smallest Railroad Server Ever II
SRSEII -> SRSEII (Raider heisst jetzt Twix, sonst ändert sich nix )


bertr2d2  
bertr2d2
CityNightLine (CNL)
Beiträge: 1.545
Registriert am: 09.10.2012
Spurweite H0
Stromart Digital


RE: LGB 55000 mit Raspberry PI steuern

#3 von Kaladum , 07.02.2021 12:48

Hallo Gerd,

vielen Dank für deine Antwort. Die Idee mit dem Logikanalysator war echt gut. Danke! Ich werde mir bestimmt bald mal einen richtigen zulegen. Derzeit nutze ich erstmal einen Arduino Uno mit entsprechender Software. Geht erstaunlich gut. Ich hab die Woche über reichlich rumprobiert und war immer der Meinung "ach morgen funktioniert das". Deshalb hab ich auch eine Antwort immer verschoben.

Zwischendurch hatte ich aber noch einen wichtigen Durchbruch. Die BUS-Leitung, die ich bisher einfach für 12V Stromversorgung gehalten habe, enthält ebenfalls Daten. Ich bin nur durch Verzweiflung drauf gestoßen.

Insgesamt sieht das Signal so aus:


Channel 0 ist die -12V Spannungsversorgung mit Signal von der Zentrale. (Invertiert durch meine Schaltung)
Channel 1 ist die 5V Datenleitung für die Signale der Handregler.
Der mitgeschnittene Befehl ist Weiche 27 Links.

Ich gehe jetzt davon aus, dass die Zentrale einem Regler die Sprecherlaubnis erteilt und dieser daraufhin in der nächsten Pause sendet. Das erklärt auch meine Probleme. Ich hab einfach irgendwann gesendet. Ich arbeite aktuell daran das Signal mit einem Arduino so nachzubauen.

Bei MichelsWunderland hab ich mich erstmal nicht gemeldet. Ich hab aber auch nicht das Gefühl, dass der irgendwie ähnlich Hardware verwendet.

Vielen Dank schon mal für die Hilfe

Kaladum


Kaladum  
Kaladum
Beiträge: 3
Registriert am: 30.01.2021


RE: LGB 55000 mit Raspberry PI steuern

#4 von Pirat-Kapitan , 14.02.2021 21:48

Zitat

deshalb ist es jetzt mein Ziel die Weichen über einen Raspberry-PI oder Arduino steuern zu können.


Moin,
irgendwie bzw. irgendwo fehlt mir in Deinem Konzept noch der Weichendecoder (beim digitalen Stellen der Weichen) oder die Adressierung einer analogen Stellvorrichtung passend auf die jeweilige Weiche. Letzteres betrachte ich mal nicht weiter, bleibt also der fehlende Weichendecoder, der abhängig von der Weichenadresse den Stellimpuls (Halbwelle positiv oder negativ) an den EPL-Antrieb der Weiche gibt.

Wenn Du einen RasPi als "Weichendecoder" einsetzen willst, kommen als "Decoderausgänge" nur GPIOs mit Ausgangsfähigkeit (Pegelwechsel low - high) in Frage, mit entsprechender Umsetzelektronik auf o.a. Halbwelle (10V !). Wie Du den passenden GPIO mit dem Lokhandy (das ja "nur" ein DCC Signal "erzeugen" kann, auslöst, überlasse ich Deinem Gehirn.
Hinzu kommt, dass das Lokhandy nur Loks steuern kann, aber nicht für eine Schaltung von Weichen vorgesehen ist (das würde das Universalhandy erfordern). Also wirst Du bei Verwendung des Lokhandys je Weiche eine der durchaus spärlich vorhandenen Lokadressen opfern müssen oder die beim Lokhandy verwendbaren Funktionstasten mit einbeziehen müssen.

Details zum DCC Protokoll würde ich bei der entsprechenden Normungsstelle (NMRA) nachschlagen.

Als Gehirnschmalztraining sicherlich eine interessante Aufgabe, ob es nicht sinnvoller wäre, eine zeitgemäße Zentrale anstelle der Steinzeittechnologie LGB MZS I (bitte unbedingt die Fähigkeitsbegrenzungen der Zentrale beachten ! Anzahl möglicher Lokadressen, serielle Funktionsauslösung ["LGB-Morsen]) zu nutzen, würde ich persönlich mir VORHER überlegen.

Schöne Grüße
Johannes
PS: ich habe seinerzeit (1997) auch mit der LGB MZS I, allerdings mit Lokmäusen und dem Universalhandy, angefangen.
Arduino kann ich nicht, daher kein Kommentar zu seinen Möglichkeiten für dieses Projekt.


Spur G im Garten, H0m im Hause. Lenz LZV100 mit Rocrail auf RasPi, Manhart-Funky und RocoWLM.


Pirat-Kapitan  
Pirat-Kapitan
CityNightLine (CNL)
Beiträge: 1.586
Registriert am: 13.05.2018
Ort: Bergisches Land
Gleise Edelstahl / TT-Bettungsgleis Tillig
Spurweite H0, H0m, N, G
Steuerung Lenz LZV100
Stromart Digital


RE: LGB 55000 mit Raspberry PI steuern

#5 von volkerS , 15.02.2021 07:30

Hallo Kaladum,
du musst zwischen physikalischer Ausführung und Software unterscheiden. Soweit ich mich erinnern kann gibt es zwischen der Lokmaus und Zentrale eine RS485-Schnittstelle, also symmetrische Datenübertragung auf 2 Signaladern. Ob das dann ein serielle Protokoll ala RS232 oder CAN war?
Du müsstest 2 Signaladern finden, wo bei der einen Ader die Impulskette genau gespiegelt zur anderen Ader ist.
Entweder diese beiden Adern über einen entsprechenden Wandler IC (z.B. SN75176) dem uC zuführen oder nur die 0°- Ader. Die 180° Ader (invertierte Ader) bleibt dann unbeschaltet.
LGB verwendete zumindest zu Zeiten der Lokmaus 55010 ein DCC-Protokoll das sich LGB-Pulskette nannte (serielle Datenübertragung), dies weicht erheblich vom normgerechten DCC-Signal ab.
Volker


volkerS  
volkerS
ICE-Sprinter
Beiträge: 5.987
Registriert am: 14.10.2014


RE: LGB 55000 mit Raspberry PI steuern

#6 von Pirat-Kapitan , 15.02.2021 11:21

Zitat

LGB verwendete zumindest zu Zeiten der Lokmaus 55010 ein DCC-Protokoll das sich LGB-Pulskette nannte (serielle Datenübertragung), dies weicht erheblich vom normgerechten DCC-Signal ab.


Moin Volker,
das würde ich so nicht unterschreiben.
Es ist eine auf die Funktionstaste F1 beschränkte Funktionsauslösung, die für "höhere" Funktionen mit entsprechender Anzahl getaktet übertragen wird.
Also:
seriell F3 (z.B. Für den Sound der F7) läßt sich auch mit einer LZV100 von Lenz dadurch erzeugen, dass die Taste F1 3 x im Sekundenabstand (ungefährer Zeitraum) betätigt wird. natürlich muss man mitzählen, bei F7 oder F8 habe ich mich regelmäßig verzählt.
Aber die Datenübertragung entspricht für den Bereich F1 der DCC-Norm.

Die Datenübertragung zwischen Lokmaus / Lokhandy und MZS I erfolgte auf einem speziellen "LGB" Bus.
An die MZS I konnte auch eine Roco Lokmaus 1 angeschlossen werden, ggf. sind darüber Informationen zum Bus zu bekommen.

Vielleicht legt ja auch Lenz auf Anfrage die Beschreibung des "LGB Busses" offen, Lenz hatte ja seinerzeit die MZS I für LGB hergestellt.

Schöne Grüße
Johannes


Spur G im Garten, H0m im Hause. Lenz LZV100 mit Rocrail auf RasPi, Manhart-Funky und RocoWLM.


Pirat-Kapitan  
Pirat-Kapitan
CityNightLine (CNL)
Beiträge: 1.586
Registriert am: 13.05.2018
Ort: Bergisches Land
Gleise Edelstahl / TT-Bettungsgleis Tillig
Spurweite H0, H0m, N, G
Steuerung Lenz LZV100
Stromart Digital


RE: LGB 55000 mit Raspberry PI steuern

#7 von Kaladum , 18.02.2021 21:27

Hallo zusammen,

vielen Dank für die netten Nachrichten. Inzwischen kann ich übrigens Erfolg vermelden. Ich kann meine Test-Weiche zuverlässig und vom Browser aus schalten. Es fehlen noch andere Weichen aber da muss ich nur Adressen austauschen denke ich.

Zusammenfassung
Ich glaube allerdings euch ist noch nicht so ganz klar was ich genau mache. Deshalb noch mal zusammengefasst. (Vllt. stoßen andere beim Googeln darauf)
Ich schalte Weichen in dem ich ein LGB-Universalhandy(55015) Simuliere. Ich habe also mit DCC nichts zu tun, weil ich nur ein Eingabegerät simuliere. Das Gleissignal erzeugt wie bisher die Zentrale. Vereinfacht gesagt habe ich die Schaltsignale des Universalhandys mitgeschnitten und wiederhole diese jetzt einfach. Die Aufgabe übernimmt ein Arduino Nano, weil der die benötigten 5V am GPIO Pin liefert. Die spätere Benutzeroberfläche (Webinterface mit Node.js) läuft auf einem Raspberry Pi. Der sendet dem Arduino über USB Nachrichten, die dieser dann an die Zentrale sendet.

Derzeit ist das Bitmuster für Weiche 27 nach Rechts/Links noch fest im Arduino hinterlegt. Ich denke, dass ich am WE noch einbauen werde, dass er komplette Signale vom Raspberry bekommt und nicht nur einfach ein "jetzt senden" Signal. Wenn das erledigt ist, ist der Teil komplett abgeschlossen. Ich muss dann "nur noch" die Nachrichten für andere Weichen mitschneiden oder die Logik dahinter rausfinden. Und natürlich noch ein schönes User-Interface im Browser basteln.

Ein Wort der Warnung noch falls einer das mal jemand nachbauen will. Vergesst nicht auch die Nachricht zu senden, die sonst beim Loslassen der Taste erzeugt wird. Ich vermute, die wird irgendwie zum Abschalten des Steuerungsmotors verwendet. Mir ist deshalb zwischendurch ein Weichenantrieb heiß geworden.

Das Projekt hat so weit bisher ganz gut funktioniert. Ich bin nur zwischendurch verzweifelt, weil mein Signal anfangs in 90 % der Fälle ignoriert wurde und ich absolut nicht verstanden habe warum. Funktioniert hat es erst als ich gemerkt habe, dass die Zentrale auf einem anderen Pin Signale an das Universalhandy sendet und damit eine Art Takt vorgibt und bestimmt, wer gerade sprechen darf. Details dazu waren in meinem letzten Post.

Alternative:
Die Idee von Johannes mit der modernen Zentrale hatte ich durchaus auch schon. Ich hab zu Beginn beschlossen das erstmal mit der alten Technik zu machen, weil ich damit keine neue Hardware brauchte und weil ich nicht genau weiß wie kompatibel eine moderne Zentrale ist (und weil ich Spaß hatte die Technik meiner Kindheit zu verstehen).

Wenn wir längerfristig Spaß an der Anlage haben, ist die Technikmodernisierung aber sehr wahrscheinlich. Mir würde als Informatiker diese Lösung gefallen. Ich hab damit aber derzeit noch 2 Probleme.
Zum einen weiß ich nicht, ob der SRCP-Server in der Lage ist Signale zu erzeugen mit denen unsere 20 Jahre alten Dekoder etwas anfangen können. Die alle zu tauschen wäre echt teuer.
Mein anderes Problem ist der Booster. Ich hab trotz Googeln noch nicht wirklich verstanden, was der Macht. Für mich klingt das eigentlich nur nach einem Leistungstransistor der die Gleisspannung an- oder abschaltet. Das kann aber auch nicht wirklich sein. Ich habe keine Idee was genau ich da für eine LGB-Anlage mit 8 Loks (maximal 3 fahren gleichzeitig) und zirka 20 Weichen kaufen sollte. Ich denke den alten Transformator (50110) könnte man weiter verwenden. Oder? Achso und mir gefiel an dieser Lösung, dass die Loks weiterhin über die Lokmäuse gesteuert werden können. Das währe mit der Idee Raspberry PI+Booster ja scheinbar nicht mehr möglich.

Wenn ihr da irgendwie mehr wisst, oder Vorschläge habt wäre ich sehr dankbar.

Vielen Dank und viele Grüße
Kaladum


Kaladum  
Kaladum
Beiträge: 3
Registriert am: 30.01.2021


RE: LGB 55000 mit Raspberry PI steuern

#8 von Pirat-Kapitan , 18.02.2021 22:39

Moin Kaladum,
3 Loks gleichzeitig und nicht mehr als eine (1) Weiche zur gleichen Zeit schalten sollte mit 5A zu bewerkstelligen sein. Drunter (z.B. z21 mit3 A) würde ich nicht gehen, mehr ist m.E. nur bei langen, schweren Zügen mit Glühbirnenbeleuchtung der Wagen (da hatte ich seinerzeit 3A im Stillstand auf dem Gleis) und bei Steigungen erforderlich. Klassisch sind 5A (z.B. Lenz LZV200), 8A (z.B. MD MZSpro), 10A (mit externem Booster). Ggf. könnte der einstellbare ORD-VC-1 https://wiki.rocrail.net/doku.php?id=ord-vc-1-de interessant sein, ich verwende ihn im 20A Bereich.

"Alte" Decoder (LGB 55020 mit Aufschrift LGB Lenz V1.1 bis V1.3) habe ich immer ohne Probleme an einer Lenz LZV100 ab Softwareversion 2.4 und an einer Intellibox betrieben, derzeit laufen sie an LZV100 Version 3.6.

Schöne Grüße
Johannes


Spur G im Garten, H0m im Hause. Lenz LZV100 mit Rocrail auf RasPi, Manhart-Funky und RocoWLM.


Pirat-Kapitan  
Pirat-Kapitan
CityNightLine (CNL)
Beiträge: 1.586
Registriert am: 13.05.2018
Ort: Bergisches Land
Gleise Edelstahl / TT-Bettungsgleis Tillig
Spurweite H0, H0m, N, G
Steuerung Lenz LZV100
Stromart Digital


   

CS2/CS3 Go/Stop Status via CAN abfragen
Müt Drehscheibe

  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
Xobor Einfach ein eigenes Forum erstellen
Datenschutz