AL5D Robotic Arm doesn't work

Hi everybody,
I’ve recently bought a Robo Arm (AL5D Robotic Arm). Because it consists from regular servos, I decided to test them directly. I wrote a regular Arduino script for the arm that raised and lowered the arm up and then down. The first time everything works as it should, but then, the arm just falls down. Could you tell me what’s wrong.
Here it the link to the video: youtube.com/watch?v=L_6EqSbkFXA.

And below is the Arduino source code with comments:

[code]#include <Servo.h>

Servo Base;
Servo Elb;
Servo Shldr;
Servo Wrist;

Servo WristR;
Servo Gripper;

void setup()
{
      Serial.begin(57600);

     Base.attach(2);
     Shldr.attach(3);
     Elb.attach(4);
     Wrist.attach(5);
}

void loop()
{
    int BASE_ANGLE;  
    int SHLDR_ANGLE; 
    int ELB_ANGLE ;  
    int WRIST_ANGLE;  
    
    BASE_ANGLE  = 80;  
    SHLDR_ANGLE = 20;  
    ELB_ANGLE   = 22;  
    WRIST_ANGLE = 20; 
    
    for(int i = 1; i < 5; i++)
    {
    Base.write(BASE_ANGLE);
    Shldr.write(SHLDR_ANGLE);
    Elb.write(ELB_ANGLE);
    Wrist.write(WRIST_ANGLE);
    SHLDR_ANGLE += i * 5;
    delay(1500);
    }
    
    for(int i = 1; i < 5; i++)
    {
    Base.write(BASE_ANGLE);
    Shldr.write(SHLDR_ANGLE);
    Elb.write(ELB_ANGLE);
    Wrist.write(WRIST_ANGLE);
    SHLDR_ANGLE -= i * 5;
    delay(1500);
    }
}[/code]

Thank you.

Hi,

Does the arm do that repetitively, and always at the same position? I would first suspect it might be a power problem: do you have the BotBoarduino’s VL powered by a 9 volt battery separate from the 6 volt supply for the servos?

Also, I noticed that your code makes the shoulder servo step by 5, 10, 15, and then 20 degrees (step from the previous position, not from the original position). Could you try making the shoulder step only 5 degrees every time? Perhaps the following code would give different results:

[code]#include <Servo.h>

Servo Base;
Servo Elb;
Servo Shldr;
Servo Wrist;

Servo WristR;
Servo Gripper;

void setup()
{
      Serial.begin(57600);

     Base.attach(2);
     Shldr.attach(3);
     Elb.attach(4);
     Wrist.attach(5);
}

void loop()
{
    int BASE_ANGLE;  
    int SHLDR_ANGLE; 
    int ELB_ANGLE ;  
    int WRIST_ANGLE;  
    
    BASE_ANGLE  = 80;  
    SHLDR_ANGLE = 20;  
    ELB_ANGLE   = 22;  
    WRIST_ANGLE = 20; 
    
    for(int i = 1; i < 11; i++)
    {
    Base.write(BASE_ANGLE);
    Shldr.write(SHLDR_ANGLE);
    Elb.write(ELB_ANGLE);
    Wrist.write(WRIST_ANGLE);
    SHLDR_ANGLE += 5;
    delay(1500);
    }
    
    for(int i = 1; i < 11; i++)
    {
    Base.write(BASE_ANGLE);
    Shldr.write(SHLDR_ANGLE);
    Elb.write(ELB_ANGLE);
    Wrist.write(WRIST_ANGLE);
    SHLDR_ANGLE -= 5;
    delay(1500);
    }
}[/code]

I corrected the script, but it did not help.
The first time the arm goes up and down, and then just stops working. The problem is most likely in the power, because if I disconnect the battery, the arm works the same with disconnected battery. Here’s a link to the diagram that shows how I connected the power: docs.google.com/file/d/0Bz1OVG2IV2imNEhiNTFRem9LcGc/edit?usp=sharing&pli=1.
Thanks!

Hi,

Since you have two power supplies (the DC supply from the wall, and the 9 volt battery) you should remove the VS=VL jumper otherwise the 9 volt battery ends up trying to “recharge” the 6 volt supply from the wall, but ends up just draining the battery instead. Separating the VS and VL supplies means that when the VS voltage temporarily sags due to too much current being consumed, the VL voltage will stay at appropriate levels and the microcontroller will keep running regularly.

Also, if your arm is always going to be plugged into USB, you can switch the USB/Ext jumper to its other position (USB) and remove the 9 volt battery. If you do this, you still need to remove the VS=VL jumper.

Once you make these changes, the arm should work properly.

Thanks for help,
After I removed the VS=VL jumper and replace the battery, it works much better. Nevertheless, the battery very quickly discharges. I decided to replace it with a power supply (9V 500mA).
But power supply works same as discharged battery - after couple lifting, the arm stops working.
NOTE: it doesn’t work with USB.

