This list helps a reverse engineering CAN bus devices with lightly specializing in automotive embedded controller software and communication understanding.
URL: https://github.com/iDoka/awesome-canbus
- CarHackingTools - Collection of Common Car Hacking Tools a scripts collection to help jump start car research and hacking
- Caring Caribou - A friendly car security exploration tool for the CAN bus
- CAN_Reverse_Engineering - Automated Payload Reverse Engineering Pipeline for the Controller Area Network (CAN) protocol
- carhacking - Car hacking scripts and docs collection
- ReCAN - Reverse engineering of Controller Area Networks
- parse_can_logs - Parse CAN logs and visualize data streams on plot
- reversegear - Offline Reverse Engineering Tools for Automotive Networks
- CANalyzat0r - Security analysis toolkit for proprietary car protocols
- CANToolz - Black-box CAN network analysis framework
- UDSim - Unified Diagnostic Services Simulator and Fuzzer
- GVRET - Generalized Electric Vehicle Reverse Engineering Tool (Arduino FW)
- uds-server - CAN UDS Simulator and Fuzzer
- CANalyse - a vehicle network analysis and attack tool
- canhack - A low-level CAN protocol hacking library
- Linux CAN Utils - Linux-CAN / SocketCAN user space useful utils
- cantools - collection of CLI tools for the CAN bus network
- BUSMASTER - an Open Source Software tool to simulate, analyze and test data bus systems such as CAN
- signalbroker-server - Tool to read and write CAN/LIN/flexray and other buses using gRPC which allows usage of preferred language
- CANiBUS - CAN Device Vehicle Research Server (OpenGarages.org)
- CANdevStudio from GENIVI - CAN simulation software using a drag-and-drop style GUI with interconnected functional blocks
- CANAL-View - Qt GUI for TouCAN USB to CAN bus converter
- wxCAN-Sniffer - CAN bus sniffer (PC side) with animation and chart
- CANLogger - CAN bus logger and analyzer tool
- Seeeed-USB-CAN-Analyzer - Closed source binary for noname Chinese USB-CAN adapter
- CANtact-app Desktop application for CANtact hardware interface
- SavvyCAN - Cross-platform Qt based GUI analysis tool. Supports SocketCAN compatible interfaces.
- Kayak - Java-based CAN traffic GUI analysis tool
- openCanSuite - Set of tools for analyzing, simulating and visualizing a CAN system
- Plotter and Scanner from SmartGauges - scanning and visualizing tool for automotive systems
- ICSim - Instrument Cluster Simulator for SocketCAN by OpenGarages
- CANgaroo - Qt-based CAN bus analyzer software
- CAN-X - C# CAN bus analyzer software
- CAN-Monitor-qt - universal CAN bus monitoring program
- cantools - CAN BUS tools in Python
- python-can - CAN package provides controller area network support for Python developers
- strym - real time CAN data logging and visualization tool to work with USB-CAN Interface
- canviewer - GUI program that allows the inspection of incoming can-bus messages, either from recorder can-bus data or live data
- python-UDSonCAN - Python implementation of UDS ISO-14229 standard
- can4python - A package for handling CAN bus signals on Linux SocketCAN. Useful for showing the contents of KCD files (also those converted from DBC files)
- Python-Vector-CANoe - Control Vector CANoe API by Python
- CanCat - Swiss army knife of CAN often used in cars and building automation, etc
- Pyfuzz_can - may be used in research to inject messages into a truck and cause acceleration, cluster spoofing, and degrade brake performance
- Robotell-USB-CAN-Python - Python program for Robotell USB-CAN Adapter
- python-socketcan-monitor - script to display data from a CAN bus over network interfaces
- cannelloni - SocketCAN over Ethernet tunnel
- tincan - Visualization of CAN bus traffic via UDP interface
- pican - TCP CAN reader
- canny - Simple CAN-over-IP gateway
- python-socketcan-monitor - script to display data from a CAN bus over network interfaces
- DDT4All - tool to create your own ECU parameters screens and connect to a CAN network with a cheap ELM327 interface
- ELM327SLCAN - ELM327 based vehicle's CAN bus sniffer
- Arduino-OBD2-Async - Arduino OBD library with asynchronous data requesting
- CAN-Shark working with OBD PIDs from Arduino + MCP2515 shield
- pyvit - Python Vehicle Interface Toolkit
- OBD2-Scantool - A python scantool to read OBD2 info from cars
- O2OO - OBD-II compliant car diagnostic tool. It reads sensor data from a car into an sqlite database
- freediag - Free diagnostic software for OBD-II compliant motor vehicles
- J1939-CANBUS - Supported Engines CAT, Perkins, Wartsalla, MTU, VOLVO
- J1939-Framework - Framework to work with J1939 Frames used in CAN bus in bus, car and trucks industries
- python-j1939 - SAE J1939 support dependent on python-can package. Provides codec and filtering by PGN but not full SPN decoding
- can-utils with J1939 support - Fork of can-utils with a few additional tools for J1939
- test-can-j1939 - how to use CAN J1939 on linux
- Seeeed-USB-CAN-Linux - CLI Linux Support for noname Chinese USB-CAN adapter
- opendlv-device-can-replay - OpenDLV Microservice to replay captured CAN frames to a CAN interface
- c0f - CAN bus fingerprinting tool is designed to analyze CAN bus traffic and fingerprint the Maker and Model
- canqv - Quick CAN frame inspection using CAN_RAW
- Candle.NET - .NET wrapper for the Candle API for candlelight CAN bus gateways/analysers (e.g. CANable, CANtact, etc)
- canSerializer - lib for serializing and deserializing CAN frames for transmission over a non CAN transport layer (Can be used to transport CAN frames over UART, SPI, etc)
- libwecan - header only lib to encode and decode CAN signal
- python-can - the can package provides controller area network support for Python developers
- VCAN - a tiny virtual CAN and CAN-FD bus library in C
- IMCTFD - Improved Microchip CAN Teensy FlexData Library MCP2517FD
- go-socketcan - Golang library for SocketCAN
- isotp-c - An implementation of the ISO-TP (ISO 15765-2) Support Library in C
- CAN-Examples - Example C code for CAN Sockets on Linux
- socketcan-demo - set of example programs which highlight how to make use of SocketCAN on Linux
- DBC Format Specification v1.0 - Leaked DBC file format specification v1.0 (the obsolete specification)
- DBC Format - Brief explanations about various sections, many examples and explains multiplexed signals well
- DBC File Explained - A Simple Intro to DCB file format
- An Introduction to J1939 and DBC files
- KCD - An open format to describe communication relationships in CAN. similar to DBC format but written in XML
- cantools by Erik Moqvist - CAN tools in python for DBC, KCD, SYM, ARXML 4 and CDD file parsing
- cantools by Andreas Heitmann - a set of libraries and command line tools for handling ASC, BLF, CLG, VSB, MDF, and DBC files
- CanDB - Generate CAN dbc file with OEM defined CAN matrix (xls)
- canmatrix - Converting CAN Database Formats .arxml .dbc .dbf .kcd
- CANBabel - Translator for several CAN description formats (supports KCD r/w and DBC read)
- can4python - A useful package for showing the contents of KCD files (also those converted from DBC files)
- dbcc - DBC to C (and CSV, JSON and XML) compiler using the mpc parser combinator library
- Vector DBC - library to access CAN Databases (aka CANdb, aka DBC files) from Vector Informatik
- dbcppp - C/C++ DBC file parser/tool
- can_decoder - API module for decoding raw CAN bus data to physical values using a DBC CAN database
- CANdb from GENIVI - Library for parsing DBC - CAN bus database description formats
- dbc-parser - A Flex/Bison/Lemon parser/scanner for DBC files
- Vector CANdb++ DBC file parser - modified version of the dbc file parser of eerimoq
All kind of HW like CAN bus USB2CAN dongles, loggers, sniffers, adapters, etc.
- CanDybugFW - Embedded firmware of the CanDybug, a CAN bus traffic analyzer which uses a custom protocol over a USB serial port emulation
- CAN-USB-dongle-fw - slcan firmware for the CVRA CAN to USB dongle
- pcan_cantact - PCAN firmware for CANtact ( CANable ) or any other similar boards
- pcan_pro_x - PEAK PCAN PRO/PRO FD firmware for STM32F4 based boards
- hadoucan-fw on STM32H750 - Firmware for SM-1301 USB-CAN FD adapter based on
- CANnon - A versatile CAN bootloader for the STM32 and friends
- USB_CAN-FD on ATSAME51 - This is an Open Source Hardware USB to CAN-FD Interface
- SuperCAN - An open source USB to CAN-FD protocol firmware for ATSAME51
- zubax_babel - High performance CAN-USB/CAN-UART adapter + UAVCAN devboard
- cantact-pro-hw - Hardware for the CANtact Pro, use cantact-pro-fw as firmware
- FlexCAN - Arduino library for CAN on Teensy 3.1, 3.2, 3.5, and 3.6
- BudgetCANv2 - FW for use on STM32G4 microcontroller to implement FDCAN and USB using the STM32 HAL. Tested on BudgetCANv2-HW
- Arduino-STM32-CAN - Can communication example for Arduino Core STM32
- eXoCAN - CAN Library for the STM32F103 aka Blue Pill
- CAN-BUS-Man-In-The-Middle - Dual CAN MitM-device based on STM32F105
- CAN-Bus-Arduino_Core_STM32 - Lowlevel CanBUS Example for Arduino Core STM32
- CAN-RS485-adapter
- STM32-CAN-Busadapter - CAN adapter on MCU stm32f303cb
- Ethernet-CAN converter - based on STM32F407
- CANBootloader - GUI + CAN booloader protocol
- ELM327 - Open-source ELM327 OBD adapter based on LPC1517JDB48
- stm32-CAN-bus-example-HAL-API - A simple example of CAN bus communications between two STM32 microcontrollers using the updated HAL API functions
- candleLight_fw - compatible firmware for candleLight, cantact, canable, CANAlyze, VulCAN
- CANsniffer on STM32F042 - CANbus sniffer less complicated than existing commercial products
- candleLight - KiCAD project of usb-can adapter based on STM32F0
- cantact-hw - Hardware design files for the CANtact tool, use cantact-fw as firmware source
- cantact - Drivers and Command Line Interface for CANtact tools
- USB2CAN - Compact and isolated USB-to-CAN Adapter
- CANAlyze - an open source, native CAN interface for Linux that can be built entirely using open source tools, use canalyze-fw as firmware source
- Cantact FW by x893
- ELM329 - Open-source ELM329 OBD adapter based on STM32F042
- arduino-canhacker - CanHacker (lawicel) CAN adapter on Arduino + MCP2515
- open-usb-can from Fabio Baltieri - CAN-to-USB dongle based on ATMega32U and MCP2515
- Arduino-CAN-bus-SD-logger - Arduino script to log CAN bus information to SD card. Mainly focused on J1939
- Arduino-canbus-monitor - Can bus monitoring tool based on arduino and can bus shield. Implements CAN ASCII/SLCAN protocol compatible with Lawicel CAN232/CANUSB
- Arduino-psa-comfort-can-adapter - Arduino sketch to operate new PSA (Peugeot, Citroen, DS, Opel) comfort devices (CAN2010) on old BSI CAN-BUS (CAN2004)
- epasuino - Arduino based Speed sensitive electric power steering for automobiles Speed sensitive electric power steering for automobiles
- carfuino - Arduino based Automotive performance computer with Megasquirt integration
- W203-canbus - Arduino project for W211/W219 W203/W209 Mercedes (bluetooth audio control and more)
- CANBus-Triple - The car hacking platform based on AVR and MCP2515 works with this firmware
- GVRET - Generalized Electric Vehicle Reverse Engineering Tool (Arduino FW)
- open-source-can-bridge - gateway with several CAN interfaces based on Xmega
- arduino-mcp2515 - Arduino MCP2515 CAN interface library
- slcanuino - USB-CAN (SocketCAN) sketch for Arduino CAN-BUS shield
- ESP-IDF-CANBus-Monitor - Monitor Canbus traffic ESP32
- connected-car - Connecting a Nissan e-NV200 (or Leaf) to MQTT
- PSASteeringWheelAdapter - ESP32 based steering wheel adapter for Peugeot and Citroen cars
- esp32-slcan - ESP32 slcan compatible device
- ESP32-Arduino-CAN - Arduino CAN-Bus library for ESP32
- ESP32RET - CAN Reverse engineering tool for ESP32 based boards
SBC - Single Board Computers
- beaglebone_black_socketcan - How to get access to the CAN bus on a BeagleBone Black via socketcan interface
- rpi-can-logger - Project to log CAN bus data from a PiCAN2 and a GPS module
- CANoPi - CAN interface for Raspberry Pi Zero
- Michrochip CAN BUS Analyzer on PIC18F2550/PIC18F2680 Firmware - Michrochip CAN BUS Analyzer firmware
- Michrochip CAN BUS Analyzer on PIC18F2550/PIC18F2680 Driver - Linux kernel driver for Microchip CAN BUS Analyzer Tool
- BB-to-STM32 - LED sync between BeagleBone Black and STM32F4 Discovery Board
- CAN Bus Bit Timing Calculator - online tool for obsolete SJA1000 and MCP2510 (probably it works for MCP2515)
- STM8S208 CAN Speed Calculator - CAN Speed Calculator for STM8 (perhaps it also works for STM32 family)
Follow this root-repo for lastest updates: https://github.com/iDoka/awesome-canbus
#awesome #awesome-list #can #can-bus #canbus #canfd #can-fd #logger #sniffer #slcan #socketcan #car-hacking #bus-monitoring #lawicel #elm327 #obd2 #canutils #automotive #embedded #arduino #rpi #raspberry-pi #sae #uds #j1962 #j1939 #j1979 #j2534 #lin #lin-bus #local-interconnect-network #flexray #obd-ii #slcan-protocol #usbtin #usb2can #iso11898 #iso11565 #iso11765 #iso14229 #dbc #odb #ldf #electric-vehicles #vehicular-networks #python #automotive-security