Tools for hacking your car
Alternatives To Candrive
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
16 days ago11mitC++
Arduino OBD-II Bluetooth Scanner Interface Library for Car Hacking Projects
a year ago16mitC
Tools for hacking your car
Arduino Obd2282
a year ago11mitC++
An Arduino library for reading OBD-II data from your car over CAN bus
Canbus Triple238
4 years ago11mitC
CANBus Triple – The car hacking platform
7 years ago9C++
3 years ago5mitJavaScript
Main branch for BARC related code
5 years ago26Eagle
An Arduino based LINBUS stack and signal interceptor/injector.
Mbux Port72
3 years ago1Kotlin
Custom Infotainment UI for older Mercedes vehicles (2000-2007), inspired loosely by the 2021 S Class MBUX UI
Esp32 Obd2 Gauge67
23 days ago2gpl-3.0C
DIY bluetooth obd2 gauge with ESP32
Nano Can61
a year agoC++
Arduino code for use with nano can PCB
Alternatives To Candrive
Select To Compare

Alternative Project Comparisons


Tools for hacking your car. Please concider checking out the tutorials made about this project:

I've created this google sheet, so everybody can freely add their decoded IDs and packets, so it's easier for the community to collaborate:


  • 01_canSniffer_Arduino: This code runs on your arduino sniffer device and creates an interface between the car and the GUI.
  • 02_canSniffer_GUI: Powerful and easy-to-use graphical sniffer application used for reverse engineering CAN packets. Written in Python.
  • 03_canSniffer_HW: Hardware projects for the custom OBD2 module. Made in Altium Designer.
  • 04_canSniffer_FW: Embedded code running on the custom OBD2 module.



This code creates the interface between the car and the canSniffer_GUI application. If the RANDOM_CAN define is set to 1, this code is generating random CAN packets in order to test the higher level code. The received packets will be echoed back. If the RANDOM_CAN define is set to 0, the CAN_SPEED define has to match the speed of the desired CAN channel in order to receive and transfer from and to the CAN bus. Required arduino packages:

  • CAN by Sandeep Mistry (

Required modifications:

  • MCP2515.h: 16e6 clock frequency reduced to 8e6 (depending on MCP2515 clock)
  • MCP2515.cpp: extend CNF_MAPPER with your desired CAN speeds


Python 3 is required for this project, 3.8 is preferred. The GUI is based on pyQt. This project contains my decoded packets in save/decodedPackets.csv. The required python packages can be installed with:

$ pip install -r requirements.txt


Altium Designer projects for the hardware projects. Currently version 2. The module consists of 2 PCBs (board1 & board2). The libraries of the used components can be found under the common folder. Schematics can also be found as PDF files.


(BETA) Only board1 beta firmware is uploaded yet. It is a STM32CubeIDE project for the STM32F413. To be uploaded: nRF project for board2.

To be uploaded

  • Final version of the firmware.
  • (at some point) Source code for the mobile application that is compatible with the v2 hardware.
  • (potentially) New versions of the hardware module.
Popular Car Projects
Popular Arduino Projects
Popular Hardware Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Can Bus