View Single Post
Old 4th March 2010, 10:10   #1
This is my second home
Rover75 and Mreg Corsa.

Join Date: Nov 2006
Location: Sumweer onat mote o'dust (Sagin)
Posts: 21,750
Thanks: 341
Thanked 3,660 Times in 2,924 Posts
Default WIP: Diagnostic Mode - Updated, Clarified and Simplified

Many members have asked about the Diagnostics Routine accessible via the trip button. There are umpteen links used to get this info, but the detail provided is either incorrect or confused. I've spent some time going over the various sections and managed to simplify a lot of it. The fuel gauge stuff was totally mixed up but thanks to an investigation by Jules this now makes some sense. The routine for correcting the OBC fuel consumption will allow the screen to give data exactly in line with manual estimation using the brim-to-brim method. If your driving regime remains unchanged, you should be able to drop the exercise completely. This requires practical verification.

(Verification not been confirmed to date: December 2021)

************************************************** ********************************
This is my revision dated 4 January 2021 with some comments added previously
************************************************** ********************************

To those who've already done so, or plan to copy/paste the following document onto YouTube, etc. or use it to demonstrate the technique in video format I say, please do the honorable thing and acknowledge who did the work and where it comes from. I will contact those publishing my work via the YouTube, etc. public comments system and request a simple acknowledgement. Many thanks, T-Cut
30 April 2017
************************************************** *********************************
All models, with or without the High Line/Onboard Computer, will display diagnostic mode on the lower (Trip) screen.

How To Use Diagnostic Mode

The following information originates from an old BMW document and may be ambiguous in parts due to differences in the MGR system. I've made the instructions easier to follow than the original. Any errors in this revised data are mine. Failure to activate the diagnostics routine is usually due to not pressing the button fast enough. If pressing is delayed for more than a second or so, it will revert back to the standard trip display. There are bits of it I don't yet understand, but most of the useful stuff is explained.

Enable Trip Screen Diagnostics:

a) Put key into ignition and turn it to position 1 (instruments activated).
a2) If you intend driving with diagnostic mode active, start the engine now.
b) Press and hold the trip reset button. This is the button sticking out near the speedometer.
c) Your LCD display will show "test 1.-"
d) Immediately press the reset button every half second until you get to "test 19.-". (19.0 allows access to diagnostic mode)
e) The display will now show alternating "Log 1 -on" / "Log 1 -off"
f) While it shows "Log 1 -off" press the reset button and. .
g) With no delay press within a half second (repeatedly if necessary) to get to the required section.
h) The screen will appear similar to the earlier one, but is a different series. Keep pressing every half second to select one of the following functions (there is no title on screen).

It's OK to drive the car with any particular diagnostic screen active (eg. coolant temperature). If it's displaying time, engine or speed related data, this will change in real time. DO NOT be tempted to swap between screens while driving! Turning off the ignition ends the diagnostic session.

1 Car, Engine and Cluster Data
1.0 VIN serial number
1.1 K-number
1.2 Cluster Part Number
1.3 Coding (04)/diagnosis (52)/bus index (10)
1.4 Week of manufacture (eg. 1200 = week 12)/year of manufacture (eg. 2000)
1.5 Hardware number (eg. 09) and Software number (eg. 11600 = 16.0) of IPK.
1.6 Injection Status-number of cylinders-motor number

2 Cluster System Test
2.0 Activates the gauge drivers, indicators and LEDs to confirm function.
When function 2.0 is selected, the instrument pack provides a check of the warning lamps, major and minor gauges, displays and illumination functions. The gauge pointers are driven through their full arc and back again to check operation. All warning lamps are illuminated to check that none of the LEDs have failed. All yellow and red pixels of the message centre are flashed on and off in a chequered pattern to check that all elements of the display are functional.

3 Service Inspection (SI) Data
3.0 Fuel Used (in liters) since last Service Inspection
3.1 Periodic inspection days; elapsed days (since last SI)

4 Momentary Consumption
4.0 Momentary fuel consumption in litres/100km (eg. 0145 = 14.5 litres/100km)
4.1 Momentary fuel consumption in litres/hour (eg. 0018 = 1.8 l/hr)

5 Distance Gone Consumption
5.0 Average consumption in litres/100km (eg. 082 = 8.2 litres/100km)
5.1 Calculate distance ( km) to refuel (momentary distance to go)

6 Fuel Level Sensor Outputs in litres (Fuel tank has left and right side sensors)
6.0 Fuel levels both (eg: 109330 means left half sensor = 10.9 litres; right half sensor = 33.0 litres)
6.1 Total tank level (eg: 0439 is 10.9+33.0 = 43.9 litres)
6.2 Indicated value with diagnostics: The Test Number (6.2) is preceded by 1, 2 or 3 (eg. 1-6.2 or 2-6.2 or 3-6.2)
If first digit is 1 - both sensors are OK. This is followed by three left signal digits, then three right signal digits.
If first digit is 2 - one sensor has an error. Side in error will display - - 0 . Functional side will show its three digits
If first digit is 3 - no sensor signal, no display. Probably - - 0 - - 0 (Needs confirming --- T-Cut)

EDIT 7 October 2019

Section 6
The following comments require a further update based on tests on Section 6 conducted by members during 2019. At this point, I haven't had time nor inclination to include this info, so the following is even more tentative.
************************************************** **************
Members who have had a go at this may have noticed that the routines for the fuel tank and sender units (Section 6) seem to be different from the instructions. Up to now, I hadn't ventured into the Test 6 part, but having now done so, I can report some observations.

