Skip to content

LibUDS 1.21.0

Latest

Choose a tag to compare

@github-actions github-actions released this 23 Jun 08:42
· 25 commits to develop since this release

UDSLib v1.21.0

Universal Diagnostics Stack for Embedded Systems


What's New

Added

  • ECUReset (0x11) — wait for the response to be on the wire before resetting: a new optional fn_tx_complete(ctx) config hook lets the library hold the reset until the positive 0x51 response has physically left the transport (TX mailbox drained), not merely been queued. It is bounded by the new reset_tx_wait_ms budget (0 = UDS_DEFAULT_RESET_TX_WAIT_MS, 50 ms) so a stuck transport can never hang the ECU; when the hook is unset, behaviour is unchanged (immediate reset). This closes a real-hardware race: a fn_reset that calls NVIC_SystemReset() could reboot before the FDCAN frame was arbitrated onto the bus, so a tester saw silence after 11 01 and only 11 81 (suppressPosRsp) appeared to work. The H5 example now polls FDCAN TXBRP in fn_tx_complete and performs a real NVIC_SystemReset. (#88)

Test Results

All Tests Passed

  • Total Tests: 59
  • Passed: 59
  • Failed: 0

Build Information

  • Version: 1.21.0
  • Build Date: 2026-06-23 08:42:16 UTC
  • Compliance: ISO 14229-1 (UDS)
  • Platform Support: Bare Metal, FreeRTOS, Zephyr, Linux, Windows

Supported Services

UDSLib v1.21.0 implements 16 ISO 14229-1 services:

Service Description SID
Diagnostic Session Control Session management 0x10
ECU Reset Reset operations 0x11
Clear Diagnostic Information DTC clearing 0x14
Read DTC Information DTC reporting 0x19
Read Data By Identifier Data reading 0x22
Read Memory By Address Memory access 0x23
Security Access Seed/Key exchange 0x27
Communication Control TX/RX control 0x28
Authentication Certificate exchange 0x29
Write Data By Identifier Data writing 0x2E
Routine Control Routine execution 0x31
Request Download OTA init 0x34
Transfer Data Block streaming 0x36
Request Transfer Exit OTA completion 0x37
Write Memory By Address Memory writing 0x3D
Tester Present Keep-alive 0x3E
Control DTC Setting DTC ON/OFF 0x85

Installation

Download Pre-built Binaries

Download the attached artifacts:

  • uds_host_sim - Host-based ECU simulator
  • unit_tests - Complete test suite

Build from Source

git clone https://github.com/w1ne/udslib.git
cd udslib
git checkout v1.21.0
mkdir build && cd build
cmake ..
make
ctest

Documentation

Licensing

  • Community: PolyForm Noncommercial 1.0.0 (noncommercial use). See LICENSE.
  • Commercial: 5,000 EUR for production/commercial use, includes integration + 1 year support.
  • Contact: andrii@shylenko.com for commercial terms and support.

Report Issues

Found a bug? Open an issue

Full Changelog

See CHANGELOG.md for complete version history.


Code Coverage

Line Coverage: 86.6% · Function Coverage: 98.9%

Summary coverage rate:
lines......: 86.6% (1633 of 1886 lines)
functions..: 98.9% (88 of 89 functions)
branches...: no data found

Full coverage report available in release artifacts.