What are maps? Maps are lookup tables designed to make a Motronic ECU run
faster. Preloaded responses to engine conditions are stored in these maps.
Given that engine parameters Like "RPM"
are measured [or calculated] by the Motronic ECU, a map is read to determine the
correct "FUEL" level.
A map is not just
tabulated data but a complex data structure as you will see below. Here is an example of a simple 2D
(two dimensional) map. It is from a Porsche 911 and it is
for Fuel at Wide Open Throttle. Fuel level vs. engine rpm is stored in this map. The map consists of 20
bytes of data highlighted in Orange.
Definition:
Formatted Map
The terms "Formatted Map" or "Map
Format ML3.1+" are used at www.motronic.ws
to describe the map format that became standardized in 1984 with the
introduction of the BOSCH Motronic ML3.1 series ECU. The "Formatted
Map" structure was used for over a decade in new Motronic designs
and was gradually fazed-out with the newer OBDII designs. |

Example -
Porsche 911
Fuel Map - Wide Open Throttle
3E 14 0A 08 25 28 05 0E 03 07 04 01 01 01 01 01 01 01 01 01 03
60
7A 79 7D 7F 8D 8D 7C 7D
7E 7F 80 82 84 85 87 88 89 8A 8B 87
Red
Type designator
Blue Size - 14h
or 20
Green 20 data values - for this example it is engine RPM values
Orange 20 data values - for this example it is fuel levels


Example
#2 - Porsche 911
Fuel Map - Idle
Detailed Map Structure
Porsche 911 Fuel Map at Idle

Column A below is the row numbers 1 to 22
Column B is the raw code
Column C is the converted data
Column D is the conversion formulas
| row 1 |
3Eh |
First
digit - describes the map type - IRAM (or Descriptor) |
| row 2 |
0Ah |
Second digit - Hexadecimal "A" - this is 10 decimal. 10 RPM
values and 10 Fuel levels. |
| row 3 |
07h |
360 |
=C4-HEX2DEC(B3)*40 |
Rows 3 through 12, there are 10 engine RPM values The base number, row
12, is decremented by each of the previous rows 11 through row 3. Working up.
Each hex number (converted to decimal) is multiplied
by 40. Then it is subtracted from the row below it.
The base number, row 12, is created by subtracting hex number from
256 then multiplied by 40 . |
| row 4 |
03h |
640 |
=C5-HEX2DEC(B4)*40 |
| row 5 |
08h |
760 |
=C6-HEX2DEC(B5)*40 |
| row 6 |
18h |
1080 |
=C7-HEX2DEC(B6)*40 |
| row 7 |
03h |
2020 |
=C8-HEX2DEC(B7)*40 |
| row 8 |
05h |
2160 |
=C9-HEX2DEC(B8)*40 |
| row 9 |
05h |
2360 |
=C10-HEX2DEC(B9)*40 |
| row 10 |
05h |
2560 |
=C11-HEX2DEC(B10)*40 |
| row 11 |
05h |
2760 |
=C12-HEX2DEC(B11)*40 |
| row 12 |
B5h |
2960 |
=(256-HEX2DEC(B12))*40 |
The base
number - Maximum engine RPM |
| row 13 |
6Dh |
109 |
=HEX2DEC(B22) |
Rows 13 through 22, there are 10 Fuel levels
©2007 FR Wilk |
| row 14 |
6Ah |
106 |
=HEX2DEC(B22) |
| row 15 |
6Ah |
106 |
=HEX2DEC(B22) |
| row 16 |
6Ah |
106 |
=HEX2DEC(B22) |
| row 17 |
6Ah |
106 |
=HEX2DEC(B22) |
| row 18 |
6Ah |
106 |
=HEX2DEC(B22) |
| row 19 |
6Ah |
106 |
=HEX2DEC(B22) |
| row 20 |
6Ah |
106 |
=HEX2DEC(B22) |
| row 21 |
6Ah |
106 |
=HEX2DEC(B22) |
| row 22 |
6Ah |
106 |
=HEX2DEC(B22) |

Fuel vs. Engine RPM Chart - Fuel Map at Idle - Porsche 911

