UdsTool
Overview
A simple tool to talk to ECUs via UDS (ISO 14229-1).
Installation
Inside the tools/UdsTool
folder run: pip install .
Note
If you are using WSL, make sure you have already successfully followed the steps in Add SocketCAN support in WSL and your WSL kernel supports USB. Recent versions of Windows running WSL kernel
5.10.60.1
or later already include support for many USB scenarios.If you would like to be able to edit the source code, you can install it in editable mode by adding the
editable
flag in the command:pip install --editable .
Usage
You can view all the options available by executing the following command:
> udstool --help Usage: udstool [OPTIONS] COMMAND [ARGS]... Options: --help Show this message and exit. Commands: raw Enter raw command to send read UDS service Read Data By Identifier (0x22) routine UDS service Routine Control (0x31) security UDS service Security Access (0x27) session UDS service Diagnostic Session Control (0x10) write UDS service Write Data By Identifier (0x2e)
Services Supported
Service |
SID |
---|---|
Read Data By Identifier |
|
Write Data By Identifier |
|
Session Control |
|
ECU Reset |
|
Security Access |
|
Routine Control |
|
Request Download |
|
Transfer Data |
|
Transfer Exit |
|
- All these services can be requested using the
raw
command. For example : udstool raw --eth --host [Host IP] --ecu [ECU logical address] --source [Client logical address] --data [UDS payload ex:22cf01]
Example
In POSIX environment:
To send a Read Data By Identifier (RDBI) request for DID
0xCF01
:udstool read --can --channel vcan0 --txid [TxId] --rxid [RxId] --did cf01 --config [Path to config file]
In S32K1xx environment:
udstool read --can --channel pcan --txid [TxId] --rxid [RxId] --did cf01 --config [Path to config file]
Note
You can find a reference canConfig.json file in
tools/UdsTool/app/canConfig.json
.In the demo application the TxId and RxId are set to
0x002A
and0x00F0
respectively.