I have a Micro Serial Controller hooked up to two servos and I can’t get them to move in the right direction. Whenever I send a command in miniSSC mode, they only move step by step to the middle of the actuation and then stop.
On our last system I was able to control them full up or full down using the same code. Now, it doesn’t matter whether I send \xFF\x00\x00 or \xFF\x00\xFF - all servos on the board move to the center. I’ve tried changing the servo numbers and it didn’t change. The weird thing here is that the servos only will move if the servo number is in the range of the board.
I don’t have an oscilloscope to look at the output of the controller, so I was hoping one of you had ran into this before. I called Pololu and even though Jan was helpful, we couldn’t figure out what was wrong. I’ve tried connecting to it from Windows using the utility and Linux using the command line, and it reacts the same. Has anyone else seen this problem before?
Thanks in advance,
What do you mean by moving “step by step”? That makes me think you have power problems that are causing the servo controller to reset.
Each time I send a command, all servos move about 5° towards center, no matter what the command servo or position is as long as it’s within the 16 addresses that are on the board.
I have the board powered through a pretty beefy power supply at 6V, so we should be okay there. I have the Vin = Vcc jumpered with the supply on the logic side of the chip. Would it help to move the power lines over to the servo side?
By supplying power to the servo side, the board was able to keep up with the power draw. With the power hooked up by the logic side, it didn’t supply enough current to the servo motors and would reset itself mid actuation which happened to bring them to center.
Are you still using the VCC=VS jumper?
When you hook up power to the VIN and GND pins on the opposite side of the board from the servo connectors, the power goes through a small 5V regulator which protects the on-board microcontroller. If you then connect the VCC=VS jumper, the servo power pins will be connected to that same small 5V regulator, which can’t supply nearly enough current to drive them. When you try to move a servo, the voltage will drop, and the controller will reset, which sounds like the problem you were seeing.
The problem with your current setup is that the VCC=VS jumper connects the microcontroller and servo power lines directly, without going through the 5V regulator. The maximum voltage specification of the PIC16F628A on the servo controller is 5.5V, so in this setup you’re already out of spec! This won’t immediately ruin your servo controller, since the PIC’s “Absolute Maximum” voltage rating is 6.5V, but in general when you go outside of the normal specification you’re going to reduce the lifetime of the device.
I would suggest removing the VCC=VS jumper, and splitting the positive wire from your 6V power supply to both the servo power in pin and the VIN pin. This way your power-hungry servos will get 6V directly from the power supply, while the PIC on your controller will get a nice clean 5V through the voltage regulator.
Thanks for the heads up. I was using the jumper and powering from the other side. I’ll make that change so I don’t fry it.