The L298N is a bipolar junction transistor (BJT) based dual H-bridge integrated circuit. While it is one of the most ubiquitous and cheapest motor driver modules on the market (typically $2 to $4), its internal BJT architecture creates a fixed voltage drop of roughly 2V. The direct answer for selection: The L298N is best suited for 12V to 24V brushed DC motors or 2-phase bipolar steppers drawing under 1.5A continuous per channel. It is fundamentally unsuited for low-voltage (3V-6V) logic-level motors, high-efficiency battery-powered rovers, or high-frequency PWM applications due to severe thermal losses and slow internal diode recovery times.
Assuming an ambient bench temperature of 25°C and standard STMicroelectronics silicon, here is the exact engineering framework for sizing, wiring, and deciding when to abandon the L298N for a modern MOSFET-based alternative.
Motor Compatibility: Which Load Profile Fits the L298N?
Not all motors can be driven by a standard H-bridge, and the L298N's specific switching characteristics limit its utility. Below is a breakdown of which motor types actually fit the L298N's load profile and which will result in immediate failure or poor performance.
| Motor Type | Torque Curve & Control Needs | L298N Compatibility | Cost / Alternative |
|---|---|---|---|
| Brushed DC (Gearmotor) | High starting torque, simple polarity reversal for direction, PWM for speed. | Excellent. Ideal for 12V-24V TT motors and windshield wiper motors under 1.5A. | ~$3 (L298N). Use DRV8871 for >2A. |
| Bipolar Stepper (NEMA 17) | Holding torque at zero speed, requires precise step/direction pulse sequencing. | Moderate. Can drive 2 coils, but lacks microstepping and current chopping. Runs hot. | ~$3 (L298N). Use TB6600 or A4988 for CNC/3D printing. |
| RC Servo | Positional torque, requires 50Hz PWM pulse width (1-2ms) on a single signal wire. | Incompatible. Servos have internal controllers; they need VCC/GND/Signal, not an H-bridge. | N/A. Wire directly to Arduino 5V/GND. |
| Brushless DC (BLDC) | High RPM, requires 3-phase commutation and back-EMF sensing or hall sensors. | Incompatible. The L298N only provides 2 channels (H-bridges), BLDC requires 3. | N/A. Use an ESC or DRV10983. |
Sizing the Driver: BJT Physics and Worked Thermal Examples
The most common mistake hobbyists make is reading the '2A per channel' spec on the L298N datasheet and assuming they can pull 2A continuously. The L298N uses Darlington BJT pairs, not MOSFETs. BJTs have a saturation voltage ($V_{CE(sat)}$) that acts as a fixed resistor in series with your motor.
Worked Load Example: 12V DC Gearmotor
Let's size the driver for a standard 12V nominal DC gearmotor with a continuous draw of 1.0A and a stall current of 1.5A.
- Supply Voltage ($V_S$): 12.0V
- Continuous Current ($I$): 1.0A
- L298N Voltage Drop ($V_{CE(sat)}$): ~1.8V at 1.0A (per STMicroelectronics datasheet)
- Voltage at Motor Terminals: 12.0V - 1.8V = 10.2V
- Power Dissipated in IC ($P_D$): 1.8V × 1.0A = 1.8W
The Multiwatt15 package of the L298N has a junction-to-ambient thermal resistance ($R_{\theta JA}$) of roughly 35 °C/W without a heatsink. A 1.8W dissipation yields a temperature rise of 63 °C above ambient (25 °C + 63 °C = 88 °C). The IC will run hot to the touch but will survive.
The Stall Scenario: If the motor jams and pulls 1.5A, the voltage drop increases to ~2.5V. Power dissipation spikes to 3.75W. The temperature rise becomes 131 °C. Added to a 25 °C room, the junction hits 156 °C. The L298N's internal thermal shutdown triggers at 150 °C, cutting power to the motor to prevent silicon meltdown.
Wiring and Terminal Identification
The standard red L298N module breaks out the IC pins to screw terminals and male headers. Miswiring the logic voltage jumper is the fastest way to destroy the module.
| Terminal / Pin | Function | Wiring Target |
|---|---|---|
| 12V / VCC | Motor Power Supply Input (Up to 35V absolute max) | Battery positive or bench supply positive. |
| GND | Common Ground for Motor and Logic | Battery negative AND Arduino GND. Must be shared. |
| 5V / VSS | Logic Power Supply (Input or Output) | See jumper note below. |
| ENA / ENB | Enable Pins (PWM for speed control) | Arduino PWM pins (e.g., D5, D6). Remove factory jumper. |
| IN1 - IN4 | Logic Direction Control | Arduino digital output pins (HIGH/LOW). |
| OUT1 - OUT4 | Motor Outputs | Motor coil wires. Polarity dictates direction. |
Failure Signatures: Diagnosing Hum, Overheat, and Stall
When an L298N circuit misbehaves, the symptoms map directly to specific electrical faults. Do not just swap the IC; diagnose the signature.
- The 'Hum' Without Movement: This usually indicates voltage starvation or a PWM frequency mismatch. Because of the 2V BJT drop, a 5V motor powered by a 6V battery only receives 4V. Under load, it drops further, causing the motor to hum but fail to overcome static friction. Fix: Increase supply voltage to compensate for the BJT drop.
- High-Pitch Whine and IC Overheat: The standard L298N module uses 1N4007 flyback diodes. These are slow-recovery rectifiers. If you apply a 20kHz PWM signal from your Arduino, the diodes cannot switch off fast enough, causing 'shoot-through' current spikes that generate massive heat and acoustic noise in the motor coils. Fix: Keep PWM frequency below 1kHz, or solder external 1N5819 Schottky diodes directly across the motor terminals.
- Sudden Stall (Thermal Shutdown): The motor runs fine for three minutes, then stops completely. The IC is too hot to touch. This is the internal 150°C thermal protection tripping. Fix: Add a heatsink to the tab, reduce the continuous current draw, or upgrade to a MOSFET driver.
Decision Path: L298N vs. Modern MOSFET Alternatives
The L298N is a legacy design from the 1990s. Modern MOSFET-based drivers offer $R_{DS(on)}$ in the milliohm range, dropping less than 0.2V and running cool without heatsinks. Use the decision tree below to make your final component selection.
| Load Condition | Required Feature | Concrete Component Pick |
|---|---|---|
| 12V-24V Brushed DC, < 1.2A continuous, strict budget (<$4) | Dual H-Bridge, basic PWM, through-hole ease of use. | L298N Module (Default for basic educational rovers). |
| 6V-12V Brushed DC, 1.5A to 3.0A continuous, battery powered | High efficiency, low voltage drop, compact footprint. | TB6612FNG or DRV8871 (MOSFET based, ~$4-$6). |
| 12V-24V Brushed DC, > 5A continuous (e.g., e-bike, winch) | High current handling, active braking, robust protection. | BTS7960 (43A max) or DRV8701 (with external MOSFETs). |
| NEMA 17 Bipolar Stepper, CNC or 3D Printer application | Microstepping, active current limiting (chopping), step/dir interface. | TMC2209 (silent, UART configurable) or A4988 (budget). |
Final Verdict: If you are building a simple, line-powered or large-battery 12V educational robot with TT gearmotors drawing under 1A, buy the L298N; its screw terminals and physical size make wiring foolproof for beginners. However, if you are building a battery-operated device where every milliamp-hour counts, or you need to drive motors at 5V logic levels, skip the L298N entirely and purchase a TB6612FNG or DRV8871 breakout board. The MOSFET architecture will double your battery life and eliminate the thermal shutdown headaches inherent to BJT H-bridges.
References:
STMicroelectronics L298N Datasheet (Thermal and Saturation Specs)
Texas Instruments Application Note: Understanding Motor Driver Current Ratings






