Quote:
Originally Posted by smonson
Here are the results of my observations
The following maths treat all cylinders as a single measurement. Figures will be 4 times higher than the real value for a single injector.
WARNING: PEDANTIC GUY AHEAD
Tank 1 (country):
 predicted 28405mL
 actually 28360mL (error: 0.15%)
 PWM fired 332468 times for 2195.598 seconds
 average pulse width: 6603uS
 average fuel quantity injected: 85.301uL
Tank 2 (city):
 predicted 30954mL
 actually 30950mL (error: close enough)
 PWM fired 385078 times for 2403.540 seconds
 average pulse width: 6241uS
 average fuel quantity injected: 80.373uL
The difference in pulse widths is 362uS and the difference in fuel injected is 4.928uL. From this we can infer that the fuel pumping rate is 0.01361325 uL per uS. Converting units, that's 204cc per minute which is in the expected ballpark for a small car.
The total time to transmit the average injected fuel amount into the cylinder is then 6266uS (tank 1) or 5904uS (tank 2). This predicts the injector time delay at 337uS for both, depending on how inaccurate those particular fuel pumps were.
Thanks dcb and everyone else for all the advice!

I just verified that my idea for determining these numbers will work. Now I have even more reason to get off my dead butt and implement matrix math inside the MPGuino code.
Basically, I'm just solving a system of linear equations using matrix math. To be sure, since I'm only solving for two variables instead of three, I could just use elimination to crunch the numbers.
In any case, it will be much simpler to calibrate the MPGuino with this in place. All the driver would have to do is fill up two separate times to full, and press a few buttons in both cases.