Home / Automotive

536 open-source Automotive projects built by reverse engineering

Open-source projects in Automotive that exist because someone reverse engineered a closed product. Most-starred: openpilot, evcc, VESC firmware, opendbc, AAAD.

Search and filter this category →

Car APIs & Telematics179 all 179 →

  1. evcc★ 7,429 · active · Go

    EV charging controller integrating many wallboxes and car APIs

  2. OpenAuto★ 2,935 · slowing · C++

    Android Auto head unit emulator

  3. tesla-api★ 2,069 · active · Ruby

    Unofficial documentation and Ruby gem for Tesla's JSON API

  4. kia_uvo★ 978 · active · Python

    Home Assistant integration for Kia and Hyundai connected cars

  5. react-carplay★ 894 · active · TypeScript

    Electron/React CarPlay head unit using reverse-engineered Carlinkit USB dongle protocol

  6. tesla (HA custom)★ 787 · active · Python

    Home Assistant Tesla integration built on the unofficial Tesla owner API

  7. volkswagencarnet★ 709 · active · Python

    Home Assistant integration for Volkswagen We Connect

  8. tesla_auth★ 658 · active · Rust

    Generate Tesla owner-API tokens for third-party apps

  9. TeslaLogger★ 641 · active · C#

    Self-hosted Tesla data logger using the owner API

  10. psa_car_controller★ 601 · active · Python

    Control Peugeot, Citroen, Opel, DS cars via the reverse-engineered PSA API

CAN Bus & ECU154 all 154 →

  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

Scooters & E-bikes66 all 66 →

  1. VESC firmware★ 3,538 · active · C

    Open motor controller firmware widely used in e-skateboards and scooters

  2. hoverboard-firmware-hack-FOC★ 1,823 · active · C

    Custom field-oriented-control firmware for hoverboard mainboards

  3. hoverboard-firmware-hack★ 875 · slowing · C

    Custom firmware for hoverboard mainboards written from scratch

  4. xiaomi-m365-firmware-patcher★ 443 · slowing · Python

    Patch Xiaomi M365 scooter firmware

  5. vanmoof-encryption-key-exporter★ 396 · archived · TypeScript

    Export your own VanMoof bike details and encryption keys

  6. m365_dashboard★ 224 · archived · C++

    Custom display dashboard for the Xiaomi M365 scooter

  7. M365-BLE-PROTOCOL★ 223 · dormant · C

    Documentation of the Xiaomi M365 scooter BLE protocol

  8. xiaomi-m365-compatible-bms★ 219 · dormant · C++

    Open-source BMS firmware compatible with the Xiaomi M365 scooter

  9. Hoverboard-Firmware-Hack-Gen2★ 215 · dormant · C

    Custom firmware for second-generation dual-board hoverboards

  10. bipropellant-hoverboard-firmware★ 204 · dormant · C

    Open source hoverboard firmware with serial control protocol

Head Units & CarPlay/Android Auto61 all 61 →

  1. AAAD★ 3,164 · active · Java

    Install third-party Android Auto apps outside the Play Store

  2. crankshaft★ 2,695 · active · Python

    Turnkey Raspberry Pi Android Auto head unit distribution

  3. WirelessAndroidAutoDongle★ 2,669 · slowing · C++

    Raspberry Pi wireless Android Auto dongle for cars with wired-only AA

  4. Fermata★ 1,458 · active · Java

    Media player and launcher with Android Auto support

  5. mib2-toolbox★ 1,034 · active · Python

    Toolbox for modifying and customizing Volkswagen-group MIB2-HIGH infotainment units

  6. wireless-carplay-dongle-reverse-engineering★ 942 · active · C

    Reverse engineering of CPlay2Air / Carlinkit wireless CarPlay dongles

  7. AAIdrive★ 699 · active · Kotlin

    Android Auto-style apps on BMW/Mini iDrive via its reverse-engineered protocol

  8. MZD-AIO★ 691 · slowing · JavaScript

    Tweaks and apps installer for Mazda Connect infotainment

  9. AAMirror★ 553 · slowing · Java

    Mirror the phone screen onto Android Auto

  10. DiAuto★ 508 · active · Kotlin

    Wireless and USB Android Auto receiver for BYD DiLink head units

