Troubleshooting Phoenix Hexapod

Hi friends at RobotShop + Lynxmotion

I’ve assembled the Phoenix Hexapod and I’ve double-checked several times that connections are correct and match the manual provided here: http://www.lynxmotion.com/images/html/build99f.htm

However, I can’t seem to get the PS2 controller to pair with the BotBoarduino.
I’m not sure why they won’t pair as I’ve pressed the start button several times with little to no avail.

Something I’ve noticed in the BotBoarduino Manual is that there are no explanations for why those LEDs may blink continuously.
I’m unsure what D3, D4 and D6 actually indicate.

I’ve attached a photo of what my robot looks like while trying to get this up and running.

Thank you so much in advance for your help!

Also, I would love to help provide additional documentation for these artifacts I’m experiencing. It may be helpful in the future if anyone were to experience these problems

The SSC32U servo controller appears to have an extensive manual (which is perfect) of around 41 pages. While the BotBoarduino only has about 10 or so pages.

1 Like

Hi @itschriscates,

Welcome to the RobotShop community! :slight_smile:

You can quickly test if your hexapod is properly wired and powered by doing the following test:

  1. Download and install Lynxterm, a free diagnostic tool.
  2. Disconnect the TX/RX/GND from the BotBoarduino to the SSC-32U.
  3. Connect a USB cable from the SSC-32U to your PC (Windows required for Lynxterm).
  4. Secure the hexapod so it doesn’t move around while testing. I recommend using some small and rectangular to lift it off your working surface, like a small box (I’ve used paper tissue boxes before, for example).
  5. Power-up your hexapod. The SSC-32U’s blue PWR LED should turn on.
  6. Press the BAUD button once on the SSC-32U (near the A/B LED and the USB power). It should cause the two LED (A/B) to blink quickly indicating the baud rate (green=9600, green/red=38400, red=115200, none=other baud rate). Yours should be 38400 for use with the hexapod official example code.
  7. Start Lynxterm.Configure it to the right COM port and baud rate (see image below). Connect to the SSC-32U.
  8. In the black text box, type “VER” followed by the [return] key. You should get a reply with the firmware version.
  9. If #8 works, proceed to using the controls on the far right side to select a RC servomotor channel and move the pulse width up & down to see if the appropriate RC servomotor joint moves accordingly. You can test each servomotor like this to ensure everything is where it is supposed to be.
  10. Once done, close Lynxterm, remove power from hexapod, unplug USB and reconnect the BotBoarduino to the SSC-32U.

If you have problems at any of those steps please let us know the details in your next reply! :slight_smile:

From your picture it seems the receiver is lighted up (normal). How does your PS2 controller look? Any LED lighting up?
Please try a “hard power cycle” (remove batteries fully while switch is off). Then power the robot followed by replacing batteries and powering the controller again. What does the LED on it do then?

They are just general purpose LED. The software running on them dictates what they represent. In this case, these are determined by what the hexapod example software is doing.

Indeed! Lets start by resolving your issues and then we can see how the information gathered can be tested and generalized to a wider audience! :smiley:

The BotBoarduino itself is simply a clone of the Arduino Duemilanove with extra hardware to make it easier to use in robots! If there is any information that is specific to the BotBoarduino (and not hexapods) that you think is missing in its manual, please let us know and we’ll be glad to improve the documentation!

Sincerely,

1 Like

Hey, @scharette thank you so much for the quick reply!

Unfortunately, when I try to check the firmware version. I am unable to get an output.

Furthermore… I did update the firmware via the SSC32 Servo Sequencer web application a week ago. However, when I try to update it via LynxTerm it will not let me. Let me know how to resolve this!

Thanks again!
Also PS, I do want to make a guide for this hardware.

Something along the lines of this: https://www.youtube.com/watch?v=N2UOCccnewE
I believe these types of assembly guides are best in class. And I do want to give back to the community with a RPi port + web app controllable robot too! :slight_smile:

Edit: Okay… I think I may have done something bad. I tried updating the firmware again (via LynxTerm) by clicking “Begin Update” and now the blue LED is not lighting anymore.

Okay, I’m doubtful I botched the hardware with my shenanigans.
However, It’s asking me to use the “Jumper Method”.

Will update once that’s done.

Edit: Okay… The firmware will start writing… And then it will give this error…
I have no way of adding Baud Jumpers to the SSC32U… Or at least I don’t know how to do such a thing.

Okay I’m very confused here.
Why does my firmware version say: SSC32-V2.50USB

