Let's Make Robots! | RobotShop

Review: Lynxmotion SSC-32U USB Servo Controller

16 channel Servo controller

This is my writeup following my selection to review the Lynxmotion SSC-32U USB Servo controller.

 Let me first apologise for the length of time it has taken me to get this writeup started - I have been inundated with many things; work, personal and gigging with bands. I am now hoping to get caught up as best as I can!

The Lynxmotion SSC-32U is a fantastic board, making the controlling of multiple servos very simple, with easy-to-administer commands giving the user full control via a serial connection.

In addition to the 32 servo pins there's also a bank of 8 input pins, for connecting various sensors to the board.

This servo controller can be used for a variety of projects where multiple servos need controlling with ease, or from a microcontroller that does not have the necessary pins or grunt to do so on it;s own.

When I submitted my request to review this board I was going to incorporate it into a project plan I had for a desktop assistant to control some pan/tils servos and also read some ping sensors and the likes.

In the time I have been pondering this review I have slightly changed my attempted project; I aim to put together some small robot arms, and use this board to control their positions. these arms will assist in the holding, turning and positioning of perfboards and circuit boards, or the positiong/holding into place of wires, to assist with things suchlike soldering. a Python program running on my PC (eventually a built-in Raspberry Pi Zero) will pass commands to the board, allowing quick and easy rotation and movement at the click of a button.

Still a desktop assistant innit :)





Unboxing was a very straightforward process - the board came sealed in a plastic bag, along with a Mini USB cable and a small instruction manual. It is a very minimal packaging, but it doesn't need anything more; you only need to a power source and the servos themselves and you're ready to go.

The manual is very basic, but scharrette kindly sent me a lnk to the full online guide so it's all gravy baybee!

Using it - TO FOLLOW