Hi,

We noticed one more thing that you need to change: the “5V vs VS” jumper next to servo pins 2-5 should be placed to use VS instead of 5V. This change will mean the servos will be powered from the VS source (6VDC external supply) instead of the 9 VDC battery with 5 volt regulator.

You can find more information about the function of this jumper (and the other similar ones) by looking at item 7 in the BotBoarduino manual:

Once you make this change, your arm should work properly and so should the USB mode.

We hope this helps,

Now it works! Thank you very much!

Hi,

I bought an AL5D robot arm as a project for my son Luke. He is at the first stage of the project and has assembled the electronics and base and is trying to test the base servo. The software is downloaded, the board LED glows green and then flickers when a command is sent. The problem starts almost immediately and the base servo appears to struggle and move back and forth randomly, almost undecided which way to turn. It does this for a about 10 - 15 seconds and then it stops. We have tried to center it or move the base servo one direction or the other but the base does the same struggle dance and then stops after another 10 - 15 seconds. Nothing seems to get it to operate smoothly. I have a video of the behavior if you are interested. Any idea what is going wrong? All ideas welcome or is this just a bad board or defective servo?

Please let us know as soon as you can.

Thanks George & Luke

Would help to have more info, like what board, what software, which tutorial you are following (if any).
How is it powered, picture showing board with wiring and jumpers would help. Yes videos can help.

Kurt

As Kurte indicated, a video would be appreciated. If the servos are not behaving correctly, do not operate them for long or else (in a worst case scenario) they may fry.

Hi Kurt & CBenson,

Really appreciate your responses. Sorry for late reply. Wasn’t home to supply the details needed. Here are the details you requested.

Circuit board we have is:
SSC-32 Ver 2.01

The software we are using is:
LynxTerm v1.11

The tutorial we are using is:
Arm Base Assembly Guide v2.0

We are powering the board using the supplied power supply with the kit along with a 9 volt battery.

Trying to attach a video but having trouble (site doesn’t like .mov format) trying to attach mpeg-4, DV or .avi. Neither seems to work either. What format works as a video upload?

If you have a cell phone number, please supply and we will send to you as a MMS text message. Will attach photos in a subsequent post.

Looking forward to your help guys!!!

Thanks again,

George

Guys,

Here are a few photo’s of the work on progress.

George



Check the baud rate jumpers and ensure they correspond to the baud rate set in the program.

So far in your pictures I do not see anything obviously wrong. It looks like you properly removed the jumper as shown in figure 16 (lynxmotion.com/images/html/build40d.htm).

Power wise, if you have one try a different 9v battery (on the off chance something is wrong with it). Also double check the wall wart you are using, and check for any labeling on it. Make sure the output says 6v and it is something like 2amp. Also make sure both power switches are on. If you have one, I would also use some form of multimeter to check the voltages at the power pins. (Both at the terminals and at the IO pins)

Things that I can not see, that I would check for include: Make sure there are no strands of the power cables that are shorting. It is sometimes hard to get all of the strands of the large wires into the connectors on the SSC-32 and I have seen times when they are shorting out (been there).

In step 20 did it properly show the version number coming back? If so, that implies that baud rate is set correctly.

Is it in step 21, that the servo is acting strangely? I would also check to see that the servo cable is plugged in correctly. Looks like right direction, but double check that it is not off (missing one of the pins).

If still no luck, again as CBenson mentioned, careful leaving power to something that is not working correctly can cause it to fail… What I would try next would be to unplug that servo and plug in a different servo that came with the kit and see if that one appears to work correctly. If so try it on a few different IO pins.

Thanks for suggestions guys. Not at home to check them out but will this evening. Will respond later when I have robot in front of me. Stay tuned. George

Coleman & Kurt,