Edit:

Okay… I am able to get the version outputted in Lynx Term but it says SSC32 V2.50.
I believe I want 2.03 XE for the Hexapod, correct?

I’m going to take a break from this.
Looking forward to hearing from you later today!

Well… hmm… where to start… None of my instructions said to try to update the firmware, so lets start with that! :smiley:

It seems in your latest post you were able to finally get an output from the SSC-32U. Please note that there has been no update on the SSC-32U firmware for a long time and the latest firmware is already installed on the product you received.
Furthermore, the other firmware files are for the SSC-32, not the SSC-32U and therefore not compatible. If your SSC-32U currently still works I’d consider you lucky since there’s a chance you did wreck things.

I’ll take it you are now all the way down to step #8 (working)? Please proceed with step 9 and see if it works, too.

Hahaha yes, attempting to update the firmware was not a good idea.

The real reason why I was so confused was that my battery ran out of batteries very quickly.
And it caused me to panic and do all sorts of silly things without even thinking about the battery being the problem.

Everything is lighting correctly now.

Right now I just have a 9V Battery hooked up to the board.
I do have a NiMh recharger and a better battery (10,000mAh) coming in (ordered from RobotShop).

I will try to figure out how to get decent mAh as 6V to the board later.

Sorry about all of this.
Entirely my fault (neglecting the battery and all).

1 Like

Okay all those steps worked.
Was able to move the servos around no problem.

My gosh… Sorry about all of this.

So now the only thing blocking the issue are the batteries.

The good news is I have a battery charger and battery (10,000mAh) coming in from RobotShop next week Monday.
The bad news is that the battery I bought off Amazon does not have nearly enough juice. I have no way to recharge it.

So we will have to continue this conversation next week.
Hopefully it’s all smooth sailing.

If it’s smooth sailing. I will disassemble and then reassemble the hardware to make an interactive guide on YouTube!
This conversation has been very useful and a lot of things discussed here should be added as some sort of “considerations” when assembling and creating the project.

Thank you (again) for your patience with me!

Edit… Actually I do have plugs…
Let me see if I can get it working with a plug instead.

1 Like

Indeed… :wink:

In robotics, that can easily lead to broken hardware and long delays. If you ever feel panic again, I recommend going to a different room and taking a few deep breaths and think about the situation and its components, always starting from the lower level stuff first. A good example of this is network administrator training using the OSI model:


Whenever an unknown issue shows up, you (should :slight_smile: ) always start the diagnostic at level 1 and work up and you confirm things are good.
In your case, firmware updates are kinda like starting at level 9-10 right away! :smiley:

I’m glad your device refused to cooperate. These SSC-32U are really well built, so bricking them normally requires a lot of effort! :smiley:

Is the 9 V battery connected to VS1? If so, be quite careful since all of the RC servomotors in that kit are meant for a nominal voltage of 6 V DC, not 9 V. It is very possible totally certain you can damage servomotors by running them at higher voltages that they are rated for (typically 6 V DC, some will support 5 V and 7.2 V or even 7.4 V… usually not 9 V though that’s too high).

Good!

No problem, it happens.

Usually we recommend some NiMH 6 V DC 2000 or 3000 mAh. Those typically offer about 15-30 minutes of use, typically around 20 mins. More than that is usually too long for the RC servomotors anyway since they are in plastic housings and require cool down periods. Six of those RC servomotors definitely need a break since they are working 100% of the time the hexapod is standing or walking.

All good. Looking forward to it! :slight_smile:
Once you have some videos up on YouTube, feel free to create a blog article to introduce and link to them here.

Might be difficult to get enough current. Our robotic arms (with only 5 motors) have a requirements of at least 3 A 6 V DC supply. Most wall warts and such that have those ratings actually fail in voltage (it drops) well before 3 A is provided.

The other consideration (aside from having 18 servos instead of 5) is that the code was developed with battery use in mind and therefore may try and move up-to 18 servos all at once. This is something that will create a large spike in current demand which most adapters cannot provide. You’d probably need a high power AC-DC adapter (like the ones you see in labs). The one I use at work can provide a stable 10 A 6 V DC without dropping and that worked ok for tests.

If it doesn’t work well enough, what I could recommend is that you unplug all but one leg so you can still do some tests while having enough power from a standard AC-DC converter (like a 6 V DC wall wart).

1 Like

