Caprice Fuel Gauge Calibration

Inaccurate fuel gauges disturb me greatly. I've been left on the roadside courtesy of Honda and VW in the past because apparently 1/4 tank on the gauge corresponds to no gas in the tank. The Caprice gauge exhibits the typical pyramid gas tank effect: you're full for a long time then suddenly you're on E, but at least it goes to E. Lately it's gotten to the point that at 1/2 on the gauge I know it's time to look for a gas station, because in 15 mi it will drop to E. I will live with inaccurate gauges no more!

A simple solution is to trim the gauge with a potentiometer. This helps by offsetting gauge. For example you would adjust the potentiometer to make the gauge read full when you have a full tank of gas ( it may have been overshooting the full mark before). This tends to return the gauge to where it was set at the factory, but does not account for the 'pyramid' effect.  

My solution is to use a microcontroller to read the gas level, compensate for tank geometry, and accurately display the results on the gauge. The effect hopefully will be a linear and accurate gauge.  The following is a block diagram illustrating the functional components of the circuit.

The microcontroller uses feedback gauge to compensate for temperature changes, and voltage swings.




I have the microcontroller wired to the board and test programmed it. I also finished the rest of the wiring to the dac and the opamp. I'm really close to testing this in the car, but the software needs testing/debugging.


I have the test circuit breadboarded, and it has convinced me it will work on my vehicle. Therefore, I have decided to solder a prototype to try on the vehicle. So far I have finished most of the component wiring, and all of the power supply wiring including the negative voltage generation to the DAC and opamps.

 Today I also obtained the calibration curve from my tanks sending unit. This was an embarrassing matter. I didn't feel like measuring the gas myself so I did it at our local gas station. It spliced into the sender wire and measured the resistance of the sender through my multimeter. The thought was let the pump slowly fill my tank while I wrote down the resistance values in order to generate the calibration data. The problem was I didn't account for the fuel sender oscillation. So basically I had to fill a gallon, wait until the oscillations were damped out, and then read the resistance. This of course took a long time and probably looked very suspicious. I simple smile and a wave seemed to allay the gas station attendant's suspicion, but it didn't help the process go any faster. She was nice though and would turn off the gas pump's beeper every time it beeped at me for taking my sweet time.

So here's the precious data:

I've since given the vehicle to my brother.