Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use DRV 8825: Examples, Pinouts, and Specs

Image of DRV 8825
Cirkit Designer LogoDesign with DRV 8825 in Cirkit Designer

Introduction

The DRV8825 is a stepper motor driver IC manufactured by Texas Instruments, designed to provide precise control of stepper motors. It supports adjustable current control, microstepping (up to 1/32 steps), and includes built-in protection features such as overcurrent, thermal shutdown, and undervoltage lockout. The DRV8825 is widely used in robotics, 3D printers, CNC machines, and other automation systems requiring accurate motor control.

Explore Projects Built with DRV 8825

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
ATmega328P Microcontroller-Driven Stepper Motor with DRV8825
Image of Shutter for laser: A project utilizing DRV 8825 in a practical application
This circuit is designed to control a bipolar stepper motor using a DRV8825 stepper motor driver, which is interfaced with a Nano 3.0 ATmega328P microcontroller. The microcontroller sends step and direction signals to the DRV8825, which in turn drives the stepper motor's coils. Power is supplied to the system through a 5V adapter for the logic and a DC power source for the motor, with an electrolytic capacitor for voltage smoothing on the motor supply.
Cirkit Designer LogoOpen Project in Cirkit Designer
Teensy 4.0 and MAX7219-Based 7-Segment Display Counter
Image of dispay: A project utilizing DRV 8825 in a practical application
This circuit uses a Teensy 4.0 microcontroller to control a MAX7219 LED driver, which in turn drives three 7-segment displays. The microcontroller runs code to display numbers from 0 to 999 on the 7-segment displays, with the SN74AHCT125N buffer providing signal integrity and the necessary capacitors and resistors ensuring stable operation.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO-Based Stepper Motor Controller with Keypad and LCD Display
Image of syringe pump: A project utilizing DRV 8825 in a practical application
This circuit is a control system utilizing an Arduino UNO to manage a stepper motor via a DRV 8825 driver, display information on an LCD, and interact with a 4x4 keypad and a buzzer. It also includes an RTC DS3231 for real-time clock functionality, with power supplied by a 12V power source.
Cirkit Designer LogoOpen Project in Cirkit Designer
RTL8720DN-Based Interactive Button-Controlled TFT Display
Image of coba-coba: A project utilizing DRV 8825 in a practical application
This circuit features an RTL8720DN microcontroller interfaced with a China ST7735S 160x128 TFT LCD display and four pushbuttons. The microcontroller reads the states of the pushbuttons and displays their statuses on the TFT LCD, providing a visual feedback system for button presses.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with DRV 8825

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of Shutter for laser: A project utilizing DRV 8825 in a practical application
ATmega328P Microcontroller-Driven Stepper Motor with DRV8825
This circuit is designed to control a bipolar stepper motor using a DRV8825 stepper motor driver, which is interfaced with a Nano 3.0 ATmega328P microcontroller. The microcontroller sends step and direction signals to the DRV8825, which in turn drives the stepper motor's coils. Power is supplied to the system through a 5V adapter for the logic and a DC power source for the motor, with an electrolytic capacitor for voltage smoothing on the motor supply.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of dispay: A project utilizing DRV 8825 in a practical application
Teensy 4.0 and MAX7219-Based 7-Segment Display Counter
This circuit uses a Teensy 4.0 microcontroller to control a MAX7219 LED driver, which in turn drives three 7-segment displays. The microcontroller runs code to display numbers from 0 to 999 on the 7-segment displays, with the SN74AHCT125N buffer providing signal integrity and the necessary capacitors and resistors ensuring stable operation.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of syringe pump: A project utilizing DRV 8825 in a practical application
Arduino UNO-Based Stepper Motor Controller with Keypad and LCD Display
This circuit is a control system utilizing an Arduino UNO to manage a stepper motor via a DRV 8825 driver, display information on an LCD, and interact with a 4x4 keypad and a buzzer. It also includes an RTC DS3231 for real-time clock functionality, with power supplied by a 12V power source.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of coba-coba: A project utilizing DRV 8825 in a practical application
RTL8720DN-Based Interactive Button-Controlled TFT Display
This circuit features an RTL8720DN microcontroller interfaced with a China ST7735S 160x128 TFT LCD display and four pushbuttons. The microcontroller reads the states of the pushbuttons and displays their statuses on the TFT LCD, providing a visual feedback system for button presses.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • 3D printers and CNC machines
  • Robotics and automation systems
  • Camera sliders and gimbals
  • Precision positioning systems
  • DIY electronics projects

Technical Specifications

The DRV8825 is a versatile and robust stepper motor driver. Below are its key technical details:

Parameter Value
Operating Voltage (VMOT) 8.2V to 45V
Logic Voltage (VIO) 3.3V or 5V
Maximum Output Current 2.5A per coil (with sufficient cooling)
Microstepping Modes Full, 1/2, 1/4, 1/8, 1/16, 1/32
Step Frequency Up to 250 kHz
Thermal Shutdown Protection Yes
Overcurrent Protection Yes
Undervoltage Lockout Yes

Pin Configuration and Descriptions

The DRV8825 is typically available in a 28-pin HTSSOP package or as a breakout module. Below is the pinout for the breakout module:

