6
\$\begingroup\$

edit: After using a prototype pcb instead of breadboard, placing all possible electromagnetic sources away and unplugging all the equipment from the same line, my noise dropped 2 orders of magnitude. The main thing that changed the game was pcb and soldering. Now i'm even unable to see any noise on the input side (it's less then 100uV). But of course, probably due to amplifying the input signal 100 times, i have a noise peaking at 300uV at the output of first stage because of the reasons stated below posts.

TL;DR: I have up to 1mV variations even at a basic voltage divider. It's probably not because of multimeter since when I amplify it 100 times, noise is becoming up to 100mV. Is it normal? How can I make it more precise?

I'm just trying to make a basic scale at home for fun.

To study some analog circuits, I decided to make my own instrumentation amplifier with 3 op amps (LM358's, 2 stage, 100x100) to amplify my load sensor values (250nV per gr) x10.000 times to make it readible by a 10 bit ADC.

It seems like it is working but I quickly realized that even at input phase, I had some uV, even mV random noise. After shortening cables, placing decoupling capacitors, changing breadboard etc, it didn't get any better. I tried to read the value of a simple voltage divider and even that thing had the same amount of noise! I don't think it's because of multimeter limitations since when I check the output of first amplifying stage, I've random noise up to 100 millivolts.

What can be the reason of that? Any suggestions?

p.s: the potentiometer thing is just to equalize the initial values of weight sensors. i just put them off to fix my current problem. potentiometers are not existing at the moment.

it just works on theory, as always!

\$\endgroup\$
11
  • \$\begingroup\$ Did you try using a precision op-amp instead of LM358? \$\endgroup\$
    – The Photon
    Apr 12, 2020 at 16:11
  • 1
    \$\begingroup\$ Also, what exact LM358 part number, and what exact part number for your potentiometer did you use? \$\endgroup\$
    – The Photon
    Apr 12, 2020 at 16:12
  • \$\begingroup\$ @ThePhoton no i did not but simply my actual issue is that the prevailing issue exists even with simple resistors, voltage supply and few cables. Even voltage divider value swings up to 1mV. ti.com/lit/ds/symlink/lm358.pdf? \$\endgroup\$
    – glados
    Apr 12, 2020 at 16:20
  • \$\begingroup\$ What's the source of the supply voltage for the divider then? \$\endgroup\$
    – The Photon
    Apr 12, 2020 at 16:21
  • \$\begingroup\$ @ThePhoton 15V 2A Marxlow RXN 1502D (it was a pretty cheap one actually) \$\endgroup\$
    – glados
    Apr 12, 2020 at 16:22

2 Answers 2

17
\$\begingroup\$

There are plenty of possible sources for noise, and all of them are pretty much to be expected. Real circuits have to deal with reality, and reality has a lot of things that simulators often ignore.

Possible noise sources:

  1. The resistors. Passing a current through resistors causes noise to be generated in the resistors. Heck, they generate noise just by being warm.
  2. Power supply regulators aren't perfect, so the voltage can change with time. Since they also include resistors (and other parts that will generate noise,) the output of any voltage regulator will have noise.
  3. Received noise. There are many sources of electromagnetic disturbances. These can be received by the wires (and other components) in your circuit.
  4. Noise generated by your own circuit. If your circuit switches things on and off (or even just has an amplifier) then it will cause variations in the supply voltage. These will then get into your amplifier circuits and cause noise there.
  5. Potentiometers. The wipers on potentiometers "scratch" along the resistance track. Mechanical motion will cause more noise. Even just sitting there, the wiper is under (physical) tension - it presses on the resistance track. That causes noise.

Noise is a fact of life in any electrical circuit.

Proper design can reduce it, but not eliminate it entirely.

  1. You can shield things to reduce noise picked up from the environment. That's shielded cables and metal enclosures for the circuit.
  2. You design so as to reduce noise. High value resistors generate more noise than low values, so you use low value resistors. How the wires (or traces on a printed circuit board) run influences how easily noise from one part of a circuit jumps to another part of the circuit.
  3. You use filters to reduce noise when it gets into your signals.
  4. You use components that them selves generate little noise. A power supply that generates hundreds of millivolts of noise will be a problem for a sensitive circuit. An amplifier that adds a lot of noise to your signal will be more of a problem than an amplifier with a lower noise level. The LM358 is a good(ish) opamp for general use, but probably far too noisy for the task you've set it.

The above lists of sources and cures don't even begin to cover all the possibilities. There are entire books about the subject.

Amplifying nanovolt level signals is not what I'd call a good first project.


Mmmpf.

Missed it the first time around: "changing breadboard."

A breadboard is the last thing I'd use when working with such small signals. Every wiggle of every wire is a noise source - even if the wiggle is too small to see. That'll easily generate millivolt level variations (and more) in your output.

Load cells them selves aren't exactly quiet.

This site has some information specifically about load cells and noise.

If I were building anything with a load cell, I'd probably use an ADC designed for load cell use. That's an example. There are many more out there. The 24 bit ADC takes care of sampling (measuring) the load cell voltage with low noise. It also filters the sampled data to reduce noise. You'll still have to pay attention to the layout and power sources, but at least you don't have to try to design a high gain, low noise instrumentation amplifier.


For an idea of what kind of noise you'll encounter at the signal levels you want to look at, here's few measurements I made with my oscilloscope and some random bits and pieces from my workbench:

Circuit:

schematic

simulate this circuit – Schematic created using CircuitLab

Scope probes shorted:

enter image description here

That's about 40 microvolts peak to peak of noise with the scope probe shorted to its own ground clip. That's a reference for how far down my scope can work.

Noise voltage from a 9 volt battery:

enter image description here

That's a total of 80 microvolts peak to peak from the scope and the battery together.

Battery with a load of 102kohm:

enter image description here

That's around 350 microvolts peak to peak of noise, just by putting a very light load on the battery. I didn't get the bottom cursor set right, so add about 100 microvolts (1 division) to the measured value (264 microvolts) to get the correct value (~350 microvolts.)

Noise at the divider (from ground to the junction of the two resistors:)

enter image description here

That's 430 microvolts peak to peak across just one of the resistors.

Now for the best part - the divider with no battery. Just the resistors:

enter image description here

That's 4 millivolts (!) peak to peak of noise that the probes pluck from the environment when just the two resistors (102kohm) are connected to the probes.

Getting clean signals at such low levels is hard.


Commenter PNDA asked what happens if I change the temperature of the resistors for the last setup (just the resistors connected to the probe.)

Nothing measurable happens. Most of that noise comes from elsewhere.

I twiddled with the trigger on my scope, and found that most of the noise was at about 28kHz. With a proper trigger, I could also measure the RMS value of the voltage. It came out to about 2mV RMS. With the scope probes in parallel to the resistors, there's a load of about 97kohm. Total received power is about 0.041 microwatts.

The source of the 28kHz interference was the powersupply of GSM modem I have plugged into an outlet on my workbench.

With the GSM modem unplugged, the interference dropped to about 120 microvolts RMS into 97kohms. The frequency was also different - 80kHz. That's about 0.000145 microwatts of received power.

More investigation showed that the 80kHz interference comes from the power supply of the monitor I have on the workbench. The monitor is the display for the oscilloscope software I use, so I can't practically unplug it to make the noise go away. I could, however, move the scope probe with the resistors closer to the (back) of the monitor and make the interference stronger. That kind of proves the source.

Ultimately, both sources of interference were capacitively coupling into the electrostatic protection mat on the workbench, and from there capacitively coupled into the resistors and probe. Moving the probe away from the workbench surface would reduce the interference.

Like I said, microvolt level stuff is hard to get clean.

\$\endgroup\$
6
  • \$\begingroup\$ Thank you for showing me all the things that i'm going to try next. I hope i can get to the problems that i'll face at "Amplifying nanovolt level signals" part, if i can fix this one first. \$\endgroup\$
    – glados
    Apr 12, 2020 at 17:51
  • \$\begingroup\$ after edit comment: wow thank you so much! Wish i had 15 reputation to vote your post... Now, with my worst grade equipment, i can clearly understand that a noise of mV is even better than expected. Seems like i've got to use an ADC with better resolution instead of trying to amplify things. Just wondering, is there any book that you can recommend about making circuits more precise and more close to the ideal in real world? \$\endgroup\$
    – glados
    Apr 12, 2020 at 19:11
  • 1
    \$\begingroup\$ For the last one with just the resistors. What happens when you put them in an ice bath or on something very cold, like a peltier tile? Just curious. I currently don't have tools with me to do the tests myself \$\endgroup\$
    – Aloha
    Apr 13, 2020 at 6:15
  • \$\begingroup\$ @PNDA: I've extended my answer to include the source of the surprising amount of noise when just the resistors are connected to the probe. \$\endgroup\$
    – JRE
    Apr 13, 2020 at 12:28
  • 1
    \$\begingroup\$ @PNDA: I didn't try cooling, really. I have this really hot thing there on my workbench. It was easier to heat the resistors than to cool them. \$\endgroup\$
    – JRE
    Apr 13, 2020 at 16:52
2
\$\begingroup\$

[ major review and edit, to correct 100X math error on output random noise; had been 120 microVolts RMS; corrected math says 12 milliVolts RMS]

Lets look at a bit of theory here.

What do we know?

1) system gain of 100 * 100 = 10,000x

