The SparkFun AutoDriver board is based on the STMicro L6470 dSPIN stepper motor driver. This powerful chip allows you to control a stepper motor with a voltage from 8 to 45V at 3Arms over an SPI connection. The AutoDriver board has been designed to be easily integrated into a project, even with multiple boards. Just connect your motors and your SPI-capable microcontroller and get steppin'!
STMicro’s L6470 is a 3A, 8–45V bipolar stepper motor driver. It has built-in overcurrent detection, undervoltage detection, overtemperature detection, stall detection, a 5-bit ADC, and a switch input that can be used for either user jog control or as a hard stop function. As if that weren’t enough, it also features microstepping support (up to 128 microsteps per full step) and PWM drive voltage limiting. Please keep in mind that the L6470 requires a great deal more configuration and adds software complexity to your system.
Unlike most stepper motor drivers, the dSPIN is controlled over an SPI link. It has an onboard 16MHz oscillator, which allows it to autonomously execute movement commands. That means no more counting steps in your code! It also supports customized acceleration and deceleration profiles to prevent jerky starts and stops. Onboard registers track current speed and location.
This new version of the SparkFun AutoDriver’s hardware is slightly different from the previous revision. It has been modified to make it easier to daisy-chain multiple boards together with simple 10-conductor ribbon cables for data and 6-conductor ribbon cables for control. The library has been updated as well, with more information found in the Hookup Guide below.
The logic supply voltage supports both 3.3V and 5V I/O levels.
This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.
Skill Level: Rookie - The number of pins increases, and you will have to determine polarity of components and some of the components might be a bit trickier or close together. You might need solder wick or flux.
See all skill levels
This skill concerns mechanical and robotics knowledge. You may need to know how mechanical parts interact, how motors work, or how to use motor drivers and controllers.
Skill Level: Experienced - Your experiences should include working with stepper motors and feedback system. You may need to understand how encoders and more complex control systems work.
See all skill levels
If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.
Skill Level: Competent - The toolchain for programming is a bit more complex and will examples may not be explicitly provided for you. You will be required to have a fundamental knowledge of programming and be required to provide your own code. You may need to modify existing libraries or code to work with your specific hardware. Sensor and hardware interfaces will be SPI or I2C.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Experienced - You will need to consult a datasheet for calculations to determine a components output format, linearity, and do a little math to get what you need. You will be using a datasheet or schematic beyond basic pinouts.
See all skill levels
Based on 7 ratings:
1 of 1 found this helpful:
I was prompted to write this review because I feel the poor ratings are not deserved. This product works exactly as it should – but it’s not a toy for beginners!
You need to have a lot of things just so to get this chip (ST L6470) to work correctly, but once you have that right, it can boost the quality of your project tremendously – it is a hugely capable small stepper driver!
Some things to look out for:
The 3-5V input MUST be powered unless you modify the board jumper to use the 3V internal.
The SPI interface will not work unless BOTH the 8-45V power input is powered AND 3-5V input is powered.
The RESET# pin must be connected, otherwise the chip will hold itself in reset
If the chip is communicating but the motor does not move, make sure the coil wires are not mixed up. The two coils are electrically independent, so mixing them up will make it seem like nothing works.
If the motor is vibrating but not moving, reverse one of the coil’s wires.
There are MANY settings that control motor power (KVAL) and overcurrent limits that can affect how your motor will perform. If you have never used this chip before, you will probably want to write a function that checks the STATUS register a few times a second and decodes and prints out those statuses. This will help keep you informed as you go about tuning the configuration parameters for your application.
Oh and don’t do like I did and forget to buy connectors and screw terminals to make things more convenient!
1 of 2 found this helpful:
I purchased this as a cheaper alternative to the Gecko Driver. While i do understand it’s a $40 item, when i try running a stepper motor with it, once the voltage is above 22V, it stops working. Note I am not exceeding the rated 3A. I have tested the same motor setup with a different (industrial grade) driver and it works up to the motor’s rated 48V driver input.
0 of 3 found this helpful:
The provided library zip file won’t install properly. All I get is errors stating that the intended folders do not contain any valid library files. I’ve messed with this thing for days and can not get any of the example sketches to work. None of the sketches provided by others work either. I bought this for a project I needed to finish quickly, and now that project is way behind due to trying to get this thing to work.
Sorry you’re having problems with the library. If you’re going to the above Github link, and downloading that ZIP file, the Arduino IDE won’t be able to add it as a ZIP library. You need to follow the AutoDriver Library link, and download that one. I just tested it on two different machines running two different versions of the IDE, and both worked fine. If you’re still having issues getting the library to load, I would recommend contacting our tech support team. They should be able to help you get up and running.
The dSpin driver offloads acceleration / deceleration profiles, step counting, limit switch homing, and power management, so you don’t have to worry about a thing from your code. Library interface is fairly straightforward.
Adjustable Parameters: Max / Min Speed, Accel / Decel Rates Microstepping (1 through 128) K-Vals (seperate settings for Accel, Decel, Run, Hold) Overcurrent threshold Edge slew rate Homing / limit switch setup
The sparkfun hookup guide is great in it’s explanation of the software setup and parameters. The wiring portion, however, lacks a simple straightforward diagram. The two fritzing diagrams are pretty ~nasty~ as far as they go. Especially considering that connections are meant to be made with the ribbon cables, it’s pretty un-intuitive that the tutorial shows diagrams with a ton of cris-crossing and inconsistently routed wires.
I have to finish other parts of my project first. I am building a tracking telescope mount, controlled by a Teensy 3.5, with 2 stepper motors.
But the Autodriver has a number of interesting features. First, you can “set and forget” so the Teensy can go back to other tasks. Second, you can use an external oscillator source. I plan on using a GPS disciplined oscillator to provide precise timing.
I purchased the AutoDriver several months ago and just now got around to working with them. I also ran into the behavior described by member 891015. After some experimenting with the example programs, I discovered higher voltage power supplies can be used by setting up KVAL and OverCurrentThreshold parameters. These need to be tailored to the voltage and resistance specs of the motors. For example, given a 42v supply and 3V, 1.8 ohm motor, set OCThreshold to 3000mA or higher and all KVAL values at or below 19 or 20. If OCThreshold is set higher than 3000mA, I imagine the driver chip will get hot and possibly shut down after a time. I’m still puzzling that out.
The L6470 is a very nice driver, allowing the microcontroller to send it motion commands instead of step pulses. The board seems to break out everything necessary to get up and running. I haven’t stacked boards yet, so I can’t attest to how well that works. I also didn’t bother with the Arduino library.