Der aktuelle Stand auf meinem Hosenträger

Nach den vielen Experimenten mit RFID auf meiner Teststrecke, auf dem Hosen­träger, habe ich mich für die Variante 2-fach RFID mit Kommunikation über WLAN entschieden. WLAN reduziert den Kabelsalat und wird aktuell für alle Rück­melder, Belegtmelder, Gleiskontakte und eben auch für die Erkennung der Fahr­zeug­num­mer über RFID verwendet.

2-Fach RFID-Leser für Fahrzeugkennung und/oder Aufgleisrichtung

Zum Erkennen eines Model­lbahn­fahr­zeu­ges muss es mit einem „Tag“, quasi ei­nem elektronischen Typen­schild, ver­se­hen werden. Es gibt verschiedene Mög­lich­kei­ten, ein Fahrzeug mit einem Tag zu identifizieren.

Tag UID

Die naheliegendste Lösung ist es, die einmalige Identi­fi­kations­nummer des Tags zu verwenden. Bei den von mir ver­wendeten Tags aus der Gruppe „NTAG2xx“ ist das eine Gruppe von 7 Bytes, UID ge­nannt (für Unique IDen­ti­fier). Es besteht natürlich keinen Zu­sam­men­hang zwischen Fahrzeugtype und UID. Die muss im Mo­dell­­bahn­­steu­er­pro­gramm festgelegt werden, indem man die 7 Stellen abschreibt und als „Code“ für ein bestimmtes Fahrzeug eintippt. Hier ein Beispiel aus der Zeit, als ich die Lok-ID noch über LocoNet eingelesen habe. Die Tag UID lautete 04:97:0F:4A:62:3E:84, also eine hexa­dezi­male Dar­stel­lung wie bei der Mac-ID einer Netzwerkkarte. Rocrail verlangte die dezimale Darstellung dieser UID als 4.151.15.74.98.62.132. Separat dazu muss bei einem DCC Fahrzeug auch noch eine Adresse ein­ge­tra­gen werden.

Definition einer Fahrzeug-ID (Code) mit der Tag-UID

CRC14 aus Tag UID

Eine weitere Variante zur Iden­ti­fi­ka­tion eines Fahrzeuges, die eben­falls auf der UID des Tags ba­siert, ist die Aufbereitung einer 14-Bit CRC Prüf­summe aus der UID, wobei Zahlen im Bereich von 0 bis 16.383 erzeugt wer­den. Um das wie eine DCC Decoder­adres­se (1 – 10239) aussehen zu lassen, musste bei CRC Prüf­sum­men über 10.239 einfach 10.240 abgezogen werden. So war es mög­lich, die aus der UID des Tags abgeleitete Kennung auch als DCC-Adresse zu verwenden. Warum nun aber die Lok BR78 486 ausgerechnet die DCC-Adresse 1184 haben sollte, war natürlich für nie­man­den ersichtlich, weil auf An­hieb nicht klar ist, dass die CRC14 Prüfsumme aus 4.151.15.74.98.62.132 die 1184 ergibt. Aber die Vari­ante war schon mal ein ganzes Stück einfacher, weil für Code und DCC-Adresse dieselbe Zahl Verwen­dung fand.

Hatten wir bei der CRC14 Lösung noch die Adresse der Lok dem Tag angepasst, wird bei der aktuell von mir bevorzugten Lösung das Tag der Fahrzeugadresse angepasst. Die NTAG2xx Tags haben einen Spei­cher­bereich, der dem An­wen­der im Lese- und Schreibmodus zur Ver­fü­gung steht. Deswegen schreibe ich aktuell die Lok-Adresse oder Wagen­ken­nung zusammen mit noch anderen In­for­ma­tio­nen in diesen Be­reich. So kann ich auch eine Internet- oder Intranet-Web-Adresse eintragen, um eine Seite mit wei­­te­ren ­Informationen zu diesem Fahr­zeug aufzurufen. Halte ich das Fahr­zeug mit dem Tag an mein Smart­phone, zeigt mir der Brow­­ser alles Wissenswertes zu diesem Fahrzeug an. So habe eigentlich den Kom­fort einer RailCom Lösung, ohne alle Lok­de­co­der zu ersetzen und eine ent­spre­chende RC Infra­struk­tur bereit­stel­len zu müssen.

Der Fahrzeug-Tag wird einfach unter das Fahrzeug geklebt. Der RFID-Tag-Leser wird unter die Schienen gebaut bzw. die RFID-An­ten­ne ausgelagert und in die Schiene integriert.


Erkennung der Aufgleisrichtung

Befestigt man das RFID-Tag links oder rechts von der Fahr­zeug­mitte, kann man mit 2 Lesern und eben­falls mittig versetzten Lesean­ten­nen im Gleisbett feststellen, wo der Führerstand 1 des Fahr­zeuges ist und damit im Mo­dell­bahn­steu­er­pro­gramm festlegen, in wel­che Richtung los­ge­fah­ren werden muss (nicht in Rich­tung Schuppenwand, son­dern in Richtung Schuppentor).


Verwendung des RFID NFC PN532 V3 Lesers

