Communications and programming protocol between the Raspberry Pi and a Lynxmotion SSC-32U USB Servo Controller

Hey @RoboNovice!

From your previous posts, I’m thinking you are using two Lynxmotion AL5 robotic arms, but let me know if they are something entirely different! :slight_smile:

Well, the USB controller chip on the SSC-32U acts as a virtual COM port (or VCP; on Windows) or something like /dev/ttyUSBn (on Linux, Unix, OSx, etc.) on your host. Since you are using a RPi, it is most likely showing up as /dev/ttyUSB0 or something like that.

The communication itself between the RPi and the SSC-32U will be done through that serial port. Simple open it (and set that comm at the right baud rate, of course!) and you’ll be able to send to and receive data from the SSC-32U.

So first some details:

  1. The SSC-32U ships by default set to 115200 baud rate. You can confirm the baud rate by powering the board (blue PWR LED should be on) and then pressing the BAUD button once near the USB port. See the details about this in the SSC-32U manual on page 34 (bottom half).

  2. If you want to control your 10 servomotors you should probably familiarize yourself with the SSC-32U protocol. You can find more details in the manual on pages 24-26 for basic commands. There are also some more advanced commands detailed on pages 32-35, such as querying the status of a channel, reading digital or analog inputs and changing the baud rate programmatically.

All of those commands are simply sent in clear text ASCII to the serial port directly, therefore any platform you use should be able to provide the required tools to communicate with the SSC-32U.

Since you already seem to be using Python in another project (from your previous posts), you may find these examples useful for you:

If you want more info about the AL5D and 2D IK (Inverse Kinematics) for it, have a look at these discussions:

I hope this helps you get started! Good luck! :slight_smile:

Sincerely,