ECU Compensation Table – What is it? How to use it.
May 28, 2024An ECU compensation table/s gives us an extra dimension/s to our map (fuel, ignition, boost, TC etc) table. The extra dimensions give us more tuning resolution. We get to a more accurate calibration and in a wider range environmental and operating conditions. More optimal, more of the time.
Compensation Table Example
The ignition timing table. We have RPM against load on the table axis, the ignition timing number is in the table cell. This is a 3D map.
By adding/using a compensation table we can add another dimension to that ignition timing map.
We could use a signal from a knock sensor or knock sensor ECU to give us the fourth dimension. Depending on the voltage of that signal we could vary the amount of ignition retard we get. The more intense the knock, the higher the voltage, the more ignition is retarded by.
We could use a compensation table for intake temps. The higher the intake temp, generally speaking the more we should start looking at retarding ignition timing.
That is just two examples, in reality we could potentially use the compensation table for any input we wished be it MAP, EGT, AFR and so on. And some ECUs will allow multiple tables for the same map. If we add two compensation tables to a 3D map, we end up with a 5D map and so on.
More Complication – Parallel & Series 3D Correction Maps/Tables
The example above is for a 2D compensation map. In reality the only limit is the imagination of the ECU manufacturer. It’s quiet possible to have a 3D engine map which does not contain ignition timing/fuelling/boost etc in the cells instead it has another engine condition.
Another Example
We could have a 3D map which has MAP/engine load against RPM but instead of having ignition timing or injection duration as the value of the cells, we could have an additional condition, for example cylinder head temperature.
If we have X RPM, at Y Load and Z cylinder head temperature, we access map “XYZ”. And map XYZ could have AFR & EGT on the X and Y axis, with Ignition Timing being the value in the table cells.
In effect we have a 3D map giving us a gateway to another 3D map. We could call this “Series” compensation amps.
“Parallel” 3D compensation maps are also possible, Maxx ECU gives an excellent example here.
Whereas in a “Series” setup one 3D map is dependent on another, we can have two 3D maps for one thing, ignition timing for example and both can have an affect of the timing according to RPM and load.
The example Maxx gives is ethanol content. They have the normal 3D ignition map for 100 Octane fuel and another 3D map (also for timing) which has load vs ethanol content (instead of RPM) as the axis. The table cell contents being the ignition adjustment. This setup give the option to adjust timing based on ethanol and load on the engine at the same time.
They give yet another example of “parallel” maps where there is a complete ignition map (RPM vs load with timing) for normal fuel. And another complete ignition map for 100% ethanol. The clever bit is how they connect the two 3D tables using a 2D table.
The 2D table has percentage of ethanol in the fuel corresponding to how much of the total ignition adjustment (the difference between the two maps in the same cell) to do. If ethanol is 20% of the fuel they could add 10% of the total adjustment (for 100% ethanol), 50% mix and bring in 40% of total adjustment and so on. Very clever.
I think the series table are only for OEMs and top end motorsport teams. If we have a 16×16 table and each cell in the table leads to a 16×16 table, that’s 65,000 cells that need populating for just the ignition map.
For parallel we have two 16×16 tables total and perhaps and extra 2D table that links them both for a total of 527 cells. Much more manageable.
Wrapping up Compensation Tables
Hopefully this article has given you an idea of what calibration/compensation tables are, how they are used and also the different types, from a single to 2D up to 3D “Series” type tables.