Question about quadstepper motor controller

I am trying to use the quadstepper controller to control 3 motors simultaneously. First of all is it possible to control them simultaneously?

I did the following:

  • soldered all MS1s, MS2s and MS3s to GND because I always want to use full steps (is this reasoning of mine right?)
  • soldered the BUS jumpers but then decided I want to control them individually and undid that (might I have not unsoldered them properly?)
  • connected STP, DIR and EN to the arduino (connected those for 2 motors).
  • if relevant, the arduino is powered by another baterry, not by the quadstepper's VOUT and GND pins.

When I try to run each motor individually it works okay (the LED next to that motor flashes when it moves).
The issue I am having is when I try to run 2 motors at the same time, only one of them is working but both LEDs flash and if I disconnect the one that is running the other starts to work okay instead but as soon as I reconnect the other one only that one works.

If it is supposed to work okay like that does any of you have an idea what I might be doing wrong?

Additionally here is my test code for this: Quadstepper concurrent test · GitHub

What is a quadstepper controller - have you a link to it? Can you provide a diagram of how it is all wired up?

Your code is short (which is great) so why not include it in your post?

Your code looks OK at first glance.

Can you explain your symptoms more clearly. Assume the motors are called A and B, is it always A that works and B that doesn't?

...R

This is the controller I am referring to: SparkFun Quadstepper Motor Driver Board - ROB-10507 - SparkFun Electronics

Symptoms:

  • if I connect just A, it spins right
  • if I connect just B, it spins right
  • if I connect both A and B, just A is spinning

You haven't provided a wiring diagram. My first guess is a wiring problem.

I like brevity, but you can have too much of a good thing - a longer description would have saved me having to write a long series of questions ...

What do you mean by "connect motor A" (or B)?
Do you mean physically connect a cable? What cable? What is it connected to?
Do you mean that when A is connected to point X, or B is connected to point X each works individually OR
Do you mean that is A is connected to X or B is connected to Y they work individually
AND
When A is connected to X and B is connected to Y only A works?

What about when B is connected to X and A is connected to Y?

Have you tried controlling the choice of motor with software using the enable pins? If so how does behave?

Does the order of stepping the motors (A before B or B before A) make a difference?

...R

Sorry for not providing enough details about how I connected the motors.
If you mean the diagram of the controller, it is available here: http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Widgets/quadstep-v11assembly.pdf

If you mean how I wired them on my board it is like this:

  • controller is connected to a 9V baterry
  • I have 2 motors connected to channel 1 and 2 of the controller
  • MS1, MS2 and MS3 for both motors are connected to the ground of the controller (as that seems to give me full step resolution, default was 1/16).
  • adruino is connected to a different 9V baterry (I'm not using the VOUT of the controller for this).
  • enabled, direction and step are connected to arduino pins 2, 3, 4 (for the first motor) and 7, 8, 9 for the second motor

When I tried to control each motor in turn it worked okay. In the code I uploaded I'm trying to move both motors at the same time. When I do this only the first one moves, I tested on channel 2 and 3 too and it seems to move the one that is on the lowest channel number.
By disconnecting (unplugging the motor from the controller ) the first motor (the one that is moving) the second start working okay ... but as soon as I reconnect it only the first works again.

Let me know if there are any additional details you might need. :slight_smile:

A 9V battery for powering the motors is vastly insufficient; 9V batteries are only designed for ~60ma of current. You're creating power sags and the board gets "confused" (technical term).

Find a wall wart power supply (up to 30V) that can supply more than a couple amps and your problems will go away. Keep the potentiometers set to the low end of their current while you're testing and make sure nothing gets too hot. Increase the current if you need more torque.

I agree with @Chagrin. It hadn't occurred to me you might be using such a puny battery.

...R

Why are you powering bipolars from low voltage anyway? 24V makes more sense,
What motors do you have?

And you'll likely want microstepping or you'll getting lower torque handling and bad
vibration. Full step drivers lose steps much more easily due to resonance. 1/8 or 1/16
is well worth having.

You're right ... if I power it from from a wall outlet they work. It's my first time using stepper motors and though it would work with 2 motors if 1 worked on the battery. Thanks for the help :slight_smile:

Regarding the step resolution, does it provide more torque if I use micro-stepping? I seemed to me while reading on some sites that I get more torque if I used full steps but I might have misunderstood. In my case I'm interested in moving a few steps at a time then stopping the motors for some amount of time and repeating the operation and would like to get the most torque out of the motors.

Regarding the powering of the motors (I will be using 3 of these in the end: http://www.robotshop.com/en/bipolar-stepper-motor-2-7v-1a.html ) ... does any of you have a recommendation on what battery I should be looking for considering the above?

Full steps have the most torque. Micro stepping is achieved by making the coils oppose each other. However you can't control the time to move a single step - you can only control the gap between steps. A full step might be a too large acceleration and too jerky. But microsteps will only be smoother if they have enough torque to be useful.

I have just given up on one project because my stepper isn't strong enough to microstep a heavy and high friction load and full steps are too coarse and noisy. In my project I can use a servo instead as I only need 180 deg of movement.

...R

I'll stick to full steps them ... In my case I want to use it for a timelapse rig and would require to move it a few steps and then stop in that position for a camera to take a photo and then repeat that several times. I will be using a worm gear with a 60 to 1 ratio so that should give me a higher precision (12000 steps for 360 degree turn in my case).

Robin2:
Full steps have the most torque. Micro stepping is achieved by making the coils oppose each other. However you can't control the time to move a single step - you can only control the gap between steps. A full step might be a too large acceleration and too jerky. But microsteps will only be smoother if they have enough torque to be useful.

I have just given up on one project because my stepper isn't strong enough to microstep a heavy and high friction load and full steps are too coarse and noisy. In my project I can use a servo instead as I only need 180 deg of movement.

...R

That's not true if you drive the motor correctly, the full-step current is supposed to
be 0.707 times the microstep current precisely because you are driving two coils
at once at full current, and thus would overwise develop twice as much heat. Stepper
motors are usually thermally limited.

Since the two phases are at 90 degrees they can never "oppose" each other, the magnetic
resultant vector is approximately the vector sum of x and y components.

Proper microstepping at the rated current is as torquey stationary and much smoother dynamically resulting in less chance of mis-stepping and higher acceleration rates.

The following comments are only made because I want to learn ...

MarkT:
Since the two phases are at 90 degrees they can never "oppose" each other, the magnetic
resultant vector is approximately the vector sum of x and y components.

If the microsteps are not achieved by modifying the field in the different coils, how are they achieved?

Proper microstepping at the rated current is as torquey stationary and much smoother dynamically resulting in less chance of mis-stepping and higher acceleration rates.

This doesn't reflect my limited experience. My motor can easily move the load without missing steps when using full steps and also doesn't seem to miss steps with half steps but can't move the load hardly at all with 1/16th steps - using a Pololu A4988 driver board. I'm not trying to move the load quickly - perhaps 5 to 10 secs per revolution, and my microstep tests used the same step interval - i.e. proportionately slower speed.

...R