The Direct Answer: Sizing an H-Bridge DC Motor Drive
The golden rule of H-bridge sizing is that your driver’s continuous current rating must exceed the motor’s stall current, not its nominal running current, by a safety margin of at least 1.5x. Sizing a driver based on running current is the most common reason DIY motor controllers melt or trigger thermal shutdowns under load.
Worked Load Example: The 12V 775 Gearmotor
Let’s say you are building a robotic rover using a standard 12V RS-775 DC gearmotor. You look at the spec sheet and see a nominal running current of 3A. However, when the rover hits a wall or starts on an incline, the motor stalls. The spec sheet lists the stall current at 14A.
- Incorrect Sizing: Buying a 5A L298N H-bridge because it exceeds the 3A running current. (Result: Instant thermal shutdown or melted silicon when the rover starts moving).
- Correct Sizing: 14A (stall) × 1.5 (safety margin) = 21A minimum driver rating.
- The Pick: A BTS7960-based IBT-2 module, rated for 43A peak, which easily absorbs the 14A stall spike without overheating.
Motor Type Comparison: Which Fits Your Load Profile?
Before wiring an H-bridge, you must confirm you actually have a brushed DC motor. H-bridges control voltage polarity to reverse direction and use PWM for speed control. They do not work for brushless or stepper motors without complex commutation logic. Here is how to match your load profile to the correct motor and driver topology.
| Motor Type | Torque Curve | Control Needs | Cost (2026) |
|---|---|---|---|
| Brushed DC | Max torque at 0 RPM (stall), drops linearly as speed increases. | Simple H-Bridge DC motor driver. 2 PWM pins for speed/direction. | $5 - $25 (Motor + Driver) |
| Brushless DC (BLDC) | High torque at low speeds, highly efficient, flat torque curve in mid-band. | 3-Phase ESC (Electronic Speed Controller) with Hall sensors or sensorless back-EMF. | $30 - $80 |
| Stepper | Max holding torque at 0 RPM, torque drops off sharply at high RPMs. | Chopper driver (e.g., A4988, TMC2209) generating microstepped waveforms. Not a standard H-bridge. | $15 - $40 |
Verdict: If your application requires high starting torque, simple speed control, and low cost (like a conveyor belt, window actuator, or basic rover), the Brushed DC motor with an H-bridge is the correct choice. If you need precise positional holding without a physical brake, you need a stepper. If you need high RPM efficiency and lightweight power (like a drone or high-speed RC car), you need a BLDC and an ESC. Steppers and servos are not interchangeable with brushed DC motors; their drivers are entirely incompatible.
H-Bridge Driver Selection & Wiring Terminals
Once you have confirmed a brushed DC motor is correct for your load, you need to wire the H-bridge. Most modern hobbyist and industrial H-bridge modules share a standard terminal layout. According to Texas Instruments' motor driver design guidelines, proper separation of logic and power grounds is critical to prevent microcontroller resets during motor switching.
Standard Terminal Identification
- B+ / V_MOT (Motor Power): Connects directly to the main battery or power supply positive. Must handle the full stall current.
- GND / PGND (Power Ground): The high-current return path to the battery negative. Use thick wire (e.g., 12 AWG or larger for >10A).
- VCC / V_LOGIC (Logic Power): Powers the internal optocouplers or logic ICs. Usually 3.3V or 5V from your microcontroller.
- IN1 / IN2 (Direction): Digital pins. Setting IN1 HIGH and IN2 LOW drives forward; IN1 LOW and IN2 HIGH drives reverse. Both LOW is coast; both HIGH is brake.
- PWM / EN (Speed): Accepts a Pulse Width Modulation signal (typically 1kHz to 20kHz) to control average voltage and speed.
- OUT1 / OUT2 (Motor Outputs): The switched high-current outputs that connect directly to the two motor terminals.
Failure Signatures: Hum, Overheat, and Stall Diagnostics
When an H-bridge DC motor system fails, it rarely just stops working. It gives physical and electrical warnings. Understanding these failure signatures saves hours of bench debugging.
1. The Audible Hum or Whine
Symptom: The motor emits a high-pitched whine or low hum, especially at low speeds, and the driver runs warm even with no mechanical load.
Cause: Your PWM frequency is too low (typically below 500Hz), causing the motor windings to physically vibrate at the switching frequency, or the microcontroller is outputting a noisy, non-square wave signal.
Fix: Increase the PWM frequency in your code to at least 16kHz (above human hearing). For Arduino/ESP32, use hardware timer libraries to generate clean, high-frequency square waves rather than the default analogWrite() which often defaults to 490Hz.
2. Driver Overheat (Linear Region Failure)
Symptom: The H-bridge IC or MOSFETs become too hot to touch within seconds, even though the current draw measured by a multimeter is well below the rated limit.
Cause: The logic voltage (VCC) is too low to fully turn on the MOSFET gates. Instead of acting as fully closed switches (low resistance), the MOSFETs operate in their linear region, acting like variable resistors and burning off excess power as heat.
Fix: Check the V_LOGIC pin. If your driver requires 5V to fully saturate the gates, do not power it from a 3.3V ESP32 pin. Use a logic level shifter or ensure you are using a driver specifically rated for 3.3V logic (like the TB6612FNG).
3. Stall and Thermal Shutdown
Symptom: The motor runs fine, but when it hits a physical bind or heavy load, it stops completely and won't restart until the power is cycled.
Cause: The motor stalled, drawing massive current. The H-bridge's internal thermal protection tripped to prevent a fire.
Fix: You cannot code your way out of a physical stall. You must either upgrade to a higher-amperage driver (see decision tree below), add a mechanical slip-clutch to the gearbox, or implement software current-sensing (using an inline shunt resistor and ADC) to detect the current spike and reverse the motor slightly to clear the jam.
The Final Decision Path: Pick Your Driver
Do not guess your driver. Use this decision matrix based on your motor's stall current to select the exact part number. As noted in Pololu's brushed DC motor selection guides, matching the driver's peak current to the motor's stall current is the only way to guarantee reliability.
| Motor Stall Current | Recommended H-Bridge IC / Module | Max Continuous Current | Typical 2026 Price |
|---|---|---|---|
| < 3A | TI DRV8871 or Toshiba TB6612FNG | 3.6A (DRV8871) | $2 - $5 |
| 3A - 10A | STMicro VNH2SP30 (Monster Moto Shield) | 14A per channel | $8 - $12 |
| 10A - 30A | Infineon BTS7960 (IBT-2 Module) | 43A peak | $10 - $15 |
| > 30A | Industrial Contactors or Custom Discrete MOSFET H-Bridge | 100A+ | $40+ |
What About the L298N?
You will see the L298N dual H-bridge in countless legacy tutorials. Avoid it for new builds in 2026. It uses outdated BJT (bipolar junction transistor) technology, resulting in a massive 2V to 3V voltage drop across the chip. This means it wastes power as intense heat and starves your motor of voltage. Modern MOSFET drivers like the DRV8871 are cheaper, run cold, and deliver nearly 100% of the battery voltage to the motor.
Default Recommendation
If you are building a general-purpose 12V or 24V robotics platform, winch, or actuator and are unsure of the exact stall current, buy the BTS7960 (IBT-2 module). At roughly $12, its massive 43A peak rating handles almost any hobbyist or light-industrial DC gearmotor without requiring complex active cooling. Its optically isolated logic pins protect your microcontroller from voltage spikes, and the heavy-duty screw terminals accept thick AWG wire securely. It is the undisputed workhorse of high-current DC motor control.






