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

How to Use Polulu DRV 8874: Examples, Pinouts, and Specs

Image of Polulu DRV 8874
Cirkit Designer LogoDesign with Polulu DRV 8874 in Cirkit Designer

Introduction

The Pololu DRV8874 (Manufacturer Part ID: 4035) is a compact and versatile motor driver designed to control both DC motors and stepper motors. It features a high-efficiency H-bridge design, allowing it to handle up to 3A of continuous current per channel. This driver is equipped with adjustable current limiting, making it suitable for a wide range of motor control applications. Its robust design and built-in protection features make it ideal for hobbyists, engineers, and professionals working on robotics, automation, and other motor-driven projects.

Explore Projects Built with Polulu DRV 8874

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Stepper Motor Control System with SIMATIC S7-300 and TB6600 Driver
Image of Copy of PLC-Based Step Motor Speed and Direction Control System: A project utilizing Polulu DRV 8874 in a practical application
This circuit controls a stepper motor using a tb6600 micro stepping motor driver and a DKC-1A stepper motor controller. The system is powered through panel mount banana sockets and includes a relay module for additional control, interfaced with a SIMATIC S7-300 PLC for automation.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Mega 2560-Controlled Stepper Motors with RFID Access and Traffic Light Indication
Image of Copy of test: A project utilizing Polulu DRV 8874 in a practical application
This circuit controls two 28BYJ-48 stepper motors using A4988 stepper motor driver carriers, interfaced with an Arduino Mega 2560 microcontroller. It features an RFID-RC522 module for RFID reading, a 16x4 LCD display with I2C interface for user interaction, and a piezo speaker for audio feedback. Additionally, there is a traffic light module controlled by the Arduino, and a 48V to 5V converter to step down voltage for the logic levels. The power supply provides 12V to the motor drivers and is connected to a standard power outlet.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO-Based Dual Stepper Motor Controller with Gesture Sensing and RTC Display
Image of Arduino UNO-Based Dual Stepper Motor Controller with Gesture Sensing and RTC Display: A project utilizing Polulu DRV 8874 in a practical application
This circuit is an Arduino UNO-based dual stepper motor controller that uses ULN2003A driver boards to control two 28BYJ-48 stepper motors. It features an APDS-9960 RGB and gesture sensor for gesture-based control, a DS1307 RTC module to display time on a 16x2 I2C LCD, and includes a green LED and two pushbuttons for additional control and status indication.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Uno Bluetooth Controlled Car with LCD Display
Image of bluetooth car 2025: A project utilizing Polulu DRV 8874 in a practical application
This circuit is an Arduino-based Bluetooth-controlled car with four DC motors driven by an L298N motor driver. The car's movement is controlled via Bluetooth commands received from an HC-05 module, and it features an LCD display for status messages and LEDs for visual indicators.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with Polulu DRV 8874

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 Copy of PLC-Based Step Motor Speed and Direction Control System: A project utilizing Polulu DRV 8874 in a practical application
Stepper Motor Control System with SIMATIC S7-300 and TB6600 Driver
This circuit controls a stepper motor using a tb6600 micro stepping motor driver and a DKC-1A stepper motor controller. The system is powered through panel mount banana sockets and includes a relay module for additional control, interfaced with a SIMATIC S7-300 PLC for automation.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Copy of test: A project utilizing Polulu DRV 8874 in a practical application
Arduino Mega 2560-Controlled Stepper Motors with RFID Access and Traffic Light Indication
This circuit controls two 28BYJ-48 stepper motors using A4988 stepper motor driver carriers, interfaced with an Arduino Mega 2560 microcontroller. It features an RFID-RC522 module for RFID reading, a 16x4 LCD display with I2C interface for user interaction, and a piezo speaker for audio feedback. Additionally, there is a traffic light module controlled by the Arduino, and a 48V to 5V converter to step down voltage for the logic levels. The power supply provides 12V to the motor drivers and is connected to a standard power outlet.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Arduino UNO-Based Dual Stepper Motor Controller with Gesture Sensing and RTC Display: A project utilizing Polulu DRV 8874 in a practical application
Arduino UNO-Based Dual Stepper Motor Controller with Gesture Sensing and RTC Display
This circuit is an Arduino UNO-based dual stepper motor controller that uses ULN2003A driver boards to control two 28BYJ-48 stepper motors. It features an APDS-9960 RGB and gesture sensor for gesture-based control, a DS1307 RTC module to display time on a 16x2 I2C LCD, and includes a green LED and two pushbuttons for additional control and status indication.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of bluetooth car 2025: A project utilizing Polulu DRV 8874 in a practical application
Arduino Uno Bluetooth Controlled Car with LCD Display
This circuit is an Arduino-based Bluetooth-controlled car with four DC motors driven by an L298N motor driver. The car's movement is controlled via Bluetooth commands received from an HC-05 module, and it features an LCD display for status messages and LEDs for visual indicators.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Robotics and automation systems
  • Electric vehicles and drones
  • Conveyor belts and industrial machinery
  • DIY projects involving DC or stepper motors
  • Prototyping motor control circuits

Technical Specifications

