Current limiting with steppers, speed and torque

Hi everyone!

I’m using the DRV8834 as driver and this stepper
I have for issue that my robot can’t start moving because of no enough torque.
To increase it, I’m decreasing the speed of the steppers motors. Does it helps like with a normal motor with a gearbox?
Also, does microsteping will help me? According to my research I don’t think so however I’m not sure.
Should I decrease the size of my wheels? Will it make a difference since I could simply decrease the speed of the motors. So with a bigger wheel I could have a smaller rotational speed required and than have a higher torque coming from the motor for a higher torque required to start the robot.

Also, does boosting the voltage of my motor stepper with current limiting would help for the torque or only the speed?

According to the understanding I had of the only website I found. The only solution might be to boost the current or take smaller wheels.

Thank you,
Max.

The speed of a stepper motor is controlled by the voltage -- use the highest you can. The torque is controlled by the current, which you must set correctly on the stepper driver to the highest value allowed for the motor, in this case 600 mA/winding. Microstepping won't help.

However, that particular motor is small, low power and low torque. You may need a bigger one. To calculate the torque required to move your particular robot, here is a good tutorial.

I have more torque than enough. I have 360 g*cm.
So I have a force of 124g with my wheel of 58mm.
My robot weight of 500g.
The biggest hill I have to climb is of 11 degree. sin(11)*500=95,4g of force.
Even in the hill, I should be able to climb it. However my robot can't even start without an impulsion at horizontal. Altough, I just realized that my beetle isn't moving, it's sliding. So I have to beat the static friction. I think that the static friction of my beetle is too much and that with the dynamic one, my robot can move.