In robotics, that can easily lead to broken hardware and long delays. If you ever feel panic again, I recommend going to a different room and taking a few deep breaths and think about the situation and its components, always starting from the lower level stuff first. A good example of this is network administrator training using the OSI model

Yes! Robotics I need to be much more careful compared to software. If say, I was building a web app. It doesn’t really matter if the web app is messed up in a local environment. It only matters if it’s messed up on the production servers… So much different approach. I should definitely look into the OSI model just given my background in software!

Is the 9 V battery connected to VS1? If so, be quite careful since all of the RC servomotors in that kit are meant for a nominal voltage of 6 V DC, not 9 V. It is very possible totally certain you can damage servomotors by running them at higher voltages than they are rated for (typically 6 V DC, some will support 5 V and 7.2 V or even 7.4 V… usually not 9 V though that’s too high).

I am actually using a 6v battery for the VS… The thing is it’s those low amp 1.5v AA batteries so they don’t provide enough juice to get all 18 servos up and running. The 9v battery I was using was just for debugging purposes and to make sure I didn’t brick the microcontroller.

Usually we recommend some NiMH 6 V DC 2000 or 3000 mAh. Those typically offer about 15-30 minutes of use, typically around 20 mins. More than that is usually too long for the RC servomotors anyway since they are in plastic housings and require cool down periods. Six of those RC servomotors definitely need a break since they are working 100% of the time the hexapod is standing or walking.

Absolutely, the reason why I want more juice is because I’ll be actively debugging the project while using the battery. I do not have a NiMH battery charger (coming this Monday I believe).


Anywho, I was able to get everything working! I was able to confirm that the SSC32U worked.
I also reuploaded the Arduino sketch just in case.

When I reuploaded the sketch (and did it hard reset for both the controller and hexapod). I still get the same result as original.
I set the baud rate to the red LED which is 38400.

The PS2 controller both the green and red LED will blink continuously on and off. Which I assume means it’s trying to pair.
I recharged both batteries and they should be full and should be able to receive the PS2…

I’ve also created a video to show what I’m doing:

Excuse my rambling in the video.
Hopefully I can get the PS2 controller to pair before Monday when the batteries come in! :slight_smile:

(Tracking ID here from RobotShop invoicing system XD: https://www.canadapost.ca/trackweb/en#/search?searchFor=7146410362053369)

Also, if you have any suggestions for reading and… well… general education on robotics let me know! I’ll be looking into OSI and various best practices when debugging electronics. The end goal is to get a manufacturing pipeline started for agriculture robots as well as construction robots. So I’m here for the long run :slight_smile:

1 Like

Yes, it is definitely a different approach then pure software (with no impact on real life, such as a dev server & web app)!
I honed my programming skills on a C64 and in DOS environments, where peeking and poking in RAM wrong could easily just flat out crash or restart the OS :stuck_out_tongue: Maybe that makes you more careful? :smiley:
(And yes, I did crash my OS many, many times regardless :stuck_out_tongue: )

Sounds good.

Yeah, that 10 Ah battery is quite the beast!

Glad to hear.

Hmm, maybe try the following:

  1. Turn off power for the robot/electronics.
  2. Disconnect all PS2 wires except for VCC and GND.
  3. Make sure the BotBoarduino port used is set to 5 V DC (and not VS!)
  4. Power on everything again and see if the pairing works now.

If not, you may have a faulty controller or receiver. Let me know quick and we may be able to send a replacement out today.

Sincerely,

Yes, it is definitely a different approach then pure software (with no impact on real life, such as a dev server & web app)!
I honed my programming skills on a C64 and in DOS environments, where peeking and poking in RAM wrong could easily just flat out crash or restart the OS :stuck_out_tongue: Maybe that makes you more careful? :smiley:
(And yes, I did crash my OS many, many times regardless :stuck_out_tongue: )

Absolutely man! I live in a post-DOS era. Everything is Linux based. Even Windows! I was in high school when Windows coding required DOS. I still know basic DOS commands. But generally, I run everything on Linux + Docker.

Hmm, maybe try the following:

I have two videos. One tries to operate the PS2 controller with the “USB” jumper enabled. This is just testing the project directly connected to my computer.

The other video tries to operate the PS2 controller with the “EXT” jumper enabled. This is just testing if it works with the 6v battery.

I did this for good measure just in case the 6v battery pack was not drawing enough power to pair with the PS2 controller.

1 Like

Seems like a dead controller. Will create a support ticket for replacement.

1 Like

This topic was transferred to internal RobotShop Support.

1 Like