Geekzone: technology news, blogs, forums
Guest
Welcome Guest.
You haven't logged in yet. If you don't have an account you can register now.


frankv

5705 posts

Uber Geek
+1 received by user: 3666

Lifetime subscriber

#275960 18-Sep-2020 16:13
Send private message

I'm thinking about a bit of a project to replace some car engine dials with a nice Arduino-based ePaper display. Inputs would be things like oil and water temperature, oil and fuel pressure. Has anyone here done anything like this?

 

I assume the outputs from the senders are voltages, and that it's approximately a linear relationship between voltage and temperature/pressure? What kinds of voltages are we talking about? Presumably there's some standards somewhere so that an oil pressure gauge from X will work with a sender from Y?

 

 


Create new topic
EcosseTech
24 posts

Geek
+1 received by user: 8


  #2567733 18-Sep-2020 16:28
Send private message

What vehicle do you have?
I know on the BMW's from the early 00's and late 90's - they have all the info online and it is easy to program an arduino with the given spec!
Audi's are similar and same with the VW.. If it is post MY 2010 I would assume that this would be limited to interfacing over OBD for most manufactures..

Cheers




Talkiet
4819 posts

Uber Geek
+1 received by user: 3934

Trusted

  #2567738 18-Sep-2020 16:31
Send private message

Depends on age. I have built a datalogger/digital dash/laptimer/tyre temp system from scratch (for my racecar) and the best way to get the values you need is across CANbus if it's available.

 

I also do have some analog inputs (things like oil temp and brake switch at the moment) but on modern cars they are also likely to be in the CANbus stream.

 

Cheers - N





Please note all comments are from my own brain and don't necessarily represent the position or opinions of my employer, previous employers, colleagues, friends or pets.


wellygary
8810 posts

Uber Geek
+1 received by user: 5287


  #2567740 18-Sep-2020 16:39
Send private message

I can't see any issues if you have the new displays separate,  but won't WOF inspectors get snitty if you are removing and replacing things inside the actual sealed instrument cluster??...

 

(concern about accurate speedo readings etc??)

 

 




Fred99
13684 posts

Uber Geek
+1 received by user: 10018


  #2567750 18-Sep-2020 17:19
Send private message

wellygary:

 

I can't see any issues if you have the new displays separate,  but won't WOF inspectors get snitty if you are removing and replacing things inside the actual sealed instrument cluster??...

 

(concern about accurate speedo readings etc??)

 

 

 

 

They shouldn't do, so long as the speedo works, and safety/emissions gear isn't tampered with (ie airbag and ABS self-check etc).

 

We've got an old (Nb) MX5.  Has an oil "pressure" gauge in the middle of the the cluster.  Except although a mechanical gauge, they're wired up to an on/off pressure sensor - so it's probably less useful that the usual bright orange warning light - which is hard to ignore (I hope). If there's oil pressure, it goes to about 2 o'clock position, if it doesn't then there's a problem. It can be turned into a "proper" gauge by putting a pressure sensor rather than a pressure switch, then throwing a few parts / mods to make it work.  I thought about doing it, then thought again. Life's too short, and the benefit minimal - plus would be a source of potential worry - I'd look at it and think "the needle is sitting a bit low - the engine's about to grenade on me".

 

OEM pressure sensors are expensive.  The one in an old Nissan Safari diesel I used as a tow vehicle started crapping out, was north of $200 for a replacement and no aftermarket part.  So I pulled it out, drilled a 3mm hole in the side (holding it upside down and using a shop vac to try and minimise swarf going in), blew some CRC inside, plugged the hole, and it worked perfectly for the next 15 years.


Technofreak
6656 posts

Uber Geek
+1 received by user: 3474

Trusted

  #2567834 18-Sep-2020 19:56
Send private message

frankv:

 

I'm thinking about a bit of a project to replace some car engine dials with a nice Arduino-based ePaper display. Inputs would be things like oil and water temperature, oil and fuel pressure. Has anyone here done anything like this?

 

I assume the outputs from the senders are voltages, and that it's approximately a linear relationship between voltage and temperature/pressure? What kinds of voltages are we talking about? Presumably there's some standards somewhere so that an oil pressure gauge from X will work with a sender from Y?

 

 

 

 

I think most senders (well the older ones at least) are variable resistors, like a temperature dependent resistor or a diaphragm operated wiper arm on a potentiometer.

 

So while they don't produce voltage as such they do vary the voltage seen by the gauge or depending on how the circuit is wired, vary the current flow though the gauge. What I'm saying some gauges may be wired as ammeters (measure current flow) and some as voltmeters. One method of measurement on your fancy display may not work for all parameters you want to measure.

 

