Emu injector scaling
UPDATE
Ignore this stuff!! It's useless bollix!! No amount of fiddling with the scale could solve the lean/rich spikes on accel/decel. My scale values are now set to 0, and my i/j map is doing all the fuel control.
Introduction
In theory, this concept of scaling an Injector is pretty simple. In practice, it takes a bit more understanding then I would have thought. If you are running an EManage Ultimate, and are struggling trying to scale a larger set of injectors, then perhaps my recent experience can help. Keep in mind, I"m NOT a qualified tuner. I, like so many of us, am a Home Grown Gear Head. Thus, what you read here is what I've learned along the way.
The Problem
I own a 2000 Subaru Impreza 2.5RS with an M62 Supercharger installed (see SuperCharger Project). As we already know, if you add boost, you need to add fuel! I had been boosting just fine with nothing more than an increase in fuel pressure (55psi@0inHg) on the stock 280cc/min injectors for over a year. But, I had a set of 440cc/min WRX injectors that I wanted to install. So.. I did!!
Lucky for me, the EMU comes with an "Injector Scaling" feature. You just enter the old/new values, and away you go! Well, in theory anyway. Turns out, it wasn't totally that simple. My main issue was not knowing the latency (lag) value of my stock 280cc injectors. I did however know the values of the 440cc injectors.
I tried just entering the scale values that so many before me were using.
280cc(lag:0.7)->440cc(lag:0.7)
But it did NOT result in a clean set of Short term and Long term fuel trim during idle and cruise. Since I'm a Software engineer, and a perfectionist of sorts, this didn't sit well with me. After lots of reading online about the affects of scale and lag on both idle, cruise and Open Loop, I fiddeled around with various values trying to see if I could get close. Alas, nothing I tried really seemed to do any better.
The Solution
Ok.. enough with random entering scale values... it's time to understand the issue, and fix it correctly. So, I hacked together an Excel Spreadsheet representing what I thought was a typical "Injector Scaling" algorithm. I even went so far as to contact Greddy in hopes they could confirm that the EMU employs a similar algorithm. But, I never got a response. Oh well.
I think my understanding of Injectors is more than enough to think of a reasonable algorithm. How exactly the EMU executes it really doesn't matter too much, so long as the final outcome is similar. I can tell you now, that it is!
The Algorithm
Lets say that some scale values of:
- old cc/min = 280
- old lag = 0.5
- new cc/min = 420
- new lag = 0.86
The sequence of events to calculate a new injector pulse would be as follows:
- Factory ECU sends a pulse down the wire of 2.6ms in total length.
- EMU subtracts the "old lag" value to get the actual fuel flow pulse width.
- 2.6 - 0.5 = 2.1ms
- EMU Calculates the cc/min scale percentage difference.
- (420 - 280) / 420 * 100 = 33.33%
- EMU Adjusts the pulse width by this percentage.
- 2.1 + (2.1 * 0.33) * -1 = 1.4ms
- EMU adds back the new injector lag time for a new total pulse width
- 1.4 + 0.86 = 2.26
At some point also, the EMU will adjust the start time of the pulse to compensate for the flow timing affected by injector lag, but that isn't as much a concern to me at this point. Especially because I was confident in the lag value of my new injectors. So, I was working backwards from there. Thus, I was hoping the final values would be quite close to reality.
One of the most important things to take from this, is to understand how the scale percentage will affect a different amount of the total pulse width depending on what your lag values are. Specifically, the "old" lag value. In fact, it's worth saying that the "old lag" value might be one of the most important values to get right!!
Look at it like this. With the above scale values, a pulse of 2.6ms and a lag of 0.5 means that the 33% reduction in fuel is calculated against only 2.1ms of pulse. As a result, while changes in lag have a large affect on idle and high-vac, it still does have an impact on WOT too. Not a large impact, but some none the less.
The Tools
2 things have proven KEY in helping my dial in my scale values. My In Car PC project, and my own OBD2/SSM scanning software ECUTracker. The car PC for obvious reasons, I can watch in real time at a simple glance, what my Long and Short Term fuel trims are doing. Plus Air Fuel and Pulse Widths. But, it's just a piece of hardware without software. That's where ECUTracker has payed off. Not only can it do standard OBD2 display, but it supports the much faster Subaru SSM Protocol. I get Long Term and Short Term trim updates as fast as evry 80ms.
What I learned
This is all fine and dandy, but what good did it do? Well, this exercise helped me in 2 ways. First, it helped me get a much much better understanding of the effects and relationship of Injector Scaling vs. Injector Lag. Second, it has given me a tool that I can use to apply new scale values and visualise the difference before actually trying it out.
It is worth noting, that I don't belive my algorithm is quite what the EMU uses. While I think it might be close, when I compare actual PW values as logged from my ECU, the are not quite the same. Close sure, but not spot on. In the end, this didn't prove too much of a hinderance, because what mattered was the effect on the pulse width when scale values were changed. This is where my spreadsheet seemed to match the EMU.
You see, what I found would happen is I would try a set of scale values, and monitor my fuel trims. I'd notice what they were doing, then use my spread sheet to see what scale values ''might'' dial in the changes I wanted. For example, if my scale values were causing my idle and cruise to fuel trims to be +15%, but lower vacuum areas to be only +5%, then I'd need to find a way to reduce high vacuum fuel a lot, while reducing low vacuum fuel only a little. In theory this could be accomplished by simply changing my lag values, but in practice it took an adjustment to both.
Enough, Give me the Spreadsheet!
Here ya go, in both Excel XLS, and Open Document formats.
InjectorScaleWorksheet.xls - Excel XLS
InjectorScaleWorksheet.ods - Open Document ODS
How to Use it
The cells in white are the places intended to enter values. Much like the EManage Ultimate, you enter old vs new injector size and lag values, and the spreadsheet will calculate the adjustments to the factory pulse width. It will also adjust the line graph for a visual representation of the pulse widths. I found this very usefull when trying to dial in/out small amounts of fuel.
Its' worth noting that in my car, factory idle pulse widths were around 2.5ms, and high-vac cruise pulse widths were in the 4-6ms range. Wide Open Throttle produced 12-15ms pulses.
Scenario(a/b)
The idea here is to be able to compare one set of scale values to another. What I did was try out some scale nubmers in my car. After observing the affect it had, I could compare the numbers I used, to some numbers I would try next. I would enter into "Scenario (b)" the values I just tested. Then, in "Scenario (a) enter in some alternate numbers too see if it resulted in the desired affect. For example, if I wanted to just decrease low-vac (WOT) pulse widths, but keep idle the same, I might increase the "old lag" just a bit, and also increase the "new size" a bit.
Don't take my word for it though, load up the spread sheet, and give it a try for yourself.
Notes
- Increase Idle Fuel by increasing the spread between the old and new "lag" values.
- Changes to the "old lag" also increases/decreases the amount of PW affected by the % scale.
- The actual old/new cc/min values are not important. Only the percentage scale they generate.
- 280->440='''33%''' and 300->450='''33%'''
- I'll admit though, I've not actually tested this theory on the EMU... Yet!
My EMU Map
Once I'm more pleased with my hack-of-a-tune, I'll post it up. In the mean time, here are my values.
Injectors:440cc WRX Blue Top Feed.
Pressure Regulator: SX Performance Adjustable in a [[Shanes_parallel_fuel_rail_mod|Parallel Configuration]]
Fuel Pressure: 42psi@0inHg
old size: 280
old lag: 0.50
new size: 420
new lag: 0.86
- In off-boost, all of my i/j fuel cells are Zero.
- I've had to add a fair bit of fuel to my Acceleration Injector Adjustment Map. I don't fully understand why, but at the moment, I'm adding between 10 and 15% more fuel on accel. While it no longer sputters, it still shoots a hair lean on my trims, so I'll be adding more later.
- FYI, I got the 0.86ms lag value from Greddy.