This board is easy as peas to get running thanks to the in depth online manual. (http://www.lynxmotion.com/images/data/lynxmotion_ssc-32u_usb_user_guide.pdf#page=24-26)

The guide is well worth a flick through, as there are so many options regarding setup that could be used. The design is very flexible - especially with power options. You can power the whole board from one supply, split supplies when using servos of different voltage requirements, or even 3 supplies when wanting to keep the logic board powered seperately.

As shown in the manual there are several options for communicating with this board (there's an XBee socket onboard), but the main one I wil be using for now is via USB.

Controlling the servos is as simple as using the folllowing commandcomprised of the following data:

● : pin / channel to which the servo is connected (0 to 31) in decimal

● : desired pulse width (normally 500 to 2500) in microseconds

● : servo movement speed in microseconds per second*

● : time in microseconds to travel from the current position to the desired position. This affects all servos (65535 max) *

● : carriage return (ASCII 13)** 


This structued string of information allows simple, yet detailed control of each servo.

I am hoping to write some functions which will handle banks of servos by sending this command for each servo channel used.

This should enable making a robotic arm-based project simple.

Controlling a Servo - TO FOLLOW

Using this board to control a servo is unbelievably easy! I shall shoot a quick video to show how easy it is.

I have been using this board with my raspberry pi via the USB connection; I have found it very beneficial to create a set of python functions to make is simple to send the required command information to the controller. I will finish it up and make it pretty then I will stick it up on here for people to use.

Controlling a group of Servos - TO FOLLOW

As with the individual servo control, controlling groups of servos is just as simple; the controller board is extremely responsive, allowing for several commands to be processed in quick succession.

I have written a simple python class to demonstrate both singular and group control - a video will follow soon.

Desktop Assistant - TO FOLLOW

In order to fully show what this board can do I have been thinking of project ideas that can use a multitude or servos.

The obvious choice would be a Hexapod or similar walker. I would love to create one of these, but with poor fabrication skills and little/no access to laser cutters and 3D printers I don't feel I could do it justice.

This got me thinking... Maybe I could come up with a tool to assist me in fabrication, like a smart helping hand. Something to hold components in place while I solder them, and can rotate/manipulate the parts at the touch of a button. With the right application it could even be voice activated!

For now I'm thinking of a small wieghted base, with 3 robotic arms; two on the outside, one at the top, and finally a motor in the middle. This middle motor can be used to control a turntable, for rotating PCBs or parts that I am shaping.

The top arm could be used to hold PCBs, and rotate them on command - ideal for double sided soldering jobs!

The side arms could be used to hold wires or components that need soldering, and hold things in place, leaving my hands free to wield the soldering iron and solder.

This will allow me to get everything in position and concentrate on a good solder joint rather than wishing for ten arms!

And adition could be some potentiometers attached to the servos - this could allow for feedback of position, and open up the possibility of teaching the arms movements.



Update - having been let down on an order of robotic arm kits I am looking for advice to move this review-come-project on.

I have plenty of micro servos, but I am looking for some laser cuttable or 3D printable arm kits. I should have my 3d printer up and running once I source a control board.

As soon as I can get those I can finish this!


Thanks for your patience!!


PS - I've started collecting chopsticks to make some really basic arms to demonstrate my code for this fantastic controller!

It works really well wI think other controllers and SBCs. Recently I have been using mine with my Raspberry Pi. The Pi runs a simple Python webserver, and upon button presses on the Web page sends serial commands to the SSC-32U.

This combination would work great for a Hexapod; the SSC-32U handling movement while the Pi handles processing (maybe even from a Pi Cam, integrating OpenCV for image processing ! )

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I use this board for my Ava robot, to control 8 arm servos, 2 neck, 2 ears, all 7.4 volt.  I am generally happy for noticed a few issues.  

The board assumes on startup that it has to move to some default (center) positions, as fast as possible.  The doc acts likes this is a good thing, but in my opinion it is not.  It is dangerous and can burn out servos very quickly.  I think it would be better if movement to some kind of initial position was user controlled at a user speed.  In my case, I need to control the shape of the movement of arms to the initial position (around obnstacles) and I can't.

The other related issue I encountered is with supplying enough current to the servos on startup.  Because they all try to "jerk" to the initial position, they all draw a lot of current all at once, which overloads the 7V 4.5Amp switching regulator I was using, running off a 14.4V 4S Lipo, causing the board to go a bit crazy and jiggle all the servos and not do the right movement..  I think this reg would have been enough if it weren't for this startup "jerk" behavior.  I was forced to redesign my power supply to have a separate  7.4V battery for the servos, this fixed it.  Maybe I am ignorant on something, but I think it should have worked the old way.

Other than these issues (which burned out a couple of expensive shoulder servos, everything else has been good.  I ran 6 hours a day for 2 days controlling 12 serovs with the board at SXSW.

You can change how the SSC-32U reacts on power-up by using our free diagnostic tool, Lynxterm. Simply connect to your SSC-32U (make sure it is properly powered by VS1) and follow the steps shown in the image below.

When the initial pulse width is enabled, the SSC-32U will send an initial pulse to all servomotor channels on power-up. If you wish to not have that happen (or only for some servos), you can deactivate the initial pulse width. You can also enable the startup string and add specific values for only some servomotor channels, too. For example, you could set the startup string to #1P1500 #8P2250 and this would only send a signal to those channels, the others would not receive anything.

Thanks for the info (and subsequent remedy for it) - I hope to get stuck into building my project very, very soon!

I'm looking forward to more details on this project / to the next update! Keep up the good work!

Thanks man - sorry it's taking so long!

My end project seems to be evolving the more I am thinking about it.

Currentlty tempted to put together a 3-armed automated 'helping hand'.

One arm to hold a board, and two arms to hold wires and suchlike so I can just focus on holding the iron and the solder :)

I would use my PC/Pi (or an arduino with some buttons on) to send commands to rotate, move left, right, flip etc.

... and now I'm starting to think of ideas of something I'd like to make for my electronics' bench! :P

I'm thinking of using the inputs onboard the controller to attach some potentiometers to the servos and allow some kind of feedback.

Very handy to allow moving/setting arm positions by hand.


Could anyone recommend some guides to making a simple 3 or 4 DOF arm using little servos?

I'm need to come up with something very simple that gives a nice range of movements for rotating boards etc.

This is Helen from Makeblock, an open-source Arduino-based robotics contruction platform. Could you tell me your E-mail address ?

Hi Helen

Sorry for the late reply - I didn't get an update when you posted your comment.

My email is craighissett at gmail.com