Skip to content
BMW E46 CAN bus interpreter, deciphers and logs known frames. Used in my MDroid setup
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


This is a relatively simple Python script that implements most the good work of the people in this thread. It's missing a few bytes that I don't care so much about like fuel consumption and wheel rotation.

For my porpoises 🐬 this will supplement the more detailed yet slower KBus logging my MDroid system already does. Some of my applications require high speed value updates and this works nicely (120+ data frames/second!).


Tested only in 2.7, although canard is known to work in both Python 2 and 3


pip install pyserial python-can canard


If you're taking this for a spin, simply comment out the LOGGING_ADDRESS and make sure /dev/ttyACM0 is your attached CAN interface.

python ./

You can’t perform that action at this time.