...
...
MG Flasher's flex fuel blending logic uses three map tiers—Pump Fuel (PF), Flex Fuel 1 (FF1), and Flex Fuel 2 (FF2). Depending on the active ethanol level, a blending factor is calculated. The blending factor decides which calibration map tiers (PF, FF1, or FF2) are used for blending, and marks one as lower blend item and the other as upper blend item. An example is described below.
We suggest to begin by determining the ethanol content levels you’d like to include in your tune. You can use just two if you’d like, pump fuel and E50 for example, lets call this a One-Stage Approach. However, for optimal tuning, we suggest using a Two-Stage Approach and providing tunes for 3 independent fuel levels; pump fuel, E50, and, E85 as these are the most popular.
Info |
---|
OEM maps in OEM locations are identified as Slot 0 Pump Fuel maps. Slot 1, 2, 3 and 4 Pump Fuel maps are added by MG Flasher and placed in a custom location near the end of the binary file where we found unused space. |
...
Blending Factor
Independent blend factors can be set for each category of tables/maps and per map slot. If you won’t utilize all map slots or you don’t need advanced control over FF1 and FF2 maps, it can be set to always use slot 0 FF1 and FF2 maps with CW_UseMultipleFlexFuelSlots.
A blending factor of 0% reads directly from the PF map, 100% reads from the FF1 map, and 200% reads from FF2 map. Blending Factors in between 0-100% will blend the values between PF and FF1, whereas 100-200% will blend FF1 and FF2.
You can also blend between PF and FF2 when you enable the codeword: CW_UsePumpFuelMapWhenBlendFactorIsGreaterThan1. With this codeword enabled, blending factors between 0-100% operate as before. However, when over 100%, you’re blending between PF and FF2. To clarify, with this codeword enabled, a blending factor of 100.01% will output mostly the value of PF, and a blending factor of 150% will output the halfway value between PF and FF2.
One-Stage Approach
For a One-Stage Approach, you’d restrict the blend factor tables to stay between 0-100%. This means you’re only blending between PF and FF1 tables.
...
This One-Stage Approach would be perfect to use when blending between pump fuel at 0% ethanol, and a fuel at 50% ethanol content. This would be the most simplified method of Flex Fuel tuning MG Flasher offers with CC v7.3.
Info |
---|
Keep an eye out for upcoming Custom Code updates which will further simplify the flex fuel tuning process. |
Two-Stage Approach
If you’re using a Two-Stage Approach, you may configure a blend factor map as such:
...
In this example, we set the blend factor to 0% when ethanol is 10% or less. This was to account for pump fuel already containing 10% ethanol content. We set 100% blend factor when ethanol content is at 50%, and a blend factor of 200% when ethanol content is 85% or higher with intermediate blend factors between these ethanol levels.
Note |
---|
Flex Fuel 2 (FF2) maps require valid calibration data, even if you do not use it, regardless if you keep blending factors at 100% or lower. This can be easily avoided by generating a stock map binary files from the app with Custom Code v7.3. |
...
How Blending Works
PF Maps: Serve as the base calibrations for boost, fueling, ignition, knock, load, etc.
FF1 Maps: Intermediate maps for partial ethanol blends (e.g., E30–E50).
FF2 Maps: High ethanol maps for blends near or at E85.
The blending factor, derived from ethanol content, determines the interpolation between these maps:
Blending factor 0.00–100.00%: Interpolates between PF (lower blend item) and FF1 (upper blend item).
Blending factor 100.00–200.00%: Interpolates between FF1 (lower blend item) and FF2 (upper blend item).
Utilize the codeword CW_UsePumpFuelMapWhenBlendFactorIsGreaterThan1 to blend between PF and FF2 when the blending factor is between 100.00–200.00%.
Formulas
To calculate the blended value and the effective blend factor:
Eazy math inline |
---|
body | \text{Blended Value} = \left( (\text{Upper Blend Item} - \text{Lower Blend Item}) \times \text{Effective Blend Factor} \right) + \text{Lower Blend Item} |
---|
align | center |
---|
|
If the Blending Factor is over 100%: Eazy math inline |
---|
body | \text{Effective Blend Factor} = \text{Mapped Blending Factor} - 100\% |
---|
align | center |
---|
|
If the Blending Factor is 100% or less:
Eazy math inline |
---|
body | \text{Effective Blend Factor} = \text{Mapped Blending Factor} |
---|
align | center |
---|
|
...
Examples
Let’s review the math on how boost would be calculated for map BMWtchsp_p_ReqMax_C. The following tables show the values for Pump Fuel, Flex Fuel 1, and, Flex Fuel 2 maps. They are 2500hPa (36 psi), 2700hPa (39 psi), and, 3000hPa (43 psi), respectfully. These are absolute boost pressures.
...
Pump Fuel boost map reads 2500hPa (36 psi)
Flex Fuel 1 boost map reads 2700hPa (39 psi)
Flex Fuel 2 boost map reads 3000hPa (43 psi)
Let’s demonstrate the blending output using both one and two stage approaches for blending factor mapping.
...
One-Stage Approach (Example 1)
Assume the ethanol Sensor reads 40% for this example. According to our example blend factor table above (for the One-Stage Approach), the mapped blending factor is 80%.
Eazy math inline |
---|
body | \text{Mapped Blending Factor} = 80\% |
---|
align | center |
---|
|
Eazy math inline |
---|
body | \text{Effective Blending Factor} = \text{Mapped Blending Factor} |
---|
align | center |
---|
|
Eazy math inline |
---|
body | \text{Effective Blending Factor} = 80\% |
---|
align | center |
---|
|
Since our blend factor is 80%, which is between 0-100%, we know our lower and upper blend items are:
Eazy math inline |
---|
body | \text{Lower blend item} = \text{PF map value} |
---|
align | center |
---|
|
Eazy math inline |
---|
body | \text{Upper blend item} = \text{FF1 map value} |
---|
align | center |
---|
|
Now we can calculate the blended map value using:
Eazy math inline |
---|
body | \text{Blended value} = \left( (\text{upper blend item} - \text{lower blend item}) \times \text{Effective blend factor} \right) + \text{lower blend item} |
---|
align | center |
---|
|
Eazy math inline |
---|
body | \text{Blended value} = \left( (\text{FF1} - \text{PF}) \times \text{Effective blend factor} \right) + \text{PF} |
---|
align | center |
---|
|
Eazy math inline |
---|
body | \text{Blended value} = \left( (2700 \, \text{hPa} - 2500 \, \text{hPa}) \times 80\% \right) + 2500 \, \text{hPa} |
---|
align | center |
---|
|
Eazy math inline |
---|
body | \text{Blended value} = \left( 200 \, \text{hPa} \times 80\% \right) + 2500 \, \text{hPa} |
---|
align | center |
---|
|
Eazy math inline |
---|
body | \text{Blended value} = 160 \, \text{hPa} + 2500 \, \text{hPa} |
---|
align | center |
---|
|
Eazy math inline |
---|
body | \text{Blended value} = 2660 \, \text{hPa} |
---|
align | center |
---|
|
From this example, we can see the final blended output for BMWtchsp_p_ReqMax_C at 40% ethanol is 2660 hPa (~38 psi).
...
Two-Stage Approach (Example 2)
Assume the ethanol Sensor reads 60% for this example. According to our example blend factor table above (for the Two-Stage Approach), the mapped blending factor is 128%. Thus, we can calculate the effective blend factor:
Eazy math inline |
---|
body | \text{Mapped Blending Factor} = 128\% |
---|
align | center |
---|
|
Eazy math inline |
---|
body | \text{Effective Blending Factor} = \text{Mapped Blending Factor} - 100\% |
---|
align | center |
---|
|
Eazy math inline |
---|
body | \text{Effective Blending Factor} = 28\% |
---|
align | center |
---|
|
For this example, we’ll assume CW_UsePumpFuelMapWhenBlendFactorIsGreaterThan1 is disable. Since our blend factor is 128%, which is between 100-200%, we know our lower and upper blend items are:
Eazy math inline |
---|
body | \text{Lower blend item} = \text{FF1 map value} |
---|
align | center |
---|
|
Eazy math inline |
---|
body | \text{Upper blend item} = \text{FF2 map value} |
---|
align | center |
---|
|
Now we can calculate the blended map value using:
Eazy math inline |
---|
body | \text{Blended value} = \left( (\text{upper blend item} - \text{lower blend item}) \times \text{Effective blend factor} \right) + \text{lower blend item} |
---|
align | center |
---|
|
Eazy math inline |
---|
body | \text{Blended value} = \left( (\text{FF2} - \text{FF1}) \times \text{Effective blend factor} \right) + \text{FF1} |
---|
align | center |
---|
|
Eazy math inline |
---|
body | \text{Blended value} = \left( (3000 \, \text{hPa} - 2700 \, \text{hPa}) \times 28\% \right) + 2700 \, \text{hPa} |
---|
align | center |
---|
|
Eazy math inline |
---|
body | \text{Blended value} = \left( 300 \, \text{hPa} \times 28\% \right) + 2700 \, \text{hPa} |
---|
align | center |
---|
|
Eazy math inline |
---|
body | \text{Blended value} = 84 \, \text{hPa} + 2700 \, \text{hPa} |
---|
align | center |
---|
|
Eazy math inline |
---|
body | \text{Blended value} = 2784 \, \text{hPa} |
---|
align | center |
---|
|
From this example, we can see the final blended output for BMWtchsp_p_ReqMax_C at 40% ethanol is 2784 hPa (~40 psi).
...
Further References
Tip |
---|
One of the features that set us apart from the competition is the availability of advanced logging parameters. You can see the lower and upper blend items, the blend factor and the blended value for each map in the active switchable map slot: Advanced Flex Fuel Logging Parameters
This is currently available only for internal developers, however, if there is enough interest, we could enable this to everyone. Please open a ticket (via email) to request this feature, or contact us on Slack. |
For specific examples and safety considerations when tuning with ethanol, see Safety Limits & Ethanol Content Protections.