Open Vehicle Diag v1.0.5 releases: cross-platform ECU diagnostics and car hacking application
Open Vehicle Diagnostics
Open Vehicle Diagnostics (OVD) is a Rust-based open-source vehicle ECU diagnostic platform that makes use of the J2534-2 protocol.
The idea is to make diagnosing and exploring your cars diagnostics functions possible, via an API, thus allowing the ability for you to reprogram ECU’s without the need for a special dealer-only tool.
This is for my University FYP for my degree at the University of Reading.
Feature checklists – Current status (33%)
Features marked with ‘(WIP)’ are actively being developed!
Reverse engineering framework
- Define a schema in JSON for others to follow (WIP)
- User guide on how to write a custom parser for an OEM’s Database file (WIP)
- Reverse engineering note on MB CBF (WIP)
Diagnostic application
- J2534-2 API
- Packet tracing support
- Support K-Line
- Support CAN
- Send and receive custom UDS Commands
- Realtime performance data viewer for certain views
- DTC View and clearer
Macchina J2534 driver
- Support J2534-2 API Passthru functions
- packet Logger
- ISO9141
- ISO14230 (KWP2000)
- CAN
- ISO15765 (ISO-TP)
Repository structure
app_rust
Directory of the OVD app (See contained README)
CBFParser
Parses Mercedes CBF Files into JSON
SMRParser
Parses Mercedes SMR Files into JSON
Common
Common library for both parser and GUI Application
MacchinaM2-J2534-Rust
Contains Common J2534 API references and Driver code for Macchina M2 Under the dash
Changelog v1.0.5
This is a minor update, with a few changes and bug fixes:
- Ability for application crashes to be logged to a file, with a dialog presented to the user
- Improved CAN Tracer. Can now toggle between 29/11bit CAN ID Addressing, and select baud rate
- Re-worked communication API, should help with some crashes
The re-worked communication API is a necessary addition for adding other communication protocols such as ISO9141 and J1850. This will be added later to OpenVehicleDiag. The necessary addition was the Interface abstraction layer (See below). TLDR; this allows the diagnostic servers to send the same data, and for this abstraction layer to convert to protocol-specific payloads for transmitting to a vehicle:
Download & Use
Copyright (C) 2020 rnd-ash