New Hexapod recently bought not moving, but Flowbotics works

Hi everyone!

I recently bought the M-AH3 and successfully assembled it.

A minor side note, the set of screws and nuts that came with it that were for attaching the SSC and BotBoarduino seem to be the set for the AH3. It didn’t include the smaller M/F spacers for attaching the SSC to the lower frame. Had to improvise and attach the BotBoarduino to the upper frame. No Problem.

So I got everything connected, wired, and everything seems to be good except it wont walk. I am able to use the Arduino Serial Monitor window and start the servo manual thing by pressing “o”, then the servos jump into mid 1500 position, and I can hear them holding position. When I cycle through, it wiggles each servo and they all seem to work just fine. Also, when I use the Flowbotics ‘SSC-32 Servo Sequencer Utility.exe’ I can open the comm, send the letter ‘s’ for direct SSC bypass, and then the Flowbotics app can move the servos, and I can set sequences up that move the servos around, no problem. When I leave this calibration/debug mode, the servos go limp. I unplug the BotBoarduino from my laptop, and push the ‘Start’ button on the PS2 controller, and I hear the BotBoardino chime up, indicating it is “Powered On”. But the servos just stay limp! Pushing buttons on the PS2 controller, I hear the BotBoardiuno make all kinds of sounds, but no movement. It seems the hardware is set up properly, fairly sure of this, but something in the software is not right. I am fairly familiar with c# and java, I have built other robots using servos and sensors. But I am stumped. I went through the code and set all baud rates to 115,200 to keep things constant, and set the jumpers on the SSC for this also. Tested again and everything still works in calibration, but not otherwise. Another note, when using the PS2 controller, if I am not pushing any buttons, the red status light on the BotBoarduino flashes very rapidly (my thoughts is the main program loop is looping very fast as it is not processing any commands). But when I move the left joystick around, it flashes somewhat rapidly, AND the status light on the SSC also flashes rapidly. I have triple checked my comm wire pins and I am fairly certain they’re connected right.

So close to having this thing working! Any help is appreciated!

Below is a cut from the software I am using. Is there a newer one? Or a better one out?

//=============================================================================
//Project Lynxmotion Phoenix
//Description: Phoenix software
//Software version: V2.0
//Date: 29-10-2009
//Programmer: Jeroen Janssen [aka Xan]
// Kurt Eckhardt(KurtE) converted to C and Arduino
//
// This version of the Phoenix code was ported over to the Arduino Environement
// and is specifically configured for the Lynxmotion BotBoarduino
//
//NEW IN V2.1 (2013-05-17)
// - setup() made more generic by replacing exact pin-n° by PS2_CMD
//NEW IN V2.X

Can you indicate which battery (batteries) you are using? The servos are large and consume a LOT of current and as such we highly recommend one 6V, 2800mAh NiMh pack for VS1 and another for VS2, and a 9V battery for VL. Be sure to set the jumpers correctly. Also, be sure to have the servos plugged into the board correctly, with the GND (black wire) facing the outside of the board. Next, be sure the baud rate jumpers on the SSC-32 is set as indicated in the sample code and ensure you have the correct microcontroller pins connected to the SSC-32. Once this is done, it’s important to wire the PS2 correctly (if you get a beep that’s a good sign).

If you can calibrate each servo via the software, that’s very good - it means the setup is configured correctly and it’s likely a different issue (ensure you have the servos as perfectly calibrated as possible mechanically and via code to get a nice smooth walking gait). If the robot stands (all 1500) but does not move, it’s likely a code issue, or the right buttons on the PS2 controller have not been pressed correctly.

Can you take a few images of the setup and perhaps we can spot something? The same code is used for all robots of this type (CH3, BH3, MAH3 etc).

Not entirely sure - can you provide a link to the step in the assembly guide which has the wrong product? The SSC-32 and microcontroller are connected the same way to almost all of the frames, though if we included the wrong parts, we would like to take the chance to correct it.

