Opta analog input accuracy

Page 6 of the Opta datasheet states an analog input accuracy of "+/- 5%, repeatability +/- 2%". Is that really correct?
Also, is that stated accuracy a percentage of the full-scale, i.e. +/-5% of 10V, or of the reading?

The very best way of determining the answer to your question is to measure some voltages with the Opta ADC and compare the results with values you get using a professionally calibrated voltmeter.

Is there something wrong with those numbers ?

The documentation: https://docs.arduino.cc/hardware/opta
with datasheet.

The STM32 processor inside is more accurate, but when adding a voltage divider with resistors and a voltage reference, then those are normal numbers for overall accuracy.

I can not find a schematic, but the 5% should be the accuracy of the reading.
However, very close to 0V, there might a offset error as well.
At 10V, the read voltage is accurate to ±5% :arrow_right: 9.5V ... 10.5V
At 1V, the read voltage is accurate to ±5% :arrow_right: 0.95V ... 1.05V
At 0.1V, it is 0.095V ... 0.105V plus some extra inaccuracy they forgot to mention :exclamation:

1 Like

The measurement could change between Opta devices, ambient temperatures, Opta age, and input value.

1 Like

Is there something wrong with those numbers ?

Yes, they are very poor. 1% F.S. error is pretty normal for cheap professional/industrial devices and 0.1% is normal for more expensive ones. Compare this to one of the lowest-cost analog input PLCs that I know, the C0-02DD1-D from Automation Direct, and you'll see the difference in both accuracy and also the details given in the specifications.

I need to use 0-5000 psi pressure transducers that outputs 0.5 to 4.5V, and let's say the pressure is 1000 psi, or 1000/5000 * (4.5-0.5) + 0.5 = 1.3 V. With a 5% F.S. error, that's 0.05 * 10V = 0.5V, which means a possible reading of 1.3 - 0.5 = 0.8 to 1.3 + 0.5 = 1.8V, which works out to 375 to 1625 psi! (Hmmm... is that hydraulic charge pressure or has load sense kicked in?) It can't be that bad, right? So maybe the datasheet writer forgot a decimal place. Or maybe it means 5% of the current reading, which might seem good until the input is above 2V, at which point the error is progressively worse than an input with 1% F.S. accuracy.

And thanks for measuring, it's pretty cool to see real numbers. But each device or manufacturing batch could have different measurements. Ambient temperature and the age of the electronics will also change things.

1 Like

Of course it could, and will. It is not calibrated.

If you want accurate measurements you need to calibrate the ADC using a professionally calibrated reference.

5% of 10V is 0.5V
The accuracy of 5% does not mean that if you measure 0.1V, that the accuracy is 0.5V.

If you measure 0.1V, then the 0.1V is 5% inaccurate.
I tried to explain that in my previous post.

The 5% tells me that most likely 1% resistors were used and that there is no accurate voltage reference.

On the other hand, what is the overall inaccuracy of your pressure transducer ? Those are often in the 5% range as well.

Which PLCs are known to survive 30 years in a harsh environment ? That's the one you need.

Hopeful we can hear from Arduino people so we don't have to speculate.
There's also a lot more to an analog input than resistor dividers, at least I certainly hope so for the Opta. Things like input protection networks, noise filtering, buffering, and temperature compensation circuitry are a few of the things one usually puts between the input terminal screw and the ADC input.
We usually use something like the Dwyer 626-series pressure transducers with a stated nominal accuracy of 0.25% F.S., while the low-cost 626 series are good to 1%.

1 Like

Thank you for making that clear.
That is so much better than the average sensors for automotive and home appliances.
I guess that I'm living too long in the Arduino world.

Did you think that those numbers could be wrong ? For the Arduino world, those are normal numbers.

Sadly, I still can not find a schematic. I don't know what the input circuit is.
It is not very hard to make a rugged analog input (by using the 1.1V reference and a large value resistor for R1 of a voltage divider). Even an Arduino Uno with only two resistors for a voltage divider it can be protected for spikes of 1000V and noise filtering in software is almost as good as electronic noise filtering.

@Koepel , I finally had a chance to test the input accuracy on one of the Opta's I have, and I can confirm that the results are about the same as yours. The reading was usually about 4 to 6% lower than the input voltage when measured right at the input terminal for a range of voltages. So the 5% accuracy spec seems optimistic. On top of that, the current draw through the analog input was extremely high, calculating out to an extremely low input impedance of only 9k-ohms. Many sensors have a minimum load of 10k, making the analog inputs on the Opta unusable for anything other than the most coarse measurements.

1 Like

Thank you for testing it.
I wonder what is going on. Do all PCLs have isolated GND inputs ? Then there is a optocoupler and that would explain the 9kΩ and the 6%. If not, then those numbers indicate a design mistake. A common mistake is to use a leaking zener diode.

The input impedance is in the "Datasheet": "Input impedance 8.9 kΩ"

I must be doing something wrong, because I can still not find a schematic.
This is the closest that I can find to see inside:

The STM32 is in the middle, the buttons on top, and at the bottom is the input circuit.

1 Like

It had seemed to me that the datasheet-listed 8.9k input impedance was for digital only, since it's listed in the general input section and with the 1.12mA current only mentioned in the digital section. I wasn't sure what I would measure with the analog inputs as competing devices can switch in a pull-up or pull-down resistor or to an optical isolation circuit when in digital mode, but have a higher-impedance path for analog with optical isolation between the ADC and micro. 100k or higher is more common.

It's fun, but we shouldn't have to go spelunking like this. I hope the Arduino folks have a look at other industrial devices and update their design and datasheets accordingly.

1 Like