Model Railroad System V2.5

Im Juni 2018 hat Michael Bernstein die Version 2.5 seiner Modellbahnsteuerungssoftware Model Railroad System für BananaPi und Beaglebone Black herausgebracht (siehe dazu auch https://modellbauhuette.dettenbachtal.de/technik/aufbau-eines-bananapi-can-interfaces-zur-nutzung-der-maerklin-gleisbox-als-zentrale).

Model Railroad System V2.5

Die neue Version wartet mit einigen Verbesserungen auf, die es lohnenswert machen, sich mit diesem Release zu beschäftigen!

Die wichtigsten Verbesserungen im Detail:

Verwaltung der CAN-Bus Daten
Bei den vorherigen Versionen kam es zusammen mit der kostenlosen Android-App RemoteCS2 zu einem Überlauf des CAN-Bus-Puffers, so dass die Steuerdaten der RemoteCS2-App nicht mehr zuverlässig an den BananaPi und die CS2 bzw. Gleisbox übertragen wurden.

Im nachfolgenden Video zeige ich, wie synchron und quasi ohne Latenz Eingaben an der RemoteCS2-App auf den CAN-Bus übertragen werden. Dabei ist zu berücksichtigen, dass mein Aufbau in etwa wie folgt ausschaut:

Systemaufbau Gleisbox, BananaPi und Netzwerk

In meinem System ist der BananaPi allerdings an eine Fritz!Box im Keller angeschlossen, die wiederum an jeweils eine Fritz!Box im Wohnzimmer und im Obergeschoss angeschlossen ist, die als WLAN-Router arbeiten. An diesem WLAN ist mein Android Smartphone angemeldet. Genügend potentielle Quellen, um den Datenverlehr zwischen Android-App und MS2 zu stören.
Hier nun also das Video: 

Model Railroad System V2.5 – Steuerung mit RemoteCS2

Neues User-Interface
Auch wenn man grundsätzlich das MRSystem ohne PC und Bildschirm verwenden kann, wird dem Anwender eine WEB-Oberfläche für Informationen und Konfigurationsmöglichkeiten angeboten. Unter der IP-Adresse des BananaPi lässt sich das WEB-Interface direkt aufrufen, also z.B. mit https://192.168.178.57

WEB-Interface des MRSystem V2.5

Über einen der fünf Reiter im Konfigurationsbereich können z.B. einzelne Dienste des MRSystems aktiviert oder deaktiviert werden:

MRSystem-Dienste

Darüber hinaus ist das Linux Dateisystem natürlich auch über SFTP mit einem FTP-Client erreichbar, z.B. mit der Freeware WinSCP.

SFTP Verbindung mit WinSCP

Ein besonderes Schmankerl stellt die Möglichkeit dar, sich an der grafischen Benutzeroberfläche des Linux Betriebssystems anzumelden. Dazu verwende ich MobaXterm.

Linux Desktop des BananaPi MRSystem V2.5

Pollen der MS2
Das “Pollen der MS2” bedeutet, dass die Lokliste der MS2 ausgelesen wird und die Verwaltungsdatei lokomotive.cs2 auf dem BananaPi angelegt wird. So stehen die auf der MS2 eingerichteten Lokomotiven allen an den BananaPi angeschlossenen Clients (PC, Tablet, Smartphone, …) zur Steuerung zum Zugriff bereit.  

Mit dem Parameter sync lässt sich das Verhalten des Pollens einstellen. In der Parameterkonfiguration (siehe Screenshot weiter unten) fehlt die Option periodisch noch.

WertNameBedeutung
0x0001periodischperiodisch die MS2 pollen, dies beinhaltet die lokomotive.cs2
0x0002keybdzusätzlich die Magnetartikel (keyboard) pollen.
0x0004layoutzusätzlich die Gleispläne (layout) pollen.
0x0008memzusätzlich die Fahrstraßen (memory) pollen.
0x0010contrzusätzlich die Statusdaten pollen.

Über den Parameter num_lokfkt kann eingestellt werden, ob 16 oder 32 Lokfunktionen unterstützt werden sollen. Das ist wichtig, weil manche Steuerungssoftware mit einer Lokliste, die mehr als 16 Funktionen pro Lok enthält, abstürzt. Hier hat Michael Bernstein eine komfortable Lösung geschaffen, die neuen Möglichkeiten von 32 Lokfunktionen zu unterstützen aber dort, wo gewünscht, zu alter Software kompatibel zu bleiben.

Parameter num_lokfkt in der MR-System Parameterkonfiguration

Kosten 

Wen  man schon einen BananaPi mit der Zusatzplatine und eine umgebaute MS2 Gleisbox sein eigen nennt, kann man sofort loslegen. Die neue Version des Model Railroad System V2.5 ist unter folgendem Link als Download für BananaPi und Beaglebone Black kostenlos erhältlich: http://mbernstein.de/modellbahn/can/bpi/index.htm

Infos zur Android-App RemoteCS2 findet ihr hier: https://modellbauhuette.dettenbachtal.de/steuerung/vergleich-remotecs2-und-maerklin-mobilestation-android-app-fuer-maerklin-cs2/

Erfahrungen, Probleme, Lösungen

  • Dateisystem plötzlich read-only 

Im Release V2.5 habe ich ein Problem festgestellt, was das Dateisystem im Image für den BananaPi betrifft. Durch das harte Abschalten des BananaPi, also ohne den BananaPi über das Betriebssystem herunterzufahren, kommt es zu Fehlern im ext4 Dateisystem. Das hat zur Folge, dass das Dateisystem nur noch Read Only gemountet wird und das MRSystem nicht mehr nutzbar ist.

Der Fehler liegt in den Einstellungen für das Mounten des Dateisystems begründet. Diese sehen wie folgt aus:

/dev/mmcblk0p1 on / type ext4 (rw,noatime,nodiratime,data=journal,commit=600,errors=remount-ro)

data=journal : Damit wird das Journalling von ext4 aktiviert, was eigentlich für mehr Datensicherheit sorgen sollte. Tatsächlich kommt der BananaPi oder diese Konfiguration damit nicht klar.

errors=remount-ro : Diese Option beeinflusst das Verhalten, wenn ein Beschädigtes Dateisystem gemountet wird. Mit dieser Option wird es read-only gemountet!

Um dieses Problem zu beheben, müssen die Einstellungen des ext4 Dateisystems geändert werden, und zwar zu 
/dev/mmcblk0p1 on / type ext4 (rw,noatime,data=ordered,errors=continue

Dazu muss man 

  1. die Datei /etc/fstab bearbeiten und
  2. mit tune2fs die Partition entsprechend einstellen.

Das geht wiederum aber nur mit einem zweiten Image eines Linux-Systems, z.B. einer zweiten MRSystem-SD-Karte. Die erste SD-Karte, die man umstellen möchte, legt man in einen Kartenleser, den man an einen der beiden USB-Ports des BananaPi anschließt.

Die SD-Karte im Kartenleser ist als /dev/sda1 im System zu finden. Nun muss man diese SD-Karte erst mal mounten. Dazu gibt man folgende Befehle auf der Konsole ein:

mkdir /media/usbdisk
mount -t ext4 /dev/sda1 /media/usbdisk

Mit WinSCP verbindet man sich mit dem MRSystem und bearbeitet die Datei /etc/fstab.
Die zweite Zeile ändert man zu
/dev/mmcblk0p1 / ext4 rw,noatime,data=ordered,errors=continue 0 0

Jetzt kann man das Dateisystem wieder unmounten mit dem Befehl:
umount /media/usbdisk

Und mit dem folgenden Befehl wird die Partition auf die neuen Einstellungen konfiguriert:
tune2fs -o journal_data_ordered /dev/sda1

Jetzt kann die SD-Karte aus dem Kartenleser entnommen werden und von der SD-Karte der BananaPi gestartet werden.

Mit dem Befehl mount kann man die erfolgreiche Umstellung überprüfen:

  • Keine Funktions-Symbole in RemoteCS2

In der aktuellen Version funktioniert das Einlesen der Lok-Funktionen leider gar nicht. Aber da wird es in Kürze sicher ein Update geben, welches diesen Bug behebt.

  • Konfigurationseinstellungen manuell bearbeiten

Statt über die Konfigurationsseite des MRSystems kann man auch die Konfigdatei /etc/mrsystem manuell bearbeiten. So fehlt der Konfigurationstabelle z.B. der Button für das MS2 Pollen. Um den Wert manuell zu bearbeiten, kann man mit einem SFTP-Client wie WinSCP die Datei /etc/mrsystem einfach im Texteditor bearbeiten.

Changelog zur Version V2.5

  • Die log Clients für CAN und Ethernet wurden von drehscheibe entkoppelt und lassen sich damit auch ohne das mrsystem verwenden.
  • Ein Client für den CAN log für den CS2 Ethernet port wurde hinzugefügt.
  • Client für virtuellen COM Port von HW group hinzugefügt.
  • Client für serielle Schnittstelle (TTY) hinzugefügt.
  • Client für SRCP hinzugefügt (noch unvollständig, aber die SRCP Clients spdrs60 und TrackONE funktionieren schon).
  • Fehler in der gpio S88 Konfig behoben.
  • Fehler für Konfig Start der Gleisbox behoben.
  • Pollen der MS2 entzerrt, damit keine grossen Burst von CAN Nachrichten entstehen.
  • Pollen der MS2 ist nun optional in der Konfig einstellbar.
  • Den Timeout für verlorenen Messages bei hoher Last optimiert, damit keine langen “Hänger” beim Steuern entstehen.
  • Fehler für Magnetartikel behoben.
  • Fehler, der die Übertragnung speziellere Befehle (z.B. Dekoder, …) unterdrückt, behoben, damit sollten nun alle CAN Messages funktionieren.
  • Fehler im Client der CC-Schnitte behoben, die CC-Schnitte läuft erfolgreich bei anderen Modellbahnern.
  • Doku des Quellcodes hinzugefügt, um Interessenten den Einstieg zu erleichtern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.