Mit ein paar preiswerten Bauteilen steuert der Linux-Server die Modellbahn – und über das beliebte RocRail-System können auch Smartphones und Tablets zur Befehlszentrale werden.
Zutaten
- Alter OpenWRT Router
- Kabel aus Videorecorder
- 1:1 DB9-Kabel
- MCP2515 CAN-Controller
- MCP2551 CAN-Receiver
- diverse elektronische Kleinbauteile
- Märklin Gleisbox 60113
- Linux-Server
Beschreibung
Ich war auf der Suche nach einer Computer-Modellbahnsteuerung. Irgendwann bin ich auf das Rocrail-Projekt gestoßen und habe erfahren, dass die Modellbahn meines Sohnes auch einen CAN-Bus hat. CAN wird auch in der Industrie und insbesondere im Auto verwendet. Es gibt eine wirklich gute Umsetzung für Linux: Socketcan.
Weiterhin habe ich die Software Gbox2Eth von Stefan Krauß gefunden. Sie dient als Vermittler zwischen Ethernet und dem CAN-Bus der preiswerten "Digital-Anschlussbox 60113" von Märklin, die damit zur vollwertigen Steuerzentrale wird. Leider benötigt Gbox2Eth eigentlich einen "richtigen" PC, und von Linux unterstütze CAN-Interfaces sind mit über 100 Euro für Hobby-Anwendungen zu teuer.
Dabei gibt es den CAN-Controller MCP2515 von MicroChip plus Tranceiver schon für rund 2,50 Euro. Etwas Hühnerfutter und fertig ist das Interface! Linux hat ein Kernel-Modul für den Controller. Die Anbindung des MCP2515 an das OpenWRT-Board war allerdings steinig: Keine Unterstützung von Hardware-SPI, und die Interrupt-Steuerung entsprach nicht der Anforderung. Aber nach einigen Experimenten klappte es dann: Mein OpenWRT-Router spricht CAN. Erste Etappe geschafft.
Nun noch das Gbox2Eth auf Linux portieren. Socketcan ist wirklich eine saubere Umsetzung: Genauso wie Netzwerk-Sockets, also keine Hardware-spezifische API. Das Can2UDP-Gatway war relativ schnell programmiert, nur die Märklin-Gleisbox 60113 wollte Anfangs nicht. Aber von Stefan Krauß (Vielen Dank!) kam der entscheidende Tipp: Die Gleisbox braucht eine spezielle Startsequenz. Und siehe da: Es läuft.
(cm)
(cm)