- Please note: StepStick has 0.2 ohm sense resistors instead of Pololu stepper driver boards 0.05 ohm. This limits the current to 1A. See Notes on building for more info.
Release status: working
With the recent outage of Pololu stepper driver boards, I've been wanting to build my own, and break my dependency (no offense, I <3 you Pololu!). And after spending a lot of time designing the another board, I figured I could give this a go.
This is an Allegro A4983 / A4988 x4 breakout board for Sanguinololu. It can be snapped apart at the score in case of Allegro failure, and replaced with another or a Pololu. Snap all 4 apart and get a pin-compatible clones for use on boards like RAMPS or Gen7.
Now this is not for the iron wielding solderer. All parts are SMT, and somewhat small - there are some 0402 sized packages. Not to mention the Allegro's thermal pad - a solder pad on the bottom of the chip - can't be soldered without an iron of magic.
That being said, I believe this is an easy to solder board using a toaster oven or hotplate reflow method. There is not too many pads facilitating easy solder paste application using a syringe, and the components should be spaced out enough that a steady hand with fine tweezers can place them. If you've built Sanguinololu with success, perhaps this is the next challenge on your soldering skills adventures. (Take a look at youtube for oven and hotplate reflow methods - not hard at all!)
But if you're not up to the task, stay tuned and keep an eye on this place for a published list of places where you can get this pre-assembled.
Notes on building
The Pololu A4988 Stepper Motor Driver Carrier http://www.pololu.com/catalog/product/1182 is produced on a 2oz copper PCB board. Most PCBs use 1oz copper boards, and Stepstick is designed to use this weight PCB. However, thermal dissipation will be much less than the 2oz copper used on the Pololu carrier. As such, the Stepstick has been designed with a current limit of 1A to suit a 1oz, 2-layer PCB, which should generally be plenty for reprap-type applications. This may be a limiting factor if you plan to use the same electronics for milling, or larger NEMA23 motors, where current draw is likely to be higher. If you are getting the boards produced yourself, you can of course choose how much copper to put in, and hence the thermal characteristics. The Allegro A4988 chip (datasheet available from: http://www.allegromicro.com/Products/Motor-Driver-And-Interface-ICs/Bipolar-Stepper-Motor-Drivers/A4988.aspx ) is capable of 35V and 2A, but this is based on using a 4-layer PCB, so lots of copper to dissipate heat. You can attach heatsinks and have a fan directed at the electronics to improve heat dissipation. The A4988 has a built-in thermal cut-out, so will turn off if it gets too hot.
To increase the current output, you will need to change the value of the sense resistors (S1, S2), and the trimpot (T1) and/or it's resistor (R1). See this thread for more details and suggested values: http://forums.reprap.org/read.php?13,128220
Another consideration is the problem of using x16 microstepping in a low-current application. The Allegro A4988 has a "Low Current Microstepping" mode, enabled by shorting the ROSC pin to ground, R4 in the case of the Stepstick. Nophead discusses the reasons for doing this in this article: http://hydraraptor.blogspot.co.uk/2012/04/stepstuck.html
Nophead has written a number of other very useful articles about the stepstick, and stepper motors and drivers in general:
If you find any other useful discussions related to the Stepstick, please link them in below.
This is the Bill of Materials for a standard Stepstick, ie one limited to 1A.
|Capacitor||0402||0.1uf||10%||16V||C1, C2, C5, C6||16V capacitor for 12V maximum voltage; use higher voltage capacitors for higher voltage applications, max 35V|
|Capacitor||0402||0.22uf||10%||16V||C4, C7||16V capacitor for 12V maximum voltage; use higher voltage capacitors for higher voltage applications, max 35V|
|Capacitor||1206||4.7uf||10%||16V||C3||16V capacitor for 12V maximum voltage; use higher voltage capacitors for higher voltage applications, max 35V|
|Motor driver chip||QNF||IC1||Allegro A4988|
Adjusting and testing the current
You change the current to the motor by adjusting the trimpot. Set the trimpot to minimum to start with, by turning the trimpot fully anti-clockwise. Turn clockwise until the motors are not skipping steps at your target speed and load.
To find out the current that is actually being delivered, follow this advice from nophead http://forums.reprap.org/read.php?13,128220,129335#msg-129335
There is a test point for VREF on the Pololu but it is missing on the Stepstick. Since it is just the wiper of the pot you can measure it there and it is easier as it is a bigger target. I hold the positive meter probe on the shaft of a metal screwdriver so I can see the value while I am turning the pot. Put the negative probe on a ground pin.
To calculate the current, A = VREF / (8 * RS). For a standard stepstick, RS is the rating of the Sense Resistor = 0.2ohm. So A = VREF / 1.6
To calculate the VREF for a target current, VREF = A * 8 * RS , or A * 1.6 . So, if you wanted 0.8A, VREF = 0.8 * 1.6 = 1.28V
Building stepsticks with a 1.5A limit
Following the discussions in this thread http://forums.reprap.org/read.php?13,128220 I used the following to create stepsticks with 1.5A limit. I also used 0603 SMT as they are easier to manipulate, being a bit bigger than 0402! The QNF packaged driver chip is still tricky to solder, though. Changes I made from standard stepstick (as per BOM above) in red.
|Capacitor||0603||0.1uf||10%||16V||C1, C2, C5, C6|
|Motor driver chip||QNF||IC1||Allegro A4988|
|Resistor||0805||0.1ohm||0.25W||1%||S1,S2||Sense resistors changed.|
|Resistor||0603||0k||10%||R4||0k resistor used to enable Low Current Microstepping mode. This will depend on your motors.|
|Resistor||0603||30k||10%||R1||Increased resistance to limit VREF to 1.25V|
For repraps, logic supply voltage (VDD) is 5V. Using the values from the 1.5A table above:
VREF max = (TrimpotMaxR/(TrimpotMaXR+R1)) x VDD = (10,000 / (10,000 + 30,000)) * 5 = 1.25V
ITripMAX (effectively max motor current) = VREF / ( 8 x Sense_resistor) = 1.25 / ( 8 * 0.1 ) = 1.5625A
To calculate amps from measured VREF: A = VREF / 0.8
To calculate VREF required for a target current: VREF = A * 0.8
Where to buy?
- A4988 fully assembled Reprap.cn
- A4988, heatsink, fully soldered eMotion-Tech
- Botronicz StepStick with A4988 Drivers, .05 ohm sense resistors (2 Amps per coil), 35 volt + Heatsink BOTRONICZ.COM
- Fully assembled and tested boards with heatsink at RepRap.me -- NOTE! 1/8 step only. These are NOT true StepSticks, they have been modified to use the less expensive (and less capable) A4984, not the A4988.
- Fully assembled boards at AVRThing.com -- NOTE these have the A4983 and .22 ohm sense resistors
- Think3DPrint3D "Ice-Blue" Stepsticks -- See Design Variations below for more information
- A4988 fully assembled 3D Printer Czar
- A4988 (in PL language for now) fully assembled and tested; made in Poland; 1.5Amps per coil, 0.1 ohm sense resistors / stepstick.pl
- A4988 fully assembled and tested; Makemendel
Schematic & Board Images
Not obvious from this schematics: the trimpot has 10 kΩ. See .
Herewith StepStick A4988 picture, its manufactured by SMD factory Unit now, I was tested by using Ramps1.2 + Arduino Atmage1280 + Sprinter Firmware. And it run very good.
Follows video shown that above hardware setup and using 80mm/s FeedRate running test cube printing test.
Stepsticka4984 is a variation on the Stepstick using the A4984 rather than the A4988.
Ice Blue Stepstick
It uses the A4982 IC rather than the A4988. This driver is used on the Melzi and other single board electronics. The advantage is the chip comes in a bigger package, so heat transfer and dissipation is better; the disadvantage is it does not allow for 1/8 microstepping, only full, 1/2, 1/4 and 1/16. However this is not a problem in most applications where 1/16 is used as a standard. See Stepstick redesign for more detail on the design changes.
This stepstick uses a 4 layer, heavy copper board which has been show to deliver good heat dissipation as shown by the stepper driver thermal tests.
Unlike many other stepstick variations this one is open source hardware, the design files are available on github.
4-Layer PCB StepSticks
A common problem with motor drivers in general is that they usually get very hot during operation. Calibration is sometimes tricky and for new users this often leads to problems with excessive heating which can cause damage to the driver immediately or in the long term. To reduce this problem, Elecfreaks has designed a 4-ĺayer version of the StepStick, which is distributed by bq in its Reprap electronics kit.
The PCB is designed and manufactured with four layers instead of the usual two layers, which means that the electronic design can be considerably improved. [Schematics and board to be posted soon] Two layers are kept for routing signals, while the other two layers are used for VCC and GND planes. The main advantage is that power distribution is much cleaner and efficient, connecting all the components with shorter and wider traces. This reduces the impedance of the copper traces, resulting is less EMI and better performance. This feature is specially important since motor drivers are noisy (electrically speaking) because they are constantly switching large currents.
The greatest improvement achieved by adding two layers to the PCB design is that now there is twice as much copper available to conduct heat away from the IC. Multiple vias have been added to minimize the thermal resistance and make sure that the heat can be efficiently moved outwards, where the larger surface area facilitates its dissipation via convection.
Testing & Thermal Imaging
The new 4 layer drivers have been tested to make sure they meet specifications and substantially improve the performance of previous models. The drivers were tested side by side on the X and Y axis of a Prusa i3 3D printer (RAMPS 1.4 electronics with Marlin 1.0 firmware). The Gcode that was executed was a large cube with the infill at 45º, which ensures both axis are in constant and equal motion.
The test was carried out three times, calibrating each of the drivers to 200mA, 300mA, and 400mA. In each case, the printer was allowed to run for at least 10 minutes so the temperature of the drivers would become stable. Once the operating temperature had been reached, a picture was taken with a thermal imaging camera. The following images show the max temperature (always on the 2 layer driver) and the temperature of the 4 layer driver.
In all three cases it is clear that the 4-layer driver is running much cooler than the 2-layer driver, due to its improved heat-dissipation. This means that all the electronic components in the board are subjected to less thermal stress, which greatly affects the life of the driver and ensures better performance. Plotting the data shows the true difference in temperature:
Unfortunately, some of the StepStick vendors have/had batches with StepSticks not soldered properly. Likely due to insufficient solder reflow temperature. The diagnosis is, they simply don't move the stepper, only at very low currents or only a second after turning them on (while they're cold).
If you don't want to send them straight back, you can try this to reflow them another time:
- Remove the plastics of the connectors pins. You can pull off the strip easily.
- Hold the StepStick over a not too small burning candle. Flat, above the visible flame, components side up.
- The connector pins will fall out pretty quickly. Lay them aside.
- Heat until you can see the solder going glossy everywhere. Heat another 5 seconds. Likely, you can smell a bit burned PCB substrate (Epoxy).
- Move the board away from the flame and allow cooling for a minute. Keep it flat or your components might fall off.
- Solder the connector pins back in.