The L298N dual H-bridge is the undisputed legacy workhorse of hobbyist robotics, but treating it as a universal motor driver is a fast track to melted silicon and stalled projects. At its core, the L298N is a Bipolar Junction Transistor (BJT) based driver capable of handling 5V to 35V and delivering up to 2A continuous current per channel. However, because it uses Darlington transistor pairs, it suffers a massive internal voltage drop of 2V to 3V. If you feed it 12V, your motor might only see 9V, and the remaining 3V is dissipated as heat. Understanding exactly which motors it can drive, how to calculate stall currents, and when to swap it for a modern MOSFET driver is the difference between a reliable build and a workbench fire.

Motor Type Selection: Which Load Profile Fits the L298N?

Not all motors respond to simple DC polarity switching. The L298N is fundamentally designed to control the direction and speed (via PWM) of brushed DC motors, or to sequence the electromagnetic phases of bipolar stepper motors. It cannot drive servos or brushless motors without external commutation logic.

Motor Type Compatibility and Control Requirements
Motor Type Torque Curve Profile Control Needs L298N Compatibility Typical Hobby Cost
Brushed DC (Gearmotor) High starting torque, drops as RPM increases Simple polarity for direction; PWM for speed Excellent (Primary use case) $3 - $15
Bipolar Stepper (e.g., NEMA 17) High holding torque at zero speed, drops at high RPM Sequenced 4-phase switching; current limiting required Good (Up to 2A, but lacks active current chopping) $12 - $25
RC Servo (Standard) Positional holding torque via internal potentiometer 50Hz PWM pulse width (1ms-2ms) on a single signal wire Incompatible (Use direct GPIO or PCA9685) $5 - $20
BLDC (Outrunner/Inrunner) High efficiency, flat torque curve across wide RPM range 3-phase electronic commutation; back-EMF sensing or Hall sensors Incompatible (Requires dedicated 3-phase ESC) $20 - $60+

If your application requires precise positional holding without continuous power draw, or high-speed efficiency, the L298N is the wrong tool. It excels strictly at moving wheeled platforms ( brushed DC) or driving low-speed, high-torque lead screws (bipolar steppers).

Sizing Rules and Worked Load Calculations

The most common mistake makers make with the L298N is sizing the motor based on its running current rather than its stall current. When a DC motor is mechanically jammed or starting from a dead stop under a heavy load, it acts as a pure resistor. The current spikes to the stall level, which is often 5 to 10 times the nominal running current.

The 80% Derating Rule: Never select a motor whose calculated stall current exceeds 80% of the L298N's continuous channel rating (1.6A per channel), assuming standard ambient temperatures (25°C) and the included aluminum heatsink. If you plan to stall the motor frequently, drop that threshold to 50%.

Worked Load Example: 12V Planetary Gearmotor

Scenario: You are building a robotic rover using a 12V brushed DC gearmotor. The datasheet states a no-load current of 0.2A. You measure the terminal resistance with your multimeter at 6.0 Ω.

Calculation:
Using Ohm's Law for the stall condition (where back-EMF is zero):
I_stall = V_supply / R_terminal
I_stall = 12V / 6.0 Ω = 2.0A

Verdict: A 2.0A stall current exceeds the L298N's 2A absolute maximum per channel. If the rover hits a wall and the wheels lock, the motor will draw 2A. The L298N's internal Darlington pairs will dissipate roughly 2A * 2.5V_drop = 5 Watts of heat instantly. Without forced air cooling, the chip will trigger its internal thermal shutdown within seconds, or worse, fail short-circuit.

Fix: Either add a 1.5A PTC resettable fuse in series with the motor, or upgrade to a MOSFET-based driver like the DRV8871 which handles 3.6A continuous.

Wiring, Terminal Identification, and Failure Signatures

Correct wiring is critical. The L298N module features both high-current screw terminals and low-current logic headers. Below is the exact terminal mapping for standard red L298N breakout boards.

