By Mark Davis
I recently had a problem with a servo randomly twitching, and was able to solve it, so wanted to share what I learned. It is a large plane and there are 10 feet of wire between the Rx (Spectrum 12310T) and the servo (Hitec 7950TH “ultra torque”). Because of this, I ran 17 gauge power/ground, and used MR30 connectors (instead of 20gauge heavy duty extensions with normal servo connectors). But even with this, the servo exhibited erroneous twitches, especially when moving.
I found the problem could be remedied by placing (near the servo) a capacitor across power & ground, or a signal booster, or both. This problem depends on the servo also, and for example the D625MW did not exhibit the same issue, and needed no remedy. It appears that this is because Hitec 7950TH (“ultra torque”) draws high current for brief snippets of time, and thus causes large power transients. These will appear also on the ground, and therefore the PWM signal can be affected. A power bypass cap by itself fixed the problem. A signal booster by itself was helpful but not entirely reliable (Spektrum and Hitec both make them). I believe the best solution is to use both a supply capacitor and a signal booster, based on the oscilloscope plots below.
First, some background information and definition.
When ground currents are present, we have to designate a specific point as “0 volts”. In text below I treat the ground at the receiver as the definition of 0v. The oscilloscope probe was connected with its ground near the servo, 10ft away. So it is not necessarily at 0v, by this definition.
The oscilloscope horizontal scale (time / division) appears in the upper left of the screen next to the letter “H”. The vertical scale for each channel (volts/division) is shown in the lower left of the screen.
When a servo was connected, it was connected without load or with light load (sitting upright on a table, or in some cases on its side, so the arm was just lifting the weight of the servo).
The capacitors I had on hand were 8200uF 10v, and 4700uF 16v. Since my system runs on 2S LiPo, this is sufficient voltage.
The signal boosters I tried were:
- Spektrum Signal Line Voltage Booster SCMCP
- Hitec Signal booster HRC58496
I have grouped scope traces into 5 sections:
|Section||Servo||Capacitor Across power/ground||Signal Booster included|
- NO CAP, NO BOOSTER : SERVO SHOWS ERRONEOUS MOVEMENTS.
First see picture 1B below. I put a scope on the signal wire. You can see the servo is approximately centered here, with a 1.5ms positive PWM pulse. But you can also see frequent artifacts. I didn’t immediately notice a very regular period, but they seemed to occur every 4-10ms. Unfortunately I didn’t capture the power line here, but from later plots I believe it would show exactly the same artifact at double the magnitude (I’ll explain why later).
Now consider the structure of one such glitch. It appears the servo decides to draw a large amount of current for about 50us – 200us, depending on which glitch we are looking at. This pulls down the power line voltage, and pulls up the probe ground (servo ground). The signal is looking into a high-impedance FET, and so draws insignificant current, and so should have insignificant voltage drop even over 10ft of wire. This explains why we see the oscilloscope voltage go negative at the start of the glitch; the signal wire remains at 0v but the probe ground “bounces” up due to the current being dumped into it. The voltage appears to be asymptotically approaching a steady state value (with the expected exponential shape) by the end of the 200us. This steady state should be the current of the servo times the wire path resistance. Then when the current draw stops, the inductance of the wire keeps pushing current for a small transient. Thus, the opposite effect will occur; The voltage of the local ground will dip below 0v and so the signal wire sitting at 0v appears to go positive on the oscilloscope. Note that this positive glitch can be quite high. This plot has 1v/division, so the first glitch captured here is around 1.6v, which I’m guessing is quite close to the detection threshold for a PWM pulse.
Picture 1B: No capacitor, no booster
Note that fatter wires (I was using 17AWG) will have lower resistance, but higher inductance, which likely makes this positive glitch higher.
Now consider for a moment the depth of the glitch. It appears to be approaching about -300mv. I did not probe the resistance of the wires before I put the model together, so I cannot say exactly what it is. But my best guess looking at gauge charts and connector specs was that the path resistance is about 100mohm. If that is correct, then it would take 3Amps to cause a 300mv drop! Well, maybe my estimate is off by a factor of two. But the point remains, this servo is drawing a surprisingly large current during these brief intervals – in the Amp range, not milliamps.
OK, but this still picture only shows what is happening when nothing is happening (i.e., the servo arm is not twitching). The video 1C shows what happens when I move the servo back and forth. The servo was laying on top of a wing, and the “popping” you can hear is the arm whacking the monokote every time the arm twitches. Clearly this is not a situation you want.
Video 1C: No capacitor, no booster. Servo twitches often.
2. WITH CAP, WITHOUT BOOSTER: SERVO MOVES WITHOUT ERROR, BUT SOME ARTIFACTS VISIBLE ON SIGNAL.
At this point, I also put a scope probe on the power line at the servo. This trace is the yellow line on the oscilloscope in all subsequent pictures.
In picture 2A, I added a 8200uF cap between the power and ground at the servo. The servo twitching stopped. We can see that there are still the same voltage glitches visible in the first plot, but of course the magnitude is much reduced. This reduction was enough to cause the servo to behave correctly. On the power line and signal line, you can see about the same size of glitch, but the power line is at 2v/division whereas the signal line is at 1v/division. So we can say that the glitch on the power line is about 2x bigger than the glitch on the signal line. This makes sense, because the signal line is only seeing the glitch on the ground. The probe on the power lines at the servo is seeing the power reduced by IR drop, but also the probe ground raised by a similar amount (as the current also has to make the return trip to the receiver battery). So it shows 2x the artifact, exactly as we would expect.
Picture 2A: With capacitor, without booster.
I also tried this with the 4700uF cap, with similar result. The glitches are of course a little larger with less capacitance, but not much different, and the servo behaved well.
Just to confirm, I also tried placing the capacitor over on the receiver side. As expected, in this configuration the capacitor did approximately nothing. The result was the same as no capacitor at all. Of course there are situations in which putting a bypass capacitor near the receiver makes sense. But dealing with a “long wire problem” is not that situation. It has to be located at the end of the long wire.
The video 2B shows servo movement. The power artifacts are visible, and affect the PWM signal, but it was not severe enough to cause incorrect servo movement.
Video 2B : With capacitor, without signal booster. Servo moves correctly.
3. NO CAP, WITH BOOSTER:SOMETIMES SERVO MOVES CORRECTLY, SOMETIMES NOT. LARGE POWER ARTIFACTS.
In picture 3A, I added the Hitec signal booster, but removed the cap. You can see the power line is still exhibiting large voltage glitches, but the signal line is nearly clean. Thinking for a moment why this is the case, we can infer that the ground line at the servo is still experiencing a glitch (relative to the receiver ground) of similar shape to what is shown on the power trace in this picture, and at ½ the voltage (as explained earlier). But the signal booster is asserting a voltage relative to local ground, and is therefore “tracking” these ground bounces, and presenting a nearly artifact-free signal line (in reference to that local ground).
Picture 3A : Without cap, but with signal booster.
However, I would not recommend this configuration because I believe it is “near failure” based on the next experiment.
Next I tried the Spektrum signal booster. Looking at the scope traces, the characteristics are similar to the Hitec signal booster. It boosts the signal to about 4v, and tracks the ground bounces same as the other booster. I don’t believe the two are very different. However, in this case, I did see the servo arm twitching. You can see this in video 3B.
Video 3B: Without capacitor, and with Spektrum signal booster.
The reason can be seen in picture 3C, which is a screenshot from video 3B. You can see that the signal line, which was stable most of the time, suddenly glitches down to the probe ground. Not surprisingly, this is coincident with a particularly large glitch on the power/ground lines (yellow trace). The signal line bouncing of course causes a servo twitch. The booster is making a decision about the input it sees on the PWM line, and then asserting that at the output as a new, boosted PWM signal. When power/ground are glitching so strongly, it apparently can flip that decision and present a glitch at the output. From the plot, we can see that this happens on the low part of the power glitch, not the high part. This glitch looks like about -2.5v, and my Rx battery at that point was probably just under 8v. While I only actually saw the servo arm twitch with the Spektrum booster, I believe the Hitec booster is similar, and minor changes to my wiring situation could probably cause either booster to work or not work. For example, you can see that the power glitch in picture 3C that caused the error is larger than that in picture 3A, but not enormously larger. From this I infer that the situation of picture 3A is also not very far from disaster.
Picture 3C: A screenshot from video 3B, showing moment of servo error.
4. WITH CAP, WITH BOOSTER: BEST
In video 4A, I have added the Hitec signal booster before the servo, but also installed the bypass cap (in this case 4700uF). You can see the power line glitches are significantly reduced. I also tried both caps and both boosters, in all combinations. In all cases, the servo movement was clean. Voltage glitches on the power line are still visible, which is not great; however they are much reduced, and I have never observed any servo arm twitching in more than an hour of operation on this configuration, and have flown the plane this way.
Video 4A: With cap and with booster. Artifacts visible, but no servo problems.
Also in picture 4B you can see a screenshot from another video, in this case with 4700uF cap and Spektrum booster. I paused the video at a place where the power glitch falls within the “high” part of the PWM signal. As you can see, the power glitch is much reduced, and the signal is completely undisturbed. An alternate way to state this is that the signal and ground are completely equally disturbed, so no artifact appears in their difference.
Picture 4B: Screenshot of operation with cap and booster. Glitch during high PWM pulse does not affect servo.
5. TRYING ANOTHER SERVO.
I also tried another servo I had on hand – a D625MW. This servo is by no means “low torque”, it can get up to almost 200oz-in. But as you can see in video 5A, even without cap and without signal boost, both the power line and the input to the servo are remarkably quiet. And of course there was not twitching of the arm. From this I infer that the 7950TH, in search of “ultra torque,” exerts much more push/pull on the power & ground even at rest. The large difference versus D625MW is surprising. If you use a 7950TH servo, I would recommend a large power bypass cap regardless of your wiring length.
Video 5A: D6256MW install on same wiring with no cap and no booster is totally quiet.