Das MäCAN-Projekt - Open Source CAN-Komponenten
Mein Ziel bei diesem Projekt ist es, so gut wie jeden Teil einer Modellbahnanlage mit selbst gebauten Komponenten ansteuern zu können und dabei den Märklin-CAN-Bus zu verwenden. Dazu zählen Decoder, Rückmelder, Stellpulte und andere Komponenten, die die Steuerung der digitalen Modellbahn ermöglichen. Das wichtigste an der ganzen Sache: Sämtliche Software und alle Schaltpläne für Hardware, die ich im Zuge dieses Projektes entwickle, sind Open Source und können von jedem kostenfrei verwendet werden, um neues zu erschaffen! Gutes Beispiel dafür ist das Gleisbildstellpult von [user="Clooney"]Jochen[/user].
Alle meine Komponenten werden über die Arduino-IDE programmiert, wodurch es für die Meisten recht einfach sein sollte, eigene Software dafür zu schreiben bzw. meine Software auf die eigenen Bedürfnisse anzupassen.
Verbunden werden die Komponenten untereinander mit RJ-45-Kabeln (Handelsübliche Netzwerkkabel), die die selbe Belegung wie die Module bei Can-Digital-Bahn aufweisen. Getestet wurde dies nicht, aber die Komponenten sollten dadurch mit CdB kompatibel sein.
Besonders interessant für jene, die es ganz bequem haben wollen: Die meisten Komponenten lassen sich über die GUI der CS2/CS3 konfigurieren. Dazu melden sich die Module eigenständig bei der Central Station an und anschließend lassen sich hierüber alle wichtigen Einstellungen vornehmen. Das kann dann beispielsweise so aussehen:
Sämtliche Hard- und Software ist bei GitHub frei zugänglich. Dort werde ich auch nach und nach die Dokumentation vervollständigen und ergänzen. Aber auch auf direkte Nachfragen versuche ich nach Möglichkeit zu antworten.
Meine MäCAN-Komponenten:
Weichendecoder:
Steuerung von bis zu vier gewöhnlichen Weichenantrieben (Software wird demnächst überarbeitet, Hardware vom Univerdsalmodul ersetzt).
Mehr gibt es ab hier: viewtopic.php?f=7&t=135905#p1531189
Universalmodul:
Im Prinzip ein abgespeckter Weichendecoder. Bei dieser Platine ist kein Darlington-Array vorhanden, sondern die Ausgänge des Atmega328-P sind direkt herausgeführt. Mit zusätzlichen Ergänzungsplatinen sollen dann später alle möglichen weiteren Funktionen ermöglicht werden. Geplant ist unter Anderem die Ansteuerung von Weichenantrieben, Rückmeldung mittels Gleisbelegtmeldern etc. pp... Ohne weitere Hardware können bis zu zehn Servos angesteuert werden. Die Stromversorgung kann wahlweise über ein Mini-USB-Anschluss erfolgen
Mehr gibt es ab hier: viewtopic.php?f=7&t=135905&start=75#p1658841
CAN-UDP-Bridge:
Ursprünglich gedacht als Kabellose Brücke für die MS2, um diese Kabellos zu machen. Zusätzlich kann das ganze aber auch als WiFi-Interface für die Gleisbox genutzt werden, um z.B. mit Rocrail zu steuern. Das ganze ist noch in der Erprobungsphase, macht sich aber langsam.
Mehr dazu im Nachbarthread: viewtopic.php?f=7&t=136808
Unterstützende Software:
- CAN-UDP-Monitor: Liest CAN-Befehle im Netzwerk und wertet diese leserlich aus: viewtopic.php?f=7&t=139058#p1568015
Weitere Komponenten sind geplant und werden dann hier entsprechend ergänzt.
CAN-Komponenten anderer Personen:
Auch andere Leute befassen sich mit der Thematik der CAN-Komponenten im Eigenbau. Einige davon möchte ich hier der Vollständigkeit halber auch erwähnen. Zu diesen Projekten kann ich allerdings keine Hilfestellungen bieten. Wendet euch hier bitte direkt an die jeweiligen Entwickler:
- CAN-Buster: http://stummiforum.de/viewtopic.php?f=7&t=127413#p1423463; http://lnxpps.de/maerklin/canbuster/
Entwickler: [user="bert2d2"]Gerd[/user]
Die "Eierlegende Wollmilchsau" für den CAN-Bus: Rückmelder, Servoausgänge und CAN-Seriell-Schnittstelle. - CAN-Verteiler: http://stummiforum.de/viewtopic.php?f=7&t=138823; http://lnxpps.de/maerklin/verteiler/
Entwickler: [user="bert2d2"]Gerd[/user]
Preisgünstiger Verteiler, an dem sich zahlreiche Mobile Stations und andere Komponenten anschließen lassen. - MFX-Booster: http://stummiforum.de/viewtopic.php?f=7&...649719#p1649719
Entwickler: [user="bert2d2"]Gerd[/user] - Gleisbildstellpult: viewtopic.php?f=15&t=138691&start=50#p1609055
Entwickler: [user="Clooney"]Jochen[/user]
Ein über den CAN-Bus an die CS2 angebundenes Gleisbildstellpult, welches auf meinen CAN-Modulen basiert, aber mit selbst entworfenen Platinen, die über I²C angesprochen werden, ausgestattet ist. - Beaglebone Black und MS2 als Zentrale: http://ww.stummiforum.de/viewtopic.php?f=7&t=131311
Entwickler: [user="st-oldie"]Michael[/user]
Was der Name sagt. Alternative zum BananaPi mit ähnlichem Funktionsumfang.
-------------------------------------------------------
Originalpost:
Guten Tag allesamt,
Zunächst soll dieser Thread erst mal dazu dienen, ein paar Gedanken zu teilen und Ideen zu sammeln.
Also mein Plan ist es derzeit einen Servo-Weichendecoder zu entwickeln, der über den CAN-Bus ansprechbar ist und dabei eine Lagemeldung rausgibt, die von den anderen CAN-Teilnehmern wie MS2 und auch von Rocrail verstanden wird. Über den Standard-CAN-Befehl für Weichenrückmeldung (also der Schaltbefehl mit gesetztem Response-Bit) lässt sich das nach meinen Beobachtungen nicht realisieren. Im Trace von Rocrail ist jedenfalls zu erkennen, dass diese Frames ignoriert werden. Rocrail schaltet also stur rum, wie es lustig ist.
Zudem würde einem da ohne größeren Aufwand die Gleisbox noch dazwischen funken und eine Rückmeldung liefern, obwohl der Decoder garnicht über das Gleissignal angesprochen wird.
Meine Idee ist also nun:
In Rocrail kann ja für jede Weiche ein Rückmeldekontakt angegeben werden, der die Weichenlage überwacht. Ist dieser Kontakt nicht entsprechend belegt, werden auch keine Fahrstraßen freigegeben, was ja der eigentliche Sinn dieser Rückmeldung ist. Aber nun noch zusätzliche Rückmeldemodule einzusetzen wäre ein meiner Meinung nach unnötiger Aufwand. Also: Alles zusammen auf einer Platine unterbringen, die das ganze an den CAN-Bus meldet.
Dadurch ergeben sich dann auch auf längere Sicht weitere Möglichkeiten, die so eigentlich nur durch den Selbstbau möglich sind. Zum beispiel der aufbau eines GBS, das ebenfalls über den CAN angebunden ist und die Weichen dann bei eingestellter Fahrstraße verriegelt (Vielleicht mache ich dazu bei Zeiten auch noch einen Thread auf, habe da schon einige interessante Ideen ). Damit könnten dann andere Teilnehmer die Weiche nicht mehr steuern und bekommen die entsprechende Rückmeldung.
Bei selbstgebauter und programmierter Hardware sind die Möglichkeiten ja so gut wie unbegrenzt, und sie ist meistens deutlich günstiger als alles, was man so kaufen kann . Angedacht habe ich das ganze der Einfachheit halber auf Basis eines atmega328 aufzubauen und die Arduino IDE zu benutzen. Damit ist es recht leicht Prototypen auf Arduino-Basis aufzubauen und fertige CAN-Libs gibt es ja bekanntlich auch schon.
Das ganze ist derzeit noch in der Konzeptphase, zu sehen gibt es also noch nichts, aber ich wollte hier schon mal meine Ideen mitteilen. Sobald ich was handfestes habe wird das natürlich hier vorgestellt.
Und vor allem möchte ich mal in die Runde fragen, ob es noch andere Leute gibt, die Interesse an so einem Decoder haben und ob es noch weitere Ideen und Anregungen gibt, was ein Weichendecoder so können sollte.
Also immer her mit Ideen, Anregungen, Fragen ...
Noch einen schönen Karfreitag Abend,
Maxi