Problem with robotic arm with TB6600 and Nema23 steppers

Hi everyone,

me and a friend are building a robotic arm from scratch to teach ourselves more about electronics and mechanics. I know this is a quiet hard project to get more in touch with electronics but we have a lot of time and really want to get into it. Of course we did a few other simpler projects to get used with Arduino before.

Our setup is the following:
A robotic arm with 2 axis, each axis is powered by two Nema23 3A steppers that are connected to a TB6600 driver each. The driver is connected to a 24V 15A power supply and, of course, the Arduino. Each axis is controlled by a joystick that is connected to the Arduino and powered with 5V.

Pictures below.

We measured the voltage and current converted by the power supply which is 24V and 0.5A when the the stepper motors are in the "pause mode" and have their holding torque. We also measured the voltage and current "behind" the driver and had 1A and 24V. The driver is configured to provide 3A for the steppers and 1/4 step.

Now the problem: We wrote a small code just to make sure the wiring was correct and the arm moved more or less, depending on it's position, which leads us to the problem we can't get rid of. Although we have two Nema23 steppers and a gear box the arm can barely lift itself. Our conjecture is that we don't get enough current to the motors so that the movement torque is too low. Another idea is that we have a poor code - we wrote one ourselves but to make sure that the wiring is correct we used that example code from the web - that doesn't support the TBA6600 with it's full potential.

#include <AccelStepper.h>

AccelStepper stepper(1, 11, 12);

void setup() {  
  stepper.setMaxSpeed(1000);
  stepper.setAcceleration(1100);
  stepper.moveTo(2000);
}

void loop() {
    stepper.run();
}

We are getting mad searching our "mistake" that prevents the motors from working at their full potential. Maybe we are missing a significant point or doing something terribly wrong. However, I hope I didn't miss anything important for you to understand what we are doing and where our problem is.

Thanks a lot in advance!

You'll need to post your pictures HERE, so everyone can see them.

Got it and fixed it.

Which of the two steppers are you driving? Is the other stepper powered? Is it fighting to hold the mechanism still?

I am driving both steppers and both are powered: one clockwise, one counterclockwise so both of them are turning the axis. It is not fighting to hold the mechanism still, which is the main problem we are facing.

Images from Original Post so we don't have to download them. See this Image Guide

...R

That's a pretty hefty mechanism. Have you properly calculated the torque that is required to move it? Maybe you just need more powerful motors?

Have you tried very slow motion to start with?

If you have properly adjusted the motor current on each driver and if you have an adequate power supply there is no reason to suspect that the motors are not getting enough current? I presume they get hot - probably uncomfortable to touch with your finger.

...R

Thanks for the guide and your answer Robin. At first we had a belt drive instead of the gearbox and managed to get better results than now which is somewhat strange. The first arm in the top right corner only weights about 300g - 400g. We adjusted the acceleration and speed a few times and tried different values but that didn't change the problem.

The motors aren't getting hot at anytime which may imply that they don't the maximum current. To be honest, the driver are classical china-products what leads me to the conjecture of some poor installed electronics?

Just to make sure I don't miss anything: The smaller the steps made by the stepper the lower the movement torque, right?

genes1s:
The smaller the steps made by the stepper the lower the movement torque, right?

If you are asking whether micro-steps have less torque than full steps then the answer is yes because microstepping is achieved by using the magnetic fields to oppose each other. But the full torque will be available when the microstep position coincides with a full step position.

...R

Robin2:
But the full torque will be available when the microstep position coincides with a full step position.

That sounds plausible to me but at the moment I can't imagine how to create this situation. Maybe by increasing the speed?

Hi,

Can you please post a copy of your circuit, in CAD or a picture of a hand drawn circuit in jpg, png?

If you place the assembly on its side so your arms are not battling gravity, how does it move?

Can you post a picture of the dip switch settings on the drivers please.

Thanks.. Tom... :slight_smile:

genes1s:

But the full torque will be available when the microstep position coincides with a full step position.

