BMW E46 M3
Legend Eternal
BMW Garage BMW Meets Register Search Today's Posts Mark Forums Read
Technical Sections Coding / Tuning / Audio-Video / Electronics

Post Reply
Thread Tools Search this Thread
      03-31-2020, 11:23 AM   #1

Join Date: Feb 2007

iTrader: (0)

How to Modify Oil Temperature Warmup Light Thresholds

Full credit to p0lar for this writeup.

The E46 M3 are equipped with programmable multi-function lights radially-aligned with the tachometer. By default, these lights are used to indicate the oil temperature as the car warms up, extinguishing one by one as the oil temperature exceeds each positional threshold. The lights then become repurposed as shift lights (factory functionality) for the SMG-equipped vehicles. We'll explain how to change the positional threshold for each light and offer a few custom variations for those who wish to make changes to their own DME.

Part of the rationale to make these changes is that the default behaviour for the non-CSL E46 M3 is to have the last positional threshold set to 60C; in other words, the last light goes out at 60C. Actual operating temperature of the engine, in terms of the oil at least, is closer to 82-83C. Many people feel that by the time the last light is out, the car is ready to redline. While it may not be dangerous to the engine's internals, these engines are known for sensitive rod bearings. Taxing the engine at redline some 20C+ below actual operating temperature simply cannot be in its best interest.

This modification alerts the driver that the engine has reached a higher pre-set determination for the oil temperature by extinguishing the last light later in the warm-up cycle. The CSL was configured to extinguish the last light at 80C, which is very near to actual engine-operating temperature.

The first thing to understand is where to find the 7-byte configuration values for these variables within your DME. To do this, you MUST know what version your DME is. Please see this thread about how to make that determination.

Name:  Screen Shot 2020-03-31 at 8.17.28 AM.png
Views: 209
Size:  156.9 KB

A typical map for a 6MT-equipped M3 would look as follows:

6C 62 58 4E 44 3A 30
A typical map for a SMG-equipped M3 would look as follows:

6C 62 58 4E 44 3A 00
A typical map for a SMG-equipped M3 CSL would look as follows:

80 76 6C 62 58 4E 00
To simplify the meaning of this, each temperature threshold is calculated by subtracting 48C from each value once converted to decimal, in reverse order.

0x80 = 128 - 48C = 80C
0x76 = 118 - 48C = 70C
0x6C = 108 - 48C = 60C
0x62 = 98 - 48C = 50C
0x58 = 88 - 48C = 40C
0x4E = 78 - 48C = 30C
0x44 = 68 - 48C = 20C
0x3A = 58 - 48C = 10C
0x30 = 48 - 48C = 0C
0x00 = 0 - 48C = -48C
To alter these values, decide what thresholds are desired and make the necessary calculations or use the values above and re-insert at the desired positions. They must be sequential, from largest to smallest, however.

So, for example, if you wanted to calibrate the oil temp warmup lights to the markings on the tachometer, i.e. 4.5k RPM = 45C, 5.0k RPM = 50C, 5.5k RPM = 55C ... 7.5k RPM = 75C, you might set them as follows:

75C + 48C = 123 = 0x7B
70C + 48C = 118 = 0x76
65C + 48C = 113 = 0x71
60C + 48C = 108 = 0x6C
55C + 48C = 103 = 0x67
50C + 48C = 98 = 0x62
45C + 48C = 93 = 0x5D
The resultant code substitution would then be:

7B 76 71 6C 67 62 5D

Other alternate code substitutions:

Name:  Screen Shot 2020-03-31 at 8.21.16 AM.png
Views: 310
Size:  64.0 KB
Appreciate 0
Post Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

All times are GMT -5. The time now is 02:43 PM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.,,,,,,,,, logo and trademark are properties of BIMMERPOST