Background:
The E36 M52/S52 DME is Siemens MS41.
Euro M52 runs software 41.0, NA M52 runs 41.1, S52 runs MS41.2.
All but early 41.0 units are tunable via reflash.
Preferred method:
Add OBD2 port or "BMW 20 pin ADS adapter"
Enable write access
INPA K+DCAN Cable
MS41 Quickflash read/write tool
Romraider+MS41 ECU Definitions for editing.
I'm assuming people have a running engine with any necessary deletes done.
Answers to my original questions:
Take injector flow rates and multiply them OLD RATE / NEW RATE.
Example: Stock Pink Top 21.5lb converting to Bosch 52lb EV14s would be 21.5/52 = 0.4135 as a multiplier for all maps that have fuel(ms) as a value.
Don't forget to update deadtimes and minimum PW.
This answer is a bit more complex.
1. MAF will need to be updated to something with more range, preferably that works in blow-thru.
2. MAF Scalar will need to be updated to suit the new MAF, but to avoid overflow in the software, the entire table needs to be divided by 2.
3. All tables with "Load" as an axis or table value need to be divided by 2 as well. This doesn't include any tables that use percentages. Remember that from now on, all values are half of what the true load is. Mostly this only affects comparisons between different ECUs/cars.
4. Use Excel or similar to graph your fuel map as Load vs Injector pulse width and generate a curve fit with a linear equation.
5. Use this equation to generate any Load column values you desire. Recommend leaving first two columns alone for idle, and to leave one column more than you think you need as an overboost protection,
The main Fuel map is supposed to be stoichiometric, so don't add fuel to this map during this conversion.
This is handled by the Open Loop Detection and Open Loop Enrichment (OLE) tables.
Open Loop Detection decides when to add extra fuel, based on RPM and TPS%.
Stock values are quite high. Leave them alone below Boost Threshold RPM, drop them to 25-35% above boost threshold. Datalog to refine the percentage. If you find you hit OLE while cruising on the highway, bump the percentage. If you find you're able to spool with the car not triggering OLE, decrease the percentage at that RPM.
Open Loop Enrichment decides how much extra fuel to add. Most people are familiar with AFR but Lambda makes this easier to do.
Look at a lambda to AFR conversion chart and see that 11.8 AFR for Gasoline is ~0.8 Lambda, ie. 20% extra fuel.
Maybe you want it richer/leaner, but use whichever value you decide on for the OLE table from boost threshold onward.
This will be the same axis as the fuel table. Rescale as best you can from stock.
Basically leave the timing alone for any stock value, as it's off-boost. Keep in mind what you did to half the load before.
On-boost, taper the ign timing down to 10 degrees at peak boost.
Tune based on dyno/knock feedback. Knock control is very aggressive on MS41.
If it consistently pulls timing in a cell or creates stored knock correction values it's a good sign there's knock (or other engine issue/noise) but an inconsistent -1.5 degree correction isn't worrying.
Original Post:
I'm currently attempting to make a base map for my M52 turbo from the stock MS41.2 maps. I have increased the load axis for all the timing/spark maps from 700mg/stk to 1200(at least until I get close to this amount) and my RPM axis from 6500 to 7k by deleting every second value until I had room for the increased range. I then moved the tables over to realign the table values with their axes, but that leaves me with large gaps of increased load/rpm without defined pulsewidth/timing values.
So, does anyone have any recommendations or links to anything specifically related to:
Scaling injector pulse width for larger injectors (without a universal modifier like reqfuel in MS)
Extending injector pulse width tables and extending table data for additional load/RPM columns and rows.
Quantity of fuel to add when adding forced induction to an NA engine's maps.
Extending ignition timing tables for additional load/rpm columns and rows.
How much timing to pull from an NA tune for a FI base tune?
I've searched a lot of this on google, but all results are either: for guessing without having any tables to start with, or MS, which isn't mg/stroke, kg/hr, pulse width and has req fuel and other tools to make it easy (plus base tunes widely shared on the internet)
The E36 M52/S52 DME is Siemens MS41.
Euro M52 runs software 41.0, NA M52 runs 41.1, S52 runs MS41.2.
All but early 41.0 units are tunable via reflash.
Preferred method:
Add OBD2 port or "BMW 20 pin ADS adapter"
Enable write access
INPA K+DCAN Cable
MS41 Quickflash read/write tool
Romraider+MS41 ECU Definitions for editing.
I'm assuming people have a running engine with any necessary deletes done.
Answers to my original questions:
Scaling injector pulse width for larger injectors
Example: Stock Pink Top 21.5lb converting to Bosch 52lb EV14s would be 21.5/52 = 0.4135 as a multiplier for all maps that have fuel(ms) as a value.
Don't forget to update deadtimes and minimum PW.
Extending injector pulse width tables and extending table data for additional load/RPM columns and rows.
1. MAF will need to be updated to something with more range, preferably that works in blow-thru.
2. MAF Scalar will need to be updated to suit the new MAF, but to avoid overflow in the software, the entire table needs to be divided by 2.
3. All tables with "Load" as an axis or table value need to be divided by 2 as well. This doesn't include any tables that use percentages. Remember that from now on, all values are half of what the true load is. Mostly this only affects comparisons between different ECUs/cars.
4. Use Excel or similar to graph your fuel map as Load vs Injector pulse width and generate a curve fit with a linear equation.
5. Use this equation to generate any Load column values you desire. Recommend leaving first two columns alone for idle, and to leave one column more than you think you need as an overboost protection,
Quantity of fuel to add when adding forced induction to an NA engine's maps.
This is handled by the Open Loop Detection and Open Loop Enrichment (OLE) tables.
Open Loop Detection decides when to add extra fuel, based on RPM and TPS%.
Stock values are quite high. Leave them alone below Boost Threshold RPM, drop them to 25-35% above boost threshold. Datalog to refine the percentage. If you find you hit OLE while cruising on the highway, bump the percentage. If you find you're able to spool with the car not triggering OLE, decrease the percentage at that RPM.
Open Loop Enrichment decides how much extra fuel to add. Most people are familiar with AFR but Lambda makes this easier to do.
Look at a lambda to AFR conversion chart and see that 11.8 AFR for Gasoline is ~0.8 Lambda, ie. 20% extra fuel.
Maybe you want it richer/leaner, but use whichever value you decide on for the OLE table from boost threshold onward.
Extending ignition timing tables for additional load/rpm columns and rows. / How much timing to pull from an NA tune for a FI base tune
Basically leave the timing alone for any stock value, as it's off-boost. Keep in mind what you did to half the load before.
On-boost, taper the ign timing down to 10 degrees at peak boost.
Tune based on dyno/knock feedback. Knock control is very aggressive on MS41.
If it consistently pulls timing in a cell or creates stored knock correction values it's a good sign there's knock (or other engine issue/noise) but an inconsistent -1.5 degree correction isn't worrying.
Original Post:
I'm currently attempting to make a base map for my M52 turbo from the stock MS41.2 maps. I have increased the load axis for all the timing/spark maps from 700mg/stk to 1200(at least until I get close to this amount) and my RPM axis from 6500 to 7k by deleting every second value until I had room for the increased range. I then moved the tables over to realign the table values with their axes, but that leaves me with large gaps of increased load/rpm without defined pulsewidth/timing values.
So, does anyone have any recommendations or links to anything specifically related to:
Scaling injector pulse width for larger injectors (without a universal modifier like reqfuel in MS)
Extending injector pulse width tables and extending table data for additional load/RPM columns and rows.
Quantity of fuel to add when adding forced induction to an NA engine's maps.
Extending ignition timing tables for additional load/rpm columns and rows.
How much timing to pull from an NA tune for a FI base tune?
I've searched a lot of this on google, but all results are either: for guessing without having any tables to start with, or MS, which isn't mg/stroke, kg/hr, pulse width and has req fuel and other tools to make it easy (plus base tunes widely shared on the internet)
Comment