There’s also user guides etc here (under Microcontrollers):
If you switch to the Arduino Uno (which replaces the Bot Board 2), then you’ll need to ensure you have your wiring correct as there is no specific guide.
Can’t quite tell which servos are installed, but keep in mind most run best at 6V, not 7.4V. You need 9V power to the SSC-32 and to the BotBoard 2. With older robots, you really need to ensure wiring is correct, as well as the Baud rate selected on the SSC-32 (via jumpers). Normally the software serial operates at 38,400 not 9600.
Update: now all controller success to upload the program,
Before I post here, I already follow instuction guide in lyxnmotion website.
now after upload program to controller arduino uno or BB2 bab 28 without errors ( I try both )
I got some problem, when I press Start in my stick PS2 the hexapod auto walk weird, this my stick error or what?
normal when press start hecapod will stand right?
Normally pressing start should not make the robot walk, only stand, though I have never really looked at the code for the Basic Atom. The PS2 Controls table 17 seems to indicate this as well. lynxmotion.com/images/html/build159.htm
You might try the Arduino-based code rather than the Bot Board 2 since it’s more recent. Keep in mind you’ll need common ground with the PS2 receiver and the SSC-32.
This might be an issue with any of the following:
PS2 wiring
Wiring between the microcontroller and the SSC-32
Connections between the servos and the SSC-32
Where the servos are connected to the SSC-32 (which pins)
Jumper settings
You might be able to more easily get the robot up and running if you use a BotBoarduino. Not because the Bot Board 2 or Uno are not functional, but it’s a more recent board and easier to troubleshoot than one which is ~10 years old.
Ihve already trying use Bot Board 2 or arduino uno,
already put Phoenix or A-Pod code from Basic Atom, and Phoenix Code from arduino to UNO, I try both, but get some result, when press start robot auto walk hmm or maybe my PS2 error
About wiring I follow Guides from lyxnmotion website and i’ve recheck make sure nothing wrong
If you can provide some clear photos of the SSC-32 and Bot Board 2 clearly showing all of the wiring, jumpers etc., perhaps we can spot something wrong. Even the smallest issue (like a missing jumper on one of the two boards, or a badly wired cable) can create an issue.
Can’t tell what the first photo shows since the Arduino Uno is not connected at all.
You have a blue and yellow wire going to … something, where the wires are really improperly connected and bare. Don’t know what that is.
The servos you are using are not Hitec, nor are the mounting hole patterns, so this is not a real “Lynxmotion” Phoenix kit, except for the electronics.
This also means zeroing the servos for the walking gait will be different than on the Phoenix.
In your last video, you powered the robot and the legs seemed to go to the right position… did you try using the joysticks?
Do you have the 9V battery also connected to VL of the Bot Board 2? It’s cut off from the photo.
Not sure how much support we can provide given it’s a custom robot and the electronics are almost 10 years old.
When I press Start button, this robot stand to tall
You can check on my video 1
And after I try to edit #define CHexInitY 25 to #define CHexInitY 80
The robot can stand normal, but after I press start to off the legs fall down
Video 2
This error from code or my mechanical problem?
Here some image wiring
> //====================================================================
//Project Lynxmotion Phoenix
//Description:
// This is the hardware configuration file for the Hex Robot.
//
// This version of the Configuration file is set up to run on the
// Lynxmotion BotboardDuino board, which is similiar to the Arduino Duemilanove
//
// This version of configuration file assumes that the servos will be controlled
// by a Lynxmotion Servo controller SSC-32 and the user is using a Lynxmotion
// PS2 to control the robot.
//
//Date: March 18, 2012
//Programmer: Kurt (aka KurtE)
//
//NEW IN V1.1 (2013-05-17)
// - Support for Arduino Pro Mini on Bot Board (originally for Basic Atom Pro)
//NEW IN V1.0
// - First Release
//
//====================================================================
//==================================================================================================================================
//==================================================================================================================================
//==================================================================================================================================
//[CONDITIONAL COMPILING] - COMMENT IF NOT WANTED
// Define other optional components to be included or not...
//uncomment the following line to activate 4 DoF
//#define c4DOF
//comment if terminal monitor is not required
#define OPT_TERMINAL_MONITOR
//uncomment the board you want to use
#define __BOTBOARDUINO__ //botboarduino board
//#define __BOTBOARD_ARDUINOPROMINI__ //arduino pro mini on botboard (originally for BasicAtomPro)
//====================================================================
#ifdef OPT_TERMINAL_MONITOR // turning off terminal monitor will turn these off as well...
#define OPT_SSC_FORWARDER // only useful if terminal monitor is enabled
#define OPT_FIND_SERVO_OFFSETS // Only useful if terminal monitor is enabled
#endif
#define OPT_GPPLAYER
// Which type of control(s) do you want to compile in
#define DBGSerial Serial
#if defined(UBRR1H)
#define SSCSerial Serial1
#else
#endif
#define USEPS2
//==================================================================================================================================
//==================================================================================================================================
//==================================================================================================================================
// CHR-3
//==================================================================================================================================
#define USE_SSC32
//#define cSSC_BINARYMODE 1 // Define if your SSC-32 card supports binary mode.
//[SERIAL CONNECTIONS]
// Warning I will undefine some components as the non-megas don't have enough memory...
//#undef OPT_FIND_SERVO_OFFSETS
#define cSSC_BAUD 38400 //SSC32 BAUD rate
//--------------------------------------------------------------------
//[Botboarduino Pin Numbers]
#ifdef __BOTBOARDUINO__
#define SOUND_PIN 7 // Botboarduino JR pin number
#define PS2_DAT 10
#define PS2_CMD 11
#define PS2_SEL 12 // On the PS2 receiver this pin may be called ATT (attention)
#define PS2_CLK 13
// If we are using a SSC-32 then:
// If were are running on an Arduino Mega we will use one of the hardware serial port, default to Serial1 above.
// If on Non mega, if the IO pins are set to 0, we will overload the hardware Serial port
// Else we will user SoftwareSerial to talk to the SSC-32
#define cSSC_OUT 8 //Output pin for Botboard - Input of SSC32 (Yellow)
#define cSSC_IN 9 //Input pin for Botboard - Output of SSC32 (Blue)
#endif
#ifdef __BOTBOARD_ARDUINOPROMINI__
#define SOUND_PIN 11 // Bot Board JR pin number (with Arduino Pro Mini plugged)
#define PS2_DAT 13 //14
#define PS2_CMD 11 //15
#define PS2_SEL 10 //16
#define PS2_CLK 12 //17
// If we are using a SSC-32 then:
// If were are running on an Arduino Mega we will use one of the hardware serial port, default to Serial1 above.
// If on Non mega, if the IO pins are set to 0, we will overload the hardware Serial port
// Else we will user SoftwareSerial to talk to the SSC-32
#define cSSC_OUT 8 //Output pin for Botboard - Input of SSC32 (Yellow)
#define cSSC_IN 7 //Input pin for Botboard - Output of SSC32 (Blue)
#endif
//====================================================================
//[SSC PIN NUMBERS]
#define cRRCoxaPin 0 //Rear Right leg Hip Horizontal
#define cRRFemurPin 1 //Rear Right leg Hip Vertical
#define cRRTibiaPin 2 //Rear Right leg Knee
#define cRRTarsPin 3 // Tar
#define cRMCoxaPin 4 //Middle Right leg Hip Horizontal
#define cRMFemurPin 5 //Middle Right leg Hip Vertical
#define cRMTibiaPin 6 //Middle Right leg Knee
#define cRMTarsPin 7 // Tar
#define cRFCoxaPin 8 //Front Right leg Hip Horizontal
#define cRFFemurPin 9 //Front Right leg Hip Vertical
#define cRFTibiaPin 10 //Front Right leg Knee
#define cRFTarsPin 11 // Tar
#define cLRCoxaPin 16 //Rear Left leg Hip Horizontal
#define cLRFemurPin 17 //Rear Left leg Hip Vertical
#define cLRTibiaPin 18 //Rear Left leg Knee
#define cLRTarsPin 19 // Tar
#define cLMCoxaPin 20 //Middle Left leg Hip Horizontal
#define cLMFemurPin 21 //Middle Left leg Hip Vertical
#define cLMTibiaPin 22 //Middle Left leg Knee
#define cLMTarsPin 23 // Tar
#define cLFCoxaPin 24 //Front Left leg Hip Horizontal
#define cLFFemurPin 25 //Front Left leg Hip Vertical
#define cLFTibiaPin 26 //Front Left leg Knee
#define cLFTarsPin 27 // Tar
//--------------------------------------------------------------------
//[MIN/MAX ANGLES]
#define cRRCoxaMin1 -260 //Mechanical limits of the Right Rear Leg, decimals = 1
#define cRRCoxaMax1 740
#define cRRFemurMin1 -1010
#define cRRFemurMax1 950
#define cRRTibiaMin1 -1060
#define cRRTibiaMax1 770
#define cRMCoxaMin1 -530 //Mechanical limits of the Right Middle Leg, decimals = 1
#define cRMCoxaMax1 530
#define cRMFemurMin1 -1010
#define cRMFemurMax1 950
#define cRMTibiaMin1 -1060
#define cRMTibiaMax1 770
#define cRFCoxaMin1 -580 //Mechanical limits of the Right Front Leg, decimals = 1
#define cRFCoxaMax1 740
#define cRFFemurMin1 -1010
#define cRFFemurMax1 950
#define cRFTibiaMin1 -1060
#define cRFTibiaMax1 770
#define cLRCoxaMin1 -740 //Mechanical limits of the Left Rear Leg, decimals = 1
#define cLRCoxaMax1 260
#define cLRFemurMin1 -950
#define cLRFemurMax1 1010
#define cLRTibiaMin1 -770
#define cLRTibiaMax1 1060
#define cLMCoxaMin1 -530 //Mechanical limits of the Left Middle Leg, decimals = 1
#define cLMCoxaMax1 530
#define cLMFemurMin1 -950
#define cLMFemurMax1 1010
#define cLMTibiaMin1 -770
#define cLMTibiaMax1 1060
#define cLFCoxaMin1 -740 //Mechanical limits of the Left Front Leg, decimals = 1
#define cLFCoxaMax1 580
#define cLFFemurMin1 -950
#define cLFFemurMax1 1010
#define cLFTibiaMin1 -770
#define cLFTibiaMax1 1060
//--------------------------------------------------------------------
//[LEG DIMENSIONS]
//Universal dimensions for each leg in mm
#define cXXCoxaLength 29 // This is for CH3-R with Type 3 legs
#define cXXFemurLength 76
#define cXXTibiaLength 106
#define cXXTarsLength 85 // 4DOF only...
#define cRRCoxaLength cXXCoxaLength //Right Rear leg
#define cRRFemurLength cXXFemurLength
#define cRRTibiaLength cXXTibiaLength
#define cRRTarsLength cXXTarsLength //4DOF ONLY
#define cRMCoxaLength cXXCoxaLength //Right middle leg
#define cRMFemurLength cXXFemurLength
#define cRMTibiaLength cXXTibiaLength
#define cRMTarsLength cXXTarsLength //4DOF ONLY
#define cRFCoxaLength cXXCoxaLength //Rigth front leg
#define cRFFemurLength cXXFemurLength
#define cRFTibiaLength cXXTibiaLength
#define cRFTarsLength cXXTarsLength //4DOF ONLY
#define cLRCoxaLength cXXCoxaLength //Left Rear leg
#define cLRFemurLength cXXFemurLength
#define cLRTibiaLength cXXTibiaLength
#define cLRTarsLength cXXTarsLength //4DOF ONLY
#define cLMCoxaLength cXXCoxaLength //Left middle leg
#define cLMFemurLength cXXFemurLength
#define cLMTibiaLength cXXTibiaLength
#define cLMTarsLength cXXTarsLength //4DOF ONLY
#define cLFCoxaLength cXXCoxaLength //Left front leg
#define cLFFemurLength cXXFemurLength
#define cLFTibiaLength cXXTibiaLength
#define cLFTarsLength cXXTarsLength //4DOF ONLY
//--------------------------------------------------------------------
//[BODY DIMENSIONS]
#define cRRCoxaAngle1 -600 //Default Coxa setup angle, decimals = 1
#define cRMCoxaAngle1 0 //Default Coxa setup angle, decimals = 1
#define cRFCoxaAngle1 600 //Default Coxa setup angle, decimals = 1
#define cLRCoxaAngle1 -600 //Default Coxa setup angle, decimals = 1
#define cLMCoxaAngle1 0 //Default Coxa setup angle, decimals = 1
#define cLFCoxaAngle1 600 //Default Coxa setup angle, decimals = 1
#define cRROffsetX -43 //Distance X from center of the body to the Right Rear coxa
#define cRROffsetZ 82 //Distance Z from center of the body to the Right Rear coxa
#define cRMOffsetX -63 //Distance X from center of the body to the Right Middle coxa
#define cRMOffsetZ 0 //Distance Z from center of the body to the Right Middle coxa
#define cRFOffsetX -43 //Distance X from center of the body to the Right Front coxa
#define cRFOffsetZ -82 //Distance Z from center of the body to the Right Front coxa
#define cLROffsetX 43 //Distance X from center of the body to the Left Rear coxa
#define cLROffsetZ 82 //Distance Z from center of the body to the Left Rear coxa
#define cLMOffsetX 63 //Distance X from center of the body to the Left Middle coxa
#define cLMOffsetZ 0 //Distance Z from center of the body to the Left Middle coxa
#define cLFOffsetX 43 //Distance X from center of the body to the Left Front coxa
#define cLFOffsetZ -82 //Distance Z from center of the body to the Left Front coxa
//--------------------------------------------------------------------
//[START POSITIONS FEET]
#define cHexInitXZ 105
#define CHexInitXZCos60 69// COS(60) = .5
#define CHexInitXZSin60 91 // sin(60) = .866
#define CHexInitY 80
#define cRRInitPosX CHexInitXZCos60 //Start positions of the Right Rear leg
#define cRRInitPosY CHexInitY
#define cRRInitPosZ CHexInitXZSin60
#define cRMInitPosX cHexInitXZ //Start positions of the Right Middle leg
#define cRMInitPosY CHexInitY
#define cRMInitPosZ 0
#define cRFInitPosX CHexInitXZCos60 //Start positions of the Right Front leg
#define cRFInitPosY CHexInitY
#define cRFInitPosZ -CHexInitXZSin60
#define cLRInitPosX CHexInitXZCos60 //Start positions of the Left Rear leg
#define cLRInitPosY CHexInitY
#define cLRInitPosZ CHexInitXZSin60
#define cLMInitPosX cHexInitXZ //Start positions of the Left Middle leg
#define cLMInitPosY CHexInitY
#define cLMInitPosZ 0
#define cLFInitPosX CHexInitXZCos60 //Start positions of the Left Front leg
#define cLFInitPosY CHexInitY
#define cLFInitPosZ -CHexInitXZSin60
//-----------------------------------------
//[Tars factors used in formula to calc Tarsus angle relative to the ground]
#define cTarsConst 720 //4DOF ONLY
#define cTarsMulti 2 //4DOF ONLY
#define cTarsFactorA 70 //4DOF ONLY
#define cTarsFactorB 60 //4DOF ONLY
#define cTarsFactorC 50 //4DOF ONLY
Your robot is physically different from the Lynxmotion hexapods (servos are installed at different angles). You need to install and calibrate the servos so they start at the same angles as Lynxmotion robots, and also change the dimensions of each joint within the code.
The hardware (frame and setup) for the robot you have is unknown to us, so we cannot say if the dimensions etc. need to be updated. You’ll also need to center and calibrate your servos like the instructions for the Phoenix. It’s been a while since I looked at the Phoenix code, but the sections about dimensions should be commented somewhere.
My chassis is Phoenix from LM, I buy 2011 exclude servos,
When I get the stuff, I move a house and no time for build, so a couple month ago, I found back In my basement.
I change little bit in femur like A-pod,
Today I change back 1 front leg to Phoenix design,
The problem is when I press turn off button the leg go down direction, (same like before)