Forum » General Tuning Discussion » Calculating deadtimes with a Link G4+ and injector test bench

Calculating deadtimes with a Link G4+ and injector test bench

General Tuning Discussion

Discuss all things tuning in this section. News, products, problems and results. 

Page 1 , 2

Hey guys,

Thought I'd make a bench tester for Injectors and try see if I could get some meaningful results. So far so good, so though I'd share.

I'm using a standard fuel rail with a variable FPR and then using a Link G4+ to run it via the netbook.

With the "Advanced injector test" function, I can fire some fuel into a graduated cylinder to measure results.

The first test required, is to find out a deadtime at one Voltage only.

so I ran a bunch of tests @ 13.4v, at varying pulsewidths. So, you'd run say 12,000 events @ 6ms and then 24,000 events at 3ms. And so on.

So theoretically if the injector didnt have a deadtime and flowed linear then you'd get an identially filled tube each time.

However results vary hugely... Which is how you find the dead time. So running tests to fill out the info in green

Then on a second page on my excel sheet, you adjust the deadtime number up or down until the line on the graph is horizontal.

So number too low:

Number too high:

Then somewhere near correct

So now that you know one of the deadtime values at one of the voltages, and how much fuel flowed.

You can work out the effective pulsewidth, and how many ml of fuel flow per second of injector opening.

So you run a test somewhere in the linear flow portion of the injector (I picked 6ms @ 100hz, 12,000 events) at varying voltages.

Enter this data and then it'll tell you what the deadtimes are.

I scoured the net for as many known deadtimes for known injectors as possible, and found that 95% of the time their deadtimes match an "Exponential" trend line in Excel. I even found a typo in the data for the Injector Dynamics 750 on their website this way! Which they have now corrected.

I wouldnt try to extrapolate from the data points toooo far, but you can get a very good approximation of the data points at 6volts / 8 volts / 15 volts etc if you have no way of actually getting there with your bench tester.

I found that my injector wouldnt flow anything at 1.3ms and had very unsteady flow between 1.3 and 1.4.

So I ran a bunch of extra tests around this region, but it's not overly important as my engine idles at ~2ms anyway.

But previously my minimum injector pulse width was set to 0.0, so I set this to 1.4ms in the ECU.

I've done a few calcs to try work out a short pulse width adder, but since the injector doesnt operate in that region it doesnt matter in this case. But you can see on the graph here the point where it all starts to turn to custard

I obviously couldnt run my car while the fuel rail was off, but using a battery charger pumping in 15 amps I was able to hold a steady 13.6 volts at ECU which is very close to operating conditions.

Looking forward to inputting the new information, calibrating the second set of injectors (I am running staged injection) and then giving it a retune. I've previously had a few issues with the injector transition to the outer ones, which I am thinking probably relates to deadtimes being incorrect and short PW adder being required for the bigger outer injectors but not currently entered.

This has taken a bit of time to setup and get results from (I could probably consolidate some of the testing required for next round of injector tests) But it's given some interesting insight for something that's cost $30 or there abouts to setup.

Exelent work D!

Im in the pit and about to do this myself but just sold my i88. Have to get me a ms2 for the setup.. Upside is i can make a rig that is up and running anytime without hacking into the car...

What injectors did you test? If it isnt classified that is..

Yeah I have considered getting a cheaper 2nd ECU to have dedicated to the bench, as well as fuel pump and voltage supply etc etc.

But I figure that having as many variables as close to operating conditions as possible will likely give me the best data.

I'm not sure if a MegaSquirt's injector drivers impose a different amount of deadtime or whatever. So easiest to use what I'm going to use.

I figure once I've done both sets of injectors it's a fairly "one off" sort of job so I dont mind using parts from the actual car.

Hopefully my extension cord to run the injector doesnt make too much difference to voltage drop. It's maybe another meter longer than standard.

The injectors being tested are 365cc Altezza injectors, they have a 6 hole nozzle and run 60psi from factory.

The deadtimes that I've found vary from the listed figures that I've found on the internet, I suspect that they may have been tested at 40psi or whatever for the other numbers.

I can give you my excel sheet and some instructions for how I ran it if you want, took a bit of head scratching initially to get the numbers working haha.

Yes i would love a copy of that spreadsheet David. Saves alot of work.

I was thinking of doing it like on one of the youtube videos i have seen. Different strategy than yours but seems to work. But your way looks good.

Dont think that extra length of wire would matter at all. Not alot of current going through it.

That is really impressive, I'd seriously be interested in any data you're sharing as I'm struggling with all the varieties of injectors customers bring in and the usual incorrect data that comes with them.

Okay cool, I'll just confirm my results after testing a 2nd group of injectors, double check the maths etc and then give you guys a copy with some instructions.

I can probably consolidate some of the testing so it's less time consuming too...

although I think I've got a good idea for how to make it build a short pulsewidth adder table which would be handy.

