I'm trying to understand how, at the level of SID (Service Identifier) ​​and PID (Parameter Identifier), a communication must start between an external scan tool and any vehicle ECU (Electronic Control Unit) that is OBD-compliant.

To start communication with the ECU, what should be the first thing the external scan tool has to send on the CAN bus? Is it, for example, the SID 01 PID 0x00? Or can the scan tool directly request any PID of any SID?

Furthermore, assuming to use the UDS protocol, should the scan tool (OBD-compliant) have a standardized identifier or not? Maybe only the functional identifier is standardized and not the physical one, I don't know because I can't find this information. The only thing I saw was that often the '7DF' code (is it a functional addressing?) is sent by some scan tools on the CAN bus at the beginning of the communication.

I will thank you if you make a bit clearer the situation to me.


After initializing the reader chip (e.g. an ELM327) using its proprietary commands, you can send any PID to toggle protocol negotiation. That said, it's useful to start with a PID that is mandatory rather than optional. Most readers iterate through all modes and start by querying the "meta" PIDs, i.e. 0100, 0120, 0140, etc to find out which concrete PIDs are supported by the connected vehicle.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.