Nonsense Codes

Why Some OBD II Trouble Codes Don’t Make Sense

The advent of affordable code readers and scanners has enabled many non-professional and DIY mechanics to diagnose and repair their own vehicles, but there are several downsides to investing in a cheap, generic code reader as well. In this article, we will discuss some of the most important shortcomings of generic code readers, as well as explain why most generic code readers don’t work on some vehicle makes and models, starting with-

Nonsense” codes

Many DIY mechanics report that they routinely encounter OBD II trouble codes that don’t seem to make sense on the one hand, and that upon researching these codes, they don’t appear to be listed in any resource, on the other. Typically, these codes include the following, but note that the “nonsense” codes listed here represent neither an exhaustive, nor a complete list of codes that do not conform to the accepted format of OBD II codes-

  • B2ERR

  • B2TAE

  • C07<D

  • DAT

  • ROR

Moreover, note that the above examples may or may not be followed by a series of numbers or other symbols. In almost all cases though, whether or not any of the examples above are followed by numbers of symbols depends on both the affected vehicle being scanned, and the code reader being used in question, with smart phone diagnostic apps often producing the most confusing examples.

In practice, most generic code readers, and particularly smart phone apps, are designed and intended by their creators to be used either on a specific make of vehicle, or sometimes, on a small range of makes and models. However, while it relatively easy to program a code reader, or construct a smart phone app that can access the most commonly occurring generic codes on a particular vehicle make or model range, this is far less easy to do that when vehicle or manufacturer specific codes are involved.

The SAE Standard J2012 describes a list of several thousand generic OBD II trouble codes and their definitions, and by an Act of Congress, all vehicles that are sold in the Unites States must be programmed so that any given generic trouble code means the same thing on any other vehicle.

For instance, all trouble codes, both generic and manufacturer specific, start with the letter B (body codes), or C (chassis codes), or P (powertrain codes), or U (communication codes), but if the first character (letter) is followed by a “0”, that code is a generic code that must have the same definition across all makes and models. One example will suffice; fault code P0300 – “Random/Multiple Misfire Detected”, must mean exactly the same thing on all vehicles that display the P0300 code.

As a practical matter, the PID’s (Fault Parameter Identifiers) of generic trouble codes are known and widely published, which makes it a fairly simple matter to construct a piece of software that can communicate with a particular serial bus communication system to extract any generic codes that may be stored by the OBD II system on any given vehicle.

However, things are vastly different when it comes to manufacturer specific codes, the definitions of which can be anything a particular manufacturer wants it to be. Again, one example will suffice to illustrate the problem- let us look at manufacturer specific code P1335 as a random example. In this example, various manufacturers define code P1335 in various ways to describe different issues, i.e.-

  • Daewoo: Cylinder #5 Misfire – Circuit Open

  • Nissan/ Infiniti: Crankshaft Position Sensor (CKPS) (Reference Voltage)

  • Volkswagen/Audi/Volvo: Engine Torque Monitoring 2 Control Limit Exceeded

  • Ford: EGR Position Sensor “A” Minimum / Maximum Stop Performance

There are thousands of other possible examples, but the point is that car manufacturers can, and do, assign any code that is not generic or SAE reserved, to any issue that is not covered by a generic code. Moreover, apart from the PID’s and diagnostic modes that apply to generic codes that must be made available to the car repair industry, manufacturers are free to develop their own proprietary PID’s for issues that are specific to their products.

More to the point though, car manufacturers are not obliged to share proprietary PID’s with anybody, including manufacturers of diagnostic equipment. In fact, in many cases, car manufacturers refuse to make proprietary PID’s and other diagnostic information available to the repair trade. This is known as captive technology/information, which means that even some high-end diagnostic equipment cannot always extract all stored fault codes/data, or access serial communication systems that are tied to captive information.

So where does this leave the average DIY mechanic? The short answer is that many DIY mechanics are often left up the proverbial creek without a paddle when they come across nonsensical fault codes such as the few listed in the beginning of this article. The simple truth is that nonsensical codes are caused by communication failures between PCM’s, CAN, or other serial communication bus systems, and code readers/scanners that are incompatible with any given serial communication protocol or standard .

