After creating this thread, we later realized there are six injector scalars (similar to MS43) which can be used to scale the injectors. It might not be necessary to scale all of the fuel tables as described below. Unfortunately for MS42, tuning for larger injectors is not quite as easy as changing a single scaling parameter. For MS42, all of the tables involving the fuel calculation must be scaled. We’ve put together a simple spreadsheet to help with this task. We’ve also attached some base tunes for 24lb injectors below. However, before jumping directly to the solution, it’s good to first understand the reasoning behind the changes.
To prepare for this, we began by researching the differences between the stock tunes for MS42 and MS43 (since they’re very similar in architecture and covered a wide range of engines). It happens to be that the 328i and the 330i used different injectors. The part numbers for each injector are:
• MS42 (328i): 13537546244 (also cross-referenced as 13641427240)
• MS43 (330i): 13537546245 (also cross-referenced as 13641439800)
Our research gave us some conflicting information. The first place we found information on both injectors was fiveomotorsport.com:
• https://www.fiveomotorsport.com/1353754 ... 212172-bmw
• https://www.fiveomotorsport.com/fuel-in ... /bmw/330i/
They said these injectors had the following flow rates:
• MS42 (328i): 215 cc/min (~20.5 lb/hr)
• MS43 (330i): 282 cc/min (~26.9 lb/hr)
• Ratio: 1.31
However, a fellow enthusiast over at e46fanatics.com said the following after flow testing both: http://forum.e46fanatics.com/showpost.p ... stcount=10
• MS42 (328i): 21.4 lb/hr (~224.7 cc/min)
• MS43 (330i): 24.3 lb/hr (~255.2 cc/min)
• Ratio: 1.14
Because it’s always best to directly flow test injectors to determine the actual flow rate, we decided to trust these values instead.
For our example, we were swapping in Bosch 24lb injectors (#0 280 156 013). Keep in mind these are rated at 3.0b (as are most injectors). BMW’s fuel pressure is actually 3.5b which means these injectors will flow ~25.9 lb/hr in our application. There are many calculators online that provide help with this conversion. We’ve also included one in our spreadsheet.
Starting with the value of 21.4 lb/hr for the stock 328i injector flow rate, it’s very easy to calculate what the scaling factor should be for all of the tables. Simply take the larger injector flow rate and divide it by the stock flow rate. In our example, the scaling factor was 25.9 / 21.4 = 1.21. Now, we can either divide the original fuel tables by this number or multiply them by the inverse (21.4 / 25.9 = 0.83). We chose to divide but either method works equivalently.
Before trying the calculated scalar, we actually tried several values below and above to get an idea of the behavior. Once the modifications have been made to the tune, we uploaded it to the DME, started the car and allowed it to idle while we monitored the data. To monitor this, there are two possible methods:
• Force the DME into “open-loop” and monitor the A/F ratio on your wideband O2 sensor gauge. This can be done by modifying the “Lambda – Closed loop – Min engine speed” parameter in the “Lambda” group of ByteTuner. Changing this value to something higher than the engine idling speed will cause the DME not to enter closed-loop mode.
• Keep the DME in “closed-loop” and monitor the lambda integrator on both banks.
The open-loop method provides instantaneous results whereas keeping the DME in closed-loop and waiting for the lambda integrators takes slightly longer but works almost as well. Unfortunately, we didn’t record the data from our A/F gauge, so only the lambda integrators are used in this example.
As can be seen in the screenshot below, the relationship between the injector scalar and the lambda integrator is very linear. As seen in the attached spreadsheet, we also calculated what the perfect scalar should be to achieve a lambda integrator value of 1.0. It turned out to be 1.22 which was very close to the value of 1.21 we originally predicted!
![Image](https://www.renovelo.com/forum-content/images/ms42_injector_scaling_plot.png)
Note 1: Although our testing said the scalar should be ~1.21-1.22, keep in mind all of the testing was performed while the engine was idling. Up until this point, we don’t have any data for part-throttle driving conditions. Because we haven’t truly recalibrated the fuel tables from scratch, the engine won’t behave perfectly in all conditions. Therefore, we have to find a scalar which performs close enough during most conditions and then lock the scalar at that value. All changes thereafter should be made to the fuel tables to fix any slight deviations.
After driving around several days on some of the later tunes (v4 and v5), we found them to be best suited for most conditions. Since this was purely an experiment for us and we didn’t have any hardware modifications to support 24lb injectors, we stopped here. If you have hardware modifications that justify larger injectors (like forced induction), then you will have to make many more changes to your tune. This is just a starting point that should allow your engine to crank and idle.
Note 2: After driving around with these tunes, we noticed that the fuel transients needed further refining due to rich/lean events during tip-in and fuel cut. We spent some time tuning these parameters, but these changes are very dependent on the dynamics of the injectors. Therefore, your results will likely vary compared to ours.
Note 3: Do not attempt any WOT driving unless you tune this correction table separately! Scaling this table will be a good start, but this surely won’t meet your engine’s exact needs.
Note 4: Some other small changes were made to these tunes based on the modifications our MS42 shop car had at the time. Take care to note these to see if they will affect your tune (click the "Tuner Info" button in ByteTuner). If in doubt, just use these tunes to visualize the changes to the fuel tables and make similar changes to your tune independently.