Port Injection on DI: A data driven approach
When the topic of port injection on top of direct injection comes up, there's no shortage of people willing to puke their "experience" onto you. Sure, experience can be useful, but physics and data are usually better as experience often leads to potentially poor opinions with no real backing. People tend to rely on "experience" as a shortcut to looking at data, and they wind up missing a lot while making poor conclusions.
"Without data, you're just another person with an opinion." - W. E. Deming
There's a marked different in knowing what to change versus knowing why to change it. This distinction really comes into play when it comes to DI systems because they carry a level of sophistication beyond conventional port injection; there are suddenly more variables to the system. You aren't just trying to get the whole shot of fuel in each ignition cycle, but rather you now have to get that shot in for a fraction of the cycle on top of timing it properly to the cycle (with port injection, during WOT, timing matters significantly less). "Time" is the metric that too many people consider when in reality it is a byproduct of more important variables earlier in the operating code.
Crank Position has entered the chat.
Crank position is the unsung hero, especially when it comes to direct injection. You should be latently familiar with it because ignition timing is always in relation to crank position (specifically, top dead center between the compression stroke and power stroke). Before top dead center (BTDC) is historically where you make your power and is self explanatory... it means your event (whatever it may be) is happening before the piston reaches TDC.
0° -> Between compression and power strokes180º -> Between intake and compression strokes
360° -> Between exhaust and intake strokes
This range is what is actually pertinent for direct injection. There are three primary metrics: start of injection (SOI), duration, and end of injection (EOI). We aren't going to discuss split pulses because generally it doesn't apply to this conversation. EOI is the end result of SOI and duration for GM ECMs not functioning in split pulse with one exception: GM does enforce an EOI 5° ahead of the spark timing meaning if your spark plug is going to fire at 20°BTDC, regardless of what you're trying to do, they're going to cut the DI pulse at 25° BTDC.
In general, you can inject fuel during the compression stroke, but it's going to run poorly and probably puke black smoke out the back. That means we should probably target an EOI no later than the inflection from intake to compression strokes... so... 180°. But isn't EOI a RESULT and not a driving factor? Well, yes, according to the way it is processed. We know how important EOI is, though, so we need to work backwards. SOI is the next consideration... we really don't want to inject during the exhaust stroke as that would be a bit pointless, so we should constrain our SOI to the inflection point between exhaust and intake strokes. Got it, 360°.
Quick sidebar... there's a level of leading those targets required just because there is still a physical travel time of fuel and inherent lag of things happening, so... give yourself a 3°-5° buffer. 5° translates to about 0.1 milliseconds at 6000rpm. Not significant, but also not zero.
Ok, we've got our SOI to be no sooner than 360° and EOI to be no later than 180°. Great! Wait... this means our duration is essentially clipped to 180º. This is neat, though, because it should translate to something you've probably heard people talk about which is that DI injectors need to fall into the 5.0ms-5.5ms range of on time when tuning with port injection on top. At 6000rpm, 5.0ms correlates to 180° of crank rotation! That 5.5 correlates to about 5454rpm, and those numbers wind up in the meat of your powerband. This is where there's a problem in the general "theory" people perpetuate, though, because they use this 5.0-5.5 number as an absolute regardless of engine speed when in reality, it is a dependent variable... a result. So step back and change your mindset to use crank position (and crank rotation).
180° of rotation at...3000rpm is 10ms
4000rpm is 7.5ms
5000rpm is 6ms
6000rpm is 5ms
7000rpm is 4.3ms
But... but... the milliseconds!
Crank rotation is what matters; time is just a byproduct. Read that until it sinks in.
The ECM knows the current airflow and injector characteristics along with the current required fuel mass. It takes this data and converts it to a time which is a little funny because ultimately everything is sequenced and scheduled off of current crankshaft position.
Alright, now we will assume you have confidence in this magic 180° number as well as ideal SOI and EOI for the DI shot. Now we need to talk about how this correlates on top of port injection. When you run pure port injection, there is absolute truth that the fuel in the intake port is displacing air that would otherwise enter the engine. There is no dispute there, and that's part of the reason that direct injection can make more power (you're putting the fuel in after the intake valve and not taking air's space in the intake tract). Unfortunately, DI fuel systems tend to tap out when making a lot of power... either the high side pump can't keep up or the injectors just aren't big enough to complete the shot during the intake stroke. You can opt to upgrade DI components at this point or move to port injection (what this discussion is about).
So now we're going to dump fuel through the intake port on top of the DI shot, but how do you know how to split that delivery? Well, historical systems will let you choose the fraction: this is the percentage of fuel that comes from the port system. When the ECM itself can't do this function, and you add a second computer controlling the port injectors, you end up having to just hack airflow out of the ECM and make up for it with this external device. You effectively have no direct control over the fraction and instead loosely set it by removing X% from the ECM and making up for it in the other device. The truth, though, is that the fraction is just a number. It's a byproduct of what the fuel system should be doing. When you have direct control over the fraction, the idea is to set it so that the DI system is achieving that 180° duration while the port system makes up the rest. There's zero merit to saying "The engine needs to run at X fraction".
There are those out there, though, who will insist that the fraction is an important number. It isn't. It's JUST a number... a number based on other more important factors (like DI on time). We opted to dispute this due to a claim that our Atlas™ port controller would cause problems because we don't allow "editing the fraction by rpm" which, again, just isn't what truly matters. So naturally, we beat the absolute shit out of our shop test car (2019 Camaro ZL1 1LE equipped with Atlas™). Again. This poor thing makes 72X whp nonstop and has been for 2000+ miles and 700+ pulls on the dyno. It's a great test car, though, because we don't have a ton of wild variables to the combo, and it loses high side pressure in the 3200-4800rpm range. It is brutally consistent.
We have three dyno pulls shown on this graph using our inhouse Mainline Prohub6000. Teal represents a max injection duration of 180° with a totally stock SOI calibration, red represents 120° max duration with optimized SOI (EOI ahead of 180º), and yellow is 180° max duration with optimized SOI. The discrepancy in power is happening during the aforementioned loss of high side pressure. I'm showing the unoptimized SOI run because chances are a lot of people out there want to use scenarios of their own laziness as an excuse for why more port fuel makes more power in certain conditions. High side pressure falls in both the teal and yellow graphs but does not in the red because of the larger port contribution through the trouble region.
In the teal pull, there's a marked difference in power and an obvious loss down low (35whp at the worst point at 4000rpm). This is largely due to the fact that injection was ending during the compression stroke (140° BTDC at the worst point). Again, this was with stock SOI tables which aren't ideal for how much fuel this thing is consuming. Power recovers by 4800rpm and is within the margin of error for typical dyno pulls (1%-1.5% roughly).
In the red pull, because the port was being activated while DI was clipped to 120°, the high side pressure didn't fall. On the surface, it might seem like high side pressure not falling is what mattered, and somebody would have stopped there to prove their point (confirmation bias is real).
In the yellow pull, I advanced SOI enough to get EOI ahead of that 180° mark. High side pressure fell like always, but you can clearly see the power didn't suffer. In fact... it performed BETTER than the 120° duration dyno pull. One could argue it's within margin of error here, and I'm fine with that too. Either way, the result is indisputable, and we can take away two important points: high side pressure isn't a determining factor and port fraction doesn't have the importance people want to give it.
With our Atlas™ controller, the file that's patched in HP Tuners starts your max duration at 180° as opposed to the 350° that it is set to stock. You can adjust this, and by all means... play with it. We use 180° because it's a clean and obvious number that correlates to something concrete: the intake stroke of the crankshaft. We all still need to be mindful of high side pressure to some degree (we don't want it crashing to 2 or 3 MPa), but it does become less of a primary concern when using port injection. Knowing that pressure is not going to keep up means that I might consider just commanding less pressure where I know it can't achieve it, and at the end of the day, this will still work great.
The moral of the story is... get your DI shot in during the intake stroke (with none happening during compression), and get your port contribution in there to make up the difference. Luckily for you, our Atlas™ controller does this automatically for you. While some might claim we're just selling port injection for dummies, the reality is we took a physics based approach to provide a controller that not only simplifies things for beginners but also uses such a robust algorithm and concept that it is still ideal for big power builds. Tell it the injector size, tune the car, and move on with your life. Let the port fraction be whatever the controller says it is at the end of the day and enjoy seamless port injection on top of your DI system.