Put in another way, miscommunications between cheap generic code readers and serial communication systems occur across all manufacturers, and involve conflicts between some (mostly cheap, generic) code readers and communication protocols and/or standards, which begs this question-

How do serial communication protocols/standards differ from each other?

Automotive electronics have become increasingly complex over the past two decades: in fact, modern management and control systems even in midrange passenger vehicles now demand more processing power to function as designed, than was required to land roving vehicles on Mars.

We need not delve into those complexities here, but suffice to say that the systems required to interconnect several dozen microprocessors with dozens of sensors that monitor every aspect of a vehicle’s operation are exceeding complex. Moreover, serial communication systems are also required to operate in a stable manner in noisy electromagnetic environments, have a certain degree of fault tolerance, be capable of self-diagnosis, as well as be capable of prioritizing some data classes, while being capable of managing data on either a time or event based scheme, at the same time.

All of the above is a very tall order indeed, and while most modern serial communication bus systems manage some aspects better than some other aspects, the demands of modern automotive control systems are such that no serial communication system can cope with all aspects equally well. Therefore, the communication requirements of many, if not most vehicles are managed by a combination of two or more communication protocols or standards, or by a system in which dedicated control/management functions are performed by dedicated, but different, communication protocols/systems/standards.

An example of such an arrangement would be where one standard that supports a communication speed of say, 10.4 Kilo baud manages infotainment, and power window/seat adjustment systems. On the same vehicle, another standard that supports a communication rate of say, 41.6 Kilo baud might manage the ABS, fuel and ignition systems, as well as advanced driver assist systems such as Traction, Stability, and Cruise control systems. The interface between the two standards would be determined by the overall architecture of the serial communications system as a whole, which differs between manufacturers, and even between models in a model range.

Limited space precludes a full treatment of this aspect of serial communication systems, but for reference purposes, we have compiled a list of the most commonly used automotive serial communications systems in use today, as well as some of the salient features of each system, starting with-

CAN (Controller Area Network) systems

First introduced in the late 1980’s CAN bus systems employ pairs of wires that are twisted together to make the overall system more resistant against interference caused by electromagnetic fields. Most CAN bus systems typically have two circuits; a low speed circuit that typically controls/manages some body functions like window and seat adjustments and a high-speed circuit that typically controls the ABS and other systems- some of which include engine management functions on some applications.

Common features

  • Maximum Data Transfer Rates: 1Mbps @ 40m, 125Kbps @ 500m, 50kbps @ 1000m

  • Circuit Type: Differential – meaning the system consists of two discrete circuits

  • Physical Layer: Twisted wire pair

  • Transmission Format: Asynchronous- meaning the low and high speed circuits can function independently of each other

  • Drive Voltage: High: 2.75v ~ 4.5v; Low: 0.5v ~ 2.25v; Differential: 1.5v ~ 3.0v

  • Network Layout Point to Point – meaning microprocessors are directly linked by the system branches

  • Supported Standards: ISO 11898/11519

NOTE: The term “bit rate” refers to the speed at which data can be transmitted per second, but note that the rate of data transfer is a function of the duration of each bit of data. This means that the more data is contained in a bit, the fewer the bits that can be transmitted per second.

LIN (Local Interconnect Network)

First introduced in 1999, LIN systems have the advantage that they can be implemented by a single wire, with the vehicle frame serving as a current return path, aka ground connection. While LIN systems are generally very slow and uncomplicated relative to more advanced systems, LIN systems are commonly used to interconnect “intelligent” actuators and sensors.

Common features

  • Maximum Data Transfer Rates: 19.2 Kilo baud @ 40m

  • Physical Layer: Single-wire

  • Transmission Format: SCI (UART) Data Format

  • Operating Voltage: 12 VDC using a single wire

  • Network Layout: Single Master Control Unit and up to 16 sensors and/or actuators

  • Supported Standards: Enhanced ISO 9141

NOTE: The term “baud rate” refers to the maximum number of bits of data that can be transmitted in a system. Thus, if the baud rate of a communication system is pegged at say, 9600 baud, that system can transmit a maximum of 9600 bits of data per second. Note though that at baud rates that are in excess of 76 800, the quality of the installation becomes a serious limiting factor concerning the distance that data can be transmitted.


