You are on page 1of 57

How to Read OBD2 Engine

Diagnostic Logs

NZ00Z3, 2022

Version 1.5
How To Read OBD2 Engine Diagnostic Logs

Table of Contents

Disclaimer ............................................................................................................................................. 1
Copyright .............................................................................................................................................. 1
Definitions ............................................................................................................................................ 1
Introduction .......................................................................................................................................... 2
What is a OBD2 Log? ......................................................................................................................... 2
Scanner Setup ....................................................................................................................................... 3
Understanding the Data’s Limitations .................................................................................................. 3
Data Logging Tests ................................................................................................................................ 4
Short Form Data Logs ........................................................................................................................ 5
Building the Results Charts ................................................................................................................... 5
Data Calculations .............................................................................................................................. 6
The Standard Charts. ........................................................................................................................ 6
Scaling the Charts ............................................................................................................................. 8
Analysing the Logs and Charts .............................................................................................................. 9
Component Diagnosis ........................................................................................................................... 9
Fuel Pressure and Volume Delivered ................................................................................................ 9
Vacuum Leaks ................................................................................................................................. 10
Pre-Cat O2 Sensors ......................................................................................................................... 10
MAF ................................................................................................................................................ 11
DME ................................................................................................................................................ 11
Other Issues .................................................................................................................................... 11
Example Charts ................................................................................................................................... 11
How to Read the Charts .................................................................................................................. 12
Chart: RPM, MAF, Load ....................................................................................................................... 13
Engine RPM ..................................................................................................................................... 13
Mass Air Flow Rate ......................................................................................................................... 13
Calculated Load Value % ................................................................................................................. 13
Chart: Total Fuel Trims, Speed ............................................................................................................ 15
Short and Long Term Fuel Trims ..................................................................................................... 15
Total Fuel Trim ................................................................................................................................ 15
What is the Range of “Good” or “Bad” Total Fuel Trims? ........................................................... 15
Speed .......................................................................................................................................... 16
Pre-Cat O2 Sensors General Information ............................................................................................ 19

Page i
How To Read OBD2 Engine Diagnostic Logs

Chart: Pre-Cat O2 Sensor Bank 1 or Bank2, Narrow Band O2 Sensors ................................................ 20


Fuel System 1 Status and Fuel System 2 Status .............................................................................. 21
Commanded Secondary Air Status .................................................................................................. 21
Chart: Pre-Cat O2 Sensor Bank 1 or Bank2, Wide Band O2 Sensors ................................................... 23
Chart: Post-Cat O2 Sensors Bank 1 or Bank 2 ..................................................................................... 25
Chart: Stepped-Rev ............................................................................................................................. 27
Secondary PID Information ................................................................................................................. 29
Engine Coolant Temperature .......................................................................................................... 29
Ignition Timing Advance for #1 Cylinder ......................................................................................... 29
Intake Air Temperature ................................................................................................................... 30
Absolute Throttle Position .............................................................................................................. 30
Input Voltage Read by the Scan Tool .............................................................................................. 31
Acknowledgements ............................................................................................................................ 31
Appendix 1: The OBD2 Logger PID’s and Data Refresh Rates ............................................................. 32
PID List ............................................................................................................................................ 32
Refresh Rate.................................................................................................................................... 33
Appendix 2: User Defined PID’s .......................................................................................................... 34
What are User Defined PID’s .......................................................................................................... 34
The Total Fuel Trim User Defined PID’s ........................................................................................... 34
Impact on Refresh Rates ................................................................................................................. 36
Accuracy of Results ......................................................................................................................... 36
Resources ........................................................................................................................................ 37
Appendix 3: Diagnostic Tips ................................................................................................................ 38
Appendix 4: Case Study 1: Narrow Band Pre-Cat O2 Sensors. ............................................................ 41
Vehicle ............................................................................................................................................ 41
Pre- Repair Logs .............................................................................................................................. 41
After Fitting New Pre-Cat O2’s ........................................................................................................ 43
Summary ......................................................................................................................................... 44
Appendix 5: Case Study 2: Narrow Band Pre-Cat O2 Sensors. ............................................................ 45
Vehicle ............................................................................................................................................ 45
Pre- Repair Logs .............................................................................................................................. 45
After Fitting new Pre-Car O2 Sensors.............................................................................................. 47
Summary ......................................................................................................................................... 49
Appendix 6: Alpha-N or “Unplug the MAF” Testing ............................................................................ 50
The “Unplug the MAF”Test ......................................................................................................... 51
Appendix 7: Tips on Loading Foxwell Logs .......................................................................................... 53

Page ii
How To Read OBD2 Engine Diagnostic Logs

Time Stamps ................................................................................................................................... 53


Loading the Logs ............................................................................................................................. 53

Page iii
How To Read OBD2 Engine Diagnostic Logs

Disclaimer
The following information is a combination of internet search results, first-hand testing and analysis.
There is no claim that the information is correct, complete, timely or usable. The person who uses
this information does so at their own risk. The author accepts no responsibility or liability for
damage or loss incurred through the use of this information.

Copyright
• This document has been written by a car enthusiast with the help of car enthusiasts, for car
enthusiasts. It is provided free of charge to all car enthusiast to use, share, distribute and
copy in any non-commercial use or undertaking.

• No part of this document can be included into any commercial use or undertaking without
the permission of NZ00Z3.

Definitions
Bank A group of cylinders with a common fuel trim control. Bank 1 always
includes cylinder 1
Cat, Cat’s Catalytic convertors.
CSV Files Comma Separated Variable files. Simple files of data that Excel can upload.
Dec Decimal, a base 10 counting system. You know this one.
DME Digital Motor Electronics = ECU, as used by most other car makers.
Hex Hexadecimal, a base 16 counting system.
ICV Idle Control Valve
LTFT Long Term Fuel Trim
MAF Mass Air Flow Meter. Measures how much air mass (not volume) is going
into the engine.
OBD2 On Board Diagnostic version 2. A SAE standard for engine diagnostics used
by all major car manufacturers. All engine computers became OBD2
compliant from 1996. Other car modules become OBD2 compliant at
various times later.
P-Codes A fault code naming system used by OBD2 compliant systems with a PXXXX
structure. X stands for a number.
PID That’s the technical name for a Parameter ID or data point in the engine
computer
e.g. Short term fuel trim bank 1.
[RHA] Right Hand Axis = Y axis on the right-hand side of the chart.
SAP Secondary Air Pump
STFT Short Term fuel Trim
Stoichiometric The Stoichiometric ratio is the air/fuel mixture at which there is just the
exact amount of Oxygen needed to burn the available fuel.
TestO A high speed BMW graphing and Logging app developed by pheno around
2012. It runs on Ediabas (INPA communication system), a BMW IP. BMW
got upset and development stopped. The partially completed app can be
found here:

NZ00Z3 2022 Page 1 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

http://www.bimmerforums.com/forum/showthread.php?1830510-
Diagnostic-program-with-realtime-graph-view
TFTB1, TFTB2 This is the Total Fuel Trim for that bank (B1 or B2).
Total Fuel Trim for a bank = short term fuel trim + long term fuel trim.
WOT Wide Open Throttle

Introduction
So, you’re having trouble with your Engine. Rough running, lack of performance, that sort of thing
and the engine warning light has come on (SES, EML etc).

You’ve:

• Scanned the engine computer (DME) for trouble codes,

• Looked the codes up on the internet to see what they mean.

• Smoked tested the engine to find and fix any vacuum leaks

• Now want to run some scanner logs to sort out the remaining problems.

But once you have the logs, how do you read them? What do all the number mean? What is a good
result or a bad result?

This “How TO” will guide you through:

• Setting up your scanner to log data (generic instructions),

• Tests to run to record the logs,

• How to build the results charts,

• What a good result looks like,

• What common bad results look like,

This guide has been developed over 2 years through the analysis of over 200 logs from E46’s and
Z3’s (E36/7) with problems. The Author has extensively tested his own BMW’s to prove many of the
practices and how the results are analysed.

While this guide has been developed for the BMW M52TU and M54 engines, the principals and
practices apply to nearly all modern engines from all car manufacturers.

What is a OBD2 Log?


Some OBD2 scanners have the ability to log the live data they read in real time. The data is stored in
an OBD2 log. OBD2 Logs are CSV or TXT files made up of columns of PID data that is captured at set
refresh rates. These logs are very useful in the diagnostics of engine problems

NZ00Z3 2022 Page 2 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

Scanner Setup
You need an OBD2 scanner with a data logging function. The Smart device app OBD Fusion has this
function and has been used in the E46Fanatics forum for capturing log files. There is a very good
guide for setting up the app on the forum at: https://www.e46fanatics.com/threads/obd-
fusion.1240733/#post-18380161

It is recommended that you read this thread and use it as the basis for setting up your scanners data
logging function. It has been used extensively and it works. The key settings have been included in
the Appendices 1 just in case the OBD Fusion thread is lost.

Understanding the Data’s Limitations


It is very easy to be fooled with pretty looking data and charts if you do not understand the
limitation of the data logger and the data that is captured. The operation of an engine is very
dynamic and fast. The DME operates at a very high speed. The communication system that is used
by the scanner to capture the data is far slower. It takes time for the data request to reach the DME,
for the DME to capture the data and send the data request back and to the logger. By the time the
data request gets back to the logger, everything has changed. The data in the capture may be from
slightly different DME time periods too. This leads to data capture issues, such as:

• Multiple lines of the same data. This is caused by having a logger refresh rate faster than the
communication round trip. Selecting “PID Frame” or a 1 second refresh rate helps this.

• Data offsets. There are two types of data offset:

1. Where there are multiple lines of the same data and the last line starts changing half
way along the line. Which line of data do you use?

2. When two related PID’s are being logged and they are moving very fast in the DME.
The two returned data points for the same timestamp are separated in DME time
and no longer relate to each other. This usually occurs during changes in rpm.

