Setting Servo Numbers

Hi there!
I have two Pololu micro serial servo controllers, and I want to set one of them to 1 and the other to 2.

I have both of them working off of the Arduino perfectly, but I need the different servo numbers. The manual is really confusing… am I doing the right thing?

          Serial.print(0x80,BYTE);
          Serial.print(0x02,BYTE);
          Serial.print(0x00-0x10,BYTE);

When that sequence gets sent to one of the Pololus, it turns off and I have to reset it. Why does it do this and how do I set the different numbers?

Best,
RobotGrrl

Hello,

I don’t know what your print function is doing, but what you have doesn’t make sense. You need to send three bytes total, and the third byte would be 0 for one of the servo controllers and 1 for the other one. The 0x00-0x10 you have is probably getting evaluated by your compiler, which would result in sending something like 240 (decimal).

- Jan

Funny you mention that, but the third line I got from the manual.
Guess it’s not too clear eh! :laughing:

Thanks for the reply. I’ll try it tomorrow.

Maybe you guys should think about making the manual more clear, for beginners. :wink:

Best,
RobotGrrl

AAah! I see where this confusion is coming from. The part of the micro serial servo controller manual that says “new setting, 0x00-0x10” means send any one byte, with a value between 0x00 (0 in hexadecimal) and 0x10 (16 expressed in hexadecimal). The ‘-’ isn’t meant to be copied in your code, it’s being used to mean “through”, as in send any one byte, with a value of 0 through 16. Which byte value you send depends on what servo numbers you want your controller to respond to.

So, for example, if you wanted to set the a servo controller to the default servo numbers (0-7 in Pololu mode, 0-15 in Mini SSC II mode) you would use do this:

Serial.print(0x80,BYTE);
Serial.print(0x02,BYTE);
Serial.print(0x00,BYTE);

To set one of your servo controllers to the next set of servo numbers (8-15 in Pololu mode, 16-31 in Mini SSC II mode) you would do this:

Serial.print(0x80,BYTE);
Serial.print(0x02,BYTE);
Serial.print(0x01,BYTE);

Remember, you should have only one of the controllers plugged in when you do this (so you don’t reprogram both at once) and is has to be in Pololu mode, with the blue mode selection jumper removed. If the new servo numbers setting is stored correctly, you will see the green LED flash out the new servo number setting plus 1. So if you send the byte series {0x80,0x02,0x01} you should see the green LED flash twice. You will need to reset your servo controller after programming the servo numbers setting, but the setting is saved forever, so you only need to change it once.

I hope that all makes sense now. So, what are you planning on doing with 16 servos and an Arduino?

-Adam

The only place I see “0x00-0x10” in our manual is in a diagram right under the following paragraph:

Can you suggest a way to make this clearer?

- Jan

Thanks a bunch nexis! It worked!
I am planning on transplanting the ‘brains’ of my MANOI from the board it is using now, to Arduino (as the controller) and Processing (for the GUI). I can also hook up more sensors this way - and encode probabilities and algorithms for AI!
Unfortunately though, one blew up today due to my mistake. I might buy two more again… or I may just buy the Lynxmotion one. :stuck_out_tongue: All about the thrills and joys of trying different stuff!


Yeah jan, I can!

There was only two parts that confused me,

  1. We were just reading about hex - how did ‘real’ numbers get here?
  2. Where did the square brackets and commas come from?
  3. Are we just supposed to send numbers, and not bytes now?

…and the part in the rectangle (last section)

  1. Is this a string… byte… or some super data type that we haven’t heard of?
  2. The ‘-’ was not clear to me, at all…

Maybe the solution would be to show examples of what would be sent. See, I figured the rectangle was an example, hence my confusion. I think that would fix it! :slight_smile:

Hope that helps,
RobotGrrl

Are you saying one of the servo controllers blew up? If so, how?

- Jan

I reversed the 5V and Gnd :frowning:
The breadboard made my eyes go crazy :’(

It was really fun though while it lasted :slight_smile:
RobotGrrl