The UDS diagnostic stack implements the ISO 14229 Unified Diagnostic Services protocol for embedded ECUs. It provides the full diagnostic server a device needs — sessions, security access, data access, routine control, DTC handling and reprogramming — over ISO-TP (ISO 15765-2) on classic CAN and CAN FD.
What the UDS diagnostic stack covers
The UDS diagnostic stack supports the standard service set: diagnostic session control (0x10), ECU reset (0x11), read and write data by identifier (0x22 / 0x2E), security access (0x27), routine control (0x31), read and clear DTCs (0x19 / 0x14), and the request-download / transfer-data / request-transfer-exit services (0x34 / 0x36 / 0x37) used for flashing. Communication control and tester-present handling keep sessions alive and consistent.
Transport and timing
On top of ISO 15765-2 (ISO-TP), the UDS diagnostic stack handles segmentation, flow control and the P2/P2* timing parameters, so multi-frame diagnostic and flashing sequences run reliably. It works over classic CAN and CAN FD, and its structure maps cleanly onto DoCAN today with a path toward DoIP.
Portable and hardware-independent
Delivered as a ready-to-integrate binary with a thin hardware abstraction layer, the UDS diagnostic stack runs on any MCU, any RTOS or bare metal, with no third-party dependencies. Callbacks connect each service to your application and memory layout, so implementing data identifiers, routines and the flash driver is clean and explicit.
Applications
The UDS diagnostic stack is used in automotive and industrial ECUs that must support tester communication, diagnostics and firmware updates: engine, body, chassis and gateway controllers, sensors, actuators and bootloaders. It fits any device that needs ISO 14229 services for production test, service diagnostics, DTC management or secure reprogramming over CAN or CAN FD.
Standards and conformance
The UDS diagnostic stack implements ISO 14229 (UDS) over ISO 15765-2 (ISO-TP) on the DoCAN transport, with a structure that extends toward DoIP. Delivered as a ready-to-integrate binary with a documented API, callbacks and a sample application, it lets you map services to your memory layout and flash driver cleanly. It is supported directly by the engineers who wrote it, making diagnostics and bootloader integration predictable.