ECU_Diagnostics 0.90.0! - Nearing Version 1.0

39 points UKSFM99

With the news that AUTOSAR and other Automotive organizations are looking into Rust, I thought It is about time I publish a huge update to my ECU diagnostics crate!

What does this crate do?

In short, this crate provides the most common diagnostic servers used to communicate with ECUs over the OBD port using a diagnostic adapter (KWP2000, OBD2 and UDS), as well as providing an interface for talking with VCI adapters (Vehicle communication interface). Included interface support at the moment is limited, any device that implements the SAE J2534 will work this crate, however additionally, Linux users can also use SocketCAN with this crate!

Why?

Since I started to work on car hacking projects for the past few years, I've always noticed that there are fragmented repositories on the internet which implement part of UDS, or part of KWP2000, but no library seems to exist where you can easily access everything in 1 place!

Future plans

  • Add more adapter API's to allow this crate to work with other VCI hardware from vendors such as Bosch (Mainly implementing the D-PDU API)
  • Add more diagnostic protocols such as GMLAN that other vehicle manufacturers use
  • Add support for LIN based diagnostic protocol (ISO14230), this will allow the crate to interact with older vehicles

More detailed documentation on the crate and API's

Check the docs.rs link!

Examples of tools that utilize this crate

Currently, there are no other tools other than my own that utilize this crate, but I hope that can soon change!

  • OpenVehicleDiag - A front-end for the ECU_Diagnostic crate, allowing for CAN manipulation and tracing, and KWP/OBD/UDS ECU diagnostics and custom payload sending

  • UN52-CONFIG-APP - A configuration application for my custom ESP32 based Mercedes 722.6 gearbox controller.

Contributions are welcome!

you can view the crate here:
Github
crates.io
docs.rs