Can I piggy back off an analogue Gauge?

Thread Starter

Doodler

Joined Sep 6, 2023
3
I want to duplicate readings off of an analogue Fuel, Temperature, oil pressure gauges etc. and Rev counter. Using an ESP32 (Coz I have one going spare).
I'd like to use the ADC feature of the ESP 32 to collect the values and send them via wifi to my phone/Raspberry Pi which will be a few metres away from the analogue instruments. Basically the gauges are below deck on a boat and I'd like to be able to see them above deck whilst helming.

My question is can I just tap off the back of the gauges (given the voltage is dropped from 12-13V via a resitance divider to 3-3.3V for the ADC on the ESP32) or will this action affect the gauges accuracy. Not sure yet what the temp or oil gauge measures, but fuel sender gives a variable resistance from 0 ohms at empty to 190 ohms at full.

Or would it be better to disconnect the gauge from the sender, divide the voltage down and then have a circuit to give a value to the gauge.

Also if the above is possible are there ways to protect the inputs to the ESP32 (thinking along the lines of zener diode for over voltage maybe)?
 

LowQCab

Joined Nov 6, 2012
3,581
Does your Engine operate off of a Computer ?
If so, the best route would be a CAN-Buss Connection.

Most "Late-Model" Gasoline-Engines in Boats are
using an Automotive-Engine-Computer now days,
which will automatically have CAN-Buss connectivity built-in.
.
.
.
 

WBahn

Joined Mar 31, 2012
29,508
Assuming that you can't just tap into the computer data, you need to first measure the voltages of the signals at the gauges to see what they range over and, at the same time, see whether or not making the measurement affects the readings on the gauges. My guess is that, using a typical DMM, that it won't. Then I'd buffer the analog signals with a voltage-follower, which will present a load to the gauges comparable (or less than) the DMM. After that, condition the signals to match the input range of your MCU. Since it's basically an automotive system, you are probably going to need to ensure that the power for all of your electronics is well-conditioned.
 

Thread Starter

Doodler

Joined Sep 6, 2023
3
Does your Engine operate off of a Computer ?
If so, the best route would be a CAN-Buss Connection.

Most "Late-Model" Gasoline-Engines in Boats are
using an Automotive-Engine-Computer now days,
which will automatically have CAN-Buss connectivity built-in.
.
.
.
The boat is 33yrs old and doesn’t have Nmea2000 ( Canbus). The Volvo Penta diesel engine 2003T doesn’t even have glow plugs to aid starting.
The fuel gauge & sender are a WEMA using the boats 12V system.
 

ericgibbs

Joined Jan 29, 2010
18,226
Hi Dood,
A point to check out is the very poor linearity of the ESP32 ADC module.

E.
Added: @Doodler
My question is can I just tap off the back of the gauges (given the voltage is dropped from 12-13V via a resitance divider to 3-3.3V for the ADC on the ESP32) or will this action affect the gauges accuracy.
A low cost OPA could be used to Zero & Span the meter readings, also avoid loading the existing sensors.

 
Last edited:

Thread Starter

Doodler

Joined Sep 6, 2023
3
Would help to know the typical operating voltages from all the gauge terminals to ground.
I think they are all 12V It’s a simple setup. Fuel and temp senders have a signal wire and ground. So no voltage changes ( to my knowledge) to/from the senders and gauges.
The Esp32 inputs are 3.3V.

Assuming that you can't just tap into the computer data, you need to first measure the voltages of the signals at the gauges to see what they range over and, at the same time, see whether or not making the measurement affects the readings on the gauges. My guess is that, using a typical DMM, that it won't. Then I'd buffer the analog signals with a voltage-follower, which will present a load to the gauges comparable (or less than) the DMM. After that, condition the signals to match the input range of your MCU. Since it's basically an automotive system, you are probably going to need to ensure that the power for all of your electronics is well-conditioned.
Unfortunately I’m 150miles away from the boat. Therefore, unable to physically try anything until I’m next down there. I know I’ll need to present 3.3V to the ESP32 and can achieve that by using a voltage divider. But I’m not sure how that will affect the resistance presented to the gauge as the divider will be in parallel to the sender resistance.
 

