CAN Sniffer is a comprehensive system designed to capture and analyze live data from a vehicle's CAN Bus using a custom hardware attachment and a dedicated desktop application. The hardware component incorporates an Arduino Uno equipped with an MCP2515 CAN Bus module that connects to a vehicle's OBD2 port. The desktop side is powered by a Python-based PyQt GUI that facilitates real-time visualization, filtering, and management of CAN messages. Users can monitor and log incoming data, control the data flow, and save sessions to CSV files for further analysis, making the solution ideal for automotive diagnostics and research.
Reading live data from the CAN Bus using the hardware attachment and PyQt GUI from the laptop
OBD2 Port on the left, Arduino Uno in the middle and mcp2515 module on the right
CanSniffer GUI when first launched
- Arduino Uno
- OBD2 Port
- MCP2515 CAN Bus Module
| Arduino | MCP2515 |
|---|---|
| Pin 2 | INT |
| Pin 13 | SCK |
| Pin 11 | SI |
| Pin 12 | SO |
| Pin 10 | CS |
| 5V | VCC |
| GND | GND |
-
Connect the MCP2515 CAN Bus module to the arduino according to the above pinnout
-
Download repository
-
Upload the provided platformio code onto the Arduino (/PlatformIO/CAN Sniffer)
-
Open up the PyQtGUI folder from your terminal and run the following:
pipenv shell pipenv install -r requirements.txt python main.py
-
Connect OBD2 port to your car and scan away!