Advertising:

MS43X Custom Firmware: Difference between revisions

From MS4X Wiki
Line 22: Line 22:
*'''XDF''': [[:File:Siemens_MS43_MS43X001_64K.xdf|Siemens MS43 MS43X001 Partial [64kb]]]
*'''XDF''': [[:File:Siemens_MS43_MS43X001_64K.xdf|Siemens MS43 MS43X001 Partial [64kb]]]
*'''XDF''': [[:File:Siemens_MS43_MS43X001_512K.xdf|Siemens MS43 MS43X001 Full [512kb]]]
*'''XDF''': [[:File:Siemens_MS43_MS43X001_512K.xdf|Siemens MS43 MS43X001 Full [512kb]]]
*'''ADX''': [[:File:Siemens_MS43_MS43X001_Extended_Logging.adx|Siemens_MS43_MS43X001_Extended_Logging.adx]]
*'''ADX''': [[:File:Siemens_MS43_MS43X001_Extended_Logging.adx|Siemens MS43 MS43X001 Extended Logging]]


We will only reference the newest version here, for legacy versions check the download archive: [[MS43X Firmware Archive]]
We will only reference the newest version here, for legacy versions check the download archive: [[MS43X Firmware Archive]]

Revision as of 10:27, 15 January 2024

MS43X is a custom firmware that's based on MS430069, but with several new and some extended functions. Summing up it can be seen as the successor of patchlists for 430069 and will include all future feature updates. We decided to go this route because of the raising difficulty of adding new features without butchering existing ones and optimization of execution time.

Although this was very long awaited we decided to put it into excessive testing that took its time. Anyway, we are very proud to present our own firmware for a proper MAP integration and more, because it's defiantly more than just a speed density or MAP conversion, but see for yourself :)

Overview

All the basics and resources will be explained here. For a more detailed explanation check out the sub views.

Downloads

The main difference to existing firmwares is that we will no longer be publishing patchlists, because that left room for problems and lead to frustrating results in the past when used incorrectly. Every new MS43X firmware release will get new definition files that will come bundled with it.

Firmware Files
  • E36/7 Z3-series
    • soon
  • E39 5-series
    • soon
  • E46 3-series
    • soon
  • E53 X5-series
    • soon
Definition Files

We will only reference the newest version here, for legacy versions check the download archive: MS43X Firmware Archive

Changelog

Make sure to check out the latest version.

Latest Version: MS43X0001 (TBD 2024)

MS43X001

  • Initial release firmware

Hardware Prerequisites

In order to run this custom firmware its necessary to obey some simple rules regarding the wiring.

We decided to make the input and output configuration fixed.

Designated I/O

  • Secondary Air Mass Air Flow Sensor (SA_MAF) - manifold air pressure sensor input

Main Features

Like in normal MS43 we quickly explain all the features that we touched and changed for a proper working speed density conversion.

Load Acquisition

One of the most impacting changes with MS43X is the completely overhauled engine load acquisition. We simplified the stock engine load calculation used in the MS43 to make it tuneable in the same way as the speed density implementation commonly used in standalone ECUs and to top it all of you can also decide between using a MAF sensor, MAP sensor or Alpha/N as your primary load input.

  • c_conf_load - Load input configuration (0: MAP sensor, 1: MAF sensor, 2: Alpha/N)
  • c_eng_disp - Engine displacement in cubic decimeters

MAF and MAP sensors utilize different 0-5V inputs on the ECU, so you can define different thresholds for the signal error detection. This also means that you can have both a MAF and a MAP sensor connected at the same time and switch between them by changing c_conf_load in the calibration file.

Load Acquisition Data
MAP Sensor Variables
  • c_map_diag_ini - Initializations value for manifold air pressure sensor diagnostics
  • c_map_min_diag - Minimum manifold air pressure for short to ground diagnostics
  • c_map_max_diag - Maximum manifold air pressure for short to positive diagnostics

Volumetric Efficiency

