SPI over long distances

As part of the Large Scale Delta project I needed to control multiple stepper motors, each being over a distance of roughly 50 to 150 feet. To control each motor I chose to use the Sparkfun AutoDriver board which will drive up to 3 amps continuously and communicates over SPI. The AutoDriver, which uses STmicro’s L6470 chip, has built in current limiting, over current protection, stall protection, micro stepping and more but what is most important is that it has motion commands which handle the low level motion control aspects allowing you to command a position and it will handle the rest. This along with Sparkfun’s AutoDriver Library allow for easy and precise control of a stepper motor from an Arduino. While a SPI bus is easy to use over short distances it was not designed to run more than probably a few feet and definitely not tens or hundreds of feet, when you get to that kind of distance it introduces a few issues that need to be overcome.
Continue reading