Bosch ME17.5

From The 07K Wiki

This section is underdevelopment. Feel free to add content. Please note we documented the ME17.5.6, some maps might not be present in the ME17.5

Reading, writing and checksums

For reading and writing procedures refer to Reading and writing ECU (ME7.1.1)

Most flashing tools fix checksums automatically, if you wish to fix them manually, you can use LSuite

Definition file can be found here. If you are getting started with tuning we recommend consulting : Introduction to tuning

Terminology (Acronyms)

Maps and variables names are identified under acronyms. Knowing some of them will be useful and will help you remember map names.

Here is a list of the useful ones.

List of acronyms
Acronym German English
A Auslaßnockenwelle aktiv Exhaust camshaft active
AB Abregelfaktor Derating factor for acceleration signal
AL Adaptation Lastbereich Adaptation load range
ASR Anti-slip regulation
BB Betriebsbedingungen Operating conditions
BG Berechnete Große Calculated variable
BTS Bauteilschutz Component protection
CW Code word
DFPM Diagnose-Fehlerpad-Managers Diagnostic Faulth Path Manager
DK Drosselklappe Throttle valve
DS-S Pressure sensor (MAP) on intake manifold
E Ersatzwert Substitute value
ESUK Einspritzung Ubergang Kompensation Injection transition compensation
FA Fahrer Driver
FGR FahrgeschwindigKeitsregler Cruise control
FK Faktor Factor
FUEREG Fullungreglers Filling regulators
HFM Hot film air mass sensor
KF Kennfeld Map
KL Kennlinie Curve
KN Klopfereignis Knock event
KR Klopfregelung Knock control
KRA KR-adaptation KR-Adaptation
KUPPL Kupplung Clutch
KW Kurbelvelle Grad Crankshaft degrees
LL Leerlauf Idle
LLK Leerlauf und geoffneter kupplung Idle and open clutch
LLRBB Leerlaufregelung Betriebs dedingungen Idle control operating conditions
LU Laufunruche Unstediness / roughness
LUAR Laufunruhe-Abstandsmass-Referenzwert Rough running distance measure value
LUR Laufunruche-Referenzwert Rough running reference value
MBVH Missbrauchverginderung Abuse prevention
MI Motormoment indiziertes Indicated torque
ML Motor Luftmassendurchsatz Engine air mass flow
MN Minimum
MS Massenstrom Mass flow
MX Maximum
N Normierter Normalized / NM
NW Nockenwellen Camshafts
NWS Nockenwellengsteverrung Camshaft control
OP Optimales Optimal
PVD Pressure vor Drosselklappe Pressure in front of DK
RL relative Luft Relative air filling (load)
RLMIN Relative mimale Luft Relative minimal air (filling)
SA Schubabschatten Fuel cut-off / overrun
SOL Soll Should
SW Schlechtwegstrecke Rough road
TPKHFM TemperaturKorrektur HFM Temperature correction HFM
TUM Umgebungstemperator Ambient temperature
TV Delay time
UGD Ungedroselt Unthrottled
V Verzogert Delayed
WDK DK-Winkel DK angle
WKR Winkelspatverstellung Angle retard KR
WL Warmlauf Warm up
ZUL Zulassig Allowed limit
ZW Zundungs Winkel Ignition angle

Engine management

The ME17.5 use a TC1766 micro-controller. The ME17.5.6 use a TC1767 micro-controller. The program memory and the maps are both stored into the MCU which defers from the ME7.1.1 that have two chipsets, one for the MCU and an extermal memory chipset to store the maps.

There is no public funktionsrahmen for the ME17.5. You can use the MED17.5 Funktionsrahmen which will have some difference regarding injection as the MED17 use direct injections strategies while the ME17 use ported injection. For the missing modules, you can refer to the ME7.5 Funktionsrahmen.

The ME17.5.6 have some differences versus the ME17.5, extra modules, extra strategies and different map name. You can refer to the MED17.1.62 funktionsrahmen

This ecu is load-dependent. The driver request a torque, that torque is then converted to a load request and the ECU will target the requested load.

Engine load

The ME17 do not use a MAF to measure the air mass, the air mass is calculated based on the intake manifold pressure and intake air temperature. The conversion factor fupsrl convert the intake manifold pressure into load. The map KFDPBRWE can be used to bring correction to fupsrl.

MAP sensor scaling

If you fit a different MAP sensor, you can alter those two map to get the proper sensor scaling:

  • DSSGRAD : Gradient for pressure sensor intake manifold pressure
  • DSSOFS : Offset for pressure sensor intake manifold pressure

Requested load

The ME17 have the following logic flow : the driver request a desired traction torque, torque loss and friction are added / compensated to the torque request. Then the ECU ensures the torque request does not exceed the maximum. Then based on the maximum torque, we get a relative normal torque request (0-100%). The normalized torque is then processed into a map that will output the requested load. The ECU will use strategies to reach that load. (Throttle opening, ignition advance, air fuel mixture, etc.)

