User Guide

Lynxmotion SSC-32U Servo Controller Board
Electronics Guide
Commands
CommandTypesandGroups.
SingleServoCommands
In order for the SSC-32 to position a servo, it must receive a serial command in the following
format. Note that the less than and greater than signs are not needed. Values in italic are
optional.
# <ch> P <pw> S
<spd>
T
<time> <cr>
<ch>: pin / channel to which the servo is connected (0 to 31) in decimal
<pw>: desired pulse width (normally 500 to 2500) in microseconds
<spd>
: servo movement speed in microseconds per second*
<time>
: time in microseconds to travel from the current position to the desired position.
This affects all servos (65535 max) *
<cr>: carriage return (ASCII 13)**
Example 1: #5P1500S750<cr>
This would have the servo connected to pin #5 of the SSC-32U move to position 1500 (0
degrees / centered) at a rate of 750uS per second*. Numeric arguments to all SSC-32
commands must be ASCII strings of decimal numbers, e.g. "1234". Some commands accept
negative numbers, e.g. "-5678". ASCII format is not case sensitive. Use as many bytes as
required. Spaces, tabs, and line feeds are ignored.
*For a better understanding of the speed argument, consider that 1000uS of travel will result in
around 90° of rotation. A speed value of 100uS per second means the servo will take 10
seconds (divide 1000 by 100) to move 90°. Alternately, a speed value of 2000uS per second
equates to 500mS (half a second) to move 90° (divide 1000 by 2000). Note that servos do have
a maximum speed (in degrees per second), so although you may try assigning a faster speed,
the servo will always be physically limited.
**All SSC-32 commands must end with a carriage return character (ASCII 13). In Arduino this
can be done by using the Serial.println(); command. Multiple commands of the same type can
be issued simultaneously in a Command Group
. All of the commands in a command group will
be executed after the final carriage return is received.
Example 2: #3 P1600 T1000 <cr>
24