Over-driving some small stepper motors

Hey all

I have some TINY stepper motors that are rated 3.3v-5v (apparently AliExpress).

Similar to these:
[https://vi.aliexpress.com/item/1005006071585471.html?]

I am having real issues driving these things. I breadboarded an A4988 and it seemed to work fine, so I made a PCB.
Now I just cannot get this thing running.

It does spin, but a 1 legged ant in a coma has more torque. They appear to be 160 step.

I believe issue lies in that the A4988 actually needs 8v on the motor supply side to work correctly.
It does run through the A4988 at 5v, but it clearly isn't right.

Just wondering if i throw 8v through the A4988 and see what happens. I do have spares.

At the end of the day, these steppers are supposed to drive camera lens.... no way that could happen (I don't think). Nothing I have seen shows me they have anywhere near enough torque to drive any kind of gear arrangement.

I am driving them with this base code (other libraries I have tried throw up the same results)


#define stepper1 8
int stepperSPEED = 1000;
byte stepdelay = 50;
int movesteps = 160;


void setup() {
  Serial.begin(9600);
  pinMode(stepper1, OUTPUT);

  Serial.println("Online");
}

void loop() {
  
  Serial.println("Testing stepper 1");
  for (int i = 0; i < movesteps; i++) {        // steps in a rotation
    digitalWrite(stepper1, HIGH);              // sets the pin on
    delayMicroseconds(stepdelay);              // pauses for ## microseconds
    digitalWrite(stepper1, LOW);               // sets the pin off
    delayMicroseconds(stepdelay);              // pauses for ## microseconds
    delayMicroseconds(stepperSPEED);           // stepper speed
  }
}

Any ideas?

I would suggest that a more appropriate driver is the DRV8434](Pololu - DRV8434A Stepper Motor Driver Carrier) or DRV8834 (available from Pololu, for one).

You may be able to use the A4988, but motor supply voltage must be over 8V. The A4988 is a current regulating driver, the voltage is not so relevant so long as the coil current limit is set correctly. How to set current limit.

If it worked fine on the breadboard but not with the PCB, I would suspect that there is something wrong with the PCB.

1 Like

No Breadboarded it again and same result.... not sure what has occurred there.

I can run the little stepper at 8v, but boy does it get hot. That's no good. I know steppers get hot, but this melted the plastic gear I had on the shaft for rotation indication after 60 seconds.

Very annoying, as the stepper mechanism I made is lovely... just can't drive it!

Could try a DRV8834, but is that likely to be any different....

I was going to grab a couple of DRV8834's.... but very annoyingly they are not the same footprint as a A4899 (even though it says it's a direct replacement).

Hmm. That won't work in my board

Oh hang on... I many be wrong

You must set the coil current limit properly to use 8V. Did you set the coil current limit? Set the current limit (follow the instructions in my previous post) at the lowest possible and work your way up.

That is with the current set at zero.... it will turn, even with the current pot fully anti-clockwise.

8v is a no-go.

I will have to try something else..... although not paying $12.95 for one driver from Pololu! I need 8 all told.

Then you didn't adjust the current correctly. As already stated the A4988 is a current controlling driver. It is mandatory to set the current correctly. If this is done, the voltage at Vmot doesn't really matter concerning the temperature of the motor.
But maybe the current cannot be set as low as the motor needs. Then you need another driver.

I thought you started with the current pot at zero (fully anti-clockwise). Usually, the stepper doesn't even move.

Turn it clockwise until the stepper starts.

This one starts right off the bat. Not much torque to it, but it starts. It also cooks as well at fully anti-clockwise.
Turning it VERY slightly up to get better torque (as in 5 degrees) melted the gear

Well at an average of £11 per DRV8434A.... that ain't happening.

Looks like another project for the failed shelf!

Thanks anyway

I think you're missing something obvious.

When you "breadboarded" it, was your breadboard circuit exactly the same as the PCB?

Yep. I am not sure what changed. Maybe I missed something and 'thought' it worked.

I have put a lot of time into this, but it's a silly little project that isn't worth £100 worth of 'might work' drivers. The PCB was only £4

I'll tinker on, but I think this was a fail

For £100, I may as well rebuild it with geared motors

There apparently is a way to set an A4988 to a lower current.
See this page.
Leo..

How similar? What is the coil resistance?

The linked motors have 19 Ohms, which is high enough impedance that you don't really need a current limiting driver. A brushed DC motor driver like this one will work with 3V for the motor power.

Why is there a link to a Youtube music video?

Try this one instead:

Basically, these stepper just need a sequence of pulses to operate correct?
Is that one side of the coil to ground and the other to the pulsed output?

I have a huge pile of ATtiny85's sitting here. Could I make a basic driver using those? Maybe through a couple of mosfets?

Those Pololu drivers look great, but they don't fit the A4988 footprint, and that is still £45.

I could make my own A4988 footprint drivers.

Just thinking out loud

To be specific, you could easily make a controller using those. You'll still need a driver.

I think the basic problem you have is that you seem to not be able to use a >8V power supply, is that correct? You could probably run your steppers from a ULN2803 driver if they are unipolar-compatible steppers (I think they are. didn't check) and sequence the steps from the Tiny85. But at lower voltages, you may not get the torque you need since that driver is old and has a high saturation voltage of about 1.3V so if you have to drive it with 5V, your motor will only see 3.7V.

It's up to you to decide if that's enough torque. But yeah, it's fairly trivial to drive a stepper. You don't even need the library; it's literally like 5 lines of code.

[edit]
After typing all that, I looked at your link and no, the 2803 can't drive those. They are 4-wire motors so they need a bipolar driver. So now we're back to seeing if the 4988 problem is solvable :frowning:

No, on a four-wire bipolar motor the voltage and current flow in each coil has to alternate between forward and reverse in sequence. Tutorial How to Drive a Stepper Motor - Motors, Actuators, Solenoids and Drivers - Electronic Component and Engineering Solution Forum - TechForum │ DigiKey

Please measure and post the winding resistance.

@OP: can you use a voltage booster? The motor shouldn't need much current and that would let you use a 4988.