Phoenix code my MG90 hexapod

Ok what do you have that has been tested with the PS2 controller? Is there a Phoenix code compatibility list for arduino?

The Phoenix code is compatible with Arduino, and you would need a BotBoarduino and an SSC-32 / 32U.

I am trying to get away from the botboard and hoping i could use a smaller arduino instead with the SSC-32u.

You can, but be sure to understand the connections.

So, if you have questions about the phoenix code, my hexapod is based on an Arduino nano and a scc-32 board and works great. All you have to do is to set all dimensions and pins correctly.

Check:

  • If the ps2 pins are correct (i had to change these do A0 to A3)
  • Check if the rx/tx pins are set correctly, mine are on pin 0 and pin 1
  • Check if the baudrate is correct, mine is at 9200.
  • I dont have a sound pin yet, so i don’t care :slight_smile:

I don’t understand why you need a BotBoarduino to drive the Phoenix Code, it also works with a normal one? Also if you have a hexapod with 18 Servos you can’t use any Arduino, because you need 18pins I/O pins to generate send the PWM signals.

Ok I gave up on the MG90 type Hexapod and bought a full size kit and MG995 servos. So I have a brand new Botboarduino and SSC-32U plus I ordered a new V2 PS2 controller. It took most of the day to build and I had to use the servo disk Homs that came with the servos (And why are servo screws always weak and easy to strip?) had to quit because I only had 3 zip ties.

I was using a 11.1v Lipo at 1500mah going through a 5v 9a power regulator for my lil hex and after picking this thing up with it all put together and it’s so heavy. Will my power needs be the same or do I need to get a higher capacity battery.

Also when I was putting the coxa pieces together I noticed the femur bracket on the coxa pieces is way up high. Can I lower the femur brackets where they are level with the coxa servos?

The capacity of the battery is related to how long it will last. You need a battery which is ideally suited for RC servos and can discharge at the necessary current under load.

Can you provide an image / photo?

All right guys I had to take a break from my robot for a while. I was starting to get aggravated but m feeling better now.

I spent today rebuilding the MG995 servo Hexapod testing The servos and replacing one. I then used lynx term to align every thing. But I have a question.

Here’s a pic of the right front coxa servo set up. As you can see the femur servo is so much higher than the coxa body servo.

[font=UICTFontTextStyleBody][size=4]http://i1254.photobucket.com/albums/hh601/Duhjoker1/Quadruped/47E26E0D-0E15-4F30-A7C1-256B0EAEF8B2_zpss64ss8hm.jpg[/size][/font][font=UICTFontTextStyleBody][/font][font=UICTFontTextStyleBody][size=4] I asked this question once before but I do need answer or I can’t align everything properly. Do the arms on body face each other like …[/size][/font][font=UICTFontTextStyleBody][/font][font=UICTFontTextStyleBody][size=4]Pic 1[/size][/font][font=UICTFontTextStyleBody][/font][font=UICTFontTextStyleBody][size=4]http://i1254.photobucket.com/albums/hh601/Duhjoker1/Quadruped/47E26E0D-0E15-4F30-A7C1-256B0EAEF8B2_zpss64ss8hm.jpg[/size][/font][font=UICTFontTextStyleBody][/font][font=UICTFontTextStyleBody][size=4]Or Pic 2 [/size][/font][font=UICTFontTextStyleBody][size=4]http://i1254.photobucket.com/albums/hh601/Duhjoker1/Quadruped/800D4071-A2D7-4437-BFFB-ED368E9DA319_zps9pa8leew.jpg[/size][/font]

Also…

Is there an upgraded version of the source code? I tried a few weeks ago to set it up before today and both then and today I get lil orange messages in the lower screen of arduino while compiling saying some thing is degraded?

Sorry or this pic…

http://i1254.photobucket.com/albums/hh601/Duhjoker1/Quadruped/2DA5FEB9-0BB0-48D5-8E52-707A3B576FC9_zpsmmoajita.jpg

Regarding the legs, take a look at the way the Phoenix is assembled:
lynxmotion.com/images/html/build131.htm
You can see the servo orientation in the first and last images.

The current code can be found here:
lynxmotion.com/images/html/build99f.htm

Ok I can’t figure out how to save the calibrations once performed to the SSC-32u.

I’m using either lynx term or the SSC-32 servo sequencer.

Still can’t figure out how to save my calibration to the SSC-32u. I looked at the manual for the two programs lynx term and the SSC-32u servo sequencer all I’m getting is save to disk. Do I need to navigate it to the board shown in my computer?

