Phoenix hexapod kit - servos don't move

I admit that I am a bit of a noob. But, I purchased and assembled thebotboarduinophoenix kit: robotshop.com/en/lynxmotion … duino.html, as well as the lynxmotion ps2 controller, recommended battery pack, and uploaded the program as described.

Unfortunately, I can’t seem to get the legs to move.

I’ve gone over the diagrams, and believe everything is set up as described. The controller didn’t seem to work, but I did find that if i swapped the dat and att connection for the controller (which i had read somewhere as needing to be done sometimes - mystery), it appears to get the controller connecting and sending data, as when I hold down the start button, the speaker makes a powering up sound. pressing other buttons also makes the speaker chirp. I see the ssc-32 light up and flash as i’m using the controller, which looks like it is receiving ‘something’ at least. but the rotors do not move.

I’ve tried disabling cSSC_BINARYMODE, which seems to make no difference.

I’ve tried using LynxTerm to rotate them, but it tells me the ssc32 cannot be found , and has no effect. I’ve tried connecting to lynxterm using the botboarduino usb, as well as with a usb-serial cable. same results, they both say they can’t find the ssc32.
I did get the Servo sequencer to ‘say’ it was connected (found). set it to 115200 and adjusted the pins accordingly. but it didn’t get anything moving.

the only time the servos ever moved for me, was when power was turned off or on. i might get a twitch out of them, but that’s all they ever do.

I’ve attached a picture of my connections, does anyone have any ideas on what might be going on? I’ve run out of ideas, and feel i have tried all the suggestions found elsewhere in this forum with other users with similar issues. (i just have one generic servo plugged in currently while trying to test the connection)

[font=Helvetica Neue, Helvetica, Arial, sans-serif][/font]

Hi,

Please find below answers to your questions/comments:

That’s completely fine. We all start somewhere! That being said, just know this is not the simplest project to get started with. :wink: No matter, we’ll get it in working order shortly!

Very good.

We’ll get to that, but first we’ll have to resolve any connection issues and test out your setup to ensure it can work with direct control, such as with using Lynxterm.

All of your wiring seems good when compared to the settings found in the default code. The baud rate for the SSC-32 has to be 38400.

At some point a few years ago, we realized that the GitHub had multiple version of the 3 DoF hexapod code that was committed to it over the years. Many of those versions have different pin configs. Therefore, we normalized everything to the configuration linked above. Unfortunately, it is possible we missed some mentions of one of the alternative pinouts (typically DAT & ATT(SEL) swapped, pins 8 and 6). The correct order involves DAT=8 and CLK = 9 as seen in the config file.

That is very good. It would seem like you have a proper connection between the BotBoarduino and the PS2 receiver/controller. Now all that is left is ensuring the BotBoarduino and SSC-32 can communicate. Please do not forget the proper baud rate is 38400 for the SSC-32 with the default settings, as seen here.

Most of the older support threads that discuss modifying code or settings can be safely ignored in most cases. No changes should be required to work with the current code.

There are two possible issues here:

  1. If trying to use the BotBoarduino (running the default Phoenix code) as a passthrough, you have to tell it to become one first! While in Lynxterm and with the robot powered off, click SETUP to choose the right COM port and 57600 baud rate (the Pheonix code debug rate). Then, CONNECT to the board in Lynxterm. Then, power the robot. You should see text appear in the black text box in Lynxterm, some including information about how to enter SSC-32 passthrough mode.

If the BotBoarduino is already powered up when you connect to it with Lynxterm (@ 57600 baud rate), you will see something like this:


Simply press the RESET button near the screw terminals to get the following prompt:

If you connected with Lynxterm and then powered the robot, you may get this instead:

In each case, you can use the “S” command in the black text box to enter SSC-32 Forwarder mode. Simply click in the black text box (to give focus) and press the “S” key once. Wait a few seconds for the board to respond. You should get something like this:

You can now use the rest of the Lynxterm controls as normal. Try and move the servomotor directly. In your case, that would mean changing channel to 16 (upper-right corner) and then using the vertical slider on the right to change the motor’s position. Lets us know in your reply if it moves.

  1. If connecting to the SSC-32 directly using a RS232<->USB adapter, you will need to replace the jumpers on TX/RX that your removed to connect it to the BotBoarduino. Without those jumpers, the DE-9 connector is completely disconnected from the electronics (can only use one of the interfaces at a time). Therefore, after replacing those jumpers and choosing the proper COM port and baud rate you should be able to connect to the SSC-32 directly. Of course, you need to power on the robot, too.

