Ever found controlling stepper motors confusing? There are a huge variety of wires to get connected right: power, motor coils, and control lines. And the tiny screwdriver to adjust the terminals is never where it should be. Qwiic Step simplifies the tangle. Just connect your motor to Qwiic Step using the ergonomic latch terminals, apply 8 - 35V to the barrel jack, and plug in Qwiic Step to your favorite RedBoard with a Qwiic cable.
Qwiic Step comes preprogrammed to accept simple I2C commands, handling all the complex stepper motor calculations and control.This firmware leverages the AccelStepper library to fine tune each step of the motor. The speed, acceleration, position, and micro-step mode can be configured by the user. Additionally, the hold and run voltage of the motor is adjustable. This allows the user to specify maximum hold and run currents.
Qwiic Step supports open-drain bussed limit switches and the addition and configuration of an emergency EStop button. A variety of interrupts are available including when the motor has reached its destination, limit switch activation, and EStop activation. Qwiic Step can also operate a motor headlessly: a certain motor position or speed can be programmed and Qwiic Step will ‘run’ the command automatically at power up. This makes a variety of simple movements achievable without the need for a master controller.
The A4988 stepper motor driver is capable of running motors up to 2A. Power can be supplied through the barrel jack or using the latching 2-pin terminal. Qwiic Step has large internal ground planes to help increase heat dissipation. Additional heat sinking can be added to the bottom of the board.
Most powerful of all, Qwiic Step has a configurable I2C address. This means you can control over 100 stepper motors from a single microcontroller (but you’re going to need a heck of a power supply!).
The SparkFun Qwiic Step Arduino library makes turning your motor as easy as calling the move() function. Use the library to send I2C commands to the A4988 motor driver chip to update the Qwiic Step register map and initiate movements. You can download the library through the Arduino library manager by searching 'SparkFun Qwiic Step' or you can get the GitHub repo as a .zip file and install the library from there.
This board is one of our many Qwiic compatible boards! Simply plug and go. No soldering, no figuring out which is SDA or SCL, and no voltage regulation or translation required!
We do not plan to regularly produce SparkX products so get them while they’re hot!
We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.
Based on 2 ratings:
This has all the features & simplicity I have been looking for in a stepper motor driver, especially since it has its own processor that steps the motor and you don't have to do any timing control/interrupts in your other code. BUT the driver isn't all that reliable, and due to its simplicity (i.e. black box) and inconsistency in behavior I can't actually determine what is wrong. It seems to be more consistent with an Arduino (only occasionally spazzes out and disconnects), but the rest of my motors and sensors are run off a Teensy, and I haven't had enough reliability on a Teensy (even with nothing else connected) to trust this running open loop. The controller also seems to max out at ~1000 steps/s (or please let me know otherwise). [Yes I know this is a SparkX product, just trying to share my experience.]
Connected to a Redboard Turbo and 8V supply with an OnlineStepper NEMA 17 motor. Just had it moving back/forth continuously. Runs for a while -- maybe 20-30 iterations, then stops. Interface reports ~isRunning. No debugging info available. Tried various changes to reduce latency, avoid serial calls, etc. No dice. So essentially not a working product.
I've found a fascinating bug with mine. If I send motor.moveTo(XXXX) and the last 3 digits of the value are the same (1777 for example) then the board freezes! This board is already embedded in a system that is being used, so I've not been able to look to see if changing to a different configuration (micro-stepping, speed, etc) would make a difference, but thought it would be good to get this out there.
What size connectors for the e-stop and limit switch, and where can we find them?
I know it says 8-35V, but would this work with a 5V stepper?
Please consider adding a 4 pin male header to the next version. Many stepper motors from other providers have a 4 pin female connector.
How about a Qwiic Step Library for the Raspberry Pi? Will there be one?