Does it seems possible to you? Is it an issue with all the beetle or is my one bad quality made (it's also made of plastic)?
(My robot is moving thank's to 2 wheels and 1 beetle.)

Your analysis assumes that the motors are operating at maximum capability.
What voltage is the motor power supply?
Have you set the motor current limit to 600 mA/winding?

jremington:
Your analysis assumes that the motors are operating at maximum capability.
What voltage is the motor power supply?
Have you set the motor current limit to 600 mA/winding?

I'm using 6V with the limit current at 0,87 mA because of the 30% reduction of the current limit reduction when using full step from the DRV8834. So I have a real 600mA current limit.

MaxiMax07:
I have more torque than enough. I have 360 g*cm.

I guess that number is twice the holding torque of 180 g*cm.

The holding torque only applies (as its name implies) when the motor is stationary. The useful torque when rotating will decrease as the speed increases. Some motor manufacturers provide graphs to show this. And the torque while rotating will be improved by using a higher voltage power supply. Could you use a Pololu A4988 driver and a 24v power supply?

...R
Stepper Motor Basics

Useful torque in a stepper is well below holding torque (10% to 40% is the sort of range in practice)

If you don't use microstepping you'll have midband resonance issues with vibration dropping you out of
lock well before that even!

Stepper motors are about the worst choice for traction there is, much heavier, much slower,
much much less efficient (I'd expect 20 to 50 times more wasteful of battery life in practice).
DC motor with encoder is the way to go.

Robin2:
I guess that number is twice the holding torque of 180 g*cm.

The holding torque only applies (as its name implies) when the motor is stationary. The useful torque when rotating will decrease as the speed increases. Some motor manufacturers provide graphs to show this. And the torque while rotating will be improved by using a higher voltage power supply. Could you use a Pololu A4988 driver and a 24v power supply?

...R
Stepper Motor Basics

Yeah I know it's the torque when the motor is starting. The robot has no issue driving when I give it a push at the start. So it's the holding torque that isn't enough. Also, if there is no hill, I shouldn't need any torque when the speed is already obtained other than to beat the dynamic friction created in the beetle and the wheel.

MarkT:
Useful torque in a stepper is well below holding torque (10% to 40% is the sort of range in practice)

If you don't use microstepping you'll have midband resonance issues with vibration dropping you out of
lock well before that even!

Stepper motors are about the worst choice for traction there is, much heavier, much slower,
much much less efficient (I'd expect 20 to 50 times more wasteful of battery life in practice).
DC motor with encoder is the way to go.

Yeah I used to use the DC motors and encoders, however I had a LOT of issues with it. That's why I'm using the stepper motor.

Right now I'm changing my wheels. I'm taking one two times slower, I'll have a much bigger torque right now. Also, the beetle isn't working well, so I'm changing it.

Furthermore, I made some calculus and I came to the conclusion that if I don't have any friction, I should have at 0.02 sec (the time for the first steps at 15 RPM) a speed of 5 cm/s with the torque of the motor and if I want a speed of 15 RPM from my stepper, I should have 5 cm/s. So in pratique, my actual case should work by maybe missing two or three steps because I only took into account the holding torque and I ignored the friction.

Now if I take smaller wheels, of a diametre of 3,8 cm. With a speed of 15 RPM, I'll have a speed of 3 cm/s. In the first step, I should have acquired a speed of 7 cm/s if the torque is constant (which isn't). However, I think I could make the hypothesis that taking this wheel should be enough to start my robot. Even the first one should by skipping some steps.

I'll also change my beetle to diminue the friction.

What do you guys think of this solution?

I have no idea what Reply #8 is trying to say so I cannot offer any suggestions.

You should not be designing a system that relies on missing steps. The purpose of a stepper motor is to maintain accurate control of position and you can't do that if steps are missed.

...R

Hi,
Have you measured the current being consumed by the stepper?
Have you adjusted the pot on the driver PCB?

What is your 6V supply, your description is a bit ambiguous, have you set the current limit at 600mA, but on what, the supply or the driver PCB.
Have you measured the torque or are you assuming from calculations.

Thanks.. Tom.. :slight_smile:

MaxiMax07:
Yeah I know it’s the torque when the motor is starting. The robot has no issue driving when I give it a push at the start. So it’s the holding torque that isn’t enough. Also, if there is no hill, I shouldn’t need any torque when the speed is already obtained other than to beat the dynamic friction created in the beetle and the wheel.

Yeah I used to use the DC motors and encoders, however I had a LOT of issues with it. That’s why I’m using the stepper motor.

namely?

Right now I’m changing my wheels. I’m taking one two times slower, I’ll have a much bigger torque right now. Also, the beetle isn’t working well, so I’m changing it.

Well I’d suggest getting a DRV8825 raise the supply voltage to 24V or more for faster turning,
then gear down the motor (or shrink the wheels as you have) to give more torque in return for the
extra speed.

TomGeorge:
Hi,
Have you measured the current being consumed by the stepper?
Have you adjusted the pot on the driver PCB?

What is your 6V supply, your description is a bit ambiguous, have you set the current limit at 600mA, but on what, the supply or the driver PCB.
Have you measured the torque or are you assuming from calculations.

Thanks.. Tom.. :slight_smile:

I adjusted it on the PCB.

I made the calculation with the holding torque provided.

MarkT:
namely?
Well I'd suggest getting a DRV8825 raise the supply voltage to 24V or more for faster turning,
then gear down the motor (or shrink the wheels as you have) to give more torque in return for the
extra speed.

I had a lot of issue getting false count with my encoder. I also had to set up a PID because my two motor weren't going to the same speed. So I figured out that my robot is only 500g and that two steppers should do the work. However it's not the case.

I can't change my voltage (unless I use a booster but it would consume too much battery with a stepper). I can only use 4 AA batteries.

Yeah I'm gonna shorten the wheels and if it isn't enough, I'll gear down the motor.

Is it possible to buy gearbox for steppers? Or to I have to make my own.

Well now you know the difference between theory and practice.

here is a really good stepper motor calculator. Plugging in your numbers I get a maximum speed of 14 revolutions per second and a max power of 3.6 Watts. Is this enough power for your planned top speed? Increasing the voltage to 12 or 24 will make a big difference.

If you try to start at speed, it may fail to start because that max speed is only achievable when smoothly accelerated up to that speed. Try using the AccelStepper library to accelerate from rest.

The theory says that micro stepping will reduce the torque available. I think it does help greatly. It makes it easier to start because it's not trying to jump a whole step in the first instant.

Hi,

I can't change my voltage (unless I use a booster but it would consume too much battery with a stepper). I can only use 4 AA batteries.

Not sure you will get 600mA from those for very long, have you measured the actual current?
Have you measured the battery voltage when you are driving the stepper?

Your calculated torque from the data supplied, assumes ideal supply, voltage and current.
You need to measure your power supply under your load to get accurate information.

Tom... :slight_smile:

MaxiMax07:
II had a lot of issue getting false count with my encoder. I also had to set up a PID because my two motor weren't going to the same speed. So I figured out that my robot is only 500g and that two steppers should do the work. However it's not the case.

There seems to be a lot of confused thinking here.

If stepper motors are not going at the same speed it is the fault of your program or because they are missing steps.

It should not be necessary to use encoders to do a double-check on steppers.

If you have encoders you probably don't need to use steppers at all.

And, as implied by Reply #14, stepper motors are very inefficient and are not really suitable for battery power in any application.

...R

Yeah I mesured the current and I had 700mA (I tried to boost the stepper).

Robin2:
There seems to be a lot of confused thinking here.

If stepper motors are not going at the same speed it is the fault of your program or because they are missing steps.

It should not be necessary to use encoders to do a double-check on steppers.

If you have encoders you probably don't need to use steppers at all.

And, as implied by Reply #14, stepper motors are very inefficient and are not really suitable for battery power in any application.

...R

I was talking about when I used DC motors.

I can't get this stepper to work, so I'm thinking buying this one. What do you guys think? About the application, it's a conpetition of 1-2 min where the precision is SUPER important. That's why I'm going for steppers and I don't care about the consumption. It's only 30 sec of mouvement max.

Here's the datasheet of the torque VS speed for the new motor I'm looking for. However, I don't understand what PPS mean, and I want to know what I should be waiting for if I'm using 6V versus 24V because I can't use more than 6V other than if I buy something to step up the voltage.

For my understanding, the voltage shouldn't change anything because I'm running at slow speed. 20 rpm for now. I'll maybe increase if I can but 20 RPM is enough.

Thank you guys!

PPS = Pulses Per Second.

...R

So it’s a mesure on Hz right. Is it the number of revolution or steps?