Step Genie and Stepper motor only low speed

I have a stepper motor wired to a step genie demo board which is wired to my arduino Uno. I wrote a simple program to turn the motor one step then delay, repeat.

This turns the motor, great. Very happy so far. Until...

When I decrease the delay to make the motor turn faster it will peak at a little over 100rpm. Any faster the motor will seize with an ear piercing hum and not turn at all.

Here's the motor I am using: http://www.excitron.com/webdocs/Items/Details349.cfm
Here's the step genie controller:
http://www.stepgenie.com/
Using Arduino Uno aswell.

Stepper motor's website states:
"All motors are rated as high torque, approximately 30% higher than other same-size motors. When coupled with our Controllers, the motor torque is increased another 20% (50% gain). This is true for the normal published speed ranges up to 5,000 sps (maximum available from competitors for most motors). However, our motor torque is more than 100% higher above 5,000 sps, and continues up to 25,000 sps (full steps, depending on motor), where no other controller operates."

Step genie's pdf states:
"A pulse at the STEP input advances one element in the Step table, in the direction
determined by the state of the DIR signal. This causes the motor to take a single step. The
action is taken at the leading edge (low to high transition) of the step signal. A STEP
pulse must have a minimum duration of 3uS. Maximum stepping frequency = 16 kHz. "

Perhaps the issue is with the program I'm using to send the signals.

void setup() {
pinMode(13, OUTPUT); // step
pinMode(12, OUTPUT); // direction
pinMode(11, OUTPUT); // enable

digitalWrite(12, HIGH); //direction low = ccw, High = cw

digitalWrite(11, LOW); //enable low = enabled, high = disabled
}

void loop() {
digitalWrite(13, HIGH); // make one step
delayMircoseconds(500); // 325microseconds for both delays combined is the fastest I've achieved
digitalWrite(13, LOW); // reset step
delayMicroseconds(500); // second delay

}

Why can't I make this stepper turn faster?
What else can I provide to make my situation more understandable?

It could be that you need a program that will accelerate the motor such as AccelStepper or StepperLab3.

Pin 13 has a built in resistor, for the LED. Do you have the same issue if you use a different pin for the step pin?

325microseconds for both delays combined is the fastest I've achieved

What does this comment mean? What happened when you used smaller values?

Actually yes I do have the same problems using other pins. The first thing I did was moved the wires to different pins to see if the problem persisted, and it did. I did NOT know that there was a built in resistor in pin 13, thanks for that ;).

The "325 microseconds" comment means that the fastest I could turn the motor was when the sum of the two delays used was 325. Example:
void loop() {
digitalWrite(13, HIGH);
delayMircoseconds(25);
digitalWrite(13, LOW);
delayMicroseconds(300);

OR

void loop() {
digitalWrite(13, HIGH);
delayMircoseconds(125);
digitalWrite(13, LOW);
delayMicroseconds(200);

OR

void loop() {
digitalWrite(13, HIGH);
delayMircoseconds(150);
digitalWrite(13, LOW);
delayMicroseconds(150);

You get the idea. Can't seem to go faster, the motor will stop turning and vibrate. It seems as if it's receiving signals so fast that some are ignored and the remaining signals are a mix up. That's how it seems, but hell if I know.

In regards to accelerating it:

I thought this could be the issue, the motor may need time to ramp up to a faster speed. So I wrote a For loop that decreased the delay interval and it made the motor accelerate. However it wouldn't go any faster. I moved away from trying to accelerate it after finding no improvements in speed.

What a thing.

How are you powering the motor and the driver board ?

Are you sure you have enough current available ?

I think that MikMo asks a very important question.

The time required to step is a function of the load on the motor and the current available to twist the motor. The more load, the longer it takes. The less current, the longer it takes.

Good question, I've got the motor powered by a 20amp power supply. The driver board is powered by the arduino 5v pin, and the arduino powered via usb. As I play around with the time intervals to speed up the motor, I need to increase the voltage or the motor won't step at all. Somewhere around 7volts or higher works, less voltage won't.

The power supply displays the current draw as nearly zero when the stepper is turning. I assume the current draw is so low because the motor isn't attached to anything, it's just sitting on the table.

That sounds like mid band resonance. Try adding a flywheel or load to the shaft and see if you can go faster. If so, that's the problem. A microstepping driver will help, or a mechanical damper... believe it or not a hockey puck used as a flywheel works well.

If not, speed and voltage go hand in hand. You don't say what your hexfets are rated for voltage wize, but I would try higher voltages, up to that limit. The current in the motor coils can't build to the levels needed quickly enough if it isn't driven in by voltage. And if your driver isn't regulating current (which the StepGenie does NOT do) then the resistors also work against you.

This simple driver isn't regulating current, so more voltage will also cause more heat... especially when holding. Watch for that.

I can't believe he gets $25 for that thing...