The L298 motor driver—most commonly encountered on the bench as the red L298N dual H-bridge module—is a legacy bipolar junction transistor (BJT) integrated circuit designed to drive inductive loads. While hobbyist marketing materials frequently advertise a robust "2A per channel" capability, the silicon tells a different story. The internal BJT architecture introduces a notorious 1.5V to 2.0V voltage drop across the switching transistors. If you push a 12V motor drawing 1.5A through this chip, you are burning nearly 3 watts of heat per channel directly inside the silicon package. Understanding this thermal reality is the difference between a reliable robotic drivetrain and a melted terminal block.

Motor Compatibility and Load Profiling

The L298 is strictly a dual full-bridge driver. It excels at reversing polarity for brushed DC motors and sequencing coils for bipolar stepper motors. It is fundamentally incapable of driving brushless DC (BLDC) motors, which require three-phase electronic speed controllers (ESCs), and it should not be used for RC servos, which demand direct pulse-width modulation (PWM) from a microcontroller rather than H-bridge routing.

When selecting a motor for an L298-based project, you must match the motor's torque curve and control requirements to the driver's current limits and switching speed. The table below breaks down which motor types fit this load profile and what they demand from the controller.

Motor Type Torque Curve Profile Control Needs Typical Cost (USD) L298 Compatibility
Brushed DC (Gear) High starting torque, drops linearly with speed H-Bridge for direction; PWM for speed $8 - $25 Excellent (up to 1.2A continuous)
Bipolar Stepper High holding torque, drops sharply at high RPM Full/Half-step coil sequencing via H-Bridge $12 - $30 Good (NEMA 17 up to ~1.5A/phase)
Unipolar Stepper Lower holding torque than bipolar equivalent Simple transistor array (center-tap wiring) $10 - $20 Poor (Wastes half the L298's H-bridge capability)
RC Servo High torque at specific angular positions Direct 50Hz PWM signal from MCU GPIO $5 - $15 None (Do not route through H-Bridge)
BLDC (Outrunner) High efficiency, flat torque curve across RPM 3-Phase commutation via ESC and hall sensors $20 - $60 None (Requires 3-phase ESC, not a dual H-bridge)

As detailed in the STMicroelectronics L298 Datasheet, the IC is optimized for DC and stepper applications. Attempting to drive a unipolar stepper through the L298 ignores its center-tap wiring advantage, while trying to use it for servos introduces unnecessary voltage drop and latency.

Terminal Identification and the BJT Voltage Drop

Wiring the L298N module correctly requires distinguishing between the logic supply and the motor supply. A common beginner mistake is tying both to the same 5V Arduino rail, which instantly starves the motor of current and causes the microcontroller to brownout and reset. Below is the definitive terminal identification for the standard 15-pin Multiwatt module footprint.

Terminal / Pin Function Wiring Specification
VS (12V) Motor Power Supply Input 5V to 35V DC. Connect to battery or bench supply. Add 1000µF bulk capacitor across VS and GND.
GND Common Ground Must be shared with the microcontroller ground and the motor power supply ground.
VSS (5V) Logic Power Supply Input 5V DC. Powered internally by the 7805 regulator if VS > 12V, or externally if VS < 12V.
ENA / ENB Enable Pins (Channels A & B) Remove jumper for PWM speed control. Apply 5V PWM from MCU. High = Enabled, Low = Coast/Stop.
IN1, IN2, IN3, IN4 Direction Control Inputs 5V logic level. IN1 High / IN2 Low = Forward. IN1 Low / IN2 High = Reverse. Both Low = Coast.
OUT1, OUT2, OUT3, OUT4 Motor Output Terminals Screw terminals for motor leads. Expect a 1.5V to 2.0V drop from VS under load.
The 5V Regulator Jumper Trap: Most red L298N modules feature a jumper cap labeled "5V-EN" near the logic terminals. This enables the onboard 7805 linear regulator, which drops your motor supply voltage down to 5V to power the logic chips. If your motor supply (VS) exceeds 12V, the 7805 will overheat and fail, taking the logic side with it. Rule: If VS > 12V, remove the jumper and power the VSS pin directly from your microcontroller's 5V rail.

The fundamental limitation of the L298 is its BJT topology. Modern motor drivers use MOSFETs, which exhibit voltage drops measured in millivolts (e.g., the TI DRV8871 drops less than 0.5V at 2A). The L298's bipolar transistors require base current to remain saturated, resulting in a fixed Vce(sat) drop. According to electronics-tutorials.ws H-bridge theory guides, this drop is typically 1.8V at 1A and climbs to 2.3V at 2A. This means if you supply 6V to the VS terminal, your 6V DC motor will only ever see about 4.2V, resulting in sluggish performance and high heat generation.

Sizing Rules, Worked Examples, and Failure Signatures

To use the L298 motor driver reliably, you must abandon the "2A absolute maximum" marketing spec and design around thermal dissipation limits. The Multiwatt15 package has a junction-to-ambient thermal resistance of roughly 35°C/W without forced air cooling.

Sizing Rule of Thumb and Worked Load Example

The Rule: Never exceed 60% of the 2A rating (1.2A continuous) per channel without active forced-air cooling, and always subtract 2V from your motor supply voltage when calculating actual motor performance.

Worked Example: You are driving a 12V nominal brushed DC gear motor with a measured stall current of 1.5A and a continuous running current of 0.8A.

  • Supply Voltage (VS): 12.0V
  • Continuous Running Current: 0.8A
  • Voltage at Motor Terminals: 12.0V - 1.8V (BJT drop at 0.8A) = 10.2V
  • Power Dissipated in L298: 1.8V × 0.8A = 1.44 Watts
  • Temperature Rise: 1.44W × 35°C/W = 50.4°C above ambient

If your workshop ambient temperature is 25°C, the silicon junction sits at 75.4°C. This is well within the 150°C thermal shutdown threshold. However, if the motor encounters a mechanical bind and draws the 1.5A stall current for more than a few seconds, the dissipation jumps to 3.0W (2.0V × 1.5A), causing a 105°C temperature rise. The junction hits 130°C, approaching immediate thermal shutdown.

Diagnosing Failure Signatures

When an L298 circuit misbehaves, the symptoms map directly to specific electrical mismatches. Use your multimeter to diagnose these three common failure modes:

1. Overheat and Thermal Cycling (The "Stop-Start" Symptom)
If your robot drives for ten seconds, stops completely for five seconds, and then resumes, the L298 is hitting its internal thermal shutdown threshold (typically 150°C junction temp).
Fix: Measure the voltage across VS and GND while the motor is running. If it sags below 10V, your power supply is current-limiting, forcing the L298 to work harder. Add a 1000µF electrolytic capacitor directly across the VS and GND screw terminals to supply transient inrush current, and mount a 40mm 12V cooling fan directly over the black aluminum heatsink.

2. Audible Humming or Whining in Stepper Motors
A bipolar stepper motor that vibrates loudly without rotating, or hums at high speeds, is usually suffering from coil impedance mismatch or incorrect PWM frequency. The L298 is a voltage-driven chopper, not a constant-current chopper like the A4988 or TMC2209.
Fix: Disconnect the motor and measure the resistance across one coil pair (e.g., A+ to A-). If you read >10 ohms, it is a high-impedance motor designed for 24V+ systems. Driving it with 12V through an L298 will not push enough current fast enough to overcome the coil's inductance at speed. Either increase VS to 24V (remembering to remove the 5V-EN jumper) or switch to a low-impedance stepper (1.5 to 3.0 ohms per phase).

3. Microcontroller Brownouts and Stalling
When the motor starts, the Arduino or ESP32 resets, or the motor simply stalls with a faint click.
Fix: This is a ground-loop or inductive kickback issue. First, verify that the GND terminal on the L298 is tied to the GND pin on your microcontroller—without a common ground reference, the 5V logic signals from the IN1-IN4 pins are floating and unreadable by the L298. Second, measure the voltage on the ENA/ENB pins during a stall. If it drops below 2.5V, inductive kickback from the motor is back-feeding into the logic supply. Ensure your motor leads are twisted to cancel EMI, and verify that the flyback diodes on the L298 module (usually 1N4007s surface-mounted near the IC) are intact by testing them with your multimeter's diode mode (expect a ~0.6V forward drop).

For modern projects requiring continuous currents above 1.2A or supply voltages below 6V, the L298's BJT voltage drop becomes a critical liability. In those scenarios, migrating to a MOSFET-based driver like the TB6612FNG or the DRV8871 will eliminate the thermal overhead and deliver full battery voltage to your motor terminals.