Here is the latest based on what you suggested:

  1. Check the baud rate jumpers and ensure they correspond to the baud rate set in the program - NOT SURE HOW TO CHECK THE BAUD RATE JUMPERS. THE BAUD RATE IN THE SETUP ON THE PROGRAM IS 115200. THE APPEARS TO BE THE ONLY BAUD RATE THAT WORKS AND COMMUNICATES WITH THE SERVO AT ALL.

  2. try a different 9v battery (on the off chance something is wrong with it - CHECKED THE BATTERY. IT WAS GOOD. REPLACED IT ANYWAY. NO CHANGE.

  3. Make sure the output says 6v and it is something like 2amp. - DID THIS AND THE POWER SUPPLY CLEARLY READS 6V AND 2 AMPS.

  4. Also make sure both power switches are on. - YES BOTH SWITCHES WERE ON.

  5. I would also use some form of multimeter to check the voltages at the power pins. (Both at the terminals and at the IO pins) - WILL TRY THAT TOMORROW. MY FRIEND HAS ONE AND I WILL BORROW IT TOMORROW.

  6. Make sure there are no strands of the power cables that are shorting. It is sometimes hard to get all of the strands of the large wires into the connectors on the SSC-32 and I have seen times when they are shorting out (been there). - LOOKS CLEAR. WILL TEST MULTIMETER TOMORROW TO MAKE SURE NO CROSS SHORT. WILL KNOW TOMORROW.

  7. In step 20 did it properly show the version number coming back? If so, that implies that baud rate is set correctly. - YES THE CORRECT BAUD RATE CAME BACK WHEN SET AT 115200.

  8. Is it in step 21, that the servo is acting strangely? - YES, THIS IS WHERE THE SERVO IS JERKING BACK AND FORTH, STRUGGLING. IT MOVES BUT JERKS BACK AND FORTH STRUGGLING TO GET TO THE PLACE WE MOVE THE SLIDER TO.

  9. I would also check to see that the servo cable is plugged in correctly. Looks like right direction, but double check that it is not off (missing one of the pins).

  • YES, CHECKED THIS AND IT IS PLUGGED IN AS DESCRIBED IN THE TUTORIAL.
  1. What I would try next would be to unplug that servo and plug in a different servo that came with the kit and see if that one appears to work correctly. - TOOK ANOTHER SERVO LIKE THE BASE ONE, PLUGGED IT INTO TERMINAL 01 AND IT BEHAVED LIKE THE BASE SERVO. JERKING BACK AND FORTH, CLEARLY STRUGGLING AS WELL. IT APPEARS THE SERVO IN THE BASE IS NOT THE PROBLEM. IT IS ELSEWHERE.

  2. If so try it on a few different IO pins. - WE TRIED IT ON SEVERAL PINS AND CHANGED CHANNELS. THE SAME STRUGGLING OF THE SERVO HAPPENS ON ALL IO PINS TRIED. NO CHANGE.

WE CHANGED THE SERIAL CABLE TO A USB TO SERIAL CABLE AS WELL AND THAT DID NOT CHANGE BEHAVIOR AT ALL. WE DID HAVE TO CHANGE DIFFERENT COM PORTS BUT WE WERE ABLE TO COMMUNICATE BETWEEN THE COMPUTER AND THE SERVO, NO PROBLEM. JUST THE SAME STRUGGLING SERVO EFFECT.

SOUNDS LIKE A BOARD ISSUE. ANY OTHER SUGGESTIONS?

GEORGE & LUKE

Sounds like you have tried most things, which is great. As an end user such as myself, there are a few more thing I might try and if I still did not have any luck, I would probably call Lynxmotion or email support and see about some form of RMA…

On general principles, I would redo the wiring going into the board. I would check both the power and ground wires to make sure there are not any loose strands. To be doubly sure of not getting any shorts with the main servo wires, what I will often do is to completely separate the + from the - That is in the drawing: lynxmotion.com/images/html/b … m#ssc32lay (connect the + legs say in the + of VS2 connector #2 in drawing and connect the - into the VS1 connector #6 in the drawing. Also make sure connections are tight…

Also check to make sure there is nothing loose around the board, like a nut or wire strands… that can short out.

Long shot, but I would check to see if it works better at a lower baud rate. Set the baud rate in Lynxterm to 38400 and update the jumpers on the board: #9 in the drawing (only the first jumper in place). This would see if for some reason your computer or USB converter or … is not having problems talking at higher baud rates…

If it were me, I would also use logic analyzer to see the signals coming out to the SSC-32, but few of us have that as an option.

Again hope this helps, if not you should probably contact them directly.
Kurt

The advice from Kurte is very good. Please contact us to our support center if the problem persists after those verifications so we can provide you with an RMA: [email protected].

I’d suggest disconnecting the servos from the ssc-32 and do some simple testing with the lynxterm application. You can send the “ver” command to the ssc-32 and see if you get a response. Set the baud jumper on the board to some value setting, then test the command at that setting (and other settings if necessary) using lynxterm. This should indicate if the board is working and what the baud jumper is set at. If that works, then just connect one servo and see if it can be commanded to different positions.

Hi Carlos & Kurt,

Sorry for the delayed response. Family went away this past weekend.

Regardless, my son and I tried re-wiring from scratch as suggested being exceedingly careful to insure no shorts. Absolutely no change whatsoever. The servo jerks back and forth with each command we put in via the slider. Tried separating VS1 & VS2 as suggested and rearranging the jumpers and no change as well. Exact same behavior.

There is nothing loose on the board and we also played with the baud rate and the jumpers. Again, no change.

Given we have no analyzer to use to see what is coming out of the SSC-32, I think we are resigned that there is something wrong with the board.

My son is terribly discouraged at this stage and is loosing interest in this father/son project quickly.

I think in order to not completely lose him, I need to pursue the RMA route and fast.

Sorry guys, thanks for all of your tips. This one appears to be a bad board.

Any final thoughts are appreciated how to RMA are appreciated. Do we only send back the bad board or the whole kit?

Thanks,

George & Luke