What is OBD?
OBD stands for On Board Diagnostics, a set of protocols to get information about the engine parameters and information regarding engine malfunction. Initial version was OBD-1 which was later revised to OBD-2.
What are OBD protocols ?
OBD protocol is a layered protocol conforming to OSI model of network layers. The bottom most layer is Physical layer where electrical signals are defined. Following physical layers are supported by OBD
SAE J1850 PWM SAE J1850 VPW KWP2000 CAN – 250 Kbps (J1939) and 500 kbps (J1979)
On top of this, there is a data link layer, network layer and application layer. Details of these layers are defined by SAE (Society for Automotive Engineering) standards and ISO standards.
What is OBD connector ?
OBD connector is defined in SAE J1962 standards. It is a 16 pin connector. Picture and pin out of this connector is given below.
PIN 1 : Vendor specific PIN2 : J1850 Bus+ PIN 3: Vendor specific PIN4: Chassis GND PIN5: Signal GND PIN6: CAN H PIN7: K-Line PIN8: Vendor specific PIN9: Vendor specific PIN10: J1850 Bus- PIN11: Vendor specific PIN12: Vendor specific PIN13: Vendor specific PIN14: CAN L PIN15: L-Line PIN16: Power (Battery +)
Vendors can decide which signals to be connected in vendor specific pins
Where is it located ?
It is usually located under the dash board near the steering wheel column. It ‘s location varies with models and vehicle manual may list it’s location
What are OBD modes and PIDs?
OBD modes are also called Service Identifiers (SIDs) which defines various diagnostic services by the ECU. PID (Parameter Identifier) defined the particular parameter associated with the service. There are 20 Modes (SIDs)which are given below.
Mode 1 : Get Current Power Train Diagnostic Data Mode 2: Get Power Train Freeze frame Data Mode 3: Get Diagnostic Trouble Codes (DTCs) Mode 4:Clear Diagnostic Trouble Codes (DTCs) Mode 5: Get O2 sensor monitoring test results Mode 6: Get Onboard Monitoring Test results Mode 7: Get emission related DTCs detected during last or current drive cycle Mode8: Request Control of Onboard Systems Mode 9: Request vehicle information Mode 10: Request permanent DTCs
Consult the SAE J1979 standard documentation to get the comprehensive information about the Modes and PIDs
Mode 1 is used to get most of the vehicle operating parameters like RPM, Speed and various temparatures
What is ELM327 ?
ELM327 is an IC which implements the OBD protocol suite in hardware and firmware. When using ELM327, only few external components are required to make and OBD adapter and hence many of the OBD dongles are based on ELM327 chip. The original ELM327 chip is made by a company named ELM Electronics but there are many cheap clones available. Quality of these clones varies from make to make.
Hence if you are looking for a reliable unit, go for the ones with original ELM chip, but be prepared to spent >$100. Units using clones come much cheaper than this, but may not be as reliable as the original ones.
What is ELM327 Protocol ?
ELM 327 protocol is an ASCII protocol. There are 2 types of communication between ELM327 chip based OBD reader and the computer (or the mobile/tablet). One is commands meant for the ELM chip itself. This includes commands for protocol selection, resetting the unit, CAN filter setting, ID setting, etc. They all start with the characters AT.
Others are OBD requests meant for the vehicle ECU. They should be of the form Mode PID. All the commands should be terminated with a CR/LF pair for the ELM chip to take action.
Can you give some examples of using the OBD Bluetooth dongle to communicate with the ECU ?
First of all, locate the OBD port in your vehicle and plug in the OBD BT dongle (like the VGate dongle we supply). You should have a Bluetooth enabled laptop (PC if the vehicle is nearby) or a tablet or mobile. Next you establish the Bluetooth connection and open up a program like hyper terminal in PC. There is a program called ELM Terminal in Android which is very useful to send OBD commands and experiment with your vehicle.
For getting RPM, type the command 01 0C. You should get a reply like 41 0C XX YY where XX and YY are 2 bytes representing the current RPM value in HEX format. You need to divide the value XXYY by 4 to get the current RPM in HEX. Then convert this to decimal to get the exact value. A program like Torque does all this for you when it displays RPM value.
For speed type 01 0D and you will get a reply like 41 0D XX where XX is the current speed in HEX format.
Can you get Odometer value using OBD commands ?
Odometer value is not supported by standard OBD PIDs. However, you may be able to get it using manufacturer specific modes and PIDs depending on the vehicle. This information is proprietary and not easily available.
Can you switch off / on the engine through OBD ?
Generally NO, Critical modules like engine on/off, immobilizer, etc are not connected to the OBD network and they operate using a separate network for security purposes.
Are all OBD standard parameters supported by all OBD enabled vehicles ?
No. Manufacturers have the liberty to implement whatever parameters they feels okay to be given out through OBD port.
Besides standard parameters, they can also implement custom modes and PIDs and usually one will have to pay them to get this information.
What are Diagnostic Trouble Codes (DTCs) ?
DTCs are generally fault information stored by the ECU. ECU stores a DTC whenever it detects a particular fault. In most cases, it will automatically clear the DTC info if the fault doesn’t reoccur for some time. For some DTCs it will enable the MIL (Mal function indication lamp) on the dash board.
Using and OBD scan tool we can get all the stored DTCs by issuing the command 03 00. There are standard DTCs as well as Manufacturer specific DTCs. Many of the manufacturer specific DTCs are available over the Internet even though they are not public domain !
What is a freeze frame ?
ECU store the snap shot of various power train parameters at the instant when it detects a trouble and sets a trouble code. The information stored is vehicle dependent and this can be retrieved using Mode 02. This is very helpful in diagnosing the trouble.