Flex Ray systems are a relatively new development that is intended for use on high-speed systems such as wireless steering and braking systems. The principal advantage that a FlexRay system has over other systems is its modular nature, and the fact that it is highly fault tolerant, especially with regard to its synchronization mechanisms.

Common features

  • Maximum Data Transfer Rates: 500 kbps to about 10 Mbps

  • Communication Modes: Either time-triggered, or event-triggered depending on the implementation

  • Network Layout: Either single-channel or, or dual-channel layout depending on the implementation

MOST (Media Oriented Systems Transport)

Designed in cooperation with carmaker BMW, Becker Radio, and DaimlerChrysler, MOST systems are commonly used to manage and/or control multimedia applications, such as car audio systems, CD /DVD players, and GPS navigation systems in modern vehicles. Since MOST systems transfer data though fibre optic conduits, these systems typically have date transfer rates that far exceed those of other types of serial communications systems.

Common features

  • Maximum Data Transfer Rate: 150 Mbps

  • Layers: All seven layers of the ISO/OSI Reference Model for Data Communication

  • Network Layout: Point to point via a ring layout, but Star configurations are also in common use

  • Other Features: Supports Plug and Play functionality with up to 60 channels, and up to 15 MPEG1 channels that are user-configurable

  • Standards: ISO 7498-1 (OSI Model)


Although Ethernet-based serial communication systems are not currently used in mainstream vehicles, these systems have the types of advantages over other systems that should make it more popular in next-generation vehicles.

Common features

  • Maximum Data Transfer Rate: Current iterations are limited to about 100 Mbps for automotive applications, although data transfer rates of about 100 GB/per second are possible

  • Network Layout: Star, line, and clustered layouts have proven to be successful in concept vehicles

One more thing…

The above are simple descriptions of very complex systems. In terms of diagnostics however, the complexity of serial bus communication systems is compounded by the fact that there are several protocols that determine the actual signaling that occurs within a system. Moreover, since some signaling protocols are controlled by specifications drawn up by the SAE (Society of Automotive Engineers), and others are controlled by standards drawn up by the ISO (International Organization for Standardization), two competing protocols are generally not compatible. This is true concerning each other, and especially so with generic code readers that are more often than not, programmed to function with only one signaling protocol.

In practice, there are currently 5 signaling protocols that are all compatible with OBD II systems that use the 16-pin J1962 DLC (Data Link Connector) but note that that is where the similarity ends. In practice, different manufacturers use different signalling protocols, details of which are listed below

  • SAE J1850 PWM (Pulse Width Modulation) standard operates at 41.6 Kilo baud per second, and is used by Ford

  • SAE J1850 VPW (Variable Pulse Width) operates at 10.4 to 41.6 Kilo baud, and is used by General Motors

  • ISO 9141-2 standard operates at 10.4 Kilo baud, and is used mainly by Chrysler, and most European and Asian vehicles

  • ISO 14230 KWP2000 (Keyword Protocol 2000) operates at 10.4 kbps, and may be used on some Chrysler, European, and Asian vehicles

  • ISO 15765 CAN typically operates at speeds of either 250 kbps or 500 kbps, but speeds of up to 1Mbps are in use on some high-end applications. Note that most vehicles made and sold in the North American marker are fitted with CAN-based serial communication systems

As if the above is not complicated enough, it should be noted that any given communication protocol can be defined by any one of several technical standards, the most common of these being, ISO 11898, SAE J1962, J1850, J1939, J1978, J1979, J2012, J2178-1, J2178-2, J2178-3, and/or J2178-4.

In addition, it should be noted that apart from the above, some vehicle manufacturers sometimes develop their own proprietary serial communication standards, or impose proprietary message structures and/or content upon “open-source” protocols, including most CAN iterations and some FlexRay configurations.

In these cases, vehicle manufacturers are not obliged to share their (patented) communications technologies with anybody, but should they elect to share with manufacturers of diagnostic equipment, the licensing costs are often prohibitively expensive, which means that in many cases, some diagnostic and fault data can be retrieved with software that only dealerships have access to.


