After the new Atmel ATMega was installed yesterday, I'm now ready to experiment with some stepper motors. First out, the Mercury Motor SM-42BYG011-25, a medium sized motor with quite a bit of torque and also half decent speed. Second, the smaller but much faster Mercury Motor ST-PM35-15-11C. Both driven by the small EasyDriver card, which really lives up to its name. After soldering on a few pins, it was literally plug & play. The eight-line example to get started could not be simpler.

There are of course plenty of experiments and tuning which can be done with this motors and the driver alone, so initially I had a look at the RPM speed. Here I was slightly puzzled to find that both performed very well, even though comments on the product page suggested the speeds I saw would be hard to reach. So if my calculations are off, please do add a comment below.

When using a 12 V power supply, and the dead simple example of write, delay, write delay (or rather delayMicroseconds()), I found that I could go as low as 90 microseconds with the bigger motor, or 180 µs for a complete pulse without it stalling. The example continues: "the Easy Driver will default to 1/8th microstep mode. That means that [for each pulse] the stepper motor will move 1/8th of a full step. So if your motor is 1.8 degrees per step, there will be 200 full steps per revolution, or 1600 microsteps per revolution". At 180 µs per microstep, there is time for 5555 steps in a second, or 3.47 revolutions per seconds. That means 208 RPM. In summary:

1000000 µs / ( 2 * 80 µs ) / ( 360.0º / 1.8º * 8 ) * 60 = 208 RPM

Again, this seems surprisingly fast, and it'd be interesting to measure it using an external device. When I go down to 80 µs it starts to skip, and even lower it will stall.

For the smaller motor, I simply swapped the wires on the driver card (after the power supply had been turned off), and ran the same code. Here I could go as far down as 35 µs delay, or 70 µs per microstep. The motor has a step size of 7.5º, which means an RPM at 2230. It is indeed spinning very fast.

1000000 µs / ( 2 * 35 µs ) / ( 360.0º / 7.5º * 8 ) * 60 = 2230 RPM

Funny anecdote at the end: The smaller engine came pre-wired to a 4-pin plug, while the bigger simply had loose ends. When putting that together, I found myself comparing the two data sheets to get the correct wire order. Only problem being that the colour notation on the smaller was in Chinese. Luckily, the PDF had kept the text intact, including the Chinese characters. Copy/paste and Google Translate to the rescue, and I found which was which.