udsoncan
Implementation of the Unified Diagnostic Service (UDS) protocol (ISO-14229) used in the automotive industry.
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.7+; transport layer (e.g., ISO-TP socket) must be configured separately
- 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 · maintenance · safety
MIT (permissive) — MIT license permits commercial and private use with minimal restrictions, suitable for both open-source and proprietary projects.
last release 2026-06-25 (50 days) · last repo commit 2026-08-09 · 721 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 217,217 downloads/mo, #9,362 on PyPI
Alternatives
Verify before relying
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)- 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
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 on it.
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
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.
Requires Python 3.7+; transport layer (e.g., ISO-TP socket) must be configured separately
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)
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 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: POSIX :: LinuxProgramming Language :: PythonProgramming Language :: Python :: 3Topic :: Scientific/Engineering :: Interface Engine/Protocol Translator |
Evidence: udsoncan-1.26.1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “UDS protocol implementation”
- udsoncanImplements the Unified Diagnostic Services (UDS) protocol defined by…
- doipclientA pure Python 3 Diagnostic over IP (DoIP) client that implements…
- odxtoolsodxtools parses and processes ODX (Open Diagnostic data eXchange)…
Give your agent the search over MCP, or paste the wish link into any chat.
More Interface Engine/Protocol Translator packages
Fetches financial and market data from Yahoo Finance's public APIs, including ticker information, historical prices, and live streaming data.
However, do not use it for commercial applications or high-volume data collection without confirming compliance with Yahoo's terms of service.
Converts arbitrary Python objects to JSON strings and back, extending the standard json module with support for custom classes, numpy arrays, and nested structures through JSONEncoder and JSONDecoder subclasses.
However, maintenance is aging (last release 275 days ago), so verify that its feature set meets your needs before adopting it for new projects.
Computes Cyclic Redundancy Check (CRC) values for 8, 16, 24, 32, or 64-bit polynomials, providing both Python functions and a class interface compatible with standard library hash modules.
However, it is abandoned (last release 2010-06-27) with no documented support beyond Python 3.1.
PyUSB provides Python access to USB devices on the host machine through a backend-neutral API, supporting libusb 1.0, libusb 0.1, and OpenUSB backends.
PyVISA provides Python bindings to VISA libraries for controlling measurement instruments and test equipment over GPIB, RS232, Ethernet, and USB interfaces.
Install it if you need to automate laboratory equipment; skip it if you have no instruments to control or use vendor-specific SDKs instead.
PyVISA-py is a pure Python backend for the VISA standard that enables communication with laboratory instruments over Serial, USB, GPIB, and Ethernet without requiring proprietary VISA libraries.
See also doipclient · icsneopy · odxtools · pydlt · vininfo · cantools · subarulink · kuksa-client · canopen · pymavlink