• Insufficient data resolution. This is where the PID is moving far faster than the data capture
refresh rate. You get a good-looking data set, but it is a very limited representation to the
real PID signal. An example is the pre-cat O2 sensors (both narrow band and wide band).
They switch between 1 to 3 times a second. If the logger is capturing data at the rate of
every 5 seconds, then it is missing a large amount of data. Any charts created with the data
are simply a generalisation. But they are still useful.

These issues are compensated for by:

• Trying to do the logging in steady state conditions. This allows for multiple timestamps of
data in very similar conditions.

• Using trend analysis. This is looking at the trend of the data in the chart and how it relates
to the other data in the chart.

• Knowing the PID’s that change very fast and acknowledging that limited conclusions can be
drawn from them.

NZ00Z3 2022 Page 3 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

• Having good quality logs from reference vehicles. These are engines that are in a known
good condition, so the logs of other engines can be compared to them.

Data Logging Tests


A set of consistent tests have been developed at E46Fanatics. This has allowed people to learn the
data and see similar tends to help with the diagnosis. They all use the standard long list of 20 or so
PID’s, see Appendix 1.

The E46 Fanatics 3 standard test are:

• Cold start. Turn on the logger, then turn on the engine. Run the log for 5 minutes. Don’t
rev the engine, just let it idle.

• Highway Cruise. Run the logger for 3 to 5 minutes while you are up to a steady open road
speed of 100 kmph (60 mph). Hold the speed steady, use cruise control if you have it.

• Hot idle. Run the logger for 3 to 5 minutes with the car stationary and at idle. Best done
just after the Highway Cruise log.

These tests are best done in the order listed without the Air Con, head lights or any major electrical
loads turned on. They all do the logging with the engine in a steady state.

Two additional tests have been developed by the Author for specific purposes.

• Rev Rise. This test is for checking your Mass Air Flow Meter (MAF). Hot engine and Cat’s,
stationary car. The test is best done just after a drive.

Slowly raise the Rev's of the engine up from idle to 3,000 rpm. I mean slowly. It should take
you 3-4 minutes to do this test. It takes some skill to do this test due to the lightly loaded
engine. A little throttle change results in a large rev change. Don’t run up and down the rev
range getting used to the control. If you stuff up the first part of the test getting used to
controlling the small rev changes, then redo the test.

• Stepped Rev. This test is for checking the performance of your Cat’s. It needs 8 to 10 km (5
to 6 miles) of quiet open road to run, so that you don't annoy other cars with your slow
speeds.

Hot car/cat’s, quiet open road. Select 3rd gear (auto or manual transmission). You’ll be in 3rd
gear for the whole test. Start the logger. Get up to 2,000 rpm and hold it there for a minute
(time it). Raise the Rev's to 3,000 rpm and hold it there for a minute. Keep doing 1,000 rpm
steps for a minute until you hit the open road speed limit. Stop the logger.

The Rev Rise test is a very dynamic test. But it uses a very slow build-up of the Rev’s to try and
provide some sort of steady state conditions during the test.

NZ00Z3 2022 Page 4 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

It is used to:

• Watch the fuel trims for signs of hard-to-find vacuum leaks.

• Monitor the performance of the MAF

The Stepped Rev test is mainly looking at the performance of the Cat’s. The data can be helpful with
finding other problems too. The timed steps allow for steady state condition within a dynamic test.
The use of 3rd gear means that when you get to open road speeds, the MAF is drawing between
150% to 200% of the normal open road MAF flow. This means that the Cat’s are being stressed with
above normal exhaust flow rates and any issues are clearly visible in the Post-Cat O2 sensor results.

Short Form Data Logs


There are times when you may want to zero in on a specific problem. In order to get data with a
higher refresh rate, you can reduce the number of PID’s to those specific to your problem.

An example is the Cold Start Narrow Band Pre-Cat O2 sensor log.

The PIDS can be reduce to:

• Fuel system 1 status, so you know when the DME goes to closed loop

• Engine coolant temperature, so you know it’s a cold start.

• Engine RPM, so you can trim off the pre-data with no RPM data

• Commanded Secondary Air Status, so you know when the SAP turns off.

• O2 Voltage (Bank 1, Sensor 1) – for cars with narrow band Pre-Cat O2 Sensors

• O2 Voltage (Bank 1, Sensor 2) - for cars with narrow band Pre-Cat O2 Sensors

Building the Results Charts


The majority of this document uses charts built in Excel.

Alternatively, the logs can be loaded into DataZap or similar on-line Data Graphing services. These
services do not let you do any calculations on the data. All calculations have to be done before the
data is loaded. Having a calculated PID of Total Fuel Trim for each bank is very beneficial. Appendix
2, covers how to set up 2 User Defined PID’s for Total Fuel Trim that can be logged by OBD Fusion at
the same time as you log the data.

Tip:

When using DataZap, open 4 windows of the data log. You can then build the 4 standard charts, one
in each window. This allows you to easily switch between them to see what is happening.

See: https://datazap.me/

NZ00Z3 2022 Page 5 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

Building the charts requires:

• Doing some calculations and data trimming

• Building the charts

As you have chosen to use Excel to build the charts, it is assumed that you have the required skills.

Data Calculations
For each log, a column is inserted in the data for Total Fuel Trim for each bank.

Total Fuel Trim, Bank 1 (%) = Long Term Fuel Trims Bank 1 (%) + Short Term Fuel Trim Bank 1 (%)

There is usually a need to trim the lines of logged data. Remove any lines of data at the beginning of
the log with Zero’s in the Engine RPM column.

At the bottom of the log, set up 3 calculations for each PID:

• Minimum

• Average

• Maximum

PID Fuel system 1 status Fuel system 2 status Calculated load value (%)
Minimum 2.00 2.00 6.27
Average 2.26 2.26 19.52
Maximum 4.00 4.00 56.47

Run your eye along these calculations. Once you get used to the normal data values, you will quickly
see indicators of problems with these calculated numbers.

The Standard Charts.


You have collected data for a lot of PID’s. Not all of the PID’s are initially charted. The charted PID’s
provide the second level of analysis. This covers the majority of problems. The PID’s that are not
charted initially come in really handy when you get into the nitty gritty of analysis.

For the Cold Start, Highway Cruise and Hot Idle logs, a number of standard charts are built. Having a
standard chart data table is beneficial. This lets each PID have its own colour. You will quickly start
recognising the PID traces by their colour. This makes life a lot easier.

The order used by the Author is below. It utilises the normal Excel chart data series colour allocation
to provide easy to read charts without having to change data series colours.

NZ00Z3 2022 Page 6 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

• Time

• Total Fuel Trim Bank 1 (TFTB1)

• Total Fuel Trim Bank 2 (TFTB2)

• Pre-Cat O2 Sensor Bank 1

• Post-Cat O2 Sensor Bank 1

• Pre-Cat O2 Sensor Bank 2

• Post-Cat O2 Sensor Bank 2

• MAF

• Calculated load

• RPM

• Vehicle Speed

• Fuel System 1 Status

• Commanded secondary air status

Select your chart data table, including the header row and insert a Scatter chart. The one with just
the line is usually best. A Scatter chart is used as it allows for X axis data that does not have an even
spacing. This is important.

Copy the created chart and paste another 3 copies of it on the spread sheet. Spacing them out in 2
columns with 2 charts in each column. This groups the data and lets you easily move between
charts. See the front cover for an example.

The charts are built by selecting the data traces that you do not want and deleting them.

The charts are:

• RPM, MAF, Load. Top chart in Column 1. Time is the X axis. MAF and Load are on the left Y
axis. RPM is on the secondary right Y axis.

• Total Fuel Trims, Speed. Bottom chart in column 1. Time is the X axis. Total Fuel Trims for
each bank are on the left Y axis.

o For the Highway Cruise Log only, Speed is on the secondary right Y axis.

• Pre-Cat O2 Sensors. Top Chart in Column 2. Time is the X Axis. The Pre-cat O2 sensors for
both banks are on the left Y axis. Fuel System 1 status is on the secondary right axis.

o For the Cold Start log only, Commanded secondary air status is on the secondary
right axis.

• Post-Cat O2 Sensors. Bottom Chart in column 2. Time is the X axis. Post-cat O2 Bank 1 and
Post-Cat O2 Bank 2 are on the left Y Axis and MAF is on the secondary right Y axis.

NZ00Z3 2022 Page 7 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

The Rev-Rise Charts

The construction of these charts and how to read them is fully documented in the thread “How to
Make a MAF model”. https://www.e46fanatics.com/threads/how-to-make-a-maf-
model.1298187/#post-18969033

It contains:

• How to build a MAF model

• How to do the test

• How to build the charts

• How to read the results

• A few real-life examples to show you how it is done.

The Stepped Rev Charts

The Chart is:

• Post-Cat O2 Sensors. Time is the X axis. Post-Cat Bank 1 and Post-Cat Bank 2 are on the left
Y axis and MAF is on the secondary right Y axis.

You can build all the standard charts from this log if you wish.

Scaling the Charts


Scaling the charts makes them easy to read and shows any obvious problems such as a Post-Cat O2
sensor that has flat lined at 0.1V. Be consistent between the charts e.g. If you use +/-10% for Total
Fuel trims in one chart for a log, use it in all charts with fuel trims in that log.

Suggestions are:

• Time. This is the X axis. Keep the time scale the same in all charts. This makes it easy to
switch between charts and compare results. If you want to change the time scale, so you
can zero in on a particular part of the log. Change the time scale in all charts.

• RPM. 0 to rounded up to something just above the largest value. Typically, that will fit the
left-hand Y axis Major Units (those horizontal lines across the chart).

• Calculated Load %. Typically leave it on auto.

• MAF. Typically leave it on auto. May adjust it to align to the left-hand Y axis major units for
the Post-Cat charts.

• Total Fuel Trims. +/- %, rounded up to the nearest 5% of the largest total trim number. This
puts 0% in the middle of the chart so it’s easy to see if they are rich or lean.

• Speed. 0 to rounded up to something just above the largest value. Typically, that will fit the
left-hand Y axis Major Units.

NZ00Z3 2022 Page 8 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

• Narrow Band O2 Sensors, be they pre or post Cat. 0 to 1V

