Advertising:

TunerPro MS43 Community Patchlist: Difference between revisions

From MS4X Wiki
No edit summary
No edit summary
(166 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{TOC limit|2}}
<div style="float:right;">__TOC__</div>
<div style="float:right;">__TOC__</div>
TunerPro offers a very good method of editing flash files with its "Patch" function.
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 independant functions, like EWS or checksum delete, M3 cluster warmup and shiftlights,etc.
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.


All these feature change the program code of the ECU so use it with caution and correct checksums before flashing or use MS4X Dev Group Flasher from [[Flashing_Tools|HERE]] as it corrects them automatically.  
'''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 [[Flashing_Tools|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.


At the moment this is only compatible with the MS430069 software version. Chipster MSS5 flasher contains a bug when editing program code, so avoid using it.
'''Download it here: [[:File:Siemens_MS43_MS430069_Community_Patchlist_v2.9.xdf|Siemens_MS43_MS430069_Community_Patchlist_v2.9.xdf]]'''


Important Notes:
Old Versions:
*When coming from 430056 EWS delete, you must flash in bootmode first, read out the fresh flashed ECU with MS4X Flasher and the apply all the mods in that file.
*[[:File:Siemens_MS43_MS430069_Community_Patchlist_v2.5.xdf|Siemens_MS43_MS430069_Community_Patchlist_v2.5.xdf]]
*Bootmode flashing is only needed when you want to virginize the ECU and readapt it to a another EWS module. Every other feature works without bootmode flashing!
*[[:File:Siemens_MS43_MS430069_Community_Patchlist.xdf|Siemens_MS43_MS430069_Community_Patchlist_v1.0.xdf]]


'''Download it here: [[:File:Siemens_MS43_MS430069_Community_Patchlist.xdf|Siemens_MS43_MS430069_Community_Patchlist.xdf]]'''


[[File:MS4X_MS430069_Community_Patchlist.png|800px]]
[[File:MS4X_MS430069_Community_Patchlist.png|900px]]


=ECU Information=
=ECU Information=
This section shows the first entry of the user information fields (UIF), the ECU number, the ISN and most important the softwareversion.
[[File:MS4X_MS430069_Community_Patchlist_ECU_Information.png‎|thumbnail|ECU Information]]
 
Please keep in mind, that the show UIF values does not necessarely have to be true, as some dealership did not write the UIF section after updating the ECU during service.


===== Parameters =====
*'''UIF Vehicle Identification Number'''
*'''UIF Vehicle Identification Number'''
*'''UIF Software Number'''
*'''UIF Software Number'''
Line 29: Line 33:
*'''Softwareversion'''
*'''Softwareversion'''


[[File:MS4X_MS430069_Community_Patchlist_ECU_Information.png‎|ECU Information]]
===== Explanation =====
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=
=Immobilizer Bypass=
*'''[PATCH] Immobilizer Bypass''' - Disables the EWS / immobilizer checks of the ecu
===== Parameters =====
*'''[PATCH] Clear Immobilizer Data''' - Clear all EWS / immobilizer related data to realign the ECU with EWS module via INPA. Requires bootmode flash!
*'''[PATCH] Immobilizer Bypass''' - Bypasses the immobilizer checks of the ECU
*'''[PATCH] Clear Immobilizer Data''' - Virginizes the ECU by clearing all immobilizer related data
 
===== Explanation =====
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.


Notes:
To synchronize ISN and rolling codes between the ECU and the EWS3 module just use INPA or MS4X Dev Flasher.
*On some cars it takes some time during the first crank, so crank it a bit longer than you are used to if the engine isn't firing up right away.


=Checksum Bypass=
=Checksum Bypass=
*'''[PATCH] Checksum Bypass''' - Disables both checksums for the calibration data section (not needed when using MS4X Dev Group Flasher)
===== Parameters =====
* '''[PATCH] Checksum Bypass''' - Disables both checksum checks for the calibration data section
 
===== Explanation =====
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 Deprecated=
 
===== Parameters =====
*'''[PATCH] Remove Deprecated Launch Control''' - Removes the old launch control feature of patchlist v2.5 and before from the binary
*'''[DATA] Remove Deprecated Launch Control''' - Removes the old launch control data of patchlist v2.5 and before from the binary


This feature is often misinterpreted with completely turning off checksums. It does ONLY bypass checksum correction for the calibration data. Program code and bootloader checksums still need correction.
===== Explanation =====
Please do no longer use this and switch to the new launch control feature that implements new features


=Launch Control=
=M Instrument Cluster LEDs=
*'''[PATCH] Launch Control'''
[[File:MS4X_MS430069_Patchlist_M_Cluster.png‎|180px|thumbnail|M Cluster Values]]
**'''c_conf_lc''' - Configuration switch to enable or disable the launch control feature
===== Parameters =====
***0 = Disabled
* '''[PATCH] M3/M5 Cluster LED Mod''' - Implements code that controls the LEDs of the M3/M5 cluster
***1 = Enabled when clutch is pressed
* '''ldpm_toil_led''' - Oil temperatur axis to adjust the switch points of the led array for the warmup light feature
***2 = Enabled when clutch is pressed and cruise control LED is active
* '''id_icl_toil_led__n''' - LEDs used at the given  oil tempetature for the warmup light feature
**'''c_n_max_lc''' - Maximum engine speed while the launch control is engaged
* '''ldpm_toil_led''' - Engine Speed axis to adjust the switch points of the led array for the shift light feature
**'''c_pvs_min_lc''' - Minimum accellerator pedal position for the launch control to be activated
* '''id_icl_led__n''' - LEDs used at the given enginespeed for the shift light feature
**'''c_vs_max_lc''' - Maximum vehicle speed when the launch control deactivates and switches to normal limiters


This implements a new launch control feature that sets an additional revlimiter up to a specific vehicle speed while meeting the following calibration values.
===== Explanation =====
For an explanation of the values see [https://www.ms4x.net/index.php?title=Siemens_MS43#M_Cluster_LED_Control M Cluster LED Control]


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''').
You can retrofit the LEDs to a non-M cluster with this guide: [[Cluster_M3_LED_Retrofitting|Cluster M3 LED Retrofitting]]