L298N Terminal and Pin Identification
Terminal / Pin Function Connection Target
12V / VCC Motor Power Supply Input (5V - 35V) Positive terminal of battery pack or bench supply
GND Common Ground Battery negative AND Arduino GND (Critical!)
5V Logic Power Output/Input If jumpered, outputs 5V to Arduino. If >12V VCC, remove jumper and feed 5V in.
IN1, IN2 Channel A Logic Control Arduino Digital Pins (e.g., D8, D9)
IN3, IN4 Channel B Logic Control Arduino Digital Pins (e.g., D10, D11)
ENA, ENB PWM Speed Control (Active High) Arduino PWM Pins (e.g., D5, D6). Remove jumpers to use.
Warning: The Common Ground Rule
The most frequent cause of 'erratic' motor behavior or bricked microcontrollers is failing to connect the motor power supply GND to the Arduino GND. The L298N logic pins (IN1-4) reference the module's GND. If the Arduino and the motor driver do not share an equipotential ground plane, the logic signals will float, causing the H-bridge to shoot through (short VCC to GND internally).

Decoding Failure Signatures

When your drive system fails, the physical symptoms will tell you exactly what went wrong electrically:

  • The 'Hum' Without Movement: The motor vibrates but the shaft won't turn. Cause: The PWM duty cycle is too low to overcome static friction (stiction), OR the 2.5V drop across the L298N has starved the motor of the voltage required to break stiction. Fix: Increase the minimum PWM threshold in your code (e.g., start at 80/255 instead of 10/255) or raise the supply voltage to 14V.
  • Silent Overheat (Thermal Shutdown): The motor stops mid-run, the L298N is too hot to touch, and outputs are dead. Cause: The internal junction temperature exceeded ~165°C, triggering the STMicroelectronics thermal protection circuit (L298N Datasheet, Sec. 6.3). Fix: Allow to cool, attach a larger extruded aluminum heatsink with thermal compound, or reduce the mechanical load.
  • Hard Stall & Voltage Sag: The motor jams, and your Arduino resets or brownouts. Cause: The stall current spike pulled the shared power rail voltage below the Arduino's brownout detection threshold (typically ~4.3V for the ATmega328P). Fix: Isolate the logic power supply from the motor power supply, or add a large bulk capacitor (e.g., 2200μF) across the motor VCC and GND terminals.

The 2026 Reality: L298N vs. Modern MOSFET Drivers

While the L298N remains popular due to its robust screw terminals and low upfront cost, it is fundamentally 1990s technology. Modern motor drivers use N-channel and P-channel MOSFETs instead of BJTs. MOSFETs have an R_DS(on) (on-state resistance) measured in milliohms, resulting in voltage drops of less than 0.5V. This means almost all your battery power goes to the motor, not to heating up your driver board.

Driver Module Comparison: BJT vs. MOSFET Architectures
Driver IC Architecture Voltage Drop (at Max I) Max Continuous Current Typical Module Price
L298N BJT Darlington 2.0V - 3.0V 2.0A (per channel) $3.50 - $5.00
TB6612FNG MOSFET ~0.5V 1.2A (per channel) $4.50 - $6.00
DRV8871 MOSFET ~0.4V 3.6A (single channel) $5.50 - $8.00
BTS7960 High-Power MOSFET ~0.1V 43A (single channel) $12.00 - $18.00

When to stick with the L298N: Use it for educational kits, low-budget indoor rovers running on 9V or 12V where efficiency doesn't matter, or when you specifically need to drive a 2A bipolar stepper motor without buying a dedicated chopper driver like the A4988.

When to upgrade: If you are building a battery-powered autonomous robot where runtime is critical, or if your motors draw more than 1.5A continuously, abandon the L298N. The Texas Instruments DRV8871 is the direct modern upgrade for single high-current DC motors, offering integrated current limiting and a fraction of the heat generation. For dual smaller motors, the Pololu TB6612FNG breakout provides MOSFET efficiency in a footprint smaller than a postage stamp.

Ultimately, successful embedded motor control requires matching the driver's silicon architecture to the mechanical realities of your load. Calculate the stall current, respect the thermal limits, and don't be afraid to retire the red L298N module when your project demands modern efficiency.