Mitsulogger v1 Officially Released
I created this IDC formula and added to MJ's requestID.xml file.
<Request LogReference="IDC" RequestID="FF" Eval="InjPulseWidth*RPM/1200" Unit="%" Logged="y" Response="2"/>
I tested it at idle and it works. All you have to do is add it the xml file where it says:
<!-- Place all Complex requests below this line -->
Now, can someone create or tell me how to create a formula to add to the mitsulogger.txt file so I can read IDC in DataLogLab?
<Request LogReference="IDC" RequestID="FF" Eval="InjPulseWidth*RPM/1200" Unit="%" Logged="y" Response="2"/>
I tested it at idle and it works. All you have to do is add it the xml file where it says:
<!-- Place all Complex requests below this line -->
Now, can someone create or tell me how to create a formula to add to the mitsulogger.txt file so I can read IDC in DataLogLab?
DataLogLab is actually pretty well documented, but basically copy one of the existing blocks, give it a unique ID number, and make sure the label matches the label you gave it IDC That should get you far enough along in mitsulogger.txt
Originally Posted by nj1266
I created this IDC formula and added to MJ's requestID.xml file.
<Request LogReference="IDC" RequestID="FF" Eval="InjPulseWidth*RPM/1200" Unit="%" Logged="y" Response="2"/>
I tested it at idle and it works. All you have to do is add it the xml file where it says:
<!-- Place all Complex requests below this line -->
Now, can someone create or tell me how to create a formula to add to the mitsulogger.txt file so I can read IDC in DataLogLab?
<Request LogReference="IDC" RequestID="FF" Eval="InjPulseWidth*RPM/1200" Unit="%" Logged="y" Response="2"/>
I tested it at idle and it works. All you have to do is add it the xml file where it says:
<!-- Place all Complex requests below this line -->
Now, can someone create or tell me how to create a formula to add to the mitsulogger.txt file so I can read IDC in DataLogLab?
Last edited by ob4; Nov 21, 2006 at 12:02 AM.
Originally Posted by MalibuJack
DataLogLab is actually pretty well documented, but basically copy one of the existing blocks, give it a unique ID number, and make sure the label matches the label you gave it IDC That should get you far enough along in mitsulogger.txt
[Column]
Name=Inj Duty Cycle
Description=IDC
ColumnTitle=IDC
DataItemID=14
Type=1
ColumnDecimalPlaces=4
DisplayDecimalPlaces=3
I put it right after the injector pulse width block.
Originally Posted by ob4
This maybe a newbie question, but can someone elaborate more as to why IDC is defined as InjPulseWidth*rpm/1200? I also learn that evoscan use this same equation.
For example, let's use 7500RPM. That's 7500 revolutions per minute, or 125 revolutions per second. In a 4 stroke engine, you have two revolutions before that cylinder fires again, so you have the time of two revolutions to inject fuel.
So, at 125 revolutions per second, that is .008 seconds per revolution (1/125). So, that's 8 ms for one revolution or 16 ms for two revolutions. So, if your IPW is 16ms at 7500RPM, your IDC will be 100%, since there is only 16ms of actual time to inject the fuel.
Using the same formulas at a smaller RPM, like 3000, will yield the following:
3000RPM = 50 revolutions/sec = .02 sec/revolution. So, 20 ms for one rev, 40 ms for two rev. So, at 3000 RPM you have 40 ms of time to inject. So, you wouldn't reach 100% IDC at 3000RPM unless your IPW was 40 ms.
Eric
EvoM Guru
iTrader: (50)
Joined: Mar 2006
Posts: 9,675
Likes: 132
From: Tri-Cities, WA // Portland, OR
Originally Posted by ob4
This maybe a newbie question, but can someone elaborate more as to why IDC is defined as InjPulseWidth*rpm/1200? I also learn that evoscan use this same equation.
From my post above, to see how you actually get to the finall equation:
So, from some simple math:
IDC = IPW/(time to inject)
time to inject = 2/RPM (two revolutions to inject)
getting 2/RPM to be in ms=
2/revolutions/minute=
2*60s*1000/revolutions=
120000/revolution
So, IDC = IPW/120000/revolutions
= revolutions*IPW/120000
To get IDC in a percent, just multiply by 100
IDC (%) = IPW*RPM/1200
So, from some simple math:
IDC = IPW/(time to inject)
time to inject = 2/RPM (two revolutions to inject)
getting 2/RPM to be in ms=
2/revolutions/minute=
2*60s*1000/revolutions=
120000/revolution
So, IDC = IPW/120000/revolutions
= revolutions*IPW/120000
To get IDC in a percent, just multiply by 100
IDC (%) = IPW*RPM/1200
Great info guys. It cleared some misconception that I have. I always thought of IDC in absolute terms, meaning if the max pulse width is 20ms, if your IPW is 18ms you are running at 90% IDC. I never thought about the dependency of RPM, due to the the amount of time available between the time of injector firing at different rpm. Also, I guess it's safe for me to conclude that the max pulse width changes with rpm.
Thanks guys!
Thanks guys!
Last edited by ob4; Nov 21, 2006 at 09:48 AM.
Originally Posted by ob4
Also, I guess it's safe for me to conclude that the max pulse width changes with rpm.
From my example a few posts up:
At 7500 RPM, you only have a 16ms window.
At 3000 RPM, you have a 40ms window.
Eric
EvoM Guru
iTrader: (50)
Joined: Mar 2006
Posts: 9,675
Likes: 132
From: Tri-Cities, WA // Portland, OR
Originally Posted by MalibuJack
As you can see by the formula, how thanks to math, you can have duty cycles in excess of 100%..
Though it should never happen..
Though it should never happen..
So at 7500rpm, the time takes for 1 full cycle (for 4 stroke) is 16ms, then if the IPW is truely over 16ms, then the the IPW would over lapped. If this is the case, is this due to the delay from the ecu to the injectors? So is it true that in order for the ecu to maintain 100% IDC @ 7500rpm (16ms IPW), the ecu needs to run the IPW higher then 16ms? or is it that the IPW is not very accurate when rpm is high?
What about the response time of the injectors? If the reponse time of the injector is greater then the max IPW @ say 7500rpm (16ms) then would it be better off for the ecu to not turn off the injectors at all?
Sorry for all the questions, I am trying to make sense out of this entire topic on fuel injection.
What about the response time of the injectors? If the reponse time of the injector is greater then the max IPW @ say 7500rpm (16ms) then would it be better off for the ecu to not turn off the injectors at all?
Sorry for all the questions, I am trying to make sense out of this entire topic on fuel injection.
Originally Posted by ob4
So at 7500rpm, the time takes for 1 full cycle (for 4 stroke) is 16ms, then if the IPW is truely over 16ms, then the the IPW would over lapped. If this is the case, is this due to the delay from the ecu to the injectors? So is it true that in order for the ecu to maintain 100% IDC @ 7500rpm (16ms IPW), the ecu needs to run the IPW higher then 16ms? or is it that the IPW is not very accurate when rpm is high?
What about the response time of the injectors? If the reponse time of the injector is greater then the max IPW @ say 7500rpm (16ms) then would it be better off for the ecu to not turn off the injectors at all?
Sorry for all the questions, I am trying to make sense out of this entire topic on fuel injection.
What about the response time of the injectors? If the reponse time of the injector is greater then the max IPW @ say 7500rpm (16ms) then would it be better off for the ecu to not turn off the injectors at all?
Sorry for all the questions, I am trying to make sense out of this entire topic on fuel injection.