2) output noise of ? 1 milliVolt RMS ?

3) system bandwidth (which is the noise bandwidth) of 10,000 Hz;
we use 10,000 Hz beause an opamp with 1MHz Unity Gain Band Width, that produces closd loop gain of 100X, will have 1MHz/100 == 10,000 Hz stage bandwidth

4) we'll assume the Rnoise of the first stage is 10,000 ohms, knowing this value of Rnoise is sqrt(10) more Vnoise than a circuit with 1Kohm Rnoise, which outputs 4 nanoVolts rms/rtHz.

Thus we assume that first stage has internal noise floor of sqrt(10) * 4nanoVolt = 12 nanoVolts/rtHz noise_density

5) in the 10,000Hz bandwidth, assuming flat noise density, the effective internal total noise voltage is noise_density * sqrt(bandwidth) which is

total input referred noise == 12nanovolts/rtHz * sqrt(10,000) = 1,200 nanoVolt

or

1.2 microVolts RMS total input referred broadband noise

Now scale that up by the total (stage1 * stage2)gain, and we have

1.2 uv RMS* 10,000X === 12,000 uv or 12 millivolt RMS.

But if peak-peak, that will increase 4/5/6(sigma)x to 70 milliVolts peakpeak

You may be seeing power-supply noise and/or environmental noise picked up on wiring of breadboard grounds to your scope. AM radio energy is in everything.

============================

How does broadband random thermal (electron) noise change with temperature?

The power is K * T, or Boltzmann Constant * Kelvin Temperature.

We can use one of the variants of Watts Law:

Power = Voltage^2 / Resistance,

and ponder about "matching" for peak energy extraction, and we get

VnoiseRMS = sqrt ( 4 * K * T * R * Bandwidth)

which for T = 290 degree K, R = 1,000 ohms, produces the Vnoise of

4.00 nanoVolts RMS across an open-circuited 1,000 ohm resistor.

\$\endgroup\$
2
  • \$\begingroup\$ Thank you for the answer. Maybe i should check some op-amp noise calculations too. \$\endgroup\$
    – glados
    Apr 12, 2020 at 22:09
  • 2
    \$\begingroup\$ This is a good answer, but it seems to be off by a few orders of magnitude. OP is saying that the output of the 1st stage (100x) is on the order of 100's of mv, which is 1000's of times larger than the calculations here, and suggests that OP might have some more impactful other issue happening \$\endgroup\$
    – BeB00
    Apr 14, 2020 at 0:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.