A4988 vs DRV8825 Chinese Stepper Driver Boards

From RepRap
Revision as of 03:26, 11 September 2015 by Xelaform (talk | contribs)
Jump to: navigation, search

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.

Inexpensive "Made in China" RAMPS 1.4 board without stepper driver boards.

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.

A4988 and DRV8825 stepper driver boards side by side. A different A4988 based stepper driver.

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 and DRV8825 stepper driver boards, underside. A different A4988 based stepper driver.

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:

  1. The stepper driver boards should not be inserted backwards in their respective slots on the controller board (Doh!).
  2. The stepper cables should not be disconnected from the boards while powered on.
  3. 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!

An inexpensive "Made in China" Pololu-style stepper driver board based on the popular Allegro 4988 IC.

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).

An inexpensive "Made in China" Pololu-style A4988 stepper driver board using 0.1 Ohm current sense resistors, detail.

A4988 orientation

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:

DRV8825-based inexpensive stepper driver board.

DRV8825 orientation

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.

Trimpot adjustment

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.

Location to measure Vref on the Made in China DRV8825 board

Mixing A4988 and DRV8825 stepper drivers

Yes, you can! (tested and it works fine)

Mixing A4988 and DRV8825 stepper drivers on the same RAMPS 1.4? Yes, you can!

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.

Comparison table

The following table compares Made in China A4988 Stepper driver boards vs DRV8825 ones, for RepRap use:

A4988 DRV8825
Availability very widely available widely available
Approx. price $6.80 / 5 pieces $10 / 5 pieces
Max. theoretical current 2A 2.5A
Max. microsteps 16 32
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
0.2 Ohm
0.1 Ohm
Vref formula (*) I_TripMax= Vref/(8*Rs) I_TripMax= Vref/(5*Rs)
Thermal Overload Protection (**) Yes Yes
PCB layers 2 4
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.

(***) Heatsinks

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.


Use Cases

(add your own here)

User No. of Stepper Boards Stepper Driver Type Controller Board Current per XYZ stepper Current Extruder stepper Time in Use Picture if available Notes

AndrewBCN 4 A4988 RAMPS 1.4 800mA 1A 3 months Arduino Mega 2560 + RAMPS 1.4 + 4 x A4988 stepper drivers + 80mm fan stack, during a print. Cooling provided by 80mm fan blowing directly over stepper drivers. Zero issues.
AndrewBCN 4 2 x A4988


2 x DRV8825

RAMPS 1.4 800mA 1A Testing Arduino Mega 2560 + RAMPS 1.4 + 4 x A4988 stepper drivers + 80mm fan stack, during a print. Same setup as above, just swapped drivers for X and Y axis and configured for 1/32 microstepping. Smoother displacements of the X and Y carriages, much less vibration and noise when printing compared to previous setup.
Cloggie 4 3 x A4988


1 x DRV8825

RAMPS 1.4 Not measured Not measured Testing N/A RepRap Mendel. Replaced extruder stepstick for a DRV8825 and configured for 1/16 microstepping. BullDog Lite now prints high quality and with a resolution 50 micron layers (previously only 200 micron). Current setting is not critical any more.
Template  ?  ?  ?  ?  ?  ? N/A (any extra useful information added here)