Phoenix Review and Guide

**[size=4]The Lynxmotion Phoenix - A Multileg Robotics Platform[/size]**http://www.lynxmotion.com/images/jpg/phoenb1.jpg
After my A-pod thread that I am still actively working on and updating. I want to posted a thread reviewing the phoenix so that anyone who is looking to purchase this robot can get a good idea of what to expect.

Phoenix Highlights

]Total cost as of February 28th 2015 is $908.7 USD/:m]
]Reliable platform, good code base/:m]
]For the modern PS2 V3 , Botboarduino, SSC32U combo, I still need to verify that the phoenix works with the existing documentation. I will update this right now./:m]
]15 min nominal operation time with 6V 2800 mah battery. /:m]
]I have posted an updated assembly guide as of March 2015 in the following posts/:m]

Skills required and Educational Value

Soldering / Wire stripping / Heat-shrinking
For the phoenix, having these three skills are important to do the safest and cleanest build. Soldering helps with joining the two grounds to use in a single screw terminal. Heat-shrinking is required in my opinion to make sure that your power and ground never short on those screw terminals on both the micro-controller and servo controller. Wire stripping may be required to work with the screw terminals.
Recommendation: I recommend that you or a supervising member has experience with these or is resourceful. These skills are useful to pick up.

Programming
For the best educational value, go with the new BotBoarduino which uses Arduino code which is essentially C language. A lot of engineering schools and fields use C as one of the primary languages for many courses. I personally used C in my first year programming courses as well as my real time systems courses recently. Also, Arduino is a great educational platform that I use in school and even sometimes at work.
Recommendation: For the hexapod, the existing code base uses a lot of middle level programming concepts such as linked files, polling (real time), and gait control (the moving algorithm). If you are new to programming, this is not the ideal platform to learn on. However if you are experienced in C, algorithms, and real time systems this can be a great platform.

Mechanical Assembly
Very straight forward, good experience for anyone who is going into engineering. During my first ever robot competition, I had to machine a chassis for a sumo-robot from scratch. After seeing all of the design decisions lynxmotion made, it has given me a better overview of how to make joints with standard size servo motors.
Recommendation: Anyone who can follow a basic manual can complete the mechanical assembly.

**Electrical Interfacing / Wiring
**Lots of good lessons to be learned here. The existing wiring diagrams are great resources. There is a lot to learn from the control system used in the hexapod. Overall electrical debugging skills will be useful to get over any roadblocks. I hope to provide you with recommended solutions to common problems in my guide.
Recommendation: Resourcefulness and debugging skills are required or to be learned.

Procuring materials

Core Materials in the Kit
The most comprehensive kit comes in at[font=Verdana, Arial, Helvetica, sans-serif][highlight=#ffffff] $878.99[/highlight][/font][font=Verdana, Arial, Helvetica, sans-serif][highlight=#ffffff] USD currently. [/highlight][/font]
[font=Verdana, Arial, Helvetica, sans-serif][highlight=#ffffff]
]Phoenix 3DOF Hexapod (no servos, no electronics)/:m]
]18 x Hitec 645MG servos/:m]
]BotBoarduino microcontroller/:m]
]SSC-32 Servo Controller /:m]
]USB Cable/:m]
]Servo Extender Cable - 6" (you get 6 of these for the tibia)/:m][/highlight][/font]
[font=Verdana, Arial, Helvetica, sans-serif]Now if you are just getting into more sophisticated robotic platforms, you may be wondering why it is so expensive. Actually, if you have start shopping around for your first multileg platform, it is very likely you ran into much cheaper hexapods made in China on Ebay. The lynxmotion hexapod is more expensive because much higher quality servo motors are used. A lot of the Chinese hexapods will have cheap tower pro servos which have terrible reliability reviews. In fact, if I needed 18 working ones, I would buy 20 to prepare for the few poorly quality tested ones.[/font]

18 of theHS 645MG comes out to $566.82 USD.

The mechanical chassis is $248.98 USD

The Arduino based microcontroller comes out to $34.95 USD

The version of the SSC32that the kit comes with is the serial interface one at $39.95 USD

The serial cable comes in at $4.95 USD (although you most likely will need a $20 USD adapter) and 6x servo extender cables come out to $12 USD.

Adding total the sum of all the individual components, we find that procuring the materials separately comes out to $908.7 USD, slightly more expensive than the kit.

Core Materials not In the Kit
Now if you are budgeting for this robot, please be aware you need other items not included in the kit to get it up and running.

BAT-05 6V / 2800 mAH Ni-MH Rechargeable Battery $26.95 USD

6V - 12V NiMH / NiCd Smart Charger $21.95 USD

Lynxmotion PS2 Controller V3 $23.85 USD

I also highly recommend the following
WH-03 Wiring Harness for 9V Battery $4.95 USD

If you are using a SSC32 without an USB interface (the newest SSC32 has an USB interface but it is not included in the kit), you will need the following adapter.
USB-to-Serial Adapter Cable USB2S-01 $19.46 USD

Assuming you pick up all the above, the total cost of the kit comes out to $976.1 USD which is good price for an awesome all inclusive multi-leg platform. As someone who owns the kit, I think that at the end of the day, you are paying twice as the Chinese knockoffs but you will have a hexapod that actually works. None of the Chinese kits have all inclusive hardware and they actually use knock off versions of the lynxmotion hardware. The TowerPro motors are lower grade and claim to have the same torque but I highly doubt it.

Electronic Selection in 2015
You may have noticed that the Phoenix platform was originally designed with the Bot Board II. The newest packages come with the BotBoarduino and SSC32. For my own phoenix, I have the Bot Board II / SSC32 whereas my A-pod is using the new BotBoarduino and SSC32. My feedback here is be aware for the new BotBoarduino / SSC32 package, the documentation is not quite complete. In particular, the PS2 V3 controller has a noisy communication channel if you follow their configuration. I will post a PS2 V3 controller in this guide as well once I finalize it on the A-pod.

