A4988 vs DRV8825 Chinese Stepper Driver Boards
English • العربية • български • català • čeština • Deutsch • Ελληνικά • español • فارسی • français • hrvatski • magyar • italiano • română • 日本語 • 한국어 • lietuvių • Nederlands • norsk • polski • português • русский • Türkçe • українська • 中文（中国大陆） • 中文（台灣） • עברית • azərbaycanca •
The Arduino Mega 2560 + RAMPS 1.4 combination is presently (December 2014) widely available and just as widely used to control 3D printers, either in the form of original components or more often than not, as inexpensive "Made in China" clones. Similarly, inexpensive "Pololu-style" stepper driver boards that plug directly onto RAMPS boards (usually four or five stepper driver boards are used) are available from China with two different stepper driver ICs, namely the Allegro A4988 and the Texas Instruments DRV8825.
While the "Made in China" DRV8825 stepper driver boards are mostly near or identical clones of the original Pololu DRV8825 stepper driver boards, the A4988 driver boards are mostly near or identical clones of the StepStick stepper driver boards. The StepStick driver boards are pin compatible with the Pololu A4988 Stepper Motor Driver Carrier but they have a different PCB layout which is freely available under the GPLv2 license.
How inexpensive can these stepper driver boards get? Well, right now a set of five Made in China A4988 stepper driver boards goes for around $6.80, whereas a similar set of five Made in China DRV8825 stepper driver boards is available for around $10. Some DRV8825's can now be had for as low as $1.62 each.
This situation begs for some interesting questions: is it worth getting DRV8825 stepper driver boards instead of the more popular A4988 boards or not? Which one is the better choice for my 3D printer? Which one is more reliable / less unreliable? Can I mix A4988 boards with DRV8825 boards? Are there any caveats to using either driver board that I should be aware of?
This page is an attempt to provide sufficient information to make a rational choice and answer these and other related questions, if possible.
A4988 stepper driver board
I am pretty confident that the Allegro A4988 is an utterly tested and proven solution to drive stepper motors in RepRap 3D printers, and this fact should not be overlooked. As long as the following three conditions are met, these Made in China Allegro A4988 stepper driver boards seem to be bullet-proof workhorses:
- The stepper driver boards should not be inserted backwards in their respective slots on the controller board (Doh!).
- The stepper cables should not be disconnected from the boards while powered on.
- Proper airflow (i.e. active cooling or in other words, a fan) should be provided.
Incredibly enough that last condition is often not met, as many 3D printer kits seem to dispense with the use of a fan blowing some cool air over the controller and stepper driver boards and depend solely on convection / radiation. It is up to the users/builders to later add a fan on their own... or suffer the consequences!
Not the highest quality PCB and soldering I have ever seen, for sure, but... it works!
Current sense resistors (Rs)
Note that the original StepStick stepper driver boards use 0.2 Ohm current sense resistors (Rs) while the original Pololu A4988 stepper driver boards uses 0.05 Ohm current sense resistors. However, the Made in China A4988 stepper driver boards use various current sense resistors depending on the manufacturer (usually either 0.05 Ohm, 0.1 Ohm or 0.2 Ohm). The current sense resistors are the two small black components next to the main chip. Compare the pictures above and check the detail below: the green Made in China A4988 board was fit with 0.1 Ohm resistors (labeled with "R100") while the red StepStick Made in China clone was fit with 0.2 Ohm resistors (labeled with "R200"), while other Made in China A4988 boards may come with 0.05 Ohm (labeled with "R050") current sense resistors. So it is very important that you closely examine your stepper driver boards and use the exact values for the current sense resistors when calculating the Vref formula (see below).
IMPORTANT! As mentioned above, inserting an A4988 stepper driver the wrong way around will kill it and possibly damage the RAMPS board as soon as power is applied, so pay attention to the correct orientation of the stepper driver boards when inserting them in their sockets on the controller board. When inserted on a RAMPS 1.4 board, the A4988 driver's trimpot must point to the side nearest to the LCD connectors.
DRV8825 stepper driver board
And this is the new contender, a stepper driver board based on the Texas Instruments DRV8825:
IMPORTANT! As shown in some of the pictures above, the DRV8825 stepper driver boards have the trimpot on the other edge of the PCB compared to the A4988 boards, so pay attention to the correct orientation of the stepper driver boards when inserting them in their sockets on the controller board. When inserted on a RAMPS 1.4 board, the DRV8825 driver's trimpot must point to the side nearest to the Arduino's USB connector.
By default these Made in China DRV8825 stepper driver boards seem to come with a default Vref set to ~1.6V which - if the formula provided below is correct - is way too high and could even damage the stepper. The first thing to do when using these DRV8825 drivers is to turn the trimpot clockwise and decrease Vref to around 0.5V (1A current), then do the fine-adjustment.
Another important thing to note is that the Made in China copy is not quite the same as a genuine pololu DRV8825 board. The exposed via, which is connected to Vref on the genuine board, is actually connected to the bridge B power supply pin (11) of the DRV8825 on the Made in China board. In order to set Vref, you have to measure it off of pins 12 and/or 13 on the actual chip or from the center pin of the adjustment pot--the via will just give 12V or so. Pins 12 and 13 are located just adjacent to the via. If you look at the traces on the board, the via goes to pin 11, then there are pins 12 and 13, and then the last pin is 14.
Mixing A4988 and DRV8825 stepper drivers
Yes, you can! (tested and it works fine)
Actually I went ahead and tested this mix on my reference P3Steel. As shown above, I used DRV8825 stepper drivers for the X and Y axis and A4988 stepper drivers for the Z axis and the extruder. I already had small heatsinks on the A4988 drivers (not shown above, I`ll take a picture later) so I just left them there, on the other hand I did not install heatsinks on the DRV8825 drivers (see below the explanation for this). A 12V 80mm fan provides active cooling for the stepper drivers and RAMPS 1.4 MOSFETs. The DRV8825 stepper drivers are set to 1/32 microstepping whereas the A4988 stepper drivers are set to 1/16 microstepping. As for the current settings, I have two completely different steppers for the X and Y axis, but basically I am using all the steppers in this printer at 70% of their nominal max. currents and they all work fine and barely get warm to the touch.
After recompiling Marlin with double the original number of steps/mm for the X and Y axis and flashing it to the Arduino Mega 2560, I printed a couple of calibration parts.
Frankly I was pleasantly surprised by how smooth the X and Y axis movements have become with 1/32 microstepping. I guess I had a nasty resonance with the Y-axis stepper and the way its A4988 driver was configured, but now the resonance is completely gone, and the printer prints with much less noise and vibration than before. Unless some unforeseen problems spring up in the next few hours of printing, I am probably never going back to the previous configuration.
The following table compares Made in China A4988 Stepper driver boards vs DRV8825 ones, for RepRap use:
|Availability||very widely available||widely available|
|Approx. price||$6.80 / 5 pieces||$10 / 5 pieces|
|Max. theoretical current||2A||2.5A|
|PCB color||Green / Red||Purple|
|Stepper current adjust. trimpot||Yes, near Dir pin||Yes, near En pin|
|Typical Rs value|| 0.05 Ohm or
0.1 Ohm or
|Vref formula (*)||I_TripMax= Vref/(8*Rs)||I_TripMax= Vref/(5*Rs)|
|Thermal Overload Protection (**)||Yes||Yes|
|Small heatsink included (***)||Almost always||Sometimes not|
|Active cooling required?||Recommended||Recommended|
|IC packaging||5x5mm 28-lead QFN||9.7x6.4mm 28HTSSOP|
Note that some important technical characteristics from the respective datasheets of the ICs are not directly comparable. For example, the DRV8825 is fully specified in terms of thermal characteristics, the A4988 is not. Another important characteristic that unfortunately is not directly comparable is RDSon, which is specified at different current levels in the respective IC datasheets.
(*) Adjusting the stepper driver current
See these instructions: Pololu_stepper_driver_board#Tuning_motor_current.
(**) Temperature Overload Protection
It is very important to keep the stepper driver ICs below a certain temperature during printing, since both ICs feature thermal overload protection that when triggered (typically when the die reaches a temperature of around 150~160 C), shuts down the output stages i.e. halts all commands to the affected stepper and in doing so, ruins the part being printed.
It is not yet determined how much of a real impact the small aluminum heatsinks shown in the pictures above have on cooling the ICs, as both stepper driver ICs depend much more on proper PCB layout and solder pad contact (as well as proper airflow, remember!) for heat dissipation, rather than on dissipation through the top of the IC package. This is because both stepper driver ICs have an exposed metal pad under the chip that contacts the PCB and this is the "path of least resistance" for heat dissipation. The secondary path for heat dissipation is through the package leads and in this aspect the DRV8825 provides for possibly slightly better power dissipation compared to the leadless A4988. It is my understanding that dissipation through the top of the ICs is almost irrelevant here.
(add your own here)