Home / Automotive / CAN Bus & ECU

154 open-source CAN Bus & ECU projects

CAN Bus & ECU (Automotive): open-source projects that exist because someone reverse engineered a closed product, sorted by GitHub stars.

  1. openpilot★ 64,003 · active · Python

    Open-source driver assistance system for 300+ car models

  2. opendbc★ 3,518 · active · Python

    Reverse-engineered DBC files and Python API for controlling car steering, gas and brake

  3. cantools★ 2,305 · active · Python

    CAN bus tools: DBC/KCD parsing, decoding and monitoring

  4. AndrOBD★ 2,161 · active · Java

    Android OBD diagnostics with any ELM327 adapter

  5. sunnypilot★ 2,154 · active · Python

    openpilot fork with extra car support and features

  6. DDT4All★ 1,910 · active · Python

    Create ECU parameter screens and talk to Renault ECUs with an ELM327

  7. SavvyCAN★ 1,892 · active · C++

    Qt GUI for capturing and reverse-engineering CAN bus traffic

  8. panda★ 1,707 · active · C

    Universal car interface firmware and library for CAN reverse engineering

  9. python-can★ 1,609 · active · Python

    Python CAN bus library used by many reverse-engineering tools

  10. python-OBD★ 1,324 · slowing · Python

    OBD-II serial module for reading engine data

  11. pyobd★ 1,273 · active · Python

    OBD-II automotive diagnostic tool in Python

  12. CANdevStudio★ 1,148 · slowing · C++

    CAN bus simulation and analysis development tool

  13. canmatrix★ 1,091 · active · Python

    Convert CAN database formats (.dbc, .arxml, .kcd, .sym)

  14. CAN_Commander★ 1,077 · active · C

    Hardware/software tool for reverse engineering CAN bus systems

  15. OpenVehicleDiag★ 1,020 · slowing · Rust

    Rust cross-platform ECU diagnostics tool using J2534 passthru

  16. awesome-automotive-can-id★ 1,007 · active

    Collection of CAN IDs and payloads for many car brands

  17. ICSim★ 988 · slowing · C

    Instrument Cluster Simulator for practicing CAN hacking

  18. Caring Caribou★ 965 · active · Python

    Car security exploration tool for the CAN bus

  19. EdiabasLib★ 939 · active · C#

    Open BMW EDIABAS reimplementation for diagnostics and coding

  20. OVMS3★ 873 · active · C

    Open vehicle monitoring system firmware with reverse-engineered CAN support for many EVs

  21. wican-fw★ 816 · active · C

    Firmware for WiCAN OBD-II/CAN to WiFi/BLE adapter with MQTT and HA support

  22. CANalyzat0r★ 793 · dormant · Python

    Toolkit for analyzing proprietary car CAN protocols

  23. python-udsoncan★ 735 · active · Python

    Python implementation of the UDS ISO-14229 standard

  24. ELM327-emulator★ 694 · active · Python

    ELM327 OBD-II adapter emulator with multi-ECU simulation

  25. VW_Flash★ 566 · active · Python

    Flash and patch VW/Audi Simos and DSG ECUs over CAN

  26. pyvit★ 515 · archived · Python

    Python Vehicle Interface Toolkit for CAN and automotive protocols

  27. freediag★ 496 · slowing · C

    Free diagnostic software for OBD-II vehicles

  28. CAN_Reverse_Engineering★ 456 · slowing · Python

    Automated payload reverse-engineering pipeline for CAN

  29. OBDium★ 430 · active · Rust

    Open-source OBD-II diagnostics software in Rust from reverse-engineered PIDs

  30. cangaroo★ 428 · dormant · C++

    Open-source CAN bus analyzer with DBC decoding

  31. ESP32RET★ 417 · active · C++

    CAN reverse engineering tool firmware for ESP32 boards

  32. model3dbc★ 414 · dormant

    Reverse-engineered DBC file for the Tesla Model 3 CAN bus

  33. Kayak★ 340 · archived · Java

    CAN bus analysis tool based on SocketCAN

  34. UDSim★ 340 · dormant · C++

    UDS simulator and fuzzer

  35. python-can-isotp★ 315 · active · Python

    Python ISO-TP (ISO 15765) transport for vehicle diagnostics

  36. CANToolz★ 305 · dormant · Python

    Black-box CAN network analysis framework

  37. can-explorer★ 304 · active · Python

    CAN bus visualization tool to aid reverse engineering

  38. OBD-PIDs-for-HKMC-EVs★ 289 · dormant

    Decoded OBD PIDs for Hyundai/Kia electric vehicles

  39. kw1281test★ 279 · active · C#

    Tool for the VW KW1281 diagnostic protocol (cluster, ECU, radio)

  40. Stm32-vcu (ZombieVerter)★ 265 · active · C++

    ZombieVerter VCU that drives OEM EV parts (Leaf, Outlander, BMW) for conversions

  41. CANBUS-Analyzer★ 259 · slowing · C#

    CAN bus analyzer originally built for Scan My Tesla

  42. mercedes-hacking-docs★ 253 · dormant

    Documents on reverse engineering Mercedes vehicle ECUs and CAN networks

  43. cantact-app★ 233 · dormant · Java

    Desktop CAN analysis app for CANtact interfaces

  44. EVNotify★ 233 · active · Vue

    Monitors EV state of charge via OBD-II dongle and notifies when target is reached

  45. can-bus-reverse-engineering-skills★ 232 · active · Python

    Claude Code skills for reverse engineering CAN bus signals into DBC files

  46. CanCat★ 218 · dormant · Python

    Swiss army knife for CAN reverse engineering

  47. python-doipclient★ 214 · active · Python

    Pure Python ISO 13400 Diagnostics over IP client

  48. cabana★ 206 · archived · JavaScript

    CAN visualizer and DBC maker

  49. PSAVanCanBridge★ 190 · active · C

    VAN to CAN protocol bridge for PSA Group (Peugeot, Citroën) cars

  50. node-bmw-client★ 188 · active · JavaScript

    Node.js interface for E38/E39/E53/E6x/E9x BMW vehicle buses

  51. evDash★ 184 · active · C++

    EV dashboard reading battery and drive data over OBD-II BLE or CAN

  52. CaesarSuite★ 176 · active · C#

    Library and apps for Daimler CBF diagnostic files

  53. canbus★ 175 · slowing

    Controller Area Network reference, wiki and DBC files for BMW and other vehicles

  54. W203-canbus★ 175 · dormant · C++

    Bluetooth audio control and CAN projects for W203/W211 Mercedes

  55. CanZE★ 148 · slowing · Java

    Android app reading Renault ZE (Zoe, Kangoo) CAN data via OBD

  56. pq-flasher★ 145 · slowing · Python

    Tools and libraries to reflash the VW PQ35 electric power steering ECU

  57. Volvo-CAN-Gauge★ 135 · dormant · Roff

    Reverse engineering the Volvo VIDA protocol for a diagnostic gauge

  58. ultimate_nag52★ 131 · active

    Open-source TCM for the Mercedes 722.6 gearbox

  59. nisprog★ 117 · active · C

    Nissan ECU reflashing and RE tools

  60. GVRET★ 115 · dormant · C++

    Generalized Electric Vehicle Reverse Engineering Tool firmware

  61. PSA-RE★ 113 · active · Python

    PSA (Peugeot/Citroen/DS) electronics architecture reverse engineering

  62. volvo_linbus★ 112 · dormant · C++

    Volvo LIN bus reader for steering wheel buttons

  63. MxT★ 111 · active · Kotlin

    ME7 ECU calibration tools for MAF, fueling and torque maps

  64. FastECU★ 110 · active · C++

    Tuning, logging and flashing software for OEM ECUs

  65. automotive-security-research★ 105 · dormant · Python

    Reverse engineering results and resources for several vehicles

  66. PyVCDS★ 103 · archived · Python

    Reimplementation of VCDS VAG diagnostics in Python with SocketCAN

  67. imBMW★ 101 · slowing · C#

    BMW I-Bus .NET Micro Framework SDK and hardware

  68. PiCCANTE★ 99 · active · C++

    Raspberry Pi Pico tool for exploring and reversing vehicle CAN buses

  69. MQB-sniffer★ 96 · active · C++

    CAN bus sniffing for the Volkswagen Golf Mk7 and other MQB platform cars

  70. c0f★ 95 · dormant · Ruby

    CAN bus fingerprinting tool to identify make and model

  71. can-gateway-sniffer★ 93 · dormant · C

    Embedded CAN bus sniffer that monitors internal vehicle buses and triggers actions

  72. CAN-RE-Tool★ 90 · dormant · Perl

    Reverse-engineering tool for CAN bus systems

  73. OpenHaldex-C6★ 90 · active · C++

    Open-source Haldex AWD controller firmware for ESP32-C6 on VW and Audi vehicles

  74. CanLab★ 89 · active · Python

    Desktop app for reverse engineering CAN bus captures

  75. FG-Falcon★ 87 · active · HTML

    Ford FG Falcon CAN bus and module reverse engineering

  76. can2RNET★ 84 · active · Python

    Code and documentation to control power wheelchairs with R-Net electronics over CAN

  77. node-bmw-ref★ 84 · dormant · C

    BMW CAN, D-Bus, I-Bus and K-Bus message reference and examples

  78. OBD2_KLine_Library★ 81 · active · C++

    OBD2 K-Line diagnostics library for Arduino/ESP32 supporting ISO9141 and KWP2000

  79. KLineKWP1281Lib★ 80 · slowing · C

    Arduino/ESP/Pico library for the proprietary VAG KWP1281 K-Line diagnostic protocol

  80. ESP32_RET_SD★ 78 · slowing · C++

    CAN bus reverse engineering tool firmware for ESP32

  81. Ioniq5_CAN★ 77 · active · Jupyter Notebook

    Hyundai Ioniq 5/6 and Kia EV6 battery preconditioning via CAN

  82. VanBus★ 77 · active · C++

    Vehicle Area Network (VAN) bus packet reader/writer for ESP8266 and ESP32

  83. arduino-psa-comfort-can-adapter★ 73 · slowing · C++

    Run newer PSA/Stellantis CAN2010 devices on older CAN2004 cars

  84. CANLogger★ 71 · dormant · C#

    CAN bus logger and analyzer tool

  85. BMW_IBus_KBus★ 70 · active · C++

    ESP32/Arduino firmware controlling BMW E46 lights, windows and locks over I-Bus/K-Bus

  86. Nissan-Leaf-Inverter-Controller★ 68 · dormant · C++

    Open control unit for Nissan Leaf Gen1/Gen2 inverters via reversed CAN messages

  87. 7226ctrl★ 67 · dormant · C++

    Controller for the Mercedes 722.6 automatic transmission

  88. MazdaCANbus★ 67 · dormant

    Database of known Mazda CAN messages

  89. TruckDevil★ 66 · active · Python

    Framework for assessing J1939 ECUs on trucks

  90. tune-editor★ 61 · active · TypeScript

    Web-based ECU and TCU map editor for Simos12/18 and DQ250 with A2L/XDF definitions

  91. Volvo-VIDA★ 61 · slowing · PowerShell

    Reverse engineering Volvo VIDA to read vehicle CAN bus information

  92. npkern★ 60 · active · C

    Nissan/Infiniti ECU reflashing kernel for use with nisprog

  93. medc17-checksum-tool★ 59 · active · Python

    Checksum analyzer and corrector for Bosch MED17/EDC17 ECU firmware

  94. BMW-iDrive-HID★ 57 · dormant · C++

    Use a BMW iDrive controller as a BLE HID device

  95. Nissboard★ 57 · dormant · JavaScript

    Real-time dashboard for the Nissan Consult and OBD-II protocols

  96. reversegear★ 54 · dormant · Python

    Offline reverse-engineering tools for automotive networks

  97. openpilot-cabana★ 53 · active · C++

    CAN / CAN FD bus analyzer for reverse engineering and diagnostics

  98. VanLiveConnect★ 53 · active · C++

    Live data from a PSA vehicle's VAN bus on a smartphone

  99. Ford-Fiesta-MK5-MS-CAN-bus★ 52 · dormant

    Reverse engineering of Ford Fiesta MK5 MS-CAN messages

  100. toyota-mpx★ 52 · active · C

    AVR driver for the Toyota MPX (BEAN) body bus

  101. BMW-i3-CCS★ 51 · slowing · Roff

    Reverse engineering the BMW i3 LIM module for open-source CCS fast charging

  102. IDAProBoschMe7x★ 51 · dormant · C

    IDA Pro helper for disassembling Bosch ME7.x C16x engine ECU firmware

  103. ReCAN★ 51 · dormant · Jupyter Notebook

    Datasets and tools for reverse engineering Controller Area Networks

  104. VolvoCan★ 51 · dormant · C++

    Volvo XC90 CAN adapter restoring wheel buttons and park assist functionality

  105. dieslg8★ 49 · dormant · C++

    Arduino CAN bus project for the BMW M57 diesel engine

  106. esp32_rmt_van_rx★ 45 · slowing · C++

    ESP32 RMT reader for the PSA Vehicle Area Network (VAN) bus

  107. node-bmw-interface★ 45 · active · JavaScript

    Server bridging BMW D-Bus, I-Bus, K-Bus and CAN to a JSON socket

  108. ODIS-project-explorer★ 45 · active · Python

    Python dumper/explorer for VW ODIS MCD runtime projects

  109. openremap-core★ 43 · active · Python

    Identifies ECUs, finds calibration maps without prior knowledge and diffs binaries into recipes

  110. carhack★ 39 · dormant

    Reverse engineering vehicle CAN bus messages

  111. strym★ 39 · active · Python

    Real-time CAN logging, decoding and visualization for vehicles

  112. toyoyta_radar_control_can★ 39 · dormant · Python

    Reverse-engineered CAN messages to run the radar from 2016+ Toyotas with TSS

  113. rx8-ecu-dump★ 38 · dormant · C

    Utility to dump the Mazda RX8 ECU firmware

  114. PSASteeringWheelAdapter★ 37 · dormant · C++

    ESP32 steering wheel adapter for Peugeot and Citroën cars

  115. BrakeModule★ 36 · slowing · Python

    Controls braking on a BMW E39 through the Bosch ABS 5.7 module over CAN

  116. toyota-can-bus-multitool★ 35 · dormant · C++

    Arduino sketch adding features to TNGA Toyota vehicles over CAN

  117. GKFlasher★ 34 · active · Python

    Flashing tool for Siemens SIMK43/41 ECUs in Hyundai/Kia vehicles

  118. kwp-android-logger★ 34 · dormant · Java

    KWP2000 data logger for Android over Bluetooth ELM327

  119. BimmerDis★ 32 · slowing · C++

    Disassembles BMW ECU parameter definition files such as .prg into readable data

  120. esp32-r50-kbus★ 32 · active · C

    K-Bus/I-Bus to Bluetooth bridge for Minis and BMWs

  121. openconsult★ 30 · dormant · C++

    Open-source C++ library and tools for reading Nissan's Consult diagnostic protocol

  122. VolvoP2_CAN★ 30 · dormant · C++

    Discovered CAN bus commands for the Volvo P2 platform

  123. van-bus★ 29 · dormant · Assembly

    Reverse engineering of the Peugeot/Citroën VAN bus

  124. kwp2000★ 27 · dormant · Java

    KWP2000 diagnostic protocol library for Java

  125. VAG_KW1281★ 26 · active · C++

    Communication with VAG ECUs over the KW1281 protocol on Arduino and ESP32

  126. iDrive★ 25 · active · C++

    BMW iDrive controller CAN bus interpreter

  127. Scenic2DashCanEmu★ 25 · slowing · C++

    Low-cost Arduino CAN emulator for repairing Renault Scenic 2 instrument clusters

  128. e90-can-cluster★ 23 · active · C++

    Drives a BMW E90 instrument cluster from an Arduino over CAN

  129. volvo_vida_db★ 23 · active · Python

    Scripts and SQL for working with data from the Volvo VIDA database

  130. arduino_tss463_van★ 22 · active · C++

    Arduino library for the TSS463/TSS461 VAN bus interface chips

  131. DigifizReplica★ 21 · active · C

    Replica of the VW Golf 2 Digifiz digital dashboard on Arduino/ESP32

  132. kona-ev-dbc★ 21 · slowing

    Reverse-engineered CAN signal database for the Hyundai Kona Electric

  133. HyundaiElantraCN7_OBD2_PIDs★ 20 · active

    List of OBD2 PIDs supported by the Hyundai Elantra CN7

  134. bmw-virtual-reader★ 18 · slowing · Rust

    Creates virtual reads of BMW ECUs from PSDZ data

  135. svietlik★ 18 · active · TypeScript

    TypeScript library talking to BMW light modules over ENET (HSFZ/DoIP, UDS)

  136. Barra-in-a-Beamer★ 17 · slowing · C++

    CAN interfacing a Ford Barra engine into a BMW 7 Series

  137. toyota-dsu-reroute-harness★ 17 · active

    Harness rerouting a Toyota DSU CAN bus for openpilot longitudinal control

  138. beemuu★ 16 · active · JavaScript

    Open-source BMW diagnostic and telemetry suite in Tauri, Rust and Python

  139. SGML_Object_File_reader★ 15 · slowing · PHP

    Dumps contents of VW ODIS SGML Object File (.sgo) version 2 files

  140. 8hp-cc-patch★ 14 · active · Python

    Patches the MSV80 DME gear-decode routine to add 8th-gear cruise control on 8HP-swapped BMWs

  141. e87-cluster-simhub★ 14 · slowing · C++

    Drives a BMW E87/E9X cluster with game telemetry via Arduino and CAN

  142. esp32-canbox-nissan★ 14 · active · C++

    ESP32-C3 CAN gateway translating Nissan Juke CAN frames for aftermarket head units

  143. lin_bus_rav4_climate_control_g474re★ 14 · active · C

    Reverse engineering of the Toyota RAV4 XA50 climate panel LIN bus on STM32

  144. volvo-monitor★ 14 · dormant · JavaScript

    Logs engine parameters from 2000-2009 Volvos over their diagnostic protocol

  145. Audi-q3-8u-ADS★ 13 · slowing

    Enabling Audi Drive Select on the Audi Q3 (8U) with RMC and MMI systems

  146. psa_van_bus_packet_descriptions★ 13 · dormant · HTML

    PSA VAN bus packet descriptions

  147. TLBFISLib★ 13 · slowing · C++

    Arduino library for showing custom info on the VAG instrument cluster FIS/DIS display

  148. audi-mlb-evo-lin★ 12 · active

    Reverse-engineered LIN protocol of Audi MLB evo center console switch panel

  149. esp32_rmt_van_tx★ 12 · dormant · C

    ESP32 RMT writer for the PSA VAN bus

  150. simulator★ 11 · dormant · Python

    Debug and simulation tool for PSA AEE2004 CAN networks

  151. byd-seat-memory★ 8 · slowing · Java

    Aftermarket seat memory for BYD Dolphin Plus, reverse-engineered from the vehicle's Electro app

  152. gs860-5hp19★ 7 · active · Python

    Reverse engineering of the Bosch GS8.60 / ZF 5HP19 transmission controller: XDF and patch tool

  153. VW-MEB-DCDC-Hacking★ 7 · active · Python

    Reverse engineering of the VW MEB DC-DC converter (Bosch Gen4H13) for EV conversions

  154. LowBatteryReverse★ 0

    Reverse engineering of a low-battery CAN bus sensor