That's great work David! I normally suggest that working out dead time values for injectors is not something we as tuners can do but in this case you've shown a cost effective option.

I've never had the opportunity to do this kind of testing, however I understand that the actual dead time value will be effected by the injector drive in the ECU. In the perfect world you'd be best to do your testing with the ECU you intend to use.

Thanks to the Link engineers for adding this test functionality too - Makes testing like this relatively stress free.

Nice work sir - that is very cool, cheers for sharing and keep up the investigations and experimentations - I like your style :)

Thanks Andre / Lith it's good fun.

"I normally suggest that working out dead time values for injectors is not something we as tuners can do but in this case you've shown a cost effective option."

Ultimately you're probably still correct here, for situations where clients are paying for your time.

Being a home tuner tinkering with my own car, I have the luxury of no time budget for "research".

I could take 20 hours to work out deadtimes and short pulsewidth adder table, and even if it all ends in disaster and I gather no useful information... I'm not accountable to anyone else for that time. Which is great!

If I can whittle it down to a useful process that's only an hour or so to complete, that would be cool though.

I've got a friend with a few other injector types to test, in coming weeks.

For now though, I need to quickly run through my secondary injectors, then get the car back together for a tidy up on the tune before Hampton event this coming Monday. Cant wait!

You're very much correct about the guys at Link being awesome, it's super cool that things this injector test function exists in the ECU.

I ran a few tests last night on a second set of injectors.

Not the full set of tests, as it's bloody noisy having this thing making a racket at 10.30pm haha.

However some interesting, and initially confusing results!

The injector that i'm testing is a 1000cc single pintle unit, basically a fairly old style thing (By which I mean: They're cheap and nasty)

It's listed deadtime should be somewhere around .7 - .8ms, which is about normal for high impedance injectors.

Which is why I was highly confused when the results from each test were a lot closer together than the Altezza injector.

According to my method, (which I double checked again after seeing this result), the deadtime on these is somewhere around the 0.3ms. Which doesnt seem possible for a high impedance injector.

So what possible explanations are there for these results?

I'm thinking... Since it's a single pintle injector where it's raising a needle off a seat. It must reach near full flow before the needle is all the way "up".

So if I used the oscilliscope method (Which finds the time from start to finish of the needle moving) I'd probably find a "deadtime" of 0.7 or 0.8ms even though this isnt what I'm seeing in reality.

I only managed to test down to ~3ms last night before deciding I was making too much of a racket. But I think it will be interesting to see how this injector responds at the very low pulsewidths. I would suspect that (much to my surprise) it's capable of performing competently well below the 1.4ms minimum of the Altezza injector.

As expected these other injectors performed all the way down to 0.8ms actual pulsewidth which is impressive! And surprising.

I had a real mind bender trying to work out a pulsewidth adder table, but I think I've got that figured out.

One interesting thing to note... When I had my car/ecu/etc running below 11 volts for deadtime tests, the fuel pressure started dropping which obviously alters the amount of fuel flowing. So because of the method I am using, my "deadtime" for this area is also factoring in the reduced flow.

After running these tests, I dont even like the term "deadtime" anymore!

Because it seems that in real life, it seems like deadtime is just one variable in the "offset" that is more complex than just the time it takes the injector to open.

Although the proof is in the pudding, I should have my car running again this afternoon with the new settings.

So it will be interesting to see if I will notice any tangible difference to how autotune, closed loop etc works!

Looking forward for some real life results.

What pump are you running and is it set up for all time full tilt or regulated somehow?

Davidv, what most peoples wrongly call "deadtime" actually IS an offset.

The actual opening time is a totally different thing, and that is WHY small pulsewidth data exist; to compensate between those 2 points. (and to be fair, characterizing this non linear portion is the hardest part)

One of the greatest article on that subject is from Paul Yaw (Injector Dynamics)

Thanks Ludo, good article.

What I was getting at is that I've seen some differing methods for calculating deadtime, that will not give you a good number.

I've read one article that says to find the deadtime, use an injector test bench and reduce the pulsewidth until it doesnt flow any more.

However in my case the deadtime is 0.6ms while the minimum opening is 1.3ms. Huge difference!

Another article suggests using an oscilliscope, which shows you the time it takes for the injector to fully open.

Which isnt necessarily indicative of the real deadtime either, if you're reaching peak flow earlier than this. (In my case, injector opening time is likely ~0.8ms but the effective deadtime is 0.3ms)

But anyway, I tested my second set of injectors.

Since I already had the excel sheet setup it took just a smidge over 2 hours to establish:


-minimum opening time

-CC rating and inner/outer injector ratio

-Short pulsewidth adder table.

Pretty good I reckon!

Since doing this, my cars idle is a LOT better.

I had to redo my fuel map, so I thought I'd try this using just mixture map and it's worked great. Took a bit of manual smoothing some areas, but works way better than before.

I'll post up my excel sheet some time this weekend.

