Passiver CAN-Sniffer?

Ich möchte die Daten auf einem Fahrzeug-CAN-Bus mitlesen, ohne den Bus dabei selbst zu aktivieren. Hintergrund ist eine selten auftretende Fehlfunktion meiner Karre, dass sich irgendein Controller nicht schlafen legt nach der üblichen Zeit und dann die Batterie leernuckelt. Ich möchte gerne herausfinden, welche Controller zu jeder Zeit aktiv sind und das protokollieren.

Die üblichen OBDC-Dongles sind alle aktiv und wecken den Bus - kann ich nicht gebrauchen.

Hat jemand einen Link für mich oder so etwas sogar selbst schon mal gemacht?

Hilft dir das weiter?

.. du kannst statt dem teuren LA natürlich auch einen um 10.- von Aliexpress holen :)

Ah, auf die Idee bin ich nicht gekommen - einen Saleae-Nachbau habe ich, einen CAN-Adapter auch. Schaunmermal.

Da fehlt mir leider Erfahrung, aber in meinem Thema UNO - Mega - Teensy mittels CAN-Bus verbinden habe ich mit einem µC mitgelesen. Ob ich dabei den Bus geweckt habe, weiß ich leider nicht, es ist schon etwas Zeit seitdem vergangen. Bei Fragen bitte fragen :wink:

Ergänzung:

Bei der von mir verwendeten Bibliothek gibt es

#define MCP_NORMAL     0x00
#define MCP_SLEEP      0x20
#define MCP_LOOPBACK   0x40
#define MCP_LISTENONLY 0x60

Da ist doch LISTENONLY vielversprechend.

Das halte ich für eine sehr schöne Lösung, danke für den Link!

Ein "echter" CAN-Controller würde Nachrichten immer mit einem ACK quittieren - und damit möglicherweise den Bus am Leben halten, auch wenn er selbst nie sendet.