Phoenix final step missing

Hi all,

as many others I 3D-printed my hexapod parts (Phoenix-like) and used the following configuration:

Hardware:

  • SSC32U
  • Botboarduino
  • HS645MG
  • 9V for VL
  • 6V for VS

Software:

  • BotBoarduino_CH3R_PS2

What I have achieved so far:

  • Build up the hexapod (though 2 legs of the hexapod are not ready due to missing Servos) / I have connected 4 legs ( front and back)
  • Servos connected to SSC32U
  • SSC32U and botboarduino connected
  • PS2 receiver connected to botboarduino
  • used Lynxterm for calibration (though I m not sure if I used Offset and width in the right manner)
  • Baud rate of SSC set to 38600

And here comes my challenge:
When starting up the System the legs move for a second to the offset Position…

  • then the servos stop working.
  • on SSC32 the blue LED is on and the green LED is flashing
  • on botboarduino the PWR and the L LED are on and the TX and RX LED are flashing
  • the green LED on the PS2 receiver is on
  • there is no reaction when pushing any button on PS2 Control

So I started the Arduino Monitor and connected the USB cable to botboarduino. I got some Messages about how to start offset and debug mode so I think the Software on botboarduino is running

I went “O” into the offset mode and at this Moment all legs moved to their offset Position !!! I was able to chage the offset values by typing + , which ,means that the communication between SSC32U and botboarduino is fine

After waiting few minutes the green LED from the PS2 receiver starts blinking, and after pushing the start button on the PS2 Control the LED turns on,

the only thing I can t check is if botboarduino is receiving anything from the PS2 receiver, I double checked the wiring and it looks fine.

What am I missing ???

Please help …

Which code have you loaded in the BotBoarduino ? Start with the one attached.
We suggest to do the offset calibration using LynxTerm with the old method that can be found Here.

Note: This one is set for a baudrate of 38400 for the SSC32U.
3 DoF Ready - Phoenix.zip (61 KB)

Hi Eric,

many thanks , I ll try the new Code and the calibration method.

One more question, is there a specific PS2X_lib.h you would suggest me to use ? There are plenty at Google :slight_smile:

Sure, here is the direct link to the Lynxmotion GitHub / Arduino-PS2X library.

:slight_smile:

Thx again, I used the right Code and the callibration method, but onfortunately no Progress :frowning:

here are some pics
Pic1: This is how it looks like when I connect 6V to VS
Pic2: After connecting 9V to VL
Pic3: Wiring and Jumper of botboarduino

The boards and wires are not yet connected on the hexapod (actually it s a quadropod, since two legs are missing) still working on it :slight_smile:



If you could send us pictures showing the connection between the PS2 and the Botboarduino wiring, it would be nice.
Explain clearly what’s not working in your setup at the moment.

Some information to start off:

  • Power everything from the 6V battery - No need for the 9V anymore with the SSC32U (usb version)
  • Make sure everything is connected and jumpers are like the pictures attached.

:slight_smile:


Here is the pic of the PS2 Wiring. I followed your pics for wiring and Jumper, and I use the 6V power suply.

As you can see in the Video after connecting power, the Robot moves up, and after a second falls down again. And there is no reaction if I use the PS2 Control.

P.S. I can t upload the Video, is there any restriction ? ( it has just 3,5 MB)

Which extension for videos is allowed ?

What are you doing on the PS2 controller to activate the Robot?
About videos, it’s easier to upload them to YouTube than add the link.

Also, make sure your battery is fully charged

I press the start button, but nothing happens
Here is the link of the Video. As you can see the Robot moves up, and after the beep falls down.

The battery is full.

The robot should not move at Power-Up in normal configuration. Have you done the calibration with LynxTerm ?
Make sure that in the “Register” window you do not have anything set for “Initial pulse width”

For the PS2 controller, when you press “Start” do you have a sound coming from the BotBoarduino ?
If not, than it could be a bad wiring and/or the receiver not paired to the transmitter.

After looking closely at the connection between the PS2 receiver and the Botboarduino, it seems that you made a mistake. DAT and ATT are inverted.

Hi Eric,

I repeated the calibration and unclicked the “Initial pulse width” box.

what happens now:-
-connecting Power

  • no movement of any servo
  • the tx/Rx LEDs of the botboarduino start blinking fast
  • after 2 seconds there is a beep, and the red LED on botboarduino starts blinking
  • the green LED on the PS2 Receiver ist on
  • the green LED on the PS2 remote Control is on
  • the red LED on the PS2 remote Control is off
  • the blue LED on SSC32U is on

If I press the “Start” button on the PS2 Remote, nothing happens, no beep no reaction at all

If I connnect the botboarduino with my PC via USB and start the Serial monitor of arduino I get following Output:


Check GP Enable: 53534333322D56322E3530555342DSSC32-V2.50USB

S - SSC Forwarder
O - Enter Servo offset mode
D - Toggle debug on or off

and if I press “O” the Servos start moving to their initial Position, and I get the following Output:


Find Servo Zeros
$-Exit, ± changes, *-change servo
0-5 Chooses a leg, C-Coxa, F-Femur, T-Tibia,
Servo:RR Femur(-4)

after pressing “$” the servos stop working again …

Next Step:
Since the red LED is blinking, I looked into the code and found following:

  • the red LED is LEDA
  • during Setup it is turned of
  • later on it get s the value “IKSolutionError”
  • the “IKSolutionError” gets a true value when solution ( I guess it s the IK calculation) is not possible
  • this happens here:

//Set the Solution quality
if(IKSW2 < ((byte)pgm_read_byte(&cFemurLength[LegIKLegNr])+(byte)pgm_read_byte(&cTibiaLength[LegIKLegNr])-30)*c2DEC)
IKSolution = 1;
else
{
if(IKSW2 < ((byte)pgm_read_byte(&cFemurLength[LegIKLegNr])+(byte)pgm_read_byte(&cTibiaLength[LegIKLegNr]))*c2DEC)
IKSolutionWarning = 1;
else
IKSolutionError = 1 ;
}

but why ist the calculation not possible ? I did not Change any value in the code.

Can it be that the two missing legs are the Problem ???

Is this after correcting your wiring for the PS2 receiver ?

yes I did , and I changed the cables as well (see pic). but still no rection …

  • Can it be that the two missing legs are the Problem ?

  • Does it make sense to use the Serial Monitor to check if PS2 is running ?

Hi Eric

it is working now !!! I just reversed the cable with data and att and now everything is fine

Many many thanks, your support was great !!! moving on now with the missing two legs :slight_smile:

But I still have a question, maybe I m to stupid to understand it, but on the scematic it is the other way around, and I was following all the time this schematic.

This is true but in the code (arduino) those two pins can be interchanged.
We will update the image accordingly soon.

:slight_smile:

Hi all,

I have build a Hexapod with a custom 3D printed body. In the assembly guide there is a step in the calibration part where you have to adjust the “robot s horizontal hip servos” (Step 7).
it says to “adjust the ‘Offset’ slider until the tibia is in line with the horizontal hip servo horn’s screws as shown.” (see second pic).
My challenge is that my servo horn screws are in holes that I drilled myself, so I have no idea how they are oriented in the original phoenix body !
Can anyone please tell me the angle of the orientation according to my first pic ? ( I used a pic of the original Phoenix to show which angle I m looking for)

Many thx :slight_smile:
Unbenannt.png