A half bridge motor driver circuit controls the speed and on/off state of a DC motor in a single direction. If your application only requires unidirectional rotation—such as a water pump, a cooling fan, a conveyor belt, or a winch with a mechanical brake—a half bridge is the most efficient, lowest-component-count solution. It relies on a single high-current switch (typically a power MOSFET) paired with a flyback diode to manage inductive kickback. If you need to reverse the motor's direction, you must step up to a full H-bridge topology.

Matching Motor Types to Half-Bridge Topologies

Not every motor can be driven by a single half bridge. The topology you choose must align with the motor's internal commutation method and torque profile. Below is a breakdown of common motor types and how they interface with half-bridge drivers.

Motor Type Torque Curve Profile Half-Bridge Control Needs Typical Cost (100W Scale)
Brushed DC (BDC) Max torque at zero RPM (stall), drops linearly as speed increases. 1x Half Bridge for unidirectional; PWM for speed. $15 - $25
Brushless DC (BLDC) High starting torque, flat torque curve through mid-range RPM. 3x Half Bridges (forming a 3-phase inverter) + Hall sensor commutation. $30 - $50
Stepper (Bipolar) High holding torque at zero RPM, drops sharply at high RPM. Multiple half bridges with current-chopping (e.g., A4988). Not a simple PWM switch. $20 - $40
AC Induction Low starting torque, peaks near synchronous speed. Requires VFD (Variable Frequency Drive); DC half bridge is incompatible. $80 - $150
Crucial Distinction: Never treat steppers and servos as interchangeable. A stepper requires precise current chopping across multiple phases to hold microsteps. Conversely, a standard hobby servo (like an SG90 or MG996R) already contains its own internal H-bridge, gearbox, and potentiometer feedback loop. A servo demands only a 50Hz PWM signal wire from your microcontroller, not a power half-bridge.

For the remainder of this guide, we will focus on the most common use case for a single half bridge: driving a Brushed DC (BDC) motor in one direction using a microcontroller like an Arduino or ESP32.

Sizing the MOSFET and Flyback Diode (Worked Example)

The most common mistake makers make when building a half bridge motor driver circuit is selecting a MOSFET based purely on its continuous drain current ($I_D$) rating on the datasheet, while ignoring the motor's stall current and the gate drive voltage.

The Scenario: You are driving a 12V DC diaphragm water pump for a DIY hydroponics system. The pump's nameplate reads 5A continuous at 12V. However, when the pump is dead-headed or just starting up, the rotor is stationary, and the only thing limiting current is the winding resistance. This is the stall current, which for this pump measures 15A on the bench.

Sizing Rule of Thumb: Size your MOSFET's continuous current rating for at least 2x the motor's stall current to handle startup inrush without requiring a massive heatsink. Furthermore, you must select a logic-level MOSFET if driving directly from a 5V Arduino or 3.3V ESP32 GPIO.

The Math and Component Selection:

  • Target Current: 15A stall × 2 = 30A minimum $I_D$.
  • MOSFET Choice: The IRLB8721 is a logic-level N-channel MOSFET rated for 62A. Crucially, its $R_{DS(on)}$ (on-resistance) is just 8.7mΩ at $V_{GS}$ = 4.5V. (Avoid the infamous IRF520; it requires 10V+ at the gate to fully turn on, and will overheat rapidly when driven by 3.3V logic).
  • Thermal Check: At 5A continuous, power dissipation is $P = I^2 \times R = 5^2 \times 0.0087 = 0.21W$. With a TO-220 thermal resistance of ~62°C/W, the junction temperature will only rise ~13°C above ambient. No heatsink is required.
  • Flyback Diode: When the MOSFET turns off, the motor's inductance tries to keep current flowing, generating a massive voltage spike ($V = -L \frac{di}{dt}$). According to All About Circuits, a flyback diode provides a safe recirculation path. We select the MBR1045 Schottky diode (10A, 45V). Schottkys are preferred over standard silicon diodes (like the 1N4007) here because of their near-zero reverse recovery time and lower forward voltage drop, which clamps the spike faster.

Wiring, Terminal Identification, and Failure Signatures

Proper terminal identification and gate-drive conditioning are what separate a reliable driver from one that resets your microcontroller every time the motor spins up. Below is the exact wiring schematic for the IRLB8721 half bridge.

Component / Node Terminal / Pin Connection Destination Purpose
IRLB8721 MOSFET Gate (G) MCU PWM Pin (via 100Ω resistor) Controls switching; 100Ω prevents high-frequency ringing and limits MCU pin current.
IRLB8721 MOSFET Drain (D) Motor Negative (-) Terminal Switches the ground path for the motor.
IRLB8721 MOSFET Source (S) System Ground (GND) Completes the circuit back to the power supply.
10kΩ Resistor Gate to Source Between G and S Pull-down resistor; keeps MOSFET off during MCU boot when GPIOs are floating.
MBR1045 Diode Anode / Cathode Anode to Drain; Cathode to Motor (+) Clamps inductive voltage spikes to the supply rail.

Diagnosing Failure Signatures

When a half bridge motor driver circuit fails, it rarely does so silently. The physical symptoms will tell you exactly which part of the physics you miscalculated.

  • Audible Hum or Buzz (Without Rotation): If the motor emits a high-pitched whine but doesn't spin, your PWM frequency is likely set in the audible range (e.g., 1kHz to 5kHz). The motor coils are acting as speakers. Fix: Push your PWM frequency above the human hearing threshold. For an ESP32, configure the LEDC peripheral to 20kHz or 25kHz. If the hum is accompanied by a physical jam, the motor is stalled and drawing maximum current.
  • MOSFET Overheating: If the MOSFET is too hot to touch within seconds of turning on, you are likely operating it in the linear (ohmic) region instead of fully saturating it. This almost always happens when using a standard-level MOSFET (like the IRFZ44N) with a 3.3V logic signal. The gate threshold voltage ($V_{GS(th)}$) might be 2V-4V, meaning 3.3V barely cracks the channel open, resulting in an $R_{DS(on)}$ that is 100x higher than the datasheet specifies. Fix: Switch to a true logic-level MOSFET (IRL prefix) or use a dedicated gate driver IC, as detailed in Analog Devices' gate driver fundamentals.
  • Motor Stalls and MCU Resets (Brownout): You command the motor to stop, and your Arduino or ESP32 instantly reboots. This is inductive kickback. Without a properly rated flyback diode, the collapsing magnetic field generates a voltage spike that can exceed 100V. This spike punches through the MOSFET's drain-source breakdown voltage ($V_{DSS}$) or couples into the shared ground plane, pulling the microcontroller's ground reference high enough to trigger a brownout reset. Fix: Verify the flyback diode is installed in the correct polarity (cathode to positive) and that your power supply has adequate bulk capacitance (e.g., 1000µF) near the motor terminals to absorb the recirculating energy.

By matching the correct logic-level MOSFET to your motor's stall current and strictly managing inductive kickback, a half bridge remains the most robust and cost-effective way to drive unidirectional DC loads on the bench.