It is our hope that you have found the information in this article helpful, and that it explains why many generic code readers and smart phone apps produce “trouble codes” that don’t make sense. It is simply a matter of computers failing to recognize each other, but once you understand why miscommunications occur, you may want to invest in a code reader that is programmed with the specific protocol and standards that define the serial bus communication in your particular vehicle.

5 4 votes
Article Rating
Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

most voted
newest oldest
Inline Feedbacks
View all comments
1 year ago

Je suis très contant de vos esplication mer si beaucoup

Shane McFarland
2 years ago

I have a code I cleared. Thought it was the air filter I changed. That’s when it tripped the code but a car swerving symbol shows now with the engine code 0171 bank 1 lean.

Nathaniel Olson
Nathaniel Olson
1 year ago

So as for the car swerving symbol, that is traction control off. The AWD or vehicle stability control is off /disabled due to the check engine light code. As for the code, it is referring to bank one sensor one oxygen sensor. This usually merits bank one sensor one replacement. you may want to change it if you feel longer shifting, poor gas mileage and sometimes stalling once in a while.

5 months ago

Can I get a complete fault code for Peugeot automatic transmission

Stephen Illing
Stephen Illing
8 months ago

Hi, please can you help, how can I get a complete set of fault codes for a 2008 Range Rover vogue please

BAT Team
8 months ago
Reply to  Stephen Illing

We have a page here for Range Rover / Land Rover vehicles. What engine is your 2008 Range Rover Vogue?

Scott Dolphin
Scott Dolphin
1 year ago

What exactly is u1120 code in 2008 Jeep Grand Cherokee mean

Roy Christopher Cargile

I need help ive rack my brain ive got a 2006 ford escape 3.0 litter awd. It started over charging and ive got that fixed now it shows a p0354 code so ive changed the coil still miss fires and I’m getting power to the coil but i wasn’t getting the pulse fro the pcm so i too it to the ford dealer ship and had a pcm programed and it still miss fires and now to the same coil on the pulse side it act like it has a short cause the test light used to didnt come on but now it comes on on the power and the pulse side im so cufused. Can y’all help me

Nathaniel Olson
Nathaniel Olson
1 year ago

Hello Roy. So I have also done lots of searching and racking my brain with research. I do think I may have found the problem. In my shop, once a guy brought me in your same make and model ford 3.0L escape. It was running rough, stalling,misfiring, etc. While it came out to be somehing small, a bad egr valve, what I believe is going wrong with your escape is the PCM shorting out on the coil on plug circuit. First, before hanging the pcm though, I would make sure the #4 coil harness is not rubbing on anything like a/c line or split open. The bad pcm explains the overcharging the alternator, giving it a false charge is probanly shorted out on the pcm side from the secondary voltage in the coils goin bad. Itd be good to put new spark plugs(motorcraft) and all new coils after the pcm replacement so you don’t have the issue again. I hope this helps, and works for you.

1 year ago

Yes I’ve got 2 codes which only appeared after a hard reset . On my Chrysler Aspen 2007 it died while driving, yes my keyfob is jacked but it has done ok, and so codes are KWP2000, and ISO9141 . M
WHAT does these mean cuz after 3 mechanic shops refused to work on it which I thought was odd, it before new battery and ignition switch it does nothing, is it cuz I got to take it to dealership to program it, it was not the tumbler but the plastic switch on left side. It seems to me the security has it locked down or something it’s ahh making me crazy… lol help a guy out please

Brian Wind
Brian Wind
1 year ago

What is a P1237 code on a 2000 Ford Taurus SE?

2 years ago

2012 Bmw 528i xdrive was running with total empty motor oil unnoticed. After step real fast on accelerator started some weird shaking on the oils tube transmitter. Stopped the car but next day the car didn’t turn back on and monitor accused Battery Draining Malfunction… I put one 5g motor oil on the engine and tried jump start the car, the computer went back on, I notice the noise was gone, but the one scary thing the car didn’t fully started, and a young mechanic guy told me I need to change my motor and I should forget about the car. I’m desperate. A neighbor watching my pain did this diagnostic reading and some codes showed that I don’t understand showed up, first very confusing P15FE Power Drain / P054B ( PowerDrain) and P0597 (PowerDrain) I’m hoping to a miracle. I’m really needing help. Can anyone advise me what does it means. Thank you so much Anamaste !