See point #2 above concerning connection issues with the SSC-32 and the TX/RX jumpers.

This is typical of RC servomotors and really depends on how they are implemented. Some twitch at power-up, some at power-down, some at both and some at neither.

See above, everything seems good.

So, to summarize a proper setup quickly:
SSC-32 baud rate: 38400
PS2 pins: ATT(SEL)/CMD/DAT/CLK = 6/7/8/9
TX/RX jumpers must be in place to use the DE-9 connector
The BotBoarduino uses baud rate 57600 for debug and SSC-32 forwarder mode. Trigger by sending a “S” command.

The Phoenix code to use is here. The Arduino-PS2X library to use is here.

We hope this helps and await your reply to further help you.

Sincerely,

Thank you so much for all this great information! I was able to get LynxTerm to connect as described above (setting the LynxTerm baud rate to 57600, botboardruino to 38400 via the proper jumper ). I activated SSC Forwarder mode by typing ‘s’ in the terminal, and changed the channel to one of the servos. This all went smoothly, and i no longer get the error of not finding the ssc2.

I checked and double checked everything up until the point where I should be able to manually move a servo by selecting its channel (as you described above), and none of them move. I even went back and redid the code again from the specific links you provided in the response.

While adjusting the slider, LynxTerm does spit out several lines such as:

Serial Cmd Line:82s10!!!
Serial Cmd Line:00!!!
Serial Cmd Line:#7p11!!!
…etc

My battery pack is charged. I verified this by replace the VL=vs1 jumper to use the pack to power the boards rather than the 9v. everything lit up fine.

I did notice that even powered up, the servos are easy to hand spin, which is different than when i was playing with a photon, when it had power the servos were hard to manually turn as they were in their assigned rotation. I’m not sure if that means anything with this controller, but thought i’d mention it.

Hey,

Well, that’s some great news!

This is unusual if everything is wired/setup proper and most likely indicates a wiring or connection issue on your setup.

Just to be on the safe side, if you use VS=VL (jumper in place), you should have the following wiring:

BotBoarduino:

]Power jumper is set to EXT (not USB)/:m]
]VS=VL is in place/:m]

SSC-32:

]VS1=VS2 are both in place/:m]
]VS=VL is in place/:m]

Both devices should have their VL +/- joined together. They should also have the pins 13/12 connected to TX/RX respectively and a common GND.

Please also note that when not testing / actual use with multiple servomotors, do not use the VS=VL jumper and have a separate power source (6-9 V DC recommended) for the VL of the two boards. This is mainly due to the fact that the SSC-32 does not have any brownout protection and therefore any sudden large power draw (such as multiple servomotors moving at once) can lower the voltage level enough temporarily to make the SSC-32 restart. The SSC-32U RB-Lyn-850] corrects that issue and many others).

This simply means that your RC servomotors are not receiving a signal. In that case, they typically default to being unpowered and therefore easy to move.

