Mercedes M111 Kompressor ECU Tuning — Bosch ME2.1 Maps, WinOLS & TunerPro

Free ECU tuning resources and reverse-engineering documentation for Mercedes-Benz M111 230 Kompressor and 200 Kompressor engines with Bosch ME2.1. This project brings together ECU binary files, WinOLS map packs (.kp / .csv), TunerPro XDF map definitions (.xdf), calibration comparisons and Python tools for checksum correction and map visualization.

The aim is to make these ECUs easier to understand and calibrate: fuel and ignition maps, supercharger bypass control, temperature-related ignition correction, and the limiter behavior encountered with larger supercharger pulleys or missing ABS signals.

Tip

Need a custom tune for your engine? Contact Daniel at daniel@drasite.com or via Instagram @dani_ruiz24.

Map definitions · Stock ECU binaries · Map comparison images · Getting started

Mercedes M111 Bosch ME2.1 fuel and ignition map definitions displayed in WinOLS

Vehicle and ECU compatibility

The project focuses on the Bosch ME2.1-equipped M111 Kompressor engines found in vehicles such as:

  • Mercedes-Benz C200 Kompressor / C230 Kompressor (W202).
  • Mercedes-Benz CLK200 Kompressor / CLK230 Kompressor (W208).
  • Mercedes-Benz SLK200 Kompressor / SLK230 Kompressor (R170).

Important

The supplied tuned binary 230k_ME21.BIN is a reference calibration, not a universal file to flash. Start with a backup of your own ECU and transfer relevant changes using definitions that match its software.

It is possible to install a different binary version on your ECU without issues, but it might lack some functionalities.

Downloads and repository contents

ResourceWhat it contains
WinOLS and TunerPro map definitionsSoftware-specific .kp and .csv definitions for locating and editing calibration tables.
Extended ME2.1 CSV definitionsAdditional map definitions for binary 230k_ME21.BIN.
Original ECU binariesA collection of M111 Kompressor software versions for analysis and comparison.
Stock reference binaryThe project's stock reference file.
Tuned reference binaryThe project's modified calibration for studying changes.
Text hex dumpA text representation of the tuned binary for reviewing changes.
Map comparison imagesRendered calibration tables grouped for comparison between binaries.
Checksum toolVerify and correct the two calibration checksums implemented by the script.
Table image exporterGenerate PNG map images from binary files and WinOLS CSV definitions.

ECU software versions and available definitions

These are the versions currently represented in the Original Binaries directory. A binary being available does not mean every table has been identified or validated.

Engine label in archiveECU softwareWinOLS CSV / KPMap Definitions XDF
230 Kompressor114.235034.34CSV · KPXDF
230 Kompressor114.235035.52CSV · KPXDF
230 Kompressor114.235153.52CSV · KPXDF
200 Kompressor114.235355.56CSV · KPXDF
230 Kompressor114.235404.04CSV · KPXDF
230 Kompressor114.235516.16CSV · KPXDF
230 Kompressor114.235819.20CSV · KPXDF
230 Kompressor114.236338.39CSV · KPXDF
230 Kompressor114.236438.40CSV · KPXDF
230 Kompressor114.236643.43CSV · KPXDF

Getting started

  1. Read and save your original ECU binary, together with its hardware and software numbers.
  2. Find the matching software version in the table above and download its definitions.
  3. In WinOLS or TunerPro, open the binary and import the matching map pack.
  4. Check table addresses, dimensions, axes and units before editing. Use the comparison images to explore differences between versions.
  5. Save changes to a separate file, verify the applicable checksums and keep a record of each calibration revision.

For the reading and flashing process, see the community Bosch ME2.0 / ME2.1 read-and-flash guide.

Fuel, ignition and limiter maps

The map packs cover the following areas. Coverage and naming vary by software version, and some names describe an observed effect rather than a fully established function.

Map familyRelevance to calibration and diagnosis
Fuel / injectionFuel correction tables for investigating mixture behavior across engine speed and load, including wide-open throttle (WOT). The table represents the percentage of fuel correction to the value calculated by the ECU based on the MAF sensor reading.
Spark advanceIgnition calibration tables, including maps labeled for WOT.
Supercharger bypass valve positionBypass valve calibration relevant to how much compressed air reaches the engine.
Rev limiterEngine-speed limit settings.
Launch rev limiterEngine-speed limit when stationary.
Warm-up Bypass command minimumMinimum boost bypass valve position during warm-up.
Fallback RPM LimiterTables associated in project testing with the approximate 5,700 rpm limit when the ABS signal is unavailable.
Temperature ignition correctionTables associated with coolant and intake air temperature (IAT), with load-dependent weighting.

