# Accelstepper library

I have one question regarding the Accelstepper library, and I'd appreciate if I didn't get any smartass remarks - I'm just asking for help so be kind.

Background:
I'm using 12 NEMA 17 motors (400 steps/rev) and Pololu A4988 drivers. I'm able to control the motors as I want to (down to the sixteeth of a step) using the Accelstepper library. I realize that dividing the motion into microsteps makes them run much slower than they do on fullstep mode.

Question:
Does the Accelstepper library allow me to define the steps on fullstep mode as a float (so that I can define my steps using decimals) or do they always have to be an int? (I'm assuming they always have to be an int because then we wouldn't need to microsteps) If it always has to be an int, is there a way to make up for the time that is lost?

Example:
6400 steps @ 6400 steps/s doesn't run as fast and smoothly as 400 steps @ 400 steps/s, even though they should both complete a full revolution in 1s.

Any help is appreciated!

The fastest motor speed that can be reliably supported is about 4000 steps per second at a clock frequency of 16 MHz on Arduino such as Uno etc. Faster processors can support faster stepping speeds

From the Accelstepper reference.

You don't say which Arduino you are using, but 6400 steps/sec may be too fast and cause a problem.

Step is a long data type, float is not supported.
Full steps for speed, microsteps for precision. You trade one for the other.

Does the Accelstepper library allow me to define the steps on fullstep mode as a float (so that I can define my steps using decimals)

You could add that to the library, once you figure out how a stepper can step 3.14159 times.

You can get an Arduino to produce more steps per second if you don't use the AccelStepper library - but you will probably have to do without the acceleration.

If you are thinking of 6,400 steps per second for each of 12 motors at the same time (i.e. 76800 steps per second) then a 16MHz Arduino is not capable.