• Wide Band O2 Sensors. It depends on the reference (middle) used by the DME and the PID
that you have selected. Use +/- 0.05 of the reference. More about this later.

The above suggestions may change a little depending on the data. Have a look through the example
charts in this document for ideas.

Analysing the Logs and Charts


There are several steps in analysing the logs and Charts

• Running your eye along the minimum, average and maximum data to identify obvious clues.

• Analysing the Results Charts. This finds the majority of problems.

• Modifying the standard charts to really hone into the nitty gritty problems. This is where
you use the secondary PID’s that where not charted initially.

Component Diagnosis
For Fuel Trim or mixture problems common to both banks, there are only 5 areas involved. They
should be investigated in the order listed.

They are:

1. Fuel Pressure and volume delivered

2. Vacuum leaks. Causes Lean condition.

3. Pre-Cat O2 sensors. These provide the mixture feedback loop.

4. MAF. Main air mass input value.

5. DME. Does all of the calculations.

Run logs to confirm the success or otherwise of the repairs at the end of each stage. This will give
you valuable information to help with your diagnosis.

Fuel Pressure and Volume Delivered


The classic indicator of a fuel system problem is when the Cruise Total Fuel Trims > (more lean than)
the Hot Idle Total Fuel Trims. Confirm by doing Fuel Pressure and delivery testing as per the
specifications below.

NZ00Z3 2022 Page 9 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

Fuel Supply Specifications

All engines except the S54 and the M56

• Fuel pressure 3.5 +/- 0.2 bar or 50.76 +/- 2.9 PSI
• Residual fuel pressure after 20 minutes - Fuel pressure >3 bar or >43.51 PSI

S54 and M56

• Fuel pressure 5.0 +/- 0.2 bar or 72.5 +/- 2.9 PSI
• Residual fuel pressure after 20 minutes - Fuel pressure >4.5 bar or >62.2 PSI

Fuel Volume, all engines 1.12 litre (1.16 qt) for 30 seconds at 12 Volts or while crank"

Vacuum Leaks
Around 90% of lean conditions are caused by vacuum leaks. If you have lean conditions, smoke test
the engine to find the vacuum leaks. If you have not smoked tested the engine, do not pass go, do
not proceed any further, go back and smoke test the engine. The remaining 10% of lean condition
causes need data logging to find them.

There is an excellent Thread at E46 Fanatics on this topic.


https://www.e46fanatics.com/threads/fuel-trims-lean-codes-misfires-and-how-to-
diagnose.1284608/

Here is a thread on How to Smoke Test: https://www.e46fanatics.com/threads/how-to-smoke-


test.1261077/#post-18615547

Pre-Cat O2 Sensors
O2 Sensors. These have a 192,000 km (120,000 miles) Service Life. If they meet or exceed this
milage, just change them.

Check the Pre-Cat O2 sensors by:

• Any Fuel System Statuses of 8 or 16 mean there are faulty O2 sensors. Change the O2
sensors.

• Any sensor that does not move off the reference (0.43V for narrow band or the Wide band
reference) shows a sensor that is not heating or is faulty. Test the heater circuit or replace
the O2 sensors.

• Cold Start Pre-Cat O2’s chart: Looking at the sensor values while heating. Do they follow
each other? Do they follow the “good sensor” profile? If they do not, then change the O2
sensors.

• All Total Fuel Trim Charts: Are there large consistent differences between the 2 banks values
e.g. > 4%? This is a sign of an aged O2 sensor.

NZ00Z3 2022 Page 10 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

• All charts: any signs of rich or lean offsets in the O2 sensor signals? Do these off-sets match
the total fuel trim offsets? If they do then the O2 sensor is likely telling the truth. If not,
then there is a problem with the O2 sensor.

MAF
An expensive Siemens/VDO MAF is needed for a BMW. After-market MAF’s tend to provide a poor
result.

Check the MAF by:

• Hot Idle: Check the MAF value against the range for your engine’s capacity.

• Cruise: The MAF should be drawing around 25 g/s at 100kmph (60mph).

• Do the 2 Alpha-N tests and see how the Total Fuel Trims change. See Appendix 6.

• If the values from the above indicate a possible MAF problem, do a Rev-Rise Log and
compare the results with a valid MAF model.

• MAF’s that are in the early phase of failure have large hot idle errors and quickly jump back
into the acceptable +/-10 % error range once the rpm’s move off idle.

DME
Once you have eliminated all the other items above, that only leaves the DME.

Remove the DME and inspect the connectors for oil or coolant contamination. See Appendix 3:
Diagnostic Tips for more information.

More and more people are flashing custom tunes to their cars. Many Tuners are very professional
and produce a high-quality tune. Others are not so good.

If you have a custom tune, Flash the original Tune for your engine into the DME and see if that fixes
the fuel trim problem. It does not matter if you have Cat-less headers. The DME will give post-Cat
O2 codes as the sensors are not there, but if it fixes the fuel trim problems, then you have found the
cause. Get a tune from a better Tuner to meet your modification needs.

Other Issues
For advice on finding other issues, see Appendix 3: Diagnostic Tips.

Example Charts
In the following sections, each Results Chart will be analysed. In most cases, example charts from a
reference car will be shown. Where necessary additional charts from other vehicles will be shown.

NZ00Z3 2022 Page 11 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

Reference Vehicle

• 2000 BMW E46 323i

• M52TUB20 engine

• MS42 DME

• Secondary Air Pump is fitted.

• 158,000 km (99,000 miles)

• Fuel is 100% Petrol (gasoline), 95 RON, locally brewed in New Zealand.

This reference vehicle is not perfect and has a couple of minor issues, which will be discussed.

How to Read the Charts

In most charts:

• Both the left hand side and right hand side Y axis are used.
• The side axis are not ladled as the units they represent could be different for each PID
assigned to that axis. The units of the PID’s are listed in the legend at the bottom of the
charts.
• [RHA] at the end of a PID denotes that it has been assigned to the Right Hand Axis.

All charts have been produced from OBD Fusion logs unless otherwise stated.

NZ00Z3 2022 Page 12 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

Chart: RPM, MAF, Load


Engine RPM
The expected range of RPM depends on the test:

• Cold start, around 1,500 rpm for max (cold engine first start) and around 750 rpm for
minimum (warm engine).

• Cruise, whatever it turns out to be, as long as the value is relatively steady.

• Hot Idle, 700 rpm minimum to 750 rpm maximum

Mass Air Flow Rate


MAF is measure in g/s. Some scanners give it in kg/hour. This document has standardised on g/s.

• Cold Start. It will be high at first start (can be >15 g/s) and drop to a minimum. The
minimum will depend on how hot you let the engine get and the capacity of the engine.

• Cruise, at a steady 100 kmph (60 mph), the average E36 and E46 consumes around 25 g/s of
air mass. This in simple terms, represents the amount of energy needed to maintain the
speed of the vehicle mass against the air resistance on a flat road. So, the average value will
be around 25g/s, with the minimum and maximum at outliers.

• Hot Idle, it will depend on the capacity of the engine.

MAF Values for Different Engine sizes at Idle


Capacity Between
2.0 2.3 2.7
2.2 2.5 3.0
2.5 2.9 3.4
2.8 3.2 3.8
3.0 3.5 4.0

Calculated Load Value %


SAE PID 04, Calculated load value % has several different definitions, depending on the reference
you read.

• It is the MAF flow as a percentage of the WOT MAF flow. It may be correct for standard
temp and pressure. Correction uses the air intake temp and the little atmospheric pressure
sensor on the DME PC board.

• It is the % of maximum torque that the engine can produce.

It’s a hard one to sort out, as standards change and the car manufactures were a little creative in the
early days of OBD 2 in how they did the calculations. How it is done in the MS42, MS43 and MS45
DME is a bit of a mystery.

NZ00Z3 2022 Page 13 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

What has been observed, is that its normal values are:

• Hot Idle, between 8% to 18%. It should be steady within a 3% band. Smaller engines are
lower, larger engine are higher. If it is zero, then there are vacuum leaks or MAF problems
to find.

• Cruise, it is very nearly the same value as MAF but a bit higher and its shape plots the same
as the MAF.

Cold Start:

• The RPM settled very quickly. This is not always the case.

• Load has settled to around 14%. This is the acceptable band of 8% to 18%. It needs to be
steady in the second ½ of the chart.

• The MAF signal did not jump up very high. Cases of a >15 g/s jump right at the start are
common, as long as it settles down quickly.

Hot Idle:

• RPM’s are steady at just over 700 rpm. 700 to 750 RPM is the acceptable band.

• Load is constant at around 12%. The slight jump in load (and MAF) at 225 seconds is often
seen in Hot Idle logs. Don’t know what causes it, but it’s so common that it’s classed as
normal.

NZ00Z3 2022 Page 14 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

• MAF is steady at 3.5 g/s prior to 225 seconds. Use this value to check your Hot Idle MAF
values. It is slightly higher than the 3.4 g/s upper expectation, but not high enough to cause
concerns.

Cruise:

• RPM’s are steady at 2,250 RPM. This is at 96 kmph (60 mph).

• Load and MAF are very close together with load just a bit larger.

• MAF is around 25 g/s, so the cruise MAF value is correct.

Chart: Total Fuel Trims, Speed


We spend a lot of time looking at the fuel trims as these are the best indicators of the engines
running condition.

Short and Long Term Fuel Trims


For each Bank, there will be a short term and a long term fuel trim.

• Short Term is an instantaneous fuel trim. It compensates for any required mixture change
very fast. It can swing positive (lean) adding fuel or negative (rich) removing fuel. This trim is
not stored in the DME when the engine is turned off.

• Long term is a base trim. It changes over a longer time and represents the average trend of
the short term fuel trim. That is, if the short term is trending lean over a period of time,
then the long term will adjust lean. This will off-set the short term which will reduce. This
trim is stored in the DME when the engine is turned off so that it can be used as the base
trim during the next engine start. If the LTFT is outside the +/- 10% range for 10 seconds,
then a fuel trim code will occur.

Total Fuel Trim


The Total Fuel Trim of a bank = Short term + Long term.

