3
\$\begingroup\$

Please note that I'm not asking for help in fixing my noise issue. I've already fixed it.
This question is more about describing the issue and using correct terminology.

I have two small 5V servos that are powered by a bench supply about 10cm away.

However, the two servo's signals are carried by a two-conductor speaker wire to an arduino 2.5 meters away. (1 "cable" with 2 conductors, each carrying a servo signal, plus 1 extra separate 2.5m wire for common ground.)

speaker wire

schematic

Here is the scope output of the original signals:

Servo signal noise with no caps

Notice that Signal A is showing a huge spike on Signal B's falling edge.
The result was that the servos were not independant, and directly affecting eachother.

Below is the result after placing 0.1μF ceramic caps between each signal and ground, just before the servos themselves:

Servo signals with filter caps

While signal B still isn't perfect, the servos no longer appear to affect one another.

Circuit with caps:
schematic with caps


What would be the biggest likely cause of the original issue, and how do I properly describe how the capacitors solve it?

I am thinking that the issue was mostly the long distance. However since the signals were affecting eachother, I'm wondering if it could also be related to the two signals being directly next to each other (crosstalk)?

I'm also wondering about how to properly explain the solution using the correct terminology.
The caps create a low-pass filter, right? But it that also "decoupling"? Because the signals seemed "coupled" before I added the caps. I'm not sure if calling them "decoupling capacitors" is proper

\$\endgroup\$
5
  • \$\begingroup\$ You mention the two servo signals, but you don't mention how ground is connected to these four items: Arduino, servo power supply, servo1, servo2. Perhaps servo1 signal is on the copper wire, while servo2 signal is on the tin wire? Not a good plan. \$\endgroup\$
    – glen_geek
    Commented Dec 17, 2016 at 1:20
  • \$\begingroup\$ @glen_geek - Please see the new schematic. Also, can you please elaborate on "Not a good plan?" \$\endgroup\$
    – Bort
    Commented Dec 17, 2016 at 1:43
  • 1
    \$\begingroup\$ The capacitive coupling from copper wire to tin wire is significant, and likely causes the "glitch". A better plan is to run two sets of wire pairs to connect Arduino-to-servo. One wire of the pair is ground, the other signal. Should become almost glitchless, not needing capacitors. But it does require more wire. \$\endgroup\$
    – glen_geek
    Commented Dec 17, 2016 at 1:53
  • \$\begingroup\$ @glen_geek - I see. So the copper/tin coupling is "good" for audio? Also, if I had two pairs of wire (each with a ground), wouldn't that create a large ground loop? I thought those were bad. \$\endgroup\$
    – Bort
    Commented Dec 17, 2016 at 2:01
  • \$\begingroup\$ The crosstalk between servo 1 & 2 is both inductive and capacitive. 4 wire Twisted pairs should isolate them. There may also be ground shift from motor current getting into servo signal ground or even crosstalk. Twisted pair to motor is advised with ferrite CM choke on high current pulses to motor. Its a good thing your bandwidth is low so brute force cap loading lowers the source impedance at servo, thus reducing the C ratio crosstalk from signal wires to shunt cap. \$\endgroup\$
    – D.A.S.
    Commented Dec 17, 2016 at 2:33

2 Answers 2

4
\$\begingroup\$

Here is what I came up with:

We know that long wires have some resistance R, some inductance L, and some capacitance with respect to another conductor, C. But the issue is, how to distribute these?

I decided to take R=1 ohm. L and C would be very small. First I created those three wires from your diagram. Signal A, Signal B and GND wire, respectively. Under steady conditions, I assumed servo signals would be drawing 5mA, so, 1000R internal resistance. (I know, I know, this is just an assumption.)

enter image description here

So first, I noticed a possible LC ringing:

enter image description here

enter image description here

So I put this circuit up (in LTSpice) and ringing was observed.

enter image description here

What I also observed was this:

enter image description here

So I created another circuit to get L coupling effect and hoped that superimposing both results would give me the correct answer.

L coupling effect on signal A recreated:

enter image description here

Which I think kinda explains what you saw. Now, I superimposed both results to get this:

enter image description here

enter image description here

enter image description here

I wasn't able to really re-create your results of course because I think there are much more parameters than what I've used. But I think the last result seems quite like your observations.

Now for your capacitors:

I think you added just the right amount to stop ringing and coupling.

enter image description here

Another type of cap:

enter image description here

Please note that capacitance is as important as the internal resistance (and other characteristics) of the capacitor you added. By adding that capacitor, you have also added a high resistance between signal line A and B.

Oh and I forgot to add: when using an osilloscope, the probes will get different results sometimes because, they are themselves, also transmission lines.

\$\endgroup\$
2
  • \$\begingroup\$ Also worth noting, how you make the measurement make exacerbate these types of issues and cause you to chase ghosts. \$\endgroup\$
    – Matt Young
    Commented Dec 17, 2016 at 17:39
  • \$\begingroup\$ Exactly! My point on osilloscope probes... \$\endgroup\$
    – user132236
    Commented Dec 17, 2016 at 17:44
2
\$\begingroup\$

What caused this noise in these servo signals?

  • The noise in those servo signals could be coming from several sources:

    1. Back emf caused by the servo motor. (Assuming brushed motors)

    2. The PWM signal and back emf in one wire causing electromagnetic interference in the second.

  • For example, when you change the voltage in wire A, the back emf kick from the servo comes back through the wire, but also the change in voltage in wire A induces a change in the magnetic field of wire B, which produces a voltage in wire B.

    Electromagnetic or Magnetic induction is the production of an electromotive force (i.e., voltage) across an electrical conductor due to its dynamic interaction with a magnetic field.

  • In this case, wire B's magnetic field produced a voltage in wire A when you changed the magnetic field of wire B by changing the current you sent through it, during the falling edge of B, as back emf could be coming from your servo when

  • Vice versa appears to be the case also, although it doesn't explain the spike on the rising edge of A, which I assume to be back emf.

How do I properly describe the solution?

  • These capacitors are indeed decoupling or bypass capacitors. The signals are coupled together in the sense that their signals are inducing noise onto the other. They are providing a bypass for any transient voltage spikes in the signal line and sending them straight to ground.
\$\endgroup\$

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.