Larger pulleys and supercharger cutout

One focus of this project is the loss of boost sometimes observed near high engine speeds after installing a larger crankshaft pulley. The reported behavior is that the ECU disengages the supercharger clutch and opens the bypass valve.

The binaries and map comparisons help investigate why different software versions behave differently with the same hardware changes.

Not all binaries behave equally, and some of them don't limit at all when you increase the supercharger boost. Here's a list of binaries with tested behavior:

❌ Limit:

  • 9903-230Kompressor_261206457_114.236338.39.BIN
  • 9906-230Kompressor_261206458_114.236438.40.BIN
  • 9914-230Kompressor_261206570_114.236643.43.BIN

✅ Don't limit:

  • 9640-230Kompressor_261204573_114.235034.34.BIN
  • 9646-230Kompressor_261204527_114.235153.52.BIN
  • 9720-230Kompressor_261204747_114.235404.04.BIN

The 5,700 rpm limit without ABS

Project testing has linked the reduced rev limit with an unavailable ABS signal to the tables labeled “Fallback RPM Limiter”. Editing these tables has restored the normal rev limit on the tested setup. This is an observed result for that configuration, rather than proof that the same edit applies to every ECU version.

Temperature-related ignition retard

The definitions include ignition correction associated with coolant and intake air temperature. The thermal table and its load weighting need to be considered together: a value displayed in the table is not necessarily the final correction applied to the ignition angle, but the value applied at full throttle. The binary includes an extra table for the percentage applied to the ignition retard value based on the amount of throttle pedal input.

230 Kompressor tuning

STAGE 1 (~210-220hp)

  • 218mm crankshaft pulley
  • Cold air intake
  • Exhaust
  • CAT delete (optional)
  • ECU tune

STAGE 2 (~230-240hp)

  • Ported supercharger
  • Intercooler
  • Remove the MAF and throttle body screens
  • Wideband oxygen sensor
  • 320cc Bosch Red injectors 0280155759
  • 1-6 Bar adjustable fuel pressure regulator (adjust pressure to reach 11.8-12 AFR at 5,200rpm WOT = ~3.8-4Bar FPR)
  • BOSCH FR6DC spark plugs
  • ECU tune

Eaton M62 supercharger speed and pulley ratios

According to Eaton's documentation, the M62 supercharger is capable of sustaining a maximum speed of 14,000 rpm, but many users have increased it to 15,000 or even 16,000 rpm for short periods of time without trouble.

Pulley combinationCrank pulleySupercharger pulleyAt 5,800 engine rpmAt 6,200 engine rpm
Stock example185 mm94 mm11,415 rpm12,202 rpm
Larger crank pulley218 mm94 mm13,451 rpm14,379 rpm
Smaller supercharger pulley185 mm87 mm12,333 rpm13,184 rpm
Both pulley changes218 mm87 mm14,533 rpm15,536 rpm

Shorter differential

Shorter 3.92 differential, for example from a CLK200 non-Kompressor (original is 3.46).

  • CLK200 W208 A2023502314
  • SLK200 R170 A1243504598 / A1703501114
  • C W202
    • A2023502314
    • A1243504598
    • A2023501814
    • A1703501114
    • A2023504603
    • A1243507514
    • A1243502874
    • A1243509614
  • E W210
    • A2023502314
    • A1703501114
    • A2023501814

Real-time tuning with CobraRTP FlashOnline

By installing the CobraRTP FlashOnline board, you can add real-time tuning capabilities to the stock ECU (both the ME2.0 and ME2.1).

CobraRTP FlashOnline board installed in a Mercedes Bosch ME2.1 ECU for real-time tuning

Second view of the CobraRTP FlashOnline installation and connections inside the ME2.1 ECU

