Digital Servo?

I have searched a good wile and cant find anything on digital servos and the Arduino board. I find mention of digital servos but no real good explinations. I have been experimiting with the digital servos and have found I need to up the voltage to make them work, but when I use a standard program for servos, I can not get the servo to have a full range of motion. Is there a difrent way to program for digital? Or do I just need too adjust the PWM outpu?



Servos, being devices that were designed to have an analog control input (a person) are not as precise as some of us would like. Your best bet is to do some testing before installing them to find their best values, voltages and how they respond to loads. Then you will know what to expect FROM THAT SERVO. The next one may be different. All that said the servos that are being designed for robots probably are more precise due to the fact they were (I hope) for computer control.

Digital in a servo means that there is some form of digital processing of the input to determine which angular position to try to reach, rather than the old analog method of matching the voltage from a rotary pot as voltage-divider attached to the shaft with the voltage derived from the duration of the pulse.

This usually means that there is some way to ‘program’ the servo and tell it what you mean by 0.5mS and what you mean by 2mS, for example. How to do so will vary by manufacturer, but google should be your friend.

Having said that, if you are going to the expense of a digital servo, have you looked at OpenServo? Takes more work (you have to modify a non-digital servo into a digital one using an open hardware/software solution) but the you get a digital servo you can control via I2C…

Think of the possibilities! Two pins to control more servos than most of us will ever need, and you get two bytes to specify the angle you want, or the speed you want, no faffing about with durations and pulses and whatnot. Once the servo’s been told, it will hold that as long as it can, no need to refresh. Lastly, you can program whole movement sequences into it, and trigger them with a single command.

Next project I start with servos, I’m definitely getting a few of these babies… but I wouldn’t mind seeing some feedback from arduino+OpenServo users in the meantime!


Thanks so much for the help, both of you, I have some good ideas to look into now. I will definetly look into OpenServo and let you know what I think.

Thanks again,