An H-bridge motor driver is a solid-state circuit comprising four switches (typically MOSFETs or BJTs) arranged in an "H" topology. It controls the direction and speed of a DC motor by reversing voltage polarity across the terminals and applying Pulse Width Modulation (PWM) for speed control. Sizing Rule of Thumb: Always select an H-bridge motor driver with a continuous current rating at least 1.5 to 2 times the motor’s rated continuous current, and a peak current rating that strictly exceeds the motor's stall current.

Choosing the right driver is not just about matching voltage; it requires understanding the mechanical load profile, the thermal limits of the driver's internal FETs, and the logic-level isolation required to keep your microcontroller safe. Below is a practical guide to matching motors to drivers, wiring them correctly, and diagnosing the inevitable hardware faults.

Motor Types and H-Bridge Compatibility

Not all motors can be driven by a standard 2-phase H-bridge. A common mistake in hobbyist and prototyping circles is treating steppers, servos, and brushless DC (BLDC) motors as interchangeable. They are not. Servos require a low-current PWM signal wire and draw power directly from a BEC or power supply, bypassing the H-bridge entirely. BLDC motors require a 3-phase inverter (six switches), not a 2-phase H-bridge (four switches).

When evaluating which motor type fits your load profile, refer to the torque curve and control needs below:

Motor Type Torque Curve Profile H-Bridge Control Needs Typical Driver Cost (2026)
Brushed DC Max torque at stall (0 RPM), drops linearly as speed increases. Single H-bridge (4 switches). Requires PWM for speed, polarity swap for direction. $3 - $12 (e.g., DRV8871, TB6612FNG)
Bipolar Stepper High holding torque at 0 RPM, drops sharply at high speeds due to inductance. Dual H-bridge (8 switches). Requires precise step-and-direction pulse sequencing and current chopping. $5 - $15 (e.g., A4988, DRV8825)
Coreless DC Extremely high torque-to-inertia ratio, max torque at stall, very low mechanical time constant. Single H-bridge. Demands high PWM frequency (>20kHz) to prevent audible whine and core heating. $8 - $20 (e.g., DRV8212)

If your application involves high-inertia startup loads (like a conveyor belt or a winch), a brushed DC motor paired with a robust single H-bridge is usually the most cost-effective choice. If you need precise open-loop positional holding without an encoder, a bipolar stepper driven by a dual H-bridge with microstepping is required.

Wiring and Terminal Identification

Modern H-bridge motor drivers separate the high-current motor path from the low-current logic path. Let's look at the terminal identification for two of the most common architectures: the single-channel TI DRV8871 and the dual-channel Toshiba TB6612FNG.

The Logic vs. Motor Power Split

  • VM (Motor Voltage): Connects directly to the main power supply (e.g., a 12V LiFePO4 pack or bench supply). This powers the motor and the internal high-side/low-side FETs.
  • VCC (Logic Voltage): Powers the internal logic gates and level shifters. This must match your microcontroller's I/O voltage (usually 3.3V or 5V). Never feed 12V into VCC, or you will instantly fry the logic die.
  • IN1 / IN2 (Direction): Digital logic inputs. (1,0) drives forward, (0,1) drives reverse, (0,0) is coast, and (1,1) is brake.
  • PWM (Speed): Accepts a square wave from your microcontroller's timer. The duty cycle dictates the effective RMS voltage applied to the motor.
  • GND: The ground reference. Critical: The logic ground and motor ground must be tied together at a single star point. If they float relative to each other, the logic signals will misinterpret the threshold voltages, causing shoot-through (both high and low FETs turning on simultaneously, shorting VM to GND).
Pro-Tip on the L298N: If you are still using the classic L298N module, be aware that it uses bipolar junction transistors (BJTs) rather than MOSFETs. This results in a voltage drop of roughly 1.5V to 2V across the bridge. A 12V motor will only see ~10V under load, and the driver will dissipate the missing 2V as intense heat. Upgrade to a MOSFET-based driver like the TB6612FNG for vastly superior efficiency.

Sizing Rule of Thumb and Worked Load Example

Avoid the trap of sizing a driver based on horsepower or kilowatt conversions without load context. A 50W motor driving a high-friction gearbox will draw vastly different current profiles than a 50W motor spinning a low-inertia fan. You must size the H-bridge motor driver based on current (Amps) and thermal dissipation.

The Worked Example: High-Inertia Conveyor Belt

Suppose you are building a small sorting conveyor. You have selected a 12V brushed DC gearmotor with the following datasheet specs:

  • Nominal Voltage: 12V
  • Continuous Current (at rated load): 2.5A
  • Stall Current (rotor locked): 11.0A

