Some states are now using the OBDII connector for emissions testing. The
good news is that if the vehicle has completed testing its emissions systems
since the last time the battery was disconnected or the trouble codes reset,
the test takes only seconds to pass. The bad news is if it hasn’t completed
them the vehicle may not be passed. If you see "—Ready—" in the second line
after pressing SCAN, all the tests have been run and there are no trouble
codes. You are ready to pass the emissions check. If you see "-Not Ready-",
some tests haven’t been run. Even though there are no trouble codes, you may
still fail emissions because some required tests have not been completed.
Some states allow the vehicle to pass emissions even if certain tests have
not been completed. The ones that are allowed differ from state to state.
Although the ScanGauge II cannot tell you which ones your state allows, it
can tell you which ones have not been completed.
The CMNDS function in the ScanGauge II allows you to send OBDII requests
and receive OBDII responses. The trick is in the encoding and decoding of the
requests and returned data.
Data in the OBDII system uses hex-a-decimal bytes, just like most
computers. This should make it easier for those familiar with the language of
computers. For those who are not that deep into computers, don’t worry, it
can be broken down into some simple sequences of numbers and letters.
Hex-a-decimal uses the numbers 0 to 9 just like decimal, but adds the
letters "A" through "F" as "numbers". Each "Byte" actually contains 2
hex-a-decimal digits. "7F" is an example of a hex-a-decimal byte. 1A23D4 is
an example of a hex-a-decimal number. I’ll leave the discussion of why
computers like 16 numbers instead of 10 for someone else. You don’t really
need to worry about it.
OBDII Commands
OBDII Commands have a structure which depends on the protocol (MODE in the
ScanGauge II). You will have to know the MODE your vehicle is using. When the
ScanGauge has connected to the vehicle computer, CAN capable ScanGauges
(Version 2.xx) will tell you the MODE by using MORE>MORE>MODE. The MODE
will be shown on the top line. Non-CAN ScanGauges will show the MODE by using
MORE>MODE>READ.
The commands use a checksum to verify that the data was received
correctly. The ScanGauge adds this to what you tell it to send, so you don’t
have to worry about it. The responses also include a check value which is
displayed by the ScanGauge II. The ScanGauge II validates the response by
using the check value before the response is displayed. If a response is
displayed, it has passed the check and you don’t need to bother with the
check value.
Making and Sending an OBDII
Command
The ScanGauge II has 10 memories which can be used to store an OBDII
command. It uses "Flash" type memory which doesn’t require power or a battery
to be retained. You can change it as often as you like or keep it as long as
you want, even if the ScanGauge II is unplugged.
Access to the memory is through MORE>MORE>CMNDS. This get you to a
Memory screen. You can use the upper buttons to select which memory (0 to 9)
to use. The inputting of the command is reached by pressing EDIT. This opens
a screen where the command can be created or, if one already exists, changed.
The upper buttons move you through the hex-a-decimal number locations which
extends clear through the top line and most of the way through the second
line. Most OBDII commands are shorter than this.
The lower left button is used to change the character at the blinking
cursor. It steps from a "space" to the numbers 0 to 9 and the letters A to F,
then starts back at "space". This allows you to build the command using the
upper buttons to position the cursor and the lower left to set the value at
the cursor.
When you have completed the command, you exit the memory edit screen by
pressing the lower right "OK" button. This returns you to the memory screen.
The lower right "SEND" button causes the command to be sent. You can move
from memory to memory sending commands as often as you like.
Receiving an OBDII Response
The ScanGauge II sends a command after you press the Send button when it
is proper to do so according to the OBDII rules. It then looks for a
response. It will capture, check and display the first response it sees after
sending the command. This is an important point.
OBD busses can contain a lot of things being passed from one computer in
the vehicle to another or to the ScanGauge II. The first response may not be
the response to the command you sent. It may be a response to a command sent
by the vehicle computer or other ScanGauge II command. The vehicle can sort
the responses out because the response contains values which shows what
command it is responding to. You have to do this by checking some of the
characters in the response. If it is not the response to your command, you
would send the command again.
Asking for Emissions Test
Status
The command you need to put into the ScanGauge II and send to retrieve
emissions test status depends on the protocol/MODE.
If your vehicle mode is PWM, the command would be:
616AF10101
For VPW, ISO and KWPx use:
686AF10101
For KWPx use:
C233F10101
For CANxx use:
0101
The Response
After entering the command, press OK and then SEND. Any response will
appear in the display. If no response is seen, make sure the engine is on and
gauges are responding and try again. The response you are looking for will
have some values that verify it is a response to your request, other numbers
that verify the data has been received correctly and numbers that contain the
information you requested. Just like the command, the response depends on the
protocol/Mode. The lower-case letters x,j,k,l,m,n,o,p,q and z are place
holders in the following sequences. The actual values displayed by the
ScanGauge II will be hex-a-decimal numbers (0 to 9 and A to F)
For PWM, the response will look like:
416Bxx4101jklmnopqzz
For VPW and ISO:
486Bxx4101jklmnopqzz
For KWPx:
86F1xx4101jklmnopqzz
For CANxx:
4101jklmnopq
If the response doesn’t contain the hex-a-decimal numbers shown, send the
command again until it does. If you can’t get a response, either the command
is not set up correctly or the vehicle doesn’t have a response for the
command.
Decoding the Response
The information we are interested in is in the j through q numbers. The j
and k tell whether the "Check Engine" light is on and the number of trouble
codes if any. The l and m values indicate the status of the continuously
monitored systems. The n and o values indicate which type of tests are
supported in the vehicle and the p and q values tell which of the tests have
not been completed. The p and q values are what we are after.
Table 1 shows how to decode the p value. The x’s indicate which tests have
not been completed. For instance if the value in the p position was 4, the
Evaporative System Monitor tests have not successfully completed. This could
be caused by a missing or loose gas cap or other leak in the fuel tank
system, or just indicate that the vehicle hasn’t run long enough to perform
the test since the trouble codes were reset or the battery disconnected.
Table 2 shows the decoding for the "q" value.
Table 1 - "p" Decoding
"p" Value |
AC Refrigerant
Monitor |
Oxygen Sensor
Monitor |
Oxygen Sensor Heater
Monitor |
EGR System
Monitor |
0 |
|
|
|
|
1 |
x |
|
|
|
2 |
|
x |
|
|
3 |
x |
x |
|
|
4 |
|
|
x |
|
5 |
x |
|
x |
|
6 |
|
x |
x |
|
7 |
x |
x |
x |
|
8 |
|
|
|
x |
9 |
x |
|
|
x |
A |
|
x |
|
x |
B |
x |
x |
|
x |
C |
|
|
x |
x |
D |
x |
|
x |
x |
E |
|
x |
x |
x |
F |
x |
x |
x |
x |
Table 2 - "q" Decoding
"q" Value |
Catalyst
Monitor |
Heated Catalyst
Monitor |
Evaporative System
Monitor |
Secondary Air System
Monitor |
0 |
|
|
|
|
1 |
x |
|
|
|
2 |
|
x |
|
|
3 |
x |
x |
|
|
4 |
|
|
x |
|
5 |
x |
|
x |
|
6 |
|
x |
x |
|
7 |
x |
x |
x |
|
8 |
|
|
|
x |
9 |
x |
|
|
x |
A |
|
x |
|
x |
B |
x |
x |
|
x |
C |
|
|
x |
x |
D |
x |
|
x |
x |
E |
|
x |
x |
x |
F |
x |
x |
x |
x |
An Example
The following command was sent to a VPW vehicle which was showing
"—Ready—" after being scanned.
686AF10101
The Response received was:
486B1041010007E50021
The 0’s in the p and q locations (just before the 21 at the end) indicate
there are no incomplete tests. This verifies the "Ready" status.
After disconnecting and reconnecting the battery, the same command was
sent again and the following response was received:
486B1041010007E5E5FA
The "E" in the "p" location indicates the Oxygen Sensor Monitor, Oxygen
Sensor Heater Monitor and EGR System Monitor tests have not been
completed.
The "5" in the "q" location indicates the Catalyst Monitor and Evaporative
System Monitor tests have not been completed.
A Scan shows "--Not Ready--" as we would expect. |