TunerPro MS43 Community Patchlist
- 1 ECU Information
- 2 Immobilizer Bypass
- 3 Checksum Bypass
- 4 Launch Control
- 5 M3/M5 Cluster LEDs
- 6 DS2 Logging Extensions
- 7 MAF Sensor Hack
- 8 Boost Control Over Canister Purge Output (Experimental)
- 9 Ignition Cut Limiter
- 10 Alpha/N
- 11 MIL Knock Indicator
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.
- 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
- UIF Vehicle Identification Number
- UIF Software Number
- UIF Service Number
- UIF Assembly Number
- ECU Number
- ISN Value
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.
- [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.
- [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.
- [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).
M3/M5 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 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
- 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!
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 light 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.