I guess as long as your multiplexor holds the value and you can change it quick enough to stop the motor stuttering then it should work.
I noticed most folk use a decoding chip to control the phasing of the steppers. Why can't the Arduino do the decoding and provide the correct phasing? Obviously the outputs would have to go through a driver of some sorts but I'm not sure why the decoder is the popular route?
I noticed the pulse rate is limited to 1000 steps/sec which is a bit slow for my application. Is this a limitation of the Arduino board or the software and is there any way to improve this?
mikem - thank you!
this is exactly what i need for my first bigger arduino project (a drawing robot) since i´m a total programming noob i was hopelessly lost trying to controll 2 steppers until i discovered this library. and you added the driver-option (pins==1) just at the right time
one note on this: the 1 milisecond delay of the step pulse was too fast for my driver - i changed it to 20 & now it works ;D
when i was setting up emc2 to use this controller for my cnc mill i used 20.000ns (found the number somewhere in a german cnc forum) thats why i changed it to 20ms...
just did a short test:
2ms nothing
3ms only one motor (x axis) moves
4ms both x and y are moving (can´t tell if the 3rd would move)
now i set it to 10 just to be save
...is there a disadvantage in setting higher values?
---- edit ----
from the datasheet:
A. Minimum Command Active Time
Before Step Pulse (Data Set-Up Time)..... 200 ns
B. Minimum Command Active Time
After Step Pulse (Data Hold Time)............ 200 ns
C. Minimum STEP Pulse Width...................... 1.0 µs
D. Minimum STEP Low Time......................... 1.0 µs
E. Maximum Wake-Up Time......................... 1.0 ms
yes, curious.
I want to keep the pulse time short, because I want to minimise the delay times in the code. For the 2 and 4 wire there is no delay at all.
An alternative I considered would be to turn the Step on for a whole step interval then turn it off for a whole step interval, but this would half the step frequency, and make the step speed and accelerations out by a factor of 2.