The motor driver L298N is a dual full-bridge integrated circuit built on bipolar junction transistor (BJT) technology. Capable of handling up to 2A continuous current per channel (3A peak) and voltages from 5V to 35V, it remains the default choice for basic brushed DC and 2-phase stepper hobby builds. However, because it relies on Darlington transistor pairs rather than modern MOSFETs, it suffers from a massive 2V to 3V internal voltage drop. This makes it a poor choice for battery-constrained robots where efficiency dictates runtime. Before you wire one up, you need to understand its thermal limits, terminal quirks, and exactly when a modern alternative like the TB6612FNG or DRV8871 is the better buy.
Motor Type Profiles and Driver Demands
Not all motors accept the same drive signals. A common beginner mistake is treating steppers and servos as interchangeable; they require fundamentally different control architectures. The L298N is strictly an H-bridge, meaning it can reverse polarity and pulse-width modulate (PWM) voltage. This makes it ideal for brushed DC motors and bipolar steppers, but entirely useless for standard hobby servos or 3-phase BLDC motors.
| Motor Type | Torque Curve | Control Needs | Relative Cost |
|---|---|---|---|
| Brushed DC | High starting torque, drops as speed increases | Simple PWM for speed, H-bridge for direction | Low ($1 - $5) |
| Bipolar Stepper | High holding torque, drops sharply at high RPM | Phased H-bridge sequencing (Step/Direction) | Medium ($8 - $20) |
| RC Servo | High torque within a limited 180-degree arc | 50Hz PWM signal pin + separate VCC/GND power | Medium ($5 - $15) |
| BLDC (Outrunner) | High efficiency, flat torque curve across RPM | 3-phase ESC with Hall sensors or sensorless BEMF | High ($25+) |
The Verdict: If your load profile requires continuous rotation with simple speed control (like a differential drive robot chassis), use a Brushed DC motor. If you need precise open-loop positional holding without an encoder (like a CNC Z-axis), use a Bipolar Stepper. The L298N can drive two Brushed DC motors independently, or one Bipolar Stepper using both channels in parallel.
L298N Terminal Identification and Wiring
The standard red L298N module found on Amazon and AliExpress breaks out the raw STMicroelectronics L298N chip onto a PCB with screw terminals and header pins. Miswiring the logic and motor power supplies is the most common cause of dead modules.
- VS (12V/35V Terminal): Motor power supply input. Connect your main battery pack or bench supply here. Accepts up to 35V absolute maximum.
- GND (Middle Terminal): Common ground. This MUST be tied to both your motor power supply ground and your microcontroller (Arduino/ESP32) ground.
- VSS (5V Terminal): Logic power input. Feeds the optoisolators and logic gates. Requires exactly 5V.
- ENA / ENB: Enable pins for Channel A and B. Remove the factory jumper caps and connect these to PWM-capable GPIO pins on your microcontroller to control speed.
- IN1, IN2, IN3, IN4: Logic direction pins. Connect to standard digital GPIOs. Setting IN1 HIGH and IN2 LOW drives Motor A forward; reversing them drives it backward.
- OUT1, OUT2, OUT3, OUT4: High-current motor outputs. Connect your motor coils here.
Most modules feature a jumper cap near the VS terminal labeled "5V-EN". This enables an onboard 7805 linear regulator that steps down your motor voltage to feed the VSS logic pin. If your motor supply (VS) exceeds 12V, you must remove this jumper. Feeding 24V into that tiny 7805 will cause it to overheat and fail, taking the logic side of the board with it. For supplies over 12V, remove the jumper and feed 5V directly into the VSS pin from your microcontroller's 5V rail.
Sizing the Load: Rules of Thumb and Worked Examples
The datasheet claims the L298N can handle 2A continuous per channel. In reality, on a standard hobby PCB without aggressive active cooling, you should derate this to 1.5A maximum to avoid thermal shutdown. Furthermore, you must account for the BJT saturation voltage drop ($V_{CE(sat)}$).
Unlike modern MOSFET drivers which have an on-resistance ($R_{DS(on)}$) measured in milliohms, the L298N's Darlington pairs drop a fixed voltage—typically 2V to 3V depending on the current. This means your motor never sees your full supply voltage, and the driver dissipates the difference as heat.
Worked Load Example: 12V Gearmotor
Suppose you are driving a 12V brushed DC gearmotor that draws 1.2A under normal mechanical load, powered by a 12V lead-acid battery.
- Voltage at Motor: 12V (Supply) - 2.5V (L298N typical drop at 1.2A) = 9.5V. Your motor will run roughly 20% slower than its rated no-load speed.
- Power Dissipated in L298N: $P = V_{drop} \times I = 2.5V \times 1.2A =$ 3.0 Watts.
- Thermal Reality: The Multiwatt-15 package of the raw chip can dissipate about 2W in free air before the silicon junction hits 130°C. Because 3.0W exceeds this, you must attach an aluminum heatsink to the tab, or the chip will trigger its internal thermal shutdown within 60 seconds of operation.
Sizing Rule of Thumb: If your motor's stall current exceeds 1.5A, or your continuous draw exceeds 1.0A on a battery-powered system, abandon the L298N. The voltage drop will starve your motor of torque, and the heat will throttle your driver.
Failure Signatures: Hum, Overheat, and Stall
When an L298N circuit fails, it rarely does so silently. Recognizing the physical signatures of a failing drive state will save you from melting wires or bricking your microcontroller.
- Motor Whine or Hum at Low Speeds: If your motor emits an audible high-pitched whine when running at low PWM duty cycles, your PWM frequency is likely too low (below 1kHz). The L298N switches slowly compared to modern MOSFETs. Raise your microcontroller's PWM timer frequency to at least 2kHz - 4kHz to push the switching noise out of the human hearing range and reduce inductive ringing.
- Silent Stall and Thermal Shutdown: The L298N lacks the active overcurrent protection (OCP) found in modern drivers like the Texas Instruments DRV8871. If your robot chassis gets wedged against a wall and the motors stall, current spikes to the stall rating (often 3A+). The L298N will not cut power; it will simply absorb the energy as heat until the silicon junction reaches ~130°C-150°C, triggering internal thermal shutdown. The motor will abruptly stop, the chip will be too hot to touch, and it will remain dead until it cools down.
- Logic Brownouts: If your Arduino or ESP32 randomly resets when the motors start, you have failed to isolate the power grounds properly, or the sudden inrush current of the motor is sagging the shared voltage rail. Always use separate voltage regulators for logic and motors, tied together only at a single common GND point (star grounding).
The Decision Tree: L298N vs. Modern MOSFET Drivers
The market is flooded with modern motor controllers that outperform the L298N in almost every metric except raw upfront cost and high-voltage tolerance. Use this decision matrix to select the right board for your specific build.
| Your Build Constraint | If This is True... | Then Pick This Driver |
|---|---|---|
| Budget is under $4, power is tethered (wall wart/bench supply), voltage is up to 24V. | Efficiency and heat do not matter; you just need it to spin on a desk. | L298N Module |
| Battery-powered rover, need >1 hour runtime, motor voltage is 6V to 15V, current < 1.5A. | You need high efficiency and low voltage drop to maximize battery life. | TB6612FNG (MOSFET-based, ~0.5V drop) |
| Heavy-duty robot, 12V-24V motors drawing 2A to 5A continuous. | The L298N will melt; the TB6612FNG will fry. You need high-current MOSFETs. | DRV8871 (Single channel) or BTS7960 (High power) |
| Driving a 2-phase bipolar stepper motor for a small CNC or 3D printer axis. | You need microstepping and current limiting, which H-bridges cannot do alone. | A4988 or DRV8825 (Dedicated stepper choppers) |
Stop defaulting to the L298N for every Arduino project. If you are building a line-following robot powered by 2S LiPo (7.4V) or AA batteries, the L298N's 2.5V drop will starve your motors and halve your runtime. Buy the TB6612FNG breakout board instead. It costs about $2 more, handles 1.2A continuous per channel, runs cool without a heatsink, and delivers nearly the full battery voltage to your motors. Reserve the L298N strictly for high-voltage (24V) educational demos where it is plugged into a wall outlet and efficiency is irrelevant.






