I went ahead and bit the bullet and ordered an Elm327 interface for the OBD2 port.. I imagine it should be here in a week or so.
What I'm interested in (besides the obvious mpg data) is logging data that will allow me to derive a BSFC map, I think such a thing would be very helpful for those wanting to keep their engine running in the most efficient portion of its operating range.
It seems to me that BSFC could be determined from speed, injector width, throttle position and rpm signals with a little math. I'm still mulling over what would need to be done with the data but I think I have a handle on it.
Determine horsepower from acceleration and weight, then the BSFC for various rpm and throttle settings could be found by measuring injector pulse width to get fuel flow figures for each set of operating conditions.
You'd need something to accurately measure load AND fuel flow to create a BSFC map. Ideally, you'd want to make a 3-dimensional graph with BSFC plotted against RPM and hp. In a perfect world, you'd have access to a hysteresis dyno that would allow you to fix the RPM and vary the throttle at each RPM point to determine the fuel flow at each TPS/hp setting. Absent that, I'd invest in some type of accelerometer.
Acceleration is simply difference in speed over time, that will be logged with OBD2 data.
I'm looking at creating a spreadsheet that can take maybe ten miles worth of OBD2 driving log data over a known course and come up with a rough BSFC map, something to allow the driver to know where the fuel efficiency "sweet spot" is in the operating range of his engine..
I'm not looking for ultimate accuracy, just reasonable qualitative guesstimates .
I'm thinking your best bet would be to do several runs, at 10% throttle, 15%, 20%, etc. Run from as low a speed as you can up to max rpm, choosing a gear that allows you to max out at a reasonable speed, so aero drag isn't a big issue.
I had planned on collecting data on aero drag and rolling resistance through some coast down runs and then incorporating that data in the spreadsheet. Once you characterize the coast down you can then add that to the acceleration data and largely compensate for drag and rolling resistance. My biggest problem is that I live in a relatively hilly area and finding a flat straight road that is free enough of traffic to do coast down tests is hard.
I wrote a performance calculator program in Visual Basic for electric powered model airplanes about a dozen years ago after collecting equations from about thirty years worth of old magazine articles among other sources.. By today's standards my program was pretty primitive but it gave surprisingly accurate results for things like climb rate, motor run time, stall speed and so forth.
I'd like to take the same kind of simulation techniques and apply them to helping people save energy in their driving.
Now that I think about it, air drag shouldn't affect BSFC measurements. You're just measuring the engine output against some kind of drag, but it doesn't matter what it is. The loading will change the acceleration that results, but not the engine output.
You have to know what the power output is in the first place before you can determine BSFC so you will have to have a handle on aero drag..
Even a non level road can be fairly easily compensated for by running tests in both directions and averaging the results.. I haven't been able to find a truly level road anywhere around where I live, the one flat straight stretch I have found is significantly tilted.
I can't directly control throttle position in my DBW car.
Anyway, the throttle-based chart is workable. If OBDII could report measured fuel rate it would be very easy. Less easily, it can be done using the fuel injector duty cycle (fuel rate) meter (thanks, monroe74!) combined with the TPS and RPM readings logs. It would be necessary to get video of the meter, along with something for reference -- tachometer maybe. Then you frame through the video and record the meter reading alongside the logged TPS and RPM readings.