HI, I am trying to use a servo with a micro servo controller Pololu. I took the serial signals TX and ground from my serial port and connected them to the two lines on the micro servo controller. I developed a C++ application with a class dealing with the serial communication. I used the same power supply for the servo controller and for the servo. I tried the modality MINI SSC and I was able to activate the servo. The problem is that the first command work but if I send a new command (new position) the servo does not react and the controller does not indicate any error. In the POlolu modality the servo does never react.
Can anybody suggest to me how to deal with this problem
thank you in advance
Can you describe what the LEDs on your board are doing throughout this process (when you power the board on, when you )?
Also, Pololu mode waits for a servo command before moving a servo, while MiniSSC-II mode sets all servos to their neutral position immediately, before receiving any commands. So, when you power up your servo controller with the MiniSSC-II mode jumper on, you should see your servo move once. Are you saying that you can then send the servo to a different position with your first serial command, or is this all the servo motion you are seeing?
Sorry you’re having trouble, it really is a great little servo controller though!
Thank you for your help.
when I turn on the power supply the yellow led switch on. Using the MiniSSC-II mode after i send the command the yellow led switch off and the green led flashes in correspondence of every serial writing (3) and the servo rotates. Then all leds are off. When I issue a new command the green led flashes in correspondence of every serial writing (3) but now the servo does not move.
Using the Pololu mode the servo does never move but the leds seems behave correctly. That’s all. Any idea?
It sounds like the problem is in the software. Since the servo moves once in MiniSSC-II mode and you get no LED error signals in Pololu mode, the serial data is properly formatted, but you might not be sending out all the right bytes. If you would like to post your code I can take a look at it. You might also want to take a look at this c code which uses the Pololu mode protocol.
You could also try hooking up a loop-back cable to a second serial port, or using a serial port monitoring program to look at the bytes your program is actually sending out to make sure they’re the ones you expect. If you’re using Windows, you could try the HDD free serial port monitor.
The fact that you can move your servo once means you’re 99% there!
I’d like to add a small correction to Adam’s posts. In MiniSSC II mode, the controller still waits for the first byte before moving the servos to their neutral positions. (It measures the first low pulse to determine the baud rate, and it cannot do that while generating the servo control pulses. Once the baud rate is determined, the hardware UART is used to receive serial commands in the background while generating the servo control pulses.)
This means that you might not be as close as Adam suggests, but since the LEDs are behaving correctly, you might have a good start. I suspect you might have accidentally changed the units servo numbers while in Pololu mode, making the unit respond to different servo numbers than you think. I recommend that you first set the servo numbers back to the default (send 0x80, 2, 0 in Pololu mode; see page 8 of the instructions) before switching back to the simpler MiniSSC II protocol to test your servo control commands.
Of course Jan is right, I’m confusing MiniSSC-II mode on the Pololu serial servo controllers with the behavior of the actual MiniSSC-II boards (odd, since I haven’t used one in about four years).