4
\$\begingroup\$

I am currently playing with the HS-485HB servo, and I noticed that very frequently the servo will not stop in a "rest" position after it stops moving, even when external forces applied to it are tiny. Instead it stops in a roughly correct position and continues to "buzz", while drawing more current than it should (~30mA). If I gently tap the servo horn with my finger, it settles into the rest position, the noise stops and the current goes down to about 7mA, which is what I am looking for.

Here's a video that demonstrates the problem: https://www.youtube.com/watch?v=GSLFnIpSqXw

What are the possible reasons for this behaviour?

EDIT: I acted on a hunch and added a 570uF capacitor in parallel with GND and +5V of the servo. This appears to have solved the problem! And it had to be that large too. For example, using just a 470uF helped the servo park properly only half the time.

I still don't know why that worked, so an explanation would be appreciated.

\$\endgroup\$
  • \$\begingroup\$ Its always about power :-). \$\endgroup\$ – copper.hat Aug 23 '14 at 22:52
10
\$\begingroup\$

The reason that adding a capacitor helps is because when the DC motor which actually drives the servo is starts or stops, it injects some noise into your power supply (+5V). This causes the sensor part of your servo to read a slightly different value for the position of the actuator, since the sensor is just a potentiometer wired between +5 and GND with the wiper in the middle which sets a voltage due to voltage divison.

Consider for example that you want the servo to be oriented "half way". If the voltage exactly corresponds to to position of the servo, the servo electronics compare the actual voltage to the halfway between +5 and GND (2.5V), turning the motor to reduce the voltage and therefore positional difference between the actual and target positions/voltages. However, suppose that in turning the motor on, the voltage of the +5V power droops slightly. Thus, the voltage being read is slightly lower than it should be given the position of the actuator. This causes (for example) the motor to turn off prematurely. However, when it does so, the voltage rises back up to +5V, and therefore the servo surmises that it is not close enough, and turns the motor back on, but this reduces the voltage of the power, so the cycle continues. This creates an internal feedback path that causes the servo jittering or buzzing.

Adding a capacitor close to the servo creates a low pass filter which reduces this noise on the power rail, which allows it to remain at a constant voltage irrespective of the motor turning on and off.

|improve this answer|||||
\$\endgroup\$
2
\$\begingroup\$

That's called "hunting" in automation; it sometimes happens with servos. In cases where the feedback loop extends outside the servo (position detection at the mechanism's far end), it's often caused by the controlling software not taking enough inertia into account, so the servo continually overshoots the goal & tries to correct, again overshooting.

In your case, though, the feedback loop is entirely inside the servo. and so the software isn't at fault. Instead, that servo has a little potentiometer inside to detect the servo's actuator angle. Either that potentiometer is a little dirty (and cleaning will take care of the problem) or its connection to the final actuator stage isn't quite as tight as it could be.

|improve this answer|||||
\$\endgroup\$
  • \$\begingroup\$ Interesting. If this is indeed the case, do you have any idea why adding a 570uF capacitor in parallel with GND and +5V of the servo, appears to solve the problem? And it had to be that large too. For example, using just a 470uF helped the servo park properly only half the time. \$\endgroup\$ – Val Blant Aug 23 '14 at 20:48
  • 1
    \$\begingroup\$ @ValBlant - Also interesting. In that case, you're seeing effects of battery droop (little battery close to its ampacity?) or line loss (small long wires?) when the servo moves (relatively large current excursion). I see you're using pretty small ribbon cable - how long is that cable? What's your power source? I think the internal controller has a little voltage reference with its own little capacitor, and your voltage droop confuses it. \$\endgroup\$ – TDHofstetter Aug 23 '14 at 21:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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