The following maps corresponds to the desired traction torque depending of the current gear (manual) or selected driving mode (auto) :

  • AccPed_trqEng1_MAP : 1st gear (leading) desired traction torque from engine speed and APP_rUnFlt
  • AccPed_trqEng2_MAP : 2nd gear (leading) desired traction torque from engine speed and APP_rUnFlt
  • AccPed_trqEng3_MAP : 3rd gear: (advanced) traction request torque from engine speed.
  • AccPed_trqEng4_MAP : 4th gear: (advanced) traction request torque from engine speed.
  • AccPed_trqEngRev_MAP : Driving behavior map reverse gear engaged
  • AccPed_trqEng0_MAP : start map

You can use the same values for all of those maps. If the engine produces more torque, you will need to edit those accordingly. Values are in nm.

The following map corresponds to the accelerator pedal in function monitoring :

  • MoF_trqEngAPP_MAP : Accelerator pedal map

Again, if the engine produces more torque, you will need to alter this map. You can also edit the above maps if you wish to change the profile or the response of the accelerator pedal.

The following maps are used for torque reserve, demand and losses:

  • MoF_trqDesAlt_MAP : electrical consumers in function monitoring (based on temp)
  • MoF_trqDrag_MAP :friction losses in function monitoring (based on temp)
  • ACComp_trqStatPres_MAP : static torque based on AC pressure
  • ACComp_trqStatTemp_MAP : static torque based on intake air temperature

The constant MoF_trqNorm_C represents the maximum indicated torque for torque normalization (in nm). The constant MoX_trqEngAPPMax_C can be use to determine the maximum requested torque in sport mode (in mm).

Normalized torque request to engine load

The map KFMIRL (Map for calculation of target filling) convert the normalized torque request into engine load (The map have more resolution in ME17.5.6 ECUs).

The map KFMIOP is the inverse of KFMIRL, it is used by the ECU for fast calculation to convert engine load into torque. (The map have more resolution in ME17.5.6 ECUs)

In the case of forced induction, there is a simple formula that give an approximate absolute pressure value based on the load request :

You can then subtract the result by one atmosphere (1 bar) to get the relative boost pressure.

Here is an example with 190 load, 10 * 190 + 300 = 2200mbar in absolute, which would be 1200mbar in boost. In psi, that would be approximately 17 psi.

Fuel mixture control

Injector scaling

  • TVUBAT : Battery voltage dependant delay time (Injector dead time depending of voltage level)
  • KRKATE : Conversion of relative fuel air mass into effective injection time (See formula below)
  • FKKVS : Correction factor fueling system (Could also be called injector linearization map)

If you fit aftermarket injectors, ensure you have the specs for the injector dead time, as it is going to make scaling easier. Then calculate the KRKATE with the injector flow characteristic (at 4 bars, most injectors are rated at 3 bars). Once done, you can set FKKVS to 1 and edit the correction factor according to the STFT. (See below how to disable LTFT)

KRKATE Calculation

The following formula is taken directly from the funktionsrahmen.

The variables :

  • rho0Luft = 1.293 g / dm³ (Air density at 0°C and 1013hPa)
  • Vhzyl = dm³ (Displacement of a cylinder in dm³)
  • Qstat = g / min (Valve constant at n-heptane)
  • 1.05 = Valve correction for gasoline
  • Lst = 14.7 (Air ratio for lambda)
  • NormK = 0.00001667 min / ms (Unit customization)

The formula :

Simplified formula for gasoline :

You can also use this spreadsheet and fill in the information (has provision for ethanol content) : KRKATE calculator updated.xlsx

Disabling LTFT

Set NOLRA to 39. When you are done with scaling injectors, you can put back the long term fuel trim by setting NOLRA to 132.

Controlling air fuel ratio


You can use LAMFA (lambda driver request) to enrich the mixture at WOT.

  • TLAFA : Delay time until lambda driver request active (Set to 0 for quicker lambda change)
  • ZKLAMFAW : Time constant filtering enrichment by driver (Max out for quicker lambda change)

Using BTS (Lambda component protection)

The BTS offers more resolution than LAMFA. BTS is originally intended to enrich the fuel mixture when the exhaust temperature exceeded a threshold set by the manufacturer. We can reduce one of the threshold to ensure the ECU goes into BTS as soon as the engine is running.

BTS Threshold MED17.png

  • To force the ECU into BTS, you could set KLTIKBTSMT to 0

Use the following map to set the lambda ratio : KFLBTS

Do not forget to lower KFLBTSBG (minimum lambda target for BTS) and LALIUSMN (minimum measurable lambda) if you plan to enrich the AFR further than the stock limits.

Fuel cut-off on deceleration

If you want to have crackle on deceleration, you can use the delay time for overrun fuel cut-off in the following map : KFTVSA


Ignition advance

  • KFZW : Ignition timing map
  • KFSZMN : map with permanently latest possible ignition
  • KFZWMN : minimum ignition angle
  • KFZWMNST : minimum ignition angle for start and post-start
  • KFZW_UM : map of optimum ignition angle in function monitoring (increase this map to avoid advance interventions from the ECU)

