Difference between revisions of "TunerPro MS43 Community Patchlist"

From MS4X Wiki
Jump to: navigation, search
(DS2 Logging Extensions)
Line 120: Line 120:
* Secondary Air MAF Sensor Input Voltage
* Secondary Air MAF Sensor Input Voltage
* DMTL Input Voltage
* DMTL Input Voltage
* EGT Sensor Input Voltages
* Ron Adaptation Value
* Ron Adaptation Value
* Indexed Engine Torque
* Indexed Engine Torque

Revision as of 10:24, 11 January 2021

TunerPro offers a very good method of editing flash files with its "Patch" function.

We used this feature to create an "All-In-One" solution for editing engine displacement independent functions, like Launch Control, EWS Delete, M3 Cluster functionality etc.

Important Notes:

  • This patch list is only compatible with the MS430069 software version.
  • All these features change the program code of the ECU so use it with caution and always correct checksums before flashing or use MS4X Dev Group Flasher from here which corrects them automatically.
  • If you are coming from a bootmode flashed 430056 EWS delete, it's recommended to bootmode flash a backup of the original binary to restore the ecu back to stock before flashing the 430069 firmware to avoid issues.
  • Bootmode flashing is only needed when you want to virginize the ECU and re-adapt it to a EWS module. Every other feature works without bootmode flashing!
  • Chipster MSS5X flasher contains a bug where it in some cases incorrectly calculates the program section checksum, so avoid using this software.

Download it here: Siemens_MS43_MS430069_Community_Patchlist_v2.5.xdf

Old Version: Siemens_MS43_MS430069_Community_Patchlist_v1.0.xdf

MS4X MS430069 Community Patchlist.png

ECU Information

ECU Information
  • UIF Vehicle Identification Number
  • UIF Software Number
  • UIF Service Number
  • UIF Assembly Number
  • ECU Number
  • ISN Value
  • Softwareversion

This section shows the first entry of the user information fields (UIF), the ECU number, the ISN and most important the softwareversion.

Please keep in mind that the shown UIF values came with the initial flash from factory. There might be additional entries when the MS43 has been updated at the dealership.

Immobilizer Bypass

  • [PATCH] Immobilizer Bypass - Bypasses the immobilizer checks of the ECU
  • [PATCH] Clear Immobilizer Data - Virginizes the ECU by clearing all immobilizer related data

This will bypass immobilizer checks that are made to prevent the car from starting with an unauthorized key or no key at all.

Note: On some cars it takes some time to start during the first crank. So crank it a bit longer than you are used to if the engine isn't starting up right away.

When virginzing the ECU by clearing the immobilizer data you want to overwrite data in the bootloader area, so bootmode flashing is needed.

To synchronize ISN and rolling codes between the ECU and the EWS3 module just use INPA or MS4X Dev Flasher.

Checksum Bypass

  • [PATCH] Checksum Bypass - Disables both checksum checks for the calibration data section

Siemens implemented calibration checksum bypasses from factory into the firmware.

This feature is often misinterpreted with completely turning off all checksums. This is not the case and the program and boot loader section checksums will still need to be corrected to allow the engine to start.

The checksum bypass depends on changes in both the program and calibration section so it's crucial that both sections are patched simultaneously.

If for example the calibration section is overwritten with a calibration section that hasn't been checksum bypassed the ecu will always report a checksum error even if the checksums are corrected so use this feature with caution as incorrect use will result in a non-starting engine.

Since the MS4X Dev Group Flasher corrects all five checksums on the fly this checksum bypass is only needed when using old legacy tools to flash a calibration section.

Launch Control

Launch Control Default Values
  • [PATCH] Launch Control - Implements code and default values for the launch control
  • c_conf_lc - Configuration switch to change the launch control behaviour.
    • 0 = LC Disabled
    • 1 = LC Enabled when clutch is pressed
    • 2 = LC Enabled when clutch is pressed and cruise control LED is active
  • c_n_max_lc - Maximum engine speed while the launch control is engaged
  • c_pvs_min_lc - Minimum accelerator pedal position for the launch control to be activated
  • c_vs_max_lc - Maximum vehicle speed when the launch control disengages and switches back to normal limiters

This implements a configurable launch control feature that sets an additional engine speed limiter up to a specific vehicle speed.

You should tweak c_vs_max_lc to be slightly below the regular vehicle speed in 1st gear for the configured limiter c_n_max_lc.

The c_conf_lc mode "2" is an additional feature to be able to heat up your tires before launching, as the launch control limiter will only become active when the cruise control LED in your cluster is active.

To make the launch control limiter less bouncy please set the soft and hard limiter hysteris to 32rpm (c_n_max_hys & c_n_max_hys_max).

M Instrument Cluster LEDs

  • [PATCH] M3/M5 Cluster LED Mod - Implements code that controls the LEDs of the M3/M5 cluster
  • ldpm_toil_led - Oil temperatur axis to adjust the switch points of the led array for the warmup light feature
  • id_icl_toil_led__n - LEDs used at the given oil tempetature for the warmup light feature
  • ldpm_toil_led - Engine Speed axis to adjust the switch points of the led array for the shift light feature
  • id_icl_led__n - LEDs used at the given enginespeed for the shift light feature

For an explanation of the values see M Cluster LED Control

You can retrofit the LEDs to a non-M cluster with this guide: Cluster M3 LED Retrofitting

DS2 Logging Extensions

  • [PATCH] DS2 Baudrate Switch Engine Stopped Bypass - Enable baudrate switching when the engine is started (experimental)
  • [PATCH] DS2 Logging Feature Enhancement - Implements code needed for the new logging command
  • [PATCH] DS2 Speed Increase - Increases how often the ECU processes DS2 commands