The configuration 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.
=DS2 Logging Extensions=
===== Parameters =====
* '''[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


You should tweak the vehicle speed maximum for the launch control to be slightly below the regular vehicle speed in 1st gear for the configured rev limit.
===== Explanation =====
Since MS43 only outputs a small amount of loggable values we created a custom DS2 logging command without slowing down logging rate.


=M3/M5 Cluster LEDs=
This extends the stock command with the following values:
*'''[PATCH] M3/M5 Cluster LED Mod''' - Implements code that controls the LEDs of the M3 cluster to act like in an E46 M3 or E39 M5
* Individual Ignition Timing For All Cylinders And Average
**'''ldpm_toil_led''' - Oil temperatur axis to adjust the switch points of the led array for the warmup light feature
* Fuel Injector Pulse Width For Bank 2 And Average
**'''id_icl_toil_led__n''' - LEDs used at the given  oil tempetature for the warmup light feature
* Calculated Manifold Air Pressure
**'''ldpm_toil_led''' - Engine Speed axis to adjust the switch points of the led array for the shift light feature
* Active VO Table
**'''id_icl_led__n''' - LEDs used at the given enginespeed for the shift light feature
* 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


For an explaination of the values see [https://www.ms4x.net/index.php?title=Siemens_MS43#M_Cluster_LED_Control M Cluster LED Control]
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.


=Extended DS2 Logging=
When looking at individual cylinder ignition angles, you will see that sometimes logging only cylinder 1 won't be enough. Same with injection.
*'''[PATCH] DS2 Logging Feature Enhancement'''


This patch implements a new DS2 logging command (0B B0) that extends the stock (0B 03) with the following values:
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!


*Ignition timing for all cylinders
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:
*Fuel injector pulse width for bank 2
*Calculated manifold air pressure
*Active VO table
*Filtered load values
*Calculated gear
*Rear O2 voltage input


There will be more information published on this soon
'''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=
=MAF Sensor Hack=
*'''[PATCH] MAF Sensor Hack 2048kg/h'''
===== Parameters =====
**'''id_maf_tab''' - MAF sensor table 1x256
* '''[PATCH] MAF Sensor Hack 2048kg/h''' - Changes code to allow 2048kg/h of air mass to be measured
**'''id_maf_tab''' - MAF sensor table 16x16
* '''id_maf_tab''' - MAF sensor table 256x1
* '''id_maf_tab''' - MAF sensor table 16x16
 
