What is ewma misfire count?
In Mode 6, the Misfire Count for cylinder 3 was at 3640 and the Misfire EWMA (exponentially weighted moving average, a commonly used statistical filler) was at 577. Total EWMA misfire count of all cylinders in last ten driving cycles. Exponential Weighted Moving Average (EWMA) misfire for all cylinders EWMA Total misfire counts for last driving cycle * 0. Multiply by 1 Time Exponential Weighted Moving Average (EWMA) misfire for all cylinders: EWMA = Total misfire counts for last driving cycle * 0.
fire problem may continue unnoticed and undiagnosed until the vehicle fails a tailpipe emissions test, or until the spark plugs are replaced and suddenly the engine runs like new again.
With OBD II, there’s no missing misfires. Most engine control systems with OBD II monitor the speed of the crankshaft between cylinder firings to detect misfires. The powertrain control module (PCM) notes the relative position of the crankshaft via the crankshaft position sensor (CKP) each time a trigger pulse is sent to the ignition system. If the crankshaft does not rotate a certain number of degrees between cylinder firings, the change in rotational velocity indicates a misfire must have occurred.
Blind Logic Any misfires that are detected are recorded and tracked over time. If the rate of misfires exceeds a certain threshold, the OBD II logic is programmed to log it as a potential emissions failure and set a misfire fault code. The check engine light comes on and a P030X is set where X corresponds to the cylinder that is misfiring.
A code P0302, for example, would tell you cylinder number two is misfiring. If more than one cylinder is misfiring, there will be additional codes for those cylinders as well. And if a misfire is random and jumps from cylinder to cylinder, you may find a P0300 random misfire code.
On most applications, OBD II uses a “block learn” strategy to track misfires. Any misfires that occur are recorded every 200 revolutions of the crankshaft. The tally is stored in 16 memory blocks, so every 3,200 rpm the misfire count starts over again.
As long as the number of misfires in any given memory block remains below a certain value, there is no problem and OBD II gives that block a “pass” rating. But if the number of misfires in that block is too high, the block receives a “fail” rating. By averaging the pass/fail ratings of all 16 blocks, the OBD II system gets the big picture of what’s actually going on. This helps avoid the setting of false misfire codes, and also allows the system to spot pattern misfires that may cause an increase in emissions or damage to the catalytic converter.
One of the drawbacks of using a crank sensor to detect misfires is that it can sometimes be fooled by normal powertrain vibrations. Driving on a rough road, for example, may produce variations in crank speed that seem like misfires but are not. Some OBD II systems monitor inputs from the ABS wheel speed sensors to tell when a vehicle is driving on a rough road, and disable misfire detection until the road smoothes out.
The OBD II system is usually programmed to ignore misfires when the engine is cranking, and when a cold engine is first started. It will also ignore misfires during decel when the fuel is momentarily cut off. In most cases, a misfire problem will set a pending code on the first trip, but won’t turn on the check engine light or set a hard code until the second trip if the misfire problem continues.
The OBD II misfire monitor is normally active when a warm engine is running under normal loads, but it may not track misfires if other fault codes are present or codes are pending for the fuel system, evaporative emission control (EVAP) system or EGR system.
One very important point to keep in mind about OBD II misfire detection is that the system does not tell you why the engine is misfiring. OBD II can give you an exact count of the misfires cylinder by cylinder (which you can find in Mode $06 with a scan tool), but it can’t tell you what’s causing the misfires.
Why Misfires Are Bad Every engine will experience an occasional misfire. As long as the misfires are fairly random and spaced far enough apart, it causes no harm. But a frequent or steady misfire will cause a sharp rise in unburned hydrocarbon (HC) emissions, a noticeable drop in power and a significant decrease in fuel economy.
HC emissions are a factor in urban smog, but can also be very damaging to the vehicle’s catalytic converter. When a cylinder misfires, that cylinder’s dose of air and fuel passes unburned into the exhaust. When it reaches the converter, the fuel ignites and is burned up.
This causes the converter’s operating temperature to shoot up hundreds of degrees. So a bad misfire can make a converter run really hot. If it gets hot enough, the ceramic or metallic honeycomb inside the converter may melt, creating a partial or complete exhaust restriction. The increase in backpressure will kill performance and fuel economy, and also may cause the engine to overheat.
Or, it may cause the engine to stall by strangling off the flow of exhaust.
If you discover a heat-damaged or plugged converter, the old converter will have to be replaced. You will also have to diagnose and fix the problem that caused the misfire that lead to the converter failure, too.
Misdiagnosing Misfires Misfires can be caused by one of three things: fuel mixture problems (too rich or too lean, or not enough fuel), compression problems, or ignition faults.
If the cylinders are flooded with too much fuel, it can foul the spark plugs and prevent them from firing. This was often a problem with misadjusted chokes on carburetors, or bad floats or leaky fuel bowl inlet valves. With electronic fuel injection, it’s much harder to flood an engine (though not impossible). Even so, a rich mixture can be caused by restrictions in the air intake system, too much fuel pressure (check for a blockage in the fuel return line from the fuel pressure regulator), or leaky fuel injectors.
A bad coolant sensor that prevents the engine control system from going into closed loop can also make the fuel mixture run rich, and possibly rich enough to foul out the spark plugs.
A much more common cause of fuel-related misfires on fuel injected engines is too much air and not enough fuel (lean misfire). The OBD II system may or may not detect the fault and set a lean code (P0171 and/or P0174) in addition to misfire codes.
Unmetered air that gets into the engine behind an airflow sensor can lean out the fuel mixture to the point where it may not ignite when the spark plug fires. Air leaks can occur in vacuum hose connections, the throttle body or intake manifold gaskets, the PCV or EGR systems, or past fuel injector O-ring seals.
Lean misfires typically affect multiple cylinders, and will often set a P0300 random misfire code rather than a cylinder-specific misfire code. If you find misfire codes for two adjacent cylinders, check for air leaks in the intake manifold near those cylinders. Also, if one or more cylinders near the EGR port in the intake manifold are misfiring, a leaky EGR valve may be the culprit.
Vacuum leaks have the most effect on the air/fuel mixture at idle, and less of an effect at higher engine speeds. If you suspect a vacuum leak, look at the fuel trim values on your scan tool when the engine is idling, and again at 2,500 rpm. If the engine is running lean only at idle, it has a vacuum leak. If it is running lean at all speeds, the problem is in the fuel supply or control system (weak pump, leaky regulator, bad sensor inputs to the PCM, etc.).
You can also use a simple vacuum gauge to detect vacuum leaks. If the reading is low and floating, air is being pulled into the engine somewhere. A smoke machine can help you pinpoint leaks that may be difficult to detect in the manifold plumbing.
Another common cause of lean misfires is a dirty mass airflow sensor. If the MAF sensor wire has become coated with dirt, carbon or fuel varnish, it may underreport actual airflow causing the engine to run lean. Cleaning the sensor element with aerosol electronics cleaner can often restore normal operation and cure the misfire.
Lean misfire also may be caused by a bad fuel injector or a bad injector driver circuit in the PCM. If a cylinder isn’t getting any fuel or the correct amount of fuel, it will misfire.
Low fuel pressure due to a leaky fuel pressure regulator, weak fuel pump or plugged fuel filter may also lean out the fuel mixture to the point where lean misfire becomes a problem. So to rule out these possibilities, it may be necessary to check fuel pressure and volume.
Don’t forget that a weak fuel pump may be able to achieve normal fuel pressure at idle, but may not be able to deliver enough volume at higher engine speeds to keep up with the engine’s demands.
Compression misfires will occur if a cylinder fails to hold compression because of a leaky head gasket, bent valve, burned exhaust valve or broken valve spring. Low compression also can cause misfires if a cam lobe has rounded off.
These types of problems also can be found with a vacuum gauge. A flickering vacuum reading typically indicates a cylinder with a compression problem. You can follow up with a power balance test, a compression test and/or a leak down test to further isolate the fault.
Ignition Misfires If the engine has strong, steady vacuum, no compression issues or fuel delivery problems, an ignition fault is the only other thing that can cause a misfire (except maybe for bad gas!).
Any fault that prevents the spark from jumping the electrode gap on a spark plug will result in a misfire. This includes low primary voltage to the ignition system, low output voltage from the ignition coil, excessive resistance, shorts or opens in the spark plug cables (if the ignition system has wires), excessive resistance, shorts or opens in the spark plug itself (such as a cracked insulator), a fouled spark plug, or a spark plug with worn or damaged electrodes.
When there’s a misfire code for a specific cylinder, always remove and inspect the spark plug. It can save you a lot of time if the plug is fouled or damaged. Oily deposits on the plug would tell you oil is being sucked into the combustion chamber past worn valve guides or seals, or worn or broken piston rings. There’s no easy fix for this kind of problem short of a valve job or overhaul. Installing a spark plug with a slightly hotter heat range may help resist fouling.
Spark plugs also can be fouled by coolant leaking into a cylinder, or short-trip driving if the plugs never get hot enough to burn off fouling deposits.
On engines with waste spark distributorless ignition systems, misfire codes for any cylinders that share a common coil would tell you the coil is the likely problem.
If a coil-on-plug (COP) ignition system has a misfire that only affects one cylinder, swapping coils between two cylinders is a quick way to see if the misfire changes cylinders. If the misfire follows the new location of the coil, it confirms the coil is bad. If there’s no change, the misfire is being caused by a bad plug, a compression problem or a lean fuel condition in that cylinder.
Scope Diagnostics Many technicians either don’t have an oscilloscope, or if they do, they may not use it because it takes too long to hook up, or is too confusing to use. On coil-on-plug ignition systems, you have to use some type of adapters or inductive pickups to capture the ignition signals because there are no plug wires for an inductive pickup to clamp onto. And even if you have a scope or a scan tool with scope functions that can display ignition waveforms, it takes a certain level of training and experience to read ignition patterns.
If you do have a scope, the secondary ignition pattern generated by the spark plug when it fires can reveal a lot of useful information — if you know what to look for.
When the firing voltages for all of the cylinders are displayed simultaneously in a parade pattern, any cylinder that is misfiring for any reason will usually stand out from the rest. The peak firing voltage (peak KV) for the misfiring cylinder will either be higher or lower than the other cylinders.
Normal firing voltages at idle may vary from 5 KV to 15 KV, but there should be no more than about 3 KV variation between cylinders.
A higher firing voltage indicates higher than normal resistance in that cylinder’s ignition circuit. This may be due to high resistance in the spark plug wire (if it has one), a wide rotor gap (if it has a distributor), high resistance in the spark plug itself (worn electrodes or gap set too wide), or a lean fuel mixture.
For an overall understanding of OBD read the article Introduction to On-Board Diagnostics (OBD).
The communication between the scantool (diagnostic equipment) and the vehicle is defined in the OBD related standards. The communication protocol and the content of the diagnostic data is define in the Application Layer (OSI Level 7).
In this article, we are going to focus on the diagnostic modes/services defined for the CAN protocol. The diagnostic modes/services are described in the ISO and SAE standards:
Currently, on the market there are three main types of diagnostic devices (scantools, testers):
The handheld one is the one usually identified as a scantool. It’s an independent device, which doesn’t need to be powered from an external source, because it’s using the OBD connector supply voltage pins. It can be used regardless of the type of the vehicle, as long as both are OBD 2 compliant. The advantage of the handheld scantool is that it’s portable and easy to use, just “plug and play”.
The PC/laptop based “scantool” is basically a software that uses an external interface to connect to the vehicle’s OBD port. The main disadvantage, compared to the handheld one, is that you need a laptop with an operating system to install and use the diagnostic software. Further, it still requires an OBD adapter (also called “interface”), which is converting the data between the laptop and vehicle to the right format. The connection between the OBD adapter and the laptop can be serial (USB or RS-232 port) or wireless (Bluetooth).
The advantage of this diagnostic device is mainly linked to the memory and data processing power of the laptop/PC. Large amounts of data can be logged and stored, data plots and other functions (acceleration time, fuel consumption, etc.) can be integrated into the main application.
The third type, the mobile device “scantool”, can be regarded as a combination between the handheld solution and the PC/laptop based one. It still requires the use of an OBD adapter between the mobile device and vehicle but has the advantage of portability. Most of these devices are using a wireless connection (Bluetooth) for the OBD adapter.
Regardless of the type of diagnostic device, the OBD modes of operation (also called diagnostic services) define how the data is requested from the vehicle and how the vehicle responds to the request. You can look at the OBD modes of operation as a definition of the “language” to be used by both parties (scantool and vehicle) when requesting and sending data.
The communication between diagnostic device (scantool) and vehicle is client-server type, based on request and response.
The Client is defined as the function that is part of the diagnostic device (scantool, tester), that makes use of the diagnostic services. A tester normally makes use of other functions such as data base management, specific interpretation and man-machine interfaces.
The Server is defined as a function that is part of an electronic control unit on-board of the vehicle and that provides data to the diagnostic services.
The diagnostic Service can be defined as an information exchange initiated by a client (external test equipment) in order to require diagnostic information from a server (ECU) or/and to modify its behavior for diagnostic purpose.
In the OBD CAN protocol there are 9/10 modes of operation (diagnostic services), each defined by an identifier (also called header). First 9 modes of operation are common between ISO and SAE standards, the 10th is specific to the SAE standard.
The table below describes the purpose of each mode of operation (diagnostic service) and which standard contains it. Even if there are different standard defining the diagnostic services (SAE and ISO), the content is similar, the ISO standards being adapted after the SAE ones.
The dollar sign “$” in front of the numerical value highlights that this is an identifier. It’s important to know that the numerical values of the identifiers are in hexadecimal format. The correct notations would be using the 0x prefix, for example 0x01.
The purpose of this service is to allow the individual who is performing a vehicle diagnostic, to access the current emission-related data values, including analogue inputs and outputs, digital inputs and outputs, and system status information.
The Client request for information includes a Parameter IDentification (PID) value which indicates to the on-board system what specific information is requested. PID specifications (description, scaling information and display formats) are included in the ISO and SAE standard mentioned above.
The electronic control units (Server) shall respond to this message by transmitting the requested data value last determined by the system. This service provides accurate information, all data values returned for sensor readings shall be actual readings, not default or substitute values used by the system (constant values or calibration parameters) due to a fault with the sensor.
This diagnostic mode can provide relevant data to the user since it gives the current values of the engine parameters (speed, load, temperature, etc.). If the data is requested continuously (e.g. every 0.1 s) and recorded, a data plot can be created, which shows the variation in time of the parameters.
There are currently 135 PIDs defined in the OBD standard but not all of them are mandatory. There are a limited number of mandatory PIDs, the rest of them depending on the configuration of the system (engine).
The table below contains the list of mandatory PIDs (common between spark ignition and compression ignition engines) and some examples of optional PIDs.
Every parameter is identified with a number, which is in hexadecimal format. For example, the identifier of the engine speed is 0x0C.
For example, let’s assume that we want to read the current value of the calculated engine load. This parameter can be read with the diagnostic service 0x01 and has the identifier 0x04.
For spark ignition (gasoline) engines, Calculated Load Value is an indication of the current airflow divided by peak (maximum) airflow at Wide Open Throttle (WOT) as a function of rpm, where airflow is corrected for altitude and ambient temperature. This definition provides a unit-less number, and provides the service technician with an indication of the percent engine capacity that is being used. For compression ignition (diesel) engines, the calculated load value shall be determined by replacing air mass flow with fuel mass flow in the calculation.
The scantool (client) will send 0104 to the vehicle (server). This message has two components, both in hexadecimal format:
The vehicle will respond with 41046A. This response message has three components, all in hexadecimal format:
Now the scantool has to convert the hexadecimal value of the engine load in physical value so that it can be understood by the human user. The conversion from hexadecimal to physical values is defined in the ISO and SAE standard for each PID. For the calculated engine load, the conversion is:
To understand what’s happening in the scantool, we’ll convert the hexadecimal number into decimal values. For reference read the article Hexadecimal to Decimal Conversion, use a handheld calculator or a Matlab/Scilab function:
-->hex2dec('6A')
ans = 106.
-->
Now we can calculate the physical value of the engine load:
The same approach is valid for all of the physical engine parameters.
When a monitored component/system fails, a diagnostic trouble code (DTC) is raised. For a better understanding of the failure, by the service technician, the OBD is providing a “freeze frame”. This is a set of engine and vehicle parameters stored in the non-volatile memory, when the DTC is raised.
For example, while driving at high speed, a DTC is raised for the exhaust catalyst. In order to understand why the failure occurred, we are going to have the value of the engine temperature, speed, load and vehicle speed stored in the freeze frame, for the exact moment of the failure appearance.
Example of Freeze Frame Data:
Only engine or vehicle parameters defined as PIDs can be used in the freeze frame.
The purpose of this diagnostic service is to enable the external test equipment (scantool, tester) to obtain all the “confirmed” emission-related diagnostic trouble codes (DTCs). A confirmed fault code is defined as the DTC stored when an OBD system has confirmed that a malfunction exists. Usually, the confirmation is given on the second driving cycle following the malfunction detection.
When the scantool is sending a Service $03 request for all emission-related DTCs, each ECU that has DTCs shall respond with one message containing all emission-related DTCs. If an ECU does not have emission-related DTCs, then it shall respond with a message indicating no DTCs are stored by setting the parameter number of DTC to 0x00.
Example of Emission-Related Diagnostic Trouble Codes:
The purpose of this service is to provide a means for the external test equipment (scantool, tester) to command ECUs to clear all emission related diagnostic information.
Mode $04 clears/erases diagnostic trouble codes and diagnostic data, which includes:
This mode can be used by the service technicians (or other users) to turn off the MIL and erase stored DTCs after a repair has been performed. It can be also used as a confirmation that the fault is not present anymore (after reset the DTC are read again).
Mode $05 provides test results for oxygen (lambda) sensors. It is not supported anymore for CAN communication protocol but all the functionality of this mode is implemented in Mode $06.
The purpose of this diagnostic service is to allow access to the results for on-board diagnostic monitoring tests of specific components/systems that are either continuously monitored (e.g. misfire monitoring) or non-continuously monitored (e.g. catalyst system).
The vehicle manufacturer will define “Manufacturer Defined Test IDs” for different tests of a monitored system. Mode $06 will provide the monitoring test values and fault (malfunction) limits for the defined tests (monitors).
The data provided by this diagnostic service can be used by service technicians to identify which monitor has failed and by how much. Once the failed component/system has been repaired/restored, Mode $06 data can be used to validate the process.
A particular monitoring test of Mode $06 is defined for the oxygen (lambda) sensor. The test monitors the voltage output of the sensor.
The parameters of the oxygen sensor output voltage are requested as Test ID (TID), with the following description:
Example of Monitoring Test Results (non oxygen sensor):
The purpose of this diagnostic service is to enable the external test equipment (scantool, tester) to obtain “pending” diagnostic trouble codes (DTCs) detected during current or last completed driving cycle for emission-related components/systems.
A pending fault code is defined as the diagnostic trouble code, stored as a result of initial detection of a malfunction (usually in the current driving cycle), before the activation of the malfunction indicator lamp (MIL).
This operating mode is required for all diagnostic trouble codes and it’s independent of Service $03.
The intended use of this data is to assist the service technician after a vehicle repair, and after clearing diagnostic information, by reporting test results after a single driving cycle.
Example of Emission-Related Pending Diagnostic Trouble Codes:
The purpose of this service is to enable the external test equipment (scantool, tester) to control the operation of an on-board system, test or component. With the help of this service, the service technician can activate an on-board test mode.
The possible types of tests performed with Mode $08 are:
An example of test is the sealing of the evaporative system (EVAP) for a pressure test. When the test is triggered, the canister ventilation solenoid is closed for fixed duration (e.g. 10 minutes).
The purpose of this diagnostic service is to enable the external test equipment (scantool, tester) to request vehicle specific information such as:
The VIN is a unique number which identifies the vehicle. It’s defined by an international standard and every vehicle in use has an unique VIN.
A unique CALID is required for each emission-related calibration of the electronic control unit (ECU). Even if only one value of the ECU calibration data is changed, a new CALID must be generated.
A CVN is linked to each CALID. It’s basically a checksum of the ECU calibration, which is calculated at every driving cycle and stored in the non-volatile memory of the ECU, so that it can be read with the the engine ON or OFF.
IUPR are counters which display how often OBD monitors are triggered in real driving conditions compared to a standard homologation cycle. These are required for the most of the OBD monitored systems (exhaust catalysts, oxygen sensors, exhaust gas recirculation (EGR), secondary air, etc.).
Example of Vehicle Information Data:
The purpose of this diagnostic service is to enable the external test equipment (scantool, tester) to obtain all diagnostic trouble codes with “permanent” status. These are DTCs that are “confirmed” and are stored in the non-volatile memory of the electronic control unit until the corresponding monitor for each DTC has determined that the malfunction is no longer present and is not setting the MIL ON anymore.
The DTCs stored as permanent can not be cleared with the scantool using Mode $04. Permanent status codes automatically clear themselves after repairs have been made and the related system monitor runs successfully.