I know that in the US, since 2008 vehicles must have a CAN connection on the OBD-II plug, but what about Europe? Do vehicles have to add CAN to the OBD-II plug?
Or is it possible to directly send CAN messages through the OBD-II plug?
Motor Vehicle Maintenance & Repair Stack Exchange is a question and answer site for mechanics and DIY enthusiast owners of cars, trucks, and motorcycles. It only takes a minute to sign up.
Sign up to join this communityI know that in the US, since 2008 vehicles must have a CAN connection on the OBD-II plug, but what about Europe? Do vehicles have to add CAN to the OBD-II plug?
Or is it possible to directly send CAN messages through the OBD-II plug?
You asked
I know that in the US, since 2008 vehicles must have a CAN connection on the OBD-II plug, but what about Europe?
They have a special OBD called, wait for it, EOBD.
Europe has their own specification. Because why inherit something that already works? That would make too much sense.
Europe uses the OBD-II interface which is the connector type to connect to the vehicles CAN bus.
Do vehicles have to add CAN to the OBD-II plug?
The CAN is connected to the OBD0II plug.
They are already CAN enabled and use various protocols on the wire to communicate with the various components such as the ECU, a BCM and various sensors.
Here is a list of some of the protocols.
Here is a great QA regarding CAN and OBDII that might be beneficial in getting you up to speed.
Or is it possible to directly send CAN messages through the OBD-II plug?
Yes, it is
Here is some errata on that.
Here is a link to a Delphi document detailing various global standards from emissions to vehicle interfaces to the CAN, which are almost always an OBD-II physical interface.
Your question is unclear to me so I hope this helps. OBDII is an American specification so it need not apply in Europe (where EOBD compliance is mandatory), but the specifications are very similar anyway. CAN is only one of various protocols that could be used in the USA before 2008 to send OBD messages. You can only send CAN messages if your vehicle has a CAN bus. As an example, it could use a KWP2000 bus to send OBD messages.
EOBD and OBD2 are essentially the same with the same 16pin connector. The only real reason they have different names is because one is governed by the EU and they set out what types and year of vehicle has to have it.
It wouldn't make any sense to have any major differences as a massive market for a lot of EU manufactures is the USA.
As far as I'm aware there isn't a legal requirement to have CAN at the EOBD port as in the USA and manufactures are free to use J1850, 9141-2, 14230 or the most common since 2008 15765 CAN. However since 2008 it wouldn't make sense to use anything else other than 15765 CAN if they export to the USA as this would mean having to develop different diagnostic equipment and firmware.
So any manufacture that has exports to the USA will certainly have CAN available on pins 6&14 of the EOBD connector on vehicles produced after 2008. But in my experience most vehicles with CAN bus and the EOBD port have CAN connected to the EOBD connector even if they don't use CAN bus for the diagnostics. For example many Japanese and European vehicles which use K line or such for diagnostics still have the CAN bus connected to the EOBD port.
Is it possible to send CAN messages over the OBD2 port?
Yes, you can use the standard OBD2 PIDs to retrieve fault codes, view live data, view info about the vehicle etc.
You can also analyse raw CAN bus data on certain vehicles but there will be no useful information to view unless you have access to the manufactures database files which are nearly impossible to get or unless you do some reverse engineering which is well documented online.
With VAG vehicles and vehicles with multiple CAN networks the OBD2 port will only respond to OBD2 or manufacturer specific PIDs and raw data will not be available. So if you want to use PIDs on these vehicles then fine but if you want to analyse data you have to connect directly to a CAN bus network connected to a module such as the engine ECU.