The specification implemented in this crate is v2.2, dated 05-08-2002 Unified diagnostic services (UDS) Gateway access in vehicles which have them.Low level manipulation of ECU's EEPROM or RAM.Manipulation of ECU communication parameters.Unlike OBD2, KWP2000 allows for much more complex operations, which could potentially cause damage to a vehicle if used incorrectly.Ī few examples of features allowed by KWP2000 are ISO14230 - KWP2000 is a advanced diagnostic protocol utilized by many vehicle manufacturers from 2000-2006 (Superseded by UDS). OBD2 is designed to be safe and simple, and does not write data to the ECU. Reading of sensor data, reading and clearing standard DTCs, and reading basic vehicle information. ISO9141 - OBD2 is a legal requirement on all vehicles produced from 2002, allowing for Optional diagnostic server event receiving for logging internal server eventsĪ quick overview of diagnostic servers used by ECUs On-board diagnostics (OBD2).Diagnostic servers (For KWP2000 and UDS) automatically handle disconnects from ECU.ISO-TP transport layer, LIN, J1850 and DoIP is work in progress at this time.Parsing support - Where possible, data is returned in data structures, being interpreted from the ECU's response, rather than just bytes which have to be manually interpreted.Safe to use (Cannot inadvertently send incorrect requests to the ECU).FFI bindings for use in C/C++ projects! (Check the examples folder).Hardware API for accessing common OBD-2 adapter types (Passthru).Easy to use (Check the examples folder).This crate is a work in progress, and ECU compatibility may vary! This crate goes by the KWP2000 and UDS specification, but some ECUs choose to deviate slightly from the official specification! Ensure you are running Rust 1.56.0 (2021 edition) or higher to use this crate! Features A cross-platform crate with FFI bindings to allow for complex vehicle ECU diagnostics.