
Map-Based Tuning: What Are Those 80+ Maps Inside the ECU?
Every serious tune touches hundreds of multi-dimensional tables. What they control, what they look like, and why a tuning box only fakes two or three of them.
May 6, 2026 by Leo Efimow
Open the calibration of a modern BMW Steuergerät (ECU) — a "Datenstand" — in a tool like WinOLS, and you will not see a friendly UI or a list labeled "Stage 1, Stage 2, Stage 3." You will see a directory of several thousand tables. Of those, in a typical Bosch MG1 calibration for a B48 engine, more than 80 Kennfelder (maps) are directly relevant to combustion, plus more for transmission, exhaust aftertreatment and diagnostics. This is the actual material a software tune works on — and the reason a plug-and-play box that only fakes a single sensor signal cannot possibly produce the same result.
What a Kennfeld actually is
A Kennfeld (map) is a multi-dimensional lookup table. The input axes carry operating values the Steuergerät always knows: engine speed, relative load, intake air temperature, coolant temperature, lambda value, gear number, and so on. The cells contain the target values the Steuergerät should compute or output for that particular combination: an injection quantity in milligrams per stroke, an ignition angle in degrees before TDC, a boost target in millibar, a torque request in newton-meters.
A classic ignition map is two-dimensional, typically with a resolution of 16×16 or 20×20 grid points. The RPM axis runs from idle to about 7,000 rpm, the load axis from 0 to 100% relative cylinder fill. At each intersection sits an ignition angle — for example 8° BTDC at 1,500 rpm and 30% load, 24° BTDC at 4,000 rpm and 80% load. A boost target map is structured the same way: two input axes, one target table, in this case in millibar absolute or relative pressure. More complex maps have three or four input axes and are shown in some tools as stacked 2D tables or as a 3D surface.
Between the grid points, the Steuergerät uses linear interpolation: when the current operating point falls between cells, the target value is computed proportionally from the four surrounding nodes. This happens several thousand times per second. The map is not a static document, it is a data structure read in real time by hardware-near code.

The most important map families
On modern BMW control units, the combustion-relevant maps fall into a handful of large families. The list below shows the most important ones — each family typically contains several individual tables for different operating modes (cold, warm, full load, part load, sport mode).
| Family | What it controls | Typical input axes |
|---|---|---|
| Ignition timing maps | Spark angle in degrees BTDC | RPM × load |
| Injection quantity maps | Injection duration per stroke | RPM × load (× lambda) |
| Injection timing | Start of injection relative to TDC | RPM × load |
| Boost target | Target manifold absolute pressure | RPM × torque request |
| Wastegate position | Bypass opening percentage | RPM × boost differential |
| Torque limiter | Maximum allowed torque | RPM × gear × temperature |
| Lambda target | Target mixture (lean/rich) | RPM × load |
| Knock retard | Spark pull-back on knock event | RPM × load × knock sensor |
| EGT limiter | Exhaust temperature protection | RPM × load × T-exhaust |
| Overrun cut | Fuel cut on closed throttle | RPM × pedal value |
These ten families alone yield far more than ten individual tables in a typical Bosch MG1 calibration, because many families exist multiple times for different operating modes. On top come maps for Variocam/Valvetronic, EGR rate, particulate filter regeneration, NOx storage, electric pump, thermal management and diagnostic thresholds — easily totaling 80 to 120 tables a professional tuner has to be able to find and interpret.
Protection functions are also Kennfelder
A common misconception: the protection functions of the engine — knock retard, exhaust gas temperature limiter, torque cut on overheat — are not separate "modules" sitting next to the maps. They are themselves implemented as maps. Knock retard, for example, is a table that defines, depending on RPM and load, by how many degrees ignition is pulled back when a knock event is detected. The EGT protection curve is a table that, above a certain exhaust temperature, lowers the maximum allowed torque request — gently at first, hard at critical values.
This is the central insight: a tune does not work against the protection functions, it works on the same tables as the protection functions. A serious Stage 1 calibration adjusts the target values for more output but leaves knock retard, EGT limit and torque limits active and within sensible bounds — and adapts them to the new load points so the engine stays cleanly protected under the higher load.
Why a tuning box only "touches" 2-3 maps
A tuning box is conceptually a different beast. It is not written into the Steuergerät; it is wired between one or two sensors — typically the rail pressure sensor or the boost pressure sensor — and the Steuergerät. It alters the sensor signal before it reaches the Steuergerät: a 4.2-bar rail pressure is reported as 3.8 bar, for instance, prompting the Steuergerät to inject more fuel to reach the target pressure.
The intervention therefore acts indirectly on the few maps the Steuergerät uses for that pressure regulation — not on the 80+ tables a full calibration edit reaches. The other maps — ignition, lambda, torque request, EGT protection, overrun cut — keep running on factory values. Two consequences follow. First: the extra energy entering the combustion chamber is not optimally burned by an adjusted spark angle, so efficiency and torque curve fall short of a proper calibration. Second: the protection functions keep computing on falsified sensor values, which on aggressive boxes can undermine the EGT and knock logic — in the worst possible way.
Conclusion
A modern Steuergerät is a data structure of more than 80 Kennfelder for combustion alone, plus another similar count for ancillary functions. Every single table is a deliberate manufacturer decision — about efficiency, protection, comfort, model segmentation. Map-based tuning means understanding these tables, shifting them in the right places, and carrying the protection logic along instead of bypassing it. Done this way, you can pull more output out of the engine with discipline, without dissolving the safety margins. Manipulating one sensor signal pretends the Steuergerät only had three tables — and ignores the other 80 still running in the background.