Help Please! My Phoenix Hexapod No Longer Working - Everything Lights Up but DOA - Request Advice

First, I hope that you all are in good health and that the Corona Virus has not affected your health or the health of your loved ones. All else is just a matter of inconvenience.

Now for my insignificant issue (in comparison). I’m at a complete loss and have tried every basic troubleshooting method I know and now ask for assistance.

My recently built Phoenix Hexapod was operating fine until the RobotShop V4 PS2 Rx Module (the portion that attaches to the Rx PCB broke completely and cleanly off. The flimsy connection of the Black Rx Module Connector which is soldered into the Rx PCB via pins that are very weak had been a concern of mine during the build but I was surprised at just how quickly it failed. Obviously, this Rx configuration was designed to rely on the structural integrity of the PS2 counsel 's case and was not designed to be “out in the open” without support.

I carefully removed the broken pins from the PCB, soldered new 90-degree header pins (alternate pin spacing required when replacing and soldering individual pins) and then added 18 gauge bare copper wire into the large holes of the corresponding module pin tubes to add reinforcement and to protect the module from breaking in the future. All solder joints are clean and tested fine for continuity and shorts.

I replaced the module and powered the Bot and everything lights up, the controller LEDs shows that it is RF connecting and the Rx module LED stays on steady. However, when I push the START Button nothing happens. The only other thing that I noticed was that the Green LED on the BotBoardurino PCB that is in the middle of the 3 SMUT LED row (Red/Green/Yellow) LEDs does not light up. Hopefully someone here knows what this symptom may indicate. This Green LED does light when I press the “B” Button (on the same PCB, so it does work) but remains OFF even when the Rx Module is detached. Checking #5 on Pg. 2 of the BotBoarduino Manual identifies the 3 LEDs and that they can be used for signal identification purposes but has no information regarding the situation that I’m encountering.

I have checked and rechecked each jumper lead for correct PCB Board attachment and continuity between the BotBoarduino the SSC-32U and the PS2 Rx module. All connections seem to be in the correct pin placement and each lead checks out for continuity right to its corresponding PCB solder pad (no unwanted solder “spillover” and no shorts found). Everything seems to be as it was when the Bot was working just hours ago.

I did try isolating the issue by removing the BotBoarduino and PS2 Rx connections and hooking the SSC-32U up to LynxTerm. The BotBoarduino is recognized, the Baud is 38400 (I thought that I may have had inadvertently pushed the Baud Button while working on the repair) and all the servos snap to attention when I select ALL 1500. The 6V NIMH 2800mAh battery being used is also fully charged.

I have not touched the code and all worked perfectly yesterday until the PS2 Rx Module came off (Bot was not Powered at the time so I can’t see that there was a short or other live circuit error). Again, that Green LED does not light regardless if the Rx Module is attached or not and seems to be the only visual change.

I am experienced in electronics, thorough, methodical and careful when building and repairing (but realize that I’m also very human). I really don’t have a clue what now to look for or how to proceed from here and hopefully I have provided sufficient information for suggestions.

I would greatly appreciate any assistance and/or recommendations for a path to take. Hopefully, it’s an embarrassingly simple issue.

Thank you all in advance.

Tobar8th

Yeah, well said. We’re doing well and doing our best to limit new cases! :wink:

We’ll do our best to help you figure out what happen with your robot.

It is unfortunate that the received broke off the PCB. The solder points & pins, as you mentioned, cannot hold much weight and shouldn’t be used to hold up the receiver/PCB. I’m glad you were able to re-solder it yourself! Quick fix that is simple, but still quite helpful. From your description of trying it afterwards it seems the receiver powers-up normally and syncs with the PS2 controller as expected.

From your observations about the green LED and the info int he BotBoarduino manual on point 5, it seems likely that pin 8 got damaged.
See this info from the manual:

As you probably already know, the pin 8 of the BotBoarduino (by default) is set to be the DAT line of the PS2 (see repo, Hex_CFG.h, line 72-79). If pin 8 did get damaged then you would have a hard time trying to read data from the PS2 receiver.

This would be the very first thing I would recommend as a test. Well, at least we know that:

  1. The SSC-32U is functional, has the right baud rate and can communicate positions to the servos.
  2. Your power source is functional.
  3. Finally, your RC servomotors seem functional, too.

This leaves us with the strong suspicion that the BotBoarduino pin 8 is damaged / not functioning properly. I’d recommend changing the PS2 receiver connection to other pins, maybe 2,3,4,10? Don’t forget to change the definitions in your Hex_Cfg.h to match where you connect things and recompile & reupload your code to the BotBoarduino.
Also, make sure the power-pins for those are set to 5V and not VS(BotBoarduino manual, #7)!

Sincerely,

Hi Scharette!

Thank you for the quick response. I was hoping that I covered all of the basics before shooting off a flare.

By “damaged” do you mean physically (i.e. a bad solder joint) or somehow electrically compromised?

Also, I made absolutely no changes to physical board settings (i.e. jumpers, etc.).

And, to make sure that we’re referring to the same pin, please see the PCB illustration with my interpretation of pin 8 circled in red for verification There are 3 pins in row 8 and the outermost to the LEFT is circled. Also at the “top” of the board are also pins 2, 3, 4 & 10 besides the same number pins in close proximity to the pin 8 which is circled.

I have much greater confidence in my soldering and mechanical capabilities than my software knowledge (even if it is only altering a line of code) and, if possible, would rather address pin 8 by re-soldering. However, if I need to alter the sketch to designate a new dat pin I would definitely need a bit more direction. For one thing (in the physical world) would this also mean that I would then have to segregate the yellow dat lead from the 3 pin plug in order to attach it to another pin (2, 3, 4 or 10)?

I have limited means but would consider replacing the BotBoarduino (which would be my 3rd!) in light of the Bot’s total investment. I originally bought this kit in 6 separate “bites” over 2 years while I was employed and finally now have the time to “play” a little. However, there is great satisfaction in making a successful repair.

BTW, I did make a post with my Phoenix Suggestions and Tips but had trouble when using the Tutorial path when completing the post. Here’s the link: (https://community.robotshop.com/tutorials/show/phoenix-hexapod-build-avoiding-mistakes-building-a-better-bot-1)

Thank You!

Best Regards,

Good thinking! :slight_smile:

As in a dead pin or possibly a dead AVR GPIO port (but less likely). So, hmm, electrical damage, then.

Check to make sure they are all in the right places though! :slight_smile: Better safe than sorry.

Please see the image below with the pins in question (2, 3, 4, 10). Skipping 5 since it is the buzzer pin and it is already in used for other stuff!

Not a soldering issue, since it worked previously. Unless you got your board in the hundreds of degrees (either °C or °F), there is no reason to believe a solder point / connection is physically damaged.

The pins are defined in the Hex_Cfg.h file, lines 75-79. Simply update them to match your physical connections. You shouldn’t need to do anything to the 3 pin plus since they should fit the same as before, one on 2/3/4, one on 10/vcc/gnd instead of 6/7/8/9.
In theory, that’s all you need to do. Then, recompile and upload again to your BotBoarduino and see if that works.

Lets see if we can salvage it first. Also, you could use some basic Arduino and test pin 8 in both input and output mode. Some pinMode() in setup() and some digitalRead() and digitalWrite() in loop() with a delay() should be enough to do so.

Looking forward to seeing more of this!

Sincerely,

Thanks again for the quick response but I’m a little confused. And, I did check that each jumper was fully seated.

You say “Simply update them to match your physical connections. You shouldn’t need to do anything to the 3 pin plus since they should fit the same as before, one on 2/3/4”.

Okay, I think I get this as these 3 pins then connect to the yellow/Blue/Purple lead plug. It would be these 3 pins which are changed in the sketch?

But then you say “one on 10/vcc/gnd instead of 6/7/8/9.” and you’ve lost me here. What plugs into pin 10?

In theory, that’s all you need to do. Then, recompile and upload again to your BotBoarduino and see if that works.

After this is clarified I will give it a try.

Thanks!

Bearing in mind that I’ve never done this before, does this mean that I just substitute the Blue numbers in the code lines with the Red numbers inserted in the attached image? Then save and upload?

1 Like

Quite close!

I was recommending moving all 4 connections (well, 4 signals, 2 for power) off the regular port and to other pins. In this case:


Of course, also move your physical connections to the right place.

Yes! :slight_smile:

There’s nothing like a trial by fire to promote acquisition of new knowledge quickly! :smiley:

Thanks Again!

I don’t want to seem dense but regarding the switch from pin 9 to pin 10, that seems to be an entire row which would then relocate the entire Yellow/Red/Black leads plug (which also connects to the PS2 Rx).

In effect, I would then be relocating all 6 Rx pin connections. Is this correct? It seems counter intuitive that the change of only one pin (pin 9 to 10) alters 3 pin assignments when the other 3 pins (6, 7, 8) requires 3 new pin number assignments. Or is this because the other 2 pins in row 10 are all 5V and Grd which remain the same in the vertically aligned pins?

If I’ve understood this correctly (your response is Yes) then I think that I’m good-to-go.

Also,on a separate matter, in order to see my tutorial you must click Start Discussion after using the hyperlink from my earlier reply. I’m not sure how to make it more readily visible.

Lastly, I never received a reply from kurte regarding guidance on GP Player Sequences (not a complaint, just that there was no reply and he could have more important priorities facing him at the moment) and ask for a suggestion on how to proceed, perhaps requesting assistance/guidance elsewhere.

Stay Healthy!

Best Regards,

Of the 6 wires coming from the PS2 receiver / breakout board, 2 of them are for power (VCC & GND) and 1 is a clock signal (CLK; for synchronization) three are for data (DAT, CMD, ATT).
Indeed, the three pin rows are effectively all the same setup for rows 2-13. In order from left to right:
[ GPIO ] [ VCC (5 V DC) or VS, depending on jumper ] [ GND] silk screen indicating row number
Since CLK, VCC, GND for the controller are on one connector, you simply need to move it together. In this case that is from row 9 to 10.

Also, there is one more detail to be aware of. If you look at the BotBoarduino manual you’ll notice that at point 6 / 7 /8 there is a mention of a pull-up resistor of 1 KOhm for pin 6. Therefore, to keep the test simple keep pin 6 (ATT) to pin 6 in both wiring and Hex_Cfg.h file.

The alternative would be to add that extra pull-up resistor (a resistor going from the signal pin to VCC, in this case 5 V DC) for the new pin to be used instead of pin 6. Since pin 6 did not seem to be an issue currently I’d recommend to do that.

Also, please remove jumpers JA, JB, JC (section 5 in the manual).

Noted, I shall have a look.

Not sure what to say, really. He is a community member with his own projects. He may be unavailable or simply not interested in answering questions privately in general or about that project/code. I truly have no idea, sorry to say. :expressionless:

Same to you, your friends and family!

Sincerely,

Thank you for the quick response!

I thought that I was “there” until your response so please see my questions.

Also, there is one more detail to be aware of. If you look at the BotBoarduino manual you’ll notice that at point 6 / 7 /8 there is a mention of a pull-up resistor of 1 KOhm for pin 6. Therefore, to keep the test simple keep pin 6 (ATT) to pin 6 in both wiring and Hex_Cfg.h file. Tobar8th: In other words only change out pin 8 reassigned to pin 4 (I have jumpers and could also isolate one lead as an alternative).

The alternative would be to add that extra pull-up resistor (a resistor going from the signal pin to VCC, in this case 5 V DC) for the new pin to be used instead of pin 6. Since pin 6 did not seem to be an issue currently I’d recommend to do that. Tobar8th: Keep pin 6 as pin 6 (per my question above)?

Also, please remove jumpers JA, JB, JC (section 5 in the manual). Tobar8th: I’m confused here. It worked with the jumpers in place. Should they have been removed to begin with? Ah yes, I see that the board illustration shows them removed but what are the consequences if they are left in place as I have erroneously done? Do remember that it was working with the 3 jumpers in place.

Well, the three-pin connector can always have a pin extracted from it. It is rather simple mechanically by lifting of the the tabs and pulling the connection out. It can then be placed elsewhere. Of course, you can always use jumper wires, too.
The goal is to at minimum move the wire on pin 8 somewhere else that is not already in use and is not pin 8. :slight_smile:

It will work. That being said, you also have the risk of causing damage by pressing buttons if the corresponding pin is in output mode and driving a signal (see posts above / BotBoarduino manual). Also, the LEDs could make the signal slightly different and possibly cause issues intermittently. I strongly recommend disconnecting them.

Oh, and one last thing…

Does this mean that I must also add 2 jumpers circled in yellow as in the illustration attached? I just became aware of the difference in my board setup vs. the illustration. I have no jumpers there.

Thanks!

No, those are not needed. They allow you to connect VL and VS to the A0 and A1 pins so they can be measured by the BotBoarduino. You can read more about it in the manual, #11.

Hi Scharette!

Thank you for the clarification. I will remove the jumpers you indicated.

There is something else. When I followed the published build manual for the Phoenix (most RobotShop hexapods) I interpreted “connections” as the wiring connected to the board and not jumpers which should be clarified. And, this then means that there is no BotBoardino illustration available (for these hexapod builds) which accurately depicts the required connections with jumper settings. The image on Pg. 22 of the SSC-32U Manual also shows that the 2 circled jumpers are attached and this image was probably lifted and inserted into the hexapod build instructions without making the necessary image edits. There are also no written instructions to indicate consulting the BotBoarduino Manual for specifics regarding jumpers.

I could assist with this if needed even if it would be a photo image of a properly set up board (once verified).

I’ll try reassigning Pin 8 to either Pin 2, 3 or 4 and see if my Bot responds to the code surgery.

Best Regards,

1 Like

Hi Scharette!

Tried the Pin 8 reassignment code surgery but the patient died on the table (however, it was possibly dead before the operation started).

Searching for line 76 of the code was an issue as the code line numbers do not appear in any tab I opened and I could not find a tool that enabled this. I found the appropriate code line in the hex folder by doing a “Find” for “PS2_DAT” for all folders.

After a successful Compile/Verify I tried uploading the code to the BotBoarduino board (moving the jumper from EXT to USB to power the board). The board lights up but the Green LED stays OFF while the Red and Yellow LEDs on either side (in the same row) blink in unison. This alone cannot be good as I recall all 3 LEDs had originally blinked in unison when the board was first programmed.

Also, I get 2 board error codes in red text when I try to upload which can’t be a good sign.

It seems that somehow the board itself has an issue which is affecting more than Pin 8 functionality (or Pin 8 is not the root cause). I’m at a loss as to how this board failure happened.

It seems that I need a new BotBoarduino board and I will remove the 3 jumpers (JA, JB & JC) on the new board before powering up.

Unless you have some special pixie dust that can be applied, this will be my plan moving forward.

Best Regards,
Tobar8th

Okay, I just found “Display Line Numbers” under Preferences so I now know better in the future but still have a sick board.

BTW, the errors were 3 pages long and ended with:

Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

@tobar8th
I think replacing the BotBoarduino might be the best idea in this case, if just to save you much time and effort with a board that obviously is having some issues. I’m not saying it is completely not workable but it may not be workable enough to be useful to you at this point.

Concerning jumpers, please see this image:


I think this should match what you need. Yellow rounded rectangles = yes, red X = remove/no jumper.

Hi Scharette!

As always, thank you for taking the time to assist and advise.

Fortunately, I already had a RobotShop order in but waiting for a back-ordered item. I just substituted the back-ordered item for a BotBoarduino and the order was released this morning.

I’ll follow your updated board illustration and then upload the sketch (first moving the Ext Jumper to USB and then back to Ext after the sketch is loaded).

However, in the process, I did learn much and will add to my Tutorial especially regarding making the PS2 Rx connection pins more robust prior to installation regardless of the chosen method of attachment (if you would need to remove a Rx Module which is adhered with 2 sided tape or servo tape there would be a good chance of breaking these pins).

My real concern here is that I have no clue regarding what to avoid with my new board which created the situation in the first place (unless it was just not removing the JA, JB and JC jumpers to begin with).

Best Regards,
Bill

1 Like

One last thing…

I can’t utilize this board any longer but you indicated that someone may be able to do so (possibly even yourself?).

Rather than tossing it out, can you use it or know of someone who could?

I could ship it out protected in an anti-static bag so that no further harm is done.

Best Regards,