The following table outlines the key technical details of the Pololu DRV8874 motor driver:

Parameter Value
Operating Voltage Range 4.5V to 37V
Continuous Current per Channel 3A
Peak Current per Channel 6A (for short durations)
Control Interface PWM, DIR (direction control)
Current Limiting Range Adjustable via potentiometer
Logic Voltage Range 1.8V to 5.5V
Built-in Protections Overcurrent, overtemperature, undervoltage lockout
Dimensions 1.0" × 0.8" × 0.2" (25mm × 20mm × 5mm)
Weight 1.5g

Pin Configuration and Descriptions

The Pololu DRV8874 features a 12-pin interface. The table below describes each pin:

Pin Name Type Description
VIN Power Input Motor power supply input (4.5V to 37V).
GND Power Ground Ground connection for the motor power supply.
OUT1 Output Motor output 1. Connect to one terminal of the motor.
OUT2 Output Motor output 2. Connect to the other terminal of the motor.
VCC Power Input Logic power supply input (1.8V to 5.5V).
GND Power Ground Ground connection for the logic power supply.
PWM Input PWM signal input for speed control.
DIR Input Direction control input.
nFAULT Output Fault indicator (active low).
nSLEEP Input Sleep mode control (active low).
VREF Input Reference voltage for current limiting.
MODE Input Mode selection for controlling DC or stepper motors.

Usage Instructions

How to Use the Pololu DRV8874 in a Circuit

  1. Power Connections:

    • Connect the motor power supply to the VIN pin and ground to the GND pin.
    • Connect the logic power supply (e.g., 5V from a microcontroller) to the VCC pin and its ground to the GND pin.
  2. Motor Connections:

    • Connect the motor terminals to the OUT1 and OUT2 pins.
  3. Control Signals:

    • Use the PWM pin to control the motor speed by providing a PWM signal.
    • Use the DIR pin to set the motor's direction (HIGH for one direction, LOW for the other).
  4. Current Limiting:

    • Adjust the current limit by setting the VREF voltage. Refer to the datasheet for the formula to calculate the current limit.
  5. Sleep Mode:

    • To reduce power consumption, pull the nSLEEP pin LOW to put the driver into sleep mode.
  6. Fault Monitoring:

    • Monitor the nFAULT pin to detect issues such as overcurrent or overtemperature conditions.

Example: Connecting to an Arduino UNO

Below is an example of how to control a DC motor using the Pololu DRV8874 and an Arduino UNO:

// Define pin connections
const int pwmPin = 9;    // PWM pin connected to DRV8874 PWM
const int dirPin = 8;    // Direction pin connected to DRV8874 DIR
const int sleepPin = 7;  // Sleep pin connected to DRV8874 nSLEEP

void setup() {
  // Set pin modes
  pinMode(pwmPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
  pinMode(sleepPin, OUTPUT);

  // Wake up the motor driver
  digitalWrite(sleepPin, HIGH); // Set nSLEEP HIGH to enable the driver
}

void loop() {
  // Set motor direction
  digitalWrite(dirPin, HIGH); // HIGH for forward, LOW for reverse

  // Set motor speed
  analogWrite(pwmPin, 128); // 50% duty cycle (range: 0-255)

  delay(2000); // Run motor for 2 seconds

  // Stop the motor
  analogWrite(pwmPin, 0); // Set PWM to 0 to stop the motor

  delay(2000); // Wait for 2 seconds
}

Important Considerations

  • Ensure the motor power supply voltage is within the specified range (4.5V to 37V).
  • Avoid exceeding the continuous current rating of 3A to prevent damage.
  • Use proper heat dissipation methods if operating near the maximum current limit.
  • Double-check all connections before powering the circuit to avoid short circuits.

Troubleshooting and FAQs

Common Issues and Solutions

  1. Motor Not Spinning:

    • Verify that the nSLEEP pin is set HIGH to enable the driver.
    • Check the PWM signal and ensure it is not set to 0.
    • Confirm that the motor power supply is connected and within the specified voltage range.
  2. Driver Overheating:

    • Ensure the current limit is set appropriately using the VREF pin.
    • Add a heatsink or improve ventilation if operating at high currents.
  3. nFAULT Pin is LOW:

    • This indicates a fault condition. Check for overcurrent, overtemperature, or undervoltage issues.
    • Reduce the load on the motor or adjust the current limit.
  4. Motor Spins in the Wrong Direction:

    • Reverse the logic level on the DIR pin or swap the motor connections on OUT1 and OUT2.

FAQs

Q: Can the DRV8874 drive stepper motors?
A: Yes, the DRV8874 can drive stepper motors in full-step or microstepping modes. Use the MODE pin to configure the driver for stepper motor control.

Q: What happens if the current exceeds the limit?
A: The driver will enter current limiting mode to protect itself and the motor. Prolonged overcurrent conditions may trigger a fault.

Q: Is the DRV8874 compatible with 3.3V logic?
A: Yes, the driver supports logic levels from 1.8V to 5.5V, making it compatible with 3.3V and 5V systems.

Q: Can I use the DRV8874 with a battery-powered system?
A: Yes, as long as the battery voltage is within the operating range (4.5V to 37V).