Firstly, I think the instructions for Section 6 are wrong. I originally interpreted them from BMW documentation, from comments made on a BMW forum and from reports by members of the 75/ZT forums. In fact I now believe that the MGR version does not differentiate each sender's output, but simply displays an integral. It may well display a warning that one or both senders are faulty (the 1_6.2, 2_6.2 or 3_6.2 display), but more than that I now have doubts.

In my own case, the displayed figures under each of the Test 6 subsections were the total fuel content. This varied significantly in real time when the car was rocked side to side. This shows that the floats were responding to the changing liquid surface. The integral is given in litres. When I converted this to gallons and used the average fuel consumption shown by the OBC, the calculated range was identical to that shown by the OBC. This proves the figures are total content only.

I suspect the original instructions were basically what the BMW diagnostics system showed. The MGR version seems to have been simplified somewhat.

EDIT 4 January 2021
This note follows a forum post regarding the often reported erratic fuel gauge issue.

Fuel gauges are frequently said to show far less tank inventory than is known to be present. Sometimes, the gauge rises or falls for no obvious reason. The way the fuel gauge operates gets a lot of discussion. Some say there’s a calculation involving the current fuel usage rate that causes the gauge to show levels different from what’s known to be in the tank. The flowing thread suggests perhaps the gauge needs a periodic ‘software reset’ to re-establish its accuracy. Perhaps there’s a bug?

Disclaimer: You conduct a Software Reset at your own discretion, but we do need more data on what this option does.


7 Temperatures and Speeds
7.0 Coolant/Engine temperature - changes every whole degree Centigrade. (eg: 021+ is 21C)
7.1 Ambient/Outside temperature - changes every 0.5 degree Centigrade. (eg.125/130/135 is 12.5/13.0/13.5C)
7.2 Engine speed / Current (RPM)
7.3 Vehicle speed / Current Speed (km/hour)

8 Values of 7.0 to 7.3 in HEX form (Unknown)

9 Battery
9.0 Battery Voltage (eg: 137 = 13.7v)

10 Country Code
This is just a list. There may be a code displayed for each, which I don't have. I haven't physically checked.
0 = Germany
1 = Great Britain
2 = USA
3 = Italy
4 = E (?)
5 = Japan
6 = France
7 = Canada
8 = Australia/ ** (?)

11.0 Unit code (?)

12.0 Not used

13.0 Gong test
This tests the lights on gong which chimes when you open the door. The same gong is used in the speed limit warning for models with the trip computer.

14.0-14.4 Error memory: if 000000 no error in memory

15.0 - 18.0 not used

19 Lock Status: unlocks functions in range 1-18 and 20.
19.0 Log1-On/Log1-Off Locks/Unlocks diagnostic regime: To access, press button when Log1-Off shows.
You've already done this section to access the data anyway.

20 Correction Factor for OBC Fuel Consumption Display
20.0 The Factor is displayed numerically in the form ABCD (Thousands/hundreds/tens/units)
The formula for the Factor = Indicated Consumption x 1000 / Measured Consumption

For more details on this see below.

21.0 Software Reset
Resets some OBC settings. Primarily an IPK factory reset in the event of a configuration error. It also resets any error in the ambient temperature sensor value and resets the Correction Factor to default in the fuel consumption calculator (Section 20). No significant changes will be brought about by a Software Reset.

EDIT 29 December 2021

The Software Reset function may be effective in fixing electronic 'glitches' in the fuel gauge, as evidenced by a single report (thus far) described here:


This completes the description of Diagnostic Mode functions.
If applicable, you may now drive the car with the selected display showing for the duration of the journey.

Turn off the ignition to exit Diagnostic Mode.

More on the Section 20: Correction Factor for OBC Fuel Consumption Display

The indicated consumption should be established by running the system for several hundred miles, preferably a thousand or so without resetting the OBC at any stage. The longer you allow the un-reset system to operate, the more 'accurate' is the indicated consumption. Determine the measured consumption using brim-to-brim calculations over a similar period.
Now calculate your more accurate factor using the formula above. These digits are what you insert for ABCD.

Press the button to show 20.1 which allows the units (D) to be set.
The display counts down from the current figure and cycles until you press at the required one.
This sets it and the display will advance to 20.2

20.2 This allows the 'tens' (C) to be set as above. When you press the set button, the display advances to 20.3

20.3 This sets the 'hundreds' (B) and then the 'thousands' (A). Each digit is set in succession by a single press.
After setting (A), the display advances to the next function (21.0)

Let's say that the display currently says you get 10km/l fuel consumption. However, you know from your brim to brim tests that it's somewhat lower than this. Let's say that every tank full of petrol (64.8 litres, or whatever you find it to be) allows you to travel 500km.

So the Measured Consumption is 500/64.8 = 7.72 km/l

Your computer is saying it's 10 ml/l so that's the Indicated Consumption.

The Correction Factor (using a calculator) is:

Indicated x 1000 / Measured
= 10 x 1000 / 7.72
= 1295 (forget any decimals)

So you replace the existing Factor with this one.
Go to test 20 and you'll see the existing Factor ('ABCD').
Change D to 5
Change C to 9
Change B to 2
Change A to 1 (if necessary) by following the routine described in the instructions.

If your display is in MPG, just use gallons and miles instead of litres and kilometres.

Now when you use the trip computer to display your fuel consumption, it will be much nearer the truth. Note that you must allow the computer to run a good while (1000km or 500 miles or so) without resetting it to get a meaningful result.


Last edited by T-Cut; 29th December 2021 at 22:35.. Reason: Some tidying up
T-Cut is offline   Reply With Quote