

The DVR8825 is a high-performance microstepping driver designed for controlling stepper motors. It features adjustable current control, enabling smooth motor operation and reduced noise. With support for up to 2.5A per phase and multiple microstepping modes (full, half, quarter, eighth, and sixteenth), the DVR8825 is ideal for applications requiring precise motor control. Common use cases include robotics, 3D printers, CNC machines, and other automation systems.








The DVR8825 has 16 pins, which are typically arranged as follows:
| Pin Name | Description |
|---|---|
| VMOT | Motor power supply (8.2V to 45V). Connect to the positive terminal of the motor power supply. |
| GND | Ground for motor power supply. Connect to the negative terminal of the motor power supply. |
| B2, B1 | Outputs for connecting to one coil of the stepper motor. |
| A1, A2 | Outputs for connecting to the other coil of the stepper motor. |
| VDD | Logic power supply (3.3V or 5V). |
| GND | Ground for logic power supply. |
| STEP | Step input. A rising edge on this pin advances the motor by one step. |
| DIR | Direction input. High or low signal determines the rotation direction. |
| ENABLE | Enable input. Pull low to enable the driver; pull high to disable it. |
| MS1, MS2, MS3 | Microstepping mode selection pins. Configure these to set the desired microstepping mode. |
| RESET | Reset input. Pull low to reset the driver. |
| SLEEP | Sleep mode input. Pull low to put the driver into low-power sleep mode. |
| FAULT | Fault output. Goes low when a fault condition (e.g., overcurrent) occurs. |
The microstepping mode is determined by the states of the MS1, MS2, and MS3 pins:
| MS1 | MS2 | MS3 | Microstepping Mode |
|---|---|---|---|
| Low | Low | Low | Full Step |
| High | Low | Low | Half Step |
| Low | High | Low | Quarter Step |
| High | High | Low | Eighth Step |
| High | High | High | Sixteenth Step |
Below is an example of how to control a stepper motor using the DVR8825 and an Arduino UNO:
// Define pin connections
#define STEP_PIN 3 // Connect to the STEP pin of the DVR8825
#define DIR_PIN 4 // Connect to the DIR pin of the DVR8825
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 (HIGH = one direction)
}
void loop() {
// Generate a step pulse
digitalWrite(STEP_PIN, HIGH); // Set STEP pin HIGH
delayMicroseconds(500); // Wait for 500 microseconds
digitalWrite(STEP_PIN, LOW); // Set STEP pin LOW
delayMicroseconds(500); // Wait for 500 microseconds
}
Motor Not Moving:
Overheating:
Driver Not Enabling:
Fault Condition (FAULT Pin Low):
Motor Vibrating but Not Rotating:
Can I use the DVR8825 with a 12V power supply? Yes, the DVR8825 supports motor power supplies from 8.2V to 45V, so 12V is within the acceptable range.
How do I set the current limit?
Use the onboard potentiometer. Measure the VREF voltage and calculate the current limit using the formula:Current Limit = VREF × 2 (for DVR8825).
What happens if I exceed the current limit? The driver will enter overcurrent protection mode, and the FAULT pin will go low. Reduce the current limit or improve cooling to resolve this.
Can I use the DVR8825 with a 3.3V microcontroller? Yes, the DVR8825 is compatible with both 3.3V and 5V logic levels.