Ignition coil closing time

  • KFSZMX : maximum closing time
  • KFSZMN : maximum closing time

Increase closing time on high voltage for forced induction application. The increase of pressure in the combustion chamber could require more charging / closing time.

Knock monitoring

  • KFDZWKG : ignition angle correction by shifting the knock limit (Set whole map to zero for better ignition tracking)
  • UDKSV6ON : upper reference voltage threshold knock sensor diagnosis (increase threshold for forced induction application)
  • KFKRFKN : retardation per knock event

In forced induction applications, increasing retardation per knock event is a safe measure to prevent more knock events from occurring, which results in a better ignition advance. For example, if a knock event occur and we pull 3 degrees and it still knocks, we would be pulling a total of 6 degrees. If we had pulled 4 degrees on the first knock event instead of 3 degrees, this could have been enough to prevent a second knock event. This way, we would end up pulling a total of 4 degrees instead of 6 degrees, giving us an extra 2 degrees in ignition advance ; resulting in more torque.

Variable intake cam

  • KFNWSE : map for camshaft spread (intake)

Use this map to correct torque loss due to VE change to the engine. (ex. intake manifold with different runner length)


Engine speed limiters

Please note map name differs from ME17.5 and ME17.5.6.

For ME17.5.6, limiters would start with HLSDem_nMax. For ME17.5, you can search for maps / constants that contains the key word NMAX.

Vehicle speed limiter

LLim_vMaxFix_C : vehicle speed limiter (max out to disable)

Brake boosting / left-foot braking

  • Brk_SRC.uMax_C : max voltage (Set to 6400mv)
  • AccPed_nMinNoBrkVelHi_C, AccPed_nMinNoBrkVelLo_C, AccPed_nMinBrkAPP_C, AccPed_nMinBrk_C, APP_nLim_C (Set to 9000rpm, over nmax)
  • Brk_uTransf_CUR : Set whole map to 0, set highest value of axis to 6400mv
  • Brk_swtRedSensPrs_C : Set to 0

Cat delete, o2 delete

  • CWKONABG : code word for exhaust gas treatment configuration - Set to 0
  • CWPSHSHE : code word for output stage diagnosis - Set to 0
  • TKHMXFHO : maximum switch on time of the cat heating (Zero out)
  • DFES_Cls.DFC_KAT_C : set to 0

Disable EVAP (N80)

  • CDTES : switch off code word for tank ventilation diagnosis - Set to 0
  • CDLDP : code word LDP diagnosis - Set to 0

Reducing rev-hang (manual gearbox)

Reducing the minimum filling reduces the rev-hang. There is probably an alternative to this method, but it has proven to be efficient.

  • RLMNN : characteristic minimum filling
  • RLMNSAN : characteristic minimum filling in the overrun

"Pop and bangs"

  • Increase delay time for overrun fuel cut-off in KFTVSA
  • Retard permanently latest possible ignition advance in the low load range in the following map : KFZWMS

Forced readiness

  • DSMRdy_X.PID1ForceLowMsk_C : application parameters for readiness - Set to 4278707456
  • DSMRdy_X.PID41ForceLowMsk_C : application parameters for readiness - Set to 517376

The logic is to set bit 0-7 to 0. This force readiness for catalyst monitoring, heated catalyst monitoring, EVAP, SAI, AC, O2, O2 Heater, EGR.

Forced induction

The following maps / constants will need to be modified to allow for more pressure tolerance in the intake manifold :

  • UDSUMN : minimum voltage for diagnosis of pressure sensor (Zero out)
  • UDSUMX : maximum voltage value for diagnosis of pressure sensor (Max out)
  • PSRMX : upper pressure threshold for range check (Max out)
  • DPUSINIMX : tolerances between pini_w and ambient pressure (Set to 1000hPa)
  • DPSRPUMIN : delta intake manifold pressure to minimum mod. (Set to 500hPa)
  • DPSRPUMN : delta intake manifold pressure to minimum mod. (Set to 500hPa)
  • FPSPULSMX : factor increased intake manifold pressure due to pulsations max (Max out)
  • DPTPSRMX : max tolerance of the intake manifold pressure sensor (Max out)
  • PSREMX : max substitute value for intake manifold pressure (Max out)

The following maps / constants will need to be modified to allow for increased load (Some map might not be present in ME17.5 ECUs):

  • MoF_ctDebAirMs_C : maximum permissible time for large deviation between rl_w and rlp_w in the RT (Max out)
  • MoF_nAirFilgPrdc_C : speed threshold for UFGKC (Set above NMAX to disable)
  • NGKC_UM : speed threshold for UFGKC (Set above NMAX to disable)
  • NMODC_UM : speed threshold for UFMODC (Set above NMAX to disable)
  • NRKTI_UM : lower speed threshold for rkti plausibility (Set above NMAX to disable)