Skip to content

zelos-uds

zelos-uds performs UDS transactions on a CAN bus to a specific device.

Minimum required version: 0.0.25

The command zelos-trace was added in version 0.0.25. If you have not yet installed zeloscloud or are running an earlier version, view the instructions at Installing Zelos.

User Interface

UDS transactions can be configured by command line arguments and/or config files. Example configurations are shipped with the package.

Supported UDS services

  • ECU Reset
  • Read Data By Identifier
  • Multi-Read Data By Identifier
  • Write Data By Identifier
  • Session Controls
  • Request Download
  • Multi-Write Data By Identifier
  • Tester Present
  • IO Controls
  • Routine Controls
  • File Access Interface
  • Read/Write Data By Named Identifier

Default Values

zeloscloud.cli.config.uds.default.yaml contains the default configuration of all arguments Ex. uds.channel bus and uds.interface are defaulted to can0 and socketcan respectively.

Arguments

At a minimum, the user must specify the Transmit and Receive Message IDs

zelos-uds uds.rxid=123 uds.txid=456
Or in hex
zelos-uds uds.rxid=0x123 uds.txid=0x456
Or via config, ex. ~/.zelos/uds/my_device.yaml:
# Override the default config with my device's IDs
defaults:
  - default

txid: 0x123
rxid: 0x456
zelos-uds uds=my_device

Pro Tip

pass in --config-dir=/path/to/my/configs/ if you are not storing configs in the default ~/.zelos/ dir

Shell completion

Execute the below command in a bash terminal (or put it in a bash rc) for argument completion:

eval "$(zelos-uds --shell-completion install=bash)"
i.e. doing the above allows you to do get suggested argument completions:
zelos-uds uds.'tab''tab'
uds.can_link.   uds.codec.      uds.did.        uds.file.       uds.pretty=     uds.rxid=       uds.txid=
uds.channel=    uds.data.       uds.download.   uds.interface=  uds.reset=      uds.session=

Example Commands

ECU Reset

zelos-uds uds.rxid=0x123 uds.txid=0x456 \
    uds.reset=true

Read Data By Identifier

zelos-uds uds.rxid=0x123 uds.txid=0x456 \
    uds.did=0x789

Write Data By Identifier

zelos-uds uds.rxid=0x123 uds.txid=0x456 \
    uds.did=0x789                       \
    uds.data=0x1234

Session Controls

zelos-uds uds.rxid=0x123 uds.txid=0x456 \
    uds.session=programming

Request Download

zelos-uds uds.rxid=0x123 uds.txid=0x456 \
    uds.session=programming             \
    uds.download.path=/path/to/file

File Access

zelos-uds uds.rxid=0x123 uds.txid=0x456   \
    uds.file.mode=read                    \
    uds.file.local=/path/local_file.txt   \
    uds.file.target=/path/target_file.log

Example Configurations

zeloscloud.cli.config.examples contains example configuration files To use the example configuration files, simply set the uds config group to the corresponding example.

zelos-uds uds=example

Overriding Examples

This example and the other examples (i.e. example-<service>) in addition to CLI overrides can be utilized to jumpstart complex operations.

zelos-uds uds=example uds.rxid=0x123 uds.txid=0x456

Example Download

zelos-uds uds=example_download uds.rxid=0x123 uds.txid=0x456 \
    uds.download.path=/path/to/file

ECU Reset

zelos-uds uds=example_reset uds.rxid=0x123 uds.txid=0x456