no mapping or extraction of response?!

my setup may be a bit exotic but shows how flexible RealDash can be:

Read CAN raw data with custom init ATCP, ATCAF, ATSH and ATCRA etc. over ELM OBD
works fine and is received nicely and quite fast according the debug log:

4.2.2022, 16:45:32.078: OBD2: Send: cd7aa610d801
4.2.2022, 16:45:32.156: OBD2: Receive(78ms): CD7AE610D85A0000

But I am not able to extract values from the response:

CD 7A E6 10 D8 5A 00 00

I want to fetch the 5A (6. byte) so it should be conversion identifier “B5”,right? but no luck.
I tried to add some values for debugging*, but same zero, or nothing displayed.

any idea what’s missing?


*how would it be possible for a user to debug this kind of extraction issue? Wouldn’t it make sense to include the extraction process in the debug log as well?



extract of the debug log:

4.2.2022, 16:45:32.078: OBD2: Send: cd7aa610d801
4.2.2022, 16:45:32.156: OBD2: Receive(78ms): CD7AE610D85A0000

4.2.2022, 16:45:32.156: OBD2: Send: cd7aa610d801
4.2.2022, 16:45:32.235: OBD2: Receive(78ms): CD7AE610D85A0000

4.2.2022, 16:45:32.235: OBD2: Send: cd7aa610d801
4.2.2022, 16:45:32.314: OBD2: Receive(78ms): CD7AE610D85A0000

4.2.2022, 16:45:32.314: OBD2: Send: cd7aa610d801
4.2.2022, 16:45:32.392: OBD2: Receive(78ms): CD7AE610D85A0000

4.2.2022, 16:45:32.392: OBD2: Send: cd7aa610d801
4.2.2022, 16:45:32.486: OBD2: Receive(94ms): CD7AE610D85A0000

4.2.2022, 16:45:32.486: OBD2: Send: cd7aa610d801
4.2.2022, 16:45:32.564: OBD2: Receive(78ms): CD7AE610D85A0000

OBD2: initialized. Custom XML:> 0> , Multipid:0, First reply only:0, protocol:0

may be a hint: why is the debug log saying “not custom”?

and how can I reload a modified custom.xml in RD easiest?

BTW: currently using Windows Store app

to avoid confusion, I also tried with “ATSH1” in the init part:

7.2.2022, 10:24:12.612: OBD2: Send: cd7aa610d801
7.2.2022, 10:24:12.691: OBD2: Receive(79ms): 01000021CD7AE610D8570000

7.2.2022, 10:24:12.691: OBD2: Send: cd7aa610d801
7.2.2022, 10:24:12.780: OBD2: Receive(93ms): 01000021CD7AE610D8570000

7.2.2022, 10:24:12.780: OBD2: Send: cd7aa610d801
7.2.2022, 10:24:12.874: OBD2: Receive(94ms): 01000021CD7AE610D8570000

still no luck to extract anything from the response.

Indeed, if you see Custom XML:0 in the debug log, the XML file is not loaded into connection settings. Try to re-load it from connection settings:

  • Go to the Garage and tap the vehicle door
  • Select your OBD2 connection and tap ‘Select Vehicle’ button
  • On context menu, select ‘Custom Channel Description File’ and browse for your custom file.

I did this XML reload many, many dozens of times, as I changed it so often to debug the strange behaviour.

And RD is using and executing the content of the custom XML - as I showed - very fine. With all it’s custom inits and commands.
But debug log is stating “0”.
Only extraction of ELMs response is not working as expected.

Can’t you reproduce this bug? I provided really comprehensive description of my steps, setup and logs.
Also tested on Android, same behavior.

what else can I provide to get that sorted?

Ok, I will investigate and run this on our OBD2 simulator. I believe you uploaded your XML file to GitHub?

yes, correct, also sent complete debug.log via RD App

thank you in advance!

two further questions that may help or even lead to the answer:

  • does RD care which part of the response bytes are header and how long 2 vs. 4 byte (11 vs. 29 bit CAN) or is it simply grabbing B0 as first byte of the response, regardless H1 or H0?


  • does RD care or expect the DLC byte (number of data bytes) in the response?

I was able to make some tests, and indeed RealDash does not parse these replys at all. The reason is that typically ELM327 device responds for the command by echoing the command back with one hex + 4, for example requesting engine speed:

SEND: 01 0C
RECV: 04 0C XX XX

Now, the requests you are using are not standard ELM327 commands, but custom to your vehicle. In your case:

SEND: CD 7A A6 10 D8 01
RECV: CD 7A E6 10 D8 5A 00 00

RealDash is expecting that reply contains an echo of the command, and rest of the bytes are the data. In this case there are two data bytes to read; 00 00.

I’m not sure how to make this work, as there is too big of a risk to break some existing OBD2 functionality. One option could be that we add a new parameter to XML, like raw=“true”, and if this tag is on, the data bytes are always counted from beginning of the reply and echo-check is bypassed.

I think introducing a new XML attribute like you suggested would make most sense! :+1:

additional to raw=“true”, what do you think about sending as text if attribute “conversion” is not set?
So it could be visible in a text gauge for testing purposes as well?

It would be also very nice to get some hints what and where RD is trying to extract and write it in the debug log? Would save so much of users and dev’s time :slight_smile:

Are you running RealDash on Android? I can build you a test version for the weekend. Send me an email.

y’got email.
thank you upfront and have a nice weekend!

RealDash version 2.0.5 supports two new XML attributes to help with custom messaging. rawReply=“true” and units=“text”.

this is great, thanks for supporting!
checking IOS App Store RD is still on V2.0.3?

Apple review process takes time.

OMG, so I guess all question answered regarding Carplay :unamused: