jglim / CaesarSuite

Library and applications to work with Dаіmlеr diagnostics CBF files.
MIT License
125 stars 33 forks source link

Extended ID #35

Closed Daniboum closed 3 years ago

Daniboum commented 3 years ago

Has the connection to ECUs with extended IDs already been tested? I'm trying to connect to a CPC4. CBF loaded successfully: within "Communication Parameters" "CP_REQUEST_CANIDENTIFIER" is given as 0x18DA00F1. However while trying to connect to the ECU, the CAN ID is only "F1" and Diogenes returns "internally timed out". 2021-06-21_14h33_46 2021-06-21_14h35_22 .

jglim commented 3 years ago

Hello Daniboum,

Thanks for taking the time to create this issue. Extended 29-bit IDs are not tested yet, though it may be indicative of a more significant issue.

From my limited understanding, the CPC4 appears to be a Truck/Bus ECU, and therefore communicates via the SAE J1939 standard (typically 29-bit IDs). At this point, Diogenes only connects to passenger cars ("PKW") which almost always operates over the ISO 15765 standard. While both of these standards use the CAN bus as their underlying network, their higher-level data layout is significantly different and incompatible.

Diogenes depends on your J2534 ("PassThru") driver to break down and reassemble its ISO15765 messages when sending and receiving data; unfortunately there doesn't seem to be a similar J2534 feature to communicate with J1939 targets. As such, the CPC4 is incompatible, and there isn't a clear way for me to support the CPC4 target with the J2534 limitations.


Some notes on J1939: https://www.simmasoftware.com/j1939-presentation.pdf https://copperhilltech.com/blog/sae-j1939-programming-with-arduino-multipacket-broadcast-bam-session/

Daniboum commented 3 years ago

Hello! Thank you very much for your quick reply. Yes, the CPC is definitely communicating over J1939. I'll have a closer look to my J2534 driver.