Understanding Conversion Factors — How Raw Hex Becomes Real Units

You open WinOLS. You find what looks like a torque limit map. The values read: 127, 189, 204, 231. No units shown. Are those Newton-meters? Percentages? Internal counts?

This is one of the most concrete skills in ECU calibration — and one of the least taught.

What a conversion factor is:

ECU firmware stores all values as raw integers in memory. A torque value of 400 Nm might be stored as the integer 200 if the conversion factor is ×2. A rail pressure of 1600 bar might be stored as 25600 if the factor is ×16.

How to derive it without DAMOS:

Method 1 — Cross-reference known values:
Find a map where you know the physical range from the engine datasheet. A driver wish map on a 150kW diesel should produce somewhere between 0 and ~350 Nm. If the raw values range from 0 to 700, your factor is likely 0.5 Nm per bit.

Method 2 — Find the factor in code:
In the firmware assembly, the ECU applies conversion factors through multiplication or bit-shifting. In Ghidra, you can find where a map address is loaded and see the arithmetic applied to it immediately after. The shift amount or multiplier is the conversion factor.

Method 3 — Comparison with a known calibration:
If you have a file from the same ECU family with a known DAMOS, you can extract the factor and apply it to a new file from the same family.

Why it matters:

If you get the conversion factor wrong, you can miscalibrate by an order of magnitude. I’ve seen people add 20% to a torque value and accidentally set a limiter to 20 Nm instead of raising it by 20 Nm. The car barely moved.

Conversion factors are covered as a dedicated section in Diesel Fundamental, Chapter 4, with worked examples from real EDC17 files.