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 re­duziert den Kabelsalat und wird bei mir aktuell für alle Rück­melder, Belegtmelder, Gleiskontakte und eben auch für die Erken­nung 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 elek­tro­ni­schen 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 ver­wen­den. Bei den von mir ver­wendeten Tags aus der Gruppe „NTAG2xx“ handelt es sich um eine Gruppe von 7 Bytes, die als UID (für Unique Identifier) bezeichnet wird. Es besteht natürlich kein Zu­sam­men­hang zwi­schen Fahrzeugtyp und UID. Die muss im Mo­dell­­bahn­­steu­er­pro­gramm festgelegt wer­den, in­dem man die 7 Stellen abschreibt und als „Code“ für ein be­stimm­tes 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 Adres­se 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üfsumme aus der UID. Dabei werden Zahlen im Bereich von 0 bis 16.383 erzeugt. Um das wie eine DCC-Decoderadresse (1 – 10239) aussehen zu lassen, musste bei CRC-Prüf­sum­men über 10.239 einfach 10.240 ab­ge­zo­gen 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 aus­ge­rechnet 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 Ver­wen­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 zu­sam­men mit noch anderen In­for­ma­tio­nen in diesen Be­reich. So kann ich auch eine Internet- oder Intra­net-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 Wissenswerte zu diesem Fahrzeug an. So habe ich eigentlich den Kom­fort einer RailCom-Lösung, ohne alle Lok­de­co­der zu ersetzen und eine ent­spre­chende RC-Infrastruktur 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 fest­le­gen, 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 ver­wen­dete Arduino-RFID-Bibliothek MFRC522 ist für den Chip PN532 nicht brauch­bar und so habe ich mich für die Adafruit-PN532-Bibliothek 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, sondern alter­na­tiv auch die Mifare Classic 1k-Tags, die ich massenweise herumliegen habe. Sie gibt es im Kre­dit­kar­ten­­for­mat, aber auch als runde Tags in Form eines blau­en Schlüssel­anhängers. Immer, wenn ich RFID-RC522-Lese­mo­dule ge­kauft habe, war eine solche Mifare-Classic-Checkkarte und ein blau­er Schlüssel­anhänger mit Mifare-Classic-Tag dabei. Beide letzten 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 selbst­kle­bend und werden auf einem Trägerband aus Papier geliefert. Einige werden auch lose ge­lie­fert und haben eine Ferritfolie 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-Experimente wurde ein For­mat ver­einbart, das nicht nur die Fahrzeugadresse, sondern auch das Fahr­zeug­pro­tokoll, die Anzahl der Fahr­stufen 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 Mo­dell 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. Er speichert aber nur die Fahrzeugnummer und fordert die übrigen Werte wie Anzahl Fahr­stu­fen und Digitalprotokoll nicht im seriellen Monitor beim Anwender an. Ü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 ge­lesenen 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 im­mer in die Richtung, in die der Knopf auf dem Fahrpult gedreht wurde. Es spielte keine Rol­le, 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 Mo­dell­bah­nen ist das anders. Bei digital ge­steu­erten Lokomotiven/Fahrzeugen er­hält die Lok über das digitale Gleissignal den Befehl, vorwärtszufahren, und macht genau das, indem sie mit Ka­min oder Führer­stand 1 nach vorne losfährt. Die Zentrale oder das Modell­bahn­steu­er­pro­gramm wissen aber nicht, ob das jetzt nach links oder nach rechts Fahren be­deu­tet. 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 bisher mit zwei Lesern, die jeweils links und rechts im Gleis eingebaut sind, oder geht es auch mit einem Leser und zwei Tags an einer Lok?

Dazu habe ich folgendes Experiment ausgeführt. Ich habe 2 iden­tische Tags geschrieben, bei­de mit dem­selben Lokcode, nur als Usercode habe ich einmal die 0 und einmal die 128 ver­wendet. 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 von PN532 und Lolin (Wemos) D1 R1 und Mini
Beitrag zum Arduino Uno mit RF522 als Tagwriter

© 2026 Gerard Clemens – letzte Aktualisierung 13.04.2026