For the mechanical assembly, I will be posting my version of the mechanical guide here. I will be adding a few corrections, the goal is, you can follow through my end-to-end guide and not have to dig around the forum for known issues that were never updated in the main guide.

Step 1 Tools and Equipment
Essential tools

]Philips screw driver/:m]
]Hexagon socket screw driver/:m]
]Pliers /:m]
]9V Battery /:m]
]Breadboard (for Arduino servo centering)/:m]
Recommended

]Soldering iron and solder (for extending power cables) /:m]
]Heat-shrink tube (to prevent shorts at the twister terminals)/:m]
]Extra wire /:m]
]Extra twist-ties /:m]
Step 2 Centering the Servo Motors
Standard servo motors allow rotation along a joint. They also are restricted to half a circle of motion (unless you get continuous ones).For the hexapod series, it is important to center your servo motors before mechanical assembly to ensure each joint has equal and full range of motion. There are three ways to do this, the first two being the most reliable.

]Using an Arduino based micro-controller to send a 1500 ms pulse./:m]
]Using a motor controller board that as graphical software/:m]
]Doing it by hand / visually (not recommended)/:m]
If you are using an Arduino, you will need a mini breadboard to make the connections with the servo motor. The following diagram from the Arduino main website demonstrates how to connect a servo motor to the micro-controller.

http://arduino.cc/en/uploads/Tutorial/sweep_bb.pngFigure 1: Arduino Servo Connection Diagram[left]After connecting the servo motor to the Arduino. Power it up using a USB cable. Run the following sample code.[/left][left][LEFT][code]
#include <Servo.h>

Servo myservo; // create servo object to control a servo
// a maximum of eight servo objects can be created

void setup()
{
myservo.attach(9); // Whichever pin you attach your servo to, change this value to match it

void loop()
{
myservo.write(1500);
}
[/code][/left][left][LEFT]Mechanical Build[/left][left]Building the Tibia[/left][left]Place an HS-645 servo against a tibia (lower) leg piece as shown, and secure in place using the hardware specified in Figure 1-1.[/left]http://www.lynxmotion.com/images/inv/brack06.gifhttp://www.lynxmotion.com/images/assembly/phoenix/phoen01.jpgFigure 1-1[left][LEFT]Preparing the Multi-purpose Bracket[/left][left]I will first outline you the way to do as it says on the guide. I will then explain a problem you will encounter and how to fix it.[/left][/LEFT][left]The Multi-purpose Bracket Problem[/left][left][LEFT][LEFT]One of the core components for creating many of the Lynxmotion hexapod joints is the multi-purpose bracket. A typical servo motor will have a servo horn on one side meaning that a flange mechanism is required on the other side to enable rotation. The multipurpose bracket requires a flange on the opposite side of the servo horn.[/left][left]In the specified instructions ( this issue is existent for all LM hexapod platforms), the 3mm x 8mm is actually not included in any of the kits. The reason for this is because they were not able to find a manufacturer who stocked these screws. However they have included a slightly longer similar Philips head screw. Using this configuration above with the provided mounting kit will cause the end of the screw to push the servo away from the mounting area.[/left][left]Solution A[/left][left]Reverse the direction of the screw and lock-nut. This will make it so that the longer joint is outside the bracket and inside the bracket will be a small extrusion from the head of the screw.[/left][left]Pros: No extra hardware required[/left][left]Cons: The extra length on the outside will cause your femur joint to buckle. The extra length forces the member into compression.[/left][left]Solution B[/left][left]Procure smaller screws[/left][left]Creating the Main Joint[/left][left]Required Materials[/left]2xhttp://www.lynxmotion.com/images/inv/256025ph.GIF2xhttp://www.lynxmotion.com/images/inv/256zpn.gif**2x **http://www.phidgets.com/images/3204_0_Web.jpg[left][LEFT]Attach the two multi-purpose brackets as shown in figure 3, using two 2-56 x .250" screws and 2-56 nuts.[/left][left]http://www.lynxmotion.com/images/assembly/rl02/3dof311.jpghttp://www.lynxmotion.com/images/inv/brack02.gifhttp://www.lynxmotion.com/images/assembly/phoenix/phoen02.jpg[/left][/LEFT][/LEFT][/LEFT][/LEFT][/LEFT]

Reserved for Electronics / Wiring / Troubleshooting

Reserved for code breakdown

Trouble Shooting Guide

**Bot Board II does not beep when running the default Phoenix code but the pwr light is on
**This issue is an interesting one. Even though the pwr light is on, it does not mean your board is getting enough voltage. A microcontroller has a minimum threshold voltage where it can still do logic. If you have a multimeter handy, you can probe the voltage regulator to see if you are getting a clean 5V output. I will post some pictures on this later. Low voltage issues can be troublesome.

Anecdote: Instead of using the screw terminal, I soldered my power wires direct onto the copper pads. One day, my robot would turn on both the pwr light for the SSC32 and Bot Board turned on. The PS2 receiver was getting enough power because it could connect with my controller. However the Bot board would not beep when turned on meaning it was able to enter the part of the code where it looks for the PS2 controller. It was confusing because the robot was working the night before. It turns out the issue was overtime, the solder joint on the power wires became loose and it caused low voltage.

Conclusion: The pwr light on the Bot Board II can be misleading. In fact, a fun way to prove this is if you disconnect power to the BotBoard II and power the SSC32 you can get the SSC32 to power the BotBoard after connecting the TX / RX line. The power supplied by that line is enough for a green pwr light.