ACS712 sparkfun breakout questions - too unstable to be useful?

Having played around with this product for a weekend, I am left wondering how it can really be useful for measuring low currents, when no matter what I do, the output is rather unstable.

I have set the vref so that around 3 volts output is 0 Amps - when no current is flowing through the sensor.

I have set the gain to the lowest possible setting - 4.7.

But, the 3 volt output varies between 2.95 and 3.20 volts when no current is flowing through the sensor.

The output voltage does increase as expected when measuring between 0.1 and 0.5 amps, with gain at 4.7, there is a reasonably small voltage increase.

But, the problem is that the baseline 3V output is just too unstable.

So first question is:

If this breakout board is designed for measuring low currents, how do people actually achieve this with such unstable output?

My second question is:

I think this breakout board with configurable filter capacitor will probably work better.

Am I correct in thinking that a larger capacitor value will reduce the bandwidth, and make the output look more stable?

Is it also correct to say that reducing filter bandwidth gives more accurate outputs, when measuring larger current?

If the above is correct, my third question is:

Can anyone point me to some docs that explain what filters and bandwidth are, in the context of... perhaps analog electronics?

I know what a filter is, and I know what bandwidth is... I just haven't grasped the concept of why reducing filter bandwidth is better when measuring larger currents.

Thanks in advance.

Andrew.

i find it funny, that the high current traces between IPx and the ACS have a higher resistance (2*>0.7mR if it is 35um copper) than the ACS high current path (1.2mR)... :slight_smile:

did u have a look at the datasheet:
http://www.allegromicro.com/en/Products/Part_Numbers/0712/0712.pdf ?
it explains where some sorts of errors come from...

the op amp makes the output stronger... although there already is an op amp inside the ACS712 (it outputs Vcc/2 for 0A)...
but they both dont really reduce errors...

i observed that the 0A value drifts by some mV... it seems to b the normal error of the device...

when u measure 0A:
what do u connect to the IP pins? do u short them? i dont know if its good to leave the IP pins floating...

Yep, I read the datasheet, and after reading it again, I have a better understanding of the instability :wink:

But still, I feel unsatisfied with the 0A drift... Well, I'll try the green PCB version with much more limited bandwidth, to see if its stable enough to measure to 0.1A accuracy.

I had the IP connected to an inverter (switched off). Good point - I should short them and re-test just to be sure.

Andrew.

i would connect one of them (IP+) to ground...

u should take into account that Vcc changes cause a 0A drift, because 0A is translated to Vcc/2... :slight_smile:

Bear in mind this is both a hall-effect device (so will pick up stray magnetic fields from transformers), and has analog amplification (so needs a good low-noise supply rail - not a SMPS). If you are powering it from USB 5V that would immediately suggest a source of noise.

One glaring problem is the trim pot - these tiny little potentiometers are not very stable or reliable, and one is being used to generate a reference voltage which is then amplified. For something like this the reference voltage should be set with a ten-turn cermet potentiometer or similar, not a ultra-miniature trimmer. For the gain setting a cheap 10% trimmer isn't too bad a design decision, but for a millivolt-resolution offset its simply a 'bad circuit' as Horowitz and Hill would say. Not impressed.

Unfortunately Sparkfun haven't broken out the direct output from the 712 so you can't easily see if the trimmer is really responsible for the noise that you are seeing.

Sparkfun have also failed to read the datasheet of the 712 which says the minimum load resistance should be 4k7 - the breakout imposes a 1k load at maximum gain (although its OK at low gain).

The whole breakout board is a real compromise though since hall-effect current sensing is not the best way to measure small currents, its great for large currents since a shunt-resistor is not needed, but for small currents noise and magnetic pickup will become problems.

You can try adding an RC low-pass filter to the output if you don't want the existing bandwidth as that might help, but 34Hz is already a pretty low bandwidth.

[ BTW connecting IP+/- to ground or not or shorting them is a complete red herring ]

Thanks for your reply.

I'm powering it with a 9V wallwart, which is an SMPS, so although much better than USB, I will look for a linear supply for a start.

The little trim pots really bug me too. The effective range is only a few degrees of movement - very tricky to set. And I can imagine they could also be a source of noise.

I'll play with this a little longer, then might replace it with a 20 watt wire wound 0.2 ohm resistor I managed to find at a second hand shop. This isn't ideal either - its huge, rated too low for what I want, and 0.2 is a little on the high side for a shunt.

5 amps is the upper limit of what I want to measure. Perhaps a new shunt resistor from digikey, etc, will do the job.

I did try the AttoPilot current sensor also... But after many hours I decided it was broken. Absolutely no sensor output from the IC pin. I saw a few posts with people commenting they believed they over-heated it and killed the output. But I digress...

Thanks for the feedback.

Andrew.

Hello,
I tried the ASS712 sparkfun breakout.
I see withe arduino the output is not stable.
I take my oscilloscope and observed the output: it's very noisy !
I put the scope a the output of the first stage, and strangely it's appear to be not noisy.
I see the noise is fast in regard with the integrator capacity C1 (0,1 uF).

I decide to put a small capacity in parallel with C1.
I try with 0,1 uF and the result is miraculous! no noisy on the scope and the value is stable with the arduino.

I think the original capacity is wrong.
I am not able to measure the effect with the bandwidth because I have to measure DC current.

Best regards

Thierry

Integrating to get a smoother output is fine, as long as you want to measure a low-frequency current.