Patricia Shields
2 years ago

I have a code po776 my cars not acting up i took it to get red they said i need new trans..i was told by someone i need a pressure selinoid

2 years ago

I’ve got a P2BE4 code during cold start (with little signs of misfire, a few times together with P273F code) on my 2008 Mini One 1.4A (Euro spec). And after driving vehicle around for 15mins or so, the code either goes off by itself, or during a restart of the car.

Have search around for what P2BE4 means, and seems like it’s a DME error, and P273F code is Cyl 4 Ignition Coil Error. Pulled the ignition coil (original Delphi) from the Cyl 4 and the coil looks brownish.

Does it mean P273F is the cause for P2BE4? Other than “DME error”, I can’t seem to find any description that matches P2BE4.

Nathaniel Olson
Nathaniel Olson
1 year ago
Reply to  Des

Hello. So I’ve had experience dealing with this issue on Minis. Seems how the code goes away after driving, it is a during starting issue. Ya know how Minis have a push button start? The little start lever you push cranks the motor UNTIL the vehicle starts. Minis have trouble with flooding. On cylinder 4. The brownish color you’re seeing on the coil boot is actually fuel. The reason the code goes away after driving, is that it is not flooded anymore due to the vehicle running. You’d think that with all the hi-tech fuel injection nowadays that cars would never flood,….but they still do. The fix for this issue is to use fuel that has less petrol in it. Too much petroleum in these motors produces more vapor, thus causing it to flood alot easier.

2 years ago

Vehicle: 2009 Buick Enclave
situation: P0207 code is showing explaining that a circuit is open in the number 7 cylinder
background: about six months ago, the check engine light started flashing on my way home from work, i drove it about 15 miles home and when we plugged it in with the generic code reader, it showed a oxygen sensor problem (i dont remember the code) we ended up replacing all four o2 sensors, intake gasket, coil packs, and assumed the only other option was the catalytic converter which i decided not to fix at the time and left the check engine light on. it has been about four months, no problems with the car; it runs fine. i did notice that the gas mileage is a tiny bit less than it is when the check engine light is not on.
I am confused on how the P0207 code can be firing on a car that only has 6 cylinders. I cant really find any information about this online. We reset the code and it has not come back on yet. any input?

Nathaniel Olson
Nathaniel Olson
1 year ago
Reply to  Sarah

The car doesnt have 7 coil packs, correct. However this code applies to the fuel injectors. The pcm may not be able to detect which injector is shorted, or open, so it may throw this code. If it is running rough, I’ve ran into this same deal on a buick regal. The problem was two wires on a coil rubbing together. In your case the injector wiring harness. I would swap a few injectors around, and see which code the injector detects. Also, if you have experience testing injectors, put a noid light on each injector(easiest diagnostic way) and check the injector pulse. If no injector pulse, the driver module. Depending on its fuel delivery method. I.e direct injection, etc. A bad fuel injector could cause the o2 sensor to act erratically due to the fuel, air balance being off.

Jose Garcia
Jose Garcia
2 years ago

I purchased a plug in diagnostic device that stays on the connector as you drive and can be monitored on your cell phone. No obd2 codes appear which is a good thing as the check engine light remains off. The device also measures voltages and temperature readings from the various sensors on board. On these readings failures appear with “$” codes example $46.or $7f. My car is a 2006 Subaru b9 tribeca limited. Have you seen these codes before,
if so how can I find an interpretation or a listing for what they refer to

2 years ago

Hi …I own ltd. Maxus 2.5 CDI, my obd2 reader says CCM on I/M readiness panel. Seems like a nonsense fault code to me or abbreviation for some fault….does anybody on here know?

Nathaniel Olson
Nathaniel Olson
1 year ago
Reply to  Las

Ok, so this is a monitor for checking rationality of inputs, storage, and outputs. CCM stands for comprehensive component monitor. This checks certain sensors that could affect emission levels. Hope that helps.

Michiele Campbell
2 years ago

What is etc 025