Let's Make Robots!

Practical question about servos and capacitors

I have read in many places on this site about using capacitors to reduce motor and servo noise. I am now using 0.1 uF capacitors across the leads of my motors as standard practice. I'm also using 470 uF and 0.1 uF capacitors around both sides of my voltage regulator. As yet I haven't tried applying a cap to a servo, and I have a quick question.

Where do you attach the capacitors on the servos? It is easy enough to solder caps directly to the leads of a motor, but the leads on a servo are much longer, and usually already in a nice 3-pin connector to attach to a microcontroller. I believe it is best to have the capacitors as close to the source of the noise as possible. What are some good practice ways to connect noise suppression caps to the servo?

Off the top of my head, I can think of several ways, some of them are probably really bad:

  • crack open the servo case and add a small cap where the power leads come in (ick!)
  • cut the servo power leads just outside the case and splice in the capacitor across the leads.
  • disassemble the 3-pin connector, solder the cap to the pins, and reassemble
  • run the servo leads to a PCB or protoboard, add the cap to the board, and then wire from the board to the microcontroller

So, how do you do it?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

The plot thickens...

This is beginning to look like a case for THE MYTHBUSTERS :D

I'M sure Grant could tackle it. He did win battlebots...
More often than not I've disassembled a servo to find there's already a small ceramic cap fitted across the motor leads, inside the case.
Apart from all the other good suggestions, you could always add a third, even larger (>1000μF) cap across the battery leads that feed the servos. This would help smooth out any voltage sag when your servo draw large currents - especially if you have several servos that are operating synchronously.

It may be that the servos are jittery due to infrequent servo pulses coming in. It may be possible that the pulses aren't gettin delivered as quickly as needed, every 20 ms or so. Higher update rates have given even better performance in my experience. I've pulsed servos every 13 ms with better results. Try writing a program that does nothing but move a servo, and see how that performs. Then add more servos or more of whatever your robot has onboard. It may be one component is throwing off the timing.

It also might be that the servos are current starved. It helps to have them directly connected to a battery pack rather than through a regulator. The use of 4 or 5 AA rechargable batteries have been a good working pack in servo apps. Just some thoughts to try out. 

The 6V for the servo is coming direct from the battery. There are 0.1 and 470 uF caps on each side of the 5V regulator, so the battery side has some capacitors on it, but no other regulation.

 I think it is proabably interference with the Picaxe timer, which is also driving an SRF005 every 2 seconds.

I'll try your suggestions. Thanks!

Are you using a ldo reg with the 6v->5v .  Not using one could cause potential power issues I would imagine.

Yes, indeed. I'm using this one:


It is based on OddBot's design, only using a different low dropout voltage regulator.

wow...2A....I haven't seen an ldo with that kind of output....the ones I have run about 300-600ma
I think I got mine from the Electronic Goldmine. Nice little regulator, so far.
Do they really get that hot that you need a heat sink on em?