This chart looks at the Total Fuel Trim because there are often cases where you have a positive
(lean) long term fuel trim and a negative (rich) short term fuel trim. Looking at the individual trims
does not represent the total trim at that time.

What is the Range of “Good” or “Bad” Total Fuel Trims?


That depends on the fuel you are running in your car.

In the days of 100% petrol, it was easy. With the advent of Ethanol mixes, the acceptable ranges
change depending on the ethanol fuel mix you use. This is because the DME is designed to keep the
mixture at the Stoichiometric ratio of 14.7:1 (air to fuel). This is for 100% petrol. The Stoichiometric
ratio for Ethanol blended fuels are different, due to their lower energy densities.

NZ00Z3 2022 Page 15 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

BMW has documented that all cars that are not Flexi Fuel Vehicles, can run on Ethanol blends up to
10%.

The DME is programmed to control the mixture to 14.7. If you are using 10% Ethanol with a
Stoichiometric ratio of 14.04, the difference in fuel trims is:
𝐹𝑢𝑒𝑙 𝑢𝑠𝑒𝑑
𝐹𝑢𝑒𝑙 𝑡𝑟𝑖𝑚 𝑎𝑑𝑗𝑢𝑠𝑡𝑚𝑒𝑛𝑡 % = 1 −
14.7
= 1 – 14.04
14.7
= 4.5%

That means if using 10% Ethanol fuel, you can expect to see a 4.5% lean shift in your total fuel trim
when compared to 100% petrol.

Acceptable Fuel Trims for various fuel blends

Normal Normal Problems to Problems to


Stoichiometric Total Fuel
Fuel Running Running Find Find
AFR Trim Off-Set
Minimum Maximum Minimum Maximum
Pure Gasoline 14.7:1 0.0% -4.0% 4.0% -8.0% 8.0%
E5 (5% Ethanol) 14.4:1 2.0% -2.0% 6.0% -6.0% 10.0%
E10 (10% Ethanol) 14.04:1 4.5% 0.5% 8.5% -3.5% 12.5%
E15 (15% Ethanol) 13.79:1 6.2% 2.2% 10.2% -1.8% 14.2%
E85 (85% ethanol) 9.75:1 33.7% 29.7% 37.7% 25.7% 41.7%
Pure Ethanol 9:01 38.7% 34.7% 42.7% 30.7% 46.7%

From the above table:

• E 5 and E10 gives no problems


• E15, you might be able to sneak this one in without issues if you don’t have any vacuum
leaks
• E85 and Pure Ethanol are going to bring up lean codes as the total fuel trim offs-set is
greater than the lean code trigger point.

Remember that if the LTFT is outside the +/- 10% range for 10 seconds, then a fuel trim code will
occur.

Speed
Speed is included in this chart, simply because there is space. It needs to go somewhere and this
chart had a right hand side Y axis doing nothing.

The expected range of speed depends on the test:

• Cold start and hot idle, Zero. Often speed is not even charted for these tests

• Cruise, whatever it turns out to be, as long as the value is relatively steady.

NZ00Z3 2022 Page 16 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

Firstly, in these charts there is a rich off-set. All 4 of the Authors BMW’s have the same rich off-set.
They all run on locally made 95 RON 100% petrol. Extensive testing has been done with MAF’s and
Pre-Cat O2 sensors changed to try and remove the off-set. It remains and has been put down to the
high quality of the locally brewed petrol.

Under normal condition, it would be expected to see the total fuel trims ranging +/-4% around a 0%
reference.

Cold Start:

• This is the typical shape of a cold start fuel trim profile.

• The flat section is simply the last LTFT stored in the DME at the end of the last engine run.
The engine is in open loop control, so the fuel trims have no control over the mixture. They
also do not represent the mixture. It will be richer than the value displayed. This is because
the DME has various tables that cause a cold start enrichment.

• The DME goes into closed loop control and the total fuel trims jump rich. This represents
the true cold start mixture.

• The fuel trims trend up as the engine heats up and the DME removes the cold start
enrichment.

NZ00Z3 2022 Page 17 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

Hot Idle and Cruise:

• The total fuel trims are relatively stable and within a +/- 4% band around the rich off-set.

Vehicle

• 2002 325
• M54b25 engine
• MS43 DME
• Secondary Air Pump is fitted.
• 165,000 km (103,000 miles)
• Fuel is E10, 10% Ethanol

Cold Start:

• Typical Cod Start profile shape.

• The Total Fuel Trims start at around 12%, being the LTFT from the last engine run.

• The DME goes into closed loop control and the total fuel trims jump to around 0%, which is
rich for E10. This represents the true cold start mixture.

• The fuel trims trend up as the engine heats up and the DME removes the cold start
enrichment. They centre around 5%, which is correct for E10.

Hot Idle and Cruise:

• The 5% offset for E10 fuel is clearly seen.

• Very stable total fuel trim values within the +/- 4% band around the 5% lean off-set.

NZ00Z3 2022 Page 18 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

Pre-Cat O2 Sensors General Information


In Simplicity, the Pre-Cat O2 sensors have a service life of 192,000 km (120,000 miles). If yours are
original and the mileage on the car is greater than the numbers above, then just change them.

To tell if they are original or not, pull the O2 sensor electrical plug from its connector. Take a
magnifying glass and check the manufacturing date modelled into the plug.

There are 3 types of Pre-Cat O2 sensor used in BMW’s and they all have different characteristics.
This is best shown in a picture.

Types of Pre-Cat O2 Sensor


Narrow Band O2 Sensors Narrow Band O2 Sensors Wide Band O2 Sensors
Zirconia (common) Titania (rare, M52B28 only) Zirconia (common)
1.0 V 5.0 V 1.05 Lambda
Rich Condition Lean condition (1.05mA) Lean condition
Negative fuel trims Positive fuel trims (0.05mA) Positive fuel trims

1 Lambda
0.45 V 2.4 V (1mA)
(0mA)

Lean condition Rich Condition 0.95 Lambda Rich Condition


Positive fuel trims Negative fuel trims (0.95mA) Negative fuel trims
0.0 V 0.0 V (-0.05mA)
NZ00Z3, 2022.

For the Wide Band O2 sensors, different scanner/DME combinations will show the data in slightly
different ways:

• Some show Lambda

• Some use a 1mA centre reference. This is similar to Lambda with a mA unit added.

• Some use 0mA as the centre reference.

Remember that the O2 sensor data is changing at a far faster rate than the data logger can capture.
The O2 sensor charts are simply a generalisation of what the O2 sensor is doing.

The purpose of this chart is to check:

• The range of O2 sensor switching

• For any off-sets in the upper and lower data.

• For any off-sets between the O2 sensor data.

NZ00Z3 2022 Page 19 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

The O2 sensor data is captured during periods of stable operations

• For wide band O2 Sensors the range varies. The upper and lower ranges should have the
same offset around the centre reference.

• An offset above the centre reference is a lean condition.

• An offset below centre reference is a rich condition.

• Sometimes, looking at the Minimum, Average and Maximum data in the spreadsheet helps.

Under acceleration and deceleration, the O2 sensor will have signals outside of the above ranges to
reflect the mixture at that time.

As the O2 sensor data is one on top of the other, it is easy to see any off-set between the 2 banks.
This may give you clues for a one bank only fuel trim problem.

Chart: Pre-Cat O2 Sensor Bank 1 or Bank2, Narrow Band O2 Sensors


When up to temperature, these sensors typically operate in the 0V to 1 V range. But there is a rare
Titania narrow band O2 sensor on some M52B28 engines that operates in a 0V to 5V range. See the
picture above.

The heater circuit has a 2-ohm resistance. Anything below 1 Ohm is a short. Anything over 5 ohms
is a fault.

The DME is always adjusting the fuel trims by small margins to see what is happening. This
adjustment is seen in the Pre-Cat O2 signal as swings rich and lean. This can occur anywhere from 1
to 3 times a second.

Under steady stage conditions, the typical good signal shows.

• For 100% petrol/gasoline, the range should be 0.1V to 0.8V. Lower and you have a lean
condition, Higher and you have a rich condition.

• For E10 fuel, the range should be 0.1V to 0.75V. Lower and you have a lean condition,
Higher and you have a rich condition.

When under acceleration the O2 signal will be > 0.8V due to the richness of the mixture. Similarly,
under deceleration the signal will be < 0.1V due to the leanness of the mixture.

NZ00Z3 2022 Page 20 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

Fuel System 1 Status and Fuel System 2 Status


These are the fuel system status for each bank of the engine:

1 - Open loop due to insufficient engine temperature. The mixture control is running on pre-
set tables in the DME. The O2 sensors are not being used for mixture control. The MAF is
being used for air mass measurement.

2 - Closed loop, using Pre-Cat O2 sensors and MAF sensor to determine fuel mix

4 - Open loop due to high engine load OR fuel cut due to deceleration. This is normal
operation when you hammer the accelerator down or let off quickly. Normally nothing to
worry about.

8 - Open loop due to system failure. This is usually due to a faulty Pre-Cat O2 sensor

16 - Closed loop, using at least one oxygen sensor but there is a fault in the O2 sensor
feedback system

A cold start log will normally have 1 as a minimum and 2 at a maximum. The average is somewhere
in between and has no real meaning.

A good hot idle and cruise log will only show 2 for the minimum, average and maximum data.

If you have left in some acceleration and deceleration data in the cruise log, then you may see a 4 in
the maximum data. This is usually normal.

If you start seeing 8 or 16 in the maximum data, you have Pre-Cat O2 sensor problems to find.

Commanded Secondary Air Status


Value Description

1 Upstream of catalytic convertor or turned on

2 Downstream of catalytic converter or turned on

4 From the outside atmosphere or turned off

8 Pump commanded on for diagnostics

With these charts, you look at the upper and lower ranges of the data. Don’t get fooled into trying
to count cycles or analysing sections where the swings do not get down or up to the required limit
when they do in other parts of the log.

The expected range of normal operation is fuel dependant when the engine is in a steady state.
There will be higher and lower swings during times of acceleration and deceleration. Remember
that we try to avoid these unstable times of operation as they introduce significant levels of data
error.

