Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

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}
aligncenter
If the Blending Factor is over 100%:

Eazy math inline
body\text{Effective Blend Factor} = \text{Mapped Blending Factor} - 100\%
aligncenter

If the Blending Factor is 100% or less:

Eazy math inline
body\text{Effective Blend Factor} = \text{Mapped Blending Factor}
aligncenter

...

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\%
aligncenter

Eazy math inline
body\text{Effective Blending Factor} = \text{Mapped Blending Factor}
aligncenter

Eazy math inline
body\text{Effective Blending Factor} = 80\%
aligncenter

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}
aligncenter

Eazy math inline
body\text{Upper blend item} = \text{FF1 map value}
aligncenter

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}
aligncenter
Eazy math inline
body\text{Blended value} = \left( (\text{FF1} - \text{PF}) \times \text{Effective blend factor} \right) + \text{PF}
aligncenter

Eazy math inline
body\text{Blended value} = \left( (2700 \, \text{hPa} - 2500 \, \text{hPa}) \times 80\% \right) + 2500 \, \text{hPa}
aligncenter

Eazy math inline
body\text{Blended value} = \left( 200 \, \text{hPa} \times 80\% \right) + 2500 \, \text{hPa}
aligncenter

Eazy math inline
body\text{Blended value} = 160 \, \text{hPa} + 2500 \, \text{hPa}
aligncenter

Eazy math inline
body\text{Blended value} = 2660 \, \text{hPa}
aligncenter

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\%
aligncenter

Eazy math inline
body\text{Effective Blending Factor} = \text{Mapped Blending Factor} - 100\%
aligncenter

Eazy math inline
body\text{Effective Blending Factor} = 28\%
aligncenter

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}
aligncenter

Eazy math inline
body\text{Upper blend item} = \text{FF2 map value}
aligncenter

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}
aligncenter
Eazy math inline
body\text{Blended value} = \left( (\text{FF2} - \text{FF1}) \times \text{Effective blend factor} \right) + \text{FF1}
aligncenter

Eazy math inline
body\text{Blended value} = \left( (3000 \, \text{hPa} - 2700 \, \text{hPa}) \times 28\% \right) + 2700 \, \text{hPa}
aligncenter

Eazy math inline
body\text{Blended value} = \left( 300 \, \text{hPa} \times 28\% \right) + 2700 \, \text{hPa}
aligncenter

Eazy math inline
body\text{Blended value} = 84 \, \text{hPa} + 2700 \, \text{hPa}
aligncenter

Eazy math inline
body\text{Blended value} = 2784 \, \text{hPa}
aligncenter

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.