Pin Name Type Description
VMOT Power Input Motor power supply (8.2V to 45V). Connect a capacitor (e.g., 100 µF) across VMOT and GND.
GND Power Ground Ground connection for motor power supply.
VDD Power Input Logic voltage supply (3.3V or 5V).
DIR Digital Input Direction control input. High or low determines motor rotation direction.
STEP Digital Input Step pulse input. Each pulse advances the motor by one step.
ENABLE Digital Input Enables or disables the motor driver. Low = enabled, High = disabled.
MS1, MS2, MS3 Digital Inputs Microstepping mode selection pins. See table below for configuration.
FAULT Digital Output Fault indicator. Low when a fault condition occurs (e.g., overcurrent).
AOUT1, AOUT2 Motor Outputs Outputs for one motor coil (A).
BOUT1, BOUT2 Motor Outputs Outputs for the other motor coil (B).
SLEEP Digital Input Puts the driver into low-power sleep mode when pulled low.
RESET Digital Input Resets the internal logic when pulled low.

Microstepping Configuration

The microstepping mode is configured using the MS1, MS2, and MS3 pins as shown below:

MS1 MS2 MS3 Microstepping Mode
Low Low Low Full Step
High Low Low 1/2 Step
Low High Low 1/4 Step
High High Low 1/8 Step
Low Low High 1/16 Step
High Low High 1/32 Step

Usage Instructions

Connecting the DRV8825

  1. Power Supply: Connect VMOT to a power supply (8.2V to 45V) and GND to ground. Add a decoupling capacitor (e.g., 100 µF) across VMOT and GND to stabilize the power supply.
  2. Motor Connections: Connect the stepper motor coils to AOUT1, AOUT2, BOUT1, and BOUT2. Ensure the correct pairing of motor wires.
  3. Logic Connections: Connect VDD to the logic voltage (3.3V or 5V) and GND to the logic ground.
  4. Control Pins: Connect STEP, DIR, ENABLE, and microstepping pins (MS1, MS2, MS3) to your microcontroller or control circuit.

Adjusting Current Limit

To prevent overheating or overdriving the motor, adjust the current limit using the onboard potentiometer:

  1. Measure the reference voltage (VREF) on the breakout board.
  2. Use the formula:
    Current Limit = VREF × 2 (for most DRV8825 modules).
    For example, if VREF = 0.5V, the current limit is 1A.
  3. Turn the potentiometer clockwise to increase the current limit or counterclockwise to decrease it.

Example Arduino Code

Below is an example of how to control a stepper motor using the DRV8825 and an Arduino UNO:

// Define control pins
#define STEP_PIN 3  // Connect to STEP pin on DRV8825
#define DIR_PIN 4   // Connect to DIR pin on DRV8825

void setup() {
  pinMode(STEP_PIN, OUTPUT); // Set STEP pin as output
  pinMode(DIR_PIN, OUTPUT);  // Set DIR pin as output

  digitalWrite(DIR_PIN, HIGH); // Set initial direction
}

void loop() {
  // Generate step pulses
  digitalWrite(STEP_PIN, HIGH); // Step pulse HIGH
  delayMicroseconds(500);       // Wait 500 microseconds
  digitalWrite(STEP_PIN, LOW);  // Step pulse LOW
  delayMicroseconds(500);       // Wait 500 microseconds
}

Best Practices

  • Use a heatsink or active cooling if driving motors at high currents.
  • Avoid connecting or disconnecting the motor while the driver is powered to prevent damage.
  • Ensure proper decoupling capacitors are in place to avoid voltage spikes.

Troubleshooting and FAQs

Common Issues

  1. Motor Not Moving:

    • Check the power supply connections and ensure VMOT and VDD are correctly powered.
    • Verify the STEP pin is receiving pulses from the microcontroller.
    • Ensure the motor coils are correctly connected to the driver.
  2. Overheating:

    • Reduce the current limit using the potentiometer.
    • Add a heatsink or active cooling to the driver.
  3. Fault Indicator (FAULT Pin Low):

    • Check for overcurrent or thermal shutdown conditions.
    • Ensure the motor is not drawing more current than the driver can handle.
  4. Erratic Motor Movement:

    • Verify the microstepping mode configuration (MS1, MS2, MS3).
    • Check for loose or incorrect wiring.

FAQs

Q: Can I use the DRV8825 with a 12V power supply?
A: Yes, the DRV8825 supports motor power supply voltages from 8.2V to 45V, so 12V is within the acceptable range.

Q: How do I know the correct current limit for my motor?
A: Refer to your motor's datasheet for its rated current per phase. Set the current limit on the DRV8825 to match or slightly below this value.

Q: Can I use the DRV8825 with a unipolar stepper motor?
A: The DRV8825 is designed for bipolar stepper motors. However, you can use a unipolar motor in bipolar mode by ignoring the center tap wires.

Q: What happens if I exceed the current limit?
A: The DRV8825 includes overcurrent protection and will shut down to prevent damage. However, prolonged overcurrent conditions can still cause overheating.

By following this documentation, you can effectively use the DRV8825 stepper motor driver in your projects.