Aus purer Lust am Basteln habe ich mir einen CAN Bus Sniffer für mein Model 3 gebaut. Hauptzweck ist der Ersatz von ScanMyTesla (SMT) als Datensammler für den TeslaLogger. So praktisch SMT für das Online-Auslesen des CAN Bus ist, so unpraktisch und unzuverlässig ist der Dauerbetrieb mit einem Bluetooth OBD Dongle und permanent verbundenem Android Handy.
Ich hatte folgende Anforderungen:
- CAN Daten offline auf SD Karte sammeln und bei Verbindung mit dem Heimnetz Übertragung der Daten an den TeslaLogger.
- Um die SD Karte zu schonen sollte es eine unterbrechungsfreie Stromversorgung geben
Die erste Version bestand aus einem Raspberry Pi mit CAN Hat und UPS Board, programmiert mit C# mit Mono - inspiriert durch den TeslaLogger. Diese Version hat ca. ein Jahr lang, auch in einem 2-wöchigen Urlaub, zuverlässig Daten gesammelt.
Dann bin ich auf den ESP32 aufmerksam geworden. Der bringt CAN und WLAN bereits mit. Mit einem der vielen verfügbaren ESP32 Boards, Breakout Boards für Stromversorgung und CAN Treiber war die Hardware schnell „zusammengesteckt“, die Software musste allerdings komplett neu in C++ geschrieben werden. Das lief dann ebenfalls mehrere Monate und einen Urlaub in meinem Model 3.
Der Aufbau war allerdings ziemlich abenteuerlich, deshalb kam die Idee auf das Ganze „professionell“ anzugehen. Nach langem Recherchieren und mehreren Fehlversuchen habe ich schließlich 2 ICs gefunden die mit 12V (oder mehr…) einen LiPo Akku laden können und die für den ESP32 benötigten 3,3V entweder von der externen Versorgung oder aus dem Akku breitstellen können. Aus diesen wurde eine Spannungsversorgungsplatine mit OBD Stecker. Der ESP32 selbst sitzt mit SD Karte und CAN Treiber auf einer Extra-Platine.
Da ich dem ESP32 internen CAN nicht so recht getraut habe, habe ich sogar noch eine Bestückungsoption für den MCP2518 CAN Controller vorgesehen. Da man den derzeit ohnehin nicht bekommt und der ESP32 interne CAN prima funktioniert war das eigentlich überflüssig.
Die Platinen kann man für wenig Geld in China fertigen lassen, die Bauteile (SMD „Vogelfutter“) gibt es größtenteils auch in China beim Ali, den Rest bei Mouser. Bestückt habe ich meine Testexemplare mit Pinzette und Lupe. Die ersten Platinen habe ich noch mit Lötkolben gelötet, dann aber einen günstigen Lötofen gekauft - natürlich auch aus China
Diese dritte Variante läuft jetzt auch schon wieder einige Monate.
Jetzt fehlt eigentlich nur noch die Möglichkeit das Teil als Bluetooth Dongle für SMT verwenden zu können. Bei einem ersten Versuch hatte ich allerdings extreme Probleme mit der Performance, es gingen ca. 90% der CAN Daten verloren. Muss ich wohl nochmal ran…