Welcome to UDS documentation!

Overview

The purpose of this project is to provide python tool to handle Unified Diagnostic Services (UDS) protocol defined by ISO-14229. The created package helps to simulate either communication side (client or server), monitoring and decode diagnostic communication.

The architecture enables to use it with various communication buses (e.g. CAN, LIN).

The most likely use cases of this package are:

  • communication with your vehicle (e.g. reading Diagnostic Trouble Codes)

  • monitoring and decoding UDS communication

  • performing tests against on-board ECU (server)

  • performing tests against OBD Tester (client)

Implementation Status

The package is currently in the early development phase, therefore only a few features are currently available. If you want to speed up the development, please visit contribution section to find out what are your options.

Features

Current implementation status of package features:

Feature

Implementation Status

UDS Messages and Packets

Available since version 0.0.2

Packets Reception and Transmission

Available since version 0.3.0

UDS Messages Reception and Transmission

Available since version 1.0.0

Messages Segmentation

Available since version 0.2.0

Packets Desegmentation

Available since version 0.2.0

Client Simulation

Available since version 3.0.0

Server Simulation

Planned

UDS Sniffer

Planned

UDS Messages Translator

Available since version 2.0.0

Logger

Available since version 4.0.0

Buses supported

Current implementation status of support for communication buses:

Bus

Implementation Status

CAN

Full

FlexRay

Planned

Ethernet

Planned

K-Line

Planned

LIN

Planned

OSI Model overview

An overview of features that are required to fully implement UDS protocol is presented in the table below:

OSI Layer

Functionalities

Implementation

Layer 7 Application

  • diagnostic messages support

Layer 6 Presentation

  • building diagnostic messages

  • diagnostic messages interpretation

Layer 5 Session

  • Client simulation

  • Server simulation

  • sniffing UDS communication

To be provided with Server feature.

To be provided with Sniffer feature.

Layer 4 Transport

  • packet support

  • bus specific segmentation

  • bus specific packets transmission

Network specific:

To be extended for other networks

Layer 3 Network

Layer 2 Data

  • frames transmission

  • frames receiving

External python packages for bus handling:

  • CAN:

  • python-can

To be extended for other networks

Layer 1 Physical

where:

  • OSI Layer - considered OSI Model Layer

  • Functionalities - functionalities required in the implementation to handle considered UDS OSI layer

  • Implementation - UDS package implementation that provides mentioned functionalities

License

The project is licensed under the MIT license - https://github.com/mdabrowski1990/uds/blob/main/LICENSE

Contact

Documentation generated

Feb 21, 2026