Aktuell ist dieses RFID Lesemodul für kleines Geld im Netz ver­füg­bar. Die bisher verwendete Ar­du­ino RFID Bibliothek MFRC522 ist für den Chip PN532 nicht brauchbar und so habe ich mich für die Adafruit-PN532 Bi­blio­thek entschieden. Der Code für einen RFID-Leser musste des­we­gen komplett neu geschrieben werden.

Nun sollte der Leser nicht, wie bisher, nur NTAG2xx Tags lesen können, aber alter­na­tiv auch die Mifare Classic 1k Tags, die ich massenweise herumliegen habe. Sie gibt es in Kreditkartenformat, aber auch als runde Tags in Form eines blau­en Schlüssel­anhängers. Immer, wenn ich RFID-RC522 Lesemodule ge­kauft habe, war eine solche Mifare Classic Check­kar­te und ein blauer Schlüssel­anhänger mit Mifare Classic Tag dabei. Beide letzte Va­rian­ten sind wohl für größere Spuren gut geeignet.
Die NTAG2xx gibt es in den Maßen von 15 × 6, 20 × 6 und 19 × 12 mm und sind deswegen für Fahr­zeu­ge der kleineren Spuren N, TT und H0 prädestiniert. Die meisten Tags sind selbstklebend und werden auf einem Trägerband aus Papier geliefert. Einige werden auch lose gelie­fert und haben eine Ferrit-Folie als Trä­ger. Damit sind sie für den Betrieb auf metallischen Unter­grün­den geeignet.

Nicht nur Lesen, sondern auch Schreiben.

Wenn schon ein neuer RFID-Leser für die Modellbahn gebaut wird, sollte dieser die Tags auch schreiben können. Schon in den Anfangstagen unserer RFID Ex­pe­ri­men­te wurde ein Format vereinbart, das nicht nur die Fahrzeugadresse, sondern auch das Fahrzeugprotokoll, die Anzahl der Fahrstufen und einen an­wen­der­de­fi­nierten Wert beinhaltet. Außerdem sollte es möglich sein, einen Link für eine Web-Adresse mit zusätzlichen Informationen zu diesem Modell oder seinem Vorbild im Tag zu speichern. Mit einem Smart­phone kann man dann den Tag lesen und die entsprechende Seite aufrufen.

Der bisherige Tagwriter auf der Basis eines Arduino Uno wendet dieses Format auch schon an, speichert aber nur die Fahr­zeugnummer, ohne die übrigen Wer­te wie Anzahl Fahrstufen und Digi­tal­pro­tokoll im seriellen Monitor beim An­wen­der anzufordern. Überhaupt ist die Be­die­nung und Eingabe der Daten im seriellen Monitor nicht sehr komfortabel.

Deswegen werden beim neuen Tagwriter die Eingaben im Web-Interface gemacht und die gelesenen Werte auch dort an­ge­zeigt.

Erkennung der Aufgleisrichtung

Als die Welt noch analog war und eine 2-Leiter-Lok aufs Gleis gestellt wurde, fuhr eine Lok immer in die Richtung, in die der Knopf auf dem Fahrpult gedreht wurde. Es spielte keine Rolle, wo der Führerstand 1 oder der Kamin einer Dampflok war, man wusste immer, in welche Richtung die Lok losfährt, wenn man den Knopf nach links oder rechts dreht. Bei den digitalen Modellbahnen ist das anders. Bei digital ge­steuerten Lokomotiven / Fahrzeugen er­hält die Lok über das digitale Gleissignal den Befehl vor­wärts­zu­fahren und macht genau das, indem sie mit Kamin oder Führer­stand 1 nach vorne losfährt. Die Zentrale oder das Modell­bahn­steuer­pro­gramm wissen aber nicht, ob das jetzt nach links oder nach rechts Fahren bedeutet. Da das aber einen großen Unter­schied machen kann, wäre es hilfreich zu wissen, in welche Rich­tung, links oder rechts, der Kamin oder der Führerstand 1 des Fahrzeuges zeigt.
Das nennt man die Aufgleisrichtung

Wie kann nun die Aufgleisrichtung erkannt werden? Wie gehabt, mit zwei Lesern, jeweils links und rechts im Gleis eingebaut, oder geht es auch mit einem Leser und 2 Tags an einer Lok?

Dazu habe ich folgendes Experiment ausgeführt. Ich habe 2 iden­tische Tags geschrieben, beide mit dem­selben Lokcode nur als Usercode habe ich einmal die 0 und einmal die 128 verwendet. Der erste Tag mit Usercode 0 kommt unter Führerstand 1 und der zweite mit dem Code 128 kommt unter Führer­stand 2. Wird jetzt das Fahrzeug auf die Schienen gestellt und über den Leser ge­fah­ren, dient der User Code des Tags, das als Erstes den Leser er­reicht, als Richtungsbit für die Z21 Rückmeldung. Erreicht der zweite Tag danach auch den Leser, sieht man, dass die Polarität für die Lok im Block umgeschaltet wird.

Nachbauen des Tagwriters mit PN532 V3 (Projekt ist noch in Entwicklung)
Firmware für Lolin(Wemos) D1 R1 (Mini) als Tagleser und Tagwriter (Nextgen Z21 )
Schaltbild für die Verdrahtung des PN532 an den Lolin (Wemos) D1 R1 und Mini
Beitrag zum Arduino Uno mit RF522 als Tagwriter

© 2025 Gerard Clemens – letzte Aktualisierung 23.10.2025