Bikes, Trainers & Bike Computers41 all 41 →

  1. qdomyos-zwift★ 887 · active · C++

    Bridge making treadmills and bikes work with Zwift and other apps

  2. bikecontrol (SwiftControl)★ 642 · active · Dart

    Use Zwift Play/Click/Ride controllers for virtual shifting in any rider app

  3. gymnasticon★ 329 · dormant · JavaScript

    Make proprietary exercise bikes (Peloton, Flywheel) work with Zwift and others

  4. SmartSpin2k★ 291 · active · C++

    Turn a spin bike into a smart trainer with FTMS support

  5. Openpelo★ 289 · active · Dart

    Install additional apps on Peloton bikes and treads

  6. openant★ 229 · active · Python

    ANT and ANT-FS Python library

  7. sauce4zwift★ 175 · active · JavaScript

    Live overlays and data for Zwift by decoding its network traffic

  8. pycycling★ 174 · slowing · Python

    Python BLE library for trainers, power meters, radars and HR monitors

  9. FortiusANT★ 168 · slowing · Python

    Make pre-smart Tacx trainers talk ANT+/BLE FTMS to Zwift and others

  10. python-ant★ 164 · dormant · Python

    Python implementation of ANT, ANT+ and ANT-FS protocols

EV Batteries & BMS25 all 25 →

  1. Battery-Emulator★ 2,993 · active · C++

    Reuse EV battery packs with solar inverters by emulating reverse-engineered BMS CAN protocols

  2. Nissan-LEAF-Battery-Upgrade★ 361 · active · C

    Software and guides for fitting bigger batteries into Nissan Leafs

  3. venus-os_dbus-serialbattery★ 282 · active · Python

    Victron Venus OS driver for many serial/BLE BMS (JK, Daly, JBD, Seplos)

  4. esphome-yambms★ 234 · active

    Multi-BMS merging solution for ESPHome (JK, JBD, etc.)

  5. TeslaBMS★ 182 · dormant · C++

    Talk to Tesla Model S battery module boards for reuse in conversions

  6. Daly2MQTT★ 177 · active · C++

    ESP8266 bridge reading Daly and compatible BMS data into MQTT

  7. Smart-BMS-Bluetooth-ESP32★ 121 · slowing · C++

    Read and display Xiaoxiang smart BMS data over BLE on ESP32

  8. SimpBMS★ 97 · dormant

    BMS for reused OEM EV battery modules (Tesla, BMW, VW)

  9. Twizy-Virtual-BMS★ 95 · dormant · C++

    Arduino library emulating the Renault Twizy BMS CAN protocol for custom batteries

  10. OverkillSolarBMS★ 86 · slowing

    Docs and tools for Overkill Solar (JBD) BMS protocol

Motorcycles10

  1. bmw-motorrad-projects★ 20 · dormant

    Code and docs for BMW motorcycle CAN projects

  2. Zero-Dashboard★ 17 · dormant · C

    Alternative Zero Motorcycles dashboard on ESP32 via CAN bus

  3. zero-motorcycle-canbus★ 14 · dormant · C++

    CAN bus message discovery on Zero motorcycles

  4. zero-motorcycles-integration★ 14 · slowing · Python

    Home Assistant integration for cellular-connected Zero motorcycles

  5. mcluster★ 10 · archived · Java

    Android BMW Motorrad instrument cluster

  6. zero-log-parser★ 10 · archived · Python

    Decoder for Zero Motorcycles MBB and BMS diagnostic logs

  7. ZeroNavBridge★ 8 · active · Kotlin

    Send navigation info to Zero motorcycle dashboards

  8. zmci-tool★ 5 · dormant · Python

    Unofficial Zero Motorcycles cloud interface tool

  9. browser-parse★ 4 · dormant · HTML

    In-browser decoder for Zero motorcycle MBB/BMS logs

  10. MotoRecoLogger★ 3 · dormant · C

    BMW Motorrad CAN data logger