Search code examples
can-busobd-iielm327canoe

How do ODB II Scan Tools query the Amount of PIDs They're Able to?


From what I know from the ELM327: OBD to RS232 document , using multi-line responses, it is possible to receive up to 6 PIDs. I would like to know how it's possible for scan tools to receive over a dozen PIDs at once.


Solution

  • You can request up to 6 PIDs simultaneously from the main controller. The ECU will response to it in multi-frame. here I have answered about mutli frame for MCP2515 chip but it might be the same for any other chips like ELM327 and etc. since it is the CAN protocol, only context might be different.

    Answer of your question is YES you can but not only in one request. Many logger devices consider 1 Hz as a minimum requesting time for safely recording all OBD data and below 1 Hz might work or not.

    You should at first request the Mode 1 PID 00 which will response in one message and it contains all the PIDs that ECU supports for OBD in bitwise order. How to parse this message is defined in this wikipedia link: Here.

    Now you have all the supported PIDs and now you can request them in group of 6 PIDs. This is how any scan tool or OBD loggers are working.

    regards,