I did download the new code and installed it after making the nessacary changes to hex_config and changing the servo direction in phoenix_driver_ssc32.cpp. It was riding high and I was having trouble lowering the hex so I changed the initial Y to the 30 setting instead of 80.

All right so here is what I get in the lil lower arduino screen when I compile the code…

[code]

[font=UICTFontTextStyleBody][size=4]Sketch\phoenix_driver_ssc32.cpp: in member function ’ void servo driver::FindServoOffsets()’:[/size][/font][font=UICTFontTextStyleBody][size=4]--------------------------------------------------------------------------------------[/size][/font][font=UICTFontTextStyleBody][/font][font=UICTFontTextStyleBody][size=4]Sketch\phoenix_driver_ssc32.cpp:366:64: warning deprecated conversion from string constant to ‘char*’ -Write-strings][/size][/font][font=UICTFontTextStyleBody][size=4]--------------------------------------------------------------------------------------[/size][/font][font=UICTFontTextStyleBody][/font][font=UICTFontTextStyleBody][size=4] static char apszLegs] = {“RR”, “RM”, “RF”, “LR”, “LM”, “LF”}; // Leg Order[/size][/font][font=UICTFontTextStyleBody][/font][font=UICTFontTextStyleBody][size=4]--------------------------------------------------------------------------------------[/size][/font][font=UICTFontTextStyleBody][/font][font=UICTFontTextStyleBody][size=4]Sketch\phoenix_driver_ssc32.cpp:366:64: warning: deprecated conversion from string constant to 'char’ [Wwrite-strings] [/size][/font][font=UICTFontTextStyleBody][size=4]--------------------------------------------------------------------------------------[/size][/font][font=UICTFontTextStyleBody][/font][font=UICTFontTextStyleBody][size=4]Sketch\phoenix_driver_ssc32.cpp:366:64: warning: deprecated conversion from string constant to ‘char*’ [Wwrite-strings] [/size][/font][font=UICTFontTextStyleBody][size=4]--------------------------------------------------------------------------------------[/size][/font][font=UICTFontTextStyleBody][/font][font=UICTFontTextStyleBody][size=4]Sketch\phoenix_driver_ssc32.cpp:366:64: warning: deprecated conversion from string constant to ‘char*’ [Wwrite-strings] [/size][/font][font=UICTFontTextStyleBody][size=4]--------------------------------------------------------------------------------------[/size][/font][font=UICTFontTextStyleBody][/font][font=UICTFontTextStyleBody][size=4]Sketch\phoenix_driver_ssc32.cpp:366:64: warning: deprecated conversion from string constant to ‘char*’ [Wwrite-strings] [/size][/font][font=UICTFontTextStyleBody][size=4]--------------------------------------------------------------------------------------[/size][/font][font=UICTFontTextStyleBody][/font][font=UICTFontTextStyleBody][size=4]Sketch\phoenix_driver_ssc32.cpp:366:64: warning: deprecated conversion from string constant to ‘char*’ [Wwrite-strings] [/size][/font][font=UICTFontTextStyleBody][size=4]--------------------------------------------------------------------------------------[/size][/font][font=UICTFontTextStyleBody][/font][font=UICTFontTextStyleBody][size=4]Sketch\phoenix_driver_ssc32.cpp:366:64: warning: deprecated conversion from string constant to ‘char*’ [Wwrite-strings] [/size][/font][font=UICTFontTextStyleBody][size=4]--------------------------------------------------------------------------------------[/size][/font][font=UICTFontTextStyleBody][/font][font=UICTFontTextStyleBody][size=4] static char apszLJoints] = ( “Coxa”, “Femur”, “Tibia”, “tArs”); // which joints on the leg[/size][/font][font=UICTFontTextStyleBody][size=4]--------------------------------------------------------------------------------------[/size][/font][font=UICTFontTextStyleBody][/font][font=UICTFontTextStyleBody][size=4]Sketch\phoenix_driver_ssc32.cpp:367:71: warning: deprecated conversion from string constant to 'char’ [Wwrite-strings] [/size][/font][font=UICTFontTextStyleBody][size=4]--------------------------------------------------------------------------------------[/size][/font][font=UICTFontTextStyleBody][/font][font=UICTFontTextStyleBody][size=4]Sketch\phoenix_driver_ssc32.cpp:367:71: warning: deprecated conversion from string constant to ‘char*’ [Wwrite-strings][/size][/font][font=UICTFontTextStyleBody][size=4]--------------------------------------------------------------------------------------[/size][/font][font=UICTFontTextStyleBody][/font][font=UICTFontTextStyleBody][size=4]Sketch\phoenix_driver_ssc32.cpp:367:71: warning: deprecated conversion from string constant to ‘char*’ [Wwrite-strings][/size][/font][font=UICTFontTextStyleBody][size=4]--------------------------------------------------------------------------------------[/size][/font][font=UICTFontTextStyleBody][/font][font=UICTFontTextStyleBody][size=4]C:\Users\duhjoker\Documents\Arduino\libraries\PS2X_lib.cpp: In member function ‘void PS2X::read_gamepad(Boolean, byte)’:[/size][/font][font=UICTFontTextStyleBody][size=4]--------------------------------------------------------------------------------------[/size][/font][font=UICTFontTextStyleBody][/font][font=UICTFontTextStyleBody][size=4]C:\Users\duhjoker\Documents\Arduino\libraries\PS2X_lib.cpp:104::53: warning narrowing conversion of ‘motor2’ from ‘byte {aka unsigned char}’ to ‘char’ inside { } -Wnarrowing][/size][/font][font=UICTFontTextStyleBody][size=4]--------------------------------------------------------------------------------------[/size][/font][font=UICTFontTextStyleBody][/font][font=UICTFontTextStyleBody][size=4]char dword[9] = {0x01,0x42,0,motor1,motor2,0,0,0,0};[/size][/font][font=UICTFontTextStyleBody][/font][font=UICTFontTextStyleBody][/font][/code]

