Benutzer-Werkzeuge

Webseiten-Werkzeuge


project:milliways_wagen

Märklin für Milliways

Worum geht's?

Milliways hat für den 34C3 einen Wettbewerb für einen Hackerspace-Eisenbahnwagen ausgeschrieben.

Idee

Die ursprüngliche Idee war, einen sinobit auf einen umgebauten Märklin-Güterwagen zu setzen und vom Gleis die Versorgungsspannung und das Kontrollsignal von Märklin Digital abzunehmen.

Am besten für einen Umbau eignen sich 4-achsige Flachwagen 4514 aus den 1950er Jahren.

Einen geeigneten Schleifer zu finden, um die Spannung vom Mittelleiter abzunehmen ist aber eher schwierig. Am einfachsten ist es, einen Märklin 7076 Schleifer zu verwenden, aber der passt nur für 2-achsige Wagen der Märklin 4500er Serie, also z.B. dem 2-achsigen Flachwagen 4503.

r0ket SHA2017 badge Wegen der Kapitalmarktfähigkeit der zur DHL zerschlagenen Deutschen Bundespost mit unterbezahlten prekär bei Subunternehmern Angestellten anstatt Postbeamten als Zusteller wurden die sinobits von Derendingen „wegen Unzustellbarkeit“ statt ans FabLab Neckar-Alb ohne Einspruchsmöglichkeit nach Shenzen zurückgeschickt.

Deshalb kommen statt sinobits Konferenzbadges (Chaos Communication Camp 2015 r0ket, SHA2017 badge) zum Einsatz.



Umbau

39795161222_638a68150e_b.jpg Für Video auf Bild klicken Von je 3 auf ebay ersteigerten 2-achsigen und 4-achsigen Flachwagen wurde von 2 Vierachsern und einem Zweiachser vorsichtig der Plastikaufbau entfernt und die Chassis aus Metall vermessen und in OpenSCAD eingegeben.

Über den am 2-achsigen Wagen montierten Schleifer kann ein 5V-Schaltnetzteil mit Vierweggleichrichter versorgt werden.



39432194711_21b09bce4f_b.jpg Für Video auf Bild klicken Mit einem Spannungsteiler parallel zum Brückengleichrichter aus 6.8 kΩ-Widerständen gegen die Wechselspannungen und 2 grünen Leuchtdioden in Serie gegen die negative gleichgerichtete Spannung VSS wird die jeweils positive Phase der Wechselspannung auf maximal 4.4 V begrenzt.

Wenn der analoge Trafo auf Null gestellt wird, geht die gleichgerichtete Spannung allerdings nicht ganz auf Null zurück.

(Der dicke Kondensator dient nur als Anschlusspunkt für die VSS und Ozsilloskop-Masse Krokodilklemmen. Weil ein analoger Märklin-Trafo sekundärseitig galvanisch von der Schutzerde isoliert ist, führt das nicht zu einem Kurzschluss.)

27655283789_e1a1782a38_c.jpg 27655281989_35b5df16b1_c.jpg Um ein saubereres digitales Signal zu bekommen und um die Badges gegen Verpeilung und Verpolung zu schützen, werden die Spannungsteiler noch um je einen 100 kΩ-Widerstand gegen VSS parallel zu den grünen LEDs vervollständigt und deren Ausgangssignal mit 74AHC14-Schmitt-Triggern gesäubert.




27655264289_64eacb58d0_c.jpg Für Video auf Bild klicken Ein Spannungsregler mit Brückengleichrichter und Digitalisierungsschaltungen für beide Wechselstromphasen wird mit doppelseitigem Klebeband auf dem 2-achsigen Wagen mit Schleifer befestigt. Das Chassis ist mit blauem Malerklebeband gegen die Platinen isoliert.




39432134481_fb8577b396_c.jpg 24566328897_8ba093152f_c.jpg Mit OpenSCAD werden ein proof-of-concept Aufbau, eine Halterung für die SHA2017-Badge und eine Halterung für die r0ket entworfen und mit dem Lasercutter aus mitteldichter Faserplatte (MDF) ausgeschnitten.




Umbauwagen mit Badges

Für Video auf Bild klicken In diesem Zeitlupenvideo sind die Badge-Wagen und der Spannungsversorgungswagen aneinandergehängt. Die SHA-Badge wird schon über den Versorgungswagen gespeist.

Die Spannungsversorgung für die r0ket und die Modulationssignaleinspeisung für beide Badges fehlen noch.

In der Zeitlupe erkennt man, dass die LEDs gegenphasig (mit der Differenzfrequenz zwischen der Bildaufnahmerate der Kamera und 50 Hz Netzfrequenz) flackern.

Spannungsversorgungswagen

27655225149_b62bfb390a_c.jpg 27655227969_ff2621d1b2_c.jpg

SHA2017 Badge Wagen

27655233379_79b14bc918_c.jpg

r0ket Wagen

27655231159_9e305129c6_c.jpg

Auf der Milliways-Anlage

38554469795_95a25df8ba_h.jpg

Gewonnen!

Mit so viel Overengineering und relativ wenigen Mitbewerbern haben wir den Hackerspacewagen-Wettbewerb gewonnen.

39417533242_b515567c5a_c.jpg 27670833809_d14eb2f3be_c.jpg