===== Explanation =====
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.


This patch doubles the airflow capability of the ECU 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)=
=Boost Control Over Canister Purge Output (Experimental)=
*'''[PATCH] Boost Control'''
===== Parameters =====
**'''c_tco_min_cp''' - Coolant temperature threshold for activation of the boost control / canister purge PWM output
*'''[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
**'''ip_cppwm_min___n__maf''' - PWM duty circle output table engine speed vs. engine load
*'''c_tco_min_cp''' - Coolant temperature threshold for activation of the boost control / canister purge PWM output
**'''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)
*'''ip_cppwm_min___n__maf''' - PWM duty circle output table engine speed vs. engine load
**'''ldpm_maf_1''' - Engine load X-axis used by the boost control / canister purge PWM output table
*'''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_n_32_7''' - Engine speed Y-axis used by the boost control / canister purge PWM output table
*'''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 boost control feature by forcing the ECU to use '''ip_cppwm_min_*''' tables and also linearizes '''ip_cppwm_cps__cppwm'''.
===== Explanation =====
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.
This feature is highly experimental and must be used with caution. The solenoid output uses a 10hz PWM base frequency.
=Ignition Cut Limiter=
===== Parameters =====
*'''[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
===== Explanation =====
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.
=Alpha/N=
===== Parameters =====
*'''[PATCH] Alpha/N''' - Implements code to use load value from MAF substitute table
===== Explanation =====
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=
[[File:MS4X_MS430069_Patchlist_MIL_Knock.png]]
===== Parameters =====
*'''[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
===== Explanation =====
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=
===== Parameters =====
[PATCH] Daniel_F. 430056 Update Fix - Implements the fix
===== Explanation =====
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.'''
=E3x Differential Vehicle Speed Sensor Accuracy Improvement=
===== Parameters =====
[PATCH] E3x Differential Vehicle Speed Sensor Accuracy Improvement - Skips division of VS signal
===== Explanation =====
This will skip the division of the speed sensor signal in ECU code to make the vehicle speed reading more accurate with older BMW speed sensors located inside the rear differential.
Very handy if you install M54 engine into E30 or E34 and want to keep the VS sensor of the rear axle differential. Set c_vs_fac to ~1096 impulses per kilometer.
=Fuel Cut Table Switch Over Cruise Control=
===== Parameters =====
* '''[PATCH] Deceleration Maps Over Cruise Switch''' - Decelleration map switching changed to cuise control main switch
===== Explanation =====
Instead of depending on the AC compressor relay state, the decision of deceleration maps for ignition and injection will be depending on cruise control main switch (green LED in cluster).
Ignition angle change limitation is still depending on AC on/off to put less stress on AC belt.
Affected tables are:
*ip_n_min_puc__tco & ip_n_min_accin_puc__tco
*ip_iga_puc__n__tco & ip_iga_accin_puc__n__tco
=LC / NLS / RAL Features=
[[File:MS4X_MS430069_Patchlist_LC_NLS_RAL_1.png]]
'''LC stand for Launch Control, NLS stands for No Lift Shift and RAL stands for Rolling Anti Lag'''
*'''[PATCH] Launch Control & Rolling Anti Lag''' - Implements code for the launch control and rolling anti lag feature
*'''[PATCH] LC & RAL Default Values''' - Implements default values for the launch control and rolling anti lag feature
*'''c_tco_max_iga_rtd_lc_nls_ral''' - Maximum coolant temperature during ignition retard for LC, NLS and RAL features
*'''c_pvs_min_lc''' - Minimum accelerator pedal position for the launch control to be activated
*'''c_pvs_min_lc_nls''' - Minimum accelerator pedal input to activate launch control and no lift shift feature.
=== Launch Control ===
[[File:MS4X_MS430069_Patchlist_LC_1.png]]
==== General Parameters ====
*'''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_conf_lc_iga_rtd''' - Configuration switch to apply additional ignition angle retard c_iga_rtd_lc_nls_ral while the launch control is active and clutch is depressed
**0 = Disabled
**1 = Enabled
*'''c_n_max_lc''' - Maximum engine speed while the launch control is active
*'''c_vs_max_lc''' - Maximum vehicle speed when the launch control deactivates and switches to normal limiters
==== Explanation ====
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).
=== Rolling Anti Lag ===
[[File:MS4X_MS430069_Patchlist_RAL_1.png]]
==== General Parameters ====
*'''c_conf_ral''' - Configuration switch to control the rolling anti lag behaviour
**0 = Disabled
**1 = Enabled
*'''c_pvs_min_ral''' - Minimum accelerator pedal input to activate rolling anti lag feature.
==== Explanation ====
This implements a rolling anti lag feature that retards the current igntion angle by a configurable amount.
It will be activated as soon as you press and hold the "-" button on your cruise control and exceed the configured PVS value c_pvs_min_ral.
=MAF Based Full Load Enrichment=
[[File:MS4X_MS430069_Patchlist_MAF_Full_Load_Values.png|900px]]
===== Parameters =====
*'''[PATCH] MAF Based Full Load Enrichment''' - Implements code changes
*'''[DATA] MAF Based FL Default Values - M54B30''' - Applies the default calibration data for the MAF full load detection patch for M54B30 engine
*'''c_maf_fl_accin''' - Load threshold for AC compressor deactivation during full load
*'''id_maf_fl_ivvt__n''' - Load threshold for full load activation - VANOS
*'''id_maf_fl_vim__n_vim''' - Load threshold for full load activation - DISA
*'''ip_ti_fl__n__maf''' - Full load enrichment factor for nominal injection time (Factor)
*'''ip_ti_fl__n__maf___afr''' - Full load enrichment factor for nominal injection time (AFR Gasoline)
*'''ip_ti_fl__n__maf___lambda''' - Full load enrichment factor for nominal injection time (Lambda)
===== Explanation =====
This patch reworks the PVS depending full load detection so that the '''injection full load''' is controlled by an extended 16x12 ip_ti_fl 3D table.
'''ip_ti_fl__n__maf''' is the enrichment factor used by the ECU to richen up the air fuel mixture by the given value.
A factor of 0.00 means that there will be no enrichment and injection system will not enter full load state.
Any value other than 0.00 will make the ECU leave closed loop operation and richens up or leans out the air fuel mixture depending on value.
'''ip_ti_fl__n__maf___afr''' & '''ip_ti_fl__n__maf___lambda''' are just calculated from ip_ti_fl__n__maf and can only be used as intended when your part load fuel tables are tuned for lambda 1.0 / afr 14.7
'''The other full load systems'''(as VANOS, DISA, AC) are triggered by exceeding the configured MAF threshold instead of the old PVS threshold.

