Wolf66

15-06-07, 21:53

As MaxiBoost asked me, if I could share all the hex addresses which are important for tuning,

i found the time to do that. So here it goes.

The following example is made with original Q4 101.04 chip.

There are 7 maps which are important:

1. Injection map

2. Ignition map

3. Turbo pressure map

4. Turbo pressure limiter map

5. WOT (wide open throttle) injection enrichment map

6. Injection timing map

7. RPM limiter map

1. INJECTION MAP

---------------------

This map controls, how long injectors are open (how much gasoline enters in the combustion chamber).

http://www.wolf66.slyip.com/Injection.jpg

This map has 16x16 fields. There are 16 RPM breakpoints and 16 air density breakpoints.

COLUMNS are RPM breakpoints. Address is at hex 7000-701F. In order to calculate one breakpoint,

you have to sum two 8 bit values and divide the number 1875000 with sum to get RPM value:

1. breakpoint:

address hex 7000: value 1 hex = 1 dec *256 = 256

address hex 7001: value 20 hex = 32 dec

256+32=288 1875000/288 = 6510 RPM

16. breakpoint:

address hex 701E: value 9 hex = 9 dec *256 =2304

address hex 701F: value 83 hex = 131 dec

2304+131=2435 1875000/2435 = 770 RPM

ROWS are air density breakpoints (absolute pressure) in bars. Address is at hex 7020-703F.

In order to calculate one breakpoint you have to sum two 8 bit values and divide them with 1032

to get the air density (absolute pressure) in bars:

1. breakpoint:

address hex 7020: value 0 hex = 0 dec *256 =0

address hex 7021: value CC hex = 204 dec

0+204= 204/1032=0.2 bar (-0.8 bar vacuum)

16. breakpoint:

address hex 703E: value 8 hex = 8 dec *256 =2048

address hex 703F: value 77 hex = 119 dec

2048+119= 2167/1032 =2.1 bar

Now at address hex 7040 follow 256 values for injection time (for every RPM breakpoint

and every airdensity point). These values are only 8 bit. To get the injector

opening duration in miliseconds, you have to make the following calculation :

(dec value*0.064)+1

2. IGNITION MAP

-------------------

This map controls the ignition advance.

http://www.wolf66.slyip.com/Ignition.jpg

This map has 16x10 fields. There are 16 RPM breakpoints and 10 airdensity breakpoints.

COLUMNS are RPM breakpoints. Address is at hex 7230-724F. Calculation

is the same as with injection map RPM breakpoints.

ROWS are air density breakpoints (absolute pressure) in bars. Address is at hex 7250-7263.

The calculation is the same as with injection map airedensity breakpoints.

At address hex 7270 follow ignition advance values. These values are 8 bit.

To get the ignition advance in degrees BTDC (before piston top dead center).

To get the ignition advance in degress you have to make the following calculation:

dec value*0.25

3. TURBO PRESSURE MAP

-------------------------

This map controls the turbo pressure. This is achieved via duty cycle

of opening the overboost (pierburg) valve.

http://www.moj-album.com/slike/5884310/GbBA1UzPI0y8inTV.jpg

This map has 16x4 fields. There are 16 RPM breakpoints and

4 breakpoints for TPS (throttle position sensor) opening angle in degrees.

COLUMNS are RPM breakpoints. Addres is at hex 75A0-75BF. Calculation is the same

as with injection map RPM breakpoints.

ROWS are breakpoints for TPS opening angle in degrees (how much you push the throttle).

Address is at hex 75C0-75C7. There are two different calculations:

for angles<30 degrees: (dec value*0.1848)-1.41

for angles>30 degrees: (dec value*0.7058)-90

1. breakpoint

address hex 75C0: value 0 hex = 0 dec

address hex 75C1: value A8 hex = 168 dec

0+168= 168*0.1848= 31.05-1.41= 29.64 degrees

4. breakpoint

address hex 75C6: value 0 hex = 0 dec

address hex 75C7: value E0 hex = 224 dec

0+224= 224*0.7058= 158.10-90= 68.1 degrees

At address hex 75C8 follow the duty cycle values. These values are 8 bit.

To get the duty cycle values in %, you have to make the following calculation:

((dec value*100)/256)*2

Max value for this map is 128 and not 8 bit max value of 256, as (128*100)/256)*2= 100%,

so the value of dec 128 means the 100% duty cycle or 100% opening of the overboost valve

which means the highest turbo pressure. But as the turbo pressure build up is dependant

of turbo charger type, wastegate actuator stiffness and RPMs, there is no logical calculation

for altering the values to get the desired turbo pressure. You have to try different values

and make test runs.

4. TURBO PRESSURE LIMITER

----------------------------

This map controls max turbo pressure which is allowed before ECU cuts the ignition.

http://www.moj-album.com/slike/5884310/_OEn2YX2AnCP213n.jpg

This map is 16x2 fields. There are 16 RPM breakpoints. This map shares the same RPM breakpoints

with TURBO PRESSURE map.

COLUMNS are RPM breakpoints. Calculation is the same as with injection map RPM breakpoints.

There are 2 ROWS. Second row is the max pressure limit. When this pressure is reached,

ECU will cut the ignition. First row is max pressure set. When ECU cuts the ignition due to

reached max pressure, it will start working again, when the set value is reached.

At address hex 7650 follow the pressure limit and pressure set values. These values are 8 bit.

To get the pressure limit and pressure set values in bars you have to divide dec value with 170.

5. WOT (wide open throttle) INJECTION ENRICHMENT MAP

------------------------------------------------------

This map controls the fuel enrichment at WOT (wide open throttle).

http://www.moj-album.com/slike/5884310/b26SGE7suTuQtt2h.jpg

This map is 16x1 field. There are 16 RPM breakpoints. This map shares the same RPM breakpoints

with IGNITION map.

COLUMNS are RPM breakpoints.

There is one ROW. It represents the factor which is multiplied with injection time at WOT.

At address hex 71D0-71DF follow the fuel enrichment factor values. These are 8 bit values.

In order to get the factor value, you have to divide dec value with 128.

Example:

address hex 71DA (11th value - 3200 RPM breakpoint): value 9D hex= 157 dec

157/128= 1.23

So at WOT at 3200 RPMs (here the turbo pressure starts to raise rapidly), there

must be highest fuel enrichment at full throttle. ECU multiply the value

from injection map (selected accordingly to RPM and pressure) with factor 1.23.

This means 23% enrichment at WOT.

6. INJECTION TIMING MAP

--------------------------

This map controls the injection timing (at what degree of turn of the crankshaft

injectors start to open)

http://www.moj-album.com/slike/5884310/Ng5ULCPFUmfVr5D6.jpg

This map is 16x1 field. There are 16 RPM breakpoints. This map shares the same RPM breakpoints

with IGNITION map.

COLUMNS are RPM breakpoints.

There is one ROW. It represents the angle of the crankshaft where injectors start to open.

At address hex 7200-720F follow angle values. These are 8 bit values. In order to get

the angle values in degrees, you have to make the following calculation:

450+90*(128-dec value)/32

7. RPM LIMITER MAP

----------------------

This map controls the rev limiter.

http://www.moj-album.com/slike/5884310/AS_vhn5Ue2g5OyxI.jpg

There are two values. At first value ECU cuts the ignition and at second

start to work again. These are 16 bit values. You must divide 1875000 with dec value

to get the RPM.

First value is at address hex 7497-7498

Second value is at address hex 7499-749A

Address hex 7497: value hex 1= dec 1*256 =256

Address hex 7498: value hex 14= dec 20

256+20= 276 1875000/276= 6793 RPM

Example to raise RPM limit to 7500 RPM:

1875000/7500= 250

250/256= 0 dec = 0 hex

remains 250 dec = FA hex

You have to alter the value at address hex 7497 to 0

and value at hex 7498 to FA.

You have to alter the second value accordingly (for example to 7300 RPM)

------------------------------------------------------------------

If you want to make the changes and raise the power safely, you have to

test the new chip with wideband lambda and some sort of knock sensing.

I use LM-1 from Innovative motorsports. I'm also logging all

significant sensors (TPS, knock, RPM, boost, ATS). With that

in mind you can raise the power of individual car well beyond the power

of "of the shelf" chips, as every engine is unique in its own way and

you can make the chip which is best for particular engine.

i found the time to do that. So here it goes.

The following example is made with original Q4 101.04 chip.

There are 7 maps which are important:

1. Injection map

2. Ignition map

3. Turbo pressure map

4. Turbo pressure limiter map

5. WOT (wide open throttle) injection enrichment map

6. Injection timing map

7. RPM limiter map

1. INJECTION MAP

---------------------

This map controls, how long injectors are open (how much gasoline enters in the combustion chamber).

http://www.wolf66.slyip.com/Injection.jpg

This map has 16x16 fields. There are 16 RPM breakpoints and 16 air density breakpoints.

COLUMNS are RPM breakpoints. Address is at hex 7000-701F. In order to calculate one breakpoint,

you have to sum two 8 bit values and divide the number 1875000 with sum to get RPM value:

1. breakpoint:

address hex 7000: value 1 hex = 1 dec *256 = 256

address hex 7001: value 20 hex = 32 dec

256+32=288 1875000/288 = 6510 RPM

16. breakpoint:

address hex 701E: value 9 hex = 9 dec *256 =2304

address hex 701F: value 83 hex = 131 dec

2304+131=2435 1875000/2435 = 770 RPM

ROWS are air density breakpoints (absolute pressure) in bars. Address is at hex 7020-703F.

In order to calculate one breakpoint you have to sum two 8 bit values and divide them with 1032

to get the air density (absolute pressure) in bars:

1. breakpoint:

address hex 7020: value 0 hex = 0 dec *256 =0

address hex 7021: value CC hex = 204 dec

0+204= 204/1032=0.2 bar (-0.8 bar vacuum)

16. breakpoint:

address hex 703E: value 8 hex = 8 dec *256 =2048

address hex 703F: value 77 hex = 119 dec

2048+119= 2167/1032 =2.1 bar

Now at address hex 7040 follow 256 values for injection time (for every RPM breakpoint

and every airdensity point). These values are only 8 bit. To get the injector

opening duration in miliseconds, you have to make the following calculation :

(dec value*0.064)+1

2. IGNITION MAP

-------------------

This map controls the ignition advance.

http://www.wolf66.slyip.com/Ignition.jpg

This map has 16x10 fields. There are 16 RPM breakpoints and 10 airdensity breakpoints.

COLUMNS are RPM breakpoints. Address is at hex 7230-724F. Calculation

is the same as with injection map RPM breakpoints.

ROWS are air density breakpoints (absolute pressure) in bars. Address is at hex 7250-7263.

The calculation is the same as with injection map airedensity breakpoints.

At address hex 7270 follow ignition advance values. These values are 8 bit.

To get the ignition advance in degrees BTDC (before piston top dead center).

To get the ignition advance in degress you have to make the following calculation:

dec value*0.25

3. TURBO PRESSURE MAP

-------------------------

This map controls the turbo pressure. This is achieved via duty cycle

of opening the overboost (pierburg) valve.

http://www.moj-album.com/slike/5884310/GbBA1UzPI0y8inTV.jpg

This map has 16x4 fields. There are 16 RPM breakpoints and

4 breakpoints for TPS (throttle position sensor) opening angle in degrees.

COLUMNS are RPM breakpoints. Addres is at hex 75A0-75BF. Calculation is the same

as with injection map RPM breakpoints.

ROWS are breakpoints for TPS opening angle in degrees (how much you push the throttle).

Address is at hex 75C0-75C7. There are two different calculations:

for angles<30 degrees: (dec value*0.1848)-1.41

for angles>30 degrees: (dec value*0.7058)-90

1. breakpoint

address hex 75C0: value 0 hex = 0 dec

address hex 75C1: value A8 hex = 168 dec

0+168= 168*0.1848= 31.05-1.41= 29.64 degrees

4. breakpoint

address hex 75C6: value 0 hex = 0 dec

address hex 75C7: value E0 hex = 224 dec

0+224= 224*0.7058= 158.10-90= 68.1 degrees

At address hex 75C8 follow the duty cycle values. These values are 8 bit.

To get the duty cycle values in %, you have to make the following calculation:

((dec value*100)/256)*2

