Thermistor Signal Translation

I am working on creating a translator for an automotive intake air temperature sensor using an Uno. The factory sensor is not readily available in the US (but I have one available for testing), and I am assisting in the quest to adapt a readily available sensor.

The sensor is simply a thermister, meaning that resistance across the 2 leads changes as the temperature of the air changes. The vehicle's computer sends a 5v signal to one sensor lead, and the resistance of the sensor results in a lower voltage coming out the other lead and being sent back to the computer. As the resistance changes with temperature, the voltage being returned to the computer also varies, telling the computer exactly what temperature the air is.

There are two options that I am considering to go about sending the simulated signal back to the computer:

  1. Use a Digipot of the correct range to vary resistance, simulating the ohmage that the computer expects to see from the factory sensor at any given temp.

  2. Using an external DAC, send a true analog voltage to the computer simulating the return voltage signal that the computer expects to see from the factory sensor at any given temp.

Which of these two options is most preferable and why?

Why not replace the thermistor with a thermistor.
Thermistor value is normally measured at 25C.
Leo..

At first blush both solutions seem plausible. Have you considered the range of resistance variation you need to 'simulate'? A wide range of temperatures can mean a wide range of resistance, like a couple of orders of magnitude worth. But this may not be that given it is climate control.

The programmable resistor has the advantage that you could have two in series and cover a wider range and / or greater resolution of the simulated thermistor. It also means that you are testing the whole interface, as in the power supply to the thermistor and the input impedance of the sensing side (usually has a load resistor to match the thermistor and the operating temperature range). This is also the down side though, it means the test current runs through your circuit and therefore the solution is possibly susceptible to damage from faulty equipment.

The DAC solution can overcome that problem with a properly protected output and could be arranged to essentially do the same thing if you used a multiplying DAC (external reference input with a broad operating range).

All up, I'd probably put more time into the DAC solution because it can be made to test the whole of the interface in an authentic way and can be protected from faults in the equipment under test. The programmable resistor option would likely be much simpler though.

That's my 2c worth. Please post back which option you settle on and how it goes.

PE.

Do you know the specs of the current thermistor? Then just get an equal one.

Look for match in nominal resistance and b-coefficient, and you should be good to go.

Here is how the car's engine control handles (ECU) the intake temp sensor.

1). The intake air sensor (MAT) is a thermistor. You have the correct. The ECU actually monitors a voltage produced by a flowing current through the thermistor. The ECU will source the thermistor with an excitation voltage that is generally 5 volts. The ECU will have a current limiting resistor built into the circuit.

That being said, I would not use a DAC to try and drive a voltage into the ECU. Use a potentiometer.

The resistance range during normal operation will be from about a 100 ohms to several k ohms. It will NOT be linear. I would use a 1k pot to test the low end and a 10k pot to test the upper end.

Next, Since ground loop problems in an automotive environment are a real problem, all sensor inputs are NOT grounded. You will find that one wire will have the excitation voltage on it and the other will have no voltage on it. Any input you put on the ECU input must be an isolated signal.

Now for testing, If you have access to the car involved, testing could be easy. Generally the intake air temperature is also used for the dash outside air temp. Just set the value of the resistance on one of the pots to a level and attach the pot to the ECU input. Monitor the Dash temperature reading. Change the resistance on the pot and repeat the process. I would start out around a 100 ohms and work my way up. I would expect the high end to be in the neighborhood of about 5k ohms.

If the dash temperature reading does not respond to resistance changes, things get a little bit more difficult. If you have a code reader some cars make the values of all of the sensors available to the code reader. If so, use the code reader to read the value of the intake air temp sensor. It will be labeled as the MAT sensor. If that doesn't work, you will have to do it the hard way.

Take the sensor you have (hoping that is a good one) and expose it to as many different temperature as you can and measure the resistance of the sensor. The problem here is that MAT sensors by nature respond very quickly to temperature changes. So you will have to measure the temperature of the environment and the sensor resistance simultaneously. Here is another problem. You CANNOT get the sensor wet so a water bath won't work. I did my testing using my refrigerator, my freezer and ambient temperature. To get higher temperatures you will need to get creative. I suspended my sensor and reference thermocouple in a covered bottle (not touching the sides of the bottle) and put the bottle in a pot filled with water on my stove. Doing this I could vary the temperature, wait for a stable number and make my readings. It took a while but I was able to go from ambient temperature to about 140 degrees F and get several points. Repeat this several times to you get a good set of repeatable numbers.

Now since the ECU input is a resistance value and it MUST NOT be grounded, generating a signal is a bit involved. They make devises that use an LED/photo transistor pair on a small package. You could probably get them from digikey. The idea here is that resistance of the photo transistor varies inversely proportionally to the current flow through the LED. These devises are optically isolated and work very well. You may have to incorporate an FET transistor to get the range of resistance you need without the PN voltage drop issue but this will work.

Now to generate the curve you need to generate the curve using an algorithm in the Arduino. I would use a slope intercept technique using 5 of more points.

This will be a significant amount of trouble and expense for a 10 dollar item. Have you tried Summit Racing or JEGs? They have a lot of this kind of stuff.

Have fun

KenK:
The resistance range during normal operation will be from about a 100 ohms to several k ohms. It will NOT be linear. I would use a 1k pot to test the low end and a 10k pot to test the upper end.

This would be good numbers for a 1k nominal NTC. For a 10k or 100k nominal NTC you have to multiply all those by 10 resp. 100.

I think the penny has finally dropped and maybe now I understand what you are trying to do, so to clarify this for me, can I ask:

  1. are you making a piece of test gear, a one-off translation / adapter for permanent installation or planning this as a saleable product?
  2. If it is not test gear, what is the impediment to simply sourcing a thermistor locally?
    If you think I may still be on the wrong track, could you describe how you intend this thing to be used, installed or?

confused PE.