Reference resistance to provide analog voltage reference

I would like to build a liquid helium level sensor and I ask your kind help with my concept. I have a floating resistive sensor on which I have to make a 4-point resistance measurement with a 130-mA current source. The idea is that I use a cheap (not very accurate, not very stable) current source and a precision reference resistance. My idea I would like to verify is that I feed the voltage of the reference resistance to the voltage reference on Arduino’s ADC. I figure that this way I can measure the sensor resistance with respect to the reference resistance even if the current drifts. Will it work?

I attach a sketch.

It doesn't feel right. Adding some inaccuracy into a circuit, and trying to fix that with a precision resistor and (precision) OpAmp, that is the other way around.

Why do you need 130mA ? The 130mA causes heat of 2Watt in the liquid Helium. That can't be good. If only the resistance needs to be measured, then 1mA will also work.

The capacitor at Vref_out might leak, that might lower the reference voltage.

What kind of diode is that at Vout ? A Schottky diode or zener diode ? Most Schottky diodes leak and a zener diode leaks a lot, that will influence the voltage divider with 10k and 5k9. Could you set the gain to 0.5 and have the output in the range of 0...5V without voltage divider ?

The 10 ohm precision resistor is measured with a OpAmp and the GND is used as GND. I see trouble with the GND, since the 10 ohm is a low value. Better use a instrumentation amplifier as well and use a 4-point resistance measurement (in the same way as R2 is measured).

However, it will work. The Vref_out could be connected to an analog input, but also to AREF. When AREF is used, it automatically sets the reference according to the inaccurate current source. Will it be accurate ? Not very accurate, in my opinion. Every component adds more inaccuracy. Don't expect to measure with 1% accuracy.

I am surprised you use a sensor with significant joule heating - surely liquid helium boils copiously if you put even a few mW into it (v low latent heat).

Why 24V supply?

Why not 5V supply and a resistive divider - gives a ratiometric output which is much easier to deal with.

Could be a job for the HX711. Inbuild voltage reference, instrumentation amp, and A/D. Breakout boards are cheap, and run on 5volt. Two 5k6 resistors, one between +E and R1 and one between R3 and -E would produce 0-~40mV across R2. Power/heat in the sensor 4-20uW. Leo..

Thanks for the replies. I am busy today but let me comment briefly on the principle of the measurement. There is a superconducting wire vertically in the storage tank I measure the level of. When the wire is warm (not superconducting) the 4-point resistance is 100 ohms (it is trimmed that way). If part of the wire is in the liquid, that part becomes superconducting with zero resistance. Therefore the resistance I measure decreases linearly with the liquid level. If the tank is full, the resistance is zero.

There is, however, one more tricky point. Above the liquid, there is cold gas and the wire is also superconducting above the liquid level. Therefore I need a large current to heat the wire. With heating, the wire above the liquid level goes resistive and only the part in the liquid stays superconducting. This is the standard method. The manufacturer specifies 130 mA. There is indeed a strong dissipation therefore the current is turned on only for a couple of seconds.

The total voltage drop on the wire can be close to 20 V, this is why I thought to use 24 V power supply. I come back to the other points later. Thanks again.

So you basically need a switched high-side current source. And a 1.3volt to 14.3volt voltmeter. With a second 1.3volt voltmeter as current reference. I don't see the need for opamps with that voltage/impedance available. Just connect them with a voltage divider directly to the Arduino. You should be able to get a resolution of ~1:1000 with a bit of averaging. The tricky part will be a stable switched high-side current source. Leo..

kgyd, that is a 'cool' project. After thinking about it, allowing inaccuracy into the circuit with the inaccurate current source is bad, very bad. Both for the electronics circuit and the fysical setup. A change in the current will change the generated heat, that will change the resistance value. Use an accurate current source as the manufacturer of the sensor specifies. Your idea has too many consequences and will get you into trouble.

What is a cheap current source ? An adapter for a led lamp is not good, anything else should be accurate.


"What kind of diode is that at Vout ?"

I meant a Zener diode. I need to protect the Arduino input from overvoltage. How can I do that? I will look at the leakage currents.

"The capacitor at Vref_out might leak"

But the capacitor is driven by a virtually zero output impedance voltage source. I thougt I need that capacitor for noise filtering. I still think but I am not sure of the right way. Probably the R_ref = 10 ohm is also much smaller than the shunt resistance of the capacitor, i.e. I don't need the opamp there.

Still Koepel:

"I see trouble with the GND"

I think if I put a thick enough wire to the bottom of R_ref to return the current to the power supply, then I will have no problem with ground loops. I am measuring 1 volt on 10 ohm, not 1 microvolt on 1 megaohm.

"Could you set the gain to 0.5 and have the output in the range of 0...5V without voltage divider ?"

Good point. When trying to find an instr. amp, it was frustrating to see that all I could find had a minimum gain of 1.


"I don't see the need for opamps with that voltage/impedance available. Just connect them with a voltage divider directly to the Arduino."

This would mean measuring 3 voltages. You take the difference of two digitally and divide the difference by the third one. Uncertainties add up. With an instrumentation amp, it reduces to two measurements: the voltage drop on the sensor and the voltage on the reference resistor. My idea was to reduce this number to one: measure the voltage drop on the sample referenced to the voltage drop on R_ref.

"What is a cheap current source ?"

I thought of using an LM317 current source. See it here, for example. It has a bandgap reference and substantial temperature drift. I plan to switch it on and off using a relay. Since I only turn on the current for seconds in order to minimize helium boil-off, it will not warm up properly.

This raises one more question: can I connect this circuit directly to the output of an unregulated switching power supply?

If you drop the value of the current sense resistor to 7.5ohm (2x15 parallel), then you can measure that voltage directly, with high resolution, if you enable Arduino’s internal ~1.1volt bandgap Aref. Use 10k/100n for noise/safety.
Wise to also drop the insrumentation opamp output to ~1.1volt with a divider.
Arduino’s default Aref (5volt) is too unstable for precise measurements.

A voltage divider also protects the analogue input by reducing pin clamping diode current.
If you keep current <=1mA, then a zener diode (bad) is not needed. 12k:1k could work.

An LM317 as current source is a good idea.
Maybe an old laptop supply (19volt) could be used for the current source.

Enlightening comments, thank you, Leo! I consider AD8226 as amplifier.