Max value for this map is 128 and not 8 bit max value of 256, as (128*100)/256)*2= 100%,

so the value of dec 128 means the 100% duty cycle or 100% opening of the overboost valve

which means the highest turbo pressure. But as the turbo pressure build up is dependant

of turbo charger type, wastegate actuator stiffness and RPMs, there is no logical calculation

for altering the values to get the desired turbo pressure. You have to try different values

and make test runs.

4. TURBO PRESSURE LIMITER

----------------------------

This map controls max turbo pressure which is allowed before ECU cuts the ignition.

http://www.moj-album.com/slike/5884310/_OEn2YX2AnCP213n.jpg

This map is 16x2 fields. There are 16 RPM breakpoints. This map shares the same RPM breakpoints

with TURBO PRESSURE map.

COLUMNS are RPM breakpoints. Calculation is the same as with injection map RPM breakpoints.

There are 2 ROWS. Second row is the max pressure limit. When this pressure is reached,

ECU will cut the ignition. First row is max pressure set. When ECU cuts the ignition due to

reached max pressure, it will start working again, when the set value is reached.

At address hex 7650 follow the pressure limit and pressure set values. These values are 8 bit.

To get the pressure limit and pressure set values in bars you have to divide dec value with 170.

5. WOT (wide open throttle) INJECTION ENRICHMENT MAP

------------------------------------------------------

This map controls the fuel enrichment at WOT (wide open throttle).

http://www.moj-album.com/slike/5884310/b26SGE7suTuQtt2h.jpg

This map is 16x1 field. There are 16 RPM breakpoints. This map shares the same RPM breakpoints

with IGNITION map.

COLUMNS are RPM breakpoints.

There is one ROW. It represents the factor which is multiplied with injection time at WOT.

At address hex 71D0-71DF follow the fuel enrichment factor values. These are 8 bit values.

In order to get the factor value, you have to divide dec value with 128.

Example:

address hex 71DA (11th value - 3200 RPM breakpoint): value 9D hex= 157 dec

157/128= 1.23

So at WOT at 3200 RPMs (here the turbo pressure starts to raise rapidly), there

must be highest fuel enrichment at full throttle. ECU multiply the value

from injection map (selected accordingly to RPM and pressure) with factor 1.23.

This means 23% enrichment at WOT.

6. INJECTION TIMING MAP

--------------------------

This map controls the injection timing (at what degree of turn of the crankshaft

injectors start to open)

http://www.moj-album.com/slike/5884310/Ng5ULCPFUmfVr5D6.jpg

This map is 16x1 field. There are 16 RPM breakpoints. This map shares the same RPM breakpoints

with IGNITION map.

COLUMNS are RPM breakpoints.

There is one ROW. It represents the angle of the crankshaft where injectors start to open.

At address hex 7200-720F follow angle values. These are 8 bit values. In order to get

the angle values in degrees, you have to make the following calculation:

450+90*(128-dec value)/32

7. RPM LIMITER MAP

----------------------

This map controls the rev limiter.

http://www.moj-album.com/slike/5884310/AS_vhn5Ue2g5OyxI.jpg

There are two values. At first value ECU cuts the ignition and at second

start to work again. These are 16 bit values. You must divide 1875000 with dec value

to get the RPM.

First value is at address hex 7497-7498

Second value is at address hex 7499-749A

Address hex 7497: value hex 1= dec 1*256 =256

Address hex 7498: value hex 14= dec 20

256+20= 276 1875000/276= 6793 RPM

Example to raise RPM limit to 7500 RPM:

1875000/7500= 250

250/256= 0 dec = 0 hex

remains 250 dec = FA hex

You have to alter the value at address hex 7497 to 0

and value at hex 7498 to FA.

You have to alter the second value accordingly (for example to 7300 RPM)

------------------------------------------------------------------

If you want to make the changes and raise the power safely, you have to

test the new chip with wideband lambda and some sort of knock sensing.

I use LM-1 from Innovative motorsports. I'm also logging all

significant sensors (TPS, knock, RPM, boost, ATS). With that

in mind you can raise the power of individual car well beyond the power

of "of the shelf" chips, as every engine is unique in its own way and

you can make the chip which is best for particular engine.