Making a servo idle

Hi,

This is a general question about servo's - I hope no one minds me asking it here!

Is there a way to make the servo idle in a particular position?

If I move it to a position and then set the pulse to 0 or off it is slow to respond when I then send it a pwm position. It's really to stop it drawing current and making a noise while holding it's position.

Do servo's have a specific PWM for idle? If so I can't find any info on data sheets.

Thanks in advance for any info.

You can detach a servo, in which case the library stops pulsing it, but then it will lose any position-holding, so if it is loaded, it will move away from the position you last sent it.

Hi,
The servo is not really holding its position if you are not pulsing it, it will seem as if it is because of the mechanical resistance of the gear train inside it, but once the load is sufficient to overcome this resistance, it will move and keep on moving.

If your load is light, this should not be a problem

Duane B

rcarduino.blogspot.com

shapingstuff:
Hi,

This is a general question about servo's - I hope no one minds me asking it here!

Is there a way to make the servo idle in a particular position?

If I move it to a position and then set the pulse to 0 or off it is slow to respond when I then send it a pwm position. It's really to stop it drawing current and making a noise while holding it's position.

Do servo's have a specific PWM for idle? If so I can't find any info on data sheets.

Thanks in advance for any info.

If it is a standard R/C type servo, (not one modified for continous rotation), you do not need to do anything to make it hold the last position, the servo library will contiously keep sending that last position value you commanded to the servo. There is no reason to 'detach' the servo, in fact the detach command is more often used in error then for any valid reason.

Lefty

There is no reason to 'detach' the servo, in fact the detach command is more often used in error then for any valid reason.

But, OP says that they are noisy when holding still (hard to believe) and consume current (easy to believe). So detaching and powering off would address both of those issues.

But, only if the servo is actually powered off, which detaching does not do. The power to the servo would need to go through a transistor that the Arduino turned on and off, in addition to detaching the servo.

The actual amount of current being used by a servo under various conditions should be quite easy to measure using a multimeter.

But, OP says that they are noisy when holding still (hard to believe) and consume current (easy to believe). So detaching and powering off would address both of those issues.

But that most likely is treating the symptom rather then the cause. A R/C servo with proper power (and filtering), proper positioning coding and properly sized to whatever load they are attached to is perfectly capable of not jittering. If you have ever seen the precision that competition R/C acrobatic fliers work at you can see that noisy servos would not be tolerated. There is always the possibility that the OP has very low quality or defective servos, there are some awful cheap models made and sold these days. Wear or missing teeth in the gear train can cause all sort of havoc in this regard. Unbalanced or mechanical overloading is also a possibility. Power is often a root cause.

I guess I just see detach command as a solution looking for a problem, and most often applied for the wrong reasons.

Lefty

Do servo's have a specific PWM for idle? If so I can't find any info on data sheets.

The OP may not even be using the servo library. With no code, no telling what could be the issue.

I'm doing some research around the same issue more or less. My understanding is there's a big difference between digital and analog servos in this regard. When an analog servo stops getting signals it stops trying to do anything. A digital servo (from what Hitec support told me) will continue to hold its last position, unless failsafe is set to "on" in which case it will hold its failsafe position. Also from reading, digital servos do continue to draw power even when they're "idling", which I interpret to mean in position with no force acting on it, but it's a low current draw relative to when the motor is doing work.

My question from another concurrent post is, does the "detach" command actually cut power to the servo. In thinking about it, the servo is in all likelihood drawing power from an external source therefore the answer would be no. Meaning in the case of a digital servo run from an Arduino, "detach" would not necessarily cause the servo to let loose of its grip. I'm looking for a definitive answer about this because in my application it seems like the servo does let go, but then sometimes it doesn't. I don't know definitively what the behavior should be i.e. does the servo know what "detach" means? Or does the servo just see that it's no longer receiving a signal...

I'm sure you'll find that detach() just stops the PWM output i.e. it tells the servo library to discontinue generation of the PWM output on that pin. I think you've already explained what the servo would do when that happens. (Your description of the behaviour of analog servos when the signal is lost matches my own experience and I'm sure you're right about the digital servos too.)

Thanks Peter for the confirmation. Took me long enough to figure it out:)