Something that is different from the usual speed density implementation in standalone ECUs is that instead of a single VE table we have eight. This is necessary because the VANOS can influence engine efficiency based on valve overlap.

Injection

Ignition

New Features

Here we list features that were never available on a standard MS43. Make sure to check the minimum version needed for the feature to be available.

Boost Controller

Minimum firmware version: MS43X001

MS43X features a fully configurable boost (by gear) controller with safety function to counter overboosting. This can either be run in open loop fixed PWM output mode, or closed loop with MAP feedback and a PID algorythm.

MS43's hardware has a spare output we decided to give a meaning for boost control. Its a low-side switched PWM output that is capable of operating in the range of 10%-90% duty circle and can be loaded with a 1 amp load.

  • c_conf_bc - Configuration switch - Boost controller configuration (0: Disabled, 1: Fixed duty cycle operation, 2: Closed loop operation)
  • c_bc_req_map_thr - Minimum manifold pressure enabling closed loop operation, should be at around spring cracking pressure
  • c_bc_pwm_min - Minimum allowed duty cycle
  • c_bc_pwm_max - Maximum allowed duty cycle
  • c_bc_i_max_thr - Manifold pressure target error threshold for switching from dynamic closed loop operation to steady state closed loop operation

Also there is a safety threshold you can use to prevent overboosting including a release hysteresis where the boost controller enters normal operation mode again:

  • c_bc_map_max - Manifold pressure threshold for activation of boost cut
  • c_bc_map_max_hys - Boost cut deactivation hysteresis

In case c_conf_bc is set to "1" the boost controller will operate in fixed duty circle output without any feedback or in other words "open loop":

  • ip_bc_fixed_pwm__n - Duty cycle used during fixed duty cycle operation

In the closed loop setting it will have a complete PID regulator and a pre control for targetted boost level:

  • ip_bc_pwm_p__n - Boost controller P term
  • ip_bc_pwm_i__n - Boost controller I term
  • ip_bc_pwm_d__n__map_err - Boost controller D term
  • ip_bc_pwm_pilot__map_req__n - Pre-control duty cycle for closed loop operation

The target boost can be requested individually depending on engine speed and current gear making it a fancy boost-by-gear controller:

  • ip_bc_map_req__gear__n - Requested manifold pressure
  • ip_bc_map_req_fac__pvs_av - Requested manifold pressure accelerator pedal input correction

Credit where credit is due: Big thanks to prj from nefmoto, who generously published his assembler code over at Github. This saved a lot of time.

Flex Fuel

Minimum firmware version: MS43X001

The flex fuel integration makes use of a dedicated 0-5V input signal coming from an ethanol content sensor and or adapter board.

To maintain best safety and ensure sensor diagnostic, there's an operating range to be defined with a lower and an upper limit:

  • c_ff_v_min_diag - Minimum flex fuel sensor voltage for short to ground diagnostics
  • c_ff_v_max_diag - Maximum flex fuel sensor voltage for short to positive diagnostics

In case of a faulty sensor or if you exceed those limits a flex fuel sensor fault will get triggered and the ECU defaults into the following substitute values:

  • c_ff_ti_diag_sub - Flex fuel blending factor substitute in case of sensor fault - Injection
  • c_ff_iga_diag_sub - Flex fuel blending factor substitute in case of sensor fault - Ignition
  • c_ff_bc_diag_sub - Flex fuel blending factor substitute in case of sensor fault - Boost controller

During normal operation the following blending factors with blend between _ron98 and _e85 values in depending on flex fuel input voltage:

  • ip_fac_ff_ti__v_ff - Flex fuel blending factor - Injection
  • ip_fac_ff_iga__v_ff - Flex fuel blending factor - Ignition
  • ip_fac_ff_bc__v_ff - Flex fuel blending factor - Boost controller

Important: A factor of "0.00" means full _ron98 value useage and a factor of "1.00" means full _e85 value useage.

Knock Light

Minimum firmware version: MS43X001

Launch Control

Minimum firmware version: MS43X001

M Cluster Support

Minimum firmware version: MS43X001