OBD-II

Introduction

This page is for software developers and people who would like to learn more about the technical side of OBD communications. To the best of our knowledge, the information presented on this page is accurate. However, please remember that ScanTool.net does not accept responsibility for its accuracy or usefulness for your particular purpose.

Communication between PC and ElmScan

Open your favorite terminal (if you don't have a favorite terminal software, use HyperTerminal - it comes with every copy of Windows). Configure it to use 9600, 8, N, 1, and no flow control. Also, make sure your program adds line feeds to line ends, otherwise you may see the received data overwriting itself. If you're unsure how to do these things, check out our page on configuring the Hyperterminal.

01 : show current data
02 : show freeze frame data
03 : show stored trouble codes
04 : clear trouble codes and stored values
05 : test results, oxygen sensors
06 : test results, non-continuosly monitored
07 : show pending trouble codes
08 : special control mode
09 : request vehicle information
However, all of these modes are not required to be supported by every vehicle, and the manufacturer is allowed to implement "custom" modes above mode 09.

Below are examples of some of the more commonly used requests:

Mode
PID
Description
Min
Max
Formula
01
00
PID's supported Bit encoded*
01
01
Number of trouble codes Data A**, bit 7: MIL commanded on by the module. Bits 6-0: number of trouble codes stored in the module.
01
04
Calculated load value
0%
100% =(X*100/255)%
01
05
Engine coolant temperature
0°F
255°F =((X - 40)*9/5 + 32) °F
01
0C
Engine RPM (2 bytes)
0 rpm
16,383.75 rpm =(X*1/4) rpm
01
0D
Vehicle speed
0 mph
255 mph = (X/1.609) mph
01
0E
Ignition timing advance
-64°
63.5° = (X/2 - 64)°
01
0F
Intake air temperature
0°F
255°F = ((X - 40)*9/5 + 32) °F
01
11
Absolute throttle position sensor
0%
100% =(X*100/255)%
01
1C
OBD standard the vehicle conforms to
01h : OBD II (California ARB)
02h : OBD (Federal EPA)
03h : OBD and OBD II
04h : OBD I
05h : not intended to meet any requirements
06h : EOBD (Europe)
03   Report all trouble codes  
04   Clear all trouble codes, freeze frame data, oxygen sensor data, and reset status of system monitoring tests


 

* For example, if you receive 41 00 BE 3E B8 10, you would take the data bytes (BE 3E B8 10), and convert them to binary. You will get 1011 1110 0011 1110 1011 1000 0001 0000, with 1's indicating supported modes. In this example, the vehicle supports PID's 01, 03, 04, 05, 06, 07, 11, 12, ...

** Data A is the 3rd byte in the returned message (excluding the header):
 

  Data Bytes (Hex)
#1
#2
#3
#4
#5
#6
#7
Request Powertrain Diagnostic Data
01
PID

 

 

 

 

 
Report Powertrain Diagnostic Data
41
PID
data A
data B
data C
(opt)
data D
(opt)

 

If you need help with anything explained on this page, you may contact us via our

The starlet uses a obd1. This means that it is possibly to look at various engine parameters such as water temperature, ingnition timing etc. The OBD1 information comes out of the VF1 pin of the diagnostic port. One way serial communication is started by bridging TE1 to E1.A project surround reading this will be developed shorlty. Below is some serial data being transmitted by the ecu. I am of the opinion the long break is a sync character.The sycnh pulsle is 150ms long

The ignition monitor has allowed us to monitor ignition timing of the EP91 ECU.The serial data stream interpretation remains a mystery atthis time. I have been able to generate a low speed ignition map which can be seen below.

 

 

Starlet OBD1