Analyse des Digitalsignals

Vor dem 34C3 stand nur eine analoge Märklin-Eisenbahn zur Verfügung, und auf dem 34C3 war es viel zu hektisch, um viel mehr hinzubekommen als einen 74AHC14 Schmitt-Trigger (buchstäblich) abzurauchen und (diesmal mit Sockel) wieder zu ersetzen.

Märklin digital Steuergeräte Märklin digital Steuergeräte Für Video bitte auf das Bild klicken Nach dem Kongress haben wir [Paul]

  • einen Märklin-Digital Controller 60116
  • eine mobile station 60657
  • ein Netzteil 66361

angeschafft und Pauls S3/6 mit einem mLD3 Lok-Decoder 60982 digitalisiert.


Das digitale Signal wird mit einem RIGOL 1052E-Oszilloskop zunächst direkt vom Gleis,

26572585378_cae0a78a84_b.jpg

danach an den komplementären Schmitt-Trigger Ausgängen des Spannungsversorgungswagens

39734047314_f5e458249e_b.jpg

gemessen, gespeichert, und mit einem USB-Stick als .wfm-Dateien exportiert.

Die Daten im binären .wfm-Format von RIGOL werden mit wfmutil in CSV konvertiert und in Mathematica importiert.

Der Fortschritt der Analysen findet sich in entsetzlich langen PDF-Ausdrucken von kaum weniger langen Wolfram Mathematica-Notebooks.

mfx-Datenanalyse

Das gemessene digitale Kontrollsignal wiederholt sich alle 50ms und besteht aus 3 durch Pausen getrennten Blöcken.

zyklisch wiederholte 50ms-Sequenz

In Mathematica werden die Datenpakete Run-Length-codiert, um verschiedene Modulationsarten identifizieren und decodieren zu können.

run length kodierte wiederholte Sequenz

Die zyklisch wiederholte Sequenz beinhaltet

ein zweimal wiederholtes 18-Bit Paket

im MMX-Format

ungültiges Märklin Motorola //idle// Paket

Ein vorläufiger Parser in Mathematica decodiert dieses Paket zunächst in Bits als:
{1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0}

in trits:
{open, open, open, open, 0, open, open, open, open}

Das ist sowohl im ursprünglichen Motorola-Format als auch im MM2-Format ein illegales Paket, dessen Inhalt ignoriert wird, aber wahrscheinlich Märklin-Motorola-Decoder von unkontrolliertem Losfahren abhält.

ein langes Paket

im mfx-Format, das aus 2 mal unmittelbar hintereinander gesendeten mfx-Format-Frames besteht

ein zweimal wiederholtes kürzeres Paket

im mfx-Format

einzelnes mfx-Paket

Ein vorläufiger Parser in Mathematica decodiert dieses Paket zunächst in Bits als:

{SYNC, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, SYNC, SYNC}

und in einer 2. Stufe in Befehlssequenzen:

  • SYNC
  • {A7, 5} 7-bit Adresse 5
  • {DRV7, FWD, 0} 7-bit Fahrbefehl vorwärts, Geschwindigkeit 0
  • {FUNC16, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}} 16 Funktionen, Funktion 4 aktiv
  • korrekte 8-bit CRC
  • SYNC
  • SYNC

Das lange mfx-Paket wird interpretiert als aus 2 Frames bestehende Bit-Sequenz:

{SYNC, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, SYNC, SYNC, SYNC, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, SYNC, SYNC}

Der zweite Frame des langen mfx-Paketes ist mit den folgenden 2 kürzeren mfx-Paketen identisch.

Der erste Frame des langen mfx-Paketes wird als

  • SYNC
  • {A7, 0} 7-bit Adresse 0 (broadcast)
  • {CENTRALUID, 1195666018, COUNT, 3} UID der Kontrollstation: 1195666018, Anmeldungszähler: 3
  • korrekte 8-bit CRC
  • SYNC

decodiert.

Noch zu erledigen

Diese Decodierung, vor allem des MM2-Formats, muss noch vervollständigt und dann auf r0ket und SHA-Badge übertragen werden.

Die Betriebssysteme von r0ket, SHA2017 badge (und sino:bit und calliope-mini) müssen so weit verstanden werden, dass keine Interrupts ununterbrochene Datenaufnahme in Echtzeit und drahtlose Übertragung stören können.

Zunächst sollte ein Datenlogging in Echtzeit mit drahtloser Übertragung des unverarbeiteten Digitalsignals programmiert werden, damit die durch Unterbrechungen der Stromzufuhr vom Gleis bei fahrendem Zug entstehenden Signalstörungen verständlich werden.

Von den Signalstörungen hängt ab, wie ein robuster Parser auszusehen hat. Run length encoding ist bei einem gestörten Signal möglicherweise keine gute Lösung.

Leute

tatzelbrumm & Paul Rosset (FabLab Neckar-Alb).

Danke an Goswin für die Schmitt-Trigger, von denen mehrere anstatt von Spannungsreglern oder kaum mehr zu ersetzender Konferenzbadges abgeraucht sind.

Linke Liste

Repositories

Literatur

project/milliways_wagen.txt · Zuletzt geändert: 2018-03-08 19:58 von tatzelbrumm