Skip to content
My Account

Reference

DRV8825 Pinout

The pin reference for the DRV8825 stepper motor driver module: 16 pins, up to 1/32 microstepping, how to set the current limit and how to wire it without damaging the driver.

  • Up to 2.2 A per coil
  • Up to 1/32 microstepping
  • 8.2 to 45 V motor supply
  • 3.3 V and 5 V logic
No ratings yet, be the first.

Overview

The DRV8825 is a stepper motor driver chip from Texas Instruments. It is used on 3D printers, CNC machines, camera sliders and robots, usually on a small breakout board like the one from Pololu. It is not a programmable board. A microcontroller sends it a STEP pulse for every step and a DIR level for the direction, and the DRV8825 switches the high currents in the motor coils.

No Wi-Fi, Bluetooth or Matter badge here on purpose: this module has no radio and no processor, it only drives a motor. Only badges for what this exact module supports are shown.

STEP and DIR onlyA microcontroller needs just two pins to run the motor: one pulse per step and one pin for the direction.
Six step sizesThree pins, M0, M1 and M2, select anything from full steps down to 1/32 of a step.
Adjustable current limitA small trimpot sets the maximum coil current, so you can use a supply voltage far above the motor rating.

Chip and board

The chip is the DRV8825 from Texas Instruments. The board in this guide is the Pololu DRV8825 carrier (item 2133), which adds the current-limit trimpot, the two 0.100 Ω sense resistors, a 4-layer, 2 oz copper circuit board that draws heat out of the chip, and a 16-pin header. It runs from a motor supply of 8.2 to 45 V and needs no separate logic supply.

Many cheap modules copy this layout and silkscreen. Check the labels printed on your own board against the drawings below before you connect a motor, because the pin names and the position of the trimpot can differ on a clone.

In the drawings the chip is at the top and the trimpot at the bottom right. That is the Pololu board turned half a turn, so the pin names in this guide are the ones printed on the silkscreen, read in the drawing from top to bottom.

Getting started

The three steps below use any microcontroller that can make a pulse, for example an Arduino or an ESP32. Set the current limit before you connect a motor.

1. What you needA bipolar stepper motor, a motor supply of 8.2 to 45 V that can deliver the motor current, a capacitor of at least 47 µF across VMOT and GND, a multimeter and a microcontroller for STEP and DIR.
2. Set the current limitWith the motor not connected, power the board, measure VREF at the test point and turn the trimpot until the current limit (VREF x 2) is at or below the current rating of your motor.
3. Connect and pulse STEPWith the power off, connect the two coils (A1 and A2, B1 and B2), tie RST and SLP high, connect STEP and DIR, then switch on and send one pulse per step.

Hello World: turn a motor

This sketch turns the motor one full turn in each direction, using full steps. The pin numbers are examples, use the pins that you wired. A motor with 1.8 degrees per step needs 200 steps for one turn.

const int STEP_PIN = 2;
const int DIR_PIN  = 3;

void setup() {
  pinMode(STEP_PIN, OUTPUT);
  pinMode(DIR_PIN, OUTPUT);
}

void turn(int steps, bool forward) {
  digitalWrite(DIR_PIN, forward ? HIGH : LOW);
  for (int i = 0; i < steps; i++) {
    digitalWrite(STEP_PIN, HIGH);
    delayMicroseconds(800);
    digitalWrite(STEP_PIN, LOW);
    delayMicroseconds(800);
  }
}

void loop() {
  turn(200, true);
  delay(1000);
  turn(200, false);
  delay(1000);
}

The driver needs each STEP pulse, high and low, to last at least 1.9 µs. The 800 µs here is far slower and a safe start. This sketch is a minimal example, it was not run on a board for this guide.

Specifications

Values from the Pololu DRV8825 carrier page.

Driver

ChipDRV8825, microstepping driver for one bipolar stepper motor
Motor supply (VMOT)8.2 to 45 V
Maximum current2.5 A per coil for the chip. The sense resistors limit the module to 2.2 A per coil
Without extra coolingAbout 1.5 A per coil. Above that you need a heat sink or forced air
Step sizesFull, 1/2, 1/4, 1/8, 1/16 and 1/32 step
Current sense resistors0.100 Ω, current limit in amps = VREF x 2
Decay modeMixed decay
Minimum STEP pulse1.9 µs high and 1.9 µs low

