Fuel Level Gauge?????????


#5

Ordered an arduino kit to try and make a fuel gauge myself. The only reason I’m still sporting the factory cluster is b/c of the fuel gauge. Kit comes with 16x2 LCD. Thinking I’ll have the arduino read resistance from the fuel gauge via voltage and ohm’s law and give an output in percentage. Also planning to have box read the pulse wheel from the speedo and display speed on screen, but that’s a pretty basic project.

Planning to do some probing on my own soon, but wanted to see if anyone knows what the voltage/current of the factory sender/sensor system is? Please share if so.

It all seems simple enough, but this may wind up being an epic fail that results in me angrily smashing the arduino kit on my garage floor. Will update when I have progress.


#6

Which Arduino kit did you order? Has the potential to be a cheap solution that you can relatively easily add other functions to. Still, it seems an awful lot like work.


#7

$40 starter kit from ebay with the jumper wires, breadboard, power supply, lcd, etc.

I’m hoping that I can come up with a few dozen lines of code that read the pulse wheel & sender(s) in the tank and then output results to the LCD screen. Quick n dirty type of solution.

In my current naive fantasy, the job is only a matter of tapping into 3 wires (1 speed pulse wire, 2 fuel sender wires), applying some basic math(MPH = pulse time/distance_constant, %FULL = voltage difference between reference and sender voltage) and rudimentary coding.

I could see doing additional development to light an array of LEDs to correspond to the fill level in the tank, shift lights, data logging, etc. but the likelihood of me doing that isn’t very high at this point.
Frankly, the only reason I’m doing the custom route is because there is no other route.

I’m kind of hoping that I can get the sketch to a functional level, post it, and have someone with more engineering know how than me get so offended at how rudimentary it is that they clean it up, point me in a better direction, or just make it better.

My naive fantasy ends with me posting a link to the fuel/speedo sketch with a DIY write up for those of us no longer interested in factory clusters and $50 and an afternoon to spend ($40 Arduino kit, $2 Altoids box and zip ties, $8 6-pack of Abita).


#8

jim levie posted this in my old iq3 wiring help thread.

Most of what you want is present at the connectors that went to the cluster.

C1 pin 7 (Black) is the tach signal from the DME or you can use the wire off pin 6 of the DME connector.

C1 pin 26 (Brown/Violet) is coolant temp sensor

C2 pin 4 (Brown/Green) is the fuel gage sensor

For oil pressure you’ll have to install a sensor as all the car came with is a pressure switch for low oil pressure warning. A VDO 0-100psi (0-180ohm) sensor, like for an oil pressure gage, will do the job (www.egauges.com/ is a good source).

You will have to enter calibration data for these sensors. I use 180ohm pull-up resistors connected between +5 and the sensor input in the USM. You can work directly with the sensor resistance via a Custom Cal Table. Input the value of the pull-up resistor and the sensor’s data and the S/W will calculate the rest.

The data for the fuel gage depends on what tank the car has. Early production (up to 8/87) has a 55L tank with a single level sensor and late production has a 63L tank with two level sensors. The early tank will be 60ohms when empty and 0ohms at full (14.5gal). The late tank will be 120ohms empty and 0ohms full (16.5gal)

If you use a 0-100psi oil pressure sensor 0ohms is 0psi and 180ohms is 100psi.

The temp sensor is non-linear. I calibrated three sensors and averaged the results to get a representative curve. The data (resistance/temp)is:

4619.56 / 0
3557.15 / 8.12
2763.62 / 16.25
2165.39 / 24.38
1710.37 / 32.50
1361.36 / 40.62
1091.50 / 48.75
881.23 / 56.88
716.21 / 65.00
585.78 / 73.12
482.00 / 81.25
398.91 / 89.38
331.96 / 97.50
277.72 / 105.62
233.51 / 113.75
197.30 / 121.88
167.48 / 130.00
142.80 / 138.12
122.28 / 146.25
105.13 / 154.38
90.75 / 162.50
78.64 / 170.62
68.39 / 178.75
59.68 / 186.88
52.26 / 195.00
45.91 / 203.12
40.46 / 211.25
35.77 / 219.38
31.77 / 227.50
28.19 / 235.62
25.13 / 243.75
22.46 / 251.88
20.13 / 260.00


#9

I hate to be dense (you’d think I’d be used to it after all these years) but if this is the kit you’ll be using:

