UDS service22 comunication

I am using RealDash custom OBD2 XML with an OBDLink LX to communicate with an ECU over 29-bit UDS/ISO-TP (500k CAN).

Request:

  • TX ID: 18DA3AF1
  • RX ID: 18DAF13A
  • Service: 22 52 06

The ECU returns a multi-frame ISO-TP response (67 bytes total).

I confirmed that RealDash receives at least the First Frame correctly.
For example, when ECU sends:

18DAF13A 10 43 62 52 06 00 0B 00

RealDash variables become:

B0=0x18=24
B1=0xDA=218
B2=0xF1=241
B3=0x3A=58
B4=0x10=16
B5=0x43=67
B6=0x62=98

So it appears that the CAN ID is included in the Bx buffer.

However, I also noticed that CAN IDs are still included even when using:

I cannot understand how Consecutive Frames are mapped into B variables.
The ECU continues sending CF frames correctly, but B12+ values do not match the expected ISO-TP continuation data.

Could you explain:

  • how RealDash stores multi-frame ISO-TP responses internally
  • whether B variables contain only the First Frame
  • how Consecutive Frames can be accessed from XML
  • and why CAN IDs are still included when ATH0 is used?

〇xml
ADS_OBD_6.xml (4.2 KB)

Quite complicated to troubleshoot this complex requests remotely, but I think:

18DAF13A: address of the ECU that replies
10: indicates first reply
43: Indicates reply for PID 03
62: first data byte (B0)

Why it seems RealDash is not handling remaining parts, I do not know. Would need to get a debug log for analysis: https://forum.realdash.net/t/how-to-send-a-debug-log