I'll try to answer some of these questions:
First of all, any latency for the injectors is used by the ECU to calculate how long the ECU should keep the injectors open. We have this latency table defined in ECUFlash.
These latencies, or response times of the injector, are on the order of microseconds. For example, 300us would equal .3 ms. So, if the latency was .3ms and 10 ms was required to meet the injection requirement, the ECU would hold the injector open for 10 + .3 = 10.3 ms. That's why when you mess with the latency tables, you will add or subtract fuel, altering your trims.
When the injectors are truly at 100% IDC, they are held wide open by the ECU without turning them off until IDC goes below 100%.
Eric
EvoM Guru
iTrader: (50)
Joined: Mar 2006
Posts: 9,675
Likes: 132
From: Tri-Cities, WA // Portland, OR
Originally Posted by ob4
So at 7500rpm, the time takes for 1 full cycle (for 4 stroke) is 16ms, then if the IPW is truely over 16ms, then the the IPW would over lapped. If this is the case, is this due to the delay from the ecu to the injectors? So is it true that in order for the ecu to maintain 100% IDC @ 7500rpm (16ms IPW), the ecu needs to run the IPW higher then 16ms? or is it that the IPW is not very accurate when rpm is high?
What about the response time of the injectors? If the reponse time of the injector is greater then the max IPW @ say 7500rpm (16ms) then would it be better off for the ecu to not turn off the injectors at all?
Sorry for all the questions, I am trying to make sense out of this entire topic on fuel injection.
What about the response time of the injectors? If the reponse time of the injector is greater then the max IPW @ say 7500rpm (16ms) then would it be better off for the ecu to not turn off the injectors at all?
Sorry for all the questions, I am trying to make sense out of this entire topic on fuel injection.

Within Evoscan/Mitsulogger, there is a conversion factor that translates the data from the ECU relating to IPW into time in ms. This conversion factor is probably a little high, so the IPW value logged in Evoscan/Mitsulogger is a little high. Another possibility is that the rpm value logged by the ECU is a little high. This could also cause >100% duty cycle readings if the injectors were near max.
Originally Posted by mrfred
In theory, if the IPW and RPM are accurate, then its impossible to exceed 100% IDC. So I had thought that seeing more than 100% duty cycle was not due to math, but due to the way the ECU represents the IPW. It must be that the scaling of the IPW value is a little generous.
) You can potentially see values over 100% IDC