A few things, It would help to see your setup. Especially the wiring. Like how the Botboarduino is connected to the SSC-32. What baud rate are you using? Are the jumpers on the SSC-32 correct for this? What version of the SSC-32 firmware are you using? The one that shipped with it or the did you update it to one of the newer ones that support binary commands? The code may be configured to use binary codes.
Note: I keep my more recent versions of the Phoenix code base up on github: github.com/KurtE/Arduino_Phoenix_Parts

The code is broken up into many libraries which you only import headers from. Note: I never setup any of my example configurations for an AHR type robot. Should not be hard to configure one up. The main difference has to do with the length of the different leg segments and the initial standing positions. The closest ones I have up there is for the CHR and I don’t think I have any of them with the SSC-32. So it might take you a little bit of work, to get things perfect. Note: I no longer have my CHR-3 setup so won’t be much help here.

Assuming the PS2 is working properly. Do the LEDS on the receiver come on? Solid or blinking? Change when you turn on transmitter? If working, the robot should respond once you hit the start button on the PS2. When you press this, the legs should move to a start position and you should hear something on the speaker. If the speaker works but not servos, again would guess wiring between the two boards, and/or buad and/or wrong version of the SSC-32 firmware.

Note if it is an SSC-32 binary mode issue, you can fix two ways. Update the SSC-32 firmware with the current one that supports it (2.07egp) from lynxmotion.com/p-395-ssc-32- … oller.aspx

Or tell the code not to use binary mode. Look for a define like: #define cSSC_BINARYMODE and comment it out (put // at the start) or remove it and see if that helps.

Kurt

Hi Coleman and Kurt!

Thank you so much for your reply! I think I am on the right track, I did see the define Binary mode line in the code, and it was one of the things that stood out for me. Also, I had thought about updating the firmware on the SSC-32, but decided against it at the time because I didn’t want to stray too far from the “Out of the box” where in theory it should work. But if it’s recommended then I can certainly give that a try. I didn’t have time this morning to get the current firmware version, but I remember it being older than the version you mention.

I am using (2) 6V batteries of the type recommended on the Lynxmotion and Robotshop website, and a 9v battery. I definitely agree with keeping the power for the boards separate from the power for the servos. I have tested the VS and VL lines on the SSC and they are reading proper voltage at each terminal, same at the BotBoarduino. I have gotten the servos to move using FlowBotics software, and setting the BotBoarduino to SSC bypass. Flexing the servos slightly while they are holding, they strongly resist, seems to be plenty of power for them.

I read the configuration of the button layout. When I push the start button on the PS2, the BotBoarduino does chime in an upward inflection, most likely indicating “power up”. But all servos stay limp.

This is the page I have been going over for setting this up.
lynxmotion.com/images/html/build99f.htm

I will test your ideas when I get home tonight, and let you know the results! Thank you!

Hi folks,

Just wanted to follow up, turns out it was the firmware on the SSC that was outdated. Had to use a USB to DB9 serial cable to update the firmware also, couldn’t do it through the forwarder on the BotBoarduino. I thought I had the USB to DB9 cable somewhere but ended up running out and getting a new one, needed some supplies anyway. If you guys still sell these Hexapods often maybe add this into the build steps on the Lynxmotion site.

Anyway, really enjoying this thing so far! I am currently installing the FSR on the toes, seem to be working great. Next will be the gyroscope. Then the programming. I’m going to be designing this thing to be much more dynamic and responsive to the terrain. Instead of a walking “gait”, it will cycle through each leg and decide what to do with it. Never bringing more than 3 legs off the ground at a time, it will "search for a safe location to place a leg, memorize that spot, and better utilize the full range of motion maintain as many legs on the ground as possible. I’m planning for this thing to carry a load, and carefully maneuver through rough terrain. Should be interesting! I’ll follow up when I have progress!

  • Trevor

Appreciated. We have some updating to do in the way of code and may do it all at the same time.

Really looking forward to seeing your progress.