Introduction to tuning
Working with the ECU memory
Once you have read the content of the ECU (Refer to Reading and writing ECU), you will need a tuning software to interpret the data, edit variables, maps and tune the car.
Without a tuning software, you would be stuck with a binary file filled with a bunch of bytes without any meaning. We suggest using one of these two software : TunerPro or WinOLS
With your file loaded on a tuning software, you can then use a definition file that will define the maps information (location, axis, values coefficients, etc.)
TunerPro is free and easy-to-use. It uses .XDF file format for definition files. These are files generated by enthusiasts. For the moment, due to the lack of .XDF for the 2.5 engine, I would recommend to use WinOLS instead.
WinOLS is not free and can be pricey for enthusiasts, there are cracked versions laying around on the internet. WinOLS offer powerful features and is pretty much a standard in the tuning industry. It uses .A2L file format, which are the OEM definition files. This makes tuning more accessible since .A2L are easier to find compared to .XDF files.
Creating a new WinOLS project
When you load your binary file, WinOLS will scan the file and detect the checksums blocks. (On most cracked version, ME7.1.1 checksums are not suported. ME17.5 checksum are supported)
WinOLS will scan the file to find the project properties (ECU part number, processor type, software number, car identification, etc.), you can manually fill the project properties after.
Once the properties are filled, a new project will be created. At this point, you should see the HEX viewer/editor:
For the moment, we only have binary data with no maps defined. We can now proceed to the next step : using definition file to define our maps.
Using the damos (.A2L)
Start by downloading the definition file that match your ECU part number and with the closest software number that match your ECU. Every .A2L file are generated/made for a specific .HEX file. If you load the .A2L on your project, there are high chances that locations do not match.
Most .A2L file will be in German. If you wish to translate the file, you can use A2L translate
Load the .HEX file on WinOLS. After the new project is created, press Control-D to load the .A2L file. This will prompt the A2L import window.
Choose your A2L file, WinOLS will load the A2L and will ask you which map you wish to import, you can click on ALL.
Now you should have a project will all the map defined:
Transfering the maps to our binary file
WinOLS offer the possibility to connect two projects together. This allow for quick comparison between our raw undefined project and the .HEX/.A2L pair that is fully defined. We can easily transfer maps structures. Click on the connect button
Select the project you want to connect to. You will notice, that both projects does not seem to align correctly. We need to fix the offsets between the two files. A quick way to do is to search for the ECU part number (07K906032 / 07K906055)
With the part number selected, click on the match button, it will adjust the offset so the selected text match on both windows:
Scroll the results until you see both windows align.
Green means it is the same value on both window. Blue mean it is lower than on the other window. And Red means it is higher.
Now you can select a map you wish to transfer, right click on it and click on "Transfer map..."
This will transfer the map architecture on your undefined project.
This method works well when you are comparing two files that are alike. In some instances, they might not align, or you might not have a definition file that match well with your file. In these cases, you can look at hex numbers that are the same around the map you wish to transfer, you can select those number and use the match button again to change the offset. On complex maps (map that have axis), you can select the axis and match it. The axis often have the same values, and they can be used as a reference for setting the proper offset.
If you want to ensure you have the best definition file that match your project, you can search for the ECU type, for example: ME7.1.1:
On the above picture, we can see the undefined and the defined file are very close. One is a S11036_28AC and the other is a S11036_28AB. On this example, the maps will almost align through the whole file without having to play with the offsets too much.
Tuning 101 (The basics)
Unfortunately, being able to identify the maps is not enough for tuning. It is important to understand the base concepts of engine tuning in order to calibrate the maps. The basics will covered in this section.
Engine operation (4-stroke)
Most car engine are 4-stroke engine. It takes 4 strokes to complete a full combustion cycle and 2 crankshaft rotation (720 degrees).
TDC = Top dead center (when the piston reached his highest point in the cylinder).
1. Intake stroke
Exhaust valve is closed. Intake valve is open. The piston draws in fresh air.
On a ported injection fuel system, fuel is added to the intake port near the end of the piston stroke. On a direct injection setup, fuel will be added later near the end of the compression stroke.
2. Compression stroke
Intake and exhaust valve are closed. The piston use energy to compress the air-fuel mixture. The pressure rise while the cylinder volume get smaller.
Before the piston reach TDC, the spark event occurs ; the air-fuel mixture get ignited.
3. Explosion / power stroke
Of all four strokes, this is the only one that produce energy. As the air-fuel mixture burn, it starts to expand, creating a pressure that push the piston down. Both valves are still closed.
4. Exhaust stroke
Exhaust valve is open, intake valve is closed. The piston push the exhaust gases out of the cylinder. Then the combustion cycle repeat itself.
The more cylinders you have, the more often you will get explosion events. A full cycle takes 720 degrees to complete. An 8 cylinders engine will make an explosion every 90° (720 / 8), this way we can say a V8 engine start at quarter turn (90°/360°). A bigger engine usually runs smoother since they produce more firing event. The faster an engine makes revolution (Ex. 8000RPM+), the shorter the combustion cycle last. Meaning you get less time to inject fuel at high RPMs and might need to upgrade to bigger injectors to flow enough fuel in such a short time window.
Gasoline, octane & detonation
Gasoline octane level is an important factor in the tuning process. It's important to understand that gasoline takes time to burn and doesn't explode instantly like the TNT you see on comic shows
Any fuel have an auto-ignition point, when they get exposed to excessive heat, it starts burning on its own without any sparks. This is an event we want to avoid, and it goes by the name "detonation" or "knock". The octane level in short is the resistance of the fuel to auto-ignition. A high octane fuel (91+) can withstand higher pressure and heat levels. Engine with high power output, high compression ratio or equipped with forced induction will usually require higher octane level to avoid "detonation".
How detonation occurs and why it's bad
Engine produce a lot of heat to a point where we call them thermal engine. Compressing gases produces heat, when the molecules get compacted together, it produces friction which result in heat. This is why an engine with high pressure level tends to knock more easily since they generate more heat The spark plug ignite the air-fuel molecules closer to itself, then those molecules expand and dissipate through the rest of the other molecules in the combustion chamber. When detonation occurs at the same time of a spark event, it creates two different pockets in the cylinder. Near the piston we have molecules burning and rising in pressure, and near the spark plug we have molecules rising in pressure. Those two pockets will inevitably meet and collides together, which will result in turbulence, vibration and that infamous "knocking" sound. It's like two shockwaves colliding together. That collision can cause serious damage to the engine.
One way to deal with detonation is to make our air-fuel ratio richer ; the extra fuel will absorb some of the heat. When the air enters into the engine, the engine control unit (ECU) measure / calculate the mass of air, the ECU then use the air-fuel ratio to calculate the required quantity of fuel.
Air-fuel ratio (AFR) is important to get the most efficient combustion in terms of pollution and fuel economy. It's also useful to control combustion chamber temperature, as stated above.
The stoichiometric ratio is the ratio that define the most perfect combustion in terms of pollution. It's different for every fuel, but for gasoline, this ratio would be 14.7:1. For every 14.7 molecule of air (not oxygen, air is composed of about 21% oxygen), we need 1 molecule of gasoline to get a perfect combustion.
A rich mixture would be anything under 14.7:1 (more gas, ex: 12.7:1). A lean mixture would be anything over 14.7:1 (less gas, ex: 15:1).
If we are looking to have a better control over temperature of the mixture, we would go richer, like 13:1. If we are going downhill, we would go with a lean mixture (ex. 15:1) since we don't need much fuel to keep the engine going.
Most people have the wrong assumption to believe that richer mixture will give more performance. It ALLOWS for more performance, but it won't give many gains by itself.
You can see an engine, like a huge pump. The VE define how efficient an engine uses his total displacement. For example, we can have two different engines of 2.5L (2500cc) with the same revolution speed, both tuned by the same person, but one engine will show a higher number. The one with bigger numbers have a better VE
They are various way to improve the VE. An easy way is to add forced induction (turbocharger, supercharger, procharger) or increase the boost if your turbo / engine can support it. You can improve the air flow through modification to the valvetrain (cams, variable valve timing system : VTEC, VANOS, etc.), intake manifold optimization (variable runner length, plenum size, throttle body size), individual throttle bodies (ITB), etc.
Ignition advance will give the most significant gains if you didn't make any changes to your VE.
Fuel doesn't burn instantly, it requires time and this is why we have to ignite the mixture before the piston reach TDC. The ignition advance defines the moment when we start the ignition event. 12° BTDC would be 12° before the piston reach TDC.
As mentioned earlier, the spark start at the tip of the spark plug, it ignites the molecules closer to it and then the combustion propagate through the whole combustion chamber. When there is more air (higher VE), the mixture get denser, the molecules are closer to each other, it makes the combustion faster. On the contrary, if the cylinder is almost empty, the molecules are more dispersed, and it takes more time for the fire to propagate into the whole combustion chamber, in this case we would increase the ignition advance to make sure the fire has time to propagate everywhere.
The denser the mixture gets, the shorter it takes for the fire to propagate and the less ignition advance we need. To resume, at high RPM under load, ignition advance (°) is lower than at idle or cruise.
Fine-tuning the ignition advance is a crucial step. If we put too much advance, pressure will rise too soon, the piston will force against that pressure and we would lose power. It could also cause an increase in pressure that would result in detonation / knocking.
If we wait too much to ignite the mixture, instead of pushing the piston down, the combustion would "follow" the piston ; almost no power.
The optimal ignition advance degree is called MBT. This is the point where we get the most torque out of the engine at a specific state (rpm and load). In general, most cars are knock-limited. The engine knock way before we can reach MBT. To get closer to it, we switch to higher fuel octane, and we make the air-fuel mixture richer. That's why most tunes on a naturally aspirated car require you to run on higher octane.