For a 12V brushed DC motor drawing up to 15A continuous, the Infineon BTS7960 (commonly sold as the IBT-2 module) is the default motor driver H bridge circuit choice. It handles 43A peak current, includes integrated flyback protection, and accepts 5V logic directly from an Arduino or ESP32 without frying the microcontroller. If your load is under 3.6A continuous, the Texas Instruments DRV8871 is a more compact, surface-mount-friendly alternative.

Selecting the right H-bridge is rarely about matching the motor's 'nominal' current rating. It is about surviving the stall current, managing the inductive kickback, and preventing ground bounce from resetting your logic board. Below is the exact framework for matching your load profile to the right silicon, sizing the traces, and wiring it without triggering thermal shutdown.

The Core Decision: Matching the H-Bridge to Your DC Motor Load

An H-bridge is a specific topology of four switches (usually MOSFETs or BJTs) that allows you to apply voltage across a load in either direction. This bidirectional control is exactly what a brushed DC motor requires for forward/reverse operation and regenerative braking. However, not all motors use H-bridges, and treating them as universal motor controllers is a fast track to burned components.

Bench Rule: Never size an H-bridge based on the motor's nameplate 'running' current. A motor draws its maximum current the moment it starts from a dead stop, or if the mechanical load jams the shaft. This is the stall current, and your driver must survive it without triggering overcurrent protection (OCP) or melting the silicon die.

Motor Type & Load Profile Comparison

Before wiring up an H-bridge, verify your motor type. H-bridges are designed for brushed DC motors. Using them for brushless or stepper motors without specialized commutation logic will result in immediate failure.

Motor Type Torque Curve Profile Control / Driver Demands Relative Cost
Brushed DC Maximum torque at zero RPM (stall); drops linearly as speed increases. Standard H-Bridge. Requires simple PWM for speed and H-bridge logic for direction. $
Brushless DC (BLDC) Flat torque curve across a wide RPM range; highly efficient. 3-Phase ESC. Requires an Electronic Speed Controller with Hall sensors or sensorless back-EMF tracking. An H-bridge cannot drive this. $$$
Stepper High holding torque at zero RPM; torque drops sharply at higher speeds. Dual H-Bridge Chopper. Requires specialized constant-current drivers (like the A4988 or TMC2209) that use H-bridges internally to micro-step. $$
Servo (RC/Industrial) Variable; depends on internal motor and gearbox ratio. PWM Position Signal. Contains its own internal driver (brushed or BLDC). You only send a 50Hz PWM pulse from a microcontroller GPIO pin. $$

If your application demands high starting torque, variable speed, and simple direction reversal (like a winch, a conveyor belt, or a robotic tank tread), the brushed DC motor paired with a discrete motor driver H bridge circuit is the correct mechanical and electrical choice.

Sizing Rule of Thumb & Worked Load Example

The golden rule for H-bridge sizing is: The driver's peak current rating must be greater than or equal to the motor's calculated stall current.

Let us walk through a real-world sizing calculation for a 12V planetary gear motor used in a heavy-duty automated gate actuator.

The Worked Example

  • Motor Nominal Voltage: 12V DC
  • Nameplate Running Current: 3A (at full mechanical load)
  • Measured Winding Resistance (R): 1.5 Ω (measured with a multimeter across the motor terminals while the shaft is locked)

Using Ohm's Law, we calculate the stall current (the current drawn when the motor is energized but cannot turn):

I_stall = V / R = 12V / 1.5 Ω = 8A

If you select the ubiquitous L298N dual H-bridge module, which is rated for 2A continuous and 3A peak, the 8A startup spike will instantly trip its internal thermal shutdown or permanently short the internal BJTs. If you select the Texas Instruments DRV8871 (rated for 3.6A continuous, 6A peak), the driver will hit its overcurrent protection (OCP) threshold during startup, shut down, and the motor will just hum without moving.

Because your stall current is 8A, you need a driver rated for at least 8A peak, ideally with a continuous rating of 5A or higher to handle the 3A running current with a safe thermal margin. The Infineon BTS7960 (43A peak, 25A continuous with adequate heatsinking) or the ST VNH5019 (30A peak, 9A continuous) are the correct choices here.

Wiring and Terminal Identification for High-Power H-Bridges

For loads between 5A and 25A, the BTS7960-based IBT-2 module is the workhorse of the maker bench. It separates the high-current motor path from the low-voltage logic path, which is critical for preventing microcontroller resets. Below is the exact terminal identification and wiring sequence.