Revision as of 14:29, 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.9.xdf

Old Versions:


MS4X MS430069 Community Patchlist.png

ECU Information

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

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

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

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

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

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 Deprecated

Parameters
  • [PATCH] Remove Deprecated Launch Control - Removes the old launch control feature of patchlist v2.5 and before from the binary
  • [DATA] Remove Deprecated Launch Control - Removes the old launch control data of patchlist v2.5 and before from the binary
Explanation

Please do no longer use this and switch to the new launch control feature that implements new features

M Instrument Cluster LEDs

M Cluster Values
Parameters
  • [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
Explanation

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

Parameters
  • [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
Explanation

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

Parameters
  • [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
Explanation

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)

Parameters
  • [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
Explanation

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

Parameters
  • [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
Explanation

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.

Alpha/N

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

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

MS4X MS430069 Patchlist MIL Knock.png

Parameters
  • [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
Explanation

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

Parameters

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

Explanation

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.

E3x Differential Vehicle Speed Sensor Accuracy Improvement

Parameters

[PATCH] E3x Differential Vehicle Speed Sensor Accuracy Improvement - Skips division of VS signal

Explanation

This will skip the division of the speed sensor signal in ECU code to make the vehicle speed reading more accurate with older BMW speed sensors located inside the rear differential.

Very handy if you install M54 engine into E30 or E34 and want to keep the VS sensor of the rear axle differential. Set c_vs_fac to ~1096 impulses per kilometer.

Fuel Cut Table Switch Over Cruise Control

Parameters
  • [PATCH] Deceleration Maps Over Cruise Switch - Decelleration map switching changed to cuise control main switch
Explanation

Instead of depending on the AC compressor relay state, the decision of deceleration maps for ignition and injection will be depending on cruise control main switch (green LED in cluster).

Ignition angle change limitation is still depending on AC on/off to put less stress on AC belt.

Affected tables are:

  • ip_n_min_puc__tco & ip_n_min_accin_puc__tco
  • ip_iga_puc__n__tco & ip_iga_accin_puc__n__tco

LC / NLS / RAL Features

MS4X MS430069 Patchlist LC NLS RAL 1.png

LC stand for Launch Control, NLS stands for No Lift Shift and RAL stands for Rolling Anti Lag

  • [PATCH] Launch Control & Rolling Anti Lag - Implements code for the launch control and rolling anti lag feature
  • [PATCH] LC & RAL Default Values - Implements default values for the launch control and rolling anti lag feature
  • c_tco_max_iga_rtd_lc_nls_ral - Maximum coolant temperature during ignition retard for LC, NLS and RAL features
  • c_pvs_min_lc - Minimum accelerator pedal position for the launch control to be activated
  • c_pvs_min_lc_nls - Minimum accelerator pedal input to activate launch control and no lift shift feature.

Launch Control

MS4X MS430069 Patchlist LC 1.png

General Parameters

  • 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_conf_lc_iga_rtd - Configuration switch to apply additional ignition angle retard c_iga_rtd_lc_nls_ral while the launch control is active and clutch is depressed
    • 0 = Disabled
    • 1 = Enabled
  • c_n_max_lc - Maximum engine speed while the launch control is active
  • c_vs_max_lc - Maximum vehicle speed when the launch control deactivates and switches to normal limiters

Explanation

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).

Rolling Anti Lag

MS4X MS430069 Patchlist RAL 1.png

General Parameters

  • c_conf_ral - Configuration switch to control the rolling anti lag behaviour
    • 0 = Disabled
    • 1 = Enabled
  • c_pvs_min_ral - Minimum accelerator pedal input to activate rolling anti lag feature.

Explanation

This implements a rolling anti lag feature that retards the current igntion angle by a configurable amount.

It will be activated as soon as you press and hold the "-" button on your cruise control and exceed the configured PVS value c_pvs_min_ral.

MAF Based Full Load Enrichment

MS4X MS430069 Patchlist MAF Full Load Values.png

Parameters
  • [PATCH] MAF Based Full Load Enrichment - Implements code changes
  • [DATA] MAF Based FL Default Values - M54B30 - Applies the default calibration data for the MAF full load detection patch for M54B30 engine
  • c_maf_fl_accin - Load threshold for AC compressor deactivation during full load
  • id_maf_fl_ivvt__n - Load threshold for full load activation - VANOS
  • id_maf_fl_vim__n_vim - Load threshold for full load activation - DISA
  • ip_ti_fl__n__maf - Full load enrichment factor for nominal injection time (Factor)
  • ip_ti_fl__n__maf___afr - Full load enrichment factor for nominal injection time (AFR Gasoline)
  • ip_ti_fl__n__maf___lambda - Full load enrichment factor for nominal injection time (Lambda)
Explanation

This patch reworks the PVS depending full load detection so that the injection full load is controlled by an extended 16x12 ip_ti_fl 3D table.

ip_ti_fl__n__maf is the enrichment factor used by the ECU to richen up the air fuel mixture by the given value.

A factor of 0.00 means that there will be no enrichment and injection system will not enter full load state.

Any value other than 0.00 will make the ECU leave closed loop operation and richens up or leans out the air fuel mixture depending on value.

ip_ti_fl__n__maf___afr & ip_ti_fl__n__maf___lambda are just calculated from ip_ti_fl__n__maf and can only be used as intended when your part load fuel tables are tuned for lambda 1.0 / afr 14.7

The other full load systems(as VANOS, DISA, AC) are triggered by exceeding the configured MAF threshold instead of the old PVS threshold.