The best option at this point would be to do the following:

]Remove all servomotors from the SSC-32 except one/:m]
]Disconnect the SSC-32 from the BotBoarduino (both the VL +/- connections and the TX/RN/GND connections)/:m]
]Replace the TX/RX jumpers in place/:m]
]Leave the VS1=VS2 jumpers and VS=VL jumper in place/:m]
]Connect a proper 6 V DC power source to VS1 or VS1 (only one of them, not both!)/:m]
]Connect your RS-232 (DE-9) to USB adapter to the port on the SSC-32/:m]
]Connect the USB<>RS-232 adapter to your computer/:m]
]** Take one or more pictures of this setup showing clearly all components *** Attach those to your reply/*:m]
]Start Lynxterm and connect to the SSC-32/:m]
]In the black text box, type “VER” followed by [enter]; the SSC-32 should answer with its firmware version (something similar to “SSC32-V2.03XE”)./:m]
]Press the Reg. button and in that new window click Read. You should be able to see all the settings. Please take a screenshot (ALT+PrintScreen) of those and post them in your reply, too./:m]

Please follow the steps above and let us know if you have any issues and if so, at which step (do not proceed if there are any issues).

Sincerely,

when I turn on power to the SSC-32, The green light on the boad lights up, and I get a little gibberish character in Lynxterm.

As soon as I hit a character, or move the slider, the green light goes out. Moving the slider, the green light flashes like the board is receiving data

Typing VER does nothing. And clicking Reg. returns the "cannot find SSC-32 error.


Hey,

Thanks for the tests.

One note: In your test, it seems you do not have a VL power source (typically a 9 V DC battery) and have the VS=VL jumper in place. Could you try the same thing but with the VS=VL jumper removed and a 9 V battery in place on VL?

Also, we’ve had many customers have issues with various USB<>RS-232 converters in the past just simply not working or being intermittent.
Have you tested this / have it work before with other devices?

Our next test will be simple. With the SSC-32 not powered, connect to it the BotBoarduino (TX/RX/GND and the VL<>VL +/- connections). Set the BotBoarduino to VS=VL and EXT power.
Connect it by USB and connect to it in Lynxterm (baud rate 57600). Then, power up the SSC-32/BotBoarduino (recommended to have a separate VL & VS power sources).

Then once the BotBoarduino responds in the black text box press “S” to go in forwarded mode. Once forwarded mode is confirmed, type “VER” followed by [return] and see if it responds in that setup.

Sincerely,

P.-S.: The green LED on the SSC-32 is on at power-up. It then turns off once it receives serial communication and flashes in relation to communications.

[font=Arial][size=2][highlight=#ffffff]

[/highlight][/size][/font]
[font=Arial][size=2][highlight=#ffffff]Yes, i did try it with a single 6V power source, as well as both the 6 and 9. (jumper removed). Same results either way.[/highlight][/size][/font]
[font=Arial][size=2][highlight=#ffffff]
[/highlight][/size][/font]
[font=Arial][size=2][highlight=#ffffff]

Unfortunately, i have no other serial devices to verify it with these days. It is a nice quality GM-FTDI-LED USB -> RS-232 converter. (I think around $30)

With the final setup listed (plugged back in to the botboarduino, separate power sources and set pins) I again was able to connect to the board, and VER did return a version of SSC3 3/4 EV2.04GP

the servo though, did not move when tested.

Untitled-1.jpg[/highlight][/size][/font]

Thanks for going through with the extra tests / providing more info.

What this result shows us is that it seems like your USB<>RS-232 converter is either not working or not working with the SSC-32 specifically.

If you press the All=1500 button does the servomotor go to a position / hold it? What is you try in the black text box: #7P1500 [return]? (assuming the servomotor is on channel 7).

Also, if possible, please try the two steps above (All=1500 and #?P1500 [return] ) on each channel group. For example, try on channel 7, 15, 23, 31. It is possible sometimes that a SSC-32’s driver chip (1x8 channel, 4 chips total) or two get damaged but others are working.

Please let us know how that goes and from there we’ll have a solution for you whichever the result (different method, connection, replacement, etc).

Sincerely,

[size=2][font=Arial]Ok, Thanks for all the help and patience. I plugged it all in again going through the botboardruino as before . using the 6V for the rotors and 9V for the boards (removing the VL=VS1 pin)

[highlight=#fbfbfb] button does the servomotor go to a position[/highlight][/font][size=2][font=Arial][/size] [highlight=#fbfbfb]no sevos move, but the light flashes[/highlight][/font][/size]
[highlight=#fbfbfb][size=2][font=Arial][/font][/size][/highlight]
[size=2][font=Arial]

[highlight=#fbfbfb][size=2][font=Arial]hold it?[/font][/size][/highlight]
[size=2][font=Arial][/size] [highlight=#fbfbfb]no servo holds position (easy to manually turn)[/highlight][/font][/size]
[highlight=#fbfbfb][size=2][font=Arial][/font][/size][/highlight]
[size=2][font=Arial]

[highlight=#fbfbfb] [return]? (assuming the servomotor is on channel 7).[/highlight]
[/font]
[size=2][font=Arial][/size] green light flashes once, and nothing else happens

[highlight=#fbfbfb] and [/highlight][highlight=#fbfbfb]#?P1500[/highlight][highlight=#fbfbfb] [return] ) on each channel group. For example, try on channel 7, 15, 23, 31. It is possible sometimes that a SSC-32’s driver chip (1x8 channel, 4 chips total) or two get damaged but others are working.[/highlight]
Still no movement. I tried all of them (changing channel to 7,15,23,31 - with servos attached and hitting All=0 and ALL=1500), as well as typing in #7P1500, #15P1500, etc…) . hitting enter just flashes the light once, and nothing moves, nothing is returned in the black text box.[/font][/size]
[size=2][font=Arial][/font][/size]
[size=2][font=Arial]Typing VER returns the version number. I can get into Reg. without errors, so it appears to be connected and receiving data. but none of the servos want to move for me.[/font][/size]

Hi,

Thank you again for all the doing all the tests and provided very useful information.

It does seem like the board is defective. You should have received a message from us through our support center concerning the replacement of the board.

Sincerely,