Author Topic: Servo (electronic) noise, or am I just being paranoid?  (Read 2060 times)

0 Members and 1 Guest are viewing this topic.

Offline rrinkerTopic starter

  • Super Contributor
  • ***
  • Posts: 2046
  • Country: us
Servo (electronic) noise, or am I just being paranoid?
« on: April 04, 2017, 05:57:17 pm »
 I've been finding more and more examples of people having issues driving servos with Arduinos, in that they are getting strange induced glitches almost always caused by noise coupled through the power supply from the servo. Now, as it stands, I am thinking my project is currently in the worst case configuration - it's all on a breadboard, wires everywhere, AND there is no isolation whatsoever - the whole thing is powered by a single power supply which feeds botht he servos and the +5 pin on the Arduino. Using the cheapest Chinese servos around. I can push the buttons to move the servos, the LED indicators change as programmed, never any sort of visible glitch.

 Am I just lucky? Will this fail miserably if I spin a pcb for this and make a permanent version? Is it just because the E3610A is that good at soaking up spikes?

 Ultimate belt and suspenders would I suppose be an optoisolator driving the servos and two completely independent power supplies. But do I really need to go to that extreme?

 Mainly, what should I be measuring and looking at to make this sort of decision. If there's a fixed answer, I'm all ears, but mainly I would like to know what I can do to maybe determine this for myself based on empirical measurements. I do have a scope - 1GHz Siglent 1102CML so I'm thinking the first place to look is on the power supply line and see what sort of noise I'm getting, but if the output of the 3610 is enough to attenuate any spikes to below a level that would interfere with the Arduino, I'd never see anything. And no, the finished product will NOT be powered by banks of E36010A'a  ;D

 

Offline LaurentR

  • Frequent Contributor
  • **
  • Posts: 536
  • Country: us
Re: Servo (electronic) noise, or am I just being paranoid?
« Reply #1 on: April 04, 2017, 08:21:39 pm »
I have no experience with making servo board based on Arduino, but I have driven servos from an Arduino on a breadboard (and a big external linear supply) like you.

With a big linear supply, I have never seen an issue. However, I have seen low-current supplies brown out because of servos current surges.

Clearly, this is a common problem. In RC cars, the receiver (servo controller) and the servos are on the same fairly low-current regulated supply. Aggressive servos are know to brown out the supply to the point the receivers restart. That's why some people need to use these:
https://www.amainhobbies.com/spektrum-rc-voltage-protector-spm1600/p6570


The bottom line is that the quality of the supply and the decoupling available in the supply, servo and on board all contribute to the supply not browning out. Making a board for a given supply and servo is probably not too hard, but if you are making something generic, you're bound to have issues with some combinations of servo and supply.

You could put a scope on your system to try to catch the current spikes.
« Last Edit: April 04, 2017, 08:27:10 pm by LaurentR »
 

Offline Ian.M

  • Super Contributor
  • ***
  • Posts: 13096
Re: Servo (electronic) noise, or am I just being paranoid?
« Reply #2 on: April 04, 2017, 09:15:46 pm »
Using a big reservoir cap to keep the MCU power above its brownout voltage, and a Schottky diode in the feed to the MCU and big cap, to prevent the servo drawing from the MCU's cap when it needs a current surge will cure most such problems.   Its the poor-man's alternative to a separate regulator for the MCU.   You only need to optoisolate if the 0V (Gnd) wiring is poorly laid out to the point of having more than half a volt of ground bounce.
« Last Edit: April 05, 2017, 02:25:51 am by Ian.M »
 

Offline LaurentR

  • Frequent Contributor
  • **
  • Posts: 536
  • Country: us
Re: Servo (electronic) noise, or am I just being paranoid?
« Reply #3 on: April 04, 2017, 09:31:50 pm »
Looking around at what others do for boards, Adafruit has an Arduino servo shield. They have a reserved spot for a through-hole electrolytic.

This is what they say on the topic:

Quote
Adding a Capacitor to the thru-hole capacitor slot
We have a spot on the PCB for soldering in an electrolytic capacitor. Based on your usage, you may or may not need a capacitor. If you are driving a lot of servos from a power supply that dips a lot when the servos move, n * 100uF where n is the number of servos is a good place to start - eg 470uF or more for 5 servos. Since its so dependent on servo current draw, the torque on each motor, and what power supply, there is no "one magic capacitor value" we can suggest which is why we don't include a capacitor in the kit.

https://learn.adafruit.com/adafruit-16-channel-pwm-slash-servo-shield/shield-connections
 

Offline rrinkerTopic starter

  • Super Contributor
  • ***
  • Posts: 2046
  • Country: us
Re: Servo (electronic) noise, or am I just being paranoid?
« Reply #4 on: April 05, 2017, 12:41:43 am »
 Sounds reasonable. Each of my board will only ever drive 2 servos. There might be a case when there are 3, 2 of them running in parallel. It's generic, but for my own use. Not a commercial product. The only possibility is not getting the exact same servos each time because I'm not sure how many total boards and servos I need yet, and I doubt I will order 100 servos at once. But they will all be of the same general type, SG90 type.
 I can do some testing with alternate power supplies and see what happens. I haven somewhat inadvertently tested it with some voltage drop when I didn't have the current limit turned up far enough on the power supply and held on to one of the servos - but it never blinked. I wasn't monitoring to see exactly how far the voltage fell in CC mode, but it was definitely well under the 5V I had it set for. Seems like these Nanos I have are fairly tolerant of voltage swings, at least those below nominal. Some extra caps will probably be fine. Sounds like I have a path to proceed on and see how it behaves.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf