Hallo zusammen,
in meinem Projekt das Steuergerät meines Motorrads auszulesen habe ich unregelmäßige Abbrüche.
Kurz zum Aufbau:
Ein Arduino Nano ist mit einem K-Line zur Seriell Konverter ausgestattet (L9637D).
Der HC-06 Bluetooth Adapter spricht mit der Außenwelt.
Ablauf:
Ein OBD II kompatibles Gerät verbindet sich per BT und konfiguriert die Schnittstelle.
Es gibt einen Abgleich welche Abfragen (PID´s) unterstützt werden.
Anschließend werden in einer Dauerschleife diese Werte abgefragt.
Aufgabe meines Adapters ist, diese Anfragen umzuwandeln, dass das Motorrad diese versteht (Etwas anderes Schema der Nachrichten und unterschiedliche PID´s). Auch das Ergebnis muss nun umgerechnet und wieder in das Schema des OBD II Protokolls gebracht werden.
Testumgebung:
Für die Entwicklung habe ich einen Emulator geschrieben, der per Zufallsgenerator auf die Anfragen per Serieller Schnittstelle antwortet.
Apps wie z.B. Torque oder Car Scan und meine ActionCam können nun stundenlang mit dem Adapter kommunizieren.
Echtbetrieb:
Mit meinem Motorrad verbunden, kommuniziert eine ActionCam mit dem Adapter und zeichnet die Daten auf.
Diese Aufzeichnung hört nach maximal 30 Minuten einfach auf. Manchmal auch bereits nach 15 Minuten.
Nun stehe ich vor dem Problem, dass ich weder Kamera noch Arduino während der Fahrt debuggen kann. Auch erkenne ich einen Abbruch erst Zuhause, wenn ich mir das Video ansehe.
Grundsätzlich scheint der Code ja zu funktionieren. Also erwarte ich keinen Variablen-Überlauf o.ä.
(Globale Variablen verwenden 603 Bytes (29%) des dynamischen Speichers)
Eher, dass es Werte geben könnte, die ich im Emulator nicht vorgesehen habe.
Bleiben also nur die Vermutungen:
Arduino erhält einen Wert, der in einer Kalkulation zu einem Fehler führt (z.B. Null-Division)
Kamera bekommt einen Wert, der zum "Absturz" der Aufzeichnung führt
Habt ihr eine Idee wie ich das weiter testen/eingrenzen kann?
Man kann ja schlecht eine LED leuchten lassen, wenn der Arduino abgeraucht ist
Die Kamera ist per BT weiterhin verbunden, mehr kann man ihr leider nicht entnehmen, ohne das Video auszulesen.