Ian0

Joined Aug 7, 2020
8,944
At that age, most of the gauges would be hot wire types. They will be supplied by a “voltage regulator”. I use the term loosely, as they used to be bimetallic strip devices which turned on and off to ”regulate” the average voltage. A switched mode supply with a frequency of <1Hz. About that time ones in cars were replaced by real voltage regulators. Boats may have followed suit.
First thing to do is to see if you have a real voltage regulator.
Then, you’ll find that senders and gauges are far from linear. You will be able to use the voltage off the back of the gauge, but you will need a lookup table to translate it to real values.
At this point, you will need to decide whether you want to transmit the data shown on the gauges or the actual value. The two things may differ!
 

Jerry-Hat-Trick

Joined Aug 31, 2022
449
Fuel, temperature and pressure gauges of that vintage were not especially accurate anyway, usually more of an indication of the value. As with many analogue instruments, the observer becomes familiar with the position of the pointer when readings are normal and looks out for anomalies. So long as you use high resistance values for your potential dividers I doubt you will see much change in the actual position of the pointers. You will probably need to heavily filter/average the digital values.

The rev counter is probably mechanical (eddy current) so I’d look for a way to attach a magnet to the engine which triggers a hall sensor each revolution
 

geekoftheweek

Joined Oct 6, 2013
1,099
Just out of curiosity I did some quick looking around and found the manual for the engine. Pretty simple unit compared to what a modern diesel had become. It doesn't give any details as to the senders themselves, but the advice in #4 is what you will need to do with the stock setup judging from wiring diagrams.

I had at one time created a similar project with an old Ford truck I had. What I found that worked even better was to locate some GM sensors for ECUs and use them instead. I don't have the part numbers off hand, but if you want to give that a try I'll do some poking around. They're fairly well documented online in various places which helped a lot. Napa can get the pigtails also, but it's going to take some digging or the right person to find those numbers. The ECU sensors have a lot more swing in resistance compared to a gauge type sender which makes life a little easier, and you can use a lower voltage and not have to do any converting to make things work. It shouldn't be too hard to find a plug that can be removed for the temperature hopefully. The oil could probably be teed to keep the original gauge in operation.

The RPM gauge is actually ran off the alternator according to the diagram. One trick they used to use for diesels in the old days is to pull an A/C signal from the alternator stator and use that to measure RPM. It probably wouldn't be too hard to filter that into something you can calculate, but another problem with that is the interrupt latency on ESP is horrible and it will be next to impossible to get an accurate time measurement to work with. Along with that you'll have to account for the number of poles in the alternator and the difference in pulley sizes... a lot of math, but it can be done.

As mentioned the ADC on ESP chips isn't very accurate. I haven't worked with Arduinos or Atmel (the heart of Arduino) myself, but I'm quite sure they are capable of measuring everything. You can then use the ESP to gather the data from there and send it out over WiFi or whatever that way. I've done a few projects myself that way with PICs and it works beautifully.
 

WBahn

Joined Mar 31, 2012
29,508
I think they are all 12V It’s a simple setup. Fuel and temp senders have a signal wire and ground. So no voltage changes ( to my knowledge) to/from the senders and gauges.
The Esp32 inputs are 3.3V.


Unfortunately I’m 150miles away from the boat. Therefore, unable to physically try anything until I’m next down there. I know I’ll need to present 3.3V to the ESP32 and can achieve that by using a voltage divider. But I’m not sure how that will affect the resistance presented to the gauge as the divider will be in parallel to the sender resistance.
You will need to measure/test things to know for sure. Using a voltage-follower is almost fool-proof, especially if you aren't in a position to test things ahead of time. But you should be able to use large enough resistors in your voltage dividers so as to not present a significant load on the gauge. This is, of course, assuming that the gauges are responding to the voltage across them. Many due, but not all.
 
Top