Inconsistent servo position

Hi,

I have been referencing the “Python/SSC-32 Example” thread on lynxmotion lynxmotion.net/viewtopic.php?f=2&t=1520 and “SSC-32 Manual” for controlling the HS-785HB Winch Servo with Python v 2.6, OS X 10.6, with the SSC-32 motor controller. This is my first experience with both the SSC-32 and the winch servo. The problem is that I am unable to get the servo to go to a consistent position. The code below results in the winch servo moving in the same direction over and over, and not settling on a consistent position. Is this normal? What can I do to send the servo to some consistent location, for example, the center? Thank you in advance.

import serial

SSC32_Port = "/dev/tty.usbserial"
ssc32 = serial.Serial(SSC32_Port, 115200)

result = ssc32.write("# 0 P 1500 \r")
result = ssc32.write("# 0 P 1500 \r")
result = ssc32.write("# 0 P 1500 \r")

ssc32.close()

A few other notes about my system setup:

Thanks for the reply, but I don’t understand why that would be true.

First, the ssc-32 documentation states that the pulse is between 500 and 2500. The string " Pulse width in microseconds, 500-2500" can be searched in the documentation http://www.lynxmotion.com/images/html/build136.htm.

In addition, the documentation for the HS-785HB Winch Servo http://www.servocity.com/html/hs-785hb_3_5_rotations.html states “Control System: +Pulse Width Control 1500usec Neutral”.

I would assume that together, these mean that I can set a position for the servo by sending it the command:

Finally, using smaller values does not help. I have put as low at 5, but I am still seeing the same behavior.

Thanks.

Hi,

The 785HB winch servo operates ith the following pulse ranges:
500us = continous (full speed rotation in one direction)
500 to 600us = speed decreases as pulse nears 600us
600us = servo positioned at 0 degrees
600us to 2400us = servo moves to position where 600us = 0 degrees and 2400us = 1260 degrees (1500us = 630 degrees)
2400us to 2500us = continuous rotation in opposite direction
2500us = full speed continuous rotation in opposite direction

Therefore sending a signal of 1500us should position the servo at 630 degrees.

Hope this helps,

Hello Mango7 and welcome to the RobotShop forum.

The winch servo is a bit special and for some pulse values it will continually rotate. if you write a lower value you will get it to settle in a single position. We suggest you experiment with other values in order to calibrate the output of your program.