I’m sure there are some syntax errors in the code pasted above but it’s what I get I tried spacing the code but it just jumbles it back up

Not sure what happened to the code section of your last post - can you take a look?
You can temporarily use Lynxterm (connect the SSC-32 directly to the computer):
lynxmotion.com/p-567-free-do … xterm.aspx
Use the “setup” and the “Reg” to change the offsets.

On the code above, I actually typed all that to my notepad before copying and pasting to the post.

Ok would this be the screen your talking about in lynx term?
http://i1254.photobucket.com/albums/hh601/Duhjoker1/Quadruped/AE039125-198D-4386-9FF8-63BF9A68BCAC_zpsd7t9xzys.jpg

I guess I would type the width that I wrote down from calibrating the legs then write it to the board?

Which box do I check under global?

Ok I found a review on LMR that has a picture of the Reg screen on the Lynxterm which lists the steps by number on the pic. Can be found here…

letsmakerobots.com/node/46686#comment-136289

I’m hoping that will solve the spastic behavior it had when power is added. The legs just do what ever.

I’ve watched a lot of videos on the Lynxmotion Hexapods and I noticed some hex’s when turned on start every thing on the 1500 neutral setting and others start up in the body down legs up position.

Mine starts at the 1500 neutral setting and I have trim it down using the D-pad on the PS2 controller.

How do I get mine to start in body down?

Ok I had it working kind of. I think I’m having power problems. I can get it to come on and the controller beeps the board when I hit start but then beeps again and loses communication with the PS2 controller. Which of course drops the body.

I also played around with some of the other options. But I eventually had to cut it. The 9A step down got really hot too. I think I need 12A to adequately power it.

Also when it walks the femurs are almost all the way out. And all the videos I see every thing is real tight off the body.

When you want to write to the chip, you need to check off “Initial pulse offset”.
Refresh my memory, but what battery are you using?

An 11.1v lipo at 1500mah now running through an adjustable voltage 12A regulator.

So operating 6V servos at 6V but from an 11.1V LiPo (did you mean a 6V regulator as opposed to 12V?)
It’s certainly possible, but we have not tested that approach, and as you have discovered, there may be some issues.
We can see the advantage in being able to power the electronics too, but a 7.4V LiPo may have been a bit better.
It’s really best to operate standard RC servos directly from a 6V pack.
You may need to test actual current draw etc.

Heres a pic of the regulator, it is drfinitely 12A with and adjustable voltage screw.

i1254.photobucket.com/albums/hh601/Duhjoker1/Quadruped/82F44B28-BE9F-443F-9E10-0B9CFE76737C_zpsqj1w3r8v.jpg

My smaller hexapod was having the problem with a 2A regulator so i upped it to 9A and the glitches stopped.

Also had to cut down my nylon spacers holding the two boards together. The servo leads for the PS2 were a lil high and the top of the board was bending slightly. After taking a look at old set of servo wires i had on the botboarduino and it lloks it might have been scarring the teflon coating on the wires which can cause shorts that may cut the PS2 off.