SLSS CANopen Analyser

  • Entwicklungsstand: in Entwicklung (letzte Aktualisierung: 08.12.2022)
  • Veröffentlichungen: (Python-Offline veröffentlicht / C# Live Analyser ausstehend)

 

Vorgeschichte

Mit meiner CAN Bus-Software SLSS CANAnalyser* schein ich doch bei so einigen CAN Interessierten einen Nerv getroffen zu haben.
Durch den kostenlosen Download und den „cheap’n’open hardware“ Ansatz habe ich mittlerweile einige nette Kontakte knüpfen können (sogar weltweit was ich immer noch Wahnsinn finde).

Da meine beruflichen „Wurzeln“ bis Anfang letzten Jahres eigentlich immer fest im Automotive Sektor verankert waren, war für mich bis dahin das Multi-Master-Prinzip und die unabhängige Botschaftszuordnung stets das was den CAN Bus ausmachte und wofür ich Ihn einsetzte. Diese grundsätzliche Auslegung findet man zum Beispiel auch in den Beschreibungen der CAN Übertragungsverfahren*, wie hier zum Beispiel auf Wikipedia!

Im Zuge eines Jobwechsels wurde ich dann im ersten Projekt jedoch gleich mit dem Thema CANopen* konfrontiert.
Das Wort „CANopen“ war mir zwar bekannt und bis dahin auch schon einige Male an diversen Stellen „untergekommen“, doch war ich immer weit genug entfernt um mich nicht tiefer mit dem Thema beschäftigen und auseinandersetzen zu müssen!
Da mein neuer Projektleiter jedoch eher die Einstellung „learning by doing“ vertritt (was ich sehr an Ihm mag) und in unserer Abteilung noch kein Wissen hinsichtlich CANopen vorhanden war, wurde ich gleich ins kalte Wasser geworfen und musste mich mit den „Eigenheiten“ des CANopen Protokolls vertraut machen.
Schnell stellte ich fest, dass der CAN Bus selbst und der Aufbau der darauf versendeten Botschaften (CAN Frames) immer noch dasselbe war, doch altbekannte Dinge wie das Multi-Master-Prinzip mittendrinnen obsolet und durch mir bis dahin unbekannte Sachen wie Guarding, Heart-Beat, Node-IDs, SDOs, PDOs oder das ominöse Objektverzeichnis (object dictionary) ersetzt worden waren! So musste ich selbst erst einmal lernen was CANopen überhaupt ausmacht, welche Vorteile und evtl. auch Nachteile der Einsatz von CANopen mit sich bringt und wie die Daten auf dem Bus zu interpretieren sind.

Mehr lesen

SLSS CarNet (Update 2021)

Die letzten Tage habe ich meine HTML-basierte Software des „SLSS CarNet Command Centers“ (Hauptartikel: SLSS CarNet*) weiter um- und ausgebaut. Nach der Installation der Hardware im Sommer 2020 konnte ich auf meinen Testfahrten (welche coronabedingt leider nicht so häufig waren wie gehofft) einiges an Erfahrungen und Eindrücken sammeln. Die ersten Erkenntnisse daraus habe ich nun in Form von Updates und Verbesserungen in die Software einfließen lassen. Das es an der einen oder anderen Stelle Verbesserungspotential geben wird, war mir bereits bei der Entwicklung der Soft- und Hardware klar. Ich war ziemlich erstaunt, dass sowohl die GPS-Ortung inkl. Richtungs- und Geschwindigkeitserkennung, als auch andere Komponenten, welche ich vorher nicht während der Fahrt (also „in Bewegung“) testen konnte, auf Anhieb funktionierten. Somit beschränken sich die Verbesserungen auch eher auf Optimierungen in Sachen Performance, Usability und Reaktionsgeschwindigkeit.

 

Verbesserung der CAN-Bus Reaktionsgeschwindigkeit dank Python

Eine Sache, welche mich schon beim Erstellen der Software beschäftigte, war die Erkennung der über den CAN-Bus gesendeten Botschaften. Ursprünglich nutze ich hierfür ein PHP-Script, welches per „shell_exec()„-Befehl das Lesen der CAN-Daten übernahm. Das Problem hierbei war zum einen, dass dieses Script nicht in einer Endlosschleife laufen konnte, da die so gesammelten Daten nach Zeit-X gespeichert werden mussten und dafür der Lesevorgang beendet werden musste. Zum anderen lief dieses Script innerhalb des „Command Centers“ was dazu führt, dass CAN-Daten nur erfasst wurden, wenn dieses auf einem Gerät ausgeführt wurde. 

Mehr lesen

SLSS CANAnalyser (Update 1.1.0.14 – 01/2023)

 

Vorgeschichte

Da ich in der Vergangenheit sowohl beruflich, als auch in meiner Freizeit immer wieder mit CAN-Bus Systemen und den darüber versendeten Botschaften in Kontakt gekommen bin, entstand irgendwann der Wunsch / Bedarf nach einer Software, mit dessen Hilfe ich mir das Handling und den Umgang mit den Bus-Daten erleichtern kann. Bis dato habe ich CAN-Botschaften entweder im Terminal, später mit einem Pythonprogramm auf einer  Raspberry Pi*, wie ich sie zum Beispiel als zentrales Gateway bei meinem SLSS CarNet* Projekt verwende, oder mittels der seriellen Ausgabe eines  Arduino* Micro-Controller Boards, angezeigt und mitgeloggt. Die Auswertung der Daten erfolgte dann immer im Nachgang anhand der gemachten Aufzeichnung, oder durch das physische Überprüfen der Reaktionen, welche durch das Senden von bestimmten Botschaften ausgelöst werden sollten. Dies ist auf Dauer natürlich nur wenig komfortabel.

Für die professionelle Bearbeitung von CAN-Bus Daten gibt es natürlich auch professionelle Tools, welche alle gewünschten Funktionen unterstützen und mit verschiedenen, teilweise sogar hardwareseitig implementierten Methoden, sicherstellen, dass jedes Datenpaket welches über den CAN-Bus übertragen wird auch erkannt und mitgeloggt wird. Diese Tools kommen meist in den Entwicklungsabteilungen für Kraftfahrzeuge, Nutzfahrzeuge, Schiffe und auch anderen Maschinen zur grundlegenden Auslegung und Entwicklung des CAN-Bus zum Einsatz und werden ständig weiterentwickelt, geupdatet und verbessert. Da dieser Vorgang für die entwickelnden Firmen recht zeit- und kostenintensiv ist, werden diese Programme leider meist als zeitlich begrenzte Lizenzversionen verkauft und benötigen nicht selten herstellerspezifische Hardware, welche ebenfalls nicht ganz billig ist. Diese tollen und sehr nützlichen Tools sind damit leider für den Hobbybereich oder den sporadischen Einsatz einfach zu teuer.

Mehr lesen

SLSS CarNet

Vorgeschichte

SLSS CarNet ist ein Projekt, welches im Winter 2019 seinen Anfang genommen hat. Ich und einige meiner Freunde sind begeisterte US-Car Fans. Außerdem spielte ich schon länger mit dem Gedanken mir einen Kleinbus zuzulegen um mit meiner Frau, unseren beiden Kindern und den Großeltern den einen oder anderen Ausflug unternehmen zu können, ohne immer auf 2 Fahrzeuge aufgeteilt sein zu müssen. So kombinierte ich die Schwärmerei für US-Cars mit dem Wunsch des Kleinbusses und kaufte im Dezember einen amerikanischen Chevrolet Express, welcher von der Explorer Van Corporation zu einem „rollenden Wohnzimmer“ umgebaut wurde.

Nach dem Kauf des Vans kam mir recht bald die Idee, diesen um ein paar Funktionen zu erweitern. So gibt es zum Beispiel in der vorderen Deckenverkleidung ein Bedienpanel auf dem 3 Schalter für die Steuerung der verschiedenen Beleuchtungen im Innenraum des Van angebracht sind. Diese Beleuchtung, wozu auch ein Sternenhimmel gehört, macht den hinteren Teil des Vans zu einer Chill-Out-Area, welche für nüchterne, deutsche Verhältnisse fast schon ein wenig übertrieben anmutet, für mich als Fan aber einfach dazu gehört. Leider sind diese Schalter aber eben nur Schalter. So ist es nicht möglich das Licht zu dimmen, sondern nur ein- oder auszuschalten. Was beim Sternenhimmel noch ganz in Ordnung ist, sieht beim Schalter für die Lesebeleuchtung schon anders aus. Betätigt man diesen, so erstrahlen ganze 8 Leseleuchten, welche von vorn bis hinten über die ganze Fahrzeuglänge verteilt sind, mit voller Leistung. Dies ist so hell, dass der Vorbesitzer bereits alle 5W Glassockel-Lampen durch orange Leuchtmittel, wie sie zum Beispiel für Seitenblinker verwendet werden, ersetzt hat. Leider ist das orange Licht nicht wirklich dunkler und so kam mir die Idee die Beleuchtung mittels Pulsweitenmodulation zu dimmen. Eine weitere Idee war, dem Van aufgrund seiner Größe eine Rückfahrkamera zu spendieren. Da ich das originale Radio nicht durch ein Doppel-Din Gerät mit Kameraeingang ersetzen wollte und mir die Monitore für die Nachrüstkameras eher nicht gefallen, musste also eine Individuallösung her. So stand der Entschluss fest ein eigenes System zu entwickeln, was all diese Funktionen in einer grafischen Oberfläche vereint.      

Mehr lesen