WinOLS Basics: Key Terms and Concepts Every Tuner Should Know
WinOLS by EVC is the industry-standard software for viewing, editing, and comparing ECU binary files. If you plan to work on diesel remaps — or simply want to understand what a tuning file service actually does to your file — learning the fundamentals of WinOLS is essential. This guide covers the core concepts in plain language.
What Is WinOLS?
WinOLS is a Windows application that opens raw ECU binary files and lets you inspect and modify the data inside them. It does not communicate with a vehicle directly — that is the role of MPPS, KESS, or similar tools. WinOLS operates purely on the file you have already read from the ECU.
Its power comes from its ability to display raw hex data as meaningful maps (tables and curves), visualize them in 2D and 3D graphs, and track all changes between the original and modified version. It also handles checksum correction automatically for supported ECU types.
Core Concepts and Terminology
Project
In WinOLS, a Project is a container for a single ECU's data. When you open a binary file, WinOLS creates a project around it. The project stores:
- The original binary (the unmodified file you read from the ECU)
- All versions (modified files saved as separate records)
- All maps you have defined and named
- Comments and notes you have added
Projects are saved as .ols files. Sharing an .ols file shares everything — maps, versions, and notes. If you only want to share the binary, export the specific version as a .bin or .hex file.
Version / Record
Every time you save a modified state of the binary, WinOLS stores it as a new Version (also called a record in some WinOLS menus). You can have multiple versions inside one project:
- Version 1 (Original) — the untouched read from the ECU
- Version 2 (Stage 1) — your first set of modifications
- Version 3 (Stage 1 + DPF off) — further changes stacked on top
You can compare any two versions side-by-side to see exactly which bytes changed. This is useful for reviewing supplier files or verifying your own work.
Map (also: Field, Curve, Value)
A Map is a region of the binary file that WinOLS displays as structured data rather than raw hex. Maps come in three types:
| Type | Structure | Typical Use |
|---|---|---|
| Value (scalar) | Single number | Speed limiter, torque ceiling, single threshold |
| Curve (1D map) | One row of values with one axis | Boost vs RPM, injection timing vs temperature |
| Field (2D map) | Grid of values with X and Y axes | Main fuel map (torque request vs RPM and load) |
Each map has a starting address in the binary, a defined number of rows and columns, a data type (byte, word, signed/unsigned), and a factor + offset that converts raw hex values into physical units (e.g., mg/stroke, bar, Nm, RPM).
Axes (X Axis and Y Axis)
A 2D map (field) has two axes that define the input conditions for each cell value:
- X Axis — typically engine speed (RPM), presented across the columns
- Y Axis — typically load, pedal position, boost pressure, or air mass flow, presented down the rows
The ECU reads real-time sensor data (current RPM, current load), looks up the row and column that match, and uses the value in that cell to control the engine. By editing these cells, you change what the ECU does at specific operating points.
Axes are also stored in the binary as data arrays — they are themselves maps of type curve. Misconfiguring an axis (wrong address, wrong factor) will make the map display incorrectly, so defining axes accurately is important.
Factor and Offset (Scaling)
Raw binary values are stored as integers (e.g., the hex value 0x4A = decimal 74). To turn that into a physically meaningful number, WinOLS applies a Factor (multiplier) and Offset (addition):
Physical value = (Raw value × Factor) + Offset
For example, if a boost map uses Factor = 0.01 and Offset = 0, raw value 14500 displays as 145.00 (kPa absolute, roughly 0.45 bar gauge). Getting this right matters — editing a map without correct scaling means you don't know what you're actually setting.
Data Type
Each cell in a map is stored as a specific binary format. Common data types in ECU files include:
- Byte (8-bit unsigned) — values 0–255
- Signed byte (8-bit signed) — values -128 to +127
- Word (16-bit unsigned / little-endian) — values 0–65535, most common in modern ECUs
- Signed word (16-bit signed) — values -32768 to +32767
- DWord (32-bit) — used in some newer ECU architectures
- Float (32-bit IEEE 754) — used in some Bosch MED/MG platforms
Choosing the wrong data type when defining a map will produce garbage display values. Always cross-reference with a known database entry or verify against physical expectations.
Checksum
The ECU validates the integrity of its flash memory using a Checksum — a mathematical value computed from all (or a portion of) the binary data. If you modify any byte in the file, the checksum no longer matches and the ECU will detect corruption on startup, typically refusing to run or storing a fault code.
WinOLS can calculate and correct checksums automatically for most common ECU types (Bosch EDC16, EDC17, MED9, and many others). This is triggered via the Checksum menu → Correct before saving the final file. You should always correct the checksum as the last step before exporting.
Map Pack / DAMOS
A Map Pack (also called a DAMOS file or A2L description) is a database of pre-defined map addresses, names, axis definitions, and scaling values for a specific ECU software version. Loading a map pack into WinOLS automatically populates your project with correctly labeled maps, saving hours of manual work.
Map packs are ECU software-version-specific — a pack for EDC17C50 software version 8514038 will not work correctly on version 8519022. Always match the map pack to the exact software number visible in the binary header or via diagnostics.
Versions Window
The Versions Window (View → Versions) lists all saved records within a project with timestamps and comments. You can right-click any version to:
- Set it as the current working version
- Compare it against another version (shown as hex diff and map-level diff)
- Export it as a standalone binary
- Mark it as the "original" baseline for comparison
The Main Maps You Will Work With
For diesel Stage 1 tuning, you will typically interact with the following maps. Names vary across ECU types and map packs, but these are the functional categories:
Torque Request Map (Driver Demand)
The master fueling map. Often called Fahrerwunschmoment (driver wish torque) in Bosch EDC calibrations. This is a 2D map with RPM on the X axis and accelerator pedal position (or throttle demand) on the Y axis. Cell values represent the desired engine torque in Nm. Increasing values here is the primary lever for power gain in Stage 1.
Torque Limit Maps
The ECU enforces multiple torque limits — by engine speed, by gear, by coolant temperature, by transmission strategy, and more. These limit maps act as ceilings on what the torque request map can actually deliver. Stage 1 tuning involves raising these limiters to match the increased torque request while staying within safe mechanical margins.
Common limit names in Bosch EDC maps:
- MoMaxFahrerwunsch — maximum driver demand torque
- MoMaxDynFahrbetrieb — dynamic driving maximum torque
- MoMaxMotorSchutz — engine protection torque ceiling
Boost Pressure Target Map
Defines the target boost pressure (in kPa or mbar absolute) for each combination of RPM and load. Increasing boost targets allows more air into the cylinder, enabling more fuel to be added cleanly. On turbocharged diesels, this is the second-most important map after the torque request table.
Fuel Injection Quantity Limit (Max Injection)
Limits the maximum injected fuel quantity in mg/stroke. Raising this limit is required when torque targets are increased — but it must be done in proportion with available air (boost). Uncalibrated high injection quantities produce smoke, not power.
Speed Limiter (Vmax)
Stored as a single scalar value (or a small curve by gear). Typically a 16-bit word representing the cutoff vehicle speed in km/h (or tenths of km/h, depending on factor). Removing or raising the Vmax limiter is a simple single-value change, which is why it is typically included free with Stage 1.
EGR Maps
Exhaust Gas Recirculation is controlled by several maps: an EGR enable/disable threshold, a target EGR rate map, and an EGR valve position map. Software EGR off involves zeroing the target EGR rate maps and disabling the enable conditions, so the valve stays closed at all operating points.
DPF Regeneration Strategy Maps
DPF (Diesel Particulate Filter) removal at the software level involves disabling the regeneration triggers, zeroing the soot load model, and removing associated DTC monitors. This is more involved than EGR off and typically requires modifying 10–20 map locations depending on the ECU type.
Practical Workflow in WinOLS
- Open the binary — File → New Project → select your .bin file.
- Load a map pack (if available) — Edit → Import DAMOS/A2L. This auto-populates maps.
- If no map pack, use the Map Search function (Tools → Find Maps) to detect probable map structures automatically.
- Identify key maps by their size, axis values, and position in the binary. Cross-reference with known offsets from community databases or OLS files from a trusted source.
- Make modifications — open a map, select cells, and adjust values. Use the 3D view to visualize the surface before and after.
- Correct the checksum — Checksum → Correct (for all supported regions).
- Export the modified file — File → Export → choose the correct format (.bin or .hex) for your write tool.
- Compare versions before sending — use the Versions Window comparison to review every byte changed.
Key Keyboard Shortcuts in WinOLS
| Shortcut | Action |
|---|---|
| Ctrl + A | Select all cells in the current map |
| + / - | Increment / decrement selected cells by 1 step |
| Ctrl + + | Enter a percentage or absolute change for selected cells |
| F4 | Toggle between hex and physical value display |
| Ctrl + Z | Undo last change |
| Ctrl + D | Open the versions / diff view |
| F9 | Open the 3D map surface view |
| Ctrl + S | Save the project (.ols file) |
Summary: WinOLS Glossary at a Glance
| Term | What It Means |
|---|---|
| Project (.ols) | WinOLS container file holding the binary, all versions, and all defined maps |
| Version / Record | A saved state of the binary — original, Stage 1, Stage 1+DPF, etc. |
| Map / Field | A 2D lookup table with X and Y axes (RPM vs load) |
| Curve | A 1D lookup table with one axis (e.g., boost target vs RPM only) |
| Value / Scalar | A single number — e.g., speed limiter value |
| Axis | The input variable (RPM, load, pedal, temp) along one dimension of a map |
| Factor / Offset | Scaling values that convert raw hex to physical units |
| Data Type | How cells are stored: byte, word, float, etc. |
| Checksum | Integrity check value — must be corrected after any modification |
| DAMOS / Map Pack | Pre-built map database for a specific ECU software version |
| Address | The exact byte position of a map in the binary file (usually shown in hex) |
WinOLS is a deep tool and mastering it takes time. However, understanding these fundamentals gives you a solid foundation — whether you're evaluating a tuned file you received, learning to tune yourself, or simply communicating more clearly with a tuning file service.