Terminal / Pin Function Wiring Destination
B+ Motor Power Supply Positive Connect to 12V/24V battery or power supply positive terminal.
B- Motor Power Supply Ground Connect to the main power supply ground. Do not route this through a breadboard.
M+ / M- Motor Output Terminals Connect directly to the brushed DC motor. Polarity dictates forward/reverse mapping.
VCC Logic Power Supply Connect to the Arduino/ESP32 5V pin. (Optoisolators on the board protect the MCU).
GND Logic Ground Connect to the Arduino/ESP32 GND pin.
R_PWM / L_PWM Direction & Speed Control Connect to two separate microcontroller PWM-capable GPIO pins.
R_EN / L_EN Enable Pins Jumper these together and tie to VCC (always enabled), or wire to a GPIO for a master kill switch.
Ground Bounce Hazard: Never rely solely on the logic GND wire to carry the return current for the motor. The B- (Power Ground) must be wired directly back to the power supply. If the high-current return path shares a thin wire with the logic ground, the voltage spike (V = L * di/dt) will elevate the microcontroller's ground reference above its 5V rail, instantly bricking the MCU.

Failure Signatures: Hum, Overheat, and Stall Diagnostics

When an H-bridge circuit fails to spin the motor correctly, the physical symptoms tell you exactly which part of the circuit is compromised. Use this diagnostic matrix before replacing components.

1. The Motor Hums but Will Not Start

  • Cause A (Most Likely): PWM frequency is too low. If you are driving the H-bridge with a PWM frequency below 1kHz, the motor coils are charging and discharging audibly without building enough average current to overcome static friction.
  • Fix: Increase the microcontroller PWM frequency to at least 4kHz (ideally 20kHz to push it above human hearing). On an Arduino Uno, this requires modifying the Timer1 registers.
  • Cause B: Voltage drop across the MOSFETs. If using an older BJT-based driver like the L298N, the transistors drop about 2V to 3V internally. A 12V motor only sees 9V, reducing stall torque by 25%.
  • Fix: Switch to a modern MOSFET-based H-bridge with a low R_DS(on) specification, like the DRV8871.

2. The Driver IC Overheats and Shuts Down

  • Cause A: Inductive kickback destroying the silicon. When the H-bridge switches off, the motor's inductance generates a massive reverse voltage spike. If the driver lacks internal flyback diodes, this spike arcs across the transistors.
  • Fix: Ensure your driver has integrated flyback protection (the BTS7960 and DRV8871 do). If you are building a discrete MOSFET H-bridge, you must physically solder Schottky diodes (like the 1N5822) across each MOSFET's drain and source.
  • Cause B: Continuous stall condition. The mechanical load is jammed, and the motor is drawing 8A+ continuously, exceeding the driver's thermal dissipation limits.
  • Fix: Implement software current limiting. Read the voltage from the driver's analog current sense pin (R_IS / L_IS on the IBT-2) via an ADC. If the value exceeds your threshold for more than 500ms, cut the PWM to zero.

3. The Microcontroller Resets Randomly During Direction Changes

  • Cause: Shoot-through current or logic brownout. When switching from forward to reverse, if both high-side and low-side MOSFETs are on for even a microsecond, it shorts the battery directly to ground. This massive current draw collapses the shared power rail, causing a brownout on the MCU.
  • Fix: Introduce a 'dead time' in your code. When reversing direction, set both PWM pins to LOW, wait 5 to 10 milliseconds, and then apply the new direction PWM. Furthermore, ensure the MCU is powered by a separate 5V buck converter, not directly off the 12V motor battery via a linear regulator.

Final Selection Matrix: Which H-Bridge IC Should You Buy?

Stop guessing based on whatever module is cheapest on Amazon. Use this decision tree to select the exact motor driver H bridge circuit for your specific load profile. These recommendations assume a standard 12V to 24V DC brushed motor system.

Motor Stall Current Recommended IC / Module Why This Wins Approx. Cost (2026)
Under 1.5A TI DRV8833 (or Adafruit 3243 breakout) Dual H-bridge, ultra-compact, includes internal flyback and OCP. Perfect for small robotics and 3D printer extruders. $4 - $6
1.5A to 5A TI DRV8871 (Pololu 2990 carrier) Single H-bridge, extremely low R_DS(on) means almost zero voltage drop. Handles 6A peak reliably without a heatsink. $7 - $10
5A to 15A ST VNH5019 (Pololu 2999 module) Automotive-grade robustness. Integrated current sensing outputs an analog voltage proportional to motor load, making software stall-detection trivial. $15 - $20
Over 15A Infineon BTS7960 (IBT-2 Module) The undisputed king of high-current hobby/maker drives. 43A peak capability handles massive inrush currents from heavy winches or e-bike conversion motors. $12 - $18

For the vast majority of DIY automated gates, heavy-duty rover platforms, and linear actuators drawing between 5A and 20A, buy the IBT-2 (BTS7960). Wire the B- terminal directly to your battery negative, implement a 5ms dead-time in your reversal code, and run your PWM at 20kHz. Your motor driver H bridge circuit will run cool, quiet, and survive the inevitable mechanical stalls.

References and Datasheets:
Texas Instruments DRV8871 Product Page and Datasheet
Pololu VNH5019 Motor Driver Carrier Specifications