Logic and protection

Logic levelsWorks directly with 3.3 V and 5 V systems, no logic supply needed
ProtectionOver-current shutdown, over-temperature shutdown, under-voltage lockout, short-to-ground and shorted-load protection
Internal pull-downs100 kΩ on M0, M1, M2, STEP, DIR, RST and EN, 1 MΩ on SLP

Physical

Size0.6 x 0.8 inch (15.2 x 20.3 mm)
Pins16, in two rows of 8 at 2.54 mm pitch, header supplied (soldered or loose, depending on the version)
Board4-layer, 2 oz copper, exposed ground pad on the back

Dimensions

The module is 0.6 by 0.8 inch, about 15.2 by 20.3 mm, with two rows of 8 pins at 2.54 mm pitch, so the 16 pins span 17.78 mm along the board. Pololu does not give the distance between the two rows, so measure your own board before you design a case or a PCB footprint.

DRV8825 module dimensions: 15.2 by 20.3 mm with two rows of 8 pins at 2.54 mm pitch

Source: the size printed in Pololu’s dimension picture. The drawing is schematic: the chip and the trimpot are simple blocks.

Pinout diagram: component side

The component side has the chip and the trimpot. The motor pins are in the left column and the control pins in the right column. The two ground pins are not the same job: use the one next to VMOT for the motor supply and the one next to FLT for the ground of your microcontroller.

DRV8825 module pinout, component side, with the 16 pins and their functions

Pinout diagram: back

The back is mirrored: the same pins sit in the other column. It has the large exposed ground pad under the chip, which you can use to move heat away. The circled via is the test point for VREF, the voltage that sets the current limit.

DRV8825 module pinout, back, with the exposed ground pad and the VREF test point

Pins at a glance

All 16 pins grouped by job. Only STEP and DIR need to be driven all the time.

The 16 pins of the DRV8825 module grouped by job: power, motor coils, movement, step size and power state

Pin reference

The same pins as a table, as printed on the board. The order is the one of the component-side drawing: the motor column from top to bottom, then the control column from top to bottom.

NameFunctionNotes
GNDGround, to the microcontrollerNext to FLT
FLTFault outputGoes low when over-current or over-temperature protection switches the outputs off. Safe to connect to a logic supply
A2, A1Motor coil AThe two wires of one coil
B1, B2Motor coil BThe two wires of the other coil
GNDGround, motor supplyNext to VMOT
VMOTMotor supply, 8.2 to 45 VAdd a capacitor of at least 47 µF close to the board
DIRDirectionPulled low by default
STEPStep inputOne pulse is one microstep, pulled low by default
SLPSleepMust be high to run, pulled low by default
RSTResetMust be high to run, pulled low by default
M2, M1, M0Step sizeSee the table below. All low means full step
ENEnable, active lowPulled low by default, so the driver is on when you leave it open

Setting the current limit

The current limit is the most important setting. The motor supply is usually much higher than the motor needs, so the driver limits the coil current actively. Set it at or below the current rating of your motor.

  1. Power the board without a motor connected.
  2. Measure the voltage at the VREF test point (the circled via on the back) against GND.
  3. Turn the trimpot until the voltage is the wanted current divided by 2.

The current limit in amps is VREF x 2, because the sense resistors are 0.100 Ω. For a motor rated at 1 A, set VREF to 0.5 V.

You can also put the driver in full-step mode and measure the current in one coil, without sending STEP pulses. The measured current is 0.7 times the limit, because both coils are on and each is limited to about 70% in full-step mode. Do not use the current at the power supply: it is not the coil current.

Microstepping

M0, M1 and M2 select the step size. They are pulled low internally, so leaving all three open gives full steps. The microstep modes only work well when the current limit is low enough that the current limiting is active, otherwise the motor can skip microsteps.

