I am working on developing a vehicle CAN communications protocol being implemented in an electric vehicle. I was wondering if anyone knew if there is a standard MODE and PID for OBD-II messages transmitted over CANbus on pure electric vehicles (PEV)? as outlined in SAE J1979, ISO-15031-5, and ISO-15765-4 for HEV and ICE?

All the resources I found online state that typically vehicle information for inter-module communication is not transmitted in the OBD-II (ISO-15765-4) format on the CAN bus unless it is requested by for service/diagnostic purposes. Typically ECUs in the vehicle don't support OBD-II CAN messages unless they have to provide information to an diagnostic recorder/device. OBD-II messages on automobiles (light-heavy duty) are typically transmitted over the vehicle CANbus (CAN2.0b/ISO-11898-2 in my case) in special CAN message formats (ISO-15765). My only problem is that I need to use these OBD-II over CAN messages (ISO-15765-4) for my driver display panel which is running Android. Android doesn't have native support for CAN and I am trying use the open-source C/C++ library provided by OpenXC to read OBD-II style CAN messages to convert them into JSON format which is Android friendly (to my understanding).

Any advice, resources, information on how to use OBD-II style CAN messages for a PEV would be appreciated.


It seems like every (lots of people on this forum) one is mixing up what OBD is and what CAN is.

OBDII is a standard ratified in 1996 in the US. This standard is required by the government and incorporates 3 things. First is that the vehicle will provide a standard list of data (PIDs). Second is that the vehicle will be able to detect and provide a standard list of DTCs (diagnostic trouble codes). Third is that the connector under the dash that one would plug in to is standard across all vehicles. OBDII incorporates five communication protocols.

CAN is a communication protocol and that's it. CAN is one of the five protocols that are incorporated in OBDII. CAN was made the mandatory communication protocol in 2008. Any vehicle made after 2008 must be able to provide the mandatory data and mandatory DTCs over CAN. Further, CAN must be wired into the standard connector in the predesignated location.

For an all electric vehicle things get tricky. To comply with OBDII, 90% of the data and DTCs are not applicable. Vehicle speed and throttle position are the only PIDs i can think off the top of my head. Similar thing with the DTCs, you need fault detection for vehicle speed and throttle position.

  • I might have one little addition to what you've said here ... the CAN (Controller Area Network) bus is the network within the vehicle which allows the different systems to talk to each other as well as allow those systems to spew data out of the DLC (Data Link Connector). – Pᴀᴜʟsᴛᴇʀ2 Apr 5 '17 at 17:15
  • In my question I was asking if anyone knew of the standard(s) for extracting information an electric vehicle. Easiest way to do this on an ICE is to use the OBD-II port located underneath the steering wheel. OEMs transmit data for service and maintenance over this port; THE DATA IS TRANSMITTED OVER CANbus (hence OBD-II type CAN messages, ISO 16765-4 is the industry standard since 2008). However there appears that there is no specific standard for pure electric vehicles. I wanted to know if anyone is aware of what modes/service and pids are being used on PEVs, as far I can see its OEM specific. – RaaziR Apr 6 '17 at 17:08
  • In my above comment I wrote ISO 16765-4 when it should really be ISO 15765-4, sorry about that. – RaaziR Apr 6 '17 at 17:48
  • @RaaziR Beyond the basic PIDs that a gasoline and electric vehicle would have in common everything else is going to be OEM specific and falls outside of OBD standards. – vini_i Apr 6 '17 at 17:59

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.