Help with the Lynxmotion quadruped

Hi!

I require your help regarding a problem I’m encountering.

Description:
I want to post the problems I had and the ways I went to go about fixing them. I had two big problems, power and communication. I was trying to mix two builds:
botboarduino + ssc32u + PS2
ssc32u + bluetooth xbee

My goal was to power the logic with 9v and servos with 6v. I just tried to combine them improperly which effected both power and communication. I am not sure if the set up I have is necessary, but this is what I have
botboarduino Logic (+/- terminals on the left) have the 9v and switch connected and wires from the terminals to the logic terminals on the ssc32u. The 6v connector with switch are attached to the servo power on the ssc32u

Because I was changing around my power configuration I lost track of the jumpers. I did not expect this but I had an issue with the communication because I had my jumpers set wrong. Maybe it was low voltage because of my improper set up. For the set up I have above my jumpers are as follows:

botboarduino - set to use external power not USB, VS=VL jumper on
SSC32U - right side VS VL is open, no jumper on it. Left side jumpers are on VS1/VS2

The next problem I had was the communication. You can have both the ps2 and xbee connected but only one can communicate at a time. I just keep the PS2 connection for the most part. I have used the flowbotics studio and that is a pretty nice software for manipulating the bot and coming up with actions

Note
For the PS2 v3 breakoutboard 1. I believe the code and image are flipped. So if you follow the diagram used by lynxmotion and don’t get communication to the PS2 (not power but comm). Either switch the DAT, CMD, ATT wires or change the code (6,7,8 to 8,7,6). Eith way this is one thing to check if your PS2 is not working

I will continue to add more to this post. I really do like this bot
Hardware concerned:
ssc32u, boboarduino, xbee, os2 controller and dongle
Software concerned:

Troubleshooting steps already taken:

Additional information:

This is a great video about the Nuke, the original(?) kinematic engine. There are a couple others from which Pheonix and the project for the quad. Talks about leg measurements, body, and more. They use a tool that I have not tried, but looks cool.

Very important video about the dev of this quad

Link to .ino and hex_cfg that gets closer to a working SQ3U
https://community.robotshop.com/forum/uploads/default/original/3X/c/e/cec94a44c2a5ebf25e89594d3c9ebba0cbd29031.zip

Hex_cfg
Leg code for mine organized
//====================================================================
//
//[SSC32 Pin Numbers]
#define cLFCoxaPin 0 //Front Left leg Hip Horizontal
#define cLFFemurPin 1 //Front Left leg Hip Vertical
#define cLFTibiaPin 2 //Front Left leg Knee
#define cLFTarsPin 3 // Tar

#define cLRCoxaPin 8 //Rear Left leg Hip Horizontal
#define cLRFemurPin 9 //Rear Left leg Hip Vertical
#define cLRTibiaPin 10 //Rear Left leg Knee
#define cLRTarsPin 11 // Tar

#define cRRCoxaPin 24 //Rear Right leg Hip Horizontal
#define cRRFemurPin 25 //Rear Right leg Hip Vertical
#define cRRTibiaPin 26 //Rear Right leg Knee
#define cRRTarsPin 27 // Tar

#define cRFCoxaPin 16 //Front Right leg Hip Horizontal
#define cRFFemurPin 17 //Front Right leg Hip Vertical
#define cRFTibiaPin 18 //Front Right leg Knee
#define cRFTarsPin 19 // Tar
//--------------------------------------------------------------------
[SERVO PULSE INVERSE]
I kept the default

I am still working on this, each leg has the same settings
[MIN/MAX ANGLES]
#define cLFCoxaMin1 -460 //Mechanical limits of the Left Front Leg
#define cLFCoxaMax1 460
#define cLFFemurMin1 -1050
#define cLFFemurMax1 750
#define cLFTibiaMin1 -420
#define cLFTibiaMax1 900

[LEG DIMENSIONS]
//Universal dimensions for each leg in mm
#define cXXCoxaLength 25 // This is for CH3-R with Type 3 legs
#define cXXFemurLength 57
#define cXXTibiaLength 127

Thank you so much in advance for your help!

