Some background info… The fuel level sender in the fuel tank uses a resistive element (basically a rheostat). A float arm moves a sliding contact across the winding of the rheostat to indicate the fuel level. The rheostat is rated at 90 ohms. I believe this is the same value as used by non-electronic fuel level senders. A resistance near zero is empty and a resistance near 90 ohms is full.
The instrument cluster supplies a voltage to the fuel level sender through a 243 ohm 1% resistor. This is used to bring the voltage down to a level that the ADC (Analog to Digital Converter) in the cluster can use. The ADC compares the voltage it sees to a reference voltage and sends the corresponding number to the microprocessor in the cluster, which then uses that number to decide how many segments to light up on the fuel level display. The ADC is an 8-bit device with a 5 volt reference. If the incoming voltage is zero volts, it puts out a binary 0000 0000, which is zero in decimal. If the incoming voltage is 5 volts, it puts out a binary 1111 1111, which is 255 in decimal.
One of the problems with the setup used in the Corvette is that the 5 volt reference used by the ADC is regulated but the supply voltage to the fuel level sender is not. The voltage to the fuel level sender comes from the battery/alternator, which means that it can vary quite a bit depending on whether or not the engine is running. I have seen this personally, as my fuel level was showing 3 bars while the engine was running but dropped to 2 bars when the engine was shut off.
[ EDIT ] I drew up a schematic of the fuel level input circuit in the instrument cluster. This should make the connections and stuff a little more clear. I didn't write down the reference designators, so I just made them X, Y and Z. The ignition voltage gets divided between the 243 ohm resistor and the 90 ohm resistance of the fuel level sender. The two diodes prevent the voltage from going negative or higher than 5 volts to protect the ADC (Analog to Digital Converter). RY limits the current if the input voltage goes wacko. CX, CY, RZ and CZ are noise filters:
[ /EDIT ]
I have been wanting to do this for a while and finally got to it tonight. I attached a 100 ohm pot (short for potentiometer) to the fuel level input of the instrument cluster and calibrated the fuel level indicator. I took a shortcut and used a pretty crude method to save time.
I measured the pot resistance at 95 ohms and configured it as a rheostat, so the full scale resistance doesn't matter. First I compared the voltage I got with the pot at 95 ohms with various supply voltages. There was quite a bit of variation:
This will be a problem when trying to calibrate the fuel level sender because it will make a difference if the engine is running or not.
I set my power supply to 13.5 volts because that's about what my car runs at when the alternator is hot (it puts out more voltage when it's cold -- caused by the voltage regulator inside the alternator). I varied the pot in 50mV (0.05 volts) increments. That's a pretty big jump between steps, but the cluster has a pretty large delay built in to allow for sloshing fuel and it takes a long time for the indicator to move (I saw delays as long as 45 seconds between moving the pot and when the bars changed). 50mV per step is really too large to be accurate, but it gives a rough estimate. The ADC has a resolution of 5 volts/256 steps or 19.53mV per step, so ideally the steps should be around 10mV. I started with a "full" tank and worked downward to "empty" and then back up. I recorded the threshold voltages when a segment just went out (going down) or just turned on (going up). The fuel level gauge has 17 segments. For reference, the RESERVE light will come on when the gauge gets down to two segments. Averaging the "going up" voltage with the "going down" voltage gives the "center" voltage for that segment. The voltages should come out in a straight line when plotted because the ADC is a linear device. I did plot the values and they were pretty linear (given the crude steps I used), so that was verified. I changed the pot output voltage and waited 60 seconds to see if the segments changed, so it took quite a while to step through the full range. The results:
So, any voltage higher than 3.50 will turn on the all the segments. Any voltage lower than 0.25 volts will show no segments. This gives a little tolerance at the full and empty ends of the gauge. This is needed to make sure the fuel sender puts out the full range of fuel level. It might not get all the way down to zero ohms, for example. There should be a gap between the top and bottom values and why there is not for many of the segments is a mystery.
[ EDIT ] I forgot to put in the resistances I measured while doing these tests. At 3.50 volts I measured 76.3 ohms and at 0.26 volts I measured 5.1 ohms. My meter shows 0.3 ohms with the leads shorted together, so the actual resistances above are a little lower, say 76.0 and 5.0 ohms. What that means is that any resistance over 76 ohms is FULL (17 bars) and any resistance below 5 ohms is EMPTY (no bars).
[ /EDIT ]
What all this means is that you can measure the voltage on the pink wire at the fuel level sender (the other DVM lead should be touching the metal fuel tank -- ground) and the voltage you see should be matched up with the voltage in the "Average" column, which will correspond with the number of segments lit up, as shown in the table above.
Here's a pic of all the fun. The pot (the small gray square on the right side of the picture, connected to the cluster wiring -- I just happened to have a 20-turn 100 ohm trimpot "in stock") is set to put out 2.05 volts and the fuel level gauge is up to segment 9 (1/2 tank). The blue thing is a "tweaker" designed for adjusting trimpots:
Now the fun part will be pulling the fuel level sender out of the tank and calibrating it to match the instrument cluster. That will be interesting. Stay tuned for Part 2. It could be a while since I haven't figured out exactly how I'm going to do this…
Last edited by Cliff Harris; 12-18-2013 at 03:59 AM.
Reason: Added note on sender resistances. Added input circuit schematic.
GREAT THREAD! My 87 DD was dead-on for 20 years, then about two years AFTER a fuel pump change, started reading high (full at about 13 gallons). I was very careful with the float rod, so could not figure it out. I just set it aside as a minor annoyance, but it would be nice to fix. A mod to the pink wire would be super easy. Will be interesting to see what you come up with.
This is the type of potentiometer/rheostat I believe you'll find on the level sender when you separate the sender sections. The comments in this are regarding the adjustment to a different dash unit requirement. I thought the information regarding dirty corroded coils and contact interesting as to how it might reflect gauge accuracy:
I have a new C4 tank unit but I couldn't disassemble for comparison but I've had others apart and that's what I'm familiar with seeing on early in tank pump units. The later plastic modules are of course dramatically different.
That's great detail for "bench calibrating" the fuel level, BUT, IMO, and believe me, I am well aware that this is ONLY an opinion, puts most of the drama in fuel level accuracy back at the tank...
I have NEVER heard of a C4 fuel gauge that was less than EXACT the first 20 yrs....mine (on several different cars) would go to 1 mile before the engine misfired.
Then it all slowly changed to 10-20 miles off...1 -3 bars off, then the gauge showing 4 bars when driving and after shut down you see the REALITY of 1 bar well into reserve...
This is what I believe is going on.......
we have a dampener built in to stabilize the display so we don't see sloshing.
The level sender is also quite simple BUT simple also means susceptible to damage. In this case the sender is a series of flat bars laid in place around a hemispherical shape, like a half moon. A copper contact a lot like a breaker point on an old points ignition system is what the float arm swings across these bars to get a reading as Cliff explained in his detailed post. Each bar corresponds to a higher reading on the display....
The contact point is a fine point when its NEW. Like the tip of a ball point pen. After 20 yrs of sweeping across bars that do have edges and ridges....this 'tip' gets worn down and now contacts a slightly larger area on the bars....possibly leading to a confused display reading, or showing MORE than is actually there.
The other thing that I have noticed is that the bars themselves will become "bridged" with a film or layer of some chemical residue from the gasoline additives that builds up and jumps or bridges 2 bars together and CAN bridge the whole assembly, leading to a very unstable signal that the display must interpret. The contact is on the last bar, indicating 1 bar, BUT when/if its been bridged it now shows as if it were on the 3rd bar...because 1,2 and 3 are all linked together by this layer of build-up between each bar.
THAT is why IMHO, that you see 3 or 4 bars while driving and engine running, and not the actual level that can be near zero, because the float assy is contacting what amounts to several bars at the same time, so the gauge has no choice but to display what the float assy is touching on the half-moon rheostat.
I have cleaned the bars with a mild acid solution and a soft brush to remove the buildup between the bars that bridges and connects them together. This helped a lot. I also tweaked the contact tab to stay against the bars. I filed the tip to make its point of contact as small as possible, but there is little to work with...so that's real "iffy".
These "repairs" do help get an accurate reading again, for a while. BUT, the metal folding tabs on the coil assy are fragile and will not tolerate more than 1 or 2 uses to open the coil to access the bars and contact...once they break, its pretty much over since they hold the thing together exactly the way it must be for the 2 halves to mate properly. You could 'tack' it together...gently IF you have to equipment to do micro-welding.
Its pretty amazing at the accuracy of this assembly when you see how cheap and simple the float/sender assy is.
Messing with the float arm itself is a no-no. Its actually pretty hard to bend out of shape with its springy nature...but once bent, you will never find the right spot again. Remember the tank shape...just because the float is at top or bottom does NOT MEAN that the tank will show empty or full ! This tank is a strange shape that is difficult to gauge.
New sender/float assemblies always seem to solve the problem. I bought one 25 yrs ago and paid $600. Now if you shop around you can buy one minus the pump for under $175 and use the pump of your choice.
Between some repair/maint to the sender assy AND utilizing Cliffs info to bench calibrate,. there is no reason that you should not be able to get the thing as spot on as it was when new. Please keep in mind, this is ONLY opinion...no where near as researched and technical as the OP write up...its just what I have personally discovered in my C4 ownership and maint on the C4.
Use a regulator chip. That's what I thought also. They look like a three legged transistor. One lead is 12volts, one is ground, and the other is regulated 5 volts. Having a constant voltage is the only way to fix this. You will also have to adjust the level sensor so it reads full or empty when it is.
WVZR-1's link has a picture of what I was thinking of doing -- making a paper template with the various positions of the float arm. One problem is that the top of the Corvette tank is at an angle so it's not easy to mount it externally to the tank for calibration. I think it will work while lying on its side on a workbench. My latest thought is to lay it on a towel on the back of the car so it is connected to the car. We'll see how that goes.
My gauge was super accurate until I accidentally burned up the sender element. My fuel pump went bad and I was trying to test it and put 12 volts into the pink wire by mistake. The element went "poof". The new sending unit I bought was WAY off and I replaced it a few years ago with the stainless steel unit that all the Corvette vendors are selling now.
I saw a thread several years ago where the poster bent his float arm to fix an inaccurate fuel level gauge. My purpose with this thread is to "calibrate" the bend so the fuel level gauge becomes more accurate.
One of the problems I'm seeing is that because the resistance of the sending unit is only 90 ohms, it becomes very difficult to calibrate it by resistance. Most DVMs are very bad at reading very low resistance because of the extraneous resistance in the probes and the connections are problematical. The meter in the picture shows 0.3 ohms with the probes shorted together, so that throws off all the readings. I forgot to put the FULL and EMPTY resistances I measured in the original post -- I'll fix that.
I looked at buying a precision voltage source like the one I used to use back in the '80s on my job. At roughly $100 - $150 for a used one (I saw a "remanufactured" one for $389! -- new they cost about $1000), it's pretty hard to justify buying something I may never use again. For reference, it was a Power Designs 2020B. Very nice little instrument.
I drew a schematic of the fuel level circuit on paper but have not made an electronic version yet. I really need to do that to make the setup clearer.
A voltage regulator would be nice. You would have to change the reference resistor (243 ohms) if you added one. Most older voltage regulator ICs have about a 2 volt drop, but the new ones are way down in the tenths of a volt, so you might be able to get away without changing the reference resistor. There are four 243 ohm resistors on the instrument cluster PC board. They are used for the fuel level, coolant temperature, oil pressure and oil temperature circuits. All of these could benefit from a more stable reference voltage. We have no idea what voltage the designers were using, so if we guess wrong then everything will be off.
Last edited by Cliff Harris; 12-11-2013 at 05:42 AM.
I leave home today. I'm thinking I should get gas. I see I've gone 28 miles since I took my dash apart so that's no help (the trip odometer gets reset when you remove power from the dash -- I always reset it when I fill up as a backup to the fuel level gauge). I see 4 bars on the fuel gauge, so I figure I don't need to go to the gas station. I'm driving along and press on the accelerator. There is some hesitation and the car seems like it wants to go but can't. I get to a traffic signal and stop. The car suddenly starts coughing and sputtering. I can only keep it running if I "pump" the gas pedal. I managed to get the car to the curb and it dies. I start it and it seems normal. I start driving and more sputtering. I managed to get it home (about 1/4 mile) and it died and wouldn't start when I got to my garage. I had to push it into the garage, which isn't easy without power steering and there is a slight upward slope into the garage. During the fun the SES light came on and I got an error code 44. I never saw that one before and had to look it up -- lean exhaust, probably O2 sensor problem.
I thought the fuel pump had failed. I jumped the oil pressure switch with tweezers (I'm glad I figured out that method -- it's so much easier than trying to jumper 12 volts to terminal G of the ALDL connector) and I got 20 PSI, so I concluded the fuel pump had gotten plugged up somehow (I had that happen to me about 10 years ago -- the sock shredded from rubbing on the bottom of the tank and jammed the pump). This sort of forced the next installment in this calibration thread to happen right now.
I took the fuel level sender out of the tank and found the real problem -- no fuel (recall that I was seeing 4 bars and only drove about 2 miles). That did give me the opportunity to photograph this guy (been wanting to do this for a while -- the blue stuff is the little remaining fuel in the tank):
The infamous "windage tray". I don't like that name because it makes me think of the windage tray in the oil pan and its function is nowhere near the same. We'll stay with it since that has become its common name. I have heard several people say it's glued to the bottom of the tank. I can quite clearly see 6 rivets, so I don't understand the glue thing. When I first looked at it I couldn't see any holes for the fuel to get in. Finally I found two tiny holes that are located on either side of the round light spot near the front of the tray. You can barely see a dark area in the bottom corner on the left side. That's one hole. It's actually a slot about 1/4" long and 1/8" high.
While I was in that area I found this label -- apparently the manufacturer of the fuel tank:
I was looking at the sending unit and it looked like the float was way too low, meaning that it would hit the bottom of the tank before the fuel was gone and make the fuel level reading high. Then I noticed that the sock had a mark on it where it appeared to be rubbing on the bottom of the tank (you can see a dark area on the bottom of the sock near the 4-3/4" mark on the rule). I also noticed that the sock had a "bend" in it, so it appeared that the pump does not sit at a 90° angle to the bottom of the tank. I lined up a rule with the sock bend and it appears that the float is OK after all. A note on the sock: My recollection is that the stock sock went left-to-right across the windage tray. I had to turn the new one 90° to get it to fit because it was longer:
There are two tabs on the fuel level sender element housing that limit how far the float arm can swing:
I took the fuel level sender element off the unit. I photographed the inside but my camera somehow "forgot" those pictures -- very irritating, especially since I'll probably never have that opportunity again. I usually take 4 pictures of everything and choose the best one. I did write down what I saw in there: "JOAB CR01". I assume that's a manufacturer and part number, so theoretically you could buy just the element if yours is broken instead of buying a whole assembly.
On to the calibration… I had to come up with this hokey setup because of the way the float arm mounts on the fuel level sending unit:
This turned out to be an exercise in frustration. I had the hatch open to see the cluster better and the ignition was on so the fuel level was displayed. As mentioned in the first installment, the fuel level gauge is very sensitive to the battery voltage. It also takes a LONG time to settle down after the float arm is moved. I was moving the float arm and marking the locations for empty, 1/4, 1/2, 3/4 and full. The battery was slowly getting lower and lower and throwing off the calibration. My original plan was to plot my markings and post them to help others do this. I gave up on that because I couldn't get stable readings.
I think the only practical way to do this is to install a voltage regulator in the cluster to stabilize the voltage so the fuel level gauge is consistent and accurate. I've been looking at low dropout voltage regulators but couldn't find one in the small size package I wanted (TO-92, for the electronic guys out there). A 78L12 has a dropout voltage of 2.0 volts, so the battery voltage would have to be at least 14 volts for it to work -- not practical. There are some voltage regulators with only about a 0.1 volt dropout, so they would be ideal, but they only come in the TO-220 package -- much larger. Further investigation is ongoing…
I was seeing one bar on the fuel gauge, even with the float arm on the empty stop tab. I bent the float arm a little to get it down to no bars. You have to bend it between the pivot and the stop tab, so this is pretty difficult to do with precision. I didn't know how much bending I needed, so I just bent it enough to see that it was bent and went with that. Now it shows no bars when the arm is on the stop tab. Better to be a little too low than the other way (showing fuel when there isn't any).
When I went to put the fuel level sender back in the tank I couldn't get it to sit on the top of the tank correctly. There was about a 1/2" gap. I didn't want to force it and I could hear the float hitting the windage tray so I took the unit out of the tank and examined it. I noticed that there is a bend in the float arm, leaving a gap between the float arm and the fuel pump support tube:
That gap has to fit over the wall of the windage tray. It was easy to get back in after I knew that.
A side note: I've had this fuel level assembly for several years. It is a beautiful unit, all stainless steel. I got it when they were first introduced at Mid America. Now they're available from all the usual Corvette vendors. One great thing about this unit is that it's slightly more than half the price of a stock GM part.
Last edited by Cliff Harris; 02-11-2014 at 04:17 AM.
Reason: Corrected spelling error in picture file name
I have been thinking about the calibration some more and I think I've got a method that would at least get you much closer to something that is accurate.
When you move the float arm to the full position you should see the full amount of bars on the fuel level gauge. Then back off a little and the top bar should go out. It takes about 30 - 45 seconds for the gauge to respond to changes in the fuel level. The full position isn't really that important, but it gives you an indication that the geometry is correct.
Move the float arm to the empty position. It takes quite a while for the fuel level gauge to settle when going from full to empty (at least 5 minutes, maybe 10), so be patient. It looked to me like it took longer for each bar to go out as it got down to the last ones, so maybe it's got more compensation for sloshing fuel at the lower levels. What you're looking for is that ALL the bars go out when the float arm is at the empty position. Now move the float arm away from the empty position until the bottom fuel level gauge bar comes on. Wait AT LEAST 1 minute between movements of the float arm. Each segment on the gauge is very roughly 1 gallon, so that will give you an idea of how close you are to empty. Bending the float arm away from the empty stop tab will give you more fuel in the tank when the gauge goes to no bars. You need to bend it between the pivot and the stop.
I also changed the tank unit a long time ago to the one I have now
I purchased a used tank unit from someone here on the forum. it looked great, but did not work. The old one was not working, and I assumed it was not repairable..
I opened the cover, and the wiper and resistor were fine. But why wouldn't it work?
I soldered a wire from the metal cover of the resistor to the tubes that are soldered to the plate that mounts it to the tank, and it worked just fine. So my conclusion is that the mineral deposits that build up in the unit also create a thin insulating crust that prevent it from getting a good ground to the tank which is grounded by the plug that feeds the pump and the sender.
Apparently the three tabs that hold it together are the ground link, and they weren't making it. I had to add the bonding wire, and bent the float arm to get zero when no fuel.
Anyway, it is accurate now. Also, the chevron techron that comes in little black bottles at autozone and O'Reilly's will chemically eliminate the crusties on the rheostat inside the tank gauge wiper assy. .
Last edited by coupeguy2001; 12-14-2013 at 11:04 AM.