NZ00Z3 2022 Page 21 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

Cold Start:

• The O2 sensor signals start at their cold value of 0.43V and slowly drop as they heat up. The
mixture at the Pre-Cat O2 Sensor location is very lean due to the operation of the SAP
injecting large volumes of extra air into the exhaust.

• The signal should drop below 0.1V. As can be seen, bank 1 does not drop enough,
identifying a probable aged sensor that needs to be replaced.

• When the SAP turns off (goes to status 4), the O2 sensors see the real mixture, which is rich.
They shoot to above 0.8V

• They measure this rich condition until the DME goes to closed loop control (fuel status 2).
The duration between the SAP turning off to the DME going to Closed loop can be a fraction
of a second or several seconds as is the case of the above chart. The duration depends on
variables controlled by the DME and the model of the DME.

If can seen that bank 1 is struggling between the time the SAP turns off and the DME going
to closed loop.

• Once in closed loop control, the o2 sensors are switching between 0.1V to 0.8V as expected.

Cold Start, No SAP. In this chart the SAP is unplugged:

• The O2 signals start at their cold 0.43V level and trend upwards as they heat. This reflects
the lack of the SAP operating which results in a rich mixture.

• Bank 1 can still be seen to be struggling as it does not reach the same level as bank 2.

• The DME switches to closed loop control and the O2’s start switching between 0.1V to 0.8V
as expected.

NZ00Z3 2022 Page 22 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

The No SAP chart was included to show what happens if the SAP fails and to verify the O2 sensors
normal operation.

Hot Idle and Cruise:

• The signals are swinging between 0.1V to 0.8V as expected.

• There are no significant offsets.

See Appendix 4 for an example of narrow band Pre-Cat O2’s with a significant off-set.

See Appendix 5 for an example of narrow band Pre-Cat O2’s operating on E10 fuel.

Chart: Pre-Cat O2 Sensor Bank 1 or Bank2, Wide Band O2 Sensors


The Author does not have a reference vehicle with Wide Band Pre-Cat O2 sensors. The following are
a number of charts from various cars.

When up to temperature, these sensors typically provide a +/- 0.05 signal around a reference. The
reference can be 1 lambda , 1mA or 0 mA depending on the DME and the PID being recorded.

The heater circuit has a 2-ohm resistance. Anything below 1 Ohm is a short. Anything over 5 ohms
is a fault.

The DME is always adjusting the fuel trims by small margins to see what is happening. This
adjustment is seen in the Pre-Cat O2 signal as swings rich and lean. This can occur anywhere from 1
to 3 times a second. The typical Pre-Cat O2 signal is between 0.95 (rich) and 1.05 (lean). There may
be jumps to 2.0 or 3.0 during jumps to fuel system status 4, High engine load or deceleration. This is
normal.

With a refresh time in the log of around 5 to 7 seconds, the Pre-Cat O2 data is a rough
approximation of what is happening. Yet it is useful.

The typical good signal shows.

• Minimum of around 0.95 (rich)

• Average of around 1. If just under 1, then it should be 0.99XX. If just over 1, then it should
be 1.00XX.

• Maximum of 1.05 (lean)

If you are seeing an off-set above the reference (average = 1.02 or similar), then the engine is
running lean and there are problems to find.

For information on Fuel System Status and Command Secondary Air see Pre-Cat O2 Sensor Bank 1 or
Bank2, Narrow Band O2 Sensors above

NZ00Z3 2022 Page 23 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

Left Hand Cold Start Log:

• Pre-Cat O2 sensors quickly heat up and jump lean. This reflects the operation of the SAP.

• The SAP turns off and the O2 sensors jump rich. This reflects the rich start mixture.

• The DME goes from open loop control (status 1) to closed loop control (status 2) and the
O2’s quickly trends back to oscillations around the 1 reference.

Right Hand Cold Start Log:

• Bank 2 O2 sensor heats normally and shows a very lean signal as the SAP run.

• Bank 1 O2 Sensor does not heat normally while the SPA is running

• The SAP turns off and Bank 2 jumps a little rich. Bank 1 jumps very rich.

