# Finishing up servo controller and I need a small favor...

#### nidalxbot

Joined Sep 4, 2014
6
I'm here for not so long and one of the first things to post on this forum is: I would like to ask you for a small favor.

I'm close to finishing design of a controller box for RC servos which should be done in a few weeks and I was wondering if you guys and gals could answer a few questions and help me make it even better.

I've been working on this controller during August and am wraping up the design in a week or two so I can have prototypes shipped to me before Halloween.

It will be able to control 16 servos, will have power supply for servos, USB connection to PC with Java and C/C++ programming interface, UART connection for the same interface. There will be a simple software for Win/Mac/Linux that can be used to control servos and write and run control scripts in Lua.

Now, I need your help here. Before I wrap up everything and send it off for prototype manufacturing I want to make sure that I've covered as much as there can be. Basically I would like to maximize return for money paid for prototypes (it's never cheap

That's where you come in. Please take a few minutes and just let me know, out of top of your head:

A) What would you put in/on this servo controller based on your experience/desires:

B) As far as electronics go, what would be the number one thing (or two...) you would put on this servo controller board? (uSD card? 32 servo connectors? LCD? pot to controll servo position? anything...)

C) As far as PC software goes, what would be that most important function (or functions to implement? (scripting? mouse control? saving settings? graphs? whatever...)

Of course, if there's anything else you would like to write about servo controller(s), please do )

Thanks!

Joined Jul 18, 2013
19,400
It would be preferable to know the market it is aimed for and the main intended purpose?
Hobby/Leisure or industrial market etc? More information on the nature of the equipment?
Max.

#### nidalxbot

Joined Sep 4, 2014
6
You're right Max, I completely missed that.

This is for standard, analog R/C servos, so I guess it would be hobby market?
I'm building animatronic dinosaur for Halloween and intend to use it for that at first and later on for other projects that have R/C servos in it.

#### jpanhalt

Joined Jan 18, 2008
8,313
Not quite sure exactly the purpose of your design. For example, why would someone want an RC servo driver that was tied to a PC? I can think of reasons, but it is not my project.

When setting up servos in a model, it can be useful to know the offset from zero in mS or the actual pulse width. The ability to increment/decrement that offset by a specific amount, say 2 uS or 8 uS would help test the dead band of the servo. You might show that on a display. There are also times when you need multiple servos working the same control. In that case, it would be nice to know each servo's current draw. You don't want them to fight each other. It would also be nice to control both position and speed.

People are probably most comfortable with a potentiometer, but a digital encoder or switch could also be used. You also want to provide servo reversing, since when setting up an airplane it is often most convenient to reverse the servo motion on the contralateral side.

John

#### djsfantasi

Joined Apr 11, 2010
5,833
What will be transmitted over your UART/USB to control your servos? I am specifically wondering if you've defined simple text commands to move the servo. For example "#0P1500T3000"?
Are you planning on selling these controllers? Are you aware of a commercial product that does something very similar for about $40? http://www.robotshop.com/en/lynxmotion-ssc-32-servo-controller.html Thread Starter #### nidalxbot Joined Sep 4, 2014 6 Thanks for your comments guys, really appreciate it! Not quite sure exactly the purpose of your design. For example, why would someone want an RC servo driver that was tied to a PC? I'm building this dinosaur from materials used in RC modelling: carbonfiber rods, balsa, foam etc. While I build the body I need to check if servo placement is ok and are there any problems when it operates. Often I want to move 2 or 3 servos at the same time. It is a lot easier when I do it from PC, and for sequence of movements I write a simple script and when I need it to run just click a button (and the other one for emergency stop ) Once I'm done with the body, all I have to do is connect this controller to BeagleBoard or OLinuxino and run script from there. What will be transmitted over your UART/USB to control your servos? I am specifically wondering if you've defined simple text commands to move the servo. For example "#0P1500T3000"? Are you planning on selling these controllers? Are you aware of a commercial product that does something very similar for about$40?
http://www.robotshop.com/en/lynxmotion-ssc-32-servo-controller.html
Commands are simple text commands over TTL UART and USB CDC UART. There's also binary USB protocol with same commands. I'm aware of commercial solutions like Lynxmotion or "32 Channel Servo motor USB UART Controller+wireless PS2 controller/ROBOT Arduino" you can find on eBay, and others.

It's that I already had all the pieces for this controller from my other projects (hardware, firmware, software), except for PWM part of the firmware, but that was easy to write.
And then I guess the builder in me just couldn't resist to put all that together, so I did it

Not planning to sell this as a product right now, I might sell few of the prototype boards if I don't need them, which might happen since I always order 10 pieces.

#### djsfantasi

Joined Apr 11, 2010
5,833
I understand your motivation! I'm sure it will come out excellent.

I posted the question, because I used the SSC-32 in building an animatronic, which in essence is what your are doing.

(BTW, the link I provided IS the Lynxmotion product. The company was sold to Robotshop, who now carries their products.)

#### nidalxbot

Joined Sep 4, 2014
6
Yes, Pololu also has nice rc servo controllers, I like the tiny ones.

Just to give you idea of how this thing started, take a look at this:

Boards are from one of my other projects, buttons, LCD, uSD connector and whole nine yards.

The bottom one, with LCD by its side, is what went into ABS box and out the door to the client. If there's enough space on the board, I always fan out any unused pins from controller and other ICs.

I had 4 of these left and the top one is acting as a platform for servo controller. I just soldered headers to pins I needed and then connected this monstrous thing to it:

After that it was matter of putting firmware together out of pieces I already had, and writing few dozen lines of code in Java to send commands and interpret responses.

Why buy off the shelf with these things laying around and just teasing you to put them together?

Next natural step: clean up everything, put it together on one board (well, maybe two) and send manufacturing package to the same guys who made the board I'm using right now.

Down the road, I'll be using this controller for some other project(s) and right then I could be saying to myself: "Why didn't I put xyz thingie on the board back then?" (happened more times than I care to remember).
So before that happens, I wanted some opinions and advice on what would you guys add to this, because, you know, two (or more) heads are always smarter than one, eh?

#### Sensacell

Joined Jun 19, 2012
2,511
Down the road, I'll be using this controller for some other project(s) and right then I could be saying to myself: "Why didn't I put xyz thingie on the board back then?" (happened more times than I care to remember).
So before that happens, I wanted some opinions and advice on what would you guys add to this, because, you know, two (or more) heads are always smarter than one, eh?
Sou you want me to ACTIVELY participate in "feature creep" ! I have seen too many projects die from this disease. Make it do one or two things really well, fight the urge to drown it in features.

#### nidalxbot

Joined Sep 4, 2014
6
Sou you want me to ACTIVELY participate in "feature creep" ! I have seen too many projects die from this disease. Make it do one or two things really well, fight the urge to drown it in features.
Loool, I honestly liked that comment Sensacell! Thanks for the heads up, I've also seen my share of feature creeps (and just creeps ) both in software and hardware development.

This is the thing:

I'm going to make 10 of these controllers. Price difference of ordering 1 or 10 of these prototypes is like 10%. So it will be 10. Been there, done that.

I will use 1, probably 2 (one is bound to be fried, I can tell), for this project and others will be left in a drawer for future projects. And they do get used, 80-90% of them. Been there, done that.

So, if I'm going to get 10 of these and shell out some $$for them, why not add 10-15% to the price and have 2,3 or 4 additional features that are worth more that that price increase, down the road? And while we are at it: add features that people with more or different experience find useful? Down the road, working with these servos and stuff, I will probably be somewhere where someone who says: "current measurement for servo would be nice" already was. So I will grab one of these boards thinking "I need to measure servo #4 and #5 current on this model", and guess what: board will have current measuring capability. Been there, done that. On the other hand, when, and if, I decide to make product out of this board, it will not have gazillion features on it. I will pick one set of features, clean it up, tighten all the nuts and bolts and sell it as a model A for appropriate amount of$$ to those who need those features.
Then pick another set of features, clean it up, tighten all the nuts and bolts and sell it as model B for appropriate amount of $$to others who need those other features. Been there, done that. Right now, I just want to make this dino for Halloween, throw in some of the toys from my workshop in the mix (like that board from other project) and get some advice from you guys on how can I make 110% out of my efforts. I'm already down 90%, so I posted this to get those 20% Thanks again for all the comments, I always do my best to learn something new. #### Sensacell Joined Jun 19, 2012 2,511 So, if I'm going to get 10 of these and shell out some$$ for them, why not add 10-15% to the price and have 2,3 or 4 additional features that are worth more that that price increase, down the road? And while we are at it: add features that people with more or different experience find useful?

Down the road, working with these servos and stuff, I will probably be somewhere where someone who says: "current measurement for servo would be nice" already was. So I will grab one of these boards thinking "I need to measure servo #4 and #5 current on this model", and guess what: board will have current measuring capability. Been there, done that.
You are going to have to guess at what these other features need to be, that's not the right way, just get it done and learn from the first round.
You will learn what other features you really NEED, not just expensive guesses. Make mistakes faster, go through the design loop faster, but don't guess at what it should be.

#### nidalxbot

Joined Sep 4, 2014
6
Thanks Sensacell, you are spot on and that is exactly why I'm asking others to share their experience instead of me guessing.
What have you found to be the most useful thing on a board (hardware) or function in a firmware or PC software you used, when it comes to controlling servos?

#### Sensacell

Joined Jun 19, 2012
2,511
Thanks Sensacell, you are spot on and that is exactly why I'm asking others to share their experience instead of me guessing.
What have you found to be the most useful thing on a board (hardware) or function in a firmware or PC software you used, when it comes to controlling servos?
Being able to turn them OFF completely for low power applications.
Open the ground connection (FET switch) set the PWM signal high.