skillfed

udsoncan

Implementation of the Unified Diagnostic Service (UDS) protocol (ISO-14229) used in the automotive industry.

udsoncan v1.26.1 217.2K downloads/30d#9,362 on PyPI721
Permissive license MIT Active released

What it is and what it does

udsoncan is a Python implementation of the UDS (Unified Diagnostic Services) protocol standardized in ISO-14229, used primarily in automotive diagnostics to communicate with vehicle electronic control units (ECUs). It provides a client library that handles the protocol's request-response messaging, session management, security access, and data reading/writing operations typical in vehicle diagnostics workflows.

The package requires Python 3.7+ and has no runtime dependencies, making it lightweight to integrate. It exposes high-level client methods like `change_session`, `unlock_security_access`, `write_data_by_identifier`, and `ecu_reset` that abstract away low-level protocol details, allowing developers to focus on diagnostic logic.

Use it for:

  • Develop custom vehicle diagnostic tools that read and modify ECU parameters without proprietary OEM software
  • Automate ECU testing and validation during automotive development or manufacturing
  • Build diagnostic applications that unlock security access and perform ECU resets for maintenance workflows
  • Integrate UDS protocol support into Python-based automotive test harnesses or CI/CD pipelines

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Implements the Unified Diagnostic Services (UDS) protocol defined by ISO-14229 for automotive diagnostics in Python, enabling communication with vehicle electronic control units.

Yes, if you need UDS protocol support for automotive diagnostics. The package is actively maintained, has no external dependencies, carries a permissive MIT license, and addresses a specialized but real need in automotive development and testing. 721 repository stars and consistent release cadence suggest production use. No known security vulnerabilities. Install it if your project involves vehicle ECU communication; skip it if you do not work in automotive diagnostics.

Install

udsoncan on PyPI

pip

pip install udsoncan

uv

uv add udsoncan

poetry

poetry add udsoncan

Installing udsoncan

Before you install

Low install friction with no runtime dependencies. Active maintenance: last commit 2026-08-09, 721 repository stars, and a release within 50 days indicates ongoing development.

License in practice

MIT license permits commercial and private use with minimal restrictions, suitable for both open-source and proprietary projects.

Quickstart

pip install udsoncan

import udsoncan
from udsoncan.client import Client
from udsoncan.connections import IsoTPSocketConnection
from udsoncan.services import DiagnosticSessionControl

conn = IsoTPSocketConnection('can0', ...)
with Client(conn, request_timeout=2) as client:
    client.change_session(DiagnosticSessionControl.Session.extendedDiagnosticSession)

Requires Python 3.7+; transport layer (e.g., ISO-TP socket) must be configured separately

Verify before relying

  • Whether isotp library shown in example is an optional or required peer dependency
  • Specific vehicle models or ECU types supported or tested against
  • Performance characteristics under high-frequency diagnostic requests

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.7)
Install friction low — pure-Python wheel
Runtime dependencies none
Maintenance actively maintained — 50 days since the last release
Last repo commit
First released
Downloads 217,217/month — #9,362 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: udsoncan-1.26.1-py3-none-any.whl

Keywords: uds, 14229, iso-14229, diagnostic, automotive

Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: POSIX :: LinuxProgramming Language :: PythonProgramming Language :: Python :: 3Topic :: Scientific/Engineering :: Interface Engine/Protocol Translator

Tags

UDS protocol implementationISO-14229 automotive diagnosticsvehicle ECU communicationautomotive diagnostic servicesdiagnostic protocol librarycar diagnostics python
automotiveprotocol-implementationdiagnostics

More Interface Engine/Protocol Translator packages