1 Like

Hey @etothex23!

Welcome to the RobotShop community!

Well, there’s a few things that come to mind here. First, which XBee module are you using? While the 3.3 V DC regulator can power most devices there are a few higher end (and power hungry) XBee module that may not work with the SSC-32U. This is most likely not your case but it would be good to verify this.

Second, most XBee modules are shipped with a baud rate of 9600, whereas the baud rate for communication with the SSC-32U would need to be set to 38400 to be compatible with the default values of the Phoenix code example (quad or otherwise).

Also, please note that you can either use the USB port, the UART TTL pins (TX/RX/GND) or the XBee module. You cannot use two or more methods at the same time.

So I guess the first question would be: what are you using the XBee module for? How does this tie in with the BotBoarduino (since you can’t use both at the same time with the SSC-32U)?

Sincerely,

Hi, I need to update this again. I have figured out the wiring and connections. The bot is up and running. I need to figure out how to “tune” the servos, and get everything aligned properly. I am not sure if I need to change the values for the leg size. I am using the lynxmotion symmetrical quad. The robot doesn’t walk forward or backward much at all. I think this is just modifying the config or servos. Other movements work fairly well, just not the walking Also the example code mentions that they had the left leg set wrong or something. Not sure why that wasn’t fixed in github. I guess I should take this into consideration as well.

1 Like

Hey,

It’d be nice if you can elaborate a bit more on what what not working and how you fixed it. I’m sure people with a similar issue would appreciate the extra info! :slight_smile:

Yes, you will most likely need to change all configurations to match your robot frame, motors, etc.

Feel free to clone the repo, fix the issue you are referring to (line link?) and submit a pull request for the fix! We gladly accept any useful submissions from the community!

Any chance of a short video? :wink:

Sincerely,

I will go ahead and edit my post with what all I ended up doing. I will also edit my config and post a video. While it took a while to get up and running, the robot is pretty fantastic. The library allows you to perform just about any basic motion you can think of and some I did not. The remote is convenient when you just want to operate the bot. I was really impressed with the kit.

1 Like

Hey,

Glad to hear that! Looking forward to more info from you.

Sounds like you’ve been having a good time with your quad, then!

You may want to make a tutorial for your process or a robot page for the project itself. We also have monthly competitions where you can win prizes on the community site. More info for contests here & here.

Feel free for the August contest if you feel like it, too.

Sincerely,

Can I ask for your help in this last bit of configuration? Here in the code:

//[BODY DIMENSIONS]
#define cRRCoxaAngle1 -450 //Default Coxa setup angle, decimals = 1
#define cRFCoxaAngle1 450 //Default Coxa setup angle, decimals = 1
#define cLRCoxaAngle1 -450 //Default Coxa setup angle, decimals = 1
#define cLFCoxaAngle1 450 //Default Coxa setup angle, decimals = 1

#define cRROffsetX -75 //Distance X from center of the body to the Right Rear coxa
#define cRROffsetZ 55 //Distance Z from center of the body to the Right Rear coxa
#define cRFOffsetX -75 //Distance X from center of the body to the Right Front coxa
#define cRFOffsetZ -55 //Distance Z from center of the body to the Right Front coxa

#define cLROffsetX 75 //Distance X from center of the body to the Left Rear coxa
#define cLROffsetZ 75 //Distance Z from center of the body to the Left Rear coxa
#define cLFOffsetX 75 //Distance X from center of the body to the Left Front coxa
#define cLFOffsetZ -75 //Distance Z from center of the body to the Left Front coxa

This section confused me a bit. I did change the numbers, but not the signs. I am not sure where I am measuring. I am using the symmetric body that is rectangular, which needs correction because the code used the ch-3 legs. Are the X and Z meant to be X and Y? or is it X–> and Z^
and how do I measure z?
Also the signs (-/+), the first set makes sense with -,+,-,+
But then the code has -,+,-,- and +,+,+,- I would think it would follow the first set

any help would be appreciated

Yeah, that is not the clearest part of the setting. The info is sprinkled all over, but this is a good place to get started about these settings. You will most likely find more info if you search the forum for those key words.