Pololu USB 16-Servo Controller puts servos into neutral pos


I just puchased a USB 16-Servo Controller. I have been able to get the servo controller to move any one servo to the correct position. But as soon as I plug more than two servo into the controller and send the set position commands to the servos, all the servos move to their neutral position.

I have found that if I follow the following sequence, I am able to use a few more servos without the servos moving to their neutral position. But they still will move to their neutral position when 4 or 5 servos are plugged into the servo controller.

Step 1: Turn servo 1 on.
Step 2: Set servo 1 to the desired position and wait 1/2 second.
Step 3: Turn servo 1 off.
Repeat steps 1 through 3 for all servos pluged in.

Is there a way to keep every servo turned on and send commands to each servo without having them move to their neutral position? (I do not want to turn them off. The servos need to hold their position when weight is on them.)


I’m not sure I understand your problem. Are you saying that when you send a command to servo 1 then, to servo 2, you see servo 1 move?

By the way, the behavior you describe would be normal for Mini SSC II mode, where there is no provision in the protocol for turning servos “off”. Once you send the first command, all servo pulses begin being generated, so all servos will move to the neutral position.

Since you are writing of turning servos off, I assume you are using the Pololu protocol. There is always an internal position variable, which is initialized to the neutral value (1.5 ms). If you turn on a channel, that’s the position you will see. However, if you send a position command (without the servo on command), the servo should turn on and go to the commanded position immediately.

If you are using the speed settings to slow down a servo, you would see a servo first go to neutral and then gradually move to your commanded position. If this is your situation, the best solution is to set the position to your desired position, then change the speed setting, which will affect all subsequent movement. (You can’t make the first movement slow since there is always a first pulse that the servo controller generates, and the servo will move as quickly as it can to that position.)

- Jan

Sorry if my last post was a little unclear. I am using the Pololu protocol and I am sending command 4 to the servo controller to set the position.

The commands that I send work exactly how I would expect when I have only 1 servo plugged in to the controller. I run into problems when I have multiple servos plugged in.

If I send the set position command to two or more different servos when I have multiple servos plugged in and turned on, all of the servos that are plugged in move to their neutral position. Once the servos move into this position, the servos will no longer respond to any commands. They become locked in the neutral position.

After this happens, I have to reset the servo controller multiple times to get them to stop driving to their neutral position. Some times the servos will not stop pushing to the neutral position even after multiple resets. When this happens, I have to unplug every servo that was plugged into the controller. After ever servo is unplugged, I can then plug the servos back in and they will no longer drive to the neutral position.

What can I do to prevent these servos from locking up into their neutral positions?

Well, that’s definitely a strange problem. Any time multiple servos changes the behavior, I would check the power supply first. The servo controller-to-servo communication is one-way, so adding a servo shouldn’t affect that. How are you powering the servos? Also, can you provide more details about the servo controller? For instance, once your servos stop responding, does the servo controller still behave the same (serial activity light flickers when you send new commands, etc.)?

- Jan

Thanks Jan,

It was the power supply. I was using an adapter that wasn’t sending enough current when multiple servos were plugged in. The adapter was rated at 4.5 V DC and 500 mA max current. I purchased a new one that is rated for 1600 mA current. All the servos now work correctly with the new power adapter.