The servo can be in any position on power up and will move violently to the initial position set by the software. I gather that it is not possible to read the position of a servo. Is there some way to reduce the speed of movement on power up please?
My understanding of servos, they will move at full speed to get to the position that they are receiving.
For example, If you turned off the power to a servo when it was at 180° and you turned it on with a signal at 0° it will move to 0° at full speed.
The only way to slow this down would be to turn the servo on at the position it was last in.
So if it was at 180° when it was powered off you would need to output the 180° signal when it was powered on again.
The servo won’t move at all by itself, so the initial violent movement is due to the software issuing a move command on startup.
The simplest solution is to ensure that it is in a known position when it is shut down. Then make that shut-down position the initial position, and if the required startup position needs to be different, move slowly to that position.
If this is not possible, or not sufficiently reliable, then you can minimize the startup activity by selecting an optimum initial position - perhaps at the centre of the movement, or whatever position creates least problem for the attached mechanism. Then move slowly from that optimum position to the required start position.
In either case, slow movement of a servo is achieved by moving to the destination point using small steps with a delay between each step.
thanks Jeff and Aaron. Your suggestions are much what I had come to.
What about a pwm controlled mosfet in the supply line to ramp up power over a period? Could this control the initial movement to be less violent?
That would likely not work how you expect it would.
There is potential to do damage to the internal control unit in the servo.
The control unit is what responsible for turning the servo to the correct position of the PWM signal.
Firstly sorry for any delay, I have been away for 4 days.
Aaron is correct when he says a servo will move from Pos A to Pos B at maximum speed. “Pos” being dictated by control pulse width. The specs on the ones I have seen usually state the servo will move 60º in X seconds @ Y volts. Sometimes more that one speed (X seconds) for more that one supply Voltage is specified and the speeds seem to be different for different supply voltages. Check that. So maybe ramping up the voltage might work, could be a bit fiddly though. This is not normally done I don’t think so you might have to experiment .
I don’t think operating at rated speed will damage the Servo as they are designed to do this…
If it is just too fast for your purpose then try running at a lower supply voltage. There will be a stated minimum for your particular servo so don’t go any lower than that.
If still too fast you might just have to find a servo that operates at a slower speed. I would think they are not all the same and such a device would be available.
Hi Geoff
I just posted this on your other topic re hunting. I think it is important enough to repeat here as I think you are talking about the same servos.
URGENT. URGENT
STOP IMMEDIATELY
I just had a look at several data sheets for a MG995 Servo
They all say operating voltage between 4.8V and 7.2V.
There is little wonder your servo seems to traverse as you say “Violently”
This would not help with the “hunting” either.
If you haven’t destroyed the electronics get the supply to within specified range and try again.
I would get 3 new servos anyway as any damage due to over voltage could be cumulative and fail down stream.
Cheers Bob
2 Likes
And you can get our latest projects and tips straight away by following us on: