S-10 Forum banner
1 - 2 of 2 Posts

· Mr Goodwrench's Evil Twin
587 Posts
Discussion Starter · #1 ·
DIY Guide to OBD2 Scanners
Written by thebadwrench​

There is a metric :censor:-ton of scanners and code readers on the market. This write up is a comprehensive guide to consumer level OBD2 scanners, terminology and the various types of diagnostic trouble codes and data they can (or can’t) read. It is intended to help the DIY guys (and gals) decipher what scanners do what and what all those terms you see on the packaging actually mean.

This guide contains 3 segments:
Part 1: OBD2 Scanner Functions & Terminology
Part 2: The Diagnostic Trouble Code
Part 3: OBD2 Code Readers and Scanners

Part 1: OBD2 Scanner Functions & Terminology

• Malfunction Indicator Light/check engine light/service engine soon light. MIL is the OBD2 standard acronym

• Anti-lock braking system


• Supplemental Inflatable Restraint/Supplemental Restraint System aka air bags

• Engine control module/powertrain control module
• This computer is the heart of the entire emissions system

OBD2 – On Board Diagnostics Second Generation
• In a nutshell, OBD2 is a standard and requirement for every gasoline passenger vehicle under 14,000 lbs. sold in the US since 1996. It refers to a vehicle's on board diagnostic capabilities for emissions control purposes. OBD2 standardized how codes look, how those codes are retrieved from a vehicle and much more.

• European OBD2, standard as of 2001
• Japanese OBD2, standard as of 2002
• For complete list of countries that have adopted the OBD2 standard up to 2018, see here

Enhanced OBD2
• Manufacturer OBD2 data is often referred to as "enhanced OBD2" (see Part 2 for more info)

Generic OBD Modes
• OBD Modes are essentially the different services the engine computer can provide to the scan tool. Not all cars support all modes. Generic OBD defines 10 different modes:

• Mode $01: Request Live Data
• Mode $02: Request Freeze Frame Data
• Mode $03: Request Trouble Codes
• Mode $04: Clear Codes/ Reset Data
• Modes $05 & $06: O2 Sensor & Other Parameter Test Results
• Mode $07: Pending Trouble Codes
• Mode $08: Request control of On board systems
• Mode $09: Request vehicle info (such as VIN#)
• Mode $0A: Request Permanent codes

• Manufacturers are free to add additional modes to their diagnostic systems as well, these are known as enhanced OBD modes

• A PID is a Parameter Id. These PIDs are the codes a scanner uses to request information from a cars computer. The scanner requests a PID and the car sends the requested information back to the scanner.
• Each mode has its own list of PIDs. A parameter can be things like status of the MIL, sensor data, distance traveled since the MIL was illuminated and so on. A list of these PIDs can be found here.
• Not all scanners communicate all PIDs. Lower end scanners may only have 8 or 10 PIDs available

I/M Readiness Status/Monitors
• I/M Readiness Monitors in a nutshell are an insight into a vehicles self-diagnostic state. They tell you which self-diagnostic tests are completed, which ones are not completed and which ones are disabled due to various circumstances, such as the coolant temperature being too low for the test to be completed (like a cold start) or the fuel level not being within a specified range.
• I/M readiness status does not tell you if a test has passed or failed, it only indicates if the tests have been completed or not.
• A vehicles computer runs tests for various emissions related DTCs, when the specified tests for a given I/M readiness monitor are completed, whether the test passed or failed, I/M readiness shows “completed”. If a test failed, either a “pending code” or a “current code” will be set depending on the nature of the failure.

Live Data
• Live data is real time sensor readings and these can be super useful when diagnosing a MIL.

Live Data Graph
• Some scanners will take live data and place it into a live data graph. On some scanners this data graph is limited to a single parameter at a time, such as throttle position sensor or O2 sensor voltage. Other scanners will plot multiple parameters in a single graph or even place 2 or more graphs on the screen.

Freeze Frame Data
• This is data that the computer stores when a fault is detected and a trouble code is stored. The computer takes a snap shot off all the sensor values at the moment the fault was detected. This information can then be accessed at a later time for use in diagnosing the fault.

Data Record
• This can be a useful feature, it allows you to make a recording of the live data stream that you can reference at a later time. This is handy for when you need to drive a vehicle to duplicate a fault and are unable to watch the live data stream when the fault occurs because you are driving.

OBD2 Protocols/OBD CAN
• From 1996-2007, OBD2 standards permit use of 5 different communication protocols. The CAN BUS protocol is mandatory in all vehicles since 2008. If a code reader or scanner is OBD2 compliant, it will support all 5 protocols.
• For more info on these protocols and how to determine which protocol your car supports (if you want to know), this page breaks it all down nicely.

VIN Decoding
• Many scanners are able to retrieve and decode a vehicles VIN number. Because generic OBD2 codes & data are not make/model specific, this feature will only be found in enhanced OBD2 scanners

Bi Directional, Special Functions & Output Controls
• A bi directional scanner is a scanner that not only receives information from the cars computers, but can also send commands to them. These commands are often referred to as special functions or output controls. See part 3 for more details

Vehicle History/Data Logging
• This feature usually isn't found in low end scanners but it can be a useful feature if you scan a lot of different cars. Scanners with this feature automatically save each vehicles VIN along with what codes were stored and freeze frame data. This allows you to view the information at a later time without hooking the scanner back into the car.

• Tire pressure monitoring systems have been required on all vehicles sold in the US since 2008. Many (not all) of these systems utilize a pressure sensor inside the tire to monitor the tires pressure. Whenever these sensors must be replaced, the new sensor must be learned. Some cars also must be re-learned whenever the tires are rotated even if no sensor was replaced. Because this requires the scanner to have additional hardware AND software, this feature usually isn’t found on lower end scanners.
• TPMS tools can be purchased as standalone tools as well.

• IMMO stands for immobilizer. Scanners with this feature can program/reprogram transponder keys/fobs and perform other security functions. Like TPMS, this feature is usually not available in lower end scanners

For additional automotive acronyms, see here

Part 2: The Diagnostic Trouble Code

Trouble codes are an extensive subject. What follows is a brief description of the different types of codes that can be found in today’s cars. In reality, it is just the tip of the trouble code ice burg.

Pending Codes
• A trouble code will be in this state when the computer has detected a fault but it has not detected it enough times or for long enough for it to turn on the MIL.

Current Codes
• Also known as hard faults, these are the faults that are actively failing at that moment

History Codes
• These are codes that indicate a fault was previously detected but the fault is not currently active. If a car has an intermittent problem, history codes can be helpful in diagnosing that problem.

“P” codes
• These are powertrain codes. These may also be called emissions codes.
• These are the only codes required by the OBD2 standard

“B” Codes
• These are body codes. These codes cover SIR (air bag) systems, lighting systems, HVAC, power sliding doors in minivans, power windows & locks and much more.
• These codes are not an OBD2 requirement so not all vehicles will set “B” codes

“C” Codes
• These are chassis codes. These codes cover ABS, traction control, suspension systems and more
• These codes are not an OBD2 requirement so not all vehicles will set “C” codes

“U” Codes
• These are user network codes, also known as communications codes. These codes set when computers aren’t communicating with each other as expected. When you see one U code there are often many other U codes with it.
• Understanding these codes and how to find the faults that cause them usually requires knowledge of how car computers communicate with each other in a vehicle. These codes are the least common and can sometimes be the hardest codes to diagnose.

Generic OBD2 Codes (emissions)
• These are the codes that are standardized by the OBD2 laws. Every vehicle can set these codes and they are the same across all manufacturers. A P0301 code in a GM means the same thing as a P0301 code in a Mercedes or Honda, misfire on cylinder 1.
• These codes typically start with P0xxx

Manufacturer/OEM OBD2 Codes (emissions)
• Also known as “Enhanced OBD2” codes
• When a manufacturer feels that a type of fault doesn’t fit one of the generic OBD2 codes, they can create their own code for that fault.
• These codes typically start with P1xxx.
• These codes can differ from one manufacturer to the next
• These codes can set along side a generic OBD2 code or they can stand alone.
• If a MIL is on and a generic OBD2 code reader says “no codes stored” or something similar, this is because it is a manufacturer’s code that has turned the MIL on and the code reader being used is not capable of reading manufacturers codes, only generic codes.

OBD2 Generic Codes (non-emissions)
• OBD2 has a standard list of codes for non emissions faults as well. These codes are the B, C and U codes mentioned above.
• The generic codes generally start with B0xxx, C0xxx and U0xxx respectively. Just like the OBD2 emissions codes, manufacturers can create their own codes here as well. These generally start with B1xxx, C1xxx and U1xxx.
• OBD2 laws DO NOT require use of these codes or this code structure in order for a vehicle to be OBD2 compliant.
• Specialized software is needed to read these codes.
• A more in depth look at trouble codes can be found on this page

Non OBD2 Manufacturer Codes (non-emissions)
• Because manufactures are not required to adhere to the OBD2 standards for non emissions diagnostics, a lot of car makers have their own set of codes for many of their on board systems. Some car makers will even use the OBD2 standards on only some non-emissions systems in a vehicle but not others. Manufacturer codes of this variety don’t resemble obd2 codes at all and specialized software is needed to read these codes.

Non-OBD2 Manufacturer Codes (emissions)
• OBD2 is a required standard, but OBD2 laws do not prevent auto manufacturers from incorporating additional on board emissions system diagnostics. These OEM specific systems operate a long side the required OBD2 on board diagnostics systems and even use the same computers and often the same diagnostic port, but they set different codes that resemble an OBD2 code in no way. Access to these codes is beyond the capability of most any low-mid range consumer scanner. However, these emissions codes are generally set alongside and correspond to an OBD2 code so access to them is often not needed… at least at the consumer level.

Part 3: Code Readers and Scanners

The terms scanner and code reader are often interchanged with one another but shouldn’t be. A code reader reads and clears codes. Some code readers are more capable than others, but code readers are just that… code readers. If you plan on diagnosing your MIL yourself, you are better off getting a diagnostic scanner. Scanners provide more information that can be used for diagnosing faults in a vehicle than a code reader.

Code Readers

Generic OBD2 Code Readers:

We’ll start at the bottom of the barrel. These code readers read generic OBD2 emissions codes only.. They do not have the software needed to read manufacturer or “enhanced” OBD2 codes. These code readers are inexpensive and very user friendly due to their lack of features.

The wording on these generic OBD2 code readers can sometimes be misleading. They will say “works with all makes and models” because the generic OBD2 codes apply to all makes and models but this doesn’t necessarily mean they read manufacturer OBD2 codes.

If you read the packaging it will generally say somewhere that it is a generic OBD2 or standard OBD2 code reader but makes no mention of manufacturer OBD2 codes.

Enhanced OBD2 code readers:

These are a step up in that in addition to reading and clearing generic OBD2 codes; they can also read and clear many manufacturer OBD2 codes. These are still limited to emissions (“p” codes) and usually say somewhere on the packaging that they read both generic and manufacturer OBD2 codes or they will say “enhanced OBD2”. Many will also list the manufacturers that the code reader is compatible with on the packaging i.e. Chevy, Ford, Honda etc.

I would recommend a code reader the reads both generic and manufacturer OBD2 codes as a bare minimum if purchasing a code reader.

OBD2 code readers & scanners with ABS, SIR or other capabilities:

These contain the extra software needed to obtain ABS and/or SIR (air bag) codes. Because this type of information can vary from one manufacturer to the next, you need to make sure you are purchasing one that is compatible with the vehicle(s) you need to it work on, even if it says it works on most ABS and/or SIR systems.

Diagnostic Scanners

For those DIY types, I would recommend a diagnostic scanner over a code reader. Scanners, even entry level ones, provide you with more useable information than a code reader. Most any scanner on the market will have a live data stream, freeze frame data and I/M readiness monitor in their list of features. These features will get a lot of people through a diagnosis on their own car, eventually. The more knowledge you have of a car’s interworking’s, the more useful the live data stream and freeze frame data will be. It’s a good place to start if you want to learn more about cars as well.

Enhanced OBD2 scanners

Just like with code readers, I would recommend that a scanner be capable of both generic OBD2 and manufacturer aka “enhanced” OBD2 codes and data. Even 20 years ago manufacturers were producing cars that have data parameters above and beyond what generic OBD2 standards require. The ability to see and use that data will only help. For those that are unsure of what the data they are looking at actually means… the internet can be a very useful tool in learning.

Updateable Scanners

Another feature I would recommend having is the ability to update the scanner. OBD2 is 22 years in the making so far and it has evolved TREMENDOUSLY in that time. Without the ability to update your scanner, it’s only a matter of time until you start running into compatibility and other issues. OBD2 is continuously evolving, so an OBD2 scanner should be capable of evolving with it.

Bi-Directional Scanners

These are the scanners that allow the person using them to control various equipment in a vehicle. The available controls will vary from scanner to scanner, but entry level scanners are usually not bi-directional with the exception of clearing codes. Some mid-level scanners are bi-directional but they are fairly limited in their bi-directional functionality. In order to get a wide range of useful bi-directional functionality a higher end consumer scanner or a professional grade scanner is needed and they don't come cheap. Bi-directional controls can be things like energizing solenoids and actuators, EVAP system seal for purposes of EVAP leak testing or even control the vehicles lighting, door locks and windows… all from the scan tool.


Many manufacturers have their own scanner that is specific to the vehicles they produce. These manufacturer specific scanners provide the greatest amount of bi-directional controls and PIDs but they also come with a hefty price tag. The updates for them also come with a hefty price tag. A brand new GM Tech2 costs several thousand dollars and a genuine used one can be purchased on eBay but will still cost $1000+. Clones are knock offs and much less expensive than the genuine tool. They look the same and even appear to operate the same. However, they aren’t the real deal and often have little to no quality control. Clones have sometimes even been known to cause permanent damage to a vehicles computer or even multiple computers, rendering the vehicle useless until the damaged computer(s) are replaced.

The Price Tag

When it comes to scanners, it should go without saying that the higher the price tag, the more it will do. Snap-on’s top of the line scanner has a $10,000 price tag and does things that you wouldn’t believe. But many of its features are beyond the skillset of the average weekend warrior. For the DIY type, I would suggest that you don’t buy a scanner that is too far beyond your own skillset, although a scanner that pushes the limits of your skills a little may help you learn more about your car and its computer system.
For the average DIYer, a scanner costing around $100 should do the trick.

Bluetooth OBD2 Dongle

These are a relatively new player in the OBD2 scanner market. They are cheap alternatives to diagnostic scanners. Costing as little as $10-$15 up to around $100, these are surprisingly capable little devices. I have 2 of them myself, 1 in each of my vehicles. I keep them in the car so that I always have the means to get codes and live data from a friends or family member’s car, even if I don’t have my scanner with me.

The dongles themselves are compact and have no user interface. The user interface is provided via a 3rd party smartphone app. I use the Torque Pro app but there are many other apps to choose from. What I don’t like about many of these apps (I’ve tried several) is that, in my opinion, they seem geared towards the “tuner” guys… ya know, the “my 1985 crx is a race car because I bought an ugly ass poorly fit Pepboys wing for it” guys. These apps seem to want to show you a limited amount of live data via analog and digital gauge readouts on your phones screen. Getting them to actually list the parameters so you can view everything easily all at once can be quite the task in some apps.

Another drawback to these is most of them do not have ABS, SIR or other capabilities, but some of the better more expensive ones do.


Today’s cars are more computerized than ever. The average car in 2018 contains somewhere between 20 – 50 processors or more. When OBD2 became the required standard in 1996, most cars had 3 or less computers. A scanner that can communicate with every module in today’s cars is far from a necessity for most. Fact is it takes a professional level or high end consumer level scanner with a price tag of $1000+ to communicate with everything in most cars that is beyond the requirements of the OBD2 standard. But when that MIL is shining bright, an OBD2 scanner costing around a $100 or even less will more than suffice for most people.

The best advice I can give to those in the market for a scanner is to use the knowledge provided in parts 1, 2 and 3 of this write up and do your homework on the scanner you are interested in before buying. Look for reviews, specs etc. online. Visit the manufacturer website and visit their forum if they have one. Bottom line is to educate yourself before buying. There is no such thing as “the best scanner”, but there is the best scanner for you if you do your homework.

A Note About SIR Systems

SIR (air bag) systems save lives. However, when dealing with any SIR system, whether it be diagnosing or repairing them, they can be extremely dangerous if not handled in the appropriate manor. I discourage anybody from attempting to diagnose or repair air bags systems unless they know EXACTLY what they are doing and they’re following the manufacturer diagnostic and repair procedures. Air bags do save lives, but they are also fully capable of inflicting serious injury or worse if handled incorrectly. Air bags deploy with explosive force… better safe than sorry, leave SIR systems to the pros. And always take the necessary precautions when doing any type of repair on any vehicle equipped with airbags.
1 - 2 of 2 Posts
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.