I just stumbled across taht video, and I think it's pretty cool

Interesting results you're seeing there David. I'll be interested to hear how the engine performs with your new values.

Ludo, I'd say the terms used come from the way they are integrated by different ECU manufacturers. Dead time has long been the typical term applied, however offset is a more technically correct term. It's also often referred to as latency or battery offset.

I think one common part that people miss is that dead time or offset isn't just the delay in the injector opening - It also includes the delay in the injector closing. Understandably the closing delay is much shorter than the opening delay since the injector has fuel pressure helping it to close. I tend to explain dead time as the difference between the pulse width the ECU sends to the injector and the amount of time fuel is delivered by the injector - Essentially the difference between the theoretical flow and the actual flow. But this assumes a linear relationship between fuel flow and pulse width which we know isn't accurate.

You couldn't base a dead time value off the minimum pulse width where the injector stops flowing fuel, as this happens deep in the non linear operating region and hence the results would be heavily skewed. There is also the 'knee' in the flow to consider down here when the injector first begins opening. Below the knee, the injector isn't fully opening and hence the operation and fuel flow tends to be unpredictable.

Paul's article on GM characterisation demonstrates this nicely - The offset/dead time is the difference between the actual flow and the theoretical flow based off the static flow rate which ignores the lower non linear operating region. Then we need the low pulse adder data to correct this non linear region and hence fully characterise the injector operation (well once we consider differential fuel pressure and battery voltage too, but you get the idea)

For further reading check out another article from Paul Yaw -

Since updating deadtimes... Car has been running great!

Idle is way better, blipping the throttle is way snappier, and autotune etc gets pretty close within far fewer iterations.

The staged injection is working MUCH better, and best of all the whole thing is way more resilient to changes in temperature etc without losing its tune. Drives great in all conditions now which is awesome.

Myself and a friend spent some time getting some data on ID1000s tonight.

Took friggen ages (mainly because I had to pull half my car apart and put it back together afterwards)

But this was interesting because it's the first time I've measured some injectors which actually do come with some reliable deadtime info to compare against.

For better or worse my results were very similar to the provided figures, we were running a slightly different pressure compared to listed data though.

Unfortunately we found that the Link G4 (which my friend uses) does not appear to have a minimum pulsewdith setting, or a short pulsewidth adder table. (As opposed to G4+, which does)

So some of the extra lengths we went to by running lots of tests could have perhaps been streamlined a bit.

It was still interesting though and good to rule out the injector behaviour as contributing to idle issues etc.

Also the injector behaviour was pretty good anyway.

They were clocking in at 938cc @ 39psi / 13.6 volts.

Nice and linear down to about 2-2.2ms but below that you really need the PW adder table as there's quite an aggressive knee and then it drops off pretty quickly.

This gives me some confidence that my method is pretty good, and it will work well in other cases when injectors are being used where accurate deadtime information just simply isnt available.

For anyone thats interested I've attached the excel sheet of the data we gathered and also some of the equations used.

I've been meaning to tidy it up a bit for public consumption but its still a little rough around the edges, should get the idea though!

Attached Files

To summarize though, I cant help but reiterate what has been said many times, paying the small amount extra for injectors that come with good info is money well spent.

However it's also good to know that if you end up with some oddball injector (From a classic car or something) where there are specific reasons not to change away from them, there's still a method to use those injectors effectively.

It's been a good learning exercise and it makes me wonder how much time gets chewed up by people chasing their tails around because their incorrect deadtimes screw up all of their compensations.

You sir, are an absolute bloddy legend ive enjoyed reading your handy work keep up the good work

Well David,

Lets just say I`m a fan of your work! :)

Good job David!

Hi David,

I'm very impressive the way you do this. :-)

I just looking in your exel file and have a few questions.

Sheet raw data - How did you get the Inj Size?

Sheet Initial Deadtime calc - How did you calc ml/sec when deadtime excluded?

Sheet Deadtime Voltage calc - How did you find the Completed time?

Would you please give me some explanation?

Thank you very much in advance.


Hi Joe.

Injector size - If you go to the tab called "Deadtime Voltage Calc" you'll see a column there called "Flow rate (ml/sec)".

The CC rating is just some maths done on this.

(15.625ml per sec * 60 = 937.5cc)

The 15.625ml value is a calculation taken from the effective flow rate at 6ms, as this generally seems to be in the linear portion of injector operation (If it wasnt linear at this point, you've got issues!)

To work out the initial deadtime calc, it's basically dividing the total amount of fuel measured by the number of spray events, for each test.

Then it subtracts the deadtime number you enter, from this amount of fuel.

If the deadtime is wrong, it will subtract too much from some results but not enough from the others.

(which is why the line slopes one way or the other)

Hope that makes sense.

Hello David,

Thank you very much for your reply.

Hello David,

I'm still stuckling on "ml/sec when deadtime excluded" value,.

Would you please show me how to calulate this part?

Thank you very much in advance.