The Math:
If you buy a driver rated for exactly 2.5A continuous, it will trigger thermal shutdown the moment the conveyor belt jams or during the initial startup inrush, where the motor acts as a dead short and pulls current approaching the stall value.

  1. Continuous Requirement: 2.5A × 2.0 (safety margin) = 5.0A continuous rating needed.
  2. Peak Requirement: Must survive the 11.0A stall current for at least 1-2 seconds without magic smoke. ≥ 11A peak rating needed.

The Selection:
A standard TB6612FNG (1.2A continuous, 3.2A peak) will fail immediately. An L298N (2A continuous, 3A peak) will also fail. You need a heavy-duty module like the Pololu VNH5019, which handles 12A continuous and 30A peak. At roughly $15, it provides the necessary headroom to absorb the startup inrush and mechanical binding without tripping its internal thermal protection.

Failure Signatures: Hum, Overheat, and Stall

When an H-bridge circuit fails or behaves erratically, the symptoms usually manifest in three distinct ways. Here is how to diagnose them on the bench.

1. Audible Humming or Whining (No Movement)

If the motor hums loudly but doesn't turn, check your PWM frequency. Driving an H-bridge with a low-frequency PWM (e.g., 500Hz) causes the motor coils to physically vibrate at that frequency, creating audible noise and wasting energy as heat. Fix: Increase your microcontroller's PWM timer to at least 16kHz - 20kHz, pushing the switching noise above human hearing. If the hum is accompanied by a clicking sound, the driver's over-current protection (OCP) is likely tripping and resetting repeatedly because the mechanical load is jammed.

2. Overheat and Thermal Shutdown

MOSFETs have an RDS(on) (on-state resistance). Even a low 0.05Ω resistance will dissipate I²R heat. At 5A, that is 1.25W of heat generated inside the silicon. If the driver IC lacks a thermal pad soldered to a copper pour on the PCB, it will overheat. Fix: Measure the case temperature with an IR thermometer or thermocouple. If it exceeds 85°C, you must either add a heatsink, increase the PCB copper area, or switch to a driver with a lower RDS(on) spec.

3. Stall and Back-EMF Destruction

When a motor is spinning, it generates a reverse voltage (Back-EMF). If you abruptly cut power or reverse direction via the H-bridge, the collapsing magnetic field in the motor coils creates a massive voltage spike that can exceed the breakdown voltage of the driver's MOSFETs, punching a hole through the silicon. Fix: Ensure your H-bridge module includes fast-recovery flyback diodes (like Schottky SS34s) across the motor terminals. Modern ICs like the DRV8871 include internal clamp diodes, but for high-inertia loads, external bulk capacitors (e.g., 470µF electrolytic) across the VM and GND terminals are mandatory to absorb the inductive kickback.

Frequently Asked Questions about H-Bridge Motor Drivers

Can I use a standard H-bridge motor driver for a BLDC or servo motor?

No. A standard 2-phase H-bridge (4 switches) cannot drive a 3-phase Brushless DC (BLDC) motor, which requires a 6-switch inverter and rotor position feedback (via Hall sensors or sensorless back-EMF zero-crossing detection) to commutate the phases. Similarly, hobby servos contain their own internal H-bridge and control logic; they only require a 5V power supply and a 50Hz PWM signal wire from your microcontroller, not an external high-current H-bridge.

Why does my H-bridge motor driver get hot even when the motor is lightly loaded?

This is usually caused by "shoot-through" or excessive switching losses. Shoot-through occurs when both the high-side and low-side MOSFETs on the same leg are briefly turned on at the same time during a logic transition, creating a dead short from VM to GND. Modern drivers include "dead-time" circuitry to prevent this. If your driver still runs hot at low loads, check your PWM frequency; switching a MOSFET's gate capacitance thousands of times per second generates heat in the driver's internal charge pump and gate drivers. Lowering the PWM frequency from 40kHz to 16kHz can significantly reduce idle thermal dissipation.

What is the difference between an H-bridge and a motor shield?

An H-bridge is the fundamental electronic circuit (the four switches and logic gates) that actually drives the motor. A "motor shield" is a PCB form-factor designed to plug directly into a development board (like an Arduino Uno). The shield contains the H-bridge IC, but also adds supporting circuitry: screw terminals for wiring, flyback diodes, bulk decoupling capacitors, voltage regulators for the logic level, and breakout pins. You can buy bare H-bridge ICs to solder to a custom PCB, or buy a shield for instant plug-and-play prototyping.

How do I protect an H-bridge from inductive voltage spikes?

Inductive spikes (Back-EMF) occur whenever current through a coil is interrupted. To protect the H-bridge, you must provide a safe path for this current to recirculate. First, rely on the H-bridge IC's internal freewheeling diodes, which automatically route the spike back into the VM supply rail. Second, place a large electrolytic capacitor (e.g., 220µF to 1000µF, rated for at least 1.5x your VM voltage) physically close to the driver's VM and GND pins. This capacitor acts as a local shock absorber, soaking up the voltage spike before it can reflect back into your main power supply and reset your microcontroller.