Let's Make Robots!

Control Servos With PC.

Hello. I understand that this is a very broad question, and I have been looking into options but am confused as people tend to start getting quite technical with their answers rather quickly.

I am very very new to robotics, and would like to learn how to control servo motors via a PC, as in how to rotate the motor to different degrees around its axis. Ideally I am after a way that can control many servos at once.

I have read about USB controllers, ethernet controllers, serial controllers, etc, but am not sure of the actual process, and how this scales up from just controlling 1 servo to many.

Any help would be greatly appreciated.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Thank you very much everyone, I shall continue my learning in those directions :)

You can use something like a micro maestro servo controller from pololu. If you want to learn how to build a controller and program PC software like whats included with the mini maestro you will want to:

  1. explore and find a suitable 8-bit microcontroller to learn (i.e. AVR, PIC, Arduino, etc).
  2. get a servo and use a 555 timer circuit (or PWM output of a microcontroller) and see how it responds to varying duty cycle waveforms as observed with an oscilloscope.
  3. Find a suitable PC programming language to write a GUI or what-have-you to do serial communication (i.e. Python, C/C++, Java, Visual Basic, etc.).

Steps 1-3 will keep you busy for a while, try searching this site and google (or you favorite search engine) for comparisons of microcontrollers and PC programming languages and their level of difficulty to learn.  Also, if you have any programming experience let us know what language(s) in your post.

Maybe you wanna try this:


Try to read the manual and it should guide you where to start.

It would probably be best for you to start by understanding how servos work. Each servo requires power, ground and a signal. The signal is a pulse that occurs every 20mS or so. The width of the pulse controls the position of the servo. A pulse width of 1mS would direct the servo to a position all the way to one side, and a pulse of 2mS would direct it all the way to the other side. Pulse widths in between those values set the servo to positions in between the two extremes.

So if you want to control multiple servos from your PC, you typically need an interface board or controller that can provide the proper power, a clock to keep the 20mS pulses coming, and individually controlled signals to set the width of the pulses (and therefore the position of each servo).

Now that you have the basics, what kind of controller to choose depends on your needs. How many servos do you need to control? Board's like Ro-Bot-X's uServotino or DAGU's Spider Controller can control multiple servos for you. There are many other choices, but without knowing more about your requirements, it is hard to advise you further.