Arduino-DIY-Starter-Kit-Duemilanove-ATmega-328-LCD-1602

it looks like there’s no power supply included, rather it’s powered off of the USB port. You’ll likely need a conditioned 5V supply and probably some signal conditioning to connect it to the sensor inputs you have in mind.

And you’ll end up needing something to hardwire the LCD connections, those little white breadboards are not designed with an automotive environment in mind.


#10

Turbo, thanks for the info/data sheet. Was assuming I would be tapping in somewhere on the gauge cluster. That saves me some home work time.

RRhodes, the last thing you’ll hear me doing when it comes to monitoring a 20+ year old system with the cheapest parts I could find from hong kong is to call someone dense. In fact, keep it comin’ !!

My plan is use the breadboard to get the whole project running on the work bench in the garage with long jumpers running to the gauge cluster connections inside the car. For me, the breadboard is an easily manipulated design tool. High likelihood of me wiring things incorrectly or using the wrong resistors before I get it right, so this minimizes design time. Sort of like training wheels for those of us with club-like hands not suited for finite soldering work in a ruggedized container (which the final product will be).

Additionally, if I should motivate and cobble together a 2.0 version with expanded functionality (temps, psis, alert buzzers/blinkers, alternator indicator, flame thrower relay, etc.), the board gets that much more useful when cobbling those circuits together.

As I understand it, the arduino is powered by a 9-20v source. I’m planning to create a plug that pulls from a switched source inside the car. I’ll buy a bench top power supply as well (any excuse to spend money on my crappy old car instead of a college fund for the kids).


#11

Okay, I’ll quit whining as you appear to know what you’re about. Just the usual admonition not to power your board and sensor array from both the bench supply and the lighter socket at the same time or you’ll be reintroduced to those devious twins inhabiting all German car electrical systems, Arken und Schparken. We’re here to LIGHT YOU UP.


#12

If you’re feeling lazy, you can always get your breadboard set up all properly, then encase the whole thing in epoxy.

Also, has anyone going this route given up and just used the fuel gauge (in liters) on the OBC? Press 1000 and 1 together, voila, ghetto fuel gauge.


#13

Update: I’ve got a working sketch that breaks up resistance ranges into different zones (ex: 0 Ohms = Full, 17 Ohms = 3/4, 34 Ohms = 1/2, etc.), so the backbone of the program is working. Now I need to figure out what the Driver Interface will look like and could use some opinions from other people that have driven enduro.

I think of knowing fuel level as important, but not critical information. It’s more important than alternator output, but less important than OP or RPM. As such, I think a fuel gauge shouldn’t be as attention grabbing as something like a shift light.

The way the setup I have currently works is that an LED light is associated with each 1/8 step on a typical fuel gauge. Full = all 8 LEDs lit, Half = 4 of 8 lit, 1/8 = 1 LED and a buzzer sounds. The LEDs are pretty small, not too bright, and range from red at the bottom, to yellow, white, and then green. I’m thinking that the form factor of the output LEDs will be a 1" by 4" strip that gets mounted wherever (ex: Driver side A pillar cage tubing).

A second idea is use a small back lit screen to output some kind of value correlated to fuel sender output. Ex: Number value 10 - 0; Full, 1/2, E; solid bar that lowers and then blinks as level gets lower.

Any thoughts/opinions on how to communicate fuel level to driver?


#14

What length enduros?

I see no need to get too fancy with this. Leds that come on at say 1/4 & 1/8 tank are probably sufficient. Using the stock tank, unless you have a dual feed system and/or a surge tank the driver will know when it is time for fuel because starvation will start occurring in right hand sweepers.

The other way to manage this is time against baseline fuel consumption. When I ran the NASA enduros I figured on 90 minute sessions, which is one fuel stop & driver change in a three hour enduro.


#15

Lots of ways to solve this. We’ve used voltage dividers with aim, motec native ohm level and the arduino already.

Your calibration and dampening will be the most critical parts if you’re looking for 0.1 or better accuracy on track at the most optimal time for reading. :slight_smile: be very patient on your calibration for each gallon.

Also, the fuel level senders aren’t exactly 0-60. Pull both out and measure with digital ohm meter. Even brand new ones vary a bit. Our brand new ones were like 5-58.5 ohm.

We ran the 25hr with the motec and had to futz with the dampening a bit.