I know some gauges are not linear because the sender output isn't linear.

 

Sounds like a neat project though.

 

 

 

Edit: Some oil pressure gauges measure the oil pressure directly with a tube running to a fitting on the oil gallery. The diaphragm inside the gauge moves the dial.





Sony Xperia XA2 running Sailfish OS. https://sailfishos.org The true independent open source mobile OS 
Samsung Galaxy Tab S6
Dell Inspiron 14z i5


gumboot19
52 posts

Master Geek
+1 received by user: 10


  #2567843 18-Sep-2020 20:38
Send private message

Standard VDO German pressure sender is 10-180ohm. 10 being zero and 180 being full scale. the Gauge uses a pull-up resistor to convert/measure voltage.

 

Standard American pressure sender is 240-33ohm. 240 being zero.

 

I will look up temp sender resistances in my notes

 

Vetus use 40-300ohm.

 

Canbus is the way things are going. or 4-20milliamp.

 

Senders are not too expensive, except for some of the Nissan ones, which are a metric thread (10mm compared to 1/8NPT).

 

There are also dual station senders, with half of the nominal resistance!


 
 
 

Want to support Geekzone and browse the site without the ads? Subscribe to Geekzone now (monthly, annual and lifetime options).
frankv

5705 posts

Uber Geek
+1 received by user: 3666

Lifetime subscriber

  #2568994 21-Sep-2020 09:52
Send private message

Thanks for the replies. The engine is a 1997 Subaru EJ20 so I doubt it has CANbus. Certainly the existing sender/gauge wiring is all discrete. Not a road car, so no WoF issues. :)

 

It makes sense that the senders are all resistive. I'll check what brand the gauges are and check the senders with my multimeter.

 

Converting to voltage is easy: a simple voltage divider circuit. Assuming the sender is 10-180 ohms, if I use a 180 ohm pullup resistor to 5V, I'll get .26 - 2.5V swing, for 114 range from an 8-bit A/D converter, which is probably better than a dial. :)

 

But that would mean currents up to 26mA for 128mW of heat (half or less in the sender). I could still have a good range of values and reduce the current to about 2mA by using an Arduino Zero (VCC = 3.3V, 12-bit ADC), and a 1K4 or more pullup resistor. But do I need to do any of these things? Any idea what current these senders are capable of? Presumably the senders are fairly heat-immune since they're in contact with hot oil and so on. Am I worrying about irrelevant stuff?

 

 


elpenguino
3576 posts

Uber Geek
+1 received by user: 2938


  #2569111 21-Sep-2020 11:41
Send private message

That's right, you'll want to restrict current in your sensor, and the sensor current will vary from cold to hot.

 

When choosing values for your voltage divider bear in mind your sensor voltage (input to the ADC) should not exceed the Vref of your ADC.

 

No, the relationship of temperature to output resistance won't be linear. OTOH you're not measuring down to the degree (or shouldn't be aiming to, anyway). Correcting for anything beyond slope and offset, like a poloynomial, will get quite complex and possibly difficult for the Arduino to compute as well as you to write. ADC's have their own non-linearities and errors so 12 bit theoretical will give you around 10 bit real world. Which should be enough resolution.

 

Another option is to find a sensor that has CAN bus or other digital output and then someone else has done all the ADC work for you.





Most of the posters in this thread are just like chimpanzees on MDMA, full of feelings of bonhomie, joy, and optimism. Fred99 8/4/21


frankv

5705 posts

Uber Geek
+1 received by user: 3666

Lifetime subscriber

  #2571744 22-Sep-2020 08:55
Send private message

elpenguino:

 

That's right, you'll want to restrict current in your sensor, and the sensor current will vary from cold to hot.

 

 

Assuming the original dial is just a voltmeter with exactly the same kind of voltage divider, I guess I can just measure the resistance between the input and 12V connectors on the dial to find the max current that the dial allows and then go with Vref/14.4 of that for the pullup resistor in my voltage divider.

 

And if I want to have both the dial and my Arduino connected in parallel for comparison/debugging, I'd do a Vref/14.4 voltage divider between the sender output (which would be approximately in the range 0-14.4V due to the dial's pullup resistor to 12V) and 0V. This voltage divider would be done with large resistance values (9.4K & 5k resistors) so minimal current. i.e.

 

sender/dial ------ 9.4K ---+---- Arduino ADC

 

                                      |

 

                                     5K

 

                                      |

 

                                    GND

 

 

 

 


Create new topic








Geekzone Live »

Try automatic live updates from Geekzone directly in your browser, without refreshing the page, with Geekzone Live now.



Are you subscribed to our RSS feed? You can download the latest headlines and summaries from our stories directly to your computer or smartphone by using a feed reader.