After modifications, the checksum should normally be corrected, but I just found out that the car doesn't care about it. If you tune your ECU live and forget to update the checksum, the next time you start the engine it will work anyway. So the checksum doesn't seem to be relevant for this ECU (it didn't even show a CEL code via OBD).

Further reading

Python tools

Verify and correct calibration checksums

The checksum script uses Python's standard library and expects a 256 KiB binary with the checksum layout implemented in the script.

Verify a file without modifying it:

python3 me21_checksum.py your_read.BIN

Write a corrected copy:

python3 me21_checksum.py your_modified.BIN -o your_corrected.BIN

The tool handles the two calibration regions defined in its source; it is not a generic checker for every Bosch ECU. Its exit status describes whether the input checksums matched, so re-run verification on the corrected output when using it in automation.

Generate map comparison images

The image exporter requires Python, NumPy and Matplotlib. With those dependencies installed, run it from the repository root:

python3 ecu_tables.py "Original Binaries" "Map Definitions" -o tables

The script matches binaries and CSV files using software identifiers in their filenames. It exports converted table values as PNG images and leaves the binaries unchanged. Output folders use each table's position in memory-address order and its name. Unmatched versions are reported; use --assign BINARY=CSV only after establishing that the selected definitions match the binary.

Latest posts

Kali 2020.2 desktop and theme updates


kali 2020.2

Today Kali 2020.2 has been released and with it lots of new visual changes and desktop improvements.

Here's a quick summary of what's new:

  • KDE Plasma Makeover & Login
  • PowerShell by Default. Kind of.
  • Kali on ARM Improvements
  • Lessons From The Installer Changes
  • New Key Packages & Icons
  • Behind the Scenes, Infrastructure Improvements
Read more...

Pimp my terminal


pimp my term!

As a Linux user, I enjoy working with the terminal, and I find it an especially powerful tool. Therefore, I've spent quite a long time customizing it, and here is my definitive guide for terminal customizations.

First I thought I would only create a short post with some of the tweaks I like. But I had so many things I wanted to show that this started to become a considerably long post. So I've decided to publish it now, with as many tips as I can write, and I'll be updating it with new tips & tricks.

terminal preview Read more...

Kali 2020.1 visual updates


Today Kali 2020.1 has been released and with it lots of new visual changes for its desktop. The following is a brief feature summary for this release:

  • Non-Root by default
  • Kali single installer image
  • Kali NetHunter Rootless
  • Improvements to theme & kali-undercover
  • New tools

But here I'm not going to explain all the latest improvements that have been introduced in this version but to reveal all the different themes and visual modifications that come with it. By the way, an essential change that I do want to emphasize is the switch to a default non-root user, with the username "kali" and password "kali". For more of the reasons behind this switch, please see this blog post: kali.org/news/: Kali Default Non-Root User.

kali 2020.1 gnome desktop Read more...

Kali 2019.4 new themes 🐉


Today Kali Linux 2019.4 just launched, and I'm so excited to announce that, for the last two months, I've been working together with the Kali team developing all its new look. The first noticeable change is the move from Gnome to Xfce as the default desktop. This change was made to make default Kali more comfortable for low resource computers, as it is also commonly used on small ARM devices that don't have as high performance as an average desktop.

If you don't want to leave Gnome, don't worry. Kali now offers a Gnome build for you with some of the new desktop themes. As this release was focused on the Xfce DE change, most of the latest changes were intended for this desktop. For next releases, more changes will be available for all kali flavors to get them "close" to a similar user experience no matter the environment you run.


kali 2019.4 new desktop preview Read more...

Build a PHP minimal Blog


When I was about to create this new fancy blog for my website, I was wondering what would be the easiest way to implement it without losing much time programming. Moments later, I was doing the same thing I always do when something could be just straight forward. Using an existing framework? Would you say...
... 🤦‍♂️

Noup! I created my own ultra-minimal framework to handle it. But that is great because now I can blog in my blog about the blog! 🤯
If that makes any sense at all.


blog preview

Read more...

Swagger-js, tips and tricks


This article explains step-by-step how to set up and use the Swagger Client module for your JavaScript project. It also shows examples about how to properly use it and some useful tips and tricks that may help you in your development.


Swagger logo

About Swagger-js

Exactly as they define it in their github repository: Swagger Client is a JavaScript module that allows you to fetch, resolve, and interact with Swagger/OpenAPI documents. Thanks to these tools the developer is able to define the API to be used in a clean manner, and ensure all the code uses the latest API version.

Read more...

My projects

Kali Linux Dragon logo

Kali Linux themes

Flat Remix cover

Flat Remix ICON theme

Flat Remix GNOME theme

Flat Remix GNOME theme

Flat Remix GTK theme

Flat Remix GTK theme

~/.dotfiles

~/.dotfiles

Skeuos GTK theme

Skeuos GTK theme

Flat Remix css library

Flat Remix CSS Library

Skeuos CSS Library

Skeuos CSS Library

Flat Remix KDE themes

Flat Remix KDE themes

Color Fixer logo

Color Fixer

Neural network demo with Unity

Neural network demo with Unity

GNOME 4X themes

GNOME 4X themes

Tetяis JS

Tetяis JS

Ethenis Framework logo

Ethenis Framework

Linux From Scratch

Mazda MX5 ND2 for Assetto Corsa

230 Kompressor tune definitions

230 Kompressor

Linux From Scratch

Linux From Scratch

Consider supporting my work with a Donation 😉