M0M1M2Step size
LowLowLowFull step
HighLowLowHalf step
LowHighLow1/4 step
HighHighLow1/8 step
LowLowHigh1/16 step
HighLowHigh1/32 step
LowHighHigh1/32 step
HighHighHigh1/32 step

A motor with 1.8 degrees per step has 200 full steps per turn. In 1/4-step mode that is 800 microsteps per turn.

Enable, reset, sleep and fault

The chip has three inputs for its power state. RST and SLP are pulled low by default, and while either one is low the driver does nothing. Connect both to a logic high (2.2 to 5.25 V) or to an output of your microcontroller. EN is active low and pulled low by default, so the driver is enabled when you leave it open.

FLT is an output that goes low when the outputs are switched off by over-current protection or over-temperature shutdown. On the Pololu board a 10 kΩ resistor connects it to SLP, so it has a pull-up as long as SLP is held high, and a 1.5 kΩ resistor in series protects the pin.

DRV8825 compared with the A4988

The Pololu DRV8825 has the same size and almost the same pinout as the A4988 carrier, so it often works as a drop-in replacement. These are the differences that matter.

DRV8825A4988
Maximum supply45 V35 V
Finest step size1/321/16
Minimum STEP pulse1.9 µs1 µs
Current without extra cooling (Pololu full-step tests)About 1.5 A per coil1.2 A per coil (Black Edition), 1 A (original)
Pin next to the SLP pinFLT, a fault outputVDD, the logic supply
Motor pinsA1, A2, B1, B21A, 1B, 2A, 2B (same connections give the same motor behavior)

The mode selection that gives 1/16 step on the A4988 gives 1/32 step on the DRV8825. The current limit trimpot is in a different place and the relation between VREF and the current is different, so set it again.

Real gotchas

  • The motor does not move. RST and SLP are low by default. Connect both to a logic high first.
  • Never connect or disconnect the motor while the driver is powered. It can destroy the driver. Switch off before you rewire anything.
  • Voltage spikes can kill the board. It uses low-ESR ceramic capacitors, and a spike on long power leads can pass the 45 V rating even on a 12 V supply. Put an electrolytic capacitor of at least 47 µF across VMOT and GND, close to the board.
  • Set the current before the first run. Both the driver and the motor can overheat on a limit that is too high.
  • It gets hot. Above about 1.5 A per coil it needs a heat sink or forced air, and the module can burn you long before the chip overheats.
  • Header pins on the wrong side. If you solder the pins with the silkscreen side up, the trimpot may not turn fully. Set the current limit before you solder them.
  • A clone can differ. Compare the silkscreen of your board with the drawings above, and check the trimpot, before you connect a motor.
  • Measure the coil, not the supply. The current at the power supply is lower than the coil current and says little about the limit.

What to build with it

  • A 3D printer or a CNC machine, one driver per axis
  • A motorized camera slider or a pan and tilt head
  • A robot with accurate wheel or arm movement
  • Any machine that must move an exact distance without a position sensor

Drive it with an Arduino Nano or an ESP32, whichever you have.

Safety notes

Before you wire anything up

  • Never connect or disconnect the motor while the driver is powered. The resulting spike can destroy it.
  • Set the current limit (VREF) before you run the motor. A limit that is too high can overheat the driver and the motor.
  • Use a motor supply of 8.2 to 45 V and a capacitor of at least 47 µF across VMOT and GND.
  • Cool the module if you run more than about 1.5 A per coil, and do not touch it while it works.
  • STEP and DIR are logic inputs that work with 3.3 V and 5 V. Connect RST and SLP to a logic high of 2.2 to 5.25 V, not to the motor supply.

Conclusion

The DRV8825 drives a bipolar stepper motor from just a STEP and a DIR pin, with step sizes down to 1/32. Set the current limit with VREF x 2 before you connect a motor, hold RST and SLP high, put a capacitor of at least 47 µF across the motor supply and never rewire it while it is powered.

Sources: the Pololu DRV8825 stepper motor driver carrier page and its minimal wiring diagram, and the silkscreen photo of the board.

Advertisement
All guides

More guides

Keep building.

From ESP32 HomeKit accessories to Arduino and ATtiny reference guides, there’s more where this came from.

All guides