sCC32u won't hold calibration

Hi Guys,

long story short, but i have a pheonix hexapod and am trying to get the thing up and running.

The SCC-32u module is connected to a botboarduino - i see happy lights blinking.

So i connect the sequencer to the SCC32u over the USB.
I have tried to calibrate it a number of times and after a power cycle, it seems to lose its mind and i have already broken 1 servo in this endeavor.

To initially calibrate, i connected each leg at a time to the controller and set the 3 axis to 1500 and manually adjusted screws and joints to form the appropriate position given in the documentation.

I even set registers 64 to 95 all to default to 1500 - they all read something else like 65535…

How do i get the calibration to stick?

Thanks!

Hi,

First, if you are changing each channel manually one by one, we strongly suggest that you instead use our free diagnostic tool, Lynxterm, to do this step. It will prevent errors in entering the values in binary format properly.

Second, you should probably connect all the servos at once and use Lynxterm’s All=1500 button. From there, you can go in the Reg button and change the settings. Also, note that you will have to activate the Initial pulse offset feature, too, in the top right corner.

Please see the attached image for details. To do this, you would need to connect directly to the SSC-32U by USB, making sure to remove the TTL UART connection between the BotBoarduino and the SSC-32U or it will interfere.

The regular hexapod firmware for the BotBoarduino also has a forwarded mode that can be used instead. In this case, connect by USB and Lynxterm to the BotBoarduino, not the SSC-32U and leave the two connected together.
See the 2nd attached image about that.

Sincerely,

Hi

So i used the lynxterm tool and it appears that my endeavor with the registers worked as the “READ” came back with all servos at 1500.

I went thru the process of setting the offsets and issued a “WRITE”. When i issued a “READ” all the values looked right.

I then powered the robot down and powered it up again.

Upon power up the legs went to random locations.

When i started lynxterm and reconnected, i issued a “READ” and the servo settings appeared to be correct,

When i issued the “all=1500” command, the servos went to the correct positions.

So again - it appears that when the robot powers up, it does not send the servos to their default positions and or it appears that something is interfering with them.

I will play around for a little more…

There is a startup string reference… should something be put there?

Hi,

Make sure that you checked Global (#4) and Initial pulse offset (#5).

If you want the SSC-32U to initialize the servomotors at a specific position, also check Initial pulse width to give all channels a starting pulse value.

The Startup string is often used as an alternative to activating the Initial pulse width (this forces a position to all channels). You can place in there any command that would be valid to send by the serial interface.

Sincerely,

Ok… now it seems to come out of power - freak out for about half a second then go to the default values.

I have to ask another question as well…

I am using tower pro MG996-R servos…
What is a better alternative to those that will fit the same mountings?

Thanks again … i am finally getting this beast running!

While i have you…

I see a sequencer… is there an 18 dof sequencer?

Or how can i use the bot boarduino to run the robot if i don’t have the PS2 control?
Can i run some terminal commands … i haven’t looked over the code yet.

Thanks!

Sorry - still in the middle of it…
I am using forwarding mode, but it looks like the baud rate is only working at 56K baud or 57.6kbaud. I thought it would work at 115200… is that a setup on the SCC32u?
How do i tell what speed that port is setup for on the SCC32u?

Thanks!

The Lynxmotion Phoenix 3 DoF uses the HS-645MG Servo Motor. You could use those.

What sequencer are you referring to? Please provide a link.

You could use the BotBoarduino directly, but you would have to modify the Phoenix code, which is quite an endeavor do to its high complexity. That being said, it is probably possible to add stuff to it for some basic autonomous behaviors. You could also just drop the Phoenix kid altogether and make your own autonomous control/gait software for your hexapod (great learning opportunity, too!).

The Phoenix software sends serial ASCII commands from the BotBoarduino over to the SSC-32U following the protocol defined here (pages 24-26).

The baud rate for the BotBoarduino <> SSC-32U connection (over TTL UART connection) is 38400 baud rate. The connection from a terminal by USB to the BotBoarduino is not related and is a different baud rate (the SSC forwarded code uses the DBGSerial port/object).

Sincerely,

So seeing 57.6kbaud with the USB to botboarduino is correct.

Thanks - just need to get into the code now…

There is a sequencer in the lynxterm as well as the SCC-32 servo sequencer… Not a problem…
I am doing research now using this platform for numerous opportunities.
Randall Beers wrote a book a number of years ago on Adaptive behavior - really good!
amazon.com/Intelligence-Ada … 0120847302

I am attempting to make a fusion of IK and neural networks as described in his book.
So far i have a bad feeling about the cheap servos…

Thanks again!