Another vibrating stepper motor. No datasheet available for stepper.

Hello. I’m also having trouble getting a stepper motor to properly operate with my Arduino Uno. I read several forum threads from people having the same issue but they didn’t solve my problem. The stepper vibrates and moves in a stuttering motion.

I’m using an Arduino Uno connected to a ULN2003APG stepper driver board (5V min) from geeetech. I’ve used this same setup with other steppers so I’m certain it works for my other 6-wire steppers.

The problematic stepper is a Shinano Kenshi model STH-83D108-02, 6 wires, 5.5V, 1.25A, 1.8°/Step (200 steps).

The power source runs at 5.5V with a max current of 3A.

In the test sketch I’m running (below), I found that dropping the RPM causes the stepper to turn better, but it is still extremely herky-jerky.

I think the problem is likely that I have the stepper wires connected incorrectly to the driver board. Unfortunately, I couldn’t find a datasheet for the STH-83D108-02 stepper. So I opened up the stepper to trace the wires. I found that the wires are grouped into two groups of three: tan, pink, black and yellow, orange, white. The black and white wires are each soldered to two coil wires whereas the rest are each soldered to one coil wire (see pictures below). I assumed the black and white wires are each power wires and that the yellow and orange wires are the data wires to the white wire and the tan and pink wires are the data wires to the black wire. Using this assumption, I connected the stepper to the driver board in several different configurations but the stuttering continued.

Can anyone tell me the proper wiring method for the stepper to the driver board? Am I using the wrong driver board? The wrong sketch? Is it something else?

Thank you very much!
Jeremy

My test sketch:

/*
 Stepper Motor Control - one revolution

 This program drives a unipolar or bipolar stepper motor.
 The motor is attached to digital pins 8 - 11 of the Arduino.

 The motor should revolve one revolution in one direction, then
 one revolution in the other direction.


 Created 11 Mar. 2007
 Modified 30 Nov. 2009
 by Tom Igoe

 */

#include <Stepper.h>

const int stepsPerRevolution = 200;  // change this to fit the number of steps per revolution
// for your motor

// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

void setup() {
  // set the speed at 60 rpm:
  myStepper.setSpeed(24);
  // initialize the serial port:
  Serial.begin(9600);
}

void loop() {
  // step one revolution  in one direction:
  Serial.println("counterclockwise");
  myStepper.step(-stepsPerRevolution);
  myStepper.step(-stepsPerRevolution);
  delay(500);

  // step one revolution in the other direction:
  Serial.println("counterclockwise");
  myStepper.step(-stepsPerRevolution);
  myStepper.step(-stepsPerRevolution);
  delay(500);
}

i'll guess that there are two coils with a center tap.

you could use an ohm meter to figure out which leads are to which coil and which lead is the center tap (less resistance between it and other two).

if you manually energize coils alternating between coils, you can figure out the sequence that rotates the shaft in the same direction.

Its a 6-wire stepper, so it can be driven bipolar or unipolar.

If you want any performance at all, use it bipolar driven from a microstepping bipolar stepper driver like a DRV8825

In the test sketch I'm running (below), I found that dropping the RPM causes the stepper to turn better, but it is still extremely herky-jerky.

Yes, its a stepper motor. Without microstepping and current drive it will be horrible.

If its genuinely 1.25A it will drive well from a DRV8825 - use higher power supply voltage for faster performance (12V, 24V, etc), and use microstepping, something like x8 in the first instance. These
driver chips provide constant current output getting optimal performance from the motor.

For bipolar use just ignore the centre-tap wires (don't let them short to anything else either).