View Single Post
Old 04-07-2012, 08:10 AM   #1 (permalink)
EcoModding Apprentice
Join Date: Jan 2011
Location: Australia
Posts: 179

Sonata97 - '97 Hyundai Sonata GL
90 day: 25.96 mpg (US)

Pulsar - '03 Nissan Pulsar ST
Team Nissan
90 day: 36.09 mpg (US)

Lancer - '04 Mitsubishi Lancer
90 day: 31.11 mpg (US)

Lancer 2.0 - '09 Mitsubishi Lancer
90 day: 27.1 mpg (US)
Thanks: 9
Thanked 16 Times in 13 Posts
Using Inj Pulse Width to calculate

MPGuino does this low level - by counting the number of seconds the injector is pulsed on for = amount of fuel consumed.

I can get the same parameter via ECU coms (Inj. Pulse Width). It's advantage will be in DFCO - MAF would show a reading, whereas Inj Pulse Width would equal 0.

So if reading Inj Pulse width via comms, I think this wouldn't be as accurate - right?
Can I do that? Read the Inj Pulse Width, I should manage several reads a second (I think > 5). And with that, add up the time it's open for, and count the speed as per normal.

I can't think of any obvious reason not to do that (as the current one relies on reading MAF anyway, and Inj Pulse Width has to be better).

Calculation would be something like:
const InjFlowRate = 50mls
(i.e. if the injector was open for 1ms, it would flow 50mls of fuel).

Time Inj Open = 300,000 milliseconds
(This is simply calculated and added to - read the inj Pulse width, assume it's constant between reads, multiply it by the time between reads, and add that to the variable).

Speed: Similar to Injector, but using speed variable. Add it all to an odometer variable.

Then fuel consumption merely equals:
Fuel Consumed (L) = (Inj Flow Rate x Time Inj Open) x no of Injectors
Fuel Economy (KM per L) = Odometer / Fuel Consumed

Any thoughts on the above ? Must be some reason that's not done in OBDuino.?

  Reply With Quote