RomRaider’s IDC parameter has caused a lot of confusion. To clear it up, let’s start with some fundamentals:
RPM / 60 = revs per second
RPM / 120 = cycles per second (by “cycle” I mean four strokes)
120 / RPM = seconds per cycle = maximum time available for injectors to squirt
“Fuel injector duty cycle” is the actual time the injector is open, divided by the total time available. So:
IDC = IPW / (120 / RPM)
That can be rewritten as:
IDC = IPW * (RPM / 120)
…and to get an result of “90 percent” instead of “.90″ you add a couple zeros:
IDC = RPM * IPW / 1200
If you look in RomRaider’s logger.xml you’ll find that formula.
So, for example:
7000 RPM * 17ms / 1200 = 99 percent IDC
It’s not entirely clear how RomRaider produces numbers like 120%. Apparently the IDC parameter includes the injector latency, so it’s actually a bit larger than the amount of time that the injector is squirting (since it takes a millisecond or so for the injector to transition from closed to open). However that only explains how you can get up to about 105.8 IDC (1 / 17 = 0.058).
It may also be that the injector pulse width used for the IDC calculation is how long the ECU thinks the injector should be held open to squirt enough fuel to get the desired AFR. This calculation is done without taking RPM into account, so the desired IPW may not be achievable. When this happens, the logger may report an IDC of as much as 120%. The ECU cannot hold the injector open for 20 milliseconds for a 17-millisecond cycle (not without time travel!) so as this point your mixture is probably going lean.
If you’re ever plotted RPM over time, you will notice that the logged RPM is somewhat noisy - it’s accurate to within 100–200 RPM, sometimes high, sometimes low. That’s weird, since the ECU apparently can time the ignition to .35 degrees, but if you plot RPM over time you’ll see that it’s pretty jagged. This inaccuracy may also contribute to unrealistically high IDCs. Since the logger uses these inaccurate values to compute IDC, the IDC value itself is going to be somewhat inaccurate.
Some people have reported 115% IDCs without going lean. Between the latency issue and the noise issue, it’s possible that they’re correct. It’s also possible that their O2 sensor just don’t react quickly enough to catch the lean mixture. Personally I wouldn’t push IDC past 100, just to stay on the safe side. It might actually be possible to run 110% IDC due to the inaccuracies above plus inaccuracies I haven’t thought of yet - but it might not be safe, and if it isn’t, you won’t know until your engine fails. Also note that changing conditions (temperature, especially) can allow the engine to pull in more air than you’ve seen in logging sessions, so it’s good to leave some headroom.