We also put in fuel flow sensors to validate level.


#16

The longest possible enduros I can imagine doing are the 24hour runs. Most of the races are Lemons/Chump Car, which are about 7 hours per day (working my way to Spec one day). Sometimes things go smoothly and fuel/driver changes go according to a predictable schedule. Most of the driver shifts are about two hours, but sometimes they can run near 3 if we have several of “unplanned” stops early on.

I spend my work days deciding what does or doesn’t go on a screen someone’s using for a specific task that requires most/all of their attention. I’ve noticed the same problems that show up in those circumstances show up in a race car. Specifically, drivers who don’t know the car that well sometimes miss important lights/gauges in the heat of the moment…like the oil level light… so I’m also looking to get the factory cluster out from behind the wheel. The end goal is to provide an environment that allows me to say “If any red lights blink or you hear a buzzer, something needs attention quickly”

Dgorman, thanks for the heads up about damping and calibration. I’ll throw some debounces or pauses into the coding to damp the reading process. I assumed the resistance reading was linear. My tank is getting near empty, so I’ll plan to drain it and take readings at 1 gallon increments when I fill it.

I could see how other people have actually used arduino for this and not posted about it before. It’s pretty easy. All the code you need for both the fuel gauge and a speedo comes with the software.


#17

Interesting point. Has anyone tried integrating the injector pulses with this setup to calculate fuel flow? And for damping I’m assuming you mean an integrator/low-pass filter built into the code. (I’m an EE…sorry.)


#18

You won’t need damping in the electronics. The time constant for the level sensors is really large. So large, in fact, that they won’t provide a valid result on a road course. I routinely see errors measured in gallons between what I see on track and after a few minutes sitting in the paddock.


#19

Look up mpguino. We replicated one with a stock arduino board and lcd kit. Was intersting to compare it against fuel flow sensors in input and output fuel flow on motec.


#20

Without dampening using native motec ohm measurements in0.01 gal resolution we can get a wide range of readings. If you use two channels (one for each side, you can see the slosh)

I do agree, there is a balance where you have to let the level set before you read (e.g check before entry to t1 at thunderhill)


#21

[quote=“lateracer” post=62106]The longest possible enduros I can imagine doing are the 24hour runs. Most of the races are Lemons/Chump Car, which are about 7 hours per day (working my way to Spec one day). Sometimes things go smoothly and fuel/driver changes go according to a predictable schedule. Most of the driver shifts are about two hours, but sometimes they can run near 3 if we have several of “unplanned” stops early on.

I spend my work days deciding what does or doesn’t go on a screen someone’s using for a specific task that requires most/all of their attention. I’ve noticed the same problems that show up in those circumstances show up in a race car. Specifically, drivers who don’t know the car that well sometimes miss important lights/gauges in the heat of the moment…like the oil level light… so I’m also looking to get the factory cluster out from behind the wheel. The end goal is to provide an environment that allows me to say “If any red lights blink or you hear a buzzer, something needs attention quickly”

Dgorman, thanks for the heads up about damping and calibration. I’ll throw some debounces or pauses into the coding to damp the reading process. I assumed the resistance reading was linear. My tank is getting near empty, so I’ll plan to drain it and take readings at 1 gallon increments when I fill it.

I could see how other people have actually used arduino for this and not posted about it before. It’s pretty easy. All the code you need for both the fuel gauge and a speedo comes with the software.[/quote]

Make sure it’s truly empty… You might waste a lot of calibration time thinking your tank is 100% empty when it’s not :slight_smile:


#22

This is something that I’ve played around with a bit as well. The arduino code is pretty easy, and I’d be happy to share what I have so far.

Here’s what it looks like just using a potentiometer to vary the resistance. Ideally you would want to map the range out instead of assuming linear rate.

http://vimeo.com/33483335


#23

Anybody tried one of these?
http://www.ironcanyonmotorsports.com/data-and-video-systems/icm-fuel-sender.html


#24

[quote=“jlucas” post=62950]Anybody tried one of these?
http://www.ironcanyonmotorsports.com/data-and-video-systems/icm-fuel-sender.html[/quote]

We have a shop one. You have to tell them the ohm range and they will swap out R1 with a different resistor (no biggie) so that you get to a close 0-5v swing from empty to full.

It works fairly well, however, if you want to play with the dampening, you’re soldering resisitors over and over again but works fairly well for the most part.