That sounds plausible to me but at the moment I can't imagine how to create this situation. Maybe by increasing the speed?

Your comment suggests to me that you did not understand what I was trying to say.

Suppose you have x4 microstepping, then every 4th microstep will coincide with a full-step position. I did not intend to imply anything to do with speed. Torque decreases with speed - that's why motors have a maximum speed.

If you have something else in mind please explain further.

...R

Thanks Robin, was my bad since I really missunderstood you.

Here is a picture of the last dip switch settings we tried out and a picture of the driver as well:


And here the wiring of one stepper motor:

I hope you can get all the information you need to understand what we did! Thanks a lot in advance, again.

Edit: Unfortunately the picture of the wiring got resized by vBulletin :-/

TomGeorge:
If you place the assembly on its side so your arms are not battling gravity, how does it move?

I don't get the point, what may be a cause of my deficient english vocabulary but could you explain what you mean? I guess the arm is battling gravity at any time it doesn't stand in a 90° angle to its axis.

Hi,
Am I right in looking at your mechanical picture, you have two servos connected together at the shafts?

Why?


If you disconnect the driver from one of the servos, so it kind of free wheels, what happens.

Can you remove one of the servos completely and see what happens.

Tom.... :

genes1s:
I don't get the point, what may be a cause of my deficient english vocabulary but could you explain what you mean? I guess the arm is battling gravity at any time it doesn't stand in a 90° angle to its axis.

I think @TomGeorge was wondering if the motors work properly when there is no load on them.

If they do then your program is probably OK. If they don't then I would suspect a problem with the program.

Your DIP switch settings seem to be for full steps and 2.5 amps current - is that correct?

If you have a 3 amp motor why not set the driver for 3 amps? However I doubt if that is the main problem.

You have not said whether you have tried very slow motion - perhaps 5 steps per second, or even slower?

...R

TomGeorge:
Am I right in looking at your mechanical picture, you have two servos connected together at the shafts?

Yes, you are right! The steppers are turning clockwise and counterclockwise so that the gear turns for example backwards. They are not disturbing each other because the opposite rotation directions. The idea was to extend the movement torque by adding more than one stepper to the axis. I will also try disconnecting on of the steppers later and write here what happends.

Robin2:
You have not said whether you have tried very slow motion - perhaps 5 steps per second, or even slower?

We tried pretty slow motion but I am not sure if it was that slow. I will test this later when I am back home and tell you how it went. What should the solution be?

genes1s:
We tried pretty slow motion but I am not sure if it was that slow. I will test this later when I am back home and tell you how it went. What should the solution be?

Assuming that question is aimed at me I don't understand what sort of answer you are expecting.

All I was suggesting was to see if the motors work at very slow speed when their torque will be greatest. If the y do then you can gradually try higher speeds to discover what the limit is.

And I am assuming you are testing the motors without a load on them. If they don't work at very low speed without a load then there is something seriously wrong somewhere.

...R

Robin2:
All I was suggesting was to see if the motors work at very slow speed when their torque will be greatest. If the y do then you can gradually try higher speeds to discover what the limit is.

Letting the motors drive with very low speed and 5 steps didn't bring the wanted result. It is still the same problem like in the beginning. The arm is pretty easy to stop so that the motor jumps over, if you know what I mean. Maybe it helps if we attach the stepper directly the axis and don't use the gearbox? Is there any other possibility than measuring the current to make sure that I get the most out of my steppers?

Slowy I start to get used to the idea that the lever is way too high for the motor. While searching for new ideas I found this video on YouTube: YouTube video with stepper motor and bucket This guys seems to lift that bucket with a smaller Nema as if it were nothing. What is his secret? :smiley:

genes1s:
Letting the motors drive with very low speed and 5 steps didn't bring the wanted result. It is still the same problem like in the beginning. The arm is pretty easy to stop so that the motor jumps over,

That still sounds as if you are trying the motors with a load on them rather than starting right at the beginning with the motors able to run free and separate from each other.

Why not try a simple test like in the video?

...R