Since MS43 only outputs a small amount of loggable values we created a custom DS2 logging command without slowing down logging rate.

This extends the stock command with the following values:

  • Individual Ignition Timing For All Cylinders And Average
  • Fuel Injector Pulse Width For Bank 2 And Average
  • Calculated Manifold Air Pressure
  • Active VO Table
  • Filtered Load Values (Ignition, Injection, VANOS, Moving Mean Value)
  • Calculated Gear
  • Rear O2 Sensor Input Voltages
  • Secondary Air MAF Sensor Input Voltage
  • DMTL Input Voltage
  • EGT Sensor Input Voltages
  • Ron Adaptation Value
  • Indexed Engine Torque

Especially the calculated MAP and filtered load values will improve tuning since you will be able to see what load the subsystems are really using.

When looking at individual cylinder ignition angles, you will see that sometimes logging only cylinder 1 won't be enough. Same with injection.

You can easily log 0-5V analog sensors over the rear O2, secondary air MAF and DMTL voltage inputs. Together with the fuel cap detection input we have a total of 5 spare analog inputs!

Please choose the matching ADX logging file for your engine from the Logger Definition Files and look at the TunerPro Data Logging page for more information on how to datalog with TunerPro RT:

Notice: The ADX makes use of a much higher baudrate (125kBaud) than the default 9600Baud. The ecu can only change baudrate when engine is not running so you have to start the datalogging with the engine off and the ignition on.

MAF Sensor Hack

  • [PATCH] MAF Sensor Hack 2048kg/h - Changes code to allow 2048kg/h of air mass to be measured
  • id_maf_tab - MAF sensor table 256x1
  • id_maf_tab - MAF sensor table 16x16

This patch doubles the mass air flow capability of the MS43 to 2048kg/h. Use one of the id_maf_tab tables to edit MAF sensor scale.

Note: Keep in mind that (for now) we still have a hard engine load limit of 1389mg/stroke.

Boost Control Over Canister Purge Output (Experimental)

  • [PATCH] Boost Control - Forces the ecu to use the ip_cppwm_min_* tables to control the canister purge output and linearizes ip_cppwm_cps__cppwm
  • c_tco_min_cp - Coolant temperature threshold for activation of the boost control / canister purge PWM output
  • ip_cppwm_min___n__maf - PWM duty circle output table engine speed vs. engine load
  • ip_cppwm_min_cat_var__n__maf - PWM duty circle output table engine speed vs. engine load in catalyst preperation mode. (c_conf_cat=0/1)
  • ldpm_maf_1 - Engine load X-axis used by the boost control / canister purge PWM output table
  • ldpm_n_32_7 - Engine speed Y-axis used by the boost control / canister purge PWM output table

This patch implements a basic open loop boost control feature by forcing the ECU to use the ip_cppwm_min_* tables to control the canister purge output and also linearizes ip_cppwm_cps__cppwm.

This feature is highly experimental and must be used with caution. The solenoid output uses a 10hz PWM base frequency.

Ignition Cut Limiter

  • [PATCH] Ignition Cut Limiter - This patch implements a basic ignition cut feature
  • c_conf_n_max_max_td - Configuration switch for igntion cut hard limiter
    • 0 = Ignition cut disabled
    • 1 = Ignition cut enabled

This modification will zero out ignition coil dwell time to interupt ignition while the hard limiter is actively limiting engine speed.

When you set the hard limiter below the soft limiter and lower your the limiter hysteresis (c_n_max_hys & c_n_max_hys_max) to 32rpm you will get most aggressive results.

Warning: Ignition cut limiters may harm your coils, center sprocket, or whole engine and exhaust system. Use with extreme caution and never with catalyst equipped cars.

Ignition cut will work well with the launch control if you want to build up more boost or impress your neighbours.


  • [PATCH] Alpha/N - Implements code to use load value from MAF substitute table

With this mod, the load calculation will fully rely on the MAF sensor substitude table ip_maf_1_diag__n__tps_av. Normally the ECU will throw an error when disconnecting the MAF sensor, but this patch prevents it from triggering a DTC.

The ECU will always think that the value it's processing comes from the MAF directly. This is done by utilizing the load lookup table instead of reading the MAF and feeding this value into all important MAF variables used by the code.

Warning: When this patch is active the ecu will ignore the MAF sensor readings even if it's plugged in, so be careful and tune the ip_maf_1_diag__n__tps_av table very carefully before applying this patch since this table tends to run a bit lean from factory.

MIL Knock Indicator

  • [PATCH] MIL Knock Indicator - This patch implements a knock indicator that flashes the MIL light during light or heavy knock events.
  • c_t_max_knk_mil - Maximum activation time for knock light
  • lv_mil_knk_lv_1 - Activate knock light during light knock
  • lv_mil_knk_lv_2 - Activate knock light during heavy knock

This modification will flash the MIL when there is a knock event detected. Knock events are either light or heavy and you can configure the indicator the way you need.

With the two configuration bits, you have three possisble configurations: light knock only, heavy knock only, light and heavy knock.

Tests showed, that light knock events can be caused by single mass flywheels in lower engine speed regions.

Daniel_F 430056 Update Fix


[PATCH] Daniel_F. 430056 Update Fix - Implements the fix


If the ECU was previously flashed with a MS430056 binary from Daniel_F and you can't or don't want to flash a fresh and unmodified 430069 in boot mode, this patch can help you if your engine won't crank.

Don't patch this unless you encounter a non starting engine after updating your ECU from MS430056 to 430069.

E30/E34 Speed Sensor Accuracy Improvement




This will make the vehicle speed reading more accurate with older BMW speed sensors located inside the rear differential.

Set c_vs_fac to 1096 impulses per kilometer.