Advertising:
MS43X Custom Firmware: Difference between revisions
Line 61: | Line 61: | ||
Make sure to check the minimum version included in the function sub page. | Make sure to check the minimum version included in the function sub page. | ||
== | == Boost Controller == | ||
Minimum firmware version: '''MS43X001''' | 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. | 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_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_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 threashold 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 | |||
Revision as of 21:55, 5 December 2023
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.
Overview
All the basics and resources will be explained here. For a more detailed explaination 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 (January 2024)
MS43X001
- Initial release firmware
Designated I/O
- Secondary Air Mass Air Flow Sensor (SA_MAF) - manifold air pressure sensor input
Main Features
Load Acquisition
One of the most impacting changes with MS43X is the completely overhauled engine load acquisition. We changed the complicated engine load calculation used in MS43 to aspeed density or volumetric efficiency (VE) based system. This is more commonly used with standalone ECUs and can be tuned just like that. That means you can now decide between a MAF sensor, a 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 threasholds for the signal error detection.
In theory you can even connect a MAF and a MAP sensor and then switch by just changing c_conf_load in the calibration file.
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 integration in standalones 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
Make sure to check the minimum version included in the function sub page.
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 threashold 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
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.
Launch Control
Minimum firmware version: MS43X001
Knock Light
Minimum firmware version: MS43X001
M Cluster Support
Minimum firmware version: MS43X001