A brushed motor driver is a current-amplifying switch network—typically an H-bridge topology—that sits between a low-power microcontroller (like an ESP32 or Arduino) and a high-current DC motor. It translates 3.3V or 5V logic signals into the high-voltage, high-current pulses required to control motor direction and speed via Pulse Width Modulation (PWM). If you are driving a standard 12V DC gearmotor drawing 5A, your microcontroller's GPIO pins (usually limited to 20mA-40mA) cannot supply that current directly. The driver handles the heavy electrical lifting while the MCU dictates the switching timing.
Selecting the right driver requires looking past the motor's nominal running current and designing for worst-case stall conditions. Below is a complete guide to matching motor types to load profiles, sizing your H-bridge, wiring the terminals correctly, and diagnosing common failure signatures.
Motor Types and Load Profiles: Where Brushed DC Wins
Before selecting a driver, you must confirm that a brushed DC motor is actually the right actuator for your mechanical load. Brushed motors excel in applications requiring high starting torque, simple variable speed control, and low system cost. They are the standard for conveyor belts, RC vehicles, winches, and linear actuators.
It is a common beginner mistake to treat steppers and servos as interchangeable with standard DC motors. Steppers are designed for open-loop precision positioning (holding torque at zero speed), while servos (which may internally use brushed or brushless motors) rely on closed-loop feedback for high-dynamic positioning. Brushed DC motors, by contrast, are for continuous rotation and high-torque starting.
| Motor Type | Torque Curve | Control Needs | Typical Cost | Best Load Profile |
|---|---|---|---|---|
| Brushed DC | Max torque at stall (0 RPM), drops linearly with speed. | Simple H-bridge (brushed motor driver), PWM for speed, 2 pins for direction. | Low ($5 - $25) | Continuous rotation, high starting torque (winches, drive trains, pumps). |
| Brushless DC (BLDC) | High torque across a wide speed range, requires commutation. | 3-phase ESC (Electronic Speed Controller), hall sensors or sensorless BEMF tracking. | Medium ($20 - $80) | High RPM, high efficiency, continuous duty (drones, cooling fans, spindles). |
| Stepper | Max holding torque at 0 RPM, drops sharply at high speeds. | Step/Dir pulse generator, microstepping driver (e.g., A4988, TMC2209). | Medium ($15 - $50) | Open-loop precision positioning (3D printers, CNC routers, camera sliders). |
| AC Induction | Low starting torque, peaks near synchronous speed. | VFD (Variable Frequency Drive), 3-phase AC power. | High ($100+) | Heavy industrial continuous loads (HVAC blowers, large compressors). |
Sizing Your Brushed Motor Driver: Rules of Thumb and Worked Examples
The most frequent cause of melted motor drivers in hobbyist and prototype builds is sizing the H-bridge for the motor's continuous running current rather than its stall current. When a DC motor starts from a dead stop, or when the mechanical load jams, the motor acts as a short circuit. The current spikes to the stall rating, which is typically 4 to 8 times higher than the running current.
Always select a brushed motor driver whose continuous current rating meets or exceeds the motor's stall current, or ensure the driver has a robust, fast-acting thermal shutdown and overcurrent protection (OCP) circuit if you are willing to accept peak derating.
Worked Load Example: 12V Windshield Wiper Motor
Let's size a driver for a common 12V DC wiper motor used in DIY robotics and motorized camera dollies.
- Nominal Voltage: 12V DC
- Continuous Running Current: 3.0A (under normal mechanical load)
- Stall Current: 12.0A (measured by locking the rotor)
- Control Requirement: Bidirectional (requires full H-bridge)
The Wrong Choice: The classic STMicroelectronics L298N module. It is rated for 2A continuous per channel (3A peak). If you use this, the 12A stall current will instantly trigger its thermal shutdown, or worse, melt the internal bond wires if the heatsink is inadequate.
The Marginal Choice: The Toshiba TB6612FNG. Rated for 1.2A continuous and 3.2A peak. It will fail immediately under load.
The Correct Choice: A driver based on the Infineon BTS7960 (often sold as a 43A dual H-bridge module) or a Pololu High-Power Motor Driver 18v15 (rated for 15A continuous without a heatsink). The 15A continuous rating comfortably absorbs the 12A stall spike without thermal throttling, ensuring reliable direction reversals under heavy inertia.
Wiring, Terminals, and Failure Signatures
Modern brushed motor driver modules abstract the raw MOSFETs into easy-to-use terminals, but miswiring the logic and power domains is a primary source of magic smoke. Below is the standard terminal identification for a typical integrated H-bridge module (like those based on the TI DRV8871 or similar ICs).
| Terminal Label | Function | Wiring Destination |
|---|---|---|
| VM / VCC_M | Motor Power Supply (High Current) | Positive terminal of the main battery/power supply (e.g., 12V lead-acid or LiFePO4 pack). |
| VCC / VDD | Logic Power Supply (Low Current) | Microcontroller 3.3V or 5V pin. (Some modules derive this internally via a buck converter; check the datasheet). |
| GND | Common Ground | CRITICAL: Must be tied to both the main power supply negative AND the microcontroller GND. Without a common ground, logic signals float and the driver will not switch. |
| IN1 / IN2 (or PWM / DIR) | Logic Control Inputs | Microcontroller GPIO pins (capable of hardware PWM). |
| OUT1 / OUT2 (or M1 / M2) | Motor Outputs | The two terminals of the brushed DC motor. Polarity determines direction. |
Diagnosing Failure Signatures
When a brushed motor drive system fails, the symptoms usually manifest in three distinct ways. Recognizing these signatures saves hours of multimeter probing.
1. Humming Without Rotation (Audible Whine)
If the motor emits a high-pitched hum but the shaft doesn't turn, your PWM frequency is likely too low (below 1kHz), causing the motor windings to act as a speaker. Alternatively, the driver's current limit is being reached immediately upon startup (stall condition), and the IC is rapidly chopping the power to protect itself. Fix: Increase PWM frequency to 4kHz-10kHz, or verify the mechanical load isn't physically jammed.
2. Overheat and Thermal Shutdown
The driver IC becomes too hot to touch (>85°C) and the motor periodically stops and starts. This is the internal thermal protection kicking in. It almost always means the driver is undersized for the continuous RMS current, or there is insufficient decoupling capacitance on the VM rail, causing voltage spikes that increase switching losses in the MOSFETs. Fix: Add a 2200µF electrolytic capacitor and a 100nF ceramic capacitor directly across the VM and GND terminals on the driver board.
3. Stall-Induced MCU Brownout
The motor starts, but the microcontroller instantly resets or throws a watchdog error. When a brushed motor starts, the massive inrush current causes a voltage sag on the main power rail. If the MCU and motor share the same unregulated supply without adequate bulk capacitance, the logic voltage drops below the brownout threshold (e.g., 2.7V for an ESP32). Fix: Power the MCU from a separate buck converter (like an LM2596) fed from the main battery, or use a driver module with an integrated 5V BEC (Battery Eliminator Circuit).
Brushed motors driving high-inertia loads can draw 30A+ during a stall. Always install an appropriately rated inline fuse (e.g., an automotive blade fuse rated 125% above the continuous running current) on the main VM positive lead. Never rely solely on the motor driver's internal overcurrent protection to prevent wire fires in the event of a dead short.
Brushed Motor Driver FAQ
Can I use a brushed motor driver for a brushless DC (BLDC) motor?
No. A brushed motor driver outputs DC voltage to two terminals and relies on the motor's internal mechanical commutator (the carbon brushes) to switch the magnetic fields. A BLDC motor has no brushes and requires a 3-phase Electronic Speed Controller (ESC) to sequentially energize three separate stator windings based on rotor position (via Hall effect sensors or back-EMF sensing). Connecting a BLDC motor to a standard 2-terminal H-bridge will result in a locked rotor and immediate driver failure.
Why does my microcontroller reset when the brushed motor driver starts?
This is a classic brownout caused by inrush current and back-EMF. When the H-bridge closes, the motor's initial low impedance pulls a massive current spike, sagging the shared voltage rail. Furthermore, when the H-bridge switches off (PWM low state), the motor's inductance generates a reverse voltage spike (back-EMF). If your power supply lacks sufficient bulk capacitance (minimum 2200µF recommended for motors >2A), this noise couples into the MCU's logic rail. Use separate power supplies for the motor and the MCU, tied together only at a single common ground point (star grounding).
What PWM frequency is best for a brushed DC motor driver?
The optimal PWM frequency for most brushed DC motors is between 2kHz and 10kHz. Frequencies below 1kHz cause audible whining and mechanical vibration, which accelerates bearing wear. Frequencies above 20kHz eliminate audible noise but significantly increase switching losses in the driver's MOSFETs, causing the IC to run hotter and reducing overall system efficiency. Always check your specific driver IC's datasheet; for example, the TI DRV8871 is optimized for PWM frequencies up to 50kHz, but 4kHz remains the practical sweet spot for thermal management.
Do I need external flyback diodes on my brushed motor driver module?
In most modern designs, no. Integrated motor driver ICs like the TB6612FNG, DRV8871, and BTS7960 have internal freewheeling (flyback) diodes built into their MOSFET structures to safely route inductive kickback current back to the power supply. However, if you are building a discrete H-bridge from raw N-channel and P-channel MOSFETs on a breadboard or perfboard, you must add external Schottky diodes (like the 1N5819) across each motor terminal to the power rails. Without them, the inductive voltage spike will punch through the MOSFET's drain-source breakdown voltage, permanently destroying the transistors.






