Miata Turbo Forum - Boost cars, acquire cats.

Miata Turbo Forum - Boost cars, acquire cats. (https://www.miataturbo.net/)
-   ECUs and Tuning (https://www.miataturbo.net/ecus-tuning-54/)
-   -   How to find your injector dead time (https://www.miataturbo.net/ecus-tuning-54/how-find-your-injector-dead-time-56061/)

JasonC SBB 03-05-2011 10:03 PM

How to find your injector dead time
 
1 Attachment(s)
Getting the injector dead time correct is important for getting a stable, accurate idle, and accurate AFR's while engine braking.

Injector dead time will differ from the manufacturer spec if the "flyback" voltage your ECU applies to the injectors is different than that during the manufacturer's tests.

Here is a method for measuring dead-time in-car.

Procedure:

Idle car while datalogging, and have a means of changing injector electrical pulse width slowly up and down while logging. Car must have a reasonably stable idle at a fairly fixed RPM, and battery voltage must be constant throughout.

Log MAP, AFR, Battery volts, and Injector electrical pulse width, while idling. Slowly raise and lower injector on time (I did it by changing the AEM's injector dead time vs. battery voltage, across 3 cells, straddling the battery voltage that I was seeing). Slowly raise and lower it until the RPM starts to drop significantly or the car starts to misfire. I could go from 11:1 to 16.3:1 or so and back. Do this several times, it may take you a few minutes.

Then examine the datalogs. Do an XY plot. Plot MAP divider AFR on the X-axis, then injector on-time on the Y-axis. You can use AEMLog for this, or MS Excel. Excel has the advantage of having a linear curve fit ("trendline, linear"). The datapoints should form a line. If you project this line to the Y-axis, the intercept is the dead time. See attached.

In Excel, do a scatter plot, then add a trendline. Select "linear", and in the options, select "show equation". If your data is clean and has little noise, the Y-intercept will show in the equation. If not, select "Set Intercept", and try different values until the trendline appears to describe the quiet part of the data. In my example, it's 930 us. This is for a friend's 750cc RC hi-impedance injectors. Note that on the bottom left of the data, there appears to be an arrowhead shape. This is noise in the data, due to lean misfire, at narrow injector duty cycles / leanness.

https://www.miataturbo.net/attachmen...1&d=1299380567

hornetball 03-06-2011 06:52 PM

Nice. Thank you.

Braineack 05-18-2011 04:44 PM

1 Attachment(s)
RX7 460s. 14.5v

Deadtime = 1.2ms


https://www.miataturbo.net/attachmen...1&d=1305751647

JasonC SBB 05-18-2011 04:58 PM

Bummer, looks like your injectors have 2 distinct slopes. A shallower one, with an effective dead time of ~1.5 ms (eyeballing it), at smaller PW's, and a steeper one starting at about 1.85 ms of electrical pulse width, with about 0.9 ms effective dead time.

For idle stability I'd use the 1.5 ms number. This would mean the VE table entries in the range of 2-2.5 ms would need adjusting.

I saw a paper out there that describes how OEs program a dual-slope deadtime like this. It's actually described in some OE injector datasheets.

y8s 05-18-2011 05:48 PM

you could use the lower PW one at lower voltages and the higher PW one at higher voltages since low engine speed often results in slightly lower voltages.

miatauser884 05-18-2011 05:50 PM

Anyone know the deadtime of RC750s

Nevermind, I just plotted one of my datalogs. It appears that my deadtime is .21ms

What can I do with this???

This was an entire datalog, but I will datalog at idle when I am at home. I'll plot and post the results.

spitefulcheerio 05-18-2011 05:53 PM

And the rc360's? lol

skidude 05-18-2011 05:59 PM

I just performed this test three times and got 1.4ms the first time, .95 the second time, and 1.8 the third time. I am clearly messing something up, but I'm not sure exactly what. I used the inj open time adjustment to move the pulse width up and down. After the first test, I re-tuned my idle VE using an injector dead time of 1.4, then I performed the test again, and got .95. I then re-tuned idle for that, performed the test again and got 1.8.

All three of my graphs look a lot like yours (once I delete the outliers caused by misfires), with no noise to speak of. Do you have any suggestions on what could be causing this variance?

The injectors are Bosch 570cc high-impedance.

Braineack 05-18-2011 06:03 PM

1 Attachment(s)

Originally Posted by JasonC SBB (Post 728690)
Bummer, looks like your injectors have 2 distinct slopes. A shallower one, with an effective dead time of ~1.5 ms (eyeballing it), at smaller PW's, and a steeper one starting at about 1.85 ms of electrical pulse width, with about 0.9 ms effective dead time.

For idle stability I'd use the 1.5 ms number. This would mean the VE table entries in the range of 2-2.5 ms would need adjusting.

I saw a paper out there that describes how OEs program a dual-slope deadtime like this. It's actually described in some OE injector datasheets.


i can control the deadtime/ voltage correction curve of each injector. but i'd have to figure out each one...

EDIT: Whoops misread.

my AFRs and MAP go bonkers at low 1.7XXms areas, I used to idle in the range and got 14.5-14.7:1. Now I need to maintain closer to 1.8xxms which is 13.5:1; trying to diagnosis my motor.


https://www.miataturbo.net/attachmen...1&d=1305756536


I'm getting the feeling my injectors are getting tired, or maybe got damaged from my bad regulator, that allowed the system voltage to spike into +20v. My boost solenoid took a crap afterwards...

Braineack 05-18-2011 07:21 PM

1 Attachment(s)
Going back and adding two trend lines and removing all the data from below 1.2ms. I see what you're talking about. looks like 1.6ms is the lowest I can go...probably why my shit freaks out when I push it. Seems to get shorter when I approach 1.8ms PW.


https://www.miataturbo.net/attachmen...1&d=1305760890

miatauser884 05-18-2011 07:25 PM

1 Attachment(s)

my AFRs and MAP go bonkers at low 1.7XXms areas, I used to idle in the range and got 14.5-14.7:1. Now I need to maintain closer to 1.8xxms which is 13.5:1; trying to diagnosis my motor.
Is this why my car seems to "like" idlign at about 13.5 AFR? I've been fighting an issue where the MAP and AFR start to oscillate wildly for no reason, then after a little while it will stabilize. I wonder if as the car heats up the MAT correction is adding fuel and the pulse width is changing.

Average battery voltage is 13.7V and deadtime is 1.19ms

It might be nice to have an idle feature that tunes for pulsewidth instead of afr. If you lock a constant PW, then you might not get all of the undulations associated with VE adjusting the pulsewidth.

I think the graph looks the way it does because the MAP/ AFR started oscillating as the car warmed up..

Braineack 05-18-2011 07:54 PM

do it again when completely warm without EGO or enrichments.


but yeah thats why. With lareger injectors with slow deadtimes, you can't idle stoich. you cant cycle the injectors fast enough.

I'm on seq. injection and a swear not 3 weeks ago I could idle at 15.0:1 perfectly fine. Then my alternator failed and my whole car went to shit.

miatauser884 05-18-2011 09:18 PM


Originally Posted by Braineack (Post 728769)
do it again when completely warm without EGO or enrichments.


but yeah thats why. With lareger injectors with slow deadtimes, you can't idle stoich. you cant cycle the injectors fast enough.

I'm on seq. injection and a swear not 3 weeks ago I could idle at 15.0:1 perfectly fine. Then my alternator failed and my whole car went to shit.

I was trying to get mine a t 15.3:1. It seemed to work most of the time, but then all of a sudden it would just start oscillating, then it would settle down again. I think when it is idling that lean on my setup; Any small interruption has a large consequence. With the MAT correction not perfect, I think that the temp rising is enough to throw it off. My car seems to like the AITs when the reach the 90s.

JasonC SBB 05-18-2011 10:13 PM

Big injectors need accurate dead-time numbers, because the flow is dependent on the difference of 2 large numbers.

For example. Assume 1.0 ms dead-time for both big and small injectors below.
A wee injector may need 0.9 us of fuel delivery at idle. So electrical pulse must be 1.9 ms. If you set the wrong deadtime, at say 1.1 ms, then the ECU will send 2.0 ms total. That's an extra 0.1 ms out of 0.9 ms of injector open time, or an error of 11%.

Let's say you switch to 3x larger injectors. It now requires 1.3 ms of electrical pulse width. If you set the dead-time to 1.1 ms, that's an error of 0.1 out of 0.3 ms, or a 33% error. Much larger.

To make matters worse:
- dead-time changes with batt volts (we know this and correct for it). I have a big bench PSU that can supply the car's power while idling with the alternator and battery disconnected. So I can do the above experiment at different batt volts.

- dead-time changes with the built-in flyback clamp voltage of the injector drivers. Higher makes dead-time longer. 33V is a common value (AEM uses this IIRC), but I don't know how much they vary per ECU. It's not published. (except for the MS) You can't share dead-time numbers if the flyback voltage is different. Additionally, an injector driver circuit may be designed to have a precise flyback voltage and it will then vary from inj 1 through 4, and from unit to unit. And, if the injector manuf doesn't spec the flyback voltage, you don't know if they apply to you.

- The dead-time varies with injector temperature, especially with hi impedance injectors. My 600cc DW for example, goes from 920 us cold, to 1.05 ms warm. If I set it to 1.05 ms, my warmup is pig rich. If I set it low, when warm I get a lean misfire at low MAP and stalling at idle. And no you can't really compensate for it with the warmup talbes, the dynamics of correcting for dead-time is different than just trimming the fuel. A warmup trim will lean it out everywhere, not just at low inj on-times.

- variation due to batt volts is also worse with hi impedance injectors.

- ECU's don't always report batt volts accurately. My AEM for example, has about a 0.35 V drop somewhere that suspiciously acts like a reverse-protection Schottky diode drop...


Having said all that, I hatched a circuit idea to make hi-impedance injectors act more like lo-impedance ones, remove sensitivity to batt votlage, and reduce sensitivity to temperature........

y8s 05-18-2011 10:39 PM

1 Attachment(s)
once I get leaner than 14.7, the dead times go crazy.

but richer than that it trends fairly well.

these are RC550 low impedance.

https://www.miataturbo.net/attachmen...1&d=1305772761

what I *dont* get is that old timey measurements (Jason, you might remember from Tec3 days) suggest dead times closer to .62ms at 13.5V.

miatauser884 05-19-2011 11:53 AM

I redid mine this morning when it was warmed up and got 1.15ms this was with a stable idle at around 14.0:1.

Is there a place to adjust the deadtime for MS2? Is this the "injector open time" in "injector characteristics" in tunerstudio?

Mine is set at 1.0ms. That's a 15%-20% error that could be corrected. This tells me that MS thinks it only takes 1.0ms to open and close the injector, but it actually takes 1.15ms to 1.2ms

It also has a .2ms/V correction for battery voltage.

Braineack 05-19-2011 12:16 PM

yeah, take heed of the voltage number MS2 wants you to use for that number. IIRC it's 13.2v. My battery votlage was offset about 1 full voltage measuring the battery with a DMM and comparing to my TS output.

I tried using 1.5ms this morning and adjusting my REQ_Fuel to compensate, didn't seem correct 1.708ms was reporting 12.0:1. Went back to teh 1.2ms value i've been using for 4 years. Where 1.7xxms was reporting 13.5ish.

I still think something is a miss with my setup. I could idle leaner before at around the same pulsewitdh. I'm unable to idle leaner than 14.0:1 without the engine going to shit. So either my injectors are on teh way out (like I said I had voltage spikes, I lost my boost solenoid) or I have other issues. HG seems fine, I've done everything else, so I'm left with hurt injectors.

miatauser884 05-19-2011 01:55 PM

Now I'm haveing trouble understanding what I should be doing with these values as far as tunerstudio and adjusting my tune.

I just completed an idle session that was very stable. 13.7V and 1.30 deadtime.

I have an injector open time in tunerstudio of 1ms and a battery offset of .2ms/V. (13.7-13.2)*.2ms/V is .1ms correction (most likely reducing pulse by .1ms)

How should I try to adjust the injector characteristics in tunerstudio?

richyvrlimited 05-20-2011 05:05 AM

What's wrong with working out the deadtime on MS by reverting to batch injection and then swopping between 2 and 4 squirts and adjusting the dead, (sic opening), time until the AFR's match?

You don't need to re-wire a fully sequential car, Jean changed the code so by just turning off the additional drivers means your car reverts to batch injection. I'd have thought you could do something similar on MS3 re Batch injection.

JasonC SBB 05-20-2011 06:06 AM

If you change your deadtimes, een going from wrong values to correct ones, you will need to return the VE table at low MAP.

Braineack 05-23-2011 10:37 AM

tkae a look at the new MLV beta.. does scatter graphing.

http://www.ncs-stl.com/SertTune/MLV_Beta_MAPvsPW.jpg

richyvrlimited 05-23-2011 10:46 AM


Originally Posted by Braineack (Post 730303)
tkae a look at the new MLV beta.. does scatter graphing.

http://www.ncs-stl.com/SertTune/MLV_Beta_MAPvsPW.jpg

Please excuse my ignorance, but other than looking pretty, what use is that?

I'm not saying there isn't I just want to know what I could do with it.

miatauser884 06-06-2011 02:35 PM

Found this link for injector dead times http://injector-rehab.com/shop/lag.html

JasonC SBB 06-06-2011 09:39 PM

Is that MLV software free?

FWIW AEMLog (free) has been doing scatter plots for years and years.
It can also run equations on your variables, and plot them. Such as to do software dyno runs.

Braineack 06-06-2011 11:17 PM

nope gotta register it.

JasonC SBB 06-06-2011 11:19 PM

AEMLog can import data in a text format.

Reverant 06-07-2011 02:24 AM


Originally Posted by Braineack (Post 735253)
nope gotta register it.

Still free despite the nag screen.

richyvrlimited 06-07-2011 03:35 AM

Can't get the scattergraphs without registering though.

JasonC SBB 06-07-2011 11:59 AM

Try AEMLog. Download here
http://forum.aempower.com/forum/inde...c,17194.0.html

Braineack 06-07-2011 12:08 PM


Originally Posted by Reverant (Post 735305)
Still free despite the nag screen.

double click the log, no nag screen :)

kday 06-08-2011 11:51 AM

1 Attachment(s)
Yellow RX-8 injectors @ 13.2 volts. I ramped the dead time down from 2 ms to ~1.2 ms before the engine died. There are two distinct slopes:

https://www.miataturbo.net/attachmen...1&d=1307548039

I had been running with a dead time of 1.0 ms but was leaning out as the intake temperature went up. I retuned for 1.45 ms based on the 2 vs 4 squirts method. Too early to say how that works. I'm not clear on how to square that with a 0.8 ms intercept here.

Braineack 06-08-2011 11:54 AM

I'd stick with 0.8ms for those.

kday 06-08-2011 12:12 PM


Originally Posted by Braineack (Post 735797)
I'd stick with 0.8ms for those.

Like I said, 1.0 ms was not enough dead time -- it went lean as the IAT went up.

miatauser884 06-08-2011 12:20 PM

I'm going to use the published data for mine. No need for me to introduce error into this by evaluating a graph. The RC750 stops being linear when you get to 12V, but I've never seen 12V in any of my logs. I'm usually at 13.6V

richyvrlimited 06-09-2011 06:29 AM


Originally Posted by kday (Post 735794)
Yellow RX-8 injectors @ 13.2 volts. I ramped the dead time down from 2 ms to ~1.2 ms before the engine died. There are two distinct slopes:

https://www.miataturbo.net/attachmen...1&d=1307548039

I had been running with a dead time of 1.0 ms but was leaning out as the intake temperature went up. I retuned for 1.45 ms based on the 2 vs 4 squirts method. Too early to say how that works. I'm not clear on how to square that with a 0.8 ms intercept here.

Can someone explain how to interpret that graph for me?

I have RX8 injectors too, 1.45ms seems rather high for a relatively modern injector deadtime though?

miatauser884 06-09-2011 08:54 AM

Supposedly the y-intercept is the deadtime, but I see a huge difference between the published deadtime and the experimental values achieved by users. I'm using the published data and it works fine. I had to retune fuel though.

deadtime for RC750 high impedance

10V 1.36ms
11V 1.12ms
12v .92ms
13v .76ms
14v .63ms
15v .50ms

Nice and linear from 13v-15v. My question is how can a big ass injector have a shorter deadtime than a smaller injector? Seems like smaller would be faster.

deadtimes: http://injector-rehab.com/shop/lag.html

kday 06-09-2011 09:16 AM

I'm not sure how to interpret it. Nor am I confident that 1.45 ms is the right dead time -- it does seem too long. The two measurement methods disagree considerably here. (1.45 is from the 2 vs 4 squirts method.) Barring any brilliant insights the flow may actually have to be measured when driven with the MS. But I am planning on going full sequential this summer, which will change the drive electronics, so I don't want to go to the effort of measuring flow until I have the final setup.

Braineack 06-09-2011 09:32 AM

here's the thing, all the deadtime code does is add that value to the end of your calculated pulsewitdh. if the code calculated 1.7ms and you have a deadtime of .8ms, it will fuel 2.5ms total.

Just pick a number and go with it. Tune the voltage correction curve to mirror that of the published rates and be done with it.

miatauser884 06-09-2011 09:36 AM

Yeah, but you only have a finite amount of time to get the next pulse into the cylinder on time. If you list a deadtime that is too long, then it may not start squirting until past the point you desire. The shorter the deadtime the better until you exceed the mechanical limit.

Braineack 06-09-2011 09:42 AM

with 750cc injectors you wont have that problem. it takes like 16ms of fuel at 7000RPM to reach 90% DC.

richyvrlimited 06-09-2011 09:50 AM


Originally Posted by Braineack (Post 736020)
here's the thing, all the deadtime code does is add that value to the end of your calculated pulsewitdh. if the code calculated 1.7ms and you have a deadtime of .8ms, it will fuel 2.5ms total.

Just pick a number and go with it. Tune the voltage correction curve to mirror that of the published rates and be done with it.

The problem with that is with large injectors and very small PW at idle, and small changes in temp and voltage mean your AFR's are way off.

See Jasons 1st post in this thread for why they're important.

I disagree totally with guessing the deadtime. getting it correct is key in achieving a consistent setup specifically at idle.

Braineack 06-09-2011 10:05 AM

I didnt say guess, he has published rates.

richyvrlimited 06-09-2011 10:41 AM


Originally Posted by Braineack (Post 736031)
I didnt say guess, he has published rates.

"Just pick a number and go with it"

Aka guess :P :fawk:

miatauser884 06-09-2011 11:38 AM

now ladies......

y8s 06-09-2011 01:20 PM


Originally Posted by Braineack (Post 736020)
here's the thing, all the deadtime code does is add that value to the end of your calculated pulsewitdh. if the code calculated 1.7ms and you have a deadtime of .8ms, it will fuel 2.5ms total.

technically it's subtracted from the necessary pulsewidth...

if the ECU calculates you need 1.7ms, it will inject .9ms and let the dead time take care of itself. the injector will then be open for a total of 1.7ms.

Greg G 06-09-2011 05:12 PM


Originally Posted by richyvrlimited (Post 736036)
"Just pick a number and go with it"

Aka guess :P :fawk:

Well in fairness, he was referring to the previous post where there was a choice between 2 dead times for the RX-8 injectors :giggle:

Back to the RX-8 injector- how do we get the battery correction curve right if there are no published rates?

aaronc7 06-10-2011 03:56 PM

1 Attachment(s)
I'm running 550cc RX7s, but didn't see any specific info on them, so I tested my own. Looks pretty close to Brain's (RX7 460s), but again, there's 2 different slopes so I'm not sure what to set. Depending on values I'm looking at, I can see anywhere between 1.0ms to 1.6ms.

To relate this to real world tests on my car...until today I have ran a dead time of 1.0. I needed values in the 60s in my VE table to get a 14.7 idle...always seemed high to me. Today, when changing dead time to 1.5ms, VE values in the 30s gives me the same idle. I'm thinking I ought to just keep my 1.5ms setting, but not sure...what do you all think?

Another question I have is.... the "open time" setting under "injector characteristics" in MS2- is that asking for the dead time at a certain voltage? Because the parameter after "open time" is the battery correction in ms/v. I understand that the dead time will change with voltage and that's the value we use to define the 'slope'...but what voltage is going to be referencing that from? 13.2V seems to be some sort of common value?

Attachment 188359

aaronc7 06-10-2011 06:31 PM

1 Attachment(s)
just 'figured out ' that it does indeed reference that value @ 13.2V... (MS2)

http://msextra.com/forums/viewtopic....oltage#p285337

so, assuming I'm going to with 1.5ms dead time at idle @ 14 volts batt voltage, and .2ms/V slope in MS.... I should set about 1.3 in the "open time" field, correct?

Attachment 188357

edit: i got it backwards....probably a setting of 1.6ms and .1ms/v would get me 1.5ms dead time at 14V. is this the idea?

miatauser884 06-12-2011 08:46 PM

That injector may not have a .2 ms/V correction. For instance, my RC750 is .13 from 12 to 15V from 11v to 12v it's .16ms/V I'm using the .13 ms/V because it is in my useful range.

aaronc7 06-12-2011 11:30 PM

DIYPNP has a base map for a car with 460cc RX7 injectors... they used 1.2V and .1mv/S.

I ended up just going with those setting and moving on- close enough

redrider706 07-19-2011 10:52 PM

Here is the plot for my RX8 Yellow injectors.

Measured dead time is 0.75ms.

https://lh5.googleusercontent.com/-I...252520time.png

JasonC SBB 07-20-2011 02:07 AM

your data is too messy

y8s 07-20-2011 11:32 AM

what's it mean if my AFR goes to 17:1 when my voltage drops from 14.2 to 12.5?

JasonC SBB 07-20-2011 11:35 AM

voltage compensation is wrong. Does it to do instatnly then recover?
Sounds like more deadtime needs to be added for 12.5V.

miatauser884 09-24-2011 11:01 PM

I thought I would share some more of my data. I am using the published injector data, but never went back and collected any experimental data to compare. Here it is. The first graph is a large dataset. The calculated deadtime is very close to the theoretical for the battery voltage in which the data was collected. However ther is a very tight group of points that a y intercept of 1.1 fits rather nicely.

The lower graph has the excel calculated y intercept,a nd then a couple that I selected just to see how they fit. During the data collection the battery voltage held steady at 14.2V with the injector deadtime set to .734ms at 13.2v. Publish data would suggest a deadtime of .604 at 14.2V

Please post your opinions about what you see.

Should be using published data or experimental data?

https://www.miataturbo.net/picture.p...pictureid=1811

JasonC SBB 09-26-2011 02:48 PM


Originally Posted by djp0623 (Post 775483)

Eyeballing the *upper* graph above shows 3 major trendlines. You can't just take a single trendline from the above. You have to find out what is making the trendline change - e.g. did battery voltage change due to fans turning on, or was part of it after a hot restart, etc.

Having 3 different distinct trendlines is different than getting a single trace with a curve in it. In the latter case, you look at the trendline where accurate afr control is most critical - idle at min RPM with min loading (no fans, no ac, charged battery), in the region of about 15:1 afr.

How did you vary the AFR to generate the dataset in the upper plot?

miatauser884 09-26-2011 06:17 PM


Originally Posted by JasonC SBB (Post 775983)
Eyeballing the *upper* graph above shows 3 major trendlines. You can't just take a single trendline from the above. You have to find out what is making the trendline change - e.g. did battery voltage change due to fans turning on, or was part of it after a hot restart, etc.

Having 3 different distinct trendlines is different than getting a single trace with a curve in it. In the latter case, you look at the trendline where accurate afr control is most critical - idle at min RPM with min loading (no fans, no ac, charged battery), in the region of about 15:1 afr.

How did you vary the AFR to generate the dataset in the upper plot?

The afr in the top graph ranges from 13.6-14.2 iirc. I believe the afr change is due to the change in AIT. What is a sufficient number of datapoints to plot. Obviously 60s as opposed to 10min of points will remove most affect of IAT change. I'll play with it again after I make some ecu changes.

JasonC SBB 09-26-2011 10:34 PM

How did you force the afr to change?
Is the plot of MAP/AFR?

I took a few minutes of logs where I raised and lowered inj dead-time.

miatauser884 09-26-2011 11:06 PM

I did take a log where I adjusted the pulsewidths, but I don't believe this this data was taken from that log. Adjusting the pulsewidth resulted in an idle of 17:1. I didn't think this was possible.

It's a graph of pw vs map/afr

I wonder if I used a log where I was adjusting the injection timing table. I'll take another one when I get my computer sorted.

triple88a 09-30-2011 02:18 PM

Btw guys the dead times should not have a linear value...


All times are GMT -4. The time now is 07:59 AM.


© 2024 MH Sub I, LLC dba Internet Brands