• Both sensors switch to oscillating around the 1 reference when the DME goes from open
loop (status 1) to closed loop (status 2.

• Bank 1 sensor needs to be changed. It is good practice to replace both sensors at the same
time.

Hot Idle and Cruise logs:

• Both O2 sensors are oscillating around the 1 reference as expected.

NZ00Z3 2022 Page 24 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

Chart: Post-Cat O2 Sensors Bank 1 or Bank 2


This chart is all about the condition of the Cat’s and their ability to treat the exhaust.

• MAF flow represents the amount of exhaust going through the Cat’s.

• Post-Cat O2 Sensor voltage is the result of the Cat’s ability to treat the exhaust.

• When up to temperature, these sensors typically provide a 0V to 1 V.

• The heater circuit has a 2-ohm resistance. Anything below 1 Ohm is a short. Anything over 5
ohms is a fault.

Reading the Post-Cat O2 sensor voltage:

• Cat's in good condition have Post-Cat O2 voltages above 0.5V. When at steady highway
cruise, there may be the odd momentary dips.

• If O2 sensors are switching between 0.1 and 0.8V, this shows that the Cat’s are not able to
treat the exhaust and indicates struggling Cat's. They are following the pre-cat O2 sensors.
This is the same for either narrow band or wide band Pre-Cat O2 sensors. Expect to start
seeing P0420 and P0430 Cat efficiency below threshold codes.

• If O2 sensors are flat lined somewhere below 0.5V, you have one of these problems:

o Faulty post-cat sensors

o Blocked Cats. Check fuel trims, they are likely double-digit rich at cruise RPM’s. Do a
before the Cat’s exhaust pressure test.

o Fuel mixture problems that are so lean that it is being reflected in the post-cat O2
sensor signals

Additional Testing

• At 100 kmph (60 mph), the average E46 used around 25 to 30 g/s of air mass. While logging,
change down to 3rd gear and maintain your speed to give higher MAF flows to see how the
O2 sensors are handling the added exhaust flow.

• Run a Steeped-Rev log and analyse the Post-Cat O2 sensor results.

NZ00Z3 2022 Page 25 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

These Cats are in good condition.

• The O2 signal never drops below 0.5V

• The Cruise MAF signal shows that the Cat’s retain their performance even under hard
acceleration when the MAF value goes to 45 g/s. This nearly twice the normal MAF flow for
a car doing 100 kmph (60 mph).

These Cats are in poor condition.

• The Hot Idle chart shows the bank 1 O2 signal never drops below 0.5V, but the bank 2 signal
has a couple of dips below 0.5V

• The Cruise log shows that both banks have Cat’s in poor condition as the O2 signals are
switching. The Cat’s can’t treat the exhaust gases, so the Post-Cat O2’s are seeing the same
mixture as the Pre-Cat O2’s.

These Cats are in very poor condition.

• The Hot Idle chart shows the bank 2 O2 signal never drops below 0.5V, but the bank 1 signal
is switching.

• The Cruise log shows that both banks have Cat’s in very poor condition as the O2 signals are
switching. The Cat’s can’t treat the exhaust gases, so the Post-Cat O2’s are seeing the same
mixture as the Pre-Cat O2’s.

NZ00Z3 2022 Page 26 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

These Cats are blocked

• The hot idle chart shows both Post-Cat O2’s to be flat lined under 0.1V

• The cruise log, shows the O2 signals to have a few blips upwards. This confirms that the O2
sensors are working, but the Cat’s are so blocked that they give an extremely lean signal.

• Note that the MAF values get to 70g/s in the Cruise chart. These Cat’s have been given
significant exhaust flows during the test.

These Cats are in an unknown condition.

• The O2 signal never move off 0.43V.

• The Post-Cat O2 sensors are faulty. Could be a blown heater fuse, so they are not getting up
to a high enough temperature to work

Chart: Stepped-Rev
The following charts provide a comparison between the Cruise: Post-Cat O’s chart and the Stepped-
Rev: Post-Cat O2’s chart. It easy to see that the Stepped-Rev test is a good test to confirm or dispel a
questionable Cruise: Post-Cat O2 test result.

NZ00Z3 2022 Page 27 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

M54B30, 64,000 km (40,000 miles)

As Expected, the Cat’s on a car with such a low mileage are not showing any issues in either the
Cruise or the Stepped-Rev charts.

M52TUB25, 158,000 km (99,000 miles)

The cruise chart is showing the Bank 2 Post-Cat O2’s has some momentary dips below 0.5V, but it is
otherwise all good.

The Stepped-Rev Chart shows no issues with the Cat’s and confirms them as good..

M52TUB20, 192,000 km (120,000 miles)

The cruise chart is showing both Post-Cat O2’s are all good.

The Stepped-Rev Chart shows that Bank 1 has a monetary dip below 0.5V at the second rev step of
3,000 rpm and a MAF load of 17 g/s. Both Banks had difficulty at the 3rd rev step of 4,000 rpm and a
MAF load of 27 g/s. They then recover at the final rev step and a MAF load of 40 g/s. Over all, these

NZ00Z3 2022 Page 28 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

Cat’s are considered to be good. If both Banks continued to have problems at the 4th rev/MAF load
step, then the Cat’s would have been considered blocked at high loads.

Secondary PID Information


Engine Coolant Temperature
The normal operational coolant temp is 94C (204F).

• Cold start, check that the temperature is increasing.

• Hot Idle and Cruise, you should be at full operational temperature.

• If you have full operational temp at hot idle, but it drops to around 80% or less during the
cruise log, you may have a failed open thermostat. This will cause lean Total Fuel Trims.

Ignition Timing Advance for #1 Cylinder


Hot Idle and Cruise. Ignition timing ranged from about 5 degrees at hot idle and grows with RPM to
between 25 and 30 degrees at 100 kmph (60mph).

There are times when ignition timing will suddenly drop to single digits or go negative. This is an
indication of:

• Fuel System Status has gone to status 4 Open loop due to high engine load OR fuel cut due
to deceleration.

• During mis-fires

• During knock sensor intervention for pre-ignition “Pinging”

A chart of RPM, Ignition Timing and Fuel System Status can often be very useful.

NZ00Z3 2022 Page 29 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

Cold start:

• The timing retards to -15 degrees to enrichen the mixture during the operation of the SAP.

• Timing then rapidly comes back to -5 degree when the DME goes into closed loop control
(status 2)

• Timing returns slowly to 5 degrees as the engine warms up and the DME reduces it’s “cold
start enrichment”.

Hot Idle:

• Timing cycles a little around the 5 degree mark

Cruise:

• Timing is consistent while RPM are consistent.

• Note: load has a major influence on timing.

RPM V’s Timing:

• This is a plot from a Rev-Rise log. Note that RPM is the x axis and not time.

• Timing rises with RPM

• As the engine is lightly loaded (stationary car), the amount of timing advance for a given
RPM is different to the Cruise Chart.

Intake Air Temperature


Look for sensible values. When the sensor is mounted on the inlet manifold, the temperature is
impact by the heat soak of the engine bay, so you can expect to see temperature above ambient
outside temperature. When the sensor is mounted in the MAF, you get a true ambient temperature.

Absolute Throttle Position


This is for the opening of the main throttle body only. It does not include any allowance for the
opening of the Idle Control Valve (ICV). The ICV controls the air and hence the RPM of the engine for
a larger amount of the throttle control than most people realise. Up to around 2,500 rpm of steady
engine rev’s or 10.2% of the engines total throttle range. Run a log while driving around town. Most
likely you will be running only on the ICV at a steady 50 kmph (30 mph) as you tootle around town.

The Absolute Throttle Position provides different numbers depending on the DME in your car. The
MS42 and MS43 follow the same process. The MS45 is different.

NZ00Z3 2022 Page 30 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

MS42 and MS43.

• Records Zero while the engine is running only on the ICV.

• Starts recording at first opening. So, when it’s just open, you’ll see 1% and greater.

• WOT is somewhere around 80% to 89%. Value depends on the transmission


(manual/automatic). Although the butterfly will be fully open, you’ll not going to see 100%
throttle opening due to the design of the throttle body and the calibration of the throttle
sensors (adaptions).

MS45

• Normally records around 10.2% all the time when the engine is running only on the ICV. This
tells you that the ICV controls the first 10.2% of the total throttle range. This value has been
seen as low as 7.5% and as high as 12%. This is likely due to the throttle body and
accelerator pedal adaptions. Likely causes are either the potentiometer in the throttle body
or pedal are getting worn or there is an aftermarket throttle body installed.

• The reading increases from 10.2% when the throttle body first starts opening.

• WOT is somewhere around 80% to 89%. Value depends on the transmission


(manual/automatic). Although the butterfly will be fully open, you’ll not going to see 100%
throttle opening due to the design of the throttle body and the calibration of the throttle
sensors (adaptions).

Input Voltage Read by the Scan Tool


This is the system voltage. It should be 13.0V or greater.

If you are seeing voltage in the 12’s or less, then the alternator is not charging and the engine is
running on the battery. This is not good.

As the E46’s are rolling computers, having a good system voltage is critical. Run your eye over the
minimum, average and maximum values just to confirm that system voltage is not an issue.

Acknowledgements
The Author wishes to thank the following people for their contributions.

• jfoj for his ground breaking work with OBD Fusion logging and diagnosing the logs.
• All the E46Fanatic users who have loaded OBD Fusion logs to be analysed and their patients
as the Author learnt with the associated successes and mis-diagnosis’s.

NZ00Z3 2022 Page 31 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

Appendix 1: The OBD2 Logger PID’s and Data Refresh Rates

PID List
Below is the list of PID’s that you want to log.

1. Fuel system 1 status

2. Fuel system 2 status

3. Calculated load value

4. Engine coolant temperature

5. Short term fuel % trim - Bank 1

6. Long term fuel % trim - Bank 1

7. Short term fuel % trim - Bank 2

8. Long term fuel % trim - Bank 2

9. Engine RPM

10. Vehicle speed

11. Ignition timing advance for #1 cylinder

12. Intake air temperature

13. Mass air flow rate

14. Absolute Throttle position

15. Commanded Secondary Air Status

16. O2 Voltage (Bank 1, Sensor 1) – for cars with narrow band Pre-Cat O2 Sensors

17. O2 Voltage (Bank 1, Sensor 2) - for cars with narrow band Pre-Cat O2 Sensors

18. O2 Voltage (Bank 2, Sensor 1)

19. O2 Voltage (Bank 2, Sensor 2)

20. O2 sensor lambda wide range (current probe) (Bank 1, Sensor 1) - for cars with wide band
Pre-Cat O2 Sensors

21. O2 sensor lambda wide range (current probe) (Bank 2, Sensor 1) - for cars with wide band
Pre-Cat O2 Sensors

22. Input Voltage read by the scan tool

If you do not know if your car has narrow band or wide band Pre-Cat O2 sensors, then select all 4
Pre-Cat Sensor PID’s. Two will have data in them and two will only have zero’s. Later, you can then
delete the PID’s with Zero’s.

NZ00Z3 2022 Page 32 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

Alternatively, run an OBD Fusion Diagnostic Report. It will tell you what type of O2 sensors your
engine has.

If you intend to load the log files onto an on-line data graphing service such as DataZap, then read
Appendix 2 on setting up 2 User Defined PID’s for Total Fuel Trim.

Refresh Rate
The time stamp or refresh rate setting needs to be set. All loggers suffer from one problem. The
more PID’s that you log, the slower the refresh rate is for the data. This is due to the way that the
data request is structured. It’s called a “PID Frame”. A small PID frame with only two PID’s will
refresh very fast. Increase the PID frame to 20 PID’s and it slows down dramatically. The typical
refresh rate for the list of PID’s above is between 5 to 7 seconds.

A lot can happen in an engine in 5 to 7 seconds. That is why the tests that are logged try to provide a
steady state of operation. Remember “Don’t let technology fool you”. Understand the limitations of
the logging.

Either:

• Set the Logging Tigger to a “fixed Time Sample” of 1 second, or

• Set the Logging Trigger to “PID Frame”.

Both work. Choose one that suits you. Just don’t be temped to set the refresh rate to 100ms.
Wading through a 4,000 line log file with 50 to 70 lines of the same data is a pain.

NZ00Z3 2022 Page 33 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

Appendix 2: User Defined PID’s

What are User Defined PID’s


OBD Fusion has the facility to let the user create their own PID’s. These are based on existing PID’s
in the DME and then modifying them in some way.

The 2 User Defined PID’s covered here combine the Short Term Fuel Trim and the Long Term Fuel
trim for each bank to create a Total Fuel Trim for that bank. There are times when one fuel trim will
be positive and the other negative. They offset each other and make it hard to see what is really
happening. Combining them into a Total Fuel trim makes it easy to see what is happening to the
mixture.

Creating a Total Fuel Trim PID is very useful for people who do not have access to spread-sheeting
software. It allows them to use an On-Line Graphing service such as DataZap to display and analyse
their logs.

The Total Fuel Trim User Defined PID’s


In OBD Fusion:

• Select “Settings”

• Select “User-Defined-PIDs”

• Select “OK” after reading the warning message

• In the top right corner, select “Menu”

• Select “New”

• Edit the data table as per the setting below.

Once the PID’s are completed, remember to select them to add them to the log:

• Select “Settings”

• Select “Preferences”

• Select “Logging”

• Select “Select PIDs”

• Select “User-Defined PIDs”

• Turn on the PID’s you want to log.

NZ00Z3 2022 Page 34 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

Settings

Attribute Total Fuel Trim Bank 1 Total Fuel Trim Bank 2 MAF Model (1)
Name (2) TFT B1 TFT B2 MAF Model
Description TFT B1 TFT B2 MAF Model
Category Engine Engine Engine
Manufacturer Generic Generic Generic
Metric Units (3) %1 %2 g/s1
English Units %1 %2 g/s1
Min Value (4) -100 -100 0
Max Value (4) 99.2 99.2 16,383.75
Metric to English 1 1 1
Scale Factor
Metric to English 0 0 0
Offset
Module Header (5) Blank, Delete “ECM” Blank, Delete “ECM” Blank, Delete “ECM”
OBS Mode (6) 01 01 01
PID Number (7) 06 08 0C
Priority High High High
Equation (8) See Note (9) See Note (10) See Note (11)

Notes:

1. The MAF User Defined PID information is included for people who have a valid MAF model.

2. The name does not always follow through to the column header in the Log. You sometimes
just see “PID”

3. The use of a number after the unit allows you to identify the PID if the Name does not follow
through to the column header in the log.

4. The Min and Max values are used to scale the result. Use the SAE PID values unless you
want to skew the results in some way.

5. If you leave the Module Header at “ECM”, the User Defined PID will not work. Delete “ECM’
and leave it blank

6. You need to include the “0” before the number as it’s a Hex Address.

7. You need to include the “0” before the number as it’s a Hex Address. You need to include
the “0” before the “C” and the “C” must be upper case as it’s a Hex Address.

8. The equation is case sensitive. Type “readSaePid” correctly. A common problem is not
closing the brackets or having the brackets in the wrong places.

9. (A+readSaePid(07))/1.28-100.

Where:
A = the raw value from PID 0106 = Short Term Fuel Trim Bank 1
readSaePid(07) = The raw PID 0107 value = Long Term Fuel Trim Bank 1
1.28-100 is the SAE scaling

NZ00Z3 2022 Page 35 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

10. (A+readSaePid(09))/1.28-100.

Where:
A = the raw value from PID 0108 = Short Term Fuel Trim Bank 2
readSaePid(09) = The raw PID 0109 value = Long Term Fuel Trim Bank 2
1.28-100 is the SAE scaling

11. (A*256+B)/4*M

Where
(A*256+B)/4 = the SAE values and scaling for RPM
M = your MAF model equation

Note: The MAF model is only valid from idle to 3,000 rpm with a stationary car. This means
it can be used in a Hot Idle log and a Rev-Rise log.

For more about MAF Models see: https://www.e46fanatics.com/threads/how-to-make-a-


maf-model.1298187/#post-18969033

Impact on Refresh Rates


Adding User Defined PID’s will slow down the refresh rate of the data log. The author uses an iPad 2
and WIFI OBD2 adapter. This provides a 7 second refresh rate for the standard 20 PID OBD Fusion
Log used by E46 Fanatics. Adding the 3 User Defined PID’s slows the refresh rate down to 10
seconds. Testing was conducted using both “PID Frame” as the logging trigger and a 1 second
refresh rate. The results were the same.

It was noted that once the User Defined PID’s had been used, the refresh rate stayed at 10 seconds
even if the User Defined PID’s where deleted. Once OBD Fusion had fully turned off and on again,
faster refresh rates were achieved.

Android devices with Bluetooth connected OBD2 adapters have not been tested. Their performance
may differ.

Accuracy of Results
The data used in the User Defined PID’s is captured at a slightly different point in DME time as the
native PID. This is because things change very quickly in an engine. The STFT B1 native PID will
return a slightly different number to the value returned by the User Defined PID.

Total Fuel Trims

Testing has shown that the Total Fuel Trim User Defined PID results are very comparable to a
calculated result from the PID data in the log. The overall trend is the same and any timing errors or
offsets are not considered significant enough to worry about.

NZ00Z3 2022 Page 36 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

User Defind PID's: Total Fuel Trim Bank 1


25 2500
20 2000
15 1500
10 1000
5 500
0 0
-5 0 50 100 150 200 250 300 350 -500
-10 -1000
-15 -1500
-20 -2000
-25 -2500

TFT B1, User Defined PID (%) TFT B1, Calculated from STFT + LTFT
Engine RPM (RPM) [RHA]

MAF Model

Testing has shown that the MAF model has a +/-1.5% accuracy when compared to calculating the
model values from PID values in the log.

Resources
SAE PID Data: https://en.wikipedia.org/wiki/OBD-II_PIDs

OC Tech page on User Defined PID’s: https://obdsoftware.force.com/s/article/user-defined-


pids#:~:text=PIDs%20are%20created.-
,When%20creating%20a%20user%2Ddefined%20PID%2C%20you%20define%20the%20data,must%2
0enter%20the%20following%20information.

How to set up OBD Fusion to capture the 3 standard logs:


https://www.e46fanatics.com/threads/obd-fusion.1240733/#post-18380161

How to Make a MAF Model: https://www.e46fanatics.com/threads/how-to-make-a-maf-


model.1298187/#post-18969033

NZ00Z3 2022 Page 37 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

Appendix 3: Diagnostic Tips


A few quick diagnostic tips:

• If you have lean conditions, smoke test the engine to find the vacuum leaks. If you have not
smoked tested the engine, do not pass go, do not proceed any further, go back and smoke
test the engine. Over 90% of lean conditions are caused by vacuum leaks. The remaining
10% need data logging to find them.

• If only one Total Fuel Trim (bank) is showing a problem, then the problem is limited to that
bank only. There are only a few items that are bank specific. They are:

o Coil

o Plug

o Injector,

o Inlet gasket,

o Cylinder compression,

o Exhaust gasket

o Pre-Cat O2 Sensor,

o Cat,

o Post-Cat O2 sensor

• If both Total Fuel Trims (bank) show the problem, then it’s common to both banks. Items
that are common include:

o MAF

o Rubber induction tubes from MAF to Throttle Boddy and ICV. Vacuum leaks in this
equipment

o Inlet manifold and it’s vacuum leaks

o All vacuum tubing and their vacuum leaks

o Brake Booster vacuum leaks

o SAP

o VANOS

o DISA

• Generally, if the Cruise Total Fuel Trim is > than the Hot Idle Total Fuel Trim, then you have
fuel supply problems.

• Generally, if the Hot Idle Total Fuel Trim is > the Cruise Total Fuel Trim, then you have
vacuum leak problems.

NZ00Z3 2022 Page 38 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

• Misfires are caused by Electrical and Mixture problems:

Electrical

o Plugs and coils. Swap with another cylinder to see if fault follows

o Harness. Dirty connectors, damaged wires, faulty coil earthing resistor

o DME. Inspect the 2 sets of 6 MOSFETS (Black boxes) around the outside of the DME
PC Board for damage. Inspect for PC Board track damage. Any damage will be
obvious.

Mixture

o Too rich. Too much fuel, not enough air. Faulty MAF or Pre-Cat sensor fooling the
DME into thinking 1 or the 2 prior causes is happening, blocked Cats, if the problem
is bank specific, a leaking injector.

o Too lean. Too much air, not enough fuel. Faulty MAF or Pre-Cat sensor fooling the
DME into thinking 1 or the 2 prior causes is happening. Vacuum leaks (see first tip)

o The DME has a performance tune. The DME tables may not match the MAF or
injectors fitted. The Air/Fuel tables have been incorrectly altered. Put the DME back
to its original tune and see if the problem is fixed.

• MAF problems:

o An Under reporting MAF causes Lean fuel trims

o An Over reporting MAF causes Rich fuel trims

o The only time you clean a BMW MAF is when you have an after-market oiled mesh
air cleaner. These are often over oiled and the extra oil fouls the MAF. This causes
under reporting problems and hence Lean conditions on both banks.

• If one fuel trims is fully rich and the other fuel trim is fully lean. Then you have Pre-Cat O2
sensors connectors swapped.

• Vacuum leaks can occur on both sides of the engine:

o Inlet vacuum leaks. Smoke test through the air induction tubes with the MAF
removed. A rubber glove is a great tool to connect the smoke machine.

o Exhaust leaks before the Pre-Cat O2 sensors. SAP, Exhaust gaskets (especially after
fitting E-bay headers), loose Pre-Cat O2 sensors. Smoke test from the end of the
exhaust pipe.

• If you remove the spark plugs and there is black oil on the threads, then the valve cover
gasket is leaking around the spark plug wells. Oil falls down the wells and not up from the
combustion chamber, where it would get burnt.

• If you fit a tune into the DME and the mixture (fuel trims) goes to the dogs. Check that the
tuner has used the correct DME tables for the MAF and injectors fitted to the car. Similarly,
if you decide to fit a 3.0L MAF or 3.0L purple injectors to a 2.5L engine and don’t update the
DME tables, expect bad mixture problems.

NZ00Z3 2022 Page 39 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

• When all else fails. If you have a really difficult fault to find and the usual tips are not
working, remove the DME and inspect the connectors for oil or coolant contamination. If it’s
there, first, find and replace the sensor that it leaking the contaminate into the wiring
harness. Coolant is bad, it tends to corrode the DME pins leading to a replacement DME. Oil
can be cleaned and cleaned and cleaned to get rid of the problem.

NZ00Z3 2022 Page 40 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

Appendix 4: Case Study 1: Narrow Band Pre-Cat O2 Sensors.

Vehicle
• 2000 BMW Z3 (E36/7)

• M52TUB20 engine

• MS42 DME

• Secondary Air Pump is fitted.

• 192,000 km (120,000 miles)

• Fuel is 100% Petrol (gasoline), 95 RON, locally brewed in New Zealand.

Pre- Repair Logs

Logger: TestO
Sample rate: 161 ms

The Cold Start logs show:

• Bank 1 is slow to heat up.

• Bank 1 has a definite off-set rich that trends back as the sensor runs longer.

• Bank 2 is operating correctly.

The difference between the 2 charts above is the data series order. This shows the full extent of the
Bank 1 off-set.

There are three possibilities for the Bank 1 sensor:

• A tired heater,

• A tired measurement cell,

• It’s a good sensor and it is reading correctly.

NZ00Z3 2022 Page 41 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

The Cruise logs are showing:

• Quiet a spacing between the Bank 1 and bank 2 total fuel trims’

• The engine is running rich on both banks,

• There is still a rich off-set for Bank 1 O2 sensors (> 0.8V) when you look at the maximum and
minimum values.

The Hot Idle logs show:

• Good close fuel trims

• The engine is running rich

• There is still a rich off-set for Bank 1 O2 sensors (> 0.8V) when you look at the maximum and
minimum values.

NZ00Z3 2022 Page 42 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

After Fitting New Pre-Cat O2’s

The Cold Start logs show:

• Both sensors heating correctly

• The Bank 1 rich off-set has gone.

• Both banks are operating in the 0.1V to 0.8V range as expected.

• The total fuel trims start at about -4% rich, being the last LTFT stored by the DME during its
last run. They operate within acceptable limits while the engine is warming up.

The Cruise logs are showing:

• No real improvement between the spacings of the total fuel trims

• The engine is running rich on both banks,

• The Pre-Cat Bank 1 rich off-set has gone.

• Both Pre-Cat banks are operating in the 0.1V to 0.8V range as expected.

NZ00Z3 2022 Page 43 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

The Hot Idle logs show:

• Good close fuel trims

• The engine is running rich

• The Bank 1 rich off-set has gone.

• Both banks are operating in the 0.1V to 0.8V range as expected.

Summary
The car has 192,000 km (120,00 0miles) on the clock. This is the recognised service life of Pre-Cat O2
sensors. So, they were due for changing anyway. Testing showed that the bank 1 Pre-Cat O2 sensor
was aged (lazy). This was confirmed by post repair testing.

The general rich condition of the engine has been tested to death. Fuel pressure, injectors, MAF and
Cat’s have been investigated. The Author has 4 BMW’s with M52TU or M54 engines. They all run
slightly rich. This condition has been put down to the high quality of the locally manufactured fuel.

NZ00Z3 2022 Page 44 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

Appendix 5: Case Study 2: Narrow Band Pre-Cat O2 Sensors.

Vehicle
• 2002 325

• M54b25 engine

• MS43 DME

• Secondary Air Pump is fitted.

• 165,000 km (103,000 miles)

• Fuel E10

Pre- Repair Logs

The Cold Start logs show:

• Bank 1 is not heating correctly.

• Bank 2 heating correctly

• When the SAP turns off both sensors spike up, but not to the > 0.8V level as expected.

• Fuel Status switches to closed loop (status 2). Both O2 sensors fail to switch in time with the
DME mixture adjustments.

• The Fuel Status goes to O2 sensor fault (status 8). The O2 sensors are flat lined at their
respective minimum values.

• The total fuel trim starts at the stored LTFT value of 11.7% lean in open loop. It goes to 30%
lean when in closed loop and returns to 11.7% lean when the Fuel Status goes to fault status
8.

NZ00Z3 2022 Page 45 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

There are three possibilities for the Bank 1 sensor

• A tired heater,

• A tired measurement cell,

• It’s a good sensor and is reading correctly.

There are two possibilities for the Bank 2 sensor

• A tired measurement cell,

• It’s a good sensor and is reading correctly.

The above 2 charts are the full cruise log. Really it is just a drive log. You can see the high variability
of the speed and associated fuel trims and Pre-Cat O2 sensor data. Most of the data is junk as the
engine is not is a steady state condition. Yet, there is a 100 second section between 280 and 380
seconds where the speed was constant enough to look at the cruise data.

When running your cruise log, you are looking for 2 to 3 minutes of constant speed. Use Cruise
control if your car has it fitted.

The Cruise logs are showing:

• Very lean total fuel trims,

• The O2 sensors are switching in the range of 0.1V to 0.75V. This confirms the fuel at E10 as
the sensors are not getting to 0.8V

NZ00Z3 2022 Page 46 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

The Hot Idle logs are showing:

• Very lean total fuel trims,

• The O2 sensors are switching in the range of 0.1V to 0.75V. This confirms the fuel as E10 as
the sensors are not getting to 0.8V

After Fitting new Pre-Car O2 Sensors

The cold start logs show:

• The O2 sensors heat and start to measure the exhaust. It’s very lean due to the extra air
being injected by the SAP. They drop to a value <0.1V,

• The SAP turns off,

• The O2 sensors read the true condition of the exhaust, which is rich (open loop control), so
the value is >0.8V.

• The fuel status switches from open loop (status 1) to closed loop (status 2) and the O2
sensors start switching in time with the DME mixture adjustments within the 0.1V to 0.75V
band.

• The total fuel trims start at the last recorded value from the previous start, LTFT 11.8%.

• The trims swing towards rich but still returns a lean reading when the DME goes to closed
loop (Fuel Status 2).

• The trim are operating within an acceptable band, but with a 5% lean off-set with is normal
for E10 fuel.

NZ00Z3 2022 Page 47 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

This is very curious operation. The O2 sensors look great, but the total fuel trims have a large lean
off-set.

The Cruise logs show:

• Total fuel trims operating within an acceptable band but with a 5% lean off-set.

• O2 sensors are operating in a band of 0.1V to 0.75V. This is showing the fuel is E10.

• The LTFT’s (not shown on the charts) average Bank 1 at 3.8% and Bank 2 at 4.6%

The Hot Idle logs show:

• Total fuel trims operating within an acceptable band but with a 5% lean off-set.

• O2 sensors are operating in a band of 0.1V to 0.75V. This is shows the fuel as E10.

• The LTFT’s (not shown on the charts) average Bank 1 at 3.8% and Bank 2 at 4.6%

NZ00Z3 2022 Page 48 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

Summary
The MAF had already been changed with a Siemens/VDO MAF, so it was a known good MAF. The
Pre-Cat O2 sensors where replaced based on the cold start charts and the very lean operation at
cruise and hot idle. But this did not fix or explain the post repair lean conditions.

Discussion with the owner revealed that the engine was running on E10 fuel. E10 is a less energy
dense fuel than petrol/gasoline having 10% ethanol in it. This causes a 4.5% lean offset in the total
fuel trims. This is confirmed by the LTFT’s in the Cruise and Hot Idle logs. The cold start log was the
first start after fitting the new Pre-Cat O2 sensors. It still had the 11.8% LTFT stored in the DME from
the last engine start when it had the old Pre-Cat O2 sensors fitted.

It's also interesting to note that the Pre-Cat O2 sensor operating range is reduced due to the E10
fuel. Normally with Petrol/gasoline, the O2 sensors range is between 0.1V to 0.8V under steady
state conditions. With E10, the range was 0.1V to 0.75V. This drop of 0.05V on the upper range
being the impact of the low density (leaner running) E10 fuel.

NZ00Z3 2022 Page 49 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

Appendix 6: Alpha-N or “Unplug the MAF” Testing

When you unplug the MAF and run the engine, what happens?

BMW designed a “Get Home Safely” feature into the DME. If the MAF fails, you can unplug it and
the engine will run, so you can drive home safely or to the mechanic for repairs. In the DME, there a
set of tables called Alpha-N tables. They perform some clever Math to work out how much fuel to
inject without a valid MAF signal.

When you unplug the MAF the following happens with the PID’s in the log:

• MAF values go to zero for all logs

• Load values go to zero for the Hot Idle log but provides values for the Cruise Log

• The Short Term Fuel Trims keep working.

• The activity of the Long Term Fuel Trims is DME dependant:

o MS42 and MS43 DME’s, the Long Terms go to zero

o MS45 DME, the Long Terms remain active.

• Total Fuel Trim is as always, the sum of both the Short Term and the Long Term, which is
what we monitor.

• The O2 sensors keep providing fuel trim feedback to the DME

• The fuel system status remains at 2 = Close loop control

The Results are typically:

• Around -3% Rich at hot idle

• Around 3% to 4% Lean at steady 100kmph (60mph) cruise.

Vehicle

• 2002 325

• M54b25 engine

• MS43 DME

• Secondary Air Pump is fitted.

• 165,000 km (103,000 miles)

• Fuel E10

NZ00Z3 2022 Page 50 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

The Hot Idle logs shows the Total Fuel Trims in the 5% lean area, which is correct for a car running on
E10.

The Alpha-N Hot Idle log shows the around -3% rich offset.

Both the Cruise and Alpha-N Cruise logs show the total fuel trims around the 5% lean area

The “Unplug the MAF”Test


People use the “Unplug the MAF” test for 2 different purposes”

1. To check for vacuum leaks.

2. To check the MAF

These tests are based on a couple of assumptions, which are often not realised or inferred in any
advice given.

They are:

• For the vacuum leak test, the assumptions are that the MAF is good and that there are
vacuum leaks.

• For the MAF test, the assumptions are that the MAF is bad and that there are no vacuum
leaks.

An improvement in engine idle (less rough) and mis-fires stopping caused by unplugging the MAF
can be claimed to be a successful result for either test. Unfortunately, people have been caught out
by the assumptions.

NZ00Z3 2022 Page 51 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

Vacuum Leak Test

If the MAF is good and there are vacuum leaks, the impact of removing the incorrect MAF reading
due to the unmetered air from the vacuum leaks combined with the -3% rich off-set of the Alpha-N’s
counteracts enough of the lean problem to bring the mixture back into an acceptable band. The
rough running and mis-fires disappear. The person heads off to fix vacuum leaks. Problem solved.

If the MAF is Bad and there are no vacuum leaks, the fuel trims become around -3% rich and the
rough running and misfires stop. The person heads off looking for vacuum leaks that do not exist.
They eventually come back frustrated to question the MAF.

MAF Test

If the MAF is Bad and there are no vacuum leaks, the fuel trims become around -3% rich and the
rough running and misfires stop. An expensive MAF is installed and the problem is solved.

If the MAF is good and vacuum leaks are the problem, the fuel trims improve by -3% rich and the
rough running and misfires stop because the rich off-set has counteracted enough of the lean
problem to bring the mixture back into an acceptable band. An expensive MAF is installed only to
find that it did not fix the problem. They eventually come back frustrated to looking for vacuum
leaks.

Summary

Hot Idle Test Results


MAF Vacuum Leaks Result
Good Leaks -3% improvement in total fuel trims
Bad No Leaks Total fuel trims go to -3%

Solution

You can monitor the total fuel trims at hot idle both with and without the MAF connected and use
the above table to distinguish the problem. It gets difficult is there are some small vacuum leaks or
the MAF is just a little out of calibration. These will skew the results.

The only way to solve the false assumption/result problem is to smoke test the engine when lean
conditions are encountered. Once the vacuum leaks are fixed, the “Unplug the MAF” test then
becomes a test of the MAF.

NZ00Z3 2022 Page 52 Version 1.5


How To Read OBD2 Engine Diagnostic Logs

Appendix 7: Tips on Loading Foxwell Logs


The Foxwell NT530 scanner is a good device. The structure of the logs, however, leaves a bit to be
desired.

Time Stamps
Firstly, it does not provide a time stamp on the data. It logs in PID frame refresh rates. So, each row
will always be new data. This lack of a time stamp can be overcome in 2 ways:

1. Insert a column at the front of the table. Simply number the rows (lines of data) starting at
1.
2. If your OCD requires that the correct time stamp is needed, then you have to work out the
duration between the rows. This is done by running the same log for a set time, say 30
seconds. Then divide the time by the number of rows of data in the log.

Loading the Logs


The following tips are helpful in loading the Foxwell logs:

• The file is a text (TXT) file, so set Excel to look for a TXT file.

• When loading the file, Excel will want to delimit it. That is, work out how to convert the text
and put it into columns.

o At Step 1 of 3, just click on “Next”

o At step 2 of 3, Check the box “Other” and enter the “ double speech mark into the
box. You should see the data get separated into columns in the associated screen.
Click on “Next”

o At step 3 of 3, just click on “Finish”

• Excel will load the data set and you will have a really long row of data in row 1 with columns
of data below. The columns will not have headers.

• Insert a couple of rows at row 2. To work out the headers, you need to read across that
really long row 1. It contains all the data information.

o Look for the entry “ID”. It starts about column AT. In the next column there will be
the number of the row that the header relates to. The first column is numbered 0.

o Three columns right and there is the header for the first column of data.

• Add headers to all columns of data.

• Delete any columns of text and separators between the data columns, [ , ] etc. This gives
you the log in a form that you can use.

NZ00Z3 2022 Page 53 Version 1.5

You might also like