Warning

This documentation is actively being updated as the project evolves and may not be complete in all areas.

UDS over CAN Driver

jumpstarter-driver-uds-can provides UDS (Unified Diagnostic Services, ISO-14229) operations over CAN/ISO-TP (ISO-15765) transport for Jumpstarter. This enables remote automotive ECU diagnostics over CAN bus.

For UDS over DoIP (automotive Ethernet), see jumpstarter-driver-uds-doip. For raw CAN and ISO-TP operations, see jumpstarter-driver-can.

Installation

pip3 install --extra-index-url https://pkg.jumpstarter.dev/simple/ jumpstarter-driver-uds-can

Configuration

Parameter

Type

Default

Description

channel

str

required

CAN channel (e.g. can0, vcan0)

interface

str

socketcan

python-can interface type

rxid

int

required

ISO-TP receive arbitration ID

txid

int

required

ISO-TP transmit arbitration ID

request_timeout

float

5.0

UDS request timeout in seconds

isotp_params

IsoTpParams

{}

ISO-TP parameters (stmin, blocksize, etc.)

ISO-TP Parameters

Parameter

Type

Default

Description

stmin

int

0

Minimum separation time (ms)

blocksize

int

8

Number of consecutive frames

tx_data_length

int

8

CAN frame data length

max_frame_size

int

4095

Maximum ISO-TP frame size

can_fd

bool

false

Use CAN FD

blocking_send

bool

false

Use blocking send

Example exporter configuration

export:
  uds:
    type: jumpstarter_driver_uds_can.driver.UdsCan
    config:
      channel: "can0"
      interface: "socketcan"
      rxid: 1601  # 0x641
      txid: 1602  # 0x642
      request_timeout: 5
      isotp_params:
        stmin: 32
        blocksize: 8
        tx_data_length: 8

Client API

The client API is shared by all UDS transport drivers via jumpstarter-driver-uds. See the UDS driver documentation for the full API reference.

Method

Description

change_session(session)

Change diagnostic session

ecu_reset(reset_type)

Reset ECU

tester_present()

Keep session alive

read_data_by_identifier(did_list)

Read DID values

write_data_by_identifier(did, value)

Write DID value

request_seed(level)

Request security access seed

send_key(level, key)

Send security access key

clear_dtc(group)

Clear diagnostic trouble codes

read_dtc_by_status_mask(mask)

Read DTCs matching status mask